RIVE µÄÅÆËÔàìŒ�’—™œ�žŸ ¡¨îïòøîšª­±µ¶¿ÁÇÊËÌÑÕÖßàåæçèéêëìíîïðñòøú‡ŠŒ��”–¥§­®ËÌÎÏçèüý‡ˆ‰Ð�ž¸ÅËÌÔÖ×ÚÛÜþ‰¿„€"¨€JR‚jÔ �Ë Saira ItalicjÔ¸Ñ PDSIG(°GDEFÔs·âh*GPOSÄ5MŠ9l`úGSUB/�ÐDšh®HVAR9ÜúS¯)OS/2‚ÐgUØ`STATòòYLÅDavar»ÙàÆd@cmapg`„@Àfvar gðµƤ¶gasp`glyf½;’.ÃLgvar~¿ÀÈÇ\aThead\ub\6hhea ‹”$hmtx-B£¤8loca𥾭maxp”¸ nameŽ¥Ñ¥â\ postÁì¥õïdùprephŒ…Û%�x‘_<õèÛÙ¤AÝ1sbÿþw"ŠoþIÿýÊ"èÕ‚‚‹‰4dŠXÿðKŠXJ^#2 ÿP ûOMNI� ûoþI�· “þ° nÒ«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï«ÿï³ÿï³ÿï¯=BKBKBKBKBKBKµ===µ=µ=µ=µ=¥=¥=V=V=V=V=V=V=V=V=V=V=V=V=V=V=V=V=V=V=V=V=1=«I«I«I«I«I«I«Iâ=â=â=â= =N= = = = = = = =  = = = = ÿã =DÿéN=Dÿé™=™==\======5“=â=&=â=â=â=â=â=âÿ¯Í=â=ÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖIÖÖÖIÖI.I�=�YÖI­=­=­=­=­=­=­=|(|(i)|(|(|(|(|(È.ÂCFqFOFqFqFqFqÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍTÍT—}؇؇؇؇؇¢ÿèWbWbWbWbWbWbWbWbWbYÿýYÿýYÿýYÿýYÿý«IUJUJUJUJUJUJUJUJUJBKâ=ÖI|(YÿýÍ1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1Í1ºIºIºIºIºIºIºI´=´=´=´=´=´=´=>3>3>3>3>3>3>3>3>3>3>3>3>3>3>3>3>3>3>3>3>3>3>3>3>3>3ž"ž"T.Ê2Ê2Ê2Ê2Ê2Ê2T3D1T3T3T3D3D3262626262626262626262626262626262626262623Xÿ»TÿøTÿøTÿøTÿøTÿøTÿøTÿø\.\.\.\.ë.ë.ë.ë.ë.ë.ëë.ë.ëë.ë.ë.Ö.ë.ëÿÓëëÿžëÿžÖ.ëÿž...ë.ë.ë.ëÿÝê.Ö.ë..\.\.\.\.\.\.\.\ÿžG.\.D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D D D2D2½3TTT9U.U.U.UÿÛU.UÿÿU.ôôi)ôôôôôe%0HI?II?I?I?I?\G\G\G\G\G\G\G\G\G\G\G\G\G\G\G\G\G\G\G\G\G\G\G\G\G\G Y#]#]#]#]#]ÿò\\\\\\\\\ðððððTÿø E E E E E E E E EÊ2\.D2ôðnÿ»Yÿ»Eÿ»Cÿ»/ÿ»’@žN«ÿýÖ'\R.¤Gmh`T ~*h#ˆ5.fª=ˆ*¤G¤Gmh`T ~*h#ˆ5.fª=ˆ*¤Gl=lIl?l6l9l>l@lwl2l:l=~*•7•bl+l<lll'l-l5l“ll)l5l=lIl?l6l9l>l@lwl2l:l=‰ÿýÝgÿá`ÿßuÿålÿîzÿûK�ÿözÿð‰Ýgÿö`ÿôuÿúlzK%� z‰SÝ[g7`5u;lDzQKf�LzF‰kÝsgO`MuSl\ziK~�dz^ƒÿÇÿóÀÿóJ7�ÿó5ïÿór5~D+/°°ÿݰ°ÿÝÆÆÿúðfªÿ÷°Cc\¶KwABHÿ³HpÆÆðfð0¦.-(1#;ÿ¶,$,ÿÁ55ÿÊ�-��-�c=cHÖAgKc=Tÿ°T°ÿÝ.ÿÝ.h.b°h°bÇLÇ./L/.s©t ( ÿöè,úààMXBKÓ?BKû,7@"q#;ÿ1ÿêeR™-E"Í3â$�/��ÿæg^EØ8kFcHKÿÊKÿÊBBÑ1B-,+9ñ,ñMAÖi <{ÿòÖ'«ÿýâÄ7D1\Yœ‹Us7‹Us7s7‹U‹7Yk0YkQI\œ=ÞK-\»GÔHÔHÊr�t©W-7  Í›\› ÖZ-=ç<òÿÿNE¾ T<TTgJLHKg]VLThhJK0ÿ¢ÿ«ÿšÿ¡ÿ®ÿ²ÿ©3ýT+T˜gšJLKg]áVFO TWÿ¡bÿ®TTgLLKg]VOThcJK0ÿ¢ÿ«ÿšÿ¡ÿ®ÿ²ÿ©AK1j]]]qKKKX]]]NKKKKI\vaXôQ0Q0-%;5ÿÿ5ÿÿ<-%,Ÿ-ñ-…0ºIqoÿÿpÿÿ%,Ÿ-XÖÖÖIBKÓ?BK7eRD D �kF¬Ð€P /9~�’�¡°Üçëõ-37Yrº¼ÇÉÝ $(.16”©¼À %E[cm…“žù      " & 0 3 : < D R p y ‰ ¡ ¤ § © ­ ² µ º ½!!!"!&!.!T!^!•!¨""""""""+"H"`"e#%Ê'é§Œàÿïýðøÿûÿÿ 0: �’� ¯Äæêñú*07Yr¹¼ÆÉØ#&.15”©¼À $DZbl€’ž       & 0 2 9 < D R p t € ¡ £ ¦ © « ± µ ¹ ¼!!!"!&!.!S![!�!¨""""""""+"H"`"d#%Ê'è§‹àÿïýðøÿûÿÿªÝÿ-þÕÿ;þúÿOhD ÿýÿüÿ÷ÿõÿòþuþaþOþLâ â�â‹âWâºâÎârâIâ+â}áõáõáÇââ â#âáñáòáÜá¼áÙáááIàåàÝàÕà»àÂà¶à”àvàÝ,ÚÇ"`ca øÎêr*,.^`bj¬²²®¸À´¶¸º¼¾ÀÊÊ|~„ˆvtxxznppjf´~­†¼éù®’“„Ñzœy‡{|ØÕ×€ø$-ABIM]`bjku•—˜Ÿ©¯ÉÊÏÐÙ–ˆ—ß¡+128?TU\`qux€Šª¬­´¾ÄÞßäåݵ¹Ë»Íû)ü©Þ�ý3ÿÛgh,èú‚4fªspt� !;.18WORT't„vy’€Ó�»°³µÑ–¼'.%,/5M@CJjbeg9‰™‹Ž§•Ô¥ÐÅÈÊæ«è*+3"6#7 4(:);>P/A9K?Q0BFYDWH[GZK^J]\pZnPc[oUaNm_tavwdyf{ezg|i~m�o„nƒ‚q†Ž£wŒŒ¡”©™®›°š¯ µ¤¹£¸¢·¬Á«Àª¿ÈÝÅÚ±ÆÇÜÃØÆÛÌáÒçÓÚïÜñÛ𽆛½Ò&,>ch}lsˆ Qdx�²ǹζË·̸ÍEX�¤%+=CV-0‘¦$)7I=OSfYl”�¢œ±ž³´ÉÄÙ¥º­Â�–“¨‚—×ì 0*152-*<L_p…�²¦»®ÃÎãËàÍâÝò&(  !"#  :L<N@R2D4F5G6H3EXkViƒ˜…šz�|‘}’~“{�‡œ‰žŠŸ‹ ˆ�ºϼѾÓÀÕÁÖÂ׿ÔÕêÔéÖëØí²±¶³¢§¨£¥¦¤ƒÀý¾ÂÈÁÊÄÅÉîëìíïðåÒÎæÚÙ¡¶¸ÿ…°�$?KWcs‹—£¯»Ë×ãïû+7CO[kwŸ«ü;GS_kw¨´Äý )9S_kwƒ�Ÿ«·ÃÏÛçóÿ #/;R™¥±½ÉÕáû(4AMYeq}‰•¡¬¸ÄÐÜçó#/KWgs‹—°¼Öö(4@Lvžª¶&2>NZfr~Ššª¶ÂÎ 0 < H T ` l x „ � œ ð M Y i Ç ú . ‚ À Ì Ø ä ð ü  k w † ’ ž ª ¶   ` s � › § ³ ¿ ñ ý !-9IYiy…‘�åñý !-9EQ]i}žª¶ÂÎí)5AMYe}‰•¡­¹ë÷'3?KWco{‡¿Ë×ãóÿ #/;KWco{‡“Ÿ«·ÃÏÛë÷AMYeq}‰ÏÛçóÿ bnz†–¢®¹ÅÑÝíù(4@LXdp|Œ—$0|µÁÌØãï;¢®*wƒ�›§³ÃÏÛçòþ ".:FR]ªÜCO[gs‹¼ö#0;FQ\grz…�›¦²½ÈÓö$/IUo|ˆ”Ÿ«·ÑO[¢®ºÆFR^§³¿Ë×ãóÿ ".>NZfrÑÝéõ   $ 0 < Ž ê õ!!‚!Î""e"‚"�"˜"£"®"¹"Ä# #,#;#F#R#]#i#u#Í#ì$$N$Z$f$r$~$±$½$É$Õ$á$ì$ø%%%(%8%D%P%\%¥%±%½%É%Õ%á%í%ù&&&&)&=&]&i&u&�&�&¨&õ'' ''%'1'='I'U'l'x'ƒ'�'›'¦'½'É'Õ'á'í'ù(((('(3(?(K(W(´) )…)Æ**G*Œ*¡++5+I+–+¨+í,I,h,¬- - -£..V.^.f.n.v.~.†.Ž.–.ž.¦.û// ///#/+/3/;/C/K/S/r/Æ00!080@0H0P0X0`0h0p0x0€0Î0å1.1‰1§1ë2L2_2ß3B3˜3 3¨3°3¸3À3È3Ð3Ø3à3è4,4>4€4Ï4ê5&5z5Œ5ü6O6”6§6ê7:7V7“7ç7ú8j8¾8Ç8Ð8Ù8â8ë8ô8ý9999&969F9V9f9v9†9–9¦9¶9Â9Ý9ñ::,:N:q:¾; ;;<;^;j;š;©;·;¿;È;Ð;Ù;á;î<;<Ü<ô=!=N=œ=ê=þ>>%>7>G>W>d>q>>�>•>¢>´>Ï>ÿ?/?_?{?—?°?É?Ù?é@@@$@6@6@6@6@6@6@6@6@|@ÀAAtAØB/B„B¸B×C*COCˆC»CöDDYDœDÕEEGEqE˜E¥EÁEÏEæEóF F'FïEÿÿÿïK&'>ïE9f5ÿÿÿï~‰&?Õ²ÿïð#!!!!3!'!!#®&þ 9Oþ¿;öþô+þ¨‹ 32.#"32671Qf/&/B_B;712AZ<)!(ZK#R35>?&fD^M(  "EtXFd#21"ÿÿKÿøTš&9/²ÿÿKÿøT™&<Ù²ÿÿKÿ:T¸&IÿøÿÿKÿøTš&;Ò²ÿÿKÿøTy&7E²=�° 332#'32>76654.##=“Ä]n0",DhN«•Ld@)!7YA•°9:%hE\{L( "Bu[Fd"'+ÿÿ="°&$Ùµÿÿ="™&$'Ùµ<†²=�°$7332#'32>76654.##>ëì“Ä]n0",DhN«•Ld@)!7YA•K$$þµ°9:%hE\{L( "Bu[Fd"'+ÿÿ=�™&$<ÿ²ÿÿ=�°'ÿÿ=ÿE�°&$FEÿÿ=¢°&$îµÿÿ=¢ç&$'îµ=z° 3!!!!!=“ªþz=Wþ©?†°"þß"þ×"ÿÿ=zš&-9C²ÿÿ=z”&-=é²ÿÿ=z™&-<í²ÿÿ=zš&-;æ²ÿÿ=zL&-[æ²ÿÿ=ÿEzš&-'FE;æ²ÿÿ=zK&-\æ²ÿÿ=zl&-]æ²ÿÿ=–;&-^æ²ÿÿ=z†&-B¸²ÿÿ=zy&-6ð²ÿÿ=zy&-7Y²ÿÿ=ÿEz°&-FEÿÿ=z™&-8Ù²ÿÿ=zº&-Aø²ÿÿ=z˜&-Cé²ÿÿ=z^&-@ê²ÿÿ=ÿ8z°&-J»ÿüÿÿ=z‰&-?̲=f° 3!!!!=“–þŽ@Mþ³D°"þÑ"þÃIÿø•¸/"&&5467>32.#"32667#7373432'2>76654&&#";Zj."+@dKZj."+AeNAX:("(YJAX:(! (Z88&nJ`€M& 89'kJ^~N("Dw^Ki#2+ Dw^2P>1+ ÿÿIÿø®š&u9e²ÿÿIÿø®”&u= ²ÿÿIÿø®™&u<²ÿÿIÿø®š&u;²ÿÿIÿø®L&u[²ÿÿIÿE®š&u'FU;²ÿÿIÿø®K&u\²ÿÿIÿø®l&u]²ÿÿIÿø¸;&u^²ÿÿIÿø®†&uBÚ²ÿÿIÿø®y&u6²ÿÿIÿø®&u'6²@2fÿÿIÿø®&u'7{²@/WÿÿIÿE®¸&uFUÿÿIÿø®™&u8û²ÿÿIÿø®º&uA²Iÿøá(C73266773#"&&5467>32'2>76654&&#"89 #"þÈZj."+@dKZj."+AeNAX:("(YJAX:(! (Z” #& ýd88&nJ`€M& 89'kJ^~N("Dw^Ki#2+ Dw^2P>1+ ÿÿIÿøáš&†9e²ÿÿIÿEá&†FUÿÿIÿøá™&†8û²ÿÿIÿøáº&†A²ÿÿIÿøá‰&†?î²ÿÿIÿø®†&u:²ÿÿIÿø®˜&uC ²ÿÿIÿø®^&u@ ²ÿÿIÿ8®¸&uJ3ÿüÿÉàç83%"&&5467>32'2>76654&&#"¤(ý[Zj."+@dKZj."+AeNAX:("(YJAX:(! (Z7üâ/88&nJ`€M& 89'kJ^~N("Dw^Ki#2+ Dw^2P>1+ ÿÉàš8>3%"&&5467>32'2>76654&&#"573¤(ý[Zj."+@dKZj."+AeNAX:("(YJAX:(! (ZÂk.~7üâ/88&nJ`€M& 89'kJ^~N("Dw^Ki#2+ Dw^2P>1+ ö……ÿÿIÿø®‰&u?î²ÿÿIÿø®&u'?î²@2dIR°%@!"&&5467>3!!"&'!!663!%2>76654.#"76654&&##=“AF-P?þú;Bú6C& 83ú°6"-(K:"þî4-@(+'Y‹°!3332#!732>76654&&##Y’$öAF.P?þú&ú6C& 83ú°ƒ6"-(K:"�±-@(+'Iÿ�®¸93'"&&5467>32'2>76654&&#" ¸(·÷Zj."+@dKZj."+AeNAX:("(YJAX:(! (ZsMþµk88&nJ`€M& 89'kJ^~N("Dw^Ki#2+ Dw^2P>1+ =“°&3!2###32>76654&&#!=“!=G5,7&6 õ?Fý7E(7/þú°5#  <3% þÒ(þÚH,;$'&ÿÿ=“š&˜9@²ÿÿ=“™&˜<ê²ÿÿ=ÿ“°&˜H7ÿÿ=“†&˜Bµ²ÿÿ=ÿE“°&˜FAÿÿ=“˜&˜Cæ²(ÿø^¸E"&&'732667>54&&''&&5467>32.#"%)ZV$!PN#6/ 0*³?+ *?Z;(PEEG*?/ $-ª.@".=L# /88* 1%,3A# ! ,77&( BL# ÿÿ(ÿø^š&Ÿ98²)&¤°3)T'&=&вØÿÿ(ÿø^™&Ÿ<â²ÿÿ(ÿ:^¸&ŸIÿøÿÿ(ÿø^š&Ÿ;Û²ÿÿ(ÿ^¸&ŸHÿÿ(ÿE^¸&ŸF(.ÿøŽ¸6"&&'7326676654&##7&&#"#>3232i?<*]#BS0 8=v7^>=L/#P$Z&7T?8aOó32'2>7! Sa)ê 3Q;'`$?ATf/#+BdC=T8'!þ:&U55'pN73:We* S$Z "RHM\4Z$S'<\:1 T7ŠþX+B(-5\H¨þvHgE)ÿÿTÿø»š&¯9a²ÿÿTÿø»”&¯=²ÿÿTÿø»™&¯< ²ÿÿTÿø»š&¯;²ÿÿTÿø»†&¯BÖ²ÿÿTÿø»y&¯6²ÿÿTÿø»N&¯'6²9‡fÿÿTÿø»M&¯'6²<1fÿÿTÿø»M&¯'6²8fÿÿTÿø»&¯'6²@.fÿÿTÿE»°&¯FQÿÿTÿø»™&¯8÷²ÿÿTÿø»º&¯A²Tÿø:-73266773#"&&5467332>73‘9 #"þnWe* S$Z "RHM\4Z$S'<\” #& ýd:1 T7ŠþX+B(-5\H¨þvHgE)ÿÿTÿø:š&½9a²ÿÿTÿE:&½FQÿÿTÿø:™&½8÷²ÿÿTÿø:º&½A²ÿÿTÿø:‰&½?ê²ÿÿTÿø»†&¯:²ÿÿTÿø»˜&¯C²ÿÿTÿø»^&¯@²ÿÿTÿ8»°&¯J,ÿüÿÿTÿø»½&¯>²ÿÿTÿø»‰&¯?ê²}İ3333ü$t�)þ[°ý‡yýP‡ÿ°333333##À9$1L&D9(þ¡#Fþ°°ý‘oý‘oýPoý‘ÿÿ‡ÿš&Ê9à²ÿÿ‡ÿš&Ê;ƒ²ÿÿ‡ÿy&Ê6�²ÿÿ‡ÿ™&Ê8v²ÿèɰ #333##^È*´7/þ¥Ë*¶þÅ[UþÉ7þªþ¦:þÆb‘° 3333Ô<®'›:,þ£<—þ�qþiþçÿÿb‘š&Ð9²ÿÿb‘š&Ð;º²ÿÿb‘y&Ð6IJÿÿbÿE‘°&ÐFÿÿb‘™&Ð8­²ÿÿb‘º&ÐA̲ÿÿb‘^&Ð@¾²ÿÿb‘‰&Ð? ²ÿým° #7!7!!0þ^Óýд n" ý’"ÿÿÿýmš&Ù9'²ÿÿÿým™&Ù<Ѳÿÿÿýmy&Ù7=²ÿÿÿýÿEm°&ÙFÿÿIÿø•‰&B?Ô²J…° 37.54677332>773í+NZ& '$. "SGM\4.$'%:bO+Ê<3Q4¸Ö+B(-5\HÖ¸XtCÊÿÿJ…š&ß9$²ÿÿJ…š&ß;DzÿÿJ…y&ß6ѲÿÿJÿE…°&ßF!ÿÿJ…™&ß8º²ÿÿJ…º&ßAÙ²ÿÿJ…^&ß@˲ÿÿJ…‰&ß?­²ÿÿKÿøTx&N&ÿÿ=Ìx&kNbÿÿIÿø®x&uN\ÿÿ(ÿø^x&ŸN/ÿÿÿýmx&ÙN1™¸"3>32#!!76654&&#"1S(=]DVb* S$:þM:A³ "RHM\4ŠHhE(<6P4þvþî4t+C(-5\Hÿÿ1™š&í9a²ÿÿ1™”&í=²ÿÿ1™I&íW²ÿÿ1ÿE™”&í'FQ=²ÿÿ1™H&íX ²ÿÿ1™i&íY ²ÿÿ1±(&íZ ²ÿÿ1™™&í< ²ÿÿ1™š&í;²ÿÿ1™L&í[²ÿÿ1ÿE™š&í'FQ;²ÿÿ1™K&í\²ÿÿ1™l&í]²ÿÿ1´;&í^²ÿÿ1™†&íBÖ²ÿÿ1™y&í6²ÿÿ1ÿE™¸&íFQÿÿ1™™&í8÷²ÿÿ1™º&íA²ÿÿ1™˜&íC²ÿÿ1™^&í@²ÿÿ1ÿ8™¸&íJÿüÿÿ1™½&í>²ÿÿ1™Š&í'>²9”¢ÿÿ1™‰&í?ê²Iÿø ¸3"&&5467>32.#"32>77#73>Wl2)3HdF$QJB=FcG3( )[K:O2"»ß &;ZAB%bA^~N( Dw_@a#35 32373#7#'2667>54&#"â?M# #4Q=4I+l 3H,0=*  EP7H-  A4/G.Pg9$JþS&( !3:376654&&#"766326632!32667#"&''2>77#"%!7>54&&#"ÕAO# &G;%KJ% D8><X3XR_TAK þ‡ E;?=8?aUEM5-J8*Õ2: ;`V;/=L-(' 3:-," !*( 1+G. &;(-!05-+ %J?%.0 'ÿ%$ &$ *Rÿÿ"ÿøjç&/z.ÿøç3"&&'##33>32'2>76654&&#"4I+Ÿ#F3H2@L# $4PG8G-  @60=*  F$JçþÄ'' 4/G.Pg9 /\L.E'' "9AA6;22ÿøÁ%"&&5467>32&&#"3267áCM '4N8#NC6G. >3 ID7,E*Og:!2ZF-D&)!ÿÿ2ÿøÁç&2«ÿÿ2ÿøÐç&2dÿÿ2ÿBÁ&2#Íÿÿ2ÿøÈè&2xÿÿ2ÿøÁÇ&2å3ÿøSç3"&&5467>3233#7#'2667>54&#"â?M# #4Q=4I+A#ž 3H,0>* EP7H-  A4/G.Pg9$3ýS&( "8AA8;2/\L.E&( 1ÿø;ç-F"&&5467>327&&'77&&'737'2>76654&&#"òIU# 3YI7K€h ' hQ !4PA6G,  A;CO* D/-M1Qh9+O% # " .f/@:HdA$ 4Q:)B!,1\I2J # ÿÿ3ÿø’ç&8ê3ÿø�ç773"&&5467>3233#7#'2667>54&#"ŠÿþY?M# #4Q=4I+A#ž 3H,0>* EP7H-  A� ýh4/G.Pg9$3ýS&( "8AA8;2/\L.E&( ÿÿ3ÿESç&8 ÿÿ3ÿøAç&8îTÿÿ3ÿøAç&8'îT®6ÿøÿ%3"&&5467>32!32667!76654&&#"ÿJY& 3\LAK  þ‡ E;?=5;©V ;/=L-70D+Ke=1+ 0= (>$)!!4&$ ,Sÿÿ6ÿøÿç&?Çÿÿ6ÿøÿâ&?“ÿÿ6ÿøÿç&?€ÿÿ6ÿøÿè&?”ÿÿ6ÿøÿ™&?S”ÿÿ6ÿEÿè&?' ”ÿÿ6ÿøÿ™&?T”ÿÿ6ÿøº&?U”ÿÿ6ÿø?y&?V‡ÿÿ6ÿøÿç&?9ÿÿ6ÿøÿÇ&?˜ÿÿ6ÿøÿÇ&?ÿÿ6ÿEÿ&? ÿÿ6ÿøÿç&?£ÿÿ6ÿøÿ&? ÿÿ6ÿøÿæ&?•ÿÿ6ÿøÿ¬&?’ÿÿ6ÿ=ÿ&?$qÿÿ6ÿøÇ&?s3ÿøü%3"&&546677!6654&&#"7>32'2>7!ßAK  y E;?<5;KX& 3[N=L-þª <2* /= (>%(!61C,Ke= ,SE!3%% ÿ»ÿ8“ç72667#737>3"3#E/,}ll +9$5>ˆˆ{".È O s * $!y ý»% ÿøÿ2"/H"&&'732>7667##"&&5467>32373'2667>54&#"¼!JB?>>M.  3H2?M# #4Q=4I+] %6N 0=*  EP7H-  AÎ!-E0+ &( 4/G.Pg9$JþJ?]A'æ!;DA4;2/\L.E&( ÿÿÿøÿ2"ç&UÎÿÿÿøÿ2"â&Ušÿÿÿøÿ2"ç&U‡ÿÿÿøÿ2"è&U›ÿÿÿøÿ2"&Uÿÿÿøÿ2"Ç&U.ç333>32#6654&#".�#B )J<@HD#B>JBP-8çþÇ(/&.þÀ;/2(BN&þø.ç"7333>32#6654&#"tÿþ»�#B )J<@HD#B>JBP-8� ýpçþÇ(/&.þÀ;/2(BN&þøÿÿ.š&\;²ÿÿ.ÿEç&\ .òç733» * ·l#lª==ýVþþ.½þ33.l#lþþÿÿ.(ç&a&ÿÿ.Zâ&aòÿÿ.Kç&aßÿÿ.Cè&aóÿÿ.ç&a˜ÿÿ.UÇ&a÷ÿÿ.òç`ÿÿÿEòç&` _ÿÿ.åç&aÿÿ.M&aÿÿÿ.Iæ&aôÿÿ.ÿ8Ýç&`qëÿÿ.U¬&añÿÿÿÓÿ8òç&`$%üÿÿxÇ&aÒÿžÿ8òç73726673» * þ¹,-„#‚".ª==üŽoý›% ÿžÿ8½þ 726673b,-„#‚".Èoý›% ÿÿ.ÿ8ç&a&&'rëÿÿÿžÿ8Cè&ró.ç 333%3#'#.�#cU/þç°+¥V3çþ.éüþþóóÿÿ.ÿç&u"Ú.þ 333%3#'#.l"1U/þç°+¥V3þééüþþóó.îç33.�#�çýÿÿ.Tš&x9o²ÿÿ.Bç&xšÿÿÿÝÿîç&x"Cÿÿ. ç&xŽÏÿÿ.ÿ8Ýç&xqë.ðç 37737.IGGN$KJKKV#nþŸ#þ�.53333>323>32#6654&#"#6654&#".m  &B6PC )E6SAD#C5?:H( 9#C5?:I)9þS),/)/61þÀ; 1-"=Q.þø; 1-(AN'þø.333>32#6654&&#".m )J=@HD#C;1BP- 9þS).&/þÀ;/!" 'AO'þøÿÿ.ç&€Þ.É -72677#7333>32#6654&&#"?#0 "+m )J=@HD#C;1BP- 9#%AK" ýÝþS).&/þÀ;/!" 'AO'þøÿÿ.ç&€—ÿÿ.ÿ&€"ûÿÿ.Ç&€.ÿ8)726676654&&#"#33>32/,[;1BP- 9#m )J=@HZ".È ¬/!" 'AO'þøþS).&/þY% ÿžÿ8)7266733>32#6654&&#"b/,… )J=@HD#C;1BP- O".È oS).&/þÀ;/!" 'AO'þ‘% ÿÿ.ÿ8Nç&€q\ÿÿ.0Ç&€Š2ÿø2"&&5467>32'2>76654&&#"ôIU$ "3O;IT$ "3N?6G, D;CO* D/+L2A\32'2>76654&&#"¤9 #"ëIU$ "3O;IT$ "3N?6G, D;CO* Dâ #& þ/+L2A\32'2>76654&&#" )ýøÂIU$ "3O;IT$ "3N?6G, D;CO* D7lý”//+L2A\32'2>76654&&#"773 )ýøÂIU$ "3O;IT$ "3N?6G, D;CO* Dg‡0š7lý”//+L2A\326632!32667#"&''2>76654&&#"%!>54&&#"ôIU# !3O;aUcXAK þ‡ E;?=8?[W 4P@DM+ D;CO* DHV;/=L-/-L1A[<"#1.&1+0:%(>$)!%2"& 0[I2K!# 1\I2J # û'/ &$ ,Sÿ8333>32#"&&'#72>76654&&#"— 3H2@L# $4P>4I+:ã8G-  @60>* FÈÆS'' 4/G.Pg9$þîà/\L.E'' !6>@:;2ÿ8ç233>32#"&'#72>76654&&#"É"D3H2@L# $4P>NW :ã8G-  @60>* FȯþÄ'' 4/G.Pg9%-þîà/\L.E'' !6>@:;29ÿ8'3##"&&5467>32373'2667>54&#"m>3H2?M# #4Q=4I+—¢0=*  EP7H-  AÈ&( 4/G.Pg9$Jý:à!6BB9;2/\L.E&( .p333>3".m9L0:N0 8þm12$#?P-þýÿÿ.pç&­[ÿÿ.€ç&­ÿÿÿÛÿp&­"Aÿÿ.pç&­ÍÿÿÿÿÿEp&­ ]ÿÿ.~æ&­)ÿøÏ?"&&'7326676654&''&&5467>32.#"ÓA?"/&':= �1* $4F,8724!*A.  "Œ!) /D!0' !% 07! ,3 #)4 ÿÿÿøÏç&´ª)&°ç3)`'2>&ÁéØÿÿÿøÏç&´cÿÿÿBÏ&´#»ÿÿÿøÏè&´wÿÿÿÏ&´"ÇÿÿÿEÏ&´ ã%Tî=3>32##732>76654&##7326676654&#"%p;gREQ$';(-0 !3PýöH—ç3#737>3"Nfll",7!5> †Þ s * $!ý‰?S’3".54667#73733#3ñ%8%Ill#~~N6)  \ ”” þ’ S’ 7!".54667#73733#3'%8%Ill#~~N6)ÿ  \ ”” þ’ ÿÿ?z-&¾Ò}ÿÿ?ÿBS’&¾#Ÿÿÿ?ÿS’&¾"«ÿÿ?ÿES’&¾ ÇGÿø+þ"&&5467332>73#7#í?ID#C;1BP- 9#m  *J/%.@þÅ/!! 'AO'þS*ÿÿGÿø+ç&ÄÕÿÿGÿø+â&Ä¡ÿÿGÿø+ç&ÄŽÿÿGÿø+è&Ä¢ÿÿGÿø+ç&ÄGÿÿGÿø+Ç&ĦÿÿGÿø+‡&Ä'¦÷ ÿÿGÿø+‡&Ä'¦° ÿÿGÿø+‡&Ä'¦Ó ÿÿGÿø+L&Ä'¦ ÿÿGÿE+þ&Ä ÿÿGÿø+ç&ıÿÿGÿø+&Ä®Gÿø«`.73266773#"&&5467332>73#7#9 #"þ°?ID#C;1BP- 9#m  *Jâ #& þ/%.@þÅ/!! 'AO'þS*ÿÿGÿø«ç&ÒÞÿÿGÿE«`&Ò ÿÿGÿø«ç&ÒºÿÿGÿø«&Ò·ÿÿGÿø«Ç&ÒŠÿÿGÿø+Ô&Ä‘ÿÿGÿø+æ&Ä£ÿÿGÿø+¬&Ä ÿÿGÿ8+þ&Ä$’ÿüÿÿGÿø+ &Ä´ÿÿGÿø+Ç&Ä�Yþ3333¼c#W(þÃþþ3Íþ]2þ333333##¢E#:ò&1û(þá#3òþþ;Åþ;ÅþÁþ?ÿÿ]2ç&ß6ÿÿ]2è&ßÿÿ]2Ç&ßÿÿ]2ç&ßÿò þ #'3373#'#“+Þ/ý˜+„çúÝÝùþûææÿ2+þ3"&&'732>7667##"&&5467332>73ÅE=@?>K+   *J=?ID#C;1.G3# A#_&8WÎ!2>")*/%.@þÅ/!! ,G3,þELh@ÿÿÿ2+ç&åÞÿÿÿ2+è&å«ÿÿÿ2+Ç&å¯ÿÿþw+þ&å æÿ2ÿÿÿ2+ç&åºÿÿÿ2+&å·ÿÿÿ2+¬&å©ÿÿÿ20Ç&åŠíþ 17!7!!¬þÀtþUM þ> ÿÿíç&î¡ÿÿíç&îZÿÿíÇ&îÛÿÿÿEíþ&î ôÿÿÿøÿ2"Ç&UzEÿBþ 7#333Eya#X(þN¾Àüþ3ÍýDÿÿEÿBç&ô³ÿÿEÿBè&ô€ÿÿEÿBÇ&ô„ÿÿEþ‡þ&ô ÇÿBÿÿEÿBç&ô�ÿÿEÿB&ôŒÿÿEÿB¬&ô~ÿÿEÿBÇ&ô_ÿÿ2ÿøÁç&2Müÿÿ.ç&€M/ÿÿ2ÿøç&ŠM#ÿÿÿøÏç&´Mûÿÿíç&îMòÿ»ÿ8©ç?72667#737>3"3#372667#737>3"3#E/,}ll +9$5>ˆˆ{".ö/,}ll +9$5>ˆˆ{".È O s * $!y ý»%  O s * $!y ý»% ÿ»ÿ8`ç?CG72667#737>3"3#372667#737>3"3#733E/,}ll +9$5>ˆˆ{".ö/,}ll +9$5>ˆˆ{".8 * ·l#lÈ O s * $!y ý»%  O s * $!y ý»% r==ýVþþÿ»ÿ8Hç?C72667#737>3"3#372667#737>3"3#%3E/,}ll +9$5>ˆˆ{".ö/,}ll +9$5>ˆˆ{".—�#�È O s * $!y ý»%  O s * $!y ý»% Èçýÿ»ÿ8Jç#'72667#737>3"3#733E/,}ll +9$5>ˆˆ{".8 * ·l#lÈ O s * $!y ý»% r==ýVþþÿ»ÿ82ç#72667#737>3"3#%3E/,}ll +9$5>ˆˆ{".—�#�È O s * $!y ý»% Èçý@8®¶/"&&5467>32373#7#'267>54&#"¿.8 &:-&5 O A352 2:'1  .8%"3":K) 6þŽ<*9>3 &" "?4!3%N;ª¸."&&5467>32'2>76654&&#"Þ7?  $?57>  $>9/5  .).6  .;#!5#;L)%!6#;K( "?3#3 "@2#3"ÿýW°#3%!#®#‰ýãòv°ýP"['°¸F3737&&5467>32>73#7>76654&&#"'  /&  +BeKE]8,G>  Ñ>O2$'XKAY;( >J"E6TMRtM- 5(%cA]ˆR" 'HwZ@^"1/ #BnR+G;?9 ÿB+þ332>73#7##"&'7•#C;1BP- 9#m ,L@H@ ;¾¼þÅ/!! 'AO'þS)$+þè.$þ3!#!.lŠl%eþÀeþþÞþ"Gÿø‚¸5"&&5467>32'2>76654&&#"$Qa+ '9XBAX6&;^J>P4#!OF=Q4#  $P54'qN^~N( 0''qO^~N("Dw]Qo#,& Dw]7U@+& h=°3773†ˆ¦ ¯“€O'XýPN¸.37>77>54&&#"7>32! 6.æ&0 #J;JM!CI!/M7 *5 þ! œG=H+\*38!#  0) (7& f .8B" ÿø1¸?"&&'7326676654&##7326676654&&#"7>32ÑIF!G@CeB=BŠv#OB +V?@A?@Qc-J3,4 "=e @B 4."61%*) 8./7=14 -F/*B°!7!73!33#„&þ€{.þ…T@#@mm&°áþ",þÔ"°#ÿø>°,"&&'732>76654&&#"!!6632ö LJ"G@CX7 (\O5A$Hƒþ¡:"Z0PX" $=` 'B1$'& W"þð5) &32&&#"3>32'2>76654&&#"7W;(1C]ACJ"+f&@X=*!1YIJ\, "9`U@T5 "QFIY1&Q5- iI_‚P*  $FrU 13%AU0" !B8,'#  3%1,-fL°3!7!f²þeÇþMŽ"ým=ÿøŒ¸/E\".5467>75&&5467>32'26676654&&#"26676654&&#"'G[4)>+.- ")* !=fSTe6 &UHCX7 [°Vb1 #SGBW5 %S 1!! && !<2 :%SA9 #'":+ $)*ÿøb¸,D"&&'732>7##"&&5467>322>76654&&#"òDI#,e&@X=*!2YII], "9`J8V;(1C] IY1&PA@T5 "Q  $FrU 13&AU05-iJ_‚P*M 3%2-, !B8,&$ Gÿø‚¸*8"&&5467>32'2>7!!6654&&#"$Qa+ '9XBAX6&;^J°ÿÿ5ÿøm¸ÿÿfL°ÿÿ=ÿøŒ¸ÿÿ*ÿøb¸Gÿø‚¸97!"&&5467>32'2>76654&&#"|ÈþàQa+ '9XBAX6&;^J>P4#!OF=Q4#  $PI""þ¯54'qN^~N( 0''qO^~N("Dw]Qo#,& Dw]7U@+& ÿÿ=ÿù@P<ÿÿIçI=ÿÿ?:P>ÿÿ6ÿù&P?ÿÿ9!I@ÿÿ>ÿù IAÿÿ@ÿù=PBÿÿw@ICÿÿ2ÿùGPDÿÿ:ÿù8PEÿÿ=ÿù@PF*B° !7!733#%!#„&þ€å&fmm&þ¶T[°áþ""°Òª7ÿøJ°"9".54>73>32'2>76654&&#" =Y8 @a‚R/DlT?2Q>M\) (AcLBX9" ,V@Ke;(U 4)7'#"&&5467>3226676654&&#"±DlT?3Q>M\) (AcG>X8 @a‚RiKe< (TBBX9" ,V.TPM& 72,6K- 4)¸ ÿÿ'?°ýÿÿ-ÿøH° ÿÿ5ÿøm¸ÿÿ“y°-ÿÿÿøn¸âÿÿ)ÿøa¸ÿÿÿ5ÿøp¸"î=ÿù@P6"&&5467>32'2>7>54&&#"þHU$#7WBJT$ #8WE:M0  GD7H. C,*"aCRmA! -':I-RmA! !8dN-F6!" 9dN!NF IçI 3737733IÀl×àu´ þU#]ý× ?:P137>77>76654&&#"7>32!? 0*Ê$)B@BHCI"1B(3&Ñ s=8?"L)!   %  "/#N /),!6ÿù&P>"&&'7326676654&##7326676654&&#"7>32ã>>@:JY/ ;8|i4I,'M::==@GU& E4*, 9k7/  )+!6'  $$ .% @A4# =H9!I!7!73!733#vþ¤G.þ»,6"5bb”—þlúú!”>ÿù I,"&&'732>76654&&#"!!6632ìA;@:?O/  K?7>#?`þÃ0T(FQ" ":\ 8+  &!â-' 7G'@ÿù=P,D"&&5467>32.#"3>32'2>76654&&#" QX! "*=Z@AP,I1*X77&&5467>32'26676654&&#"26676654&&#"ÿ>P- $8(+* 4i[KX% B:+/ 7kUK[0 "MB7##"&&5467>322>76654&&#"ç:A;;?R4! ,M32'2>7>54&&#"k þóHU$#7WBJT$ #8WE:M0  GD7H. Cþä,*"aCRmA! -':I-RmA! !8dN-F6!" 9dN!NF ÿÿÿýÿ˜JQëœÿÿÿœ•Rëœÿÿÿáÿœ.Sëœÿÿÿßÿ˜$Tëœÿÿÿåÿœ(Uëœÿÿÿîÿ˜,Vëœÿÿÿûÿ˜FWëœÿÿÿœ1Xëœÿÿÿöÿ˜OYëœÿÿÿðÿ˜;Zëœÿü_}."&&5467>32'2>7>54&#"š4;  "<33;   ;7).  +5(/ + ! 8'>L) "!9&>L(!A;*! ! A;)8! ªx37736Ea jOJ+&3þˆÿöC}+#7>77>76654&&#"766323  } *#DJ (2# …ç* ) -    0 $"ÿôÿü9}6"&'732676654&##732676654&#"76632qG?2J#%PP8 66:<J@ + %?* !% ") !  ÿú=x37#733733#ÂÛÏ*Ͱ$==Zý��!ZÿüAx'"&'7326676654&#"73#6632„ G>&126$)ëÈ-37#A  % Â!! +1ÿü[}%9"&&5467>32&&#"36632'26676654&#"œ.?  ,A1@<+6!  08C> <@-0 ,632. #"5%?N) <1 .  .1!"%   !%Fx3#7!%ðçñW!þ¥ ÿüd}(;M"&&54676675&&5467>32'2676654&#"72676654&#"š8> - %=,N? ,!C@4; .:'40\79 ,857 -!& #)  %$-!   ²  ÿüP}%9"&'732>7##"&5467>32526676654&#"x@<,5!  08C> =8/> ,A32.3,1 , <1 .  .1 !%7%?N)¿  !!&  S0 ±."&&5467>32'2>7>54&#"Û4;  "<33;   ;7).  +5(/ +0 ! 8'>L) "!9&>L(!A;*! ! A;)8! [4ë¬773wEa jO4J+&3þˆ74„±+7>77>76654&&#"7663237  } *#DJ (2# …ç4* ) -    0 $"50z±6"&'732676654&##732676654&#"76632²G?2J#%PP8 66:<J@ + %?0* !% ") !  ;4~¬7#733733#ÛÏ*Ͱ$==4Zý��!ZD0‚¬'"&'7326676654&#"73#6632Å G>&126$)ëÈ-37#A0  % Â!! +1Q0œ±%9"&&5467>32&&#"36632'26676654&#"Ý.?  ,A1@<+6!  08C> <@-0 ,632.0 #"5%?N) <1 .  .1!"%   !f4‡¬#7!fðçñ4W!þ¥L0¥±(;M"&&54676675&&5467>32'2676654&#"72676654&#"Û8> - %=,N? ,!C@4; .:'40\79 ,857 -0!& #)  %#.!   ²  F0‘±%9"&'732>7##"&5467>32526676654&#"¹@<,5!  08C> =8/> ,A32.3,1 ,0 <1 .  .1 !%7%?N)¿  !!&  ÿÿk ¸!QY¤ÿÿs¤RY¤ÿÿO¤œ!SY¤ÿÿM ’!TY¤ÿÿS¤–UY¤ÿÿ\ šVY¤ÿÿi ´!WY¤ÿÿ~¤ŸXY¤ÿÿd ½!YY¤ÿÿ^ ©!ZY¤ÿ“°#3êO.ý±°ýPÿÿÿó£°&\'oÝS`ÿÿÿóÿü™°&\'oÝT`ÿÿ7ÿü#±&]'ogTêÿÿÿóp°&\'oÝUÿÿ5ó±&^'o`U�ÿÿÿóÿüİ&\'oÝY`ÿÿ5ÿüG±&^'o`YãÿÿDÿüS°&`'olYïÿÿ/ÿü°&b'oYœNA3730AAÿÝÿ›NA726677#73# 0 !e AK#­þ7373o0�0½AAþCAAÿÝÿ›¬þ726677#7373# 0 !x0e AK#"AA¯A !73!73373q0þo0€0AAAAAAÓ°7>77373D  &  K0­,UQH>““>HQU,­AAÿúÿN¸þ7>7373    Z0²“>HQU,,UQH>“oAAf߸/377>77>76654&&#"7>3273�".%.A3'/0?:0G-.$3$%N0­W%% /% "!   +" 7.#  U­AAÿ÷ÿFpþ/3".5467>77>77332>773±0G-.$3$%$".%.B2'/0?:n0º +"  6.#  UW$&  /% "!  wAAC €L73C 0  AA\ñ;¾7"&5467>32µ3&+$5& +ñ ") !(KA¼°7'7'7737'É)› Ÿ}u&+� Ÿ}vA¢X#KLW£¤Z#MJV¢ÿÿ„°'~±~BŸ°37#737#73733733#3##7#737#PYgo[z‚^#^Ç^#^nv[�‰Y#YÇYiÇ[ÇÊ"Î"ÔÔÔÔ"Î"ÊÊÊìÎÿ³ÿɦç3MÊ)þ57üâpÿÉ ç3êz$y7üâÿÿÓ°~ÿÿÙ°!²ÿÿf߸€ÿÿ0ÿø©°�9²ÿÿ >LŽ >L73- AA-ÿøí¸+5".54>32'532>54.#"7&&553�Ia77aIIa77akD"?pT00Tp??pT00Tp+D7aIIa77aIIa7uRRH0Tp??pT00Tp??pT0ç)w4cc4w)(ÿøç¸+:HXft"&546632"&&54>32'2654&#""&&54632'26654&#"7"&54632'26654&&#"'2654&&#"ˆ/B)6%%Aì-J,-;"7997//Ù6)B//A%% Å7::7!;--;!..£ ¥97-J,-;"79¾)6%%A//B< þÕ,J-7997";-<//³B//A%%&%< ¾..#ÿòÁ '!!'²[êWU èZç® þó®þìª;ÿjaç.54667>73ƒ   %-;&!"7.'$ –(DH-GX5KlQ@>$"76654&&'3J"7.'$!   %-;&–"$$ÿj€ç4.546776654򱚕>73  %2*8 #/%.&-!  – '*  s  /'<s 91% '-3y&?( /# y6-ÿÁÿjç4>77>77&&546776654&&'33"?.& .   # &1*8 #.–'-3y'>) /# y5. '*  s  /'; s 91% ÿjkç3½šw¯w–}!üÍ!ÿÊÿj ç77'736v¯wš½–!3!üƒ-�¸!"&&54663�gŸZZŸgY�fgœY`¸12hžZZž¸Yœgf�Y-�¸34663-ZŸg\gœYýH`¸12hžZ¸Yœgþ¤= %073=á $$H 0073Há $$AœA7!AT""K7A7!Kå""ÿÿ= %0œÿ°ÿ` ÿ€7!PT  ÿTÿ€5!5!Tþ¬T  Y ÿÝÿ›NA726677#73# 0 !e AK#ÿÝÿ›ÌA726677#73#726677#73[ 0 !— 0 !e AK# AK#h W°7>3"3#7>3"3æ ! ® !  K# AK# Ab Q°726677#73#726677#73à 0 !— 0 !  AK# AK#h Ù°7>3"3h !  K# Ab Ó°726677#73b 0 !  AK#Lc³þ %'73#'73=Y«$£L·Y«$£LcÍÎÎÍÍÎÎÍ.c–þ 77'3#7'3Ç£LY«½£LY«cÎÍÍÎÎÍÍÎLcþ7'73¥Y«$£LcÍÎÎÍ.cýþ77'3.£LY«cÎÍÍÎsÆ(° 773#773Ø'&|'&Æ‘YY‘‘YY‘tÆÄ°773t'&Æ‘YY‘(ÿÂ9î3f>ê'í=>––þdþpÿöÿÂî3 î<">é>žŽþjþjKÿ­T.37"&&5467>32.#"3267ô¶$¶Qf/&/B_B;712AZ<)!(ZK#R35SVüªK>?&fD^M(  "EtXFd#21"?ÿøÔ¸'+7.5467>32&&32673ã=H '9T?,+G"7F, :4O-3<–"–D81L(Yn:"1_O'I,."LÀý@Kÿ­ˆ23#37"&&5467>32.#"3267úl"þ”¢l"þ”•Qf/&/B_B;712AZ<)!(ZK#R35SVüªVüªK>?&fD^M(  "EtXFd#21",ÿñê¾*C'7.5467667'766327'#"&'2>76654&&#"Bz RNSC>Mru TNTACP¤DN+ C;6G, D| O4Id ƒzsw N4If ƒ|4`L5N"% 7U=6N"$7ÿøô¸?C7".'76676654&''&&5467>32.#"3è2.)"11!AG# š0* .K9:7883233#7#7!'2667>54&#"73æTI$5O81@#A#�=H쇲KO(CK0A, AÎÿH1A6!AW2$3ýiS(' Hh)[I 9.(K=27#*#ÿø�¸9"&&5467#73667#73>32.#"!!!!3267^Qf/a` _`/DdJ;712H^=)Nþ± Nþ²([J#RQ>?:#"@"Ug4  ,ZL"@"#821"ÿÿB·ç!72>7#737>3"3#ç -:'¼i h$0?* (8)!† …·&&/>¾ !32.#"32>77#733@P% '9T=B<>E$32.#"!%7!%7!JZ$>gP5- 54LZ1Liþ_žþ‚ž"£D^8 73#<4NNNN6$5óóòò/bD^>) $ /HjMö!y!ÿø,!,y,!,Û 3Q=F^9 3�$3>773#6654&&'#3Z (;Y?$LW% Z$Z JA�$�FU1X¨>[?%KK7,H-þX¨,C&+ýj–7_Iþb$ç°7!333##$½ý\“"-…$“"þÓ…Nþ²°ý’nýPný’/á°(3#737!23##!32667!7!6654&&##=drt(AF^^.N=þú;BúEI" þm“83úÕ »6"" 'F6 þî4'I1 !'ø°'7!%7!!2#!32>76654&&##¶ýg¶ýL“AF-P?þú;Bú6C& 83úŒ""…""ýï°6"-(K:"þî4-@(+'ÿæ‹°#3!2#!7!2>76654&&##'7!=“AF-P?þc‘6C& 83ú‹{°6"-(K:""-@(+'ýr� ^¹°#'!732>7>54&&##7!#7##7! þ¾ï.@, 4/þ½ ( #6O8³>þ­*%?/ &"  3*;M+þÚÜ ]¸373>32.#"!7!JZ$>gP5- 54LZ1Liþr€"£D^8 3232673#"&'&&#">3232673#"&'&&#"U 80 71D 80 71*$) "$  "¾$) "$  "Mù»c7>3232673#"&'&&#"M"80 80ù#* "%  "A5×%7!7!„(þ•�/5¹"Ûi¼³í3#iÌ4J$D¼¼1þÏþæ<9ÐÇ&:M7"&&5467>32>32#"&&''2667.#"!26676654&&#"ûHT# 2bUKT* CaEIR" 5U?KU* D_HE_A'C4LV) BLT* A:E_A K9:*'=U-*C((C*:*'.G1)D((D) 0L+ 7>3"#+_$1%- _"4¾.'l",  ) ý—#0ÿÿ'°¸ ÿÿÿýW° ÿB̰!#!»ü»$´þL´¾nü’Lü´ÿB½° 77!!! ˜íüþ/ïþh;&—“"þnþh"ÿ–Š'73ÅlAaj‡&þbj}'þˆ<ü”1ÿøç#;"&&5467>327.'73'2>76654&&#"òIU# 3YI7K0)''3 !4PADM+ A;CO* D/-M1Qh90WR&!am2@:HdA$ 0[I)B!,1\I2J # ÿÿÿB+þ Yÿøà¸2Ja33"&&5467>32'2>76654&&#""&&5467>32'2>76654&&#"]T+ý¬H,5 "8.,4  "8.#* %"*  %},5 "8.,4  "8.#* %"*  %°ýP7 :(=L) ;)>L("A:*8A;(8! þŸ :(=L) ;)>L("A:*8A;(8! ÿø\¸0G]tŠ33"&5467>32'2>76654&#""&5467>32'2>76654&#""&5467>32'2>76654&#"^+ý¡h<1  /&(0 .)" !&# !§<1  /&(0 /)" !&# !<1  /&(0 .)" !&# !°ýP(2"5B$ 1!5C# "71#0 62". N(2"5B$ 1!5C# "71#0 62". þn(2"5B$ 1!5C# "71#0 62". Uÿ¯6³7'µ`qp_Q/*ÿÿ*ýÑ7À<¡%7!5!'=*ýÐ0*ÿÀ_"`qUÿ«6°'37Æq`"_Uÿ+1ýÏ+7À<¡%'7!!,õõ+;ýÅÀpq`"7À<¡ %'7!'7!6ÿÿ+\*ÿÿ*þ¤Àpq``qp_Uÿ«6¸ '7'7Æq``qp__Uÿ+d*ÿÿ*þœ+7ÿ]T¸ '7'75!Æq``qp__ÿUÿ+d*ÿÿ*þœ+þ³""ç;7�Žçþã0ÉMæ70É�«;È7!­�«É;æ-;þãÉŽ�Qñ± 33'¾mÿ4mÿôdóXYþ§þ¨I=þ¸\º#3!%266554&&#"7"&554632\¹þ¥>X..X>>Y//Y>$$##ºýF‡1R2B2R11R2B2R1_#v##v#=ÿ”i¸_u".54667>32##7##"&&5467>3237332>7>54.#"32667""'267>54&#"„[}L# ':W€Za�M!   &1#fO86B ,E4,=#VV  DsUb�S3$ AoU-C0 6;A  9B.<& 7l "?2GX6X€Y8 "@2HW6OY) C/-(<(DX1?þk"MF7XF,5 &Q‰i5WE+5  Ï"=E>2+ (M?(;/KÿøÝ¸G".5467>75&&5467>32.#"33#"32673#RNf;  ,>%-, !BoV KIA=Xn>?3333æNS^' "8ZC.±B±$±�n*(C,=S4 üÀ@üÀGÿUv¸So"&&'7326676654&''.5467>&&5467>32.#"'26676654&''&&#"óA;>??M),&Ó)#;+Ed<A;??BO'%¨-9"8, -?P½* ò + ÷'«!.  : ! &!A)  ;=!2 / " !E,  ,8 6* G5+ F Hÿø²¸3X"&&5467>32'2>76654&&#"7"&&5467>32&&#"3267<\k-!)?eN]k- )@fSG];' (\NG];'(\Œ/;  #9-5 -)2  -70+87&mL^~N(88%nK^~N( #Gw[Ml$0, #Gw[Nl$/, ˆ $$4$@L&  A7#3%Hÿø²¸+ER"&&5467>32'32#'#2>76654&&#"326676654&##<\k-!)?eN]k- )@f´O”** +"” BG];' (\NG];'(\3}$#…87&mL^~N(88%nK^~N(¥t  8 šš‹ #Gw[Ml$0, #Gw[Nl$/, C  r�À°333#7##'###73#QAD´A5©?5Î32'2>76654&#"á)0 2))/ 2(!&  +!' "� (/; (.;  /%'  /%%WŠÑ°3WQ)(9Š&•‘7Šö° 3#3»' ›' Š&•‘&•‘ÿ_ÿç3Á#Á¡ˆüxÿ_þç33�K#K™K#K†aþŸýÙaþŸÿùÆ·;"&54667>327667>54&#"3267»1/ -8I0")%BWc32/+WN<#"1)" #$&N. 48:A>J+X‹a3&%^e^L # EV[T!9Tj@!81)6+((+ \˜° 3'?3…]†‰."‡ŠiÒººþ. ˜°37'?'?3…"‡Š3†‰."‡Š3†‰.ºôººôºZÿø|¸$1".54>32!32>73!4.#"kMe;;eMMe;þ 4U@BX3$:fþÄÚ 4V@@V4 (N~^^~N((N~^Wp? G@DS+mZrAAr=¸ '=3333##%73'"&&5467>32'2>76654&#"=“"-…$“"þÓ…wðG+3 1(+1 1+!&  +!' "°ý’nýPný’í   ).; *.;  /%&  /%%<«¶ 33%!<#)#ýµ'þíþì•!þßþk!iþïÿÿó¸#!ô¸ýHEA¶ç726677#73E 0 "A AK" ÿÿа&IÇÿÿT‹d¬3ÿÿŠ˜°ÇTŠ^Ç73#73& + ý + Š====TŠŒÇ73T + Š==g]ãç'73Éb,O]……J]ç773J‡0š]……L^wÔ 573#573ïZ.l¿Z.l^qqqqHƨ°773H)$4Æ‘YY‘K^Pè773#'K‡.OP~^……llg^lç'7373¶OP}‡^„kk„]Uhâ"&&54673326673Ô/4!10/6U $ 3%3&VPB +"&&5467>32'26676654&#"Â+/ +%+/ ,)(# *'# P   $  $      L]¦Ç>3232673#"&'&&#"L 3)!3)]$) "#* "T‹d¬7!T ‹!!hPN'76677>76654&#"76632“ /0 "&?'2 P    h^–ç '533'53ÂZ*G¦Z*G^„„„„JYUæ>32#6654&#"J6-03!10/Y3&# 2&K^¼ 7>3"3K "^K#%A0âÙ`73266773#09 #"â #& ÿ¢ÿEÿÚÿ~73^ , »99ÿ«ÿqµÿ®73#73} + ý + �====ÿšÿ ÿÂ726677#73f 0 ä AK#ÿ¡ÿB%773_hY¾ËËÿ®ÿ<,"&&54673227" 71+Ä%R" /5  ÿ²ÿ0½ÿ½"&&54673326673)/4!10/6Ð $ 3%3&ÿ©ÿg¹ÿˆ7!W ™!!Ko73ëK$$3î67!3üî$$TŠ^Ç73#73& + ý + Š====TŠŒÇ73T + Š==g]ãç'73Éb,O]……J]ç773J‡0š]……L^wÔ 573#573ïZ.l¿Z.l^qqqqK^Pè773#'K‡.OP~^……llg^lç'7373¶OP}‡^„kk„]Uhâ"&&54673326673Ô/4!10/6U $ 3%3&VPB +"&&5467>32'26676654&#"Â+/ +%+/ ,)(# *'# P   $  $      Om©×>3232673#"&'&&#"O 3)!3)m$) "#* "T‹d¬7!T ‹!!ÿ¡ÿB%773_hY¾ËËÿ®ÿ<,"&&54673227" 71+Ä%R" /5  TŠ^Ç73#73& + ý + Š====TŠŒÇ73T + Š==g]ãç'73Éb,O]……L^åè573Lk.~^……L^wÔ 573#573ïZ.l¿Z.l^qqqqK^Pè773#'K‡.OP~^……llg^lç'7373¶OP}‡^„kk„]Uhâ"&&54673326673Ô/4!10/6U $ 3%3&VPB +"&&5467>32'26676654&#"Â+/ +%+/ ,)(# *'# P   $  $      Om©×>3232673#"&'&&#"O 3)!3)m$) "#* "T‹d¬7!T ‹!!hPN'76677>76654&#"76632“ /0 "&?'2 P    c^`Ô #'73#'73»<.*¡<.*^qqqqJYUæ>32#6654&#"J6-03!10/Y3&# 2&K^¼ 7>3"3K "^K#%A0âÙ`73266773#09 #"â #& ÿ¢ÿEÿÙÿ~73^ + »99ÿ«ÿqµÿ®73#73} + ý + �====ÿšÿÿýÿÂ726677#73f 4 ä!A_ÿ¡ÿB%773_hY¾ËËÿ®ÿ<,"&&54673227" 71+Ä%R" /5  ÿ²ÿ0½ÿ½"&&54673326673)/4!10/6Ð $ 3%3&ÿ©ÿg¹ÿˆ7!W ™!!K]¨ç573K/.B]……jî¶x573j.1î……]Uh–"&&54673326673'773Ô/4!10/6a‡0šU $ 3%3&·……]Uh–"&&54673326673''73Ô/4!10/6b,OU $ 3%3&·……]U}·?"&&54673326673'76677>76654&#"76632Ô/4!10/6? /0 "&?'2 U $ 3%3&ª    qUËv3"&&54673326673'>3232673#"&'&&#"÷/4!10/6³ 3)!3)U $ 3%3&·$) "#* "K^[™773#'?3K‡.OP~;‡0š^……ll±……K^P™773#'7'73K‡.OP~–b,O^……ll±……K^€º0773#'776677>76654&#"76632K‡.OP~] /0 "&?'2 ^……ll¤    X^¸y$773#''>3232673#"&'&&#"X‡.OP~ 3)!3)^……ll±$) "#* "]Uh—"&&54673326673'573Ô/4!10/6;k.~U $ 3%3&¸……]Uh–"&&54673326673''73Ô/4!10/6b,OU $ 3%3&·……]U}·?"&&54673326673'76677>76654&#"76632Ô/4!10/6? /0 "&?'2 U $ 3%3&ª    NU¨v3"&&54673326673'>3232673#"&'&&#"Ô/4!10/6³ 3)!3)U $ 3%3&·$) "#* "K^cš773#'7573K‡.OP~bk.~^……ll²……K^P™773#'7'73K‡.OP~ub,O^……ll±……K^�º0773#'776677>76654&#"76632K‡.OP~^ /0 "&?'2 ^……ll¤    K^°‰$773#''>3232673#"&'&&#"K‡.OP~ 3)!3)^……llÁ$) "#* "ÿÿ\º÷aÿ«"(2.#"&&5!#"'#667#7267#'7'373'¹5-E]0´/\E+6•_/¯ ^˜2_í#`x't\#bU & ,0Ný²0, & k5ýÏ9 Gý¹.1¦rIrrIrFô¼ 21!%53!!54676654&&#"#&&54>32ôþí<ë�þp³!# &'"'1=45:,¼ýDcFF1XþM? (+&) #  /5&&2*2;50ß!Ï7"&&546632¦82 28;3 3ß235445320Þ!Ï7"&&546632¨!7 7!"6!!6Þ 7!"6!!6"!7 -í¸ !"&&546632�gŸZZŸghžZY�fgœYYœgþ¤;ÿ,ê° 573!3#!#2¼ÀýÉ»÷¯ãÔU»8ýÈ<°ýPÿÿÿ,6° 573#!535!º¼À§þp»»7ÔU»<<<t<<ÿÿ6°5!5!7ýÉ7t<<ýŒ<<<°13<°ýP-.ë‚ )6CQ%'6654&'7&&54677&&54677&&5467'6654'7'6654&'7E >LL> J\\þDJ\\J =ML>1<=1 %--$  V  ( $--% 2<<.2'‚ONƒ&3.ž^^�//�^^ž.3&ƒNO‚'3h>>h3M..M222333322t3M..M3h>>h,.ø‚ %3%'6654&'7%"&54632'2654&#"'6654&'7R >LL> J\\þþ1==11==1Ž $--% 2<<.2'‚ONƒ&3.ž^^��=11==11=<“3M..M3h>>h-.r‚ (7'6654&'7''6654'7'6654&'7Ì >LL> J\\È  ( $--% 2<<.2'‚ONƒ&3.ž^^�›3322t3M..M3h>>h-ÿŒÄ¸.54>32x:dR; 3[xEEx[4 ;RetRbjo5Gx[22[xG6nkaR0Ü]Ò7"&54632«=>>=%@11@ÜH33H'**'ÿÿIÿø ‰&?Ô²r°1!!!rýÊ6°<ýÈ<ÿÿÿ,p° 573!5!#!53º¼¾ýËqáþp»ÔU»8<ýP<<ÿÿq°#5!!5!6ýÊr<8<ýP,.ø‚ '37&&54677&&54677"&54632'2654&#"ÒJ\\J =ML>1<=1 %--$Y1==11==1./�^^ž.3&ƒNO‚'3h>>h3M..M$=11==11=<-.r‚ (7&&54677&&54677&&5467ÓJ\\J =ML>1<=1 %--$  ./�^^ž.3&ƒNO‚'3h>>h3M..M2223ÿÉàç!<'737%"&&5467>32'2>76654&&#"„K(ý4WHZj."+@dKZj."+AeNAX:("(YJAX:(! (Z{YüâfU/88&nJ`€M& 89'kJ^~N("Dw^Ki#2+ Dw^2P>1+ ÿÉàš!<B'737%"&&5467>32'2>76654&&#"573„K(ý4WHZj."+@dKZj."+AeNAX:("(YJAX:(! (ZÂk.~{YüâfU/88&nJ`€M& 89'kJ^~N("Dw^Ki#2+ Dw^2P>1+ ö……Iÿ�®¸9'3'"&&5467>32'2>76654&&#" P(O÷Zj."+@dKZj."+AeNAX:("(YJAX:(! (Zs‘�k88&nJ`€M& 89'kJ^~N("Dw^Ki#2+ Dw^2P>1+ Kÿ­T27373"&&5467>32.#"3267ô$~$‰Qf/&/B_B;712AZ<)!(ZK#R35Sbbú\\ýQ>?&fD^M(  "EtXFd#21"?ÿøÔ¸'+/7.5467>32&&32677373ã=H '9T?,+G"7F, :4O-3<"`"D81L(Yn:"1_O'I,."L]]```Kÿ­ˆ23#37"&&5467>32.#"3267úl"þ”¢l"þ”•Qf/&/B_B;712AZ<)!(ZK#R35SVüªVüªK>?&fD^M(  "EtXFd#21"7ÿøô¸?CG7".'76676654&''&&5467>32.#"7373è2.)"11!AG# š0* .K9:78832.#"32>77#737373@P% '9T=B<>E$32'2>76654&&#"êD)ýÐL=ÂIU$ "3O;IT$ "3N?6G, D;CO* DÕQý”ZI//+L2A\32'2>76654&&#"773êD)ýÐL=ÂIU$ "3O;IT$ "3N?6G, D;CO* Dg‡0šÕQý”ZI//+L2A\76654&&##t}™|ýg„¡†g“AF-P?þú;Bú6C& 83ú""…""…""…""þt°6"-(K:"þî4-@(+'F˜°3#73'#73'3333#3#å8×Ã-}iZ'�6*Ái|`Ã×8"w"ðþw‰ð"w"þûZ>   ! 2> DQ ` k { ‡ — ­¾Ñã÷-; I R_ eqy }‡Œ“ ™!¡" ¥#®  ³ S  g 6s "© Ë  å H M pe 6Õ 6Õ "  6-  c m ƒ  ™  ¥ m "¯ Ñ  g é  !  7  W  o  ,�  "» &Ý $ ('  O *o "™ » × ó    + C S [  o y  ‡  “ !£ "« # ½SairaItalicWeightWidthThin ItalicExtraLight ItalicLight ItalicItalicMedium ItalicSemiBold ItalicBold ItalicExtraBold ItalicBlack ItalicSairaItalic-ThinSairaItalic-ExtraLightSairaItalic-LightSairaItalic-RegularSairaItalic-MediumSairaItalic-SemiBoldSairaItalic-BoldSairaItalic-ExtraBoldSairaItalic-BlackUltraCondensedExtraCondensedCondensedSemiCondensedNormalSemiExpandedExpandedThinExtraLightLightRegularMediumSemiBoldBoldExtraBoldBlackCopyright 2020 The Saira Project Authors (https://github.com/Omnibus-Type/Saira)Saira ThinItalic1.101;OMNI;Saira-ThinItalicSaira Thin ItalicVersion 1.101Saira-ThinItalicSaira is a trademark of Omnibus-TypeOmnibus-TypeHector Gatti with collaboration of the Omnibus-Type teamhttp://www.omnibus-type.comThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://scripts.sil.org/OFLhttps://scripts.sil.org/OFLSairaThin ItalicSairaItalicWeightWidthExtraLight ItalicLight ItalicMedium ItalicSemiBold ItalicBold ItalicExtraBold ItalicBlack ItalicSairaItalic-ThinSairaItalic-ExtraLightSairaItalic-LightSairaItalic-RegularSairaItalic-MediumSairaItalic-SemiBoldSairaItalic-BoldSairaItalic-ExtraBoldSairaItalic-BlackUltraCondensedExtraCondensedCondensedSemiCondensedNormalSemiExpandedExpandedThinExtraLightLightRegularMediumSemiBoldBoldExtraBoldBlackÿôÿ`#‚$ÉÇ     b­c®�%&ýÿd'é(e È!"#$%&Ê'(Ë)*+,-)*.ø/012+345,6Ì78Í9Îú:Ï;<=>?-@A.B/CDEFGHâ01IJKLMNOPf2ÐQRÑSTUVWXgYZ[Ó\]^_`abcdef‘g¯h°3í45ijklmn6opäûqrstu7vwxyz8Ô{|Õ}h~€�‚Öƒ„…†‡ˆ‰Š‹Œ�Ž�9:�‘’“;<ë”»•–—˜™=šæ›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓDiÔÕÖרÙÚkÛÜÝÞßàlájâãäånæm çEFþoèéGêêëìíHpîïrðñòóôõsö÷qøùúûüýIJþùÿKL×tvw  u   MNOãPQ !"xRy#${%&'()*|+,-z./012345678¡9}:±SîTU;<=>?@VABåüCDE‰FWGHIJKX~LM€N�OPQRSTUVWXYZ[\]^_`YZabcd[\ìeºfghij]kçlmnopqrstuvwxyz{|}~ÀÁ�ž€�‚›ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚ¼ôÛÜõöÝÞßà«£"¢Ã‡ á?âãäåæçèéê ^`>@ëìíîï²³ðBñÄÅ´µ¶·©ª¾¿ òóôõö÷øùú„û½üý¦÷þÿ…–   ïð¸ �!•”“§a¤A’œ  š™¥˜Æ¹# ˆ†‹ŠŒƒ_è‚ !"#$%&'()*+,-./0123456789:;<=>?ŽÜC�ߨáÛÝÙÚÞà@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Abreveuni1EAEuni1EB6uni1EB0uni1EB2uni1EB4uni01CDuni1EA4uni1EACuni1EA6uni1EA8uni1EAAuni0200uni1EA0uni1EA2uni0202AmacronAogonek AringacuteAEacute Ccircumflex Cdotaccentuni01F1uni01C4DcaronDcroatuni1E0Cuni01F2uni01C5EbreveEcaronuni1EBEuni1EC6uni1EC0uni1EC2uni1EC4uni0204 Edotaccentuni1EB8uni1EBAuni0206EmacronEogonekuni1EBCuni01F4Gcaron Gcircumflexuni0122 GdotaccentHbar Hcircumflexuni1E24IJIbreveuni01CFuni0208uni1ECAuni1EC8uni020AImacronIogonekItilde uni004A0301 Jcircumflexuni0136uni01C7LacuteLcaronuni013BLdotuni01C8uni01CANacuteNcaronuni0145uni1E44Enguni019Duni01CBObreveuni01D1uni1ED0uni1ED8uni1ED2uni1ED4uni1ED6uni020Cuni022Auni0230uni1ECCuni1ECEOhornuni1EDAuni1EE2uni1EDCuni1EDEuni1EE0 Ohungarumlautuni020EOmacronuni01EA Oslashacuteuni022CRacuteRcaronuni0156uni0210uni1E5Auni0212SacuteuniA78B Scircumflexuni0218uni1E62uni1E9Euni018FTbarTcaronuni0162uni021Auni1E6CUbreveuni01D3uni0214uni01D7uni01D9uni01DBuni01D5uni1EE4uni1EE6Uhornuni1EE8uni1EF0uni1EEAuni1EECuni1EEE Uhungarumlautuni0216UmacronUogonekUringUtildeWacute Wcircumflex WdieresisWgrave Ycircumflexuni1EF4Ygraveuni1EF6uni0232uni1EF8Zacute Zdotaccentuni1E92G_tilde.loclGUA Y.loclGUAYacute.loclGUAYcircumflex.loclGUAYdieresis.loclGUAuni1EF4.loclGUAYgrave.loclGUAuni1EF6.loclGUAuni0232.loclGUAuni1EF8.loclGUACacute.loclPLKNacute.loclPLKOacute.loclPLKSacute.loclPLKZacute.loclPLKA.ss01 Aacute.ss01 Abreve.ss01 uni1EAE.ss01 uni1EB6.ss01 uni1EB0.ss01 uni1EB2.ss01 uni1EB4.ss01 uni01CD.ss01Acircumflex.ss01 uni1EA4.ss01 uni1EAC.ss01 uni1EA6.ss01 uni1EA8.ss01 uni1EAA.ss01 uni0200.ss01Adieresis.ss01 uni1EA0.ss01 Agrave.ss01 uni1EA2.ss01 uni0202.ss01 Amacron.ss01 Aogonek.ss01 Aring.ss01Aringacute.ss01 Atilde.ss01G.ss01 uni01F4.ss01 Gbreve.ss01 Gcaron.ss01Gcircumflex.ss01 uni0122.ss01Gdotaccent.ss01R.ss01 Racute.ss01 Rcaron.ss01 uni0156.ss01 uni0210.ss01 uni1E5A.ss01 uni0212.ss01abreveuni1EAFuni1EB7uni1EB1uni1EB3uni1EB5uni01CEuni1EA5uni1EADuni1EA7uni1EA9uni1EABuni0201uni1EA1uni1EA3uni0203amacronaogonek aringacuteaeacute ccircumflex cdotaccentdcaronuni1E0Duni01F3uni01C6ebreveecaronuni1EBFuni1EC7uni1EC1uni1EC3uni1EC5uni0205 edotaccentuni1EB9uni1EBBuni0207emacroneogonekuni1EBDuni0259uni01F5gcaron gcircumflexuni0123 gdotaccenthbar hcircumflexuni1E25ibreveuni01D0uni0209 i.loclTRKuni1ECBuni1EC9uni020Bijimacroniogonekitildeuni0237 uni006A0301 jcircumflexuni0137 kgreenlandiclacutelcaronuni013Cldotuni01C9nacute napostrophencaronuni0146uni1E45enguni0272uni01CCobreveuni01D2uni1ED1uni1ED9uni1ED3uni1ED5uni1ED7uni020Duni022Buni0231uni1ECDuni1ECFohornuni1EDBuni1EE3uni1EDDuni1EDFuni1EE1 ohungarumlautuni020Fomacronuni01EB oslashacuteuni022Dracutercaronuni0157uni0211uni1E5Buni0213sacuteuniA78C scircumflexuni0219uni1E63longstbartcaronuni0163uni021Buni1E6Dubreveuni01D4uni0215uni01D8uni01DAuni01DCuni01D6uni1EE5uni1EE7uhornuni1EE9uni1EF1uni1EEBuni1EEDuni1EEF uhungarumlautuni0217umacronuogonekuringutildewacute wcircumflex wdieresiswgrave ycircumflexuni1EF5ygraveuni1EF7uni0233uni1EF9zacute zdotaccentuni1E93g_tilde.loclGUA y.loclGUAyacute.loclGUAycircumflex.loclGUAydieresis.loclGUAuni1EF5.loclGUAygrave.loclGUAuni1EF7.loclGUAuni0233.loclGUAuni1EF9.loclGUAcacute.loclPLKnacute.loclPLKoacute.loclPLKsacute.loclPLKzacute.loclPLKf_ff_f_if_f_luni0394uni03A9uni03BC zero.zerozero.lfone.lftwo.lfthree.lffour.lffive.lfsix.lfseven.lfeight.lfnine.lf zero.lf.zerozero.osfone.osftwo.osf three.osffour.osffive.osfsix.osf seven.osf eight.osfnine.osf zero.osf.zero four.ss01six.ss01 nine.ss01zero.tfone.tftwo.tfthree.tffour.tffive.tfsix.tfseven.tfeight.tfnine.tf zero.tf.zero zero.tosfone.tosftwo.tosf three.tosf four.tosf five.tosfsix.tosf seven.tosf eight.tosf nine.tosfzero.tosf.zerouni2080uni2081uni2082uni2083uni2084uni2085uni2086uni2087uni2088uni2089 zero.dnomone.dnomtwo.dnom three.dnom four.dnom five.dnomsix.dnom seven.dnom eight.dnom nine.dnom zero.numrone.numrtwo.numr three.numr four.numr five.numrsix.numr seven.numr eight.numr nine.numruni2070uni00B9uni00B2uni00B3uni2074uni2075uni2076uni2077uni2078uni2079uni2153uni2154 oneeighth threeeighths fiveeighths seveneighths exclamdbl exclam.caseexclamdown.case question.casequestiondown.caseperiodcentered.loclCAT.caseperiodcentered.loclCAT exclam.ss02 bullet.ss02 asterisk.ss02parenleft.ss02parenright.ss02bracketleft.ss02bracketright.ss02uni00ADuni2010 underscoredbluni27E8uni27E9uni2003uni2002uni2005uni00A0uni2004CRuni20B5 colonmonetarydongEurouni20B2uni20ADlirauni20BAuni20BCuni20A6pesetauni20B1uni20BDuni20B9uni20A9uni2219uni2052uni2215uni2126uni2206uni00B5arrowup arrowright arrowdown arrowleft arrowboth arrowupdn arrowupdnbse arrowup.ss01arrowright.ss01arrowdown.ss01arrowleft.ss01uniF8FFminuteseconduni2113 estimateduni2116housebar.ss02uni02BCuni02BAuni02C9uni02B9uni0308uni0307 gravecomb acutecombuni030B uni030C.altuni0302uni030Cuni0306uni030A tildecombuni0304 hookabovecombuni030Funi0311uni0312uni031B dotbelowcombuni0324uni0326uni0327uni0328uni032Euni0331uni0335uni0336 uni0308.case uni0307.casegravecomb.caseacutecomb.case uni030B.case uni0302.case uni030C.case uni0306.case uni030A.casetildecomb.case uni0304.casehookabovecomb.case uni030F.case uni0311.case uni0312.case uni031B.casedotbelowcomb.case uni0324.case uni0326.case uni0327.case uni0328.case uni032E.case uni0331.case acute.loclPLKacute.case.loclPLK uni03060301 uni03060300 uni03060309 uni03060303 uni03020301 uni03020300 uni03020309 uni03020303uni03060301.caseuni03060300.caseuni03060309.caseuni03060303.caseuni03020301.caseuni03020300.caseuni03020309.caseuni03020303.caseuniE0FFuniEFFDuniF000notdeforn.001orn.007orn.010dialogorn.015orn.016orn.017orn.018orn.019orn.020orn.021orn.022Gtilde.loclGUA.ss01leftOpenDialogrightCloseDialogrightOpenDialogorn.002orn.003NULLOslash.BRACKET.86Oslashacute.BRACKET.86 Q.BRACKET.64uni20B5.BRACKET.86cent.BRACKET.86colonmonetary.BRACKET.86dollar.BRACKET.64uni20B2.BRACKET.64oslash.BRACKET.86oslashacute.BRACKET.86uni20B1.BRACKET.86yen.BRACKET.48ÿÿÐT¦IKpr†Œ•— ¢½Ã8:}…ˆ›¡ª¬µ·»½Òظ¸ººÀÀÂÂÆÆÈÈÌÌ(6LMNO^oovx~(Fdt73k€*÷€;7€*õ€.7€"*ö€*ô€,H  !"#%&FGHIKL6DO^Eì9t˜³ÅÝë;Y�ÇæAe‰³=[„­Ó µû!R|¦ÐúZìH¨  |  È ø ( XS…µåi³a�w%¼%ô ½@½@@ÀàÀÀà@@½@Àà½@ÀÀà½@@Àà½@@ÀÀà½@@@½@@@@ öö ##22<<>>FF  22((PPPPÿÿþñó û-ÿÿÿZÿZÃÃÝÉùöùöÿ ZZ#2222 PP xx(dd ## ## PP#  ììñóÈÑ  öö ñóö((#ÿÿÿ PP PP(ddìâ(ddÓö(ddìì(xxö  ÿû ü' ý ½Ø=½Ø@½Ø@CC½Ø\½Ø\½Ø\CC¿Ø3! ¿ØZ! ÈØ888ÈØQ88îØîØ+ñØñØñØ( ›L¦\›e¦eçѦþ  ÿÿââ(ØØdFœœœ ÈØÎ8BÈØÎQBûññûññ »ØBEE»ØIEE»ØKEE»ØMEE»ØUE E»Ø^EE»Ø^EE½Ø@½ØS½ØSCC¿Ø>! ÈØH88îØîØ'îØ+ïØïØ!ïØ*ñØñØ çÑ ¦Ž½þ ý ýFFþPP ÿ(( ZZöââ(PPìââP2ddΰ°ÿþþÿÿÿ(ëå   ýL``àØþAAúûþFFööÿ ((ÿ  ììéëìéøÿÿþýÿxxx üÿúýøü&ôúÿÿýðìåý #ÐÇûôè #ÐÇúóç  ýL`áàéØÎ þöúÿûûþ&ôöüöôTÿñû¹)AAÿñû)÷ôôÿ üôþÿ üô,ÿ üüþû- ¡‰, üÞû ¤ˆ7 ûïõ¤ˆ7 úîõ¤‡-ùþÚúK&ô¥ŸâÚ K&ô¥¥âÚ¼ K&ô³¥âÚ¼ K&ô³¥ìÚ¼   ÿ_ÿ†6÷ôÿoû‡,è  ÿ_ü‚>ûêüÿ_ü‚>ûòç  ÿ~ ’*ò÷ù ÿT&‡4ìé÷îý  ¯¯ìì쾆§É4:6ëáÜðÿ3ìö üýúìö   ðáëÿÿ$ðáëÿÿ$ñâçá ÿøöÒ2>üéü øý—€6- ÷øúÆÙÐùýéõúÿë==.ûó¤Š)ôüü뙈) þÿüîœ�,ðüýÿš�+$ õûý”€6) ôóý•�7( òóþûš�*! óþþþ•�6%ðö£‰&þÿÿ øýþýüð ‡+ öüü›‚%åÿÌÚðæÿàÚîúîÿàÚîúîþ àÚîúîÿ©�'ôòúù¢‡*äó§�( þ àýüž„'âÿ§Š*÷ýûø²›ùüþíú³œùýÿí¡ˆ%ÿüüù¡‰&ùþù¢‰&ÿýýù ÎÃùæ!ûîöÿ÷ìó úÍáõ) . ýž…(þàý þ¦‰8ÿôø þ¯š%øùù ¢‰&þüýø šŽ$ úüú ØÌóøñø §�&óïõþ ÜÏ   õ£‰/ ý ãù û †) ýßÿ ¥Ž$ ùõúú ¦�% ùöûú &ôñïçá 22ñöçìöì ÜÒú ø  ÜÒ üûú ¦Ž%òðöþ §�&òïôþ ›ˆ&ðêõ &º’ýßøû û †) üÞÿ ü ‡* Þþ ý¡‡* üÞý ¥‰) ýöúöÿ ¦�# øõûù ¦�% øõûù ¦‘' ùòùú øúøûù  øúøûù9  ú÷ûô <<úõûìõì ÓÌ þ §‘'ÿöïóÿ ÜÑú ù ×Î  þ ú ‡* û Üÿ ý †) ýßý ý¡‡* ûÝý ÿ¡‡* ûÝü ¥‰) üõúõÿ œ‚(ÿÿý÷  ôöñç  öñó &ôôðñ4 &ôêñÿ4 4 ùõòÿ ü¡‰+ù Üþ þ£‡6 ûï÷ ¥Š*ûùûóÿ œ‚(þþýö ßðMÿò÷òü¤ˆ7 úîô¤Š9 ûÿïó×Ì  ú3ZrÜàæÈ¹ ÖË  ø!ØÎúþÛÐ øý)ÊÂüýðú)ÏÂòú+ÍÀöñù§ˆ:øûëòÎÅ ûúûÿ *ä×) ÿòíú¢Š úïûëâú¥�$ ùøõù Š/ÿöü×Ù øÿÿý!ÙÏúöþ"ÛÑþ÷ý"ÛÑþöý*È¿ÿûñö®¿Köé�ƒ(þõþ ˆ-þõü Š/þõü Š/þõû Œ1ÿþöú ÒÆùöõý!×Ìùõòü!×Ìüúòü"¤Œ íöÙó "×Í÷ôü#ØÍüûóü'Ã�åþ,ûîöÿúîö 0®‘ íüÿ®‹ ÷íïêáù2nìâ±â¬ 2nnâìâìììÎÄùþþ ÑÆ÷øõý ÓÇ÷öôü#×Ìüúôý#ØÍøõóû#ØÍûúóû#ØÍûûóû#ØÍõúóû$ÌÆýøîü &ØÏü÷ñü(#,òìåØÍ(#PPììØØìØ(-9îçáÓÇ(-PPçìÓØìØ8æß õåàû ¥´K öÿùé!ÎÆ øùóû!ÎÇÿñðñû!ÒÆ÷õôü!ÓÇööóû"ØÏùþóú$ØÏõýöŸ‚7üïô ™†4ú ñéèüMúôýüÿ�ƒ( ÷óïö"Ç¿÷øïû$ÍÖ ùöâü &ÔÉõîîûÿ&ØÌõîëúÿ)ÝÔôõîü-ÎÁûóîòÿÜÒýóüü÷¶™E îêëßà±™QïðéÜØ%ÛÑöôóþ&ÛÍùóðø?áÚ úëäþ ÓÆôù÷ûþ ÓÆôúùúþ!ÓÇóöóø!ßñMÿôùôÿ6š…,êâÜ÷ââöûû'#,òêåãÜ '#PPêçãÙçÙ,éê ö÷÷5¹üùûúù)£‹& ôõêö)ÜÛþîñíôÿ,æØ÷øý.ÑÊüüÿ —ƒ/ÿñüïø+Üè+þíëóý/Ǻõéæû 0Ⱥðíåû 5×Í÷ûûøCåÞ õèßú Cêß óåßú DåÞ õæßû Dæß ôæÞù ÛÐûíöôù0Ⱥïìåú 3ȼðéãû6ÙÎ öùùö-¤Œ ðøÜö 8ÖÍ øùóø<ÿÿÿýðìæþ 1ÙÐù÷ÿ5ÑÌòòõ5ÖÌ÷ø÷5ÖÌ ÷ø÷8ÖÍ ÷øó÷HÖÍ ÷èã÷ ÿÿä×ÞÔ 5ÖËöùø 7ÖÎ öüôõ :×Î öøôöÿ <ñíîà˽ Bÿüõòãä J×Î öèäö!1ÚÒ ÷ù"K"ûìÙ×û #!¾£Bôäààãå#7(2ðêãçáQ #7(d=ê¡çÉð#7(ddêÝçÉÝÉ$JÒÍ,ûèÔÑù%.ä× ùæöñú%.ä× ûæòòú%/ØÏ üéôíû %/à×þèôñú%P ùéÕÒû&½¡FñáéèÈà&/ØÏ üçôîú &Eüúçðèø&Mÿþùñâß &MÿÿÿðâÞòý'CÙÂôáÑÐý((¸ªêýïþ )3Źýìû)4ƺüìù*WüöõïâÖÏì,H¥®îçóç&,KÑÄùÞ×Ïþ,KÑÆùÜ×Íþ,X÷öìàÊÎë.>÷ úæÃÖ3.?ôç,ëáÞÖæè.Súùòäáôý/Yÿù÷ñàÛ0_ÚÎñâÂÇíý0oǽ% ñãÕâþ2\ŸŠ2äÙÎø3gŸˆ/åÕÈ÷5\š€(ãÚÎõ5f›�( åÖÉõ7LäÔ2éÕÐÈåì>] ûÝÖ±·>kÃÃ÷ÓÐÇêüD[¼ŸÖÏÈÜÿG3„õåØû,  ö  ö öý¦Ž% öóùö  ÿwýˆ4, ôùÿxý‰5+ òù  ÿÿ�, ÿñúÿ˜8$îò  ‚ÿ~ÿ~2ÎÎÎ΂ÿ~ÿ~2Îì΂ÿ~ÿ~Föºöº  ÿûü2ÿÎÎdÿœÿœ<‚ÿöÿöâìâ‚ÿ~ÿ~<ÄöÄ  ÿuÿQøû87ÿþíÿZÿ<ò<ýóÿ_ÿ<ò<óÿSÿ%.G,ÿûøê  ÿkÿCñ< òúÿlÿEò= òûÿlÿFöAó÷ÿpÿIöAò÷ÿ}ÿ[ õ5íòÿzÿW 7 òû  ƒDÛÑøÜÎÁø…EÿãÅ®™þ#ƒHÓÇúÚÓÇö‹J¡ˆFýο«ð l  ÿ÷ø›)* ûÿyøû�*,ûÿvûø“,( óüÿ|ûú—+  üÿ~ûú™(& öÿÿ~üú™(% õÿÿüû™)& õþÿüüš)% õýÿ~üý”4) ò÷ÿwüþ�(( õÿüþ”5* òöÿ~üÿ”4* ôõÿüÿ•5) òõÿýù™)" óÿÿ~ýü™(%  öýÿ}ýüš'$ôýÿýüš)$ôýÿýüš)$ ôýÿwýý�(( ÷ÿxýýŽ)' õÿýý›)# ôüÿ~ýÿ”4) óõÿýÿ•5( ñõÿ}þõ�)  þÿÿvþø“," ðüÿ[æ‚6ÿx�7) ïôÿZæ‚6 ÿuóš, ûìôÿløŠ=þ îòÿwø•- íÿÿ|ù—+ úüÿwö•- ùÿÿp8Š@;ûØëîÿuø’+ èþÿvú“, èüÿ|ú—+öüÿ|ú—+ öüÿuú’+ éüÿvú“, çüÿvø“, ôüÿxù“- æýÿt ø“* óüÿv ø“, óüÿv ú“, óûÿx û“. ôúÿ` …>üù èøÿ` …>üù ðãÿa ‚?öñæöÿa ‚?öñîáÿ` †>üö ç÷ÿ` †>üö ïâÿa ‡?û÷ æöÿa ‡?û÷ îáÿ{ � ûÿc ˆDúïæñÿc ˆDúïîÜÿf ŒD úïåñÿf ŒD úïíÜÿp ûŽ- ÷úøùÿ~ ÿš/üãùÿn ûˆ>þúîïÿv þš, ýïöÿp ” ûÿaþ‚6òýÿ|û�ü&ÿyü•? üìòÿoŒ> úõÿëêÿp�?ùöþêéÿq‡ üü%ÿnŒ?ü íñÿqŽ@øõýéèÿu’DøîöéäÿS ƒCýòëúÿaˆ8 õóÿÿg„BöòùêáÿO ‚> üöêúÿQ ˆC üñëùÿm�> øêñÿO �> úøêûÿP ƒ> úöéúÿn �? ÷èïÿP ƒ? ùöèùÿ|�)÷ÿý&ÿO ƒ?ø÷ç÷ÿUƒDóèúçôÿR„D øîÿèôÿUˆDøîüçôÿTˆD÷ïýæòÿP†B÷ïåöÿQ †Cöóãöÿ} �*ô÷ù!ÿ~ �*úíþõù ÿ} ’*ûñøøÿv †*óóù$ÿf '†*øøýøÿ!2š)óòîôÿR"‚3ñíÿò ÿt$$•,òùýò ÿg$.†+õ÷õô ÿh$.†+îîóô ÿh$.‹+óôõô ÿg%.‹+ òõöóÿi%/Œ, òóôóÿm%3�0 òìíóÿj-¦ÙÿòIÿ0LŸ-õøúûóÿu;w‘- à˹ó   ÿFÿ Ä234þÿxÿUá1 ÿxÿVá1ÿ  ÿ|ÿUá0 ÿ}ÿVá1 ÿdÿDä:'!÷þÿiÿEä:" !÷ýÿpÿKç8-úæúÿsÿMù+" øë  ´ ÓñóùæèÔ´ ÓñóúèçÔ¿"ÔêøÑìÜÁ$Ü0ýôõåú Ò ñýèàËû%Ô÷ùóÝÀ�  ÿSÿ%Ä·FK-$ðûÿRÿ$ŹFN.%ðûÿyÿZÏË84%!óüÿxÿYÐÍ87&"óüÿþÑÔ®b5+ ÿþÐÕ°b8, ÿ]ÿ0äÛI@òóÿ]ÿ0åÛI?ñóÿ]ÿ0åÛI@ñóÿtÿOíÇ#%&ÿkÿDîÒ(ÿRÿ ïÎ:7ðùÿqÿKñê)* ñÿqÿKñê)* ùìÿfÿB÷ß;%ôùÿrÿM÷á6% õøÿrÿU÷ä=% çëÿ}ÿXùÌ/óÿ]þÙû܈ )ÿxÿTüÚ0 ÿ}ÿYýß5  ÿ|ÿUþà0 ÿ&þîÿÙYüòýÿ{ÿUÿà0 ÿ}ÿVÿà0 ÿ%þíÛXþòþÿ}ÿUá1 ÿqÿNâ1 ÿ}ÿ[æ6þÿ~ÿXæ6 ÿjÿGé?$ ÷øÿnÿJé?! öøÿcÿBç<$ ÷þÿmÿFê: õøÿoÿRì$$ ÿsÿHì? ö÷ÿwÿRà;"òøÿfÿBê;÷ÿgÿEê:! õúÿlÿFê:õùÿnÿGê:ôøÿKÿ"Ë3þ/,úÿqÿKß=#òøÿmÿFê:óøÿiÿFë; óøÿiÿGë; ó÷ÿnÿGë;ó÷ÿkÿGï@ öýÿ}ÿZå8$óøÿ}ÿbè? åëÿhÿ@ê=ó÷ÿnÿFë;òõÿ]ÿ>ì;! óüÿbÿ?ì;óûÿfÿCí<õúÿjÿCð; õýÿnÿLð@òòÿoÿIð@ óòÿsÿLð@ òòÿpÿJñ:ÿýöÿÿrÿSò$ ÿtÿOæ<òýÿzÿVç9óúÿ]ÿ?é7' !øÿcÿDî=ýóøÿgÿCî<ôùÿhÿDî=óøÿhÿDî=óøÿmÿEïB òòÿiÿCð; õþÿkÿDð; ôýÿsÿKð@ ñðÿtÿOð8ô÷ÿoÿJñ8öûÿtÿOñ8! 'òôÿtÿTó% ÿtÿWó? æêÿqÿGî> ðôÿiÿEï>ò÷ÿhÿ@ð=òøÿjÿCð; óýÿfÿCñ< óýÿfÿDñ<ü óüÿkÿDñ< óüÿkÿDñ< óüÿqÿKò9ôùÿuÿUô& ÿyÿYø* ÿÿZÛ1 ÿ óÿÿZÛ1 ÿ òÿqÿHí?îôÿZÿ;ò<óÿ^ÿ;ò; ôÿkÿIöAûþò÷ÿEÿøK76Dçêÿjÿ êï÷ÿxÿY î4ñøÿpÿH öAÿñõÿkÿN øBæâÿbÿA ð8 ôüÿ|ÿZ ô4ïóÿ{ÿZ ô4ïôÿ}ÿ[ ô4îóÿtÿT 5!÷ÿþÙ É^.þ+Þïÿ{ÿXë: øäúÿrÿMö:%øåùÿwÿU5 õþÿxÿYî4ÿêøÿxÿU 5 ôýÿyÿV 6 óüÿ|ÿZô4ýèóÿ~ÿN>þú ìÿÿ{ÿZô4ûèôÿ}ÿ[ô4ûçóÿÿP Cýòìúÿ~ÿY8ü óÿÿ}ÿ[õ5úæòÿyÿS$)' ÿyÿS$)' ÿ~ÿG 6 ûúéúÿ~ÿO ?ûùèúÿ~ÿP ?ôðèùÿcÿ93?%ðíÙÿþì`HHQÞÞÿ"þí`CEQÞÝÿoÿK Häéÿ'þò eB=IÝØÿiÿA= ðûÿtÿL#HþýíóÿuÿM%IþþíñÿtÿL%HÿýîñÿuÿM%IýýìñÿhÿD /?ïëâùÿ þÏ! c&ýé÷ÿ\ÿ1#3B÷óñóÿ)þð$ V äëåòÿkÿL%)<éúñüÿÿ`%/+ôöñô ÿ_ÿ2%5Aôííòÿ þ¹:>mæäçà  Íÿ>ÿg_!É«�ë!Îÿ8ÿkRɪ�ç *  ÿØ¿3ç® ÿØÿÎÈHBÿçÿáÝ?ÿÓßÁ- :ýçѦŽ(2öÒì&(ð¾øÓç %ÿÿÿ]þÌÿ{úÛ*úõ ý&Iôþùÿ þþþÿÿÿþ ýøÿñ-ÿÑû'ÿäÿ ÿÿsÿM+ù" ðÿöÿöûÿìÿæ  ýú## üP¾#Ýúò ÿü#-ò<Lÿèöú&ÿôÿ(2ÿðìè¾¾ûþúÿþÿüú÷&ÿô öþøÿ‹ÿo> úøìëÿþë_JIYâãx(ööìÿ‡ÿR6û èûÿwÿH? úøèýÿÛ<ëðúãä×ÿþÿü=öìéÿÿyÿSCúéôÿâÿâ (öööxâˆâˆÿö/ÔÎûÑAA/ÔÑÑÿšÿz(/Göüø n˜DFLTlatnJF AZE FCAT FCRT FGUA FKAZ FMOL FNLD FPLK FROM FTAT FTRK Fÿÿkernmarkmkmk  "zVæY&_Ú @0D\<\\\\\\\\\\\\\\\\\\\\’Ü\\Jòòòòò¦ŠŠŠŠÆÆ’Š’’’’’ŠòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòèèòBBBBBBBJòŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠp–ppppÆŒ.Œ BŒŒŒŒŒŠŠŠŠŠŠŠŠŠòBŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠJJJJJJJpîîîîÈÈÈ~îîîîîîîîŒŒŒŒŒööööööö®® ®®®Èîö$8LZh     ÒÒ8ddŠòòò,$'*"AA&NN']g(ii3ll4u“5• T¢Ø`ßè—êë¡í£::ËTTÌ\_ÍuwÑzzÔ…Õ‡‡Ü‰‰Ý­µÞ·»ç¾Ãìääòþþóôõö÷bbøooù��úœ û£ª¬¬¸¸ ºº ÍÍ oo vy {{�� ŸÿñL©ÿÓRÉÿØDÊÿÄJËÿØPÌÿØPÍÿØPÎÿØPÐÿºŽÞÿñd¦ÿº Ö8€*S€€ Ÿÿñö©ÿÓ¬ªÿœ²«ÿœ²¬ÿœ²­ÿœ²®ÿœ²ÉÿÄÊÿØÐÿº8Þÿñ¦ÿº €Ÿÿñ¬©ÿÓbªÿœh«ÿœh¬ÿœh­ÿœh®ÿœhÉÿØnÊÿÄtËÿØzÌÿØzÍÿØzÎÿØzÐÿºîÞÿñĦÿº 6&€*Ø€€*U€€Ÿÿñ,©ÿÓ2ÉÿÄ8ÊÿØ>ÐÿºnÞÿñD¦ÿº ¶ €&€*D€€€%ÿÓàÿÓàÿÓàÿÓàÿÓàÿÓàÿÓàÿÓà ÿÓà ÿÓà ÿÓà ÿÓà ÿÓàÿÓàÿÓàÿÓàÿÓàÿÓàÿÓàÿÓàÿÓàÿÓàÿÓàÿÓàÿÓàÿÓàÿÓàÿÓà]ÿâ_ÿâyÿ° rzÿ° r}ÿ° r£ÿΤÿέ(æ®(æ€*€©ÿœ,Éÿ°2Êÿ×8Ðÿ°>¾ÿ°D¦ÿœJ­ÿˆP€*¯€&€8 €8€€€ÿÎ]ÿÝÐÿû €r © hÉÿûÐÿï ÿœJÿÓP©ÿ°Vÿ°\Jÿ°b´ÿâÄÿìÊÿìhÞÿœnœÿ°t£ÿº´ÿñ*×€8 € € € €€€*�€ ÿØÂÿÄÈÿØÔÿØÔÿØÔÿØÔÿØÔÿØÔ ÿØÔ ÿØÔ ÿØÔ ÿØÔ ÿØÔÿØÔÿØÔÿØÔÿØÔÿØÔÿØÔÿØÔÿØÔÿØÔÿØÔÿÄÎÿØÔÿØÔÿØÔÿØÔÿÎ*´ÿæyÿ°ŒœÿÎ 0&€*R€*T€&€ ÿÄ8ÿØ>ÿÄJÿØDÿÄJÿÎP´ÿæyÿ°²œÿÎ V*E€€€*F€*5€ ÿÝJ5ÿÝV8ÿÝV?ÿÝV@ÿÝPJÿÝPUÿÝV©ÿÝV¬ÿÝV¾ÿÎ\ÄÿØbœÿÎR8€€8€€€vÿº œŸÿñÆ ² ² !"#$%Ì&' ²()*+,Ò-.Ø/02345ð678ü9:;<=>?ü@ÞABCäDEFGHIJêKLMNOPQRSUüVWXYZ[`ÿâŠð‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ö¬ü´ÿ¿ äÄÿâäÿöóýÿyœÿˆ ö£ÿœ¤ÿœ´ÿñ~€€ €€ €€€ € € €&€€ €}ÿºˆŸÿñðüDDDDDDDüD D!D"D#D$D%ö&D'ü(D)D*D+D,-D./D0D2D3D4D56D7D8&9D:D;D<D=D>D?&@ADBDCDDEDFDGDHDIDJKDLDMDNDODPDQDRDSDU&VDWDXDYDZD[D`ÿ⊋DŒD�DŽD�D�D‘D’D“D”D•D–D—D˜D™DšD›DœD�DžDŸD D¡D¢D£D¤D¥D¦D§D¨D© ¬&´ÿ¿,µÿ¿2·ÿ¿2¸ÿ¿2¹ÿ¿2ºÿ¿2»ÿ¿2ÄÿâäÿöóDýDÿDÿ¿2yôœÿˆâ£ÿœ8¤ÿœ>´ÿñ~DD8€€€ € €€€€ €€8'€8(€&€€ €ÿº>ŸÿñDJ%P',V.\5t8€?€@bChJnU€`ÿâŠt©z¬€´ÿ¿†Äÿâäÿöyªœÿˆ˜£ÿœ°¤ÿœ¤´ÿñ€& €¾ÿö© ÉÿöÏÿìÐÿñ“ÿÝ8€„€„.€¾£ÿÄ€„€„£ÿΦ /€ÿâ1ÿì¾ÿÎ *€€8€¦ÿì¾ÿûäÿö1ÿì£ÿΦ €/€£ÿj¤ÿj*_€£¤€oÿÎ*€Uÿº8€],_,r?2q?2r?2t?2‡?2%€*Í€©ÿ° ÉÿÎ&Ðÿˆ„ÿÑ,*�€€€©ÿˆÉÿ¦ Ðÿœ&“ÿÎ,€8€€€ÿº]ÿ 8 €&€ÿ°´ÿ瀀Éÿâ&Êÿâ&Ëÿâ&Ìÿâ&Íÿâ&Îÿâ&€©ÿ’ÉÿØÐÿ° *�€€8€ P%V,V.V5v8‚?‚@dCjJ\U‚©b¬‚€ €€8€yÿì“8€œÿ¦€ÿº¶Ÿÿñ¼ŽÂ%È'Ž,Î.Ô5ì8ø?ø@ÚCàJæUø`ÿâŠì©ò¬ø´ÿ¿þÄÿâäÿöyz } œÿˆ£ÿœ¤ÿœ´ÿñ&€€ €€ € € €€€ € € €&€8€ €8€& €€ ÄD ²  l r rÿì öÿñ ¨ÿº �ÿñ xÿœ üÿÄ&ÿº ~ÿì öÿ¦ „ Šÿâÿâÿº �ÿñ ¨ÿ¿ –ÿˆ8 œÿœ ¢ÿö ®ÿñ ¨ ºÿö ®ÿì öÿö ®ÿû€ÿö ®ÿï ´ ºÿû€ J ÀÿÄ Æÿ° Ìÿœ Òÿ° Øÿ° Þÿˆ äÿœ êÿ° ðÿì öÿœ üÿœÿâÿ°ÿ°ÿºÿÎ ÿÄ&ÿæ,ÿÎDÿ°2ÿˆ8ÿ°>ÿÎDÿÎ’ JÿâPÿìVÿÎ\ÿÝbÿØhÿÎnÿÎtÿÎzÿû€ÿ݆ÿìŒÿÎ’ ˜ÿ°žÿ’¤ÿتÿœ°ÿˆ¶ÿ¦¼ÿºÂÿ Èÿ°ÎÿçÔÚàæìòøþ "('$'*"NN&]g'ii2ll3u“4• S¢Ø_ßè–êë í¢::ÊTTË\_ÌuwÐzzÓ…Ô‡‡Û‰‰Ü­µÝ·»æ¾Ãëääñþþòóôœ õ£¨úªª¬¬¸¸ººÍÍoovy{{ �� :#$$'*`abb dg ii u“•–——˜ž Ÿ ¢¦§§¨¨©® ÉÎ ÏÏÐØèèêêëë::TT\_uwzz…‡‡‰‰­³ ´µ·»¾¿ÀÀÁÃääþþœ £¤¥¥¦¦§§¨¨ªª¬¬¸¸ººÍÍvxyy{{��9]]__rrŸ ¢¦©® ÉÎ ÏÏÐØëë0112STT U[\_`pqrssttuvwwx~†‡‡ˆ‰Š©ªª««¬¬­³´µ ·» ½½ ¾à ÄÝÞãääåíóóôüýýþþÿÿ  yz}}œ £¤¦¦¨¨­®ÍÍ~�� € €€€€ €€€ € €€€€€ € €€€*°€€ € €€€*Ù€€€€*Ž€ €*6€*G€€€ €*�€€€*€+€"€€€€€€€€€ €8€€*‚€ € €€€€€ €8€ €8€€.€€/€/€/€.€8&€ €€€ € "à8(6LO^1$'*#-I'KkDmperrit†jŒ•}— ‡¢½‘Ã8­:}#…g‰›n¡ª�¬µ‹·»•½Ò𨰏¸ÚººÛÀÀÜÂÂÝÆÆÞÈÈßÌÌàMNáooãvxä~çA6°6À6Ð6Ú6ê<®8~6ô8®777$747D7T7d<¾3è3ø444(48,7t7„7”7ž7®8Ô7¾8ž7Î7Þ7î7þ888.<¾4H4X4h4xB4Ž4ž8®8>8®8N8^8n8~8Ž8ž8®8®8®8Ô8¾8Ô8Ô,F €Š] *Ñ€€5 3`€ €, 2€€é@ŒœŒœ<Œœ,Œœ<öœLŒœ\ŒœlŒœ|ŒœœŒœŒŒœœöœ¦Œœ¶ŒœÆŒœÖŒœæŒœ@öœŒœŒœ Œœ0Œœ@ŒœPŒœfŒœ|Œœ¬Æ¶Æ0¤0®Ö0®æ0®0¤ö0®0®@6`@6`&6`@6`@P`d„”p„”€„”�„”°„” „”°”º„”Ê„”Ú„”ê„”ú„” „”d”*„”4„”D„”T„”d„”t„”0¾0Îä ¤ ´ Ä Ô äô .$N$N.>N>XXd>Xt>X„>X”>X¤>X´>XÄ>XÔXä>Xî>Xþ>X>X>X.>XNxXhx0Þ0î0Þˆø((˜(ø(ø¨(¸ÈØè(ø(8B0þ1R1b10þr‚1’œ¬1à1˜1Ì1¨1¸¼1˜1Ì1¨1¸Ì1˜1Ì1¨1¸Ü1˜1Ì1¨1¸ü1˜1Ì1¨1¸ì1˜1Ì1¨1¸ü1˜v1¨1¸1˜1Ì1¨1¸1˜1Ì1¨1¸&1˜1Ì1¨1¸61˜1Ì1¨1¸F1˜1Ì1¨1¸V1˜1Ì1¨1¸f1˜1Ì1¨1¸à1˜v1¨1¸†1˜1Ì1¨1¸�1˜1Ì1¨1¸1 1Ì1¨1¸°1˜1Ì1¨1¸À1˜1Ì1¨1¸Ð1˜1Ì1¨1¸à1˜1Ì1¨1¸1Â1˜1Ì1¨1¸1Â1˜1Ì1¨1¸ð1˜1Ì1¨1¸1˜1Ì1¨1¸ 11.1Â1˜1Ì1¨1¸p 0 @ pP` p€� Š°ŠÀŠÐæŠö&0@Jšj´šj´Zj´šz´šŠ´š¤´ è!(.Ä!(.ä!(. $!(. D!(. ~!(. Ž!(.Ä!(.Ô!(.ä!(.î!(. è ž. ®!(. ¸!(. èþ!(.!(. È!(. Ø!(. è!(. ò!(.!!(.>H1>1HX1Hh1Hx1Hˆ1H’œÜ6¬6¼6Ì6Üæö666&6vª´Fª´Vª´fª´v€´� à:°:À:Ð:àêú: ::*:J0®Z1j1˜1Ì1¨1¸zŠšª´ è!(!8Ä!(!8ä!(!8Ô!(!8ä ž!8ô!(!8 !(!8 !(!8 $!(!8 D!(!8 4!(!8 D ž!8 N!(!8 ^!(!8 n!(!8 ~!(!8 Ž!(!8 è ž!8 ®!(!8 ¸!(!8 È!(!8 Ø!(!8 è!(!8 ò!(!8!!(!8!!(!8!ˆ1ˆ!H1ˆ!X1ˆ!h1ˆ!x1ˆ!ˆ!˜!¨1ˆ!ø"(!¸"(!È"(!ø!Ø!è"(!ø"""(#V#�# "8#�# "X#�# "H#�# "X# # "b#�# "r#�# "‚#�# "’#�# "²#�# "¢#�# "²# # "¼#�# "Ì#�# "Ü#�# "ì#�# "ü#�# #V# # ##�# #&#�# #6#�# #F#�# #V#�# #`#�# #p#�# #€#�# #°#Ð#À#Ð#à*®$0#ð0$0$$ $00$@0$`$�$P$€$`$�$P$€$`$�$P$€$`$�$p$€$�$�%”%´%Ä$ %´%Ä$°%´%Ä$À%´%Ä$à%´%Ä$Ð%´%Ä$à%J%Ä$ê%´%Ä$ú%´%Ä% %´%Ä%%´%Ä%*%´%Ä%:%´%Ä%”%J%Ä%Z%´%Ä%d%´%Ä%t%´%Ä%„%´%Ä%”%´%Ä%¤%´%Ä%Ú%ê%ú&& &0/N&@/N&P/N&`/N&p/N&€/N&�/N&Æ&¶&ì&Æ&¶&ì& &¶&ì&Æ&Ü&ì'¦'Æ'à'¦'Æ'à&ü'Æ'à' 'Æ'à''Æ'à','Æ'à'<'Æ'à'L'Æ'à'¦'Æ'à'¦'\'à'l'Æ'à'v'Æ'à'†'Æ'à'à'–'Æ'à'¦'Æ'à'¶'Æ'à'Ö('Ö('à'ð(( (( (0(@(J(€(¦(–(¶(Z(¦(–(¶(€(¦(–(¶(€(¦(p(¶(€(¦(–(¶(¦(¶(Ì(Ö)04(æ04)04(ö04)))&04)6041Ü1ì1ü2 2)F1ì1ü2 2)V1ì1ü2 2)f1ì1ü2 2)†1ì1ü2 2)v1ì1ü2 2)†1ì*2 2)�1ì1ü2 2) 1ì1ü2 2)°1ì1ü2 2)À1ì1ü2 2)Ð1ì1ü2 2)à1ì1ü2 2)ð1ì1ü2 21Ü1ì*2 2*@1ì1ü2 2*1ì1ü2 21Ü*&*62 2*@1ì1ü2 2*J1ì1ü2 2*Z1ì1ü2 21Ü1ì1ü2 21Ü1ì1ü2 21Ü1ì1ü2 2*j1ì1ü2 2*z1ì1ü2 2*Š*”*¤*®*¾*È++H*Ø+H*è+H+*ø++H++(+8+H+¨0d+X0d+h0d+¨+x+ˆ0d+¨+˜+¨+²+Â+Ì, ,+Ü,6, ,+Ü,6, ,+Ü,6, ,+ì,6, ,+ü,6, ,,&,6-Z-Š-š-ª,F-Š-š-ª,V-Š-š-ª,f-Š-š-ª,v-Š-š-ª,†-Š-š-ª,–-Š-š-ª, -Š-š-ª,°-Š-š-ª,À-Š-š-ª,Ð-Š-š-ª-Z-Š,æ-ª-0-Š-š-ª,ö-Š-š-ª--- -ª-0-Š-š-ª-:-Š-š-ª-J-Š-š-ª-Z-Š-š-ª-j-Š-š-ª-z-Š-š-ª-º-Ä-Ô.-Þ.-î.-þ......8.x.Ø.H.Ø.X.Ø.h.Ø.x.‚.˜.Ø.¨.Ø.¸.Ø.È.Ø/0„0”.î0„0”.þ0„0”/0„0”//.0”/>/N/Ž/î/^/î/n/î/~/î/Ž/˜/®/î/¾/î/Î/î/Þ/î000$040D1ì1ü2 20T0d0t0„0”0¤0®0¤0®0¾0Î0Þ0î0þ111.1>1H1X1h1x1ˆ1Â1Ì1Â1˜1Ì1¨1¸1Â1Ì1Ü1Ü1ì1ü2 2Ô^ &6p€ô '`6s€Î_ &<3V€õ 'v3Y€õ 'f3Z€ô 'V3M€Ó] 3O€õ 'L3I€Ïb'hó '^3W€ö 'N3X€õ 'T3U€Ôb 3P€Ôd 6y€üÿE 8 €Ò]DÕb 3T€Ôb 3L€Ó^ %Š8!€®° 3R€È3 )€*ù€îá 3a€*î€Ôb %(6z€$ 6x€I 6Œ€°$>^ $|4€† 6)€·^ $\3=€¶] 8€Õÿ: ê3K€²b %þ3H€´U 3C€Ü] 6I€%·° 6U€ýÿE ¨6>€™X 5€Ë^ #Â6€Å_ #ø6€Ê] 6€ì %86€Æb%Tê %J3€í %:3€ì %@6€Ëb 6€Ëd 4€ÈU 4€ýÿE Þ6 €É]DÌb 6€Ëb 6€Ê^ #f6€¥° 4€Ëb #04€% 6 €ç 6ˆ€Ó^ "Ž(€Í_ "Ä38€Ò] 3/€Îb $03:€­° 35€ÿ0 06 €ÐU 33€îb #ð6D€;Ͱ 62€ÿE º6*€¦þ 6_€€^ !Î*g€_ "*Ÿ€] *„€b #p* €b *…€d *“€U *•€'ÿE $*£€]Db $€b *w€^ !¬*�€á° *–€b !v*”€O *«€°4a 2€=b "œ3j€Š 8)€éÿ0 œ'€ ^ š*ƒ€Úÿ0 |6€ã° *©€[þ 6v€ 6X€šX 5€ã° *ª€[þ 6w€ 6Y€šX 5€&°” 6^€ó^ à6 €ò] 66€ ÿ0 ²6€ðU 6A€Í°; 6O€ób ø6@€í^ v6%€ç_ ¬1€ì] 6E€ ì6/€èb!  þ1€ î6a€ ô6]€íb 6F€íd 6Q€ d6[€ T6\€ ÿE ‚6=€ë]dîb 1€S !6€íb 6P€íb 67€ì^ ê0€Ç° 6T€íb ´6R€ 0€*€u°ã 6h€È^ 6`€Ç] 6e€óÿ0 Ô6€Èb 6f€¢° 1€ùÿE x60€Èb 6d€! 6H€À^ ‚6"€¿] 6<€Þÿ: 6b€%€»b 6W€Úÿ0 .6€š° 6K€àÿE â61€³°! 3!€½°+ 0€˜] 3N€á 3F€•ÿB À*š€³ÿ0 š3€s°$¹ÿE T3B€*X 3Q€ n4€ 6&€ ´ Ì64€¬ Ž6€éb 6+€—° 6€X 6‰€�° 6~€h^ Ú8€cb œ6€hd 6|€f]ʤ° 8$€Ÿ^ †3_€šb H3h€Ÿd 3c€y°$¾ÿE 3b€�] 3e€ b 3f€ž^ ¤6Š€Ÿb ~3d€æ 3g€¯^ ì6g€®] 6k€¬U 6m€‰°HÏÿE x3@€Ób 31€/ 4€¬^ ‚3S€§b D*·€¬d 3[€†°$ÙÿE 3A€ª] )€­b 3]€«^  3^€¬b z3\€ 3E€®< 3G€ê< 6N€ä< 1€·< 6V€ 6L€¦< 1€÷@X 6n€é^ n4€  ¸6€ã_ ”69€  Î6M€  ¾6Z€  ®6#€è] 6'€  ¤6€äbÀ ¶6:€  ¦6G€  ¬68€éb 6(€éd 6,€ ÿE Z6$€ç]„êb 63€éb 6!€è^ â65€Ã°Jö  œ6c€N 6?€*(€éb Œ6-€1 6.€, 6†€Ó^ ê(€Í_  37€Ò] 3.€Îb Œ39€­° 34€ÿ0 Œ6 €ÐU 32€È^ z6l€Ç] 6q€öÿ0 L4€Èb 6r€¢° 6u€üÿE ð6i€Èb 6o€$ 6j€z« *%€œZ z*@€w­jœZ `*P€œ_ P*Y€›_ @* €w« € ] Ô#€{°Ä ] º*#€ b ª"€Ÿb š*€_° Ú*Ö€wž þ#€ÁÿE ì"€z«~z° "€{° *$€z¬ t#€UþD‡ä  *Z€¬‘ *Q€y° !€é *,€µ 6‡€þ 6€%« 6€” 6€Ó° °8"€V« *"€S« $€1þ $€¯ÿB *i€W° F*!€T£ Ð$€ô 3%€6° 06€ÌÿE ˆ*€Úÿ 8€!þ 6‹€r« *?€o­ & €o« &€˜] ¦*2€s°–˜] Œ*=€˜b |*L€—b l*€W° ¬*à€ož Ð*M€p£ Ö*O€»ÿE ®*€r«Dr° *W€s° *>€r¬ 6!€Mþ *N€q° €ã *)€� 6{€8€Oþ *€å *€•ù * €8 €ýî *ë€^ *ì€Tþ & €y« & €v­ r*f€v« *]€z° *X€Œ l*™€w£ €*\€òb *¡€€û 3€Ñ° *˜€ €ÓÿE * €vÿ *¦€Ñ« *|€Î­ ¶*§€Î« *Œ€Ò° J*y€¶° Š*ï€Îž ®*†€ÿE œ$€Ñ«DѰ *—€Ò° *{€Ñ¬ $*‹€¬þ *ˆ€Ð° #€@ *‰€¬þ4Q 2€Ò° †*x€ ÿ *‡€× *Ä€Ò° p5€§ÿ v*z€:þÎ *³€÷^ *l€* €ÿ 6*.€Ñ° *´€ €@ *Š€Ñþ *ó€uÿ *¸€€öþŠ 6;€‰« 3(€†« 3-€dþ 3+€Èÿ �3€‡£ ê3,€ˆ° 3 €}« 3€z­ l-€z« *€£] 3€~°ð£] æ3€£b Ö3 €¢b Æ3€b° *¤€zž *3€ŸL 3€¡Q 3 €*€ÄÿE ò* €}° *€¿` f6€ì°}«¦~° 3€}¬ `3€|° €¡^ @3€þ³ 6 €`þô 3$€`þô 3€« *º€« *€ÿ ®*[€ë° ¾*ø€áþ *Á€ÿE Ð*›€° *¹€> *¬€U« *4€R« *C€�ÿB Â*-€V° î*3€”ÿ +€0þÆœÿE F*+€Îþb *倨 #€�ÿB N*€xÿ ª*<€Æþ4Sþ 2€€ÿE Ò*}€�ÿ *Ú€€« 3 €}­ l-€}« *€�° 3€e° @*¥€}ž4 d¢K Z3 €ŸK J*€¢K :3€¢L ,€*€ÐÿE *€€° *€dþ$` |6€ø 3€€«4�° 3 €€¬ p,€[þ 3€�ä 3€° * €þ 6€ø 3€¾ 0€;þÏ *j€¼þDá« 6‚€â° ˆ6�€Þž ü6ƒ€á« 6„€\ 6€€Cþ× *œ€‰« 3#€Š° 3"€†ž ’3&€dþ*Ÿþw *1€*€‰« 3'€‰° 3)€‰¬ '€ˆ° 3€Çÿ2 3<€€L« *k€I« *v€J£ *u€'þ *t€­ÿE Ê36€x° **€¿ÿ 3€^« */€_° €[ž |*9€9þ*€þ‡ *q€8€^« *:€^° *I€^¬ ì*;€]° *€¨ÿB *’€8€X« $€Ö *€€‹« 3*€ø 3>€« 3€W« *A€Ä *B€N« *s€Õ 3?€øÿ *r€‘°ÿ 3D€u° 3;€Q 5€©° 6t€ 3J€Í° 6C€; 6B€¤° 6J€O 5€B°° 6}€\« *V€ˆ< *â€Ób ,30€/ 8€>° 6€_ 6…€~Xǰ5 6S€Xþ 3€ªþ 6€ì 3€ *­€"ÿ 3€  (   !"#%&FGHIKL 2BRbr‚’¢²ÂØèÿá %€M *¨€ÿý *~€ *í€K *n€N *Þ€ÿà 8#€I $€ÿê *Ò€ÿí *Õ€%€K *o€O *ž€ *@Vf|’¨¾Ôêÿ¹ÿE ˆ%€.ÿƒ *‘€€ÿÍÿ *'€€ÿâÿB Ž*é€ ÿ5 €€-ÿg *À€%€ÿ¸ÿE %€8€/ÿ… $€8€ÿ¼ÿ0 %€*€ÿÃÿB *߀ € ÿ5 *b€8€:ÿž *&€*€  (6DO^.ºÊÚäôˆþ¸.>N^n~Žž¨¸ÞȨØèø(8¸H¸Xhxˆ˜¨¸¸¸ÞÈÞÞµþ *¿€Lþ %€ªþ¨†þ % €Êþ®Íþ *²€§þ  €Úþ *¢€»þ *Û€­þ *8€þ 3i€¸þ *m€Oþ *䀵þ *½€Lþ €Ìþàbþ $€µþ *耸þ *À¦þ *µ€Ùþ *d€»þ *Ü€­þ *7€íþ *û€¼þ €Oþ *〺þ  €Ýþ *p€¹þ  €¹þ *Ó€¹þ *ЀÆþ €¼þ *^€ºþ *K€¿þ "€€¿þ "€.^tŠšªºÊÚäú *@Pfv†–¬¼ÌÜò4DTdzŠšªºÊÚð&<Rh~מ *¾€€o£ % €€Ï« *ú€«« % €ï« *æ€ß° 0*Ë€ï« €Ü­6\Ùä *Ç€8%€þ° #€à¬ $*Ý€Ò° "€° *ü€€Þ° #€‡ *ð€€Û² *¼€o£ *Æ€ð« *ꀈ¬ *±€*€Û° *ç€à° ¼*ɀݫ *»€Ü­ *a€€Ùî *Ô€*®€ÿ° *c€€à¬ *á€*€Ô° *J€° €â° *`€‡ *ñ€ €Z ¼€Z ¬*ò€#_ œ*e€] @*Å€] 0*Ì€b *Ï€b *h€€[ *H€*€Z 0€_ €_ *0€€^ *¶€*€] *Ê€€b *΀€b *È€€  LEE7þ €6þ €K` €€K` 8 €€ò^(DFLTlatntF AZE pCAT vCRT pGUA ¨KAZ pMOL ÚNLD  PLK >ROM pTAT pTRK  ÿÿÿÿÿÿ ÿÿ ÿÿ ÿÿ ÿÿÿÿ aaltªcase²ccmp¸ccmpÂdnomÎfracÔligaÞlnumäloclêloclðloclöloclüloclloclnumronumordnpnum"rvrn(salt,sinf2ss018ss02>subsDsupsJtitlPtnum`zerof#$     " &'()*,HJL!%P¢ìÒbbÔ66˜BVx–Ô ,b||Šº˜¦ºÈ    f ˆ ª   N ” Z ž º º T † â ö ¦||Š||˜¦||Š|˜¦|Š|˜¦|Š˜¦Š˜¦´Èâf˜¶*’îïðñòóôõö÷øùúûüýþÿè     ^éêeë¥f­mßàáâãäåæçìýhsþÿeºfÂmôõö÷øùúûü"QRSTUVWXYZdcŠ‹Œ�‘o�˜™š›nòóôõ 6789:;<=>?@ABCDEFGHIJKLMWXYZ[\]^h.BH]]!mm"uv#—ž%  -££.©©/¬¬0ÊÊ1ÐØ2ÚÚ;<33=``>qq?��@Š‹A¬¬CµµD¸¸E¾¾FÁÁGßßHåíIïïRS[dTyy^{{_�`ƒ„c‡‡eŽŽf’“g–—iœœkëîlpq&v,,ˆOV‰pp‘ª,^dt‚�ž®¼ÌÚèø $,4<DL $,4<DLT\bhntz€†Œ’˜ží#1GQ[e$2HR\f%3IS]g&4JT^h'.5KU_i(6LV`j)/7MWak*8NXbl+9OYcm,0:PZdn -< ;<=>?@ABC D!E#F$%&'()* +!,‰��Žghpqr #, 1:<E~~)‚‚*ff+ \n&>,`q!#(TTB  H!ar6789:;<=>?@ABCDEFGHIJKLWXYZ[\]^``qq&OV¦&&68&OV6LW^D6789:;<=>?@ABCDEFGHIJKLWXYZ[\]^&OV–0Rt STUV OPQR [9\8]A^? W9X8YAZ?;=`¥­ºÂ£¬¸ÁÐØåí  èéêëìýþÿM mv Ú3�‹µï,Jxxbb  ‚@ Ob ^s]qÐ:ÂX´Dÿ臒N "Bo*QZÿö[d $, uŠuŠŠykÿê#,. #$%&'()*+,1:<E .123456789:<=>?@ABCDE #, .#$%&'()*+,<=>?@ABCDE 1: ŠB ! ! !‰Š‹Œ�6789:;<=>?@ABCDEFGHIJKLWXYZ[\]^#,1: <E~�ŽŽ"#&(OV:6 "(T`TxT`xT  #1<d/íîïðñòóôõö÷øùúûüýþÿ     ./0òóôõBH˜ž!()*ëî+��‘˜™š› ~ƒ„’“–—J >k““j’’“““s’ƒt’’l““ƒ’“+ ff©¾ª8Ph€˜°Èàö "8NdxŒ ´ÈÚìþ 0@Nffffff-pfffff.hpffff/hhpfff0ghhpff1hghhpf2hhghhp3fffff4pffff5hpfff6hhpff7ghhpf8hghhp9ffff:pfff;hpff<ghpf=hghp>fff?pff@hpfAghpBffCpfDgpEfFpG>0"   fBBI(Khÿøp$ememdc��‘˜™š›n —ʬßy{~ƒ„’“–—œvw~yz{€�‘¥¦¸¹ºÈ x|}—¼Á´Í .DRft)@ ONM ) ONá  O!PØÞ-W…3q£ÇO� @ ¾ t È  ½@½@@ÀàÀÀà@@½@Àà½@ÀÀà½@@Àà½@@ÀÀà½@@@½@@@@ óòçá àÝŵàÝÆ· ÿþÑa.ÿøÿÿþÑa.øÿ ÿþÑa ìÿøÿvÿR8ø ü  ¢‰&(1>òì°› ùøöû  ðϺ¨  ýû ®˜!  ù÷ º¨&õô °› òíèý º¨ÿðêãü ̾öóïü+ìæèúåÞ º¨óàÏÁÿ5¢‰& Ú½¬ö,º¨íéâú (ʼçÒº§Sœ‚(ïåó"BÄ´óø#G°› ïêäü $F¦Ž$îèâñ '5¢‰&ðÔ½¬ü)G°› ïêäö )HÁ°úâÒÆû*B¦Ž$ ììæö-R°› êßÙòþ-Z †&/ë÷6VÀ°ñ ñþ8hµ¡ýÝ˽÷9i¬–"ììçò9k°›!íõôî;m¯š!óôóï=yÿÿøÞ×Ëú?p¥�%àÙÏó?øöôÛÍÀûJ]À®ûÎèãô LgûöÿÙëéó!VÔÉõÀÑà  þêþ¡ïõpnÿþÛÿnÿHýû;þú  þóþ­îm,êøÿþØý^% èêþæþœq2 åû  “$³‹Ъ§ê"“$³©²ª‰ê"  ÿ}Í�ƒ('EVüã‡8˽êÎÀó„E°²ÜãÙï–Fèç ûøÍÔöŸHüûçͶª)‘Iæß öÞÏÂù‘Iæß úÜÏÂø‘KÎÁþÛÏÂö‡L¯™!çߨò —Lù÷õòÌÓø…N£Š%òDZœø ½PÀ¬Ô¾ÛÙ( QÍ ûÑäô QÍÖÅÑ®ô Qèâ íʱœú RÚÐõѽ«÷«VÔÉõ×Ä´ö«Wèâ íȰ›ù ³]ÚÐðª“÷"·]ÚÐô¿¦Žõ$·_ÚÐëÁ¦Žø$û~¦Ž$ǰ›í   ÿn Œ/')3ðïÿpŽ. óûÿq �.ðêäöÿf&:° ü娿úÿg8d‡1ùìÿÿt:a‘-ßÖÊóÿeBs…2ØÇ¸óÿpF|Ž.þÒ¾¬ôÿpF|Ž.þÒ¾ºô  þÐþ€zJ;JßèþÉþw}D0<àío  ÿþì¯efq?OççþÜþ�ðÖvo'RÚïþàþ”ðêtjÜùÿ.þ÷õþUMæùþüþ‰öìiaCOõÿ&þìöðXPå÷ÿ.þ÷öôU;ùþàþ”÷ítkÛ÷þêþ¡÷îp @÷øþüþ¸ùìif=#dÜñþèþàúãqn= Ùçþèþžúíqn3@Ùëþìþ£úõo] Þüÿ4þþú÷RH çúÿrÿLûö9 &+úöÿwÿSüþ7ÿú üþäþšýìsc%ìòÿ{ÿXýý5ûýÿpÿJþü: # ùùþæþœþql ÛûÿRÿ$F5úïêìÿ{ÿX5øÜçùÿ5þÿ RLþøåÿmÿGí;þ %üûþÜþ�Öv7'1æïþäþš Ös8/:æìþÐþ€ Óz8 +5æîþÝþ� Þu?4Aåêþàþ” ât)ýûëþþèþž åq:(2æïÿ&þì ðX)ì÷ÿ&þì ðX)ì÷ÿ'þî ðX(í÷ÿ*þò ðV'í÷ÿ.þ÷ òU&îøþÐþ€ Ûz9 (2åðþèþž ãqB=MãçþèþÏ ãqBç=HãçþèþÒ ãqB =Kãçÿ.þ÷ ôU%íùÿ.þ÷ ôU%íùÿ.þ÷ ôU%íùÿ.þ÷ ôU%íùþÐþ€ ßz8 $-åñþÖþˆ áx0çøþèþž áq9-8æíþüþ¸ äi/éóþüþ¸ äi/&éóÿ&þì ôX'Îøÿ)þð VI#+6äïþÅþqø8õøþâþ—ås5 #+çñÿ4þþ÷R" ïúþÎþ|{ÿC )÷úþÐþ€åz5!çõÿ<ÿ ùOÿ Âüÿ.þ÷ûU$ íúÿþØ!^Oþù÷àþäþ™%rñ2êû ÿJÿ-I-ïêìþñþ©9mø>ïøþêþ¡îpî!ûùþêþ¡îpî#ûøÿþØñ^(ìöÿCÿ LüùúðÿþÄûe0èõÿdÿ;? íêêÖÿLÿIñêøòÿþØñ^2ÿ[çöÿ þåZ>è8Fåéÿþ¿(fû)ûøÿþá÷[ìóïñÿ þÊ+b4)÷øÿ þÈûdñøõíþäþšüsé úûÿ/þ÷GTû/õøÿJÿtIS&ßþÿ þÈ1cÿ1 öûþîþ¦ n%ôöóëÿ)þðV9,7æîþôþ® lû#öõÿþÑaÿ õõÿ)þðV8+6æïÿfÿ=)>#-òòþùþ´jù ö÷ÿþ½!gæùöûþóþ­!m2å÷ÿQÿ#!,G4*5çîþàþ”"t9ãùþüþ¸%iÜ ðøýþüþ¸%kÜ ðøûÿ:ÿ%)P%ü ëüÿJÿ%-Iñïêðÿ+þÚ&V'ïêêÿ+þÚ&V'ðêêþéþŸ&p-øæÿÿþË&"g"âîÚêÿYÿ#*BC7-CçîÿjÿC*S=Pó ßûÿ:ÿ,?PîåÝí þøþ²0?j4þãýÿ1þû2BSýèÐÂõþÒþƒ36z<ß÷ÿFÿ6QKèßÖí þÖþ‡8Bx/òõòÞõÿ!þç8oZRõüúÛÿFÿ;`KâÐÆîþÆþs?C~.î÷÷ÞôÿmÿG@g;íöòìþâþ—Grsb#ShÓßþûþ¶Vui¯™ë   ™ÿ`ÿ6P@ ÙɽîŽÿ`ÿ6R@ÞÔÈì�ÿwÿST7ξ¬ñ™ÿ`ÿ6V@Ùɽèºÿ?ÿefDZœï©ÿþÕj_#ÙâØâ ºÿ5ÿkR DZœé   þ¯þVˆË¬|3(2àïþ­þUŠÜŸ]"(3ÆíþÃþo€ ò.ãù þµþ^…%"N(1Ûïþ�þ/”*J %.ÛñýÕýDà0øg 6BÌèþnýõ¢15ûûßþý�Ã4Z+5Òíþ€þš9-?ö ×îþ=ýǵLBSù$Ñôþƒþ™RXBñØú  �ÿÿyÎÁ÷°–ð*ˆ#ÿT±§ô¬‚<�ÿjÎÁꪊó/“$ÿlÎÁì«‹ñ/  ŒþÒþƒ‰Rzu/mËÓíÿ#þêÿtwZ¿–æ(ýÿKÿÿ|~I Á˜æ*  ÿµÿlþMýÛöž QJ'ÿÏÿ—þ2ý¸¾†DN2Ûÿöÿúÿ)þðV9ìÿúÿóÿiÿA=ûþ—þ8‘xÿûÿøÔÿvÿR8ÿÿ üÿˆÿi1ÿÿüÿCÿþÅeaÿäÿÞà ÿ°ÿ› ÿñÿìÿçýÿðþŠþ(—o7m‰ÍÓÿ’ÿu,ÿüÿÿöþüþ¸i' 'ôò!þCýγ‡A‹®ÉÇ!Aÿµÿ¡! ïý"þfýú¥T/:×ì1þhýý¥J Øõ@yÿÄÿ´ÿÁÿœÿIÿICˆÿÿÿïÿÕÿÁÿ°ÿF…ÿâÿÇÿ®ÿœý"j�ÿ—ÿs"ÿøÿÂÿØÿä| ÿÝÿÒ ÿâÿ³ÿ‰ÿsû;š4þÝþ™Ž2ÿ®ÿ€ÿXâ1 4þÓþ…z!ÿ®ÿ€ÿXÜ1ÿ¸ÿ¥ÿÈÿYÿþÑì`‚€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚......33333IIIIIIIIIIIIIIIIIIIIG’…’’’’’’’’’’’’’’l…l__? ???Dk�‰# #####+#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,�$ ,-------…‡AAAAAA€ŒŒŒŒŒXdddddddddVVVVVeeeeeeeee.#,V@@@@@@@@@@@@@@@@@@@@@@@@@@'BBBBBB*4***��777777777777777777777"""""""�������������ƒ���“���jjg����‹€– h                               ()CC†CCCCC‚Š\fffffc000000000[[[[[";;;;;;;;;B C[–•†„!8S‹TUPZQJY>=S‹TUPYQJY€`€€€��ƒ…��ƒ…��ƒ…��ƒ…†HM5K<F2:‘‘‘‘—”�OW��…�€››“’R1Ÿž——””‡‡‚„‡ŒŒŽƒŒ�aa‚‡ŽŽŠŠ/.€G_^#& % ]ŒEˆbbˆˆ‘ˆˆˆˆˆˆˆƒ€„�6N4!m†�i 99nЇ•‰‰L‚‚,Žœ”�„�š‚ˆ“™˜�•‹�‘’ƒ‰€‚�,,,/.   E,wdthwghtital".:FR^jv‚Žšª¶ÂÎÚæ2>€KW€dp€}dÈ,�¼ô X!¼" #„ ÀÀá ) ä("C0,›86ó@@ÀÀ@@ wghtdd„wdth2d}dd Èd ,d �dôdXd¼d  d „d  ‚Là rBðÀ�` 0 þ Ì ª ~ L꼎^0Ò¤¤¤tÚn"Ü#®$€%L&&ò*¬+‚,h0v1J22Ø3®4”6@77æ8¸9Š:\;><<æ=¸>Š?^@2AAØBªC|DPE$EöGtLHMMîNÀO’PfQ:RÊT¾U’VfWNX"XðY¾ZŠ[V\$\ò]À^Ž_\`*`øaÆbšche”f‚gRiiêkkèlºmŽnboæpºrLtˆv>wwèx¼y�zd}J€€Ú�¬‡@ˆˆè‰¼Š�‹dŒF��ðŽÄ�–�j‘J’,““Ò”¤›�œd�8ž žÜŸ¬ ~¡R¢&¢ú¨Â¯¯î°Ü·Ž»¾ÜÄÆÉ ÉàʲˆÌXÍ,ÍþÕÕÔÖô×ÆØ’ÙdÚ8Û à¸æ:çžé^ê0ëëØì¬ð ðàñ´òˆóZô,õõâöÂ÷¢ø‚ùVú(úüÿ¨|P"öÈšnBê¼  Z 6îÊÞzLîÀ’d4 tFîÀ#d$4%%Ø&¬'~(P)")ô*È+œ,p-D.1î2Â3–4j5L6 6ô7È8œ9n:@;";ø<Ê=œ>n?B@@èA¼B�CdD8E FFàL LÞM°N‚OTP(PüU–VjW<XXâY¶Zˆ_Ô`¦axbJc(cúdÌeœflg>hhîiÀj’kdl6mmÚn¬o|pNq qôrÆs¼tŽ~(~þ„Lˆˆî‰ÀŠ’‹dŒ6‘€˜~™RžúŸÌ  ¡„¦´§†¨X©*©úªÊ«¨¬x­H®®ì¯¾°�±b²4³³Ö´¨µr¶B»p¾ÜÆ>ÇÇàȲÉ‚ÊTË&ΖÒZÓ0ÔÕHÖ0Öü×ÊؘÙfÚ4ÛÛº܈ÝVÞ$Þò߯à’áfâ2äˆæ€çjè8éòêÄì‚íjî6ïïÒð¢ñvó>øŒüüà‚T&úz  ت̞pBæÄ–h8 Ü¢t F!'’(d)6**Ú*Ú+¬,~-P.(3Š9v:H;&C¶I NnSÔUÎVžWnX<Y YÜZ¬`èa¸bÔc¤dveHffìmFolrpuØv²w‚xRy"|¨}z~Lð€Â�”‚zƒ`„F…,††Ò‡¤Œz�LŽ Žð�Â�Â�”‘d’6“ “Ú”¬•ü˜ ˜Þ™²š†›X�V¢Ø£¨¤z¥L¦¦ê§¼¨Ž©`ªð«Â¬”­f®:¯ °´±†²X³*³ø´Êµš¶l·>¸¸ä¹¸ºˆ»ZÁàÉÏèÔײÜzá:â¢é�íîTóúõHú.Œx,\N*%%Ò&Œ'D'þ(¸)r*,*æ+ ,Z2Z33¶4d55À6n77Ê8x9*9Ø;æAØG¼HzJ,JèK¨LfM&MæN¦OfP&PæV”XN]xc¸e¼jpq\rª{H‚Vˆ`‰‰ÒŠŒ‹FŒŒ¸�jŽ$ŽØ�†”V•¦š:Ÿ¼¡Ê¦«º­´¬ºn¿>ÀŽÅ"ʤ̲ÐêÖ¢×üß”åVææÈç‚è<èöé®ê`ëëÎì|ídîDï$ððäñÆò¦óˆôjõJöTø:ù�û¼ý†ÿ¶ð< „ ”"pB° ŠH ÆŽFNNNN v#ž(Â-æ/(0n0n0n0n0n1z2†3’4ž5V6b7Â9¨<Ê?èCDæFÌHˆJBKzL®NVO„P Q°Q°Q°Q°RhS S S WÂ\4a h$nÚt–zT~â…v‡ ‹NŽè“•™d�Ú¡¬¦ ©p¬®˜¯�±H²6³ð´ø¶Ø¸�¹ì¼Z½¶¿ÀÂÂpĈÉøÍÎ@Ϙ×JÚZÛÛÎÝ0ßàŒæ†ç@ðàþvÿÿ <Ö�J��®Š´#²,F4N76;È<î>€?b@nF”HLJ¢O’VWÌWÌY¶Zˆ[@\]T^N_V`lbc dˆeðh–lòoøpüuvºyb{*|ð}è6€ú�Ü„:†à‡äˆÔ‰Ì‹4ŒF�ˆŽÆ��’“Œ–Fšº�ÞžøŸò¢f£´¤®¥¶¦´¨L©´«­Â²µ*¶.ºD»ð¾˜À`Â&à ÄnÆFÇ(ɆÌ,Í0ÎlόҴÕèÜá âôäÜé°ívðžóÆùÞþæÊ²† H à à à . . . . . . . . . . . Ô Ô ¦"ž`:"*'ú,è1¾8ò?DØK<PFS½½@½À½à@@@@À@à@Àà€ €@@ @½@@ À@ Àà@À@@À@à@½À@@½À@à`@@@½@@ëëëëëÍ…¾¾¾¾¾@ÿ}…ÔÔÔÔÔ�…ÈÈÈÈȃ…(… …'…!!!!!E…*****V…�ü�“òòòòòã…€ €@@$@½@'@ À'@ Àà@À@@À@à@½À@@½À@à@@@@½@@ òÓY:àð"NBì�„ÄÄ»»ƒÖAÿy›>‚ª;@˜n¬ðì�„‰‰AÿwÿwƒûDÿÿ…ÿ ÿ ÿ3ÎúÈBÿ9ÿ}ÿ}€@þæ�„ûûûûììƒêDÿNÿVþ¹þ»þí±èªBþõÿKÿK€@þœ�„ùùùùææƒ =;ml\ Y>>q�„ƒ ÿ%ðö"2�„þþƒ Øæ ó×߃„ûû//ƒ ,Êä+êÅÑ# �„??ƒ "BÆç?%ñÂÐ6�„&&YYƒ øòåàåìðöùãîîå�„ ƒ òççð êöõû�„öö‚ç烀 €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ù�…€Ø�…€•@þæ�…Aÿdþœ�€1q�…€ 2�…€ƒ…€ �…€�…€ëå�…€ðû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€�…€ï�…€¬@þæ�…€„@þœ�…€5q�…€õ2�…€÷ƒ…€é �…€ú�…€îå�…€öû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€�…€ï�…€¬@þæ�…€„@þœ�…€5q�…€õ2�…€÷ƒ…€é �…€ú�…€îå�…€öû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ý�†€ïÎ�†€¬€@þæ�†€„@ÿK€@þœ�†€56q�†€õ 2�†€÷ƒ†€é �†€ú�†€îêå�†€öòû�†€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ �…€î�…€¬@þæ�…€‚@þœ�…€3q�…€ò2�…€óƒ…€î �…€û�…€êå�…€öû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ �…€î�…€¬@þæ�…€‚@þœ�…€3q�…€ò2�…€óƒ…€î �…€û�…€êå�…€öû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ �…€î�…€¬@þæ�…€‚@þœ�…€3q�…€ò2�…€óƒ…€î �…€û�…€êå�…€öû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ù�…€Õ�…€ª@þæ�…€‚@þœ�…€.q�…€ü2�…€ƒ…€ý �…€ �…€òå�…€øû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ø�…€Û�…€²@þæ�…€‰@þœ�…€5q�…‚2�…€ƒ…€ö �…€�…€àå�…€ñû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ø�…€Û�…€²@þæ�…€‰@þœ�…€5q�…‚2�…€ƒ…€ö �…€�…€àå�…€ñû�…€ €@@@½@ @ À @ Àà`À@@À@à@½À@@½À@à@@@@½@@€ýø�†€ÎÛ�†€€²@þæ�†€@ÿK‰@þœ�†€65q�† 2�€ƒ†€ö �†€�†€êàå�†€òñû�†€ €@@@½@ @ À @ Àà `À@@À@à@½À@@½À@à@@@@½@@€ø�…€Û�…€²@þæ�…€‰@þœ�…€5q�…ÿ2ü€ƒ…€ö �…€�…€àå�…€ñû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ø�…€Û�…€²@þæ�…€‰@þœ�…€5q�…‚2�…€ƒ…€ö �…€�…€àå�…€ñû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ø�…€Û�…€²@þæ�…€‰@þœ�…€5q�…‚2�…€ƒ…€ö �…€�…€àå�…€ñû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ò�…€°�…€Ç@þæ�…€±@þœ�…€0q�…€32�…€*ƒ…€. �…€(�…€éå�…€àû�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ú�…€È�…€™@þæ�…Aÿqþœ�€5q�…€2�…€ƒ…€ �…€%�…€îå�…€ïû�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ý�…€Î�…€€@þæ�…AÿKþœ�€6q�…€ 2�…€ƒ…€ �…€�…€êå�…€òû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ê�…€Ã�…€Þ@þæ�…€¢@þœ�…€Qq�…€2�…€ƒ…€ �…€�…€Øå�…€Óû�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ �…€ð�…€§@þæ�…Aÿ~þœ�€Eq�…€þ2�…€íƒ…€þ �…€ù�…€Úå�…€ëû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€�…€í�…€¬@þæ�…€„@þœ�…€3q�…€ô2�…€úƒ…€ï �…€ü�…€òå�…€ùû�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ñ�…€Ý�…€Ÿ@þæ�…Aÿyþœ�€2q�…€2�…€ƒ…€ �…€�…€îå�…€óû�…€ €`@`½@@ À@ Àà `À@`À@à`½À@@½À@à@@@`½@@€õ�…€¹�…Aÿþæ�Aþ¸þœ�€nq�…€42�…€!ƒ…€6 �…Nâå€àû�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€�…€â�…€´@þæ�…€Ž@þœ�…€+q�…€ò2�…€øƒ…€ó �…€�…€îå�…€ôû�…€ €,@@>@½@7@ À7@ Àà0,@À@,@À@à,@½À@,@½À@à,@@@+@½@@òÓ?1aFC4N2N?àð"NBì1�‚ºº!!ÝÝFF�ÄÄ»»ƒÖ@ÿy6@ž kD(o:R6‚ª;@˜n¬ðì�‚Aÿ{ÿ{@@¿¿A……�‰‰AÿwÿwƒûLÿþ‰þ‰ÿ~ÿKþœþœÿDÿþ‰þ‰ÿ ÿ3ÎúÈBÿ9ÿ}ÿ}€@þn�ŒûûûûììƒùLÿ]þ1þ1ÿ]ÿþHþHÿþÐþ1þ1þÊþüÀ÷¹BÿÿZÿZ€@ýõ�Œùùùùææƒ4A——4IA��LaA——cSP55@¢�Œƒÿ::û>? !8:%ðö"5�‚ÿÿûû�þþƒßäÈàåëÕìÙßîÒÚ ýþû�‚!!ññßß�ûû//ƒ,ñ÷¼ßûÐôëñ+êÅÑ# û�‚ôô ää�??ƒ7áêªÕï÷ÃíÚã4æ·Å+ �‚))îî××�&&YYƒüÜÜôêÛÜïåÛÜïöúíøøß�‚�ÿÿ� ƒùî î÷ ñýü�‚õõûû �öö‚ç烀 €@@@½@ ` À ` Àà @À@@À@à@½À@@½À@à@@@@½@@€ç1�…€˜�…Aÿ]þn�Aÿ6ýõ�€%@¢�…€5�…€ û�…€<û�…€=�…€ýß�…€ �…€ €m@@†@½@—@ À—@ Ààai@À@m@À@àm@½À@s@½À@àm@@@m@½@@6ëë  )))+--% !%%%&,12/) UùíÛÎÌËËËËÙäANñêÖÆÄÄÄÄÄÐÝ9 �ƒÿûöúýÿÿþþ÷ó �DDD6óááá ñãâßÝм¼¼ƒ¾½ùû  ÷@šÀ¢GÿvÿYÿTÿSÿSÿSÿSÿwšt@г GÿqÿLÿIÿIÿJÿJÿJÿh�dÖ�„úóý ÿÿÿýûû(0 �e;$!ñËËË222èÑÑɦ���ƒÔÓdÿ0ÿ'ÿÿÿÿÿÿÿÿ!ÿ)ÿ)ÿ ÿÿÿÿÿÿÿÿÿÿ$ÿ-ÿ4ÿÓÿ3ÿ&ÿÿÿÿÿÿÿÿ"ÿ3ÓÓJÿ0ÿ!ÿÿÿ ÿÿÿÿÿ#ÿ4Ó@þä�ƒ  þøƒ    „ÿþ …õæãëÿ †ÉÇdþúþïþßþ×þ×þ×þÖþÖþÖþæþðþðþäþØþÕþÕþÕþÕþÚþÞþàþäþëþõþþÿÆþýþíþÛþÓþÓþÔþÕþÕþÕþçþýÇÇJþúþçþÏþÇþÌþÐþØþØþØþèþþÇ@þš�ƒ ýöƒ   % „ÿþ  …òßÛåÿ †6TY]___abd]WW[_```bhnrvrbRPU]```___ZSRTVX[]___ZRs�„þþ ÿ‚ þýýû &1, „ÿüüûüüÿ…üòìïøüþ†6 +&" ! !%,,+'%%%&"!#ù87555655559ùù=>?><;7778:ú8�ƒÿûùýÿ�  õïòúý� üüüûþÿÿ…  ƒ6  øôôôôóõþùùùøðëéêïùÿÕ#$'**++++)*ÝØ')0321///,+â�ƒÿ éÞåòú�áááæñ÷ü õõõÿ"$ƒ6"#   !!   *ÏQTW[]^^^^XVÔÔY]eigf```^ZÙ/�ƒÿþúþ�ý��ýêâêöý�êêêëñ÷ùüüÿÿÿÿ ('ƒ*+.' ,,( *ÄfjnsvxxxxsoÌÉpvC€†ƒ‚|||zuÓ:�ƒ ý�  ïäì÷ý�ÝÝÝßéóùÿþúúú '67*###ƒ6ÿìêêêêêçæäèééèçéééçàÙÕÑÒßì÷îðñóòòñññïîöøìð÷ùöôñññïïøæ�ƒÿ�ý÷÷û� ÿÿÿíÑÅÍáô�þþûúùüüü ÿÿÿÿƒ6òòööúüüüõðëèòòòôøøøñãØÒÉÈÚïâáÜÚÚÚÚÚÚÜÜÝâãàÝÛØØØÚÜì�ƒþþþñÜ×ðý� ÿÿýòË¢’©Ðï� þÿÿÿ  þùø÷÷÷ƒ€ €X@@r@½@d@ Àh@ ÀàKX@À@V@À@àY@½À@X@½À@àV@@@V@½@@,ûðëëëèçèéëðù þ #/8@EILLLE5)')) ��  ûøúý‚ÿýüº»ºººº½ÄÓì&-8CFFFFF…éåÛÓÓÓÐÐÒÓÕÜê÷ü÷âáö LjG€�—œ   Œ _:50/ñä��  üùûþ‚þûùEÿ}ÿ}ÿ|ÿ{ÿ{ÿ{ ‚’°Þ5Id~D………ƒƒ„@ÿs –ÂÕÕÕÙÜÜÖʳ�IÿqÿeÿLÿ3ÿ*ÿ*ÿ3ÿKÿcÿm ‹³Ë×ÛÜÙÕÕÕ•Gÿmÿ\ÿ7ÿ(ÿ(ÿ3ÿLÿf€@þü�� þðßàïýûýÿ‡ÿ‚ ÿüûýðâáðþŒAÿNÿ{ ²ÊÊÊÎÒÑÊ»žKÿnÿKÿ<ÿþþþòþòþþÿÿ:ÿGÿl Ÿ¼ËÐÒÎÊÊʲHÿyÿGÿ2ÿþïþïþýÿÿ>€@þ¸�� þìÖØêýúüþ‡ÿ‚ þüúüëÚÙìýŒ,9* .:?IRVVRI@;/,;AQWWSI>i��  †ƒ  Œ, $" ÿýüüüü /�� ÿþÿþýÿƒþûÿýúûûûùø„,  üùÿ ýùñìèåáßÜÜÜßéðóïðùùý��úñîòýÿÿ…#!"!!!  õäçãàßßßÝÝ„, ü÷ýúïÞÓËÇÅÃÃÃÃËÞîòñï÷ø�� þøóôú‚ ÷óñêääääãá„,  ùôû÷êÖÊ¿º¶´³³³½Ôèíëêôõþ �� þòìïøƒ-+*)))(%ñèäÜ××××ÖÓ„,õùüþþþýþþÿþûøôòïðïïðñóõö÷ö÷ø÷ö÷÷÷ôóòñììîïñóé�� ÿýüüý„ ÿÿÿ� þúùûþÿÿÿÿÿþÿ…,øûùööö÷÷øúûúüýýÿúøý  þúó�‚ÿýüýƒÿÿïïðñññððóú ÿÿ…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ô �…€Ïä�…€Ÿ@þü�…€„@þ¸�…€1i�…€/�…€�…€�…€�…€íé�…€àó�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ô �…€Ìä�…€´@þü�…€¢@þ¸�…€.i�…€û/�…€�…€ý�…€�…€ôé�…€èó�…€ €@@@½@@ À@ Àà @À@@À@à@½À@@½À@à@@@@½@@ï ·äAÿxþüAÿNþ¸€<i�… /ø øø'øïéøàóø€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ó �…€Òä�…€¼@þü�…€©@þ¸�…€5i�…€ÿ/�…€�…€ö�…€ÿ�…€âé�…€áó�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ó �…€Æä�…€�@þü�…Aÿpþ¸�€?i�…€ /�…€ �…€ �…€�…€íé�…€àó�…€ €E@@]@½@^@ À`@ Àà=D@À@D@À@àD@½À@I@½À@àB@@@D@½@@"ëë!$$$'((*)&W"òáÖÎÊÇÄÄÄËÚó:�ƒ ùïêìöý�FFFD>/òÞ×ÌÁ¼ºººƒ¾½ø @Ÿ"ï¬�HÿhÿVÿNÿJÿFÿFÿFÿWÿ}¼êgå�ƒ ÷ïïîòö�C………ƒw['ÿî̽¤‰Cÿ~ÿ{ÿ{ÿ{ƒÔÓ…KÿYÿ'ÿÿÿÿÿÿÿÿÿ6ÿb†ÓšLÿoÿ:ÿÿÿÿÿÿÿÿÿ ÿ>ÿršÓ@þâ�ƒ „ †ÉÇMÿeÿ.þïþÕþÕþÕþÕþÐþÑþÔþáÿÿ9ÿfÆ€LÿIÿþâþÔþÐþÐþÔþÕþÕþÕþåÿ ÿN€È@þ—�ƒ &#„ ""†"2DW___`aa_[Q?1):P[`aa`___ZN8)s�ƒÿùôôúÿþþ… ÿÿþÿúöõùþ‡" #%%%"#$%$ ÷ )134567773+ ù5�„ÿÿ�ûûûúøùüƒ"  úùùùõõõõ÷ööôÓïÿ$(*....* üß �ƒ ‚ßßßßáçö !!!ƒ""#  Ë=PW]_bddd\I' ×#�„ÿýÿ �äääááåôƒ+- ¿#Mdnuw|B‚‚‚w]0Ï+�„ �×××ÔÔÛð$#(+))))ƒ"ÿóïìêêêêêêêëíóöõöóñðððññòòòôøúùöç�…ÿÿþþÿÿ�ÿÿÿ�‚ÿƒ"òò÷øúúúúúúûýüûûüÿõçáÞÜÛÚØØØÛãðúñ�„þüúûýþ� ÿùöø÷õôõõõƒ€ €@@@½@ ` À ` Àà @À@@À@à@½À@@½À@à@@@@½@@€0�…€åø�…AþâýÕ�Aþ—ýD�€s@à�…€5g�…€ �…€#6�…€+B�…€çÌ�…€ñè�…€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@€0�†€司�†€Aþâþ‚€@ýÕ�†€Aþ—þ€@ýD�†€s@˜€@à�†€5Bg�†€  �†€#46�†€+>B�†€çäÌ�†€ñìè�†€ €N@@f@½@b@ Àd@ ÀàAM@À@M@À@àM@½À@R@½À@àK@@@M@½@@&æñ2'ëë!$$$'((*)&W"òáÖÎÊÇÄÄÄËÚó:�ååƒ ùïêìöý�FFFD>/òÞ×ÌÁ¼ºººƒ½ÒK6¾½ø @Ÿ"ï¬�HÿhÿVÿNÿJÿFÿFÿFÿWÿ}¼êgå�Í22̓ ÷ïïîòö�C………ƒw['ÿî̽¤‰Cÿ~ÿ{ÿ{ÿ{ƒããÅÅÔÓ…KÿYÿ'ÿÿÿÿÿÿÿÿÿ6ÿb†ÓšLÿoÿ:ÿÿÿÿÿÿÿÿÿ ÿ>ÿršÓ@þâ�‡ „ †ÛÚ¶·ÉÇMÿeÿ.þïþÕþÕþÕþÕþÐþÑþÔþáÿÿ9ÿfÆ€LÿIÿþâþÔþÐþÐþÔþÕþÕþÕþåÿ ÿN€È@þ—�‡ &#„ ""†& 2DW___`aa_[Q?1):P[`aa`___ZN8)s�‡ÿùôôúÿþþ… ÿÿþÿúöõùþ‡&ìë #%%%"#$%$ ÷ )134567773+ ù5�üü„ÿÿ�ûûûúøùüƒ&ÌÓ  úùùùõõõõ÷ööôÓïÿ$(*....* üß �ííƒ ‚ßßßßáçö !!!ƒ&+,ÂÁ"#  Ë=PW]_bddd\I' ×#�þ�þ„ÿýÿ �äääááåôƒB3ª¸+- ¿#Mdnuw|B‚‚‚w]0Ï+�'ÞÞ'„ �×××ÔÔÛð$#(+))))ƒ&ýüÿóïìêêêêêêêëíóöõöóñðððññòòòôøúùöç� öö …ÿÿþþÿÿ�ÿÿÿ�‚ÿƒ&úñòò÷øúúúúúúûýüûûüÿõçáÞÜÛÚØØØÛãðúñ�îî„þüúûýþ� ÿùöø÷õôõõõƒ€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ê�…€¼å�…€˜@þâ�…Aÿ}þ—�€(s�…€5�…€ �…€#�…€+�…€þç�…€øñ�…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@��„�å�„�@þâ�„�@þ—�„�s�„�5�„� �„�#�„�+�„�ç�„�ñ�„€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€î�…€µå�…Aÿsþâ�AÿOþ—�€9s�…€5�…€ �…€&#�…€-+�…€õç�…€ññ�…€ €@@@½@ ` À ` Àà @À@@À@à@½À@@½À@à@@@@½@@€4�…€å�…Aþâþ�Aþ—ý��€s@Ã�…€5Z�…€ �…€#+�…€+5�…€çÒ�…€ñí�…€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@€4�†€åÇ�†€AþâþÀ€@þ�†€Aþ—þh€@ý��†€s@¦€@Ã�†€53Z�†€ �†€#)+�†€+45�†€çãÒ�†€ñëí�†€ €@@'@½@` À` Àà @À@@À@à@½À@@½À@à@@@@½@@ ëë$:O(AV2$�‚ºº!!ÝÝFF„¾½ ïf@�ýt@ž' û�‚Aÿ{ÿ{@@¿¿A……„ÔÓEÿ)ÿÔÿ<ÿÔÿ)ÿ ‡ ÉÇ@þðÈÇCÿ ÿÇþðþȈOVd„ ùùùø �‚ÿÿûû„ äéà×èîÝÓßäñ�‚!!ññßß„ "#ëñÙÐõúÕÍåëø�‚ôô ää„ +-ãìÐÄï÷Ì¿Üåõ�‚))îî×ׄ ÿòòööðñõöòòí�‚�ÿÿ„ òò �‚õõûû „€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ã�…€®û�…€�@ÿ �…AÿjþÈ�€#d�…€�…€ñ�…€ø�…€õ�…€í�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ò�…€Åû�…€¦@ÿ �…€Š@þÈ�…€'d�…€�…€ñ�…€ø�…€õ�…€ í�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ã�…€«û�…€¤@ÿ �…€ˆ@þÈ�…€ d�…€ �…€ñ�…€ø�…€õ�…€í�…€ �…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€â�…€±û�…€¬@ÿ �…€�@þÈ�…€'d�…€ �…€ ñ�…€ø�…€õ�…€üí�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€â�…€±û�…€¬@ÿ �…€�@þÈ�…€'d�…€ �…€ ñ�…€ø�…€õ�…€üí�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Õâ�†€•±û�†€@ÿm¬@ÿ �†€@ÿH�@þÈ�†€'d�†€( �†€ ñ�†€3ø�†€4õ�†€üí�†€�†€ €@@@½@ @ À @ Àà `À@@À@à@½À@@½À@à@@@@½@@€â�…€±û�…€¬@ÿ �…€�@þÈ�…€'d�… ü€ ñ�…€ø�…€õ�…€üí�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€â�…€±û�…€¬@ÿ �…€�@þÈ�…€'d�…€ �…€ ñ�…€ø�…€õ�…€üí�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€â�…€±û�…€¬@ÿ �…€�@þÈ�…€'d�…€ �…€ ñ�…€ø�…€õ�…€üí�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€¼�…€†û�…€Á@ÿ �…€·@þÈ�…€"d�…€@�…€5ñ�…€Hø�…€2õ�…€í�…€ò�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ä�…€žû�…€“@ÿ �…AÿwþÈ�€'d�…€�…€ñ�…€+ø�…€/õ�…€ í�…€�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€â�…€¥û�…Aÿ}ÿ �AÿVþÈ�€1d�…€�…€ñ�…€#ø�…€)õ�…€í�…€�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€Õ�…€•û�…Aÿmÿ �AÿHþÈ�€d�…€(�…€ ñ�…€3ø�…€4õ�…€í�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ô�…€™û�…€Ø@ÿ �…€¨@þÈ�…€Cd�…€�…€ñ�…€ø�…€'õ�…€ôí�…€å�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ö�…€Æû�…€¡@ÿ �…€„@þÈ�…€7d�…€ �…€øñ�…€ø�…€õ�…€öí�…€ý�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ï�…€Ãû�…€¦@ÿ �…€Š@þÈ�…€%d�…€�…€ñ�…€ ø�…€õ�…€í�…€ �…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€Û�…€³û�…€™@ÿ �…AÿþÈ�€$d�…€�…€ñ�…€ø�…€õ�…€ í�…€�…€ €`@`½@@ À@ Àà `À@`À@à`½À@@½À@à@@@`½@@€ß�…€†û�…Aÿ(ÿ �AþïþÈ�€Wd�…€*�…€ñ�…€=ø�…Lõôí€å�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ð�…€¸û�…€®@ÿ �…€”@þÈ�…€d�…€ÿ�…€ñ�…€ ø�…€õ�…€ í�…€�…€ €@@ @½@` À@ Àà @À@@À@à@½À@@½À@à@@@@½@@ ëë#:M&>H�‚ººÕÕ„¾½ ïf@Œùp@‚€÷�‚Aÿ{ÿ{11¬¬„ÓDÿ1ÿÔÿ@ÿÔÿ…ÉÇAþûþûÈÇAÿÿÇÇ@þá��SM[„ ùúûù�‚„ âèàÙçîàÚì�‚!!øø„ "#êðÙÔóøÙÓó�‚„ +-ãìÐÊñúÒÉï�‚))--„ ÿòòööóó÷öñ�‚þþ† òò �‚õõÿÿóó„€ €c@@}@½@s@ Àv@ ÀàP^@À@`@À@à`@½À@`@½À@àX@@@c@½@@1ýïíííëêèéìñû   -7AFHLLLB+ùâÚÆ '!  ��  úõ÷ü‚ÿþý»ººººº¼ÂÑë!(3?CCCA@>ââ""„òäØÕÕÕÓÑÎÎÒÚéôöÿÿ<[tF‰’•ššš‚HÑ¢’@ÿmí-! ùÞ�� "  üóôú‚ÿüúFÿ~ÿ}ÿ{ÿ{ÿ{ÿ{ÿ~‰¦×2?[wB��� ~yvÌÌAA„@ÿn ‘¿×××ÚÝÜÖÇ®ˆJÿlÿ^ÿ?ÿ"ÿÿÿ%ÿ@ÿXÿ`ÿ~ ©ÅÕÜÝÙÖÖÖ”LÿlÿdÿDÿ#ÿÿÿsÿsÿÿÿ%ÿCÿa€@þÝ�� ÿñßâðûùúý‚† ÿüüýïßÞíü‚ÿ�AÿHÿt ¯ÍÍÍÐÔÒ˸™KÿhÿEÿ3ÿ þèþÜþÜþìÿÿ,ÿ6ÿ[ ’µÉÓÔÏËË˲MÿwÿEÿ;ÿþëþÛþÛÿNÿNþÙþÙþëÿÿ7€@þ��� þíÖÚëú÷ùý‚† þûûüëÖÕèû‚ÿ�1;-!0;ANY]]WMC@4#+;?KY^^98^^YMAu��  ‹�ƒŒ1  &(,,*+*% þüüúúú)59<**'"?�� úøúûþþ„üüýûúûûûüúú‡+ý ùðéâßÞÚÚÚáò&0 þ���� öêæéõü ƒ$#"!!!!  òçæãáâââãââööÿ†1  óãÖÎÊÈÅÅÅÐì';AK 4�� öòõõ÷öƒ  ôìíæããããäããþþ†1 #&''&% é×ÉÀ¼¹¶¶¶Äç *FP^ A�� óèéêðò ƒ.-+)))*) ëÜÝÖÔÖÖÖ×ÖÖýý†1ô÷úýýýþþþüúõòðíêéèìïññó÷øûûùùùùù÷ôòñíèçåñôèééíñå�ƒýþþÿÿÿˆÿÿ�ÿûûÿøøúú‡1ù÷õööö÷÷÷ôóôôôôõúýûýüüúþ  ÿúïæåáøúýýûø÷ê�� ýýþ‚ÿÿþóóõõõõôõõü ûûÿÿ„€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€í �…€ÐÞ�…€™@þÝ�…Aÿuþ��€1u�…€?�…€ �…€4�…€A�…€ñå�…€Øê�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ü �…€çÞ�…€°@þÝ�…€•@þ��…€5u�…€ú?�…€ù�…€ê4�…€ÿA�…€ôå�…€Þê�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€í �…€ÍÞ�…€®@þÝ�…€“@þ��…€.u�…€?�…€�…€þ4�…€A�…€øå�…€àê�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ì �…€ÓÞ�…€¶@þÝ�…€š@þ��…€5u�…€?�…€�…€÷4�…€ A�…€æå�…€Ùê�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€à �…€·Þ�…AÿtþÝ�AÿQþ��€)u�…€-?�…€�…€(4�…€/A�…€óå�…€Ûê�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ì �…€ÇÞ�…€‡@þÝ�…Aÿaþ��€?u�…€?�…€ �…€ 4�…€$A�…€ñå�…€Øê�…€ €@@%@½@` À@ Àà @À@@À@à@½À@@½À@à@@@@½@@ ëëHPÓË((ËÂ?H �‚%%ƒ×ׄ¾½Cƒ’ÿ]ÿNCÿNÿ=rƒ€Ó�‚IIƒ°°„ÔÓ@ÿÓÓ@þÐ…ÉÇÇÇEþÆþÅþÅþÅþÇþÆÇÇ@þ€��dz‚ úù12##23úú8�‚ýýƒ„ ÚÖ#'óó&+ÞÚ �‚ï !"ÒÏTWW[ÖÒ+�‚î )+ÅÀio nuËÅ5�‚ææƒ „€ ÷öòôêêóôø÷æ�‚üüƒ„ òòßÝýýÞÛî�‚ƒøø„€ €"@@2@½@` À'@ Àà "@À@"@À@à"@½À@"@½À@à"@@@"@½@@ëëHPÓË((Ë¿_�‡€ #�‡€ìñÙ�‡€ìùâ�‡€æùØ�‡€þöõâ�‡€û÷ �‡€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€@�…€g�…€É@ÿm�…€³@ÿG�…€;�…€ �…€þí�…‚ö�…€ò�…€ôì�…€ð�…€ €@@*@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@ëëHPÙ?E?ÙôAH&�‚##„ßß„¾½Gƒ‘ÿîÿsDƒDÿsÒu@ƒ€�‚AA��ÀÀ„ÔÓÓÓFÿzÿÿÿ{ÿÿ ÿzÓÓ@þé�†ˆÉÇÇÇFÿWþÏþÇÿXþÅþÈÿWÇÇ@þŸ�†ˆ6bd5db6p�†ÿˆ úù'-0'úú-�‚ÿÿ�ÿ�ÿÿ„ Ú×ÞíßÜÚø�‚ññ�� „"#ÓÑ.@ææåC2ÕÓ�‚÷÷�ü�„+-ÇÃ8PßãáT?ÊÇ�‚íí�û�„ÿööñíêìíòöööæ�†�ÿÿ„òòíå æìÿ�‚��ýý„€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ó&�…€Ì�…€‰@þé�…AÿeþŸ�€6p�…€-�…€ø�…€�…€�…€îæ�…€ïÿ�…€ €@@@½@@ À` Àà @À@@À@à@½À@@½À@à@@@@½@@ëëHX0 �‚KK„¾½Aƒ¡) ñ�‚AŽŽ„ÔÓÔÔAÿ9ÿ9€@ÿ�‰ÉÇAÿþ؃P^‚ ù÷(�‚ùù„ ÚÑäì�‚ÜÜ„"#ÒËñø�‚ÞÞ„+-Ǽì÷�‚ÏÏ„ÿöõïñì�‚þþ„òòö�‚„€ €@@@½@ ` À ` Àà @À@@À@à@½À@@½À@à@@@@½@@€R�…€ñX�…Aÿþƒ�AþØþ�€^@™�…€(B�…€ñ�…€�…€�…€ìØ�…€öú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€û�…€íñ�…€å@ÿ�…€Ú@þØ�…€^�…€(�…€�…€�…€ �…€ýì�…€õö�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€�…€$ñ�…Aÿzÿ�AÿTþØ�€*^�…€&(�…€�…€�…€�…€ì�…€ ö�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€è�…€™ñ�…€€@ÿ�…Aÿ^þØ�€/^�…€(�…€ �…€1�…€(�…€íì�…€òö�…€ €@@@½@` À` Àà @À@@À@à@½À@@½À@à@@@@½@@ òÿUHëëHX0 �ñ**ñ‚KK„µÍx`¾½Aƒ¡) ñ�éSSé‚AŽŽ„Aÿ]ÿYÔÓÔAÿ9ÿ†Aÿ/ÿ*ÉÇAÿþØ…34P^„   ù÷2�ëææë‚ùù„  Úà ÚÑäìÿ�ãã‚ÜÜ„ JD !"ÑÊð÷[�çç‚ÞÞ„ B8ÏÙ)+źêõ�õÌÌõ‚ÏÏ„ ÷÷ôô÷öðòç�ôôôô‚þþ„  þûòòö�ÝèèÝ‚„€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€?�…€ñC�…AÿþÆ�AþØþs�€^~�…€(.�…€î�…€÷�…€÷�…€ìÞ�…€öô�…€ €@@@½@` À@ Àà @À@@À@à@½À@@½À@à@@@@½@@ êù4%ëëHX0 �â1ø‚KK„ÄÜ<%¾½Aƒ¡) ý�É5Vê‚AŽŽ„é@ÿxÔÓÔAÿ9ÿõÏ„ââAÿSÿRÉÇÇÇAÿÿ€@þØ�ïðÁ¿‰ 76P^‚   ù÷%�‚ùù„ âê ÚÑäìƒþì‚ÜÜ„ îñ"#ÒËñø �ö‚ÞÞ„ &!êï+-Ǽì÷�èý‚ÏÏ„ ÿñöÿöõïñè�ûõü‚þþ„ öõòòê�ÿ‚„€ €#@@2@½@/@ À/@ Àà+!@À@!@À@à/@½À@1@½À@à@@@!@½@@ëëi./­..Õº¸%ï&$@�‚A¥¥ƒ‚‚�‚‚„¾½@Ñ:>@ÿ!11BÿvÿEÿ>2¶HArð�‚A88ƒAÿÿ�Aÿÿ„ÔÓÙIÿNÿOþ»þÁþÁþÁþ¼þ¼ÿNÿCÍÍÒ@þŠ�‚ƒéé�éé„ÉÇÎIÿÿþcþmþmþoþgþgÿ ÿ¿¿Æ@þ(�‚ƒèè�èè„HGE‚€€€ƒƒIL@—�‚øøƒ � „ ÿ&%fYYivu7/ üo�‚Äă<<�<<„ Öÿ\ Pijö÷Þ7�‚ˆˆƒjj�jj„"#Ê@¡JJB•³¶3@øúÜm�‚Aÿ_ÿ_ƒA���A��„+-¼@Í]]B¹ãæ?PöùÒ@‰�‚AÿÿƒAÈÈ�AÈÈ„ÿñßáÙÒÒ××ÖðäþýûÍ�‚ÜÜŽòòøù¿ââÄ·¶êæÓ�‚@@ƒÇÇ�ÇÇ„€ €`@'`½@@ À@ Àà `À@`À@à`½À@`½À@à`@@`½@@  ëëNñôÒ**Ò(%C �‚A¢¢ƒAÿvÿv„¾½@�¯²@ÿf@ÿb53sÛ�‚AddƒAþÓþÓ„ÔÓÛEÿ ÿÿþÿÿÍþЂ‚åÉÇÑEþÎþÅþÅþ¼ÿ¿þ€‚#‚Þ bbdddez�‚õõƒ „ ë;:4##=ñôø9�‚ƒèè„ Ï" (õõ*ÞáÛ �‚Ý݃„ "#¶JIOcÙÛÙ(�‚ååƒ „ +-¢\Zc|ÏÒÏ2�‚Ý݃ „ ÿ÷êíñééñþýùå�‚ì샄 òòââàþþÚð�‚ ƒüü„€ €@@@½@ ` À ` Àà @À@@À@à@½À@@½À@à@@@@½@@€ L�…€ÛB�…AþÐþ=�Aþ€ýÇ�€z@µ�…€9S�…€ ù�…€(�…€2$�…€åÑ�…€ðô�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€é �…€»Û�…AÿzþÐ�AÿXþ€�€/z�…€9�…€ �…€)(�…€&2�…€öå�…€ïð�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€é �…€¸Û�…€�@þÐ�…Aÿvþ€�€,z�…€9�…€ �…€#(�…€2�…€ýå�…€÷ð�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€æ �…€¬Û�…AÿiþÐ�AÿHþ€�€;z�…€(9�…€ �…€1(�…€02�…€îå�…€èð�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€è �…€²Û�…AÿhþÐ�AÿDþ€�€=z�…€!9�…€ �…€/(�…€02�…€öå�…€ïð�…€ €6@@F@½@E` ÀE` Àà22@À@2@À@à2@½À@2@½À@à2@@@2@½@@ÜèçâÞÞÒ(%CëëNñôÒ*84-!ñ �€::877AÿvÿvƒA¢¢�E1 „@ÿ–��Bÿyÿyÿb53s¾½@�¯²@ÿf91! ç«Û�mmkknAþÓþÓƒAdd�@Œa-ƒDÿ1ÿÿ ÿ ÿÍÔÓÛGÿÿÿÿ ÿÿÿ*þÐ å‚! DþûþÐþÈþÈþÄ¿ÉÇÏGþÓþÅþÇþÇþÖþãþòþ€  Þ‚5  RRY`cccbbddbb`]ZTz�üüüûüü ƒõõ�üûüüüüƒ'%(,.-6ñóøé652!"" !%9�úòòõöñççƒ�þüûúƒ (ÞáÛ Ñ(õòóôú �ûÛÛÞÝÛƒÚÚ�ëðöùûûƒ>8;BFDXÙÛÙ ±CBJÿÿ-(�÷ÚÚÞÜÒ* ƒßß�ôûýüú÷ƒTLOY^[sÏÒÏ+-¤WUc !>2�ôÊÊÐ̾4 ƒËË�ñúþýùôƒóòñïïïñþýùÿ÷êíñéèéêìíòå�ýýýüþƒìì�øûþƒãæáÞÝÜÜòòââàýþýúóëð�ûüüƒ �ƒ€ €4@@D@½@9@ À9@ Àà/ 0@À@0@À@à0@½À@0@½À@à0@@@0@½@@ðüøõòðçJñòÎ&&Ï#"OKB5" �€::94-�A¨¨ƒAÿpÿpE3 „ÞõéÜÕÓÀ@Œ¬¯@ÿc@ÿk>/òÞ×ɽººº»ÂÑë $)7CFƒûêÙÕÕÕ×ÔÏÊËÒàëü  á¥Hÿ~ÿeÿSÿKÿGÿCÿCÿCÿ_ŸÕ>e~G�˜š�ŸŸŸƒBá��  ýôôû‚ õêééîöB……‚vY(îͽ�‚Cÿ{ÿ{ÿ{ÿ~ Š§Ø !7Bb~@…ƒ@ÿn —Å×××ÙÛØÖÌ·�ZÿnÿEÿÿÿÿÿÿÿÿÿÿ$ÿMÿnÿMÿ$ÿÿÿÿÿÿÿÿÿÿFÿn Ž·ÎØÚÛÙ×ÖÖÖÄ–@þÖ�� þôçéôûøúþ‚   ‚   ‚ þüüý÷ìèéõÿ„AÿHÿ| ¶ÍÍÍÏÑÎʾ¤\ÿqÿHÿþÛþÄþÄþÄþÁþ¾þÀþÃþÏþêÿÿIÿ þìþÏþÂþ¿þ¾þÂþÃþÃþÃþÛÿÿHÿq ¤ÀÌÏÐÍÌÌÌÌ´@ÿ{€@þˆ�� þñáãñúöøý‚ ! ‚  ‚ þûûüôçâãóÿ„6;*.;PaeeeegfebYI;GWaeggeeee]K;.*x��  ‚ ÿûööúÿþþÿ‚ÿÿþÿûö÷üƒ  …6 $'''&%%&'%!-26677:::4&þþýüûüüü 0��þúùúþþƒ%ûûùùúüüúúúúúûƒ6  üüüüùøøúüþ !(+-/222, óìçäáàÜÚÚÚàð�� ùìäèôü‚% ßßÞàçô!!!!"  öìçæáß߃6   5CKOQUWWWK.ÿåÖÏËÈÆÄÃÃÃÎí�� üø÷øùö÷øûý‚%  ääââèô õíëëçääƒ6    @S]cflpppa<ÿßÍÄ¿»·³°°°¿å�� úòîïòòñóøü‚% ××ÕÕÞï'$)*)))++"íÝÜÝØÖ׃6ó÷ûýýýþÿÿþÿü÷ôëéêêêëééééëîòññïðñññòòòóôõö÷ùùø÷÷ööööõõç�‚ÿþýþÿƒÿþþþ�ÿÿ���ÿÿ‚üûþÿƒ6úøø÷÷÷ùø÷öøúûüøûþþþÿþþýúúùýõëäâàßÞÜÜÜâîø  ø��ƒ%ÿüüýþüùùûþ øôóòðñññðñóû ƒ€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ê �…€¾á�…Aÿ}þÖ�AÿXþˆ�€.x�…€0�…€�…€�…€�…€öç�…€óø�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ù �…€Õá�…€”@þÖ�…Aÿxþˆ�€2x�…€0�…€ÿ�…€ÿ�…€�…€ùç�…€ùø�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ê �…€»á�…€’@þÖ�…Aÿvþˆ�€+x�…€ 0�…€ �…€�…€�…€ýç�…€ûø�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€é �…€Áá�…€š@þÖ�…Aÿ}þˆ�€2x�…€0�…€ �…€ �…€ �…€ëç�…€ôø�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€é �…€Áá�…€š@þÖ�…Aÿ}þˆ�€2x�…€0�…€ �…€ �…€ �…€ëç�…€ôø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€îé �†€´Áá�†€@ÿmš@þÖ�†€AÿHÿ}€@þˆ�†€<2x�†€0�†€ �†€ �†€" �†€ôëç�†€ôôø�†€ €@@@½@ @ À ` Àà `À@@À@à@½À@@½À@à@@@@½@@€é �…€Áá�…€š@þÖ�…Aÿ}þˆ�€2x�…0ü€ �…€ �…€ �…€ëç�…€ôø�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€é �…€Áá�…€š@þÖ�…Aÿ}þˆ�€2x�…€0�…€ �…€ �…€ �…€ëç�…€ôø�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€é �…€Áá�…€š@þÖ�…Aÿ}þˆ�€2x�…€0�…€ �…€ �…€ �…€ëç�…€ôø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€à �…€–á�…€¯@þÖ�…€¥@þˆ�…€-x�…€B0�…€2�…€D�…€/�…€ôç�…€ãø�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ë �…€®á�…€�@þÖ�…Aÿeþˆ�€2x�…€0�…€�…€'�…€,�…€ùç�…€òø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ëâ �†€®Ãá�†€�‚@þÖ�†€Aÿeÿl€@þˆ�†€2/x�†€"0�†€�†€'�†€,�†€ùùç�†€ò÷ø�†€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€éâ �†€µÃá�†€@ÿk†@þÖ�†€AÿDÿl€@þˆ�†€<.x�†€0�†€�†€�†€&�†€öúç�†€ó÷ø�†€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€î �…€´á�…AÿmþÖ�AÿHþˆ�€<x�…€0�…€ �…€�…€"�…€ôç�…€ôø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Û �…€©á�…€Æ@þÖ�…€–@þˆ�…€Nx�…€0�…€�…€�…€$�…€ãç�…€Öø�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ý �…€Öá�…€�@þÖ�…Aÿrþˆ�€Bx�…€ 0�…€õ�…€�…‚�…€åç�…€îø�…€ €�@@®@½@µ@ Àº@ Àày‹@À@�@À@à�@½À@�@½À@à‰@@@Œ@½@@?ýþ 7983& ø ýñîîîíêçåæíø !! êÚÎÅÁ¿»»»Çáö/;CHILMMMB( �ë‚ ùùûòíëë�  úôöü‚%øëåçóýFFE>/òÞ×ɽººº»ÂÑë $)7CFƒ+ÒÛ¼ÅÎÑÑÎ251(ݱûêÙÕÕÕ×ÔÏÊËÒàëü  á¥Hÿ~ÿeÿSÿKÿGÿCÿCÿCÿ_ŸÕ>e~G�˜š�ŸŸŸƒBá�Ô‚ öö÷äÙÔÔ�  ýôôû‚ õêééîöB……‚vY(îͽ�‚Cÿ{ÿ{ÿ{ÿ~ Š§Ø !7Bb~@…ƒOÿ%ÿ%ÿÿÿÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿÿn —Å×××ÙÛØÖÌ·�ZÿnÿEÿÿÿÿÿÿÿÿÿÿ$ÿMÿnÿMÿ$ÿÿÿÿÿÿÿÿÿÿFÿn Ž·ÎØÚÛÙ×ÖÖÖÄ–@þÖ�ƒþù�ùûþÿƒ þôçéôûøúþ‚   ‚   ‚ þüüý÷ìèéõÿ„PþíþíþÖþÓþÑþÐþÎþÏþÌþÊþÊþÎþÓþØþÚÿHÿ| ¶ÍÍÍÏÑÎʾ¤\ÿqÿHÿþÛþÄþÄþÄþÁþ¾þÀþÃþÏþêÿÿIÿ þìþÏþÂþ¿þ¾þÂþÃþÃþÃþÛÿÿHÿq ¤ÀÌÏÐÍÌÌÌÌ´@ÿ{€@þˆ�ƒý÷�÷úýÿƒ þñáãñúöøý‚ ! ‚  ‚ þûûüôçâãóÿ„?XXbbbbbbbbbbbbb;*.;PaeeeegfebYI;GWaeggeeee]K;.*x��  ‚ ÿûööúÿþþÿ‚ÿÿþÿûö÷üƒ  …?%" ! $'''&%%&'%!-26677:::4&þþýüûüüü 0�ÿ‚þÿ‚�ÿÿ�þúùúþþƒ%ûûùùúüüúúúúúûƒ?  ïñóõû   üüüüùøøúüþ !(+-/222, óìçäáàÜÚÚÚàð�‚ÿÿþ�� ùìäèôü‚% ßßÞàçô!!!!"  öìçæáß߃?ÿþ*!òôõ÷(   5CKOQUWWWK.ÿåÖÏËÈÆÄÃÃÃÎí�‚þüý�� üø÷øùö÷øûý‚%  ääââèô õíëëçääƒ?K@9888 0H    @S]cflpppa<ÿßÍÄ¿»·³°°°¿å� ‚ýûû� � úòîïòòñóøü‚% ××ÕÕÞï'$)*)))++"íÝÜÝØÖ׃?óòííîïïîëëêîññíó÷ûýýýþÿÿþÿü÷ôëéêêêëééééëîòññïðñññòòòóôõö÷ùùø÷÷ööööõõç�ƒ�‚ÿþýþÿƒÿþþþ�ÿÿ���ÿÿ‚üûþÿƒ?þþêîòóôòþñéúøø÷÷÷ùø÷öøúûüøûþþþÿþþýúúùýõëäâàßÞÜÜÜâîø  ø�ý‚�ÿþýýý�ƒ%ÿüüýþüùùûþ øôóòðñññðñóû ƒ€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ê �…€¾á�…Aÿ}þÖ�AÿXþˆ�€.x�…€0�…€�…€�…€�…€öç�…€óø�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€î �…€´á�…AÿmþÖ�AÿHþˆ�€<x�…€0�…€ �…€�…€"�…€ôç�…€ôø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Û �…€©á�…€Æ@þÖ�…€–@þˆ�…€Nx�…€0�…€�…€�…€$�…€ãç�…€Öø�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ý �…€Öá�…€�@þÖ�…Aÿrþˆ�€Bx�…€ 0�…€õ�…€�…‚�…€åç�…€îø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€÷ �…€Èá�…€œ@þÖ�…€‚@þˆ�…€(x�…€0�…‚�…€�…€�…€ùç�…€÷ø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Þ �…€½á�…€¥@þÖ�…€Š@þˆ�…€+x�…€0�…€�…€�…€ �…€òç�…€éø�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ö �…€Óá�…€”@þÖ�…Aÿxþˆ�€0x�…€0�…€�…€�…€�…€ýç�…€üø�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€â �…€Ãá�…€‡@þÖ�…Aÿmþˆ�€/x�…€0�…€�…€�…€�…€ùç�…€öø�…€ €`@`½@@ À@ Àà `À@`À@à`½À@@½À@à@@@`½@@€Û �…€ªá�…AÿgþÖ�AÿCþˆ�€@x�…€00�…€*�…€=�…Iûç€ôø�…€ €r@@”@½@”@ À™@ Ààmq@À@r@À@àr@½À@r@½À@ào@@@q@½@@:öÑ< ýñîîîíêçåæíø !! êÚÎÅÁ¿»»»Çáö/;CHILMMMB( �…  úôöü‚%øëåçóýFFE>/òÞ×ɽººº»ÂÑë $)7CFƒ χXûêÙÕÕÕ×ÔÏÊËÒàëü  á¥Hÿ~ÿeÿSÿKÿGÿCÿCÿCÿ_ŸÕ>e~G�˜š�ŸŸŸƒBá�…  ýôôû‚ õêééîöB……‚vY(îͽ�‚Cÿ{ÿ{ÿ{ÿ~ Š§Ø !7Bb~@…ƒÛCÿÿÿØÿn —Å×××ÙÛØÖÌ·�ZÿnÿEÿÿÿÿÿÿÿÿÿÿ$ÿMÿnÿMÿ$ÿÿÿÿÿÿÿÿÿÿFÿn Ž·ÎØÚÛÙ×ÖÖÖÄ–@þÖ�… þôçéôûøúþ‚   ‚   ‚ þüüý÷ìèéõÿ„ÒDþÃþ½ÿÍÿHÿ| ¶ÍÍÍÏÑÎʾ¤\ÿqÿHÿþÛþÄþÄþÄþÁþ¾þÀþÃþÏþêÿÿIÿ þìþÏþÂþ¿þ¾þÂþÃþÃþÃþÛÿÿHÿq ¤ÀÌÏÐÍÌÌÌÌ´@ÿ{€@þˆ�… þñáãñúöøý‚ ! ‚  ‚ þûûüôçâãóÿ„:bg;*.;PaeeeegfebYI;GWaeggeeee]K;.*x�…  ‚ ÿûööúÿþþÿ‚ÿÿþÿûö÷üƒ  …:ûF=ò $'''&%%&'%!-26677:::4&þþýüûüüü 0�…þúùúþþƒ%ûûùùúüüúúúúúûƒ:óú  üüüüùøøúüþ !(+-/222, óìçäáàÜÚÚÚàð�… ùìäèôü‚% ßßÞàçô!!!!"  öìçæáß߃:1ð   5CKOQUWWWK.ÿåÖÏËÈÆÄÃÃÃÎí�… üø÷øùö÷øûý‚%  ääââèô õíëëçääƒ:%;í    @S]cflpppa<ÿßÍÄ¿»·³°°°¿å�… úòîïòòñóøü‚% ××ÕÕÞï'$)*)))++"íÝÜÝØÖ׃:îã÷ó÷ûýýýþÿÿþÿü÷ôëéêêêëééééëîòññïðñññòòòóôõö÷ùùø÷÷ööööõõç�†ÿþýþÿƒÿþþþ�ÿÿ���ÿÿ‚üûþÿƒ:ôïþúøø÷÷÷ùø÷öøúûüøûþþþÿþþýúúùýõëäâàßÞÜÜÜâîø  ø�…ƒ%ÿüüýþüùùûþ øôóòðñññðñóû ƒ€ €@@¡@½@¨@ À¬@ Ààt~@À@@À@à@½À@~@½À@à{@@@}@½@@?öÑ< ýñîîîíêçåæíø !! êÚÎÅÁ¿»»»Çáö/;CHILMMMB(ååà** �…  úôöü‚+øëåçóýFFE>/òÞ×ɽººº»ÂÑë $)7CFëëðððëƒ Ï‡XûêÙÕÕÕ×ÔÏÊËÒàëü  á¥Hÿ~ÿeÿSÿKÿGÿCÿCÿCÿ_ŸÕ>e~G�˜š�ŸŸŸƒBµµ 88.á�…  ýôôû‚ õêééîöB……‚vY(îͽ�‚Cÿ{ÿ{ÿ{ÿ~ Š§Ø !7Bb~@…××ááá׃ÛCÿÿÿØÿn —Å×××ÙÛØÖÌ·�ZÿnÿEÿÿÿÿÿÿÿÿÿÿ$ÿMÿnÿMÿ$ÿÿÿÿÿÿÿÿÿÿFÿn Ž·ÎØÚÛÙ×ÖÖÖÄ–EÿxÿxÿVÿPÿPÿt€@þÖ�… þôçéôûøúþ‚   ‚   ‚þüüý÷ìèéõÿëëëëëëƒÒDþÃþ½ÿÍÿHÿ| ¶ÍÍÍÏÑÎʾ¤\ÿqÿHÿþÛþÄþÄþÄþÁþ¾þÀþÃþÏþêÿÿIÿ þìþÏþÂþ¿þ¾þÂþÃþÃþÃþÛÿÿHÿq ¤ÀÌÏÐÍÌÌÌÌ´Fÿ{ÿRÿRÿ'ÿÿÿM€@þˆ�… þñáãñúöøý‚ ! ‚  ‚þûûüôçâãóÿååååååƒ?bg;*.;PaeeeegfebYI;GWaeggeeee]K;.*..;>>/x�…  ‚ ÿûööúÿþþÿ‚ÿÿþÿûö÷üƒ  ‹?ûF=ò $'''&%%&'%!-26677:::4&þþýüûüüü 0�…þúùúþþƒ+ûûùùúüüúúúúúû  ƒ?óú  üüüüùøøúüþ !(+-/222, óìçäáàÜÚÚÚàð êê�… ùìäèôü‚+ ßßÞàçô!!!!"  öìçæáß߃?1ð   5CKOQUWWWK.ÿåÖÏËÈÆÄÃÃÃÎíòò�… üø÷øùö÷øûý‚+  ääââèô õíëëçääƒ=%;í    @S]cflpppa<ÿßÍÄ¿»·³°°°¿å (ææ��… úòîïòòñóøü‚+ ××ÕÕÞï'$)*)))++"íÝÜÝØÖ׃?îã÷ó÷ûýýýþÿÿþÿü÷ôëéêêêëééééëîòññïðñññòòòóôõö÷ùùø÷÷ööööõõööõëëíç�†ÿþýþÿƒÿþþþ�ÿÿ���ÿÿ‚üûþÿ�„?ôïþúøø÷÷÷ùø÷öøúûüøûþþþÿþþýúúùýõëäâàßÞÜÜÜâîø  óóôüø�…ƒ%ÿüüýþüùùûþ øôóòðñññðñóû �„€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€÷ �…€Èá�…€œ@þÖ�…€‚@þˆ�…€(x�…€0�…‚�…€ �…€�…€ùç�…€÷ø�…€ €@@@½@ @ À @ Àà @À@ `À@à @½À@ @½À@à@@@@½@@€÷â �†€ÈÃá�†€œ‚@þÖ��샀‚@ÿm€@þˆ�†€(/x�†€0��ƒé€ ��ƒ€��øƒ€ùùç�†€÷öø�†€ €‡@@µ@½@£@ À§@ Àà‚ˆ@À@‡@À@à‡@½À@‡@½À@à†@@@†@½@@?ðìëìììëéçæêïûÙÊ&.0( áÑ ,@JH@éÚ öÜɼ²®¬©©©°ÀØêý*7AEHKKK>!Ï��   öñôú‚1¶¶¶·º»Ñãë $$ÚÚ9JFHJJJJJHB2ôß×˽¸¶¶¶¸¾Îê )9GJƒ(çÜÖ××רÕÒÌÌÐÜç§‹.0/1µ™'Fb_\aç á¥Iÿ}ÿdÿSÿKÿGÿCÿCÿCÿRÿu¬Õ>e~F�˜œ   „C—�� ##õôù‚Dÿ{ÿ{ÿ{ÿ|ÿ ‡®ËÝ@@¿¿U}D��………€B……‚vZ'î˼¤‰Dÿ~ÿ{ÿ{ÿ{ÿ~ЦÙ3Cc~@…ƒ@ÿn —Æ×××ÙÛÚ×η�gÿnþMþMÿÿ ÿÿÿ ÿÿÿÿÿþ`þ`ÿÿÿÿÿÿÿ ÿþRþRÿnÿOÿ(ÿÿÿÿÿÿÿÿÿÿ'ÿOÿn Ž·ÎØÛÛÙ×××Å—@þ2�� þôêêöýüýþ‡…ÿ‡   ‚ þüûþôééöÿ„AÿGÿ| ¶ÌÌÌÎÐÏËÀ£iÿpÿGýÚýÚþÀþÌþÓþÒþÊþÀþÀþÀþ¼þ½ýñýñþ½þ¾þÁþÎþÞþÜþÍþÀýàýàÿGÿ þîþÒþÅþ¿þ½þ¿þÂþÂþÂþÏþíÿ ÿGÿp £¿ËÎÏÌÌÌÌ´@ÿz€@ý¸�� þñääôüûüý‡ ù…ÿ‡ ƒ þûúýðããòý„ <+/>><=z|?=;2& '/vx!*5=CGJLMMMJA4) �ýüüü@†�� ÿ‚1þüûûüüüûùøøøøïïîîñø öóóðîïƒ?=Cíìú  ?F ÿòèÚÜ06 "-5=AFFFFC:*þôíèåâÛÛÛã÷D�� ûöóöøÿ‚1%%%"## îîîäâßÛÛÛÛÛÛÜäó$%%%%%$ ñèçâÝÛƒ?FLóðö÷þÿýPUüòåèêç;A1@HMQVWWWQB(ÿå×ÏÊÈÄÂÂÂÍëN�� ûôïïíìöÿ‚1 þ÷ôô öíèèäääääââçô ïêìæääƒ?&$&/ßä÷ú ý4<þòäåÚÐ" >PYbgpqqqjW6áÐÆÀ¼µ°°°¿æ2�� ùíäæåèëòøþ‚1)))&#"îîóåÞÝ×××××ÕÕÜð)$(++)))++$âÙÝÙØ×ƒ ÿþþþ�:þûôñ ôùÿÿÿÿý ýûþ ûù úûüýÿþÿÿýúúúööö÷ù��   ‚ÿÿ� þþþýþüûûûûûüüÿÿþ�ÿüýüûƒ?ôôõõõõ÷øöõôõôôáßüüüýüÝÜúúýæãûôéäáÝÛÙÚÚÚÚÞëöþÛ��ÿƒ1õõõöö÷úýûûÿ ú÷÷õõõõõõôõöû  ƒ€ €C@@W@½@S@ ÀS@ Àà3C@À@C@À@àC@½À@K@½À@àB@@@C@½@@!ëë!!!"" AHPëáÓÌÇÅÄÂÂÂÅÎ×: �ƒýóèéééâÝÜÞÞÞ###öïêÞÙÒż¼¼ƒ¾½ñû üñæuAƒ�µ•IÿmÿWÿKÿHÿFÿCÿCÿCÿNÿn�hã�ƒûïëßÕÉ¿½¿¿¿@@@,ìߨݬ‘BÿÿÿƒÔÓLÿEÿ2ÿÿÿÿÿÿÿÿÿ!ÿ6ÿHÓÓÓLÿIÿ6ÿ!ÿÿÿÿÿÿÿÿÿ4ÿIÓ@þè�ƒ  Ž  †ÉÇLÿþüþäþÛþÛþÛþÙþØþØþÛþæÿÿÇÇÇLÿÿþçþÛþ×þ×þØþÙþÙþÙþãþÿÿÇ@þž�ƒŽ†!LS[^^^^__^ZRJJQZ^___^^^ZRJq�ƒþüùúþŽÿüûüÿ†! &''(((('&'(&!øú÷5676788999997ûB�ƒýúúúúúöööõöùýƒ!  ÿþþþþýýÛÚÔ&),-01355541.á�ƒ  èèèìóý ƒ!"#ÒÓÎIR[`dfijjjg^SØ=�ƒÿýü ý÷øüüüääääçôÿ ƒ+-%!ÇÈÀ[fryE‚†‰‰‰…xkÐM�ƒ õëñûûû××××Üîÿ %%%ƒ!ÿîíêéééëêëêêëîööõììïðòñðñññôóï÷ã�„ÿÿÿƒ!òò÷÷÷ööö÷öø÷öôõâßÛÙØÖÕÕÕÕ×ÛÞç�ƒýü úøøù÷öööƒ€ €H@@U@½@U@ ÀU@ Àà5H@À@H@À@àQ@½À@V@½À@àC@@@H@½@@#ÑÒ/3Ýæò÷÷÷øøöñìäÞ+/:Á·©¢�›š˜˜˜›¤­$ú�‚ øùùùòíìîîî333(ÿúîéâÕÌÌ̃¢¢gnÛãñùùùùùöðëåá`g{ €JÿWÿAÿ5ÿ2ÿ1ÿ.ÿ.ÿ.ÿ9ÿYÿxSí�‚###$ óæáâââcccO1ûèßд¢¢¢ƒ¸¸··Lÿ)ÿÿþüþüþüþúþùþùþûÿÿÿ,···Lÿ-ÿÿþýþúþùþúþûþûþûÿÿÿ-·@þè�…  Ž  †­¬¬¬LþøþàþÈþ¿þ¿þ¿þ½þ¼þ¼þ¾þÊþåþüª««LþýþåþËþ¿þ»þ»þ¼þ½þ½þ½þÇþãþý¬@þž�…ކ#ö÷÷÷07?BBBBCCA>6.õöö.5>BCCCBBB>6.÷q�…þüùúþŽÿüûüÿ†##"UVVWWWVVVXWUPdefefgghhhhhfn�‚ þþþþþúúúùúýƒ#''óò62,++++**.023õóíSVYZ]^`bbba^[ù�‚ÿÿÿ  çççëòü ƒ>>ïð34444453111.(ïïëfoy|F�„†‡‡‡„{põ3�‚ÿþøõùþþþææææéö ƒGHãäCA<:::;9641*#åäÝxKƒ�—� £¦¦¦¢•ˆì@�‚ñêóþþþÚÚÚÚßñ#(((ƒ#Ù�‚ ÿÿÿÿ† ÿþþþƒ# --/.0þûöóòñððððòöú+ë�‚ÿÿÿÿ ÿúùøøööööƒ€ €s@@š@½@–@ À›@ Àànu@À@v@À@àv@½À@v@½À@àp@@@u@½@@;¿Ù. ýñîîîíêçåæíø !! êÚÎÅÁ¿»»»Çáö/;CHILMMMB( �†  úôöü‚%øëåçóýFFE>/òÞ×ɽººº»ÂÑë $)7CFƒ@ÿy �R86ûêÙÕÕÕ×ÔÏÊËÒàëü  á¥Hÿ~ÿeÿSÿKÿGÿCÿCÿCÿ_ŸÕ>e~G�˜š�ŸŸŸƒBá�‚‚  ýôôû‚ õêééîöB……‚vY(îͽ�‚Cÿ{ÿ{ÿ{ÿ~ Š§Ø !7Bb~@…ƒEÿÿdÿaÿÿÿn —Å×××ÙÛØÖÌ·�ZÿnÿEÿÿÿÿÿÿÿÿÿÿ$ÿMÿnÿMÿ$ÿÿÿÿÿÿÿÿÿÿFÿn Ž·ÎØÚÛÙ×ÖÖÖÄ–@þÖ�† þôçéôûøúþ‚   ‚   ‚ þüüý÷ìèéõÿ„FþÁÿ;ÿ7þ½þ½ÿHÿ| ¶ÍÍÍÏÑÎʾ¤\ÿqÿHÿþÛþÄþÄþÄþÁþ¾þÀþÃþÏþêÿÿIÿ þìþÏþÂþ¿þ¾þÂþÃþÃþÃþÛÿÿHÿq ¤ÀÌÏÐÍÌÌÌÌ´@ÿ{€@þˆ�† þñáãñúöøý‚ ! ‚  ‚ þûûüôçâãóÿ„;e?@gg;*.;PaeeeegfebYI;GWaeggeeee]K;.*x�†  ‚ ÿûööúÿþþÿ‚ÿÿþÿûö÷üƒ  …;U44 $'''&%%&'%!-26677:::4&þþýüûüüü 0�‚‚þúùúþþƒ%ûûùùúüüúúúúúûƒ;7Ú  üüüüùøøúüþ !(+-/222, óìçäáàÜÚÚÚàð�‚‚ ùìäèôü‚% ßßÞàçô!!!!"  öìçæáß߃;9ý³ðñ   5CKOQUWWWK.ÿåÖÏËÈÆÄÃÃÃÎí�‚ý‚ üø÷øùö÷øûý‚%  ääââèô õíëëçääƒ;Hûšìí    @S]cflpppa<ÿßÍÄ¿»·³°°°¿å�‚ü‚ úòîïòòñóøü‚% ××ÕÕÞï'$)*)))++"íÝÜÝØÖ׃;éøóååó÷ûýýýþÿÿþÿü÷ôëéêêêëééééëîòññïðñññòòòóôõö÷ùùø÷÷ööööõõç�‡ÿþýþÿƒÿþþþ�ÿÿ���ÿÿ‚üûþÿƒ;éþúøø÷÷÷ùø÷öøúûüøûþþþÿþþýúúùýõëäâàßÞÜÜÜâîø  ø�‚‚ƒ%ÿüüýþüùùûþ øôóòðñññðñóû ƒ€ €Q@@h@½@p@ Àp@ ÀàBQ@À@Q@À@àT@½À@Q@½À@àQ@@@Q@½@@(ëë #%%%$$#" +,Í×ÚßáAHOòç×ÍÇÆÅÄÄÄÉÓÙ: �ƒ ûóëëéåãÜÛáçç�ÝÞßßß!!!ôîéßÙÒż¼¼ƒ¾½ò&1!Aÿ\ÿ~‡™¢uAƒ�¼šIÿpÿXÿMÿKÿIÿHÿHÿHÿUÿs‹há�„ úðíæÜÕÔÖÙØÓ�½¾¿¿¿888#æÛÔĺ«�BÿÿÿƒÔÓSÿBÿ4ÿ ÿÿÿÿÿÿÿÿÿÿ)ÿ7ÿÿÿ9ÿ@ÿMÿTÓÓÓLÿFÿ4ÿÿÿÿÿÿÿÿÿÿ2ÿBÓ@þè�ƒ  �ÿÿ†ÿýÿ †ÉÇSÿþþþäþØþØþØþÖþÕþÔþÕþØþßþñÿþ×þÙÿÿÿÿ'ÇÇÇLÿþþþâþÕþÑþÓþÔþÖþÖþÖþäþþÿÇ@þž�ƒ �ÿÿ†þüþ †(MX_____````]VP_^POIFJR[_``____[TMq�ƒüù÷øüÿÿÿ�þüûüþ†( &!"&&&'()*/1-$'821//øúø3356877888646û9�ƒ ÿùý þ�úúùùùõõõõøùýƒ( øøúúúûûûüûø.((+,ÛÚÕ #(+..1222,&(á�ƒ    �èèèëò÷ûƒ(!"^PLD?ÑÒÍCLV\_`bbbb]UR×-�&ÿÿÿÿÿûøôý ÿÿüüûûûÿçççéï÷ ƒ()+ wd^UPÅÆ¾S_lswy|}}}tkiÎ8�ƒ û  ýÿ�üüûûûÙÙÙÜäò#%%%ƒ€'ïéèêêêêéèèêëììéññïñò÷÷÷ðëëîóõöõõõ÷ôðúæ�ƒ öìëôüþþý�ûúúúúþþþüüüÿƒ(òòôòõùùùù÷öõôöùýùÙßßâååáÜÚÙØØØØØÚÜÞí�ƒ ýøööøúýþ� ÿüùùù÷õõõƒ€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ð �…€Âá�…€�@þè�…Aÿoþž�€'q�…€9�…€�…€"-�…€'8�…€ðæ�…€éí�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ð �…€¿á�…€¤@þè�…€�@þž�…€$q�…€ 9�…€ �…€-�…€8�…€÷æ�…€ñí�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€æ �…€®á�…Aÿuþè�AÿSþž�€6q�…€(9�…€�…€3-�…€78�…€ïæ�…€çí�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€É �…€šá�…€Á@þè�…€¼@þž�…€&q�…€B9�…€1�…€M-�…€:8�…€îæ�…€Ùí�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€í �…€³á�…Aÿvþè�AÿSþž�€8q�…€9�…€�…€*-�…€28�…€õæ�…€ïí�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ü �…€×á�…€¦@þè�…€�@þž�…€)q�…€9�…€�…€-�…€8�…€÷æ�…€òí�…€ €�@@µ@½@°@ À¸@ Àà„�@À@�@À@àŽ@½À@Ž@½À@à‹@@@�@½@@? üû ÿôíäÖÏÊÉÉÉÎÚäùùöööôóöþ $)*7=CMSWWWQK:1++++-...*! ��FFFFFFGD?:"îáãÝ×ÓÓרâñïïêõþƒÿýû¹¹ºººº»¿ÃÇÙï ""  „çåÝÚÞöùðàÙѾ¤•„Hÿlÿ]ÿUÿRÿRÿRÿ^ÿlÿn°ÇÒÒÒÒÓ×ãó @]jxF�›¢¢¢“‚>-""""$%%#ùå��F‚‚ƒ………„~ulEìÐϵ±´´´¹ÂÇÔÙè÷þ‚ýúøFÿ|ÿ{ÿ{ÿ{ÿ{ÿ{ÿ~†Œ“µà +==>?9-##"!! „Aÿ^ÿq™ÀÒÒÁšOÿvÿhÿ\ÿTÿMÿEÿ6ÿ%ÿÿÿÿÿÿ&ÿ<ÿP �ÀÖÖÖ××Öǰ‘HÿÿqÿQÿ4ÿ)ÿ)ÿ8ÿWÿv „’§¹ÂÇÏÓÕÕÕÅ®Lÿ`ÿIÿ,ÿÿÿÿÿÿÿ!ÿ9ÿQÿa€@þè�Š  õïíîïèêõ†ÿƒüöôíâÞäïöÿÿý  $„Bÿ4ÿLÿ~¯ÆÆ±€OÿQÿ@ÿ3ÿ,ÿ"ÿÿþíþäþâþãþãþãþíÿÿ" ‡³ËËËÌÌÊ·šKÿsÿ]ÿNÿ'ÿþðþðÿÿ*ÿRÿcÿt �§²¹ÄÈÊÊʵ˜Lÿ6ÿþôþáþáþáþàþÚþÑþØþîÿ ÿ'€@þž�Š 1."  óêèéêáäò‚ÿÿ�ÿƒûôñèÚÕÜêóþþþðËè„?sS-)8=BGILSZ\\[[[XPG(!,49FRVVPC72-$!@IU[[[[ZZ_mxzq��‡ü÷óòó÷úüûýÿÿÿþþ ‚ÿ‡  ÿÿÿûúù÷ö „? (-0///+!  "(#!$ üøõõõúÿ  :�‚÷øùûûûöéÜÞëø ùþ ‚þÿ   ööúúÿòêô„€?ÿüýÿûÿ#&&&&%  øòù ôêåâÚÖÒÒÒÓÜâéñóóóóùýÿ�„ÜÝÞßßߨÑÏÓèý ý ‚ÿ&$!!!!#$$'!ûõççíîòû$D2„? "#&6IRVUUUMHM0"   þîåáÖÍÇÇÇÍÕó ôó(�‚ßáãäääßÓÈÌßô   ƒ"!!')11# ûôåæéææðýûûÿåÜì„? $(534BSekjhhha^c>%  )(äÑÿ¸¶µµµ¾Éðû   2�‚ÏÒÖ×××Ùßçñ"%! ƒ10+)))(ðóúþûñêÛÞæçìóùõûAþù„?ÁÛôýþþýøõôôõùøõóòóóóóüÿøüüÿÿÿÿþýú÷öôñìëìííîñóóôõõöö÷÷÷÷÷ôñðíëëëëííêçâÒæ��ÿ�ƒ ÿýýÿ‚�ÿ„ÿüûú÷øûýýÿÿýüüýþÿÿþûý„;Çßôø÷ûû÷óóòòóðêâßÞÞÞÞàááóñöööùùøûüûöóòøþü÷òñóøþ ƒýë×Èï��ÿÿ  úúöõ÷÷ö÷÷ý ýý‚ÿþòôõõõõôðððïòú  ûò÷„€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€é �…€Àå�…€†@þè�…Aÿhþž�€q�…€:�…€�…€!(�…€%2�…€ æ�…€ï�…€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@ýIJ8I�ï�ïƒùA‘“o@‘�ß� ߃óóóóòæ�ˆððððîß�ˆ �ÿö÷ûö�ý�ýƒÛÛæÞ��ƒ�ÏÐÞÏ�ÿ�ÿƒ�ÂÃÕÂ�ÿ�ÿƒùùúù��ýƒ���ÿƒ€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€é �…€½å�…€›@þè�…€†@þž�…€q�…€:�…€ �…€(�…€2�…€æ�…€ ï�…€ €@@@½@@ À@ Àà @À@@À@à@½À@@½À@à@@@@½@@ä ¨åAÿ_þèAÿ5þž€<q�…":øø;(ø?2øëæøáïø€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€è �…€Ãå�…€£@þè�…€�@þž�…€q�…€:�…€ �…€(�…€2�…€þæ�…€ï�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€æ �…€±å�…Aÿuþè�Aÿ[þž�€=q�…€(:�…€�…€1(�…€22�…€áæ�…€Úï�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€í �…€¶å�…Aÿvþè�Aÿ[þž�€?q�…€:�…€�…€((�…€-2�…€çæ�…€âï�…€ €o@@”@½@Œ@ À“@ Ààgp@À@q@À@àq@½À@q@½À@àn@@@q@½@@6 &,<0 úÞÊÆÅÅÅÅÕæñÅæID@@DFMñîîø 0J<588*Y(&$$$"!  ƒ�JJJJJ<" îÚÚÚ!Ï¿¶¶¶½ÉÙâ�óñôú‚ Í „NR\dg@‚qJ9éÉÁ¿¾¾¾Øò*ªÈÿ5IewBƒ‡–ÑÇÇËÝ%2UL€™�Ж‡���€€€€ydC�� D…………… m?ÿá¾¾¾6—†Bÿ{ÿ{ÿ{‚‘ªº�åèñú‚ ™ „@ÿ{…›¯¶¶§…JÿuÿWÿ<ÿ6ÿ6ÿ7ÿ9ÿ9ÿ9ÿRÿo›žAÿVÿp‰ž´ÎÙÝÝÙÚÔÔÐ휎Oÿtÿ]ÿTÿTÿ�ÿhÿPÿ9ÿ9ÿ9ÿ7ÿ6ÿ6ÿBÿVÿn€@ÿ�‰ù÷þ ‚ ƒ �ïò÷ü‚  „BÿWÿcÿ™¢¢�KÿcÿOÿ*ÿÿÿÿÿÿÿÿ!ÿE€ƒBÿ(ÿIÿi ƒŸ¿ÍÑÒÍÏÉÉó–�PÿoÿNÿ2ÿ&ÿ&ÿpÿ?ÿ ÿÿÿÿÿÿÿÿ)ÿG€@þÅ�‰ ÷óý  ‚�êíõû‚ %  „852)!$186>GHLPPPF:)(BA/(!(.9BFF.=GPPPKHE>74e�‰ûéÔ×çôú‚ûüú‚ÿûúø�‚ÿþýýÿÿÿúñåÖÕàñû„81* "0?S[\\ZZZL;< ÿäéïóõöö ýü #*,/4FFFIJJF@8a��ÿýýö÷ùùùýÿûöôýð üü‚ ‚ÿþ þõáäìðòøü„8 þöóëðôý$,./... /êÄËÔÚßãÖ îÝÕÝçêëóÙûûûûûúÿ ��þúøÓÕ×××ãöþþþÿì%%%%8� ‚øïîÿÿôòôôòñóú„8Ø×ÕÖ×ÑÒÓ×ó ÷ÛãÚéÞÑËÈÉÅ($!!äÈ´º¡ÇÄÄÄÄÄÄ·²Áä��ÿüûÝàäääíøù÷óó ä�F-‚ 'üüúøíìõ„8ÐÐÍÍÏÇÈËÏñùÖßÓ æØÈÀ¾¾·5/)$ à·žª‹»¹¶¶¶µ´°£ž³Þ��þúøÎÒ×××äôöõïðÚ!()))%  �dA‚ÿþü: ÿü÷äßï„8íîñôöôóïìäáäåæèèèëîöõóêàáíøûøø÷þýýüú÷óðìèçèëèæáááßÚÙÛâêà���üüûûûý �þÿ… ÿþþÿ ýîéñùþ„8 üøøø ûõÿ÷ïðòñóôý $ %,, �� 0+ ûûû øûõõõöø÷ø�äîúÿ‚ÿýüðþþ%)#„€ €l@@�@½@�@ À“@ Ààfl@À@l@À@àl@½À@l@½À@àk@@@f@½@@5úôñññòñù¾·¯¯¯±ºËÚÞéíúûýÿ ýàÍÀ´®EKQQQD(ï�� $$ÞÒŹµ¶¶¶¼À‚òçìí÷  JJG=%ûÚÚö(8FJƒþêãããáßíFÿpÿeÿYÿYÿYÿcÿw–«´ÇÍçåàßàý!!!&*.32,òº–Hÿ~ÿkÿ_Ž™£££‰Mõ�� @@ɲŸŠCÿ~ÿ{ÿ{ÿ{‚‡‚ ñÞØÜï B……� nDú¿¿í/Ed~@…ƒ@ÿn”¾ÎÎÎÐÑÑHÿ ÿÿÿÿÿÿ0ÿUÿp�§·¶­“Tÿ{ÿtÿOÿ$ÿÿÿÿÿ ÿ ÿ ÿÿ*ÿPÿnÿQÿ,ÿÿÿ ÿ ÑÏÍÍͽ“@þê��ÿ÷ìíö‚ ƒ ‚  ‚�õëë÷ÿ„AÿRÿ¯ÁÁÁÄÆÆIþÍþÑþÑþÑþÑþàþþÿ+ÿJÿ_�¤£—UÿvÿXÿOÿ þêþÓþÓþÓþÏþËþÌþÐþÛþøÿ*ÿHÿ$þõþÛþÐþÍþÍÅÂÀÀÀ«@ÿw€@þ¡��ÿôæèô‚"‚ ‚ ÿ #!‚�òååôÿ„5;+caaaa`ZI:3$",68GZaaabccb^WH;DPY_cc,p��‚ûõõúÿÿ‚þüýþÿƒûõöûÿþþÿ‚ÿþþÿ�…5?2#onpppnfUF>-#"$-67JY]]]^`_`^WK>M`jnqq,n��þÿýýùûú ÷úþ‚øøûýýýÿùùø÷ùþüùùƒ5   (,4442,  ÿÿüüüýü÷õúþþ #(-0áÝÙÙÙàð��ùóóóùîîý!''%%%öøþ‚ ïåêõÛÛÜàìþëåàÜÛƒ5þ KLNNNIB4-$"&þþþûûùúûýý !8EJLOÐÌÊÊÊÕóÿ��ûóïñüôôû õùý‚ ÿ� ääâåìý ÿñîçåäƒ5  $&"Y\ccc[OA:.!ûûû÷øöõúÿ "=KPSVÏÇÁÁÁÍíþ��úñìíúîîý"'))))&"òöý‚ úöøü××ÖÛçÿóÜÛ××׃5éñ÷úúú÷ø÷ßààààéñóíïðôôôðííæÝÜÜÜÜÛ×ÕØÜäèèçåâàáòñðððïëÛ��ÿþüûþüüƒðèì÷üüýþûùüýüƒ€ýø÷÷÷õôõáâàààÞàæîñõ÷ù÷õññøýƒÿúôîèäààƒ�þûøôõõõõö÷‚þüûýƒ� ûû ƒ€ €@@@½@` À@ Àà @À@@À@à@½À@@½À@à`@@@½@@ èÙíü1"6F�€µµ�µµ„ ¦ˆÉç,Nlû�€Aÿrÿr�Aÿrÿr„ŽòBÿ*ÿŽÿ„AÿqÿpîîCþòþòÿpÿo€@þÄ�‹ ..VV..e�‹ 0�€�„  ëòæÝ�€$$�$$„ .5øÿåÞ�€""�""„ 9D$òýÞÔ�€11�11„ûíóóè€� íëöù õ�€òò�òò„€ €`@#`½@@ À"` Àà `À@`À@à`½À@`½À@à`@@`½@@ ïý5'èÙíü1"6F�¹ûû¹µµ�µµ„ Çß9!¦ˆÉç,Nlû�¡ ¡Aÿrÿr�Aÿrÿr„ï@ÿ'ŽòBÿ*ÿŽÿðð„ ëGþîÿqÿpÿîþòÿpÿoþÄìì†X.V.e„ ññ330�%%�„ åî ëòæÝ�KK$$�$$„ %!ý.5øÿåÞ�=..=""�""„ &û 9D$òýÞÔ�QQ11�11„ ×Ýûûííóóè� ëë �„ ñèõþíëöù õ�â½½âòò�òò„€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ù�…€Óû�…€¶@ÿ�…€ @þÄ�…€.e�…€ÿ0�…€�…€ �…€ �…€òè�…€îõ�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ñ�…€½û�…€�@ÿ�…AÿmþÄ�€.e�…€0�…€�…€0�…€;�…€öè�…€èõ�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ñ�…€Åû�…€�@ÿ�…AÿrþÄ�€=e�…€0�…€ �…€'�…€!�…€èè�…€áõ�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ø�…€Êû�…€Ž@ÿ�…AÿrþÄ�€?e�…€0�…€�…€�…€�…€îè�…€éõ�…€ €@@@T@½@H@ ÀJ@ Àà5B@À@@@À@àA@½À@B@½À@à>@@@@@½@@ üõõõôóñNPRSSSI0äÔËÈÆ#%%$!�� � %1@GGG?/ � †èÜÔÓÓÓÑÑÍF“–˜›››‚C Ñ‹CÿeÿRÿLÿIøÖ�� �/69;;:<@ ÷õõ÷÷÷ü!-3446&%$#$"7�ÿ‚þÿ‚�ÿÿ�ýþýü� ôöüÿýûúúúùöôô�üüýÿÿ„/.,:4.----9ýýÔÑÐÑÑÑ×éú %)*-ûø÷øúýý�‚ÿÿþ��ýõêîôø� ñíêëæáÞÞÞàãêñ�øúý†/ 90****$7ÉÄÄÅÅÅÑð(GVZ[` '�‚þüý�‚ÿÿþùö� çèîòëäáááààãç�ö÷úþþ„/ VKDCCC ;S  º³´µµµÄì2Ykppx1� ‚ýûû� �þüùùôò� ÜÜâçà×ÓÓÓÔ×ÚÜ�ñóöüþ„/ôöúýýýþþÿõõóööööõóòóòòòóéèçèéìðæ�ƒ��ÿÿýýý‚‚‚ÿ…/   õòó÷÷÷÷÷öúïäßÜÛÙùùùùùøöï�ý‚�ÿþýýý‚�  �…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ç�…€¸Ö�…€€@þÜ�…Aÿ[þ��€-v�…€7�…€�…€ '�…€*1�…€öæ�…€îï�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ë�…€®Ö�…AÿpþÜ�AÿKþ��€;v�…€7�…€�…€''�…€01�…€ôæ�…€ïï�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ø�…€£Ö�…€É@þÜ�…€™@þ��…€Mv�…€7�…€ �…€ '�…€21�…€ãæ�…€Ñï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ú�…€ÐÖ�…€’@þÜ�…Aÿuþ��€Av�…€7�…€û�…€'�…€1�…€åæ�…€éï�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ô�…€ÂÖ�…€Ÿ@þÜ�…€…@þ��…€'v�…€7�…€�…€'�…€'1�…€ùæ�…€òï�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Û�…€·Ö�…€¨@þÜ�…€�@þ��…€*v�…€7�…€�…€'�…€1�…€òæ�…€äï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ó�…€ÍÖ�…€—@þÜ�…Aÿ{þ��€/v�…€7�…€�…€ '�…€1�…€ýæ�…€÷ï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ß�…€½Ö�…€Š@þÜ�…Aÿpþ��€.v�…€ 7�…€!�…€!'�…€'1�…€ùæ�…€ñï�…€ €`@`½@@ À@ Àà `À@`À@à`½À@@½À@à@@@`½@@€à�…€¤Ö�…AÿjþÜ�AÿKþ��€=v�…€57�…€$�…€L'�…X1þæ€õï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€é�…€¿Ö�…€ˆ@þÜ�…Aÿoþ��€,v�…€7�…€�…€'�…€1�…€ûæ�…€úï�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ô�…€ÂÖ�…€Ÿ@þÜ�…€…@þ��…€'v�…€7�…€�…€'�…€'1�…€ùæ�…€òï�…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ ÒóQ%&Õ2S�‚^^†Bÿ|ÿÚ +1Bÿk0Žƒ‚A¿¿†@ÿiááDÿpÿpþûþ÷ÿo€@þÐ�‚†@ÿAÙÙDÿJÿJþ¶þ±ÿI€@þ€�‚† = ::ik:z�‚ùù† (?/J�‚ÛÛ† $àùú,øé�‚··† G0ß ] ö;�‚““† Y=Ö uóJ�‚Aÿdÿd† öúðìëçäéß�‚ññ† ãì ûûÚúè�‚,,†€ €#@@2@½@1@ À3@ Àà)#@À@!@À@à)@½À@1@½À@à!@@@!@½@@×ðK/0èE'(à=VÝúøP!�‚``�``ƒAÿyÿy„‰Ö@–CH¢lBÿr7„€ÏÈ@�€�‚A¿¿�A¿¿ƒAþìþì„@ÿ|ØØƒ‚Iÿ ÿ%þÈþÇþnþkþÇþÁÿÿ‚@þC�‚�ƒòò„@ÿZÎÎLÿbÿaþåþëþvþuþþþuþmþâþâÿa€@ýÎ�‚�ƒîî„523ZX~~C¢£~€[[3@³�‚ûû�ûûƒ„,FBZ[zjZeLL"@‡�‚ÖÖ�ÖÖƒ$$„)ëøø2 ""QH01ñA�‚®®�®®ƒZZ„T9î e-YW@§V:@Œae@‹�‚ŠŠ�ŠŠƒ~~„iHé 9pm@ÓkHBµ€„@®�‚AÿVÿV�AÿVÿVƒA¶¶„õùòïîéÞØØÕÏÒßååçÉ�‚ÿÿ�ÿÿƒ„Þéüü×îÛݼÝèÇÙ×þÇ�‚//�//ƒÎ΄€ €@@@½@ ` À ` Àà  @À@@À@à @½À@ @½À@à@@@@½@@€ú!�…€Ô�…Aÿ4þC�AÿýÎ�€R@³�…€C@‡�…€)A�…€R@‹�…€b@®�…€áÉ�…€ÔÇ�…€ €@@@½@ ` À ` Àà  @À@@À@à @½À@ @½À@à@@@@½@@€ù!�…€×�…AÿQþC�Aÿ&ýÎ�€V@³�…€:@‡�…€"A�…€E@‹�…€R@®�…€ÖÉ�…€ÕÇ�…€ €@@@½@ ` À ` Àà  @À@@À@à @½À@ @½À@à@@@@½@@€û!�…€Ä�…Aÿ8þC�AÿýÎ�€V@³�…€A@‡�…€'A�…€`@‹�…€r@®�…€äÉ�…€ÓÇ�…€ €@@@½@ ` À ` Àà  @À@@À@à @½À@ @½À@à@@@@½@@€ë!�…€¿�…Aÿ}þC�Aÿ?ýÎ�€r@³�…€<@‡�…€3A�…€R@‹�…€j@®�…€ÎÉ�…€·Ç�…€ €!@@2@½@+@ À.@ Àà!!@À@!@À@à!@½À@!@½À@à!@@@!@½@@ýéýe+,Û@V@Ùa"�€�II�ý�¸¸„å�å@º24DÿwG’Gÿrùö@µ€�€�A‹‹�þ�Aÿuÿu„÷@ÿ~õðƒ€Eÿÿ ÿ‚ÿ ÿÿ|€ñ@þà�ƒ�ÿ�ùù„õ@ÿ\òìHÿbÿ^þÓþÉÿaþÈþÏÿZÿ^í@þ”�ƒ �ÿ�÷÷„114ac7df64t�€�ýý�ÿ�„ý þè . /é9�€þ�éé��„ÿÿÀèêãÝã üýÄ�€ú�ÍÍ��99„´ðòEëÞëG ¶�€ø�¿¿��KK„" ëîUåÕåX£�€ô�¢¢� �ll„ûüöôëêîéí÷øþã�€ü�õõ�� „ùøú"ã Þùúù�€��þ�áá„€ €@@ @½@@ À` Àà@À@@À@à@½À@@½À@à@@@@½@@ ôîÿ[//êGKQ0�€á�88�á„ɽõ@·DD bAƒ�€?�€Å�qq�Å„ŒŒüù’�Aÿ"ÿŒŒ@þø�ƒ‡@ÿnû÷Dÿuþèþàÿnþ²‚ƒ //-.Y\//j�ƒúú‡ ñ ,4�€�ðð�„ ÏíîãÛØþ�€�ââ�„ !# ½ïõ7çÓÑ�€ �ÐÐ� „ (+¬éïDàÇÄ�€�½½�„ øùÿöñðïçðïã�€�÷÷�„ òñûê ý�€ü��ü„€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€0�…€û?�…€�@þø�…Aÿ|þ²�€j�…€4�…€þ�…€�…€�…€÷ã�…‚ý�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€0�…€þ?�…€º@þø�…€¡@þ²�…€!j�…€4�…€ûþ�…€ô�…€ö�…€ìã�…€ý�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€0�…€ë?�…€¡@þø�…€‰@þ²�…€!j�…€ 4�…‚þ�…€�…€�…€úã�…€ÿý�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ 0�…€ò?�…€Ž@þø�…Aÿmþ²�€,j�…€ 4�…€üþ�…€�…€ �…€ôã�…‚ý�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ø0�…€æ?�…€æ@þø�…€º@þ²�…€=j�…€4�…€ þ�…€�…€�…€äã�…€ãý�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€0�…€?�…€¯@þø�…€–@þ²�…€1j�…€4�…€çþ�…€ü�…€ê�…€æã�…€ûý�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ÿ0�…‚?�…€§@þø�…€‘@þ²�…€j�…€4�…€ þ�…€�…€�…€úã�…€ý�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€0�…€?�…€¼@þø�…€¦@þ²�…€j�…€÷4�…€òþ�…€ñ�…€�…€úã�…€ý�…€ €`@&`½@@ À@ Àà `À@`À@à`½À@`½À@à`@@`½@@þ ¨ðÿ2$@…<-!�€Dºº�ÀFF„í @ÿÑí/@ûB&�€B�ÿ{ÿ{�„A……„ãEÿ+ÿßÿ$ÿÝÿ!þó†ÛEþóÿÖþêÿÔþçþ­† V YYZZm�� = è2�€ù�ûû„ Aëð²çî�€Þ!!�ßß„ søþ öü�€á�ää„!@‘&õý‡òú�€Ó))�(×ׄ ýþìýüëêûëìå���ÿÿ„ öùÑô÷'÷�€ õõ�õ „€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ó!�…€Ö�…€‹@þó�…Aÿjþ­�€(m�…€2�…€�…€�…€�…€öå�…€ó÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ó!�…€Ó�…€ @þó�…€ˆ@þ­�…€%m�…€ 2�…€ �…€�…€�…€ýå�…€û÷�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ò!�…€Í�…Aÿyþó�AÿVþ­�€6m�…€2�…€�…€�…€'�…€öå�…€ó÷�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€÷!�…€Ì�…Aÿ{þó�AÿZþ­�€6m�…€2�…€ �…€�…€#�…€ôå�…€ô÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ú �…€ÚÞ�…€¸@þÝ�…€Ÿ@þ��…€+u�…€÷?�…€ú�…€ô4�…€A�…€ôå�…€Üê�…€ €G@@U@½@J@ ÀV@ Àà>G@À@G@À@àF@½À@G@½À@àG@@@F@½@@"äãóþþþþþýüZZ\]]]S9" îÞÕÒÑ///03:AB2�€ûü �  )9@@@8(� ûû„ ¥¤ÀàíííîîìF²³µ¸¸¸Ÿ_'Bÿoÿiÿh .-/6E[kkB�€ü þ �  %2No~~~oP#�ý„‡‡¶ãñññô÷÷÷÷ôñññá·‘KÿnÿEÿ2ÿ-ÿ-ÿ-ÿ-ÿ-ÿ-ÿ3ÿFÿj‡‡@ÿ1��ÿúìÜàðƒôåäïû‰†Aÿkÿk¡ØëëëïóõõóïíììØ¤NÿvÿGÿþúþôþôþöþöþôþôþüÿÿCÿkÿk€@þû��úãÎÑåø�øéÙÙéú‚ÿýûø�øýˆ"11  -;LTUUUUUTRJ=11S�� ƒ ‚„ÿÿ†"õ÷÷÷÷÷øçææèèèìú$%%( ý�€ ý� õ÷þÿüûûûú÷õõ�ðóú„"ÎÎÍÍÎÎÕæö$()*õööõòìååè�€ýú� ûöôóëãàààãèñû�üý„"01  ¹´´µµµÁáÿ7FJKPùùùñçààÐ�€ þö� çèïòëäáááààãç�ØÕãö…">?' ¥ ¡¡¢¢±ÙüFZ__dþþúïâÖ×Â�€ û� åäêìãØÔÔÔÖÛàå�õðöþþ„"ûûþøùøûûûúúø÷öõ÷÷øííííðððñõ�€ýÿþûùüþ� ÿþþþüýý�þúúþÿý„"ììõüýýýýýü õéãââß �€ÿþþÿýý�   � ÿ…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€þ2�…€ØB�…€¤@ÿ1�…€’@þû�…€S�…‚ý�…€è�…€Ð�…€Â�…€üõ�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ý2�…€ÛB�…€Á@ÿ1�…€·@þû�…€ S�…€÷ý�…€úè�…€Ð�…€øÂ�…€ñõ�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ÿ2�…€ÈB�…€¨@ÿ1�…€Ÿ@þû�…€ S�…€þý�…€ÿè�…€Ð�…€Â�…€ÿõ�…€�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ø2�…€ÉB�…€‰@ÿ1�…Aÿuþû�€S�…€ ý�…€è�…€Ð�…€Â�…€õ�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ï2�…€ÃB�…€í@ÿ1�…€Ð@þû�…€<S�…€ùý�…€ è�…€Ð�…€Â�…€éõ�…€ú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€2�…€ðB�…€¶@ÿ1�…€¬@þû�…€0S�…€õý�…€æè�…€ Ð�…€ìÂ�…€ëõ�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ö2�…€ÝB�…€®@ÿ1�…€§@þû�…€S�…€ý�…€ è�…€Ð�…€Â�…€ÿõ�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ 2�…€âB�…€Ã@ÿ1�…€¼@þû�…€S�…€éý�…€ñè�…€Ð�…€Â�…€ÿõ�…€�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ì �…€¾ä�…€‹@þü�…Aÿmþ¸�€Di�…€/�…€�…€�…€�…€ñé�…€àó�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€á �…€ªÛ�…AÿfþÐ�AÿAþ€�€Bz�…€#9�…€ �…€+(�…€,2�…€úå�…€ïð�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€â �…€­á�…AÿiþÖ�AÿAþˆ�€Ax�…€0�…€�…€�…€"�…€úç�…€óø�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€á �…€¯å�…Aÿrþè�AÿQþž�€*q�…€#:�…€�…€#(�…€+2�…€ æ�…€ï�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ë!�…€Å�…Aÿwþó�AÿSþ­�€;m�…€ 2�…€�…€�…€#�…€úå�…€ó÷�…€ €K@@b@½@S@ ÀU@ Àà;I@À@J@À@àK@½À@U@½À@àG@@@K@½@@$ðíííïòøý !µ@NPÅÀ¿½½½Èâù.@IL�€ôöúýÿ‚ýöðñïô�ÅÅ÷ïâÜÐÀ¹¹¹ÁÑç÷ƒÊÅÅÃÃÈÔàñ KÿEÿ,v�“ÿIÿBÿAÿ=ÿ=ÿ=ÿV•ÍLsA†Œ€Ö�€êëðöü‚üøøöîê� ��òèÏè‡Bÿxÿxÿx‡¦ÓòƒØ××Óɳ�JÿsÿLÿ#ÿÿÿÿÿ ÿ ÿ ÿ ×××Hÿ ÿ ÿÿÿÿÿ"ÿMÿs–¿Ò××@þÜ�‚ÿ„%"ˆ ŠÎÎÎɼ¡KÿsÿPÿþêþÖþÖþÖþÓþÏþÏþÏþÐÍÍÍIþÐþÐþÔþ×þ×þ×þëÿ ÿOÿ}°ÇÍÍ@þ��‚ÿ„-)ˆ #Š$)3BV___cccccccb```ZI:,v��ÿÿÿƒÿýýýþˆûõõúþŠ$ #&'''&'&78öõô5:98883$ ÿø÷÷7�€„þýûû�ÿÿ÷÷  ƒ   ‚ÿÿý38ÜÖÔ066666/ ûèÞÛÙ�€‚ �òò""" ƒ$ !"#""dhÑÍÊaihhhh]<ç×ÓÒ'�€ ‚ÿü÷ø �ññ ƒ"')++)(&!|@�ľºwDƒ‚��� rJ&ÞËÆÆ1�€‚ýþ�êê$%  )---,)&$ƒ$þþüõíìììèêéõ÷÷óööõõôôôóôõ÷õôôôæ��ƒþúú‚ ýÿüüüÿ‚ÿýýýƒ$óôöøúýýõõõõö÷×רÕÔÖÖÖÛèôÿ ï�€ü ‚ÿúõöøü�ÿÿö÷ûûøõóóóóóõöƒ€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ç�…€¸Ö�…€€@þÜ�…Aÿ[þ��€-v�…€7�…€�…€ '�…€*1�…€öæ�…€îï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ö�…€ÏÖ�…€—@þÜ�…Aÿ{þ��€1v�…€7�…€�…€'�…€1�…€ùæ�…€ôï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ö�…€ÏÖ�…€—@þÜ�…Aÿ{þ��€1v�…€7�…€�…€'�…€1�…€ùæ�…€ôï�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ëö�†€®ÏÖ�†€@ÿp—@þÜ�†€AÿKÿ{€@þ��†€;1v�†€7�†€�†€''�†€01�†€ôùæ�†€ïôï�†€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ù�…€ÎÖ�…€—@þÜ�…Aÿyþ��€/v�…€7�…€�…€ '�…€1�…€õæ�…€ôï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ù�…€ÎÖ�…€—@þÜ�…Aÿyþ��€/v�…€7�…€�…€ '�…€1�…€õæ�…€ôï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ù�…€ÎÖ�…€—@þÜ�…Aÿyþ��€/v�…€7�…€�…€ '�…€1�…€õæ�…€ôï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ç�…€µÖ�…€•@þÜ�…Aÿyþ��€*v�…€7�…€�…€'�…€ 1�…€ýæ�…€öï�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€æ�…€»Ö�…€�@þÜ�…€€@þ��…€1v�…€7�…€�…€'�…€1�…€ëæ�…€ïï�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€æ�…€»Ö�…€�@þÜ�…€€@þ��…€1v�…€7�…€�…€'�…€1�…€ëæ�…€ïï�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ëæ�†€®»Ö�†€@ÿp�@þÜ�†€@ÿK€@þ��†€;1v�†€7�†€�†€''�†€01�†€ôëæ�†€ïïï�†€ €@@@½@ @ À @ Àà `À@@À@à@½À@@½À@à@@@@½@@€æ�…€»Ö�…€�@þÜ�…€€@þ��…€1v�…7ü€�…€'�…€1�…€ëæ�…€ïï�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€æ�…€»Ö�…€�@þÜ�…€€@þ��…€1v�…€7�…€�…€'�…€1�…€ëæ�…€ïï�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€æ�…€»Ö�…€�@þÜ�…€€@þ��…€1v�…€7�…€�…€'�…€1�…€ëæ�…€ïï�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€À�…€�Ö�…€²@þÜ�…€¨@þ��…€,v�…€E7�…€8�…€K'�…€=1�…€ôæ�…€Þï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€è�…€¨Ö�…€„@þÜ�…Aÿhþ��€1v�…€7�…€�…€.'�…€:1�…€ùæ�…€íï�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ë�…€®Ö�…AÿpþÜ�AÿKþ��€;v�…€7�…€�…€''�…€01�…€ôæ�…€ïï�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ø�…€£Ö�…€É@þÜ�…€™@þ��…€Mv�…€7�…€ �…€ '�…€21�…€ãæ�…€Ñï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ú�…€ÐÖ�…€’@þÜ�…Aÿuþ��€Av�…€7�…€û�…€'�…€1�…€åæ�…€éï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ó�…€ÍÖ�…€—@þÜ�…Aÿ{þ��€/v�…€7�…€�…€ '�…€1�…€ýæ�…€÷ï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ß�…€½Ö�…€Š@þÜ�…Aÿpþ��€.v�…€ 7�…€!�…€!'�…€'1�…€ùæ�…€ñï�…€ €`@`½@@ À@ Àà `À@`À@à`½À@@½À@à@@@`½@@€Ü�…€†Ö�…Aÿ þÜ�AþÎþ��€dv�…€C7�…€8�…€f'�…}1ëæ€Ôï�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€é�…€¿Ö�…€ˆ@þÜ�…Aÿoþ��€,v�…€7�…€�…€'�…€1�…€ûæ�…€úï�…€ € @@ @½@@ À@ Àà  @À@ @À@à @½À@ @½À@à @@@ @½@@€éí��ƒ€¿½Ö��ƒ€ˆ@ÿt€@þÜ��⃀AÿoÿU€@þ���⃀,*v��öƒ€ 7��ƒ€��ûƒ€#'��ƒ€*1��ûƒ€û÷æ��ƒ€úóï��ƒ€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ô�…€ÂÖ�…€Ÿ@þÜ�…€…@þ��…€'v�…€7�…€�…€'�…€'1�…€ùæ�…€òï�…€ €k@@‡@½@t@ Àw@ ÀàQk@À@k@À@àk@½À@k@½À@àd@@@k@½@@5ñëéêêêèçåçìôÿÿ úôõý (4>CEJJJ=òØÇº°ª«ãò û÷��  öñóú‚#ÿþü··¶¶¶¶¸¾Îé (4CIIID8 øÚÞÞ%%ü„ëØÕÕÕÓÏÌËÐ×ãéì÷öðòü;ZtEˆ‘’———{;ݦƒCÿkÿXÿMÿO Èá%  í��  õîñù‚ÿýûFÿÿ~ÿ|ÿ{ÿ{ÿ{ÿ~‰¦× $2QsB��� yb7ò¿ÉÉAAÄßü„@ÿm “Â×××ÛÞÝÕÇ­‡Jÿjÿ\ÿ<ÿÿÿÿ!ÿ;ÿSÿZÿy ¥ÃÕÝÞÙÖÖÖ•PÿmÿRÿ.ÿÿÿ ÿ ÿ ÿXÿXÿ ÿ ÿ ÿÿÿ-ÿQ€@þà�� ýíÙÛïþþþÿ‹ þûûüíÝÜëû•AÿGÿx ²ÍÍÍÑÕÔ˹˜KÿgÿCÿ2ÿ þäþØþØþçÿÿ%ÿ.ÿU �³ÊÔÕÏËË˲QÿyÿGÿ%þ÷þÞþÑþÍþÍþÍÿ,ÿ,þÌþÌþÌþÏþÛþöÿ$€@þ”�� üçÏÑêþýýÿ‹ þúùûèÔÒåù•5;,!1=COZ^^YOFC7$+;GT]abbbDDbbba]UFt�� ‹ •58/ )6BHT[YZ]SD?3!  &9EV`effhMLYUVVTMAk�� ü ‚# ûúúúúúúûý ñøþ„5 ûùü þóìæâßÜÖÖÖÝð '0565ûüüüþ�� øõûûû  ‚#'&%%%%$" ëÝßàÝÚÚÚÜâíÿ êêíïóùþ„5  ðâÖÐÍËÊÊÊÖð 3AIMNP-*�� ûùþÿÿ‚# ôòöñëèèèèêîöüõõ „5ý !$%(*.*!  íÛËÁ¾º···Æê !@PZ_ae61ÿþý�� ûôðóú  ‚#-+*)))(&éæìæßÛÛÛÜàçòû ïï ÿûý„5îóúþþþûûûøóîéèæãáààáåèêìòõ÷ø÷÷öööôîëèæäããäâççÞßÜÛÝâéÛ��ÿýúûý‰!üùùúûüüüýþÿÿúúþøùý„5ýø÷÷÷÷õöôôôöõôôöùüùøùüüÿ üôìåâààßíîÿýýýþþþ÷���ÿýýþþ‚#ÿÿÿóóôõõõõõ÷ý ýýùúüþÿ„€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€í÷�…€Ðí�…€™@þà�…Aÿuþ”�€1t�…€k�…€ �…€�…€�…€éÛ�…€í÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ü÷�…€çí�…€°@þà�…€•@þ”�…€5t�…€úk�…€ù�…€ê�…€ÿ�…€ìÛ�…€ó÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€í÷�…€Íí�…€®@þà�…€“@þ”�…€.t�…€k�…€�…€þ�…€�…€ðÛ�…€õ÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ì÷�…€Óí�…€¶@þà�…€š@þ”�…€5t�…€k�…€�…€÷�…€ �…€ÞÛ�…€î÷�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€à÷�…€·í�…Aÿtþà�AÿQþ”�€)t�…€-k�…€�…€(�…€/�…€ëÛ�…€ð÷�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ì÷�…€Çí�…€‡@þà�…Aÿaþ”�€?t�…€k�…€ �…€ �…€$�…€éÛ�…€í÷�…€ €]@@v@½@�@ À�@ Àà _@À@_@À@à_@½À@_@½À@à\@@@^@½@@/ëê½»»¹¹¹¾ÌÛ>GNêÚø¶µµµµ½Ï7ý�„ÿÿÿ ‚ÿøôïâØØØ""" ôìèÝ×Ͷ¶¶ƒ¾½  Fÿ[ÿYÿYÿVÿVÿVÿ`€¡tAƒ�»˜GÿjÿRÿOÿLÿKÿKÿKÿb‹gì�ƒ ýøõöûþþÿÿüþÿ…þôîåÍ»»»;;;éÛÒ¾µ¡Bÿ{ÿ{ÿ{ƒÔÓ\ÿDÿ3ÿÿÿÿÿÿÿÿÿ(ÿ7ÿ7ÿ#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ4ÿKÓÓÓJÿLÿ5ÿÿÿÿÿÿÿÿ'ÿEÓ@þä�ƒ ÿ�  ‚  ‰ †ÉÇ\ÿþýþâþÖþÖþÖþÔþÔþÕþÜþïÿÿþéþÙþÙþÙþÚþØþÓþÓþ×þØþÙþÙþÙþâþþÿÇÇÇJÿþÿþßþÔþÔþÔþØþØþØþîÿÇ@þš�ƒ þþ�  ‚ ‰ † ``s„/ 08CFFFHGFFC<EQZ]`___[QØ�ƒûðæèéìóüÿ�ÿúùúú�ÿÿåååèó ƒ/)+ôý    pllnllh[KÇÆ¾LVeptzyyytgÏ%�ƒþû÷ùöûÿ� � ØØØÜí ")))ƒ€.Úêööööõôöõðììðõõõöö÷ýþþýýýúôìùøøêäíûýþÿÿÿ÷íúì�ƒýõïéáá÷ÿ‚þûüþÿ�ÿƒ ÿöëèíõƒ/òòòñõúúúúûûöïììöýýýÿÿüÛÛÛÜÜÜÛØÖÔ×ÛÝÚÚØØØ×Ôò�ƒÿÿþýýý‚��þýüüüýÿÿÿ ýú÷õôõõõƒ€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€÷ý�…€Âì�…€�@þä�…Aÿoþš�€'s�…€c�…€ �…€"�…€'%�…€éì�…€éò�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€÷ý�…€¿ì�…€¤@þä�…€�@þš�…€$s�…€c�…€�…€�…€%�…€ðì�…€ñò�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ïý�…€´ì�…Aÿsþä�AÿQþš�€8s�…€0c�…€�…€,�…€.%�…€àì�…€éò�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ðý�…€šì�…€Á@þä�…€¼@þš�…€&s�…€9c�…€+�…€M�…€:%�…€çì�…€Ùò�…€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€öý�…€¹ì�…Aÿtþä�AÿQþš�€:s�…€%c�…€�…€#�…€)%�…€æì�…€ñò�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ý�…€×ì�…€¦@þä�…€�@þš�…€)s�…€úc�…€û�…€�…€%�…€ðì�…€òò�…€ €j@@‘@½@|@ À~@ Àà_j@À@i@À@ài@½À@i@½À@àj@@@h@½@@5æìñòòòñïîðïäØÍÆÉÍÐÎ##ÏÎËÉÆÒõéàÚÒÌÊÉÉÉãý&4?CFIII?*�� þÿ‚ ƒññöýCC?5,%øæÝàͼ¼¼ÂÐë &1?Cƒ µÇØÝÝÝÚÙØÚÕÀ©‘Dÿzÿxÿÿ…ÿ33€Cÿ}ÿvÿvÿš$Õ´¦œŽƒCÿ~ÿ{ÿ{ÿ{³ïMnE„Œ�”””~M ��þüüþÿÿÿƒææñýA…… xbRG* îØÒ¦Bÿ{ÿ{ÿ{‡¤Ø0>[z@…ƒ ¦½ØäääæèçãÕ»¦�Kÿrÿdÿ_ÿ_ÿ]ÿ\ÿ\ÿ]ÿ]ÿ]ÿ`ÿmŠ¢ŽJÿ{ÿpÿiÿdÿ_ÿ]ÿ^ÿ_ÿ_ÿ_ÿ £¹Õãèèæããã×»@ÿC��ýòèê÷†ÿÿƒøøúþ‚  †ôêéóý„ ެÎÝÝÝßâáÛÊ©ŽZÿnÿLÿ;ÿ5ÿ5ÿ2ÿ2ÿ1ÿ3ÿ3ÿ3ÿ7ÿFÿkÿ‰ÿpÿXÿJÿAÿ;ÿ5ÿ3ÿ4ÿ5ÿ5ÿ5ÿ] ЦÊÜââßÛÛÛÍ©@ÿ��üïâäô†ÿÿƒòòöý‚ †ñäãïü„5$ $/:?AAABBAAA@;0&.6:=?BBAAAA4% L�� †þþƒ‚ ÿþþÿÿÿû÷ý† „5   ).(&&'%$$(,#"%)+++++ ÿüüûúúúþ��ýùõ÷øûûýÿ‚ùùƒúú÷÷ùúýüýüúúƒ5  26*%$#ö÷#!"'0'ú #(*,,,ÿðèâàÞÝÝÝáíü��ùëáçïùûÿƒ÷ú ƒßßÜÛßãø"###! ôëêæà߃5&=H>768ôó657=>/ú%*18;===! ùåÙÒÏÍËËËÔèù�� ÿþüýýþüþöò…ÝÝÚÚÝßð###"öïïçß݃5$ 1O[OHGIðñHEGOR>ü *28AIMPPP-üáÒÉÅÂÁÁÁËåú�� þùõøûýúýôð… ÎÎÌËÎÐè&(2220'ïããÚÑ΃€ �(ûùûûúûóóüüüüüüùøùúúùøùúúúúûüýþÿýýüýýýüùð��ÿÿþÿ‚üüƒÿúúûþþýýûûÿýþýüùúƒ5õøùùùù÷÷øûû÷ñæâçêêêëëêèçìý÷ôñïëéèçççòý  �‚ ÿÿÿÿ…þþþþþ÷õùõòòòòõú ƒ€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€é�…€â �…€Ò@ÿC�…€Â@ÿ�…€&L�…€�…€ ü�…€ùù�…€ùú�…€ð�…€ÿ�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€þ�…€è �…€Ë@ÿC�…€»@ÿ�…€L�…€÷�…€øü�…€ôù�…€ôú�…€úð�…€ÿ�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€þ�…€è �…€Ë@ÿC�…€»@ÿ�…€L�…€÷�…€øü�…€ôù�…€ôú�…€úð�…€ÿ�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ïþ�†€Ëè �†€¦Ë@ÿC�†€Ž»@ÿ�†€&L�†€ ÷�†€øü�†€ ôù�†€ôú�†€ûúð�†€øÿ�†€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ü�…€© �…€Ë@ÿC�…€»@ÿ�…€L�…€�…€ü�…€3ù�…€3ú�…€ð�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€þ�…€è �…€Ë@ÿC�…€»@ÿ�…€L�…€÷�…€øü�…€ôù�…€ôú�…€úð�…€ÿ�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€÷�…€Û �…€Ú@ÿC�…€Ê@ÿ�…€L�…€ÿ�…€ÿü�…€ù�…€ ú�…€ð�…‚�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ï�…€Ð �…€à@ÿC�…€Ð@ÿ�…€*L�…€û�…€ü�…€ù�…€ú�…€ÿð�…‚�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€é�…€Ë �…€Ë@ÿC�…€»@ÿ�…€L�…€�…€ü�…€ù�…€ ú�…€ð�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€é�…€Ë �…€Ë@ÿC�…€»@ÿ�…€L�…€�…€ü�…€ù�…€ ú�…€ð�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ïé�†€ËË �†€¦Ë@ÿC�†€Ž»@ÿ�†€&L�†€ �†€ü�†€ ù�†€ ú�†€ûð�†€ø�†€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€é�…€» �…€Ë@ÿC�…€»@ÿ�…€L�…€�…€ü�…€ù�…€ú�…€ð�…€ñ�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€é�…€Ë �…€Ë@ÿC�…€»@ÿ�…€L�…€�…€ü�…€ù�…€ ú�…€ð�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ò�…€× �…€¿@ÿC�…€²@ÿ�…€ýL�…€�…€ü�…€ ù�…€ú�…€ð�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ü�…€î �…€ü@ÿC�…€@ÿ�…€ML�…€�…€ ü�…€Þù�…€åú�…€àð�…€¹�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€í�…€Á �…€¼@ÿC�…€ª@ÿ�…€L�…€�…€ ü�…€ù�…€ú�…€ÿð�…€ø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ï�…€Ë �…€¦@ÿC�…€Ž@ÿ�…€&L�…€ �…€ü�…€ ù�…€ú�…€ûð�…€ø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ë�…€š �…€ß@ÿC�…€Æ@ÿ�…€L�…€�…€+ü�…€,ù�…€6ú�…€ð�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ÿ�…€ê �…€Æ@ÿC�…€¸@ÿ�…€L�…€�…€ñü�…‚ù�…€îú�…€þð�…€ �…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€÷�…€ä �…€É@ÿC�…€º@ÿ�…€L�…€þ�…€ü�…€õù�…€÷ú�…€ð�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ä�…€× �…€¾@ÿC�…€³@ÿ�…€L�…€�…€ü�…€ù�…€ ú�…€þð�…€ý�…€ €`@`½@@ À@ Àà `À@@À@à`½À@@½À@à@@@`½@@€Þ�…€® �…Aÿ[ÿC�Aÿ0ÿþ€CL�…€7�…2ü€Eù�…Xúõð€â�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€î�…€Ú �…€Ã@ÿC�…€²@ÿ�…€L�…€�…€ü�…€øù�…€÷ú�…€ÿð�…€�…€ € @@ @½@ @ À @ Àà @À@ @À@à@½À@ @½À@à @@@@½@@€îí��ƒ€Úè ��(ƒ€ÃÌ@ÿC��⃀²»@ÿ��⃀(L�� ƒ€�†€ ü��öƒ€øûù�†€÷ùú��öƒ€ÿð��öƒ€þ�†€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ó�…€Ø �…€Ô@ÿC�…€È@ÿ�…€L�…€�…€ü�…€ ù�…€ú�…€ð�…€�…€ €Í@@é@½@õ@ Àü@ Àà°Ê@À@Ì@À@àÍ@½À@Í@½À@àÆ@@@Ì@½@@?Ôåòóóóòòó÷üÿõà̽»···¾ËÔÖÓ×áîóîçóúðÖÛÞßßßÞßÚþùñíîáÝÕÏÎÞ&ÜÑËÈÍôÛž¸5CGIJJJ4”’�ŽŒŒŒ–¬¾×öË�� ü úîÚÔÊÀ¼¼¼½¾Àýý‚  ‚üùüúøúââò %:CCCA@>‚$íØéúAAB8þãããêý$5A ðàÛÍÁ½½½ÂÑóƒÙÙÞâââáàßÝÛÝŪ–†€Cÿ}ÿwÿwÿw4„�¯²ÀǾÕÚáèÆÇÙãÚ»ÆÑÖÖÖÕÖÑ.4;;;1ýïëðÚÙÑÆÀÙÔüÅÕ.Ü®ˆAÿ}ÿ{2QsE…ŠŒ‹‹‹a9Hÿ9ÿ8ÿ7ÿ5ÿ2ÿ2ÿ2ÿFÿr”Ãý1¬��  ÷ãź¥‘ŠŠŠ��‘úü‚ ! ‚ÿýýüûúààù /Ggvvvtqo‚$âÀÜ÷iifPéàààì *39=Wi øáÙ¾£™™™¤¿ïƒ —³ÑÛÛÛÛÜÜÖÆ¶¦…GÿeÿUÿUÿWÿWÿWÿWÿc €˜Ÿ³ÈÎÎÄ¥’cÿpÿVÿTÿNÿ/ÿ þôþÚþÑþÑþÑþÏþÍþÍÿUÿTÿQÿQÿQÿFÿ)ÿÿþñþÝþÕþÕþÜþðÿÿÿ2ÿMÿQÿWÿlˆ¢�Dÿrÿ_ÿUÿUÿU ²ÃÖÝÝÜÛÛÛÂNÿUþÍþÌþÍþÑþÒþÒþÒþÝþ÷ÿ ÿ%ÿBÿQÿU€@þ¯��ÿùòóõøûþ† „ÿ…‚ ‚ôæãïû†‚÷öùý„†ûôóû‚ÿ  ‰@ÿ| ŸÄÑÑÑÑÒÒË·£�Jÿeÿ=ÿ(ÿ(ÿ+ÿ+ÿ+ÿ+ÿ:ÿ^ÿ}†Ÿ¹ÁÁ´�lÿuÿJÿ*ÿ'ÿþøþÌþ®þ�þ‚þ‚þ‚þþ|þ|ÿ(ÿ&ÿ#ÿ#ÿ#ÿþñþÐþÅþªþ‘þ‡þ‡þ�þ¨þÅþÓþýÿÿ#ÿ*ÿEÿhÿ‰ÿqÿLÿ5ÿ(ÿ(ÿ( �³ÌÕÔÓÑÑѱNÿ(þ|þ|þ~þ‚þƒþƒþƒþ“þ´þÍþìÿÿ#ÿ(€@þV��ÿ÷îïòöúþ†„ÿ…‚#"‚ñßÛêú†‚õôøý„†ùñðú‚‰?+  %1?EEEDDD?4*'%,9CEGUblvzzzz||EFGGGLWaemuyyvneaR%IGD<1&.9AEEE E{{yyzzzujbXMGE@ˆ�‚†þûûþƒ‚‚ÿþÿ‚þùõöû‚ ‹ƒÿ„‚ø÷ù÷ûÿ‰?9$1CGHHHHHB6.17,12)9@?>éãÚרÙÛÛÛêû\]\YYYYR?0 þü(��   ‚‚ûôïïùýýýýýôéäääãâàúûþ‚$ññíìïúýýý÷ñðóüú÷ñ ÿý ƒ?6-" !'-->JKOQOQRRJ<0*"%2)%))8-$%#!ôòñññôý &+3>A;þ)=KKLëÝÐËËËÏÏÏãøsrqnooodM<& üù2��     ()))),,‚ ‚üø÷õúüüùööëÝ×××ÖÔÒ÷ùý‚  îîîðñõüüüõëäèñöóî ûú�ƒ?þÿû÷÷÷÷õóñóôáåö÷øùøùùøöôñôöôóþüôííëëìïëèèèèèæåõôóóóðîíìëéåæèìòôõ&÷ôûñòôöøùøòññòñïïïïðóììîïîîîïñòóôôôà�‚ ÿþÿþþ�ÿÿƒüÿ‚ý÷õ÷ùúúúúúû†"ùùúÿýúùøøùýýý  „?ñóõööööõ÷óðïéæääåååååçìðñóòðóòðñìðòöøõõöööööõõÿýû÷õöôõööôö&ðïììðüóìèçç  ÛÛÝÜÛÛÛßæìôüÿï��ÿýýûúùùüþþþþþþüüüûøõõõõôõôþþ‚þþƒ ‚$þþýÿ ýýûÿþüûûûüüýƒ€ €@@@½@ @ À ` Àà @À@@À@à@½À@@½À@à@@@@½@@€ÅË�…€¸¬�…€�@þ¯�…AÿiþV�€I@ˆ�…€E|�…€'3�…€ (�…€2�…€ à�…€ðï�…€ €j@@�@½@z@ À~@ Àà^j@À@j@À@àj@½À@k@½À@ài@@@j@½@@57FKEA>AîíBJLNL>,&! !##!"+íÞÓÏËÉÉÉÒçù !-5:@EGHHH. ��ûøúúƒ ‚"úñéëòøýCC=/ôàØÌÀ¼¼¼ÂÐÚáðý 1CƒVnD‚†‚{€ÎÌC‰�‘‡iI8(###&''%*>ë¶”Eÿ~ÿvÿrÿnÿnÿn „µÞ/O]guC„†††Pô��úòïïƒ ÿÿÿýûúúüþ�A……y\(ïÐÁ¤†Bÿ{ÿ{ÿ{ ˆ¡²¾×ñ #.Z@…ƒ’¬ÆÓØØÚÜÚÚááÛÇ©’Vÿ{ÿaÿUÿUÿUÿSÿQÿQÿUÿbÿ|ÿ‘ÿ|ÿbÿUÿQÿQÿSÿUÿUÿUÿaÿ} –¬¿ÉÐÔ×ÚÚÚÚÚ¸@ÿ.��ûûƒÿ‚ Š  ‚ ýûû÷óðîéäõ„@ÿu –·ÈÎÎÐÒÐÐØØÐ¸’XÿuÿXÿ7ÿ(ÿ(ÿ(ÿ&ÿ#ÿ#ÿ(ÿ9ÿYÿtÿYÿ9ÿ)ÿ#ÿ#ÿ&ÿ(ÿ(ÿ(ÿ7ÿZÿz •­»ÃÈÌÐÐÐÐÐ¥@þ÷��ú÷ýýƒþ‚ Š‚ üùùôðìéãÝò„5,"  #,5AEEEFGGE@5-5?DFFEDDD@5+"U��ÿÿƒùùýƒþúöøüŠûø÷ûþ‚  „5ùõûþýüúôõóõ!#$'%%%"þýüø÷õõõ%��üüƒòòúÿ‚" ÿúúúúü  þüúƒ5äÕÓÜÞàá Þ××ÔÒßóö÷÷÷÷ôóóõõîý!%(((!ùðìçäàÛÙ×××é��ùùƒððøÿ‚" ÿÿßßáæô "####!üñðé߃5ãÓËÎÓÕÔÒËÊÄÆÙò÷úùùùöõõø÷î#/69<===4 ÿòëåâÜÔÏËËËä��þþƒ îîóü‚ÝÝÞãò "###&)*/(õõê݃5ÙºÁÅÇÆļ»´´Íìóõôôôðïîòòé*8AEIJJJ?&üíãÜØÐÆÀ»»»Û�� ƒééîú �ÎÎÐÙí!)02227<=D4÷æêÞ΃5óö÷ööøöûøøø÷ôòñññññóòòòññôõöøùøùùùùùùùúùùùùúøø÷÷÷öí��ÿÿƒƒÿÿÿ�úúúûýýýýýûûúƒ5 ÷øþùóïìêêèèèëóú  ù��ýþƒÿÿÿ�ÿþþÿÿ‚ ýøùöôòòòñðïíñøþ ƒ€ €O@@X@½@B@ ÀN@ ÀàBO@À@O@À@àO@½À@O@½À@àK@@@N@½@@' úõõõõöòëìö  !1=FJMNNNH;0+', ��  ÿõù‚þüÃÂÁÁÁÇÕíÿ %/;???=<„ñãßßßÞÜ×ÌÍàø$ 9_zF‹’–šššŠ hMD:<&�� ëåñ‚ýù��ŠŠŠ–±Þÿ1=Tmvvvrp„&ªÁÚãããæèçàÔ½¬¡‹‚‚‹¡©½ÖäèèæãããØ¿¨�†€€‡ž@ÿd��üðæéõ�öìêóý‚ÿ‡ ”±ÐÛÛÛßâáØÈ¬–ˆCÿlÿaÿaÿl‡’¬ËÜââßÛÛÛή‘„Cÿfÿ^ÿ^ÿg…@ÿ;��úìßãò�óçäïü‚ÿ‡'# "'0330'# #'2440'?�� �ÿ‹ÿÿ ‚‡'  ýøõôôöööùÿ  ��ÿ ÿóû‚  � ÿÿüùúúúø÷ÿþ„'ôü   úíçîìòöñèàÙ×ÖÕÕÕØáêëçàèêñí��ýúüøíý‚"! ùïìèáààààßýþ„'öûëßåàêòèÙÎÉÆÅÅÅÅÍÜééÝ×Ýäñê��ÿ ‚úõôëääääãàûý„'ó&(úæ×ÞÙåïáÐü¹¹···ÀÓãâÔÍÕÞíê��ÿ‚ --)))+'öìëà××××ÔÑøû„'ìïñòòòðñññîíìêêèçæêêêêèéëëëëëëéèèæçèëìÖ��ÿýüüþ…‚ ÿûûüýþþþþþ„'þùùùùøùöôò÷þ    �‚þúûýÿûúý‚ÿþóôõõõôöû „€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€é�…€×�…€ã@ÿd�…€Õ@ÿ;�…€?�…€ �…€í�…€ùê�…€ûê�…€Ö�…€ �…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ï�…€Å�…€ñ@ÿd�…€ã@ÿ;�…€"?�…€í �…€ÿí�…€ê�…€ê�…€óÖ�…€ �…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€è�…€·�…€¦@ÿd�…€”@ÿ;�…€?�…€ �…€ í�…€%ê�…€ê�…€öÖ�…€õ�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€é�…€À�…€Ü@ÿd�…€Î@ÿ;�…€ ?�…€õ �…€í�…€ê�…€ ê�…€öÖ�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ë�…€¾�…€´@ÿd�…€�@ÿ;�…€?�…€ �…€í�…€ê�…€ê�…€îÖ�…€�…€ €j@@�@½@{@ À~@ Àà_j@À@i@À@àk@½À@k@½À@àe@@@j@½@@5éîóõõõóñðóñçÛÐÉÌÐÓÐ%%ÑÐÍÌÉÕ öêâÞÖÑÍËËËæ(7BFILLLB- �� þÿ‚ ƒññöýCC@5,&îáàͼ¼¼ÂÐë &1?Cƒ µÇØÝÝÝÚÙØÚÕÀ©‘Bÿzÿxÿ…€33€Cÿ}ÿvÿvÿš$Ô³¦ž�†Cÿÿ{ÿ{ÿ{³ïMnE„Œ�”””~Mô��þüüþÿÿÿƒææñýA…… ybRH/öÜÒ¦Bÿ{ÿ{ÿ{‡¤Ø0>[z@…ƒ §¾ÙåååçéèäÖ¼§”Kÿwÿdÿ_ÿ_ÿ]ÿ]ÿ]ÿ^ÿ^ÿ^ÿaÿn‹£�Iÿ{ÿpÿjÿgÿbÿaÿ`ÿ`ÿ`ÿ` €¤ºÖäééçää䨼@ÿ.��ýòèê÷†ƒøøúþ‚   †ôêéóý„ �­ÏÞÞÞáããÝ̪�ZÿwÿSÿ;ÿ5ÿ5ÿ2ÿ2ÿ2ÿ4ÿ4ÿ4ÿ8ÿHÿmÿŠÿqÿXÿKÿCÿ?ÿ9ÿ7ÿ6ÿ6ÿ6ÿ6ÿ^ Œ¨ËÝããàÝÝÝΪ@þ÷��üïâäô† ƒòòöý‚  †ñäãïü„5$ $,8?A@@@AAAA@;/%-6;=>?@@@@@3% U�� †ÿþýýƒ‚ ÿþþþþþüù÷ý† „5  %$""$! #' #$%&&& ÿú÷÷öõõõù%��ýùõ÷øûûýÿ‚üúûûƒúúö÷ùù  ýüýüúúƒ5  &,'"!"óô #+"ö "&)))ûíäÞÜÚØØØÝé��ùëáçïùûÿƒûúÿÿƒßßÛÚßâò###! ôëêæà߃5 #4A<546ðð324:;,÷"%,27:::öâÖÏÌÊÈÈÈÑå��ÿþüýýþüþùó÷÷ƒÝÝÙÚÝÞëü ###"öïïçß݃5"/FTOHGJïðGDFNP<û )04=EKOOO, úàÑÈÄÁ¿¿¿Êä��þùõøûýúýøðõõƒ ÎÎËÊÎÏâû!(2220'ïããÚÑ΃ýÿ„.ÿýýûøøø÷øòòùùùøøú÷÷÷÷øøùùùùùùùùûýüûûúúúúú÷í��ÿÿþÿ‚…ÿúúûþþþþýþýþýüùúƒ5öøúúúúùùùúûøòêåèêììëìëéçîÿ÷óñðîìêéééóý  ù�‚ÿÿÿÿƒþþþþú÷ùõòòòòõú ƒ€ €‘@@®@½@§@ À²@ Ààƒ‘@À@“@À@à‘@½À@�@½À@à�@@@�@½@@?÷ôôôòïííêâÜÏÇÊÊËÒÜÓÜÇÅÂÂÂ+".& !  ëÜÔÎÌËÈÈÈÑæú+8@DFIII@)��øôùÿÿÿèÚÛ„) âåîõû??;2#úìåÛËÁÁÁÇÖï $.:?ƒ ôâÛÛÛÙÖÓÓÏÀ±”Cÿnÿqÿrÿv„”‰šDÿtÿrÿqÿtÿt1. ?/D5((((%!#$!î·—…EÿzÿuÿuÿoÿoÿoƒµäTrE�ˆ‹���{F÷��øôú‚ ѹ¾ ‚*ÉÎà þèòývvn]BûãÕ¿�ŠŠŠ—²á/=Slvƒ œ¸ÖáááãääáÓµœˆEÿjÿ`ÿ^ÿeÿoÿ{ ™™‚ˆ˜¡¡Ÿ—ˆ‚Mÿbÿbÿzÿkÿ^ÿ^ÿ^ÿYÿTÿTÿUÿWÿ^ÿn‡œ†Iÿkÿ\ÿVÿTÿTÿWÿWÿWÿWÿc €œ·ÕáääâáááÕ·@ÿ4��ÿöëí÷‰  „� 1<$ ‚ †ùóòùÿ„ ‚¥ËÙÙÙÛÝÝÙÇ¡‚KÿhÿCÿ6ÿ4ÿ<ÿIÿXÿ~ÿ~ÿaÿhÿ}ˆˆ…^ÿ{ÿhÿaÿ8ÿ8ÿWÿEÿ4ÿ4ÿ4ÿ.ÿ'ÿ'ÿ(ÿ+ÿ4ÿGÿhÿ‚ÿgÿDÿ2ÿ*ÿ'ÿ'ÿ*ÿ+ÿ+ÿ+ÿ:ÿ_ ‚¤ÊÚÝÝÚÙÙÙʤ@þþ��þóåèô‰  „ � >L9‚  †øðî÷ÿ„?( (0<@A=45))3.)&&'$+2@@55AAACEFFDA;0(1[z@…ƒCÿwÿwÿEÿE §¾ÙåååçéèäÖ¼§”Kÿwÿdÿ_ÿ_ÿ]ÿ]ÿ]ÿ^ÿ^ÿ^ÿaÿn‹£�Iÿ{ÿpÿjÿgÿbÿaÿ`ÿ`ÿ`ÿ` €¤ºÖäééçää䨼@ÿ.�…ýòèê÷†ƒøøúþ‚   †ôêéóý„CÿSÿSÿÿ �­ÏÞÞÞáããÝ̪�ZÿwÿSÿ;ÿ5ÿ5ÿ2ÿ2ÿ2ÿ4ÿ4ÿ4ÿ8ÿHÿmÿŠÿqÿXÿKÿCÿ?ÿ9ÿ7ÿ6ÿ6ÿ6ÿ6ÿ^ Œ¨ËÝããàÝÝÝΪ@þ÷�…üïâäô† ƒòòöý‚  †ñäãïü„977LL$ $,8?A@@@AAAA@;/%-6;=>?@@@@@3% U�… †ÿþýýƒ‚ ÿþþþþþüù÷ý† „9  %$""$! #' #$%&&& ÿú÷÷öõõõù%���ýùõ÷øûûýÿ‚üúûûƒúúö÷ùù  ýüýüúúƒ9&÷  &,'"!"óô #+"ö "&)))ûíäÞÜÚØØØÝé�.�.�ùëáçïùûÿƒûúÿÿƒßßÛÚßâò###! ôëêæà߃9DAìï #4A<546ðð324:;,÷"%,27:::öâÖÏÌÊÈÈÈÑå���ÿþüýýþüþùó÷÷ƒÝÝÙÚÝÞëü ###"öïïçß݃9o`ô"/FTOHGJïðGDFNP<û )04=EKOOO, úàÑÈÄÁ¿¿¿Êä�I�I�þùõøûýúýøðõõƒ ÎÎËÊÎÏâû!(2220'ïããÚÑ΃ÿ÷ñùýÿ„.ÿýýûøøø÷øòòùùùøøú÷÷÷÷øøùùùùùùùùûýüûûúúúúú÷í�!�!�ÿÿþÿ‚…ÿúúûþþþþýþýþýüùúƒ9ïåöøúúúúùùùúûøòêåèêììëìëéçîÿ÷óñðîìêéééóý  ù�,�,‚ÿÿÿÿƒþþþþú÷ùõòòòòõú ƒ€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ì �…€Àô�…€›@ÿ.�…€�@þ÷�…€+U�…€%�…€ �…€�…€�…€ùí�…€òù�…€ €@@@½@ ` À ` Àà @À@@À@à@½À@@½À@à@@@@½@@€ 1�…€ô�…Aÿ.þh�Aþ÷ýý�€U@¥�…€%J�…€ƒ…€�…€ �…€íØ�…€ùõ�…€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@€ 1�†€ôÖ�†€Aÿ.ÿ €@þh�†€Aþ÷þÈ€@ýý�†€U@ˆ€@¥�†€%#J�†€ ƒ†€�†€ �†€íéØ�†€ùóõ�†€ €l@@w@½@w@ À}@ ÀàYi@À@l@À@àl@½À@h@½À@ài@@@l@½@@5ùõôõõõõõôú DHMMMF;3.&"#üOÉÇÅÀÀÀÌâó +=H��ùøü‚%ûøûñóýþääö):CCCA@> üåÝÎÁ½½½ÂÓöƒúâÛÛÛ×ÖÔÔØâì###! !~C…ŠŠŠ yc[QECI31(@‰ ‰ˆ…€€€–ÁãJl@€€ù��üûýƒ$ùóøþää'8LhvvvtqoåÚ¾£™™™¤Áòƒ •²ÓßßßáãâßÒ´š‚Gÿhÿ^ÿ^ÿ^ÿ]ÿ\ÿ[ÿ[ãáßßßÓ·�”EÿÿkÿcÿcÿiÿzŒãFÿ[ÿ[ÿ[ÿ_ÿ_ÿ_ÿk…›³ÐÞã@ÿ<��üñçêõ† ‚÷îìôü†ƒý ‰@ÿy �ÆÖÖÖØÛÚÖÆ €HÿbÿAÿ4ÿ4ÿ4ÿ3ÿ2ÿ0ÿ0Ú×ÖÖÖȤƒPÿxÿ]ÿCÿ9ÿ9ÿAÿVÿnÿÚÿ1ÿ3ÿ3ÿ6ÿ6ÿ6ÿEÿe�žÂÔÚ@ÿ ��ûîáäò†" ‚õéæðû†‚‰5+ )3>AAACDCC (,4 �…€óÂ�…€ü�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€�…€âù�…€Å@ÿ<�…€¶@ÿ �…€O�…‚�…€îÿ�…€ �…€ö �…€ãÂ�…€ü�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ú�…€Üù�…€È@ÿ<�…€¸@ÿ �…€O�…€û�…€ÿ�…€þ �…€ÿ �…€çÂ�…€ÿü�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ç�…€Ïù�…€½@ÿ<�…€±@ÿ �…€O�…€�…€ÿ�…€ �…€ �…€ãÂ�…€øü�…€ €@@@½@@ À@ Àà @À@@À@à@½À@@½À@à@@@@½@@Ñ®ùAÿbÿ<�Aÿ8ÿ þ€@O�…B=ÿþB úT úÛÂäü€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ö�…€Ðù�…€Ó@ÿ<�…€Æ@ÿ �…€O�…€�…‚ÿ�…€ �…€ �…€ëÂ�…€þü�…€ €l@@v@½@t@ Àx@ Àà\k@À@l@À@àl@½À@i@½À@àk@@@l@½@@5ýýýýüûûÌÉÃÃÃÊÖÝãêííú åÓÈÁGIKPPPD.��  îäÖÆ½½½¿ÁÂþÿÿ‚ýüÿýCC>- ëëö#1?Cƒ ôÜÖÖÖØÚØÞDÿ{ÿuÿoÿoÿo€—ž¨´µ°ÆÈÑÞåÿ"#%%!é¯�Aÿyÿp pqtyyyc7ù�‚ÿý ûÙȳ˜ŠŠŠŒ�‘ùûþ‚üúþüýgg\?ççìü&A]gƒ ¢ºÔÞÞÞßàááEÿYÿ\ÿ]ÿ]ÿ]ÿh …Ÿ¨½ÑÙÙÓ°§ŠHÿiÿ]ÿ]ÿ]ÿ[ÿYÿZÿ]ÿj‡¡‰Cÿlÿ^ÿYÿYáááÝÝÝѶ@ÿ<��ûïåíõü‚  ‡ÿ‚ Œðêóý„ ‰¨ÈÕÕÕÖØÙÙFÿ/ÿ2ÿ3ÿ3ÿ3ÿAÿe †‘¬ÅÐÐȳœ�PÿkÿCÿ3ÿ3ÿ3ÿ1ÿ.ÿ/ÿ3ÿCÿhÿˆÿkÿGÿ5ÿ/ÿ/ØÖÖÓÓÓÄ£@ÿ ��úëÞéóû‚ ‡ÿ‚ ‹øüìãïû„5& DCBBB=2'$!$/@@@@5-32&"&#" ÷ïïïëíëêêìú &5;<ÄÆÄÆÆÆÑè ��üö$)))+-/ ‚ûóïòö„ íííïòôôþòúûòíƒ5áåèèèèëìêêÙÚÜÜÜÞáããåèêéçåáßÜØÖÖÖÖÖÔÕ×ÝÞÝÛÛÛÜääæââââàÂ��ÿþü÷ýýýÿƒöõúúúûýûùùúúƒ5ûùùùüýûûéêêêêææïïóõóõôôö÷ýûòíëë ü��þú÷õÿÿüöõõõõôóþþÿ‚þþþÿþƒ€ €E@@Y@½@8@ À:@ Àà7F@À@F@À@àF@½À@F@½À@àF@@@F@½@@!  ôùõùÿ7SGDGMNWSFJfb[P> B�€:::97ÁÁ� ÅÙñüÿÿÿÆÆÊÑÔ�ÁÁE1 „  Óêì×ßçõU@‹tuJ‚��¢‹r‰À·¨“p5s�mmnlgŠŠ� šºâ÷þÿÿ””›§¬�ŠŠ@Œa-ƒ!ýýéÙÕÕÒýýÒÒÒÏÆº§››°ÈÒÒÒ››ÒÔÔØàêö…�  Œþþ„ ƒ üüåÐÊÊÆüüÆÆÆÂ¸¨‘��œ¹ÅÅÆ��ÆÉÉÏØåó@ÿe� Œýþ„ƒ!$))!)) 2�üüüýýü�„üûüüüüƒ!ôò÷úúúÿûúþÿûûúù÷ø÷ôðîï÷øððïíììð�úòòôôñ� ûûþ þ�þûúúƒ!ñééëíîýÿ÷öúôðè×ÇÎÑÏÊÉÅÇÎÌÀÁÁÆÐãØ�ùÙÙÚÚÙ""� 3ùü!!�""éîôöøùƒ!ìæëðóóÿùüøòæÏ»Áÿ¸µ³ºÀ¹°±²µÀØÇ�÷ÚÚÜÛÙ� 3úôù �ôûýûøöƒ!ìäéðôôýÿûòãÅ­µ·²©¥¢«³«Ÿ ¡§·Õ¸�òÉÉËÊÇ))� K'öú//. �))ðôöõòñƒÿ�ÿÿÿÿþýüøôõõ÷ø÷øôõøõõ÷ùýó�����÷úýƒ! ÿþ  ""� õõ��ôôõøþ�õõƒ€ €—@@¿@½@´@ À»@ Àà�˜@À@˜@À@à—@½À@˜@½À@à˜@@@˜@½@@?þÿ# ÷éÞ×ÔÑÊÈÆÅÅÑáðÿ ößÎÎÑÔÐ#!"$! # ñâÚÕÎÉÇÇÇÇâ5 FRWZ]]]Q8 ��@ACDDD9*òììø üúý‚ �õüNNE4$îáÝâ˶¶¶¼Ìê !)8HNƒëëîòô îÜØÇ¬—‡€Eÿ}ÿ{ÿ{ÿuÿqÿy‘£»ÒÚÚÚÙØ××ÒÁ±˜Dÿÿyÿ|ÿƒÿ}0,-2/""ÿÒ²¤š‹€Cÿyÿvÿvÿv«êGiE€‰�’’’|Kò��nptvvvcD ñððý  ƒ�ï÷ÿB••ˆrbW9÷ÝÔ§Bÿ{ÿ{ÿ{‡¦Ý?NkAŠ•ƒ ”£ÄÜßßϳ�–ƒIÿlÿ`ÿZÿZÿXÿ\ÿ]ÿ]ÿdÿw“¥¼ÖáááäæåáÔº¥ŒJÿqÿdÿ_ÿ_ÿ]ÿ\ÿ^ÿ^ÿaÿgÿs‡¡ŽJÿ{ÿpÿiÿdÿ`ÿ^ÿ^ÿ_ÿ_ÿ_ÿ ¦»ÔáææäâââÖº@ÿ.�  ùöõøø‚ýòèêö†ÿÿ� �   †õëêóý„@ÿx‹µÓÖ×߃Lÿzÿ\ÿ;ÿ-ÿ,ÿ/ÿ-ÿ1ÿ2ÿ2ÿ;ÿSÿv �ªËÙÙÙÝßßÙɨ�YÿmÿKÿ;ÿ5ÿ5ÿ2ÿ1ÿ4ÿ4ÿ8ÿ?ÿNÿgÿˆÿpÿXÿJÿAÿ;ÿ5ÿ3ÿ4ÿ5ÿ5ÿ5ÿ\ ލÉÙßßÜÚÚÚ˧@þ÷�  úõ÷ñðòò‚üïâäó†ÿÿ� �   †òåäïü„?,% (+4@DDBB@AA?8-% %/:?AAABAA@=82&.7;=?AAAAAA3$ U�üüüþþþýüüüüþþþ‚ †þþ�üüüüüü� þýüüüüüúøü† „?ÿóóð "&))+&%%#ýôòòòòòóñòû%%$#%!%')))()+øí èäãããããê÷&�ýýþùø÷öööõöý þü�‚ûû�ûüýýýýøøööúý ú ýùøƒ?ú÷íù&*'$''('&# ýýýüþýöñö .$  ööõóøÿ ï&*,---ùðá ØÑÎÎÉÉÉÐà� ùùø÷öÖÕÓÒÒÒáñôéö øôûûûöîìð÷ÿ‚÷ü�üôïðôùÔÔÔ×àæø  )))'ÿøßæß×Ôƒ?%  )45336<>B>;@@@?@½@@ îîCFIMPD1-'"""!!%ÑÊÉÉÉÉÞù/>CCB �‚ ‚ûôðñìë� ÛØÕÒÄ»»»Ïêýü„ÌË~Cƒ‰’™ VG4+++'%+EÿyÿmÿlÿlÿlÿlŸÜOq~@€~ð�‚‚þÿêá�ÅÀ»³�BÿzÿzÿzžÐü„ÜÛÛßßÚÊ®—Nÿ~ÿcÿXÿXÿXÿUÿUÿUÿUÿUÿWÿXÿXÿXÿs•°ÌÙÜÛÛ@ÿ&�‚ ‚ ƒ ‚…ÒÑÑÖÖм™Pÿ|ÿ\ÿ:ÿ,ÿ,ÿ,ÿ(ÿ(ÿ(ÿ(ÿ(ÿ*ÿ,ÿ,ÿ,ÿNÿyš¾ÏÒÑÑ@þì�‚‚ƒ ‚…  !+4@DDDEEEDEDDDD8+!X�‚øøûÿ‚þüùýÿƒýùøý‚ÿþþ… ÷óôöü%()'((ýøöõú)�‚ééôý‚ � ûóî„ ÝÚÙØÛåññôøøøüûô$(*))) ýïççéÞ�‚ííöý‚)'� $$$%)3=„ ÓÏÎÍÒãö÷ûþþþù>BDDDD+øã×ÒÎÓ�‚íí÷þ‚4:� !$$$!ï„  ÆÀ¾º¼ÎäëôùùùñKPTRSS5÷ÜÌÄ¿Æ�‚èèôþ‚$JU� +)'15550!ç„€ÿøúùùùõòñîîîîíîðöõôôôôùùùúúùùúì�‚„þÿúùú� ù„ ÷ö ‚þþèåååååïú ÷�‚‚þùøóìé� ùõ÷÷óòòòóø„€ €I@@_@½@S@ ÀU@ Àà@I@À@I@À@àI@½À@I@½À@àG@@@H@½@@$ãñ4&îîCFIMPD1-'"""!!%ÑÊÉÉÉÉÞù/>CCB �¾�¾‚ ‚ûôðñìë� ÛØÕÒÄ»»»Ïêýü„ÅÛ^HÌË~Cƒ‰’™ VG4+++'%+EÿyÿmÿlÿlÿlÿlŸÜOq~@€~ð�—�—‚‚þÿêá�ÅÀ»³�BÿzÿzÿzžÐü„ ê길ÜÛÛßßÚÊ®—Nÿ~ÿcÿXÿXÿXÿUÿUÿUÿUÿUÿWÿXÿXÿXÿs•°ÌÙÜÛÛ@ÿ&�† ‚ ƒ ‚… ä䥥ÒÑÑÖÖм™Pÿ|ÿ\ÿ:ÿ,ÿ,ÿ,ÿ(ÿ(ÿ(ÿ(ÿ(ÿ*ÿ,ÿ,ÿ,ÿNÿyš¾ÏÒÑÑ@þì�†‚ƒ ‚…$  !+4@DDDEEEDEDDDD8+!X�†øøûÿ‚þüùýÿƒýùøý‚ÿþþ…$"! ÷óôöü%()'((ýøöõú)��‚ééôý‚ � ûóî„$×ã ÝÚÙØÛåññôøøøüûô$(*))) ýïççéÞ�8�8‚ííöý‚)'� $$$%)3=„$# ËÎÓÏÎÍÒãö÷ûþþþù>BDDDD+øã×ÒÎÓ��‚íí÷þ‚4:� !$$$!ï„$7(¼Ë ÆÀ¾º¼ÎäëôùùùñKPTRSS5÷ÜÌÄ¿Æ�I�I‚èèôþ‚$JU� +)'15550!ç„€#øôüÿøúùùùõòñîîîîíîðöõôôôôùùùúúùùúì�!�!‚„þÿúùú� ù„üó÷ö ‚þþèåååååïú ÷�-�-‚‚þùøóìé� ùõ÷÷óòòòóø„€ €@@ `½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€÷ �…ôð€@ÿ&�…€@þì�…€X�…€û)�…€ý�…€ý�…€÷�…€ÿì�…€ù÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ä �…€»ð�…€”@ÿ&�…€‚@þì�…€)X�…€)�…€�…€#�…€�…€ì�…€õ÷�…€ €@@@½@@ À@ Àà @À@@À@à@½À@@½À@à@@@@½@@ åïB8îîDD)�Ð�Ї¼ÏlÍÌAƒƒ€G�¦�¦‡ ×ÜÙÔÜÛÛÛ°�ì�ì‡ ÐÓÎËÒÑÑÑ›�ó�ó‡  �û�û‡ úûøø �‹  Þå ÜÜï��‡ ÐÕÎÎê��‡ &ÄÌÁÁä�'�'‡ ùüÿøøö� � ‡ ø÷÷ö ��‡€ € @@ @½@ @ À @ Àà  @À@ @À@à @½À@ @½À@à @@@ @½@@îîDD)�‡ÍÌAƒƒ€G�‡ÜÛÛÛ°�‡ÒÑÑÑ›�‡ �‡øø �‡ ÜÜï�‡ÎÎê�‡ÁÁä�‡€ÿøøö�‡÷ö �‡€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€ô)�…‚G�…€°�…€›�…€ �…€ �…€ï�…€÷ê�…€ïä�…€ö�…€ �…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€ )�…€G�…€°�…€ÿ›�…€ �…€î �…€õï�…€òê�…€êä�…€ýö�…€ �…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€ú)�…€îG�…€°�…€›�…€ �…€ò �…€ï�…€ÿê�…€ùä�…€ö�…€ �…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€ô)�…€éG�…€°�…€ÿ›�…€ÿ �…€ú �…€ï�…€ê�…€ÿä�…€ö�…€ �…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€ç)�…€ G�…€2°�…€c›�…€7 �…€ �…€ ï�…€Üê�…€Ûä�…€ãö�…€¼ �…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€ø)�…€ßG�…€ò°�…€î›�…€ �…€ÿ �…€ï�…€ê�…€ä�…€ö�…€û �…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@�)�„�G�„�°�„�›�„� �„� �„�ï�„�ê�„�ä�„�ö�„� �„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€ú)�…€éG�…€ܰ�…€Ò›�…€ �…€ �…€ï�…€ ê�…€ä�…€þö�…€û �…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ö)�…€¸G�…€°�…€ ›�…€ÿ �…€ �…€(ï�…€*ê�…€,ä�…€ö�…€ �…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€ )�…€G�…€ü°�…€ü›�…€ �…€ú �…€îï�…€þê�…€ää�…€ö�…€ �…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€)�…€G�…€ÿ°�…€þ›�…€ �…€õ �…€ï�…€óê�…€íä�…€ö�…€ �…€ €@@ @½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€)V�…€G@™�…€°@ÿ`�…€›@ÿ6�…€ @�…€ �…€ïÙ�…€êÉ�…€ä½�…€öè�…€ �…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€ï)�…€õG�…€ô°�…€÷›�…€ �…€ �…€ï�…€ê�…€ä�…€ö�…‚ �…€ €`@`½@` À@ Àà `À@@À@à`½À@@½À@à@@@`½@@€ÿ)�…€þG�…€Ú°�…Лþ€ �…€ �…ï€ ê�…(äúö€ñ �…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€þ)�…€öG�…€ °�…€ ›�…€ü �…€þ �…‚ï�…€ê�…€ä�…€ ö�…€ �…€ €)@@5@½@*@ À*@ Àà*'@À@*@À@à*@½À@*@½À@à*@@@*@½@@èòE;úýüñGVRJ?--�Ð�Ð::<<7�E1 „ÇÚ@Šwô øïíÖC�«¢“~[ R�¦�¦mmpog�@Œa-ƒ×ÜÙÔôãÝÝÚÚÜÜàèòþ°�ì�ì � ƒÐÓÎËòÜÕÕÑÑÓÓÙâðÿ›�ó�ó�ƒ þþ  � �û�ûüüüüüü�üûüüüüƒ÷÷üúüÿö÷÷öõöú�ƒúòòòññ�þûûúƒÛâüüÿ ÙÖ×ÙÞæ÷ê��ûÛÛÚÙÛ�ëðöøûûƒ ÅÉý÷ùÿÄÁÃÅÉÖìß��÷ÚÚÚØÙ�ôûýüú÷ƒ¹Àþöù¶³µ·¾ÌèÙ�'�'òÈÈÇÆÆ�ïøýû÷òƒþöùþþÿýýüõóóõöùýò� � �÷úýƒíì òõ÷õññì  �þ���ƒ€ €!@@*@½@"@ À` Àà "@À@"@À@à"@½À@"@½À@à"@@@"@½@@úýüñGVRJ?-)�€::<<7�E1 „ô øïíÖC�«¢“~[ G�mmpog�@Œa-ƒôãÝÝÚÚÜÜàèòþ°� � ƒ ÜÕÑÓâðÿ› þ  üüüüüûüüúüÿö÷÷öõöú �úòòòññ�þûûúƒüüÿ ÙÖ×ÙÞæ÷ï�ûÛÛÚÙÛ�ëðöøûûƒý÷ùÿÄÁÃÅÉÖìê�÷ÚÚÚØÙ�ôûýüú÷ƒþöù¶³µ·¾Ìèä�òÈÈÇÆÆ�ïøýû÷òƒþþÿýýüõóóõöùýö��÷úýƒ òõ÷õññì  � ��ƒ€ € @@ @½@ @ À @ Àà  @À@ @À@à @½À@ @½À@à @@@ @½@@€ô)R�‡�GG@Ž�‡€°¸@ÿ`�‡€›¡@ÿ6�‡€ 0@�‡€ �‡€ïôÞ�‡€÷êÜÔ�‡€ïäÓÈ�‡€ö ì�‡€ �‡€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€ô)�…€éG�…€°�…€ÿ›�…€ÿ �…€ú �…€ï�…€ýê�…€ÿä�…€ö�…€ �…€ €@@$@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@îîCH&ðKcLòK�†ˆùù ûùù�‚ýý�þˆ ÝÚìÙÑÔ óßÝâ�‚óó��„ÒÑíʸÂðÓÒÐ�‚õõ�ú�„ÅÂè¼¥±ëÆÅÆ�‚ïï�÷� „€ ÿùùûñïóïöúúùî�‚þþ„„÷ö ÷÷�‚��ýý„€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ ;�…€`�…€©@ÿF�…€ž@ÿ�…€'K�…€ �…€öâ�…€ Ð�…€æÆ�…€ìî�…€î�…€ €@@$@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@éóIJ(öPdGî;>6�‚�ý�àà„ÍÌ@ˆ=È}AÇ€Æ'sQ�‚//��ÅÅ„ÜÛÜÛÃDÿcÿ]ÿÁÿ_ÿfÂÛÛ@ÿF�†ÿˆÒÑÒÒ²Dÿ9ÿ1ÿ°ÿ5ÿ=²ÒÑ@ÿ�†ÿˆ?AA>K�†ˆ ó÷ú úþ�‚ýý�ÿˆרêÔÐÙ ôàâè�‚óó��„ÒÑíʸÂðÓÒß�‚õõ�ú�„ÅÂè¼¥±ëÆÅÖ�‚ïï�÷� „ûó÷ùëêòôúûûþí�‚þþ��„÷÷ ÷÷ �‚��ýý„€ € @@ @½@ @ À @ Àà  @À@ @À@à @½À@ @½À@à @@@ @½@@îîDD#�‡ÍÌAƒƒ€G�‡ÜÛÛÛ°�‡ÒÑÑÑ›�‡ �‡øø�‡ ÜÜï�‡ÎÎê�‡ÁÁä�‡€ÿøøü�‡÷ö �‡€ €@@@½@` À@ Àà@À@@À@à@½À@@½À@à@@@ `½@@ù# ìG€î°�…ï›> > ïöê äâüüö‚ �€âƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€0#�…€oG�…€Ȱ�…€¾›�…€& �…€ �…€ñï�…€âê�…€Õä�…€âü�…€þ �…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€#�…€÷G�…€ݰ�…€Þ›�…€ �…€ �…€üï�…€ ê�…€þä�…€ñü�…€ç �…€ €@@ @½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€ P�…€X@½�…€ÂÀ�…€¯¬�…€�…€�…€ïÔ�…€×¾�…€äÛ�…€ðÙ�…€ (�…€ €@@ @½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€#P�…€G@™�…€°@ÿ`�…€›@ÿ6�…€ @�…€ �…€ïÙ�…€êÉ�…€ä½�…€üî�…€ �…€ €@@%@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ óëðüøóJUNAJJ8�€Þà�42úý„ÖÈÔëßÖE‘¦˜��‘€h�€ÀÃ-*�d_õú„ ØÕèéÕØØÕÄÄÕØµ�€óùùó�òììò„ ÒÍååÍÐÏ̶¶ÍС�€ð÷öï�ïèéð„  �€�„ õõôõôõý�€�þýýý„  ÖÐÍÓÓÖÝ�€úù�çåøú„  ¿º²µ¼¿Ë�€ ýù�çåñó„ !³ª¢¦­³½�€ üö�×Óãç„ ÿÿøö÷ú÷ø÷�€ûû�úú„ þýø÷üü �€üüûû�  „€ €i@@‚@½@‡@ ÀŠ@ Ààag@À@i@À@ài@½À@h@½À@àe@@@i@½@@5îíBCGKQJ9/)259?9*)"""!"&ÑÊÉÊÊÊÜò!-134àØ×ØØØê0=BBB �‚‚‚õïïêê� ÛØÔÐÅ»»»Êá÷ü� ÛØÔÐÅ»»»Ïéüü„ÌËDƒ‰’�ŒiUKRWal[9-Eÿlÿ`ÿ^ÿ_ÿ_ÿ_‹¿ë"?KONœ�Ž���»ïSq}~â�‚‚ ‚ûýûèá�޶­ŽBÿzÿzÿz˜Åô�޶­ŽBÿzÿzÿzžÏû„ ÜÚÚÚÛ×ͺ¨–aÿzÿyÿyÿvÿjÿUÿBÿ'ÿÿÿÿÿÿÿÿÿÿÿÿÿ*ÿEÿWÿmÿwÿxÿwÿwÿwÿwÿxÿ{ÿ{ÿ{�«½ÒÚÛÚÛ@þà�‚‚‚ ƒ‚ƒ‚†ÒÐÐÐÑÍÀ¨‘cÿyÿWÿVÿVÿRÿCÿ(ÿþïþÖþÖþÖþÔþÓþÔþÕþÔþÕþØþØþØþòÿÿ+ÿGÿRÿSÿRÿSÿTÿSÿUÿXÿXÿXÿr•¬ÆÐÑÐÑ@þ”�‚ ‚ ‚ ƒ ‚ƒ  ‚…5#,5778DFDEE9!ùãØÕÐÓ�‚øøþƒ ,:� #$$$!ï„! ÇÇÅÁ¾ÌãìöùùùþñKQURSSE&öÛÍÆÀÆ�‚ööý‚#DU� +)',45551#ç„�ööõöôóóñîîîîîîðööõõõõöøùúúúûúúì�‚ÿÿÿ„ÿÿûûú� ù„ ÷÷‚ÿþèæææææéòú ÷�‚‚ÿýüøîé� ùõ÷÷ôôòòòó÷ÿ„€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€é �…€Õð�…€Ã@ÿ&�…€¯@þì�…€,X�…€)�…€�…€�…€ �…€ ì�…€ù÷�…€ €_@@r@½@c@ Àj@ ÀàN^@À@_@À@à^@½À@_@½À@à]@@@^@½@@/ýþýþìï"%$! îíBCGIND0,&"""!!%ÑÉÈÉÉÉÒçø.=ABB � ôùöö þ÷ô‚‚ûóïðìë� ÛØÕÒɾ»»»Îèüü„üþýüßåDFD@2ÌËCƒ‰�˜ UF3+++'%+Eÿyÿlÿkÿlÿlÿl ‚³ÛNp|~ð� ò þ÷÷÷ò‚‚þþÿêá�ÅÀ»³œ‚Bÿzÿzÿz�Îû„�ýúúúúúøøø÷øýÜÚÚÚÚÕɰ˜Nÿ}ÿbÿXÿXÿXÿWÿUÿUÿUÿTÿVÿXÿXÿXÿe€–°ÍÙÚÚÛ@ÿ&�‰ÿþþƒ‚ ƒ  ‚…ÿûö÷øøøõõôôöüÒÐÐÐÐÊ»›Qÿ}ÿ[ÿ8ÿ,ÿ,ÿ,ÿ*ÿ(ÿ(ÿ(ÿ'ÿ)ÿ,ÿ,ÿ,ÿ<ÿ^ÿz›¿ÎÐÐÑ@þì�‚…üúüƒ ‚ ƒ ‚…‚�!!*4@DDDDEEDDCCCC?4+  X�‰ýüýƒýýþÿ‚þûùüýƒýùøüþ‚ÿÿ†�-ûþþýÿ÷ùøúûý üýýÿÿ%)*'((#üøøöú)���‚ûûÿ‚ � üóî„/úÿÿü åçççìø ßáÞÞÛâðòöøøøúûô$)+)))"øèáàßÞ� � ‚þþ‚#'� "$$$ „/ýþÿÿ ßäâáè÷ÖÖÕÒÏÚìóûþþþù>DFDEE9!ùãØÕÐÓ� �‚øøþƒ ,:� #$$$!ï„/ ýÜàßÝå÷ ÇÇÅÁ¾ÌãìöùùùþñKQURSSE&öÛÍÆÀÆ� #  #‚ööý‚#DU� +)',45551#ç„�ÿ�ûûûýÿ�ööõöôóóñîîîîîîðööõõõõöøùúúúûúúì��ÿ ‚ÿÿÿ„ÿÿûûú� ù„ÿþÿ ÷÷‚ÿþèæææææéòú ÷�ùûûúùùù�öüþýù‚‚ÿýüøîé� ùõ÷÷ôôòòòó÷ÿ„€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ï �…€Ãð�…€Ñ@ÿ&�…€½@þì�…€0X�…€þ)�…€�…€�…€�…€úì�…€ú÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ú �…€Òð�…€Ÿ@ÿ&�…€‡@þì�…€6X�…€ )�…€�…€�…€�…€åì�…€Ø÷�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ë �…€¼ð�…€”@ÿ&�…Aÿwþì�€,X�…€)�…€�…€"�…€'�…€öì�…€ò÷�…€ €V@@i@½@q@ Àu@ ÀàTW@À@W@À@àV@½À@W@½À@àU@@@V@½@@+ÛçäàÞÝÉÈÉÉÉÒçø.=ABBîíBCGIND0,&"""!!40( ð �€:::97ÛØÕÒɾ»»»Îèüüƒ‚ ûóïðìëE1 „–­¤˜‘�Dÿlÿkÿlÿlÿl ‚³ÛNp|~ÌËCƒ‰�˜UF3+++'%A9*ó½ð� mmnlgÅÀ»³œ‚Bÿzÿzÿz�Îûƒ‚ þþÿêágG! ƒ€€Iÿlÿ\ÿXÿXÿTÿVÿXÿXÿXÿe€–°ÍÙÚÚÛÜÚÚÚÚÕɰ˜Lÿ}ÿbÿXÿXÿXÿWÿUÿXÿXÿ]ÿdÿnÿy€@ÿ'�   ‚„‚   ƒMÿ^ÿ^ÿEÿ1ÿ,ÿ,ÿ'ÿ)ÿ,ÿ,ÿ,ÿ<ÿ^ÿz ›¿ÎÐÐÑÒÐÐÐÐÊ»›Mÿ}ÿ[ÿ8ÿ,ÿ,ÿ,ÿ*ÿ(ÿ,ÿ,ÿ2ÿ;ÿHÿV€@þî� ‚„ ‚   ƒ+449@DCDCCCC?4+  !*4@DDDDEDDB>;6X� üüüýýüýùøüþ‚ÿÿ…ýýþÿ‚ þûùüýüûüüüüƒ+!!!)*'((#üøøöú üýýÿÿ(�úòòôôñ üóîƒûûÿ‚  þûúúƒ+)+)))"øèáàßÞ ßáÞÞÛâðòöøøøúûèëîòú �ûÛÛÜÜÛ"$$$ ƒþþ‚ #'ÏÜìõøûƒ+.(-255DFDEE9!ùãØÕÐÓÖÖÕÒÏÚìóûþþþõöøÿ �÷ÚÚÜÛÙ#$$$!ïƒøøþƒ  ,:öüýúøöƒ+5.4:>>QURSSE&öÛÍÆÀÆ ÇÇÅÁ¾Ìãìöùùùþíðóú!�ôÊÊËÊÈ+)',45551#çƒööý‚ #DUôûþúöóƒùøúøôõöõõõõöøùúúúûúú�ööõöôóóñîîîîîîïðòôõ÷í�ýýüüþùƒÿÿÿ„ ÿÿûûúøûþƒíïðíêëåååååèòú ÷÷‚ ÿþûó÷�ùõ÷÷ôôòòòó÷ÿƒ‚ ÿýüøî郀 €X@@t@½@i@ Àl@ ÀàVY@À@Y@À@àX@½À@Y@½À@àW@@@X@½@@+øþûúíBCGIND0,&"""!!%ÑÉÈÉÉÉÒçø.=ABQMF;* �€:::97�‚ûóïðìë�ÛØÕÒɾ»»»ÎèüüE1 „êöêäãËCƒ‰�˜ UF3+++'%+Eÿyÿlÿkÿlÿlÿl‚³ÛNp|B�”†rPð�mmkhg�‚þþÿêá�ÅÀ»³œ‚Bÿzÿzÿz�Îû@Œb-ƒ òâÞÞÚÚÚÚÕɰ˜Nÿ}ÿbÿXÿXÿXÿWÿUÿUÿUÿTÿVÿXÿXÿXÿe €–°ÍÙÚÚÝÝâéôÿ@ÿ&�  �‚ ƒ  ‚  ƒ îÚÕÕÐÐÐÐÊ»›Qÿ}ÿ[ÿ8ÿ,ÿ,ÿ,ÿ*ÿ(ÿ(ÿ(ÿ'ÿ)ÿ,ÿ,ÿ,ÿ<ÿ^ÿz ›¾ÎÐÐÔÔÚãðÿ@þì� � ‚ ƒ ‚   ƒ(þþ  !*4@DDDDEEDDCCCC?4+   �X�üüüýýü�ýýþÿ‚þûùüýƒýùøüþ‚ÿÿ�üûüüüüƒ+ýû üýýÿÿ%)*'((#üøøöûûøø÷û)�úòòôôñ�ûûÿ‚ � üóîþûúúƒ+úþ ßáÞÞÛâðòöøøøúûô$)+)))"øéáàßÒÕ×Ûãô�ûÛÛÜÜÛ�þþ‚#'�"$$$ ÏÜìõøûƒ+ ÖÖÕÒÏÚìóûþþþù>DFDEE9!ùãØÕÐÐÑÑÖà÷�÷ÚÚßßÙ�øøþƒ ,:�#$$$!ïôúýüù÷ƒ+  ÇÇÅÁ¾ÌãìöùùùþñKQURSSE&öÜÍÆÀÁÃÄÊ×ò�ôÊÊÐÐÈ�ööý‚#DU�+)',45551#çñøþü÷ôƒÿÿ�!ööõöôóóñîîîîîîðööõõõõöøùúúúûú÷÷øúü�ì�ýýüýþ�ÿÿÿ„ÿÿûûú�ùøûþƒûýûø÷ù÷‚ÿþèççæææéòú  ÷� �‚ÿýüøîé�ùõ÷÷ôôòòòó÷ÿ�ƒ€ €@@@½@ ` À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ 8�…€ðB�…Aÿ&þÖ�Aþìþ‡�€Xx�…€)/�…€ò�…€õ�…€ò�…€ìÞ�…€÷õ�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ó �…€Ëð�…€Å@ÿ&�…€µ@þì�…€X�…€ )�…€�…€�…€�…€ì�…€ý÷�…€ €i@@z@½@q@ À}@ ÀàZj@À@i@À@ài@½À@i@½À@àh@@@i@½@@4øìéééçæåäåéñ÷ úâÓËÆÃÀ»»»ÄÜð!/8;=@@@7 ú�� þþƒ#ýõðòû??;2#öâÛÑÆÁÁÁÈÖð %.:?ƒôáÚÚÚ××רÙÞêó"""%&%$#︗…Fÿzÿuÿrÿjÿjÿjÿ~³âRqE�ˆ‹‘‘‘|G÷�� ÿÿƒ#ý÷ôõûvvn]BòÑÄ®”ŠŠŠ—²á.>>:-"  H�� þúùûÿÿÿÿ‚ ýýüüýþ�ÿÿýýƒ4 ýüýÿý "%(*/222.ôìèçåâââçõ��ýøöøüþÿƒ þþþþ�ÞÞàäëöþ  """þòæåäàÞƒ€3  ÿûûûûûýþþÿ+6:=?AEEE>'ûäÚÖÔÓÎÎÎÖî ��ÿÿ�þýþÿƒ"äääçì÷  öîíêæäƒ€3  þúúúùùûÿýþ4CIMORWWWN1úÛÎÉÈÆÁÁÁËè�� ÿþýþþýüüþƒ"×רÜäô#()))% ïââÞÚ׃4ùûýþþþüûûûúøóðíìëëëìëëííïöòððïïïïñðððòôö÷÷÷öööøøøöôç�‚ÿþÿƒÿ�þ�þüüÿþþþÿÿþüüýýþƒ€ýø÷÷÷÷÷ø÷øøöøûÿ�ÿÿÿ÷ïêéèæåäääèðù ú����ƒÿ�ÿÿÿÿ� úôóòòñññóøü ƒ€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ýú�…€Ù÷�…€Ê@ÿ4�…€¸@þþ�…€)R�…€*H�…€�…€ �…€�…€ ç�…€úú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€òú�…€ß÷�…€Ã@ÿ4�…€±@þþ�…€R�…€ H�…€�…€þ �…€ÿ�…€öç�…€úú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ãú�…€Ç÷�…€Ø@ÿ4�…€Æ@þþ�…€-R�…€H�…€�…€ �…€�…€ûç�…€ûú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ýú�…€Â÷�…€Ã@ÿ4�…€±@þþ�…€R�…€H�…€�…€ �…€�…€þç�…€þú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ýú�…€Â÷�…€Ã@ÿ4�…€±@þþ�…€R�…€H�…€�…€ �…€�…€þç�…€ýú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ãÝú�†€ÃÂ÷�†€ŸÃ@ÿ4�†€„±@þþ�†€)R�†€"H�†€�†€ �†€�†€÷þç�†€òþú�†€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ýú�…€²÷�…€Ã@ÿ4�…€±@þþ�…€R�…€H�…€�…€ �…€$�…€þç�…€ìú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ýú�…€Â÷�…€Ã@ÿ4�…€±@þþ�…€R�…€H�…€�…€ �…€�…€þç�…€þú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€æú�…€Î÷�…€·@ÿ4�…€¨@þþ�…‚R�…€H�…€�…€ �…€�…€ç�…€ýú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ðú�…€å÷�…€ô@ÿ4�…€@þþ�…€PR�…€%H�…€�…€è �…€ð�…€Üç�…€´ú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€áú�…€¸÷�…€´@ÿ4�…€ @þþ�…€R�…€H�…€�…€ �…€*�…€ûç�…€óú�…€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à @@@ @½@@€áØú�†€¸Î÷�†€´µ@ÿ4�†€ ¨@þþ�†€R��ƒ€,H�†€"�†€  �†€*�†€ûüç��ÿƒ€óøú��ÿƒ€ €@@ @½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ß×ú�†€ÀÏ÷�� ƒ€›µ@ÿ4�†€€¨@þþ�†€)R�†€',H�†€"�†€ �†€"�†€÷úç�†€óøú�†€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ãú�…€Ã÷�…€Ÿ@ÿ4�…€„@þþ�…€)R�…€"H�…€�…€ �…€�…€÷ç�…€òú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€¿ú�…€‘÷�…€×@ÿ4�…€¼@þþ�…€R�…€-H�…€5�…€6 �…€A�…€ ç�…€ú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€óú�…€á÷�…€¾@ÿ4�…€®@þþ�…€R�…€H�…€û�…€ �…€ù�…€úç�…€ú�…€ €ˆ@@˜@½@›@ À§@ Ààjˆ@À@ˆ@À@àˆ@½À@ˆ@½À@à†@@@‡@½@@?ÌÐÍÒ×ÙÙ×õÜÇøìéééçæåäåéñ÷ úâÓËÆÃÀ»»»ÄÜð!/8;=@@@7 ú�ë‚ ùùûòíëë� þþƒ#ýõðòû??;2#öâÛÑÆÁÁÁÈÖð %.:?ƒ-ÄÍ®·ÀÃÃÀ$'#Ï£ôáÚÚÚ××רÙÞêó"""%&%$#︗…Fÿzÿuÿrÿjÿjÿjÿ~³âRqE�ˆ‹‘‘‘|G÷�Ô‚ öö÷äÙÔÔ� ÿÿƒ#ý÷ôõûvvn]BòÑÄ®”ŠŠŠ—²á.>>=58::9;?#,311222..0.( !*5:;:;<>>>:-"  H�ÿ‚þÿ‚�ÿÿ� þúùûÿÿÿÿ‚ ýýüüýþ�ÿÿýýƒ?(&4.(''' '3 ýüýÿý "%(*/222.ôìèçåâââçõ�‚ÿÿþ��ýøöøüþÿƒ þþþþ�ÞÞàäëöþ  """þòæåäàÞƒ?1(""""ùûüþ/  ÿûûûûûýþþÿ+6:=?AEEE>'ûäÚÖÔÓÎÎÎÖî �‚þüý��ÿÿ�þýþÿƒ"äääçì÷  öîíêæäƒ?$"ZOHGGG$?W  þúúúùùûÿýþ4CIMORWWWN1úÛÎÉÈÆÁÁÁËè� ‚ýûû� � ÿþýþþýüüþƒ"×רÜäô#()))% ïââÞÚ׃?ôóîîïððïììëïòòîùûýþþþüûûûúøóðíìëëëìëëííïöòððïïïïñðððòôö÷÷÷öööøøøöôç�ƒ�‚ÿþÿƒÿ�þ�þüüÿþþþÿÿþüüýýþƒ#üüèìñóòðüïçýø÷÷÷÷÷ø÷øøöøûÿ�ÿÿÿ÷ïêéèæåäääèðù ú�ý‚�ÿþýýý���ƒÿ�ÿÿÿÿ� úôóòòñññóøü ƒ€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ýú�…€Ù÷�…€Ê@ÿ4�…€¸@þþ�…€)R�…€*H�…€�…€ �…€�…€ ç�…€úú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ãú�…€Â÷�…€ž@ÿ4�…€„@þþ�…€)R�…€#H�…€�…€ �…€�…€÷ç�…€óú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€¿ú�…€‘÷�…€×@ÿ4�…€¼@þþ�…€R�…€-H�…€5�…€6 �…€A�…€ ç�…€ú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€óú�…€á÷�…€¾@ÿ4�…€®@þþ�…€R�…€H�…€û�…€ �…€ù�…€úç�…€ú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Õú�…€Ô÷�…€â@ÿ4�…€Õ@þþ�…€?R�…€'H�…€�…€ �…€�…€êç�…€ßú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ëú�…€Û÷�…€Á@ÿ4�…€°@þþ�…€R�…€H�…€�…€ÿ �…€�…€þç�…€ÿú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Øú�…€Î÷�…€¶@ÿ4�…€©@þþ�…€R�…€+H�…€!�…€ �…€�…€úç�…€øú�…€ €`@`½@ ` À@ Àà `À@@À@à`½À@@½À@à@@@`½@@€Óú�…€±÷�…€™@ÿ4�…„@þþþ€-R�…€8H�…%€4 �…Cùç€ùú�…€ €m@@~@½@y@ À…@ Àà^r@À@q@À@àm@½À@m@½À@àp@@@m@½@@8ì×#øìéééçæåäåéñ÷ úâÓËÆÃÀ»»»ÄÜð!/8;=@@@7 ú�… þþƒ#ýõðòû??;2#öâÛÑÆÁÁÁÈÖð %.:?ƒ"Õ›%_ôáÚÚÚ××רÙÞêó"""%&%$#︗…Fÿzÿuÿrÿjÿjÿjÿ~³âRqE�ˆ‹‘‘‘|G÷�… ÿÿƒ#ý÷ôõûvvn]BòÑÄ®”ŠŠŠ—²á.>>:-"  H�€‚ þúùûÿÿÿÿ‚ ýýüüýþ�ÿÿýýƒ8þ ýüýÿý "%(*/222.ôìèçåâââçõ�€ÿÿ‚ýøöøüþÿƒ þþþþ�ÞÞàäëöþ  """þòæåäàÞƒ8&üñ  ÿûûûûûýþþÿ+6:=?AEEE>'ûäÚÖÔÓÎÎÎÖî �…ÿÿ�þýþÿƒ"äääçì÷  öîíêæäƒ8 1üî  þúúúùùûÿýþ4CIMORWWWN1úÛÎÉÈÆÁÁÁËè�… ÿþýþþýüüþƒ"×רÜäô#()))% ïââÞÚ׃8ýóéóùûýþþþüûûûúøóðíìëëëìëëííïöòððïïïïñðððòôö÷÷÷öööøøøöôç�€ÿÿƒÿþÿƒÿ�þ�þüüÿþþþÿÿþüüýýþƒöñýø÷÷÷÷÷ø÷øøöøûÿ�ÿÿÿ÷ïêéèæåäääèðù ú�…��ƒÿ�ÿÿÿÿ� úôóòòñññóøü ƒ€ €y@@Š@½@‹@ À—@ Ààd~@À@}@À@ày@½À@y@½À@à|@@@x@½@@>ì×#øìéééçæåäåéñ÷ úâÓËÆÃÀ»»»ÄÜð!/8;=@@@7 ÙÙÕ%%ú�… þþƒ)ýõðòû??;2#öâÛÑÆÁÁÁÈÖð %.:?ììñññìƒ"Õ›%_ôáÚÚÚ××רÙÞêó"""%&%$#︗…Fÿzÿuÿrÿjÿjÿjÿ~³âRqE�ˆ‹‘‘‘ |GÑѾYYM÷�… ÿÿƒ)ý÷ôõûvvn]BòÑÄ®”ŠŠŠ—²á. CE(  (4@DDDDFFEC=1(2=CEEFDDDD?4( ))GJJ*R�…ˆýûüþ�ÿ‰ýûûýÿ‚þýþŠ>28#,311222..0.( !*5:;:;<>>>:-"  ,,;..,H�€‚ þúùûÿÿÿÿ‚ ýýüüýþ�ÿÿýý þþþ ƒ>þ ýüýÿý "%(*/222.ôìèçåâââçõ$ûûý�€ÿÿ‚ýøöøüþÿƒ þþþþ�ÞÞàäëöþ  """þòæåäàÞøøøƒ>&üñ  ÿûûûûûýþþÿ+6:=?AEEE>'ûäÚÖÔÓÎÎÎÖîææì �…ÿÿ�þýþÿƒ(äääçì÷  öîíêæä ƒ> 1üî  þúúúùùûÿýþ4CIMORWWWN1úÛÎÉÈÆÁÁÁËè#ÝÝâ�… ÿþýþþýüüþƒ(×רÜäô#()))% ïââÞÚ׃9ýóéóùûýþþþüûûûúøóðíìëëëìëëííïöòððïïïïñðððòôö÷÷÷öööøøøöô �ç�€ÿÿƒÿþÿƒÿ�þ�#þüüÿþþþÿÿþüüýýþÿÿÿƒöñýø÷÷÷÷÷ø÷øøöøûÿ�#ÿÿÿ÷ïêéèæåäääèðù úúòú�…��ƒÿ�ÿÿÿÿ� úôóòòñññóøü ÿÿ‚ÿƒ€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€çú�…€Ï÷�…€Ì@ÿ4�…€¾@þþ�…€R�…€H�…€ �…€ �…€�…€ç�…€þú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à`@@@½@@€çÓú�†€ÏÌ÷�†€̸@ÿ4�†€¾ª@þþ�†€R�†€0H�†€ &�†€ �†€�†ç�€þûú�†€ €´@@É@½@à@ Àé@ Ààš´@À@²@À@àµ@½À@µ@½À@à¯@@@°@½@@?øìèèèçæåãåéñ÷ãéùóØÝàááááÞÜûóïðãß×ÑÐîõæåçõ ÷ÞÏÆÂ»»»ÄÜð!/7;=@@@7 –“�ŽŽŽ™¯ÀÙø Ü��  ÿÿƒ-‚ûøûùøïääö):CCCA@>‚*êÈß÷??:.äÛÑÆÁÁÁÈÖð %.:?ëáÝÎÁ½½½ÂÓöƒ6óèÞÙÙÙ××××ÙÞêóËÆÙâÌ¡²ÁÅÅÅÅÄÂ$,,,÷íßÛàÊÊžºÐÑÀ¾ÁØ㨉Fÿzÿtÿqÿiÿiÿiÿ}²áQpD‡Š���{F*Gÿ*ÿ&ÿ#ÿ"ÿ"ÿ"ÿ7ÿb„±ë !Ÿ�� †)ƒôääÿ)8Lhvvvtqo‚*ñØêûvviO"òÑÄ®”ŠŠŠ—²á.>>:-"  -roopppk^SG81.]�� ÿýÿÿÿþþÿ‚ýûþƒý÷û üùùùùøøÿ‚* ýýúøûóÿÿýýööþþ ƒ?   !$$$$(*ÿûûû !$'-00#(+-222.ôìéçåâââçõúPPSUUUN@3%þ"��ýøøùýþÿ…óäô‚ü ùóìáÚÚÚÛÛÛüüþ‚*&ÞÞßäòÿþ """þòæåäàÞööù #&&&& ƒ? '&'"úúùùù " %(&0:>@BFFF?(üåÜÙÕÔÏÏÏ×ïý^\Z[[[SA2#þ(��  þüýÿ‚‚úðéì÷ÿýýúõôïèäääãâàúûþ‚*ûöùýääåéõ  öîíêæäýüÿü ƒ?-, 5,#!!!#$!úù÷÷÷ !##.12% ,ý3�� ÿþÿÿÿýûûþ‚ýûþ‚ùîçëýüüòîëåÜ×××ÖÓÑ÷ùý‚*ÿ××Ùßð#()))% ïââÞÚ×  ýƒ?ùûýÿÿÿüûûüúøóðêèèäçåáÝÝÝÝÝÞÜíìêêêèäãâáßÜÝÝÝÝÝåîðððóòïìíïðîðððòôö÷÷÷÷ööøøøöôêâãäãããäæèéëëëÆ�‚ÿ�ƒúôü‚úùúûúúúúúû…) þþýûýôþüüýýþýý  „?ûúøùùù÷÷øø÷÷öøóñóó÷îðñòòòóóóþúûøòðôòòòîìíððîíóþõëççåääääèðù ØØØØØØÜäéðøþ�í�‚þÿ‚…ýøü‚  ‚* û÷÷ööõõõ÷ûý ýýüÿÿüûûûüüýƒ€ €j@@”@½@~@ À‚@ Ààbl@À@l@À@àm@½À@m@½À@àk@@@k@½@@5ïîBCFHK?+% !##!#,9DKHDADìÝÒÎÌÈÈÈÒçù *15=BGIII- �‚ ‚ûñéìóúþ‚ûõóóDD>0õáÚν½½ÁÊÔÚêú  3DƒÎÍD€ƒŠŠ�gK9(###&''&+?WpD†ˆ�{�é´“Eÿ}ÿuÿrÿmÿmÿm ƒ´Ýÿ-N[cq{C‚†††Nô��‚ÿþþþùîééA……y\(ðÐÂ¥†Bÿ{ÿ{ÿ{ ‡ž®¸Ïè .Z@…ƒÜÚÙÙÙÖɬ�Jÿxÿ^ÿRÿRÿRÿPÿNÿNÿSÿaÿz�¤ÀÔØØÜ“Jÿ|ÿaÿSÿNÿNÿPÿSÿSÿSÿ_ÿ{ ”¨¼ÇÍÐÕÖ××××·@ÿ.� �‚ †ÿûøø …  ‚ þûüûöïéçéö„ÓÐÎÎÎË»–LÿrÿTÿ3ÿ$ÿ$ÿ$ÿ!ÿÿÿ%ÿ6ÿWÿr‹¯ÈÍÍÓLÿvÿYÿ7ÿ%ÿÿÿ"ÿ%ÿ%ÿ%ÿ4ÿXÿx ‘ª¸¿ÃÉËÌÌÌÌ£@þ÷�� ‚ †þúöö…‚ ýúûúóêâàãó„5"-6BFFFGHGE@5-%,5@EGGFEEEA6,$U�ü�ýýýÿ‚þúöøü†ü…ûø÷ûþ‚  „5üýüùôÿüö÷ùù÷"%%&&&&" ÿþúøöõõõ%�ú�ûûùý‚ ‚úúúùùü ýúüùúƒ5 ÞàßÚÑÛðôõõõõôòô÷öîã×ÑÕÛÜÙú !"%%% ûóðëéáÜ×ÔÔÔê�ù�üüûý‚‚ùÝÝßåô !!!$&! üíçâ݃5ÓÔÒÌËÙíó÷÷÷÷óóôùùñãÐÅÉÑÒÍÿ#/79;===4 óéãàÙÓÎËËËæ�ö�ùùøü‚)þÿÿÿ öÝÝÞãò !###&'#" óïå݃5ÈÉÇ¿¼Ïëó÷÷÷÷óòõúûïÞǹ½ÅÆ¿ÿ,;DHLMMMB(ïãÜØÏÇÁ½½½à�ò�óóôú‚) ýÿÿÿ òÎÎÐÙí&/2225521$ýéã×΃�3ùøøøøöóóñððððïïðñôóöøùøúù÷õóôõõõööööøùúùøùùøø÷÷÷÷ùí��ÿÿ‚ÿÿÿþÿ‚ÿÿ�ùùûüÿ�þýýûùƒ5ùø úòíëêéèèèëòúÿ  ù��„'ÿþÿÿþÿýûüü ýøùöôòòòñðñòõû ƒ€ €h@@�@½@|@ À€@ Àà_i@À@j@À@àk@½À@k@½À@àh@@@i@½@@4ïï@CFHK?+% !##!#,9JJDADìÝÒÎÌÈÈÈÒçù *15=BGIII- �‚ ‚ûñéìóúþ‚öóóDD>0õáÚν½½ÁÊÔÚêú  3DƒÎËC‡��…gG6&!!!$%%#(>>5!þðèâàÛÕÏÌÌÌç�ì�êêôþ‚ìÝÝÞãò "###&& "öôæÝƒ4Ľ¼·¾Öïöùùùùõô÷ýþòáÀÀÆÆ¿,BCDCBBB4% U�üƒ †þþƒü� þþþÿþôü† „5CHIIE5%   "2@@?>@55,58=>ADFGFE3ÿþýýýý;�ýÿ‚ÿ‚ûü�ý÷÷õõøõöý �ü÷÷ƒ5FMNSXM;-! &;HFECC#.39:@FKOOO<ùóïìèèèò�ø ‚üöóõúÿ‚úü�øÖÖ×ÙÜÚåõ(((&ôêçáÙÖƒ5GNUUU7þæØÏËÇÆÆÆÑê�òÿÿÿÿûöëúýÿÿƒõóþþ�òÎÎÊÅúÈå"2220'îáßÙÐ΃5# þþ     þþþþþþ�ƒ ‚üü�òòõøùùøøû þýûøôòƒ5èãâßâêôö÷øøøöö÷÷÷óîçäæèèçÿùóñïìêæåäääïû ù�ùùüþ„ÿÿ�üôôüöòòòòõú  ƒ€ €#@@+@½@ @ À"@ Àà#@À@!@À@à#@½À@#@½À@à@@@"@½@@îíBDGJID@048976B:�‚�²²½ÊÍÅ„ÌËB„ŠŒ pnNVbilk~a�‚ �Aÿjÿj€ž®¨„ÜÜÜÞÞÜ̳¤¤¹ÑÚÝÜÜ‘�‚ ƒ…ÒÑÑÔÔѽž‹‹¥ÃÏÑÐÑ@ÿt�‚ ƒ…%%-�‚üüþ„þÿÿ…úúû÷öûÿÿþûúøùù�‚üüýÿ�„ ÞàÞÙØÜÜãäääçêÞß�‚ýýƒ## +:„ÔÓÒËÑ×ÑØÞßÜ×ÚÒÖ�‚üüüþ� )„ ÆÇƽÅÍÅÏרÔÐÓÇÊ�‚ùùúý�--)%/=„€ÿø÷öø÷öõ÷ö÷øùùúó�ˆ„÷÷ �‚‚óóöôóð„€ €@@@½@@ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ý:�…€ a�…€ø‘�…€ó@ÿt�…€-�…€ �…€üß�…€éÖ�…€áÊ�…€ó�…€�…€ €@@@½@@ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€:�…€ûa�…€‘�…€@ÿt�…€-�…€ð�…€öß�…€ñÖ�…€ëÊ�…€ó�…€�…€ €@@@½@@ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€:�…€õa�…€ä‘�…€@ÿt�…€W-�…‚�…€ûß�…€ Ö�…€ÿÊ�…€õó�…€ú�…€ €@@@½@@ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ð:�…€a�…€"‘�…€P@ÿt�…€=-�…€�…€ýß�…€ÎÖ�…€ÍÊ�…€âó�…€À�…€ €@@@½@@ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€þ:�…€ça�…€ã‘�…€ö@ÿt�…€M-�…€þ�…€ýß�…€Ö�…€Ê�…€ó�…€�…€ €@@@½@@ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ :�…€a�…€ï‘�…€ë@ÿt�…€-�…€ó�…€õß�…€åÖ�…€ßÊ�…€ó�…€ �…€ €„@@‹@½@“@ À¡@ Àày~@À@€@À@à‚@½À@ƒ@½À@àx@@@„@½@@? ÿöóÿôñöùôèÜÖÔÔÕÕÕÛÞêëïïïñññôù ! %4@CB???61($#%%%%%#��;======2 õòæààâäïïíô÷ùýÿ‚ÿþþÅÄÂÃÃÃÊå    ÿ„+ñåâöçßÞÖȧ�ˆ‡‹ŽŽŽœ ¼ÊØØØÜÝÞäïÿ '1/"8IhE€…‚‚‚‚pg>53666662' ��jmnooooZ,ùééÑÈÉËËÒÎÕäìòúÿ‚ÿþþ—”‘‘‘‘›Äô%3211/)"##&þ„ ›¢¶ÐÝÝ«¤Ÿ–€Gÿoÿlÿkÿjÿlÿlÿlÿx…ÀÔâââââàÙÌ·§£“€Aÿuÿuˆ˜£®¾ÓáâááááÓÄ‹Iÿ~ÿpÿkÿkÿkÿjÿjÿkÿrÿ|Ž@ÿL�…‚  ƒÿùöøøõ÷ü†þþ‚úùüøöüÿÿÿÿ „ �‰¢ÂÔÔ·š�‚Jÿvÿ]ÿIÿEÿDÿCÿEÿEÿEÿTÿe ¯ÈÚÚÚÚÚØÐ¿¤�ŒDÿxÿ]ÿPÿPÿh �‘�°ÊÙÚØÙÙÙÈ´Kÿmÿ\ÿJÿDÿDÿDÿCÿCÿDÿLÿZÿq€@ÿ���‚  ƒÿ÷óööóõûƒÿ�ýý‚ù÷úöôûÿÿÿÿ   „?)&"%'+19<<<;;;82 $&,4883-&! /5:<<<===;6.I�†ÿÿ‚þüýýþüÿ„ƒÿ�ÿÿ‚ÿýýúýýûûþ„.       ýýÿ‚ �‚ú÷ùùûûûõïñ÷üþü…ÿÿýý�öúúüÿÿ„?îô      ýïêìñìîóñèáßßáäääëïïñðìììììíôú÷ñ�ƒâàááâââàæô ýú „  ÷ôõýöññõõùúþøþ„?ÿ $*&$ ùõêÞÚßãßåèßÙÓÏÑ××××ßßãääãããááãéôýê��êçééëëëçëù  ƒþýþÿùôõööùùôíìëõþ…? '#!(18750,,,$&# ÿùüíÝÙÞåßãæÜÖÏÍÎÔÓÓÓáâãççåååææèïûø��ÿÝÚÛÜÞÞÞÙáôþÿþƒ$&%"""$üûñëíôô÷ûþôüùÿ„÷øûýþþúøùûúúöòóòóóó÷ûþù…ÿüûùøøõôóõíí÷óû‚÷öõôóóóóòòññôöò��‚ ýüþÿÿÿýþÿÿÿ�„ÿþýýþƒûþÿÿþÿÿÿÿ…?þüûþöóõøõÿúöööõöøøûûûûûûù÷ùü      ��ÿÿþ   ÿûúþüûýý‚øùùøøø÷øùøùûþüþÿÿ„€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ë�…€å�…€Ö@ÿL�…€È@ÿ�…€%I�…€�…€ñ�…€òê�…€÷ø�…€ò�…‚�…€ €`@`½@@ À@ Àà`À@`À@à`½À@`½À@à`@@`½@@þHI7I�ï�ïƒúA‘”q@‘�ß� ߃óæ�ðß� �øùýú�ý�ýƒÿÙÛæÜ��ƒ�ÎÏÜÏ�ÿ�ÿƒ�ÀÂÒÂ�ÿ�ÿƒÿøøúø��ýƒ���ÿƒ€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ñ�…€Ó�…€ä@ÿL�…€Ö@ÿ�…€)I�…€÷�…€ÿñ�…€úê�…€ø�…‚ò�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ß�…€°�…€ž@ÿL�…€˜@ÿ�…€/I�…€�…€ñ�…€+ê�…€-ø�…€ò�…€ÿ�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ë�…€Î�…€Ï@ÿL�…€Á@ÿ�…€I�…€ÿ�…€ñ�…€ýê�…€ø�…€ò�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ø�…€Ü�…€«@ÿL�…€ @ÿ�…€/I�…€ �…€ÿñ�…€ê�…€ø�…€ïò�…€å�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ñ�…€Î�…€ª@ÿL�…€”@ÿ�…€%I�…€ �…€ñ�…€ê�…€ø�…€üò�…€ù�…€ €@@“@½@¬@ À±@ Ààz@À@@À@à|@½À@}@½À@à}@@@|@½@@?ëðîðù öì'óÚȼ¸¸···Íèú ÷êË´±±±±±Êëü0?DAö�€ ‚þüúÿþþþúúùúúý ‚CCC>2 î×××ûîîæßм¼¼Å×õ „#ÖÜÙÛæñ &000000.,--.///111+ AZï»›‡Dÿÿÿ~ÿ~ÿ~«ß÷ØžEÿwÿtÿsÿtÿtÿt¨ë ?gB„�‰€ú�€!‚ùíåææçæäâßßÝÞÜßéîóûþ‚vvvmV(ôíÇ¢¢¢ëÝÜÓÉ«‹‹‹˜µë„ÞäãÕ°‹UÿmÿUÿOÿOÿOÿPÿNÿLÿWÿiÿrÿrÿ_ÿMÿMÿMÿKÿJÿIÿNÿ[ÿr„³³ŒIÿzÿ`ÿQÿIÿIÿLÿNÿNÿNÿn•¥¤”Hÿÿ_ÿNÿNÿNÿPÿPÿPÿk“£¿ÔãçÝ@ÿ)�€$ ‚ …   ‚1„ÕäßΠWÿqÿLÿ+ÿ!ÿ!ÿ!ÿ ÿÿÿ&ÿ;ÿIÿIÿ3ÿÿÿÿÿÿÿ ÿ2ÿKÿYžžKÿmÿUÿ4ÿ!ÿÿÿÿÿÿÿDÿtˆˆJÿtÿYÿ1ÿÿÿ ÿ!ÿ!ÿ!ÿHÿv�±ÌÞåÔ@þð�€L9‚ üöûööø †ÿü ööööööû ‚2R„?  /;EGGGA:76899AHHHHHHGC:2/7@FIIIHHH:+%%,16;?CGGG;,% V�€òôú‚üùùðÝÖãôýþþýú÷ôòñöüþ…ÿýøõóòóùþþþþþþøíâæóûýƒüôì„?ùóôù#(''''((""&&&''('$)0676555& .677666& ýñèäì9�€Ùâô‚úöùõôùüú÷øøöõõóññöûÿ‚ùùùøöøü÷ðîõûûûôôôøûýùûþíÚ„? ÿ  )ÿ ,6>AABBB5#0BCDEEE3#òçàì�€¸Íî‚ýúìåéüüþûùîìö‚ÜÜÜßçõ ñññòú%%% èË„=   óìììëíðîìïïñðððîíïõü ìæ "+478:::**99:888%ÿëÛÌÅЃ€Æ×ñƒ %&''%!! ‚äääéó '%,555  ëÊ„= íæææææééççèêèèèææèéîùäÛ )4=AEHHH3ü3GGIKKK, þäϼ±Ãƒ€”¼ì‚! ‚××רÞó#(333  #(((#ئ„?ý÷ñîîîîñóóóòôôñïïïîíîðñôøùøõõõõõööõõõøúûùøôûýùöööøúûûûýþüì�€‚þüƒ ûö÷úþ‚úúúûý „=÷üúüþüÿ ýü úöóïëêèèèèðøüþøùùõòîéééñüƒ€ƒÿýüòññòòóøüüþ‚ úôñïëëëöööüø÷õõõõü „€ €)@@2@½@@ À@ Àà)@À@)@À@à)@½À@)@½À@à)@@@)@½@@ýïóþòõû5OB>BJJSN�€ÁÁ� ÊÛñûþÿÿÆÆÊÑÔ„ æÍäþçÐÓÚëQ@…nmzB‰Šœ€@…�€ŠŠ� š»äøþÿÿ””›§¬„ÚÚÚÚÚÖ̾­££¹ÐÚÚÚ£�Ž… ÄÂøùü°ŸŠAÿ}ÿ}˜µÂÂÊ��ýþ…ýþ%%%�Ž…ùûøõø÷øøùøõòôóïêéêò�€� øùûþ þ„úûùþøóêÙËÓ×ÔÍÍÉÇ�€""� .úý!!„ôú÷ðóóûþö寲¸»¸°­«±�€� ú÷öúþ „ üéɳ»¿º¯«©œ�€))� K&õú//. „þúøúûüúûûø�€�ÿ�„ ! "#$% �€õõ��ôôõøþ„€ €;@@M@½@3@ À5@ Àà3:@À@;@À@à;@½À@;@½À@à9@@@;@½@@I3ýýýÿìòÿùùOOJ=Baa]YYYTQUF�� þÿ(/ÁÁ… ÁÁPP>+*3899ƒ@… UýóóóöûþÓëììM££‹rеµ´´´´ªžœ€|�� ýþ0IYŠŠ… ŠŠSRPQR`ikkƒ�§ºÈÐÐÐÑÓÕÔÿÿÔÔÔÔ¡¡ÔÙ×ÓÑÑÑë�Ž�‚ýöîîóý‰øëêø†ƒ�¨¹ÃÃÃÅÈÊÈþþÈÈÈȇ‡ÈÏÍÈÅÅų•ƒ@ÿp�‚ýóéæï ‰íäö†($&&#(.�‚ý‰  †üþýóóýÿôçèîóóóùþúþ�‚ ü… ËÒñ ý÷øøƒ ÓÝíûÿþÿ�ÏÏÖÜ×ÁÁÆËËËÎÑÎÒ�� úþúõ÷""… ""ÁÁÒìõéâààƒ¾Õîúþþþþüûüöúú°°¿Å¶ª«­®®®¶¼·¾��  ÿ… àåóøöæßáჴÐð û££·À¬š›ž   ª±«º��  ))… ))×ÝçïòÜÒÓÓƒ ôöùýþþþÿ‚ÿøøôôøüùøùøøóðõô�‚ÿýûú … ÿûýÿÿÿƒ ýýÿ ! �� ÿþûûúþõõ… õõü  ƒ€ €D@@Y@½@<@ À>@ Àà<B@À@D@À@àD@½À@D@½À@àB@@@D@½@@"ôM?I3ýýýÿìòÿùùOOJ=Baa]YYYTQUF�ÍÍ� þÿ(/ÁÁ… ÁÁPP>+*3899ƒó B�x… UýóóóöûþÓëììM££‹rеµ´´´´ªžœ€|�³³� ýþ0IYŠŠ… ŠŠSRPQR`ikkƒ"üü££�§ºÈÐÐÐÑÓÕÔÿÿÔÔÔÔ¡¡ÔÙ×ÓÑÑÑë�Ž�ðññð‚ýöîîóý‰øëêø†!ûûŠŠƒ�¨¹ÃÃÃÅÈÊÈþþÈÈÈȇ‡ÈÏÍÈÅÅų•ƒ@ÿp�ìííì‚ýóéæï ‰íäö†"-,($&&#(.�‚ý‰  †� üüüþýóóýÿôçèîóóóùþúþ� ‚ ü… ËÒñ ý÷øøƒ ÊÓÓÝíûÿþÿ�ÏÏÖÜ×ÁÁÆËËËÎÑÎÒ�8 8� úþúõ÷""… ""ÁÁÒìõéâààƒ"ÿûÂÆ¾Õîúþþþþüûüöúú°°¿Å¶ª«­®®®¶¼·¾�**�  ÿ… àåóøöæßááƒ" û·Ç´Ðð û££·À¬š›ž   ª±«¬�PP�  ))… ))×ÝçïòÜÒÓÓƒüêòôöùýþþþÿ‚ÿøøôôøüùøùøøóðõô� éé ‚ÿýûú … ÿûýÿÿÿƒ" þ! ýýÿ ! �êê� ÿþûûúþõõ… õõü  ƒ€ €@@ @½@@ À ` Àà @À@@À@à@½À@@½À@à@@@@½@@€HF�…€@�€|�…€ÍŽ�…Ó@ÿpƒA‘.ƒ€÷þ�…€ÐÒ�…€°¾�…€§º�…€òô�…€�…€ €@@@½@@ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€éF�…€Ù|�…€²Ž�…€›@ÿp�…€.�…€þ�…€ Ò�…€¾�…€-º�…€ô�…€�…€ €@@@½@@ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€F�…€|�…€¿Ž�…€¤@ÿp�…€.�…€þ�…€Ò�…€ó¾�…€º�…€ôô�…€ý�…€ €@@@½@@ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ûF�…€÷|�…€¾Ž�…€—@ÿp�…€.�…€þ�…€ Ò�…€ð¾�…€º�…€ô�…€�…€ €B@@\@½@O@ ÀR@ Àà=B@À@B@À@àA@½À@B@½À@àA@@@A@½@@!ØÛâåååççâ7?@???5!÷ÚËÇÆÅÆÄÁ¾¹Åö��� %(+.7@EEE2ƒñññù„¤³ÆÎÎÎÔÕÎE€�Ž���wG꫉Bÿ}ÿzÿ{-.Eÿzÿvÿpÿhÿaÿ{€ð��#�;@EMe}B†††c2ûƒææãñ„•¯ËÕÕÕ×ØØØÙ×ÕÕÕÈ®—Mÿ}ÿaÿTÿSÿSÿRÿQÿSÿSÿSÿSÿWÿdÿ~€@ÿ&��üôïïùƒøðíöý‚ÿþþ„øøûÿ„@ÿxš½ÉÉÉÌÍÍÍÎÌÉÉɹ˜Nÿ{ÿZÿ6ÿ'ÿ%ÿ%ÿ$ÿ#ÿ%ÿ%ÿ%ÿ%ÿ*ÿ:ÿ[€@þì��ûñêë÷ƒõëèóü‚ÿþþ„ööúÿ„!+ !*5AFHGFGGEEEC>5X��ƒ‚…„!&" $.8==?;-,88776.P��üõðñæâ� ÷ô÷ùùúùùùý ƒÿ„!çâàâââê÷#*+,.þÿ,+-/1'��ùíååÛ×� èââäâàÜÜÜáêóöƒÿ„!)#×ÑÏÑÐÐÜó1=AEBýû??@DF:��üöñîÏÂ� îãçèâÞÜÜÜßéÿƒ…!5,"'ÍÇÄÆÅÅÓð "=KRXRùøQQSXZJ��ùïéÛ¸§� æÕØÙÒÍËËËÏÝýƒ ÿ„!öùûüüüûûúóóôôôôôñðïïïîïðéêóôôõöõå��ÿ�� þüüúúùùùùûüúƒ…ïòõ÷÷÷÷øõýõëçãâå�çççæäç÷�‚�    ùƒýýÿÿ„€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ýö�…€Üð�…€Å@ÿ&�…€¸@þì�…€5X�…€.P�…€�…€ �…€�…€ å�…€ò÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€òö�…€âð�…€¾@ÿ&�…€±@þì�…€)X�…€P�…€�…€�…€ý�…€óå�…€ò÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ãö�…€Êð�…€Ó@ÿ&�…€Æ@þì�…€9X�…€P�…€�…€�…€ �…€øå�…€ó÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ýö�…€Åð�…€¾@ÿ&�…€±@þì�…€$X�…€P�…€�…€�…€�…€ûå�…€ö÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ðö�…€èð�…€ï@ÿ&�…€@þì�…€\X�…€)P�…€�…€î�…€î�…€Ùå�…€¬÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€áö�…€»ð�…€¯@ÿ&�…€ @þì�…€*X�…€"P�…€�…€&�…€(�…€øå�…€ë÷�…€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à @@@ @½@@€áÝö�†€»Üð�†€¯Ä@ÿ&�†€ ·@þì�†€*4X��ƒ€"/P�†€�†€& �†€(�†€ø å��ÿƒ€ëò÷��ÿƒ€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à @@@ @½@@€áãö�†€»Êð�†€¯Ò@ÿ&�†€ Å@þì�†€*8X��ƒ€"P�†€�†€&�†€( �†€øúå��ÿƒ€ëó÷��ÿƒ€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à @@@ @½@@€á¿ö�†€»”ð�†€¯Ñ@ÿ&�†€ »@þì�†€*#X��ƒ€"2P�†€8�†€&<�†€(@�†€ø å��ÿƒ€ëù÷��ÿƒ€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à @@@ @½@@€áØö�†€»Ñð�†€¯°@ÿ&�†€ ¨@þì�†€*'X��ƒ€"0P�†€#�†€&�†€(�†€øùå��ÿƒ€ëð÷��ÿƒ€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€äö�…€¾ð�…€—@ÿ&�…Aÿ{þì�€,X�…€!P�…€�…€�…€ �…€óå�…€ò÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€¿ö�…€”ð�…€Ò@ÿ&�…€¼@þì�…€$X�…€1P�…€6�…€<�…€?�…€å�…€ù÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€óö�…€äð�…€¹@ÿ&�…€®@þì�…€'X�…€P�…€ü�…€�…€÷�…€÷å�…€ü÷�…€ €`@@z@½@y@ À{@ ÀàL_@À@`@À@à_@½À@`@½À@à^@@@_@½@@0ÁÅÂÇÌÎÎÌûýü÷êѼØÛâåååççâ7?@???5!÷ÚËÇÆÅÆÄÁ¾¹Åö�ë‚ ùùûòíëë�� %(+.7@EEE2ƒñññù„°¹š£¬¯¯¬í»�¤³ÆÎÎÎÔÕÎE€�Ž���wG꫉Bÿ}ÿzÿ{-.Eÿzÿvÿpÿhÿaÿ{€ð�Ô‚ öö÷äÙÔÔ�#�;@EMe}B†††c2ûƒææãñ„NÿRÿRÿ@ÿ>ÿ<ÿ:ÿ9ÿ:ÿ8ÿ6ÿ6ÿ9ÿ=ÿAÿC•¯ËÕÕÕ×ØØØÙ×ÕÕÕÈ®—Mÿ}ÿaÿTÿSÿSÿRÿQÿSÿSÿSÿSÿWÿdÿ~€@ÿ&�ƒþù�ùûþÿƒüôïïùƒøðíöý‚ÿþþ„øøûÿ„Oÿ$ÿ$ÿ ÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿxš½ÉÉÉÌÍÍÍÎÌÉÉɹ˜Nÿ{ÿZÿ6ÿ'ÿ%ÿ%ÿ$ÿ#ÿ%ÿ%ÿ%ÿ%ÿ*ÿ:ÿ[€@þì�ƒý÷�÷úýÿƒûñêë÷ƒõëèóü‚ÿþþ„ööúÿ„0FFPPPPPPPPPPPPP+ !*5AFHGFGGEEEC>5X��ƒ‚…„0MNZWUUUTLOQQPRV&" $.8==?;-,88776.P�ÿ‚þÿ‚�ÿÿ�üõðñæâ� ÷ô÷ùùúùùùý ƒÿ„00.<60///!/;çâàâââê÷#*+,.þÿ,+-/1'�‚ÿÿþ��ùíååÛ×� èââäâàÜÜÜáêóöƒÿ„00'!!!!øúûý.)#×ÑÏÑÐÐÜó1=AEBýû??@DF:�‚þüý��üöñîÏÂ� îãçèâÞÜÜÜßéÿƒ…0'%]RKJJJ'BZ5,"'ÍÇÄÆÅÅÓð "=KRXRùøQQSXZJ� ‚ýûû� �ùïéÛ¸§� æÕØÙÒÍËËËÏÝýƒ ÿ„0ñðëëìííìééèìïïëöùûüüüûûúóóôôôôôñðïïïîïðéêóôôõöõå�ƒ��ÿ�� þüüúúùùùùûüúƒ…&ûûçëïðñïûîæïòõ÷÷÷÷øõýõëçãâå�çççæäç÷�ý‚�ÿþýýý‚�    ùƒýýÿÿ„€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ûö�…€Õð�…€Ã@ÿ&�…€¯@þì�…€,X�…€.P�…€�…€�…€�…€ å�…€ù÷�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€áö�…€¾ð�…€—@ÿ&�…Aÿ{þì�€,X�…€'P�…€�…€!�…€(�…€öå�…€ò÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€½ö�…€�ð�…€Ð@ÿ&�…€³@þì�…€X�…€1P�…€8�…€B�…€N�…€ å�…‚÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ñö�…€Ýð�…€·@ÿ&�…€¥@þì�…€X�…€P�…€þ�…€�…€�…€ùå�…€÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Õö�…€×ð�…€Ý@ÿ&�…€Õ@þì�…€KX�…€+P�…€�…€�…€�…€çå�…€×÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ëö�…€Þð�…€¼@ÿ&�…€°@þì�…€'X�…€P�…€�…€�…‚�…€ûå�…€÷÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Øö�…€Ñð�…€±@ÿ&�…€©@þì�…€(X�…€/P�…€"�…€�…€�…€÷å�…€ð÷�…€ €`@`½@@ À@ Àà `À@@À@à`½À@@½À@à@@@`½@@€Õö�…€©ð�…AÿRÿ&�Aÿ$þìþ€HX�…€IP�…:€M�…_ìå€Ý÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€âö�…€Ôð�…€¶@ÿ&�…€¨@þì�…€(X�…€P�…€�…€�…‚�…€øå�…€õ÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€çö�…€Òð�…€Ç@ÿ&�…€¾@þì�…€!X�…€!P�…€�…€�…€�…€ÿå�…€ö÷�…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ ×õH!#Þ4Q%�‚AA†›é@—8=¢R@Ÿ€-�‚Aƒƒ†«õõ¯­Aÿ_ÿ]§@ÿJ�‚†•òò™—Aÿ5ÿ2�@ÿ�‚† "#"@A$I�‚úú† ó �‚óó† ÛññêÚñ�‚Ü܆ Âêê$ßÇï�‚ÕÕ† '²åä,Ö¸ê�‚Åņ ÿýøõóðòð�‚þþ† ôþò�‚†€ €!@@0@½@/@ À/@ Àà!@À@!@À@à!@½À@!@½À@à!@@@!@½@@ÜöG&(÷@03ñC\ðI3�‚GG�GGƒ‚‚„ ê@’=BÖsFK·_@§Áôï@‡€6�‚A‰‰�A‰‰ƒAÿ ÿ „§ïï­«Iÿiÿoÿ0ÿ.þêþçÿ/ÿ)ÿjÿl­@þÒ�‚�ƒüü„�êê—•IÿAÿIþúþ÷þ¡þ�þøþðÿCÿE—@þƒ�‚�ƒûû„$""=:TUpqTV=;"z�‚þþ�þþƒ„ö #,,C3"6<�Œ„Øòñìüý%õã Ü�‚ää�ääƒ33„,Åóó"åAýÙ6 Ñ�‚îî�îîƒ''„7¶ïï+ÝQüÎD Å�‚ææ�ææƒ77„ùûõõòíêççàäìòõòß�‚öö�ööƒ„îýò üýåêûü÷�‚�ƒðð„€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ý3�…€6�…€¥@þÒ�…€†@þƒ�…€Iz�…€<�…€ �…€ú�…€þ�…€ß�…€î÷�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ý3�…€ë6�…€ž@þÒ�…Aÿþƒ�€8z�…€ <�…€�…€�…€�…€öß�…€ò÷�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€3�…€á6�…€�@þÒ�…Aÿnþƒ�€>z�…€<�…€ �…€�…€$�…€óß�…€ç÷�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ß3�…€º6�…€²@þÒ�…€Š@þƒ�…€8z�…€<�…€*�…€-�…€;�…€ß�…€õ÷�…€ €!@@*@½@*@ À'@ Àà!@À@!@À@à!@½À@!@½À@à@@@!@½@@õêõK%&ê>J?é J,�€�33�û�ÍÍ„æ»â@”BRZrD‹–––…hC/�¨Áâö„ �›¸ÍÐÐÁ£‹†Kÿsÿ_ÿVÿUÿWÿUÿTÿSÿSÿWÿdÿ~•¯ËÕÕÕ×ØØØÙ×ÕÕÕÈ®—‘Jÿ~ÿkÿ]ÿ[ÿRÿQÿUÿUÿYÿeÿ{€@ÿ&�   øøûÿ‚üôïïùƒøðíöý‚&.$� ƒ@ÿn€¥¿Äı‹NÿmÿfÿGÿ(ÿÿ$ÿ+ÿ*ÿ'ÿ&ÿ%ÿ*ÿ:ÿ[ÿyš½ÉÉÉËÍÍÍÎÌÉÉɹ˜Lÿ{ÿnÿTÿ>ÿ/ÿ-ÿ$ÿ#ÿ(ÿ(ÿ.ÿ=ÿX€@þì�  ýóý üõõúÿ‚ûñêëöƒõëèóü‚&.$� ƒ5.(%/18AEEDDEEEC>5+ !*5@GIIFGFFFB7X�üüüþþþýüüüüüüüúý‚ƒ‚�üüüüüƒ5!ù &,02310245652'ôñòòòòú(+6)&&&$#'�ýýþùù÷öööúû÷òøƒÿ�� õøûÿûùøøøäÎÈÖ�üýÿþýƒ5ÿýôîü(12*#&,0245,  ×ÐÐÑÑÑÚéøú #.þþýü �ùùøø÷ØÖÓÒÒÒç÷íÑÞúýûûûøõôóîê� ÝÝÞâÝØÓÓÓÈ¿ÃÒ�þóïóùƒ5  (54666879;=>BB2 ÒÏÍÍÌÌ×íÿ!38>ù �öööõõÞÝÛÚÚÚáèëêñüþþþþøïêéäâ� ùïèéâÝÚÚÚËÁÏë�C+ ýöƒ5 :LDLPOKHHLLOTT@)"$ÉÃÀÀ¿¿Ìè-BIOõý�óóóôóÏÍÊÈÈÈÛðõêî÷ûûôïðððèÞÙÌÁ¹� ãÓËÌÅ¿»»»­§¿å�H(÷óƒ5ààâçêèÐÈÓÛßäéïòó÷ùùúúúüõðïïïïïêãáäãããäãåêðîììðéëëéåãÎ�ÿÿüúúúúûþþûûûþ� óøúõòðððòôõó�ƒ5éð÷úùûøðëëëêéêêéëìèçåæíñ÷úúúÿ÷üõíèåâçûñø�  þþ�'6�  ýó� ƒ€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ç �…€×ô�…€Ã@ÿ&�…€¯@þì�…€,X�…€'�…€�…€�…€�…‚Î�…€ùø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ç �…€Àô�…€¼@ÿ&�…€¨@þì�…€X�…€'�…€ �…€�…€�…€ñÎ�…€ýø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ë �…€¶ô�…€­@ÿ&�…€—@þì�…€!X�…€ '�…€�…€#�…€-�…€îÎ�…€òø�…€ €`@`½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€ò �…€Åô�…ž@ÿ& ƒ@þì /Xü 'ýùöóæÎïø€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€É �…€�ô�…€Ð@ÿ&�…€³@þì�…€X�…€'�…€0�…€9�…€D�…€ýÎ�…‚ø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ý �…€ßô�…€·@ÿ&�…€¥@þì�…€X�…€'�…€ö�…€ �…€ü�…€íÎ�…€ø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€â �…€Ìô�…€¯@ÿ&�…€ @þì�…€X�…€'�…€�…€�…€�…€íÎ�…€÷ø�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ñ �…€Íô�…€Å@ÿ&�…€µ@þì�…€X�…€ '�…€�…€�…€�…€õÎ�…€ýø�…€ €`@ `½@@ À@ Àà `À@`À@à`½À@`½À@à`@@`½@@ ú­íú+w8+%�€>ÁÁ�Â??„í@ÿEÓì=%@ãV=)�€rŠŠ�Žvv„èEÿeÿâÿ\ÿÝÿ[ÿ:†âEÿ:ÿÚÿ1ÿÖÿ0ÿ† > BBCCP�� 3î%�€ø�úú„ D õú¼íõü�€ß""�!ÞÞ„ ]öü®ðö�€ã�ää„ wóú–ëó �€Õ))�+×ׄ ýýñþýïïüîïë�€þ�þþ„ øúÛ÷ù!ü�€ õõ�õ „€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ó%�…€ô)�…€Ð@ÿ:�…€Ã@ÿ�…€/P�…€%�…€ ü�…€þ�…€ÿ �…€ë�…€ùü�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ù%�…€â)�…€Þ@ÿ:�…€Ñ@ÿ�…€3P�…€þ%�…€ü�…€�…€ �…€üë�…€úü�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€õ%�…€Û)�…€¡@ÿ:�…€‹@ÿ�…€/P�…€%�…€ü�…€�…€ �…€øë�…€òü�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ó%�…€Ñ)�…€˜@ÿ:�…Aÿuÿ�€P�…€%�…€ ü�…€�…€" �…€þë�…€þü�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ø �…€Óò�…€Ö@ÿ.�…€Ç@þ÷�…€#U�…€&�…€ÿ�…€�…€�…€üî�…€öø�…€ €@@"@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ úéÍè;Ñ'P�þþ�AA�ƒè›æ@•49ŸO@¸€-�þþ�Aƒƒ�ƒÀ¦¦îðª¨AÿZÿV¼@ÿJ�€�†¯��éé‘�Aÿ+ÿ)ª@ÿ�€ �† %%%$CDI�òƒúú�òƒ "/! -�ûùù�óó�ûƒ &î-ýé�û÷÷�ÛÛ�ûƒ # Æïï)æÂï�ùùù�ÕÕ�ùƒ .ºíì6ß²ê�ö÷÷�ÄÄ�öƒ ùõûþøõòïìòì�ƒþþ�ƒ ÿøñûï �ƒ�ƒ€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ê�…€ù-�…€×@ÿJ�…€È@ÿ�…€&I�…€-�…€�…€ïï�…€ëê�…€ ì�…€û�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ê�…€â-�…€Ð@ÿJ�…€Á@ÿ�…€I�…€ -�…€ �…€úï�…€ûê�…€þì�…€ÿ�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€î�…€Ø-�…€Á@ÿJ�…€°@ÿ�…€I�…€-�…€�…€ ï�…€ê�…€ûì�…€ô�…€ €@@@½@ ` À @ Àà@À@@À@à@½À@@½À@à@@@@½@@ûØ-€©@ÿJ�…¹@ÿ@¾€KI@¾€-ûÿþïú êÿììþþÿ€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€Ì�…€±-�…€ä@ÿJ�…€Ì@ÿ�…€I�…€-�…€.�…€"ï�…€(ê�…€ ì�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@‚�…€-�…€Ë@ÿJ�…€¾@ÿ�…€I�…€ -�…€ô�…€öï�…€àê�…€úì�…€�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€å�…€î-�…€Ã@ÿJ�…€¹@ÿ�…€I�…€-�…€�…€üï�…€ýê�…€úì�…€ù�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ô�…€ï-�…€Ù@ÿJ�…€Î@ÿ�…€I�…€ -�…€�…€ÿï�…€ê�…€ì�…€ÿ�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ý�…€Æ�…€²@ÿd�…€’@ÿ;�…€?�…€ô �…€ÿí�…€ê�…€ ê�…€íÖ�…€�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ý �…€Äð�…€’@ÿ&�…Aÿlþì�€"X�…€)�…€�…€�…€�…€ôì�…€ó÷�…€ €@@@½@ @ À ` Àà@À@@À@à@½À@@½À@à@@@@½@@€ñú�…€È÷�…€™@ÿ4�…Aÿuþþ�€R�…€H�…€�…€ �…€�…€õç�…€ôú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ÿ�…€Ô�…€¥@ÿL�…€…@ÿ�…€I�…€þ�…€ÿñ�…‚ê�…€ ø�…€úò�…€ú�…€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€%�…€ã)�…€Ÿ@ÿ:�…€€@ÿ�…€%P�…€%�…€ü�…€ �…€ �…€öë�…€óü�…€ €”@@·@½@‰@ À‹@ Àài‡@À@‡@À@à‰@½À@™@½À@à†@@@‡@½@@/  ôùõùÿ7SGDGMNWSFJfb[P> ?LIECB).;6*.4;Ll@ˆ|y|C‚ƒŒˆ{C›—�…sUw�€:::97ÁÁ� ÅÙñüÿÿÿÆÆÊÑÔ�ÁÁE1 �:::97ÁÁ� ÅÙñüÿÿÿÆÆÊÑÔ�ÁÁE1 „  Óêì×ßçõU@‹tuJ‚��¢‹r‰À·¨“p5Cƒš‘… ~|Md}fQYaoQ�Ïîïü  ì:1" ꯀ@í�mmnlgŠŠ� šºâ÷þÿÿ””›§¬�ŠŠ@Œ a-mmnlgŠŠ� šºâ÷þÿÿ””›§¬�ŠŠ@Œa-ƒ"ýýéÙÕÕÒýýÒÒÒÏÆº§››°ÈÒÒÒ››ÒÔÔØàêö››‡Cÿwÿsÿsÿp››TÿpÿpÿpÿmÿdÿXÿEÿ9ÿ9ÿNÿfÿpÿpÿpÿ9ÿ9ÿpÿrÿrÿvÿ~ˆ”@ÿ#�  Œþþ„  Œþþ„ ƒ!üüåÐÊÊÆüüÆÆÆÂ¸¨‘��œ¹ÅÅÆ��ÆÉÉÏØåó��DÿjÿUÿOÿOÿK��VÿKÿKÿKÿGÿ=ÿ-ÿÿÿÿ!ÿ>ÿJÿJÿKÿÿÿKÿNÿNÿTÿ]ÿjÿx€@þê� Œýþ„  Œýþ„ƒ?$))!)) ))1899;));;; ?LIECB).;6*.4;Ll@ˆ|y|C‚ƒŒˆ{C›—�…sU\fA¹¯eeA»»€@ �€:::97ÁÁ� ÅÙñüÿÿÿÆÆÊÑÔ�ÁÁE1 �:::97ÁÁ� ÅÙñüÿÿÿÆÆÊÑÔ�ÁÁE1 Ð�Ї  Óêì×ßçõU@‹tuJ‚��¢‹r‰À·¨“p5Cƒš‘… ~|Md}fQYaoY�Ïîïü  ì:1" ꯩ¼lYº¹pp€@4�mmnlgŠŠ� šºâ÷þÿÿ””›§¬�ŠŠ@Œ a-mmnlgŠŠ� šºâ÷þÿÿ””›§¬�ŠŠ@Œa-¦�¦‡"ýýéÙÕÕÒýýÒÒÒÏÆº§››°ÈÒÒÒ››ÒÔÔØàêö››‡Cÿwÿsÿsÿp››TÿpÿpÿpÿmÿdÿXÿEÿ9ÿ9ÿNÿfÿpÿpÿpÿ9ÿ9ÿpÿrÿrÿvÿ~ˆ”Gþúþÿþüþ÷þÿþþþþþþ€@þÓ�  Œþþ„  Œþþ„ ì�ì‡!üüåÐÊÊÆüüÆÆÆÂ¸¨‘��œ¹ÅÅÆ��ÆÉÉÏØåó��DÿjÿUÿOÿOÿK��^ÿKÿKÿKÿGÿ=ÿ-ÿÿÿÿ!ÿ>ÿJÿJÿKÿÿÿKÿNÿNÿTÿ]ÿjÿxþºþ½þ¸þµþ¼þ»þ»þ»€@þ…� Œýþ„  Œýþ„ó�ó‡?$))!)) ))1899;));;; ?LIECB).;6*.4;Ll@ˆ|y|C‚ƒŒˆ{C›—�…sUeeA»»€@š�€:::97ÁÁ� ÅÙñüÿÿÿÆÆÊÑÔ�ÁÁE1 �:::97ÁÁ� ÅÙñüÿÿÿÆÆÊÑÔ�ÁÁE1 ˆ  Óêì×ßçõU@‹tuJ‚��¢‹r‰À·¨“p5Cƒš‘… ~|Md}fQYaoU�Ïîïü  ì:1" ꯺¹pp€@4�mmnlgŠŠ� šºâ÷þÿÿ””›§¬�ŠŠ@Œ a-mmnlgŠŠ� šºâ÷þÿÿ””›§¬�ŠŠ@Œa-‡"ýýéÙÕÕÒýýÒÒÒÏÆº§››°ÈÒÒÒ››ÒÔÔØàêö››‡Cÿwÿsÿsÿp››TÿpÿpÿpÿmÿdÿXÿEÿ9ÿ9ÿNÿfÿpÿpÿpÿ9ÿ9ÿpÿrÿrÿvÿ~ˆ”Cÿ ÿÿÿ€@þÝ�  Œþþ„  Œþþ„ ‡!üüåÐÊÊÆüüÆÆÆÂ¸¨‘��œ¹ÅÅÆ��ÆÉÉÏØåó��DÿjÿUÿOÿOÿK��ZÿKÿKÿKÿGÿ=ÿ-ÿÿÿÿ!ÿ>ÿJÿJÿKÿÿÿKÿNÿNÿTÿ]ÿjÿxþÐþÏþÏþÏ€@þ™� Œýþ„  Œýþ„‡?$))!)) ))1899;));;; '1@„z00A††€k�€:::97ÁÁ� ÅÙñüÿÿÿÆÆÊÑÔ�ÁÁE1 Ð�Ї  Óêì×ßçõU@‹tuJ‚��¢‹r‰À·¨“p5/BAòß@?Aöö€@º�mmnlgŠŠ� šºâ÷þÿÿ””›§¬�ŠŠ@Œa-¦�¦‡ýýéÙÕÕÒýýÒÒÒÏÆº§››°ÈÒÒÒ››ÒÔÔØàêöGÿ\ÿaÿ^ÿYÿaÿ`ÿ`ÿ`€@ÿ5�  Œþþ„ ì�ì‡üüåÐÊÊÆüüÆÆÆÂ¸¨‘��œ¹ÅÅÆ��ÆÉÉÏØåóGÿ5ÿ8ÿ3ÿ0ÿ7ÿ6ÿ6ÿ6€@ÿ� Œýþ„ó�ó‡)$))!)) ?@A@@AAAR�üüüýýü�„üûüüüüû�û‡)ôò÷úúúÿûúþÿûûúù÷ø÷ôðîï÷øððïíììð ýþ ûû �úòòôôñ� ûûþ þ�þûúú‹)ñééëíîýÿ÷öúôðè×ÇÎÑÏÊÉÅÇÎÌÀÁÁÆÐãêã¶½åä´´Ç�ùÙÙÚÚÙ""� 3ùü!!�""éîôöøù�‡)ìæëðóóÿùüøòæÏ»Áÿ¸µ³ºÀ¹°±²µÀØãÞ—œÞß••±�÷ÚÚÜÛÙ� 3úôù �ôûýûøö�‡!ìäéðôôýÿûòãÅ­µ·²©¥¢«³«Ÿ ¡§·ÕÞÕ@ÿ|„Ö×Aÿyÿy€œ�òÉÉËÊÇ))� K'öú//. �))ðôöõòñ'�'‡ÿ�#ÿÿÿÿþýüøôõõ÷ø÷øôõøõõ÷ùý÷ôìïóòëëé�����÷úý � ‡) ÿþ  "" *+ **� õõ��ôôõøþ�õõ�‡€ €M@@b@½@C@ ÀC@ Àà;J@À@J@À@àJ@½À@N@½À@àJ@@@J@½@@!  ôùõùÿ7SGDGMNWSFJfb[P> 00A††€e�€:::97ÁÁ� ÅÙñüÿÿÿÆÆÊÑÔ�ÁÁE1 ˆ  Óêì×ßçõU@‹tuJ‚��¢‹r‰À·¨“p5@?Aöö€@º�mmnlgŠŠ� šºâ÷þÿÿ””›§¬�ŠŠ@Œa-‡ýýéÙÕÕÒýýÒÒÒÏÆº§››°ÈÒÒÒ››ÒÔÔØàêöCÿkÿjÿjÿj€@ÿ?�  Œþþ„ ‡üüåÐÊÊÆüüÆÆÆÂ¸¨‘��œ¹ÅÅÆ��ÆÉÉÏØåóCÿKÿJÿJÿJ€@ÿ� Œýþ„‡%$))!)) TUUUf�üüüýýü�„üûüüüü‡%ôò÷úúúÿûúþÿûûúù÷ø÷ôðîï÷øððïíììð ûû�úòòôôñ� ûûþ þ�þûúú‡%ñééëíîýÿ÷öúôðè×ÇÎÑÏÊÉÅÇÎÌÀÁÁÆÐãåä´´Ç�ùÙÙÚÚÙ""� 3ùü!!�""éîôöøù‡%ìæëðóóÿùüøòæÏ»Áÿ¸µ³ºÀ¹°±²µÀØÞß••±�÷ÚÚÜÛÙ� 3úôù �ôûýûøö‡!ìäéðôôýÿûòãÅ­µ·²©¥¢«³«Ÿ ¡§·ÕÖ×Aÿyÿy€œ�òÉÉËÊÇ))� K'öú//. �))ðôöõòñ‡ÿ�ÿÿÿÿþýüøôõõ÷ø÷øôõøõõ÷ùýóòëëï�����÷úý‡% ÿþ  "" **� õõ��ôôõøþ�õõ‡€ €d@@b@½@f@ Àh@ ÀàRf@À@f@À@àf@½À@f@½À@àd@@@d@½@@1þýôìçéìïî$$íìêçç)üöíêèèèý-8?CFHHH9� þþ  þƒ �þþôôùþ00)"ðãåÚÏÏÏÔàò  )0ƒ1ÞëøûûûøøøúöçÖij±¶»·33¸µ°°À0 äÕ̾·³³³Ü$IaotvyyyX��þýÿ‚ƒîîúZZF:0ùãÞæ¦¦¯Äæ $.IZƒ1Üí þìÜɵª¦§§Ÿ §¥¥¨¼ÚÀ²©¤ŸŸ   »Úëþ ôŽ�/ÿøñòüüüþ  ùóòüƒ0Òç  þæÒº “Ž��…†���’ªÐ¯�’Œ†…†††©Ðåý  ñ@ÿp�/ÿöíîú ûûþ  øðîûƒ1üüüüüüþ"$$$'&$%%# #&&'&&& ÿüûûüüüü.��†ÿÿ…‡ýúý„ÿ„1ú÷õôôôööõôöú   ÷ úôïíéçåæææî�/õõôïìîïòòóôõõõïî÷÷õõõõøøûõñððóôþøúúúúúø÷õõòôóòƒ1øø÷øøøùúùõöú  òð ßòöþ þïçߨÕÓÏÏÏÏ×�/ýýúïèìñöøüýÿÿÿøóööýýýýýààÝßäûùñæåäàƒ1þÿÿÿÿÿ#,&! øô%ï $),,,üðá×ÑÏÍÍÍÍÜ �/ôôóóòôôùøùüþþþöóüüþþôôúúûôÜÜÜßáõùñééá܃1 ýþþþüý,80,*(õò%&(/(ì#.5:::ýîÜÏÈÅÁÂÂÂÔ�/ïïîìêìñøöøüÿÿÿôñýýýýïï÷÷ùïÍÍÏÒÔï """÷èÜÝÓ̓1 þÿþþýþýüûöøþýýþûúúúùûùúúúûýþÿþþýþþþþó�ƒ ýýÿþ� ÿ�ÿþüƒ1ýÿÿþúòîñóóóõôóòôú÷ôòïïïïø û� ƒ�  üùüú÷÷÷÷ùÿ ƒ€ €d@@b@½@Z@ Àe@ Ààdd@À@d@À@àc@½À@c@½À@àc@@@d@½@@0  #'''(*+)&!øóðíìììó09=@AEEE6�.ýý ÿýûýþþþûøôõúÿý(($ ÿøìèáÙÕÕÕÙãôÿ (ƒ0 ÿý)0003550)!+à̽º···Æê ,Thrwy}}}[ � þþþ ƒþ÷÷üüûüþNNF3÷ãÚ˺²²²»Íì '=Nƒ0ÌâúûçÑ»¤›››š™šœ¤¸Í¸£›š™™›››¤ºÐäûí��ÿÿü÷ðòù†  � ÿ †ùóñûƒ¾ÚøúàÅ©Œ���€Aÿ~ÿ‚Œ¦¿¥‹€Bÿÿ~ÿ~���Œ¨ÃÝùè@ÿq�ÿÿüôìïø† � ÿ  †øãíùƒ0 ÿÿÿþþþþ %)))+++*&&*+,,)))( ýýýýÿÿÿ.�.ÿÿÿþþþþþþþýûùùüþýþÿÿýýþýþþûø÷ûÿþýƒ0ü÷òòòòôôöóñóüü  ûôíéêêëèèèï�þþÿýþýÿÿÿþüüþøøøøûÿ�þÿüüþûøƒ0çèëîîîîðóðëéíëèæææåãáãåèèñúÿøíãÚÖÕÒÑËËË×ð�.ÿÿü÷õôùþ þýûüÿêêëîöþ ûýðíêƒ0æåêïïïòóõíãåòñíêêêéèèìðîéùïáÐÈÆÅÄÀÀÀÐê� øøûûøøüüööû‚ ýûÿÿýüüøääåéòü üôîðéäƒ0àßåêêêìïñêÞàíìçãããáááåêçã÷ ëØÃº·µ³¯¯¯Ãä� òòõõññ÷ùóôú‚ ýúþÿûùþü÷òÕÕÖÜêù ùëïäÜÕƒ€)þýÿÿÿýþÿýûøúûûùùùøùøúýûúùø÷÷÷ùùùøûÿ‚üö�.þûþÿÿüüüýƒ0   ûø÷õôööööý�. ÿýù÷÷÷÷ûÿ ƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ à´:`³ííþ�ƒJJÃÃÈCÿk�1·�êæ�ƒA��‘‘ƒáFÿeÿkþðÿÙþ÷ÿdÿd€@þæ�…ììƒÙFÿ<ÿDþ©ÿÏþ±ÿ;ÿ;€@þœ�…ææƒ >@½À@B@½À@àA@@@B@½@@ òò &&%%%  ùæÜÛÜÚÛÚØÙÙäô �� #(+++  ƒõõøý‚þìáƒÎÍE€Š‹ŒŒŒwH!쬉Bÿ|ÿzÿz--Cÿyÿvÿpÿv‚­â#X`x@€€ð��.2BJb{B†††b0ûƒ ææõÿãÖƒ ÙØØÙ×ÕÕÕÈ®—Lÿ}ÿaÿTÿSÿSÿRÿQÿSÿSÿSÿSÿYÿh„ž»ÐÑÕØ@ÿ*�ƒøðíöý‚ÿþþ„øøþ‚ûõò„ ÐÍÍÎÌÉÉɹ˜Nÿ{ÿZÿ6ÿ'ÿ%ÿ%ÿ$ÿ#ÿ%ÿ%ÿ%ÿ%ÿ,ÿ@ÿd„¡ÆÎÊÏ@þò�‚õëèóü‚ÿþþ„ööý‚þñîƒ !*5AFHGFGGEEEEB;4#V�ò‚‚…ƒþòƒ ùôôõõõøý  õðëúù'�ÿ� ððïññòñññþƒ ÿûúÿƒ þûúüüüÿ üøñãÿþ�ø� ñïïôöøööööõôñƒþþùû‚ëèþøƒ ×ÔÒÒÑÑÜò0=BECýü@?@<6$ íÓÍÎ×�‚ ûñêëåàÜÜÜàëƒýøüüüûü… $(ÍÊÇÇÆÆÓï FÕÍ �„$$„ ïïQYÄ»�„))„ ëëõõøøí�„„ ÷÷æãú�„òò„€ €p@@’@½@�@ À“@ Ààjo@À@p@À@ào@½À@p@½À@àm@@@n@½@@7þòçäääàßÞàãìú  ÷ßÏÆ¾º·³³³¼Ôíÿ(29=?CDDD9 ÷��  ÿþÿ‚&ýöíçéôýFFD>.ñÚÓǽººº¼ÂÒì '-9CFƒøìßÚÚÚÔÓÓ×Þéøý檅Gÿoÿ`ÿXÿUÿNÿNÿNÿg¤Ü FkH��˜š ¢¢¢†Hî��   ‚ þúñéêðøööúýB……�uX'îȸ›�Cÿ{ÿ{ÿ{ÿ ‹¨Ù %=He@…ƒ@ÿv ›Å××××Ù×Õͼ›€Zÿbÿ:ÿ"ÿÿÿÿÿÿÿÿÿ/ÿVÿvÿVÿ1ÿÿÿÿÿÿÿÿÿ%ÿNÿv •»ÐרÙ×ÖÖÖÖÄ›@þê�‚öéêóýüüþ‚ ‚   ‚ ÿüûýøïëì÷ÿ„AÿKÿ| ´ÌÌÌËÏÎËÁ«‚\ÿaÿ:ÿþèþÛþÛþÛþÙþÕþÖþ×þßþ÷ÿ%ÿQÿ)þúþáþØþÖþÕþÚþÛþÛþÛþîÿ"ÿTÿ{ «ÄÍÎÏÌÊÊÊÊ´@ÿ€@þ¡�� þðßàîüûûþ‚ &%‚ ‚ þûúüôæâãóÿ„78()4FY^^^^_``_\TE8BQY^```^^^YH8+)p��  ƒ ÿúõõúÿþþÿ‚ÿÿþÿûøøüƒ …€6  ÿþûúúúôööõ÷úý   ýúúüýüþû÷÷÷ú �� ÿöúý ƒ% ôìî÷þþýùúý  ööùýþƒ7 "!"# )�€õô†! �€†1>‚�€3!ý†T_+&+#�€2þ†hx916-�€I0†øùþýøïïò�€†ßÛîñïþþò�€ìô†€ €b@@}@½@t@ Ày@ ÀàS`@À@b@À@àb@½À@b@½À@à^@@@b@½@@0öúùþÏú¹»»»ÄÒØÜäçæõüU[]\\c-�€",+ úçÙÕ˽¶¶¶µ´³øúý‚þûùø÷÷õïåßÝÝùý)(KK„àçæëïìä–…EÿnÿaÿZÿZÿZÿp›¼ÁÊÊÂÜæú $$$#"!"'/5E�•¢¦«·J-�€ !':HF%äò�…Eÿ{ÿ{ÿ{ÿzÿyÿwõøý‚úñçãâáß×ÊÃÃÇêò=QAˆˆ„ÖÖÕÑȵ¦IÿPÿDÿ4ÿ*ÿ%ÿ%ÿ%ÿ9ÿ`ÿ|†¤ÂÏÏÅ«�ƒLÿmÿJÿ1ÿ$ÿ$ÿ$ÿ#ÿ!ÿ!ÿ+ÿ;ÿOÿXÉ×ßÙÔÔAÿ!ÿ!€@þü�� ûùûÿ! Œ   ‡ÌÌËȾ¥�Jÿÿþöþîþëþëþëÿÿ0ÿUÿcвÃ÷—NÿvÿfÿIÿþüþëþëþëþêþèþêþöÿ ÿ ÿ,³ÃÏÏÎÊAþçþç€@þ¸�� ûúþûü‹ÿ&" ÿþ†0$GKRVXXXPA51&"-2>LVYYYYZ]YQGDZZi�� ÿþÿúóôûþ�þüøùüÿýüý�üüùú‡€-þþùôùþþýýøóñûûûüý íèéïðòüýƒ€ù ÿü öåæý ‚üùøþþùòü  óêñùù„0 MY`_]]]UG@:+  (****,-,+(%$ßÚÚÚØÚ%-'�€óüñïüþ %%%')*‚þõöúþ õà×ÚÚ„088FWfffS1#ú÷þ åÖÓÙØÒ �€î ÿûôðÜÒå #&‚ þþþý  üñøáá„0'*+($$(T`ow|||h@! (1( ðÛÐÑÎÆ '�€òñöùüý &))),26 ‚ ÿý!"$úÔÔ„‚-þýÿýüüýþþþÿÿþþøôô÷÷÷ñêççéðóø÷÷ø÷öõöô�€ÿüüÿÿÿÿþ ÿ„ìÎÄÚòûûüúøùüþûû„0ööõñîñöêåÝØ×××âñ÷÷öôòöù ÿù÷÷÷ñìéìòþúøò�€ÿýýóôôõõõôñðýþÿ‚ýúùüìÓÊàöýýþ  „€ €„@@¢@½@�@ À¦@ Ààn@À@ƒ@À@à„@½À@„@½À@àz@@@‚@½@@? ôÜÚÚØØØçôöÚÖÔÓÓÓßõýöòò $155578;101444433550%��&FFFFFF=& ïÝÝÝ!!!øóæÞÐÁººº¹¸¸úüÿ‚øðîóüÿÿÿýúö÷ùúÿ„  ÿóí ö´‚Dÿyÿxÿvÿvÿvš¾Ýùîç²Eÿzÿqÿnÿlÿlÿl"‰¾ßÛÓÎÎéîÿ!08889:<778:6666555.�� E………………uJ  ä¾¾¾???0õíÕŦ‡Eÿ{ÿ{ÿ{ÿzÿzÿz÷úþ‚ùóó÷úýýÿÿùûúûýþ„ ‰”±ÍÖÖɬ’‰Iÿjÿ=ÿ%ÿ$ÿ&ÿ'ÿ'ÿ'ÿEÿg��Jÿ{ÿkÿGÿ+ÿ*ÿ*ÿ*ÿ*ÿ*ÿ@ÿl �—°ÊÕÕʱ—‹Tÿhÿ<ÿ)ÿ)ÿ)ÿ-ÿ.ÿ2ÿGÿRÿRÿ>ÿ&ÿ&ÿ&ÿ%ÿ#ÿ#ÿ+ÿAÿh€@þù�Š  …  ‹"*'‚ „Aÿjÿxœ¿ËË»–KÿvÿjÿCÿ þëþêþíþîþîþîÿÿ?ƒƒLÿXÿDÿþôþòþòþòþòþòÿ ÿFÿoÿ|›»ÊʼœVÿ{ÿmÿ@ÿ þðþðþðþõþ÷þüÿÿ$ÿ$ÿ þìþìþìþëþéþéþóÿÿA€@þ´�Š …$#‹+41‚  „?0+ "-0=OYYXXXXL>((5;KUVVVVVM<.*  +/=NVVVUUTKFFMXXXXYYVM=j�Šÿÿüøöû…ÿü÷ôõøûÿ‹þúöòïðùÿ�ÿýùúýþþÿÿ„?íñöúýýùñéæóûóêêßéöÿûðéîøþýýüóñññïîêõóòóõõõõõðéåèù��ÿýýúûýþþþþýúùû†þùøúþÿ‚ � õñ÷„€�:ÿÿ1DDCEEE3!  '?CEFFF9       ��&ÿýüÛÜÞßßßâìö÷øúñññóøûü !!!#%'‚ üøý öòø„? û÷?WYXYYY="ü4SWXYYYF     ý��&ÿüûÝßâäääåí÷öñò óóóóóôóú"$‚ ýûþþý�ÿþü÷ôìíö„?ôîHhkjkkkI&  MNNN__MNg�’ÿ÷øÉ»âÿöòóððóöæ�€øøö�ööïïööøø„-/<Ó$þö ýü�€ë�åå åå„== ±±,ñì÷ýòòù�‚ï�ääúúää†>>@Ϧ+ÜÖéñÞÞö�‚Õ�××÷÷×׆þÿ ÿÿù÷÷ø÷÷û�€þ� „ççûýýî÷�‚�  †€ €^@@u@½@q@ Àw@ ÀàJ^@À@^@À@à^@½À@^@½À@àY@@@]@½@@.  øèÞÛØ×××âü ýöø4$?UN=.0488898860#��FFFFFF?1 ôïäØÔÔÔÕÖ×�¸¸ ÿþ„ ùïé 汎Eÿzÿtÿqÿnÿnÿn ˆÃõçÖÑ×ç5kA”‰eQD:::::986. ��E„„…………w[2 ôëÒº±±±²´¶�Aÿxÿx 85222*„@ÿ{ˆ¨ÇÓÓōޅJÿfÿ?ÿ(ÿ ÿ ÿ"ÿ#ÿ#ÿ#ÿ6ÿd�“©ÂÏÏAÿ4ÿ4ÏмŒKÿsÿRÿ0ÿ$ÿ$ÿ$ÿ"ÿ ÿ ÿ'ÿ;ÿ_€@þô�Š  ‚…‚ „AÿXÿi‘¸Çǵ‘Nÿqÿeÿ>ÿ þðþåþåþèþéþéþéÿÿ<ÿoÿv’²ÂÂAþþþþÂëLÿnÿNÿ%þùþêþêþêþèþåþåþîÿÿ5€@þ®�Š ‚…‚" „.50$#/2?NWZZYYYYQ>.+#RR/9FTYYYZ[\YPAl�Žüø÷ûÿƒÿ„ÿƒþùõøûÿþþÿ„.òòôöùøýúñïóøýþýýïàãîûüúüýôôö ýóððððòïííïû��ÿþþüúúûûûùöòïþ �  õø„.ÿÿþúù $5>@ACCC7ÿ åÜåþ #��ÿþýÛÜÞßßßáæòý �##ùùúúúý ýöø„. ûõ7MVYZ[[[Iù âÛàõÿ ��ÿþüÞàâäääãçóþ �üÿûøû„.&# øñA[gjjnnnX$ø"&!áØßü ��ÿþûÏÑÕ×××Ùàïý $((()-/�,, ùðõ„þþÿÿþüýåÖØåêöþþþþ�õõýûûöô÷÷öööóñðçâëö�„ÿÿƒûïÙÈÏìÿÿÿÿÿþÿþ�ýýþþþüúùêÝ׿÷þ„.ôõ÷úùýýÿðàÙØØÙÛÛÛãõú÷öù÷ô  ýüüüüûûûüü÷õ�‚ úîðøþúöõõõõõó�óóÿÿÿÿÿÿþüÿ„€ €�@@¯@½@£@ À¨@ Àà}Œ@À@�@À@àŽ@½À@�@½À@à‰@@@�@½@@?" ÿ)37)+=JT]cb_VF75:>>>?>>;3),õëçåâââêÿ)DSY\_```V?%�� þ÷÷ü‚4ÿýû¹¹ººº¼ÅÚþýûûúEEB6 ïéÞÔÓÓÓØâòþ #0?Eƒ øôôôðîëéí÷ '4:;gG†›­¸¸° €bOCCCCDCC?4#0Ϋ—�‹‡‡‡�Ó9xG™§«±²²²˜_�� "#õôú‚þú÷Dÿ{ÿ{ÿ{ÿ{ÿ{�–¿44((///'  A��{f=ëáȳ®®®¸Ëèü,8Uv@�ƒ@ÿz�¸ÖèèèììèÛ˶œ‹ƒEÿhÿFÿ4ÿ4ÿKÿy ˆ£ÅÛæêëéãÌ Wÿ{ÿ]ÿ9ÿ(ÿ(ÿ(ÿ&ÿ$ÿ%ÿ,ÿ<ÿ^ÿ‡ÿiÿDÿ.ÿ&ÿ%ÿ'ÿ)ÿ)ÿ)ÿ8ÿa ‡©ÐãèèçåååÒ¨@þü�� þïöÿêÜãòŠüø÷ú�üý‚ ‚  †øîìø…AÿWÿp £ÊâââææàÒ¿¥ƒHÿmÿbÿ@ÿþþþþÿÿVÿi ‹¶ÑßäåãÛ¿‡XÿXÿ2ÿþïþïþïþíþêþìþõÿ ÿ6ÿgÿAÿþ÷þìþëþîþðþðþðÿÿ7ÿg ’ÄÜââàßß߯‘@þ¸��  ýêóÿäÒÛïŠû÷õù�ûü‚%‚ †öéæõ…?6-  )/2=KRRI71&  '5ETWWWYZZWOB1äÔÐÏÎÎÎØð2BMPQQQQF.�� ƒ  ƒû÷öéëéðü�7ÿýüüö÷öýCC:$ ýòæâââæñ#5CþíçàÜÑļ¼¼ÂÎáíòøûƒ2 þëßØØØ×ÖÓÔÕÔÔÕÖÖÖÚÝÝæñ÷õ'''()()+***)((((()' âœEÿvÿoÿmÿkÿkÿk…Áó!^Fƒ™Ÿ¡¡¡¡a ÑŠFÿfÿ`ÿ^ÿ^ÿ^ÿ^ÿw³åOuE‹�’‘‘‘v<ü��   üþ�% ‚ûôñíûüü�7ÿûùúôööý||mF$ íÔËËËÒç $*5:a|33 ùÛÕËÅ­‘ƒƒƒ�¤ÅÛßéí%3ƒ@ÿr’¹ÎÔÔÔרÕ˶¦¦½ÓÓÓÔÖÖι’cÿrÿHÿ ÿÿÿÿÿÿ ÿÿ0ÿ>ÿ>ÿ/ÿÿÿÿÿ ÿ ÿ ÿÿ)ÿQÿrÿKÿÿ ÿ ÿÿÿÿÿ"ÿMÿr ‘¹ÏØØ×ÔÔÔ¨KÿrÿJÿÿÿÿÿÿÿÿ#ÿMÿr �¸Í×ÖÕÓÓÓÁ—@þä�� üõêâçö�þòäêõ�ƒ� ‰  †øíéø… †ùíéòü„AÿLÿu§ÁÉÉÉÌÎʽ£ŽŽ¬ÇÇÇÈËËÁ§eÿuÿLÿþåþÕþÕþÕþÓþÐþÎþÝþúÿ ÿ þøþßþÑþÑþÑþÎþÌþÍþ×þñÿ"ÿLÿþãþÌþÌþÏþÑþÑþÑþèÿÿLÿs¦ÃÎÎÌÉÉÉ‘LÿLÿþäþÏþÏþÐþÔþÔþÔþéÿÿLÿs¥ÁÌËÊÇÇǰ@ÿ{€@þš�� ûòäÚàô�ýïÝãò�ƒ'�&‰ †÷èãõ… †÷èãîû„?C6#$$(/CX```aaa\TNNMWaaabcca[M9I[bbbaaaZH9-)9I[bba___YI9-*s�� ÿÿýüýþ�ÿÿþ�ƒþó÷öøü‚þýýýþ†þúúüÿ†…þüúüÿ†„?âíøûüüüûûýøúþþþþüþûøøüïãàààãåæèåßÞáâáááããàÛÛÞööóðñòòòòóñìëéêëìëëëëëöõòòôõöööõñíìêêèèçççççìé��ýùøýûöóóýÿùõðû‚þýýýúùüûöúýýýþ‡ûùúýý�ûû ýþÿ„?      0;=>>>>6#ìàÚÙØØØØî 4>ABBBB:&ïäÞÝÜÜÜÜåù�� þüýÿ÷ô÷ÿƒþöïú‚�7ü÷ÿüýââåí÷úÿÿ þ÷ññðçâõõ÷ÿ  þøõƒ?ÿ !%%!ùõõõöö÷ôïííðõøøøùùöðð÷5@BCEEE;! øßÓÍÌÊÉÉÉä ;HJLLLLA%üãÕÍÌÊÊÊÊÖð�� üùýþüý‚ òêú‚ûüÿþü�7ÿ÷ðö÷üóòùææçî÷ýü÷ðíïéæûûû  ýûƒ? #++" öõõõöö÷óéääéðôôôôõñèçô?QSUWWWI( óÓÀ¶µ²²²²Õ#HZ\_^^^P-øØÄ¹¸µµµµÅç �� úóóûúóñö�ÿøëãþ ‚   ü�þù�1ïçòÙÙÜçóü úóçãæßÙøøú$((((# üøƒ?÷öùþ" ÿÿ%0/ÿûûûù÷öûþþþúúúóêå×Ñáúêçóøþýúúúöüèæôùþýúúúüýú�� #DK) þÿÿ ;?0 ‚úôöÿöõüÿÿýùóåËÅÒè÷‚ûé×Úíüþƒ „ýñãçô� ÿÿÿÿ„?öññóööö÷öõòñññôõõõ÷÷ùùùýÿù÷øÿ úòòþòèåããäääèòûüóéãááâââæïúû��   ÿû� ýÿ‚ùôøöàÜìùý�7ýûù÷õîíòùý þõóùýþþýýýþ  ÿüùö÷÷õõõõ÷ü ƒ€ €�@@°@½@¥@ À®@ Àà}Œ@À@�@À@àŽ@½À@�@½À@àˆ@@@Ž@½@@% $ ôêáÛÜßèùÿÿÿ‚* %05777;=>?=7,+úëåâßÝÝÝèþ$;JTWY\\\T?%��GGFFFD;&ææííéééïûýþ‚#þøïèæíù --(õãÝÐÁ»»»¾Éàóÿ",-ƒ ÷ò ñŦ‘Cÿÿtÿtÿ{!Œ­ÊÜéééééééíø *4888<>AC?5#)ô´“…�Cÿ|ÿzÿzÿz”Íü'^G�–�¡¥¥¥�Y�� D……………jAÿÌÌרÑÑÑÙêô÷÷úóòù‚úðäÞÜâëü RRH5îÓȪ‹Bÿÿÿ …šÃæø7MRƒˆ�¬ÍßßÇš‹IÿpÿNÿ8ÿ-ÿ)ÿ(ÿ*ÿ0ÿGÿs ˜¶Úëëëíïîç×µ™‚Wÿ[ÿ=ÿ+ÿ+ÿ+ÿ'ÿ'ÿ+ÿ8ÿHÿ]ÿwÿŒÿjÿCÿ0ÿ+ÿ+ÿ,ÿ.ÿ.ÿ.ÿAÿj ŒªÏåíîìêêêÛ²@þü�‰ �‚ûðãèôýüþ‚ûø �$†ƒþüýöëéôþ„Aÿgÿq”¿ÖÖ¸Lÿ~ÿkÿIÿÿþõþðþïþñþøÿÿMÿ| ¡ÏåååçêèßÉŸZÿ}ÿcÿ1ÿ þòþòþòþîþîþôÿÿÿ/ÿQÿmÿBÿþøþòþòþôþõþõþõÿÿBÿm “ÂÝèéæäääÑ�@þ¸�‰ �‚úëÛáñüûý‚ù÷ �.%†  ƒýûüóåãñþ„?1.#*/:HOSWXWTK:+  *3COVVVXXVQKC7/=LSUVUUUUN�„��„��„�#�„�-�„�ò�„�ò�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@��„��„�@þü�„�@þ¸�„�i�„„„�'�„� �„�'�„�ô�„�ò�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@��„��„�@þù�„�@þ´�„�j�„�ù�„� �„��„��„�ö�„�÷�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@�!�„��„�@ÿ�„�@þ½�„�g�„�æ�„��„�ù�„�ö�„�û�„��„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@��„� �„�@þô�„�@þ®�„�l�„�û�„�#�„��„��„�ö�„�õ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@�%�„��„�@þü�„�@þ¸�„�i�„�Ü�„� �„�ð�„�ø�„�ý�„��„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@��„��„�@ÿ�„�@þÑ�„�a�„�ÿ�„� �„��„��„�õ�„�õ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@��„�ü�„�@þä�„�@þš�„�s�„�é�„��„��„� �„�ú�„�û�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@�%�„��„�@þü�„�@þ¸�„�i�„�Ü�„� �„�ð�„�ø�„�ý�„��„€ €y@@›@½@”@ Àš@ Àànx@À@y@À@àx@½À@y@½À@àv@@@w@½@@;ôæþòçäääàßÞàãìú  ÷ßÏÆ¾º·³³³¼Ôíÿ(29=?CDDD9 ÷�Û Û�  ÿþÿ‚&ýöíçéôýFFD>.ñÚÓǽººº¼ÂÒì '-9CFƒ"2FÀ¬øìßÚÚÚÔÓÓ×Þéøý檅Gÿoÿ`ÿXÿUÿNÿNÿNÿg¤Ü FkH��˜š ¢¢¢†Hî�Í..Í�   ‚ þúñéêðøööúýB……�uX'îȸ›�Cÿ{ÿ{ÿ{ÿ ‹¨Ù %=He@…ƒÖÖBÿÿÿv ›Å××××Ù×Õͼ›€Zÿbÿ:ÿ"ÿÿÿÿÿÿÿÿÿ/ÿVÿvÿVÿ1ÿÿÿÿÿÿÿÿÿ%ÿNÿv •»ÐרÙ×ÖÖÖÖÄ›@þê�†öéêóýüüþ‚ ‚   ‚ ÿüûýøïëì÷ÿ„ÐÏCþØþÙÿKÿ| ´ÌÌÌËÏÎËÁ«‚\ÿaÿ:ÿþèþÛþÛþÛþÙþÕþÖþ×þßþ÷ÿ%ÿQÿ)þúþáþØþÖþÕþÚþÛþÛþÛþîÿ"ÿTÿ{ «ÄÍÎÏÌÊÊÊÊ´@ÿ€@þ¡�… þðßàîüûûþ‚ &%‚ ‚ þûúüôæâãóÿ„;cd8()4FY^^^^_``_\TE8BQY^```^^^YH8+)p�…  ƒ ÿúõõúÿþþÿ‚ÿÿþÿûøøüƒ …;üü  ÿþûúúúôööõ÷úý   ýúúüýüþû÷÷÷ú �þþ� ÿöúý ƒ% ôìî÷þþýùúý  ööùýþƒ;þ/7 "!"# )@  %H[chkossse?û×ļ¹µ²®¬¬¬½å�üü�  øðìòù‚&üöôøôø××ÖÖÝï $*)))**#ðäáãÛÖ׃;üùôöüþÿÿÿÿþÿüüõðóøøøùø÷÷øúû÷ûüÿÿÿÿýýýýüþþÿüûúøø÷øúúúùø÷� úú ‚þþ‚þýþÿÿƒÿÿ� üûûþÿ� þÿüÿƒììùúúùùù÷øùúûÿýùý�þüùÿøîèãàßÜÝÝÝàíú ø�ýý�ÿûƒ‚ýýþÿ� øôôòññññðñóú ƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@„„„„�@ÿ�„�@þÑ�„�a�„„„�.�„„„�ÿ�„�ø�„�ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@„„„„�@ÿ�„�@þÑ�„�a�„„„�.�„„„�ÿ�„�ø�„�ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@„„„„�@ÿ�„�@þÑ�„�a�„„„�.�„„„�ÿ�„�ø�„�ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@„„„„�@ÿ�„�@þÑ�„�a�„„„�.�„„„�ÿ�„�ø�„�ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@„„„„�@ÿ�„�@þÑ�„�a�„„„�.�„„„�ÿ�„�ø�„�ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@„„„„�@ÿ�„�@þÑ�„�a�„„„�.�„„„�ÿ�„�ø�„�ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@„„„„�@ÿ�„�@þÑ�„�a�„„„�.�„„„�ÿ�„�ø�„�ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@„„„„�@ÿ�„�@þÑ�„�a�„„„�.�„„„�ÿ�„�ø�„�ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@„„„„�@ÿ�„�@þÑ�„�a�„„„�.�„„„�ÿ�„�ø�„�ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@„„„„�@ÿ�„�@þÑ�„�a�„„„� �„�ì�„�ÿ�„�ø�„��„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@„„„„�@ÿ�„�@þÑ�„�a�„„„�.�„„„�ÿ�„�ø�„�ÿ�„€ €$@@-@½@)@ À)@ Àà$@À@$@À@à!@½À@$@½À@à#@@@!@½@@áÛïþ²ÿ<ÿ<ÿÿÿ<ÿ<ÿàÿ<ÿ4ÿ4€@ÿ�ŒÝ݃Aÿ$ÿ#ÝÜJÿ$ÿ"ÿ"þêþêÿ"ÿ"ÿØÿ"ÿÿ€@þË�ŒÔÔƒOO DOOaaOOORRg�Œƒ)(òð!!ã(3/"�€üüî�ùùüüùù,,ƒ  ×ÑÌÔÙ×Ùâ�€Ý�ãããã33ƒ55 .ëåçíëë¾/LHî�‚è�ää‚ääXXƒ)) !ËÃÇÎË˱"E?Ú�‚Ý�×ׂ××A��ƒóôëìèêìë óóòê�€‚ýýƒêêúý÷ ìáã�‚ � ‚ Ü܃€ €}@@›@½@�@ À“@ Ààiy@À@w@À@àx@½À@w@½À@àv@@@x@½@@ðêèéìììû ûÜLKvA•�*vhehaG.' ÿ ÷ÛȽ¹·µµµÆáò'?DFJJJ=!�� %/-�,þ;B6)(# IIB3 ÷òßÒÐÐÐÔåù#2CIƒ íÛÖØØØØÔÉ´¢IŽŽªÇÒÓÓÍʳ|IA0$$$$$&*'ì³�Eÿwÿpÿmÿjÿjÿj‰ÂèVE…�“———|Bî��!.," �þ'6DMH>1+++ A��u[3 óêɰ¬¬¬µ×þ.;Yw@�ƒ@ÿ{ –½ÔàààÙʰˆCÿmÿeÿeÿ{Ÿ¼Ñ×Õη‘XÿsÿPÿ)ÿÿÿÿÿÿÿ"ÿ8ÿ^ÿ|ÿ]ÿ6ÿÿÿÿÿÿÿÿ/ÿ[ÿ| ŸÌáàÞÝÝÝÊž@þó��ÿúðæßâïüƒÿÿ‡" †  ‚ÿúöîææóþ„AÿXÿz«É×××Ï»šDÿiÿGÿ<ÿ<ÿW…ªÅÍÊÁ¤YÿtÿNÿ"þðþÜþÜþÜþÜþÙþÛþèÿÿ4ÿZÿ3ÿþäþØþØþÛþÝþÝþÝþøÿ0ÿZ †¾Ø×ÔÔÔÔ»…@þ­��þùëßÖÚêû‚ÿþÿ‡+' †!‚ÿùôéßßïý„;5* "1;>>5&-9L[]]]^^^[QA5AR[_^\\\\TC5' 'm�� ƒÿ‡þøò÷øüýÿ‡÷÷öûÿ‚ „;! ýû-õìëíîðû ,:@@@?@?;4)-=HLMLMMMB/#ôôõôôôü,��ÿ üõø�øïïò÷úþ�úúúúýþúù ûúƒ9éáùâã¶•š¹ËÏËÏâõù",257999. úëèçáááèùƒ�üõóõߎÇç�,çÊÆÝ÷õöøúúúþýöõñðçéõÜÜßæóþ! ýíçãÞ܃;  )0ÌÌÉÀµ­­³µÃßùùûýýýúúùö÷ý#07:;===1éÔÐÎÌÌÌÖï��ûôïñÿ ÿ‚  ý÷÷ûþ�ææçìø  üóðêææƒý -?ºº¸­ ––�ž­Ððôü‚ûûõîîõ1CMPSVVVE%ÿÝÄ¿½¸¸¸Ææ��ùîççíðïñ÷‚+  ÿÿðìõÛÛÞæö"()))*ýðìåÞÛƒ;  ÿþùùùüýúòðóóóôôôúúöøúûüûûûü ê��þýüûøö÷ùý‚û÷øøùùúûüüüþþõôóöûüüýþþþƒÿþýúùøûüüƒ;ÿü÷ø÷÷÷öôñîí"#!  þþÿøïëèèéèèèìôú ø��ûúüÿ‚üûüýÿþþþÿÿÿþýþ� üýúùöôõõõôú ƒ€ €|@@™@½@Š@ ÀŽ@ Ààjw@À@v@À@àw@½À@x@½À@àx@@@w@½@@ÆÆ›@ÿ|7‚œª­©¯Èáòüûûûüþÿ  """": çÏÊÈÄÄÄÑì4FPUVYYYH-�€ãĽÉÖ×Üãçççïðæèëóøýÿ‚ ûóðòêÚÏÒè//+úåÜ̼¶¶¶ºÈßóû -/ƒIÿ|ÿ|ÿ^ÿ?ÿ1ÿ.ÿ-ÿ3ÿ6ÿM„·¿ÐÜÜÜÝÜÚÖÙëþ%*((((,7L^õ¯Eÿÿvÿrÿnÿnÿn‰ÂðRyE�•—›››|Dî�€ïÙʽ³¸ÃÏÕÕÕçñçêìêãçô‚òßÒÔÞçëï÷QQH&ÿíϤ†Bÿ|ÿ|ÿ| ˆ¢Êçô 4MQƒ��…Gÿ`ÿDÿ1ÿ+ÿ-ÿ4ÿKÿq �²Ùéééêìëàʤ‡IÿlÿEÿ.ÿ"ÿ"ÿ"ÿ'ÿ4ÿNÿw•†Iÿcÿ6ÿ!ÿ"ÿ$ÿ%ÿ%ÿ%ÿ8ÿc †¥ÌãììéèèèÓ¨@þó�ŒûìÞáìöùüÿ‚ ü‚  †õéæóþ„ƒƒIÿeÿ6ÿþûþóþöþþÿÿKÿq žÏããããå䨼ŒWÿgÿEÿþ÷þèþèþèþîþÿÿ ÿSÿyÿfÿ:ÿþçþèþëþëþëþëÿÿ:ÿf �¾ÚååáâââÇ‘@þ­�ŒûèÕÙçô÷ûþ‚!&û‚ !!†òãßïý„;((1@LUWWTJ:-  %1;JUYYYVOD5+1?QZYXXXXP?1%  $m��ÿ† ƒÿýùöóó÷üƒÿýüùööûÿ† „;)5"þñòòòòïðõü',00068/û1==<===5"òèæäæäääï,��ÿþýüüüýýþþþþ ÿƒü÷øÿ  ÷÷öõõôöø ÿÿø÷ƒ9NphG4063"ÿúÿÿÿþý÷ñïññïïïïþ úÝï÷ ### ýïáÙÕÑÑËËËÖåƒ�9<$   ‚  !" ââàç÷#%%%%üòñéââƒ;--4@MUVPM@$  ÿöîëìììíìæÜÓðû*.0222(ûíÛÍÆÄÃÁÁÁÍâ��öðôúýüûüýýýùùÿ ƒ  úùýççãêü ùóòêæçƒ;??FTbkledV4  ùìéëëëðóíÙÃìý!:?AFFF8üèÍ»³°¯¨¨¨¹×��ñéîøüûûüüüüóïõù ‚  ÚÚÙåû%(((% ÿóêêáÛÚƒ; ÿþ  þÿ þúúúüÿþ  ê�€  þûþƒ  üþýÿƒ;ààáßÞÜÜÞßåòýþþþýýýýýý øîçææåååéóû ø��ýýþÿƒ þüúú þþüúùùùùúþ ƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ƒ„ƒ„@ÿ�„@þÑ�„ùa�„üƒ„û.�„øƒ„ý�„�ø�„ÿ�„€ €@@"@½@!@ À!@ Àà@À@@À@à@½À@@½À@à@@@@½@@ ×åЯÉ×ä.ƒ€FF¦¿�FF„Ùõµ@ÿu¿ÙÛ_{9ƒ€B……ÿU‹ �A……„½½AÿaÿaÂÂDÿcÿaÿaÿ ÿ €@ÿ�‚ÿ%&ˆ««Aÿ8ÿ8²²Dÿ9ÿ7ÿ7þÈþÈ€@þÑ�‚ÿ/0ˆ @@?@@dda�‚ñðˆ ()12ƒ€ûû÷ø�ûû„ :2BS=7/$*.�€ßß+ý�ßß„ 3Aéã ƒ€ää% ÷�ää„ ,"Ma.*"òé �€××6û�×ׄ þÿùúþ÷ññêéø�€ÿÿ �ÿÿ„ öùìçõ÷ù ûøÿ�€ ñü� „€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ûƒ„üƒ„@ÿ�„@þÑ�„øa�„„„ò.�„烄î�„�ø�„ ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@烄ûƒ„ @ÿ�„ @þÑ�„üa�„ƒ„.�„õƒ„ú�„þø�„ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@탄õƒ„ @ÿ�„ @þÑ�„üa�„ ƒ„ .�„üƒ„�„�ø�„ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@⃄ôƒ„@ÿ�„@þÑ�„ùa�„ƒ„.�„胄î�„ø�„ ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@݃„烄@ÿ�„@þÑ�„ÿa�„"ƒ„ .�„ƒ„�„ûø�„ùÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@惄ð@ÿ�„ë@þÑ�„a�„ƒ„ .�„ôƒ„ÿ�„ýø�„ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ƒ„@ÿ�„@þÑ�„÷a�„ƒ„ .�„öƒ„ �„ÿø�„ÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@惄탄@ÿ�„@þÑ�„a�„ƒ„.�„ƒ„�„ûø�„øÿ�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ƒ„ƒ„@ÿ�„@þÑ�„øa�„ñƒ„ÿ.�„÷ƒ„ó�„ø�„ÿ�„€ €o@@„@½@Ž@ À–@ Ààlp@À@r@À@àp@½À@s@½À@àt@@@p@½@@�ûöööïîïôû�)ýü  % ëÖÉ¿º·´³³³¸Îèÿ0;BFEINNNH7ƒ�  ‚'úóññõûþýýÿAA@9+öíãØÑÆ¿¿¿ÀÇÕíü+16>Aƒ ûêãããàÞßáæëòö! $ø½š…Gÿwÿpÿoÿlÿgÿgÿgÿy¯æEgzG‡��“™™™ˆVƒ�  ‚'þõêëðùþýýÿxxuiP#ýæÉ½©‘ˆˆˆ‹—°Ý÷DQ_qxƒ ˆ«ÑààààääâÝ˧ˆZÿaÿ<ÿ0ÿ0ÿ0ÿ0ÿ.ÿ-ÿ-ÿ/ÿ4ÿFÿjÿ’ÿsÿLÿ9ÿ1ÿ.ÿ-ÿ.ÿ0ÿ/ÿ/ÿ/ÿ8ÿ]‡¤ÇØßàâÞÞáááØ·@ÿ�� üðñú ÿþÿ‚ ‚   ‚ ûöôùîíø÷úþ„@ÿh “ÃÖÖÖ×ÛÛØÏ¸‹\ÿgÿ=ÿþüþüþüþûþùþöþöþøÿÿÿDÿlÿEÿþÿþ÷þöþöþúþþþýþýþýÿ ÿ>ÿo ’¼ÑÙÚÛÔÒÕÕÕÆ™@þÑ� ÿÿýòææñûøúý‚' ÿþþ% þüûýÞ×ìô÷ûþƒ81" )1@PTTTTTUSQKD9;DNTUUUTTTTTN?1% #a�� ÿüïü ‚ þú÷÷ùýú÷øýƒÿ‚ýúùùüÿƒ ÷ „6 ýøøøþüúôëæèð  ë÷  ÿõñððîôðçççäåƒ� õôþÿûöòòöû‚'þÿýÿüü÷òñ÷ôù  þéíõûüƒ8   ÿ &'''%##$'+,'÷/AIPUUUVVVR?*øèàÜÙÝÛÖÖÖÛé.��ø÷ÿ�þýýÿ‚�þþ�ÞÞÞàçõú÷"""#   îäâßÞƒ6õúþÿÿÿÿþýùû ýî%4üõîììùøúÿìͺ·¶¶¶¶ÆÕäòìÛô²²±±±ÁÙäâßÞÜêîöûüû   ƒ�%AA@@@@5  ùàààøíéæãÑ¿¿¿¾¿¾ûýƒýú÷øüÿþÿÿ�ýþý÷ûÿ„ øîë 變‚�€€€ª¿ÙòëÑ¢€Dÿ{ÿzÿwÿwÿw”ÂÛ×ÒÐÎæíü %..../.6,,1///.-,&ƒ�&xxwxxxe< êÇÇÇ777øâÜÎÉ­‘ˆˆˆ‡‡‡ùûÿ‚ýùöøýÿÿýÿ… “�¶ÏÙÙͳœ’IÿsÿIÿ5ÿ6ÿ8ÿ9ÿ9ÿ9ÿTÿ_£¤Jÿiÿ]ÿFÿ7ÿ9ÿ;ÿ<ÿ<ÿ<ÿTÿ| –�³ÍØØÏ·�’SÿqÿKÿ;ÿ;ÿ;ÿ;ÿ9ÿ6ÿQÿ_ÿ_ÿLÿ;ÿ;ÿ;ÿ9ÿ7ÿ6ÿJÿt€@ÿ�Šúø …ýýÿ‚ÿ‡ ýÿ� úü„@ÿvƒ¢ÂÏÏ¿Ÿ�JÿuÿMÿÿÿÿÿÿÿÿ'ÿ5ŠŒKÿAÿ2ÿÿÿÿÿ ÿ ÿ ÿ&ÿYÿz‚ž¾ÍΤƒTÿuÿKÿÿÿÿÿÿÿÿ$ÿ5ÿ5ÿÿÿÿÿÿÿÿÿO€@þÑ�ÿÿÿÿÿ…øö … üüÿÿÿÿ…ýþ�ùúÿƒ?,((,'3EIMQQQKA%%=;÷ùþÿ÷ôìæåÿ$8:9:::ôìü %687:::"ôù ÿþýýÿýöñññòôøíîîïñññòôóôõƒ�%ÿüûÕ×ÙÚÚÚâïõõööÿðððõý $&&&)*+ƒýù�öÿøïûþÿ„?úõëåã-GJIKKK10ôé 4GJJKKK/÷  ÿ÷òñëíôôôòóøÞååëóóóóôõôúÿ�3ÿûùËÎÒÓÓÓßñ÷õõôìììõ"-,,,046þûÿþ‚ôøõôüƒ?üüÿÿÿþüüüøû÷ÿþþþþýûøøøøüþùúúî÷÷÷ùúøôöø�ÿÿ‚.üüüûûûüþþþ  ú�  ÿüÿƒ�# óïëçççîöüøôïëèèèòÿþûý�úú÷ú÷æÛÕçÿ��& ùùù  úõñððððîïþþÿ‚ýðêöù� ïÑÐÞó„€ €!@@$@½@)` À/@ Àà!@À@#@À@à!@½À@#@½À@à"@@@#@½@@ÅÀèôÇ,WÐÝ% ƒ€èè!�((ÒÒ((èè„”ŠÔé…A@š³Ë.P06@ƒ€ÑÑ;�II©©IIÑÑ„ JÿSÿÜÿ}ÿwÿÔÿTÿTÿSÿ+ÿSÿ…ÿÿ‚Aÿ-ÿ-ÛÛJÿ>ÿ4ÿÐÿ-ÿ+ÿ,ÿ,þøþùÿ,ÿ+€@þÑ�ƒÿÿÿÿÿÿÿÿ†FF53FFFFVVFFa�‡ˆúÝÝýûþþƒ€ÿÿó�ôôþþôôÿÿ„:= GÂ3, .�€ êèèèè „)+ óáØëôá߃€ ä�ââ ââ „.26ÔšáÔäðáÞÿ�€ ×ÕÕÕÕ „þýýüýù÷öøø÷ø�€‚þþþþ„ïïüÿ÷#õþ  ÿ�€üü � úú üü„€ €Z@@f@½@q@ À�@ ÀàR\@À@]@À@à\@½À@]@½À@à_@@@^@½@@,ùõøßÍÂÀ¾¼¼¼ÈÝéèâãìô0D?/  ƒ‚AA@@@@8*þòìâÙØØØØÙÚ�¾¾   … þïæÿþá³–„Dÿ~ÿ{ÿxÿxÿx ‹·ÛÛÒÎ×å+[@€ yZL9,,,,,.1,"ƒ�wxwxxxnX1ïåѾ¹¹¹º½¾�……41///$„ ž¦¿ÕÛÛе�“JÿvÿRÿ>ÿ7ÿ8ÿ9ÿ:ÿ:ÿ:ÿKÿr‘›²ËØØAÿKÿKØØÈ¡ŽIÿlÿGÿ9ÿ9ÿ9ÿ7ÿ7ÿ:ÿGÿ_„@ÿ��ÿ‡üøú ÿƒ„  ‚ÿ„@ÿ�®ËÔÓá„LÿxÿQÿ#ÿ ÿÿÿÿ ÿ ÿ ÿÿKÿq� ÀÑÑAÿÿÑѼƒKÿfÿCÿÿÿÿÿÿÿÿÿ+ÿY€@þÑ�ÿÿþÿÿ�ÿ‚þ ƒÿÿ�þÿƒ.($(,7FORQQPPPH:-(II'.ÿjÿ?ÿþýþúþùþýÿÿÿÿÿBÿn ”ÂÙÞÝÛÜÜÜÌ›@þÑ� ÿÿøìðûþæØßñ‚ûôñöÿÿúúþþþ " þ ÿ� þ!$ÿÿÿÿ�þöìéôþ„?0' #)('2BJJH;,(! $7JQQQRPRPJ;KNQSSQRQQQJ;/% 5a�� ÿ  ƒþþýýþ‚�ÿÿüý‚ü÷éâíùþ‚ÿøòüƒ ÿ„?ÿ÷ôöõôøýûüüüýûýýüûÿÿ öíèäâåããíùúþÿþûþú  þðäàãâáÞÞÞàìƒ� þûú÷  ‚ ÿÿþ ÿ�ôôóôú úóñïñôƒ?%  !"#" ($ôêäÝÙÜáëý!!!$$"&,-0EMOQPPPPH2 ïáÜÜÚÖÖÖàþ.�� þúøùþ ‚5ÿ$$#"""')#øøüýúúúúýþýýþõòùÝÝÜàïþþþ ûïìäÝ݃?ùíñÿÿÿ  øê÷ýúøüþàÍý¹¾½ÀÔééðöööóóò÷úüë+/24777-äÉ¿¿¼ºµµµ»Óƒ� øèí …2)'&%%%#õõöúúúúýýýþÿÛÛÛàïý øëèáÜÛƒ?üöøøøýÿüÿú÷þþêÐÀ¸±¬²¶Åáöûýüüüûûùýì /ÿhÿ‰ÿjÿ?ÿ*ÿ*ÿ,ÿ-ÿ-ÿ-ÿ=ÿd ‡¤ÇÚãåäâââÔ­‡Iÿcÿ;ÿ,ÿ,ÿ.ÿ/ÿ/ÿ/ÿ>ÿe †«ÔäãáàààÏ©@ÿ�� þùòîðøþûûþ�ÿôíðù… ‚ˆ ÿÿÿƒúïëóü… …ùðíôü„@ÿl’¾ÕÜÜÜààÞи§§ÃÛÛÛÜÞÞÉ”`ÿeÿ;ÿ þúþúþúþøþöþôÿÿ.ÿ.ÿþöþöþöþöþôþôÿ ÿBÿlÿEÿþôþôþöþøþøþøÿ ÿ=ÿi �ºÒÜßÞÛÛÛÊšKÿiÿ<ÿ þõþöþøþúþúþúÿ ÿ>ÿh ™ÌÞÝÛÙÙÙÄ”@þÑ�� ý÷îéìöýúùý�ÿñèë÷…‚ˆ ÿÿÿƒøêåïû…‚øìèñû„?0"   !/2>LTTTRPMBDDLUUUVVWN=0?OVVUUUUO?1%  "1@@BBB8íÔÈ¿»¹¹¹¹ÃÝý5EHHHHH=íο½¼¼¼¼Êåƒ� ýúüÿÿÿüÿ�ü‚ÿ�ÿú÷öùý‚,ÜÜáëõöúü  ûõñîïéàÜôôø  $$$ ùôƒ?ÿ    ûòóøøøùúûõééòùùùùùøìî÷ 1IJKMMMA"ìξ¶±¯°°°ºØATUUUUUH& 鯷¶µµµµÄäÿ� ÿÿúõ÷üüþÿ�þ  �5ûûûüòõÿÛÛáëò÷úû øòîíïéàÛùùþ "%%%! þùƒ õþ  üýƒ?  ÿùóóóïéèôüûø÷÷÷îæÜËÕøÔÏæïõûûûûýþ  þýýýûøúïìóô÷ýýýüýþ ýýýüúø�?ÿÿýüù÷'ÿÿÿýý ÿýþùëäôþëÓÊÚòÿüüôçâåôÿþþþþÿ  üüûüÿóèìø þÿƒ?þþþþ  ööøüüü"ÿý÷ô ùðèÛæûïçææçççïú úîçäãäääêõýÿ ÿ�� ÿþûø:G*ƒÿ#)‚þýÿùèãòý�.íÒÉß÷ ûúúúüÿ ýýúú÷ôòòòóø�ûüÿƒ€ €�@@¢@½@²@ À¿@ Ààˆ�@À@�@À@à�@½À@“@½À@à‘@@@‘@½@@? øù þäÕËý¾¹¹Íãñùøøøôòñóùýü àÌÄÄ¿¿¿Çå1=BEIMMMF1ƒ�BBA@@@>7#ççãæêêêíôúôæßßéö‚#þôêêîöû))" úåØÐÆÀÀÀÃËÜêû%)ƒ  õçåý üÞ·�‹Dÿ{ÿqÿqÿqÿ}œµÏÞÝÝÝÚØÖÛäïò$&+(ì±�€Dÿ}ÿyÿuÿuÿu�ÈöNgu|C�†††o>ƒ� xxwxxxsb>ÐÐÏÓÕÕÕÙäíèÚÓÒßò‚#úçÕÖÝìõ II?-ôÔÀ©“‹‹‹‘¡ÂÞö#4CIƒ ¥¨¼ÒØØÜÊ®¤IÿÿSÿ;ÿ2ÿ0ÿ/ÿ2ÿ5ÿDÿg †«ÓääääãâÞЭ‹XÿjÿCÿ3ÿ3ÿ3ÿ2ÿ+ÿ ÿ%ÿ,ÿ7ÿOÿ~ÿ‹ÿoÿJÿ7ÿ0ÿ0ÿ2ÿ5ÿ5ÿ5ÿGÿu Ÿ¸ÖâäãâáááЫ@ÿ�‚ÿ‚�þÿ‚þôéëéêìôûƒ óºÓðý‚  ‚ÿüøöôîîöý„Aÿpÿw”ºÎξšLÿxÿlÿHÿÿÿþþþýÿÿÿÿNÿs ›ÊßßßßàÞØÅœYÿvÿLÿþþþþþþþýþùþóþ÷þùÿÿÿGÿmÿIÿÿþýþþÿÿÿÿÿÿT …¨ÏÞààÞÜÜÜÉ™@þÑ�ÿÿÿÿÿþþþþþþ  ûîâáæìéîø‚ ÿñÛñ ÿ‚ÿ ÿÿÿýù÷÷ñèêñû„?85(&488>GPVUTPJ?2# #0>LSSSTVVWM=1/0A:!úúúúûûýþýÿ ýô ):@?@DDD9÷ç×ÑÐÎÌÊÊÊÎà �‚ÿýÜÜÝßßßÛÙáô   ‚# îÒÑÚè÷ææêóùû ###" ÷ïíéæƒ×ÛâîûóÚÐÜæý'.2621-ÿû‚- üüøöõõõõùú÷öóåï.8;====0öæÓÌÉÆÄÀÀÀËàì��ÿýûÖØÚÙÙÙÙÝæøøû ‚  %H/�ããâæô !$%%%%$óíèåãƒ?ð÷ ùù !:HMRUON>#þ    þú5IRTY\\\I!ëÑÈÅÁ½¹¹¹Åâÿ��?ÿþüÒÓÔÕÕÕÓÓÝô  ú&# **&#'ÿúüÕÕÙâñþ#),+++*& øåÝÛØÕƒíïöýüüþõêéòüýýûýýýõö÷ü‚- !)ÿõõõõôôóúûðõüÿþûûüüü  úúúõðø�%ÿÿþýüùùûýýýÿÿ  @T= úøþÿ�ÿ ÿÿÿ þÿþüÿ"1/ÿÿÿƒ?ýýÿÿüÿû÷üü÷ðêêêíðòøÿüüü !,, þñæããâäæææìøÿ��ÿÿþ üüþþþ /YdI$ ‚#øô÷øûýÿ ùíï÷öôññññòø  ƒ€ €y@@�@½@–@ À¡@ Ààpt@À@{@À@ày@½À@|@½À@à|@@@y@½@@ íß�ûöööïîïôû�)ýü  % ëÖÉ¿º·´³³³¸Îèÿ0;BFEINNNH7ƒâ!!â�  ‚'úóññõûþýýÿAA@9+öíãØÑÆ¿¿¿ÀÇÕíü+16>Aƒm@�!•� ûêãããàÞßáæëòö! $ø½š…Gÿwÿpÿoÿlÿgÿgÿgÿy¯æEgzG‡��“™™™ˆVƒÔ//Ô�  ‚'þõêëðùþýýÿxxuiP#ýæÉ½©‘ˆˆˆ‹—°Ý÷DQ_qxƒããAÿ/ÿ/ ˆ«ÑààààääâÝ˧ˆZÿaÿ<ÿ0ÿ0ÿ0ÿ0ÿ.ÿ-ÿ-ÿ/ÿ4ÿFÿjÿ’ÿsÿLÿ9ÿ1ÿ.ÿ-ÿ.ÿ0ÿ/ÿ/ÿ/ÿ8ÿ]‡¤ÇØßàâÞÞáááØ·@ÿ�… üðñú ÿþÿ‚ ‚   ‚ ûöôùîíø÷úþ„ÝÝBþöþõÿh “ÃÖÖÖ×ÛÛØÏ¸‹\ÿgÿ=ÿþüþüþüþûþùþöþöþøÿÿÿDÿlÿEÿþÿþ÷þöþöþúþþþýþýþýÿ ÿ>ÿo ’¼ÑÙÚÛÔÒÕÕÕÆ™@þÑ�ÿÿÿÿýòææñûøúý‚' ÿþþ% þüûýÞ×ìô÷ûþƒ< UU1" )1@PTTTTTUSQKD9;DNTUUUTTTTTN?1% #a�… ÿüïü ‚ þú÷÷ùýú÷øýƒÿ‚ýúùùüÿƒ ÷ „:÷÷  ýøøøþüúôëæèð  ë÷  ÿõñððîôðçççä僅 õôþÿûöòòöû‚'þÿýÿüü÷òñ÷ôù  þéíõûüƒ<ùñ6>   ÿ &'''%##$'+,'÷/AIPUUUVVVR?*øèàÜÙÝÛÖÖÖÛé.�ëë�ø÷ÿ�þýýÿ‚�þþ�ÞÞÞàçõú÷"""#   îäâßÞƒ:œ›]^õúþÿÿÿÿþýùû ýî%4�†€õï�†€ þ�†€ùüø�†€ù�†€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€�†€ 5(�†€®š@ÿ�†€˜@ÿ~€@þ¿�†€!)f�†€ õû�†€)�†€ûû�†€ þ�†€ùýø�†€÷�†€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€þ�†€ü'�†€Aÿpÿ\€@þÅ�†€AÿJÿ0€@þq�†€:B�†€ òø�†€#8�†€õõ�†€ þ�†€ùýø�†€ù�†€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@€ý �†€û&�†€AÿnÿZ€@þÃ�†€AÿHÿ.€@þo�†€;C@€�†€ìò�†€.�†€þãã�†€÷�†€úþù�†� �†€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à`@@@½@@��†€2%�†€�@ÿ{€@þä�†€AÿrÿX€@þ™�†€-5r�†€ëñ�†€2�†€êê�†€ò�†üû�€þ �†€ € @@@½@ @ À @ Àà  @À@ @À@à @½À@ @½À@à @@@ @½@@cXW�€88„Aì€@«�€jj„úùõöè�‡õõòòâ�‡ �‡õõëêí�€ùù„úôÆËÈ�€ãã„òí±¶°�€ää„ò蛥›�€×ׄþþþýù�€„ �€ „€ €#@@,@½@` À@ Àà $@À@$@À@à$@½À@$@½À@à$@@@$@½@@  c_[RB%W�áÿÿþþ‚88! òæáƒ)3789C÷±Ÿ}B@«�Ãûûý�jj0çÎÃýøö÷õ÷è†üýúöòôõõõòòòóõúâ�‚…ÿþÿ„ „ùøõóòòòø÷ëììíñõí�úùùü�ùùüúƒöòíêêéèùôÆÉÊÎ×çÈ�ùùûþ�ããöÿƒóñçßßßÞõï±¹¸¾Îä°�ýõõ÷ü�ää ÿýƒêçß×××Õñ霧¦¬¼Ö›�üïïñø�×× ÿüƒÿþýýþþÿþüûüù�þÿ� ƒ   �ÿ� üýþƒ€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à`@@@½@@ øXLdXW�Ç�Ç88„êA¬•Aì€@«�•�•jj„ ùùõõúùõõè�‹ õõòòõõòòâ�‹  �‹ ÷õêëõóéêí��ùù„ úÌÒúóÅËÈ��ãã„ øò¶¼òì°¶°��ää„ ûñ¤®ò蛥›�*�*×ׄþýþýù‚  �ö�ö „€ €+@@7@½@` À!@ Àà ,@À@,@À@à,@½À@,@½À@à(@@@,@½@@  c_[RB%øXLW�áÿÿþþ‚88! òæáÇ�ǃ)3789C÷±Ÿ}CëA­–€@«�Ãûûý�jj0çÎÕ�•ƒý÷õ÷øóè†üýúöòôõõõòòòóõúööóóâ�‚…ÿþÿˆ †÷÷ôóñòò÷öêëëíñôúøíîí�úùùü�ùùüú�ƒõòíêêéèùôÆÉÊÎ×çÿøÊÐÈ�ùùûþ�ããöÿ�ƒòñçßÞßÞõï±¹¸¾Îãûõ¹¿°�ýõõ÷ü�ää ÿý�ƒéçß×××Õñ霧¦¬¼Õú𣭛�üïïñø�×× ÿü*�*ƒþþýýþþÿþüûüþýýýù�þÿ� ‡    �ÿ� üýþö�öƒ€ €'@@+@½@@ À@ Àà@À@@À@à'@½À@'@½À@à@@@@½@@|B‡ÚÎ$wlMXA¬ €@�€88�88�88„CNeùùE»¤¤»fO€@�€jj�jj�jj„ ÉÈÄÅúùõöâáÝÞ¸�� ··´´õõòò××ÔÔ¥��  �� íîãã÷øíìïðäåÈ�€ùù�ùù�ùù„ ÝØª°åಷÞÙª°@ÿY�€ãã�ãã�ãã„Cÿ[ÿVÿÿúõ¹¾ª¥Aÿiÿn€@ÿ�€ää�ää�ää„Cÿ2ÿ(þÛþåú𣭕‹Aÿ>ÿH€@þÑ�€××�××�×ׄ  éêêéö÷ööì�€��„ CF^\"$=;`�€ � � „€ €-@@H@½@ ` À` Àà -@À@-@À@à-@½À@-@½À@à-@@@+@½@@!hxytkc_am`_�+)>LI� IL>)+88„(&! ðG½ÙÜÛÒIJ§Aì€@·�ObD‚–œ’ƒ�Dƒ’œ–‚bOjj„íðëÚƒîíïîðíÐ�ÿÿ‚ƒøúûù÷ôóõìêêîðïêãõóéìë�ö  ýù� ùý  öùù„êíððïìëòÀº»¿ÃÃÀ¼ðê¼ÃÁ�æôÿýóãÛ� Üäôÿôæãã„öõôôóõõúºµµ³³²²²øñ¶¼¦�ãáßßâåæ� æåâßßáãää„íìêêêëìô¡šš˜˜———ò蛥Ž�ÕÒÐÑÕÙÛ� ÜÚÖÒÐÒÕ×ׄý ÷õôôõöùúþþþÿø�ý98#ø� ø÷ôóõùý„$� ý ƒ ý „€ €.@@H@½@` À` Àà .@À@.@À@à.@½À@.@½À@à.@@@-@½@@ÿðïôý GKPQQQRaûZNR�€·´Â׿åÕÕåæ×´·È�ȃ åÉÆÇÏÝïúy{E€†‹’•±ÞõA ‰€@ �€Dÿ}ÿnÿdÿjÿ~ž±±žDÿ~ÿjÿdÿnÿ}€–�–ƒéèêæÚ„àááââßЄ ƒþÿÿûùúÿñïîðóööõÿôõõ�€ôçåõ ôåçô�ƒþþúúýÓÐÍÍÎÑÒÌûÍÓÑ�€$    %�ƒ ÏÐÑÑÒÐÐË ÍÓ½�€!!!!�ƒÅÆÈÈÈÆÆ¾ ÀÊ«�€$&*.0.++.0/+'%)�)ƒÿüòêêïöøùûûûû÷�€ É «Òýÿ�ÿƒûûûüûúùøùû�� þù÷õôõõîçèíø�õ�õƒ€ €k@@~@½@~@ Àƒ@ Àà^l@À@j@À@àk@½À@l@½À@àj@@@l@½@@5 ýëäáßÝÜÜÜäõûúü ))-4999975-(+2EGLQQY `U�*&++(" úîèÜØÍÀºººººººýþƒÿüôïìãßÙÛæòöüý*88„,úôõúþþæÇ¥”Š…ƒ���–ÀááÛÚàì "0&)8EEEEC=0$"&H^vB€€�ßõA Š€�O38CIIA7'ñÕɸ³œ„Fÿ{ÿ{ÿ{ÿ{ÿ{ÿ|ÿ}úüÿ‚úëçÞÚÆÃÓåèôüOjj„¹¹¹·±¨ŠIÿuÿ`ÿYÿYÿ[ÿ\ÿaÿaÿaÿs •­´ÅÙêññëÑ·¯ž�Iÿlÿ`ÿ`ÿ`ÿ]ÿZÿ[ÿ[ÿ`ÿq ‚¦©±¸¹¹»º¶·@ÿ)��þÿüöõú ÿ‚‚‚ÿ÷ýÿþ üû‰§§§¦›�KÿkÿQÿ9ÿ1ÿ1ÿ1ÿ2ÿ7ÿ7ÿ7ÿLÿu ’›²ÌãííçȨžƒLÿ[ÿBÿ5ÿ5ÿ5ÿ3ÿ0ÿ0ÿ2ÿ9ÿNÿaÿt Šž¥¦§§§¤¤@þð��üúüÿ #‚‚ƒ) ùûø÷ûˆ5!#/7ADCCA@@@8+"  (3;@@@BBCC@:3$$ V�‚ ÿýþýøöý„ÿ†úóøøþüþüý‰5 ÿ ,/-+,)))  ##),%ÿþü þþ9�÷ûö÷û ÿøõóþÿ‚ûóù ÷ùù„5ôûøñëçï !üþüúøóíðñïîîîðôôûÿö÷ëÞÙÚÒûÍÒ�çúêååèø !!!!"#$„ÿþ"/(#   çãã„5 ÿý.JSUTTRRR;ûý   #/0)ùèßÞØÕÚ,�ãþïêìõþ  üü !ƒýùõóú",66/& ãää„5 ÿ9SjqrsrpppR! %ÿ  .>EF õàØÙÏ"ÊÓ7�Õ üëäã ÿü()))*,/0‚ûõòôÿ&*��+ ìÞÕÊÊÑÚéñ÷ùù óíðöýïääääãáàßüþ��ƒ5!  òâÚÚ*AHGQ!çÍ´«¬¬­³³³Î û VMþ5��.  èÚÆµ´¹»æðûýû++öõíåáàÞêþéØ×××ÕÓÑÐúýÿ)�)ƒ5éçêñ÷÷÷þþíÙôöôðïððîîïñöðöûùöôòòòòíãÝØ×Üãèçåæèîîîîç��*ûð $- ùÿÿûÿÿøõúÿÿÿÿÿþÿ‚ÿ�ÿƒ5õ÷úúúúúûüüýíØöðíêçæûþýúúÿû"! þôõøýþýúùùøãæÿüî��.ÿþûú   úõõÿûúû÷ùÿ  þ õ�õƒ€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à `@@@½@@ú]PV�ääƒô A·Ÿ€@«�Ë55˃ììèèÔ�‡ççââÉ�‡ �‡€ÿóõõ�üüƒÐÖ×�ððƒýÀÆÄ� ññ ƒý¯·´�êêƒüùöþ�ûûƒ€ €+`@2@½@(` À+` Àà22@À@2@À@à1`½À@2@½À@à2@@@1`½@@   **)('$!' ñø ûôñïûûûýþ +666331.(5�ææéðóú øíèæƒ  ÐÙØÖÐË·¨Ÿ¢­¢ ìçååê  Ãϼ¤…†‰Œ�˜¥‰ "èáÞäú  "#'''&&&$"&�õõ÷úüý ýùöõƒ  ð�þþÿÿÿþþýþƒïñõõõõöööóíêçççççççéêíÔ�ýúùùùùùüûþƒ÷úúùùóòïñððñòõ½ýýþÿóúþþýýþþþúóíæáááäâââåî¬� úöôôô÷úûÿ ƒùûüüüûüüûûùøõõõõõõóôôøü�þýüüüüûýþþƒþÿÿýÿÿþþþ€ €*@@*@½@*@ À*@ Àà**@À@*@À@à*@½À@*@½À@à)@@@*@½@@    �øìðúô � ñúïìøƒìðþÞôþì**9"ü*�ÿÛåþé&�&çýæØÿƒæàúûâôòáÚÚáÆÅÞÌÎßæÌ�7*( � (+7ƒß×øùÚñîÙÐÐÙ·¶Õ¾ÁÖß¾�E"52""�%%26%Eƒ     �êõïðõúûõ�õûúõðïõêƒ �ýþüÿÿþ�ýþýýýþýƒùþÿþúüûþúü÷ö� ÿ�   ƒ! "! ó� ÿýú�øûÿ ƒ*)"&+* "(ï� þý�úü ƒûùûûûûùùùööøõö÷ø÷øü�ÿ‚ÿÿƒóóöôòó÷õòùù÷øúùöøú�ýûüþý�ýþüûýƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@)�@ˆ�…l�@#�…×�±�…×�§�… ��… �ô�…ë�¬�…Ü�‚�…Æ�@ÿT�… ��…�<�…€ €F@@H@½@>@ ÀB@ Àà9G@À@H@À@àH@½À@L@½À@à=@@@F@½@@!æâêóöãëõ÷ð'.ùò).". èä,øåµ�€ííêê��êêíí�ííêêƒ ÐÁ×éç¾ÖçãÐ4GâÏ3F)!J+$3ÏÀ%4Kæ½"@ÿl�€ÝÝ44××..�..�..××44ÝÝ�ÝÝ44×׃¶£ÖÖ �ÇljPÿvÿwÿ‹ÿ0ÿÿÿ2þüþüÿ5ÿHÿ ÿ ÿKÿ^ÿ\ÿJ¤·¡AÿGÿ4Ž@þM�££ŒÇƇ@ÿo»ºQÿjÿRÿSÿkþùþáþâþúþºþ»þÿÿþÆþÇÿÿ3ÿ2ÿ�¤ˆBÿþþÿp€@ýÛ�£!&'//8;2OX[RijRJcdJA>F)!*GO2�„ÿÿÿÿ�ÿ…ÿ†ÿÿƒ 21*.('GG;=XXC?Z[GGRQ'&JM#@ö�€�ÿÿ�ÿÿ�ÿÿ��‚ƒ -*%öø,* "'',!$B? þ1:@ž�€ òòõõ�õõ�õõòò � òòƒ IG)%2:!'$HE#%OS91W[FHkh%'S[@ �€ øø ÷÷�÷÷�÷÷ øø � øø ƒ_[60CM'#61 d_27cgNDpu\`A�‰.2q{ @Q�€óóôô�ôô�ôôóó�óóƒ!öô÷øõò÷öõôîïêéäçÞÞäæàßäçíéñòñëéïJ�‚ÿÿ„ÿ�ÿÿþþÿ…ÿþƒ!äãññéëôõóðñôóðñôáàìêÝÝãåäãäåêéëì'�€üüüüûûûü�üüüûƒ€ € @@ @½@ @ À @ Àà  @À@ @À@à @½À@ @½À@à @@@ @½@@YJ?�‡ööAƒ‚€p�‡‚@ÿ¥�‡Aÿaÿ]��‡÷34ø%�‡ý õ�‡ùõÒÖà�‡ åâÙ�‡ÝÚÏ�‡ôîûó�‡ûù �‡€ € @@ @½@ @ À@ Àà  @À@ @À@à @½À@ @½À@à @@@ @½@@ÿù=C?�‡ññ{{p�‡™ØÖ˜¥�‡@ÿ~ÎË@ÿ}€��‡)*%�‡(�‡ïïà�‡)%öúÙ�‡3.óøÏ�‡ó÷ñëó�‡ðñ�‡€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ü]�„�@·�„�Ú�„�Ð�„��„ô�„¿�„�¦�„�Ž�„õ�„�$�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@�]�„@³�„Ú�„Ð�„ý�„ûð�„ûÂ�„çª�„ß“�„þ÷�„"�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@��„��„�@ÿ)�„�@þð�„�V�„�8�„��„�+�„�6�„�æ�„�ï�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ö �„ö�„ñ@ÿ)�„ì@þð�„öV�„I�„ #�„+�„ 6�„ ä�„ ï�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@�V�„��„�Ô�„�É�„��„�õ�„�À�„�Ñ�„�à�„��„��„€ €@@@½@@ À@ Àà@À@@À@à `½À@@½À@à `@@@½@@úRFL�ââƒõ r\g�Ë55˃�ûûû�‡�ööö�‡��‡ÿþ�ÿ�ûûƒýÖÜÙ�ïïƒèë ñûåíé�êꃀôó€ÿ# !�ûûƒ€ €?@@K@½@9@ À9@ Àà9>@À@>@À@à>@½À@>@½À@à<@@@>@½@@ýüþÿ DFGIIHHGFFFFED9�€ &úÿÿþ� ûõóôøý„úôôôñíìñöùÿ w|IƒˆŠŠ‰†ƒƒƒ€{wi�€ !-  ÿ�   òäáæïú„ÅÑáéééêëííìæÝÍÃÄÍÛåìððëéééàÏĬ�€ øìÝÑÒ×áìðøý‡ëØÓáðú„¶ÅÙãããäåèéæßÓÀ³´¿ÐÞçììæããã×´–�€ öçÔÅÇÍÙæëõý‡åÍÇÙëø„    "�€  ‡  „óöøøøøøúúùøùù÷óù÷öôóóóóóóóóöù�€ þùú ‚  „îöý‚ýöîâáâáââááàààááâì�€ ýöéÜåðÿ þÿ� ÿÿÿ  „éóÿ þü÷òëÞÝÜÜÜÛÛÚÚÚÚÛÜÞì�€ ü÷ðçöüûõîôû‚  „âïþ ÿûöíåÕÔÔÓÓÒÑÑÐÐÐÑÓÕç�€ øîáÑçñòüìåíù‚  „øø÷õõõõöõôôøùú÷÷÷ø÷ùùùøùùùø÷÷ò�€ ûðãÜâãæééïùƒÿÿþûüýÿ… ÿÿÿþüüþþÿþ �€  ÿ�ÿÿÿ‚ÿùøùýÿ„€ €?@@I@½@9@ À9@ Àà9>@À@?@À@à=@½À@>@½À@à=@@@>@½@@6>FJJJKMOMLLH?69�€ þûùúü � üòãÚâîûþ„üõðîîïóõõõøýeq~G„„„‡‹Œ‡‚yoei�€ üõòóù� öêÞÓãîõõîóú„óêÜÒËÇÇÌÎÎÎ×èóòæÖÎÎÎÍÌÊÊËÑÚêô¬�†(-� "/-)þþ„ðåÔÆ½¸¸¿ÁÁÁÍâðîßËÁÁÁÀ¾¼¼¾ÅÑäñ–�†39(� +;93& ýý„    "�†øïîôúý� ýøòííïóøúúüüþ„   �� ÿÿþÿýøô÷ûÿ� ý üú÷üÿýþþ„ùúùúùùúùûûûùùùìåÞÚÚÚÙØÖØÚÚÝäìì�€ þ÷ñò÷þ�  $÷þÿþ„  ÿôéäääáÞßäêìñöýì�‚ ÿÿÿüñìðöý�     þ„  ÿñãÜÜÜÙÕÕÛâæëôüç�� ÿþþÿþñëíôý� !/ý„ûûúûùùùúùùùùûûùùûüüüüýýÿþùø÷úò�‚ � $ ý„üýþþýÿÿÿþþþýýü  �€‚� þüùöüÿÿûûûÿ„€ €o@@o@½@e@ Àg@ Ààdo@À@o@À@àn@½À@n@½À@àn@@@m@½@@øñññððïïðððöü�$øñðïô3>C@87773'+6667777888=<3-�€ý÷öþÿþøõóðò ü� ÿÿÿú÷úþþþøú„6øðåÞÛÛÛÚÚ×××××áòüøæ×ÕÒÕßëõúZ]cillllbL==Ujjjklllmmmh`ZZ�€ ûõîÞæ"þùïÿÿ�üýþÿÿöðôý„6Ÿ©µ½¿¿¿¿ÁÀÁÃÃÃÔììÛÇÀÀÀÁ¾¸«¡ §²º¿ÀÀÀÇÔÝÝÓÃÃÃÂÀÀ¾¿¿¿·©  �€þ÷ðëëðû�‡ƒÿýþƒÿ�ÿ �üôðòùþ„6…’¢«®®®®°¯°³³³ÈææÑ¸¯¯¯°¬£“ˆ†�›§®¯¯¯¸ÉÔÔų³³±¯®­­­­£’††�€ýôëååëù� ‡‚ÿþüý‚ÿþ�ÿ �ÿñìï÷þ„6$!!$&'"$'&��ÿÿ�ýõñ÷ˆ�ÿÿýÿ‚‚þûüÿ�…60!!!!!!!""$/$ #/�€  úõýüýÿÿ� ýýýÿ îÞçú�ê×Úéöÿÿ� þúûü „6%$$$%%''$$$$%'""üûÿ  üü�€ øúóóü ùìðû�ýüþûõýüþÿÿÿ öçãêø„6GC?=>>>>;@@???2$6@BHD@=AE�€ ÿñêûýý öôöý þ�úûÿúî�ÿþ‚ þûýýüçàåõ„6ZTOMNNNNKQQPPP@%!.ERT\WRPTW#& $�€ ýéàøûýòïñý/�øùÿ÷æ�ÿþ‚ ÿûýüøÜÒÙïÿ„6öüóóóõõõõõõõúúüûûùøøøþÿôñùÿüøõôô÷úúúöôôôóôóñðððôõñë�€ üòëêîïô÷úý �þ  �  þþ‚�þöêèáêü„,æçæææææïîææåååìôöèáâäæâØÓÚäõûýûùøööõõöööööööö�úúúüúõ÷��û&& ûüúöþñêôÿ�ÿþý‚�-*ùûûü„€ €o@@r@½@e@ Àg@ Ààdn@À@o@À@àm@½À@m@½À@àn@@@m@½@@6÷ìæéñòóóø ÿóóóóóóóòòòíî÷)&*2999::;;:::4.*+29:;6''-�€úñðöþþýÿ ýü� øùýþ òðóúÿðäìû„.ùöðêçççæñÿéééèçççæææëôù[cnuxxxyy|||||qaW\m}~@�~th]YZ�€ýþþÿ  þ�ÿÿüúü�þûöïéêîïùü "æßìøü„6ôíâÚÕÔÔÔÍ¿··ÁÑÑÑÓÔÔÔÕÕÕÝëôõëß×ÕÕÕÕÓÔÓÑÑÑÀ¨¨ºÍÔÔÔÔÖÜèó ��ƒ�ûô÷û�  � �ýùøú‡þüþ…6ñêÜÐÉÈÈÈ¿®££²ÄÄÄÇÈÉÉÊÊÊÔæñòåÕÌÉÉÉÉÇÈÇÄÄį‘‘§¿ÈÈÈÈËÔãï†�€‚�ùñõù� � �ü÷öø‡ýûþ…6   ## &�€‚þþ‚‚ýüüþÿ‚ÿûüÿ�  ˆÿÿÿ„6-80"  ()*)!!!%$  $22(), /�€($ ÿ�ÿ� ÿþöùúüïáê�úîèìôù �þýþýý‚þýó!„6   íõ÷óîîîííëëîîîöýõïíëïýÿð�€ �þÿÿþõ ÿ�üòíðùûÿúûøõööõ õ„6æêîðïïïðòíîîîîû÷ìëåèíðíè�€ÿ‚ î  ‚þù÷÷úÿþôö ûàñþ„6" ""!!!àæëíìììíïééêêêú õèæÞâèêçã�€ ÿ‚ æ$.&‚ý÷õöû ýüïòøÑåùþþ„6öîéìðóóòïíííñôôôôóôõ÷÷÷óñöñåãëôôôòòòñòòòííëëìïïïïéäéóë�€üôîôþ�‚ ÿÿÿÿÿ �  øó÷þ�þùúõðñõü„ ùôñóõöøøùùøøøøøøùøîîôôôòòù� úø   ÷�€üûùúù�‚ ýýþÿÓÔï�þüþûÚÚþýöôùüü ý …€ €@@@½@ @ À@ Àà @À@@À@à@½À@@½À@à@@@@½@@ øøC:5JMC8�‚ÑÑ//„ ÔÓiWV|{id�‚©©WW„ ÏΛ›ÎΛ›‡�‹ÂÁ��ÁÁ��@ÿg�‹ ))))1�‹ �‚ ÷÷„ ðõòæêðù�‚ää„ $% õ�‚ãã„ ./ò�‚,,ÕÕ„ ýþîðõôîîì�‚üü„ ññýûýÿ�‚ôô „€ €@@@½@ @ À@ Àà @À@@À@à@½À@@½À@à@@@@½@@ þRR8�€//ÑцóôAœœ€d�€WW©©† õõÂÂõõ‡�‹ññ²²òò±²@ÿg�‹ 1�‹ þû ÿþ�€÷÷ † ý ççù�€åå† ÿ  ææ�€ãㆠÿ ßß�€ÔÔ++†€ÿúû�òòì�€üü† þü÷üþ ÿ�€ ôô†€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@û 3%�ß߃êF,�Á;;ÁƒÌ̺�‡ ¾¾¨�‡ýý�‡óñäåó�þþƒùðÊÒà�ññƒùó¼ÂÏ�óóƒ÷者Á�ííƒÿ�ýýƒ�ûûƒ€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@ïþ'�ß߃Üö8�Á;;Áƒðð´´º�‡ìì  ¨�‡�‡ ýþó�þþƒ Þäà�ññƒ×ÝÏ�óóƒÌÓÁ�ííƒþüùúÿ�ýýƒ÷ú �ûûƒ€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@û(�ääƒæü?) �Ë66˃÷÷»»º�‡õõ©©¨�‡�‡€��ƒûù� õõ ƒ� øø ƒ"&� ôô ƒ€þñòõ�üüƒýþõõô�üüƒ€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@ðü" �ääƒÜò3 �Ë66˃íí±±º�‡è蜜¨�‡ �‡ ÿ��ƒ ðòð� õõ ƒòôê� øø ƒîñã� ôô ƒÿýöøü�üüƒøù �üüƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@��„��„�º�„�¨�„��„�ó�„�à�„�Ï�„�Á�„�ÿ�„��„€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@ @ �Í��__-ì×̓ýøö÷õ÷è†üýúöòôõõõòòòóõúâ�‚…ÿþÿ„ „øøõóóóóøöëíîîñôí�üúúý�ùùÿþüƒõòîëìëéúõÎÒÓÔÚçÊ�ööøü‚èèøýƒôòéäæææöð·¿¿ÆÖè±�ÿ÷÷ùþ�ææ ÿƒìèÞÛáàßó뤰®°½Õœ�þóóôû�ÚÚüûþƒþþþþÿþüú�üþþýüþ� ÿýüƒ  �ÿ� üýÿƒ€ €K@@Z@½@ ` À5@ Àà B@À@@@À@àB@½À@I@½À@àB@@@B@½@@MTX\^_`FPD�˜”�€f [VRL?%@“�æ� 33÷ëææ�33÷ëæƒN–¢«³µ¶¶„˜5*$öÂ'/122C±¦ ‘r>@$�Í��__-ì×ÍÍ��__-ì×̓  ãáÝÜÝÛÝýøö÷õ÷Î�ÛÜÙÕÒÓÔÔÔÑÑÑÒÔÙüýúöòôõõõòòòóõúÁ�‚…ÿþÿƒ…ÿþÿ„   ˆø÷ôôóóó÷öêìíîñôøøõóóóóøöëíîîñôì�üúúý� ùùÿþüüúúý�ùùÿþüƒÙÕÑÏÏÏÍÝÙ±µ¶¸¾ËõòîëìëéúõÎÒÓÔÚç«�ööøü‚ èèøýööøü‚èèøýƒÍ˾¿¿¿ÏÉ�˜˜Ÿ¯Áôòéäæææöð·¿¿ÆÖè‹�ÿ÷÷ùþ� ææ ÿÿ÷÷ùþ�ææ ÿƒ¼¸®«°°¯Ã»Bÿtÿ€ÿ~€�¥ìèÞÛáàßó뤰®°½Õ@ÿl�þóóôû� ÚÚüûþþóóôû�ÚÚüûþƒöõõúýüûõ÷ýÿþúöôþþþþÿþüñ�üþþýüþ�  ÿýüüþþýüþ� ÿýüƒ-))%"  /�ÿ� üýÿÿ� üýÿƒ€ €O@@c@½@` À5@ Àà @@À@B@À@àB@½À@B@½À@àB@@@B@½@@DHLS`zH“�ˆ„‚�€›� 8QKFB@?>YN@“�³ÇÙïû� ååæææææ³³ÇÙïû�ååæææææ³ƒwM‚ˆ—¶ê ù÷öö(óþ2fA’†}usrrA¤�€@$�@ÿo ¡¼â÷ÎÎÍËËÎÎAÿoÿo ¡¼â÷ÎÎÍËËÎÎ@ÿoƒ ÔÒÌÒîìæì³ˆÈÈÈÇÅÁ¾½¿ÄÇÆÅÅÅéééèæâßÞàåèçæææ‹��ƒþþ…ƒþþ‡  ˆ€ÿþýú÷óóöøøøøóõÿÿÿüùõõøúúùúõ÷ƒúúýþ� þûúüüúúýþ�þûúüüƒÙÖÕÓÍ¿²µº¼»¼¾­²öòñðêÜÏÒ×ÙØÙÛÊÏÐ� ÿþ�  ÿþ� ƒàØØÒÁ¯£¥®³²±±¡§ÿÿùèÖÊÌÕÚÙØØÈΪ�ô÷ûþÿÿýþþô÷ûþÿÿýþþƒÖÊÌʽ¤Ž’œŸ™š›‡�úüúíÔ¾ÂÌÏÉÊË·¿§�#îùÿÿ üýý##îùÿÿ üýý#ƒæåæêîðîîïêçèéîíðîïôøúøøùôñòóø÷ê�öïõýÿ� ýýÿÿýüüööïõýÿ�ýýÿÿýüüöƒ  $$ %#ý"�ôÿÿÿûûüþÿÿÿôôÿÿÿûûüþÿÿÿôƒ€ €I@@c@½@` À5@ Àà @@À@B@À@àB@½À@B@½À@àB@@@B@½@@:AEIKLM3=BŠ…�zmSùÿ ñüHC?9,@“�³ÏÏÎÍÎÍÍ� ìÛĸ³³ÏÏÎÍÎÍÍ�ìÛĸ³ƒ{E‡�˜š››i}E úÛ§÷ åùB–‹…vW#@$�@ÿo ¢¢£¤¥¢¢Ï´ŽBÿyÿoÿo ¢¢£¤¥¢¢Ï´ŽAÿyÿoƒ ÉÃÁÃãÝÛݳˆÄž»¼½½½ººº»½ÂåæãßÜÝÞÞÞÛÛÛÜÞã©�‚…ÿþÿƒ…ÿþÿ„   ˆ   ƒ� �ƒåáÝÛÛÛÙéå½ÁÂÄÊ×þú÷÷÷õÚÞßàæó²�� �ƒïíäßàááñ벺ºÁÑã Ùááèø ª�ÿÿ# ÿÿ# ƒÜØÎËÐÐÎãÛ” ž ­Å þû� þ ÄÐÎÐÝõ‰�# &%%ÿÿ4(! ## &%%ÿÿ4(! #ƒïîîóöõôîðöø÷óïíøøøüÿþýøùüøöê�öøøööøúú� ù÷ööøøööøúú�ù÷öƒ   ùúýÿþþþ÷ú ý"�ô÷÷÷õôôôÿÿðñóôôô÷÷÷õôôôÿÿðñóôôƒ€ €$@@0@½@` À@ Àà $@À@$@À@à$@½À@$@½À@à$@@@$@½@@ 8QJFB?>>XNQ�³ÇÙïû�ååæææææ³ƒçòø&Z@†zqigffA˜„€@ �@ÿo ¡¼â÷ÎÎÍËËÎÎ@ÿoƒäâÜâÍ„ÝÝÝÜÚÖÓÒÔÙÜÛÚÚÚ ��ƒþþ‡  „ ÿÿ��úúýþ�þûúüüƒüø÷õïáÔØÜÞÞßàÐÔû� ÿþ� ƒîâäìòðððàæÑ�ô÷ûþÿÿýþþƒ'õßãíîéëíØàä�#îùÿÿ üýý#ƒíëìðôöôõõðîïïõóô�öïõýÿ�ýýÿÿýüüöƒô÷öúþ  �ôÿÿÿûûüþÿÿÿôƒ€ €$@@/@½@` À@ Àà $@À@$@À@à$@½À@$@½À@à$@@@$@½@@ùÿ ñüHC?9,Q�³ÏÏÎÍÎÍÍ�ìÛĸ³ƒíù ÛïAŒ�{lM@ �@ÿo ¢¢£¤¥¢¢Ï´ŽAÿyÿoƒÙÓÑÓÍ„åæãßÜÝÞÞÞÛÛÛÜÞãÖ�‚…ÿþÿ„„��ƒú÷óðððïÿúÓרÙßìÅ��ƒ-+"/)ðøøÿ!Ñ�ÿÿ# ƒ %Öâàâï®�# &%%ÿÿ4(! #ƒôôôøûúúôõüþýøôòô�öøøööøúú�ù÷öƒïïòôóóóíðüó�ô÷÷÷õôôôÿÿðñóôôƒ€ €@@@½@@ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@ CHCöðñ%*%*�üþ�þüüþ�þüƒ ûþô_s_ÃÆ¼';'B�€ÿ�ÿ�ÿ�ÿ„Eÿiÿšÿkÿgÿ”ÿg›Ì�™Æ™@ÿY��EÿIÿˆÿNÿGÿ‚ÿD‰ÈŽˆÁ…@ÿ#�ƒû„ú„ =)<>,>)())C�� :86356+)'$&'7� �  � ƒ  øüÿøýþ� � �ƒ T\K.;6PXG*72-�%�%%�%ƒ blT2@?\fO+;8C�6�#66�$6ƒ èëêäåäòõôîîíç�ûý�ýûûý�ýûƒ ÞÛáíèêßÝãðêìî�ñø�øññø�øñƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ ,-@.),C�� ?=;8:<.+*((*7� �  � ƒ  õìù óéö�� � ƒ L?D&/G:?!*-�%�%%�%ƒ A149+- C�6�66�6ƒ ééêåããôôôïìíç�ûý�ýûûý�ýûƒ áçäðôìäéçóöïî�ñù�ùññù�ùñƒ€ €@@@½@ @ À@ Àà @À@@À@à@½À@@½À@à@@@@½@@úôô).( �üþ�þüƒÎÑÆ2F2 �€ÿ�ÿ„›Ì�™Æ™Œ�‰�¾ƒBÿ~ÿ·ÿ~€@ÿn�‰)())/�‰(&%!#%'� � ƒý� � ƒEM=,')�%�%ƒVaM'713�6�6ƒòõôïïîð�ûý�ýûƒäáçôîñï�ñø�øñƒ€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@îéï## �üÿ�ÿüƒѽÑ52= �€�„УÐÎ�ÌŒ�‰ÊÃÁƒ¾@ÿn�‰%(/�‰&%" !"'� � ƒ# � � ƒG:?!))�%�%ƒZIP)43�6�6ƒööøñïðð�ûý�ýûƒäéçóõïï�ñù�ùñƒ€ €&`@,`½@@ À@ Àà`À@`À@à`½À@&`½À@à`@@`½@@GJFBŒ‘€IN>@��ï�ïï�ïƒE‡‹‚þþùAŠ“u@�ß+�+ßß+�+߃éé΂ããÁ‚ ‚ ìðîåæèþøøúê�ý�ýý�ýƒ ÑÓÓ°®·þþÜÛâª�ý�ýý�ýƒ ½ÅÄ“”š ×ØÞŠ�ÿ�ÿÿ�ÿƒ«µ´Bÿvÿxÿ ÌÍÕ@ÿj�ÿ�ÿÿ�ÿƒ ûûüõóöÿþþø÷ùó�ü�üü�üƒ ,,)üý/�ÿ�ÿÿ�ÿƒ€ €`@`½@@ À@ Àà`À@`À@à`½À@`½À@à`@@`½@@IM=K�ï�ïƒ A‘š|@‘�ß+�+߃çÎ�áÁ� �ûüþþ�ý�ýƒûýýÛÛáÛ�ý�ýƒùÏÐÖÏ�ÿ�ÿƒöÂÃÊÂ�ÿ�ÿƒýýþ÷öøö�ü�üƒ��ÿ�ÿƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@öööD;9$�ƒñ„ëëë|nkF�ƒé„´µ²ý²¦�ƒÿ„ ¡�ü�Ž�ƒÿ„$�ƒ„ ø�ƒ „ØÛàî�ƒ„Ò×Ýè�ƒ„ÆÌÔâ�ƒ„÷øòúññ�ƒý„þÿÿ �ƒþ„€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à @@@@½@@áéê..-$�€ ‡ËÙÚ[[ZF�€‡õ©ôò¦ð¦�‰ò’ñîŽìŽ�‰#$$�‰$ ÿ�€ü‡ éìëî�€ú‡ åççè�€ü‡Þáàâ�€û‡€öúñùñ�‰øùü �€‡€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€�ƒ€(�ƒ€Ê�ƒ€¼�ƒ€�ƒ€ç�ƒ€Ò�ƒ€º�ƒ€§�ƒ€�ƒ€�ƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@€�ƒ€(�ƒ€Ê�ƒ€¼�ƒ€�ƒ€ç�ƒ€Ò�ƒ€º�ƒ€§�ƒ€�ƒ€�ƒ€ €\@@v@½@l@ Àp@ ÀàO\@À@Z@À@à]@½À@\@½À@àZ@@@Z@½@@0::ûðëëëèçèéëðù þ #/8@EILLLE5)')) �…  ûøúý‚ÿýüº»ºººº½ÄÓì&-8CFFFFF…¼¼44éåÛÓÓÓÐÐÒÓÕÜê÷ü÷âáö LjG€�—œ   Œ _:50/ñä�…  üùûþ‚þûùEÿ}ÿ}ÿ|ÿ{ÿ{ÿ{ ‚’°Þ5Id~D………ƒƒ„Dÿ~ÿ~ÿ}ÿ}ÿs –ÂÕÕÕÙÜÜÖʳ�IÿqÿeÿLÿ3ÿ*ÿ*ÿ3ÿKÿcÿm ‹³Ë×ÛÜÙÕÕÕ•Gÿmÿ\ÿ7ÿ(ÿ(ÿ3ÿLÿf€@þü�… þðßàïýûýÿ‡ÿ‚ ÿüûýðâáðþŒEÿ\ÿ\ÿ[ÿ[ÿNÿ{ ²ÊÊÊÎÒÑÊ»žKÿnÿKÿ<ÿþþþòþòþþÿÿ:ÿGÿl Ÿ¼ËÐÒÎÊÊʲHÿyÿGÿ2ÿþïþïþýÿÿ>€@þ¸�… þìÖØêýúüþ‡ÿ‚ þüúüëÚÙìýŒ055449* .:?IRVVRI@;/,;AQWWSI>i�…  †ƒ  Œ0 $" ÿýüüüü /�… ÿþÿþýÿƒþûÿýúûûûùø„0ííÒÒ  üùÿ ýùñìèåáßÜÜÜßéðóïðùùý�…úñîòýÿÿ…#!"!!!  õäçãàßßßÝÝ„0çç ü÷ýúïÞÓËÇÅÃÃÃÃËÞîòñï÷ø�… þøóôú‚ ÷óñêääääãá„0ÞÞ  ùôû÷êÖÊ¿º¶´³³³½Ôèíëêôõþ &�… þòìïøƒ-+*)))(%ñèäÜ××××ÖÓ„0ôôïïõùüþþþýþþÿþûøôòïðïïðñóõö÷ö÷ø÷ö÷÷÷ôóòñììîïñóé�… ÿýüüý„ ÿÿÿ� þúùûþÿÿÿÿÿþÿ…0ôô øûùööö÷÷øúûúüýýÿúøý  þúó�†ÿýüýƒÿÿïïðñññððóú ÿÿ…€ €Z@@b@½@\@ Àg@ ÀàWZ@À@Z@À@àZ@½À@Z@½À@àZ@@@X@½@@-åòñèèèééééèëìñøýóóþ%4>CDEEEA3#ùüøââ�'ÿý  ýûüÿÿÿÿÿü¼º¸¹ºÂÒìþ/@FFFDBÿþÿ‡öòéããããããäâáßèðþý9azFŠ“•———‹jKC/-¸¸22�€%þ ÿÿüúûþþþþ÷Іƒ„…�¦Öþ +6Spzzzwtˆ,¬ÇàèèèêììèÛÆµ°¤•ŒŒ�©·Ëáêëìéççç߯¬­‰‰ŠŠ›­´´´´@ÿ{�þüú÷òõ÷ýüþ�ÿþüüôðíùÿÿÿÿÿÿÿþ‡ ºÔÝÝÝãçæßÍ­’Œ�Cÿuÿnÿnÿqˆ˜®ÈØâèãÝÝÝÓº¢ Cÿuÿiÿjÿp†›¡  ¡@ÿX�üú÷êÙßìÿùøü‚íÚâÿéÝÙêùýýýýüýüüü‡- $** -//0-+%5�€#þÿ ûøúþþþþÿÿþÿúôöÿüÿÿÿŠ-,  ! û÷öõööööù  ��# ÿÿÿýüÿ þù÷úúúùø‡-,  þñééèèèëóüõ ÿÿø�'÷óÿÿûýþÿþþþÿÿ&%&%$2;%ôñæÜÙÙÙÚÛý‡-÷ü  ûëðçñõæ×ÑÏËÊÊÊÊÏáôåèäêãÝæèèÜ�'þþþþþüÿ üðñåáåååãàýûý‡- # üäêìøüïßÒǾÀÀÀÀÆ×åÙÝÜäéëö'"áæç�'üüüûþ,,('&>M2ÿôõäÙÙÙÙÕÔûý‡-íêöööóõòìí÷ýûþþóùôíççèêëëëâÛáæóüþõòüþþù�þÿüýñýþÿýÿ� üùùù÷ùþþÿÿ‡-*öûûûùøðááö /$!0!# !!!&$  #!�€$ ùüçâñýúÿóóöõôú  ‰€ €`@@z@½@t@ Àx@ ÀàS`@À@^@À@àa@½À@`@½À@à^@@@^@½@@4 :N8Lûðëëëèçèéëðù þ #/8@EILLLE5)')) �‰  ûøúý‚ÿýüº»ºººº½ÄÓì&-8CFFFFF…!QQ OOéåÛÓÓÓÐÐÒÓÕÜê÷ü÷âáö LjG€�—œ   Œ _:50/ñä�‰  üùûþ‚þûùEÿ}ÿ}ÿ|ÿ{ÿ{ÿ{ ‚’°Þ5Id~D………ƒƒ„ƒGÿ)ÿ$ÿ~ÿ¯ÿUÿPÿªÿs –ÂÕÕÕÙÜÜÖʳ�IÿqÿeÿLÿ3ÿ*ÿ*ÿ3ÿKÿcÿm ‹³Ë×ÛÜÙÕÕÕ•Gÿmÿ\ÿ7ÿ(ÿ(ÿ3ÿLÿf€@þü�‰ þðßàïýûýÿ‡ÿ‚ ÿüûýðâáðþŒIÿkþìþçÿfÿŸÿ ÿÿšÿNÿ{ ²ÊÊÊÎÒÑÊ»žKÿnÿKÿ<ÿþþþòþòþþÿÿ:ÿGÿl Ÿ¼ËÐÒÎÊÊʲHÿyÿGÿ2ÿþïþïþýÿÿ>€@þ¸�‰ þìÖØêýúüþ‡ÿ‚ þüúüëÚÙìýŒ4BVVB2FF29* .:?IRVVRI@;/,;AQWWSI>i�‰  †ƒ  Œ4 52èä $" ÿýüüüü /�‰ ÿþÿþýÿƒþûÿýúûûûùø„4öåÊðÕ  üùÿ ýùñìèåáßÜÜÜßéðóïðùùý�‰úñîòýÿÿ…#!"!!!  õäçãàßßßÝÝ„4áïÍÔöâÀ ü÷ýúïÞÓËÇÅÃÃÃÃËÞîòñï÷ø�‰ þøóôú‚ ÷óñêääääãá„4ÕÕàà  ùôû÷êÖÊ¿º¶´³³³½Ôèíëêôõþ �‰ þòìïøƒ-+*)))(%ñèäÜ××××ÖÓ„4îïììõùüþþþýþþÿþûøôòïðïïðñóõö÷ö÷ø÷ö÷÷÷ôóòñììîïñóé�‰ ÿýüüý„ ÿÿÿ� þúùûþÿÿÿÿÿþÿ…4øûùööö÷÷øúûúüýýÿúøý  þúó�Šÿýüýƒÿÿïïðñññððóú ÿÿ…€ €�@@£@½@¸@ À½@ Àà��@À@Ž@À@à�@½À@˜@½À@àŽ@@@�@½@@?äÇÇÈÈÈÈÇÆÅÊÊà ùàÌ¿À·ÔëçåååææçãâË™¤¤¶Íæöôåʬœ”�ŽŠŠŠ•°ÈÝù ###ý¬� 7ÿþþÇ÷ ‚ õÈòõý: æõ‚öêDD=,øåÝÒü¼¼ÁÌÝó %1>Dƒ-Ϊ¬°±±±­¬©¦Ÿ¹çƲ¨¬›âûöööúûÿ ÷™ª¬Äàúð¼€GÿaÿQÿJÿGÿ>ÿ>ÿ>ÿS‡¶ß7KW]biiiS¯�*b63+" óäâ³öõõõ ó�ÄÌãðòù'*Píÿ ñAƒƒuW%ï˽¦ŠBÿÿÿ ˆ›¹ä6E]w@ƒƒÒз·····µ¶ºÂÅËÊÊÀ•UÿlÿNÿ/ÿ(ÿÿÿ)ÿ(ÿ'ÿ'ÿ'ÿ'ÿ&ÿ#ÿÿÿÿÿÿ ÿKÿr“´ºLÿqÿSÿ5ÿ)ÿ'ÿ&ÿ'ÿ'ÿ'ÿ'ÿ3ÿQÿm „¡¯µµ¶µ···«Œ@ÿ�? ùøööõõùÿ÷úôôôûööÿìæë ò ú ÿÿ÷ôôôõöùýÿûùú ƒÆÃ¤¤¤¤¤¤¡£§±¶½¼¼¯WÿxÿEÿ þøþïþ×þÙþðþïþîþîþîþíþìþèþàþÜþÔþØþØþåÿÿLÿv ¨MÿKÿ&þÿþðþíþìþîþîþîþîþýÿ#ÿGÿd ˆ›¢££¢¤¤¤”@ÿn€@þÃ�? ÷öôóòòøÿ$õøñññúôô ÿçßåîø ÿ ÿõñññòô÷üÿú÷ø ƒ?,;GTW_^VXXXXXXZ[]`^^ZI9-:ERWXXXXXXSF;2'!".e�?úüøô÷ùÿÿÿþþýýÿ ûûûûûÿûûüýÿÿýþÿüûƒ?!,-----/0.&#&#0GU]^ebZ[[[[ZZ\diihmlYB3+,AQ_egijkkkeUG;,&#"!!#3f�?ùøþþþÿñëðóþöú øøøýðððôú  üùøôñðƒ?(BBCCCCEDB5-0@FCME79:::<=?ISh~{|hN8*-9K_hlnoqqqjWE8&'q�%ùì þïåç&ãóøòûúöôöûþÜù ‚ÚÚÝæóþ "&&&$þôèæáÝÚƒ?"7BBAAAAED@952!+BD80<'%&((('')044BJK<(!(1,CZdhkmrrrjT>- ý÷÷÷?�?ÿõííîííöþîëòüø  øÿ÷îîîôúÕÕ×ßñ "(***)% òäâÜØÕƒ.+FSSRRRRWUQHB?)!!6STF>>81 üéé�>ÿÿÿCGGEFH?&úõéÙÚÜÝçêëíìñøýÿÿÿÿýû¼»º¹¹¹Â×çô ˆ.óâùðôòàѳ›•“���›£ûèÙÙÙÜÜßåñ*2/&4D^rx{B€€€sj$2888764."ËËEE�?ýýýÿoqsstvh@ ÷î×ÄľÂÍÖÚãçðúþûü�Ž‹ŠŠŠ˜¼Ûï$44:74/,+&! þ‡ ¥¯ÂÑÝááË¿¾·œ€Eÿvÿwÿyÿyÿyÿy"�ŠÄ×åååääåá×È¿´�ˆ€€�›¨±ÆÜãááâââÚÐŒ…Gÿ{ÿwÿwÿwÿvÿuÿuÿyƒ–¯¯¯¯@ÿR�"ÿÿÿÿþÿ þÿýùø÷õùþ‡ÿü÷ûùùþÿþˆ �˜ª¼ÐÛÛ¿­£•Iÿ|ÿ]ÿMÿLÿRÿTÿTÿTÿ]ÿi ¹ÐàààßßàṴ̂™•ƒCÿjÿ^ÿ^ÿt �¢¤½ØáÝÛÝÝÝÓÃKÿlÿbÿXÿUÿUÿUÿRÿQÿQÿTÿ`ÿyœ˜™œ@ÿ$�‚ï ÿ�üõðóòõúþ‚ÿÿÿÿüüÿÿÿÿüõöõõù‚ ÿ �ƒ?!)6>==>===2) "& !)44))* * -9====<=;1% F�ÿÿÿÿ„5ÿüþþþÿÿýÿþÿÿþþÿÿþþÿÿõþÿý÷ùüÿˆ?-& ;@!(('((('(/  !! !!!"##$&*5�!úöøüûùøúÿÿ þ � üùûûüþ‡? %"ð÷    ûìçîîöðí÷ ýîæèèåååéîû÷òîîîïíïðô ïìú�?ÞÚÛÞÝÛßô  &((&&&  ùïïñòõùùïôæïúø�øƒ? þöú  üþùõõæéåÝÚßáêìåêçáâáÞÞÞàÞþòæààààááåîþááï�?ííîðïíìóüÿ  þþþþþÿÿ ÿùõ÷øùü‡?þöñ÷  ü !# Þú óéâÌÄÐÙÖרØÞÜÕרÒÒÒÚÚïÝ×××ÚÛÛÞåóo‚@ÿ{iê�? ßÝÞáàÞÛèõü!"ùþ ûúþþþ)+*'''"ÿ÷ïðñô÷ùøðþø@ý@€@¸ƒüû*ûòîòôôöööÿõï‚+ü÷óóãêøñóíרõêóûûûîïûóðïïïïðïðøúúõõì�üüüüûüúöôõôòîïõõ÷øø�  þ �  "ýýûùùùôëôõüûúúû‡?Këçóö÷øùøòÞßíîïñññóï´Ôõõõö÷÷ùþ    4 .ùù �?þý ÿûúøøüúþðòüþýüÿøøùùøøòúúÿüýüûþþ‡€ €v@@�@½@‰@ À�@ Ààcr@À@w@À@àt@½À@x@½À@às@@@t@½@@;ÈßëëëêéèèãÔĵ­±µ¸µ ·²¯¯´¾éì þß¶²²²²²²²²Íèü-;?@AAA!ÆÐüõ��ÿûùü‚ ƒíí÷ÿ� @@+òññðïíìÖ¿¿¿ÅÓì.@Ð�Ѓ ¶ÍÚÚÚÙÙØÙÕÆ·›€Cÿ{ÿ~ÿ„ÿ �Bÿzÿsÿw ‰¥Ùà%ÛŸ„Gÿ~ÿ~ÿ}ÿ}ÿ}ÿ}ÿ}ÿ}±ê :[qxz|||J‘Ÿ�þ� ýýÿÿÿ�# ððý qqS ýùõïìÁ™™™¤¼å"-Uq½�½ƒ ˜¹ÕÕÕØÚÚÓ阅Kÿlÿ^ÿYÿYÿXÿXÿXÿYÿVÿVÿ\ÿoˆÚÚNÿXÿXÿ”ÿzÿbÿZÿXÿXÿYÿYÿZÿZÿZÿZÿw •¨ÂÒÚÚ×ÔÔÔ·Cÿ{ÿ{ÿIÿI€@ÿ.��öæéö†ƒøøûÿ†  ÿ†ôçåöˆ €©ËËËÍÐÐŰŽNÿxÿ`ÿCÿ3ÿ-ÿ-ÿ+ÿ+ÿ,ÿ.ÿ)ÿ)ÿ1ÿKÿlÒÒOÿ,ÿ,ÿxÿFÿÿÿ ÿ ÿÿ"ÿ*ÿ/ÿ/ÿ/ÿTÿy ‘²ÆÐÐÍÉÉÉ£CÿXÿYÿÿ€@þ÷��ôâæô† ƒööûÿ† ê²�ˆ¢Äé †îÞÜòˆ;*#*2;ACCDDDGDDB;1DD,!-8@CBA5+$55JJU�� †ÿþýýƒ† ë¸�”©ÂÝ÷† ˆ;>)%4@LUWVUUGGSUVWPFGG;FORUUUWWWWWH=1!%MLCDM��ÿÿþÿƒýúúúƒ„ùùñó  ÿù�ƒ;.)6@?6410+-0585%1220/14666) ûïçåãàààù/(ý� ÿÿûóõ  ‚ýüƒ#þþüüÿÿßßèúÿÿ """"! ùöèß"�"ƒ; 0@?<;=:=?A9) /8<>@CDDDD- øêàÝÜÛÛÛòHEúý��þüþþýÿùó÷÷ƒ„ÝÝÖàöþ $###! ùôóæÝ�ƒ;3%!"$"!'/@RURPLHKNSL; 1NUUQOQTVVV9 úéÜØÕÓÓÓðbZù�ÿÿøõ÷ ýýþþÿÿÿƒÜÜé /3(78886. þööçÜ%�%ƒ;ó÷ûûûùùùø÷ôòðîííííååêîîîîñùøååìõúùøõñðïïîëìîïòóóòòñññïðíçéæ��ÿþþÿ‚ÿÿ†ÿ�þþùù þûúúù � ƒ;óõ÷÷÷öõööø÷õìææèèçÿÿåèçåéîõõÿÿû ýñéæçèñöú çåù��ÿÿÿÿƒþþþþ„"QwmT7üïíòòòòõûÿ �ƒ€ €w@@’@½@…@ Àˆ@ Àà`v@À@w@À@àw@½À@v@½À@àw@@@v@½@@;óíìîîîìêøñðìéøóñôú úý/>IP GJOO HMQQQG1!)$ ö�� öìì óììôø‚!ýûû·¶µ¶¶¶»Íóììô ìì +8FJJJJI„!ðãÕÏÏÏËÇæôÒÏÈÄåóÕÒÍËÔÞåôéååîùKlA…� ûBƒ‹� üDƒŠ��� vJ/)ôì��$òßßìÞÞõ÷‚þûù€€Cÿÿÿÿˆ§çÞÞíßß4HazB���„AÿSÿv¢µµµ¹¼ññ¼¼½¼ðñ»¹¯˜KÿqÿQÿEÿ,ÿÿ ÿ ÿÿ+ÿCÿMÿn˜¯¹»Aÿÿ¼½¼¼Aÿÿ¼¹µµµ¢GÿtÿMÿ<ÿÿÿÿÿ?€@þü��þðßãòƒýƒýüþ‡ÿ‚ýüýƒ„óäáðþ‹Aÿ!ÿN…���¡¥ê륤¤¤ç褡•MÿxÿFÿÿþïþÑþÅþÅþÑþîÿ ÿÿDÿx•¢¤AþÔþÓ¤¤¥¥Aþ×þÖ¥¢���…GÿKÿÿþÖþÂþÂþ×ÿ€@þ‰��þìÖÜïƒýƒýûý‡ÿ‚ýüýƒþƒïÝÙìý‹;F7&!*:GLV_cc_VMH;*!^^]]$5HN^dd]Mi�� ƒýƒ‡„ƒþƒ ‹;LC4---,* ))*+ *+.4BNLP\bdZOJJ;(adac%9HDP`bQGa�‚ üüüýý‚!  ýýþüü úùùù÷øþ„;&&"   ÷ïêæíìççìèæææìüC��üúÿ ôôø õõ‚!&&'%%%$õõ ÷ôôðéãÝÛÛÛÙÚÿ„;.29???>>:;=?9991# ÿôñ@Güû÷õ=Dùõôôô$*-+448O��ôñüóóø óóøþƒ *)'%%%%óó ÷óóíåßÛÛÛÛÚׄ;ü÷÷÷öõýüóóôõüüõ÷õñíëäçõüüëßéú÷óñîíððííììðñïîíííñööëíøúóõ�� þþýÿÿ ‚!ÿÿýþþûûûûûûûüýý„;åóóêêêëìýüëìëëûúéêòþúóóñØÓãè÷îïðñ ìîõõóôìõ��ùû�ÿ�ùù ƒ ÿÿö÷ø÷÷÷÷ö÷ùù�þ� ù÷ þþ„€ €Q@@_@½@A@ ÀD@ ÀàDJ@À@J@À@àI@½À@R@½À@àJ@@@J@½@@,EA<5+"0'%%$)6TnUOR\gjuuY]Bƒ�€yhG@��þ::1ýæ¼¼� ÿÿÂÂÊÕáæ�¼¼ÿþþƒFok_P?5H58:>LjP¢Ï¦¥®½ÍÔäТ¶Ô×ÝÖ¹{@ÿ�øccXBŠŠ� ÿÿ””�¯ÈÙ�ŠŠØáîôøøƒ66 ûóí** ýíÖÆÆØðþ ýÈÈü� +Î�‚úíØÈƒ(! ƒ"-ƒ„#HH- ñßÔ >? ýáËÌàú !ÄÃÌ×ëÿ4Á�ûæÁ¤ƒ(! ƒ(=ƒŸ¾åúƒ# ôäØïï   Ôßìôû�òòòë×±’ƒ(! ƒ+ƒ�ªÑæðòƒ#çáï÷ùüöíéõôöýþ÷ñìêíöûîÙÜÜÜÞâ÷�ÿøøý $8�ö÷úüÿ�ü÷õ�äíöüþÿƒ#ØÊÌÏÕÞçæè×ÚÙÖÖÖÓÅ·ÅËÊÀ¶²±¯¿½·²©§¯Å°�ûÙÙãö*''� ÷îìñú%%þ�''  ýûƒ#äÙÜáèð÷õõêèàáàÚм­¸¼¸°¤Ÿ¦«¶²©§£¥±Ì–�€ááé÷"� èìñøþ  ùë� ÿÿþ„ÐÅÄË×åïéèÜÚÌÇ»±�Žš�›‘‚@ÿw „Š—’ɵ—‰�°@ÿy�ûÓÓÝñ*))� ÞÙÜè÷//*úß�))@¤u6ÿûƒ#þÿûÿöúþÿýýúúûúýöûüÿøôöýð� H�ÝÝ‚ººÕÕ„ðÿ/!¾½ ïf@Œùp@‚€÷�¹ûû¹‚Aÿ{ÿ{11¬¬„€FÿjÿÓÿ1ÿÔÿ@ÿÔÿ‡€AÿDÿCÉÇAþûþûÈÇAÿÿÇÇ@þá�‘€=SM[†� && ùúûù�†„ ñö âèàÙçîàÚì� úú ‚!!øø„ññ"#êðÙÔóøÙÓó� ‚„ìó+-ãìÐÊñúÒÉï�!ÿÿ!‚))--„ìíÿòòööóó÷öñ�ÿÿ‚þþ†úûòò �üüüü‚õõÿÿóó„€ €t@@…@½@y@ À‡@ Ààht@À@t@À@àp@½À@r@½À@àt@@@s@½@@:þõññññðððñó÷þ  %)4?ILLNNNN@$ ýçØÌ¼½õ'!îî$$�4ÿÿÿ ýüþÿºº¹¹¹¹¿Ïë )>HHHE:"ùÚÞÞ%%üÿ‡éÜÜÜÛÙÙØÚáî!19!)>RoHƒ”›œžŸŸŸˆV-Ï®˜‡Aÿ}ÿzý F;>=8/$ÖÖPP ��   üúûý‚ÿýû‰ˆ†………�¦×(1OrB��� }nMçÝÝ##ìõÿˆª½ÓÜÜÜáèîêâ×Ç®œ˜ˆCÿwÿqÿqÿ{�¤¬½ÓàæçâÞÛÛÛÑ»ª–Eÿ~ÿqÿjÿhÿhÿh¢¢Dÿgÿgÿgÿkÿr€˜¨¨¨¨@ÿ5�� ÷éâï +C.Œ  (þèÚéù‚…ˆ‹©ÇÒÒÒØàçâÙ̸šƒ€EÿjÿSÿKÿKÿUÿnˆ’©ÆÖÞßÛÕÑÑÑä�FÿwÿZÿJÿBÿ@ÿ?ÿ?‰‰Fÿ?ÿ?ÿ?ÿAÿHÿXÿuŒŒŒŒ@þÿ� ÿÿõäÚâ >U:ƒ�‚!2%ÿÙÐäùÿ‡ÿÿ‡:'   "+6::1'&%" &-5:;<==""=>>=:5-####R��  üîåìõûþ‚† ü÷ñð÷ ÿ�ÿÿÿÿ…ÿþþÿˆ:  )21453592'#þùøüÿ)5=BEFC%$46540,$((!!L�4  óÓ½ÑëøýýýýþþÿøæØå÷  ûûûúü   ÿýÿ‡:ýùýü÷úýÿ ÿùóîöúùõèÚÍÊÌÎÏÏÏÕåôú# øáßàãæíöéåþ�4ûôìÔ¸«Áßñûýýýÿ*(()))"ëÎÐßõîÜÖ×ÖØßï ååâêõü‡:àð  õéãæìîëèÞÏž¼¿ÁÃÃÃÊØãö#'()öøÜÞÝÜÜÝß ××ø�� øæÎ½Òíûƒ#ëØàëûûîèèèççéîòôôÿÿüüþˆ:ìó  üôìçïøúôðåÔȽ¹¹¼¾¾¾ÈÞíÿ'069@ÞÙÛÞàãèØÙ� úîåÓÛüýþÿƒ /,))))#íÏËÛ÷þíÚÔÕÔÔÖÜèï �çòü‡:òôúýýýýúöõøöòìéêòéÒÌÖåñ÷ø÷ôôôô÷þÿøôôóññçèèëíðñûûööå�4ÿÿþû÷û ÿ ùôöùù÷÷ùúûýþúúþÿ‡öýþúúúüÿ�0ýöìߨæÿ   ûøøøøù ôó�þþýñúÿþþþýþÿ‚ þúöûýþ‡€ €#@@3@½@(@ À-@ Àà&@À@&@À@à&@½À@&@½À@à"@@@&@½@@õëëHPÙ?E?ÙôAH&�Ü%%Ü‚##„ßß„Øò=#¾½Gƒ‘ÿîÿsDƒDÿsÒu@ƒ€�Â>>‚AA��ÀÀ„üüAÿ ÿ ÔÓÓÓFÿzÿÿÿ{ÿÿ ÿzÓÓ@þé�ŠˆûüAþÌþËÉÇÇÇFÿWþÏþÇÿXþÅþÈÿWÇÇ@þŸ�þþ†ˆcb6bd5db6p�þþ†ÿˆÿQP úù'-0'úú-�ýý‚ÿÿ�ÿ�ÿÿ„úó Ú×ÞíßÜÚø�ïï‚ññ�� „ûû"#ÓÑ.@ææåC2ÕÓ�ûû‚÷÷�ü�„ÿ+-ÇÃ8PßãáT?ÊÇ� ðð ‚íí�û�„áâÿööñíêìíòöööæ�þþ†�ÿÿ„ÿòòíå æìÿ�‚��ýý„€ €I@@_@½@S@ ÀU@ Àà:>@À@G@À@àI@½À@G@½À@àF@@@H@½@@#ôø  $(->>>HW____^eeedaaa\L>>>>/v�€âëøþ‚ÿþýøñîçâ‚úôóøþ… „"1BB((>SZZZWVYnpnmmmbD)(BC,‚o�€þþ…ýúûûôñ� ù÷ÿ� ÿ„&îïý @@@3÷ï% ðãÜÙ×�€'"ƒ '�'''�'('# „&$''þÿ  ifhkkkY/". à˾¹¾'�€  „ýø�ñþ *,+�+-+ç„099:=?CCC  %%%*-#E’–•••• ~M=R'òÖÉÄÁR�€,+"ƒ,�!3EKK�KMI>&„&ûýû÷õõõõõøùùùùûþöÿþþþþþû÷õõõõõöõòðòÚ�€ ƒü÷õü�úüúûþ�ÿýõð„&øýûùüûüùùóôûþýýýþúäÛÝâââãëòùõõüï�€ÿƒ�Øåôùøöõô�ôõòëÜ΄€ €&@@/@½@*` À+@ Àà"@À@"@À@à@½À@"@½À@à"@@@"@½@@ýëëNñôÒ**Ò(%C �ïï‚A¢¢ƒAÿvÿv„ëùøê¾½@�¯²@ÿf@ÿb53sÛ�õ88õ‚AddƒAþÓþÓ„ ü@þÓÔÓÛEÿ ÿÿþÿÿÍþЄ‚åAþŒþ‹ÉÇÑEþÎþÎþÅþÅþÅþ¼¿¿Ç@þ€�†##ƒÞÞ„€yxbbdddez�ÿÿ‚õõƒ „ððII ë;:4##=ñôø9�†ƒèè„û  Ï" (õõ*ÞáÛ �ôô‚Ý݃„%%"#¶JIOcÙÛÙ(�†ååƒ „þ'.+-¢\Zc|ÏÒÏ2�ää‚Ý݃ „àâÿ÷êíñééñþýùå�ûû‚ì샄€ÿñòòòââàþþÚð�ÿÿ‚ ƒüü„€ €W@@m@½@a@ Àt@ Àà<L@À@W@À@àL@½À@c@½À@àU@@@W@½@@*ëãöëë!!!%&û AHPëØÇÂÀ@IÈÅÂÂÂÅÎ×: �€ÙÙ‚ ýóèîûÙÙÖ×ÚÞÞÞ### ëÙÙ÷âÙÒż¼¼ƒ¾¯ñ½½ñûèÚýõìæuAƒ�µ…KÿXÿGÿ>t‚ÿKÿHÿDÿDÿDÿMÿl�hã�€¼¼þþ‚ûïóúþþ¼¼·¶º¿¿¿@@@༼þþîÐð’BÿÿÿƒÔÔ�ÓÓOÿEÿ2ÿÿÿÿÿÿþòþòÿÿÿÿ#ÿ7ÿHÓÓÓDÿIÿ1ÿÿÿÓÓGÿÿÿÿÿÿÿ4ÿIÓ@þè�‡ “  †ÉÇÆÇOÿþüþäþÛþÛþÛþÙþ×þ­þ¬þÖþÖþÚþçÿÿÇÇÇDÿþûþÞþ×þÖÆÅGþÖþ×þÙþÙþÙþãþÿÿÇ@þÒ�€üüûû‚ ûûüüýþÿ† ÿýüüûû†�&LS[^^^^_mm__^ZQJJT\___^^^^ZRJq�‡þüùûÿ“ÿüûüÿ† �& &''((('(MM((((%!øú÷5:;99úú99999997ûB�‡ƒ ýùùúúúööööú„ƒ*   ÿþþþüûÛÚÔ&.435ÞÚ0355541.á �€þþ‚  þþ èèèñþþƒ""�&##**ÒÓÎIYcdiÔÔiiiiih`SØ=�‡ÿýüý„ ùõøüüüäääæñƒ ƒ+0ÿ)-%!/7" ÇÈÀ[o~A�‰ÍÆE‚…ˆˆˆ†zkÐK�€ññ‚ øññþòôûûû×××Üôññÿ%%%ƒÿ‚$îíêéééééáãêêéèëîööõìêíððöõðññññôóï÷ã�€þþƒþþþþþþÿÿÿƒ*òï÷ôëò ù÷÷÷ôñäçôòòôôñ  ÚÙ××Ü ÙÙÚÚÚÝßÞç�€òòãã‚ ÿíããòòìãÝÚÚÚãããæìòòããåìîóõöööƒ€ €T@@h@½@l@ Àt@ ÀàDT@À@\@À@àT@½À@d@½À@àS@@@Y@½@@)þ öü ëë!!!"" AHPëáÓÌÇÅÄÂÂÂÅÎ×:ú�ñ ñÒîîÒƒýóèéééâÝÜÞÞÞ###öïêÞÙÒż¼¼ƒóþáÖôÿâ×¾½ñû üñæuAƒ�µ•IÿmÿWÿKÿHÿFÿCÿCÿCÿNÿn�hã�Á÷÷ÁÊ�ʃûïëßÕÉ¿½¿¿¿@@@,ìߨݬ‘BÿÿÿƒþþAþæþæAþêþêÔÓLÿEÿ2ÿÿÿÿÿÿÿÿÿ!ÿ6ÿHÓÓÓLÿIÿ6ÿ!ÿÿÿÿÿÿÿÿÿ4ÿIÓ@þè�õõõõ ƒ  Ž  † AþÁþÁääAþ…þ…ÉÇLÿþüþäþÛþÛþÛþÙþØþØþÛþæÿÿÇÇÇLÿÿþçþÛþ×þ×þØþÙþÙþÙþãþÿÿÇ@þà�G‘ŽŽ‘ÿuÿrÿrÿuƒŽ†qp�#ooLS[^^^^__^ZRJJQZ^___^^^ZRJq�ÿÿÿÿƒþüùúþŽÿüûüÿ†)??þþ;; &''(((('&'(&!øú÷5676788999997ûn� ÷÷÷÷ƒýúúúúúöööõöùýƒ)êèæè,*(*  ÿþþþþýýÛÚÔ&),-01355541.á�Gÿnÿgÿgÿn¡šš¡ƒ  èèèìóý ƒ)44þþ00"#ÒÓÎIR[`dfijjjg^SØ=� ÷÷÷÷ƒÿýü ý÷øüüüääääçôÿ ƒèã %VZ+-%!ÇÈÀ[fryE‚†‰‰‰…xkÐ �‰Cÿtÿtÿ‰…pp@…ƒ õëñûûû××××Üîÿ %%%ƒ)ýýäåçèÿîíêéééëêëêêëîööõììïðòñðñññôóï÷Ù�ÿúúÿ„ÿÿÿƒ)ÚÚËÊòò÷÷÷ööö÷öø÷öôõâßÛÙØÖÕÕÕÕ×ÛÞç�wwwwCÿaÿaÿaÿaƒýü úøøù÷öööƒ€ €K@@_@½@Y@ À^@ Àà7F@À@K@À@àF@½À@R@½À@àJ@@@F@½@@%ëë!!!"" øëáÓÌÇÅÄÂÂÂÅÎ×:Hø �ƒýóèéééâÝÜÞÞÞ###öïêÞÙÒż¼¼Ý݃¾½ñû üñæò µ•IÿmÿWÿKÿHÿFÿCÿCÿCÿNÿn�h@ƒñÿ%ã�ƒûïëßÕÉ¿½¿¿¿@@@,ìߨݬ‘Bÿÿÿ€»ýý»ƒÔÓLÿEÿ2ÿÿÿÿÿÿÿÿÿ!ÿ6ÿHÿÿLÿIÿ6ÿ!ÿÿÿÿÿÿÿÿÿ4ÿIÓÓ�Aÿcÿc€@þè�ƒ  �  ‹äâLÿ/ÿþÿþöþöþöþôþóþóþöÿÿÿ3Lÿ4ÿÿþöþòþòþóþôþôþôþþÿÿ4ââAÿUÿT€@þÏ�ƒ�„ÿÿ„LS[^^^^__^ZRJÿÿJQZ^___^^^ZRJ�??q�ƒþüùúþ�ÿüûüÿ‹ &''(((('&'(&!ÿ5676788999997ûú�99B�ƒýúúúúúöööõöùýˆ%òóîêäããããââåèêëíæ Æ¿ìæÛáç�ƒ  èèèìóý ôôƒ"#ÿûIR[`dfijjjg^SØÓ�úú=�ƒÿýü ý÷øüüüääääçôÿ ˆ')!üWbnu{~D‚………� tgÌÄH�ƒ õëñûûû××××Üîÿ %%% ìì ƒ%ÿîíêéééëêëêêëîììïðòñðñññôóï÷öÿèìã�„ÿÿÿ úú ƒòò÷÷÷ööö÷öø÷öôõâßÛÙØÖÕÕÕÕ×ÛÞ�ç�ƒýü úøøù÷öööˆ€ €V@@h@½@n@ À{@ ÀàEO@À@V@À@àO@½À@\@½À@àU@@@N@½@@)¡ÝëÏÎĶª§§¥¤¤¤©­ªÔäùñ ûðäÞQ Ûäùðù�€à$$$ýíêâÙÕÓö¶¶�××ÙÚèìíîíëåÞÚÚÚÖÿÿÖƒ@ÿEÄØ­ž„Jÿoÿ`ÿ\ÿ[ÿZÿYÿYÿYÿ^ÿlÿy´Îñæ#3þøìâ@Š ÁÌïäì�€Ï333'ïÛÖË¿¹­”„„„�ÊÊÓÕçïîæß×Ìÿ¿¿Á÷÷Áƒ@ÿ9ÎÎMÿ_ÿTÿAÿ2ÿ(ÿ&ÿ'ÿ(ÿ)ÿ)ÿ)ÿ.ÿ@ÿPÎÎPþüþüÿ6ÿ>ÿ0ÿ(ÿ(ÿ(ÿ'ÿ&ÿ(ÿ0ÿ>ÿRÿ_ÿ½ÿ)ÎÎAþüþü€@þü�„   ‡   ‹@ÿÂÁMÿ2ÿ"ÿ þùþïþìþðþòþóþóþóþûÿÿ'ÅÆPþ½þ½ÿÿ þûþñþñþñþñþëþïþýÿÿ(ÿ4ÿ³þòÃÃAþºþº€@þ¸�€ ðìììôúõéú  † èüùìììõõõõƒ)PAMWXXYYWVVVTNGiiNHRVVVYYXXWMAViii�„ ÿÿýû† üûú ÿ‹)UIEGNXZYYYYYUT[ffD;EIIIIJHHF@;Dfff�€ ýöööïëòÿÿÿ�ýƒ ûùúþÿù÷ûýýýˆ)B1(%,599::::8?L ýò  Þ=�€çççåéü%%%�÷ïü þþƒ)V%":56;CFGFFFFHMR*&##ìÿ  4Õ&&###�€üíííæåï ƒ ýÿùõùüüüˆ@€ <8lhglu{zzzzz|A‚ˆD=OS!*11123-(+BYã#@;MRd�€ùäääßäû � ùëòÿÿÿ ÷÷ ƒ)ïûöèÞÜãéççëíííêèëûúÝÝàáßåååááâæë÷ êùøÛÜÜ�€ìììîïêáçöùý� úøõââéðòñññ�úú„)¿ñðæÚ×ÜàÝßâääääâàñññðÿýýýøöøùôîéùððððñ�€üüüüùëÝçùûþ„ öþÿæáéõþˆ€ €A@@W@½@K@ ÀM@ Àà6?@À@?@À@àA@½À@?@½À@à>@@@@@½@@ôø  $(-�€üü�èè�üüùùƒúí½ÞàâÕÒÖÐÌÿýÏÑè�€�ÐÐ�ÿííÿƒ==/Î [ð íí 8�€þþéé�½½�ééþþÿêêÿƒKK%?Ä oåçç% F�€þþßß�ŸŸ�ßßþþþßßþƒ÷ùýýø óñåÛñêêòðþþëëå�€�óó�ƒçèóôê"ýúÐé üû óõýúé�€ ��  ƒ€ € `@@½@ @ À @ Àà  @À@@À@à @½À@ @½À@à@@@ @½@@ýñû:05�ææƒìì¶¶¢�‡ææ££‰�‡&�‡üü �‡òðåèÚ�üüƒããÙÙ½�‡ÜÜÎά�‡ö÷ö�ÿÿƒ �‡€ €@@@½@ @ À$` Àà@À@@À@à@½À@@½À@à@@@@½@@€ *'ãïE9åñG;*�ƒÿ;;ÿÅŃ€SLéÿ@‚lÑçjTS�ƒÿiiÿ——ƒ€Aÿuÿj õŒŒˆˆââÞÞ@ÿj�ƒÿÿÿÿƒ €DÿPÿCÿòÿnÿiÚÕ@ÿCƒÿÿ€ 8=//11 =�ƒÿÿÿÿ‡€ KPLK@AP�ƒùùÿÿƒ€ óì!ÔÚ ÒØó�ƒÞÞ"ÿÿ"ƒ€  ïåë$êð �ƒååÿÿƒ€ % æ) Úã/&áê �ƒÒÒ.ÿÿ.ƒ€ æßúêéàâÿýôõß�ƒûû�ƒ€ õûóö òôû�ƒ õ�õƒ€ € @@ @½@@ À@ Àà  @À@ @À@à @½À@ @½À@à @@@ @½@@€*'*�‡€SLS�‡€Aÿuÿjõ@ÿj�‡€AÿPÿCò@ÿC�‡€8==�‡€KPP�‡€óìó�‡€ ï �‡€% æ �‡€æßúß�‡€õûû�‡€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ éãÿ ïê', & � üââââüƒ ÷ô ÏÃ>J ô2>ƒ€ÈÈ77�77ÈÈ„ ÕÏííÏÉÊб±ÐÖ°�ƒâ⃃ ÊÂè軼ÜœÃË›�&ƒÚÚƒ&ƒ   �ôƒ ƒôƒ    ƒ üüƒ  üøìì÷üñîñ�  ööÿÿöö ƒ þ ôòöôì� ÿ ùùùù ÿƒ ýðîôñç�  ööýýöö ƒ� þüÿÿ÷÷øúùøý� ûûþþûûƒ ûûÿüûþ� üüÿÿüüƒ€ €@@ @½@ @ À @ Àà  @À@@À@à@½À@@½À@à@@@@½@@  �ââƒô ôƒÈ77ȃúó·¾°�‡øð¤¬›�‡ �‡ûûƒƒù÷öùñ� öö ƒéëì� ùù ƒùâåüç� öö ƒïóý�úúƒ€ ÿ�üüƒ€ €@@@½@@ À@ Àà@À@2@À@à@½À@@½À@à@@@@½@@ %ÿÞô-ñ7é)� ìþá-ãþðЃ FüÄæJ(ð:qMêH� Ö5Ü.Y+Îü(Öªƒ åäÆÙÚÈ©©È³²ÇÁ� ÿçéçæÿƒ ÞÝ·Ïк’’ºŸ�¸°� ÿáãáß"ÿƒ ##� öö ÿ õöƒ  #% "ú� ÷ö üþòøƒA¼ªÒì€AÿOÿg<&@Œ€â�)BÿxÿVÿn"úáB�®•åƒ ! øñö Ò� øÿëèîûƒ "*&óíóÆ� "ýþýÜÝàþ"#ƒ ÷ûòòöðïíúûû� úùúÿ ƒ ý÷óôþýüúû� ùÿ þÿùöƒ€ €@@@½@` À` Àà @À@@À@à@½À@@½À@à@@@@½@@€ íô$îõ$ � ââð ðóóƒ ô ôÇÓ8,ÇÓ8,ƒ È77ÈççääƒöºàÝÓа�!èßô¨ØÔÈÄÆ›�*âÖâ  �öó ùúüüÿÿýý„ ýÿÿýƒ ùóóøÿûìðÿúëíñ� öö � ùùƒ úöøüñóïñì� ùù þùùþƒ øòõûÿéìíïç� öö ýôôý  ƒ ûüýþÿýö÷ý� ûû ôññôƒ ýþ� üüúýýúƒ€ €`@`½@ @ À @ Àà `À@`À@à`½À@`½À@à`@@`½@@ ÿ ý  �ç!!çÞÞƒööò òƒÐ??ÐÀ//Àƒó·ù½°ññð¤÷«›íí úúüûüûƒ‡ ùõöûüøøûñ�ððùùƒúöøüþúü�ì�òò�ƒ ý÷úúô÷ýç�ÿÿííƒ ÿûýÿûýý�ûûýýƒ��ÿÿù�ùƒ€ €.@@+@½@.@ À.@ Àà.#@À@.@À@à.@½À@.@½À@à.@@@.@½@@ïÜý áþ ô0 * �üÞÞçç!!!!ççÞÞüƒݲùý½üÝ.XüNù.ƒ€ÀÀ//ÐÐ??�??ÐÐ//ÀÀ„âßúùâÕóó×ÔÔ×··Õཾßâ°�ññññââññññƒÚÖø÷ÚÊððÍÉÉͤ¤Ê׫¬ÖÚ›�&ííííÚÚíííí&ƒ    �ôúúúú úúúúôƒûüûüýûôöýþ ƒ„�ˆ üúÿú÷ôóäã÷üòñúüýüñ�ùùððøøððùùƒ öôûõôñèäØÜóöéñöøþì�� òòùùòò�ƒ óïô÷òòëÛâõúõçòöùûç�øííÿÿÿÿííøƒÿýÿþýùûýÿøûýýùý�ýýûûÿÿûûýýƒûü  ÿ�ýùù� ÿÿÿÿ�ùùýƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@÷´íøø �ü6Îéƒî@ÿSÚî÷僀lš+Ôƒñò ãã­¯°�!ßáüƒíî†ÛÛ—™›�'+ÖÙûƒ& " �óó þƒ ƒüøÿþƒ & ñ�éýýù ƒ 3 ì�ÿëýþƒ Bç�éýüüƒ€ÿÿþ÷ûý�üüüƒûýìúüùú�úþÿƒ€ €@@@½@@ À@ Àà @À@@À@à@½À@@½À@à@@@@½@@S �üèËÿ2ƒÿñ@¤ƒ€Ô+•þgƒÉÿý»º ɰ�üáß!ƒ»ÿü©¨»›�'ûÙÕÿ*ƒû  óüòôþÿîûƒüÿùƒïîîïôÒêñ� úýìƒïììïóÇìì�ÿþïƒêæçêî·åç�üüëƒþüþúüý�ûüýƒ�ÿþøÿƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ Áú � ü6Îéü66üƒ "@ÿoö  !" ƒ ÿk™ÿ*Ónn„ ¶ùùÃÅ ÑѰ� ôÓÕðø----ƒ £÷÷³¶ÅÅ›� ñÇÊìö9999ƒýý� �øø‡ ù÷ûú÷÷�� ÿû ùøøùƒ øóüøöùùôò÷ù� ëÿýù ëëƒ ïêñïòòîëíðø� íÿþïïþƒ ëäíëîîéæçëö� êþýýððƒ ûüþúüû� ûÿýúþþƒ ÷�  „€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@  ÿN � ýéÌ3ü66üƒ  ô@§ "" ƒ€Ô+•þgnn„Á÷õ³²Á�Äİ� øðÕÓô----ƒ°õòŸ�°�´´›� öìÊÇñ9999ƒ þ �øø‡ üþ øýýƒ þ ûùøøùƒ ùù÷ùþÛõûöõùñ�  ùüÿîëëƒ ôññôøÌñóïòõì�€ ÿðþïïþƒ ñííðö¾íðêîòç� ûüÿëððƒ üÿÿûüøúýþý� úüÿúþþƒ �  „€ €&@@#@½@&@ À&@ Àà"#@À@&@À@à&@½À@&@½À@à&@@@%@½@@÷ñ ÿø5< .4$ �€çç!!!!ççü66üƒÌÀýÙÌGTý;G ƒÐÐ????ÐÐnn„ÕÏíîÐÉÊѲ±ÐÖúú¾¾°�òòòòÔÔòòòò----ƒÊÂèéû¼Å�œÃËøø¬¬›�îîîîÉÉîîîî9999ƒ   � ùù‡þÿùùþþüýü÷öÿ„ýýøøøøƒúþóí÷úäßìòåäïëêîñ�ÿððùùððÿëëƒ ý ôñÿöôÿûý�ì�øòòûûòòøýïïýƒÿóï÷ôýøûþç� þþþþ ïÚÚïƒýÿø÷ùúúùþýøùý�üüüüüüþþƒûúÿÿüûþûüüú�„€ €z@@x@½@m` Àv` ÀàF u@À@z@À@àz@½À@z@½À@àv`@@z@½@@;òðî÷þù÷ñîÿþùúû þü ÿü !  #�9îõ ÿôîîîìéçâââèîíô þóíííêèæáááçíƒ9×ÒÈÓííóòïàÓÍÀ¹ÿììåèêù  ûñü üöéâ+/78("/5AIƒ9Üé &*333(üéÝÝÝÖÑÍÄÄÄÎÜßì #)-666+ÿìàààÙÔÐÇÇÇÑ߃#""íîííæÖDZ°±±±±ÈØçíòóòòëÛ̶µ¶¶¶¶ÍÝìò¢"óòóóóñóóóóôôóòòóó&%%èéèè˸œ›œœœœºÎáèîðîîåѾ«£¡£££££ÀÔçîïî‰%ðïïðíïðððññðîîðð       &þýýþýýüýþý8 "%"!"#!!#"!!!  ÿ  ý�(�ÿÿÿýýþ…‚þþƒ;  !" !%% ÿúøøùÿ   üö÷öô�9 üõõõùúùõõõ÷ôô÷ÿ    ûûûþÿÿûûûýúúý  ƒ; (/.-+))3HPMMQD=7577;EE8ù !)&&*÷îñðì1�9 úõõõýýüûûûøóó÷ÿ   ýýýûûÿ ƒ;49CB6758>TdcdhXSKGLUSUOI5(+(#ü þþý+++/ýðòðë>�9þþþúú  ýöööÿÿÿÿÿÿùòòù ƒ&%%þþüùùôóööòòôô÷ùüûùÿÿÿúù÷óööòòôöùüüúò%ÿþýûûüþÿÿÿüýûüþ;/::<971'$%*.4, ! êõ ÿüý öêããâááéöúøóïì�9ýÿþýýýþÿÿÿÿÿýùûþþýþÿÿÿÿýúùùùùûúûûûûùƒ€ €@@@>@½@.@ À.@ Àà, @@À@@@À@à@@½À@@@½À@à@@@@@@½@@íðõþ þû÷õûú÷øú �ðø öðððîëéäääêðƒÍÓØêñäÞÕÒ ÷ääàãç÷ ƒãñ !!!'-1:::/""ðäääÝØÔËËËÕãƒßááßߨÈÀ¹ª£¢£££¢¡¢££«»ÄËÙßßßߢ�…þÿ‡ƒÿÿÿˆÖÙÙÖÖ͹¯¦“Š‰ŠŠŠ‰ˆŠŒŒ—©´½ÏÖÖÖÖ‰�…ýÿ‡ƒÿÿÿˆ #%%&%% &‚ƒÿ��),*('))-00..-*#(�ÿþþþüüÿ�ÿÿÿÿƒ  !$%))  � üöööúúùöööøõõù  ƒ2/')?GD@@34;BGGKRRC("%%1� ûöööþþýüüüùôôù  ƒ@94-!!"'.EUTQQADIMT][\VN9,/0/>�ùòòòüûûûûûõîîö   ƒûûûûø÷öõôòòóôôðïïîïññòôõøù÷÷öò��þþþüûûûûûüÿÿÿƒìîòôôõôôðæäåææìêéçääâßßæðôòññì�üþÿýüüüüþýþþþþüƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ÚÔ �þããþƒ‘„ø�€ÇÇ44„°©ä婯°�ƒƒ›’ÝÞ’™›�&ƒ&ƒ # # �ôƒôƒ �õúúùùõƒ ùóõøò�üîîüƒí�óüüííóƒ$' è�óûûååóƒÿÿýúõ÷ý�þþƒôóþÿýý�ƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ïóðÿ$ð�û�ûûÈûƒ»½²Ø*Ï�„—„ðÐȾ¾Ìñº�///ú/ƒìú¬¬¾í¨�;;;ø;ƒ�ïïïïƒ   �ù�ùùùƒ€ÿõöýî��ƒ !' �þ�þþþƒ(* 5( ��ƒ€ýõõüùøý�ÿÿƒòóööðóûû�ÿþþÿÿöÿƒ€ €¡@@¢@½@½@ ÀÀ@ Ààœ¢@À@¤@À@à¤@½À@¤@½À@à¢@@@¤@½@@?ýôêåååääåçíòôý ýúûûûÿðåãáãçîóüìæä ãäääèóþ !ƒôô÷ý�  þþ�2ýøöôôôñëèëñô)) üôçÝ××׿ý !)))øôïîéÞ×××ãö)ƒ?úìåååããæíöûöþ û  õóõöûãÊÂÁÇÕëü*S_bb```U8Ö­¡ž ž¡¡¡«Èäú6>?4ƒ?ææëõüüúø#/6/# óêæææÞÑÊÑÞæLL6ñÖÁ´´´Ïü (>LLL0ç áßâ×´´´Êì6Lƒ š»ÞêêêêììâÀšƒXÿfÿTÿMÿFÿ2ÿþûþÚþ¹þ­þ­þ­þ«þ«þ­þ²þ¿þßþûÿÿ/ÿAÿIÿPÿeƒš‚EÿaÿOÿJÿMÿZÿl ‡šÁäììëêêêܺRþûþÕþ³þ«þ«þ¬þ­þ­þ­þºþÛþûÿÿ4ÿGÿKÿGÿ4ÿ€@þ—��ûñéìóøûþ‚‚ ‚ÿýüýÿŽûòîôû… Œ €©ÔääääææÚ°€cÿcÿ>ÿ'ÿÿþüþÔþ¶þ�þcþTþTþTþRþRþUþZþlþ“þ¶þÔþøÿÿÿ"ÿ<ÿbÿ€ÿaÿ7ÿ ÿÿÿ.ÿEÿh €±ÝçæåäääÓ¨Rþ¶þ†þ[þQþQþSþTþTþTþdþŽþ¶þÕþþÿÿÿþþþÕ€@þ8��úíãæðöùþ‚‚ ‚ÿüûüÿŽúïéðú…Œ)  )2=EHKS_ivH„‰‰‰ŠŠ‹‰‚ui_TMJG?3)3@HIHD;0)  ixG‡‹ŠŠ‰‰‰„ vi_RKIJR_@‘�� ƒþþþƒþú÷ûøûüýÿ‚Ž‚ÿþþüûùüÿŒ?!$5EA==>AGPWYZZZZYYWSM>37;;96/'53;?>A>;88% *@S][[\ZZZWMBC=675;@x�ýýþþ��  ‚1ÿýýýý÷ðíð÷ýúúúþùùúþþúúú ýùøúƒ? üõñìëëëîîìëéëïñ÷úúûÿ   ÿýÿþþþëöûóüúòòóøö�?    üùøùüææðÿ ýþúïæææôÿü   ûíåæƒ? ûú÷ñîîîïîïîìæäëøÿüûýûêêëëíííïüè þðøôèåãîòû�?ÿÿ ""   ÿÿÿõêçêõÿççïý ûüùùýòçççø  þìäçƒ?ÿ#) þÿøíææææâßÞÝØÕßóüú÷ùÿ "%%"üãâääæææëûßüïõßËÕÕßåø�?ÿÿÿÿþ !ûöùýÿÿÿòæäæòÿÜÜÚè !''' ðëäßèéãÜÜÜìýÿ "'''è¾ÀÏ܃?ôøùúúúûûúùòìììëêéæâßÜÚÙÙÙØÙרÝâèèéêëìïòîîíìîíìïððòôôóòóóóóïåáÞßßÞßßßàäçæâßààáäÔ�)ÿÿÿÿþýýýûûùûûýýýþÿýüüþ‚ýüüüüüüþÿ� ÿÿÿýüƒ?ýûùùùù÷÷ööôô÷üþþýÿ ÿýúýùôõôõùúø ÿ ÿùúûúúúúû �?ÿúùõñóùýÿÿÿú÷õ÷úÿÿÿÿþþüüüÿ  þúöõöööû ÿþ üùüú÷öööõú ƒ€ €9@@D@½@3@ À5@ Àà49@À@9@À@àG@½À@I@½À@à:@@@9@½@@äðûéëìõ 9_SJB?@A[XSE,@�€ 886324ÇÕéõý� ÇÇÊÏÖÙC0 „ ÒèðõôññÍÑÞø&mI£�‡ƒ‚…†ª¥–{My�€ kkhecdž¼âöÿ� ••›¥°µtN …êêçææäáðîéåäåêêîòððòâãååæèÄ�‚þóÛÅ …"1Óàñûþ„ääàÝÞÜÙìêäÞÜÞääêîììîÚÜÞÞÞá´�‚üíж) ÿƒ+>Ç×ëøþ„   �‚ÿ óøþÿƒþúòì …øæßâæåèðòæÍ²³ÀÏÚÚÖÖÔÐÕàöÁ�€ ûûý 'Aéõ� ûãÎýÿ„ òÝÕØÙëëïì×­†ŒŸ²»»¹¡£¥®Ãìœ�€ ããçîõø � ÿòÃÓë÷ÿ„ ýäǼ½ÂÌÏÐÄ¥DÿpÿDÿIÿaÿ|‹Š„Bÿsÿsÿt€žÖ@ÿI�€ ææéõ+öúþÿ� ãÈÞçóûÿ„ ýÞ»ª¨«¾À¾®†KÿFÿÿÿ6ÿZÿmÿoÿkÿMÿOÿXÿn–Ô@ÿ�€ ÙÙÝçú ÷ôô÷ü� (("öàÆÞù„€ÿ  þÿþýþ� õïïðïæÛ �  âæìðôõƒÿ  1KI?40028:<8,I�€ üïý÷ùû� õõøþ  „€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@�ð�„�ê�„�@þà�„�@þ”�„�t�„�j�„��„��„��„�Ü�„�ù�„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@�þ�„��„�@þæ�„�@þœ�„�q�„�l�„��„� �„��„�Û�„�û�„€ €@@ @½@@ À@ Àà @À@@À@à@½À@@½À@à@@@@½@@ èç((É»6E��¼¼ƒÄÃ##Cÿ[ÿ?pŒ€å��AÿÿƒÏÎCÿÿÿÿÍÍ@þÐ�‹ÂÁCþÀþÀþÁþÁ¿¿@þ€�‹gfzƒ ((985�„„ õõ,2çà�„„!"�QVÕÐ��ƒ *+ÿÿhnÊÄ!��##ƒ ýýèèïñööç�„ÿÿ„ óóÿÿßÝõ�ÿ�ÿÿööÿƒ€ €@@,@½@%@ À%@ Àà@À@@À@à@½À@@½À@à@@@@½@@ ïüÛßî.RNr=.�Eþ¸�¼¼üEEƒÖòŒ»Õ4B¢qÚP4 �@†ÿ��Dÿÿÿý‚‚ƒÞÝ@ÿ[ÝÝFÿÿÿØÿUÿÚÿÿ€@þî�€ü„†ÕÔ@ÿ0ÔÔFþÓþÓÿÎÿ(ÿÐþÓþÓ€@þ¦�€û„† CaaEaan�€ÿ„ÿ†  ìþì%�€ý�üü„  ëðÅȸäëô�€ä#�ââ„ é¢äéö�è�ééƒ  &áè�§‰Ûáó�Ü "�##ß߃ ÿþùÿêëúñôèêë�€øÿ�ùù„ úýòùú%% �ÿ ý÷�ööÿ ÿƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@  ÿ?:#k`~�€ÜßúB†ô þ@�u1AÏÏ€@ý�€µ¶ó+{†Ž×ìíÜ’Aÿ=ÿ<’@ÿK�€øþû‡@ÿpÍæèÒCÿuÿ ÿ ÿu€@ÿ�€öýù‡ .,OO,I�€‡ û �€ýùÿ† ûöøïñ×èÁ�€úç† ÷þôñäæÀט�€ ùñ† ôýñíÜß®Ì@ÿ|�€õê† ùúÿþòïîäéæ�€ý÷† ÿ *�€þþü†€ €{@@”@½@Ž@ À“@ Ààk|@À@z@À@à{@½À@z@½À@àz@@@y@½@@=÷ôôôòïîîìæáÏÈÊÉǾ»Â þåÖÏÌËÈÈÈÑæú+8@DFIII@)��ùöúÿÿÿƒ# ýñù??8*úìåÛËÁÁÁÇÖï $.:?ƒ ôâÛÛÛÙÖÔ×ÖÌÀ“Gÿrÿqÿpÿnÿbÿcÿtÿt1)%&&&%"㨊Eÿ{ÿuÿuÿoÿoÿoƒµäTrE�ˆ‹���{F÷��ûøü‚" ƒ#&ñÞëùvviO"ûãÕ¿�ŠŠŠ—²á/=Slvƒ œ¸ÖáááãääáÓµœˆDÿjÿ`ÿ^ÿcÿtŽ¡¡Ÿ‰Jÿlÿ^ÿ^ÿ^ÿYÿTÿTÿUÿWÿ^ÿn‡œ�HÿdÿWÿTÿTÿWÿWÿWÿWÿc €œ·ÕáääâáááÕ·@ÿ4��ÿöëí÷‰û‚ 5<$ ‚†ùóòùÿ„ ‚¥ËÙÙÙÛÝÝÙÇ¡‚FÿhÿCÿ6ÿ6ÿ;ÿOÿpŠŠ…XÿiÿEÿ4ÿ4ÿ4ÿ.ÿ'ÿ'ÿ(ÿ*ÿ3ÿGÿhÿ‚ÿ_ÿ;ÿ+ÿ'ÿ'ÿ*ÿ+ÿ+ÿ+ÿ:ÿ_ ‚¤ÊÚÝÝÚÙÙÙʤ@þþ��þóåèô‰ü‚ %CL@‚ †øðî÷ÿ„=( (0<@A?8-&&'0RTSW``UUîöùöööûÿþýþþ ;GNQSWWWL1ýàÓÍËÈÆÆÆÑí�‚ÿø÷û‚þ‚$ñåí÷  ûñòù××Õ×ê%)))("íàáÛÖ׃=÷úüýýýÿÿÿþþýûúøø÷÷øûýýõôòñññïîîíîïòõõùø÷õõôööööö÷øøúùøøööööõï��ÿýýýþ‚þþþÿÿƒÿÿþþþúúüýÿ� �þýüûúƒÿûöõõõ÷ööö÷ù÷íèååäááääúúÿ�þúðéæåãäääèñù ú�‚ÿþþÿƒÿÿþ‚  ûöøûÿÿ� ûúûú÷õõõõøû ƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@� �„�ð�„�@ÿ*�„�@þò�„�V�„�'�„��„��„��„�í�„�÷�„€ €È`@×@½@ø@ À@ Àà¾É@À@É@À@àÇ@½À@Ö@½À@àÉ@@@Ã@½@@A@<C9óéææåããäèêðõööúúúùøäÜÔÓÑèû ic[YXXZ^`fklooppoYKHGF]p}A€€xGƒ<!+)&" ;95$0ááïèäâááááßÓÚßáãâüëáÜÓÅÆÖáæðòý?ii þþþýüüÿ  ### ïßÕÐÎÌÌÌ×ï1@JNOPPP9xpgbbba``cglnvI„„„‡‡‡…�{� lSC942000;Sg|H•¤®²³´´´�€r�†  ƒùðòõøùûþ553*ùéâ×ÍËËËÍÖì/5‚  ƒùñòõøùûþ553*ùéâ×ÍËËËÍÖì/5ƒÀAÿ ÿ¶³ÈßçççæçæåÝȳžˆDÿÿÿÿ�ÿ€�ŠŸ¶£�‡…„…………�¢´ÆÙáââàßßßÎnÿÿ%ÿ<ÿDÿDÿDÿCÿDÿCÿBÿ:ÿ%ÿþûþåþÜþÜþÜþÞþÜþÝþÞþçþüÿÿþíþäþâþáþâþâþâþâþêþÿÿÿ#ÿ6ÿ>ÿ?ÿ?ÿ=ÿ<ÿ<ÿ<ÿ+€@þâ�…ÿûööú†  ýýÿ þýúööþý�ÿûööú†  ýýÿ þýúööþýƒ°AþÎþ¤œ·ÕààààááÞÒ¸ †Hÿiÿ^ÿ^ÿ^ÿ`ÿ]ÿ]ÿaÿn‡¢‰Hÿoÿdÿaÿ`ÿbÿbÿbÿbÿm ˆ ¸ÑÛÝÝÛÚÚÚÂnþÎþéÿÿÿÿÿÿÿÿÿþêþÒþ¸þ›þ�þ�þ�þ’þ�þ�þ“þ þ¹þÔþ»þ¡þ–þ“þ’þ”þ”þ”þ”þŸþºþÒþêÿÿ ÿÿÿ ÿ ÿ ÿ þô€@þ—�…ÿúóóøÿþÿ‚  üüÿ ýýöïïûü�ÿúóóøÿþÿ‚  üüÿ ýýöïïûüƒ?bf $*144455551&#'.13212222* \VOLLLNLLMR]f#lsvvvwwwwsheipsutsttttlaZSPONNNNNYs�†‚ ÿýûüý� ÿüø÷ûþÿÿÿƒ‚‚ ÿýûüý� ÿüø÷ûþÿÿÿƒƒ?%a^ <1&"""$#""&.8BNSSSOQQRNE7?EIJKKLLLI@:3,((()***/J@622243325@DA7!/=<<.8AEHHJIII=.${d[[[XWVVW\^ly~~~D€‚††ƒ}mwG€„‡‡‰ˆˆˆ |mcYUSRSRRR^m�… öòùÿøòò÷ ‚þüþÿÿ õñø‚þ÷ññö ÿÿÿýûý�ÿ‚�ÿ� öòùÿøòò÷ ‚þüþ„?'{_ ZC9999645:CHWgllllorqj_Q^krwxyxxxhSF71/-/---=@) ).=MRRRRUXXQE7DQX]^_^^^N9,#A—€vvvvsqrwY€…”¤©©©©¬¯®§œŽ›¨¯´µ¶µµµ¥�ƒ tnljljjjz@‰�…4  öñúþôììõ ÿýþ ýý ÿóî÷‚ûñééòÿ ýþþüúûÿýþý‚ÿþþ�*  öñúþôììõ ÿýþ ƒ?øßÙóÚàåååææææäâßÜØÖÖÖÖÔÓÖØÚÜÜÚÚÜÛÛÜÜÜÜÞáááààáßßßßñöûûûüüüüúøõòîì?ìììëêíððóóñðòññòòòóô÷÷÷÷ö÷õõõöÆÌÑÑÑÒÒÒÒÐÎËÈÄÂÂÂÂÀ¿ÂÄÆÉÉÇÆÈÇÇÈÈÈÈ ÊÍÍÍÌÌÍËËËÌË�…ÿþýþÿÿ‚'ÿþþÿüüüÿÿÿÿÿÿýýüÿÿýýüýþþ�"ÿÿÿþýýþÿûûûþþþþýýüüû�ÿþýþÿÿ‚ÿþþÿüüüÿÿÿÿÿÿýýüƒ?÷ÛßùáéîîîððòòïîìäßßßßÝÜÝßàßæãÞÜÝÜÛÛÛÛáçëïðññòñññíèðõõõ÷÷ùùöõóëææ?ææäãäçèæíêåãäãââââèîòö÷øøùøøøôÏ×ÜÜÜÞÞààÝÜÚÒÍÍÍÍËÊËÍÎÍÔÑÌÊËÊÉÉÉÉÏ ÕÙÝÞßßàßßßÛÓ�…ýýü ‚û÷øüÿ�ÿÿ‚ÿýÿÿ��ýýü ‚û÷øüÿ�ÿÿ‚ÿýÿÿ��ýýü ‚û÷øüÿ�ÿÿ‚ÿýÿÿ�ƒ€@@@@½@@À@@À@à@@@êêíƒÿãêêãÿƒÔÔâ--ƒÿÓââÓÿƒüüÿƒ€„ ÷ýýƒ ƒþüüƒ€„€@@@@½@@À@@À@à@@@íå�åí„êèè„âÓ�Óâ„âÔÔ..„ƒ„þþü„ � „ úúô„�„üüþ„€@@@@½@@À@@À@à@@@€íêꃀ�ƒ€âÔÔ--ƒ€-�.ƒ€üüÿƒ€üþ�þüƒ€ ýý÷ƒ€ôó�óôƒ€üüþƒ€þý�ýþƒ€@@@@½@@À@@À@à@@@"�"ƒêèèƒ((8�7ƒâ..ÔÔƒþþ‚ÿƒüþþƒôôó�óƒ ôúúƒþþû�ûƒþüüƒ€@@@@½@@À@@À@à@@@ åííåƒ êêèèƒ .ÓââÓ-ƒ â..âÔÔƒÿÿ�ÿƒ üüþþƒ ÷÷õ öƒ ôúúô ƒ þþüüƒ þüüþƒ€@@@@½@@À@@À@à@@@€íêê타ãêêダâÔÔâ--ƒ€-ÓââÓ.ƒ€üüÿÿƒ€üþþüƒ€  ÷ýý÷ƒ€ôó óôƒ€þüüþƒ€þýýþƒ€@@@@½@@À@@À@à@@@€íêê퇀 ãêêãààƒ€âÔÔâ--‡€ -ÓââÓ.È Èƒ€üüÿÿ‡€ üþþüÿÿÿÿƒ€üüÿÿ‡€ üþþüÿÿÿÿƒ€üüÿÿ‡€ üþþüÿÿÿÿƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@ éïéßö#ƒ�ÿÿ9Çÿƒ ÎÜÎ3%3¿ëDƒ�ÿÿ�lþ•ƒÌ ̼@ÿ¼Ë�½ˆ�…鄾 ¾ª@ÿ]ª½@ÿ_« @ÿi�…ã„ ü43ý1�…öÿ „ øßø ! ü僃þüþƒ ø  /æ��þÝýÿƒ þßþ ÷*у…äÿûƒ þ×þ(ô6Åÿ�…Ýÿøƒ  øñøúùü�ƒú„ ÿóÿïÿ�… úƒ€ €í@@ð@½@+@ À9@ Ààìã@À@ì@À@àì@½À@ë@½À@àä@@@æ@½@@?% %17999:<==;953ðòîëð ÷îèëïòð7;651,(&%7#####!"&( ,?A<9.$!-þúôîëëë%8FNRTWWWE*�‚  ƒ þúööùýþþÿ‚÷÷û  þÿ‚+ üöòðïìëéééêíòú �::/" øêé×ÇÇÇËØï  /:ƒ? ùñííííîîñ÷ý  $&&&'+,+)& žž——¬ÇÖåêêêèççèäÒ¾ª——�£ž3ÿ'ÿ$ÿ!ÿÿÿÿÿÿ:ÿWÿi€Œ‘‘����@ÿt€@þ��� þ÷êàÓÊà  ‚ !  †ýýþ‚ ýôëîù�†'' ‚ äÑÔÚåôýŽ ÷îí÷„Aÿ"ÿR “ºÍÍÍÑÚáåçÝÄ™yÿUÿ$þïþªþ‚þrþrþrþrþnþhþhþoþ}þ•þ§þäþçþçþêÿ ÿ-ÿFÿcÿpÿpÿpÿsÿuÿuÿoÿaÿDÿ.ÿþøþìþçþçþäþÝþÝþ¡þ’þ|þnþhþhþlþqþtþtþtþ�þ¤þæÿÿT  ÎãåâÚÏËË˾›`ÿZÿ$ÿþëþÒþÌþÌþÓþÛþéÿÿ(ÿ þîþêþçþäþâþáþáþáÿÿ+ÿAÿ^ÿnÿtÿtÿrÿoÿoÿoÿO€@þ/�� ýôä×ÏËâ ‚ *15†üüý‚ üðåè÷�†'11"‚ àÈÉÐÞðüŽ ôéèõ„G8# #8FWn{G€€€€�‚‚€|sn[ZZZOC;1...-,,-2;CKTXZZ[\\pu|C€‚‚�6{nXF6   5FNY`bbW8%,EOWYY[[[[[PD=4/--....9@”�� ˆÿü÷óó÷ü†‚�ÿÿÿÿÿþþ�ÿÿ†úóððõûÿƒ ÿÿÿ  ‚‚ ÿþüøöûÿÿÿþÿ�„? ÿûùóðñ÷,6::::99896.%($&,) ,0*((( &,49<<=<:::83)"þøö÷ûþ‚$,/)())--#!**+,/000"  J�„ öíîóû„þýýýÿ�ÿ… ÿÿÿýúøøùüûþÿ‚ ùùÿÿÿÿÿÿÿ�øû ÿþþþþþþ„÷÷ùýý ÿ ýüþý÷ƒ?åïøüúúúúüÿüùúúúúùø÷ùúúú÷÷ùøúü÷ð ÿéêîóü7   ýôïïïîïïïïëèìõüëçéíùÿõñÿ ùòèßÙ×ÖÕÕÕá �� ÷ìðü ýÿƒþïñ„úúÿÿÿúðéëðúûþÿ‚+ûûÿÿööööøü ùïùýùõõõõôóþÿÿ�ããàéìû  öííèãƒ?  ý÷öô÷ú"&&&&#"$(%958A:*&####$$"#.AI>767þÿ #,22675111,&ûöõ÷ü   ,/27=AAA( ùïèæäâââõ%�� ÿüøôòèèðú‚   ‚‚ÿþþþýþýÿøö�"øøøøúýý )þúøøøø÷÷„âââæçõ  ÷íòéâƒ?( üöõõý)---*(**+(ICGSK62/..../,'%0>@7@===<:2+ùñòôùÿþ  :=@GNTTT4ùëãáßÜÜÜô.�� ÿùðèô ðäåîø‚  øõ† ‚ýûùùûýûÿôñ�ôôôôöü  �&üöôôôôóó�ÔÔÕÙÛð ,,,)ñçèÝÔƒ?ðôøüüüüýÿþùôðìäßÞÞÞßàßßßßäçððñððóôöõõõööö÷öõóðïñðïðêéåãáàààà7âáááâåêïóùüýýýüûúúúú÷òíÖÂÌäåï ííîíïïððððññññðððððððîÛ�‚ÿþþþþÿ�ÿÿÿ„„ÿ‰?þþýýýýþÿþüúûüýüýýýüûûýýþÿúúûüýþÿÿýüúúƒ?óõùúùùùüþýüüþÿÿþûõñðððññòòòò÷úèêéäéïñóòòòðñðóôòíæãçéêéúöðíìëë7ìëëëìñóõóõùþÿÿÿþýûùöõøýü ûõîìíéçæææî÷ý  ñ�ƒ ƒÿýüýþÿ†ÿÿýƒÿ‚ÿÿ�%þüüüüûùùü ýÿ� ýûüøôôôöû   ƒ€ €“@@›@½@ @ À¥@ Àày”@À@“@À@à“@½À@“@½À@àŽ@@@”@½@@?ìéæææææáàßÞàåææããããããèðû ûóí/8::;;;5! éÛÿ+8>ABCCC2ýÚË Å ÿ òê�� ûëèðøý‚ÿýû÷öòõú‚,þüû¼»ººººÁÐâíîó÷þ ÝÝÝèú "1@EEED? ÝÝ„4êâÔÊÄÄľ½½º»ÀÀÀ¾¾¾ÂÄÆÎØäêô ' ûæÚ?`qttuuujEÇ®-\uD‚ƒ„„„c)é§‹@ÿ+ýëƒ�  úøûýþ� ‚,ýù÷‡†…………’«Ìßàéðû888ÄÄÄ×õ ",5Spzzzvp88ÄÄ„AÿZÿ|§ÀÊÊÊÅÆÇ»¨ŸŸ³ÆÆÆÈÈÈÁªKÿ~ÿZÿNÿ1ÿÿ ÿ ÿÿ0ÿJÿRÿz «ÄËÊÈÇÇǼ�Cÿ}ÿJÿJÿ} ˜¸ÇÌÌËÊÊʱLÿÿZÿGÿÿÿþØþØÿÿÿ ÿ%ÿG€@þÉ�� ÿûõðèäèðúþ‚úñíóöøüþ‹ÿÿÿûðìïù‰ùðí÷þ‰ÿÿ„Aÿ.ÿY�°¼¼¼¶·¹©�……Ÿ···¹ºº±“Kÿ\ÿ.ÿþûþ×þÉþÉþÚþüÿÿ$ÿW –·À¼º¸¸¸ªƒDÿ[ÿÿÿ[ÿ}¥¸¾¾½¼¼¼œLÿ]ÿ.ÿþáþÇþÇþŠþŠþÆþÇþÇþãÿ€@þw�� þùòìâÜâìøþ‚øíçïô÷üþ†ÿÿ‚úìæë÷‰÷ëèôþ‰þþ„?8/!'' %8BGS_cc^SIE9',8II5* 4BOOc cwwcc@-4}��  ôò÷üÿ�þ �‰ƒ„ýþ„?1* ".59BKOQPKDD. -:;.ÿÿÿÿÿ*<>PY [bcNLPJ;D�� üúü �ÿ  ‚,   ÿüüüýû÷÷÷÷ööüüüþÿ„?),,&###)***)(&$$$$&%'&"&/4÷òôóóóóö"* ýôïîíëëëô .; =%74�� ûøû"# �ÿ ‚++++)))% ÿùïïïúõõíèåßÚÚÚÛÝïïüÿ…?$.0///6658;9964441//350(##1?F(ñéééèèèí15òçáàßÞÞÞí#ET Y#!0�� øòóü �üúù÷îî ‚+(%!  üôôô þ÷ù÷óíçãããããôô úý…?"0;<:::AA=DJHHCAAA><>GLC4-"%,FðáÙ×ÖÔÔÔë#6Zj p"'4-<�� ôèäìø�û÷ö÷ñò ‚+ 972...-%ÿõëëë þòñîèÛÓÒÒÒÒÒëë÷ü…?ûúûýÿÿÿøøúþþþþûôííëçâààâåèê+þûöööòíêîïïúúú÷ïëæõè èÚÛââ à�‚þù �üúýþÿ…ÿ  ‚  üÿÿ‚„€?óëêîîî  üéééìììîñòíèèðòö÷÷ôòíçäö  ýòóìëõýøíðÞÝöôøù í��  'OW3�þþ üý‚,ÿþýðñóôôôõúûûûý # ûû„€ €@@`½@2` À5@ Àà% %@À@%@À@à&@½À@%@½À@à%@@@%@½@@îíîîîîîîîîîïòô÷KL8�ƒÿÿÿ‘ ÛÛßå8888B––oŠ @ÿc¾ÑÑÓÓÔÒȲCÿmÿcÿIÿ!€ÿññø ƒBÿ9ÿ9ÿp ­ÅÅÅÇÇÈŹ�GÿlÿGÿ9ÿ9ÿÿÿÿ€@þç�‚ þöííõ ‹  ? ;?JZ€ýüþƒ--%!#..::<<R�‚ÿÿÿ‚ùõ÷ü‹ øûúüþïíõ�‚‚þüýþ‹"((((*)(#ïööþþññü�‚ ÿþüûýùõ÷ü‹+2222544/# ôôôýýììú�ƒüøöûøóõû‹òñôøúúúûûüþüøõóëëææßßÛ�ƒÿ� ‹ÿÿøñðððïïïññöÿ��ƒ‹€ €æ@@û@½@(@ À*@ Ààåå@À@å@À@àç@½À@æ@½À@àæ@@@ç@½@@?ûëäèèöéÒÅÇÌÇ»¹¶µµµÏßíîìéééæåçáÜÝãçççëëëíõü  //-4>@BAAA5"3$1 ïâϾ½½½½ÅÌø.;>?@@@:3ôéú��%EGIIII4øêÚ×ÙÙÛàçæÞÙãëóýùëåäìíôü‚?ÿýý»¸¶¶¶¶Îéíñþ(*!  ++"ýúøñåäØÔÔÔÔÝðÿ %(+ƒ þãÙÖïëðÿÛœEÿ|ÿvÿrÿoÿoÿo#Œ—ðçÙÐÐÐÏÏÔÑÉÇÎÔÔÔÖÖÚÜÚ×õôã]{D€‚ƒƒƒwhd7.'&&&$$!')!Ó¿ž„Dÿ}ÿ|ÿ{ÿ{ÿ{‡‘ý %9[t{}~~~tiøðÕõ��%|~g?)óÛÇÆ´¸½ÅÑÓÓÔîòïýöâØÖÞáóÿ‚?ýúù„‚�����Êãí 099??B<2.'$ !ÿMMA ÿùóðäÔÓº·´´´Àá  -.FHMƒ@ÿ~�š±²²©�KÿyÿwÿTÿ6ÿ1ÿ4ÿ3ÿ3ÿ3ÿ3ÿKÿ`ÓÛãæææææçàÐÁ»³³³´´´ŸJÿ}ÿjÿgÿRÿ<ÿ7ÿ6ÿCÿ]ÿoÿq —·»·¶µµµ©•ˆ`ÿBÿ.ÿÿÿÿÿÿÿÿ ÿÿ&ÿ,ÿ5ÿ5ÿ5ÿ3ÿ4ÿ5ÿBÿUÿpÿÿÿÿÿÿÿÿÿÿÿ) ­½ÓÛéðìëèçççÞÍBÿAÿ3ÿ€@þì��‚÷û ýõòÝÝÛØÚÛÞáêåàæèéóïñòùÿ‚ÿþþüüþ‚ ûøùý#'&$  � $+-,ýúõõõöööêàÚØàã ƒAÿ\ÿc†¡��˜Lÿ~ÿ^ÿSÿ'ÿþúþþþýþýþýþýÿÿ6ÇË×ßßßÝÝÞ×°©ŸŸŸ   †Kÿ[ÿCÿ?ÿ$ÿÿÿÿÿ2ÿIÿKÿ{¤©¤£¡¡¡“bÿyÿiÿþ÷þÖþÇþÇþÇþÆþÆþÆþËþÚþìþôþÿþÿþÿþýþþþÿÿÿ)ÿJþÙþÊþÃþÅþÅþÇþÇþÇþÇþÚþè “­ÅÌÛãáàßßßßοBÿþüþÜ€@þ£�‚„õú üóîÔØÙÔÐÑÔÙäÞ×ßáãðëíî÷þ‚ÿýýûúý‚ùö÷ü #,10-$# �(04/%$þ÷ñññðèàÙÔÐÓÛÛƒ=0&'& # $3?MMMYY 3CNPD:DCDPPONKGbdI:-@ƒ-qdbbbaaa]TMKLLL6$(fYF<;Qddd^[ã÷ #++ @‰yco�„"þÿÿÿÿÿìÕÏÑåïöüü   (KO- …?3:7 çìòóññìììðõ÷óòòÖ³®Èéúûû连ªãõõòó 9XL ðõûƒ?&3. +FYUWVSPQQQQ;+!  %3:-.;@B3  ,62'KQQQSTTOJIGBBBFEE>7+U`^X[ZYYYVP%ú÷ûûþ‚ÿ7E[]��%ýüýùøøúúú ôôü()#!  ý‚? õðÿûôîì÷ëÝÛßâìôøúúýûòóñøùÿýýþûõéßÝÙèéýýü %üƒ?ÿ(880-1/2333 þÿúäÙßãããåãååæðÿÏèþÿÿúûþ�ÿ!*(()+++$$üþïæçéçåååêè�‚"ßßÞÝÝÝðùìó#% ûÿ ƒ?$''%%% ùðíåßÞ÷îåéòòñð÷ úôñõõôøýòòõû ÿüüüõùù÷òƒ?ò úá-768;;;+)ÿ #ûøÿú5ß×ÚÛÛÛÛáäßÖì1ûýýýþþþþÿú&./-0/0000-òêâÜÝÜßßßßÛÝ & �'ÿýþææéëëëöøêì '0:;1*ÿøúñù õô‚?ÿ ÿ÷òêçêîßÊÇÑÙñ  ûøõøø ýýüùøîìîçòñû üƒ?Üý$ïØ=FDGKKK84áö >ý÷öÿ÷ÿ#DÕÏÒÑÐÐÐØàÝ÷õ ÷úúúýÿÿ‚#ó+68664;;;68üîèÞÛÞÞÜ×××ÚØ) �'Þàááááñúîø%%LHGB61#ïçðäí  îî‚?()%""" ÿþòíéáÞßÈÉÂÂÌÔé÷#üú÷ûêâÛðòïöóöúüüü   ƒ?ö ýü $0 òòòàÛ÷ëðýýý "þÿ þîÜØâèéàÜá彯ÆÕâóóóû ÀÓ1ßßßßÔÆÂ¿ÎäéåâÛÜßßáçïÝîûèèèéæ3óßÕÖçöööðõ¯ÂÝÞ��%ÿÿÿúøøùùù&+* ý@SA '89,(‚?îÏÉÌæðòõõô þÿïÆµÇåøùðÓÊÕèíòùýüü:\P øÿòÍ­·äóôóó üƒ? ûòúüÿ #52üïïïÛÊÿäãõõõøùùûüûùü )%ôó óäÝÁÂâòÿ ,Úù1AcU&.45-ê÷ ìììíé<$öíìý  ¿Ôíü�'ÿÿþþþ -., îôøôëî÷þþ  &6EA="‚?ôõõöööáÉÅÊåôùýÿü  "/)#+GP2ÿ 2ZM ñøüüüôÔ¯»èøú÷öƒ€ €·@@®@½@Ü@ Àå@ Àà«¶@À@¸@À@à¸@½À@¸@½À@à®@@@µ@½@@9úúúø÷÷öøûÿ ÿþþþÿ  �ÿÿ  "'+./000*"! ��  ýüýÿ‚?ü÷òòú úòïìéæææèíôûÿÿ ÿ÷õùþþþýüßßßßßáçôÿ ÿƒ?%õõõñïïñôøüý +++022/,(& ÿýýý  !$$$"ÿþ ,BQZ_abbbN54-(!��  ‡ýöííö…>--) ùìçáØÓÓÓ×àëø(- õñ÷ÿÿÿýûÄÄÃÃÃÆÒë !3====<ƒ ‹±ÙèèèêìëèàΪ‹Xÿeÿ<ÿ-ÿ-ÿ-ÿ-ÿ*ÿ+ÿ+ÿ3ÿGÿlÿ‹ÿmÿHÿ5ÿ-ÿ+ÿ+ÿ-ÿ.ÿ.ÿ.ÿ>ÿg ‹©ÎáêëëèèèèØ°@ÿ –±¼¼¼¼¿¿º±›‰Eÿ{ÿaÿ[ÿ\ÿaÿy „˜°»¾¾»ººº£„Eÿyÿ`ÿYÿZÿaÿu€@ÿ�� ÿõèêóþþþÿ‚  ‚   ‚ ÿþþþöììöþ‚ÿôèêõþýþ„þÿöîîúÿÿÿÿÿ†@ÿm �ÏâââãæåâØÁ“Zÿlÿ<ÿ þöþöþöþõþòþóþõþÿÿÿFÿmÿGÿÿþöþóþóþõþ÷þ÷þ÷ÿ ÿ>ÿl ’ÀÙãååââââΛAÿ]ÿz œªªª«®­¨œ�HÿjÿYÿ6ÿ0ÿ1ÿ7ÿUÿcÿ}›©¬¬©¨¨¨ŠFÿcÿUÿ6ÿ-ÿ.ÿ6ÿP€@þØ�� ÿòâäïþþþÿ‚ ‚  ‚ ÿÿÿÿóææóþ‚þñâäòýüþ„ÿþÿôééùÿÿÿÿÿ†?/  #/>OUUUWXXWSJ;/;JSWWXWUUUO>/#  !4+!!)05@CB@72* &27ACC@7^�� �„ÿüööû�ÿÿÿƒÿÿ�ýøøüÿƒ‚ ƒÿÿÿÿÿÿÿ†?  ,>NQQQNOOPL@*0EOSUVWWWWP9"ýüûûùùùÿ@@?=   ?@A:O�� ýý‚/þýüüüþøø÷÷ùü ÿÿýûùøÿ ‚ÿÿÿþþƒ?æíöúúúýýýþýþ ÿþþýúñòú ýøóðïíìëéééëïõûÿû÷óþüýù÷óîìëéèéééëñðûûýþôþ�� ü÷öõû‚? üüüþîîïòõû  úõóñïîþþ ûù ù÷òòòñóƒ?èèìðððôõõôô÷ õø  ôçâÞÝÜÜÙÙÙßìñùÿû÷ûûõ÷ûùñêáÛØ××ÖÖÖßëìòóööõù�� ýúøöý‚? þýþÿììëìðø ûöôðìì þþþÿ  üú úõóóóññƒ?ààçìììñóóñðô ñôþ#$&(((%óäÛ×ÔÓÒÎÎÎÕæíñüþùôøøòôùøíäØÑÎÌÊÊÊÊÖæçêïôõò÷�� üõïíù‚? þýýþââáäêö öîëæââ  ÿýýýý øô ôîìììêêƒ?óúþÿÿÿûôïéâàààßßààáæíñìåáßàßßáááãêòöüþþþýöôõ÷øøøùùúú÷õôòéççèðóôöùù÷öõõõôóðçççêòà�‚ÿýÿý�ÿÿÿ‚�ÿÿÿ‚ ÿÿÿ� þþÿÿÿÿþþûýþ‚‚ÿÿ‚ÿÿÿÿþý…ÿÿÿƒ; þùùúûûûýüûûüÿþúõóóòòòòòôû  þþþþÿÿ�ÿ  ��ÿþÿ„?üüüÿ ýýûùùøøøø÷ùýÿÿþúüýÿúúüüüüüþþÿÿƒ€ €¬@@¡@½@Û@ Àà@ Àà‰¨@À@ª@À@à¬@½À@«@½À@à¢@@@ª@½@@?ýûúùùù÷÷ööù üü äæ#& þþþþÿ )ìòïèçæäääáá �� ûùúý‚?ýüÿýþÿÿÿþýûøøòôïï üôñíèåååçíôû ôìéÞÞÞƒ?%õõõñïïñôøüý +++022/,(&úú###! !.$ÐáKQ ÿýýý  !$$$"VûìØËÉÈÆÆÆÐáE!��  ‡ýöííö…‚4ùøôñìììãã--) ùìçáØÓÓÓ×àëø(- üûøëâ×ÆÆÆƒ ‹±ÙèèèêìëèàΪ‹Kÿeÿ<ÿ-ÿ-ÿ-ÿ-ÿ*ÿ+ÿ+ÿ3ÿGÿl¿¿MÿyÿhÿYÿWÿWÿWÿUÿTÿTÿVÿdÿQÿVÿf¾¾‹KÿmÿHÿ5ÿ-ÿ+ÿ+ÿ-ÿ.ÿ.ÿ.ÿ>ÿg ‹©ÎáêëëèèèèØ°¾Jÿrÿkÿ_ÿVÿWÿWÿWÿWÿWÿ^ÿk¿@ÿ�� ÿõèêóþþþÿ‚  „  ù‡   ‚ÿþþþöììöþÿÿÿ ƒ@ÿm �ÏâââãæåâØÁ“Lÿlÿ<ÿ þöþöþöþõþòþóþõþÿÿÿF®®MÿVÿAÿ.ÿ+ÿ+ÿ+ÿ(ÿ'ÿ'ÿ*ÿ;ÿ#ÿ)ÿ=¬¬MÿmÿGÿÿþöþóþóþõþ÷þ÷þ÷ÿ ÿ>ÿl ’ÀÙãååââââΛ¬JÿLÿDÿ4ÿ*ÿ+ÿ+ÿ+ÿ+ÿ+ÿ3ÿD®@þØ�� ÿòâäïþþþÿ‚ „ö‡  ‚ÿÿÿÿóææóþÿÿÿ ƒ?/  #/>OUUUWXXWSJ;AA@AAAAAAAAAAA/;JSWWXWUUUO>/#  !AAAAAAAAAAA^�� �„ÿüööû�ÿÿÿ„þþŽÿÿ�ýøøüÿƒ‘?( (8IOOOMONNLD5-4:8889::?:>DB'6GPSTUUUUUM9) þýüþüüü@99???@@@BDO�� ýÿ‚ þöøúûùúý„ýúùúûýý�)ÿÿùùøøùüüüýþúùüüüûöòòøüÿƒ?ýûûûþýþþüøö÷ûÿýýðõúøøøûûùÿÿëêú  ýõðïíììéééìôç   'ëþ�� üüÿþ‚ úøùü‚ýýþ�/ù ííîòõü  û÷õòîíôôôõôòó ƒ?èèìðððóõõôó÷ õòøúöööøøùøýÜÝø  ôçâÞÝÜÜÙÙÙßìÙ Þù�� ýúøöý‚? þýþÿþþþüüþÿÿýÿÿììëìðø ûöôðììôôôóòòõÿ ƒ?ààçìììñóóñðô ñþìóöòòòôôõþõû& ÐÒôþ#$&(((%óäÛ×ÔÓÒÎÎÎÕæÎ#$&'''&"Ò÷�� üõïíù‚ þýýþýýýûü�0ÿü ÿÿââáäêö öîëæââîîîìíîô ƒ‚?ÿõçÝÛÛÞÞÞÞßßßäðøøãçíìììèãàÞçíîéöõùòèãàáààáááãíùûþþþþþûöåØÜéìíïïïíèöà�‚ �ƒûõ÷ýþýþÿ…ÿýóÝ×àû� þþþþ� ÿÿÿ‚ÿþ‚ úòïï÷ÿƒ? þùùúûûûüüûûüÿÿúÿ÷óþúõóóòòòòòôû  óöøùø÷öööõð��ÿþÿ„?üüüÿÿÿûü÷ù÷ÿÿÿÿ ýýûùùøøøø÷ùýþûûûûûûƒ€ €6@@A@½@<@ ÀA@ Àà.6@À@6@À@à6@½À@6@½À@à6@@@6@½@@43nZ\,ee?66WBRRZ?77@V��@@� ÚÚÛÛÚÚ�ÚÚƒ>>;;++�++ƒ÷÷óïêèéèëêêíñõõôüüþþ÷÷ùúë�ÿ�ýý�ÿÿ�ÿÿ�ÿÿ�ÿƒ&   �þ�� þþððþþððþþõõ�õõþƒ€ €`@@Z`½@]@ Àr@ ÀàV [@À@]@À@à^@½À@a@½À@à]@@@]@½@@/þûûûûúøøû ú÷õõòòòû "#%%%��ÿýþ‚þù÷÷úýûòðêæææéîø ƒ ýèèèåçí &&'& ÿèÝÓÒÎ&2:;@@� �ÿ÷öøþ2.#øéÎÓÝ */¶ÃÑ××רÙ×ÔÎÁ¶©š”””•““–�ª¶©›•”“””””¢¶ÃÑØÙÙØØØØÉ’��ÿùòõûýüþ‚ ‚‚ÿýþýùùÿ„ ¥µÆÍÍÍÎÏÍÉÀ¯¡‘Gÿÿxÿxÿxÿxÿvÿvÿz„–£’€Fÿyÿwÿvÿxÿxÿxÿx ‰£²ÄÌÏÏÎÎÎλ@ÿu��ÿ÷îóùýüþ‚ ‚ ‚þýþü÷÷þ„),----,--,,�ûþÿÿÿÿý�/ &(((&''&&##'**+*+++%�‚þ„ þÿÿÿþþ�ÿþƒ�þƒ/ ùõóòòòòòúü�‚ÿýüþüþ„þþööö÷û þúù÷öƒ&!!".2366777*�þþþ ƒ�þù÷úý‚þýýÿ úúøøü þýýùúƒ' ! ! !"! """" )7=@CBCCC5! �ýýý ÿ� ùúýþ‚ýùúý ÷÷õôù þüü÷÷ƒ/óöøùùùùúûûù÷õóðîîîííìêíðóóññññðòòòóôö÷÷ø÷÷öööõö��ÿþÿÿýƒ ÿûûüýýýÿ‚‚ýýüýƒ-óöõõõõôöøùùùø÷õôôôóóóññòöòîêééééééîõùþÿýƒ�ÿýÿÿÿƒþüûüþÿÿÿÿþýýýüþÿýƒ€ €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@R[FK�ï�ïƒúÿA ¨u@‘�ß�+߃ÙÔÕÖÚÎ�ˆÏÉÊËÐÁ�ˆ�ˆ úþ�ý�ýƒÔÓåÛ��ýƒ) ÆÕÿÏ�ÿ�ÿƒ4 ·ÊÿÂ�ÿ�ÿƒõùöòñö��üƒïü���ÿƒ€ €@@&@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@&BA‡€_óTM,~�ï�ïï�ïƒ>CŒµÔ"A³�K@û�ß�+ßß�+߃ ¼¼¿Âêääçê¦�� ²ªª®²äÝÝáäŽ��  $�� ÿ÷ü üó÷�ý�ýý�ýƒ ûܸÂáñÌÖõÇ��ý�ýƒ ¾�¤ç)ݬð�ÿ�ÿÿ�ÿƒ ­@ÿo‹à4Ó•³›�ÿ�ÿÿ�ÿƒ ôôîîîýÿø÷øí��ü�üƒ ü.% ï"þ ��ÿ�ÿƒ€ € @@ @½@ @ À @ Àà  @À@ @À@à @½À@ @½À@à@@@ @½@@ìì11�‡ÎÍ]],�‡ÝÜÜܺ�‡ÔÒÒÒ¨�‡�ÿÿ�‡ççí�‡ ààé�‡ ØØâ�‡�ùùú�‡üü �‡€ € @@ @½@ ` À ` Àà  @À@ @À@à @½À@ @½À@à @@@ @½@@ õõ::õõ::�‹ ÐÐ``ÑÐ``,�‹ÍÎͺƒ¿Á¿¨ƒ‚   �‹ ååååí�‹ òòòòé�‹ %%îî#%îîâ�‹ üüõõüüõõú�‹ õõõõ �‹€ €~@@¢@½@Š@ À‘@ Àày~@À@~@À@à}@½À@}@½À@à~@@@|@½@@=,óóóòïíî÷$$+111-' þú ùìâÜÜÜî*6CKLNPPPPKA2 &�;-+"  ýýý÷ëãÓÃÁÉØâåìñ:5,)" òÝÑÔÇ´´´´»Ðø%-47?LLL/Õâöƒ TÔÔÔÓÑÑÔßö>ZD…����uOüôéè  &5PhzI‡Š�’””””Š„wx@…i]VUt�ÿÿ84''"õÚÄ¡ˆ‘°Ûñû A”Žub*î»›��Bÿ~ÿ~ÿ~ ’²Øû1EU[tB………nYÓßóÿƒºÉØØØÛàãæßÏ´ ’�Bÿzÿzÿz…™´ÔäèóúúôêäÕ·œ‡Bÿzÿzÿz‹Ÿ°ÉÚâåãàÝÛÚÚÚ˺¥€Bÿoÿpÿy�ª@ÿJ��ìÜÝæú  ‚  "# ‚  ðæááñ‚êØÚãõ„ ¨»ÎÎÎÕÜÛßØÃŸ†Eÿtÿ`ÿWÿWÿWÿj ‹±ÕâæòøøôêåÙ´�DÿlÿWÿWÿWÿm…œ¼ÑÛÝÛßÜÕÎÎξ¨�Dÿ^ÿIÿJÿUÿr”@ÿ��çÒÕó ‚%04.# $+7=7*‚  !üÞÙí‚åÎÐÜò„= ##-88896-ÿ 19:777,%  (77.!I��  ü÷öû‚üñæØÕàïûúüüüüüüûýòãØÜêù‚ üöôó÷ü ‚ „=  *79992$õæîûýúúõô2AJJJ=(!üüûûûûû0  IÃÃÆÎÝõ/>FI �� øôöü‚üöôøƒ„�ÿÿƒÿˆÿƒðâÔÏÎÐÐÐÎÏÔâðþ B——�{Vðùÿ‚þýúõD—ÿJÿJÿQÿd‰ÅðW|A�—€á�� óìðø‚øðìóƒ„�üûþ‚ÿˆÿƒ@ÿk Œ¶ÍÖØØØÖͶŒGÿkÿJÿ ÿ ÿþþþþþþØØÕË´‹RÿkÿJÿÿ þÿþþþþþÿÿÿÿIÿØþþþþÿÿ ÿ"ÿKÿk‹´ÌÖØ@þÖ��ýüýÿ‚ÿýüý‚‚�‚ýüýþ‚þýüýƒAÿDÿn£ÀÌÎÎÎÌÀ£HÿnÿDÿþåþÈþ¼þºþºþºÎÎʽ TÿmÿDÿþåþÈþ»þºþºþ»þÇþãÿÿÎþºþºþ½þÊþçÿÿDÿl¡¾ËÎ@þˆ��ýûüþ‚þüûý‚‚�‚üûüþ‚þüûüƒ3?AAA7"�‚A¢¢ƒAÿvÿv€ââ� ÿþƒýøòõ÷üôñêäääçîù ƒ¾½@�¯²@ÿf@ÿb453só 2 ÷ïïïíëëòþ !''')*)#ÿçÛ×ÔÔÑÑÑä.:?ABEEE0ƒ‚AddƒAþÓþÓ€È77È�ÿ ƒýöøûýýþ660#úíç×ÊÊÊÑÞò*6ƒÔÓÛEÿ ÿ ÿÿÿþÿÍÍÓqþàþàþšþšþ­þ¼þÍþÔþÔþÔþÔþÕþÕþÓþÎþÁþ·þ¨þ˜þ‘þ‘þ‘þ�þ�þ�þ‘þ–þ¢þ²þ¥þ—þ‘þ�þ�þ�þ‘þ‘þ‘þžþ²þ¿þÍþÓþÕþÕþÔþÔþÔþÔþÅ€@þf�‚ƒåå†ýùõõüþýÿ‚ ‚‚ÿýþýùùÿ„ÉÇÑEþÍþÍþÅþÅþÅþ¼¿¿Çqþ þ þHþHþbþtþˆþ�þ�þ�þ�þ�þ�þ�þ…þuþhþVþBþ9þ9þ9þ8þ7þ7þ:þCþTþdþSþAþ:þ8þ7þ9þ:þ:þ:þKþeþsþ…þ�þ�þ�þ�þ�þ�þ�þ|€@ýú�‚""ƒÞÞ2222�ÿúôöûþýÿƒ ‚ ‚þýþü÷÷þ„ bbddde}}B™™‚ ~|{{{ywxzY†Œ�“””””••”�ˆ†‹‘”••••••�‡� {xwwwxxx}@¥�‚õõƒ † ‚ÿûöøüÿÿ„ÿÿÿþþÿ‚„? ë;:4##=ñôø%%A@A:42223430.27=DGGGEFGHIF>?>>>>3" /�‚ååƒ ùù � øöú‚üùýüÿ öööøýÿÿ úöƒ?+-¢][c|ÏÒÏ"  "!!! !"')&+:ABDBBBB5þûûûúúú :�‚ÞÞƒ !êê! ûùû‚ü÷ûûüóóóôúþþþ  ÿ÷óƒ?ÿ÷êíñééñþýùáßÒÔãâáâââäæäáÝÛÜÜÜÜÜÜÚÙÙÚÞáààßÞÝÝÜÝÝÝßàááââââáááá×�‚ììƒûû‚ýûþýƒüúüýüüüÿÿÿþÿýüƒ?òòââàþþÚõôðñõñíïïïðóóïéêðôõôôôòñòõ÷÷ôóðíêéèçççíòõ÷øúûüýýýúì�‚ ƒüü�ÿþ þþ‚ÿþúôùý�ÿÿÿýûûþþýþÿƒ€ €@@@½@'@ À'@ Àà@À@@À@à@½À@@½À@à@@@@½@@ ùùþ',,)üü)%�€�))þÝþƒ ììàB66[ÇÇ["�€ XXñ²ñƒÝÝGÿaÿTþØþØÿÝþØþØÿZÝ@þµ�€ÔÔ‚ÙðÙƒÔÔGÿ7ÿ'þŠþŠÿÔþŠþŠÿ.Ô@þ^�€ÉÉ‚Ïìσ @FwwwwC@…�€ÿÿ‚ƒ 4CC44'N�€ úú ïƒ   �€ ëëúúÿøÿƒ  (�€ìì‚çƒ  %1�€Ú ڂ׃ ýýôæßßòééîòÛ�€ þÿÿþøøýüýƒ úúûóööúöö÷úï�€þþ‚ýðýƒ€ €#@@$@½@` À@ Àà #@À@$@À@à$@½À@$@½À@à$@@@$@½@@ôúìó??<5( ?�Æââåäááá‚ñÛÌÆƒçòûÔâ{vjO�Œ¿¿ÀÁ¿¿�ìÔ°˜Œƒ€ÿúø÷øø‚ÿþþ€þú÷øùùùööõõ÷ýö�‚…üúü„ÿÿ‚ýüý�ûúüüûþóõõöøûô���ƒüøüüú ÜÞÞßäôÛ�  � ƒ ýøúüü ÍÔÑÑÚñÍ��$ƒöò÷÷õ ¿ÅÃÂÍéÀ�$�$ƒüûüþû��þ ƒýþüþ�öùùø÷õöö�òùüúöƒ€ €@@ @½@@ À@ Àà@À@@À@à@½À@ @½À@à@@@@½@@*ö|�…kÿ@ �…'Ý�…1Ò�…üð �…åêâ�…ßù³�…½ê‰�…²é@ÿs�… û�…#;�…€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@�J�„�]�„�À�„�®�„��„�û�„�Î�„�è�„�ã�„�ô�„� �„€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@öH�„ÿ@Ÿ�„'ü�„1û�„ð�„êç�„ùÍ�„ê¶�„éª�„ �„)�„€ €@@@½@` À` Àà @À@@À@à@½À@@½À@à`@@@½@@ôü7/÷ÿ:2ƒ×ûû××ûû׃þ @…wðþxjƒ¶õõ¶¶õõ¶ƒÇÅúøææææ¹·úøææææ�ƒ‹ûûƒ ƒ éìâçƒüüüüƒúöÎÒØÜƒƒöñ¾ÃÿÊσ øø øø ƒùùòû�ƒþþþþƒ€ € @@ @½@ ` À ` Àà @À@ @À@à @½À@ @½À@à `@@ @½@@øÿ:4ƒ×ûû׃ðþwiƒ¶õõ¶ƒúùææúùææ�ƒ‡üûƒ ƒßâƒüüƒ×ÛƒƒÿÉ΃ øø ƒ�ú�€ƒþþƒ€ € @@ @½@ @ À` Àà `À@ @À@à @½À@ @½À@à `@@ @½@@ ýFAìññìùA“|ØââØ¯ûö¬ìììì°üû÷­®ƒììììììƒ�ƒ‰�÷ƒ ‚ ƒöÛÞ €Îæ ºÛ  ÷ïÿÿ€ € @@ @½@ @ À` Àà  `À@`À@à @½À@`½À@à`@@`½@@üøH;ìññìøåA€tØââØü°ª÷ììììÿž•÷óóóó�!!ƒ‰ þþ�ææèƒøøøƒãé �ÙÙÞƒƒ�ûóóøƒÿÿÿƒ�ø ƒÿÿ‚ÿƒ€ €@@!`½@` À@ Àà `À@`À@à`½À@`½À@à@@@@½@@)gIû L-ëôôëëôôëA†…oö÷÷kjQƒ ×ÖÞÞß××ÖÞÞß׃ ¹º–“’·úû×ÔÓøƒ ëëìììëëëììì냡Aÿsÿn�ûÍÈ÷ëììëëììë!""�ƒ� úúöîîƒ   ƒ� æÁÁëçÃÃëƒ úúù úúù ƒ ÙÚóÎÏõƒ ƒ #"äåþÆÇæƒ ÿÿÿ ÿÿÿ ƒÿüû  € €@@@½@ @ À @ Àà @À@@À@à@½À@@½À@à@@@@½@@ôHJ#ƒï�ïƒùÿu~Sƒß+�+߃€�þƒ‰€þþûƒ‰ÿ�÷úƒý�ýƒ þæéƒý�ýƒ€Ö×܃ÿ�ÿƒ€ØÙàƒÿ�ÿƒ ƒü�üƒ€þþƒÿ�ÿƒ€ €@@@½@@ À@ Àà @À@@À@à@½À@@½À@à@@@@½@@ýüö;566ƒëíððíëëØëƒøøèwddý)gƒ×ÚááÚ×׳׃ûûÒÒªª¨ÒúƒëëëëëëëëëƒüüÈÈ––“Èûƒðððððððððƒ�!!!„Œ ûƒ   ƒ èõõ ùåƒööÿƒâùøûãƒ÷÷ƒØôõ#õÖƒ åå òƒýþûóïîò÷ùƒùøþþøùùùƒý÷ƒ ƒ€ €@@@½@@ À@ Àà @À@@À@à@½À@@½À@à@@@@½@@öüý0û65?ƒëðññññðëƒåùùc8øddwƒ×ßââââß׃ÓûûüÔ­««ÓƒëìììëìììëƒÉüüýÊ™——Ƀïðððïððð!!ƒŒý#ƒ ÿ��ÿ ƒ þþáõ ëê݃ôööûööôƒþÿÙúôóâƒõööööõƒüûÍøîîÙƒ ãääüääã ƒúÿÿùõóííñƒùüüüõüüüùƒüüƒƒ€ €4@@4@½@4@ À4@ Àà% 4@À@4@À@à4@½À@3@½À@à/@@@2@½@@€ÿþýýýüü#%&&&ûöôƒëëîó÷öòññùþññðíìëƒ üüüúúJMOOO@(ûðì<<4'ƒÜÜâíôòêççô(((ÿççåàÝ܃ÑâôúúúûûýýûûûîÖò¯¯±±²·ÅƒììêæäåéììéâáæìììììììììììƒÉÝòùùùûûýýûûûêÌ´Ÿ››�� ¦¹ƒëëéåâãèëëèßÞäëëëëëëëëëëëƒ �ÿƒ€�üüþþþ'''!"""ƒ � � ƒ ÿëêíííó þÿƒþýúøøõõòðëëëîôøøûƒ ÿææéééñ! ƒ ûõõøÿü÷÷÷÷öõõú ƒÿ‚ýûÜÜßßßê"&%ƒüùõêääçðñìçççæåääìøƒøüÿ‚ýüýýýùøöõôôðñðóõƒ‚ÿþÿÿþûüùùùü…úÿ úöõõÿþüúùƒ�  „€ €R`@\@½@\@ À\@ ÀàSZ@À@\@À@à\@½À@\@½À@àY@@@[@½@@ þ*688751(#%%%!ëî÷ý  üõîþüùûý�+,üüüþþþ&8MVVVTTTMC5- %3?DFGGGG=ƒ+××Úáèêñôý þ÷ôìáÙ×ûôñîìæáááåíôöüþƒ+Öåõúúúüûù÷ôêÞÏÀººº¹º¼¼¿ËÛɼººººººÆÙë÷ùúúúúúïƒ+ììêåããääâßÝÜÜÜÞâäåääæéëìììëçääââßÜÜÜÞáääææêìƒ+Îâõûûûüûú÷ñãÕÁ®©©©©ª¬­³ÁÓ¼­¬ªª©©©¹Ïæöúûûûûûíƒ+îîìéèçæåâÞÛÚÚÚÝâäèäåçëíîîîíèåãáàÝÚÚÚÜáååæçëîƒ ‚  ‚ƒúúüüýúýÿ…þýýýüüúúúúûüýýþþ„þýýüüúúƒ ƒÿ �ƒ+    ƒ+ÿÿÿþùóïññðððòòñõûüýÿÿÿÿÿûùóóóóóôôôöƒ+ üöööùýÿü ƒ+ý    ýúùù÷÷÷ýƒ+     ƒ�(ÿý   úõõõòòòùƒ � ÿÿÿüýÿ ý÷ö  ƒüÿƒþþÿ� ûùöñïïïððîìðöù÷õõôôôôôöúúüüüüüüüûƒ ÿÿýýýúüýýýüýþøýüöóúÿýýüûüüÿÿÿ‚ÿþüüþþÿýƒÿýþ‚ÿþüûûÿýýüúúúùùùüƒ+ ÿ  ƒ€ €<@@<@½@<@ À<@ Àà,<@À@<@À@à<@½À@<@½À@à<@@@<@½@@úþ  ýü# "ƒíô ùíííéæäßßßçíƒóøý*-544+ UPK8*08<ƒÇÔñ ùÜÈÈȼ¸¯¯¯¹ÇƒÿÿüöïçÓÉô© ž››��£©³ÈÒÙæïøûþƒýýýýýýýýüýýýýýÿÿýýýúûüýýýúýƒÿúòåÌ¿¶¤–Љ……‡ˆŽ–£½ÉÒåòýþƒƒ‚ #&&((('&# „…ÿ…ÿƒ‚„üüþý  ƒ÷õòïïïððñòòòððððóøøøùøöõõõ÷÷ƒþüùðêìóö÷ ûþùðîíéƒìêáØØØÕÕÖÕÕÕÖÖÖÚåíííííìïïïíìƒþýùðîíîìîõ÷öùêìïöÿÿÿþþú÷øõƒ÷ñññóôö÷÷÷òññõƒüüøìàáØÙØâëîìïÛÛàîùùøïìîêƒïéÙÎÎÎÑÓÖÕÕÕÏÍÍÓãîîîêéæèèèîïƒÿ�ýüùúøøöõö÷öñððñóôöøúøùûûúƒ÷öõôôôôóññññòõõõõ÷÷÷õööùùù÷÷ƒ  ƒ   ƒ€ € @@ @½@ @ À @ Àà  @À@ @À@à @½À@ @½À@à @@@ @½@@÷KAƒÖÖƒð^Kƒµµƒûú¹ºƒåââåƒùø¦§ƒÞÚÚÞƒ€ƒ€„þû÷úƒøììøƒÎÔƒƒüæíƒ øø ƒúÞçƒ îî ƒ€ÿôôƒþÿÿþƒ ƒƒ€ €T@@T@½@T@ ÀT@ ÀàOT@À@T@À@àT@½À@T@½À@àR@@@T@½@@'ööùøûöìäâááàààîúú÷öù  ƒ'ìéðòõöõñìèçåäÞÞÞÞÞÞÞþÿûôòïìæãäãåæçéìƒ'ðîéôüñàÐËÊÊÉÉÉá÷öðîô%1110/*+7>?@ƒ'áØÛïòðìåÞ×ÕÓÒÆÅÅÅÄÄÄ ðìæàÒÊÍÍÒÕÖÚáƒ'ÞÞÞÛÔŶ¬­®¯¯¯¯ÇÖÛæñõôñÜÓʹ®®®®­«°ºÂ×ÛÝÞ߃'àÝÛÙÖÒÎËÍÎÏÑÒÆÉÉÉÉÉÊÊÉÊÊÊÈÊÑÑÐÏÓÔÓÔÙÙÙÜàƒ'ÜÛÙÑÈȰ   ¡¡¡¡¾ÒØçôøøôÚÎÁ¬    Ÿž¤¯¹ÍÕÚÜ݃'÷ñëêéìæââáäçèÙÛÛÛÛÜÜÜÜÜÜÜÚÝæåáßäçééííîó÷ƒ  $0/"�   ƒ ÷øüûûüúùôìíöþÿ‚…üëÙÓàïùüúúùù÷ƒ' %-/)&$$$$   %%%%&(*)&ƒ'&%*.58;71/)'*''''&%345551,)),.11-*!ƒ' %&'&&&& þúû ü÷÷öƒ'ëùñðîêïóòñíëëóòòòòóôçææææçêêêíðöøõöòïîíëƒ'  "9=:8888'! "#&04+úù÷ƒ' )%!)'&$$!" #*0571,% ƒ'  (>>>====+þ  #.3)óñðƒ'ê ûùøÿýõöøøøû  ûóêƒ�#þýþþüüüüêÖØâôýüÿüôôôøÿÿöüûüüüƒ     ƒ    ƒ'þÿøôüóðííííãÒÕßñþüý÷÷÷ý  ÿõûƒ'     ).$ ƒ€ €`@`½@#` À@ Àà `À@`À@à@½À@@½À@à`@@`½@@ù5Dü9Fëááëëááëâó^7ÒåS×ÄÄ××ÄÄ×Éø÷öÉÊ@ÿn�œ›Aÿnÿoƒ ëÙÙÙëëëÙÙÙë냮÷ñ®@ÿM—�@ÿMëÙÙëëÙÙë ø�øøø éêé ƒ   ƒôèÞûóèè H<C  çþ?36 ò� õöíüüòòƒ‚‚ƒ �'*+6))Q``ƒ ‚ ‚ ƒ€ €4@@4`½@4@ À4@ Àà% .`À@4@À@à4@½À@4@½À@à3@@@4@½@@ýþ øöõõõý $'ƒõöùúûûûøòïðóõõíãÞÖÐÐÐ×çõƒø "'28:êèå#9CHÞãæçççáÏÜÜϦ›§ÃÜýýü÷éÝ̺´´´³³±²³³³ÁØëüÿÿƒõõõõõõõ÷úýýøõõùÿúõõõõõõƒýýúôâѽ¨¡¡¡ŸŸ�žŸŸŸ±Îæûÿÿƒöööööööøüÿÿùööúüööööööƒ  ÿ þ üüùúüúù÷úûü   """(&&ýý€ þù÷ööôöõúýþ€ÿùïéìôûüüüþÿ þõìëêƒ  ƒúóòö #" ÷ëééƒùóðððòõ÷ùýüƒýôóú /.,,, øéææƒúöööùÿ ƒþýþûøöóïîîîîíñòñññôöøúûúƒö÷øùùùùùúûúúööúûþþ‚ýùöƒ ÿÿÿÿÿÿôõöööú ƒ   ƒ€ € @@&@½@` À @ Àà  @À@ @À@à @½À@ @½À@à@@@@½@@ ûÿ1G@:688XMƒ ë $(( !!ëƒ÷÷û"W@„ylhkmAŸ”ƒ ××êææð ׃ûöóöúùøüëëëëêëëë ûûûùöóñðôúùøûûƒ ëëííìëëëëèëëë냀ÿ„ ùö÷úüûüõöƒ   ƒ úéÚÞæåâã×݃ úúüþÿÿïîî ƒ õÞÌÎÛÛÚÙÅȃ   ƒ øÝÅÈÚÐÐк¼ƒ  ƒ€ ý÷òó÷ûûûƒ€ƒ†€  ƒ€ ƒÿ†€ €!@@!@½@@ À@ Àà  @À@!@À@à!@½À@!@½À@à @@@ @½@@üý 6872% ÷ƒë‚ ùùûòíëëƒ÷áêóööóWZVM4ÖƒÔ‚ öö÷äÙÔÔƒ� îìêèçèæääçëïñƒƒþù�ùûþÿ…� éæäãáâßÝÝáæë탃ý÷�÷úýÿ… € �€  ÿ ƒÿ‚þÿ‚�ÿÿƒçéëíó ƒ‚ÿÿþ�ƒ-$õ÷øú+ƒ‚þüý�ƒ8-&%%%òôõö5ƒ ‚ýûû� ƒûûüýýüùùøüÿÿûƒƒ�ƒ� ìðôõöô óëƒý‚�ÿþýýýƒ€ € @@@½@ ` À ` Àà`À@ @À@à @½À@ @½À@à @@@ @½@@þ:2ƒööƒö @‚nƒÒ--Òƒ (( 22�ƒ‡ûì€þëíƒøøƒþÚàƒööƒÿÔ݃&úú&ƒ€ÿøúƒþþƒ€ƒ€ „€ €`@`½@ @ À @ Àà `À@`À@à`½À@`½À@à`@@`½@@õý80ø;3ƒØüüØØüü؃ÿ @†xñÿykƒ·öö··öö·ƒÈÆûùççç纸ûùççççúúƒ   ƒ èëáæƒ ûû ûû ƒøôÌÐÿÖÚƒƒõð½ÂþÉ΃ ÷÷ ÷÷ ƒøøñúÿÿÿÿƒýýýýƒ€ €"@@&@½@ ` À@ Àà!@À@ @À@à!@½À@!@½À@à!@@@@½@@òùüãî><92$ ƒÃááÜÑÊÊÊ�÷æÑÇÃóþ ØãA€€|pU ƒÃööòæÛÐÐòØÊÀúøýƒÿýú÷÷øööõõõ÷úþƒ‚…ÿþÿ„� ƒ’þüüýýö÷÷÷øþƒ€þþ �„ýùôöøøÚÕ×Úàðƒ€ññô�ãïû…úôööøÌÐÐÒÛòƒ€ øøùþ ûû „þòïööö ÂÄÂÃÎ胀 øøøý ûûÿüý„ÿÿ ûúûýƒ€úú �ü„ÿ� ÿÿ ƒ€ÿ„ôÿ„€ € @@ @½@@ À@ Àà @À@ @À@à @½À@@½À@à @@@@½@@ BDJƒ‰Bˆ‰•ƒ‰‚ƒ‰‚ƒ‰‚þ…‰€ùïîñƒ‰�öÔÔÓƒ�üüü„ÿçÀÀÀƒ‰�𯰯ƒ‰þûƒ‰� ƒ‰€ €.@@<@½@$@ À@ Àà'-@À@.`À@à,@½À@*@½À@à.@@@-@½@@ EEHJJJJLLNNF>)ƒ� �  !%%%%%„?( ÿK……Œ‘‘‘�“’““†zNƒ� � 19@½@>@ ÀB@ Àà7 <@À@>@À@à>@½À@>@½À@à<@@@>@½@@÷ûþ úù  �Ýäô‚ � ùéÝÝÝÙÖÔÏÏÏ×݃ñöû(+322) SNI6(.6:S�½Êçûûû  üüïÒ¾¾¾¸²®¥¥¥¯½ƒüüùóìäÐÆÀ±¦�›˜˜šš ¦°ÅÏÖãìõøûœ�ííííííííìíííðííïïíííêëìíííêíƒ ýüùôì߯¹°ž�„ƒAÿÿ�‚ˆ��·ÃÌßì÷øý‚�òïïñññóóòóóóöòòõõóóóññòñññîòƒ#&&((& (ÿþÿÿÿÿþÿÿÿÿÿÿÿ  �ÿÿÿ�ƒ  ƒþõïñøûü   þõóòî�ýôôôññòñññòòòö  ƒÿûòðïðîð÷ùøûìîñø�üùú÷ï� ÿùùùûüþÿÿÿúùùý ƒýñåæÝÞÝçðóñôààåóþþýôñóïå� óèèèëíðïïïéççíý ƒÿþûüúúø÷øùøóòòóõöøúüúûýýüó�ƒÿýýýýþƒ€  � ƒ€ €@@@½@@ À@ Àà @À@@À@à@½À@@½À@à@@@@½@@÷KAJ�ÖÖƒð^K]�µµƒûú¹ºÀ�åââåƒùø¦§®�ÞÚÚÞƒ€�€„þû÷úû�øììøƒÎÔÎ�ƒüæíè� øø ƒúÞçã� îî ƒ€ÿôôô�þÿÿþƒ �ƒ€ € @@@½@@ À @ Àà @À@@À@à @½À@ @½À@à @@@ @½@@ BDJC�‰Bˆ‰•€@ˆ�‰‚ƒ‰‚�‰‚þ‚ÿ�‰€ùïîñï�‰�öÔÔÓÕ��üüü„ÿçÀÀÀÁ�‰�𯰯°�‰þûÿ�‰� �‰€ €0@@@@½@&@ À@ Àà)/@À@0`À@à.@½À@,@½À@à0@@@/@½@@ EEHJJJJLLNNF>)F�� �  !%%%%%„?( ÿK……Œ‘‘‘�“’““†zN@…�� � 19?@ƒ'áØÛïòðìåÞ×ÕÓÒÆÅÅÅÄÄÄ ðìæàÒÊÍÍÒÕÖÚáƒ'ÞÞÞÛÔŶ¬­®¯¯¯¯ÇÖÛæñõôñÜÓʹ®®®®­«°ºÂ×ÛÝÞ߃'àÝÛÙÖÒÎËÍÎÏÑÒÆÉÉÉÉÉÊÊÉÊÊÊÈÊÑÑÐÏÓÔÓÔÙÙÙÜàƒ'ÜÛÙÑÈȰ   ¡¡¡¡¾ÒØçôøøôÚÎÁ¬    Ÿž¤¯¹ÍÕÚÜ݃'÷ñëêéìæââáäçèÙÛÛÛÛÜÜÜÜÜÜÜÚÝæåáßäçééííîó÷ƒ  $0/"�   ƒ ÷øüûûüúùôìíöþÿ‚…üëÙÓàïùüúúùù÷ƒ' %-/)&$$$$   %%%%&(*)&ƒ'&%*.58;71/)'*''''&%345551,)),.11-*!ƒ' %&'&&&& þúû ü÷÷öƒ'ëùñðîêïóòñíëëóòòòòóôçææææçêêêíðöøõöòïîíëƒ'  "9=:8888'! "#&04+úù÷ƒ' )%!)'&$$!" #*0571,% ƒ'  (>>>====+þ  #.3)óñðƒ'ê ûùøÿýõöøøøû  ûóêƒ�#þýþþüüüüêÖØâôýüÿüôôôøÿÿöüûüüüƒ     ƒ    ƒ'þÿøôüóðííííãÒÕßñþüý÷÷÷ý  ÿõûƒ'     ).$ ƒ€ €@@#`½@` À@ Àà `À@`À@à`½À@`½À@à`@@`½@@Lþ6& ƒÃáááÝÚÊÊ� öÚÉÃóþ êöB…„€x^%ƒÃöööñëÐÐôÛËÃ� þüúúùýý÷óô÷ùýƒ‚„íóúþ„ƒ ÿüÿøúùùûýƒ‚ ƒ „� ƒ‚ ƒ …� þþûøùýûùüÿƒ€þþ�„ýùóòóúãÚÞâé÷ƒ€ññôùû�Òãõÿ„€ ÿúö÷ùþËÒÏÌÔ냀 øøö÷û ûû þ„€ þîèííòÇÎÌÈÎ胀 øø÷öõ ûûüü„þ ƒƒýòƒÝîþ„ÿþÿÿÿý " ƒ‚ýõêƒø „€ € @@ @½@@ À@ Àà @À@ @À@à @½À@@½À@à @@@@½@@ BDJƒ‰Bˆ‰•ƒ‰‚ƒ‰‚ƒ‰‚þ…‰€ùïîñƒ‰�öÔÔÓƒ�üüü„ÿçÀÀÀƒ‰�𯰯ƒ‰þûƒ‰� ƒ‰€ €.@@<@½@$@ À@ Àà'-@À@.`À@à,@½À@*@½À@à.@@@-@½@@ EEHJJJJLLNNF>)ƒ� �  !%%%%%„?( ÿK……Œ‘‘‘�“’““†zNƒ� � 19@½@@€ÿþýýýüü#%&&&ûöôêêæ66)ƒëëîó÷öòññùþññðíìëççìììçƒ üüüúúJMOOO@(ûðì<<4'õõâ}}qƒÜÜâíôòêççô(((ÿççåàÝÜØØâââØƒÑâôúúúûûýýûûûîÖò¯¯±±²·Åº´´ƒììêæäåéììéâáæìììììììììììÝÝÝÝÝ݃ÉÝòùùùûûýýûûûêÌ´Ÿ››�� ¦¹¥œ�þƒëëéåâãèëëèßÞäëëëëëëëëëëëääääääƒ�ÿƒ-0€…üüþþþ'''!"""*ƒ � �   ƒ ÿëêíííó þÿ ÷÷ùƒþýúøøõõòðëëëîôøøûƒ ÿææéééñ! ááçƒ ûõõøÿü÷÷÷÷öõõú  ƒÿ‚ýûÜÜßßßê"&%!ÛÛàƒüùõêääçðñìçççæåääìøƒøüÿ‚ýüýýýùøöõôôðñðóõ ƒ‚ÿþÿÿþûüùùùü�ƒúÿ úöõõÿþüúùýýõ ƒ�  ÿÿ‚ÿƒ€ €@@@J@½@@@ À@@ Àà- ?@À@@@À@à@@½À@@@½À@à>@@@?@½@@"! EGHHHA5)@?:0'ûïï833ƒëëîó÷öòññùþññðíìëçìììççƒQKA;;;99D‰ŒŽŽŽ gQ:/+{{sfXõíí@‡ppƒÜÜâíôòêççô(((ÿççåàÝÜØâââØØƒÑâôúúúûûýýûûûîÖò¯¯±±²·ÅÆ ÃÃììêæäåéììéâáæìììììììììììÝÝÝÝÝ݃ÉÝòùùùûûýýûûûêÌ´Ÿ››�� ¦¹»¸¹ƒëëéåâãèëëèßÞäëëëëëëëëëëëÝÝÝÝÝ݃�ÿƒþÿ€…öíãàààßßÚÚÜÜÜâïûÿ‚úúúñƒ � �  ƒðéáàààÞÝÉÈËËËÑÞèðòòÜÝãîñêííƒþýúøøõõòðëëëîôøøûƒÔÊÃÃÃÃÁÀ§§ªªª²ÅÒßâáÈÈÐרòööÀØØƒ ûõõøÿü÷÷÷÷öõõú  ƒÒÇÀÁÁÁ¾¼��   «ÃÔãçæÆÇÏØØºÛÛƒüùõêääçðñìçççæåääìø  ƒêîñòòòóóïîïïïëêèçææâãâåçúýòòƒ‚ÿþÿÿþûüùùùü�ƒ÷üÿÿÿÿÿÿ ý÷óòòüûù÷öƒ�  ƒ€ €„@@„@½@„@ À„@ Ààt„@À@„@À@à„@½À@ƒ@½À@à�@@@ƒ@½@@€>ÿþýýýüü#%&&&ûöôúúýüÿúðèæååäääòþþûúý   ƒ?ëëîó÷öòññùþññðíìëçäëíðñðìçãâàßÙÙÙÙÙÙÙùúüüüüöïíêçáÞßÞàáâäçƒ? üüüúúJMOOO@(ûðì<<4'õóîùöåÕÐÏÏÎÎÎæüûõóù $ *66654/!0869666654BCDDD@;88;=@@<90.-+(ƒ? ÿëêíííó þÿýþþýúöòóúý  ÿôïïîƒ?þýúøøõõòðëëëîôøøûúÿýùþüúúöõõõõöùùùüÿþýüúƒ? ÿææéééñ!  '>B?====,& %%%'(+590 ÿþüƒ? ûõõøÿü÷÷÷÷öõõú )%!)'&$$!" #*0571,% ƒÿ‚9ýûÜÜßßßê"&%ÿ þ 6665555# ùöø '+! ùëéèƒ?üùõêääçðñìçççæåääìøê ûùøÿýõöøøøû  ûóêƒøüÿ‚ýüýýýùøöõôôðñðóõ�#þýþþüüüüêÖØâôýüÿüôôôøÿÿöüûüüüƒ‚ÿþÿÿþûüùùùü�'      ƒ?úÿ úöõõÿþüúùþúùöóóóóéØÛå÷ýýý û ƒ�=       ).$ ƒ€ €l@@l@½@l@ Àl@ ÀàU l@À@l@À@àk@½À@l@½À@àj@@@k@½@@3*,---&ýû%$ ùý  üû"!ƒ3ëëîó÷öòññùþññðíìëèïÿ  ôèèèäáßÚÚÚâèƒ3 WZ\\\M5ýùIIA4&óøý*-544+ UPK8*08<ƒ3ÜÜâíôòêççô(((ÿççåàÝÜÇÔñ ùÜÈÈȼ¸¯¯¯¹Çƒ3ÂÓåëëëììîîìììßÇ´£  ¢¢£¨¶üüùóìäÐÆÀ±¦�›˜˜šš ¦°ÅÏÖãìõøûƒ3ììêæäåéììéâáæìììììììììììîîîîîîîîíîîîñîîððîîîëìíîîîëîƒ3ºÎãêêêììîîìììÛ½¥�ŒŒŽŽ‘—ªýøðãʽ´¢”ˆ‡ƒƒ…†Œ”¡»ÇÐãðûüƒëëéåâãèëëèßÞäëëëëëëëëëëë�ÿƒ"$##&&((& €‚ÿƒÿ��ýúúúùùôôöööü �  ƒ � � þþþÿÿÿÿÿÿƒ3 üûûûùøäãæææìù ÷øþ þûóìîõøù ý ûòðïëƒ3þýúøøõõòðëëëîôøøûûùðçççääåäääåååéôüüüüüûþþþüûƒ)üõõõõóòÙÙÜÜÜä÷úú ÿþúñïîïíïöø÷úëíð÷‚ÿÿûøùöƒ3 ûõõøÿü÷÷÷÷öõõú ÷ñññóôö÷÷÷òññõƒ3ùîçèèèåãÄÄÇÇÇÒêû  íîöÿÿüüøìàáØÙØâëîìïÛÛàîùùøïìîêƒ3üùõêääçðñìçççæåääìøïéÙÎÎÎÑÓÖÕÕÕÏÍÍÓãîîîêéæèèèîïƒ3ðô÷øøøùùõôõõõñðîíììèéèëíþýúûùù÷ö÷ø÷òññòôõ÷ùûùúüüûƒ‚ÿþÿÿþûüùùùü�üûúùùùùøöööö÷úúúúüüüúûûþþþüüƒ3ùþ ÿùõôôþýûùø  ƒ�1     ƒ€ €"@@&@½@"@ À"@ Àà"@À@"@À@à"@½À@"@½À@à"@@@!@½@@ýüö;566ûû÷GG:ƒëíððíëëØëììñññìƒ øøèwddý)g úB••‰ƒ×ÚááÚ×׳רØâââØƒûûÒÒªª¨Òú¶°°ýƒëëëëëëëëëììììììƒüüÈÈ––“Èû¤›œýƒðððððððððóóóóóóƒ� !!!.11ƒ’ û#ƒ   þþþ ƒ èõõ ùåêêìƒööÿøøøƒâùøûãøøØØÞƒ÷÷ûûøøøûƒØôõ#õÖïïÈÈ̓ åå òññíííñƒýþûóïîò÷ù ƒùøþþøùùùÿÿÿƒþøÿÿ÷ ƒ  ÿÿ‚ÿƒ€ €"@@%@½@"@ À"@ Àà!@À@"@À@à"@½À@"@½À@à"@@@"@½@@ýüö;566êÞÞ'""ƒëíððíëëØëìñññììƒø@‡ tt 9wÞÖÖpYYƒ×ÚááÚ×׳רâââØØƒûûÒÒªª¨Òú ¿¿ƒëëëëëëëëëììììììƒüüÈÈ––“Èûº·¸ƒðððððððððììììììƒ� !!!ÿÿƒ’ û) **ƒ   ‚ ƒ èõõ ùå&&ÿƒööÿ ƒóôÒéèëÓæþþƒ÷÷ûøøøûûƒôóÈäååÆ!Ö÷÷ƒ åå òøôôôøøƒýþûóïîò÷ù üüƒùøþþøùùùÿÿÿƒ! !/%%ƒ ƒ€ €f@@f@½@f@ Àf@ ÀàXf@À@f@À@àf@½À@f@½À@àd@@@f@½@@0ýüö;566   ù÷ööõõõ " #(((('%&-001ƒ0ëíððíëëØëìéðòõöõñìèçåäÞÞÞÞÞÞÞþÿûôòïìæãäãåæçéìƒ0øøèwddý)g ýíèççæææþ "2<8BNNNMLG904HT[\]ƒ0×ÚááÚ×׳×áØÛïòðìåÞ×ÕÓÒÆÅÅÅÄÄÄ ðìæàÒÊÍÍÒÕÖÚáƒ0ûûÒÒªª¨ÒúØØØÕο°¦§¨©©©©ÁÐÕàëïîëÖÍij¨¨¨¨§¥ª´¼ÑÕ×ØÙƒ0ëëëëëëëëëàÝÛÙÖÒÎËÍÎÏÑÒÆÉÉÉÉÉÊÊÉÊÊÊÈÊÑÑÐÏÓÔÓÔÙÙÙÜàƒ0üüÈÈ––“Èû×ÖÔÌÃë›››œœœœ¹ÍÓâïóóïÕɼ§››››š™žª´ÈÐÕרƒ0ððððððððð÷ñëêéìæââáäçèÙÛÛÛÛÜÜÜÜÜÜÜÚÝæåáßäçééííîó÷ƒ�.!!!  &21$    ƒˆ ÷øüûûüúùôìíöþÿ‚…üëÙÓàïùüúúùù÷ƒ0 û &.0*'%%%% !   &&&&')+*'ƒ0   &%*.58;71/)'*''''&%345551,)),.11-*!ƒ0 èõõ ùåðóñöõñøôðíéåæíðõúüüüýþòçââáƒ0ööÿëùñðîêïóòñíëëóòòòòóôçææææçêêêíðöøõöòïîíëƒ0âùøûã þ5964444#  ",0'öõóƒ0÷÷÷    !# ÷ƒ0Øôõ#õÖìóúðëî ###""""ùíæãåîôøÿúæØÖÕƒ0 åå òÖö÷çåäíôóòïëéòïïïðïðáâäääçîóöøýÿüöîçßÖƒ0ýþûóïîò÷ùþýüüúùýþúúøøøøæÒÔÞðþüýùøûøðððôûýûòø÷øøøƒùøþþøùùù     ƒ    ƒ0ý÷ÿû ú÷ôôôôêÙÜæø þþþü ƒ0      ).$ ƒ€ €N@@N@½@N@ ÀN@ Àà8N@À@N@À@àN@½À@N@½À@àN@@@N@½@@$ôóí2,-ý-úþ  ýü# "ƒ$ëíððíëëØëíô ùíííéæäßßßçíƒ$ììÜkXXñ[ò÷ü),433* TOJ7)/7;ƒ$×ÚááÚ×׳×ÇÔñ ùÜÈÈȼ¸¯¯¯¹Çƒ$ÞÞ¶¶´Þ ûçÝ×Ƚ´²¯¯±±·½ÇÜæíú ƒ$ëëëëëëëëëýýýýýýýýüýýýýýÿÿýýýúûüýýýúýƒ$ÑÑŸŸœÑúáÔ˹«Ÿžššœ�£«¸ÒÞçúƒ$ðððððððððƒ$((999(%),37::<<<;:73+&#ƒŽÿ…ÿƒ‚„$üý öüüþý  ƒ$   ÷õòïïïððñòòòððððóøøøùøöõõõ÷÷ƒ$ ëøøüèýûøðéëòõöÿ úý øïíìèƒ$ööÿìêáØØØÕÕÖÕÕÕÖÖÖÚåíííííìïïïíìƒ$ûüÚñðóÛûúöíëêëéëòôóöçéìóüüüûûý÷ôõòƒ$÷÷óíãÝÝÝßàâãããÞÝÝáìóóóóòðîîîóóƒ$ûú ÏëììÍøøôèÜÝÔÕÔÞçêèë××Üêõõþýýôëèêæƒ$ åå òÛÕźºº½¿ÂÁÁÁ»¹¹¿ÏÚÚÚÖÕÒÔÔÔÚÛƒ$úûøðìëïôöÿþûüúúø÷øùøóòòóõöøúüúûýýüƒ$ùøþþøùùù÷öõôôôôóññññòõõõõ÷÷÷õööùùù÷÷ƒ$þø    ƒ$    ƒ€ €@@@@@½@@@ À@@ Àà- @@À@@@À@à@@½À@?@½À@à=@@@=@½@@€ÿþýýýüü#%&&&ûöôííè22&ƒëëîó÷öòññùþññðíìëææëëëæƒ üüüúúJMOOO@(ûðì<<4'ååÐhh^ƒÜÜâíôòêççô(((ÿççåàÝÜ××ááá׃ÑâôúúúûûýýûûûîÖò¯¯±±²·Åååý½áƒììêæäåéììéâáæìììììììììììÜÜÜÜÜ܃ÉÝòùùùûûýýûûûêÌ´Ÿ››�� ¦¹Üܱ©©×ƒëëéåâãèëëèßÞäëëëëëëëëëëëÖÖÖÖÖÖƒ�ÿƒ€…üüþþþ'''!"""ƒ � �  ƒ ÿëêíííó þÿ êêƒþýúøøõõòðëëëîôøøûƒ ÿææéééñ! îîƒ ûõõøÿü÷÷÷÷öõõú ƒÿ‚ýûÜÜßßßê"&%"ààúƒüùõêääçðñìçççæåääìøƒøüÿ‚ýüýýýùøöõôôðñðóõýýüòòôƒ‚ÿþÿÿþûüùùùü�ƒúÿ úöõõÿþüúùõõöþƒ�  ‚„€ €@@@@@½@@@ À@@ Àà- @@À@@@À@à@@½À@?@½À@à;@@@?@½@@€ÿþýýýüü#%&&&ûöôÙÍ̓ëëîó÷öòññùþññðíìëçìììççƒ üüüúúJMOOO@(ûðì<<4'¶®®H11ƒÜÜâíôòêççô(((ÿççåàÝÜØâââØØƒÑâôúúúûûýýûûûîÖò¯¯±±²·ÅÆ ÃÃììêæäåéììéâáæìììììììììììÝÝÝÝÝ݃ÉÝòùùùûûýýûûûêÌ´Ÿ››�� ¦¹»¸¹ƒëëéåâãèëëèßÞäëëëëëëëëëëëÝÝÝÝÝ݃�ÿƒþÿ€…üüþþþ'''!"""011ƒ � �  ƒ ÿëêíííó þÿ'33 ƒþýúøøõõòðëëëîôøøûƒ ÿææéééñ! 155ÿƒ ûõõøÿü÷÷÷÷öõõú  ƒÿ‚ýûÜÜßßßê"&%DBBùƒüùõêääçðñìçççæåääìø  ƒøüÿ‚ýüýýýùøöõôôðñðóõ …‚ÿþÿÿþûüùùùü�ƒúÿ úöõõÿþüúùƒ�  ƒ€ €„@@„@½@„@ À„@ Ààt„@À@„@À@à„@½À@ƒ@½À@à�@@@ƒ@½@@€>ÿþýýýüü#%&&&ûöôúúýüÿúðèæååäääòþþûúý   ƒ?ëëîó÷öòññùþññðíìëçäëíðñðìçãâàßÙÙÙÙÙÙÙùúüüüüöïíêçáÞßÞàáâäçƒ? üüüúúJMOOO@(ûðì<<4'õóîùöåÕÐÏÏÎÎÎæüûõóù $ *66654/!0869666654BCDDD@;88;=@@<90.-+(ƒ? ÿëêíííó þÿýþþýúöòóúý  ÿôïïîƒ?þýúøøõõòðëëëîôøøûúÿýùþüúúöõõõõöùùùüÿþýüúƒ? ÿææéééñ!  '>B?====,& %%%'(+590 ÿþüƒ? ûõõøÿü÷÷÷÷öõõú )%!)'&$$!" #*0571,% ƒÿ‚9ýûÜÜßßßê"&%ÿ þ 6665555# ùöø '+! ùëéèƒ?üùõêääçðñìçççæåääìøê ûùøÿýõöøøøû  ûóêƒøüÿ‚ýüýýýùøöõôôðñðóõ�#þýþþüüüüêÖØâôýüÿüôôôøÿÿöüûüüüƒ‚ÿþÿÿþûüùùùü�'      ƒ?úÿ úöõõÿþüúùþúùöóóóóéØÛå÷ýýý û ƒ�=       ).$ ƒ€ €l@@l@½@l@ Àl@ ÀàS l@À@l@À@àl@½À@k@½À@ài@@@k@½@@€2ÿþýýýüü#%&&&ûöôòöùþûõô þûýÿƒ3ëëîó÷öòññùþññðíìëèïÿ  ôèèèäáßÚÚÚâèƒ3 üüüúúJMOOO@(ûðì<<4'æëð ('' ÿHC>+#+/ƒ3ÜÜâíôòêççô(((ÿççåàÝÜÇÔñ ùÜÈÈȼ¸¯¯¯¹Çƒ3ÑâôúúúûûýýûûûîÖò¯¯±±²·Å ûóßÕÏÀµ¬ª§§©©¯µ¿ÔÞåòû ƒ3ììêæäåéììéâáæìììììììììììîîîîîîîîíîîîñîîððîîîëìíîîîëîƒ3ÉÝòùùùûûýýûûûêÌ´Ÿ››�� ¦¹ ÿòÙÌñ£—–’’”•›£°ÊÖßòÿ ƒëëéåâãèëëèßÞäëëëëëëëëëëë�ÿƒ�ÿƒ !!##! ýüû€‚ÿƒÿ��3üüþþþ'''!"""   "!!$&%&$! ƒ � � þþþÿÿÿÿÿÿƒ3 ÿëêíííó þÿúóõüÿ   ù÷öòƒ3þýúøøõõòðëëëîôøøûûùðçççääåäääåååéôüüüüüûþþþüûƒ3 ÿææéééñ!  þüûüúüøúý ƒ3 ûõõøÿü÷÷÷÷öõõú ÷ñññóôö÷÷÷òññõƒÿ‚-ýûÜÜßßßê"&%øùðñðúóóøƒ3üùõêääçðñìçççæåääìøïéÙÎÎÎÑÓÖÕÕÕÏÍÍÓãîîîêéæèèèîïƒøüÿ‚-ýüýýýùøöõôôðñðóõ ÿþÿÿúùùúüýÿƒ‚ÿþÿÿþûüùùùü�üûúùùùùøöööö÷úúúúüüüúûûþþþüüƒ3úÿ úöõõÿþüúù    ƒ�1     ƒ€ €"@@"@½@"@ À"@ Àà"@À@"@À@à"@½À@"@½À@à!@@@!@½@@ýüö;566ýýøBB6ƒëíððíëëØëëëðððëƒøøèwddý)gùùä||rƒ×ÚááÚ×׳×××ááá׃ûûÒÒªª¨ÒúããÁ»»ßƒëëëëëëëëëëëëëëëƒýýÉÉ——”ÉüÚÚ¯§§Õƒðððððððððååååååƒ� !!!ƒ’ û  ƒ    ƒÿÿæóó ÷ã àà÷ƒööÿƒâùøûã ááõƒ÷÷ƒ×óô"ôÕ ÒÒìƒ åå òƒýþûóïîò÷ù ÿÿƒùøþþøùùù�„ý÷úúû ƒ �„€ €"@@%@½@"@ À"@ Àà"@À@"@À@à @½À@"@½À@à"@@@"@½@@ýüö;566üðð944ƒëíððíëëØëìñññììƒ øøèwddý)gîææ@€iiƒ×ÚááÚ×׳רâââØØƒûûÒÒªª¨Òúà,,'Ý݃ëëëëëëëëëììììììƒýýÉÉ——”ÉüÎË̃ðððððððððììììììƒ� !!!?!!"@@ƒ’  üùƒ  ƒÿÿæóó ÷ãëîîƒööÿ ƒâùøûã Óëëƒ ÷÷ýýý…×óô"ôÕÊëëƒ åå òÿûûûÿÿƒýþûóïîò÷ùî÷÷ñææƒùøþþøùùùÿÿÿƒý÷àÞÞõëëƒ ƒ€ €f@@f@½@f@ Àf@ ÀàXf@À@f@À@àf@½À@f@½À@àd@@@f@½@@0ýüö;566   ù÷ööõõõ " #(((('%&-001ƒ0ëíððíëëØëìéðòõöõñìèçåäÞÞÞÞÞÞÞþÿûôòïìæãäãåæçéìƒ0øøèwddý)g  úêåääãããû /95?KKKJID6-1EQXYZƒ0×ÚááÚ×׳×áØÛïòðìåÞ×ÕÓÒÆÅÅÅÄÄÄ ðìæàÒÊÍÍÒÕÖÚáƒ0ûûÒÒªª¨ÒúØØØÕο°¦§¨©©©©ÁÐÕàëïîëÖÍij¨¨¨¨§¥ª´¼ÑÕ×ØÙƒ0ëëëëëëëëëàÝÛÙÖÒÎËÍÎÏÑÒÆÉÉÉÉÉÊÊÉÊÊÊÈÊÑÑÐÏÓÔÓÔÙÙÙÜàƒ0ýýÉÉ——”ÉüÖÕÓËÂÂªššš››››¸ÌÒáîòòîÔÈ»¦šššš™˜�©³ÇÏÔÖ׃0ððððððððð÷ñëêéìæââáäçèÙÛÛÛÛÜÜÜÜÜÜÜÚÝæåáßäçééííîó÷ƒ�.!!!!$(*.1119ED7#"!(111* ) ƒˆ ÷øüûûüúùôìíöþÿ‚…üëÙÓàïùüúúùù÷ƒ0 û "*,&#!!!! """"#%'&# ƒ0   &%*.58;71/)'*''''&%345551,)),.11-*!ƒ0ÿÿæóó ÷ãðóñöõñøôðíéåæíðõúüüüýþòçââáƒ0ööÿëùñðîêïóòñíëëóòòòòóôçææææçêêêíðöøõöòïîíëƒ0âùøûã  "9=:8888'! "#&04+úù÷ƒ0÷÷ü   !&(" üƒ0×óô"ôÕóú÷òõ***)))) ôíêìõûÿ íßÝ܃0 åå òÝýþîìëôûúùöòðùööö÷ö÷èéëëëîõúýÿ ýõîæÝƒ0ýþûóïîò÷ùûúùù÷öúû÷÷õõõõãÏÑÛíûùúöõøõíííñøúýøïõôõõõƒùøþþøùùù     ƒ    ƒ0ý÷óôöíéö÷ñèåââââØÇÊÔæö÷öóñõòìììòüþôêðùüýƒ0      ).$ ƒ€ €M@@N@½@N@ ÀN@ Àà? L@À@N@À@àJ@½À@N@½À@àL@@@M@½@@$ýüö;566 $%%#" /+($&,.ƒ ëíððíëëØëÝäô‚ � ùéÝÝÝÙÖÔÏÏÏ×݃$øøèwddý)gý47?>>5("_ZUB(%'4:BFƒ$×ÚááÚ×׳׽Êçûûû  üüïÒ¾¾¾¸²®¥¥¥¯½ƒ$ûûÒÒªª¨Òúúóë×ÍǸ­¤¢ŸŸ¡¡§­·ÌÖÝêóüÿƒ$ëëëëëëëëëííííííííìíííðííïïíííêëìíííêíƒ$ýýÉÉ——”ÉüþöéÐú¨šŽ�‰‰‹Œ’š§ÁÍÖéöƒ$ðððððððððòïïñññóóòóóóöòòõõóóóññòñññîòƒ! !!##! ýüû„ÿþÿÿÿÿþÿÿÿÿÿ$ ûõððòñô÷ûü   úøôõƒ   ÿÿÿ�ƒ  ƒ$ÿÿæóó ÷ãù÷ôìåçîñòû öùü ÿýôëéèäƒ$ööÿýôôôññòñññòòòö  ƒ$âùøûãúõôðçåäåãåìîíðáãæíöööõõ÷ñîïìƒ÷÷úðêêêìíïðððëêêîùƒÿýûûû…$×óô"ôÕöêëâãâìõøöùååêø ùöøôƒ$ åå òüöæÛÛÛÞàãâââÜÚÚàðûûû÷öóõõõûüƒ$ýþûóïîò÷ù  ÿÿ  ƒ ùøþþøùùùƒÿýýýýþƒý÷þÿÿÿ‚ƒ$  ƒ€ €@@@½@@ À@ Àà@À@@À@à@½À@@½À@à@@@@½@@„„„„„„„„„„„„„„„„„„„„„„€4@@@À@@À@à@@@¶žþþ•¶ž•¶ž•¶žÿÿ•€4@@@À@@À@à@@@€%ŒòáÚ胀òßÕÛíŠîÚÖÞòƒ€íâçôŒ ƒ€ #Š" ƒ€åÕÝðŒ$,ƒ€'2,Š-2(ƒ€Œÿþýþƒ€ÿüýüÿŠþýüýÿƒ€ €@@@½@ @ À @ Àà@À@@À@à@½À@@½À@à@@@@½@@€ú÷�…€Úí�…€¸@þà�…€Ÿ@þ”�…€+t�…€÷k�…€ú�…€ô�…€�…€ìÛ�…€ñ÷�…€X@@@À@@À@à@½À@@½À@à@@@@½@@ˆ�‹ˆó�‹ˆò�‹ˆç�‹ˆá�‹ˆ�‹ˆ �‹€X@@@À@@À@à@½À@@½À@à@@@@½@@Ž�‘Žà�‘ŽÝ�‘ŽÆ�‘Ž·�‘Ž�‘Ž�‘€X@@@À@@À@à@½À@@½À@à@@@@½@@ˆ�‹ˆà�‹ˆÝ�‹ˆÅ�‹ˆµ�‹ˆ�‹ˆ�‹€ €}@@¢@½@Ÿ@ À¦@ Ààw|@À@}@À@à}@½À@}@½À@àz@@@|@½@@>ôÅÑöC< ýñîîîíêçåæíø !! êÚÎÅÁ¿»»»Çáö/;CHILMMMB( �Îí‚0 ‚  úôöü‚%øëåçóýFFE>/òÞ×ɽººº»ÂÑë $)7CFƒÌ@ÿo"‡Ï cXûêÙÕÕÕ×ÔÏÊËÒàëü  á¥Hÿ~ÿeÿSÿKÿGÿCÿCÿCÿ_ŸÕ>e~G�˜š�ŸŸŸƒBá�™Ö‚\‚  ýôôû‚ õêééîöB……‚vY(îͽ�‚Cÿ{ÿ{ÿ{ÿ~ Š§Ø !7Bb~@…ƒCÿÿÿÿÛÇÁØ@ÿn —Å×××ÙÛØÖÌ·�ZÿnÿEÿÿÿÿÿÿÿÿÿÿ$ÿMÿnÿMÿ$ÿÿÿÿÿÿÿÿÿÿFÿn Ž·ÎØÚÛÙ×ÖÖÖÄ–@þÖ�ùƒ ƒ þôçéôûøúþ‚   ‚   ‚ þüüý÷ìèéõÿ„CþÚþàþÃþ½Ò»µÍAÿHÿ| ¶ÍÍÍÏÑÎʾ¤\ÿqÿHÿþÛþÄþÄþÄþÁþ¾þÀþÃþÏþêÿÿIÿ þìþÏþÂþ¿þ¾þÂþÃþÃþÃþÛÿÿHÿq ¤ÀÌÏÐÍÌÌÌÌ´@ÿ{€@þˆ�ðþ‚ ‚ þñáãñúöøý‚ ! ‚  ‚ þûûüôçâãóÿ„>a`bg;*.;PaeeeegfebYI;GWaeggeeee]K;.*x�‚ƒ  ‚ ÿûööúÿþþÿ‚ÿÿþÿûö÷üƒ  …>'óöæú  üüüüùøøúüþ !(+-/222, óìçäáàÜÚÚÚàð� ‚Ôã‚ ùìäèôü‚% ßßÞàçô!!!!"  öìçæáß߃>1B1üñð   5CKOQUWWWK.ÿåÖÏËÈÆÄÃÃÃÎí�+‚ç ‚ üø÷øùö÷øûý‚%  ääââèô õíëëçääƒ>7U;%ûáí    @S]cflpppa<ÿßÍÄ¿»·³°°°¿å�0"‚Üô‚ úòîïòòñóøü‚% ××ÕÕÞï'$)*)))++"íÝÜÝØÖ׃>èñîãÿø÷ó÷ûýýýþÿÿþÿü÷ôëéêêêëééééëîòññïðñññòòòóôõö÷ùùø÷÷ööööõõç�‚üƒÿþýþÿƒÿþþþ�ÿÿ���ÿÿ‚üûþÿƒ>êìïþôúøø÷÷÷ùø÷öøúûüøûþþþÿþþýúúùýõëäâàßÞÜÜÜâîø  ø�õ‚‚ƒ%ÿüüýþüùùûþ øôóòðñññðñóû ƒ€ €Š@@¯@½@³@ À¹@ Àà~‰@À@Š@À@àŠ@½À@Š@½À@à†@@@ˆ@½@@?ôÅÑöC< ýñîîîíêçåæíø !! êÚÎÅÁ¿»»»Çáö/;CHILMMMB(ååà** �Îí‚0 ‚  úôöü‚+øëåçóýFFE>/òÞ×ɽººº»ÂÑë $)7CFëëðððëƒÌ@ÿo"‡Ï cXûêÙÕÕÕ×ÔÏÊËÒàëü  á¥Hÿ~ÿeÿSÿKÿGÿCÿCÿCÿ_ŸÕ>e~G�˜š�ŸŸŸƒBµµ 88.á�™Ö‚\‚  ýôôû‚ õêééîöB……‚vY(îͽ�‚Cÿ{ÿ{ÿ{ÿ~ Š§Ø !7Bb~@…××ááá׃CÿÿÿÿÛÇÁØ@ÿn —Å×××ÙÛØÖÌ·�ZÿnÿEÿÿÿÿÿÿÿÿÿÿ$ÿMÿnÿMÿ$ÿÿÿÿÿÿÿÿÿÿFÿn Ž·ÎØÚÛÙ×ÖÖÖÄ–EÿxÿxÿVÿPÿPÿt€@þÖ�ùƒ ƒ þôçéôûøúþ‚   ‚   ‚þüüý÷ìèéõÿëëëëëëƒCþÚþàþÃþ½Ò»µÍAÿHÿ| ¶ÍÍÍÏÑÎʾ¤\ÿqÿHÿþÛþÄþÄþÄþÁþ¾þÀþÃþÏþêÿÿIÿ þìþÏþÂþ¿þ¾þÂþÃþÃþÃþÛÿÿHÿq ¤ÀÌÏÐÍÌÌÌÌ´Fÿ{ÿRÿRÿ'ÿÿÿM€@þˆ�ðþ‚ ‚ þñáãñúöøý‚ ! ‚  ‚þûûüôçâãóÿååååååƒ?a`bg;*.;PaeeeegfebYI;GWaeggeeee]K;.*..;>>/x�‚ƒ  ‚ ÿûööúÿþþÿ‚ÿÿþÿûö÷üƒ  ‹?/òÞ×ɽººº»ÂÑë $)7CFƒ@ÿx €A<:ûêÙÕÕÕ×ÔÏÊËÒàëü  á¥Hÿ~ÿeÿSÿKÿGÿCÿCÿCÿ_ŸÕ>e~G�˜š�ŸŸŸƒBá�€‚  ýôôû‚ õêééîöB……‚vY(îͽ�‚Cÿ{ÿ{ÿ{ÿ~ Š§Ø !7Bb~@…ƒEÿÿ/ÿ+ÿÿÿn —Å×××ÙÛØÖÌ·�ZÿnÿEÿÿÿÿÿÿÿÿÿÿ$ÿMÿnÿMÿ$ÿÿÿÿÿÿÿÿÿÿFÿn Ž·ÎØÚÛÙ×ÖÖÖÄ–@þÖ�† þôçéôûøúþ‚   ‚   ‚ þüüý÷ìèéõÿ„FþÁþöþñþ½þ½ÿHÿ| ¶ÍÍÍÏÑÎʾ¤\ÿqÿHÿþÛþÄþÄþÄþÁþ¾þÀþÃþÏþêÿÿIÿ þìþÏþÂþ¿þ¾þÂþÃþÃþÃþÛÿÿHÿq ¤ÀÌÏÐÍÌÌÌÌ´@ÿ{€@þˆ�† þñáãñúöøý‚ ! ‚  ‚ þûûüôçâãóÿ„;eTVgg;*.;PaeeeegfebYI;GWaeggeeee]K;.*x�†  ‚ ÿûööúÿþþÿ‚ÿÿþÿûö÷üƒ  …;T; 33 $'''&%%&'%!-26677:::4&þþýüûüüü 0�‚‚þúùúþþƒ%ûûùùúüüúúúúúûƒ;7 ó  üüüüùøøúüþ !(+-/222, óìçäáàÜÚÚÚàð�‚‚ ùìäèôü‚% ßßÞàçô!!!!"  öìçæáß߃;9&Øëì   5CKOQUWWWK.ÿåÖÏËÈÆÄÃÃÃÎí�€ììý‚ üø÷øùö÷øûý‚%  ääââèô õíëëçääƒ;I0Ìèé    @S]cflpppa<ÿßÍÄ¿»·³°°°¿å�€ììü‚ úòîïòòñóøü‚% ××ÕÕÞï'$)*)))++"íÝÜÝØÖ׃;éïëååó÷ûýýýþÿÿþÿü÷ôëéêêêëééééëîòññïðñññòòòóôõö÷ùùø÷÷ööööõõç�‡ÿþýþÿƒÿþþþ�ÿÿ���ÿÿ‚üûþÿƒ;êñ úøø÷÷÷ùø÷öøúûüøûþþþÿþþýúúùýõëäâàßÞÜÜÜâîø  ø�‚‚ƒ%ÿüüýþüùùûþ øôóòðñññðñóû ƒ€ €x@@‘@½@‚@ À†@ Ààiz@À@v@À@à{@½À@z@½À@àx@@@x@½@@EŸ§ÛÓÿdÿk.Ÿ˜ûðëëëèçèéëðù þ #/8@EILLLE5)')) �GÌôôÌýý(ý(ý�  ûøúý‚ÿýüº»ºººº½ÄÓì&-8CFFFFF…R]CÕÊÿÿ+£’éåÛÓÓÓÐÐÒÓÕÜê÷ü÷âáö LjG€�—œ   Œ _:50/ñä�GÀôôÀýýWýWý�  üùûþ‚þûùEÿ}ÿ}ÿ|ÿ{ÿ{ÿ{ ‚’°Þ5Id~D………ƒƒ„ DþÜþÝþÜþÛÿs –ÂÕÕÕÙÜÜÖʳ�IÿqÿeÿLÿ3ÿ*ÿ*ÿ3ÿKÿcÿm ‹³Ë×ÛÜÙÕÕÕ•Gÿmÿ\ÿ7ÿ(ÿ(ÿ3ÿLÿf€@þü�Göôôöýý ý ý� þðßàïýûýÿ‡ÿ‚ ÿüûýðâáðþŒýýüüEþºþ»þºþ¹ÿNÿ{ ²ÊÊÊÎÒÑÊ»žKÿnÿKÿ<ÿþþþòþòþþÿÿ:ÿGÿl Ÿ¼ËÐÒÎÊÊʲHÿyÿGÿ2ÿþïþïþýÿÿ>€@þ¸�Gøôôøýýýý� þìÖØêýúüþ‡ÿ‚ þüúüëÚÙìýŒC×ÖÕÖ0“’‘’9* .:?IRVVRI@;/,;AQWWSI>i�Gùôôùýýýý�  †ƒ  ŒGÿyÿzÿtÿs½¼¶·, $" ÿýüüüü /�Gý ý ý ý úööú� ÿþÿþýÿƒþûÿýúûûûùø„EÿPÿLÿ1ÿ5�Œ.qt  üùÿ ýùñìèåáßÜÜÜßéðóïðùùý�Gýý ý ýúññú�úñîòýÿÿ…#!"!!!  õäçãàßßßÝÝ„GÿvÿxÿFÿD»·…‰, ü÷ýúïÞÓËÇÅÃÃÃÃËÞîòñï÷ø�Gýý ý ýúèèú� þøóôú‚ ÷óñêääääãá„Gÿÿ}ÿ=ÿ?À¸x€,  ùôû÷êÖÊ¿º¶´³³³½Ôèíëêôõþ &�Gýý ý ýúØØú� þòìïøƒ-+*)))(%ñèäÜ××××ÖÓ„GÿTÿSÿNÿO–—’‘,õùüþþþýþþÿþûøôòïðïïðñóõö÷ö÷ø÷ö÷÷÷ôóòñììîïñóé�Gýý ý ýúþþú� ÿýüüý„ ÿÿÿ� þúùûþÿÿÿÿÿþÿ…GÿMÿSÿhÿb–•ª«,øûùööö÷÷øúûúüýýÿúøý  þúó�Güðý ý üðúôôú‚ÿýüýƒÿÿïïðñññððóú ÿÿ…€ €f@@o@½@c@ Às@ Àà_f@À@f@À@àf@½À@f@½À@àf@@@e@½@@1åòñèèèééééèëìñøýóóþ%4>CDEEEA3#ùüøâèÚâ�,ÿý  ýûüÿÿÿÿÿü¼º¸¹ºÂÒìþ/@FFFDBÿþÿÝ�݃öòéããããããäâáßèðþý9azFŠ“•———‹jKC/-¸ÇA2©¸2#�€%þ ÿÿüúûþþþþ÷Іƒ„…�¦Öþ +6Spzzzwt�HH½�½ƒ0¬ÇàèèèêììèÛÆµ°¤•ŒŒ�©·Ëáêëìéççç߯¬­‰‰ŠŠ›­´³³´³´´³@ÿ{�þüú÷òõ÷ýüþ�ÿþüüôîë÷ÿÿÿÿÿÿÿÿþþþˆ ºÔÝÝÝãçæßÍ­’Œ�Cÿuÿnÿnÿqˆ˜®ÈØâèãÝÝÝÓº¢ Cÿuÿiÿjÿp †›¡  ¡    @ÿX�üú÷êÙßìÿùøü‚íÚâÿéÝÙêùýýýýüýüüüüü�ƒ1 $** -//0-+%5�€#þÿ ûøúþþþþÿÿþÿúôöÿüÿÿÿƒÿÿˆ1,  ! û÷öõööööù  ��( ÿÿÿýüÿ ûøúúúùø � ƒ1,  þñééèèèëóüõ ýÿ!ÿø�,÷óÿÿûýþÿþþþÿÿ&%&%$2;%ôñæÜÙÙÙÚÛýóó�ƒ1÷ü  ûëðçñõæ×ÑÏËÊÊÊÊÏáôåèäêãÝæ ëí!èîÜ�,þþþþþüÿ üòóçâåååãàýûýññ�ƒ1 # üäêìøüïßÒǾÀÀÀÀÆ×åÙÝÜäéëö' ßæ)"áèç�,üüüûþ,,('&>M2ÿôõäÙÙÙÙÕÔûýåå�ƒ1íêöööóõòìí÷ýûþþóùôíççèêëëëâÛáæóüþõòüýþþÿù�þÿüýñýþÿýÿ�üùùù÷ùþþÿÿüü�ƒ1*öûûûùøðááö /$!0!# !!!&$  "! #!�€$ ùüçâñýúÿóóöõôú  ‚ù�ùƒ€ €`@@z@½@t@ Àx@ ÀàS`@À@^@À@àa@½À@`@½À@à^@@@^@½@@4 :N8Lûðëëëèçèéëðù þ #/8@EILLLE5)')) �‰  ûøúý‚ÿýüº»ºººº½ÄÓì&-8CFFFFF…!/Qq- OoéåÛÓÓÓÐÐÒÓÕÜê÷ü÷âáö LjG€�—œ   Œ _:50/ñä�‰  üùûþ‚þûùEÿ}ÿ}ÿ|ÿ{ÿ{ÿ{ ‚’°Þ5Id~D………ƒƒ„�Aÿ)ÿ$ˆ¹CÿUÿPÿ´ÿs –ÂÕÕÕÙÜÜÖʳ�IÿqÿeÿLÿ3ÿ*ÿ*ÿ3ÿKÿcÿm ‹³Ë×ÛÜÙÕÕÕ•Gÿmÿ\ÿ7ÿ(ÿ(ÿ3ÿLÿf€@þü�‰ þðßàïýûýÿ‡ÿ‚ ÿüûýðâáðþŒIÿkþìþçÿfÿŸÿ ÿÿšÿNÿ{ ²ÊÊÊÎÒÑÊ»žKÿnÿKÿ<ÿþþþòþòþþÿÿ:ÿGÿl Ÿ¼ËÐÒÎÊÊʲHÿyÿGÿ2ÿþïþïþýÿÿ>€@þ¸�‰ þìÖØêýúüþ‡ÿ‚ þüúüëÚÙìýŒ4BVVB2FF29* .:?IRVVRI@;/,;AQWWSI>i�‰  †ƒ  Œ452üø $" ÿýüüüü /�‰ ÿþÿþýÿƒþûÿýúûûûùø„4øçÎîÕ  üùÿ ýùñìèåáßÜÜÜßéðóïðùùý�‰úñîòýÿÿ…#!"!!!  õäçãàßßßÝÝ„4åÒ³øåÆ ü÷ýúïÞÓËÇÅÃÃÃÃËÞîòñï÷ø�‰ þøóôú‚ ÷óñêääääãá„4ýÀÑ#Õæ  ùôû÷êÖÊ¿º¶´³³³½Ôèíëêôõþ �‰ þòìïøƒ-+*)))(%ñèäÜ××××ÖÓ„4îïììõùüþþþýþþÿþûøôòïðïïðñóõö÷ö÷ø÷ö÷÷÷ôóòñììîïñóé�‰ ÿýüüý„ ÿÿÿ� þúùûþÿÿÿÿÿþÿ…4ùùúúøûùööö÷÷øúûúüýýÿúøý  þúó�Šÿýüýƒÿÿïïðñññððóú ÿÿ…€ €—@@œ@½@¤@ À·@ Àà”—@À@˜@À@à˜@½À@�@½À@à•@@@˜@½@@?ïòööôòÿàáÿ øÞÎÊÉÇÇÇÊÌöêëëëëëíñù /8:<>>>81 ü éð&àé�>ÿÿÿCGGEFH?&úõéÙÚÛÞçêëíìñøýÿÿÿÿýû¼»º¹¹¹Â×çô �""Õ�Õƒ.óâùðôòàѳ›•“���›£ûèÙÙÙÜÜßåñ*2/&4D^rx{B€€€sj$2888764."ËØRE¾ËE8�?ýýýÿoqsstvh@ ÷î×ÄľÂÍÖÚãçðúþûü�Ž‹ŠŠŠ˜¼Ûï$44:74/,+&! þ==À�Àƒ ¥¯ÂÑÝááË¿¾·œ€Eÿvÿwÿyÿyÿyÿy"�ŠÄ×åååääåá×È¿´�ˆ€€�›¨±ÆÜãááâââÚÐŒ…Gÿ{ÿwÿwÿwÿvÿuÿuÿy ƒ–¯¯¯¯¯¯¯¯@ÿR�"ÿÿÿÿþÿ þÿýùø÷õùþ‡ÿü÷ûùùþÿþ�þþþ�þƒ �˜ª¼ÐÛÛ¿­£•Iÿ|ÿ]ÿMÿLÿRÿTÿTÿTÿ]ÿi ¹ÐàààßßàṴ̂™•ƒCÿjÿ^ÿ^ÿt �¢¤½ØáÝÛÝÝÝÓÃKÿlÿbÿXÿUÿUÿUÿRÿQÿQÿTÿ`ÿyЪ@ÿfŒ  ¡¡@ÿ$�‚ï ÿ�üõðóòõúþ‚ÿÿÿÿüüÿÿÿÿüõöõõù‚ÿ _ªª_þ�þƒ?!)6>==>===2) "& !)44))* * -9====<=;1%  ! !F�ÿÿÿÿ„5ÿüþþþÿÿýÿþÿÿþþÿÿþþÿÿõþÿý÷ùüÿ�õõ�ƒ?-& ;@!(('((('(%  !! !!!"##$&* 5�!úöøüûùøúÿÿ þ �  üùûûüþ � ƒ? %"ð÷    ûìçîîöðí÷ ýîæèèåååéîû÷òîîîïíïðô Ûù ëôú�?ÞÚÛÞÝÛßô  &((&&&  ùïïñòõùùïôæïú¡35¡.�.ƒ? þöú  üþùõõæéåÝÚßáêìåèæâââÞÞÞáÞþòæààààááäîþ àááæï�?ííîðïíëîòý   þþþþþÿÿ ýõ÷øùüÿÿ�ƒ?þöñ÷  ü !# Þú óéâÌÄÐÙÖרØÞÜÕרÒÒÒÚÚïÝ×××ÚÛÛÞåóãüÿæzÿ@ÿvòê�? ßÝÞáàÞÛèõü!"ùþ ûúþþþ)+*'''"ÿ÷ïðñô÷ùøðþ¡ ¡> @Ÿƒüû*ûòîòôôöööÿëô‚/ü÷óóãêøñóíרõêóûûûîïûóðïïïïðïðøúóîõúõýì�üüüüûüúöôõôòîïõõ÷øø�  þ �   "ýýûùùùôëôõüûúúûãá$�$ƒ?Këçóö÷øùøòÞßíîïñññóï´Ôõõõö÷÷ùþ    4 . ùí ù �?þý ÿûúøøüúþðòüþýüÿøøùùøøòúúÿüýüûþþÌÊ6�6ƒ€ €€@@’@½@�@ À“@ Ààu{@À@€@À@à}@½À@~@½À@à€@@@@½@@>þõññññðððñó÷þ  %)4?ILLNNNN@$ ýçØÌ¼½õ'!îõ+$æî$�9ÿÿÿ ýüþÿºº¹¹¹¹¿Ïë )>HHHE:"ùÚÞÞ%%üÿÚ�ÚƒéÜÜÜÛÙÙØÚáî!19!)>RoHƒ”›œžŸŸŸˆV-Ï®˜‡Aÿ}ÿz F;>=8/$Öä^PÊÖPD ��   üúûý‚ÿýû‰ˆ†………�¦×(1OrB��� }nMçÝÝ##ìõÿ�AAÉ�Ƀª½ÓÜÜÜáèîêâ×Ç®œ˜ˆCÿwÿqÿqÿ{�¤¬½ÓàæçâÞÛÛÛÑ»ª–Eÿ~ÿqÿjÿhÿhÿh££Dÿgÿgÿgÿkÿr €˜¨¨¨¨¨¨¨¨@ÿ5�� ÷éâï +C.Œ  (þèÚéù‚…�ýýˆ‹©ÇÒÒÒØàçâÙ̸šƒ€EÿjÿSÿKÿKÿUÿnˆ’©ÆÖÞßÛÕÑÑÑä�FÿwÿZÿJÿBÿ@ÿ?ÿ?‹‹Fÿ?ÿ?ÿ?ÿAÿHÿXÿu‘��‘“‘‘“@þÿ� ÿÿõäÚâ >U:ƒ�‚!2%ÿÙÐäùÿ‡ÿÿøø � ƒ>'   "+6::1'&%" &-6;<<==--=>>=:5-#""#%##%R��  üîåìõûþ‚† ü÷ñð÷ ÿ�ÿÿÿÿ…ÿþþÿ�øø � ƒ>  )21453592'#þùøüÿ)5=BEFC.-46540,$()"!((!!L�7  óÓ½ÑëøýýýýþþÿøæØå÷  ûûûúü   ÿýÿˆ>ýùýü÷úýÿ ÿùóîöúùõèÚÍÊÌÎÏÏÏÕåôú#  áßàãæíöýàæêñþ�9ûôìÔ¸«Áßñûýýýÿ*(()))"ëÎÐßõîÜÖ×ÖØßï ååâêõüçç�ƒ>àð  õéãæìîëèÞÏž¼¿ÁÃÃÃÊØãö#'()ôöÜÞÝÜÜÝß Ó× ××ø�� øæÎ½Òíûƒ#ëØàëûûîèèèççéîòôôÿÿüüþ�ððþ�þƒ>ìó  üôìçïøúôðåÔȽ¹¹¼¾¾¾ÈÞíÿ'069@ÞÙÛÞàãèÈÔÓÞ� úîåÓÛüýþÿƒ /,))))#íÏËÛ÷þíÚÔÕÔÔÖÜèï � çòüÌÌ,�,ƒ>òôúýýýýúöõøöòìéêòéÒÌÖåñ÷ø÷ôôôô÷þþöóóóññçèèëíðñôîêïûôïöå�9ÿÿþû÷û ÿ ùôöùù÷÷ùúûýþúúþÿèæ"�"ƒöýþúúúüÿ�4ýöìߨæÿ   ú÷÷øøù ýðü�þþýñúÿþþþýþÿ‚#  ùöûýþÊÊ-�-ƒ€ €x@@‰@½@…@ À‘@ Ààiz@À@y@À@àx@½À@x@½À@àx@@@x@½@@<òÏ×ì5#øìéééçæåäåéñ÷ úâÓËÆÃÀ»»»ÄÜð!/8;=@@@7 ú�Úó‚2‚ þþƒ#ýõðòû??;2#öâÛÑÆÁÁÁÈÖð %.:?ƒ&æ…›%Õ m_ôáÚÚÚ××רÙÞêó"""%&%$#︗…Fÿzÿuÿrÿjÿjÿjÿ~³âRqE�ˆ‹‘‘‘|G÷� Ø‚U‚ ÿÿƒ#ý÷ôõûvvn]BòÑÄ®”ŠŠŠ—²á.>>:-"  H�ÿÿôò‚ þúùûÿÿÿÿ‚ ýýüüýþ�ÿÿýýƒ<"÷ìþ ýüýÿý "%(*/222.ôìèçåâââçõ� ÿÿæê‚ýøöøüþÿƒ þþþþ�ÞÞàäëöþ  """þòæåäàÞƒ< 5&üîñ  ÿûûûûûýþþÿ+6:=?AEEE>'ûäÚÖÔÓÎÎÎÖî �‚ï‚ÿÿ�þýþÿƒ"äääçì÷  öîíêæäƒ<D1ü Üî  þúúúùùûÿýþ4CIMORWWWN1úÛÎÉÈÆÁÁÁËè�‚çé‚ ÿþýþþýüüþƒ"×רÜäô#()))% ïââÞÚ׃<ëúóéýýéóùûýþþþüûûûúøóðíìëëëìëëííïöòððïïïïñðððòôö÷÷÷öööøøøöôç�ÿÿüôƒÿþÿƒÿ�þ�þüüÿþþþÿÿþüüýýþƒéõñöýø÷÷÷÷÷ø÷øøöøûÿ�ÿÿÿ÷ïêéèæåäääèðù ú�ê‚ü‚��ƒÿ�ÿÿÿÿ� úôóòòñññóøü ƒ€ €…@@•@½@—@ À£@ Ààp‡@À@†@À@à…@½À@…@½À@à„@@@ƒ@½@@?òÏ×ì5#øìéééçæåäåéñ÷ úâÓËÆÃÀ»»»ÄÜð!/8;=@@@7 ÙÙÕ%%ú�Úó‚2‚ þþƒ)ýõðòû??;2#öâÛÑÆÁÁÁÈÖð %.:?ììñññìƒ&æ…›%Õ m_ôáÚÚÚ××רÙÞêó"""%&%$#︗…Fÿzÿuÿrÿjÿjÿjÿ~³âRqE�ˆ‹‘‘‘ |GÑѾYYM÷� Ø‚U‚ ÿÿƒ)ý÷ôõûvvn]BòÑÄ®”ŠŠŠ—²á.>>:-"  ,,;..,H�ÿÿôò‚ þúùûÿÿÿÿ‚ ýýüüýþ�ÿÿýý þþþ ƒ?"÷ìþ ýüýÿý "%(*/222.ôìèçåâââçõ$ûûý� ÿÿæê‚ýøöøüþÿƒ þþþþ�ÞÞàäëöþ  """þòæåäàÞøøøƒ? 5&üîñ  ÿûûûûûýþþÿ+6:=?AEEE>'ûäÚÖÔÓÎÎÎÖîèèþÈÈÎ �‚ï‚ÿÿ�þýþÿƒ(äääçì÷  öîíêæä ƒ?D1ü Üî  þúúúùùûÿýþ4CIMORWWWN1úÛÎÉÈÆÁÁÁËèÜÜûµµº�‚çé‚ ÿþýþþýüüþƒ(×רÜäô#()))% ïââÞÚ׃=ëúóéýýéóùûýþþþüûûûúøóðíìëëëìëëííïöòððïïïïñðððòôö÷÷÷öööøøøöô �ç�ÿÿüôƒÿþÿƒÿ�þ�#þüüÿþþþÿÿþüüýýþÿÿÿƒéõñöýø÷÷÷÷÷ø÷øøöøûÿ�#ÿÿÿ÷ïêéèæåäääèðù úúòú�ê‚ü‚��ƒÿ�ÿÿÿÿ� úôóòòñññóøü ÿÿ‚ÿƒ€ €d@@x@½@}@ À}@ ÀàTd@À@d@À@àd@½À@l@½À@àc@@@d@½@@1éï ðö öü þëë!!!"" AHPëáÓÌÇÅÄÂÂÂÅÎ×:ú�ÒîîÒñ ñÒîîÒñ ñƒýóèéééâÝÜÞÞÞ###öïêÞÙÒż¼¼ƒŸªâמ©áÖôÿóþ¾½ñû üñæuAƒ�µ•IÿmÿWÿKÿHÿFÿCÿCÿCÿNÿn�hã�Ê�ÊÁ÷÷ÁÊ�ÊÁ÷÷ÁƒûïëßÕÉ¿½¿¿¿@@@,ìߨݬ‘BÿÿÿƒGÿÿþêþêÿÿþæþæ ÖÕþþÐÐÔÓLÿEÿ2ÿÿÿÿÿÿÿÿÿ!ÿ6ÿHÓÓÓLÿIÿ6ÿ!ÿÿÿÿÿÿÿÿÿ4ÿIÓ@þè� õõõõ õõõõƒ  Ž  †GþÕþÔþ¤þ¤þÓþÒþ¢þ¢ ÉÊÄÅÉÇLÿþüþäþÛþÛþÛþÙþØþØþÛþæÿÿÇÇÇLÿÿþçþÛþ×þ×þØþÙþÙþÙþãþÿÿÇ@þà� ú÷÷ú ú÷÷úƒŽ†[Zoo__qp�'LS[^^^^__^ZRJJQZ^___^^^ZRJq�ÿÿÿÿÿÿÿÿƒþüùúþŽÿüûüÿ†1.-;;21??þþ &''(((('&'(&!øú÷5676788999997ûn�÷÷÷÷ ÷÷÷÷ ƒýúúúúúöööõöùýƒ1'& &$ öø ÷ø  ÿþþþþýýÛÚÔ&),-01355541.á�  þþ  þþƒ  èèèìóý ƒ1>>00AA44þþÿÿ"#ÒÓÎIR[`dfijjjg^SØ=�÷÷÷÷ ÷÷÷÷ ƒÿýü ý÷øüüüääääçôÿ ƒ&XS7;b]?Dþúó÷þ+-%!ÇÈÀ[fryE‚†‰‰‰…xkÐ �îÙÙî îÙÙî ƒ õëñûûû××××Üîÿ %%%ƒ1ôñçèôðäåýýÿîíêéééëêëêêëîööõììïðòñðñññôóï÷Ù�ÿúúÿÿúúÿ„ÿÿÿƒ1ääéèààçç÷øÿööÿÿòò÷÷÷ööö÷öø÷öôõâßÛÙØÖÕÕÕÕ×ÛÞç�îîîîêêêêîîîîêêêêƒýü úøøù÷öööƒ€ €5@@=@½@.@ ÀF@ Àà5@À@5@À@à5@½À@5@½À@à5@@@5@½@@ãÜíõåöïõêøQ"!Ó,>0*"A0(:A�€ÚÚàà�JJ�ààÚÚ„ «�Ñß®ÏÑÞÆê@¤..@ÿz 1U:-1n;-cq�€¾¾þþ½½ýý�A���ýý½½þþ¾¾„ ˜—èè§ÂèèÉþû¡žHÿ6ÿ2ÿgÿFÿFÿnÿ‰ÿFÿF—˜@ÿ �ŠŽAÿ~ÿ~ ä䎱äã»ý‰†Jÿþúÿ@ÿÿÿKÿmÿÿÿ~ÿ~€@þå�€ÿÿþþ�++�þþÿÿ„*) ' óô()\aAJK<-KK)*Z�› !  ÷8*$$$#%>�€üüùù�èè�ùùüü„úîÿýøí½ÞàâÍÏÑßÕÒÖÐÌè�€ÿÿíí�ÐÐ�ííÿÿ„==/$Î [û  ð íí8�€þþééÿÿêê�½½�êêÿÿééþþ„KK%?'%1Ä oó  åççF�€þþßßþþßß�ŸŸ�ßßþþßßþþ„÷ùýýøÿþþÿ óñåÛéëëêñêêòðå�€�óó�„çèóôêøóõó"ýúÐéÿýúø üû é�€  ��  „�ËPress Start 2PjÔ¼›DSIGÍ´GDEFGSUB%_»8dOS/2h�t'œ`cmapÌ;ô]ü ‚cvt Áhü¿âfpgmvd€|¿è gasp¾üglyfwþ�€‡®headuGÞ–06hhea§z–h$hmtxïzY`–Œ Floca¡½d Ô&maxp* Æ¥ü nameAÀÚ¦~postäœ{u¬œ]prep×Öêͱ x{�� ^JDFLTlatn$ÿÿ  CAT ÿÿ ÿÿ aalttaaltzaalt€ccmp†ccmpŒccmp’frac˜fracžfrac¤ligaªliga°liga¶locl¼ordnÂordnÊordnÒsupsÚsupsàsupsæ  *4<DNV^fn0Vhr†�޲ÄÌØ"    ü ô ø ùûûÔÞ ÂÔ ÊuÁ¼ õ¤ö´¨ ÷ø÷¥ø2  @ ¸ Š÷ø÷ø¤xy{´ <øûøú÷{IÁC› I{¤Áøùúû<´I{Áè�ŠXKŠX^2‡CYREÀûèèv Ÿîè ø ÷6Vj  A$÷øùúûüýþÿ GDFi$%*-8:<BCITVW[`doprsw v‡{†‡�‘›œ¡¤¯±´º»ÁÌÎÏÓÚÞéêìíñqL HMh|€~„ƒŠ’˜•–¦ª¨©ÀÂÆÄÅÊßãáâsp4<l kØnmo€…EQNJIH?TURQáO÷øÈ…ÉMS9KP&'2 RSË"!+,-.C\ðv8()õöt /*W!/124JLhNegi¥„Œ‰�†‹ƒˆŠ‚n²€2 /Ha’¼ÇËÝ&5z~ŠŒ�¡°Î/5:_cku�¥±»ÂÌÙßéù%    " & 0 : D t ¬ ¯ ´ ¸ ½!!"!�!“""""""""+"H"`"e%²%¶%¼%À%Ê&&`&c&f&jñøÿûÿÿ 0 Jd’¼ÆÉ×&5z~„ŒŽ‘£±06;bjr� ª¶ÀËÏÜâî$    & 0 9 D t ¬ ® ´ ¸ ½!!"!�!‘""""""""+"H"`"d%²%¶%¼%À%Ê&&`&c&e&jñøÿûÿÿÿõ§ÿÀÿxÿTÿFþ|þ³þAþ âáéâ'áïáÁá�áŒá†á…á~á_áMàËàÇàSàJàBàAà+à9à0à$àßåܫܨܣܠܒÜ\ÜÜÜÛý®Ìjºè"$.0J„¢¬´Üæî68:@Zdr|€‚–œªÀÆÈÊÎÆ¦”––6Vj  A$÷øùúûüýþÿ GDFi$%*-8:<BCITVW[`doprsw v‡{†‡�‘›œ¡¤¯±´º»ÁÌÎÏÓÚÞéêìíñqL324<5?rl…m÷&M%n‰pJ€Tk ƒø'   !4/12HNJLRMBQieghtUØ€|~„ƒ…Š˜’•–ª¦¨©ŽÀÆÂÄÊÅCÉãßáâîÍð �} ‚ˆ‹Œ‰��"™“ —#š”'ž&�) (Ÿ,£+¢7®5¬0§6­3¥.«9°;²³=µ?·>¶@¸A¹D¼F¾E½G¿PÈKÃOÇSËXÐZÒYÑ\Ô_×^Ö]ÕbÜaÛnèkåfàmçjälæqëuïvxòzôyóÙcÝ„‚}~w�†‹ŠŒˆ�ŽÉ0ÊËÌÎÏíÂÃÄÅÆÇÈÐÑóôõëðÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêìïñîò)ý! #$%& ùúûüÿ    "'(STUVYZ]^_`bdefghijklnoqprsvwu|�‚[\ƒW{z}~xy€camt*„+…,†-‡þX.ˆ/‰0Š1‹2Œ3�4Ž5�­®7‘8’9“:”;•<–=—>?™@š˜A›Bœ¯°C�DžEŸF G¡H¢I£J¤K¥L¦M§N¨O©PªQ«R¬6�"!#+,*st >7IH�‘hõö}}kè  · 0+7!!!!#35#}îþ wþ wú}}}kü•ww}}þ‰}}kè†K° PX@/ p  ne ]IKLK JL@1  ~  |e ]IKLK JLY@ +53535!33#5!!5#5##}}w}}úþ‰w}}}}q}}}}ý�úúwú}}}kè¥K° PX@<  p  ee]IK ] LK ^JL@=   ~  ee]IK ] LK ^JLY@ +#53#5!#353535333##5##!q}}úúþ‰ú}}}}}}}}}}wk}þ þ‰}}w}}}}}}}}}}kè®K° PX@:  p  n  ee]IK ^JL@<   ~  |  ee]IK ^JLY@*  +#5#53#5!#3535!3##5##!ú}q}}}úþ‰ú}}w}}}}}wè}}}}þ þ‰}}w}úú}}}}}kè#¹K° PX@Dp| e  e ]IK ] LK ^  J L@E~| e  e ]IK ] LK ^  J LY@"#"!  +53535#535!3#33#5!35#!5#5##}}}}w}}}}úþ‰}}}}w}}}}w}}}}}}}}þ‰}}q}þ }}}}kè¸K° PX@= p  n e]IK]LK ^  J L@?  ~  | e]IK]LK ^  J LY@.  +533533535!33#5!5!5#5##}ú}úý}}w}}úþ‰w}}}k}}}}ýw}}}}þ‰}}ú}}}}kè³K° PX@=  p  ee]IK ] LK ^JL@>   ~  ee]IK ] LK ^JLY@*  +#5#5!#353535333##5##!w}qúþ‰ú}}}}}}}}}}wè}}þ þ‰}}w}}}}}}}}}}kèªK° PX@: p   n  e]IK ]LK^ JL@<  ~   |  e]IK ]LK^ JLY@&  +5!3535!33#5!5!5#5##}qý}}w}}úþ‰w}}}k}}ýw}}}}þ‰}}ú}}}kè!ÀK° PX@F   p  e e ]IK]LK ]JK]NL@G   ~  e e ]IK]LK ]JK]NLY@%!!  +##5!#3535!3##5##!3#53k}}þ‰ú}}w}}}}}w}}}}úîþ‰}ú}w}}}}}}}þ‰}}}}}kè¥K° PX@< p  e  e ]IK ] LK^ JL@=  ~  e  e ]IK ] LK^ JLY@ +53535353333#5!35#!5#5##}}}}}}}úþ‰}}}}w}}}}w}ú}}ú}þ‰}}q}þ }}}}kè%ÃK° PX@F~ n  ee ] IK]LK ^JL@G~ |  ee ] IK]LK ^JLY@(%$#"!  +#5!#353535#5333#53#5#5##!kúþ‰ú}}}}ú}}}}þ }ô}}}wôþ‰}}w}}}}}ú}w}}}}þ‰}}}}kè˜K° PX@9 p  n e  e]IKLK] JL@;  ~  | e  e]IKLK] JLY@ +53535!#3#3!5#35#}}qúúúúþ }}}}q}}}ú}ú}úúwú}kè G@De  ee]IK] JL  +5!3#3#!5!!5!î}}}}þ wþ‰wþ‰}k}ú}ú}ôúý�ú}kèQ@Ne   e]IK]LK ^ J L +75#5#3535!3#5##3353#ú}}}}ô}úú}}úú}}}}w}}}}}}þ‰}}}}}kè#¹K° PX@Dp  e  e e]IK]LK ^ J L@E~  e  e e]IK]LK ^ J LY@"##"!  +#53#5##3353#!5#5#535353533q}}úúú}}úú}þ }}}}}}úk}þ‰}}}}}}}}}}}}}}}}}kè#a@^  e    e e  e]IK^JL##"!  +75#5#53535#53353#3#5##3353#ú}}}}}úúú}}úú}}úú}}}}}}ú}}}}ú}}}}}}}}kè#g@d  e e f]IK ] LKJK]NL#"!  +#5##3353###5#5#5#53535!3#kúú}}úú}}}ú}}}}ôþ úúk}}}ú}}}}}}}}ú}}}ý}}kè!%l@ie   f e  e]IK ]LK ^JL%$#"!!  +75#5#53535#535!33#5##3353#35#ú}}}}}}w}}úú}}úú}þ‰}}}}}}}}}}}ú}}}}}}}}q}}kèj@g e e   e]IK ]LK ^JL  +535#5#53535!3#5##3353#wúþ‰}}}}ô}úú}}úú}k}}ý}}}}}}}}}}}}}}}kè ’K° PX@6 ppe ]IK]LK^ JL@8~~e ]IK]LK^ JLY@  +5!33##%353#5#q}}}}þ‰ú}}ú}k}}þ‰}}}}w}}kè¬K° PX@@  p  p  ee ]IK]LK^JL@B  ~  ~  ee ]IK]LK^JLY@ +7#53!33##'353#5#3#}}}ô}}}}ú}}}}}}}w}w}}þ‰}}}}w}ú}}kè³K° PX@D  ~  pe e  e]IKLK ^ J L@E  ~   ~e e  e]IKLK ^ J LY@ +535#53353#33##%3535#5#ú}ú}ú}}}}}þ‰ú}}ú}q}}}}}ú}}}}}}}}}kè¬K° PX@@  p  p  ee ]IK]LK^JL@B  ~  ~  ee ]IK]LK^JLY@ +7#53!33##'353#5#3#}}}ô}}}}ú}}}}}}}w}w}}þ‰}}}}w}ú}}kè /@,e]IK]JL  +5!!!!!ký�ôþ q}k}ú}ú}}kè�K° PX@0pe]IK] LK]JL@1~e]IK] LK]JLY@ +#53!!!!!!53q}}úý�ôþ qü•w}k}ú}}}}}q}}}kè—K° PX@3 pe] IK ]  LK^JL@4 ~e] IK ]  LK^JLY@"  +#5#53!!!!!35!ú}q}}}ý�ôþ qü•úwè}}}}ú}}}}}q}}}kè‰K° PX@2p  e]IK]LK ^  J L@3~  e]IK]LK ^  J LY@ +535#53353#3!!!!ú}ú}ú}úý�ôþ q}q}}}}}}}}}}}}kè‰K° PX@2 pe ]IK] LK ^  J L@3 ~e ]IK] LK ^  J LY@ +53535!33!!!!35#}}w}}ý�ôþ qþ }}}q}}}}}}}}}q}}kèQ@Ne  ]IK]LK ]  J L  +53353!!!!!}ú}úýký�ôþ qk}}}}ýq}}}}}}kèF@Ce]IK]LK] JL  +53!!!!!wúý�ký�ôþ qk}}ýq}}}}}}kè�K° PX@1pe] IK] LK]JL@2~e] IK] LK]JLY@  +#5!!!!!!53w}qý�ôþ qü•w}è}}ú}}}}}q}}}kèF@Ce]IK]LK] JL  +5!!!!!!}qýký�ôþ qk}}ýq}}}}}kè¡K° PX@;pe] IK]LK ] JK ]  N L@<~e] IK]LK ] JK ]  N LY@ +!!!!!#5!3#53ký�ôþ qþ‰}þ‰ú}}}úè}}}}}}}qý}}}}}kè )@&e]IKJL  +5!!!!ký�ôþ }k}ú}þ‰}kè¢K° PX@>pp  ee]IK]LK ^  J L@@~~  ee]IK]LK ^  J LY@ +75#5#3535!!#335#5!ú}}}}qþ }}ú}w}}}w}}}}þ‰}ú}þ }kè«K° PX@; p e  e]IK ]  LK^JL@< ~ e  e]IK ]  LK^JLY@&  +#5#53!!5#5!!5#3535!ú}q}}}ý�w}wý}}}wè}}}}ú}þ‰}}þ‰}w}}}}kè™K° PX@9 p  ee ]IK] LK ^  J L@:  ~  ee ]IK] LK ^  J LY@ +75#3535!33!!5#5!35#}}}}w}}ý�w}wþ }}}}wú}}}}þ‰}}þ‰q}kè¿K° PX@Ip  U e  e]IK ]LK ]JK]NL@J~  U e  e]IK ]LK ]JK]NLY@ +3535#5#5#53535!!#335#5!##ú}}}}}}qþ }}ú}wú}}}}}ú}}}}ú}}}þ‰}}}kèR@Oee ]IK]LK ]  J L  +535#35!!!5#5!wúþ }}îý�w}wk}}ý}w}}þ‰}}þ‰}kè '@$eIKJL  +53!3#!úwúúþ‰}kþ‰wü•wþ‰}kè 3@0eeIKJL  +53!53#!!5!úwúúþ‰wþ‰}k}}ü•wþ‰ô}}kè uK° PX@( pe]IK] JL@) ~e]IK] JLY@  +535!3#5!!5#5##úwúúþ‰w}}}}î}}ýúúwú}}}}kè )@&]IK]JL  +753#5!#3}úúîúú}}q}}ý�}}kè J@G e]IK]IK ]  J L    +53#5!#35!3#}}ô}}þ‰ôú}w}w}}þ‰}ú}îý}}}kè@@=~]IK] LK^JL +#53#3!53#5353q}}úúúýúúú}k}ú}þ‰}}w}}}}}kèS@P ~] IK ]  LK^JL  +#5#53#3!53#5353w}ô}}}úúýúúúúè}}}}ú}þ‰}}w}}}}}kèmK° PX@&pIK]LK ^  J L@'~IK]LK ^  J LY@ +753#53535333#3}úú}}ú}}úú}}w}}}}}}þ‰}}}kèK@H  ]IK]LK ]  J L  +5335353#5!#3}úúúýúúîúúk}}}}ý}w}}þ‰}}}kè@@=]IK]LK] JL  +5353#5!#3wúþ úúîúúk}}ý}w}}þ‰}}}kèM@J~] IK] LK^JL  +#5#3!53#5!53ô}ôúúýúúw}è}}ú}þ‰}}w}}}}}kè@@=]IK]LK] JL  +5!53#5!#3}îýúúîúúk}}ý}w}}þ‰}}kèS@P~e] IK ] JK ]  N L +#3!#5#53#53#53kúúþ‰}úúú}}}}úè}þ‰}}}}w}ý}}}}}}kè‡K° PX@- p] IK ] LK ]JL@. ~] IK ] LK ]JLY@  +#53!#533#3!53#533ôúúw}úú}úúýúú}úk}}}}}}þ‰}}wú}}kè .@+U]IK]JL  +75#53!3#}}úwú}}}}}îý}}kè=@:ee]IK ]  J L +75#53!##535!3#}}úw}ú}w}}}}}}q}}}}ý�}}kè¼K° PX@Hp  ~ pe  e]IK ]LK ^ J L@J~  ~ ~e  e]IK ]LK ^ J LY@ +533535353###333!5#5#ú}}}ú}}}}}}þ‰}}}kþ‰}}}}}}}}}}}}úkè!ÔK° PX@Rp~  p e  f]IK]LK ] JK ] N L@T~~  ~ e  f]IK]LK ] JK ] N LY@ !  +3535#335353##333!#'35#5#}}úú}}ú}}}}}þ‰}}ú}}}}îú}}}}}}}}}}ú}}}}kè@IK^JL +73!}úô}ký}}}kè /@,e]IK]JL   +#53!!#q}}úýw}k}ý}î}þ }}kè bK° PX@p]IK^JL@ ~]IK^JLY@   +73!3#}úôúú}}ký}ôwú}}kè 4@1U]IKJK]NL  +3535#3!##ú}úúôú}}}îý�}}}}}kè 2@/IK]LK^JL   +73!53}úôþ‰ú}ký}wúú}kè 5@2eIK]LK^JL  +7#5333#!}}}ú}}ô}w}wú}þ‰}}kè7@4eIK]LK JL +53335353###5#ú}}}úú}}}}k}}}}ü•ôúúþ }kè=@:eeIK]LK JL +533333#5#5#5#ú}}}úú}}}}k}}}wü•ú}}þ }kèK@He  e]IK] LK ^JL +#53#53!5#5##!335q}}}}}wþ‰}}úw}}k}ú}}ý�}}úq}}ú}kèT@Q  ~  e  e ]IK LK ^JL +!5#5##35#53353##335kþ‰}}úú}ú}ú}ú}}îý�}}úq}}}}}}}}úkè\@Ye] IK]LK] IK ] JK ] N L +#5#5#5##!3353##53kú}}}úw}}úú}ú}èý}}}þ‰î}}úý}}}kèM@J  ~e]IK]LK JK ]  N L +35!5#5#5##!3353#úw}}}úw}}ú}}ú}}þ‰î}}úü•}}kè W@T  e  e]IK ]  LK^ JL   +#533#%#53!5#5##3533335w}ú}úw}}}þ‰}}ú}}}}}k}}}}}úý�}}úq}}}}ú}kè 5@2e]IK]JL  +75#35!3#%!!}}}q}}þ wþ‰}}q}}ý�}}q}kè‰K° PX@2p  e]IK ]LK ]JL@3~  e]IK ]LK ]JLY@ +#53#!5#353533#!!q}}ú}ý�}}ú}ú}þ‰wk}þ‰þ‰}}w}}}}þ‰}kèZ@W  e  e]IK LK ^JL  +#5#53#!5#3535!3#!!ú}q}}}}ý�}}}w}}þ‰wè}}}}þ‰þ‰}}w}}}}þ‰}kèN@K  ~ e ]IK ]LK ^ JL +75#3535!33#35#!!}}}}w}}}þ‰}}}wþ‰}}wú}}úþ‰}q}ý�w}kèW@T e  ]IK ]LK ] J L  +533535#35!3#%!!}ú}úý�}}q}}þ wþ‰k}}}}ý}w}}þ‰}}w}kè—K° PX@3p  e] IK ]LK ]JL@4~  e] IK ]LK ]JLY@"  +#5#!5#353533#!!w}q}ý�}}ú}ú}þ‰wè}}þ‰þ‰}}w}}}}þ‰}kè•K° PX@5  p e]IK ]  LK^JL@6   ~ e]IK ]  LK^JLY@ +#53#53#!5#3533533#!!w}}w}}}}ý�}}}ú}}}þ‰wk}}}þ‰þ‰}}wú}}}}þ‰}kèL@Ie ]IK ]LK] JL  +5!5#35!3#%!!}qý�}}q}}þ wþ‰k}}ý}w}}þ‰}}w}kè `@]  e ee ]IK]LK]JL  +75#35!3#%!#535!3#753}}}q}}þ w}}þ‰}}}}}}q}}ý�}}w}}þ‰}}}}}kè•K° PX@5p  e ]IK] LK ^ J L@6~  e ]IK] LK ^ J LY@ +75#35353353#33#35#!!}}}}ú}}}}}}þ }}wþ‰}}wú}}}}}}þ‰}q}ý�w}kè?@<ee ]IK] JL +75#35!#3#3%3#}}}îúúúúý�}}}}q}}ú}ú}}q}kè 5@2ee]IKJL  +5!3#!!!î}}þ wþ‰}k}þ‰}úww}kè ;@8eeIK]LKJL  +53!3#!5!!úô}}þ wþ‰}k}}þ‰}}úw}kè N@K  e e]IK ] JL  +##!5#35!#!35#5353k}}þ }}q}þ‰ú}ú}}kþ }}}q}}ý�}}þ‰}}}kèŸK° PX@<  ~pn e  e ]IK^ JL@>  ~~| e  e ]IK^ JLY@ +5!3#33!5#5#3535!î}ú}}þ‰}}ú}þ‰}k}þ‰}}}}}úw}ú}kè¹K° PX@F ppn  fe]IK ]  LK^JL@I ~~|  fe]IK ]  LK^JLY@ +#53#33!5#5##!533##3q}}úú}}þ‰}}úw}úúúúk}þ‰}}}}}}úq}}}}}kè!ÏK° PX@I p p nf  e]IK ]  LK^ JL@L ~  ~ |f  e]IK ]  LK^ JLY@,!   +#5#53#33!5#5##!533##3w}w}}úú}}þ‰}}úw}úúúúè}}}}þ‰}}}}}}úq}}}}kèÉK° PX@M p n p e  e  f]IKLK JK ^ N L@P~  |  ~ e  e  f]IKLK JK ^ N LY@ +353535#5##!3#33##3535!ú}}}}úî}ú}}ú}úú}þ‰}}}}úî}ú}}}}}q}}}kèY@VU e  e  U e ]IK ] J L +75#53!5!5#535!3#5!!3#}}úwþ }}q}úþ‰ô}}}}}}ú}ú}}}}ú}ú}}kè©K° PX@@  p e  e  e]IK ] LK]JL@A  ~ e  e  e]IK ] LK]JLY@ +#53#!5!5!5#5353533!!q}}ú}ýqþ }}ú}úþ ôk}ý�}}}}}}}}}}}}}kè±K° PX@Bp e  f  e ]IK ] LK]JL@C~ e  f  e ]IK ] LK]JLY@ +55!5!5#53535#53353#3!!3#qþ }}}}ú}ú}}þ ô}}}}}}}}}}}}}}}}}}}kèf@c  e  Uee ] IK ] LKJK]NL +###5!5#53!5!5#535!!!3#k}}}þ‰}úwþ }}qþ ôþ úúqú}}}}}}ú}}}}}}þ }}kè©K° PX@@ pe f e ]IK ] LK ] J L@A  ~e f e ]IK ] LK ] J LY@ +55!5!5#53535!3!!3#35#qþ }}}w}þ ô}}þ‰}}}}}}}ú}}ú}}}}q}}}kè!@]IKJL +%#5!#wúîú}î}}ý}}kè5@2ee]IKJL +%5#53#5!#3#w}}úîú}}}ú}w}}ú}þ‰}}kèF@C] IK] LK]JL  +#5#53###5353w}ô}}}úúúúúè}}}}ú}þ ô}}}}kè 8@5~]IKJK]NL  +##5##53#kú}}ú}úúè}ý}q}ü•}}kè )@&]IK]JL  +75#3!3#}}úwú}}}îýîý}}kè?@<e]IK] LK]JL +#53#53#!5#3!q}}}}}w}ý�}úwk}ú}}þ }}ôþ ô}kè R@O e] IK ]  LK ]JL    +#5#53!5!#!5#3!ú}q}}}þ‰wú}ý�}úwè}}}}ú}}þ }}ôþ ô}kè L@I e  e]IK ]  J L    +535!3#5#5#3!3#}}w}ú}ú}úwú}î}}}}}}ý�}wþ‰wþ‰}}kèK@H  ]IK]LK ]  J L  +533535#3!3#}ú}úý�}úwú}k}}}}ý}ôþ ôþ }}kèJ@G e]IK] LK]JL  +#5353!#!5#3!w}}}w}ý�}úwk}ú}}þ }}ôþ ô}kèM@J   e]IK] LK ^JL +#53#53#!5#353!5#5w}}w}}}}ý�}}}w}k}}}úþ }}ô}ý�ô}}}}kè@@=]IK]LK] JL  +5!5#3!3#}qý�}úwú}k}}ý}ôþ ôþ }kè‘K° PX@3pe] IK ] JK ]  N L@4~e] IK ] JK ]  N LY@ +###5#5#3!3#53k}ú}ú}úwþ‰}}}úèþ }}}}ôþ ôý}}}}}kèe@b ~  e ]IK ]LK]LK ^JL +75#3535!33#35#!35#!5#3}}}}w}}}þ‰}}}w}}þ‰}}}}ô}}}}þ }q}ý�w}}}}}kè H@E  e]IK ]  LK ^JL   +#533#%#53#!5#353!w}ú}úw}}}}ý�}}}wk}}}}}úþ }}ô}ý�ô}kèyK° PX@* p  e]IK ]  J L@+ ~  e]IK ]  J LY@ +%5#5#5#333533###w}}}ú}}}ú}}}}}}}ôþ‰}}wþ }}}}kè9@6 e ]IK JL +75#33333##5#5##}}ú}}}ú}}}}}}}îþ ôþ ôý}}}}}}kè—K° PX@6  ~  n  e ]IKLK ^JL@7  ~  |  e ]IKLK ^JLY@ +53535!33!5#35335#5##}}w}}þ‰}}}}}}}}}q}}}}ý�}}w}}ú}}}kè#®K° PX@> p pe ]IK]LK  ^ J L@@ ~ ~e ]IK]LK  ^ J LY@"##"!  +553535#5#53335353##33#5#5##}}}}ú}}}ú}}}}ú}}}}ú}}}úú}}úú}}}úú}}ú}}kè_K° PX@ p]IK]JL@!~]IK]JLY@ +%#5#333##w}}úúú}}}w}wþ‰wþ‰}þ‰}}kè‰K° PX@2 p e]IK ]  LK ]JL@3  ~ e]IK ]  LK ]JLY@ +#53#53###5#5#5335q}}}}}w}}ú}}úúk}ú}}ú}úú}úúú}}kèE@B e ]IK]LK ]  J L +%5#5#53535333##3#w}}}}ú}}}}úúú}ú}ú}}}}ú}úww}}kè‘K° PX@.  p  ]IK ]LK ] J L@/   ~  ]IK ]LK ] J LY@&  +533535#5#53353##}úúúþ }}úúú}}k}}}}ýú}úúúú}ú}kè¼K° PX@Kp~||  | p]IK ]LK ^  J L@M~~||  | ~]IK ]LK ^  J LY@ +5535353535!5!####!}}}}þ k}}}}ô}ú}}}}}ú}}}}}}kè¶K° PX@F ~ p  ||n]IK  ]  LK^JL@H ~  ~  |||]IK  ]  LK^JLY@ +#53###!!5353535!5!53q}}ú}}}wü•}}}þ‰w}k}ú}}}}}}}}}}}}}kè¾K° PX@H~  p  |  |n ]IK ] LK^JL@J~  ~  |  || ]IK ] LK^JLY@ +55353535!535#53353#3###!}}}þ‰ú}ú}ú}ú}}}w}}}}}}}}}}}}}}}}}}kè®K° PX@>p  |  |n ]IK]LK  ^  J L@@~  |  || ]IK]LK  ^  J LY@"  +535353535!5!###!wúý�}}}þ‰k}}}wk}}ý}}}}}}}}}}}kî D@A~ee]LK^ JL  +75#535!5!5!3%!5!}}}ôþ q}ý�wþ‰}}}}}}}þ }}}kè§K° PX@@p   ~  e e]IK] LK ^JL@A~   ~  e e]IK] LK ^JLY@ +#53!5#535!5!53533!!q}}úý}}ôþ ú}ú}þ‰wk}þ‰þ }}}}}}}}ú}}kè½K° PX@C p  ~  ee]IK ]  LK^JL@D ~  ~  ee]IK ]  LK^JLY@(  +#5#53!5#535!5!535!3!!ú}q}}}ý}}ôþ }w}}þ‰wè}}}}þ‰þ }}}}}}}}ú}}kè¨K° PX@@ p~  e e ]IK ] LK ^ JL@A  ~~  e e ]IK ] LK ^ JLY@ +75#535!5!535!3335#!5!}}}ôþ }w}}þ }}}wþ‰}}}}}ú}}úþ q}ý�}}kèg@d  ~  e e ]IK]LK ^ J L  +533535#535!5!5!3%!5!}ú}úý�}}ôþ q}ý�wþ‰k}}}}ý}}}}}}þ }}}kèµK° PX@Ap  ~  e e] IK] LK ^JL@B~  ~  e e] IK] LK ^JLY@$  +#5!5#535!5!53533!!w}qý}}ôþ ú}ú}þ‰wè}}þ‰þ }}}}}}}}ú}}kè\@Y~  e e ]IK]LK ^ JL  +5!5#535!5!5!3%!5!}qý�}}ôþ q}ý�wþ‰k}}ý}}}}}}þ }}kèÆK° PX@K~ p e  f]IK ]LK ] JK ]NL@L~  ~ e  f]IK ]LK ] JK ]NLY@! +!#5#5#535!5!5!!!3#53kþ‰}ú}}ôþ q}þ‰wþ‰}}}úkþ }}}}}}}}ú}ú}}}}}kè¯K° PX@B p  ~e e ]IK] LK ^ J L@C  ~  ~e e ]IK] LK ^ J LY@ +75#535!5!53535333335#!5!}}}ôþ }}}}}}þ }}}wþ‰}}}}}}}}}}}þ q}ý�}}kè³K° PX@C p  ~ee ]IK ]  LK ^ J L@D  ~  ~ee ]IK ]  LK ^ J LY@ +75#535!5!5353353#3335#!5!}}}ôþ }ú}}}}}ý�}}wþ‰}}}}}ú}}}}}}þ q}ý�}}kîŠK° PX@1p  fe ]LK ] JL@2~  fe ]LK ] JLY@ +75#53535#5!3!335#35#}}}úúq}þ‰úú}}ú}}}}}}}}}ú}}w}þ‰}}kè <@9U]IK]LK]JL  +75#3!3#%!!}}úô}}þ wþ‰}}îú}þ‰}}w}kî /@,e]LK]JL  +75#35!!!}}}îý�q}}w}}þ‰}}kè�K° PX@0pe]IK] LK]JL@1~e]IK] LK]JLY@ +#53!!!5#35353q}}úý�qý}}ú}k}ú}þ‰}}w}}}}kè‰K° PX@2p e]IK ]LK ^  J L@3~ e]IK ]LK ^  J LY@ +75#3535#53353#3!!}}}}}ú}ú}úý�q}}w}}}}}}}}þ‰}kîC@@ee] LKJK ] N L +!!##5!5#5353#ký�qú}þ‰}}}úúî}ú}}}}ú}ý�}}kè†K° PX@1 pe ]IK] LK^ JL@2  ~e ]IK] LK^ JLY@ +75#3535!33!!35#}}}}w}}ý�qþ }}}}wú}}}}þ‰}q}}kèF@Ce]IK]LK] JL  +535#35!!!wúþ }}îý�qk}}ý}w}}þ‰}}kè 7@4eIK]LK^JL  +75#35!53%!!}}}ôúý�wþ‰}}w}úü•}w}kèm@j  ~f e ] IK] IK ] LK^JL +#!5#53535#5333#53#5!!k}ý�}}úúúú}}}ý�}qþ‰wôú}}ú}}ú}ú}w}ú}}úú}èè I@Fe]IK ]LK^ JL     +75#353533#3#}}}úú}ú}ý�}}}}w}úü•ôwú}þ‰w}kèC@@eeIK ]LK^ JL +75#35353533#%3#}}}ú}ú}}þ úú}}w}}}}}ý�}w}kî =@:fe]LK] JL  +75#35!3!!!5!}}}q}ý�ôþ wþ‰}}w}}ú}}w}}kè™K° PX@9p  f e]IK ] LK]JL@:~  f e]IK ] LK]JLY@ +#53!!!5#353533#!!q}}úý�ôý�}}ú}ú}þ‰wk}þ‰ú}}}w}}}}}}kèc@`  ef e]IK  LK^JL  +#5#53!!!5#3535!3#!!ú}q}}}ý�ôý�}}}w}}þ‰wè}}}}þ‰ú}}}w}}}}}}kèV@Se f  e]IKLK ^ J L +75#3535#53353#33!!!5!}}}}}ú}ú}}}ý�ôþ wþ‰}}w}}}}}}}}ú}}w}}kèV@S  ~  fe ]IK ] LK^ JL +75#3535!33!!35#!5!}}}}w}}ý�ôþ‰}}}wþ‰}}wú}}úú}}q}þ‰}}kè`@]  f e ]IK ]LK ] J L  +533535#35!3!!!5!}ú}úý�}}q}ý�ôþ wþ‰k}}}}ý}w}}ú}}w}}kèU@R  fe ]IK ]LK] JL  +535#35!3!!!5!wúþ }}q}ý�ôþ wþ‰k}}ý}w}}ú}}w}}kè§K° PX@:p  f e] IK ] LK]JL@;~  f e] IK ] LK]JLY@$  +#5!!!5#353533#!!w}qý�ôý�}}ú}ú}þ‰wè}}þ‰ú}}}w}}}}}}kèU@R  fe ]IK ]LK] JL  +5!5#35!3!!!5!}qý�}}q}ý�ôþ wþ‰k}}ý}w}}ú}}w}kè¸K° PX@D pee ]IK ] LK ] JK ]NL@E  ~ee ]IK ] LK ] JK ]NLY@! +!!##5#5#35!#!!3#53ký�ôú}ú}}q}þ‰wþ‰}}}úkú}}}}}w}}}þ }}}}}}kè5@2]IK]LK]JL +%#53535!#3#wúú}wúúú}ô}}}}}}þ kî A@>ee]LKJK] NL  +35!5!5#535!#!5!}ôþ }}î}þ wþ‰}}}ú}ý�}wúkèg@d e  ef]IK  LKJK]NL  +#5#53#!5!5!5#53535!!!ú}q}}}}ý�ôþ }}}wþ‰wè}}}}úý�}}}}ú}}}}úkè\@Y  ~ e  f ]IK ] LKJK ] N L +35!5!5#53535!33#35#!5!}ôþ }}}w}}}þ‰}}}wþ‰}}}úú}}}ý�}î}þ úkè¡K° PX@=p e  f]IK ]LK JK ]  N L@>~ e  f]IK ]LK JK ]  N LY@ +35!5!5#53535353#!#!5!}ôþ }}}}ú}w}þ wþ‰}}}ú}}}}}ý�}wúkèY@V e  e ]IK ]LKJK] NL  +535!5!5#535!#!5!wúþ ôþ }}î}þ wþ‰k}}ü•}}}ú}ý�}wú}kè -@*IK]LK]JL  +53!3#!úô}úþ‰}kú}þ ôþ }kè9@6eeIK] JL +7#53533#!3##}}}úúúw}úú}q}}}}}}þ‰wþ‰}kè@@=e  e]IK] JL +535!3#5##!3#!úw}ú}}ô}úþ‰}î}}}}}}}þ‰wþ‰}}kè =@:]IK]LK]JL   +5353#5!3wúþ ú}wúk}}ý}w}þ }}}kî '@$]LK]JL  +753#5!3}ú}wú}}w}þ }}}kè;@8ee]IK ]JL +#53#53!535#5!q}}}}}wýú}wk}ú}ý�}}ú}þ‰}}kè I@F  e  e]IK ]JL       +#53#535!!535#5!ú}}ô}}þ wúýú}wk}}}ú}}þ }}ú}þ‰}}kè I@F ee]IK  ]  J L    +535!3#5#535#5!3}}w}ú}úú}wúî}}}}}}ý�}ú}þ‰}}}kèH@E  ]IK]LK] JL  +5335353#5!3}ú}úý�ú}wúk}}}}ý}w}þ }}}kèE@B ee]IK ]JL  +#5353!535#5!w}}}wýú}wk}ú}}þ }}ú}þ‰kè a@^  ~  ]IK] LK JK ] N L   +53353#5!5!#5!#}úúúý}w}w}w}k}}}}ý�w}þ ú}ô}ý�}}}kè =@:]IK]LK]JL   +5!53#5!3}qý�ú}wúk}}ý}w}þ }}kè]@Z  ~ e]IK]LK ] JK ] N L +#53!#5#535#5!3#53qúúúþ‰}úú}wþ‰}}}úk}þ }}}}}}úú}}}}}}kè S@P e  e] IK  ] J L  +#5!#53#%3#3!535#5!ôúq}ý�}}wúú}úýú}wè}}}}}}}}þ }}ú}}îè A@>]IK]LKJK]NL   +535!#5!#ôúý�w}w}k}}ü•}ô}ý�}}kè M@J e e]IK JK ]  N L    +535!3#5#5!#5!#ú}w}ú}þ‰w}w}î}}}}}}ý}w}þ }}kèšK° PX@:p p  e  eIK]LK^ JL@<~  ~  e  eIK]LK^ JLY@ +5335353##33#5#5#úú}ú}}}}ú}ú}kþ }}}}}}}}}úkèÒK° PX@Pp pe  eU ]IK ]LK ]JK ]NL@R~  ~e  eU ]IK ]LK ]JK ]NLY@" +5335353##33#5#5#5353#úú}ú}}}}ú}ú}}ú}úîþ‰}}}}}}}}}úú}}}}}kî’K° PX@6p p  e  e]LK^ JL@8~  ~  e  e]LK^ JLY@ +5335353##33#5#5#úú}ú}}}}ú}ú}qú}}}}}}}}}ú}}kè '@$]IK]JL  +753#5!3}ú}wú}}q}ý}}îè>@;~]IK]LK ^JL +#53!53#53533ô}}úýú}}}}k}ý}}w}}}þ }kè |K° PX@+ p]IK]IK]JL@, ~]IK]IK]JLY@    +553#5!33#ú}wú}ú}}}q}ý}ôwú}}kè9@6e]IKJK] NL +3535#53#5!3##ú}úú}wúú}}}}ô}ý�}}}}kè :@7]IK]LK]JL  +553#5!353ú}wú}ú}}q}ý}wúú}}kè=@:e]IK]LK] JL +7535#535#5!3#3}ú}}}w}}ú}}ú}ú}ú}þ‰}}kî +@(]LK]JL  +5!3####î}ú}ú}}q}þ ôþ ôþ }kî '@$]LK]JL  +5!3#!î}úþ‰}q}þ ôþ }kèrK° PX@)p]IK]LK ]JL@*~]IK]LK ]JLY@ +#53#!#!533q}}úúþ‰úw}úk}þ‰þ ôþ q}}}}kè>@;  e]IKLK^ JL +535#53353#33#!ú}ú}ú}}}úþ‰}q}}}}}}}þ ôþ kk A@>e] LK]JK]NL  +#!#!3##53kúþ‰úîþ‰ú}ú}îþ ôþ q}þ }}}kk 8@5~eLKJK]NL  +35!!#!3#úwþ‰úî}}}qþ q}ý�}}kè�K° PX@-p ]IK ] LK^ JL@.~ ]IK ] LK^ JLY@ +535353353#33#!35#}}ú}}}}}úþ‰}}}q}}}}}}}þ ôþ q}}kî 5@2e]LK]JL  +75#35!3#%!!}}}q}}þ wþ‰}}w}}þ‰}}w}kè‰K° PX@2p  e]IK ]LK ]JL@3~  e]IK ]LK ]JLY@ +#53#!5#353533#!!q}}ú}ý�}}ú}ú}þ‰wk}þ‰þ‰}}w}}}}þ‰}kèZ@W  e  e]IK LK ^JL  +#5#53#!5#3535!3#!!ú}q}}}}ý�}}}w}}þ‰wè}}}}þ‰þ‰}}w}}}}þ‰}kèN@K  ~ e ]IK ]LK ^ JL +75#3535!33#35#!!}}}}w}}}þ‰}}}wþ‰}}wú}}úþ‰}q}ý�w}kèW@T e  ]IK ]LK ] J L  +533535#35!3#%!!}ú}úý�}}q}}þ wþ‰k}}}}ý}w}}þ‰}}w}kè—K° PX@3p  e] IK ]LK ]JL@4~  e] IK ]LK ]JLY@"  +#5#!5#353533#!!w}q}ý�}}ú}ú}þ‰wè}}þ‰þ‰}}w}}}}þ‰}kè•K° PX@5  p e]IK ]  LK^JL@6   ~ e]IK ]  LK^JLY@ +#53#53#!5#3533533#!!w}}w}}}}ý�}}}ú}}}þ‰wk}}}þ‰þ‰}}wú}}}}þ‰}kèL@Ie ]IK ]LK] JL  +5!5#35!3#%!!}qý�}}q}}þ wþ‰k}}ý}w}}þ‰}}w}kî œK° PX@7 p  p  ee]LK^ JL@9  ~ ~  ee]LK^ JLY@  +75#35!3#%35#5#3153}}}q}}þ‰ú}ú}}}}w}}þ‰}}ú}ú}}}kè•K° PX@5p  e ]IK] LK ^ J L@6~  e ]IK] LK ^ J LY@ +75#35353353#33#35#!!}}}}ú}}}}}}þ }}wþ‰}}wú}}}}}}þ‰}q}ý�w}kî C@@  fe ]LK] JL  +75#35!3!3%3#35#}}}q}þ‰úþ }}ú}}}}w}}ú}}}w}}kî 5@2ee]LKNL  +1!3#!!5!î}}þ wþ‰î}ú}úwúkè ;@8eeIK]LKNL  +13!3#!!5!úô}}þ wþ‰èú}ú}úwúkî 5@2ee]LKNL  +!5!5#535!!5!qþ }}îý�wþ‰ú}ú}ýwú}}kî +@(e]LKJL   +3##3!!5w}}úúôþ‰q}þ‰q}}}}kèA@>ee]IK] LKJL +#53#533##3!!5q}}}}}}}}úúôþ‰k}ú}ú}þ‰q}}}}kèŒK° PX@3 p  n  e]IK]LK  J L@5  ~  |  e]IK]LK  J LY@ +735#53353#3!#35#}ú}ú}ú}}þ‰}}}}q}}}}}}}}þ‰ô}}kkD@AU e]LK]JK]NL +3#3##535#3!!5w}}}}ú}}úôþ‰î}þ‰}}}}q}}}kîC@@eee]LK ]  J L +55!5!5#535!!!3#qþ }}qþ ô}}}}}}}}}}}}}}kè©K° PX@@  p e  e  e]IK ] LK]JL@A  ~ e  e  e]IK ] LK]JLY@ +#53#!5!5!5#5353533!!q}}ú}ýqþ }}ú}úþ ôk}ý�}}}}}}}}}}}}}kè±K° PX@Bp e  f  e ]IK ] LK]JL@C~ e  f  e ]IK ] LK]JLY@ +55!5!5#53535#53353#3!!3#qþ }}}}ú}ú}}þ ô}}}}}}}}}}}}}}}}}}}kkY@V  e  e  ee]LKJK ] N L +###5!5!5!5#535!!!3#k}}}þ qþ }}qþ ôþ úúô}}}}}}}}}}}}þ‰}}kè©K° PX@@ pe f e ]IK ] LK ] J L@A  ~e f e ]IK ] LK ] J LY@ +55!5!5#53535!3!!3#35#qþ }}}w}þ ô}}þ‰}}}}}}}ú}}ú}}}}q}}}kèT@Q   eeU e ] IK] JL +#3##535#535#3##35!k}}}ú}}}ú}}ú}ôkú}ú}}ú}úþ }}î}}w}kè%@"]IK]JL +%35!#w}wú}î}}ý}}kè )@&IK]LKJL  +%#53533#wúúúúú}ô}úú}þ }}kè=@:e eIK]LK  J L +%5#535#53533#3#w}}úúúúú}}}}}ú}úú}}}ú}}kèD@A e] IK]JL  +#5#53###5353w}ô}}}úúúúúè}}}}þ‰}þ‰w}úú}kè =@:] LK]IKJK]NL  +##5##53533#kú}}úúúþ‰úúî}þ }w}úúý�}}kî '@$]LK^JL  +75#3!3}}úwú}}ôþ ôý�}kè=@:e]IK] LK^JL +#53#53!5#3!q}}}}}wý}úwk}ú}}ý�}ôþ ô}kè O@Le] IK] LK ^JL    +#5#53!5!!5#3!ú}q}}}þ‰wúý}úwè}}}}ú}}ý�}ôþ ô}kè I@F e e]IK ^  J L    +535!3#5#5#3!3}}w}ú}ú}úwúî}}}}}}ý�}wþ‰wþ }kèH@E  ]IK]LK^ JL  +533535#3!3}ú}úý�}úwúk}}}}ý}ôþ ôý�}kèG@D e]IK] LK^JL  +#5353!!5#3!w}}}wý}úwk}ú}}ý�}ôþ ô}kèJ@G   e]IK] LK^JL +#53#53!5#353!5#5w}}w}}}ý}}}w}k}}}úý�}ô}ý�ô}}}}kè =@:]IK]LK^JL   +5!5#3!3}qý�}úwúk}}ý}ôþ ôý�kè ŽK° PX@2pf] IK]JK ]  N L@3~f] IK]JK ]  N LY@  +!#5#5#3!3#53kþ‰}ú}úwþ‰}}}úèý�}}}ôþ ôý}}}}}kè c@` ~   e]IK ]LK]LK ^JL  +75#3535!3335#!35#!5#3}}}}w}}þ }}}w}}þ‰}}}}ô}}}}ý�q}ý�w}}}}}kè E@B e]IK] LK ^JL   +#533#%#53!5#353!w}ú}úw}}}ý}}}wk}}}}}úý�}ô}ý�ô}}kî_K° PX@ p]LK]JL@!~]LK]JLY@ +%5#5#333##w}}úúú}}}}}wþ‰wþ‰}}}kî :@7] LK]JL       +73#5#33#!##53ú}ú}úú}ô}ú}ú}}ôþ ôþ }}ô}kè T@Q e   e]IK] JL +#535!3#5#3#5#33#!##53wú}w}ú}}}ú}úú}ô}ú}î}}}}}ý�}}wþ‰wþ‰}}w}kî#ªK° PX@< p pee ]LK  ^ J L@> ~ ~ee ]LK  ^ J LY@"##"!  +553535#5#53335353##33#5#5##}}}}ú}}}ú}}}}ú}}}}}}}}}}}}}}}}}}}}}}kî7@4e]LKJK]NL +35!5!5#3!3#}ôþ }úwú}}}}wþ‰wý�}kèO@L e  e]IK ]  LKJK]NL +#53#53#!5!5!5#3!q}}}}}w}ý�ôþ }úwk}ú}}ý�}}}}wþ‰wkè _@\ e U  e]IK  ] JK ] N L    +535!3#5#5!5!5#53!53#}}w}ú}úôþ }úwú}î}}}}}}ý}}}úúúþ }kè[@X e  ]IK] LK JK ] N L  +533535!5!5#3!3#}ú}úý�ôþ }úwú}k}}}}ü•}}}wþ‰wý�}}kîˆK° PX@3p||n]LK ^  J L@5~|||]LK ^  J LY@ +55353535!5!###!}}}þ‰k}}}w}}}}}}}}}}}}kè¶K° PX@F ~ p  ||n]IK  ]  LK^JL@H ~  ~  |||]IK  ]  LK^JLY@ +#53###!!5353535!5!53q}}ú}}}wü•}}}þ‰w}k}ú}}}}}}}}}}}}}kè¾K° PX@H~  p  |  |n ]IK ] LK^JL@J~  ~  |  || ]IK ] LK^JLY@ +55353535!535#53353#3###!}}}þ‰ú}ú}ú}ú}}}w}}}}}}}}}}}}}}}}}}kè®K° PX@>p  |  |n ]IK]LK  ^  J L@@~  |  || ]IK]LK  ^  J LY@"  +535353535!5!###!wúý�}}}þ‰k}}}wk}}ý}}}}}}}}}}}kè7@4]IK]LK] JL +7#53535!#!##}}}}wúôúú}ô}}}}}ý�ôþ }kè 9@6]IK]LK] JL  +7#53535!##35#}}}}qúúúú}ô}}}ü•ôþ q}}ôîè wK° PX@+~nb]aK]dL@,~|b]aK]dLY@  +5#535#5!3%35#ú}}}ô}þ‰}}ô}}}}}þ‰}}}ôîè 2@/ea]aL  +5#535!3#'35#ú}}w}}ú}}ô}ú}}ú}}ú}kè†K° PX@/ p  ne ]KK L@1  ~  |e ]KK LY@ +53535!33#5!!5#5##}}w}}úþ‰w}}}}q}}}}ý�úúwú}}}kè ;@8ee]K]L  +5!!!3#%!5!îþ ô}}þ wþ‰}k}ú}ú}}ú}kè G@De  ee]K] L  +5!3#3#!5!!5!î}}}}þ wþ‰wþ‰}k}ú}ú}ôúý�ú}}kèKK° PX@p]KL@~]KLY@ +7!#5!}î}þ‰}kú}ý}}kètK° PX@*pp]K]KL@,~~]K]KLY@ +#53#5!#353q}}ú}þ‰úú}k}úú}þ q}}}}kè@fKL+3!#!qúþ úôèúý�îèè C@@~]K^K^ L  +15353!3#5!73#}}q}úþ }úúúúôýú}}úq}kè /@,e]K]L +5!!!!!ký�ôþ q}k}ú}ú}}kè�K° PX@1pe] K] K]L@2~e] K] K]LY@  +#5!!!!!!53w}qý�ôþ qü•w}è}}ú}}}}}q}}}kèQ@Ne  ]K]K ]   L  +53353!!!!!}ú}úýký�ôþ qk}}}}ýq}}}}}}kè#±K° PX@8 p  p e ] K^ L@: ~  ~ e ] K^ LY@1##"!  +#5#53###533!##3#5333ú}}ô}}}}}}w}}þ }ú}ô}}èþ‰}úþ‰}þ‰w}wú}wþ þ‰úúw}ú}kèY@V U   e e  U e]K ]  L+75#53!5!5!5!#535!3#3#}}úwþ‰wþ‰ú}q}}}}}}}}ú}ú}}}}ú}ú}}kè=@:eeK]K L +533535353####ú}}}úú}}}}kþ }}úü•w}}}}kèQ@Ne  e ]KK^ L  +5!33535353#5##}qýú}}}úú}}k}}ýqþ‰}}}ý�ú}}}kè[@X e  e  e]K K ^L +#5353!#5##!3353535w}}}wú}}þ‰ú}}}k}ú}}ý�ú}}qþ‰}}}}kèY@V~ eV f ] KK^L+3333#5#5##33##535w}}}}ú}úúú}ô}ú}î}}ú}}úþ‰kþ‰w}}}}}kè�K° PX@: p e f]K ]  K^ L@;  ~ e f]K ]  K^ LY@+#53#53333#5!#33%#5q}}}}}}}}úþ‰úúúwúk}ú}ú}}úúúqúú}}}kè jK° PX@&p~]K^L@'~~]K^LY@ +55353!###}}qúú}}ú}ôü•îý�}}kè7@4eK]K L +53335353###5#ú}}}úú}}}}k}}}}ü•ôúúþ }kè '@$eKL +53!3#!úwúúþ‰}kþ‰wü•wþ‰}kè 5@2e]K]L  +75#35!3#%!!}}}q}}þ wþ‰}}q}}ý�}}q}kè!@]KL+5!#!kúþ‰}kü•îý}kè 5@2ee]KL +5!3#!!!î}}þ wþ‰}k}þ‰}úww}kèQ@Ne   e]K]K ^  L+75#5#3535!3#5##3353#ú}}}}ô}úú}}úú}}}}w}}}}}}þ‰}}}}}}kè!@]KL+%#5!#wúîú}î}}ý}kè=@:ee]K ]   L +75#53!5!5#3!3#}}úwþ }úwú}}}}}ú}wþ‰wý}kèP@Me ]K]KK ]   L  +5!5!5!5#3!3#}qý�ôþ }úwú}k}}ü•}}}wþ‰wý�}}kèI@F   e   eK]K  L+%5#5#3535333##'3#3#wú}}ú}ú}}úú}}ú}}}}}w}}}}þ‰}}úwþ‰w}kè#®K° PX@> p pe ]K]K  ^  L@@ ~ ~e ]K]K  ^  LY@"##"! +553535#5#53335353##33#5#5##}}}}ú}}}ú}}}}ú}}}}ú}}}úú}}úú}}}úú}}ú}kè +@(e]KL +%!5#3!3qþ }úwú}w}wþ‰wü•kè /@,K^K^L +!5!3333qý�úúú}}kýîýú}kè %@"K^L +533333ú}}}ú}kýîýîü•èè4@1K^K^L +!5!333333îýú}}}ú}}kýîýîýúkè )@&K^KL +!5!3!3!wþ‰úwúþ‰}kýîü•}}kè 7@4eK]K^L +53!3#%!!úô}}þ wþ‰}kú}þ‰}}w}kè =@:e]K]K]L  +7#5!!3#%3#}}ww}}þ‰úú}î}ú}þ‰}}w}kè 8@5K]K^L    +53333%3#úú}úý�}}}kúý�kü•}w}kè B@?]K]K]K]L  +553!3!#%3#}ôúþ }w}}}úqúý�îý}w}kè ;@8eK]K^ L  +53333!#%3#ú}úúþ }w}}}kþ‰wúý�wþ‰}w}kèY@VU e  e  U e ]K ]  L+75#53!5!5#535!3#5!!3#}}úwþ }}q}úþ‰ô}}}}}}ú}ú}}}}ú}ú}}kè]@Ze  e   e]K]K ^L+75#5#3535!3#5##!!3353#ú}}}}ô}úú}ôþ }úú}}}}w}}}}}}}}}}}}}}kè]@Z   e ee ] K ] K^L+75#533535!5!5#5##535!33##}}úú}þ ô}úú}ô}}}}}}}}}}}}}}}}}}þ‰}}}}kè )@&]K]L +753#5!#3}úúîúú}}q}}ý�}}}kèK@H  ]K]K ]   L  +5335353#5!#3}úúúýúúîúúk}}}}ý}w}}þ‰}}kè .@+U]K]L +75#53!3#}}úwú}}}}}îý}}kè5@2]K]K]L +7#5!#!3##}}qúw}úú}î}}}}þ ôþ }kèC@@e e ]K ] L +533535!3#!5#5#%3#}}}w}}þ‰}}w}}}kþ‰ú}}ý�}}úþ‰}q}kè‘K° PX@6  ~pee ]K^ L@7  ~~ee ]K^ LY@ +553535#35!#5#3!3}}ú}îúúúþ‰}}}}}w}ü•úúwwúkèA@>]K]K]K ]   L +!53###5!#!3#ô}úú}qúw}}}ôþ î}}}}þ }}kèC@@e  e  eK ^L +#!#53533#!##3k}ý�}}úúúw}úúôú}q}}}}}}ú}kè #ÀK° PX@@p  p   e]K]K ^   L@B~  ~   e]K]K ^   LY@0 ##"!    +#5!#53#!53!!####3#5333k}ý�}}}}ô}þ w}}}}}ú}ô}}èú}}úú}}}}þ‰wþ‰úúw}ú}kè H@E  ~|e]K^ L  +75#35!3#%!!!5!}}}q}}þ wþ‰}qý�}}q}}ý�}}qþ‰}}kè�K° PX@4 p  e]K]K ]   L@5 ~  e]K]K ]   LY@ +%5#5#5#333533###w}}}ú}}}ú}}}}}}}ôþ }}ôúþ‰}}}kècK° PX@"pe]KL@#~e]KLY@ +#5!3###53k}þ‰úúú}}èú}ú}þ‰w}w}kè�K° PX@0pe ]  K]K]L@1~e ]  K]K]LY@ +#5!!3##53##k}þ‰w}}ú}úúèú}ú}þ‰}}wþ‰kèè'ÌK° PX@F p e ] K ] K^ K^L@G ~ e ] K ] K^ K^LY@1'&%$#"!  +#5#5###5333#3#3#533#5#33ú}}q}}}}}ú}ú}ý�}ú}î}ú}}}èþ‰}úþ‰}þ‰w}wþ‰wúúþ‰ú}ú}w}kèc@` U e  eUe ]K]KL+#3###5#5#53!5!5!5!#535!k}}}ú}ú}úwþ‰wþ‰ú}qkú}ú}}}}}}ú}ú}}}}kè]@Z~ eV f ] KKK^L+3333#5#5##33##535w}}}}ú}úúú}ô}ú}î}}úúúúþ‰kþ‰w}}}}}kèŸK° PX@;~  p e ] K]K ^ L@<~  ~ e ] K]K ^ LY@+3##5##33537#3#33ô}}}}úú}}ú}úú}}q}}}þ‰kþ‰}}úw}ýw}}kè¡K° PX@;   p~e ] K ]  K^L@<   ~~e ] K ]  K^LY@+33#5#5###5!357#53q}}ú}}ú}w}ú}úîúú}}úþ‰î}þ‰}}}ú}èè-@*eKK]L+%3#5#!#3!3k}ú}þ‰úúwúúú}wþ‰kþ‰wèè '@$]KK]L+%3#5#!#!k}ú}þ‰úkúú}îýkkè^@[  e U]K ] K] K]L+#5##3353###5#5#5#3535!kúú}}úú}}ú}}}}}ôk}}}þ‰}}}}}}}}w}}}}kè -@*]KK]L +#3#5##5kú}ú}úè}ý�ú}î}}}kè_K° PX@ p]K]L@!~]K]LY@ +%#5#333##w}}úúú}}}w}wþ‰wþ‰}þ‰}}kèyK° PX@* pe ]  K ]L@+  ~e ]  K ]LY@ +##3##5#535#5#33k}}}}ú}}}}úúèþ‰}}}}}}}}wþ‰wèè1@.e]KK]L+%3#5#!5#3!3k}ú}þ }úwúúú}w}wþ‰w}kè;@8e] K]KL +###5#5#33533kú}}ú}ú}}}èü•w}}}wþ‰}}w}}èè +@(eK]L +73!3#!}úô}úþ‰}kþ‰}þ‰wþ‰}}kè )@&]K]L +753#5!#3}úúîúú}}q}}ý�}}kè^@[  e]K ]K  ]   L +5!535#53353353#3#5##5#}qý}}ú}}}ú}}ú}}}k}}ýú}úúúúúú}úúúúúèè1@.e]KK]L+%3#5#!5#3!3k}ú}þ }úwúúú}w}wþ‰w}kèªK° PX@: p   n  e]K ]K^ L@<  ~   |  e]K ]K^ LY@& +5!3535!33#5!5!5#5##}qý}}w}}úþ‰w}}}k}}ýw}}}}þ‰}}ú}}}}kè¸K° PX@= p  n e]K]K ^   L@?  ~  | e]K]K ^   LY@. +533533535!33#5!5!5#5##}ú}úý}}w}}úþ‰w}}}k}}}}ýw}}}}þ‰}}ú}}}}kèF@Ce]K]K] L  +5!!!!!!}qýký�ôþ qk}}ýq}}}}}}kèK@HU  e  e]K  ]L +#!5#!5!#535!5!k}ý�}qþ‰ú}q}þ‰ký�}}wú}}}}ý�úú}kè#i@f e]K ] K  ]  L##"!  +53353535#53353353#3#5##5#}ú}úý}}ú}}}ú}}ú}}}k}}}}ýú}úúúúúú}úúúúú}kè#u@r    eee]K ] K]L##"!  +533535#53!5#535!#535!3#3#}ú}úý�}úwúúþ‰ú}q}}}}k}}}}ý}}}}}}}}}}}}}}}kèQ@Ne  e ]KK^ L  +5!33535353#5##}qýú}}}úú}}k}}ýqþ‰}}}ý�ú}}}kè\@Y  e  e ]KK ^   L +5335333535353#5##}ú}úýú}}}úú}}k}}}}ýqþ‰}}}ý�ú}}}kèW@T e  ]K ]K ]  L +533535#35!3#%!!}ú}úý�}}q}}þ wþ‰k}}}}ý}w}}þ‰}}w}kè H@E  ~|e]K^ L  +75#35!3#%!!!5!}}}q}}þ wþ‰}qý�}}q}}ý�}}qþ‰}}kèV@Se ]K]K]K ]   L  +5!5!5!5#53!53#}qý�ôþ }úwú}k}}ý}}}úúúþ }}kèa@^ e  ]K] K ] K ]  L +533535!5!5#53!53#}ú}úý�ôþ }úwú}k}}}}ý}}}úúúþ }}kè^@[  e  f]K ] K] K]L+#53#533#!5!5!5#5353!#5w}}w}}}ú}ý�ôþ }}}w}k}}}úþ }}}}ú}þ‰w}}}kèM@J e  ]K]K   L  +533535!5#53!53}ú}ú}þ }úwúk}}}}ýú}úúúý�}kè aK° PX@"p]KK]L@#~]KK]LY@ +#5!3#5#k}þ‰}ú}èú}ý�ú}k}kè U@R  e  ]KK ^ L  +533533333%35#}ú}úýúú}úý�}}k}}}}ýq}þ qý�}ú}kè N@K  e e]K ] L +##!5#35!#!35#5353k}}þ }}q}þ‰ú}ú}}kþ }}}q}}ý�}}þ‰}}}kè9@6 e ]K L +75#33333##5#5##}}ú}}}ú}}}}}}}îþ ôþ ôý}}}}}}kî D@A~ee]K^ L  +75#535!5!5!3%!5!}}}ôþ q}ý�wþ‰}}}}}}}þ }}}kèO@L  UU e ]  K]K]L +!3#!#5!3#!5#35ký�}}wúw}}ý�}}è}ú}úw}}þ‰}}q}}kî G@De  ee]K] L  +5!3#3#!5!!5!î}}}}þ wþ‰wþ‰}q}}}}}w}þ‰}}}kîKK° PX@p]KL@~]KLY@ +7!#5!}î}þ‰}qú}þ }}kètK° PX@*pp]K]KL@,~~]K]KLY@ +#53#5!#!53î}}}}þ‰úw}k}úú}þ q}}}}kk?K° PX@n]KL@ƒ]KLY¶+3!#!qúþ úôkúþ qèî qK° PX@+p]K^K^L@,~]K^K^LY@  +%3#5!#5353!3#k}úþ ú}}qþ úúúú}}ú}wþ w}kî =@:fe]K] L  +75#35!3!!!5!}}}q}ý�ôþ wþ‰}}w}}ú}}w}}kè§K° PX@:p  f e] K ] K]L@;~  f e] K ] K]LY@$ +#5!!!5#353533#!!w}qý�ôý�}}ú}ú}þ‰wè}}þ‰ú}}}w}}}}}}kè`@]  f e ]K ]K ]  L +533535#35!3!!!5!}ú}úý�}}q}ý�ôþ wþ‰k}}}}ý}w}}ú}}w}}kîC@@   e]K ]   L+5535#53353353#3#5##5#}}ú}}}ú}}ú}}}}ú}úúúúúú}úúúúú}kîO@L  ee  e]K ]  L+75#53!5#535!#535!3#3#}}úwúúþ‰ú}q}}}}}}}}}}}}}}}}}}}}kî=@:e  ee KL +3##3!##5353#ú}}úúqú}}ú}}w}}qý�w}}ú}}kè V@S e  ee] K KL    +!53##3!##5353#îý�}}}úúqú}}ú}}è}}ý�}}qý�w}}ú}}kè`@]e e  ee]K KL +#53533##3!##5353#w}}}ú}}úúqú}}ú}}k}ú}}þ‰}}qý�w}}ú}}kîqK° PX@(pf] K^L@)~f] K^LY@ +333#5!#33%#5ô}}}úþ‰úúúwúq}}úúúqúú}}}kè�K° PX@: p e f]K ]  K^ L@;  ~ e f]K ]  K^ LY@+#53#53333#5!#33%#5q}}}}}}}}úþ‰úúúwúk}ú}ú}}úúúqúú}}}kî jK° PX@&p~]K^L@'~~]K^LY@ +####53535kúú}ú}}îý�ôþ‰}ú}ú}kî@@= e  e KL  +##3%##5353#w}úúqú}}ú}}q}þ‰q}}ý�w}}úú}kî '@$eKL +53!53#5!úwúúþ‰}qúúý�úú}kî 5@2e]K]L  +75#35!3#%!!}}}q}}þ wþ‰}}w}}þ‰}}w}kî!@]KL+5!#!kúþ‰}qý�ôþ kî@@=U e]K]KL +#!#33#!#5!k}þ úú}}wúwqþ‰}}î}}úw}}}kî=@:ee]K ]   L +75#35!3#5!!53#}}}q}úþ‰wú}}}w}}}}þ‰}}}}}kî!@]KL+%#5!#wúîú}ô}}þ kî7@4e]KK]L +35!5!5#3!3#}ôþ }úwú}}}}wþ‰wý�}kèP@Me ]K]KK ]   L  +5!5!5!5#3!3#}qý�ôþ }úwú}k}}ü•}}}wþ‰wý�}kkK@H e  ]K  ]K ]  L+!5#5#3535333##'3#3#wú}}ú}ú}}úú}}ú}}}}w}}}}þ‰}}úwþ‰w}kî#ªK° PX@< p pee ]K  ^  L@> ~ ~ee ]K  ^  LY@"##"! +553535#5#53335353##33#5#5##}}}}ú}}}ú}}}}ú}}}}}}}}}}}}}}}}}}}}}}}kî +@(e]KL +%5!5#53!53qþ }úwú}ú}úúúý�kî /@,K^K^L +!5!3333qý�úúú}}qþ ôþ ú}kî %@"K^L +533333ú}}}ú}qþ ôþ ôý�èî4@1K^K^L +!5!333333îýú}}}ú}}qþ ôþ ôþ úkî )@&K^KL +!5!3!3!wþ‰úwúþ‰}qþ ôý�}}kî 5@2eeK^L +53!3#%!5!úô}}þ wþ‰}qú}}}}}}kî ;@8ee]K]L  +7#5!!3#%35#}}ww}}þ‰úú}ô}ú}}}}}}kî 6@3eK^L    +53333%35#úú}úý�}}}qúþ‰qý�}}}kî @@=e]K]K]L  +553!3!#%35#}ôúþ }w}}}úw}þ ôþ }ú}kî 9@6eeK^ L  +533533!5#%35#ú}úúþ }w}}}qúú}þ úú}ú}kîC@@eee]K ]   L +55!5!5#535!!!3#qþ }}qþ ô}}}}}}}}}}}}}}kîI@Fe e  e]K ]   L +75#35!3#5!3#!53#}}}q}úþ‰úúwú}}}w}}}}}}}}}}}kîI@F ee e]K ]   L +75#53!5#535!#535!3#}}úwúúþ‰ú}q}}}}}}}}}}}}}þ‰}}}kè =@:]K]K]L   +5353#5!3wúþ ú}wúk}}ý}w}þ }}}kèH@E  ]K]K] L  +5335353#5!3}ú}úý�ú}wúk}}}}ý}w}þ }}îè A@>]K]KK]L   +535!#5!#ôúý�w}w}k}}ü•}ô}ý�}}kè9@6eeK] L +7#53533#!3##}}}úúúw}úú}q}}}}}}þ‰wþ‰}kîC@@e e ]K ] L +533535!3#!5#5#%3#}}}w}}þ‰}}w}}}qú}}}þ‰}}}ú}w}kî =@:ee]K] L  +5535#535!#5!!5!}}}îúþ‰wþ‰}ú}}}ý�úúw}kèG@De eK ] K ]   L +!53###53533#!3#ô}úú}}úúúw}}}wþ‰q}}}}}}þ‰}}kèE@B  e  eK]K ^L +#!#53533#!##3k}ý�}}úúúw}úúw}}ô}úú}}}}}kî �K° PX@,p  e]K  ]  L@-~  e]K  ]  LY@+!#5#5!##!!##5#53!#53qþ‰}}k}}þ‰w}}}úúqúúq}}}}}}úúúúúú}kî €K° PX@-  pne]K^ L@/  ~|e]K^ LY@  +75#35!3#%!!!5!}}}q}}þ wþ‰}qý�}}w}}þ‰}}wú}}}kîsK° PX@*p]K]K]L@+~]K]K]LY@ +%5#5#333##w}}úúú}}}}}wþ‰w}þ‰}}kîcK° PX@"pe]KL@#~e]KLY@ +#5!3##5#535k}þ‰úúú}}îú}}}úú}ú}kî=@:e ]K]K]L +!3##535##!ww}}ú}úúîq}}ú}}úúq}èîL@I   e ]  K]K^L+%3#5#5##5##535#53353353#3k}ú}}}}ú}}ú}}}ú}}úú}úúúúú}úúúúúú}kîT@Q  e  ee ]K]KL+#3###5#5#53!5#535!#535!3k}}}ú}ú}úwúúþ‰ú}q}ô}}}}}}}}}}}}}}}èî”K° PX@7 p  p V ] K^K^L@9  ~  ~ V ] K^K^LY@ +%3#5#5!#335333#5k}ú}þ‰úúú}}}úúú}úúqú}}}w}}}kî‰K° PX@1 p ee  ] K ] L@2~ ee  ] K ] LY@+3##5##33533#53#53ô}}}}úú}}ú}úúúô}}}úqú}}ú}þ ú}kîuK° PX@)pf ] K^L@*~f ] K^LY@ +333#5###5!3%#5ô}}}úúú}w}wúq}}úúúô}úú}}èî-@*eKK]L+%3#5#5!#3!53k}ú}þ‰úúwúúú}úúqúúèî '@$]KK]L+%3#5#!#!k}ú}þ‰úkúú}ôþ qkîB@?   ee ] K]KL +#5!!53###5#5#35!3kúþ‰wú}ú}ú}}q}ô}þ‰}}}}}}w}}}kî -@*]KK]L +#3#5##5kú}ú}úî}þ‰ú}ô}}kî_K° PX@ p]K]L@!~]K]LY@ +###5#5#33k}}ú}}úúîþ‰}úú}wþ‰w}kî}K° PX@, p ]  K]K ]L@-  ~ ]  K]K ]LY@ +##3##5#535#5#5335k}}}}ú}}}}úúîú}}}}}}}}úúúèî1@.e]KK]L+%3#5#5!5#53!53k}ú}þ }úwúúú}ú}úúú}kî9@6ee] KL +#5##5#5#5335335kú}}ú}ú}}}îý�ú}}}úú}}ú}kè6@3UK]K]L +3##3##5!ú}}úúqúúwq}þ‰kþ‰þ ô}}}}kè '@$]K]L +753#5!3}ú}wú}}q}ý}}kè^@[  e]K ]K  ]   L +5!535#53353353#3#5##5#}qý}}ú}}}ú}}ú}}}k}}ýú}úúúúúú}úúúúúèî1@.e]KK]L+%3#5#5!5#53!53k}ú}þ }úwúúú}ú}úúú}kè\@Y~  e e ]K]K ^ L  +5!5#535!5!5!3%!5!}qý�}}ôþ q}ý�wþ‰k}}ý}}}}}}þ }}}kèg@d  ~  e e ]K]K ^  L +533535#535!5!5!3%!5!}ú}úý�}}ôþ q}ý�wþ‰k}}}}ý}}}}}}þ }}}kèU@R  fe ]K ]K] L  +5!5#35!3!!!5!}qý�}}q}ý�ôþ wþ‰k}}ý}w}}ú}}w}}kî =@:ee]K] L  +75#5!5!5!3#%!5!}}qþ q}}þ wþ‰}}ú}}}þ‰}}}}kè#i@f e]K ] K  ]  L##"!  +53353535#53353353#3#5##5#}ú}úý}}ú}}}ú}}ú}}}k}}}}ýú}úúúúúú}úúúúú}kè#u@r    eee]K ] K]L##"!  +533535#53!5#535!#535!3#3#}ú}úý�}úwúúþ‰ú}q}}}}k}}}}ý}}}}}}}}}}}}}}}kè I@F e  ee]K KL    +!5!3##3!##5353#îý�qþ }}úúqú}}ú}}k}ý�}}qý�w}}ú}}kèO@L e  ee]K KL+#53#533##3!##5353#wúúwúúþ }}úúqú}}ú}}k}}}ý�}}qý�w}}ú}}kèW@T e  ]K ]K ]  L +533535#35!3#%!!}ú}úý�}}q}}þ wþ‰k}}}}ý}w}}þ‰}}w}kî €K° PX@-  pne]K^ L@/  ~|e]K^ LY@  +75#35!3#%!!!5!}}}q}}þ wþ‰}qý�}}w}}þ‰}}wú}kèP@Me ]K]KK ]   L  +5!5!5!5#3!3#}qý�ôþ }úwú}k}}ü•}}}wþ‰wý�}kè[@X e  ]K] K K ]  L +533535!5!5#3!3#}ú}úý�ôþ }úwú}k}}}}ü•}}}wþ‰wý�}kè]@Z e  f]K ]  KK]L+#53#53#!5!5!5#353!5#5w}}w}}}}ý�ôþ }}}w}k}}}úý�}}}}w}þ w}}}}kèM@J e  ]K]K   L  +533535!5#53!53}ú}ú}þ }úwúk}}}}ýú}úúúý�}kî aK° PX@"p]KK]L@#~]KK]LY@ +#5!3#5#k}þ‰}ú}îú}þ‰ú}q}kè U@R  e  ]KK ^ L  +533533333%35#}ú}úýúú}úý�}}k}}}}ýqúþ‰qý�}}kî 5@2ee]KL +!5!5#535!!5!qþ }}îý�wþ‰ú}ú}ýwú}kî :@7] K]L       +73#5#33#!##53ú}ú}úú}ô}ú}ú}}ôþ ôþ }}ô}kè\K° PX@!pe]KL@"~e]KLY@ +!#5####33wô}}ú}úú}èú}ýwþ‰kþ‰}kî\K° PX@!pe]KL@"~e]KLY@ +!#5##5##33wô}}ú}úú}îú}þ úúqú}kè˜K° PX@9 p  n e  e]KK] L@;  ~  | e  e]KK] LY@ +53535!#3#3!5#35#}}qúúúúþ }}}}q}}}ú}ú}úúwú}kîO@Le  ee ]K  ]  L+75#53535#5!3##335#35#}}}úúq}}úúú}}ú}}}}}}}}}}}}}w}þ‰}}kè†K° PX@/ p  ne ]1K4K 2L@1  ~  |e ]1K4K 2LY@ +53535!33#5!!5#5##}}w}}úþ‰w}}}}q}}}}ý�úúwú}}}kè G@De  ee]1K] 2L  +5!3#3#!5!!5!î}}}}þ wþ‰wþ‰}k}ú}ú}ôúý�ú}}kè@]1K2L+7!!}îþ }k}ý}kè }K° PX@,~ n]1K4K^ 2L@-~ |]1K4K^ 2LY@  +53535!33%!#5##}}w}}ý�w}}}}q}}}}ý�}ô}}}kè /@,e]1K]2L +5!!!!!ký�ôþ q}k}ú}ú}ÿÿ}kèw}kè '@$e1K2L +53!3#!úwúúþ‰}kþ‰wü•wþ‰}kè A@>  ee]1K] 2L  +75#35!3#!5!!5!}}}q}}þ wþ‰wþ‰}}q}}ý�}ôúý�ú}}kè )@&]1K]2L +753#5!#3}úúîúú}}q}}ý�}}kè¼K° PX@Hp  ~ pe  e]1K ]4K ^ 2 L@J~  ~ ~e  e]1K ]4K ^ 2 LY@+533535353###333!5#5#ú}}}ú}}}}}}þ‰}}}kþ‰}}}}}}}}}}}}ú}kèpK° PX@'pn]1K4K 2L@)~|]1K4K 2LY@ +53535!33##5##}}w}}ú}}}}q}}}}ý�q}}ý�}kè7@4e1K]4K 2L +53335353###5#ú}}}úú}}}}k}}}}ü•ôúúþ ÿÿ}kèC}kè =@:e]1K]2L   +5!5!5!kýqýkk}}þ‰}}þ‰}}}kè 5@2e]1K]2L  +75#35!3#%!!}}}q}}þ wþ‰}}q}}ý�}}q}kè!@]1K2L+5!#!kúþ‰}kü•îý}kè 5@2ee]1K2L +5!3#!!!î}}þ wþ‰}k}þ‰}úww}kèÂK° PX@J p  ~  ~ p  e]1K ] 4K ^2L@L  ~  ~  ~ ~  e]1K ] 4K ^2LY@+55353535#5#5#5!#5#33##353}}}}}}kúú}úú}úú}}}}}}}}ú}}}}}}}ú}}kè!@]1K2L+%#5!#wúîú}î}}ý}}kè_K° PX@ p]1K]2L@!~]1K]2LY@ +%#5#333##w}}úúú}}}w}wþ‰wþ‰}þ‰}kèI@F   e   e1K]4K 2 L+%5#5#3535333##'3#3#wú}}ú}ú}}úú}}ú}}}}}w}}}}þ‰}}úwþ‰wÿÿ}kèr}èè=@: e]1K  ^  2 L +7535#5#33333##3ú}ú}ú}ú}ú}ú}}}ú}wþ‰wþ‰wþ‰}ú}}kè¦K° PX@<  ~   n  p ]1K]4K ^ 2 L@>  ~   |  ~ ]1K]4K ^ 2 LY@+5535#3535!33#3!53#5##3}}}}w}}}}þ‰}}}}}}}}w}}}}þ‰}}úw}}þ‰ú}kèP@M    e  e] 1K4K2L+#5##353533%#53#5#3kúúú}}ú}þ }}}}qúúîý�úúq}}}}}}}}}}ú}èè =@:ee] 1K]2L  +!3#!!#53#èþ úúôý}}}}è}ú}ú}î}}}}èè 9@6ee] 1K2L  +####5!33#èúúú}wúý}}èü•wþ‰î}þ‰w}}}kè9@6  e] 1K]2L +3#%#3!53#53#}}}î}}þ }}þ‰}}è}}}ý�}}q}}}}èèO@L  U  e ] 1K ]2L +#5#!5#35!!3#%#3ú}k}þ }}ôü•}}îúúè}}}ý�}}q}}}}ý�}èèŒK° PX@4p e] 1K] 1K]2L@5~ e] 1K] 1K]2LY@ +####5#5#5!33#è}}ú}}}wúý}}èþ‰}þ‰w}ú}þ‰w}}}èè#'¯K° PX@;p  e ] 1K  ] 4K ^2L@<~  e ] 1K  ] 4K ^2LY@*$$$'$'&%#"! +#3!53#5##3!535#3535!3%#53#5è}}þ‰}}}}}þ‰}}}}w}ý�}}}}îþ‰}}úw}}þ‰ú}}w}}}}}}}}}}}kèK@H  ]1K]4K ]  2 L  +5335353#5!#3}úúúýúúîúúk}}}}ý}w}}þ‰}}}kè‘K° PX@.  p  ]1K ]4K ] 2 L@/   ~  ]1K ]4K ] 2 LY@& +533535#5#53353##}úúúþ }}úúú}}k}}}}ýú}úúúú}ú}kî 1@.e]4K]2L +75#35!%!!}}}îý�wþ‰}}w}ý�}wkèR@OU  e e ]1K ]2K] 6L +135!3#3#!!5!!5!}q}}}}þ wþ‰wþ‰k}}ú}ú}}qúý�úkîA@> e]4K]4K ]  6 L +!5#5#5#53333##w}}}ú}úú}}ú}ú}}úwþ‰}ú}kèP@Me  e  e]1K4K ^  2 L+75#535!5#535!#33#%!5!}}}w}}wú}}}þ wþ‰}}ú}}}}}}}þ‰}}ú}kîC@@eee]4K ]  2 L +75#535#535!!!!!}}}}}îý�ôþ q}}}}}}}}}}}kè³K° PX@Ep  ~ e  f]1K4K ] 2K ] 6 L@F~  ~ e  f]1K4K ] 2K ] 6 LY@+!535!5#53535#5!###!3#ô}þ }}}}qú}}ô}}}}}ú}}}}}}ú}}}kî8@5]4K]2K]6L +3##53##5!ú}ú}úqúúwqþ ô}}ý�q}}}kè#ºK° PX@D   pp  ee ]1K]4K ^ 2 L@F   ~~  ee ]1K]4K ^ 2 LY@"#"! +75#5#3535!33##!5#5##3535!3ú}}}}w}}}}þ‰w}}}}}}þ‰}}}}w}}}}þ‰}}ô}}}þ }}}}}îî .@+~]4K]2L +%5##5!3w}}wú}}w}þ }}kî’K° PX@6p p  e  e]4K^ 2L@8~  ~  e  e]4K^ 2LY@ +5335353##33#5#5#úú}ú}}}}ú}ú}qú}}}}}}}}}ú}kè¬K° PX@@p p U   e]1K ]4K  ^ 2 L@B~  ~ U   e]1K ]4K  ^ 2 LY@+553535#5#5333333#5#5##}}}}ú}}}}}ú}}}}ú}ú}}}}}}}úú}}úkî1@.]4K]2K6L +73##3#5#3úúúúúqú}úú}}îþ }}ôþ }kîA@> e]4K]4K ]  2 L +%5#5#5#53333##w}}}ú}úú}}}}}ú}}úwþ‰}}îèÏK° PX@Q p  ~  | e  f]1K ] 4K ]2K]6L@R  ~  ~  | e  f]1K ] 4K ]2K]6LY@+!535!5#53535#5#5!!3##!3#w}þ‰}}}}}îþ‰úú}w}}}}}}}}}}}}}}}}}}}kî 5@2e]4K]2L  +75#35!3#%!!}}}q}}þ wþ‰}}w}}þ‰}}w}kî6@3~]4K] 2L +553#5!#3#5##}}k}}ú}}}}w}}þ‰}}wþ kî :@7Ue]4K]6L  +135!3#!!5!}q}}þ wþ‰q}}ú}úwúkîE@Bee]4K]2K ]  6 L +35!5!5#535!!!3#}ôþ }}qþ ô}}}}}ú}}ú}}}}kî ~K° PX@-pUe ]4K] 2L@.~Ue ]4K] 2LY@  +75#35!#3#%35#5#}}}îú}}þ‰ú}}}}w}}}ú}}ú}}}kî 0@-~]4K]2L +%5##5!#3ô}úîúú}}w}}þ‰}}kî7@4e]4K ^  2 L +75##5333#533#ú}}ú}ú}ú}}}}w}}þ‰w}}þ‰}kîG@DU ] 4K ^2K ]6L+###5#5#353333#53k}ú}ú}}}}}}}úqþ‰}}}}w}þ wþ‰w}}kî#ªK° PX@< p pee ]4K  ^ 6 L@> ~ ~ee ]4K  ^ 6 LY@"##"! +153535#5#53335353##33#5#5##}}}}ú}}}ú}}}}ú}}}ú}}}}}}}}}}}}úú}}úèk9@6]4K]2K ]  6 L +!5#5#33333##wú}ú}ú}ú}ú}}ôþ qý�ôþ }}}kî >@;  e4K^2L   +73#5#353##533##ú}ú}}}q}ú}}ú}ú}}w}}þ‰}}ô}þ‰w}}îè=@:e]1K]4K ^2L +#53!5##53533ô}}úþ‰}}}}}k}ý}}w}}}þ }îèO@L~  ]1K]4K] 2L  +533535##5!3ú}úú}}wúk}}}}ý}w}þ }}îè L@I  e] 1K ]  4K^2L   +#53#533#53!5##53533}}}w}}ú}}úþ‰}}}}}k}}}}}ý}}w}}}}kè\@Ye   e]1K ] 4K ^2L +#53#5#!5##5333#53q}}}}ô}þ }}ú}ú}úk}}}}úþ‰}}w}}þ‰w}}}kè]@Z  e]1K ] 4K ^ 2 L +533535##5333#533#}ú}úþ }}ú}ú}ú}}k}}}}ý}w}}þ‰w}}þ‰}}kè #]@Z e  e]1K ] 4K ^ 2 L##"! +#53#53#53#53#!5##5333#53}}}w}}ú}}þ‰}}ô}þ }}ú}ú}úk}}}}}ú}úþ‰}}w}}þ‰w}}}kè‰K° PX@2p  e]1K ]4K ]2L@3~  e]1K ]4K ]2LY@ +#53#!5#353533#!!q}}ú}ý�}}ú}ú}þ‰wk}þ‰þ‰}}w}}}}þ‰}kèX@Ue  e]1K 4K ^ 2L+#53#533#5#353##533##q}}}}}ú}ú}}}q}ú}}ú}k}ú}ý�}}w}}þ‰}}ô}þ‰w}kèƒK° PX@0p e]1K] 4K ]2L@1~ e]1K] 4K ]2LY@ +#53!5#35353!!q}}úý}}ú}}þ‰wk}úý�}w}}}}þ‰}kè©K° PX@@ p  eee]1K ]  4K]2L@A ~  eee]1K ]  4K]2LY@+#53!!!!!5#535#535353q}}úý�ôþ qý}}}}ú}k}ú}}}}}}}}}}}}kè ’K° PX@6p]1K ] 4K ]2K ]6L@7~]1K ] 4K ]2K ]6LY@   +#53##533!3##53q}}úúú}úþ }ú}úk}þ‰ý�qú}}þ ô}wîú8±dD@-eU]M+±D%#5#5ô}wúú}}}}}}kèžK° PX@:  p  p e ]IK]LK ^ J L@<  ~  ~ e ]IK]LK ^ J LY@ +75#5#3535!33##'3#5#3ú}}}}w}}}}úú}ú}}}}w}}}}þ‰}}}ô}þ }}kè +@(eIK^JL  +753#53533}ú}}úú}}ô}}ý}}kè¹K° PX@H  ~  | pU  e  f]IKLK ^ J L@I  ~  | ~U  e  f]IKLK ^ J LY@ +5535353535!#535!3###!}}ú}þ‰ú}q}}}úô}ú}}}}}}}}ú}}}}}kèŸK° PX@;  p  f  U e]IKLK ^ J L@<  ~  f  U e]IKLK ^ J LY@ +75#53!5!53535!5!##33#}}úwþ‰}}þ‰î}}}}}}}}}ú}}}}}}}}ú}}kèƒK° PX@/ p  ef ]IKLK JL@0  ~  ef ]IKLK JLY@ +%5!5353535!3#35##ôþ }}}w}}þ ú}}}úú}}}þ }úwú}}kèD@AUe]IK]LK ]  J L +75#53!!!!!3#}}úwý�îþ ô}}}}}}ww}}}þ‰}}kèŸK° PX@=~n  eU]IK]LK ^  J L@>~|  eU]IK]LK ^  J LY@ +75#3535!!#!3#%!5!}}}}ôþ‰}ô}}þ wþ‰}}ô}}}}}}ú}}ú}kèŽK° PX@6p~n]IK]LK ^  J L@8~~|]IK]LK ^  J LY@ +7353535!#5!###ú}}}þ‰úk}}}}w}}}}úú}}þ‰}kè]@Z e  e e ]IK ] LK ] J L +75#535#535!3#3#35!3!5#5#}}}}}ô}}ú}þ‰úþ‰}úôúú}}ú}ú}}ú}ú}ôú}þ }}}kè›K° PX@;p| U  ee ]IK ^  J L@<~| U  ee ]IK ^  J LY@ +75!535!5#535!3##!5!}w}þ }}q}}}þ‰wþ‰}}}}}ú}}þ }}ôúúôîè (@%ebaL  +535#53533ú}}}ú}ô}}}}þ‰}úôîè4@1eb]aKdL +53535#5!3#3ú}}úw}}}ô}}}}}}}}úôîèiK° PX@%pa]aK]dL@&~a]aK]dLY@ +535#5#5!#3#úú}}ô}}}ô}}}}}}}}úôqè VK° PX@p]dK]aL@~]dK]aLY@  +5#535353ôú}}}ô}}}}þ }kè e@bee  e e]IK]LK ] J L  +#53##3##3##3##3##3#k}}}}}}}}}}}}}}}}}}}è}}}}}}}}} }kè !%-1™±dD@Žee  e    e  eeU^N10/.-,+*)('&%$#"!     +±D#5#535!#53##3##3#353#5!3##3#%33!53!3#ú}}}î}}}}}}}}}}úú}þ }}}}}ô}}þ‰}ý�}}èþ ú}}}}}}}}}ú}}}}}}}} }kè !%)-Œ±dD@�ee  e   eef U ]  M-,+*)('&%$#"!     +±D#5#535!#53##3##3#%3#5#5353!3##3##3#ú}}}î}}}}}}}}}}w}}ú}}þ }}}}}}}}èþ ú}}}}}}}}}þ }}}}}} }kè )-15�±dD@’e e   e   eefU]M543210/.-,+*)('&%$#"!     +±D#5#5!%#53##5;###5!3#%3#5#5353!3##3##3#ú}}wô}}}}ú}}}}}úúw}}w}}ú}}þ }}}}}}}}k}}}}}}}}}}}}}}}}þ }}}}}}úkkF@Ce  e   a ]L L +7535#535#53353#3#3#5#}}úú}ú}ú}úú}ú}ú}}}}}}}}}}}}}}}kè ƒ@€e e  e e]IK]LK ] J L       +#5#5#5#5#5#5#5}}ú}ú}ú}ú}ú}ú}è}}}}}}}}}}}}}}}}}}}}úwôq@U]M +53úúwúúúúîî '@$e]LL  +%5#53533#w}}ú}}ú}ú}}ú}úúôk/@,eU]M +5353úúúúqúúþ‰úú}ôw%@"]JK]NL +35353#}}ú}}úú}}kw /@,]JL   +553353353}ú}ú}}úúúúúúú}qè 5@2~]IK]JL   +!#53úw}úúwqþ‰úú}}ú}qè 3@0]IKLK^JL   +53353wúþ‰}úk}}ýwúý�}kèG@De   eIK  J L +75#53#53533533#3##5#53#}}}}}ú}ú}}}}ú}}}}}}w}}}}}}þ‰}}}}úwú}ôw@]JL +753úú}úú}kè—K° PX@7p|e  f]IK ]  J L@8~|e  f]IK ]  J LY@ +53535!#535!3##5!úú}þ‰ú}q}}}þ‰ww}}}}ú}}ú}}ú}}}kè£K° PX@9~n   e ]IK]LK ^  J L@:~|   e ]IK]LK ^  J LY@"  +5!5#53535!##!53#úwþ }}}wú}wú}k}}ý}ú}}}}}}ú}}qîè$@!]IL +333}ú}úqwþ‰wþ‰úqôè@]IL +3úúqwþ‰}}ôk 6@3ee]JL   +535353#úúþ‰}ú}qúúþ }úú}}kè e@bee  e e]IK]LK ] J L  +#53##3##3##3##3##3#k}}}}}}}}}}}}}}}}}}}è}}}}}}}}}k}&±dD@U]M +±D15!k}}ú}îèK@H~~ee]IK ^  J L +%5#5#535353##33ô}}}}ú}}}}}}ú}ú}}ú}ú}}}qèK@H~~ee]IK ^  J L +753535#5#5333##}}}}}ú}}}}}}ú}ú}}ú}ú}ú}îè%@"]IK]JL +7!#3úôúú}k}ý�}}}qè%@"]IK]JL +753#5!}úúô}}q}ü•ú}îèŽK° PX@6ppe]IK]LK ^  J L@8~~e]IK]LK ^  J LY@ +%5#5#35353##33ô}}}}ú}}}}}}}w}}}}þ‰}}}}qèŽK° PX@6ppe]IK]LK ^  J L@8~~e]IK]LK ^  J LY@ +75353#5#5333##}}}}}ú}}}}}}}w}}}}þ‰}}ôèq@U]M +5!èô}}ôkq@U]M +5!kô}}ôkq@U]M +5!kô}}}ôkq@U]M +5!}îô}}}ôkq@U]M +5!}îô}}úkk'¬K° PX@;p  pe e   b ]LL@=~  ~e e   b ]LLY@&'&%$#"!  +75#5#535353353##33#5#'35#535##3ú}}}}ú}ú}}}}ú}}}}}}}}ú}}}}}}}}}}}}}}}}}}}}úkk'¬K° PX@;p pe  e  b  ]L L@=~  ~e  e  b  ]L LY@&'&%$#"!  +553535#5#5335333###5#73535#5#3#}}}}ú}ú}}}}ú}}}}}}}}ú}}}}}}}}}}}}}}}}}}}}úúîk„K° PX@1ppee   b]LL@3~~ee   b]LLY@ +%5#5#535353##33ô}}}}ú}}}}ú}}}}}}}}}}}úqk„K° PX@1ppee  b]LL@3~~ee  b]LLY@ +753535#5#5333##}}}}}ú}}}}ú}}}}}}}}}}}îô4@1 e]JL  +##535!##535w}ú}q}ú}ôú}}úú}}ú}qkè3@0a] IL  +##535!##535ô}ú}q}ú}è}úú}}úú}}qkè6@3] IK]LL  +##535!##535ô}ú}q}ú}èú}}úú}}úúqqè"@a]IL +5353#ú}ú}qú}}úúqqè%@"]IK]LL +5353#ú}ú}q}úú}ú}qô#@ e]JL +75353#ú}ú}}}úú}úwôq@U]M+53úúwúú}}ôk 6@3ee]2L  +535353#úúþ‰}ú}qúúþ }úú}}}îw$@!]JL +753353}ú}ú}úúúú}kèU@Re  e  eIK]LK J L +%5#5#3535333#5#353##'3#wú}}ú}ú}ú}}ú}úú}}}}}w}}}}}}þ‰}}}}úw}úkk ]@Ze    a ]LL       +#5#533#5#!3#!3#73#!53ú}ôúúú}þ‰}w}}þ }}úúúw}k}}}}}}}þ‰wþ‰}}}}}}kè#a@^e  e  e  eIK]LK J L#"!  +%5!5!5#5#5353533#33##35#35#wþ‰wú}}ú}úúú}}úú}}ú}}}}}}}}}}}}}}}}}ô}þ‰}kè Z@W  U  U]IK ] LK^JK ]NL +#533!33##5#333#53#wúúúúþ‰}ô}}}}}}}}}}}k}ý}îý�}}úqú}}þ‰w}kè#c@`e  e e]IK ]LK ] J L##"!  +#5#3#3#353#!5#5#535#53535!kú}}úú}}ú}þ‰}ú}}ú}wk}}}}}}}}}}}}}}}}}}}}kèG@D~~]IK]LK ^  J L +753#53535!#3##}úúú}wúúú}}}w}}}}}}þ‰}}kè –K° PX@8p  p   e]IK]LK]JL@:~  ~   e]IK]LK]JLY@   +3!5!5!5!3!!!5#5#5î}ü•ôþ‰ô}}þ wþ }}î}}}}}þ‰}}}}}}}èèH@E   e ee ] IKJL +#!3##5#535#53!#!!è}þ úúú}}}}î}þ‰wkú}}}}}}}}w}ú}kèC@@e e]IK  ^  J L +5535#53535!3#5#!!!}}}}ô}úúwþ‰ô}}ú}ú}}}}ú}ú}}}kè 6@3]IK]LKJL   +5!#5!#}îþ úîúk}}ýô}}þ }}kèM@J  eee  ]  IK]LKJL +#3#3##5#535#535#5kú}}}}ú}}}}úè}}}}}ú}}}}ú}}}kèI@F  e   e]IKLK J L +%5#535#535#53353#3#3#wúúú}}úúú}}úúú}}}}}}úúúú}}}}}ÿÿ}kè}úkk ,@)Ue]M  +%5#53533#wúúúúúúú}úú}ú }úîk #t@qe  e     ea]LL  # #"!    +#5!#5#533##3##3#353!3#!53ú}q}ú}ú}}}}}}}}ú}þ }}ô}k}}}}}}}}}}}}}}}}úkk @@=eeU]M   +535!53wúþ îþ úî}}ú}}ú}}wkî)@&a]LL +5!5!kü•kq}}ú}}}kè ·0+#533!!!#5#5!5!5!3#k}}}}þ‰wý�}}wþ‰qý�}}è}}}}}}}}}}}}þ }}}îè¶K° PX@Fp p e  e  e]IK ]LK ^ J L@H~  ~ e  e  e]IK ]LK ^ J LY@ +75353535#5#5#53333###}}}}}}}ú}}}}}}}}}}}}}}}}}}}}}}}îè¶K° PX@Fp  p  e e e]IK]LK ^ J L@H~  ~  e e e]IK]LK ^ J LY@ +%5#5#5#53535353###333ô}}}}}}ú}}}}}}}}}}}}}}}}}}}}}ú}îèµ 0+53535#5#5333##5!ú}}}}ú}}}}úôw}}}}}}}}}}ú}}ú}îèµ 0+5#5#535353##335!ô}}}}ú}}}}þ ôw}}}}}}}}}}ú}}}}kè <@9]LK]IK] JL    +5#53533#5!wúúúúúþ îwú}úú}úú}}úîk @ 0+#5!#53#%3##5!3#!3#%3#wúq}ý�}}wúúúô}}ý�}}wúúk}}}}}}}}}}}}}}}wkî B±dD@7e eU^N +±D3!5#5#5!3!3#%#5q}þ‰}}w}ý�}}k}ô}}}}}}}}}}wkî@„]LL +5!5!qþ îwú}þ‰úkî @ 0+#53#53#5!#5!#53#%3#wúúwúúý�}ô}ô}ý�úúwúúq}}}}úúúúúúú}}}}kè  · 0+###5335#5#5î}}ú}}w}þ }è}ý}}î}}}}ý�}}}kè µ 0+53535!33%!#5##}}w}}ý�w}}}}q}}}}ý�}ô}}}kè³0+5!#!kúþ‰}kü•îý}kè³ 0+55353535#5#5#5!#5#33##353}}}}}}kúú}úú}úú}}}}}}}}ú}}}}}}}ú}kè ³ 0+75#5#533!#ú}}ú}ôú}}}}}q}ýkî1@.]LK]JKNL +73##3#5#3úúúúúqú}úú}}îþ }}ôþ }kèµ0+75#535!5#5##535!33#%!5!}}}ô}úú}ô}}}þ wþ‰}}ú}}}}}}}}þ }}ú }kè %)/3†@ƒ e  eee]IK ] LK^JL3210/.-,+*)('&%$#"!     +#53#%#5#533%3##3##3##3#%3#5#!3#!3#533#ú}ú}q}þ ú}}w}}}}}}}}}}}wú}}þ }}ô}ú}ý�}}k}úú}}þ‰ú}}}}}}}ú}}}ú}} }èè /37Œ@‰ e  eee]IK ] LK^JL 76543210 / /.-,+*)('&%$#"! +#53#%#53#533!#53#53#53#5!#5#3!5335#53##3#ú}ú}q}}ý�ú}}ô}}}}}}}}}}î}}}þ }}}þ‰}}}}}k}ú}}þ‰ú}}ú}ú}}}}ú}}}ú}}}}}}kè³ 0+3#53535353333#úú}}}}}}}úô}}}}}}}}þ }èè³0+%5!!53333###ôþ ô}}}}}}}}úwú}}}}}}}kè³ 0+!5#5#5#53!3###w}}}úwú}}}}}}}ôþ }}}}}èè³ 0+%5#5#5#53535353!!w}}}}}}}ôþ }}}}}}}}úþ‰ú }kè #'+/@.,*(%$"   0+#53#5353#5353!#5!#5#5!3###533##3#ô}}}}}}}þ‰}}w}ý�}k}þ }ô}}ú}ú}}}}}k}ú}}}}}}}}}}}}}}}}}}}}}}kè³0+553535353333}}}}}}}}}úúúúúú}}kè³0+53333###}úúúúúú}k}}}}}}}}kè³0+%5#5#5#5!###w}}}k}}}}úúú}}úúú}kè³ 0+%5#5#5#53535353îúúúúúú}}}}}}}}}ü•}kè³ 0+7535#5#5!53!##3#5#5##}}}}w}w}}}}}}}}ú}}}úú}}}ú}}}}}kè # @  0+#53#5#5!%##5#533#5!#53533ô}}ú}}wô}}}}}}þ‰}}}}îúþ‰}}}}}}}}}ú}ú}}ú}}}kè³ 0+7535#53535353333#3}}ú}}}}}}}ú}}}}ú}}}}}}ú}}}}kè  @  0+#53#5!#533!53qúúúúîúúú}þ }îúúúúúúúú}}}kè³ 0+%5#5#5#3533533###w}}}}ú}ú}}}}}}}}w}}}}þ‰}}}}kè³ 0+%5#5#5#53535353333###w}}}}}}}}}}}}}}}}}}}}}}}}}}}}}kè @  0+###5#53533#5#53#q}}ú}}ú}ú}ú}}}}k}þ }}}}ô}}}}}}}}}}èè#µ 0+#53###5##5#5#35!353##3535q}}w}}ú}}}}}w}ú}}}}k}úþ‰}}}}}}w}}}}ú}}ú}kè]@Z f  e] IK]LK ] J L  +!53#!!3#35!îý�}}}ký�w}ú}}þ‰qè}}}ý�qþ wúwú}þ‰}}}kè#³K° PX@A p  e  e  U e ]IK^JL@B  ~  e  e  U e ]IK^JLY@" # #"! +33!5#535#535!3#3%35##5#3%#5q}}ý}}}}w}}}þ‰}}ú}}úw}w}}}ú}ú}}ú}}úþ }úú}}}}kè �K° PX@2   p  ne f ]IK JL@4   ~  |e f ]IK JLY@  +%5#5#35!#5#3##33#ôú}}q}}ú}}}}ú}}}ú}w}ü•úúww}}}w}}kè#v@s  ~  |e  e   e]IK]LK ^ J L##"!  +#5#3##5#535!533#!5#5335#5kúúúú}}}ô}}}}þ }úúúk}}}}}}ú}}þ‰}}ú}}}}}} èè #'+–±dD@‹ee   e  e eeU]M  +*)('&%$ # #"!      +±D!5!#5353!#!3#%#3#53!#5!3#!!!îþ ôþ }}ô}ý}wúúq}ý�}}}úþ‰}q}}þ ôþ k}ú}}}}þ ô}}þ ô}ú}}}}}}} èè !%)-1¯±dD@¤ee  e e  e  eeU]M&&"" 10/.-,+*&)&)('"%"%$#!!       +±D!5!#5353!#!#3##5353!#5!3#!!!îþ ôþ }}ô}ý}úwúúúq}ú}}}þ }q}}þ ôþ k}ú}}}}þ ôþ ô}}}}ôþ ôú}}ú}}}}}}}ôkè ³0+#5!#5###ú}î}}}}ôw}þ úúwþ‰úqqè G±dD@<e eU]M    +±D#53#5!#53#ô}}}}w}}}}k}}}}}}}}w}qè@IKJL +%3wú}kü•w}qè,@)]IK]JL +33wúúúqwþ‰þ wþ‰}}kè )@&IK]LKJL  +%#53533#wúúúúú}ô}úú}þ }}kè7@4 eIK]LK  J L +%5#535#53533#3#wúúúúúúúúú}ú}}}úú}}}ú}kè ]@Z   e e]IK ]JL  +###533##!#3#!!ú}}î}}þ }}w}w}}}}}wþ‰è}ýk}}}ýîþ‰wþ‰wþ‰}}}}îîè 5±dD@*eU]M  +±D535!3#5#}}w}ú}î}}}}}}}ôîq&±dD@U]M +±D5!}qô}}ý:îþ4è8±dD@-eU]M +±D#5#5ý·}ú}è}}}}}ýžîþ˜è2±dD@'eU]M +±D#53#þ˜}}}}è}}}}ýþŠþ‰0±dD@%eU]M +±D5353#ý}ú}þŠ}úú}ýgÿä&±dD@U]M +±D5!ýäg}}qúèN±dDK° PX@oU]M@„U]MY@  +±D3#ú}qwú}}kîè&±dD@U]M +±D5!}qk}}wîqè8±dD@-eU]M +±D#5#5ô}ú}è}}}}}wîqè2±dD@'eU]M +±D#53#q}}}}è}}}}wîqè2±dD@'eU]M +±D#53#q}}}}è}}}}}îîè =±dD@2eU]M  +±D#5!#5!!ú}q}þ‰wþ‰è}}}}}}}îîè 4±dD@)eU]M  +±D5#53353#ú}ú}ú}î}}}}}}úqú2±dD@'eU]M +±D%#53#q}úúúú}}}}}îîè 5±dD@*eU]M  +±D535!3#5#}}w}ú}î}}}}}}}kîè2±dD@'U]M +±D53353}ú}úk}}}}wkqè&±dD@U]M +±D53wúk}}wîqè8±dD@-eU]M +±D#5#5ô}ú}è}}}}}}îîè =±dD@2eU]M  +±D3#%#53#%3#ú}}ô}þ }}w}}è}}}}}}}}}kîè&±dD@U]M +±D5!}qk}}úqw B±dD@7eeU]M   +±D%#53#5#5ô}}}}wúú}}}}}}}}qîè @±dD@5eeU]M  +±D5#535!3#'35#ú}}w}}ú}}q}}}}}}}}}îîè ;±dD@0eU]M    +±D3#5#533#53#ô}ú}úú}þ }}k}}}}}}}wîqè2±dD@'eU]M+±D#53#q}}}}è}}}}}îkè :±dD@/eU]M    +±D3#%3#%#53#}}}w}}w}þ‰}}è}}}}}}}}üÖîÿGè · 0+#5!#5!!ýS}q}þ‰wþ‰è}}}}}}}}kè  · 0+7!!!!#35#}îþ wþ wú}}}kü•ww}}þ‰}}}îw³0+7535!}úw}}}úoX5_<õèÔ' öÔvã’üÖþŠèèèèüÖè‘è}èèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèè}èè}è}è}è}è}è}è}è}è}èèèèè}è}è}è}è}èèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèè}è}è}è}èèèèèèèèèèèèèèèè}è}è}è}èèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèè}èèèèèèèèè}è}è}è}è}è}è}èè}è}è}è}è}èèèè}èèè}èè}èèèèèèèèèèèèèèèèèèèèèè}è}è}è}èèèèèè}èwè}è}è}è}èèèèèèèèèèèè}èèèèèèèèèèèèèè}è}èèèè}è}è}èèèèèèèèèèèèèèèèèèè}èèèèèèèèèèèèèèèèèè}è}èèèèèèèèèèè}èèèèèèèèè}è}è}èèè}è}èèèèèèèèèèèèèèèèè}èèèèèèè}è}è}èèèèèèèèèèèèèèèèèèè}èèèèèèèèèèèèèèèèèè}è}è}èèèèèèèè}èè}èèèèèèèèè}è}è}èèèè}èèèèèèèèèèèèèèèèè}èèèèèèèèèè}èèèèèè}èèèèèèèèèè}è}èèèèèèèèèèèè}è}èèèèèèèèè}èèèèèèèèèèè}èèèèèè}èèèèèèèèèèèwèè}èèèèèèèèèúèúèúèúèèèèèèèúèúèúè}èèúèúèèúèèè}èúè}èèèúè}èúè}èúè}èèèè}è}èèèúè}èè}è}èúèúèúèúè}èè}èè}èèèè}èèèè}è}è}èè}è}è}èèè}è}èúèúè}èèè}èè}èèèèèèèèèèèèèèèèèèèèè}èèèèèèè}è}èèè}èúèwèwè}è}èè}è}ý:ýžýýèè}èwèwèwè}è}èúè}è}èwèwè}è}èúè}è}èwè}üÖè}}$$$$Š ’ ¬4´FÆ^Ì`ìH¬vÞ \ Þ \ Š ì ` Æ 0 | ¾ ( j â €vLx®2x¸\¤â*h¸$PŒ¨ÈøBt¤ÖL˜è>„Þ‚Ü*~òl¶ŠÊ:Šþ† °  ‚!!f!ä"":"~"´"à#$#v#Â$ $R$¤$â%R%´&&b&¢''˜'ä(N(”))€**Œ++J+È,V,Ô-2-¶. .œ/ /¨00P0~0à1F1ˆ1î202f2Ì33V3”4 4j4À55p5Â6@6’77R7’7ô8N8Æ99H9„9Æ::(:f:²:ø;<;~;Ø<H>²>Ú??r?ª?à@@H@p@ÊA ALA‚AèB BŒBæC4CˆCüDvDÀE2EªEðF$F\F’FÀGGnG°GðHnHðIHIÆJJ:JdJ JäK"KJKŠKÚL"LfLªLøM2M NNJN”NÒO,O¬OâP2PŠPàQBQÆRNRÊSSaÖbbˆbÔc4cÖd4dŒee~e°eÚf4f`f¬g g@g~g¬gÖh0hdhäipi²iüj`jÌkknkÂl lVl¬m mRmšmìn’Œ’Ê““X“Ø””¢”Ε8•´•è–&–¸–ð—(—`— —þ˜,˜f˜°™0™l™°™îš4š‚šÜ›4›šœœdœÈ�F�´�âžZž„ŸŸ|Ÿà " – ü¡X¡Ì¡ö¢*¢x¢¶££¨¤0¤Ì¥¥„¥ ¥È¥ò¦¦B¦r¦¢¦ð§§x§î¨¨.¨`¨¾¨Ü©©`©„©¨ª ªpªŒª¨ªÄªàªü«„¬ ¬j¬È¬ü­0­f­ˆ­¬­Î­ê®®®@®–®ú¯\¯º°°\°Î±±\±�±Ø²"²*²T²Ä²þ³&³X³Ø´X´~´¦´àµ µbµ‚µ¼µä¶¶¶J¶d¶˜¶Ä·T·ê¸ ¸,¸L¸n¸Æ¸à¸ü¹¹4¹\¹–¹º¹âºº.º`º”ºð»~»î¼Z¼ð½š½¶½ø¾¾>¾h¾ ¿¿6¿V¿„¿°¿Ú¿úÀ0ÀPÀ~ÀªÀÖÁÁ<ÁhÁ˜ÁÂÁâÂÂNÂn¨ÂâÃÃHÃ„Ã¢ÃÆÃ×’8 $@Q‹¸ >mm{‚¡ ·Ä Ø á ê  �¦ ÚÀ š ¶ >Ä , . (H p ‚ ,” ,À  ì 4 Copyright 2012 The Press Start 2P Project Authors (cody@zone38.net), with Reserved Font Name "Press Start 2P"Press Start 2PRegular3.000;CYRE;PressStart2P-RegularPress Start 2P RegularVersion 3.000PressStart2P-RegularCodeMan38CodeMan38http://www.zone38.net/http://www.zone38.net/This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFLhttp://scripts.sil.org/OFLCopyright 2012 The Press Start 2P Project Authors (cody@zone38.net), with Reserved Font Name "Press Start 2P"Press Start 2PRegular3.000;CYRE;PressStart2P-RegularPress Start 2P RegularVersion 3.000PressStart2P-RegularCodeMan38CodeMan38http://www.zone38.net/http://www.zone38.net/This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFLhttp://scripts.sil.org/OFLÿµ2’$ÉÇb­c®�%&ýÿd'é (e  ÈÊ Ë )*ø+,ÌÍÎúÏ-./â01 !"f2Ð#ÑgÓ$%‘¯°3í45&'(6)äû*7+,-8Ô.ÕhÖ/01239:4;<ë5»=6æ7Di8klj9:nm EFþo;<Gê=Hp>?rs@qABIJùCDEKFGL×tHvwuIJKLMMNNOOPQRSãPQTUVWxRyX{|zYZ¡}±SîTU[\]V^åü_‰`WabcX~d€�efghiYZj[\ìkº]lçmÀÁ�žnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU›VWXYZ[\]^_`abcdefghijklmn¼ôõö ?Ç«£"¢ B^`>@ ³²op©ª¾¿Å´µ¶·Äqrst„½uv¦wx…yz–{ð¸ �!•”“§a¤’œ|š™¥}˜Æ~€�¹‚ƒ„…†‡ˆ‰Š‹Œ�# ˆ†‹ŠŒƒ_è‚ÂŽA��‘’“”•–—�ÛáÞØŽÜCßÚàÝÙ˜™š›œNULLAbreveAmacronAogonek Ccircumflex CdotaccentDcaronDcroatEbreveEcaron EdotaccentEmacronEogonek Gcircumflex Gcommaaccent GdotaccentHbar HcircumflexIJIbreveImacronIogonekItilde Jcircumflex KcommaaccentLacuteLcaron LcommaaccentLdotNacuteNcaron NcommaaccentEngObreve OhungarumlautOmacronRacuteRcaron RcommaaccentSacute ScircumflexTbarTcaronuni021AUbreve UhungarumlautUmacronUogonekUringUtilde Wcircumflex YcircumflexZacute Zdotaccentabreveamacronaogonek ccircumflex cdotaccentdcaronebreveecaron edotaccentemacroneogonek gcircumflex gcommaaccent gdotaccenthbar hcircumflexibreveijimacroniogonekitilde jcircumflex kcommaaccent kgreenlandiclacutelcaron lcommaaccentldotnacutencaron ncommaaccentengobreve ohungarumlautomacronracutercaron rcommaaccentsacute scircumflexlongstbartcaronuni021Bubreve uhungarumlautumacronuogonekuringutilde wcircumflex ycircumflexzacute zdotaccentuni0410uni0411uni0412uni0413uni0403uni0490uni0414uni0415uni0400uni0401uni0416uni0417uni0418uni0419uni040Duni041Auni040Cuni041Buni041Cuni041Duni041Euni041Funi0420uni0421uni0422uni0423uni040Euni0424uni0425uni0427uni0426uni0428uni0429uni040Funi042Cuni042Auni042Buni0409uni040Auni0405uni0404uni042Duni0406uni0407uni0408uni040Buni042Euni042Funi0402uni0462uni046Auni0472uni0474uni0492uni0494uni0496uni0498uni049Auni049Cuni04A0uni04A2uni0524uni04AAuni04ACuni04AEuni04B0uni04B6uni04B8uni04BAuni04C0uni04C1uni04CBuni04D0uni04D2uni04D6uni04D8uni04DCuni04DEuni04E2uni04E4uni04E6uni04E8uni04EEuni04F0uni04F2uni04F4uni04F6uni04F8uni051Auni051Cuni0430uni0431uni0432uni0433uni0453uni0491uni0434uni0435uni0450uni0451uni0436uni0437uni0438uni0439uni045Duni043Auni045Cuni043Buni043Cuni043Duni043Euni043Funi0440uni0441uni0442uni0443uni045Euni0444uni0445uni0447uni0446uni0448uni0449uni045Funi044Cuni044Auni044Buni0459uni045Auni0455uni0454uni044Duni0456uni0457uni0458uni045Buni044Euni044Funi0452uni0463uni046Buni0473uni0475uni0493uni0495uni0497uni0499uni049Buni049Duni04A1uni04A3uni0525uni04ABuni04ADuni04AFuni04B1uni04B7uni04B9uni04BBuni04CFuni04C2uni04CCuni04D1uni04D3uni04D7uni04D9uni04DDuni04DFuni04E3uni04E5uni04E7uni04E9uni04EFuni04F1uni04F3uni04F5uni04F7uni04F9uni051Buni051Duni04A4uni04A5uni04D4uni04D5AlphaBetaGammauni0394EpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsiuni03A9 Alphatonos EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos Omegatonos IotadieresisUpsilondieresisalphabetagammadeltaepsilonzetaetathetaiotakappalambdauni03BCnuxiomicronrhouni03C2sigmatauupsilonphichipsiomega iotatonos iotadieresisiotadieresistonos upsilontonosupsilondieresisupsilondieresistonos omicrontonos omegatonos alphatonos epsilontonosetatonosuni037Auni00B9uni00B2uni00B3uni2074uni2015uni00AD anoteleiauni037Euni00A0DELuni20AFEurouni20B4uni20BDuni20B8uni20AEuni2215uni2206uni00B5arrowup arrowright arrowdown arrowlefttriagupuni25B6triagdnuni25C0uni2605uni2606spadeclubheartdiamond musicalnoteuniF8FFuni2116uni02D7 gravecomb acutecombuni0326uni0335uni02BCuni02C9uni02CBuni02CAtonos dieresistonos brevecombcyuniF100uniF101ÿÿúúqœ}}w]è}î}èþŠè}î}èþŠúúqœ}}w]è}èî}èþŠè}èî}èþŠúúqœ}}w]è}èî}èþŠè}èî}èþŠúúqœ}}w]è}èî}èþŠè}èî}èþа, °UXEY K¸QK°SZX°4°(Y`f ŠUX°%a¹cc#b!!°Y°C#D²C`B-°,° `f-°, d °ÀP°&Z²( CEcE°EX!°%YR[X!#!ŠX °PPX!°@Y °8PX!°8YY ± CEcEad°(PX!± CEcE °0PX!°0Y °ÀPX f ŠŠa ° PX` ° PX!° ` °6PX!°6``YYY°+YY#°PXeYY-°, E °%ad °CPX°#B°#B!!Y°`-°,#!#! d±bB °#B°EX± CEc± C°`Ec°*! °C Ра+±0%°&QX`PaRYX#Y!Y °@SX°+!°@Y#°PXeY-°,°C+²C`B-°,°#B# °#Ba°bf°c°`°*-°, E ° Cc¸b °PX°@`Yf°c`D°`-°,² CEB*!²C`B-° ,°C#D²C`B-° , E °+#°C°%` EŠ#a d ° PX!°°0PX° °@YY#°PXeY°%#aDD°`-° , E °+#°C°%` EŠ#a d°$PX°°@Y#°PXeY°%#aDD°`-° , °#B² EX!#!Y*!-° ,±E°daD-°,°` ° CJ°PX ° #BY° CJ°RX ° #BY-°, °bf°c ¸cŠ#a°C` Š` °#B#-°,KTX±dDY$° e#x-°,KQXKSX±dDY!Y$°e#x-°,±CUX±C°aB°+Y°C°%B± %B± %B°# °%PX±C`°%BŠŠ Š#a°*!#°a Š#a°*!±C`°%B°%a°*!Y° CG° CG`°b °PX°@`Yf°c ° Cc¸b °PX°@`Yf°c`±#D°C°>²C`B-°,±ETX°#B E° #B° #°`B `°aµBBŠ`±+°‰+"Y-°,±+-°,±+-°,±+-°,±+-°,±+-°,±+-°,±+-°,±+-°,±+-°,± +-°),# °bf°c°`KTX# .°]!!Y-°*,# °bf°c°`KTX# .°q!!Y-°+,# °bf°c°&`KTX# .°r!!Y-°,° +±ETX°#B E° #B° #°`B `°aµBBŠ`±+°‰+"Y-°,±+-° ,±+-°!,±+-°",±+-°#,±+-°$,±+-°%,±+-°&,±+-°',±+-°(,± +-°,, <°`-°-, `°` C#°`C°%a°`°,*!-°.,°-+°-*-°/, G ° Cc¸b °PX°@`Yf°c`#a8# ŠUX G ° Cc¸b °PX°@`Yf°c`#a8!Y-°0,±ETX°°/*±EX0Y"Y-°1,° +±ETX°°/*±EX0Y"Y-°2, 5°`-°3,°Ec¸b °PX°@`Yf°c°+° Cc¸b °PX°@`Yf°c°+°´D>#8±2*!-°4, < G ° Cc¸b °PX°@`Yf°c`°Ca8-°5,.<-°6, < G ° Cc¸b °PX°@`Yf°c`°Ca°Cc8-°7,±% . G°#B°%IŠŠG#G#a Xb!Y°#B²6*-°8,°°#B°%°%G#G#a° C+eŠ.# <Š8-°9,°°#B°%°% .G#G#a °#B° C+ °`PX °@QX³  ³&YBB# °C Š#G#G#a#F`°C°b °PX°@`Yf°c` °+ ŠŠa °C`d#°CadPX°Ca°C`Y°%°b °PX°@`Yf°ca# °&#Fa8#°CF°%°CG#G#a` °C°b °PX°@`Yf°c`# °+#°C`°+°%a°%°b °PX°@`Yf°c°&a °%`d#°%`dPX!#!Y# °&#Fa8Y-°:,°°#B °& .G#G#a#<8-°;,°°#B °#B F#G°+#a8-°<,°°#B°%°%G#G#a°TX. <#!°%°%G#G#a °%°%G#G#a°%°%I°%a¹cc# Xb!Yc¸b °PX°@`Yf°c`#.# <Š8#!Y-°=,°°#B °C .G#G#a `° `f°b °PX°@`Yf°c# <Š8-°>,# .F°%F°CXPRYX +-°o,±:+°?+-°p,°±:+°@+-°q,±:+°>+-°r,±:+°?+-°s,°±:+°@+-°t,±;+.±.+-°u,±;+°>+-°v,±;+°?+-°w,±;+°@+-°x,±;+°>+-°y,±;+°?+-°z,±;+°@+-°{,±<+.±.+-°|,±<+°>+-°},±<+°?+-°~,±<+°@+-°,±<+°>+-°€,±<+°?+-°�,±<+°@+-°‚,±=+.±.+-°ƒ,±=+°>+-°„,±=+°?+-°…,±=+°@+-°†,±=+°>+-°‡,±=+°?+-°ˆ,±=+°@+-°‰,³ EX!#!YB+°e°$Px±EX0Y-K¸ÈRX±ŽY°¹cp±BµlT<$*±B@ ] E -  *±B@ iQ9"*± B½€€ € *±B½ÀÀÀÀ *±D±$ˆQX°@ˆX±dD±&ˆQXº€@ˆcTX±DYYYY@ aI1 *¸ÿ…°�±D³dDDÊË)hedra_engine/shaders/render/artboard_blitjÔߤBTSR AA9zR Ì9$ž Â*9û*ó î?9'@6]@˜ õP9ˆvs_blit fs_blit_srgbfs_blit_linearfs_blit_srgb_straightfs_blit_linear_straightsourcesource_samplervs_blitvs_blit fs_blit_srgb fs_blit_srgbfs_blit_linearfs_blit_linearfs_blit_srgb_straightfs_blit_srgb_straightfs_blit_linear_straightfs_blit_linear_straight‰struct BlitOut { @builtin(position) position: vec4, @location(0) uv: vec2, } @group(0) @binding(0) var source: texture_2d; @group(0) @binding(1) var source_sampler: sampler; fn unpremultiply(c: vec4) -> vec4 { if (c.w > 0f) { return vec4(min((c.xyz / vec3(c.w)), vec3(1f)), c.w); } return vec4(0f, 0f, 0f, 0f); } fn srgb_to_linear_channel(c_1: f32) -> f32 { if (c_1 <= 0.04045f) { return (c_1 / 12.92f); } return pow(((c_1 + 0.055f) / 1.055f), 2.4f); } @vertex fn vs_blit(@builtin(vertex_index) i: u32) -> BlitOut { var corners: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: BlitOut; let p = corners[i]; out.position = vec4(p, 0f, 1f); out.uv = vec2(((p.x + 1f) * 0.5f), (1f - ((p.y + 1f) * 0.5f))); let _e33 = out; return _e33; } @fragment fn fs_blit_srgb(v: BlitOut) -> @location(0) vec4 { let _e4 = textureSample(source, source_sampler, v.uv); let _e5 = unpremultiply(_e4); let _e7 = srgb_to_linear_channel(_e5.x); let _e9 = srgb_to_linear_channel(_e5.y); let _e11 = srgb_to_linear_channel(_e5.z); return vec4(_e7, _e9, _e11, _e5.w); } @fragment fn fs_blit_linear(v_1: BlitOut) -> @location(0) vec4 { let _e4 = textureSample(source, source_sampler, v_1.uv); let _e5 = unpremultiply(_e4); return _e5; } @fragment fn fs_blit_srgb_straight(v_2: BlitOut) -> @location(0) vec4 { let s = textureSample(source, source_sampler, v_2.uv); let _e6 = srgb_to_linear_channel(s.x); let _e8 = srgb_to_linear_channel(s.y); let _e10 = srgb_to_linear_channel(s.z); return vec4(_e6, _e8, _e10, s.w); } @fragment fn fs_blit_linear_straight(v_3: BlitOut) -> @location(0) vec4 { let _e4 = textureSample(source, source_sampler, v_3.uv); return _e4; }  4!7ŒŠÈ®Ovs_blitmainÃ#version 300 es precision highp float; precision highp int; struct BlitOut { vec4 position; vec2 uv; }; smooth out vec2 _vs2fs_location0; vec4 unpremultiply(vec4 c) { if ((c.w > 0.0)) { return vec4(min((c.xyz / vec3(c.w)), vec3(1.0)), c.w); } return vec4(0.0, 0.0, 0.0, 0.0); } float srgb_to_linear_channel(float c_1) { if ((c_1 <= 0.04045)) { return (c_1 / 12.92); } return pow(((c_1 + 0.055) / 1.055), 2.4); } void main() { uint i = uint(gl_VertexID); vec2 corners[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); BlitOut out_ = BlitOut(vec4(0.0), vec2(0.0)); vec2 p = corners[i]; out_.position = vec4(p, 0.0, 1.0); out_.uv = vec2(((p.x + 1.0) * 0.5), (1.0 - ((p.y + 1.0) * 0.5))); BlitOut _e33 = out_; gl_Position = _e33.position; _vs2fs_location0 = _e33.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_blit_srgbmain¤#version 300 es precision highp float; precision highp int; struct BlitOut { vec4 position; vec2 uv; }; uniform highp sampler2D _group_0_binding_0_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec4 unpremultiply(vec4 c) { if ((c.w > 0.0)) { return vec4(min((c.xyz / vec3(c.w)), vec3(1.0)), c.w); } return vec4(0.0, 0.0, 0.0, 0.0); } float srgb_to_linear_channel(float c_1) { if ((c_1 <= 0.04045)) { return (c_1 / 12.92); } return pow(((c_1 + 0.055) / 1.055), 2.4); } void main() { BlitOut v = BlitOut(gl_FragCoord, _vs2fs_location0); vec4 _e4 = texture(_group_0_binding_0_fs, vec2(v.uv)); vec4 _e5 = unpremultiply(_e4); float _e7 = srgb_to_linear_channel(_e5.x); float _e9 = srgb_to_linear_channel(_e5.y); float _e11 = srgb_to_linear_channel(_e5.z); _fs2p_location0 = vec4(_e7, _e9, _e11, _e5.w); return; } fs_blit_linearmain#version 300 es precision highp float; precision highp int; struct BlitOut { vec4 position; vec2 uv; }; uniform highp sampler2D _group_0_binding_0_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec4 unpremultiply(vec4 c) { if ((c.w > 0.0)) { return vec4(min((c.xyz / vec3(c.w)), vec3(1.0)), c.w); } return vec4(0.0, 0.0, 0.0, 0.0); } float srgb_to_linear_channel(float c_1) { if ((c_1 <= 0.04045)) { return (c_1 / 12.92); } return pow(((c_1 + 0.055) / 1.055), 2.4); } void main() { BlitOut v_1 = BlitOut(gl_FragCoord, _vs2fs_location0); vec4 _e4 = texture(_group_0_binding_0_fs, vec2(v_1.uv)); vec4 _e5 = unpremultiply(_e4); _fs2p_location0 = _e5; return; } fs_blit_srgb_straightmain{#version 300 es precision highp float; precision highp int; struct BlitOut { vec4 position; vec2 uv; }; uniform highp sampler2D _group_0_binding_0_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec4 unpremultiply(vec4 c) { if ((c.w > 0.0)) { return vec4(min((c.xyz / vec3(c.w)), vec3(1.0)), c.w); } return vec4(0.0, 0.0, 0.0, 0.0); } float srgb_to_linear_channel(float c_1) { if ((c_1 <= 0.04045)) { return (c_1 / 12.92); } return pow(((c_1 + 0.055) / 1.055), 2.4); } void main() { BlitOut v_2 = BlitOut(gl_FragCoord, _vs2fs_location0); vec4 s = texture(_group_0_binding_0_fs, vec2(v_2.uv)); float _e6 = srgb_to_linear_channel(s.x); float _e8 = srgb_to_linear_channel(s.y); float _e10 = srgb_to_linear_channel(s.z); _fs2p_location0 = vec4(_e6, _e8, _e10, s.w); return; } fs_blit_linear_straightmainß#version 300 es precision highp float; precision highp int; struct BlitOut { vec4 position; vec2 uv; }; uniform highp sampler2D _group_0_binding_0_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec4 unpremultiply(vec4 c) { if ((c.w > 0.0)) { return vec4(min((c.xyz / vec3(c.w)), vec3(1.0)), c.w); } return vec4(0.0, 0.0, 0.0, 0.0); } float srgb_to_linear_channel(float c_1) { if ((c_1 <= 0.04045)) { return (c_1 / 12.92); } return pow(((c_1 + 0.055) / 1.055), 2.4); } void main() { BlitOut v_3 = BlitOut(gl_FragCoord, _vs2fs_location0); vec4 _e4 = texture(_group_0_binding_0_fs, vec2(v_3.uv)); _fs2p_location0 = _e4; return; }  ÿ)LjQB_group_0_binding_0_fsvs_blitvs_blit fs_blit_srgb fs_blit_srgbfs_blit_linearfs_blit_linearfs_blit_srgb_straightfs_blit_srgb_straightfs_blit_linear_straightfs_blit_linear_straightæ// language: metal2.2 #include #include using metal::uint; struct BlitOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_6 { metal::float2 inner[3]; }; metal::float4 unpremultiply( metal::float4 c ) { if (c.w > 0.0) { return metal::float4(metal::min(c.xyz / metal::float3(c.w), metal::float3(1.0)), c.w); } return metal::float4(0.0, 0.0, 0.0, 0.0); } float srgb_to_linear_channel( float c_1 ) { if (c_1 <= 0.04045) { return c_1 / 12.92; } return metal::pow((c_1 + 0.055) / 1.055, 2.4); } struct vs_blitInput { }; struct vs_blitOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_blitOutput vs_blit( uint i [[vertex_id]] ) { type_6 corners = type_6 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; BlitOut out = {}; metal::float2 p = corners.inner[metal::min(unsigned(i), 2u)]; out.position = metal::float4(p, 0.0, 1.0); out.uv = metal::float2((p.x + 1.0) * 0.5, 1.0 - ((p.y + 1.0) * 0.5)); BlitOut _e33 = out; const auto _tmp = _e33; return vs_blitOutput { _tmp.position, _tmp.uv }; } struct fs_blit_srgbInput { metal::float2 uv [[user(loc0), center_perspective]]; }; struct fs_blit_srgbOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_blit_srgbOutput fs_blit_srgb( fs_blit_srgbInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , metal::texture2d source [[texture(0)]] , metal::sampler source_sampler [[sampler(0)]] ) { const BlitOut v = { position, varyings_1.uv }; metal::float4 _e4 = source.sample(source_sampler, v.uv); metal::float4 _e5 = unpremultiply(_e4); float _e7 = srgb_to_linear_channel(_e5.x); float _e9 = srgb_to_linear_channel(_e5.y); float _e11 = srgb_to_linear_channel(_e5.z); return fs_blit_srgbOutput { metal::float4(_e7, _e9, _e11, _e5.w) }; } struct fs_blit_linearInput { metal::float2 uv [[user(loc0), center_perspective]]; }; struct fs_blit_linearOutput { metal::float4 member_2 [[color(0)]]; }; fragment fs_blit_linearOutput fs_blit_linear( fs_blit_linearInput varyings_2 [[stage_in]] , metal::float4 position_1 [[position]] , metal::texture2d source [[texture(0)]] , metal::sampler source_sampler [[sampler(0)]] ) { const BlitOut v_1 = { position_1, varyings_2.uv }; metal::float4 _e4 = source.sample(source_sampler, v_1.uv); metal::float4 _e5 = unpremultiply(_e4); return fs_blit_linearOutput { _e5 }; } struct fs_blit_srgb_straightInput { metal::float2 uv [[user(loc0), center_perspective]]; }; struct fs_blit_srgb_straightOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_blit_srgb_straightOutput fs_blit_srgb_straight( fs_blit_srgb_straightInput varyings_3 [[stage_in]] , metal::float4 position_2 [[position]] , metal::texture2d source [[texture(0)]] , metal::sampler source_sampler [[sampler(0)]] ) { const BlitOut v_2 = { position_2, varyings_3.uv }; metal::float4 s = source.sample(source_sampler, v_2.uv); float _e6 = srgb_to_linear_channel(s.x); float _e8 = srgb_to_linear_channel(s.y); float _e10 = srgb_to_linear_channel(s.z); return fs_blit_srgb_straightOutput { metal::float4(_e6, _e8, _e10, s.w) }; } struct fs_blit_linear_straightInput { metal::float2 uv [[user(loc0), center_perspective]]; }; struct fs_blit_linear_straightOutput { metal::float4 member_4 [[color(0)]]; }; fragment fs_blit_linear_straightOutput fs_blit_linear_straight( fs_blit_linear_straightInput varyings_4 [[stage_in]] , metal::float4 position_3 [[position]] , metal::texture2d source [[texture(0)]] , metal::sampler source_sampler [[sampler(0)]] ) { const BlitOut v_3 = { position_3, varyings_4.uv }; metal::float4 _e4 = source.sample(source_sampler, v_3.uv); return fs_blit_linear_straightOutput { _e4 }; }  ÿ)LjQBvs_blitmainüstruct BlitOut { float4 position; float2 uv; }; static const float2 _66[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const BlitOut _72 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { BlitOut _out = _72; uint _76 = min(uint(gl_VertexIndex), 2u); _out.position = float4(_66[_76], 0.0f, 1.0f); _out.uv = float2((_66[_76].x + 1.0f) * 0.5f, 1.0f - ((_66[_76].y + 1.0f) * 0.5f)); gl_Position = _out.position; uv = _out.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; }  fs_blit_srgbmain?struct BlitOut { float4 position; float2 uv; }; Texture2D source : register(t0); SamplerState source_sampler : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _63; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _63 : SV_Target0; }; float4 unpremultiply(float4 c) { if (c.w > 0.0f) { return float4(min(c.xyz / float3(c.www), float3(1.0f, 1.0f, 1.0f)), c.w); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float srgb_to_linear_channel(float c) { if (c <= 0.040449999272823333740234375f) { return c / 12.9200000762939453125f; } return pow((c + 0.054999999701976776123046875f) / 1.05499994754791259765625f, 2.400000095367431640625f); } void frag_main() { BlitOut _56 = { gl_FragCoord, uv }; float4 _74 = unpremultiply(source.Sample(source_sampler, _56.uv)); _63 = float4(srgb_to_linear_channel(_74.x), srgb_to_linear_channel(_74.y), srgb_to_linear_channel(_74.z), _74.w); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._63 = _63; return stage_output; } fs_blit_linearmainÅstruct BlitOut { float4 position; float2 uv; }; Texture2D source : register(t0); SamplerState source_sampler : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _63; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _63 : SV_Target0; }; float4 unpremultiply(float4 c) { if (c.w > 0.0f) { return float4(min(c.xyz / float3(c.www), float3(1.0f, 1.0f, 1.0f)), c.w); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } void frag_main() { BlitOut _56 = { gl_FragCoord, uv }; _63 = unpremultiply(source.Sample(source_sampler, _56.uv)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._63 = _63; return stage_output; } fs_blit_srgb_straightmainostruct BlitOut { float4 position; float2 uv; }; Texture2D source : register(t0); SamplerState source_sampler : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _63; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _63 : SV_Target0; }; float srgb_to_linear_channel(float c) { if (c <= 0.040449999272823333740234375f) { return c / 12.9200000762939453125f; } return pow((c + 0.054999999701976776123046875f) / 1.05499994754791259765625f, 2.400000095367431640625f); } void frag_main() { BlitOut _56 = { gl_FragCoord, uv }; float4 _73 = source.Sample(source_sampler, _56.uv); _63 = float4(srgb_to_linear_channel(_73.x), srgb_to_linear_channel(_73.y), srgb_to_linear_channel(_73.z), _73.w); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._63 = _63; return stage_output; } fs_blit_linear_straightmainõstruct BlitOut { float4 position; float2 uv; }; Texture2D source : register(t0); SamplerState source_sampler : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _63; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _63 : SV_Target0; }; void frag_main() { BlitOut _56 = { gl_FragCoord, uv }; _63 = source.Sample(source_sampler, _56.uv); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._63 = _63; return stage_output; }  ÿ)LjQBHSLTsourceÿÿÿÿsource_samplerÿÿÿÿvs_blitvs_blit fs_blit_srgb fs_blit_srgbfs_blit_linearfs_blit_linearfs_blit_srgb_straightfs_blit_srgb_straightfs_blit_linear_straightfs_blit_linear_straightà#µ GLSL.std.450?vs_blit8;= qfs_blit_srgbjmp ‰fs_blit_linear„†ˆ ˜fs_blit_srgb_straight“•— ®fs_blit_linear_straight©«­q‰˜®H#H#G G "G !G"G!G8 *G; G=Gj GmGpG„ G†GˆG“ G•G—G© G«G­   +    ; ;!++€?,,!)+*æ®%=++R¸NA+,®Ga=+-= ‡?+.š™@ 9 ;98 <;<; >;>=!@+A€¿,BAA+C@@,DCA,EAC, FBDE+G? I K.L N+ O S+ U+ _ c k;kj n;nm;<pv;k„;n†;<ˆ;k“;n•;<—;k©;n«;<­67øùøQº÷úøOQ P! ˆ"! #%"Q$P%#$þ%øþ86()7'ø&ù/ø/¼0'*÷1ú021ø2ˆ3'+þ3ø1�4',ˆ54- 65.þ686?@ø7;IHF;KJL= :8ùMøM  P&:OANQHP=RQPTRASVJU>VTQWR�XW…YXGQZR�[Z…\[Gƒ]\P^Y]AN`J_>`^=aJQba>;bAcd;_=edfe>dfQga>=gý86q@øh=lj=omPilo=r =sùtøtQuiVvwrsWxwu9yxQzy9{(zQ|y9}(|Q~y9(~Q€yP�{}€>p�ý86‰@ø‚=…„=‡†Pƒ…‡=Š =‹ùŒøŒQ�ƒVvŽŠ‹W�Ž�9��>ˆ�ý86˜@ø‘=”“=–•P’”–=™ =šù›ø›Qœ’Vv�™šWž�œQŸž9 (ŸQ¡ž9¢(¡Q£ž9¤(£Q¥žP¦ ¢¤¥>—¦ý86®@ø§=ª©=¬«P¨ª¬=¯ =°ù±ø±Q²¨Vv³¯°W´³²>­´ý8 4!7ŒŠÈ®OÊË&hedra_engine/shaders/render/decal_blitjÔÿ…BTSR üüKGy ÀK :HÙ !"Kl"V Â2K 3œ©3 »AKN vs_decal_blit fs_decal_copyfs_decal_encodesrc src_samplerBlit vs_decal_blit vs_decal_blit fs_decal_copy fs_decal_copyfs_decal_encodefs_decal_encode–struct DecalBlitU { level: vec4, } struct DecalBlitOut { @builtin(position) position: vec4, @location(0) uv: vec2, } const DECAL_LAYER_SIDE: f32 = 512f; @group(0) @binding(0) var src: texture_2d; @group(0) @binding(1) var src_sampler: sampler; @group(0) @binding(2) var Blit: DecalBlitU; fn decal_source(uv: vec2) -> vec4 { let dims = textureDimensions(src, 0i); let side = f32(max(max(dims.x, dims.y), 1u)); let _e13 = Blit.level.x; let lod = max((_e13 + log2((side / DECAL_LAYER_SIDE))), 0f); let _e22 = textureSampleLevel(src, src_sampler, uv, lod); return _e22; } fn linear_to_srgb_channel(c_in: f32) -> f32 { let c = clamp(c_in, 0f, 1f); if (c <= 0.0031308f) { return (c * 12.92f); } return ((1.055f * pow(c, 0.41666666f)) - 0.055f); } @vertex fn vs_decal_blit(@builtin(vertex_index) i: u32) -> DecalBlitOut { var corners: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: DecalBlitOut; let p = corners[i]; out.position = vec4(p, 0f, 1f); out.uv = vec2(((p.x + 1f) * 0.5f), (1f - ((p.y + 1f) * 0.5f))); let _e33 = out; return _e33; } @fragment fn fs_decal_copy(v: DecalBlitOut) -> @location(0) vec4 { let _e2 = decal_source(v.uv); return _e2; } @fragment fn fs_decal_encode(v_1: DecalBlitOut) -> @location(0) vec4 { let _e2 = decal_source(v_1.uv); let _e4 = linear_to_srgb_channel(_e2.x); let _e6 = linear_to_srgb_channel(_e2.y); let _e8 = linear_to_srgb_channel(_e2.z); return vec4(_e4, _e6, _e8, clamp(_e2.w, 0f, 1f)); }  Sb+,æ vs_decal_blitmain­#version 300 es precision highp float; precision highp int; struct DecalBlitU { vec4 level; }; struct DecalBlitOut { vec4 position; vec2 uv; }; const float DECAL_LAYER_SIDE = 512.0; smooth out vec2 _vs2fs_location0; float linear_to_srgb_channel(float c_in) { float c = clamp(c_in, 0.0, 1.0); if ((c <= 0.0031308)) { return (c * 12.92); } return ((1.055 * pow(c, 0.41666666)) - 0.055); } void main() { uint i = uint(gl_VertexID); vec2 corners[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); DecalBlitOut out_ = DecalBlitOut(vec4(0.0), vec2(0.0)); vec2 p = corners[i]; out_.position = vec4(p, 0.0, 1.0); out_.uv = vec2(((p.x + 1.0) * 0.5), (1.0 - ((p.y + 1.0) * 0.5))); DecalBlitOut _e33 = out_; gl_Position = _e33.position; _vs2fs_location0 = _e33.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_decal_copymaina#version 300 es precision highp float; precision highp int; struct DecalBlitU { vec4 level; }; struct DecalBlitOut { vec4 position; vec2 uv; }; const float DECAL_LAYER_SIDE = 512.0; uniform highp sampler2D _group_0_binding_0_fs; layout(std140) uniform DecalBlitU_block_0Fragment { DecalBlitU _group_0_binding_2_fs; }; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec4 decal_source(vec2 uv) { uvec2 dims = uvec2(textureSize(_group_0_binding_0_fs, 0).xy); float side = float(max(max(dims.x, dims.y), 1u)); float _e13 = _group_0_binding_2_fs.level.x; float lod = max((_e13 + log2((side / DECAL_LAYER_SIDE))), 0.0); vec4 _e22 = textureLod(_group_0_binding_0_fs, vec2(uv), lod); return _e22; } float linear_to_srgb_channel(float c_in) { float c = clamp(c_in, 0.0, 1.0); if ((c <= 0.0031308)) { return (c * 12.92); } return ((1.055 * pow(c, 0.41666666)) - 0.055); } void main() { DecalBlitOut v = DecalBlitOut(gl_FragCoord, _vs2fs_location0); vec4 _e2 = decal_source(v.uv); _fs2p_location0 = _e2; return; } fs_decal_encodemain#version 300 es precision highp float; precision highp int; struct DecalBlitU { vec4 level; }; struct DecalBlitOut { vec4 position; vec2 uv; }; const float DECAL_LAYER_SIDE = 512.0; uniform highp sampler2D _group_0_binding_0_fs; layout(std140) uniform DecalBlitU_block_0Fragment { DecalBlitU _group_0_binding_2_fs; }; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec4 decal_source(vec2 uv) { uvec2 dims = uvec2(textureSize(_group_0_binding_0_fs, 0).xy); float side = float(max(max(dims.x, dims.y), 1u)); float _e13 = _group_0_binding_2_fs.level.x; float lod = max((_e13 + log2((side / DECAL_LAYER_SIDE))), 0.0); vec4 _e22 = textureLod(_group_0_binding_0_fs, vec2(uv), lod); return _e22; } float linear_to_srgb_channel(float c_in) { float c = clamp(c_in, 0.0, 1.0); if ((c <= 0.0031308)) { return (c * 12.92); } return ((1.055 * pow(c, 0.41666666)) - 0.055); } void main() { DecalBlitOut v_1 = DecalBlitOut(gl_FragCoord, _vs2fs_location0); vec4 _e2 = decal_source(v_1.uv); float _e4 = linear_to_srgb_channel(_e2.x); float _e6 = linear_to_srgb_channel(_e2.y); float _e8 = linear_to_srgb_channel(_e2.z); _fs2p_location0 = vec4(_e4, _e6, _e8, clamp(_e2.w, 0.0, 1.0)); return; }  "‚çOmŠ·ÑDecalBlitU_block_0Fragment_group_0_binding_0_fs vs_decal_blit vs_decal_blit fs_decal_copy fs_decal_copyfs_decal_encodefs_decal_encodes // language: metal2.2 #include #include using metal::uint; struct DecalBlitU { metal::float4 level; }; struct DecalBlitOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_6 { metal::float2 inner[3]; }; constant float DECAL_LAYER_SIDE = 512.0; metal::float4 decal_source( metal::float2 uv, metal::texture2d src, metal::sampler src_sampler, constant DecalBlitU& Blit ) { metal::uint2 dims = metal::uint2(src.get_width(0), src.get_height(0)); float side = static_cast(metal::max(metal::max(dims.x, dims.y), 1u)); float _e13 = Blit.level.x; float lod = metal::max(_e13 + metal::log2(side / DECAL_LAYER_SIDE), 0.0); metal::float4 _e22 = src.sample(src_sampler, uv, metal::level(lod)); return _e22; } float linear_to_srgb_channel( float c_in ) { float c = metal::clamp(c_in, 0.0, 1.0); if (c <= 0.0031308) { return c * 12.92; } return (1.055 * metal::pow(c, 0.41666666)) - 0.055; } struct vs_decal_blitInput { }; struct vs_decal_blitOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_decal_blitOutput vs_decal_blit( uint i [[vertex_id]] ) { type_6 corners = type_6 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; DecalBlitOut out = {}; metal::float2 p = corners.inner[metal::min(unsigned(i), 2u)]; out.position = metal::float4(p, 0.0, 1.0); out.uv = metal::float2((p.x + 1.0) * 0.5, 1.0 - ((p.y + 1.0) * 0.5)); DecalBlitOut _e33 = out; const auto _tmp = _e33; return vs_decal_blitOutput { _tmp.position, _tmp.uv }; } struct fs_decal_copyInput { metal::float2 uv_1 [[user(loc0), center_perspective]]; }; struct fs_decal_copyOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_decal_copyOutput fs_decal_copy( fs_decal_copyInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , metal::texture2d src [[texture(0)]] , metal::sampler src_sampler [[sampler(0)]] , constant DecalBlitU& Blit [[buffer(0)]] ) { const DecalBlitOut v = { position, varyings_1.uv_1 }; metal::float4 _e2 = decal_source(v.uv, src, src_sampler, Blit); return fs_decal_copyOutput { _e2 }; } struct fs_decal_encodeInput { metal::float2 uv_1 [[user(loc0), center_perspective]]; }; struct fs_decal_encodeOutput { metal::float4 member_2 [[color(0)]]; }; fragment fs_decal_encodeOutput fs_decal_encode( fs_decal_encodeInput varyings_2 [[stage_in]] , metal::float4 position_1 [[position]] , metal::texture2d src [[texture(0)]] , metal::sampler src_sampler [[sampler(0)]] , constant DecalBlitU& Blit [[buffer(0)]] ) { const DecalBlitOut v_1 = { position_1, varyings_2.uv_1 }; metal::float4 _e2 = decal_source(v_1.uv, src, src_sampler, Blit); float _e4 = linear_to_srgb_channel(_e2.x); float _e6 = linear_to_srgb_channel(_e2.y); float _e8 = linear_to_srgb_channel(_e2.z); return fs_decal_encodeOutput { metal::float4(_e4, _e6, _e8, metal::clamp(_e2.w, 0.0, 1.0)) }; }  "‚çOmŠ·Ñ vs_decal_blitmain5struct DecalBlitU { float4 level; }; struct DecalBlitOut { float4 position; float2 uv; }; static const float2 _50[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const DecalBlitOut _56 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { DecalBlitOut _out = _56; uint _60 = min(uint(gl_VertexIndex), 2u); _out.position = float4(_50[_60], 0.0f, 1.0f); _out.uv = float2((_50[_60].x + 1.0f) * 0.5f, 1.0f - ((_50[_60].y + 1.0f) * 0.5f)); gl_Position = _out.position; uv = _out.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; }  fs_decal_copymainstruct DecalBlitU { float4 level; }; struct DecalBlitOut { float4 position; float2 uv; }; cbuffer Blit : register(b0) { DecalBlitU Blit_1_m0 : packoffset(c0); }; Texture2D src : register(t0); SamplerState src_sampler : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _81; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _81 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float4 decal_source(float2 uv_1) { uint _36_dummy_parameter; uint2 _36 = spvTextureSize(src, uint(0), _36_dummy_parameter); return src.SampleLevel(src_sampler, uv_1, max(Blit_1_m0.level.x + log2(float(max(max(_36.x, _36.y), 1u)) / 512.0f), 0.0f)); } void frag_main() { DecalBlitOut _74 = { gl_FragCoord, uv }; _81 = decal_source(_74.uv); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._81 = _81; return stage_output; } fs_decal_encodemainËstruct DecalBlitU { float4 level; }; struct DecalBlitOut { float4 position; float2 uv; }; cbuffer Blit : register(b0) { DecalBlitU Blit_1_m0 : packoffset(c0); }; Texture2D src : register(t0); SamplerState src_sampler : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _81; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _81 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float4 decal_source(float2 uv_1) { uint _36_dummy_parameter; uint2 _36 = spvTextureSize(src, uint(0), _36_dummy_parameter); return src.SampleLevel(src_sampler, uv_1, max(Blit_1_m0.level.x + log2(float(max(max(_36.x, _36.y), 1u)) / 512.0f), 0.0f)); } float linear_to_srgb_channel(float c_in) { float _64 = clamp(c_in, 0.0f, 1.0f); if (_64 <= 0.003130800090730190277099609375f) { return _64 * 12.9200000762939453125f; } return (1.05499994754791259765625f * pow(_64, 0.4166666567325592041015625f)) - 0.054999999701976776123046875f; } void frag_main() { DecalBlitOut _74 = { gl_FragCoord, uv }; float4 _90 = decal_source(_74.uv); _81 = float4(linear_to_srgb_channel(_90.x), linear_to_srgb_channel(_90.y), linear_to_srgb_channel(_90.z), clamp(_90.w, 0.0f, 1.0f)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._81 = _81; return stage_output; }  "‚çOmŠ·ÑHSLT DecalBlitUlevelÿÿÿÿ Blit_blockBlitsrcÿÿÿÿ src_samplerÿÿÿÿ vs_decal_blit vs_decal_blit fs_decal_copy fs_decal_copyfs_decal_encodefs_decal_encode¬ #Ÿ2 GLSL.std.450 Qvs_decal_blitJMO �fs_decal_copyz}€ �fs_decal_encodeŠŒŽ��H#H #H #G G"G!G"G!G"G!GH#GJ *GM GOGz G}G€GŠ GŒGŽ    +   + D ; ; ;! +  ++ +!#  * +2!8+9€?+:.M;+;R¸NA+<UUÕ>+== ‡?+>®Ga=A K ;KJ N;NM P;PO!R+S€¿,TSS+U@@,VUS,WSU, XTVW+Y? [ ] . ^ `+ a e s {;{z ~;~};N€;{Š;~Œ;NŽ67ø==Aù"ø"g#$Q %$Q &$  ')%&  ()' p)(A+,=-,ˆ.) /.�0-/ 1(0!V23X431þ4867876ø5ù?ø? @+6!9¼AB@:÷CúBDCøD…E@;þEøC F@<…G=FƒHG>þH86QRøI;[ZX;]\^= LJù_ø_  b&LaA`cZb=dcPfd!9Aeg\>gfQhd�ih9…jiYQkd�lk9…mlYƒn9mPojnA`p\ >po= q\Qrq>MrAstM =utvu>tvQwq>Owý86�Røx=|z=}P y|=‚=ƒA„ù…ø…Q†y9‡†>€‡ý86�Røˆ=‹Š=�ŒP ‰‹�=�=‘A’ù“ø“Q”‰9•”Q–•9—7–Q˜•9™7˜Qš•9›7šQœ• �+œ!9Pž—™›�>Žžý8 Sb+,æÊË!hedra_engine/shaders/render/linesjÔ„áBTSR œ#œ#BÞ#SN 1rBsr5¨rÆrF2 ¥BN¥±L ÿñBAòBõ1: s/B@vs_linefs_linevs_pointfs_point GOvs_linevs_linefs_linefs_linevs_pointvs_pointfs_pointfs_pointG#struct Globals { view: mat4x4, proj: mat4x4, view_proj: mat4x4, camera_pos: vec4, viewport: vec4, wire_color: vec4, select_color: vec4, active_color: vec4, grid: vec4, params: vec4, fparams: vec4, } struct ObjectU { model: mat4x4, normal: mat4x4, color: vec4, params: vec4, extra: vec4, gi: array, 3>, decals: vec4, lights: vec4, } struct LineIn { @builtin(vertex_index) vi: u32, @location(0) a: vec3, @location(1) b: vec3, @location(2) color: vec4, @location(3) width: f32, @location(4) flags: u32, } struct LineOut { @builtin(position) clip: vec4, @location(0) @interpolate(flat) color: vec4, @location(1) world: vec3, @location(2) @interpolate(flat) flags: u32, } struct PointIn { @builtin(vertex_index) vi: u32, @location(0) pos: vec3, @location(1) size: f32, @location(2) color: vec4, @location(3) flags: u32, } struct PointOut { @builtin(position) clip: vec4, @location(0) @interpolate(flat) color: vec4, @location(1) local: vec2, @location(2) @interpolate(flat) flags: u32, } const OBJ_HAS_WEIGHTS: u32 = 1u; const OBJ_MIRRORED: u32 = 2u; const SHADE_SOLID: u32 = 0u; const SHADE_MATCAP: u32 = 1u; const SHADE_NORMALS: u32 = 2u; const SHADE_FACE_ORIENT: u32 = 3u; const SHADE_RANDOM: u32 = 4u; const SHADE_MATERIAL: u32 = 5u; const SHADE_UV_CHECKER: u32 = 6u; const SHADE_WEIGHTS: u32 = 7u; const SHADE_LIT: u32 = 8u; const SHADE_LIGHTMAP: u32 = 9u; const SHADE_LIGHT_COUNT: u32 = 10u; const OV_SELECTION: u32 = 1u; const OV_SEAMS: u32 = 2u; const OV_SHARP: u32 = 4u; const F_SELECTED: u32 = 1u; const F_HIDDEN: u32 = 2u; const F_SEAM: u32 = 4u; const F_SHARP: u32 = 8u; const F_MESH: u32 = 16u; const F_FADE: u32 = 32u; const F_NO_PULL: u32 = 64u; const NEAR_W: f32 = 0.0001f; @group(0) @binding(0) var G: Globals; @group(1) @binding(0) var O: ObjectU; fn srgb_to_linear(c_2: vec3) -> vec3 { let lo = (c_2 / vec3(12.92f)); let hi = pow(((c_2 + vec3(0.055f)) / vec3(1.055f)), vec3(2.4f)); return select(hi, lo, (c_2 <= vec3(0.04045f))); } fn element_color(flags: u32, fallback: vec4) -> vec4 { var local_1: bool; var local_2: bool; if ((flags & F_MESH) == 0u) { return fallback; } let overlays = G.params.y; let _e13 = O.params.w; let edit_object = (_e13 == 1u); if ((flags & F_SEAM) != 0u) { local_1 = ((overlays & OV_SEAMS) != 0u); } else { local_1 = false; } let _e27 = local_1; if _e27 { let _e32 = srgb_to_linear(vec3(0.86f, 0f, 0f)); return vec4(_e32, 1f); } if ((flags & F_SHARP) != 0u) { local_2 = ((overlays & OV_SHARP) != 0u); } else { local_2 = false; } let _e46 = local_2; if _e46 { let _e51 = srgb_to_linear(vec3(0f, 0.85f, 0.9f)); return vec4(_e51, 1f); } if ((overlays & OV_SELECTION) != 0u) { if edit_object { if ((flags & F_SELECTED) != 0u) { let _e64 = G.select_color; return _e64; } let _e67 = G.wire_color; return _e67; } let _e71 = O.params.x; if (_e71 == 1u) { let _e76 = G.select_color; let _e79 = G.active_color; let _e83 = O.params.y; return select(_e76, _e79, (_e83 == 1u)); } } let _e89 = G.wire_color; return _e89; } fn to_view(p: vec3, pull: f32) -> vec4 { var v: vec4; let _e4 = G.view; let _e7 = O.model; v = ((_e4 * _e7) * vec4(p, 1f)); let _e15 = v.z; v.z = (_e15 * (1f - pull)); let _e19 = v; return _e19; } fn linear_to_srgb(c_3: vec3) -> vec3 { let lo_1 = (c_3 * 12.92f); let hi_1 = ((1.055f * pow(c_3, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (c_3 <= vec3(0.0031308f))); } fn target_color(c_4: vec4) -> vec4 { let k = clamp(c_4, vec4(0f), vec4(1f)); let _e9 = G.fparams.w; if (_e9 > 0.5f) { let _e13 = linear_to_srgb(k.xyz); return vec4(_e13, k.w); } return k; } @vertex fn vs_line(in: LineIn) -> LineOut { var out: LineOut; var ca: vec4; var cb: vec4; var local: bool; var dir: vec2; var table: array = array(0u, 1u, 2u, 2u, 1u, 3u); out.flags = in.flags; let _e7 = element_color(in.flags, in.color); out.color = _e7; let _e11 = G.fparams.x; let pull_1 = select(_e11, 0f, ((in.flags & F_NO_PULL) != 0u)); let _e21 = G.proj; let _e23 = to_view(in.a, pull_1); ca = (_e21 * _e23); let _e28 = G.proj; let _e30 = to_view(in.b, pull_1); cb = (_e28 * _e30); let _e34 = ca.w; if (_e34 < NEAR_W) { let _e40 = cb.w; local = (_e40 < NEAR_W); } else { local = false; } let _e44 = local; if _e44 { out.clip = vec4(0f, 0f, 2f, 1f); let _e51 = out; return _e51; } let _e53 = ca.w; if (_e53 < NEAR_W) { let _e56 = ca; let _e57 = cb; let _e60 = ca.w; let _e63 = cb.w; let _e65 = ca.w; ca = mix(_e56, _e57, ((NEAR_W - _e60) / (_e63 - _e65))); } else { let _e70 = cb.w; if (_e70 < NEAR_W) { let _e73 = cb; let _e74 = ca; let _e77 = cb.w; let _e80 = ca.w; let _e82 = cb.w; cb = mix(_e73, _e74, ((NEAR_W - _e77) / (_e80 - _e82))); } } let _e88 = G.viewport; let half_vp = (0.5f * _e88.xy); let _e92 = ca; let _e95 = ca.w; let sa = ((_e92.xy / vec2(_e95)) * half_vp); let _e99 = cb; let _e102 = cb.w; let sb = ((_e99.xy / vec2(_e102)) * half_vp); dir = (sb - sa); let _e108 = dir; let len = length(_e108); if (len < 0.00001f) { dir = vec2(1f, 0f); } else { let _e115 = dir; dir = (_e115 / vec2(len)); } let _e119 = dir.y; let _e122 = dir.x; let nrm = vec2(-(_e119), _e122); let _e132 = G.fparams.z; let hw = ((max(in.width, 0.6f) * 0.5f) * _e132); let idx = table[in.vi]; let at_b = ((idx & 2u) != 0u); let side = select(-1f, 1f, ((idx & 1u) != 0u)); let base = select(sa, sb, at_b); let _e157 = dir; let _e159 = dir; let cap = (select(-(_e157), _e159, at_b) * hw); let px = ((base + cap) + ((nrm * side) * hw)); let _e166 = ca; let _e167 = cb; let c_5 = select(_e166, _e167, at_b); out.clip = vec4(((px / half_vp) * c_5.w), c_5.z, c_5.w); let p_1 = select(in.a, in.b, at_b); let _e182 = O.model; out.world = (_e182 * vec4(p_1, 1f)).xyz; let _e187 = out; return _e187; } @fragment fn fs_line(in_1: LineOut) -> @location(0) vec4 { var c: vec4; if ((in_1.flags & F_HIDDEN) != 0u) { discard; } c = in_1.color; if ((in_1.flags & F_FADE) != 0u) { let _e17 = G.grid; let d = length((in_1.world.xy - _e17.xy)); let _e23 = c.w; let _e27 = G.grid.w; let _e33 = G.grid.w; c.w = (_e23 * (1f - smoothstep((_e27 * 0.45f), _e33, d))); } let _e38 = c; let _e39 = target_color(_e38); return _e39; } @vertex fn vs_point(in_2: PointIn) -> PointOut { var out_1: PointOut; var table_1: array, 6> = array, 6>(vec2(-1f, -1f), vec2(1f, -1f), vec2(-1f, 1f), vec2(-1f, 1f), vec2(1f, -1f), vec2(1f, 1f)); out_1.flags = in_2.flags; let _e7 = element_color(in_2.flags, in_2.color); out_1.color = _e7; let _e11 = G.fparams.x; let pull_2 = select(_e11, 0f, ((in_2.flags & F_NO_PULL) != 0u)); let _e21 = G.proj; let _e23 = to_view(in_2.pos, pull_2); let c_6 = (_e21 * _e23); if (c_6.w < NEAR_W) { out_1.clip = vec4(0f, 0f, 2f, 1f); out_1.local = vec2(0f); let _e37 = out_1; return _e37; } let corner = table_1[in_2.vi]; let _e63 = G.viewport; let half_vp_1 = (0.5f * _e63.xy); let _e75 = G.fparams.z; let r = (((max(in_2.size, 1f) * 0.5f) * _e75) + 0.5f); let px_1 = (((c_6.xy / vec2(c_6.w)) * half_vp_1) + (corner * r)); out_1.clip = vec4(((px_1 / half_vp_1) * c_6.w), c_6.z, c_6.w); out_1.local = corner; let _e94 = out_1; return _e94; } @fragment fn fs_point(in_3: PointOut) -> @location(0) vec4 { var c_1: vec4; if ((in_3.flags & F_HIDDEN) != 0u) { discard; } let d_1 = length(in_3.local); if (d_1 > 1f) { discard; } c_1 = in_3.color; let _e14 = c_1.w; c_1.w = (_e14 * (1f - smoothstep(0.75f, 1f, d_1))); let _e21 = c_1; let _e22 = target_color(_e21); return _e22; }  @‡ŒwfD4K([‰‡7 õvs_linemain¿#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LineIn { uint vi; vec3 a; vec3 b; vec4 color; float width; uint flags; }; struct LineOut { vec4 clip; vec4 color; vec3 world; uint flags; }; struct PointIn { uint vi; vec3 pos; float size; vec4 color; uint flags; }; struct PointOut { vec4 clip; vec4 color; vec2 local; uint flags; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const float NEAR_W = 0.0001; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec4 _p2vs_location2; layout(location = 3) in float _p2vs_location3; layout(location = 4) in uint _p2vs_location4; flat out vec4 _vs2fs_location0; smooth out vec3 _vs2fs_location1; flat out uint _vs2fs_location2; vec3 srgb_to_linear(vec3 c_2) { vec3 lo = (c_2 / vec3(12.92)); vec3 hi = pow(((c_2 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_2, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_1 = false; bool local_2 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_1 = ((overlays & OV_SEAMS) != 0u); } else { local_1 = false; } bool _e27 = local_1; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_2 = ((overlays & OV_SHARP) != 0u); } else { local_2 = false; } bool _e46 = local_2; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_3) { vec3 lo_1 = (c_3 * 12.92); vec3 hi_1 = ((1.055 * pow(c_3, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_3, vec3(0.0031308))); } vec4 target_color(vec4 c_4) { vec4 k = clamp(c_4, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k.xyz); return vec4(_e13, k.w); } return k; } void main() { LineIn in_ = LineIn(uint(gl_VertexID), _p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4); LineOut out_ = LineOut(vec4(0.0), vec4(0.0), vec3(0.0), 0u); vec4 ca = vec4(0.0); vec4 cb = vec4(0.0); bool local = false; vec2 dir = vec2(0.0); uint table[6] = uint[6](0u, 1u, 2u, 2u, 1u, 3u); out_.flags = in_.flags; vec4 _e7 = element_color(in_.flags, in_.color); out_.color = _e7; float _e11 = _group_0_binding_0_vs.fparams.x; float pull_1 = (((in_.flags & F_NO_PULL) != 0u) ? 0.0 : _e11); mat4x4 _e21 = _group_0_binding_0_vs.proj; vec4 _e23 = to_view(in_.a, pull_1); ca = (_e21 * _e23); mat4x4 _e28 = _group_0_binding_0_vs.proj; vec4 _e30 = to_view(in_.b, pull_1); cb = (_e28 * _e30); float _e34 = ca.w; if ((_e34 < NEAR_W)) { float _e40 = cb.w; local = (_e40 < NEAR_W); } else { local = false; } bool _e44 = local; if (_e44) { out_.clip = vec4(0.0, 0.0, 2.0, 1.0); LineOut _e51 = out_; gl_Position = _e51.clip; _vs2fs_location0 = _e51.color; _vs2fs_location1 = _e51.world; _vs2fs_location2 = _e51.flags; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } float _e53 = ca.w; if ((_e53 < NEAR_W)) { vec4 _e56 = ca; vec4 _e57 = cb; float _e60 = ca.w; float _e63 = cb.w; float _e65 = ca.w; ca = mix(_e56, _e57, ((NEAR_W - _e60) / (_e63 - _e65))); } else { float _e70 = cb.w; if ((_e70 < NEAR_W)) { vec4 _e73 = cb; vec4 _e74 = ca; float _e77 = cb.w; float _e80 = ca.w; float _e82 = cb.w; cb = mix(_e73, _e74, ((NEAR_W - _e77) / (_e80 - _e82))); } } vec4 _e88 = _group_0_binding_0_vs.viewport; vec2 half_vp = (0.5 * _e88.xy); vec4 _e92 = ca; float _e95 = ca.w; vec2 sa = ((_e92.xy / vec2(_e95)) * half_vp); vec4 _e99 = cb; float _e102 = cb.w; vec2 sb = ((_e99.xy / vec2(_e102)) * half_vp); dir = (sb - sa); vec2 _e108 = dir; float len = length(_e108); if ((len < 1e-5)) { dir = vec2(1.0, 0.0); } else { vec2 _e115 = dir; dir = (_e115 / vec2(len)); } float _e119 = dir.y; float _e122 = dir.x; vec2 nrm = vec2(-(_e119), _e122); float _e132 = _group_0_binding_0_vs.fparams.z; float hw = ((max(in_.width, 0.6) * 0.5) * _e132); uint idx = table[in_.vi]; bool at_b = ((idx & 2u) != 0u); float side = (((idx & 1u) != 0u) ? 1.0 : -1.0); vec2 base = (at_b ? sb : sa); vec2 _e157 = dir; vec2 _e159 = dir; vec2 cap = ((at_b ? _e159 : -(_e157)) * hw); vec2 px = ((base + cap) + ((nrm * side) * hw)); vec4 _e166 = ca; vec4 _e167 = cb; vec4 c_5 = (at_b ? _e167 : _e166); out_.clip = vec4(((px / half_vp) * c_5.w), c_5.z, c_5.w); vec3 p_1 = (at_b ? in_.b : in_.a); mat4x4 _e182 = _group_1_binding_0_vs.model; out_.world = (_e182 * vec4(p_1, 1.0)).xyz; LineOut _e187 = out_; gl_Position = _e187.clip; _vs2fs_location0 = _e187.color; _vs2fs_location1 = _e187.world; _vs2fs_location2 = _e187.flags; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_linemainò #version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LineIn { uint vi; vec3 a; vec3 b; vec4 color; float width; uint flags; }; struct LineOut { vec4 clip; vec4 color; vec3 world; uint flags; }; struct PointIn { uint vi; vec3 pos; float size; vec4 color; uint flags; }; struct PointOut { vec4 clip; vec4 color; vec2 local; uint flags; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const float NEAR_W = 0.0001; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; flat in vec4 _vs2fs_location0; smooth in vec3 _vs2fs_location1; flat in uint _vs2fs_location2; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_2) { vec3 lo = (c_2 / vec3(12.92)); vec3 hi = pow(((c_2 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_2, vec3(0.04045))); } vec3 linear_to_srgb(vec3 c_3) { vec3 lo_1 = (c_3 * 12.92); vec3 hi_1 = ((1.055 * pow(c_3, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_3, vec3(0.0031308))); } vec4 target_color(vec4 c_4) { vec4 k = clamp(c_4, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k.xyz); return vec4(_e13, k.w); } return k; } void main() { LineOut in_1 = LineOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2); vec4 c = vec4(0.0); if (((in_1.flags & F_HIDDEN) != 0u)) { discard; } c = in_1.color; if (((in_1.flags & F_FADE) != 0u)) { vec4 _e17 = _group_0_binding_0_fs.grid; float d = length((in_1.world.xy - _e17.xy)); float _e23 = c.w; float _e27 = _group_0_binding_0_fs.grid.w; float _e33 = _group_0_binding_0_fs.grid.w; c.w = (_e23 * (1.0 - smoothstep((_e27 * 0.45), _e33, d))); } vec4 _e38 = c; vec4 _e39 = target_color(_e38); _fs2p_location0 = _e39; return; } vs_pointmain#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LineIn { uint vi; vec3 a; vec3 b; vec4 color; float width; uint flags; }; struct LineOut { vec4 clip; vec4 color; vec3 world; uint flags; }; struct PointIn { uint vi; vec3 pos; float size; vec4 color; uint flags; }; struct PointOut { vec4 clip; vec4 color; vec2 local; uint flags; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const float NEAR_W = 0.0001; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in float _p2vs_location1; layout(location = 2) in vec4 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; flat out vec4 _vs2fs_location0; smooth out vec2 _vs2fs_location1; flat out uint _vs2fs_location2; vec3 srgb_to_linear(vec3 c_2) { vec3 lo = (c_2 / vec3(12.92)); vec3 hi = pow(((c_2 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_2, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_1 = false; bool local_2 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_1 = ((overlays & OV_SEAMS) != 0u); } else { local_1 = false; } bool _e27 = local_1; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_2 = ((overlays & OV_SHARP) != 0u); } else { local_2 = false; } bool _e46 = local_2; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_3) { vec3 lo_1 = (c_3 * 12.92); vec3 hi_1 = ((1.055 * pow(c_3, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_3, vec3(0.0031308))); } vec4 target_color(vec4 c_4) { vec4 k = clamp(c_4, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k.xyz); return vec4(_e13, k.w); } return k; } void main() { PointIn in_2 = PointIn(uint(gl_VertexID), _p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3); PointOut out_1 = PointOut(vec4(0.0), vec4(0.0), vec2(0.0), 0u); vec2 table_1[6] = vec2[6](vec2(-1.0, -1.0), vec2(1.0, -1.0), vec2(-1.0, 1.0), vec2(-1.0, 1.0), vec2(1.0, -1.0), vec2(1.0, 1.0)); out_1.flags = in_2.flags; vec4 _e7 = element_color(in_2.flags, in_2.color); out_1.color = _e7; float _e11 = _group_0_binding_0_vs.fparams.x; float pull_1 = (((in_2.flags & F_NO_PULL) != 0u) ? 0.0 : _e11); mat4x4 _e21 = _group_0_binding_0_vs.proj; vec4 _e23 = to_view(in_2.pos, pull_1); vec4 c_5 = (_e21 * _e23); if ((c_5.w < NEAR_W)) { out_1.clip = vec4(0.0, 0.0, 2.0, 1.0); out_1.local = vec2(0.0); PointOut _e37 = out_1; gl_Position = _e37.clip; _vs2fs_location0 = _e37.color; _vs2fs_location1 = _e37.local; _vs2fs_location2 = _e37.flags; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vec2 corner = table_1[in_2.vi]; vec4 _e63 = _group_0_binding_0_vs.viewport; vec2 half_vp = (0.5 * _e63.xy); float _e75 = _group_0_binding_0_vs.fparams.z; float r = (((max(in_2.size, 1.0) * 0.5) * _e75) + 0.5); vec2 px = (((c_5.xy / vec2(c_5.w)) * half_vp) + (corner * r)); out_1.clip = vec4(((px / half_vp) * c_5.w), c_5.z, c_5.w); out_1.local = corner; PointOut _e94 = out_1; gl_Position = _e94.clip; _vs2fs_location0 = _e94.color; _vs2fs_location1 = _e94.local; _vs2fs_location2 = _e94.flags; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_pointmain@ #version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LineIn { uint vi; vec3 a; vec3 b; vec4 color; float width; uint flags; }; struct LineOut { vec4 clip; vec4 color; vec3 world; uint flags; }; struct PointIn { uint vi; vec3 pos; float size; vec4 color; uint flags; }; struct PointOut { vec4 clip; vec4 color; vec2 local; uint flags; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const float NEAR_W = 0.0001; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; flat in vec4 _vs2fs_location0; smooth in vec2 _vs2fs_location1; flat in uint _vs2fs_location2; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_2) { vec3 lo = (c_2 / vec3(12.92)); vec3 hi = pow(((c_2 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_2, vec3(0.04045))); } vec3 linear_to_srgb(vec3 c_3) { vec3 lo_1 = (c_3 * 12.92); vec3 hi_1 = ((1.055 * pow(c_3, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_3, vec3(0.0031308))); } vec4 target_color(vec4 c_4) { vec4 k = clamp(c_4, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k.xyz); return vec4(_e13, k.w); } return k; } void main() { PointOut in_3 = PointOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2); vec4 c_1 = vec4(0.0); if (((in_3.flags & F_HIDDEN) != 0u)) { discard; } float d = length(in_3.local); if ((d > 1.0)) { discard; } c_1 = in_3.color; float _e14 = c_1.w; c_1.w = (_e14 * (1.0 - smoothstep(0.75, 1.0, d))); vec4 _e21 = c_1; vec4 _e22 = target_color(_e21); _fs2p_location0 = _e22; return; }  @‡ŒwfD4K³O~ÑWµ¸Globals_block_0VertexObjectU_block_1VertexGlobals_block_0Fragmentvs_linevs_linefs_linefs_linevs_pointvs_pointfs_pointfs_pointñ1// language: metal2.2 #include #include using metal::uint; struct Globals { metal::float4x4 view; metal::float4x4 proj; metal::float4x4 view_proj; metal::float4 camera_pos; metal::float4 viewport; metal::float4 wire_color; metal::float4 select_color; metal::float4 active_color; metal::float4 grid; metal::uint4 params; metal::float4 fparams; }; struct type_5 { metal::float4 inner[3]; }; struct ObjectU { metal::float4x4 model; metal::float4x4 normal; metal::float4 color; metal::uint4 params; metal::uint4 extra; type_5 gi; metal::uint4 decals; metal::uint4 lights; }; struct LineIn { uint vi; char _pad1[12]; metal::float3 a; metal::float3 b; metal::float4 color; float width; uint flags; char _pad6[8]; }; struct LineOut { metal::float4 clip; metal::float4 color; metal::packed_float3 world; uint flags; }; struct type_9 { uint inner[6]; }; struct PointIn { uint vi; char _pad1[12]; metal::packed_float3 pos; float size; metal::float4 color; uint flags; char _pad5[12]; }; struct PointOut { metal::float4 clip; metal::float4 color; metal::float2 local; uint flags; char _pad4[4]; }; struct type_10 { metal::float2 inner[6]; }; constant uint OBJ_HAS_WEIGHTS = 1u; constant uint OBJ_MIRRORED = 2u; constant uint SHADE_SOLID = 0u; constant uint SHADE_MATCAP = 1u; constant uint SHADE_NORMALS = 2u; constant uint SHADE_FACE_ORIENT = 3u; constant uint SHADE_RANDOM = 4u; constant uint SHADE_MATERIAL = 5u; constant uint SHADE_UV_CHECKER = 6u; constant uint SHADE_WEIGHTS = 7u; constant uint SHADE_LIT = 8u; constant uint SHADE_LIGHTMAP = 9u; constant uint SHADE_LIGHT_COUNT = 10u; constant uint OV_SELECTION = 1u; constant uint OV_SEAMS = 2u; constant uint OV_SHARP = 4u; constant uint F_SELECTED = 1u; constant uint F_HIDDEN = 2u; constant uint F_SEAM = 4u; constant uint F_SHARP = 8u; constant uint F_MESH = 16u; constant uint F_FADE = 32u; constant uint F_NO_PULL = 64u; constant float NEAR_W = 0.0001; metal::float3 srgb_to_linear( metal::float3 c_2 ) { metal::float3 lo = c_2 / metal::float3(12.92); metal::float3 hi = metal::pow((c_2 + metal::float3(0.055)) / metal::float3(1.055), metal::float3(2.4)); return metal::select(hi, lo, c_2 <= metal::float3(0.04045)); } metal::float4 element_color( uint flags, metal::float4 fallback, constant Globals& G, constant ObjectU& O ) { bool local_1 = {}; bool local_2 = {}; if ((flags & F_MESH) == 0u) { return fallback; } uint overlays = G.params.y; uint _e13 = O.params.w; bool edit_object = _e13 == 1u; if ((flags & F_SEAM) != 0u) { local_1 = (overlays & OV_SEAMS) != 0u; } else { local_1 = false; } bool _e27 = local_1; if (_e27) { metal::float3 _e32 = srgb_to_linear(metal::float3(0.86, 0.0, 0.0)); return metal::float4(_e32, 1.0); } if ((flags & F_SHARP) != 0u) { local_2 = (overlays & OV_SHARP) != 0u; } else { local_2 = false; } bool _e46 = local_2; if (_e46) { metal::float3 _e51 = srgb_to_linear(metal::float3(0.0, 0.85, 0.9)); return metal::float4(_e51, 1.0); } if ((overlays & OV_SELECTION) != 0u) { if (edit_object) { if ((flags & F_SELECTED) != 0u) { metal::float4 _e64 = G.select_color; return _e64; } metal::float4 _e67 = G.wire_color; return _e67; } uint _e71 = O.params.x; if (_e71 == 1u) { metal::float4 _e76 = G.select_color; metal::float4 _e79 = G.active_color; uint _e83 = O.params.y; return (_e83 == 1u) ? _e79 : _e76; } } metal::float4 _e89 = G.wire_color; return _e89; } metal::float4 to_view( metal::float3 p, float pull, constant Globals& G, constant ObjectU& O ) { metal::float4 v = {}; metal::float4x4 _e4 = G.view; metal::float4x4 _e7 = O.model; v = (_e4 * _e7) * metal::float4(p, 1.0); float _e15 = v.z; v.z = _e15 * (1.0 - pull); metal::float4 _e19 = v; return _e19; } metal::float3 linear_to_srgb( metal::float3 c_3 ) { metal::float3 lo_1 = c_3 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(c_3, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, c_3 <= metal::float3(0.0031308)); } metal::float4 target_color( metal::float4 c_4, constant Globals& G ) { metal::float4 k = metal::clamp(c_4, metal::float4(0.0), metal::float4(1.0)); float _e9 = G.fparams.w; if (_e9 > 0.5) { metal::float3 _e13 = linear_to_srgb(k.xyz); return metal::float4(_e13, k.w); } return k; } struct vs_lineInput { metal::float3 a [[attribute(0)]]; metal::float3 b [[attribute(1)]]; metal::float4 color [[attribute(2)]]; float width [[attribute(3)]]; uint flags_1 [[attribute(4)]]; }; struct vs_lineOutput { metal::float4 clip [[position]]; metal::float4 color [[user(loc0), flat]]; metal::float3 world [[user(loc1), center_perspective]]; uint flags [[user(loc2), flat]]; }; vertex vs_lineOutput vs_line( vs_lineInput varyings [[stage_in]] , uint vi [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(1)]] ) { const LineIn in = { vi, {}, varyings.a, varyings.b, varyings.color, varyings.width, varyings.flags_1 }; LineOut out = {}; metal::float4 ca = {}; metal::float4 cb = {}; bool local = {}; metal::float2 dir = {}; type_9 table = type_9 {{0u, 1u, 2u, 2u, 1u, 3u}}; out.flags = in.flags; metal::float4 _e7 = element_color(in.flags, in.color, G, O); out.color = _e7; float _e11 = G.fparams.x; float pull_1 = ((in.flags & F_NO_PULL) != 0u) ? 0.0 : _e11; metal::float4x4 _e21 = G.proj; metal::float4 _e23 = to_view(in.a, pull_1, G, O); ca = _e21 * _e23; metal::float4x4 _e28 = G.proj; metal::float4 _e30 = to_view(in.b, pull_1, G, O); cb = _e28 * _e30; float _e34 = ca.w; if (_e34 < NEAR_W) { float _e40 = cb.w; local = _e40 < NEAR_W; } else { local = false; } bool _e44 = local; if (_e44) { out.clip = metal::float4(0.0, 0.0, 2.0, 1.0); LineOut _e51 = out; const auto _tmp = _e51; return vs_lineOutput { _tmp.clip, _tmp.color, _tmp.world, _tmp.flags }; } float _e53 = ca.w; if (_e53 < NEAR_W) { metal::float4 _e56 = ca; metal::float4 _e57 = cb; float _e60 = ca.w; float _e63 = cb.w; float _e65 = ca.w; ca = metal::mix(_e56, _e57, (NEAR_W - _e60) / (_e63 - _e65)); } else { float _e70 = cb.w; if (_e70 < NEAR_W) { metal::float4 _e73 = cb; metal::float4 _e74 = ca; float _e77 = cb.w; float _e80 = ca.w; float _e82 = cb.w; cb = metal::mix(_e73, _e74, (NEAR_W - _e77) / (_e80 - _e82)); } } metal::float4 _e88 = G.viewport; metal::float2 half_vp = 0.5 * _e88.xy; metal::float4 _e92 = ca; float _e95 = ca.w; metal::float2 sa = (_e92.xy / metal::float2(_e95)) * half_vp; metal::float4 _e99 = cb; float _e102 = cb.w; metal::float2 sb = (_e99.xy / metal::float2(_e102)) * half_vp; dir = sb - sa; metal::float2 _e108 = dir; float len = metal::length(_e108); if (len < 0.00001) { dir = metal::float2(1.0, 0.0); } else { metal::float2 _e115 = dir; dir = _e115 / metal::float2(len); } float _e119 = dir.y; float _e122 = dir.x; metal::float2 nrm = metal::float2(-(_e119), _e122); float _e132 = G.fparams.z; float hw = (metal::max(in.width, 0.6) * 0.5) * _e132; uint idx = table.inner[metal::min(unsigned(in.vi), 5u)]; bool at_b = (idx & 2u) != 0u; float side = ((idx & 1u) != 0u) ? 1.0 : -1.0; metal::float2 base = at_b ? sb : sa; metal::float2 _e157 = dir; metal::float2 _e159 = dir; metal::float2 cap = (at_b ? _e159 : -(_e157)) * hw; metal::float2 px = (base + cap) + ((nrm * side) * hw); metal::float4 _e166 = ca; metal::float4 _e167 = cb; metal::float4 c_5 = at_b ? _e167 : _e166; out.clip = metal::float4((px / half_vp) * c_5.w, c_5.z, c_5.w); metal::float3 p_1 = at_b ? in.b : in.a; metal::float4x4 _e182 = O.model; out.world = (_e182 * metal::float4(p_1, 1.0)).xyz; LineOut _e187 = out; const auto _tmp_1 = _e187; return vs_lineOutput { _tmp_1.clip, _tmp_1.color, _tmp_1.world, _tmp_1.flags }; } struct fs_lineInput { metal::float4 color [[user(loc0), flat]]; metal::float3 world [[user(loc1), center_perspective]]; uint flags_1 [[user(loc2), flat]]; }; struct fs_lineOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_lineOutput fs_line( fs_lineInput varyings_1 [[stage_in]] , metal::float4 clip [[position]] , constant Globals& G [[buffer(0)]] ) { const LineOut in_1 = { clip, varyings_1.color, varyings_1.world, varyings_1.flags_1 }; metal::float4 c = {}; if ((in_1.flags & F_HIDDEN) != 0u) { metal::discard_fragment(); } c = in_1.color; if ((in_1.flags & F_FADE) != 0u) { metal::float4 _e17 = G.grid; float d = metal::length(metal::float3(in_1.world).xy - _e17.xy); float _e23 = c.w; float _e27 = G.grid.w; float _e33 = G.grid.w; c.w = _e23 * (1.0 - metal::smoothstep(_e27 * 0.45, _e33, d)); } metal::float4 _e38 = c; metal::float4 _e39 = target_color(_e38, G); return fs_lineOutput { _e39 }; } struct vs_pointInput { metal::float3 pos [[attribute(0)]]; float size [[attribute(1)]]; metal::float4 color [[attribute(2)]]; uint flags_1 [[attribute(3)]]; }; struct vs_pointOutput { metal::float4 clip [[position]]; metal::float4 color [[user(loc0), flat]]; metal::float2 local [[user(loc1), center_perspective]]; uint flags [[user(loc2), flat]]; }; vertex vs_pointOutput vs_point( vs_pointInput varyings_2 [[stage_in]] , uint vi_1 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(1)]] ) { const PointIn in_2 = { vi_1, {}, varyings_2.pos, varyings_2.size, varyings_2.color, varyings_2.flags_1 }; PointOut out_1 = {}; type_10 table_1 = type_10 {{metal::float2(-1.0, -1.0), metal::float2(1.0, -1.0), metal::float2(-1.0, 1.0), metal::float2(-1.0, 1.0), metal::float2(1.0, -1.0), metal::float2(1.0, 1.0)}}; out_1.flags = in_2.flags; metal::float4 _e7 = element_color(in_2.flags, in_2.color, G, O); out_1.color = _e7; float _e11 = G.fparams.x; float pull_2 = ((in_2.flags & F_NO_PULL) != 0u) ? 0.0 : _e11; metal::float4x4 _e21 = G.proj; metal::float4 _e23 = to_view(in_2.pos, pull_2, G, O); metal::float4 c_6 = _e21 * _e23; if (c_6.w < NEAR_W) { out_1.clip = metal::float4(0.0, 0.0, 2.0, 1.0); out_1.local = metal::float2(0.0); PointOut _e37 = out_1; const auto _tmp_2 = _e37; return vs_pointOutput { _tmp_2.clip, _tmp_2.color, _tmp_2.local, _tmp_2.flags }; } metal::float2 corner = table_1.inner[metal::min(unsigned(in_2.vi), 5u)]; metal::float4 _e63 = G.viewport; metal::float2 half_vp_1 = 0.5 * _e63.xy; float _e75 = G.fparams.z; float r = ((metal::max(in_2.size, 1.0) * 0.5) * _e75) + 0.5; metal::float2 px_1 = ((c_6.xy / metal::float2(c_6.w)) * half_vp_1) + (corner * r); out_1.clip = metal::float4((px_1 / half_vp_1) * c_6.w, c_6.z, c_6.w); out_1.local = corner; PointOut _e94 = out_1; const auto _tmp_3 = _e94; return vs_pointOutput { _tmp_3.clip, _tmp_3.color, _tmp_3.local, _tmp_3.flags }; } struct fs_pointInput { metal::float4 color [[user(loc0), flat]]; metal::float2 local_3 [[user(loc1), center_perspective]]; uint flags_1 [[user(loc2), flat]]; }; struct fs_pointOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_pointOutput fs_point( fs_pointInput varyings_3 [[stage_in]] , metal::float4 clip_1 [[position]] , constant Globals& G [[buffer(0)]] ) { const PointOut in_3 = { clip_1, varyings_3.color, varyings_3.local_3, varyings_3.flags_1 }; metal::float4 c_1 = {}; if ((in_3.flags & F_HIDDEN) != 0u) { metal::discard_fragment(); } float d_1 = metal::length(in_3.local); if (d_1 > 1.0) { metal::discard_fragment(); } c_1 = in_3.color; float _e14 = c_1.w; c_1.w = _e14 * (1.0 - metal::smoothstep(0.75, 1.0, d_1)); metal::float4 _e21 = c_1; metal::float4 _e22 = target_color(_e21, G); return fs_pointOutput { _e22 }; }  @‡ŒwfD4K³O~ÑWµ¸vs_linemainrstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LineIn { uint vi; float3 a; float3 b; float4 color; float width; uint flags; }; struct LineOut { float4 clip; float4 color; float3 world; uint flags; }; struct PointIn { uint vi; float3 pos; float size; float4 color; uint flags; }; struct PointOut { float4 clip; float4 color; float2 local; uint flags; }; static const uint _247[6] = { 0u, 1u, 2u, 2u, 1u, 3u }; static const LineOut _251 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0u }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b1) { ObjectU O_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 a; static float3 b; static float4 color; static float width; static uint flags; static float4 color_1; static float3 world; static uint flags_1; struct SPIRV_Cross_Input { float3 a : TEXCOORD0; float3 b : TEXCOORD1; float4 color : TEXCOORD2; float width : TEXCOORD3; uint flags : TEXCOORD4; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { nointerpolation float4 color_1 : TEXCOORD0; float3 world : TEXCOORD1; nointerpolation uint flags_1 : TEXCOORD2; float4 gl_Position : SV_Position; }; float3 srgb_to_linear(float3 c) { float3 _56 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _59 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _61 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_61.x ? _56.x : _59.x, _61.y ? _56.y : _59.y, _61.z ? _56.z : _59.z); } float4 element_color(uint flags_2, float4 fallback) { bool _80 = false; bool _83 = false; if ((flags_2 & 16u) == 0u) { return fallback; } if ((flags_2 & 4u) != 0u) { _80 = (G_1_m0.params.y & 2u) != 0u; } else { _80 = false; } if (_80) { return float4(srgb_to_linear(float3(0.86000001430511474609375f, 0.0f, 0.0f)), 1.0f); } if ((flags_2 & 8u) != 0u) { _83 = (G_1_m0.params.y & 4u) != 0u; } else { _83 = false; } if (_83) { return float4(srgb_to_linear(float3(0.0f, 0.85000002384185791015625f, 0.89999997615814208984375f)), 1.0f); } if ((G_1_m0.params.y & 1u) != 0u) { if (O_1_m0.params.w == 1u) { if ((flags_2 & 1u) != 0u) { return G_1_m0.select_color; } return G_1_m0.wire_color; } if (O_1_m0.params.x == 1u) { bool _147 = O_1_m0.params.y == 1u; bool4 _150 = bool4(_147, _147, _147, _147); return float4(_150.x ? G_1_m0.active_color.x : G_1_m0.select_color.x, _150.y ? G_1_m0.active_color.y : G_1_m0.select_color.y, _150.z ? G_1_m0.active_color.z : G_1_m0.select_color.z, _150.w ? G_1_m0.active_color.w : G_1_m0.select_color.w); } } return G_1_m0.wire_color; } float4 to_view(float3 p, float pull) { float4 v = float4(0.0f, 0.0f, 0.0f, 0.0f); v = mul(float4(p, 1.0f), mul(O_1_m0.model, G_1_m0.view)); v.z *= (1.0f - pull); return v; } void vert_main() { float2 dir = float2(0.0f, 0.0f); float4 ca = float4(0.0f, 0.0f, 0.0f, 0.0f); bool _256 = false; LineOut _out = _251; float4 cb = float4(0.0f, 0.0f, 0.0f, 0.0f); LineIn _214 = { uint(gl_VertexIndex), a, b, color, width, flags }; _out.flags = _214.flags; _out.color = element_color(_214.flags, _214.color); float _276 = ((_214.flags & 64u) != 0u) ? 0.0f : G_1_m0.fparams.x; ca = mul(to_view(_214.a, _276), G_1_m0.proj); cb = mul(to_view(_214.b, _276), G_1_m0.proj); if (ca.w < 9.9999997473787516355514526367188e-05f) { _256 = cb.w < 9.9999997473787516355514526367188e-05f; } else { _256 = false; } if (_256) { _out.clip = float4(0.0f, 0.0f, 2.0f, 1.0f); LineOut _301 = _out; gl_Position = _301.clip; color_1 = _301.color; world = _301.world; flags_1 = _301.flags; return; } if (ca.w < 9.9999997473787516355514526367188e-05f) { float _323 = (9.9999997473787516355514526367188e-05f - ca.w) / (cb.w - ca.w); ca = lerp(ca, cb, float4(_323, _323, _323, _323)); } else { if (cb.w < 9.9999997473787516355514526367188e-05f) { float _341 = (9.9999997473787516355514526367188e-05f - cb.w) / (ca.w - cb.w); cb = lerp(cb, ca, float4(_341, _341, _341, _341)); } } float2 _347 = G_1_m0.viewport.xy * 0.5f; float2 _354 = (ca.xy / float2(ca.w, ca.w)) * _347; float2 _361 = (cb.xy / float2(cb.w, cb.w)) * _347; dir = _361 - _354; float2 _363 = dir; float _364 = length(_363); if (_364 < 9.9999997473787516355514526367188e-06f) { dir = float2(1.0f, 0.0f); } else { dir /= float2(_364, _364); } float _383 = (max(_214.width, 0.60000002384185791015625f) * 0.5f) * G_1_m0.fparams.z; uint _385 = min(_214.vi, 5u); bool _389 = (_247[_385] & 2u) != 0u; bool2 _395 = bool2(_389, _389); float2 _397 = -dir; bool2 _400 = bool2(_389, _389); bool4 _409 = bool4(_389, _389, _389, _389); float4 _408 = float4(_409.x ? cb.x : ca.x, _409.y ? cb.y : ca.y, _409.z ? cb.z : ca.z, _409.w ? cb.w : ca.w); _out.clip = float4((((float2(_395.x ? _361.x : _354.x, _395.y ? _361.y : _354.y) + (float2(_400.x ? dir.x : _397.x, _400.y ? dir.y : _397.y) * _383)) + ((float2(-dir.y, dir.x) * (((_247[_385] & 1u) != 0u) ? 1.0f : (-1.0f))) * _383)) / _347) * _408.w, _408.zw); bool3 _420 = bool3(_389, _389, _389); _out.world = mul(float4(float3(_420.x ? _214.b.x : _214.a.x, _420.y ? _214.b.y : _214.a.y, _420.z ? _214.b.z : _214.a.z), 1.0f), O_1_m0.model).xyz; gl_Position = _out.clip; color_1 = _out.color; world = _out.world; flags_1 = _out.flags; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); a = stage_input.a; b = stage_input.b; color = stage_input.color; width = stage_input.width; flags = stage_input.flags; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.color_1 = color_1; stage_output.world = world; stage_output.flags_1 = flags_1; return stage_output; } fs_linemain2 struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LineIn { uint vi; float3 a; float3 b; float4 color; float width; uint flags; }; struct LineOut { float4 clip; float4 color; float3 world; uint flags; }; struct PointIn { uint vi; float3 pos; float size; float4 color; uint flags; }; struct PointOut { float4 clip; float4 color; float2 local; uint flags; }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; static float4 gl_FragCoord; static float4 color; static float3 world; static uint flags; static float4 _111; struct SPIRV_Cross_Input { nointerpolation float4 color : TEXCOORD0; float3 world : TEXCOORD1; nointerpolation uint flags : TEXCOORD2; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _111 : SV_Target0; }; float3 linear_to_srgb(float3 c) { float3 _68 = c * 12.9200000762939453125f; float3 _71 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _72 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_72.x ? _68.x : _71.x, _72.y ? _68.y : _71.y, _72.z ? _68.z : _71.z); } float4 target_color(float4 c) { float4 _86 = clamp(c, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if (G_1_m0.fparams.w > 0.5f) { return float4(linear_to_srgb(_86.xyz), _86.w); } return _86; } void frag_main() { float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); LineOut _99 = { gl_FragCoord, color, world, flags }; if ((_99.flags & 2u) != 0u) { discard; } c = _99.color; if ((_99.flags & 32u) != 0u) { c.w *= (1.0f - smoothstep(G_1_m0.grid.w * 0.449999988079071044921875f, G_1_m0.grid.w, length(_99.world.xy - G_1_m0.grid.xy))); } _111 = target_color(c); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; color = stage_input.color; world = stage_input.world; flags = stage_input.flags; frag_main(); SPIRV_Cross_Output stage_output; stage_output._111 = _111; return stage_output; } vs_pointmain²struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LineIn { uint vi; float3 a; float3 b; float4 color; float width; uint flags; }; struct LineOut { float4 clip; float4 color; float3 world; uint flags; }; struct PointIn { uint vi; float3 pos; float size; float4 color; uint flags; }; struct PointOut { float4 clip; float4 color; float2 local; uint flags; }; static const float2 _248[6] = { float2(-1.0f, -1.0f), float2(1.0f, -1.0f), float2(-1.0f, 1.0f), float2(-1.0f, 1.0f), float2(1.0f, -1.0f), float2(1.0f, 1.0f) }; static const PointOut _251 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b1) { ObjectU O_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float size; static float4 color; static uint flags; static float4 color_1; static float2 local; static uint flags_1; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float size : TEXCOORD1; float4 color : TEXCOORD2; uint flags : TEXCOORD3; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { nointerpolation float4 color_1 : TEXCOORD0; float2 local : TEXCOORD1; nointerpolation uint flags_1 : TEXCOORD2; float4 gl_Position : SV_Position; }; float3 srgb_to_linear(float3 c) { float3 _56 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _59 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _61 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_61.x ? _56.x : _59.x, _61.y ? _56.y : _59.y, _61.z ? _56.z : _59.z); } float4 element_color(uint flags_2, float4 fallback) { bool _80 = false; bool _83 = false; if ((flags_2 & 16u) == 0u) { return fallback; } if ((flags_2 & 4u) != 0u) { _80 = (G_1_m0.params.y & 2u) != 0u; } else { _80 = false; } if (_80) { return float4(srgb_to_linear(float3(0.86000001430511474609375f, 0.0f, 0.0f)), 1.0f); } if ((flags_2 & 8u) != 0u) { _83 = (G_1_m0.params.y & 4u) != 0u; } else { _83 = false; } if (_83) { return float4(srgb_to_linear(float3(0.0f, 0.85000002384185791015625f, 0.89999997615814208984375f)), 1.0f); } if ((G_1_m0.params.y & 1u) != 0u) { if (O_1_m0.params.w == 1u) { if ((flags_2 & 1u) != 0u) { return G_1_m0.select_color; } return G_1_m0.wire_color; } if (O_1_m0.params.x == 1u) { bool _147 = O_1_m0.params.y == 1u; bool4 _150 = bool4(_147, _147, _147, _147); return float4(_150.x ? G_1_m0.active_color.x : G_1_m0.select_color.x, _150.y ? G_1_m0.active_color.y : G_1_m0.select_color.y, _150.z ? G_1_m0.active_color.z : G_1_m0.select_color.z, _150.w ? G_1_m0.active_color.w : G_1_m0.select_color.w); } } return G_1_m0.wire_color; } float4 to_view(float3 p, float pull) { float4 v = float4(0.0f, 0.0f, 0.0f, 0.0f); v = mul(float4(p, 1.0f), mul(O_1_m0.model, G_1_m0.view)); v.z *= (1.0f - pull); return v; } void vert_main() { PointOut _out = _251; PointIn _214 = { uint(gl_VertexIndex), pos, size, color, flags }; _out.flags = _214.flags; _out.color = element_color(_214.flags, _214.color); float4 _272 = mul(to_view(_214.pos, ((_214.flags & 64u) != 0u) ? 0.0f : G_1_m0.fparams.x), G_1_m0.proj); if (_272.w < 9.9999997473787516355514526367188e-05f) { _out.clip = float4(0.0f, 0.0f, 2.0f, 1.0f); _out.local = float2(0.0f, 0.0f); PointOut _281 = _out; gl_Position = _281.clip; color_1 = _281.color; local = _281.local; flags_1 = _281.flags; return; } uint _288 = min(_214.vi, 5u); float2 _294 = G_1_m0.viewport.xy * 0.5f; _out.clip = float4(((((_272.xy / float2(_272.ww)) * _294) + (_248[_288] * (((max(_214.size, 1.0f) * 0.5f) * G_1_m0.fparams.z) + 0.5f))) / _294) * _272.w, _272.zw); _out.local = _248[_288]; gl_Position = _out.clip; color_1 = _out.color; local = _out.local; flags_1 = _out.flags; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; size = stage_input.size; color = stage_input.color; flags = stage_input.flags; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.color_1 = color_1; stage_output.local = local; stage_output.flags_1 = flags_1; return stage_output; } fs_pointmain struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LineIn { uint vi; float3 a; float3 b; float4 color; float width; uint flags; }; struct LineOut { float4 clip; float4 color; float3 world; uint flags; }; struct PointIn { uint vi; float3 pos; float size; float4 color; uint flags; }; struct PointOut { float4 clip; float4 color; float2 local; uint flags; }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; static float4 gl_FragCoord; static float4 color; static float2 local; static uint flags; static float4 _111; struct SPIRV_Cross_Input { nointerpolation float4 color : TEXCOORD0; float2 local : TEXCOORD1; nointerpolation uint flags : TEXCOORD2; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _111 : SV_Target0; }; float3 linear_to_srgb(float3 c) { float3 _68 = c * 12.9200000762939453125f; float3 _71 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _72 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_72.x ? _68.x : _71.x, _72.y ? _68.y : _71.y, _72.z ? _68.z : _71.z); } float4 target_color(float4 c) { float4 _86 = clamp(c, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if (G_1_m0.fparams.w > 0.5f) { return float4(linear_to_srgb(_86.xyz), _86.w); } return _86; } void frag_main() { float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); PointOut _99 = { gl_FragCoord, color, local, flags }; if ((_99.flags & 2u) != 0u) { discard; } float _127 = length(_99.local); if (_127 > 1.0f) { discard; } c = _99.color; c.w *= (1.0f - smoothstep(0.75f, 1.0f, _127)); _111 = target_color(c); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; color = stage_input.color; local = stage_input.local; flags = stage_input.flags; frag_main(); SPIRV_Cross_Output stage_output; stage_output._111 = _111; return stage_output; }  @‡ŒwfD4K³O~ÑWµ¸HSLTGlobals@ viewÿÿÿÿproj@ÿÿÿÿ view_proj€ÿÿÿÿ camera_posÀÿÿÿÿviewportÐÿÿÿÿ wire_coloràÿÿÿÿ select_colorðÿÿÿÿ active_colorÿÿÿÿgridÿÿÿÿparams ÿÿÿÿfparams0ÿÿÿÿG_block@ObjectUmodelÿÿÿÿnormal@ÿÿÿÿcolor€ÿÿÿÿparams�ÿÿÿÿextra ÿÿÿÿgi°ÿÿÿÿdecalsàÿÿÿÿlightsðÿÿÿÿO_blockGOvs_linevs_linefs_linefs_linevs_pointvs_pointfs_pointfs_pointÜ9#t GLSL.std.450îvs_line×ÚÝßâåçéêì Ãfs_lineº¼¾ÀÂùvs_pointêìîðòôõöø [fs_pointQSUXZÃ[H#HHH#@HHH#€HHH#ÀH#ÐH#àH#ðH#H#H # H #0G H #H H H #@H H H #€H #�H # H #°H #àH #ðH#H#H# H#0H#@H#DH#H#H# H#,GH#H#H#H# H#0H#H#H# H#(GG#"G#!G$H$#G&"G&!G'H'#G× *GÚGÝGßGâGåGç GéGéGêGìGìGº G¼G¼G¾GÀGÀGÂGê *GìGîGðGòGô GõGõGöGøGøGQ GSGSGUGXGXGZ   +         + ++++++++ + ++ +!@+"·Ñ8$ %$;%#' (';(&!, +-R¸NA, .---+/®Ga=, 0///+1= ‡?, 2111+3š™@, 4333+5æ®%=, 6555< !C D F * H+Iö(\?+J, KIJJ+L€?+Mš™Y?+Nfff?, OJMN Q . R. T Z [ ƒ• !�  ¡.¢ ¤ ¬+¶UUÕ>, ·¶¶¶+¸.M;, ¹¸¸¸!Ä,ÆJJJJ,ÇLLLL+È? Ë Ø;Ø× Û ;ÛÚ;ÛÝ à;àß ã;ãâ;Øå è;èç;èé ë ;ëê í;íì!ï+ò@,óJJòL+ô¬Å'7,õLJ+öš™?, ÷ +ø€¿ ú.û.ý.ÿ.  .   0Ž  © ;àº;à¼;Û¾;ØÀ;èÂ+Åffæ>.Ç;Øê;Ûì;ãî;àð;Øò;èô;èõ ÷;÷ö;íø,üJJ,ýøø,þLø,ÿøL,LL, ýþÿÿþ . ;àQ;àS V;VU;ØX;èZ+]@?._6 +,7 *ø)ù7ø7ˆ 8*.� 9*0ˆ :92  ;:4¼<=*6© >=8;þ>86BC7@7Aø?;QPR;QSTADE#AFG&ùUøUÇV@ª WV÷XúWYXøYþAøXA[\E=]\A[^G =_^ª `_Ça@« ba÷cúbdeødÇf]« gf>Pgùcøe>PHùcøc= hP÷iúhjiøj9 k+KPlkLþløiÇm@« nm÷oúnpqøpÇr]« sr>Ssùoøq>SHùoøo= tS÷uútvuøv9 w+OPxwLþxøuÇy]« zy÷{úz|{ø|÷}ú`~}ø~Ç@« €÷�ú€‚�ø‚Aƒ„E=…„þ…ø�Aƒ†E=‡†þ‡ø}A[ˆG =‰ˆª Љ÷‹úŠŒ‹øŒAƒ�E=Ž�Aƒ�E=��A[‘G =’‘ª “’P•–““““©”–�Žþ”ø‹ù{ø{Aƒ—E=˜—þ˜86œ�7 š7›ø™;¡ ¢ADž#AFŸ&ù£ø£A¤¥ž=¦¥A¤§Ÿ=¨§’©¦¨PªšL‘«©ª> «A¬­ =®­ƒ¯L›…°®¯A¬± >±°=² þ²86 µ,7 ´ø³ùºøºŽ »´-  ¼´·Ž ½¼1ƒ ¾½0¼<¿´¹© À¿»¾þÀ86ÃÄ7ÂøÁADÅ#ùÉøÉ Ê+ÂÆÇAËÌÅ =Í̺ ÎÍÈ÷ÏúÎÐÏøÐO ÑÊÊ9 ÒµÑQÓÊPÔÒÓþÔøÏþÊ86îïøÕ;;¡üý;Q;úùû;÷;¡þÿ;ú-=Ù×= ÜÚ= ÞÝ=áß=äâ=æåP ÖÙÜÞáäæADð#AFñ&ùøQ ÖA ù >  Q ÖQ Ö9 B  A¡ù> AËð=QÖÇ!« ©JA¤ð=Q Ö9œ‘>üA¤ð=Q Ö9œ‘>þA¬ü = ¸ ! "÷"ú!#$ø#A¬%þ =&%¸ '&">'ù"ø$>Hù"ø"= (÷)ú(*)ø*A¡+ù>+ó=,ù>-,=.-Q/.>ç/A01ç=2132>13Q4.>é4Q 5.>ê5Q6.>ì6ýø)A¬7ü =87¸ 98"÷:ú9;<ø;==ü=>þA¬?ü =@?ƒA"@A¬Bþ =CBA¬Dü =EDƒFCEˆGAFPIGGGG H.=>I>üHù:ø<A¬Jþ =KJ¸ LK"÷MúLNMøN=Oþ=PüA¬Qþ =RQƒS"RA¬Tü =UTA¬Vþ =WVƒXUWˆYSXP[YYYY Z.OP[>þZùMøMù:ø:Aƒ\ð=]\O^]]Ž_^È=`üOa``A¬bü =cbPdccˆead…fe_=gþOhggA¬iþ =jiPkjjˆlhk…ml_ƒnmf>n=o pBo¸ qpô÷rúqstøs>õùrøt=uPvppˆwuv>wùrørA¬x=yxzyA¬{=|{P}z|Q~Ö (~ö…€ÈAË�ð=‚�…ƒ€‚Q„Ö …&„A†…=‡†Çˆ‡« ‰ˆÇЇ« ‹Š©Œ‹LøPŽ�‰‰©��mf=�‘�=’PŽ”‰‰©“”’‘Ž•“ƒ�–�•Ž—}ŒŽ˜—ƒ�™–˜=šü=›þP•�‰‰‰‰©œ�›šˆž™_QŸœŽ žŸQ¡œQ¢œP£ ¡¢A¡¤ù>¤£Q ¥ÖQ ¦ÖP<¨‰‰‰© §¨¦¥A¤ªñ=«ªP¬§L‘­«¬O ®­­A©¯ù>¯®=°ùQ±°>ç±A0²ç=³²´³>²´Qµ°>éµQ ¶°>ê¶Q·°>ì·ý86Ãïø¸;¡ÆÇ=»º=½¼= ¿¾=ÁÀP¹»½¿ÁADÄ#ùÈøÈQɹÇÊÉ« ËÊ÷ÌúËÍÌøÍüøÌQι>ÆÎQϹÇÐÏ « ÑÐ÷ÒúÑÓÒøÓQ Ô¹OÕÔÔAƒÖÄ=×ÖOØ×׃ÙÕØ ÚBÙA¬ÛÆ =ÜÛAËÝÄ =ÞÝ…ßÞÅAËàÄ =áà â1ßáÚƒãLâ…äÜãA¬åÆ >åäùÒøÒ=æÆ9çÃæ>Âçý86ùïøè;;; =ëê= íì=ïî=ñð=óòPéëíïñóADú#AFû&ùøQéA  > Q éQ é9 B  A¡ >  AËú=QéÇ!« ©JA¤ú=Q é9œ‘Q¸ "÷úøA¡>óA>ü=> =! Q"!>ô"A0#ô=$#%$>#%Q&!>õ&Q'!>ö'Q(!>ø(ýøQ)é *&)A+*=,+Aƒ-ú=.-O/..Ž0/ÈQ1é 2(1L…32ÈAË4ú=54…635�76ÈO8Q9P:99ˆ;8:…<;0Ž=,7�><=ˆ?>0Q@ŽA?@QBQCPDABCA¡E>EDAF>F,=GQHG>ôHA0Iô=JIKJ>IKQLG>õLQMG>öMQNG>øNý86[ïøO;¡^_=RQ=TS=WU=YXPPRTWYAD\#ù`ø`QaPÇba« cb÷dúcedøeüødQfP gBfº hgL÷iúhjiøjüøiQkP>^kA¬l^ =ml n1]LgƒoLn…pmoA¬q^ >qp=r^9sÃr>Zsý8 @‡ŒwfD4K([‰‡7 õÊË(hedra_engine/shaders/render/post_composejÔ�ÔBTSR © © Kô ` TKŸ¢QóP C6KŽ6® , params: vec4, } @group(0) @binding(0) var U: ComposeU; @group(0) @binding(1) var src: texture_2d; @group(0) @binding(2) var overlay: texture_2d; fn to_bytes(v: vec4) -> vec4 { return vec4(round((clamp(v, vec4(0f), vec4(1f)) * 255f))); } @vertex fn vs_full(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4 { var pts: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); let _e13 = pts[vi]; return vec4(_e13, 0f, 1f); } @fragment fn fs_compose(@builtin(position) pos: vec4) -> @location(0) vec4 { var local: bool; var local_1: bool; var local_2: bool; var acc: vec4 = vec4(0u); var sy: i32 = 0i; var sx: i32; var d: vec4; let q = vec2(floor(pos.xy)); let _e6 = U.rect; let local_3 = (q - _e6.xy); if !((local_3.x < 0i)) { local = (local_3.y < 0i); } else { local = true; } let _e19 = local; if !(_e19) { let _e27 = U.rect.z; local_1 = (local_3.x >= _e27); } else { local_1 = true; } let _e30 = local_1; if !(_e30) { let _e38 = U.rect.w; local_2 = (local_3.y >= _e38); } else { local_2 = true; } let _e41 = local_2; if _e41 { discard; } let _e45 = U.params.x; let f = i32(max(_e45, 1u)); let n = u32((f * f)); let _e54 = U.params.w; let w = (_e54 == 1u); loop { let _e62 = sy; if (_e62 < f) { } else { break; } { sx = 0i; loop { let _e66 = sx; if (_e66 < f) { } else { break; } { let _e70 = sx; let _e71 = sy; let _e75 = textureLoad(src, ((local_3 * f) + vec2(_e70, _e71)), 0i); let _e76 = to_bytes(_e75); let _e77 = acc; acc = (_e77 + vec4((_e76.xyz * select(1u, _e76.w, w)), _e76.w)); } continuing { let _e87 = sx; sx = (_e87 + 1i); } } } continuing { let _e90 = sy; sy = (_e90 + 1i); } } let _e93 = acc.w; let div = max(select(n, _e93, w), 1u); let _e97 = acc; let _e106 = acc.w; d = vec4(((_e97.xyz + vec3((div / 2u))) / vec3(div)), ((_e106 + (n / 2u)) / n)); let _e116 = U.params.y; if (_e116 == 1u) { let _e121 = textureLoad(overlay, local_3, 0i); let _e122 = to_bytes(_e121); let a = _e122.w; if (a == 255u) { d = _e122; } else { if (a != 0u) { let ia = (255u - a); let da = d.w; let out_a = max((a + ((da * ia) / 255u)), 1u); let _e140 = d; let v_1 = (((_e122.xyz * a) + (((_e140.xyz * da) * ia) / vec3(255u))) / vec3(out_a)); d = vec4(min(v_1, vec3(255u)), min(out_a, 255u)); } } } let _e156 = d; let o = (vec4(_e156) / vec4(255f)); let _e164 = U.params.z; if (_e164 == 1u) { return vec4((o.xyz * o.w), o.w); } return o; }   Ö/壙É(vs_fullmain÷#version 300 es precision highp float; precision highp int; struct ComposeU { ivec4 rect; uvec4 params; }; uvec4 to_bytes(vec4 v) { return uvec4(roundEven((clamp(v, vec4(0.0), vec4(1.0)) * 255.0))); } void main() { uint vi = uint(gl_VertexID); vec2 pts[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); vec2 _e13 = pts[vi]; gl_Position = vec4(_e13, 0.0, 1.0); gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_composemain=#version 300 es precision highp float; precision highp int; struct ComposeU { ivec4 rect; uvec4 params; }; layout(std140) uniform ComposeU_block_0Fragment { ComposeU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_2_fs; layout(location = 0) out vec4 _fs2p_location0; uvec4 to_bytes(vec4 v) { return uvec4(roundEven((clamp(v, vec4(0.0), vec4(1.0)) * 255.0))); } void main() { vec4 pos = gl_FragCoord; bool local = false; bool local_1 = false; bool local_2 = false; uvec4 acc = uvec4(0u); int sy = 0; int sx = 0; uvec4 d = uvec4(0u); ivec2 q = ivec2(floor(pos.xy)); ivec4 _e6 = _group_0_binding_0_fs.rect; ivec2 local_3 = (q - _e6.xy); if (!((local_3.x < 0))) { local = (local_3.y < 0); } else { local = true; } bool _e19 = local; if (!(_e19)) { int _e27 = _group_0_binding_0_fs.rect.z; local_1 = (local_3.x >= _e27); } else { local_1 = true; } bool _e30 = local_1; if (!(_e30)) { int _e38 = _group_0_binding_0_fs.rect.w; local_2 = (local_3.y >= _e38); } else { local_2 = true; } bool _e41 = local_2; if (_e41) { discard; } uint _e45 = _group_0_binding_0_fs.params.x; int f = int(max(_e45, 1u)); uint n = uint((f * f)); uint _e54 = _group_0_binding_0_fs.params.w; bool w = (_e54 == 1u); bool loop_init = true; while(true) { if (!loop_init) { int _e90 = sy; sy = (_e90 + 1); } loop_init = false; int _e62 = sy; if ((_e62 < f)) { } else { break; } { sx = 0; bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e87 = sx; sx = (_e87 + 1); } loop_init_1 = false; int _e66 = sx; if ((_e66 < f)) { } else { break; } { int _e70 = sx; int _e71 = sy; vec4 _e75 = texelFetch(_group_0_binding_1_fs, ((local_3 * f) + ivec2(_e70, _e71)), 0); uvec4 _e76 = to_bytes(_e75); uvec4 _e77 = acc; acc = (_e77 + uvec4((_e76.xyz * (w ? _e76.w : 1u)), _e76.w)); } } } } uint _e93 = acc.w; uint div = max((w ? _e93 : n), 1u); uvec4 _e97 = acc; uint _e106 = acc.w; d = uvec4(((_e97.xyz + uvec3((div / 2u))) / uvec3(div)), ((_e106 + (n / 2u)) / n)); uint _e116 = _group_0_binding_0_fs.params.y; if ((_e116 == 1u)) { vec4 _e121 = texelFetch(_group_0_binding_2_fs, local_3, 0); uvec4 _e122 = to_bytes(_e121); uint a = _e122.w; if ((a == 255u)) { d = _e122; } else { if ((a != 0u)) { uint ia = (255u - a); uint da = d.w; uint out_a = max((a + ((da * ia) / 255u)), 1u); uvec4 _e140 = d; uvec3 v_1 = (((_e122.xyz * a) + (((_e140.xyz * da) * ia) / uvec3(255u))) / uvec3(out_a)); d = uvec4(min(v_1, uvec3(255u)), min(out_a, 255u)); } } } uvec4 _e156 = d; vec4 o = (vec4(_e156) / vec4(255.0)); uint _e164 = _group_0_binding_0_fs.params.z; if ((_e164 == 1u)) { _fs2p_location0 = vec4((o.xyz * o.w), o.w); return; } _fs2p_location0 = o; return; }   tsèêÕªAComposeU_block_0Fragment_group_0_binding_2_fs_group_0_binding_1_fsvs_fullvs_full fs_compose fs_compose// language: metal2.2 #include #include using metal::uint; struct ComposeU { metal::int4 rect; metal::uint4 params; }; struct type_7 { metal::float2 inner[3]; }; metal::uint4 naga_f2u32(metal::float4 value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::uint4 to_bytes( metal::float4 v ) { return naga_f2u32(metal::rint(metal::clamp(v, metal::float4(0.0), metal::float4(1.0)) * 255.0)); } struct vs_fullInput { }; struct vs_fullOutput { metal::float4 member [[position]]; }; vertex vs_fullOutput vs_full( uint vi [[vertex_id]] ) { type_7 pts = type_7 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; metal::float2 _e13 = pts.inner[metal::min(unsigned(vi), 2u)]; return vs_fullOutput { metal::float4(_e13, 0.0, 1.0) }; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } uint naga_div(uint lhs, uint rhs) { return lhs / metal::select(rhs, 1u, rhs == 0u); } metal::uint3 naga_div(metal::uint3 lhs, metal::uint3 rhs) { return lhs / metal::select(rhs, 1u, rhs == 0u); } struct fs_composeInput { }; struct fs_composeOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_composeOutput fs_compose( metal::float4 pos [[position]] , constant ComposeU& U [[buffer(0)]] , metal::texture2d src [[texture(0)]] , metal::texture2d overlay [[texture(1)]] ) { bool local = {}; bool local_1 = {}; bool local_2 = {}; metal::uint4 acc = metal::uint4(0u); int sy = 0; int sx = {}; metal::uint4 d = {}; metal::int2 q = naga_f2i32(metal::floor(pos.xy)); metal::int4 _e6 = U.rect; metal::int2 local_3 = as_type(as_type(q) - as_type(_e6.xy)); if (!((local_3.x < 0))) { local = local_3.y < 0; } else { local = true; } bool _e19 = local; if (!(_e19)) { int _e27 = U.rect.z; local_1 = local_3.x >= _e27; } else { local_1 = true; } bool _e30 = local_1; if (!(_e30)) { int _e38 = U.rect.w; local_2 = local_3.y >= _e38; } else { local_2 = true; } bool _e41 = local_2; if (_e41) { metal::discard_fragment(); } uint _e45 = U.params.x; int f = static_cast(metal::max(_e45, 1u)); uint n = static_cast(as_type(as_type(f) * as_type(f))); uint _e54 = U.params.w; bool w = _e54 == 1u; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e90 = sy; sy = as_type(as_type(_e90) + as_type(1)); } loop_init = false; int _e62 = sy; if (_e62 < f) { } else { break; } { sx = 0; uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { int _e87 = sx; sx = as_type(as_type(_e87) + as_type(1)); } loop_init_1 = false; int _e66 = sx; if (_e66 < f) { } else { break; } { int _e70 = sx; int _e71 = sy; uint clamped_lod_e75 = metal::min(uint(0), src.get_num_mip_levels() - 1); metal::float4 _e75 = src.read(metal::min(metal::uint2(as_type(as_type(as_type(as_type(local_3) * as_type(f))) + as_type(metal::int2(_e70, _e71)))), metal::uint2(src.get_width(clamped_lod_e75), src.get_height(clamped_lod_e75)) - 1), clamped_lod_e75); metal::uint4 _e76 = to_bytes(_e75); metal::uint4 _e77 = acc; acc = _e77 + metal::uint4(_e76.xyz * (w ? _e76.w : 1u), _e76.w); } } } } uint _e93 = acc.w; uint div = metal::max(w ? _e93 : n, 1u); metal::uint4 _e97 = acc; uint _e106 = acc.w; d = metal::uint4(naga_div(_e97.xyz + metal::uint3(naga_div(div, 2u)), metal::uint3(div)), naga_div(_e106 + naga_div(n, 2u), n)); uint _e116 = U.params.y; if (_e116 == 1u) { uint clamped_lod_e121 = metal::min(uint(0), overlay.get_num_mip_levels() - 1); metal::float4 _e121 = overlay.read(metal::min(metal::uint2(local_3), metal::uint2(overlay.get_width(clamped_lod_e121), overlay.get_height(clamped_lod_e121)) - 1), clamped_lod_e121); metal::uint4 _e122 = to_bytes(_e121); uint a = _e122.w; if (a == 255u) { d = _e122; } else { if (a != 0u) { uint ia = 255u - a; uint da = d.w; uint out_a = metal::max(a + naga_div(da * ia, 255u), 1u); metal::uint4 _e140 = d; metal::uint3 v_1 = naga_div((_e122.xyz * a) + naga_div((_e140.xyz * da) * ia, metal::uint3(255u)), metal::uint3(out_a)); d = metal::uint4(metal::min(v_1, metal::uint3(255u)), metal::min(out_a, 255u)); } } } metal::uint4 _e156 = d; metal::float4 o = static_cast(_e156) / metal::float4(255.0); uint _e164 = U.params.z; if (_e164 == 1u) { return fs_composeOutput { metal::float4(o.xyz * o.w, o.w) }; } return fs_composeOutput { o }; }   tsèêÕªAvs_fullmain§struct ComposeU { int4 rect; uint4 params; }; static const float2 _46[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static float4 gl_Position; static int gl_VertexIndex; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float4 gl_Position : SV_Position; }; void vert_main() { gl_Position = float4(_46[min(uint(gl_VertexIndex), 2u)], 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; return stage_output; }  fs_composemainÛstruct ComposeU { int4 rect; uint4 params; }; cbuffer U : register(b0) { ComposeU U_1_m0 : packoffset(c0); }; Texture2D src : register(t0); Texture2D overlay : register(t1); static float4 gl_FragCoord; static float4 _65; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _65 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint4 to_bytes(float4 v) { return uint4(clamp(round(clamp(v, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)) * 255.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(4294967040.0f, 4294967040.0f, 4294967040.0f, 4294967040.0f))); } uint naga_div(uint lhs, uint rhs) { return lhs / ((rhs == 0u) ? 1u : rhs); } uint3 naga_div(uint3 lhs, uint3 rhs) { bool3 _57 = bool3(rhs.x == uint3(0u, 0u, 0u).x, rhs.y == uint3(0u, 0u, 0u).y, rhs.z == uint3(0u, 0u, 0u).z); return lhs / uint3(_57.x ? uint3(1u, 1u, 1u).x : rhs.x, _57.y ? uint3(1u, 1u, 1u).y : rhs.y, _57.z ? uint3(1u, 1u, 1u).z : rhs.z); } void frag_main() { int sy = 0; bool _84 = false; uint4 d = uint4(0u, 0u, 0u, 0u); uint4 acc = uint4(0u, 0u, 0u, 0u); bool _81 = false; bool _86 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); int2 _109 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))) - U_1_m0.rect.xy; if (!(_109.x < 0)) { _81 = _109.y < 0; } else { _81 = true; } if (!_81) { _84 = _109.x >= U_1_m0.rect.z; } else { _84 = true; } if (!_84) { _86 = _109.y >= U_1_m0.rect.w; } else { _86 = true; } if (_86) { discard; } int _145 = int(max(U_1_m0.params.x, 1u)); uint _147 = uint(_145 * _145); bool _150 = U_1_m0.params.w == 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(sy < _145)) { break; } int sx = 0; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(sx < _145)) { break; } int _205; spvTextureSize(src, 0u, _205); int _207 = int(min(uint(0), uint(int(_205) - 1))); uint _208_dummy_parameter; uint4 _213 = to_bytes(src.Load(int3(int2(min(uint2((_109 * int2(_145, _145)) + int2(sx, sy)), uint2(int2(spvTextureSize(src, uint(_207), _208_dummy_parameter)) - int2(1, 1)))), _207))); uint _217 = _150 ? _213.w : 1u; acc += uint4(_213.xyz * uint3(_217, _217, _217), _213.w); sx++; continue; } sy++; continue; } uint _231 = max((_150 ? acc.w : _147), 1u); uint _234 = naga_div(_231, 2u); d = uint4(naga_div(acc.xyz + uint3(_234, _234, _234), uint3(_231, _231, _231)), naga_div(acc.w + naga_div(_147, 2u), _147)); if (U_1_m0.params.y == 1u) { int _250; spvTextureSize(overlay, 0u, _250); int _252 = int(min(uint(0), uint(int(_250) - 1))); uint _253_dummy_parameter; uint4 _258 = to_bytes(overlay.Load(int3(int2(min(uint2(_109), uint2(int2(spvTextureSize(overlay, uint(_252), _253_dummy_parameter)) - int2(1, 1)))), _252))); uint _259 = _258.w; if (_259 == 255u) { d = _258; } else { if (_259 != 0u) { uint _267 = 255u - _259; uint _273 = max((_259 + naga_div(d.w * _267, 255u)), 1u); d = uint4(min(naga_div((_258.xyz * uint3(_259, _259, _259)) + naga_div((d.xyz * uint3(d.w, d.w, d.w)) * uint3(_267, _267, _267), uint3(255u, 255u, 255u)), uint3(_273, _273, _273)), uint3(255u, 255u, 255u)), min(_273, 255u)); } } } float4 _292 = float4(d) / float4(255.0f, 255.0f, 255.0f, 255.0f); if (U_1_m0.params.z == 1u) { _65 = float4(_292.xyz * _292.w, _292.w); return; } _65 = _292; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._65 = _65; return stage_output; }   tsèêÕªAHSLTComposeU rectÿÿÿÿparamsÿÿÿÿU_block Usrcÿÿÿÿoverlayÿÿÿÿvs_fullvs_full fs_compose fs_compose¬#H2 GLSL.std.450-vs_full(+]fs_composeY\]H#H#G G"G!GH#G"G!G"G!G( *G+ GY G\       +   ; ;;! + , + €?, + C+ #ÿÿO, $#### );)( , ;,+!.+ /€¿, 0//+ 1@@, 21/, 3/1, 4023 6 8 +9 > +?!D+HL!NLLLR,LSHHH,LU??? Z ;ZY;,\ ^+b)c,dHHHH+e+fÿ,Lgfff, h j.k.m.o q s.u.w+ {Ï, |{{+ }ÿÿÿN, ~}} � ” ¤ ¥³ ´³µ,³¶HH+·ÿÿÿÿ,³¸··,éee û,eeB 67 øùø  +Ž !   "!  %+"$m&%þ&86-.ø';654=*(ù7ø7 :&*9A8;5:= <;P =<>+=A>@+?= A@ BA>@Bý86CD7E7FøGªIFH©JI?F†KEJþK86LMN7LO7LPøQªRTPS©LVTUP†LWOVþW86].øX;srb;jlm;qvw;qpd;jik;stu;jno;´¹¸;´Î¸= [YA^_H=`=aùxøxO y[[  zy  +z|~n€A�‚_H=ƒ‚O„ƒƒ‚…€„Q†…±‡†b¨ˆ‡÷‰úˆŠ‹øŠQŒ…±�Œb>i�ù‰ø‹>icù‰ø‰=Ži¨�Ž÷�ú�‘’ø‘Q“…A”•_H9=–•¯—“–>l—ù�ø’>lcù�ø�=˜l¨™˜÷šú™›œø›Q�…A”ž_H =Ÿž¯ �Ÿ>n ùšøœ>ncùšøš=¡n÷¢ú¡£¢ø£üø¢A¥¦_?H=§¦ ¨)§?|©¨„ª©©|«ªA¥¬_? =­¬ª®­?ù¯ø¯ö°²ùºøº=³»¹ªµ¼¶»›½¼÷¾ú½°¾ø¾Q¿»ªÀ¿H©ÁÀ?HP³ÂÁ?‚³Ã»Â>¹Ãù±ø±=Är±ÅÄ©÷ÆúÅÆÇøÇù°øÆùÈøÈ>tbùÊøÊöËÍùÏøÏ=³ÐΪµÑ¶Ð›ÒÑ÷ÓúÒËÓøÓQÔЪÕÔH©ÖÕ?HP³×Ö?‚³ØÐ×>ÎØùÌøÌ=Ùt±ÚÙ©÷ÛúÚÛÜøÜùËøÛùÝøÝPà©©„ß…à=át=ârPãáâ€äßãjå`‚æåe ç&bægè`ç‚êèé ë&äê_ ì`ëç9íì=îpOLïííQðí©ñ®ð?PLóñññ„LòïóQôíPõòô€öîõ>pöùÞøÞùÍøÍ=÷t€ø÷e>tøùÊøËùÉøÉù²ø²=ùr€úùe>rúù¯ø°Aûüp =ýü©þ®ý« ÿ)þ?=pOL9Cÿ9PL€LPLÿÿÿ9LMAûp =9 C«9€  9 C «P  >v A¥ _??= ª?÷úøja‚e &bga‚ &…_ a9Qªf÷úø>vùø« H÷!ú "!ø"‚#fAû$v =%$„&%#9'C&f€(' ))(?OL*PL,„L+*,=-vOL.--PL0%%%„L/.0PL2###„L1/29L3M1g€L4+3PL5)))9L6M45 L7&6g 8&)fP978>v9ù!ø!ùøùø=:vp ;:ˆ <;hA¥=_?9=>=ª?>?÷@ú?A@øAOBC<<Q D<ŽBECDQ F<P GEF>\Gýø@>\<ý8  Ö/壙É(ÊË$hedra_engine/shaders/render/post_dofjÔËúBTSR ††oõíA âaoQbTbfºbæ/  ’o“°2 ¿Åo.Æ4Ç“4 ÇûoYvs_dof fs_dof_coc fs_dof_gatherfs_dof_compose0Ut_colourt_ndt_halfs_linearvs_dofvs_dof fs_dof_coc fs_dof_coc fs_dof_gather fs_dof_gatherfs_dof_composefs_dof_composestruct DofU { size: vec4, far: vec4, near: vec4, shape: vec4, rings: vec4, } const SHAPE_BOX: u32 = 0u; const SHAPE_HEXAGON: u32 = 1u; const PI: f32 = 3.1415927f; @group(0) @binding(0) var U: DofU; @group(0) @binding(1) var t_colour: texture_2d; @group(0) @binding(2) var t_nd: texture_2d; @group(0) @binding(3) var t_half: texture_2d; @group(0) @binding(4) var s_linear: sampler; fn dither(p: vec2) -> f32 { var bayer: array = array(0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); let _e29 = bayer[(((p.y & 3i) * 4i) + (p.x & 3i))]; return (f32(_e29) / 16f); } fn smooth_edge(e0_: f32, e1_: f32, x: f32) -> f32 { if (e1_ == e0_) { return select(1f, 0f, (x < e0_)); } let t = clamp(((x - e0_) / (e1_ - e0_)), 0f, 1f); return ((t * t) * (3f - (2f * t))); } fn dof_coc(z_1: f32, radius: f32) -> f32 { var local: bool; var local_1: bool; let _e5 = U.near.x; if (_e5 > 0.5f) { let _e13 = U.near.y; local = (z_1 < _e13); } else { local = false; } let _e16 = local; if _e16 { let _e20 = U.near.z; if (_e20 < 0f) { let _e26 = U.near.y; return (-(min(((_e26 - z_1) / max(z_1, 0.0001f)), 1f)) * radius); } let _e38 = U.near.y; let _e42 = U.near.z; let _e47 = U.near.y; let _e48 = smooth_edge((_e38 - _e42), _e47, z_1); return (-((1f - _e48)) * radius); } let _e56 = U.far.x; if (_e56 > 0.5f) { let _e64 = U.far.y; local_1 = (z_1 > _e64); } else { local_1 = false; } let _e67 = local_1; if _e67 { let _e71 = U.far.z; if (_e71 < 0f) { let _e77 = U.far.y; return (min(((z_1 - _e77) / max(z_1, 0.0001f)), 1f) * radius); } let _e88 = U.far.y; let _e92 = U.far.y; let _e96 = U.far.z; let _e98 = smooth_edge(_e88, (_e92 + _e96), z_1); return (_e98 * radius); } return 0f; } fn shape_point(shape: u32, s: f32) -> vec2 { let u = fract(s); if (shape == SHAPE_BOX) { let t_1 = (u * 8f); if (t_1 < 1f) { return vec2(1f, t_1); } if (t_1 < 3f) { return vec2((2f - t_1), 1f); } if (t_1 < 5f) { return vec2(-1f, (4f - t_1)); } if (t_1 < 7f) { return vec2((t_1 - 6f), -1f); } return vec2(1f, (t_1 - 8f)); } if (shape == SHAPE_HEXAGON) { let t_2 = (u * 6f); let m = floor(t_2); let f = (t_2 - m); let a0_ = (m * 1.0471976f); let a1_ = (a0_ + 1.0471976f); return mix(vec2(cos(a0_), sin(a0_)), vec2(cos(a1_), sin(a1_)), f); } let a = (6.2831855f * u); return vec2(cos(a), sin(a)); } @vertex fn vs_dof(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4 { var pts: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); let _e13 = pts[vi]; return vec4(_e13, 0f, 1f); } @fragment fn fs_dof_coc(@builtin(position) frag: vec4) -> @location(0) vec4 { var c: vec3 = vec3(0f); var zn: f32 = 300000000000000000000000000000000000000f; var j: i32 = 0i; let p_1 = vec2(floor(frag.xy)); let _e6 = U.size; let top = (vec2(_e6.xy) - vec2(1i)); loop { let _e19 = j; if (_e19 < 4i) { } else { break; } { let _e24 = j; let _e27 = j; let s_1 = min(((p_1 * 2i) + vec2((_e24 & 1i), (_e27 >> 1u))), top); let _e33 = c; let _e36 = textureLoad(t_colour, s_1, 0i); c = (_e33 + _e36.xyz); let _e41 = textureLoad(t_nd, s_1, 0i); let z_2 = _e41.w; if (z_2 > 0f) { let _e45 = zn; zn = min(_e45, z_2); } } continuing { let _e48 = j; j = (_e48 + 1i); } } let _e53 = U.near.w; let _e54 = zn; let _e55 = zn; let z_3 = select(_e53, _e54, (_e55 < 300000000000000000000000000000000000000f)); let _e59 = c; let _e65 = U.far.w; let _e66 = dof_coc(z_3, _e65); return vec4((_e59 * 0.25f), (_e66 * 0.5f)); } @fragment fn fs_dof_gather(@builtin(position) frag_1: vec4) -> @location(0) vec4 { var sum: vec3; var weights: f32 = 1f; var cover: f32 = 0f; var turn: f32 = 0f; var k: u32 = 1u; var j_1: u32; var reach: f32; let p_2 = vec2(floor(frag_1.xy)); let _e6 = U.size; let top_1 = (vec2(_e6.zw) - vec2(1f)); let centre = textureLoad(t_half, p_2, 0i); let cc = centre.w; let _e19 = U.far.w; let radius_1 = (_e19 * 0.5f); sum = centre.xyz; let _e33 = U.shape.z; if (_e33 != 0u) { let _e36 = dither(p_2); turn = _e36; } let pc = (vec2(p_2) + vec2(0.5f)); let n = U.shape.y; loop { let _e47 = k; if (_e47 <= n) { } else { break; } { let _e51 = k; let count = U.rings[(_e51 - 1u)]; let _e56 = k; let dist = ((f32(_e56) / f32(n)) * radius_1); let _e61 = k; let stagger = select(0.5f, 0f, ((_e61 & 1u) == 1u)); j_1 = 0u; loop { let _e71 = j_1; if (_e71 < count) { } else { break; } { let _e76 = U.shape.x; let _e77 = j_1; let _e80 = turn; let _e84 = shape_point(_e76, (((f32(_e77) + stagger) + _e80) / f32(count))); let o = (_e84 * dist); let t_3 = clamp(floor((pc + o)), vec2(0f), top_1); let tap = textureLoad(t_half, vec2(t_3), 0i); let cs = tap.w; reach = min(cs, (cc + 1f)); if (cs < 0f) { reach = -(cs); } else { if (cc < 0f) { reach = cs; } } let _e105 = reach; let w = clamp(((_e105 - dist) + 1f), 0f, 1f); let _e112 = sum; sum = (_e112 + (tap.xyz * w)); let _e116 = weights; weights = (_e116 + w); if (cs < 0f) { let _e120 = cover; cover = max(_e120, clamp(((-(cs) - dist) + 1f), 0f, 1f)); } } continuing { let _e130 = j_1; j_1 = (_e130 + 1u); } } } continuing { let _e133 = k; k = (_e133 + 1u); } } let _e135 = sum; let _e136 = weights; let _e139 = cover; return vec4((_e135 / vec3(_e136)), _e139); } @fragment fn fs_dof_compose(@builtin(position) frag_2: vec4) -> @location(0) vec4 { var z: f32; let q = vec2(floor(frag_2.xy)); let sharp = textureLoad(t_colour, q, 0i); let _e9 = textureLoad(t_nd, q, 0i); z = _e9.w; let _e12 = z; if (_e12 <= 0f) { let _e18 = U.near.w; z = _e18; } let _e19 = z; let _e23 = U.far.w; let _e24 = dof_coc(_e19, _e23); let _e33 = U.size; let g = textureSampleLevel(t_half, s_linear, ((vec2(q) + vec2(0.5f)) / _e33.xy), 0f); let blend = max(clamp(((abs(_e24) * 0.5f) - 0.5f), 0f, 1f), g.w); return vec4(mix(sharp.xyz, g.xyz, blend), sharp.w); }  P5QîÔoZγvs_dofmain#version 300 es precision highp float; precision highp int; struct DofU { vec4 size; vec4 far; vec4 near; uvec4 shape; uvec4 rings; }; const uint SHAPE_BOX = 0u; const uint SHAPE_HEXAGON = 1u; const float PI = 3.1415927; float dither(ivec2 p) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); uint _e29 = bayer[(((p.y & 3) * 4) + (p.x & 3))]; return (float(_e29) / 16.0); } float smooth_edge(float e0_, float e1_, float x) { if ((e1_ == e0_)) { return ((x < e0_) ? 0.0 : 1.0); } float t = clamp(((x - e0_) / (e1_ - e0_)), 0.0, 1.0); return ((t * t) * (3.0 - (2.0 * t))); } vec2 shape_point(uint shape, float s) { float u = fract(s); if ((shape == SHAPE_BOX)) { float t_1 = (u * 8.0); if ((t_1 < 1.0)) { return vec2(1.0, t_1); } if ((t_1 < 3.0)) { return vec2((2.0 - t_1), 1.0); } if ((t_1 < 5.0)) { return vec2(-1.0, (4.0 - t_1)); } if ((t_1 < 7.0)) { return vec2((t_1 - 6.0), -1.0); } return vec2(1.0, (t_1 - 8.0)); } if ((shape == SHAPE_HEXAGON)) { float t_2 = (u * 6.0); float m = floor(t_2); float f = (t_2 - m); float a0_ = (m * 1.0471976); float a1_ = (a0_ + 1.0471976); return mix(vec2(cos(a0_), sin(a0_)), vec2(cos(a1_), sin(a1_)), f); } float a = (6.2831855 * u); return vec2(cos(a), sin(a)); } void main() { uint vi = uint(gl_VertexID); vec2 pts[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); vec2 _e13 = pts[vi]; gl_Position = vec4(_e13, 0.0, 1.0); gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_dof_cocmainÖ#version 300 es precision highp float; precision highp int; struct DofU { vec4 size; vec4 far; vec4 near; uvec4 shape; uvec4 rings; }; const uint SHAPE_BOX = 0u; const uint SHAPE_HEXAGON = 1u; const float PI = 3.1415927; layout(std140) uniform DofU_block_0Fragment { DofU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_2_fs; layout(location = 0) out vec4 _fs2p_location0; float dither(ivec2 p) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); uint _e29 = bayer[(((p.y & 3) * 4) + (p.x & 3))]; return (float(_e29) / 16.0); } float smooth_edge(float e0_, float e1_, float x) { if ((e1_ == e0_)) { return ((x < e0_) ? 0.0 : 1.0); } float t = clamp(((x - e0_) / (e1_ - e0_)), 0.0, 1.0); return ((t * t) * (3.0 - (2.0 * t))); } float dof_coc(float z_1, float radius) { bool local = false; bool local_1 = false; float _e5 = _group_0_binding_0_fs.near.x; if ((_e5 > 0.5)) { float _e13 = _group_0_binding_0_fs.near.y; local = (z_1 < _e13); } else { local = false; } bool _e16 = local; if (_e16) { float _e20 = _group_0_binding_0_fs.near.z; if ((_e20 < 0.0)) { float _e26 = _group_0_binding_0_fs.near.y; return (-(min(((_e26 - z_1) / max(z_1, 0.0001)), 1.0)) * radius); } float _e38 = _group_0_binding_0_fs.near.y; float _e42 = _group_0_binding_0_fs.near.z; float _e47 = _group_0_binding_0_fs.near.y; float _e48 = smooth_edge((_e38 - _e42), _e47, z_1); return (-((1.0 - _e48)) * radius); } float _e56 = _group_0_binding_0_fs.far.x; if ((_e56 > 0.5)) { float _e64 = _group_0_binding_0_fs.far.y; local_1 = (z_1 > _e64); } else { local_1 = false; } bool _e67 = local_1; if (_e67) { float _e71 = _group_0_binding_0_fs.far.z; if ((_e71 < 0.0)) { float _e77 = _group_0_binding_0_fs.far.y; return (min(((z_1 - _e77) / max(z_1, 0.0001)), 1.0) * radius); } float _e88 = _group_0_binding_0_fs.far.y; float _e92 = _group_0_binding_0_fs.far.y; float _e96 = _group_0_binding_0_fs.far.z; float _e98 = smooth_edge(_e88, (_e92 + _e96), z_1); return (_e98 * radius); } return 0.0; } vec2 shape_point(uint shape, float s) { float u = fract(s); if ((shape == SHAPE_BOX)) { float t_1 = (u * 8.0); if ((t_1 < 1.0)) { return vec2(1.0, t_1); } if ((t_1 < 3.0)) { return vec2((2.0 - t_1), 1.0); } if ((t_1 < 5.0)) { return vec2(-1.0, (4.0 - t_1)); } if ((t_1 < 7.0)) { return vec2((t_1 - 6.0), -1.0); } return vec2(1.0, (t_1 - 8.0)); } if ((shape == SHAPE_HEXAGON)) { float t_2 = (u * 6.0); float m = floor(t_2); float f = (t_2 - m); float a0_ = (m * 1.0471976); float a1_ = (a0_ + 1.0471976); return mix(vec2(cos(a0_), sin(a0_)), vec2(cos(a1_), sin(a1_)), f); } float a = (6.2831855 * u); return vec2(cos(a), sin(a)); } void main() { vec4 frag = gl_FragCoord; vec3 c = vec3(0.0); float zn = 3e38; int j = 0; ivec2 p_1 = ivec2(floor(frag.xy)); vec4 _e6 = _group_0_binding_0_fs.size; ivec2 top = (ivec2(_e6.xy) - ivec2(1)); bool loop_init = true; while(true) { if (!loop_init) { int _e48 = j; j = (_e48 + 1); } loop_init = false; int _e19 = j; if ((_e19 < 4)) { } else { break; } { int _e24 = j; int _e27 = j; ivec2 s_1 = min(((p_1 * 2) + ivec2((_e24 & 1), (_e27 >> 1u))), top); vec3 _e33 = c; vec4 _e36 = texelFetch(_group_0_binding_1_fs, s_1, 0); c = (_e33 + _e36.xyz); vec4 _e41 = texelFetch(_group_0_binding_2_fs, s_1, 0); float z_2 = _e41.w; if ((z_2 > 0.0)) { float _e45 = zn; zn = min(_e45, z_2); } } } float _e53 = _group_0_binding_0_fs.near.w; float _e54 = zn; float _e55 = zn; float z_3 = ((_e55 < 3e38) ? _e54 : _e53); vec3 _e59 = c; float _e65 = _group_0_binding_0_fs.far.w; float _e66 = dof_coc(z_3, _e65); _fs2p_location0 = vec4((_e59 * 0.25), (_e66 * 0.5)); return; }  fs_dof_gathermainÈ#version 300 es precision highp float; precision highp int; struct DofU { vec4 size; vec4 far; vec4 near; uvec4 shape; uvec4 rings; }; const uint SHAPE_BOX = 0u; const uint SHAPE_HEXAGON = 1u; const float PI = 3.1415927; layout(std140) uniform DofU_block_0Fragment { DofU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_3_fs; layout(location = 0) out vec4 _fs2p_location0; float dither(ivec2 p) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); uint _e29 = bayer[(((p.y & 3) * 4) + (p.x & 3))]; return (float(_e29) / 16.0); } float smooth_edge(float e0_, float e1_, float x) { if ((e1_ == e0_)) { return ((x < e0_) ? 0.0 : 1.0); } float t = clamp(((x - e0_) / (e1_ - e0_)), 0.0, 1.0); return ((t * t) * (3.0 - (2.0 * t))); } float dof_coc(float z_1, float radius) { bool local = false; bool local_1 = false; float _e5 = _group_0_binding_0_fs.near.x; if ((_e5 > 0.5)) { float _e13 = _group_0_binding_0_fs.near.y; local = (z_1 < _e13); } else { local = false; } bool _e16 = local; if (_e16) { float _e20 = _group_0_binding_0_fs.near.z; if ((_e20 < 0.0)) { float _e26 = _group_0_binding_0_fs.near.y; return (-(min(((_e26 - z_1) / max(z_1, 0.0001)), 1.0)) * radius); } float _e38 = _group_0_binding_0_fs.near.y; float _e42 = _group_0_binding_0_fs.near.z; float _e47 = _group_0_binding_0_fs.near.y; float _e48 = smooth_edge((_e38 - _e42), _e47, z_1); return (-((1.0 - _e48)) * radius); } float _e56 = _group_0_binding_0_fs.far.x; if ((_e56 > 0.5)) { float _e64 = _group_0_binding_0_fs.far.y; local_1 = (z_1 > _e64); } else { local_1 = false; } bool _e67 = local_1; if (_e67) { float _e71 = _group_0_binding_0_fs.far.z; if ((_e71 < 0.0)) { float _e77 = _group_0_binding_0_fs.far.y; return (min(((z_1 - _e77) / max(z_1, 0.0001)), 1.0) * radius); } float _e88 = _group_0_binding_0_fs.far.y; float _e92 = _group_0_binding_0_fs.far.y; float _e96 = _group_0_binding_0_fs.far.z; float _e98 = smooth_edge(_e88, (_e92 + _e96), z_1); return (_e98 * radius); } return 0.0; } vec2 shape_point(uint shape, float s) { float u = fract(s); if ((shape == SHAPE_BOX)) { float t_1 = (u * 8.0); if ((t_1 < 1.0)) { return vec2(1.0, t_1); } if ((t_1 < 3.0)) { return vec2((2.0 - t_1), 1.0); } if ((t_1 < 5.0)) { return vec2(-1.0, (4.0 - t_1)); } if ((t_1 < 7.0)) { return vec2((t_1 - 6.0), -1.0); } return vec2(1.0, (t_1 - 8.0)); } if ((shape == SHAPE_HEXAGON)) { float t_2 = (u * 6.0); float m = floor(t_2); float f = (t_2 - m); float a0_ = (m * 1.0471976); float a1_ = (a0_ + 1.0471976); return mix(vec2(cos(a0_), sin(a0_)), vec2(cos(a1_), sin(a1_)), f); } float a = (6.2831855 * u); return vec2(cos(a), sin(a)); } void main() { vec4 frag_1 = gl_FragCoord; vec3 sum = vec3(0.0); float weights = 1.0; float cover = 0.0; float turn = 0.0; uint k = 1u; uint j_1 = 0u; float reach = 0.0; ivec2 p_1 = ivec2(floor(frag_1.xy)); vec4 _e6 = _group_0_binding_0_fs.size; vec2 top = (vec2(_e6.zw) - vec2(1.0)); vec4 centre = texelFetch(_group_0_binding_3_fs, p_1, 0); float cc = centre.w; float _e19 = _group_0_binding_0_fs.far.w; float radius_1 = (_e19 * 0.5); sum = centre.xyz; uint _e33 = _group_0_binding_0_fs.shape.z; if ((_e33 != 0u)) { float _e36 = dither(p_1); turn = _e36; } vec2 pc = (vec2(p_1) + vec2(0.5)); uint n = _group_0_binding_0_fs.shape.y; bool loop_init = true; while(true) { if (!loop_init) { uint _e133 = k; k = (_e133 + 1u); } loop_init = false; uint _e47 = k; if ((_e47 <= n)) { } else { break; } { uint _e51 = k; uint count = _group_0_binding_0_fs.rings[(_e51 - 1u)]; uint _e56 = k; float dist = ((float(_e56) / float(n)) * radius_1); uint _e61 = k; float stagger = (((_e61 & 1u) == 1u) ? 0.0 : 0.5); j_1 = 0u; bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e130 = j_1; j_1 = (_e130 + 1u); } loop_init_1 = false; uint _e71 = j_1; if ((_e71 < count)) { } else { break; } { uint _e76 = _group_0_binding_0_fs.shape.x; uint _e77 = j_1; float _e80 = turn; vec2 _e84 = shape_point(_e76, (((float(_e77) + stagger) + _e80) / float(count))); vec2 o = (_e84 * dist); vec2 t_3 = clamp(floor((pc + o)), vec2(0.0), top); vec4 tap = texelFetch(_group_0_binding_3_fs, ivec2(t_3), 0); float cs = tap.w; reach = min(cs, (cc + 1.0)); if ((cs < 0.0)) { reach = -(cs); } else { if ((cc < 0.0)) { reach = cs; } } float _e105 = reach; float w = clamp(((_e105 - dist) + 1.0), 0.0, 1.0); vec3 _e112 = sum; sum = (_e112 + (tap.xyz * w)); float _e116 = weights; weights = (_e116 + w); if ((cs < 0.0)) { float _e120 = cover; cover = max(_e120, clamp(((-(cs) - dist) + 1.0), 0.0, 1.0)); } } } } } vec3 _e135 = sum; float _e136 = weights; float _e139 = cover; _fs2p_location0 = vec4((_e135 / vec3(_e136)), _e139); return; } fs_dof_composemainá#version 300 es precision highp float; precision highp int; struct DofU { vec4 size; vec4 far; vec4 near; uvec4 shape; uvec4 rings; }; const uint SHAPE_BOX = 0u; const uint SHAPE_HEXAGON = 1u; const float PI = 3.1415927; layout(std140) uniform DofU_block_0Fragment { DofU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_2_fs; uniform highp sampler2D _group_0_binding_3_fs; layout(location = 0) out vec4 _fs2p_location0; float dither(ivec2 p) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); uint _e29 = bayer[(((p.y & 3) * 4) + (p.x & 3))]; return (float(_e29) / 16.0); } float smooth_edge(float e0_, float e1_, float x) { if ((e1_ == e0_)) { return ((x < e0_) ? 0.0 : 1.0); } float t = clamp(((x - e0_) / (e1_ - e0_)), 0.0, 1.0); return ((t * t) * (3.0 - (2.0 * t))); } float dof_coc(float z_1, float radius) { bool local = false; bool local_1 = false; float _e5 = _group_0_binding_0_fs.near.x; if ((_e5 > 0.5)) { float _e13 = _group_0_binding_0_fs.near.y; local = (z_1 < _e13); } else { local = false; } bool _e16 = local; if (_e16) { float _e20 = _group_0_binding_0_fs.near.z; if ((_e20 < 0.0)) { float _e26 = _group_0_binding_0_fs.near.y; return (-(min(((_e26 - z_1) / max(z_1, 0.0001)), 1.0)) * radius); } float _e38 = _group_0_binding_0_fs.near.y; float _e42 = _group_0_binding_0_fs.near.z; float _e47 = _group_0_binding_0_fs.near.y; float _e48 = smooth_edge((_e38 - _e42), _e47, z_1); return (-((1.0 - _e48)) * radius); } float _e56 = _group_0_binding_0_fs.far.x; if ((_e56 > 0.5)) { float _e64 = _group_0_binding_0_fs.far.y; local_1 = (z_1 > _e64); } else { local_1 = false; } bool _e67 = local_1; if (_e67) { float _e71 = _group_0_binding_0_fs.far.z; if ((_e71 < 0.0)) { float _e77 = _group_0_binding_0_fs.far.y; return (min(((z_1 - _e77) / max(z_1, 0.0001)), 1.0) * radius); } float _e88 = _group_0_binding_0_fs.far.y; float _e92 = _group_0_binding_0_fs.far.y; float _e96 = _group_0_binding_0_fs.far.z; float _e98 = smooth_edge(_e88, (_e92 + _e96), z_1); return (_e98 * radius); } return 0.0; } vec2 shape_point(uint shape, float s) { float u = fract(s); if ((shape == SHAPE_BOX)) { float t_1 = (u * 8.0); if ((t_1 < 1.0)) { return vec2(1.0, t_1); } if ((t_1 < 3.0)) { return vec2((2.0 - t_1), 1.0); } if ((t_1 < 5.0)) { return vec2(-1.0, (4.0 - t_1)); } if ((t_1 < 7.0)) { return vec2((t_1 - 6.0), -1.0); } return vec2(1.0, (t_1 - 8.0)); } if ((shape == SHAPE_HEXAGON)) { float t_2 = (u * 6.0); float m = floor(t_2); float f = (t_2 - m); float a0_ = (m * 1.0471976); float a1_ = (a0_ + 1.0471976); return mix(vec2(cos(a0_), sin(a0_)), vec2(cos(a1_), sin(a1_)), f); } float a = (6.2831855 * u); return vec2(cos(a), sin(a)); } void main() { vec4 frag_2 = gl_FragCoord; float z = 0.0; ivec2 q = ivec2(floor(frag_2.xy)); vec4 sharp = texelFetch(_group_0_binding_1_fs, q, 0); vec4 _e9 = texelFetch(_group_0_binding_2_fs, q, 0); z = _e9.w; float _e12 = z; if ((_e12 <= 0.0)) { float _e18 = _group_0_binding_0_fs.near.w; z = _e18; } float _e19 = z; float _e23 = _group_0_binding_0_fs.far.w; float _e24 = dof_coc(_e19, _e23); vec4 _e33 = _group_0_binding_0_fs.size; vec4 g = textureLod(_group_0_binding_3_fs, vec2(((vec2(q) + vec2(0.5)) / _e33.xy)), 0.0); float blend = max(clamp(((abs(_e24) * 0.5) - 0.5), 0.0, 1.0), g.w); _fs2p_location0 = vec4(mix(sharp.xyz, g.xyz, blend), sharp.w); return; }  Pþ¹¿%»MhiDofU_block_0Fragment_group_0_binding_2_fs_group_0_binding_1_fs_group_0_binding_3_fsvs_dofvs_dof fs_dof_coc fs_dof_coc fs_dof_gather fs_dof_gatherfs_dof_composefs_dof_composew/// language: metal2.2 #include #include using metal::uint; struct DofU { metal::float4 size; metal::float4 far; metal::float4 near; metal::uint4 shape; metal::uint4 rings; }; struct type_7 { metal::float2 inner[3]; }; struct type_10 { uint inner[16]; }; constant uint SHAPE_BOX = 0u; constant uint SHAPE_HEXAGON = 1u; constant float PI = 3.1415927; float dither( metal::int2 p ) { type_10 bayer = type_10 {{0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u}}; uint _e29 = bayer.inner[metal::min(unsigned(as_type(as_type(as_type(as_type(p.y & 3) * as_type(4))) + as_type(p.x & 3))), 15u)]; return static_cast(_e29) / 16.0; } float smooth_edge( float e0_, float e1_, float x ) { if (e1_ == e0_) { return (x < e0_) ? 0.0 : 1.0; } float t = metal::clamp((x - e0_) / (e1_ - e0_), 0.0, 1.0); return (t * t) * (3.0 - (2.0 * t)); } float dof_coc( float z_1, float radius, constant DofU& U ) { bool local = {}; bool local_1 = {}; float _e5 = U.near.x; if (_e5 > 0.5) { float _e13 = U.near.y; local = z_1 < _e13; } else { local = false; } bool _e16 = local; if (_e16) { float _e20 = U.near.z; if (_e20 < 0.0) { float _e26 = U.near.y; return -(metal::min((_e26 - z_1) / metal::max(z_1, 0.0001), 1.0)) * radius; } float _e38 = U.near.y; float _e42 = U.near.z; float _e47 = U.near.y; float _e48 = smooth_edge(_e38 - _e42, _e47, z_1); return -((1.0 - _e48)) * radius; } float _e56 = U.far.x; if (_e56 > 0.5) { float _e64 = U.far.y; local_1 = z_1 > _e64; } else { local_1 = false; } bool _e67 = local_1; if (_e67) { float _e71 = U.far.z; if (_e71 < 0.0) { float _e77 = U.far.y; return metal::min((z_1 - _e77) / metal::max(z_1, 0.0001), 1.0) * radius; } float _e88 = U.far.y; float _e92 = U.far.y; float _e96 = U.far.z; float _e98 = smooth_edge(_e88, _e92 + _e96, z_1); return _e98 * radius; } return 0.0; } metal::float2 shape_point( uint shape, float s ) { float u = metal::fract(s); if (shape == SHAPE_BOX) { float t_1 = u * 8.0; if (t_1 < 1.0) { return metal::float2(1.0, t_1); } if (t_1 < 3.0) { return metal::float2(2.0 - t_1, 1.0); } if (t_1 < 5.0) { return metal::float2(-1.0, 4.0 - t_1); } if (t_1 < 7.0) { return metal::float2(t_1 - 6.0, -1.0); } return metal::float2(1.0, t_1 - 8.0); } if (shape == SHAPE_HEXAGON) { float t_2 = u * 6.0; float m = metal::floor(t_2); float f = t_2 - m; float a0_ = m * 1.0471976; float a1_ = a0_ + 1.0471976; return metal::mix(metal::float2(metal::cos(a0_), metal::sin(a0_)), metal::float2(metal::cos(a1_), metal::sin(a1_)), f); } float a = 6.2831855 * u; return metal::float2(metal::cos(a), metal::sin(a)); } struct vs_dofInput { }; struct vs_dofOutput { metal::float4 member [[position]]; }; vertex vs_dofOutput vs_dof( uint vi [[vertex_id]] ) { type_7 pts = type_7 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; metal::float2 _e13 = pts.inner[metal::min(unsigned(vi), 2u)]; return vs_dofOutput { metal::float4(_e13, 0.0, 1.0) }; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } struct fs_dof_cocInput { }; struct fs_dof_cocOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_dof_cocOutput fs_dof_coc( metal::float4 frag [[position]] , constant DofU& U [[buffer(0)]] , metal::texture2d t_colour [[texture(0)]] , metal::texture2d t_nd [[texture(1)]] ) { metal::float3 c = metal::float3(0.0); float zn = 300000000000000000000000000000000000000.0; int j = 0; metal::int2 p_1 = naga_f2i32(metal::floor(frag.xy)); metal::float4 _e6 = U.size; metal::int2 top = as_type(as_type(naga_f2i32(_e6.xy)) - as_type(metal::int2(1))); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e48 = j; j = as_type(as_type(_e48) + as_type(1)); } loop_init = false; int _e19 = j; if (_e19 < 4) { } else { break; } { int _e24 = j; int _e27 = j; metal::int2 s_1 = metal::min(as_type(as_type(as_type(as_type(p_1) * as_type(2))) + as_type(metal::int2(_e24 & 1, _e27 >> 1u))), top); metal::float3 _e33 = c; uint clamped_lod_e36 = metal::min(uint(0), t_colour.get_num_mip_levels() - 1); metal::float4 _e36 = t_colour.read(metal::min(metal::uint2(s_1), metal::uint2(t_colour.get_width(clamped_lod_e36), t_colour.get_height(clamped_lod_e36)) - 1), clamped_lod_e36); c = _e33 + _e36.xyz; uint clamped_lod_e41 = metal::min(uint(0), t_nd.get_num_mip_levels() - 1); metal::float4 _e41 = t_nd.read(metal::min(metal::uint2(s_1), metal::uint2(t_nd.get_width(clamped_lod_e41), t_nd.get_height(clamped_lod_e41)) - 1), clamped_lod_e41); float z_2 = _e41.w; if (z_2 > 0.0) { float _e45 = zn; zn = metal::min(_e45, z_2); } } } float _e53 = U.near.w; float _e54 = zn; float _e55 = zn; float z_3 = (_e55 < 300000000000000000000000000000000000000.0) ? _e54 : _e53; metal::float3 _e59 = c; float _e65 = U.far.w; float _e66 = dof_coc(z_3, _e65, U); return fs_dof_cocOutput { metal::float4(_e59 * 0.25, _e66 * 0.5) }; } struct fs_dof_gatherInput { }; struct fs_dof_gatherOutput { metal::float4 member_2 [[color(0)]]; }; fragment fs_dof_gatherOutput fs_dof_gather( metal::float4 frag_1 [[position]] , constant DofU& U [[buffer(0)]] , metal::texture2d t_half [[texture(2)]] ) { metal::float3 sum = {}; float weights = 1.0; float cover = 0.0; float turn = 0.0; uint k = 1u; uint j_1 = {}; float reach = {}; metal::int2 p_2 = naga_f2i32(metal::floor(frag_1.xy)); metal::float4 _e6 = U.size; metal::float2 top_1 = static_cast(_e6.zw) - metal::float2(1.0); uint clamped_lod_e14 = metal::min(uint(0), t_half.get_num_mip_levels() - 1); metal::float4 centre = t_half.read(metal::min(metal::uint2(p_2), metal::uint2(t_half.get_width(clamped_lod_e14), t_half.get_height(clamped_lod_e14)) - 1), clamped_lod_e14); float cc = centre.w; float _e19 = U.far.w; float radius_1 = _e19 * 0.5; sum = centre.xyz; uint _e33 = U.shape.z; if (_e33 != 0u) { float _e36 = dither(p_2); turn = _e36; } metal::float2 pc = static_cast(p_2) + metal::float2(0.5); uint n = U.shape.y; uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { uint _e133 = k; k = _e133 + 1u; } loop_init_1 = false; uint _e47 = k; if (_e47 <= n) { } else { break; } { uint _e51 = k; uint count = U.rings[metal::min(unsigned(_e51 - 1u), 3u)]; uint _e56 = k; float dist = (static_cast(_e56) / static_cast(n)) * radius_1; uint _e61 = k; float stagger = ((_e61 & 1u) == 1u) ? 0.0 : 0.5; j_1 = 0u; uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { uint _e130 = j_1; j_1 = _e130 + 1u; } loop_init_2 = false; uint _e71 = j_1; if (_e71 < count) { } else { break; } { uint _e76 = U.shape.x; uint _e77 = j_1; float _e80 = turn; metal::float2 _e84 = shape_point(_e76, ((static_cast(_e77) + stagger) + _e80) / static_cast(count)); metal::float2 o = _e84 * dist; metal::float2 t_3 = metal::clamp(metal::floor(pc + o), metal::float2(0.0), top_1); uint clamped_lod_e94 = metal::min(uint(0), t_half.get_num_mip_levels() - 1); metal::float4 tap = t_half.read(metal::min(metal::uint2(naga_f2i32(t_3)), metal::uint2(t_half.get_width(clamped_lod_e94), t_half.get_height(clamped_lod_e94)) - 1), clamped_lod_e94); float cs = tap.w; reach = metal::min(cs, cc + 1.0); if (cs < 0.0) { reach = -(cs); } else { if (cc < 0.0) { reach = cs; } } float _e105 = reach; float w = metal::clamp((_e105 - dist) + 1.0, 0.0, 1.0); metal::float3 _e112 = sum; sum = _e112 + (tap.xyz * w); float _e116 = weights; weights = _e116 + w; if (cs < 0.0) { float _e120 = cover; cover = metal::max(_e120, metal::clamp((-(cs) - dist) + 1.0, 0.0, 1.0)); } } } } } metal::float3 _e135 = sum; float _e136 = weights; float _e139 = cover; return fs_dof_gatherOutput { metal::float4(_e135 / metal::float3(_e136), _e139) }; } struct fs_dof_composeInput { }; struct fs_dof_composeOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_dof_composeOutput fs_dof_compose( metal::float4 frag_2 [[position]] , constant DofU& U [[buffer(0)]] , metal::texture2d t_colour [[texture(0)]] , metal::texture2d t_nd [[texture(1)]] , metal::texture2d t_half [[texture(2)]] , metal::sampler s_linear [[sampler(0)]] ) { float z = {}; metal::int2 q = naga_f2i32(metal::floor(frag_2.xy)); uint clamped_lod_e6 = metal::min(uint(0), t_colour.get_num_mip_levels() - 1); metal::float4 sharp = t_colour.read(metal::min(metal::uint2(q), metal::uint2(t_colour.get_width(clamped_lod_e6), t_colour.get_height(clamped_lod_e6)) - 1), clamped_lod_e6); uint clamped_lod_e9 = metal::min(uint(0), t_nd.get_num_mip_levels() - 1); metal::float4 _e9 = t_nd.read(metal::min(metal::uint2(q), metal::uint2(t_nd.get_width(clamped_lod_e9), t_nd.get_height(clamped_lod_e9)) - 1), clamped_lod_e9); z = _e9.w; float _e12 = z; if (_e12 <= 0.0) { float _e18 = U.near.w; z = _e18; } float _e19 = z; float _e23 = U.far.w; float _e24 = dof_coc(_e19, _e23, U); metal::float4 _e33 = U.size; metal::float4 g = t_half.sample(s_linear, (static_cast(q) + metal::float2(0.5)) / _e33.xy, metal::level(0.0)); float blend = metal::max(metal::clamp((metal::abs(_e24) * 0.5) - 0.5, 0.0, 1.0), g.w); return fs_dof_composeOutput { metal::float4(metal::mix(sharp.xyz, g.xyz, blend), sharp.w) }; }  Ph¨ ¦û±#„vs_dofmain>struct DofU { float4 size; float4 far; float4 near; uint4 shape; uint4 rings; }; static const uint _39[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; static const float2 _153[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static float4 gl_Position; static int gl_VertexIndex; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float4 gl_Position : SV_Position; }; void vert_main() { gl_Position = float4(_153[min(uint(gl_VertexIndex), 2u)], 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; return stage_output; }  fs_dof_cocmain²struct DofU { float4 size; float4 far; float4 near; uint4 shape; uint4 rings; }; static const uint _45[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; cbuffer U : register(b0) { DofU U_1_m0 : packoffset(c0); }; Texture2D t_colour : register(t0); Texture2D t_nd : register(t1); static float4 gl_FragCoord; static float4 _239; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _239 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float smooth_edge(float e0, float e1, float x) { if (e1 == e0) { return (x < e0) ? 0.0f : 1.0f; } float _83 = clamp((x - e0) / (e1 - e0), 0.0f, 1.0f); return (_83 * _83) * (3.0f - (2.0f * _83)); } float dof_coc(float z, float radius) { bool _98 = false; bool _101 = false; if (U_1_m0.near.x > 0.5f) { _98 = z < U_1_m0.near.y; } else { _98 = false; } if (_98) { if (U_1_m0.near.z < 0.0f) { return (-min((U_1_m0.near.y - z) / max(z, 9.9999997473787516355514526367188e-05f), 1.0f)) * radius; } return (-(1.0f - smooth_edge(U_1_m0.near.y - U_1_m0.near.z, U_1_m0.near.y, z))) * radius; } if (U_1_m0.far.x > 0.5f) { _101 = z > U_1_m0.far.y; } else { _101 = false; } if (_101) { if (U_1_m0.far.z < 0.0f) { return min((z - U_1_m0.far.y) / max(z, 9.9999997473787516355514526367188e-05f), 1.0f) * radius; } return smooth_edge(U_1_m0.far.y, U_1_m0.far.y + U_1_m0.far.z, z) * radius; } return 0.0f; } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); float zn = 3.0000000054977557577780399428115e+38f; int j = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); int2 _267 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); int2 _273 = int2(clamp(U_1_m0.size.xy, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))) - int2(1, 1); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(j < 4)) { break; } int2 _309 = min(((_267 * int2(2, 2)) + int2(j & 1, j >> int(1u))), _273); int _311; spvTextureSize(t_colour, 0u, _311); int _313 = int(min(uint(0), uint(int(_311) - 1))); uint _314_dummy_parameter; c += t_colour.Load(int3(int2(min(uint2(_309), uint2(int2(spvTextureSize(t_colour, uint(_313), _314_dummy_parameter)) - int2(1, 1)))), _313)).xyz; int _321; spvTextureSize(t_nd, 0u, _321); int _323 = int(min(uint(0), uint(int(_321) - 1))); uint _324_dummy_parameter; float4 _328 = t_nd.Load(int3(int2(min(uint2(_309), uint2(int2(spvTextureSize(t_nd, uint(_323), _324_dummy_parameter)) - int2(1, 1)))), _323)); float _329 = _328.w; if (_329 > 0.0f) { zn = min(zn, _329); } j++; continue; } _239 = float4(c * 0.25f, dof_coc((zn < 3.0000000054977557577780399428115e+38f) ? zn : U_1_m0.near.w, U_1_m0.far.w) * 0.5f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._239 = _239; return stage_output; }  fs_dof_gathermain¹struct DofU { float4 size; float4 far; float4 near; uint4 shape; uint4 rings; }; static const uint _44[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; cbuffer U : register(b0) { DofU U_1_m0 : packoffset(c0); }; Texture2D t_half : register(t2); static float4 gl_FragCoord; static float4 _238; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _238 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float dither(int2 p) { return float(_44[min(uint(((p.y & 3) * 4) + (p.x & 3)), 15u)]) / 16.0f; } float2 shape_point(uint shape, float s) { float _188 = frac(s); if (shape == 0u) { float _192 = _188 * 8.0f; if (_192 < 1.0f) { return float2(1.0f, _192); } if (_192 < 3.0f) { return float2(2.0f - _192, 1.0f); } if (_192 < 5.0f) { return float2(-1.0f, 4.0f - _192); } if (_192 < 7.0f) { return float2(_192 - 6.0f, -1.0f); } return float2(1.0f, _192 - 8.0f); } if (shape == 1u) { float _217 = _188 * 6.0f; float _218 = floor(_217); float _219 = _217 - _218; float _220 = _218 * 1.0471975803375244140625f; float _221 = _220 + 1.0471975803375244140625f; return lerp(float2(cos(_220), sin(_220)), float2(cos(_221), sin(_221)), float2(_219, _219)); } float _230 = 6.283185482025146484375f * _188; return float2(cos(_230), sin(_230)); } void frag_main() { uint k = 1u; float weights = 1.0f; float reach = 0.0f; float turn = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float cover = 0.0f; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); int2 _268 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); float2 _272 = U_1_m0.size.zw - float2(1.0f, 1.0f); int _273; spvTextureSize(t_half, 0u, _273); int _276 = int(min(uint(0), uint(int(_273) - 1))); uint _277_dummy_parameter; float4 _281 = t_half.Load(int3(int2(min(uint2(_268), uint2(int2(spvTextureSize(t_half, uint(_276), _277_dummy_parameter)) - int2(1, 1)))), _276)); float _282 = _281.w; float _285 = U_1_m0.far.w * 0.5f; sum = _281.xyz; if (U_1_m0.shape.z != 0u) { turn = dither(_268); } float2 _296 = float2(_268) + float2(0.5f, 0.5f); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k <= U_1_m0.shape.y)) { break; } uint _328 = min((k - 1u), 3u); float _335 = (float(k) / float(U_1_m0.shape.y)) * _285; float _339 = ((k & 1u) == 1u) ? 0.0f : 0.5f; uint j = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(j < U_1_m0.rings[_328])) { break; } int _377; spvTextureSize(t_half, 0u, _377); int _379 = int(min(uint(0), uint(int(_377) - 1))); uint _380_dummy_parameter; float4 _384 = t_half.Load(int3(int2(min(uint2(int2(clamp(clamp(floor(_296 + (shape_point(U_1_m0.shape.x, ((float(j) + _339) + turn) / float(U_1_m0.rings[_328])) * _335)), float2(0.0f, 0.0f), _272), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_half, uint(_379), _380_dummy_parameter)) - int2(1, 1)))), _379)); float _385 = _384.w; reach = min(_385, _282 + 1.0f); if (_385 < 0.0f) { reach = -_385; } else { if (_282 < 0.0f) { reach = _385; } } float _399 = clamp((reach - _335) + 1.0f, 0.0f, 1.0f); sum += (_384.xyz * _399); weights += _399; if (_385 < 0.0f) { cover = max(cover, clamp(((-_385) - _335) + 1.0f, 0.0f, 1.0f)); } j++; continue; } k++; continue; } _238 = float4(sum / float3(weights, weights, weights), cover); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._238 = _238; return stage_output; } fs_dof_composemain§ struct DofU { float4 size; float4 far; float4 near; uint4 shape; uint4 rings; }; static const uint _48[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; cbuffer U : register(b0) { DofU U_1_m0 : packoffset(c0); }; Texture2D t_colour : register(t0); Texture2D t_nd : register(t1); Texture2D t_half : register(t2); SamplerState s_linear : register(s0); static float4 gl_FragCoord; static float4 _242; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _242 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float smooth_edge(float e0, float e1, float x) { if (e1 == e0) { return (x < e0) ? 0.0f : 1.0f; } float _86 = clamp((x - e0) / (e1 - e0), 0.0f, 1.0f); return (_86 * _86) * (3.0f - (2.0f * _86)); } float dof_coc(float z, float radius) { bool _101 = false; bool _104 = false; if (U_1_m0.near.x > 0.5f) { _101 = z < U_1_m0.near.y; } else { _101 = false; } if (_101) { if (U_1_m0.near.z < 0.0f) { return (-min((U_1_m0.near.y - z) / max(z, 9.9999997473787516355514526367188e-05f), 1.0f)) * radius; } return (-(1.0f - smooth_edge(U_1_m0.near.y - U_1_m0.near.z, U_1_m0.near.y, z))) * radius; } if (U_1_m0.far.x > 0.5f) { _104 = z > U_1_m0.far.y; } else { _104 = false; } if (_104) { if (U_1_m0.far.z < 0.0f) { return min((z - U_1_m0.far.y) / max(z, 9.9999997473787516355514526367188e-05f), 1.0f) * radius; } return smooth_edge(U_1_m0.far.y, U_1_m0.far.y + U_1_m0.far.z, z) * radius; } return 0.0f; } void frag_main() { float z = 0.0f; int2 _264 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); int _265; spvTextureSize(t_colour, 0u, _265); int _268 = int(min(uint(0), uint(int(_265) - 1))); uint _269_dummy_parameter; float4 _273 = t_colour.Load(int3(int2(min(uint2(_264), uint2(int2(spvTextureSize(t_colour, uint(_268), _269_dummy_parameter)) - int2(1, 1)))), _268)); int _274; spvTextureSize(t_nd, 0u, _274); int _276 = int(min(uint(0), uint(int(_274) - 1))); uint _277_dummy_parameter; z = t_nd.Load(int3(int2(min(uint2(_264), uint2(int2(spvTextureSize(t_nd, uint(_276), _277_dummy_parameter)) - int2(1, 1)))), _276)).w; if (z <= 0.0f) { z = U_1_m0.near.w; } float4 _301 = t_half.SampleLevel(s_linear, (float2(_264) + float2(0.5f, 0.5f)) / U_1_m0.size.xy, 0.0f); float _307 = max(clamp((abs(dof_coc(z, U_1_m0.far.w)) * 0.5f) - 0.5f, 0.0f, 1.0f), _301.w); _242 = float4(lerp(_273.xyz, _301.xyz, float3(_307, _307, _307)), _273.w); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._242 = _242; return stage_output; }  Ph¨ ¦û±#„HSLTDofUPsizeÿÿÿÿfarÿÿÿÿnear ÿÿÿÿshape0ÿÿÿÿrings@ÿÿÿÿU_blockPUt_colourÿÿÿÿt_ndÿÿÿÿvs_dofvs_dof fs_dof_coc fs_dof_coc fs_dof_gather fs_dof_gatherfs_dof_composefs_dof_compose$4#f2 GLSL.std.450ôvs_dofïò fs_dof_coc  {fs_dof_gatherxz )fs_dof_compose&( {)H#H#H# H#0H#@G GG"G!GH#G"G!G"G!G"G!G"G!Gï *Gò G G Gx GzG& G(     +    ++++ÛI@ ; ;;;  ;!"+#+$+% +& +'+(+)+* ++ +,+-+. +/,0#$%&'() *+,-./+ 1+ 2+3€A 5 =!H+I€?+J+K@+L@@!_ `+b?*c+d·Ñ8 f.g.i k l!¶ +·A+¸ @+¹€@+º€¿+»à@+¼À@+½’ †?+¾ÛÉ@ ð;ðï ó;óò!õ, öºº, ÷Lº, øºL, ùö÷ø û ý  ;;ó + ,,JJJ+æ±a+ + +€>    +Ï, +!ÿÿÿN, "!!/ 0/1,/2+3ÿÿÿÿ,/433,T,^;x;óz, ~II, bb, €JJ.‚.ˆ.Š,˜ ¡ ¢,ù;&;ó(.0,:,BW6!"7 ø;540ù6ø6Q 7 Ç 871„ 982Q : Ç ;:1€ <9; >&<,A=?4>=@?pA@ˆBA3þB86GH7D7E7FøCùMøM´NED÷OúNPOøP¸QFD©RQJIþRøOƒSFDƒTEDˆUST V+UJI…WVV…XKVƒYLX…ZWYþZ86^_7\7]ø[;feg;fhiA`aùjøjAlma$=nmºonb÷púoqrøqAlsa$=ts¸u\t>euùpør>ecùpøp=ve÷wúvxwøxAlya$$=zy¸{zJ÷|ú{}|ø}Al~a$=~ƒ€\ �(\dˆ‚€� ƒ%‚I„ƒ……„]þ…ø|Al†a$=‡†Alˆa$$=‰ˆƒЇ‰Al‹a$=Œ‹9�GŠŒ\ƒŽI��Ž…��]þ�øwAl‘a=’‘º“’b÷”ú“•–ø•Al—a=˜—º™\˜>h™ù”ø–>hcù”ø”=šh÷›úšœ›øœAl�a$=ž�¸ŸžJ÷ úŸ¡ ø¡Al¢a=£¢ƒ¤\£ ¥(\dˆ¦¤¥ §%¦I…¨§]þ¨ø Al©a=ª©Al«a=¬«Al­a$=®­�¯¬®9°Gª¯\…±°]þ±ø›þJ86 µ¶7³7´ø²ù¿ø¿ À ´ªÁ³÷ÂúÁÃÂøÃ…ÄÀ·¸ÅÄI÷ÆúÅÇÆøÇP ÈIÄþÈøƸÉÄL÷ÊúÉËÊø˃ÌKÄP ÍÌIþÍøʸÎĸ÷ÏúÎÐÏøЃѹÄP ÒºÑþÒøϸÓÄ»÷ÔúÓÕÔøÕƒÖļP ×Öºþ×øÔƒØÄ·P ÙIØþÙøªÚ³÷ÛúÚÜÛøÜ…ÝÀ¼ Þ݃ßÝÞ…àÞ½�áའâà ã àP äâã åá æ áP çåæP éßß  è.äçéþèøÛ…ê¾À ëê ì êP íëìþí86ôõøî;ûúù=ñïùüøü þ&ñ$Aýÿúþ= ÿPJI>òAò=>ý86 õø;;;;054= A` = =ùøO       #+ "n$#Ak% =&%O '&&  (+' "n)(‚*)ù+ø+ö,.ù6ø6=/75ª1827›98÷:ú9,:ø:Q;7ª<;©=<P/>=‚/?7>>5?ù-ø-= @±A@2÷BúABCøCù,øBùDøDPG„F$G= HÇ IH= Jà KJPLIK€MFL N'M*=Oj P ‚ QP  R&QgS R‚UST V&NU_W VROXWW�YOX>Yj Z‚ [Z  \&[g]\‚_]^ `&N__a`\QbaºcbJ÷dúcedøe=f g%fb>gùdødùEøEù.ø.= h€ ih>iù+ø,Alj $ =kj=l=m¸nm©onlk=pŽqpAlr  =sr9t^os…utbPvqu> vý86{õøw;=†;ƒI;‰Š;…J;�‚;=‡ˆ;„J;0±4;0Ô4=yxA`|=}ù‹ø‹O Œyy  �Œ  Ž+� "n�ŽAk�|=‘�O ’‘‘ƒ “’~j ”}‚ •”  –&•g—}–‚™—˜ š&�™_›}š–Qœ›Al�| =ž�…ŸžbO ››>� A¢£| $=¤£«¥¤÷¦ú¥§¦ø§9¨!�>…¨ù¦ø¦o ©�� ª©A¢«| =¬«ù­ø­ö®°ù²ø²=/³±ª1´2³›µ´÷¶úµ®¶ø¶Q·³ª¸·©¹¸P/º¹‚/»³º>±»ù¯ø¯=¼†²½¼¬÷¾ú½¾¿ø¿ù®ø¾ùÀøÀ=†‚àÄ&à A¢Å|'Ä=ÆÅ=džpÈÇpɬˆÊÈÉ…ËÊŸ=̆ÇÍ̪ÎÍ©ÏÎJb>‡ùÐøÐöÑÓùÕøÕ=/ÖÔª1×2Ö›Ø×÷ÙúØÑÙøÙQÚÖªÛÚ©ÜÛP/ÝÜ‚/ÞÖÝ>ÔÞùÒøÒ=߇°à߯÷áúàáâøâùÑøáùãøãA¢å| =æå=ç‡pèç�éèÏ=ê…�ëéêpìÆˆíëì9 îµæíŽ ïîË� ðªï  ñð  ò+ñ€“  ó+ò "nôój õ}‚ öõ  ÷&ögø}÷‚úøù û&ôú_ü}û÷Qýü�þœI ÿ%ýþ>‰ÿ¸ýJ÷úøý>‰ùø¸œJ÷úø>‰ýùøùø=‰ƒ Ë�  I  + JI= �O üüŽ  � >�=ƒ� >ƒ¸ýJ÷úø=„ýƒË�I +JI (>„ùøùäøäùÓøÓ=‡€>‡ùÐøÑùÁøÁù°ø°=†€>†ù­ø®=�= ƒP!   ˆ"!=#„P$"#>z$ý86)õø%;/0='&A`*=+=,=-= .ù1ø1O 2''  32  4+3 "n54j 6+‚ 76  8&7g9+8‚;9: <&5;_=+<8j >,‚ ?>  @&?gA,@‚CAB D&5C_E,D@QFE>/F=G/¼HGJ÷IúHJIøJAlK*$ =LK>/LùIøI=M/AlN* =ON9P^MOo Q5� RQAkS*=TSO UTTˆ VRUVWX-.XYXVJ ZP…[Zbƒ\[b ]+\JIQ^Y _(]^O`==OaYYPc___ b.`acQd=Pebd>(eý8 P5QîÔoZγÊË(hedra_engine/shaders/render/post_effectsjÔý÷ BTSR [[o�[š8 ”oŠ”�”gô”÷ƒ ëoZË’ %¬o”¬æz®¶‹ 0:o vs_fullfs_ssao fs_ssao_blurfs_glow_brightfs_glow_blur_hfs_glow_blur_vfs_post.Ut_srct_auxt_glows_linear vs_fullvs_fullfs_ssaofs_ssao fs_ssao_blur fs_ssao_blurfs_glow_brightfs_glow_brightfs_glow_blur_hfs_glow_blur_hfs_glow_blur_vfs_glow_blur_vfs_postfs_postTZstruct PostU { target_size: vec4, source_size: vec4, flags: vec4, tone: vec4, glow: vec4, levels_low: vec4, levels_high: vec4, bcs: vec4, ssao: vec4, ssao2_: vec4, inv_proj: mat4x4, proj: mat4x4, } struct Near { a0_: vec3, ax: vec3, ay: vec3, } const POST_TONEMAP: u32 = 1u; const POST_GLOW: u32 = 2u; const POST_ADJUST: u32 = 4u; const POST_DOWNSAMPLE: u32 = 8u; const POST_OVERLAY: u32 = 16u; const POST_STRAIGHT: u32 = 32u; const POST_SSAO_HALF: u32 = 64u; const TONEMAP_LINEAR: u32 = 0u; const TONEMAP_REINHARD: u32 = 1u; const TONEMAP_FILMIC: u32 = 2u; const TONEMAP_ACES: u32 = 3u; const TONEMAP_AGX: u32 = 4u; const GLOW_BLEND_ADDITIVE: u32 = 0u; const GLOW_BLEND_SCREEN: u32 = 1u; const GLOW_BLEND_SOFTLIGHT: u32 = 2u; const GLOW_BLEND_REPLACE: u32 = 3u; const GLOW_BLEND_MIX: u32 = 4u; const SSAO_SAMPLES: i32 = 12i; const SSAO_TURNS: f32 = 7f; const SSAO_DETAIL_RADIUS: f32 = 0.25f; const SSAO_DEPTH_BIAS: f32 = 0.0009765625f; const PI: f32 = 3.1415927f; @group(0) @binding(0) var U: PostU; @group(0) @binding(1) var t_src: texture_2d; @group(0) @binding(2) var t_aux: texture_2d; @group(0) @binding(3) var t_glow: texture_2d; @group(0) @binding(4) var s_linear: sampler; fn sat3_(c_4: vec3) -> vec3 { return clamp(c_4, vec3(0f), vec3(1f)); } fn linear_to_srgb(c_5: vec3) -> vec3 { let lo = (c_5 * 12.92f); let hi = ((1.055f * pow(c_5, vec3(0.41666666f))) - vec3(0.055f)); return select(hi, lo, (c_5 <= vec3(0.0031308f))); } fn srgb_to_linear(c_6: vec3) -> vec3 { let lo_1 = (c_6 / vec3(12.92f)); let hi_1 = pow(((c_6 + vec3(0.055f)) / vec3(1.055f)), vec3(2.4f)); return select(hi_1, lo_1, (c_6 <= vec3(0.04045f))); } fn filmic_curve(x_1: vec3) -> vec3 { return ((((x_1 * ((0.88f * x_1) + vec3((0.1f * 0.6f)))) + vec3((0.2f * 0.01f))) / ((x_1 * ((0.88f * x_1) + vec3(0.6f))) + vec3((0.2f * 0.3f)))) - vec3((0.01f / 0.3f))); } fn aces_curve(c_7: vec3, white: f32) -> vec3 { let x_2 = vec3((1.8f * dot(vec3(0.59719f, 0.35458f, 0.04823f), c_7)), (1.8f * dot(vec3(0.076f, 0.90834f, 0.01566f), c_7)), (1.8f * dot(vec3(0.0284f, 0.13383f, 0.83777f), c_7))); let t = (((x_2 * (x_2 + vec3(0.0245786f))) - vec3(0.000090537f)) / ((x_2 * ((0.983729f * x_2) + vec3(0.432951f))) + vec3(0.238081f))); let o = vec3(dot(vec3(1.60475f, -0.53108f, -0.07367f), t), dot(vec3(-0.10208f, 1.10813f, -0.00605f), t), dot(vec3(-0.00327f, -0.07276f, 1.07602f), t)); let w_3 = (1.8f * white); let wt = (((w_3 * (w_3 + 0.0245786f)) - 0.000090537f) / ((w_3 * ((0.983729f * w_3) + 0.432951f)) + 0.238081f)); return (o / vec3(wt)); } fn agx_curve(c_8: vec3) -> vec3 { var v: vec3; let inset = mat3x3(vec3(0.54490817f, 0.14044006f, 0.08882741f), vec3(0.37377945f, 0.7541096f, 0.17887713f), vec3(0.08138498f, 0.10543358f, 0.73225f)); let outset = mat3x3(vec3(1.964551f, -0.29932243f, -0.16436833f), vec3(-0.85585845f, 1.3264511f, -0.23822464f), vec3(-0.10886711f, -0.02708402f, 1.4026654f)); v = (inset * max(c_8, vec3(0.0000000002f))); let _e34 = v; v = ((clamp(log2(_e34), vec3(-12.473931f), vec3(4.0260687f)) - vec3(-12.473931f)) / vec3((4.0260687f - -12.473931f))); let _e44 = v; let _e45 = v; let x2_ = (_e44 * _e45); let x4_ = (x2_ * x2_); let _e48 = v; let _e56 = v; let _e64 = v; let p_2 = ((((((0.021f * _e48) + (4.0111f * x2_)) - ((25.682f * x2_) * _e56)) + (70.359f * x4_)) - ((74.778f * x4_) * _e64)) + ((27.069f * x4_) * x2_)); return (outset * pow(max(p_2, vec3(0.0000000001f)), vec3(2.4f))); } fn tone_curve(c_9: vec3, mode: u32, white_1: f32) -> vec3 { if (mode == TONEMAP_REINHARD) { return (((white_1 * c_9) + c_9) / ((c_9 * white_1) + vec3(white_1))); } if (mode == TONEMAP_FILMIC) { let _e13 = filmic_curve(c_9); let _e15 = filmic_curve(vec3(white_1)); return (_e13 / _e15); } if (mode == TONEMAP_ACES) { let _e19 = aces_curve(c_9, white_1); return _e19; } if (mode == TONEMAP_AGX) { let _e22 = agx_curve(c_9); return _e22; } return c_9; } fn ssao_angle(q: vec2) -> f32 { var bayer: array = array(0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); let i_1 = (((q.y & 3i) * 4i) + (q.x & 3i)); let _e30 = bayer[i_1]; return ((6.2831855f * f32(_e30)) / 16f); } fn near_plane() -> Near { var n: Near; let _e2 = U.inv_proj; let c_12 = (_e2 * vec4(0f, 0f, 0f, 1f)); let _e11 = U.inv_proj; let x_3 = (_e11 * vec4(1f, 0f, 0f, 1f)); let _e20 = U.inv_proj; let y_1 = (_e20 * vec4(0f, 1f, 0f, 1f)); n.a0_ = (c_12.xyz / vec3(c_12.w)); let _e39 = n.a0_; n.ax = ((x_3.xyz / vec3(x_3.w)) - _e39); let _e47 = n.a0_; n.ay = ((y_1.xyz / vec3(y_1.w)) - _e47); let _e49 = n; return _e49; } fn view_pos(np: Near, p: vec2, d: f32) -> vec3 { let _e9 = U.target_size.z; let _e19 = U.target_size.w; let ndc = vec2((((2f * p.x) * _e9) - 1f), (1f - ((2f * p.y) * _e19))); let a_2 = ((np.a0_ + (ndc.x * np.ax)) + (ndc.y * np.ay)); let _e36 = U.ssao2_.w; if (_e36 > 0.5f) { return vec3(a_2.xy, -(d)); } return (a_2 * (d / -(a_2.z))); } fn ssao_estimate(np_1: Near, pc: vec2, p_1: vec3, n_1: vec3, depth: f32, radius: f32, angle: f32) -> f32 { var sum_2: f32 = 0f; var i: i32 = 0i; var local_6: bool; var local_7: bool; var local_8: bool; let _e10 = U.ssao2_.z; let _e15 = U.ssao2_.w; let r_px = ((radius * _e10) / select(depth, 1f, (_e15 > 0.5f))); if (r_px < 1f) { return 1f; } let _e26 = U.target_size; let size = vec2(_e26.xy); let r2_ = (radius * radius); let bias = (depth * SSAO_DEPTH_BIAS); loop { let _e37 = i; if (_e37 < SSAO_SAMPLES) { } else { break; } { let _e40 = i; let alpha = ((f32(_e40) + 0.5f) / 12f); let theta = (((6.2831855f * alpha) * SSAO_TURNS) + angle); let s = (pc + ((r_px * alpha) * vec2(cos(theta), sin(theta)))); let si = vec2(floor(s)); if !((si.x < 0i)) { local_6 = (si.y < 0i); } else { local_6 = true; } let _e68 = local_6; if !(_e68) { local_7 = (si.x >= size.x); } else { local_7 = true; } let _e76 = local_7; if !(_e76) { local_8 = (si.y >= size.y); } else { local_8 = true; } let _e84 = local_8; if _e84 { continue; } let _e87 = textureLoad(t_src, si, 0i); let d_1 = _e87.w; if (d_1 <= 0f) { continue; } let _e95 = view_pos(np_1, (vec2(si) + vec2(0.5f)), d_1); let v_1 = (_e95 - p_1); let vv = dot(v_1, v_1); let _e98 = sum_2; let _e113 = U.ssao2_.x; sum_2 = (_e98 + (max((1f - (vv / r2_)), 0f) * max((((dot(v_1, n_1) - bias) / sqrt((vv + 0.0001f))) - _e113), 0f))); } continuing { let _e120 = i; i = (_e120 + 1i); } } let _e125 = U.ssao.y; let _e126 = sum_2; let _e139 = U.ssao.z; return pow(max(clamp((1f - ((_e125 * _e126) / 12f)), 0f, 1f), 0.000001f), _e139); } fn glow_weight_h(k_2: i32) -> f32 { var w: array = array(0.174938f, 0.165569f, 0.140367f, 0.106595f); let _e8 = w[k_2]; return _e8; } fn glow_weight_v(k_3: i32) -> f32 { var w_1: array = array(0.288713f, 0.233062f, 0.122581f); let _e7 = w_1[k_3]; return _e7; } fn glow_blend(c_10: vec3, g_1: vec3, mode_1: u32) -> vec3 { if (mode_1 == GLOW_BLEND_ADDITIVE) { return (c_10 + g_1); } if (mode_1 == GLOW_BLEND_SCREEN) { let _e8 = sat3_(c_10); let _e9 = sat3_(g_1); return max(((_e8 + _e9) - (_e8 * _e9)), vec3(0f)); } if (mode_1 == GLOW_BLEND_SOFTLIGHT) { let _e18 = sat3_(c_10); let h = ((g_1 * 0.5f) + vec3(0.5f)); let dark = (_e18 - (((vec3(1f) - (2f * h)) * _e18) * (vec3(1f) - _e18))); let low = (_e18 + (((2f * h) - vec3(1f)) * ((((4f * _e18) * ((4f * _e18) + vec3(1f))) * (_e18 - vec3(1f))) + (7f * _e18)))); let high = (_e18 + (((2f * h) - vec3(1f)) * (sqrt(_e18) - _e18))); return select(select(high, low, (_e18 <= vec3(0.25f))), dark, (h <= vec3(0.5f))); } if (mode_1 == GLOW_BLEND_REPLACE) { return g_1; } return c_10; } fn apply_bcs(c_in: vec3) -> vec3 { var c_11: vec3; let _e6 = U.bcs.x; c_11 = mix(vec3(0f), c_in, _e6); let _e11 = c_11; let _e15 = U.bcs.y; c_11 = mix(vec3(0.5f), _e11, _e15); let _e17 = c_11; let _e24 = c_11; let _e28 = U.bcs.z; c_11 = mix(vec3((dot(_e17, vec3(1f)) / 3f)), _e24, _e28); let _e30 = c_11; return _e30; } fn bspline_weights(a_1: f32) -> vec4 { let w0_ = (0.16666667f * ((a_1 * ((a_1 * (-(a_1) + 3f)) - 3f)) + 1f)); let w1_ = (0.16666667f * (((a_1 * a_1) * ((3f * a_1) - 6f)) + 4f)); let w2_ = (0.16666667f * ((a_1 * ((a_1 * ((-3f * a_1) + 3f)) + 3f)) + 1f)); let w3_ = (0.16666667f * ((a_1 * a_1) * a_1)); return vec4((w0_ + w1_), (w2_ + w3_), (-1f + (w1_ / (w0_ + w1_))), (1f + (w3_ / (w2_ + w3_)))); } fn glow_bicubic(uv: vec2, lod: i32) -> vec3 { let _e3 = textureDimensions(t_glow, lod); let size_1 = vec2(_e3); let texel = (vec2(1f) / size_1); let st = ((uv * size_1) + vec2(0.5f)); let i_2 = floor(st); let f = (st - i_2); let _e15 = bspline_weights(f.x); let _e17 = bspline_weights(f.y); let l = f32(lod); let p0_ = ((vec2((i_2.x + _e15.z), (i_2.y + _e17.z)) - vec2(0.5f)) * texel); let p1_ = ((vec2((i_2.x + _e15.w), (i_2.y + _e17.z)) - vec2(0.5f)) * texel); let p2_ = ((vec2((i_2.x + _e15.z), (i_2.y + _e17.w)) - vec2(0.5f)) * texel); let p3_ = ((vec2((i_2.x + _e15.w), (i_2.y + _e17.w)) - vec2(0.5f)) * texel); let _e67 = textureSampleLevel(t_glow, s_linear, p0_, l); let _e73 = textureSampleLevel(t_glow, s_linear, p1_, l); let _e82 = textureSampleLevel(t_glow, s_linear, p2_, l); let _e88 = textureSampleLevel(t_glow, s_linear, p3_, l); return ((_e17.x * ((_e15.x * _e67.xyz) + (_e15.y * _e73.xyz))) + (_e17.y * ((_e15.x * _e82.xyz) + (_e15.y * _e88.xyz)))); } fn glow_sum(uv_1: vec2) -> vec3 { var w_2: array; var g_2: vec3 = vec3(0f); var k_4: i32 = 0i; let _e4 = U.levels_low.x; let _e8 = U.levels_low.y; let _e12 = U.levels_low.z; let _e16 = U.levels_low.w; let _e20 = U.levels_high.x; let _e24 = U.levels_high.y; let _e28 = U.levels_high.z; w_2 = array(_e4, _e8, _e12, _e16, _e20, _e24, _e28); loop { let _e36 = k_4; if (_e36 < 7i) { } else { break; } { let _e39 = k_4; let _e41 = w_2[_e39]; if (_e41 != 0f) { let _e44 = g_2; let _e45 = k_4; let _e46 = glow_bicubic(uv_1, _e45); let _e47 = k_4; let _e49 = w_2[_e47]; g_2 = (_e44 + (_e46 * _e49)); } } continuing { let _e53 = k_4; k_4 = (_e53 + 1i); } } let _e55 = g_2; return _e55; } @vertex fn vs_full(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4 { var pts: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); let _e13 = pts[vi]; return vec4(_e13, 0f, 1f); } @fragment fn fs_ssao(@builtin(position) pos: vec4) -> @location(0) vec4 { var ao: f32; let h_1 = vec2(floor(pos.xy)); let _e7 = U.flags.x; let k_5 = select(1i, 2i, ((_e7 & POST_SSAO_HALF) != 0u)); let q_1 = (h_1 * k_5); let nd = textureLoad(t_src, q_1, 0i); if (nd.w <= 0f) { return vec4(1f); } let pc_1 = (vec2(q_1) + vec2(0.5f)); let _e28 = near_plane(); let _e30 = view_pos(_e28, pc_1, nd.w); let n_2 = normalize(nd.xyz); let _e33 = ssao_angle(h_1); let _e38 = U.ssao.x; let _e39 = ssao_estimate(_e28, pc_1, _e30, n_2, nd.w, _e38, _e33); ao = _e39; let _e44 = U.ssao.w; if (_e44 != 0f) { let _e47 = ao; let _e52 = U.ssao.x; let _e55 = ssao_estimate(_e28, pc_1, _e30, n_2, nd.w, (_e52 * SSAO_DETAIL_RADIUS), _e33); let _e59 = U.ssao.w; ao = (_e47 * mix(1f, _e55, _e59)); } let _e63 = ao; let _e64 = ao; let _e65 = ao; return vec4(_e63, _e64, _e65, 1f); } @fragment fn fs_ssao_blur(@builtin(position) pos_1: vec4) -> @location(0) vec4 { var sum: f32 = 0f; var weights: f32 = 0f; var dy: i32 = -2i; var dx: i32; var local: bool; var local_1: bool; var local_2: bool; var ao_1: f32; let q_2 = vec2(floor(pos_1.xy)); let nd_1 = textureLoad(t_aux, q_2, 0i); if (nd_1.w <= 0f) { return vec4(1f); } let n_3 = normalize(nd_1.xyz); let _e14 = near_plane(); let _e20 = view_pos(_e14, (vec2(q_2) + vec2(0.5f)), nd_1.w); let _e24 = U.ssao2_.y; let tol = (((0.1f * (1f - _e24)) + 0.002f) * nd_1.w); let _e36 = U.flags.x; let k_6 = select(1i, 2i, ((_e36 & POST_SSAO_HALF) != 0u)); let _e46 = U.target_size; let size_2 = ((vec2(_e46.xy) + vec2((k_6 - 1i))) / vec2(k_6)); let h_2 = (q_2 / vec2(k_6)); loop { let _e63 = dy; if (_e63 <= 1i) { } else { break; } { dx = -2i; loop { let _e68 = dx; if (_e68 <= 1i) { } else { break; } { let _e71 = dx; let _e72 = dy; let t_1 = (h_2 + vec2(_e71, _e72)); if !((t_1.x < 0i)) { local = (t_1.y < 0i); } else { local = true; } let _e85 = local; if !(_e85) { local_1 = (t_1.x >= size_2.x); } else { local_1 = true; } let _e93 = local_1; if !(_e93) { local_2 = (t_1.y >= size_2.y); } else { local_2 = true; } let _e101 = local_2; if _e101 { continue; } let m = textureLoad(t_aux, (t_1 * k_6), 0i); if (m.w <= 0f) { continue; } let c_13 = max(dot(n_3, normalize(m.xyz)), 0f); let c2_ = (c_13 * c_13); let _e121 = view_pos(_e14, (vec2((t_1 * k_6)) + vec2(0.5f)), m.w); let plane = abs(dot(n_3, (_e121 - _e20))); let w_4 = ((c2_ * c2_) * max(0f, (1f - (plane / tol)))); let _e132 = sum; let _e135 = textureLoad(t_src, t_1, 0i); sum = (_e132 + (w_4 * _e135.x)); let _e139 = weights; weights = (_e139 + w_4); } continuing { let _e142 = dx; dx = (_e142 + 1i); } } } continuing { let _e145 = dy; dy = (_e145 + 1i); } } let _e149 = textureLoad(t_src, h_2, 0i); ao_1 = _e149.x; let _e152 = weights; if (_e152 >= 0.0001f) { let _e155 = sum; let _e156 = weights; ao_1 = (_e155 / _e156); } let _e158 = ao_1; let _e159 = ao_1; let _e160 = ao_1; return vec4(_e158, _e159, _e160, 1f); } @fragment fn fs_glow_bright(@builtin(position) pos_2: vec4) -> @location(0) vec4 { var sum_1: vec3 = vec3(0f); var y: i32; var x: i32; var c: vec3; let q_3 = vec2(floor(pos_2.xy)); let _e7 = U.flags.w; let b = (2i * i32(max(_e7, 1u))); let lo_2 = (q_3 * b); let _e18 = U.source_size; let hi_2 = min((lo_2 + vec2(b)), vec2(_e18.xy)); y = lo_2.y; loop { let _e27 = y; if (_e27 < hi_2.y) { } else { break; } { x = lo_2.x; loop { let _e32 = x; if (_e32 < hi_2.x) { } else { break; } { let _e35 = sum_1; let _e37 = x; let _e38 = y; let _e41 = textureLoad(t_src, vec2(_e37, _e38), 0i); sum_1 = (_e35 + _e41.xyz); } continuing { let _e45 = x; x = (_e45 + 1i); } } } continuing { let _e48 = y; y = (_e48 + 1i); } } let count = f32(max(((hi_2.x - lo_2.x) * (hi_2.y - lo_2.y)), 1i)); let _e60 = sum_1; let _e66 = U.tone.x; c = ((_e60 / vec3(count)) * _e66); let _e70 = c.x; let _e72 = c.y; let _e74 = c.z; let l_1 = max(_e70, max(_e72, _e74)); let _e80 = U.glow.x; let _e84 = U.glow.x; let _e88 = U.glow.y; let _e94 = U.glow.w; let keep = max(smoothstep(_e80, (_e84 + _e88), l_1), _e94); let _e96 = c; let _e101 = U.glow.z; c = min((_e96 * keep), vec3(_e101)); let _e104 = c; return vec4(_e104, 1f); } @fragment fn fs_glow_blur_h(@builtin(position) pos_3: vec4) -> @location(0) vec4 { var c_1: vec3; var k: i32 = 1i; let _e4 = U.target_size; let uv_2 = (pos_3.xy * _e4.zw); let _e10 = textureSampleLevel(t_src, s_linear, uv_2, 0f); let _e13 = glow_weight_h(0i); c_1 = (_e10.xyz * _e13); loop { let _e18 = k; if (_e18 <= 3i) { } else { break; } { let _e21 = k; let _e28 = U.target_size.z; let o_1 = vec2(((f32(_e21) * 0.5f) * _e28), 0f); let _e32 = c_1; let _e37 = textureSampleLevel(t_src, s_linear, (uv_2 + o_1), 0f); let _e43 = textureSampleLevel(t_src, s_linear, (uv_2 - o_1), 0f); let _e46 = k; let _e47 = glow_weight_h(_e46); c_1 = (_e32 + ((_e37.xyz + _e43.xyz) * _e47)); } continuing { let _e51 = k; k = (_e51 + 1i); } } let _e53 = c_1; let _e57 = U.tone.w; return vec4((_e53 * _e57), 1f); } @fragment fn fs_glow_blur_v(@builtin(position) pos_4: vec4) -> @location(0) vec4 { var c_2: vec3; var k_1: i32 = 1i; let _e4 = U.target_size; let uv_3 = (pos_4.xy * _e4.zw); let _e10 = textureSampleLevel(t_src, s_linear, uv_3, 0f); let _e13 = glow_weight_v(0i); c_2 = (_e10.xyz * _e13); loop { let _e18 = k_1; if (_e18 <= 2i) { } else { break; } { let _e21 = k_1; let _e26 = U.target_size.w; let o_2 = vec2(0f, (f32(_e21) * _e26)); let _e30 = c_2; let _e35 = textureSampleLevel(t_src, s_linear, (uv_3 + o_2), 0f); let _e41 = textureSampleLevel(t_src, s_linear, (uv_3 - o_2), 0f); let _e44 = k_1; let _e45 = glow_weight_v(_e44); c_2 = (_e30 + ((_e35.xyz + _e41.xyz) * _e45)); } continuing { let _e49 = k_1; k_1 = (_e49 + 1i); } } let _e51 = c_2; return vec4(_e51, 1f); } @fragment fn fs_post(@builtin(position) pos_5: vec4) -> @location(0) vec4 { var c_3: vec3; var local_3: bool; var local_4: bool; var g: vec3 = vec3(0f); var local_5: bool; var a: f32; let q_4 = vec2(floor(pos_5.xy)); let _e7 = U.target_size; let uv_4 = (pos_5.xy * _e7.zw); let src = textureLoad(t_src, q_4, 0i); let bits = U.flags.x; let mode_2 = U.flags.y; let blend = U.flags.z; let white_2 = U.tone.y; c_3 = src.xyz; if ((bits & POST_STRAIGHT) != 0u) { local_3 = (src.w > 0f); } else { local_3 = false; } let _e41 = local_3; if _e41 { local_4 = (src.w < 1f); } else { local_4 = false; } let _e48 = local_4; if _e48 { let _e49 = c_3; c_3 = (_e49 / vec3(max(src.w, 0.000001f))); } if ((bits & POST_TONEMAP) != 0u) { let _e59 = c_3; let _e63 = U.tone.x; c_3 = max((_e59 * _e63), vec3(0f)); } if ((bits & POST_GLOW) != 0u) { let _e75 = glow_sum(uv_4); g = _e75; if (blend == GLOW_BLEND_MIX) { let _e78 = c_3; let _e79 = g; let _e83 = U.tone.z; c_3 = mix(_e78, _e79, _e83); } } if ((bits & POST_TONEMAP) != 0u) { let _e89 = c_3; let _e90 = tone_curve(_e89, mode_2, white_2); c_3 = _e90; } let _e91 = c_3; let _e92 = sat3_(_e91); let _e93 = linear_to_srgb(_e92); c_3 = _e93; if ((bits & POST_GLOW) != 0u) { local_5 = (blend != GLOW_BLEND_MIX); } else { local_5 = false; } let _e103 = local_5; if _e103 { let _e104 = g; let _e105 = tone_curve(_e104, mode_2, white_2); let _e106 = sat3_(_e105); let _e107 = linear_to_srgb(_e106); let _e108 = c_3; let _e109 = glow_blend(_e108, _e107, blend); c_3 = _e109; } if ((bits & POST_ADJUST) != 0u) { let _e114 = c_3; let _e115 = apply_bcs(_e114); c_3 = _e115; } let _e116 = c_3; let _e117 = sat3_(_e116); c_3 = _e117; a = src.w; if ((bits & POST_OVERLAY) != 0u) { let o_3 = textureLoad(t_aux, q_4, 0i); let _e127 = c_3; let _e128 = srgb_to_linear(_e127); let lin = ((_e128 * (1f - o_3.w)) + o_3.xyz); let _e135 = sat3_(lin); let _e136 = linear_to_srgb(_e135); c_3 = _e136; let _e138 = a; a = (o_3.w + (_e138 * (1f - o_3.w))); } let _e144 = c_3; let _e145 = a; return vec4(_e144, _e145); }   †{dvëEÓ<vs_fullmain“#version 300 es precision highp float; precision highp int; struct PostU { vec4 target_size; vec4 source_size; uvec4 flags; vec4 tone; vec4 glow; vec4 levels_low; vec4 levels_high; vec4 bcs; vec4 ssao; vec4 ssao2_; mat4x4 inv_proj; mat4x4 proj; }; struct Near { vec3 a0_; vec3 ax; vec3 ay; }; const uint POST_TONEMAP = 1u; const uint POST_GLOW = 2u; const uint POST_ADJUST = 4u; const uint POST_DOWNSAMPLE = 8u; const uint POST_OVERLAY = 16u; const uint POST_STRAIGHT = 32u; const uint POST_SSAO_HALF = 64u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint GLOW_BLEND_ADDITIVE = 0u; const uint GLOW_BLEND_SCREEN = 1u; const uint GLOW_BLEND_SOFTLIGHT = 2u; const uint GLOW_BLEND_REPLACE = 3u; const uint GLOW_BLEND_MIX = 4u; const int SSAO_SAMPLES = 12; const float SSAO_TURNS = 7.0; const float SSAO_DETAIL_RADIUS = 0.25; const float SSAO_DEPTH_BIAS = 0.0009765625; const float PI = 3.1415927; vec3 sat3_(vec3 c_4) { return clamp(c_4, vec3(0.0), vec3(1.0)); } vec3 linear_to_srgb(vec3 c_5) { vec3 lo = (c_5 * 12.92); vec3 hi = ((1.055 * pow(c_5, vec3(0.41666666))) - vec3(0.055)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.0031308))); } vec3 srgb_to_linear(vec3 c_6) { vec3 lo_1 = (c_6 / vec3(12.92)); vec3 hi_1 = pow(((c_6 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.04045))); } vec3 filmic_curve(vec3 x_1) { return ((((x_1 * ((0.88 * x_1) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x_1 * ((0.88 * x_1) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_7, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_7)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_7)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_7))); vec3 t = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t), dot(vec3(-0.10208, 1.10813, -0.00605), t), dot(vec3(-0.00327, -0.07276, 1.07602), t)); float w_3 = (1.8 * white); float wt = (((w_3 * (w_3 + 0.0245786)) - 9.0537e-5) / ((w_3 * ((0.983729 * w_3) + 0.432951)) + 0.238081)); return (o / vec3(wt)); } vec3 agx_curve(vec3 c_8) { vec3 v = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v = (inset * max(c_8, vec3(2e-10))); vec3 _e34 = v; v = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v; vec3 _e45 = v; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v; vec3 _e56 = v; vec3 _e64 = v; vec3 p_2 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_2, vec3(1e-10)), vec3(2.4))); } vec3 tone_curve(vec3 c_9, uint mode, float white_1) { if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_9) + c_9) / ((c_9 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e13 = filmic_curve(c_9); vec3 _e15 = filmic_curve(vec3(white_1)); return (_e13 / _e15); } if ((mode == TONEMAP_ACES)) { vec3 _e19 = aces_curve(c_9, white_1); return _e19; } if ((mode == TONEMAP_AGX)) { vec3 _e22 = agx_curve(c_9); return _e22; } return c_9; } float ssao_angle(ivec2 q) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); int i_1 = (((q.y & 3) * 4) + (q.x & 3)); uint _e30 = bayer[i_1]; return ((6.2831855 * float(_e30)) / 16.0); } float glow_weight_h(int k_2) { float w[4] = float[4](0.174938, 0.165569, 0.140367, 0.106595); float _e8 = w[k_2]; return _e8; } float glow_weight_v(int k_3) { float w_1[3] = float[3](0.288713, 0.233062, 0.122581); float _e7 = w_1[k_3]; return _e7; } vec3 glow_blend(vec3 c_10, vec3 g_1, uint mode_1) { if ((mode_1 == GLOW_BLEND_ADDITIVE)) { return (c_10 + g_1); } if ((mode_1 == GLOW_BLEND_SCREEN)) { vec3 _e8 = sat3_(c_10); vec3 _e9 = sat3_(g_1); return max(((_e8 + _e9) - (_e8 * _e9)), vec3(0.0)); } if ((mode_1 == GLOW_BLEND_SOFTLIGHT)) { vec3 _e18 = sat3_(c_10); vec3 h = ((g_1 * 0.5) + vec3(0.5)); vec3 dark = (_e18 - (((vec3(1.0) - (2.0 * h)) * _e18) * (vec3(1.0) - _e18))); vec3 low = (_e18 + (((2.0 * h) - vec3(1.0)) * ((((4.0 * _e18) * ((4.0 * _e18) + vec3(1.0))) * (_e18 - vec3(1.0))) + (7.0 * _e18)))); vec3 high = (_e18 + (((2.0 * h) - vec3(1.0)) * (sqrt(_e18) - _e18))); return mix(mix(high, low, lessThanEqual(_e18, vec3(0.25))), dark, lessThanEqual(h, vec3(0.5))); } if ((mode_1 == GLOW_BLEND_REPLACE)) { return g_1; } return c_10; } vec4 bspline_weights(float a_1) { float w0_ = (0.16666667 * ((a_1 * ((a_1 * (-(a_1) + 3.0)) - 3.0)) + 1.0)); float w1_ = (0.16666667 * (((a_1 * a_1) * ((3.0 * a_1) - 6.0)) + 4.0)); float w2_ = (0.16666667 * ((a_1 * ((a_1 * ((-3.0 * a_1) + 3.0)) + 3.0)) + 1.0)); float w3_ = (0.16666667 * ((a_1 * a_1) * a_1)); return vec4((w0_ + w1_), (w2_ + w3_), (-1.0 + (w1_ / (w0_ + w1_))), (1.0 + (w3_ / (w2_ + w3_)))); } void main() { uint vi = uint(gl_VertexID); vec2 pts[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); vec2 _e13 = pts[vi]; gl_Position = vec4(_e13, 0.0, 1.0); gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_ssaomain%+#version 300 es precision highp float; precision highp int; struct PostU { vec4 target_size; vec4 source_size; uvec4 flags; vec4 tone; vec4 glow; vec4 levels_low; vec4 levels_high; vec4 bcs; vec4 ssao; vec4 ssao2_; mat4x4 inv_proj; mat4x4 proj; }; struct Near { vec3 a0_; vec3 ax; vec3 ay; }; const uint POST_TONEMAP = 1u; const uint POST_GLOW = 2u; const uint POST_ADJUST = 4u; const uint POST_DOWNSAMPLE = 8u; const uint POST_OVERLAY = 16u; const uint POST_STRAIGHT = 32u; const uint POST_SSAO_HALF = 64u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint GLOW_BLEND_ADDITIVE = 0u; const uint GLOW_BLEND_SCREEN = 1u; const uint GLOW_BLEND_SOFTLIGHT = 2u; const uint GLOW_BLEND_REPLACE = 3u; const uint GLOW_BLEND_MIX = 4u; const int SSAO_SAMPLES = 12; const float SSAO_TURNS = 7.0; const float SSAO_DETAIL_RADIUS = 0.25; const float SSAO_DEPTH_BIAS = 0.0009765625; const float PI = 3.1415927; layout(std140) uniform PostU_block_0Fragment { PostU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; layout(location = 0) out vec4 _fs2p_location0; vec3 sat3_(vec3 c_4) { return clamp(c_4, vec3(0.0), vec3(1.0)); } vec3 linear_to_srgb(vec3 c_5) { vec3 lo = (c_5 * 12.92); vec3 hi = ((1.055 * pow(c_5, vec3(0.41666666))) - vec3(0.055)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.0031308))); } vec3 srgb_to_linear(vec3 c_6) { vec3 lo_1 = (c_6 / vec3(12.92)); vec3 hi_1 = pow(((c_6 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.04045))); } vec3 filmic_curve(vec3 x_1) { return ((((x_1 * ((0.88 * x_1) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x_1 * ((0.88 * x_1) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_7, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_7)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_7)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_7))); vec3 t = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t), dot(vec3(-0.10208, 1.10813, -0.00605), t), dot(vec3(-0.00327, -0.07276, 1.07602), t)); float w_3 = (1.8 * white); float wt = (((w_3 * (w_3 + 0.0245786)) - 9.0537e-5) / ((w_3 * ((0.983729 * w_3) + 0.432951)) + 0.238081)); return (o / vec3(wt)); } vec3 agx_curve(vec3 c_8) { vec3 v = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v = (inset * max(c_8, vec3(2e-10))); vec3 _e34 = v; v = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v; vec3 _e45 = v; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v; vec3 _e56 = v; vec3 _e64 = v; vec3 p_2 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_2, vec3(1e-10)), vec3(2.4))); } vec3 tone_curve(vec3 c_9, uint mode, float white_1) { if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_9) + c_9) / ((c_9 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e13 = filmic_curve(c_9); vec3 _e15 = filmic_curve(vec3(white_1)); return (_e13 / _e15); } if ((mode == TONEMAP_ACES)) { vec3 _e19 = aces_curve(c_9, white_1); return _e19; } if ((mode == TONEMAP_AGX)) { vec3 _e22 = agx_curve(c_9); return _e22; } return c_9; } float ssao_angle(ivec2 q) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); int i_1 = (((q.y & 3) * 4) + (q.x & 3)); uint _e30 = bayer[i_1]; return ((6.2831855 * float(_e30)) / 16.0); } Near near_plane() { Near n = Near(vec3(0.0), vec3(0.0), vec3(0.0)); mat4x4 _e2 = _group_0_binding_0_fs.inv_proj; vec4 c_12 = (_e2 * vec4(0.0, 0.0, 0.0, 1.0)); mat4x4 _e11 = _group_0_binding_0_fs.inv_proj; vec4 x_3 = (_e11 * vec4(1.0, 0.0, 0.0, 1.0)); mat4x4 _e20 = _group_0_binding_0_fs.inv_proj; vec4 y_1 = (_e20 * vec4(0.0, 1.0, 0.0, 1.0)); n.a0_ = (c_12.xyz / vec3(c_12.w)); vec3 _e39 = n.a0_; n.ax = ((x_3.xyz / vec3(x_3.w)) - _e39); vec3 _e47 = n.a0_; n.ay = ((y_1.xyz / vec3(y_1.w)) - _e47); Near _e49 = n; return _e49; } vec3 view_pos(Near np, vec2 p, float d) { float _e9 = _group_0_binding_0_fs.target_size.z; float _e19 = _group_0_binding_0_fs.target_size.w; vec2 ndc = vec2((((2.0 * p.x) * _e9) - 1.0), (1.0 - ((2.0 * p.y) * _e19))); vec3 a_2 = ((np.a0_ + (ndc.x * np.ax)) + (ndc.y * np.ay)); float _e36 = _group_0_binding_0_fs.ssao2_.w; if ((_e36 > 0.5)) { return vec3(a_2.xy, -(d)); } return (a_2 * (d / -(a_2.z))); } float ssao_estimate(Near np_1, vec2 pc, vec3 p_1, vec3 n_1, float depth, float radius, float angle) { float sum_2 = 0.0; int i = 0; bool local_6 = false; bool local_7 = false; bool local_8 = false; float _e10 = _group_0_binding_0_fs.ssao2_.z; float _e15 = _group_0_binding_0_fs.ssao2_.w; float r_px = ((radius * _e10) / ((_e15 > 0.5) ? 1.0 : depth)); if ((r_px < 1.0)) { return 1.0; } vec4 _e26 = _group_0_binding_0_fs.target_size; ivec2 size = ivec2(_e26.xy); float r2_ = (radius * radius); float bias = (depth * SSAO_DEPTH_BIAS); bool loop_init = true; while(true) { if (!loop_init) { int _e120 = i; i = (_e120 + 1); } loop_init = false; int _e37 = i; if ((_e37 < SSAO_SAMPLES)) { } else { break; } { int _e40 = i; float alpha = ((float(_e40) + 0.5) / 12.0); float theta = (((6.2831855 * alpha) * SSAO_TURNS) + angle); vec2 s = (pc + ((r_px * alpha) * vec2(cos(theta), sin(theta)))); ivec2 si = ivec2(floor(s)); if (!((si.x < 0))) { local_6 = (si.y < 0); } else { local_6 = true; } bool _e68 = local_6; if (!(_e68)) { local_7 = (si.x >= size.x); } else { local_7 = true; } bool _e76 = local_7; if (!(_e76)) { local_8 = (si.y >= size.y); } else { local_8 = true; } bool _e84 = local_8; if (_e84) { continue; } vec4 _e87 = texelFetch(_group_0_binding_1_fs, si, 0); float d_1 = _e87.w; if ((d_1 <= 0.0)) { continue; } vec3 _e95 = view_pos(np_1, (vec2(si) + vec2(0.5)), d_1); vec3 v_1 = (_e95 - p_1); float vv = dot(v_1, v_1); float _e98 = sum_2; float _e113 = _group_0_binding_0_fs.ssao2_.x; sum_2 = (_e98 + (max((1.0 - (vv / r2_)), 0.0) * max((((dot(v_1, n_1) - bias) / sqrt((vv + 0.0001))) - _e113), 0.0))); } } float _e125 = _group_0_binding_0_fs.ssao.y; float _e126 = sum_2; float _e139 = _group_0_binding_0_fs.ssao.z; return pow(max(clamp((1.0 - ((_e125 * _e126) / 12.0)), 0.0, 1.0), 1e-6), _e139); } float glow_weight_h(int k_2) { float w[4] = float[4](0.174938, 0.165569, 0.140367, 0.106595); float _e8 = w[k_2]; return _e8; } float glow_weight_v(int k_3) { float w_1[3] = float[3](0.288713, 0.233062, 0.122581); float _e7 = w_1[k_3]; return _e7; } vec3 glow_blend(vec3 c_10, vec3 g_1, uint mode_1) { if ((mode_1 == GLOW_BLEND_ADDITIVE)) { return (c_10 + g_1); } if ((mode_1 == GLOW_BLEND_SCREEN)) { vec3 _e8 = sat3_(c_10); vec3 _e9 = sat3_(g_1); return max(((_e8 + _e9) - (_e8 * _e9)), vec3(0.0)); } if ((mode_1 == GLOW_BLEND_SOFTLIGHT)) { vec3 _e18 = sat3_(c_10); vec3 h = ((g_1 * 0.5) + vec3(0.5)); vec3 dark = (_e18 - (((vec3(1.0) - (2.0 * h)) * _e18) * (vec3(1.0) - _e18))); vec3 low = (_e18 + (((2.0 * h) - vec3(1.0)) * ((((4.0 * _e18) * ((4.0 * _e18) + vec3(1.0))) * (_e18 - vec3(1.0))) + (7.0 * _e18)))); vec3 high = (_e18 + (((2.0 * h) - vec3(1.0)) * (sqrt(_e18) - _e18))); return mix(mix(high, low, lessThanEqual(_e18, vec3(0.25))), dark, lessThanEqual(h, vec3(0.5))); } if ((mode_1 == GLOW_BLEND_REPLACE)) { return g_1; } return c_10; } vec3 apply_bcs(vec3 c_in) { vec3 c_11 = vec3(0.0); float _e6 = _group_0_binding_0_fs.bcs.x; c_11 = mix(vec3(0.0), c_in, _e6); vec3 _e11 = c_11; float _e15 = _group_0_binding_0_fs.bcs.y; c_11 = mix(vec3(0.5), _e11, _e15); vec3 _e17 = c_11; vec3 _e24 = c_11; float _e28 = _group_0_binding_0_fs.bcs.z; c_11 = mix(vec3((dot(_e17, vec3(1.0)) / 3.0)), _e24, _e28); vec3 _e30 = c_11; return _e30; } vec4 bspline_weights(float a_1) { float w0_ = (0.16666667 * ((a_1 * ((a_1 * (-(a_1) + 3.0)) - 3.0)) + 1.0)); float w1_ = (0.16666667 * (((a_1 * a_1) * ((3.0 * a_1) - 6.0)) + 4.0)); float w2_ = (0.16666667 * ((a_1 * ((a_1 * ((-3.0 * a_1) + 3.0)) + 3.0)) + 1.0)); float w3_ = (0.16666667 * ((a_1 * a_1) * a_1)); return vec4((w0_ + w1_), (w2_ + w3_), (-1.0 + (w1_ / (w0_ + w1_))), (1.0 + (w3_ / (w2_ + w3_)))); } void main() { vec4 pos = gl_FragCoord; float ao = 0.0; ivec2 h_1 = ivec2(floor(pos.xy)); uint _e7 = _group_0_binding_0_fs.flags.x; int k_5 = (((_e7 & POST_SSAO_HALF) != 0u) ? 2 : 1); ivec2 q_1 = (h_1 * k_5); vec4 nd = texelFetch(_group_0_binding_1_fs, q_1, 0); if ((nd.w <= 0.0)) { _fs2p_location0 = vec4(1.0); return; } vec2 pc_1 = (vec2(q_1) + vec2(0.5)); Near _e28 = near_plane(); vec3 _e30 = view_pos(_e28, pc_1, nd.w); vec3 n_2 = normalize(nd.xyz); float _e33 = ssao_angle(h_1); float _e38 = _group_0_binding_0_fs.ssao.x; float _e39 = ssao_estimate(_e28, pc_1, _e30, n_2, nd.w, _e38, _e33); ao = _e39; float _e44 = _group_0_binding_0_fs.ssao.w; if ((_e44 != 0.0)) { float _e47 = ao; float _e52 = _group_0_binding_0_fs.ssao.x; float _e55 = ssao_estimate(_e28, pc_1, _e30, n_2, nd.w, (_e52 * SSAO_DETAIL_RADIUS), _e33); float _e59 = _group_0_binding_0_fs.ssao.w; ao = (_e47 * mix(1.0, _e55, _e59)); } float _e63 = ao; float _e64 = ao; float _e65 = ao; _fs2p_location0 = vec4(_e63, _e64, _e65, 1.0); return; }  fs_ssao_blurmain5#version 300 es precision highp float; precision highp int; struct PostU { vec4 target_size; vec4 source_size; uvec4 flags; vec4 tone; vec4 glow; vec4 levels_low; vec4 levels_high; vec4 bcs; vec4 ssao; vec4 ssao2_; mat4x4 inv_proj; mat4x4 proj; }; struct Near { vec3 a0_; vec3 ax; vec3 ay; }; const uint POST_TONEMAP = 1u; const uint POST_GLOW = 2u; const uint POST_ADJUST = 4u; const uint POST_DOWNSAMPLE = 8u; const uint POST_OVERLAY = 16u; const uint POST_STRAIGHT = 32u; const uint POST_SSAO_HALF = 64u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint GLOW_BLEND_ADDITIVE = 0u; const uint GLOW_BLEND_SCREEN = 1u; const uint GLOW_BLEND_SOFTLIGHT = 2u; const uint GLOW_BLEND_REPLACE = 3u; const uint GLOW_BLEND_MIX = 4u; const int SSAO_SAMPLES = 12; const float SSAO_TURNS = 7.0; const float SSAO_DETAIL_RADIUS = 0.25; const float SSAO_DEPTH_BIAS = 0.0009765625; const float PI = 3.1415927; layout(std140) uniform PostU_block_0Fragment { PostU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_2_fs; layout(location = 0) out vec4 _fs2p_location0; vec3 sat3_(vec3 c_4) { return clamp(c_4, vec3(0.0), vec3(1.0)); } vec3 linear_to_srgb(vec3 c_5) { vec3 lo = (c_5 * 12.92); vec3 hi = ((1.055 * pow(c_5, vec3(0.41666666))) - vec3(0.055)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.0031308))); } vec3 srgb_to_linear(vec3 c_6) { vec3 lo_1 = (c_6 / vec3(12.92)); vec3 hi_1 = pow(((c_6 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.04045))); } vec3 filmic_curve(vec3 x_1) { return ((((x_1 * ((0.88 * x_1) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x_1 * ((0.88 * x_1) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_7, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_7)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_7)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_7))); vec3 t = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t), dot(vec3(-0.10208, 1.10813, -0.00605), t), dot(vec3(-0.00327, -0.07276, 1.07602), t)); float w_3 = (1.8 * white); float wt = (((w_3 * (w_3 + 0.0245786)) - 9.0537e-5) / ((w_3 * ((0.983729 * w_3) + 0.432951)) + 0.238081)); return (o / vec3(wt)); } vec3 agx_curve(vec3 c_8) { vec3 v = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v = (inset * max(c_8, vec3(2e-10))); vec3 _e34 = v; v = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v; vec3 _e45 = v; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v; vec3 _e56 = v; vec3 _e64 = v; vec3 p_2 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_2, vec3(1e-10)), vec3(2.4))); } vec3 tone_curve(vec3 c_9, uint mode, float white_1) { if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_9) + c_9) / ((c_9 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e13 = filmic_curve(c_9); vec3 _e15 = filmic_curve(vec3(white_1)); return (_e13 / _e15); } if ((mode == TONEMAP_ACES)) { vec3 _e19 = aces_curve(c_9, white_1); return _e19; } if ((mode == TONEMAP_AGX)) { vec3 _e22 = agx_curve(c_9); return _e22; } return c_9; } float ssao_angle(ivec2 q) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); int i_1 = (((q.y & 3) * 4) + (q.x & 3)); uint _e30 = bayer[i_1]; return ((6.2831855 * float(_e30)) / 16.0); } Near near_plane() { Near n = Near(vec3(0.0), vec3(0.0), vec3(0.0)); mat4x4 _e2 = _group_0_binding_0_fs.inv_proj; vec4 c_12 = (_e2 * vec4(0.0, 0.0, 0.0, 1.0)); mat4x4 _e11 = _group_0_binding_0_fs.inv_proj; vec4 x_3 = (_e11 * vec4(1.0, 0.0, 0.0, 1.0)); mat4x4 _e20 = _group_0_binding_0_fs.inv_proj; vec4 y_1 = (_e20 * vec4(0.0, 1.0, 0.0, 1.0)); n.a0_ = (c_12.xyz / vec3(c_12.w)); vec3 _e39 = n.a0_; n.ax = ((x_3.xyz / vec3(x_3.w)) - _e39); vec3 _e47 = n.a0_; n.ay = ((y_1.xyz / vec3(y_1.w)) - _e47); Near _e49 = n; return _e49; } vec3 view_pos(Near np, vec2 p, float d) { float _e9 = _group_0_binding_0_fs.target_size.z; float _e19 = _group_0_binding_0_fs.target_size.w; vec2 ndc = vec2((((2.0 * p.x) * _e9) - 1.0), (1.0 - ((2.0 * p.y) * _e19))); vec3 a_2 = ((np.a0_ + (ndc.x * np.ax)) + (ndc.y * np.ay)); float _e36 = _group_0_binding_0_fs.ssao2_.w; if ((_e36 > 0.5)) { return vec3(a_2.xy, -(d)); } return (a_2 * (d / -(a_2.z))); } float ssao_estimate(Near np_1, vec2 pc, vec3 p_1, vec3 n_1, float depth, float radius, float angle) { float sum_2 = 0.0; int i = 0; bool local_6 = false; bool local_7 = false; bool local_8 = false; float _e10 = _group_0_binding_0_fs.ssao2_.z; float _e15 = _group_0_binding_0_fs.ssao2_.w; float r_px = ((radius * _e10) / ((_e15 > 0.5) ? 1.0 : depth)); if ((r_px < 1.0)) { return 1.0; } vec4 _e26 = _group_0_binding_0_fs.target_size; ivec2 size = ivec2(_e26.xy); float r2_ = (radius * radius); float bias = (depth * SSAO_DEPTH_BIAS); bool loop_init = true; while(true) { if (!loop_init) { int _e120 = i; i = (_e120 + 1); } loop_init = false; int _e37 = i; if ((_e37 < SSAO_SAMPLES)) { } else { break; } { int _e40 = i; float alpha = ((float(_e40) + 0.5) / 12.0); float theta = (((6.2831855 * alpha) * SSAO_TURNS) + angle); vec2 s = (pc + ((r_px * alpha) * vec2(cos(theta), sin(theta)))); ivec2 si = ivec2(floor(s)); if (!((si.x < 0))) { local_6 = (si.y < 0); } else { local_6 = true; } bool _e68 = local_6; if (!(_e68)) { local_7 = (si.x >= size.x); } else { local_7 = true; } bool _e76 = local_7; if (!(_e76)) { local_8 = (si.y >= size.y); } else { local_8 = true; } bool _e84 = local_8; if (_e84) { continue; } vec4 _e87 = texelFetch(_group_0_binding_1_fs, si, 0); float d_1 = _e87.w; if ((d_1 <= 0.0)) { continue; } vec3 _e95 = view_pos(np_1, (vec2(si) + vec2(0.5)), d_1); vec3 v_1 = (_e95 - p_1); float vv = dot(v_1, v_1); float _e98 = sum_2; float _e113 = _group_0_binding_0_fs.ssao2_.x; sum_2 = (_e98 + (max((1.0 - (vv / r2_)), 0.0) * max((((dot(v_1, n_1) - bias) / sqrt((vv + 0.0001))) - _e113), 0.0))); } } float _e125 = _group_0_binding_0_fs.ssao.y; float _e126 = sum_2; float _e139 = _group_0_binding_0_fs.ssao.z; return pow(max(clamp((1.0 - ((_e125 * _e126) / 12.0)), 0.0, 1.0), 1e-6), _e139); } float glow_weight_h(int k_2) { float w[4] = float[4](0.174938, 0.165569, 0.140367, 0.106595); float _e8 = w[k_2]; return _e8; } float glow_weight_v(int k_3) { float w_1[3] = float[3](0.288713, 0.233062, 0.122581); float _e7 = w_1[k_3]; return _e7; } vec3 glow_blend(vec3 c_10, vec3 g_1, uint mode_1) { if ((mode_1 == GLOW_BLEND_ADDITIVE)) { return (c_10 + g_1); } if ((mode_1 == GLOW_BLEND_SCREEN)) { vec3 _e8 = sat3_(c_10); vec3 _e9 = sat3_(g_1); return max(((_e8 + _e9) - (_e8 * _e9)), vec3(0.0)); } if ((mode_1 == GLOW_BLEND_SOFTLIGHT)) { vec3 _e18 = sat3_(c_10); vec3 h = ((g_1 * 0.5) + vec3(0.5)); vec3 dark = (_e18 - (((vec3(1.0) - (2.0 * h)) * _e18) * (vec3(1.0) - _e18))); vec3 low = (_e18 + (((2.0 * h) - vec3(1.0)) * ((((4.0 * _e18) * ((4.0 * _e18) + vec3(1.0))) * (_e18 - vec3(1.0))) + (7.0 * _e18)))); vec3 high = (_e18 + (((2.0 * h) - vec3(1.0)) * (sqrt(_e18) - _e18))); return mix(mix(high, low, lessThanEqual(_e18, vec3(0.25))), dark, lessThanEqual(h, vec3(0.5))); } if ((mode_1 == GLOW_BLEND_REPLACE)) { return g_1; } return c_10; } vec3 apply_bcs(vec3 c_in) { vec3 c_11 = vec3(0.0); float _e6 = _group_0_binding_0_fs.bcs.x; c_11 = mix(vec3(0.0), c_in, _e6); vec3 _e11 = c_11; float _e15 = _group_0_binding_0_fs.bcs.y; c_11 = mix(vec3(0.5), _e11, _e15); vec3 _e17 = c_11; vec3 _e24 = c_11; float _e28 = _group_0_binding_0_fs.bcs.z; c_11 = mix(vec3((dot(_e17, vec3(1.0)) / 3.0)), _e24, _e28); vec3 _e30 = c_11; return _e30; } vec4 bspline_weights(float a_1) { float w0_ = (0.16666667 * ((a_1 * ((a_1 * (-(a_1) + 3.0)) - 3.0)) + 1.0)); float w1_ = (0.16666667 * (((a_1 * a_1) * ((3.0 * a_1) - 6.0)) + 4.0)); float w2_ = (0.16666667 * ((a_1 * ((a_1 * ((-3.0 * a_1) + 3.0)) + 3.0)) + 1.0)); float w3_ = (0.16666667 * ((a_1 * a_1) * a_1)); return vec4((w0_ + w1_), (w2_ + w3_), (-1.0 + (w1_ / (w0_ + w1_))), (1.0 + (w3_ / (w2_ + w3_)))); } void main() { vec4 pos_1 = gl_FragCoord; float sum = 0.0; float weights = 0.0; int dy = -2; int dx = 0; bool local = false; bool local_1 = false; bool local_2 = false; float ao_1 = 0.0; ivec2 q_1 = ivec2(floor(pos_1.xy)); vec4 nd = texelFetch(_group_0_binding_2_fs, q_1, 0); if ((nd.w <= 0.0)) { _fs2p_location0 = vec4(1.0); return; } vec3 n_2 = normalize(nd.xyz); Near _e14 = near_plane(); vec3 _e20 = view_pos(_e14, (vec2(q_1) + vec2(0.5)), nd.w); float _e24 = _group_0_binding_0_fs.ssao2_.y; float tol = (((0.1 * (1.0 - _e24)) + 0.002) * nd.w); uint _e36 = _group_0_binding_0_fs.flags.x; int k_5 = (((_e36 & POST_SSAO_HALF) != 0u) ? 2 : 1); vec4 _e46 = _group_0_binding_0_fs.target_size; ivec2 size_1 = ((ivec2(_e46.xy) + ivec2((k_5 - 1))) / ivec2(k_5)); ivec2 h_1 = (q_1 / ivec2(k_5)); bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e145 = dy; dy = (_e145 + 1); } loop_init_1 = false; int _e63 = dy; if ((_e63 <= 1)) { } else { break; } { dx = -2; bool loop_init_2 = true; while(true) { if (!loop_init_2) { int _e142 = dx; dx = (_e142 + 1); } loop_init_2 = false; int _e68 = dx; if ((_e68 <= 1)) { } else { break; } { int _e71 = dx; int _e72 = dy; ivec2 t_1 = (h_1 + ivec2(_e71, _e72)); if (!((t_1.x < 0))) { local = (t_1.y < 0); } else { local = true; } bool _e85 = local; if (!(_e85)) { local_1 = (t_1.x >= size_1.x); } else { local_1 = true; } bool _e93 = local_1; if (!(_e93)) { local_2 = (t_1.y >= size_1.y); } else { local_2 = true; } bool _e101 = local_2; if (_e101) { continue; } vec4 m = texelFetch(_group_0_binding_2_fs, (t_1 * k_5), 0); if ((m.w <= 0.0)) { continue; } float c_13 = max(dot(n_2, normalize(m.xyz)), 0.0); float c2_ = (c_13 * c_13); vec3 _e121 = view_pos(_e14, (vec2((t_1 * k_5)) + vec2(0.5)), m.w); float plane = abs(dot(n_2, (_e121 - _e20))); float w_4 = ((c2_ * c2_) * max(0.0, (1.0 - (plane / tol)))); float _e132 = sum; vec4 _e135 = texelFetch(_group_0_binding_1_fs, t_1, 0); sum = (_e132 + (w_4 * _e135.x)); float _e139 = weights; weights = (_e139 + w_4); } } } } vec4 _e149 = texelFetch(_group_0_binding_1_fs, h_1, 0); ao_1 = _e149.x; float _e152 = weights; if ((_e152 >= 0.0001)) { float _e155 = sum; float _e156 = weights; ao_1 = (_e155 / _e156); } float _e158 = ao_1; float _e159 = ao_1; float _e160 = ao_1; _fs2p_location0 = vec4(_e158, _e159, _e160, 1.0); return; } fs_glow_brightmainÉ.#version 300 es precision highp float; precision highp int; struct PostU { vec4 target_size; vec4 source_size; uvec4 flags; vec4 tone; vec4 glow; vec4 levels_low; vec4 levels_high; vec4 bcs; vec4 ssao; vec4 ssao2_; mat4x4 inv_proj; mat4x4 proj; }; struct Near { vec3 a0_; vec3 ax; vec3 ay; }; const uint POST_TONEMAP = 1u; const uint POST_GLOW = 2u; const uint POST_ADJUST = 4u; const uint POST_DOWNSAMPLE = 8u; const uint POST_OVERLAY = 16u; const uint POST_STRAIGHT = 32u; const uint POST_SSAO_HALF = 64u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint GLOW_BLEND_ADDITIVE = 0u; const uint GLOW_BLEND_SCREEN = 1u; const uint GLOW_BLEND_SOFTLIGHT = 2u; const uint GLOW_BLEND_REPLACE = 3u; const uint GLOW_BLEND_MIX = 4u; const int SSAO_SAMPLES = 12; const float SSAO_TURNS = 7.0; const float SSAO_DETAIL_RADIUS = 0.25; const float SSAO_DEPTH_BIAS = 0.0009765625; const float PI = 3.1415927; layout(std140) uniform PostU_block_0Fragment { PostU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; layout(location = 0) out vec4 _fs2p_location0; vec3 sat3_(vec3 c_4) { return clamp(c_4, vec3(0.0), vec3(1.0)); } vec3 linear_to_srgb(vec3 c_5) { vec3 lo = (c_5 * 12.92); vec3 hi = ((1.055 * pow(c_5, vec3(0.41666666))) - vec3(0.055)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.0031308))); } vec3 srgb_to_linear(vec3 c_6) { vec3 lo_1 = (c_6 / vec3(12.92)); vec3 hi_1 = pow(((c_6 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.04045))); } vec3 filmic_curve(vec3 x_1) { return ((((x_1 * ((0.88 * x_1) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x_1 * ((0.88 * x_1) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_7, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_7)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_7)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_7))); vec3 t = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t), dot(vec3(-0.10208, 1.10813, -0.00605), t), dot(vec3(-0.00327, -0.07276, 1.07602), t)); float w_3 = (1.8 * white); float wt = (((w_3 * (w_3 + 0.0245786)) - 9.0537e-5) / ((w_3 * ((0.983729 * w_3) + 0.432951)) + 0.238081)); return (o / vec3(wt)); } vec3 agx_curve(vec3 c_8) { vec3 v = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v = (inset * max(c_8, vec3(2e-10))); vec3 _e34 = v; v = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v; vec3 _e45 = v; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v; vec3 _e56 = v; vec3 _e64 = v; vec3 p_2 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_2, vec3(1e-10)), vec3(2.4))); } vec3 tone_curve(vec3 c_9, uint mode, float white_1) { if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_9) + c_9) / ((c_9 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e13 = filmic_curve(c_9); vec3 _e15 = filmic_curve(vec3(white_1)); return (_e13 / _e15); } if ((mode == TONEMAP_ACES)) { vec3 _e19 = aces_curve(c_9, white_1); return _e19; } if ((mode == TONEMAP_AGX)) { vec3 _e22 = agx_curve(c_9); return _e22; } return c_9; } float ssao_angle(ivec2 q) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); int i_1 = (((q.y & 3) * 4) + (q.x & 3)); uint _e30 = bayer[i_1]; return ((6.2831855 * float(_e30)) / 16.0); } Near near_plane() { Near n = Near(vec3(0.0), vec3(0.0), vec3(0.0)); mat4x4 _e2 = _group_0_binding_0_fs.inv_proj; vec4 c_12 = (_e2 * vec4(0.0, 0.0, 0.0, 1.0)); mat4x4 _e11 = _group_0_binding_0_fs.inv_proj; vec4 x_3 = (_e11 * vec4(1.0, 0.0, 0.0, 1.0)); mat4x4 _e20 = _group_0_binding_0_fs.inv_proj; vec4 y_1 = (_e20 * vec4(0.0, 1.0, 0.0, 1.0)); n.a0_ = (c_12.xyz / vec3(c_12.w)); vec3 _e39 = n.a0_; n.ax = ((x_3.xyz / vec3(x_3.w)) - _e39); vec3 _e47 = n.a0_; n.ay = ((y_1.xyz / vec3(y_1.w)) - _e47); Near _e49 = n; return _e49; } vec3 view_pos(Near np, vec2 p, float d) { float _e9 = _group_0_binding_0_fs.target_size.z; float _e19 = _group_0_binding_0_fs.target_size.w; vec2 ndc = vec2((((2.0 * p.x) * _e9) - 1.0), (1.0 - ((2.0 * p.y) * _e19))); vec3 a_2 = ((np.a0_ + (ndc.x * np.ax)) + (ndc.y * np.ay)); float _e36 = _group_0_binding_0_fs.ssao2_.w; if ((_e36 > 0.5)) { return vec3(a_2.xy, -(d)); } return (a_2 * (d / -(a_2.z))); } float ssao_estimate(Near np_1, vec2 pc, vec3 p_1, vec3 n_1, float depth, float radius, float angle) { float sum_2 = 0.0; int i = 0; bool local_6 = false; bool local_7 = false; bool local_8 = false; float _e10 = _group_0_binding_0_fs.ssao2_.z; float _e15 = _group_0_binding_0_fs.ssao2_.w; float r_px = ((radius * _e10) / ((_e15 > 0.5) ? 1.0 : depth)); if ((r_px < 1.0)) { return 1.0; } vec4 _e26 = _group_0_binding_0_fs.target_size; ivec2 size = ivec2(_e26.xy); float r2_ = (radius * radius); float bias = (depth * SSAO_DEPTH_BIAS); bool loop_init = true; while(true) { if (!loop_init) { int _e120 = i; i = (_e120 + 1); } loop_init = false; int _e37 = i; if ((_e37 < SSAO_SAMPLES)) { } else { break; } { int _e40 = i; float alpha = ((float(_e40) + 0.5) / 12.0); float theta = (((6.2831855 * alpha) * SSAO_TURNS) + angle); vec2 s = (pc + ((r_px * alpha) * vec2(cos(theta), sin(theta)))); ivec2 si = ivec2(floor(s)); if (!((si.x < 0))) { local_6 = (si.y < 0); } else { local_6 = true; } bool _e68 = local_6; if (!(_e68)) { local_7 = (si.x >= size.x); } else { local_7 = true; } bool _e76 = local_7; if (!(_e76)) { local_8 = (si.y >= size.y); } else { local_8 = true; } bool _e84 = local_8; if (_e84) { continue; } vec4 _e87 = texelFetch(_group_0_binding_1_fs, si, 0); float d_1 = _e87.w; if ((d_1 <= 0.0)) { continue; } vec3 _e95 = view_pos(np_1, (vec2(si) + vec2(0.5)), d_1); vec3 v_1 = (_e95 - p_1); float vv = dot(v_1, v_1); float _e98 = sum_2; float _e113 = _group_0_binding_0_fs.ssao2_.x; sum_2 = (_e98 + (max((1.0 - (vv / r2_)), 0.0) * max((((dot(v_1, n_1) - bias) / sqrt((vv + 0.0001))) - _e113), 0.0))); } } float _e125 = _group_0_binding_0_fs.ssao.y; float _e126 = sum_2; float _e139 = _group_0_binding_0_fs.ssao.z; return pow(max(clamp((1.0 - ((_e125 * _e126) / 12.0)), 0.0, 1.0), 1e-6), _e139); } float glow_weight_h(int k_2) { float w[4] = float[4](0.174938, 0.165569, 0.140367, 0.106595); float _e8 = w[k_2]; return _e8; } float glow_weight_v(int k_3) { float w_1[3] = float[3](0.288713, 0.233062, 0.122581); float _e7 = w_1[k_3]; return _e7; } vec3 glow_blend(vec3 c_10, vec3 g_1, uint mode_1) { if ((mode_1 == GLOW_BLEND_ADDITIVE)) { return (c_10 + g_1); } if ((mode_1 == GLOW_BLEND_SCREEN)) { vec3 _e8 = sat3_(c_10); vec3 _e9 = sat3_(g_1); return max(((_e8 + _e9) - (_e8 * _e9)), vec3(0.0)); } if ((mode_1 == GLOW_BLEND_SOFTLIGHT)) { vec3 _e18 = sat3_(c_10); vec3 h = ((g_1 * 0.5) + vec3(0.5)); vec3 dark = (_e18 - (((vec3(1.0) - (2.0 * h)) * _e18) * (vec3(1.0) - _e18))); vec3 low = (_e18 + (((2.0 * h) - vec3(1.0)) * ((((4.0 * _e18) * ((4.0 * _e18) + vec3(1.0))) * (_e18 - vec3(1.0))) + (7.0 * _e18)))); vec3 high = (_e18 + (((2.0 * h) - vec3(1.0)) * (sqrt(_e18) - _e18))); return mix(mix(high, low, lessThanEqual(_e18, vec3(0.25))), dark, lessThanEqual(h, vec3(0.5))); } if ((mode_1 == GLOW_BLEND_REPLACE)) { return g_1; } return c_10; } vec3 apply_bcs(vec3 c_in) { vec3 c_11 = vec3(0.0); float _e6 = _group_0_binding_0_fs.bcs.x; c_11 = mix(vec3(0.0), c_in, _e6); vec3 _e11 = c_11; float _e15 = _group_0_binding_0_fs.bcs.y; c_11 = mix(vec3(0.5), _e11, _e15); vec3 _e17 = c_11; vec3 _e24 = c_11; float _e28 = _group_0_binding_0_fs.bcs.z; c_11 = mix(vec3((dot(_e17, vec3(1.0)) / 3.0)), _e24, _e28); vec3 _e30 = c_11; return _e30; } vec4 bspline_weights(float a_1) { float w0_ = (0.16666667 * ((a_1 * ((a_1 * (-(a_1) + 3.0)) - 3.0)) + 1.0)); float w1_ = (0.16666667 * (((a_1 * a_1) * ((3.0 * a_1) - 6.0)) + 4.0)); float w2_ = (0.16666667 * ((a_1 * ((a_1 * ((-3.0 * a_1) + 3.0)) + 3.0)) + 1.0)); float w3_ = (0.16666667 * ((a_1 * a_1) * a_1)); return vec4((w0_ + w1_), (w2_ + w3_), (-1.0 + (w1_ / (w0_ + w1_))), (1.0 + (w3_ / (w2_ + w3_)))); } void main() { vec4 pos_2 = gl_FragCoord; vec3 sum_1 = vec3(0.0); int y = 0; int x = 0; vec3 c = vec3(0.0); ivec2 q_1 = ivec2(floor(pos_2.xy)); uint _e7 = _group_0_binding_0_fs.flags.w; int b = (2 * int(max(_e7, 1u))); ivec2 lo_2 = (q_1 * b); vec4 _e18 = _group_0_binding_0_fs.source_size; ivec2 hi_2 = min((lo_2 + ivec2(b)), ivec2(_e18.xy)); y = lo_2.y; bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e48 = y; y = (_e48 + 1); } loop_init_1 = false; int _e27 = y; if ((_e27 < hi_2.y)) { } else { break; } { x = lo_2.x; bool loop_init_2 = true; while(true) { if (!loop_init_2) { int _e45 = x; x = (_e45 + 1); } loop_init_2 = false; int _e32 = x; if ((_e32 < hi_2.x)) { } else { break; } { vec3 _e35 = sum_1; int _e37 = x; int _e38 = y; vec4 _e41 = texelFetch(_group_0_binding_1_fs, ivec2(_e37, _e38), 0); sum_1 = (_e35 + _e41.xyz); } } } } float count = float(max(((hi_2.x - lo_2.x) * (hi_2.y - lo_2.y)), 1)); vec3 _e60 = sum_1; float _e66 = _group_0_binding_0_fs.tone.x; c = ((_e60 / vec3(count)) * _e66); float _e70 = c.x; float _e72 = c.y; float _e74 = c.z; float l = max(_e70, max(_e72, _e74)); float _e80 = _group_0_binding_0_fs.glow.x; float _e84 = _group_0_binding_0_fs.glow.x; float _e88 = _group_0_binding_0_fs.glow.y; float _e94 = _group_0_binding_0_fs.glow.w; float keep = max(smoothstep(_e80, (_e84 + _e88), l), _e94); vec3 _e96 = c; float _e101 = _group_0_binding_0_fs.glow.z; c = min((_e96 * keep), vec3(_e101)); vec3 _e104 = c; _fs2p_location0 = vec4(_e104, 1.0); return; } fs_glow_blur_hmainI+#version 300 es precision highp float; precision highp int; struct PostU { vec4 target_size; vec4 source_size; uvec4 flags; vec4 tone; vec4 glow; vec4 levels_low; vec4 levels_high; vec4 bcs; vec4 ssao; vec4 ssao2_; mat4x4 inv_proj; mat4x4 proj; }; struct Near { vec3 a0_; vec3 ax; vec3 ay; }; const uint POST_TONEMAP = 1u; const uint POST_GLOW = 2u; const uint POST_ADJUST = 4u; const uint POST_DOWNSAMPLE = 8u; const uint POST_OVERLAY = 16u; const uint POST_STRAIGHT = 32u; const uint POST_SSAO_HALF = 64u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint GLOW_BLEND_ADDITIVE = 0u; const uint GLOW_BLEND_SCREEN = 1u; const uint GLOW_BLEND_SOFTLIGHT = 2u; const uint GLOW_BLEND_REPLACE = 3u; const uint GLOW_BLEND_MIX = 4u; const int SSAO_SAMPLES = 12; const float SSAO_TURNS = 7.0; const float SSAO_DETAIL_RADIUS = 0.25; const float SSAO_DEPTH_BIAS = 0.0009765625; const float PI = 3.1415927; layout(std140) uniform PostU_block_0Fragment { PostU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; layout(location = 0) out vec4 _fs2p_location0; vec3 sat3_(vec3 c_4) { return clamp(c_4, vec3(0.0), vec3(1.0)); } vec3 linear_to_srgb(vec3 c_5) { vec3 lo = (c_5 * 12.92); vec3 hi = ((1.055 * pow(c_5, vec3(0.41666666))) - vec3(0.055)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.0031308))); } vec3 srgb_to_linear(vec3 c_6) { vec3 lo_1 = (c_6 / vec3(12.92)); vec3 hi_1 = pow(((c_6 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.04045))); } vec3 filmic_curve(vec3 x_1) { return ((((x_1 * ((0.88 * x_1) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x_1 * ((0.88 * x_1) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_7, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_7)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_7)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_7))); vec3 t = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t), dot(vec3(-0.10208, 1.10813, -0.00605), t), dot(vec3(-0.00327, -0.07276, 1.07602), t)); float w_3 = (1.8 * white); float wt = (((w_3 * (w_3 + 0.0245786)) - 9.0537e-5) / ((w_3 * ((0.983729 * w_3) + 0.432951)) + 0.238081)); return (o / vec3(wt)); } vec3 agx_curve(vec3 c_8) { vec3 v = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v = (inset * max(c_8, vec3(2e-10))); vec3 _e34 = v; v = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v; vec3 _e45 = v; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v; vec3 _e56 = v; vec3 _e64 = v; vec3 p_2 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_2, vec3(1e-10)), vec3(2.4))); } vec3 tone_curve(vec3 c_9, uint mode, float white_1) { if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_9) + c_9) / ((c_9 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e13 = filmic_curve(c_9); vec3 _e15 = filmic_curve(vec3(white_1)); return (_e13 / _e15); } if ((mode == TONEMAP_ACES)) { vec3 _e19 = aces_curve(c_9, white_1); return _e19; } if ((mode == TONEMAP_AGX)) { vec3 _e22 = agx_curve(c_9); return _e22; } return c_9; } float ssao_angle(ivec2 q) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); int i_1 = (((q.y & 3) * 4) + (q.x & 3)); uint _e30 = bayer[i_1]; return ((6.2831855 * float(_e30)) / 16.0); } Near near_plane() { Near n = Near(vec3(0.0), vec3(0.0), vec3(0.0)); mat4x4 _e2 = _group_0_binding_0_fs.inv_proj; vec4 c_12 = (_e2 * vec4(0.0, 0.0, 0.0, 1.0)); mat4x4 _e11 = _group_0_binding_0_fs.inv_proj; vec4 x_3 = (_e11 * vec4(1.0, 0.0, 0.0, 1.0)); mat4x4 _e20 = _group_0_binding_0_fs.inv_proj; vec4 y_1 = (_e20 * vec4(0.0, 1.0, 0.0, 1.0)); n.a0_ = (c_12.xyz / vec3(c_12.w)); vec3 _e39 = n.a0_; n.ax = ((x_3.xyz / vec3(x_3.w)) - _e39); vec3 _e47 = n.a0_; n.ay = ((y_1.xyz / vec3(y_1.w)) - _e47); Near _e49 = n; return _e49; } vec3 view_pos(Near np, vec2 p, float d) { float _e9 = _group_0_binding_0_fs.target_size.z; float _e19 = _group_0_binding_0_fs.target_size.w; vec2 ndc = vec2((((2.0 * p.x) * _e9) - 1.0), (1.0 - ((2.0 * p.y) * _e19))); vec3 a_2 = ((np.a0_ + (ndc.x * np.ax)) + (ndc.y * np.ay)); float _e36 = _group_0_binding_0_fs.ssao2_.w; if ((_e36 > 0.5)) { return vec3(a_2.xy, -(d)); } return (a_2 * (d / -(a_2.z))); } float ssao_estimate(Near np_1, vec2 pc, vec3 p_1, vec3 n_1, float depth, float radius, float angle) { float sum_2 = 0.0; int i = 0; bool local_6 = false; bool local_7 = false; bool local_8 = false; float _e10 = _group_0_binding_0_fs.ssao2_.z; float _e15 = _group_0_binding_0_fs.ssao2_.w; float r_px = ((radius * _e10) / ((_e15 > 0.5) ? 1.0 : depth)); if ((r_px < 1.0)) { return 1.0; } vec4 _e26 = _group_0_binding_0_fs.target_size; ivec2 size = ivec2(_e26.xy); float r2_ = (radius * radius); float bias = (depth * SSAO_DEPTH_BIAS); bool loop_init = true; while(true) { if (!loop_init) { int _e120 = i; i = (_e120 + 1); } loop_init = false; int _e37 = i; if ((_e37 < SSAO_SAMPLES)) { } else { break; } { int _e40 = i; float alpha = ((float(_e40) + 0.5) / 12.0); float theta = (((6.2831855 * alpha) * SSAO_TURNS) + angle); vec2 s = (pc + ((r_px * alpha) * vec2(cos(theta), sin(theta)))); ivec2 si = ivec2(floor(s)); if (!((si.x < 0))) { local_6 = (si.y < 0); } else { local_6 = true; } bool _e68 = local_6; if (!(_e68)) { local_7 = (si.x >= size.x); } else { local_7 = true; } bool _e76 = local_7; if (!(_e76)) { local_8 = (si.y >= size.y); } else { local_8 = true; } bool _e84 = local_8; if (_e84) { continue; } vec4 _e87 = texelFetch(_group_0_binding_1_fs, si, 0); float d_1 = _e87.w; if ((d_1 <= 0.0)) { continue; } vec3 _e95 = view_pos(np_1, (vec2(si) + vec2(0.5)), d_1); vec3 v_1 = (_e95 - p_1); float vv = dot(v_1, v_1); float _e98 = sum_2; float _e113 = _group_0_binding_0_fs.ssao2_.x; sum_2 = (_e98 + (max((1.0 - (vv / r2_)), 0.0) * max((((dot(v_1, n_1) - bias) / sqrt((vv + 0.0001))) - _e113), 0.0))); } } float _e125 = _group_0_binding_0_fs.ssao.y; float _e126 = sum_2; float _e139 = _group_0_binding_0_fs.ssao.z; return pow(max(clamp((1.0 - ((_e125 * _e126) / 12.0)), 0.0, 1.0), 1e-6), _e139); } float glow_weight_h(int k_2) { float w[4] = float[4](0.174938, 0.165569, 0.140367, 0.106595); float _e8 = w[k_2]; return _e8; } float glow_weight_v(int k_3) { float w_1[3] = float[3](0.288713, 0.233062, 0.122581); float _e7 = w_1[k_3]; return _e7; } vec3 glow_blend(vec3 c_10, vec3 g_1, uint mode_1) { if ((mode_1 == GLOW_BLEND_ADDITIVE)) { return (c_10 + g_1); } if ((mode_1 == GLOW_BLEND_SCREEN)) { vec3 _e8 = sat3_(c_10); vec3 _e9 = sat3_(g_1); return max(((_e8 + _e9) - (_e8 * _e9)), vec3(0.0)); } if ((mode_1 == GLOW_BLEND_SOFTLIGHT)) { vec3 _e18 = sat3_(c_10); vec3 h = ((g_1 * 0.5) + vec3(0.5)); vec3 dark = (_e18 - (((vec3(1.0) - (2.0 * h)) * _e18) * (vec3(1.0) - _e18))); vec3 low = (_e18 + (((2.0 * h) - vec3(1.0)) * ((((4.0 * _e18) * ((4.0 * _e18) + vec3(1.0))) * (_e18 - vec3(1.0))) + (7.0 * _e18)))); vec3 high = (_e18 + (((2.0 * h) - vec3(1.0)) * (sqrt(_e18) - _e18))); return mix(mix(high, low, lessThanEqual(_e18, vec3(0.25))), dark, lessThanEqual(h, vec3(0.5))); } if ((mode_1 == GLOW_BLEND_REPLACE)) { return g_1; } return c_10; } vec3 apply_bcs(vec3 c_in) { vec3 c_11 = vec3(0.0); float _e6 = _group_0_binding_0_fs.bcs.x; c_11 = mix(vec3(0.0), c_in, _e6); vec3 _e11 = c_11; float _e15 = _group_0_binding_0_fs.bcs.y; c_11 = mix(vec3(0.5), _e11, _e15); vec3 _e17 = c_11; vec3 _e24 = c_11; float _e28 = _group_0_binding_0_fs.bcs.z; c_11 = mix(vec3((dot(_e17, vec3(1.0)) / 3.0)), _e24, _e28); vec3 _e30 = c_11; return _e30; } vec4 bspline_weights(float a_1) { float w0_ = (0.16666667 * ((a_1 * ((a_1 * (-(a_1) + 3.0)) - 3.0)) + 1.0)); float w1_ = (0.16666667 * (((a_1 * a_1) * ((3.0 * a_1) - 6.0)) + 4.0)); float w2_ = (0.16666667 * ((a_1 * ((a_1 * ((-3.0 * a_1) + 3.0)) + 3.0)) + 1.0)); float w3_ = (0.16666667 * ((a_1 * a_1) * a_1)); return vec4((w0_ + w1_), (w2_ + w3_), (-1.0 + (w1_ / (w0_ + w1_))), (1.0 + (w3_ / (w2_ + w3_)))); } void main() { vec4 pos_3 = gl_FragCoord; vec3 c_1 = vec3(0.0); int k = 1; vec4 _e4 = _group_0_binding_0_fs.target_size; vec2 uv_2 = (pos_3.xy * _e4.zw); vec4 _e10 = textureLod(_group_0_binding_1_fs, vec2(uv_2), 0.0); float _e13 = glow_weight_h(0); c_1 = (_e10.xyz * _e13); bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e51 = k; k = (_e51 + 1); } loop_init_1 = false; int _e18 = k; if ((_e18 <= 3)) { } else { break; } { int _e21 = k; float _e28 = _group_0_binding_0_fs.target_size.z; vec2 o_1 = vec2(((float(_e21) * 0.5) * _e28), 0.0); vec3 _e32 = c_1; vec4 _e37 = textureLod(_group_0_binding_1_fs, vec2((uv_2 + o_1)), 0.0); vec4 _e43 = textureLod(_group_0_binding_1_fs, vec2((uv_2 - o_1)), 0.0); int _e46 = k; float _e47 = glow_weight_h(_e46); c_1 = (_e32 + ((_e37.xyz + _e43.xyz) * _e47)); } } vec3 _e53 = c_1; float _e57 = _group_0_binding_0_fs.tone.w; _fs2p_location0 = vec4((_e53 * _e57), 1.0); return; } fs_glow_blur_vmain+#version 300 es precision highp float; precision highp int; struct PostU { vec4 target_size; vec4 source_size; uvec4 flags; vec4 tone; vec4 glow; vec4 levels_low; vec4 levels_high; vec4 bcs; vec4 ssao; vec4 ssao2_; mat4x4 inv_proj; mat4x4 proj; }; struct Near { vec3 a0_; vec3 ax; vec3 ay; }; const uint POST_TONEMAP = 1u; const uint POST_GLOW = 2u; const uint POST_ADJUST = 4u; const uint POST_DOWNSAMPLE = 8u; const uint POST_OVERLAY = 16u; const uint POST_STRAIGHT = 32u; const uint POST_SSAO_HALF = 64u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint GLOW_BLEND_ADDITIVE = 0u; const uint GLOW_BLEND_SCREEN = 1u; const uint GLOW_BLEND_SOFTLIGHT = 2u; const uint GLOW_BLEND_REPLACE = 3u; const uint GLOW_BLEND_MIX = 4u; const int SSAO_SAMPLES = 12; const float SSAO_TURNS = 7.0; const float SSAO_DETAIL_RADIUS = 0.25; const float SSAO_DEPTH_BIAS = 0.0009765625; const float PI = 3.1415927; layout(std140) uniform PostU_block_0Fragment { PostU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; layout(location = 0) out vec4 _fs2p_location0; vec3 sat3_(vec3 c_4) { return clamp(c_4, vec3(0.0), vec3(1.0)); } vec3 linear_to_srgb(vec3 c_5) { vec3 lo = (c_5 * 12.92); vec3 hi = ((1.055 * pow(c_5, vec3(0.41666666))) - vec3(0.055)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.0031308))); } vec3 srgb_to_linear(vec3 c_6) { vec3 lo_1 = (c_6 / vec3(12.92)); vec3 hi_1 = pow(((c_6 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.04045))); } vec3 filmic_curve(vec3 x_1) { return ((((x_1 * ((0.88 * x_1) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x_1 * ((0.88 * x_1) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_7, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_7)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_7)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_7))); vec3 t = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t), dot(vec3(-0.10208, 1.10813, -0.00605), t), dot(vec3(-0.00327, -0.07276, 1.07602), t)); float w_3 = (1.8 * white); float wt = (((w_3 * (w_3 + 0.0245786)) - 9.0537e-5) / ((w_3 * ((0.983729 * w_3) + 0.432951)) + 0.238081)); return (o / vec3(wt)); } vec3 agx_curve(vec3 c_8) { vec3 v = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v = (inset * max(c_8, vec3(2e-10))); vec3 _e34 = v; v = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v; vec3 _e45 = v; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v; vec3 _e56 = v; vec3 _e64 = v; vec3 p_2 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_2, vec3(1e-10)), vec3(2.4))); } vec3 tone_curve(vec3 c_9, uint mode, float white_1) { if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_9) + c_9) / ((c_9 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e13 = filmic_curve(c_9); vec3 _e15 = filmic_curve(vec3(white_1)); return (_e13 / _e15); } if ((mode == TONEMAP_ACES)) { vec3 _e19 = aces_curve(c_9, white_1); return _e19; } if ((mode == TONEMAP_AGX)) { vec3 _e22 = agx_curve(c_9); return _e22; } return c_9; } float ssao_angle(ivec2 q) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); int i_1 = (((q.y & 3) * 4) + (q.x & 3)); uint _e30 = bayer[i_1]; return ((6.2831855 * float(_e30)) / 16.0); } Near near_plane() { Near n = Near(vec3(0.0), vec3(0.0), vec3(0.0)); mat4x4 _e2 = _group_0_binding_0_fs.inv_proj; vec4 c_12 = (_e2 * vec4(0.0, 0.0, 0.0, 1.0)); mat4x4 _e11 = _group_0_binding_0_fs.inv_proj; vec4 x_3 = (_e11 * vec4(1.0, 0.0, 0.0, 1.0)); mat4x4 _e20 = _group_0_binding_0_fs.inv_proj; vec4 y_1 = (_e20 * vec4(0.0, 1.0, 0.0, 1.0)); n.a0_ = (c_12.xyz / vec3(c_12.w)); vec3 _e39 = n.a0_; n.ax = ((x_3.xyz / vec3(x_3.w)) - _e39); vec3 _e47 = n.a0_; n.ay = ((y_1.xyz / vec3(y_1.w)) - _e47); Near _e49 = n; return _e49; } vec3 view_pos(Near np, vec2 p, float d) { float _e9 = _group_0_binding_0_fs.target_size.z; float _e19 = _group_0_binding_0_fs.target_size.w; vec2 ndc = vec2((((2.0 * p.x) * _e9) - 1.0), (1.0 - ((2.0 * p.y) * _e19))); vec3 a_2 = ((np.a0_ + (ndc.x * np.ax)) + (ndc.y * np.ay)); float _e36 = _group_0_binding_0_fs.ssao2_.w; if ((_e36 > 0.5)) { return vec3(a_2.xy, -(d)); } return (a_2 * (d / -(a_2.z))); } float ssao_estimate(Near np_1, vec2 pc, vec3 p_1, vec3 n_1, float depth, float radius, float angle) { float sum_2 = 0.0; int i = 0; bool local_6 = false; bool local_7 = false; bool local_8 = false; float _e10 = _group_0_binding_0_fs.ssao2_.z; float _e15 = _group_0_binding_0_fs.ssao2_.w; float r_px = ((radius * _e10) / ((_e15 > 0.5) ? 1.0 : depth)); if ((r_px < 1.0)) { return 1.0; } vec4 _e26 = _group_0_binding_0_fs.target_size; ivec2 size = ivec2(_e26.xy); float r2_ = (radius * radius); float bias = (depth * SSAO_DEPTH_BIAS); bool loop_init = true; while(true) { if (!loop_init) { int _e120 = i; i = (_e120 + 1); } loop_init = false; int _e37 = i; if ((_e37 < SSAO_SAMPLES)) { } else { break; } { int _e40 = i; float alpha = ((float(_e40) + 0.5) / 12.0); float theta = (((6.2831855 * alpha) * SSAO_TURNS) + angle); vec2 s = (pc + ((r_px * alpha) * vec2(cos(theta), sin(theta)))); ivec2 si = ivec2(floor(s)); if (!((si.x < 0))) { local_6 = (si.y < 0); } else { local_6 = true; } bool _e68 = local_6; if (!(_e68)) { local_7 = (si.x >= size.x); } else { local_7 = true; } bool _e76 = local_7; if (!(_e76)) { local_8 = (si.y >= size.y); } else { local_8 = true; } bool _e84 = local_8; if (_e84) { continue; } vec4 _e87 = texelFetch(_group_0_binding_1_fs, si, 0); float d_1 = _e87.w; if ((d_1 <= 0.0)) { continue; } vec3 _e95 = view_pos(np_1, (vec2(si) + vec2(0.5)), d_1); vec3 v_1 = (_e95 - p_1); float vv = dot(v_1, v_1); float _e98 = sum_2; float _e113 = _group_0_binding_0_fs.ssao2_.x; sum_2 = (_e98 + (max((1.0 - (vv / r2_)), 0.0) * max((((dot(v_1, n_1) - bias) / sqrt((vv + 0.0001))) - _e113), 0.0))); } } float _e125 = _group_0_binding_0_fs.ssao.y; float _e126 = sum_2; float _e139 = _group_0_binding_0_fs.ssao.z; return pow(max(clamp((1.0 - ((_e125 * _e126) / 12.0)), 0.0, 1.0), 1e-6), _e139); } float glow_weight_h(int k_2) { float w[4] = float[4](0.174938, 0.165569, 0.140367, 0.106595); float _e8 = w[k_2]; return _e8; } float glow_weight_v(int k_3) { float w_1[3] = float[3](0.288713, 0.233062, 0.122581); float _e7 = w_1[k_3]; return _e7; } vec3 glow_blend(vec3 c_10, vec3 g_1, uint mode_1) { if ((mode_1 == GLOW_BLEND_ADDITIVE)) { return (c_10 + g_1); } if ((mode_1 == GLOW_BLEND_SCREEN)) { vec3 _e8 = sat3_(c_10); vec3 _e9 = sat3_(g_1); return max(((_e8 + _e9) - (_e8 * _e9)), vec3(0.0)); } if ((mode_1 == GLOW_BLEND_SOFTLIGHT)) { vec3 _e18 = sat3_(c_10); vec3 h = ((g_1 * 0.5) + vec3(0.5)); vec3 dark = (_e18 - (((vec3(1.0) - (2.0 * h)) * _e18) * (vec3(1.0) - _e18))); vec3 low = (_e18 + (((2.0 * h) - vec3(1.0)) * ((((4.0 * _e18) * ((4.0 * _e18) + vec3(1.0))) * (_e18 - vec3(1.0))) + (7.0 * _e18)))); vec3 high = (_e18 + (((2.0 * h) - vec3(1.0)) * (sqrt(_e18) - _e18))); return mix(mix(high, low, lessThanEqual(_e18, vec3(0.25))), dark, lessThanEqual(h, vec3(0.5))); } if ((mode_1 == GLOW_BLEND_REPLACE)) { return g_1; } return c_10; } vec3 apply_bcs(vec3 c_in) { vec3 c_11 = vec3(0.0); float _e6 = _group_0_binding_0_fs.bcs.x; c_11 = mix(vec3(0.0), c_in, _e6); vec3 _e11 = c_11; float _e15 = _group_0_binding_0_fs.bcs.y; c_11 = mix(vec3(0.5), _e11, _e15); vec3 _e17 = c_11; vec3 _e24 = c_11; float _e28 = _group_0_binding_0_fs.bcs.z; c_11 = mix(vec3((dot(_e17, vec3(1.0)) / 3.0)), _e24, _e28); vec3 _e30 = c_11; return _e30; } vec4 bspline_weights(float a_1) { float w0_ = (0.16666667 * ((a_1 * ((a_1 * (-(a_1) + 3.0)) - 3.0)) + 1.0)); float w1_ = (0.16666667 * (((a_1 * a_1) * ((3.0 * a_1) - 6.0)) + 4.0)); float w2_ = (0.16666667 * ((a_1 * ((a_1 * ((-3.0 * a_1) + 3.0)) + 3.0)) + 1.0)); float w3_ = (0.16666667 * ((a_1 * a_1) * a_1)); return vec4((w0_ + w1_), (w2_ + w3_), (-1.0 + (w1_ / (w0_ + w1_))), (1.0 + (w3_ / (w2_ + w3_)))); } void main() { vec4 pos_4 = gl_FragCoord; vec3 c_2 = vec3(0.0); int k_1 = 1; vec4 _e4 = _group_0_binding_0_fs.target_size; vec2 uv_2 = (pos_4.xy * _e4.zw); vec4 _e10 = textureLod(_group_0_binding_1_fs, vec2(uv_2), 0.0); float _e13 = glow_weight_v(0); c_2 = (_e10.xyz * _e13); bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e49 = k_1; k_1 = (_e49 + 1); } loop_init_1 = false; int _e18 = k_1; if ((_e18 <= 2)) { } else { break; } { int _e21 = k_1; float _e26 = _group_0_binding_0_fs.target_size.w; vec2 o_1 = vec2(0.0, (float(_e21) * _e26)); vec3 _e30 = c_2; vec4 _e35 = textureLod(_group_0_binding_1_fs, vec2((uv_2 + o_1)), 0.0); vec4 _e41 = textureLod(_group_0_binding_1_fs, vec2((uv_2 - o_1)), 0.0); int _e44 = k_1; float _e45 = glow_weight_v(_e44); c_2 = (_e30 + ((_e35.xyz + _e41.xyz) * _e45)); } } vec3 _e51 = c_2; _fs2p_location0 = vec4(_e51, 1.0); return; } fs_postmain;#version 300 es precision highp float; precision highp int; struct PostU { vec4 target_size; vec4 source_size; uvec4 flags; vec4 tone; vec4 glow; vec4 levels_low; vec4 levels_high; vec4 bcs; vec4 ssao; vec4 ssao2_; mat4x4 inv_proj; mat4x4 proj; }; struct Near { vec3 a0_; vec3 ax; vec3 ay; }; const uint POST_TONEMAP = 1u; const uint POST_GLOW = 2u; const uint POST_ADJUST = 4u; const uint POST_DOWNSAMPLE = 8u; const uint POST_OVERLAY = 16u; const uint POST_STRAIGHT = 32u; const uint POST_SSAO_HALF = 64u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint GLOW_BLEND_ADDITIVE = 0u; const uint GLOW_BLEND_SCREEN = 1u; const uint GLOW_BLEND_SOFTLIGHT = 2u; const uint GLOW_BLEND_REPLACE = 3u; const uint GLOW_BLEND_MIX = 4u; const int SSAO_SAMPLES = 12; const float SSAO_TURNS = 7.0; const float SSAO_DETAIL_RADIUS = 0.25; const float SSAO_DEPTH_BIAS = 0.0009765625; const float PI = 3.1415927; layout(std140) uniform PostU_block_0Fragment { PostU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_2_fs; uniform highp sampler2D _group_0_binding_3_fs; layout(location = 0) out vec4 _fs2p_location0; vec3 sat3_(vec3 c_4) { return clamp(c_4, vec3(0.0), vec3(1.0)); } vec3 linear_to_srgb(vec3 c_5) { vec3 lo = (c_5 * 12.92); vec3 hi = ((1.055 * pow(c_5, vec3(0.41666666))) - vec3(0.055)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.0031308))); } vec3 srgb_to_linear(vec3 c_6) { vec3 lo_1 = (c_6 / vec3(12.92)); vec3 hi_1 = pow(((c_6 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.04045))); } vec3 filmic_curve(vec3 x_1) { return ((((x_1 * ((0.88 * x_1) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x_1 * ((0.88 * x_1) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_7, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_7)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_7)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_7))); vec3 t = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t), dot(vec3(-0.10208, 1.10813, -0.00605), t), dot(vec3(-0.00327, -0.07276, 1.07602), t)); float w_3 = (1.8 * white); float wt = (((w_3 * (w_3 + 0.0245786)) - 9.0537e-5) / ((w_3 * ((0.983729 * w_3) + 0.432951)) + 0.238081)); return (o / vec3(wt)); } vec3 agx_curve(vec3 c_8) { vec3 v = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v = (inset * max(c_8, vec3(2e-10))); vec3 _e34 = v; v = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v; vec3 _e45 = v; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v; vec3 _e56 = v; vec3 _e64 = v; vec3 p_2 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_2, vec3(1e-10)), vec3(2.4))); } vec3 tone_curve(vec3 c_9, uint mode, float white_1) { if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_9) + c_9) / ((c_9 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e13 = filmic_curve(c_9); vec3 _e15 = filmic_curve(vec3(white_1)); return (_e13 / _e15); } if ((mode == TONEMAP_ACES)) { vec3 _e19 = aces_curve(c_9, white_1); return _e19; } if ((mode == TONEMAP_AGX)) { vec3 _e22 = agx_curve(c_9); return _e22; } return c_9; } float ssao_angle(ivec2 q) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); int i_1 = (((q.y & 3) * 4) + (q.x & 3)); uint _e30 = bayer[i_1]; return ((6.2831855 * float(_e30)) / 16.0); } Near near_plane() { Near n = Near(vec3(0.0), vec3(0.0), vec3(0.0)); mat4x4 _e2 = _group_0_binding_0_fs.inv_proj; vec4 c_12 = (_e2 * vec4(0.0, 0.0, 0.0, 1.0)); mat4x4 _e11 = _group_0_binding_0_fs.inv_proj; vec4 x_3 = (_e11 * vec4(1.0, 0.0, 0.0, 1.0)); mat4x4 _e20 = _group_0_binding_0_fs.inv_proj; vec4 y_1 = (_e20 * vec4(0.0, 1.0, 0.0, 1.0)); n.a0_ = (c_12.xyz / vec3(c_12.w)); vec3 _e39 = n.a0_; n.ax = ((x_3.xyz / vec3(x_3.w)) - _e39); vec3 _e47 = n.a0_; n.ay = ((y_1.xyz / vec3(y_1.w)) - _e47); Near _e49 = n; return _e49; } vec3 view_pos(Near np, vec2 p, float d) { float _e9 = _group_0_binding_0_fs.target_size.z; float _e19 = _group_0_binding_0_fs.target_size.w; vec2 ndc = vec2((((2.0 * p.x) * _e9) - 1.0), (1.0 - ((2.0 * p.y) * _e19))); vec3 a_2 = ((np.a0_ + (ndc.x * np.ax)) + (ndc.y * np.ay)); float _e36 = _group_0_binding_0_fs.ssao2_.w; if ((_e36 > 0.5)) { return vec3(a_2.xy, -(d)); } return (a_2 * (d / -(a_2.z))); } float ssao_estimate(Near np_1, vec2 pc, vec3 p_1, vec3 n_1, float depth, float radius, float angle) { float sum_2 = 0.0; int i = 0; bool local_6 = false; bool local_7 = false; bool local_8 = false; float _e10 = _group_0_binding_0_fs.ssao2_.z; float _e15 = _group_0_binding_0_fs.ssao2_.w; float r_px = ((radius * _e10) / ((_e15 > 0.5) ? 1.0 : depth)); if ((r_px < 1.0)) { return 1.0; } vec4 _e26 = _group_0_binding_0_fs.target_size; ivec2 size = ivec2(_e26.xy); float r2_ = (radius * radius); float bias = (depth * SSAO_DEPTH_BIAS); bool loop_init = true; while(true) { if (!loop_init) { int _e120 = i; i = (_e120 + 1); } loop_init = false; int _e37 = i; if ((_e37 < SSAO_SAMPLES)) { } else { break; } { int _e40 = i; float alpha = ((float(_e40) + 0.5) / 12.0); float theta = (((6.2831855 * alpha) * SSAO_TURNS) + angle); vec2 s = (pc + ((r_px * alpha) * vec2(cos(theta), sin(theta)))); ivec2 si = ivec2(floor(s)); if (!((si.x < 0))) { local_6 = (si.y < 0); } else { local_6 = true; } bool _e68 = local_6; if (!(_e68)) { local_7 = (si.x >= size.x); } else { local_7 = true; } bool _e76 = local_7; if (!(_e76)) { local_8 = (si.y >= size.y); } else { local_8 = true; } bool _e84 = local_8; if (_e84) { continue; } vec4 _e87 = texelFetch(_group_0_binding_1_fs, si, 0); float d_1 = _e87.w; if ((d_1 <= 0.0)) { continue; } vec3 _e95 = view_pos(np_1, (vec2(si) + vec2(0.5)), d_1); vec3 v_1 = (_e95 - p_1); float vv = dot(v_1, v_1); float _e98 = sum_2; float _e113 = _group_0_binding_0_fs.ssao2_.x; sum_2 = (_e98 + (max((1.0 - (vv / r2_)), 0.0) * max((((dot(v_1, n_1) - bias) / sqrt((vv + 0.0001))) - _e113), 0.0))); } } float _e125 = _group_0_binding_0_fs.ssao.y; float _e126 = sum_2; float _e139 = _group_0_binding_0_fs.ssao.z; return pow(max(clamp((1.0 - ((_e125 * _e126) / 12.0)), 0.0, 1.0), 1e-6), _e139); } float glow_weight_h(int k_2) { float w[4] = float[4](0.174938, 0.165569, 0.140367, 0.106595); float _e8 = w[k_2]; return _e8; } float glow_weight_v(int k_3) { float w_1[3] = float[3](0.288713, 0.233062, 0.122581); float _e7 = w_1[k_3]; return _e7; } vec3 glow_blend(vec3 c_10, vec3 g_1, uint mode_1) { if ((mode_1 == GLOW_BLEND_ADDITIVE)) { return (c_10 + g_1); } if ((mode_1 == GLOW_BLEND_SCREEN)) { vec3 _e8 = sat3_(c_10); vec3 _e9 = sat3_(g_1); return max(((_e8 + _e9) - (_e8 * _e9)), vec3(0.0)); } if ((mode_1 == GLOW_BLEND_SOFTLIGHT)) { vec3 _e18 = sat3_(c_10); vec3 h = ((g_1 * 0.5) + vec3(0.5)); vec3 dark = (_e18 - (((vec3(1.0) - (2.0 * h)) * _e18) * (vec3(1.0) - _e18))); vec3 low = (_e18 + (((2.0 * h) - vec3(1.0)) * ((((4.0 * _e18) * ((4.0 * _e18) + vec3(1.0))) * (_e18 - vec3(1.0))) + (7.0 * _e18)))); vec3 high = (_e18 + (((2.0 * h) - vec3(1.0)) * (sqrt(_e18) - _e18))); return mix(mix(high, low, lessThanEqual(_e18, vec3(0.25))), dark, lessThanEqual(h, vec3(0.5))); } if ((mode_1 == GLOW_BLEND_REPLACE)) { return g_1; } return c_10; } vec3 apply_bcs(vec3 c_in) { vec3 c_11 = vec3(0.0); float _e6 = _group_0_binding_0_fs.bcs.x; c_11 = mix(vec3(0.0), c_in, _e6); vec3 _e11 = c_11; float _e15 = _group_0_binding_0_fs.bcs.y; c_11 = mix(vec3(0.5), _e11, _e15); vec3 _e17 = c_11; vec3 _e24 = c_11; float _e28 = _group_0_binding_0_fs.bcs.z; c_11 = mix(vec3((dot(_e17, vec3(1.0)) / 3.0)), _e24, _e28); vec3 _e30 = c_11; return _e30; } vec4 bspline_weights(float a_1) { float w0_ = (0.16666667 * ((a_1 * ((a_1 * (-(a_1) + 3.0)) - 3.0)) + 1.0)); float w1_ = (0.16666667 * (((a_1 * a_1) * ((3.0 * a_1) - 6.0)) + 4.0)); float w2_ = (0.16666667 * ((a_1 * ((a_1 * ((-3.0 * a_1) + 3.0)) + 3.0)) + 1.0)); float w3_ = (0.16666667 * ((a_1 * a_1) * a_1)); return vec4((w0_ + w1_), (w2_ + w3_), (-1.0 + (w1_ / (w0_ + w1_))), (1.0 + (w3_ / (w2_ + w3_)))); } vec3 glow_bicubic(vec2 uv, int lod) { vec2 size_1 = vec2(uvec2(textureSize(_group_0_binding_3_fs, lod).xy)); vec2 texel = (vec2(1.0) / size_1); vec2 st = ((uv * size_1) + vec2(0.5)); vec2 i_2 = floor(st); vec2 f = (st - i_2); vec4 _e15 = bspline_weights(f.x); vec4 _e17 = bspline_weights(f.y); float l = float(lod); vec2 p0_ = ((vec2((i_2.x + _e15.z), (i_2.y + _e17.z)) - vec2(0.5)) * texel); vec2 p1_ = ((vec2((i_2.x + _e15.w), (i_2.y + _e17.z)) - vec2(0.5)) * texel); vec2 p2_ = ((vec2((i_2.x + _e15.z), (i_2.y + _e17.w)) - vec2(0.5)) * texel); vec2 p3_ = ((vec2((i_2.x + _e15.w), (i_2.y + _e17.w)) - vec2(0.5)) * texel); vec4 _e67 = textureLod(_group_0_binding_3_fs, vec2(p0_), l); vec4 _e73 = textureLod(_group_0_binding_3_fs, vec2(p1_), l); vec4 _e82 = textureLod(_group_0_binding_3_fs, vec2(p2_), l); vec4 _e88 = textureLod(_group_0_binding_3_fs, vec2(p3_), l); return ((_e17.x * ((_e15.x * _e67.xyz) + (_e15.y * _e73.xyz))) + (_e17.y * ((_e15.x * _e82.xyz) + (_e15.y * _e88.xyz)))); } vec3 glow_sum(vec2 uv_1) { float w_2[7] = float[7](0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); vec3 g_2 = vec3(0.0); int k_4 = 0; float _e4 = _group_0_binding_0_fs.levels_low.x; float _e8 = _group_0_binding_0_fs.levels_low.y; float _e12 = _group_0_binding_0_fs.levels_low.z; float _e16 = _group_0_binding_0_fs.levels_low.w; float _e20 = _group_0_binding_0_fs.levels_high.x; float _e24 = _group_0_binding_0_fs.levels_high.y; float _e28 = _group_0_binding_0_fs.levels_high.z; w_2 = float[7](_e4, _e8, _e12, _e16, _e20, _e24, _e28); bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e53 = k_4; k_4 = (_e53 + 1); } loop_init_1 = false; int _e36 = k_4; if ((_e36 < 7)) { } else { break; } { int _e39 = k_4; float _e41 = w_2[_e39]; if ((_e41 != 0.0)) { vec3 _e44 = g_2; int _e45 = k_4; vec3 _e46 = glow_bicubic(uv_1, _e45); int _e47 = k_4; float _e49 = w_2[_e47]; g_2 = (_e44 + (_e46 * _e49)); } } } vec3 _e55 = g_2; return _e55; } void main() { vec4 pos_5 = gl_FragCoord; vec3 c_3 = vec3(0.0); bool local_3 = false; bool local_4 = false; vec3 g = vec3(0.0); bool local_5 = false; float a = 0.0; ivec2 q_1 = ivec2(floor(pos_5.xy)); vec4 _e7 = _group_0_binding_0_fs.target_size; vec2 uv_2 = (pos_5.xy * _e7.zw); vec4 src = texelFetch(_group_0_binding_1_fs, q_1, 0); uint bits = _group_0_binding_0_fs.flags.x; uint mode_2 = _group_0_binding_0_fs.flags.y; uint blend = _group_0_binding_0_fs.flags.z; float white_2 = _group_0_binding_0_fs.tone.y; c_3 = src.xyz; if (((bits & POST_STRAIGHT) != 0u)) { local_3 = (src.w > 0.0); } else { local_3 = false; } bool _e41 = local_3; if (_e41) { local_4 = (src.w < 1.0); } else { local_4 = false; } bool _e48 = local_4; if (_e48) { vec3 _e49 = c_3; c_3 = (_e49 / vec3(max(src.w, 1e-6))); } if (((bits & POST_TONEMAP) != 0u)) { vec3 _e59 = c_3; float _e63 = _group_0_binding_0_fs.tone.x; c_3 = max((_e59 * _e63), vec3(0.0)); } if (((bits & POST_GLOW) != 0u)) { vec3 _e75 = glow_sum(uv_2); g = _e75; if ((blend == GLOW_BLEND_MIX)) { vec3 _e78 = c_3; vec3 _e79 = g; float _e83 = _group_0_binding_0_fs.tone.z; c_3 = mix(_e78, _e79, _e83); } } if (((bits & POST_TONEMAP) != 0u)) { vec3 _e89 = c_3; vec3 _e90 = tone_curve(_e89, mode_2, white_2); c_3 = _e90; } vec3 _e91 = c_3; vec3 _e92 = sat3_(_e91); vec3 _e93 = linear_to_srgb(_e92); c_3 = _e93; if (((bits & POST_GLOW) != 0u)) { local_5 = (blend != GLOW_BLEND_MIX); } else { local_5 = false; } bool _e103 = local_5; if (_e103) { vec3 _e104 = g; vec3 _e105 = tone_curve(_e104, mode_2, white_2); vec3 _e106 = sat3_(_e105); vec3 _e107 = linear_to_srgb(_e106); vec3 _e108 = c_3; vec3 _e109 = glow_blend(_e108, _e107, blend); c_3 = _e109; } if (((bits & POST_ADJUST) != 0u)) { vec3 _e114 = c_3; vec3 _e115 = apply_bcs(_e114); c_3 = _e115; } vec3 _e116 = c_3; vec3 _e117 = sat3_(_e116); c_3 = _e117; a = src.w; if (((bits & POST_OVERLAY) != 0u)) { vec4 o_1 = texelFetch(_group_0_binding_2_fs, q_1, 0); vec3 _e127 = c_3; vec3 _e128 = srgb_to_linear(_e127); vec3 lin = ((_e128 * (1.0 - o_1.w)) + o_1.xyz); vec3 _e135 = sat3_(lin); vec3 _e136 = linear_to_srgb(_e135); c_3 = _e136; float _e138 = a; a = (o_1.w + (_e138 * (1.0 - o_1.w))); } vec3 _e144 = c_3; float _e145 = a; _fs2p_location0 = vec4(_e144, _e145); return; }   ß›rÇ!zSPostU_block_0Fragment_group_0_binding_1_fs_group_0_binding_2_fs_group_0_binding_3_fsvs_fullvs_fullfs_ssaofs_ssao fs_ssao_blur fs_ssao_blurfs_glow_brightfs_glow_brightfs_glow_blur_hfs_glow_blur_hfs_glow_blur_vfs_glow_blur_vfs_postfs_post9ƒ// language: metal2.2 #include #include using metal::uint; struct PostU { metal::float4 target_size; metal::float4 source_size; metal::uint4 flags; metal::float4 tone; metal::float4 glow; metal::float4 levels_low; metal::float4 levels_high; metal::float4 bcs; metal::float4 ssao; metal::float4 ssao2_; metal::float4x4 inv_proj; metal::float4x4 proj; }; struct type_9 { metal::float2 inner[3]; }; struct type_13 { uint inner[16]; }; struct Near { metal::float3 a0_; metal::float3 ax; metal::float3 ay; }; struct type_15 { float inner[4]; }; struct type_16 { float inner[3]; }; struct type_17 { float inner[7]; }; constant uint POST_TONEMAP = 1u; constant uint POST_GLOW = 2u; constant uint POST_ADJUST = 4u; constant uint POST_DOWNSAMPLE = 8u; constant uint POST_OVERLAY = 16u; constant uint POST_STRAIGHT = 32u; constant uint POST_SSAO_HALF = 64u; constant uint TONEMAP_LINEAR = 0u; constant uint TONEMAP_REINHARD = 1u; constant uint TONEMAP_FILMIC = 2u; constant uint TONEMAP_ACES = 3u; constant uint TONEMAP_AGX = 4u; constant uint GLOW_BLEND_ADDITIVE = 0u; constant uint GLOW_BLEND_SCREEN = 1u; constant uint GLOW_BLEND_SOFTLIGHT = 2u; constant uint GLOW_BLEND_REPLACE = 3u; constant uint GLOW_BLEND_MIX = 4u; constant int SSAO_SAMPLES = 12; constant float SSAO_TURNS = 7.0; constant float SSAO_DETAIL_RADIUS = 0.25; constant float SSAO_DEPTH_BIAS = 0.0009765625; constant float PI = 3.1415927; metal::float3 sat3_( metal::float3 c_4 ) { return metal::clamp(c_4, metal::float3(0.0), metal::float3(1.0)); } metal::float3 linear_to_srgb( metal::float3 c_5 ) { metal::float3 lo = c_5 * 12.92; metal::float3 hi = (1.055 * metal::pow(c_5, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi, lo, c_5 <= metal::float3(0.0031308)); } metal::float3 srgb_to_linear( metal::float3 c_6 ) { metal::float3 lo_1 = c_6 / metal::float3(12.92); metal::float3 hi_1 = metal::pow((c_6 + metal::float3(0.055)) / metal::float3(1.055), metal::float3(2.4)); return metal::select(hi_1, lo_1, c_6 <= metal::float3(0.04045)); } metal::float3 filmic_curve( metal::float3 x_1 ) { return (((x_1 * ((0.88 * x_1) + metal::float3(0.1 * 0.6))) + metal::float3(0.2 * 0.01)) / ((x_1 * ((0.88 * x_1) + metal::float3(0.6))) + metal::float3(0.2 * 0.3))) - metal::float3(0.01 / 0.3); } metal::float3 aces_curve( metal::float3 c_7, float white ) { metal::float3 x_2 = metal::float3(1.8 * metal::dot(metal::float3(0.59719, 0.35458, 0.04823), c_7), 1.8 * metal::dot(metal::float3(0.076, 0.90834, 0.01566), c_7), 1.8 * metal::dot(metal::float3(0.0284, 0.13383, 0.83777), c_7)); metal::float3 t = ((x_2 * (x_2 + metal::float3(0.0245786))) - metal::float3(0.000090537)) / ((x_2 * ((0.983729 * x_2) + metal::float3(0.432951))) + metal::float3(0.238081)); metal::float3 o = metal::float3(metal::dot(metal::float3(1.60475, -0.53108, -0.07367), t), metal::dot(metal::float3(-0.10208, 1.10813, -0.00605), t), metal::dot(metal::float3(-0.00327, -0.07276, 1.07602), t)); float w_3 = 1.8 * white; float wt = ((w_3 * (w_3 + 0.0245786)) - 0.000090537) / ((w_3 * ((0.983729 * w_3) + 0.432951)) + 0.238081); return o / metal::float3(wt); } metal::float3 agx_curve( metal::float3 c_8 ) { metal::float3 v = {}; metal::float3x3 inset = metal::float3x3(metal::float3(0.54490817, 0.14044006, 0.08882741), metal::float3(0.37377945, 0.7541096, 0.17887713), metal::float3(0.08138498, 0.10543358, 0.73225)); metal::float3x3 outset = metal::float3x3(metal::float3(1.964551, -0.29932243, -0.16436833), metal::float3(-0.85585845, 1.3264511, -0.23822464), metal::float3(-0.10886711, -0.02708402, 1.4026654)); v = inset * metal::max(c_8, metal::float3(0.0000000002)); metal::float3 _e34 = v; v = (metal::clamp(metal::log2(_e34), metal::float3(-12.473931), metal::float3(4.0260687)) - metal::float3(-12.473931)) / metal::float3(4.0260687 - -12.473931); metal::float3 _e44 = v; metal::float3 _e45 = v; metal::float3 x2_ = _e44 * _e45; metal::float3 x4_ = x2_ * x2_; metal::float3 _e48 = v; metal::float3 _e56 = v; metal::float3 _e64 = v; metal::float3 p_2 = (((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_); return outset * metal::pow(metal::max(p_2, metal::float3(0.0000000001)), metal::float3(2.4)); } metal::float3 tone_curve( metal::float3 c_9, uint mode, float white_1 ) { if (mode == TONEMAP_REINHARD) { return ((white_1 * c_9) + c_9) / ((c_9 * white_1) + metal::float3(white_1)); } if (mode == TONEMAP_FILMIC) { metal::float3 _e13 = filmic_curve(c_9); metal::float3 _e15 = filmic_curve(metal::float3(white_1)); return _e13 / _e15; } if (mode == TONEMAP_ACES) { metal::float3 _e19 = aces_curve(c_9, white_1); return _e19; } if (mode == TONEMAP_AGX) { metal::float3 _e22 = agx_curve(c_9); return _e22; } return c_9; } float ssao_angle( metal::int2 q ) { type_13 bayer = type_13 {{0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u}}; int i_1 = as_type(as_type(as_type(as_type(q.y & 3) * as_type(4))) + as_type(q.x & 3)); uint _e30 = bayer.inner[metal::min(unsigned(i_1), 15u)]; return (6.2831855 * static_cast(_e30)) / 16.0; } Near near_plane( constant PostU& U ) { Near n = {}; metal::float4x4 _e2 = U.inv_proj; metal::float4 c_12 = _e2 * metal::float4(0.0, 0.0, 0.0, 1.0); metal::float4x4 _e11 = U.inv_proj; metal::float4 x_3 = _e11 * metal::float4(1.0, 0.0, 0.0, 1.0); metal::float4x4 _e20 = U.inv_proj; metal::float4 y_1 = _e20 * metal::float4(0.0, 1.0, 0.0, 1.0); n.a0_ = c_12.xyz / metal::float3(c_12.w); metal::float3 _e39 = n.a0_; n.ax = (x_3.xyz / metal::float3(x_3.w)) - _e39; metal::float3 _e47 = n.a0_; n.ay = (y_1.xyz / metal::float3(y_1.w)) - _e47; Near _e49 = n; return _e49; } metal::float3 view_pos( Near np, metal::float2 p, float d, constant PostU& U ) { float _e9 = U.target_size.z; float _e19 = U.target_size.w; metal::float2 ndc = metal::float2(((2.0 * p.x) * _e9) - 1.0, 1.0 - ((2.0 * p.y) * _e19)); metal::float3 a_2 = (np.a0_ + (ndc.x * np.ax)) + (ndc.y * np.ay); float _e36 = U.ssao2_.w; if (_e36 > 0.5) { return metal::float3(a_2.xy, -(d)); } return a_2 * (d / -(a_2.z)); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float ssao_estimate( Near np_1, metal::float2 pc, metal::float3 p_1, metal::float3 n_1, float depth, float radius, float angle, constant PostU& U, metal::texture2d t_src ) { float sum_2 = 0.0; int i = 0; bool local_6 = {}; bool local_7 = {}; bool local_8 = {}; float _e10 = U.ssao2_.z; float _e15 = U.ssao2_.w; float r_px = (radius * _e10) / ((_e15 > 0.5) ? 1.0 : depth); if (r_px < 1.0) { return 1.0; } metal::float4 _e26 = U.target_size; metal::int2 size = naga_f2i32(_e26.xy); float r2_ = radius * radius; float bias = depth * SSAO_DEPTH_BIAS; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e120 = i; i = as_type(as_type(_e120) + as_type(1)); } loop_init = false; int _e37 = i; if (_e37 < SSAO_SAMPLES) { } else { break; } { int _e40 = i; float alpha = (static_cast(_e40) + 0.5) / 12.0; float theta = ((6.2831855 * alpha) * SSAO_TURNS) + angle; metal::float2 s = pc + ((r_px * alpha) * metal::float2(metal::cos(theta), metal::sin(theta))); metal::int2 si = naga_f2i32(metal::floor(s)); if (!((si.x < 0))) { local_6 = si.y < 0; } else { local_6 = true; } bool _e68 = local_6; if (!(_e68)) { local_7 = si.x >= size.x; } else { local_7 = true; } bool _e76 = local_7; if (!(_e76)) { local_8 = si.y >= size.y; } else { local_8 = true; } bool _e84 = local_8; if (_e84) { continue; } uint clamped_lod_e87 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 _e87 = t_src.read(metal::min(metal::uint2(si), metal::uint2(t_src.get_width(clamped_lod_e87), t_src.get_height(clamped_lod_e87)) - 1), clamped_lod_e87); float d_1 = _e87.w; if (d_1 <= 0.0) { continue; } metal::float3 _e95 = view_pos(np_1, static_cast(si) + metal::float2(0.5), d_1, U); metal::float3 v_1 = _e95 - p_1; float vv = metal::dot(v_1, v_1); float _e98 = sum_2; float _e113 = U.ssao2_.x; sum_2 = _e98 + (metal::max(1.0 - (vv / r2_), 0.0) * metal::max(((metal::dot(v_1, n_1) - bias) / metal::sqrt(vv + 0.0001)) - _e113, 0.0)); } } float _e125 = U.ssao.y; float _e126 = sum_2; float _e139 = U.ssao.z; return metal::pow(metal::max(metal::clamp(1.0 - ((_e125 * _e126) / 12.0), 0.0, 1.0), 0.000001), _e139); } float glow_weight_h( int k_2 ) { type_15 w = type_15 {{0.174938, 0.165569, 0.140367, 0.106595}}; float _e8 = w.inner[metal::min(unsigned(k_2), 3u)]; return _e8; } float glow_weight_v( int k_3 ) { type_16 w_1 = type_16 {{0.288713, 0.233062, 0.122581}}; float _e7 = w_1.inner[metal::min(unsigned(k_3), 2u)]; return _e7; } metal::float3 glow_blend( metal::float3 c_10, metal::float3 g_1, uint mode_1 ) { if (mode_1 == GLOW_BLEND_ADDITIVE) { return c_10 + g_1; } if (mode_1 == GLOW_BLEND_SCREEN) { metal::float3 _e8 = sat3_(c_10); metal::float3 _e9 = sat3_(g_1); return metal::max((_e8 + _e9) - (_e8 * _e9), metal::float3(0.0)); } if (mode_1 == GLOW_BLEND_SOFTLIGHT) { metal::float3 _e18 = sat3_(c_10); metal::float3 h = (g_1 * 0.5) + metal::float3(0.5); metal::float3 dark = _e18 - (((metal::float3(1.0) - (2.0 * h)) * _e18) * (metal::float3(1.0) - _e18)); metal::float3 low = _e18 + (((2.0 * h) - metal::float3(1.0)) * ((((4.0 * _e18) * ((4.0 * _e18) + metal::float3(1.0))) * (_e18 - metal::float3(1.0))) + (7.0 * _e18))); metal::float3 high = _e18 + (((2.0 * h) - metal::float3(1.0)) * (metal::sqrt(_e18) - _e18)); return metal::select(metal::select(high, low, _e18 <= metal::float3(0.25)), dark, h <= metal::float3(0.5)); } if (mode_1 == GLOW_BLEND_REPLACE) { return g_1; } return c_10; } metal::float3 apply_bcs( metal::float3 c_in, constant PostU& U ) { metal::float3 c_11 = {}; float _e6 = U.bcs.x; c_11 = metal::mix(metal::float3(0.0), c_in, _e6); metal::float3 _e11 = c_11; float _e15 = U.bcs.y; c_11 = metal::mix(metal::float3(0.5), _e11, _e15); metal::float3 _e17 = c_11; metal::float3 _e24 = c_11; float _e28 = U.bcs.z; c_11 = metal::mix(metal::float3(metal::dot(_e17, metal::float3(1.0)) / 3.0), _e24, _e28); metal::float3 _e30 = c_11; return _e30; } metal::float4 bspline_weights( float a_1 ) { float w0_ = 0.16666667 * ((a_1 * ((a_1 * (-(a_1) + 3.0)) - 3.0)) + 1.0); float w1_ = 0.16666667 * (((a_1 * a_1) * ((3.0 * a_1) - 6.0)) + 4.0); float w2_ = 0.16666667 * ((a_1 * ((a_1 * ((-3.0 * a_1) + 3.0)) + 3.0)) + 1.0); float w3_ = 0.16666667 * ((a_1 * a_1) * a_1); return metal::float4(w0_ + w1_, w2_ + w3_, -1.0 + (w1_ / (w0_ + w1_)), 1.0 + (w3_ / (w2_ + w3_))); } metal::float3 glow_bicubic( metal::float2 uv, int lod, metal::texture2d t_glow, metal::sampler s_linear ) { metal::float2 size_1 = static_cast(metal::uint2(t_glow.get_width(lod), t_glow.get_height(lod))); metal::float2 texel = metal::float2(1.0) / size_1; metal::float2 st = (uv * size_1) + metal::float2(0.5); metal::float2 i_2 = metal::floor(st); metal::float2 f = st - i_2; metal::float4 _e15 = bspline_weights(f.x); metal::float4 _e17 = bspline_weights(f.y); float l = static_cast(lod); metal::float2 p0_ = (metal::float2(i_2.x + _e15.z, i_2.y + _e17.z) - metal::float2(0.5)) * texel; metal::float2 p1_ = (metal::float2(i_2.x + _e15.w, i_2.y + _e17.z) - metal::float2(0.5)) * texel; metal::float2 p2_ = (metal::float2(i_2.x + _e15.z, i_2.y + _e17.w) - metal::float2(0.5)) * texel; metal::float2 p3_ = (metal::float2(i_2.x + _e15.w, i_2.y + _e17.w) - metal::float2(0.5)) * texel; metal::float4 _e67 = t_glow.sample(s_linear, p0_, metal::level(l)); metal::float4 _e73 = t_glow.sample(s_linear, p1_, metal::level(l)); metal::float4 _e82 = t_glow.sample(s_linear, p2_, metal::level(l)); metal::float4 _e88 = t_glow.sample(s_linear, p3_, metal::level(l)); return (_e17.x * ((_e15.x * _e67.xyz) + (_e15.y * _e73.xyz))) + (_e17.y * ((_e15.x * _e82.xyz) + (_e15.y * _e88.xyz))); } metal::float3 glow_sum( metal::float2 uv_1, constant PostU& U, metal::texture2d t_glow, metal::sampler s_linear ) { type_17 w_2 = {}; metal::float3 g_2 = metal::float3(0.0); int k_4 = 0; float _e4 = U.levels_low.x; float _e8 = U.levels_low.y; float _e12 = U.levels_low.z; float _e16 = U.levels_low.w; float _e20 = U.levels_high.x; float _e24 = U.levels_high.y; float _e28 = U.levels_high.z; w_2 = type_17 {{_e4, _e8, _e12, _e16, _e20, _e24, _e28}}; uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { int _e53 = k_4; k_4 = as_type(as_type(_e53) + as_type(1)); } loop_init_1 = false; int _e36 = k_4; if (_e36 < 7) { } else { break; } { int _e39 = k_4; float _e41 = w_2.inner[metal::min(unsigned(_e39), 6u)]; if (_e41 != 0.0) { metal::float3 _e44 = g_2; int _e45 = k_4; metal::float3 _e46 = glow_bicubic(uv_1, _e45, t_glow, s_linear); int _e47 = k_4; float _e49 = w_2.inner[metal::min(unsigned(_e47), 6u)]; g_2 = _e44 + (_e46 * _e49); } } } metal::float3 _e55 = g_2; return _e55; } struct vs_fullInput { }; struct vs_fullOutput { metal::float4 member [[position]]; }; vertex vs_fullOutput vs_full( uint vi [[vertex_id]] ) { type_9 pts = type_9 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; metal::float2 _e13 = pts.inner[metal::min(unsigned(vi), 2u)]; return vs_fullOutput { metal::float4(_e13, 0.0, 1.0) }; } struct fs_ssaoInput { }; struct fs_ssaoOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_ssaoOutput fs_ssao( metal::float4 pos [[position]] , constant PostU& U [[buffer(0)]] , metal::texture2d t_src [[texture(0)]] ) { float ao = {}; metal::int2 h_1 = naga_f2i32(metal::floor(pos.xy)); uint _e7 = U.flags.x; int k_5 = ((_e7 & POST_SSAO_HALF) != 0u) ? 2 : 1; metal::int2 q_1 = as_type(as_type(h_1) * as_type(k_5)); uint clamped_lod_e18 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 nd = t_src.read(metal::min(metal::uint2(q_1), metal::uint2(t_src.get_width(clamped_lod_e18), t_src.get_height(clamped_lod_e18)) - 1), clamped_lod_e18); if (nd.w <= 0.0) { return fs_ssaoOutput { metal::float4(1.0) }; } metal::float2 pc_1 = static_cast(q_1) + metal::float2(0.5); Near _e28 = near_plane(U); metal::float3 _e30 = view_pos(_e28, pc_1, nd.w, U); metal::float3 n_2 = metal::normalize(nd.xyz); float _e33 = ssao_angle(h_1); float _e38 = U.ssao.x; float _e39 = ssao_estimate(_e28, pc_1, _e30, n_2, nd.w, _e38, _e33, U, t_src); ao = _e39; float _e44 = U.ssao.w; if (_e44 != 0.0) { float _e47 = ao; float _e52 = U.ssao.x; float _e55 = ssao_estimate(_e28, pc_1, _e30, n_2, nd.w, _e52 * SSAO_DETAIL_RADIUS, _e33, U, t_src); float _e59 = U.ssao.w; ao = _e47 * metal::mix(1.0, _e55, _e59); } float _e63 = ao; float _e64 = ao; float _e65 = ao; return fs_ssaoOutput { metal::float4(_e63, _e64, _e65, 1.0) }; } metal::int2 naga_div(metal::int2 lhs, metal::int2 rhs) { return lhs / metal::select(rhs, 1, (lhs == (-2147483647 - 1) & rhs == -1) | (rhs == 0)); } struct fs_ssao_blurInput { }; struct fs_ssao_blurOutput { metal::float4 member_2 [[color(0)]]; }; fragment fs_ssao_blurOutput fs_ssao_blur( metal::float4 pos_1 [[position]] , constant PostU& U [[buffer(0)]] , metal::texture2d t_src [[texture(0)]] , metal::texture2d t_aux [[texture(1)]] ) { float sum = 0.0; float weights = 0.0; int dy = -2; int dx = {}; bool local = {}; bool local_1 = {}; bool local_2 = {}; float ao_1 = {}; metal::int2 q_2 = naga_f2i32(metal::floor(pos_1.xy)); uint clamped_lod_e6 = metal::min(uint(0), t_aux.get_num_mip_levels() - 1); metal::float4 nd_1 = t_aux.read(metal::min(metal::uint2(q_2), metal::uint2(t_aux.get_width(clamped_lod_e6), t_aux.get_height(clamped_lod_e6)) - 1), clamped_lod_e6); if (nd_1.w <= 0.0) { return fs_ssao_blurOutput { metal::float4(1.0) }; } metal::float3 n_3 = metal::normalize(nd_1.xyz); Near _e14 = near_plane(U); metal::float3 _e20 = view_pos(_e14, static_cast(q_2) + metal::float2(0.5), nd_1.w, U); float _e24 = U.ssao2_.y; float tol = ((0.1 * (1.0 - _e24)) + 0.002) * nd_1.w; uint _e36 = U.flags.x; int k_6 = ((_e36 & POST_SSAO_HALF) != 0u) ? 2 : 1; metal::float4 _e46 = U.target_size; metal::int2 size_2 = naga_div(as_type(as_type(naga_f2i32(_e46.xy)) + as_type(metal::int2(as_type(as_type(k_6) - as_type(1))))), metal::int2(k_6)); metal::int2 h_2 = naga_div(q_2, metal::int2(k_6)); uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { int _e145 = dy; dy = as_type(as_type(_e145) + as_type(1)); } loop_init_2 = false; int _e63 = dy; if (_e63 <= 1) { } else { break; } { dx = -2; uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { int _e142 = dx; dx = as_type(as_type(_e142) + as_type(1)); } loop_init_3 = false; int _e68 = dx; if (_e68 <= 1) { } else { break; } { int _e71 = dx; int _e72 = dy; metal::int2 t_1 = as_type(as_type(h_2) + as_type(metal::int2(_e71, _e72))); if (!((t_1.x < 0))) { local = t_1.y < 0; } else { local = true; } bool _e85 = local; if (!(_e85)) { local_1 = t_1.x >= size_2.x; } else { local_1 = true; } bool _e93 = local_1; if (!(_e93)) { local_2 = t_1.y >= size_2.y; } else { local_2 = true; } bool _e101 = local_2; if (_e101) { continue; } uint clamped_lod_e105 = metal::min(uint(0), t_aux.get_num_mip_levels() - 1); metal::float4 m = t_aux.read(metal::min(metal::uint2(as_type(as_type(t_1) * as_type(k_6))), metal::uint2(t_aux.get_width(clamped_lod_e105), t_aux.get_height(clamped_lod_e105)) - 1), clamped_lod_e105); if (m.w <= 0.0) { continue; } float c_13 = metal::max(metal::dot(n_3, metal::normalize(m.xyz)), 0.0); float c2_ = c_13 * c_13; metal::float3 _e121 = view_pos(_e14, static_cast(as_type(as_type(t_1) * as_type(k_6))) + metal::float2(0.5), m.w, U); float plane = metal::abs(metal::dot(n_3, _e121 - _e20)); float w_4 = (c2_ * c2_) * metal::max(0.0, 1.0 - (plane / tol)); float _e132 = sum; uint clamped_lod_e135 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 _e135 = t_src.read(metal::min(metal::uint2(t_1), metal::uint2(t_src.get_width(clamped_lod_e135), t_src.get_height(clamped_lod_e135)) - 1), clamped_lod_e135); sum = _e132 + (w_4 * _e135.x); float _e139 = weights; weights = _e139 + w_4; } } } } uint clamped_lod_e149 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 _e149 = t_src.read(metal::min(metal::uint2(h_2), metal::uint2(t_src.get_width(clamped_lod_e149), t_src.get_height(clamped_lod_e149)) - 1), clamped_lod_e149); ao_1 = _e149.x; float _e152 = weights; if (_e152 >= 0.0001) { float _e155 = sum; float _e156 = weights; ao_1 = _e155 / _e156; } float _e158 = ao_1; float _e159 = ao_1; float _e160 = ao_1; return fs_ssao_blurOutput { metal::float4(_e158, _e159, _e160, 1.0) }; } struct fs_glow_brightInput { }; struct fs_glow_brightOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_glow_brightOutput fs_glow_bright( metal::float4 pos_2 [[position]] , constant PostU& U [[buffer(0)]] , metal::texture2d t_src [[texture(0)]] ) { metal::float3 sum_1 = metal::float3(0.0); int y = {}; int x = {}; metal::float3 c = {}; metal::int2 q_3 = naga_f2i32(metal::floor(pos_2.xy)); uint _e7 = U.flags.w; int b = as_type(as_type(2) * as_type(static_cast(metal::max(_e7, 1u)))); metal::int2 lo_2 = as_type(as_type(q_3) * as_type(b)); metal::float4 _e18 = U.source_size; metal::int2 hi_2 = metal::min(as_type(as_type(lo_2) + as_type(metal::int2(b))), naga_f2i32(_e18.xy)); y = lo_2.y; uint2 loop_bound_4 = uint2(4294967295u); bool loop_init_4 = true; while(true) { if (metal::all(loop_bound_4 == uint2(0u))) { break; } loop_bound_4 -= uint2(loop_bound_4.y == 0u, 1u); if (!loop_init_4) { int _e48 = y; y = as_type(as_type(_e48) + as_type(1)); } loop_init_4 = false; int _e27 = y; if (_e27 < hi_2.y) { } else { break; } { x = lo_2.x; uint2 loop_bound_5 = uint2(4294967295u); bool loop_init_5 = true; while(true) { if (metal::all(loop_bound_5 == uint2(0u))) { break; } loop_bound_5 -= uint2(loop_bound_5.y == 0u, 1u); if (!loop_init_5) { int _e45 = x; x = as_type(as_type(_e45) + as_type(1)); } loop_init_5 = false; int _e32 = x; if (_e32 < hi_2.x) { } else { break; } { metal::float3 _e35 = sum_1; int _e37 = x; int _e38 = y; uint clamped_lod_e41 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 _e41 = t_src.read(metal::min(metal::uint2(metal::int2(_e37, _e38)), metal::uint2(t_src.get_width(clamped_lod_e41), t_src.get_height(clamped_lod_e41)) - 1), clamped_lod_e41); sum_1 = _e35 + _e41.xyz; } } } } float count = static_cast(metal::max(as_type(as_type(as_type(as_type(hi_2.x) - as_type(lo_2.x))) * as_type(as_type(as_type(hi_2.y) - as_type(lo_2.y)))), 1)); metal::float3 _e60 = sum_1; float _e66 = U.tone.x; c = (_e60 / metal::float3(count)) * _e66; float _e70 = c.x; float _e72 = c.y; float _e74 = c.z; float l_1 = metal::max(_e70, metal::max(_e72, _e74)); float _e80 = U.glow.x; float _e84 = U.glow.x; float _e88 = U.glow.y; float _e94 = U.glow.w; float keep = metal::max(metal::smoothstep(_e80, _e84 + _e88, l_1), _e94); metal::float3 _e96 = c; float _e101 = U.glow.z; c = metal::min(_e96 * keep, metal::float3(_e101)); metal::float3 _e104 = c; return fs_glow_brightOutput { metal::float4(_e104, 1.0) }; } struct fs_glow_blur_hInput { }; struct fs_glow_blur_hOutput { metal::float4 member_4 [[color(0)]]; }; fragment fs_glow_blur_hOutput fs_glow_blur_h( metal::float4 pos_3 [[position]] , constant PostU& U [[buffer(0)]] , metal::texture2d t_src [[texture(0)]] , metal::sampler s_linear [[sampler(0)]] ) { metal::float3 c_1 = {}; int k = 1; metal::float4 _e4 = U.target_size; metal::float2 uv_2 = pos_3.xy * _e4.zw; metal::float4 _e10 = t_src.sample(s_linear, uv_2, metal::level(0.0)); float _e13 = glow_weight_h(0); c_1 = _e10.xyz * _e13; uint2 loop_bound_6 = uint2(4294967295u); bool loop_init_6 = true; while(true) { if (metal::all(loop_bound_6 == uint2(0u))) { break; } loop_bound_6 -= uint2(loop_bound_6.y == 0u, 1u); if (!loop_init_6) { int _e51 = k; k = as_type(as_type(_e51) + as_type(1)); } loop_init_6 = false; int _e18 = k; if (_e18 <= 3) { } else { break; } { int _e21 = k; float _e28 = U.target_size.z; metal::float2 o_1 = metal::float2((static_cast(_e21) * 0.5) * _e28, 0.0); metal::float3 _e32 = c_1; metal::float4 _e37 = t_src.sample(s_linear, uv_2 + o_1, metal::level(0.0)); metal::float4 _e43 = t_src.sample(s_linear, uv_2 - o_1, metal::level(0.0)); int _e46 = k; float _e47 = glow_weight_h(_e46); c_1 = _e32 + ((_e37.xyz + _e43.xyz) * _e47); } } metal::float3 _e53 = c_1; float _e57 = U.tone.w; return fs_glow_blur_hOutput { metal::float4(_e53 * _e57, 1.0) }; } struct fs_glow_blur_vInput { }; struct fs_glow_blur_vOutput { metal::float4 member_5 [[color(0)]]; }; fragment fs_glow_blur_vOutput fs_glow_blur_v( metal::float4 pos_4 [[position]] , constant PostU& U [[buffer(0)]] , metal::texture2d t_src [[texture(0)]] , metal::sampler s_linear [[sampler(0)]] ) { metal::float3 c_2 = {}; int k_1 = 1; metal::float4 _e4 = U.target_size; metal::float2 uv_3 = pos_4.xy * _e4.zw; metal::float4 _e10 = t_src.sample(s_linear, uv_3, metal::level(0.0)); float _e13 = glow_weight_v(0); c_2 = _e10.xyz * _e13; uint2 loop_bound_7 = uint2(4294967295u); bool loop_init_7 = true; while(true) { if (metal::all(loop_bound_7 == uint2(0u))) { break; } loop_bound_7 -= uint2(loop_bound_7.y == 0u, 1u); if (!loop_init_7) { int _e49 = k_1; k_1 = as_type(as_type(_e49) + as_type(1)); } loop_init_7 = false; int _e18 = k_1; if (_e18 <= 2) { } else { break; } { int _e21 = k_1; float _e26 = U.target_size.w; metal::float2 o_2 = metal::float2(0.0, static_cast(_e21) * _e26); metal::float3 _e30 = c_2; metal::float4 _e35 = t_src.sample(s_linear, uv_3 + o_2, metal::level(0.0)); metal::float4 _e41 = t_src.sample(s_linear, uv_3 - o_2, metal::level(0.0)); int _e44 = k_1; float _e45 = glow_weight_v(_e44); c_2 = _e30 + ((_e35.xyz + _e41.xyz) * _e45); } } metal::float3 _e51 = c_2; return fs_glow_blur_vOutput { metal::float4(_e51, 1.0) }; } struct fs_postInput { }; struct fs_postOutput { metal::float4 member_6 [[color(0)]]; }; fragment fs_postOutput fs_post( metal::float4 pos_5 [[position]] , constant PostU& U [[buffer(0)]] , metal::texture2d t_src [[texture(0)]] , metal::texture2d t_aux [[texture(1)]] , metal::texture2d t_glow [[texture(2)]] , metal::sampler s_linear [[sampler(0)]] ) { metal::float3 c_3 = {}; bool local_3 = {}; bool local_4 = {}; metal::float3 g = metal::float3(0.0); bool local_5 = {}; float a = {}; metal::int2 q_4 = naga_f2i32(metal::floor(pos_5.xy)); metal::float4 _e7 = U.target_size; metal::float2 uv_4 = pos_5.xy * _e7.zw; uint clamped_lod_e12 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 src = t_src.read(metal::min(metal::uint2(q_4), metal::uint2(t_src.get_width(clamped_lod_e12), t_src.get_height(clamped_lod_e12)) - 1), clamped_lod_e12); uint bits = U.flags.x; uint mode_2 = U.flags.y; uint blend = U.flags.z; float white_2 = U.tone.y; c_3 = src.xyz; if ((bits & POST_STRAIGHT) != 0u) { local_3 = src.w > 0.0; } else { local_3 = false; } bool _e41 = local_3; if (_e41) { local_4 = src.w < 1.0; } else { local_4 = false; } bool _e48 = local_4; if (_e48) { metal::float3 _e49 = c_3; c_3 = _e49 / metal::float3(metal::max(src.w, 0.000001)); } if ((bits & POST_TONEMAP) != 0u) { metal::float3 _e59 = c_3; float _e63 = U.tone.x; c_3 = metal::max(_e59 * _e63, metal::float3(0.0)); } if ((bits & POST_GLOW) != 0u) { metal::float3 _e75 = glow_sum(uv_4, U, t_glow, s_linear); g = _e75; if (blend == GLOW_BLEND_MIX) { metal::float3 _e78 = c_3; metal::float3 _e79 = g; float _e83 = U.tone.z; c_3 = metal::mix(_e78, _e79, _e83); } } if ((bits & POST_TONEMAP) != 0u) { metal::float3 _e89 = c_3; metal::float3 _e90 = tone_curve(_e89, mode_2, white_2); c_3 = _e90; } metal::float3 _e91 = c_3; metal::float3 _e92 = sat3_(_e91); metal::float3 _e93 = linear_to_srgb(_e92); c_3 = _e93; if ((bits & POST_GLOW) != 0u) { local_5 = blend != GLOW_BLEND_MIX; } else { local_5 = false; } bool _e103 = local_5; if (_e103) { metal::float3 _e104 = g; metal::float3 _e105 = tone_curve(_e104, mode_2, white_2); metal::float3 _e106 = sat3_(_e105); metal::float3 _e107 = linear_to_srgb(_e106); metal::float3 _e108 = c_3; metal::float3 _e109 = glow_blend(_e108, _e107, blend); c_3 = _e109; } if ((bits & POST_ADJUST) != 0u) { metal::float3 _e114 = c_3; metal::float3 _e115 = apply_bcs(_e114, U); c_3 = _e115; } metal::float3 _e116 = c_3; metal::float3 _e117 = sat3_(_e116); c_3 = _e117; a = src.w; if ((bits & POST_OVERLAY) != 0u) { uint clamped_lod_e126 = metal::min(uint(0), t_aux.get_num_mip_levels() - 1); metal::float4 o_3 = t_aux.read(metal::min(metal::uint2(q_4), metal::uint2(t_aux.get_width(clamped_lod_e126), t_aux.get_height(clamped_lod_e126)) - 1), clamped_lod_e126); metal::float3 _e127 = c_3; metal::float3 _e128 = srgb_to_linear(_e127); metal::float3 lin = (_e128 * (1.0 - o_3.w)) + o_3.xyz; metal::float3 _e135 = sat3_(lin); metal::float3 _e136 = linear_to_srgb(_e135); c_3 = _e136; float _e138 = a; a = o_3.w + (_e138 * (1.0 - o_3.w)); } metal::float3 _e144 = c_3; float _e145 = a; return fs_postOutput { metal::float4(_e144, _e145) }; }   ß›rÇ!zSvs_fullmainEstruct PostU { float4 target_size; float4 source_size; uint4 flags; float4 tone; float4 glow; float4 levels_low; float4 levels_high; float4 bcs; float4 ssao; float4 ssao2; row_major float4x4 inv_proj; row_major float4x4 proj; }; struct Near { float3 a0; float3 ax; float3 ay; }; static const uint _306[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; static const float _335[4] = { 0.1749379932880401611328125f, 0.165569007396697998046875f, 0.1403670012950897216796875f, 0.106595002114772796630859375f }; static const float _349[3] = { 0.2887130081653594970703125f, 0.2330619990825653076171875f, 0.122580997645854949951171875f }; static const float2 _471[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static float4 gl_Position; static int gl_VertexIndex; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float4 gl_Position : SV_Position; }; void vert_main() { gl_Position = float4(_471[min(uint(gl_VertexIndex), 2u)], 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; return stage_output; } fs_ssaomainAstruct PostU { float4 target_size; float4 source_size; uint4 flags; float4 tone; float4 glow; float4 levels_low; float4 levels_high; float4 bcs; float4 ssao; float4 ssao2; row_major float4x4 inv_proj; row_major float4x4 proj; }; struct Near { float3 a0; float3 ax; float3 ay; }; static const uint _311[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; static const Near _342 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const float _598[4] = { 0.1749379932880401611328125f, 0.165569007396697998046875f, 0.1403670012950897216796875f, 0.106595002114772796630859375f }; static const float _611[3] = { 0.2887130081653594970703125f, 0.2330619990825653076171875f, 0.122580997645854949951171875f }; cbuffer U : register(b0) { PostU U_1_m0 : packoffset(c0); }; Texture2D t_src : register(t0); static float4 gl_FragCoord; static float4 _750; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _750 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } Near near_plane() { Near n = _342; float4 _347 = mul(float4(0.0f, 0.0f, 0.0f, 1.0f), U_1_m0.inv_proj); float4 _350 = mul(float4(1.0f, 0.0f, 0.0f, 1.0f), U_1_m0.inv_proj); float4 _353 = mul(float4(0.0f, 1.0f, 0.0f, 1.0f), U_1_m0.inv_proj); n.a0 = _347.xyz / float3(_347.www); n.ax = (_350.xyz / float3(_350.www)) - n.a0; n.ay = (_353.xyz / float3(_353.www)) - n.a0; return n; } float3 view_pos(Near np, float2 p, float d) { float2 _400 = float2(((2.0f * p.x) * U_1_m0.target_size.z) - 1.0f, 1.0f - ((2.0f * p.y) * U_1_m0.target_size.w)); float3 _409 = (np.a0 + (np.ax * _400.x)) + (np.ay * _400.y); if (U_1_m0.ssao2.w > 0.5f) { return float3(_409.xy, -d); } return _409 * (d / (-_409.z)); } float ssao_angle(int2 q) { return (6.283185482025146484375f * float(_311[min(uint(((q.y & 3) * 4) + (q.x & 3)), 15u)])) / 16.0f; } float ssao_estimate(Near np, float2 pc, float3 p, float3 n, float depth, float radius, float angle) { bool _450 = false; int i = 0; bool _448 = false; float sum = 0.0f; bool _445 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); float _460 = (radius * U_1_m0.ssao2.z) / ((U_1_m0.ssao2.w > 0.5f) ? 1.0f : depth); if (_460 < 1.0f) { return 1.0f; } int2 _472 = int2(clamp(U_1_m0.target_size.xy, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); float _473 = radius * radius; float _474 = depth * 0.0009765625f; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 12)) { break; } int _502 = i; float _505 = (float(_502) + 0.5f) / 12.0f; float _508 = ((6.283185482025146484375f * _505) * 7.0f) + angle; int2 _517 = int2(clamp(floor(pc + (float2(cos(_508), sin(_508)) * (_460 * _505))), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); if (!(_517.x < 0)) { _445 = _517.y < 0; } else { _445 = true; } if (!_445) { _448 = _517.x >= _472.x; } else { _448 = true; } if (!_448) { _450 = _517.y >= _472.y; } else { _450 = true; } if (_450) { int _577 = i; i = _577 + 1; continue; } int _545; spvTextureSize(t_src, 0u, _545); int _547 = int(min(uint(0), uint(int(_545) - 1))); uint _548_dummy_parameter; float4 _552 = t_src.Load(int3(int2(min(uint2(_517), uint2(int2(spvTextureSize(t_src, uint(_547), _548_dummy_parameter)) - int2(1, 1)))), _547)); float _553 = _552.w; if (_553 <= 0.0f) { int _577 = i; i = _577 + 1; continue; } float3 _560 = view_pos(np, float2(_517) + float2(0.5f, 0.5f), _553) - p; float _561 = dot(_560, _560); sum += (max(1.0f - (_561 / _473), 0.0f) * max(((dot(_560, n) - _474) / sqrt(_561 + 9.9999997473787516355514526367188e-05f)) - U_1_m0.ssao2.x, 0.0f)); int _577 = i; i = _577 + 1; continue; } return pow(max(clamp(1.0f - ((U_1_m0.ssao.y * sum) / 12.0f), 0.0f, 1.0f), 9.9999999747524270787835121154785e-07f), U_1_m0.ssao.z); } void frag_main() { float ao = 0.0f; int2 _764 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); int _771 = ((U_1_m0.flags.x & 64u) != 0u) ? 2 : 1; int2 _772 = _764 * int2(_771, _771); int _774; spvTextureSize(t_src, 0u, _774); int _776 = int(min(uint(0), uint(int(_774) - 1))); uint _777_dummy_parameter; float4 _781 = t_src.Load(int3(int2(min(uint2(_772), uint2(int2(spvTextureSize(t_src, uint(_776), _777_dummy_parameter)) - int2(1, 1)))), _776)); if (_781.w <= 0.0f) { _750 = float4(1.0f, 1.0f, 1.0f, 1.0f); return; } float2 _787 = float2(_772) + float2(0.5f, 0.5f); Near _788 = near_plane(); float3 _790 = view_pos(_788, _787, _781.w); float3 _792 = normalize(_781.xyz); float _793 = ssao_angle(_764); ao = ssao_estimate(_788, _787, _790, _792, _781.w, U_1_m0.ssao.x, _793); if (U_1_m0.ssao.w != 0.0f) { ao *= lerp(1.0f, ssao_estimate(_788, _787, _790, _792, _781.w, U_1_m0.ssao.x * 0.25f, _793), U_1_m0.ssao.w); } _750 = float4(ao, ao, ao, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._750 = _750; return stage_output; }  fs_ssao_blurmain5struct PostU { float4 target_size; float4 source_size; uint4 flags; float4 tone; float4 glow; float4 levels_low; float4 levels_high; float4 bcs; float4 ssao; float4 ssao2; row_major float4x4 inv_proj; row_major float4x4 proj; }; struct Near { float3 a0; float3 ax; float3 ay; }; static const uint _312[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; static const Near _343 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const float _599[4] = { 0.1749379932880401611328125f, 0.165569007396697998046875f, 0.1403670012950897216796875f, 0.106595002114772796630859375f }; static const float _612[3] = { 0.2887130081653594970703125f, 0.2330619990825653076171875f, 0.122580997645854949951171875f }; cbuffer U : register(b0) { PostU U_1_m0 : packoffset(c0); }; Texture2D t_src : register(t0); Texture2D t_aux : register(t1); static float4 gl_FragCoord; static float4 _769; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _769 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } Near near_plane() { Near n = _343; float4 _348 = mul(float4(0.0f, 0.0f, 0.0f, 1.0f), U_1_m0.inv_proj); float4 _351 = mul(float4(1.0f, 0.0f, 0.0f, 1.0f), U_1_m0.inv_proj); float4 _354 = mul(float4(0.0f, 1.0f, 0.0f, 1.0f), U_1_m0.inv_proj); n.a0 = _348.xyz / float3(_348.www); n.ax = (_351.xyz / float3(_351.www)) - n.a0; n.ay = (_354.xyz / float3(_354.www)) - n.a0; return n; } float3 view_pos(Near np, float2 p, float d) { float2 _401 = float2(((2.0f * p.x) * U_1_m0.target_size.z) - 1.0f, 1.0f - ((2.0f * p.y) * U_1_m0.target_size.w)); float3 _410 = (np.a0 + (np.ax * _401.x)) + (np.ay * _401.y); if (U_1_m0.ssao2.w > 0.5f) { return float3(_410.xy, -d); } return _410 * (d / (-_410.z)); } int2 naga_div(int2 lhs, int2 rhs) { bool2 _753 = bool2(rhs.x == int2(0, 0).x, rhs.y == int2(0, 0).y); bool2 _758 = bool2(lhs.x == int2(int(0x80000000), int(0x80000000)).x, lhs.y == int2(int(0x80000000), int(0x80000000)).y); bool2 _759 = bool2(rhs.x == int2(-1, -1).x, rhs.y == int2(-1, -1).y); bool2 _760 = bool2(_758.x && _759.x, _758.y && _759.y); bool2 _761 = bool2(_753.x || _760.x, _753.y || _760.y); return lhs / int2(_761.x ? int2(1, 1).x : rhs.x, _761.y ? int2(1, 1).y : rhs.y); } void frag_main() { bool _789 = false; float sum = 0.0f; float ao = 0.0f; bool _785 = false; float weights = 0.0f; bool _787 = false; int dy = -2; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); int2 _797 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); int _798; spvTextureSize(t_aux, 0u, _798); int _800 = int(min(uint(0), uint(int(_798) - 1))); uint _801_dummy_parameter; float4 _805 = t_aux.Load(int3(int2(min(uint2(_797), uint2(int2(spvTextureSize(t_aux, uint(_800), _801_dummy_parameter)) - int2(1, 1)))), _800)); if (_805.w <= 0.0f) { _769 = float4(1.0f, 1.0f, 1.0f, 1.0f); return; } float3 _811 = normalize(_805.xyz); Near _812 = near_plane(); float3 _816 = view_pos(_812, float2(_797) + float2(0.5f, 0.5f), _805.w); float _823 = ((0.100000001490116119384765625f * (1.0f - U_1_m0.ssao2.y)) + 0.00200000009499490261077880859375f) * _805.w; int _830 = ((U_1_m0.flags.x & 64u) != 0u) ? 2 : 1; int _836 = _830 - 1; int2 _840 = naga_div(int2(clamp(U_1_m0.target_size.xy, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))) + int2(_836, _836), int2(_830, _830)); int2 _842 = naga_div(_797, int2(_830, _830)); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -2; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dx <= 1)) { break; } int _885 = dx; int2 _888 = _842 + int2(_885, dy); if (!(_888.x < 0)) { _785 = _888.y < 0; } else { _785 = true; } if (!_785) { _787 = _888.x >= _840.x; } else { _787 = true; } if (!_787) { _789 = _888.y >= _840.y; } else { _789 = true; } if (_789) { int _963 = dx; dx = _963 + 1; continue; } int _918; spvTextureSize(t_aux, 0u, _918); int _920 = int(min(uint(0), uint(int(_918) - 1))); uint _921_dummy_parameter; float4 _925 = t_aux.Load(int3(int2(min(uint2(_888 * int2(_830, _830)), uint2(int2(spvTextureSize(t_aux, uint(_920), _921_dummy_parameter)) - int2(1, 1)))), _920)); if (_925.w <= 0.0f) { int _963 = dx; dx = _963 + 1; continue; } float _933 = max(dot(_811, normalize(_925.xyz)), 0.0f); float _934 = _933 * _933; float _948 = (_934 * _934) * max(0.0f, 1.0f - (abs(dot(_811, view_pos(_812, float2(_888 * int2(_830, _830)) + float2(0.5f, 0.5f), _925.w) - _816)) / _823)); int _950; spvTextureSize(t_src, 0u, _950); int _952 = int(min(uint(0), uint(int(_950) - 1))); uint _953_dummy_parameter; sum += (_948 * t_src.Load(int3(int2(min(uint2(_888), uint2(int2(spvTextureSize(t_src, uint(_952), _953_dummy_parameter)) - int2(1, 1)))), _952)).x); weights += _948; int _963 = dx; dx = _963 + 1; continue; } dy++; continue; } int _967; spvTextureSize(t_src, 0u, _967); int _969 = int(min(uint(0), uint(int(_967) - 1))); uint _970_dummy_parameter; ao = t_src.Load(int3(int2(min(uint2(_842), uint2(int2(spvTextureSize(t_src, uint(_969), _970_dummy_parameter)) - int2(1, 1)))), _969)).x; if (weights >= 9.9999997473787516355514526367188e-05f) { ao = sum / weights; } _769 = float4(ao, ao, ao, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._769 = _769; return stage_output; } fs_glow_brightmainÞ struct PostU { float4 target_size; float4 source_size; uint4 flags; float4 tone; float4 glow; float4 levels_low; float4 levels_high; float4 bcs; float4 ssao; float4 ssao2; row_major float4x4 inv_proj; row_major float4x4 proj; }; struct Near { float3 a0; float3 ax; float3 ay; }; static const uint _311[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; static const Near _342 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const float _598[4] = { 0.1749379932880401611328125f, 0.165569007396697998046875f, 0.1403670012950897216796875f, 0.106595002114772796630859375f }; static const float _611[3] = { 0.2887130081653594970703125f, 0.2330619990825653076171875f, 0.122580997645854949951171875f }; cbuffer U : register(b0) { PostU U_1_m0 : packoffset(c0); }; Texture2D t_src : register(t0); static float4 gl_FragCoord; static float4 _750; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _750 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); float3 sum = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); int _775 = 2 * int(max(U_1_m0.flags.w, 1u)); int2 _776 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))) * int2(_775, _775); int2 _785 = min((_776 + int2(_775, _775)), int2(clamp(U_1_m0.source_size.xy, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))); int _786 = _776.y; int y = _786; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(y < _785.y)) { break; } int _809 = _776.x; int x = _809; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(x < _785.x)) { break; } int _836; spvTextureSize(t_src, 0u, _836); int _838 = int(min(uint(0), uint(int(_836) - 1))); uint _839_dummy_parameter; sum += t_src.Load(int3(int2(min(uint2(int2(x, y)), uint2(int2(spvTextureSize(t_src, uint(_838), _839_dummy_parameter)) - int2(1, 1)))), _838)).xyz; x++; continue; } y++; continue; } float _858 = float(max(((_785.x - _776.x) * (_785.y - _776.y)), 1)); c = (sum / float3(_858, _858, _858)) * U_1_m0.tone.x; c = min(c * max(smoothstep(U_1_m0.glow.x, U_1_m0.glow.x + U_1_m0.glow.y, max(c.x, max(c.y, c.z))), U_1_m0.glow.w), float3(U_1_m0.glow.z, U_1_m0.glow.z, U_1_m0.glow.z)); _750 = float4(c, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._750 = _750; return stage_output; } fs_glow_blur_hmain struct PostU { float4 target_size; float4 source_size; uint4 flags; float4 tone; float4 glow; float4 levels_low; float4 levels_high; float4 bcs; float4 ssao; float4 ssao2; row_major float4x4 inv_proj; row_major float4x4 proj; }; struct Near { float3 a0; float3 ax; float3 ay; }; static const uint _313[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; static const Near _344 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const float _600[4] = { 0.1749379932880401611328125f, 0.165569007396697998046875f, 0.1403670012950897216796875f, 0.106595002114772796630859375f }; static const float _613[3] = { 0.2887130081653594970703125f, 0.2330619990825653076171875f, 0.122580997645854949951171875f }; cbuffer U : register(b0) { PostU U_1_m0 : packoffset(c0); }; Texture2D t_src : register(t0); SamplerState s_linear : register(s0); static float4 gl_FragCoord; static float4 _752; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _752 : SV_Target0; }; float glow_weight_h(int k) { return _600[min(uint(k), 3u)]; } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); int k = 1; uint2 loop_bound = uint2(4294967295u, 4294967295u); float2 _767 = gl_FragCoord.xy * U_1_m0.target_size.zw; c = t_src.SampleLevel(s_linear, _767, 0.0f).xyz * glow_weight_h(0); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k <= 3)) { break; } float2 _801 = float2((float(k) * 0.5f) * U_1_m0.target_size.z, 0.0f); c += ((t_src.SampleLevel(s_linear, _767 + _801, 0.0f).xyz + t_src.SampleLevel(s_linear, _767 - _801, 0.0f).xyz) * glow_weight_h(k)); k++; continue; } _752 = float4(c * U_1_m0.tone.w, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._752 = _752; return stage_output; } fs_glow_blur_vmainñstruct PostU { float4 target_size; float4 source_size; uint4 flags; float4 tone; float4 glow; float4 levels_low; float4 levels_high; float4 bcs; float4 ssao; float4 ssao2; row_major float4x4 inv_proj; row_major float4x4 proj; }; struct Near { float3 a0; float3 ax; float3 ay; }; static const uint _313[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; static const Near _344 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const float _600[4] = { 0.1749379932880401611328125f, 0.165569007396697998046875f, 0.1403670012950897216796875f, 0.106595002114772796630859375f }; static const float _613[3] = { 0.2887130081653594970703125f, 0.2330619990825653076171875f, 0.122580997645854949951171875f }; cbuffer U : register(b0) { PostU U_1_m0 : packoffset(c0); }; Texture2D t_src : register(t0); SamplerState s_linear : register(s0); static float4 gl_FragCoord; static float4 _752; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _752 : SV_Target0; }; float glow_weight_v(int k) { return _613[min(uint(k), 2u)]; } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); int k = 1; uint2 loop_bound = uint2(4294967295u, 4294967295u); float2 _768 = gl_FragCoord.xy * U_1_m0.target_size.zw; c = t_src.SampleLevel(s_linear, _768, 0.0f).xyz * glow_weight_v(0); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k <= 2)) { break; } float2 _801 = float2(0.0f, float(k) * U_1_m0.target_size.w); c += ((t_src.SampleLevel(s_linear, _768 + _801, 0.0f).xyz + t_src.SampleLevel(s_linear, _768 - _801, 0.0f).xyz) * glow_weight_v(k)); k++; continue; } _752 = float4(c, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._752 = _752; return stage_output; } fs_postmain�8struct PostU { float4 target_size; float4 source_size; uint4 flags; float4 tone; float4 glow; float4 levels_low; float4 levels_high; float4 bcs; float4 ssao; float4 ssao2; row_major float4x4 inv_proj; row_major float4x4 proj; }; struct Near { float3 a0; float3 ax; float3 ay; }; static const uint _315[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; static const Near _346 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const float _602[4] = { 0.1749379932880401611328125f, 0.165569007396697998046875f, 0.1403670012950897216796875f, 0.106595002114772796630859375f }; static const float _615[3] = { 0.2887130081653594970703125f, 0.2330619990825653076171875f, 0.122580997645854949951171875f }; static const float _845[7] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; cbuffer U : register(b0) { PostU U_1_m0 : packoffset(c0); }; Texture2D t_src : register(t0); Texture2D t_aux : register(t1); Texture2D t_glow : register(t2); SamplerState s_linear : register(s0); static float4 gl_FragCoord; static float4 _908; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _908 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float4 bspline_weights(float a) { float _724 = 0.16666667163372039794921875f * ((a * ((a * ((-a) + 3.0f)) - 3.0f)) + 1.0f); float _730 = 0.16666667163372039794921875f * (((a * a) * ((3.0f * a) - 6.0f)) + 4.0f); float _737 = 0.16666667163372039794921875f * ((a * ((a * (((-3.0f) * a) + 3.0f)) + 3.0f)) + 1.0f); float _740 = 0.16666667163372039794921875f * ((a * a) * a); return float4(_724 + _730, _737 + _740, (-1.0f) + (_730 / (_724 + _730)), 1.0f + (_740 / (_737 + _740))); } float3 glow_bicubic(float2 uv, int lod) { uint _759_dummy_parameter; float2 _760 = float2(spvTextureSize(t_glow, uint(lod), _759_dummy_parameter)); float2 _761 = float2(1.0f, 1.0f) / _760; float2 _763 = (uv * _760) + float2(0.5f, 0.5f); float2 _764 = floor(_763); float2 _765 = _763 - _764; float4 _767 = bspline_weights(_765.x); float4 _769 = bspline_weights(_765.y); float _770 = float(lod); return (((t_glow.SampleLevel(s_linear, (float2(_764.x + _767.z, _764.y + _769.z) - float2(0.5f, 0.5f)) * _761, _770).xyz * _767.x) + (t_glow.SampleLevel(s_linear, (float2(_764.x + _767.w, _764.y + _769.z) - float2(0.5f, 0.5f)) * _761, _770).xyz * _767.y)) * _769.x) + (((t_glow.SampleLevel(s_linear, (float2(_764.x + _767.z, _764.y + _769.w) - float2(0.5f, 0.5f)) * _761, _770).xyz * _767.x) + (t_glow.SampleLevel(s_linear, (float2(_764.x + _767.w, _764.y + _769.w) - float2(0.5f, 0.5f)) * _761, _770).xyz * _767.y)) * _769.y); } float3 glow_sum(float2 uv) { float w[7] = _845; float3 g = float3(0.0f, 0.0f, 0.0f); int k = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); float _863[7] = { U_1_m0.levels_low.x, U_1_m0.levels_low.y, U_1_m0.levels_low.z, U_1_m0.levels_low.w, U_1_m0.levels_high.x, U_1_m0.levels_high.y, U_1_m0.levels_high.z }; w = _863; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < 7)) { break; } if (w[min(uint(k), 6u)] != 0.0f) { g += (glow_bicubic(uv, k) * w[min(uint(k), 6u)]); } k++; continue; } return g; } float3 filmic_curve(float3 x) { float _104 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _108 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _114 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _118 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_104, _104, _104))) + float3(_108, _108, _108)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_114, _114, _114))) - float3(_118, _118, _118); } float3 aces_curve(float3 c, float white) { float3 _167 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _175 = ((_167 * (_167 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_167 * ((_167 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _180 = 1.7999999523162841796875f * white; float _188 = ((_180 * (_180 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_180 * ((0.98372900485992431640625f * _180) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _175), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _175), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _175)) / float3(_188, _188, _188); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _244 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_244, _244, _244); float3 _249 = v * v; float3 _250 = _249 * _249; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_249 * 4.01109981536865234375f)) - ((_249 * 25.68199920654296875f) * v)) + (_250 * 70.35900115966796875f)) - ((_250 * 74.7779998779296875f) * v)) + ((_250 * 27.069000244140625f) * _249), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tone_curve(float3 c, uint mode, float white) { if (mode == 1u) { return ((c * white) + c) / ((c * white) + float3(white, white, white)); } if (mode == 2u) { return filmic_curve(c) / filmic_curve(float3(white, white, white)); } if (mode == 3u) { return aces_curve(c, white); } if (mode == 4u) { return agx_curve(c); } return c; } float3 sat3(float3 c) { return clamp(c, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)); } float3 linear_to_srgb(float3 c) { float3 _69 = c * 12.9200000762939453125f; float3 _72 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _74 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_74.x ? _69.x : _72.x, _74.y ? _69.y : _72.y, _74.z ? _69.z : _72.z); } float3 glow_blend(float3 c, float3 g, uint mode) { if (mode == 0u) { return c + g; } if (mode == 1u) { float3 _639 = sat3(c); float3 _640 = sat3(g); return max((_639 + _640) - (_639 * _640), float3(0.0f, 0.0f, 0.0f)); } if (mode == 2u) { float3 _648 = sat3(c); float3 _650 = (g * 0.5f) + float3(0.5f, 0.5f, 0.5f); float3 _656 = _648 - (((float3(1.0f, 1.0f, 1.0f) - (_650 * 2.0f)) * _648) * (float3(1.0f, 1.0f, 1.0f) - _648)); float3 _668 = _648 + (((_650 * 2.0f) - float3(1.0f, 1.0f, 1.0f)) * ((((_648 * 4.0f) * ((_648 * 4.0f) + float3(1.0f, 1.0f, 1.0f))) * (_648 - float3(1.0f, 1.0f, 1.0f))) + (_648 * 7.0f))); float3 _674 = _648 + (((_650 * 2.0f) - float3(1.0f, 1.0f, 1.0f)) * (sqrt(_648) - _648)); bool3 _675 = bool3(_648.x <= float3(0.25f, 0.25f, 0.25f).x, _648.y <= float3(0.25f, 0.25f, 0.25f).y, _648.z <= float3(0.25f, 0.25f, 0.25f).z); float3 _676 = float3(_675.x ? _668.x : _674.x, _675.y ? _668.y : _674.y, _675.z ? _668.z : _674.z); bool3 _677 = bool3(_650.x <= float3(0.5f, 0.5f, 0.5f).x, _650.y <= float3(0.5f, 0.5f, 0.5f).y, _650.z <= float3(0.5f, 0.5f, 0.5f).z); return float3(_677.x ? _656.x : _676.x, _677.y ? _656.y : _676.y, _677.z ? _656.z : _676.z); } if (mode == 3u) { return g; } return c; } float3 apply_bcs(float3 c_in) { float3 c = float3(0.0f, 0.0f, 0.0f); c = lerp(float3(0.0f, 0.0f, 0.0f), c_in, float3(U_1_m0.bcs.x, U_1_m0.bcs.x, U_1_m0.bcs.x)); c = lerp(float3(0.5f, 0.5f, 0.5f), c, float3(U_1_m0.bcs.y, U_1_m0.bcs.y, U_1_m0.bcs.y)); float _701 = dot(c, float3(1.0f, 1.0f, 1.0f)) / 3.0f; c = lerp(float3(_701, _701, _701), c, float3(U_1_m0.bcs.z, U_1_m0.bcs.z, U_1_m0.bcs.z)); return c; } float3 srgb_to_linear(float3 c) { float3 _86 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _89 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _90 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_90.x ? _86.x : _89.x, _90.y ? _86.y : _89.y, _90.z ? _86.z : _89.z); } void frag_main() { bool _925 = false; bool _920 = false; float3 g = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); float a = 0.0f; bool _922 = false; int2 _933 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); int _939; spvTextureSize(t_src, 0u, _939); int _941 = int(min(uint(0), uint(int(_939) - 1))); uint _942_dummy_parameter; float4 _946 = t_src.Load(int3(int2(min(uint2(_933), uint2(int2(spvTextureSize(t_src, uint(_941), _942_dummy_parameter)) - int2(1, 1)))), _941)); c = _946.xyz; if ((U_1_m0.flags.x & 32u) != 0u) { _920 = _946.w > 0.0f; } else { _920 = false; } if (_920) { _922 = _946.w < 1.0f; } else { _922 = false; } if (_922) { float _976 = max(_946.w, 9.9999999747524270787835121154785e-07f); c /= float3(_976, _976, _976); } if ((U_1_m0.flags.x & 1u) != 0u) { c = max(c * U_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); } if ((U_1_m0.flags.x & 2u) != 0u) { g = glow_sum(gl_FragCoord.xy * U_1_m0.target_size.zw); if (U_1_m0.flags.z == 4u) { c = lerp(c, g, float3(U_1_m0.tone.z, U_1_m0.tone.z, U_1_m0.tone.z)); } } if ((U_1_m0.flags.x & 1u) != 0u) { c = tone_curve(c, U_1_m0.flags.y, U_1_m0.tone.y); } c = linear_to_srgb(sat3(c)); if ((U_1_m0.flags.x & 2u) != 0u) { _925 = U_1_m0.flags.z != 4u; } else { _925 = false; } if (_925) { c = glow_blend(c, linear_to_srgb(sat3(tone_curve(g, U_1_m0.flags.y, U_1_m0.tone.y))), U_1_m0.flags.z); } if ((U_1_m0.flags.x & 4u) != 0u) { c = apply_bcs(c); } c = sat3(c); a = _946.w; if ((U_1_m0.flags.x & 16u) != 0u) { int _1039; spvTextureSize(t_aux, 0u, _1039); int _1041 = int(min(uint(0), uint(int(_1039) - 1))); uint _1042_dummy_parameter; float4 _1046 = t_aux.Load(int3(int2(min(uint2(_933), uint2(int2(spvTextureSize(t_aux, uint(_1041), _1042_dummy_parameter)) - int2(1, 1)))), _1041)); c = linear_to_srgb(sat3((srgb_to_linear(c) * (1.0f - _1046.w)) + _1046.xyz)); a = _1046.w + (a * (1.0f - _1046.w)); } _908 = float4(c, a); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._908 = _908; return stage_output; }   ß›rÇ!zSHSLTPostU  target_sizeÿÿÿÿ source_sizeÿÿÿÿflags ÿÿÿÿtone0ÿÿÿÿglow@ÿÿÿÿ levels_lowPÿÿÿÿ levels_high`ÿÿÿÿbcspÿÿÿÿssao€ÿÿÿÿssao2�ÿÿÿÿinv_proj ÿÿÿÿprojàÿÿÿÿU_block Ut_srcÿÿÿÿvs_fullvs_fullfs_ssaofs_ssao fs_ssao_blur fs_ssao_blurfs_glow_brightfs_glow_brightfs_glow_blur_hfs_glow_blur_hfs_glow_blur_vfs_glow_blur_vfs_postfs_postøŠ#€2 GLSL.std.450Žvs_full‰Œ¥fs_ssao¡¤ ûfs_ssao_blurøú Òfs_glow_brightÏÑ ^fs_glow_blur_h[] ¥fs_glow_blur_v¢¤èfs_poståç¥ûÒ^¥èH #H #H # H #0H #@H #PH #`H #pH #€H #�H # H H H #àH H G GH#H#H# GGGG&"G&!G'H'#G)"G)!G+"G+!G,"G,!G-"G-!G‰ *GŒ G¡ G¤Gø GúGÏ GÑG[ G]G¢ G¤Gå Gç       + +++++++ +@+ +! +"à@+#€>+$€:+%ÛI@' (';(& * ;*);*+;*, . ;.-!2+3,4333+5€?,6555+<R¸NA+=UUÕ>,>===+?= ‡?+@®Ga=,A@@@+B.M;,CBBBI,O<<<,P???+Qš™@,RQQQ+Sæ®%=,TSSS+_®Ga?+`š™?+aÍÌÌ=+bÍÌL>+c ×#<+dš™™>,e```!}+~ffæ?+rá?+€‚‹µ>+�ÒŒE=,‚€�+ƒã¥›=+„øˆh?+…fI€<,†ƒ„…+‡§è<+ˆ» >+‰xV?,Їˆ‰+‹YÉ<,Œ‹‹‹+�¯Þ½8,Ž���+�ªÕ{?+�Á«Ý>,‘���+’�Ës>,“’’’+”shÍ?+•Üô¿+–Là–½,—”•–+˜Rѽ+™4×�?+š?Æ»,›˜™š+œMV»+�2•½+ž»‰?,Ÿœ�ž+ ?+Ã…Ï>+Ä%ëµ=+Å`¿>+ÆT A?+Ç‘+7>+È+­¦=+É�í×=+ʼt;?,ËÂÃÄ,ÌÅÆÇ,ÍÈÉÊ,ÎËÌÍ+Ïhvû?+ÐÊ@™¾+Ñ,P(¾+ÒŠ[¿+Ó&É©?+Ô)ñs¾+Õ¸õÞ½+ÖOßݼ+×ŠŠ³?,ØÏÐÑ,ÙÒÓÔ,ÚÕÖ×,ÛØÙÚ+Ü9•GÁ+ÝŽÕ€@+Þÿæ[/,ßÞÞÞ,àÜÜÜ,áÝÝÝ+â1¬<+ãîZ€@+ä¼tÍA+åÏ·ŒB+æVŽ•B+çP�ØA+èÿæÛ.,éèèè ë.ì!!1+2 +3 +4+5+6 +7 +8+9 +:,; 23456789:+<+=+>ÛÉ@+?€A A I!R S ,U3335,V5335,W3535 Y.Z \!� +ƒ@+„? ˆ ‰! ³ +¶@A+·)¸, ¹„„+º·Ñ8+»+¼½7†5 ¾ À Â.Ã.Å.Ç+×Ï, Ø××+ÙÿÿÿN, ÚÙÙã äãå,ãæ +çÿÿÿÿ,ãèçç,)»»!U+Vò"3>+WìŠ)>+X^¼>+Y{NÚ=,ZVWXY \+d1Ò“>+eΧn>+f¿ û=,gdef i!s,t„„„+u€@,v###+®@@.°!È+É«ª*>+ÊÀ@+Ë@À+Ì€¿!ò , õ55) !F +J L.M Š;Љ �;�Œ!�, �ÌÌ, ‘®Ì, ’Ì®, “�‘’ • — œ ¢;¢¡;�¤+¨,©5555.« ± ²,¾»»!æ,ê··+ì€+íÿÿÿÿ,îìì,ïíí,ô»»;¢ø;�ú+ÿo;+þÿÿÿ... . . ,»»,�»»,­»»,¾»»;¢Ï;�Ñ.×.Ù.Û,&»»;¢[;�].c;¢¢;�¤.ª;¢å;�ç*î.ð.ò.ô.÷.ù,»»,j»»61270ø/ù7ø7 8+046þ886;27:ø9ùDøDŽE:< F:>ŽGF?ƒHGA¼IJ:C©KJEHþK86N27MøLùUøUˆVMO�WMAˆXWP YXR¼IZMT©[ZVYþ[86^27]ø\ùføfŽg]_…ha`Pihhh�jgi…k]j…lbcPmlll�nkmŽo]_�poe…q]p…rbdPsrrr�tqsˆuntˆvcdPwvvvƒxuwþx86|}7z7{øyù ø ”¡‚z…¢~¡”£†z…¤~£”¥Šz…¦~¥P§¢¤¦�¨§Œ…©§¨ƒª©ŽŽ«§��¬«‘…­§¬�®­“ˆ¯ª®”°—¯”±›¯”²Ÿ¯P³°±²…´~{�µ´‹…¶´µƒ·¶�…¸�´�¹¸�…º´¹�»º’ˆ¼·»P½¼¼¼ˆ¾³½þ¾86Á27Àø¿;ëêìùíøí î(Àß‘ïÎî>êï=ðê ñð ò+ñàáƒóòàƒôÝÜPõôôôˆöóõ>êö=÷ê=øê…ù÷ø…úùù=ûêŽüûâŽýùã�þüýŽÿùä=ê…ÿƒþŽúå�Žúæ=ê…ƒŽ úç…  ù�    ( é   R‘Û þ86777øùøª÷úøŽ�ŽP�ˆþøª÷ ú! ø!9"^P#9$^#ˆ%"$þ%ø ª&÷'ú&('ø(9)|þ)ø'ª*÷+ú*,+ø,9-Áþ-ø+þ86017/ø.;A@;ùBøBQC/ÇDC<„ED=QF/ÇGF<€HEG J&H8AIK@J=LKpML…N>MˆON?þO86QRøP;YXZAST& ù[ø[A\]T2=^]‘_^UA\`T2=a`‘baVA\cT2=dc‘edWOf__Qg_PhgggˆifhAëjX >jiOkbbQlbPmlllˆnkmAëoX =poƒqnpAërX>rqOseeQtePutttˆvsuAëwX =xwƒyvxAëzX>zy={Xþ{86€�7}7 ~7ø|AS‚& ù…ø…Q†~…‡ƒ†A‰Š‚ =‹Š…Œ‡‹ƒ�Œ5QŽ~…�ƒŽA‰�‚ =‘�…’�‘ƒ“5’P ”�“Q•}Q–”Q—}Ž˜—–�™•˜Qš”Q›}Žœ›š��™œA‰ž‚7=Ÿžº Ÿ„÷¡ú ¢¡ø¢O £��¤P¥£¤þ¥ø¡Q¦�§¦ˆ¨§Ž©�¨þ©86²³7«7 ¬7­7®7¯7°7±øª;ÂÆÇ;À¿·;ÂÄÅ;¾½3;ÂÁÃ;äéèAS´& = µ)ùÈøÈA‰É´7=ÊɅ˰ÊA‰Ì´7=Í̺ÎÍ„©ÏÎ5¯ˆÐËϸÑÐ5÷ÒúÑÓÒøÓþ5øÒAˆÔ´ =ÕÔO ÖÕÕ  Û+ÖØÚnÜۅݰ°…Þ¯$ùßøßöàâùêøê=ãëéªåìæë›íì÷îúíàîøîQïëªðï ©ñð Pãòñ‚ãóëò>éóùáøá=ô¿±õô!÷öúõö÷ø÷ùàøöùøøø=ú¿oûú�üû„ˆýü¶…þ>ý…ÿþ"�ÿ±…Ðý   P Ž � ¬    +ØÚn Q  ±  ·¨  ÷ ú øQ ±·>Áù ø>Á¸ù ø =Á¨÷úøQ Qܯ>Äùø>ĸùø=Ĩ÷úøQ Q ܯ! >Æ!ùø>Ƹùø="Æ÷#ú"$#ø$ùâø#j%µ‚&%» '&·&g(µ'‚*() +& *_,µ+'Q-,¼.-3÷/ú.0/ø0ùâø/o 1 � 21¹93€«2-ƒ43­”544=6½ˆ75݃857 9(83”:4®ƒ;:Þ�<5º =<ˆ>;=A‰?´7 =@?ƒA>@ B(A3…C9B�D6C>½Dùùøùùâøâ=E¿€FE»>¿FùßøàA‰G´=HG=I½…JHIˆKJ¶ƒL5K M+L35 N(M¼A‰O´=PO QNPþQ86TU7SøR;\[Zù]ø] ^&SA¾_[^=`_þ`86cU7bøa;ihgùjøj k&bA¾lhk=mlþm86rs7o7p7qønùwøwªxq ÷yúxzyøz�{opþ{øyª|q÷}ú|~}ø~91o9€1p��€…‚€ƒƒ�‚ „(ƒ4þ„ø}ª…q÷†ú…‡†ø‡9ˆ1oމp„�ЉtŽ‹ŠƒƒŒ6‹…�ŒˆƒŽ6ˆ…��Žƒ�ˆ�Ž‘Šƒƒ’‘6Ž“ˆuŽ”ˆu�•”6…–“•ƒ—ˆ6…˜–—Ž™ˆ"�š˜™…›’š�œˆ›Ž�Šƒƒž�6 Ÿˆƒ Ÿˆ…¡ž �¢ˆ¡¼I£ˆv©¤£œ¢¼I¥Št©¦¥�¤þ¦ø†ª§q÷¨ú§©¨ø©þpø¨þo86¬27«øª;믰AS­& ù±ø±A‰²­ =³²Pµ³³³ ´.4«µ>¯´=¶¯A‰·­=¸·Pº¸¸¸ ¹.t¶º>¯¹=»¯”¼»6ˆ½¼®P¾½½½=¿¯A‰À­=ÁÀPÃÁÁÁ Â.¾¿Ã>¯Â=įþÄ86ÇÈ7ÆøÅùÍøÍÎÆ�Ïή…ÐÆÏƒÑЮ…ÒÆÑ�ÓÒ5…ÔÉÓ…ÕÆÆ…Ö®Æƒ×ÖÊ…ØÕ×�ÙØu…ÚÉÙ…ÛËÆ�ÜÛ®…ÝÆÜ�ÞÝ®…߯Þ�àß5…áÉà…âÆÆ…ãâÆ…äÉã�åÔÚ�æáä�çÔÚˆèÚç�éÌè�êáäˆëäê�ì5ëPíåæéìþí86ñò7 ï7ðøî= ó,= ô-ùöøögã÷óðp ø÷ˆ ùõø… úïø� ûú¹  üûƒ ýûüQþý9ÿÇþQý9ÇoðQüQÿ�QüQ�P ƒ  ¹…  ùQ üQ ÿ�  QüQ�P ƒ ¹… ùQüQÿ�QüQ�P ƒ ¹… ùQüQÿ� Q!üQ"�#!"P $ #ƒ %$¹… &%ùQ'Q(ÿV)*óôX+* O,++Ž-,(Q.ÿV)/óôX0/O100Ž21.�3-2Ž43'Q5Q6ÿV)7óôX87O988Ž:96Q;ÿV)<óôX=<&O>==Ž?>;�@:?ŽA@5�B4AþB86EF7 DøC;LKM;ëN4;ÀO·;ädèASG& = H,= I-ùPøPA‰QG: =RQA‰SG:=TSA‰UG:=VUA‰WG:=XWA‰YG5 =ZYA‰[G5=\[A‰]G5=^]P _RTVXZ\^>K_ù`ø`öacùeøe=ãfdªågæf›hg÷iúhaiøiQjfªkj ©lk Pãml‚ãnfm>dnùbøb=oO±poJ÷qúpqrørùaøqùsøs=uO v&u5A¾wKv=xw¶yx3÷zúy{zø{=|N=}O9~ñD}=O €&5A¾�K€=‚�Žƒ~‚�„|ƒ>N„ùzøzùtøtùcøc=…O€†…»>O†ù`øa=‡Nþ‡86Ž�øˆ;•”“=‹‰ù–ø– ˜&‹A—™”˜= š™P›š35>Œ›Aœ�Œ=ž�Ÿž>�Ÿý86¥�ø ;¾ª«=£¡AS¦& = §)ù¬ø¬O ­££  ®­  ¯+®ØÚn°¯A²³¦ =´³Çµ´«¶µ ©·¶¨»P¹··„¸°¹jº§‚»º» ¼&·»g½§¼‚¿½¾ À&¸¿_Á§À¼QÂÁ¼ÃÂ3÷ÄúÃÅÄøÅ>¤©ýøÄo Ƹ� ÇÆ¹9ÈQQÉÁ9Ê€ÈÇÉOËÁÁ ÌEË9Í0°QÎÁA‰Ï¦ =ÐÏ9 ѲÈÇÊÌÎÐÍ>ªÑA‰Ò¦=ÓÒ¶ÔÓ3÷ÕúÔÖÕøÖ=תQØÁA‰Ù¦ =ÚÙ…ÛÚ#9 ܲÈÇÊÌØÛÍA‰Ý¦=ÞÝ ß.5ÜÞ…à×ß>ªàùÕøÕ=áª=âª=ãªPäáâã5>¤äý86åæ7ç7èøéªåëèêªåðçîªåñèï§åòðñ¦åóëò©õóôè‡öçõþö86û�ø÷;  ;À;¾3;¾  ;Â;¾3; ;À;äBè;äWè=ùøASü& = ý)= þ+ùøO ùù    +ØÚnjþ‚» &·gþ‚ &_þQ¼3÷úø>ú©ýøO  E9!Qo "� #"¹Q$9%€!#$A‰&ü7='&ƒ(5'…)a(�*)ÿQ+…,*+A²-ü =.-Ç/.«0/ ©10¨»Aˆ2ü =32O 433  5+4ØÚn65‚71»P877€968P:119;å9:P<119=å<ù>ø>ö?AùCøC=ãDBªåEæD›FE÷GúF?GøGQHDªIH ©JI PãKJ‚ãLDK>BLù@ø@=M³NM»÷OúNOPøPù?øOùQøQ>ùSøSöTVùXøX=ãYWªåZæY›[Z÷\ú[T\ø\Q]Yª^] ©_^ Pã`_‚ãaY`>WaùUøU=b³cb»÷dúcdeøeùTødùføf=h=iPjhi€k=jQlk±ml·¨nm÷oúnpqøpQrk±sr·>sùoøq>¸ùoøo=t¨ut÷vúuwxøwQykQz;¯{yz>{ùvøx>¸ùvøv=|¨}|÷~ú}€øQ�kQ‚;¯ƒ�‚> ƒù~ø€> ¸ù~ø~=„ ÷…ú„†…ø†ùVø…Pˆ11„‡kˆj‰þ‚Љ» ‹&·ŠgŒþ‹‚ŽŒ� �&‡Ž_�þ�‹Q‘�¼’‘3÷“ú’”“ø”ùVø“O•�� –E•”— – ˜(—3…™˜˜P›11„šk›o œš� �œ¹Qž�9Ÿ€!�žƒ Ÿ%”¡   ¢¡…£™™ˆ¤¢,ƒ¥5¤ ¦(3¥…§£¦=¨j©ý‚ª©» «&·ªg¬ý«‚®¬­ ¯&k®_°ý¯«Q±°…²§±�³¨²>³=´�µ´§>µùgøgùVøV=¶€·¶»>·ùSøTùRøRùAøA=¸€¹¸»>¹ù>ø?jºý‚»º» ¼&·»g½ý¼‚¿½¾ À&=¿_ÁýÀ¼QÂÁ> Â=þÄú÷ÅúÄÆÅøÆ=Ç=ȈÉÇÈ> ÉùÅøÅ=Ê =Ë =Ì PÍÊËÌ5>úÍý86Ò�øÎ;ÀÖ×;ëÚÛ;ëÕ4;ÀØÙ;äõè;ä è=ÐÏASÓ& = Ô)ùÜøÜO ÝÐÐ  ÞÝ  ß+ÞØÚnàßA²áÓ=âá ã)â|äã„å¨äPçå儿àçPèåå€éæèAˆêÓ=ëêO ìëë  í+ìØÚnîí ï'éîQðæ>Öðùñøñöòôùöøö=ã÷õªåøæ÷›ùø÷úúùòúøúQû÷ªüû ©ýü Pãþý‚ãÿ÷þ>õÿùóøó=ÖQï±÷úøùòøùøQæ>Øùøö  ù ø =ã ªåæ›÷ú øQª © Pã‚ã> ù ø =ØQï±÷úøù øùø=Õ=Ø= ÖP! j"Ô‚#"» $&·#g%Ô$‚'%& (&!'_)Ô($O*))�+*>Õ+ùøù ø =,Ø€-,»>Ø-ùø ùøùôøô=.Ö€/.»>Ö/ùñøòQ0ïQ1æ‚201Q3ïQ4æ‚534„625 7*6»o87=9ÕP:888ˆ;9:A‰<Ó ==<Ž>;=>Ú>A¾?Ú =@?A¾AÚ=BAA¾CÚ=DC E(BD F(@EA‰GÓ =HGA‰IÓ =JIA‰KÓ=LK�MJL N1HMFA‰OÓ=PO Q(NP=RÚŽSRQA‰TÓ=UTPVUUU W%SV>ÚW=XÚPYX5>ÑYý86^�øZ;ëbc;Àd»;ätè=\[AS_& = `)= a-ùeøeO f\\Aˆg_ =hgO ihh… jfiV)k`aXlkj3Omll9nT·Žomn>boùpøpöqsùuøu=ãvtªåwæv›xw÷yúxqyøyQzvª{z ©|{ Pã}|‚ã~v}>t~ùrør=d³€<÷�ú€�‚ø‚ùqø�ùƒøƒ=…do†……‡†„A‰ˆ_ =‰ˆ…Ї‰P ‹Š3=Œb� �j‹V)Ž`aX�Ž�3O���ƒ ‘j‹V)’`aX“’‘3O”““�•�”=–d9—T–Ž˜•—�™Œ˜>b™ù„ø„ùsøs=šd€›š»>d›ùpøq=œbA‰�_=ž�ŽŸœžP Ÿ5>] ý86¥�ø¡;멪;À«»;ä»è=£¢AS¦& = §)= ¨-ù¬ø¬O ­££Aˆ®¦ =¯®O °¯¯… ±­°V)²§¨X³²±3O´³³9µc·Ž¶´µ>©¶ù·ø·ö¸ºù¼ø¼=ã½»ªå¾æ½›¿¾÷Àú¿¸ÀøÀQÁ½ªÂÁ ©Ã PãÄÂãŽÄ>»Åù¹ø¹=Æ«³Çƨ÷ÈúÇÈÉøÉù¸øÈùÊøÊ=Ì«oÍÌA‰Î¦ =ÏÎ…ÐÍÏP Ñ3Ð=Ò©� Ó±ÑV)Ô§¨XÕÔÓ3OÖÕÕƒ ×±ÑV)ا¨XÙØ×3OÚÙÙ�ÛÖÚ=Ü«9ÝcÜŽÞÛÝ�ßÒÞ>©ßùËøËùºøº=à«€áà»>«áù·ø¸=â©Pãâ5>¤ãý86è�øä;Âö÷;Âñò;ëõ4;ëïð;¾øù;Âóô=æåASé& = ê)= ë+= ì,= í-ùúøúO ûææ  üû  ý+üØÚnþýO ÿææAˆé =O … ÿjê‚» &·gê‚   &þ _ ê A² é =  A²é=A²é=A‰é=O  >ïÇ « ÷úøQ º3>ñùø>ñîùø=ñ÷úøQ  ¸! 5>ó!ùø>óîùø="ó÷#ú"$#ø$=%ïQ&  '(&¼P('''ˆ)%(>ï)ù#ø#Ç* «+* ÷,ú+-,ø-=.ïA‰/é =0/Ž1.0 2(14>ï2ù,ø,Ç3 «43 ÷5ú465ø697E>õ7ª8÷9ú8:9ø:=;ï=<õA‰=é=>=P@>>> ?.;<@>ï?ù9ø9ù5ø5ÇA «BA ÷CúBDCøD=Eï9FE>ïFùCøC=Gï9H1G9I;H>ïIÇJ «KJ ÷LúKMNøM«O>öOùLøN>öîùLøL=Pö÷QúPRQøR=Sõ9TS9U1T9V;U=Wï9XrWV>ïXùQøQÇY «ZY ÷[úZ\[ø\=]ï9^¬]>ï^ù[ø[=_ï9`1_>ï`Qa >øaÇb «cb ÷dúcedøejfë‚gf» h&·ggiëh‚kij l&þk_mëlh=nï9oNnQpmƒq5pŽroqOsmm�trs9u1t9v;u>ïvQwm=xøQymƒz5y…{xz�|w{>ø|ùdød=}ï=~øP}~>çý8  †{dvëEÓ<ÊË$hedra_engine/shaders/render/post_fsrjÔ™ÁBTSR y-y-KÄ-I ÇvKww4Iwx= Á´K µv' ‚ÜKÍÜ·„ÝÝA aKFvs_fsrfs_easufs_rcas fs_stretchUt_srcs_linearvs_fsrvs_fsrfs_easufs_easufs_rcasfs_rcas fs_stretch fs_stretch$-struct FsrU { con0_: vec4, size: vec4, rcas: vec4, } const RCAS_LIMIT: f32 = 0.1875f; @group(0) @binding(0) var U: FsrU; @group(0) @binding(1) var t_src: texture_2d; @group(0) @binding(2) var s_linear: sampler; fn texel(p: vec2, size: vec2) -> vec4 { let hi = (vec2(size) - vec2(1i, 1i)); let _e13 = textureLoad(t_src, clamp(p, vec2(0i, 0i), hi), 0i); return _e13; } fn luma2_(c: vec3) -> f32 { return ((c.z * 0.5f) + ((c.x * 0.5f) + c.y)); } fn rcp_or_zero(x: f32) -> f32 { return select(0f, (1f / x), (x != 0f)); } fn easu_set(dl_1: vec3, w_1: f32, la: f32, lb: f32, lc: f32, ld: f32, le: f32) -> vec3 { var lenX: f32; var lenY: f32; let dc = (ld - lc); let cb = (lc - lb); let _e12 = rcp_or_zero(max(abs(dc), abs(cb))); lenX = _e12; let dirX = (ld - lb); let _e16 = lenX; lenX = clamp((abs(dirX) * _e16), 0f, 1f); let _e21 = lenX; let _e22 = lenX; lenX = (_e21 * _e22); let ec = (le - lc); let ca = (lc - la); let _e29 = rcp_or_zero(max(abs(ec), abs(ca))); lenY = _e29; let dirY = (le - la); let _e33 = lenY; lenY = clamp((abs(dirY) * _e33), 0f, 1f); let _e38 = lenY; let _e39 = lenY; lenY = (_e38 * _e39); let _e43 = lenX; let _e45 = lenY; return (dl_1 + vec3((dirX * w_1), (dirY * w_1), ((_e43 * w_1) + (_e45 * w_1)))); } fn easu_weight(off: vec2, dir_1: vec2, len_1: vec2, lob: f32, clp: f32) -> f32 { var v: vec2; var wB: f32; var wA: f32; v = vec2(((off.x * dir_1.x) + (off.y * dir_1.y)), ((off.x * -(dir_1.y)) + (off.y * dir_1.x))); let _e22 = v; v = (_e22 * len_1); let _e25 = v.x; let _e27 = v.x; let _e30 = v.y; let _e32 = v.y; let d2_ = min(((_e25 * _e27) + (_e30 * _e32)), clp); wB = ((0.4f * d2_) - 1f); wA = ((lob * d2_) - 1f); let _e45 = wB; let _e46 = wB; wB = (_e45 * _e46); let _e48 = wA; let _e49 = wA; wA = (_e48 * _e49); let _e51 = wB; wB = ((1.5625f * _e51) - 0.5625f); let _e56 = wB; let _e57 = wA; return (_e56 * _e57); } @vertex fn vs_fsr(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4 { var pts: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); let _e13 = pts[vi]; return vec4(_e13, 0f, 1f); } @fragment fn fs_easu(@builtin(position) pos: vec4) -> @location(0) vec4 { var pp: vec2; var dl: vec3 = vec3(0f); var dir: vec2; var len: f32; var dirR: f32; var aC: vec3 = vec3(0f); var aW: f32 = 0f; var w: f32; let ip = floor(pos.xy); let _e5 = U.con0_; let _e10 = U.con0_; pp = ((ip * _e5.xy) + _e10.zw); let _e14 = pp; let fp = floor(_e14); let _e16 = pp; pp = (_e16 - fp); let o = vec2(fp); let _e25 = U.size; let _e27 = texel((o + vec2(0i, -1i)), _e25.xy); let _e34 = U.size; let _e36 = texel((o + vec2(1i, -1i)), _e34.xy); let _e43 = U.size; let _e45 = texel((o + vec2(-1i, 0i)), _e43.xy); let _e48 = U.size; let _e50 = texel(o, _e48.xy); let _e57 = U.size; let _e59 = texel((o + vec2(1i, 0i)), _e57.xy); let _e66 = U.size; let _e68 = texel((o + vec2(2i, 0i)), _e66.xy); let _e75 = U.size; let _e77 = texel((o + vec2(-1i, 1i)), _e75.xy); let _e84 = U.size; let _e86 = texel((o + vec2(0i, 1i)), _e84.xy); let _e93 = U.size; let _e95 = texel((o + vec2(1i, 1i)), _e93.xy); let _e102 = U.size; let _e104 = texel((o + vec2(2i, 1i)), _e102.xy); let _e111 = U.size; let _e113 = texel((o + vec2(0i, 2i)), _e111.xy); let _e120 = U.size; let _e122 = texel((o + vec2(1i, 2i)), _e120.xy); let _e124 = luma2_(_e27.xyz); let _e126 = luma2_(_e36.xyz); let _e128 = luma2_(_e45.xyz); let _e130 = luma2_(_e50.xyz); let _e132 = luma2_(_e59.xyz); let _e134 = luma2_(_e68.xyz); let _e136 = luma2_(_e77.xyz); let _e138 = luma2_(_e86.xyz); let _e140 = luma2_(_e95.xyz); let _e142 = luma2_(_e104.xyz); let _e144 = luma2_(_e113.xyz); let _e146 = luma2_(_e122.xyz); let _e150 = dl; let _e152 = pp.x; let _e156 = pp.y; let _e160 = easu_set(_e150, ((1f - _e152) * (1f - _e156)), _e124, _e128, _e130, _e132, _e138); dl = _e160; let _e161 = dl; let _e163 = pp.x; let _e165 = pp.y; let _e169 = easu_set(_e161, (_e163 * (1f - _e165)), _e126, _e130, _e132, _e134, _e140); dl = _e169; let _e170 = dl; let _e172 = pp.x; let _e176 = pp.y; let _e178 = easu_set(_e170, ((1f - _e172) * _e176), _e130, _e136, _e138, _e140, _e144); dl = _e178; let _e179 = dl; let _e181 = pp.x; let _e183 = pp.y; let _e185 = easu_set(_e179, (_e181 * _e183), _e132, _e138, _e140, _e142, _e146); dl = _e185; let _e186 = dl; dir = _e186.xy; let _e190 = dl.z; len = _e190; let _e192 = dir; let _e193 = dir; let dir2_ = (_e192 * _e193); dirR = (dir2_.x + dir2_.y); let _e199 = dirR; let zro = (_e199 < 0.000030517578f); let _e202 = dirR; dirR = select(inverseSqrt(_e202), 1f, zro); let _e208 = dir.x; dir.x = select(_e208, 1f, zro); let _e211 = dir; let _e212 = dirR; dir = (_e211 * _e212); let _e214 = len; len = (_e214 * 0.5f); let _e217 = len; let _e218 = len; len = (_e217 * _e218); let _e221 = dir.x; let _e223 = dir.x; let _e226 = dir.y; let _e228 = dir.y; let _e232 = dir.x; let _e235 = dir.y; let stretch = (((_e221 * _e223) + (_e226 * _e228)) / max(abs(_e232), abs(_e235))); let _e241 = len; let _e245 = len; let len2_ = vec2((1f + ((stretch - 1f) * _e241)), (1f - (0.5f * _e245))); let _e251 = len; let lob_1 = (0.5f + (-0.29f * _e251)); let clp_1 = (1f / lob_1); let _e266 = pp; let _e268 = dir; let _e269 = easu_weight((vec2(0f, -1f) - _e266), _e268, len2_, lob_1, clp_1); w = _e269; let _e271 = aC; let _e273 = w; aC = (_e271 + (_e27.xyz * _e273)); let _e276 = aW; let _e277 = w; aW = (_e276 + _e277); let _e282 = pp; let _e284 = dir; let _e285 = easu_weight((vec2(1f, -1f) - _e282), _e284, len2_, lob_1, clp_1); w = _e285; let _e286 = aC; let _e288 = w; aC = (_e286 + (_e36.xyz * _e288)); let _e291 = aW; let _e292 = w; aW = (_e291 + _e292); let _e297 = pp; let _e299 = dir; let _e300 = easu_weight((vec2(-1f, 1f) - _e297), _e299, len2_, lob_1, clp_1); w = _e300; let _e301 = aC; let _e303 = w; aC = (_e301 + (_e77.xyz * _e303)); let _e306 = aW; let _e307 = w; aW = (_e306 + _e307); let _e312 = pp; let _e314 = dir; let _e315 = easu_weight((vec2(0f, 1f) - _e312), _e314, len2_, lob_1, clp_1); w = _e315; let _e316 = aC; let _e318 = w; aC = (_e316 + (_e86.xyz * _e318)); let _e321 = aW; let _e322 = w; aW = (_e321 + _e322); let _e327 = pp; let _e329 = dir; let _e330 = easu_weight((vec2(0f, 0f) - _e327), _e329, len2_, lob_1, clp_1); w = _e330; let _e331 = aC; let _e333 = w; aC = (_e331 + (_e50.xyz * _e333)); let _e336 = aW; let _e337 = w; aW = (_e336 + _e337); let _e342 = pp; let _e344 = dir; let _e345 = easu_weight((vec2(-1f, 0f) - _e342), _e344, len2_, lob_1, clp_1); w = _e345; let _e346 = aC; let _e348 = w; aC = (_e346 + (_e45.xyz * _e348)); let _e351 = aW; let _e352 = w; aW = (_e351 + _e352); let _e357 = pp; let _e359 = dir; let _e360 = easu_weight((vec2(1f, 1f) - _e357), _e359, len2_, lob_1, clp_1); w = _e360; let _e361 = aC; let _e363 = w; aC = (_e361 + (_e95.xyz * _e363)); let _e366 = aW; let _e367 = w; aW = (_e366 + _e367); let _e372 = pp; let _e374 = dir; let _e375 = easu_weight((vec2(2f, 1f) - _e372), _e374, len2_, lob_1, clp_1); w = _e375; let _e376 = aC; let _e378 = w; aC = (_e376 + (_e104.xyz * _e378)); let _e381 = aW; let _e382 = w; aW = (_e381 + _e382); let _e387 = pp; let _e389 = dir; let _e390 = easu_weight((vec2(2f, 0f) - _e387), _e389, len2_, lob_1, clp_1); w = _e390; let _e391 = aC; let _e393 = w; aC = (_e391 + (_e68.xyz * _e393)); let _e396 = aW; let _e397 = w; aW = (_e396 + _e397); let _e402 = pp; let _e404 = dir; let _e405 = easu_weight((vec2(1f, 0f) - _e402), _e404, len2_, lob_1, clp_1); w = _e405; let _e406 = aC; let _e408 = w; aC = (_e406 + (_e59.xyz * _e408)); let _e411 = aW; let _e412 = w; aW = (_e411 + _e412); let _e417 = pp; let _e419 = dir; let _e420 = easu_weight((vec2(1f, 2f) - _e417), _e419, len2_, lob_1, clp_1); w = _e420; let _e421 = aC; let _e423 = w; aC = (_e421 + (_e122.xyz * _e423)); let _e426 = aW; let _e427 = w; aW = (_e426 + _e427); let _e432 = pp; let _e434 = dir; let _e435 = easu_weight((vec2(0f, 2f) - _e432), _e434, len2_, lob_1, clp_1); w = _e435; let _e436 = aC; let _e438 = w; aC = (_e436 + (_e113.xyz * _e438)); let _e441 = aW; let _e442 = w; aW = (_e441 + _e442); let min4_ = min(min(_e50.xyz, _e59.xyz), min(_e86.xyz, _e95.xyz)); let max4_ = max(max(_e50.xyz, _e59.xyz), max(_e86.xyz, _e95.xyz)); let _e458 = aC; let _e459 = aW; let _e460 = rcp_or_zero(_e459); let rgb = min(max4_, max(min4_, (_e458 * _e460))); let _e467 = pp.x; let _e472 = pp.x; let _e475 = pp.y; let a = mix(mix(_e50.w, _e59.w, _e467), mix(_e86.w, _e95.w, _e472), _e475); return vec4(rgb, a); } @fragment fn fs_rcas(@builtin(position) pos_1: vec4) -> @location(0) vec4 { let p_1 = vec2(floor(pos_1.xy)); let _e10 = U.size; let _e12 = texel((p_1 + vec2(0i, -1i)), _e10.zw); let b = _e12.xyz; let _e20 = U.size; let _e22 = texel((p_1 + vec2(-1i, 0i)), _e20.zw); let d = _e22.xyz; let _e26 = U.size; let _e28 = texel(p_1, _e26.zw); let e = _e28.xyz; let _e36 = U.size; let _e38 = texel((p_1 + vec2(1i, 0i)), _e36.zw); let f = _e38.xyz; let _e46 = U.size; let _e48 = texel((p_1 + vec2(0i, 1i)), _e46.zw); let h = _e48.xyz; let mn4_ = min(min(min(b, d), f), h); let mx4_ = max(max(max(b, d), f), h); let _e60 = rcp_or_zero((4f * mx4_.x)); let _e64 = rcp_or_zero((4f * mx4_.y)); let _e68 = rcp_or_zero((4f * mx4_.z)); let hitMin = (min(mn4_, e) * vec3(_e60, _e64, _e68)); let dn = ((4f * mn4_) - vec3(4f)); let _e81 = rcp_or_zero(dn.x); let _e83 = rcp_or_zero(dn.y); let _e85 = rcp_or_zero(dn.z); let hitMax = ((vec3(1f) - max(mx4_, e)) * vec3(_e81, _e83, _e85)); let lobeRGB = max(-(hitMin), hitMax); let _e102 = U.rcas.x; let lobe = (max(-0.1875f, min(max(max(lobeRGB.x, lobeRGB.y), lobeRGB.z), 0f)) * _e102); let rcpL = (1f / ((4f * lobe) + 1f)); let rgb_1 = ((((((lobe * b) + (lobe * d)) + (lobe * h)) + (lobe * f)) + e) * rcpL); return vec4(rgb_1, _e28.w); } @fragment fn fs_stretch(@builtin(position) pos_2: vec4) -> @location(0) vec4 { let _e4 = U.size; let uv = (pos_2.xy / _e4.zw); let _e10 = textureSampleLevel(t_src, s_linear, uv, 0f); return _e10; }  0‡ÜÚ^gvs_fsrmain•#version 300 es precision highp float; precision highp int; struct FsrU { vec4 con0_; vec4 size; vec4 rcas; }; const float RCAS_LIMIT = 0.1875; float luma2_(vec3 c) { return ((c.z * 0.5) + ((c.x * 0.5) + c.y)); } float rcp_or_zero(float x) { return ((x != 0.0) ? (1.0 / x) : 0.0); } vec3 easu_set(vec3 dl_1, float w_1, float la, float lb, float lc, float ld, float le) { float lenX = 0.0; float lenY = 0.0; float dc = (ld - lc); float cb = (lc - lb); float _e12 = rcp_or_zero(max(abs(dc), abs(cb))); lenX = _e12; float dirX = (ld - lb); float _e16 = lenX; lenX = clamp((abs(dirX) * _e16), 0.0, 1.0); float _e21 = lenX; float _e22 = lenX; lenX = (_e21 * _e22); float ec = (le - lc); float ca = (lc - la); float _e29 = rcp_or_zero(max(abs(ec), abs(ca))); lenY = _e29; float dirY = (le - la); float _e33 = lenY; lenY = clamp((abs(dirY) * _e33), 0.0, 1.0); float _e38 = lenY; float _e39 = lenY; lenY = (_e38 * _e39); float _e43 = lenX; float _e45 = lenY; return (dl_1 + vec3((dirX * w_1), (dirY * w_1), ((_e43 * w_1) + (_e45 * w_1)))); } float easu_weight(vec2 off, vec2 dir_1, vec2 len_1, float lob, float clp) { vec2 v = vec2(0.0); float wB = 0.0; float wA = 0.0; v = vec2(((off.x * dir_1.x) + (off.y * dir_1.y)), ((off.x * -(dir_1.y)) + (off.y * dir_1.x))); vec2 _e22 = v; v = (_e22 * len_1); float _e25 = v.x; float _e27 = v.x; float _e30 = v.y; float _e32 = v.y; float d2_ = min(((_e25 * _e27) + (_e30 * _e32)), clp); wB = ((0.4 * d2_) - 1.0); wA = ((lob * d2_) - 1.0); float _e45 = wB; float _e46 = wB; wB = (_e45 * _e46); float _e48 = wA; float _e49 = wA; wA = (_e48 * _e49); float _e51 = wB; wB = ((1.5625 * _e51) - 0.5625); float _e56 = wB; float _e57 = wA; return (_e56 * _e57); } void main() { uint vi = uint(gl_VertexID); vec2 pts[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); vec2 _e13 = pts[vi]; gl_Position = vec4(_e13, 0.0, 1.0); gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_easumainq'#version 300 es precision highp float; precision highp int; struct FsrU { vec4 con0_; vec4 size; vec4 rcas; }; const float RCAS_LIMIT = 0.1875; layout(std140) uniform FsrU_block_0Fragment { FsrU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; layout(location = 0) out vec4 _fs2p_location0; vec4 texel(ivec2 p, vec2 size) { ivec2 hi = (ivec2(size) - ivec2(1, 1)); vec4 _e13 = texelFetch(_group_0_binding_1_fs, min(max(p, ivec2(0, 0)), hi), 0); return _e13; } float luma2_(vec3 c) { return ((c.z * 0.5) + ((c.x * 0.5) + c.y)); } float rcp_or_zero(float x) { return ((x != 0.0) ? (1.0 / x) : 0.0); } vec3 easu_set(vec3 dl_1, float w_1, float la, float lb, float lc, float ld, float le) { float lenX = 0.0; float lenY = 0.0; float dc = (ld - lc); float cb = (lc - lb); float _e12 = rcp_or_zero(max(abs(dc), abs(cb))); lenX = _e12; float dirX = (ld - lb); float _e16 = lenX; lenX = clamp((abs(dirX) * _e16), 0.0, 1.0); float _e21 = lenX; float _e22 = lenX; lenX = (_e21 * _e22); float ec = (le - lc); float ca = (lc - la); float _e29 = rcp_or_zero(max(abs(ec), abs(ca))); lenY = _e29; float dirY = (le - la); float _e33 = lenY; lenY = clamp((abs(dirY) * _e33), 0.0, 1.0); float _e38 = lenY; float _e39 = lenY; lenY = (_e38 * _e39); float _e43 = lenX; float _e45 = lenY; return (dl_1 + vec3((dirX * w_1), (dirY * w_1), ((_e43 * w_1) + (_e45 * w_1)))); } float easu_weight(vec2 off, vec2 dir_1, vec2 len_1, float lob, float clp) { vec2 v = vec2(0.0); float wB = 0.0; float wA = 0.0; v = vec2(((off.x * dir_1.x) + (off.y * dir_1.y)), ((off.x * -(dir_1.y)) + (off.y * dir_1.x))); vec2 _e22 = v; v = (_e22 * len_1); float _e25 = v.x; float _e27 = v.x; float _e30 = v.y; float _e32 = v.y; float d2_ = min(((_e25 * _e27) + (_e30 * _e32)), clp); wB = ((0.4 * d2_) - 1.0); wA = ((lob * d2_) - 1.0); float _e45 = wB; float _e46 = wB; wB = (_e45 * _e46); float _e48 = wA; float _e49 = wA; wA = (_e48 * _e49); float _e51 = wB; wB = ((1.5625 * _e51) - 0.5625); float _e56 = wB; float _e57 = wA; return (_e56 * _e57); } void main() { vec4 pos = gl_FragCoord; vec2 pp = vec2(0.0); vec3 dl = vec3(0.0); vec2 dir = vec2(0.0); float len = 0.0; float dirR = 0.0; vec3 aC = vec3(0.0); float aW = 0.0; float w = 0.0; vec2 ip = floor(pos.xy); vec4 _e5 = _group_0_binding_0_fs.con0_; vec4 _e10 = _group_0_binding_0_fs.con0_; pp = ((ip * _e5.xy) + _e10.zw); vec2 _e14 = pp; vec2 fp = floor(_e14); vec2 _e16 = pp; pp = (_e16 - fp); ivec2 o = ivec2(fp); vec4 _e25 = _group_0_binding_0_fs.size; vec4 _e27 = texel((o + ivec2(0, -1)), _e25.xy); vec4 _e34 = _group_0_binding_0_fs.size; vec4 _e36 = texel((o + ivec2(1, -1)), _e34.xy); vec4 _e43 = _group_0_binding_0_fs.size; vec4 _e45 = texel((o + ivec2(-1, 0)), _e43.xy); vec4 _e48 = _group_0_binding_0_fs.size; vec4 _e50 = texel(o, _e48.xy); vec4 _e57 = _group_0_binding_0_fs.size; vec4 _e59 = texel((o + ivec2(1, 0)), _e57.xy); vec4 _e66 = _group_0_binding_0_fs.size; vec4 _e68 = texel((o + ivec2(2, 0)), _e66.xy); vec4 _e75 = _group_0_binding_0_fs.size; vec4 _e77 = texel((o + ivec2(-1, 1)), _e75.xy); vec4 _e84 = _group_0_binding_0_fs.size; vec4 _e86 = texel((o + ivec2(0, 1)), _e84.xy); vec4 _e93 = _group_0_binding_0_fs.size; vec4 _e95 = texel((o + ivec2(1, 1)), _e93.xy); vec4 _e102 = _group_0_binding_0_fs.size; vec4 _e104 = texel((o + ivec2(2, 1)), _e102.xy); vec4 _e111 = _group_0_binding_0_fs.size; vec4 _e113 = texel((o + ivec2(0, 2)), _e111.xy); vec4 _e120 = _group_0_binding_0_fs.size; vec4 _e122 = texel((o + ivec2(1, 2)), _e120.xy); float _e124 = luma2_(_e27.xyz); float _e126 = luma2_(_e36.xyz); float _e128 = luma2_(_e45.xyz); float _e130 = luma2_(_e50.xyz); float _e132 = luma2_(_e59.xyz); float _e134 = luma2_(_e68.xyz); float _e136 = luma2_(_e77.xyz); float _e138 = luma2_(_e86.xyz); float _e140 = luma2_(_e95.xyz); float _e142 = luma2_(_e104.xyz); float _e144 = luma2_(_e113.xyz); float _e146 = luma2_(_e122.xyz); vec3 _e150 = dl; float _e152 = pp.x; float _e156 = pp.y; vec3 _e160 = easu_set(_e150, ((1.0 - _e152) * (1.0 - _e156)), _e124, _e128, _e130, _e132, _e138); dl = _e160; vec3 _e161 = dl; float _e163 = pp.x; float _e165 = pp.y; vec3 _e169 = easu_set(_e161, (_e163 * (1.0 - _e165)), _e126, _e130, _e132, _e134, _e140); dl = _e169; vec3 _e170 = dl; float _e172 = pp.x; float _e176 = pp.y; vec3 _e178 = easu_set(_e170, ((1.0 - _e172) * _e176), _e130, _e136, _e138, _e140, _e144); dl = _e178; vec3 _e179 = dl; float _e181 = pp.x; float _e183 = pp.y; vec3 _e185 = easu_set(_e179, (_e181 * _e183), _e132, _e138, _e140, _e142, _e146); dl = _e185; vec3 _e186 = dl; dir = _e186.xy; float _e190 = dl.z; len = _e190; vec2 _e192 = dir; vec2 _e193 = dir; vec2 dir2_ = (_e192 * _e193); dirR = (dir2_.x + dir2_.y); float _e199 = dirR; bool zro = (_e199 < 3.0517578e-5); float _e202 = dirR; dirR = (zro ? 1.0 : inversesqrt(_e202)); float _e208 = dir.x; dir.x = (zro ? 1.0 : _e208); vec2 _e211 = dir; float _e212 = dirR; dir = (_e211 * _e212); float _e214 = len; len = (_e214 * 0.5); float _e217 = len; float _e218 = len; len = (_e217 * _e218); float _e221 = dir.x; float _e223 = dir.x; float _e226 = dir.y; float _e228 = dir.y; float _e232 = dir.x; float _e235 = dir.y; float stretch = (((_e221 * _e223) + (_e226 * _e228)) / max(abs(_e232), abs(_e235))); float _e241 = len; float _e245 = len; vec2 len2_ = vec2((1.0 + ((stretch - 1.0) * _e241)), (1.0 - (0.5 * _e245))); float _e251 = len; float lob_1 = (0.5 + (-0.29 * _e251)); float clp_1 = (1.0 / lob_1); vec2 _e266 = pp; vec2 _e268 = dir; float _e269 = easu_weight((vec2(0.0, -1.0) - _e266), _e268, len2_, lob_1, clp_1); w = _e269; vec3 _e271 = aC; float _e273 = w; aC = (_e271 + (_e27.xyz * _e273)); float _e276 = aW; float _e277 = w; aW = (_e276 + _e277); vec2 _e282 = pp; vec2 _e284 = dir; float _e285 = easu_weight((vec2(1.0, -1.0) - _e282), _e284, len2_, lob_1, clp_1); w = _e285; vec3 _e286 = aC; float _e288 = w; aC = (_e286 + (_e36.xyz * _e288)); float _e291 = aW; float _e292 = w; aW = (_e291 + _e292); vec2 _e297 = pp; vec2 _e299 = dir; float _e300 = easu_weight((vec2(-1.0, 1.0) - _e297), _e299, len2_, lob_1, clp_1); w = _e300; vec3 _e301 = aC; float _e303 = w; aC = (_e301 + (_e77.xyz * _e303)); float _e306 = aW; float _e307 = w; aW = (_e306 + _e307); vec2 _e312 = pp; vec2 _e314 = dir; float _e315 = easu_weight((vec2(0.0, 1.0) - _e312), _e314, len2_, lob_1, clp_1); w = _e315; vec3 _e316 = aC; float _e318 = w; aC = (_e316 + (_e86.xyz * _e318)); float _e321 = aW; float _e322 = w; aW = (_e321 + _e322); vec2 _e327 = pp; vec2 _e329 = dir; float _e330 = easu_weight((vec2(0.0, 0.0) - _e327), _e329, len2_, lob_1, clp_1); w = _e330; vec3 _e331 = aC; float _e333 = w; aC = (_e331 + (_e50.xyz * _e333)); float _e336 = aW; float _e337 = w; aW = (_e336 + _e337); vec2 _e342 = pp; vec2 _e344 = dir; float _e345 = easu_weight((vec2(-1.0, 0.0) - _e342), _e344, len2_, lob_1, clp_1); w = _e345; vec3 _e346 = aC; float _e348 = w; aC = (_e346 + (_e45.xyz * _e348)); float _e351 = aW; float _e352 = w; aW = (_e351 + _e352); vec2 _e357 = pp; vec2 _e359 = dir; float _e360 = easu_weight((vec2(1.0, 1.0) - _e357), _e359, len2_, lob_1, clp_1); w = _e360; vec3 _e361 = aC; float _e363 = w; aC = (_e361 + (_e95.xyz * _e363)); float _e366 = aW; float _e367 = w; aW = (_e366 + _e367); vec2 _e372 = pp; vec2 _e374 = dir; float _e375 = easu_weight((vec2(2.0, 1.0) - _e372), _e374, len2_, lob_1, clp_1); w = _e375; vec3 _e376 = aC; float _e378 = w; aC = (_e376 + (_e104.xyz * _e378)); float _e381 = aW; float _e382 = w; aW = (_e381 + _e382); vec2 _e387 = pp; vec2 _e389 = dir; float _e390 = easu_weight((vec2(2.0, 0.0) - _e387), _e389, len2_, lob_1, clp_1); w = _e390; vec3 _e391 = aC; float _e393 = w; aC = (_e391 + (_e68.xyz * _e393)); float _e396 = aW; float _e397 = w; aW = (_e396 + _e397); vec2 _e402 = pp; vec2 _e404 = dir; float _e405 = easu_weight((vec2(1.0, 0.0) - _e402), _e404, len2_, lob_1, clp_1); w = _e405; vec3 _e406 = aC; float _e408 = w; aC = (_e406 + (_e59.xyz * _e408)); float _e411 = aW; float _e412 = w; aW = (_e411 + _e412); vec2 _e417 = pp; vec2 _e419 = dir; float _e420 = easu_weight((vec2(1.0, 2.0) - _e417), _e419, len2_, lob_1, clp_1); w = _e420; vec3 _e421 = aC; float _e423 = w; aC = (_e421 + (_e122.xyz * _e423)); float _e426 = aW; float _e427 = w; aW = (_e426 + _e427); vec2 _e432 = pp; vec2 _e434 = dir; float _e435 = easu_weight((vec2(0.0, 2.0) - _e432), _e434, len2_, lob_1, clp_1); w = _e435; vec3 _e436 = aC; float _e438 = w; aC = (_e436 + (_e113.xyz * _e438)); float _e441 = aW; float _e442 = w; aW = (_e441 + _e442); vec3 min4_ = min(min(_e50.xyz, _e59.xyz), min(_e86.xyz, _e95.xyz)); vec3 max4_ = max(max(_e50.xyz, _e59.xyz), max(_e86.xyz, _e95.xyz)); vec3 _e458 = aC; float _e459 = aW; float _e460 = rcp_or_zero(_e459); vec3 rgb = min(max4_, max(min4_, (_e458 * _e460))); float _e467 = pp.x; float _e472 = pp.x; float _e475 = pp.y; float a = mix(mix(_e50.w, _e59.w, _e467), mix(_e86.w, _e95.w, _e472), _e475); _fs2p_location0 = vec4(rgb, a); return; } fs_rcasmainé#version 300 es precision highp float; precision highp int; struct FsrU { vec4 con0_; vec4 size; vec4 rcas; }; const float RCAS_LIMIT = 0.1875; layout(std140) uniform FsrU_block_0Fragment { FsrU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; layout(location = 0) out vec4 _fs2p_location0; vec4 texel(ivec2 p, vec2 size) { ivec2 hi = (ivec2(size) - ivec2(1, 1)); vec4 _e13 = texelFetch(_group_0_binding_1_fs, min(max(p, ivec2(0, 0)), hi), 0); return _e13; } float luma2_(vec3 c) { return ((c.z * 0.5) + ((c.x * 0.5) + c.y)); } float rcp_or_zero(float x) { return ((x != 0.0) ? (1.0 / x) : 0.0); } vec3 easu_set(vec3 dl_1, float w_1, float la, float lb, float lc, float ld, float le) { float lenX = 0.0; float lenY = 0.0; float dc = (ld - lc); float cb = (lc - lb); float _e12 = rcp_or_zero(max(abs(dc), abs(cb))); lenX = _e12; float dirX = (ld - lb); float _e16 = lenX; lenX = clamp((abs(dirX) * _e16), 0.0, 1.0); float _e21 = lenX; float _e22 = lenX; lenX = (_e21 * _e22); float ec = (le - lc); float ca = (lc - la); float _e29 = rcp_or_zero(max(abs(ec), abs(ca))); lenY = _e29; float dirY = (le - la); float _e33 = lenY; lenY = clamp((abs(dirY) * _e33), 0.0, 1.0); float _e38 = lenY; float _e39 = lenY; lenY = (_e38 * _e39); float _e43 = lenX; float _e45 = lenY; return (dl_1 + vec3((dirX * w_1), (dirY * w_1), ((_e43 * w_1) + (_e45 * w_1)))); } float easu_weight(vec2 off, vec2 dir_1, vec2 len_1, float lob, float clp) { vec2 v = vec2(0.0); float wB = 0.0; float wA = 0.0; v = vec2(((off.x * dir_1.x) + (off.y * dir_1.y)), ((off.x * -(dir_1.y)) + (off.y * dir_1.x))); vec2 _e22 = v; v = (_e22 * len_1); float _e25 = v.x; float _e27 = v.x; float _e30 = v.y; float _e32 = v.y; float d2_ = min(((_e25 * _e27) + (_e30 * _e32)), clp); wB = ((0.4 * d2_) - 1.0); wA = ((lob * d2_) - 1.0); float _e45 = wB; float _e46 = wB; wB = (_e45 * _e46); float _e48 = wA; float _e49 = wA; wA = (_e48 * _e49); float _e51 = wB; wB = ((1.5625 * _e51) - 0.5625); float _e56 = wB; float _e57 = wA; return (_e56 * _e57); } void main() { vec4 pos_1 = gl_FragCoord; ivec2 p_1 = ivec2(floor(pos_1.xy)); vec4 _e10 = _group_0_binding_0_fs.size; vec4 _e12 = texel((p_1 + ivec2(0, -1)), _e10.zw); vec3 b = _e12.xyz; vec4 _e20 = _group_0_binding_0_fs.size; vec4 _e22 = texel((p_1 + ivec2(-1, 0)), _e20.zw); vec3 d = _e22.xyz; vec4 _e26 = _group_0_binding_0_fs.size; vec4 _e28 = texel(p_1, _e26.zw); vec3 e = _e28.xyz; vec4 _e36 = _group_0_binding_0_fs.size; vec4 _e38 = texel((p_1 + ivec2(1, 0)), _e36.zw); vec3 f = _e38.xyz; vec4 _e46 = _group_0_binding_0_fs.size; vec4 _e48 = texel((p_1 + ivec2(0, 1)), _e46.zw); vec3 h = _e48.xyz; vec3 mn4_ = min(min(min(b, d), f), h); vec3 mx4_ = max(max(max(b, d), f), h); float _e60 = rcp_or_zero((4.0 * mx4_.x)); float _e64 = rcp_or_zero((4.0 * mx4_.y)); float _e68 = rcp_or_zero((4.0 * mx4_.z)); vec3 hitMin = (min(mn4_, e) * vec3(_e60, _e64, _e68)); vec3 dn = ((4.0 * mn4_) - vec3(4.0)); float _e81 = rcp_or_zero(dn.x); float _e83 = rcp_or_zero(dn.y); float _e85 = rcp_or_zero(dn.z); vec3 hitMax = ((vec3(1.0) - max(mx4_, e)) * vec3(_e81, _e83, _e85)); vec3 lobeRGB = max(-(hitMin), hitMax); float _e102 = _group_0_binding_0_fs.rcas.x; float lobe = (max(-0.1875, min(max(max(lobeRGB.x, lobeRGB.y), lobeRGB.z), 0.0)) * _e102); float rcpL = (1.0 / ((4.0 * lobe) + 1.0)); vec3 rgb = ((((((lobe * b) + (lobe * d)) + (lobe * h)) + (lobe * f)) + e) * rcpL); _fs2p_location0 = vec4(rgb, _e28.w); return; }  fs_stretchmainÁ #version 300 es precision highp float; precision highp int; struct FsrU { vec4 con0_; vec4 size; vec4 rcas; }; const float RCAS_LIMIT = 0.1875; layout(std140) uniform FsrU_block_0Fragment { FsrU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; layout(location = 0) out vec4 _fs2p_location0; vec4 texel(ivec2 p, vec2 size) { ivec2 hi = (ivec2(size) - ivec2(1, 1)); vec4 _e13 = texelFetch(_group_0_binding_1_fs, min(max(p, ivec2(0, 0)), hi), 0); return _e13; } float luma2_(vec3 c) { return ((c.z * 0.5) + ((c.x * 0.5) + c.y)); } float rcp_or_zero(float x) { return ((x != 0.0) ? (1.0 / x) : 0.0); } vec3 easu_set(vec3 dl_1, float w_1, float la, float lb, float lc, float ld, float le) { float lenX = 0.0; float lenY = 0.0; float dc = (ld - lc); float cb = (lc - lb); float _e12 = rcp_or_zero(max(abs(dc), abs(cb))); lenX = _e12; float dirX = (ld - lb); float _e16 = lenX; lenX = clamp((abs(dirX) * _e16), 0.0, 1.0); float _e21 = lenX; float _e22 = lenX; lenX = (_e21 * _e22); float ec = (le - lc); float ca = (lc - la); float _e29 = rcp_or_zero(max(abs(ec), abs(ca))); lenY = _e29; float dirY = (le - la); float _e33 = lenY; lenY = clamp((abs(dirY) * _e33), 0.0, 1.0); float _e38 = lenY; float _e39 = lenY; lenY = (_e38 * _e39); float _e43 = lenX; float _e45 = lenY; return (dl_1 + vec3((dirX * w_1), (dirY * w_1), ((_e43 * w_1) + (_e45 * w_1)))); } float easu_weight(vec2 off, vec2 dir_1, vec2 len_1, float lob, float clp) { vec2 v = vec2(0.0); float wB = 0.0; float wA = 0.0; v = vec2(((off.x * dir_1.x) + (off.y * dir_1.y)), ((off.x * -(dir_1.y)) + (off.y * dir_1.x))); vec2 _e22 = v; v = (_e22 * len_1); float _e25 = v.x; float _e27 = v.x; float _e30 = v.y; float _e32 = v.y; float d2_ = min(((_e25 * _e27) + (_e30 * _e32)), clp); wB = ((0.4 * d2_) - 1.0); wA = ((lob * d2_) - 1.0); float _e45 = wB; float _e46 = wB; wB = (_e45 * _e46); float _e48 = wA; float _e49 = wA; wA = (_e48 * _e49); float _e51 = wB; wB = ((1.5625 * _e51) - 0.5625); float _e56 = wB; float _e57 = wA; return (_e56 * _e57); } void main() { vec4 pos_2 = gl_FragCoord; vec4 _e4 = _group_0_binding_0_fs.size; vec2 uv = (pos_2.xy / _e4.zw); vec4 _e10 = textureLod(_group_0_binding_1_fs, vec2(uv), 0.0); _fs2p_location0 = _e10; return; }  06ÕŸ•ôFsrU_block_0Fragment_group_0_binding_1_fsvs_fsrvs_fsrfs_easufs_easufs_rcasfs_rcas fs_stretch fs_stretch#=// language: metal2.2 #include #include using metal::uint; struct FsrU { metal::float4 con0_; metal::float4 size; metal::float4 rcas; }; struct type_6 { metal::float2 inner[3]; }; constant float RCAS_LIMIT = 0.1875; metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } metal::float4 texel( metal::int2 p, metal::float2 size, metal::texture2d t_src ) { metal::int2 hi = as_type(as_type(naga_f2i32(size)) - as_type(metal::int2(1, 1))); uint clamped_lod_e13 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 _e13 = t_src.read(metal::min(metal::uint2(metal::clamp(p, metal::int2(0, 0), hi)), metal::uint2(t_src.get_width(clamped_lod_e13), t_src.get_height(clamped_lod_e13)) - 1), clamped_lod_e13); return _e13; } float luma2_( metal::float3 c ) { return (c.z * 0.5) + ((c.x * 0.5) + c.y); } float rcp_or_zero( float x ) { return (x != 0.0) ? (1.0 / x) : 0.0; } metal::float3 easu_set( metal::float3 dl_1, float w_1, float la, float lb, float lc, float ld, float le ) { float lenX = {}; float lenY = {}; float dc = ld - lc; float cb = lc - lb; float _e12 = rcp_or_zero(metal::max(metal::abs(dc), metal::abs(cb))); lenX = _e12; float dirX = ld - lb; float _e16 = lenX; lenX = metal::clamp(metal::abs(dirX) * _e16, 0.0, 1.0); float _e21 = lenX; float _e22 = lenX; lenX = _e21 * _e22; float ec = le - lc; float ca = lc - la; float _e29 = rcp_or_zero(metal::max(metal::abs(ec), metal::abs(ca))); lenY = _e29; float dirY = le - la; float _e33 = lenY; lenY = metal::clamp(metal::abs(dirY) * _e33, 0.0, 1.0); float _e38 = lenY; float _e39 = lenY; lenY = _e38 * _e39; float _e43 = lenX; float _e45 = lenY; return dl_1 + metal::float3(dirX * w_1, dirY * w_1, (_e43 * w_1) + (_e45 * w_1)); } float easu_weight( metal::float2 off, metal::float2 dir_1, metal::float2 len_1, float lob, float clp ) { metal::float2 v = {}; float wB = {}; float wA = {}; v = metal::float2((off.x * dir_1.x) + (off.y * dir_1.y), (off.x * -(dir_1.y)) + (off.y * dir_1.x)); metal::float2 _e22 = v; v = _e22 * len_1; float _e25 = v.x; float _e27 = v.x; float _e30 = v.y; float _e32 = v.y; float d2_ = metal::min((_e25 * _e27) + (_e30 * _e32), clp); wB = (0.4 * d2_) - 1.0; wA = (lob * d2_) - 1.0; float _e45 = wB; float _e46 = wB; wB = _e45 * _e46; float _e48 = wA; float _e49 = wA; wA = _e48 * _e49; float _e51 = wB; wB = (1.5625 * _e51) - 0.5625; float _e56 = wB; float _e57 = wA; return _e56 * _e57; } struct vs_fsrInput { }; struct vs_fsrOutput { metal::float4 member [[position]]; }; vertex vs_fsrOutput vs_fsr( uint vi [[vertex_id]] ) { type_6 pts = type_6 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; metal::float2 _e13 = pts.inner[metal::min(unsigned(vi), 2u)]; return vs_fsrOutput { metal::float4(_e13, 0.0, 1.0) }; } struct fs_easuInput { }; struct fs_easuOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_easuOutput fs_easu( metal::float4 pos [[position]] , constant FsrU& U [[buffer(0)]] , metal::texture2d t_src [[texture(0)]] ) { metal::float2 pp = {}; metal::float3 dl = metal::float3(0.0); metal::float2 dir = {}; float len = {}; float dirR = {}; metal::float3 aC = metal::float3(0.0); float aW = 0.0; float w = {}; metal::float2 ip = metal::floor(pos.xy); metal::float4 _e5 = U.con0_; metal::float4 _e10 = U.con0_; pp = (ip * _e5.xy) + _e10.zw; metal::float2 _e14 = pp; metal::float2 fp = metal::floor(_e14); metal::float2 _e16 = pp; pp = _e16 - fp; metal::int2 o = naga_f2i32(fp); metal::float4 _e25 = U.size; metal::float4 _e27 = texel(as_type(as_type(o) + as_type(metal::int2(0, -1))), _e25.xy, t_src); metal::float4 _e34 = U.size; metal::float4 _e36 = texel(as_type(as_type(o) + as_type(metal::int2(1, -1))), _e34.xy, t_src); metal::float4 _e43 = U.size; metal::float4 _e45 = texel(as_type(as_type(o) + as_type(metal::int2(-1, 0))), _e43.xy, t_src); metal::float4 _e48 = U.size; metal::float4 _e50 = texel(o, _e48.xy, t_src); metal::float4 _e57 = U.size; metal::float4 _e59 = texel(as_type(as_type(o) + as_type(metal::int2(1, 0))), _e57.xy, t_src); metal::float4 _e66 = U.size; metal::float4 _e68 = texel(as_type(as_type(o) + as_type(metal::int2(2, 0))), _e66.xy, t_src); metal::float4 _e75 = U.size; metal::float4 _e77 = texel(as_type(as_type(o) + as_type(metal::int2(-1, 1))), _e75.xy, t_src); metal::float4 _e84 = U.size; metal::float4 _e86 = texel(as_type(as_type(o) + as_type(metal::int2(0, 1))), _e84.xy, t_src); metal::float4 _e93 = U.size; metal::float4 _e95 = texel(as_type(as_type(o) + as_type(metal::int2(1, 1))), _e93.xy, t_src); metal::float4 _e102 = U.size; metal::float4 _e104 = texel(as_type(as_type(o) + as_type(metal::int2(2, 1))), _e102.xy, t_src); metal::float4 _e111 = U.size; metal::float4 _e113 = texel(as_type(as_type(o) + as_type(metal::int2(0, 2))), _e111.xy, t_src); metal::float4 _e120 = U.size; metal::float4 _e122 = texel(as_type(as_type(o) + as_type(metal::int2(1, 2))), _e120.xy, t_src); float _e124 = luma2_(_e27.xyz); float _e126 = luma2_(_e36.xyz); float _e128 = luma2_(_e45.xyz); float _e130 = luma2_(_e50.xyz); float _e132 = luma2_(_e59.xyz); float _e134 = luma2_(_e68.xyz); float _e136 = luma2_(_e77.xyz); float _e138 = luma2_(_e86.xyz); float _e140 = luma2_(_e95.xyz); float _e142 = luma2_(_e104.xyz); float _e144 = luma2_(_e113.xyz); float _e146 = luma2_(_e122.xyz); metal::float3 _e150 = dl; float _e152 = pp.x; float _e156 = pp.y; metal::float3 _e160 = easu_set(_e150, (1.0 - _e152) * (1.0 - _e156), _e124, _e128, _e130, _e132, _e138); dl = _e160; metal::float3 _e161 = dl; float _e163 = pp.x; float _e165 = pp.y; metal::float3 _e169 = easu_set(_e161, _e163 * (1.0 - _e165), _e126, _e130, _e132, _e134, _e140); dl = _e169; metal::float3 _e170 = dl; float _e172 = pp.x; float _e176 = pp.y; metal::float3 _e178 = easu_set(_e170, (1.0 - _e172) * _e176, _e130, _e136, _e138, _e140, _e144); dl = _e178; metal::float3 _e179 = dl; float _e181 = pp.x; float _e183 = pp.y; metal::float3 _e185 = easu_set(_e179, _e181 * _e183, _e132, _e138, _e140, _e142, _e146); dl = _e185; metal::float3 _e186 = dl; dir = _e186.xy; float _e190 = dl.z; len = _e190; metal::float2 _e192 = dir; metal::float2 _e193 = dir; metal::float2 dir2_ = _e192 * _e193; dirR = dir2_.x + dir2_.y; float _e199 = dirR; bool zro = _e199 < 0.000030517578; float _e202 = dirR; dirR = zro ? 1.0 : metal::rsqrt(_e202); float _e208 = dir.x; dir.x = zro ? 1.0 : _e208; metal::float2 _e211 = dir; float _e212 = dirR; dir = _e211 * _e212; float _e214 = len; len = _e214 * 0.5; float _e217 = len; float _e218 = len; len = _e217 * _e218; float _e221 = dir.x; float _e223 = dir.x; float _e226 = dir.y; float _e228 = dir.y; float _e232 = dir.x; float _e235 = dir.y; float stretch = ((_e221 * _e223) + (_e226 * _e228)) / metal::max(metal::abs(_e232), metal::abs(_e235)); float _e241 = len; float _e245 = len; metal::float2 len2_ = metal::float2(1.0 + ((stretch - 1.0) * _e241), 1.0 - (0.5 * _e245)); float _e251 = len; float lob_1 = 0.5 + (-0.29 * _e251); float clp_1 = 1.0 / lob_1; metal::float2 _e266 = pp; metal::float2 _e268 = dir; float _e269 = easu_weight(metal::float2(0.0, -1.0) - _e266, _e268, len2_, lob_1, clp_1); w = _e269; metal::float3 _e271 = aC; float _e273 = w; aC = _e271 + (_e27.xyz * _e273); float _e276 = aW; float _e277 = w; aW = _e276 + _e277; metal::float2 _e282 = pp; metal::float2 _e284 = dir; float _e285 = easu_weight(metal::float2(1.0, -1.0) - _e282, _e284, len2_, lob_1, clp_1); w = _e285; metal::float3 _e286 = aC; float _e288 = w; aC = _e286 + (_e36.xyz * _e288); float _e291 = aW; float _e292 = w; aW = _e291 + _e292; metal::float2 _e297 = pp; metal::float2 _e299 = dir; float _e300 = easu_weight(metal::float2(-1.0, 1.0) - _e297, _e299, len2_, lob_1, clp_1); w = _e300; metal::float3 _e301 = aC; float _e303 = w; aC = _e301 + (_e77.xyz * _e303); float _e306 = aW; float _e307 = w; aW = _e306 + _e307; metal::float2 _e312 = pp; metal::float2 _e314 = dir; float _e315 = easu_weight(metal::float2(0.0, 1.0) - _e312, _e314, len2_, lob_1, clp_1); w = _e315; metal::float3 _e316 = aC; float _e318 = w; aC = _e316 + (_e86.xyz * _e318); float _e321 = aW; float _e322 = w; aW = _e321 + _e322; metal::float2 _e327 = pp; metal::float2 _e329 = dir; float _e330 = easu_weight(metal::float2(0.0, 0.0) - _e327, _e329, len2_, lob_1, clp_1); w = _e330; metal::float3 _e331 = aC; float _e333 = w; aC = _e331 + (_e50.xyz * _e333); float _e336 = aW; float _e337 = w; aW = _e336 + _e337; metal::float2 _e342 = pp; metal::float2 _e344 = dir; float _e345 = easu_weight(metal::float2(-1.0, 0.0) - _e342, _e344, len2_, lob_1, clp_1); w = _e345; metal::float3 _e346 = aC; float _e348 = w; aC = _e346 + (_e45.xyz * _e348); float _e351 = aW; float _e352 = w; aW = _e351 + _e352; metal::float2 _e357 = pp; metal::float2 _e359 = dir; float _e360 = easu_weight(metal::float2(1.0, 1.0) - _e357, _e359, len2_, lob_1, clp_1); w = _e360; metal::float3 _e361 = aC; float _e363 = w; aC = _e361 + (_e95.xyz * _e363); float _e366 = aW; float _e367 = w; aW = _e366 + _e367; metal::float2 _e372 = pp; metal::float2 _e374 = dir; float _e375 = easu_weight(metal::float2(2.0, 1.0) - _e372, _e374, len2_, lob_1, clp_1); w = _e375; metal::float3 _e376 = aC; float _e378 = w; aC = _e376 + (_e104.xyz * _e378); float _e381 = aW; float _e382 = w; aW = _e381 + _e382; metal::float2 _e387 = pp; metal::float2 _e389 = dir; float _e390 = easu_weight(metal::float2(2.0, 0.0) - _e387, _e389, len2_, lob_1, clp_1); w = _e390; metal::float3 _e391 = aC; float _e393 = w; aC = _e391 + (_e68.xyz * _e393); float _e396 = aW; float _e397 = w; aW = _e396 + _e397; metal::float2 _e402 = pp; metal::float2 _e404 = dir; float _e405 = easu_weight(metal::float2(1.0, 0.0) - _e402, _e404, len2_, lob_1, clp_1); w = _e405; metal::float3 _e406 = aC; float _e408 = w; aC = _e406 + (_e59.xyz * _e408); float _e411 = aW; float _e412 = w; aW = _e411 + _e412; metal::float2 _e417 = pp; metal::float2 _e419 = dir; float _e420 = easu_weight(metal::float2(1.0, 2.0) - _e417, _e419, len2_, lob_1, clp_1); w = _e420; metal::float3 _e421 = aC; float _e423 = w; aC = _e421 + (_e122.xyz * _e423); float _e426 = aW; float _e427 = w; aW = _e426 + _e427; metal::float2 _e432 = pp; metal::float2 _e434 = dir; float _e435 = easu_weight(metal::float2(0.0, 2.0) - _e432, _e434, len2_, lob_1, clp_1); w = _e435; metal::float3 _e436 = aC; float _e438 = w; aC = _e436 + (_e113.xyz * _e438); float _e441 = aW; float _e442 = w; aW = _e441 + _e442; metal::float3 min4_ = metal::min(metal::min(_e50.xyz, _e59.xyz), metal::min(_e86.xyz, _e95.xyz)); metal::float3 max4_ = metal::max(metal::max(_e50.xyz, _e59.xyz), metal::max(_e86.xyz, _e95.xyz)); metal::float3 _e458 = aC; float _e459 = aW; float _e460 = rcp_or_zero(_e459); metal::float3 rgb = metal::min(max4_, metal::max(min4_, _e458 * _e460)); float _e467 = pp.x; float _e472 = pp.x; float _e475 = pp.y; float a = metal::mix(metal::mix(_e50.w, _e59.w, _e467), metal::mix(_e86.w, _e95.w, _e472), _e475); return fs_easuOutput { metal::float4(rgb, a) }; } struct fs_rcasInput { }; struct fs_rcasOutput { metal::float4 member_2 [[color(0)]]; }; fragment fs_rcasOutput fs_rcas( metal::float4 pos_1 [[position]] , constant FsrU& U [[buffer(0)]] , metal::texture2d t_src [[texture(0)]] ) { metal::int2 p_1 = naga_f2i32(metal::floor(pos_1.xy)); metal::float4 _e10 = U.size; metal::float4 _e12 = texel(as_type(as_type(p_1) + as_type(metal::int2(0, -1))), _e10.zw, t_src); metal::float3 b = _e12.xyz; metal::float4 _e20 = U.size; metal::float4 _e22 = texel(as_type(as_type(p_1) + as_type(metal::int2(-1, 0))), _e20.zw, t_src); metal::float3 d = _e22.xyz; metal::float4 _e26 = U.size; metal::float4 _e28 = texel(p_1, _e26.zw, t_src); metal::float3 e = _e28.xyz; metal::float4 _e36 = U.size; metal::float4 _e38 = texel(as_type(as_type(p_1) + as_type(metal::int2(1, 0))), _e36.zw, t_src); metal::float3 f = _e38.xyz; metal::float4 _e46 = U.size; metal::float4 _e48 = texel(as_type(as_type(p_1) + as_type(metal::int2(0, 1))), _e46.zw, t_src); metal::float3 h = _e48.xyz; metal::float3 mn4_ = metal::min(metal::min(metal::min(b, d), f), h); metal::float3 mx4_ = metal::max(metal::max(metal::max(b, d), f), h); float _e60 = rcp_or_zero(4.0 * mx4_.x); float _e64 = rcp_or_zero(4.0 * mx4_.y); float _e68 = rcp_or_zero(4.0 * mx4_.z); metal::float3 hitMin = metal::min(mn4_, e) * metal::float3(_e60, _e64, _e68); metal::float3 dn = (4.0 * mn4_) - metal::float3(4.0); float _e81 = rcp_or_zero(dn.x); float _e83 = rcp_or_zero(dn.y); float _e85 = rcp_or_zero(dn.z); metal::float3 hitMax = (metal::float3(1.0) - metal::max(mx4_, e)) * metal::float3(_e81, _e83, _e85); metal::float3 lobeRGB = metal::max(-(hitMin), hitMax); float _e102 = U.rcas.x; float lobe = metal::max(-0.1875, metal::min(metal::max(metal::max(lobeRGB.x, lobeRGB.y), lobeRGB.z), 0.0)) * _e102; float rcpL = 1.0 / ((4.0 * lobe) + 1.0); metal::float3 rgb_1 = (((((lobe * b) + (lobe * d)) + (lobe * h)) + (lobe * f)) + e) * rcpL; return fs_rcasOutput { metal::float4(rgb_1, _e28.w) }; } struct fs_stretchInput { }; struct fs_stretchOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_stretchOutput fs_stretch( metal::float4 pos_2 [[position]] , constant FsrU& U [[buffer(0)]] , metal::texture2d t_src [[texture(0)]] , metal::sampler s_linear [[sampler(0)]] ) { metal::float4 _e4 = U.size; metal::float2 uv = pos_2.xy / _e4.zw; metal::float4 _e10 = t_src.sample(s_linear, uv, metal::level(0.0)); return fs_stretchOutput { _e10 }; }  06ÕŸ•ôvs_fsrmain·struct FsrU { float4 con0; float4 size; float4 rcas; }; static const float2 _173[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static float4 gl_Position; static int gl_VertexIndex; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float4 gl_Position : SV_Position; }; void vert_main() { gl_Position = float4(_173[min(uint(gl_VertexIndex), 2u)], 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; return stage_output; } fs_easumainústruct FsrU { float4 con0; float4 size; float4 rcas; }; cbuffer U : register(b0) { FsrU U_1_m0 : packoffset(c0); }; Texture2D t_src : register(t0); static float4 gl_FragCoord; static float4 _197; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _197 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float4 texel(int2 p, float2 size) { int _41; spvTextureSize(t_src, 0u, _41); int _43 = int(min(uint(0), uint(int(_41) - 1))); uint _44_dummy_parameter; return t_src.Load(int3(int2(min(uint2(min(max(p, int2(0, 0)), (int2(clamp(size, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))) - int2(1, 1)))), uint2(int2(spvTextureSize(t_src, uint(_43), _44_dummy_parameter)) - int2(1, 1)))), _43)); } float luma2(float3 c) { return (c.z * 0.5f) + ((c.x * 0.5f) + c.y); } float rcp_or_zero(float x) { return (x != 0.0f) ? (1.0f / x) : 0.0f; } float3 easu_set(float3 dl, float w, float la, float lb, float lc, float ld, float le) { float lenX = 0.0f; float lenY = 0.0f; lenX = rcp_or_zero(max(abs(ld - lc), abs(lc - lb))); float _95 = ld - lb; lenX = clamp(abs(_95) * lenX, 0.0f, 1.0f); lenX *= lenX; lenY = rcp_or_zero(max(abs(le - lc), abs(lc - la))); float _109 = le - la; lenY = clamp(abs(_109) * lenY, 0.0f, 1.0f); lenY *= lenY; return dl + float3(_95 * w, _109 * w, (lenX * w) + (lenY * w)); } float easu_weight(float2 off, float2 dir, float2 len, float lob, float clp) { float2 v = float2(0.0f, 0.0f); float wB = 0.0f; float wA = 0.0f; v = float2((off.x * dir.x) + (off.y * dir.y), (off.x * (-dir.y)) + (off.y * dir.x)); v *= len; float _176 = min((v.x * v.x) + (v.y * v.y), clp); wB = (0.4000000059604644775390625f * _176) - 1.0f; wA = (lob * _176) - 1.0f; wB *= wB; wA *= wA; wB = (1.5625f * wB) - 0.5625f; return wB * wA; } void frag_main() { float aW = 0.0f; float len = 0.0f; float2 pp = float2(0.0f, 0.0f); float w = 0.0f; float dirR = 0.0f; float3 dl = float3(0.0f, 0.0f, 0.0f); float3 aC = float3(0.0f, 0.0f, 0.0f); float2 dir = float2(0.0f, 0.0f); pp = (floor(gl_FragCoord.xy) * U_1_m0.con0.xy) + U_1_m0.con0.zw; float2 _259 = pp; float2 _260 = floor(_259); pp -= _260; int2 _264 = int2(clamp(_260, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); float4 _269 = texel(_264 + int2(0, -1), U_1_m0.size.xy); float4 _274 = texel(_264 + int2(1, -1), U_1_m0.size.xy); float4 _279 = texel(_264 + int2(-1, 0), U_1_m0.size.xy); float4 _283 = texel(_264, U_1_m0.size.xy); float4 _288 = texel(_264 + int2(1, 0), U_1_m0.size.xy); float4 _293 = texel(_264 + int2(2, 0), U_1_m0.size.xy); float4 _298 = texel(_264 + int2(-1, 1), U_1_m0.size.xy); float4 _303 = texel(_264 + int2(0, 1), U_1_m0.size.xy); float4 _308 = texel(_264 + int2(1, 1), U_1_m0.size.xy); float4 _313 = texel(_264 + int2(2, 1), U_1_m0.size.xy); float4 _318 = texel(_264 + int2(0, 2), U_1_m0.size.xy); float4 _323 = texel(_264 + int2(1, 2), U_1_m0.size.xy); float _331 = luma2(_283.xyz); float _333 = luma2(_288.xyz); float _339 = luma2(_303.xyz); float _341 = luma2(_308.xyz); dl = easu_set(dl, (1.0f - pp.x) * (1.0f - pp.y), luma2(_269.xyz), luma2(_279.xyz), _331, _333, _339); dl = easu_set(dl, pp.x * (1.0f - pp.y), luma2(_274.xyz), _331, _333, luma2(_293.xyz), _341); dl = easu_set(dl, (1.0f - pp.x) * pp.y, _331, luma2(_298.xyz), _339, _341, luma2(_318.xyz)); dl = easu_set(dl, pp.x * pp.y, _333, _339, _341, luma2(_313.xyz), luma2(_323.xyz)); dir = dl.xy; len = dl.z; float2 _387 = dir * dir; dirR = _387.x + _387.y; float _391 = dirR; bool _392 = _391 < 3.0517578125e-05f; dirR = _392 ? 1.0f : rsqrt(dirR); dir.x = _392 ? 1.0f : dir.x; dir *= dirR; len *= 0.5f; len *= len; float2 _434 = float2(1.0f + (((((dir.x * dir.x) + (dir.y * dir.y)) / max(abs(dir.x), abs(dir.y))) - 1.0f) * len), 1.0f - (0.5f * len)); float _437 = 0.5f + ((-0.2899999916553497314453125f) * len); float _438 = 1.0f / _437; w = easu_weight(float2(0.0f, -1.0f) - pp, dir, _434, _437, _438); aC += (_269.xyz * w); aW += w; w = easu_weight(float2(1.0f, -1.0f) - pp, dir, _434, _437, _438); aC += (_274.xyz * w); aW += w; w = easu_weight(float2(-1.0f, 1.0f) - pp, dir, _434, _437, _438); aC += (_298.xyz * w); aW += w; w = easu_weight(float2(0.0f, 1.0f) - pp, dir, _434, _437, _438); aC += (_303.xyz * w); aW += w; w = easu_weight(float2(0.0f, 0.0f) - pp, dir, _434, _437, _438); aC += (_283.xyz * w); aW += w; w = easu_weight(float2(-1.0f, 0.0f) - pp, dir, _434, _437, _438); aC += (_279.xyz * w); aW += w; w = easu_weight(float2(1.0f, 1.0f) - pp, dir, _434, _437, _438); aC += (_308.xyz * w); aW += w; w = easu_weight(float2(2.0f, 1.0f) - pp, dir, _434, _437, _438); aC += (_313.xyz * w); aW += w; w = easu_weight(float2(2.0f, 0.0f) - pp, dir, _434, _437, _438); aC += (_293.xyz * w); aW += w; w = easu_weight(float2(1.0f, 0.0f) - pp, dir, _434, _437, _438); aC += (_288.xyz * w); aW += w; w = easu_weight(float2(1.0f, 2.0f) - pp, dir, _434, _437, _438); aC += (_323.xyz * w); aW += w; w = easu_weight(float2(0.0f, 2.0f) - pp, dir, _434, _437, _438); aC += (_318.xyz * w); aW += w; _197 = float4(min(max(max(_283.xyz, _288.xyz), max(_303.xyz, _308.xyz)), max(min(min(_283.xyz, _288.xyz), min(_303.xyz, _308.xyz)), aC * rcp_or_zero(aW))), lerp(lerp(_283.w, _288.w, pp.x), lerp(_303.w, _308.w, pp.x), pp.y)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._197 = _197; return stage_output; } fs_rcasmain‚ struct FsrU { float4 con0; float4 size; float4 rcas; }; cbuffer U : register(b0) { FsrU U_1_m0 : packoffset(c0); }; Texture2D t_src : register(t0); static float4 gl_FragCoord; static float4 _197; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _197 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float4 texel(int2 p, float2 size) { int _41; spvTextureSize(t_src, 0u, _41); int _43 = int(min(uint(0), uint(int(_41) - 1))); uint _44_dummy_parameter; return t_src.Load(int3(int2(min(uint2(min(max(p, int2(0, 0)), (int2(clamp(size, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))) - int2(1, 1)))), uint2(int2(spvTextureSize(t_src, uint(_43), _44_dummy_parameter)) - int2(1, 1)))), _43)); } float rcp_or_zero(float x) { return (x != 0.0f) ? (1.0f / x) : 0.0f; } void frag_main() { int2 _217 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); float3 _224 = texel(_217 + int2(0, -1), U_1_m0.size.zw).xyz; float3 _230 = texel(_217 + int2(-1, 0), U_1_m0.size.zw).xyz; float4 _234 = texel(_217, U_1_m0.size.zw); float3 _235 = _234.xyz; float3 _241 = texel(_217 + int2(1, 0), U_1_m0.size.zw).xyz; float3 _247 = texel(_217 + int2(0, 1), U_1_m0.size.zw).xyz; float3 _250 = min(min(min(_224, _230), _241), _247); float3 _253 = max(max(max(_224, _230), _241), _247); float3 _267 = (_250 * 4.0f) - float3(4.0f, 4.0f, 4.0f); float3 _279 = max(-(min(_250, _235) * float3(rcp_or_zero(4.0f * _253.x), rcp_or_zero(4.0f * _253.y), rcp_or_zero(4.0f * _253.z))), (float3(1.0f, 1.0f, 1.0f) - max(_253, _235)) * float3(rcp_or_zero(_267.x), rcp_or_zero(_267.y), rcp_or_zero(_267.z))); float _291 = max(-0.1875f, min(max(max(_279.x, _279.y), _279.z), 0.0f)) * U_1_m0.rcas.x; _197 = float4((((((_224 * _291) + (_230 * _291)) + (_247 * _291)) + (_241 * _291)) + _235) * (1.0f / ((4.0f * _291) + 1.0f)), _234.w); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._197 = _197; return stage_output; }  fs_stretchmainðstruct FsrU { float4 con0; float4 size; float4 rcas; }; cbuffer U : register(b0) { FsrU U_1_m0 : packoffset(c0); }; Texture2D t_src : register(t0); SamplerState s_linear : register(s0); static float4 gl_FragCoord; static float4 _199; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _199 : SV_Target0; }; void frag_main() { _199 = t_src.SampleLevel(s_linear, gl_FragCoord.xy / U_1_m0.size.zw, 0.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._199 = _199; return stage_output; }  06ÕŸ•ôHSLTFsrU0con0ÿÿÿÿsizeÿÿÿÿrcas ÿÿÿÿU_block0Ut_srcÿÿÿÿvs_fsrvs_fsrfs_easufs_easufs_rcasfs_rcas fs_stretch fs_stretchˆA#ø2 GLSL.std.450Évs_fsrÄÇâfs_easuÞá…fs_rcas‚„ëfs_stretchèêâ…ëH#H#H# G G"G!GH#G"G!G"G!GÄ *GÇ GÞ GáG‚ G„Gè Gê    +    +@> ; ; ;! + , + , +"Ï, #""+$ÿÿÿN, %$$, /!6+7?!C+D€?+EH! T V.W.Y!‡ +ˆÍÌÌ>+‰È?+Š? Œ . �.�.‘+¥+« Å;ÅÄ È;ÈÇ!Ê+Ë€¿, ÌËË+Í@@, ÎÍË, ÏËÍ, ÐÌÎÏ Ò +Ô Ù ß;ßÞ;Èá ã+ æÿÿÿÿ, çæ, èæ, éæ, ê+ ë, ìë, íæ, î, ïë, ðë, ñë,òEEE+ó8+ôáz”¾, õEË, öDË, ÷ËD, øED, ùEE, úËE, ûDD+ü@, ýüD, þüE, ÿDE, Dü, Eü.  . . . . ;ß‚;È„+ˆ€@,‰ˆˆˆ,ŠDDD+‹@¾ Õ;ßè;Èêõ67 7 ø=ù!ø!  &+#%n '&‚ ('  **  )'*(j +‚ ,+  -&,g .-‚ 0./  1&)0_21-þ2865674ø3ù8ø8Q94…:97Q;4…<;7Q=4�><=�?:>þ?86BC7Aø@ùFøFˆGDA¶HIAE©JIGEþJ86ST7L7M7N7O7P7Q7RøK;VUW;VXYùZøZƒ[QPƒ\PO ][ ^\ _(]^9`B_>U`ƒaQO ba=cU…dbc e+dED>Ue=fU=gU…hfg>UhƒiRPƒjPN ki lj m(kl9nBm>XnƒoRN po=qX…rpq s+rED>Xs=tX=uX…vtu>Xv…waM…xoM=yU…zyM={X…|{M�}z|P~wx}�L~þ86†‡7 �7 ‚7 ƒ7„7…ø€;Œ‹�;VŽ�;V�‘ù’ø’Q“�Q”‚…•“”Q–�Q—‚…˜–—�™•˜Qš�Q›‚œ›…�šœQž�QŸ‚… žŸ�¡� P ¢™¡>‹¢= £‹… ¤£ƒ>‹¤AV¦‹¥=§¦AV¨‹¥=©¨…ª§©AV¬‹«=­¬AV®‹«=¯®…°­¯�±ª° ²%±……³ˆ²ƒ´³D>Ž´…µ„²ƒ¶µD>�¶=·Ž=¸Ž…¹·¸>޹=º�=»�…¼º»>�¼=½Ž…¾‰½ƒ¿¾Š>Ž¿=ÀŽ=Á�…ÂÀÁþÂ86ÉÊøÃ;ÒÑÐ=ÆÄùÓøÓ Õ&ÆÔAŒÖÑÕ= ×ÖPØ×ED>ÇØAÙÚÇ«=ÛÚÜÛ>ÚÜý86âÊøÝ;V E;V ;Œ;V;V  ;ò; ò;Œ=àÞAãä¥=åùøO àà  Aä¥=O … Aä¥=O � >=   = ƒ >  +#%n ! € "!çA#ä«=$#O %$$9&"%€ '!èA(ä«=)(O *))9+'*€ ,!éA-ä«=.-O /..90,/A1ä«=21O 32294!3€ 5!êA6ä«=76O 8779958€ :!ìA;ä«=<;O =<<9>:=€ ?!íA@ä«=A@O BAA9C?B€ D!îAEä«=FEO GFF9HDG€ I!AJä«=KJO LKK9MIL€ N!ïAOä«=POO QPP9RNQ€ S!ðATä«=UTO VUU9WSV€ X!ñAYä«=ZYO [ZZ9\X[O]&&9^5]O_++9`5_Oa009b5aOc449d5cOe999f5eOg>>9h5gOiCC9j5iOkHH9l5kOmMM9n5mOoRR9p5oOqWW9r5qOs\\9t5s=uAVv¥=wvƒxDwAVy«=zyƒ{Dz…|x{9 }Su|^bdfl>}=~AV¥=€AV�«=‚�ƒƒD‚…„€ƒ9 …S~„`dfhn>…=†AV‡¥=ˆ‡ƒ‰DˆAVŠ«=‹Š…Œ‰‹9 �S†Œdjlnr>�=ŽAV�¥=��AV‘«=’‘…“�’9 ”SŽ“flnpt>”=•O –••>–AV—Ô=˜—>˜= ™= š… ›™šQœ›Q�›�žœ�> ž=Ÿ ¸H Ÿó=¡  ¢ ¡©£ D¢> £AV¤¥=¥¤©¦ D¥AV§¥>§¦= ¨=© Ž ª¨©>ª=«…¬«7>¬=­=®…¯­®>¯AV°¥=±°AV²¥=³²…´±³AVµ«=¶µAV·«=¸·…¹¶¸�º´¹AV»¥=¼» ½¼AV¾«=¿¾ À¿ Á(½ÀˆÂºÁƒÃÂD=Ä…ÅÃÄ�ÆDÅ=Ç…È7ǃÉDÈP ÊÆÉ=Ë…ÌôË�Í7̈ÎDÍ= σ ÐõÏ= Ñ9 Ò†ÐÑÊÍÎ>Ò=Ó OÔ&&=ÕŽÖÔÕ�×ÓÖ> ×=Ø =Ù�ÚØÙ> Ú= Ûƒ ÜöÛ= Ý9 Þ†ÜÝÊÍÎ>Þ=ß Oà++=áŽâàá�ãßâ> ã=ä =å�æäå> æ= çƒ è÷ç= é9 ê†èéÊÍÎ>ê=ë OìCC=íŽîìí�ïëî> ï=ð =ñ�òðñ> ò= óƒ ôøó= õ9 ö†ôõÊÍÎ>ö=÷ OøHH=ùŽúøù�û÷ú> û=ü =ý�þüý> þ= ÿƒ ùÿ= 9 †ÊÍÎ>= O44=Ž�> = = �  >  = ƒ ú = 9 †  ÊÍÎ>= O00=Ž�> = =�> = ƒ û= 9 †ÊÍÎ>= OMM=Ž�> =  =!�" !> "= #ƒ $ý#= %9 &†$%ÊÍÎ>&=' O(RR=)Ž*()�+'*> +=, =-�.,-> .= /ƒ 0þ/= 19 2†01ÊÍÎ>2=3 O4>>=5Ž645�736> 7=8 =9�:89> := ;ƒ <ÿ;= =9 >†<=ÊÍÎ>>=? O@99=AŽB@A�C?B> C=D =E�FDE> F= Gƒ HG= I9 J†HIÊÍÎ>J=K OL\\=MŽNLM�OKN> O=P =Q�RPQ> R= Sƒ TS= U9 V†TUÊÍÎ>V=W OXWW=YŽZXY�[WZ> [=\ =]�^\]> ^O_44O`99 a%_`ObHHOcMM d%bc e%adOf44Og99 h(fgOiHHOjMM k(ij l(hk=m =n 9oBnŽpmo q(ep r%lqQs4Qt9AVu¥=vu w.stvQxHQyMAVz¥={z |.xy{AV}«=~} .w|~P€r>á€ý86…Êø�=ƒ‚Aㆥ=‡ùŒøŒO �ƒƒ  Ž�  �+Ž#%n ��€ ‘�çA’†«=“’O ”““9•‘”O–••€ —�éA˜†«=™˜O š™™9›—šOœ››A�†«=ž�O Ÿžž9 �ŸO¡  € ¢�êA£†«=¤£O ¥¤¤9¦¢¥O§¦¦€ ¨�îA©†«=ª©O «ªª9¬¨«O­¬¬ ®%–œ ¯%®§ °%¯­ ±(–œ ²(±§ ³(²­ ´%°¡Qµ³…¶ˆµ9·B¶Q¸³…¹ˆ¸9ºB¹Q»³…¼ˆ»9½B¼P¾·º½…¿´¾ŽÀ°ˆƒÁÀ‰ Â(³¡ƒÃŠÂQÄÁ9ÅBÄQÆÁ9ÇBÆQÈÁ9ÉBÈPÊÅÇÉ…ËÃÊÌ¿ Í(ÌËQÎÍQÏÍ Ð(ÎÏQÑÍ Ò(ÐÑ Ó%ÒE Ô(‹ÓAÕÖ†Ô¥=×Ö…ØÔ×…ÙˆØ�ÚÙDˆÛDÚŽÜ–ØŽÝœØ�ÞÜÝŽß­Ø�àÞßŽá§Ø�âàá�ã⡎äãÛQå Pæäå>„æý86ëÊøç=éèAãì¥=í=îùïøïO ðééAñì«=òñO óòòˆ ôðóVõöíîX÷öôE>ê÷ý8 0‡ÜÚ^gÊË(hedra_engine/shaders/render/post_outlinejÔ‹þBTSR ßßK*Y" ƒ?KÎ?Ñ?Q"@ + .kKykƒ% ü�KG‘Û"’á+ ¾K#vs_full fs_outlineUcoloridsvs_fullvs_full fs_outline fs_outline®struct OutlineU { params: vec4, select_color: vec4, active_color: vec4, } @group(0) @binding(0) var U: OutlineU; @group(0) @binding(1) var color: texture_2d; @group(0) @binding(2) var ids: texture_2d; fn to_bytes(v: vec4) -> vec4 { return vec4(round((clamp(v, vec4(0f), vec4(1f)) * 255f))); } fn id_at(p: vec2, size: vec2) -> u32 { var local_5: bool; var local_6: bool; var local_7: bool; if !((p.x < 0i)) { local_5 = (p.y < 0i); } else { local_5 = true; } let _e12 = local_5; if !(_e12) { local_6 = (p.x >= size.x); } else { local_6 = true; } let _e20 = local_6; if !(_e20) { local_7 = (p.y >= size.y); } else { local_7 = true; } let _e28 = local_7; if _e28 { return 0u; } let _e32 = textureLoad(ids, p, 0i); let _e33 = to_bytes(_e32); return ((_e33.x | (_e33.y << 8u)) | (_e33.z << 16u)); } fn bits_at(p_1: vec2, size_1: vec2) -> u32 { var local_8: bool; var local_9: bool; var local_10: bool; if !((p_1.x < 0i)) { local_8 = (p_1.y < 0i); } else { local_8 = true; } let _e12 = local_8; if !(_e12) { local_9 = (p_1.x >= size_1.x); } else { local_9 = true; } let _e20 = local_9; if !(_e20) { local_10 = (p_1.y >= size_1.y); } else { local_10 = true; } let _e28 = local_10; if _e28 { return 0u; } let _e32 = textureLoad(ids, p_1, 0i); let _e33 = to_bytes(_e32); return _e33.w; } fn sel(id: u32, bits: u32) -> bool { var local_11: bool; if (id != 0u) { local_11 = ((bits & 1u) != 0u); } else { local_11 = false; } let _e11 = local_11; return _e11; } fn mark(p_2: vec2, size_2: vec2) -> u32 { var nb: array, 4>; var k: i32 = 0i; var k_1: i32 = 0i; var local_12: bool; let _e2 = id_at(p_2, size_2); let _e3 = bits_at(p_2, size_2); nb = array, 4>((p_2 + vec2(-1i, 0i)), (p_2 + vec2(1i, 0i)), (p_2 + vec2(0i, -1i)), (p_2 + vec2(0i, 1i))); let _e22 = sel(_e2, _e3); if _e22 { loop { let _e25 = k; if (_e25 < 4i) { } else { break; } { let _e28 = k; let _e30 = nb[_e28]; let _e31 = id_at(_e30, size_2); if (_e31 != _e2) { return select(1u, 2u, ((_e3 & 2u) != 0u)); } } continuing { let _e41 = k; k = (_e41 + 1i); } } return 0u; } loop { let _e46 = k_1; if (_e46 < 4i) { } else { break; } { let _e49 = k_1; let _e51 = nb[_e49]; let _e52 = id_at(_e51, size_2); let _e53 = k_1; let _e55 = nb[_e53]; let _e56 = bits_at(_e55, size_2); let _e57 = sel(_e52, _e56); if _e57 { local_12 = (_e52 != _e2); } else { local_12 = false; } let _e62 = local_12; if _e62 { return select(1u, 2u, ((_e56 & 2u) != 0u)); } } continuing { let _e71 = k_1; k_1 = (_e71 + 1i); } } return 0u; } fn linear_to_srgb(c_1: vec3) -> vec3 { let lo = (c_1 * 12.92f); let hi = ((1.055f * pow(c_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi, lo, (c_1 <= vec3(0.0031308f))); } @vertex fn vs_full(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4 { var pts: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); let _e13 = pts[vi]; return vec4(_e13, 0f, 1f); } @fragment fn fs_outline(@builtin(position) pos: vec4) -> @location(0) vec4 { var dy: i32; var dx: i32; var local: bool; var local_1: bool; var local_2: bool; var c: vec4; var local_3: bool; var local_4: bool; let q = vec2(floor(pos.xy)); let _e5 = textureDimensions(color); let size_3 = vec2(_e5); let _e10 = U.params.x; if (_e10 == 1u) { let _e16 = U.params.y; let r = i32(_e16); dy = r; loop { let _e19 = dy; if (_e19 >= -(r)) { } else { break; } { dx = r; loop { let _e23 = dx; if (_e23 >= -(r)) { } else { break; } { let _e26 = dx; let _e27 = dy; let p_3 = (q + vec2(_e26, _e27)); if !((p_3.x < 0i)) { local = (p_3.y < 0i); } else { local = true; } let _e40 = local; if !(_e40) { local_1 = (p_3.x >= size_3.x); } else { local_1 = true; } let _e48 = local_1; if !(_e48) { local_2 = (p_3.y >= size_3.y); } else { local_2 = true; } let _e56 = local_2; if _e56 { continue; } let _e57 = mark(p_3, size_3); if (_e57 == 1u) { let _e62 = U.select_color; return _e62; } if (_e57 == 2u) { let _e67 = U.active_color; return _e67; } } continuing { let _e69 = dx; dx = (_e69 - 1i); } } } continuing { let _e72 = dy; dy = (_e72 - 1i); } } } let _e76 = textureLoad(color, q, 0i); c = clamp(_e76, vec4(0f), vec4(1f)); let _e86 = U.params.w; if (_e86 == 1u) { let _e92 = c.w; local_3 = (_e92 > 0f); } else { local_3 = false; } let _e96 = local_3; if _e96 { let _e100 = c.w; local_4 = (_e100 < 1f); } else { local_4 = false; } let _e104 = local_4; if _e104 { let _e105 = c; let _e108 = c.w; let _e117 = c.w; c = vec4(min((_e105.xyz / vec3(max(_e108, 0.000001f))), vec3(1f)), _e117); } let _e122 = U.params.z; if (_e122 == 1u) { let _e125 = c; let _e127 = linear_to_srgb(_e125.xyz); let _e129 = c.w; return vec4(_e127, _e129); } let _e131 = c; return _e131; }  0ÆÇJŒÆé˶vs_fullmain©#version 300 es precision highp float; precision highp int; struct OutlineU { uvec4 params; vec4 select_color; vec4 active_color; }; uvec4 to_bytes(vec4 v) { return uvec4(roundEven((clamp(v, vec4(0.0), vec4(1.0)) * 255.0))); } bool sel(uint id, uint bits) { bool local_11 = false; if ((id != 0u)) { local_11 = ((bits & 1u) != 0u); } else { local_11 = false; } bool _e11 = local_11; return _e11; } vec3 linear_to_srgb(vec3 c_1) { vec3 lo = (c_1 * 12.92); vec3 hi = ((1.055 * pow(c_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.0031308))); } void main() { uint vi = uint(gl_VertexID); vec2 pts[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); vec2 _e13 = pts[vi]; gl_Position = vec4(_e13, 0.0, 1.0); gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_outlinemain„#version 300 es precision highp float; precision highp int; struct OutlineU { uvec4 params; vec4 select_color; vec4 active_color; }; layout(std140) uniform OutlineU_block_0Fragment { OutlineU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_2_fs; layout(location = 0) out vec4 _fs2p_location0; uvec4 to_bytes(vec4 v) { return uvec4(roundEven((clamp(v, vec4(0.0), vec4(1.0)) * 255.0))); } uint id_at(ivec2 p, ivec2 size) { bool local_5 = false; bool local_6 = false; bool local_7 = false; if (!((p.x < 0))) { local_5 = (p.y < 0); } else { local_5 = true; } bool _e12 = local_5; if (!(_e12)) { local_6 = (p.x >= size.x); } else { local_6 = true; } bool _e20 = local_6; if (!(_e20)) { local_7 = (p.y >= size.y); } else { local_7 = true; } bool _e28 = local_7; if (_e28) { return 0u; } vec4 _e32 = texelFetch(_group_0_binding_2_fs, p, 0); uvec4 _e33 = to_bytes(_e32); return ((_e33.x | (_e33.y << 8u)) | (_e33.z << 16u)); } uint bits_at(ivec2 p_1, ivec2 size_1) { bool local_8 = false; bool local_9 = false; bool local_10 = false; if (!((p_1.x < 0))) { local_8 = (p_1.y < 0); } else { local_8 = true; } bool _e12 = local_8; if (!(_e12)) { local_9 = (p_1.x >= size_1.x); } else { local_9 = true; } bool _e20 = local_9; if (!(_e20)) { local_10 = (p_1.y >= size_1.y); } else { local_10 = true; } bool _e28 = local_10; if (_e28) { return 0u; } vec4 _e32 = texelFetch(_group_0_binding_2_fs, p_1, 0); uvec4 _e33 = to_bytes(_e32); return _e33.w; } bool sel(uint id, uint bits) { bool local_11 = false; if ((id != 0u)) { local_11 = ((bits & 1u) != 0u); } else { local_11 = false; } bool _e11 = local_11; return _e11; } uint mark(ivec2 p_2, ivec2 size_2) { ivec2 nb[4] = ivec2[4](ivec2(0), ivec2(0), ivec2(0), ivec2(0)); int k = 0; int k_1 = 0; bool local_12 = false; uint _e2 = id_at(p_2, size_2); uint _e3 = bits_at(p_2, size_2); nb = ivec2[4]((p_2 + ivec2(-1, 0)), (p_2 + ivec2(1, 0)), (p_2 + ivec2(0, -1)), (p_2 + ivec2(0, 1))); bool _e22 = sel(_e2, _e3); if (_e22) { bool loop_init = true; while(true) { if (!loop_init) { int _e41 = k; k = (_e41 + 1); } loop_init = false; int _e25 = k; if ((_e25 < 4)) { } else { break; } { int _e28 = k; ivec2 _e30 = nb[_e28]; uint _e31 = id_at(_e30, size_2); if ((_e31 != _e2)) { return (((_e3 & 2u) != 0u) ? 2u : 1u); } } } return 0u; } bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e71 = k_1; k_1 = (_e71 + 1); } loop_init_1 = false; int _e46 = k_1; if ((_e46 < 4)) { } else { break; } { int _e49 = k_1; ivec2 _e51 = nb[_e49]; uint _e52 = id_at(_e51, size_2); int _e53 = k_1; ivec2 _e55 = nb[_e53]; uint _e56 = bits_at(_e55, size_2); bool _e57 = sel(_e52, _e56); if (_e57) { local_12 = (_e52 != _e2); } else { local_12 = false; } bool _e62 = local_12; if (_e62) { return (((_e56 & 2u) != 0u) ? 2u : 1u); } } } return 0u; } vec3 linear_to_srgb(vec3 c_1) { vec3 lo = (c_1 * 12.92); vec3 hi = ((1.055 * pow(c_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.0031308))); } void main() { vec4 pos = gl_FragCoord; int dy = 0; int dx = 0; bool local = false; bool local_1 = false; bool local_2 = false; vec4 c = vec4(0.0); bool local_3 = false; bool local_4 = false; ivec2 q = ivec2(floor(pos.xy)); ivec2 size_3 = ivec2(uvec2(textureSize(_group_0_binding_1_fs, 0).xy)); uint _e10 = _group_0_binding_0_fs.params.x; if ((_e10 == 1u)) { uint _e16 = _group_0_binding_0_fs.params.y; int r = int(_e16); dy = r; bool loop_init_2 = true; while(true) { if (!loop_init_2) { int _e72 = dy; dy = (_e72 - 1); } loop_init_2 = false; int _e19 = dy; if ((_e19 >= -(r))) { } else { break; } { dx = r; bool loop_init_3 = true; while(true) { if (!loop_init_3) { int _e69 = dx; dx = (_e69 - 1); } loop_init_3 = false; int _e23 = dx; if ((_e23 >= -(r))) { } else { break; } { int _e26 = dx; int _e27 = dy; ivec2 p_3 = (q + ivec2(_e26, _e27)); if (!((p_3.x < 0))) { local = (p_3.y < 0); } else { local = true; } bool _e40 = local; if (!(_e40)) { local_1 = (p_3.x >= size_3.x); } else { local_1 = true; } bool _e48 = local_1; if (!(_e48)) { local_2 = (p_3.y >= size_3.y); } else { local_2 = true; } bool _e56 = local_2; if (_e56) { continue; } uint _e57 = mark(p_3, size_3); if ((_e57 == 1u)) { vec4 _e62 = _group_0_binding_0_fs.select_color; _fs2p_location0 = _e62; return; } if ((_e57 == 2u)) { vec4 _e67 = _group_0_binding_0_fs.active_color; _fs2p_location0 = _e67; return; } } } } } } vec4 _e76 = texelFetch(_group_0_binding_1_fs, q, 0); c = clamp(_e76, vec4(0.0), vec4(1.0)); uint _e86 = _group_0_binding_0_fs.params.w; if ((_e86 == 1u)) { float _e92 = c.w; local_3 = (_e92 > 0.0); } else { local_3 = false; } bool _e96 = local_3; if (_e96) { float _e100 = c.w; local_4 = (_e100 < 1.0); } else { local_4 = false; } bool _e104 = local_4; if (_e104) { vec4 _e105 = c; float _e108 = c.w; float _e117 = c.w; c = vec4(min((_e105.xyz / vec3(max(_e108, 1e-6))), vec3(1.0)), _e117); } uint _e122 = _group_0_binding_0_fs.params.z; if ((_e122 == 1u)) { vec4 _e125 = c; vec3 _e127 = linear_to_srgb(_e125.xyz); float _e129 = c.w; _fs2p_location0 = vec4(_e127, _e129); return; } vec4 _e131 = c; _fs2p_location0 = _e131; return; }  0d"8� &­ÏOutlineU_block_0Fragment_group_0_binding_2_fs_group_0_binding_1_fsvs_fullvs_full fs_outline fs_outlineÛ*// language: metal2.2 #include #include using metal::uint; struct OutlineU { metal::uint4 params; metal::float4 select_color; metal::float4 active_color; }; struct type_5 { metal::float2 inner[3]; }; struct type_9 { metal::int2 inner[4]; }; metal::uint4 naga_f2u32(metal::float4 value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::uint4 to_bytes( metal::float4 v ) { return naga_f2u32(metal::rint(metal::clamp(v, metal::float4(0.0), metal::float4(1.0)) * 255.0)); } uint id_at( metal::int2 p, metal::int2 size, metal::texture2d ids ) { bool local_5 = {}; bool local_6 = {}; bool local_7 = {}; if (!((p.x < 0))) { local_5 = p.y < 0; } else { local_5 = true; } bool _e12 = local_5; if (!(_e12)) { local_6 = p.x >= size.x; } else { local_6 = true; } bool _e20 = local_6; if (!(_e20)) { local_7 = p.y >= size.y; } else { local_7 = true; } bool _e28 = local_7; if (_e28) { return 0u; } uint clamped_lod_e32 = metal::min(uint(0), ids.get_num_mip_levels() - 1); metal::float4 _e32 = ids.read(metal::min(metal::uint2(p), metal::uint2(ids.get_width(clamped_lod_e32), ids.get_height(clamped_lod_e32)) - 1), clamped_lod_e32); metal::uint4 _e33 = to_bytes(_e32); return (_e33.x | (_e33.y << 8u)) | (_e33.z << 16u); } uint bits_at( metal::int2 p_1, metal::int2 size_1, metal::texture2d ids ) { bool local_8 = {}; bool local_9 = {}; bool local_10 = {}; if (!((p_1.x < 0))) { local_8 = p_1.y < 0; } else { local_8 = true; } bool _e12 = local_8; if (!(_e12)) { local_9 = p_1.x >= size_1.x; } else { local_9 = true; } bool _e20 = local_9; if (!(_e20)) { local_10 = p_1.y >= size_1.y; } else { local_10 = true; } bool _e28 = local_10; if (_e28) { return 0u; } uint clamped_lod_e32 = metal::min(uint(0), ids.get_num_mip_levels() - 1); metal::float4 _e32 = ids.read(metal::min(metal::uint2(p_1), metal::uint2(ids.get_width(clamped_lod_e32), ids.get_height(clamped_lod_e32)) - 1), clamped_lod_e32); metal::uint4 _e33 = to_bytes(_e32); return _e33.w; } bool sel( uint id, uint bits ) { bool local_11 = {}; if (id != 0u) { local_11 = (bits & 1u) != 0u; } else { local_11 = false; } bool _e11 = local_11; return _e11; } uint mark( metal::int2 p_2, metal::int2 size_2, metal::texture2d ids ) { type_9 nb = {}; int k = 0; int k_1 = 0; bool local_12 = {}; uint _e2 = id_at(p_2, size_2, ids); uint _e3 = bits_at(p_2, size_2, ids); nb = type_9 {{as_type(as_type(p_2) + as_type(metal::int2(-1, 0))), as_type(as_type(p_2) + as_type(metal::int2(1, 0))), as_type(as_type(p_2) + as_type(metal::int2(0, -1))), as_type(as_type(p_2) + as_type(metal::int2(0, 1)))}}; bool _e22 = sel(_e2, _e3); if (_e22) { uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e41 = k; k = as_type(as_type(_e41) + as_type(1)); } loop_init = false; int _e25 = k; if (_e25 < 4) { } else { break; } { int _e28 = k; metal::int2 _e30 = nb.inner[metal::min(unsigned(_e28), 3u)]; uint _e31 = id_at(_e30, size_2, ids); if (_e31 != _e2) { return ((_e3 & 2u) != 0u) ? 2u : 1u; } } } return 0u; } uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { int _e71 = k_1; k_1 = as_type(as_type(_e71) + as_type(1)); } loop_init_1 = false; int _e46 = k_1; if (_e46 < 4) { } else { break; } { int _e49 = k_1; metal::int2 _e51 = nb.inner[metal::min(unsigned(_e49), 3u)]; uint _e52 = id_at(_e51, size_2, ids); int _e53 = k_1; metal::int2 _e55 = nb.inner[metal::min(unsigned(_e53), 3u)]; uint _e56 = bits_at(_e55, size_2, ids); bool _e57 = sel(_e52, _e56); if (_e57) { local_12 = _e52 != _e2; } else { local_12 = false; } bool _e62 = local_12; if (_e62) { return ((_e56 & 2u) != 0u) ? 2u : 1u; } } } return 0u; } metal::float3 linear_to_srgb( metal::float3 c_1 ) { metal::float3 lo = c_1 * 12.92; metal::float3 hi = (1.055 * metal::pow(c_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi, lo, c_1 <= metal::float3(0.0031308)); } struct vs_fullInput { }; struct vs_fullOutput { metal::float4 member [[position]]; }; vertex vs_fullOutput vs_full( uint vi [[vertex_id]] ) { type_5 pts = type_5 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; metal::float2 _e13 = pts.inner[metal::min(unsigned(vi), 2u)]; return vs_fullOutput { metal::float4(_e13, 0.0, 1.0) }; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } int naga_neg(int val) { return as_type(-as_type(val)); } struct fs_outlineInput { }; struct fs_outlineOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_outlineOutput fs_outline( metal::float4 pos [[position]] , constant OutlineU& U [[buffer(0)]] , metal::texture2d color [[texture(0)]] , metal::texture2d ids [[texture(1)]] ) { int dy = {}; int dx = {}; bool local = {}; bool local_1 = {}; bool local_2 = {}; metal::float4 c = {}; bool local_3 = {}; bool local_4 = {}; metal::int2 q = naga_f2i32(metal::floor(pos.xy)); metal::int2 size_3 = static_cast(metal::uint2(color.get_width(), color.get_height())); uint _e10 = U.params.x; if (_e10 == 1u) { uint _e16 = U.params.y; int r = static_cast(_e16); dy = r; uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { int _e72 = dy; dy = as_type(as_type(_e72) - as_type(1)); } loop_init_2 = false; int _e19 = dy; if (_e19 >= naga_neg(r)) { } else { break; } { dx = r; uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { int _e69 = dx; dx = as_type(as_type(_e69) - as_type(1)); } loop_init_3 = false; int _e23 = dx; if (_e23 >= naga_neg(r)) { } else { break; } { int _e26 = dx; int _e27 = dy; metal::int2 p_3 = as_type(as_type(q) + as_type(metal::int2(_e26, _e27))); if (!((p_3.x < 0))) { local = p_3.y < 0; } else { local = true; } bool _e40 = local; if (!(_e40)) { local_1 = p_3.x >= size_3.x; } else { local_1 = true; } bool _e48 = local_1; if (!(_e48)) { local_2 = p_3.y >= size_3.y; } else { local_2 = true; } bool _e56 = local_2; if (_e56) { continue; } uint _e57 = mark(p_3, size_3, ids); if (_e57 == 1u) { metal::float4 _e62 = U.select_color; return fs_outlineOutput { _e62 }; } if (_e57 == 2u) { metal::float4 _e67 = U.active_color; return fs_outlineOutput { _e67 }; } } } } } } uint clamped_lod_e76 = metal::min(uint(0), color.get_num_mip_levels() - 1); metal::float4 _e76 = color.read(metal::min(metal::uint2(q), metal::uint2(color.get_width(clamped_lod_e76), color.get_height(clamped_lod_e76)) - 1), clamped_lod_e76); c = metal::clamp(_e76, metal::float4(0.0), metal::float4(1.0)); uint _e86 = U.params.w; if (_e86 == 1u) { float _e92 = c.w; local_3 = _e92 > 0.0; } else { local_3 = false; } bool _e96 = local_3; if (_e96) { float _e100 = c.w; local_4 = _e100 < 1.0; } else { local_4 = false; } bool _e104 = local_4; if (_e104) { metal::float4 _e105 = c; float _e108 = c.w; float _e117 = c.w; c = metal::float4(metal::min(_e105.xyz / metal::float3(metal::max(_e108, 0.000001)), metal::float3(1.0)), _e117); } uint _e122 = U.params.z; if (_e122 == 1u) { metal::float4 _e125 = c; metal::float3 _e127 = linear_to_srgb(_e125.xyz); float _e129 = c.w; return fs_outlineOutput { metal::float4(_e127, _e129) }; } metal::float4 _e131 = c; return fs_outlineOutput { _e131 }; }  0d"8� &­Ïvs_fullmainÊstruct OutlineU { uint4 params; float4 select_color; float4 active_color; }; static const float2 _87[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static float4 gl_Position; static int gl_VertexIndex; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float4 gl_Position : SV_Position; }; void vert_main() { gl_Position = float4(_87[min(uint(gl_VertexIndex), 2u)], 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; return stage_output; }  fs_outlinemain�"struct OutlineU { uint4 params; float4 select_color; float4 active_color; }; static const int2 _184[4] = { int2(0, 0), int2(0, 0), int2(0, 0), int2(0, 0) }; cbuffer U : register(b0) { OutlineU U_1_m0 : packoffset(c0); }; Texture2D color : register(t0); Texture2D ids : register(t1); static float4 gl_FragCoord; static float4 _310; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _310 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint4 to_bytes(float4 v) { return uint4(clamp(round(clamp(v, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)) * 255.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(4294967040.0f, 4294967040.0f, 4294967040.0f, 4294967040.0f))); } uint id_at(int2 p, int2 size) { bool _52 = false; bool _55 = false; bool _57 = false; if (!(p.x < 0)) { _52 = p.y < 0; } else { _52 = true; } if (!_52) { _55 = p.x >= size.x; } else { _55 = true; } if (!_55) { _57 = p.y >= size.y; } else { _57 = true; } if (_57) { return 0u; } int _87; spvTextureSize(ids, 0u, _87); int _90 = int(min(uint(0), uint(int(_87) - 1))); uint _91_dummy_parameter; uint4 _96 = to_bytes(ids.Load(int3(int2(min(uint2(p), uint2(int2(spvTextureSize(ids, uint(_90), _91_dummy_parameter)) - int2(1, 1)))), _90))); return (_96.x | (_96.y << 8u)) | (_96.z << 16u); } uint bits_at(int2 p, int2 size) { bool _109 = false; bool _111 = false; bool _113 = false; if (!(p.x < 0)) { _109 = p.y < 0; } else { _109 = true; } if (!_109) { _111 = p.x >= size.x; } else { _111 = true; } if (!_111) { _113 = p.y >= size.y; } else { _113 = true; } if (_113) { return 0u; } int _143; spvTextureSize(ids, 0u, _143); int _145 = int(min(uint(0), uint(int(_143) - 1))); uint _146_dummy_parameter; return to_bytes(ids.Load(int3(int2(min(uint2(p), uint2(int2(spvTextureSize(ids, uint(_145), _146_dummy_parameter)) - int2(1, 1)))), _145))).w; } bool sel(uint id, uint bits) { bool _160 = false; if (id != 0u) { _160 = (bits & 1u) != 0u; } else { _160 = false; } return _160; } uint mark(int2 p, int2 size) { int k = 0; bool _188 = false; int2 nb[4] = _184; int k_1 = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint _191 = id_at(p, size); uint _192 = bits_at(p, size); int2 _197[4] = { p + int2(-1, 0), p + int2(1, 0), p + int2(0, -1), p + int2(0, 1) }; nb = _197; if (sel(_191, _192)) { for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < 4)) { break; } if (id_at(nb[min(uint(k), 3u)], size) != _191) { return ((_192 & 2u) != 0u) ? 2u : 1u; } k++; continue; } return 0u; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(k_1 < 4)) { break; } uint _267 = id_at(nb[min(uint(k_1), 3u)], size); uint _272 = bits_at(nb[min(uint(k_1), 3u)], size); if (sel(_267, _272)) { _188 = _267 != _191; } else { _188 = false; } if (_188) { return ((_272 & 2u) != 0u) ? 2u : 1u; } k_1++; continue; } return 0u; } float3 linear_to_srgb(float3 c) { float3 _299 = c * 12.9200000762939453125f; float3 _302 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _304 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_304.x ? _299.x : _302.x, _304.y ? _299.y : _302.y, _304.z ? _299.z : _302.z); } void frag_main() { bool _333 = false; bool _326 = false; bool _335 = false; bool _328 = false; float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); bool _324 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); int2 _345 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); uint _346_dummy_parameter; int2 _347 = int2(spvTextureSize(color, 0u, _346_dummy_parameter)); if (U_1_m0.params.x == 1u) { int _357 = int(U_1_m0.params.y); int dy = _357; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(dy >= (-_357))) { break; } int dx = _357; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dx >= (-_357))) { break; } int _402 = dx; int2 _405 = _345 + int2(_402, dy); if (!(_405.x < 0)) { _324 = _405.y < 0; } else { _324 = true; } if (!_324) { _326 = _405.x >= _347.x; } else { _326 = true; } if (!_326) { _328 = _405.y >= _347.y; } else { _328 = true; } if (_328) { int _445 = dx; dx = _445 - 1; continue; } uint _433 = mark(_405, _347); if (_433 == 1u) { _310 = U_1_m0.select_color; return; } if (_433 == 2u) { _310 = U_1_m0.active_color; return; } int _445 = dx; dx = _445 - 1; continue; } dy--; continue; } } int _449; spvTextureSize(color, 0u, _449); int _451 = int(min(uint(0), uint(int(_449) - 1))); uint _452_dummy_parameter; c = clamp(color.Load(int3(int2(min(uint2(_345), uint2(int2(spvTextureSize(color, uint(_451), _452_dummy_parameter)) - int2(1, 1)))), _451)), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if (U_1_m0.params.w == 1u) { _333 = c.w > 0.0f; } else { _333 = false; } if (_333) { _335 = c.w < 1.0f; } else { _335 = false; } if (_335) { float _482 = max(c.w, 9.9999999747524270787835121154785e-07f); c = float4(min(c.xyz / float3(_482, _482, _482), float3(1.0f, 1.0f, 1.0f)), c.w); } if (U_1_m0.params.z == 1u) { _310 = float4(linear_to_srgb(c.xyz), c.w); return; } _310 = c; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._310 = _310; return stage_output; }  0d"8� &­ÏHSLTOutlineU0paramsÿÿÿÿ select_colorÿÿÿÿ active_color ÿÿÿÿU_block0Ucolorÿÿÿÿidsÿÿÿÿvs_fullvs_full fs_outline fs_outline°+# 2 GLSL.std.4508vs_full36Qfs_outlineMPQH#H#H# G GG"G!GH#G"G!G"G!G3 *G6 GM GP    +    +  ; ;;!+,+€?,+ C+%ÿÿO,&%%%%!- + /)0+1+2+3 5.6.8.:+ X, \XX.n.p.r, “XX!�*ž+Ÿ.¡+ ¯ÿÿÿÿ, °¯/, ±X/, ²/¯, ³/X+ ´+µ ·.¸ º .½Í ÎÍÏ,ÍÐ11+Ñÿÿÿÿ,ÍÒÑÑ å !!+"R¸NA+#UUÕ>,$###+%= ‡?+&®Ga=,'&&&+(.M;,)(((/ 4;43 7;76!9+:€¿, ;::+<@@, =<:, >:<, ?;=> A C H N;NM;7P R+V½7†5,W. Y. [.]._.a c.d.f.h+lÏ, mll+nÿÿÿN, onn t u Í, ÝXX è67øù!ø! "+Ž#" $# '+$&m('þ(86,-7 *7 +ø);546;578;59:=.ù;ø;Q <*±=</¨>=÷?ú>@Aø@Q B*±CB/>4Cù?øA>40ù?ø?=D4¨ED÷FúEGHøGQ I*Q J+¯KIJ>7KùFøH>70ùFøF=L7¨ML÷NúMOPøOQ Q*Q R+¯SQR>9SùNøP>90ùNøN=T9÷UúTVUøVþ1øUj W.‚ YWX  Z&/Yg [.Z‚ ][\  ^&*]__.^Z9`_Qa`Qb`Äcb2ÅdacQe`Äfe3Ågdfþg86k-7 i7 jøh;5mn;5op;5qr=lùsøsQ ti±ut/¨vu÷wúvxyøxQ zi±{z/>m{ùwøy>m0ùwøw=|m¨}|÷~ú}€øQ �iQ ‚j¯ƒ�‚>oƒù~ø€>o0ù~ø~=„o¨…„÷†ú…‡ˆø‡Q ‰iQ Šj¯‹‰Š>q‹ù†øˆ>q0ù†ø†=Œq÷�úŒŽ�øŽþ1ø�j �l‚ ��X  ‘&/�g ’l‘‚ ”’“  •&i”_–l•‘9—–Q˜—þ˜86œ�7š7›ø™;5 ¡ù¢ø¢«£š1÷¤ú£¥¦ø¥Ç§›Ÿ«¨§1> ¨ù¤ø¦> žù¤ø¤=© þ©86­-7 «7 ¬øª;º¹/;5¼½;·¶¸;º»/;ÎÓÒ;ÎöÒ=®ù¾ø¾9¿,«¬9Àk«¬€ Á«°€ «±€ ë²€ Ä«³PÅÁÂÃÄ>¶Å9Æœ¿À÷ÇúÆÈÇøÈùÉøÉöÊÌùÔøÔ=ÍÕÓªÏÖÐÕ›×Ö÷Øú×ÊØøØQÙÕªÚÙ1©ÛÚŸ1PÍÜÛŸ‚ÍÝÕÜ>ÓÝùËøË= Þ¹±ßÞ´÷àúßàáøáùÊøàùâøâ= ä¹ æ&ä Aåç¶æ= èç9é,謫êé¿÷ëúêìëøìÇíÀµ«îí1©ïþïøëùãøãùÌøÌ= ð¹€ ñðX>¹ñùÉøÊþ1øÇùòøòöóõù÷ø÷=ÍøöªÏùÐø›úù÷ûúúóûøûQüøªýü1©þýŸ1PÍÿþŸ‚Íøÿ>öùôøô= »±´÷úøùóøùø= » & Aå ¶=  9 , ¬= »  &  Aå¶ = 9k¬9œ ÷úø« ¿>¼ùø>¼žùø=¼÷úøÇµ«1©µŸþøùøùõøõ= »€ X>»ùòøóþ186 !7øù*ø*Ž+" ,$Ž-,%ƒ.-'¼/0)©10+.þ18689ø2;A@?=53ùBøB D&5µACE@D= FEPGF>6GAHI6Ÿ=JIKJ>IKý86Q9øL;5ef;5^_;ºXY;5gh;5`a;ºZ[;cbd;5\];΂Ò;ΘÒ=OMARS1=T=UùiøiO jOO  kj  p+kmon qpgÍrT1| srAuvS11=wvªxwŸ÷yúxzyøzAu{S1Ÿ=|{| }|>X}ù~ø~ö�ùƒøƒ=Í„‚ªÏ…Є›†…÷‡ú†‡ø‡Qˆ„ª‰ˆ1©Š‰Ÿ1PÍ‹ŠŸ‚ÍŒ„‹>‚Œù€ø€= �X~ Ž}¯��Ž÷�ú��‘ø‘ùø�ù’ø’>Z}ù”ø”ö•—ù™ø™=Íš˜ªÏ›К›œ›÷�úœ•�ø�QžšªŸž1© ŸŸ1PÍ¡ Ÿ‚Í¢š¡>˜¢ù–ø–= £Z~ ¤}¯¥£¤÷¦ú¥¦§ø§ù•ø¦ù¨ø¨= ªZ= «XP ¬ª«€ ­q¬Q ®­±¯®/¨°¯÷±ú°²³ø²Q ´­±µ´/>\µù±ø³>\0ù±ø±=¶\¨·¶÷¸ú·¹ºø¹Q »­Q ¼s¯½»¼>^½ù¸øº>^0ù¸ø¸=¾^¨¿¾÷Àú¿ÁÂøÁQ íQ Äs¯ÅÃÄ>`ÅùÀøÂ>`0ùÀøÀ=Æ`÷ÇúÆÈÇøÈù—øÇ9É­­sªÊÉŸ÷ËúÊÌËøÌAÍÎSŸ=ÏÎ>PÏýøËªÐɵ÷ÑúÐÒÑøÒAÍÓSµ=ÔÓ>PÔýøÑù©ø©ù—ø—= ÕZ‚ ÖÕX>ZÖù”ø•ù“ø“ù�ø�= ×X‚ Ø×X>XØù~øùyøyj ÙT‚ ÚÙX  Û&/Úg ÜTÛ‚ ÞÜÝ  ß&qÞ_àTßÛ á+à>báAuâS1 =ãâªäãŸ÷åúäæçøæAèéb =êéºëê>eëùåøç>ežùåøå=ìe÷íúìîïøîAèðb =ñð¸òñ>gòùíøï>gžùíøí=óg÷ôúóõôøõ=öbO÷ööAèøb =ùø ú(ùVPûúúúˆü÷û ý%üWAèþb =ÿþPýÿ>bùôøôAuS1µ=ªŸ÷úø=bO9 Aè b =  P  >P ýø= b>P ý8 0ÆÇJŒÆé˶ÊË'hedra_engine/shaders/render/post_screenjÔâgBTSR ii'�¬ < 'c f ‚ ç i'�Ö f&'�&©&J ó2': vs_screenfs_screen_copyfs_screen_down t_src vs_screen vs_screenfs_screen_copyfs_screen_copyfs_screen_downfs_screen_down @group(0) @binding(0) var t_src: texture_2d; @vertex fn vs_screen(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4 { var pts: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); let _e13 = pts[vi]; return vec4(_e13, 0f, 1f); } @fragment fn fs_screen_copy(@builtin(position) pos: vec4) -> @location(0) vec4 { let _e6 = textureLoad(t_src, vec2(floor(pos.xy)), 0i); return _e6; } @fragment fn fs_screen_down(@builtin(position) pos_1: vec4) -> @location(0) vec4 { let _e3 = textureDimensions(t_src, 0i); let last = (vec2(_e3) - vec2(1i)); let p = (vec2(floor(pos_1.xy)) * 2i); let a = textureLoad(t_src, min(p, last), 0i); let b = textureLoad(t_src, min((p + vec2(1i, 0i)), last), 0i); let c = textureLoad(t_src, min((p + vec2(0i, 1i)), last), 0i); let d = textureLoad(t_src, min((p + vec2(1i, 1i)), last), 0i); return ((((a + b) + c) + d) * 0.25f); }  ö½úT®ø  vs_screenmain]#version 300 es precision highp float; precision highp int; void main() { uint vi = uint(gl_VertexID); vec2 pts[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); vec2 _e13 = pts[vi]; gl_Position = vec4(_e13, 0.0, 1.0); gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_screen_copymain>#version 300 es precision highp float; precision highp int; uniform highp sampler2D _group_0_binding_0_fs; layout(location = 0) out vec4 _fs2p_location0; void main() { vec4 pos = gl_FragCoord; vec4 _e6 = texelFetch(_group_0_binding_0_fs, ivec2(floor(pos.xy)), 0); _fs2p_location0 = _e6; return; } fs_screen_downmainÄ#version 300 es precision highp float; precision highp int; uniform highp sampler2D _group_0_binding_0_fs; layout(location = 0) out vec4 _fs2p_location0; void main() { vec4 pos_1 = gl_FragCoord; ivec2 last = (ivec2(uvec2(textureSize(_group_0_binding_0_fs, 0).xy)) - ivec2(1)); ivec2 p = (ivec2(floor(pos_1.xy)) * 2); vec4 a = texelFetch(_group_0_binding_0_fs, min(p, last), 0); vec4 b = texelFetch(_group_0_binding_0_fs, min((p + ivec2(1, 0)), last), 0); vec4 c = texelFetch(_group_0_binding_0_fs, min((p + ivec2(0, 1)), last), 0); vec4 d = texelFetch(_group_0_binding_0_fs, min((p + ivec2(1, 1)), last), 0); _fs2p_location0 = ((((a + b) + c) + d) * 0.25); return; }  ö½úT®ø _group_0_binding_0_fs vs_screen vs_screenfs_screen_copyfs_screen_copyfs_screen_downfs_screen_down‰ // language: metal2.2 #include #include using metal::uint; struct type_4 { metal::float2 inner[3]; }; struct vs_screenInput { }; struct vs_screenOutput { metal::float4 member [[position]]; }; vertex vs_screenOutput vs_screen( uint vi [[vertex_id]] ) { type_4 pts = type_4 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; metal::float2 _e13 = pts.inner[metal::min(unsigned(vi), 2u)]; return vs_screenOutput { metal::float4(_e13, 0.0, 1.0) }; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } struct fs_screen_copyInput { }; struct fs_screen_copyOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_screen_copyOutput fs_screen_copy( metal::float4 pos [[position]] , metal::texture2d t_src [[texture(0)]] ) { uint clamped_lod_e6 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 _e6 = t_src.read(metal::min(metal::uint2(naga_f2i32(metal::floor(pos.xy))), metal::uint2(t_src.get_width(clamped_lod_e6), t_src.get_height(clamped_lod_e6)) - 1), clamped_lod_e6); return fs_screen_copyOutput { _e6 }; } struct fs_screen_downInput { }; struct fs_screen_downOutput { metal::float4 member_2 [[color(0)]]; }; fragment fs_screen_downOutput fs_screen_down( metal::float4 pos_1 [[position]] , metal::texture2d t_src [[texture(0)]] ) { metal::int2 last = as_type(as_type(static_cast(metal::uint2(t_src.get_width(0), t_src.get_height(0)))) - as_type(metal::int2(1))); metal::int2 p = as_type(as_type(naga_f2i32(metal::floor(pos_1.xy))) * as_type(2)); uint clamped_lod_e16 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 a = t_src.read(metal::min(metal::uint2(metal::min(p, last)), metal::uint2(t_src.get_width(clamped_lod_e16), t_src.get_height(clamped_lod_e16)) - 1), clamped_lod_e16); uint clamped_lod_e24 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 b = t_src.read(metal::min(metal::uint2(metal::min(as_type(as_type(p) + as_type(metal::int2(1, 0))), last)), metal::uint2(t_src.get_width(clamped_lod_e24), t_src.get_height(clamped_lod_e24)) - 1), clamped_lod_e24); uint clamped_lod_e32 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 c = t_src.read(metal::min(metal::uint2(metal::min(as_type(as_type(p) + as_type(metal::int2(0, 1))), last)), metal::uint2(t_src.get_width(clamped_lod_e32), t_src.get_height(clamped_lod_e32)) - 1), clamped_lod_e32); uint clamped_lod_e40 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 d = t_src.read(metal::min(metal::uint2(metal::min(as_type(as_type(p) + as_type(metal::int2(1, 1))), last)), metal::uint2(t_src.get_width(clamped_lod_e40), t_src.get_height(clamped_lod_e40)) - 1), clamped_lod_e40); return fs_screen_downOutput { (((a + b) + c) + d) * 0.25 }; }  ö½úT®ø  vs_screenmainpstatic const float2 _25[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static float4 gl_Position; static int gl_VertexIndex; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float4 gl_Position : SV_Position; }; void vert_main() { gl_Position = float4(_25[min(uint(gl_VertexIndex), 2u)], 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; return stage_output; } fs_screen_copymain Texture2D t_src : register(t0); static float4 gl_FragCoord; static float4 _18; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _18 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } void frag_main() { int _33; spvTextureSize(t_src, 0u, _33); int _36 = int(min(uint(0), uint(int(_33) - 1))); uint _37_dummy_parameter; _18 = t_src.Load(int3(int2(min(uint2(int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_src, uint(_36), _37_dummy_parameter)) - int2(1, 1)))), _36)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._18 = _18; return stage_output; } fs_screen_downmainTexture2D t_src : register(t0); static float4 gl_FragCoord; static float4 _18; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _18 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } void frag_main() { uint _33_dummy_parameter; int2 _35 = int2(spvTextureSize(t_src, uint(0), _33_dummy_parameter)) - int2(1, 1); int2 _44 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))) * int2(2, 2); int _47; spvTextureSize(t_src, 0u, _47); int _49 = int(min(uint(0), uint(int(_47) - 1))); uint _50_dummy_parameter; int _57; spvTextureSize(t_src, 0u, _57); int _59 = int(min(uint(0), uint(int(_57) - 1))); uint _60_dummy_parameter; int _67; spvTextureSize(t_src, 0u, _67); int _69 = int(min(uint(0), uint(int(_67) - 1))); uint _70_dummy_parameter; int _77; spvTextureSize(t_src, 0u, _77); int _79 = int(min(uint(0), uint(int(_77) - 1))); uint _80_dummy_parameter; _18 = (((t_src.Load(int3(int2(min(uint2(min(_44, _35)), uint2(int2(spvTextureSize(t_src, uint(_49), _50_dummy_parameter)) - int2(1, 1)))), _49)) + t_src.Load(int3(int2(min(uint2(min((_44 + int2(1, 0)), _35)), uint2(int2(spvTextureSize(t_src, uint(_59), _60_dummy_parameter)) - int2(1, 1)))), _59))) + t_src.Load(int3(int2(min(uint2(min((_44 + int2(0, 1)), _35)), uint2(int2(spvTextureSize(t_src, uint(_69), _70_dummy_parameter)) - int2(1, 1)))), _69))) + t_src.Load(int3(int2(min(uint2(min((_44 + int2(1, 1)), _35)), uint2(int2(spvTextureSize(t_src, uint(_79), _80_dummy_parameter)) - int2(1, 1)))), _79))) * 0.25f; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._18 = _18; return stage_output; }  ö½úT®ø HSLTt_srcÿÿÿÿ vs_screen vs_screenfs_screen_copyfs_screen_copyfs_screen_downfs_screen_downì #ˆ2 GLSL.std.450vs_screen 1fs_screen_copy-0 Jfs_screen_downGI1JGG "G !G *G G- G0GG GI   +      ; ; ;!+€¿,+@@,,,++€?  !+" '+( .;.-;0+ 3+7Ï,877+9ÿÿÿN,:99+ >, B>>;.G;I, L>>+ M, N>3, O3>, P>>+Q€>S, b>>, l>>, v>>, €>>6ø;=ù ø #&"A!$#=%$P&%>&A')(=*)+*>)+ý861ø,=/-=2 ù4ø4O5// 65 ;+68:n <;j =2‚ ?=>  @&3?g A2@‚ CAB  D&<C_E2D@>0Eý86JøF=HG=K ùRøRgSTK3| UT‚ VULOWHH XW Y+X8:n ZYP \MM„ [Z\  ]'[Vj ^K‚ _^>  `&3_g aK`‚ cab  d&]c_eKd`€ f[N  g'fVj hK‚ ih>  j&3ig kKj‚ mkl  n&gm_oKnj€ p[O  q'pVj rK‚ sr>  t&3sg uKt‚ wuv  x&qw_yKxt€ z[P  {'zVj |K‚ }|>  ~&3}g K~‚ �€  ‚&{�_ƒK‚~�„eo�…„y�†…ƒŽ‡†Q>I‡ý8 ö½úT®ø ÊË$hedra_engine/shaders/render/post_ssrjÔ¼ÞBTSR É0É0“\1>W šˆ“-‰0‰˜ȉ"H êÑ“}ÒG �“"7AR xm“^vs_ssrfs_ssr_nd_half fs_ssr_trace fs_ssr_mergeGUt_nd t_surfacet_screens_lineart_ssrt_marchvs_ssrvs_ssrfs_ssr_nd_halffs_ssr_nd_half fs_ssr_trace fs_ssr_trace fs_ssr_merge fs_ssr_mergeX0struct SsrU { size: vec4, cam: vec4, march: vec4, flags: vec4, proj: mat4x4, inv_proj: mat4x4, } const SSR_REFINE_STEPS: i32 = 4i; const SSR_FACING: f32 = 0.001f; const SSR_FAR_GUARD: f32 = 0.95f; const ROUGH_DISABLED: u32 = 0u; const ROUGH_LOW: u32 = 1u; const ROUGH_MEDIUM: u32 = 2u; const PI: f32 = 3.1415927f; @group(0) @binding(0) var U: SsrU; @group(0) @binding(1) var t_nd: texture_2d; @group(0) @binding(2) var t_surface: texture_2d; @group(0) @binding(3) var t_screen: texture_2d; @group(0) @binding(4) var s_linear: sampler; @group(0) @binding(5) var t_ssr: texture_2d; @group(0) @binding(6) var t_march: texture_2d; fn dither(p: vec2) -> f32 { var bayer: array = array(0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); let _e29 = bayer[(((p.y & 3i) * 4i) + (p.x & 3i))]; return (f32(_e29) / 16f); } fn source_px(t: vec2) -> vec2 { let _e3 = U.size; let _e8 = U.size; let _e16 = U.size; let s_1 = clamp(floor(((t * _e3.xy) / _e8.zw)), vec2(0f), (_e16.xy - vec2(1f))); return vec2(s_1); } fn march_at(t_1: vec2) -> vec4 { let _e5 = U.size; let c = clamp(t_1, vec2(0f), (_e5.zw - vec2(1f))); let _e14 = textureLoad(t_march, vec2(c), 0i); return _e14; } fn view_at(uv: vec2, d: f32) -> vec3 { let _e4 = U.inv_proj; let a4_ = (_e4 * vec4(((2f * uv.x) - 1f), (1f - (2f * uv.y)), 0f, 1f)); let a = (a4_.xyz / vec3(a4_.w)); let _e26 = U.cam.z; if (_e26 > 0.5f) { return vec3(a.xy, -(d)); } return (a * (d / -(a.z))); } fn to_target(p_1: vec3) -> vec3 { let _e3 = U.proj; let c_1 = (_e3 * vec4(p_1, 1f)); let n = (c_1.xy / vec2(c_1.w)); let _e19 = U.size.z; let _e29 = U.size.w; return vec3((((n.x * 0.5f) + 0.5f) * _e19), ((0.5f - (n.y * 0.5f)) * _e29), (1f / c_1.w)); } fn step_fade(taken_1: f32) -> f32 { var initial: f32 = 1f; let _e6 = U.march.x; let grad = clamp(((taken_1 + 1f) / max(_e6, 1f)), 0f, 1f); let _e18 = U.march.y; if (_e18 > 0f) { let _e24 = U.march.y; initial = pow(grad, _e24); } let _e33 = U.march.z; let _e37 = initial; let fade_1 = (pow(max((1f - grad), 0.000001f), max(_e33, 0f)) * _e37); return select(fade_1, 1f, (fade_1 > 0.999f)); } fn margin_fade(p_2: vec2, s: vec2) -> f32 { var local_3: bool; var local_4: bool; var local_5: bool; if !((p_2.x < 0f)) { local_3 = (p_2.y < 0f); } else { local_3 = true; } let _e12 = local_3; if !(_e12) { local_4 = (p_2.x > s.x); } else { local_4 = true; } let _e20 = local_4; if !(_e20) { local_5 = (p_2.y > s.y); } else { local_5 = true; } let _e28 = local_5; if _e28 { return 0f; } let m = ((s.x + s.y) * 0.05f); let g = select((s - p_2), p_2, (p_2 < (s * 0.5f))); return smoothstep(0f, (m * m), (g.x * g.y)); } fn merge_weight(f0_: vec3, nv: f32, fade: f32) -> vec4 { let m_1 = clamp((1f - nv), 0f, 1f); let m5_ = ((((m_1 * m_1) * m_1) * m_1) * m_1); let f = (f0_ + ((vec3(1f) - f0_) * m5_)); let a_1 = clamp(fade, 0f, 1f); return vec4((f * a_1), (max(max(f.x, f.y), f.z) * a_1)); } fn ray_depth(zb: f32, dz: f32, wb: f32, dw: f32, k_1: f32) -> f32 { return (-((zb + (dz * k_1))) / (wb + (dw * k_1))); } fn ssr_colour(uv_1: vec2, dist: f32, rough: f32, turn: f32) -> vec3 { var local_6: bool; var sum_1: vec3 = vec3(0f); var i_1: i32 = 0i; let q = U.flags.x; let levels = U.march.w; if !((q == ROUGH_DISABLED)) { local_6 = (levels <= 1f); } else { local_6 = true; } let _e20 = local_6; if _e20 { let _e24 = textureSampleLevel(t_screen, s_linear, uv_1, 0f); return _e24.xyz; } let blur = ((dist * rough) * rough); let lod = clamp(log2(max(1f, blur)), 0f, (levels - 1f)); if (q == ROUGH_LOW) { let _e39 = textureSampleLevel(t_screen, s_linear, uv_1, lod); return _e39.xyz; } let count = select(8i, 4i, (q == ROUGH_MEDIUM)); let level = max((lod - 1f), 0f); let _e55 = U.size; let reach = (vec2((0.5f * blur)) / _e55.xy); loop { let _e63 = i_1; if (_e63 < count) { } else { break; } { let _e66 = i_1; let a_2 = ((6.2831855f * (f32(_e66) + turn)) / f32(count)); let _e72 = sum_1; let _e80 = textureSampleLevel(t_screen, s_linear, (uv_1 + (vec2(cos(a_2), sin(a_2)) * reach)), level); sum_1 = (_e72 + _e80.xyz); } continuing { let _e84 = i_1; i_1 = (_e84 + 1i); } } let _e86 = sum_1; return (_e86 / vec3(f32(count))); } @vertex fn vs_ssr(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4 { var pts: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); let _e13 = pts[vi]; return vec4(_e13, 0f, 1f); } @fragment fn fs_ssr_nd_half(@builtin(position) frag: vec4) -> @location(0) vec4 { let _e7 = source_px((floor(frag.xy) + vec2(0.5f))); let _e9 = textureLoad(t_nd, _e7, 0i); return _e9; } @fragment fn fs_ssr_trace(@builtin(position) frag_1: vec4) -> @location(0) vec4 { var v: vec3 = vec3(0f, 0f, -1f); var len: f32; var t_prev: f32 = 0f; var zr_from: f32; var t_hit: f32 = -1f; var taken: i32 = 0i; var i: i32 = 0i; var local: bool; var local_1: bool; var lo: f32; var hi: f32; var k: i32 = 0i; var local_2: bool; let p_3 = vec2(floor(frag_1.xy)); let _e6 = U.size; let ts = _e6.zw; let _e12 = source_px((vec2(p_3) + vec2(0.5f))); let nd = textureLoad(t_nd, _e12, 0i); if (nd.w <= 0f) { return vec4(0f); } let surf = textureLoad(t_surface, _e12, 0i); let rf = smoothstep(0.4f, 0.7f, (1f - surf.w)); if (rf <= 0f) { return vec4(0f); } let n_1 = normalize(nd.xyz); let _e42 = U.size; let _e46 = view_at(((vec2(_e12) + vec2(0.5f)) / _e42.xy), nd.w); let _e55 = U.cam.z; if (_e55 <= 0.5f) { v = normalize(_e46); } let _e59 = v; let r = normalize(reflect(_e59, n_1)); if (dot(r, n_1) < SSR_FACING) { return vec4(0f); } let z_near = U.cam.x; let z_far = U.cam.y; len = z_far; if ((_e46.z + (r.z * z_far)) > -(z_near)) { len = ((-(z_near) - _e46.z) / r.z); } let _e87 = len; let pe = (_e46 + (r * _e87)); let _e90 = to_target(_e46); let _e91 = to_target(pe); let zb_1 = (_e46.z * _e90.z); let ze = (pe.z * _e91.z); let vb = (_e90.xy / ts); let vd = ((_e91.xy - _e90.xy) / ts); let clip_k = min(min(min(1f, ((0.99f * (1f - vb.x)) / max(0.00001f, vd.x))), ((0.99f * (1f - vb.y)) / max(0.00001f, vd.y))), min(((0.99f * vb.x) / max(0.00001f, -(vd.x))), ((0.99f * vb.y) / max(0.00001f, -(vd.y))))); let seg = ((_e91.xy - _e90.xy) * clip_k); let dz_1 = ((ze - zb_1) * clip_k); let dw_1 = ((_e91.z - _e90.z) * clip_k); let pixels = max(abs(seg.x), abs(seg.y)); if (pixels < 1f) { return vec4(0f); } let _e165 = U.march.x; let steps = i32(_e165); let stride = max(1f, (pixels / f32(steps))); let _e171 = dither(p_3); zr_from = -(_e46.z); loop { let _e183 = i; if (_e183 < steps) { } else { break; } { let _e185 = i; let t_2 = (1f + (stride * (f32(_e185) + _e171))); if (t_2 > pixels) { break; } let k_2 = (t_2 / pixels); let pos = (_e90.xy + (seg * k_2)); let _e197 = ray_depth(zb_1, dz_1, _e90.z, dw_1, k_2); let _e199 = march_at(floor(pos)); if (_e199.w > 0f) { local = (_e199.w < _e197); } else { local = false; } let _e208 = local; if _e208 { if (dot(r, _e199.xyz) < SSR_FACING) { let _e214 = zr_from; let _e219 = U.cam.w; if (_e199.w >= (min(_e214, _e197) - _e219)) { local_1 = (_e199.w < (SSR_FAR_GUARD * z_far)); } else { local_1 = false; } let _e229 = local_1; if _e229 { t_hit = t_2; let _e230 = i; taken = _e230; } break; } } zr_from = _e197; t_prev = t_2; } continuing { let _e232 = i; i = (_e232 + 1i); } } let _e234 = t_hit; if (_e234 < 0f) { return vec4(0f); } let _e239 = t_prev; lo = _e239; let _e241 = t_hit; hi = _e241; loop { let _e245 = k; if (_e245 < SSR_REFINE_STEPS) { } else { break; } { let _e248 = lo; let _e249 = hi; let mid = ((_e248 + _e249) * 0.5f); let km = (mid / pixels); let _e255 = ray_depth(zb_1, dz_1, _e90.z, dw_1, km); let _e260 = march_at(floor((_e90.xy + (seg * km)))); let dm = _e260.w; if (dm > 0f) { local_2 = (dm < _e255); } else { local_2 = false; } let _e268 = local_2; if _e268 { hi = mid; } else { lo = mid; } } continuing { let _e270 = k; k = (_e270 + 1i); } } let _e273 = hi; let hit = (_e90.xy + (seg * (_e273 / pixels))); let _e277 = taken; let _e279 = step_fade(f32(_e277)); let _e280 = margin_fade(hit, ts); let fade_2 = ((_e279 * _e280) * rf); if (fade_2 <= 0f) { return vec4(0f); } let _e293 = U.size.x; let dist_1 = ((length((hit - _e90.xy)) * _e293) / ts.x); let _e299 = ssr_colour((hit / ts), dist_1, surf.w, _e171); let _e301 = v; let _e307 = merge_weight(surf.xyz, clamp(dot(n_1, -(_e301)), 0f, 1f), fade_2); return vec4((_e299 * _e307.xyz), _e307.w); } @fragment fn fs_ssr_merge(@builtin(position) frag_2: vec4) -> @location(0) vec4 { var sum: vec4 = vec4(0f); var weights: f32 = 0f; var j: i32 = 0i; let q_1 = vec2(floor(frag_2.xy)); let _e6 = textureLoad(t_nd, q_1, 0i); let z = _e6.w; if (z <= 0f) { return vec4(0f); } let _e15 = U.flags.y; if (_e15 == 0u) { let _e20 = textureLoad(t_ssr, q_1, 0i); return _e20; } let _e23 = U.size; let ts_1 = _e23.zw; let _e32 = U.size; let s_2 = ((((vec2(q_1) + vec2(0.5f)) * ts_1) / _e32.xy) - vec2(0.5f)); let base = floor(s_2); let f_1 = (s_2 - base); let top = (ts_1 - vec2(1f)); loop { let _e50 = j; if (_e50 < 4i) { } else { break; } { let _e53 = j; let _e57 = j; let o = vec2(f32((_e53 & 1i)), f32((_e57 >> 1u))); let t_3 = clamp((base + o), vec2(0f), top); let bil = (select((1f - f_1.x), f_1.x, (o.x > 0.5f)) * select((1f - f_1.y), f_1.y, (o.y > 0.5f))); let _e83 = march_at(t_3); let zi = _e83.w; if (zi <= 0f) { continue; } let w = (bil / (0.001f + (abs((zi - z)) / z))); let _e93 = sum; let _e97 = textureLoad(t_ssr, vec2(t_3), 0i); sum = (_e93 + (_e97 * w)); let _e100 = weights; weights = (_e100 + w); } continuing { let _e103 = j; j = (_e103 + 1i); } } let _e105 = weights; if (_e105 <= 0.00000001f) { return vec4(0f); } let _e110 = sum; let _e111 = weights; return (_e110 / vec4(_e111)); }  À#ŸÈkö©~>vs_ssrmainË#version 300 es precision highp float; precision highp int; struct SsrU { vec4 size; vec4 cam; vec4 march; uvec4 flags; mat4x4 proj; mat4x4 inv_proj; }; const int SSR_REFINE_STEPS = 4; const float SSR_FACING = 0.001; const float SSR_FAR_GUARD = 0.95; const uint ROUGH_DISABLED = 0u; const uint ROUGH_LOW = 1u; const uint ROUGH_MEDIUM = 2u; const float PI = 3.1415927; float dither(ivec2 p) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); uint _e29 = bayer[(((p.y & 3) * 4) + (p.x & 3))]; return (float(_e29) / 16.0); } float margin_fade(vec2 p_2, vec2 s) { bool local_3 = false; bool local_4 = false; bool local_5 = false; if (!((p_2.x < 0.0))) { local_3 = (p_2.y < 0.0); } else { local_3 = true; } bool _e12 = local_3; if (!(_e12)) { local_4 = (p_2.x > s.x); } else { local_4 = true; } bool _e20 = local_4; if (!(_e20)) { local_5 = (p_2.y > s.y); } else { local_5 = true; } bool _e28 = local_5; if (_e28) { return 0.0; } float m = ((s.x + s.y) * 0.05); vec2 g = mix((s - p_2), p_2, lessThan(p_2, (s * 0.5))); return smoothstep(0.0, (m * m), (g.x * g.y)); } vec4 merge_weight(vec3 f0_, float nv, float fade) { float m_1 = clamp((1.0 - nv), 0.0, 1.0); float m5_ = ((((m_1 * m_1) * m_1) * m_1) * m_1); vec3 f = (f0_ + ((vec3(1.0) - f0_) * m5_)); float a = clamp(fade, 0.0, 1.0); return vec4((f * a), (max(max(f.x, f.y), f.z) * a)); } float ray_depth(float zb, float dz, float wb, float dw, float k_1) { return (-((zb + (dz * k_1))) / (wb + (dw * k_1))); } void main() { uint vi = uint(gl_VertexID); vec2 pts[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); vec2 _e13 = pts[vi]; gl_Position = vec4(_e13, 0.0, 1.0); gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_ssr_nd_halfmainò #version 300 es precision highp float; precision highp int; struct SsrU { vec4 size; vec4 cam; vec4 march; uvec4 flags; mat4x4 proj; mat4x4 inv_proj; }; const int SSR_REFINE_STEPS = 4; const float SSR_FACING = 0.001; const float SSR_FAR_GUARD = 0.95; const uint ROUGH_DISABLED = 0u; const uint ROUGH_LOW = 1u; const uint ROUGH_MEDIUM = 2u; const float PI = 3.1415927; layout(std140) uniform SsrU_block_0Fragment { SsrU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; layout(location = 0) out vec4 _fs2p_location0; float dither(ivec2 p) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); uint _e29 = bayer[(((p.y & 3) * 4) + (p.x & 3))]; return (float(_e29) / 16.0); } ivec2 source_px(vec2 t) { vec4 _e3 = _group_0_binding_0_fs.size; vec4 _e8 = _group_0_binding_0_fs.size; vec4 _e16 = _group_0_binding_0_fs.size; vec2 s_1 = clamp(floor(((t * _e3.xy) / _e8.zw)), vec2(0.0), (_e16.xy - vec2(1.0))); return ivec2(s_1); } vec3 view_at(vec2 uv, float d) { mat4x4 _e4 = _group_0_binding_0_fs.inv_proj; vec4 a4_ = (_e4 * vec4(((2.0 * uv.x) - 1.0), (1.0 - (2.0 * uv.y)), 0.0, 1.0)); vec3 a = (a4_.xyz / vec3(a4_.w)); float _e26 = _group_0_binding_0_fs.cam.z; if ((_e26 > 0.5)) { return vec3(a.xy, -(d)); } return (a * (d / -(a.z))); } vec3 to_target(vec3 p_1) { mat4x4 _e3 = _group_0_binding_0_fs.proj; vec4 c = (_e3 * vec4(p_1, 1.0)); vec2 n = (c.xy / vec2(c.w)); float _e19 = _group_0_binding_0_fs.size.z; float _e29 = _group_0_binding_0_fs.size.w; return vec3((((n.x * 0.5) + 0.5) * _e19), ((0.5 - (n.y * 0.5)) * _e29), (1.0 / c.w)); } float step_fade(float taken_1) { float initial = 1.0; float _e6 = _group_0_binding_0_fs.march.x; float grad = clamp(((taken_1 + 1.0) / max(_e6, 1.0)), 0.0, 1.0); float _e18 = _group_0_binding_0_fs.march.y; if ((_e18 > 0.0)) { float _e24 = _group_0_binding_0_fs.march.y; initial = pow(grad, _e24); } float _e33 = _group_0_binding_0_fs.march.z; float _e37 = initial; float fade_1 = (pow(max((1.0 - grad), 1e-6), max(_e33, 0.0)) * _e37); return ((fade_1 > 0.999) ? 1.0 : fade_1); } float margin_fade(vec2 p_2, vec2 s) { bool local_3 = false; bool local_4 = false; bool local_5 = false; if (!((p_2.x < 0.0))) { local_3 = (p_2.y < 0.0); } else { local_3 = true; } bool _e12 = local_3; if (!(_e12)) { local_4 = (p_2.x > s.x); } else { local_4 = true; } bool _e20 = local_4; if (!(_e20)) { local_5 = (p_2.y > s.y); } else { local_5 = true; } bool _e28 = local_5; if (_e28) { return 0.0; } float m = ((s.x + s.y) * 0.05); vec2 g = mix((s - p_2), p_2, lessThan(p_2, (s * 0.5))); return smoothstep(0.0, (m * m), (g.x * g.y)); } vec4 merge_weight(vec3 f0_, float nv, float fade) { float m_1 = clamp((1.0 - nv), 0.0, 1.0); float m5_ = ((((m_1 * m_1) * m_1) * m_1) * m_1); vec3 f = (f0_ + ((vec3(1.0) - f0_) * m5_)); float a_1 = clamp(fade, 0.0, 1.0); return vec4((f * a_1), (max(max(f.x, f.y), f.z) * a_1)); } float ray_depth(float zb, float dz, float wb, float dw, float k_1) { return (-((zb + (dz * k_1))) / (wb + (dw * k_1))); } void main() { vec4 frag = gl_FragCoord; ivec2 _e7 = source_px((floor(frag.xy) + vec2(0.5))); vec4 _e9 = texelFetch(_group_0_binding_1_fs, _e7, 0); _fs2p_location0 = _e9; return; }  fs_ssr_tracemain +#version 300 es precision highp float; precision highp int; struct SsrU { vec4 size; vec4 cam; vec4 march; uvec4 flags; mat4x4 proj; mat4x4 inv_proj; }; const int SSR_REFINE_STEPS = 4; const float SSR_FACING = 0.001; const float SSR_FAR_GUARD = 0.95; const uint ROUGH_DISABLED = 0u; const uint ROUGH_LOW = 1u; const uint ROUGH_MEDIUM = 2u; const float PI = 3.1415927; layout(std140) uniform SsrU_block_0Fragment { SsrU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_2_fs; uniform highp sampler2D _group_0_binding_3_fs; uniform highp sampler2D _group_0_binding_6_fs; layout(location = 0) out vec4 _fs2p_location0; float dither(ivec2 p) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); uint _e29 = bayer[(((p.y & 3) * 4) + (p.x & 3))]; return (float(_e29) / 16.0); } ivec2 source_px(vec2 t) { vec4 _e3 = _group_0_binding_0_fs.size; vec4 _e8 = _group_0_binding_0_fs.size; vec4 _e16 = _group_0_binding_0_fs.size; vec2 s_1 = clamp(floor(((t * _e3.xy) / _e8.zw)), vec2(0.0), (_e16.xy - vec2(1.0))); return ivec2(s_1); } vec4 march_at(vec2 t_1) { vec4 _e5 = _group_0_binding_0_fs.size; vec2 c = clamp(t_1, vec2(0.0), (_e5.zw - vec2(1.0))); vec4 _e14 = texelFetch(_group_0_binding_6_fs, ivec2(c), 0); return _e14; } vec3 view_at(vec2 uv, float d) { mat4x4 _e4 = _group_0_binding_0_fs.inv_proj; vec4 a4_ = (_e4 * vec4(((2.0 * uv.x) - 1.0), (1.0 - (2.0 * uv.y)), 0.0, 1.0)); vec3 a = (a4_.xyz / vec3(a4_.w)); float _e26 = _group_0_binding_0_fs.cam.z; if ((_e26 > 0.5)) { return vec3(a.xy, -(d)); } return (a * (d / -(a.z))); } vec3 to_target(vec3 p_1) { mat4x4 _e3 = _group_0_binding_0_fs.proj; vec4 c_1 = (_e3 * vec4(p_1, 1.0)); vec2 n = (c_1.xy / vec2(c_1.w)); float _e19 = _group_0_binding_0_fs.size.z; float _e29 = _group_0_binding_0_fs.size.w; return vec3((((n.x * 0.5) + 0.5) * _e19), ((0.5 - (n.y * 0.5)) * _e29), (1.0 / c_1.w)); } float step_fade(float taken_1) { float initial = 1.0; float _e6 = _group_0_binding_0_fs.march.x; float grad = clamp(((taken_1 + 1.0) / max(_e6, 1.0)), 0.0, 1.0); float _e18 = _group_0_binding_0_fs.march.y; if ((_e18 > 0.0)) { float _e24 = _group_0_binding_0_fs.march.y; initial = pow(grad, _e24); } float _e33 = _group_0_binding_0_fs.march.z; float _e37 = initial; float fade_1 = (pow(max((1.0 - grad), 1e-6), max(_e33, 0.0)) * _e37); return ((fade_1 > 0.999) ? 1.0 : fade_1); } float margin_fade(vec2 p_2, vec2 s) { bool local_3 = false; bool local_4 = false; bool local_5 = false; if (!((p_2.x < 0.0))) { local_3 = (p_2.y < 0.0); } else { local_3 = true; } bool _e12 = local_3; if (!(_e12)) { local_4 = (p_2.x > s.x); } else { local_4 = true; } bool _e20 = local_4; if (!(_e20)) { local_5 = (p_2.y > s.y); } else { local_5 = true; } bool _e28 = local_5; if (_e28) { return 0.0; } float m = ((s.x + s.y) * 0.05); vec2 g = mix((s - p_2), p_2, lessThan(p_2, (s * 0.5))); return smoothstep(0.0, (m * m), (g.x * g.y)); } vec4 merge_weight(vec3 f0_, float nv, float fade) { float m_1 = clamp((1.0 - nv), 0.0, 1.0); float m5_ = ((((m_1 * m_1) * m_1) * m_1) * m_1); vec3 f = (f0_ + ((vec3(1.0) - f0_) * m5_)); float a_1 = clamp(fade, 0.0, 1.0); return vec4((f * a_1), (max(max(f.x, f.y), f.z) * a_1)); } float ray_depth(float zb, float dz, float wb, float dw, float k_1) { return (-((zb + (dz * k_1))) / (wb + (dw * k_1))); } vec3 ssr_colour(vec2 uv_1, float dist, float rough, float turn) { bool local_6 = false; vec3 sum_1 = vec3(0.0); int i_1 = 0; uint q = _group_0_binding_0_fs.flags.x; float levels = _group_0_binding_0_fs.march.w; if (!((q == ROUGH_DISABLED))) { local_6 = (levels <= 1.0); } else { local_6 = true; } bool _e20 = local_6; if (_e20) { vec4 _e24 = textureLod(_group_0_binding_3_fs, vec2(uv_1), 0.0); return _e24.xyz; } float blur = ((dist * rough) * rough); float lod = clamp(log2(max(1.0, blur)), 0.0, (levels - 1.0)); if ((q == ROUGH_LOW)) { vec4 _e39 = textureLod(_group_0_binding_3_fs, vec2(uv_1), lod); return _e39.xyz; } int count = ((q == ROUGH_MEDIUM) ? 4 : 8); float level = max((lod - 1.0), 0.0); vec4 _e55 = _group_0_binding_0_fs.size; vec2 reach = (vec2((0.5 * blur)) / _e55.xy); bool loop_init = true; while(true) { if (!loop_init) { int _e84 = i_1; i_1 = (_e84 + 1); } loop_init = false; int _e63 = i_1; if ((_e63 < count)) { } else { break; } { int _e66 = i_1; float a_2 = ((6.2831855 * (float(_e66) + turn)) / float(count)); vec3 _e72 = sum_1; vec4 _e80 = textureLod(_group_0_binding_3_fs, vec2((uv_1 + (vec2(cos(a_2), sin(a_2)) * reach))), level); sum_1 = (_e72 + _e80.xyz); } } vec3 _e86 = sum_1; return (_e86 / vec3(float(count))); } void main() { vec4 frag_1 = gl_FragCoord; vec3 v = vec3(0.0, 0.0, -1.0); float len = 0.0; float t_prev = 0.0; float zr_from = 0.0; float t_hit = -1.0; int taken = 0; int i = 0; bool local = false; bool local_1 = false; float lo = 0.0; float hi = 0.0; int k = 0; bool local_2 = false; ivec2 p_3 = ivec2(floor(frag_1.xy)); vec4 _e6 = _group_0_binding_0_fs.size; vec2 ts = _e6.zw; ivec2 _e12 = source_px((vec2(p_3) + vec2(0.5))); vec4 nd = texelFetch(_group_0_binding_1_fs, _e12, 0); if ((nd.w <= 0.0)) { _fs2p_location0 = vec4(0.0); return; } vec4 surf = texelFetch(_group_0_binding_2_fs, _e12, 0); float rf = smoothstep(0.4, 0.7, (1.0 - surf.w)); if ((rf <= 0.0)) { _fs2p_location0 = vec4(0.0); return; } vec3 n_1 = normalize(nd.xyz); vec4 _e42 = _group_0_binding_0_fs.size; vec3 _e46 = view_at(((vec2(_e12) + vec2(0.5)) / _e42.xy), nd.w); float _e55 = _group_0_binding_0_fs.cam.z; if ((_e55 <= 0.5)) { v = normalize(_e46); } vec3 _e59 = v; vec3 r = normalize(reflect(_e59, n_1)); if ((dot(r, n_1) < SSR_FACING)) { _fs2p_location0 = vec4(0.0); return; } float z_near = _group_0_binding_0_fs.cam.x; float z_far = _group_0_binding_0_fs.cam.y; len = z_far; if (((_e46.z + (r.z * z_far)) > -(z_near))) { len = ((-(z_near) - _e46.z) / r.z); } float _e87 = len; vec3 pe = (_e46 + (r * _e87)); vec3 _e90 = to_target(_e46); vec3 _e91 = to_target(pe); float zb_1 = (_e46.z * _e90.z); float ze = (pe.z * _e91.z); vec2 vb = (_e90.xy / ts); vec2 vd = ((_e91.xy - _e90.xy) / ts); float clip_k = min(min(min(1.0, ((0.99 * (1.0 - vb.x)) / max(1e-5, vd.x))), ((0.99 * (1.0 - vb.y)) / max(1e-5, vd.y))), min(((0.99 * vb.x) / max(1e-5, -(vd.x))), ((0.99 * vb.y) / max(1e-5, -(vd.y))))); vec2 seg = ((_e91.xy - _e90.xy) * clip_k); float dz_1 = ((ze - zb_1) * clip_k); float dw_1 = ((_e91.z - _e90.z) * clip_k); float pixels = max(abs(seg.x), abs(seg.y)); if ((pixels < 1.0)) { _fs2p_location0 = vec4(0.0); return; } float _e165 = _group_0_binding_0_fs.march.x; int steps = int(_e165); float stride = max(1.0, (pixels / float(steps))); float _e171 = dither(p_3); zr_from = -(_e46.z); bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e232 = i; i = (_e232 + 1); } loop_init_1 = false; int _e183 = i; if ((_e183 < steps)) { } else { break; } { int _e185 = i; float t_2 = (1.0 + (stride * (float(_e185) + _e171))); if ((t_2 > pixels)) { break; } float k_2 = (t_2 / pixels); vec2 pos = (_e90.xy + (seg * k_2)); float _e197 = ray_depth(zb_1, dz_1, _e90.z, dw_1, k_2); vec4 _e199 = march_at(floor(pos)); if ((_e199.w > 0.0)) { local = (_e199.w < _e197); } else { local = false; } bool _e208 = local; if (_e208) { if ((dot(r, _e199.xyz) < SSR_FACING)) { float _e214 = zr_from; float _e219 = _group_0_binding_0_fs.cam.w; if ((_e199.w >= (min(_e214, _e197) - _e219))) { local_1 = (_e199.w < (SSR_FAR_GUARD * z_far)); } else { local_1 = false; } bool _e229 = local_1; if (_e229) { t_hit = t_2; int _e230 = i; taken = _e230; } break; } } zr_from = _e197; t_prev = t_2; } } float _e234 = t_hit; if ((_e234 < 0.0)) { _fs2p_location0 = vec4(0.0); return; } float _e239 = t_prev; lo = _e239; float _e241 = t_hit; hi = _e241; bool loop_init_2 = true; while(true) { if (!loop_init_2) { int _e270 = k; k = (_e270 + 1); } loop_init_2 = false; int _e245 = k; if ((_e245 < SSR_REFINE_STEPS)) { } else { break; } { float _e248 = lo; float _e249 = hi; float mid = ((_e248 + _e249) * 0.5); float km = (mid / pixels); float _e255 = ray_depth(zb_1, dz_1, _e90.z, dw_1, km); vec4 _e260 = march_at(floor((_e90.xy + (seg * km)))); float dm = _e260.w; if ((dm > 0.0)) { local_2 = (dm < _e255); } else { local_2 = false; } bool _e268 = local_2; if (_e268) { hi = mid; } else { lo = mid; } } } float _e273 = hi; vec2 hit = (_e90.xy + (seg * (_e273 / pixels))); int _e277 = taken; float _e279 = step_fade(float(_e277)); float _e280 = margin_fade(hit, ts); float fade_2 = ((_e279 * _e280) * rf); if ((fade_2 <= 0.0)) { _fs2p_location0 = vec4(0.0); return; } float _e293 = _group_0_binding_0_fs.size.x; float dist_1 = ((length((hit - _e90.xy)) * _e293) / ts.x); vec3 _e299 = ssr_colour((hit / ts), dist_1, surf.w, _e171); vec3 _e301 = v; vec4 _e307 = merge_weight(surf.xyz, clamp(dot(n_1, -(_e301)), 0.0, 1.0), fade_2); _fs2p_location0 = vec4((_e299 * _e307.xyz), _e307.w); return; }  fs_ssr_mergemain#version 300 es precision highp float; precision highp int; struct SsrU { vec4 size; vec4 cam; vec4 march; uvec4 flags; mat4x4 proj; mat4x4 inv_proj; }; const int SSR_REFINE_STEPS = 4; const float SSR_FACING = 0.001; const float SSR_FAR_GUARD = 0.95; const uint ROUGH_DISABLED = 0u; const uint ROUGH_LOW = 1u; const uint ROUGH_MEDIUM = 2u; const float PI = 3.1415927; layout(std140) uniform SsrU_block_0Fragment { SsrU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_5_fs; uniform highp sampler2D _group_0_binding_6_fs; layout(location = 0) out vec4 _fs2p_location0; float dither(ivec2 p) { uint bayer[16] = uint[16](0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u); uint _e29 = bayer[(((p.y & 3) * 4) + (p.x & 3))]; return (float(_e29) / 16.0); } ivec2 source_px(vec2 t) { vec4 _e3 = _group_0_binding_0_fs.size; vec4 _e8 = _group_0_binding_0_fs.size; vec4 _e16 = _group_0_binding_0_fs.size; vec2 s_1 = clamp(floor(((t * _e3.xy) / _e8.zw)), vec2(0.0), (_e16.xy - vec2(1.0))); return ivec2(s_1); } vec4 march_at(vec2 t_1) { vec4 _e5 = _group_0_binding_0_fs.size; vec2 c = clamp(t_1, vec2(0.0), (_e5.zw - vec2(1.0))); vec4 _e14 = texelFetch(_group_0_binding_6_fs, ivec2(c), 0); return _e14; } vec3 view_at(vec2 uv, float d) { mat4x4 _e4 = _group_0_binding_0_fs.inv_proj; vec4 a4_ = (_e4 * vec4(((2.0 * uv.x) - 1.0), (1.0 - (2.0 * uv.y)), 0.0, 1.0)); vec3 a = (a4_.xyz / vec3(a4_.w)); float _e26 = _group_0_binding_0_fs.cam.z; if ((_e26 > 0.5)) { return vec3(a.xy, -(d)); } return (a * (d / -(a.z))); } vec3 to_target(vec3 p_1) { mat4x4 _e3 = _group_0_binding_0_fs.proj; vec4 c_1 = (_e3 * vec4(p_1, 1.0)); vec2 n = (c_1.xy / vec2(c_1.w)); float _e19 = _group_0_binding_0_fs.size.z; float _e29 = _group_0_binding_0_fs.size.w; return vec3((((n.x * 0.5) + 0.5) * _e19), ((0.5 - (n.y * 0.5)) * _e29), (1.0 / c_1.w)); } float step_fade(float taken_1) { float initial = 1.0; float _e6 = _group_0_binding_0_fs.march.x; float grad = clamp(((taken_1 + 1.0) / max(_e6, 1.0)), 0.0, 1.0); float _e18 = _group_0_binding_0_fs.march.y; if ((_e18 > 0.0)) { float _e24 = _group_0_binding_0_fs.march.y; initial = pow(grad, _e24); } float _e33 = _group_0_binding_0_fs.march.z; float _e37 = initial; float fade_1 = (pow(max((1.0 - grad), 1e-6), max(_e33, 0.0)) * _e37); return ((fade_1 > 0.999) ? 1.0 : fade_1); } float margin_fade(vec2 p_2, vec2 s) { bool local_3 = false; bool local_4 = false; bool local_5 = false; if (!((p_2.x < 0.0))) { local_3 = (p_2.y < 0.0); } else { local_3 = true; } bool _e12 = local_3; if (!(_e12)) { local_4 = (p_2.x > s.x); } else { local_4 = true; } bool _e20 = local_4; if (!(_e20)) { local_5 = (p_2.y > s.y); } else { local_5 = true; } bool _e28 = local_5; if (_e28) { return 0.0; } float m = ((s.x + s.y) * 0.05); vec2 g = mix((s - p_2), p_2, lessThan(p_2, (s * 0.5))); return smoothstep(0.0, (m * m), (g.x * g.y)); } vec4 merge_weight(vec3 f0_, float nv, float fade) { float m_1 = clamp((1.0 - nv), 0.0, 1.0); float m5_ = ((((m_1 * m_1) * m_1) * m_1) * m_1); vec3 f = (f0_ + ((vec3(1.0) - f0_) * m5_)); float a_1 = clamp(fade, 0.0, 1.0); return vec4((f * a_1), (max(max(f.x, f.y), f.z) * a_1)); } float ray_depth(float zb, float dz, float wb, float dw, float k_1) { return (-((zb + (dz * k_1))) / (wb + (dw * k_1))); } void main() { vec4 frag_2 = gl_FragCoord; vec4 sum = vec4(0.0); float weights = 0.0; int j = 0; ivec2 q = ivec2(floor(frag_2.xy)); vec4 _e6 = texelFetch(_group_0_binding_1_fs, q, 0); float z = _e6.w; if ((z <= 0.0)) { _fs2p_location0 = vec4(0.0); return; } uint _e15 = _group_0_binding_0_fs.flags.y; if ((_e15 == 0u)) { vec4 _e20 = texelFetch(_group_0_binding_5_fs, q, 0); _fs2p_location0 = _e20; return; } vec4 _e23 = _group_0_binding_0_fs.size; vec2 ts = _e23.zw; vec4 _e32 = _group_0_binding_0_fs.size; vec2 s_2 = ((((vec2(q) + vec2(0.5)) * ts) / _e32.xy) - vec2(0.5)); vec2 base = floor(s_2); vec2 f_1 = (s_2 - base); vec2 top = (ts - vec2(1.0)); bool loop_init = true; while(true) { if (!loop_init) { int _e103 = j; j = (_e103 + 1); } loop_init = false; int _e50 = j; if ((_e50 < 4)) { } else { break; } { int _e53 = j; int _e57 = j; vec2 o = vec2(float((_e53 & 1)), float((_e57 >> 1u))); vec2 t_2 = clamp((base + o), vec2(0.0), top); float bil = (((o.x > 0.5) ? f_1.x : (1.0 - f_1.x)) * ((o.y > 0.5) ? f_1.y : (1.0 - f_1.y))); vec4 _e83 = march_at(t_2); float zi = _e83.w; if ((zi <= 0.0)) { continue; } float w = (bil / (0.001 + (abs((zi - z)) / z))); vec4 _e93 = sum; vec4 _e97 = texelFetch(_group_0_binding_5_fs, ivec2(t_2), 0); sum = (_e93 + (_e97 * w)); float _e100 = weights; weights = (_e100 + w); } } float _e105 = weights; if ((_e105 <= 1e-8)) { _fs2p_location0 = vec4(0.0); return; } vec4 _e110 = sum; float _e111 = weights; _fs2p_location0 = (_e110 / vec4(_e111)); return; }  À ÖÛJÏÏOSsrU_block_0Fragment_group_0_binding_1_fs_group_0_binding_3_fs_group_0_binding_2_fs_group_0_binding_6_fs_group_0_binding_5_fsvs_ssrvs_ssrfs_ssr_nd_halffs_ssr_nd_half fs_ssr_trace fs_ssr_trace fs_ssr_merge fs_ssr_merge±G// language: metal2.2 #include #include using metal::uint; struct SsrU { metal::float4 size; metal::float4 cam; metal::float4 march; metal::uint4 flags; metal::float4x4 proj; metal::float4x4 inv_proj; }; struct type_9 { metal::float2 inner[3]; }; struct type_11 { uint inner[16]; }; constant int SSR_REFINE_STEPS = 4; constant float SSR_FACING = 0.001; constant float SSR_FAR_GUARD = 0.95; constant uint ROUGH_DISABLED = 0u; constant uint ROUGH_LOW = 1u; constant uint ROUGH_MEDIUM = 2u; constant float PI = 3.1415927; float dither( metal::int2 p ) { type_11 bayer = type_11 {{0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u}}; uint _e29 = bayer.inner[metal::min(unsigned(as_type(as_type(as_type(as_type(p.y & 3) * as_type(4))) + as_type(p.x & 3))), 15u)]; return static_cast(_e29) / 16.0; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } metal::int2 source_px( metal::float2 t, constant SsrU& U ) { metal::float4 _e3 = U.size; metal::float4 _e8 = U.size; metal::float4 _e16 = U.size; metal::float2 s_1 = metal::clamp(metal::floor((t * _e3.xy) / _e8.zw), metal::float2(0.0), _e16.xy - metal::float2(1.0)); return naga_f2i32(s_1); } metal::float4 march_at( metal::float2 t_1, constant SsrU& U, metal::texture2d t_march ) { metal::float4 _e5 = U.size; metal::float2 c = metal::clamp(t_1, metal::float2(0.0), _e5.zw - metal::float2(1.0)); uint clamped_lod_e14 = metal::min(uint(0), t_march.get_num_mip_levels() - 1); metal::float4 _e14 = t_march.read(metal::min(metal::uint2(naga_f2i32(c)), metal::uint2(t_march.get_width(clamped_lod_e14), t_march.get_height(clamped_lod_e14)) - 1), clamped_lod_e14); return _e14; } metal::float3 view_at( metal::float2 uv, float d, constant SsrU& U ) { metal::float4x4 _e4 = U.inv_proj; metal::float4 a4_ = _e4 * metal::float4((2.0 * uv.x) - 1.0, 1.0 - (2.0 * uv.y), 0.0, 1.0); metal::float3 a = a4_.xyz / metal::float3(a4_.w); float _e26 = U.cam.z; if (_e26 > 0.5) { return metal::float3(a.xy, -(d)); } return a * (d / -(a.z)); } metal::float3 to_target( metal::float3 p_1, constant SsrU& U ) { metal::float4x4 _e3 = U.proj; metal::float4 c_1 = _e3 * metal::float4(p_1, 1.0); metal::float2 n = c_1.xy / metal::float2(c_1.w); float _e19 = U.size.z; float _e29 = U.size.w; return metal::float3(((n.x * 0.5) + 0.5) * _e19, (0.5 - (n.y * 0.5)) * _e29, 1.0 / c_1.w); } float step_fade( float taken_1, constant SsrU& U ) { float initial = 1.0; float _e6 = U.march.x; float grad = metal::clamp((taken_1 + 1.0) / metal::max(_e6, 1.0), 0.0, 1.0); float _e18 = U.march.y; if (_e18 > 0.0) { float _e24 = U.march.y; initial = metal::pow(grad, _e24); } float _e33 = U.march.z; float _e37 = initial; float fade_1 = metal::pow(metal::max(1.0 - grad, 0.000001), metal::max(_e33, 0.0)) * _e37; return (fade_1 > 0.999) ? 1.0 : fade_1; } float margin_fade( metal::float2 p_2, metal::float2 s ) { bool local_3 = {}; bool local_4 = {}; bool local_5 = {}; if (!((p_2.x < 0.0))) { local_3 = p_2.y < 0.0; } else { local_3 = true; } bool _e12 = local_3; if (!(_e12)) { local_4 = p_2.x > s.x; } else { local_4 = true; } bool _e20 = local_4; if (!(_e20)) { local_5 = p_2.y > s.y; } else { local_5 = true; } bool _e28 = local_5; if (_e28) { return 0.0; } float m = (s.x + s.y) * 0.05; metal::float2 g = metal::select(s - p_2, p_2, p_2 < (s * 0.5)); return metal::smoothstep(0.0, m * m, g.x * g.y); } metal::float4 merge_weight( metal::float3 f0_, float nv, float fade ) { float m_1 = metal::clamp(1.0 - nv, 0.0, 1.0); float m5_ = (((m_1 * m_1) * m_1) * m_1) * m_1; metal::float3 f = f0_ + ((metal::float3(1.0) - f0_) * m5_); float a_1 = metal::clamp(fade, 0.0, 1.0); return metal::float4(f * a_1, metal::max(metal::max(f.x, f.y), f.z) * a_1); } float ray_depth( float zb, float dz, float wb, float dw, float k_1 ) { return -((zb + (dz * k_1))) / (wb + (dw * k_1)); } metal::float3 ssr_colour( metal::float2 uv_1, float dist, float rough, float turn, constant SsrU& U, metal::texture2d t_screen, metal::sampler s_linear ) { bool local_6 = {}; metal::float3 sum_1 = metal::float3(0.0); int i_1 = 0; uint q = U.flags.x; float levels = U.march.w; if (!((q == ROUGH_DISABLED))) { local_6 = levels <= 1.0; } else { local_6 = true; } bool _e20 = local_6; if (_e20) { metal::float4 _e24 = t_screen.sample(s_linear, uv_1, metal::level(0.0)); return _e24.xyz; } float blur = (dist * rough) * rough; float lod = metal::clamp(metal::log2(metal::max(1.0, blur)), 0.0, levels - 1.0); if (q == ROUGH_LOW) { metal::float4 _e39 = t_screen.sample(s_linear, uv_1, metal::level(lod)); return _e39.xyz; } int count = (q == ROUGH_MEDIUM) ? 4 : 8; float level = metal::max(lod - 1.0, 0.0); metal::float4 _e55 = U.size; metal::float2 reach = metal::float2(0.5 * blur) / _e55.xy; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e84 = i_1; i_1 = as_type(as_type(_e84) + as_type(1)); } loop_init = false; int _e63 = i_1; if (_e63 < count) { } else { break; } { int _e66 = i_1; float a_2 = (6.2831855 * (static_cast(_e66) + turn)) / static_cast(count); metal::float3 _e72 = sum_1; metal::float4 _e80 = t_screen.sample(s_linear, uv_1 + (metal::float2(metal::cos(a_2), metal::sin(a_2)) * reach), metal::level(level)); sum_1 = _e72 + _e80.xyz; } } metal::float3 _e86 = sum_1; return _e86 / metal::float3(static_cast(count)); } struct vs_ssrInput { }; struct vs_ssrOutput { metal::float4 member [[position]]; }; vertex vs_ssrOutput vs_ssr( uint vi [[vertex_id]] ) { type_9 pts = type_9 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; metal::float2 _e13 = pts.inner[metal::min(unsigned(vi), 2u)]; return vs_ssrOutput { metal::float4(_e13, 0.0, 1.0) }; } struct fs_ssr_nd_halfInput { }; struct fs_ssr_nd_halfOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_ssr_nd_halfOutput fs_ssr_nd_half( metal::float4 frag [[position]] , constant SsrU& U [[buffer(0)]] , metal::texture2d t_nd [[texture(0)]] ) { metal::int2 _e7 = source_px(metal::floor(frag.xy) + metal::float2(0.5), U); uint clamped_lod_e9 = metal::min(uint(0), t_nd.get_num_mip_levels() - 1); metal::float4 _e9 = t_nd.read(metal::min(metal::uint2(_e7), metal::uint2(t_nd.get_width(clamped_lod_e9), t_nd.get_height(clamped_lod_e9)) - 1), clamped_lod_e9); return fs_ssr_nd_halfOutput { _e9 }; } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } struct fs_ssr_traceInput { }; struct fs_ssr_traceOutput { metal::float4 member_2 [[color(0)]]; }; fragment fs_ssr_traceOutput fs_ssr_trace( metal::float4 frag_1 [[position]] , constant SsrU& U [[buffer(0)]] , metal::texture2d t_nd [[texture(0)]] , metal::texture2d t_surface [[texture(1)]] , metal::texture2d t_screen [[texture(2)]] , metal::sampler s_linear [[sampler(0)]] , metal::texture2d t_march [[texture(4)]] ) { metal::float3 v = metal::float3(0.0, 0.0, -1.0); float len = {}; float t_prev = 0.0; float zr_from = {}; float t_hit = -1.0; int taken = 0; int i = 0; bool local = {}; bool local_1 = {}; float lo = {}; float hi = {}; int k = 0; bool local_2 = {}; metal::int2 p_3 = naga_f2i32(metal::floor(frag_1.xy)); metal::float4 _e6 = U.size; metal::float2 ts = _e6.zw; metal::int2 _e12 = source_px(static_cast(p_3) + metal::float2(0.5), U); uint clamped_lod_e15 = metal::min(uint(0), t_nd.get_num_mip_levels() - 1); metal::float4 nd = t_nd.read(metal::min(metal::uint2(_e12), metal::uint2(t_nd.get_width(clamped_lod_e15), t_nd.get_height(clamped_lod_e15)) - 1), clamped_lod_e15); if (nd.w <= 0.0) { return fs_ssr_traceOutput { metal::float4(0.0) }; } uint clamped_lod_e23 = metal::min(uint(0), t_surface.get_num_mip_levels() - 1); metal::float4 surf = t_surface.read(metal::min(metal::uint2(_e12), metal::uint2(t_surface.get_width(clamped_lod_e23), t_surface.get_height(clamped_lod_e23)) - 1), clamped_lod_e23); float rf = metal::smoothstep(0.4, 0.7, 1.0 - surf.w); if (rf <= 0.0) { return fs_ssr_traceOutput { metal::float4(0.0) }; } metal::float3 n_1 = metal::normalize(nd.xyz); metal::float4 _e42 = U.size; metal::float3 _e46 = view_at((static_cast(_e12) + metal::float2(0.5)) / _e42.xy, nd.w, U); float _e55 = U.cam.z; if (_e55 <= 0.5) { v = metal::normalize(_e46); } metal::float3 _e59 = v; metal::float3 r = metal::normalize(metal::reflect(_e59, n_1)); if (metal::dot(r, n_1) < SSR_FACING) { return fs_ssr_traceOutput { metal::float4(0.0) }; } float z_near = U.cam.x; float z_far = U.cam.y; len = z_far; if ((_e46.z + (r.z * z_far)) > -(z_near)) { len = (-(z_near) - _e46.z) / r.z; } float _e87 = len; metal::float3 pe = _e46 + (r * _e87); metal::float3 _e90 = to_target(_e46, U); metal::float3 _e91 = to_target(pe, U); float zb_1 = _e46.z * _e90.z; float ze = pe.z * _e91.z; metal::float2 vb = _e90.xy / ts; metal::float2 vd = (_e91.xy - _e90.xy) / ts; float clip_k = metal::min(metal::min(metal::min(1.0, (0.99 * (1.0 - vb.x)) / metal::max(0.00001, vd.x)), (0.99 * (1.0 - vb.y)) / metal::max(0.00001, vd.y)), metal::min((0.99 * vb.x) / metal::max(0.00001, -(vd.x)), (0.99 * vb.y) / metal::max(0.00001, -(vd.y)))); metal::float2 seg = (_e91.xy - _e90.xy) * clip_k; float dz_1 = (ze - zb_1) * clip_k; float dw_1 = (_e91.z - _e90.z) * clip_k; float pixels = metal::max(metal::abs(seg.x), metal::abs(seg.y)); if (pixels < 1.0) { return fs_ssr_traceOutput { metal::float4(0.0) }; } float _e165 = U.march.x; int steps = naga_f2i32(_e165); float stride = metal::max(1.0, pixels / static_cast(steps)); float _e171 = dither(p_3); zr_from = -(_e46.z); uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { int _e232 = i; i = as_type(as_type(_e232) + as_type(1)); } loop_init_1 = false; int _e183 = i; if (_e183 < steps) { } else { break; } { int _e185 = i; float t_2 = 1.0 + (stride * (static_cast(_e185) + _e171)); if (t_2 > pixels) { break; } float k_2 = t_2 / pixels; metal::float2 pos = _e90.xy + (seg * k_2); float _e197 = ray_depth(zb_1, dz_1, _e90.z, dw_1, k_2); metal::float4 _e199 = march_at(metal::floor(pos), U, t_march); if (_e199.w > 0.0) { local = _e199.w < _e197; } else { local = false; } bool _e208 = local; if (_e208) { if (metal::dot(r, _e199.xyz) < SSR_FACING) { float _e214 = zr_from; float _e219 = U.cam.w; if (_e199.w >= (metal::min(_e214, _e197) - _e219)) { local_1 = _e199.w < (SSR_FAR_GUARD * z_far); } else { local_1 = false; } bool _e229 = local_1; if (_e229) { t_hit = t_2; int _e230 = i; taken = _e230; } break; } } zr_from = _e197; t_prev = t_2; } } float _e234 = t_hit; if (_e234 < 0.0) { return fs_ssr_traceOutput { metal::float4(0.0) }; } float _e239 = t_prev; lo = _e239; float _e241 = t_hit; hi = _e241; uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { int _e270 = k; k = as_type(as_type(_e270) + as_type(1)); } loop_init_2 = false; int _e245 = k; if (_e245 < SSR_REFINE_STEPS) { } else { break; } { float _e248 = lo; float _e249 = hi; float mid = (_e248 + _e249) * 0.5; float km = mid / pixels; float _e255 = ray_depth(zb_1, dz_1, _e90.z, dw_1, km); metal::float4 _e260 = march_at(metal::floor(_e90.xy + (seg * km)), U, t_march); float dm = _e260.w; if (dm > 0.0) { local_2 = dm < _e255; } else { local_2 = false; } bool _e268 = local_2; if (_e268) { hi = mid; } else { lo = mid; } } } float _e273 = hi; metal::float2 hit = _e90.xy + (seg * (_e273 / pixels)); int _e277 = taken; float _e279 = step_fade(static_cast(_e277), U); float _e280 = margin_fade(hit, ts); float fade_2 = (_e279 * _e280) * rf; if (fade_2 <= 0.0) { return fs_ssr_traceOutput { metal::float4(0.0) }; } float _e293 = U.size.x; float dist_1 = (metal::length(hit - _e90.xy) * _e293) / ts.x; metal::float3 _e299 = ssr_colour(hit / ts, dist_1, surf.w, _e171, U, t_screen, s_linear); metal::float3 _e301 = v; metal::float4 _e307 = merge_weight(surf.xyz, metal::clamp(metal::dot(n_1, -(_e301)), 0.0, 1.0), fade_2); return fs_ssr_traceOutput { metal::float4(_e299 * _e307.xyz, _e307.w) }; } struct fs_ssr_mergeInput { }; struct fs_ssr_mergeOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_ssr_mergeOutput fs_ssr_merge( metal::float4 frag_2 [[position]] , constant SsrU& U [[buffer(0)]] , metal::texture2d t_nd [[texture(0)]] , metal::texture2d t_ssr [[texture(3)]] , metal::texture2d t_march [[texture(4)]] ) { metal::float4 sum = metal::float4(0.0); float weights = 0.0; int j = 0; metal::int2 q_1 = naga_f2i32(metal::floor(frag_2.xy)); uint clamped_lod_e6 = metal::min(uint(0), t_nd.get_num_mip_levels() - 1); metal::float4 _e6 = t_nd.read(metal::min(metal::uint2(q_1), metal::uint2(t_nd.get_width(clamped_lod_e6), t_nd.get_height(clamped_lod_e6)) - 1), clamped_lod_e6); float z = _e6.w; if (z <= 0.0) { return fs_ssr_mergeOutput { metal::float4(0.0) }; } uint _e15 = U.flags.y; if (_e15 == 0u) { uint clamped_lod_e20 = metal::min(uint(0), t_ssr.get_num_mip_levels() - 1); metal::float4 _e20 = t_ssr.read(metal::min(metal::uint2(q_1), metal::uint2(t_ssr.get_width(clamped_lod_e20), t_ssr.get_height(clamped_lod_e20)) - 1), clamped_lod_e20); return fs_ssr_mergeOutput { _e20 }; } metal::float4 _e23 = U.size; metal::float2 ts_1 = _e23.zw; metal::float4 _e32 = U.size; metal::float2 s_2 = (((static_cast(q_1) + metal::float2(0.5)) * ts_1) / _e32.xy) - metal::float2(0.5); metal::float2 base = metal::floor(s_2); metal::float2 f_1 = s_2 - base; metal::float2 top = ts_1 - metal::float2(1.0); uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { int _e103 = j; j = as_type(as_type(_e103) + as_type(1)); } loop_init_3 = false; int _e50 = j; if (_e50 < 4) { } else { break; } { int _e53 = j; int _e57 = j; metal::float2 o = metal::float2(static_cast(_e53 & 1), static_cast(_e57 >> 1u)); metal::float2 t_3 = metal::clamp(base + o, metal::float2(0.0), top); float bil = ((o.x > 0.5) ? f_1.x : (1.0 - f_1.x)) * ((o.y > 0.5) ? f_1.y : (1.0 - f_1.y)); metal::float4 _e83 = march_at(t_3, U, t_march); float zi = _e83.w; if (zi <= 0.0) { continue; } float w = bil / (0.001 + (metal::abs(zi - z) / z)); metal::float4 _e93 = sum; uint clamped_lod_e97 = metal::min(uint(0), t_ssr.get_num_mip_levels() - 1); metal::float4 _e97 = t_ssr.read(metal::min(metal::uint2(naga_f2i32(t_3)), metal::uint2(t_ssr.get_width(clamped_lod_e97), t_ssr.get_height(clamped_lod_e97)) - 1), clamped_lod_e97); sum = _e93 + (_e97 * w); float _e100 = weights; weights = _e100 + w; } } float _e105 = weights; if (_e105 <= 0.00000001) { return fs_ssr_mergeOutput { metal::float4(0.0) }; } metal::float4 _e110 = sum; float _e111 = weights; return fs_ssr_mergeOutput { _e110 / metal::float4(_e111) }; }  Àr{ÎC$trèvs_ssrmainlstruct SsrU { float4 size; float4 cam; float4 march; uint4 flags; row_major float4x4 proj; row_major float4x4 inv_proj; }; static const uint _43[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; static const float2 _174[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static float4 gl_Position; static int gl_VertexIndex; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float4 gl_Position : SV_Position; }; void vert_main() { gl_Position = float4(_174[min(uint(gl_VertexIndex), 2u)], 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; return stage_output; } fs_ssr_nd_halfmainstruct SsrU { float4 size; float4 cam; float4 march; uint4 flags; row_major float4x4 proj; row_major float4x4 inv_proj; }; static const uint _48[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; cbuffer U : register(b0) { SsrU U_1_m0 : packoffset(c0); }; Texture2D t_nd : register(t0); static float4 gl_FragCoord; static float4 _299; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _299 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } int2 source_px(float2 t) { return int2(clamp(clamp(floor((t * U_1_m0.size.xy) / U_1_m0.size.zw), float2(0.0f, 0.0f), U_1_m0.size.xy - float2(1.0f, 1.0f)), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); } void frag_main() { int _312; spvTextureSize(t_nd, 0u, _312); int _315 = int(min(uint(0), uint(int(_312) - 1))); uint _316_dummy_parameter; _299 = t_nd.Load(int3(int2(min(uint2(source_px(floor(gl_FragCoord.xy) + float2(0.5f, 0.5f))), uint2(int2(spvTextureSize(t_nd, uint(_315), _316_dummy_parameter)) - int2(1, 1)))), _315)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._299 = _299; return stage_output; }  fs_ssr_tracemaino,struct SsrU { float4 size; float4 cam; float4 march; uint4 flags; row_major float4x4 proj; row_major float4x4 inv_proj; }; static const uint _53[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; cbuffer U : register(b0) { SsrU U_1_m0 : packoffset(c0); }; Texture2D t_nd : register(t0); Texture2D t_surface : register(t1); Texture2D t_screen : register(t2); SamplerState s_linear : register(s0); Texture2D t_march : register(t4); static float4 gl_FragCoord; static float4 _437; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _437 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } int2 source_px(float2 t) { return int2(clamp(clamp(floor((t * U_1_m0.size.xy) / U_1_m0.size.zw), float2(0.0f, 0.0f), U_1_m0.size.xy - float2(1.0f, 1.0f)), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); } float3 view_at(float2 uv, float d) { float4 _146 = mul(float4((2.0f * uv.x) - 1.0f, 1.0f - (2.0f * uv.y), 0.0f, 1.0f), U_1_m0.inv_proj); float3 _150 = _146.xyz / float3(_146.www); if (U_1_m0.cam.z > 0.5f) { return float3(_150.xy, -d); } return _150 * (d / (-_150.z)); } float3 to_target(float3 p) { float4 _173 = mul(float4(p, 1.0f), U_1_m0.proj); float2 _177 = _173.xy / float2(_173.ww); return float3(((_177.x * 0.5f) + 0.5f) * U_1_m0.size.z, (0.5f - (_177.y * 0.5f)) * U_1_m0.size.w, 1.0f / _173.w); } float dither(int2 p) { return float(_53[min(uint(((p.y & 3) * 4) + (p.x & 3)), 15u)]) / 16.0f; } float ray_depth(float zb, float dz, float wb, float dw, float k) { return (-(zb + (dz * k))) / (wb + (dw * k)); } float4 march_at(float2 t) { int _118; spvTextureSize(t_march, 0u, _118); int _121 = int(min(uint(0), uint(int(_118) - 1))); uint _122_dummy_parameter; return t_march.Load(int3(int2(min(uint2(int2(clamp(clamp(t, float2(0.0f, 0.0f), U_1_m0.size.zw - float2(1.0f, 1.0f)), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_march, uint(_121), _122_dummy_parameter)) - int2(1, 1)))), _121)); } float step_fade(float taken) { float initial = 1.0f; float _208 = clamp((taken + 1.0f) / max(U_1_m0.march.x, 1.0f), 0.0f, 1.0f); if (U_1_m0.march.y > 0.0f) { initial = pow(_208, U_1_m0.march.y); } float _224 = pow(max(1.0f - _208, 9.9999999747524270787835121154785e-07f), max(U_1_m0.march.z, 0.0f)) * initial; return (_224 > 0.999000012874603271484375f) ? 1.0f : _224; } float margin_fade(float2 p, float2 s) { bool _234 = false; bool _237 = false; bool _239 = false; if (!(p.x < 0.0f)) { _234 = p.y < 0.0f; } else { _234 = true; } if (!_234) { _237 = p.x > s.x; } else { _237 = true; } if (!_237) { _239 = p.y > s.y; } else { _239 = true; } if (_239) { return 0.0f; } float _272 = (s.x + s.y) * 0.0500000007450580596923828125f; float2 _273 = s - p; float2 _274 = s * 0.5f; bool2 _276 = bool2(p.x < _274.x, p.y < _274.y); float2 _277 = float2(_276.x ? p.x : _273.x, _276.y ? p.y : _273.y); return smoothstep(0.0f, _272 * _272, _277.x * _277.y); } float3 ssr_colour(float2 uv, float dist, float rough, float turn) { bool _337 = false; float3 sum = float3(0.0f, 0.0f, 0.0f); int i = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); if (!(U_1_m0.flags.x == 0u)) { _337 = U_1_m0.march.w <= 1.0f; } else { _337 = true; } if (_337) { return t_screen.SampleLevel(s_linear, uv, 0.0f).xyz; } float _364 = (dist * rough) * rough; float _368 = clamp(log2(max(1.0f, _364)), 0.0f, U_1_m0.march.w - 1.0f); if (U_1_m0.flags.x == 1u) { return t_screen.SampleLevel(s_linear, uv, _368).xyz; } int _376 = (U_1_m0.flags.x == 2u) ? 4 : 8; float _378 = max(_368 - 1.0f, 0.0f); float _379 = 0.5f * _364; float2 _384 = float2(_379, _379) / U_1_m0.size.xy; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _376)) { break; } float _416 = (6.283185482025146484375f * (float(i) + turn)) / float(_376); sum += t_screen.SampleLevel(s_linear, uv + (float2(cos(_416), sin(_416)) * _384), _378).xyz; i++; continue; } float _430 = float(_376); return sum / float3(_430, _430, _430); } float4 merge_weight(float3 f0, float nv, float fade) { float _292 = clamp(1.0f - nv, 0.0f, 1.0f); float3 _299 = f0 + ((float3(1.0f, 1.0f, 1.0f) - f0) * ((((_292 * _292) * _292) * _292) * _292)); float _300 = clamp(fade, 0.0f, 1.0f); return float4(_299 * _300, max(max(_299.x, _299.y), _299.z) * _300); } void frag_main() { bool _474 = false; float lo = 0.0f; int i = 0; float zr_from = 0.0f; float3 v = float3(0.0f, 0.0f, -1.0f); float hi = 0.0f; bool _465 = false; float t_hit = -1.0f; float len = 0.0f; int k = 0; bool _467 = false; int taken = 0; float t_prev = 0.0f; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); int2 _480 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); int2 _486 = source_px(float2(_480) + float2(0.5f, 0.5f)); int _487; spvTextureSize(t_nd, 0u, _487); int _489 = int(min(uint(0), uint(int(_487) - 1))); uint _490_dummy_parameter; float4 _494 = t_nd.Load(int3(int2(min(uint2(_486), uint2(int2(spvTextureSize(t_nd, uint(_489), _490_dummy_parameter)) - int2(1, 1)))), _489)); if (_494.w <= 0.0f) { _437 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } int _499; spvTextureSize(t_surface, 0u, _499); int _501 = int(min(uint(0), uint(int(_499) - 1))); uint _502_dummy_parameter; float4 _506 = t_surface.Load(int3(int2(min(uint2(_486), uint2(int2(spvTextureSize(t_surface, uint(_501), _502_dummy_parameter)) - int2(1, 1)))), _501)); float _509 = smoothstep(0.4000000059604644775390625f, 0.699999988079071044921875f, 1.0f - _506.w); if (_509 <= 0.0f) { _437 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } float3 _514 = normalize(_494.xyz); float3 _522 = view_at((float2(_486) + float2(0.5f, 0.5f)) / U_1_m0.size.xy, _494.w); if (U_1_m0.cam.z <= 0.5f) { v = normalize(_522); } float3 _531 = normalize(reflect(v, _514)); if (dot(_531, _514) < 0.001000000047497451305389404296875f) { _437 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } len = U_1_m0.cam.y; if ((_522.z + (_531.z * U_1_m0.cam.y)) > (-U_1_m0.cam.x)) { len = ((-U_1_m0.cam.x) - _522.z) / _531.z; } float3 _555 = _522 + (_531 * len); float3 _556 = to_target(_522); float3 _557 = to_target(_555); float _560 = _522.z * _556.z; float2 _565 = _556.xy / U_1_m0.size.zw; float2 _569 = (_557.xy - _556.xy) / U_1_m0.size.zw; float _597 = min(min(min(1.0f, (0.9900000095367431640625f * (1.0f - _565.x)) / max(9.9999997473787516355514526367188e-06f, _569.x)), (0.9900000095367431640625f * (1.0f - _565.y)) / max(9.9999997473787516355514526367188e-06f, _569.y)), min((0.9900000095367431640625f * _565.x) / max(9.9999997473787516355514526367188e-06f, -_569.x), (0.9900000095367431640625f * _565.y) / max(9.9999997473787516355514526367188e-06f, -_569.y))); float2 _601 = (_557.xy - _556.xy) * _597; float _603 = ((_555.z * _557.z) - _560) * _597; float _607 = (_557.z - _556.z) * _597; float _612 = max(abs(_601.x), abs(_601.y)); if (_612 < 1.0f) { _437 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } int _619 = int(clamp(U_1_m0.march.x, -2147483648.0f, 2147483520.0f)); float _622 = max(1.0f, _612 / float(_619)); float _623 = dither(_480); zr_from = -_522.z; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _619)) { break; } float _651 = 1.0f + (_622 * (float(i) + _623)); if (_651 > _612) { break; } float _655 = _651 / _612; float _660 = ray_depth(_560, _603, _556.z, _607, _655); float4 _662 = march_at(floor(_556.xy + (_601 * _655))); if (_662.w > 0.0f) { _465 = _662.w < _660; } else { _465 = false; } if (_465) { if (dot(_531, _662.xyz) < 0.001000000047497451305389404296875f) { if (_662.w >= (min(zr_from, _660) - U_1_m0.cam.w)) { _467 = _662.w < (0.949999988079071044921875f * U_1_m0.cam.y); } else { _467 = false; } if (_467) { t_hit = _651; taken = i; } break; } } zr_from = _660; t_prev = _651; i++; continue; } if (t_hit < 0.0f) { _437 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } lo = t_prev; hi = t_hit; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(k < 4)) { break; } float _725 = hi; float _727 = (lo + _725) * 0.5f; float _728 = _727 / _612; float4 _735 = march_at(floor(_556.xy + (_601 * _728))); float _736 = _735.w; if (_736 > 0.0f) { _474 = _736 < ray_depth(_560, _603, _556.z, _607, _728); } else { _474 = false; } if (_474) { hi = _727; } else { lo = _727; } k++; continue; } float2 _752 = _556.xy + (_601 * (hi / _612)); float _758 = (step_fade(float(taken)) * margin_fade(_752, U_1_m0.size.zw)) * _509; if (_758 <= 0.0f) { _437 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } float4 _778 = merge_weight(_506.xyz, clamp(dot(_514, -v), 0.0f, 1.0f), _758); _437 = float4(ssr_colour(_752 / U_1_m0.size.zw, (length(_752 - _556.xy) * U_1_m0.size.x) / U_1_m0.size.zw.x, _506.w, _623) * _778.xyz, _778.w); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._437 = _437; return stage_output; }  fs_ssr_mergemainÐstruct SsrU { float4 size; float4 cam; float4 march; uint4 flags; row_major float4x4 proj; row_major float4x4 inv_proj; }; static const uint _50[16] = { 0u, 8u, 2u, 10u, 12u, 4u, 14u, 6u, 3u, 11u, 1u, 9u, 15u, 7u, 13u, 5u }; cbuffer U : register(b0) { SsrU U_1_m0 : packoffset(c0); }; Texture2D t_nd : register(t0); Texture2D t_ssr : register(t3); Texture2D t_march : register(t4); static float4 gl_FragCoord; static float4 _325; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _325 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float4 march_at(float2 t) { int _115; spvTextureSize(t_march, 0u, _115); int _118 = int(min(uint(0), uint(int(_115) - 1))); uint _119_dummy_parameter; return t_march.Load(int3(int2(min(uint2(int2(clamp(clamp(t, float2(0.0f, 0.0f), U_1_m0.size.zw - float2(1.0f, 1.0f)), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_march, uint(_118), _119_dummy_parameter)) - int2(1, 1)))), _118)); } void frag_main() { float4 sum = float4(0.0f, 0.0f, 0.0f, 0.0f); float weights = 0.0f; int j = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); int2 _345 = int2(clamp(floor(gl_FragCoord.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); int _346; spvTextureSize(t_nd, 0u, _346); int _348 = int(min(uint(0), uint(int(_346) - 1))); uint _349_dummy_parameter; float4 _353 = t_nd.Load(int3(int2(min(uint2(_345), uint2(int2(spvTextureSize(t_nd, uint(_348), _349_dummy_parameter)) - int2(1, 1)))), _348)); float _354 = _353.w; if (_354 <= 0.0f) { _325 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } if (U_1_m0.flags.y == 0u) { int _365; spvTextureSize(t_ssr, 0u, _365); int _367 = int(min(uint(0), uint(int(_365) - 1))); uint _368_dummy_parameter; _325 = t_ssr.Load(int3(int2(min(uint2(_345), uint2(int2(spvTextureSize(t_ssr, uint(_367), _368_dummy_parameter)) - int2(1, 1)))), _367)); return; } float2 _383 = (((float2(_345) + float2(0.5f, 0.5f)) * U_1_m0.size.zw) / U_1_m0.size.xy) - float2(0.5f, 0.5f); float2 _384 = floor(_383); float2 _385 = _383 - _384; float2 _386 = U_1_m0.size.zw - float2(1.0f, 1.0f); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(j < 4)) { break; } int _413 = j; int _416 = j; float2 _419 = float2(float(_413 & 1), float(_416 >> int(1u))); float2 _421 = clamp(_384 + _419, float2(0.0f, 0.0f), _386); float4 _435 = march_at(_421); float _436 = _435.w; if (_436 <= 0.0f) { int _460 = j; j = _460 + 1; continue; } float _444 = (((_419.x > 0.5f) ? _385.x : (1.0f - _385.x)) * ((_419.y > 0.5f) ? _385.y : (1.0f - _385.y))) / (0.001000000047497451305389404296875f + (abs(_436 - _354) / _354)); int _448; spvTextureSize(t_ssr, 0u, _448); int _450 = int(min(uint(0), uint(int(_448) - 1))); uint _451_dummy_parameter; sum += (t_ssr.Load(int3(int2(min(uint2(int2(clamp(_421, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ssr, uint(_450), _451_dummy_parameter)) - int2(1, 1)))), _450)) * _444); weights += _444; int _460 = j; j = _460 + 1; continue; } if (weights <= 9.9999999392252902907785028219223e-09f) { _325 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } _325 = sum / float4(weights, weights, weights, weights); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._325 = _325; return stage_output; }  Àr{ÎC$trèHSLTSsrUÀsizeÿÿÿÿcamÿÿÿÿmarch ÿÿÿÿflags0ÿÿÿÿproj@ÿÿÿÿinv_proj€ÿÿÿÿU_blockÀUt_ndÿÿÿÿvs_ssrvs_ssrfs_ssr_nd_halffs_ssr_nd_half fs_ssr_trace fs_ssr_trace fs_ssr_merge fs_ssr_mergeÐQ#Ã2 GLSL.std.450¸vs_ssr³¶ Ñfs_ssr_nd_halfÍÐ æfs_ssr_traceãå ?fs_ssr_merge<>Ñæ?H #H #H # H #0H #@H H H #€H H G GG"G!GH#G"G!G "G !G!"G!!G""G"!G$"G$!G%"G%!G³ *G¶ GÍ GÐGã GåG< G>       + +++oƒ:+33s?++++ÛI@ ;  ;; ;! # ;#";$;%!)+*++ +, +-+.+/+0 +1 +2+3+4 +5,6*+,-./012345+7+8€A : B!K L +N, ONN+P€?, QPP S+bÏ, cbb+dÿÿÿN, edd!k +n+x,|xx!„ +†@+‡? ‰ ˜!¨!Å+ǽ7†5+Èw¾? Ê!è )é+êÍÌL= ì.í.ï.ñ!!,"PPP!=!K +O,PNNN+QÛÉ@.S U W Y Zh † ‡†,†ˆ+‰ÿÿÿÿ,†Š‰‰ ´;´³ ·;·¶!¹+º€¿, »ºº+¼@@, ½¼º, ¾º¼, ¿»½¾ Á Ã È Î;ÎÍ;·Ð, Ô‡‡,Þxx;Îã;·å,íNNNN+îÍÌÌ>+ï333?,ðNNº+ñ¤p}?+ò¬Å'7*ó.ö.ù.þ....,xx,#xx;Î<;·>+DwÌ+2 F,Rxx,cxx,±xx6()7'ø&;:96ù;ø;Q<'Ç=<7„>=Q?'Ç@?7€A>@ C&A2ABD9C=EDpFEˆGF8þG86JK7 IøHALMùRøRASTM=UTO VUU… WIVASXM=YXO ZYYˆ [WZ  \[AS]M=^]O _^^ƒ `_Q  a+\O`  f+acengfþg86jk7 iøhALl= m%ùoøoASpl=qpO rqqƒ srQ  t+iOs  u+tcenvujwm‚ywx z&nyg{mz‚}{| ~&v}_m~zþ86ƒ„7 �7‚ø€AL…ùˆøˆA‰Š…5=‹ŠQŒ�…�†ŒƒŽ�PQ��…�†�ƒ‘P�P’Ž‘NP‘“‹’O”““Q•“P–•••ˆ—”–A˜™…=š™º›š‡÷œú›�œø�O ž——Ÿ‚P žŸþ øœQ¡—¢¡ˆ£‚¢Ž¤—£þ¤86§¨7¦ø¥AL©ùªøªA‰«©-=¬«P­¦P‘®¬­O ¯®®Q°®P ±°°ˆ ²¯±Q³²…´³‡�µ´‡A˜¶©=·¶…¸µ·Q¹²…º¹‡ƒ»‡ºA˜¼©=½¼…¾»½Q¿®ˆÀP¿PÁ¸¾ÀþÁ86ÄÅ7ÃøÂ;ÊÉPALÆùËøË�ÌÃPA˜ÍÆ=ÎÍ Ï(ÎPˆÐÌÏ Ñ+ÐNPA˜ÒÆ=ÓÒºÔÓN÷ÕúÔÖÕøÖA˜×Æ=Ø× ÙÑØ>ÉÙùÕøÕƒÚPÑ Û(ÚÇA˜ÜÆ=ÝÜ Þ(ÝN ßÛÞ=àÉ…áßàºâáÈ©ãâPáþã86çè7 å7 æøä;ìëí;ìîï;ìðñùòøòQóå¸ôóN¨õô÷öúõ÷øø÷Qùå¸úùN>ëúùöøø>ëéùöøö=ûë¨üû÷ýúüþÿøþQåQæº>îùýøÿ>îéùýøý=î¨÷úøQåQ æº  >ð ùø>ðéùø= ð÷ ú   ø þNø QæQæ�…êƒ æåŽ 懸å© å…QQ… 1Nþ86 !777øù#ø#ƒ$P %+$NP…&%%…'&%…('%…)(%ƒ*"Ž+*)�,+ -+NPŽ.,-Q/,Q0, 1(/0Q2, 3(12…43-P5.4þ586<=7778797:7;ø6ù>ø>…?8;�@7?A@…B:;�C9BˆDACþD86JK7 F7G7H7IøE;ìRS;UTP;WVn;‡‹ŠALL= M!= N"ùXøXAZ[L=\[A˜]L=^]ª_\¨`_÷aú`bcøb¼d^P>Rdùaøc>Réùaøa=eR÷fúegføgVhiMNXjiFNOkjjþkøf…lGH…mlH n(Pm onƒp^P q+oNpªr\÷súrtsøtVhuMNXvuFqOwvvþwøsªx\©yxOƒzqP {(zN…|‡mP }||AS~L=~O €ˆ �}€ù‚ø‚öƒ…ùŒøŒ=†�‹ªŽˆ�›�Ž÷�ú�ƒ�ø�Q‘�ª’‘©“’P†”“‚†•�”>‹•ù„ø„=–V±—–y÷˜ú—˜™ø™ùƒø˜ùšøš=œVo�œ�ž�I…ŸQžo yˆ¡Ÿ =¢T £¡ ¤ ¡P ¥£¤… ¦¥�� §F¦Vh¨MNX©¨§{Oª©©�«¢ª>T«ù›ø›ù…ø…=¬V€­¬x>V­ù‚øƒ=®To¯yP°¯¯¯ˆ±®°þ±86¸¹ø²;ÁÀ¿=µ³ùÂøÂ Ä&µAÃÅÀÄ= ÆÅPÇÆNP>¶ÇAÈɶ=ÊÉËÊ>ÉËý86ѹøÌ=ÏÍALÒ= ÓùÕøÕO ÖÏÏ  ×Ö� Ø×Ô9ÙJØjÚÓ‚ÛÚx Ü&nÛgÝÓÜ‚ßÝÞ à&Ùß_áÓàÜ>Ðáý86æ¹øâ;ì;Ê;Wün;Êøù;Uôð;Ê;ìýþ;Êúº;Êõö;Wn;ìÿ;Wûn;Ê÷N;‡¢Š;‡ïŠ=äãALç= è= é = ê!= ë"= ì%ùøO ää     + cen  AS ç= O o  � Ô9Jjè‚x &ngè‚ &_èQ¼N÷úø>åíýøjé‚ x !&n g"é!‚$"# %&$_&é%!Q'&ƒ(P' )1îï(¼*)N÷+ú*,+ø,>åíýø+O- .E-o /� 0/ÔAS1ç=21O 322ˆ 403Q596ƒ45A˜7ç=87¼98‡÷:ú9;:ø; <E6>ô<ù:ø:==ô >G=. ?E>”@?.¸A@÷BúACBøC>åíýøBA˜Dç=EDA˜Fç=GF>õGQH6QI?…JIG�KHJLEºMKL÷NúMONøOPEQQ6ƒRPQQS?ˆTRS>õTùNøN=UõŽV?U�W6V9X§69Y§WQZ6Q[X…\Z[Q]WQ^Y…_]^O `XXˆ a`O bYYO cXXƒ dbcˆ edQfaƒgPf…hñgQie j(òiˆkhj l%PkQmaƒnPm…oñnQpe q(òpˆroq s%lrQta…uñtQvewv x(òwˆyuxQza…{ñzQ|e}| ~(ò}ˆ{~ €%y �%s€O ‚YYO ƒXXƒ „‚ƒŽ …„�ƒ†_\…‡†�QˆYQ‰XƒŠˆ‰…‹Š�QŒ… �ŒQŽ… �Ž �(��¸‘�P÷’ú‘“’ø“>åíýø’A˜”ç=•” –+•bdn—–o˜—ˆ™�˜ š(P™9›( Qœ6�œ>ø�ùžøžöŸ¡ù£ø£=†¤¢ª¥ˆ¤›¦¥÷§ú¦Ÿ§ø§Q¨¤ª©¨©ª©P†«ª‚†¬¤«>¢¬ù ø =­ü±®­—÷¯ú®¯°ø°ùŸø¯ù±ø±=³üo´³�µ´›…¶šµ�·P¶º¸·�÷¹ú¸º¹øºùŸø¹ˆ»·�O ¼XXŽ ½…»� ¾¼½Q¿X9 À<\‡¿‹»  Á¾9ÂjÁQúÄÃN÷ÅúÄÆÇøÆQȸÉÈÀ>ýÉùÅøÇ>ýóùÅøÅ=Êý÷ËúÊÌËøÌOÍ”Î?͸ÏÎ÷ÐúÏÑÐøÑQÒÂ=Óø Ô%ÓÀA˜Õç=ÖÕƒ×ÔÖ¾ØÒ×÷ÙúØÚÛøÚQÜÂ…ÝG¸ÞÜÝ>ÿÞùÙøÛ>ÿóùÙøÙ=ßÿ÷àúßáàøá>ú·=âü>ûâùàøàùŸøÐùËøË>øÀ>÷·ù²ø²ù¡ø¡=ãü€äãx>üäùžøŸ=åú¸æåN÷çúæèçøè>åíýøç=é÷>é=êú>êùëøëöìîùðøð=†ñïªòˆñ›óò÷ôúóìôøôQõñªöõ©÷öP†ø÷‚†ùñø>ïùùíøí=ú±ûú÷üúûüýøýùìøüùþøþ==�…‡ˆ�QX9 <\‡‹O XXŽ …�    9 j Q  º  N÷ú ø¸ >ùø>óùø=÷úø>ùø>ùøùÿøÿùîøî=€x>ùëøìO XX=ˆ�Ž …� =ûo9Ä9 ç…! …"!)¼#"N÷$ú#%$ø%>åíýø$O &XXƒ '& (B'A˜)ç=*)…+(*Q,ˆ-+,ˆ .Q/&90J.-/›O1&&=2ô32”4.3 5+4NP96 15"O766…807Q96P:89>å:ý86?¹ø;;FEí;ÊGN;WHn;‡yŠ==<AL@= A= B$= C%ùIøIO J==  KJ  L+KcenMLjNA‚ONx P&nOgQAP‚SQR T&MS_UATPQVU¼WVN÷XúWYXøY>>íýøXAZZ@=[Zª\[÷]ú\^]ø^j_B‚`_x a&n`gbBa‚dbc e&Md_fBea>>fýø]ASg@=hgO ihho jM� kjÔ… lkiASm@=nmO onnˆ ploƒ qpÔ  rqƒ sqrƒ tiQùuøuövxùzøz=†{yª|ˆ{›}|÷~ú}v~ø~Q{ª€©�€P†‚�‚†ƒ{‚>yƒùwøw=„H±…„÷†ú…†‡ø‡ùvø†ùˆøˆ=ŠHÇ‹ŠxoŒ‹=�HÃŽ�o�ŽP �Œ�� ‘r�  ’+‘OtQ“sƒ”P“Q•sQ–�º—–‡©˜—•”Q™sƒšP™Q›sQœ�º�œ‡©ž�›š…Ÿ˜ž9 j’Q¡ ¼¢¡N÷£ú¢¤£ø¤ùxø£ƒ¥¡V ¦¥ˆ§¦V�¨§ˆ©Ÿ¨=ªE  «+’cen¬«j­B‚®­x ¯&n®g°B¯‚²°± ³&¬²_´B³¯Žµ´©�¶ªµ>E¶=·G�¸·©>G¸ù‰ø‰ùxøx=¹H€º¹x>Hºùuøv=»G¼¼»D÷½ú¼¾½ø¾>>íýø½=¿E=ÀGPÁÀÀÀÀˆÂ¿Á>>Âý8 À#ŸÈkö©~>ÊË!hedra_engine/shaders/render/probejÔ˜èBTSR ss9¬HL ôe9-f0f7gfÕ+ <’9u’‚/ ÷Á90ÂLœ0 èò9dvs_probefs_probe_place fs_probe_down fs_probe_copyfs_probe_filterUt_srcvs_probevs_probefs_probe_placefs_probe_place fs_probe_down fs_probe_down fs_probe_copy fs_probe_copyfs_probe_filterfs_probe_filter×struct FilterU { info: vec4, samples: array, 64>, } @group(0) @binding(0) var U: FilterU; @group(0) @binding(1) var t_src: texture_2d; fn cube_dir(face: u32, u: f32, v: f32) -> vec3 { var d: vec3; let sc_1 = ((u * 2f) - 1f); let tc_1 = ((v * 2f) - 1f); switch face { case 0u: { d = vec3(1f, -(tc_1), -(sc_1)); } case 1u: { d = vec3(-1f, -(tc_1), sc_1); } case 2u: { d = vec3(sc_1, 1f, tc_1); } case 3u: { d = vec3(sc_1, -1f, -(tc_1)); } case 4u: { d = vec3(sc_1, -(tc_1), 1f); } default: { d = vec3(-(sc_1), -(tc_1), -1f); } } let _e31 = d; return normalize(_e31); } fn face_uv(d_1: vec3) -> vec3 { var face_1: f32; var ma: f32; var sc: f32; var tc: f32; var local: bool; let a = abs(d_1); if (a.x >= a.y) { local = (a.x >= a.z); } else { local = false; } let _e15 = local; if _e15 { ma = a.x; if (d_1.x >= 0f) { face_1 = 0f; sc = -(d_1.z); tc = -(d_1.y); } else { face_1 = 1f; sc = d_1.z; tc = -(d_1.y); } } else { if (a.y >= a.z) { ma = a.y; if (d_1.y >= 0f) { face_1 = 2f; sc = d_1.x; tc = d_1.z; } else { face_1 = 3f; sc = d_1.x; tc = -(d_1.z); } } else { ma = a.z; if (d_1.z >= 0f) { face_1 = 4f; sc = d_1.x; tc = -(d_1.y); } else { face_1 = 5f; sc = -(d_1.x); tc = -(d_1.y); } } } let _e56 = face_1; let _e57 = sc; let _e58 = ma; let _e64 = tc; let _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1f) * 0.5f), (((_e64 / _e65) + 1f) * 0.5f)); } fn tap(level: u32, fuv: vec3, base: u32) -> vec3 { let size = max((base >> level), 1u); let top = f32((size - 1u)); let px = clamp(((fuv.y * f32(size)) - 0.5f), 0f, top); let py = clamp(((fuv.z * f32(size)) - 0.5f), 0f, top); let x0_ = u32(px); let y0_ = u32(py); let x1_ = min((x0_ + 1u), (size - 1u)); let y1_ = min((y0_ + 1u), (size - 1u)); let fx = (px - f32(x0_)); let fy = (py - f32(y0_)); let off = (u32(fuv.x) * size); let _e45 = textureLoad(t_src, vec2((off + x0_), y0_), level); let c00_ = _e45.xyz; let _e50 = textureLoad(t_src, vec2((off + x1_), y0_), level); let c10_ = _e50.xyz; let _e55 = textureLoad(t_src, vec2((off + x0_), y1_), level); let c01_ = _e55.xyz; let _e60 = textureLoad(t_src, vec2((off + x1_), y1_), level); let c11_ = _e60.xyz; return ((((c00_ * ((1f - fx) * (1f - fy))) + (c10_ * (fx * (1f - fy)))) + (c01_ * ((1f - fx) * fy))) + (c11_ * (fx * fy))); } @vertex fn vs_probe(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4 { var pts: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); let _e13 = pts[vi]; return vec4(_e13, 0f, 1f); } @fragment fn fs_probe_place(@builtin(position) pos: vec4) -> @location(0) vec4 { let _e2 = textureDimensions(t_src); let n = _e2.y; let p = vec2(pos.xy); let x = (p.x % n); let _e16 = textureLoad(t_src, vec2(((n - 1u) - x), (p.y % n)), 0i); return vec4(_e16.xyz, 1f); } @fragment fn fs_probe_down(@builtin(position) pos_1: vec4) -> @location(0) vec4 { let p_1 = (vec2(pos_1.xy) * 2u); let _e7 = textureLoad(t_src, p_1, 0i); let _e15 = textureLoad(t_src, (p_1 + vec2(1u, 0u)), 0i); let _e24 = textureLoad(t_src, (p_1 + vec2(0u, 1u)), 0i); let _e33 = textureLoad(t_src, (p_1 + vec2(1u, 1u)), 0i); let c = (((_e7.xyz + _e15.xyz) + _e24.xyz) + _e33.xyz); return vec4((c * 0.25f), 1f); } @fragment fn fs_probe_copy(@builtin(position) pos_2: vec4) -> @location(0) vec4 { let _e2 = textureDimensions(t_src); let n_1 = _e2.y; let p_2 = vec2(pos_2.xy); let _e12 = textureLoad(t_src, vec2(p_2.x, (p_2.y % n_1)), 0i); return vec4(_e12.xyz, 1f); } @fragment fn fs_probe_filter(@builtin(position) pos_3: vec4) -> @location(0) vec4 { var up: vec3 = vec3(0f, 0f, 1f); var sum: vec3 = vec3(0f); var i: u32 = 0u; let _e3 = textureDimensions(t_src, 0i); let base_1 = _e3.y; let _e8 = U.info.z; let m = u32(_e8); let n_2 = max((base_1 >> m), 1u); let p_3 = vec2(pos_3.xy); let face_2 = (p_3.x / n_2); let x_1 = (p_3.x % n_2); let y = (p_3.y % n_2); let inv = (1f / f32(n_2)); let _e32 = cube_dir(face_2, ((f32(x_1) + 0.5f) * inv), ((f32(y) + 0.5f) * inv)); if (abs(_e32.z) > 0.999f) { up = vec3(1f, 0f, 0f); } let _e46 = up; let t = normalize(cross(_e46, _e32)); let b = cross(_e32, t); let _e53 = U.info.x; if !((_e53 > 0f)) { let _e58 = face_uv(_e32); let _e59 = tap(0u, _e58, base_1); return vec4(_e59, 1f); } let _e68 = U.info.y; let used = u32(_e68); loop { let _e72 = i; if (_e72 < used) { } else { break; } { let _e76 = i; let s = U.samples[(_e76 * 2u)]; let _e83 = i; let w = U.samples[((_e83 * 2u) + 1u)]; let _e98 = face_uv((((t * s.x) + (b * s.y)) + (_e32 * s.z))); let first = u32(s.w); let _e101 = sum; let _e102 = tap(first, _e98, base_1); sum = (_e101 + (_e102 * w.x)); if (w.y > 0f) { let _e109 = sum; let _e112 = tap((first + 1u), _e98, base_1); sum = (_e109 + (_e112 * w.y)); } } continuing { let _e117 = i; i = (_e117 + 1u); } } let _e119 = sum; let _e123 = U.info.x; return vec4((_e119 * _e123), 1f); }  '(¨D¼J�vs_probemainÄ #version 300 es precision highp float; precision highp int; struct FilterU { vec4 info; vec4 samples[64]; }; vec3 cube_dir(uint face, float u, float v) { vec3 d = vec3(0.0); float sc_1 = ((u * 2.0) - 1.0); float tc_1 = ((v * 2.0) - 1.0); switch(face) { case 0u: { d = vec3(1.0, -(tc_1), -(sc_1)); break; } case 1u: { d = vec3(-1.0, -(tc_1), sc_1); break; } case 2u: { d = vec3(sc_1, 1.0, tc_1); break; } case 3u: { d = vec3(sc_1, -1.0, -(tc_1)); break; } case 4u: { d = vec3(sc_1, -(tc_1), 1.0); break; } default: { d = vec3(-(sc_1), -(tc_1), -1.0); break; } } vec3 _e31 = d; return normalize(_e31); } vec3 face_uv(vec3 d_1) { float face_1 = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local = false; vec3 a = abs(d_1); if ((a.x >= a.y)) { local = (a.x >= a.z); } else { local = false; } bool _e15 = local; if (_e15) { ma = a.x; if ((d_1.x >= 0.0)) { face_1 = 0.0; sc = -(d_1.z); tc = -(d_1.y); } else { face_1 = 1.0; sc = d_1.z; tc = -(d_1.y); } } else { if ((a.y >= a.z)) { ma = a.y; if ((d_1.y >= 0.0)) { face_1 = 2.0; sc = d_1.x; tc = d_1.z; } else { face_1 = 3.0; sc = d_1.x; tc = -(d_1.z); } } else { ma = a.z; if ((d_1.z >= 0.0)) { face_1 = 4.0; sc = d_1.x; tc = -(d_1.y); } else { face_1 = 5.0; sc = -(d_1.x); tc = -(d_1.y); } } } float _e56 = face_1; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } void main() { uint vi = uint(gl_VertexID); vec2 pts[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); vec2 _e13 = pts[vi]; gl_Position = vec4(_e13, 0.0, 1.0); gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_probe_placemain–#version 300 es precision highp float; precision highp int; struct FilterU { vec4 info; vec4 samples[64]; }; uniform highp sampler2D _group_0_binding_1_fs; layout(location = 0) out vec4 _fs2p_location0; vec3 cube_dir(uint face, float u, float v) { vec3 d = vec3(0.0); float sc_1 = ((u * 2.0) - 1.0); float tc_1 = ((v * 2.0) - 1.0); switch(face) { case 0u: { d = vec3(1.0, -(tc_1), -(sc_1)); break; } case 1u: { d = vec3(-1.0, -(tc_1), sc_1); break; } case 2u: { d = vec3(sc_1, 1.0, tc_1); break; } case 3u: { d = vec3(sc_1, -1.0, -(tc_1)); break; } case 4u: { d = vec3(sc_1, -(tc_1), 1.0); break; } default: { d = vec3(-(sc_1), -(tc_1), -1.0); break; } } vec3 _e31 = d; return normalize(_e31); } vec3 face_uv(vec3 d_1) { float face_1 = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local = false; vec3 a = abs(d_1); if ((a.x >= a.y)) { local = (a.x >= a.z); } else { local = false; } bool _e15 = local; if (_e15) { ma = a.x; if ((d_1.x >= 0.0)) { face_1 = 0.0; sc = -(d_1.z); tc = -(d_1.y); } else { face_1 = 1.0; sc = d_1.z; tc = -(d_1.y); } } else { if ((a.y >= a.z)) { ma = a.y; if ((d_1.y >= 0.0)) { face_1 = 2.0; sc = d_1.x; tc = d_1.z; } else { face_1 = 3.0; sc = d_1.x; tc = -(d_1.z); } } else { ma = a.z; if ((d_1.z >= 0.0)) { face_1 = 4.0; sc = d_1.x; tc = -(d_1.y); } else { face_1 = 5.0; sc = -(d_1.x); tc = -(d_1.y); } } } float _e56 = face_1; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 tap(uint level, vec3 fuv, uint base) { uint size = max((base >> level), 1u); float top = float((size - 1u)); float px = clamp(((fuv.y * float(size)) - 0.5), 0.0, top); float py = clamp(((fuv.z * float(size)) - 0.5), 0.0, top); uint x0_ = uint(px); uint y0_ = uint(py); uint x1_ = min((x0_ + 1u), (size - 1u)); uint y1_ = min((y0_ + 1u), (size - 1u)); float fx = (px - float(x0_)); float fy = (py - float(y0_)); uint off = (uint(fuv.x) * size); vec4 _e45 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x0_), y0_)), int(level)); vec3 c00_ = _e45.xyz; vec4 _e50 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x1_), y0_)), int(level)); vec3 c10_ = _e50.xyz; vec4 _e55 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x0_), y1_)), int(level)); vec3 c01_ = _e55.xyz; vec4 _e60 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x1_), y1_)), int(level)); vec3 c11_ = _e60.xyz; return ((((c00_ * ((1.0 - fx) * (1.0 - fy))) + (c10_ * (fx * (1.0 - fy)))) + (c01_ * ((1.0 - fx) * fy))) + (c11_ * (fx * fy))); } void main() { vec4 pos = gl_FragCoord; uint n = uvec2(textureSize(_group_0_binding_1_fs, 0).xy).y; uvec2 p = uvec2(pos.xy); uint x = (p.x % n); vec4 _e16 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2(((n - 1u) - x), (p.y % n))), 0); _fs2p_location0 = vec4(_e16.xyz, 1.0); return; }  fs_probe_downmain^#version 300 es precision highp float; precision highp int; struct FilterU { vec4 info; vec4 samples[64]; }; uniform highp sampler2D _group_0_binding_1_fs; layout(location = 0) out vec4 _fs2p_location0; vec3 cube_dir(uint face, float u, float v) { vec3 d = vec3(0.0); float sc_1 = ((u * 2.0) - 1.0); float tc_1 = ((v * 2.0) - 1.0); switch(face) { case 0u: { d = vec3(1.0, -(tc_1), -(sc_1)); break; } case 1u: { d = vec3(-1.0, -(tc_1), sc_1); break; } case 2u: { d = vec3(sc_1, 1.0, tc_1); break; } case 3u: { d = vec3(sc_1, -1.0, -(tc_1)); break; } case 4u: { d = vec3(sc_1, -(tc_1), 1.0); break; } default: { d = vec3(-(sc_1), -(tc_1), -1.0); break; } } vec3 _e31 = d; return normalize(_e31); } vec3 face_uv(vec3 d_1) { float face_1 = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local = false; vec3 a = abs(d_1); if ((a.x >= a.y)) { local = (a.x >= a.z); } else { local = false; } bool _e15 = local; if (_e15) { ma = a.x; if ((d_1.x >= 0.0)) { face_1 = 0.0; sc = -(d_1.z); tc = -(d_1.y); } else { face_1 = 1.0; sc = d_1.z; tc = -(d_1.y); } } else { if ((a.y >= a.z)) { ma = a.y; if ((d_1.y >= 0.0)) { face_1 = 2.0; sc = d_1.x; tc = d_1.z; } else { face_1 = 3.0; sc = d_1.x; tc = -(d_1.z); } } else { ma = a.z; if ((d_1.z >= 0.0)) { face_1 = 4.0; sc = d_1.x; tc = -(d_1.y); } else { face_1 = 5.0; sc = -(d_1.x); tc = -(d_1.y); } } } float _e56 = face_1; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 tap(uint level, vec3 fuv, uint base) { uint size = max((base >> level), 1u); float top = float((size - 1u)); float px = clamp(((fuv.y * float(size)) - 0.5), 0.0, top); float py = clamp(((fuv.z * float(size)) - 0.5), 0.0, top); uint x0_ = uint(px); uint y0_ = uint(py); uint x1_ = min((x0_ + 1u), (size - 1u)); uint y1_ = min((y0_ + 1u), (size - 1u)); float fx = (px - float(x0_)); float fy = (py - float(y0_)); uint off = (uint(fuv.x) * size); vec4 _e45 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x0_), y0_)), int(level)); vec3 c00_ = _e45.xyz; vec4 _e50 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x1_), y0_)), int(level)); vec3 c10_ = _e50.xyz; vec4 _e55 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x0_), y1_)), int(level)); vec3 c01_ = _e55.xyz; vec4 _e60 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x1_), y1_)), int(level)); vec3 c11_ = _e60.xyz; return ((((c00_ * ((1.0 - fx) * (1.0 - fy))) + (c10_ * (fx * (1.0 - fy)))) + (c01_ * ((1.0 - fx) * fy))) + (c11_ * (fx * fy))); } void main() { vec4 pos_1 = gl_FragCoord; uvec2 p = (uvec2(pos_1.xy) * 2u); vec4 _e7 = texelFetch(_group_0_binding_1_fs, ivec2(p), 0); vec4 _e15 = texelFetch(_group_0_binding_1_fs, ivec2((p + uvec2(1u, 0u))), 0); vec4 _e24 = texelFetch(_group_0_binding_1_fs, ivec2((p + uvec2(0u, 1u))), 0); vec4 _e33 = texelFetch(_group_0_binding_1_fs, ivec2((p + uvec2(1u, 1u))), 0); vec3 c = (((_e7.xyz + _e15.xyz) + _e24.xyz) + _e33.xyz); _fs2p_location0 = vec4((c * 0.25), 1.0); return; }  fs_probe_copymainw#version 300 es precision highp float; precision highp int; struct FilterU { vec4 info; vec4 samples[64]; }; uniform highp sampler2D _group_0_binding_1_fs; layout(location = 0) out vec4 _fs2p_location0; vec3 cube_dir(uint face, float u, float v) { vec3 d = vec3(0.0); float sc_1 = ((u * 2.0) - 1.0); float tc_1 = ((v * 2.0) - 1.0); switch(face) { case 0u: { d = vec3(1.0, -(tc_1), -(sc_1)); break; } case 1u: { d = vec3(-1.0, -(tc_1), sc_1); break; } case 2u: { d = vec3(sc_1, 1.0, tc_1); break; } case 3u: { d = vec3(sc_1, -1.0, -(tc_1)); break; } case 4u: { d = vec3(sc_1, -(tc_1), 1.0); break; } default: { d = vec3(-(sc_1), -(tc_1), -1.0); break; } } vec3 _e31 = d; return normalize(_e31); } vec3 face_uv(vec3 d_1) { float face_1 = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local = false; vec3 a = abs(d_1); if ((a.x >= a.y)) { local = (a.x >= a.z); } else { local = false; } bool _e15 = local; if (_e15) { ma = a.x; if ((d_1.x >= 0.0)) { face_1 = 0.0; sc = -(d_1.z); tc = -(d_1.y); } else { face_1 = 1.0; sc = d_1.z; tc = -(d_1.y); } } else { if ((a.y >= a.z)) { ma = a.y; if ((d_1.y >= 0.0)) { face_1 = 2.0; sc = d_1.x; tc = d_1.z; } else { face_1 = 3.0; sc = d_1.x; tc = -(d_1.z); } } else { ma = a.z; if ((d_1.z >= 0.0)) { face_1 = 4.0; sc = d_1.x; tc = -(d_1.y); } else { face_1 = 5.0; sc = -(d_1.x); tc = -(d_1.y); } } } float _e56 = face_1; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 tap(uint level, vec3 fuv, uint base) { uint size = max((base >> level), 1u); float top = float((size - 1u)); float px = clamp(((fuv.y * float(size)) - 0.5), 0.0, top); float py = clamp(((fuv.z * float(size)) - 0.5), 0.0, top); uint x0_ = uint(px); uint y0_ = uint(py); uint x1_ = min((x0_ + 1u), (size - 1u)); uint y1_ = min((y0_ + 1u), (size - 1u)); float fx = (px - float(x0_)); float fy = (py - float(y0_)); uint off = (uint(fuv.x) * size); vec4 _e45 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x0_), y0_)), int(level)); vec3 c00_ = _e45.xyz; vec4 _e50 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x1_), y0_)), int(level)); vec3 c10_ = _e50.xyz; vec4 _e55 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x0_), y1_)), int(level)); vec3 c01_ = _e55.xyz; vec4 _e60 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x1_), y1_)), int(level)); vec3 c11_ = _e60.xyz; return ((((c00_ * ((1.0 - fx) * (1.0 - fy))) + (c10_ * (fx * (1.0 - fy)))) + (c01_ * ((1.0 - fx) * fy))) + (c11_ * (fx * fy))); } void main() { vec4 pos_2 = gl_FragCoord; uint n = uvec2(textureSize(_group_0_binding_1_fs, 0).xy).y; uvec2 p = uvec2(pos_2.xy); vec4 _e12 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2(p.x, (p.y % n))), 0); _fs2p_location0 = vec4(_e12.xyz, 1.0); return; } fs_probe_filtermain˜#version 300 es precision highp float; precision highp int; struct FilterU { vec4 info; vec4 samples[64]; }; layout(std140) uniform FilterU_block_0Fragment { FilterU _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; layout(location = 0) out vec4 _fs2p_location0; vec3 cube_dir(uint face, float u, float v) { vec3 d = vec3(0.0); float sc_1 = ((u * 2.0) - 1.0); float tc_1 = ((v * 2.0) - 1.0); switch(face) { case 0u: { d = vec3(1.0, -(tc_1), -(sc_1)); break; } case 1u: { d = vec3(-1.0, -(tc_1), sc_1); break; } case 2u: { d = vec3(sc_1, 1.0, tc_1); break; } case 3u: { d = vec3(sc_1, -1.0, -(tc_1)); break; } case 4u: { d = vec3(sc_1, -(tc_1), 1.0); break; } default: { d = vec3(-(sc_1), -(tc_1), -1.0); break; } } vec3 _e31 = d; return normalize(_e31); } vec3 face_uv(vec3 d_1) { float face_1 = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local = false; vec3 a = abs(d_1); if ((a.x >= a.y)) { local = (a.x >= a.z); } else { local = false; } bool _e15 = local; if (_e15) { ma = a.x; if ((d_1.x >= 0.0)) { face_1 = 0.0; sc = -(d_1.z); tc = -(d_1.y); } else { face_1 = 1.0; sc = d_1.z; tc = -(d_1.y); } } else { if ((a.y >= a.z)) { ma = a.y; if ((d_1.y >= 0.0)) { face_1 = 2.0; sc = d_1.x; tc = d_1.z; } else { face_1 = 3.0; sc = d_1.x; tc = -(d_1.z); } } else { ma = a.z; if ((d_1.z >= 0.0)) { face_1 = 4.0; sc = d_1.x; tc = -(d_1.y); } else { face_1 = 5.0; sc = -(d_1.x); tc = -(d_1.y); } } } float _e56 = face_1; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 tap(uint level, vec3 fuv, uint base) { uint size = max((base >> level), 1u); float top = float((size - 1u)); float px = clamp(((fuv.y * float(size)) - 0.5), 0.0, top); float py = clamp(((fuv.z * float(size)) - 0.5), 0.0, top); uint x0_ = uint(px); uint y0_ = uint(py); uint x1_ = min((x0_ + 1u), (size - 1u)); uint y1_ = min((y0_ + 1u), (size - 1u)); float fx = (px - float(x0_)); float fy = (py - float(y0_)); uint off = (uint(fuv.x) * size); vec4 _e45 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x0_), y0_)), int(level)); vec3 c00_ = _e45.xyz; vec4 _e50 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x1_), y0_)), int(level)); vec3 c10_ = _e50.xyz; vec4 _e55 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x0_), y1_)), int(level)); vec3 c01_ = _e55.xyz; vec4 _e60 = texelFetch(_group_0_binding_1_fs, ivec2(uvec2((off + x1_), y1_)), int(level)); vec3 c11_ = _e60.xyz; return ((((c00_ * ((1.0 - fx) * (1.0 - fy))) + (c10_ * (fx * (1.0 - fy)))) + (c01_ * ((1.0 - fx) * fy))) + (c11_ * (fx * fy))); } void main() { vec4 pos_3 = gl_FragCoord; vec3 up = vec3(0.0, 0.0, 1.0); vec3 sum = vec3(0.0); uint i = 0u; uint base_1 = uvec2(textureSize(_group_0_binding_1_fs, 0).xy).y; float _e8 = _group_0_binding_0_fs.info.z; uint m = uint(_e8); uint n = max((base_1 >> m), 1u); uvec2 p = uvec2(pos_3.xy); uint face_2 = (p.x / n); uint x = (p.x % n); uint y = (p.y % n); float inv = (1.0 / float(n)); vec3 _e32 = cube_dir(face_2, ((float(x) + 0.5) * inv), ((float(y) + 0.5) * inv)); if ((abs(_e32.z) > 0.999)) { up = vec3(1.0, 0.0, 0.0); } vec3 _e46 = up; vec3 t = normalize(cross(_e46, _e32)); vec3 b = cross(_e32, t); float _e53 = _group_0_binding_0_fs.info.x; if (!((_e53 > 0.0))) { vec3 _e58 = face_uv(_e32); vec3 _e59 = tap(0u, _e58, base_1); _fs2p_location0 = vec4(_e59, 1.0); return; } float _e68 = _group_0_binding_0_fs.info.y; uint used = uint(_e68); bool loop_init = true; while(true) { if (!loop_init) { uint _e117 = i; i = (_e117 + 1u); } loop_init = false; uint _e72 = i; if ((_e72 < used)) { } else { break; } { uint _e76 = i; vec4 s = _group_0_binding_0_fs.samples[(_e76 * 2u)]; uint _e83 = i; vec4 w = _group_0_binding_0_fs.samples[((_e83 * 2u) + 1u)]; vec3 _e98 = face_uv((((t * s.x) + (b * s.y)) + (_e32 * s.z))); uint first = uint(s.w); vec3 _e101 = sum; vec3 _e102 = tap(first, _e98, base_1); sum = (_e101 + (_e102 * w.x)); if ((w.y > 0.0)) { vec3 _e109 = sum; vec3 _e112 = tap((first + 1u), _e98, base_1); sum = (_e109 + (_e112 * w.y)); } } } vec3 _e119 = sum; float _e123 = _group_0_binding_0_fs.info.x; _fs2p_location0 = vec4((_e119 * _e123), 1.0); return; }  €¤Ÿ(~AÀÉ_group_0_binding_1_fsFilterU_block_0Fragmentvs_probevs_probefs_probe_placefs_probe_place fs_probe_down fs_probe_down fs_probe_copy fs_probe_copyfs_probe_filterfs_probe_filter9+// language: metal2.2 #include #include using metal::uint; struct type_2 { metal::float4 inner[64]; }; struct FilterU { metal::float4 info; type_2 samples; }; struct type_6 { metal::float2 inner[3]; }; metal::float3 cube_dir( uint face, float u, float v ) { metal::float3 d = {}; float sc_1 = (u * 2.0) - 1.0; float tc_1 = (v * 2.0) - 1.0; switch(face) { case 0u: { d = metal::float3(1.0, -(tc_1), -(sc_1)); break; } case 1u: { d = metal::float3(-1.0, -(tc_1), sc_1); break; } case 2u: { d = metal::float3(sc_1, 1.0, tc_1); break; } case 3u: { d = metal::float3(sc_1, -1.0, -(tc_1)); break; } case 4u: { d = metal::float3(sc_1, -(tc_1), 1.0); break; } default: { d = metal::float3(-(sc_1), -(tc_1), -1.0); break; } } metal::float3 _e31 = d; return metal::normalize(_e31); } metal::float3 face_uv( metal::float3 d_1 ) { float face_1 = {}; float ma = {}; float sc = {}; float tc = {}; bool local = {}; metal::float3 a = metal::abs(d_1); if (a.x >= a.y) { local = a.x >= a.z; } else { local = false; } bool _e15 = local; if (_e15) { ma = a.x; if (d_1.x >= 0.0) { face_1 = 0.0; sc = -(d_1.z); tc = -(d_1.y); } else { face_1 = 1.0; sc = d_1.z; tc = -(d_1.y); } } else { if (a.y >= a.z) { ma = a.y; if (d_1.y >= 0.0) { face_1 = 2.0; sc = d_1.x; tc = d_1.z; } else { face_1 = 3.0; sc = d_1.x; tc = -(d_1.z); } } else { ma = a.z; if (d_1.z >= 0.0) { face_1 = 4.0; sc = d_1.x; tc = -(d_1.y); } else { face_1 = 5.0; sc = -(d_1.x); tc = -(d_1.y); } } } float _e56 = face_1; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return metal::float3(_e56, ((_e57 / _e58) + 1.0) * 0.5, ((_e64 / _e65) + 1.0) * 0.5); } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::float3 tap( uint level, metal::float3 fuv, uint base, metal::texture2d t_src ) { uint size = metal::max(base >> level, 1u); float top = static_cast(size - 1u); float px = metal::clamp((fuv.y * static_cast(size)) - 0.5, 0.0, top); float py = metal::clamp((fuv.z * static_cast(size)) - 0.5, 0.0, top); uint x0_ = naga_f2u32(px); uint y0_ = naga_f2u32(py); uint x1_ = metal::min(x0_ + 1u, size - 1u); uint y1_ = metal::min(y0_ + 1u, size - 1u); float fx = px - static_cast(x0_); float fy = py - static_cast(y0_); uint off = naga_f2u32(fuv.x) * size; uint clamped_lod_e45 = metal::min(uint(level), t_src.get_num_mip_levels() - 1); metal::float4 _e45 = t_src.read(metal::min(metal::uint2(metal::uint2(off + x0_, y0_)), metal::uint2(t_src.get_width(clamped_lod_e45), t_src.get_height(clamped_lod_e45)) - 1), clamped_lod_e45); metal::float3 c00_ = _e45.xyz; uint clamped_lod_e50 = metal::min(uint(level), t_src.get_num_mip_levels() - 1); metal::float4 _e50 = t_src.read(metal::min(metal::uint2(metal::uint2(off + x1_, y0_)), metal::uint2(t_src.get_width(clamped_lod_e50), t_src.get_height(clamped_lod_e50)) - 1), clamped_lod_e50); metal::float3 c10_ = _e50.xyz; uint clamped_lod_e55 = metal::min(uint(level), t_src.get_num_mip_levels() - 1); metal::float4 _e55 = t_src.read(metal::min(metal::uint2(metal::uint2(off + x0_, y1_)), metal::uint2(t_src.get_width(clamped_lod_e55), t_src.get_height(clamped_lod_e55)) - 1), clamped_lod_e55); metal::float3 c01_ = _e55.xyz; uint clamped_lod_e60 = metal::min(uint(level), t_src.get_num_mip_levels() - 1); metal::float4 _e60 = t_src.read(metal::min(metal::uint2(metal::uint2(off + x1_, y1_)), metal::uint2(t_src.get_width(clamped_lod_e60), t_src.get_height(clamped_lod_e60)) - 1), clamped_lod_e60); metal::float3 c11_ = _e60.xyz; return (((c00_ * ((1.0 - fx) * (1.0 - fy))) + (c10_ * (fx * (1.0 - fy)))) + (c01_ * ((1.0 - fx) * fy))) + (c11_ * (fx * fy)); } struct vs_probeInput { }; struct vs_probeOutput { metal::float4 member [[position]]; }; vertex vs_probeOutput vs_probe( uint vi [[vertex_id]] ) { type_6 pts = type_6 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; metal::float2 _e13 = pts.inner[metal::min(unsigned(vi), 2u)]; return vs_probeOutput { metal::float4(_e13, 0.0, 1.0) }; } metal::uint2 naga_f2u32(metal::float2 value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } uint naga_mod(uint lhs, uint rhs) { return lhs % metal::select(rhs, 1u, rhs == 0u); } struct fs_probe_placeInput { }; struct fs_probe_placeOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_probe_placeOutput fs_probe_place( metal::float4 pos [[position]] , metal::texture2d t_src [[texture(0)]] ) { uint n = metal::uint2(t_src.get_width(), t_src.get_height()).y; metal::uint2 p = naga_f2u32(pos.xy); uint x = naga_mod(p.x, n); uint clamped_lod_e16 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 _e16 = t_src.read(metal::min(metal::uint2(metal::uint2((n - 1u) - x, naga_mod(p.y, n))), metal::uint2(t_src.get_width(clamped_lod_e16), t_src.get_height(clamped_lod_e16)) - 1), clamped_lod_e16); return fs_probe_placeOutput { metal::float4(_e16.xyz, 1.0) }; } struct fs_probe_downInput { }; struct fs_probe_downOutput { metal::float4 member_2 [[color(0)]]; }; fragment fs_probe_downOutput fs_probe_down( metal::float4 pos_1 [[position]] , metal::texture2d t_src [[texture(0)]] ) { metal::uint2 p_1 = naga_f2u32(pos_1.xy) * 2u; uint clamped_lod_e7 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 _e7 = t_src.read(metal::min(metal::uint2(p_1), metal::uint2(t_src.get_width(clamped_lod_e7), t_src.get_height(clamped_lod_e7)) - 1), clamped_lod_e7); uint clamped_lod_e15 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 _e15 = t_src.read(metal::min(metal::uint2(p_1 + metal::uint2(1u, 0u)), metal::uint2(t_src.get_width(clamped_lod_e15), t_src.get_height(clamped_lod_e15)) - 1), clamped_lod_e15); uint clamped_lod_e24 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 _e24 = t_src.read(metal::min(metal::uint2(p_1 + metal::uint2(0u, 1u)), metal::uint2(t_src.get_width(clamped_lod_e24), t_src.get_height(clamped_lod_e24)) - 1), clamped_lod_e24); uint clamped_lod_e33 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 _e33 = t_src.read(metal::min(metal::uint2(p_1 + metal::uint2(1u, 1u)), metal::uint2(t_src.get_width(clamped_lod_e33), t_src.get_height(clamped_lod_e33)) - 1), clamped_lod_e33); metal::float3 c = ((_e7.xyz + _e15.xyz) + _e24.xyz) + _e33.xyz; return fs_probe_downOutput { metal::float4(c * 0.25, 1.0) }; } struct fs_probe_copyInput { }; struct fs_probe_copyOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_probe_copyOutput fs_probe_copy( metal::float4 pos_2 [[position]] , metal::texture2d t_src [[texture(0)]] ) { uint n_1 = metal::uint2(t_src.get_width(), t_src.get_height()).y; metal::uint2 p_2 = naga_f2u32(pos_2.xy); uint clamped_lod_e12 = metal::min(uint(0), t_src.get_num_mip_levels() - 1); metal::float4 _e12 = t_src.read(metal::min(metal::uint2(metal::uint2(p_2.x, naga_mod(p_2.y, n_1))), metal::uint2(t_src.get_width(clamped_lod_e12), t_src.get_height(clamped_lod_e12)) - 1), clamped_lod_e12); return fs_probe_copyOutput { metal::float4(_e12.xyz, 1.0) }; } uint naga_div(uint lhs, uint rhs) { return lhs / metal::select(rhs, 1u, rhs == 0u); } struct fs_probe_filterInput { }; struct fs_probe_filterOutput { metal::float4 member_4 [[color(0)]]; }; fragment fs_probe_filterOutput fs_probe_filter( metal::float4 pos_3 [[position]] , constant FilterU& U [[buffer(0)]] , metal::texture2d t_src [[texture(0)]] ) { metal::float3 up = metal::float3(0.0, 0.0, 1.0); metal::float3 sum = metal::float3(0.0); uint i = 0u; uint base_1 = metal::uint2(t_src.get_width(0), t_src.get_height(0)).y; float _e8 = U.info.z; uint m = naga_f2u32(_e8); uint n_2 = metal::max(base_1 >> m, 1u); metal::uint2 p_3 = naga_f2u32(pos_3.xy); uint face_2 = naga_div(p_3.x, n_2); uint x_1 = naga_mod(p_3.x, n_2); uint y = naga_mod(p_3.y, n_2); float inv = 1.0 / static_cast(n_2); metal::float3 _e32 = cube_dir(face_2, (static_cast(x_1) + 0.5) * inv, (static_cast(y) + 0.5) * inv); if (metal::abs(_e32.z) > 0.999) { up = metal::float3(1.0, 0.0, 0.0); } metal::float3 _e46 = up; metal::float3 t = metal::normalize(metal::cross(_e46, _e32)); metal::float3 b = metal::cross(_e32, t); float _e53 = U.info.x; if (!((_e53 > 0.0))) { metal::float3 _e58 = face_uv(_e32); metal::float3 _e59 = tap(0u, _e58, base_1, t_src); return fs_probe_filterOutput { metal::float4(_e59, 1.0) }; } float _e68 = U.info.y; uint used = naga_f2u32(_e68); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { uint _e117 = i; i = _e117 + 1u; } loop_init = false; uint _e72 = i; if (_e72 < used) { } else { break; } { uint _e76 = i; metal::float4 s = U.samples.inner[metal::min(unsigned(_e76 * 2u), 63u)]; uint _e83 = i; metal::float4 w = U.samples.inner[metal::min(unsigned((_e83 * 2u) + 1u), 63u)]; metal::float3 _e98 = face_uv(((t * s.x) + (b * s.y)) + (_e32 * s.z)); uint first = naga_f2u32(s.w); metal::float3 _e101 = sum; metal::float3 _e102 = tap(first, _e98, base_1, t_src); sum = _e101 + (_e102 * w.x); if (w.y > 0.0) { metal::float3 _e109 = sum; metal::float3 _e112 = tap(first + 1u, _e98, base_1, t_src); sum = _e109 + (_e112 * w.y); } } } metal::float3 _e119 = sum; float _e123 = U.info.x; return fs_probe_filterOutput { metal::float4(_e119 * _e123, 1.0) }; }  €¤Ÿ(~AÀÉvs_probemain°struct FilterU { float4 info; float4 samples[64]; }; static const float2 _158[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static float4 gl_Position; static int gl_VertexIndex; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float4 gl_Position : SV_Position; }; void vert_main() { gl_Position = float4(_158[min(uint(gl_VertexIndex), 2u)], 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; return stage_output; } fs_probe_placemainYstruct FilterU { float4 info; float4 samples[64]; }; Texture2D t_src : register(t0); static float4 gl_FragCoord; static float4 _265; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _265 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint naga_mod(uint lhs, uint rhs) { return lhs % ((rhs == 0u) ? 1u : rhs); } void frag_main() { uint _272_dummy_parameter; uint2 _272 = spvTextureSize(t_src, 0u, _272_dummy_parameter); uint _273 = _272.y; uint2 _278 = uint2(clamp(gl_FragCoord.xy, float2(0.0f, 0.0f), float2(4294967040.0f, 4294967040.0f))); int _286; spvTextureSize(t_src, 0u, _286); int _288 = int(min(uint(0), uint(int(_286) - 1))); uint _289_dummy_parameter; _265 = float4(t_src.Load(int3(min(uint2((_273 - 1u) - naga_mod(_278.x, _273), naga_mod(_278.y, _273)), (spvTextureSize(t_src, uint(_288), _289_dummy_parameter) - uint2(1u, 1u))), _288)).xyz, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._265 = _265; return stage_output; }  fs_probe_downmain—struct FilterU { float4 info; float4 samples[64]; }; Texture2D t_src : register(t0); static float4 gl_FragCoord; static float4 _256; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _256 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } void frag_main() { uint2 _274 = uint2(clamp(gl_FragCoord.xy, float2(0.0f, 0.0f), float2(4294967040.0f, 4294967040.0f))) * uint2(2u, 2u); int _276; spvTextureSize(t_src, 0u, _276); int _278 = int(min(uint(0), uint(int(_276) - 1))); uint _279_dummy_parameter; int _286; spvTextureSize(t_src, 0u, _286); int _288 = int(min(uint(0), uint(int(_286) - 1))); uint _289_dummy_parameter; int _297; spvTextureSize(t_src, 0u, _297); int _299 = int(min(uint(0), uint(int(_297) - 1))); uint _300_dummy_parameter; int _308; spvTextureSize(t_src, 0u, _308); int _310 = int(min(uint(0), uint(int(_308) - 1))); uint _311_dummy_parameter; _256 = float4((((t_src.Load(int3(min(_274, (spvTextureSize(t_src, uint(_278), _279_dummy_parameter) - uint2(1u, 1u))), _278)).xyz + t_src.Load(int3(min((_274 + uint2(1u, 0u)), (spvTextureSize(t_src, uint(_288), _289_dummy_parameter) - uint2(1u, 1u))), _288)).xyz) + t_src.Load(int3(min((_274 + uint2(0u, 1u)), (spvTextureSize(t_src, uint(_299), _300_dummy_parameter) - uint2(1u, 1u))), _299)).xyz) + t_src.Load(int3(min((_274 + uint2(1u, 1u)), (spvTextureSize(t_src, uint(_310), _311_dummy_parameter) - uint2(1u, 1u))), _310)).xyz) * 0.25f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._256 = _256; return stage_output; }  fs_probe_copymainstruct FilterU { float4 info; float4 samples[64]; }; Texture2D t_src : register(t0); static float4 gl_FragCoord; static float4 _265; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _265 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint naga_mod(uint lhs, uint rhs) { return lhs % ((rhs == 0u) ? 1u : rhs); } void frag_main() { uint _272_dummy_parameter; uint2 _278 = uint2(clamp(gl_FragCoord.xy, float2(0.0f, 0.0f), float2(4294967040.0f, 4294967040.0f))); int _283; spvTextureSize(t_src, 0u, _283); int _285 = int(min(uint(0), uint(int(_283) - 1))); uint _286_dummy_parameter; _265 = float4(t_src.Load(int3(min(uint2(_278.x, naga_mod(_278.y, spvTextureSize(t_src, 0u, _272_dummy_parameter).y)), (spvTextureSize(t_src, uint(_285), _286_dummy_parameter) - uint2(1u, 1u))), _285)).xyz, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._265 = _265; return stage_output; } fs_probe_filtermainSstruct FilterU { float4 info; float4 samples[64]; }; cbuffer U : register(b0) { FilterU U_1_m0 : packoffset(c0); }; Texture2D t_src : register(t0); static float4 gl_FragCoord; static float4 _275; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _275 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint naga_div(uint lhs, uint rhs) { return lhs / ((rhs == 0u) ? 1u : rhs); } uint naga_mod(uint lhs, uint rhs) { return lhs % ((rhs == 0u) ? 1u : rhs); } float3 cube_dir(uint face, float u, float v) { float3 d = float3(0.0f, 0.0f, 0.0f); float _35 = (u * 2.0f) - 1.0f; float _37 = (v * 2.0f) - 1.0f; switch (face) { case 0u: { d = float3(1.0f, -_37, -_35); break; } case 1u: { d = float3(-1.0f, -_37, _35); break; } case 2u: { d = float3(_35, 1.0f, _37); break; } case 3u: { d = float3(_35, -1.0f, -_37); break; } case 4u: { d = float3(_35, -_37, 1.0f); break; } default: { d = float3(-_35, -_37, -1.0f); break; } } return normalize(d); } float3 face_uv(float3 d) { bool _79 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _83 = abs(d); if (_83.x >= _83.y) { _79 = _83.x >= _83.z; } else { _79 = false; } if (_79) { ma = _83.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_83.y >= _83.z) { ma = _83.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _83.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 tap(uint level, float3 fuv, uint base) { uint _162 = max((base >> level), 1u); float _164 = float(_162 - 1u); float _169 = clamp((fuv.y * float(_162)) - 0.5f, 0.0f, _164); float _174 = clamp((fuv.z * float(_162)) - 0.5f, 0.0f, _164); uint _177 = uint(clamp(_169, 0.0f, 4294967040.0f)); uint _179 = uint(clamp(_174, 0.0f, 4294967040.0f)); uint _182 = min((_177 + 1u), (_162 - 1u)); uint _185 = min((_179 + 1u), (_162 - 1u)); float _187 = _169 - float(_177); float _189 = _174 - float(_179); uint _193 = uint(clamp(fuv.x, 0.0f, 4294967040.0f)) * _162; int _197; spvTextureSize(t_src, 0u, _197); int _200 = int(min(level, uint(int(_197) - 1))); uint _201_dummy_parameter; int _209; spvTextureSize(t_src, 0u, _209); int _211 = int(min(level, uint(int(_209) - 1))); uint _212_dummy_parameter; int _220; spvTextureSize(t_src, 0u, _220); int _222 = int(min(level, uint(int(_220) - 1))); uint _223_dummy_parameter; int _231; spvTextureSize(t_src, 0u, _231); int _233 = int(min(level, uint(int(_231) - 1))); uint _234_dummy_parameter; return (((t_src.Load(int3(min(uint2(_193 + _177, _179), (spvTextureSize(t_src, uint(_200), _201_dummy_parameter) - uint2(1u, 1u))), _200)).xyz * ((1.0f - _187) * (1.0f - _189))) + (t_src.Load(int3(min(uint2(_193 + _182, _179), (spvTextureSize(t_src, uint(_211), _212_dummy_parameter) - uint2(1u, 1u))), _211)).xyz * (_187 * (1.0f - _189)))) + (t_src.Load(int3(min(uint2(_193 + _177, _185), (spvTextureSize(t_src, uint(_222), _223_dummy_parameter) - uint2(1u, 1u))), _222)).xyz * ((1.0f - _187) * _189))) + (t_src.Load(int3(min(uint2(_193 + _182, _185), (spvTextureSize(t_src, uint(_233), _234_dummy_parameter) - uint2(1u, 1u))), _233)).xyz * (_187 * _189)); } void frag_main() { float3 up = float3(0.0f, 0.0f, 1.0f); float3 sum = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _293_dummy_parameter; uint2 _293 = spvTextureSize(t_src, uint(0), _293_dummy_parameter); uint _294 = _293.y; uint _302 = max((_294 >> uint(clamp(U_1_m0.info.z, 0.0f, 4294967040.0f))), 1u); uint2 _307 = uint2(clamp(gl_FragCoord.xy, float2(0.0f, 0.0f), float2(4294967040.0f, 4294967040.0f))); float _315 = 1.0f / float(_302); float3 _322 = cube_dir(naga_div(_307.x, _302), (float(naga_mod(_307.x, _302)) + 0.5f) * _315, (float(naga_mod(_307.y, _302)) + 0.5f) * _315); if (abs(_322.z) > 0.999000012874603271484375f) { up = float3(1.0f, 0.0f, 0.0f); } float3 _330 = normalize(cross(up, _322)); float3 _331 = cross(_322, _330); if (!(U_1_m0.info.x > 0.0f)) { _275 = float4(tap(0u, face_uv(_322), _294), 1.0f); return; } uint _344 = uint(clamp(U_1_m0.info.y, 0.0f, 4294967040.0f)); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _344)) { break; } uint _375 = min((i * 2u), 63u); uint _381 = min(((i * 2u) + 1u), 63u); float3 _392 = face_uv(((_330 * U_1_m0.samples[_375].x) + (_331 * U_1_m0.samples[_375].y)) + (_322 * U_1_m0.samples[_375].z)); uint _395 = uint(clamp(U_1_m0.samples[_375].w, 0.0f, 4294967040.0f)); sum += (tap(_395, _392, _294) * U_1_m0.samples[_381].x); if (U_1_m0.samples[_381].y > 0.0f) { sum += (tap(_395 + 1u, _392, _294) * U_1_m0.samples[_381].y); } i++; continue; } _275 = float4(sum * U_1_m0.info.x, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._275 = _275; return stage_output; }  €¤Ÿ(~AÀÉHSLTt_srcÿÿÿÿvs_probevs_probefs_probe_placefs_probe_place fs_probe_down fs_probe_down fs_probe_copy fs_probe_copyfs_probe_filterfs_probe_filter0#+2 GLSL.std.450vs_probe &fs_probe_place"% Ffs_probe_downCE ‚fs_probe_copy� £fs_probe_filter ¢&F‚£GH#H#G G"G!GH#G"G!G *G G" G%GC GEG G�G  G¢  +@  +    ;  ;!+@+€?+€¿ . !?*@+A+B@@+C€@+D @+E? G.H.J.L.N P.Q!�+Ÿ+¯ÿÿOÄ +ÄÆ, ÊŸŸ, ÕŸŸ, àŸŸ, 럟 ; ;!, , B, B,      + !+ #;#";%+Ä(, -AA, .¯¯, <ŸŸ;#C;E, HŸ, IŸ, JŸŸ+K€>, VŸŸ, `ŸŸ, kŸŸ, vŸŸ;#;�, ’ŸŸ;# ;¢ ¤,§AA+¨w¾?,©AA,ªAAA ® ² ³ æ ç, è+éÿÿÿÿ, êéé ü+ÿ?6777ø; ù!ø!…"ƒ#"…$ƒ%$÷&û ,'()*+ø'-%.#P/-.>/ù&ø(0%P10#>1ù&ø)P2#%>2ù&ø*3%P4#3>4ù&ø+5%P6#5>6ù&ø,7#8%P978>9ù&ø&=: ;E:þ;86>?7=ø<;POQ;GIJ;GMN;GFH;GKLùRøR S=QTSQUS¾VTU÷WúVXYøXQZSQ[S¾\Z[>O\ùWøY>O@ùWøW=]O÷^ú]_`ø_QaS>IaQb=¾cbA÷dúceføe>FAQg=hg>KhQi=ji>Mjùdøf>FQk=>KkQl=ml>Mmùdødù^ø`QnSQoS¾pno÷qúprsørQtS>ItQu=¾vuA÷wúvxyøx>FQz=>KzQ{=>M{ùwøy>FBQ|=>K|Q}=~}>M~ùwøwùqøsQS>IQ€=¾�€A÷‚ú�ƒ„øƒ>FCQ…=>K…Q†=‡†>M‡ù‚ø„>FDQˆ=‰ˆ>K‰QŠ=‹Š>M‹ù‚ø‚ùqøqù^ø^=ŒF=�K=ŽIˆ��Ž���…‘�E=’M=“Iˆ”’“�•”…–•EP—Œ‘–þ—86œ�7™7š7›ø˜= žù ø Â¡›™ ¢)¡Ÿ‚£¢Ÿp¤£Q¥šp¦¢…§¥¦ƒ¨§E ©+¨A¤Qªšp«¢…¬ª«ƒ­¬E ®+­A¤ °+©A¯m±° ²+®A¯m³²€´±Ÿ‚µ¢Ÿ ¶&´µ€·³Ÿ‚¸¢Ÿ ¹&·¸pº±ƒ»©ºp¼³ƒ½®¼Q¾š ¿+¾A¯mÀ¿„ÁÀ¢€ÂÁ±P ójÄÅž‚ÄÇÅÆ ÄÈ&™Çg ɞȂ ËÉÊ  Ì&ÃË_ÍžÌÈOÎÍÍ€ÏÁ¶P ÐϳjÄÑž‚ÄÒÑÆ ÄÓ&™Òg ÔžÓ‚ ÖÔÕ  ×&ÐÖ_Øž×ÓOÙØØ€ÚÁ±P ÛÚ¹jÄÜž‚ÄÝÜÆ ÄÞ&™Ýg ßžÞ‚ áßà  â&Ûá_ãžâÞOäãã€åÁ¶P æå¹jÄçž‚ÄèçÆ Äé&™èg êžé‚ ìêë  í&æì_îžíéOïîîƒð»ƒñ½…òðñŽóÎòƒô½…õ»ôŽöÙõ�÷óöƒø»…ùø½Žúäù�û÷ú…ü»½Žýïü�þûýþþ86øÿ;   =ù ø  &A = PA>AŸ=>ý8677øª©Ÿ‰ þ 86&ø!=$"= 'ù)ø)g *'Q+*O ,$$  /+,-.m 0/Q10921+‚3+Ÿ‚432Q50965+P 746jÄ8'‚Ä98Æ Ä:&(9g ;':‚ =;<  >&7=_?'>:O@??PA@>%Aý86FøB=DC= GùLøLO MDD  N+M-.m ONP Q„ POQjÄRG‚ÄSRÆ ÄT&(Sg UGT‚ WUV  X&PW_YGXTOZYY€ [PHjÄ\G‚Ä]\Æ Ä^&(]g _G^‚ a_`  b&[a_cGb^Odcc�eZd€ fPIjÄgG‚ÄhgÆ Äi&(hg jGi‚ ljk  m&fl_nGmiOonn�peo€ qPJjÄrG‚ÄsrÆ Ät&(sg uGt‚ wuv  x&qw_yGxtOzyy�{pzŽ|{KP}|>E}ý86‚ø~=€= ƒù„ø„g …ƒQ†…O ‡€€  ˆ+‡-.m ‰ˆQЉQ‹‰9Œ‹†P �ŠŒjÄŽƒ‚Ä�ŽÆ Ä�&(�g ‘ƒ�‚ “‘’  ”&�“_•ƒ”�O–••P—–>�—ý86˜7™7šø›ªœš©�œŸš†ž™�þž86£øŸ;«§;¬ª;®­;æëê=¡ A¤¥= ¦ù¯ø¯g °¦(Q±°A³´¥=µ´ ¶+µA¯m·¶Â¸±· ¹)¸ŸO º¡¡  »+º-.m ¼»Q½¼9¾˜½¹Q¿¼9À¿¹QÁ¼9ÂÁ¹pùˆÄÃpÅÀ�ÆÅE…ÇÆÄpÈÂ�ÉÈE…ÊÉÄ9˾ÇÊQÌË Í̺Îͨ÷ÏúÎÐÏøÐ>«©ùÏøÏ=Ñ« ÒDÑË ÓEÒ ÔDËÓA³Õ¥=ÖÕº×ÖA¨Ø×÷ÙúØÚÙøÚ9Û>Ë9ܜ۱PÝÜ>¢ÝýøÙA³Þ¥Ÿ=ßÞ à+ßA¯máàùâøâöãåùìøì= íëªçîèí›ïî÷ðúïãðøðQñíªòñ©óòŸP ôóŸ‚ õíô>ëõùäøä=ö­°÷öá÷øú÷øùøùùãøøùúøú=ý­„þý &þÿA²¥Ÿ==­„€Ÿ &ÿA²¥Ÿ=Q Ž Ó Q Ž Ô �   QŽË� 9>Q +A¯m=¬9œ±QŽ�>¬QºA÷úø=¬€Ÿ9 œ±Q!Ž" !�#">¬#ùøùûøûùåøå=$­€%$Ÿ>­%ùâøã=&¬A³'¥=('Ž)&(P*)>¢*ý8 '(¨D¼J�ÊË(hedra_engine/shaders/render/shadow_clearjÔ¯BTSR :: Fz À ÌÏY ( 4� Á Í Ù<  vs_shadow_clearvs_shadow_clearvs_shadow_clear@vertex fn vs_shadow_clear(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4 { var pts: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); let _e13 = pts[vi]; return vec4(_e13, 1f, 1f); }  vs_shadow_clearmain]#version 300 es precision highp float; precision highp int; void main() { uint vi = uint(gl_VertexID); vec2 pts[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); vec2 _e13 = pts[vi]; gl_Position = vec4(_e13, 1.0, 1.0); gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  vs_shadow_clearvs_shadow_clear1// language: metal2.2 #include #include using metal::uint; struct type_3 { metal::float2 inner[3]; }; struct vs_shadow_clearInput { }; struct vs_shadow_clearOutput { metal::float4 member [[position]]; }; vertex vs_shadow_clearOutput vs_shadow_clear( uint vi [[vertex_id]] ) { type_3 pts = type_3 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; metal::float2 _e13 = pts.inner[metal::min(unsigned(vi), 2u)]; return vs_shadow_clearOutput { metal::float4(_e13, 1.0, 1.0) }; }  vs_shadow_clearmainpstatic const float2 _22[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static float4 gl_Position; static int gl_VertexIndex; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float4 gl_Position : SV_Position; }; void vert_main() { gl_Position = float4(_22[min(uint(gl_VertexIndex), 2u)], 1.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; return stage_output; }  HSLTvs_shadow_clearvs_shadow_clear#& GLSL.std.450 vs_shadow_clear GG *G   +  ;  ; !+€¿,+@@,,,+€?  + !+"6ø ;= ùø & A=P > A!# "=$#%$>#%ý8 ÊË#hedra_engine/shaders/render/surfacejÔ™ñ�BTSR czcz^Á|Û� œ^úLFå+ E‚ p¢^ΤÎ7 œÜ#^úÞ#ñ ëè#J‡ 5p'^ vs_surfacevs_surface_instancedvs_skyfs_sky fs_surface fs_shadowfs_id fs_normal_depth vs_surface_extvs_surface_ext_instancedfs_surface_ext fs_shadow_ext  fs_id_ext fs_normal_depth_ext  vs_surface_lm fs_surface_lmfs_surface_ext_lmvs_surface_skinnedvs_surface_ext_skinned    FGOMt_baset_normalt_mr t_emission t_occlusions_matt_extLitShadowt_shadows_shadowSky t_radiance t_panorama s_radiance s_panoramat_ao t_lightmap s_lightmapProbet_probess_probesDecalt_decalss_decalst_screenFogSkin5  vs_surface vs_surfacevs_surface_instancedvs_surface_instancedvs_skyvs_skyfs_skyfs_sky fs_surface fs_surface fs_shadow fs_shadowfs_idfs_idfs_normal_depthfs_normal_depthvs_surface_extvs_surface_extvs_surface_ext_instancedvs_surface_ext_instancedfs_surface_extfs_surface_ext fs_shadow_ext fs_shadow_ext fs_id_ext fs_id_extfs_normal_depth_extfs_normal_depth_ext vs_surface_lm vs_surface_lm fs_surface_lm fs_surface_lmfs_surface_ext_lmfs_surface_ext_lmvs_surface_skinnedvs_surface_skinnedvs_surface_ext_skinnedvs_surface_ext_skinnedýwstruct Globals { view: mat4x4, proj: mat4x4, view_proj: mat4x4, camera_pos: vec4, viewport: vec4, wire_color: vec4, select_color: vec4, active_color: vec4, grid: vec4, params: vec4, fparams: vec4, } struct ObjectU { model: mat4x4, normal: mat4x4, color: vec4, params: vec4, extra: vec4, gi: array, 3>, decals: vec4, lights: vec4, } struct MaterialU { base_color: vec4, emission: vec4, factors: vec4, flags: vec4, uv: vec4, xf: array, 40>, ext: array, 8>, } struct LightU { color: vec4, position: vec4, direction: vec4, spot: vec4, info: vec4, } struct LitU { counts: vec4, ambient: vec4, tone: vec4, up: vec4, sky_top: vec4, sky_horizon: vec4, ground_horizon: vec4, ground_bottom: vec4, inv_view_proj: mat4x4, dirs: vec4, lights: array, } struct ShadowLightU { params: vec4, splits: vec4, fade: vec4, info: vec4, } struct ShadowTileU { view_proj: mat4x4, rect: vec4, texel: vec4, } struct ShadowU { atlas: vec4, lights: array, tiles: array, } struct SunU { direction: vec4, color: vec4, } struct SkyU { flags: vec4, to_sky: mat4x4, sky_top: vec4, sky_horizon: vec4, ground_bottom: vec4, ground_horizon: vec4, sun: vec4, ambient: vec4, ibl: vec4, fog_color: vec4, fog: vec4, fog_depth: vec4, fog_origin: vec4, suns: array, sh: array, 9>, } struct ProbeEntryU { to_local: mat4x4, extents: vec4, offset: vec4, ambient: vec4, info: vec4, } struct ProbeU { counts: vec4, probes: array, } struct DecalEntryU { to_local: mat4x4, modulate: vec4, fades: vec4, axis_x: vec4, axis_y: vec4, axis_z: vec4, layers: vec4, flags: vec4, } struct DecalU { counts: vec4, lod: vec4, entries: array, } struct DecalSurface { base: vec3, metallic: f32, roughness: f32, occlusion: f32, normal: vec3, emission: vec3, } struct VsIn { @location(0) pos: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, } struct VsOut { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, @location(6) color: vec4, } struct InstIn { @location(6) row0_: vec4, @location(7) row1_: vec4, @location(8) row2_: vec4, @location(9) color: vec4, } struct Samples { base: vec4, normal: vec3, mr: vec4, emission: vec3, occlusion: f32, } struct FogEntryU { to_local: mat4x4, size: vec4, material: vec4, albedo: vec4, emission: vec4, lights: vec4, } struct FogU { counts: vec4, params: vec4, ambient: vec4, up: vec4, light_fog: array, 16>, entries: array, } struct SkyOut { @builtin(position) clip: vec4, @location(0) ndc: vec2, } struct IdOut { @location(0) id: vec4, } struct NormalDepthOut { @location(0) normal_depth: vec4, @location(1) surface: vec4, } struct VsOutExt { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, @location(6) color: vec4, @location(7) uv1_: vec2, } struct ExtSamples { base: vec4, normal: vec3, metallic: f32, roughness: f32, emission: vec3, occlusion: f32, specular: f32, specular_color: vec3, transmission: f32, thickness: f32, clearcoat: f32, clearcoat_roughness: f32, clearcoat_normal: vec3, clearcoat_mapped: bool, sheen_color: vec3, sheen_roughness: f32, iridescence: f32, iridescence_thickness: f32, anisotropy: f32, anisotropy_dir: vec2, diffuse_transmission: f32, diffuse_transmission_color: vec3, } struct ExtCtx { n: vec3, n_geo: vec3, nc: vec3, v: vec3, world: vec3, nv: f32, base: vec3, diffuse: vec3, metallic: f32, roughness: f32, alpha: f32, a2_: f32, f0_: vec3, f90_: vec3, iridescence: f32, irid_f: vec3, aniso: f32, aniso_t: vec3, aniso_b: vec3, clearcoat: f32, cc_roughness: f32, cc_a2_: f32, sheen: vec3, sheen_alpha: f32, sheen_roughness: f32, dt: f32, dt_color: vec3, transmission: f32, trans_alpha: f32, ior: f32, attenuation: vec3, thin: bool, thickness: f32, frag: vec2, dispersion: f32, occlusion: f32, emission: vec3, } struct VsOutLm { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, @location(6) color: vec4, @location(7) uv1_: vec2, @location(8) uv_lm: vec2, } struct SkinU { rows: array, 765>, } struct SkinIn { @location(12) joints: vec4, @location(13) weights: vec4, } struct SkinRows { r0_: vec4, r1_: vec4, r2_: vec4, } const OBJ_HAS_WEIGHTS: u32 = 1u; const OBJ_MIRRORED: u32 = 2u; const SHADE_SOLID: u32 = 0u; const SHADE_MATCAP: u32 = 1u; const SHADE_NORMALS: u32 = 2u; const SHADE_FACE_ORIENT: u32 = 3u; const SHADE_RANDOM: u32 = 4u; const SHADE_MATERIAL: u32 = 5u; const SHADE_UV_CHECKER: u32 = 6u; const SHADE_WEIGHTS: u32 = 7u; const SHADE_LIT: u32 = 8u; const SHADE_LIGHTMAP: u32 = 9u; const SHADE_LIGHT_COUNT: u32 = 10u; const OV_SELECTION: u32 = 1u; const OV_SEAMS: u32 = 2u; const OV_SHARP: u32 = 4u; const F_SELECTED: u32 = 1u; const F_HIDDEN: u32 = 2u; const F_SEAM: u32 = 4u; const F_SHARP: u32 = 8u; const F_MESH: u32 = 16u; const F_FADE: u32 = 32u; const F_NO_PULL: u32 = 64u; const SPEC_TEX_BASE: bool = true; const SPEC_TEX_NORMAL: bool = true; const SPEC_TEX_MR: bool = true; const SPEC_TEX_EMISSION: bool = true; const SPEC_TEX_OCCLUSION: bool = true; const SPEC_VERTEX_COLOR: bool = true; const SPEC_EXT: bool = true; const SPEC_UNLIT: bool = true; const SPEC_ALPHA_MASK: bool = true; const SPEC_ALPHA_BLEND: bool = true; const SPEC_CLEARCOAT: bool = true; const SPEC_SHEEN: bool = true; const SPEC_TRANSMISSION: bool = true; const SPEC_IRIDESCENCE: bool = true; const SPEC_ANISOTROPY: bool = true; const SPEC_DIFFUSE_TRANSMISSION: bool = true; const SPEC_VOLUME: bool = true; const SPEC_DISPERSION: bool = true; const SPEC_EXT_LAYERS: bool = true; const SPEC_ROUGHNESS_LAYER: bool = true; const SPEC_LIT: bool = true; const SPEC_LIGHTS: bool = true; const SPEC_SHADOWS: bool = true; const SPEC_DECALS: bool = true; const SPEC_FOG: bool = true; const SPEC_FOG_VOLUMES: bool = true; const SPEC_PROBES: bool = true; const SPEC_PROBE_GI: bool = true; const SPEC_SSAO: bool = true; const SPEC_SCREEN_REFRACTION: bool = true; const SPEC_EMERGE: bool = true; const SPEC_FADE: bool = true; const SPEC_FACE_FLAGS: bool = true; const SPEC_AMBIENT_FLAT: bool = true; const SPEC_AMBIENT_GRADIENT: bool = true; const SPEC_AMBIENT_SKY: bool = true; const SPEC_MATERIAL_MODE: bool = true; const SPEC_OTHER_MODES: bool = true; const T_BASE: u32 = 1u; const T_NORMAL: u32 = 2u; const T_METALLIC_ROUGHNESS: u32 = 4u; const T_EMISSION: u32 = 8u; const T_OCCLUSION: u32 = 16u; const MAT_VERTEX_COLOR: u32 = 1u; const MAT_VERTEX_COLOR_SRGB: u32 = 2u; const MAT_EXT: u32 = 4u; const MAT_UNLIT: u32 = 8u; const MAT_ROUGHNESS_LAYER: u32 = 16u; const MAT_SRGB_BASE: u32 = 32u; const MAT_SRGB_EMISSION: u32 = 64u; const ALPHA_OPAQUE: u32 = 0u; const ALPHA_MASK: u32 = 1u; const ALPHA_BLEND: u32 = 2u; const PI: f32 = 3.1415927f; const MAX_FRAME_LIGHTS: u32 = 64u; const MAX_OBJECT_LIGHTS: u32 = 8u; const MAX_SHADOW_LIGHTS: u32 = 16u; const MAX_POOL_DIRECTIONAL: u32 = 8u; const LIGHT_COUNT_COLORS: array, 10> = array, 10>(vec3(0.352941f, 0.352941f, 0.352941f), vec3(0.168627f, 0.247059f, 0.6f), vec3(0.129412f, 0.4f, 0.67451f), vec3(0.101961f, 0.623529f, 0.721569f), vec3(0.121569f, 0.631373f, 0.529412f), vec3(0.301961f, 0.733333f, 0.352941f), vec3(0.65098f, 0.831373f, 0.227451f), vec3(0.94902f, 0.784314f, 0.058824f), vec3(0.94902f, 0.556863f, 0.058824f), vec3(0.878431f, 0.129412f, 0.541176f)); const LIGHT_DIRECTIONAL: u32 = 0u; const LIGHT_OMNI: u32 = 1u; const LIGHT_SPOT: u32 = 2u; const LIGHT_BAKE_DISABLED: u32 = 0u; const LIGHT_BAKE_STATIC: u32 = 1u; const LIGHT_BAKE_DYNAMIC: u32 = 2u; const TONEMAP_LINEAR: u32 = 0u; const TONEMAP_REINHARD: u32 = 1u; const TONEMAP_FILMIC: u32 = 2u; const TONEMAP_ACES: u32 = 3u; const TONEMAP_AGX: u32 = 4u; const ENV_SKY: u32 = 1u; const ENV_AMBIENT_SKY: u32 = 2u; const ENV_SSAO: u32 = 4u; const ENV_HDR: u32 = 8u; const ENV_SCREEN_REFRACTION: u32 = 16u; const LIGHT_SHADOWED: u32 = 1u; const LIGHT_BAKED_STATIC: u32 = 1u; const SHADOW_TILES: u32 = 16u; const SKY_DRAW_PROCEDURAL: u32 = 1u; const SKY_DRAW_PANORAMA: u32 = 2u; const SKY_PANORAMA_FILTER: u32 = 4u; const SKY_IBL: u32 = 8u; const SKY_AMBIENT_SKY: u32 = 16u; const SKY_REFLECT_RADIANCE: u32 = 32u; const SKY_REFLECT_OFF: u32 = 64u; const SKY_FOG: u32 = 128u; const SKY_FOG_DEPTH: u32 = 256u; const SKY_SUNS: u32 = 4u; const OBJ_LIGHTMAP: u32 = 4u; const OBJ_PROBE_GI: u32 = 8u; const PROBE_BOX: u32 = 1u; const PROBE_INTERIOR: u32 = 2u; const MAX_PROBES: u32 = 8u; const PROBE_AMBIENT_DISABLED: u32 = 0u; const PROBE_AMBIENT_ENVIRONMENT: u32 = 1u; const PROBE_AMBIENT_CONSTANT_COLOR: u32 = 2u; const MAX_FRAME_DECALS: u32 = 64u; const MAX_OBJECT_DECALS: u32 = 8u; const DECAL_LIVE_ALBEDO: u32 = 1u; const DECAL_LIVE_NORMAL: u32 = 2u; const DECAL_LIVE_ORM: u32 = 4u; const DECAL_LIVE_EMISSION: u32 = 8u; const F_INSTANCE_MIRRORED: u32 = 128u; const OBJ_EMERGE: u32 = 32u; const EMERGE_SCALE: f32 = 1.3f; const EMERGE_EDGE: f32 = 0.8f; const EMERGE_DITHER: f32 = 0.12f; const OBJ_FADE: u32 = 64u; const MAX_FRAME_FOG_VOLUMES: u32 = 16u; const MAX_OBJECT_FOG_VOLUMES: u32 = 4u; const FOG_SHAPE_ELLIPSOID: u32 = 0u; const FOG_SHAPE_CONE: u32 = 1u; const FOG_SHAPE_CYLINDER: u32 = 2u; const FOG_SHAPE_BOX: u32 = 3u; const FOG_SHAPE_WORLD: u32 = 4u; const FOG_SKY_DISTANCE: f32 = 1000000f; const FOG_LIST_ALL: u32 = 2147483648u; const FOG_GL_X0_: f32 = 0.8611363f; const FOG_GL_X1_: f32 = 0.339981f; const FOG_GL_W0_: f32 = 0.3478548f; const FOG_GL_W1_: f32 = 0.6521452f; const SLOT_BASE: u32 = 0u; const SLOT_METALLIC: u32 = 1u; const SLOT_ROUGHNESS: u32 = 2u; const SLOT_NORMAL: u32 = 3u; const SLOT_OCCLUSION: u32 = 4u; const SLOT_EMISSIVE: u32 = 5u; const SLOT_CLEARCOAT: u32 = 6u; const SLOT_CLEARCOAT_ROUGHNESS: u32 = 7u; const SLOT_CLEARCOAT_NORMAL: u32 = 8u; const SLOT_SHEEN_COLOR: u32 = 9u; const SLOT_SHEEN_ROUGHNESS: u32 = 10u; const SLOT_SPECULAR: u32 = 11u; const SLOT_SPECULAR_COLOR: u32 = 12u; const SLOT_TRANSMISSION: u32 = 13u; const SLOT_THICKNESS: u32 = 14u; const SLOT_IRIDESCENCE: u32 = 15u; const SLOT_IRIDESCENCE_THICKNESS: u32 = 16u; const SLOT_ANISOTROPY: u32 = 17u; const SLOT_DIFFUSE_TRANSMISSION: u32 = 18u; const SLOT_DIFFUSE_TRANSMISSION_COLOR: u32 = 19u; const OBJ_SKINNED: u32 = 16u; const SKIN_JOINTS: u32 = 255u; @group(0) @binding(0) var G: Globals; @group(1) @binding(0) var O: ObjectU; @group(2) @binding(0) var M: MaterialU; @group(2) @binding(1) var t_base: texture_2d; @group(2) @binding(2) var t_normal: texture_2d; @group(2) @binding(3) var t_mr: texture_2d; @group(2) @binding(4) var t_emission: texture_2d; @group(2) @binding(5) var t_occlusion: texture_2d; @group(2) @binding(6) var s_mat: sampler; @group(2) @binding(7) var t_ext: texture_2d_array; @group(0) @binding(1) var Lit: LitU; @group(0) @binding(2) var Shadow: ShadowU; @group(0) @binding(3) var t_shadow: texture_depth_2d; @group(0) @binding(4) var s_shadow: sampler_comparison; @group(0) @binding(5) var Sky: SkyU; @group(3) @binding(0) var t_radiance: texture_cube; @group(3) @binding(1) var t_panorama: texture_2d; @group(3) @binding(2) var s_radiance: sampler; @group(3) @binding(3) var s_panorama: sampler; @group(0) @binding(6) var t_ao: texture_2d; @group(3) @binding(4) var t_lightmap: texture_2d_array; @group(3) @binding(5) var s_lightmap: sampler; @group(0) @binding(7) var Probe: ProbeU; @group(3) @binding(6) var t_probes: texture_2d; @group(3) @binding(7) var s_probes: sampler; @group(1) @binding(2) var Decal: DecalU; @group(1) @binding(3) var t_decals: texture_2d_array; @group(1) @binding(4) var s_decals: sampler; @group(1) @binding(6) var t_screen: texture_2d; @group(1) @binding(5) var Fog: FogU; @group(1) @binding(1) var Skin: SkinU; fn srgb_to_linear(c_5: vec3) -> vec3 { let lo = (c_5 / vec3(12.92f)); let hi = pow(((c_5 + vec3(0.055f)) / vec3(1.055f)), vec3(2.4f)); return select(hi, lo, (c_5 <= vec3(0.04045f))); } fn element_color(flags: u32, fallback: vec4) -> vec4 { var local_19: bool; var local_20: bool; if ((flags & F_MESH) == 0u) { return fallback; } let overlays = G.params.y; let _e13 = O.params.w; let edit_object = (_e13 == 1u); if ((flags & F_SEAM) != 0u) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } let _e27 = local_19; if _e27 { let _e32 = srgb_to_linear(vec3(0.86f, 0f, 0f)); return vec4(_e32, 1f); } if ((flags & F_SHARP) != 0u) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } let _e46 = local_20; if _e46 { let _e51 = srgb_to_linear(vec3(0f, 0.85f, 0.9f)); return vec4(_e51, 1f); } if ((overlays & OV_SELECTION) != 0u) { if edit_object { if ((flags & F_SELECTED) != 0u) { let _e64 = G.select_color; return _e64; } let _e67 = G.wire_color; return _e67; } let _e71 = O.params.x; if (_e71 == 1u) { let _e76 = G.select_color; let _e79 = G.active_color; let _e83 = O.params.y; return select(_e76, _e79, (_e83 == 1u)); } } let _e89 = G.wire_color; return _e89; } fn to_view(p: vec3, pull: f32) -> vec4 { var v: vec4; let _e4 = G.view; let _e7 = O.model; v = ((_e4 * _e7) * vec4(p, 1f)); let _e15 = v.z; v.z = (_e15 * (1f - pull)); let _e19 = v; return _e19; } fn linear_to_srgb(c_6: vec3) -> vec3 { let lo_1 = (c_6 * 12.92f); let hi_1 = ((1.055f * pow(c_6, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (c_6 <= vec3(0.0031308f))); } fn target_color(c_7: vec4) -> vec4 { let k_13 = clamp(c_7, vec4(0f), vec4(1f)); let _e9 = G.fparams.w; if (_e9 > 0.5f) { let _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } fn object_light_count() -> u32 { let _e3 = O.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } fn object_light(k: u32) -> u32 { let _e4 = O.lights.y; let _e8 = O.lights.x; let word = select(_e4, _e8, (k < 4u)); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } fn light_count_color() -> vec3 { var colors: array, 10> = LIGHT_COUNT_COLORS; let _e5 = O.lights.w; let _e9 = colors[min(_e5, 9u)]; return _e9; } fn pool_sun_count() -> u32 { let _e3 = Lit.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } fn pool_sun(k_1: u32) -> u32 { let _e4 = Lit.dirs.y; let _e8 = Lit.dirs.x; let word_1 = select(_e4, _e8, (k_1 < 4u)); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } fn decal_count() -> u32 { let _e3 = O.decals.z; return min(_e3, MAX_OBJECT_DECALS); } fn decal_entry(k_2: u32) -> u32 { let _e4 = O.decals.y; let _e8 = O.decals.x; let word_2 = select(_e4, _e8, (k_2 < 4u)); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } fn decal_level(e: DecalEntryU, world: vec3) -> f32 { let _e5 = Decal.lod.x; let _e8 = G.camera_pos; let _e15 = Decal.lod.y; let pixel_1 = (_e5 * select(length((world - _e8.xyz)), 1f, (_e15 > 0.5f))); let _e24 = Decal.counts.y; let top = f32((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 0.000001f)), 1f)), 0f, top); } fn decal_texel(layer: u32, uv: vec2, level: f32, live: bool) -> vec4 { let _e11 = textureSampleLevel(t_decals, s_decals, uv, i32((layer - 1u)), select(level, 0f, live)); return _e11; } fn apply_decals(world_1: vec3, n_geo: vec3, surf: DecalSurface) -> DecalSurface { var out_s: DecalSurface; var k_3: u32 = 0u; var local_21: bool; var fade: f32; out_s = surf; let _e4 = decal_count(); loop { let _e7 = k_3; if (_e7 < _e4) { } else { break; } { let _e11 = k_3; let _e12 = decal_entry(_e11); let e_13 = Decal.entries[min(_e12, 63u)]; let uvw = (e_13.to_local * vec4(world_1, 1f)).xyz; if all((uvw >= vec3(0f, -1f, 0f))) { local_21 = all((uvw <= vec3(1f))); } else { local_21 = false; } let _e35 = local_21; if !(_e35) { continue; } fade = pow((1f - abs(uvw.y)), select(e_13.fades.y, e_13.fades.x, (uvw.y > 0f))); if (e_13.fades.z > 0f) { let _e55 = fade; fade = (_e55 * smoothstep(e_13.fades.z, 1f, ((dot(n_geo, e_13.axis_y.xyz) * 0.5f) + 0.5f))); } let uv_5 = uvw.xz; let _e69 = decal_level(e_13, world_1); let live_1 = e_13.flags.x; if (e_13.layers.x > 0u) { let _e82 = decal_texel(e_13.layers.x, uv_5, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); let _e84 = srgb_to_linear(_e82.xyz); let a_2 = (vec4(_e84, _e82.w) * e_13.modulate); let _e90 = fade; let alpha_4 = (a_2.w * _e90); let _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha_4 * e_13.fades.w)); if (e_13.layers.y > 0u) { let _e110 = decal_texel(e_13.layers.y, uv_5, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); let nx = ((_e110.x * 2f) - 1f); let ny = (1f - (_e110.y * 2f)); let nz = sqrt(max(0f, ((1f - (nx * nx)) - (ny * ny)))); let dn = normalize((((e_13.axis_x.xyz * nx) + (e_13.axis_y.xyz * nz)) + (e_13.axis_z.xyz * ny))); let _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha_4)); } if (e_13.layers.z > 0u) { let _e156 = decal_texel(e_13.layers.z, uv_5, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); let _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha_4); let _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha_4); let _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha_4); } } if (e_13.layers.w > 0u) { let _e182 = decal_texel(e_13.layers.w, uv_5, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); let _e184 = out_s.emission; let _e186 = srgb_to_linear(_e182.xyz); let _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_13.modulate.xyz) * e_13.axis_x.w) * _e193)); } } continuing { let _e197 = k_3; k_3 = (_e197 + 1u); } } let _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045f, 1f); let _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0f, 1f); let _e211 = out_s; return _e211; } fn mirrored(in_18: VsOut) -> bool { let _e4 = O.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } fn weight_color(w: f32) -> vec3 { var stops: array, 5> = array, 5>(vec3(0f, 0f, 1f), vec3(0f, 1f, 1f), vec3(0f, 1f, 0f), vec3(1f, 1f, 0f), vec3(1f, 0f, 0f)); if (w < 0f) { let _e7 = srgb_to_linear(vec3(0f, 0f, 0.08f)); return _e7; } let t_5 = (clamp(w, 0f, 1f) * 4f); let i_11 = min(i32(floor(t_5)), 3i); let f_1 = (t_5 - f32(i_11)); let _e42 = stops[i_11]; let _e46 = stops[(i_11 + 1i)]; let _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } fn studio(n: vec3, base: vec3) -> vec3 { var c_8: vec3; let l1_ = vec3(-0.45112923f, 0.5513802f, 0.7017566f); let l2_ = vec3(0.8451543f, 0.16903086f, 0.50709254f); let l3_ = vec3(0.12674485f, -0.88721395f, 0.44360697f); let v_5 = vec3(0f, 0f, 1f); c_8 = (base * 0.28f); let _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0f)) * 0.85f)); let _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0f)) * 0.35f) * vec3(0.9f, 0.95f, 1.05f))); let _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0f)) * 0.22f)); let h_1 = normalize((l1_ + v_5)); let _e52 = c_8; c_8 = (_e52 + ((vec3(1f) * pow(max(dot(n, h_1), 0f), 40f)) * 0.18f)); let rim = pow((1f - max(dot(n, v_5), 0f)), 3f); let _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25f)); let _e76 = c_8; return _e76; } fn matcap(n_1: vec3, id: u32) -> vec3 { var c_9: vec3; let v_6 = vec3(0f, 0f, 1f); if (id == 1u) { let r_5 = reflect(-(v_6), n_1); let sky_2 = mix(vec3(0.55f, 0.62f, 0.72f), vec3(0.18f, 0.3f, 0.55f), clamp(r_5.y, 0f, 1f)); let ground = mix(vec3(0.4f, 0.36f, 0.32f), vec3(0.08f, 0.07f, 0.06f), clamp(-(r_5.y), 0f, 1f)); c_9 = select(ground, sky_2, (r_5.y >= 0f)); let _e42 = c_9; c_9 = (_e42 + ((vec3(0.6f) * exp((-(abs(r_5.y)) * 12f))) * 0.7f)); let fres = pow((1f - max(dot(n_1, v_6), 0f)), 4f); let _e62 = c_9; return ((_e62 * 0.9f) + vec3((fres * 0.25f))); } if (id == 2u) { let _e75 = srgb_to_linear(vec3(0.93f, 0.74f, 0.62f)); let l_8 = vec3(-0.39801487f, 0.5970223f, 0.696526f); let wrap = pow(((dot(n_1, l_8) * 0.5f) + 0.5f), 1.5f); let rim_1 = pow((1f - max(dot(n_1, v_6), 0f)), 3f); return (((_e75 * (0.25f + (0.75f * wrap))) + ((vec3(0.45f, 0.08f, 0.05f) * rim_1) * 0.5f)) + ((vec3(1f) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0f), 24f)) * 0.12f)); } let _e124 = srgb_to_linear(vec3(0.8f, 0.62f, 0.52f)); let l_9 = vec3(-0.39801487f, 0.5970223f, 0.696526f); let d_11 = max(dot(n_1, l_9), 0f); let spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0f), 30f) * 0.3f); return ((_e124 * (0.22f + (0.78f * d_11))) + vec3(spec_1)); } fn hsv(h: f32, s_2: f32, v_1: f32) -> vec3 { let k_14 = ((vec3(5f, 3f, 1f) + vec3((h / 60f))) % vec3(6f)); let f_2 = clamp(min(k_14, (vec3(4f) - k_14)), vec3(0f), vec3(1f)); return (v_1 * (vec3(1f) - (s_2 * f_2))); } fn checker(uv_1: vec2) -> vec3 { var c_10: vec3; let s_18 = G.fparams.y; let cell = floor((uv_1 * s_18)); let ci = vec2(cell); let odd = ((ci.x + ci.y) & 1i); let k_15 = ((bitcast(ci.x) * 73856093u) ^ (bitcast(ci.y) * 19349663u)); let hue = f32((k_15 % 360u)); let value = select(0.74f, 0.4f, (odd == 1i)); let _e31 = hsv(hue, 0.18f, value); c_10 = _e31; let tile = abs((fract(uv_1) - vec2(0.5f))); let _e38 = fwidth(uv_1); let w_1 = ((_e38 * 1f) + vec2(0.0001f)); let border = any((tile > (vec2(0.5f) - w_1))); let _e49 = c_10; let _e50 = c_10; c_10 = select(_e49, (_e50 * 0.35f), border); let _e54 = c_10; let _e55 = srgb_to_linear(_e54); return _e55; } fn tex_uv(uv_2: vec2) -> vec2 { return vec2(uv_2.x, (1f - uv_2.y)); } fn material_uv(uv_3: vec2) -> vec2 { let _e1 = tex_uv(uv_3); let _e4 = M.uv; let _e9 = M.uv; return ((_e1 * _e4.xy) + _e9.zw); } fn decoded_base(t: vec4) -> vec4 { let _e4 = M.flags.w; if ((_e4 & MAT_SRGB_BASE) != 0u) { let _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } fn decoded_emission(t_1: vec3) -> vec3 { let _e4 = M.flags.w; if ((_e4 & MAT_SRGB_EMISSION) != 0u) { let _e9 = srgb_to_linear(t_1); return _e9; } return t_1; } fn sample_material(uv_in: vec2) -> Samples { var s_3: Samples; let _e1 = material_uv(uv_in); let _e6 = M.base_color; s_3.base = _e6; let _e11 = M.flags.x; if select(false, ((_e11 & T_BASE) != 0u), SPEC_TEX_BASE) { let _e19 = s_3.base; let _e22 = textureSample(t_base, s_mat, _e1); let _e23 = decoded_base(_e22); s_3.base = (_e19 * _e23); } s_3.normal = vec3(0f, 0f, 1f); let _e34 = M.flags.x; if select(false, ((_e34 & T_NORMAL) != 0u), SPEC_TEX_NORMAL) { let _e44 = textureSample(t_normal, s_mat, _e1); s_3.normal = normalize(((_e44.xyz * 2f) - vec3(1f))); } s_3.mr = vec4(1f); let _e59 = M.flags.x; if select(false, ((_e59 & T_METALLIC_ROUGHNESS) != 0u), SPEC_TEX_MR) { let _e69 = textureSample(t_mr, s_mat, _e1); s_3.mr = _e69; } let _e73 = M.emission; s_3.emission = _e73.xyz; let _e79 = M.flags.x; if select(false, ((_e79 & T_EMISSION) != 0u), SPEC_TEX_EMISSION) { let _e87 = s_3.emission; let _e90 = textureSample(t_emission, s_mat, _e1); let _e92 = decoded_emission(_e90.xyz); s_3.emission = (_e87 * _e92); } s_3.occlusion = 1f; let _e100 = M.flags.x; if select(false, ((_e100 & T_OCCLUSION) != 0u), SPEC_TEX_OCCLUSION) { let _e110 = textureSample(t_occlusion, s_mat, _e1); s_3.occlusion = _e110.x; } let _e112 = s_3; return _e112; } fn surface_samples(in_19: VsOut) -> Samples { var s_4: Samples; var c_11: vec4; let _e2 = sample_material(in_19.uv); s_4 = _e2; let _e8 = M.flags.w; if select(false, ((_e8 & MAT_VERTEX_COLOR) != 0u), SPEC_VERTEX_COLOR) { c_11 = in_19.color; let _e20 = M.flags.w; if ((_e20 & MAT_VERTEX_COLOR_SRGB) != 0u) { let _e25 = c_11; let _e27 = srgb_to_linear(_e25.xyz); let _e29 = c_11.w; c_11 = vec4(_e27, _e29); } let _e33 = s_4.base; let _e34 = c_11; s_4.base = (_e33 * _e34); } let _e36 = s_4; return _e36; } fn d_ggx(nh: f32, a2_: f32) -> f32 { let d_12 = (((nh * nh) * (a2_ - 1f)) + 1f); return (a2_ / ((PI * d_12) * d_12)); } fn v_smith(nl: f32, nv: f32, a2_1: f32) -> f32 { let gv = (nl * sqrt((((nv * nv) * (1f - a2_1)) + a2_1))); let g_l = (nv * sqrt((((nl * nl) * (1f - a2_1)) + a2_1))); return (0.5f / max((gv + g_l), 0.0001f)); } fn f_schlick(f0_: vec3, vh: f32) -> vec3 { return (f0_ + ((vec3(1f) - f0_) * pow((1f - vh), 5f))); } fn light(n_2: vec3, v_2: vec3, l: vec3, radiance: vec3, diffuse: vec3, f0_1: vec3, a2_2: f32) -> vec3 { let nl_3 = dot(n_2, l); if (nl_3 <= 0f) { return vec3(0f); } let h_2 = normalize((l + v_2)); let nh_3 = max(dot(n_2, h_2), 0f); let vh_3 = max(dot(v_2, h_2), 0f); let nv_6 = max(dot(n_2, v_2), 0.0001f); let _e23 = f_schlick(f0_1, vh_3); let _e24 = d_ggx(nh_3, a2_2); let _e25 = v_smith(nl_3, nv_6, a2_2); let spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1f) - _e23) * diffuse) / vec3(3.1415927f)) + spec_2) * radiance) * nl_3); } fn light_specular(n_3: vec3, v_3: vec3, l_1: vec3, radiance_1: vec3, diffuse_1: vec3, f0_2: vec3, a2_3: f32, specular: f32) -> vec3 { let nl_4 = dot(n_3, l_1); if (nl_4 <= 0f) { return vec3(0f); } let h_3 = normalize((l_1 + v_3)); let nh_4 = max(dot(n_3, h_3), 0f); let vh_4 = max(dot(v_3, h_3), 0f); let nv_7 = max(dot(n_3, v_3), 0.0001f); let _e24 = f_schlick(f0_2, vh_4); let _e25 = d_ggx(nh_4, a2_3); let _e26 = v_smith(nl_4, nv_7, a2_3); let spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927f)) + (spec_3 * specular)) * radiance_1) * nl_4); } fn env(up: f32) -> vec3 { var c_12: vec3; let sky_3 = vec3(0.48f, 0.58f, 0.78f); let ground_1 = vec3(0.26f, 0.22f, 0.18f); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5f) + 0.5f), 0f, 1f)); let _e18 = c_12; c_12 = (_e18 + (vec3(0.22f, 0.21f, 0.19f) * exp((-(abs(up)) * 4f)))); let _e30 = c_12; return _e30; } fn pbr(in_20: VsOut, front: bool, s_5: Samples) -> vec3 { var n_w: vec3; var t_w: vec3; var c_13: vec3 = vec3(0f); let _e6 = M.factors.x; let metallic_1 = clamp((_e6 * s_5.mr.z), 0f, 1f); let _e16 = M.factors.y; let roughness_7 = clamp((_e16 * s_5.mr.y), 0.045f, 1f); let a2_4 = (((roughness_7 * roughness_7) * roughness_7) * roughness_7); let base_1 = s_5.base.xyz; let diffuse_4 = (base_1 * (1f - metallic_1)); let f0_6 = mix(vec3(0.04f), base_1, metallic_1); n_w = select(-(normalize(in_20.normal)), normalize(in_20.normal), front); let _e45 = M.flags.x; if select(false, ((_e45 & T_NORMAL) != 0u), SPEC_TEX_NORMAL) { t_w = in_20.tangent.xyz; let _e55 = t_w; let _e56 = n_w; let _e57 = n_w; let _e58 = t_w; t_w = normalize((_e55 - (_e56 * dot(_e57, _e58)))); let _e63 = n_w; let _e64 = t_w; let b_w = (cross(_e63, _e64) * in_20.tangent.w); let _e69 = t_w; let _e77 = n_w; n_w = normalize((((_e69 * s_5.normal.x) + (b_w * s_5.normal.y)) + (_e77 * s_5.normal.z))); } let _e85 = G.view; let _e86 = n_w; let n_12 = normalize((_e85 * vec4(_e86, 0f)).xyz); let _e94 = G.view; let pos_v = (_e94 * vec4(in_20.world, 1f)).xyz; let _e109 = G.camera_pos.w; let v_7 = select(normalize(-(pos_v)), vec3(0f, 0f, 1f), (_e109 > 0.5f)); let _e115 = G.view; let up_1 = normalize((_e115 * vec4(0f, 0f, 1f, 0f)).xyz); let _e127 = c_13; let _e136 = light(n_12, v_7, vec3(-0.45112923f, 0.5513802f, 0.7017566f), vec3(2.6f, 2.522f, 2.392f), diffuse_4, f0_6, a2_4); c_13 = (_e127 + _e136); let _e138 = c_13; let _e147 = light(n_12, v_7, vec3(0.8451543f, 0.16903086f, 0.50709254f), vec3(0.765f, 0.80999994f, 0.9f), diffuse_4, f0_6, a2_4); c_13 = (_e138 + _e147); let _e149 = c_13; let _e158 = light(n_12, v_7, vec3(0.34583426f, 0.63402945f, -0.6916685f), vec3(1.3f, 1.3f, 1.3f), diffuse_4, f0_6, a2_4); c_13 = (_e149 + _e158); let nv_8 = max(dot(n_12, v_7), 0.0001f); let r_6 = reflect(-(v_7), n_12); let _e166 = env(dot(n_12, up_1)); let irradiance = (_e166 * 0.8f); let _e170 = env(dot(r_6, up_1)); let _e172 = env(0f); let blurred = mix(_e170, (_e172 * 0.85f), roughness_7); let f_amb = (f0_6 + ((max(vec3((1f - roughness_7)), f0_6) - f0_6) * pow((1f - nv_8), 5f))); let ambient_1 = ((diffuse_4 * irradiance) + ((blurred * f_amb) * (1f - (0.5f * roughness_7)))); let _e195 = c_13; c_13 = (_e195 + (ambient_1 * s_5.occlusion)); let _e199 = c_13; c_13 = (_e199 + s_5.emission); let _e202 = c_13; return _e202; } fn sky(dir: vec3) -> vec3 { let _e4 = Lit.up; let a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1f, 1f)); if (a_3 <= 1.5707964f) { let c_37 = (1f - (a_3 / 1.5707964f)); let k_16 = clamp((1f - pow(max((1f - c_37), 0.000001f), 6.6666665f)), 0f, 1f); let _e30 = Lit.sky_horizon; let _e34 = Lit.sky_top; return mix(_e30.xyz, _e34.xyz, k_16); } let c_38 = ((a_3 - 1.5707964f) / 1.5707964f); let k_17 = clamp((1f - pow(max((1f - c_38), 0.000001f), 50f)), 0f, 1f); let _e54 = Lit.ground_horizon; let _e58 = Lit.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_17); } fn filmic_curve(x: vec3) -> vec3 { return ((((x * ((0.88f * x) + vec3((0.1f * 0.6f)))) + vec3((0.2f * 0.01f))) / ((x * ((0.88f * x) + vec3(0.6f))) + vec3((0.2f * 0.3f)))) - vec3((0.01f / 0.3f))); } fn aces_curve(c_14: vec3, white: f32) -> vec3 { let x_4 = vec3((1.8f * dot(vec3(0.59719f, 0.35458f, 0.04823f), c_14)), (1.8f * dot(vec3(0.076f, 0.90834f, 0.01566f), c_14)), (1.8f * dot(vec3(0.0284f, 0.13383f, 0.83777f), c_14))); let t_6 = (((x_4 * (x_4 + vec3(0.0245786f))) - vec3(0.000090537f)) / ((x_4 * ((0.983729f * x_4) + vec3(0.432951f))) + vec3(0.238081f))); let o_6 = vec3(dot(vec3(1.60475f, -0.53108f, -0.07367f), t_6), dot(vec3(-0.10208f, 1.10813f, -0.00605f), t_6), dot(vec3(-0.00327f, -0.07276f, 1.07602f), t_6)); let w_2 = (1.8f * white); let wt = (((w_2 * (w_2 + 0.0245786f)) - 0.000090537f) / ((w_2 * ((0.983729f * w_2) + 0.432951f)) + 0.238081f)); return (o_6 / vec3(wt)); } fn agx_curve(c_15: vec3) -> vec3 { var v_4: vec3; let inset = mat3x3(vec3(0.54490817f, 0.14044006f, 0.08882741f), vec3(0.37377945f, 0.7541096f, 0.17887713f), vec3(0.08138498f, 0.10543358f, 0.73225f)); let outset = mat3x3(vec3(1.964551f, -0.29932243f, -0.16436833f), vec3(-0.85585845f, 1.3264511f, -0.23822464f), vec3(-0.10886711f, -0.02708402f, 1.4026654f)); v_4 = (inset * max(c_15, vec3(0.0000000002f))); let _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931f), vec3(4.0260687f)) - vec3(-12.473931f)) / vec3((4.0260687f - -12.473931f))); let _e44 = v_4; let _e45 = v_4; let x2_ = (_e44 * _e45); let x4_ = (x2_ * x2_); let _e48 = v_4; let _e56 = v_4; let _e64 = v_4; let p_8 = ((((((0.021f * _e48) + (4.0111f * x2_)) - ((25.682f * x2_) * _e56)) + (70.359f * x4_)) - ((74.778f * x4_) * _e64)) + ((27.069f * x4_) * x2_)); return (outset * pow(max(p_8, vec3(0.0000000001f)), vec3(2.4f))); } fn tonemap(c_in: vec3) -> vec3 { let _e4 = Lit.tone.x; let c_39 = max((c_in * _e4), vec3(0f)); let white_1 = Lit.tone.y; let mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return (((white_1 * c_39) + c_39) / ((c_39 * white_1) + vec3(white_1))); } if (mode == TONEMAP_FILMIC) { let _e27 = filmic_curve(c_39); let _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if (mode == TONEMAP_ACES) { let _e33 = aces_curve(c_39, white_1); return _e33; } if (mode == TONEMAP_AGX) { let _e36 = agx_curve(c_39); return _e36; } return c_39; } fn emerge_hash(p_1: vec3) -> f32 { var q: vec3; q = fract((p_1 * 0.1031f)); let _e5 = q; let _e6 = q; let _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32f))))); let _e16 = q.x; let _e18 = q.y; let _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } fn emerge_noise(p_2: vec3) -> f32 { let i_12 = floor(p_2); let f_3 = fract(p_2); let u = ((f_3 * f_3) * (vec3(3f) - (2f * f_3))); let _e10 = emerge_hash(i_12); let _e16 = emerge_hash((i_12 + vec3(1f, 0f, 0f))); let _e24 = emerge_hash((i_12 + vec3(0f, 1f, 0f))); let _e30 = emerge_hash((i_12 + vec3(1f, 1f, 0f))); let a_4 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); let _e40 = emerge_hash((i_12 + vec3(0f, 0f, 1f))); let _e46 = emerge_hash((i_12 + vec3(1f, 0f, 1f))); let _e54 = emerge_hash((i_12 + vec3(0f, 1f, 1f))); let _e60 = emerge_hash((i_12 + vec3(1f, 1f, 1f))); let b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_4, b_2, u.z); } fn emerge_reveal(world_2: vec3, pixel: vec2) -> f32 { var n_4: f32; let _e6 = O.extra.x; if select(true, ((_e6 & OBJ_EMERGE) == 0u), SPEC_EMERGE) { return 1f; } let e_14 = O.normal[0][3]; let w_3 = (world_2 * EMERGE_SCALE); let _e21 = emerge_noise(w_3); let _e29 = emerge_noise(((w_3 * 2.7f) + vec3(17.1f))); n_4 = smoothstep(0.2f, 0.8f, ((_e21 * 0.65f) + (_e29 * 0.35f))); if (pixel.x >= 0f) { let ign = fract((52.982918f * fract(dot(floor(pixel), vec2(0.06711056f, 0.00583715f))))); let _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5f) * EMERGE_DITHER)), 0f, 1f); } let _e60 = n_4; return (((e_14 * 1.8f) - _e60) / EMERGE_EDGE); } fn emerge_tint(c_16: vec3, r: f32) -> vec3 { var local_22: bool; let _e6 = O.extra.x; if !(((_e6 & OBJ_EMERGE) == 0u)) { local_22 = (r >= 1f); } else { local_22 = true; } let _e17 = local_22; if select(true, _e17, SPEC_EMERGE) { return c_16; } let _e23 = O.extra.w; let _e26 = srgb_to_linear(unpack4x8unorm(_e23).xyz); let _e27 = tonemap(_e26); return mix(_e27, c_16, smoothstep(0f, 1f, r)); } fn item_fade(c_17: vec3) -> vec3 { let _e5 = O.extra.x; if select(true, ((_e5 & OBJ_FADE) == 0u), SPEC_FADE) { return c_17; } let f_4 = O.normal[3]; let _e17 = tonemap(f_4.xyz); return mix(c_17, _e17, f_4.w); } fn sky_dir(d: vec3) -> vec3 { let _e3 = Sky.to_sky; return normalize((_e3 * vec4(d, 0f)).xyz); } fn sky_curve(c_18: f32, curve: f32) -> f32 { return clamp((1f - pow(max((1f - c_18), 0.000001f), (1f / curve))), 0f, 1f); } fn procedural_sky(d_1: vec3) -> vec3 { var sky_1: vec3; var i: u32 = 0u; let v_8 = acos(clamp(d_1.y, -1f, 1f)); let _e8 = Sky.sky_horizon; let _e12 = Sky.sky_top; let _e21 = Sky.sky_top.w; let _e22 = sky_curve((1f - (v_8 / 1.5707964f)), _e21); let _e27 = Sky.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); let _e33 = Sky.flags.z; let suns = min(_e33, SKY_SUNS); loop { let _e38 = i; if (_e38 < suns) { } else { break; } { let _e42 = i; let sun = Sky.suns[_e42]; let size = sun.direction.w; let a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1f, 1f)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { let _e60 = Sky.sun.x; if (a_5 < _e60) { let _e66 = Sky.sun.x; let c2_ = ((a_5 - size) / (_e66 - size)); let _e71 = sky_1; let _e75 = Sky.sun.y; let _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } continuing { let _e79 = i; i = (_e79 + 1u); } } let _e83 = Sky.ground_horizon; let _e87 = Sky.ground_bottom; let _e96 = Sky.ground_bottom.w; let _e97 = sky_curve(((v_8 - 1.5707964f) / 1.5707964f), _e96); let _e102 = Sky.ground_horizon.w; let ground_2 = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); let _e104 = sky_1; let _e112 = Sky.sun.z; return (select(ground_2, _e104, (d_1.y >= 0f)) * _e112); } fn panorama(d_2: vec3) -> vec3 { let uv_6 = vec2(fract((atan2(d_2.x, -(d_2.z)) / 6.2831855f)), (acos(clamp(d_2.y, -1f, 1f)) / PI)); let _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { let _e27 = textureSampleLevel(t_panorama, s_panorama, uv_6, 0f); let _e32 = Sky.sun.z; return (_e27.xyz * _e32); } let _e36 = textureDimensions(t_panorama, 0i); let size_1 = vec2(_e36); let x_5 = (((i32(floor((uv_6.x * f32(size_1.x)))) % size_1.x) + size_1.x) % size_1.x); let y = clamp(i32(floor((uv_6.y * f32(size_1.y)))), 0i, (size_1.y - 1i)); let _e64 = textureLoad(t_panorama, vec2(x_5, y), 0i); let _e69 = Sky.sun.z; return (_e64.xyz * _e69); } fn sh_irradiance(n_5: vec3) -> vec3 { var c_19: vec3; let _e4 = Sky.sh[0]; c_19 = (_e4.xyz * 0.282095f); let _e9 = c_19; let _e13 = Sky.sh[1]; c_19 = (_e9 + (_e13.xyz * (0.488603f * n_5.y))); let _e20 = c_19; let _e24 = Sky.sh[2]; c_19 = (_e20 + (_e24.xyz * (0.488603f * n_5.z))); let _e31 = c_19; let _e35 = Sky.sh[3]; c_19 = (_e31 + (_e35.xyz * (0.488603f * n_5.x))); let _e42 = c_19; let _e46 = Sky.sh[4]; c_19 = (_e42 + (_e46.xyz * ((1.092548f * n_5.x) * n_5.y))); let _e55 = c_19; let _e59 = Sky.sh[5]; c_19 = (_e55 + (_e59.xyz * ((1.092548f * n_5.y) * n_5.z))); let _e68 = c_19; let _e72 = Sky.sh[6]; c_19 = (_e68 + (_e72.xyz * (0.315392f * (((3f * n_5.z) * n_5.z) - 1f)))); let _e85 = c_19; let _e89 = Sky.sh[7]; c_19 = (_e85 + (_e89.xyz * ((1.092548f * n_5.x) * n_5.z))); let _e98 = c_19; let _e102 = Sky.sh[8]; c_19 = (_e98 + (_e102.xyz * (0.546274f * ((n_5.x * n_5.x) - (n_5.y * n_5.y))))); let _e115 = c_19; return max(_e115, vec3(0f)); } fn radiance_2(d_3: vec3, roughness: f32) -> vec3 { let _e5 = Sky.flags.y; let top_1 = f32((max(_e5, 1u) - 1u)); let _e14 = textureSampleLevel(t_radiance, s_radiance, d_3, (roughness * top_1)); return _e14.xyz; } fn env_brdf_approx(roughness_1: f32, nv_1: f32) -> vec2 { let r_7 = ((roughness_1 * vec4(-1f, -0.0275f, -0.572f, 0.022f)) + vec4(1f, 0.0425f, 1.04f, -0.04f)); let a004_ = ((min((r_7.x * r_7.x), exp2((-9.28f * nv_1))) * r_7.x) + r_7.y); return ((vec2(-1.04f, 1.04f) * a004_) + r_7.zw); } fn pow8_(x_1: f32) -> f32 { let x2_1 = (max(x_1, 0f) * max(x_1, 0f)); let x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } fn fog_sun_scatter(fc: vec3, dir_1: vec3) -> vec3 { var c_20: vec3; var k_4: u32 = 0u; c_20 = fc; let _e6 = Sky.fog_color.w; if (_e6 > 0.001f) { let _e9 = pool_sun_count(); loop { let _e12 = k_4; if (_e12 < _e9) { } else { break; } { let _e14 = k_4; let _e15 = pool_sun(_e14); let _e21 = Lit.lights[_e15].info.x; if (_e21 == LIGHT_DIRECTIONAL) { let _e24 = c_20; let _e29 = Lit.lights[_e15].color; let _e38 = Lit.lights[_e15].direction; let _e42 = pow8_(dot(dir_1, -(_e38.xyz))); let _e47 = Sky.fog_color.w; c_20 = (_e24 + (((_e29.xyz / vec3(3.1415927f)) * _e42) * _e47)); } } continuing { let _e51 = k_4; k_4 = (_e51 + 1u); } } } let _e53 = c_20; return _e53; } fn sky_fog(c_21: vec3, dir_2: vec3) -> vec3 { let _e4 = Sky.fog_color; let _e9 = Sky.fog_depth.w; let _e11 = fog_sun_scatter(mix(_e4.xyz, c_21, _e9), dir_2); let _e15 = Sky.fog.y; return mix(c_21, _e11, _e15); } fn surface_fog(c_22: vec3, world_3: vec3, dir_3: vec3) -> vec3 { var dist: f32; var amount: f32; var fc_1: vec3; var local_23: bool; let _e5 = G.view; let depth = -((_e5 * vec4(world_3, 1f)).z); let _e13 = G.camera_pos; dist = distance(world_3, _e13.xyz); let _e20 = Sky.fog_origin.w; if (_e20 > 0.5f) { let _e26 = Sky.fog_origin.x; dist = max((depth - _e26), 0f); } let _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { let _e42 = Sky.fog_depth.x; let _e46 = Sky.fog_depth.y; let _e47 = dist; let z = smoothstep(_e42, _e46, _e47); let _e54 = Sky.fog_depth.z; let _e63 = Sky.fog.x; amount = (select(0f, pow(max(z, 0.000001f), _e54), (z > 0f)) * _e63); } else { let _e65 = dist; let _e70 = Sky.fog.x; amount = (1f - exp(min(0f, (-(_e65) * _e70)))); } let _e80 = Sky.fog.w; if (abs(_e80) >= 0.0001f) { let _e86 = Lit.up; let y_1 = dot(world_3, _e86.xyz); let _e89 = amount; let _e93 = Sky.fog.z; let _e98 = Sky.fog.w; amount = max(_e89, (1f - exp(min(0f, ((y_1 - _e93) * _e98))))); } let _e106 = amount; amount = clamp(_e106, 0f, 1f); let _e112 = Sky.fog_color; fc_1 = _e112.xyz; let _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { let _e129 = Sky.fog_depth.w; local_23 = (_e129 > 0f); } else { local_23 = false; } let _e133 = local_23; if select(false, _e133, SPEC_AMBIENT_SKY) { let _e139 = Sky.fog_origin.y; let _e144 = Sky.fog_origin.z; let _e148 = Sky.fog_origin.y; let t_7 = clamp(((depth - _e139) / max((_e144 - _e148), 0.000001f)), 0f, 1f); let _e159 = Sky.flags.y; let top_2 = f32((max(_e159, 2u) - 1u)); let rough_2 = mix((1f / top_2), 1f, (1f - t_7)); let _e171 = fc_1; let _e172 = sky_dir(dir_3); let _e173 = radiance_2(_e172, rough_2); let _e177 = Sky.sun.w; let _e182 = Sky.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } let _e184 = fc_1; let _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; let _e186 = fc_1; let _e187 = amount; return mix(c_22, _e186, _e187); } fn fog_chord(k_5: u32, o: vec3, d_4: vec3, t_end_ray: f32) -> vec2 { var r_1: vec2; var a: f32 = 0f; var b: f32 = 0f; var c_23: f32 = -1f; let _e9 = Fog.entries[k_5].albedo.w; let shape = u32(_e9); let _e16 = Fog.entries[k_5].emission.w; let t_end_1 = min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return vec2(0f, t_end_1); } let _e26 = Fog.entries[k_5].size; let h_4 = (_e26.xyz * 0.5f); let dd = select(d_4, vec3(0.000000000001f), (abs(d_4) < vec3(0.000000000001f))); let sa = ((-(h_4) - o) / dd); let sb = ((h_4 - o) / dd); let s_in = min(sa, sb); let s_out = max(sa, sb); r_1 = vec2(max(0f, s_in.y), min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { let _e60 = r_1.x; let _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = dot((d_4 / h_4), (d_4 / h_4)); b = dot((o / h_4), (d_4 / h_4)); c_23 = (dot((o / h_4), (o / h_4)) - 1f); } else { let rad_1 = min(h_4.x, h_4.z); let k_18 = select(0f, (rad_1 / (2f * h_4.y)), (shape == FOG_SHAPE_CONE)); let w_4 = (h_4.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_18 * k_18) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_18 * k_18) * w_4) * d_4.y)); c_23 = (((o.x * o.x) + (o.z * o.z)) - select((rad_1 * rad_1), (((k_18 * k_18) * w_4) * w_4), (shape == FOG_SHAPE_CONE))); } } let _e139 = b; let _e140 = b; let _e142 = a; let _e143 = c_23; let disc = ((_e139 * _e140) - (_e142 * _e143)); let _e146 = a; if (abs(_e146) < 0.000000000001f) { let _e150 = b; if (abs(_e150) < 0.000000000001f) { let _e156 = r_1.y; let _e157 = c_23; r_1.y = select(_e156, -1f, (_e157 > 0f)); } else { let _e162 = b; if (_e162 > 0f) { let _e167 = r_1.y; let _e168 = c_23; let _e170 = b; r_1.y = min(_e167, (-(_e168) / (2f * _e170))); } else { let _e177 = r_1.x; let _e178 = c_23; let _e180 = b; r_1.x = max(_e177, (-(_e178) / (2f * _e180))); } } } else { if (disc < 0f) { let _e189 = r_1.y; let _e190 = a; r_1.y = select(_e189, -1f, (_e190 > 0f)); } else { let _e195 = b; let _e199 = a; let _e201 = b; let _e205 = a; let lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); let _e208 = b; let _e212 = a; let _e214 = b; let _e218 = a; let hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); let _e221 = a; if (_e221 > 0f) { let _e225 = r_1.x; let _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { let _e232 = r_1.x; let _e234 = r_1.y; if (_e232 < min(_e234, lo_2)) { let _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { let _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } let _e245 = r_1; return _e245; } fn fog_density(k_6: u32, p_3: vec3, lp: vec3) -> f32 { var rho: f32; var sdf: f32 = 0f; let e_15 = Fog.entries[k_6]; let _e14 = Fog.up; rho = (e_15.material.x * min(exp2((-(e_15.material.y) * (dot(p_3, _e14.xyz) - e_15.material.w))), 1f)); if (e_15.material.z > 0f) { let shape_1 = u32(e_15.albedo.w); let h_5 = (e_15.size.xyz * 0.5f); let rad_2 = min(h_5.x, h_5.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { let k0_ = length((lp / h_5)); sdf = ((k0_ * (k0_ - 1f)) / max(length((lp / (h_5 * h_5))), 0.000000000001f)); } else { if (shape_1 == FOG_SHAPE_BOX) { let q_3 = (abs(lp) - h_5); sdf = (length(max(q_3, vec3(0f))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0f)); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { let q_4 = vec2((length(lp.xz) - rad_2), (abs(lp.y) - h_5.y)); sdf = (min(max(q_4.x, q_4.y), 0f) + length(max(q_4, vec2(0f)))); } else { let n_13 = normalize(vec2((1f / max(0.001f, (rad_2 * 0.5f))), (1f / max(0.001f, h_5.y)))); sdf = max(dot(n_13, vec2(length(lp.xz), (lp.y - h_5.y))), (-(h_5.y) - lp.y)); } } } let _e116 = rho; let _e117 = sdf; rho = (_e116 * pow(clamp(((-2f * _e117) / e_15.size.w), 0f, 1f), e_15.material.z)); } let _e130 = rho; return _e130; } fn fog_falloff_depth(k_7: u32, a_1: f32, b_1: f32, t0_: f32, t1_: f32) -> f32 { let m_3 = Fog.entries[k_7].material; let hf = m_3.y; if ((hf * b_1) == 0f) { return ((m_3.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1f)); } let s_19 = clamp((-(a_1) / b_1), t0_, t1_); let lo_3 = select(t0_, s_19, (b_1 > 0f)); let hi_3 = select(s_19, t1_, (b_1 > 0f)); let x_6 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472f); let g = select(((1f - exp(-(x_6))) / x_6), (1f - (x_6 * (0.5f - (x_6 * (0.16666667f - (x_6 / 24f)))))), (x_6 < 0.01f)); let top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * select(hi_3, lo_3, (b_1 > 0f)))), 0f))), 1f); return (m_3.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } fn omni_attenuation(d_5: f32, inv_range: f32, decay: f32) -> f32 { var nd: f32; nd = (d_5 * inv_range); let _e5 = nd; let _e6 = nd; nd = (_e5 * _e6); let _e8 = nd; let _e9 = nd; nd = (_e8 * _e9); let _e11 = nd; nd = max((1f - _e11), 0f); let _e16 = nd; let _e17 = nd; nd = (_e16 * _e17); let _e19 = nd; return (_e19 * pow(max(d_5, 0.0001f), -(decay))); } fn fog_light(n_6: u32, p_4: vec3, dir_4: vec3) -> vec3 { var sum: vec3; var k_8: u32 = 0u; var l_2: vec3; var atten: f32; let _e5 = Fog.ambient; let _e10 = Fog.params.y; sum = (_e5.xyz * _e10); let g_1 = Fog.params.x; let lights = Fog.entries[n_6].lights; loop { let _e24 = k_8; if (_e24 < min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { let _e31 = k_8; let _e35 = k_8; let i_13 = min(((select(lights.y, lights.x, (_e31 < 4u)) >> ((_e35 & 3u) * 8u)) & 255u), 63u); let li = Lit.lights[i_13]; l_2 = -(li.direction.xyz); atten = 1f; if (li.info.x != LIGHT_DIRECTIONAL) { let rel = (li.position.xyz - p_4); l_2 = (rel / vec3(max(length(rel), 0.000001f))); let _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { let _e77 = l_2; let rim_2 = max(0.0001f, ((1f - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1f - li.spot.x), 0.000001f))); let _e96 = atten; atten = (_e96 * (1f - pow(rim_2, li.spot.y))); } } let _e108 = l_2; let q_5 = ((1f + (g_1 * g_1)) - ((2f * g_1) * dot(dir_4, _e108))); let _e112 = sum; let _e115 = atten; let _e133 = Fog.light_fog[(i_13 >> 2u)][(i_13 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1f - (g_1 * g_1))) / ((12.566371f * q_5) * sqrt(q_5))) * _e133))); } continuing { let _e138 = k_8; k_8 = (_e138 + 1u); } } let _e140 = sum; return _e140; } fn fog_entry(k_9: u32, o_1: vec3, d_6: vec3, ch: vec2) -> vec4 { var split: f32; var local_24: bool; var local_25: bool; var q_1: vec3 = vec3(0f); var tau: f32 = 0f; var i_1: u32 = 0u; var local_26: bool; var local_27: bool; let e_16 = Fog.entries[k_9]; let lo_4 = (e_16.to_local * vec4(o_1, 1f)).xyz; let ld = (e_16.to_local * vec4(d_6, 0f)).xyz; let _e20 = Fog.up; let a_6 = (dot(o_1, _e20.xyz) - e_16.material.w); let _e28 = Fog.up; let b_3 = dot(d_6, _e28.xyz); let edge = (e_16.material.z > 0f); split = ((ch.x + ch.y) * 0.5f); if (e_16.material.y > 0f) { local_24 = ((-(a_6) / b_3) > ch.x); } else { local_24 = false; } let _e52 = local_24; if _e52 { local_25 = ((-(a_6) / b_3) < ch.y); } else { local_25 = false; } let _e60 = local_25; if _e60 { split = (-(a_6) / b_3); } loop { let _e70 = i_1; if (_e70 < select(4u, 12u, edge)) { } else { break; } { let _e75 = i_1; let j = (_e75 & 3u); if !((j == 0u)) { local_26 = (j == 3u); } else { local_26 = true; } let _e88 = local_26; let x_7 = select(FOG_GL_X1_, FOG_GL_X0_, _e88); if !((j == 0u)) { local_27 = (j == 3u); } else { local_27 = true; } let _e100 = local_27; let w_5 = select(FOG_GL_W1_, FOG_GL_W0_, _e100); let _e102 = split; let _e106 = split; let _e108 = i_1; let _e112 = i_1; let seg = select(select(vec2(_e102, ch.y), vec2(ch.x, _e106), (_e108 < 8u)), ch, (_e112 < 4u)); let half_len = ((seg.y - seg.x) * 0.5f); let t_8 = (((seg.x + seg.y) * 0.5f) + (half_len * select(x_7, -(x_7), (j < 2u)))); let p_9 = (o_1 + (d_6 * t_8)); let _e136 = fog_density(k_9, p_9, (lo_4 + (ld * t_8))); let _e137 = i_1; if (_e137 < 4u) { let _e140 = q_1; let _e143 = fog_light(k_9, p_9, d_6); q_1 = (_e140 + (((e_16.albedo.xyz * _e143) + e_16.emission.xyz) * ((w_5 * half_len) * clamp(_e136, 0f, 1f)))); } else { let _e155 = tau; tau = (_e155 + ((w_5 * half_len) * _e136)); } } continuing { let _e160 = i_1; i_1 = (_e160 + 1u); } } if !(edge) { let _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } let _e166 = q_1; let _e167 = tau; return vec4(_e166, _e167); } fn fog_integrate(c_24: vec3, o_2: vec3, d_7: vec3, t_end: f32, list: u32) -> vec3 { var at: array; var chords: array, 4>; var m: u32 = 0u; var i_2: u32 = 0u; var local_28: bool; var parts: array, 4>; var i_3: u32 = 0u; var n_7: u32 = 0u; var avail: f32; var i_4: u32; var i_5: u32; var q_2: vec3 = vec3(0f); var tau_1: f32 = 0f; var i_6: u32 = 0u; let all_ = (list >= FOG_LIST_ALL); loop { let _e13 = i_2; let _e18 = Fog.counts.x; if (_e13 < select(4u, min(_e18, MAX_FRAME_FOG_VOLUMES), all_)) { } else { break; } { let _e23 = i_2; let byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if !(all_) { local_28 = (byte == 0u); } else { local_28 = false; } let _e37 = local_28; if _e37 { break; } let _e42 = i_2; let k_19 = select((min(byte, MAX_FRAME_FOG_VOLUMES) - 1u), _e42, all_); let to_local = Fog.entries[k_19].to_local; let _e57 = fog_chord(k_19, (to_local * vec4(o_2, 1f)).xyz, (to_local * vec4(d_7, 0f)).xyz, t_end); if (_e57.y > _e57.x) { let _e61 = m; at[_e61] = k_19; let _e63 = m; chords[_e63] = _e57; let _e66 = m; m = (_e66 + 1u); let _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } continuing { let _e72 = i_2; i_2 = (_e72 + 1u); } } loop { let _e77 = i_3; let _e78 = m; if (_e77 < _e78) { } else { break; } { let _e80 = i_3; let _e82 = i_3; let _e84 = at[_e82]; let _e85 = i_3; let _e87 = chords[_e85]; let _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } continuing { let _e90 = i_3; i_3 = (_e90 + 1u); } } loop { let _e94 = n_7; let _e95 = m; if (_e94 < _e95) { } else { break; } { let _e97 = n_7; let _e100 = parts[_e97].w; if (_e100 < 0f) { avail = 0f; i_4 = 0u; loop { let _e107 = i_4; let _e108 = m; if (_e107 < _e108) { } else { break; } { let _e110 = i_4; let _e113 = chords[_e110].y; let _e114 = n_7; let _e117 = chords[_e114].y; let _e119 = i_4; let _e122 = chords[_e119].x; let _e123 = n_7; let _e126 = chords[_e123].x; let _e131 = i_4; let _e134 = chords[_e131].y; let _e135 = i_4; let _e138 = chords[_e135].x; let share = (max((min(_e113, _e117) - max(_e122, _e126)), 0f) / max((_e134 - _e138), 0.000001f)); let _e143 = avail; let _e144 = i_4; let _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0f) * share)); } continuing { let _e153 = i_4; i_4 = (_e153 + 1u); } } let _e155 = n_7; let _e158 = parts[_e155].w; let _e160 = avail; let f_5 = min((-(_e158) / max(_e160, 0.000000000001f)), 1f); i_5 = 0u; loop { let _e168 = i_5; let _e169 = m; if (_e168 < _e169) { } else { break; } { let _e171 = i_5; let _e174 = parts[_e171].w; if (_e174 > 0f) { let _e177 = i_5; let _e180 = chords[_e177].y; let _e181 = n_7; let _e184 = chords[_e181].y; let _e186 = i_5; let _e189 = chords[_e186].x; let _e190 = n_7; let _e193 = chords[_e190].x; let _e198 = i_5; let _e201 = chords[_e198].y; let _e202 = i_5; let _e205 = chords[_e202].x; let share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0f) / max((_e201 - _e205), 0.000001f)); let _e210 = i_5; let _e212 = parts[_e210]; parts[_e210] = (_e212 * (1f - (share_1 * f_5))); } } continuing { let _e218 = i_5; i_5 = (_e218 + 1u); } } } } continuing { let _e221 = n_7; n_7 = (_e221 + 1u); } } loop { let _e230 = i_6; let _e231 = m; if (_e230 < _e231) { } else { break; } { let _e233 = i_6; let _e236 = parts[_e233].w; if (_e236 > 0f) { let _e239 = q_2; let _e240 = i_6; let _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); let _e245 = tau_1; let _e246 = i_6; let _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } continuing { let _e252 = i_6; i_6 = (_e252 + 1u); } } let _e254 = tau_1; let t_9 = exp(-(_e254)); let _e258 = q_2; let _e261 = tau_1; return ((c_24 * t_9) + (_e258 * ((1f - t_9) / max(_e261, 0.00001f)))); } fn fog_volumes(c_25: vec3, world_4: vec3, list_1: u32) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_7 = select(_e22.xyz, (world_4 - (back * (_e26 * vec4(world_4, 1f)).z)), (_e36 > 0.5f)); let len = length((world_4 - o_7)); let _e47 = fog_integrate(c_25, o_7, ((world_4 - o_7) / vec3(max(len, 0.000001f))), len, list_1); return select(c_25, _e47, (len > 0f)); } fn sky_fog_volumes(c_26: vec3, near_point: vec3, dir_5: vec3) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back_1 = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_8 = select(_e22.xyz, (near_point - (back_1 * (_e26 * vec4(near_point, 1f)).z)), (_e36 > 0.5f)); let _e44 = Fog.counts.y; let _e45 = fog_integrate(c_26, o_8, dir_5, FOG_SKY_DISTANCE, _e44); let _e49 = Fog.params.z; return mix(c_26, _e45, _e49); } fn shadow_factor(i_7: u32, world_5: vec3, n_geo_1: vec3, l_3: vec3) -> f32 { var part: u32 = 0u; var c_27: u32 = 0u; var local_29: bool; var local_30: bool; var local_31: bool; var vis: f32 = 0f; var dy: i32 = -1i; var dx: i32; let kind = Lit.lights[i_7].info.x; let _e14 = Lit.lights[i_7].position; let light_pos = _e14.xyz; let _e21 = Lit.lights[i_7].info.w; let slot = min(_e21, 15u); let params = Shadow.lights[slot].params; let first = Shadow.lights[slot].info.x; let _e40 = Shadow.lights[slot].info.y; let count = max(_e40, 1u); let _e45 = G.view; let view_depth = -((_e45 * vec4(world_5, 1f)).z); if (kind == LIGHT_DIRECTIONAL) { let _e60 = Shadow.lights[slot].fade.y; if (view_depth > _e60) { return 1f; } part = (count - 1u); loop { let _e67 = c_27; if (_e67 < count) { } else { break; } { let _e73 = c_27; let _e75 = Shadow.lights[slot].splits[_e73]; if (view_depth <= _e75) { let _e77 = c_27; part = _e77; break; } } continuing { let _e79 = c_27; c_27 = (_e79 + 1u); } } } let _e83 = part; let texel_1 = Shadow.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; let t_10 = (texel_1.x + (texel_1.y * distance(world_5, light_pos))); let p_10 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1f)) * t_10))) + (l_3 * (params.x * t_10))); if (kind == LIGHT_OMNI) { let d_13 = (p_10 - light_pos); let a_7 = abs(d_13); if (a_7.x >= a_7.y) { local_29 = (a_7.x >= a_7.z); } else { local_29 = false; } let _e123 = local_29; if _e123 { part = select(1u, 0u, (d_13.x >= 0f)); } else { if (a_7.y >= a_7.z) { part = select(3u, 2u, (d_13.y >= 0f)); } else { part = select(5u, 4u, (d_13.z >= 0f)); } } } let _e145 = part; let tile_1 = min((first + min(_e145, (count - 1u))), 15u); let _e156 = Shadow.tiles[tile_1].view_proj; let clip = (_e156 * vec4(p_10, 1f)); if (clip.w <= 0f) { return 1f; } let ndc = (clip.xyz / vec3(clip.w)); if !((abs(ndc.x) > 1f)) { local_30 = (abs(ndc.y) > 1f); } else { local_30 = true; } let _e180 = local_30; if !(_e180) { local_31 = (ndc.z > 1f); } else { local_31 = true; } let _e188 = local_31; if _e188 { return 1f; } let rect = Shadow.tiles[tile_1].rect; let uv_7 = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let auv = (rect.xy + (uv_7 * rect.zw)); let texel_uv = Shadow.atlas.x; let lo_5 = (rect.xy + vec2((0.5f * texel_uv))); let hi_4 = ((rect.xy + rect.zw) - vec2((0.5f * texel_uv))); let r_8 = params.z; if (r_8 <= 0f) { let _e235 = textureSampleCompareLevel(t_shadow, s_shadow, clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { let spread = (r_8 * texel_uv); loop { let _e239 = dy; if (_e239 <= 1i) { } else { break; } { dx = -1i; loop { let _e244 = dx; if (_e244 <= 1i) { } else { break; } { let _e247 = dx; let _e249 = dy; let tap = clamp((auv + (vec2(f32(_e247), f32(_e249)) * spread)), lo_5, hi_4); let _e255 = vis; let _e259 = textureSampleCompareLevel(t_shadow, s_shadow, tap, ndc.z); vis = (_e255 + _e259); } continuing { let _e262 = dx; dx = (_e262 + 1i); } } } continuing { let _e265 = dy; dy = (_e265 + 1i); } } let _e267 = vis; vis = (_e267 / 9f); } if (kind == LIGHT_DIRECTIONAL) { let fade_1 = Shadow.lights[slot].fade; let _e277 = vis; vis = mix(_e277, 1f, smoothstep(fade_1.x, fade_1.y, view_depth)); } let _e283 = vis; return mix(1f, _e283, params.w); } fn probe_light(n_8: vec3) -> vec3 { let _e5 = O.gi[0].x; let _e9 = O.gi[0]; let _e17 = O.gi[1].x; let _e21 = O.gi[1]; let _e29 = O.gi[2].x; let _e33 = O.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0f)); } fn gi_diffuse(n_9: vec3, baked: bool, baked_light: vec3) -> vec4 { if baked { return vec4(baked_light, 1f); } let _e9 = O.extra.x; if select(false, ((_e9 & OBJ_PROBE_GI) != 0u), SPEC_PROBE_GI) { let _e16 = probe_light(n_9); return vec4(_e16, 1f); } return vec4(0f); } fn probe_face_uv(d_8: vec3) -> vec3 { var face: f32; var ma: f32; var sc: f32; var tc: f32; var local_32: bool; let a_8 = abs(d_8); if (a_8.x >= a_8.y) { local_32 = (a_8.x >= a_8.z); } else { local_32 = false; } let _e15 = local_32; if _e15 { ma = a_8.x; if (d_8.x >= 0f) { face = 0f; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1f; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0f) { face = 2f; sc = d_8.x; tc = d_8.z; } else { face = 3f; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0f) { face = 4f; sc = d_8.x; tc = -(d_8.y); } else { face = 5f; sc = -(d_8.x); tc = -(d_8.y); } } } let _e56 = face; let _e57 = sc; let _e58 = ma; let _e64 = tc; let _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1f) * 0.5f), (((_e64 / _e65) + 1f) * 0.5f)); } fn probe_texel(row: u32, fuv: vec3, level_1: u32) -> vec3 { let _e6 = Probe.counts.z; let n_14 = f32(max((_e6 >> level_1), 1u)); let lo_6 = (0.5f / n_14); let u_1 = clamp(fuv.y, lo_6, (1f - lo_6)); let v_9 = clamp(fuv.z, lo_6, (1f - lo_6)); let uv_8 = vec2(((fuv.x + u_1) / 6f), ((f32(row) + v_9) / 8f)); let _e33 = textureSampleLevel(t_probes, s_probes, uv_8, f32(level_1)); return _e33.xyz; } fn probe_sample(row_1: u32, d_9: vec3, lod: f32) -> vec3 { var local_33: bool; let _e6 = Probe.counts.y; let levels = max(_e6, 1u); let l_10 = clamp(lod, 0f, f32((levels - 1u))); let m0_ = u32(l_10); let t_11 = (l_10 - f32(m0_)); let _e17 = probe_face_uv(d_9); let _e18 = probe_texel(row_1, _e17, m0_); if !((t_11 <= 0f)) { local_33 = ((m0_ + 1u) >= levels); } else { local_33 = true; } let _e28 = local_33; if _e28 { return _e18; } let _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1f - t_11)) + (_e34 * t_11)); } fn probe_weight(p_5: ProbeEntryU, world_6: vec3) -> f32 { let l_11 = (p_5.to_local * vec4(world_6, 1f)).xyz; let e_17 = p_5.extents.xyz; let d_14 = min((e_17.x - abs(l_11.x)), min((e_17.y - abs(l_11.y)), (e_17.z - abs(l_11.z)))); if (d_14 < 0f) { return 0f; } if !((p_5.extents.w > 0f)) { return 1f; } return min((d_14 / p_5.extents.w), 1f); } fn probe_exit(o_3: f32, d_10: f32, e_1: f32) -> f32 { if (d_10 > 0f) { return ((e_1 - o_3) / d_10); } if (d_10 < 0f) { return ((-(e_1) - o_3) / d_10); } return 300000000000000000000000000000000000000f; } fn probe_lookup(p_6: ProbeEntryU, world_7: vec3, dir_6: vec3) -> vec3 { let d_15 = (p_6.to_local * vec4(dir_6, 0f)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } let o_9 = (p_6.to_local * vec4(world_7, 1f)).xyz; let e_18 = p_6.extents.xyz; let _e24 = probe_exit(o_9.x, d_15.x, e_18.x); let _e28 = probe_exit(o_9.y, d_15.y, e_18.y); let _e32 = probe_exit(o_9.z, d_15.z, e_18.z); let t_12 = max(min(_e24, min(_e28, _e32)), 0f); return ((o_9 + (d_15 * t_12)) - p_6.offset.xyz); } fn probe_reflection(world_8: vec3, r_2: vec3, roughness_2: f32, probes: u32) -> vec4 { var acc: vec3 = vec3(0f); var w_sum: f32 = 0f; var i_8: u32 = 0u; let _e12 = Probe.counts.x; let count_1 = min(_e12, MAX_PROBES); let _e18 = Probe.counts.y; let lod_1 = (roughness_2 * f32((max(_e18, 1u) - 1u))); loop { let _e27 = i_8; if (_e27 < count_1) { } else { break; } { let _e31 = i_8; let p_11 = Probe.probes[_e31]; if (((probes >> p_11.info.w) & 1u) == 0u) { continue; } let _e41 = probe_weight(p_11, world_8); if (_e41 <= 0f) { continue; } let _e44 = acc; let _e47 = probe_lookup(p_11, world_8, r_2); let _e48 = probe_sample(p_11.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_11.offset.w) * _e41)); let _e54 = w_sum; w_sum = (_e54 + _e41); } continuing { let _e57 = i_8; i_8 = (_e57 + 1u); } } let _e59 = w_sum; if (_e59 > 1f) { let _e62 = acc; let _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1f; } let _e67 = acc; let _e68 = w_sum; return vec4(_e67, _e68); } fn probe_ambient(world_9: vec3, n_10: vec3, probes_1: u32) -> vec4 { var acc_1: vec3 = vec3(0f); var w_sum_1: f32 = 0f; var i_9: u32 = 0u; var local_34: bool; var c_28: vec3; let _e11 = Probe.counts.x; let count_2 = min(_e11, MAX_PROBES); let _e17 = Probe.counts.y; let last = (max(_e17, 1u) - 1u); loop { let _e24 = i_9; if (_e24 < count_2) { } else { break; } { let _e28 = i_9; let p_12 = Probe.probes[_e28]; if !((((probes_1 >> p_12.info.w) & 1u) == 0u)) { local_34 = (p_12.info.y == PROBE_AMBIENT_DISABLED); } else { local_34 = true; } let _e46 = local_34; if _e46 { continue; } let _e47 = probe_weight(p_12, world_9); if (_e47 <= 0f) { continue; } c_28 = p_12.ambient.xyz; if (p_12.info.y == PROBE_AMBIENT_ENVIRONMENT) { let _e64 = probe_face_uv((p_12.to_local * vec4(n_10, 0f)).xyz); let _e65 = probe_texel(p_12.info.w, _e64, last); c_28 = _e65; } let _e66 = acc_1; let _e67 = c_28; acc_1 = (_e66 + (_e67 * _e47)); let _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } continuing { let _e73 = i_9; i_9 = (_e73 + 1u); } } let _e75 = w_sum_1; if (_e75 > 1f) { let _e78 = acc_1; let _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1f; } let _e83 = acc_1; let _e84 = w_sum_1; return vec4(_e83, _e84); } fn lit_with(in_21: VsOut, front_1: bool, s_6: Samples, baked_1: bool, baked_light_1: vec3) -> vec3 { var n_mat: vec3; var t_2: vec3; var surf_1: DecalSurface; var c_29: vec3 = vec3(0f); var k_10: u32 = 0u; var local_35: bool; var l_4: vec3; var atten_1: f32; var radiance_3: vec3; var ambient: vec3; var diffuse_amb: vec3; var spec_amb: vec3; var dif: vec3; var dif_1: vec3; var dif_2: vec3; var local_36: bool; let n_geo_2 = select(-(normalize(in_21.normal)), normalize(in_21.normal), front_1); n_mat = n_geo_2; let _e16 = M.flags.x; if select(false, ((_e16 & T_NORMAL) != 0u), SPEC_TEX_NORMAL) { t_2 = in_21.tangent.xyz; let _e26 = t_2; let _e27 = n_mat; let _e28 = n_mat; let _e29 = t_2; t_2 = normalize((_e26 - (_e27 * dot(_e28, _e29)))); let _e34 = n_mat; let _e35 = t_2; let b_4 = (cross(_e34, _e35) * in_21.tangent.w); let _e40 = t_2; let _e48 = n_mat; n_mat = normalize((((_e40 * s_6.normal.x) + (b_4 * s_6.normal.y)) + (_e48 * s_6.normal.z))); } let _e59 = M.factors.x; let _e69 = M.factors.y; let _e77 = n_mat; surf_1 = DecalSurface(s_6.base.xyz, clamp((_e59 * s_6.mr.z), 0f, 1f), clamp((_e69 * s_6.mr.y), 0.045f, 1f), s_6.occlusion, _e77, s_6.emission); let _e85 = O.decals.z; if select(false, (_e85 > 0u), SPEC_DECALS) { let _e91 = surf_1; let _e92 = apply_decals(in_21.world, n_geo_2, _e91); surf_1 = _e92; } let metallic_2 = surf_1.metallic; let roughness_8 = surf_1.roughness; let a2_5 = (((roughness_8 * roughness_8) * roughness_8) * roughness_8); let base_2 = surf_1.base; let diffuse_5 = (base_2 * (1f - metallic_2)); let f0_7 = mix(vec3(0.04f), base_2, metallic_2); let n_15 = surf_1.normal; let _e114 = G.view[0][2]; let _e119 = G.view[1][2]; let _e124 = G.view[2][2]; let view_dir = vec3(_e114, _e119, _e124); let _e128 = G.camera_pos; let _e137 = G.camera_pos.w; let v_10 = select(normalize((_e128.xyz - in_21.world)), normalize(view_dir), (_e137 > 0.5f)); let _e144 = object_light_count(); loop { let _e148 = k_10; if select(false, (_e148 < _e144), SPEC_LIGHTS) { } else { break; } { let _e152 = k_10; let _e153 = object_light(_e152); let li_1 = Lit.lights[_e153]; if baked_1 { local_35 = (li_1.info.z == LIGHT_BAKED_STATIC); } else { local_35 = false; } let _e165 = local_35; if _e165 { continue; } let kind_1 = li_1.info.x; l_4 = vec3(); atten_1 = 1f; if (kind_1 == LIGHT_DIRECTIONAL) { l_4 = -(li_1.direction.xyz); } else { let rel_1 = (li_1.position.xyz - in_21.world); let d_16 = length(rel_1); l_4 = (rel_1 / vec3(max(d_16, 0.000001f))); let _e190 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e190; if (kind_1 == LIGHT_SPOT) { let cone = li_1.spot.x; let _e195 = l_4; let scos = max(dot(-(_e195), li_1.direction.xyz), cone); let rim_3 = max(0.0001f, ((1f - scos) / max((1f - cone), 0.000001f))); let _e210 = atten_1; atten_1 = (_e210 * (1f - pow(rim_3, li_1.spot.y))); } } let _e217 = atten_1; if (_e217 > 0f) { let _e222 = atten_1; radiance_3 = (li_1.color.xyz * _e222); if select(false, (li_1.info.y == LIGHT_SHADOWED), SPEC_SHADOWS) { let _e234 = atten_1; let _e236 = l_4; let _e237 = shadow_factor(_e153, in_21.world, n_geo_2, _e236); radiance_3 = (li_1.color.xyz * (_e234 * _e237)); } let _e240 = c_29; let _e241 = l_4; let _e242 = radiance_3; let _e245 = light_specular(n_15, v_10, _e241, _e242, diffuse_5, f0_7, a2_5, li_1.spot.z); c_29 = (_e240 + _e245); } } continuing { let _e248 = k_10; k_10 = (_e248 + 1u); } } let nv_9 = max(dot(n_15, v_10), 0.0001f); let f_amb_1 = (f0_7 + ((max(vec3((1f - roughness_8)), f0_7) - f0_7) * pow((1f - nv_9), 5f))); let _e264 = gi_diffuse(n_15, baked_1, baked_light_1); let _e270 = Sky.flags.x; if select(false, ((_e270 & SKY_IBL) != 0u), SPEC_AMBIENT_SKY) { let _e280 = Sky.ibl.x; let _e284 = Sky.sun.w; let scale_1 = (_e280 * _e284); let _e288 = Sky.ambient; diffuse_amb = _e288.xyz; let _e294 = Sky.flags.x; if ((_e294 & SKY_AMBIENT_SKY) != 0u) { let _e301 = Sky.ambient; let _e303 = sky_dir(n_15); let _e304 = sh_irradiance(_e303); let _e309 = Sky.ambient.w; diffuse_amb = mix(_e301.xyz, (_e304 * scale_1), _e309); } if (_e264.w > 0f) { diffuse_amb = _e264.xyz; } let _e317 = Sky.ambient; spec_amb = _e317.xyz; let _e323 = Sky.flags.x; if ((_e323 & SKY_REFLECT_RADIANCE) != 0u) { let _e330 = sky_dir(reflect(-(v_10), n_15)); let _e331 = radiance_2(_e330, roughness_8); spec_amb = (_e331 * scale_1); } else { let _e336 = Sky.flags.x; if ((_e336 & SKY_REFLECT_OFF) != 0u) { spec_amb = vec3(0f); } } let _e343 = env_brdf_approx(roughness_8, nv_9); let _e348 = Probe.counts.x; if select(false, (_e348 > 0u), SPEC_PROBES) { let _e359 = O.extra.z; let _e360 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e359); let _e361 = spec_amb; let spec_4 = ((_e361 * (1f - _e360.w)) + _e360.xyz); let _e368 = diffuse_amb; dif = _e368; if (_e264.w <= 0f) { let _e377 = O.extra.z; let _e378 = probe_ambient(in_21.world, n_15, _e377); let _e379 = diffuse_amb; dif = ((_e379 * (1f - _e378.w)) + _e378.xyz); } let _e386 = dif; ambient = ((diffuse_5 * _e386) + (spec_4 * ((f0_7 * _e343.x) + vec3((_e343.y * clamp((50f * f0_7.y), metallic_2, 1f)))))); } else { let _e401 = diffuse_amb; let _e403 = spec_amb; ambient = ((diffuse_5 * _e401) + (_e403 * ((f0_7 * _e343.x) + vec3((_e343.y * clamp((50f * f0_7.y), metallic_2, 1f)))))); } } else { let _e420 = Lit.counts.y; if ((_e420 & ENV_AMBIENT_SKY) != 0u) { let _e427 = Lit.up; let up_2 = _e427.xyz; let _e431 = Lit.sky_top; let _e435 = Lit.sky_horizon; let sky_avg = ((_e431.xyz + _e435.xyz) * 0.5f); let _e442 = Lit.ground_horizon; let _e446 = Lit.ground_bottom; let ground_avg = ((_e442.xyz + _e446.xyz) * 0.5f); let irradiance_1 = mix(ground_avg, sky_avg, clamp(((dot(n_15, up_2) * 0.5f) + 0.5f), 0f, 1f)); let _e462 = sky(reflect(-(v_10), n_15)); let blurred_1 = mix(_e462, sky_avg, roughness_8); let _e467 = Probe.counts.x; if (_e467 > 0u) { let _e476 = O.extra.z; let _e477 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e476); let _e481 = Lit.ambient.w; let spec_5 = (((blurred_1 * _e481) * (1f - _e477.w)) + _e477.xyz); dif_1 = _e264.xyz; if (_e264.w <= 0f) { let _e498 = O.extra.z; let _e499 = probe_ambient(in_21.world, n_15, _e498); let _e503 = Lit.ambient.w; dif_1 = (((irradiance_1 * _e503) * (1f - _e499.w)) + _e499.xyz); } let _e511 = dif_1; ambient = ((diffuse_5 * _e511) + (spec_5 * f_amb_1)); } else { if (_e264.w > 0f) { let _e524 = Lit.ambient.w; ambient = ((diffuse_5 * _e264.xyz) + ((blurred_1 * f_amb_1) * _e524)); } else { let _e533 = Lit.ambient.w; ambient = (((diffuse_5 * irradiance_1) + (blurred_1 * f_amb_1)) * _e533); } } } else { let _e538 = Probe.counts.x; if (_e538 > 0u) { let _e547 = O.extra.z; let _e548 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e547); let _e551 = Lit.ambient; let spec_6 = ((_e551.xyz * (1f - _e548.w)) + _e548.xyz); dif_2 = _e264.xyz; if (_e264.w <= 0f) { let _e568 = O.extra.z; let _e569 = probe_ambient(in_21.world, n_15, _e568); let _e572 = Lit.ambient; dif_2 = ((_e572.xyz * (1f - _e569.w)) + _e569.xyz); } let _e580 = dif_2; ambient = ((diffuse_5 * _e580) + (spec_6 * f_amb_1)); } else { if (_e264.w > 0f) { let _e591 = Lit.ambient; ambient = ((diffuse_5 * _e264.xyz) + (_e591.xyz * f_amb_1)); } else { let _e597 = Lit.ambient; ambient = (_e597.xyz * (diffuse_5 + f_amb_1)); } } } } let _e605 = Lit.counts.y; if ((_e605 & ENV_SSAO) != 0u) { let _e615 = M.flags.y; local_36 = (_e615 != ALPHA_BLEND); } else { local_36 = false; } let _e619 = local_36; if select(false, _e619, SPEC_SSAO) { let _e628 = textureLoad(t_ao, vec2(floor(in_21.clip.xy)), 0i); let ssao = _e628.x; let _e630 = c_29; let _e632 = surf_1.occlusion; let _e637 = Lit.tone.z; let _e641 = Lit.tone.w; c_29 = (_e630 * mix(1f, min(ssao, _e632), (_e637 * _e641))); let _e646 = c_29; let _e647 = ambient; let _e649 = surf_1.occlusion; c_29 = (_e646 + (_e647 * min(_e649, ssao))); } else { let _e653 = c_29; let _e654 = ambient; let _e656 = surf_1.occlusion; c_29 = (_e653 + (_e654 * _e656)); } let _e659 = c_29; let _e661 = surf_1.emission; c_29 = (_e659 + _e661); let _e667 = Sky.flags.x; if select(false, ((_e667 & SKY_FOG) != 0u), SPEC_FOG) { let _e674 = c_29; let _e677 = surface_fog(_e674, in_21.world, -(v_10)); c_29 = _e677; } let _e682 = O.decals.w; if select(false, (_e682 != 0u), SPEC_FOG_VOLUMES) { let _e687 = c_29; let _e692 = O.decals.w; let _e693 = fog_volumes(_e687, in_21.world, _e692); c_29 = _e693; } let _e694 = c_29; let _e695 = tonemap(_e694); return _e695; } fn lit(in_22: VsOut, front_2: bool, s_7: Samples) -> vec3 { let _e6 = lit_with(in_22, front_2, s_7, false, vec3(0f)); return _e6; } fn lit_output(c_30: vec4) -> vec4 { let _e4 = Lit.counts.y; if ((_e4 & ENV_HDR) != 0u) { return vec4(max(c_30.xyz, vec3(0f)), clamp(c_30.w, 0f, 1f)); } let _e18 = target_color(c_30); return _e18; } fn ext_vs_out(o_4: VsOut, uv1_4: vec2) -> VsOutExt { var e_2: VsOutExt; e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; let _e20 = e_2; return _e20; } fn ext_base_in(e_3: VsOutExt) -> VsOut { var o_5: VsOut; o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; let _e18 = o_5; return _e18; } fn surface_vertex(in_23: VsIn) -> VsOut { var out_8: VsOut; let _e3 = O.model; let world_12 = (_e3 * vec4(in_23.pos, 1f)); let _e12 = G.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; let _e19 = O.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0f)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; let _e33 = O.extra.x; let mirror = select(1f, -1f, ((_e33 & OBJ_MIRRORED) != 0u)); let _e44 = O.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0f)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1f); let _e61 = out_8; return _e61; } fn surface_vertex_instanced(in_24: VsIn, inst_2: InstIn) -> VsOut { var out_9: VsOut; let p1_ = vec4(in_24.pos, 1f); let local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); let _e14 = O.model; let world_13 = (_e14 * vec4(local_50, 1f)); let bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); let by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); let bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); let det = dot(bx, cross(by, bz)); let flip = (det < 0f); let cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); let n_local = ((cofactor * in_24.normal) * select(1f, -1f, flip)); let t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); let _e61 = G.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; let _e68 = O.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0f)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | select(0u, F_INSTANCE_MIRRORED, flip)); let _e85 = O.extra.x; let mirror_1 = select(1f, -1f, (((_e85 & OBJ_MIRRORED) != 0u) != flip)); let _e97 = O.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0f)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; let _e111 = out_9; return _e111; } fn ext_uv(s_8: u32, uv0_: vec2, uv1_5: vec2) -> vec2 { let r0_ = M.xf[(s_8 * 2u)]; let r1_ = M.xf[((s_8 * 2u) + 1u)]; let uv_9 = select(uv0_, uv1_5, (r0_.w > 0.5f)); return vec2((dot(r0_.xy, uv_9) + r0_.z), (dot(r1_.xy, uv_9) + r1_.z)); } fn ext_where(s_9: u32) -> f32 { let _e9 = M.xf[((s_9 * 2u) + 1u)].w; return _e9; } fn ext_layer(s_10: u32, uv0_1: vec2, uv1_6: vec2) -> vec4 { let _e5 = ext_uv(s_10, uv0_1, uv1_6); let _e6 = ext_where(s_10); let _e12 = textureSample(t_ext, s_mat, _e5, (i32((_e6 + 0.5f)) - 1i)); return _e12; } fn scaled_normal(texel: vec3, scale: f32) -> vec3 { return normalize((((texel * 2f) - vec3(1f)) * vec3(scale, scale, 1f))); } fn sample_ext(in_25: VsOutExt) -> ExtSamples { var s_11: ExtSamples; var c_31: vec4; var thick: f32 = 1f; let _e2 = tex_uv(in_25.uv); let _e4 = tex_uv(in_25.uv1_); let _e9 = M.base_color; s_11.base = _e9; let _e14 = M.flags.x; if select(false, ((_e14 & T_BASE) != 0u), SPEC_TEX_BASE) { let _e22 = s_11.base; let _e26 = ext_uv(SLOT_BASE, _e2, _e4); let _e27 = textureSample(t_base, s_mat, _e26); let _e28 = decoded_base(_e27); s_11.base = (_e22 * _e28); } let _e34 = M.flags.w; if select(false, ((_e34 & MAT_VERTEX_COLOR) != 0u), SPEC_VERTEX_COLOR) { c_31 = in_25.color; let _e46 = M.flags.w; if ((_e46 & MAT_VERTEX_COLOR_SRGB) != 0u) { let _e51 = c_31; let _e53 = srgb_to_linear(_e51.xyz); let _e55 = c_31.w; c_31 = vec4(_e53, _e55); } let _e59 = s_11.base; let _e60 = c_31; s_11.base = (_e59 * _e60); } s_11.normal = vec3(0f, 0f, 1f); let _e71 = M.flags.x; if select(false, ((_e71 & T_NORMAL) != 0u), SPEC_TEX_NORMAL) { let _e82 = ext_uv(SLOT_NORMAL, _e2, _e4); let _e83 = textureSample(t_normal, s_mat, _e82); let _e89 = M.ext[3].w; let _e90 = scaled_normal(_e83.xyz, _e89); s_11.normal = _e90; } let _e95 = M.factors.x; s_11.metallic = _e95; let _e98 = ext_where(SLOT_METALLIC); if select(false, (_e98 > 0.5f), SPEC_TEX_MR) { let _e104 = s_11.metallic; let _e108 = ext_uv(SLOT_METALLIC, _e2, _e4); let _e109 = textureSample(t_mr, s_mat, _e108); s_11.metallic = (_e104 * _e109.z); } let _e116 = M.factors.y; s_11.roughness = _e116; let _e121 = M.flags.w; if select(false, ((_e121 & MAT_ROUGHNESS_LAYER) != 0u), SPEC_ROUGHNESS_LAYER) { let _e129 = ext_where(SLOT_ROUGHNESS); if (_e129 > 0.5f) { let _e133 = s_11.roughness; let _e135 = ext_layer(SLOT_ROUGHNESS, _e2, _e4); s_11.roughness = (_e133 * _e135.y); } } else { let _e140 = ext_where(SLOT_ROUGHNESS); if select(false, (_e140 > 0.5f), SPEC_TEX_MR) { let _e146 = s_11.roughness; let _e150 = ext_uv(SLOT_ROUGHNESS, _e2, _e4); let _e151 = textureSample(t_mr, s_mat, _e150); s_11.roughness = (_e146 * _e151.y); } } let _e157 = M.emission; s_11.emission = _e157.xyz; let _e163 = M.flags.x; if select(false, ((_e163 & T_EMISSION) != 0u), SPEC_TEX_EMISSION) { let _e171 = s_11.emission; let _e175 = ext_uv(SLOT_EMISSIVE, _e2, _e4); let _e176 = textureSample(t_emission, s_mat, _e175); let _e178 = decoded_emission(_e176.xyz); s_11.emission = (_e171 * _e178); } s_11.occlusion = 1f; let _e186 = M.flags.x; if select(false, ((_e186 & T_OCCLUSION) != 0u), SPEC_TEX_OCCLUSION) { let _e196 = ext_uv(SLOT_OCCLUSION, _e2, _e4); let _e197 = textureSample(t_occlusion, s_mat, _e196); let o_10 = _e197.x; let _e204 = M.ext[6].w; s_11.occlusion = (1f + (_e204 * (o_10 - 1f))); } let _e215 = M.ext[0].w; s_11.specular = _e215; let _e218 = ext_where(SLOT_SPECULAR); if select(false, (_e218 > 0.5f), SPEC_EXT_LAYERS) { let _e224 = s_11.specular; let _e226 = ext_layer(SLOT_SPECULAR, _e2, _e4); s_11.specular = (_e224 * _e226.w); } let _e233 = M.ext[0]; s_11.specular_color = _e233.xyz; let _e237 = ext_where(SLOT_SPECULAR_COLOR); if select(false, (_e237 > 0.5f), SPEC_EXT_LAYERS) { let _e243 = s_11.specular_color; let _e245 = ext_layer(SLOT_SPECULAR_COLOR, _e2, _e4); let _e247 = srgb_to_linear(_e245.xyz); s_11.specular_color = (_e243 * _e247); } let _e254 = M.ext[1].y; s_11.transmission = _e254; let _e257 = ext_where(SLOT_TRANSMISSION); if select(false, (_e257 > 0.5f), SPEC_EXT_LAYERS) { let _e263 = s_11.transmission; let _e265 = ext_layer(SLOT_TRANSMISSION, _e2, _e4); s_11.transmission = (_e263 * _e265.x); } let _e273 = M.ext[1].z; s_11.thickness = _e273; let _e276 = ext_where(SLOT_THICKNESS); if select(false, (_e276 > 0.5f), SPEC_EXT_LAYERS) { let _e282 = s_11.thickness; let _e284 = ext_layer(SLOT_THICKNESS, _e2, _e4); s_11.thickness = (_e282 * _e284.y); } let _e292 = M.ext[3].x; s_11.clearcoat = _e292; let _e295 = ext_where(SLOT_CLEARCOAT); if select(false, (_e295 > 0.5f), SPEC_EXT_LAYERS) { let _e301 = s_11.clearcoat; let _e303 = ext_layer(SLOT_CLEARCOAT, _e2, _e4); s_11.clearcoat = (_e301 * _e303.x); } let _e311 = M.ext[3].y; s_11.clearcoat_roughness = _e311; let _e314 = ext_where(SLOT_CLEARCOAT_ROUGHNESS); if select(false, (_e314 > 0.5f), SPEC_EXT_LAYERS) { let _e320 = s_11.clearcoat_roughness; let _e322 = ext_layer(SLOT_CLEARCOAT_ROUGHNESS, _e2, _e4); s_11.clearcoat_roughness = (_e320 * _e322.y); } s_11.clearcoat_normal = vec3(0f, 0f, 1f); s_11.clearcoat_mapped = false; let _e334 = ext_where(SLOT_CLEARCOAT_NORMAL); if select(false, (_e334 > 0.5f), SPEC_EXT_LAYERS) { let _e341 = ext_layer(SLOT_CLEARCOAT_NORMAL, _e2, _e4); let _e347 = M.ext[3].z; let _e348 = scaled_normal(_e341.xyz, _e347); s_11.clearcoat_normal = _e348; s_11.clearcoat_mapped = true; } let _e355 = M.ext[4]; s_11.sheen_color = _e355.xyz; let _e359 = ext_where(SLOT_SHEEN_COLOR); if select(false, (_e359 > 0.5f), SPEC_EXT_LAYERS) { let _e365 = s_11.sheen_color; let _e367 = ext_layer(SLOT_SHEEN_COLOR, _e2, _e4); let _e369 = srgb_to_linear(_e367.xyz); s_11.sheen_color = (_e365 * _e369); } let _e376 = M.ext[4].w; s_11.sheen_roughness = _e376; let _e379 = ext_where(SLOT_SHEEN_ROUGHNESS); if select(false, (_e379 > 0.5f), SPEC_EXT_LAYERS) { let _e385 = s_11.sheen_roughness; let _e387 = ext_layer(SLOT_SHEEN_ROUGHNESS, _e2, _e4); s_11.sheen_roughness = (_e385 * _e387.w); } let _e395 = M.ext[5].x; s_11.iridescence = _e395; let _e398 = ext_where(SLOT_IRIDESCENCE); if select(false, (_e398 > 0.5f), SPEC_EXT_LAYERS) { let _e404 = s_11.iridescence; let _e406 = ext_layer(SLOT_IRIDESCENCE, _e2, _e4); s_11.iridescence = (_e404 * _e406.x); } let _e413 = ext_where(SLOT_IRIDESCENCE_THICKNESS); if select(false, (_e413 > 0.5f), SPEC_EXT_LAYERS) { let _e419 = ext_layer(SLOT_IRIDESCENCE_THICKNESS, _e2, _e4); thick = _e419.y; } let _e426 = M.ext[5].z; let _e431 = M.ext[5].w; let _e432 = thick; s_11.iridescence_thickness = mix(_e426, _e431, _e432); let _e439 = M.ext[6].x; s_11.anisotropy = _e439; let _e444 = M.ext[6]; s_11.anisotropy_dir = _e444.yz; let _e448 = ext_where(SLOT_ANISOTROPY); if select(false, (_e448 > 0.5f), SPEC_EXT_LAYERS) { let _e454 = ext_layer(SLOT_ANISOTROPY, _e2, _e4); let a_9 = _e454.xyz; let d_17 = ((a_9.xy * 2f) - vec2(1f)); let dn_1 = select(vec2(1f, 0f), normalize(d_17), (dot(d_17, d_17) > 0.00000001f)); let c_40 = M.ext[6].y; let sn = M.ext[6].z; s_11.anisotropy_dir = vec2(((c_40 * dn_1.x) - (sn * dn_1.y)), ((sn * dn_1.x) + (c_40 * dn_1.y))); let _e493 = s_11.anisotropy; s_11.anisotropy = (_e493 * a_9.z); } let _e501 = M.ext[7].w; s_11.diffuse_transmission = _e501; let _e504 = ext_where(SLOT_DIFFUSE_TRANSMISSION); if select(false, (_e504 > 0.5f), SPEC_EXT_LAYERS) { let _e510 = s_11.diffuse_transmission; let _e512 = ext_layer(SLOT_DIFFUSE_TRANSMISSION, _e2, _e4); s_11.diffuse_transmission = (_e510 * _e512.w); } let _e519 = M.ext[7]; s_11.diffuse_transmission_color = _e519.xyz; let _e523 = ext_where(SLOT_DIFFUSE_TRANSMISSION_COLOR); if select(false, (_e523 > 0.5f), SPEC_EXT_LAYERS) { let _e529 = s_11.diffuse_transmission_color; let _e531 = ext_layer(SLOT_DIFFUSE_TRANSMISSION_COLOR, _e2, _e4); let _e533 = srgb_to_linear(_e531.xyz); s_11.diffuse_transmission_color = (_e529 * _e533); } let _e535 = s_11; return _e535; } fn ext_cut(s_12: ExtSamples) -> bool { var local_37: bool; let _e5 = M.flags.y; if (_e5 == ALPHA_MASK) { let _e15 = M.emission.w; local_37 = (s_12.base.w < _e15); } else { local_37 = false; } let _e18 = local_37; return select(false, _e18, SPEC_ALPHA_MASK); } fn max3_(c_32: vec3) -> f32 { return max(c_32.x, max(c_32.y, c_32.z)); } fn pow5_(x_2: f32) -> f32 { let x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } fn f_schlick90_(f0_3: vec3, f90_: vec3, vh_1: f32) -> vec3 { let _e9 = pow5_(clamp((1f - vh_1), 0f, 1f)); return (f0_3 + ((f90_ - f0_3) * _e9)); } fn d_ggx_aniso(nh_1: f32, th: f32, bh: f32, at_1: f32, ab: f32) -> f32 { let a2_6 = (at_1 * ab); let f_6 = vec3((ab * th), (at_1 * bh), (a2_6 * nh_1)); let w2_ = (a2_6 / dot(f_6, f_6)); return (((a2_6 * w2_) * w2_) / PI); } fn v_ggx_aniso(nl_1: f32, nv_2: f32, bv: f32, tv: f32, tl: f32, bl: f32, at_2: f32, ab_1: f32) -> f32 { let gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); let g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5f / max((gv_1 + g_l_1), 0.000001f)), 0f, 1f); } fn d_charlie(alpha_g: f32, nh_2: f32) -> f32 { let inv_r = (1f / alpha_g); let sin2h = max((1f - (nh_2 * nh_2)), 0f); return (((2f + inv_r) * pow(max(sin2h, 0.0000001f), (inv_r * 0.5f))) / 6.2831855f); } fn charlie_l(x_3: f32, alpha_g_1: f32) -> f32 { let o_11 = ((1f - alpha_g_1) * (1f - alpha_g_1)); let a_10 = mix(21.5473f, 25.3245f, o_11); let b_5 = mix(3.82987f, 3.32435f, o_11); let c_41 = mix(0.19823f, 0.16801f, o_11); let d_18 = mix(-1.9776f, -1.27393f, o_11); let e_19 = mix(-4.32054f, -4.85967f, o_11); return (((a_10 / (1f + (b_5 * pow(max(x_3, 0.000001f), c_41)))) + (d_18 * x_3)) + e_19); } fn lambda_sheen(cos_theta: f32, alpha_g_2: f32) -> f32 { if (abs(cos_theta) < 0.5f) { let _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } let _e8 = charlie_l(0.5f, alpha_g_2); let _e13 = charlie_l((1f - cos_theta), alpha_g_2); return exp(((2f * _e8) - _e13)); } fn v_charlie(nl_2: f32, nv_3: f32, alpha_g_3: f32) -> f32 { let _e3 = lambda_sheen(nv_3, alpha_g_3); let _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1f / (((1f + _e3) + _e6) * ((4f * nv_3) * nl_2))), 0f, 1f); } fn sheen_albedo(nv_4: f32, roughness_3: f32) -> f32 { var t_3: array = array(1f, 1f, 1f, 1f, 0.7217f, 0.337f, 0.1291f, 0.0382f, 0.008f, 0.0011f, 0.0001f, 0f, 0f, 0f, 0f, 0f, 1f, 1f, 1f, 0.877f, 0.6879f, 0.518f, 0.3738f, 0.2565f, 0.1657f, 0.0991f, 0.0537f, 0.0254f, 0.01f, 0.0029f, 0.0005f, 0f, 0.8639f, 0.8639f, 0.8278f, 0.7269f, 0.6176f, 0.5129f, 0.4169f, 0.3308f, 0.255f, 0.1895f, 0.1344f, 0.0897f, 0.0555f, 0.0304f, 0.013f, 0.0026f, 0.8025f, 0.8025f, 0.7788f, 0.7039f, 0.6193f, 0.5365f, 0.4586f, 0.3864f, 0.3199f, 0.2589f, 0.2035f, 0.1541f, 0.1123f, 0.0765f, 0.0459f, 0.0201f, 0.8272f, 0.8272f, 0.8078f, 0.7407f, 0.6632f, 0.5868f, 0.5145f, 0.4468f, 0.3833f, 0.3236f, 0.2676f, 0.2156f, 0.1699f, 0.1286f, 0.0903f, 0.0545f, 0.888f, 0.888f, 0.8693f, 0.8021f, 0.7242f, 0.6476f, 0.5753f, 0.5075f, 0.4436f, 0.3831f, 0.3255f, 0.2713f, 0.2229f, 0.1786f, 0.1365f, 0.096f, 0.9424f, 0.9424f, 0.9231f, 0.8537f, 0.7737f, 0.6955f, 0.6222f, 0.5537f, 0.4893f, 0.4281f, 0.3696f, 0.3143f, 0.265f, 0.2196f, 0.1763f, 0.1347f, 0.9409f, 0.9409f, 0.9222f, 0.8547f, 0.7771f, 0.7017f, 0.6312f, 0.5655f, 0.5038f, 0.4452f, 0.3891f, 0.3359f, 0.2886f, 0.2451f, 0.2036f, 0.1638f); let x_8 = (clamp(sqrt(clamp(nv_4, 0f, 1f)), 0f, 1f) * 15f); let y_2 = (clamp(((roughness_3 - 0.07f) / 0.93f), 0f, 1f) * 7f); let i_14 = min(i32(floor(x_8)), 14i); let j_1 = min(i32(floor(y_2)), 6i); let fx = (x_8 - f32(i_14)); let fy = (y_2 - f32(j_1)); let _e166 = t_3[((j_1 * 16i) + i_14)]; let _e173 = t_3[(((j_1 * 16i) + i_14) + 1i)]; let a_11 = mix(_e166, _e173, fx); let _e181 = t_3[(((j_1 + 1i) * 16i) + i_14)]; let _e190 = t_3[((((j_1 + 1i) * 16i) + i_14) + 1i)]; let b_6 = mix(_e181, _e190, fx); return mix(a_11, b_6, fy); } fn iridescence_sensitivity(opd: f32, shift: vec3) -> vec3 { var xyz: vec3; let phase = ((6.2831855f * opd) * 0.000000001f); let val = vec3(0.00000000000054856f, 0.00000000000044201f, 0.00000000000052481f); let pos = vec3(1681000f, 1795300f, 2208400f); let vr = vec3(4327800000f, 9304600000f, 6612100000f); xyz = (((val * sqrt((6.2831855f * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); let _e33 = xyz.x; xyz.x = (_e33 + ((0.00000001644083f * cos(((2239900f * phase) + shift.x))) * exp(((-4528200000f * phase) * phase)))); let _e47 = xyz; xyz = (_e47 / vec3(0.00000010685f)); let xyz_to_rec709_ = mat3x3(vec3(3.2404542f, -0.969266f, 0.0556434f), vec3(-1.5371385f, 1.8760108f, -0.2040259f), vec3(-0.4985314f, 0.041556f, 1.0572252f)); let _e64 = xyz; return (xyz_to_rec709_ * _e64); } fn ior_to_f0_(transmitted: vec3, incident: f32) -> vec3 { let r_9 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_9 * r_9); } fn eval_iridescence(outside: f32, film_in: f32, cos1_: f32, thickness: f32, f0_4: vec3) -> vec3 { var i_10: vec3; var cm: vec3; var m_1: i32 = 1i; let film = mix(outside, film_in, smoothstep(0f, 0.03f, thickness)); let k_20 = (outside / film); let sin2sq = ((k_20 * k_20) * (1f - (cos1_ * cos1_))); let cos2sq = (1f - sin2sq); if (cos2sq < 0f) { return vec3(1f); } let cos2_ = sqrt(cos2sq); let _e23 = ior_to_f0_(vec3(film), outside); let r0_1 = _e23.x; let _e32 = pow5_(clamp((1f - cos1_), 0f, 1f)); let r12_ = (r0_1 + ((1f - r0_1) * _e32)); let t121_ = (1f - r12_); let phi12_ = select(0f, PI, (film < outside)); let phi21_ = (PI - phi12_); let sq = sqrt(min((f0_4 + vec3(0.0001f)), vec3(0.9999f))); let base_ior = ((vec3(1f) + sq) / (vec3(1f) - sq)); let _e57 = ior_to_f0_(base_ior, film); let _e66 = pow5_(clamp((1f - cos2_), 0f, 1f)); let r23_ = (_e57 + ((vec3(1f) - _e57) * _e66)); let phi23_ = select(vec3(0f), vec3(3.1415927f), (base_ior < vec3(film))); let opd_1 = (((2f * film) * thickness) * cos2_); let phi = (vec3(phi21_) + phi23_); let r123_ = clamp((r12_ * r23_), vec3(0.00001f), vec3(0.9999f)); let r123s = sqrt(r123_); let rs = (((t121_ * t121_) * r23_) / (vec3(1f) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); loop { let _e103 = m_1; if (_e103 <= 2i) { } else { break; } { let _e106 = cm; cm = (_e106 * r123s); let _e108 = i_10; let _e109 = cm; let _e112 = m_1; let _e115 = m_1; let _e118 = iridescence_sensitivity((f32(_e112) * opd_1), (f32(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2f) * _e118)); } continuing { let _e122 = m_1; m_1 = (_e122 + 1i); } } let _e124 = i_10; return max(_e124, vec3(0f)); } fn ext_view(world_10: vec3) -> vec3 { let _e5 = G.view[0][2]; let _e10 = G.view[1][2]; let _e15 = G.view[2][2]; let view_dir_1 = vec3(_e5, _e10, _e15); let _e19 = G.camera_pos; let _e27 = G.camera_pos.w; return select(normalize((_e19.xyz - world_10)), normalize(view_dir_1), (_e27 > 0.5f)); } fn ext_ctx(in_26: VsOutExt, front_3: bool, s_13: ExtSamples, decals: bool) -> ExtCtx { var e_4: ExtCtx; var t_4: vec3; var surf_2: DecalSurface; var local_38: bool; let n_geo_3 = select(-(normalize(in_26.normal)), normalize(in_26.normal), front_3); t_4 = in_26.tangent.xyz; let _e14 = t_4; let _e15 = t_4; t_4 = normalize((_e14 - (n_geo_3 * dot(n_geo_3, _e15)))); let _e20 = t_4; let b_7 = (cross(n_geo_3, _e20) * in_26.tangent.w); e_4.n_geo = n_geo_3; e_4.n = n_geo_3; let _e31 = M.flags.x; if select(false, ((_e31 & T_NORMAL) != 0u), SPEC_TEX_NORMAL) { let _e39 = t_4; e_4.n = normalize((((_e39 * s_13.normal.x) + (b_7 * s_13.normal.y)) + (n_geo_3 * s_13.normal.z))); } e_4.nc = n_geo_3; if s_13.clearcoat_mapped { let _e55 = t_4; e_4.nc = normalize((((_e55 * s_13.clearcoat_normal.x) + (b_7 * s_13.clearcoat_normal.y)) + (n_geo_3 * s_13.clearcoat_normal.z))); } let _e80 = e_4.n; surf_2 = DecalSurface(s_13.base.xyz, clamp(s_13.metallic, 0f, 1f), clamp(s_13.roughness, 0.045f, 1f), s_13.occlusion, _e80, s_13.emission); if select(false, decals, SPEC_DECALS) { let _e88 = surf_2; let _e89 = apply_decals(in_26.world, n_geo_3, _e88); surf_2 = _e89; } let _e92 = surf_2.normal; e_4.n = _e92; let _e95 = surf_2.occlusion; e_4.occlusion = _e95; let _e98 = surf_2.emission; e_4.emission = _e98; let _e101 = ext_view(in_26.world); e_4.v = _e101; e_4.world = in_26.world; let _e106 = e_4.n; let _e108 = e_4.v; e_4.nv = max(dot(_e106, _e108), 0.0001f); let _e114 = surf_2.metallic; e_4.metallic = _e114; let _e117 = surf_2.roughness; e_4.roughness = _e117; let _e120 = e_4.roughness; let _e122 = e_4.roughness; e_4.alpha = (_e120 * _e122); let _e126 = e_4.alpha; let _e128 = e_4.alpha; e_4.a2_ = (_e126 * _e128); let _e132 = surf_2.base; e_4.base = _e132; let _e135 = e_4.base; let _e137 = e_4.metallic; e_4.diffuse = (_e135 * (1f - _e137)); let _e146 = M.ext[1].x; e_4.ior = max(_e146, 1f); let _e150 = e_4.ior; let _e154 = e_4.ior; let r_10 = ((_e150 - 1f) / (_e154 + 1f)); let spec_7 = max(s_13.specular, 0f); let dielectric_f0_ = (min((vec3((r_10 * r_10)) * s_13.specular_color), vec3(1f)) * spec_7); let _e171 = e_4.base; let _e173 = e_4.metallic; e_4.f0_ = mix(dielectric_f0_, _e171, _e173); let _e180 = e_4.metallic; e_4.f90_ = mix(vec3(spec_7), vec3(1f), _e180); e_4.iridescence = clamp(s_13.iridescence, 0f, 1f); let _e189 = e_4.f0_; e_4.irid_f = _e189; let _e192 = e_4.iridescence; if select(false, (_e192 > 0f), SPEC_IRIDESCENCE) { let _e203 = M.ext[5].y; let _e205 = e_4.nv; let _e208 = e_4.f0_; let _e209 = eval_iridescence(1f, _e203, _e205, s_13.iridescence_thickness, _e208); e_4.irid_f = _e209; } e_4.aniso = clamp(s_13.anisotropy, 0f, 1f); let _e216 = t_4; e_4.aniso_t = normalize(((_e216 * s_13.anisotropy_dir.x) + (b_7 * s_13.anisotropy_dir.y))); let _e227 = e_4.aniso_t; e_4.aniso_b = normalize(cross(n_geo_3, _e227)); e_4.clearcoat = clamp(s_13.clearcoat, 0f, 1f); e_4.cc_roughness = clamp(s_13.clearcoat_roughness, 0.045f, 1f); let _e241 = e_4.cc_roughness; let _e243 = e_4.cc_roughness; let cca = (_e241 * _e243); e_4.cc_a2_ = (cca * cca); e_4.sheen = max(s_13.sheen_color, vec3(0f)); e_4.sheen_roughness = clamp(s_13.sheen_roughness, 0.07f, 1f); let _e259 = e_4.sheen_roughness; let _e261 = e_4.sheen_roughness; e_4.sheen_alpha = (_e259 * _e261); e_4.dt = clamp(s_13.diffuse_transmission, 0f, 1f); e_4.dt_color = max(s_13.diffuse_transmission_color, vec3(0f)); e_4.transmission = clamp(s_13.transmission, 0f, 1f); let _e280 = e_4.alpha; let _e282 = e_4.ior; e_4.trans_alpha = max((_e280 * clamp(((_e282 * 2f) - 2f), 0f, 1f)), 0.002f); let _e296 = O.model[0]; let _e302 = O.model[1]; let _e309 = O.model[2]; let scale_2 = (((length(_e296.xyz) + length(_e302.xyz)) + length(_e309.xyz)) / 3f); let dist_1 = (max(s_13.thickness, 0f) * scale_2); e_4.thin = (dist_1 <= 0f); e_4.thickness = dist_1; e_4.frag = in_26.clip.xy; e_4.attenuation = vec3(1f); let _e334 = M.ext[1].w; if (_e334 > 0f) { local_38 = (dist_1 > 0f); } else { local_38 = false; } let _e342 = local_38; if select(false, _e342, SPEC_VOLUME) { let _e349 = M.ext[2]; let _e358 = M.ext[1].w; e_4.attenuation = pow(max(_e349.xyz, vec3(0.000001f)), vec3((dist_1 / _e358))); } let _e367 = M.ext[2].w; e_4.dispersion = _e367; let _e368 = e_4; return _e368; } fn ext_fresnel(e_5: ExtCtx, vh_2: f32) -> vec3 { let _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } fn ext_light(e_6: ExtCtx, l_5: vec3, radiance_4: vec3, spec: f32, godot: bool) -> vec3 { var f: vec3 = vec3(0f); var specular_1: vec3 = vec3(0f); var dv: f32; var diffuse_2: vec3; var c_33: vec3; let nl_raw = dot(e_6.n, l_5); let nl_5 = max(nl_raw, 0f); let h_6 = normalize((l_5 + e_6.v)); let nh_5 = max(dot(e_6.n, h_6), 0f); let vh_5 = max(dot(e_6.v, h_6), 0f); let nv_10 = e_6.nv; if (nl_5 > 0f) { let _e29 = ext_fresnel(e_6, vh_5); f = _e29; if select(false, (e_6.aniso > 0f), SPEC_ANISOTROPY) { let at_3 = mix(e_6.alpha, 1f, (e_6.aniso * e_6.aniso)); let ab_2 = e_6.alpha; let _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_6), dot(e_6.aniso_b, h_6), at_3, ab_2); let _e59 = v_ggx_aniso(nl_5, nv_10, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { let _e62 = d_ggx(nh_5, e_6.a2_); let _e64 = v_smith(nl_5, nv_10, e_6.a2_); dv = (_e62 * _e64); } let _e66 = f; let _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * select(1f, spec, godot)); } let _e75 = f; diffuse_2 = (select((((vec3(1f) - _e75) * e_6.diffuse) / vec3(3.1415927f)), (e_6.diffuse / vec3(3.1415927f)), godot) * nl_5); if select(false, (e_6.dt > 0f), SPEC_DIFFUSE_TRANSMISSION) { let back_2 = (((e_6.dt_color * (1f - e_6.metallic)) / vec3(3.1415927f)) * max(-(dot(e_6.n_geo, l_5)), 0f)); let _e109 = diffuse_2; diffuse_2 = mix(_e109, back_2, e_6.dt); } if select(false, (e_6.transmission > 0f), SPEC_TRANSMISSION) { let lm = normalize((l_5 + ((2f * e_6.n) * dot(-(l_5), e_6.n)))); let ht = normalize((lm + e_6.v)); let at2_ = (e_6.trans_alpha * e_6.trans_alpha); let _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0f, 1f)); let _e151 = d_ggx(clamp(dot(e_6.n, ht), 0f, 1f), at2_); let _e158 = v_smith(clamp(dot(e_6.n, lm), 0f, 1f), nv_10, at2_); let lobe = (((((vec3(1f) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); let through = (select(0f, 1f, (nl_raw < 0f)) * (1f - e_6.metallic)); let _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } let _e175 = diffuse_2; let _e176 = specular_1; let base_3 = (_e175 + _e176); c_33 = (base_3 * radiance_4); let _e182 = max3_(e_6.sheen); if select(false, (_e182 > 0f), SPEC_SHEEN) { let _e188 = max3_(e_6.sheen); let _e190 = sheen_albedo(nv_10, e_6.sheen_roughness); let scaling = (1f - (_e188 * _e190)); let _e194 = c_33; c_33 = (_e194 * scaling); if (nl_5 > 0f) { let _e198 = c_33; let _e201 = d_charlie(e_6.sheen_alpha, nh_5); let _e204 = v_charlie(nl_5, nv_10, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if select(false, (e_6.clearcoat > 0f), SPEC_CLEARCOAT) { let ncv = max(dot(e_6.nc, e_6.v), 0.0001f); let _e224 = f_schlick90_(vec3(0.04f), vec3(1f), ncv); let fc_2 = _e224.x; let _e226 = c_33; c_33 = (_e226 * (1f - (e_6.clearcoat * fc_2))); let ncl = dot(e_6.nc, l_5); if (ncl > 0f) { let nch = max(dot(e_6.nc, h_6), 0f); let _e244 = f_schlick90_(vec3(0.04f), vec3(1f), vh_5); let fl = _e244.x; let _e246 = c_33; let _e250 = d_ggx(nch, e_6.cc_a2_); let _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * select(1f, spec, godot))); } } let _e261 = c_33; return _e261; } fn ext_irradiance(n_11: vec3, lit_mode: bool) -> vec3 { if select(false, !(lit_mode), SPEC_MATERIAL_MODE) { let _e7 = env(n_11.z); return (_e7 * 0.8f); } let _e14 = Sky.flags.x; if select(false, ((_e14 & SKY_IBL) != 0u), SPEC_AMBIENT_SKY) { let _e24 = Sky.ibl.x; let _e28 = Sky.sun.w; let scale_3 = (_e24 * _e28); let _e33 = Sky.flags.x; if ((_e33 & SKY_AMBIENT_SKY) != 0u) { let _e40 = Sky.ambient; let _e42 = sky_dir(n_11); let _e43 = sh_irradiance(_e42); let _e48 = Sky.ambient.w; return mix(_e40.xyz, (_e43 * scale_3), _e48); } let _e52 = Sky.ambient; return _e52.xyz; } let _e58 = Lit.counts.y; if select(false, ((_e58 & ENV_AMBIENT_SKY) != 0u), SPEC_AMBIENT_GRADIENT) { let _e67 = Lit.sky_top; let _e71 = Lit.sky_horizon; let sky_avg_1 = ((_e67.xyz + _e71.xyz) * 0.5f); let _e78 = Lit.ground_horizon; let _e82 = Lit.ground_bottom; let ground_avg_1 = ((_e78.xyz + _e82.xyz) * 0.5f); let _e89 = Lit.up; let _e103 = Lit.ambient.w; return (mix(ground_avg_1, sky_avg_1, clamp(((dot(n_11, _e89.xyz) * 0.5f) + 0.5f), 0f, 1f)) * _e103); } let _e107 = Lit.ambient; return _e107.xyz; } fn ext_radiance(dir_7: vec3, roughness_4: f32, lit_mode_1: bool) -> vec3 { if select(false, !(lit_mode_1), SPEC_MATERIAL_MODE) { let _e8 = env(dir_7.z); let _e10 = env(0f); return mix(_e8, (_e10 * 0.85f), roughness_4); } let _e18 = Sky.flags.x; if select(false, ((_e18 & SKY_IBL) != 0u), SPEC_AMBIENT_SKY) { let _e28 = Sky.ibl.x; let _e32 = Sky.sun.w; let scale_4 = (_e28 * _e32); let _e37 = Sky.flags.x; if ((_e37 & SKY_REFLECT_RADIANCE) != 0u) { let _e42 = sky_dir(dir_7); let _e43 = radiance_2(_e42, roughness_4); return (_e43 * scale_4); } let _e48 = Sky.flags.x; if ((_e48 & SKY_REFLECT_OFF) != 0u) { return vec3(0f); } let _e57 = Sky.ambient; return _e57.xyz; } let _e63 = Lit.counts.y; if select(false, ((_e63 & ENV_AMBIENT_SKY) != 0u), SPEC_AMBIENT_GRADIENT) { let _e72 = Lit.sky_top; let _e76 = Lit.sky_horizon; let sky_avg_2 = ((_e72.xyz + _e76.xyz) * 0.5f); let _e81 = sky(dir_7); let _e86 = Lit.ambient.w; return (mix(_e81, sky_avg_2, roughness_4) * _e86); } let _e90 = Lit.ambient; return _e90.xyz; } fn ext_probe_radiance(e_7: ExtCtx, dir_8: vec3, roughness_5: f32, lit_mode_2: bool) -> vec3 { var local_39: bool; let _e4 = ext_radiance(dir_8, roughness_5, lit_mode_2); if !(!(lit_mode_2)) { let _e13 = Probe.counts.x; local_39 = (_e13 == 0u); } else { local_39 = true; } let _e17 = local_39; if select(true, _e17, SPEC_PROBES) { return _e4; } let _e24 = O.extra.z; let _e25 = probe_reflection(e_7.world, dir_8, roughness_5, _e24); return ((_e4 * (1f - _e25.w)) + _e25.xyz); } fn ext_env_weight(f0_5: vec3, f90_1: vec3, roughness_6: f32, nv_5: f32, metallic: f32, lit_mode_3: bool) -> vec3 { var local_40: bool; if lit_mode_3 { let _e12 = Sky.flags.x; local_40 = ((_e12 & SKY_IBL) != 0u); } else { local_40 = false; } let _e18 = local_40; if select(false, _e18, SPEC_AMBIENT_SKY) { let _e21 = env_brdf_approx(roughness_6, nv_5); return ((f0_5 * _e21.x) + ((f90_1 * _e21.y) * clamp((50f * f0_5.y), metallic, 1f))); } let _e40 = pow5_((1f - nv_5)); let f_amb_2 = (f0_5 + ((max((f90_1 * (1f - roughness_6)), f0_5) - f0_5) * _e40)); if select(false, !(lit_mode_3), SPEC_MATERIAL_MODE) { return (f_amb_2 * (1f - (0.5f * roughness_6))); } return f_amb_2; } fn screen_uv_of(p_7: vec3) -> vec2 { let _e3 = G.view_proj; let c_42 = (_e3 * vec4(p_7, 1f)); let ndc_1 = (c_42.xy / vec2(select(0.000001f, c_42.w, (c_42.w > 0.000001f)))); return vec2(((ndc_1.x * 0.5f) + 0.5f), (0.5f - (ndc_1.y * 0.5f))); } fn screen_texel(uv_4: vec2, rough: f32) -> vec3 { let _e5 = Lit.dirs.w; let levels_1 = f32(max(_e5, 1u)); let _e12 = G.viewport.x; let lod_2 = min((log2(max(_e12, 1f)) * max(rough, 0f)), (levels_1 - 1f)); let _e24 = textureSampleLevel(t_screen, s_radiance, uv_4, lod_2); return _e24.xyz; } fn screen_exit_uv(e_8: ExtCtx, ior: f32) -> vec2 { let dir_9 = refract(-(e_8.v), e_8.n, (1f / ior)); let _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } fn ext_screen_refracted(e_9: ExtCtx, rough_1: f32) -> vec3 { if e_9.thin { let _e5 = G.view; let n_view = normalize((_e5 * vec4(e_9.n, 0f)).xyz); let _e19 = M.factors.z; let offset = (vec2(-(n_view.x), n_view.y) * _e19); let _e24 = G.viewport; let _e28 = screen_texel(((e_9.frag * _e24.zw) + offset), rough_1); return (_e28 * e_9.attenuation); } if select(false, (e_9.dispersion > 0f), SPEC_DISPERSION) { let half_spread = (((e_9.ior - 1f) * 0.025f) * e_9.dispersion); let _e48 = screen_exit_uv(e_9, max((e_9.ior - half_spread), 1f)); let _e49 = screen_texel(_e48, rough_1); let r_11 = _e49.x; let _e52 = screen_exit_uv(e_9, e_9.ior); let _e53 = screen_texel(_e52, rough_1); let g_2 = _e53.y; let _e57 = screen_exit_uv(e_9, (e_9.ior + half_spread)); let _e58 = screen_texel(_e57, rough_1); let b_8 = _e58.z; return (vec3(r_11, g_2, b_8) * e_9.attenuation); } let _e64 = screen_exit_uv(e_9, e_9.ior); let _e65 = screen_texel(_e64, rough_1); return (_e65 * e_9.attenuation); } fn ext_refracted(e_10: ExtCtx, lit_mode_4: bool) -> vec3 { var local_41: bool; var local_42: bool; let rough_3 = sqrt(e_10.trans_alpha); if lit_mode_4 { let _e10 = Lit.counts.y; local_41 = ((_e10 & ENV_SCREEN_REFRACTION) != 0u); } else { local_41 = false; } let _e16 = local_41; if _e16 { let _e22 = Lit.dirs.w; local_42 = (_e22 > 0u); } else { local_42 = false; } let _e26 = local_42; if select(false, _e26, SPEC_SCREEN_REFRACTION) { let _e29 = ext_screen_refracted(e_10, rough_3); return _e29; } if e_10.thin { let _e33 = ext_radiance(-(e_10.v), rough_3, lit_mode_4); return (_e33 * e_10.attenuation); } if select(false, (e_10.dispersion > 0f), SPEC_DISPERSION) { let half_spread_1 = (((e_10.ior - 1f) * 0.025f) * e_10.dispersion); let iors = vec3(max((e_10.ior - half_spread_1), 1f), e_10.ior, (e_10.ior + half_spread_1)); let _e64 = ext_radiance(refract(-(e_10.v), e_10.n, (1f / iors.x)), rough_3, lit_mode_4); let rr = _e64.x; let _e73 = ext_radiance(refract(-(e_10.v), e_10.n, (1f / iors.y)), rough_3, lit_mode_4); let rg = _e73.y; let _e82 = ext_radiance(refract(-(e_10.v), e_10.n, (1f / iors.z)), rough_3, lit_mode_4); let rb = _e82.z; return (vec3(rr, rg, rb) * e_10.attenuation); } let _e94 = ext_radiance(refract(-(e_10.v), e_10.n, (1f / e_10.ior)), rough_3, lit_mode_4); return (_e94 * e_10.attenuation); } fn ext_ambient(e_11: ExtCtx, lit_mode_5: bool, gi: vec4) -> vec3 { var diffuse_3: vec3; var local_43: bool; var local_44: bool; var local_45: bool; var local_46: bool; var r_3: vec3; var bent: vec3; var c_34: vec3; let nv_11 = e_11.nv; let _e6 = ext_irradiance(e_11.n, lit_mode_5); diffuse_3 = (e_11.diffuse * _e6); if lit_mode_5 { let _e15 = Sky.flags.x; local_43 = ((_e15 & SKY_IBL) == 0u); } else { local_43 = false; } let _e21 = local_43; if _e21 { let _e27 = Lit.counts.y; local_44 = ((_e27 & ENV_AMBIENT_SKY) == 0u); } else { local_44 = false; } let _e33 = local_44; if select(false, _e33, SPEC_AMBIENT_FLAT) { let _e38 = Lit.ambient; diffuse_3 = (_e38.xyz * e_11.diffuse); } if lit_mode_5 { let _e48 = Probe.counts.x; local_45 = (_e48 > 0u); } else { local_45 = false; } let _e52 = local_45; if _e52 { local_46 = (gi.w <= 0f); } else { local_46 = false; } let _e59 = local_46; if select(false, _e59, SPEC_PROBES) { let _e67 = O.extra.z; let _e68 = probe_ambient(e_11.world, e_11.n, _e67); let _e69 = diffuse_3; diffuse_3 = ((_e69 * (1f - _e68.w)) + (e_11.diffuse * _e68.xyz)); } if (gi.w > 0f) { diffuse_3 = (e_11.diffuse * gi.xyz); } if select(false, (e_11.dt > 0f), SPEC_DIFFUSE_TRANSMISSION) { let _e90 = diffuse_3; let _e98 = ext_irradiance(-(e_11.n_geo), lit_mode_5); diffuse_3 = mix(_e90, ((e_11.dt_color * (1f - e_11.metallic)) * _e98), e_11.dt); } r_3 = reflect(-(e_11.v), e_11.n); if select(false, (e_11.aniso > 0f), SPEC_ANISOTROPY) { bent = normalize(cross(cross(e_11.aniso_b, e_11.v), e_11.aniso_b)); let a_12 = pow((1f - (e_11.aniso * (1f - e_11.roughness))), 4f); let _e129 = bent; bent = normalize(mix(_e129, e_11.n, a_12)); let _e135 = bent; let _e137 = bent; r_3 = normalize(mix(reflect(-(e_11.v), _e135), _e137, (e_11.roughness * e_11.roughness))); } let f0_8 = mix(e_11.f0_, e_11.irid_f, e_11.iridescence); let f90_2 = mix(e_11.f90_, vec3(1f), e_11.iridescence); let _e154 = ext_env_weight(f0_8, f90_2, e_11.roughness, nv_11, e_11.metallic, lit_mode_5); let _e155 = r_3; let _e157 = ext_probe_radiance(e_11, _e155, e_11.roughness, lit_mode_5); let specular_2 = (_e157 * _e154); if select(false, (e_11.transmission > 0f), SPEC_TRANSMISSION) { let _e170 = ext_refracted(e_11, lit_mode_5); let through_1 = ((((vec3(1f) - _e154) * e_11.base) * _e170) * (1f - e_11.metallic)); let _e176 = diffuse_3; diffuse_3 = mix(_e176, through_1, e_11.transmission); } let _e179 = diffuse_3; c_34 = (_e179 + specular_2); let _e184 = max3_(e_11.sheen); if select(false, (_e184 > 0f), SPEC_SHEEN) { let _e190 = sheen_albedo(nv_11, e_11.sheen_roughness); let _e191 = c_34; let _e193 = max3_(e_11.sheen); let _e200 = ext_irradiance(e_11.n, lit_mode_5); c_34 = ((_e191 * (1f - (_e193 * _e190))) + ((e_11.sheen * _e200) * _e190)); } if select(false, (e_11.clearcoat > 0f), SPEC_CLEARCOAT) { let ncv_1 = max(dot(e_11.nc, e_11.v), 0.0001f); let _e219 = f_schlick90_(vec3(0.04f), vec3(1f), ncv_1); let fc_3 = _e219.x; let _e227 = ext_env_weight(vec3(0.04f), vec3(1f), e_11.cc_roughness, ncv_1, 0f, lit_mode_5); let _e228 = c_34; let _e240 = ext_probe_radiance(e_11, reflect(-(e_11.v), e_11.nc), e_11.cc_roughness, lit_mode_5); c_34 = ((_e228 * (1f - (e_11.clearcoat * fc_3))) + ((e_11.clearcoat * _e240) * _e227)); } let _e244 = c_34; return _e244; } fn ext_shade_with(in_27: VsOutExt, front_4: bool, s_14: ExtSamples, lit_mode_6: bool, baked_2: bool, baked_light_2: vec3) -> vec3 { var local_47: bool; var c_35: vec3 = vec3(0f); var k_11: u32 = 0u; var local_48: bool; var l_6: vec3; var atten_2: f32; var rad: vec3; var local_49: bool; if lit_mode_6 { let _e12 = O.decals.z; local_47 = (_e12 > 0u); } else { local_47 = false; } let _e16 = local_47; let _e19 = ext_ctx(in_27, front_4, s_14, select(false, _e16, SPEC_DECALS)); if select(false, !(lit_mode_6), SPEC_MATERIAL_MODE) { let _e30 = G.view[0]; let _e35 = G.view[1]; let _e40 = G.view[2]; let to_world = transpose(mat3x3(_e30.xyz, _e35.xyz, _e40.xyz)); let _e44 = c_35; let _e57 = ext_light(_e19, normalize((to_world * vec3(-0.45f, 0.55f, 0.7f))), vec3(2.6f, 2.522f, 2.392f), 1f, false); c_35 = (_e44 + _e57); let _e59 = c_35; let _e72 = ext_light(_e19, normalize((to_world * vec3(0.75f, 0.15f, 0.45f))), vec3(0.765f, 0.80999994f, 0.9f), 1f, false); c_35 = (_e59 + _e72); let _e74 = c_35; let _e87 = ext_light(_e19, normalize((to_world * vec3(0.3f, 0.55f, -0.6f))), vec3(1.3f, 1.3f, 1.3f), 1f, false); c_35 = (_e74 + _e87); let _e89 = c_35; let _e93 = ext_ambient(_e19, false, vec4(0f)); c_35 = (_e89 + (_e93 * s_14.occlusion)); let _e97 = c_35; c_35 = (_e97 + s_14.emission); let _e100 = c_35; return _e100; } let _e101 = object_light_count(); loop { let _e105 = k_11; if select(false, (_e105 < _e101), SPEC_LIGHTS) { } else { break; } { let _e109 = k_11; let _e110 = object_light(_e109); let li_2 = Lit.lights[_e110]; if baked_2 { local_48 = (li_2.info.z == LIGHT_BAKED_STATIC); } else { local_48 = false; } let _e122 = local_48; if _e122 { continue; } let kind_2 = li_2.info.x; l_6 = vec3(); atten_2 = 1f; if (kind_2 == LIGHT_DIRECTIONAL) { l_6 = -(li_2.direction.xyz); } else { let rel_2 = (li_2.position.xyz - in_27.world); let d_19 = length(rel_2); l_6 = (rel_2 / vec3(max(d_19, 0.000001f))); let _e147 = omni_attenuation(d_19, li_2.position.w, li_2.direction.w); atten_2 = _e147; if (kind_2 == LIGHT_SPOT) { let cone_1 = li_2.spot.x; let _e152 = l_6; let scos_1 = max(dot(-(_e152), li_2.direction.xyz), cone_1); let rim_4 = max(0.0001f, ((1f - scos_1) / max((1f - cone_1), 0.000001f))); let _e167 = atten_2; atten_2 = (_e167 * (1f - pow(rim_4, li_2.spot.y))); } } let _e174 = atten_2; if (_e174 > 0f) { let _e179 = atten_2; rad = (li_2.color.xyz * _e179); if select(false, (li_2.info.y == LIGHT_SHADOWED), SPEC_SHADOWS) { let _e191 = atten_2; let _e194 = l_6; let _e195 = shadow_factor(_e110, in_27.world, _e19.n_geo, _e194); rad = (li_2.color.xyz * (_e191 * _e195)); } let _e198 = c_35; let _e199 = l_6; let _e200 = rad; let _e204 = ext_light(_e19, _e199, _e200, li_2.spot.z, true); c_35 = (_e198 + _e204); } } continuing { let _e207 = k_11; k_11 = (_e207 + 1u); } } let _e211 = gi_diffuse(_e19.n, baked_2, baked_light_2); let _e212 = ext_ambient(_e19, true, _e211); let _e217 = Lit.counts.y; if ((_e217 & ENV_SSAO) != 0u) { let _e227 = M.flags.y; local_49 = (_e227 != ALPHA_BLEND); } else { local_49 = false; } let _e231 = local_49; if select(false, _e231, SPEC_SSAO) { let _e240 = textureLoad(t_ao, vec2(floor(in_27.clip.xy)), 0i); let ssao_1 = _e240.x; let _e242 = c_35; let _e248 = Lit.tone.z; let _e252 = Lit.tone.w; c_35 = (_e242 * mix(1f, min(ssao_1, _e19.occlusion), (_e248 * _e252))); let _e257 = c_35; c_35 = (_e257 + (_e212 * min(_e19.occlusion, ssao_1))); } else { let _e262 = c_35; c_35 = (_e262 + (_e212 * _e19.occlusion)); } let _e266 = c_35; c_35 = (_e266 + _e19.emission); let _e269 = c_35; return _e269; } fn ext_shade(in_28: VsOutExt, front_5: bool, s_15: ExtSamples, lit_mode_7: bool) -> vec3 { let _e7 = ext_shade_with(in_28, front_5, s_15, lit_mode_7, false, vec3(0f)); return _e7; } fn ext_lit_finish(c_in_1: vec3, world_11: vec3) -> vec3 { var c_36: vec3; c_36 = c_in_1; let _e7 = Sky.flags.x; if select(false, ((_e7 & SKY_FOG) != 0u), SPEC_FOG) { let _e14 = c_36; let _e15 = ext_view(world_11); let _e17 = surface_fog(_e14, world_11, -(_e15)); c_36 = _e17; } let _e22 = O.decals.w; if select(false, (_e22 != 0u), SPEC_FOG_VOLUMES) { let _e27 = c_36; let _e31 = O.decals.w; let _e32 = fog_volumes(_e27, world_11, _e31); c_36 = _e32; } let _e33 = c_36; let _e34 = tonemap(_e33); return _e34; } fn lm_ext_in(l_7: VsOutLm) -> VsOutExt { var e_12: VsOutExt; e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; let _e20 = e_12; return _e20; } fn lightmap_light(uv_lm_1: vec2) -> vec3 { let _e6 = O.extra.y; let _e9 = textureSampleLevel(t_lightmap, s_lightmap, uv_lm_1, i32(_e6), 0f); return _e9.xyz; } fn skin_row(k_12: u32, r_4: u32) -> vec4 { let _e10 = Skin.rows[((min(k_12, 254u) * 3u) + r_4)]; return _e10; } fn skin_rows(s_16: SkinIn) -> SkinRows { var m_2: SkinRows; let j_2 = s_16.joints; let w_6 = s_16.weights; let _e8 = skin_row(j_2.x, 0u); let _e13 = skin_row(j_2.y, 0u); let _e19 = skin_row(j_2.z, 0u); let _e25 = skin_row(j_2.w, 0u); m_2.r0_ = ((((w_6.x * _e8) + (w_6.y * _e13)) + (w_6.z * _e19)) + (w_6.w * _e25)); let _e32 = skin_row(j_2.x, 1u); let _e37 = skin_row(j_2.y, 1u); let _e43 = skin_row(j_2.z, 1u); let _e49 = skin_row(j_2.w, 1u); m_2.r1_ = ((((w_6.x * _e32) + (w_6.y * _e37)) + (w_6.z * _e43)) + (w_6.w * _e49)); let _e56 = skin_row(j_2.x, 2u); let _e61 = skin_row(j_2.y, 2u); let _e67 = skin_row(j_2.z, 2u); let _e73 = skin_row(j_2.w, 2u); m_2.r2_ = ((((w_6.x * _e56) + (w_6.y * _e61)) + (w_6.z * _e67)) + (w_6.w * _e73)); let _e76 = m_2; return _e76; } fn skinned_vertex(in_29: VsIn, s_17: SkinIn) -> VsOut { var out_10: VsOut; let _e2 = skin_rows(s_17); let p_13 = vec4(in_29.pos, 1f); let world_14 = vec4(dot(_e2.r0_, p_13), dot(_e2.r1_, p_13), dot(_e2.r2_, p_13), 1f); let bx_1 = vec3(_e2.r0_.x, _e2.r1_.x, _e2.r2_.x); let by_1 = vec3(_e2.r0_.y, _e2.r1_.y, _e2.r2_.y); let bz_1 = vec3(_e2.r0_.z, _e2.r1_.z, _e2.r2_.z); let det_1 = dot(bx_1, cross(by_1, bz_1)); let flip_1 = (det_1 < 0f); let cofactor_1 = mat3x3(cross(by_1, bz_1), cross(bz_1, bx_1), cross(bx_1, by_1)); let n_16 = ((cofactor_1 * in_29.normal) * select(1f, -1f, flip_1)); let t_13 = (mat3x3(bx_1, by_1, bz_1) * in_29.tangent.xyz); let _e57 = G.view_proj; out_10.clip = (_e57 * world_14); out_10.world = world_14.xyz; out_10.normal = normalize(n_16); out_10.uv = in_29.uv; out_10.flags = (in_29.flags | select(0u, F_INSTANCE_MIRRORED, flip_1)); let _e74 = O.extra.x; let mirror_2 = select(1f, -1f, (((_e74 & OBJ_MIRRORED) != 0u) != flip_1)); out_10.tangent = vec4(normalize(t_13), (in_29.tangent.w * mirror_2)); out_10.weight = in_29.weight; out_10.color = vec4(1f); let _e94 = out_10; return _e94; } @vertex fn vs_surface(in: VsIn) -> VsOut { var out: VsOut; let _e3 = O.model; let world_15 = (_e3 * vec4(in.pos, 1f)); let _e12 = G.view_proj; out.clip = (_e12 * world_15); out.world = world_15.xyz; let _e19 = O.normal; out.normal = normalize((_e19 * vec4(in.normal, 0f)).xyz); out.uv = in.uv; out.flags = in.flags; let _e33 = O.extra.x; let mirror_3 = select(1f, -1f, ((_e33 & OBJ_MIRRORED) != 0u)); let _e44 = O.model; out.tangent = vec4(normalize((_e44 * vec4(in.tangent.xyz, 0f)).xyz), (in.tangent.w * mirror_3)); out.weight = in.weight; out.color = vec4(1f); let _e61 = out; return _e61; } @vertex fn vs_surface_instanced(in_1: VsIn, inst: InstIn) -> VsOut { var out_1: VsOut; let p1_1 = vec4(in_1.pos, 1f); let local_51 = vec3(dot(inst.row0_, p1_1), dot(inst.row1_, p1_1), dot(inst.row2_, p1_1)); let _e14 = O.model; let world_16 = (_e14 * vec4(local_51, 1f)); let bx_2 = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); let by_2 = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); let bz_2 = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); let det_2 = dot(bx_2, cross(by_2, bz_2)); let flip_2 = (det_2 < 0f); let cofactor_2 = mat3x3(cross(by_2, bz_2), cross(bz_2, bx_2), cross(bx_2, by_2)); let n_local_1 = ((cofactor_2 * in_1.normal) * select(1f, -1f, flip_2)); let t_local_1 = (mat3x3(bx_2, by_2, bz_2) * in_1.tangent.xyz); let _e61 = G.view_proj; out_1.clip = (_e61 * world_16); out_1.world = world_16.xyz; let _e68 = O.normal; out_1.normal = normalize((_e68 * vec4(n_local_1, 0f)).xyz); out_1.uv = in_1.uv; out_1.flags = (in_1.flags | select(0u, F_INSTANCE_MIRRORED, flip_2)); let _e85 = O.extra.x; let mirror_4 = select(1f, -1f, (((_e85 & OBJ_MIRRORED) != 0u) != flip_2)); let _e97 = O.model; out_1.tangent = vec4(normalize((_e97 * vec4(t_local_1, 0f)).xyz), (in_1.tangent.w * mirror_4)); out_1.weight = in_1.weight; out_1.color = inst.color; let _e111 = out_1; return _e111; } @vertex fn vs_sky(@builtin(vertex_index) vi: u32) -> SkyOut { var pts: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out_2: SkyOut; let _e15 = pts[vi]; out_2.clip = vec4(_e15, 1f, 1f); let _e21 = pts[vi]; out_2.ndc = _e21; let _e22 = out_2; return _e22; } @fragment fn fs_sky(in_2: SkyOut) -> @location(0) vec4 { var c: vec3; let _e3 = Lit.inv_view_proj; let near = (_e3 * vec4(in_2.ndc, 0f, 1f)); let _e11 = Lit.inv_view_proj; let far = (_e11 * vec4(in_2.ndc, 1f, 1f)); let ray = ((far.xyz / vec3(far.w)) - (near.xyz / vec3(near.w))); let bits = Sky.flags.x; if ((bits & 3u) != 0u) { let _e35 = sky_dir(ray); if ((bits & SKY_DRAW_PROCEDURAL) != 0u) { let _e40 = procedural_sky(_e35); c = _e40; } else { let _e41 = panorama(_e35); c = _e41; } let _e42 = c; let _e46 = Sky.sun.w; c = (_e42 * _e46); } else { let _e48 = sky(ray); c = _e48; } if ((bits & SKY_FOG) != 0u) { let _e53 = c; let _e55 = sky_fog(_e53, normalize(ray)); c = _e55; } let _e59 = Fog.counts.z; if (_e59 != 0u) { let _e62 = c; let _e68 = sky_fog_volumes(_e62, (near.xyz / vec3(near.w)), normalize(ray)); c = _e68; } let _e69 = c; let _e70 = tonemap(_e69); let _e73 = lit_output(vec4(_e70, 1f)); return _e73; } @fragment fn fs_surface(in_3: VsOut, @builtin(front_facing) facing: bool) -> @location(0) vec4 { var c_1: vec3; var alpha: f32 = 1f; var local: bool; var local_1: bool; var local_2: bool; var local_3: bool; var local_4: bool; let _e2 = mirrored(in_3); let front_6 = (facing != _e2); let _e4 = surface_samples(in_3); if select(false, ((in_3.flags & F_HIDDEN) != 0u), SPEC_FACE_FLAGS) { discard; } let _e16 = emerge_reveal(in_3.world, in_3.clip.xy); if select(false, (_e16 <= 0f), SPEC_EMERGE) { discard; } let n_world = select(-(normalize(in_3.normal)), normalize(in_3.normal), front_6); let _e30 = G.view; let n_view_1 = normalize((_e30 * vec4(n_world, 0f)).xyz); let mode_1 = G.params.x; let _e42 = srgb_to_linear(vec3(0.8f)); if select(false, (mode_1 == SHADE_MATCAP), SPEC_OTHER_MODES) { let _e54 = G.params.w; let _e55 = matcap(n_view_1, _e54); c_1 = _e55; } else { if select(false, (mode_1 == SHADE_NORMALS), SPEC_OTHER_MODES) { let _e66 = srgb_to_linear(((n_world * 0.5f) + vec3(0.5f))); c_1 = _e66; } else { if select(false, (mode_1 == SHADE_FACE_ORIENT), SPEC_OTHER_MODES) { let tint = select(vec3(1f, 0f, 0f), vec3(0f, 0.25f, 1f), front_6); let _e81 = studio(n_view_1, _e42); let _e82 = srgb_to_linear(tint); c_1 = mix(_e81, _e82, 0.55f); } else { if select(false, (mode_1 == SHADE_RANDOM), SPEC_OTHER_MODES) { let _e92 = O.color; let _e94 = studio(n_view_1, _e92.xyz); c_1 = _e94; } else { if select(false, (mode_1 == SHADE_MATERIAL), SPEC_MATERIAL_MODE) { let _e104 = M.flags.y; if (_e104 == ALPHA_MASK) { let _e114 = M.emission.w; local = (_e4.base.w < _e114); } else { local = false; } let _e117 = local; if select(false, _e117, SPEC_ALPHA_MASK) { discard; } let _e124 = M.flags.y; if select(false, (_e124 == ALPHA_BLEND), SPEC_ALPHA_BLEND) { alpha = _e4.base.w; } let _e131 = pbr(in_3, front_6, _e4); c_1 = _e131; } else { if select(false, (mode_1 == SHADE_LIT), SPEC_LIT) { let _e141 = M.flags.y; if (_e141 == ALPHA_MASK) { let _e151 = M.emission.w; local_1 = (_e4.base.w < _e151); } else { local_1 = false; } let _e154 = local_1; if select(false, _e154, SPEC_ALPHA_MASK) { discard; } let _e161 = M.flags.y; if select(false, (_e161 == ALPHA_BLEND), SPEC_ALPHA_BLEND) { alpha = _e4.base.w; } let _e168 = lit(in_3, front_6, _e4); c_1 = _e168; } else { if select(false, (mode_1 == SHADE_UV_CHECKER), SPEC_OTHER_MODES) { let _e175 = checker(in_3.uv); let _e176 = studio(n_view_1, _e175); c_1 = _e176; } else { if (mode_1 == SHADE_WEIGHTS) { let _e185 = O.extra.x; local_2 = ((_e185 & OBJ_HAS_WEIGHTS) != 0u); } else { local_2 = false; } let _e191 = local_2; if select(false, _e191, SPEC_OTHER_MODES) { let _e195 = weight_color(in_3.weight); let _e196 = studio(n_view_1, _e195); c_1 = _e196; } else { if select(false, (mode_1 == SHADE_LIGHT_COUNT), SPEC_OTHER_MODES) { let _e202 = light_count_color(); let _e203 = srgb_to_linear(_e202); let _e204 = studio(n_view_1, _e203); c_1 = _e204; } else { if SPEC_OTHER_MODES { let _e206 = studio(n_view_1, _e42); c_1 = _e206; } } } } } } } } } } let _e211 = O.params.w; if (_e211 == 1u) { let _e219 = G.params.y; local_3 = ((_e219 & OV_SELECTION) != 0u); } else { local_3 = false; } let _e225 = local_3; if _e225 { local_4 = ((in_3.flags & F_SELECTED) != 0u); } else { local_4 = false; } let _e234 = local_4; if select(false, _e234, SPEC_FACE_FLAGS) { let _e237 = c_1; let _e242 = srgb_to_linear(vec3(1f, 0.635f, 0f)); c_1 = mix(_e237, _e242, 0.4f); } if select(false, (mode_1 == SHADE_LIT), SPEC_LIT) { let _e250 = c_1; let _e251 = item_fade(_e250); let _e252 = emerge_tint(_e251, _e16); let _e253 = alpha; let _e255 = lit_output(vec4(_e252, _e253)); return _e255; } let _e256 = c_1; let _e257 = alpha; let _e259 = target_color(vec4(_e256, _e257)); return _e259; } @fragment fn fs_shadow(in_4: VsOut) { var local_5: bool; let _e1 = surface_samples(in_4); if ((in_4.flags & F_HIDDEN) != 0u) { discard; } let _e10 = emerge_reveal(in_4.world, vec2(-1f)); if (_e10 <= 0f) { discard; } let _e17 = M.flags.y; if (_e17 == ALPHA_MASK) { let _e27 = M.emission.w; local_5 = (_e1.base.w < _e27); } else { local_5 = false; } let _e30 = local_5; if select(false, _e30, SPEC_ALPHA_MASK) { discard; } else { return; } } @fragment fn fs_id(in_5: VsOut) -> IdOut { var local_6: bool; var local_7: bool; var local_8: bool; var out_3: IdOut; let _e1 = surface_samples(in_5); if ((in_5.flags & F_HIDDEN) != 0u) { discard; } let _e10 = emerge_reveal(in_5.world, in_5.clip.xy); if (_e10 <= 0f) { discard; } let _e16 = G.params.x; if !((_e16 == SHADE_MATERIAL)) { let _e25 = G.params.x; local_6 = (_e25 == SHADE_LIT); } else { local_6 = true; } let materials = local_6; if materials { let _e35 = M.flags.y; local_7 = (_e35 == ALPHA_MASK); } else { local_7 = false; } let _e39 = local_7; if _e39 { let _e47 = M.emission.w; local_8 = (_e1.base.w < _e47); } else { local_8 = false; } let _e50 = local_8; if _e50 { discard; } let id_1 = O.params.z; let _e60 = O.params.x; let _e69 = O.params.y; let bits_1 = (select(0u, 1u, (_e60 == 1u)) | select(0u, 2u, (_e69 == 1u))); out_3.id = (vec4(f32((id_1 & 255u)), f32(((id_1 >> 8u) & 255u)), f32(((id_1 >> 16u) & 255u)), f32(bits_1)) / vec4(255f)); let _e94 = out_3; return _e94; } @fragment fn fs_normal_depth(in_6: VsOut, @builtin(front_facing) facing_1: bool) -> NormalDepthOut { var local_9: bool; var local_10: bool; var local_11: bool; var out_4: NormalDepthOut; let _e2 = surface_samples(in_6); if ((in_6.flags & F_HIDDEN) != 0u) { discard; } let _e11 = emerge_reveal(in_6.world, in_6.clip.xy); if (_e11 <= 0f) { discard; } let _e17 = G.params.x; if !((_e17 == SHADE_MATERIAL)) { let _e26 = G.params.x; local_9 = (_e26 == SHADE_LIT); } else { local_9 = true; } let materials_1 = local_9; if materials_1 { let _e36 = M.flags.y; local_10 = (_e36 == ALPHA_MASK); } else { local_10 = false; } let _e40 = local_10; if _e40 { let _e48 = M.emission.w; local_11 = (_e2.base.w < _e48); } else { local_11 = false; } let _e51 = local_11; if _e51 { discard; } let _e52 = mirrored(in_6); let front_7 = (facing_1 != _e52); let n_world_1 = select(-(normalize(in_6.normal)), normalize(in_6.normal), front_7); let _e62 = G.view; let n_view_2 = normalize((_e62 * vec4(n_world_1, 0f)).xyz); let _e71 = M.factors.x; let metallic_3 = clamp((_e71 * _e2.mr.z), 0f, 1f); let _e81 = M.factors.y; let roughness_9 = clamp((_e81 * _e2.mr.y), 0.045f, 1f); let _e92 = G.view; out_4.normal_depth = vec4(n_view_2, -((_e92 * vec4(in_6.world, 1f)).z)); out_4.surface = vec4(mix(vec3(0.04f), _e2.base.xyz, metallic_3), roughness_9); let _e107 = out_4; return _e107; } @vertex fn vs_surface_ext(in_7: VsIn, @location(10) uv1_: vec2) -> VsOutExt { let _e2 = surface_vertex(in_7); let _e3 = ext_vs_out(_e2, uv1_); return _e3; } @vertex fn vs_surface_ext_instanced(in_8: VsIn, inst_1: InstIn, @location(10) uv1_1: vec2) -> VsOutExt { let _e3 = surface_vertex_instanced(in_8, inst_1); let _e4 = ext_vs_out(_e3, uv1_1); return _e4; } @fragment fn fs_surface_ext(in_9: VsOutExt, @builtin(front_facing) facing_2: bool) -> @location(0) vec4 { var alpha_1: f32 = 1f; var c_2: vec3; var local_12: bool; var local_13: bool; let _e2 = ext_base_in(in_9); let _e3 = mirrored(_e2); let front_8 = (facing_2 != _e3); let _e5 = sample_ext(in_9); if select(false, ((in_9.flags & F_HIDDEN) != 0u), SPEC_FACE_FLAGS) { discard; } let _e17 = emerge_reveal(in_9.world, in_9.clip.xy); if select(false, (_e17 <= 0f), SPEC_EMERGE) { discard; } let _e23 = ext_cut(_e5); if _e23 { discard; } let _e30 = M.flags.y; if select(false, (_e30 == ALPHA_BLEND), SPEC_ALPHA_BLEND) { alpha_1 = _e5.base.w; } let _e41 = G.params.x; let lit_mode_8 = select(false, (_e41 == SHADE_LIT), SPEC_LIT); let _e51 = G.params.x; if select(false, (_e51 == SHADE_LIGHTMAP), SPEC_OTHER_MODES) { alpha_1 = 1f; let n_world_2 = select(-(normalize(in_9.normal)), normalize(in_9.normal), front_8); let _e65 = G.view; let _e73 = srgb_to_linear(vec3(0.8f)); let _e74 = studio(normalize((_e65 * vec4(n_world_2, 0f)).xyz), _e73); c_2 = _e74; } else { let _e79 = M.flags.w; if select(false, ((_e79 & MAT_UNLIT) != 0u), SPEC_UNLIT) { c_2 = _e5.base.xyz; } else { let _e88 = ext_shade(in_9, front_8, _e5, lit_mode_8); c_2 = _e88; } if select(false, lit_mode_8, SPEC_LIT) { let _e92 = c_2; let _e94 = ext_lit_finish(_e92, in_9.world); c_2 = _e94; } } let _e99 = O.params.w; if (_e99 == 1u) { let _e107 = G.params.y; local_12 = ((_e107 & OV_SELECTION) != 0u); } else { local_12 = false; } let _e113 = local_12; if _e113 { local_13 = ((in_9.flags & F_SELECTED) != 0u); } else { local_13 = false; } let _e122 = local_13; if select(false, _e122, SPEC_FACE_FLAGS) { let _e125 = c_2; let _e130 = srgb_to_linear(vec3(1f, 0.635f, 0f)); c_2 = mix(_e125, _e130, 0.4f); } if select(false, lit_mode_8, SPEC_LIT) { let _e136 = c_2; let _e137 = item_fade(_e136); let _e138 = emerge_tint(_e137, _e17); let _e139 = alpha_1; let _e141 = lit_output(vec4(_e138, _e139)); return _e141; } let _e142 = c_2; let _e143 = alpha_1; let _e145 = target_color(vec4(_e142, _e143)); return _e145; } @fragment fn fs_shadow_ext(in_10: VsOutExt) { let _e1 = sample_ext(in_10); if ((in_10.flags & F_HIDDEN) != 0u) { discard; } let _e10 = emerge_reveal(in_10.world, vec2(-1f)); if (_e10 <= 0f) { discard; } let _e13 = ext_cut(_e1); if _e13 { discard; } else { return; } } @fragment fn fs_id_ext(in_11: VsOutExt) -> IdOut { var out_5: IdOut; let _e1 = sample_ext(in_11); if ((in_11.flags & F_HIDDEN) != 0u) { discard; } let _e10 = emerge_reveal(in_11.world, in_11.clip.xy); if (_e10 <= 0f) { discard; } let _e13 = ext_cut(_e1); if _e13 { discard; } let id_2 = O.params.z; let _e23 = O.params.x; let _e32 = O.params.y; let bits_2 = (select(0u, 1u, (_e23 == 1u)) | select(0u, 2u, (_e32 == 1u))); out_5.id = (vec4(f32((id_2 & 255u)), f32(((id_2 >> 8u) & 255u)), f32(((id_2 >> 16u) & 255u)), f32(bits_2)) / vec4(255f)); let _e57 = out_5; return _e57; } @fragment fn fs_normal_depth_ext(in_12: VsOutExt, @builtin(front_facing) facing_3: bool) -> NormalDepthOut { var out_6: NormalDepthOut; let _e2 = sample_ext(in_12); if ((in_12.flags & F_HIDDEN) != 0u) { discard; } let _e11 = emerge_reveal(in_12.world, in_12.clip.xy); if (_e11 <= 0f) { discard; } let _e14 = ext_cut(_e2); if _e14 { discard; } let _e15 = ext_base_in(in_12); let _e16 = mirrored(_e15); let front_9 = (facing_3 != _e16); let n_world_3 = select(-(normalize(in_12.normal)), normalize(in_12.normal), front_9); let _e26 = G.view; let n_view_3 = normalize((_e26 * vec4(n_world_3, 0f)).xyz); let _e33 = ext_ctx(in_12, front_9, _e2, false); let _e38 = G.view; out_6.normal_depth = vec4(n_view_3, -((_e38 * vec4(in_12.world, 1f)).z)); out_6.surface = vec4(clamp(_e33.f0_, vec3(0f), vec3(1f)), _e33.roughness); let _e55 = out_6; return _e55; } @vertex fn vs_surface_lm(in_13: VsIn, @location(10) uv1_2: vec2, @location(11) uv_lm: vec2) -> VsOutLm { var out_7: VsOutLm; let _e3 = surface_vertex(in_13); out_7.clip = _e3.clip; out_7.world = _e3.world; out_7.normal = _e3.normal; out_7.uv = _e3.uv; out_7.flags = _e3.flags; out_7.tangent = _e3.tangent; out_7.weight = _e3.weight; out_7.color = _e3.color; out_7.uv1_ = uv1_2; out_7.uv_lm = uv_lm; let _e23 = out_7; return _e23; } @fragment fn fs_surface_lm(in_14: VsOutLm, @builtin(front_facing) facing_4: bool) -> @location(0) vec4 { var c_3: vec3; var alpha_2: f32 = 1f; var local_14: bool; var local_15: bool; var local_16: bool; let _e2 = lm_ext_in(in_14); let _e3 = ext_base_in(_e2); let _e4 = mirrored(_e3); let front_10 = (facing_4 != _e4); let _e6 = surface_samples(_e3); if select(false, ((in_14.flags & F_HIDDEN) != 0u), SPEC_FACE_FLAGS) { discard; } let _e18 = emerge_reveal(in_14.world, in_14.clip.xy); if select(false, (_e18 <= 0f), SPEC_EMERGE) { discard; } let _e25 = lightmap_light(in_14.uv_lm); let _e33 = G.params.x; if select(false, (_e33 == SHADE_LIGHTMAP), SPEC_OTHER_MODES) { let _e38 = tonemap(_e25); c_3 = _e38; } else { let _e43 = M.flags.y; if (_e43 == ALPHA_MASK) { let _e53 = M.emission.w; local_14 = (_e6.base.w < _e53); } else { local_14 = false; } let _e56 = local_14; if select(false, _e56, SPEC_ALPHA_MASK) { discard; } let _e63 = M.flags.y; if select(false, (_e63 == ALPHA_BLEND), SPEC_ALPHA_BLEND) { alpha_2 = _e6.base.w; } let _e71 = lit_with(_e3, front_10, _e6, true, _e25); c_3 = _e71; } let _e76 = O.params.w; if (_e76 == 1u) { let _e84 = G.params.y; local_15 = ((_e84 & OV_SELECTION) != 0u); } else { local_15 = false; } let _e90 = local_15; if _e90 { local_16 = ((in_14.flags & F_SELECTED) != 0u); } else { local_16 = false; } let _e99 = local_16; if select(false, _e99, SPEC_FACE_FLAGS) { let _e102 = c_3; let _e107 = srgb_to_linear(vec3(1f, 0.635f, 0f)); c_3 = mix(_e102, _e107, 0.4f); } let _e110 = c_3; let _e111 = item_fade(_e110); let _e112 = emerge_tint(_e111, _e18); let _e113 = alpha_2; let _e115 = lit_output(vec4(_e112, _e113)); return _e115; } @fragment fn fs_surface_ext_lm(in_15: VsOutLm, @builtin(front_facing) facing_5: bool) -> @location(0) vec4 { var c_4: vec3; var alpha_3: f32 = 1f; var local_17: bool; var local_18: bool; let _e2 = lm_ext_in(in_15); let _e3 = ext_base_in(_e2); let _e4 = mirrored(_e3); let front_11 = (facing_5 != _e4); let _e6 = sample_ext(_e2); if select(false, ((in_15.flags & F_HIDDEN) != 0u), SPEC_FACE_FLAGS) { discard; } let _e18 = emerge_reveal(in_15.world, in_15.clip.xy); if select(false, (_e18 <= 0f), SPEC_EMERGE) { discard; } let _e25 = lightmap_light(in_15.uv_lm); let _e33 = G.params.x; if select(false, (_e33 == SHADE_LIGHTMAP), SPEC_OTHER_MODES) { let _e38 = tonemap(_e25); c_4 = _e38; } else { let _e39 = ext_cut(_e6); if _e39 { discard; } let _e44 = M.flags.y; if select(false, (_e44 == ALPHA_BLEND), SPEC_ALPHA_BLEND) { alpha_3 = _e6.base.w; } let _e55 = M.flags.w; if select(false, ((_e55 & MAT_UNLIT) != 0u), SPEC_UNLIT) { c_4 = _e6.base.xyz; } else { let _e66 = ext_shade_with(_e2, front_11, _e6, true, true, _e25); c_4 = _e66; } let _e67 = c_4; let _e69 = ext_lit_finish(_e67, in_15.world); c_4 = _e69; } let _e74 = O.params.w; if (_e74 == 1u) { let _e82 = G.params.y; local_17 = ((_e82 & OV_SELECTION) != 0u); } else { local_17 = false; } let _e88 = local_17; if _e88 { local_18 = ((in_15.flags & F_SELECTED) != 0u); } else { local_18 = false; } let _e97 = local_18; if select(false, _e97, SPEC_FACE_FLAGS) { let _e100 = c_4; let _e105 = srgb_to_linear(vec3(1f, 0.635f, 0f)); c_4 = mix(_e100, _e105, 0.4f); } let _e108 = c_4; let _e109 = item_fade(_e108); let _e110 = emerge_tint(_e109, _e18); let _e111 = alpha_3; let _e113 = lit_output(vec4(_e110, _e111)); return _e113; } @vertex fn vs_surface_skinned(in_16: VsIn, s: SkinIn) -> VsOut { let _e2 = skinned_vertex(in_16, s); return _e2; } @vertex fn vs_surface_ext_skinned(in_17: VsIn, s_1: SkinIn, @location(10) uv1_3: vec2) -> VsOutExt { let _e3 = skinned_vertex(in_17, s_1); let _e4 = ext_vs_out(_e3, uv1_3); return _e4; }  @Ð Ð/ ,@ P˜J£&ѰA¬ËÎ-”ÒÑ'�gQoCî¶_7hh'· vs_surfacemain¯#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out float _vs2fs_location5; smooth out vec4 _vs2fs_location6; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_13 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_13 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float d_13 = min((e_14.x - abs(l_10.x)), min((e_14.y - abs(l_10.y)), (e_14.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_15 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_15.x); float _e28 = probe_exit(o_7.y, d_14.y, e_15.y); float _e32 = probe_exit(o_7.z, d_14.z, e_15.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_vs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_vs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_vs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_vs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_vs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_vs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_vs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_vs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_vs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_vs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_4 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_4 * nh_1)); float w2_ = (a2_4 / dot(f_4, f_4)); return (((a2_4 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_8 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_4 = mix(21.5473, 25.3245, o_8); float b_3 = mix(3.82987, 3.32435, o_8); float c_37 = mix(0.19823, 0.16801, o_8); float d_15 = mix(-1.9776, -1.27393, o_8); float e_16 = mix(-4.32054, -4.85967, o_8); return (((a_4 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_37)))) + (d_15 * x_3)) + e_16); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_5 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_5, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_7 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_7 * r_7); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_15 = (outside / film); float sin2sq = ((k_15 * k_15) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_ = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_ + ((1.0 - r0_) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_8 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_8, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_8, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_8, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_1 = (_e175 + _e176); c_33 = (base_1 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_8, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_8, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_vs.view_proj; vec4 c_38 = (_e3 * vec4(p_7, 1.0)); vec2 ndc = (c_38.xy / vec2(((c_38.w > 1e-6) ? c_38.w : 1e-6))); return vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); VsOut out_ = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_vs.model; vec4 world_14 = (_e3 * vec4(in_.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_vs.view_proj; out_.clip = (_e12 * world_14); out_.world = world_14.xyz; mat4x4 _e19 = _group_1_binding_0_vs.normal; out_.normal = normalize((_e19 * vec4(in_.normal, 0.0)).xyz); out_.uv = in_.uv; out_.flags = in_.flags; uint _e33 = _group_1_binding_0_vs.extra.x; float mirror_2 = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_vs.model; out_.tangent = vec4(normalize((_e44 * vec4(in_.tangent.xyz, 0.0)).xyz), (in_.tangent.w * mirror_2)); out_.weight = in_.weight; out_.color = vec4(1.0); VsOut _e61 = out_; gl_Position = _e61.clip; _vs2fs_location0 = _e61.world; _vs2fs_location1 = _e61.normal; _vs2fs_location2 = _e61.uv; _vs2fs_location3 = _e61.flags; _vs2fs_location4 = _e61.tangent; _vs2fs_location5 = _e61.weight; _vs2fs_location6 = _e61.color; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_surface_instancedmain÷²#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out float _vs2fs_location5; smooth out vec4 _vs2fs_location6; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_13 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_13 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float d_13 = min((e_14.x - abs(l_10.x)), min((e_14.y - abs(l_10.y)), (e_14.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_15 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_15.x); float _e28 = probe_exit(o_7.y, d_14.y, e_15.y); float _e32 = probe_exit(o_7.z, d_14.z, e_15.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_vs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_vs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_vs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_vs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_vs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_vs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_vs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_vs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_vs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_vs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_4 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_4 * nh_1)); float w2_ = (a2_4 / dot(f_4, f_4)); return (((a2_4 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_8 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_4 = mix(21.5473, 25.3245, o_8); float b_3 = mix(3.82987, 3.32435, o_8); float c_37 = mix(0.19823, 0.16801, o_8); float d_15 = mix(-1.9776, -1.27393, o_8); float e_16 = mix(-4.32054, -4.85967, o_8); return (((a_4 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_37)))) + (d_15 * x_3)) + e_16); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_5 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_5, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_7 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_7 * r_7); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_15 = (outside / film); float sin2sq = ((k_15 * k_15) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_ = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_ + ((1.0 - r0_) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_8 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_8, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_8, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_8, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_1 = (_e175 + _e176); c_33 = (base_1 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_8, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_8, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_vs.view_proj; vec4 c_38 = (_e3 * vec4(p_7, 1.0)); vec2 ndc = (c_38.xy / vec2(((c_38.w > 1e-6) ? c_38.w : 1e-6))); return vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsIn in_1 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); InstIn inst = InstIn(_p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9); VsOut out_1 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_1 = vec4(in_1.pos, 1.0); vec3 local_51 = vec3(dot(inst.row0_, p1_1), dot(inst.row1_, p1_1), dot(inst.row2_, p1_1)); mat4x4 _e14 = _group_1_binding_0_vs.model; vec4 world_14 = (_e14 * vec4(local_51, 1.0)); vec3 bx_1 = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); vec3 by_1 = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); vec3 bz_1 = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det_1 = dot(bx_1, cross(by_1, bz_1)); bool flip_1 = (det_1 < 0.0); mat3x3 cofactor_1 = mat3x3(cross(by_1, bz_1), cross(bz_1, bx_1), cross(bx_1, by_1)); vec3 n_local_1 = ((cofactor_1 * in_1.normal) * (flip_1 ? -1.0 : 1.0)); vec3 t_local_1 = (mat3x3(bx_1, by_1, bz_1) * in_1.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_vs.view_proj; out_1.clip = (_e61 * world_14); out_1.world = world_14.xyz; mat4x4 _e68 = _group_1_binding_0_vs.normal; out_1.normal = normalize((_e68 * vec4(n_local_1, 0.0)).xyz); out_1.uv = in_1.uv; out_1.flags = (in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_vs.extra.x; float mirror_2 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip_1) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_vs.model; out_1.tangent = vec4(normalize((_e97 * vec4(t_local_1, 0.0)).xyz), (in_1.tangent.w * mirror_2)); out_1.weight = in_1.weight; out_1.color = inst.color; VsOut _e111 = out_1; gl_Position = _e111.clip; _vs2fs_location0 = _e111.world; _vs2fs_location1 = _e111.normal; _vs2fs_location2 = _e111.uv; _vs2fs_location3 = _e111.flags; _vs2fs_location4 = _e111.tangent; _vs2fs_location5 = _e111.weight; _vs2fs_location6 = _e111.color; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_skymain$Š#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; smooth out vec2 _vs2fs_location0; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_13 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_13, (vec3(4.0) - k_13)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_13 = p_5.extents.xyz; float d_13 = min((e_13.x - abs(l_10.x)), min((e_13.y - abs(l_10.y)), (e_13.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_14 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_14.x); float _e28 = probe_exit(o_7.y, d_14.y, e_14.y); float _e32 = probe_exit(o_7.z, d_14.z, e_14.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_4 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_4 * nh_1)); float w2_ = (a2_4 / dot(f_4, f_4)); return (((a2_4 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_8 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_4 = mix(21.5473, 25.3245, o_8); float b_3 = mix(3.82987, 3.32435, o_8); float c_37 = mix(0.19823, 0.16801, o_8); float d_15 = mix(-1.9776, -1.27393, o_8); float e_15 = mix(-4.32054, -4.85967, o_8); return (((a_4 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_37)))) + (d_15 * x_3)) + e_15); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_5 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_5, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_7 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_7 * r_7); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_14 = (outside / film); float sin2sq = ((k_14 * k_14) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_ = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_ + ((1.0 - r0_) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_8 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_8, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_8, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_8, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_1 = (_e175 + _e176); c_33 = (base_1 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_8, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_8, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { uint vi = uint(gl_VertexID); vec2 pts[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); SkyOut out_2 = SkyOut(vec4(0.0), vec2(0.0)); vec2 _e15 = pts[vi]; out_2.clip = vec4(_e15, 1.0, 1.0); vec2 _e21 = pts[vi]; out_2.ndc = _e21; SkyOut _e22 = out_2; gl_Position = _e22.clip; _vs2fs_location0 = _e22.ndc; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_skymainP#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform LitU_block_1Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform SkyU_block_2Fragment { SkyU _group_0_binding_5_fs; }; uniform highp sampler2D _group_3_binding_1_fs; layout(std140) uniform FogU_block_3Fragment { FogU _group_1_binding_5_fs; }; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word = ((k_1 < 4u) ? _e8 : _e4); return min(((word >> ((k_1 & 3u) * 8u)) & 255u), 63u); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_2 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_2 <= 1.5707964)) { float c_37 = (1.0 - (a_2 / 1.5707964)); float k_15 = clamp((1.0 - pow(max((1.0 - c_37), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_15); } float c_38 = ((a_2 - 1.5707964) / 1.5707964); float k_16 = clamp((1.0 - pow(max((1.0 - c_38), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_16); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_39 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_39) + c_39) / ((c_39 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_39); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_39, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_39); return _e36; } return c_39; } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_3 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_3, b_2, u.z); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec3 procedural_sky(vec3 d_1) { vec3 sky_1 = vec3(0.0); uint i = 0u; float v_7 = acos(clamp(d_1.y, -1.0, 1.0)); vec4 _e8 = _group_0_binding_5_fs.sky_horizon; vec4 _e12 = _group_0_binding_5_fs.sky_top; float _e21 = _group_0_binding_5_fs.sky_top.w; float _e22 = sky_curve((1.0 - (v_7 / 1.5707964)), _e21); float _e27 = _group_0_binding_5_fs.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); uint _e33 = _group_0_binding_5_fs.flags.z; uint suns = min(_e33, SKY_SUNS); bool loop_init = true; while(true) { if (!loop_init) { uint _e79 = i; i = (_e79 + 1u); } loop_init = false; uint _e38 = i; if ((_e38 < suns)) { } else { break; } { uint _e42 = i; SunU sun = _group_0_binding_5_fs.suns[_e42]; float size = sun.direction.w; float a_4 = acos(clamp(dot(sun.direction.xyz, d_1), -1.0, 1.0)); if ((a_4 < size)) { sky_1 = sun.color.xyz; } else { float _e60 = _group_0_binding_5_fs.sun.x; if ((a_4 < _e60)) { float _e66 = _group_0_binding_5_fs.sun.x; float c2_ = ((a_4 - size) / (_e66 - size)); vec3 _e71 = sky_1; float _e75 = _group_0_binding_5_fs.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } } vec4 _e83 = _group_0_binding_5_fs.ground_horizon; vec4 _e87 = _group_0_binding_5_fs.ground_bottom; float _e96 = _group_0_binding_5_fs.ground_bottom.w; float _e97 = sky_curve(((v_7 - 1.5707964) / 1.5707964), _e96); float _e102 = _group_0_binding_5_fs.ground_horizon.w; vec3 ground_2 = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); vec3 _e104 = sky_1; float _e112 = _group_0_binding_5_fs.sun.z; return (((d_1.y >= 0.0) ? _e104 : ground_2) * _e112); } vec3 panorama(vec3 d_2) { vec2 uv_5 = vec2(fract((atan(d_2.x, -(d_2.z)) / 6.2831855)), (acos(clamp(d_2.y, -1.0, 1.0)) / PI)); uint _e19 = _group_0_binding_5_fs.flags.x; if (((_e19 & SKY_PANORAMA_FILTER) != 0u)) { vec4 _e27 = textureLod(_group_3_binding_1_fs, vec2(uv_5), 0.0); float _e32 = _group_0_binding_5_fs.sun.z; return (_e27.xyz * _e32); } ivec2 size_1 = ivec2(uvec2(textureSize(_group_3_binding_1_fs, 0).xy)); int x_5 = (((int(floor((uv_5.x * float(size_1.x)))) % size_1.x) + size_1.x) % size_1.x); int y = min(max(int(floor((uv_5.y * float(size_1.y)))), 0), (size_1.y - 1)); vec4 _e64 = texelFetch(_group_3_binding_1_fs, ivec2(x_5, y), 0); float _e69 = _group_0_binding_5_fs.sun.z; return (_e64.xyz * _e69); } vec3 sh_irradiance(vec3 n_5) { vec3 c_19 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_19 = (_e4.xyz * 0.282095); vec3 _e9 = c_19; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_19 = (_e9 + (_e13.xyz * (0.488603 * n_5.y))); vec3 _e20 = c_19; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_19 = (_e20 + (_e24.xyz * (0.488603 * n_5.z))); vec3 _e31 = c_19; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_19 = (_e31 + (_e35.xyz * (0.488603 * n_5.x))); vec3 _e42 = c_19; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_19 = (_e42 + (_e46.xyz * ((1.092548 * n_5.x) * n_5.y))); vec3 _e55 = c_19; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_19 = (_e55 + (_e59.xyz * ((1.092548 * n_5.y) * n_5.z))); vec3 _e68 = c_19; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_19 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_5.z) * n_5.z) - 1.0)))); vec3 _e85 = c_19; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_19 = (_e85 + (_e89.xyz * ((1.092548 * n_5.x) * n_5.z))); vec3 _e98 = c_19; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_19 = (_e98 + (_e102.xyz * (0.546274 * ((n_5.x * n_5.x) - (n_5.y * n_5.y))))); vec3 _e115 = c_19; return max(_e115, vec3(0.0)); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_20 = vec3(0.0); uint k_4 = 0u; c_20 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_1 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_20; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_20 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_20; return _e53; } vec3 sky_fog(vec3 c_21, vec3 dir_2) { vec4 _e4 = _group_0_binding_5_fs.fog_color; float _e9 = _group_0_binding_5_fs.fog_depth.w; vec3 _e11 = fog_sun_scatter(mix(_e4.xyz, c_21, _e9), dir_2); float _e15 = _group_0_binding_5_fs.fog.y; return mix(c_21, _e11, _e15); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_4, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_23 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h_4 = (_e26.xyz * 0.5); vec3 dd = mix(d_4, vec3(1e-12), lessThan(abs(d_4), vec3(1e-12))); vec3 sa = ((-(h_4) - o) / dd); vec3 sb = ((h_4 - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_4 / h_4), (d_4 / h_4)); b = dot((o / h_4), (d_4 / h_4)); c_23 = (dot((o / h_4), (o / h_4)) - 1.0); } else { float rad_1 = min(h_4.x, h_4.z); float k_17 = ((shape == FOG_SHAPE_CONE) ? (rad_1 / (2.0 * h_4.y)) : 0.0); float w_2 = (h_4.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_17 * k_17) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_17 * k_17) * w_2) * d_4.y)); c_23 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_17 * k_17) * w_2) * w_2) : (rad_1 * rad_1))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_23; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_23; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_23; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_23; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_3, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_13 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_13.material.x * min(exp2((-(e_13.material.y) * (dot(p_3, _e14.xyz) - e_13.material.w))), 1.0)); if ((e_13.material.z > 0.0)) { uint shape_1 = uint(e_13.albedo.w); vec3 h_5 = (e_13.size.xyz * 0.5); float rad_2 = min(h_5.x, h_5.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_5)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_5 * h_5))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_5); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_2), (abs(lp.y) - h_5.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_12 = normalize(vec2((1.0 / max(0.001, (rad_2 * 0.5))), (1.0 / max(0.001, h_5.y)))); sdf = max(dot(n_12, vec2(length(lp.xz), (lp.y - h_5.y))), (-(h_5.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_13.size.w), 0.0, 1.0), e_13.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_3 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_3.y; if (((hf * b_1) == 0.0)) { return ((m_3.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_18 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_18 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_18); float x_6 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_6 < 0.01) ? (1.0 - (x_6 * (0.5 - (x_6 * (0.16666667 - (x_6 / 24.0)))))) : ((1.0 - exp(-(x_6))) / x_6)); float top = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_3.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 fog_light(uint n_6, vec3 p_4, vec3 dir_4) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l_2 = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_6].lights; bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_2 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_13 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_13]; l_2 = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_4); l_2 = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l_2; float rim_2 = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim_2, li.spot.y))); } } vec3 _e108 = l_2; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_4, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_13 >> 2u)][(i_13 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_6, vec2 ch) { float split = 0.0; bool local_24 = false; bool local_25 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_26 = false; bool local_27 = false; FogEntryU e_14 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_14.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_14.to_local * vec4(d_6, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_5 = (dot(o_1, _e20.xyz) - e_14.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_6, _e28.xyz); bool edge = (e_14.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_14.material.y > 0.0)) { local_24 = ((-(a_5) / b_3) > ch.x); } else { local_24 = false; } bool _e52 = local_24; if (_e52) { local_25 = ((-(a_5) / b_3) < ch.y); } else { local_25 = false; } bool _e60 = local_25; if (_e60) { split = (-(a_5) / b_3); } bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e160 = i_1; i_1 = (_e160 + 1u); } loop_init_3 = false; uint _e70 = i_1; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i_1; uint j = (_e75 & 3u); if (!((j == 0u))) { local_26 = (j == 3u); } else { local_26 = true; } bool _e88 = local_26; float x_7 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_27 = (j == 3u); } else { local_27 = true; } bool _e100 = local_27; float w_3 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_7 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_7) : x_7))); vec3 p_9 = (o_1 + (d_6 * t_7)); float _e136 = fog_density(k_9, p_9, (lo_4 + (ld * t_7))); uint _e137 = i_1; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_9, d_6); q_1 = (_e140 + (((e_14.albedo.xyz * _e143) + e_14.emission.xyz) * ((w_3 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_3 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_5, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_24, vec3 o_2, vec3 d_7, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_2 = 0u; bool local_28 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_3 = 0u; uint n_7 = 0u; float avail = 0.0; uint i_4 = 0u; uint i_5 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e72 = i_2; i_2 = (_e72 + 1u); } loop_init_4 = false; uint _e13 = i_2; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_2; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_28 = (byte == 0u); } else { local_28 = false; } bool _e37 = local_28; if (_e37) { break; } uint _e42 = i_2; uint k_18 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_18].to_local; vec2 _e57 = fog_chord(k_18, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_7, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_18; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e90 = i_3; i_3 = (_e90 + 1u); } loop_init_5 = false; uint _e77 = i_3; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at[_e82]; uint _e85 = i_3; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e221 = n_7; n_7 = (_e221 + 1u); } loop_init_6 = false; uint _e94 = n_7; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_7; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_4 = 0u; bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e153 = i_4; i_4 = (_e153 + 1u); } loop_init_7 = false; uint _e107 = i_4; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_4; float _e113 = chords[_e110].y; uint _e114 = n_7; float _e117 = chords[_e114].y; uint _e119 = i_4; float _e122 = chords[_e119].x; uint _e123 = n_7; float _e126 = chords[_e123].x; uint _e131 = i_4; float _e134 = chords[_e131].y; uint _e135 = i_4; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_4; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_7; float _e158 = parts[_e155].w; float _e160 = avail; float f_4 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_5 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e218 = i_5; i_5 = (_e218 + 1u); } loop_init_8 = false; uint _e168 = i_5; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_5; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_5; float _e180 = chords[_e177].y; uint _e181 = n_7; float _e184 = chords[_e181].y; uint _e186 = i_5; float _e189 = chords[_e186].x; uint _e190 = n_7; float _e193 = chords[_e190].x; uint _e198 = i_5; float _e201 = chords[_e198].y; uint _e202 = i_5; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_5; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_4))); } } } } } } bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e252 = i_6; i_6 = (_e252 + 1u); } loop_init_9 = false; uint _e230 = i_6; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_6; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_6; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_8 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_24 * t_8) + (_e258 * ((1.0 - t_8) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_25, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_7)); vec3 _e47 = fog_integrate(c_25, o_7, ((world_4 - o_7) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_25); } vec3 sky_fog_volumes(vec3 c_26, vec3 near_point, vec3 dir_5) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back_1 = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_8 = ((_e36 > 0.5) ? (near_point - (back_1 * (_e26 * vec4(near_point, 1.0)).z)) : _e22.xyz); uint _e44 = _group_1_binding_5_fs.counts.y; vec3 _e45 = fog_integrate(c_26, o_8, dir_5, FOG_SKY_DISTANCE, _e44); float _e49 = _group_1_binding_5_fs.params.z; return mix(c_26, _e45, _e49); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_6 = abs(d_8); if ((a_6.x >= a_6.y)) { local_32 = (a_6.x >= a_6.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_6.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_6.y >= a_6.z)) { ma = a_6.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_6.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_15 = p_5.extents.xyz; float d_13 = min((e_15.x - abs(l_10.x)), min((e_15.y - abs(l_10.y)), (e_15.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_9 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_16 = p_6.extents.xyz; float _e24 = probe_exit(o_9.x, d_14.x, e_16.x); float _e28 = probe_exit(o_9.y, d_14.y, e_16.y); float _e32 = probe_exit(o_9.z, d_14.z, e_16.z); float t_9 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_9 + (d_14 * t_9)) - p_6.offset.xyz); } vec4 lit_output(vec4 c_30) { uint _e4 = _group_0_binding_1_fs.counts.y; if (((_e4 & ENV_HDR) != 0u)) { return vec4(max(c_30.xyz, vec3(0.0)), clamp(c_30.w, 0.0, 1.0)); } vec4 _e18 = target_color(c_30); return _e18; } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_4 = (at_1 * ab); vec3 f_5 = vec3((ab * th), (at_1 * bh), (a2_4 * nh_1)); float w2_ = (a2_4 / dot(f_5, f_5)); return (((a2_4 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_10 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_7 = mix(21.5473, 25.3245, o_10); float b_4 = mix(3.82987, 3.32435, o_10); float c_40 = mix(0.19823, 0.16801, o_10); float d_15 = mix(-1.9776, -1.27393, o_10); float e_17 = mix(-4.32054, -4.85967, o_10); return (((a_7 / (1.0 + (b_4 * pow(max(x_3, 1e-6), c_40)))) + (d_15 * x_3)) + e_17); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_8 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y_1 = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_14 = min(int(floor(x_8)), 14); int j_1 = min(int(floor(y_1)), 6); float fx = (x_8 - float(i_14)); float fy = (y_1 - float(j_1)); float _e166 = t_3[((j_1 * 16) + i_14)]; float _e173 = t_3[(((j_1 * 16) + i_14) + 1)]; float a_8 = mix(_e166, _e173, fx); float _e181 = t_3[(((j_1 + 1) * 16) + i_14)]; float _e190 = t_3[((((j_1 + 1) * 16) + i_14) + 1)]; float b_5 = mix(_e181, _e190, fx); return mix(a_8, b_5, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_7 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_7 * r_7); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_19 = (outside / film); float sin2sq = ((k_19 * k_19) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_ = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_ + ((1.0 - r0_) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init_10 = true; while(true) { if (!loop_init_10) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init_10 = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_6 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_6), 0.0); float vh_5 = max(dot(e_6.v, h_6), 0.0); float nv_8 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_6), dot(e_6.aniso_b, h_6), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_8, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_8, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back_2 = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back_2, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_8, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_1 = (_e175 + _e176); c_33 = (base_1 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_8, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_8, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_6), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec3 ext_irradiance(vec3 n_11, bool lit_mode) { if ((SPEC_MATERIAL_MODE ? !(lit_mode) : false)) { vec3 _e7 = env(n_11.z); return (_e7 * 0.8); } uint _e14 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e14 & SKY_IBL) != 0u) : false)) { float _e24 = _group_0_binding_5_fs.ibl.x; float _e28 = _group_0_binding_5_fs.sun.w; float scale_1 = (_e24 * _e28); uint _e33 = _group_0_binding_5_fs.flags.x; if (((_e33 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e40 = _group_0_binding_5_fs.ambient; vec3 _e42 = sky_dir(n_11); vec3 _e43 = sh_irradiance(_e42); float _e48 = _group_0_binding_5_fs.ambient.w; return mix(_e40.xyz, (_e43 * scale_1), _e48); } vec4 _e52 = _group_0_binding_5_fs.ambient; return _e52.xyz; } uint _e58 = _group_0_binding_1_fs.counts.y; if ((SPEC_AMBIENT_GRADIENT ? ((_e58 & ENV_AMBIENT_SKY) != 0u) : false)) { vec4 _e67 = _group_0_binding_1_fs.sky_top; vec4 _e71 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e67.xyz + _e71.xyz) * 0.5); vec4 _e78 = _group_0_binding_1_fs.ground_horizon; vec4 _e82 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e78.xyz + _e82.xyz) * 0.5); vec4 _e89 = _group_0_binding_1_fs.up; float _e103 = _group_0_binding_1_fs.ambient.w; return (mix(ground_avg, sky_avg, clamp(((dot(n_11, _e89.xyz) * 0.5) + 0.5), 0.0, 1.0)) * _e103); } vec4 _e107 = _group_0_binding_1_fs.ambient; return _e107.xyz; } vec3 ext_env_weight(vec3 f0_5, vec3 f90_1, float roughness_6, float nv_5, float metallic, bool lit_mode_3) { bool local_40 = false; if (lit_mode_3) { uint _e12 = _group_0_binding_5_fs.flags.x; local_40 = ((_e12 & SKY_IBL) != 0u); } else { local_40 = false; } bool _e18 = local_40; if ((SPEC_AMBIENT_SKY ? _e18 : false)) { vec2 _e21 = env_brdf_approx(roughness_6, nv_5); return ((f0_5 * _e21.x) + ((f90_1 * _e21.y) * clamp((50.0 * f0_5.y), metallic, 1.0))); } float _e40 = pow5_((1.0 - nv_5)); vec3 f_amb = (f0_5 + ((max((f90_1 * (1.0 - roughness_6)), f0_5) - f0_5) * _e40)); if ((SPEC_MATERIAL_MODE ? !(lit_mode_3) : false)) { return (f_amb * (1.0 - (0.5 * roughness_6))); } return f_amb; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_fs.view_proj; vec4 c_41 = (_e3 * vec4(p_7, 1.0)); vec2 ndc = (c_41.xy / vec2(((c_41.w > 1e-6) ? c_41.w : 1e-6))); return vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { SkyOut in_2 = SkyOut(gl_FragCoord, _vs2fs_location0); vec3 c = vec3(0.0); mat4x4 _e3 = _group_0_binding_1_fs.inv_view_proj; vec4 near = (_e3 * vec4(in_2.ndc, 0.0, 1.0)); mat4x4 _e11 = _group_0_binding_1_fs.inv_view_proj; vec4 far = (_e11 * vec4(in_2.ndc, 1.0, 1.0)); vec3 ray = ((far.xyz / vec3(far.w)) - (near.xyz / vec3(near.w))); uint bits = _group_0_binding_5_fs.flags.x; if (((bits & 3u) != 0u)) { vec3 _e35 = sky_dir(ray); if (((bits & SKY_DRAW_PROCEDURAL) != 0u)) { vec3 _e40 = procedural_sky(_e35); c = _e40; } else { vec3 _e41 = panorama(_e35); c = _e41; } vec3 _e42 = c; float _e46 = _group_0_binding_5_fs.sun.w; c = (_e42 * _e46); } else { vec3 _e48 = sky(ray); c = _e48; } if (((bits & SKY_FOG) != 0u)) { vec3 _e53 = c; vec3 _e55 = sky_fog(_e53, normalize(ray)); c = _e55; } uint _e59 = _group_1_binding_5_fs.counts.z; if ((_e59 != 0u)) { vec3 _e62 = c; vec3 _e68 = sky_fog_volumes(_e62, (near.xyz / vec3(near.w)), normalize(ray)); c = _e68; } vec3 _e69 = c; vec3 _e70 = tonemap(_e69); vec4 _e73 = lit_output(vec4(_e70, 1.0)); _fs2p_location0 = _e73; return; }  fs_surfacemainœï#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform MaterialU_block_2Fragment { MaterialU _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; uniform highp sampler2D _group_2_binding_3_fs; uniform highp sampler2D _group_2_binding_4_fs; uniform highp sampler2D _group_2_binding_5_fs; layout(std140) uniform LitU_block_3Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform ShadowU_block_4Fragment { ShadowU _group_0_binding_2_fs; }; uniform highp sampler2DShadow _group_0_binding_3_fs; layout(std140) uniform SkyU_block_5Fragment { SkyU _group_0_binding_5_fs; }; uniform highp samplerCube _group_3_binding_0_fs; uniform highp sampler2D _group_0_binding_6_fs; layout(std140) uniform ProbeU_block_6Fragment { ProbeU _group_0_binding_7_fs; }; uniform highp sampler2D _group_3_binding_6_fs; layout(std140) uniform DecalU_block_7Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; layout(std140) uniform FogU_block_8Fragment { FogU _group_1_binding_5_fs; }; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in float _vs2fs_location5; smooth in vec4 _vs2fs_location6; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word_1 = ((k_1 < 4u) ? _e8 : _e4); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_2 = ((k_2 < 4u) ? _e8 : _e4); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local_21 = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_13 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_13.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local_21 = all(lessThanEqual(uvw, vec3(1.0))); } else { local_21 = false; } bool _e35 = local_21; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_13.fades.x : e_13.fades.y)); if ((e_13.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_13.fades.z, 1.0, ((dot(n_geo, e_13.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_5 = uvw.xz; float _e69 = decal_level(e_13, world_1); uint live_1 = e_13.flags.x; if ((e_13.layers.x > 0u)) { vec4 _e82 = decal_texel(e_13.layers.x, uv_5, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_13.modulate); float _e90 = fade; float alpha_4 = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha_4 * e_13.fades.w)); if ((e_13.layers.y > 0u)) { vec4 _e110 = decal_texel(e_13.layers.y, uv_5, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_13.axis_x.xyz * nx) + (e_13.axis_y.xyz * nz)) + (e_13.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha_4)); } if ((e_13.layers.z > 0u)) { vec4 _e156 = decal_texel(e_13.layers.z, uv_5, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha_4); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha_4); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha_4); } } if ((e_13.layers.w > 0u)) { vec4 _e182 = decal_texel(e_13.layers.w, uv_5, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_13.modulate.xyz) * e_13.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec3 checker(vec2 uv_1) { vec3 c_10 = vec3(0.0); float s_18 = _group_0_binding_0_fs.fparams.y; vec2 cell = floor((uv_1 * s_18)); ivec2 ci = ivec2(cell); int odd = ((ci.x + ci.y) & 1); uint k_15 = ((uint(ci.x) * 73856093u) ^ (uint(ci.y) * 19349663u)); float hue = float((k_15 % 360u)); float value = ((odd == 1) ? 0.4 : 0.74); vec3 _e31 = hsv(hue, 0.18, value); c_10 = _e31; vec2 tile = abs((fract(uv_1) - vec2(0.5))); vec2 _e38 = fwidth(uv_1); vec2 w_1 = ((_e38 * 1.0) + vec2(0.0001)); bool border = any(greaterThan(tile, (vec2(0.5) - w_1))); vec3 _e49 = c_10; vec3 _e50 = c_10; c_10 = (border ? (_e50 * 0.35) : _e49); vec3 _e54 = c_10; vec3 _e55 = srgb_to_linear(_e54); return _e55; } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } vec2 material_uv(vec2 uv_3) { vec2 _e1 = tex_uv(uv_3); vec4 _e4 = _group_2_binding_0_fs.uv; vec4 _e9 = _group_2_binding_0_fs.uv; return ((_e1 * _e4.xy) + _e9.zw); } vec4 decoded_base(vec4 t) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_BASE) != 0u)) { vec3 _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } vec3 decoded_emission(vec3 t_1) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_EMISSION) != 0u)) { vec3 _e9 = srgb_to_linear(t_1); return _e9; } return t_1; } Samples sample_material(vec2 uv_in) { Samples s_3 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec2 _e1 = material_uv(uv_in); vec4 _e6 = _group_2_binding_0_fs.base_color; s_3.base = _e6; uint _e11 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e11 & T_BASE) != 0u) : false)) { vec4 _e19 = s_3.base; vec4 _e22 = texture(_group_2_binding_1_fs, vec2(_e1)); vec4 _e23 = decoded_base(_e22); s_3.base = (_e19 * _e23); } s_3.normal = vec3(0.0, 0.0, 1.0); uint _e34 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e34 & T_NORMAL) != 0u) : false)) { vec4 _e44 = texture(_group_2_binding_2_fs, vec2(_e1)); s_3.normal = normalize(((_e44.xyz * 2.0) - vec3(1.0))); } s_3.mr = vec4(1.0); uint _e59 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_MR ? ((_e59 & T_METALLIC_ROUGHNESS) != 0u) : false)) { vec4 _e69 = texture(_group_2_binding_3_fs, vec2(_e1)); s_3.mr = _e69; } vec4 _e73 = _group_2_binding_0_fs.emission; s_3.emission = _e73.xyz; uint _e79 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e79 & T_EMISSION) != 0u) : false)) { vec3 _e87 = s_3.emission; vec4 _e90 = texture(_group_2_binding_4_fs, vec2(_e1)); vec3 _e92 = decoded_emission(_e90.xyz); s_3.emission = (_e87 * _e92); } s_3.occlusion = 1.0; uint _e100 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e100 & T_OCCLUSION) != 0u) : false)) { vec4 _e110 = texture(_group_2_binding_5_fs, vec2(_e1)); s_3.occlusion = _e110.x; } Samples _e112 = s_3; return _e112; } Samples surface_samples(VsOut in_19) { Samples s_4 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec4 c_11 = vec4(0.0); Samples _e2 = sample_material(in_19.uv); s_4 = _e2; uint _e8 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e8 & MAT_VERTEX_COLOR) != 0u) : false)) { c_11 = in_19.color; uint _e20 = _group_2_binding_0_fs.flags.w; if (((_e20 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e25 = c_11; vec3 _e27 = srgb_to_linear(_e25.xyz); float _e29 = c_11.w; c_11 = vec4(_e27, _e29); } vec4 _e33 = s_4.base; vec4 _e34 = c_11; s_4.base = (_e33 * _e34); } Samples _e36 = s_4; return _e36; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 pbr(VsOut in_20, bool front, Samples s_5) { vec3 n_w = vec3(0.0); vec3 t_w = vec3(0.0); vec3 c_13 = vec3(0.0); float _e6 = _group_2_binding_0_fs.factors.x; float metallic_1 = clamp((_e6 * s_5.mr.z), 0.0, 1.0); float _e16 = _group_2_binding_0_fs.factors.y; float roughness_7 = clamp((_e16 * s_5.mr.y), 0.045, 1.0); float a2_4 = (((roughness_7 * roughness_7) * roughness_7) * roughness_7); vec3 base_1 = s_5.base.xyz; vec3 diffuse_4 = (base_1 * (1.0 - metallic_1)); vec3 f0_6 = mix(vec3(0.04), base_1, metallic_1); n_w = (front ? normalize(in_20.normal) : -(normalize(in_20.normal))); uint _e45 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e45 & T_NORMAL) != 0u) : false)) { t_w = in_20.tangent.xyz; vec3 _e55 = t_w; vec3 _e56 = n_w; vec3 _e57 = n_w; vec3 _e58 = t_w; t_w = normalize((_e55 - (_e56 * dot(_e57, _e58)))); vec3 _e63 = n_w; vec3 _e64 = t_w; vec3 b_w = (cross(_e63, _e64) * in_20.tangent.w); vec3 _e69 = t_w; vec3 _e77 = n_w; n_w = normalize((((_e69 * s_5.normal.x) + (b_w * s_5.normal.y)) + (_e77 * s_5.normal.z))); } mat4x4 _e85 = _group_0_binding_0_fs.view; vec3 _e86 = n_w; vec3 n_12 = normalize((_e85 * vec4(_e86, 0.0)).xyz); mat4x4 _e94 = _group_0_binding_0_fs.view; vec3 pos_v = (_e94 * vec4(in_20.world, 1.0)).xyz; float _e109 = _group_0_binding_0_fs.camera_pos.w; vec3 v_7 = ((_e109 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(pos_v))); mat4x4 _e115 = _group_0_binding_0_fs.view; vec3 up_1 = normalize((_e115 * vec4(0.0, 0.0, 1.0, 0.0)).xyz); vec3 _e127 = c_13; vec3 _e136 = light(n_12, v_7, vec3(-0.45112923, 0.5513802, 0.7017566), vec3(2.6, 2.522, 2.392), diffuse_4, f0_6, a2_4); c_13 = (_e127 + _e136); vec3 _e138 = c_13; vec3 _e147 = light(n_12, v_7, vec3(0.8451543, 0.16903086, 0.50709254), vec3(0.765, 0.80999994, 0.9), diffuse_4, f0_6, a2_4); c_13 = (_e138 + _e147); vec3 _e149 = c_13; vec3 _e158 = light(n_12, v_7, vec3(0.34583426, 0.63402945, -0.6916685), vec3(1.3, 1.3, 1.3), diffuse_4, f0_6, a2_4); c_13 = (_e149 + _e158); float nv_8 = max(dot(n_12, v_7), 0.0001); vec3 r_6 = reflect(-(v_7), n_12); vec3 _e166 = env(dot(n_12, up_1)); vec3 irradiance = (_e166 * 0.8); vec3 _e170 = env(dot(r_6, up_1)); vec3 _e172 = env(0.0); vec3 blurred = mix(_e170, (_e172 * 0.85), roughness_7); vec3 f_amb = (f0_6 + ((max(vec3((1.0 - roughness_7)), f0_6) - f0_6) * pow((1.0 - nv_8), 5.0))); vec3 ambient_1 = ((diffuse_4 * irradiance) + ((blurred * f_amb) * (1.0 - (0.5 * roughness_7)))); vec3 _e195 = c_13; c_13 = (_e195 + (ambient_1 * s_5.occlusion)); vec3 _e199 = c_13; c_13 = (_e199 + s_5.emission); vec3 _e202 = c_13; return _e202; } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_3 <= 1.5707964)) { float c_37 = (1.0 - (a_3 / 1.5707964)); float k_16 = clamp((1.0 - pow(max((1.0 - c_37), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_16); } float c_38 = ((a_3 - 1.5707964) / 1.5707964); float k_17 = clamp((1.0 - pow(max((1.0 - c_38), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_17); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_2 = (1.8 * white); float wt = (((w_2 * (w_2 + 0.0245786)) - 9.0537e-5) / ((w_2 * ((0.983729 * w_2) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_39 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_39) + c_39) / ((c_39 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_39); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_39, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_39); return _e36; } return c_39; } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_4 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_4, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_14 = _group_1_binding_0_fs.normal[0][3]; vec3 w_3 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_3); float _e29 = emerge_noise(((w_3 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_14 * 1.8) - _e60) / EMERGE_EDGE); } vec3 emerge_tint(vec3 c_16, float r) { bool local_22 = false; uint _e6 = _group_1_binding_0_fs.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_22 = (r >= 1.0); } else { local_22 = true; } bool _e17 = local_22; if ((SPEC_EMERGE ? _e17 : true)) { return c_16; } uint _e23 = _group_1_binding_0_fs.extra.w; vec3 _e26 = srgb_to_linear((vec4(_e23 & 0xFFu, _e23 >> 8 & 0xFFu, _e23 >> 16 & 0xFFu, _e23 >> 24) / 255.0).xyz); vec3 _e27 = tonemap(_e26); return mix(_e27, c_16, smoothstep(0.0, 1.0, r)); } vec3 item_fade(vec3 c_17) { uint _e5 = _group_1_binding_0_fs.extra.x; if ((SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true)) { return c_17; } vec4 f_4 = _group_1_binding_0_fs.normal[3]; vec3 _e17 = tonemap(f_4.xyz); return mix(c_17, _e17, f_4.w); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec3 procedural_sky(vec3 d_1) { vec3 sky_1 = vec3(0.0); uint i = 0u; float v_8 = acos(clamp(d_1.y, -1.0, 1.0)); vec4 _e8 = _group_0_binding_5_fs.sky_horizon; vec4 _e12 = _group_0_binding_5_fs.sky_top; float _e21 = _group_0_binding_5_fs.sky_top.w; float _e22 = sky_curve((1.0 - (v_8 / 1.5707964)), _e21); float _e27 = _group_0_binding_5_fs.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); uint _e33 = _group_0_binding_5_fs.flags.z; uint suns = min(_e33, SKY_SUNS); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e79 = i; i = (_e79 + 1u); } loop_init_1 = false; uint _e38 = i; if ((_e38 < suns)) { } else { break; } { uint _e42 = i; SunU sun = _group_0_binding_5_fs.suns[_e42]; float size = sun.direction.w; float a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1.0, 1.0)); if ((a_5 < size)) { sky_1 = sun.color.xyz; } else { float _e60 = _group_0_binding_5_fs.sun.x; if ((a_5 < _e60)) { float _e66 = _group_0_binding_5_fs.sun.x; float c2_ = ((a_5 - size) / (_e66 - size)); vec3 _e71 = sky_1; float _e75 = _group_0_binding_5_fs.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } } vec4 _e83 = _group_0_binding_5_fs.ground_horizon; vec4 _e87 = _group_0_binding_5_fs.ground_bottom; float _e96 = _group_0_binding_5_fs.ground_bottom.w; float _e97 = sky_curve(((v_8 - 1.5707964) / 1.5707964), _e96); float _e102 = _group_0_binding_5_fs.ground_horizon.w; vec3 ground_2 = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); vec3 _e104 = sky_1; float _e112 = _group_0_binding_5_fs.sun.z; return (((d_1.y >= 0.0) ? _e104 : ground_2) * _e112); } vec3 sh_irradiance(vec3 n_5) { vec3 c_19 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_19 = (_e4.xyz * 0.282095); vec3 _e9 = c_19; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_19 = (_e9 + (_e13.xyz * (0.488603 * n_5.y))); vec3 _e20 = c_19; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_19 = (_e20 + (_e24.xyz * (0.488603 * n_5.z))); vec3 _e31 = c_19; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_19 = (_e31 + (_e35.xyz * (0.488603 * n_5.x))); vec3 _e42 = c_19; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_19 = (_e42 + (_e46.xyz * ((1.092548 * n_5.x) * n_5.y))); vec3 _e55 = c_19; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_19 = (_e55 + (_e59.xyz * ((1.092548 * n_5.y) * n_5.z))); vec3 _e68 = c_19; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_19 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_5.z) * n_5.z) - 1.0)))); vec3 _e85 = c_19; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_19 = (_e85 + (_e89.xyz * ((1.092548 * n_5.x) * n_5.z))); vec3 _e98 = c_19; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_19 = (_e98 + (_e102.xyz * (0.546274 * ((n_5.x * n_5.x) - (n_5.y * n_5.y))))); vec3 _e115 = c_19; return max(_e115, vec3(0.0)); } vec3 radiance_2(vec3 d_3, float roughness) { uint _e5 = _group_0_binding_5_fs.flags.y; float top_1 = float((max(_e5, 1u) - 1u)); vec4 _e14 = textureLod(_group_3_binding_0_fs, vec3(d_3), (roughness * top_1)); return _e14.xyz; } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_7 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_7.x * r_7.x), exp2((-9.28 * nv_1))) * r_7.x) + r_7.y); return ((vec2(-1.04, 1.04) * a004_) + r_7.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_20 = vec3(0.0); uint k_4 = 0u; c_20 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_2 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_20; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_20 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_20; return _e53; } vec3 sky_fog(vec3 c_21, vec3 dir_2) { vec4 _e4 = _group_0_binding_5_fs.fog_color; float _e9 = _group_0_binding_5_fs.fog_depth.w; vec3 _e11 = fog_sun_scatter(mix(_e4.xyz, c_21, _e9), dir_2); float _e15 = _group_0_binding_5_fs.fog.y; return mix(c_21, _e11, _e15); } vec3 surface_fog(vec3 c_22, vec3 world_3, vec3 dir_3) { float dist = 0.0; float amount = 0.0; vec3 fc_1 = vec3(0.0); bool local_23 = false; mat4x4 _e5 = _group_0_binding_0_fs.view; float depth = -((_e5 * vec4(world_3, 1.0)).z); vec4 _e13 = _group_0_binding_0_fs.camera_pos; dist = distance(world_3, _e13.xyz); float _e20 = _group_0_binding_5_fs.fog_origin.w; if ((_e20 > 0.5)) { float _e26 = _group_0_binding_5_fs.fog_origin.x; dist = max((depth - _e26), 0.0); } uint _e34 = _group_0_binding_5_fs.flags.x; if (((_e34 & SKY_FOG_DEPTH) != 0u)) { float _e42 = _group_0_binding_5_fs.fog_depth.x; float _e46 = _group_0_binding_5_fs.fog_depth.y; float _e47 = dist; float z = smoothstep(_e42, _e46, _e47); float _e54 = _group_0_binding_5_fs.fog_depth.z; float _e63 = _group_0_binding_5_fs.fog.x; amount = (((z > 0.0) ? pow(max(z, 1e-6), _e54) : 0.0) * _e63); } else { float _e65 = dist; float _e70 = _group_0_binding_5_fs.fog.x; amount = (1.0 - exp(min(0.0, (-(_e65) * _e70)))); } float _e80 = _group_0_binding_5_fs.fog.w; if ((abs(_e80) >= 0.0001)) { vec4 _e86 = _group_0_binding_1_fs.up; float y = dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = _group_0_binding_5_fs.fog.z; float _e98 = _group_0_binding_5_fs.fog.w; amount = max(_e89, (1.0 - exp(min(0.0, ((y - _e93) * _e98))))); } float _e106 = amount; amount = clamp(_e106, 0.0, 1.0); vec4 _e112 = _group_0_binding_5_fs.fog_color; fc_1 = _e112.xyz; uint _e119 = _group_0_binding_5_fs.flags.x; if (((_e119 & SKY_IBL) != 0u)) { float _e129 = _group_0_binding_5_fs.fog_depth.w; local_23 = (_e129 > 0.0); } else { local_23 = false; } bool _e133 = local_23; if ((SPEC_AMBIENT_SKY ? _e133 : false)) { float _e139 = _group_0_binding_5_fs.fog_origin.y; float _e144 = _group_0_binding_5_fs.fog_origin.z; float _e148 = _group_0_binding_5_fs.fog_origin.y; float t_7 = clamp(((depth - _e139) / max((_e144 - _e148), 1e-6)), 0.0, 1.0); uint _e159 = _group_0_binding_5_fs.flags.y; float top_2 = float((max(_e159, 2u) - 1u)); float rough_2 = mix((1.0 / top_2), 1.0, (1.0 - t_7)); vec3 _e171 = fc_1; vec3 _e172 = sky_dir(dir_3); vec3 _e173 = radiance_2(_e172, rough_2); float _e177 = _group_0_binding_5_fs.sun.w; float _e182 = _group_0_binding_5_fs.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } vec3 _e184 = fc_1; vec3 _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; vec3 _e186 = fc_1; float _e187 = amount; return mix(c_22, _e186, _e187); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_4, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_23 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h_4 = (_e26.xyz * 0.5); vec3 dd = mix(d_4, vec3(1e-12), lessThan(abs(d_4), vec3(1e-12))); vec3 sa = ((-(h_4) - o) / dd); vec3 sb = ((h_4 - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_4 / h_4), (d_4 / h_4)); b = dot((o / h_4), (d_4 / h_4)); c_23 = (dot((o / h_4), (o / h_4)) - 1.0); } else { float rad_1 = min(h_4.x, h_4.z); float k_18 = ((shape == FOG_SHAPE_CONE) ? (rad_1 / (2.0 * h_4.y)) : 0.0); float w_4 = (h_4.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_18 * k_18) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_18 * k_18) * w_4) * d_4.y)); c_23 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_18 * k_18) * w_4) * w_4) : (rad_1 * rad_1))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_23; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_23; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_23; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_23; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_3, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_15 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_15.material.x * min(exp2((-(e_15.material.y) * (dot(p_3, _e14.xyz) - e_15.material.w))), 1.0)); if ((e_15.material.z > 0.0)) { uint shape_1 = uint(e_15.albedo.w); vec3 h_5 = (e_15.size.xyz * 0.5); float rad_2 = min(h_5.x, h_5.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_5)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_5 * h_5))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_5); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_2), (abs(lp.y) - h_5.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_13 = normalize(vec2((1.0 / max(0.001, (rad_2 * 0.5))), (1.0 / max(0.001, h_5.y)))); sdf = max(dot(n_13, vec2(length(lp.xz), (lp.y - h_5.y))), (-(h_5.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_15.size.w), 0.0, 1.0), e_15.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_3 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_3.y; if (((hf * b_1) == 0.0)) { return ((m_3.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_19 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_19 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_19); float x_5 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_5 < 0.01) ? (1.0 - (x_5 * (0.5 - (x_5 * (0.16666667 - (x_5 / 24.0)))))) : ((1.0 - exp(-(x_5))) / x_5)); float top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_3.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 fog_light(uint n_6, vec3 p_4, vec3 dir_4) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l_2 = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_6].lights; bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_3 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_13 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_13]; l_2 = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_4); l_2 = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l_2; float rim_2 = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim_2, li.spot.y))); } } vec3 _e108 = l_2; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_4, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_13 >> 2u)][(i_13 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_6, vec2 ch) { float split = 0.0; bool local_24 = false; bool local_25 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_26 = false; bool local_27 = false; FogEntryU e_16 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_16.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_16.to_local * vec4(d_6, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_6 = (dot(o_1, _e20.xyz) - e_16.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_6, _e28.xyz); bool edge = (e_16.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_16.material.y > 0.0)) { local_24 = ((-(a_6) / b_3) > ch.x); } else { local_24 = false; } bool _e52 = local_24; if (_e52) { local_25 = ((-(a_6) / b_3) < ch.y); } else { local_25 = false; } bool _e60 = local_25; if (_e60) { split = (-(a_6) / b_3); } bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e160 = i_1; i_1 = (_e160 + 1u); } loop_init_4 = false; uint _e70 = i_1; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i_1; uint j = (_e75 & 3u); if (!((j == 0u))) { local_26 = (j == 3u); } else { local_26 = true; } bool _e88 = local_26; float x_6 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_27 = (j == 3u); } else { local_27 = true; } bool _e100 = local_27; float w_5 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_8 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_6) : x_6))); vec3 p_9 = (o_1 + (d_6 * t_8)); float _e136 = fog_density(k_9, p_9, (lo_4 + (ld * t_8))); uint _e137 = i_1; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_9, d_6); q_1 = (_e140 + (((e_16.albedo.xyz * _e143) + e_16.emission.xyz) * ((w_5 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_5 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_24, vec3 o_2, vec3 d_7, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_2 = 0u; bool local_28 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_3 = 0u; uint n_7 = 0u; float avail = 0.0; uint i_4 = 0u; uint i_5 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e72 = i_2; i_2 = (_e72 + 1u); } loop_init_5 = false; uint _e13 = i_2; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_2; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_28 = (byte == 0u); } else { local_28 = false; } bool _e37 = local_28; if (_e37) { break; } uint _e42 = i_2; uint k_19 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_19].to_local; vec2 _e57 = fog_chord(k_19, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_7, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_19; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e90 = i_3; i_3 = (_e90 + 1u); } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at[_e82]; uint _e85 = i_3; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } } bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e221 = n_7; n_7 = (_e221 + 1u); } loop_init_7 = false; uint _e94 = n_7; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_7; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_4 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e153 = i_4; i_4 = (_e153 + 1u); } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_4; float _e113 = chords[_e110].y; uint _e114 = n_7; float _e117 = chords[_e114].y; uint _e119 = i_4; float _e122 = chords[_e119].x; uint _e123 = n_7; float _e126 = chords[_e123].x; uint _e131 = i_4; float _e134 = chords[_e131].y; uint _e135 = i_4; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_4; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_7; float _e158 = parts[_e155].w; float _e160 = avail; float f_5 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_5 = 0u; bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e218 = i_5; i_5 = (_e218 + 1u); } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_5; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_5; float _e180 = chords[_e177].y; uint _e181 = n_7; float _e184 = chords[_e181].y; uint _e186 = i_5; float _e189 = chords[_e186].x; uint _e190 = n_7; float _e193 = chords[_e190].x; uint _e198 = i_5; float _e201 = chords[_e198].y; uint _e202 = i_5; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_5; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_5))); } } } } } } bool loop_init_10 = true; while(true) { if (!loop_init_10) { uint _e252 = i_6; i_6 = (_e252 + 1u); } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_6; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_6; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_9 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_24 * t_9) + (_e258 * ((1.0 - t_9) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_25, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_7)); vec3 _e47 = fog_integrate(c_25, o_7, ((world_4 - o_7) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_25); } vec3 sky_fog_volumes(vec3 c_26, vec3 near_point, vec3 dir_5) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back_1 = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_8 = ((_e36 > 0.5) ? (near_point - (back_1 * (_e26 * vec4(near_point, 1.0)).z)) : _e22.xyz); uint _e44 = _group_1_binding_5_fs.counts.y; vec3 _e45 = fog_integrate(c_26, o_8, dir_5, FOG_SKY_DISTANCE, _e44); float _e49 = _group_1_binding_5_fs.params.z; return mix(c_26, _e45, _e49); } float shadow_factor(uint i_7, vec3 world_5, vec3 n_geo_1, vec3 l_3) { uint part = 0u; uint c_27 = 0u; bool local_29 = false; bool local_30 = false; bool local_31 = false; float vis = 0.0; int dy = -1; int dx = 0; uint kind = _group_0_binding_1_fs.lights[i_7].info.x; vec4 _e14 = _group_0_binding_1_fs.lights[i_7].position; vec3 light_pos = _e14.xyz; uint _e21 = _group_0_binding_1_fs.lights[i_7].info.w; uint slot = min(_e21, 15u); vec4 params = _group_0_binding_2_fs.lights[slot].params; uint first = _group_0_binding_2_fs.lights[slot].info.x; uint _e40 = _group_0_binding_2_fs.lights[slot].info.y; uint count = max(_e40, 1u); mat4x4 _e45 = _group_0_binding_0_fs.view; float view_depth = -((_e45 * vec4(world_5, 1.0)).z); if ((kind == LIGHT_DIRECTIONAL)) { float _e60 = _group_0_binding_2_fs.lights[slot].fade.y; if ((view_depth > _e60)) { return 1.0; } part = (count - 1u); bool loop_init_11 = true; while(true) { if (!loop_init_11) { uint _e79 = c_27; c_27 = (_e79 + 1u); } loop_init_11 = false; uint _e67 = c_27; if ((_e67 < count)) { } else { break; } { uint _e73 = c_27; float _e75 = _group_0_binding_2_fs.lights[slot].splits[_e73]; if ((view_depth <= _e75)) { uint _e77 = c_27; part = _e77; break; } } } } uint _e83 = part; vec4 texel_1 = _group_0_binding_2_fs.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; float t_10 = (texel_1.x + (texel_1.y * distance(world_5, light_pos))); vec3 p_10 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1.0)) * t_10))) + (l_3 * (params.x * t_10))); if ((kind == LIGHT_OMNI)) { vec3 d_13 = (p_10 - light_pos); vec3 a_7 = abs(d_13); if ((a_7.x >= a_7.y)) { local_29 = (a_7.x >= a_7.z); } else { local_29 = false; } bool _e123 = local_29; if (_e123) { part = ((d_13.x >= 0.0) ? 0u : 1u); } else { if ((a_7.y >= a_7.z)) { part = ((d_13.y >= 0.0) ? 2u : 3u); } else { part = ((d_13.z >= 0.0) ? 4u : 5u); } } } uint _e145 = part; uint tile_1 = min((first + min(_e145, (count - 1u))), 15u); mat4x4 _e156 = _group_0_binding_2_fs.tiles[tile_1].view_proj; vec4 clip = (_e156 * vec4(p_10, 1.0)); if ((clip.w <= 0.0)) { return 1.0; } vec3 ndc = (clip.xyz / vec3(clip.w)); if (!((abs(ndc.x) > 1.0))) { local_30 = (abs(ndc.y) > 1.0); } else { local_30 = true; } bool _e180 = local_30; if (!(_e180)) { local_31 = (ndc.z > 1.0); } else { local_31 = true; } bool _e188 = local_31; if (_e188) { return 1.0; } vec4 rect = _group_0_binding_2_fs.tiles[tile_1].rect; vec2 uv_6 = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); vec2 auv = (rect.xy + (uv_6 * rect.zw)); float texel_uv = _group_0_binding_2_fs.atlas.x; vec2 lo_5 = (rect.xy + vec2((0.5 * texel_uv))); vec2 hi_4 = ((rect.xy + rect.zw) - vec2((0.5 * texel_uv))); float r_8 = params.z; if ((r_8 <= 0.0)) { float _e235 = textureLod(_group_0_binding_3_fs, vec3(clamp(auv, lo_5, hi_4), ndc.z), 0.0); vis = _e235; } else { float spread = (r_8 * texel_uv); bool loop_init_12 = true; while(true) { if (!loop_init_12) { int _e265 = dy; dy = (_e265 + 1); } loop_init_12 = false; int _e239 = dy; if ((_e239 <= 1)) { } else { break; } { dx = -1; bool loop_init_13 = true; while(true) { if (!loop_init_13) { int _e262 = dx; dx = (_e262 + 1); } loop_init_13 = false; int _e244 = dx; if ((_e244 <= 1)) { } else { break; } { int _e247 = dx; int _e249 = dy; vec2 tap = clamp((auv + (vec2(float(_e247), float(_e249)) * spread)), lo_5, hi_4); float _e255 = vis; float _e259 = textureLod(_group_0_binding_3_fs, vec3(tap, ndc.z), 0.0); vis = (_e255 + _e259); } } } } float _e267 = vis; vis = (_e267 / 9.0); } if ((kind == LIGHT_DIRECTIONAL)) { vec4 fade_1 = _group_0_binding_2_fs.lights[slot].fade; float _e277 = vis; vis = mix(_e277, 1.0, smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return mix(1.0, _e283, params.w); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_8 = abs(d_8); if ((a_8.x >= a_8.y)) { local_32 = (a_8.x >= a_8.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_8.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_8.y >= a_8.z)) { ma = a_8.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 probe_texel(uint row, vec3 fuv, uint level_1) { uint _e6 = _group_0_binding_7_fs.counts.z; float n_14 = float(max((_e6 >> level_1), 1u)); float lo_6 = (0.5 / n_14); float u_1 = clamp(fuv.y, lo_6, (1.0 - lo_6)); float v_9 = clamp(fuv.z, lo_6, (1.0 - lo_6)); vec2 uv_7 = vec2(((fuv.x + u_1) / 6.0), ((float(row) + v_9) / 8.0)); vec4 _e33 = textureLod(_group_3_binding_6_fs, vec2(uv_7), float(level_1)); return _e33.xyz; } vec3 probe_sample(uint row_1, vec3 d_9, float lod) { bool local_33 = false; uint _e6 = _group_0_binding_7_fs.counts.y; uint levels = max(_e6, 1u); float l_10 = clamp(lod, 0.0, float((levels - 1u))); uint m0_ = uint(l_10); float t_11 = (l_10 - float(m0_)); vec3 _e17 = probe_face_uv(d_9); vec3 _e18 = probe_texel(row_1, _e17, m0_); if (!((t_11 <= 0.0))) { local_33 = ((m0_ + 1u) >= levels); } else { local_33 = true; } bool _e28 = local_33; if (_e28) { return _e18; } vec3 _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1.0 - t_11)) + (_e34 * t_11)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_11 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_17 = p_5.extents.xyz; float d_14 = min((e_17.x - abs(l_11.x)), min((e_17.y - abs(l_11.y)), (e_17.z - abs(l_11.z)))); if ((d_14 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_14 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_15 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_15; } vec3 o_9 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_18 = p_6.extents.xyz; float _e24 = probe_exit(o_9.x, d_15.x, e_18.x); float _e28 = probe_exit(o_9.y, d_15.y, e_18.y); float _e32 = probe_exit(o_9.z, d_15.z, e_18.z); float t_12 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_9 + (d_15 * t_12)) - p_6.offset.xyz); } vec4 probe_reflection(vec3 world_8, vec3 r_2, float roughness_2, uint probes) { vec3 acc = vec3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = _group_0_binding_7_fs.counts.x; uint count_1 = min(_e12, MAX_PROBES); uint _e18 = _group_0_binding_7_fs.counts.y; float lod_1 = (roughness_2 * float((max(_e18, 1u) - 1u))); bool loop_init_14 = true; while(true) { if (!loop_init_14) { uint _e57 = i_8; i_8 = (_e57 + 1u); } loop_init_14 = false; uint _e27 = i_8; if ((_e27 < count_1)) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_11 = _group_0_binding_7_fs.probes[_e31]; if ((((probes >> p_11.info.w) & 1u) == 0u)) { continue; } float _e41 = probe_weight(p_11, world_8); if ((_e41 <= 0.0)) { continue; } vec3 _e44 = acc; vec3 _e47 = probe_lookup(p_11, world_8, r_2); vec3 _e48 = probe_sample(p_11.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_11.offset.w) * _e41)); float _e54 = w_sum; w_sum = (_e54 + _e41); } } float _e59 = w_sum; if ((_e59 > 1.0)) { vec3 _e62 = acc; float _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1.0; } vec3 _e67 = acc; float _e68 = w_sum; return vec4(_e67, _e68); } vec4 probe_ambient(vec3 world_9, vec3 n_10, uint probes_1) { vec3 acc_1 = vec3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_34 = false; vec3 c_28 = vec3(0.0); uint _e11 = _group_0_binding_7_fs.counts.x; uint count_2 = min(_e11, MAX_PROBES); uint _e17 = _group_0_binding_7_fs.counts.y; uint last = (max(_e17, 1u) - 1u); bool loop_init_15 = true; while(true) { if (!loop_init_15) { uint _e73 = i_9; i_9 = (_e73 + 1u); } loop_init_15 = false; uint _e24 = i_9; if ((_e24 < count_2)) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_12 = _group_0_binding_7_fs.probes[_e28]; if (!((((probes_1 >> p_12.info.w) & 1u) == 0u))) { local_34 = (p_12.info.y == PROBE_AMBIENT_DISABLED); } else { local_34 = true; } bool _e46 = local_34; if (_e46) { continue; } float _e47 = probe_weight(p_12, world_9); if ((_e47 <= 0.0)) { continue; } c_28 = p_12.ambient.xyz; if ((p_12.info.y == PROBE_AMBIENT_ENVIRONMENT)) { vec3 _e64 = probe_face_uv((p_12.to_local * vec4(n_10, 0.0)).xyz); vec3 _e65 = probe_texel(p_12.info.w, _e64, last); c_28 = _e65; } vec3 _e66 = acc_1; vec3 _e67 = c_28; acc_1 = (_e66 + (_e67 * _e47)); float _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } } float _e75 = w_sum_1; if ((_e75 > 1.0)) { vec3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1.0; } vec3 _e83 = acc_1; float _e84 = w_sum_1; return vec4(_e83, _e84); } vec3 lit_with(VsOut in_21, bool front_1, Samples s_6, bool baked_1, vec3 baked_light_1) { vec3 n_mat = vec3(0.0); vec3 t_2 = vec3(0.0); DecalSurface surf_1 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); vec3 c_29 = vec3(0.0); uint k_10 = 0u; bool local_35 = false; vec3 l_4 = vec3(0.0); float atten_1 = 0.0; vec3 radiance_3 = vec3(0.0); vec3 ambient = vec3(0.0); vec3 diffuse_amb = vec3(0.0); vec3 spec_amb = vec3(0.0); vec3 dif = vec3(0.0); vec3 dif_1 = vec3(0.0); vec3 dif_2 = vec3(0.0); bool local_36 = false; vec3 n_geo_2 = (front_1 ? normalize(in_21.normal) : -(normalize(in_21.normal))); n_mat = n_geo_2; uint _e16 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e16 & T_NORMAL) != 0u) : false)) { t_2 = in_21.tangent.xyz; vec3 _e26 = t_2; vec3 _e27 = n_mat; vec3 _e28 = n_mat; vec3 _e29 = t_2; t_2 = normalize((_e26 - (_e27 * dot(_e28, _e29)))); vec3 _e34 = n_mat; vec3 _e35 = t_2; vec3 b_4 = (cross(_e34, _e35) * in_21.tangent.w); vec3 _e40 = t_2; vec3 _e48 = n_mat; n_mat = normalize((((_e40 * s_6.normal.x) + (b_4 * s_6.normal.y)) + (_e48 * s_6.normal.z))); } float _e59 = _group_2_binding_0_fs.factors.x; float _e69 = _group_2_binding_0_fs.factors.y; vec3 _e77 = n_mat; surf_1 = DecalSurface(s_6.base.xyz, clamp((_e59 * s_6.mr.z), 0.0, 1.0), clamp((_e69 * s_6.mr.y), 0.045, 1.0), s_6.occlusion, _e77, s_6.emission); uint _e85 = _group_1_binding_0_fs.decals.z; if ((SPEC_DECALS ? (_e85 > 0u) : false)) { DecalSurface _e91 = surf_1; DecalSurface _e92 = apply_decals(in_21.world, n_geo_2, _e91); surf_1 = _e92; } float metallic_2 = surf_1.metallic; float roughness_8 = surf_1.roughness; float a2_5 = (((roughness_8 * roughness_8) * roughness_8) * roughness_8); vec3 base_2 = surf_1.base; vec3 diffuse_5 = (base_2 * (1.0 - metallic_2)); vec3 f0_7 = mix(vec3(0.04), base_2, metallic_2); vec3 n_15 = surf_1.normal; float _e114 = _group_0_binding_0_fs.view[0][2]; float _e119 = _group_0_binding_0_fs.view[1][2]; float _e124 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e114, _e119, _e124); vec4 _e128 = _group_0_binding_0_fs.camera_pos; float _e137 = _group_0_binding_0_fs.camera_pos.w; vec3 v_10 = ((_e137 > 0.5) ? normalize(view_dir) : normalize((_e128.xyz - in_21.world))); uint _e144 = object_light_count(); bool loop_init_16 = true; while(true) { if (!loop_init_16) { uint _e248 = k_10; k_10 = (_e248 + 1u); } loop_init_16 = false; uint _e148 = k_10; if ((SPEC_LIGHTS ? (_e148 < _e144) : false)) { } else { break; } { uint _e152 = k_10; uint _e153 = object_light(_e152); LightU li_1 = _group_0_binding_1_fs.lights[_e153]; if (baked_1) { local_35 = (li_1.info.z == LIGHT_BAKED_STATIC); } else { local_35 = false; } bool _e165 = local_35; if (_e165) { continue; } uint kind_1 = li_1.info.x; l_4 = vec3(0.0); atten_1 = 1.0; if ((kind_1 == LIGHT_DIRECTIONAL)) { l_4 = -(li_1.direction.xyz); } else { vec3 rel_1 = (li_1.position.xyz - in_21.world); float d_16 = length(rel_1); l_4 = (rel_1 / vec3(max(d_16, 1e-6))); float _e190 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e190; if ((kind_1 == LIGHT_SPOT)) { float cone = li_1.spot.x; vec3 _e195 = l_4; float scos = max(dot(-(_e195), li_1.direction.xyz), cone); float rim_3 = max(0.0001, ((1.0 - scos) / max((1.0 - cone), 1e-6))); float _e210 = atten_1; atten_1 = (_e210 * (1.0 - pow(rim_3, li_1.spot.y))); } } float _e217 = atten_1; if ((_e217 > 0.0)) { float _e222 = atten_1; radiance_3 = (li_1.color.xyz * _e222); if ((SPEC_SHADOWS ? (li_1.info.y == LIGHT_SHADOWED) : false)) { float _e234 = atten_1; vec3 _e236 = l_4; float _e237 = shadow_factor(_e153, in_21.world, n_geo_2, _e236); radiance_3 = (li_1.color.xyz * (_e234 * _e237)); } vec3 _e240 = c_29; vec3 _e241 = l_4; vec3 _e242 = radiance_3; vec3 _e245 = light_specular(n_15, v_10, _e241, _e242, diffuse_5, f0_7, a2_5, li_1.spot.z); c_29 = (_e240 + _e245); } } } float nv_9 = max(dot(n_15, v_10), 0.0001); vec3 f_amb_1 = (f0_7 + ((max(vec3((1.0 - roughness_8)), f0_7) - f0_7) * pow((1.0 - nv_9), 5.0))); vec4 _e264 = gi_diffuse(n_15, baked_1, baked_light_1); uint _e270 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e270 & SKY_IBL) != 0u) : false)) { float _e280 = _group_0_binding_5_fs.ibl.x; float _e284 = _group_0_binding_5_fs.sun.w; float scale_1 = (_e280 * _e284); vec4 _e288 = _group_0_binding_5_fs.ambient; diffuse_amb = _e288.xyz; uint _e294 = _group_0_binding_5_fs.flags.x; if (((_e294 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e301 = _group_0_binding_5_fs.ambient; vec3 _e303 = sky_dir(n_15); vec3 _e304 = sh_irradiance(_e303); float _e309 = _group_0_binding_5_fs.ambient.w; diffuse_amb = mix(_e301.xyz, (_e304 * scale_1), _e309); } if ((_e264.w > 0.0)) { diffuse_amb = _e264.xyz; } vec4 _e317 = _group_0_binding_5_fs.ambient; spec_amb = _e317.xyz; uint _e323 = _group_0_binding_5_fs.flags.x; if (((_e323 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e330 = sky_dir(reflect(-(v_10), n_15)); vec3 _e331 = radiance_2(_e330, roughness_8); spec_amb = (_e331 * scale_1); } else { uint _e336 = _group_0_binding_5_fs.flags.x; if (((_e336 & SKY_REFLECT_OFF) != 0u)) { spec_amb = vec3(0.0); } } vec2 _e343 = env_brdf_approx(roughness_8, nv_9); uint _e348 = _group_0_binding_7_fs.counts.x; if ((SPEC_PROBES ? (_e348 > 0u) : false)) { uint _e359 = _group_1_binding_0_fs.extra.z; vec4 _e360 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e359); vec3 _e361 = spec_amb; vec3 spec_4 = ((_e361 * (1.0 - _e360.w)) + _e360.xyz); vec3 _e368 = diffuse_amb; dif = _e368; if ((_e264.w <= 0.0)) { uint _e377 = _group_1_binding_0_fs.extra.z; vec4 _e378 = probe_ambient(in_21.world, n_15, _e377); vec3 _e379 = diffuse_amb; dif = ((_e379 * (1.0 - _e378.w)) + _e378.xyz); } vec3 _e386 = dif; ambient = ((diffuse_5 * _e386) + (spec_4 * ((f0_7 * _e343.x) + vec3((_e343.y * clamp((50.0 * f0_7.y), metallic_2, 1.0)))))); } else { vec3 _e401 = diffuse_amb; vec3 _e403 = spec_amb; ambient = ((diffuse_5 * _e401) + (_e403 * ((f0_7 * _e343.x) + vec3((_e343.y * clamp((50.0 * f0_7.y), metallic_2, 1.0)))))); } } else { uint _e420 = _group_0_binding_1_fs.counts.y; if (((_e420 & ENV_AMBIENT_SKY) != 0u)) { vec4 _e427 = _group_0_binding_1_fs.up; vec3 up_2 = _e427.xyz; vec4 _e431 = _group_0_binding_1_fs.sky_top; vec4 _e435 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e431.xyz + _e435.xyz) * 0.5); vec4 _e442 = _group_0_binding_1_fs.ground_horizon; vec4 _e446 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e442.xyz + _e446.xyz) * 0.5); vec3 irradiance_1 = mix(ground_avg, sky_avg, clamp(((dot(n_15, up_2) * 0.5) + 0.5), 0.0, 1.0)); vec3 _e462 = sky(reflect(-(v_10), n_15)); vec3 blurred_1 = mix(_e462, sky_avg, roughness_8); uint _e467 = _group_0_binding_7_fs.counts.x; if ((_e467 > 0u)) { uint _e476 = _group_1_binding_0_fs.extra.z; vec4 _e477 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e476); float _e481 = _group_0_binding_1_fs.ambient.w; vec3 spec_5 = (((blurred_1 * _e481) * (1.0 - _e477.w)) + _e477.xyz); dif_1 = _e264.xyz; if ((_e264.w <= 0.0)) { uint _e498 = _group_1_binding_0_fs.extra.z; vec4 _e499 = probe_ambient(in_21.world, n_15, _e498); float _e503 = _group_0_binding_1_fs.ambient.w; dif_1 = (((irradiance_1 * _e503) * (1.0 - _e499.w)) + _e499.xyz); } vec3 _e511 = dif_1; ambient = ((diffuse_5 * _e511) + (spec_5 * f_amb_1)); } else { if ((_e264.w > 0.0)) { float _e524 = _group_0_binding_1_fs.ambient.w; ambient = ((diffuse_5 * _e264.xyz) + ((blurred_1 * f_amb_1) * _e524)); } else { float _e533 = _group_0_binding_1_fs.ambient.w; ambient = (((diffuse_5 * irradiance_1) + (blurred_1 * f_amb_1)) * _e533); } } } else { uint _e538 = _group_0_binding_7_fs.counts.x; if ((_e538 > 0u)) { uint _e547 = _group_1_binding_0_fs.extra.z; vec4 _e548 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e547); vec4 _e551 = _group_0_binding_1_fs.ambient; vec3 spec_6 = ((_e551.xyz * (1.0 - _e548.w)) + _e548.xyz); dif_2 = _e264.xyz; if ((_e264.w <= 0.0)) { uint _e568 = _group_1_binding_0_fs.extra.z; vec4 _e569 = probe_ambient(in_21.world, n_15, _e568); vec4 _e572 = _group_0_binding_1_fs.ambient; dif_2 = ((_e572.xyz * (1.0 - _e569.w)) + _e569.xyz); } vec3 _e580 = dif_2; ambient = ((diffuse_5 * _e580) + (spec_6 * f_amb_1)); } else { if ((_e264.w > 0.0)) { vec4 _e591 = _group_0_binding_1_fs.ambient; ambient = ((diffuse_5 * _e264.xyz) + (_e591.xyz * f_amb_1)); } else { vec4 _e597 = _group_0_binding_1_fs.ambient; ambient = (_e597.xyz * (diffuse_5 + f_amb_1)); } } } } uint _e605 = _group_0_binding_1_fs.counts.y; if (((_e605 & ENV_SSAO) != 0u)) { uint _e615 = _group_2_binding_0_fs.flags.y; local_36 = (_e615 != ALPHA_BLEND); } else { local_36 = false; } bool _e619 = local_36; if ((SPEC_SSAO ? _e619 : false)) { vec4 _e628 = texelFetch(_group_0_binding_6_fs, ivec2(floor(in_21.clip.xy)), 0); float ssao = _e628.x; vec3 _e630 = c_29; float _e632 = surf_1.occlusion; float _e637 = _group_0_binding_1_fs.tone.z; float _e641 = _group_0_binding_1_fs.tone.w; c_29 = (_e630 * mix(1.0, min(ssao, _e632), (_e637 * _e641))); vec3 _e646 = c_29; vec3 _e647 = ambient; float _e649 = surf_1.occlusion; c_29 = (_e646 + (_e647 * min(_e649, ssao))); } else { vec3 _e653 = c_29; vec3 _e654 = ambient; float _e656 = surf_1.occlusion; c_29 = (_e653 + (_e654 * _e656)); } vec3 _e659 = c_29; vec3 _e661 = surf_1.emission; c_29 = (_e659 + _e661); uint _e667 = _group_0_binding_5_fs.flags.x; if ((SPEC_FOG ? ((_e667 & SKY_FOG) != 0u) : false)) { vec3 _e674 = c_29; vec3 _e677 = surface_fog(_e674, in_21.world, -(v_10)); c_29 = _e677; } uint _e682 = _group_1_binding_0_fs.decals.w; if ((SPEC_FOG_VOLUMES ? (_e682 != 0u) : false)) { vec3 _e687 = c_29; uint _e692 = _group_1_binding_0_fs.decals.w; vec3 _e693 = fog_volumes(_e687, in_21.world, _e692); c_29 = _e693; } vec3 _e694 = c_29; vec3 _e695 = tonemap(_e694); return _e695; } vec3 lit(VsOut in_22, bool front_2, Samples s_7) { vec3 _e6 = lit_with(in_22, front_2, s_7, false, vec3(0.0)); return _e6; } vec4 lit_output(vec4 c_30) { uint _e4 = _group_0_binding_1_fs.counts.y; if (((_e4 & ENV_HDR) != 0u)) { return vec4(max(c_30.xyz, vec3(0.0)), clamp(c_30.w, 0.0, 1.0)); } vec4 _e18 = target_color(c_30); return _e18; } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_fs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_fs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_fs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_fs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_fs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_fs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_fs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_fs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_fs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_fs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec2 ext_uv(uint s_8, vec2 uv0_, vec2 uv1_5) { vec4 r0_ = _group_2_binding_0_fs.xf[(s_8 * 2u)]; vec4 r1_ = _group_2_binding_0_fs.xf[((s_8 * 2u) + 1u)]; vec2 uv_8 = ((r0_.w > 0.5) ? uv1_5 : uv0_); return vec2((dot(r0_.xy, uv_8) + r0_.z), (dot(r1_.xy, uv_8) + r1_.z)); } float ext_where(uint s_9) { float _e9 = _group_2_binding_0_fs.xf[((s_9 * 2u) + 1u)].w; return _e9; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } bool ext_cut(ExtSamples s_12) { bool local_37 = false; uint _e5 = _group_2_binding_0_fs.flags.y; if ((_e5 == ALPHA_MASK)) { float _e15 = _group_2_binding_0_fs.emission.w; local_37 = (s_12.base.w < _e15); } else { local_37 = false; } bool _e18 = local_37; return (SPEC_ALPHA_MASK ? _e18 : false); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_6 = (at_1 * ab); vec3 f_6 = vec3((ab * th), (at_1 * bh), (a2_6 * nh_1)); float w2_ = (a2_6 / dot(f_6, f_6)); return (((a2_6 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_10 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_9 = mix(21.5473, 25.3245, o_10); float b_5 = mix(3.82987, 3.32435, o_10); float c_40 = mix(0.19823, 0.16801, o_10); float d_17 = mix(-1.9776, -1.27393, o_10); float e_19 = mix(-4.32054, -4.85967, o_10); return (((a_9 / (1.0 + (b_5 * pow(max(x_3, 1e-6), c_40)))) + (d_17 * x_3)) + e_19); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_7 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y_1 = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_14 = min(int(floor(x_7)), 14); int j_1 = min(int(floor(y_1)), 6); float fx = (x_7 - float(i_14)); float fy = (y_1 - float(j_1)); float _e166 = t_3[((j_1 * 16) + i_14)]; float _e173 = t_3[(((j_1 * 16) + i_14) + 1)]; float a_10 = mix(_e166, _e173, fx); float _e181 = t_3[(((j_1 + 1) * 16) + i_14)]; float _e190 = t_3[((((j_1 + 1) * 16) + i_14) + 1)]; float b_6 = mix(_e181, _e190, fx); return mix(a_10, b_6, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_9 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_9 * r_9); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_20 = (outside / film); float sin2sq = ((k_20 * k_20) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_1 = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_1 + ((1.0 - r0_1) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init_17 = true; while(true) { if (!loop_init_17) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init_17 = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir_1 = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir_1) : normalize((_e19.xyz - world_10))); } ExtCtx ext_ctx(VsOutExt in_26, bool front_3, ExtSamples s_13, bool decals) { ExtCtx e_4 = ExtCtx(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0), 0.0, vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), false, 0.0, vec2(0.0), 0.0, 0.0, vec3(0.0)); vec3 t_4 = vec3(0.0); DecalSurface surf_2 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); bool local_38 = false; vec3 n_geo_3 = (front_3 ? normalize(in_26.normal) : -(normalize(in_26.normal))); t_4 = in_26.tangent.xyz; vec3 _e14 = t_4; vec3 _e15 = t_4; t_4 = normalize((_e14 - (n_geo_3 * dot(n_geo_3, _e15)))); vec3 _e20 = t_4; vec3 b_7 = (cross(n_geo_3, _e20) * in_26.tangent.w); e_4.n_geo = n_geo_3; e_4.n = n_geo_3; uint _e31 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e31 & T_NORMAL) != 0u) : false)) { vec3 _e39 = t_4; e_4.n = normalize((((_e39 * s_13.normal.x) + (b_7 * s_13.normal.y)) + (n_geo_3 * s_13.normal.z))); } e_4.nc = n_geo_3; if (s_13.clearcoat_mapped) { vec3 _e55 = t_4; e_4.nc = normalize((((_e55 * s_13.clearcoat_normal.x) + (b_7 * s_13.clearcoat_normal.y)) + (n_geo_3 * s_13.clearcoat_normal.z))); } vec3 _e80 = e_4.n; surf_2 = DecalSurface(s_13.base.xyz, clamp(s_13.metallic, 0.0, 1.0), clamp(s_13.roughness, 0.045, 1.0), s_13.occlusion, _e80, s_13.emission); if ((SPEC_DECALS ? decals : false)) { DecalSurface _e88 = surf_2; DecalSurface _e89 = apply_decals(in_26.world, n_geo_3, _e88); surf_2 = _e89; } vec3 _e92 = surf_2.normal; e_4.n = _e92; float _e95 = surf_2.occlusion; e_4.occlusion = _e95; vec3 _e98 = surf_2.emission; e_4.emission = _e98; vec3 _e101 = ext_view(in_26.world); e_4.v = _e101; e_4.world = in_26.world; vec3 _e106 = e_4.n; vec3 _e108 = e_4.v; e_4.nv = max(dot(_e106, _e108), 0.0001); float _e114 = surf_2.metallic; e_4.metallic = _e114; float _e117 = surf_2.roughness; e_4.roughness = _e117; float _e120 = e_4.roughness; float _e122 = e_4.roughness; e_4.alpha = (_e120 * _e122); float _e126 = e_4.alpha; float _e128 = e_4.alpha; e_4.a2_ = (_e126 * _e128); vec3 _e132 = surf_2.base; e_4.base = _e132; vec3 _e135 = e_4.base; float _e137 = e_4.metallic; e_4.diffuse = (_e135 * (1.0 - _e137)); float _e146 = _group_2_binding_0_fs.ext[1].x; e_4.ior = max(_e146, 1.0); float _e150 = e_4.ior; float _e154 = e_4.ior; float r_10 = ((_e150 - 1.0) / (_e154 + 1.0)); float spec_7 = max(s_13.specular, 0.0); vec3 dielectric_f0_ = (min((vec3((r_10 * r_10)) * s_13.specular_color), vec3(1.0)) * spec_7); vec3 _e171 = e_4.base; float _e173 = e_4.metallic; e_4.f0_ = mix(dielectric_f0_, _e171, _e173); float _e180 = e_4.metallic; e_4.f90_ = mix(vec3(spec_7), vec3(1.0), _e180); e_4.iridescence = clamp(s_13.iridescence, 0.0, 1.0); vec3 _e189 = e_4.f0_; e_4.irid_f = _e189; float _e192 = e_4.iridescence; if ((SPEC_IRIDESCENCE ? (_e192 > 0.0) : false)) { float _e203 = _group_2_binding_0_fs.ext[5].y; float _e205 = e_4.nv; vec3 _e208 = e_4.f0_; vec3 _e209 = eval_iridescence(1.0, _e203, _e205, s_13.iridescence_thickness, _e208); e_4.irid_f = _e209; } e_4.aniso = clamp(s_13.anisotropy, 0.0, 1.0); vec3 _e216 = t_4; e_4.aniso_t = normalize(((_e216 * s_13.anisotropy_dir.x) + (b_7 * s_13.anisotropy_dir.y))); vec3 _e227 = e_4.aniso_t; e_4.aniso_b = normalize(cross(n_geo_3, _e227)); e_4.clearcoat = clamp(s_13.clearcoat, 0.0, 1.0); e_4.cc_roughness = clamp(s_13.clearcoat_roughness, 0.045, 1.0); float _e241 = e_4.cc_roughness; float _e243 = e_4.cc_roughness; float cca = (_e241 * _e243); e_4.cc_a2_ = (cca * cca); e_4.sheen = max(s_13.sheen_color, vec3(0.0)); e_4.sheen_roughness = clamp(s_13.sheen_roughness, 0.07, 1.0); float _e259 = e_4.sheen_roughness; float _e261 = e_4.sheen_roughness; e_4.sheen_alpha = (_e259 * _e261); e_4.dt = clamp(s_13.diffuse_transmission, 0.0, 1.0); e_4.dt_color = max(s_13.diffuse_transmission_color, vec3(0.0)); e_4.transmission = clamp(s_13.transmission, 0.0, 1.0); float _e280 = e_4.alpha; float _e282 = e_4.ior; e_4.trans_alpha = max((_e280 * clamp(((_e282 * 2.0) - 2.0), 0.0, 1.0)), 0.002); vec4 _e296 = _group_1_binding_0_fs.model[0]; vec4 _e302 = _group_1_binding_0_fs.model[1]; vec4 _e309 = _group_1_binding_0_fs.model[2]; float scale_2 = (((length(_e296.xyz) + length(_e302.xyz)) + length(_e309.xyz)) / 3.0); float dist_1 = (max(s_13.thickness, 0.0) * scale_2); e_4.thin = (dist_1 <= 0.0); e_4.thickness = dist_1; e_4.frag = in_26.clip.xy; e_4.attenuation = vec3(1.0); float _e334 = _group_2_binding_0_fs.ext[1].w; if ((_e334 > 0.0)) { local_38 = (dist_1 > 0.0); } else { local_38 = false; } bool _e342 = local_38; if ((SPEC_VOLUME ? _e342 : false)) { vec4 _e349 = _group_2_binding_0_fs.ext[2]; float _e358 = _group_2_binding_0_fs.ext[1].w; e_4.attenuation = pow(max(_e349.xyz, vec3(1e-6)), vec3((dist_1 / _e358))); } float _e367 = _group_2_binding_0_fs.ext[2].w; e_4.dispersion = _e367; ExtCtx _e368 = e_4; return _e368; } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_6 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_6), 0.0); float vh_5 = max(dot(e_6.v, h_6), 0.0); float nv_10 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_6), dot(e_6.aniso_b, h_6), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_10, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_10, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back_2 = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back_2, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_10, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_3 = (_e175 + _e176); c_33 = (base_3 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_10, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_10, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_6), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec3 ext_irradiance(vec3 n_11, bool lit_mode) { if ((SPEC_MATERIAL_MODE ? !(lit_mode) : false)) { vec3 _e7 = env(n_11.z); return (_e7 * 0.8); } uint _e14 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e14 & SKY_IBL) != 0u) : false)) { float _e24 = _group_0_binding_5_fs.ibl.x; float _e28 = _group_0_binding_5_fs.sun.w; float scale_3 = (_e24 * _e28); uint _e33 = _group_0_binding_5_fs.flags.x; if (((_e33 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e40 = _group_0_binding_5_fs.ambient; vec3 _e42 = sky_dir(n_11); vec3 _e43 = sh_irradiance(_e42); float _e48 = _group_0_binding_5_fs.ambient.w; return mix(_e40.xyz, (_e43 * scale_3), _e48); } vec4 _e52 = _group_0_binding_5_fs.ambient; return _e52.xyz; } uint _e58 = _group_0_binding_1_fs.counts.y; if ((SPEC_AMBIENT_GRADIENT ? ((_e58 & ENV_AMBIENT_SKY) != 0u) : false)) { vec4 _e67 = _group_0_binding_1_fs.sky_top; vec4 _e71 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg_1 = ((_e67.xyz + _e71.xyz) * 0.5); vec4 _e78 = _group_0_binding_1_fs.ground_horizon; vec4 _e82 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg_1 = ((_e78.xyz + _e82.xyz) * 0.5); vec4 _e89 = _group_0_binding_1_fs.up; float _e103 = _group_0_binding_1_fs.ambient.w; return (mix(ground_avg_1, sky_avg_1, clamp(((dot(n_11, _e89.xyz) * 0.5) + 0.5), 0.0, 1.0)) * _e103); } vec4 _e107 = _group_0_binding_1_fs.ambient; return _e107.xyz; } vec3 ext_radiance(vec3 dir_7, float roughness_4, bool lit_mode_1) { if ((SPEC_MATERIAL_MODE ? !(lit_mode_1) : false)) { vec3 _e8 = env(dir_7.z); vec3 _e10 = env(0.0); return mix(_e8, (_e10 * 0.85), roughness_4); } uint _e18 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e18 & SKY_IBL) != 0u) : false)) { float _e28 = _group_0_binding_5_fs.ibl.x; float _e32 = _group_0_binding_5_fs.sun.w; float scale_4 = (_e28 * _e32); uint _e37 = _group_0_binding_5_fs.flags.x; if (((_e37 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e42 = sky_dir(dir_7); vec3 _e43 = radiance_2(_e42, roughness_4); return (_e43 * scale_4); } uint _e48 = _group_0_binding_5_fs.flags.x; if (((_e48 & SKY_REFLECT_OFF) != 0u)) { return vec3(0.0); } vec4 _e57 = _group_0_binding_5_fs.ambient; return _e57.xyz; } uint _e63 = _group_0_binding_1_fs.counts.y; if ((SPEC_AMBIENT_GRADIENT ? ((_e63 & ENV_AMBIENT_SKY) != 0u) : false)) { vec4 _e72 = _group_0_binding_1_fs.sky_top; vec4 _e76 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg_2 = ((_e72.xyz + _e76.xyz) * 0.5); vec3 _e81 = sky(dir_7); float _e86 = _group_0_binding_1_fs.ambient.w; return (mix(_e81, sky_avg_2, roughness_4) * _e86); } vec4 _e90 = _group_0_binding_1_fs.ambient; return _e90.xyz; } vec3 ext_probe_radiance(ExtCtx e_7, vec3 dir_8, float roughness_5, bool lit_mode_2) { bool local_39 = false; vec3 _e4 = ext_radiance(dir_8, roughness_5, lit_mode_2); if (!(!(lit_mode_2))) { uint _e13 = _group_0_binding_7_fs.counts.x; local_39 = (_e13 == 0u); } else { local_39 = true; } bool _e17 = local_39; if ((SPEC_PROBES ? _e17 : true)) { return _e4; } uint _e24 = _group_1_binding_0_fs.extra.z; vec4 _e25 = probe_reflection(e_7.world, dir_8, roughness_5, _e24); return ((_e4 * (1.0 - _e25.w)) + _e25.xyz); } vec3 ext_env_weight(vec3 f0_5, vec3 f90_1, float roughness_6, float nv_5, float metallic, bool lit_mode_3) { bool local_40 = false; if (lit_mode_3) { uint _e12 = _group_0_binding_5_fs.flags.x; local_40 = ((_e12 & SKY_IBL) != 0u); } else { local_40 = false; } bool _e18 = local_40; if ((SPEC_AMBIENT_SKY ? _e18 : false)) { vec2 _e21 = env_brdf_approx(roughness_6, nv_5); return ((f0_5 * _e21.x) + ((f90_1 * _e21.y) * clamp((50.0 * f0_5.y), metallic, 1.0))); } float _e40 = pow5_((1.0 - nv_5)); vec3 f_amb_2 = (f0_5 + ((max((f90_1 * (1.0 - roughness_6)), f0_5) - f0_5) * _e40)); if ((SPEC_MATERIAL_MODE ? !(lit_mode_3) : false)) { return (f_amb_2 * (1.0 - (0.5 * roughness_6))); } return f_amb_2; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_fs.view_proj; vec4 c_41 = (_e3 * vec4(p_7, 1.0)); vec2 ndc_1 = (c_41.xy / vec2(((c_41.w > 1e-6) ? c_41.w : 1e-6))); return vec2(((ndc_1.x * 0.5) + 0.5), (0.5 - (ndc_1.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } vec3 ext_lit_finish(vec3 c_in_1, vec3 world_11) { vec3 c_36 = vec3(0.0); c_36 = c_in_1; uint _e7 = _group_0_binding_5_fs.flags.x; if ((SPEC_FOG ? ((_e7 & SKY_FOG) != 0u) : false)) { vec3 _e14 = c_36; vec3 _e15 = ext_view(world_11); vec3 _e17 = surface_fog(_e14, world_11, -(_e15)); c_36 = _e17; } uint _e22 = _group_1_binding_0_fs.decals.w; if ((SPEC_FOG_VOLUMES ? (_e22 != 0u) : false)) { vec3 _e27 = c_36; uint _e31 = _group_1_binding_0_fs.decals.w; vec3 _e32 = fog_volumes(_e27, world_11, _e31); c_36 = _e32; } vec3 _e33 = c_36; vec3 _e34 = tonemap(_e33); return _e34; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsOut in_3 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6); bool facing = gl_FrontFacing; vec3 c_1 = vec3(0.0); float alpha = 1.0; bool local = false; bool local_1 = false; bool local_2 = false; bool local_3 = false; bool local_4 = false; bool _e2 = mirrored(in_3); bool front_6 = (facing != _e2); Samples _e4 = surface_samples(in_3); if ((SPEC_FACE_FLAGS ? ((in_3.flags & F_HIDDEN) != 0u) : false)) { discard; } float _e16 = emerge_reveal(in_3.world, in_3.clip.xy); if ((SPEC_EMERGE ? (_e16 <= 0.0) : false)) { discard; } vec3 n_world = (front_6 ? normalize(in_3.normal) : -(normalize(in_3.normal))); mat4x4 _e30 = _group_0_binding_0_fs.view; vec3 n_view = normalize((_e30 * vec4(n_world, 0.0)).xyz); uint mode_1 = _group_0_binding_0_fs.params.x; vec3 _e42 = srgb_to_linear(vec3(0.8)); if ((SPEC_OTHER_MODES ? (mode_1 == SHADE_MATCAP) : false)) { uint _e54 = _group_0_binding_0_fs.params.w; vec3 _e55 = matcap(n_view, _e54); c_1 = _e55; } else { if ((SPEC_OTHER_MODES ? (mode_1 == SHADE_NORMALS) : false)) { vec3 _e66 = srgb_to_linear(((n_world * 0.5) + vec3(0.5))); c_1 = _e66; } else { if ((SPEC_OTHER_MODES ? (mode_1 == SHADE_FACE_ORIENT) : false)) { vec3 tint = (front_6 ? vec3(0.0, 0.25, 1.0) : vec3(1.0, 0.0, 0.0)); vec3 _e81 = studio(n_view, _e42); vec3 _e82 = srgb_to_linear(tint); c_1 = mix(_e81, _e82, 0.55); } else { if ((SPEC_OTHER_MODES ? (mode_1 == SHADE_RANDOM) : false)) { vec4 _e92 = _group_1_binding_0_fs.color; vec3 _e94 = studio(n_view, _e92.xyz); c_1 = _e94; } else { if ((SPEC_MATERIAL_MODE ? (mode_1 == SHADE_MATERIAL) : false)) { uint _e104 = _group_2_binding_0_fs.flags.y; if ((_e104 == ALPHA_MASK)) { float _e114 = _group_2_binding_0_fs.emission.w; local = (_e4.base.w < _e114); } else { local = false; } bool _e117 = local; if ((SPEC_ALPHA_MASK ? _e117 : false)) { discard; } uint _e124 = _group_2_binding_0_fs.flags.y; if ((SPEC_ALPHA_BLEND ? (_e124 == ALPHA_BLEND) : false)) { alpha = _e4.base.w; } vec3 _e131 = pbr(in_3, front_6, _e4); c_1 = _e131; } else { if ((SPEC_LIT ? (mode_1 == SHADE_LIT) : false)) { uint _e141 = _group_2_binding_0_fs.flags.y; if ((_e141 == ALPHA_MASK)) { float _e151 = _group_2_binding_0_fs.emission.w; local_1 = (_e4.base.w < _e151); } else { local_1 = false; } bool _e154 = local_1; if ((SPEC_ALPHA_MASK ? _e154 : false)) { discard; } uint _e161 = _group_2_binding_0_fs.flags.y; if ((SPEC_ALPHA_BLEND ? (_e161 == ALPHA_BLEND) : false)) { alpha = _e4.base.w; } vec3 _e168 = lit(in_3, front_6, _e4); c_1 = _e168; } else { if ((SPEC_OTHER_MODES ? (mode_1 == SHADE_UV_CHECKER) : false)) { vec3 _e175 = checker(in_3.uv); vec3 _e176 = studio(n_view, _e175); c_1 = _e176; } else { if ((mode_1 == SHADE_WEIGHTS)) { uint _e185 = _group_1_binding_0_fs.extra.x; local_2 = ((_e185 & OBJ_HAS_WEIGHTS) != 0u); } else { local_2 = false; } bool _e191 = local_2; if ((SPEC_OTHER_MODES ? _e191 : false)) { vec3 _e195 = weight_color(in_3.weight); vec3 _e196 = studio(n_view, _e195); c_1 = _e196; } else { if ((SPEC_OTHER_MODES ? (mode_1 == SHADE_LIGHT_COUNT) : false)) { vec3 _e202 = light_count_color(); vec3 _e203 = srgb_to_linear(_e202); vec3 _e204 = studio(n_view, _e203); c_1 = _e204; } else { if (SPEC_OTHER_MODES) { vec3 _e206 = studio(n_view, _e42); c_1 = _e206; } } } } } } } } } } uint _e211 = _group_1_binding_0_fs.params.w; if ((_e211 == 1u)) { uint _e219 = _group_0_binding_0_fs.params.y; local_3 = ((_e219 & OV_SELECTION) != 0u); } else { local_3 = false; } bool _e225 = local_3; if (_e225) { local_4 = ((in_3.flags & F_SELECTED) != 0u); } else { local_4 = false; } bool _e234 = local_4; if ((SPEC_FACE_FLAGS ? _e234 : false)) { vec3 _e237 = c_1; vec3 _e242 = srgb_to_linear(vec3(1.0, 0.635, 0.0)); c_1 = mix(_e237, _e242, 0.4); } if ((SPEC_LIT ? (mode_1 == SHADE_LIT) : false)) { vec3 _e250 = c_1; vec3 _e251 = item_fade(_e250); vec3 _e252 = emerge_tint(_e251, _e16); float _e253 = alpha; vec4 _e255 = lit_output(vec4(_e252, _e253)); _fs2p_location0 = _e255; return; } vec3 _e256 = c_1; float _e257 = alpha; vec4 _e259 = target_color(vec4(_e256, _e257)); _fs2p_location0 = _e259; return; }  fs_shadowmainc¦#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform ObjectU_block_0Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform MaterialU_block_1Fragment { MaterialU _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; uniform highp sampler2D _group_2_binding_3_fs; uniform highp sampler2D _group_2_binding_4_fs; uniform highp sampler2D _group_2_binding_5_fs; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in float _vs2fs_location5; smooth in vec4 _vs2fs_location6; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_13 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_13, (vec3(4.0) - k_13)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } vec2 material_uv(vec2 uv_3) { vec2 _e1 = tex_uv(uv_3); vec4 _e4 = _group_2_binding_0_fs.uv; vec4 _e9 = _group_2_binding_0_fs.uv; return ((_e1 * _e4.xy) + _e9.zw); } vec4 decoded_base(vec4 t) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_BASE) != 0u)) { vec3 _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } vec3 decoded_emission(vec3 t_1) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_EMISSION) != 0u)) { vec3 _e9 = srgb_to_linear(t_1); return _e9; } return t_1; } Samples sample_material(vec2 uv_in) { Samples s_3 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec2 _e1 = material_uv(uv_in); vec4 _e6 = _group_2_binding_0_fs.base_color; s_3.base = _e6; uint _e11 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e11 & T_BASE) != 0u) : false)) { vec4 _e19 = s_3.base; vec4 _e22 = texture(_group_2_binding_1_fs, vec2(_e1)); vec4 _e23 = decoded_base(_e22); s_3.base = (_e19 * _e23); } s_3.normal = vec3(0.0, 0.0, 1.0); uint _e34 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e34 & T_NORMAL) != 0u) : false)) { vec4 _e44 = texture(_group_2_binding_2_fs, vec2(_e1)); s_3.normal = normalize(((_e44.xyz * 2.0) - vec3(1.0))); } s_3.mr = vec4(1.0); uint _e59 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_MR ? ((_e59 & T_METALLIC_ROUGHNESS) != 0u) : false)) { vec4 _e69 = texture(_group_2_binding_3_fs, vec2(_e1)); s_3.mr = _e69; } vec4 _e73 = _group_2_binding_0_fs.emission; s_3.emission = _e73.xyz; uint _e79 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e79 & T_EMISSION) != 0u) : false)) { vec3 _e87 = s_3.emission; vec4 _e90 = texture(_group_2_binding_4_fs, vec2(_e1)); vec3 _e92 = decoded_emission(_e90.xyz); s_3.emission = (_e87 * _e92); } s_3.occlusion = 1.0; uint _e100 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e100 & T_OCCLUSION) != 0u) : false)) { vec4 _e110 = texture(_group_2_binding_5_fs, vec2(_e1)); s_3.occlusion = _e110.x; } Samples _e112 = s_3; return _e112; } Samples surface_samples(VsOut in_19) { Samples s_4 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec4 c_11 = vec4(0.0); Samples _e2 = sample_material(in_19.uv); s_4 = _e2; uint _e8 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e8 & MAT_VERTEX_COLOR) != 0u) : false)) { c_11 = in_19.color; uint _e20 = _group_2_binding_0_fs.flags.w; if (((_e20 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e25 = c_11; vec3 _e27 = srgb_to_linear(_e25.xyz); float _e29 = c_11.w; c_11 = vec4(_e27, _e29); } vec4 _e33 = s_4.base; vec4 _e34 = c_11; s_4.base = (_e33 * _e34); } Samples _e36 = s_4; return _e36; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_13 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_13 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float d_13 = min((e_14.x - abs(l_10.x)), min((e_14.y - abs(l_10.y)), (e_14.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_15 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_15.x); float _e28 = probe_exit(o_7.y, d_14.y, e_15.y); float _e32 = probe_exit(o_7.z, d_14.z, e_15.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } vec2 ext_uv(uint s_8, vec2 uv0_, vec2 uv1_5) { vec4 r0_ = _group_2_binding_0_fs.xf[(s_8 * 2u)]; vec4 r1_ = _group_2_binding_0_fs.xf[((s_8 * 2u) + 1u)]; vec2 uv_5 = ((r0_.w > 0.5) ? uv1_5 : uv0_); return vec2((dot(r0_.xy, uv_5) + r0_.z), (dot(r1_.xy, uv_5) + r1_.z)); } float ext_where(uint s_9) { float _e9 = _group_2_binding_0_fs.xf[((s_9 * 2u) + 1u)].w; return _e9; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } bool ext_cut(ExtSamples s_12) { bool local_37 = false; uint _e5 = _group_2_binding_0_fs.flags.y; if ((_e5 == ALPHA_MASK)) { float _e15 = _group_2_binding_0_fs.emission.w; local_37 = (s_12.base.w < _e15); } else { local_37 = false; } bool _e18 = local_37; return (SPEC_ALPHA_MASK ? _e18 : false); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_4 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_4 * nh_1)); float w2_ = (a2_4 / dot(f_4, f_4)); return (((a2_4 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_8 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_4 = mix(21.5473, 25.3245, o_8); float b_3 = mix(3.82987, 3.32435, o_8); float c_37 = mix(0.19823, 0.16801, o_8); float d_15 = mix(-1.9776, -1.27393, o_8); float e_16 = mix(-4.32054, -4.85967, o_8); return (((a_4 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_37)))) + (d_15 * x_3)) + e_16); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_5 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_5, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_7 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_7 * r_7); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_14 = (outside / film); float sin2sq = ((k_14 * k_14) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_1 = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_1 + ((1.0 - r0_1) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_8 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_8, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_8, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_8, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_1 = (_e175 + _e176); c_33 = (base_1 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_8, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_8, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsOut in_4 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6); bool local_5 = false; Samples _e1 = surface_samples(in_4); if (((in_4.flags & F_HIDDEN) != 0u)) { discard; } float _e10 = emerge_reveal(in_4.world, vec2(-1.0)); if ((_e10 <= 0.0)) { discard; } uint _e17 = _group_2_binding_0_fs.flags.y; if ((_e17 == ALPHA_MASK)) { float _e27 = _group_2_binding_0_fs.emission.w; local_5 = (_e1.base.w < _e27); } else { local_5 = false; } bool _e30 = local_5; if ((SPEC_ALPHA_MASK ? _e30 : false)) { discard; } else { return; } } fs_idmainwÍ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform MaterialU_block_2Fragment { MaterialU _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; uniform highp sampler2D _group_2_binding_3_fs; uniform highp sampler2D _group_2_binding_4_fs; uniform highp sampler2D _group_2_binding_5_fs; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in float _vs2fs_location5; smooth in vec4 _vs2fs_location6; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec3 checker(vec2 uv_1) { vec3 c_10 = vec3(0.0); float s_18 = _group_0_binding_0_fs.fparams.y; vec2 cell = floor((uv_1 * s_18)); ivec2 ci = ivec2(cell); int odd = ((ci.x + ci.y) & 1); uint k_15 = ((uint(ci.x) * 73856093u) ^ (uint(ci.y) * 19349663u)); float hue = float((k_15 % 360u)); float value = ((odd == 1) ? 0.4 : 0.74); vec3 _e31 = hsv(hue, 0.18, value); c_10 = _e31; vec2 tile = abs((fract(uv_1) - vec2(0.5))); vec2 _e38 = fwidth(uv_1); vec2 w_1 = ((_e38 * 1.0) + vec2(0.0001)); bool border = any(greaterThan(tile, (vec2(0.5) - w_1))); vec3 _e49 = c_10; vec3 _e50 = c_10; c_10 = (border ? (_e50 * 0.35) : _e49); vec3 _e54 = c_10; vec3 _e55 = srgb_to_linear(_e54); return _e55; } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } vec2 material_uv(vec2 uv_3) { vec2 _e1 = tex_uv(uv_3); vec4 _e4 = _group_2_binding_0_fs.uv; vec4 _e9 = _group_2_binding_0_fs.uv; return ((_e1 * _e4.xy) + _e9.zw); } vec4 decoded_base(vec4 t) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_BASE) != 0u)) { vec3 _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } vec3 decoded_emission(vec3 t_1) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_EMISSION) != 0u)) { vec3 _e9 = srgb_to_linear(t_1); return _e9; } return t_1; } Samples sample_material(vec2 uv_in) { Samples s_3 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec2 _e1 = material_uv(uv_in); vec4 _e6 = _group_2_binding_0_fs.base_color; s_3.base = _e6; uint _e11 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e11 & T_BASE) != 0u) : false)) { vec4 _e19 = s_3.base; vec4 _e22 = texture(_group_2_binding_1_fs, vec2(_e1)); vec4 _e23 = decoded_base(_e22); s_3.base = (_e19 * _e23); } s_3.normal = vec3(0.0, 0.0, 1.0); uint _e34 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e34 & T_NORMAL) != 0u) : false)) { vec4 _e44 = texture(_group_2_binding_2_fs, vec2(_e1)); s_3.normal = normalize(((_e44.xyz * 2.0) - vec3(1.0))); } s_3.mr = vec4(1.0); uint _e59 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_MR ? ((_e59 & T_METALLIC_ROUGHNESS) != 0u) : false)) { vec4 _e69 = texture(_group_2_binding_3_fs, vec2(_e1)); s_3.mr = _e69; } vec4 _e73 = _group_2_binding_0_fs.emission; s_3.emission = _e73.xyz; uint _e79 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e79 & T_EMISSION) != 0u) : false)) { vec3 _e87 = s_3.emission; vec4 _e90 = texture(_group_2_binding_4_fs, vec2(_e1)); vec3 _e92 = decoded_emission(_e90.xyz); s_3.emission = (_e87 * _e92); } s_3.occlusion = 1.0; uint _e100 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e100 & T_OCCLUSION) != 0u) : false)) { vec4 _e110 = texture(_group_2_binding_5_fs, vec2(_e1)); s_3.occlusion = _e110.x; } Samples _e112 = s_3; return _e112; } Samples surface_samples(VsOut in_19) { Samples s_4 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec4 c_11 = vec4(0.0); Samples _e2 = sample_material(in_19.uv); s_4 = _e2; uint _e8 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e8 & MAT_VERTEX_COLOR) != 0u) : false)) { c_11 = in_19.color; uint _e20 = _group_2_binding_0_fs.flags.w; if (((_e20 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e25 = c_11; vec3 _e27 = srgb_to_linear(_e25.xyz); float _e29 = c_11.w; c_11 = vec4(_e27, _e29); } vec4 _e33 = s_4.base; vec4 _e34 = c_11; s_4.base = (_e33 * _e34); } Samples _e36 = s_4; return _e36; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 pbr(VsOut in_20, bool front, Samples s_5) { vec3 n_w = vec3(0.0); vec3 t_w = vec3(0.0); vec3 c_13 = vec3(0.0); float _e6 = _group_2_binding_0_fs.factors.x; float metallic_1 = clamp((_e6 * s_5.mr.z), 0.0, 1.0); float _e16 = _group_2_binding_0_fs.factors.y; float roughness_7 = clamp((_e16 * s_5.mr.y), 0.045, 1.0); float a2_4 = (((roughness_7 * roughness_7) * roughness_7) * roughness_7); vec3 base_1 = s_5.base.xyz; vec3 diffuse_4 = (base_1 * (1.0 - metallic_1)); vec3 f0_6 = mix(vec3(0.04), base_1, metallic_1); n_w = (front ? normalize(in_20.normal) : -(normalize(in_20.normal))); uint _e45 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e45 & T_NORMAL) != 0u) : false)) { t_w = in_20.tangent.xyz; vec3 _e55 = t_w; vec3 _e56 = n_w; vec3 _e57 = n_w; vec3 _e58 = t_w; t_w = normalize((_e55 - (_e56 * dot(_e57, _e58)))); vec3 _e63 = n_w; vec3 _e64 = t_w; vec3 b_w = (cross(_e63, _e64) * in_20.tangent.w); vec3 _e69 = t_w; vec3 _e77 = n_w; n_w = normalize((((_e69 * s_5.normal.x) + (b_w * s_5.normal.y)) + (_e77 * s_5.normal.z))); } mat4x4 _e85 = _group_0_binding_0_fs.view; vec3 _e86 = n_w; vec3 n_12 = normalize((_e85 * vec4(_e86, 0.0)).xyz); mat4x4 _e94 = _group_0_binding_0_fs.view; vec3 pos_v = (_e94 * vec4(in_20.world, 1.0)).xyz; float _e109 = _group_0_binding_0_fs.camera_pos.w; vec3 v_7 = ((_e109 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(pos_v))); mat4x4 _e115 = _group_0_binding_0_fs.view; vec3 up_1 = normalize((_e115 * vec4(0.0, 0.0, 1.0, 0.0)).xyz); vec3 _e127 = c_13; vec3 _e136 = light(n_12, v_7, vec3(-0.45112923, 0.5513802, 0.7017566), vec3(2.6, 2.522, 2.392), diffuse_4, f0_6, a2_4); c_13 = (_e127 + _e136); vec3 _e138 = c_13; vec3 _e147 = light(n_12, v_7, vec3(0.8451543, 0.16903086, 0.50709254), vec3(0.765, 0.80999994, 0.9), diffuse_4, f0_6, a2_4); c_13 = (_e138 + _e147); vec3 _e149 = c_13; vec3 _e158 = light(n_12, v_7, vec3(0.34583426, 0.63402945, -0.6916685), vec3(1.3, 1.3, 1.3), diffuse_4, f0_6, a2_4); c_13 = (_e149 + _e158); float nv_8 = max(dot(n_12, v_7), 0.0001); vec3 r_6 = reflect(-(v_7), n_12); vec3 _e166 = env(dot(n_12, up_1)); vec3 irradiance = (_e166 * 0.8); vec3 _e170 = env(dot(r_6, up_1)); vec3 _e172 = env(0.0); vec3 blurred = mix(_e170, (_e172 * 0.85), roughness_7); vec3 f_amb = (f0_6 + ((max(vec3((1.0 - roughness_7)), f0_6) - f0_6) * pow((1.0 - nv_8), 5.0))); vec3 ambient_1 = ((diffuse_4 * irradiance) + ((blurred * f_amb) * (1.0 - (0.5 * roughness_7)))); vec3 _e195 = c_13; c_13 = (_e195 + (ambient_1 * s_5.occlusion)); vec3 _e199 = c_13; c_13 = (_e199 + s_5.emission); vec3 _e202 = c_13; return _e202; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_2 = (1.8 * white); float wt = (((w_2 * (w_2 + 0.0245786)) - 9.0537e-5) / ((w_2 * ((0.983729 * w_2) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_13 = _group_1_binding_0_fs.normal[0][3]; vec3 w_3 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_3); float _e29 = emerge_noise(((w_3 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_13 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_7 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_7.x * r_7.x), exp2((-9.28 * nv_1))) * r_7.x) + r_7.y); return ((vec2(-1.04, 1.04) * a004_) + r_7.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float d_13 = min((e_14.x - abs(l_10.x)), min((e_14.y - abs(l_10.y)), (e_14.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_15 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_15.x); float _e28 = probe_exit(o_7.y, d_14.y, e_15.y); float _e32 = probe_exit(o_7.z, d_14.z, e_15.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_fs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_fs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_fs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_fs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_fs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_fs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_fs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_fs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_fs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_fs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec2 ext_uv(uint s_8, vec2 uv0_, vec2 uv1_5) { vec4 r0_ = _group_2_binding_0_fs.xf[(s_8 * 2u)]; vec4 r1_ = _group_2_binding_0_fs.xf[((s_8 * 2u) + 1u)]; vec2 uv_5 = ((r0_.w > 0.5) ? uv1_5 : uv0_); return vec2((dot(r0_.xy, uv_5) + r0_.z), (dot(r1_.xy, uv_5) + r1_.z)); } float ext_where(uint s_9) { float _e9 = _group_2_binding_0_fs.xf[((s_9 * 2u) + 1u)].w; return _e9; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } bool ext_cut(ExtSamples s_12) { bool local_37 = false; uint _e5 = _group_2_binding_0_fs.flags.y; if ((_e5 == ALPHA_MASK)) { float _e15 = _group_2_binding_0_fs.emission.w; local_37 = (s_12.base.w < _e15); } else { local_37 = false; } bool _e18 = local_37; return (SPEC_ALPHA_MASK ? _e18 : false); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_5 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_5 * nh_1)); float w2_ = (a2_5 / dot(f_4, f_4)); return (((a2_5 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_8 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_4 = mix(21.5473, 25.3245, o_8); float b_3 = mix(3.82987, 3.32435, o_8); float c_37 = mix(0.19823, 0.16801, o_8); float d_15 = mix(-1.9776, -1.27393, o_8); float e_16 = mix(-4.32054, -4.85967, o_8); return (((a_4 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_37)))) + (d_15 * x_3)) + e_16); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_5 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_5, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_8 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_8 * r_8); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_16 = (outside / film); float sin2sq = ((k_16 * k_16) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_1 = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_1 + ((1.0 - r0_1) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_9 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_9, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_9, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_9, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_2 = (_e175 + _e176); c_33 = (base_2 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_9, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_9, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_fs.view_proj; vec4 c_38 = (_e3 * vec4(p_7, 1.0)); vec2 ndc = (c_38.xy / vec2(((c_38.w > 1e-6) ? c_38.w : 1e-6))); return vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsOut in_5 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6); bool local_6 = false; bool local_7 = false; bool local_8 = false; IdOut out_3 = IdOut(vec4(0.0)); Samples _e1 = surface_samples(in_5); if (((in_5.flags & F_HIDDEN) != 0u)) { discard; } float _e10 = emerge_reveal(in_5.world, in_5.clip.xy); if ((_e10 <= 0.0)) { discard; } uint _e16 = _group_0_binding_0_fs.params.x; if (!((_e16 == SHADE_MATERIAL))) { uint _e25 = _group_0_binding_0_fs.params.x; local_6 = (_e25 == SHADE_LIT); } else { local_6 = true; } bool materials = local_6; if (materials) { uint _e35 = _group_2_binding_0_fs.flags.y; local_7 = (_e35 == ALPHA_MASK); } else { local_7 = false; } bool _e39 = local_7; if (_e39) { float _e47 = _group_2_binding_0_fs.emission.w; local_8 = (_e1.base.w < _e47); } else { local_8 = false; } bool _e50 = local_8; if (_e50) { discard; } uint id_1 = _group_1_binding_0_fs.params.z; uint _e60 = _group_1_binding_0_fs.params.x; uint _e69 = _group_1_binding_0_fs.params.y; uint bits = (((_e60 == 1u) ? 1u : 0u) | ((_e69 == 1u) ? 2u : 0u)); out_3.id = (vec4(float((id_1 & 255u)), float(((id_1 >> 8u) & 255u)), float(((id_1 >> 16u) & 255u)), float(bits)) / vec4(255.0)); IdOut _e94 = out_3; _fs2p_location0 = _e94.id; return; } fs_normal_depthmain|Ï#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform MaterialU_block_2Fragment { MaterialU _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; uniform highp sampler2D _group_2_binding_3_fs; uniform highp sampler2D _group_2_binding_4_fs; uniform highp sampler2D _group_2_binding_5_fs; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in float _vs2fs_location5; smooth in vec4 _vs2fs_location6; layout(location = 0) out vec4 _fs2p_location0; layout(location = 1) out vec4 _fs2p_location1; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec3 checker(vec2 uv_1) { vec3 c_10 = vec3(0.0); float s_18 = _group_0_binding_0_fs.fparams.y; vec2 cell = floor((uv_1 * s_18)); ivec2 ci = ivec2(cell); int odd = ((ci.x + ci.y) & 1); uint k_15 = ((uint(ci.x) * 73856093u) ^ (uint(ci.y) * 19349663u)); float hue = float((k_15 % 360u)); float value = ((odd == 1) ? 0.4 : 0.74); vec3 _e31 = hsv(hue, 0.18, value); c_10 = _e31; vec2 tile = abs((fract(uv_1) - vec2(0.5))); vec2 _e38 = fwidth(uv_1); vec2 w_1 = ((_e38 * 1.0) + vec2(0.0001)); bool border = any(greaterThan(tile, (vec2(0.5) - w_1))); vec3 _e49 = c_10; vec3 _e50 = c_10; c_10 = (border ? (_e50 * 0.35) : _e49); vec3 _e54 = c_10; vec3 _e55 = srgb_to_linear(_e54); return _e55; } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } vec2 material_uv(vec2 uv_3) { vec2 _e1 = tex_uv(uv_3); vec4 _e4 = _group_2_binding_0_fs.uv; vec4 _e9 = _group_2_binding_0_fs.uv; return ((_e1 * _e4.xy) + _e9.zw); } vec4 decoded_base(vec4 t) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_BASE) != 0u)) { vec3 _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } vec3 decoded_emission(vec3 t_1) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_EMISSION) != 0u)) { vec3 _e9 = srgb_to_linear(t_1); return _e9; } return t_1; } Samples sample_material(vec2 uv_in) { Samples s_3 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec2 _e1 = material_uv(uv_in); vec4 _e6 = _group_2_binding_0_fs.base_color; s_3.base = _e6; uint _e11 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e11 & T_BASE) != 0u) : false)) { vec4 _e19 = s_3.base; vec4 _e22 = texture(_group_2_binding_1_fs, vec2(_e1)); vec4 _e23 = decoded_base(_e22); s_3.base = (_e19 * _e23); } s_3.normal = vec3(0.0, 0.0, 1.0); uint _e34 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e34 & T_NORMAL) != 0u) : false)) { vec4 _e44 = texture(_group_2_binding_2_fs, vec2(_e1)); s_3.normal = normalize(((_e44.xyz * 2.0) - vec3(1.0))); } s_3.mr = vec4(1.0); uint _e59 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_MR ? ((_e59 & T_METALLIC_ROUGHNESS) != 0u) : false)) { vec4 _e69 = texture(_group_2_binding_3_fs, vec2(_e1)); s_3.mr = _e69; } vec4 _e73 = _group_2_binding_0_fs.emission; s_3.emission = _e73.xyz; uint _e79 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e79 & T_EMISSION) != 0u) : false)) { vec3 _e87 = s_3.emission; vec4 _e90 = texture(_group_2_binding_4_fs, vec2(_e1)); vec3 _e92 = decoded_emission(_e90.xyz); s_3.emission = (_e87 * _e92); } s_3.occlusion = 1.0; uint _e100 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e100 & T_OCCLUSION) != 0u) : false)) { vec4 _e110 = texture(_group_2_binding_5_fs, vec2(_e1)); s_3.occlusion = _e110.x; } Samples _e112 = s_3; return _e112; } Samples surface_samples(VsOut in_19) { Samples s_4 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec4 c_11 = vec4(0.0); Samples _e2 = sample_material(in_19.uv); s_4 = _e2; uint _e8 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e8 & MAT_VERTEX_COLOR) != 0u) : false)) { c_11 = in_19.color; uint _e20 = _group_2_binding_0_fs.flags.w; if (((_e20 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e25 = c_11; vec3 _e27 = srgb_to_linear(_e25.xyz); float _e29 = c_11.w; c_11 = vec4(_e27, _e29); } vec4 _e33 = s_4.base; vec4 _e34 = c_11; s_4.base = (_e33 * _e34); } Samples _e36 = s_4; return _e36; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 pbr(VsOut in_20, bool front, Samples s_5) { vec3 n_w = vec3(0.0); vec3 t_w = vec3(0.0); vec3 c_13 = vec3(0.0); float _e6 = _group_2_binding_0_fs.factors.x; float metallic_1 = clamp((_e6 * s_5.mr.z), 0.0, 1.0); float _e16 = _group_2_binding_0_fs.factors.y; float roughness_7 = clamp((_e16 * s_5.mr.y), 0.045, 1.0); float a2_4 = (((roughness_7 * roughness_7) * roughness_7) * roughness_7); vec3 base_1 = s_5.base.xyz; vec3 diffuse_4 = (base_1 * (1.0 - metallic_1)); vec3 f0_6 = mix(vec3(0.04), base_1, metallic_1); n_w = (front ? normalize(in_20.normal) : -(normalize(in_20.normal))); uint _e45 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e45 & T_NORMAL) != 0u) : false)) { t_w = in_20.tangent.xyz; vec3 _e55 = t_w; vec3 _e56 = n_w; vec3 _e57 = n_w; vec3 _e58 = t_w; t_w = normalize((_e55 - (_e56 * dot(_e57, _e58)))); vec3 _e63 = n_w; vec3 _e64 = t_w; vec3 b_w = (cross(_e63, _e64) * in_20.tangent.w); vec3 _e69 = t_w; vec3 _e77 = n_w; n_w = normalize((((_e69 * s_5.normal.x) + (b_w * s_5.normal.y)) + (_e77 * s_5.normal.z))); } mat4x4 _e85 = _group_0_binding_0_fs.view; vec3 _e86 = n_w; vec3 n_12 = normalize((_e85 * vec4(_e86, 0.0)).xyz); mat4x4 _e94 = _group_0_binding_0_fs.view; vec3 pos_v = (_e94 * vec4(in_20.world, 1.0)).xyz; float _e109 = _group_0_binding_0_fs.camera_pos.w; vec3 v_7 = ((_e109 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(pos_v))); mat4x4 _e115 = _group_0_binding_0_fs.view; vec3 up_1 = normalize((_e115 * vec4(0.0, 0.0, 1.0, 0.0)).xyz); vec3 _e127 = c_13; vec3 _e136 = light(n_12, v_7, vec3(-0.45112923, 0.5513802, 0.7017566), vec3(2.6, 2.522, 2.392), diffuse_4, f0_6, a2_4); c_13 = (_e127 + _e136); vec3 _e138 = c_13; vec3 _e147 = light(n_12, v_7, vec3(0.8451543, 0.16903086, 0.50709254), vec3(0.765, 0.80999994, 0.9), diffuse_4, f0_6, a2_4); c_13 = (_e138 + _e147); vec3 _e149 = c_13; vec3 _e158 = light(n_12, v_7, vec3(0.34583426, 0.63402945, -0.6916685), vec3(1.3, 1.3, 1.3), diffuse_4, f0_6, a2_4); c_13 = (_e149 + _e158); float nv_8 = max(dot(n_12, v_7), 0.0001); vec3 r_6 = reflect(-(v_7), n_12); vec3 _e166 = env(dot(n_12, up_1)); vec3 irradiance = (_e166 * 0.8); vec3 _e170 = env(dot(r_6, up_1)); vec3 _e172 = env(0.0); vec3 blurred = mix(_e170, (_e172 * 0.85), roughness_7); vec3 f_amb = (f0_6 + ((max(vec3((1.0 - roughness_7)), f0_6) - f0_6) * pow((1.0 - nv_8), 5.0))); vec3 ambient_1 = ((diffuse_4 * irradiance) + ((blurred * f_amb) * (1.0 - (0.5 * roughness_7)))); vec3 _e195 = c_13; c_13 = (_e195 + (ambient_1 * s_5.occlusion)); vec3 _e199 = c_13; c_13 = (_e199 + s_5.emission); vec3 _e202 = c_13; return _e202; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_2 = (1.8 * white); float wt = (((w_2 * (w_2 + 0.0245786)) - 9.0537e-5) / ((w_2 * ((0.983729 * w_2) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_13 = _group_1_binding_0_fs.normal[0][3]; vec3 w_3 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_3); float _e29 = emerge_noise(((w_3 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_13 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_7 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_7.x * r_7.x), exp2((-9.28 * nv_1))) * r_7.x) + r_7.y); return ((vec2(-1.04, 1.04) * a004_) + r_7.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float d_13 = min((e_14.x - abs(l_10.x)), min((e_14.y - abs(l_10.y)), (e_14.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_15 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_15.x); float _e28 = probe_exit(o_7.y, d_14.y, e_15.y); float _e32 = probe_exit(o_7.z, d_14.z, e_15.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_fs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_fs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_fs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_fs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_fs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_fs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_fs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_fs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_fs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_fs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec2 ext_uv(uint s_8, vec2 uv0_, vec2 uv1_5) { vec4 r0_ = _group_2_binding_0_fs.xf[(s_8 * 2u)]; vec4 r1_ = _group_2_binding_0_fs.xf[((s_8 * 2u) + 1u)]; vec2 uv_5 = ((r0_.w > 0.5) ? uv1_5 : uv0_); return vec2((dot(r0_.xy, uv_5) + r0_.z), (dot(r1_.xy, uv_5) + r1_.z)); } float ext_where(uint s_9) { float _e9 = _group_2_binding_0_fs.xf[((s_9 * 2u) + 1u)].w; return _e9; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } bool ext_cut(ExtSamples s_12) { bool local_37 = false; uint _e5 = _group_2_binding_0_fs.flags.y; if ((_e5 == ALPHA_MASK)) { float _e15 = _group_2_binding_0_fs.emission.w; local_37 = (s_12.base.w < _e15); } else { local_37 = false; } bool _e18 = local_37; return (SPEC_ALPHA_MASK ? _e18 : false); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_5 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_5 * nh_1)); float w2_ = (a2_5 / dot(f_4, f_4)); return (((a2_5 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_8 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_4 = mix(21.5473, 25.3245, o_8); float b_3 = mix(3.82987, 3.32435, o_8); float c_37 = mix(0.19823, 0.16801, o_8); float d_15 = mix(-1.9776, -1.27393, o_8); float e_16 = mix(-4.32054, -4.85967, o_8); return (((a_4 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_37)))) + (d_15 * x_3)) + e_16); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_5 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_5, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_8 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_8 * r_8); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_16 = (outside / film); float sin2sq = ((k_16 * k_16) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_1 = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_1 + ((1.0 - r0_1) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_9 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_9, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_9, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_9, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_2 = (_e175 + _e176); c_33 = (base_2 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_9, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_9, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_fs.view_proj; vec4 c_38 = (_e3 * vec4(p_7, 1.0)); vec2 ndc = (c_38.xy / vec2(((c_38.w > 1e-6) ? c_38.w : 1e-6))); return vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsOut in_6 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6); bool facing_1 = gl_FrontFacing; bool local_9 = false; bool local_10 = false; bool local_11 = false; NormalDepthOut out_4 = NormalDepthOut(vec4(0.0), vec4(0.0)); Samples _e2 = surface_samples(in_6); if (((in_6.flags & F_HIDDEN) != 0u)) { discard; } float _e11 = emerge_reveal(in_6.world, in_6.clip.xy); if ((_e11 <= 0.0)) { discard; } uint _e17 = _group_0_binding_0_fs.params.x; if (!((_e17 == SHADE_MATERIAL))) { uint _e26 = _group_0_binding_0_fs.params.x; local_9 = (_e26 == SHADE_LIT); } else { local_9 = true; } bool materials = local_9; if (materials) { uint _e36 = _group_2_binding_0_fs.flags.y; local_10 = (_e36 == ALPHA_MASK); } else { local_10 = false; } bool _e40 = local_10; if (_e40) { float _e48 = _group_2_binding_0_fs.emission.w; local_11 = (_e2.base.w < _e48); } else { local_11 = false; } bool _e51 = local_11; if (_e51) { discard; } bool _e52 = mirrored(in_6); bool front_6 = (facing_1 != _e52); vec3 n_world = (front_6 ? normalize(in_6.normal) : -(normalize(in_6.normal))); mat4x4 _e62 = _group_0_binding_0_fs.view; vec3 n_view = normalize((_e62 * vec4(n_world, 0.0)).xyz); float _e71 = _group_2_binding_0_fs.factors.x; float metallic_2 = clamp((_e71 * _e2.mr.z), 0.0, 1.0); float _e81 = _group_2_binding_0_fs.factors.y; float roughness_8 = clamp((_e81 * _e2.mr.y), 0.045, 1.0); mat4x4 _e92 = _group_0_binding_0_fs.view; out_4.normal_depth = vec4(n_view, -((_e92 * vec4(in_6.world, 1.0)).z)); out_4.surface = vec4(mix(vec3(0.04), _e2.base.xyz, metallic_2), roughness_8); NormalDepthOut _e107 = out_4; _fs2p_location0 = _e107.normal_depth; _fs2p_location1 = _e107.surface; return; } vs_surface_extmainŬ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out float _vs2fs_location5; smooth out vec4 _vs2fs_location6; smooth out vec2 _vs2fs_location7; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_13 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_13 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float d_13 = min((e_14.x - abs(l_10.x)), min((e_14.y - abs(l_10.y)), (e_14.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_15 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_15.x); float _e28 = probe_exit(o_7.y, d_14.y, e_15.y); float _e32 = probe_exit(o_7.z, d_14.z, e_15.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_vs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_vs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_vs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_vs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_vs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_vs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_vs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_vs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_vs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_vs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_4 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_4 * nh_1)); float w2_ = (a2_4 / dot(f_4, f_4)); return (((a2_4 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_8 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_4 = mix(21.5473, 25.3245, o_8); float b_3 = mix(3.82987, 3.32435, o_8); float c_37 = mix(0.19823, 0.16801, o_8); float d_15 = mix(-1.9776, -1.27393, o_8); float e_16 = mix(-4.32054, -4.85967, o_8); return (((a_4 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_37)))) + (d_15 * x_3)) + e_16); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_5 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_5, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_7 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_7 * r_7); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_15 = (outside / film); float sin2sq = ((k_15 * k_15) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_ = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_ + ((1.0 - r0_) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_8 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_8, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_8, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_8, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_1 = (_e175 + _e176); c_33 = (base_1 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_8, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_8, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_vs.view_proj; vec4 c_38 = (_e3 * vec4(p_7, 1.0)); vec2 ndc = (c_38.xy / vec2(((c_38.w > 1e-6) ? c_38.w : 1e-6))); return vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsIn in_7 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); vec2 uv1_ = _p2vs_location10; VsOut _e2 = surface_vertex(in_7); VsOutExt _e3 = ext_vs_out(_e2, uv1_); gl_Position = _e3.clip; _vs2fs_location0 = _e3.world; _vs2fs_location1 = _e3.normal; _vs2fs_location2 = _e3.uv; _vs2fs_location3 = _e3.flags; _vs2fs_location4 = _e3.tangent; _vs2fs_location5 = _e3.weight; _vs2fs_location6 = _e3.color; _vs2fs_location7 = _e3.uv1_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_surface_ext_instancedmainñ­#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out float _vs2fs_location5; smooth out vec4 _vs2fs_location6; smooth out vec2 _vs2fs_location7; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_13 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_13 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float d_13 = min((e_14.x - abs(l_10.x)), min((e_14.y - abs(l_10.y)), (e_14.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_15 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_15.x); float _e28 = probe_exit(o_7.y, d_14.y, e_15.y); float _e32 = probe_exit(o_7.z, d_14.z, e_15.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_vs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_vs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_vs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_vs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_vs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_vs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_vs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_vs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_vs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_vs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_4 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_4 * nh_1)); float w2_ = (a2_4 / dot(f_4, f_4)); return (((a2_4 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_8 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_4 = mix(21.5473, 25.3245, o_8); float b_3 = mix(3.82987, 3.32435, o_8); float c_37 = mix(0.19823, 0.16801, o_8); float d_15 = mix(-1.9776, -1.27393, o_8); float e_16 = mix(-4.32054, -4.85967, o_8); return (((a_4 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_37)))) + (d_15 * x_3)) + e_16); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_5 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_5, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_7 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_7 * r_7); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_15 = (outside / film); float sin2sq = ((k_15 * k_15) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_ = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_ + ((1.0 - r0_) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_8 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_8, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_8, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_8, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_1 = (_e175 + _e176); c_33 = (base_1 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_8, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_8, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_vs.view_proj; vec4 c_38 = (_e3 * vec4(p_7, 1.0)); vec2 ndc = (c_38.xy / vec2(((c_38.w > 1e-6) ? c_38.w : 1e-6))); return vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsIn in_8 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); InstIn inst_1 = InstIn(_p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9); vec2 uv1_1 = _p2vs_location10; VsOut _e3 = surface_vertex_instanced(in_8, inst_1); VsOutExt _e4 = ext_vs_out(_e3, uv1_1); gl_Position = _e4.clip; _vs2fs_location0 = _e4.world; _vs2fs_location1 = _e4.normal; _vs2fs_location2 = _e4.uv; _vs2fs_location3 = _e4.flags; _vs2fs_location4 = _e4.tangent; _vs2fs_location5 = _e4.weight; _vs2fs_location6 = _e4.color; _vs2fs_location7 = _e4.uv1_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_surface_extmainò6#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform MaterialU_block_2Fragment { MaterialU _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; uniform highp sampler2D _group_2_binding_3_fs; uniform highp sampler2D _group_2_binding_4_fs; uniform highp sampler2D _group_2_binding_5_fs; uniform highp sampler2DArray _group_2_binding_7_fs; layout(std140) uniform LitU_block_3Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform ShadowU_block_4Fragment { ShadowU _group_0_binding_2_fs; }; uniform highp sampler2DShadow _group_0_binding_3_fs; layout(std140) uniform SkyU_block_5Fragment { SkyU _group_0_binding_5_fs; }; uniform highp samplerCube _group_3_binding_0_fs; uniform highp sampler2D _group_0_binding_6_fs; layout(std140) uniform ProbeU_block_6Fragment { ProbeU _group_0_binding_7_fs; }; uniform highp sampler2D _group_3_binding_6_fs; layout(std140) uniform DecalU_block_7Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; uniform highp sampler2D _group_1_binding_6_fs; layout(std140) uniform FogU_block_8Fragment { FogU _group_1_binding_5_fs; }; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in float _vs2fs_location5; smooth in vec4 _vs2fs_location6; smooth in vec2 _vs2fs_location7; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word_1 = ((k_1 < 4u) ? _e8 : _e4); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_2 = ((k_2 < 4u) ? _e8 : _e4); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local_21 = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_13 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_13.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local_21 = all(lessThanEqual(uvw, vec3(1.0))); } else { local_21 = false; } bool _e35 = local_21; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_13.fades.x : e_13.fades.y)); if ((e_13.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_13.fades.z, 1.0, ((dot(n_geo, e_13.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_5 = uvw.xz; float _e69 = decal_level(e_13, world_1); uint live_1 = e_13.flags.x; if ((e_13.layers.x > 0u)) { vec4 _e82 = decal_texel(e_13.layers.x, uv_5, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_13.modulate); float _e90 = fade; float alpha_4 = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha_4 * e_13.fades.w)); if ((e_13.layers.y > 0u)) { vec4 _e110 = decal_texel(e_13.layers.y, uv_5, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_13.axis_x.xyz * nx) + (e_13.axis_y.xyz * nz)) + (e_13.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha_4)); } if ((e_13.layers.z > 0u)) { vec4 _e156 = decal_texel(e_13.layers.z, uv_5, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha_4); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha_4); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha_4); } } if ((e_13.layers.w > 0u)) { vec4 _e182 = decal_texel(e_13.layers.w, uv_5, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_13.modulate.xyz) * e_13.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec3 checker(vec2 uv_1) { vec3 c_10 = vec3(0.0); float s_18 = _group_0_binding_0_fs.fparams.y; vec2 cell = floor((uv_1 * s_18)); ivec2 ci = ivec2(cell); int odd = ((ci.x + ci.y) & 1); uint k_15 = ((uint(ci.x) * 73856093u) ^ (uint(ci.y) * 19349663u)); float hue = float((k_15 % 360u)); float value = ((odd == 1) ? 0.4 : 0.74); vec3 _e31 = hsv(hue, 0.18, value); c_10 = _e31; vec2 tile = abs((fract(uv_1) - vec2(0.5))); vec2 _e38 = fwidth(uv_1); vec2 w_1 = ((_e38 * 1.0) + vec2(0.0001)); bool border = any(greaterThan(tile, (vec2(0.5) - w_1))); vec3 _e49 = c_10; vec3 _e50 = c_10; c_10 = (border ? (_e50 * 0.35) : _e49); vec3 _e54 = c_10; vec3 _e55 = srgb_to_linear(_e54); return _e55; } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } vec2 material_uv(vec2 uv_3) { vec2 _e1 = tex_uv(uv_3); vec4 _e4 = _group_2_binding_0_fs.uv; vec4 _e9 = _group_2_binding_0_fs.uv; return ((_e1 * _e4.xy) + _e9.zw); } vec4 decoded_base(vec4 t) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_BASE) != 0u)) { vec3 _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } vec3 decoded_emission(vec3 t_1) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_EMISSION) != 0u)) { vec3 _e9 = srgb_to_linear(t_1); return _e9; } return t_1; } Samples sample_material(vec2 uv_in) { Samples s_3 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec2 _e1 = material_uv(uv_in); vec4 _e6 = _group_2_binding_0_fs.base_color; s_3.base = _e6; uint _e11 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e11 & T_BASE) != 0u) : false)) { vec4 _e19 = s_3.base; vec4 _e22 = texture(_group_2_binding_1_fs, vec2(_e1)); vec4 _e23 = decoded_base(_e22); s_3.base = (_e19 * _e23); } s_3.normal = vec3(0.0, 0.0, 1.0); uint _e34 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e34 & T_NORMAL) != 0u) : false)) { vec4 _e44 = texture(_group_2_binding_2_fs, vec2(_e1)); s_3.normal = normalize(((_e44.xyz * 2.0) - vec3(1.0))); } s_3.mr = vec4(1.0); uint _e59 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_MR ? ((_e59 & T_METALLIC_ROUGHNESS) != 0u) : false)) { vec4 _e69 = texture(_group_2_binding_3_fs, vec2(_e1)); s_3.mr = _e69; } vec4 _e73 = _group_2_binding_0_fs.emission; s_3.emission = _e73.xyz; uint _e79 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e79 & T_EMISSION) != 0u) : false)) { vec3 _e87 = s_3.emission; vec4 _e90 = texture(_group_2_binding_4_fs, vec2(_e1)); vec3 _e92 = decoded_emission(_e90.xyz); s_3.emission = (_e87 * _e92); } s_3.occlusion = 1.0; uint _e100 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e100 & T_OCCLUSION) != 0u) : false)) { vec4 _e110 = texture(_group_2_binding_5_fs, vec2(_e1)); s_3.occlusion = _e110.x; } Samples _e112 = s_3; return _e112; } Samples surface_samples(VsOut in_19) { Samples s_4 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec4 c_11 = vec4(0.0); Samples _e2 = sample_material(in_19.uv); s_4 = _e2; uint _e8 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e8 & MAT_VERTEX_COLOR) != 0u) : false)) { c_11 = in_19.color; uint _e20 = _group_2_binding_0_fs.flags.w; if (((_e20 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e25 = c_11; vec3 _e27 = srgb_to_linear(_e25.xyz); float _e29 = c_11.w; c_11 = vec4(_e27, _e29); } vec4 _e33 = s_4.base; vec4 _e34 = c_11; s_4.base = (_e33 * _e34); } Samples _e36 = s_4; return _e36; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 pbr(VsOut in_20, bool front, Samples s_5) { vec3 n_w = vec3(0.0); vec3 t_w = vec3(0.0); vec3 c_13 = vec3(0.0); float _e6 = _group_2_binding_0_fs.factors.x; float metallic_1 = clamp((_e6 * s_5.mr.z), 0.0, 1.0); float _e16 = _group_2_binding_0_fs.factors.y; float roughness_7 = clamp((_e16 * s_5.mr.y), 0.045, 1.0); float a2_4 = (((roughness_7 * roughness_7) * roughness_7) * roughness_7); vec3 base_1 = s_5.base.xyz; vec3 diffuse_4 = (base_1 * (1.0 - metallic_1)); vec3 f0_6 = mix(vec3(0.04), base_1, metallic_1); n_w = (front ? normalize(in_20.normal) : -(normalize(in_20.normal))); uint _e45 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e45 & T_NORMAL) != 0u) : false)) { t_w = in_20.tangent.xyz; vec3 _e55 = t_w; vec3 _e56 = n_w; vec3 _e57 = n_w; vec3 _e58 = t_w; t_w = normalize((_e55 - (_e56 * dot(_e57, _e58)))); vec3 _e63 = n_w; vec3 _e64 = t_w; vec3 b_w = (cross(_e63, _e64) * in_20.tangent.w); vec3 _e69 = t_w; vec3 _e77 = n_w; n_w = normalize((((_e69 * s_5.normal.x) + (b_w * s_5.normal.y)) + (_e77 * s_5.normal.z))); } mat4x4 _e85 = _group_0_binding_0_fs.view; vec3 _e86 = n_w; vec3 n_12 = normalize((_e85 * vec4(_e86, 0.0)).xyz); mat4x4 _e94 = _group_0_binding_0_fs.view; vec3 pos_v = (_e94 * vec4(in_20.world, 1.0)).xyz; float _e109 = _group_0_binding_0_fs.camera_pos.w; vec3 v_7 = ((_e109 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(pos_v))); mat4x4 _e115 = _group_0_binding_0_fs.view; vec3 up_1 = normalize((_e115 * vec4(0.0, 0.0, 1.0, 0.0)).xyz); vec3 _e127 = c_13; vec3 _e136 = light(n_12, v_7, vec3(-0.45112923, 0.5513802, 0.7017566), vec3(2.6, 2.522, 2.392), diffuse_4, f0_6, a2_4); c_13 = (_e127 + _e136); vec3 _e138 = c_13; vec3 _e147 = light(n_12, v_7, vec3(0.8451543, 0.16903086, 0.50709254), vec3(0.765, 0.80999994, 0.9), diffuse_4, f0_6, a2_4); c_13 = (_e138 + _e147); vec3 _e149 = c_13; vec3 _e158 = light(n_12, v_7, vec3(0.34583426, 0.63402945, -0.6916685), vec3(1.3, 1.3, 1.3), diffuse_4, f0_6, a2_4); c_13 = (_e149 + _e158); float nv_8 = max(dot(n_12, v_7), 0.0001); vec3 r_6 = reflect(-(v_7), n_12); vec3 _e166 = env(dot(n_12, up_1)); vec3 irradiance = (_e166 * 0.8); vec3 _e170 = env(dot(r_6, up_1)); vec3 _e172 = env(0.0); vec3 blurred = mix(_e170, (_e172 * 0.85), roughness_7); vec3 f_amb = (f0_6 + ((max(vec3((1.0 - roughness_7)), f0_6) - f0_6) * pow((1.0 - nv_8), 5.0))); vec3 ambient_1 = ((diffuse_4 * irradiance) + ((blurred * f_amb) * (1.0 - (0.5 * roughness_7)))); vec3 _e195 = c_13; c_13 = (_e195 + (ambient_1 * s_5.occlusion)); vec3 _e199 = c_13; c_13 = (_e199 + s_5.emission); vec3 _e202 = c_13; return _e202; } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_3 <= 1.5707964)) { float c_37 = (1.0 - (a_3 / 1.5707964)); float k_16 = clamp((1.0 - pow(max((1.0 - c_37), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_16); } float c_38 = ((a_3 - 1.5707964) / 1.5707964); float k_17 = clamp((1.0 - pow(max((1.0 - c_38), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_17); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_2 = (1.8 * white); float wt = (((w_2 * (w_2 + 0.0245786)) - 9.0537e-5) / ((w_2 * ((0.983729 * w_2) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_39 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_39) + c_39) / ((c_39 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_39); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_39, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_39); return _e36; } return c_39; } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_4 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_4, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_14 = _group_1_binding_0_fs.normal[0][3]; vec3 w_3 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_3); float _e29 = emerge_noise(((w_3 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_14 * 1.8) - _e60) / EMERGE_EDGE); } vec3 emerge_tint(vec3 c_16, float r) { bool local_22 = false; uint _e6 = _group_1_binding_0_fs.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_22 = (r >= 1.0); } else { local_22 = true; } bool _e17 = local_22; if ((SPEC_EMERGE ? _e17 : true)) { return c_16; } uint _e23 = _group_1_binding_0_fs.extra.w; vec3 _e26 = srgb_to_linear((vec4(_e23 & 0xFFu, _e23 >> 8 & 0xFFu, _e23 >> 16 & 0xFFu, _e23 >> 24) / 255.0).xyz); vec3 _e27 = tonemap(_e26); return mix(_e27, c_16, smoothstep(0.0, 1.0, r)); } vec3 item_fade(vec3 c_17) { uint _e5 = _group_1_binding_0_fs.extra.x; if ((SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true)) { return c_17; } vec4 f_4 = _group_1_binding_0_fs.normal[3]; vec3 _e17 = tonemap(f_4.xyz); return mix(c_17, _e17, f_4.w); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec3 procedural_sky(vec3 d_1) { vec3 sky_1 = vec3(0.0); uint i = 0u; float v_8 = acos(clamp(d_1.y, -1.0, 1.0)); vec4 _e8 = _group_0_binding_5_fs.sky_horizon; vec4 _e12 = _group_0_binding_5_fs.sky_top; float _e21 = _group_0_binding_5_fs.sky_top.w; float _e22 = sky_curve((1.0 - (v_8 / 1.5707964)), _e21); float _e27 = _group_0_binding_5_fs.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); uint _e33 = _group_0_binding_5_fs.flags.z; uint suns = min(_e33, SKY_SUNS); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e79 = i; i = (_e79 + 1u); } loop_init_1 = false; uint _e38 = i; if ((_e38 < suns)) { } else { break; } { uint _e42 = i; SunU sun = _group_0_binding_5_fs.suns[_e42]; float size = sun.direction.w; float a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1.0, 1.0)); if ((a_5 < size)) { sky_1 = sun.color.xyz; } else { float _e60 = _group_0_binding_5_fs.sun.x; if ((a_5 < _e60)) { float _e66 = _group_0_binding_5_fs.sun.x; float c2_ = ((a_5 - size) / (_e66 - size)); vec3 _e71 = sky_1; float _e75 = _group_0_binding_5_fs.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } } vec4 _e83 = _group_0_binding_5_fs.ground_horizon; vec4 _e87 = _group_0_binding_5_fs.ground_bottom; float _e96 = _group_0_binding_5_fs.ground_bottom.w; float _e97 = sky_curve(((v_8 - 1.5707964) / 1.5707964), _e96); float _e102 = _group_0_binding_5_fs.ground_horizon.w; vec3 ground_2 = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); vec3 _e104 = sky_1; float _e112 = _group_0_binding_5_fs.sun.z; return (((d_1.y >= 0.0) ? _e104 : ground_2) * _e112); } vec3 sh_irradiance(vec3 n_5) { vec3 c_19 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_19 = (_e4.xyz * 0.282095); vec3 _e9 = c_19; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_19 = (_e9 + (_e13.xyz * (0.488603 * n_5.y))); vec3 _e20 = c_19; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_19 = (_e20 + (_e24.xyz * (0.488603 * n_5.z))); vec3 _e31 = c_19; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_19 = (_e31 + (_e35.xyz * (0.488603 * n_5.x))); vec3 _e42 = c_19; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_19 = (_e42 + (_e46.xyz * ((1.092548 * n_5.x) * n_5.y))); vec3 _e55 = c_19; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_19 = (_e55 + (_e59.xyz * ((1.092548 * n_5.y) * n_5.z))); vec3 _e68 = c_19; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_19 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_5.z) * n_5.z) - 1.0)))); vec3 _e85 = c_19; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_19 = (_e85 + (_e89.xyz * ((1.092548 * n_5.x) * n_5.z))); vec3 _e98 = c_19; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_19 = (_e98 + (_e102.xyz * (0.546274 * ((n_5.x * n_5.x) - (n_5.y * n_5.y))))); vec3 _e115 = c_19; return max(_e115, vec3(0.0)); } vec3 radiance_2(vec3 d_3, float roughness) { uint _e5 = _group_0_binding_5_fs.flags.y; float top_1 = float((max(_e5, 1u) - 1u)); vec4 _e14 = textureLod(_group_3_binding_0_fs, vec3(d_3), (roughness * top_1)); return _e14.xyz; } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_7 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_7.x * r_7.x), exp2((-9.28 * nv_1))) * r_7.x) + r_7.y); return ((vec2(-1.04, 1.04) * a004_) + r_7.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_20 = vec3(0.0); uint k_4 = 0u; c_20 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_2 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_20; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_20 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_20; return _e53; } vec3 sky_fog(vec3 c_21, vec3 dir_2) { vec4 _e4 = _group_0_binding_5_fs.fog_color; float _e9 = _group_0_binding_5_fs.fog_depth.w; vec3 _e11 = fog_sun_scatter(mix(_e4.xyz, c_21, _e9), dir_2); float _e15 = _group_0_binding_5_fs.fog.y; return mix(c_21, _e11, _e15); } vec3 surface_fog(vec3 c_22, vec3 world_3, vec3 dir_3) { float dist = 0.0; float amount = 0.0; vec3 fc_1 = vec3(0.0); bool local_23 = false; mat4x4 _e5 = _group_0_binding_0_fs.view; float depth = -((_e5 * vec4(world_3, 1.0)).z); vec4 _e13 = _group_0_binding_0_fs.camera_pos; dist = distance(world_3, _e13.xyz); float _e20 = _group_0_binding_5_fs.fog_origin.w; if ((_e20 > 0.5)) { float _e26 = _group_0_binding_5_fs.fog_origin.x; dist = max((depth - _e26), 0.0); } uint _e34 = _group_0_binding_5_fs.flags.x; if (((_e34 & SKY_FOG_DEPTH) != 0u)) { float _e42 = _group_0_binding_5_fs.fog_depth.x; float _e46 = _group_0_binding_5_fs.fog_depth.y; float _e47 = dist; float z = smoothstep(_e42, _e46, _e47); float _e54 = _group_0_binding_5_fs.fog_depth.z; float _e63 = _group_0_binding_5_fs.fog.x; amount = (((z > 0.0) ? pow(max(z, 1e-6), _e54) : 0.0) * _e63); } else { float _e65 = dist; float _e70 = _group_0_binding_5_fs.fog.x; amount = (1.0 - exp(min(0.0, (-(_e65) * _e70)))); } float _e80 = _group_0_binding_5_fs.fog.w; if ((abs(_e80) >= 0.0001)) { vec4 _e86 = _group_0_binding_1_fs.up; float y = dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = _group_0_binding_5_fs.fog.z; float _e98 = _group_0_binding_5_fs.fog.w; amount = max(_e89, (1.0 - exp(min(0.0, ((y - _e93) * _e98))))); } float _e106 = amount; amount = clamp(_e106, 0.0, 1.0); vec4 _e112 = _group_0_binding_5_fs.fog_color; fc_1 = _e112.xyz; uint _e119 = _group_0_binding_5_fs.flags.x; if (((_e119 & SKY_IBL) != 0u)) { float _e129 = _group_0_binding_5_fs.fog_depth.w; local_23 = (_e129 > 0.0); } else { local_23 = false; } bool _e133 = local_23; if ((SPEC_AMBIENT_SKY ? _e133 : false)) { float _e139 = _group_0_binding_5_fs.fog_origin.y; float _e144 = _group_0_binding_5_fs.fog_origin.z; float _e148 = _group_0_binding_5_fs.fog_origin.y; float t_7 = clamp(((depth - _e139) / max((_e144 - _e148), 1e-6)), 0.0, 1.0); uint _e159 = _group_0_binding_5_fs.flags.y; float top_2 = float((max(_e159, 2u) - 1u)); float rough_2 = mix((1.0 / top_2), 1.0, (1.0 - t_7)); vec3 _e171 = fc_1; vec3 _e172 = sky_dir(dir_3); vec3 _e173 = radiance_2(_e172, rough_2); float _e177 = _group_0_binding_5_fs.sun.w; float _e182 = _group_0_binding_5_fs.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } vec3 _e184 = fc_1; vec3 _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; vec3 _e186 = fc_1; float _e187 = amount; return mix(c_22, _e186, _e187); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_4, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_23 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h_4 = (_e26.xyz * 0.5); vec3 dd = mix(d_4, vec3(1e-12), lessThan(abs(d_4), vec3(1e-12))); vec3 sa = ((-(h_4) - o) / dd); vec3 sb = ((h_4 - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_4 / h_4), (d_4 / h_4)); b = dot((o / h_4), (d_4 / h_4)); c_23 = (dot((o / h_4), (o / h_4)) - 1.0); } else { float rad_1 = min(h_4.x, h_4.z); float k_18 = ((shape == FOG_SHAPE_CONE) ? (rad_1 / (2.0 * h_4.y)) : 0.0); float w_4 = (h_4.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_18 * k_18) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_18 * k_18) * w_4) * d_4.y)); c_23 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_18 * k_18) * w_4) * w_4) : (rad_1 * rad_1))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_23; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_23; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_23; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_23; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_3, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_15 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_15.material.x * min(exp2((-(e_15.material.y) * (dot(p_3, _e14.xyz) - e_15.material.w))), 1.0)); if ((e_15.material.z > 0.0)) { uint shape_1 = uint(e_15.albedo.w); vec3 h_5 = (e_15.size.xyz * 0.5); float rad_2 = min(h_5.x, h_5.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_5)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_5 * h_5))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_5); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_2), (abs(lp.y) - h_5.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_13 = normalize(vec2((1.0 / max(0.001, (rad_2 * 0.5))), (1.0 / max(0.001, h_5.y)))); sdf = max(dot(n_13, vec2(length(lp.xz), (lp.y - h_5.y))), (-(h_5.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_15.size.w), 0.0, 1.0), e_15.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_3 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_3.y; if (((hf * b_1) == 0.0)) { return ((m_3.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_19 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_19 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_19); float x_5 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_5 < 0.01) ? (1.0 - (x_5 * (0.5 - (x_5 * (0.16666667 - (x_5 / 24.0)))))) : ((1.0 - exp(-(x_5))) / x_5)); float top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_3.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 fog_light(uint n_6, vec3 p_4, vec3 dir_4) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l_2 = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_6].lights; bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_3 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_13 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_13]; l_2 = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_4); l_2 = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l_2; float rim_2 = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim_2, li.spot.y))); } } vec3 _e108 = l_2; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_4, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_13 >> 2u)][(i_13 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_6, vec2 ch) { float split = 0.0; bool local_24 = false; bool local_25 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_26 = false; bool local_27 = false; FogEntryU e_16 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_16.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_16.to_local * vec4(d_6, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_6 = (dot(o_1, _e20.xyz) - e_16.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_6, _e28.xyz); bool edge = (e_16.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_16.material.y > 0.0)) { local_24 = ((-(a_6) / b_3) > ch.x); } else { local_24 = false; } bool _e52 = local_24; if (_e52) { local_25 = ((-(a_6) / b_3) < ch.y); } else { local_25 = false; } bool _e60 = local_25; if (_e60) { split = (-(a_6) / b_3); } bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e160 = i_1; i_1 = (_e160 + 1u); } loop_init_4 = false; uint _e70 = i_1; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i_1; uint j = (_e75 & 3u); if (!((j == 0u))) { local_26 = (j == 3u); } else { local_26 = true; } bool _e88 = local_26; float x_6 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_27 = (j == 3u); } else { local_27 = true; } bool _e100 = local_27; float w_5 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_8 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_6) : x_6))); vec3 p_9 = (o_1 + (d_6 * t_8)); float _e136 = fog_density(k_9, p_9, (lo_4 + (ld * t_8))); uint _e137 = i_1; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_9, d_6); q_1 = (_e140 + (((e_16.albedo.xyz * _e143) + e_16.emission.xyz) * ((w_5 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_5 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_24, vec3 o_2, vec3 d_7, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_2 = 0u; bool local_28 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_3 = 0u; uint n_7 = 0u; float avail = 0.0; uint i_4 = 0u; uint i_5 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e72 = i_2; i_2 = (_e72 + 1u); } loop_init_5 = false; uint _e13 = i_2; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_2; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_28 = (byte == 0u); } else { local_28 = false; } bool _e37 = local_28; if (_e37) { break; } uint _e42 = i_2; uint k_19 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_19].to_local; vec2 _e57 = fog_chord(k_19, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_7, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_19; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e90 = i_3; i_3 = (_e90 + 1u); } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at[_e82]; uint _e85 = i_3; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } } bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e221 = n_7; n_7 = (_e221 + 1u); } loop_init_7 = false; uint _e94 = n_7; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_7; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_4 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e153 = i_4; i_4 = (_e153 + 1u); } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_4; float _e113 = chords[_e110].y; uint _e114 = n_7; float _e117 = chords[_e114].y; uint _e119 = i_4; float _e122 = chords[_e119].x; uint _e123 = n_7; float _e126 = chords[_e123].x; uint _e131 = i_4; float _e134 = chords[_e131].y; uint _e135 = i_4; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_4; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_7; float _e158 = parts[_e155].w; float _e160 = avail; float f_5 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_5 = 0u; bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e218 = i_5; i_5 = (_e218 + 1u); } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_5; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_5; float _e180 = chords[_e177].y; uint _e181 = n_7; float _e184 = chords[_e181].y; uint _e186 = i_5; float _e189 = chords[_e186].x; uint _e190 = n_7; float _e193 = chords[_e190].x; uint _e198 = i_5; float _e201 = chords[_e198].y; uint _e202 = i_5; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_5; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_5))); } } } } } } bool loop_init_10 = true; while(true) { if (!loop_init_10) { uint _e252 = i_6; i_6 = (_e252 + 1u); } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_6; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_6; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_9 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_24 * t_9) + (_e258 * ((1.0 - t_9) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_25, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_7)); vec3 _e47 = fog_integrate(c_25, o_7, ((world_4 - o_7) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_25); } vec3 sky_fog_volumes(vec3 c_26, vec3 near_point, vec3 dir_5) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back_1 = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_8 = ((_e36 > 0.5) ? (near_point - (back_1 * (_e26 * vec4(near_point, 1.0)).z)) : _e22.xyz); uint _e44 = _group_1_binding_5_fs.counts.y; vec3 _e45 = fog_integrate(c_26, o_8, dir_5, FOG_SKY_DISTANCE, _e44); float _e49 = _group_1_binding_5_fs.params.z; return mix(c_26, _e45, _e49); } float shadow_factor(uint i_7, vec3 world_5, vec3 n_geo_1, vec3 l_3) { uint part = 0u; uint c_27 = 0u; bool local_29 = false; bool local_30 = false; bool local_31 = false; float vis = 0.0; int dy = -1; int dx = 0; uint kind = _group_0_binding_1_fs.lights[i_7].info.x; vec4 _e14 = _group_0_binding_1_fs.lights[i_7].position; vec3 light_pos = _e14.xyz; uint _e21 = _group_0_binding_1_fs.lights[i_7].info.w; uint slot = min(_e21, 15u); vec4 params = _group_0_binding_2_fs.lights[slot].params; uint first = _group_0_binding_2_fs.lights[slot].info.x; uint _e40 = _group_0_binding_2_fs.lights[slot].info.y; uint count = max(_e40, 1u); mat4x4 _e45 = _group_0_binding_0_fs.view; float view_depth = -((_e45 * vec4(world_5, 1.0)).z); if ((kind == LIGHT_DIRECTIONAL)) { float _e60 = _group_0_binding_2_fs.lights[slot].fade.y; if ((view_depth > _e60)) { return 1.0; } part = (count - 1u); bool loop_init_11 = true; while(true) { if (!loop_init_11) { uint _e79 = c_27; c_27 = (_e79 + 1u); } loop_init_11 = false; uint _e67 = c_27; if ((_e67 < count)) { } else { break; } { uint _e73 = c_27; float _e75 = _group_0_binding_2_fs.lights[slot].splits[_e73]; if ((view_depth <= _e75)) { uint _e77 = c_27; part = _e77; break; } } } } uint _e83 = part; vec4 texel_1 = _group_0_binding_2_fs.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; float t_10 = (texel_1.x + (texel_1.y * distance(world_5, light_pos))); vec3 p_10 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1.0)) * t_10))) + (l_3 * (params.x * t_10))); if ((kind == LIGHT_OMNI)) { vec3 d_13 = (p_10 - light_pos); vec3 a_7 = abs(d_13); if ((a_7.x >= a_7.y)) { local_29 = (a_7.x >= a_7.z); } else { local_29 = false; } bool _e123 = local_29; if (_e123) { part = ((d_13.x >= 0.0) ? 0u : 1u); } else { if ((a_7.y >= a_7.z)) { part = ((d_13.y >= 0.0) ? 2u : 3u); } else { part = ((d_13.z >= 0.0) ? 4u : 5u); } } } uint _e145 = part; uint tile_1 = min((first + min(_e145, (count - 1u))), 15u); mat4x4 _e156 = _group_0_binding_2_fs.tiles[tile_1].view_proj; vec4 clip = (_e156 * vec4(p_10, 1.0)); if ((clip.w <= 0.0)) { return 1.0; } vec3 ndc = (clip.xyz / vec3(clip.w)); if (!((abs(ndc.x) > 1.0))) { local_30 = (abs(ndc.y) > 1.0); } else { local_30 = true; } bool _e180 = local_30; if (!(_e180)) { local_31 = (ndc.z > 1.0); } else { local_31 = true; } bool _e188 = local_31; if (_e188) { return 1.0; } vec4 rect = _group_0_binding_2_fs.tiles[tile_1].rect; vec2 uv_6 = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); vec2 auv = (rect.xy + (uv_6 * rect.zw)); float texel_uv = _group_0_binding_2_fs.atlas.x; vec2 lo_5 = (rect.xy + vec2((0.5 * texel_uv))); vec2 hi_4 = ((rect.xy + rect.zw) - vec2((0.5 * texel_uv))); float r_8 = params.z; if ((r_8 <= 0.0)) { float _e235 = textureLod(_group_0_binding_3_fs, vec3(clamp(auv, lo_5, hi_4), ndc.z), 0.0); vis = _e235; } else { float spread = (r_8 * texel_uv); bool loop_init_12 = true; while(true) { if (!loop_init_12) { int _e265 = dy; dy = (_e265 + 1); } loop_init_12 = false; int _e239 = dy; if ((_e239 <= 1)) { } else { break; } { dx = -1; bool loop_init_13 = true; while(true) { if (!loop_init_13) { int _e262 = dx; dx = (_e262 + 1); } loop_init_13 = false; int _e244 = dx; if ((_e244 <= 1)) { } else { break; } { int _e247 = dx; int _e249 = dy; vec2 tap = clamp((auv + (vec2(float(_e247), float(_e249)) * spread)), lo_5, hi_4); float _e255 = vis; float _e259 = textureLod(_group_0_binding_3_fs, vec3(tap, ndc.z), 0.0); vis = (_e255 + _e259); } } } } float _e267 = vis; vis = (_e267 / 9.0); } if ((kind == LIGHT_DIRECTIONAL)) { vec4 fade_1 = _group_0_binding_2_fs.lights[slot].fade; float _e277 = vis; vis = mix(_e277, 1.0, smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return mix(1.0, _e283, params.w); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_8 = abs(d_8); if ((a_8.x >= a_8.y)) { local_32 = (a_8.x >= a_8.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_8.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_8.y >= a_8.z)) { ma = a_8.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 probe_texel(uint row, vec3 fuv, uint level_1) { uint _e6 = _group_0_binding_7_fs.counts.z; float n_14 = float(max((_e6 >> level_1), 1u)); float lo_6 = (0.5 / n_14); float u_1 = clamp(fuv.y, lo_6, (1.0 - lo_6)); float v_9 = clamp(fuv.z, lo_6, (1.0 - lo_6)); vec2 uv_7 = vec2(((fuv.x + u_1) / 6.0), ((float(row) + v_9) / 8.0)); vec4 _e33 = textureLod(_group_3_binding_6_fs, vec2(uv_7), float(level_1)); return _e33.xyz; } vec3 probe_sample(uint row_1, vec3 d_9, float lod) { bool local_33 = false; uint _e6 = _group_0_binding_7_fs.counts.y; uint levels = max(_e6, 1u); float l_10 = clamp(lod, 0.0, float((levels - 1u))); uint m0_ = uint(l_10); float t_11 = (l_10 - float(m0_)); vec3 _e17 = probe_face_uv(d_9); vec3 _e18 = probe_texel(row_1, _e17, m0_); if (!((t_11 <= 0.0))) { local_33 = ((m0_ + 1u) >= levels); } else { local_33 = true; } bool _e28 = local_33; if (_e28) { return _e18; } vec3 _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1.0 - t_11)) + (_e34 * t_11)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_11 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_17 = p_5.extents.xyz; float d_14 = min((e_17.x - abs(l_11.x)), min((e_17.y - abs(l_11.y)), (e_17.z - abs(l_11.z)))); if ((d_14 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_14 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_15 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_15; } vec3 o_9 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_18 = p_6.extents.xyz; float _e24 = probe_exit(o_9.x, d_15.x, e_18.x); float _e28 = probe_exit(o_9.y, d_15.y, e_18.y); float _e32 = probe_exit(o_9.z, d_15.z, e_18.z); float t_12 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_9 + (d_15 * t_12)) - p_6.offset.xyz); } vec4 probe_reflection(vec3 world_8, vec3 r_2, float roughness_2, uint probes) { vec3 acc = vec3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = _group_0_binding_7_fs.counts.x; uint count_1 = min(_e12, MAX_PROBES); uint _e18 = _group_0_binding_7_fs.counts.y; float lod_1 = (roughness_2 * float((max(_e18, 1u) - 1u))); bool loop_init_14 = true; while(true) { if (!loop_init_14) { uint _e57 = i_8; i_8 = (_e57 + 1u); } loop_init_14 = false; uint _e27 = i_8; if ((_e27 < count_1)) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_11 = _group_0_binding_7_fs.probes[_e31]; if ((((probes >> p_11.info.w) & 1u) == 0u)) { continue; } float _e41 = probe_weight(p_11, world_8); if ((_e41 <= 0.0)) { continue; } vec3 _e44 = acc; vec3 _e47 = probe_lookup(p_11, world_8, r_2); vec3 _e48 = probe_sample(p_11.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_11.offset.w) * _e41)); float _e54 = w_sum; w_sum = (_e54 + _e41); } } float _e59 = w_sum; if ((_e59 > 1.0)) { vec3 _e62 = acc; float _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1.0; } vec3 _e67 = acc; float _e68 = w_sum; return vec4(_e67, _e68); } vec4 probe_ambient(vec3 world_9, vec3 n_10, uint probes_1) { vec3 acc_1 = vec3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_34 = false; vec3 c_28 = vec3(0.0); uint _e11 = _group_0_binding_7_fs.counts.x; uint count_2 = min(_e11, MAX_PROBES); uint _e17 = _group_0_binding_7_fs.counts.y; uint last = (max(_e17, 1u) - 1u); bool loop_init_15 = true; while(true) { if (!loop_init_15) { uint _e73 = i_9; i_9 = (_e73 + 1u); } loop_init_15 = false; uint _e24 = i_9; if ((_e24 < count_2)) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_12 = _group_0_binding_7_fs.probes[_e28]; if (!((((probes_1 >> p_12.info.w) & 1u) == 0u))) { local_34 = (p_12.info.y == PROBE_AMBIENT_DISABLED); } else { local_34 = true; } bool _e46 = local_34; if (_e46) { continue; } float _e47 = probe_weight(p_12, world_9); if ((_e47 <= 0.0)) { continue; } c_28 = p_12.ambient.xyz; if ((p_12.info.y == PROBE_AMBIENT_ENVIRONMENT)) { vec3 _e64 = probe_face_uv((p_12.to_local * vec4(n_10, 0.0)).xyz); vec3 _e65 = probe_texel(p_12.info.w, _e64, last); c_28 = _e65; } vec3 _e66 = acc_1; vec3 _e67 = c_28; acc_1 = (_e66 + (_e67 * _e47)); float _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } } float _e75 = w_sum_1; if ((_e75 > 1.0)) { vec3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1.0; } vec3 _e83 = acc_1; float _e84 = w_sum_1; return vec4(_e83, _e84); } vec3 lit_with(VsOut in_21, bool front_1, Samples s_6, bool baked_1, vec3 baked_light_1) { vec3 n_mat = vec3(0.0); vec3 t_2 = vec3(0.0); DecalSurface surf_1 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); vec3 c_29 = vec3(0.0); uint k_10 = 0u; bool local_35 = false; vec3 l_4 = vec3(0.0); float atten_1 = 0.0; vec3 radiance_3 = vec3(0.0); vec3 ambient = vec3(0.0); vec3 diffuse_amb = vec3(0.0); vec3 spec_amb = vec3(0.0); vec3 dif = vec3(0.0); vec3 dif_1 = vec3(0.0); vec3 dif_2 = vec3(0.0); bool local_36 = false; vec3 n_geo_2 = (front_1 ? normalize(in_21.normal) : -(normalize(in_21.normal))); n_mat = n_geo_2; uint _e16 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e16 & T_NORMAL) != 0u) : false)) { t_2 = in_21.tangent.xyz; vec3 _e26 = t_2; vec3 _e27 = n_mat; vec3 _e28 = n_mat; vec3 _e29 = t_2; t_2 = normalize((_e26 - (_e27 * dot(_e28, _e29)))); vec3 _e34 = n_mat; vec3 _e35 = t_2; vec3 b_4 = (cross(_e34, _e35) * in_21.tangent.w); vec3 _e40 = t_2; vec3 _e48 = n_mat; n_mat = normalize((((_e40 * s_6.normal.x) + (b_4 * s_6.normal.y)) + (_e48 * s_6.normal.z))); } float _e59 = _group_2_binding_0_fs.factors.x; float _e69 = _group_2_binding_0_fs.factors.y; vec3 _e77 = n_mat; surf_1 = DecalSurface(s_6.base.xyz, clamp((_e59 * s_6.mr.z), 0.0, 1.0), clamp((_e69 * s_6.mr.y), 0.045, 1.0), s_6.occlusion, _e77, s_6.emission); uint _e85 = _group_1_binding_0_fs.decals.z; if ((SPEC_DECALS ? (_e85 > 0u) : false)) { DecalSurface _e91 = surf_1; DecalSurface _e92 = apply_decals(in_21.world, n_geo_2, _e91); surf_1 = _e92; } float metallic_2 = surf_1.metallic; float roughness_8 = surf_1.roughness; float a2_5 = (((roughness_8 * roughness_8) * roughness_8) * roughness_8); vec3 base_2 = surf_1.base; vec3 diffuse_5 = (base_2 * (1.0 - metallic_2)); vec3 f0_7 = mix(vec3(0.04), base_2, metallic_2); vec3 n_15 = surf_1.normal; float _e114 = _group_0_binding_0_fs.view[0][2]; float _e119 = _group_0_binding_0_fs.view[1][2]; float _e124 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e114, _e119, _e124); vec4 _e128 = _group_0_binding_0_fs.camera_pos; float _e137 = _group_0_binding_0_fs.camera_pos.w; vec3 v_10 = ((_e137 > 0.5) ? normalize(view_dir) : normalize((_e128.xyz - in_21.world))); uint _e144 = object_light_count(); bool loop_init_16 = true; while(true) { if (!loop_init_16) { uint _e248 = k_10; k_10 = (_e248 + 1u); } loop_init_16 = false; uint _e148 = k_10; if ((SPEC_LIGHTS ? (_e148 < _e144) : false)) { } else { break; } { uint _e152 = k_10; uint _e153 = object_light(_e152); LightU li_1 = _group_0_binding_1_fs.lights[_e153]; if (baked_1) { local_35 = (li_1.info.z == LIGHT_BAKED_STATIC); } else { local_35 = false; } bool _e165 = local_35; if (_e165) { continue; } uint kind_1 = li_1.info.x; l_4 = vec3(0.0); atten_1 = 1.0; if ((kind_1 == LIGHT_DIRECTIONAL)) { l_4 = -(li_1.direction.xyz); } else { vec3 rel_1 = (li_1.position.xyz - in_21.world); float d_16 = length(rel_1); l_4 = (rel_1 / vec3(max(d_16, 1e-6))); float _e190 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e190; if ((kind_1 == LIGHT_SPOT)) { float cone = li_1.spot.x; vec3 _e195 = l_4; float scos = max(dot(-(_e195), li_1.direction.xyz), cone); float rim_3 = max(0.0001, ((1.0 - scos) / max((1.0 - cone), 1e-6))); float _e210 = atten_1; atten_1 = (_e210 * (1.0 - pow(rim_3, li_1.spot.y))); } } float _e217 = atten_1; if ((_e217 > 0.0)) { float _e222 = atten_1; radiance_3 = (li_1.color.xyz * _e222); if ((SPEC_SHADOWS ? (li_1.info.y == LIGHT_SHADOWED) : false)) { float _e234 = atten_1; vec3 _e236 = l_4; float _e237 = shadow_factor(_e153, in_21.world, n_geo_2, _e236); radiance_3 = (li_1.color.xyz * (_e234 * _e237)); } vec3 _e240 = c_29; vec3 _e241 = l_4; vec3 _e242 = radiance_3; vec3 _e245 = light_specular(n_15, v_10, _e241, _e242, diffuse_5, f0_7, a2_5, li_1.spot.z); c_29 = (_e240 + _e245); } } } float nv_9 = max(dot(n_15, v_10), 0.0001); vec3 f_amb_1 = (f0_7 + ((max(vec3((1.0 - roughness_8)), f0_7) - f0_7) * pow((1.0 - nv_9), 5.0))); vec4 _e264 = gi_diffuse(n_15, baked_1, baked_light_1); uint _e270 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e270 & SKY_IBL) != 0u) : false)) { float _e280 = _group_0_binding_5_fs.ibl.x; float _e284 = _group_0_binding_5_fs.sun.w; float scale_1 = (_e280 * _e284); vec4 _e288 = _group_0_binding_5_fs.ambient; diffuse_amb = _e288.xyz; uint _e294 = _group_0_binding_5_fs.flags.x; if (((_e294 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e301 = _group_0_binding_5_fs.ambient; vec3 _e303 = sky_dir(n_15); vec3 _e304 = sh_irradiance(_e303); float _e309 = _group_0_binding_5_fs.ambient.w; diffuse_amb = mix(_e301.xyz, (_e304 * scale_1), _e309); } if ((_e264.w > 0.0)) { diffuse_amb = _e264.xyz; } vec4 _e317 = _group_0_binding_5_fs.ambient; spec_amb = _e317.xyz; uint _e323 = _group_0_binding_5_fs.flags.x; if (((_e323 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e330 = sky_dir(reflect(-(v_10), n_15)); vec3 _e331 = radiance_2(_e330, roughness_8); spec_amb = (_e331 * scale_1); } else { uint _e336 = _group_0_binding_5_fs.flags.x; if (((_e336 & SKY_REFLECT_OFF) != 0u)) { spec_amb = vec3(0.0); } } vec2 _e343 = env_brdf_approx(roughness_8, nv_9); uint _e348 = _group_0_binding_7_fs.counts.x; if ((SPEC_PROBES ? (_e348 > 0u) : false)) { uint _e359 = _group_1_binding_0_fs.extra.z; vec4 _e360 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e359); vec3 _e361 = spec_amb; vec3 spec_4 = ((_e361 * (1.0 - _e360.w)) + _e360.xyz); vec3 _e368 = diffuse_amb; dif = _e368; if ((_e264.w <= 0.0)) { uint _e377 = _group_1_binding_0_fs.extra.z; vec4 _e378 = probe_ambient(in_21.world, n_15, _e377); vec3 _e379 = diffuse_amb; dif = ((_e379 * (1.0 - _e378.w)) + _e378.xyz); } vec3 _e386 = dif; ambient = ((diffuse_5 * _e386) + (spec_4 * ((f0_7 * _e343.x) + vec3((_e343.y * clamp((50.0 * f0_7.y), metallic_2, 1.0)))))); } else { vec3 _e401 = diffuse_amb; vec3 _e403 = spec_amb; ambient = ((diffuse_5 * _e401) + (_e403 * ((f0_7 * _e343.x) + vec3((_e343.y * clamp((50.0 * f0_7.y), metallic_2, 1.0)))))); } } else { uint _e420 = _group_0_binding_1_fs.counts.y; if (((_e420 & ENV_AMBIENT_SKY) != 0u)) { vec4 _e427 = _group_0_binding_1_fs.up; vec3 up_2 = _e427.xyz; vec4 _e431 = _group_0_binding_1_fs.sky_top; vec4 _e435 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e431.xyz + _e435.xyz) * 0.5); vec4 _e442 = _group_0_binding_1_fs.ground_horizon; vec4 _e446 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e442.xyz + _e446.xyz) * 0.5); vec3 irradiance_1 = mix(ground_avg, sky_avg, clamp(((dot(n_15, up_2) * 0.5) + 0.5), 0.0, 1.0)); vec3 _e462 = sky(reflect(-(v_10), n_15)); vec3 blurred_1 = mix(_e462, sky_avg, roughness_8); uint _e467 = _group_0_binding_7_fs.counts.x; if ((_e467 > 0u)) { uint _e476 = _group_1_binding_0_fs.extra.z; vec4 _e477 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e476); float _e481 = _group_0_binding_1_fs.ambient.w; vec3 spec_5 = (((blurred_1 * _e481) * (1.0 - _e477.w)) + _e477.xyz); dif_1 = _e264.xyz; if ((_e264.w <= 0.0)) { uint _e498 = _group_1_binding_0_fs.extra.z; vec4 _e499 = probe_ambient(in_21.world, n_15, _e498); float _e503 = _group_0_binding_1_fs.ambient.w; dif_1 = (((irradiance_1 * _e503) * (1.0 - _e499.w)) + _e499.xyz); } vec3 _e511 = dif_1; ambient = ((diffuse_5 * _e511) + (spec_5 * f_amb_1)); } else { if ((_e264.w > 0.0)) { float _e524 = _group_0_binding_1_fs.ambient.w; ambient = ((diffuse_5 * _e264.xyz) + ((blurred_1 * f_amb_1) * _e524)); } else { float _e533 = _group_0_binding_1_fs.ambient.w; ambient = (((diffuse_5 * irradiance_1) + (blurred_1 * f_amb_1)) * _e533); } } } else { uint _e538 = _group_0_binding_7_fs.counts.x; if ((_e538 > 0u)) { uint _e547 = _group_1_binding_0_fs.extra.z; vec4 _e548 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e547); vec4 _e551 = _group_0_binding_1_fs.ambient; vec3 spec_6 = ((_e551.xyz * (1.0 - _e548.w)) + _e548.xyz); dif_2 = _e264.xyz; if ((_e264.w <= 0.0)) { uint _e568 = _group_1_binding_0_fs.extra.z; vec4 _e569 = probe_ambient(in_21.world, n_15, _e568); vec4 _e572 = _group_0_binding_1_fs.ambient; dif_2 = ((_e572.xyz * (1.0 - _e569.w)) + _e569.xyz); } vec3 _e580 = dif_2; ambient = ((diffuse_5 * _e580) + (spec_6 * f_amb_1)); } else { if ((_e264.w > 0.0)) { vec4 _e591 = _group_0_binding_1_fs.ambient; ambient = ((diffuse_5 * _e264.xyz) + (_e591.xyz * f_amb_1)); } else { vec4 _e597 = _group_0_binding_1_fs.ambient; ambient = (_e597.xyz * (diffuse_5 + f_amb_1)); } } } } uint _e605 = _group_0_binding_1_fs.counts.y; if (((_e605 & ENV_SSAO) != 0u)) { uint _e615 = _group_2_binding_0_fs.flags.y; local_36 = (_e615 != ALPHA_BLEND); } else { local_36 = false; } bool _e619 = local_36; if ((SPEC_SSAO ? _e619 : false)) { vec4 _e628 = texelFetch(_group_0_binding_6_fs, ivec2(floor(in_21.clip.xy)), 0); float ssao = _e628.x; vec3 _e630 = c_29; float _e632 = surf_1.occlusion; float _e637 = _group_0_binding_1_fs.tone.z; float _e641 = _group_0_binding_1_fs.tone.w; c_29 = (_e630 * mix(1.0, min(ssao, _e632), (_e637 * _e641))); vec3 _e646 = c_29; vec3 _e647 = ambient; float _e649 = surf_1.occlusion; c_29 = (_e646 + (_e647 * min(_e649, ssao))); } else { vec3 _e653 = c_29; vec3 _e654 = ambient; float _e656 = surf_1.occlusion; c_29 = (_e653 + (_e654 * _e656)); } vec3 _e659 = c_29; vec3 _e661 = surf_1.emission; c_29 = (_e659 + _e661); uint _e667 = _group_0_binding_5_fs.flags.x; if ((SPEC_FOG ? ((_e667 & SKY_FOG) != 0u) : false)) { vec3 _e674 = c_29; vec3 _e677 = surface_fog(_e674, in_21.world, -(v_10)); c_29 = _e677; } uint _e682 = _group_1_binding_0_fs.decals.w; if ((SPEC_FOG_VOLUMES ? (_e682 != 0u) : false)) { vec3 _e687 = c_29; uint _e692 = _group_1_binding_0_fs.decals.w; vec3 _e693 = fog_volumes(_e687, in_21.world, _e692); c_29 = _e693; } vec3 _e694 = c_29; vec3 _e695 = tonemap(_e694); return _e695; } vec3 lit(VsOut in_22, bool front_2, Samples s_7) { vec3 _e6 = lit_with(in_22, front_2, s_7, false, vec3(0.0)); return _e6; } vec4 lit_output(vec4 c_30) { uint _e4 = _group_0_binding_1_fs.counts.y; if (((_e4 & ENV_HDR) != 0u)) { return vec4(max(c_30.xyz, vec3(0.0)), clamp(c_30.w, 0.0, 1.0)); } vec4 _e18 = target_color(c_30); return _e18; } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_fs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_fs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_fs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_fs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_fs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_fs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_fs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_fs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_fs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_fs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec2 ext_uv(uint s_8, vec2 uv0_, vec2 uv1_5) { vec4 r0_ = _group_2_binding_0_fs.xf[(s_8 * 2u)]; vec4 r1_ = _group_2_binding_0_fs.xf[((s_8 * 2u) + 1u)]; vec2 uv_8 = ((r0_.w > 0.5) ? uv1_5 : uv0_); return vec2((dot(r0_.xy, uv_8) + r0_.z), (dot(r1_.xy, uv_8) + r1_.z)); } float ext_where(uint s_9) { float _e9 = _group_2_binding_0_fs.xf[((s_9 * 2u) + 1u)].w; return _e9; } vec4 ext_layer(uint s_10, vec2 uv0_1, vec2 uv1_6) { vec2 _e5 = ext_uv(s_10, uv0_1, uv1_6); float _e6 = ext_where(s_10); vec4 _e12 = texture(_group_2_binding_7_fs, vec3(_e5, (int((_e6 + 0.5)) - 1))); return _e12; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } ExtSamples sample_ext(VsOutExt in_25) { ExtSamples s_11 = ExtSamples(vec4(0.0), vec3(0.0), 0.0, 0.0, vec3(0.0), 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec3(0.0), false, vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec2(0.0), 0.0, vec3(0.0)); vec4 c_31 = vec4(0.0); float thick = 1.0; vec2 _e2 = tex_uv(in_25.uv); vec2 _e4 = tex_uv(in_25.uv1_); vec4 _e9 = _group_2_binding_0_fs.base_color; s_11.base = _e9; uint _e14 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e14 & T_BASE) != 0u) : false)) { vec4 _e22 = s_11.base; vec2 _e26 = ext_uv(SLOT_BASE, _e2, _e4); vec4 _e27 = texture(_group_2_binding_1_fs, vec2(_e26)); vec4 _e28 = decoded_base(_e27); s_11.base = (_e22 * _e28); } uint _e34 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e34 & MAT_VERTEX_COLOR) != 0u) : false)) { c_31 = in_25.color; uint _e46 = _group_2_binding_0_fs.flags.w; if (((_e46 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e51 = c_31; vec3 _e53 = srgb_to_linear(_e51.xyz); float _e55 = c_31.w; c_31 = vec4(_e53, _e55); } vec4 _e59 = s_11.base; vec4 _e60 = c_31; s_11.base = (_e59 * _e60); } s_11.normal = vec3(0.0, 0.0, 1.0); uint _e71 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e71 & T_NORMAL) != 0u) : false)) { vec2 _e82 = ext_uv(SLOT_NORMAL, _e2, _e4); vec4 _e83 = texture(_group_2_binding_2_fs, vec2(_e82)); float _e89 = _group_2_binding_0_fs.ext[3].w; vec3 _e90 = scaled_normal(_e83.xyz, _e89); s_11.normal = _e90; } float _e95 = _group_2_binding_0_fs.factors.x; s_11.metallic = _e95; float _e98 = ext_where(SLOT_METALLIC); if ((SPEC_TEX_MR ? (_e98 > 0.5) : false)) { float _e104 = s_11.metallic; vec2 _e108 = ext_uv(SLOT_METALLIC, _e2, _e4); vec4 _e109 = texture(_group_2_binding_3_fs, vec2(_e108)); s_11.metallic = (_e104 * _e109.z); } float _e116 = _group_2_binding_0_fs.factors.y; s_11.roughness = _e116; uint _e121 = _group_2_binding_0_fs.flags.w; if ((SPEC_ROUGHNESS_LAYER ? ((_e121 & MAT_ROUGHNESS_LAYER) != 0u) : false)) { float _e129 = ext_where(SLOT_ROUGHNESS); if ((_e129 > 0.5)) { float _e133 = s_11.roughness; vec4 _e135 = ext_layer(SLOT_ROUGHNESS, _e2, _e4); s_11.roughness = (_e133 * _e135.y); } } else { float _e140 = ext_where(SLOT_ROUGHNESS); if ((SPEC_TEX_MR ? (_e140 > 0.5) : false)) { float _e146 = s_11.roughness; vec2 _e150 = ext_uv(SLOT_ROUGHNESS, _e2, _e4); vec4 _e151 = texture(_group_2_binding_3_fs, vec2(_e150)); s_11.roughness = (_e146 * _e151.y); } } vec4 _e157 = _group_2_binding_0_fs.emission; s_11.emission = _e157.xyz; uint _e163 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e163 & T_EMISSION) != 0u) : false)) { vec3 _e171 = s_11.emission; vec2 _e175 = ext_uv(SLOT_EMISSIVE, _e2, _e4); vec4 _e176 = texture(_group_2_binding_4_fs, vec2(_e175)); vec3 _e178 = decoded_emission(_e176.xyz); s_11.emission = (_e171 * _e178); } s_11.occlusion = 1.0; uint _e186 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e186 & T_OCCLUSION) != 0u) : false)) { vec2 _e196 = ext_uv(SLOT_OCCLUSION, _e2, _e4); vec4 _e197 = texture(_group_2_binding_5_fs, vec2(_e196)); float o_10 = _e197.x; float _e204 = _group_2_binding_0_fs.ext[6].w; s_11.occlusion = (1.0 + (_e204 * (o_10 - 1.0))); } float _e215 = _group_2_binding_0_fs.ext[0].w; s_11.specular = _e215; float _e218 = ext_where(SLOT_SPECULAR); if ((SPEC_EXT_LAYERS ? (_e218 > 0.5) : false)) { float _e224 = s_11.specular; vec4 _e226 = ext_layer(SLOT_SPECULAR, _e2, _e4); s_11.specular = (_e224 * _e226.w); } vec4 _e233 = _group_2_binding_0_fs.ext[0]; s_11.specular_color = _e233.xyz; float _e237 = ext_where(SLOT_SPECULAR_COLOR); if ((SPEC_EXT_LAYERS ? (_e237 > 0.5) : false)) { vec3 _e243 = s_11.specular_color; vec4 _e245 = ext_layer(SLOT_SPECULAR_COLOR, _e2, _e4); vec3 _e247 = srgb_to_linear(_e245.xyz); s_11.specular_color = (_e243 * _e247); } float _e254 = _group_2_binding_0_fs.ext[1].y; s_11.transmission = _e254; float _e257 = ext_where(SLOT_TRANSMISSION); if ((SPEC_EXT_LAYERS ? (_e257 > 0.5) : false)) { float _e263 = s_11.transmission; vec4 _e265 = ext_layer(SLOT_TRANSMISSION, _e2, _e4); s_11.transmission = (_e263 * _e265.x); } float _e273 = _group_2_binding_0_fs.ext[1].z; s_11.thickness = _e273; float _e276 = ext_where(SLOT_THICKNESS); if ((SPEC_EXT_LAYERS ? (_e276 > 0.5) : false)) { float _e282 = s_11.thickness; vec4 _e284 = ext_layer(SLOT_THICKNESS, _e2, _e4); s_11.thickness = (_e282 * _e284.y); } float _e292 = _group_2_binding_0_fs.ext[3].x; s_11.clearcoat = _e292; float _e295 = ext_where(SLOT_CLEARCOAT); if ((SPEC_EXT_LAYERS ? (_e295 > 0.5) : false)) { float _e301 = s_11.clearcoat; vec4 _e303 = ext_layer(SLOT_CLEARCOAT, _e2, _e4); s_11.clearcoat = (_e301 * _e303.x); } float _e311 = _group_2_binding_0_fs.ext[3].y; s_11.clearcoat_roughness = _e311; float _e314 = ext_where(SLOT_CLEARCOAT_ROUGHNESS); if ((SPEC_EXT_LAYERS ? (_e314 > 0.5) : false)) { float _e320 = s_11.clearcoat_roughness; vec4 _e322 = ext_layer(SLOT_CLEARCOAT_ROUGHNESS, _e2, _e4); s_11.clearcoat_roughness = (_e320 * _e322.y); } s_11.clearcoat_normal = vec3(0.0, 0.0, 1.0); s_11.clearcoat_mapped = false; float _e334 = ext_where(SLOT_CLEARCOAT_NORMAL); if ((SPEC_EXT_LAYERS ? (_e334 > 0.5) : false)) { vec4 _e341 = ext_layer(SLOT_CLEARCOAT_NORMAL, _e2, _e4); float _e347 = _group_2_binding_0_fs.ext[3].z; vec3 _e348 = scaled_normal(_e341.xyz, _e347); s_11.clearcoat_normal = _e348; s_11.clearcoat_mapped = true; } vec4 _e355 = _group_2_binding_0_fs.ext[4]; s_11.sheen_color = _e355.xyz; float _e359 = ext_where(SLOT_SHEEN_COLOR); if ((SPEC_EXT_LAYERS ? (_e359 > 0.5) : false)) { vec3 _e365 = s_11.sheen_color; vec4 _e367 = ext_layer(SLOT_SHEEN_COLOR, _e2, _e4); vec3 _e369 = srgb_to_linear(_e367.xyz); s_11.sheen_color = (_e365 * _e369); } float _e376 = _group_2_binding_0_fs.ext[4].w; s_11.sheen_roughness = _e376; float _e379 = ext_where(SLOT_SHEEN_ROUGHNESS); if ((SPEC_EXT_LAYERS ? (_e379 > 0.5) : false)) { float _e385 = s_11.sheen_roughness; vec4 _e387 = ext_layer(SLOT_SHEEN_ROUGHNESS, _e2, _e4); s_11.sheen_roughness = (_e385 * _e387.w); } float _e395 = _group_2_binding_0_fs.ext[5].x; s_11.iridescence = _e395; float _e398 = ext_where(SLOT_IRIDESCENCE); if ((SPEC_EXT_LAYERS ? (_e398 > 0.5) : false)) { float _e404 = s_11.iridescence; vec4 _e406 = ext_layer(SLOT_IRIDESCENCE, _e2, _e4); s_11.iridescence = (_e404 * _e406.x); } float _e413 = ext_where(SLOT_IRIDESCENCE_THICKNESS); if ((SPEC_EXT_LAYERS ? (_e413 > 0.5) : false)) { vec4 _e419 = ext_layer(SLOT_IRIDESCENCE_THICKNESS, _e2, _e4); thick = _e419.y; } float _e426 = _group_2_binding_0_fs.ext[5].z; float _e431 = _group_2_binding_0_fs.ext[5].w; float _e432 = thick; s_11.iridescence_thickness = mix(_e426, _e431, _e432); float _e439 = _group_2_binding_0_fs.ext[6].x; s_11.anisotropy = _e439; vec4 _e444 = _group_2_binding_0_fs.ext[6]; s_11.anisotropy_dir = _e444.yz; float _e448 = ext_where(SLOT_ANISOTROPY); if ((SPEC_EXT_LAYERS ? (_e448 > 0.5) : false)) { vec4 _e454 = ext_layer(SLOT_ANISOTROPY, _e2, _e4); vec3 a_9 = _e454.xyz; vec2 d_17 = ((a_9.xy * 2.0) - vec2(1.0)); vec2 dn_1 = ((dot(d_17, d_17) > 1e-8) ? normalize(d_17) : vec2(1.0, 0.0)); float c_40 = _group_2_binding_0_fs.ext[6].y; float sn = _group_2_binding_0_fs.ext[6].z; s_11.anisotropy_dir = vec2(((c_40 * dn_1.x) - (sn * dn_1.y)), ((sn * dn_1.x) + (c_40 * dn_1.y))); float _e493 = s_11.anisotropy; s_11.anisotropy = (_e493 * a_9.z); } float _e501 = _group_2_binding_0_fs.ext[7].w; s_11.diffuse_transmission = _e501; float _e504 = ext_where(SLOT_DIFFUSE_TRANSMISSION); if ((SPEC_EXT_LAYERS ? (_e504 > 0.5) : false)) { float _e510 = s_11.diffuse_transmission; vec4 _e512 = ext_layer(SLOT_DIFFUSE_TRANSMISSION, _e2, _e4); s_11.diffuse_transmission = (_e510 * _e512.w); } vec4 _e519 = _group_2_binding_0_fs.ext[7]; s_11.diffuse_transmission_color = _e519.xyz; float _e523 = ext_where(SLOT_DIFFUSE_TRANSMISSION_COLOR); if ((SPEC_EXT_LAYERS ? (_e523 > 0.5) : false)) { vec3 _e529 = s_11.diffuse_transmission_color; vec4 _e531 = ext_layer(SLOT_DIFFUSE_TRANSMISSION_COLOR, _e2, _e4); vec3 _e533 = srgb_to_linear(_e531.xyz); s_11.diffuse_transmission_color = (_e529 * _e533); } ExtSamples _e535 = s_11; return _e535; } bool ext_cut(ExtSamples s_12) { bool local_37 = false; uint _e5 = _group_2_binding_0_fs.flags.y; if ((_e5 == ALPHA_MASK)) { float _e15 = _group_2_binding_0_fs.emission.w; local_37 = (s_12.base.w < _e15); } else { local_37 = false; } bool _e18 = local_37; return (SPEC_ALPHA_MASK ? _e18 : false); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_6 = (at_1 * ab); vec3 f_6 = vec3((ab * th), (at_1 * bh), (a2_6 * nh_1)); float w2_ = (a2_6 / dot(f_6, f_6)); return (((a2_6 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_11 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_10 = mix(21.5473, 25.3245, o_11); float b_5 = mix(3.82987, 3.32435, o_11); float c_41 = mix(0.19823, 0.16801, o_11); float d_18 = mix(-1.9776, -1.27393, o_11); float e_19 = mix(-4.32054, -4.85967, o_11); return (((a_10 / (1.0 + (b_5 * pow(max(x_3, 1e-6), c_41)))) + (d_18 * x_3)) + e_19); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_7 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y_1 = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_14 = min(int(floor(x_7)), 14); int j_1 = min(int(floor(y_1)), 6); float fx = (x_7 - float(i_14)); float fy = (y_1 - float(j_1)); float _e166 = t_3[((j_1 * 16) + i_14)]; float _e173 = t_3[(((j_1 * 16) + i_14) + 1)]; float a_11 = mix(_e166, _e173, fx); float _e181 = t_3[(((j_1 + 1) * 16) + i_14)]; float _e190 = t_3[((((j_1 + 1) * 16) + i_14) + 1)]; float b_6 = mix(_e181, _e190, fx); return mix(a_11, b_6, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_9 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_9 * r_9); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_20 = (outside / film); float sin2sq = ((k_20 * k_20) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_1 = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_1 + ((1.0 - r0_1) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init_17 = true; while(true) { if (!loop_init_17) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init_17 = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir_1 = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir_1) : normalize((_e19.xyz - world_10))); } ExtCtx ext_ctx(VsOutExt in_26, bool front_3, ExtSamples s_13, bool decals) { ExtCtx e_4 = ExtCtx(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0), 0.0, vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), false, 0.0, vec2(0.0), 0.0, 0.0, vec3(0.0)); vec3 t_4 = vec3(0.0); DecalSurface surf_2 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); bool local_38 = false; vec3 n_geo_3 = (front_3 ? normalize(in_26.normal) : -(normalize(in_26.normal))); t_4 = in_26.tangent.xyz; vec3 _e14 = t_4; vec3 _e15 = t_4; t_4 = normalize((_e14 - (n_geo_3 * dot(n_geo_3, _e15)))); vec3 _e20 = t_4; vec3 b_7 = (cross(n_geo_3, _e20) * in_26.tangent.w); e_4.n_geo = n_geo_3; e_4.n = n_geo_3; uint _e31 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e31 & T_NORMAL) != 0u) : false)) { vec3 _e39 = t_4; e_4.n = normalize((((_e39 * s_13.normal.x) + (b_7 * s_13.normal.y)) + (n_geo_3 * s_13.normal.z))); } e_4.nc = n_geo_3; if (s_13.clearcoat_mapped) { vec3 _e55 = t_4; e_4.nc = normalize((((_e55 * s_13.clearcoat_normal.x) + (b_7 * s_13.clearcoat_normal.y)) + (n_geo_3 * s_13.clearcoat_normal.z))); } vec3 _e80 = e_4.n; surf_2 = DecalSurface(s_13.base.xyz, clamp(s_13.metallic, 0.0, 1.0), clamp(s_13.roughness, 0.045, 1.0), s_13.occlusion, _e80, s_13.emission); if ((SPEC_DECALS ? decals : false)) { DecalSurface _e88 = surf_2; DecalSurface _e89 = apply_decals(in_26.world, n_geo_3, _e88); surf_2 = _e89; } vec3 _e92 = surf_2.normal; e_4.n = _e92; float _e95 = surf_2.occlusion; e_4.occlusion = _e95; vec3 _e98 = surf_2.emission; e_4.emission = _e98; vec3 _e101 = ext_view(in_26.world); e_4.v = _e101; e_4.world = in_26.world; vec3 _e106 = e_4.n; vec3 _e108 = e_4.v; e_4.nv = max(dot(_e106, _e108), 0.0001); float _e114 = surf_2.metallic; e_4.metallic = _e114; float _e117 = surf_2.roughness; e_4.roughness = _e117; float _e120 = e_4.roughness; float _e122 = e_4.roughness; e_4.alpha = (_e120 * _e122); float _e126 = e_4.alpha; float _e128 = e_4.alpha; e_4.a2_ = (_e126 * _e128); vec3 _e132 = surf_2.base; e_4.base = _e132; vec3 _e135 = e_4.base; float _e137 = e_4.metallic; e_4.diffuse = (_e135 * (1.0 - _e137)); float _e146 = _group_2_binding_0_fs.ext[1].x; e_4.ior = max(_e146, 1.0); float _e150 = e_4.ior; float _e154 = e_4.ior; float r_10 = ((_e150 - 1.0) / (_e154 + 1.0)); float spec_7 = max(s_13.specular, 0.0); vec3 dielectric_f0_ = (min((vec3((r_10 * r_10)) * s_13.specular_color), vec3(1.0)) * spec_7); vec3 _e171 = e_4.base; float _e173 = e_4.metallic; e_4.f0_ = mix(dielectric_f0_, _e171, _e173); float _e180 = e_4.metallic; e_4.f90_ = mix(vec3(spec_7), vec3(1.0), _e180); e_4.iridescence = clamp(s_13.iridescence, 0.0, 1.0); vec3 _e189 = e_4.f0_; e_4.irid_f = _e189; float _e192 = e_4.iridescence; if ((SPEC_IRIDESCENCE ? (_e192 > 0.0) : false)) { float _e203 = _group_2_binding_0_fs.ext[5].y; float _e205 = e_4.nv; vec3 _e208 = e_4.f0_; vec3 _e209 = eval_iridescence(1.0, _e203, _e205, s_13.iridescence_thickness, _e208); e_4.irid_f = _e209; } e_4.aniso = clamp(s_13.anisotropy, 0.0, 1.0); vec3 _e216 = t_4; e_4.aniso_t = normalize(((_e216 * s_13.anisotropy_dir.x) + (b_7 * s_13.anisotropy_dir.y))); vec3 _e227 = e_4.aniso_t; e_4.aniso_b = normalize(cross(n_geo_3, _e227)); e_4.clearcoat = clamp(s_13.clearcoat, 0.0, 1.0); e_4.cc_roughness = clamp(s_13.clearcoat_roughness, 0.045, 1.0); float _e241 = e_4.cc_roughness; float _e243 = e_4.cc_roughness; float cca = (_e241 * _e243); e_4.cc_a2_ = (cca * cca); e_4.sheen = max(s_13.sheen_color, vec3(0.0)); e_4.sheen_roughness = clamp(s_13.sheen_roughness, 0.07, 1.0); float _e259 = e_4.sheen_roughness; float _e261 = e_4.sheen_roughness; e_4.sheen_alpha = (_e259 * _e261); e_4.dt = clamp(s_13.diffuse_transmission, 0.0, 1.0); e_4.dt_color = max(s_13.diffuse_transmission_color, vec3(0.0)); e_4.transmission = clamp(s_13.transmission, 0.0, 1.0); float _e280 = e_4.alpha; float _e282 = e_4.ior; e_4.trans_alpha = max((_e280 * clamp(((_e282 * 2.0) - 2.0), 0.0, 1.0)), 0.002); vec4 _e296 = _group_1_binding_0_fs.model[0]; vec4 _e302 = _group_1_binding_0_fs.model[1]; vec4 _e309 = _group_1_binding_0_fs.model[2]; float scale_2 = (((length(_e296.xyz) + length(_e302.xyz)) + length(_e309.xyz)) / 3.0); float dist_1 = (max(s_13.thickness, 0.0) * scale_2); e_4.thin = (dist_1 <= 0.0); e_4.thickness = dist_1; e_4.frag = in_26.clip.xy; e_4.attenuation = vec3(1.0); float _e334 = _group_2_binding_0_fs.ext[1].w; if ((_e334 > 0.0)) { local_38 = (dist_1 > 0.0); } else { local_38 = false; } bool _e342 = local_38; if ((SPEC_VOLUME ? _e342 : false)) { vec4 _e349 = _group_2_binding_0_fs.ext[2]; float _e358 = _group_2_binding_0_fs.ext[1].w; e_4.attenuation = pow(max(_e349.xyz, vec3(1e-6)), vec3((dist_1 / _e358))); } float _e367 = _group_2_binding_0_fs.ext[2].w; e_4.dispersion = _e367; ExtCtx _e368 = e_4; return _e368; } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_6 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_6), 0.0); float vh_5 = max(dot(e_6.v, h_6), 0.0); float nv_10 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_6), dot(e_6.aniso_b, h_6), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_10, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_10, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back_2 = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back_2, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_10, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_3 = (_e175 + _e176); c_33 = (base_3 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_10, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_10, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_6), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec3 ext_irradiance(vec3 n_11, bool lit_mode) { if ((SPEC_MATERIAL_MODE ? !(lit_mode) : false)) { vec3 _e7 = env(n_11.z); return (_e7 * 0.8); } uint _e14 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e14 & SKY_IBL) != 0u) : false)) { float _e24 = _group_0_binding_5_fs.ibl.x; float _e28 = _group_0_binding_5_fs.sun.w; float scale_3 = (_e24 * _e28); uint _e33 = _group_0_binding_5_fs.flags.x; if (((_e33 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e40 = _group_0_binding_5_fs.ambient; vec3 _e42 = sky_dir(n_11); vec3 _e43 = sh_irradiance(_e42); float _e48 = _group_0_binding_5_fs.ambient.w; return mix(_e40.xyz, (_e43 * scale_3), _e48); } vec4 _e52 = _group_0_binding_5_fs.ambient; return _e52.xyz; } uint _e58 = _group_0_binding_1_fs.counts.y; if ((SPEC_AMBIENT_GRADIENT ? ((_e58 & ENV_AMBIENT_SKY) != 0u) : false)) { vec4 _e67 = _group_0_binding_1_fs.sky_top; vec4 _e71 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg_1 = ((_e67.xyz + _e71.xyz) * 0.5); vec4 _e78 = _group_0_binding_1_fs.ground_horizon; vec4 _e82 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg_1 = ((_e78.xyz + _e82.xyz) * 0.5); vec4 _e89 = _group_0_binding_1_fs.up; float _e103 = _group_0_binding_1_fs.ambient.w; return (mix(ground_avg_1, sky_avg_1, clamp(((dot(n_11, _e89.xyz) * 0.5) + 0.5), 0.0, 1.0)) * _e103); } vec4 _e107 = _group_0_binding_1_fs.ambient; return _e107.xyz; } vec3 ext_radiance(vec3 dir_7, float roughness_4, bool lit_mode_1) { if ((SPEC_MATERIAL_MODE ? !(lit_mode_1) : false)) { vec3 _e8 = env(dir_7.z); vec3 _e10 = env(0.0); return mix(_e8, (_e10 * 0.85), roughness_4); } uint _e18 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e18 & SKY_IBL) != 0u) : false)) { float _e28 = _group_0_binding_5_fs.ibl.x; float _e32 = _group_0_binding_5_fs.sun.w; float scale_4 = (_e28 * _e32); uint _e37 = _group_0_binding_5_fs.flags.x; if (((_e37 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e42 = sky_dir(dir_7); vec3 _e43 = radiance_2(_e42, roughness_4); return (_e43 * scale_4); } uint _e48 = _group_0_binding_5_fs.flags.x; if (((_e48 & SKY_REFLECT_OFF) != 0u)) { return vec3(0.0); } vec4 _e57 = _group_0_binding_5_fs.ambient; return _e57.xyz; } uint _e63 = _group_0_binding_1_fs.counts.y; if ((SPEC_AMBIENT_GRADIENT ? ((_e63 & ENV_AMBIENT_SKY) != 0u) : false)) { vec4 _e72 = _group_0_binding_1_fs.sky_top; vec4 _e76 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg_2 = ((_e72.xyz + _e76.xyz) * 0.5); vec3 _e81 = sky(dir_7); float _e86 = _group_0_binding_1_fs.ambient.w; return (mix(_e81, sky_avg_2, roughness_4) * _e86); } vec4 _e90 = _group_0_binding_1_fs.ambient; return _e90.xyz; } vec3 ext_probe_radiance(ExtCtx e_7, vec3 dir_8, float roughness_5, bool lit_mode_2) { bool local_39 = false; vec3 _e4 = ext_radiance(dir_8, roughness_5, lit_mode_2); if (!(!(lit_mode_2))) { uint _e13 = _group_0_binding_7_fs.counts.x; local_39 = (_e13 == 0u); } else { local_39 = true; } bool _e17 = local_39; if ((SPEC_PROBES ? _e17 : true)) { return _e4; } uint _e24 = _group_1_binding_0_fs.extra.z; vec4 _e25 = probe_reflection(e_7.world, dir_8, roughness_5, _e24); return ((_e4 * (1.0 - _e25.w)) + _e25.xyz); } vec3 ext_env_weight(vec3 f0_5, vec3 f90_1, float roughness_6, float nv_5, float metallic, bool lit_mode_3) { bool local_40 = false; if (lit_mode_3) { uint _e12 = _group_0_binding_5_fs.flags.x; local_40 = ((_e12 & SKY_IBL) != 0u); } else { local_40 = false; } bool _e18 = local_40; if ((SPEC_AMBIENT_SKY ? _e18 : false)) { vec2 _e21 = env_brdf_approx(roughness_6, nv_5); return ((f0_5 * _e21.x) + ((f90_1 * _e21.y) * clamp((50.0 * f0_5.y), metallic, 1.0))); } float _e40 = pow5_((1.0 - nv_5)); vec3 f_amb_2 = (f0_5 + ((max((f90_1 * (1.0 - roughness_6)), f0_5) - f0_5) * _e40)); if ((SPEC_MATERIAL_MODE ? !(lit_mode_3) : false)) { return (f_amb_2 * (1.0 - (0.5 * roughness_6))); } return f_amb_2; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_fs.view_proj; vec4 c_42 = (_e3 * vec4(p_7, 1.0)); vec2 ndc_1 = (c_42.xy / vec2(((c_42.w > 1e-6) ? c_42.w : 1e-6))); return vec2(((ndc_1.x * 0.5) + 0.5), (0.5 - (ndc_1.y * 0.5))); } vec3 screen_texel(vec2 uv_4, float rough) { uint _e5 = _group_0_binding_1_fs.dirs.w; float levels_1 = float(max(_e5, 1u)); float _e12 = _group_0_binding_0_fs.viewport.x; float lod_2 = min((log2(max(_e12, 1.0)) * max(rough, 0.0)), (levels_1 - 1.0)); vec4 _e24 = textureLod(_group_1_binding_6_fs, vec2(uv_4), lod_2); return _e24.xyz; } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } vec3 ext_screen_refracted(ExtCtx e_9, float rough_1) { if (e_9.thin) { mat4x4 _e5 = _group_0_binding_0_fs.view; vec3 n_view = normalize((_e5 * vec4(e_9.n, 0.0)).xyz); float _e19 = _group_2_binding_0_fs.factors.z; vec2 offset = (vec2(-(n_view.x), n_view.y) * _e19); vec4 _e24 = _group_0_binding_0_fs.viewport; vec3 _e28 = screen_texel(((e_9.frag * _e24.zw) + offset), rough_1); return (_e28 * e_9.attenuation); } if ((SPEC_DISPERSION ? (e_9.dispersion > 0.0) : false)) { float half_spread = (((e_9.ior - 1.0) * 0.025) * e_9.dispersion); vec2 _e48 = screen_exit_uv(e_9, max((e_9.ior - half_spread), 1.0)); vec3 _e49 = screen_texel(_e48, rough_1); float r_11 = _e49.x; vec2 _e52 = screen_exit_uv(e_9, e_9.ior); vec3 _e53 = screen_texel(_e52, rough_1); float g_2 = _e53.y; vec2 _e57 = screen_exit_uv(e_9, (e_9.ior + half_spread)); vec3 _e58 = screen_texel(_e57, rough_1); float b_8 = _e58.z; return (vec3(r_11, g_2, b_8) * e_9.attenuation); } vec2 _e64 = screen_exit_uv(e_9, e_9.ior); vec3 _e65 = screen_texel(_e64, rough_1); return (_e65 * e_9.attenuation); } vec3 ext_refracted(ExtCtx e_10, bool lit_mode_4) { bool local_41 = false; bool local_42 = false; float rough_3 = sqrt(e_10.trans_alpha); if (lit_mode_4) { uint _e10 = _group_0_binding_1_fs.counts.y; local_41 = ((_e10 & ENV_SCREEN_REFRACTION) != 0u); } else { local_41 = false; } bool _e16 = local_41; if (_e16) { uint _e22 = _group_0_binding_1_fs.dirs.w; local_42 = (_e22 > 0u); } else { local_42 = false; } bool _e26 = local_42; if ((SPEC_SCREEN_REFRACTION ? _e26 : false)) { vec3 _e29 = ext_screen_refracted(e_10, rough_3); return _e29; } if (e_10.thin) { vec3 _e33 = ext_radiance(-(e_10.v), rough_3, lit_mode_4); return (_e33 * e_10.attenuation); } if ((SPEC_DISPERSION ? (e_10.dispersion > 0.0) : false)) { float half_spread_1 = (((e_10.ior - 1.0) * 0.025) * e_10.dispersion); vec3 iors = vec3(max((e_10.ior - half_spread_1), 1.0), e_10.ior, (e_10.ior + half_spread_1)); vec3 _e64 = ext_radiance(refract(-(e_10.v), e_10.n, (1.0 / iors.x)), rough_3, lit_mode_4); float rr = _e64.x; vec3 _e73 = ext_radiance(refract(-(e_10.v), e_10.n, (1.0 / iors.y)), rough_3, lit_mode_4); float rg = _e73.y; vec3 _e82 = ext_radiance(refract(-(e_10.v), e_10.n, (1.0 / iors.z)), rough_3, lit_mode_4); float rb = _e82.z; return (vec3(rr, rg, rb) * e_10.attenuation); } vec3 _e94 = ext_radiance(refract(-(e_10.v), e_10.n, (1.0 / e_10.ior)), rough_3, lit_mode_4); return (_e94 * e_10.attenuation); } vec3 ext_ambient(ExtCtx e_11, bool lit_mode_5, vec4 gi) { vec3 diffuse_3 = vec3(0.0); bool local_43 = false; bool local_44 = false; bool local_45 = false; bool local_46 = false; vec3 r_3 = vec3(0.0); vec3 bent = vec3(0.0); vec3 c_34 = vec3(0.0); float nv_11 = e_11.nv; vec3 _e6 = ext_irradiance(e_11.n, lit_mode_5); diffuse_3 = (e_11.diffuse * _e6); if (lit_mode_5) { uint _e15 = _group_0_binding_5_fs.flags.x; local_43 = ((_e15 & SKY_IBL) == 0u); } else { local_43 = false; } bool _e21 = local_43; if (_e21) { uint _e27 = _group_0_binding_1_fs.counts.y; local_44 = ((_e27 & ENV_AMBIENT_SKY) == 0u); } else { local_44 = false; } bool _e33 = local_44; if ((SPEC_AMBIENT_FLAT ? _e33 : false)) { vec4 _e38 = _group_0_binding_1_fs.ambient; diffuse_3 = (_e38.xyz * e_11.diffuse); } if (lit_mode_5) { uint _e48 = _group_0_binding_7_fs.counts.x; local_45 = (_e48 > 0u); } else { local_45 = false; } bool _e52 = local_45; if (_e52) { local_46 = (gi.w <= 0.0); } else { local_46 = false; } bool _e59 = local_46; if ((SPEC_PROBES ? _e59 : false)) { uint _e67 = _group_1_binding_0_fs.extra.z; vec4 _e68 = probe_ambient(e_11.world, e_11.n, _e67); vec3 _e69 = diffuse_3; diffuse_3 = ((_e69 * (1.0 - _e68.w)) + (e_11.diffuse * _e68.xyz)); } if ((gi.w > 0.0)) { diffuse_3 = (e_11.diffuse * gi.xyz); } if ((SPEC_DIFFUSE_TRANSMISSION ? (e_11.dt > 0.0) : false)) { vec3 _e90 = diffuse_3; vec3 _e98 = ext_irradiance(-(e_11.n_geo), lit_mode_5); diffuse_3 = mix(_e90, ((e_11.dt_color * (1.0 - e_11.metallic)) * _e98), e_11.dt); } r_3 = reflect(-(e_11.v), e_11.n); if ((SPEC_ANISOTROPY ? (e_11.aniso > 0.0) : false)) { bent = normalize(cross(cross(e_11.aniso_b, e_11.v), e_11.aniso_b)); float a_12 = pow((1.0 - (e_11.aniso * (1.0 - e_11.roughness))), 4.0); vec3 _e129 = bent; bent = normalize(mix(_e129, e_11.n, a_12)); vec3 _e135 = bent; vec3 _e137 = bent; r_3 = normalize(mix(reflect(-(e_11.v), _e135), _e137, (e_11.roughness * e_11.roughness))); } vec3 f0_8 = mix(e_11.f0_, e_11.irid_f, e_11.iridescence); vec3 f90_2 = mix(e_11.f90_, vec3(1.0), e_11.iridescence); vec3 _e154 = ext_env_weight(f0_8, f90_2, e_11.roughness, nv_11, e_11.metallic, lit_mode_5); vec3 _e155 = r_3; vec3 _e157 = ext_probe_radiance(e_11, _e155, e_11.roughness, lit_mode_5); vec3 specular_2 = (_e157 * _e154); if ((SPEC_TRANSMISSION ? (e_11.transmission > 0.0) : false)) { vec3 _e170 = ext_refracted(e_11, lit_mode_5); vec3 through_1 = ((((vec3(1.0) - _e154) * e_11.base) * _e170) * (1.0 - e_11.metallic)); vec3 _e176 = diffuse_3; diffuse_3 = mix(_e176, through_1, e_11.transmission); } vec3 _e179 = diffuse_3; c_34 = (_e179 + specular_2); float _e184 = max3_(e_11.sheen); if ((SPEC_SHEEN ? (_e184 > 0.0) : false)) { float _e190 = sheen_albedo(nv_11, e_11.sheen_roughness); vec3 _e191 = c_34; float _e193 = max3_(e_11.sheen); vec3 _e200 = ext_irradiance(e_11.n, lit_mode_5); c_34 = ((_e191 * (1.0 - (_e193 * _e190))) + ((e_11.sheen * _e200) * _e190)); } if ((SPEC_CLEARCOAT ? (e_11.clearcoat > 0.0) : false)) { float ncv_1 = max(dot(e_11.nc, e_11.v), 0.0001); vec3 _e219 = f_schlick90_(vec3(0.04), vec3(1.0), ncv_1); float fc_3 = _e219.x; vec3 _e227 = ext_env_weight(vec3(0.04), vec3(1.0), e_11.cc_roughness, ncv_1, 0.0, lit_mode_5); vec3 _e228 = c_34; vec3 _e240 = ext_probe_radiance(e_11, reflect(-(e_11.v), e_11.nc), e_11.cc_roughness, lit_mode_5); c_34 = ((_e228 * (1.0 - (e_11.clearcoat * fc_3))) + ((e_11.clearcoat * _e240) * _e227)); } vec3 _e244 = c_34; return _e244; } vec3 ext_shade_with(VsOutExt in_27, bool front_4, ExtSamples s_14, bool lit_mode_6, bool baked_2, vec3 baked_light_2) { bool local_47 = false; vec3 c_35 = vec3(0.0); uint k_11 = 0u; bool local_48 = false; vec3 l_6 = vec3(0.0); float atten_2 = 0.0; vec3 rad = vec3(0.0); bool local_49 = false; if (lit_mode_6) { uint _e12 = _group_1_binding_0_fs.decals.z; local_47 = (_e12 > 0u); } else { local_47 = false; } bool _e16 = local_47; ExtCtx _e19 = ext_ctx(in_27, front_4, s_14, (SPEC_DECALS ? _e16 : false)); if ((SPEC_MATERIAL_MODE ? !(lit_mode_6) : false)) { vec4 _e30 = _group_0_binding_0_fs.view[0]; vec4 _e35 = _group_0_binding_0_fs.view[1]; vec4 _e40 = _group_0_binding_0_fs.view[2]; mat3x3 to_world = transpose(mat3x3(_e30.xyz, _e35.xyz, _e40.xyz)); vec3 _e44 = c_35; vec3 _e57 = ext_light(_e19, normalize((to_world * vec3(-0.45, 0.55, 0.7))), vec3(2.6, 2.522, 2.392), 1.0, false); c_35 = (_e44 + _e57); vec3 _e59 = c_35; vec3 _e72 = ext_light(_e19, normalize((to_world * vec3(0.75, 0.15, 0.45))), vec3(0.765, 0.80999994, 0.9), 1.0, false); c_35 = (_e59 + _e72); vec3 _e74 = c_35; vec3 _e87 = ext_light(_e19, normalize((to_world * vec3(0.3, 0.55, -0.6))), vec3(1.3, 1.3, 1.3), 1.0, false); c_35 = (_e74 + _e87); vec3 _e89 = c_35; vec3 _e93 = ext_ambient(_e19, false, vec4(0.0)); c_35 = (_e89 + (_e93 * s_14.occlusion)); vec3 _e97 = c_35; c_35 = (_e97 + s_14.emission); vec3 _e100 = c_35; return _e100; } uint _e101 = object_light_count(); bool loop_init_18 = true; while(true) { if (!loop_init_18) { uint _e207 = k_11; k_11 = (_e207 + 1u); } loop_init_18 = false; uint _e105 = k_11; if ((SPEC_LIGHTS ? (_e105 < _e101) : false)) { } else { break; } { uint _e109 = k_11; uint _e110 = object_light(_e109); LightU li_2 = _group_0_binding_1_fs.lights[_e110]; if (baked_2) { local_48 = (li_2.info.z == LIGHT_BAKED_STATIC); } else { local_48 = false; } bool _e122 = local_48; if (_e122) { continue; } uint kind_2 = li_2.info.x; l_6 = vec3(0.0); atten_2 = 1.0; if ((kind_2 == LIGHT_DIRECTIONAL)) { l_6 = -(li_2.direction.xyz); } else { vec3 rel_2 = (li_2.position.xyz - in_27.world); float d_19 = length(rel_2); l_6 = (rel_2 / vec3(max(d_19, 1e-6))); float _e147 = omni_attenuation(d_19, li_2.position.w, li_2.direction.w); atten_2 = _e147; if ((kind_2 == LIGHT_SPOT)) { float cone_1 = li_2.spot.x; vec3 _e152 = l_6; float scos_1 = max(dot(-(_e152), li_2.direction.xyz), cone_1); float rim_4 = max(0.0001, ((1.0 - scos_1) / max((1.0 - cone_1), 1e-6))); float _e167 = atten_2; atten_2 = (_e167 * (1.0 - pow(rim_4, li_2.spot.y))); } } float _e174 = atten_2; if ((_e174 > 0.0)) { float _e179 = atten_2; rad = (li_2.color.xyz * _e179); if ((SPEC_SHADOWS ? (li_2.info.y == LIGHT_SHADOWED) : false)) { float _e191 = atten_2; vec3 _e194 = l_6; float _e195 = shadow_factor(_e110, in_27.world, _e19.n_geo, _e194); rad = (li_2.color.xyz * (_e191 * _e195)); } vec3 _e198 = c_35; vec3 _e199 = l_6; vec3 _e200 = rad; vec3 _e204 = ext_light(_e19, _e199, _e200, li_2.spot.z, true); c_35 = (_e198 + _e204); } } } vec4 _e211 = gi_diffuse(_e19.n, baked_2, baked_light_2); vec3 _e212 = ext_ambient(_e19, true, _e211); uint _e217 = _group_0_binding_1_fs.counts.y; if (((_e217 & ENV_SSAO) != 0u)) { uint _e227 = _group_2_binding_0_fs.flags.y; local_49 = (_e227 != ALPHA_BLEND); } else { local_49 = false; } bool _e231 = local_49; if ((SPEC_SSAO ? _e231 : false)) { vec4 _e240 = texelFetch(_group_0_binding_6_fs, ivec2(floor(in_27.clip.xy)), 0); float ssao_1 = _e240.x; vec3 _e242 = c_35; float _e248 = _group_0_binding_1_fs.tone.z; float _e252 = _group_0_binding_1_fs.tone.w; c_35 = (_e242 * mix(1.0, min(ssao_1, _e19.occlusion), (_e248 * _e252))); vec3 _e257 = c_35; c_35 = (_e257 + (_e212 * min(_e19.occlusion, ssao_1))); } else { vec3 _e262 = c_35; c_35 = (_e262 + (_e212 * _e19.occlusion)); } vec3 _e266 = c_35; c_35 = (_e266 + _e19.emission); vec3 _e269 = c_35; return _e269; } vec3 ext_shade(VsOutExt in_28, bool front_5, ExtSamples s_15, bool lit_mode_7) { vec3 _e7 = ext_shade_with(in_28, front_5, s_15, lit_mode_7, false, vec3(0.0)); return _e7; } vec3 ext_lit_finish(vec3 c_in_1, vec3 world_11) { vec3 c_36 = vec3(0.0); c_36 = c_in_1; uint _e7 = _group_0_binding_5_fs.flags.x; if ((SPEC_FOG ? ((_e7 & SKY_FOG) != 0u) : false)) { vec3 _e14 = c_36; vec3 _e15 = ext_view(world_11); vec3 _e17 = surface_fog(_e14, world_11, -(_e15)); c_36 = _e17; } uint _e22 = _group_1_binding_0_fs.decals.w; if ((SPEC_FOG_VOLUMES ? (_e22 != 0u) : false)) { vec3 _e27 = c_36; uint _e31 = _group_1_binding_0_fs.decals.w; vec3 _e32 = fog_volumes(_e27, world_11, _e31); c_36 = _e32; } vec3 _e33 = c_36; vec3 _e34 = tonemap(_e33); return _e34; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsOutExt in_9 = VsOutExt(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7); bool facing_2 = gl_FrontFacing; float alpha_1 = 1.0; vec3 c_2 = vec3(0.0); bool local_12 = false; bool local_13 = false; VsOut _e2 = ext_base_in(in_9); bool _e3 = mirrored(_e2); bool front_6 = (facing_2 != _e3); ExtSamples _e5 = sample_ext(in_9); if ((SPEC_FACE_FLAGS ? ((in_9.flags & F_HIDDEN) != 0u) : false)) { discard; } float _e17 = emerge_reveal(in_9.world, in_9.clip.xy); if ((SPEC_EMERGE ? (_e17 <= 0.0) : false)) { discard; } bool _e23 = ext_cut(_e5); if (_e23) { discard; } uint _e30 = _group_2_binding_0_fs.flags.y; if ((SPEC_ALPHA_BLEND ? (_e30 == ALPHA_BLEND) : false)) { alpha_1 = _e5.base.w; } uint _e41 = _group_0_binding_0_fs.params.x; bool lit_mode_8 = (SPEC_LIT ? (_e41 == SHADE_LIT) : false); uint _e51 = _group_0_binding_0_fs.params.x; if ((SPEC_OTHER_MODES ? (_e51 == SHADE_LIGHTMAP) : false)) { alpha_1 = 1.0; vec3 n_world = (front_6 ? normalize(in_9.normal) : -(normalize(in_9.normal))); mat4x4 _e65 = _group_0_binding_0_fs.view; vec3 _e73 = srgb_to_linear(vec3(0.8)); vec3 _e74 = studio(normalize((_e65 * vec4(n_world, 0.0)).xyz), _e73); c_2 = _e74; } else { uint _e79 = _group_2_binding_0_fs.flags.w; if ((SPEC_UNLIT ? ((_e79 & MAT_UNLIT) != 0u) : false)) { c_2 = _e5.base.xyz; } else { vec3 _e88 = ext_shade(in_9, front_6, _e5, lit_mode_8); c_2 = _e88; } if ((SPEC_LIT ? lit_mode_8 : false)) { vec3 _e92 = c_2; vec3 _e94 = ext_lit_finish(_e92, in_9.world); c_2 = _e94; } } uint _e99 = _group_1_binding_0_fs.params.w; if ((_e99 == 1u)) { uint _e107 = _group_0_binding_0_fs.params.y; local_12 = ((_e107 & OV_SELECTION) != 0u); } else { local_12 = false; } bool _e113 = local_12; if (_e113) { local_13 = ((in_9.flags & F_SELECTED) != 0u); } else { local_13 = false; } bool _e122 = local_13; if ((SPEC_FACE_FLAGS ? _e122 : false)) { vec3 _e125 = c_2; vec3 _e130 = srgb_to_linear(vec3(1.0, 0.635, 0.0)); c_2 = mix(_e125, _e130, 0.4); } if ((SPEC_LIT ? lit_mode_8 : false)) { vec3 _e136 = c_2; vec3 _e137 = item_fade(_e136); vec3 _e138 = emerge_tint(_e137, _e17); float _e139 = alpha_1; vec4 _e141 = lit_output(vec4(_e138, _e139)); _fs2p_location0 = _e141; return; } vec3 _e142 = c_2; float _e143 = alpha_1; vec4 _e145 = target_color(vec4(_e142, _e143)); _fs2p_location0 = _e145; return; }  fs_shadow_extmainË#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform ObjectU_block_0Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform MaterialU_block_1Fragment { MaterialU _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; uniform highp sampler2D _group_2_binding_3_fs; uniform highp sampler2D _group_2_binding_4_fs; uniform highp sampler2D _group_2_binding_5_fs; uniform highp sampler2DArray _group_2_binding_7_fs; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in float _vs2fs_location5; smooth in vec4 _vs2fs_location6; smooth in vec2 _vs2fs_location7; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_13 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_13, (vec3(4.0) - k_13)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } vec2 material_uv(vec2 uv_3) { vec2 _e1 = tex_uv(uv_3); vec4 _e4 = _group_2_binding_0_fs.uv; vec4 _e9 = _group_2_binding_0_fs.uv; return ((_e1 * _e4.xy) + _e9.zw); } vec4 decoded_base(vec4 t) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_BASE) != 0u)) { vec3 _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } vec3 decoded_emission(vec3 t_1) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_EMISSION) != 0u)) { vec3 _e9 = srgb_to_linear(t_1); return _e9; } return t_1; } Samples sample_material(vec2 uv_in) { Samples s_3 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec2 _e1 = material_uv(uv_in); vec4 _e6 = _group_2_binding_0_fs.base_color; s_3.base = _e6; uint _e11 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e11 & T_BASE) != 0u) : false)) { vec4 _e19 = s_3.base; vec4 _e22 = texture(_group_2_binding_1_fs, vec2(_e1)); vec4 _e23 = decoded_base(_e22); s_3.base = (_e19 * _e23); } s_3.normal = vec3(0.0, 0.0, 1.0); uint _e34 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e34 & T_NORMAL) != 0u) : false)) { vec4 _e44 = texture(_group_2_binding_2_fs, vec2(_e1)); s_3.normal = normalize(((_e44.xyz * 2.0) - vec3(1.0))); } s_3.mr = vec4(1.0); uint _e59 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_MR ? ((_e59 & T_METALLIC_ROUGHNESS) != 0u) : false)) { vec4 _e69 = texture(_group_2_binding_3_fs, vec2(_e1)); s_3.mr = _e69; } vec4 _e73 = _group_2_binding_0_fs.emission; s_3.emission = _e73.xyz; uint _e79 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e79 & T_EMISSION) != 0u) : false)) { vec3 _e87 = s_3.emission; vec4 _e90 = texture(_group_2_binding_4_fs, vec2(_e1)); vec3 _e92 = decoded_emission(_e90.xyz); s_3.emission = (_e87 * _e92); } s_3.occlusion = 1.0; uint _e100 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e100 & T_OCCLUSION) != 0u) : false)) { vec4 _e110 = texture(_group_2_binding_5_fs, vec2(_e1)); s_3.occlusion = _e110.x; } Samples _e112 = s_3; return _e112; } Samples surface_samples(VsOut in_19) { Samples s_4 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec4 c_11 = vec4(0.0); Samples _e2 = sample_material(in_19.uv); s_4 = _e2; uint _e8 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e8 & MAT_VERTEX_COLOR) != 0u) : false)) { c_11 = in_19.color; uint _e20 = _group_2_binding_0_fs.flags.w; if (((_e20 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e25 = c_11; vec3 _e27 = srgb_to_linear(_e25.xyz); float _e29 = c_11.w; c_11 = vec4(_e27, _e29); } vec4 _e33 = s_4.base; vec4 _e34 = c_11; s_4.base = (_e33 * _e34); } Samples _e36 = s_4; return _e36; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_13 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_13 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float d_13 = min((e_14.x - abs(l_10.x)), min((e_14.y - abs(l_10.y)), (e_14.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_15 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_15.x); float _e28 = probe_exit(o_7.y, d_14.y, e_15.y); float _e32 = probe_exit(o_7.z, d_14.z, e_15.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } vec2 ext_uv(uint s_8, vec2 uv0_, vec2 uv1_5) { vec4 r0_ = _group_2_binding_0_fs.xf[(s_8 * 2u)]; vec4 r1_ = _group_2_binding_0_fs.xf[((s_8 * 2u) + 1u)]; vec2 uv_5 = ((r0_.w > 0.5) ? uv1_5 : uv0_); return vec2((dot(r0_.xy, uv_5) + r0_.z), (dot(r1_.xy, uv_5) + r1_.z)); } float ext_where(uint s_9) { float _e9 = _group_2_binding_0_fs.xf[((s_9 * 2u) + 1u)].w; return _e9; } vec4 ext_layer(uint s_10, vec2 uv0_1, vec2 uv1_6) { vec2 _e5 = ext_uv(s_10, uv0_1, uv1_6); float _e6 = ext_where(s_10); vec4 _e12 = texture(_group_2_binding_7_fs, vec3(_e5, (int((_e6 + 0.5)) - 1))); return _e12; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } ExtSamples sample_ext(VsOutExt in_25) { ExtSamples s_11 = ExtSamples(vec4(0.0), vec3(0.0), 0.0, 0.0, vec3(0.0), 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec3(0.0), false, vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec2(0.0), 0.0, vec3(0.0)); vec4 c_31 = vec4(0.0); float thick = 1.0; vec2 _e2 = tex_uv(in_25.uv); vec2 _e4 = tex_uv(in_25.uv1_); vec4 _e9 = _group_2_binding_0_fs.base_color; s_11.base = _e9; uint _e14 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e14 & T_BASE) != 0u) : false)) { vec4 _e22 = s_11.base; vec2 _e26 = ext_uv(SLOT_BASE, _e2, _e4); vec4 _e27 = texture(_group_2_binding_1_fs, vec2(_e26)); vec4 _e28 = decoded_base(_e27); s_11.base = (_e22 * _e28); } uint _e34 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e34 & MAT_VERTEX_COLOR) != 0u) : false)) { c_31 = in_25.color; uint _e46 = _group_2_binding_0_fs.flags.w; if (((_e46 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e51 = c_31; vec3 _e53 = srgb_to_linear(_e51.xyz); float _e55 = c_31.w; c_31 = vec4(_e53, _e55); } vec4 _e59 = s_11.base; vec4 _e60 = c_31; s_11.base = (_e59 * _e60); } s_11.normal = vec3(0.0, 0.0, 1.0); uint _e71 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e71 & T_NORMAL) != 0u) : false)) { vec2 _e82 = ext_uv(SLOT_NORMAL, _e2, _e4); vec4 _e83 = texture(_group_2_binding_2_fs, vec2(_e82)); float _e89 = _group_2_binding_0_fs.ext[3].w; vec3 _e90 = scaled_normal(_e83.xyz, _e89); s_11.normal = _e90; } float _e95 = _group_2_binding_0_fs.factors.x; s_11.metallic = _e95; float _e98 = ext_where(SLOT_METALLIC); if ((SPEC_TEX_MR ? (_e98 > 0.5) : false)) { float _e104 = s_11.metallic; vec2 _e108 = ext_uv(SLOT_METALLIC, _e2, _e4); vec4 _e109 = texture(_group_2_binding_3_fs, vec2(_e108)); s_11.metallic = (_e104 * _e109.z); } float _e116 = _group_2_binding_0_fs.factors.y; s_11.roughness = _e116; uint _e121 = _group_2_binding_0_fs.flags.w; if ((SPEC_ROUGHNESS_LAYER ? ((_e121 & MAT_ROUGHNESS_LAYER) != 0u) : false)) { float _e129 = ext_where(SLOT_ROUGHNESS); if ((_e129 > 0.5)) { float _e133 = s_11.roughness; vec4 _e135 = ext_layer(SLOT_ROUGHNESS, _e2, _e4); s_11.roughness = (_e133 * _e135.y); } } else { float _e140 = ext_where(SLOT_ROUGHNESS); if ((SPEC_TEX_MR ? (_e140 > 0.5) : false)) { float _e146 = s_11.roughness; vec2 _e150 = ext_uv(SLOT_ROUGHNESS, _e2, _e4); vec4 _e151 = texture(_group_2_binding_3_fs, vec2(_e150)); s_11.roughness = (_e146 * _e151.y); } } vec4 _e157 = _group_2_binding_0_fs.emission; s_11.emission = _e157.xyz; uint _e163 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e163 & T_EMISSION) != 0u) : false)) { vec3 _e171 = s_11.emission; vec2 _e175 = ext_uv(SLOT_EMISSIVE, _e2, _e4); vec4 _e176 = texture(_group_2_binding_4_fs, vec2(_e175)); vec3 _e178 = decoded_emission(_e176.xyz); s_11.emission = (_e171 * _e178); } s_11.occlusion = 1.0; uint _e186 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e186 & T_OCCLUSION) != 0u) : false)) { vec2 _e196 = ext_uv(SLOT_OCCLUSION, _e2, _e4); vec4 _e197 = texture(_group_2_binding_5_fs, vec2(_e196)); float o_8 = _e197.x; float _e204 = _group_2_binding_0_fs.ext[6].w; s_11.occlusion = (1.0 + (_e204 * (o_8 - 1.0))); } float _e215 = _group_2_binding_0_fs.ext[0].w; s_11.specular = _e215; float _e218 = ext_where(SLOT_SPECULAR); if ((SPEC_EXT_LAYERS ? (_e218 > 0.5) : false)) { float _e224 = s_11.specular; vec4 _e226 = ext_layer(SLOT_SPECULAR, _e2, _e4); s_11.specular = (_e224 * _e226.w); } vec4 _e233 = _group_2_binding_0_fs.ext[0]; s_11.specular_color = _e233.xyz; float _e237 = ext_where(SLOT_SPECULAR_COLOR); if ((SPEC_EXT_LAYERS ? (_e237 > 0.5) : false)) { vec3 _e243 = s_11.specular_color; vec4 _e245 = ext_layer(SLOT_SPECULAR_COLOR, _e2, _e4); vec3 _e247 = srgb_to_linear(_e245.xyz); s_11.specular_color = (_e243 * _e247); } float _e254 = _group_2_binding_0_fs.ext[1].y; s_11.transmission = _e254; float _e257 = ext_where(SLOT_TRANSMISSION); if ((SPEC_EXT_LAYERS ? (_e257 > 0.5) : false)) { float _e263 = s_11.transmission; vec4 _e265 = ext_layer(SLOT_TRANSMISSION, _e2, _e4); s_11.transmission = (_e263 * _e265.x); } float _e273 = _group_2_binding_0_fs.ext[1].z; s_11.thickness = _e273; float _e276 = ext_where(SLOT_THICKNESS); if ((SPEC_EXT_LAYERS ? (_e276 > 0.5) : false)) { float _e282 = s_11.thickness; vec4 _e284 = ext_layer(SLOT_THICKNESS, _e2, _e4); s_11.thickness = (_e282 * _e284.y); } float _e292 = _group_2_binding_0_fs.ext[3].x; s_11.clearcoat = _e292; float _e295 = ext_where(SLOT_CLEARCOAT); if ((SPEC_EXT_LAYERS ? (_e295 > 0.5) : false)) { float _e301 = s_11.clearcoat; vec4 _e303 = ext_layer(SLOT_CLEARCOAT, _e2, _e4); s_11.clearcoat = (_e301 * _e303.x); } float _e311 = _group_2_binding_0_fs.ext[3].y; s_11.clearcoat_roughness = _e311; float _e314 = ext_where(SLOT_CLEARCOAT_ROUGHNESS); if ((SPEC_EXT_LAYERS ? (_e314 > 0.5) : false)) { float _e320 = s_11.clearcoat_roughness; vec4 _e322 = ext_layer(SLOT_CLEARCOAT_ROUGHNESS, _e2, _e4); s_11.clearcoat_roughness = (_e320 * _e322.y); } s_11.clearcoat_normal = vec3(0.0, 0.0, 1.0); s_11.clearcoat_mapped = false; float _e334 = ext_where(SLOT_CLEARCOAT_NORMAL); if ((SPEC_EXT_LAYERS ? (_e334 > 0.5) : false)) { vec4 _e341 = ext_layer(SLOT_CLEARCOAT_NORMAL, _e2, _e4); float _e347 = _group_2_binding_0_fs.ext[3].z; vec3 _e348 = scaled_normal(_e341.xyz, _e347); s_11.clearcoat_normal = _e348; s_11.clearcoat_mapped = true; } vec4 _e355 = _group_2_binding_0_fs.ext[4]; s_11.sheen_color = _e355.xyz; float _e359 = ext_where(SLOT_SHEEN_COLOR); if ((SPEC_EXT_LAYERS ? (_e359 > 0.5) : false)) { vec3 _e365 = s_11.sheen_color; vec4 _e367 = ext_layer(SLOT_SHEEN_COLOR, _e2, _e4); vec3 _e369 = srgb_to_linear(_e367.xyz); s_11.sheen_color = (_e365 * _e369); } float _e376 = _group_2_binding_0_fs.ext[4].w; s_11.sheen_roughness = _e376; float _e379 = ext_where(SLOT_SHEEN_ROUGHNESS); if ((SPEC_EXT_LAYERS ? (_e379 > 0.5) : false)) { float _e385 = s_11.sheen_roughness; vec4 _e387 = ext_layer(SLOT_SHEEN_ROUGHNESS, _e2, _e4); s_11.sheen_roughness = (_e385 * _e387.w); } float _e395 = _group_2_binding_0_fs.ext[5].x; s_11.iridescence = _e395; float _e398 = ext_where(SLOT_IRIDESCENCE); if ((SPEC_EXT_LAYERS ? (_e398 > 0.5) : false)) { float _e404 = s_11.iridescence; vec4 _e406 = ext_layer(SLOT_IRIDESCENCE, _e2, _e4); s_11.iridescence = (_e404 * _e406.x); } float _e413 = ext_where(SLOT_IRIDESCENCE_THICKNESS); if ((SPEC_EXT_LAYERS ? (_e413 > 0.5) : false)) { vec4 _e419 = ext_layer(SLOT_IRIDESCENCE_THICKNESS, _e2, _e4); thick = _e419.y; } float _e426 = _group_2_binding_0_fs.ext[5].z; float _e431 = _group_2_binding_0_fs.ext[5].w; float _e432 = thick; s_11.iridescence_thickness = mix(_e426, _e431, _e432); float _e439 = _group_2_binding_0_fs.ext[6].x; s_11.anisotropy = _e439; vec4 _e444 = _group_2_binding_0_fs.ext[6]; s_11.anisotropy_dir = _e444.yz; float _e448 = ext_where(SLOT_ANISOTROPY); if ((SPEC_EXT_LAYERS ? (_e448 > 0.5) : false)) { vec4 _e454 = ext_layer(SLOT_ANISOTROPY, _e2, _e4); vec3 a_4 = _e454.xyz; vec2 d_15 = ((a_4.xy * 2.0) - vec2(1.0)); vec2 dn = ((dot(d_15, d_15) > 1e-8) ? normalize(d_15) : vec2(1.0, 0.0)); float c_37 = _group_2_binding_0_fs.ext[6].y; float sn = _group_2_binding_0_fs.ext[6].z; s_11.anisotropy_dir = vec2(((c_37 * dn.x) - (sn * dn.y)), ((sn * dn.x) + (c_37 * dn.y))); float _e493 = s_11.anisotropy; s_11.anisotropy = (_e493 * a_4.z); } float _e501 = _group_2_binding_0_fs.ext[7].w; s_11.diffuse_transmission = _e501; float _e504 = ext_where(SLOT_DIFFUSE_TRANSMISSION); if ((SPEC_EXT_LAYERS ? (_e504 > 0.5) : false)) { float _e510 = s_11.diffuse_transmission; vec4 _e512 = ext_layer(SLOT_DIFFUSE_TRANSMISSION, _e2, _e4); s_11.diffuse_transmission = (_e510 * _e512.w); } vec4 _e519 = _group_2_binding_0_fs.ext[7]; s_11.diffuse_transmission_color = _e519.xyz; float _e523 = ext_where(SLOT_DIFFUSE_TRANSMISSION_COLOR); if ((SPEC_EXT_LAYERS ? (_e523 > 0.5) : false)) { vec3 _e529 = s_11.diffuse_transmission_color; vec4 _e531 = ext_layer(SLOT_DIFFUSE_TRANSMISSION_COLOR, _e2, _e4); vec3 _e533 = srgb_to_linear(_e531.xyz); s_11.diffuse_transmission_color = (_e529 * _e533); } ExtSamples _e535 = s_11; return _e535; } bool ext_cut(ExtSamples s_12) { bool local_37 = false; uint _e5 = _group_2_binding_0_fs.flags.y; if ((_e5 == ALPHA_MASK)) { float _e15 = _group_2_binding_0_fs.emission.w; local_37 = (s_12.base.w < _e15); } else { local_37 = false; } bool _e18 = local_37; return (SPEC_ALPHA_MASK ? _e18 : false); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_4 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_4 * nh_1)); float w2_ = (a2_4 / dot(f_4, f_4)); return (((a2_4 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_9 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_5 = mix(21.5473, 25.3245, o_9); float b_3 = mix(3.82987, 3.32435, o_9); float c_38 = mix(0.19823, 0.16801, o_9); float d_16 = mix(-1.9776, -1.27393, o_9); float e_16 = mix(-4.32054, -4.85967, o_9); return (((a_5 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_38)))) + (d_16 * x_3)) + e_16); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_6 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_6, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_7 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_7 * r_7); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_14 = (outside / film); float sin2sq = ((k_14 * k_14) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_1 = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_1 + ((1.0 - r0_1) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_8 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_8, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_8, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_8, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_1 = (_e175 + _e176); c_33 = (base_1 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_8, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_8, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsOutExt in_10 = VsOutExt(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7); ExtSamples _e1 = sample_ext(in_10); if (((in_10.flags & F_HIDDEN) != 0u)) { discard; } float _e10 = emerge_reveal(in_10.world, vec2(-1.0)); if ((_e10 <= 0.0)) { discard; } bool _e13 = ext_cut(_e1); if (_e13) { discard; } else { return; } }  fs_id_extmainóÌ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform ObjectU_block_0Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform MaterialU_block_1Fragment { MaterialU _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; uniform highp sampler2D _group_2_binding_3_fs; uniform highp sampler2D _group_2_binding_4_fs; uniform highp sampler2D _group_2_binding_5_fs; uniform highp sampler2DArray _group_2_binding_7_fs; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in float _vs2fs_location5; smooth in vec4 _vs2fs_location6; smooth in vec2 _vs2fs_location7; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_13 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_13, (vec3(4.0) - k_13)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } vec2 material_uv(vec2 uv_3) { vec2 _e1 = tex_uv(uv_3); vec4 _e4 = _group_2_binding_0_fs.uv; vec4 _e9 = _group_2_binding_0_fs.uv; return ((_e1 * _e4.xy) + _e9.zw); } vec4 decoded_base(vec4 t) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_BASE) != 0u)) { vec3 _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } vec3 decoded_emission(vec3 t_1) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_EMISSION) != 0u)) { vec3 _e9 = srgb_to_linear(t_1); return _e9; } return t_1; } Samples sample_material(vec2 uv_in) { Samples s_3 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec2 _e1 = material_uv(uv_in); vec4 _e6 = _group_2_binding_0_fs.base_color; s_3.base = _e6; uint _e11 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e11 & T_BASE) != 0u) : false)) { vec4 _e19 = s_3.base; vec4 _e22 = texture(_group_2_binding_1_fs, vec2(_e1)); vec4 _e23 = decoded_base(_e22); s_3.base = (_e19 * _e23); } s_3.normal = vec3(0.0, 0.0, 1.0); uint _e34 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e34 & T_NORMAL) != 0u) : false)) { vec4 _e44 = texture(_group_2_binding_2_fs, vec2(_e1)); s_3.normal = normalize(((_e44.xyz * 2.0) - vec3(1.0))); } s_3.mr = vec4(1.0); uint _e59 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_MR ? ((_e59 & T_METALLIC_ROUGHNESS) != 0u) : false)) { vec4 _e69 = texture(_group_2_binding_3_fs, vec2(_e1)); s_3.mr = _e69; } vec4 _e73 = _group_2_binding_0_fs.emission; s_3.emission = _e73.xyz; uint _e79 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e79 & T_EMISSION) != 0u) : false)) { vec3 _e87 = s_3.emission; vec4 _e90 = texture(_group_2_binding_4_fs, vec2(_e1)); vec3 _e92 = decoded_emission(_e90.xyz); s_3.emission = (_e87 * _e92); } s_3.occlusion = 1.0; uint _e100 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e100 & T_OCCLUSION) != 0u) : false)) { vec4 _e110 = texture(_group_2_binding_5_fs, vec2(_e1)); s_3.occlusion = _e110.x; } Samples _e112 = s_3; return _e112; } Samples surface_samples(VsOut in_19) { Samples s_4 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec4 c_11 = vec4(0.0); Samples _e2 = sample_material(in_19.uv); s_4 = _e2; uint _e8 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e8 & MAT_VERTEX_COLOR) != 0u) : false)) { c_11 = in_19.color; uint _e20 = _group_2_binding_0_fs.flags.w; if (((_e20 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e25 = c_11; vec3 _e27 = srgb_to_linear(_e25.xyz); float _e29 = c_11.w; c_11 = vec4(_e27, _e29); } vec4 _e33 = s_4.base; vec4 _e34 = c_11; s_4.base = (_e33 * _e34); } Samples _e36 = s_4; return _e36; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_13 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_13 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float d_13 = min((e_14.x - abs(l_10.x)), min((e_14.y - abs(l_10.y)), (e_14.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_15 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_15.x); float _e28 = probe_exit(o_7.y, d_14.y, e_15.y); float _e32 = probe_exit(o_7.z, d_14.z, e_15.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } vec2 ext_uv(uint s_8, vec2 uv0_, vec2 uv1_5) { vec4 r0_ = _group_2_binding_0_fs.xf[(s_8 * 2u)]; vec4 r1_ = _group_2_binding_0_fs.xf[((s_8 * 2u) + 1u)]; vec2 uv_5 = ((r0_.w > 0.5) ? uv1_5 : uv0_); return vec2((dot(r0_.xy, uv_5) + r0_.z), (dot(r1_.xy, uv_5) + r1_.z)); } float ext_where(uint s_9) { float _e9 = _group_2_binding_0_fs.xf[((s_9 * 2u) + 1u)].w; return _e9; } vec4 ext_layer(uint s_10, vec2 uv0_1, vec2 uv1_6) { vec2 _e5 = ext_uv(s_10, uv0_1, uv1_6); float _e6 = ext_where(s_10); vec4 _e12 = texture(_group_2_binding_7_fs, vec3(_e5, (int((_e6 + 0.5)) - 1))); return _e12; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } ExtSamples sample_ext(VsOutExt in_25) { ExtSamples s_11 = ExtSamples(vec4(0.0), vec3(0.0), 0.0, 0.0, vec3(0.0), 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec3(0.0), false, vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec2(0.0), 0.0, vec3(0.0)); vec4 c_31 = vec4(0.0); float thick = 1.0; vec2 _e2 = tex_uv(in_25.uv); vec2 _e4 = tex_uv(in_25.uv1_); vec4 _e9 = _group_2_binding_0_fs.base_color; s_11.base = _e9; uint _e14 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e14 & T_BASE) != 0u) : false)) { vec4 _e22 = s_11.base; vec2 _e26 = ext_uv(SLOT_BASE, _e2, _e4); vec4 _e27 = texture(_group_2_binding_1_fs, vec2(_e26)); vec4 _e28 = decoded_base(_e27); s_11.base = (_e22 * _e28); } uint _e34 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e34 & MAT_VERTEX_COLOR) != 0u) : false)) { c_31 = in_25.color; uint _e46 = _group_2_binding_0_fs.flags.w; if (((_e46 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e51 = c_31; vec3 _e53 = srgb_to_linear(_e51.xyz); float _e55 = c_31.w; c_31 = vec4(_e53, _e55); } vec4 _e59 = s_11.base; vec4 _e60 = c_31; s_11.base = (_e59 * _e60); } s_11.normal = vec3(0.0, 0.0, 1.0); uint _e71 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e71 & T_NORMAL) != 0u) : false)) { vec2 _e82 = ext_uv(SLOT_NORMAL, _e2, _e4); vec4 _e83 = texture(_group_2_binding_2_fs, vec2(_e82)); float _e89 = _group_2_binding_0_fs.ext[3].w; vec3 _e90 = scaled_normal(_e83.xyz, _e89); s_11.normal = _e90; } float _e95 = _group_2_binding_0_fs.factors.x; s_11.metallic = _e95; float _e98 = ext_where(SLOT_METALLIC); if ((SPEC_TEX_MR ? (_e98 > 0.5) : false)) { float _e104 = s_11.metallic; vec2 _e108 = ext_uv(SLOT_METALLIC, _e2, _e4); vec4 _e109 = texture(_group_2_binding_3_fs, vec2(_e108)); s_11.metallic = (_e104 * _e109.z); } float _e116 = _group_2_binding_0_fs.factors.y; s_11.roughness = _e116; uint _e121 = _group_2_binding_0_fs.flags.w; if ((SPEC_ROUGHNESS_LAYER ? ((_e121 & MAT_ROUGHNESS_LAYER) != 0u) : false)) { float _e129 = ext_where(SLOT_ROUGHNESS); if ((_e129 > 0.5)) { float _e133 = s_11.roughness; vec4 _e135 = ext_layer(SLOT_ROUGHNESS, _e2, _e4); s_11.roughness = (_e133 * _e135.y); } } else { float _e140 = ext_where(SLOT_ROUGHNESS); if ((SPEC_TEX_MR ? (_e140 > 0.5) : false)) { float _e146 = s_11.roughness; vec2 _e150 = ext_uv(SLOT_ROUGHNESS, _e2, _e4); vec4 _e151 = texture(_group_2_binding_3_fs, vec2(_e150)); s_11.roughness = (_e146 * _e151.y); } } vec4 _e157 = _group_2_binding_0_fs.emission; s_11.emission = _e157.xyz; uint _e163 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e163 & T_EMISSION) != 0u) : false)) { vec3 _e171 = s_11.emission; vec2 _e175 = ext_uv(SLOT_EMISSIVE, _e2, _e4); vec4 _e176 = texture(_group_2_binding_4_fs, vec2(_e175)); vec3 _e178 = decoded_emission(_e176.xyz); s_11.emission = (_e171 * _e178); } s_11.occlusion = 1.0; uint _e186 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e186 & T_OCCLUSION) != 0u) : false)) { vec2 _e196 = ext_uv(SLOT_OCCLUSION, _e2, _e4); vec4 _e197 = texture(_group_2_binding_5_fs, vec2(_e196)); float o_8 = _e197.x; float _e204 = _group_2_binding_0_fs.ext[6].w; s_11.occlusion = (1.0 + (_e204 * (o_8 - 1.0))); } float _e215 = _group_2_binding_0_fs.ext[0].w; s_11.specular = _e215; float _e218 = ext_where(SLOT_SPECULAR); if ((SPEC_EXT_LAYERS ? (_e218 > 0.5) : false)) { float _e224 = s_11.specular; vec4 _e226 = ext_layer(SLOT_SPECULAR, _e2, _e4); s_11.specular = (_e224 * _e226.w); } vec4 _e233 = _group_2_binding_0_fs.ext[0]; s_11.specular_color = _e233.xyz; float _e237 = ext_where(SLOT_SPECULAR_COLOR); if ((SPEC_EXT_LAYERS ? (_e237 > 0.5) : false)) { vec3 _e243 = s_11.specular_color; vec4 _e245 = ext_layer(SLOT_SPECULAR_COLOR, _e2, _e4); vec3 _e247 = srgb_to_linear(_e245.xyz); s_11.specular_color = (_e243 * _e247); } float _e254 = _group_2_binding_0_fs.ext[1].y; s_11.transmission = _e254; float _e257 = ext_where(SLOT_TRANSMISSION); if ((SPEC_EXT_LAYERS ? (_e257 > 0.5) : false)) { float _e263 = s_11.transmission; vec4 _e265 = ext_layer(SLOT_TRANSMISSION, _e2, _e4); s_11.transmission = (_e263 * _e265.x); } float _e273 = _group_2_binding_0_fs.ext[1].z; s_11.thickness = _e273; float _e276 = ext_where(SLOT_THICKNESS); if ((SPEC_EXT_LAYERS ? (_e276 > 0.5) : false)) { float _e282 = s_11.thickness; vec4 _e284 = ext_layer(SLOT_THICKNESS, _e2, _e4); s_11.thickness = (_e282 * _e284.y); } float _e292 = _group_2_binding_0_fs.ext[3].x; s_11.clearcoat = _e292; float _e295 = ext_where(SLOT_CLEARCOAT); if ((SPEC_EXT_LAYERS ? (_e295 > 0.5) : false)) { float _e301 = s_11.clearcoat; vec4 _e303 = ext_layer(SLOT_CLEARCOAT, _e2, _e4); s_11.clearcoat = (_e301 * _e303.x); } float _e311 = _group_2_binding_0_fs.ext[3].y; s_11.clearcoat_roughness = _e311; float _e314 = ext_where(SLOT_CLEARCOAT_ROUGHNESS); if ((SPEC_EXT_LAYERS ? (_e314 > 0.5) : false)) { float _e320 = s_11.clearcoat_roughness; vec4 _e322 = ext_layer(SLOT_CLEARCOAT_ROUGHNESS, _e2, _e4); s_11.clearcoat_roughness = (_e320 * _e322.y); } s_11.clearcoat_normal = vec3(0.0, 0.0, 1.0); s_11.clearcoat_mapped = false; float _e334 = ext_where(SLOT_CLEARCOAT_NORMAL); if ((SPEC_EXT_LAYERS ? (_e334 > 0.5) : false)) { vec4 _e341 = ext_layer(SLOT_CLEARCOAT_NORMAL, _e2, _e4); float _e347 = _group_2_binding_0_fs.ext[3].z; vec3 _e348 = scaled_normal(_e341.xyz, _e347); s_11.clearcoat_normal = _e348; s_11.clearcoat_mapped = true; } vec4 _e355 = _group_2_binding_0_fs.ext[4]; s_11.sheen_color = _e355.xyz; float _e359 = ext_where(SLOT_SHEEN_COLOR); if ((SPEC_EXT_LAYERS ? (_e359 > 0.5) : false)) { vec3 _e365 = s_11.sheen_color; vec4 _e367 = ext_layer(SLOT_SHEEN_COLOR, _e2, _e4); vec3 _e369 = srgb_to_linear(_e367.xyz); s_11.sheen_color = (_e365 * _e369); } float _e376 = _group_2_binding_0_fs.ext[4].w; s_11.sheen_roughness = _e376; float _e379 = ext_where(SLOT_SHEEN_ROUGHNESS); if ((SPEC_EXT_LAYERS ? (_e379 > 0.5) : false)) { float _e385 = s_11.sheen_roughness; vec4 _e387 = ext_layer(SLOT_SHEEN_ROUGHNESS, _e2, _e4); s_11.sheen_roughness = (_e385 * _e387.w); } float _e395 = _group_2_binding_0_fs.ext[5].x; s_11.iridescence = _e395; float _e398 = ext_where(SLOT_IRIDESCENCE); if ((SPEC_EXT_LAYERS ? (_e398 > 0.5) : false)) { float _e404 = s_11.iridescence; vec4 _e406 = ext_layer(SLOT_IRIDESCENCE, _e2, _e4); s_11.iridescence = (_e404 * _e406.x); } float _e413 = ext_where(SLOT_IRIDESCENCE_THICKNESS); if ((SPEC_EXT_LAYERS ? (_e413 > 0.5) : false)) { vec4 _e419 = ext_layer(SLOT_IRIDESCENCE_THICKNESS, _e2, _e4); thick = _e419.y; } float _e426 = _group_2_binding_0_fs.ext[5].z; float _e431 = _group_2_binding_0_fs.ext[5].w; float _e432 = thick; s_11.iridescence_thickness = mix(_e426, _e431, _e432); float _e439 = _group_2_binding_0_fs.ext[6].x; s_11.anisotropy = _e439; vec4 _e444 = _group_2_binding_0_fs.ext[6]; s_11.anisotropy_dir = _e444.yz; float _e448 = ext_where(SLOT_ANISOTROPY); if ((SPEC_EXT_LAYERS ? (_e448 > 0.5) : false)) { vec4 _e454 = ext_layer(SLOT_ANISOTROPY, _e2, _e4); vec3 a_4 = _e454.xyz; vec2 d_15 = ((a_4.xy * 2.0) - vec2(1.0)); vec2 dn = ((dot(d_15, d_15) > 1e-8) ? normalize(d_15) : vec2(1.0, 0.0)); float c_37 = _group_2_binding_0_fs.ext[6].y; float sn = _group_2_binding_0_fs.ext[6].z; s_11.anisotropy_dir = vec2(((c_37 * dn.x) - (sn * dn.y)), ((sn * dn.x) + (c_37 * dn.y))); float _e493 = s_11.anisotropy; s_11.anisotropy = (_e493 * a_4.z); } float _e501 = _group_2_binding_0_fs.ext[7].w; s_11.diffuse_transmission = _e501; float _e504 = ext_where(SLOT_DIFFUSE_TRANSMISSION); if ((SPEC_EXT_LAYERS ? (_e504 > 0.5) : false)) { float _e510 = s_11.diffuse_transmission; vec4 _e512 = ext_layer(SLOT_DIFFUSE_TRANSMISSION, _e2, _e4); s_11.diffuse_transmission = (_e510 * _e512.w); } vec4 _e519 = _group_2_binding_0_fs.ext[7]; s_11.diffuse_transmission_color = _e519.xyz; float _e523 = ext_where(SLOT_DIFFUSE_TRANSMISSION_COLOR); if ((SPEC_EXT_LAYERS ? (_e523 > 0.5) : false)) { vec3 _e529 = s_11.diffuse_transmission_color; vec4 _e531 = ext_layer(SLOT_DIFFUSE_TRANSMISSION_COLOR, _e2, _e4); vec3 _e533 = srgb_to_linear(_e531.xyz); s_11.diffuse_transmission_color = (_e529 * _e533); } ExtSamples _e535 = s_11; return _e535; } bool ext_cut(ExtSamples s_12) { bool local_37 = false; uint _e5 = _group_2_binding_0_fs.flags.y; if ((_e5 == ALPHA_MASK)) { float _e15 = _group_2_binding_0_fs.emission.w; local_37 = (s_12.base.w < _e15); } else { local_37 = false; } bool _e18 = local_37; return (SPEC_ALPHA_MASK ? _e18 : false); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_4 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_4 * nh_1)); float w2_ = (a2_4 / dot(f_4, f_4)); return (((a2_4 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_9 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_5 = mix(21.5473, 25.3245, o_9); float b_3 = mix(3.82987, 3.32435, o_9); float c_38 = mix(0.19823, 0.16801, o_9); float d_16 = mix(-1.9776, -1.27393, o_9); float e_16 = mix(-4.32054, -4.85967, o_9); return (((a_5 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_38)))) + (d_16 * x_3)) + e_16); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_6 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_6, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_7 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_7 * r_7); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_14 = (outside / film); float sin2sq = ((k_14 * k_14) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_1 = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_1 + ((1.0 - r0_1) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_8 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_8, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_8, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_8, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_1 = (_e175 + _e176); c_33 = (base_1 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_8, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_8, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsOutExt in_11 = VsOutExt(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7); IdOut out_5 = IdOut(vec4(0.0)); ExtSamples _e1 = sample_ext(in_11); if (((in_11.flags & F_HIDDEN) != 0u)) { discard; } float _e10 = emerge_reveal(in_11.world, in_11.clip.xy); if ((_e10 <= 0.0)) { discard; } bool _e13 = ext_cut(_e1); if (_e13) { discard; } uint id_1 = _group_1_binding_0_fs.params.z; uint _e23 = _group_1_binding_0_fs.params.x; uint _e32 = _group_1_binding_0_fs.params.y; uint bits = (((_e23 == 1u) ? 1u : 0u) | ((_e32 == 1u) ? 2u : 0u)); out_5.id = (vec4(float((id_1 & 255u)), float(((id_1 >> 8u) & 255u)), float(((id_1 >> 16u) & 255u)), float(bits)) / vec4(255.0)); IdOut _e57 = out_5; _fs2p_location0 = _e57.id; return; } fs_normal_depth_extmain#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform MaterialU_block_2Fragment { MaterialU _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; uniform highp sampler2D _group_2_binding_3_fs; uniform highp sampler2D _group_2_binding_4_fs; uniform highp sampler2D _group_2_binding_5_fs; uniform highp sampler2DArray _group_2_binding_7_fs; layout(std140) uniform DecalU_block_3Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in float _vs2fs_location5; smooth in vec4 _vs2fs_location6; smooth in vec2 _vs2fs_location7; layout(location = 0) out vec4 _fs2p_location0; layout(location = 1) out vec4 _fs2p_location1; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local_21 = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_13 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_13.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local_21 = all(lessThanEqual(uvw, vec3(1.0))); } else { local_21 = false; } bool _e35 = local_21; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_13.fades.x : e_13.fades.y)); if ((e_13.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_13.fades.z, 1.0, ((dot(n_geo, e_13.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_5 = uvw.xz; float _e69 = decal_level(e_13, world_1); uint live_1 = e_13.flags.x; if ((e_13.layers.x > 0u)) { vec4 _e82 = decal_texel(e_13.layers.x, uv_5, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_13.modulate); float _e90 = fade; float alpha_4 = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha_4 * e_13.fades.w)); if ((e_13.layers.y > 0u)) { vec4 _e110 = decal_texel(e_13.layers.y, uv_5, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_13.axis_x.xyz * nx) + (e_13.axis_y.xyz * nz)) + (e_13.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha_4)); } if ((e_13.layers.z > 0u)) { vec4 _e156 = decal_texel(e_13.layers.z, uv_5, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha_4); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha_4); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha_4); } } if ((e_13.layers.w > 0u)) { vec4 _e182 = decal_texel(e_13.layers.w, uv_5, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_13.modulate.xyz) * e_13.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec3 checker(vec2 uv_1) { vec3 c_10 = vec3(0.0); float s_18 = _group_0_binding_0_fs.fparams.y; vec2 cell = floor((uv_1 * s_18)); ivec2 ci = ivec2(cell); int odd = ((ci.x + ci.y) & 1); uint k_15 = ((uint(ci.x) * 73856093u) ^ (uint(ci.y) * 19349663u)); float hue = float((k_15 % 360u)); float value = ((odd == 1) ? 0.4 : 0.74); vec3 _e31 = hsv(hue, 0.18, value); c_10 = _e31; vec2 tile = abs((fract(uv_1) - vec2(0.5))); vec2 _e38 = fwidth(uv_1); vec2 w_1 = ((_e38 * 1.0) + vec2(0.0001)); bool border = any(greaterThan(tile, (vec2(0.5) - w_1))); vec3 _e49 = c_10; vec3 _e50 = c_10; c_10 = (border ? (_e50 * 0.35) : _e49); vec3 _e54 = c_10; vec3 _e55 = srgb_to_linear(_e54); return _e55; } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } vec2 material_uv(vec2 uv_3) { vec2 _e1 = tex_uv(uv_3); vec4 _e4 = _group_2_binding_0_fs.uv; vec4 _e9 = _group_2_binding_0_fs.uv; return ((_e1 * _e4.xy) + _e9.zw); } vec4 decoded_base(vec4 t) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_BASE) != 0u)) { vec3 _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } vec3 decoded_emission(vec3 t_1) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_EMISSION) != 0u)) { vec3 _e9 = srgb_to_linear(t_1); return _e9; } return t_1; } Samples sample_material(vec2 uv_in) { Samples s_3 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec2 _e1 = material_uv(uv_in); vec4 _e6 = _group_2_binding_0_fs.base_color; s_3.base = _e6; uint _e11 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e11 & T_BASE) != 0u) : false)) { vec4 _e19 = s_3.base; vec4 _e22 = texture(_group_2_binding_1_fs, vec2(_e1)); vec4 _e23 = decoded_base(_e22); s_3.base = (_e19 * _e23); } s_3.normal = vec3(0.0, 0.0, 1.0); uint _e34 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e34 & T_NORMAL) != 0u) : false)) { vec4 _e44 = texture(_group_2_binding_2_fs, vec2(_e1)); s_3.normal = normalize(((_e44.xyz * 2.0) - vec3(1.0))); } s_3.mr = vec4(1.0); uint _e59 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_MR ? ((_e59 & T_METALLIC_ROUGHNESS) != 0u) : false)) { vec4 _e69 = texture(_group_2_binding_3_fs, vec2(_e1)); s_3.mr = _e69; } vec4 _e73 = _group_2_binding_0_fs.emission; s_3.emission = _e73.xyz; uint _e79 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e79 & T_EMISSION) != 0u) : false)) { vec3 _e87 = s_3.emission; vec4 _e90 = texture(_group_2_binding_4_fs, vec2(_e1)); vec3 _e92 = decoded_emission(_e90.xyz); s_3.emission = (_e87 * _e92); } s_3.occlusion = 1.0; uint _e100 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e100 & T_OCCLUSION) != 0u) : false)) { vec4 _e110 = texture(_group_2_binding_5_fs, vec2(_e1)); s_3.occlusion = _e110.x; } Samples _e112 = s_3; return _e112; } Samples surface_samples(VsOut in_19) { Samples s_4 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec4 c_11 = vec4(0.0); Samples _e2 = sample_material(in_19.uv); s_4 = _e2; uint _e8 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e8 & MAT_VERTEX_COLOR) != 0u) : false)) { c_11 = in_19.color; uint _e20 = _group_2_binding_0_fs.flags.w; if (((_e20 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e25 = c_11; vec3 _e27 = srgb_to_linear(_e25.xyz); float _e29 = c_11.w; c_11 = vec4(_e27, _e29); } vec4 _e33 = s_4.base; vec4 _e34 = c_11; s_4.base = (_e33 * _e34); } Samples _e36 = s_4; return _e36; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 pbr(VsOut in_20, bool front, Samples s_5) { vec3 n_w = vec3(0.0); vec3 t_w = vec3(0.0); vec3 c_13 = vec3(0.0); float _e6 = _group_2_binding_0_fs.factors.x; float metallic_1 = clamp((_e6 * s_5.mr.z), 0.0, 1.0); float _e16 = _group_2_binding_0_fs.factors.y; float roughness_7 = clamp((_e16 * s_5.mr.y), 0.045, 1.0); float a2_4 = (((roughness_7 * roughness_7) * roughness_7) * roughness_7); vec3 base_1 = s_5.base.xyz; vec3 diffuse_4 = (base_1 * (1.0 - metallic_1)); vec3 f0_6 = mix(vec3(0.04), base_1, metallic_1); n_w = (front ? normalize(in_20.normal) : -(normalize(in_20.normal))); uint _e45 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e45 & T_NORMAL) != 0u) : false)) { t_w = in_20.tangent.xyz; vec3 _e55 = t_w; vec3 _e56 = n_w; vec3 _e57 = n_w; vec3 _e58 = t_w; t_w = normalize((_e55 - (_e56 * dot(_e57, _e58)))); vec3 _e63 = n_w; vec3 _e64 = t_w; vec3 b_w = (cross(_e63, _e64) * in_20.tangent.w); vec3 _e69 = t_w; vec3 _e77 = n_w; n_w = normalize((((_e69 * s_5.normal.x) + (b_w * s_5.normal.y)) + (_e77 * s_5.normal.z))); } mat4x4 _e85 = _group_0_binding_0_fs.view; vec3 _e86 = n_w; vec3 n_12 = normalize((_e85 * vec4(_e86, 0.0)).xyz); mat4x4 _e94 = _group_0_binding_0_fs.view; vec3 pos_v = (_e94 * vec4(in_20.world, 1.0)).xyz; float _e109 = _group_0_binding_0_fs.camera_pos.w; vec3 v_7 = ((_e109 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(pos_v))); mat4x4 _e115 = _group_0_binding_0_fs.view; vec3 up_1 = normalize((_e115 * vec4(0.0, 0.0, 1.0, 0.0)).xyz); vec3 _e127 = c_13; vec3 _e136 = light(n_12, v_7, vec3(-0.45112923, 0.5513802, 0.7017566), vec3(2.6, 2.522, 2.392), diffuse_4, f0_6, a2_4); c_13 = (_e127 + _e136); vec3 _e138 = c_13; vec3 _e147 = light(n_12, v_7, vec3(0.8451543, 0.16903086, 0.50709254), vec3(0.765, 0.80999994, 0.9), diffuse_4, f0_6, a2_4); c_13 = (_e138 + _e147); vec3 _e149 = c_13; vec3 _e158 = light(n_12, v_7, vec3(0.34583426, 0.63402945, -0.6916685), vec3(1.3, 1.3, 1.3), diffuse_4, f0_6, a2_4); c_13 = (_e149 + _e158); float nv_8 = max(dot(n_12, v_7), 0.0001); vec3 r_6 = reflect(-(v_7), n_12); vec3 _e166 = env(dot(n_12, up_1)); vec3 irradiance = (_e166 * 0.8); vec3 _e170 = env(dot(r_6, up_1)); vec3 _e172 = env(0.0); vec3 blurred = mix(_e170, (_e172 * 0.85), roughness_7); vec3 f_amb = (f0_6 + ((max(vec3((1.0 - roughness_7)), f0_6) - f0_6) * pow((1.0 - nv_8), 5.0))); vec3 ambient_1 = ((diffuse_4 * irradiance) + ((blurred * f_amb) * (1.0 - (0.5 * roughness_7)))); vec3 _e195 = c_13; c_13 = (_e195 + (ambient_1 * s_5.occlusion)); vec3 _e199 = c_13; c_13 = (_e199 + s_5.emission); vec3 _e202 = c_13; return _e202; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_2 = (1.8 * white); float wt = (((w_2 * (w_2 + 0.0245786)) - 9.0537e-5) / ((w_2 * ((0.983729 * w_2) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_3 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_3, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_14 = _group_1_binding_0_fs.normal[0][3]; vec3 w_3 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_3); float _e29 = emerge_noise(((w_3 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_14 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_7 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_7.x * r_7.x), exp2((-9.28 * nv_1))) * r_7.x) + r_7.y); return ((vec2(-1.04, 1.04) * a004_) + r_7.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_4 = abs(d_8); if ((a_4.x >= a_4.y)) { local_32 = (a_4.x >= a_4.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_4.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_4.y >= a_4.z)) { ma = a_4.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_4.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_15 = p_5.extents.xyz; float d_13 = min((e_15.x - abs(l_10.x)), min((e_15.y - abs(l_10.y)), (e_15.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_16 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_16.x); float _e28 = probe_exit(o_7.y, d_14.y, e_16.y); float _e32 = probe_exit(o_7.z, d_14.z, e_16.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_fs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_fs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_fs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_fs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_fs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_fs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_fs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_fs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_fs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_fs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec2 ext_uv(uint s_8, vec2 uv0_, vec2 uv1_5) { vec4 r0_ = _group_2_binding_0_fs.xf[(s_8 * 2u)]; vec4 r1_ = _group_2_binding_0_fs.xf[((s_8 * 2u) + 1u)]; vec2 uv_6 = ((r0_.w > 0.5) ? uv1_5 : uv0_); return vec2((dot(r0_.xy, uv_6) + r0_.z), (dot(r1_.xy, uv_6) + r1_.z)); } float ext_where(uint s_9) { float _e9 = _group_2_binding_0_fs.xf[((s_9 * 2u) + 1u)].w; return _e9; } vec4 ext_layer(uint s_10, vec2 uv0_1, vec2 uv1_6) { vec2 _e5 = ext_uv(s_10, uv0_1, uv1_6); float _e6 = ext_where(s_10); vec4 _e12 = texture(_group_2_binding_7_fs, vec3(_e5, (int((_e6 + 0.5)) - 1))); return _e12; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } ExtSamples sample_ext(VsOutExt in_25) { ExtSamples s_11 = ExtSamples(vec4(0.0), vec3(0.0), 0.0, 0.0, vec3(0.0), 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec3(0.0), false, vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec2(0.0), 0.0, vec3(0.0)); vec4 c_31 = vec4(0.0); float thick = 1.0; vec2 _e2 = tex_uv(in_25.uv); vec2 _e4 = tex_uv(in_25.uv1_); vec4 _e9 = _group_2_binding_0_fs.base_color; s_11.base = _e9; uint _e14 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e14 & T_BASE) != 0u) : false)) { vec4 _e22 = s_11.base; vec2 _e26 = ext_uv(SLOT_BASE, _e2, _e4); vec4 _e27 = texture(_group_2_binding_1_fs, vec2(_e26)); vec4 _e28 = decoded_base(_e27); s_11.base = (_e22 * _e28); } uint _e34 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e34 & MAT_VERTEX_COLOR) != 0u) : false)) { c_31 = in_25.color; uint _e46 = _group_2_binding_0_fs.flags.w; if (((_e46 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e51 = c_31; vec3 _e53 = srgb_to_linear(_e51.xyz); float _e55 = c_31.w; c_31 = vec4(_e53, _e55); } vec4 _e59 = s_11.base; vec4 _e60 = c_31; s_11.base = (_e59 * _e60); } s_11.normal = vec3(0.0, 0.0, 1.0); uint _e71 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e71 & T_NORMAL) != 0u) : false)) { vec2 _e82 = ext_uv(SLOT_NORMAL, _e2, _e4); vec4 _e83 = texture(_group_2_binding_2_fs, vec2(_e82)); float _e89 = _group_2_binding_0_fs.ext[3].w; vec3 _e90 = scaled_normal(_e83.xyz, _e89); s_11.normal = _e90; } float _e95 = _group_2_binding_0_fs.factors.x; s_11.metallic = _e95; float _e98 = ext_where(SLOT_METALLIC); if ((SPEC_TEX_MR ? (_e98 > 0.5) : false)) { float _e104 = s_11.metallic; vec2 _e108 = ext_uv(SLOT_METALLIC, _e2, _e4); vec4 _e109 = texture(_group_2_binding_3_fs, vec2(_e108)); s_11.metallic = (_e104 * _e109.z); } float _e116 = _group_2_binding_0_fs.factors.y; s_11.roughness = _e116; uint _e121 = _group_2_binding_0_fs.flags.w; if ((SPEC_ROUGHNESS_LAYER ? ((_e121 & MAT_ROUGHNESS_LAYER) != 0u) : false)) { float _e129 = ext_where(SLOT_ROUGHNESS); if ((_e129 > 0.5)) { float _e133 = s_11.roughness; vec4 _e135 = ext_layer(SLOT_ROUGHNESS, _e2, _e4); s_11.roughness = (_e133 * _e135.y); } } else { float _e140 = ext_where(SLOT_ROUGHNESS); if ((SPEC_TEX_MR ? (_e140 > 0.5) : false)) { float _e146 = s_11.roughness; vec2 _e150 = ext_uv(SLOT_ROUGHNESS, _e2, _e4); vec4 _e151 = texture(_group_2_binding_3_fs, vec2(_e150)); s_11.roughness = (_e146 * _e151.y); } } vec4 _e157 = _group_2_binding_0_fs.emission; s_11.emission = _e157.xyz; uint _e163 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e163 & T_EMISSION) != 0u) : false)) { vec3 _e171 = s_11.emission; vec2 _e175 = ext_uv(SLOT_EMISSIVE, _e2, _e4); vec4 _e176 = texture(_group_2_binding_4_fs, vec2(_e175)); vec3 _e178 = decoded_emission(_e176.xyz); s_11.emission = (_e171 * _e178); } s_11.occlusion = 1.0; uint _e186 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e186 & T_OCCLUSION) != 0u) : false)) { vec2 _e196 = ext_uv(SLOT_OCCLUSION, _e2, _e4); vec4 _e197 = texture(_group_2_binding_5_fs, vec2(_e196)); float o_8 = _e197.x; float _e204 = _group_2_binding_0_fs.ext[6].w; s_11.occlusion = (1.0 + (_e204 * (o_8 - 1.0))); } float _e215 = _group_2_binding_0_fs.ext[0].w; s_11.specular = _e215; float _e218 = ext_where(SLOT_SPECULAR); if ((SPEC_EXT_LAYERS ? (_e218 > 0.5) : false)) { float _e224 = s_11.specular; vec4 _e226 = ext_layer(SLOT_SPECULAR, _e2, _e4); s_11.specular = (_e224 * _e226.w); } vec4 _e233 = _group_2_binding_0_fs.ext[0]; s_11.specular_color = _e233.xyz; float _e237 = ext_where(SLOT_SPECULAR_COLOR); if ((SPEC_EXT_LAYERS ? (_e237 > 0.5) : false)) { vec3 _e243 = s_11.specular_color; vec4 _e245 = ext_layer(SLOT_SPECULAR_COLOR, _e2, _e4); vec3 _e247 = srgb_to_linear(_e245.xyz); s_11.specular_color = (_e243 * _e247); } float _e254 = _group_2_binding_0_fs.ext[1].y; s_11.transmission = _e254; float _e257 = ext_where(SLOT_TRANSMISSION); if ((SPEC_EXT_LAYERS ? (_e257 > 0.5) : false)) { float _e263 = s_11.transmission; vec4 _e265 = ext_layer(SLOT_TRANSMISSION, _e2, _e4); s_11.transmission = (_e263 * _e265.x); } float _e273 = _group_2_binding_0_fs.ext[1].z; s_11.thickness = _e273; float _e276 = ext_where(SLOT_THICKNESS); if ((SPEC_EXT_LAYERS ? (_e276 > 0.5) : false)) { float _e282 = s_11.thickness; vec4 _e284 = ext_layer(SLOT_THICKNESS, _e2, _e4); s_11.thickness = (_e282 * _e284.y); } float _e292 = _group_2_binding_0_fs.ext[3].x; s_11.clearcoat = _e292; float _e295 = ext_where(SLOT_CLEARCOAT); if ((SPEC_EXT_LAYERS ? (_e295 > 0.5) : false)) { float _e301 = s_11.clearcoat; vec4 _e303 = ext_layer(SLOT_CLEARCOAT, _e2, _e4); s_11.clearcoat = (_e301 * _e303.x); } float _e311 = _group_2_binding_0_fs.ext[3].y; s_11.clearcoat_roughness = _e311; float _e314 = ext_where(SLOT_CLEARCOAT_ROUGHNESS); if ((SPEC_EXT_LAYERS ? (_e314 > 0.5) : false)) { float _e320 = s_11.clearcoat_roughness; vec4 _e322 = ext_layer(SLOT_CLEARCOAT_ROUGHNESS, _e2, _e4); s_11.clearcoat_roughness = (_e320 * _e322.y); } s_11.clearcoat_normal = vec3(0.0, 0.0, 1.0); s_11.clearcoat_mapped = false; float _e334 = ext_where(SLOT_CLEARCOAT_NORMAL); if ((SPEC_EXT_LAYERS ? (_e334 > 0.5) : false)) { vec4 _e341 = ext_layer(SLOT_CLEARCOAT_NORMAL, _e2, _e4); float _e347 = _group_2_binding_0_fs.ext[3].z; vec3 _e348 = scaled_normal(_e341.xyz, _e347); s_11.clearcoat_normal = _e348; s_11.clearcoat_mapped = true; } vec4 _e355 = _group_2_binding_0_fs.ext[4]; s_11.sheen_color = _e355.xyz; float _e359 = ext_where(SLOT_SHEEN_COLOR); if ((SPEC_EXT_LAYERS ? (_e359 > 0.5) : false)) { vec3 _e365 = s_11.sheen_color; vec4 _e367 = ext_layer(SLOT_SHEEN_COLOR, _e2, _e4); vec3 _e369 = srgb_to_linear(_e367.xyz); s_11.sheen_color = (_e365 * _e369); } float _e376 = _group_2_binding_0_fs.ext[4].w; s_11.sheen_roughness = _e376; float _e379 = ext_where(SLOT_SHEEN_ROUGHNESS); if ((SPEC_EXT_LAYERS ? (_e379 > 0.5) : false)) { float _e385 = s_11.sheen_roughness; vec4 _e387 = ext_layer(SLOT_SHEEN_ROUGHNESS, _e2, _e4); s_11.sheen_roughness = (_e385 * _e387.w); } float _e395 = _group_2_binding_0_fs.ext[5].x; s_11.iridescence = _e395; float _e398 = ext_where(SLOT_IRIDESCENCE); if ((SPEC_EXT_LAYERS ? (_e398 > 0.5) : false)) { float _e404 = s_11.iridescence; vec4 _e406 = ext_layer(SLOT_IRIDESCENCE, _e2, _e4); s_11.iridescence = (_e404 * _e406.x); } float _e413 = ext_where(SLOT_IRIDESCENCE_THICKNESS); if ((SPEC_EXT_LAYERS ? (_e413 > 0.5) : false)) { vec4 _e419 = ext_layer(SLOT_IRIDESCENCE_THICKNESS, _e2, _e4); thick = _e419.y; } float _e426 = _group_2_binding_0_fs.ext[5].z; float _e431 = _group_2_binding_0_fs.ext[5].w; float _e432 = thick; s_11.iridescence_thickness = mix(_e426, _e431, _e432); float _e439 = _group_2_binding_0_fs.ext[6].x; s_11.anisotropy = _e439; vec4 _e444 = _group_2_binding_0_fs.ext[6]; s_11.anisotropy_dir = _e444.yz; float _e448 = ext_where(SLOT_ANISOTROPY); if ((SPEC_EXT_LAYERS ? (_e448 > 0.5) : false)) { vec4 _e454 = ext_layer(SLOT_ANISOTROPY, _e2, _e4); vec3 a_5 = _e454.xyz; vec2 d_15 = ((a_5.xy * 2.0) - vec2(1.0)); vec2 dn_1 = ((dot(d_15, d_15) > 1e-8) ? normalize(d_15) : vec2(1.0, 0.0)); float c_37 = _group_2_binding_0_fs.ext[6].y; float sn = _group_2_binding_0_fs.ext[6].z; s_11.anisotropy_dir = vec2(((c_37 * dn_1.x) - (sn * dn_1.y)), ((sn * dn_1.x) + (c_37 * dn_1.y))); float _e493 = s_11.anisotropy; s_11.anisotropy = (_e493 * a_5.z); } float _e501 = _group_2_binding_0_fs.ext[7].w; s_11.diffuse_transmission = _e501; float _e504 = ext_where(SLOT_DIFFUSE_TRANSMISSION); if ((SPEC_EXT_LAYERS ? (_e504 > 0.5) : false)) { float _e510 = s_11.diffuse_transmission; vec4 _e512 = ext_layer(SLOT_DIFFUSE_TRANSMISSION, _e2, _e4); s_11.diffuse_transmission = (_e510 * _e512.w); } vec4 _e519 = _group_2_binding_0_fs.ext[7]; s_11.diffuse_transmission_color = _e519.xyz; float _e523 = ext_where(SLOT_DIFFUSE_TRANSMISSION_COLOR); if ((SPEC_EXT_LAYERS ? (_e523 > 0.5) : false)) { vec3 _e529 = s_11.diffuse_transmission_color; vec4 _e531 = ext_layer(SLOT_DIFFUSE_TRANSMISSION_COLOR, _e2, _e4); vec3 _e533 = srgb_to_linear(_e531.xyz); s_11.diffuse_transmission_color = (_e529 * _e533); } ExtSamples _e535 = s_11; return _e535; } bool ext_cut(ExtSamples s_12) { bool local_37 = false; uint _e5 = _group_2_binding_0_fs.flags.y; if ((_e5 == ALPHA_MASK)) { float _e15 = _group_2_binding_0_fs.emission.w; local_37 = (s_12.base.w < _e15); } else { local_37 = false; } bool _e18 = local_37; return (SPEC_ALPHA_MASK ? _e18 : false); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_5 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_5 * nh_1)); float w2_ = (a2_5 / dot(f_4, f_4)); return (((a2_5 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_9 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_6 = mix(21.5473, 25.3245, o_9); float b_3 = mix(3.82987, 3.32435, o_9); float c_38 = mix(0.19823, 0.16801, o_9); float d_16 = mix(-1.9776, -1.27393, o_9); float e_17 = mix(-4.32054, -4.85967, o_9); return (((a_6 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_38)))) + (d_16 * x_3)) + e_17); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_7 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_7, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_8 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_8 * r_8); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_16 = (outside / film); float sin2sq = ((k_16 * k_16) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_1 = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_1 + ((1.0 - r0_1) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init_1 = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } ExtCtx ext_ctx(VsOutExt in_26, bool front_3, ExtSamples s_13, bool decals) { ExtCtx e_4 = ExtCtx(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0), 0.0, vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), false, 0.0, vec2(0.0), 0.0, 0.0, vec3(0.0)); vec3 t_4 = vec3(0.0); DecalSurface surf_2 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); bool local_38 = false; vec3 n_geo_2 = (front_3 ? normalize(in_26.normal) : -(normalize(in_26.normal))); t_4 = in_26.tangent.xyz; vec3 _e14 = t_4; vec3 _e15 = t_4; t_4 = normalize((_e14 - (n_geo_2 * dot(n_geo_2, _e15)))); vec3 _e20 = t_4; vec3 b_5 = (cross(n_geo_2, _e20) * in_26.tangent.w); e_4.n_geo = n_geo_2; e_4.n = n_geo_2; uint _e31 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e31 & T_NORMAL) != 0u) : false)) { vec3 _e39 = t_4; e_4.n = normalize((((_e39 * s_13.normal.x) + (b_5 * s_13.normal.y)) + (n_geo_2 * s_13.normal.z))); } e_4.nc = n_geo_2; if (s_13.clearcoat_mapped) { vec3 _e55 = t_4; e_4.nc = normalize((((_e55 * s_13.clearcoat_normal.x) + (b_5 * s_13.clearcoat_normal.y)) + (n_geo_2 * s_13.clearcoat_normal.z))); } vec3 _e80 = e_4.n; surf_2 = DecalSurface(s_13.base.xyz, clamp(s_13.metallic, 0.0, 1.0), clamp(s_13.roughness, 0.045, 1.0), s_13.occlusion, _e80, s_13.emission); if ((SPEC_DECALS ? decals : false)) { DecalSurface _e88 = surf_2; DecalSurface _e89 = apply_decals(in_26.world, n_geo_2, _e88); surf_2 = _e89; } vec3 _e92 = surf_2.normal; e_4.n = _e92; float _e95 = surf_2.occlusion; e_4.occlusion = _e95; vec3 _e98 = surf_2.emission; e_4.emission = _e98; vec3 _e101 = ext_view(in_26.world); e_4.v = _e101; e_4.world = in_26.world; vec3 _e106 = e_4.n; vec3 _e108 = e_4.v; e_4.nv = max(dot(_e106, _e108), 0.0001); float _e114 = surf_2.metallic; e_4.metallic = _e114; float _e117 = surf_2.roughness; e_4.roughness = _e117; float _e120 = e_4.roughness; float _e122 = e_4.roughness; e_4.alpha = (_e120 * _e122); float _e126 = e_4.alpha; float _e128 = e_4.alpha; e_4.a2_ = (_e126 * _e128); vec3 _e132 = surf_2.base; e_4.base = _e132; vec3 _e135 = e_4.base; float _e137 = e_4.metallic; e_4.diffuse = (_e135 * (1.0 - _e137)); float _e146 = _group_2_binding_0_fs.ext[1].x; e_4.ior = max(_e146, 1.0); float _e150 = e_4.ior; float _e154 = e_4.ior; float r_9 = ((_e150 - 1.0) / (_e154 + 1.0)); float spec_4 = max(s_13.specular, 0.0); vec3 dielectric_f0_ = (min((vec3((r_9 * r_9)) * s_13.specular_color), vec3(1.0)) * spec_4); vec3 _e171 = e_4.base; float _e173 = e_4.metallic; e_4.f0_ = mix(dielectric_f0_, _e171, _e173); float _e180 = e_4.metallic; e_4.f90_ = mix(vec3(spec_4), vec3(1.0), _e180); e_4.iridescence = clamp(s_13.iridescence, 0.0, 1.0); vec3 _e189 = e_4.f0_; e_4.irid_f = _e189; float _e192 = e_4.iridescence; if ((SPEC_IRIDESCENCE ? (_e192 > 0.0) : false)) { float _e203 = _group_2_binding_0_fs.ext[5].y; float _e205 = e_4.nv; vec3 _e208 = e_4.f0_; vec3 _e209 = eval_iridescence(1.0, _e203, _e205, s_13.iridescence_thickness, _e208); e_4.irid_f = _e209; } e_4.aniso = clamp(s_13.anisotropy, 0.0, 1.0); vec3 _e216 = t_4; e_4.aniso_t = normalize(((_e216 * s_13.anisotropy_dir.x) + (b_5 * s_13.anisotropy_dir.y))); vec3 _e227 = e_4.aniso_t; e_4.aniso_b = normalize(cross(n_geo_2, _e227)); e_4.clearcoat = clamp(s_13.clearcoat, 0.0, 1.0); e_4.cc_roughness = clamp(s_13.clearcoat_roughness, 0.045, 1.0); float _e241 = e_4.cc_roughness; float _e243 = e_4.cc_roughness; float cca = (_e241 * _e243); e_4.cc_a2_ = (cca * cca); e_4.sheen = max(s_13.sheen_color, vec3(0.0)); e_4.sheen_roughness = clamp(s_13.sheen_roughness, 0.07, 1.0); float _e259 = e_4.sheen_roughness; float _e261 = e_4.sheen_roughness; e_4.sheen_alpha = (_e259 * _e261); e_4.dt = clamp(s_13.diffuse_transmission, 0.0, 1.0); e_4.dt_color = max(s_13.diffuse_transmission_color, vec3(0.0)); e_4.transmission = clamp(s_13.transmission, 0.0, 1.0); float _e280 = e_4.alpha; float _e282 = e_4.ior; e_4.trans_alpha = max((_e280 * clamp(((_e282 * 2.0) - 2.0), 0.0, 1.0)), 0.002); vec4 _e296 = _group_1_binding_0_fs.model[0]; vec4 _e302 = _group_1_binding_0_fs.model[1]; vec4 _e309 = _group_1_binding_0_fs.model[2]; float scale_1 = (((length(_e296.xyz) + length(_e302.xyz)) + length(_e309.xyz)) / 3.0); float dist_1 = (max(s_13.thickness, 0.0) * scale_1); e_4.thin = (dist_1 <= 0.0); e_4.thickness = dist_1; e_4.frag = in_26.clip.xy; e_4.attenuation = vec3(1.0); float _e334 = _group_2_binding_0_fs.ext[1].w; if ((_e334 > 0.0)) { local_38 = (dist_1 > 0.0); } else { local_38 = false; } bool _e342 = local_38; if ((SPEC_VOLUME ? _e342 : false)) { vec4 _e349 = _group_2_binding_0_fs.ext[2]; float _e358 = _group_2_binding_0_fs.ext[1].w; e_4.attenuation = pow(max(_e349.xyz, vec3(1e-6)), vec3((dist_1 / _e358))); } float _e367 = _group_2_binding_0_fs.ext[2].w; e_4.dispersion = _e367; ExtCtx _e368 = e_4; return _e368; } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_9 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_9, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_9, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_9, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_2 = (_e175 + _e176); c_33 = (base_2 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_9, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_9, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_fs.view_proj; vec4 c_39 = (_e3 * vec4(p_7, 1.0)); vec2 ndc = (c_39.xy / vec2(((c_39.w > 1e-6) ? c_39.w : 1e-6))); return vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsOutExt in_12 = VsOutExt(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7); bool facing_3 = gl_FrontFacing; NormalDepthOut out_6 = NormalDepthOut(vec4(0.0), vec4(0.0)); ExtSamples _e2 = sample_ext(in_12); if (((in_12.flags & F_HIDDEN) != 0u)) { discard; } float _e11 = emerge_reveal(in_12.world, in_12.clip.xy); if ((_e11 <= 0.0)) { discard; } bool _e14 = ext_cut(_e2); if (_e14) { discard; } VsOut _e15 = ext_base_in(in_12); bool _e16 = mirrored(_e15); bool front_6 = (facing_3 != _e16); vec3 n_world = (front_6 ? normalize(in_12.normal) : -(normalize(in_12.normal))); mat4x4 _e26 = _group_0_binding_0_fs.view; vec3 n_view = normalize((_e26 * vec4(n_world, 0.0)).xyz); ExtCtx _e33 = ext_ctx(in_12, front_6, _e2, false); mat4x4 _e38 = _group_0_binding_0_fs.view; out_6.normal_depth = vec4(n_view, -((_e38 * vec4(in_12.world, 1.0)).z)); out_6.surface = vec4(clamp(_e33.f0_, vec3(0.0), vec3(1.0)), _e33.roughness); NormalDepthOut _e55 = out_6; _fs2p_location0 = _e55.normal_depth; _fs2p_location1 = _e55.surface; return; } vs_surface_lmmainð®#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 10) in vec2 _p2vs_location10; layout(location = 11) in vec2 _p2vs_location11; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out float _vs2fs_location5; smooth out vec4 _vs2fs_location6; smooth out vec2 _vs2fs_location7; smooth out vec2 _vs2fs_location8; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_13 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_13 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float d_13 = min((e_14.x - abs(l_10.x)), min((e_14.y - abs(l_10.y)), (e_14.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_15 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_15.x); float _e28 = probe_exit(o_7.y, d_14.y, e_15.y); float _e32 = probe_exit(o_7.z, d_14.z, e_15.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_vs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_vs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_vs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_vs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_vs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_vs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_vs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_vs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_vs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_vs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_4 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_4 * nh_1)); float w2_ = (a2_4 / dot(f_4, f_4)); return (((a2_4 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_8 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_4 = mix(21.5473, 25.3245, o_8); float b_3 = mix(3.82987, 3.32435, o_8); float c_37 = mix(0.19823, 0.16801, o_8); float d_15 = mix(-1.9776, -1.27393, o_8); float e_16 = mix(-4.32054, -4.85967, o_8); return (((a_4 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_37)))) + (d_15 * x_3)) + e_16); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_5 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_5, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_7 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_7 * r_7); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_15 = (outside / film); float sin2sq = ((k_15 * k_15) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_ = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_ + ((1.0 - r0_) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_8 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_8, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_8, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_8, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_1 = (_e175 + _e176); c_33 = (base_1 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_8, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_8, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_vs.view_proj; vec4 c_38 = (_e3 * vec4(p_7, 1.0)); vec2 ndc = (c_38.xy / vec2(((c_38.w > 1e-6) ? c_38.w : 1e-6))); return vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } void main() { VsIn in_13 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); vec2 uv1_2 = _p2vs_location10; vec2 uv_lm = _p2vs_location11; VsOutLm out_7 = VsOutLm(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0), vec2(0.0)); VsOut _e3 = surface_vertex(in_13); out_7.clip = _e3.clip; out_7.world = _e3.world; out_7.normal = _e3.normal; out_7.uv = _e3.uv; out_7.flags = _e3.flags; out_7.tangent = _e3.tangent; out_7.weight = _e3.weight; out_7.color = _e3.color; out_7.uv1_ = uv1_2; out_7.uv_lm = uv_lm; VsOutLm _e23 = out_7; gl_Position = _e23.clip; _vs2fs_location0 = _e23.world; _vs2fs_location1 = _e23.normal; _vs2fs_location2 = _e23.uv; _vs2fs_location3 = _e23.flags; _vs2fs_location4 = _e23.tangent; _vs2fs_location5 = _e23.weight; _vs2fs_location6 = _e23.color; _vs2fs_location7 = _e23.uv1_; _vs2fs_location8 = _e23.uv_lm; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_surface_lmmaindß#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform MaterialU_block_2Fragment { MaterialU _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; uniform highp sampler2D _group_2_binding_3_fs; uniform highp sampler2D _group_2_binding_4_fs; uniform highp sampler2D _group_2_binding_5_fs; layout(std140) uniform LitU_block_3Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform ShadowU_block_4Fragment { ShadowU _group_0_binding_2_fs; }; uniform highp sampler2DShadow _group_0_binding_3_fs; layout(std140) uniform SkyU_block_5Fragment { SkyU _group_0_binding_5_fs; }; uniform highp samplerCube _group_3_binding_0_fs; uniform highp sampler2D _group_0_binding_6_fs; uniform highp sampler2DArray _group_3_binding_4_fs; layout(std140) uniform ProbeU_block_6Fragment { ProbeU _group_0_binding_7_fs; }; uniform highp sampler2D _group_3_binding_6_fs; layout(std140) uniform DecalU_block_7Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; layout(std140) uniform FogU_block_8Fragment { FogU _group_1_binding_5_fs; }; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in float _vs2fs_location5; smooth in vec4 _vs2fs_location6; smooth in vec2 _vs2fs_location7; smooth in vec2 _vs2fs_location8; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word_1 = ((k_1 < 4u) ? _e8 : _e4); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_2 = ((k_2 < 4u) ? _e8 : _e4); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local_21 = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_13 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_13.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local_21 = all(lessThanEqual(uvw, vec3(1.0))); } else { local_21 = false; } bool _e35 = local_21; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_13.fades.x : e_13.fades.y)); if ((e_13.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_13.fades.z, 1.0, ((dot(n_geo, e_13.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_5 = uvw.xz; float _e69 = decal_level(e_13, world_1); uint live_1 = e_13.flags.x; if ((e_13.layers.x > 0u)) { vec4 _e82 = decal_texel(e_13.layers.x, uv_5, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_13.modulate); float _e90 = fade; float alpha_4 = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha_4 * e_13.fades.w)); if ((e_13.layers.y > 0u)) { vec4 _e110 = decal_texel(e_13.layers.y, uv_5, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_13.axis_x.xyz * nx) + (e_13.axis_y.xyz * nz)) + (e_13.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha_4)); } if ((e_13.layers.z > 0u)) { vec4 _e156 = decal_texel(e_13.layers.z, uv_5, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha_4); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha_4); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha_4); } } if ((e_13.layers.w > 0u)) { vec4 _e182 = decal_texel(e_13.layers.w, uv_5, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_13.modulate.xyz) * e_13.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec3 checker(vec2 uv_1) { vec3 c_10 = vec3(0.0); float s_18 = _group_0_binding_0_fs.fparams.y; vec2 cell = floor((uv_1 * s_18)); ivec2 ci = ivec2(cell); int odd = ((ci.x + ci.y) & 1); uint k_15 = ((uint(ci.x) * 73856093u) ^ (uint(ci.y) * 19349663u)); float hue = float((k_15 % 360u)); float value = ((odd == 1) ? 0.4 : 0.74); vec3 _e31 = hsv(hue, 0.18, value); c_10 = _e31; vec2 tile = abs((fract(uv_1) - vec2(0.5))); vec2 _e38 = fwidth(uv_1); vec2 w_1 = ((_e38 * 1.0) + vec2(0.0001)); bool border = any(greaterThan(tile, (vec2(0.5) - w_1))); vec3 _e49 = c_10; vec3 _e50 = c_10; c_10 = (border ? (_e50 * 0.35) : _e49); vec3 _e54 = c_10; vec3 _e55 = srgb_to_linear(_e54); return _e55; } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } vec2 material_uv(vec2 uv_3) { vec2 _e1 = tex_uv(uv_3); vec4 _e4 = _group_2_binding_0_fs.uv; vec4 _e9 = _group_2_binding_0_fs.uv; return ((_e1 * _e4.xy) + _e9.zw); } vec4 decoded_base(vec4 t) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_BASE) != 0u)) { vec3 _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } vec3 decoded_emission(vec3 t_1) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_EMISSION) != 0u)) { vec3 _e9 = srgb_to_linear(t_1); return _e9; } return t_1; } Samples sample_material(vec2 uv_in) { Samples s_3 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec2 _e1 = material_uv(uv_in); vec4 _e6 = _group_2_binding_0_fs.base_color; s_3.base = _e6; uint _e11 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e11 & T_BASE) != 0u) : false)) { vec4 _e19 = s_3.base; vec4 _e22 = texture(_group_2_binding_1_fs, vec2(_e1)); vec4 _e23 = decoded_base(_e22); s_3.base = (_e19 * _e23); } s_3.normal = vec3(0.0, 0.0, 1.0); uint _e34 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e34 & T_NORMAL) != 0u) : false)) { vec4 _e44 = texture(_group_2_binding_2_fs, vec2(_e1)); s_3.normal = normalize(((_e44.xyz * 2.0) - vec3(1.0))); } s_3.mr = vec4(1.0); uint _e59 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_MR ? ((_e59 & T_METALLIC_ROUGHNESS) != 0u) : false)) { vec4 _e69 = texture(_group_2_binding_3_fs, vec2(_e1)); s_3.mr = _e69; } vec4 _e73 = _group_2_binding_0_fs.emission; s_3.emission = _e73.xyz; uint _e79 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e79 & T_EMISSION) != 0u) : false)) { vec3 _e87 = s_3.emission; vec4 _e90 = texture(_group_2_binding_4_fs, vec2(_e1)); vec3 _e92 = decoded_emission(_e90.xyz); s_3.emission = (_e87 * _e92); } s_3.occlusion = 1.0; uint _e100 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e100 & T_OCCLUSION) != 0u) : false)) { vec4 _e110 = texture(_group_2_binding_5_fs, vec2(_e1)); s_3.occlusion = _e110.x; } Samples _e112 = s_3; return _e112; } Samples surface_samples(VsOut in_19) { Samples s_4 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec4 c_11 = vec4(0.0); Samples _e2 = sample_material(in_19.uv); s_4 = _e2; uint _e8 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e8 & MAT_VERTEX_COLOR) != 0u) : false)) { c_11 = in_19.color; uint _e20 = _group_2_binding_0_fs.flags.w; if (((_e20 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e25 = c_11; vec3 _e27 = srgb_to_linear(_e25.xyz); float _e29 = c_11.w; c_11 = vec4(_e27, _e29); } vec4 _e33 = s_4.base; vec4 _e34 = c_11; s_4.base = (_e33 * _e34); } Samples _e36 = s_4; return _e36; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 pbr(VsOut in_20, bool front, Samples s_5) { vec3 n_w = vec3(0.0); vec3 t_w = vec3(0.0); vec3 c_13 = vec3(0.0); float _e6 = _group_2_binding_0_fs.factors.x; float metallic_1 = clamp((_e6 * s_5.mr.z), 0.0, 1.0); float _e16 = _group_2_binding_0_fs.factors.y; float roughness_7 = clamp((_e16 * s_5.mr.y), 0.045, 1.0); float a2_4 = (((roughness_7 * roughness_7) * roughness_7) * roughness_7); vec3 base_1 = s_5.base.xyz; vec3 diffuse_4 = (base_1 * (1.0 - metallic_1)); vec3 f0_6 = mix(vec3(0.04), base_1, metallic_1); n_w = (front ? normalize(in_20.normal) : -(normalize(in_20.normal))); uint _e45 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e45 & T_NORMAL) != 0u) : false)) { t_w = in_20.tangent.xyz; vec3 _e55 = t_w; vec3 _e56 = n_w; vec3 _e57 = n_w; vec3 _e58 = t_w; t_w = normalize((_e55 - (_e56 * dot(_e57, _e58)))); vec3 _e63 = n_w; vec3 _e64 = t_w; vec3 b_w = (cross(_e63, _e64) * in_20.tangent.w); vec3 _e69 = t_w; vec3 _e77 = n_w; n_w = normalize((((_e69 * s_5.normal.x) + (b_w * s_5.normal.y)) + (_e77 * s_5.normal.z))); } mat4x4 _e85 = _group_0_binding_0_fs.view; vec3 _e86 = n_w; vec3 n_12 = normalize((_e85 * vec4(_e86, 0.0)).xyz); mat4x4 _e94 = _group_0_binding_0_fs.view; vec3 pos_v = (_e94 * vec4(in_20.world, 1.0)).xyz; float _e109 = _group_0_binding_0_fs.camera_pos.w; vec3 v_7 = ((_e109 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(pos_v))); mat4x4 _e115 = _group_0_binding_0_fs.view; vec3 up_1 = normalize((_e115 * vec4(0.0, 0.0, 1.0, 0.0)).xyz); vec3 _e127 = c_13; vec3 _e136 = light(n_12, v_7, vec3(-0.45112923, 0.5513802, 0.7017566), vec3(2.6, 2.522, 2.392), diffuse_4, f0_6, a2_4); c_13 = (_e127 + _e136); vec3 _e138 = c_13; vec3 _e147 = light(n_12, v_7, vec3(0.8451543, 0.16903086, 0.50709254), vec3(0.765, 0.80999994, 0.9), diffuse_4, f0_6, a2_4); c_13 = (_e138 + _e147); vec3 _e149 = c_13; vec3 _e158 = light(n_12, v_7, vec3(0.34583426, 0.63402945, -0.6916685), vec3(1.3, 1.3, 1.3), diffuse_4, f0_6, a2_4); c_13 = (_e149 + _e158); float nv_8 = max(dot(n_12, v_7), 0.0001); vec3 r_6 = reflect(-(v_7), n_12); vec3 _e166 = env(dot(n_12, up_1)); vec3 irradiance = (_e166 * 0.8); vec3 _e170 = env(dot(r_6, up_1)); vec3 _e172 = env(0.0); vec3 blurred = mix(_e170, (_e172 * 0.85), roughness_7); vec3 f_amb = (f0_6 + ((max(vec3((1.0 - roughness_7)), f0_6) - f0_6) * pow((1.0 - nv_8), 5.0))); vec3 ambient_1 = ((diffuse_4 * irradiance) + ((blurred * f_amb) * (1.0 - (0.5 * roughness_7)))); vec3 _e195 = c_13; c_13 = (_e195 + (ambient_1 * s_5.occlusion)); vec3 _e199 = c_13; c_13 = (_e199 + s_5.emission); vec3 _e202 = c_13; return _e202; } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_3 <= 1.5707964)) { float c_37 = (1.0 - (a_3 / 1.5707964)); float k_16 = clamp((1.0 - pow(max((1.0 - c_37), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_16); } float c_38 = ((a_3 - 1.5707964) / 1.5707964); float k_17 = clamp((1.0 - pow(max((1.0 - c_38), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_17); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_2 = (1.8 * white); float wt = (((w_2 * (w_2 + 0.0245786)) - 9.0537e-5) / ((w_2 * ((0.983729 * w_2) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_39 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_39) + c_39) / ((c_39 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_39); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_39, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_39); return _e36; } return c_39; } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_4 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_4, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_14 = _group_1_binding_0_fs.normal[0][3]; vec3 w_3 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_3); float _e29 = emerge_noise(((w_3 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_14 * 1.8) - _e60) / EMERGE_EDGE); } vec3 emerge_tint(vec3 c_16, float r) { bool local_22 = false; uint _e6 = _group_1_binding_0_fs.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_22 = (r >= 1.0); } else { local_22 = true; } bool _e17 = local_22; if ((SPEC_EMERGE ? _e17 : true)) { return c_16; } uint _e23 = _group_1_binding_0_fs.extra.w; vec3 _e26 = srgb_to_linear((vec4(_e23 & 0xFFu, _e23 >> 8 & 0xFFu, _e23 >> 16 & 0xFFu, _e23 >> 24) / 255.0).xyz); vec3 _e27 = tonemap(_e26); return mix(_e27, c_16, smoothstep(0.0, 1.0, r)); } vec3 item_fade(vec3 c_17) { uint _e5 = _group_1_binding_0_fs.extra.x; if ((SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true)) { return c_17; } vec4 f_4 = _group_1_binding_0_fs.normal[3]; vec3 _e17 = tonemap(f_4.xyz); return mix(c_17, _e17, f_4.w); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec3 procedural_sky(vec3 d_1) { vec3 sky_1 = vec3(0.0); uint i = 0u; float v_8 = acos(clamp(d_1.y, -1.0, 1.0)); vec4 _e8 = _group_0_binding_5_fs.sky_horizon; vec4 _e12 = _group_0_binding_5_fs.sky_top; float _e21 = _group_0_binding_5_fs.sky_top.w; float _e22 = sky_curve((1.0 - (v_8 / 1.5707964)), _e21); float _e27 = _group_0_binding_5_fs.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); uint _e33 = _group_0_binding_5_fs.flags.z; uint suns = min(_e33, SKY_SUNS); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e79 = i; i = (_e79 + 1u); } loop_init_1 = false; uint _e38 = i; if ((_e38 < suns)) { } else { break; } { uint _e42 = i; SunU sun = _group_0_binding_5_fs.suns[_e42]; float size = sun.direction.w; float a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1.0, 1.0)); if ((a_5 < size)) { sky_1 = sun.color.xyz; } else { float _e60 = _group_0_binding_5_fs.sun.x; if ((a_5 < _e60)) { float _e66 = _group_0_binding_5_fs.sun.x; float c2_ = ((a_5 - size) / (_e66 - size)); vec3 _e71 = sky_1; float _e75 = _group_0_binding_5_fs.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } } vec4 _e83 = _group_0_binding_5_fs.ground_horizon; vec4 _e87 = _group_0_binding_5_fs.ground_bottom; float _e96 = _group_0_binding_5_fs.ground_bottom.w; float _e97 = sky_curve(((v_8 - 1.5707964) / 1.5707964), _e96); float _e102 = _group_0_binding_5_fs.ground_horizon.w; vec3 ground_2 = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); vec3 _e104 = sky_1; float _e112 = _group_0_binding_5_fs.sun.z; return (((d_1.y >= 0.0) ? _e104 : ground_2) * _e112); } vec3 sh_irradiance(vec3 n_5) { vec3 c_19 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_19 = (_e4.xyz * 0.282095); vec3 _e9 = c_19; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_19 = (_e9 + (_e13.xyz * (0.488603 * n_5.y))); vec3 _e20 = c_19; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_19 = (_e20 + (_e24.xyz * (0.488603 * n_5.z))); vec3 _e31 = c_19; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_19 = (_e31 + (_e35.xyz * (0.488603 * n_5.x))); vec3 _e42 = c_19; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_19 = (_e42 + (_e46.xyz * ((1.092548 * n_5.x) * n_5.y))); vec3 _e55 = c_19; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_19 = (_e55 + (_e59.xyz * ((1.092548 * n_5.y) * n_5.z))); vec3 _e68 = c_19; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_19 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_5.z) * n_5.z) - 1.0)))); vec3 _e85 = c_19; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_19 = (_e85 + (_e89.xyz * ((1.092548 * n_5.x) * n_5.z))); vec3 _e98 = c_19; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_19 = (_e98 + (_e102.xyz * (0.546274 * ((n_5.x * n_5.x) - (n_5.y * n_5.y))))); vec3 _e115 = c_19; return max(_e115, vec3(0.0)); } vec3 radiance_2(vec3 d_3, float roughness) { uint _e5 = _group_0_binding_5_fs.flags.y; float top_1 = float((max(_e5, 1u) - 1u)); vec4 _e14 = textureLod(_group_3_binding_0_fs, vec3(d_3), (roughness * top_1)); return _e14.xyz; } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_7 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_7.x * r_7.x), exp2((-9.28 * nv_1))) * r_7.x) + r_7.y); return ((vec2(-1.04, 1.04) * a004_) + r_7.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_20 = vec3(0.0); uint k_4 = 0u; c_20 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_2 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_20; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_20 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_20; return _e53; } vec3 sky_fog(vec3 c_21, vec3 dir_2) { vec4 _e4 = _group_0_binding_5_fs.fog_color; float _e9 = _group_0_binding_5_fs.fog_depth.w; vec3 _e11 = fog_sun_scatter(mix(_e4.xyz, c_21, _e9), dir_2); float _e15 = _group_0_binding_5_fs.fog.y; return mix(c_21, _e11, _e15); } vec3 surface_fog(vec3 c_22, vec3 world_3, vec3 dir_3) { float dist = 0.0; float amount = 0.0; vec3 fc_1 = vec3(0.0); bool local_23 = false; mat4x4 _e5 = _group_0_binding_0_fs.view; float depth = -((_e5 * vec4(world_3, 1.0)).z); vec4 _e13 = _group_0_binding_0_fs.camera_pos; dist = distance(world_3, _e13.xyz); float _e20 = _group_0_binding_5_fs.fog_origin.w; if ((_e20 > 0.5)) { float _e26 = _group_0_binding_5_fs.fog_origin.x; dist = max((depth - _e26), 0.0); } uint _e34 = _group_0_binding_5_fs.flags.x; if (((_e34 & SKY_FOG_DEPTH) != 0u)) { float _e42 = _group_0_binding_5_fs.fog_depth.x; float _e46 = _group_0_binding_5_fs.fog_depth.y; float _e47 = dist; float z = smoothstep(_e42, _e46, _e47); float _e54 = _group_0_binding_5_fs.fog_depth.z; float _e63 = _group_0_binding_5_fs.fog.x; amount = (((z > 0.0) ? pow(max(z, 1e-6), _e54) : 0.0) * _e63); } else { float _e65 = dist; float _e70 = _group_0_binding_5_fs.fog.x; amount = (1.0 - exp(min(0.0, (-(_e65) * _e70)))); } float _e80 = _group_0_binding_5_fs.fog.w; if ((abs(_e80) >= 0.0001)) { vec4 _e86 = _group_0_binding_1_fs.up; float y = dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = _group_0_binding_5_fs.fog.z; float _e98 = _group_0_binding_5_fs.fog.w; amount = max(_e89, (1.0 - exp(min(0.0, ((y - _e93) * _e98))))); } float _e106 = amount; amount = clamp(_e106, 0.0, 1.0); vec4 _e112 = _group_0_binding_5_fs.fog_color; fc_1 = _e112.xyz; uint _e119 = _group_0_binding_5_fs.flags.x; if (((_e119 & SKY_IBL) != 0u)) { float _e129 = _group_0_binding_5_fs.fog_depth.w; local_23 = (_e129 > 0.0); } else { local_23 = false; } bool _e133 = local_23; if ((SPEC_AMBIENT_SKY ? _e133 : false)) { float _e139 = _group_0_binding_5_fs.fog_origin.y; float _e144 = _group_0_binding_5_fs.fog_origin.z; float _e148 = _group_0_binding_5_fs.fog_origin.y; float t_7 = clamp(((depth - _e139) / max((_e144 - _e148), 1e-6)), 0.0, 1.0); uint _e159 = _group_0_binding_5_fs.flags.y; float top_2 = float((max(_e159, 2u) - 1u)); float rough_2 = mix((1.0 / top_2), 1.0, (1.0 - t_7)); vec3 _e171 = fc_1; vec3 _e172 = sky_dir(dir_3); vec3 _e173 = radiance_2(_e172, rough_2); float _e177 = _group_0_binding_5_fs.sun.w; float _e182 = _group_0_binding_5_fs.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } vec3 _e184 = fc_1; vec3 _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; vec3 _e186 = fc_1; float _e187 = amount; return mix(c_22, _e186, _e187); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_4, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_23 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h_4 = (_e26.xyz * 0.5); vec3 dd = mix(d_4, vec3(1e-12), lessThan(abs(d_4), vec3(1e-12))); vec3 sa = ((-(h_4) - o) / dd); vec3 sb = ((h_4 - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_4 / h_4), (d_4 / h_4)); b = dot((o / h_4), (d_4 / h_4)); c_23 = (dot((o / h_4), (o / h_4)) - 1.0); } else { float rad_1 = min(h_4.x, h_4.z); float k_18 = ((shape == FOG_SHAPE_CONE) ? (rad_1 / (2.0 * h_4.y)) : 0.0); float w_4 = (h_4.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_18 * k_18) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_18 * k_18) * w_4) * d_4.y)); c_23 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_18 * k_18) * w_4) * w_4) : (rad_1 * rad_1))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_23; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_23; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_23; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_23; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_3, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_15 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_15.material.x * min(exp2((-(e_15.material.y) * (dot(p_3, _e14.xyz) - e_15.material.w))), 1.0)); if ((e_15.material.z > 0.0)) { uint shape_1 = uint(e_15.albedo.w); vec3 h_5 = (e_15.size.xyz * 0.5); float rad_2 = min(h_5.x, h_5.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_5)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_5 * h_5))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_5); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_2), (abs(lp.y) - h_5.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_13 = normalize(vec2((1.0 / max(0.001, (rad_2 * 0.5))), (1.0 / max(0.001, h_5.y)))); sdf = max(dot(n_13, vec2(length(lp.xz), (lp.y - h_5.y))), (-(h_5.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_15.size.w), 0.0, 1.0), e_15.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_3 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_3.y; if (((hf * b_1) == 0.0)) { return ((m_3.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_19 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_19 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_19); float x_5 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_5 < 0.01) ? (1.0 - (x_5 * (0.5 - (x_5 * (0.16666667 - (x_5 / 24.0)))))) : ((1.0 - exp(-(x_5))) / x_5)); float top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_3.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 fog_light(uint n_6, vec3 p_4, vec3 dir_4) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l_2 = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_6].lights; bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_3 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_13 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_13]; l_2 = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_4); l_2 = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l_2; float rim_2 = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim_2, li.spot.y))); } } vec3 _e108 = l_2; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_4, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_13 >> 2u)][(i_13 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_6, vec2 ch) { float split = 0.0; bool local_24 = false; bool local_25 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_26 = false; bool local_27 = false; FogEntryU e_16 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_16.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_16.to_local * vec4(d_6, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_6 = (dot(o_1, _e20.xyz) - e_16.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_6, _e28.xyz); bool edge = (e_16.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_16.material.y > 0.0)) { local_24 = ((-(a_6) / b_3) > ch.x); } else { local_24 = false; } bool _e52 = local_24; if (_e52) { local_25 = ((-(a_6) / b_3) < ch.y); } else { local_25 = false; } bool _e60 = local_25; if (_e60) { split = (-(a_6) / b_3); } bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e160 = i_1; i_1 = (_e160 + 1u); } loop_init_4 = false; uint _e70 = i_1; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i_1; uint j = (_e75 & 3u); if (!((j == 0u))) { local_26 = (j == 3u); } else { local_26 = true; } bool _e88 = local_26; float x_6 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_27 = (j == 3u); } else { local_27 = true; } bool _e100 = local_27; float w_5 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_8 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_6) : x_6))); vec3 p_9 = (o_1 + (d_6 * t_8)); float _e136 = fog_density(k_9, p_9, (lo_4 + (ld * t_8))); uint _e137 = i_1; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_9, d_6); q_1 = (_e140 + (((e_16.albedo.xyz * _e143) + e_16.emission.xyz) * ((w_5 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_5 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_24, vec3 o_2, vec3 d_7, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_2 = 0u; bool local_28 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_3 = 0u; uint n_7 = 0u; float avail = 0.0; uint i_4 = 0u; uint i_5 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e72 = i_2; i_2 = (_e72 + 1u); } loop_init_5 = false; uint _e13 = i_2; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_2; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_28 = (byte == 0u); } else { local_28 = false; } bool _e37 = local_28; if (_e37) { break; } uint _e42 = i_2; uint k_19 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_19].to_local; vec2 _e57 = fog_chord(k_19, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_7, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_19; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e90 = i_3; i_3 = (_e90 + 1u); } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at[_e82]; uint _e85 = i_3; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } } bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e221 = n_7; n_7 = (_e221 + 1u); } loop_init_7 = false; uint _e94 = n_7; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_7; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_4 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e153 = i_4; i_4 = (_e153 + 1u); } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_4; float _e113 = chords[_e110].y; uint _e114 = n_7; float _e117 = chords[_e114].y; uint _e119 = i_4; float _e122 = chords[_e119].x; uint _e123 = n_7; float _e126 = chords[_e123].x; uint _e131 = i_4; float _e134 = chords[_e131].y; uint _e135 = i_4; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_4; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_7; float _e158 = parts[_e155].w; float _e160 = avail; float f_5 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_5 = 0u; bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e218 = i_5; i_5 = (_e218 + 1u); } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_5; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_5; float _e180 = chords[_e177].y; uint _e181 = n_7; float _e184 = chords[_e181].y; uint _e186 = i_5; float _e189 = chords[_e186].x; uint _e190 = n_7; float _e193 = chords[_e190].x; uint _e198 = i_5; float _e201 = chords[_e198].y; uint _e202 = i_5; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_5; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_5))); } } } } } } bool loop_init_10 = true; while(true) { if (!loop_init_10) { uint _e252 = i_6; i_6 = (_e252 + 1u); } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_6; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_6; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_9 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_24 * t_9) + (_e258 * ((1.0 - t_9) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_25, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_7)); vec3 _e47 = fog_integrate(c_25, o_7, ((world_4 - o_7) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_25); } vec3 sky_fog_volumes(vec3 c_26, vec3 near_point, vec3 dir_5) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back_1 = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_8 = ((_e36 > 0.5) ? (near_point - (back_1 * (_e26 * vec4(near_point, 1.0)).z)) : _e22.xyz); uint _e44 = _group_1_binding_5_fs.counts.y; vec3 _e45 = fog_integrate(c_26, o_8, dir_5, FOG_SKY_DISTANCE, _e44); float _e49 = _group_1_binding_5_fs.params.z; return mix(c_26, _e45, _e49); } float shadow_factor(uint i_7, vec3 world_5, vec3 n_geo_1, vec3 l_3) { uint part = 0u; uint c_27 = 0u; bool local_29 = false; bool local_30 = false; bool local_31 = false; float vis = 0.0; int dy = -1; int dx = 0; uint kind = _group_0_binding_1_fs.lights[i_7].info.x; vec4 _e14 = _group_0_binding_1_fs.lights[i_7].position; vec3 light_pos = _e14.xyz; uint _e21 = _group_0_binding_1_fs.lights[i_7].info.w; uint slot = min(_e21, 15u); vec4 params = _group_0_binding_2_fs.lights[slot].params; uint first = _group_0_binding_2_fs.lights[slot].info.x; uint _e40 = _group_0_binding_2_fs.lights[slot].info.y; uint count = max(_e40, 1u); mat4x4 _e45 = _group_0_binding_0_fs.view; float view_depth = -((_e45 * vec4(world_5, 1.0)).z); if ((kind == LIGHT_DIRECTIONAL)) { float _e60 = _group_0_binding_2_fs.lights[slot].fade.y; if ((view_depth > _e60)) { return 1.0; } part = (count - 1u); bool loop_init_11 = true; while(true) { if (!loop_init_11) { uint _e79 = c_27; c_27 = (_e79 + 1u); } loop_init_11 = false; uint _e67 = c_27; if ((_e67 < count)) { } else { break; } { uint _e73 = c_27; float _e75 = _group_0_binding_2_fs.lights[slot].splits[_e73]; if ((view_depth <= _e75)) { uint _e77 = c_27; part = _e77; break; } } } } uint _e83 = part; vec4 texel_1 = _group_0_binding_2_fs.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; float t_10 = (texel_1.x + (texel_1.y * distance(world_5, light_pos))); vec3 p_10 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1.0)) * t_10))) + (l_3 * (params.x * t_10))); if ((kind == LIGHT_OMNI)) { vec3 d_13 = (p_10 - light_pos); vec3 a_7 = abs(d_13); if ((a_7.x >= a_7.y)) { local_29 = (a_7.x >= a_7.z); } else { local_29 = false; } bool _e123 = local_29; if (_e123) { part = ((d_13.x >= 0.0) ? 0u : 1u); } else { if ((a_7.y >= a_7.z)) { part = ((d_13.y >= 0.0) ? 2u : 3u); } else { part = ((d_13.z >= 0.0) ? 4u : 5u); } } } uint _e145 = part; uint tile_1 = min((first + min(_e145, (count - 1u))), 15u); mat4x4 _e156 = _group_0_binding_2_fs.tiles[tile_1].view_proj; vec4 clip = (_e156 * vec4(p_10, 1.0)); if ((clip.w <= 0.0)) { return 1.0; } vec3 ndc = (clip.xyz / vec3(clip.w)); if (!((abs(ndc.x) > 1.0))) { local_30 = (abs(ndc.y) > 1.0); } else { local_30 = true; } bool _e180 = local_30; if (!(_e180)) { local_31 = (ndc.z > 1.0); } else { local_31 = true; } bool _e188 = local_31; if (_e188) { return 1.0; } vec4 rect = _group_0_binding_2_fs.tiles[tile_1].rect; vec2 uv_6 = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); vec2 auv = (rect.xy + (uv_6 * rect.zw)); float texel_uv = _group_0_binding_2_fs.atlas.x; vec2 lo_5 = (rect.xy + vec2((0.5 * texel_uv))); vec2 hi_4 = ((rect.xy + rect.zw) - vec2((0.5 * texel_uv))); float r_8 = params.z; if ((r_8 <= 0.0)) { float _e235 = textureLod(_group_0_binding_3_fs, vec3(clamp(auv, lo_5, hi_4), ndc.z), 0.0); vis = _e235; } else { float spread = (r_8 * texel_uv); bool loop_init_12 = true; while(true) { if (!loop_init_12) { int _e265 = dy; dy = (_e265 + 1); } loop_init_12 = false; int _e239 = dy; if ((_e239 <= 1)) { } else { break; } { dx = -1; bool loop_init_13 = true; while(true) { if (!loop_init_13) { int _e262 = dx; dx = (_e262 + 1); } loop_init_13 = false; int _e244 = dx; if ((_e244 <= 1)) { } else { break; } { int _e247 = dx; int _e249 = dy; vec2 tap = clamp((auv + (vec2(float(_e247), float(_e249)) * spread)), lo_5, hi_4); float _e255 = vis; float _e259 = textureLod(_group_0_binding_3_fs, vec3(tap, ndc.z), 0.0); vis = (_e255 + _e259); } } } } float _e267 = vis; vis = (_e267 / 9.0); } if ((kind == LIGHT_DIRECTIONAL)) { vec4 fade_1 = _group_0_binding_2_fs.lights[slot].fade; float _e277 = vis; vis = mix(_e277, 1.0, smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return mix(1.0, _e283, params.w); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_8 = abs(d_8); if ((a_8.x >= a_8.y)) { local_32 = (a_8.x >= a_8.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_8.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_8.y >= a_8.z)) { ma = a_8.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 probe_texel(uint row, vec3 fuv, uint level_1) { uint _e6 = _group_0_binding_7_fs.counts.z; float n_14 = float(max((_e6 >> level_1), 1u)); float lo_6 = (0.5 / n_14); float u_1 = clamp(fuv.y, lo_6, (1.0 - lo_6)); float v_9 = clamp(fuv.z, lo_6, (1.0 - lo_6)); vec2 uv_7 = vec2(((fuv.x + u_1) / 6.0), ((float(row) + v_9) / 8.0)); vec4 _e33 = textureLod(_group_3_binding_6_fs, vec2(uv_7), float(level_1)); return _e33.xyz; } vec3 probe_sample(uint row_1, vec3 d_9, float lod) { bool local_33 = false; uint _e6 = _group_0_binding_7_fs.counts.y; uint levels = max(_e6, 1u); float l_10 = clamp(lod, 0.0, float((levels - 1u))); uint m0_ = uint(l_10); float t_11 = (l_10 - float(m0_)); vec3 _e17 = probe_face_uv(d_9); vec3 _e18 = probe_texel(row_1, _e17, m0_); if (!((t_11 <= 0.0))) { local_33 = ((m0_ + 1u) >= levels); } else { local_33 = true; } bool _e28 = local_33; if (_e28) { return _e18; } vec3 _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1.0 - t_11)) + (_e34 * t_11)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_11 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_17 = p_5.extents.xyz; float d_14 = min((e_17.x - abs(l_11.x)), min((e_17.y - abs(l_11.y)), (e_17.z - abs(l_11.z)))); if ((d_14 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_14 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_15 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_15; } vec3 o_9 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_18 = p_6.extents.xyz; float _e24 = probe_exit(o_9.x, d_15.x, e_18.x); float _e28 = probe_exit(o_9.y, d_15.y, e_18.y); float _e32 = probe_exit(o_9.z, d_15.z, e_18.z); float t_12 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_9 + (d_15 * t_12)) - p_6.offset.xyz); } vec4 probe_reflection(vec3 world_8, vec3 r_2, float roughness_2, uint probes) { vec3 acc = vec3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = _group_0_binding_7_fs.counts.x; uint count_1 = min(_e12, MAX_PROBES); uint _e18 = _group_0_binding_7_fs.counts.y; float lod_1 = (roughness_2 * float((max(_e18, 1u) - 1u))); bool loop_init_14 = true; while(true) { if (!loop_init_14) { uint _e57 = i_8; i_8 = (_e57 + 1u); } loop_init_14 = false; uint _e27 = i_8; if ((_e27 < count_1)) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_11 = _group_0_binding_7_fs.probes[_e31]; if ((((probes >> p_11.info.w) & 1u) == 0u)) { continue; } float _e41 = probe_weight(p_11, world_8); if ((_e41 <= 0.0)) { continue; } vec3 _e44 = acc; vec3 _e47 = probe_lookup(p_11, world_8, r_2); vec3 _e48 = probe_sample(p_11.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_11.offset.w) * _e41)); float _e54 = w_sum; w_sum = (_e54 + _e41); } } float _e59 = w_sum; if ((_e59 > 1.0)) { vec3 _e62 = acc; float _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1.0; } vec3 _e67 = acc; float _e68 = w_sum; return vec4(_e67, _e68); } vec4 probe_ambient(vec3 world_9, vec3 n_10, uint probes_1) { vec3 acc_1 = vec3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_34 = false; vec3 c_28 = vec3(0.0); uint _e11 = _group_0_binding_7_fs.counts.x; uint count_2 = min(_e11, MAX_PROBES); uint _e17 = _group_0_binding_7_fs.counts.y; uint last = (max(_e17, 1u) - 1u); bool loop_init_15 = true; while(true) { if (!loop_init_15) { uint _e73 = i_9; i_9 = (_e73 + 1u); } loop_init_15 = false; uint _e24 = i_9; if ((_e24 < count_2)) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_12 = _group_0_binding_7_fs.probes[_e28]; if (!((((probes_1 >> p_12.info.w) & 1u) == 0u))) { local_34 = (p_12.info.y == PROBE_AMBIENT_DISABLED); } else { local_34 = true; } bool _e46 = local_34; if (_e46) { continue; } float _e47 = probe_weight(p_12, world_9); if ((_e47 <= 0.0)) { continue; } c_28 = p_12.ambient.xyz; if ((p_12.info.y == PROBE_AMBIENT_ENVIRONMENT)) { vec3 _e64 = probe_face_uv((p_12.to_local * vec4(n_10, 0.0)).xyz); vec3 _e65 = probe_texel(p_12.info.w, _e64, last); c_28 = _e65; } vec3 _e66 = acc_1; vec3 _e67 = c_28; acc_1 = (_e66 + (_e67 * _e47)); float _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } } float _e75 = w_sum_1; if ((_e75 > 1.0)) { vec3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1.0; } vec3 _e83 = acc_1; float _e84 = w_sum_1; return vec4(_e83, _e84); } vec3 lit_with(VsOut in_21, bool front_1, Samples s_6, bool baked_1, vec3 baked_light_1) { vec3 n_mat = vec3(0.0); vec3 t_2 = vec3(0.0); DecalSurface surf_1 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); vec3 c_29 = vec3(0.0); uint k_10 = 0u; bool local_35 = false; vec3 l_4 = vec3(0.0); float atten_1 = 0.0; vec3 radiance_3 = vec3(0.0); vec3 ambient = vec3(0.0); vec3 diffuse_amb = vec3(0.0); vec3 spec_amb = vec3(0.0); vec3 dif = vec3(0.0); vec3 dif_1 = vec3(0.0); vec3 dif_2 = vec3(0.0); bool local_36 = false; vec3 n_geo_2 = (front_1 ? normalize(in_21.normal) : -(normalize(in_21.normal))); n_mat = n_geo_2; uint _e16 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e16 & T_NORMAL) != 0u) : false)) { t_2 = in_21.tangent.xyz; vec3 _e26 = t_2; vec3 _e27 = n_mat; vec3 _e28 = n_mat; vec3 _e29 = t_2; t_2 = normalize((_e26 - (_e27 * dot(_e28, _e29)))); vec3 _e34 = n_mat; vec3 _e35 = t_2; vec3 b_4 = (cross(_e34, _e35) * in_21.tangent.w); vec3 _e40 = t_2; vec3 _e48 = n_mat; n_mat = normalize((((_e40 * s_6.normal.x) + (b_4 * s_6.normal.y)) + (_e48 * s_6.normal.z))); } float _e59 = _group_2_binding_0_fs.factors.x; float _e69 = _group_2_binding_0_fs.factors.y; vec3 _e77 = n_mat; surf_1 = DecalSurface(s_6.base.xyz, clamp((_e59 * s_6.mr.z), 0.0, 1.0), clamp((_e69 * s_6.mr.y), 0.045, 1.0), s_6.occlusion, _e77, s_6.emission); uint _e85 = _group_1_binding_0_fs.decals.z; if ((SPEC_DECALS ? (_e85 > 0u) : false)) { DecalSurface _e91 = surf_1; DecalSurface _e92 = apply_decals(in_21.world, n_geo_2, _e91); surf_1 = _e92; } float metallic_2 = surf_1.metallic; float roughness_8 = surf_1.roughness; float a2_5 = (((roughness_8 * roughness_8) * roughness_8) * roughness_8); vec3 base_2 = surf_1.base; vec3 diffuse_5 = (base_2 * (1.0 - metallic_2)); vec3 f0_7 = mix(vec3(0.04), base_2, metallic_2); vec3 n_15 = surf_1.normal; float _e114 = _group_0_binding_0_fs.view[0][2]; float _e119 = _group_0_binding_0_fs.view[1][2]; float _e124 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e114, _e119, _e124); vec4 _e128 = _group_0_binding_0_fs.camera_pos; float _e137 = _group_0_binding_0_fs.camera_pos.w; vec3 v_10 = ((_e137 > 0.5) ? normalize(view_dir) : normalize((_e128.xyz - in_21.world))); uint _e144 = object_light_count(); bool loop_init_16 = true; while(true) { if (!loop_init_16) { uint _e248 = k_10; k_10 = (_e248 + 1u); } loop_init_16 = false; uint _e148 = k_10; if ((SPEC_LIGHTS ? (_e148 < _e144) : false)) { } else { break; } { uint _e152 = k_10; uint _e153 = object_light(_e152); LightU li_1 = _group_0_binding_1_fs.lights[_e153]; if (baked_1) { local_35 = (li_1.info.z == LIGHT_BAKED_STATIC); } else { local_35 = false; } bool _e165 = local_35; if (_e165) { continue; } uint kind_1 = li_1.info.x; l_4 = vec3(0.0); atten_1 = 1.0; if ((kind_1 == LIGHT_DIRECTIONAL)) { l_4 = -(li_1.direction.xyz); } else { vec3 rel_1 = (li_1.position.xyz - in_21.world); float d_16 = length(rel_1); l_4 = (rel_1 / vec3(max(d_16, 1e-6))); float _e190 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e190; if ((kind_1 == LIGHT_SPOT)) { float cone = li_1.spot.x; vec3 _e195 = l_4; float scos = max(dot(-(_e195), li_1.direction.xyz), cone); float rim_3 = max(0.0001, ((1.0 - scos) / max((1.0 - cone), 1e-6))); float _e210 = atten_1; atten_1 = (_e210 * (1.0 - pow(rim_3, li_1.spot.y))); } } float _e217 = atten_1; if ((_e217 > 0.0)) { float _e222 = atten_1; radiance_3 = (li_1.color.xyz * _e222); if ((SPEC_SHADOWS ? (li_1.info.y == LIGHT_SHADOWED) : false)) { float _e234 = atten_1; vec3 _e236 = l_4; float _e237 = shadow_factor(_e153, in_21.world, n_geo_2, _e236); radiance_3 = (li_1.color.xyz * (_e234 * _e237)); } vec3 _e240 = c_29; vec3 _e241 = l_4; vec3 _e242 = radiance_3; vec3 _e245 = light_specular(n_15, v_10, _e241, _e242, diffuse_5, f0_7, a2_5, li_1.spot.z); c_29 = (_e240 + _e245); } } } float nv_9 = max(dot(n_15, v_10), 0.0001); vec3 f_amb_1 = (f0_7 + ((max(vec3((1.0 - roughness_8)), f0_7) - f0_7) * pow((1.0 - nv_9), 5.0))); vec4 _e264 = gi_diffuse(n_15, baked_1, baked_light_1); uint _e270 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e270 & SKY_IBL) != 0u) : false)) { float _e280 = _group_0_binding_5_fs.ibl.x; float _e284 = _group_0_binding_5_fs.sun.w; float scale_1 = (_e280 * _e284); vec4 _e288 = _group_0_binding_5_fs.ambient; diffuse_amb = _e288.xyz; uint _e294 = _group_0_binding_5_fs.flags.x; if (((_e294 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e301 = _group_0_binding_5_fs.ambient; vec3 _e303 = sky_dir(n_15); vec3 _e304 = sh_irradiance(_e303); float _e309 = _group_0_binding_5_fs.ambient.w; diffuse_amb = mix(_e301.xyz, (_e304 * scale_1), _e309); } if ((_e264.w > 0.0)) { diffuse_amb = _e264.xyz; } vec4 _e317 = _group_0_binding_5_fs.ambient; spec_amb = _e317.xyz; uint _e323 = _group_0_binding_5_fs.flags.x; if (((_e323 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e330 = sky_dir(reflect(-(v_10), n_15)); vec3 _e331 = radiance_2(_e330, roughness_8); spec_amb = (_e331 * scale_1); } else { uint _e336 = _group_0_binding_5_fs.flags.x; if (((_e336 & SKY_REFLECT_OFF) != 0u)) { spec_amb = vec3(0.0); } } vec2 _e343 = env_brdf_approx(roughness_8, nv_9); uint _e348 = _group_0_binding_7_fs.counts.x; if ((SPEC_PROBES ? (_e348 > 0u) : false)) { uint _e359 = _group_1_binding_0_fs.extra.z; vec4 _e360 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e359); vec3 _e361 = spec_amb; vec3 spec_4 = ((_e361 * (1.0 - _e360.w)) + _e360.xyz); vec3 _e368 = diffuse_amb; dif = _e368; if ((_e264.w <= 0.0)) { uint _e377 = _group_1_binding_0_fs.extra.z; vec4 _e378 = probe_ambient(in_21.world, n_15, _e377); vec3 _e379 = diffuse_amb; dif = ((_e379 * (1.0 - _e378.w)) + _e378.xyz); } vec3 _e386 = dif; ambient = ((diffuse_5 * _e386) + (spec_4 * ((f0_7 * _e343.x) + vec3((_e343.y * clamp((50.0 * f0_7.y), metallic_2, 1.0)))))); } else { vec3 _e401 = diffuse_amb; vec3 _e403 = spec_amb; ambient = ((diffuse_5 * _e401) + (_e403 * ((f0_7 * _e343.x) + vec3((_e343.y * clamp((50.0 * f0_7.y), metallic_2, 1.0)))))); } } else { uint _e420 = _group_0_binding_1_fs.counts.y; if (((_e420 & ENV_AMBIENT_SKY) != 0u)) { vec4 _e427 = _group_0_binding_1_fs.up; vec3 up_2 = _e427.xyz; vec4 _e431 = _group_0_binding_1_fs.sky_top; vec4 _e435 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e431.xyz + _e435.xyz) * 0.5); vec4 _e442 = _group_0_binding_1_fs.ground_horizon; vec4 _e446 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e442.xyz + _e446.xyz) * 0.5); vec3 irradiance_1 = mix(ground_avg, sky_avg, clamp(((dot(n_15, up_2) * 0.5) + 0.5), 0.0, 1.0)); vec3 _e462 = sky(reflect(-(v_10), n_15)); vec3 blurred_1 = mix(_e462, sky_avg, roughness_8); uint _e467 = _group_0_binding_7_fs.counts.x; if ((_e467 > 0u)) { uint _e476 = _group_1_binding_0_fs.extra.z; vec4 _e477 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e476); float _e481 = _group_0_binding_1_fs.ambient.w; vec3 spec_5 = (((blurred_1 * _e481) * (1.0 - _e477.w)) + _e477.xyz); dif_1 = _e264.xyz; if ((_e264.w <= 0.0)) { uint _e498 = _group_1_binding_0_fs.extra.z; vec4 _e499 = probe_ambient(in_21.world, n_15, _e498); float _e503 = _group_0_binding_1_fs.ambient.w; dif_1 = (((irradiance_1 * _e503) * (1.0 - _e499.w)) + _e499.xyz); } vec3 _e511 = dif_1; ambient = ((diffuse_5 * _e511) + (spec_5 * f_amb_1)); } else { if ((_e264.w > 0.0)) { float _e524 = _group_0_binding_1_fs.ambient.w; ambient = ((diffuse_5 * _e264.xyz) + ((blurred_1 * f_amb_1) * _e524)); } else { float _e533 = _group_0_binding_1_fs.ambient.w; ambient = (((diffuse_5 * irradiance_1) + (blurred_1 * f_amb_1)) * _e533); } } } else { uint _e538 = _group_0_binding_7_fs.counts.x; if ((_e538 > 0u)) { uint _e547 = _group_1_binding_0_fs.extra.z; vec4 _e548 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e547); vec4 _e551 = _group_0_binding_1_fs.ambient; vec3 spec_6 = ((_e551.xyz * (1.0 - _e548.w)) + _e548.xyz); dif_2 = _e264.xyz; if ((_e264.w <= 0.0)) { uint _e568 = _group_1_binding_0_fs.extra.z; vec4 _e569 = probe_ambient(in_21.world, n_15, _e568); vec4 _e572 = _group_0_binding_1_fs.ambient; dif_2 = ((_e572.xyz * (1.0 - _e569.w)) + _e569.xyz); } vec3 _e580 = dif_2; ambient = ((diffuse_5 * _e580) + (spec_6 * f_amb_1)); } else { if ((_e264.w > 0.0)) { vec4 _e591 = _group_0_binding_1_fs.ambient; ambient = ((diffuse_5 * _e264.xyz) + (_e591.xyz * f_amb_1)); } else { vec4 _e597 = _group_0_binding_1_fs.ambient; ambient = (_e597.xyz * (diffuse_5 + f_amb_1)); } } } } uint _e605 = _group_0_binding_1_fs.counts.y; if (((_e605 & ENV_SSAO) != 0u)) { uint _e615 = _group_2_binding_0_fs.flags.y; local_36 = (_e615 != ALPHA_BLEND); } else { local_36 = false; } bool _e619 = local_36; if ((SPEC_SSAO ? _e619 : false)) { vec4 _e628 = texelFetch(_group_0_binding_6_fs, ivec2(floor(in_21.clip.xy)), 0); float ssao = _e628.x; vec3 _e630 = c_29; float _e632 = surf_1.occlusion; float _e637 = _group_0_binding_1_fs.tone.z; float _e641 = _group_0_binding_1_fs.tone.w; c_29 = (_e630 * mix(1.0, min(ssao, _e632), (_e637 * _e641))); vec3 _e646 = c_29; vec3 _e647 = ambient; float _e649 = surf_1.occlusion; c_29 = (_e646 + (_e647 * min(_e649, ssao))); } else { vec3 _e653 = c_29; vec3 _e654 = ambient; float _e656 = surf_1.occlusion; c_29 = (_e653 + (_e654 * _e656)); } vec3 _e659 = c_29; vec3 _e661 = surf_1.emission; c_29 = (_e659 + _e661); uint _e667 = _group_0_binding_5_fs.flags.x; if ((SPEC_FOG ? ((_e667 & SKY_FOG) != 0u) : false)) { vec3 _e674 = c_29; vec3 _e677 = surface_fog(_e674, in_21.world, -(v_10)); c_29 = _e677; } uint _e682 = _group_1_binding_0_fs.decals.w; if ((SPEC_FOG_VOLUMES ? (_e682 != 0u) : false)) { vec3 _e687 = c_29; uint _e692 = _group_1_binding_0_fs.decals.w; vec3 _e693 = fog_volumes(_e687, in_21.world, _e692); c_29 = _e693; } vec3 _e694 = c_29; vec3 _e695 = tonemap(_e694); return _e695; } vec3 lit(VsOut in_22, bool front_2, Samples s_7) { vec3 _e6 = lit_with(in_22, front_2, s_7, false, vec3(0.0)); return _e6; } vec4 lit_output(vec4 c_30) { uint _e4 = _group_0_binding_1_fs.counts.y; if (((_e4 & ENV_HDR) != 0u)) { return vec4(max(c_30.xyz, vec3(0.0)), clamp(c_30.w, 0.0, 1.0)); } vec4 _e18 = target_color(c_30); return _e18; } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_fs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_fs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_fs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_fs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_fs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_fs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_fs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_fs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_fs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_fs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec2 ext_uv(uint s_8, vec2 uv0_, vec2 uv1_5) { vec4 r0_ = _group_2_binding_0_fs.xf[(s_8 * 2u)]; vec4 r1_ = _group_2_binding_0_fs.xf[((s_8 * 2u) + 1u)]; vec2 uv_8 = ((r0_.w > 0.5) ? uv1_5 : uv0_); return vec2((dot(r0_.xy, uv_8) + r0_.z), (dot(r1_.xy, uv_8) + r1_.z)); } float ext_where(uint s_9) { float _e9 = _group_2_binding_0_fs.xf[((s_9 * 2u) + 1u)].w; return _e9; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } bool ext_cut(ExtSamples s_12) { bool local_37 = false; uint _e5 = _group_2_binding_0_fs.flags.y; if ((_e5 == ALPHA_MASK)) { float _e15 = _group_2_binding_0_fs.emission.w; local_37 = (s_12.base.w < _e15); } else { local_37 = false; } bool _e18 = local_37; return (SPEC_ALPHA_MASK ? _e18 : false); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_6 = (at_1 * ab); vec3 f_6 = vec3((ab * th), (at_1 * bh), (a2_6 * nh_1)); float w2_ = (a2_6 / dot(f_6, f_6)); return (((a2_6 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_10 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_9 = mix(21.5473, 25.3245, o_10); float b_5 = mix(3.82987, 3.32435, o_10); float c_40 = mix(0.19823, 0.16801, o_10); float d_17 = mix(-1.9776, -1.27393, o_10); float e_19 = mix(-4.32054, -4.85967, o_10); return (((a_9 / (1.0 + (b_5 * pow(max(x_3, 1e-6), c_40)))) + (d_17 * x_3)) + e_19); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_7 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y_1 = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_14 = min(int(floor(x_7)), 14); int j_1 = min(int(floor(y_1)), 6); float fx = (x_7 - float(i_14)); float fy = (y_1 - float(j_1)); float _e166 = t_3[((j_1 * 16) + i_14)]; float _e173 = t_3[(((j_1 * 16) + i_14) + 1)]; float a_10 = mix(_e166, _e173, fx); float _e181 = t_3[(((j_1 + 1) * 16) + i_14)]; float _e190 = t_3[((((j_1 + 1) * 16) + i_14) + 1)]; float b_6 = mix(_e181, _e190, fx); return mix(a_10, b_6, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_9 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_9 * r_9); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_20 = (outside / film); float sin2sq = ((k_20 * k_20) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_1 = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_1 + ((1.0 - r0_1) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init_17 = true; while(true) { if (!loop_init_17) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init_17 = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir_1 = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir_1) : normalize((_e19.xyz - world_10))); } ExtCtx ext_ctx(VsOutExt in_26, bool front_3, ExtSamples s_13, bool decals) { ExtCtx e_4 = ExtCtx(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0), 0.0, vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), false, 0.0, vec2(0.0), 0.0, 0.0, vec3(0.0)); vec3 t_4 = vec3(0.0); DecalSurface surf_2 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); bool local_38 = false; vec3 n_geo_3 = (front_3 ? normalize(in_26.normal) : -(normalize(in_26.normal))); t_4 = in_26.tangent.xyz; vec3 _e14 = t_4; vec3 _e15 = t_4; t_4 = normalize((_e14 - (n_geo_3 * dot(n_geo_3, _e15)))); vec3 _e20 = t_4; vec3 b_7 = (cross(n_geo_3, _e20) * in_26.tangent.w); e_4.n_geo = n_geo_3; e_4.n = n_geo_3; uint _e31 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e31 & T_NORMAL) != 0u) : false)) { vec3 _e39 = t_4; e_4.n = normalize((((_e39 * s_13.normal.x) + (b_7 * s_13.normal.y)) + (n_geo_3 * s_13.normal.z))); } e_4.nc = n_geo_3; if (s_13.clearcoat_mapped) { vec3 _e55 = t_4; e_4.nc = normalize((((_e55 * s_13.clearcoat_normal.x) + (b_7 * s_13.clearcoat_normal.y)) + (n_geo_3 * s_13.clearcoat_normal.z))); } vec3 _e80 = e_4.n; surf_2 = DecalSurface(s_13.base.xyz, clamp(s_13.metallic, 0.0, 1.0), clamp(s_13.roughness, 0.045, 1.0), s_13.occlusion, _e80, s_13.emission); if ((SPEC_DECALS ? decals : false)) { DecalSurface _e88 = surf_2; DecalSurface _e89 = apply_decals(in_26.world, n_geo_3, _e88); surf_2 = _e89; } vec3 _e92 = surf_2.normal; e_4.n = _e92; float _e95 = surf_2.occlusion; e_4.occlusion = _e95; vec3 _e98 = surf_2.emission; e_4.emission = _e98; vec3 _e101 = ext_view(in_26.world); e_4.v = _e101; e_4.world = in_26.world; vec3 _e106 = e_4.n; vec3 _e108 = e_4.v; e_4.nv = max(dot(_e106, _e108), 0.0001); float _e114 = surf_2.metallic; e_4.metallic = _e114; float _e117 = surf_2.roughness; e_4.roughness = _e117; float _e120 = e_4.roughness; float _e122 = e_4.roughness; e_4.alpha = (_e120 * _e122); float _e126 = e_4.alpha; float _e128 = e_4.alpha; e_4.a2_ = (_e126 * _e128); vec3 _e132 = surf_2.base; e_4.base = _e132; vec3 _e135 = e_4.base; float _e137 = e_4.metallic; e_4.diffuse = (_e135 * (1.0 - _e137)); float _e146 = _group_2_binding_0_fs.ext[1].x; e_4.ior = max(_e146, 1.0); float _e150 = e_4.ior; float _e154 = e_4.ior; float r_10 = ((_e150 - 1.0) / (_e154 + 1.0)); float spec_7 = max(s_13.specular, 0.0); vec3 dielectric_f0_ = (min((vec3((r_10 * r_10)) * s_13.specular_color), vec3(1.0)) * spec_7); vec3 _e171 = e_4.base; float _e173 = e_4.metallic; e_4.f0_ = mix(dielectric_f0_, _e171, _e173); float _e180 = e_4.metallic; e_4.f90_ = mix(vec3(spec_7), vec3(1.0), _e180); e_4.iridescence = clamp(s_13.iridescence, 0.0, 1.0); vec3 _e189 = e_4.f0_; e_4.irid_f = _e189; float _e192 = e_4.iridescence; if ((SPEC_IRIDESCENCE ? (_e192 > 0.0) : false)) { float _e203 = _group_2_binding_0_fs.ext[5].y; float _e205 = e_4.nv; vec3 _e208 = e_4.f0_; vec3 _e209 = eval_iridescence(1.0, _e203, _e205, s_13.iridescence_thickness, _e208); e_4.irid_f = _e209; } e_4.aniso = clamp(s_13.anisotropy, 0.0, 1.0); vec3 _e216 = t_4; e_4.aniso_t = normalize(((_e216 * s_13.anisotropy_dir.x) + (b_7 * s_13.anisotropy_dir.y))); vec3 _e227 = e_4.aniso_t; e_4.aniso_b = normalize(cross(n_geo_3, _e227)); e_4.clearcoat = clamp(s_13.clearcoat, 0.0, 1.0); e_4.cc_roughness = clamp(s_13.clearcoat_roughness, 0.045, 1.0); float _e241 = e_4.cc_roughness; float _e243 = e_4.cc_roughness; float cca = (_e241 * _e243); e_4.cc_a2_ = (cca * cca); e_4.sheen = max(s_13.sheen_color, vec3(0.0)); e_4.sheen_roughness = clamp(s_13.sheen_roughness, 0.07, 1.0); float _e259 = e_4.sheen_roughness; float _e261 = e_4.sheen_roughness; e_4.sheen_alpha = (_e259 * _e261); e_4.dt = clamp(s_13.diffuse_transmission, 0.0, 1.0); e_4.dt_color = max(s_13.diffuse_transmission_color, vec3(0.0)); e_4.transmission = clamp(s_13.transmission, 0.0, 1.0); float _e280 = e_4.alpha; float _e282 = e_4.ior; e_4.trans_alpha = max((_e280 * clamp(((_e282 * 2.0) - 2.0), 0.0, 1.0)), 0.002); vec4 _e296 = _group_1_binding_0_fs.model[0]; vec4 _e302 = _group_1_binding_0_fs.model[1]; vec4 _e309 = _group_1_binding_0_fs.model[2]; float scale_2 = (((length(_e296.xyz) + length(_e302.xyz)) + length(_e309.xyz)) / 3.0); float dist_1 = (max(s_13.thickness, 0.0) * scale_2); e_4.thin = (dist_1 <= 0.0); e_4.thickness = dist_1; e_4.frag = in_26.clip.xy; e_4.attenuation = vec3(1.0); float _e334 = _group_2_binding_0_fs.ext[1].w; if ((_e334 > 0.0)) { local_38 = (dist_1 > 0.0); } else { local_38 = false; } bool _e342 = local_38; if ((SPEC_VOLUME ? _e342 : false)) { vec4 _e349 = _group_2_binding_0_fs.ext[2]; float _e358 = _group_2_binding_0_fs.ext[1].w; e_4.attenuation = pow(max(_e349.xyz, vec3(1e-6)), vec3((dist_1 / _e358))); } float _e367 = _group_2_binding_0_fs.ext[2].w; e_4.dispersion = _e367; ExtCtx _e368 = e_4; return _e368; } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_6 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_6), 0.0); float vh_5 = max(dot(e_6.v, h_6), 0.0); float nv_10 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_6), dot(e_6.aniso_b, h_6), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_10, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_10, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back_2 = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back_2, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_10, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_3 = (_e175 + _e176); c_33 = (base_3 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_10, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_10, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_6), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec3 ext_irradiance(vec3 n_11, bool lit_mode) { if ((SPEC_MATERIAL_MODE ? !(lit_mode) : false)) { vec3 _e7 = env(n_11.z); return (_e7 * 0.8); } uint _e14 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e14 & SKY_IBL) != 0u) : false)) { float _e24 = _group_0_binding_5_fs.ibl.x; float _e28 = _group_0_binding_5_fs.sun.w; float scale_3 = (_e24 * _e28); uint _e33 = _group_0_binding_5_fs.flags.x; if (((_e33 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e40 = _group_0_binding_5_fs.ambient; vec3 _e42 = sky_dir(n_11); vec3 _e43 = sh_irradiance(_e42); float _e48 = _group_0_binding_5_fs.ambient.w; return mix(_e40.xyz, (_e43 * scale_3), _e48); } vec4 _e52 = _group_0_binding_5_fs.ambient; return _e52.xyz; } uint _e58 = _group_0_binding_1_fs.counts.y; if ((SPEC_AMBIENT_GRADIENT ? ((_e58 & ENV_AMBIENT_SKY) != 0u) : false)) { vec4 _e67 = _group_0_binding_1_fs.sky_top; vec4 _e71 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg_1 = ((_e67.xyz + _e71.xyz) * 0.5); vec4 _e78 = _group_0_binding_1_fs.ground_horizon; vec4 _e82 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg_1 = ((_e78.xyz + _e82.xyz) * 0.5); vec4 _e89 = _group_0_binding_1_fs.up; float _e103 = _group_0_binding_1_fs.ambient.w; return (mix(ground_avg_1, sky_avg_1, clamp(((dot(n_11, _e89.xyz) * 0.5) + 0.5), 0.0, 1.0)) * _e103); } vec4 _e107 = _group_0_binding_1_fs.ambient; return _e107.xyz; } vec3 ext_radiance(vec3 dir_7, float roughness_4, bool lit_mode_1) { if ((SPEC_MATERIAL_MODE ? !(lit_mode_1) : false)) { vec3 _e8 = env(dir_7.z); vec3 _e10 = env(0.0); return mix(_e8, (_e10 * 0.85), roughness_4); } uint _e18 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e18 & SKY_IBL) != 0u) : false)) { float _e28 = _group_0_binding_5_fs.ibl.x; float _e32 = _group_0_binding_5_fs.sun.w; float scale_4 = (_e28 * _e32); uint _e37 = _group_0_binding_5_fs.flags.x; if (((_e37 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e42 = sky_dir(dir_7); vec3 _e43 = radiance_2(_e42, roughness_4); return (_e43 * scale_4); } uint _e48 = _group_0_binding_5_fs.flags.x; if (((_e48 & SKY_REFLECT_OFF) != 0u)) { return vec3(0.0); } vec4 _e57 = _group_0_binding_5_fs.ambient; return _e57.xyz; } uint _e63 = _group_0_binding_1_fs.counts.y; if ((SPEC_AMBIENT_GRADIENT ? ((_e63 & ENV_AMBIENT_SKY) != 0u) : false)) { vec4 _e72 = _group_0_binding_1_fs.sky_top; vec4 _e76 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg_2 = ((_e72.xyz + _e76.xyz) * 0.5); vec3 _e81 = sky(dir_7); float _e86 = _group_0_binding_1_fs.ambient.w; return (mix(_e81, sky_avg_2, roughness_4) * _e86); } vec4 _e90 = _group_0_binding_1_fs.ambient; return _e90.xyz; } vec3 ext_probe_radiance(ExtCtx e_7, vec3 dir_8, float roughness_5, bool lit_mode_2) { bool local_39 = false; vec3 _e4 = ext_radiance(dir_8, roughness_5, lit_mode_2); if (!(!(lit_mode_2))) { uint _e13 = _group_0_binding_7_fs.counts.x; local_39 = (_e13 == 0u); } else { local_39 = true; } bool _e17 = local_39; if ((SPEC_PROBES ? _e17 : true)) { return _e4; } uint _e24 = _group_1_binding_0_fs.extra.z; vec4 _e25 = probe_reflection(e_7.world, dir_8, roughness_5, _e24); return ((_e4 * (1.0 - _e25.w)) + _e25.xyz); } vec3 ext_env_weight(vec3 f0_5, vec3 f90_1, float roughness_6, float nv_5, float metallic, bool lit_mode_3) { bool local_40 = false; if (lit_mode_3) { uint _e12 = _group_0_binding_5_fs.flags.x; local_40 = ((_e12 & SKY_IBL) != 0u); } else { local_40 = false; } bool _e18 = local_40; if ((SPEC_AMBIENT_SKY ? _e18 : false)) { vec2 _e21 = env_brdf_approx(roughness_6, nv_5); return ((f0_5 * _e21.x) + ((f90_1 * _e21.y) * clamp((50.0 * f0_5.y), metallic, 1.0))); } float _e40 = pow5_((1.0 - nv_5)); vec3 f_amb_2 = (f0_5 + ((max((f90_1 * (1.0 - roughness_6)), f0_5) - f0_5) * _e40)); if ((SPEC_MATERIAL_MODE ? !(lit_mode_3) : false)) { return (f_amb_2 * (1.0 - (0.5 * roughness_6))); } return f_amb_2; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_fs.view_proj; vec4 c_41 = (_e3 * vec4(p_7, 1.0)); vec2 ndc_1 = (c_41.xy / vec2(((c_41.w > 1e-6) ? c_41.w : 1e-6))); return vec2(((ndc_1.x * 0.5) + 0.5), (0.5 - (ndc_1.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } vec3 ext_lit_finish(vec3 c_in_1, vec3 world_11) { vec3 c_36 = vec3(0.0); c_36 = c_in_1; uint _e7 = _group_0_binding_5_fs.flags.x; if ((SPEC_FOG ? ((_e7 & SKY_FOG) != 0u) : false)) { vec3 _e14 = c_36; vec3 _e15 = ext_view(world_11); vec3 _e17 = surface_fog(_e14, world_11, -(_e15)); c_36 = _e17; } uint _e22 = _group_1_binding_0_fs.decals.w; if ((SPEC_FOG_VOLUMES ? (_e22 != 0u) : false)) { vec3 _e27 = c_36; uint _e31 = _group_1_binding_0_fs.decals.w; vec3 _e32 = fog_volumes(_e27, world_11, _e31); c_36 = _e32; } vec3 _e33 = c_36; vec3 _e34 = tonemap(_e33); return _e34; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } vec3 lightmap_light(vec2 uv_lm_1) { uint _e6 = _group_1_binding_0_fs.extra.y; vec4 _e9 = textureLod(_group_3_binding_4_fs, vec3(uv_lm_1, int(_e6)), 0.0); return _e9.xyz; } void main() { VsOutLm in_14 = VsOutLm(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8); bool facing_4 = gl_FrontFacing; vec3 c_3 = vec3(0.0); float alpha_2 = 1.0; bool local_14 = false; bool local_15 = false; bool local_16 = false; VsOutExt _e2 = lm_ext_in(in_14); VsOut _e3 = ext_base_in(_e2); bool _e4 = mirrored(_e3); bool front_6 = (facing_4 != _e4); Samples _e6 = surface_samples(_e3); if ((SPEC_FACE_FLAGS ? ((in_14.flags & F_HIDDEN) != 0u) : false)) { discard; } float _e18 = emerge_reveal(in_14.world, in_14.clip.xy); if ((SPEC_EMERGE ? (_e18 <= 0.0) : false)) { discard; } vec3 _e25 = lightmap_light(in_14.uv_lm); uint _e33 = _group_0_binding_0_fs.params.x; if ((SPEC_OTHER_MODES ? (_e33 == SHADE_LIGHTMAP) : false)) { vec3 _e38 = tonemap(_e25); c_3 = _e38; } else { uint _e43 = _group_2_binding_0_fs.flags.y; if ((_e43 == ALPHA_MASK)) { float _e53 = _group_2_binding_0_fs.emission.w; local_14 = (_e6.base.w < _e53); } else { local_14 = false; } bool _e56 = local_14; if ((SPEC_ALPHA_MASK ? _e56 : false)) { discard; } uint _e63 = _group_2_binding_0_fs.flags.y; if ((SPEC_ALPHA_BLEND ? (_e63 == ALPHA_BLEND) : false)) { alpha_2 = _e6.base.w; } vec3 _e71 = lit_with(_e3, front_6, _e6, true, _e25); c_3 = _e71; } uint _e76 = _group_1_binding_0_fs.params.w; if ((_e76 == 1u)) { uint _e84 = _group_0_binding_0_fs.params.y; local_15 = ((_e84 & OV_SELECTION) != 0u); } else { local_15 = false; } bool _e90 = local_15; if (_e90) { local_16 = ((in_14.flags & F_SELECTED) != 0u); } else { local_16 = false; } bool _e99 = local_16; if ((SPEC_FACE_FLAGS ? _e99 : false)) { vec3 _e102 = c_3; vec3 _e107 = srgb_to_linear(vec3(1.0, 0.635, 0.0)); c_3 = mix(_e102, _e107, 0.4); } vec3 _e110 = c_3; vec3 _e111 = item_fade(_e110); vec3 _e112 = emerge_tint(_e111, _e18); float _e113 = alpha_2; vec4 _e115 = lit_output(vec4(_e112, _e113)); _fs2p_location0 = _e115; return; } fs_surface_ext_lmmain6#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform MaterialU_block_2Fragment { MaterialU _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; uniform highp sampler2D _group_2_binding_3_fs; uniform highp sampler2D _group_2_binding_4_fs; uniform highp sampler2D _group_2_binding_5_fs; uniform highp sampler2DArray _group_2_binding_7_fs; layout(std140) uniform LitU_block_3Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform ShadowU_block_4Fragment { ShadowU _group_0_binding_2_fs; }; uniform highp sampler2DShadow _group_0_binding_3_fs; layout(std140) uniform SkyU_block_5Fragment { SkyU _group_0_binding_5_fs; }; uniform highp samplerCube _group_3_binding_0_fs; uniform highp sampler2D _group_0_binding_6_fs; uniform highp sampler2DArray _group_3_binding_4_fs; layout(std140) uniform ProbeU_block_6Fragment { ProbeU _group_0_binding_7_fs; }; uniform highp sampler2D _group_3_binding_6_fs; layout(std140) uniform DecalU_block_7Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; uniform highp sampler2D _group_1_binding_6_fs; layout(std140) uniform FogU_block_8Fragment { FogU _group_1_binding_5_fs; }; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in float _vs2fs_location5; smooth in vec4 _vs2fs_location6; smooth in vec2 _vs2fs_location7; smooth in vec2 _vs2fs_location8; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word_1 = ((k_1 < 4u) ? _e8 : _e4); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_2 = ((k_2 < 4u) ? _e8 : _e4); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local_21 = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_13 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_13.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local_21 = all(lessThanEqual(uvw, vec3(1.0))); } else { local_21 = false; } bool _e35 = local_21; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_13.fades.x : e_13.fades.y)); if ((e_13.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_13.fades.z, 1.0, ((dot(n_geo, e_13.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_5 = uvw.xz; float _e69 = decal_level(e_13, world_1); uint live_1 = e_13.flags.x; if ((e_13.layers.x > 0u)) { vec4 _e82 = decal_texel(e_13.layers.x, uv_5, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_13.modulate); float _e90 = fade; float alpha_4 = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha_4 * e_13.fades.w)); if ((e_13.layers.y > 0u)) { vec4 _e110 = decal_texel(e_13.layers.y, uv_5, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_13.axis_x.xyz * nx) + (e_13.axis_y.xyz * nz)) + (e_13.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha_4)); } if ((e_13.layers.z > 0u)) { vec4 _e156 = decal_texel(e_13.layers.z, uv_5, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha_4); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha_4); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha_4); } } if ((e_13.layers.w > 0u)) { vec4 _e182 = decal_texel(e_13.layers.w, uv_5, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_13.modulate.xyz) * e_13.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec3 checker(vec2 uv_1) { vec3 c_10 = vec3(0.0); float s_18 = _group_0_binding_0_fs.fparams.y; vec2 cell = floor((uv_1 * s_18)); ivec2 ci = ivec2(cell); int odd = ((ci.x + ci.y) & 1); uint k_15 = ((uint(ci.x) * 73856093u) ^ (uint(ci.y) * 19349663u)); float hue = float((k_15 % 360u)); float value = ((odd == 1) ? 0.4 : 0.74); vec3 _e31 = hsv(hue, 0.18, value); c_10 = _e31; vec2 tile = abs((fract(uv_1) - vec2(0.5))); vec2 _e38 = fwidth(uv_1); vec2 w_1 = ((_e38 * 1.0) + vec2(0.0001)); bool border = any(greaterThan(tile, (vec2(0.5) - w_1))); vec3 _e49 = c_10; vec3 _e50 = c_10; c_10 = (border ? (_e50 * 0.35) : _e49); vec3 _e54 = c_10; vec3 _e55 = srgb_to_linear(_e54); return _e55; } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } vec2 material_uv(vec2 uv_3) { vec2 _e1 = tex_uv(uv_3); vec4 _e4 = _group_2_binding_0_fs.uv; vec4 _e9 = _group_2_binding_0_fs.uv; return ((_e1 * _e4.xy) + _e9.zw); } vec4 decoded_base(vec4 t) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_BASE) != 0u)) { vec3 _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } vec3 decoded_emission(vec3 t_1) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_EMISSION) != 0u)) { vec3 _e9 = srgb_to_linear(t_1); return _e9; } return t_1; } Samples sample_material(vec2 uv_in) { Samples s_3 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec2 _e1 = material_uv(uv_in); vec4 _e6 = _group_2_binding_0_fs.base_color; s_3.base = _e6; uint _e11 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e11 & T_BASE) != 0u) : false)) { vec4 _e19 = s_3.base; vec4 _e22 = texture(_group_2_binding_1_fs, vec2(_e1)); vec4 _e23 = decoded_base(_e22); s_3.base = (_e19 * _e23); } s_3.normal = vec3(0.0, 0.0, 1.0); uint _e34 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e34 & T_NORMAL) != 0u) : false)) { vec4 _e44 = texture(_group_2_binding_2_fs, vec2(_e1)); s_3.normal = normalize(((_e44.xyz * 2.0) - vec3(1.0))); } s_3.mr = vec4(1.0); uint _e59 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_MR ? ((_e59 & T_METALLIC_ROUGHNESS) != 0u) : false)) { vec4 _e69 = texture(_group_2_binding_3_fs, vec2(_e1)); s_3.mr = _e69; } vec4 _e73 = _group_2_binding_0_fs.emission; s_3.emission = _e73.xyz; uint _e79 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e79 & T_EMISSION) != 0u) : false)) { vec3 _e87 = s_3.emission; vec4 _e90 = texture(_group_2_binding_4_fs, vec2(_e1)); vec3 _e92 = decoded_emission(_e90.xyz); s_3.emission = (_e87 * _e92); } s_3.occlusion = 1.0; uint _e100 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e100 & T_OCCLUSION) != 0u) : false)) { vec4 _e110 = texture(_group_2_binding_5_fs, vec2(_e1)); s_3.occlusion = _e110.x; } Samples _e112 = s_3; return _e112; } Samples surface_samples(VsOut in_19) { Samples s_4 = Samples(vec4(0.0), vec3(0.0), vec4(0.0), vec3(0.0), 0.0); vec4 c_11 = vec4(0.0); Samples _e2 = sample_material(in_19.uv); s_4 = _e2; uint _e8 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e8 & MAT_VERTEX_COLOR) != 0u) : false)) { c_11 = in_19.color; uint _e20 = _group_2_binding_0_fs.flags.w; if (((_e20 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e25 = c_11; vec3 _e27 = srgb_to_linear(_e25.xyz); float _e29 = c_11.w; c_11 = vec4(_e27, _e29); } vec4 _e33 = s_4.base; vec4 _e34 = c_11; s_4.base = (_e33 * _e34); } Samples _e36 = s_4; return _e36; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 pbr(VsOut in_20, bool front, Samples s_5) { vec3 n_w = vec3(0.0); vec3 t_w = vec3(0.0); vec3 c_13 = vec3(0.0); float _e6 = _group_2_binding_0_fs.factors.x; float metallic_1 = clamp((_e6 * s_5.mr.z), 0.0, 1.0); float _e16 = _group_2_binding_0_fs.factors.y; float roughness_7 = clamp((_e16 * s_5.mr.y), 0.045, 1.0); float a2_4 = (((roughness_7 * roughness_7) * roughness_7) * roughness_7); vec3 base_1 = s_5.base.xyz; vec3 diffuse_4 = (base_1 * (1.0 - metallic_1)); vec3 f0_6 = mix(vec3(0.04), base_1, metallic_1); n_w = (front ? normalize(in_20.normal) : -(normalize(in_20.normal))); uint _e45 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e45 & T_NORMAL) != 0u) : false)) { t_w = in_20.tangent.xyz; vec3 _e55 = t_w; vec3 _e56 = n_w; vec3 _e57 = n_w; vec3 _e58 = t_w; t_w = normalize((_e55 - (_e56 * dot(_e57, _e58)))); vec3 _e63 = n_w; vec3 _e64 = t_w; vec3 b_w = (cross(_e63, _e64) * in_20.tangent.w); vec3 _e69 = t_w; vec3 _e77 = n_w; n_w = normalize((((_e69 * s_5.normal.x) + (b_w * s_5.normal.y)) + (_e77 * s_5.normal.z))); } mat4x4 _e85 = _group_0_binding_0_fs.view; vec3 _e86 = n_w; vec3 n_12 = normalize((_e85 * vec4(_e86, 0.0)).xyz); mat4x4 _e94 = _group_0_binding_0_fs.view; vec3 pos_v = (_e94 * vec4(in_20.world, 1.0)).xyz; float _e109 = _group_0_binding_0_fs.camera_pos.w; vec3 v_7 = ((_e109 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(pos_v))); mat4x4 _e115 = _group_0_binding_0_fs.view; vec3 up_1 = normalize((_e115 * vec4(0.0, 0.0, 1.0, 0.0)).xyz); vec3 _e127 = c_13; vec3 _e136 = light(n_12, v_7, vec3(-0.45112923, 0.5513802, 0.7017566), vec3(2.6, 2.522, 2.392), diffuse_4, f0_6, a2_4); c_13 = (_e127 + _e136); vec3 _e138 = c_13; vec3 _e147 = light(n_12, v_7, vec3(0.8451543, 0.16903086, 0.50709254), vec3(0.765, 0.80999994, 0.9), diffuse_4, f0_6, a2_4); c_13 = (_e138 + _e147); vec3 _e149 = c_13; vec3 _e158 = light(n_12, v_7, vec3(0.34583426, 0.63402945, -0.6916685), vec3(1.3, 1.3, 1.3), diffuse_4, f0_6, a2_4); c_13 = (_e149 + _e158); float nv_8 = max(dot(n_12, v_7), 0.0001); vec3 r_6 = reflect(-(v_7), n_12); vec3 _e166 = env(dot(n_12, up_1)); vec3 irradiance = (_e166 * 0.8); vec3 _e170 = env(dot(r_6, up_1)); vec3 _e172 = env(0.0); vec3 blurred = mix(_e170, (_e172 * 0.85), roughness_7); vec3 f_amb = (f0_6 + ((max(vec3((1.0 - roughness_7)), f0_6) - f0_6) * pow((1.0 - nv_8), 5.0))); vec3 ambient_1 = ((diffuse_4 * irradiance) + ((blurred * f_amb) * (1.0 - (0.5 * roughness_7)))); vec3 _e195 = c_13; c_13 = (_e195 + (ambient_1 * s_5.occlusion)); vec3 _e199 = c_13; c_13 = (_e199 + s_5.emission); vec3 _e202 = c_13; return _e202; } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_3 <= 1.5707964)) { float c_37 = (1.0 - (a_3 / 1.5707964)); float k_16 = clamp((1.0 - pow(max((1.0 - c_37), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_16); } float c_38 = ((a_3 - 1.5707964) / 1.5707964); float k_17 = clamp((1.0 - pow(max((1.0 - c_38), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_17); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_2 = (1.8 * white); float wt = (((w_2 * (w_2 + 0.0245786)) - 9.0537e-5) / ((w_2 * ((0.983729 * w_2) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_39 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_39) + c_39) / ((c_39 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_39); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_39, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_39); return _e36; } return c_39; } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_4 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_4, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_14 = _group_1_binding_0_fs.normal[0][3]; vec3 w_3 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_3); float _e29 = emerge_noise(((w_3 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_14 * 1.8) - _e60) / EMERGE_EDGE); } vec3 emerge_tint(vec3 c_16, float r) { bool local_22 = false; uint _e6 = _group_1_binding_0_fs.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_22 = (r >= 1.0); } else { local_22 = true; } bool _e17 = local_22; if ((SPEC_EMERGE ? _e17 : true)) { return c_16; } uint _e23 = _group_1_binding_0_fs.extra.w; vec3 _e26 = srgb_to_linear((vec4(_e23 & 0xFFu, _e23 >> 8 & 0xFFu, _e23 >> 16 & 0xFFu, _e23 >> 24) / 255.0).xyz); vec3 _e27 = tonemap(_e26); return mix(_e27, c_16, smoothstep(0.0, 1.0, r)); } vec3 item_fade(vec3 c_17) { uint _e5 = _group_1_binding_0_fs.extra.x; if ((SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true)) { return c_17; } vec4 f_4 = _group_1_binding_0_fs.normal[3]; vec3 _e17 = tonemap(f_4.xyz); return mix(c_17, _e17, f_4.w); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec3 procedural_sky(vec3 d_1) { vec3 sky_1 = vec3(0.0); uint i = 0u; float v_8 = acos(clamp(d_1.y, -1.0, 1.0)); vec4 _e8 = _group_0_binding_5_fs.sky_horizon; vec4 _e12 = _group_0_binding_5_fs.sky_top; float _e21 = _group_0_binding_5_fs.sky_top.w; float _e22 = sky_curve((1.0 - (v_8 / 1.5707964)), _e21); float _e27 = _group_0_binding_5_fs.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); uint _e33 = _group_0_binding_5_fs.flags.z; uint suns = min(_e33, SKY_SUNS); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e79 = i; i = (_e79 + 1u); } loop_init_1 = false; uint _e38 = i; if ((_e38 < suns)) { } else { break; } { uint _e42 = i; SunU sun = _group_0_binding_5_fs.suns[_e42]; float size = sun.direction.w; float a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1.0, 1.0)); if ((a_5 < size)) { sky_1 = sun.color.xyz; } else { float _e60 = _group_0_binding_5_fs.sun.x; if ((a_5 < _e60)) { float _e66 = _group_0_binding_5_fs.sun.x; float c2_ = ((a_5 - size) / (_e66 - size)); vec3 _e71 = sky_1; float _e75 = _group_0_binding_5_fs.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } } vec4 _e83 = _group_0_binding_5_fs.ground_horizon; vec4 _e87 = _group_0_binding_5_fs.ground_bottom; float _e96 = _group_0_binding_5_fs.ground_bottom.w; float _e97 = sky_curve(((v_8 - 1.5707964) / 1.5707964), _e96); float _e102 = _group_0_binding_5_fs.ground_horizon.w; vec3 ground_2 = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); vec3 _e104 = sky_1; float _e112 = _group_0_binding_5_fs.sun.z; return (((d_1.y >= 0.0) ? _e104 : ground_2) * _e112); } vec3 sh_irradiance(vec3 n_5) { vec3 c_19 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_19 = (_e4.xyz * 0.282095); vec3 _e9 = c_19; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_19 = (_e9 + (_e13.xyz * (0.488603 * n_5.y))); vec3 _e20 = c_19; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_19 = (_e20 + (_e24.xyz * (0.488603 * n_5.z))); vec3 _e31 = c_19; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_19 = (_e31 + (_e35.xyz * (0.488603 * n_5.x))); vec3 _e42 = c_19; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_19 = (_e42 + (_e46.xyz * ((1.092548 * n_5.x) * n_5.y))); vec3 _e55 = c_19; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_19 = (_e55 + (_e59.xyz * ((1.092548 * n_5.y) * n_5.z))); vec3 _e68 = c_19; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_19 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_5.z) * n_5.z) - 1.0)))); vec3 _e85 = c_19; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_19 = (_e85 + (_e89.xyz * ((1.092548 * n_5.x) * n_5.z))); vec3 _e98 = c_19; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_19 = (_e98 + (_e102.xyz * (0.546274 * ((n_5.x * n_5.x) - (n_5.y * n_5.y))))); vec3 _e115 = c_19; return max(_e115, vec3(0.0)); } vec3 radiance_2(vec3 d_3, float roughness) { uint _e5 = _group_0_binding_5_fs.flags.y; float top_1 = float((max(_e5, 1u) - 1u)); vec4 _e14 = textureLod(_group_3_binding_0_fs, vec3(d_3), (roughness * top_1)); return _e14.xyz; } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_7 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_7.x * r_7.x), exp2((-9.28 * nv_1))) * r_7.x) + r_7.y); return ((vec2(-1.04, 1.04) * a004_) + r_7.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_20 = vec3(0.0); uint k_4 = 0u; c_20 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_2 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_20; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_20 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_20; return _e53; } vec3 sky_fog(vec3 c_21, vec3 dir_2) { vec4 _e4 = _group_0_binding_5_fs.fog_color; float _e9 = _group_0_binding_5_fs.fog_depth.w; vec3 _e11 = fog_sun_scatter(mix(_e4.xyz, c_21, _e9), dir_2); float _e15 = _group_0_binding_5_fs.fog.y; return mix(c_21, _e11, _e15); } vec3 surface_fog(vec3 c_22, vec3 world_3, vec3 dir_3) { float dist = 0.0; float amount = 0.0; vec3 fc_1 = vec3(0.0); bool local_23 = false; mat4x4 _e5 = _group_0_binding_0_fs.view; float depth = -((_e5 * vec4(world_3, 1.0)).z); vec4 _e13 = _group_0_binding_0_fs.camera_pos; dist = distance(world_3, _e13.xyz); float _e20 = _group_0_binding_5_fs.fog_origin.w; if ((_e20 > 0.5)) { float _e26 = _group_0_binding_5_fs.fog_origin.x; dist = max((depth - _e26), 0.0); } uint _e34 = _group_0_binding_5_fs.flags.x; if (((_e34 & SKY_FOG_DEPTH) != 0u)) { float _e42 = _group_0_binding_5_fs.fog_depth.x; float _e46 = _group_0_binding_5_fs.fog_depth.y; float _e47 = dist; float z = smoothstep(_e42, _e46, _e47); float _e54 = _group_0_binding_5_fs.fog_depth.z; float _e63 = _group_0_binding_5_fs.fog.x; amount = (((z > 0.0) ? pow(max(z, 1e-6), _e54) : 0.0) * _e63); } else { float _e65 = dist; float _e70 = _group_0_binding_5_fs.fog.x; amount = (1.0 - exp(min(0.0, (-(_e65) * _e70)))); } float _e80 = _group_0_binding_5_fs.fog.w; if ((abs(_e80) >= 0.0001)) { vec4 _e86 = _group_0_binding_1_fs.up; float y = dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = _group_0_binding_5_fs.fog.z; float _e98 = _group_0_binding_5_fs.fog.w; amount = max(_e89, (1.0 - exp(min(0.0, ((y - _e93) * _e98))))); } float _e106 = amount; amount = clamp(_e106, 0.0, 1.0); vec4 _e112 = _group_0_binding_5_fs.fog_color; fc_1 = _e112.xyz; uint _e119 = _group_0_binding_5_fs.flags.x; if (((_e119 & SKY_IBL) != 0u)) { float _e129 = _group_0_binding_5_fs.fog_depth.w; local_23 = (_e129 > 0.0); } else { local_23 = false; } bool _e133 = local_23; if ((SPEC_AMBIENT_SKY ? _e133 : false)) { float _e139 = _group_0_binding_5_fs.fog_origin.y; float _e144 = _group_0_binding_5_fs.fog_origin.z; float _e148 = _group_0_binding_5_fs.fog_origin.y; float t_7 = clamp(((depth - _e139) / max((_e144 - _e148), 1e-6)), 0.0, 1.0); uint _e159 = _group_0_binding_5_fs.flags.y; float top_2 = float((max(_e159, 2u) - 1u)); float rough_2 = mix((1.0 / top_2), 1.0, (1.0 - t_7)); vec3 _e171 = fc_1; vec3 _e172 = sky_dir(dir_3); vec3 _e173 = radiance_2(_e172, rough_2); float _e177 = _group_0_binding_5_fs.sun.w; float _e182 = _group_0_binding_5_fs.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } vec3 _e184 = fc_1; vec3 _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; vec3 _e186 = fc_1; float _e187 = amount; return mix(c_22, _e186, _e187); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_4, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_23 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h_4 = (_e26.xyz * 0.5); vec3 dd = mix(d_4, vec3(1e-12), lessThan(abs(d_4), vec3(1e-12))); vec3 sa = ((-(h_4) - o) / dd); vec3 sb = ((h_4 - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_4 / h_4), (d_4 / h_4)); b = dot((o / h_4), (d_4 / h_4)); c_23 = (dot((o / h_4), (o / h_4)) - 1.0); } else { float rad_1 = min(h_4.x, h_4.z); float k_18 = ((shape == FOG_SHAPE_CONE) ? (rad_1 / (2.0 * h_4.y)) : 0.0); float w_4 = (h_4.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_18 * k_18) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_18 * k_18) * w_4) * d_4.y)); c_23 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_18 * k_18) * w_4) * w_4) : (rad_1 * rad_1))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_23; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_23; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_23; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_23; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_3, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_15 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_15.material.x * min(exp2((-(e_15.material.y) * (dot(p_3, _e14.xyz) - e_15.material.w))), 1.0)); if ((e_15.material.z > 0.0)) { uint shape_1 = uint(e_15.albedo.w); vec3 h_5 = (e_15.size.xyz * 0.5); float rad_2 = min(h_5.x, h_5.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_5)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_5 * h_5))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_5); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_2), (abs(lp.y) - h_5.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_13 = normalize(vec2((1.0 / max(0.001, (rad_2 * 0.5))), (1.0 / max(0.001, h_5.y)))); sdf = max(dot(n_13, vec2(length(lp.xz), (lp.y - h_5.y))), (-(h_5.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_15.size.w), 0.0, 1.0), e_15.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_3 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_3.y; if (((hf * b_1) == 0.0)) { return ((m_3.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_19 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_19 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_19); float x_5 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_5 < 0.01) ? (1.0 - (x_5 * (0.5 - (x_5 * (0.16666667 - (x_5 / 24.0)))))) : ((1.0 - exp(-(x_5))) / x_5)); float top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_3.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 fog_light(uint n_6, vec3 p_4, vec3 dir_4) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l_2 = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_6].lights; bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_3 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_13 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_13]; l_2 = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_4); l_2 = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l_2; float rim_2 = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim_2, li.spot.y))); } } vec3 _e108 = l_2; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_4, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_13 >> 2u)][(i_13 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_6, vec2 ch) { float split = 0.0; bool local_24 = false; bool local_25 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_26 = false; bool local_27 = false; FogEntryU e_16 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_16.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_16.to_local * vec4(d_6, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_6 = (dot(o_1, _e20.xyz) - e_16.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_6, _e28.xyz); bool edge = (e_16.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_16.material.y > 0.0)) { local_24 = ((-(a_6) / b_3) > ch.x); } else { local_24 = false; } bool _e52 = local_24; if (_e52) { local_25 = ((-(a_6) / b_3) < ch.y); } else { local_25 = false; } bool _e60 = local_25; if (_e60) { split = (-(a_6) / b_3); } bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e160 = i_1; i_1 = (_e160 + 1u); } loop_init_4 = false; uint _e70 = i_1; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i_1; uint j = (_e75 & 3u); if (!((j == 0u))) { local_26 = (j == 3u); } else { local_26 = true; } bool _e88 = local_26; float x_6 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_27 = (j == 3u); } else { local_27 = true; } bool _e100 = local_27; float w_5 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_8 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_6) : x_6))); vec3 p_9 = (o_1 + (d_6 * t_8)); float _e136 = fog_density(k_9, p_9, (lo_4 + (ld * t_8))); uint _e137 = i_1; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_9, d_6); q_1 = (_e140 + (((e_16.albedo.xyz * _e143) + e_16.emission.xyz) * ((w_5 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_5 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_24, vec3 o_2, vec3 d_7, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_2 = 0u; bool local_28 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_3 = 0u; uint n_7 = 0u; float avail = 0.0; uint i_4 = 0u; uint i_5 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e72 = i_2; i_2 = (_e72 + 1u); } loop_init_5 = false; uint _e13 = i_2; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_2; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_28 = (byte == 0u); } else { local_28 = false; } bool _e37 = local_28; if (_e37) { break; } uint _e42 = i_2; uint k_19 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_19].to_local; vec2 _e57 = fog_chord(k_19, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_7, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_19; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e90 = i_3; i_3 = (_e90 + 1u); } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at[_e82]; uint _e85 = i_3; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } } bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e221 = n_7; n_7 = (_e221 + 1u); } loop_init_7 = false; uint _e94 = n_7; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_7; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_4 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e153 = i_4; i_4 = (_e153 + 1u); } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_4; float _e113 = chords[_e110].y; uint _e114 = n_7; float _e117 = chords[_e114].y; uint _e119 = i_4; float _e122 = chords[_e119].x; uint _e123 = n_7; float _e126 = chords[_e123].x; uint _e131 = i_4; float _e134 = chords[_e131].y; uint _e135 = i_4; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_4; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_7; float _e158 = parts[_e155].w; float _e160 = avail; float f_5 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_5 = 0u; bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e218 = i_5; i_5 = (_e218 + 1u); } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_5; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_5; float _e180 = chords[_e177].y; uint _e181 = n_7; float _e184 = chords[_e181].y; uint _e186 = i_5; float _e189 = chords[_e186].x; uint _e190 = n_7; float _e193 = chords[_e190].x; uint _e198 = i_5; float _e201 = chords[_e198].y; uint _e202 = i_5; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_5; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_5))); } } } } } } bool loop_init_10 = true; while(true) { if (!loop_init_10) { uint _e252 = i_6; i_6 = (_e252 + 1u); } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_6; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_6; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_9 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_24 * t_9) + (_e258 * ((1.0 - t_9) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_25, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_7)); vec3 _e47 = fog_integrate(c_25, o_7, ((world_4 - o_7) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_25); } vec3 sky_fog_volumes(vec3 c_26, vec3 near_point, vec3 dir_5) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back_1 = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_8 = ((_e36 > 0.5) ? (near_point - (back_1 * (_e26 * vec4(near_point, 1.0)).z)) : _e22.xyz); uint _e44 = _group_1_binding_5_fs.counts.y; vec3 _e45 = fog_integrate(c_26, o_8, dir_5, FOG_SKY_DISTANCE, _e44); float _e49 = _group_1_binding_5_fs.params.z; return mix(c_26, _e45, _e49); } float shadow_factor(uint i_7, vec3 world_5, vec3 n_geo_1, vec3 l_3) { uint part = 0u; uint c_27 = 0u; bool local_29 = false; bool local_30 = false; bool local_31 = false; float vis = 0.0; int dy = -1; int dx = 0; uint kind = _group_0_binding_1_fs.lights[i_7].info.x; vec4 _e14 = _group_0_binding_1_fs.lights[i_7].position; vec3 light_pos = _e14.xyz; uint _e21 = _group_0_binding_1_fs.lights[i_7].info.w; uint slot = min(_e21, 15u); vec4 params = _group_0_binding_2_fs.lights[slot].params; uint first = _group_0_binding_2_fs.lights[slot].info.x; uint _e40 = _group_0_binding_2_fs.lights[slot].info.y; uint count = max(_e40, 1u); mat4x4 _e45 = _group_0_binding_0_fs.view; float view_depth = -((_e45 * vec4(world_5, 1.0)).z); if ((kind == LIGHT_DIRECTIONAL)) { float _e60 = _group_0_binding_2_fs.lights[slot].fade.y; if ((view_depth > _e60)) { return 1.0; } part = (count - 1u); bool loop_init_11 = true; while(true) { if (!loop_init_11) { uint _e79 = c_27; c_27 = (_e79 + 1u); } loop_init_11 = false; uint _e67 = c_27; if ((_e67 < count)) { } else { break; } { uint _e73 = c_27; float _e75 = _group_0_binding_2_fs.lights[slot].splits[_e73]; if ((view_depth <= _e75)) { uint _e77 = c_27; part = _e77; break; } } } } uint _e83 = part; vec4 texel_1 = _group_0_binding_2_fs.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; float t_10 = (texel_1.x + (texel_1.y * distance(world_5, light_pos))); vec3 p_10 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1.0)) * t_10))) + (l_3 * (params.x * t_10))); if ((kind == LIGHT_OMNI)) { vec3 d_13 = (p_10 - light_pos); vec3 a_7 = abs(d_13); if ((a_7.x >= a_7.y)) { local_29 = (a_7.x >= a_7.z); } else { local_29 = false; } bool _e123 = local_29; if (_e123) { part = ((d_13.x >= 0.0) ? 0u : 1u); } else { if ((a_7.y >= a_7.z)) { part = ((d_13.y >= 0.0) ? 2u : 3u); } else { part = ((d_13.z >= 0.0) ? 4u : 5u); } } } uint _e145 = part; uint tile_1 = min((first + min(_e145, (count - 1u))), 15u); mat4x4 _e156 = _group_0_binding_2_fs.tiles[tile_1].view_proj; vec4 clip = (_e156 * vec4(p_10, 1.0)); if ((clip.w <= 0.0)) { return 1.0; } vec3 ndc = (clip.xyz / vec3(clip.w)); if (!((abs(ndc.x) > 1.0))) { local_30 = (abs(ndc.y) > 1.0); } else { local_30 = true; } bool _e180 = local_30; if (!(_e180)) { local_31 = (ndc.z > 1.0); } else { local_31 = true; } bool _e188 = local_31; if (_e188) { return 1.0; } vec4 rect = _group_0_binding_2_fs.tiles[tile_1].rect; vec2 uv_6 = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); vec2 auv = (rect.xy + (uv_6 * rect.zw)); float texel_uv = _group_0_binding_2_fs.atlas.x; vec2 lo_5 = (rect.xy + vec2((0.5 * texel_uv))); vec2 hi_4 = ((rect.xy + rect.zw) - vec2((0.5 * texel_uv))); float r_8 = params.z; if ((r_8 <= 0.0)) { float _e235 = textureLod(_group_0_binding_3_fs, vec3(clamp(auv, lo_5, hi_4), ndc.z), 0.0); vis = _e235; } else { float spread = (r_8 * texel_uv); bool loop_init_12 = true; while(true) { if (!loop_init_12) { int _e265 = dy; dy = (_e265 + 1); } loop_init_12 = false; int _e239 = dy; if ((_e239 <= 1)) { } else { break; } { dx = -1; bool loop_init_13 = true; while(true) { if (!loop_init_13) { int _e262 = dx; dx = (_e262 + 1); } loop_init_13 = false; int _e244 = dx; if ((_e244 <= 1)) { } else { break; } { int _e247 = dx; int _e249 = dy; vec2 tap = clamp((auv + (vec2(float(_e247), float(_e249)) * spread)), lo_5, hi_4); float _e255 = vis; float _e259 = textureLod(_group_0_binding_3_fs, vec3(tap, ndc.z), 0.0); vis = (_e255 + _e259); } } } } float _e267 = vis; vis = (_e267 / 9.0); } if ((kind == LIGHT_DIRECTIONAL)) { vec4 fade_1 = _group_0_binding_2_fs.lights[slot].fade; float _e277 = vis; vis = mix(_e277, 1.0, smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return mix(1.0, _e283, params.w); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_8 = abs(d_8); if ((a_8.x >= a_8.y)) { local_32 = (a_8.x >= a_8.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_8.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_8.y >= a_8.z)) { ma = a_8.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 probe_texel(uint row, vec3 fuv, uint level_1) { uint _e6 = _group_0_binding_7_fs.counts.z; float n_14 = float(max((_e6 >> level_1), 1u)); float lo_6 = (0.5 / n_14); float u_1 = clamp(fuv.y, lo_6, (1.0 - lo_6)); float v_9 = clamp(fuv.z, lo_6, (1.0 - lo_6)); vec2 uv_7 = vec2(((fuv.x + u_1) / 6.0), ((float(row) + v_9) / 8.0)); vec4 _e33 = textureLod(_group_3_binding_6_fs, vec2(uv_7), float(level_1)); return _e33.xyz; } vec3 probe_sample(uint row_1, vec3 d_9, float lod) { bool local_33 = false; uint _e6 = _group_0_binding_7_fs.counts.y; uint levels = max(_e6, 1u); float l_10 = clamp(lod, 0.0, float((levels - 1u))); uint m0_ = uint(l_10); float t_11 = (l_10 - float(m0_)); vec3 _e17 = probe_face_uv(d_9); vec3 _e18 = probe_texel(row_1, _e17, m0_); if (!((t_11 <= 0.0))) { local_33 = ((m0_ + 1u) >= levels); } else { local_33 = true; } bool _e28 = local_33; if (_e28) { return _e18; } vec3 _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1.0 - t_11)) + (_e34 * t_11)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_11 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_17 = p_5.extents.xyz; float d_14 = min((e_17.x - abs(l_11.x)), min((e_17.y - abs(l_11.y)), (e_17.z - abs(l_11.z)))); if ((d_14 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_14 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_15 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_15; } vec3 o_9 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_18 = p_6.extents.xyz; float _e24 = probe_exit(o_9.x, d_15.x, e_18.x); float _e28 = probe_exit(o_9.y, d_15.y, e_18.y); float _e32 = probe_exit(o_9.z, d_15.z, e_18.z); float t_12 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_9 + (d_15 * t_12)) - p_6.offset.xyz); } vec4 probe_reflection(vec3 world_8, vec3 r_2, float roughness_2, uint probes) { vec3 acc = vec3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = _group_0_binding_7_fs.counts.x; uint count_1 = min(_e12, MAX_PROBES); uint _e18 = _group_0_binding_7_fs.counts.y; float lod_1 = (roughness_2 * float((max(_e18, 1u) - 1u))); bool loop_init_14 = true; while(true) { if (!loop_init_14) { uint _e57 = i_8; i_8 = (_e57 + 1u); } loop_init_14 = false; uint _e27 = i_8; if ((_e27 < count_1)) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_11 = _group_0_binding_7_fs.probes[_e31]; if ((((probes >> p_11.info.w) & 1u) == 0u)) { continue; } float _e41 = probe_weight(p_11, world_8); if ((_e41 <= 0.0)) { continue; } vec3 _e44 = acc; vec3 _e47 = probe_lookup(p_11, world_8, r_2); vec3 _e48 = probe_sample(p_11.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_11.offset.w) * _e41)); float _e54 = w_sum; w_sum = (_e54 + _e41); } } float _e59 = w_sum; if ((_e59 > 1.0)) { vec3 _e62 = acc; float _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1.0; } vec3 _e67 = acc; float _e68 = w_sum; return vec4(_e67, _e68); } vec4 probe_ambient(vec3 world_9, vec3 n_10, uint probes_1) { vec3 acc_1 = vec3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_34 = false; vec3 c_28 = vec3(0.0); uint _e11 = _group_0_binding_7_fs.counts.x; uint count_2 = min(_e11, MAX_PROBES); uint _e17 = _group_0_binding_7_fs.counts.y; uint last = (max(_e17, 1u) - 1u); bool loop_init_15 = true; while(true) { if (!loop_init_15) { uint _e73 = i_9; i_9 = (_e73 + 1u); } loop_init_15 = false; uint _e24 = i_9; if ((_e24 < count_2)) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_12 = _group_0_binding_7_fs.probes[_e28]; if (!((((probes_1 >> p_12.info.w) & 1u) == 0u))) { local_34 = (p_12.info.y == PROBE_AMBIENT_DISABLED); } else { local_34 = true; } bool _e46 = local_34; if (_e46) { continue; } float _e47 = probe_weight(p_12, world_9); if ((_e47 <= 0.0)) { continue; } c_28 = p_12.ambient.xyz; if ((p_12.info.y == PROBE_AMBIENT_ENVIRONMENT)) { vec3 _e64 = probe_face_uv((p_12.to_local * vec4(n_10, 0.0)).xyz); vec3 _e65 = probe_texel(p_12.info.w, _e64, last); c_28 = _e65; } vec3 _e66 = acc_1; vec3 _e67 = c_28; acc_1 = (_e66 + (_e67 * _e47)); float _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } } float _e75 = w_sum_1; if ((_e75 > 1.0)) { vec3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1.0; } vec3 _e83 = acc_1; float _e84 = w_sum_1; return vec4(_e83, _e84); } vec3 lit_with(VsOut in_21, bool front_1, Samples s_6, bool baked_1, vec3 baked_light_1) { vec3 n_mat = vec3(0.0); vec3 t_2 = vec3(0.0); DecalSurface surf_1 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); vec3 c_29 = vec3(0.0); uint k_10 = 0u; bool local_35 = false; vec3 l_4 = vec3(0.0); float atten_1 = 0.0; vec3 radiance_3 = vec3(0.0); vec3 ambient = vec3(0.0); vec3 diffuse_amb = vec3(0.0); vec3 spec_amb = vec3(0.0); vec3 dif = vec3(0.0); vec3 dif_1 = vec3(0.0); vec3 dif_2 = vec3(0.0); bool local_36 = false; vec3 n_geo_2 = (front_1 ? normalize(in_21.normal) : -(normalize(in_21.normal))); n_mat = n_geo_2; uint _e16 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e16 & T_NORMAL) != 0u) : false)) { t_2 = in_21.tangent.xyz; vec3 _e26 = t_2; vec3 _e27 = n_mat; vec3 _e28 = n_mat; vec3 _e29 = t_2; t_2 = normalize((_e26 - (_e27 * dot(_e28, _e29)))); vec3 _e34 = n_mat; vec3 _e35 = t_2; vec3 b_4 = (cross(_e34, _e35) * in_21.tangent.w); vec3 _e40 = t_2; vec3 _e48 = n_mat; n_mat = normalize((((_e40 * s_6.normal.x) + (b_4 * s_6.normal.y)) + (_e48 * s_6.normal.z))); } float _e59 = _group_2_binding_0_fs.factors.x; float _e69 = _group_2_binding_0_fs.factors.y; vec3 _e77 = n_mat; surf_1 = DecalSurface(s_6.base.xyz, clamp((_e59 * s_6.mr.z), 0.0, 1.0), clamp((_e69 * s_6.mr.y), 0.045, 1.0), s_6.occlusion, _e77, s_6.emission); uint _e85 = _group_1_binding_0_fs.decals.z; if ((SPEC_DECALS ? (_e85 > 0u) : false)) { DecalSurface _e91 = surf_1; DecalSurface _e92 = apply_decals(in_21.world, n_geo_2, _e91); surf_1 = _e92; } float metallic_2 = surf_1.metallic; float roughness_8 = surf_1.roughness; float a2_5 = (((roughness_8 * roughness_8) * roughness_8) * roughness_8); vec3 base_2 = surf_1.base; vec3 diffuse_5 = (base_2 * (1.0 - metallic_2)); vec3 f0_7 = mix(vec3(0.04), base_2, metallic_2); vec3 n_15 = surf_1.normal; float _e114 = _group_0_binding_0_fs.view[0][2]; float _e119 = _group_0_binding_0_fs.view[1][2]; float _e124 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e114, _e119, _e124); vec4 _e128 = _group_0_binding_0_fs.camera_pos; float _e137 = _group_0_binding_0_fs.camera_pos.w; vec3 v_10 = ((_e137 > 0.5) ? normalize(view_dir) : normalize((_e128.xyz - in_21.world))); uint _e144 = object_light_count(); bool loop_init_16 = true; while(true) { if (!loop_init_16) { uint _e248 = k_10; k_10 = (_e248 + 1u); } loop_init_16 = false; uint _e148 = k_10; if ((SPEC_LIGHTS ? (_e148 < _e144) : false)) { } else { break; } { uint _e152 = k_10; uint _e153 = object_light(_e152); LightU li_1 = _group_0_binding_1_fs.lights[_e153]; if (baked_1) { local_35 = (li_1.info.z == LIGHT_BAKED_STATIC); } else { local_35 = false; } bool _e165 = local_35; if (_e165) { continue; } uint kind_1 = li_1.info.x; l_4 = vec3(0.0); atten_1 = 1.0; if ((kind_1 == LIGHT_DIRECTIONAL)) { l_4 = -(li_1.direction.xyz); } else { vec3 rel_1 = (li_1.position.xyz - in_21.world); float d_16 = length(rel_1); l_4 = (rel_1 / vec3(max(d_16, 1e-6))); float _e190 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e190; if ((kind_1 == LIGHT_SPOT)) { float cone = li_1.spot.x; vec3 _e195 = l_4; float scos = max(dot(-(_e195), li_1.direction.xyz), cone); float rim_3 = max(0.0001, ((1.0 - scos) / max((1.0 - cone), 1e-6))); float _e210 = atten_1; atten_1 = (_e210 * (1.0 - pow(rim_3, li_1.spot.y))); } } float _e217 = atten_1; if ((_e217 > 0.0)) { float _e222 = atten_1; radiance_3 = (li_1.color.xyz * _e222); if ((SPEC_SHADOWS ? (li_1.info.y == LIGHT_SHADOWED) : false)) { float _e234 = atten_1; vec3 _e236 = l_4; float _e237 = shadow_factor(_e153, in_21.world, n_geo_2, _e236); radiance_3 = (li_1.color.xyz * (_e234 * _e237)); } vec3 _e240 = c_29; vec3 _e241 = l_4; vec3 _e242 = radiance_3; vec3 _e245 = light_specular(n_15, v_10, _e241, _e242, diffuse_5, f0_7, a2_5, li_1.spot.z); c_29 = (_e240 + _e245); } } } float nv_9 = max(dot(n_15, v_10), 0.0001); vec3 f_amb_1 = (f0_7 + ((max(vec3((1.0 - roughness_8)), f0_7) - f0_7) * pow((1.0 - nv_9), 5.0))); vec4 _e264 = gi_diffuse(n_15, baked_1, baked_light_1); uint _e270 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e270 & SKY_IBL) != 0u) : false)) { float _e280 = _group_0_binding_5_fs.ibl.x; float _e284 = _group_0_binding_5_fs.sun.w; float scale_1 = (_e280 * _e284); vec4 _e288 = _group_0_binding_5_fs.ambient; diffuse_amb = _e288.xyz; uint _e294 = _group_0_binding_5_fs.flags.x; if (((_e294 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e301 = _group_0_binding_5_fs.ambient; vec3 _e303 = sky_dir(n_15); vec3 _e304 = sh_irradiance(_e303); float _e309 = _group_0_binding_5_fs.ambient.w; diffuse_amb = mix(_e301.xyz, (_e304 * scale_1), _e309); } if ((_e264.w > 0.0)) { diffuse_amb = _e264.xyz; } vec4 _e317 = _group_0_binding_5_fs.ambient; spec_amb = _e317.xyz; uint _e323 = _group_0_binding_5_fs.flags.x; if (((_e323 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e330 = sky_dir(reflect(-(v_10), n_15)); vec3 _e331 = radiance_2(_e330, roughness_8); spec_amb = (_e331 * scale_1); } else { uint _e336 = _group_0_binding_5_fs.flags.x; if (((_e336 & SKY_REFLECT_OFF) != 0u)) { spec_amb = vec3(0.0); } } vec2 _e343 = env_brdf_approx(roughness_8, nv_9); uint _e348 = _group_0_binding_7_fs.counts.x; if ((SPEC_PROBES ? (_e348 > 0u) : false)) { uint _e359 = _group_1_binding_0_fs.extra.z; vec4 _e360 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e359); vec3 _e361 = spec_amb; vec3 spec_4 = ((_e361 * (1.0 - _e360.w)) + _e360.xyz); vec3 _e368 = diffuse_amb; dif = _e368; if ((_e264.w <= 0.0)) { uint _e377 = _group_1_binding_0_fs.extra.z; vec4 _e378 = probe_ambient(in_21.world, n_15, _e377); vec3 _e379 = diffuse_amb; dif = ((_e379 * (1.0 - _e378.w)) + _e378.xyz); } vec3 _e386 = dif; ambient = ((diffuse_5 * _e386) + (spec_4 * ((f0_7 * _e343.x) + vec3((_e343.y * clamp((50.0 * f0_7.y), metallic_2, 1.0)))))); } else { vec3 _e401 = diffuse_amb; vec3 _e403 = spec_amb; ambient = ((diffuse_5 * _e401) + (_e403 * ((f0_7 * _e343.x) + vec3((_e343.y * clamp((50.0 * f0_7.y), metallic_2, 1.0)))))); } } else { uint _e420 = _group_0_binding_1_fs.counts.y; if (((_e420 & ENV_AMBIENT_SKY) != 0u)) { vec4 _e427 = _group_0_binding_1_fs.up; vec3 up_2 = _e427.xyz; vec4 _e431 = _group_0_binding_1_fs.sky_top; vec4 _e435 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e431.xyz + _e435.xyz) * 0.5); vec4 _e442 = _group_0_binding_1_fs.ground_horizon; vec4 _e446 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e442.xyz + _e446.xyz) * 0.5); vec3 irradiance_1 = mix(ground_avg, sky_avg, clamp(((dot(n_15, up_2) * 0.5) + 0.5), 0.0, 1.0)); vec3 _e462 = sky(reflect(-(v_10), n_15)); vec3 blurred_1 = mix(_e462, sky_avg, roughness_8); uint _e467 = _group_0_binding_7_fs.counts.x; if ((_e467 > 0u)) { uint _e476 = _group_1_binding_0_fs.extra.z; vec4 _e477 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e476); float _e481 = _group_0_binding_1_fs.ambient.w; vec3 spec_5 = (((blurred_1 * _e481) * (1.0 - _e477.w)) + _e477.xyz); dif_1 = _e264.xyz; if ((_e264.w <= 0.0)) { uint _e498 = _group_1_binding_0_fs.extra.z; vec4 _e499 = probe_ambient(in_21.world, n_15, _e498); float _e503 = _group_0_binding_1_fs.ambient.w; dif_1 = (((irradiance_1 * _e503) * (1.0 - _e499.w)) + _e499.xyz); } vec3 _e511 = dif_1; ambient = ((diffuse_5 * _e511) + (spec_5 * f_amb_1)); } else { if ((_e264.w > 0.0)) { float _e524 = _group_0_binding_1_fs.ambient.w; ambient = ((diffuse_5 * _e264.xyz) + ((blurred_1 * f_amb_1) * _e524)); } else { float _e533 = _group_0_binding_1_fs.ambient.w; ambient = (((diffuse_5 * irradiance_1) + (blurred_1 * f_amb_1)) * _e533); } } } else { uint _e538 = _group_0_binding_7_fs.counts.x; if ((_e538 > 0u)) { uint _e547 = _group_1_binding_0_fs.extra.z; vec4 _e548 = probe_reflection(in_21.world, reflect(-(v_10), n_15), roughness_8, _e547); vec4 _e551 = _group_0_binding_1_fs.ambient; vec3 spec_6 = ((_e551.xyz * (1.0 - _e548.w)) + _e548.xyz); dif_2 = _e264.xyz; if ((_e264.w <= 0.0)) { uint _e568 = _group_1_binding_0_fs.extra.z; vec4 _e569 = probe_ambient(in_21.world, n_15, _e568); vec4 _e572 = _group_0_binding_1_fs.ambient; dif_2 = ((_e572.xyz * (1.0 - _e569.w)) + _e569.xyz); } vec3 _e580 = dif_2; ambient = ((diffuse_5 * _e580) + (spec_6 * f_amb_1)); } else { if ((_e264.w > 0.0)) { vec4 _e591 = _group_0_binding_1_fs.ambient; ambient = ((diffuse_5 * _e264.xyz) + (_e591.xyz * f_amb_1)); } else { vec4 _e597 = _group_0_binding_1_fs.ambient; ambient = (_e597.xyz * (diffuse_5 + f_amb_1)); } } } } uint _e605 = _group_0_binding_1_fs.counts.y; if (((_e605 & ENV_SSAO) != 0u)) { uint _e615 = _group_2_binding_0_fs.flags.y; local_36 = (_e615 != ALPHA_BLEND); } else { local_36 = false; } bool _e619 = local_36; if ((SPEC_SSAO ? _e619 : false)) { vec4 _e628 = texelFetch(_group_0_binding_6_fs, ivec2(floor(in_21.clip.xy)), 0); float ssao = _e628.x; vec3 _e630 = c_29; float _e632 = surf_1.occlusion; float _e637 = _group_0_binding_1_fs.tone.z; float _e641 = _group_0_binding_1_fs.tone.w; c_29 = (_e630 * mix(1.0, min(ssao, _e632), (_e637 * _e641))); vec3 _e646 = c_29; vec3 _e647 = ambient; float _e649 = surf_1.occlusion; c_29 = (_e646 + (_e647 * min(_e649, ssao))); } else { vec3 _e653 = c_29; vec3 _e654 = ambient; float _e656 = surf_1.occlusion; c_29 = (_e653 + (_e654 * _e656)); } vec3 _e659 = c_29; vec3 _e661 = surf_1.emission; c_29 = (_e659 + _e661); uint _e667 = _group_0_binding_5_fs.flags.x; if ((SPEC_FOG ? ((_e667 & SKY_FOG) != 0u) : false)) { vec3 _e674 = c_29; vec3 _e677 = surface_fog(_e674, in_21.world, -(v_10)); c_29 = _e677; } uint _e682 = _group_1_binding_0_fs.decals.w; if ((SPEC_FOG_VOLUMES ? (_e682 != 0u) : false)) { vec3 _e687 = c_29; uint _e692 = _group_1_binding_0_fs.decals.w; vec3 _e693 = fog_volumes(_e687, in_21.world, _e692); c_29 = _e693; } vec3 _e694 = c_29; vec3 _e695 = tonemap(_e694); return _e695; } vec3 lit(VsOut in_22, bool front_2, Samples s_7) { vec3 _e6 = lit_with(in_22, front_2, s_7, false, vec3(0.0)); return _e6; } vec4 lit_output(vec4 c_30) { uint _e4 = _group_0_binding_1_fs.counts.y; if (((_e4 & ENV_HDR) != 0u)) { return vec4(max(c_30.xyz, vec3(0.0)), clamp(c_30.w, 0.0, 1.0)); } vec4 _e18 = target_color(c_30); return _e18; } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_fs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_fs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_fs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_fs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_fs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_fs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_fs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_fs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_fs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_fs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec2 ext_uv(uint s_8, vec2 uv0_, vec2 uv1_5) { vec4 r0_ = _group_2_binding_0_fs.xf[(s_8 * 2u)]; vec4 r1_ = _group_2_binding_0_fs.xf[((s_8 * 2u) + 1u)]; vec2 uv_8 = ((r0_.w > 0.5) ? uv1_5 : uv0_); return vec2((dot(r0_.xy, uv_8) + r0_.z), (dot(r1_.xy, uv_8) + r1_.z)); } float ext_where(uint s_9) { float _e9 = _group_2_binding_0_fs.xf[((s_9 * 2u) + 1u)].w; return _e9; } vec4 ext_layer(uint s_10, vec2 uv0_1, vec2 uv1_6) { vec2 _e5 = ext_uv(s_10, uv0_1, uv1_6); float _e6 = ext_where(s_10); vec4 _e12 = texture(_group_2_binding_7_fs, vec3(_e5, (int((_e6 + 0.5)) - 1))); return _e12; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } ExtSamples sample_ext(VsOutExt in_25) { ExtSamples s_11 = ExtSamples(vec4(0.0), vec3(0.0), 0.0, 0.0, vec3(0.0), 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec3(0.0), false, vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec2(0.0), 0.0, vec3(0.0)); vec4 c_31 = vec4(0.0); float thick = 1.0; vec2 _e2 = tex_uv(in_25.uv); vec2 _e4 = tex_uv(in_25.uv1_); vec4 _e9 = _group_2_binding_0_fs.base_color; s_11.base = _e9; uint _e14 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e14 & T_BASE) != 0u) : false)) { vec4 _e22 = s_11.base; vec2 _e26 = ext_uv(SLOT_BASE, _e2, _e4); vec4 _e27 = texture(_group_2_binding_1_fs, vec2(_e26)); vec4 _e28 = decoded_base(_e27); s_11.base = (_e22 * _e28); } uint _e34 = _group_2_binding_0_fs.flags.w; if ((SPEC_VERTEX_COLOR ? ((_e34 & MAT_VERTEX_COLOR) != 0u) : false)) { c_31 = in_25.color; uint _e46 = _group_2_binding_0_fs.flags.w; if (((_e46 & MAT_VERTEX_COLOR_SRGB) != 0u)) { vec4 _e51 = c_31; vec3 _e53 = srgb_to_linear(_e51.xyz); float _e55 = c_31.w; c_31 = vec4(_e53, _e55); } vec4 _e59 = s_11.base; vec4 _e60 = c_31; s_11.base = (_e59 * _e60); } s_11.normal = vec3(0.0, 0.0, 1.0); uint _e71 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e71 & T_NORMAL) != 0u) : false)) { vec2 _e82 = ext_uv(SLOT_NORMAL, _e2, _e4); vec4 _e83 = texture(_group_2_binding_2_fs, vec2(_e82)); float _e89 = _group_2_binding_0_fs.ext[3].w; vec3 _e90 = scaled_normal(_e83.xyz, _e89); s_11.normal = _e90; } float _e95 = _group_2_binding_0_fs.factors.x; s_11.metallic = _e95; float _e98 = ext_where(SLOT_METALLIC); if ((SPEC_TEX_MR ? (_e98 > 0.5) : false)) { float _e104 = s_11.metallic; vec2 _e108 = ext_uv(SLOT_METALLIC, _e2, _e4); vec4 _e109 = texture(_group_2_binding_3_fs, vec2(_e108)); s_11.metallic = (_e104 * _e109.z); } float _e116 = _group_2_binding_0_fs.factors.y; s_11.roughness = _e116; uint _e121 = _group_2_binding_0_fs.flags.w; if ((SPEC_ROUGHNESS_LAYER ? ((_e121 & MAT_ROUGHNESS_LAYER) != 0u) : false)) { float _e129 = ext_where(SLOT_ROUGHNESS); if ((_e129 > 0.5)) { float _e133 = s_11.roughness; vec4 _e135 = ext_layer(SLOT_ROUGHNESS, _e2, _e4); s_11.roughness = (_e133 * _e135.y); } } else { float _e140 = ext_where(SLOT_ROUGHNESS); if ((SPEC_TEX_MR ? (_e140 > 0.5) : false)) { float _e146 = s_11.roughness; vec2 _e150 = ext_uv(SLOT_ROUGHNESS, _e2, _e4); vec4 _e151 = texture(_group_2_binding_3_fs, vec2(_e150)); s_11.roughness = (_e146 * _e151.y); } } vec4 _e157 = _group_2_binding_0_fs.emission; s_11.emission = _e157.xyz; uint _e163 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_EMISSION ? ((_e163 & T_EMISSION) != 0u) : false)) { vec3 _e171 = s_11.emission; vec2 _e175 = ext_uv(SLOT_EMISSIVE, _e2, _e4); vec4 _e176 = texture(_group_2_binding_4_fs, vec2(_e175)); vec3 _e178 = decoded_emission(_e176.xyz); s_11.emission = (_e171 * _e178); } s_11.occlusion = 1.0; uint _e186 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_OCCLUSION ? ((_e186 & T_OCCLUSION) != 0u) : false)) { vec2 _e196 = ext_uv(SLOT_OCCLUSION, _e2, _e4); vec4 _e197 = texture(_group_2_binding_5_fs, vec2(_e196)); float o_10 = _e197.x; float _e204 = _group_2_binding_0_fs.ext[6].w; s_11.occlusion = (1.0 + (_e204 * (o_10 - 1.0))); } float _e215 = _group_2_binding_0_fs.ext[0].w; s_11.specular = _e215; float _e218 = ext_where(SLOT_SPECULAR); if ((SPEC_EXT_LAYERS ? (_e218 > 0.5) : false)) { float _e224 = s_11.specular; vec4 _e226 = ext_layer(SLOT_SPECULAR, _e2, _e4); s_11.specular = (_e224 * _e226.w); } vec4 _e233 = _group_2_binding_0_fs.ext[0]; s_11.specular_color = _e233.xyz; float _e237 = ext_where(SLOT_SPECULAR_COLOR); if ((SPEC_EXT_LAYERS ? (_e237 > 0.5) : false)) { vec3 _e243 = s_11.specular_color; vec4 _e245 = ext_layer(SLOT_SPECULAR_COLOR, _e2, _e4); vec3 _e247 = srgb_to_linear(_e245.xyz); s_11.specular_color = (_e243 * _e247); } float _e254 = _group_2_binding_0_fs.ext[1].y; s_11.transmission = _e254; float _e257 = ext_where(SLOT_TRANSMISSION); if ((SPEC_EXT_LAYERS ? (_e257 > 0.5) : false)) { float _e263 = s_11.transmission; vec4 _e265 = ext_layer(SLOT_TRANSMISSION, _e2, _e4); s_11.transmission = (_e263 * _e265.x); } float _e273 = _group_2_binding_0_fs.ext[1].z; s_11.thickness = _e273; float _e276 = ext_where(SLOT_THICKNESS); if ((SPEC_EXT_LAYERS ? (_e276 > 0.5) : false)) { float _e282 = s_11.thickness; vec4 _e284 = ext_layer(SLOT_THICKNESS, _e2, _e4); s_11.thickness = (_e282 * _e284.y); } float _e292 = _group_2_binding_0_fs.ext[3].x; s_11.clearcoat = _e292; float _e295 = ext_where(SLOT_CLEARCOAT); if ((SPEC_EXT_LAYERS ? (_e295 > 0.5) : false)) { float _e301 = s_11.clearcoat; vec4 _e303 = ext_layer(SLOT_CLEARCOAT, _e2, _e4); s_11.clearcoat = (_e301 * _e303.x); } float _e311 = _group_2_binding_0_fs.ext[3].y; s_11.clearcoat_roughness = _e311; float _e314 = ext_where(SLOT_CLEARCOAT_ROUGHNESS); if ((SPEC_EXT_LAYERS ? (_e314 > 0.5) : false)) { float _e320 = s_11.clearcoat_roughness; vec4 _e322 = ext_layer(SLOT_CLEARCOAT_ROUGHNESS, _e2, _e4); s_11.clearcoat_roughness = (_e320 * _e322.y); } s_11.clearcoat_normal = vec3(0.0, 0.0, 1.0); s_11.clearcoat_mapped = false; float _e334 = ext_where(SLOT_CLEARCOAT_NORMAL); if ((SPEC_EXT_LAYERS ? (_e334 > 0.5) : false)) { vec4 _e341 = ext_layer(SLOT_CLEARCOAT_NORMAL, _e2, _e4); float _e347 = _group_2_binding_0_fs.ext[3].z; vec3 _e348 = scaled_normal(_e341.xyz, _e347); s_11.clearcoat_normal = _e348; s_11.clearcoat_mapped = true; } vec4 _e355 = _group_2_binding_0_fs.ext[4]; s_11.sheen_color = _e355.xyz; float _e359 = ext_where(SLOT_SHEEN_COLOR); if ((SPEC_EXT_LAYERS ? (_e359 > 0.5) : false)) { vec3 _e365 = s_11.sheen_color; vec4 _e367 = ext_layer(SLOT_SHEEN_COLOR, _e2, _e4); vec3 _e369 = srgb_to_linear(_e367.xyz); s_11.sheen_color = (_e365 * _e369); } float _e376 = _group_2_binding_0_fs.ext[4].w; s_11.sheen_roughness = _e376; float _e379 = ext_where(SLOT_SHEEN_ROUGHNESS); if ((SPEC_EXT_LAYERS ? (_e379 > 0.5) : false)) { float _e385 = s_11.sheen_roughness; vec4 _e387 = ext_layer(SLOT_SHEEN_ROUGHNESS, _e2, _e4); s_11.sheen_roughness = (_e385 * _e387.w); } float _e395 = _group_2_binding_0_fs.ext[5].x; s_11.iridescence = _e395; float _e398 = ext_where(SLOT_IRIDESCENCE); if ((SPEC_EXT_LAYERS ? (_e398 > 0.5) : false)) { float _e404 = s_11.iridescence; vec4 _e406 = ext_layer(SLOT_IRIDESCENCE, _e2, _e4); s_11.iridescence = (_e404 * _e406.x); } float _e413 = ext_where(SLOT_IRIDESCENCE_THICKNESS); if ((SPEC_EXT_LAYERS ? (_e413 > 0.5) : false)) { vec4 _e419 = ext_layer(SLOT_IRIDESCENCE_THICKNESS, _e2, _e4); thick = _e419.y; } float _e426 = _group_2_binding_0_fs.ext[5].z; float _e431 = _group_2_binding_0_fs.ext[5].w; float _e432 = thick; s_11.iridescence_thickness = mix(_e426, _e431, _e432); float _e439 = _group_2_binding_0_fs.ext[6].x; s_11.anisotropy = _e439; vec4 _e444 = _group_2_binding_0_fs.ext[6]; s_11.anisotropy_dir = _e444.yz; float _e448 = ext_where(SLOT_ANISOTROPY); if ((SPEC_EXT_LAYERS ? (_e448 > 0.5) : false)) { vec4 _e454 = ext_layer(SLOT_ANISOTROPY, _e2, _e4); vec3 a_9 = _e454.xyz; vec2 d_17 = ((a_9.xy * 2.0) - vec2(1.0)); vec2 dn_1 = ((dot(d_17, d_17) > 1e-8) ? normalize(d_17) : vec2(1.0, 0.0)); float c_40 = _group_2_binding_0_fs.ext[6].y; float sn = _group_2_binding_0_fs.ext[6].z; s_11.anisotropy_dir = vec2(((c_40 * dn_1.x) - (sn * dn_1.y)), ((sn * dn_1.x) + (c_40 * dn_1.y))); float _e493 = s_11.anisotropy; s_11.anisotropy = (_e493 * a_9.z); } float _e501 = _group_2_binding_0_fs.ext[7].w; s_11.diffuse_transmission = _e501; float _e504 = ext_where(SLOT_DIFFUSE_TRANSMISSION); if ((SPEC_EXT_LAYERS ? (_e504 > 0.5) : false)) { float _e510 = s_11.diffuse_transmission; vec4 _e512 = ext_layer(SLOT_DIFFUSE_TRANSMISSION, _e2, _e4); s_11.diffuse_transmission = (_e510 * _e512.w); } vec4 _e519 = _group_2_binding_0_fs.ext[7]; s_11.diffuse_transmission_color = _e519.xyz; float _e523 = ext_where(SLOT_DIFFUSE_TRANSMISSION_COLOR); if ((SPEC_EXT_LAYERS ? (_e523 > 0.5) : false)) { vec3 _e529 = s_11.diffuse_transmission_color; vec4 _e531 = ext_layer(SLOT_DIFFUSE_TRANSMISSION_COLOR, _e2, _e4); vec3 _e533 = srgb_to_linear(_e531.xyz); s_11.diffuse_transmission_color = (_e529 * _e533); } ExtSamples _e535 = s_11; return _e535; } bool ext_cut(ExtSamples s_12) { bool local_37 = false; uint _e5 = _group_2_binding_0_fs.flags.y; if ((_e5 == ALPHA_MASK)) { float _e15 = _group_2_binding_0_fs.emission.w; local_37 = (s_12.base.w < _e15); } else { local_37 = false; } bool _e18 = local_37; return (SPEC_ALPHA_MASK ? _e18 : false); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_6 = (at_1 * ab); vec3 f_6 = vec3((ab * th), (at_1 * bh), (a2_6 * nh_1)); float w2_ = (a2_6 / dot(f_6, f_6)); return (((a2_6 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_11 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_10 = mix(21.5473, 25.3245, o_11); float b_5 = mix(3.82987, 3.32435, o_11); float c_41 = mix(0.19823, 0.16801, o_11); float d_18 = mix(-1.9776, -1.27393, o_11); float e_19 = mix(-4.32054, -4.85967, o_11); return (((a_10 / (1.0 + (b_5 * pow(max(x_3, 1e-6), c_41)))) + (d_18 * x_3)) + e_19); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_7 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y_1 = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_14 = min(int(floor(x_7)), 14); int j_1 = min(int(floor(y_1)), 6); float fx = (x_7 - float(i_14)); float fy = (y_1 - float(j_1)); float _e166 = t_3[((j_1 * 16) + i_14)]; float _e173 = t_3[(((j_1 * 16) + i_14) + 1)]; float a_11 = mix(_e166, _e173, fx); float _e181 = t_3[(((j_1 + 1) * 16) + i_14)]; float _e190 = t_3[((((j_1 + 1) * 16) + i_14) + 1)]; float b_6 = mix(_e181, _e190, fx); return mix(a_11, b_6, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_9 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_9 * r_9); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_20 = (outside / film); float sin2sq = ((k_20 * k_20) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_1 = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_1 + ((1.0 - r0_1) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init_17 = true; while(true) { if (!loop_init_17) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init_17 = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir_1 = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir_1) : normalize((_e19.xyz - world_10))); } ExtCtx ext_ctx(VsOutExt in_26, bool front_3, ExtSamples s_13, bool decals) { ExtCtx e_4 = ExtCtx(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0), 0.0, vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), false, 0.0, vec2(0.0), 0.0, 0.0, vec3(0.0)); vec3 t_4 = vec3(0.0); DecalSurface surf_2 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); bool local_38 = false; vec3 n_geo_3 = (front_3 ? normalize(in_26.normal) : -(normalize(in_26.normal))); t_4 = in_26.tangent.xyz; vec3 _e14 = t_4; vec3 _e15 = t_4; t_4 = normalize((_e14 - (n_geo_3 * dot(n_geo_3, _e15)))); vec3 _e20 = t_4; vec3 b_7 = (cross(n_geo_3, _e20) * in_26.tangent.w); e_4.n_geo = n_geo_3; e_4.n = n_geo_3; uint _e31 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_NORMAL ? ((_e31 & T_NORMAL) != 0u) : false)) { vec3 _e39 = t_4; e_4.n = normalize((((_e39 * s_13.normal.x) + (b_7 * s_13.normal.y)) + (n_geo_3 * s_13.normal.z))); } e_4.nc = n_geo_3; if (s_13.clearcoat_mapped) { vec3 _e55 = t_4; e_4.nc = normalize((((_e55 * s_13.clearcoat_normal.x) + (b_7 * s_13.clearcoat_normal.y)) + (n_geo_3 * s_13.clearcoat_normal.z))); } vec3 _e80 = e_4.n; surf_2 = DecalSurface(s_13.base.xyz, clamp(s_13.metallic, 0.0, 1.0), clamp(s_13.roughness, 0.045, 1.0), s_13.occlusion, _e80, s_13.emission); if ((SPEC_DECALS ? decals : false)) { DecalSurface _e88 = surf_2; DecalSurface _e89 = apply_decals(in_26.world, n_geo_3, _e88); surf_2 = _e89; } vec3 _e92 = surf_2.normal; e_4.n = _e92; float _e95 = surf_2.occlusion; e_4.occlusion = _e95; vec3 _e98 = surf_2.emission; e_4.emission = _e98; vec3 _e101 = ext_view(in_26.world); e_4.v = _e101; e_4.world = in_26.world; vec3 _e106 = e_4.n; vec3 _e108 = e_4.v; e_4.nv = max(dot(_e106, _e108), 0.0001); float _e114 = surf_2.metallic; e_4.metallic = _e114; float _e117 = surf_2.roughness; e_4.roughness = _e117; float _e120 = e_4.roughness; float _e122 = e_4.roughness; e_4.alpha = (_e120 * _e122); float _e126 = e_4.alpha; float _e128 = e_4.alpha; e_4.a2_ = (_e126 * _e128); vec3 _e132 = surf_2.base; e_4.base = _e132; vec3 _e135 = e_4.base; float _e137 = e_4.metallic; e_4.diffuse = (_e135 * (1.0 - _e137)); float _e146 = _group_2_binding_0_fs.ext[1].x; e_4.ior = max(_e146, 1.0); float _e150 = e_4.ior; float _e154 = e_4.ior; float r_10 = ((_e150 - 1.0) / (_e154 + 1.0)); float spec_7 = max(s_13.specular, 0.0); vec3 dielectric_f0_ = (min((vec3((r_10 * r_10)) * s_13.specular_color), vec3(1.0)) * spec_7); vec3 _e171 = e_4.base; float _e173 = e_4.metallic; e_4.f0_ = mix(dielectric_f0_, _e171, _e173); float _e180 = e_4.metallic; e_4.f90_ = mix(vec3(spec_7), vec3(1.0), _e180); e_4.iridescence = clamp(s_13.iridescence, 0.0, 1.0); vec3 _e189 = e_4.f0_; e_4.irid_f = _e189; float _e192 = e_4.iridescence; if ((SPEC_IRIDESCENCE ? (_e192 > 0.0) : false)) { float _e203 = _group_2_binding_0_fs.ext[5].y; float _e205 = e_4.nv; vec3 _e208 = e_4.f0_; vec3 _e209 = eval_iridescence(1.0, _e203, _e205, s_13.iridescence_thickness, _e208); e_4.irid_f = _e209; } e_4.aniso = clamp(s_13.anisotropy, 0.0, 1.0); vec3 _e216 = t_4; e_4.aniso_t = normalize(((_e216 * s_13.anisotropy_dir.x) + (b_7 * s_13.anisotropy_dir.y))); vec3 _e227 = e_4.aniso_t; e_4.aniso_b = normalize(cross(n_geo_3, _e227)); e_4.clearcoat = clamp(s_13.clearcoat, 0.0, 1.0); e_4.cc_roughness = clamp(s_13.clearcoat_roughness, 0.045, 1.0); float _e241 = e_4.cc_roughness; float _e243 = e_4.cc_roughness; float cca = (_e241 * _e243); e_4.cc_a2_ = (cca * cca); e_4.sheen = max(s_13.sheen_color, vec3(0.0)); e_4.sheen_roughness = clamp(s_13.sheen_roughness, 0.07, 1.0); float _e259 = e_4.sheen_roughness; float _e261 = e_4.sheen_roughness; e_4.sheen_alpha = (_e259 * _e261); e_4.dt = clamp(s_13.diffuse_transmission, 0.0, 1.0); e_4.dt_color = max(s_13.diffuse_transmission_color, vec3(0.0)); e_4.transmission = clamp(s_13.transmission, 0.0, 1.0); float _e280 = e_4.alpha; float _e282 = e_4.ior; e_4.trans_alpha = max((_e280 * clamp(((_e282 * 2.0) - 2.0), 0.0, 1.0)), 0.002); vec4 _e296 = _group_1_binding_0_fs.model[0]; vec4 _e302 = _group_1_binding_0_fs.model[1]; vec4 _e309 = _group_1_binding_0_fs.model[2]; float scale_2 = (((length(_e296.xyz) + length(_e302.xyz)) + length(_e309.xyz)) / 3.0); float dist_1 = (max(s_13.thickness, 0.0) * scale_2); e_4.thin = (dist_1 <= 0.0); e_4.thickness = dist_1; e_4.frag = in_26.clip.xy; e_4.attenuation = vec3(1.0); float _e334 = _group_2_binding_0_fs.ext[1].w; if ((_e334 > 0.0)) { local_38 = (dist_1 > 0.0); } else { local_38 = false; } bool _e342 = local_38; if ((SPEC_VOLUME ? _e342 : false)) { vec4 _e349 = _group_2_binding_0_fs.ext[2]; float _e358 = _group_2_binding_0_fs.ext[1].w; e_4.attenuation = pow(max(_e349.xyz, vec3(1e-6)), vec3((dist_1 / _e358))); } float _e367 = _group_2_binding_0_fs.ext[2].w; e_4.dispersion = _e367; ExtCtx _e368 = e_4; return _e368; } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_6 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_6), 0.0); float vh_5 = max(dot(e_6.v, h_6), 0.0); float nv_10 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_6), dot(e_6.aniso_b, h_6), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_10, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_10, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back_2 = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back_2, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_10, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_3 = (_e175 + _e176); c_33 = (base_3 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_10, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_10, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_6), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec3 ext_irradiance(vec3 n_11, bool lit_mode) { if ((SPEC_MATERIAL_MODE ? !(lit_mode) : false)) { vec3 _e7 = env(n_11.z); return (_e7 * 0.8); } uint _e14 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e14 & SKY_IBL) != 0u) : false)) { float _e24 = _group_0_binding_5_fs.ibl.x; float _e28 = _group_0_binding_5_fs.sun.w; float scale_3 = (_e24 * _e28); uint _e33 = _group_0_binding_5_fs.flags.x; if (((_e33 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e40 = _group_0_binding_5_fs.ambient; vec3 _e42 = sky_dir(n_11); vec3 _e43 = sh_irradiance(_e42); float _e48 = _group_0_binding_5_fs.ambient.w; return mix(_e40.xyz, (_e43 * scale_3), _e48); } vec4 _e52 = _group_0_binding_5_fs.ambient; return _e52.xyz; } uint _e58 = _group_0_binding_1_fs.counts.y; if ((SPEC_AMBIENT_GRADIENT ? ((_e58 & ENV_AMBIENT_SKY) != 0u) : false)) { vec4 _e67 = _group_0_binding_1_fs.sky_top; vec4 _e71 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg_1 = ((_e67.xyz + _e71.xyz) * 0.5); vec4 _e78 = _group_0_binding_1_fs.ground_horizon; vec4 _e82 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg_1 = ((_e78.xyz + _e82.xyz) * 0.5); vec4 _e89 = _group_0_binding_1_fs.up; float _e103 = _group_0_binding_1_fs.ambient.w; return (mix(ground_avg_1, sky_avg_1, clamp(((dot(n_11, _e89.xyz) * 0.5) + 0.5), 0.0, 1.0)) * _e103); } vec4 _e107 = _group_0_binding_1_fs.ambient; return _e107.xyz; } vec3 ext_radiance(vec3 dir_7, float roughness_4, bool lit_mode_1) { if ((SPEC_MATERIAL_MODE ? !(lit_mode_1) : false)) { vec3 _e8 = env(dir_7.z); vec3 _e10 = env(0.0); return mix(_e8, (_e10 * 0.85), roughness_4); } uint _e18 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e18 & SKY_IBL) != 0u) : false)) { float _e28 = _group_0_binding_5_fs.ibl.x; float _e32 = _group_0_binding_5_fs.sun.w; float scale_4 = (_e28 * _e32); uint _e37 = _group_0_binding_5_fs.flags.x; if (((_e37 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e42 = sky_dir(dir_7); vec3 _e43 = radiance_2(_e42, roughness_4); return (_e43 * scale_4); } uint _e48 = _group_0_binding_5_fs.flags.x; if (((_e48 & SKY_REFLECT_OFF) != 0u)) { return vec3(0.0); } vec4 _e57 = _group_0_binding_5_fs.ambient; return _e57.xyz; } uint _e63 = _group_0_binding_1_fs.counts.y; if ((SPEC_AMBIENT_GRADIENT ? ((_e63 & ENV_AMBIENT_SKY) != 0u) : false)) { vec4 _e72 = _group_0_binding_1_fs.sky_top; vec4 _e76 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg_2 = ((_e72.xyz + _e76.xyz) * 0.5); vec3 _e81 = sky(dir_7); float _e86 = _group_0_binding_1_fs.ambient.w; return (mix(_e81, sky_avg_2, roughness_4) * _e86); } vec4 _e90 = _group_0_binding_1_fs.ambient; return _e90.xyz; } vec3 ext_probe_radiance(ExtCtx e_7, vec3 dir_8, float roughness_5, bool lit_mode_2) { bool local_39 = false; vec3 _e4 = ext_radiance(dir_8, roughness_5, lit_mode_2); if (!(!(lit_mode_2))) { uint _e13 = _group_0_binding_7_fs.counts.x; local_39 = (_e13 == 0u); } else { local_39 = true; } bool _e17 = local_39; if ((SPEC_PROBES ? _e17 : true)) { return _e4; } uint _e24 = _group_1_binding_0_fs.extra.z; vec4 _e25 = probe_reflection(e_7.world, dir_8, roughness_5, _e24); return ((_e4 * (1.0 - _e25.w)) + _e25.xyz); } vec3 ext_env_weight(vec3 f0_5, vec3 f90_1, float roughness_6, float nv_5, float metallic, bool lit_mode_3) { bool local_40 = false; if (lit_mode_3) { uint _e12 = _group_0_binding_5_fs.flags.x; local_40 = ((_e12 & SKY_IBL) != 0u); } else { local_40 = false; } bool _e18 = local_40; if ((SPEC_AMBIENT_SKY ? _e18 : false)) { vec2 _e21 = env_brdf_approx(roughness_6, nv_5); return ((f0_5 * _e21.x) + ((f90_1 * _e21.y) * clamp((50.0 * f0_5.y), metallic, 1.0))); } float _e40 = pow5_((1.0 - nv_5)); vec3 f_amb_2 = (f0_5 + ((max((f90_1 * (1.0 - roughness_6)), f0_5) - f0_5) * _e40)); if ((SPEC_MATERIAL_MODE ? !(lit_mode_3) : false)) { return (f_amb_2 * (1.0 - (0.5 * roughness_6))); } return f_amb_2; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_fs.view_proj; vec4 c_42 = (_e3 * vec4(p_7, 1.0)); vec2 ndc_1 = (c_42.xy / vec2(((c_42.w > 1e-6) ? c_42.w : 1e-6))); return vec2(((ndc_1.x * 0.5) + 0.5), (0.5 - (ndc_1.y * 0.5))); } vec3 screen_texel(vec2 uv_4, float rough) { uint _e5 = _group_0_binding_1_fs.dirs.w; float levels_1 = float(max(_e5, 1u)); float _e12 = _group_0_binding_0_fs.viewport.x; float lod_2 = min((log2(max(_e12, 1.0)) * max(rough, 0.0)), (levels_1 - 1.0)); vec4 _e24 = textureLod(_group_1_binding_6_fs, vec2(uv_4), lod_2); return _e24.xyz; } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } vec3 ext_screen_refracted(ExtCtx e_9, float rough_1) { if (e_9.thin) { mat4x4 _e5 = _group_0_binding_0_fs.view; vec3 n_view = normalize((_e5 * vec4(e_9.n, 0.0)).xyz); float _e19 = _group_2_binding_0_fs.factors.z; vec2 offset = (vec2(-(n_view.x), n_view.y) * _e19); vec4 _e24 = _group_0_binding_0_fs.viewport; vec3 _e28 = screen_texel(((e_9.frag * _e24.zw) + offset), rough_1); return (_e28 * e_9.attenuation); } if ((SPEC_DISPERSION ? (e_9.dispersion > 0.0) : false)) { float half_spread = (((e_9.ior - 1.0) * 0.025) * e_9.dispersion); vec2 _e48 = screen_exit_uv(e_9, max((e_9.ior - half_spread), 1.0)); vec3 _e49 = screen_texel(_e48, rough_1); float r_11 = _e49.x; vec2 _e52 = screen_exit_uv(e_9, e_9.ior); vec3 _e53 = screen_texel(_e52, rough_1); float g_2 = _e53.y; vec2 _e57 = screen_exit_uv(e_9, (e_9.ior + half_spread)); vec3 _e58 = screen_texel(_e57, rough_1); float b_8 = _e58.z; return (vec3(r_11, g_2, b_8) * e_9.attenuation); } vec2 _e64 = screen_exit_uv(e_9, e_9.ior); vec3 _e65 = screen_texel(_e64, rough_1); return (_e65 * e_9.attenuation); } vec3 ext_refracted(ExtCtx e_10, bool lit_mode_4) { bool local_41 = false; bool local_42 = false; float rough_3 = sqrt(e_10.trans_alpha); if (lit_mode_4) { uint _e10 = _group_0_binding_1_fs.counts.y; local_41 = ((_e10 & ENV_SCREEN_REFRACTION) != 0u); } else { local_41 = false; } bool _e16 = local_41; if (_e16) { uint _e22 = _group_0_binding_1_fs.dirs.w; local_42 = (_e22 > 0u); } else { local_42 = false; } bool _e26 = local_42; if ((SPEC_SCREEN_REFRACTION ? _e26 : false)) { vec3 _e29 = ext_screen_refracted(e_10, rough_3); return _e29; } if (e_10.thin) { vec3 _e33 = ext_radiance(-(e_10.v), rough_3, lit_mode_4); return (_e33 * e_10.attenuation); } if ((SPEC_DISPERSION ? (e_10.dispersion > 0.0) : false)) { float half_spread_1 = (((e_10.ior - 1.0) * 0.025) * e_10.dispersion); vec3 iors = vec3(max((e_10.ior - half_spread_1), 1.0), e_10.ior, (e_10.ior + half_spread_1)); vec3 _e64 = ext_radiance(refract(-(e_10.v), e_10.n, (1.0 / iors.x)), rough_3, lit_mode_4); float rr = _e64.x; vec3 _e73 = ext_radiance(refract(-(e_10.v), e_10.n, (1.0 / iors.y)), rough_3, lit_mode_4); float rg = _e73.y; vec3 _e82 = ext_radiance(refract(-(e_10.v), e_10.n, (1.0 / iors.z)), rough_3, lit_mode_4); float rb = _e82.z; return (vec3(rr, rg, rb) * e_10.attenuation); } vec3 _e94 = ext_radiance(refract(-(e_10.v), e_10.n, (1.0 / e_10.ior)), rough_3, lit_mode_4); return (_e94 * e_10.attenuation); } vec3 ext_ambient(ExtCtx e_11, bool lit_mode_5, vec4 gi) { vec3 diffuse_3 = vec3(0.0); bool local_43 = false; bool local_44 = false; bool local_45 = false; bool local_46 = false; vec3 r_3 = vec3(0.0); vec3 bent = vec3(0.0); vec3 c_34 = vec3(0.0); float nv_11 = e_11.nv; vec3 _e6 = ext_irradiance(e_11.n, lit_mode_5); diffuse_3 = (e_11.diffuse * _e6); if (lit_mode_5) { uint _e15 = _group_0_binding_5_fs.flags.x; local_43 = ((_e15 & SKY_IBL) == 0u); } else { local_43 = false; } bool _e21 = local_43; if (_e21) { uint _e27 = _group_0_binding_1_fs.counts.y; local_44 = ((_e27 & ENV_AMBIENT_SKY) == 0u); } else { local_44 = false; } bool _e33 = local_44; if ((SPEC_AMBIENT_FLAT ? _e33 : false)) { vec4 _e38 = _group_0_binding_1_fs.ambient; diffuse_3 = (_e38.xyz * e_11.diffuse); } if (lit_mode_5) { uint _e48 = _group_0_binding_7_fs.counts.x; local_45 = (_e48 > 0u); } else { local_45 = false; } bool _e52 = local_45; if (_e52) { local_46 = (gi.w <= 0.0); } else { local_46 = false; } bool _e59 = local_46; if ((SPEC_PROBES ? _e59 : false)) { uint _e67 = _group_1_binding_0_fs.extra.z; vec4 _e68 = probe_ambient(e_11.world, e_11.n, _e67); vec3 _e69 = diffuse_3; diffuse_3 = ((_e69 * (1.0 - _e68.w)) + (e_11.diffuse * _e68.xyz)); } if ((gi.w > 0.0)) { diffuse_3 = (e_11.diffuse * gi.xyz); } if ((SPEC_DIFFUSE_TRANSMISSION ? (e_11.dt > 0.0) : false)) { vec3 _e90 = diffuse_3; vec3 _e98 = ext_irradiance(-(e_11.n_geo), lit_mode_5); diffuse_3 = mix(_e90, ((e_11.dt_color * (1.0 - e_11.metallic)) * _e98), e_11.dt); } r_3 = reflect(-(e_11.v), e_11.n); if ((SPEC_ANISOTROPY ? (e_11.aniso > 0.0) : false)) { bent = normalize(cross(cross(e_11.aniso_b, e_11.v), e_11.aniso_b)); float a_12 = pow((1.0 - (e_11.aniso * (1.0 - e_11.roughness))), 4.0); vec3 _e129 = bent; bent = normalize(mix(_e129, e_11.n, a_12)); vec3 _e135 = bent; vec3 _e137 = bent; r_3 = normalize(mix(reflect(-(e_11.v), _e135), _e137, (e_11.roughness * e_11.roughness))); } vec3 f0_8 = mix(e_11.f0_, e_11.irid_f, e_11.iridescence); vec3 f90_2 = mix(e_11.f90_, vec3(1.0), e_11.iridescence); vec3 _e154 = ext_env_weight(f0_8, f90_2, e_11.roughness, nv_11, e_11.metallic, lit_mode_5); vec3 _e155 = r_3; vec3 _e157 = ext_probe_radiance(e_11, _e155, e_11.roughness, lit_mode_5); vec3 specular_2 = (_e157 * _e154); if ((SPEC_TRANSMISSION ? (e_11.transmission > 0.0) : false)) { vec3 _e170 = ext_refracted(e_11, lit_mode_5); vec3 through_1 = ((((vec3(1.0) - _e154) * e_11.base) * _e170) * (1.0 - e_11.metallic)); vec3 _e176 = diffuse_3; diffuse_3 = mix(_e176, through_1, e_11.transmission); } vec3 _e179 = diffuse_3; c_34 = (_e179 + specular_2); float _e184 = max3_(e_11.sheen); if ((SPEC_SHEEN ? (_e184 > 0.0) : false)) { float _e190 = sheen_albedo(nv_11, e_11.sheen_roughness); vec3 _e191 = c_34; float _e193 = max3_(e_11.sheen); vec3 _e200 = ext_irradiance(e_11.n, lit_mode_5); c_34 = ((_e191 * (1.0 - (_e193 * _e190))) + ((e_11.sheen * _e200) * _e190)); } if ((SPEC_CLEARCOAT ? (e_11.clearcoat > 0.0) : false)) { float ncv_1 = max(dot(e_11.nc, e_11.v), 0.0001); vec3 _e219 = f_schlick90_(vec3(0.04), vec3(1.0), ncv_1); float fc_3 = _e219.x; vec3 _e227 = ext_env_weight(vec3(0.04), vec3(1.0), e_11.cc_roughness, ncv_1, 0.0, lit_mode_5); vec3 _e228 = c_34; vec3 _e240 = ext_probe_radiance(e_11, reflect(-(e_11.v), e_11.nc), e_11.cc_roughness, lit_mode_5); c_34 = ((_e228 * (1.0 - (e_11.clearcoat * fc_3))) + ((e_11.clearcoat * _e240) * _e227)); } vec3 _e244 = c_34; return _e244; } vec3 ext_shade_with(VsOutExt in_27, bool front_4, ExtSamples s_14, bool lit_mode_6, bool baked_2, vec3 baked_light_2) { bool local_47 = false; vec3 c_35 = vec3(0.0); uint k_11 = 0u; bool local_48 = false; vec3 l_6 = vec3(0.0); float atten_2 = 0.0; vec3 rad = vec3(0.0); bool local_49 = false; if (lit_mode_6) { uint _e12 = _group_1_binding_0_fs.decals.z; local_47 = (_e12 > 0u); } else { local_47 = false; } bool _e16 = local_47; ExtCtx _e19 = ext_ctx(in_27, front_4, s_14, (SPEC_DECALS ? _e16 : false)); if ((SPEC_MATERIAL_MODE ? !(lit_mode_6) : false)) { vec4 _e30 = _group_0_binding_0_fs.view[0]; vec4 _e35 = _group_0_binding_0_fs.view[1]; vec4 _e40 = _group_0_binding_0_fs.view[2]; mat3x3 to_world = transpose(mat3x3(_e30.xyz, _e35.xyz, _e40.xyz)); vec3 _e44 = c_35; vec3 _e57 = ext_light(_e19, normalize((to_world * vec3(-0.45, 0.55, 0.7))), vec3(2.6, 2.522, 2.392), 1.0, false); c_35 = (_e44 + _e57); vec3 _e59 = c_35; vec3 _e72 = ext_light(_e19, normalize((to_world * vec3(0.75, 0.15, 0.45))), vec3(0.765, 0.80999994, 0.9), 1.0, false); c_35 = (_e59 + _e72); vec3 _e74 = c_35; vec3 _e87 = ext_light(_e19, normalize((to_world * vec3(0.3, 0.55, -0.6))), vec3(1.3, 1.3, 1.3), 1.0, false); c_35 = (_e74 + _e87); vec3 _e89 = c_35; vec3 _e93 = ext_ambient(_e19, false, vec4(0.0)); c_35 = (_e89 + (_e93 * s_14.occlusion)); vec3 _e97 = c_35; c_35 = (_e97 + s_14.emission); vec3 _e100 = c_35; return _e100; } uint _e101 = object_light_count(); bool loop_init_18 = true; while(true) { if (!loop_init_18) { uint _e207 = k_11; k_11 = (_e207 + 1u); } loop_init_18 = false; uint _e105 = k_11; if ((SPEC_LIGHTS ? (_e105 < _e101) : false)) { } else { break; } { uint _e109 = k_11; uint _e110 = object_light(_e109); LightU li_2 = _group_0_binding_1_fs.lights[_e110]; if (baked_2) { local_48 = (li_2.info.z == LIGHT_BAKED_STATIC); } else { local_48 = false; } bool _e122 = local_48; if (_e122) { continue; } uint kind_2 = li_2.info.x; l_6 = vec3(0.0); atten_2 = 1.0; if ((kind_2 == LIGHT_DIRECTIONAL)) { l_6 = -(li_2.direction.xyz); } else { vec3 rel_2 = (li_2.position.xyz - in_27.world); float d_19 = length(rel_2); l_6 = (rel_2 / vec3(max(d_19, 1e-6))); float _e147 = omni_attenuation(d_19, li_2.position.w, li_2.direction.w); atten_2 = _e147; if ((kind_2 == LIGHT_SPOT)) { float cone_1 = li_2.spot.x; vec3 _e152 = l_6; float scos_1 = max(dot(-(_e152), li_2.direction.xyz), cone_1); float rim_4 = max(0.0001, ((1.0 - scos_1) / max((1.0 - cone_1), 1e-6))); float _e167 = atten_2; atten_2 = (_e167 * (1.0 - pow(rim_4, li_2.spot.y))); } } float _e174 = atten_2; if ((_e174 > 0.0)) { float _e179 = atten_2; rad = (li_2.color.xyz * _e179); if ((SPEC_SHADOWS ? (li_2.info.y == LIGHT_SHADOWED) : false)) { float _e191 = atten_2; vec3 _e194 = l_6; float _e195 = shadow_factor(_e110, in_27.world, _e19.n_geo, _e194); rad = (li_2.color.xyz * (_e191 * _e195)); } vec3 _e198 = c_35; vec3 _e199 = l_6; vec3 _e200 = rad; vec3 _e204 = ext_light(_e19, _e199, _e200, li_2.spot.z, true); c_35 = (_e198 + _e204); } } } vec4 _e211 = gi_diffuse(_e19.n, baked_2, baked_light_2); vec3 _e212 = ext_ambient(_e19, true, _e211); uint _e217 = _group_0_binding_1_fs.counts.y; if (((_e217 & ENV_SSAO) != 0u)) { uint _e227 = _group_2_binding_0_fs.flags.y; local_49 = (_e227 != ALPHA_BLEND); } else { local_49 = false; } bool _e231 = local_49; if ((SPEC_SSAO ? _e231 : false)) { vec4 _e240 = texelFetch(_group_0_binding_6_fs, ivec2(floor(in_27.clip.xy)), 0); float ssao_1 = _e240.x; vec3 _e242 = c_35; float _e248 = _group_0_binding_1_fs.tone.z; float _e252 = _group_0_binding_1_fs.tone.w; c_35 = (_e242 * mix(1.0, min(ssao_1, _e19.occlusion), (_e248 * _e252))); vec3 _e257 = c_35; c_35 = (_e257 + (_e212 * min(_e19.occlusion, ssao_1))); } else { vec3 _e262 = c_35; c_35 = (_e262 + (_e212 * _e19.occlusion)); } vec3 _e266 = c_35; c_35 = (_e266 + _e19.emission); vec3 _e269 = c_35; return _e269; } vec3 ext_shade(VsOutExt in_28, bool front_5, ExtSamples s_15, bool lit_mode_7) { vec3 _e7 = ext_shade_with(in_28, front_5, s_15, lit_mode_7, false, vec3(0.0)); return _e7; } vec3 ext_lit_finish(vec3 c_in_1, vec3 world_11) { vec3 c_36 = vec3(0.0); c_36 = c_in_1; uint _e7 = _group_0_binding_5_fs.flags.x; if ((SPEC_FOG ? ((_e7 & SKY_FOG) != 0u) : false)) { vec3 _e14 = c_36; vec3 _e15 = ext_view(world_11); vec3 _e17 = surface_fog(_e14, world_11, -(_e15)); c_36 = _e17; } uint _e22 = _group_1_binding_0_fs.decals.w; if ((SPEC_FOG_VOLUMES ? (_e22 != 0u) : false)) { vec3 _e27 = c_36; uint _e31 = _group_1_binding_0_fs.decals.w; vec3 _e32 = fog_volumes(_e27, world_11, _e31); c_36 = _e32; } vec3 _e33 = c_36; vec3 _e34 = tonemap(_e33); return _e34; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } vec3 lightmap_light(vec2 uv_lm_1) { uint _e6 = _group_1_binding_0_fs.extra.y; vec4 _e9 = textureLod(_group_3_binding_4_fs, vec3(uv_lm_1, int(_e6)), 0.0); return _e9.xyz; } void main() { VsOutLm in_15 = VsOutLm(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8); bool facing_5 = gl_FrontFacing; vec3 c_4 = vec3(0.0); float alpha_3 = 1.0; bool local_17 = false; bool local_18 = false; VsOutExt _e2 = lm_ext_in(in_15); VsOut _e3 = ext_base_in(_e2); bool _e4 = mirrored(_e3); bool front_6 = (facing_5 != _e4); ExtSamples _e6 = sample_ext(_e2); if ((SPEC_FACE_FLAGS ? ((in_15.flags & F_HIDDEN) != 0u) : false)) { discard; } float _e18 = emerge_reveal(in_15.world, in_15.clip.xy); if ((SPEC_EMERGE ? (_e18 <= 0.0) : false)) { discard; } vec3 _e25 = lightmap_light(in_15.uv_lm); uint _e33 = _group_0_binding_0_fs.params.x; if ((SPEC_OTHER_MODES ? (_e33 == SHADE_LIGHTMAP) : false)) { vec3 _e38 = tonemap(_e25); c_4 = _e38; } else { bool _e39 = ext_cut(_e6); if (_e39) { discard; } uint _e44 = _group_2_binding_0_fs.flags.y; if ((SPEC_ALPHA_BLEND ? (_e44 == ALPHA_BLEND) : false)) { alpha_3 = _e6.base.w; } uint _e55 = _group_2_binding_0_fs.flags.w; if ((SPEC_UNLIT ? ((_e55 & MAT_UNLIT) != 0u) : false)) { c_4 = _e6.base.xyz; } else { vec3 _e66 = ext_shade_with(_e2, front_6, _e6, true, true, _e25); c_4 = _e66; } vec3 _e67 = c_4; vec3 _e69 = ext_lit_finish(_e67, in_15.world); c_4 = _e69; } uint _e74 = _group_1_binding_0_fs.params.w; if ((_e74 == 1u)) { uint _e82 = _group_0_binding_0_fs.params.y; local_17 = ((_e82 & OV_SELECTION) != 0u); } else { local_17 = false; } bool _e88 = local_17; if (_e88) { local_18 = ((in_15.flags & F_SELECTED) != 0u); } else { local_18 = false; } bool _e97 = local_18; if ((SPEC_FACE_FLAGS ? _e97 : false)) { vec3 _e100 = c_4; vec3 _e105 = srgb_to_linear(vec3(1.0, 0.635, 0.0)); c_4 = mix(_e100, _e105, 0.4); } vec3 _e108 = c_4; vec3 _e109 = item_fade(_e108); vec3 _e110 = emerge_tint(_e109, _e18); float _e111 = alpha_3; vec4 _e113 = lit_output(vec4(_e110, _e111)); _fs2p_location0 = _e113; return; } vs_surface_skinnedmain?¶#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(std140) uniform SkinU_block_2Vertex { SkinU _group_1_binding_1_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 12) in uvec4 _p2vs_location12; layout(location = 13) in vec4 _p2vs_location13; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out float _vs2fs_location5; smooth out vec4 _vs2fs_location6; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_13 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_13 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float d_13 = min((e_14.x - abs(l_10.x)), min((e_14.y - abs(l_10.y)), (e_14.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_15 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_15.x); float _e28 = probe_exit(o_7.y, d_14.y, e_15.y); float _e32 = probe_exit(o_7.z, d_14.z, e_15.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_vs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_vs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_vs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_vs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_vs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_vs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_vs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_vs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_vs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_vs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_4 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_4 * nh_1)); float w2_ = (a2_4 / dot(f_4, f_4)); return (((a2_4 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_8 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_4 = mix(21.5473, 25.3245, o_8); float b_3 = mix(3.82987, 3.32435, o_8); float c_37 = mix(0.19823, 0.16801, o_8); float d_15 = mix(-1.9776, -1.27393, o_8); float e_16 = mix(-4.32054, -4.85967, o_8); return (((a_4 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_37)))) + (d_15 * x_3)) + e_16); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_5 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_5, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_7 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_7 * r_7); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_15 = (outside / film); float sin2sq = ((k_15 * k_15) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_ = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_ + ((1.0 - r0_) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_8 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_8, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_8, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_8, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_1 = (_e175 + _e176); c_33 = (base_1 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_8, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_8, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_vs.view_proj; vec4 c_38 = (_e3 * vec4(p_7, 1.0)); vec2 ndc = (c_38.xy / vec2(((c_38.w > 1e-6) ? c_38.w : 1e-6))); return vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } vec4 skin_row(uint k_12, uint r_4) { vec4 _e10 = _group_1_binding_1_vs.rows[((min(k_12, 254u) * 3u) + r_4)]; return _e10; } SkinRows skin_rows(SkinIn s_16) { SkinRows m_2 = SkinRows(vec4(0.0), vec4(0.0), vec4(0.0)); uvec4 j_1 = s_16.joints; vec4 w_3 = s_16.weights; vec4 _e8 = skin_row(j_1.x, 0u); vec4 _e13 = skin_row(j_1.y, 0u); vec4 _e19 = skin_row(j_1.z, 0u); vec4 _e25 = skin_row(j_1.w, 0u); m_2.r0_ = ((((w_3.x * _e8) + (w_3.y * _e13)) + (w_3.z * _e19)) + (w_3.w * _e25)); vec4 _e32 = skin_row(j_1.x, 1u); vec4 _e37 = skin_row(j_1.y, 1u); vec4 _e43 = skin_row(j_1.z, 1u); vec4 _e49 = skin_row(j_1.w, 1u); m_2.r1_ = ((((w_3.x * _e32) + (w_3.y * _e37)) + (w_3.z * _e43)) + (w_3.w * _e49)); vec4 _e56 = skin_row(j_1.x, 2u); vec4 _e61 = skin_row(j_1.y, 2u); vec4 _e67 = skin_row(j_1.z, 2u); vec4 _e73 = skin_row(j_1.w, 2u); m_2.r2_ = ((((w_3.x * _e56) + (w_3.y * _e61)) + (w_3.z * _e67)) + (w_3.w * _e73)); SkinRows _e76 = m_2; return _e76; } VsOut skinned_vertex(VsIn in_29, SkinIn s_17) { VsOut out_10 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); SkinRows _e2 = skin_rows(s_17); vec4 p_9 = vec4(in_29.pos, 1.0); vec4 world_14 = vec4(dot(_e2.r0_, p_9), dot(_e2.r1_, p_9), dot(_e2.r2_, p_9), 1.0); vec3 bx_1 = vec3(_e2.r0_.x, _e2.r1_.x, _e2.r2_.x); vec3 by_1 = vec3(_e2.r0_.y, _e2.r1_.y, _e2.r2_.y); vec3 bz_1 = vec3(_e2.r0_.z, _e2.r1_.z, _e2.r2_.z); float det_1 = dot(bx_1, cross(by_1, bz_1)); bool flip_1 = (det_1 < 0.0); mat3x3 cofactor_1 = mat3x3(cross(by_1, bz_1), cross(bz_1, bx_1), cross(bx_1, by_1)); vec3 n_12 = ((cofactor_1 * in_29.normal) * (flip_1 ? -1.0 : 1.0)); vec3 t_8 = (mat3x3(bx_1, by_1, bz_1) * in_29.tangent.xyz); mat4x4 _e57 = _group_0_binding_0_vs.view_proj; out_10.clip = (_e57 * world_14); out_10.world = world_14.xyz; out_10.normal = normalize(n_12); out_10.uv = in_29.uv; out_10.flags = (in_29.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); uint _e74 = _group_1_binding_0_vs.extra.x; float mirror_2 = ((((_e74 & OBJ_MIRRORED) != 0u) != flip_1) ? -1.0 : 1.0); out_10.tangent = vec4(normalize(t_8), (in_29.tangent.w * mirror_2)); out_10.weight = in_29.weight; out_10.color = vec4(1.0); VsOut _e94 = out_10; return _e94; } void main() { VsIn in_16 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); SkinIn s = SkinIn(_p2vs_location12, _p2vs_location13); VsOut _e2 = skinned_vertex(in_16, s); gl_Position = _e2.clip; _vs2fs_location0 = _e2.world; _vs2fs_location1 = _e2.normal; _vs2fs_location2 = _e2.uv; _vs2fs_location3 = _e2.flags; _vs2fs_location4 = _e2.tangent; _vs2fs_location5 = _e2.weight; _vs2fs_location6 = _e2.color; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_surface_ext_skinnedmain·#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(std140) uniform SkinU_block_2Vertex { SkinU _group_1_binding_1_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 12) in uvec4 _p2vs_location12; layout(location = 13) in vec4 _p2vs_location13; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out float _vs2fs_location5; smooth out vec4 _vs2fs_location6; smooth out vec2 _vs2fs_location7; vec3 srgb_to_linear(vec3 c_5) { vec3 lo = (c_5 / vec3(12.92)); vec3 hi = pow(((c_5 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_5, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_19 = false; bool local_20 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_19 = ((overlays & OV_SEAMS) != 0u); } else { local_19 = false; } bool _e27 = local_19; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_20 = ((overlays & OV_SHARP) != 0u); } else { local_20 = false; } bool _e46 = local_20; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_6) { vec3 lo_1 = (c_6 * 12.92); vec3 hi_1 = ((1.055 * pow(c_6, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_6, vec3(0.0031308))); } vec4 target_color(vec4 c_7) { vec4 k_13 = clamp(c_7, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_13.xyz); return vec4(_e13, k_13.w); } return k_13; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_18) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u)); } vec3 weight_color(float w) { vec3 stops[5] = vec3[5](vec3(0.0, 0.0, 1.0), vec3(0.0, 1.0, 1.0), vec3(0.0, 1.0, 0.0), vec3(1.0, 1.0, 0.0), vec3(1.0, 0.0, 0.0)); if ((w < 0.0)) { vec3 _e7 = srgb_to_linear(vec3(0.0, 0.0, 0.08)); return _e7; } float t_5 = (clamp(w, 0.0, 1.0) * 4.0); int i_11 = min(int(floor(t_5)), 3); float f_1 = (t_5 - float(i_11)); vec3 _e42 = stops[i_11]; vec3 _e46 = stops[(i_11 + 1)]; vec3 _e48 = srgb_to_linear(mix(_e42, _e46, f_1)); return _e48; } vec3 studio(vec3 n, vec3 base) { vec3 c_8 = vec3(0.0); vec3 l1_ = vec3(-0.45112923, 0.5513802, 0.7017566); vec3 l2_ = vec3(0.8451543, 0.16903086, 0.50709254); vec3 l3_ = vec3(0.12674485, -0.88721395, 0.44360697); vec3 v_5 = vec3(0.0, 0.0, 1.0); c_8 = (base * 0.28); vec3 _e21 = c_8; c_8 = (_e21 + ((base * max(dot(n, l1_), 0.0)) * 0.85)); vec3 _e29 = c_8; c_8 = (_e29 + (((base * max(dot(n, l2_), 0.0)) * 0.35) * vec3(0.9, 0.95, 1.05))); vec3 _e42 = c_8; c_8 = (_e42 + ((base * max(dot(n, l3_), 0.0)) * 0.22)); vec3 h_1 = normalize((l1_ + v_5)); vec3 _e52 = c_8; c_8 = (_e52 + ((vec3(1.0) * pow(max(dot(n, h_1), 0.0), 40.0)) * 0.18)); float rim = pow((1.0 - max(dot(n, v_5), 0.0)), 3.0); vec3 _e71 = c_8; c_8 = (_e71 + ((base * rim) * 0.25)); vec3 _e76 = c_8; return _e76; } vec3 matcap(vec3 n_1, uint id) { vec3 c_9 = vec3(0.0); vec3 v_6 = vec3(0.0, 0.0, 1.0); if ((id == 1u)) { vec3 r_5 = reflect(-(v_6), n_1); vec3 sky_2 = mix(vec3(0.55, 0.62, 0.72), vec3(0.18, 0.3, 0.55), clamp(r_5.y, 0.0, 1.0)); vec3 ground = mix(vec3(0.4, 0.36, 0.32), vec3(0.08, 0.07, 0.06), clamp(-(r_5.y), 0.0, 1.0)); c_9 = ((r_5.y >= 0.0) ? sky_2 : ground); vec3 _e42 = c_9; c_9 = (_e42 + ((vec3(0.6) * exp((-(abs(r_5.y)) * 12.0))) * 0.7)); float fres = pow((1.0 - max(dot(n_1, v_6), 0.0)), 4.0); vec3 _e62 = c_9; return ((_e62 * 0.9) + vec3((fres * 0.25))); } if ((id == 2u)) { vec3 _e75 = srgb_to_linear(vec3(0.93, 0.74, 0.62)); vec3 l_8 = vec3(-0.39801487, 0.5970223, 0.696526); float wrap = pow(((dot(n_1, l_8) * 0.5) + 0.5), 1.5); float rim_1 = pow((1.0 - max(dot(n_1, v_6), 0.0)), 3.0); return (((_e75 * (0.25 + (0.75 * wrap))) + ((vec3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((vec3(1.0) * pow(max(dot(n_1, normalize((l_8 + v_6))), 0.0), 24.0)) * 0.12)); } vec3 _e124 = srgb_to_linear(vec3(0.8, 0.62, 0.52)); vec3 l_9 = vec3(-0.39801487, 0.5970223, 0.696526); float d_11 = max(dot(n_1, l_9), 0.0); float spec_1 = (pow(max(dot(n_1, normalize((l_9 + v_6))), 0.0), 30.0) * 0.3); return ((_e124 * (0.22 + (0.78 * d_11))) + vec3(spec_1)); } vec3 hsv(float h, float s_2, float v_1) { vec3 k_14 = ((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) - vec3(6.0) * trunc((vec3(5.0, 3.0, 1.0) + vec3((h / 60.0))) / vec3(6.0))); vec3 f_2 = clamp(min(k_14, (vec3(4.0) - k_14)), vec3(0.0), vec3(1.0)); return (v_1 * (vec3(1.0) - (s_2 * f_2))); } vec2 tex_uv(vec2 uv_2) { return vec2(uv_2.x, (1.0 - uv_2.y)); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light(vec3 n_2, vec3 v_2, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2) { float nl_3 = dot(n_2, l); if ((nl_3 <= 0.0)) { return vec3(0.0); } vec3 h_2 = normalize((l + v_2)); float nh_3 = max(dot(n_2, h_2), 0.0); float vh_3 = max(dot(v_2, h_2), 0.0); float nv_6 = max(dot(n_2, v_2), 0.0001); vec3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); vec3 spec_2 = ((_e24 * _e25) * _e23); return ((((((vec3(1.0) - _e23) * diffuse) / vec3(3.1415927)) + spec_2) * radiance) * nl_3); } vec3 light_specular(vec3 n_3, vec3 v_3, vec3 l_1, vec3 radiance_1, vec3 diffuse_1, vec3 f0_2, float a2_3, float specular) { float nl_4 = dot(n_3, l_1); if ((nl_4 <= 0.0)) { return vec3(0.0); } vec3 h_3 = normalize((l_1 + v_3)); float nh_4 = max(dot(n_3, h_3), 0.0); float vh_4 = max(dot(v_3, h_3), 0.0); float nv_7 = max(dot(n_3, v_3), 0.0001); vec3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); vec3 spec_3 = ((_e25 * _e26) * _e24); return ((((diffuse_1 / vec3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4); } vec3 env(float up) { vec3 c_12 = vec3(0.0); vec3 sky_3 = vec3(0.48, 0.58, 0.78); vec3 ground_1 = vec3(0.26, 0.22, 0.18); c_12 = mix(ground_1, sky_3, clamp(((up * 0.5) + 0.5), 0.0, 1.0)); vec3 _e18 = c_12; c_12 = (_e18 + (vec3(0.22, 0.21, 0.19) * exp((-(abs(up)) * 4.0)))); vec3 _e30 = c_12; return _e30; } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_14, float white) { vec3 x_4 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_14)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_14)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_14))); vec3 t_6 = (((x_4 * (x_4 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_4 * ((0.983729 * x_4) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_6), dot(vec3(-0.10208, 1.10813, -0.00605), t_6), dot(vec3(-0.00327, -0.07276, 1.07602), t_6)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_15) { vec3 v_4 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_4 = (inset * max(c_15, vec3(2e-10))); vec3 _e34 = v_4; v_4 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_4; vec3 _e45 = v_4; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_4; vec3 _e56 = v_4; vec3 _e64 = v_4; vec3 p_8 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_8, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_12 = floor(p_2); vec3 f_3 = fract(p_2); vec3 u = ((f_3 * f_3) * (vec3(3.0) - (2.0 * f_3))); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash((i_12 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_12 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_12 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_12 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_12 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_12 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_12 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_4 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_13 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_4 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_4; n_4 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_4; return (((e_13 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_18, float curve) { return clamp((1.0 - pow(max((1.0 - c_18), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_8) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_8)), (_e17 + dot(_e21.yzw, n_8)), (_e29 + dot(_e33.yzw, n_8))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_9, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_9); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_32 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_32 = (a_3.x >= a_3.z); } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_10 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float d_13 = min((e_14.x - abs(l_10.x)), min((e_14.y - abs(l_10.y)), (e_14.z - abs(l_10.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_7 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_15 = p_6.extents.xyz; float _e24 = probe_exit(o_7.x, d_14.x, e_15.x); float _e28 = probe_exit(o_7.y, d_14.y, e_15.y); float _e32 = probe_exit(o_7.z, d_14.z, e_15.z); float t_7 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_14 * t_7)) - p_6.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_4) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_23) { VsOut out_8 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_vs.model; vec4 world_12 = (_e3 * vec4(in_23.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_vs.view_proj; out_8.clip = (_e12 * world_12); out_8.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_vs.normal; out_8.normal = normalize((_e19 * vec4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = _group_1_binding_0_vs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_vs.model; out_8.tangent = vec4(normalize((_e44 * vec4(in_23.tangent.xyz, 0.0)).xyz), (in_23.tangent.w * mirror)); out_8.weight = in_23.weight; out_8.color = vec4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced(VsIn in_24, InstIn inst_2) { VsOut out_9 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); vec4 p1_ = vec4(in_24.pos, 1.0); vec3 local_50 = vec3(dot(inst_2.row0_, p1_), dot(inst_2.row1_, p1_), dot(inst_2.row2_, p1_)); mat4x4 _e14 = _group_1_binding_0_vs.model; vec4 world_13 = (_e14 * vec4(local_50, 1.0)); vec3 bx = vec3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); vec3 by = vec3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); vec3 bz = vec3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = dot(bx, cross(by, bz)); bool flip = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n_local = ((cofactor * in_24.normal) * (flip ? -1.0 : 1.0)); vec3 t_local = (mat3x3(bx, by, bz) * in_24.tangent.xyz); mat4x4 _e61 = _group_0_binding_0_vs.view_proj; out_9.clip = (_e61 * world_13); out_9.world = world_13.xyz; mat4x4 _e68 = _group_1_binding_0_vs.normal; out_9.normal = normalize((_e68 * vec4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = (in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u)); uint _e85 = _group_1_binding_0_vs.extra.x; float mirror_1 = ((((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); mat4x4 _e97 = _group_1_binding_0_vs.model; out_9.tangent = vec4(normalize((_e97 * vec4(t_local, 0.0)).xyz), (in_24.tangent.w * mirror_1)); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } vec3 scaled_normal(vec3 texel, float scale) { return normalize((((texel * 2.0) - vec3(1.0)) * vec3(scale, scale, 1.0))); } float max3_(vec3 c_32) { return max(c_32.x, max(c_32.y, c_32.z)); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_3, vec3 f90_, float vh_1) { float _e9 = pow5_(clamp((1.0 - vh_1), 0.0, 1.0)); return (f0_3 + ((f90_ - f0_3) * _e9)); } float d_ggx_aniso(float nh_1, float th, float bh, float at_1, float ab) { float a2_4 = (at_1 * ab); vec3 f_4 = vec3((ab * th), (at_1 * bh), (a2_4 * nh_1)); float w2_ = (a2_4 / dot(f_4, f_4)); return (((a2_4 * w2_) * w2_) / PI); } float v_ggx_aniso(float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1) { float gv_1 = (nl_1 * length(vec3((at_2 * tv), (ab_1 * bv), nv_2))); float g_l_1 = (nv_2 * length(vec3((at_2 * tl), (ab_1 * bl), nl_1))); return clamp((0.5 / max((gv_1 + g_l_1), 1e-6)), 0.0, 1.0); } float d_charlie(float alpha_g, float nh_2) { float inv_r = (1.0 / alpha_g); float sin2h = max((1.0 - (nh_2 * nh_2)), 0.0); return (((2.0 + inv_r) * pow(max(sin2h, 1e-7), (inv_r * 0.5))) / 6.2831855); } float charlie_l(float x_3, float alpha_g_1) { float o_8 = ((1.0 - alpha_g_1) * (1.0 - alpha_g_1)); float a_4 = mix(21.5473, 25.3245, o_8); float b_3 = mix(3.82987, 3.32435, o_8); float c_37 = mix(0.19823, 0.16801, o_8); float d_15 = mix(-1.9776, -1.27393, o_8); float e_16 = mix(-4.32054, -4.85967, o_8); return (((a_4 / (1.0 + (b_3 * pow(max(x_3, 1e-6), c_37)))) + (d_15 * x_3)) + e_16); } float lambda_sheen(float cos_theta, float alpha_g_2) { if ((abs(cos_theta) < 0.5)) { float _e5 = charlie_l(cos_theta, alpha_g_2); return exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l((1.0 - cos_theta), alpha_g_2); return exp(((2.0 * _e8) - _e13)); } float v_charlie(float nl_2, float nv_3, float alpha_g_3) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return clamp((1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2))), 0.0, 1.0); } float sheen_albedo(float nv_4, float roughness_3) { float t_3[128] = float[128](1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638); float x_5 = (clamp(sqrt(clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0); float y = (clamp(((roughness_3 - 0.07) / 0.93), 0.0, 1.0) * 7.0); int i_13 = min(int(floor(x_5)), 14); int j = min(int(floor(y)), 6); float fx = (x_5 - float(i_13)); float fy = (y - float(j)); float _e166 = t_3[((j * 16) + i_13)]; float _e173 = t_3[(((j * 16) + i_13) + 1)]; float a_5 = mix(_e166, _e173, fx); float _e181 = t_3[(((j + 1) * 16) + i_13)]; float _e190 = t_3[((((j + 1) * 16) + i_13) + 1)]; float b_4 = mix(_e181, _e190, fx); return mix(a_5, b_4, fy); } vec3 iridescence_sensitivity(float opd, vec3 shift) { vec3 xyz = vec3(0.0); float phase = ((6.2831855 * opd) * 1e-9); vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13); vec3 pos = vec3(1681000.0, 1795300.0, 2208400.0); vec3 vr = vec3(4327800000.0, 9304600000.0, 6612100000.0); xyz = (((val * sqrt((6.2831855 * vr))) * cos(((pos * phase) + shift))) * exp(((-(phase) * phase) * vr))); float _e33 = xyz.x; xyz.x = (_e33 + ((1.644083e-8 * cos(((2239900.0 * phase) + shift.x))) * exp(((-4528200000.0 * phase) * phase)))); vec3 _e47 = xyz; xyz = (_e47 / vec3(1.0685e-7)); mat3x3 xyz_to_rec709_ = mat3x3(vec3(3.2404542, -0.969266, 0.0556434), vec3(-1.5371385, 1.8760108, -0.2040259), vec3(-0.4985314, 0.041556, 1.0572252)); vec3 _e64 = xyz; return (xyz_to_rec709_ * _e64); } vec3 ior_to_f0_(vec3 transmitted, float incident) { vec3 r_7 = ((transmitted - vec3(incident)) / (transmitted + vec3(incident))); return (r_7 * r_7); } vec3 eval_iridescence(float outside, float film_in, float cos1_, float thickness, vec3 f0_4) { vec3 i_10 = vec3(0.0); vec3 cm = vec3(0.0); int m_1 = 1; float film = mix(outside, film_in, smoothstep(0.0, 0.03, thickness)); float k_15 = (outside / film); float sin2sq = ((k_15 * k_15) * (1.0 - (cos1_ * cos1_))); float cos2sq = (1.0 - sin2sq); if ((cos2sq < 0.0)) { return vec3(1.0); } float cos2_ = sqrt(cos2sq); vec3 _e23 = ior_to_f0_(vec3(film), outside); float r0_ = _e23.x; float _e32 = pow5_(clamp((1.0 - cos1_), 0.0, 1.0)); float r12_ = (r0_ + ((1.0 - r0_) * _e32)); float t121_ = (1.0 - r12_); float phi12_ = ((film < outside) ? PI : 0.0); float phi21_ = (PI - phi12_); vec3 sq = sqrt(min((f0_4 + vec3(0.0001)), vec3(0.9999))); vec3 base_ior = ((vec3(1.0) + sq) / (vec3(1.0) - sq)); vec3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(clamp((1.0 - cos2_), 0.0, 1.0)); vec3 r23_ = (_e57 + ((vec3(1.0) - _e57) * _e66)); vec3 phi23_ = mix(vec3(0.0), vec3(3.1415927), lessThan(base_ior, vec3(film))); float opd_1 = (((2.0 * film) * thickness) * cos2_); vec3 phi = (vec3(phi21_) + phi23_); vec3 r123_ = clamp((r12_ * r23_), vec3(1e-5), vec3(0.9999)); vec3 r123s = sqrt(r123_); vec3 rs = (((t121_ * t121_) * r23_) / (vec3(1.0) - r123_)); i_10 = (vec3(r12_) + rs); cm = (rs - vec3(t121_)); bool loop_init = true; while(true) { if (!loop_init) { int _e122 = m_1; m_1 = (_e122 + 1); } loop_init = false; int _e103 = m_1; if ((_e103 <= 2)) { } else { break; } { vec3 _e106 = cm; cm = (_e106 * r123s); vec3 _e108 = i_10; vec3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; vec3 _e118 = iridescence_sensitivity((float(_e112) * opd_1), (float(_e115) * phi)); i_10 = (_e108 + ((_e109 * 2.0) * _e118)); } } vec3 _e124 = i_10; return max(_e124, vec3(0.0)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } vec3 ext_fresnel(ExtCtx e_5, float vh_2) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_5, vec3 radiance_4, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular_1 = vec3(0.0); float dv = 0.0; vec3 diffuse_2 = vec3(0.0); vec3 c_33 = vec3(0.0); float nl_raw = dot(e_6.n, l_5); float nl_5 = max(nl_raw, 0.0); vec3 h_4 = normalize((l_5 + e_6.v)); float nh_5 = max(dot(e_6.n, h_4), 0.0); float vh_5 = max(dot(e_6.v, h_4), 0.0); float nv_8 = e_6.nv; if ((nl_5 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if ((SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false)) { float at_3 = mix(e_6.alpha, 1.0, (e_6.aniso * e_6.aniso)); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, dot(e_6.aniso_t, h_4), dot(e_6.aniso_b, h_4), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_8, dot(e_6.aniso_b, e_6.v), dot(e_6.aniso_t, e_6.v), dot(e_6.aniso_t, l_5), dot(e_6.aniso_b, l_5), at_3, ab_2); dv = (_e48 * _e59); } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_8, e_6.a2_); dv = (_e62 * _e64); } vec3 _e66 = f; float _e67 = dv; specular_1 = (((_e66 * _e67) * nl_5) * (godot ? spec : 1.0)); } vec3 _e75 = f; diffuse_2 = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e75) * e_6.diffuse) / vec3(3.1415927))) * nl_5); if ((SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false)) { vec3 back = (((e_6.dt_color * (1.0 - e_6.metallic)) / vec3(3.1415927)) * max(-(dot(e_6.n_geo, l_5)), 0.0)); vec3 _e109 = diffuse_2; diffuse_2 = mix(_e109, back, e_6.dt); } if ((SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false)) { vec3 lm = normalize((l_5 + ((2.0 * e_6.n) * dot(-(l_5), e_6.n)))); vec3 ht = normalize((lm + e_6.v)); float at2_ = (e_6.trans_alpha * e_6.trans_alpha); vec3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, clamp(dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(clamp(dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(clamp(dot(e_6.n, lm), 0.0, 1.0), nv_8, at2_); vec3 lobe = (((((vec3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation); float through = (((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic)); vec3 _e171 = diffuse_2; diffuse_2 = mix(_e171, (lobe * through), e_6.transmission); } vec3 _e175 = diffuse_2; vec3 _e176 = specular_1; vec3 base_1 = (_e175 + _e176); c_33 = (base_1 * radiance_4); float _e182 = max3_(e_6.sheen); if ((SPEC_SHEEN ? (_e182 > 0.0) : false)) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_8, e_6.sheen_roughness); float scaling = (1.0 - (_e188 * _e190)); vec3 _e194 = c_33; c_33 = (_e194 * scaling); if ((nl_5 > 0.0)) { vec3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_8, e_6.sheen_alpha); c_33 = (_e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4)); } } if ((SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false)) { float ncv = max(dot(e_6.nc, e_6.v), 0.0001); vec3 _e224 = f_schlick90_(vec3(0.04), vec3(1.0), ncv); float fc_2 = _e224.x; vec3 _e226 = c_33; c_33 = (_e226 * (1.0 - (e_6.clearcoat * fc_2))); float ncl = dot(e_6.nc, l_5); if ((ncl > 0.0)) { float nch = max(dot(e_6.nc, h_4), 0.0); vec3 _e244 = f_schlick90_(vec3(0.04), vec3(1.0), vh_5); float fl = _e244.x; vec3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = (_e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0))); } } vec3 _e261 = c_33; return _e261; } vec2 screen_uv_of(vec3 p_7) { mat4x4 _e3 = _group_0_binding_0_vs.view_proj; vec4 c_38 = (_e3 * vec4(p_7, 1.0)); vec2 ndc = (c_38.xy / vec2(((c_38.w > 1e-6) ? c_38.w : 1e-6))); return vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); } vec2 screen_exit_uv(ExtCtx e_8, float ior) { vec3 dir_9 = refract(-(e_8.v), e_8.n, (1.0 / ior)); vec2 _e12 = screen_uv_of((e_8.world + (dir_9 * e_8.thickness))); return _e12; } VsOutExt lm_ext_in(VsOutLm l_7) { VsOutExt e_12 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } vec4 skin_row(uint k_12, uint r_4) { vec4 _e10 = _group_1_binding_1_vs.rows[((min(k_12, 254u) * 3u) + r_4)]; return _e10; } SkinRows skin_rows(SkinIn s_16) { SkinRows m_2 = SkinRows(vec4(0.0), vec4(0.0), vec4(0.0)); uvec4 j_1 = s_16.joints; vec4 w_3 = s_16.weights; vec4 _e8 = skin_row(j_1.x, 0u); vec4 _e13 = skin_row(j_1.y, 0u); vec4 _e19 = skin_row(j_1.z, 0u); vec4 _e25 = skin_row(j_1.w, 0u); m_2.r0_ = ((((w_3.x * _e8) + (w_3.y * _e13)) + (w_3.z * _e19)) + (w_3.w * _e25)); vec4 _e32 = skin_row(j_1.x, 1u); vec4 _e37 = skin_row(j_1.y, 1u); vec4 _e43 = skin_row(j_1.z, 1u); vec4 _e49 = skin_row(j_1.w, 1u); m_2.r1_ = ((((w_3.x * _e32) + (w_3.y * _e37)) + (w_3.z * _e43)) + (w_3.w * _e49)); vec4 _e56 = skin_row(j_1.x, 2u); vec4 _e61 = skin_row(j_1.y, 2u); vec4 _e67 = skin_row(j_1.z, 2u); vec4 _e73 = skin_row(j_1.w, 2u); m_2.r2_ = ((((w_3.x * _e56) + (w_3.y * _e61)) + (w_3.z * _e67)) + (w_3.w * _e73)); SkinRows _e76 = m_2; return _e76; } VsOut skinned_vertex(VsIn in_29, SkinIn s_17) { VsOut out_10 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); SkinRows _e2 = skin_rows(s_17); vec4 p_9 = vec4(in_29.pos, 1.0); vec4 world_14 = vec4(dot(_e2.r0_, p_9), dot(_e2.r1_, p_9), dot(_e2.r2_, p_9), 1.0); vec3 bx_1 = vec3(_e2.r0_.x, _e2.r1_.x, _e2.r2_.x); vec3 by_1 = vec3(_e2.r0_.y, _e2.r1_.y, _e2.r2_.y); vec3 bz_1 = vec3(_e2.r0_.z, _e2.r1_.z, _e2.r2_.z); float det_1 = dot(bx_1, cross(by_1, bz_1)); bool flip_1 = (det_1 < 0.0); mat3x3 cofactor_1 = mat3x3(cross(by_1, bz_1), cross(bz_1, bx_1), cross(bx_1, by_1)); vec3 n_12 = ((cofactor_1 * in_29.normal) * (flip_1 ? -1.0 : 1.0)); vec3 t_8 = (mat3x3(bx_1, by_1, bz_1) * in_29.tangent.xyz); mat4x4 _e57 = _group_0_binding_0_vs.view_proj; out_10.clip = (_e57 * world_14); out_10.world = world_14.xyz; out_10.normal = normalize(n_12); out_10.uv = in_29.uv; out_10.flags = (in_29.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); uint _e74 = _group_1_binding_0_vs.extra.x; float mirror_2 = ((((_e74 & OBJ_MIRRORED) != 0u) != flip_1) ? -1.0 : 1.0); out_10.tangent = vec4(normalize(t_8), (in_29.tangent.w * mirror_2)); out_10.weight = in_29.weight; out_10.color = vec4(1.0); VsOut _e94 = out_10; return _e94; } void main() { VsIn in_17 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); SkinIn s_1 = SkinIn(_p2vs_location12, _p2vs_location13); vec2 uv1_3 = _p2vs_location10; VsOut _e3 = skinned_vertex(in_17, s_1); VsOutExt _e4 = ext_vs_out(_e3, uv1_3); gl_Position = _e4.clip; _vs2fs_location0 = _e4.world; _vs2fs_location1 = _e4.normal; _vs2fs_location2 = _e4.uv; _vs2fs_location3 = _e4.flags; _vs2fs_location4 = _e4.tangent; _vs2fs_location5 = _e4.weight; _vs2fs_location6 = _e4.color; _vs2fs_location7 = _e4.uv1_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  @Ð Ð/ ,@  P        {Ðþ—4ÌhÜ©Z„åŸþhøÁ‰xF¼ÙøÖŠõ¯û ¬Globals_block_0VertexObjectU_block_1VertexSkinU_block_2VertexSkyU_block_2FragmentGlobals_block_0FragmentFogU_block_3FragmentLitU_block_1Fragment _group_3_binding_1_fsDecalU_block_7FragmentProbeU_block_6FragmentFogU_block_8FragmentLitU_block_3FragmentObjectU_block_1FragmentSkyU_block_5FragmentShadowU_block_4Fragment MaterialU_block_2Fragment_group_0_binding_6_fs_group_2_binding_1_fs _group_3_binding_6_fs_group_2_binding_2_fs_group_2_binding_5_fs_group_2_binding_4_fs _group_3_binding_0_fs_group_0_binding_3_fs_group_2_binding_3_fs_group_1_binding_3_fsObjectU_block_0Fragment MaterialU_block_1Fragment_group_1_binding_6_fs _group_2_binding_7_fsDecalU_block_3Fragment _group_3_binding_4_fs vs_surface vs_surfacevs_surface_instancedvs_surface_instancedvs_skyvs_skyfs_skyfs_sky fs_surface fs_surface fs_shadow fs_shadowfs_idfs_idfs_normal_depthfs_normal_depthvs_surface_extvs_surface_extvs_surface_ext_instancedvs_surface_ext_instancedfs_surface_extfs_surface_ext fs_shadow_ext fs_shadow_ext fs_id_ext fs_id_extfs_normal_depth_extfs_normal_depth_ext vs_surface_lm vs_surface_lm fs_surface_lm fs_surface_lmfs_surface_ext_lmfs_surface_ext_lmvs_surface_skinnedvs_surface_skinnedvs_surface_ext_skinnedvs_surface_ext_skinnedß// language: metal2.2 #include #include using metal::uint; struct Globals { metal::float4x4 view; metal::float4x4 proj; metal::float4x4 view_proj; metal::float4 camera_pos; metal::float4 viewport; metal::float4 wire_color; metal::float4 select_color; metal::float4 active_color; metal::float4 grid; metal::uint4 params; metal::float4 fparams; }; struct type_5 { metal::float4 inner[3]; }; struct ObjectU { metal::float4x4 model; metal::float4x4 normal; metal::float4 color; metal::uint4 params; metal::uint4 extra; type_5 gi; metal::uint4 decals; metal::uint4 lights; }; struct type_8 { metal::float4 inner[40]; }; struct type_9 { metal::float4 inner[8]; }; struct MaterialU { metal::float4 base_color; metal::float4 emission; metal::float4 factors; metal::uint4 flags; metal::float4 uv; type_8 xf; type_9 ext; }; struct type_13 { metal::float3 inner[10]; }; struct LightU { metal::float4 color; metal::float4 position; metal::float4 direction; metal::float4 spot; metal::uint4 info; }; struct type_14 { LightU inner[64]; }; struct LitU { metal::uint4 counts; metal::float4 ambient; metal::float4 tone; metal::float4 up; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_horizon; metal::float4 ground_bottom; metal::float4x4 inv_view_proj; metal::uint4 dirs; type_14 lights; }; struct ShadowLightU { metal::float4 params; metal::float4 splits; metal::float4 fade; metal::uint4 info; }; struct ShadowTileU { metal::float4x4 view_proj; metal::float4 rect; metal::float4 texel; }; struct type_15 { ShadowLightU inner[16]; }; struct type_16 { ShadowTileU inner[16]; }; struct ShadowU { metal::float4 atlas; type_15 lights; type_16 tiles; }; struct SunU { metal::float4 direction; metal::float4 color; }; struct type_19 { SunU inner[4]; }; struct type_20 { metal::float4 inner[9]; }; struct SkyU { metal::uint4 flags; metal::float4x4 to_sky; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_bottom; metal::float4 ground_horizon; metal::float4 sun; metal::float4 ambient; metal::float4 ibl; metal::float4 fog_color; metal::float4 fog; metal::float4 fog_depth; metal::float4 fog_origin; type_19 suns; type_20 sh; }; struct ProbeEntryU { metal::float4x4 to_local; metal::float4 extents; metal::float4 offset; metal::float4 ambient; metal::uint4 info; }; struct type_22 { ProbeEntryU inner[8]; }; struct ProbeU { metal::uint4 counts; type_22 probes; }; struct DecalEntryU { metal::float4x4 to_local; metal::float4 modulate; metal::float4 fades; metal::float4 axis_x; metal::float4 axis_y; metal::float4 axis_z; metal::uint4 layers; metal::uint4 flags; }; struct type_23 { DecalEntryU inner[64]; }; struct DecalU { metal::uint4 counts; metal::float4 lod; type_23 entries; }; struct DecalSurface { metal::packed_float3 base; float metallic; float roughness; float occlusion; char _pad4[8]; metal::float3 normal; metal::float3 emission; }; struct VsIn { metal::float3 pos; metal::float3 normal; metal::float2 uv; uint flags; char _pad4[4]; metal::float4 tangent; float weight; char _pad6[12]; }; struct VsOut { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; float weight; char _pad7[12]; metal::float4 color; }; struct InstIn { metal::float4 row0_; metal::float4 row1_; metal::float4 row2_; metal::float4 color; }; struct type_27 { metal::float3 inner[5]; }; struct Samples { metal::float4 base; metal::float3 normal; metal::float4 mr; metal::packed_float3 emission; float occlusion; }; struct FogEntryU { metal::float4x4 to_local; metal::float4 size; metal::float4 material; metal::float4 albedo; metal::float4 emission; metal::uint4 lights; }; struct type_29 { metal::float4 inner[16]; }; struct type_30 { FogEntryU inner[16]; }; struct FogU { metal::uint4 counts; metal::float4 params; metal::float4 ambient; metal::float4 up; type_29 light_fog; type_30 entries; }; struct type_31 { uint inner[4]; }; struct type_32 { metal::float2 inner[4]; }; struct type_33 { metal::float4 inner[4]; }; struct SkyOut { metal::float4 clip; metal::float2 ndc; char _pad2[8]; }; struct type_34 { metal::float2 inner[3]; }; struct IdOut { metal::float4 id; }; struct NormalDepthOut { metal::float4 normal_depth; metal::float4 surface; }; struct VsOutExt { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; float weight; char _pad7[12]; metal::float4 color; metal::float2 uv1_; char _pad9[8]; }; struct ExtSamples { metal::float4 base; metal::packed_float3 normal; float metallic; float roughness; char _pad4[12]; metal::packed_float3 emission; float occlusion; float specular; char _pad7[12]; metal::packed_float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; char _pad12[4]; metal::packed_float3 clearcoat_normal; bool clearcoat_mapped; char _pad14[3]; metal::packed_float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; char _pad19[4]; metal::float2 anisotropy_dir; float diffuse_transmission; char _pad21[4]; metal::float3 diffuse_transmission_color; }; struct type_35 { float inner[128]; }; struct ExtCtx { metal::float3 n; metal::float3 n_geo; metal::float3 nc; metal::float3 v; metal::packed_float3 world; float nv; metal::float3 base; metal::packed_float3 diffuse; float metallic; float roughness; float alpha; float a2_; char _pad12[4]; metal::float3 f0_; metal::packed_float3 f90_; float iridescence; metal::packed_float3 irid_f; float aniso; metal::float3 aniso_t; metal::packed_float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; char _pad22[8]; metal::packed_float3 sheen; float sheen_alpha; float sheen_roughness; float dt; char _pad26[8]; metal::packed_float3 dt_color; float transmission; float trans_alpha; float ior; char _pad30[8]; metal::packed_float3 attenuation; bool thin; char _pad32[3]; float thickness; char _pad33[4]; metal::float2 frag; float dispersion; float occlusion; char _pad36[8]; metal::float3 emission; }; struct VsOutLm { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; float weight; char _pad7[12]; metal::float4 color; metal::float2 uv1_; metal::float2 uv_lm; }; struct type_36 { metal::float4 inner[765]; }; struct SkinU { type_36 rows; }; struct SkinIn { metal::uint4 joints; metal::float4 weights; }; struct SkinRows { metal::float4 r0_; metal::float4 r1_; metal::float4 r2_; }; constant uint OBJ_HAS_WEIGHTS = 1u; constant uint OBJ_MIRRORED = 2u; constant uint SHADE_SOLID = 0u; constant uint SHADE_MATCAP = 1u; constant uint SHADE_NORMALS = 2u; constant uint SHADE_FACE_ORIENT = 3u; constant uint SHADE_RANDOM = 4u; constant uint SHADE_MATERIAL = 5u; constant uint SHADE_UV_CHECKER = 6u; constant uint SHADE_WEIGHTS = 7u; constant uint SHADE_LIT = 8u; constant uint SHADE_LIGHTMAP = 9u; constant uint SHADE_LIGHT_COUNT = 10u; constant uint OV_SELECTION = 1u; constant uint OV_SEAMS = 2u; constant uint OV_SHARP = 4u; constant uint F_SELECTED = 1u; constant uint F_HIDDEN = 2u; constant uint F_SEAM = 4u; constant uint F_SHARP = 8u; constant uint F_MESH = 16u; constant uint F_FADE = 32u; constant uint F_NO_PULL = 64u; constant bool SPEC_TEX_BASE = true; constant bool SPEC_TEX_NORMAL = true; constant bool SPEC_TEX_MR = true; constant bool SPEC_TEX_EMISSION = true; constant bool SPEC_TEX_OCCLUSION = true; constant bool SPEC_VERTEX_COLOR = true; constant bool SPEC_EXT = true; constant bool SPEC_UNLIT = true; constant bool SPEC_ALPHA_MASK = true; constant bool SPEC_ALPHA_BLEND = true; constant bool SPEC_CLEARCOAT = true; constant bool SPEC_SHEEN = true; constant bool SPEC_TRANSMISSION = true; constant bool SPEC_IRIDESCENCE = true; constant bool SPEC_ANISOTROPY = true; constant bool SPEC_DIFFUSE_TRANSMISSION = true; constant bool SPEC_VOLUME = true; constant bool SPEC_DISPERSION = true; constant bool SPEC_EXT_LAYERS = true; constant bool SPEC_ROUGHNESS_LAYER = true; constant bool SPEC_LIT = true; constant bool SPEC_LIGHTS = true; constant bool SPEC_SHADOWS = true; constant bool SPEC_DECALS = true; constant bool SPEC_FOG = true; constant bool SPEC_FOG_VOLUMES = true; constant bool SPEC_PROBES = true; constant bool SPEC_PROBE_GI = true; constant bool SPEC_SSAO = true; constant bool SPEC_SCREEN_REFRACTION = true; constant bool SPEC_EMERGE = true; constant bool SPEC_FADE = true; constant bool SPEC_FACE_FLAGS = true; constant bool SPEC_AMBIENT_FLAT = true; constant bool SPEC_AMBIENT_GRADIENT = true; constant bool SPEC_AMBIENT_SKY = true; constant bool SPEC_MATERIAL_MODE = true; constant bool SPEC_OTHER_MODES = true; constant uint T_BASE = 1u; constant uint T_NORMAL = 2u; constant uint T_METALLIC_ROUGHNESS = 4u; constant uint T_EMISSION = 8u; constant uint T_OCCLUSION = 16u; constant uint MAT_VERTEX_COLOR = 1u; constant uint MAT_VERTEX_COLOR_SRGB = 2u; constant uint MAT_EXT = 4u; constant uint MAT_UNLIT = 8u; constant uint MAT_ROUGHNESS_LAYER = 16u; constant uint MAT_SRGB_BASE = 32u; constant uint MAT_SRGB_EMISSION = 64u; constant uint ALPHA_OPAQUE = 0u; constant uint ALPHA_MASK = 1u; constant uint ALPHA_BLEND = 2u; constant float PI = 3.1415927; constant uint MAX_FRAME_LIGHTS = 64u; constant uint MAX_OBJECT_LIGHTS = 8u; constant uint MAX_SHADOW_LIGHTS = 16u; constant uint MAX_POOL_DIRECTIONAL = 8u; constant type_13 LIGHT_COUNT_COLORS = type_13 {{metal::float3(0.352941, 0.352941, 0.352941), metal::float3(0.168627, 0.247059, 0.6), metal::float3(0.129412, 0.4, 0.67451), metal::float3(0.101961, 0.623529, 0.721569), metal::float3(0.121569, 0.631373, 0.529412), metal::float3(0.301961, 0.733333, 0.352941), metal::float3(0.65098, 0.831373, 0.227451), metal::float3(0.94902, 0.784314, 0.058824), metal::float3(0.94902, 0.556863, 0.058824), metal::float3(0.878431, 0.129412, 0.541176)}}; constant uint LIGHT_DIRECTIONAL = 0u; constant uint LIGHT_OMNI = 1u; constant uint LIGHT_SPOT = 2u; constant uint LIGHT_BAKE_DISABLED = 0u; constant uint LIGHT_BAKE_STATIC = 1u; constant uint LIGHT_BAKE_DYNAMIC = 2u; constant uint TONEMAP_LINEAR = 0u; constant uint TONEMAP_REINHARD = 1u; constant uint TONEMAP_FILMIC = 2u; constant uint TONEMAP_ACES = 3u; constant uint TONEMAP_AGX = 4u; constant uint ENV_SKY = 1u; constant uint ENV_AMBIENT_SKY = 2u; constant uint ENV_SSAO = 4u; constant uint ENV_HDR = 8u; constant uint ENV_SCREEN_REFRACTION = 16u; constant uint LIGHT_SHADOWED = 1u; constant uint LIGHT_BAKED_STATIC = 1u; constant uint SHADOW_TILES = 16u; constant uint SKY_DRAW_PROCEDURAL = 1u; constant uint SKY_DRAW_PANORAMA = 2u; constant uint SKY_PANORAMA_FILTER = 4u; constant uint SKY_IBL = 8u; constant uint SKY_AMBIENT_SKY = 16u; constant uint SKY_REFLECT_RADIANCE = 32u; constant uint SKY_REFLECT_OFF = 64u; constant uint SKY_FOG = 128u; constant uint SKY_FOG_DEPTH = 256u; constant uint SKY_SUNS = 4u; constant uint OBJ_LIGHTMAP = 4u; constant uint OBJ_PROBE_GI = 8u; constant uint PROBE_BOX = 1u; constant uint PROBE_INTERIOR = 2u; constant uint MAX_PROBES = 8u; constant uint PROBE_AMBIENT_DISABLED = 0u; constant uint PROBE_AMBIENT_ENVIRONMENT = 1u; constant uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; constant uint MAX_FRAME_DECALS = 64u; constant uint MAX_OBJECT_DECALS = 8u; constant uint DECAL_LIVE_ALBEDO = 1u; constant uint DECAL_LIVE_NORMAL = 2u; constant uint DECAL_LIVE_ORM = 4u; constant uint DECAL_LIVE_EMISSION = 8u; constant uint F_INSTANCE_MIRRORED = 128u; constant uint OBJ_EMERGE = 32u; constant float EMERGE_SCALE = 1.3; constant float EMERGE_EDGE = 0.8; constant float EMERGE_DITHER = 0.12; constant uint OBJ_FADE = 64u; constant uint MAX_FRAME_FOG_VOLUMES = 16u; constant uint MAX_OBJECT_FOG_VOLUMES = 4u; constant uint FOG_SHAPE_ELLIPSOID = 0u; constant uint FOG_SHAPE_CONE = 1u; constant uint FOG_SHAPE_CYLINDER = 2u; constant uint FOG_SHAPE_BOX = 3u; constant uint FOG_SHAPE_WORLD = 4u; constant float FOG_SKY_DISTANCE = 1000000.0; constant uint FOG_LIST_ALL = 2147483648u; constant float FOG_GL_X0_ = 0.8611363; constant float FOG_GL_X1_ = 0.339981; constant float FOG_GL_W0_ = 0.3478548; constant float FOG_GL_W1_ = 0.6521452; constant uint SLOT_BASE = 0u; constant uint SLOT_METALLIC = 1u; constant uint SLOT_ROUGHNESS = 2u; constant uint SLOT_NORMAL = 3u; constant uint SLOT_OCCLUSION = 4u; constant uint SLOT_EMISSIVE = 5u; constant uint SLOT_CLEARCOAT = 6u; constant uint SLOT_CLEARCOAT_ROUGHNESS = 7u; constant uint SLOT_CLEARCOAT_NORMAL = 8u; constant uint SLOT_SHEEN_COLOR = 9u; constant uint SLOT_SHEEN_ROUGHNESS = 10u; constant uint SLOT_SPECULAR = 11u; constant uint SLOT_SPECULAR_COLOR = 12u; constant uint SLOT_TRANSMISSION = 13u; constant uint SLOT_THICKNESS = 14u; constant uint SLOT_IRIDESCENCE = 15u; constant uint SLOT_IRIDESCENCE_THICKNESS = 16u; constant uint SLOT_ANISOTROPY = 17u; constant uint SLOT_DIFFUSE_TRANSMISSION = 18u; constant uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; constant uint OBJ_SKINNED = 16u; constant uint SKIN_JOINTS = 255u; metal::float3 srgb_to_linear( metal::float3 c_5 ) { metal::float3 lo = c_5 / metal::float3(12.92); metal::float3 hi = metal::pow((c_5 + metal::float3(0.055)) / metal::float3(1.055), metal::float3(2.4)); return metal::select(hi, lo, c_5 <= metal::float3(0.04045)); } metal::float4 element_color( uint flags, metal::float4 fallback, constant Globals& G, constant ObjectU& O ) { bool local_19 = {}; bool local_20 = {}; if ((flags & F_MESH) == 0u) { return fallback; } uint overlays = G.params.y; uint _e13 = O.params.w; bool edit_object = _e13 == 1u; if ((flags & F_SEAM) != 0u) { local_19 = (overlays & OV_SEAMS) != 0u; } else { local_19 = false; } bool _e27 = local_19; if (_e27) { metal::float3 _e32 = srgb_to_linear(metal::float3(0.86, 0.0, 0.0)); return metal::float4(_e32, 1.0); } if ((flags & F_SHARP) != 0u) { local_20 = (overlays & OV_SHARP) != 0u; } else { local_20 = false; } bool _e46 = local_20; if (_e46) { metal::float3 _e51 = srgb_to_linear(metal::float3(0.0, 0.85, 0.9)); return metal::float4(_e51, 1.0); } if ((overlays & OV_SELECTION) != 0u) { if (edit_object) { if ((flags & F_SELECTED) != 0u) { metal::float4 _e64 = G.select_color; return _e64; } metal::float4 _e67 = G.wire_color; return _e67; } uint _e71 = O.params.x; if (_e71 == 1u) { metal::float4 _e76 = G.select_color; metal::float4 _e79 = G.active_color; uint _e83 = O.params.y; return (_e83 == 1u) ? _e79 : _e76; } } metal::float4 _e89 = G.wire_color; return _e89; } metal::float4 to_view( metal::float3 p, float pull, constant Globals& G, constant ObjectU& O ) { metal::float4 v = {}; metal::float4x4 _e4 = G.view; metal::float4x4 _e7 = O.model; v = (_e4 * _e7) * metal::float4(p, 1.0); float _e15 = v.z; v.z = _e15 * (1.0 - pull); metal::float4 _e19 = v; return _e19; } metal::float3 linear_to_srgb( metal::float3 c_6 ) { metal::float3 lo_1 = c_6 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(c_6, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, c_6 <= metal::float3(0.0031308)); } metal::float4 target_color( metal::float4 c_7, constant Globals& G ) { metal::float4 k_13 = metal::clamp(c_7, metal::float4(0.0), metal::float4(1.0)); float _e9 = G.fparams.w; if (_e9 > 0.5) { metal::float3 _e13 = linear_to_srgb(k_13.xyz); return metal::float4(_e13, k_13.w); } return k_13; } uint object_light_count( constant ObjectU& O ) { uint _e3 = O.lights.z; return metal::min(_e3, MAX_OBJECT_LIGHTS); } uint object_light( uint k, constant ObjectU& O ) { uint _e4 = O.lights.y; uint _e8 = O.lights.x; uint word = (k < 4u) ? _e8 : _e4; return metal::min((word >> ((k & 3u) * 8u)) & 255u, 63u); } metal::float3 light_count_color( constant ObjectU& O ) { type_13 colors = LIGHT_COUNT_COLORS; uint _e5 = O.lights.w; metal::float3 _e9 = colors.inner[metal::min(unsigned(metal::min(_e5, 9u)), 9u)]; return _e9; } uint pool_sun_count( constant LitU& Lit ) { uint _e3 = Lit.dirs.z; return metal::min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun( uint k_1, constant LitU& Lit ) { uint _e4 = Lit.dirs.y; uint _e8 = Lit.dirs.x; uint word_1 = (k_1 < 4u) ? _e8 : _e4; return metal::min((word_1 >> ((k_1 & 3u) * 8u)) & 255u, 63u); } uint decal_count( constant ObjectU& O ) { uint _e3 = O.decals.z; return metal::min(_e3, MAX_OBJECT_DECALS); } uint decal_entry( uint k_2, constant ObjectU& O ) { uint _e4 = O.decals.y; uint _e8 = O.decals.x; uint word_2 = (k_2 < 4u) ? _e8 : _e4; return (word_2 >> ((k_2 & 3u) * 8u)) & 255u; } float decal_level( DecalEntryU e, metal::float3 world, constant Globals& G, constant DecalU& Decal ) { float _e5 = Decal.lod.x; metal::float4 _e8 = G.camera_pos; float _e15 = Decal.lod.y; float pixel_1 = _e5 * ((_e15 > 0.5) ? 1.0 : metal::length(world - _e8.xyz)); uint _e24 = Decal.counts.y; float top = static_cast(metal::max(_e24, 1u) - 1u); return metal::clamp(metal::log2(metal::max(pixel_1 / metal::max(e.axis_y.w, 0.000001), 1.0)), 0.0, top); } metal::float4 decal_texel( uint layer, metal::float2 uv, float level, bool live, metal::texture2d_array t_decals, metal::sampler s_decals ) { metal::float4 _e11 = t_decals.sample(s_decals, uv, static_cast(layer - 1u), metal::level(live ? 0.0 : level)); return _e11; } DecalSurface apply_decals( metal::float3 world_1, metal::float3 n_geo, DecalSurface surf, constant Globals& G, constant ObjectU& O, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { DecalSurface out_s = {}; uint k_3 = 0u; bool local_21 = {}; float fade = {}; out_s = surf; uint _e4 = decal_count(O); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { uint _e197 = k_3; k_3 = _e197 + 1u; } loop_init = false; uint _e7 = k_3; if (_e7 < _e4) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11, O); DecalEntryU e_13 = Decal.entries.inner[metal::min(unsigned(metal::min(_e12, 63u)), 63u)]; metal::float3 uvw = (e_13.to_local * metal::float4(world_1, 1.0)).xyz; if (metal::all(uvw >= metal::float3(0.0, -1.0, 0.0))) { local_21 = metal::all(uvw <= metal::float3(1.0)); } else { local_21 = false; } bool _e35 = local_21; if (!(_e35)) { continue; } fade = metal::pow(1.0 - metal::abs(uvw.y), (uvw.y > 0.0) ? e_13.fades.x : e_13.fades.y); if (e_13.fades.z > 0.0) { float _e55 = fade; fade = _e55 * metal::smoothstep(e_13.fades.z, 1.0, (metal::dot(n_geo, e_13.axis_y.xyz) * 0.5) + 0.5); } metal::float2 uv_5 = uvw.xz; float _e69 = decal_level(e_13, world_1, G, Decal); uint live_1 = e_13.flags.x; if (e_13.layers.x > 0u) { metal::float4 _e82 = decal_texel(e_13.layers.x, uv_5, _e69, (live_1 & DECAL_LIVE_ALBEDO) != 0u, t_decals, s_decals); metal::float3 _e84 = srgb_to_linear(_e82.xyz); metal::float4 a_2 = metal::float4(_e84, _e82.w) * e_13.modulate; float _e90 = fade; float alpha_4 = a_2.w * _e90; metal::float3 _e94 = out_s.base; out_s.base = metal::mix(_e94, a_2.xyz, alpha_4 * e_13.fades.w); if (e_13.layers.y > 0u) { metal::float4 _e110 = decal_texel(e_13.layers.y, uv_5, _e69, (live_1 & DECAL_LIVE_NORMAL) != 0u, t_decals, s_decals); float nx = (_e110.x * 2.0) - 1.0; float ny = 1.0 - (_e110.y * 2.0); float nz = metal::sqrt(metal::max(0.0, (1.0 - (nx * nx)) - (ny * ny))); metal::float3 dn = metal::normalize(((e_13.axis_x.xyz * nx) + (e_13.axis_y.xyz * nz)) + (e_13.axis_z.xyz * ny)); metal::float3 _e143 = out_s.normal; out_s.normal = metal::normalize(metal::mix(_e143, dn, alpha_4)); } if (e_13.layers.z > 0u) { metal::float4 _e156 = decal_texel(e_13.layers.z, uv_5, _e69, (live_1 & DECAL_LIVE_ORM) != 0u, t_decals, s_decals); float _e159 = out_s.occlusion; out_s.occlusion = metal::mix(_e159, _e156.x, alpha_4); float _e164 = out_s.roughness; out_s.roughness = metal::mix(_e164, _e156.y, alpha_4); float _e169 = out_s.metallic; out_s.metallic = metal::mix(_e169, _e156.z, alpha_4); } } if (e_13.layers.w > 0u) { metal::float4 _e182 = decal_texel(e_13.layers.w, uv_5, _e69, (live_1 & DECAL_LIVE_EMISSION) != 0u, t_decals, s_decals); metal::float3 _e184 = out_s.emission; metal::float3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = _e184 + (((_e186 * e_13.modulate.xyz) * e_13.axis_x.w) * _e193); } } } float _e201 = out_s.roughness; out_s.roughness = metal::clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = metal::clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } bool mirrored( VsOut in_18, constant ObjectU& O ) { uint _e4 = O.extra.x; return ((_e4 & OBJ_MIRRORED) != 0u) != ((in_18.flags & F_INSTANCE_MIRRORED) != 0u); } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } metal::float3 weight_color( float w ) { type_27 stops = type_27 {{metal::float3(0.0, 0.0, 1.0), metal::float3(0.0, 1.0, 1.0), metal::float3(0.0, 1.0, 0.0), metal::float3(1.0, 1.0, 0.0), metal::float3(1.0, 0.0, 0.0)}}; if (w < 0.0) { metal::float3 _e7 = srgb_to_linear(metal::float3(0.0, 0.0, 0.08)); return _e7; } float t_5 = metal::clamp(w, 0.0, 1.0) * 4.0; int i_11 = metal::min(naga_f2i32(metal::floor(t_5)), 3); float f_1 = t_5 - static_cast(i_11); metal::float3 _e42 = stops.inner[metal::min(unsigned(i_11), 4u)]; metal::float3 _e46 = stops.inner[metal::min(unsigned(as_type(as_type(i_11) + as_type(1))), 4u)]; metal::float3 _e48 = srgb_to_linear(metal::mix(_e42, _e46, f_1)); return _e48; } metal::float3 studio( metal::float3 n, metal::float3 base ) { metal::float3 c_8 = {}; metal::float3 l1_ = metal::float3(-0.45112923, 0.5513802, 0.7017566); metal::float3 l2_ = metal::float3(0.8451543, 0.16903086, 0.50709254); metal::float3 l3_ = metal::float3(0.12674485, -0.88721395, 0.44360697); metal::float3 v_5 = metal::float3(0.0, 0.0, 1.0); c_8 = base * 0.28; metal::float3 _e21 = c_8; c_8 = _e21 + ((base * metal::max(metal::dot(n, l1_), 0.0)) * 0.85); metal::float3 _e29 = c_8; c_8 = _e29 + (((base * metal::max(metal::dot(n, l2_), 0.0)) * 0.35) * metal::float3(0.9, 0.95, 1.05)); metal::float3 _e42 = c_8; c_8 = _e42 + ((base * metal::max(metal::dot(n, l3_), 0.0)) * 0.22); metal::float3 h_1 = metal::normalize(l1_ + v_5); metal::float3 _e52 = c_8; c_8 = _e52 + ((metal::float3(1.0) * metal::pow(metal::max(metal::dot(n, h_1), 0.0), 40.0)) * 0.18); float rim = metal::pow(1.0 - metal::max(metal::dot(n, v_5), 0.0), 3.0); metal::float3 _e71 = c_8; c_8 = _e71 + ((base * rim) * 0.25); metal::float3 _e76 = c_8; return _e76; } metal::float3 matcap( metal::float3 n_1, uint id ) { metal::float3 c_9 = {}; metal::float3 v_6 = metal::float3(0.0, 0.0, 1.0); if (id == 1u) { metal::float3 r_5 = metal::reflect(-(v_6), n_1); metal::float3 sky_2 = metal::mix(metal::float3(0.55, 0.62, 0.72), metal::float3(0.18, 0.3, 0.55), metal::clamp(r_5.y, 0.0, 1.0)); metal::float3 ground = metal::mix(metal::float3(0.4, 0.36, 0.32), metal::float3(0.08, 0.07, 0.06), metal::clamp(-(r_5.y), 0.0, 1.0)); c_9 = (r_5.y >= 0.0) ? sky_2 : ground; metal::float3 _e42 = c_9; c_9 = _e42 + ((metal::float3(0.6) * metal::exp(-(metal::abs(r_5.y)) * 12.0)) * 0.7); float fres = metal::pow(1.0 - metal::max(metal::dot(n_1, v_6), 0.0), 4.0); metal::float3 _e62 = c_9; return (_e62 * 0.9) + metal::float3(fres * 0.25); } if (id == 2u) { metal::float3 _e75 = srgb_to_linear(metal::float3(0.93, 0.74, 0.62)); metal::float3 l_8 = metal::float3(-0.39801487, 0.5970223, 0.696526); float wrap = metal::pow((metal::dot(n_1, l_8) * 0.5) + 0.5, 1.5); float rim_1 = metal::pow(1.0 - metal::max(metal::dot(n_1, v_6), 0.0), 3.0); return ((_e75 * (0.25 + (0.75 * wrap))) + ((metal::float3(0.45, 0.08, 0.05) * rim_1) * 0.5)) + ((metal::float3(1.0) * metal::pow(metal::max(metal::dot(n_1, metal::normalize(l_8 + v_6)), 0.0), 24.0)) * 0.12); } metal::float3 _e124 = srgb_to_linear(metal::float3(0.8, 0.62, 0.52)); metal::float3 l_9 = metal::float3(-0.39801487, 0.5970223, 0.696526); float d_11 = metal::max(metal::dot(n_1, l_9), 0.0); float spec_1 = metal::pow(metal::max(metal::dot(n_1, metal::normalize(l_9 + v_6)), 0.0), 30.0) * 0.3; return (_e124 * (0.22 + (0.78 * d_11))) + metal::float3(spec_1); } metal::float3 hsv( float h, float s_2, float v_1 ) { metal::float3 k_14 = metal::fmod(metal::float3(5.0, 3.0, 1.0) + metal::float3(h / 60.0), metal::float3(6.0)); metal::float3 f_2 = metal::clamp(metal::min(k_14, metal::float3(4.0) - k_14), metal::float3(0.0), metal::float3(1.0)); return v_1 * (metal::float3(1.0) - (s_2 * f_2)); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } uint naga_mod(uint lhs, uint rhs) { return lhs % metal::select(rhs, 1u, rhs == 0u); } metal::float3 checker( metal::float2 uv_1, constant Globals& G ) { metal::float3 c_10 = {}; float s_18 = G.fparams.y; metal::float2 cell = metal::floor(uv_1 * s_18); metal::int2 ci = naga_f2i32(cell); int odd = as_type(as_type(ci.x) + as_type(ci.y)) & 1; uint k_15 = (as_type(ci.x) * 73856093u) ^ (as_type(ci.y) * 19349663u); float hue = static_cast(naga_mod(k_15, 360u)); float value = (odd == 1) ? 0.4 : 0.74; metal::float3 _e31 = hsv(hue, 0.18, value); c_10 = _e31; metal::float2 tile = metal::abs(metal::fract(uv_1) - metal::float2(0.5)); metal::float2 _e38 = metal::fwidth(uv_1); metal::float2 w_1 = (_e38 * 1.0) + metal::float2(0.0001); bool border = metal::any(tile > (metal::float2(0.5) - w_1)); metal::float3 _e49 = c_10; metal::float3 _e50 = c_10; c_10 = border ? (_e50 * 0.35) : _e49; metal::float3 _e54 = c_10; metal::float3 _e55 = srgb_to_linear(_e54); return _e55; } metal::float2 tex_uv( metal::float2 uv_2 ) { return metal::float2(uv_2.x, 1.0 - uv_2.y); } metal::float2 material_uv( metal::float2 uv_3, constant MaterialU& M ) { metal::float2 _e1 = tex_uv(uv_3); metal::float4 _e4 = M.uv; metal::float4 _e9 = M.uv; return (_e1 * _e4.xy) + _e9.zw; } metal::float4 decoded_base( metal::float4 t, constant MaterialU& M ) { uint _e4 = M.flags.w; if ((_e4 & MAT_SRGB_BASE) != 0u) { metal::float3 _e10 = srgb_to_linear(t.xyz); return metal::float4(_e10, t.w); } return t; } metal::float3 decoded_emission( metal::float3 t_1, constant MaterialU& M ) { uint _e4 = M.flags.w; if ((_e4 & MAT_SRGB_EMISSION) != 0u) { metal::float3 _e9 = srgb_to_linear(t_1); return _e9; } return t_1; } Samples sample_material( metal::float2 uv_in, constant MaterialU& M, metal::texture2d t_base, metal::texture2d t_normal, metal::texture2d t_mr, metal::texture2d t_emission, metal::texture2d t_occlusion, metal::sampler s_mat ) { Samples s_3 = {}; metal::float2 _e1 = material_uv(uv_in, M); metal::float4 _e6 = M.base_color; s_3.base = _e6; uint _e11 = M.flags.x; if (SPEC_TEX_BASE ? ((_e11 & T_BASE) != 0u) : false) { metal::float4 _e19 = s_3.base; metal::float4 _e22 = t_base.sample(s_mat, _e1); metal::float4 _e23 = decoded_base(_e22, M); s_3.base = _e19 * _e23; } s_3.normal = metal::float3(0.0, 0.0, 1.0); uint _e34 = M.flags.x; if (SPEC_TEX_NORMAL ? ((_e34 & T_NORMAL) != 0u) : false) { metal::float4 _e44 = t_normal.sample(s_mat, _e1); s_3.normal = metal::normalize((_e44.xyz * 2.0) - metal::float3(1.0)); } s_3.mr = metal::float4(1.0); uint _e59 = M.flags.x; if (SPEC_TEX_MR ? ((_e59 & T_METALLIC_ROUGHNESS) != 0u) : false) { metal::float4 _e69 = t_mr.sample(s_mat, _e1); s_3.mr = _e69; } metal::float4 _e73 = M.emission; s_3.emission = _e73.xyz; uint _e79 = M.flags.x; if (SPEC_TEX_EMISSION ? ((_e79 & T_EMISSION) != 0u) : false) { metal::float3 _e87 = s_3.emission; metal::float4 _e90 = t_emission.sample(s_mat, _e1); metal::float3 _e92 = decoded_emission(_e90.xyz, M); s_3.emission = _e87 * _e92; } s_3.occlusion = 1.0; uint _e100 = M.flags.x; if (SPEC_TEX_OCCLUSION ? ((_e100 & T_OCCLUSION) != 0u) : false) { metal::float4 _e110 = t_occlusion.sample(s_mat, _e1); s_3.occlusion = _e110.x; } Samples _e112 = s_3; return _e112; } Samples surface_samples( VsOut in_19, constant MaterialU& M, metal::texture2d t_base, metal::texture2d t_normal, metal::texture2d t_mr, metal::texture2d t_emission, metal::texture2d t_occlusion, metal::sampler s_mat ) { Samples s_4 = {}; metal::float4 c_11 = {}; Samples _e2 = sample_material(in_19.uv, M, t_base, t_normal, t_mr, t_emission, t_occlusion, s_mat); s_4 = _e2; uint _e8 = M.flags.w; if (SPEC_VERTEX_COLOR ? ((_e8 & MAT_VERTEX_COLOR) != 0u) : false) { c_11 = in_19.color; uint _e20 = M.flags.w; if ((_e20 & MAT_VERTEX_COLOR_SRGB) != 0u) { metal::float4 _e25 = c_11; metal::float3 _e27 = srgb_to_linear(_e25.xyz); float _e29 = c_11.w; c_11 = metal::float4(_e27, _e29); } metal::float4 _e33 = s_4.base; metal::float4 _e34 = c_11; s_4.base = _e33 * _e34; } Samples _e36 = s_4; return _e36; } float d_ggx( float nh, float a2_ ) { float d_12 = ((nh * nh) * (a2_ - 1.0)) + 1.0; return a2_ / ((PI * d_12) * d_12); } float v_smith( float nl, float nv, float a2_1 ) { float gv = nl * metal::sqrt(((nv * nv) * (1.0 - a2_1)) + a2_1); float g_l = nv * metal::sqrt(((nl * nl) * (1.0 - a2_1)) + a2_1); return 0.5 / metal::max(gv + g_l, 0.0001); } metal::float3 f_schlick( metal::float3 f0_, float vh ) { return f0_ + ((metal::float3(1.0) - f0_) * metal::pow(1.0 - vh, 5.0)); } metal::float3 light( metal::float3 n_2, metal::float3 v_2, metal::float3 l, metal::float3 radiance, metal::float3 diffuse, metal::float3 f0_1, float a2_2 ) { float nl_3 = metal::dot(n_2, l); if (nl_3 <= 0.0) { return metal::float3(0.0); } metal::float3 h_2 = metal::normalize(l + v_2); float nh_3 = metal::max(metal::dot(n_2, h_2), 0.0); float vh_3 = metal::max(metal::dot(v_2, h_2), 0.0); float nv_6 = metal::max(metal::dot(n_2, v_2), 0.0001); metal::float3 _e23 = f_schlick(f0_1, vh_3); float _e24 = d_ggx(nh_3, a2_2); float _e25 = v_smith(nl_3, nv_6, a2_2); metal::float3 spec_2 = (_e24 * _e25) * _e23; return (((((metal::float3(1.0) - _e23) * diffuse) / metal::float3(3.1415927)) + spec_2) * radiance) * nl_3; } metal::float3 light_specular( metal::float3 n_3, metal::float3 v_3, metal::float3 l_1, metal::float3 radiance_1, metal::float3 diffuse_1, metal::float3 f0_2, float a2_3, float specular ) { float nl_4 = metal::dot(n_3, l_1); if (nl_4 <= 0.0) { return metal::float3(0.0); } metal::float3 h_3 = metal::normalize(l_1 + v_3); float nh_4 = metal::max(metal::dot(n_3, h_3), 0.0); float vh_4 = metal::max(metal::dot(v_3, h_3), 0.0); float nv_7 = metal::max(metal::dot(n_3, v_3), 0.0001); metal::float3 _e24 = f_schlick(f0_2, vh_4); float _e25 = d_ggx(nh_4, a2_3); float _e26 = v_smith(nl_4, nv_7, a2_3); metal::float3 spec_3 = (_e25 * _e26) * _e24; return (((diffuse_1 / metal::float3(3.1415927)) + (spec_3 * specular)) * radiance_1) * nl_4; } metal::float3 env( float up ) { metal::float3 c_12 = {}; metal::float3 sky_3 = metal::float3(0.48, 0.58, 0.78); metal::float3 ground_1 = metal::float3(0.26, 0.22, 0.18); c_12 = metal::mix(ground_1, sky_3, metal::clamp((up * 0.5) + 0.5, 0.0, 1.0)); metal::float3 _e18 = c_12; c_12 = _e18 + (metal::float3(0.22, 0.21, 0.19) * metal::exp(-(metal::abs(up)) * 4.0)); metal::float3 _e30 = c_12; return _e30; } metal::float3 pbr( VsOut in_20, bool front, Samples s_5, constant Globals& G, constant MaterialU& M ) { metal::float3 n_w = {}; metal::float3 t_w = {}; metal::float3 c_13 = metal::float3(0.0); float _e6 = M.factors.x; float metallic_1 = metal::clamp(_e6 * s_5.mr.z, 0.0, 1.0); float _e16 = M.factors.y; float roughness_7 = metal::clamp(_e16 * s_5.mr.y, 0.045, 1.0); float a2_4 = ((roughness_7 * roughness_7) * roughness_7) * roughness_7; metal::float3 base_1 = s_5.base.xyz; metal::float3 diffuse_4 = base_1 * (1.0 - metallic_1); metal::float3 f0_6 = metal::mix(metal::float3(0.04), base_1, metallic_1); n_w = front ? metal::normalize(in_20.normal) : -(metal::normalize(in_20.normal)); uint _e45 = M.flags.x; if (SPEC_TEX_NORMAL ? ((_e45 & T_NORMAL) != 0u) : false) { t_w = in_20.tangent.xyz; metal::float3 _e55 = t_w; metal::float3 _e56 = n_w; metal::float3 _e57 = n_w; metal::float3 _e58 = t_w; t_w = metal::normalize(_e55 - (_e56 * metal::dot(_e57, _e58))); metal::float3 _e63 = n_w; metal::float3 _e64 = t_w; metal::float3 b_w = metal::cross(_e63, _e64) * in_20.tangent.w; metal::float3 _e69 = t_w; metal::float3 _e77 = n_w; n_w = metal::normalize(((_e69 * s_5.normal.x) + (b_w * s_5.normal.y)) + (_e77 * s_5.normal.z)); } metal::float4x4 _e85 = G.view; metal::float3 _e86 = n_w; metal::float3 n_12 = metal::normalize((_e85 * metal::float4(_e86, 0.0)).xyz); metal::float4x4 _e94 = G.view; metal::float3 pos_v = (_e94 * metal::float4(in_20.world, 1.0)).xyz; float _e109 = G.camera_pos.w; metal::float3 v_7 = (_e109 > 0.5) ? metal::float3(0.0, 0.0, 1.0) : metal::normalize(-(pos_v)); metal::float4x4 _e115 = G.view; metal::float3 up_1 = metal::normalize((_e115 * metal::float4(0.0, 0.0, 1.0, 0.0)).xyz); metal::float3 _e127 = c_13; metal::float3 _e136 = light(n_12, v_7, metal::float3(-0.45112923, 0.5513802, 0.7017566), metal::float3(2.6, 2.522, 2.392), diffuse_4, f0_6, a2_4); c_13 = _e127 + _e136; metal::float3 _e138 = c_13; metal::float3 _e147 = light(n_12, v_7, metal::float3(0.8451543, 0.16903086, 0.50709254), metal::float3(0.765, 0.80999994, 0.9), diffuse_4, f0_6, a2_4); c_13 = _e138 + _e147; metal::float3 _e149 = c_13; metal::float3 _e158 = light(n_12, v_7, metal::float3(0.34583426, 0.63402945, -0.6916685), metal::float3(1.3, 1.3, 1.3), diffuse_4, f0_6, a2_4); c_13 = _e149 + _e158; float nv_8 = metal::max(metal::dot(n_12, v_7), 0.0001); metal::float3 r_6 = metal::reflect(-(v_7), n_12); metal::float3 _e166 = env(metal::dot(n_12, up_1)); metal::float3 irradiance = _e166 * 0.8; metal::float3 _e170 = env(metal::dot(r_6, up_1)); metal::float3 _e172 = env(0.0); metal::float3 blurred = metal::mix(_e170, _e172 * 0.85, roughness_7); metal::float3 f_amb = f0_6 + ((metal::max(metal::float3(1.0 - roughness_7), f0_6) - f0_6) * metal::pow(1.0 - nv_8, 5.0)); metal::float3 ambient_1 = (diffuse_4 * irradiance) + ((blurred * f_amb) * (1.0 - (0.5 * roughness_7))); metal::float3 _e195 = c_13; c_13 = _e195 + (ambient_1 * s_5.occlusion); metal::float3 _e199 = c_13; c_13 = _e199 + s_5.emission; metal::float3 _e202 = c_13; return _e202; } metal::float3 sky( metal::float3 dir, constant LitU& Lit ) { metal::float4 _e4 = Lit.up; float a_3 = metal::acos(metal::clamp(metal::dot(metal::normalize(dir), _e4.xyz), -1.0, 1.0)); if (a_3 <= 1.5707964) { float c_37 = 1.0 - (a_3 / 1.5707964); float k_16 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_37, 0.000001), 6.6666665), 0.0, 1.0); metal::float4 _e30 = Lit.sky_horizon; metal::float4 _e34 = Lit.sky_top; return metal::mix(_e30.xyz, _e34.xyz, k_16); } float c_38 = (a_3 - 1.5707964) / 1.5707964; float k_17 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_38, 0.000001), 50.0), 0.0, 1.0); metal::float4 _e54 = Lit.ground_horizon; metal::float4 _e58 = Lit.ground_bottom; return metal::mix(_e54.xyz, _e58.xyz, k_17); } metal::float3 filmic_curve( metal::float3 x ) { return (((x * ((0.88 * x) + metal::float3(0.1 * 0.6))) + metal::float3(0.2 * 0.01)) / ((x * ((0.88 * x) + metal::float3(0.6))) + metal::float3(0.2 * 0.3))) - metal::float3(0.01 / 0.3); } metal::float3 aces_curve( metal::float3 c_14, float white ) { metal::float3 x_4 = metal::float3(1.8 * metal::dot(metal::float3(0.59719, 0.35458, 0.04823), c_14), 1.8 * metal::dot(metal::float3(0.076, 0.90834, 0.01566), c_14), 1.8 * metal::dot(metal::float3(0.0284, 0.13383, 0.83777), c_14)); metal::float3 t_6 = ((x_4 * (x_4 + metal::float3(0.0245786))) - metal::float3(0.000090537)) / ((x_4 * ((0.983729 * x_4) + metal::float3(0.432951))) + metal::float3(0.238081)); metal::float3 o_6 = metal::float3(metal::dot(metal::float3(1.60475, -0.53108, -0.07367), t_6), metal::dot(metal::float3(-0.10208, 1.10813, -0.00605), t_6), metal::dot(metal::float3(-0.00327, -0.07276, 1.07602), t_6)); float w_2 = 1.8 * white; float wt = ((w_2 * (w_2 + 0.0245786)) - 0.000090537) / ((w_2 * ((0.983729 * w_2) + 0.432951)) + 0.238081); return o_6 / metal::float3(wt); } metal::float3 agx_curve( metal::float3 c_15 ) { metal::float3 v_4 = {}; metal::float3x3 inset = metal::float3x3(metal::float3(0.54490817, 0.14044006, 0.08882741), metal::float3(0.37377945, 0.7541096, 0.17887713), metal::float3(0.08138498, 0.10543358, 0.73225)); metal::float3x3 outset = metal::float3x3(metal::float3(1.964551, -0.29932243, -0.16436833), metal::float3(-0.85585845, 1.3264511, -0.23822464), metal::float3(-0.10886711, -0.02708402, 1.4026654)); v_4 = inset * metal::max(c_15, metal::float3(0.0000000002)); metal::float3 _e34 = v_4; v_4 = (metal::clamp(metal::log2(_e34), metal::float3(-12.473931), metal::float3(4.0260687)) - metal::float3(-12.473931)) / metal::float3(4.0260687 - -12.473931); metal::float3 _e44 = v_4; metal::float3 _e45 = v_4; metal::float3 x2_ = _e44 * _e45; metal::float3 x4_ = x2_ * x2_; metal::float3 _e48 = v_4; metal::float3 _e56 = v_4; metal::float3 _e64 = v_4; metal::float3 p_8 = (((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_); return outset * metal::pow(metal::max(p_8, metal::float3(0.0000000001)), metal::float3(2.4)); } metal::float3 tonemap( metal::float3 c_in, constant LitU& Lit ) { float _e4 = Lit.tone.x; metal::float3 c_39 = metal::max(c_in * _e4, metal::float3(0.0)); float white_1 = Lit.tone.y; uint mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return ((white_1 * c_39) + c_39) / ((c_39 * white_1) + metal::float3(white_1)); } if (mode == TONEMAP_FILMIC) { metal::float3 _e27 = filmic_curve(c_39); metal::float3 _e29 = filmic_curve(metal::float3(white_1)); return _e27 / _e29; } if (mode == TONEMAP_ACES) { metal::float3 _e33 = aces_curve(c_39, white_1); return _e33; } if (mode == TONEMAP_AGX) { metal::float3 _e36 = agx_curve(c_39); return _e36; } return c_39; } float emerge_hash( metal::float3 p_1 ) { metal::float3 q = {}; q = metal::fract(p_1 * 0.1031); metal::float3 _e5 = q; metal::float3 _e6 = q; metal::float3 _e7 = q; q = _e5 + metal::float3(metal::dot(_e6, _e7.zyx + metal::float3(31.32))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return metal::fract((_e16 + _e18) * _e21); } float emerge_noise( metal::float3 p_2 ) { metal::float3 i_12 = metal::floor(p_2); metal::float3 f_3 = metal::fract(p_2); metal::float3 u = (f_3 * f_3) * (metal::float3(3.0) - (2.0 * f_3)); float _e10 = emerge_hash(i_12); float _e16 = emerge_hash(i_12 + metal::float3(1.0, 0.0, 0.0)); float _e24 = emerge_hash(i_12 + metal::float3(0.0, 1.0, 0.0)); float _e30 = emerge_hash(i_12 + metal::float3(1.0, 1.0, 0.0)); float a_4 = metal::mix(metal::mix(_e10, _e16, u.x), metal::mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash(i_12 + metal::float3(0.0, 0.0, 1.0)); float _e46 = emerge_hash(i_12 + metal::float3(1.0, 0.0, 1.0)); float _e54 = emerge_hash(i_12 + metal::float3(0.0, 1.0, 1.0)); float _e60 = emerge_hash(i_12 + metal::float3(1.0, 1.0, 1.0)); float b_2 = metal::mix(metal::mix(_e40, _e46, u.x), metal::mix(_e54, _e60, u.x), u.y); return metal::mix(a_4, b_2, u.z); } float emerge_reveal( metal::float3 world_2, metal::float2 pixel, constant ObjectU& O ) { float n_4 = {}; uint _e6 = O.extra.x; if (SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true) { return 1.0; } float e_14 = O.normal[0].w; metal::float3 w_3 = world_2 * EMERGE_SCALE; float _e21 = emerge_noise(w_3); float _e29 = emerge_noise((w_3 * 2.7) + metal::float3(17.1)); n_4 = metal::smoothstep(0.2, 0.8, (_e21 * 0.65) + (_e29 * 0.35)); if (pixel.x >= 0.0) { float ign = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(pixel), metal::float2(0.06711056, 0.00583715)))); float _e49 = n_4; n_4 = metal::clamp(_e49 + ((ign - 0.5) * EMERGE_DITHER), 0.0, 1.0); } float _e60 = n_4; return ((e_14 * 1.8) - _e60) / EMERGE_EDGE; } metal::float3 emerge_tint( metal::float3 c_16, float r, constant ObjectU& O, constant LitU& Lit ) { bool local_22 = {}; uint _e6 = O.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_22 = r >= 1.0; } else { local_22 = true; } bool _e17 = local_22; if (SPEC_EMERGE ? _e17 : true) { return c_16; } uint _e23 = O.extra.w; metal::float3 _e26 = srgb_to_linear(metal::unpack_unorm4x8_to_float(_e23).xyz); metal::float3 _e27 = tonemap(_e26, Lit); return metal::mix(_e27, c_16, metal::smoothstep(0.0, 1.0, r)); } metal::float3 item_fade( metal::float3 c_17, constant ObjectU& O, constant LitU& Lit ) { uint _e5 = O.extra.x; if (SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true) { return c_17; } metal::float4 f_4 = O.normal[3]; metal::float3 _e17 = tonemap(f_4.xyz, Lit); return metal::mix(c_17, _e17, f_4.w); } metal::float3 sky_dir( metal::float3 d, constant SkyU& Sky ) { metal::float4x4 _e3 = Sky.to_sky; return metal::normalize((_e3 * metal::float4(d, 0.0)).xyz); } float sky_curve( float c_18, float curve ) { return metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_18, 0.000001), 1.0 / curve), 0.0, 1.0); } metal::float3 procedural_sky( metal::float3 d_1, constant SkyU& Sky ) { metal::float3 sky_1 = {}; uint i = 0u; float v_8 = metal::acos(metal::clamp(d_1.y, -1.0, 1.0)); metal::float4 _e8 = Sky.sky_horizon; metal::float4 _e12 = Sky.sky_top; float _e21 = Sky.sky_top.w; float _e22 = sky_curve(1.0 - (v_8 / 1.5707964), _e21); float _e27 = Sky.sky_horizon.w; sky_1 = metal::mix(_e8.xyz, _e12.xyz, _e22) * _e27; uint _e33 = Sky.flags.z; uint suns = metal::min(_e33, SKY_SUNS); uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { uint _e79 = i; i = _e79 + 1u; } loop_init_1 = false; uint _e38 = i; if (_e38 < suns) { } else { break; } { uint _e42 = i; SunU sun = Sky.suns.inner[metal::min(unsigned(_e42), 3u)]; float size = sun.direction.w; float a_5 = metal::acos(metal::clamp(metal::dot(sun.direction.xyz, d_1), -1.0, 1.0)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { float _e60 = Sky.sun.x; if (a_5 < _e60) { float _e66 = Sky.sun.x; float c2_ = (a_5 - size) / (_e66 - size); metal::float3 _e71 = sky_1; float _e75 = Sky.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = metal::mix(sun.color.xyz, _e71, _e76); } } } } metal::float4 _e83 = Sky.ground_horizon; metal::float4 _e87 = Sky.ground_bottom; float _e96 = Sky.ground_bottom.w; float _e97 = sky_curve((v_8 - 1.5707964) / 1.5707964, _e96); float _e102 = Sky.ground_horizon.w; metal::float3 ground_2 = metal::mix(_e83.xyz, _e87.xyz, _e97) * _e102; metal::float3 _e104 = sky_1; float _e112 = Sky.sun.z; return ((d_1.y >= 0.0) ? _e104 : ground_2) * _e112; } int naga_mod(int lhs, int rhs) { int divisor = metal::select(rhs, 1, (lhs == (-2147483647 - 1) & rhs == -1) | (rhs == 0)); return lhs - (lhs / divisor) * divisor; } metal::float3 panorama( metal::float3 d_2, constant SkyU& Sky, metal::texture2d t_panorama, metal::sampler s_panorama ) { metal::float2 uv_6 = metal::float2(metal::fract(metal::atan2(d_2.x, -(d_2.z)) / 6.2831855), metal::acos(metal::clamp(d_2.y, -1.0, 1.0)) / PI); uint _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { metal::float4 _e27 = t_panorama.sample(s_panorama, uv_6, metal::level(0.0)); float _e32 = Sky.sun.z; return _e27.xyz * _e32; } metal::int2 size_1 = static_cast(metal::uint2(t_panorama.get_width(0), t_panorama.get_height(0))); int x_5 = naga_mod(as_type(as_type(naga_mod(naga_f2i32(metal::floor(uv_6.x * static_cast(size_1.x))), size_1.x)) + as_type(size_1.x)), size_1.x); int y = metal::clamp(naga_f2i32(metal::floor(uv_6.y * static_cast(size_1.y))), 0, as_type(as_type(size_1.y) - as_type(1))); uint clamped_lod_e64 = metal::min(uint(0), t_panorama.get_num_mip_levels() - 1); metal::float4 _e64 = t_panorama.read(metal::min(metal::uint2(metal::int2(x_5, y)), metal::uint2(t_panorama.get_width(clamped_lod_e64), t_panorama.get_height(clamped_lod_e64)) - 1), clamped_lod_e64); float _e69 = Sky.sun.z; return _e64.xyz * _e69; } metal::float3 sh_irradiance( metal::float3 n_5, constant SkyU& Sky ) { metal::float3 c_19 = {}; metal::float4 _e4 = Sky.sh.inner[0]; c_19 = _e4.xyz * 0.282095; metal::float3 _e9 = c_19; metal::float4 _e13 = Sky.sh.inner[1]; c_19 = _e9 + (_e13.xyz * (0.488603 * n_5.y)); metal::float3 _e20 = c_19; metal::float4 _e24 = Sky.sh.inner[2]; c_19 = _e20 + (_e24.xyz * (0.488603 * n_5.z)); metal::float3 _e31 = c_19; metal::float4 _e35 = Sky.sh.inner[3]; c_19 = _e31 + (_e35.xyz * (0.488603 * n_5.x)); metal::float3 _e42 = c_19; metal::float4 _e46 = Sky.sh.inner[4]; c_19 = _e42 + (_e46.xyz * ((1.092548 * n_5.x) * n_5.y)); metal::float3 _e55 = c_19; metal::float4 _e59 = Sky.sh.inner[5]; c_19 = _e55 + (_e59.xyz * ((1.092548 * n_5.y) * n_5.z)); metal::float3 _e68 = c_19; metal::float4 _e72 = Sky.sh.inner[6]; c_19 = _e68 + (_e72.xyz * (0.315392 * (((3.0 * n_5.z) * n_5.z) - 1.0))); metal::float3 _e85 = c_19; metal::float4 _e89 = Sky.sh.inner[7]; c_19 = _e85 + (_e89.xyz * ((1.092548 * n_5.x) * n_5.z)); metal::float3 _e98 = c_19; metal::float4 _e102 = Sky.sh.inner[8]; c_19 = _e98 + (_e102.xyz * (0.546274 * ((n_5.x * n_5.x) - (n_5.y * n_5.y)))); metal::float3 _e115 = c_19; return metal::max(_e115, metal::float3(0.0)); } metal::float3 radiance_2( metal::float3 d_3, float roughness, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { uint _e5 = Sky.flags.y; float top_1 = static_cast(metal::max(_e5, 1u) - 1u); metal::float4 _e14 = t_radiance.sample(s_radiance, d_3, metal::level(roughness * top_1)); return _e14.xyz; } metal::float2 env_brdf_approx( float roughness_1, float nv_1 ) { metal::float4 r_7 = (roughness_1 * metal::float4(-1.0, -0.0275, -0.572, 0.022)) + metal::float4(1.0, 0.0425, 1.04, -0.04); float a004_ = (metal::min(r_7.x * r_7.x, metal::exp2(-9.28 * nv_1)) * r_7.x) + r_7.y; return (metal::float2(-1.04, 1.04) * a004_) + r_7.zw; } float pow8_( float x_1 ) { float x2_1 = metal::max(x_1, 0.0) * metal::max(x_1, 0.0); float x4_1 = x2_1 * x2_1; return x4_1 * x4_1; } metal::float3 fog_sun_scatter( metal::float3 fc, metal::float3 dir_1, constant LitU& Lit, constant SkyU& Sky ) { metal::float3 c_20 = {}; uint k_4 = 0u; c_20 = fc; float _e6 = Sky.fog_color.w; if (_e6 > 0.001) { uint _e9 = pool_sun_count(Lit); uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { uint _e51 = k_4; k_4 = _e51 + 1u; } loop_init_2 = false; uint _e12 = k_4; if (_e12 < _e9) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14, Lit); uint _e21 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].info.x; if (_e21 == LIGHT_DIRECTIONAL) { metal::float3 _e24 = c_20; metal::float4 _e29 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].color; metal::float4 _e38 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].direction; float _e42 = pow8_(metal::dot(dir_1, -(_e38.xyz))); float _e47 = Sky.fog_color.w; c_20 = _e24 + (((_e29.xyz / metal::float3(3.1415927)) * _e42) * _e47); } } } } metal::float3 _e53 = c_20; return _e53; } metal::float3 sky_fog( metal::float3 c_21, metal::float3 dir_2, constant LitU& Lit, constant SkyU& Sky ) { metal::float4 _e4 = Sky.fog_color; float _e9 = Sky.fog_depth.w; metal::float3 _e11 = fog_sun_scatter(metal::mix(_e4.xyz, c_21, _e9), dir_2, Lit, Sky); float _e15 = Sky.fog.y; return metal::mix(c_21, _e11, _e15); } metal::float3 surface_fog( metal::float3 c_22, metal::float3 world_3, metal::float3 dir_3, constant Globals& G, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { float dist = {}; float amount = {}; metal::float3 fc_1 = {}; bool local_23 = {}; metal::float4x4 _e5 = G.view; float depth = -((_e5 * metal::float4(world_3, 1.0)).z); metal::float4 _e13 = G.camera_pos; dist = metal::distance(world_3, _e13.xyz); float _e20 = Sky.fog_origin.w; if (_e20 > 0.5) { float _e26 = Sky.fog_origin.x; dist = metal::max(depth - _e26, 0.0); } uint _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { float _e42 = Sky.fog_depth.x; float _e46 = Sky.fog_depth.y; float _e47 = dist; float z = metal::smoothstep(_e42, _e46, _e47); float _e54 = Sky.fog_depth.z; float _e63 = Sky.fog.x; amount = ((z > 0.0) ? metal::pow(metal::max(z, 0.000001), _e54) : 0.0) * _e63; } else { float _e65 = dist; float _e70 = Sky.fog.x; amount = 1.0 - metal::exp(metal::min(0.0, -(_e65) * _e70)); } float _e80 = Sky.fog.w; if (metal::abs(_e80) >= 0.0001) { metal::float4 _e86 = Lit.up; float y_1 = metal::dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = Sky.fog.z; float _e98 = Sky.fog.w; amount = metal::max(_e89, 1.0 - metal::exp(metal::min(0.0, (y_1 - _e93) * _e98))); } float _e106 = amount; amount = metal::clamp(_e106, 0.0, 1.0); metal::float4 _e112 = Sky.fog_color; fc_1 = _e112.xyz; uint _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { float _e129 = Sky.fog_depth.w; local_23 = _e129 > 0.0; } else { local_23 = false; } bool _e133 = local_23; if (SPEC_AMBIENT_SKY ? _e133 : false) { float _e139 = Sky.fog_origin.y; float _e144 = Sky.fog_origin.z; float _e148 = Sky.fog_origin.y; float t_7 = metal::clamp((depth - _e139) / metal::max(_e144 - _e148, 0.000001), 0.0, 1.0); uint _e159 = Sky.flags.y; float top_2 = static_cast(metal::max(_e159, 2u) - 1u); float rough_2 = metal::mix(1.0 / top_2, 1.0, 1.0 - t_7); metal::float3 _e171 = fc_1; metal::float3 _e172 = sky_dir(dir_3, Sky); metal::float3 _e173 = radiance_2(_e172, rough_2, Sky, t_radiance, s_radiance); float _e177 = Sky.sun.w; float _e182 = Sky.fog_depth.w; fc_1 = metal::mix(_e171, _e173 * _e177, _e182); } metal::float3 _e184 = fc_1; metal::float3 _e185 = fog_sun_scatter(_e184, dir_3, Lit, Sky); fc_1 = _e185; metal::float3 _e186 = fc_1; float _e187 = amount; return metal::mix(c_22, _e186, _e187); } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::float2 fog_chord( uint k_5, metal::float3 o, metal::float3 d_4, float t_end_ray, constant FogU& Fog ) { metal::float2 r_1 = {}; float a = 0.0; float b = 0.0; float c_23 = -1.0; float _e9 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].albedo.w; uint shape = naga_f2u32(_e9); float _e16 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].emission.w; float t_end_1 = metal::min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return metal::float2(0.0, t_end_1); } metal::float4 _e26 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].size; metal::float3 h_4 = _e26.xyz * 0.5; metal::float3 dd = metal::select(d_4, metal::float3(0.000000000001), metal::abs(d_4) < metal::float3(0.000000000001)); metal::float3 sa = (-(h_4) - o) / dd; metal::float3 sb = (h_4 - o) / dd; metal::float3 s_in = metal::min(sa, sb); metal::float3 s_out = metal::max(sa, sb); r_1 = metal::float2(metal::max(0.0, s_in.y), metal::min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = metal::float2(metal::max(metal::max(_e60, s_in.x), s_in.z), metal::min(metal::min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = metal::dot(d_4 / h_4, d_4 / h_4); b = metal::dot(o / h_4, d_4 / h_4); c_23 = metal::dot(o / h_4, o / h_4) - 1.0; } else { float rad_1 = metal::min(h_4.x, h_4.z); float k_18 = (shape == FOG_SHAPE_CONE) ? (rad_1 / (2.0 * h_4.y)) : 0.0; float w_4 = h_4.y - o.y; a = ((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_18 * k_18) * d_4.y) * d_4.y); b = ((o.x * d_4.x) + (o.z * d_4.z)) + (((k_18 * k_18) * w_4) * d_4.y); c_23 = ((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_18 * k_18) * w_4) * w_4) : (rad_1 * rad_1)); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_23; float disc = (_e139 * _e140) - (_e142 * _e143); float _e146 = a; if (metal::abs(_e146) < 0.000000000001) { float _e150 = b; if (metal::abs(_e150) < 0.000000000001) { float _e156 = r_1.y; float _e157 = c_23; r_1.y = (_e157 > 0.0) ? -1.0 : _e156; } else { float _e162 = b; if (_e162 > 0.0) { float _e167 = r_1.y; float _e168 = c_23; float _e170 = b; r_1.y = metal::min(_e167, -(_e168) / (2.0 * _e170)); } else { float _e177 = r_1.x; float _e178 = c_23; float _e180 = b; r_1.x = metal::max(_e177, -(_e178) / (2.0 * _e180)); } } } else { if (disc < 0.0) { float _e189 = r_1.y; float _e190 = a; r_1.y = (_e190 > 0.0) ? -1.0 : _e189; } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = metal::min((-(_e195) - metal::sqrt(disc)) / _e199, (-(_e201) + metal::sqrt(disc)) / _e205); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = metal::max((-(_e208) - metal::sqrt(disc)) / _e212, (-(_e214) + metal::sqrt(disc)) / _e218); float _e221 = a; if (_e221 > 0.0) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = metal::float2(metal::max(_e225, lo_2), metal::min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if (_e232 < metal::min(_e234, lo_2)) { float _e239 = r_1.y; r_1.y = metal::min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = metal::max(_e243, hi_2); } } } } metal::float2 _e245 = r_1; return _e245; } float fog_density( uint k_6, metal::float3 p_3, metal::float3 lp, constant FogU& Fog ) { float rho = {}; float sdf = 0.0; FogEntryU e_15 = Fog.entries.inner[metal::min(unsigned(k_6), 15u)]; metal::float4 _e14 = Fog.up; rho = e_15.material.x * metal::min(metal::exp2(-(e_15.material.y) * (metal::dot(p_3, _e14.xyz) - e_15.material.w)), 1.0); if (e_15.material.z > 0.0) { uint shape_1 = naga_f2u32(e_15.albedo.w); metal::float3 h_5 = e_15.size.xyz * 0.5; float rad_2 = metal::min(h_5.x, h_5.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { float k0_ = metal::length(lp / h_5); sdf = (k0_ * (k0_ - 1.0)) / metal::max(metal::length(lp / (h_5 * h_5)), 0.000000000001); } else { if (shape_1 == FOG_SHAPE_BOX) { metal::float3 q_3 = metal::abs(lp) - h_5; sdf = metal::length(metal::max(q_3, metal::float3(0.0))) + metal::min(metal::max(q_3.x, metal::max(q_3.y, q_3.z)), 0.0); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { metal::float2 q_4 = metal::float2(metal::length(lp.xz) - rad_2, metal::abs(lp.y) - h_5.y); sdf = metal::min(metal::max(q_4.x, q_4.y), 0.0) + metal::length(metal::max(q_4, metal::float2(0.0))); } else { metal::float2 n_13 = metal::normalize(metal::float2(1.0 / metal::max(0.001, rad_2 * 0.5), 1.0 / metal::max(0.001, h_5.y))); sdf = metal::max(metal::dot(n_13, metal::float2(metal::length(lp.xz), lp.y - h_5.y)), -(h_5.y) - lp.y); } } } float _e116 = rho; float _e117 = sdf; rho = _e116 * metal::pow(metal::clamp((-2.0 * _e117) / e_15.size.w, 0.0, 1.0), e_15.material.z); } float _e130 = rho; return _e130; } float fog_falloff_depth( uint k_7, float a_1, float b_1, float t0_, float t1_, constant FogU& Fog ) { metal::float4 m_3 = Fog.entries.inner[metal::min(unsigned(k_7), 15u)].material; float hf = m_3.y; if ((hf * b_1) == 0.0) { return (m_3.x * (t1_ - t0_)) * metal::min(metal::exp2(-(hf) * a_1), 1.0); } float s_19 = metal::clamp(-(a_1) / b_1, t0_, t1_); float lo_3 = (b_1 > 0.0) ? s_19 : t0_; float hi_3 = (b_1 > 0.0) ? t1_ : s_19; float x_6 = ((hf * metal::abs(b_1)) * (hi_3 - lo_3)) * 0.6931472; float g = (x_6 < 0.01) ? (1.0 - (x_6 * (0.5 - (x_6 * (0.16666667 - (x_6 / 24.0)))))) : ((1.0 - metal::exp(-(x_6))) / x_6); float top_3 = metal::min(metal::exp2(-(hf) * metal::max(a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3)), 0.0)), 1.0); return m_3.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g)); } float omni_attenuation( float d_5, float inv_range, float decay ) { float nd = {}; nd = d_5 * inv_range; float _e5 = nd; float _e6 = nd; nd = _e5 * _e6; float _e8 = nd; float _e9 = nd; nd = _e8 * _e9; float _e11 = nd; nd = metal::max(1.0 - _e11, 0.0); float _e16 = nd; float _e17 = nd; nd = _e16 * _e17; float _e19 = nd; return _e19 * metal::pow(metal::max(d_5, 0.0001), -(decay)); } metal::float3 fog_light( uint n_6, metal::float3 p_4, metal::float3 dir_4, constant LitU& Lit, constant FogU& Fog ) { metal::float3 sum = {}; uint k_8 = 0u; metal::float3 l_2 = {}; float atten = {}; metal::float4 _e5 = Fog.ambient; float _e10 = Fog.params.y; sum = _e5.xyz * _e10; float g_1 = Fog.params.x; metal::uint4 lights = Fog.entries.inner[metal::min(unsigned(n_6), 15u)].lights; uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { uint _e138 = k_8; k_8 = _e138 + 1u; } loop_init_3 = false; uint _e24 = k_8; if (_e24 < metal::min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_13 = metal::min((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u, 63u); LightU li = Lit.lights.inner[metal::min(unsigned(i_13), 63u)]; l_2 = -(li.direction.xyz); atten = 1.0; if (li.info.x != LIGHT_DIRECTIONAL) { metal::float3 rel = li.position.xyz - p_4; l_2 = rel / metal::float3(metal::max(metal::length(rel), 0.000001)); float _e72 = omni_attenuation(metal::length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { metal::float3 _e77 = l_2; float rim_2 = metal::max(0.0001, (1.0 - metal::max(metal::dot(-(_e77), li.direction.xyz), li.spot.x)) / metal::max(1.0 - li.spot.x, 0.000001)); float _e96 = atten; atten = _e96 * (1.0 - metal::pow(rim_2, li.spot.y)); } } metal::float3 _e108 = l_2; float q_5 = (1.0 + (g_1 * g_1)) - ((2.0 * g_1) * metal::dot(dir_4, _e108)); metal::float3 _e112 = sum; float _e115 = atten; float _e133 = Fog.light_fog.inner[metal::min(unsigned(i_13 >> 2u), 15u)][metal::min(unsigned(i_13 & 3u), 3u)]; sum = _e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * metal::sqrt(q_5))) * _e133)); } } metal::float3 _e140 = sum; return _e140; } metal::float4 fog_entry( uint k_9, metal::float3 o_1, metal::float3 d_6, metal::float2 ch, constant LitU& Lit, constant FogU& Fog ) { float split = {}; bool local_24 = {}; bool local_25 = {}; metal::float3 q_1 = metal::float3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_26 = {}; bool local_27 = {}; FogEntryU e_16 = Fog.entries.inner[metal::min(unsigned(k_9), 15u)]; metal::float3 lo_4 = (e_16.to_local * metal::float4(o_1, 1.0)).xyz; metal::float3 ld = (e_16.to_local * metal::float4(d_6, 0.0)).xyz; metal::float4 _e20 = Fog.up; float a_6 = metal::dot(o_1, _e20.xyz) - e_16.material.w; metal::float4 _e28 = Fog.up; float b_3 = metal::dot(d_6, _e28.xyz); bool edge = e_16.material.z > 0.0; split = (ch.x + ch.y) * 0.5; if (e_16.material.y > 0.0) { local_24 = (-(a_6) / b_3) > ch.x; } else { local_24 = false; } bool _e52 = local_24; if (_e52) { local_25 = (-(a_6) / b_3) < ch.y; } else { local_25 = false; } bool _e60 = local_25; if (_e60) { split = -(a_6) / b_3; } uint2 loop_bound_4 = uint2(4294967295u); bool loop_init_4 = true; while(true) { if (metal::all(loop_bound_4 == uint2(0u))) { break; } loop_bound_4 -= uint2(loop_bound_4.y == 0u, 1u); if (!loop_init_4) { uint _e160 = i_1; i_1 = _e160 + 1u; } loop_init_4 = false; uint _e70 = i_1; if (_e70 < (edge ? 12u : 4u)) { } else { break; } { uint _e75 = i_1; uint j = _e75 & 3u; if (!((j == 0u))) { local_26 = j == 3u; } else { local_26 = true; } bool _e88 = local_26; float x_7 = _e88 ? FOG_GL_X0_ : FOG_GL_X1_; if (!((j == 0u))) { local_27 = j == 3u; } else { local_27 = true; } bool _e100 = local_27; float w_5 = _e100 ? FOG_GL_W0_ : FOG_GL_W1_; float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; metal::float2 seg = (_e112 < 4u) ? ch : ((_e108 < 8u) ? metal::float2(ch.x, _e106) : metal::float2(_e102, ch.y)); float half_len = (seg.y - seg.x) * 0.5; float t_8 = ((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_7) : x_7)); metal::float3 p_9 = o_1 + (d_6 * t_8); float _e136 = fog_density(k_9, p_9, lo_4 + (ld * t_8), Fog); uint _e137 = i_1; if (_e137 < 4u) { metal::float3 _e140 = q_1; metal::float3 _e143 = fog_light(k_9, p_9, d_6, Lit, Fog); q_1 = _e140 + (((e_16.albedo.xyz * _e143) + e_16.emission.xyz) * ((w_5 * half_len) * metal::clamp(_e136, 0.0, 1.0))); } else { float _e155 = tau; tau = _e155 + ((w_5 * half_len) * _e136); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y, Fog); tau = _e165; } metal::float3 _e166 = q_1; float _e167 = tau; return metal::float4(_e166, _e167); } metal::float3 fog_integrate( metal::float3 c_24, metal::float3 o_2, metal::float3 d_7, float t_end, uint list, constant LitU& Lit, constant FogU& Fog ) { type_31 at = {}; type_32 chords = {}; uint m = 0u; uint i_2 = 0u; bool local_28 = {}; type_33 parts = {}; uint i_3 = 0u; uint n_7 = 0u; float avail = {}; uint i_4 = {}; uint i_5 = {}; metal::float3 q_2 = metal::float3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all = list >= FOG_LIST_ALL; uint2 loop_bound_5 = uint2(4294967295u); bool loop_init_5 = true; while(true) { if (metal::all(loop_bound_5 == uint2(0u))) { break; } loop_bound_5 -= uint2(loop_bound_5.y == 0u, 1u); if (!loop_init_5) { uint _e72 = i_2; i_2 = _e72 + 1u; } loop_init_5 = false; uint _e13 = i_2; uint _e18 = Fog.counts.x; if (_e13 < (all ? metal::min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u)) { } else { break; } { uint _e23 = i_2; uint byte = (list >> ((_e23 & 3u) * 8u)) & 127u; if (!(all)) { local_28 = byte == 0u; } else { local_28 = false; } bool _e37 = local_28; if (_e37) { break; } uint _e42 = i_2; uint k_19 = all ? _e42 : (metal::min(byte, MAX_FRAME_FOG_VOLUMES) - 1u); metal::float4x4 to_local = Fog.entries.inner[metal::min(unsigned(k_19), 15u)].to_local; metal::float2 _e57 = fog_chord(k_19, (to_local * metal::float4(o_2, 1.0)).xyz, (to_local * metal::float4(d_7, 0.0)).xyz, t_end, Fog); if (_e57.y > _e57.x) { uint _e61 = m; at.inner[metal::min(unsigned(_e61), 3u)] = k_19; uint _e63 = m; chords.inner[metal::min(unsigned(_e63), 3u)] = _e57; uint _e66 = m; m = _e66 + 1u; uint _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } } uint2 loop_bound_6 = uint2(4294967295u); bool loop_init_6 = true; while(true) { if (metal::all(loop_bound_6 == uint2(0u))) { break; } loop_bound_6 -= uint2(loop_bound_6.y == 0u, 1u); if (!loop_init_6) { uint _e90 = i_3; i_3 = _e90 + 1u; } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if (_e77 < _e78) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at.inner[metal::min(unsigned(_e82), 3u)]; uint _e85 = i_3; metal::float2 _e87 = chords.inner[metal::min(unsigned(_e85), 3u)]; metal::float4 _e88 = fog_entry(_e84, o_2, d_7, _e87, Lit, Fog); parts.inner[metal::min(unsigned(_e80), 3u)] = _e88; } } uint2 loop_bound_7 = uint2(4294967295u); bool loop_init_7 = true; while(true) { if (metal::all(loop_bound_7 == uint2(0u))) { break; } loop_bound_7 -= uint2(loop_bound_7.y == 0u, 1u); if (!loop_init_7) { uint _e221 = n_7; n_7 = _e221 + 1u; } loop_init_7 = false; uint _e94 = n_7; uint _e95 = m; if (_e94 < _e95) { } else { break; } { uint _e97 = n_7; float _e100 = parts.inner[metal::min(unsigned(_e97), 3u)].w; if (_e100 < 0.0) { avail = 0.0; i_4 = 0u; uint2 loop_bound_8 = uint2(4294967295u); bool loop_init_8 = true; while(true) { if (metal::all(loop_bound_8 == uint2(0u))) { break; } loop_bound_8 -= uint2(loop_bound_8.y == 0u, 1u); if (!loop_init_8) { uint _e153 = i_4; i_4 = _e153 + 1u; } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if (_e107 < _e108) { } else { break; } { uint _e110 = i_4; float _e113 = chords.inner[metal::min(unsigned(_e110), 3u)].y; uint _e114 = n_7; float _e117 = chords.inner[metal::min(unsigned(_e114), 3u)].y; uint _e119 = i_4; float _e122 = chords.inner[metal::min(unsigned(_e119), 3u)].x; uint _e123 = n_7; float _e126 = chords.inner[metal::min(unsigned(_e123), 3u)].x; uint _e131 = i_4; float _e134 = chords.inner[metal::min(unsigned(_e131), 3u)].y; uint _e135 = i_4; float _e138 = chords.inner[metal::min(unsigned(_e135), 3u)].x; float share = metal::max(metal::min(_e113, _e117) - metal::max(_e122, _e126), 0.0) / metal::max(_e134 - _e138, 0.000001); float _e143 = avail; uint _e144 = i_4; float _e147 = parts.inner[metal::min(unsigned(_e144), 3u)].w; avail = _e143 + (metal::max(_e147, 0.0) * share); } } uint _e155 = n_7; float _e158 = parts.inner[metal::min(unsigned(_e155), 3u)].w; float _e160 = avail; float f_5 = metal::min(-(_e158) / metal::max(_e160, 0.000000000001), 1.0); i_5 = 0u; uint2 loop_bound_9 = uint2(4294967295u); bool loop_init_9 = true; while(true) { if (metal::all(loop_bound_9 == uint2(0u))) { break; } loop_bound_9 -= uint2(loop_bound_9.y == 0u, 1u); if (!loop_init_9) { uint _e218 = i_5; i_5 = _e218 + 1u; } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if (_e168 < _e169) { } else { break; } { uint _e171 = i_5; float _e174 = parts.inner[metal::min(unsigned(_e171), 3u)].w; if (_e174 > 0.0) { uint _e177 = i_5; float _e180 = chords.inner[metal::min(unsigned(_e177), 3u)].y; uint _e181 = n_7; float _e184 = chords.inner[metal::min(unsigned(_e181), 3u)].y; uint _e186 = i_5; float _e189 = chords.inner[metal::min(unsigned(_e186), 3u)].x; uint _e190 = n_7; float _e193 = chords.inner[metal::min(unsigned(_e190), 3u)].x; uint _e198 = i_5; float _e201 = chords.inner[metal::min(unsigned(_e198), 3u)].y; uint _e202 = i_5; float _e205 = chords.inner[metal::min(unsigned(_e202), 3u)].x; float share_1 = metal::max(metal::min(_e180, _e184) - metal::max(_e189, _e193), 0.0) / metal::max(_e201 - _e205, 0.000001); uint _e210 = i_5; metal::float4 _e212 = parts.inner[metal::min(unsigned(_e210), 3u)]; parts.inner[metal::min(unsigned(_e210), 3u)] = _e212 * (1.0 - (share_1 * f_5)); } } } } } } uint2 loop_bound_10 = uint2(4294967295u); bool loop_init_10 = true; while(true) { if (metal::all(loop_bound_10 == uint2(0u))) { break; } loop_bound_10 -= uint2(loop_bound_10.y == 0u, 1u); if (!loop_init_10) { uint _e252 = i_6; i_6 = _e252 + 1u; } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if (_e230 < _e231) { } else { break; } { uint _e233 = i_6; float _e236 = parts.inner[metal::min(unsigned(_e233), 3u)].w; if (_e236 > 0.0) { metal::float3 _e239 = q_2; uint _e240 = i_6; metal::float4 _e242 = parts.inner[metal::min(unsigned(_e240), 3u)]; q_2 = _e239 + _e242.xyz; float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts.inner[metal::min(unsigned(_e246), 3u)].w; tau_1 = _e245 + _e249; } } } float _e254 = tau_1; float t_9 = metal::exp(-(_e254)); metal::float3 _e258 = q_2; float _e261 = tau_1; return (c_24 * t_9) + (_e258 * ((1.0 - t_9) / metal::max(_e261, 0.00001))); } metal::float3 fog_volumes( metal::float3 c_25, metal::float3 world_4, uint list_1, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_7 = (_e36 > 0.5) ? (world_4 - (back * (_e26 * metal::float4(world_4, 1.0)).z)) : _e22.xyz; float len = metal::length(world_4 - o_7); metal::float3 _e47 = fog_integrate(c_25, o_7, (world_4 - o_7) / metal::float3(metal::max(len, 0.000001)), len, list_1, Lit, Fog); return (len > 0.0) ? _e47 : c_25; } metal::float3 sky_fog_volumes( metal::float3 c_26, metal::float3 near_point, metal::float3 dir_5, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back_1 = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_8 = (_e36 > 0.5) ? (near_point - (back_1 * (_e26 * metal::float4(near_point, 1.0)).z)) : _e22.xyz; uint _e44 = Fog.counts.y; metal::float3 _e45 = fog_integrate(c_26, o_8, dir_5, FOG_SKY_DISTANCE, _e44, Lit, Fog); float _e49 = Fog.params.z; return metal::mix(c_26, _e45, _e49); } float shadow_factor( uint i_7, metal::float3 world_5, metal::float3 n_geo_1, metal::float3 l_3, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow ) { uint part = 0u; uint c_27 = 0u; bool local_29 = {}; bool local_30 = {}; bool local_31 = {}; float vis = 0.0; int dy = -1; int dx = {}; uint kind = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.x; metal::float4 _e14 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].position; metal::float3 light_pos = _e14.xyz; uint _e21 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.w; uint slot = metal::min(_e21, 15u); metal::float4 params = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].params; uint first = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.x; uint _e40 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.y; uint count = metal::max(_e40, 1u); metal::float4x4 _e45 = G.view; float view_depth = -((_e45 * metal::float4(world_5, 1.0)).z); if (kind == LIGHT_DIRECTIONAL) { float _e60 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade.y; if (view_depth > _e60) { return 1.0; } part = count - 1u; uint2 loop_bound_11 = uint2(4294967295u); bool loop_init_11 = true; while(true) { if (metal::all(loop_bound_11 == uint2(0u))) { break; } loop_bound_11 -= uint2(loop_bound_11.y == 0u, 1u); if (!loop_init_11) { uint _e79 = c_27; c_27 = _e79 + 1u; } loop_init_11 = false; uint _e67 = c_27; if (_e67 < count) { } else { break; } { uint _e73 = c_27; float _e75 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].splits[metal::min(unsigned(_e73), 3u)]; if (view_depth <= _e75) { uint _e77 = c_27; part = _e77; break; } } } } uint _e83 = part; metal::float4 texel_1 = Shadow.tiles.inner[metal::min(unsigned(metal::min(first + metal::min(_e83, count - 1u), 15u)), 15u)].texel; float t_10 = texel_1.x + (texel_1.y * metal::distance(world_5, light_pos)); metal::float3 p_10 = (world_5 + (n_geo_1 * ((params.y * metal::max(params.z, 1.0)) * t_10))) + (l_3 * (params.x * t_10)); if (kind == LIGHT_OMNI) { metal::float3 d_13 = p_10 - light_pos; metal::float3 a_7 = metal::abs(d_13); if (a_7.x >= a_7.y) { local_29 = a_7.x >= a_7.z; } else { local_29 = false; } bool _e123 = local_29; if (_e123) { part = (d_13.x >= 0.0) ? 0u : 1u; } else { if (a_7.y >= a_7.z) { part = (d_13.y >= 0.0) ? 2u : 3u; } else { part = (d_13.z >= 0.0) ? 4u : 5u; } } } uint _e145 = part; uint tile_1 = metal::min(first + metal::min(_e145, count - 1u), 15u); metal::float4x4 _e156 = Shadow.tiles.inner[metal::min(unsigned(tile_1), 15u)].view_proj; metal::float4 clip = _e156 * metal::float4(p_10, 1.0); if (clip.w <= 0.0) { return 1.0; } metal::float3 ndc = clip.xyz / metal::float3(clip.w); if (!((metal::abs(ndc.x) > 1.0))) { local_30 = metal::abs(ndc.y) > 1.0; } else { local_30 = true; } bool _e180 = local_30; if (!(_e180)) { local_31 = ndc.z > 1.0; } else { local_31 = true; } bool _e188 = local_31; if (_e188) { return 1.0; } metal::float4 rect = Shadow.tiles.inner[metal::min(unsigned(tile_1), 15u)].rect; metal::float2 uv_7 = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); metal::float2 auv = rect.xy + (uv_7 * rect.zw); float texel_uv = Shadow.atlas.x; metal::float2 lo_5 = rect.xy + metal::float2(0.5 * texel_uv); metal::float2 hi_4 = (rect.xy + rect.zw) - metal::float2(0.5 * texel_uv); float r_8 = params.z; if (r_8 <= 0.0) { float _e235 = t_shadow.sample_compare(s_shadow, metal::clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { float spread = r_8 * texel_uv; uint2 loop_bound_12 = uint2(4294967295u); bool loop_init_12 = true; while(true) { if (metal::all(loop_bound_12 == uint2(0u))) { break; } loop_bound_12 -= uint2(loop_bound_12.y == 0u, 1u); if (!loop_init_12) { int _e265 = dy; dy = as_type(as_type(_e265) + as_type(1)); } loop_init_12 = false; int _e239 = dy; if (_e239 <= 1) { } else { break; } { dx = -1; uint2 loop_bound_13 = uint2(4294967295u); bool loop_init_13 = true; while(true) { if (metal::all(loop_bound_13 == uint2(0u))) { break; } loop_bound_13 -= uint2(loop_bound_13.y == 0u, 1u); if (!loop_init_13) { int _e262 = dx; dx = as_type(as_type(_e262) + as_type(1)); } loop_init_13 = false; int _e244 = dx; if (_e244 <= 1) { } else { break; } { int _e247 = dx; int _e249 = dy; metal::float2 tap = metal::clamp(auv + (metal::float2(static_cast(_e247), static_cast(_e249)) * spread), lo_5, hi_4); float _e255 = vis; float _e259 = t_shadow.sample_compare(s_shadow, tap, ndc.z); vis = _e255 + _e259; } } } } float _e267 = vis; vis = _e267 / 9.0; } if (kind == LIGHT_DIRECTIONAL) { metal::float4 fade_1 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade; float _e277 = vis; vis = metal::mix(_e277, 1.0, metal::smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return metal::mix(1.0, _e283, params.w); } metal::float3 probe_light( metal::float3 n_8, constant ObjectU& O ) { float _e5 = O.gi.inner[0].x; metal::float4 _e9 = O.gi.inner[0]; float _e17 = O.gi.inner[1].x; metal::float4 _e21 = O.gi.inner[1]; float _e29 = O.gi.inner[2].x; metal::float4 _e33 = O.gi.inner[2]; return metal::max(metal::float3(_e5 + metal::dot(_e9.yzw, n_8), _e17 + metal::dot(_e21.yzw, n_8), _e29 + metal::dot(_e33.yzw, n_8)), metal::float3(0.0)); } metal::float4 gi_diffuse( metal::float3 n_9, bool baked, metal::float3 baked_light, constant ObjectU& O ) { if (baked) { return metal::float4(baked_light, 1.0); } uint _e9 = O.extra.x; if (SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false) { metal::float3 _e16 = probe_light(n_9, O); return metal::float4(_e16, 1.0); } return metal::float4(0.0); } metal::float3 probe_face_uv( metal::float3 d_8 ) { float face = {}; float ma = {}; float sc = {}; float tc = {}; bool local_32 = {}; metal::float3 a_8 = metal::abs(d_8); if (a_8.x >= a_8.y) { local_32 = a_8.x >= a_8.z; } else { local_32 = false; } bool _e15 = local_32; if (_e15) { ma = a_8.x; if (d_8.x >= 0.0) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0.0) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0.0) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return metal::float3(_e56, ((_e57 / _e58) + 1.0) * 0.5, ((_e64 / _e65) + 1.0) * 0.5); } metal::float3 probe_texel( uint row, metal::float3 fuv, uint level_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { uint _e6 = Probe.counts.z; float n_14 = static_cast(metal::max(_e6 >> level_1, 1u)); float lo_6 = 0.5 / n_14; float u_1 = metal::clamp(fuv.y, lo_6, 1.0 - lo_6); float v_9 = metal::clamp(fuv.z, lo_6, 1.0 - lo_6); metal::float2 uv_8 = metal::float2((fuv.x + u_1) / 6.0, (static_cast(row) + v_9) / 8.0); metal::float4 _e33 = t_probes.sample(s_probes, uv_8, metal::level(static_cast(level_1))); return _e33.xyz; } metal::float3 probe_sample( uint row_1, metal::float3 d_9, float lod, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { bool local_33 = {}; uint _e6 = Probe.counts.y; uint levels = metal::max(_e6, 1u); float l_10 = metal::clamp(lod, 0.0, static_cast(levels - 1u)); uint m0_ = naga_f2u32(l_10); float t_11 = l_10 - static_cast(m0_); metal::float3 _e17 = probe_face_uv(d_9); metal::float3 _e18 = probe_texel(row_1, _e17, m0_, Probe, t_probes, s_probes); if (!((t_11 <= 0.0))) { local_33 = (m0_ + 1u) >= levels; } else { local_33 = true; } bool _e28 = local_33; if (_e28) { return _e18; } metal::float3 _e34 = probe_texel(row_1, _e17, m0_ + 1u, Probe, t_probes, s_probes); return (_e18 * (1.0 - t_11)) + (_e34 * t_11); } float probe_weight( ProbeEntryU p_5, metal::float3 world_6 ) { metal::float3 l_11 = (p_5.to_local * metal::float4(world_6, 1.0)).xyz; metal::float3 e_17 = p_5.extents.xyz; float d_14 = metal::min(e_17.x - metal::abs(l_11.x), metal::min(e_17.y - metal::abs(l_11.y), e_17.z - metal::abs(l_11.z))); if (d_14 < 0.0) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return metal::min(d_14 / p_5.extents.w, 1.0); } float probe_exit( float o_3, float d_10, float e_1 ) { if (d_10 > 0.0) { return (e_1 - o_3) / d_10; } if (d_10 < 0.0) { return (-(e_1) - o_3) / d_10; } return 300000000000000000000000000000000000000.0; } metal::float3 probe_lookup( ProbeEntryU p_6, metal::float3 world_7, metal::float3 dir_6 ) { metal::float3 d_15 = (p_6.to_local * metal::float4(dir_6, 0.0)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } metal::float3 o_9 = (p_6.to_local * metal::float4(world_7, 1.0)).xyz; metal::float3 e_18 = p_6.extents.xyz; float _e24 = probe_exit(o_9.x, d_15.x, e_18.x); float _e28 = probe_exit(o_9.y, d_15.y, e_18.y); float _e32 = probe_exit(o_9.z, d_15.z, e_18.z); float t_12 = metal::max(metal::min(_e24, metal::min(_e28, _e32)), 0.0); return (o_9 + (d_15 * t_12)) - p_6.offset.xyz; } metal::float4 probe_reflection( metal::float3 world_8, metal::float3 r_2, float roughness_2, uint probes, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc = metal::float3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = Probe.counts.x; uint count_1 = metal::min(_e12, MAX_PROBES); uint _e18 = Probe.counts.y; float lod_1 = roughness_2 * static_cast(metal::max(_e18, 1u) - 1u); uint2 loop_bound_14 = uint2(4294967295u); bool loop_init_14 = true; while(true) { if (metal::all(loop_bound_14 == uint2(0u))) { break; } loop_bound_14 -= uint2(loop_bound_14.y == 0u, 1u); if (!loop_init_14) { uint _e57 = i_8; i_8 = _e57 + 1u; } loop_init_14 = false; uint _e27 = i_8; if (_e27 < count_1) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_11 = Probe.probes.inner[metal::min(unsigned(_e31), 7u)]; if (((probes >> p_11.info.w) & 1u) == 0u) { continue; } float _e41 = probe_weight(p_11, world_8); if (_e41 <= 0.0) { continue; } metal::float3 _e44 = acc; metal::float3 _e47 = probe_lookup(p_11, world_8, r_2); metal::float3 _e48 = probe_sample(p_11.info.w, _e47, lod_1, Probe, t_probes, s_probes); acc = _e44 + ((_e48 * p_11.offset.w) * _e41); float _e54 = w_sum; w_sum = _e54 + _e41; } } float _e59 = w_sum; if (_e59 > 1.0) { metal::float3 _e62 = acc; float _e63 = w_sum; acc = _e62 / metal::float3(_e63); w_sum = 1.0; } metal::float3 _e67 = acc; float _e68 = w_sum; return metal::float4(_e67, _e68); } metal::float4 probe_ambient( metal::float3 world_9, metal::float3 n_10, uint probes_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc_1 = metal::float3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_34 = {}; metal::float3 c_28 = {}; uint _e11 = Probe.counts.x; uint count_2 = metal::min(_e11, MAX_PROBES); uint _e17 = Probe.counts.y; uint last = metal::max(_e17, 1u) - 1u; uint2 loop_bound_15 = uint2(4294967295u); bool loop_init_15 = true; while(true) { if (metal::all(loop_bound_15 == uint2(0u))) { break; } loop_bound_15 -= uint2(loop_bound_15.y == 0u, 1u); if (!loop_init_15) { uint _e73 = i_9; i_9 = _e73 + 1u; } loop_init_15 = false; uint _e24 = i_9; if (_e24 < count_2) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_12 = Probe.probes.inner[metal::min(unsigned(_e28), 7u)]; if (!((((probes_1 >> p_12.info.w) & 1u) == 0u))) { local_34 = p_12.info.y == PROBE_AMBIENT_DISABLED; } else { local_34 = true; } bool _e46 = local_34; if (_e46) { continue; } float _e47 = probe_weight(p_12, world_9); if (_e47 <= 0.0) { continue; } c_28 = p_12.ambient.xyz; if (p_12.info.y == PROBE_AMBIENT_ENVIRONMENT) { metal::float3 _e64 = probe_face_uv((p_12.to_local * metal::float4(n_10, 0.0)).xyz); metal::float3 _e65 = probe_texel(p_12.info.w, _e64, last, Probe, t_probes, s_probes); c_28 = _e65; } metal::float3 _e66 = acc_1; metal::float3 _e67 = c_28; acc_1 = _e66 + (_e67 * _e47); float _e70 = w_sum_1; w_sum_1 = _e70 + _e47; } } float _e75 = w_sum_1; if (_e75 > 1.0) { metal::float3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = _e78 / metal::float3(_e79); w_sum_1 = 1.0; } metal::float3 _e83 = acc_1; float _e84 = w_sum_1; return metal::float4(_e83, _e84); } metal::float3 lit_with( VsOut in_21, bool front_1, Samples s_6, bool baked_1, metal::float3 baked_light_1, constant Globals& G, constant ObjectU& O, constant MaterialU& M, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals, constant FogU& Fog ) { metal::float3 n_mat = {}; metal::float3 t_2 = {}; DecalSurface surf_1 = {}; metal::float3 c_29 = metal::float3(0.0); uint k_10 = 0u; bool local_35 = {}; metal::float3 l_4 = {}; float atten_1 = {}; metal::float3 radiance_3 = {}; metal::float3 ambient = {}; metal::float3 diffuse_amb = {}; metal::float3 spec_amb = {}; metal::float3 dif = {}; metal::float3 dif_1 = {}; metal::float3 dif_2 = {}; bool local_36 = {}; metal::float3 n_geo_2 = front_1 ? metal::normalize(in_21.normal) : -(metal::normalize(in_21.normal)); n_mat = n_geo_2; uint _e16 = M.flags.x; if (SPEC_TEX_NORMAL ? ((_e16 & T_NORMAL) != 0u) : false) { t_2 = in_21.tangent.xyz; metal::float3 _e26 = t_2; metal::float3 _e27 = n_mat; metal::float3 _e28 = n_mat; metal::float3 _e29 = t_2; t_2 = metal::normalize(_e26 - (_e27 * metal::dot(_e28, _e29))); metal::float3 _e34 = n_mat; metal::float3 _e35 = t_2; metal::float3 b_4 = metal::cross(_e34, _e35) * in_21.tangent.w; metal::float3 _e40 = t_2; metal::float3 _e48 = n_mat; n_mat = metal::normalize(((_e40 * s_6.normal.x) + (b_4 * s_6.normal.y)) + (_e48 * s_6.normal.z)); } float _e59 = M.factors.x; float _e69 = M.factors.y; metal::float3 _e77 = n_mat; surf_1 = DecalSurface {s_6.base.xyz, metal::clamp(_e59 * s_6.mr.z, 0.0, 1.0), metal::clamp(_e69 * s_6.mr.y, 0.045, 1.0), s_6.occlusion, {}, _e77, s_6.emission}; uint _e85 = O.decals.z; if (SPEC_DECALS ? (_e85 > 0u) : false) { DecalSurface _e91 = surf_1; DecalSurface _e92 = apply_decals(in_21.world, n_geo_2, _e91, G, O, Decal, t_decals, s_decals); surf_1 = _e92; } float metallic_2 = surf_1.metallic; float roughness_8 = surf_1.roughness; float a2_5 = ((roughness_8 * roughness_8) * roughness_8) * roughness_8; metal::float3 base_2 = surf_1.base; metal::float3 diffuse_5 = base_2 * (1.0 - metallic_2); metal::float3 f0_7 = metal::mix(metal::float3(0.04), base_2, metallic_2); metal::float3 n_15 = surf_1.normal; float _e114 = G.view[0].z; float _e119 = G.view[1].z; float _e124 = G.view[2].z; metal::float3 view_dir = metal::float3(_e114, _e119, _e124); metal::float4 _e128 = G.camera_pos; float _e137 = G.camera_pos.w; metal::float3 v_10 = (_e137 > 0.5) ? metal::normalize(view_dir) : metal::normalize(_e128.xyz - in_21.world); uint _e144 = object_light_count(O); uint2 loop_bound_16 = uint2(4294967295u); bool loop_init_16 = true; while(true) { if (metal::all(loop_bound_16 == uint2(0u))) { break; } loop_bound_16 -= uint2(loop_bound_16.y == 0u, 1u); if (!loop_init_16) { uint _e248 = k_10; k_10 = _e248 + 1u; } loop_init_16 = false; uint _e148 = k_10; if (SPEC_LIGHTS ? (_e148 < _e144) : false) { } else { break; } { uint _e152 = k_10; uint _e153 = object_light(_e152, O); LightU li_1 = Lit.lights.inner[metal::min(unsigned(_e153), 63u)]; if (baked_1) { local_35 = li_1.info.z == LIGHT_BAKED_STATIC; } else { local_35 = false; } bool _e165 = local_35; if (_e165) { continue; } uint kind_1 = li_1.info.x; l_4 = metal::float3 {}; atten_1 = 1.0; if (kind_1 == LIGHT_DIRECTIONAL) { l_4 = -(li_1.direction.xyz); } else { metal::float3 rel_1 = li_1.position.xyz - in_21.world; float d_16 = metal::length(rel_1); l_4 = rel_1 / metal::float3(metal::max(d_16, 0.000001)); float _e190 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e190; if (kind_1 == LIGHT_SPOT) { float cone = li_1.spot.x; metal::float3 _e195 = l_4; float scos = metal::max(metal::dot(-(_e195), li_1.direction.xyz), cone); float rim_3 = metal::max(0.0001, (1.0 - scos) / metal::max(1.0 - cone, 0.000001)); float _e210 = atten_1; atten_1 = _e210 * (1.0 - metal::pow(rim_3, li_1.spot.y)); } } float _e217 = atten_1; if (_e217 > 0.0) { float _e222 = atten_1; radiance_3 = li_1.color.xyz * _e222; if (SPEC_SHADOWS ? (li_1.info.y == LIGHT_SHADOWED) : false) { float _e234 = atten_1; metal::float3 _e236 = l_4; float _e237 = shadow_factor(_e153, in_21.world, n_geo_2, _e236, G, Lit, Shadow, t_shadow, s_shadow); radiance_3 = li_1.color.xyz * (_e234 * _e237); } metal::float3 _e240 = c_29; metal::float3 _e241 = l_4; metal::float3 _e242 = radiance_3; metal::float3 _e245 = light_specular(n_15, v_10, _e241, _e242, diffuse_5, f0_7, a2_5, li_1.spot.z); c_29 = _e240 + _e245; } } } float nv_9 = metal::max(metal::dot(n_15, v_10), 0.0001); metal::float3 f_amb_1 = f0_7 + ((metal::max(metal::float3(1.0 - roughness_8), f0_7) - f0_7) * metal::pow(1.0 - nv_9, 5.0)); metal::float4 _e264 = gi_diffuse(n_15, baked_1, baked_light_1, O); uint _e270 = Sky.flags.x; if (SPEC_AMBIENT_SKY ? ((_e270 & SKY_IBL) != 0u) : false) { float _e280 = Sky.ibl.x; float _e284 = Sky.sun.w; float scale_1 = _e280 * _e284; metal::float4 _e288 = Sky.ambient; diffuse_amb = _e288.xyz; uint _e294 = Sky.flags.x; if ((_e294 & SKY_AMBIENT_SKY) != 0u) { metal::float4 _e301 = Sky.ambient; metal::float3 _e303 = sky_dir(n_15, Sky); metal::float3 _e304 = sh_irradiance(_e303, Sky); float _e309 = Sky.ambient.w; diffuse_amb = metal::mix(_e301.xyz, _e304 * scale_1, _e309); } if (_e264.w > 0.0) { diffuse_amb = _e264.xyz; } metal::float4 _e317 = Sky.ambient; spec_amb = _e317.xyz; uint _e323 = Sky.flags.x; if ((_e323 & SKY_REFLECT_RADIANCE) != 0u) { metal::float3 _e330 = sky_dir(metal::reflect(-(v_10), n_15), Sky); metal::float3 _e331 = radiance_2(_e330, roughness_8, Sky, t_radiance, s_radiance); spec_amb = _e331 * scale_1; } else { uint _e336 = Sky.flags.x; if ((_e336 & SKY_REFLECT_OFF) != 0u) { spec_amb = metal::float3(0.0); } } metal::float2 _e343 = env_brdf_approx(roughness_8, nv_9); uint _e348 = Probe.counts.x; if (SPEC_PROBES ? (_e348 > 0u) : false) { uint _e359 = O.extra.z; metal::float4 _e360 = probe_reflection(in_21.world, metal::reflect(-(v_10), n_15), roughness_8, _e359, Probe, t_probes, s_probes); metal::float3 _e361 = spec_amb; metal::float3 spec_4 = (_e361 * (1.0 - _e360.w)) + _e360.xyz; metal::float3 _e368 = diffuse_amb; dif = _e368; if (_e264.w <= 0.0) { uint _e377 = O.extra.z; metal::float4 _e378 = probe_ambient(in_21.world, n_15, _e377, Probe, t_probes, s_probes); metal::float3 _e379 = diffuse_amb; dif = (_e379 * (1.0 - _e378.w)) + _e378.xyz; } metal::float3 _e386 = dif; ambient = (diffuse_5 * _e386) + (spec_4 * ((f0_7 * _e343.x) + metal::float3(_e343.y * metal::clamp(50.0 * f0_7.y, metallic_2, 1.0)))); } else { metal::float3 _e401 = diffuse_amb; metal::float3 _e403 = spec_amb; ambient = (diffuse_5 * _e401) + (_e403 * ((f0_7 * _e343.x) + metal::float3(_e343.y * metal::clamp(50.0 * f0_7.y, metallic_2, 1.0)))); } } else { uint _e420 = Lit.counts.y; if ((_e420 & ENV_AMBIENT_SKY) != 0u) { metal::float4 _e427 = Lit.up; metal::float3 up_2 = _e427.xyz; metal::float4 _e431 = Lit.sky_top; metal::float4 _e435 = Lit.sky_horizon; metal::float3 sky_avg = (_e431.xyz + _e435.xyz) * 0.5; metal::float4 _e442 = Lit.ground_horizon; metal::float4 _e446 = Lit.ground_bottom; metal::float3 ground_avg = (_e442.xyz + _e446.xyz) * 0.5; metal::float3 irradiance_1 = metal::mix(ground_avg, sky_avg, metal::clamp((metal::dot(n_15, up_2) * 0.5) + 0.5, 0.0, 1.0)); metal::float3 _e462 = sky(metal::reflect(-(v_10), n_15), Lit); metal::float3 blurred_1 = metal::mix(_e462, sky_avg, roughness_8); uint _e467 = Probe.counts.x; if (_e467 > 0u) { uint _e476 = O.extra.z; metal::float4 _e477 = probe_reflection(in_21.world, metal::reflect(-(v_10), n_15), roughness_8, _e476, Probe, t_probes, s_probes); float _e481 = Lit.ambient.w; metal::float3 spec_5 = ((blurred_1 * _e481) * (1.0 - _e477.w)) + _e477.xyz; dif_1 = _e264.xyz; if (_e264.w <= 0.0) { uint _e498 = O.extra.z; metal::float4 _e499 = probe_ambient(in_21.world, n_15, _e498, Probe, t_probes, s_probes); float _e503 = Lit.ambient.w; dif_1 = ((irradiance_1 * _e503) * (1.0 - _e499.w)) + _e499.xyz; } metal::float3 _e511 = dif_1; ambient = (diffuse_5 * _e511) + (spec_5 * f_amb_1); } else { if (_e264.w > 0.0) { float _e524 = Lit.ambient.w; ambient = (diffuse_5 * _e264.xyz) + ((blurred_1 * f_amb_1) * _e524); } else { float _e533 = Lit.ambient.w; ambient = ((diffuse_5 * irradiance_1) + (blurred_1 * f_amb_1)) * _e533; } } } else { uint _e538 = Probe.counts.x; if (_e538 > 0u) { uint _e547 = O.extra.z; metal::float4 _e548 = probe_reflection(in_21.world, metal::reflect(-(v_10), n_15), roughness_8, _e547, Probe, t_probes, s_probes); metal::float4 _e551 = Lit.ambient; metal::float3 spec_6 = (_e551.xyz * (1.0 - _e548.w)) + _e548.xyz; dif_2 = _e264.xyz; if (_e264.w <= 0.0) { uint _e568 = O.extra.z; metal::float4 _e569 = probe_ambient(in_21.world, n_15, _e568, Probe, t_probes, s_probes); metal::float4 _e572 = Lit.ambient; dif_2 = (_e572.xyz * (1.0 - _e569.w)) + _e569.xyz; } metal::float3 _e580 = dif_2; ambient = (diffuse_5 * _e580) + (spec_6 * f_amb_1); } else { if (_e264.w > 0.0) { metal::float4 _e591 = Lit.ambient; ambient = (diffuse_5 * _e264.xyz) + (_e591.xyz * f_amb_1); } else { metal::float4 _e597 = Lit.ambient; ambient = _e597.xyz * (diffuse_5 + f_amb_1); } } } } uint _e605 = Lit.counts.y; if ((_e605 & ENV_SSAO) != 0u) { uint _e615 = M.flags.y; local_36 = _e615 != ALPHA_BLEND; } else { local_36 = false; } bool _e619 = local_36; if (SPEC_SSAO ? _e619 : false) { uint clamped_lod_e628 = metal::min(uint(0), t_ao.get_num_mip_levels() - 1); metal::float4 _e628 = t_ao.read(metal::min(metal::uint2(naga_f2i32(metal::floor(in_21.clip.xy))), metal::uint2(t_ao.get_width(clamped_lod_e628), t_ao.get_height(clamped_lod_e628)) - 1), clamped_lod_e628); float ssao = _e628.x; metal::float3 _e630 = c_29; float _e632 = surf_1.occlusion; float _e637 = Lit.tone.z; float _e641 = Lit.tone.w; c_29 = _e630 * metal::mix(1.0, metal::min(ssao, _e632), _e637 * _e641); metal::float3 _e646 = c_29; metal::float3 _e647 = ambient; float _e649 = surf_1.occlusion; c_29 = _e646 + (_e647 * metal::min(_e649, ssao)); } else { metal::float3 _e653 = c_29; metal::float3 _e654 = ambient; float _e656 = surf_1.occlusion; c_29 = _e653 + (_e654 * _e656); } metal::float3 _e659 = c_29; metal::float3 _e661 = surf_1.emission; c_29 = _e659 + _e661; uint _e667 = Sky.flags.x; if (SPEC_FOG ? ((_e667 & SKY_FOG) != 0u) : false) { metal::float3 _e674 = c_29; metal::float3 _e677 = surface_fog(_e674, in_21.world, -(v_10), G, Lit, Sky, t_radiance, s_radiance); c_29 = _e677; } uint _e682 = O.decals.w; if (SPEC_FOG_VOLUMES ? (_e682 != 0u) : false) { metal::float3 _e687 = c_29; uint _e692 = O.decals.w; metal::float3 _e693 = fog_volumes(_e687, in_21.world, _e692, G, Lit, Fog); c_29 = _e693; } metal::float3 _e694 = c_29; metal::float3 _e695 = tonemap(_e694, Lit); return _e695; } metal::float3 lit( VsOut in_22, bool front_2, Samples s_7, constant Globals& G, constant ObjectU& O, constant MaterialU& M, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals, constant FogU& Fog ) { metal::float3 _e6 = lit_with(in_22, front_2, s_7, false, metal::float3(0.0), G, O, M, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, Fog); return _e6; } metal::float4 lit_output( metal::float4 c_30, constant Globals& G, constant LitU& Lit ) { uint _e4 = Lit.counts.y; if ((_e4 & ENV_HDR) != 0u) { return metal::float4(metal::max(c_30.xyz, metal::float3(0.0)), metal::clamp(c_30.w, 0.0, 1.0)); } metal::float4 _e18 = target_color(c_30, G); return _e18; } VsOutExt ext_vs_out( VsOut o_4, metal::float2 uv1_4 ) { VsOutExt e_2 = {}; e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_4; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in( VsOutExt e_3 ) { VsOut o_5 = {}; o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex( VsIn in_23, constant Globals& G, constant ObjectU& O ) { VsOut out_8 = {}; metal::float4x4 _e3 = O.model; metal::float4 world_12 = _e3 * metal::float4(in_23.pos, 1.0); metal::float4x4 _e12 = G.view_proj; out_8.clip = _e12 * world_12; out_8.world = world_12.xyz; metal::float4x4 _e19 = O.normal; out_8.normal = metal::normalize((_e19 * metal::float4(in_23.normal, 0.0)).xyz); out_8.uv = in_23.uv; out_8.flags = in_23.flags; uint _e33 = O.extra.x; float mirror = ((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0; metal::float4x4 _e44 = O.model; out_8.tangent = metal::float4(metal::normalize((_e44 * metal::float4(in_23.tangent.xyz, 0.0)).xyz), in_23.tangent.w * mirror); out_8.weight = in_23.weight; out_8.color = metal::float4(1.0); VsOut _e61 = out_8; return _e61; } VsOut surface_vertex_instanced( VsIn in_24, InstIn inst_2, constant Globals& G, constant ObjectU& O ) { VsOut out_9 = {}; metal::float4 p1_ = metal::float4(in_24.pos, 1.0); metal::float3 local_50 = metal::float3(metal::dot(inst_2.row0_, p1_), metal::dot(inst_2.row1_, p1_), metal::dot(inst_2.row2_, p1_)); metal::float4x4 _e14 = O.model; metal::float4 world_13 = _e14 * metal::float4(local_50, 1.0); metal::float3 bx = metal::float3(inst_2.row0_.x, inst_2.row1_.x, inst_2.row2_.x); metal::float3 by = metal::float3(inst_2.row0_.y, inst_2.row1_.y, inst_2.row2_.y); metal::float3 bz = metal::float3(inst_2.row0_.z, inst_2.row1_.z, inst_2.row2_.z); float det = metal::dot(bx, metal::cross(by, bz)); bool flip = det < 0.0; metal::float3x3 cofactor = metal::float3x3(metal::cross(by, bz), metal::cross(bz, bx), metal::cross(bx, by)); metal::float3 n_local = (cofactor * in_24.normal) * (flip ? -1.0 : 1.0); metal::float3 t_local = metal::float3x3(bx, by, bz) * in_24.tangent.xyz; metal::float4x4 _e61 = G.view_proj; out_9.clip = _e61 * world_13; out_9.world = world_13.xyz; metal::float4x4 _e68 = O.normal; out_9.normal = metal::normalize((_e68 * metal::float4(n_local, 0.0)).xyz); out_9.uv = in_24.uv; out_9.flags = in_24.flags | (flip ? F_INSTANCE_MIRRORED : 0u); uint _e85 = O.extra.x; float mirror_1 = (((_e85 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0; metal::float4x4 _e97 = O.model; out_9.tangent = metal::float4(metal::normalize((_e97 * metal::float4(t_local, 0.0)).xyz), in_24.tangent.w * mirror_1); out_9.weight = in_24.weight; out_9.color = inst_2.color; VsOut _e111 = out_9; return _e111; } metal::float2 ext_uv( uint s_8, metal::float2 uv0_, metal::float2 uv1_5, constant MaterialU& M ) { metal::float4 r0_ = M.xf.inner[metal::min(unsigned(s_8 * 2u), 39u)]; metal::float4 r1_ = M.xf.inner[metal::min(unsigned((s_8 * 2u) + 1u), 39u)]; metal::float2 uv_9 = (r0_.w > 0.5) ? uv1_5 : uv0_; return metal::float2(metal::dot(r0_.xy, uv_9) + r0_.z, metal::dot(r1_.xy, uv_9) + r1_.z); } float ext_where( uint s_9, constant MaterialU& M ) { float _e9 = M.xf.inner[metal::min(unsigned((s_9 * 2u) + 1u), 39u)].w; return _e9; } metal::float4 ext_layer( uint s_10, metal::float2 uv0_1, metal::float2 uv1_6, constant MaterialU& M, metal::sampler s_mat, metal::texture2d_array t_ext ) { metal::float2 _e5 = ext_uv(s_10, uv0_1, uv1_6, M); float _e6 = ext_where(s_10, M); metal::float4 _e12 = t_ext.sample(s_mat, _e5, as_type(as_type(naga_f2i32(_e6 + 0.5)) - as_type(1))); return _e12; } metal::float3 scaled_normal( metal::float3 texel, float scale ) { return metal::normalize(((texel * 2.0) - metal::float3(1.0)) * metal::float3(scale, scale, 1.0)); } ExtSamples sample_ext( VsOutExt in_25, constant MaterialU& M, metal::texture2d t_base, metal::texture2d t_normal, metal::texture2d t_mr, metal::texture2d t_emission, metal::texture2d t_occlusion, metal::sampler s_mat, metal::texture2d_array t_ext ) { ExtSamples s_11 = {}; metal::float4 c_31 = {}; float thick = 1.0; metal::float2 _e2 = tex_uv(in_25.uv); metal::float2 _e4 = tex_uv(in_25.uv1_); metal::float4 _e9 = M.base_color; s_11.base = _e9; uint _e14 = M.flags.x; if (SPEC_TEX_BASE ? ((_e14 & T_BASE) != 0u) : false) { metal::float4 _e22 = s_11.base; metal::float2 _e26 = ext_uv(SLOT_BASE, _e2, _e4, M); metal::float4 _e27 = t_base.sample(s_mat, _e26); metal::float4 _e28 = decoded_base(_e27, M); s_11.base = _e22 * _e28; } uint _e34 = M.flags.w; if (SPEC_VERTEX_COLOR ? ((_e34 & MAT_VERTEX_COLOR) != 0u) : false) { c_31 = in_25.color; uint _e46 = M.flags.w; if ((_e46 & MAT_VERTEX_COLOR_SRGB) != 0u) { metal::float4 _e51 = c_31; metal::float3 _e53 = srgb_to_linear(_e51.xyz); float _e55 = c_31.w; c_31 = metal::float4(_e53, _e55); } metal::float4 _e59 = s_11.base; metal::float4 _e60 = c_31; s_11.base = _e59 * _e60; } s_11.normal = metal::float3(0.0, 0.0, 1.0); uint _e71 = M.flags.x; if (SPEC_TEX_NORMAL ? ((_e71 & T_NORMAL) != 0u) : false) { metal::float2 _e82 = ext_uv(SLOT_NORMAL, _e2, _e4, M); metal::float4 _e83 = t_normal.sample(s_mat, _e82); float _e89 = M.ext.inner[3].w; metal::float3 _e90 = scaled_normal(_e83.xyz, _e89); s_11.normal = _e90; } float _e95 = M.factors.x; s_11.metallic = _e95; float _e98 = ext_where(SLOT_METALLIC, M); if (SPEC_TEX_MR ? (_e98 > 0.5) : false) { float _e104 = s_11.metallic; metal::float2 _e108 = ext_uv(SLOT_METALLIC, _e2, _e4, M); metal::float4 _e109 = t_mr.sample(s_mat, _e108); s_11.metallic = _e104 * _e109.z; } float _e116 = M.factors.y; s_11.roughness = _e116; uint _e121 = M.flags.w; if (SPEC_ROUGHNESS_LAYER ? ((_e121 & MAT_ROUGHNESS_LAYER) != 0u) : false) { float _e129 = ext_where(SLOT_ROUGHNESS, M); if (_e129 > 0.5) { float _e133 = s_11.roughness; metal::float4 _e135 = ext_layer(SLOT_ROUGHNESS, _e2, _e4, M, s_mat, t_ext); s_11.roughness = _e133 * _e135.y; } } else { float _e140 = ext_where(SLOT_ROUGHNESS, M); if (SPEC_TEX_MR ? (_e140 > 0.5) : false) { float _e146 = s_11.roughness; metal::float2 _e150 = ext_uv(SLOT_ROUGHNESS, _e2, _e4, M); metal::float4 _e151 = t_mr.sample(s_mat, _e150); s_11.roughness = _e146 * _e151.y; } } metal::float4 _e157 = M.emission; s_11.emission = _e157.xyz; uint _e163 = M.flags.x; if (SPEC_TEX_EMISSION ? ((_e163 & T_EMISSION) != 0u) : false) { metal::float3 _e171 = s_11.emission; metal::float2 _e175 = ext_uv(SLOT_EMISSIVE, _e2, _e4, M); metal::float4 _e176 = t_emission.sample(s_mat, _e175); metal::float3 _e178 = decoded_emission(_e176.xyz, M); s_11.emission = _e171 * _e178; } s_11.occlusion = 1.0; uint _e186 = M.flags.x; if (SPEC_TEX_OCCLUSION ? ((_e186 & T_OCCLUSION) != 0u) : false) { metal::float2 _e196 = ext_uv(SLOT_OCCLUSION, _e2, _e4, M); metal::float4 _e197 = t_occlusion.sample(s_mat, _e196); float o_10 = _e197.x; float _e204 = M.ext.inner[6].w; s_11.occlusion = 1.0 + (_e204 * (o_10 - 1.0)); } float _e215 = M.ext.inner[0].w; s_11.specular = _e215; float _e218 = ext_where(SLOT_SPECULAR, M); if (SPEC_EXT_LAYERS ? (_e218 > 0.5) : false) { float _e224 = s_11.specular; metal::float4 _e226 = ext_layer(SLOT_SPECULAR, _e2, _e4, M, s_mat, t_ext); s_11.specular = _e224 * _e226.w; } metal::float4 _e233 = M.ext.inner[0]; s_11.specular_color = _e233.xyz; float _e237 = ext_where(SLOT_SPECULAR_COLOR, M); if (SPEC_EXT_LAYERS ? (_e237 > 0.5) : false) { metal::float3 _e243 = s_11.specular_color; metal::float4 _e245 = ext_layer(SLOT_SPECULAR_COLOR, _e2, _e4, M, s_mat, t_ext); metal::float3 _e247 = srgb_to_linear(_e245.xyz); s_11.specular_color = _e243 * _e247; } float _e254 = M.ext.inner[1].y; s_11.transmission = _e254; float _e257 = ext_where(SLOT_TRANSMISSION, M); if (SPEC_EXT_LAYERS ? (_e257 > 0.5) : false) { float _e263 = s_11.transmission; metal::float4 _e265 = ext_layer(SLOT_TRANSMISSION, _e2, _e4, M, s_mat, t_ext); s_11.transmission = _e263 * _e265.x; } float _e273 = M.ext.inner[1].z; s_11.thickness = _e273; float _e276 = ext_where(SLOT_THICKNESS, M); if (SPEC_EXT_LAYERS ? (_e276 > 0.5) : false) { float _e282 = s_11.thickness; metal::float4 _e284 = ext_layer(SLOT_THICKNESS, _e2, _e4, M, s_mat, t_ext); s_11.thickness = _e282 * _e284.y; } float _e292 = M.ext.inner[3].x; s_11.clearcoat = _e292; float _e295 = ext_where(SLOT_CLEARCOAT, M); if (SPEC_EXT_LAYERS ? (_e295 > 0.5) : false) { float _e301 = s_11.clearcoat; metal::float4 _e303 = ext_layer(SLOT_CLEARCOAT, _e2, _e4, M, s_mat, t_ext); s_11.clearcoat = _e301 * _e303.x; } float _e311 = M.ext.inner[3].y; s_11.clearcoat_roughness = _e311; float _e314 = ext_where(SLOT_CLEARCOAT_ROUGHNESS, M); if (SPEC_EXT_LAYERS ? (_e314 > 0.5) : false) { float _e320 = s_11.clearcoat_roughness; metal::float4 _e322 = ext_layer(SLOT_CLEARCOAT_ROUGHNESS, _e2, _e4, M, s_mat, t_ext); s_11.clearcoat_roughness = _e320 * _e322.y; } s_11.clearcoat_normal = metal::float3(0.0, 0.0, 1.0); s_11.clearcoat_mapped = false; float _e334 = ext_where(SLOT_CLEARCOAT_NORMAL, M); if (SPEC_EXT_LAYERS ? (_e334 > 0.5) : false) { metal::float4 _e341 = ext_layer(SLOT_CLEARCOAT_NORMAL, _e2, _e4, M, s_mat, t_ext); float _e347 = M.ext.inner[3].z; metal::float3 _e348 = scaled_normal(_e341.xyz, _e347); s_11.clearcoat_normal = _e348; s_11.clearcoat_mapped = true; } metal::float4 _e355 = M.ext.inner[4]; s_11.sheen_color = _e355.xyz; float _e359 = ext_where(SLOT_SHEEN_COLOR, M); if (SPEC_EXT_LAYERS ? (_e359 > 0.5) : false) { metal::float3 _e365 = s_11.sheen_color; metal::float4 _e367 = ext_layer(SLOT_SHEEN_COLOR, _e2, _e4, M, s_mat, t_ext); metal::float3 _e369 = srgb_to_linear(_e367.xyz); s_11.sheen_color = _e365 * _e369; } float _e376 = M.ext.inner[4].w; s_11.sheen_roughness = _e376; float _e379 = ext_where(SLOT_SHEEN_ROUGHNESS, M); if (SPEC_EXT_LAYERS ? (_e379 > 0.5) : false) { float _e385 = s_11.sheen_roughness; metal::float4 _e387 = ext_layer(SLOT_SHEEN_ROUGHNESS, _e2, _e4, M, s_mat, t_ext); s_11.sheen_roughness = _e385 * _e387.w; } float _e395 = M.ext.inner[5].x; s_11.iridescence = _e395; float _e398 = ext_where(SLOT_IRIDESCENCE, M); if (SPEC_EXT_LAYERS ? (_e398 > 0.5) : false) { float _e404 = s_11.iridescence; metal::float4 _e406 = ext_layer(SLOT_IRIDESCENCE, _e2, _e4, M, s_mat, t_ext); s_11.iridescence = _e404 * _e406.x; } float _e413 = ext_where(SLOT_IRIDESCENCE_THICKNESS, M); if (SPEC_EXT_LAYERS ? (_e413 > 0.5) : false) { metal::float4 _e419 = ext_layer(SLOT_IRIDESCENCE_THICKNESS, _e2, _e4, M, s_mat, t_ext); thick = _e419.y; } float _e426 = M.ext.inner[5].z; float _e431 = M.ext.inner[5].w; float _e432 = thick; s_11.iridescence_thickness = metal::mix(_e426, _e431, _e432); float _e439 = M.ext.inner[6].x; s_11.anisotropy = _e439; metal::float4 _e444 = M.ext.inner[6]; s_11.anisotropy_dir = _e444.yz; float _e448 = ext_where(SLOT_ANISOTROPY, M); if (SPEC_EXT_LAYERS ? (_e448 > 0.5) : false) { metal::float4 _e454 = ext_layer(SLOT_ANISOTROPY, _e2, _e4, M, s_mat, t_ext); metal::float3 a_9 = _e454.xyz; metal::float2 d_17 = (a_9.xy * 2.0) - metal::float2(1.0); metal::float2 dn_1 = (metal::dot(d_17, d_17) > 0.00000001) ? metal::normalize(d_17) : metal::float2(1.0, 0.0); float c_40 = M.ext.inner[6].y; float sn = M.ext.inner[6].z; s_11.anisotropy_dir = metal::float2((c_40 * dn_1.x) - (sn * dn_1.y), (sn * dn_1.x) + (c_40 * dn_1.y)); float _e493 = s_11.anisotropy; s_11.anisotropy = _e493 * a_9.z; } float _e501 = M.ext.inner[7].w; s_11.diffuse_transmission = _e501; float _e504 = ext_where(SLOT_DIFFUSE_TRANSMISSION, M); if (SPEC_EXT_LAYERS ? (_e504 > 0.5) : false) { float _e510 = s_11.diffuse_transmission; metal::float4 _e512 = ext_layer(SLOT_DIFFUSE_TRANSMISSION, _e2, _e4, M, s_mat, t_ext); s_11.diffuse_transmission = _e510 * _e512.w; } metal::float4 _e519 = M.ext.inner[7]; s_11.diffuse_transmission_color = _e519.xyz; float _e523 = ext_where(SLOT_DIFFUSE_TRANSMISSION_COLOR, M); if (SPEC_EXT_LAYERS ? (_e523 > 0.5) : false) { metal::float3 _e529 = s_11.diffuse_transmission_color; metal::float4 _e531 = ext_layer(SLOT_DIFFUSE_TRANSMISSION_COLOR, _e2, _e4, M, s_mat, t_ext); metal::float3 _e533 = srgb_to_linear(_e531.xyz); s_11.diffuse_transmission_color = _e529 * _e533; } ExtSamples _e535 = s_11; return _e535; } bool ext_cut( ExtSamples s_12, constant MaterialU& M ) { bool local_37 = {}; uint _e5 = M.flags.y; if (_e5 == ALPHA_MASK) { float _e15 = M.emission.w; local_37 = s_12.base.w < _e15; } else { local_37 = false; } bool _e18 = local_37; return SPEC_ALPHA_MASK ? _e18 : false; } float max3_( metal::float3 c_32 ) { return metal::max(c_32.x, metal::max(c_32.y, c_32.z)); } float pow5_( float x_2 ) { float x2_2 = x_2 * x_2; return (x2_2 * x2_2) * x_2; } metal::float3 f_schlick90_( metal::float3 f0_3, metal::float3 f90_, float vh_1 ) { float _e9 = pow5_(metal::clamp(1.0 - vh_1, 0.0, 1.0)); return f0_3 + ((f90_ - f0_3) * _e9); } float d_ggx_aniso( float nh_1, float th, float bh, float at_1, float ab ) { float a2_6 = at_1 * ab; metal::float3 f_6 = metal::float3(ab * th, at_1 * bh, a2_6 * nh_1); float w2_ = a2_6 / metal::dot(f_6, f_6); return ((a2_6 * w2_) * w2_) / PI; } float v_ggx_aniso( float nl_1, float nv_2, float bv, float tv, float tl, float bl, float at_2, float ab_1 ) { float gv_1 = nl_1 * metal::length(metal::float3(at_2 * tv, ab_1 * bv, nv_2)); float g_l_1 = nv_2 * metal::length(metal::float3(at_2 * tl, ab_1 * bl, nl_1)); return metal::clamp(0.5 / metal::max(gv_1 + g_l_1, 0.000001), 0.0, 1.0); } float d_charlie( float alpha_g, float nh_2 ) { float inv_r = 1.0 / alpha_g; float sin2h = metal::max(1.0 - (nh_2 * nh_2), 0.0); return ((2.0 + inv_r) * metal::pow(metal::max(sin2h, 0.0000001), inv_r * 0.5)) / 6.2831855; } float charlie_l( float x_3, float alpha_g_1 ) { float o_11 = (1.0 - alpha_g_1) * (1.0 - alpha_g_1); float a_10 = metal::mix(21.5473, 25.3245, o_11); float b_5 = metal::mix(3.82987, 3.32435, o_11); float c_41 = metal::mix(0.19823, 0.16801, o_11); float d_18 = metal::mix(-1.9776, -1.27393, o_11); float e_19 = metal::mix(-4.32054, -4.85967, o_11); return ((a_10 / (1.0 + (b_5 * metal::pow(metal::max(x_3, 0.000001), c_41)))) + (d_18 * x_3)) + e_19; } float lambda_sheen( float cos_theta, float alpha_g_2 ) { if (metal::abs(cos_theta) < 0.5) { float _e5 = charlie_l(cos_theta, alpha_g_2); return metal::exp(_e5); } float _e8 = charlie_l(0.5, alpha_g_2); float _e13 = charlie_l(1.0 - cos_theta, alpha_g_2); return metal::exp((2.0 * _e8) - _e13); } float v_charlie( float nl_2, float nv_3, float alpha_g_3 ) { float _e3 = lambda_sheen(nv_3, alpha_g_3); float _e6 = lambda_sheen(nl_2, alpha_g_3); return metal::clamp(1.0 / (((1.0 + _e3) + _e6) * ((4.0 * nv_3) * nl_2)), 0.0, 1.0); } float sheen_albedo( float nv_4, float roughness_3 ) { type_35 t_3 = type_35 {{1.0, 1.0, 1.0, 1.0, 0.7217, 0.337, 0.1291, 0.0382, 0.008, 0.0011, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.877, 0.6879, 0.518, 0.3738, 0.2565, 0.1657, 0.0991, 0.0537, 0.0254, 0.01, 0.0029, 0.0005, 0.0, 0.8639, 0.8639, 0.8278, 0.7269, 0.6176, 0.5129, 0.4169, 0.3308, 0.255, 0.1895, 0.1344, 0.0897, 0.0555, 0.0304, 0.013, 0.0026, 0.8025, 0.8025, 0.7788, 0.7039, 0.6193, 0.5365, 0.4586, 0.3864, 0.3199, 0.2589, 0.2035, 0.1541, 0.1123, 0.0765, 0.0459, 0.0201, 0.8272, 0.8272, 0.8078, 0.7407, 0.6632, 0.5868, 0.5145, 0.4468, 0.3833, 0.3236, 0.2676, 0.2156, 0.1699, 0.1286, 0.0903, 0.0545, 0.888, 0.888, 0.8693, 0.8021, 0.7242, 0.6476, 0.5753, 0.5075, 0.4436, 0.3831, 0.3255, 0.2713, 0.2229, 0.1786, 0.1365, 0.096, 0.9424, 0.9424, 0.9231, 0.8537, 0.7737, 0.6955, 0.6222, 0.5537, 0.4893, 0.4281, 0.3696, 0.3143, 0.265, 0.2196, 0.1763, 0.1347, 0.9409, 0.9409, 0.9222, 0.8547, 0.7771, 0.7017, 0.6312, 0.5655, 0.5038, 0.4452, 0.3891, 0.3359, 0.2886, 0.2451, 0.2036, 0.1638}}; float x_8 = metal::clamp(metal::sqrt(metal::clamp(nv_4, 0.0, 1.0)), 0.0, 1.0) * 15.0; float y_2 = metal::clamp((roughness_3 - 0.07) / 0.93, 0.0, 1.0) * 7.0; int i_14 = metal::min(naga_f2i32(metal::floor(x_8)), 14); int j_1 = metal::min(naga_f2i32(metal::floor(y_2)), 6); float fx = x_8 - static_cast(i_14); float fy = y_2 - static_cast(j_1); float _e166 = t_3.inner[metal::min(unsigned(as_type(as_type(as_type(as_type(j_1) * as_type(16))) + as_type(i_14))), 127u)]; float _e173 = t_3.inner[metal::min(unsigned(as_type(as_type(as_type(as_type(as_type(as_type(j_1) * as_type(16))) + as_type(i_14))) + as_type(1))), 127u)]; float a_11 = metal::mix(_e166, _e173, fx); float _e181 = t_3.inner[metal::min(unsigned(as_type(as_type(as_type(as_type(as_type(as_type(j_1) + as_type(1))) * as_type(16))) + as_type(i_14))), 127u)]; float _e190 = t_3.inner[metal::min(unsigned(as_type(as_type(as_type(as_type(as_type(as_type(as_type(as_type(j_1) + as_type(1))) * as_type(16))) + as_type(i_14))) + as_type(1))), 127u)]; float b_6 = metal::mix(_e181, _e190, fx); return metal::mix(a_11, b_6, fy); } metal::float3 iridescence_sensitivity( float opd, metal::float3 shift ) { metal::float3 xyz = {}; float phase = (6.2831855 * opd) * 0.000000001; metal::float3 val = metal::float3(0.00000000000054856, 0.00000000000044201, 0.00000000000052481); metal::float3 pos = metal::float3(1681000.0, 1795300.0, 2208400.0); metal::float3 vr = metal::float3(4327800000.0, 9304600000.0, 6612100000.0); xyz = ((val * metal::sqrt(6.2831855 * vr)) * metal::cos((pos * phase) + shift)) * metal::exp((-(phase) * phase) * vr); float _e33 = xyz.x; xyz.x = _e33 + ((0.00000001644083 * metal::cos((2239900.0 * phase) + shift.x)) * metal::exp((-4528200000.0 * phase) * phase)); metal::float3 _e47 = xyz; xyz = _e47 / metal::float3(0.00000010685); metal::float3x3 xyz_to_rec709_ = metal::float3x3(metal::float3(3.2404542, -0.969266, 0.0556434), metal::float3(-1.5371385, 1.8760108, -0.2040259), metal::float3(-0.4985314, 0.041556, 1.0572252)); metal::float3 _e64 = xyz; return xyz_to_rec709_ * _e64; } metal::float3 ior_to_f0_( metal::float3 transmitted, float incident ) { metal::float3 r_9 = (transmitted - metal::float3(incident)) / (transmitted + metal::float3(incident)); return r_9 * r_9; } metal::float3 eval_iridescence( float outside, float film_in, float cos1_, float thickness, metal::float3 f0_4 ) { metal::float3 i_10 = {}; metal::float3 cm = {}; int m_1 = 1; float film = metal::mix(outside, film_in, metal::smoothstep(0.0, 0.03, thickness)); float k_20 = outside / film; float sin2sq = (k_20 * k_20) * (1.0 - (cos1_ * cos1_)); float cos2sq = 1.0 - sin2sq; if (cos2sq < 0.0) { return metal::float3(1.0); } float cos2_ = metal::sqrt(cos2sq); metal::float3 _e23 = ior_to_f0_(metal::float3(film), outside); float r0_1 = _e23.x; float _e32 = pow5_(metal::clamp(1.0 - cos1_, 0.0, 1.0)); float r12_ = r0_1 + ((1.0 - r0_1) * _e32); float t121_ = 1.0 - r12_; float phi12_ = (film < outside) ? PI : 0.0; float phi21_ = PI - phi12_; metal::float3 sq = metal::sqrt(metal::min(f0_4 + metal::float3(0.0001), metal::float3(0.9999))); metal::float3 base_ior = (metal::float3(1.0) + sq) / (metal::float3(1.0) - sq); metal::float3 _e57 = ior_to_f0_(base_ior, film); float _e66 = pow5_(metal::clamp(1.0 - cos2_, 0.0, 1.0)); metal::float3 r23_ = _e57 + ((metal::float3(1.0) - _e57) * _e66); metal::float3 phi23_ = metal::select(metal::float3(0.0), metal::float3(3.1415927), base_ior < metal::float3(film)); float opd_1 = ((2.0 * film) * thickness) * cos2_; metal::float3 phi = metal::float3(phi21_) + phi23_; metal::float3 r123_ = metal::clamp(r12_ * r23_, metal::float3(0.00001), metal::float3(0.9999)); metal::float3 r123s = metal::sqrt(r123_); metal::float3 rs = ((t121_ * t121_) * r23_) / (metal::float3(1.0) - r123_); i_10 = metal::float3(r12_) + rs; cm = rs - metal::float3(t121_); uint2 loop_bound_17 = uint2(4294967295u); bool loop_init_17 = true; while(true) { if (metal::all(loop_bound_17 == uint2(0u))) { break; } loop_bound_17 -= uint2(loop_bound_17.y == 0u, 1u); if (!loop_init_17) { int _e122 = m_1; m_1 = as_type(as_type(_e122) + as_type(1)); } loop_init_17 = false; int _e103 = m_1; if (_e103 <= 2) { } else { break; } { metal::float3 _e106 = cm; cm = _e106 * r123s; metal::float3 _e108 = i_10; metal::float3 _e109 = cm; int _e112 = m_1; int _e115 = m_1; metal::float3 _e118 = iridescence_sensitivity(static_cast(_e112) * opd_1, static_cast(_e115) * phi); i_10 = _e108 + ((_e109 * 2.0) * _e118); } } metal::float3 _e124 = i_10; return metal::max(_e124, metal::float3(0.0)); } metal::float3 ext_view( metal::float3 world_10, constant Globals& G ) { float _e5 = G.view[0].z; float _e10 = G.view[1].z; float _e15 = G.view[2].z; metal::float3 view_dir_1 = metal::float3(_e5, _e10, _e15); metal::float4 _e19 = G.camera_pos; float _e27 = G.camera_pos.w; return (_e27 > 0.5) ? metal::normalize(view_dir_1) : metal::normalize(_e19.xyz - world_10); } ExtCtx ext_ctx( VsOutExt in_26, bool front_3, ExtSamples s_13, bool decals, constant Globals& G, constant ObjectU& O, constant MaterialU& M, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { ExtCtx e_4 = {}; metal::float3 t_4 = {}; DecalSurface surf_2 = {}; bool local_38 = {}; metal::float3 n_geo_3 = front_3 ? metal::normalize(in_26.normal) : -(metal::normalize(in_26.normal)); t_4 = in_26.tangent.xyz; metal::float3 _e14 = t_4; metal::float3 _e15 = t_4; t_4 = metal::normalize(_e14 - (n_geo_3 * metal::dot(n_geo_3, _e15))); metal::float3 _e20 = t_4; metal::float3 b_7 = metal::cross(n_geo_3, _e20) * in_26.tangent.w; e_4.n_geo = n_geo_3; e_4.n = n_geo_3; uint _e31 = M.flags.x; if (SPEC_TEX_NORMAL ? ((_e31 & T_NORMAL) != 0u) : false) { metal::float3 _e39 = t_4; e_4.n = metal::normalize(((_e39 * s_13.normal[0]) + (b_7 * s_13.normal[1])) + (n_geo_3 * s_13.normal[2])); } e_4.nc = n_geo_3; if (s_13.clearcoat_mapped) { metal::float3 _e55 = t_4; e_4.nc = metal::normalize(((_e55 * s_13.clearcoat_normal[0]) + (b_7 * s_13.clearcoat_normal[1])) + (n_geo_3 * s_13.clearcoat_normal[2])); } metal::float3 _e80 = e_4.n; surf_2 = DecalSurface {s_13.base.xyz, metal::clamp(s_13.metallic, 0.0, 1.0), metal::clamp(s_13.roughness, 0.045, 1.0), s_13.occlusion, {}, _e80, s_13.emission}; if (SPEC_DECALS ? decals : false) { DecalSurface _e88 = surf_2; DecalSurface _e89 = apply_decals(in_26.world, n_geo_3, _e88, G, O, Decal, t_decals, s_decals); surf_2 = _e89; } metal::float3 _e92 = surf_2.normal; e_4.n = _e92; float _e95 = surf_2.occlusion; e_4.occlusion = _e95; metal::float3 _e98 = surf_2.emission; e_4.emission = _e98; metal::float3 _e101 = ext_view(in_26.world, G); e_4.v = _e101; e_4.world = in_26.world; metal::float3 _e106 = e_4.n; metal::float3 _e108 = e_4.v; e_4.nv = metal::max(metal::dot(_e106, _e108), 0.0001); float _e114 = surf_2.metallic; e_4.metallic = _e114; float _e117 = surf_2.roughness; e_4.roughness = _e117; float _e120 = e_4.roughness; float _e122 = e_4.roughness; e_4.alpha = _e120 * _e122; float _e126 = e_4.alpha; float _e128 = e_4.alpha; e_4.a2_ = _e126 * _e128; metal::float3 _e132 = surf_2.base; e_4.base = _e132; metal::float3 _e135 = e_4.base; float _e137 = e_4.metallic; e_4.diffuse = _e135 * (1.0 - _e137); float _e146 = M.ext.inner[1].x; e_4.ior = metal::max(_e146, 1.0); float _e150 = e_4.ior; float _e154 = e_4.ior; float r_10 = (_e150 - 1.0) / (_e154 + 1.0); float spec_7 = metal::max(s_13.specular, 0.0); metal::float3 dielectric_f0_ = metal::min(metal::float3(r_10 * r_10) * s_13.specular_color, metal::float3(1.0)) * spec_7; metal::float3 _e171 = e_4.base; float _e173 = e_4.metallic; e_4.f0_ = metal::mix(dielectric_f0_, _e171, _e173); float _e180 = e_4.metallic; e_4.f90_ = metal::mix(metal::float3(spec_7), metal::float3(1.0), _e180); e_4.iridescence = metal::clamp(s_13.iridescence, 0.0, 1.0); metal::float3 _e189 = e_4.f0_; e_4.irid_f = _e189; float _e192 = e_4.iridescence; if (SPEC_IRIDESCENCE ? (_e192 > 0.0) : false) { float _e203 = M.ext.inner[5].y; float _e205 = e_4.nv; metal::float3 _e208 = e_4.f0_; metal::float3 _e209 = eval_iridescence(1.0, _e203, _e205, s_13.iridescence_thickness, _e208); e_4.irid_f = _e209; } e_4.aniso = metal::clamp(s_13.anisotropy, 0.0, 1.0); metal::float3 _e216 = t_4; e_4.aniso_t = metal::normalize((_e216 * s_13.anisotropy_dir.x) + (b_7 * s_13.anisotropy_dir.y)); metal::float3 _e227 = e_4.aniso_t; e_4.aniso_b = metal::normalize(metal::cross(n_geo_3, _e227)); e_4.clearcoat = metal::clamp(s_13.clearcoat, 0.0, 1.0); e_4.cc_roughness = metal::clamp(s_13.clearcoat_roughness, 0.045, 1.0); float _e241 = e_4.cc_roughness; float _e243 = e_4.cc_roughness; float cca = _e241 * _e243; e_4.cc_a2_ = cca * cca; e_4.sheen = metal::max(s_13.sheen_color, metal::float3(0.0)); e_4.sheen_roughness = metal::clamp(s_13.sheen_roughness, 0.07, 1.0); float _e259 = e_4.sheen_roughness; float _e261 = e_4.sheen_roughness; e_4.sheen_alpha = _e259 * _e261; e_4.dt = metal::clamp(s_13.diffuse_transmission, 0.0, 1.0); e_4.dt_color = metal::max(s_13.diffuse_transmission_color, metal::float3(0.0)); e_4.transmission = metal::clamp(s_13.transmission, 0.0, 1.0); float _e280 = e_4.alpha; float _e282 = e_4.ior; e_4.trans_alpha = metal::max(_e280 * metal::clamp((_e282 * 2.0) - 2.0, 0.0, 1.0), 0.002); metal::float4 _e296 = O.model[0]; metal::float4 _e302 = O.model[1]; metal::float4 _e309 = O.model[2]; float scale_2 = ((metal::length(_e296.xyz) + metal::length(_e302.xyz)) + metal::length(_e309.xyz)) / 3.0; float dist_1 = metal::max(s_13.thickness, 0.0) * scale_2; e_4.thin = dist_1 <= 0.0; e_4.thickness = dist_1; e_4.frag = in_26.clip.xy; e_4.attenuation = metal::float3(1.0); float _e334 = M.ext.inner[1].w; if (_e334 > 0.0) { local_38 = dist_1 > 0.0; } else { local_38 = false; } bool _e342 = local_38; if (SPEC_VOLUME ? _e342 : false) { metal::float4 _e349 = M.ext.inner[2]; float _e358 = M.ext.inner[1].w; e_4.attenuation = metal::pow(metal::max(_e349.xyz, metal::float3(0.000001)), metal::float3(dist_1 / _e358)); } float _e367 = M.ext.inner[2].w; e_4.dispersion = _e367; ExtCtx _e368 = e_4; return _e368; } metal::float3 ext_fresnel( ExtCtx e_5, float vh_2 ) { metal::float3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_2); return metal::mix(_e4, e_5.irid_f, e_5.iridescence); } metal::float3 ext_light( ExtCtx e_6, metal::float3 l_5, metal::float3 radiance_4, float spec, bool godot ) { metal::float3 f = metal::float3(0.0); metal::float3 specular_1 = metal::float3(0.0); float dv = {}; metal::float3 diffuse_2 = {}; metal::float3 c_33 = {}; float nl_raw = metal::dot(e_6.n, l_5); float nl_5 = metal::max(nl_raw, 0.0); metal::float3 h_6 = metal::normalize(l_5 + e_6.v); float nh_5 = metal::max(metal::dot(e_6.n, h_6), 0.0); float vh_5 = metal::max(metal::dot(e_6.v, h_6), 0.0); float nv_10 = e_6.nv; if (nl_5 > 0.0) { metal::float3 _e29 = ext_fresnel(e_6, vh_5); f = _e29; if (SPEC_ANISOTROPY ? (e_6.aniso > 0.0) : false) { float at_3 = metal::mix(e_6.alpha, 1.0, e_6.aniso * e_6.aniso); float ab_2 = e_6.alpha; float _e48 = d_ggx_aniso(nh_5, metal::dot(e_6.aniso_t, h_6), metal::dot(e_6.aniso_b, h_6), at_3, ab_2); float _e59 = v_ggx_aniso(nl_5, nv_10, metal::dot(e_6.aniso_b, e_6.v), metal::dot(e_6.aniso_t, e_6.v), metal::dot(e_6.aniso_t, l_5), metal::dot(e_6.aniso_b, l_5), at_3, ab_2); dv = _e48 * _e59; } else { float _e62 = d_ggx(nh_5, e_6.a2_); float _e64 = v_smith(nl_5, nv_10, e_6.a2_); dv = _e62 * _e64; } metal::float3 _e66 = f; float _e67 = dv; specular_1 = ((_e66 * _e67) * nl_5) * (godot ? spec : 1.0); } metal::float3 _e75 = f; diffuse_2 = (godot ? (e_6.diffuse / metal::float3(3.1415927)) : (((metal::float3(1.0) - _e75) * e_6.diffuse) / metal::float3(3.1415927))) * nl_5; if (SPEC_DIFFUSE_TRANSMISSION ? (e_6.dt > 0.0) : false) { metal::float3 back_2 = ((e_6.dt_color * (1.0 - e_6.metallic)) / metal::float3(3.1415927)) * metal::max(-(metal::dot(e_6.n_geo, l_5)), 0.0); metal::float3 _e109 = diffuse_2; diffuse_2 = metal::mix(_e109, back_2, e_6.dt); } if (SPEC_TRANSMISSION ? (e_6.transmission > 0.0) : false) { metal::float3 lm = metal::normalize(l_5 + ((2.0 * e_6.n) * metal::dot(-(l_5), e_6.n))); metal::float3 ht = metal::normalize(lm + e_6.v); float at2_ = e_6.trans_alpha * e_6.trans_alpha; metal::float3 _e140 = f_schlick90_(e_6.f0_, e_6.f90_, metal::clamp(metal::dot(e_6.v, ht), 0.0, 1.0)); float _e151 = d_ggx(metal::clamp(metal::dot(e_6.n, ht), 0.0, 1.0), at2_); float _e158 = v_smith(metal::clamp(metal::dot(e_6.n, lm), 0.0, 1.0), nv_10, at2_); metal::float3 lobe = ((((metal::float3(1.0) - _e140) * e_6.base) * _e151) * _e158) * e_6.attenuation; float through = ((nl_raw < 0.0) ? 1.0 : 0.0) * (1.0 - e_6.metallic); metal::float3 _e171 = diffuse_2; diffuse_2 = metal::mix(_e171, lobe * through, e_6.transmission); } metal::float3 _e175 = diffuse_2; metal::float3 _e176 = specular_1; metal::float3 base_3 = _e175 + _e176; c_33 = base_3 * radiance_4; float _e182 = max3_(e_6.sheen); if (SPEC_SHEEN ? (_e182 > 0.0) : false) { float _e188 = max3_(e_6.sheen); float _e190 = sheen_albedo(nv_10, e_6.sheen_roughness); float scaling = 1.0 - (_e188 * _e190); metal::float3 _e194 = c_33; c_33 = _e194 * scaling; if (nl_5 > 0.0) { metal::float3 _e198 = c_33; float _e201 = d_charlie(e_6.sheen_alpha, nh_5); float _e204 = v_charlie(nl_5, nv_10, e_6.sheen_alpha); c_33 = _e198 + ((((e_6.sheen * _e201) * _e204) * nl_5) * radiance_4); } } if (SPEC_CLEARCOAT ? (e_6.clearcoat > 0.0) : false) { float ncv = metal::max(metal::dot(e_6.nc, e_6.v), 0.0001); metal::float3 _e224 = f_schlick90_(metal::float3(0.04), metal::float3(1.0), ncv); float fc_2 = _e224.x; metal::float3 _e226 = c_33; c_33 = _e226 * (1.0 - (e_6.clearcoat * fc_2)); float ncl = metal::dot(e_6.nc, l_5); if (ncl > 0.0) { float nch = metal::max(metal::dot(e_6.nc, h_6), 0.0); metal::float3 _e244 = f_schlick90_(metal::float3(0.04), metal::float3(1.0), vh_5); float fl = _e244.x; metal::float3 _e246 = c_33; float _e250 = d_ggx(nch, e_6.cc_a2_); float _e253 = v_smith(ncl, ncv, e_6.cc_a2_); c_33 = _e246 + ((((((e_6.clearcoat * fl) * _e250) * _e253) * ncl) * radiance_4) * (godot ? spec : 1.0)); } } metal::float3 _e261 = c_33; return _e261; } metal::float3 ext_irradiance( metal::float3 n_11, bool lit_mode, constant LitU& Lit, constant SkyU& Sky ) { if (SPEC_MATERIAL_MODE ? !(lit_mode) : false) { metal::float3 _e7 = env(n_11.z); return _e7 * 0.8; } uint _e14 = Sky.flags.x; if (SPEC_AMBIENT_SKY ? ((_e14 & SKY_IBL) != 0u) : false) { float _e24 = Sky.ibl.x; float _e28 = Sky.sun.w; float scale_3 = _e24 * _e28; uint _e33 = Sky.flags.x; if ((_e33 & SKY_AMBIENT_SKY) != 0u) { metal::float4 _e40 = Sky.ambient; metal::float3 _e42 = sky_dir(n_11, Sky); metal::float3 _e43 = sh_irradiance(_e42, Sky); float _e48 = Sky.ambient.w; return metal::mix(_e40.xyz, _e43 * scale_3, _e48); } metal::float4 _e52 = Sky.ambient; return _e52.xyz; } uint _e58 = Lit.counts.y; if (SPEC_AMBIENT_GRADIENT ? ((_e58 & ENV_AMBIENT_SKY) != 0u) : false) { metal::float4 _e67 = Lit.sky_top; metal::float4 _e71 = Lit.sky_horizon; metal::float3 sky_avg_1 = (_e67.xyz + _e71.xyz) * 0.5; metal::float4 _e78 = Lit.ground_horizon; metal::float4 _e82 = Lit.ground_bottom; metal::float3 ground_avg_1 = (_e78.xyz + _e82.xyz) * 0.5; metal::float4 _e89 = Lit.up; float _e103 = Lit.ambient.w; return metal::mix(ground_avg_1, sky_avg_1, metal::clamp((metal::dot(n_11, _e89.xyz) * 0.5) + 0.5, 0.0, 1.0)) * _e103; } metal::float4 _e107 = Lit.ambient; return _e107.xyz; } metal::float3 ext_radiance( metal::float3 dir_7, float roughness_4, bool lit_mode_1, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { if (SPEC_MATERIAL_MODE ? !(lit_mode_1) : false) { metal::float3 _e8 = env(dir_7.z); metal::float3 _e10 = env(0.0); return metal::mix(_e8, _e10 * 0.85, roughness_4); } uint _e18 = Sky.flags.x; if (SPEC_AMBIENT_SKY ? ((_e18 & SKY_IBL) != 0u) : false) { float _e28 = Sky.ibl.x; float _e32 = Sky.sun.w; float scale_4 = _e28 * _e32; uint _e37 = Sky.flags.x; if ((_e37 & SKY_REFLECT_RADIANCE) != 0u) { metal::float3 _e42 = sky_dir(dir_7, Sky); metal::float3 _e43 = radiance_2(_e42, roughness_4, Sky, t_radiance, s_radiance); return _e43 * scale_4; } uint _e48 = Sky.flags.x; if ((_e48 & SKY_REFLECT_OFF) != 0u) { return metal::float3(0.0); } metal::float4 _e57 = Sky.ambient; return _e57.xyz; } uint _e63 = Lit.counts.y; if (SPEC_AMBIENT_GRADIENT ? ((_e63 & ENV_AMBIENT_SKY) != 0u) : false) { metal::float4 _e72 = Lit.sky_top; metal::float4 _e76 = Lit.sky_horizon; metal::float3 sky_avg_2 = (_e72.xyz + _e76.xyz) * 0.5; metal::float3 _e81 = sky(dir_7, Lit); float _e86 = Lit.ambient.w; return metal::mix(_e81, sky_avg_2, roughness_4) * _e86; } metal::float4 _e90 = Lit.ambient; return _e90.xyz; } metal::float3 ext_probe_radiance( ExtCtx e_7, metal::float3 dir_8, float roughness_5, bool lit_mode_2, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { bool local_39 = {}; metal::float3 _e4 = ext_radiance(dir_8, roughness_5, lit_mode_2, Lit, Sky, t_radiance, s_radiance); if (!(!(lit_mode_2))) { uint _e13 = Probe.counts.x; local_39 = _e13 == 0u; } else { local_39 = true; } bool _e17 = local_39; if (SPEC_PROBES ? _e17 : true) { return _e4; } uint _e24 = O.extra.z; metal::float4 _e25 = probe_reflection(e_7.world, dir_8, roughness_5, _e24, Probe, t_probes, s_probes); return (_e4 * (1.0 - _e25.w)) + _e25.xyz; } metal::float3 ext_env_weight( metal::float3 f0_5, metal::float3 f90_1, float roughness_6, float nv_5, float metallic, bool lit_mode_3, constant SkyU& Sky ) { bool local_40 = {}; if (lit_mode_3) { uint _e12 = Sky.flags.x; local_40 = (_e12 & SKY_IBL) != 0u; } else { local_40 = false; } bool _e18 = local_40; if (SPEC_AMBIENT_SKY ? _e18 : false) { metal::float2 _e21 = env_brdf_approx(roughness_6, nv_5); return (f0_5 * _e21.x) + ((f90_1 * _e21.y) * metal::clamp(50.0 * f0_5.y, metallic, 1.0)); } float _e40 = pow5_(1.0 - nv_5); metal::float3 f_amb_2 = f0_5 + ((metal::max(f90_1 * (1.0 - roughness_6), f0_5) - f0_5) * _e40); if (SPEC_MATERIAL_MODE ? !(lit_mode_3) : false) { return f_amb_2 * (1.0 - (0.5 * roughness_6)); } return f_amb_2; } metal::float2 screen_uv_of( metal::float3 p_7, constant Globals& G ) { metal::float4x4 _e3 = G.view_proj; metal::float4 c_42 = _e3 * metal::float4(p_7, 1.0); metal::float2 ndc_1 = c_42.xy / metal::float2((c_42.w > 0.000001) ? c_42.w : 0.000001); return metal::float2((ndc_1.x * 0.5) + 0.5, 0.5 - (ndc_1.y * 0.5)); } metal::float3 screen_texel( metal::float2 uv_4, float rough, constant Globals& G, constant LitU& Lit, metal::sampler s_radiance, metal::texture2d t_screen ) { uint _e5 = Lit.dirs.w; float levels_1 = static_cast(metal::max(_e5, 1u)); float _e12 = G.viewport.x; float lod_2 = metal::min(metal::log2(metal::max(_e12, 1.0)) * metal::max(rough, 0.0), levels_1 - 1.0); metal::float4 _e24 = t_screen.sample(s_radiance, uv_4, metal::level(lod_2)); return _e24.xyz; } metal::float2 screen_exit_uv( ExtCtx e_8, float ior, constant Globals& G ) { metal::float3 dir_9 = metal::refract(-(e_8.v), e_8.n, 1.0 / ior); metal::float2 _e12 = screen_uv_of(e_8.world + (dir_9 * e_8.thickness), G); return _e12; } metal::float3 ext_screen_refracted( ExtCtx e_9, float rough_1, constant Globals& G, constant MaterialU& M, constant LitU& Lit, metal::sampler s_radiance, metal::texture2d t_screen ) { if (e_9.thin) { metal::float4x4 _e5 = G.view; metal::float3 n_view = metal::normalize((_e5 * metal::float4(e_9.n, 0.0)).xyz); float _e19 = M.factors.z; metal::float2 offset = metal::float2(-(n_view.x), n_view.y) * _e19; metal::float4 _e24 = G.viewport; metal::float3 _e28 = screen_texel((e_9.frag * _e24.zw) + offset, rough_1, G, Lit, s_radiance, t_screen); return _e28 * e_9.attenuation; } if (SPEC_DISPERSION ? (e_9.dispersion > 0.0) : false) { float half_spread = ((e_9.ior - 1.0) * 0.025) * e_9.dispersion; metal::float2 _e48 = screen_exit_uv(e_9, metal::max(e_9.ior - half_spread, 1.0), G); metal::float3 _e49 = screen_texel(_e48, rough_1, G, Lit, s_radiance, t_screen); float r_11 = _e49.x; metal::float2 _e52 = screen_exit_uv(e_9, e_9.ior, G); metal::float3 _e53 = screen_texel(_e52, rough_1, G, Lit, s_radiance, t_screen); float g_2 = _e53.y; metal::float2 _e57 = screen_exit_uv(e_9, e_9.ior + half_spread, G); metal::float3 _e58 = screen_texel(_e57, rough_1, G, Lit, s_radiance, t_screen); float b_8 = _e58.z; return metal::float3(r_11, g_2, b_8) * e_9.attenuation; } metal::float2 _e64 = screen_exit_uv(e_9, e_9.ior, G); metal::float3 _e65 = screen_texel(_e64, rough_1, G, Lit, s_radiance, t_screen); return _e65 * e_9.attenuation; } metal::float3 ext_refracted( ExtCtx e_10, bool lit_mode_4, constant Globals& G, constant MaterialU& M, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_screen ) { bool local_41 = {}; bool local_42 = {}; float rough_3 = metal::sqrt(e_10.trans_alpha); if (lit_mode_4) { uint _e10 = Lit.counts.y; local_41 = (_e10 & ENV_SCREEN_REFRACTION) != 0u; } else { local_41 = false; } bool _e16 = local_41; if (_e16) { uint _e22 = Lit.dirs.w; local_42 = _e22 > 0u; } else { local_42 = false; } bool _e26 = local_42; if (SPEC_SCREEN_REFRACTION ? _e26 : false) { metal::float3 _e29 = ext_screen_refracted(e_10, rough_3, G, M, Lit, s_radiance, t_screen); return _e29; } if (e_10.thin) { metal::float3 _e33 = ext_radiance(-(e_10.v), rough_3, lit_mode_4, Lit, Sky, t_radiance, s_radiance); return _e33 * e_10.attenuation; } if (SPEC_DISPERSION ? (e_10.dispersion > 0.0) : false) { float half_spread_1 = ((e_10.ior - 1.0) * 0.025) * e_10.dispersion; metal::float3 iors = metal::float3(metal::max(e_10.ior - half_spread_1, 1.0), e_10.ior, e_10.ior + half_spread_1); metal::float3 _e64 = ext_radiance(metal::refract(-(e_10.v), e_10.n, 1.0 / iors.x), rough_3, lit_mode_4, Lit, Sky, t_radiance, s_radiance); float rr = _e64.x; metal::float3 _e73 = ext_radiance(metal::refract(-(e_10.v), e_10.n, 1.0 / iors.y), rough_3, lit_mode_4, Lit, Sky, t_radiance, s_radiance); float rg = _e73.y; metal::float3 _e82 = ext_radiance(metal::refract(-(e_10.v), e_10.n, 1.0 / iors.z), rough_3, lit_mode_4, Lit, Sky, t_radiance, s_radiance); float rb = _e82.z; return metal::float3(rr, rg, rb) * e_10.attenuation; } metal::float3 _e94 = ext_radiance(metal::refract(-(e_10.v), e_10.n, 1.0 / e_10.ior), rough_3, lit_mode_4, Lit, Sky, t_radiance, s_radiance); return _e94 * e_10.attenuation; } metal::float3 ext_ambient( ExtCtx e_11, bool lit_mode_5, metal::float4 gi, constant Globals& G, constant ObjectU& O, constant MaterialU& M, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, metal::texture2d t_screen ) { metal::float3 diffuse_3 = {}; bool local_43 = {}; bool local_44 = {}; bool local_45 = {}; bool local_46 = {}; metal::float3 r_3 = {}; metal::float3 bent = {}; metal::float3 c_34 = {}; float nv_11 = e_11.nv; metal::float3 _e6 = ext_irradiance(e_11.n, lit_mode_5, Lit, Sky); diffuse_3 = e_11.diffuse * _e6; if (lit_mode_5) { uint _e15 = Sky.flags.x; local_43 = (_e15 & SKY_IBL) == 0u; } else { local_43 = false; } bool _e21 = local_43; if (_e21) { uint _e27 = Lit.counts.y; local_44 = (_e27 & ENV_AMBIENT_SKY) == 0u; } else { local_44 = false; } bool _e33 = local_44; if (SPEC_AMBIENT_FLAT ? _e33 : false) { metal::float4 _e38 = Lit.ambient; diffuse_3 = _e38.xyz * e_11.diffuse; } if (lit_mode_5) { uint _e48 = Probe.counts.x; local_45 = _e48 > 0u; } else { local_45 = false; } bool _e52 = local_45; if (_e52) { local_46 = gi.w <= 0.0; } else { local_46 = false; } bool _e59 = local_46; if (SPEC_PROBES ? _e59 : false) { uint _e67 = O.extra.z; metal::float4 _e68 = probe_ambient(e_11.world, e_11.n, _e67, Probe, t_probes, s_probes); metal::float3 _e69 = diffuse_3; diffuse_3 = (_e69 * (1.0 - _e68.w)) + (e_11.diffuse * _e68.xyz); } if (gi.w > 0.0) { diffuse_3 = e_11.diffuse * gi.xyz; } if (SPEC_DIFFUSE_TRANSMISSION ? (e_11.dt > 0.0) : false) { metal::float3 _e90 = diffuse_3; metal::float3 _e98 = ext_irradiance(-(e_11.n_geo), lit_mode_5, Lit, Sky); diffuse_3 = metal::mix(_e90, (e_11.dt_color * (1.0 - e_11.metallic)) * _e98, e_11.dt); } r_3 = metal::reflect(-(e_11.v), e_11.n); if (SPEC_ANISOTROPY ? (e_11.aniso > 0.0) : false) { bent = metal::normalize(metal::cross(metal::cross(e_11.aniso_b, e_11.v), e_11.aniso_b)); float a_12 = metal::pow(1.0 - (e_11.aniso * (1.0 - e_11.roughness)), 4.0); metal::float3 _e129 = bent; bent = metal::normalize(metal::mix(_e129, e_11.n, a_12)); metal::float3 _e135 = bent; metal::float3 _e137 = bent; r_3 = metal::normalize(metal::mix(metal::reflect(-(e_11.v), _e135), _e137, e_11.roughness * e_11.roughness)); } metal::float3 f0_8 = metal::mix(e_11.f0_, e_11.irid_f, e_11.iridescence); metal::float3 f90_2 = metal::mix(e_11.f90_, metal::float3(1.0), e_11.iridescence); metal::float3 _e154 = ext_env_weight(f0_8, f90_2, e_11.roughness, nv_11, e_11.metallic, lit_mode_5, Sky); metal::float3 _e155 = r_3; metal::float3 _e157 = ext_probe_radiance(e_11, _e155, e_11.roughness, lit_mode_5, O, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes); metal::float3 specular_2 = _e157 * _e154; if (SPEC_TRANSMISSION ? (e_11.transmission > 0.0) : false) { metal::float3 _e170 = ext_refracted(e_11, lit_mode_5, G, M, Lit, Sky, t_radiance, s_radiance, t_screen); metal::float3 through_1 = (((metal::float3(1.0) - _e154) * e_11.base) * _e170) * (1.0 - e_11.metallic); metal::float3 _e176 = diffuse_3; diffuse_3 = metal::mix(_e176, through_1, e_11.transmission); } metal::float3 _e179 = diffuse_3; c_34 = _e179 + specular_2; float _e184 = max3_(e_11.sheen); if (SPEC_SHEEN ? (_e184 > 0.0) : false) { float _e190 = sheen_albedo(nv_11, e_11.sheen_roughness); metal::float3 _e191 = c_34; float _e193 = max3_(e_11.sheen); metal::float3 _e200 = ext_irradiance(e_11.n, lit_mode_5, Lit, Sky); c_34 = (_e191 * (1.0 - (_e193 * _e190))) + ((e_11.sheen * _e200) * _e190); } if (SPEC_CLEARCOAT ? (e_11.clearcoat > 0.0) : false) { float ncv_1 = metal::max(metal::dot(e_11.nc, e_11.v), 0.0001); metal::float3 _e219 = f_schlick90_(metal::float3(0.04), metal::float3(1.0), ncv_1); float fc_3 = _e219.x; metal::float3 _e227 = ext_env_weight(metal::float3(0.04), metal::float3(1.0), e_11.cc_roughness, ncv_1, 0.0, lit_mode_5, Sky); metal::float3 _e228 = c_34; metal::float3 _e240 = ext_probe_radiance(e_11, metal::reflect(-(e_11.v), e_11.nc), e_11.cc_roughness, lit_mode_5, O, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes); c_34 = (_e228 * (1.0 - (e_11.clearcoat * fc_3))) + ((e_11.clearcoat * _e240) * _e227); } metal::float3 _e244 = c_34; return _e244; } metal::float3 ext_shade_with( VsOutExt in_27, bool front_4, ExtSamples s_14, bool lit_mode_6, bool baked_2, metal::float3 baked_light_2, constant Globals& G, constant ObjectU& O, constant MaterialU& M, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals, metal::texture2d t_screen ) { bool local_47 = {}; metal::float3 c_35 = metal::float3(0.0); uint k_11 = 0u; bool local_48 = {}; metal::float3 l_6 = {}; float atten_2 = {}; metal::float3 rad = {}; bool local_49 = {}; if (lit_mode_6) { uint _e12 = O.decals.z; local_47 = _e12 > 0u; } else { local_47 = false; } bool _e16 = local_47; ExtCtx _e19 = ext_ctx(in_27, front_4, s_14, SPEC_DECALS ? _e16 : false, G, O, M, Decal, t_decals, s_decals); if (SPEC_MATERIAL_MODE ? !(lit_mode_6) : false) { metal::float4 _e30 = G.view[0]; metal::float4 _e35 = G.view[1]; metal::float4 _e40 = G.view[2]; metal::float3x3 to_world = metal::transpose(metal::float3x3(_e30.xyz, _e35.xyz, _e40.xyz)); metal::float3 _e44 = c_35; metal::float3 _e57 = ext_light(_e19, metal::normalize(to_world * metal::float3(-0.45, 0.55, 0.7)), metal::float3(2.6, 2.522, 2.392), 1.0, false); c_35 = _e44 + _e57; metal::float3 _e59 = c_35; metal::float3 _e72 = ext_light(_e19, metal::normalize(to_world * metal::float3(0.75, 0.15, 0.45)), metal::float3(0.765, 0.80999994, 0.9), 1.0, false); c_35 = _e59 + _e72; metal::float3 _e74 = c_35; metal::float3 _e87 = ext_light(_e19, metal::normalize(to_world * metal::float3(0.3, 0.55, -0.6)), metal::float3(1.3, 1.3, 1.3), 1.0, false); c_35 = _e74 + _e87; metal::float3 _e89 = c_35; metal::float3 _e93 = ext_ambient(_e19, false, metal::float4(0.0), G, O, M, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes, t_screen); c_35 = _e89 + (_e93 * s_14.occlusion); metal::float3 _e97 = c_35; c_35 = _e97 + s_14.emission; metal::float3 _e100 = c_35; return _e100; } uint _e101 = object_light_count(O); uint2 loop_bound_18 = uint2(4294967295u); bool loop_init_18 = true; while(true) { if (metal::all(loop_bound_18 == uint2(0u))) { break; } loop_bound_18 -= uint2(loop_bound_18.y == 0u, 1u); if (!loop_init_18) { uint _e207 = k_11; k_11 = _e207 + 1u; } loop_init_18 = false; uint _e105 = k_11; if (SPEC_LIGHTS ? (_e105 < _e101) : false) { } else { break; } { uint _e109 = k_11; uint _e110 = object_light(_e109, O); LightU li_2 = Lit.lights.inner[metal::min(unsigned(_e110), 63u)]; if (baked_2) { local_48 = li_2.info.z == LIGHT_BAKED_STATIC; } else { local_48 = false; } bool _e122 = local_48; if (_e122) { continue; } uint kind_2 = li_2.info.x; l_6 = metal::float3 {}; atten_2 = 1.0; if (kind_2 == LIGHT_DIRECTIONAL) { l_6 = -(li_2.direction.xyz); } else { metal::float3 rel_2 = li_2.position.xyz - in_27.world; float d_19 = metal::length(rel_2); l_6 = rel_2 / metal::float3(metal::max(d_19, 0.000001)); float _e147 = omni_attenuation(d_19, li_2.position.w, li_2.direction.w); atten_2 = _e147; if (kind_2 == LIGHT_SPOT) { float cone_1 = li_2.spot.x; metal::float3 _e152 = l_6; float scos_1 = metal::max(metal::dot(-(_e152), li_2.direction.xyz), cone_1); float rim_4 = metal::max(0.0001, (1.0 - scos_1) / metal::max(1.0 - cone_1, 0.000001)); float _e167 = atten_2; atten_2 = _e167 * (1.0 - metal::pow(rim_4, li_2.spot.y)); } } float _e174 = atten_2; if (_e174 > 0.0) { float _e179 = atten_2; rad = li_2.color.xyz * _e179; if (SPEC_SHADOWS ? (li_2.info.y == LIGHT_SHADOWED) : false) { float _e191 = atten_2; metal::float3 _e194 = l_6; float _e195 = shadow_factor(_e110, in_27.world, _e19.n_geo, _e194, G, Lit, Shadow, t_shadow, s_shadow); rad = li_2.color.xyz * (_e191 * _e195); } metal::float3 _e198 = c_35; metal::float3 _e199 = l_6; metal::float3 _e200 = rad; metal::float3 _e204 = ext_light(_e19, _e199, _e200, li_2.spot.z, true); c_35 = _e198 + _e204; } } } metal::float4 _e211 = gi_diffuse(_e19.n, baked_2, baked_light_2, O); metal::float3 _e212 = ext_ambient(_e19, true, _e211, G, O, M, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes, t_screen); uint _e217 = Lit.counts.y; if ((_e217 & ENV_SSAO) != 0u) { uint _e227 = M.flags.y; local_49 = _e227 != ALPHA_BLEND; } else { local_49 = false; } bool _e231 = local_49; if (SPEC_SSAO ? _e231 : false) { uint clamped_lod_e240 = metal::min(uint(0), t_ao.get_num_mip_levels() - 1); metal::float4 _e240 = t_ao.read(metal::min(metal::uint2(naga_f2i32(metal::floor(in_27.clip.xy))), metal::uint2(t_ao.get_width(clamped_lod_e240), t_ao.get_height(clamped_lod_e240)) - 1), clamped_lod_e240); float ssao_1 = _e240.x; metal::float3 _e242 = c_35; float _e248 = Lit.tone.z; float _e252 = Lit.tone.w; c_35 = _e242 * metal::mix(1.0, metal::min(ssao_1, _e19.occlusion), _e248 * _e252); metal::float3 _e257 = c_35; c_35 = _e257 + (_e212 * metal::min(_e19.occlusion, ssao_1)); } else { metal::float3 _e262 = c_35; c_35 = _e262 + (_e212 * _e19.occlusion); } metal::float3 _e266 = c_35; c_35 = _e266 + _e19.emission; metal::float3 _e269 = c_35; return _e269; } metal::float3 ext_shade( VsOutExt in_28, bool front_5, ExtSamples s_15, bool lit_mode_7, constant Globals& G, constant ObjectU& O, constant MaterialU& M, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals, metal::texture2d t_screen ) { metal::float3 _e7 = ext_shade_with(in_28, front_5, s_15, lit_mode_7, false, metal::float3(0.0), G, O, M, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, t_screen); return _e7; } metal::float3 ext_lit_finish( metal::float3 c_in_1, metal::float3 world_11, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant FogU& Fog ) { metal::float3 c_36 = {}; c_36 = c_in_1; uint _e7 = Sky.flags.x; if (SPEC_FOG ? ((_e7 & SKY_FOG) != 0u) : false) { metal::float3 _e14 = c_36; metal::float3 _e15 = ext_view(world_11, G); metal::float3 _e17 = surface_fog(_e14, world_11, -(_e15), G, Lit, Sky, t_radiance, s_radiance); c_36 = _e17; } uint _e22 = O.decals.w; if (SPEC_FOG_VOLUMES ? (_e22 != 0u) : false) { metal::float3 _e27 = c_36; uint _e31 = O.decals.w; metal::float3 _e32 = fog_volumes(_e27, world_11, _e31, G, Lit, Fog); c_36 = _e32; } metal::float3 _e33 = c_36; metal::float3 _e34 = tonemap(_e33, Lit); return _e34; } VsOutExt lm_ext_in( VsOutLm l_7 ) { VsOutExt e_12 = {}; e_12.clip = l_7.clip; e_12.world = l_7.world; e_12.normal = l_7.normal; e_12.uv = l_7.uv; e_12.flags = l_7.flags; e_12.tangent = l_7.tangent; e_12.weight = l_7.weight; e_12.color = l_7.color; e_12.uv1_ = l_7.uv1_; VsOutExt _e20 = e_12; return _e20; } metal::float3 lightmap_light( metal::float2 uv_lm_1, constant ObjectU& O, metal::texture2d_array t_lightmap, metal::sampler s_lightmap ) { uint _e6 = O.extra.y; metal::float4 _e9 = t_lightmap.sample(s_lightmap, uv_lm_1, static_cast(_e6), metal::level(0.0)); return _e9.xyz; } metal::float4 skin_row( uint k_12, uint r_4, constant SkinU& Skin ) { metal::float4 _e10 = Skin.rows.inner[metal::min(unsigned((metal::min(k_12, 254u) * 3u) + r_4), 764u)]; return _e10; } SkinRows skin_rows( SkinIn s_16, constant SkinU& Skin ) { SkinRows m_2 = {}; metal::uint4 j_2 = s_16.joints; metal::float4 w_6 = s_16.weights; metal::float4 _e8 = skin_row(s_16.joints.x, 0u, Skin); metal::float4 _e13 = skin_row(s_16.joints.y, 0u, Skin); metal::float4 _e19 = skin_row(s_16.joints.z, 0u, Skin); metal::float4 _e25 = skin_row(s_16.joints.w, 0u, Skin); m_2.r0_ = (((s_16.weights.x * _e8) + (s_16.weights.y * _e13)) + (s_16.weights.z * _e19)) + (s_16.weights.w * _e25); metal::float4 _e32 = skin_row(s_16.joints.x, 1u, Skin); metal::float4 _e37 = skin_row(s_16.joints.y, 1u, Skin); metal::float4 _e43 = skin_row(s_16.joints.z, 1u, Skin); metal::float4 _e49 = skin_row(s_16.joints.w, 1u, Skin); m_2.r1_ = (((s_16.weights.x * _e32) + (s_16.weights.y * _e37)) + (s_16.weights.z * _e43)) + (s_16.weights.w * _e49); metal::float4 _e56 = skin_row(s_16.joints.x, 2u, Skin); metal::float4 _e61 = skin_row(s_16.joints.y, 2u, Skin); metal::float4 _e67 = skin_row(s_16.joints.z, 2u, Skin); metal::float4 _e73 = skin_row(s_16.joints.w, 2u, Skin); m_2.r2_ = (((s_16.weights.x * _e56) + (s_16.weights.y * _e61)) + (s_16.weights.z * _e67)) + (s_16.weights.w * _e73); SkinRows _e76 = m_2; return _e76; } VsOut skinned_vertex( VsIn in_29, SkinIn s_17, constant Globals& G, constant ObjectU& O, constant SkinU& Skin ) { VsOut out_10 = {}; SkinRows _e2 = skin_rows(s_17, Skin); metal::float4 p_13 = metal::float4(in_29.pos, 1.0); metal::float4 world_14 = metal::float4(metal::dot(_e2.r0_, p_13), metal::dot(_e2.r1_, p_13), metal::dot(_e2.r2_, p_13), 1.0); metal::float3 bx_1 = metal::float3(_e2.r0_.x, _e2.r1_.x, _e2.r2_.x); metal::float3 by_1 = metal::float3(_e2.r0_.y, _e2.r1_.y, _e2.r2_.y); metal::float3 bz_1 = metal::float3(_e2.r0_.z, _e2.r1_.z, _e2.r2_.z); float det_1 = metal::dot(bx_1, metal::cross(by_1, bz_1)); bool flip_1 = det_1 < 0.0; metal::float3x3 cofactor_1 = metal::float3x3(metal::cross(by_1, bz_1), metal::cross(bz_1, bx_1), metal::cross(bx_1, by_1)); metal::float3 n_16 = (cofactor_1 * in_29.normal) * (flip_1 ? -1.0 : 1.0); metal::float3 t_13 = metal::float3x3(bx_1, by_1, bz_1) * in_29.tangent.xyz; metal::float4x4 _e57 = G.view_proj; out_10.clip = _e57 * world_14; out_10.world = world_14.xyz; out_10.normal = metal::normalize(n_16); out_10.uv = in_29.uv; out_10.flags = in_29.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u); uint _e74 = O.extra.x; float mirror_2 = (((_e74 & OBJ_MIRRORED) != 0u) != flip_1) ? -1.0 : 1.0; out_10.tangent = metal::float4(metal::normalize(t_13), in_29.tangent.w * mirror_2); out_10.weight = in_29.weight; out_10.color = metal::float4(1.0); VsOut _e94 = out_10; return _e94; } struct vs_surfaceInput { metal::float3 pos [[attribute(0)]]; metal::float3 normal [[attribute(1)]]; metal::float2 uv_5 [[attribute(2)]]; uint flags_1 [[attribute(3)]]; metal::float4 tangent [[attribute(4)]]; float weight [[attribute(5)]]; }; struct vs_surfaceOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; }; vertex vs_surfaceOutput vs_surface( vs_surfaceInput varyings [[stage_in]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] ) { const VsIn in = { varyings.pos, varyings.normal, varyings.uv_5, varyings.flags_1, {}, varyings.tangent, varyings.weight }; VsOut out = {}; metal::float4x4 _e3 = O.model; metal::float4 world_15 = _e3 * metal::float4(in.pos, 1.0); metal::float4x4 _e12 = G.view_proj; out.clip = _e12 * world_15; out.world = world_15.xyz; metal::float4x4 _e19 = O.normal; out.normal = metal::normalize((_e19 * metal::float4(in.normal, 0.0)).xyz); out.uv = in.uv; out.flags = in.flags; uint _e33 = O.extra.x; float mirror_3 = ((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0; metal::float4x4 _e44 = O.model; out.tangent = metal::float4(metal::normalize((_e44 * metal::float4(in.tangent.xyz, 0.0)).xyz), in.tangent.w * mirror_3); out.weight = in.weight; out.color = metal::float4(1.0); VsOut _e61 = out; const auto _tmp = _e61; return vs_surfaceOutput { _tmp.clip, _tmp.world, _tmp.normal, _tmp.uv, _tmp.flags, _tmp.tangent, _tmp.weight, _tmp.color }; } struct vs_surface_instancedInput { metal::float3 pos [[attribute(0)]]; metal::float3 normal [[attribute(1)]]; metal::float2 uv_5 [[attribute(2)]]; uint flags_1 [[attribute(3)]]; metal::float4 tangent [[attribute(4)]]; float weight [[attribute(5)]]; metal::float4 row0_ [[attribute(6)]]; metal::float4 row1_ [[attribute(7)]]; metal::float4 row2_ [[attribute(8)]]; metal::float4 color [[attribute(9)]]; }; struct vs_surface_instancedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; }; vertex vs_surface_instancedOutput vs_surface_instanced( vs_surface_instancedInput varyings_1 [[stage_in]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] ) { const VsIn in_1 = { varyings_1.pos, varyings_1.normal, varyings_1.uv_5, varyings_1.flags_1, {}, varyings_1.tangent, varyings_1.weight }; const InstIn inst = { varyings_1.row0_, varyings_1.row1_, varyings_1.row2_, varyings_1.color }; VsOut out_1 = {}; metal::float4 p1_1 = metal::float4(in_1.pos, 1.0); metal::float3 local_51 = metal::float3(metal::dot(inst.row0_, p1_1), metal::dot(inst.row1_, p1_1), metal::dot(inst.row2_, p1_1)); metal::float4x4 _e14 = O.model; metal::float4 world_16 = _e14 * metal::float4(local_51, 1.0); metal::float3 bx_2 = metal::float3(inst.row0_.x, inst.row1_.x, inst.row2_.x); metal::float3 by_2 = metal::float3(inst.row0_.y, inst.row1_.y, inst.row2_.y); metal::float3 bz_2 = metal::float3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det_2 = metal::dot(bx_2, metal::cross(by_2, bz_2)); bool flip_2 = det_2 < 0.0; metal::float3x3 cofactor_2 = metal::float3x3(metal::cross(by_2, bz_2), metal::cross(bz_2, bx_2), metal::cross(bx_2, by_2)); metal::float3 n_local_1 = (cofactor_2 * in_1.normal) * (flip_2 ? -1.0 : 1.0); metal::float3 t_local_1 = metal::float3x3(bx_2, by_2, bz_2) * in_1.tangent.xyz; metal::float4x4 _e61 = G.view_proj; out_1.clip = _e61 * world_16; out_1.world = world_16.xyz; metal::float4x4 _e68 = O.normal; out_1.normal = metal::normalize((_e68 * metal::float4(n_local_1, 0.0)).xyz); out_1.uv = in_1.uv; out_1.flags = in_1.flags | (flip_2 ? F_INSTANCE_MIRRORED : 0u); uint _e85 = O.extra.x; float mirror_4 = (((_e85 & OBJ_MIRRORED) != 0u) != flip_2) ? -1.0 : 1.0; metal::float4x4 _e97 = O.model; out_1.tangent = metal::float4(metal::normalize((_e97 * metal::float4(t_local_1, 0.0)).xyz), in_1.tangent.w * mirror_4); out_1.weight = in_1.weight; out_1.color = inst.color; VsOut _e111 = out_1; const auto _tmp_1 = _e111; return vs_surface_instancedOutput { _tmp_1.clip, _tmp_1.world, _tmp_1.normal, _tmp_1.uv, _tmp_1.flags, _tmp_1.tangent, _tmp_1.weight, _tmp_1.color }; } struct vs_skyInput { }; struct vs_skyOutput { metal::float4 clip [[position]]; metal::float2 ndc [[user(loc0), center_perspective]]; }; vertex vs_skyOutput vs_sky( uint vi [[vertex_id]] ) { type_34 pts = type_34 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; SkyOut out_2 = {}; metal::float2 _e15 = pts.inner[metal::min(unsigned(vi), 2u)]; out_2.clip = metal::float4(_e15, 1.0, 1.0); metal::float2 _e21 = pts.inner[metal::min(unsigned(vi), 2u)]; out_2.ndc = _e21; SkyOut _e22 = out_2; const auto _tmp_2 = _e22; return vs_skyOutput { _tmp_2.clip, _tmp_2.ndc }; } struct fs_skyInput { metal::float2 ndc [[user(loc0), center_perspective]]; }; struct fs_skyOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_skyOutput fs_sky( fs_skyInput varyings_3 [[stage_in]] , metal::float4 clip_1 [[position]] , constant Globals& G [[buffer(0)]] , constant LitU& Lit [[buffer(1)]] , constant SkyU& Sky [[buffer(3)]] , metal::texture2d t_panorama [[texture(11)]] , metal::sampler s_panorama [[sampler(4)]] , constant FogU& Fog [[buffer(8)]] ) { const SkyOut in_2 = { clip_1, varyings_3.ndc }; metal::float3 c = {}; metal::float4x4 _e3 = Lit.inv_view_proj; metal::float4 near = _e3 * metal::float4(in_2.ndc, 0.0, 1.0); metal::float4x4 _e11 = Lit.inv_view_proj; metal::float4 far = _e11 * metal::float4(in_2.ndc, 1.0, 1.0); metal::float3 ray = (far.xyz / metal::float3(far.w)) - (near.xyz / metal::float3(near.w)); uint bits = Sky.flags.x; if ((bits & 3u) != 0u) { metal::float3 _e35 = sky_dir(ray, Sky); if ((bits & SKY_DRAW_PROCEDURAL) != 0u) { metal::float3 _e40 = procedural_sky(_e35, Sky); c = _e40; } else { metal::float3 _e41 = panorama(_e35, Sky, t_panorama, s_panorama); c = _e41; } metal::float3 _e42 = c; float _e46 = Sky.sun.w; c = _e42 * _e46; } else { metal::float3 _e48 = sky(ray, Lit); c = _e48; } if ((bits & SKY_FOG) != 0u) { metal::float3 _e53 = c; metal::float3 _e55 = sky_fog(_e53, metal::normalize(ray), Lit, Sky); c = _e55; } uint _e59 = Fog.counts.z; if (_e59 != 0u) { metal::float3 _e62 = c; metal::float3 _e68 = sky_fog_volumes(_e62, near.xyz / metal::float3(near.w), metal::normalize(ray), G, Lit, Fog); c = _e68; } metal::float3 _e69 = c; metal::float3 _e70 = tonemap(_e69, Lit); metal::float4 _e73 = lit_output(metal::float4(_e70, 1.0), G, Lit); return fs_skyOutput { _e73 }; } struct fs_surfaceInput { metal::float3 world_12 [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv_5 [[user(loc2), center_perspective]]; uint flags_1 [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; }; struct fs_surfaceOutput { metal::float4 member_4 [[color(0)]]; }; fragment fs_surfaceOutput fs_surface( fs_surfaceInput varyings_4 [[stage_in]] , metal::float4 clip_2 [[position]] , bool facing [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant MaterialU& M [[buffer(9)]] , metal::texture2d t_base [[texture(4)]] , metal::texture2d t_normal [[texture(5)]] , metal::texture2d t_mr [[texture(6)]] , metal::texture2d t_emission [[texture(7)]] , metal::texture2d t_occlusion [[texture(8)]] , metal::sampler s_mat [[sampler(2)]] , constant LitU& Lit [[buffer(1)]] , constant ShadowU& Shadow [[buffer(2)]] , metal::depth2d t_shadow [[texture(0)]] , metal::sampler s_shadow [[sampler(0)]] , constant SkyU& Sky [[buffer(3)]] , metal::texturecube t_radiance [[texture(10)]] , metal::sampler s_radiance [[sampler(3)]] , metal::texture2d t_ao [[texture(1)]] , constant ProbeU& Probe [[buffer(4)]] , metal::texture2d t_probes [[texture(13)]] , metal::sampler s_probes [[sampler(6)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] , constant FogU& Fog [[buffer(8)]] ) { const VsOut in_3 = { clip_2, varyings_4.world_12, varyings_4.normal, varyings_4.uv_5, varyings_4.flags_1, {}, varyings_4.tangent, varyings_4.weight, {}, varyings_4.color }; metal::float3 c_1 = {}; float alpha = 1.0; bool local = {}; bool local_1 = {}; bool local_2 = {}; bool local_3 = {}; bool local_4 = {}; bool _e2 = mirrored(in_3, O); bool front_6 = facing != _e2; Samples _e4 = surface_samples(in_3, M, t_base, t_normal, t_mr, t_emission, t_occlusion, s_mat); if (SPEC_FACE_FLAGS ? ((in_3.flags & F_HIDDEN) != 0u) : false) { metal::discard_fragment(); } float _e16 = emerge_reveal(in_3.world, in_3.clip.xy, O); if (SPEC_EMERGE ? (_e16 <= 0.0) : false) { metal::discard_fragment(); } metal::float3 n_world = front_6 ? metal::normalize(in_3.normal) : -(metal::normalize(in_3.normal)); metal::float4x4 _e30 = G.view; metal::float3 n_view_1 = metal::normalize((_e30 * metal::float4(n_world, 0.0)).xyz); uint mode_1 = G.params.x; metal::float3 _e42 = srgb_to_linear(metal::float3(0.8)); if (SPEC_OTHER_MODES ? (mode_1 == SHADE_MATCAP) : false) { uint _e54 = G.params.w; metal::float3 _e55 = matcap(n_view_1, _e54); c_1 = _e55; } else { if (SPEC_OTHER_MODES ? (mode_1 == SHADE_NORMALS) : false) { metal::float3 _e66 = srgb_to_linear((n_world * 0.5) + metal::float3(0.5)); c_1 = _e66; } else { if (SPEC_OTHER_MODES ? (mode_1 == SHADE_FACE_ORIENT) : false) { metal::float3 tint = front_6 ? metal::float3(0.0, 0.25, 1.0) : metal::float3(1.0, 0.0, 0.0); metal::float3 _e81 = studio(n_view_1, _e42); metal::float3 _e82 = srgb_to_linear(tint); c_1 = metal::mix(_e81, _e82, 0.55); } else { if (SPEC_OTHER_MODES ? (mode_1 == SHADE_RANDOM) : false) { metal::float4 _e92 = O.color; metal::float3 _e94 = studio(n_view_1, _e92.xyz); c_1 = _e94; } else { if (SPEC_MATERIAL_MODE ? (mode_1 == SHADE_MATERIAL) : false) { uint _e104 = M.flags.y; if (_e104 == ALPHA_MASK) { float _e114 = M.emission.w; local = _e4.base.w < _e114; } else { local = false; } bool _e117 = local; if (SPEC_ALPHA_MASK ? _e117 : false) { metal::discard_fragment(); } uint _e124 = M.flags.y; if (SPEC_ALPHA_BLEND ? (_e124 == ALPHA_BLEND) : false) { alpha = _e4.base.w; } metal::float3 _e131 = pbr(in_3, front_6, _e4, G, M); c_1 = _e131; } else { if (SPEC_LIT ? (mode_1 == SHADE_LIT) : false) { uint _e141 = M.flags.y; if (_e141 == ALPHA_MASK) { float _e151 = M.emission.w; local_1 = _e4.base.w < _e151; } else { local_1 = false; } bool _e154 = local_1; if (SPEC_ALPHA_MASK ? _e154 : false) { metal::discard_fragment(); } uint _e161 = M.flags.y; if (SPEC_ALPHA_BLEND ? (_e161 == ALPHA_BLEND) : false) { alpha = _e4.base.w; } metal::float3 _e168 = lit(in_3, front_6, _e4, G, O, M, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, Fog); c_1 = _e168; } else { if (SPEC_OTHER_MODES ? (mode_1 == SHADE_UV_CHECKER) : false) { metal::float3 _e175 = checker(in_3.uv, G); metal::float3 _e176 = studio(n_view_1, _e175); c_1 = _e176; } else { if (mode_1 == SHADE_WEIGHTS) { uint _e185 = O.extra.x; local_2 = (_e185 & OBJ_HAS_WEIGHTS) != 0u; } else { local_2 = false; } bool _e191 = local_2; if (SPEC_OTHER_MODES ? _e191 : false) { metal::float3 _e195 = weight_color(in_3.weight); metal::float3 _e196 = studio(n_view_1, _e195); c_1 = _e196; } else { if (SPEC_OTHER_MODES ? (mode_1 == SHADE_LIGHT_COUNT) : false) { metal::float3 _e202 = light_count_color(O); metal::float3 _e203 = srgb_to_linear(_e202); metal::float3 _e204 = studio(n_view_1, _e203); c_1 = _e204; } else { if (SPEC_OTHER_MODES) { metal::float3 _e206 = studio(n_view_1, _e42); c_1 = _e206; } } } } } } } } } } uint _e211 = O.params.w; if (_e211 == 1u) { uint _e219 = G.params.y; local_3 = (_e219 & OV_SELECTION) != 0u; } else { local_3 = false; } bool _e225 = local_3; if (_e225) { local_4 = (in_3.flags & F_SELECTED) != 0u; } else { local_4 = false; } bool _e234 = local_4; if (SPEC_FACE_FLAGS ? _e234 : false) { metal::float3 _e237 = c_1; metal::float3 _e242 = srgb_to_linear(metal::float3(1.0, 0.635, 0.0)); c_1 = metal::mix(_e237, _e242, 0.4); } if (SPEC_LIT ? (mode_1 == SHADE_LIT) : false) { metal::float3 _e250 = c_1; metal::float3 _e251 = item_fade(_e250, O, Lit); metal::float3 _e252 = emerge_tint(_e251, _e16, O, Lit); float _e253 = alpha; metal::float4 _e255 = lit_output(metal::float4(_e252, _e253), G, Lit); return fs_surfaceOutput { _e255 }; } metal::float3 _e256 = c_1; float _e257 = alpha; metal::float4 _e259 = target_color(metal::float4(_e256, _e257), G); return fs_surfaceOutput { _e259 }; } struct fs_shadowInput { metal::float3 world_12 [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv_5 [[user(loc2), center_perspective]]; uint flags_1 [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; }; fragment void fs_shadow( fs_shadowInput varyings_5 [[stage_in]] , metal::float4 clip_3 [[position]] , constant ObjectU& O [[buffer(5)]] , constant MaterialU& M [[buffer(9)]] , metal::texture2d t_base [[texture(4)]] , metal::texture2d t_normal [[texture(5)]] , metal::texture2d t_mr [[texture(6)]] , metal::texture2d t_emission [[texture(7)]] , metal::texture2d t_occlusion [[texture(8)]] , metal::sampler s_mat [[sampler(2)]] ) { const VsOut in_4 = { clip_3, varyings_5.world_12, varyings_5.normal, varyings_5.uv_5, varyings_5.flags_1, {}, varyings_5.tangent, varyings_5.weight, {}, varyings_5.color }; bool local_5 = {}; Samples _e1 = surface_samples(in_4, M, t_base, t_normal, t_mr, t_emission, t_occlusion, s_mat); if ((in_4.flags & F_HIDDEN) != 0u) { metal::discard_fragment(); } float _e10 = emerge_reveal(in_4.world, metal::float2(-1.0), O); if (_e10 <= 0.0) { metal::discard_fragment(); } uint _e17 = M.flags.y; if (_e17 == ALPHA_MASK) { float _e27 = M.emission.w; local_5 = _e1.base.w < _e27; } else { local_5 = false; } bool _e30 = local_5; if (SPEC_ALPHA_MASK ? _e30 : false) { metal::discard_fragment(); } else { return; } } struct fs_idInput { metal::float3 world_12 [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv_5 [[user(loc2), center_perspective]]; uint flags_1 [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; }; struct fs_idOutput { metal::float4 id [[color(0)]]; }; fragment fs_idOutput fs_id( fs_idInput varyings_6 [[stage_in]] , metal::float4 clip_4 [[position]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant MaterialU& M [[buffer(9)]] , metal::texture2d t_base [[texture(4)]] , metal::texture2d t_normal [[texture(5)]] , metal::texture2d t_mr [[texture(6)]] , metal::texture2d t_emission [[texture(7)]] , metal::texture2d t_occlusion [[texture(8)]] , metal::sampler s_mat [[sampler(2)]] ) { const VsOut in_5 = { clip_4, varyings_6.world_12, varyings_6.normal, varyings_6.uv_5, varyings_6.flags_1, {}, varyings_6.tangent, varyings_6.weight, {}, varyings_6.color }; bool local_6 = {}; bool local_7 = {}; bool local_8 = {}; IdOut out_3 = {}; Samples _e1 = surface_samples(in_5, M, t_base, t_normal, t_mr, t_emission, t_occlusion, s_mat); if ((in_5.flags & F_HIDDEN) != 0u) { metal::discard_fragment(); } float _e10 = emerge_reveal(in_5.world, in_5.clip.xy, O); if (_e10 <= 0.0) { metal::discard_fragment(); } uint _e16 = G.params.x; if (!((_e16 == SHADE_MATERIAL))) { uint _e25 = G.params.x; local_6 = _e25 == SHADE_LIT; } else { local_6 = true; } bool materials = local_6; if (materials) { uint _e35 = M.flags.y; local_7 = _e35 == ALPHA_MASK; } else { local_7 = false; } bool _e39 = local_7; if (_e39) { float _e47 = M.emission.w; local_8 = _e1.base.w < _e47; } else { local_8 = false; } bool _e50 = local_8; if (_e50) { metal::discard_fragment(); } uint id_1 = O.params.z; uint _e60 = O.params.x; uint _e69 = O.params.y; uint bits_1 = ((_e60 == 1u) ? 1u : 0u) | ((_e69 == 1u) ? 2u : 0u); out_3.id = metal::float4(static_cast(id_1 & 255u), static_cast((id_1 >> 8u) & 255u), static_cast((id_1 >> 16u) & 255u), static_cast(bits_1)) / metal::float4(255.0); IdOut _e94 = out_3; const auto _tmp_3 = _e94; return fs_idOutput { _tmp_3.id }; } struct fs_normal_depthInput { metal::float3 world_12 [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv_5 [[user(loc2), center_perspective]]; uint flags_1 [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; }; struct fs_normal_depthOutput { metal::float4 normal_depth [[color(0)]]; metal::float4 surface [[color(1)]]; }; fragment fs_normal_depthOutput fs_normal_depth( fs_normal_depthInput varyings_7 [[stage_in]] , metal::float4 clip_5 [[position]] , bool facing_1 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant MaterialU& M [[buffer(9)]] , metal::texture2d t_base [[texture(4)]] , metal::texture2d t_normal [[texture(5)]] , metal::texture2d t_mr [[texture(6)]] , metal::texture2d t_emission [[texture(7)]] , metal::texture2d t_occlusion [[texture(8)]] , metal::sampler s_mat [[sampler(2)]] ) { const VsOut in_6 = { clip_5, varyings_7.world_12, varyings_7.normal, varyings_7.uv_5, varyings_7.flags_1, {}, varyings_7.tangent, varyings_7.weight, {}, varyings_7.color }; bool local_9 = {}; bool local_10 = {}; bool local_11 = {}; NormalDepthOut out_4 = {}; Samples _e2 = surface_samples(in_6, M, t_base, t_normal, t_mr, t_emission, t_occlusion, s_mat); if ((in_6.flags & F_HIDDEN) != 0u) { metal::discard_fragment(); } float _e11 = emerge_reveal(in_6.world, in_6.clip.xy, O); if (_e11 <= 0.0) { metal::discard_fragment(); } uint _e17 = G.params.x; if (!((_e17 == SHADE_MATERIAL))) { uint _e26 = G.params.x; local_9 = _e26 == SHADE_LIT; } else { local_9 = true; } bool materials_1 = local_9; if (materials_1) { uint _e36 = M.flags.y; local_10 = _e36 == ALPHA_MASK; } else { local_10 = false; } bool _e40 = local_10; if (_e40) { float _e48 = M.emission.w; local_11 = _e2.base.w < _e48; } else { local_11 = false; } bool _e51 = local_11; if (_e51) { metal::discard_fragment(); } bool _e52 = mirrored(in_6, O); bool front_7 = facing_1 != _e52; metal::float3 n_world_1 = front_7 ? metal::normalize(in_6.normal) : -(metal::normalize(in_6.normal)); metal::float4x4 _e62 = G.view; metal::float3 n_view_2 = metal::normalize((_e62 * metal::float4(n_world_1, 0.0)).xyz); float _e71 = M.factors.x; float metallic_3 = metal::clamp(_e71 * _e2.mr.z, 0.0, 1.0); float _e81 = M.factors.y; float roughness_9 = metal::clamp(_e81 * _e2.mr.y, 0.045, 1.0); metal::float4x4 _e92 = G.view; out_4.normal_depth = metal::float4(n_view_2, -((_e92 * metal::float4(in_6.world, 1.0)).z)); out_4.surface = metal::float4(metal::mix(metal::float3(0.04), _e2.base.xyz, metallic_3), roughness_9); NormalDepthOut _e107 = out_4; const auto _tmp_4 = _e107; return fs_normal_depthOutput { _tmp_4.normal_depth, _tmp_4.surface }; } struct vs_surface_extInput { metal::float3 pos [[attribute(0)]]; metal::float3 normal [[attribute(1)]]; metal::float2 uv_5 [[attribute(2)]]; uint flags_1 [[attribute(3)]]; metal::float4 tangent [[attribute(4)]]; float weight [[attribute(5)]]; metal::float2 uv1_ [[attribute(10)]]; }; struct vs_surface_extOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; metal::float2 uv1_ [[user(loc7), center_perspective]]; }; vertex vs_surface_extOutput vs_surface_ext( vs_surface_extInput varyings_8 [[stage_in]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] ) { const VsIn in_7 = { varyings_8.pos, varyings_8.normal, varyings_8.uv_5, varyings_8.flags_1, {}, varyings_8.tangent, varyings_8.weight }; const auto uv1_ = varyings_8.uv1_; VsOut _e2 = surface_vertex(in_7, G, O); VsOutExt _e3 = ext_vs_out(_e2, uv1_); const auto _tmp_5 = _e3; return vs_surface_extOutput { _tmp_5.clip, _tmp_5.world, _tmp_5.normal, _tmp_5.uv, _tmp_5.flags, _tmp_5.tangent, _tmp_5.weight, _tmp_5.color, _tmp_5.uv1_ }; } struct vs_surface_ext_instancedInput { metal::float3 pos [[attribute(0)]]; metal::float3 normal [[attribute(1)]]; metal::float2 uv_5 [[attribute(2)]]; uint flags_1 [[attribute(3)]]; metal::float4 tangent [[attribute(4)]]; float weight [[attribute(5)]]; metal::float4 row0_ [[attribute(6)]]; metal::float4 row1_ [[attribute(7)]]; metal::float4 row2_ [[attribute(8)]]; metal::float4 color [[attribute(9)]]; metal::float2 uv1_1 [[attribute(10)]]; }; struct vs_surface_ext_instancedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; metal::float2 uv1_ [[user(loc7), center_perspective]]; }; vertex vs_surface_ext_instancedOutput vs_surface_ext_instanced( vs_surface_ext_instancedInput varyings_9 [[stage_in]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] ) { const VsIn in_8 = { varyings_9.pos, varyings_9.normal, varyings_9.uv_5, varyings_9.flags_1, {}, varyings_9.tangent, varyings_9.weight }; const InstIn inst_1 = { varyings_9.row0_, varyings_9.row1_, varyings_9.row2_, varyings_9.color }; const auto uv1_1 = varyings_9.uv1_1; VsOut _e3 = surface_vertex_instanced(in_8, inst_1, G, O); VsOutExt _e4 = ext_vs_out(_e3, uv1_1); const auto _tmp_6 = _e4; return vs_surface_ext_instancedOutput { _tmp_6.clip, _tmp_6.world, _tmp_6.normal, _tmp_6.uv, _tmp_6.flags, _tmp_6.tangent, _tmp_6.weight, _tmp_6.color, _tmp_6.uv1_ }; } struct fs_surface_extInput { metal::float3 world_12 [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv_5 [[user(loc2), center_perspective]]; uint flags_1 [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; metal::float2 uv1_7 [[user(loc7), center_perspective]]; }; struct fs_surface_extOutput { metal::float4 member_10 [[color(0)]]; }; fragment fs_surface_extOutput fs_surface_ext( fs_surface_extInput varyings_10 [[stage_in]] , metal::float4 clip_6 [[position]] , bool facing_2 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant MaterialU& M [[buffer(9)]] , metal::texture2d t_base [[texture(4)]] , metal::texture2d t_normal [[texture(5)]] , metal::texture2d t_mr [[texture(6)]] , metal::texture2d t_emission [[texture(7)]] , metal::texture2d t_occlusion [[texture(8)]] , metal::sampler s_mat [[sampler(2)]] , metal::texture2d_array t_ext [[texture(9)]] , constant LitU& Lit [[buffer(1)]] , constant ShadowU& Shadow [[buffer(2)]] , metal::depth2d t_shadow [[texture(0)]] , metal::sampler s_shadow [[sampler(0)]] , constant SkyU& Sky [[buffer(3)]] , metal::texturecube t_radiance [[texture(10)]] , metal::sampler s_radiance [[sampler(3)]] , metal::texture2d t_ao [[texture(1)]] , constant ProbeU& Probe [[buffer(4)]] , metal::texture2d t_probes [[texture(13)]] , metal::sampler s_probes [[sampler(6)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] , metal::texture2d t_screen [[texture(3)]] , constant FogU& Fog [[buffer(8)]] ) { const VsOutExt in_9 = { clip_6, varyings_10.world_12, varyings_10.normal, varyings_10.uv_5, varyings_10.flags_1, {}, varyings_10.tangent, varyings_10.weight, {}, varyings_10.color, varyings_10.uv1_7 }; float alpha_1 = 1.0; metal::float3 c_2 = {}; bool local_12 = {}; bool local_13 = {}; VsOut _e2 = ext_base_in(in_9); bool _e3 = mirrored(_e2, O); bool front_8 = facing_2 != _e3; ExtSamples _e5 = sample_ext(in_9, M, t_base, t_normal, t_mr, t_emission, t_occlusion, s_mat, t_ext); if (SPEC_FACE_FLAGS ? ((in_9.flags & F_HIDDEN) != 0u) : false) { metal::discard_fragment(); } float _e17 = emerge_reveal(in_9.world, in_9.clip.xy, O); if (SPEC_EMERGE ? (_e17 <= 0.0) : false) { metal::discard_fragment(); } bool _e23 = ext_cut(_e5, M); if (_e23) { metal::discard_fragment(); } uint _e30 = M.flags.y; if (SPEC_ALPHA_BLEND ? (_e30 == ALPHA_BLEND) : false) { alpha_1 = _e5.base.w; } uint _e41 = G.params.x; bool lit_mode_8 = SPEC_LIT ? (_e41 == SHADE_LIT) : false; uint _e51 = G.params.x; if (SPEC_OTHER_MODES ? (_e51 == SHADE_LIGHTMAP) : false) { alpha_1 = 1.0; metal::float3 n_world_2 = front_8 ? metal::normalize(in_9.normal) : -(metal::normalize(in_9.normal)); metal::float4x4 _e65 = G.view; metal::float3 _e73 = srgb_to_linear(metal::float3(0.8)); metal::float3 _e74 = studio(metal::normalize((_e65 * metal::float4(n_world_2, 0.0)).xyz), _e73); c_2 = _e74; } else { uint _e79 = M.flags.w; if (SPEC_UNLIT ? ((_e79 & MAT_UNLIT) != 0u) : false) { c_2 = _e5.base.xyz; } else { metal::float3 _e88 = ext_shade(in_9, front_8, _e5, lit_mode_8, G, O, M, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, t_screen); c_2 = _e88; } if (SPEC_LIT ? lit_mode_8 : false) { metal::float3 _e92 = c_2; metal::float3 _e94 = ext_lit_finish(_e92, in_9.world, G, O, Lit, Sky, t_radiance, s_radiance, Fog); c_2 = _e94; } } uint _e99 = O.params.w; if (_e99 == 1u) { uint _e107 = G.params.y; local_12 = (_e107 & OV_SELECTION) != 0u; } else { local_12 = false; } bool _e113 = local_12; if (_e113) { local_13 = (in_9.flags & F_SELECTED) != 0u; } else { local_13 = false; } bool _e122 = local_13; if (SPEC_FACE_FLAGS ? _e122 : false) { metal::float3 _e125 = c_2; metal::float3 _e130 = srgb_to_linear(metal::float3(1.0, 0.635, 0.0)); c_2 = metal::mix(_e125, _e130, 0.4); } if (SPEC_LIT ? lit_mode_8 : false) { metal::float3 _e136 = c_2; metal::float3 _e137 = item_fade(_e136, O, Lit); metal::float3 _e138 = emerge_tint(_e137, _e17, O, Lit); float _e139 = alpha_1; metal::float4 _e141 = lit_output(metal::float4(_e138, _e139), G, Lit); return fs_surface_extOutput { _e141 }; } metal::float3 _e142 = c_2; float _e143 = alpha_1; metal::float4 _e145 = target_color(metal::float4(_e142, _e143), G); return fs_surface_extOutput { _e145 }; } struct fs_shadow_extInput { metal::float3 world_12 [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv_5 [[user(loc2), center_perspective]]; uint flags_1 [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; metal::float2 uv1_7 [[user(loc7), center_perspective]]; }; fragment void fs_shadow_ext( fs_shadow_extInput varyings_11 [[stage_in]] , metal::float4 clip_7 [[position]] , constant ObjectU& O [[buffer(5)]] , constant MaterialU& M [[buffer(9)]] , metal::texture2d t_base [[texture(4)]] , metal::texture2d t_normal [[texture(5)]] , metal::texture2d t_mr [[texture(6)]] , metal::texture2d t_emission [[texture(7)]] , metal::texture2d t_occlusion [[texture(8)]] , metal::sampler s_mat [[sampler(2)]] , metal::texture2d_array t_ext [[texture(9)]] ) { const VsOutExt in_10 = { clip_7, varyings_11.world_12, varyings_11.normal, varyings_11.uv_5, varyings_11.flags_1, {}, varyings_11.tangent, varyings_11.weight, {}, varyings_11.color, varyings_11.uv1_7 }; ExtSamples _e1 = sample_ext(in_10, M, t_base, t_normal, t_mr, t_emission, t_occlusion, s_mat, t_ext); if ((in_10.flags & F_HIDDEN) != 0u) { metal::discard_fragment(); } float _e10 = emerge_reveal(in_10.world, metal::float2(-1.0), O); if (_e10 <= 0.0) { metal::discard_fragment(); } bool _e13 = ext_cut(_e1, M); if (_e13) { metal::discard_fragment(); } else { return; } } struct fs_id_extInput { metal::float3 world_12 [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv_5 [[user(loc2), center_perspective]]; uint flags_1 [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; metal::float2 uv1_7 [[user(loc7), center_perspective]]; }; struct fs_id_extOutput { metal::float4 id [[color(0)]]; }; fragment fs_id_extOutput fs_id_ext( fs_id_extInput varyings_12 [[stage_in]] , metal::float4 clip_8 [[position]] , constant ObjectU& O [[buffer(5)]] , constant MaterialU& M [[buffer(9)]] , metal::texture2d t_base [[texture(4)]] , metal::texture2d t_normal [[texture(5)]] , metal::texture2d t_mr [[texture(6)]] , metal::texture2d t_emission [[texture(7)]] , metal::texture2d t_occlusion [[texture(8)]] , metal::sampler s_mat [[sampler(2)]] , metal::texture2d_array t_ext [[texture(9)]] ) { const VsOutExt in_11 = { clip_8, varyings_12.world_12, varyings_12.normal, varyings_12.uv_5, varyings_12.flags_1, {}, varyings_12.tangent, varyings_12.weight, {}, varyings_12.color, varyings_12.uv1_7 }; IdOut out_5 = {}; ExtSamples _e1 = sample_ext(in_11, M, t_base, t_normal, t_mr, t_emission, t_occlusion, s_mat, t_ext); if ((in_11.flags & F_HIDDEN) != 0u) { metal::discard_fragment(); } float _e10 = emerge_reveal(in_11.world, in_11.clip.xy, O); if (_e10 <= 0.0) { metal::discard_fragment(); } bool _e13 = ext_cut(_e1, M); if (_e13) { metal::discard_fragment(); } uint id_2 = O.params.z; uint _e23 = O.params.x; uint _e32 = O.params.y; uint bits_2 = ((_e23 == 1u) ? 1u : 0u) | ((_e32 == 1u) ? 2u : 0u); out_5.id = metal::float4(static_cast(id_2 & 255u), static_cast((id_2 >> 8u) & 255u), static_cast((id_2 >> 16u) & 255u), static_cast(bits_2)) / metal::float4(255.0); IdOut _e57 = out_5; const auto _tmp_7 = _e57; return fs_id_extOutput { _tmp_7.id }; } struct fs_normal_depth_extInput { metal::float3 world_12 [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv_5 [[user(loc2), center_perspective]]; uint flags_1 [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; metal::float2 uv1_7 [[user(loc7), center_perspective]]; }; struct fs_normal_depth_extOutput { metal::float4 normal_depth [[color(0)]]; metal::float4 surface [[color(1)]]; }; fragment fs_normal_depth_extOutput fs_normal_depth_ext( fs_normal_depth_extInput varyings_13 [[stage_in]] , metal::float4 clip_9 [[position]] , bool facing_3 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant MaterialU& M [[buffer(9)]] , metal::texture2d t_base [[texture(4)]] , metal::texture2d t_normal [[texture(5)]] , metal::texture2d t_mr [[texture(6)]] , metal::texture2d t_emission [[texture(7)]] , metal::texture2d t_occlusion [[texture(8)]] , metal::sampler s_mat [[sampler(2)]] , metal::texture2d_array t_ext [[texture(9)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] ) { const VsOutExt in_12 = { clip_9, varyings_13.world_12, varyings_13.normal, varyings_13.uv_5, varyings_13.flags_1, {}, varyings_13.tangent, varyings_13.weight, {}, varyings_13.color, varyings_13.uv1_7 }; NormalDepthOut out_6 = {}; ExtSamples _e2 = sample_ext(in_12, M, t_base, t_normal, t_mr, t_emission, t_occlusion, s_mat, t_ext); if ((in_12.flags & F_HIDDEN) != 0u) { metal::discard_fragment(); } float _e11 = emerge_reveal(in_12.world, in_12.clip.xy, O); if (_e11 <= 0.0) { metal::discard_fragment(); } bool _e14 = ext_cut(_e2, M); if (_e14) { metal::discard_fragment(); } VsOut _e15 = ext_base_in(in_12); bool _e16 = mirrored(_e15, O); bool front_9 = facing_3 != _e16; metal::float3 n_world_3 = front_9 ? metal::normalize(in_12.normal) : -(metal::normalize(in_12.normal)); metal::float4x4 _e26 = G.view; metal::float3 n_view_3 = metal::normalize((_e26 * metal::float4(n_world_3, 0.0)).xyz); ExtCtx _e33 = ext_ctx(in_12, front_9, _e2, false, G, O, M, Decal, t_decals, s_decals); metal::float4x4 _e38 = G.view; out_6.normal_depth = metal::float4(n_view_3, -((_e38 * metal::float4(in_12.world, 1.0)).z)); out_6.surface = metal::float4(metal::clamp(_e33.f0_, metal::float3(0.0), metal::float3(1.0)), _e33.roughness); NormalDepthOut _e55 = out_6; const auto _tmp_8 = _e55; return fs_normal_depth_extOutput { _tmp_8.normal_depth, _tmp_8.surface }; } struct vs_surface_lmInput { metal::float3 pos [[attribute(0)]]; metal::float3 normal [[attribute(1)]]; metal::float2 uv_5 [[attribute(2)]]; uint flags_1 [[attribute(3)]]; metal::float4 tangent [[attribute(4)]]; float weight [[attribute(5)]]; metal::float2 uv1_2 [[attribute(10)]]; metal::float2 uv_lm [[attribute(11)]]; }; struct vs_surface_lmOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; metal::float2 uv1_ [[user(loc7), center_perspective]]; metal::float2 uv_lm [[user(loc8), center_perspective]]; }; vertex vs_surface_lmOutput vs_surface_lm( vs_surface_lmInput varyings_14 [[stage_in]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] ) { const VsIn in_13 = { varyings_14.pos, varyings_14.normal, varyings_14.uv_5, varyings_14.flags_1, {}, varyings_14.tangent, varyings_14.weight }; const auto uv1_2 = varyings_14.uv1_2; const auto uv_lm = varyings_14.uv_lm; VsOutLm out_7 = {}; VsOut _e3 = surface_vertex(in_13, G, O); out_7.clip = _e3.clip; out_7.world = _e3.world; out_7.normal = _e3.normal; out_7.uv = _e3.uv; out_7.flags = _e3.flags; out_7.tangent = _e3.tangent; out_7.weight = _e3.weight; out_7.color = _e3.color; out_7.uv1_ = uv1_2; out_7.uv_lm = uv_lm; VsOutLm _e23 = out_7; const auto _tmp_9 = _e23; return vs_surface_lmOutput { _tmp_9.clip, _tmp_9.world, _tmp_9.normal, _tmp_9.uv, _tmp_9.flags, _tmp_9.tangent, _tmp_9.weight, _tmp_9.color, _tmp_9.uv1_, _tmp_9.uv_lm }; } struct fs_surface_lmInput { metal::float3 world_12 [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv_5 [[user(loc2), center_perspective]]; uint flags_1 [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; metal::float2 uv1_7 [[user(loc7), center_perspective]]; metal::float2 uv_lm_2 [[user(loc8), center_perspective]]; }; struct fs_surface_lmOutput { metal::float4 member_15 [[color(0)]]; }; fragment fs_surface_lmOutput fs_surface_lm( fs_surface_lmInput varyings_15 [[stage_in]] , metal::float4 clip_10 [[position]] , bool facing_4 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant MaterialU& M [[buffer(9)]] , metal::texture2d t_base [[texture(4)]] , metal::texture2d t_normal [[texture(5)]] , metal::texture2d t_mr [[texture(6)]] , metal::texture2d t_emission [[texture(7)]] , metal::texture2d t_occlusion [[texture(8)]] , metal::sampler s_mat [[sampler(2)]] , constant LitU& Lit [[buffer(1)]] , constant ShadowU& Shadow [[buffer(2)]] , metal::depth2d t_shadow [[texture(0)]] , metal::sampler s_shadow [[sampler(0)]] , constant SkyU& Sky [[buffer(3)]] , metal::texturecube t_radiance [[texture(10)]] , metal::sampler s_radiance [[sampler(3)]] , metal::texture2d t_ao [[texture(1)]] , metal::texture2d_array t_lightmap [[texture(12)]] , metal::sampler s_lightmap [[sampler(5)]] , constant ProbeU& Probe [[buffer(4)]] , metal::texture2d t_probes [[texture(13)]] , metal::sampler s_probes [[sampler(6)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] , constant FogU& Fog [[buffer(8)]] ) { const VsOutLm in_14 = { clip_10, varyings_15.world_12, varyings_15.normal, varyings_15.uv_5, varyings_15.flags_1, {}, varyings_15.tangent, varyings_15.weight, {}, varyings_15.color, varyings_15.uv1_7, varyings_15.uv_lm_2 }; metal::float3 c_3 = {}; float alpha_2 = 1.0; bool local_14 = {}; bool local_15 = {}; bool local_16 = {}; VsOutExt _e2 = lm_ext_in(in_14); VsOut _e3 = ext_base_in(_e2); bool _e4 = mirrored(_e3, O); bool front_10 = facing_4 != _e4; Samples _e6 = surface_samples(_e3, M, t_base, t_normal, t_mr, t_emission, t_occlusion, s_mat); if (SPEC_FACE_FLAGS ? ((in_14.flags & F_HIDDEN) != 0u) : false) { metal::discard_fragment(); } float _e18 = emerge_reveal(in_14.world, in_14.clip.xy, O); if (SPEC_EMERGE ? (_e18 <= 0.0) : false) { metal::discard_fragment(); } metal::float3 _e25 = lightmap_light(in_14.uv_lm, O, t_lightmap, s_lightmap); uint _e33 = G.params.x; if (SPEC_OTHER_MODES ? (_e33 == SHADE_LIGHTMAP) : false) { metal::float3 _e38 = tonemap(_e25, Lit); c_3 = _e38; } else { uint _e43 = M.flags.y; if (_e43 == ALPHA_MASK) { float _e53 = M.emission.w; local_14 = _e6.base.w < _e53; } else { local_14 = false; } bool _e56 = local_14; if (SPEC_ALPHA_MASK ? _e56 : false) { metal::discard_fragment(); } uint _e63 = M.flags.y; if (SPEC_ALPHA_BLEND ? (_e63 == ALPHA_BLEND) : false) { alpha_2 = _e6.base.w; } metal::float3 _e71 = lit_with(_e3, front_10, _e6, true, _e25, G, O, M, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, Fog); c_3 = _e71; } uint _e76 = O.params.w; if (_e76 == 1u) { uint _e84 = G.params.y; local_15 = (_e84 & OV_SELECTION) != 0u; } else { local_15 = false; } bool _e90 = local_15; if (_e90) { local_16 = (in_14.flags & F_SELECTED) != 0u; } else { local_16 = false; } bool _e99 = local_16; if (SPEC_FACE_FLAGS ? _e99 : false) { metal::float3 _e102 = c_3; metal::float3 _e107 = srgb_to_linear(metal::float3(1.0, 0.635, 0.0)); c_3 = metal::mix(_e102, _e107, 0.4); } metal::float3 _e110 = c_3; metal::float3 _e111 = item_fade(_e110, O, Lit); metal::float3 _e112 = emerge_tint(_e111, _e18, O, Lit); float _e113 = alpha_2; metal::float4 _e115 = lit_output(metal::float4(_e112, _e113), G, Lit); return fs_surface_lmOutput { _e115 }; } struct fs_surface_ext_lmInput { metal::float3 world_12 [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv_5 [[user(loc2), center_perspective]]; uint flags_1 [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; metal::float2 uv1_7 [[user(loc7), center_perspective]]; metal::float2 uv_lm_2 [[user(loc8), center_perspective]]; }; struct fs_surface_ext_lmOutput { metal::float4 member_16 [[color(0)]]; }; fragment fs_surface_ext_lmOutput fs_surface_ext_lm( fs_surface_ext_lmInput varyings_16 [[stage_in]] , metal::float4 clip_11 [[position]] , bool facing_5 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant MaterialU& M [[buffer(9)]] , metal::texture2d t_base [[texture(4)]] , metal::texture2d t_normal [[texture(5)]] , metal::texture2d t_mr [[texture(6)]] , metal::texture2d t_emission [[texture(7)]] , metal::texture2d t_occlusion [[texture(8)]] , metal::sampler s_mat [[sampler(2)]] , metal::texture2d_array t_ext [[texture(9)]] , constant LitU& Lit [[buffer(1)]] , constant ShadowU& Shadow [[buffer(2)]] , metal::depth2d t_shadow [[texture(0)]] , metal::sampler s_shadow [[sampler(0)]] , constant SkyU& Sky [[buffer(3)]] , metal::texturecube t_radiance [[texture(10)]] , metal::sampler s_radiance [[sampler(3)]] , metal::texture2d t_ao [[texture(1)]] , metal::texture2d_array t_lightmap [[texture(12)]] , metal::sampler s_lightmap [[sampler(5)]] , constant ProbeU& Probe [[buffer(4)]] , metal::texture2d t_probes [[texture(13)]] , metal::sampler s_probes [[sampler(6)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] , metal::texture2d t_screen [[texture(3)]] , constant FogU& Fog [[buffer(8)]] ) { const VsOutLm in_15 = { clip_11, varyings_16.world_12, varyings_16.normal, varyings_16.uv_5, varyings_16.flags_1, {}, varyings_16.tangent, varyings_16.weight, {}, varyings_16.color, varyings_16.uv1_7, varyings_16.uv_lm_2 }; metal::float3 c_4 = {}; float alpha_3 = 1.0; bool local_17 = {}; bool local_18 = {}; VsOutExt _e2 = lm_ext_in(in_15); VsOut _e3 = ext_base_in(_e2); bool _e4 = mirrored(_e3, O); bool front_11 = facing_5 != _e4; ExtSamples _e6 = sample_ext(_e2, M, t_base, t_normal, t_mr, t_emission, t_occlusion, s_mat, t_ext); if (SPEC_FACE_FLAGS ? ((in_15.flags & F_HIDDEN) != 0u) : false) { metal::discard_fragment(); } float _e18 = emerge_reveal(in_15.world, in_15.clip.xy, O); if (SPEC_EMERGE ? (_e18 <= 0.0) : false) { metal::discard_fragment(); } metal::float3 _e25 = lightmap_light(in_15.uv_lm, O, t_lightmap, s_lightmap); uint _e33 = G.params.x; if (SPEC_OTHER_MODES ? (_e33 == SHADE_LIGHTMAP) : false) { metal::float3 _e38 = tonemap(_e25, Lit); c_4 = _e38; } else { bool _e39 = ext_cut(_e6, M); if (_e39) { metal::discard_fragment(); } uint _e44 = M.flags.y; if (SPEC_ALPHA_BLEND ? (_e44 == ALPHA_BLEND) : false) { alpha_3 = _e6.base.w; } uint _e55 = M.flags.w; if (SPEC_UNLIT ? ((_e55 & MAT_UNLIT) != 0u) : false) { c_4 = _e6.base.xyz; } else { metal::float3 _e66 = ext_shade_with(_e2, front_11, _e6, true, true, _e25, G, O, M, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, t_screen); c_4 = _e66; } metal::float3 _e67 = c_4; metal::float3 _e69 = ext_lit_finish(_e67, in_15.world, G, O, Lit, Sky, t_radiance, s_radiance, Fog); c_4 = _e69; } uint _e74 = O.params.w; if (_e74 == 1u) { uint _e82 = G.params.y; local_17 = (_e82 & OV_SELECTION) != 0u; } else { local_17 = false; } bool _e88 = local_17; if (_e88) { local_18 = (in_15.flags & F_SELECTED) != 0u; } else { local_18 = false; } bool _e97 = local_18; if (SPEC_FACE_FLAGS ? _e97 : false) { metal::float3 _e100 = c_4; metal::float3 _e105 = srgb_to_linear(metal::float3(1.0, 0.635, 0.0)); c_4 = metal::mix(_e100, _e105, 0.4); } metal::float3 _e108 = c_4; metal::float3 _e109 = item_fade(_e108, O, Lit); metal::float3 _e110 = emerge_tint(_e109, _e18, O, Lit); float _e111 = alpha_3; metal::float4 _e113 = lit_output(metal::float4(_e110, _e111), G, Lit); return fs_surface_ext_lmOutput { _e113 }; } struct vs_surface_skinnedInput { metal::float3 pos [[attribute(0)]]; metal::float3 normal [[attribute(1)]]; metal::float2 uv_5 [[attribute(2)]]; uint flags_1 [[attribute(3)]]; metal::float4 tangent [[attribute(4)]]; float weight [[attribute(5)]]; metal::uint4 joints [[attribute(12)]]; metal::float4 weights [[attribute(13)]]; }; struct vs_surface_skinnedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; }; vertex vs_surface_skinnedOutput vs_surface_skinned( vs_surface_skinnedInput varyings_17 [[stage_in]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant SkinU& Skin [[buffer(6)]] ) { const VsIn in_16 = { varyings_17.pos, varyings_17.normal, varyings_17.uv_5, varyings_17.flags_1, {}, varyings_17.tangent, varyings_17.weight }; const SkinIn s = { varyings_17.joints, varyings_17.weights }; VsOut _e2 = skinned_vertex(in_16, s, G, O, Skin); const auto _tmp_10 = _e2; return vs_surface_skinnedOutput { _tmp_10.clip, _tmp_10.world, _tmp_10.normal, _tmp_10.uv, _tmp_10.flags, _tmp_10.tangent, _tmp_10.weight, _tmp_10.color }; } struct vs_surface_ext_skinnedInput { metal::float3 pos [[attribute(0)]]; metal::float3 normal [[attribute(1)]]; metal::float2 uv_5 [[attribute(2)]]; uint flags_1 [[attribute(3)]]; metal::float4 tangent [[attribute(4)]]; float weight [[attribute(5)]]; metal::uint4 joints [[attribute(12)]]; metal::float4 weights [[attribute(13)]]; metal::float2 uv1_3 [[attribute(10)]]; }; struct vs_surface_ext_skinnedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; metal::float2 uv1_ [[user(loc7), center_perspective]]; }; vertex vs_surface_ext_skinnedOutput vs_surface_ext_skinned( vs_surface_ext_skinnedInput varyings_18 [[stage_in]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant SkinU& Skin [[buffer(6)]] ) { const VsIn in_17 = { varyings_18.pos, varyings_18.normal, varyings_18.uv_5, varyings_18.flags_1, {}, varyings_18.tangent, varyings_18.weight }; const SkinIn s_1 = { varyings_18.joints, varyings_18.weights }; const auto uv1_3 = varyings_18.uv1_3; VsOut _e3 = skinned_vertex(in_17, s_1, G, O, Skin); VsOutExt _e4 = ext_vs_out(_e3, uv1_3); const auto _tmp_11 = _e4; return vs_surface_ext_skinnedOutput { _tmp_11.clip, _tmp_11.world, _tmp_11.normal, _tmp_11.uv, _tmp_11.flags, _tmp_11.tangent, _tmp_11.weight, _tmp_11.color, _tmp_11.uv1_ }; }  @Ð Ð/ ,@  P     {Ðþ—4ÌhÜäF‚�SKw;žP•hÛ— REò«W vs_surfacemainv4struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _408[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const VsOutExt _1419 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1447 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1473 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1528 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _1895[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _2467 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _2525 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; static float4 gl_Position; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float weight_1; static float4 color; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float weight_1 : TEXCOORD5; float4 color : TEXCOORD6; float4 gl_Position : SV_Position; }; void vert_main() { VsOut _out = _2525; VsIn _2489 = { pos, normal, uv, flags, tangent, weight }; float4 _2531 = mul(float4(_2489.pos, 1.0f), O_1_m0.model); _out.clip = mul(_2531, G_1_m0.view_proj); _out.world = _2531.xyz; _out.normal = normalize(mul(float4(_2489.normal, 0.0f), O_1_m0.normal).xyz); _out.uv = _2489.uv; _out.flags = _2489.flags; _out.tangent = float4(normalize(mul(float4(_2489.tangent.xyz, 0.0f), O_1_m0.model).xyz), _2489.tangent.w * (((O_1_m0.extra.x & 2u) != 0u) ? (-1.0f) : 1.0f)); _out.weight = _2489.weight; _out.color = float4(1.0f, 1.0f, 1.0f, 1.0f); gl_Position = _out.clip; world = _out.world; normal_1 = _out.normal; uv_1 = _out.uv; flags_1 = _out.flags; tangent_1 = _out.tangent; weight_1 = _out.weight; color = _out.color; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.weight_1 = weight_1; stage_output.color = color; return stage_output; } vs_surface_instancedmain8struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _408[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const VsOutExt _1419 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1447 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1473 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1528 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _1895[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _2467 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _2534 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; static float4 gl_Position; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 row0; static float4 row1; static float4 row2; static float4 color; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float weight_1; static float4 color_1; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 row0 : TEXCOORD6; float4 row1 : TEXCOORD7; float4 row2 : TEXCOORD8; float4 color : TEXCOORD9; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float weight_1 : TEXCOORD5; float4 color_1 : TEXCOORD6; float4 gl_Position : SV_Position; }; void vert_main() { VsOut _out = _2534; VsIn _2489 = { pos, normal, uv, flags, tangent, weight }; InstIn _2507 = { row0, row1, row2, color }; float4 _2537 = float4(_2489.pos, 1.0f); float4 _2548 = mul(float4(float3(dot(_2507.row0, _2537), dot(_2507.row1, _2537), dot(_2507.row2, _2537)), 1.0f), O_1_m0.model); float3 _2555 = float3(_2507.row0.x, _2507.row1.x, _2507.row2.x); float3 _2562 = float3(_2507.row0.y, _2507.row1.y, _2507.row2.y); float3 _2569 = float3(_2507.row0.z, _2507.row1.z, _2507.row2.z); bool _2572 = dot(_2555, cross(_2562, _2569)) < 0.0f; _out.clip = mul(_2548, G_1_m0.view_proj); _out.world = _2548.xyz; _out.normal = normalize(mul(float4(mul(_2489.normal, float3x3(cross(_2562, _2569), cross(_2569, _2555), cross(_2555, _2562))) * (_2572 ? (-1.0f) : 1.0f), 0.0f), O_1_m0.normal).xyz); _out.uv = _2489.uv; _out.flags = _2489.flags | (_2572 ? 128u : 0u); _out.tangent = float4(normalize(mul(float4(mul(_2489.tangent.xyz, float3x3(_2555, _2562, _2569)), 0.0f), O_1_m0.model).xyz), _2489.tangent.w * ((((O_1_m0.extra.x & 2u) != 0u) != _2572) ? (-1.0f) : 1.0f)); _out.weight = _2489.weight; _out.color = _2507.color; gl_Position = _out.clip; world = _out.world; normal_1 = _out.normal; uv_1 = _out.uv; flags_1 = _out.flags; tangent_1 = _out.tangent; weight_1 = _out.weight; color_1 = _out.color; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; row0 = stage_input.row0; row1 = stage_input.row1; row2 = stage_input.row2; color = stage_input.color; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.weight_1 = weight_1; stage_output.color_1 = color_1; return stage_output; } vs_skymain6,struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _192[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const VsOutExt _1108 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1137 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _1431[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _1939 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float2 _1973[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const SkyOut _1978 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 ndc; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 ndc : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { SkyOut _out = _1978; _out.clip = float4(_1973[min(uint(gl_VertexIndex), 2u)], 1.0f, 1.0f); _out.ndc = _1973[min(uint(gl_VertexIndex), 2u)]; gl_Position = _out.clip; ndc = _out.ndc; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.ndc = ndc; return stage_output; } fs_skymainù struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _259[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const uint _2260[4] = { 0u, 0u, 0u, 0u }; static const float2 _2263[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _2270[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOutExt _2912 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _2938 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _3231[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _3928 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; Texture2D t_panorama : register(t11); SamplerState s_panorama : register(s4); static float4 gl_FragCoord; static float2 ndc; static float4 _3957; struct SPIRV_Cross_Input { float2 ndc : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _3957 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float sky_curve(float c, float curve) { return clamp(1.0f - pow(max(1.0f - c, 9.9999999747524270787835121154785e-07f), 1.0f / curve), 0.0f, 1.0f); } float3 procedural_sky(float3 d) { float3 sky = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); float _1023 = acos(clamp(d.y, -1.0f, 1.0f)); float _1034 = sky_curve(1.0f - (_1023 / 1.57079637050628662109375f), Sky_1_m0.sky_top.w); sky = lerp(Sky_1_m0.sky_horizon.xyz, Sky_1_m0.sky_top.xyz, float3(_1034, _1034, _1034)) * Sky_1_m0.sky_horizon.w; uint _1042 = min(Sky_1_m0.flags.z, 4u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _1042)) { break; } uint _1073 = min(i, 3u); float _1082 = acos(clamp(dot(Sky_1_m0.suns[_1073].direction.xyz, d), -1.0f, 1.0f)); if (_1082 < Sky_1_m0.suns[_1073].direction.w) { sky = Sky_1_m0.suns[_1073].color.xyz; } else { if (_1082 < Sky_1_m0.sun.x) { float _1104 = sky_curve((_1082 - Sky_1_m0.suns[_1073].direction.w) / (Sky_1_m0.sun.x - Sky_1_m0.suns[_1073].direction.w), Sky_1_m0.sun.y); sky = lerp(Sky_1_m0.suns[_1073].color.xyz, sky, float3(_1104, _1104, _1104)); } } i++; continue; } float _1119 = sky_curve((_1023 - 1.57079637050628662109375f) / 1.57079637050628662109375f, Sky_1_m0.ground_bottom.w); float3 _1124 = lerp(Sky_1_m0.ground_horizon.xyz, Sky_1_m0.ground_bottom.xyz, float3(_1119, _1119, _1119)) * Sky_1_m0.ground_horizon.w; bool _1127 = d.y >= 0.0f; bool3 _1129 = bool3(_1127, _1127, _1127); return float3(_1129.x ? sky.x : _1124.x, _1129.y ? sky.y : _1124.y, _1129.z ? sky.z : _1124.z) * Sky_1_m0.sun.z; } int naga_mod(int lhs, int rhs) { int _1146 = ((rhs == 0) || ((lhs == int(0x80000000)) && (rhs == (-1)))) ? 1 : rhs; return lhs - ((lhs / _1146) * _1146); } float3 panorama(float3 d) { float2 _1168 = float2(frac(atan2(d.x, -d.z) / 6.283185482025146484375f), acos(clamp(d.y, -1.0f, 1.0f)) / 3.1415927410125732421875f); if ((Sky_1_m0.flags.x & 4u) != 0u) { return t_panorama.SampleLevel(s_panorama, _1168, 0.0f).xyz * Sky_1_m0.sun.z; } uint _1182_dummy_parameter; int2 _1183 = int2(spvTextureSize(t_panorama, uint(0), _1182_dummy_parameter)); int _1209; spvTextureSize(t_panorama, 0u, _1209); int _1211 = int(min(uint(0), uint(int(_1209) - 1))); uint _1212_dummy_parameter; return t_panorama.Load(int3(int2(min(uint2(int2(naga_mod(naga_mod(int(clamp(floor(_1168.x * float(_1183.x)), -2147483648.0f, 2147483520.0f)), _1183.x) + _1183.x, _1183.x), min(max(int(clamp(floor(_1168.y * float(_1183.y)), -2147483648.0f, 2147483520.0f)), 0), (_1183.y - 1)))), uint2(int2(spvTextureSize(t_panorama, uint(_1211), _1212_dummy_parameter)) - int2(1, 1)))), _1211)).xyz * Sky_1_m0.sun.z; } float3 sky(float3 dir) { float _670 = acos(clamp(dot(normalize(dir), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_670 <= 1.57079637050628662109375f) { float _680 = clamp(1.0f - pow(max(1.0f - (1.0f - (_670 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_680, _680, _680)); } float _695 = clamp(1.0f - pow(max(1.0f - ((_670 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_695, _695, _695)); } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _1359 = max(x, 0.0f) * max(x, 0.0f); float _1360 = _1359 * _1359; return _1360 * _1360; } float3 fog_sun_scatter(float3 fc, float3 dir) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _1378 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _1378)) { break; } uint _1401 = pool_sun(k); if (Lit_1_m0.lights[min(_1401, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_1401, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir, -Lit_1_m0.lights[min(_1401, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 sky_fog(float3 c, float3 dir) { return lerp(c, fog_sun_scatter(lerp(Sky_1_m0.fog_color.xyz, c, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)), dir), float3(Sky_1_m0.fog.y, Sky_1_m0.fog.y, Sky_1_m0.fog.y)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _1475 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _1479 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_1475 == 4u) { return float2(0.0f, _1479); } float3 _1488 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _1489 = abs(d); bool3 _1490 = bool3(_1489.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _1489.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _1489.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _1491 = float3(_1490.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _1490.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _1490.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _1494 = ((-_1488) - o) / _1491; float3 _1496 = (_1488 - o) / _1491; float3 _1497 = min(_1494, _1496); float3 _1498 = max(_1494, _1496); r = float2(max(0.0f, _1497.y), min(_1479, _1498.y)); if (_1475 == 3u) { r = float2(max(max(r.x, _1497.x), _1497.z), min(min(r.y, _1498.x), _1498.z)); } else { if (_1475 == 0u) { a = dot(d / _1488, d / _1488); b = dot(o / _1488, d / _1488); c = dot(o / _1488, o / _1488) - 1.0f; } else { float _1537 = min(_1488.x, _1488.z); float _1542 = (_1475 == 1u) ? (_1537 / (2.0f * _1488.y)) : 0.0f; float _1545 = _1488.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_1542 * _1542) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_1542 * _1542) * _1545) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_1475 == 1u) ? (((_1542 * _1542) * _1545) * _1545) : (_1537 * _1537)); } } float _1591 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_1591 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _1655 = min(((-b) - sqrt(_1591)) / a, ((-b) + sqrt(_1591)) / a); float _1668 = max(((-b) - sqrt(_1591)) / a, ((-b) + sqrt(_1591)) / a); if (a > 0.0f) { r = float2(max(r.x, _1655), min(r.y, _1668)); } else { if (r.x < min(r.y, _1655)) { r.y = min(r.y, _1655); } else { r.x = max(r.x, _1668); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _1712 = min(k, 15u); rho = Fog_1_m0.entries[_1712].material.x * min(exp2((-Fog_1_m0.entries[_1712].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_1712].material.w)), 1.0f); if (Fog_1_m0.entries[_1712].material.z > 0.0f) { uint _1739 = uint(clamp(Fog_1_m0.entries[_1712].albedo.w, 0.0f, 4294967040.0f)); float3 _1742 = Fog_1_m0.entries[_1712].size.xyz * 0.5f; float _1745 = min(_1742.x, _1742.z); if (_1739 == 0u) { float _1751 = length(lp / _1742); sdf = (_1751 * (_1751 - 1.0f)) / max(length(lp / (_1742 * _1742)), 9.9999999600419720025001879548654e-13f); } else { if (_1739 == 3u) { float3 _1764 = abs(lp) - _1742; sdf = length(max(_1764, float3(0.0f, 0.0f, 0.0f))) + min(max(_1764.x, max(_1764.y, _1764.z)), 0.0f); } else { if (_1739 == 2u) { float2 _1785 = float2(length(lp.xz) - _1745, abs(lp.y) - _1742.y); sdf = min(max(_1785.x, _1785.y), 0.0f) + length(max(_1785, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _1745 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _1742.y))), float2(length(lp.xz), lp.y - _1742.y)), (-_1742.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_1712].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_1712].material.z); } return rho; } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float3 fog_light(uint n, float3 p, float3 dir) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _1946 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_1946].lights.z, 8u))) { break; } uint _1982 = min(((((k < 4u) ? Fog_1_m0.entries[_1946].lights.x : Fog_1_m0.entries[_1946].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _1983 = min(_1982, 63u); l = -Lit_1_m0.lights[_1983].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_1983].info.x != 0u) { float3 _1996 = Lit_1_m0.lights[_1983].position.xyz - p; float _1998 = max(length(_1996), 9.9999999747524270787835121154785e-07f); l = _1996 / float3(_1998, _1998, _1998); atten = omni_attenuation(length(_1996), Lit_1_m0.lights[_1983].position.w, Lit_1_m0.lights[_1983].direction.w); if (Lit_1_m0.lights[_1983].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_1983].direction.xyz), Lit_1_m0.lights[_1983].spot.x)) / max(1.0f - Lit_1_m0.lights[_1983].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_1983].spot.y)); } } float _2039 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir, l)); sum += (Lit_1_m0.lights[_1983].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _2039) * sqrt(_2039))) * Fog_1_m0.light_fog[min((_1982 >> 2u), 15u)][min((_1982 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _1837 = min(k, 15u); if ((Fog_1_m0.entries[_1837].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_1837].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_1837].material.y) * a), 1.0f); } float _1855 = clamp((-a) / b, t0, t1); float _1857 = (b > 0.0f) ? _1855 : t0; float _1859 = (b > 0.0f) ? t1 : _1855; float _1864 = ((Fog_1_m0.entries[_1837].material.y * abs(b)) * (_1859 - _1857)) * 0.693147182464599609375f; return Fog_1_m0.entries[_1837].material.x * (((t1 - t0) - (_1859 - _1857)) + ((min(exp2((-Fog_1_m0.entries[_1837].material.y) * max(a + (b * ((b > 0.0f) ? _1857 : _1859)), 0.0f)), 1.0f) * (_1859 - _1857)) * ((_1864 < 0.00999999977648258209228515625f) ? (1.0f - (_1864 * (0.5f - (_1864 * (0.16666667163372039794921875f - (_1864 / 24.0f)))))) : ((1.0f - exp(-_1864)) / _1864)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _2084 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _2086 = false; float tau = 0.0f; bool _2076 = false; uint i = 0u; bool _2079 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _2089 = min(k, 15u); float3 _2095 = mul(float4(o, 1.0f), Fog_1_m0.entries[_2089].to_local).xyz; float3 _2099 = mul(float4(d, 0.0f), Fog_1_m0.entries[_2089].to_local).xyz; float _2106 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2089].material.w; float _2110 = dot(d, Fog_1_m0.up.xyz); bool _2113 = Fog_1_m0.entries[_2089].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_2089].material.y > 0.0f) { _2076 = ((-_2106) / _2110) > ch.x; } else { _2076 = false; } if (_2076) { _2079 = ((-_2106) / _2110) < ch.y; } else { _2079 = false; } if (_2079) { split = (-_2106) / _2110; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_2113 ? 12u : 4u))) { break; } uint _2164 = i & 3u; if (!(_2164 == 0u)) { _2084 = _2164 == 3u; } else { _2084 = true; } float _2172 = _2084 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_2164 == 0u)) { _2086 = _2164 == 3u; } else { _2086 = true; } float _2180 = _2086 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _2183 = float2(split, ch.y); float2 _2186 = float2(ch.x, split); bool _2188 = i < 8u; bool2 _2190 = bool2(_2188, _2188); float2 _2189 = float2(_2190.x ? _2186.x : _2183.x, _2190.y ? _2186.y : _2183.y); bool _2192 = i < 4u; bool2 _2194 = bool2(_2192, _2192); float2 _2193 = float2(_2194.x ? ch.x : _2189.x, _2194.y ? ch.y : _2189.y); float _2198 = (_2193.y - _2193.x) * 0.5f; float _2207 = ((_2193.x + _2193.y) * 0.5f) + (_2198 * ((_2164 < 2u) ? (-_2172) : _2172)); float3 _2209 = o + (d * _2207); float _2212 = fog_density(k, _2209, _2095 + (_2099 * _2207)); if (i < 4u) { q += (((Fog_1_m0.entries[_2089].albedo.xyz * fog_light(k, _2209, d)) + Fog_1_m0.entries[_2089].emission.xyz) * ((_2180 * _2198) * clamp(_2212, 0.0f, 1.0f))); } else { tau += ((_2180 * _2198) * _2212); } i++; continue; } if (!_2113) { tau = fog_falloff_depth(k, _2106, _2110, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _2260; uint i_3 = 0u; uint n = 0u; bool _2266 = false; float2 chords[4] = _2263; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _2270; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _2283 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_2283 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _2313 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_2283) { _2266 = _2313 == 0u; } else { _2266 = false; } if (_2266) { break; } uint _2325 = _2283 ? i_2 : (min(_2313, 16u) - 1u); uint _2326 = min(_2325, 15u); float2 _2335 = fog_chord(_2325, mul(float4(o, 1.0f), Fog_1_m0.entries[_2326].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_2326].to_local).xyz, t_end); if (_2335.y > _2335.x) { at[min(m, 3u)] = _2325; chords[min(m, 3u)] = _2335; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _2492 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _2492)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _2612 = exp(-tau); return (c * _2612) + (q * ((1.0f - _2612) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 sky_fog_volumes(float3 c, float3 near_point, float3 dir) { float3 _2691 = near_point - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(near_point, 1.0f), G_1_m0.view).z); bool _2694 = G_1_m0.camera_pos.w > 0.5f; bool3 _2696 = bool3(_2694, _2694, _2694); return lerp(c, fog_integrate(c, float3(_2696.x ? _2691.x : G_1_m0.camera_pos.xyz.x, _2696.y ? _2691.y : G_1_m0.camera_pos.xyz.y, _2696.z ? _2691.z : G_1_m0.camera_pos.xyz.z), dir, 1000000.0f, Fog_1_m0.counts.y), float3(Fog_1_m0.params.z, Fog_1_m0.params.z, Fog_1_m0.params.z)); } float3 filmic_curve(float3 x) { float _713 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _717 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _723 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _727 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_713, _713, _713))) + float3(_717, _717, _717)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_723, _723, _723))) - float3(_727, _727, _727); } float3 aces_curve(float3 c, float white) { float3 _775 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _783 = ((_775 * (_775 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_775 * ((_775 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _788 = 1.7999999523162841796875f * white; float _796 = ((_788 * (_788 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_788 * ((0.98372900485992431640625f * _788) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _783), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _783), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _783)) / float3(_796, _796, _796); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _851 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_851, _851, _851); float3 _856 = v * v; float3 _857 = _856 * _856; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_856 * 4.01109981536865234375f)) - ((_856 * 25.68199920654296875f) * v)) + (_857 * 70.35900115966796875f)) - ((_857 * 74.7779998779296875f) * v)) + ((_857 * 27.069000244140625f) * _856), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _886 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_886 * Lit_1_m0.tone.y) + _886) / ((_886 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_886) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_886, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_886); } return _886; } float3 linear_to_srgb(float3 c) { float3 _189 = c * 12.9200000762939453125f; float3 _192 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _193 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_193.x ? _189.x : _192.x, _193.y ? _189.y : _192.y, _193.z ? _189.z : _192.z); } float4 target_color(float4 c) { float4 _207 = clamp(c, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if (G_1_m0.fparams.w > 0.5f) { return float4(linear_to_srgb(_207.xyz), _207.w); } return _207; } float4 lit_output(float4 c) { if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(c.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(c.w, 0.0f, 1.0f)); } return target_color(c); } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); SkyOut _3950 = { gl_FragCoord, ndc }; float4 _3974 = mul(float4(_3950.ndc, 0.0f, 1.0f), Lit_1_m0.inv_view_proj); float4 _3979 = mul(float4(_3950.ndc, 1.0f, 1.0f), Lit_1_m0.inv_view_proj); float3 _3988 = (_3979.xyz / float3(_3979.www)) - (_3974.xyz / float3(_3974.www)); if ((Sky_1_m0.flags.x & 3u) != 0u) { float3 _3996 = sky_dir(_3988); if ((Sky_1_m0.flags.x & 1u) != 0u) { c = procedural_sky(_3996); } else { c = panorama(_3996); } c *= Sky_1_m0.sun.w; } else { c = sky(_3988); } if ((Sky_1_m0.flags.x & 128u) != 0u) { c = sky_fog(c, normalize(_3988)); } if (Fog_1_m0.counts.z != 0u) { c = sky_fog_volumes(c, _3974.xyz / float3(_3974.www), normalize(_3988)); } _3957 = lit_output(float4(tonemap(c), 1.0f)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; ndc = stage_input.ndc; frag_main(); SPIRV_Cross_Output stage_output; stage_output._3957 = _3957; return stage_output; }  fs_surfacemainuistruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _518 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const float3 _760[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const Samples _1125 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Samples _1216 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const uint _3323[4] = { 0u, 0u, 0u, 0u }; static const float2 _3326[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _3333[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const DecalSurface _4602 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const VsOutExt _5263 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _5289 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _5315 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _5370 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _5801[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const ExtCtx _6094 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), false, 0.0f, float2(0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f) }; static const DecalSurface _6098 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const VsOutExt _6983 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer M : register(b9) { MaterialU M_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Shadow : register(b2) { ShadowU Shadow_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Probe : register(b4) { ProbeU Probe_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; Texture2D t_base : register(t4); Texture2D t_normal : register(t5); Texture2D t_mr : register(t6); Texture2D t_emission : register(t7); Texture2D t_occlusion : register(t8); SamplerState s_mat : register(s2); Texture2D t_shadow : register(t0); SamplerComparisonState s_shadow : register(s0); TextureCube t_radiance : register(t10); SamplerState s_radiance : register(s3); Texture2D t_ao : register(t1); Texture2D t_probes : register(t13); SamplerState s_probes : register(s6); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 color; static float4 _7030; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 color : TEXCOORD6; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 _7030 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint spvPackUnorm4x8(float4 value) { uint4 Packed = uint4(round(saturate(value) * 255.0)); return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); } float4 spvUnpackUnorm4x8(uint value) { uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); return float4(Packed) / 255.0; } bool mirrored(VsOut _in) { return ((O_1_m0.extra.x & 2u) != 0u) != ((_in.flags & 128u) != 0u); } float2 tex_uv(float2 uv_1) { return float2(uv_1.x, 1.0f - uv_1.y); } float2 material_uv(float2 uv_1) { return (tex_uv(uv_1) * M_1_m0.uv.xy) + M_1_m0.uv.zw; } float3 srgb_to_linear(float3 c) { float3 _205 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _208 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _210 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_210.x ? _205.x : _208.x, _210.y ? _205.y : _208.y, _210.z ? _205.z : _208.z); } float4 decoded_base(float4 t) { if ((M_1_m0.flags.w & 32u) != 0u) { return float4(srgb_to_linear(t.xyz), t.w); } return t; } float3 decoded_emission(float3 t) { if ((M_1_m0.flags.w & 64u) != 0u) { return srgb_to_linear(t); } return t; } Samples sample_material(float2 uv_in) { Samples s = _1125; float2 _1127 = material_uv(uv_in); s.base = M_1_m0.base_color; if (true ? ((M_1_m0.flags.x & 1u) != 0u) : false) { s.base *= decoded_base(t_base.Sample(s_mat, _1127)); } s.normal = float3(0.0f, 0.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { s.normal = normalize((t_normal.Sample(s_mat, _1127).xyz * 2.0f) - float3(1.0f, 1.0f, 1.0f)); } s.mr = float4(1.0f, 1.0f, 1.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 4u) != 0u) : false) { s.mr = t_mr.Sample(s_mat, _1127); } s.emission = M_1_m0.emission.xyz; if (true ? ((M_1_m0.flags.x & 8u) != 0u) : false) { s.emission *= decoded_emission(t_emission.Sample(s_mat, _1127).xyz); } s.occlusion = 1.0f; if (true ? ((M_1_m0.flags.x & 16u) != 0u) : false) { s.occlusion = t_occlusion.Sample(s_mat, _1127).x; } return s; } Samples surface_samples(VsOut _in) { Samples s = _1216; float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); s = sample_material(_in.uv); if (true ? ((M_1_m0.flags.w & 1u) != 0u) : false) { c = _in.color; if ((M_1_m0.flags.w & 2u) != 0u) { c = float4(srgb_to_linear(c.xyz), c.w); } s.base *= c; } return s; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1829 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1829, _1829, _1829); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1848 = floor(p); float3 _1849 = frac(p); float3 _1853 = (_1849 * _1849) * (float3(3.0f, 3.0f, 3.0f) - (_1849 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1848), emerge_hash(_1848 + float3(1.0f, 0.0f, 0.0f)), _1853.x), lerp(emerge_hash(_1848 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1848 + float3(1.0f, 1.0f, 0.0f)), _1853.x), _1853.y), lerp(lerp(emerge_hash(_1848 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1848 + float3(1.0f, 0.0f, 1.0f)), _1853.x), lerp(emerge_hash(_1848 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1848 + float3(1.0f, 1.0f, 1.0f)), _1853.x), _1853.y), _1853.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1909 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1909) * 0.64999997615814208984375f) + (emerge_noise((_1909 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } float3 matcap(float3 n, uint id) { float3 c = float3(0.0f, 0.0f, 0.0f); if (id == 1u) { float3 _903 = reflect(-float3(0.0f, 0.0f, 1.0f), n); float _905 = clamp(_903.y, 0.0f, 1.0f); float3 _906 = lerp(float3(0.550000011920928955078125f, 0.62000000476837158203125f, 0.7200000286102294921875f), float3(0.180000007152557373046875f, 0.300000011920928955078125f, 0.550000011920928955078125f), float3(_905, _905, _905)); float _910 = clamp(-_903.y, 0.0f, 1.0f); float3 _911 = lerp(float3(0.4000000059604644775390625f, 0.36000001430511474609375f, 0.319999992847442626953125f), float3(0.07999999821186065673828125f, 0.070000000298023223876953125f, 0.0599999986588954925537109375f), float3(_910, _910, _910)); bool _914 = _903.y >= 0.0f; bool3 _916 = bool3(_914, _914, _914); c = float3(_916.x ? _906.x : _911.x, _916.y ? _906.y : _911.y, _916.z ? _906.z : _911.z); c += ((float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f) * exp((-abs(_903.y)) * 12.0f)) * 0.699999988079071044921875f); float _932 = pow(1.0f - max(dot(n, float3(0.0f, 0.0f, 1.0f)), 0.0f), 4.0f) * 0.25f; return (c * 0.89999997615814208984375f) + float3(_932, _932, _932); } if (id == 2u) { return ((srgb_to_linear(float3(0.930000007152557373046875f, 0.7400000095367431640625f, 0.62000000476837158203125f)) * (0.25f + (0.75f * pow((dot(n, float3(-0.3980148732662200927734375f, 0.5970222949981689453125f, 0.696525990962982177734375f)) * 0.5f) + 0.5f, 1.5f)))) + ((float3(0.449999988079071044921875f, 0.07999999821186065673828125f, 0.0500000007450580596923828125f) * pow(1.0f - max(dot(n, float3(0.0f, 0.0f, 1.0f)), 0.0f), 3.0f)) * 0.5f)) + ((float3(1.0f, 1.0f, 1.0f) * pow(max(dot(n, normalize(float3(-0.3980148732662200927734375f, 0.5970222949981689453125f, 0.696525990962982177734375f) + float3(0.0f, 0.0f, 1.0f))), 0.0f), 24.0f)) * 0.119999997317790985107421875f); } float _969 = pow(max(dot(n, normalize(float3(-0.3980148732662200927734375f, 0.5970222949981689453125f, 0.696525990962982177734375f) + float3(0.0f, 0.0f, 1.0f))), 0.0f), 30.0f) * 0.300000011920928955078125f; return (srgb_to_linear(float3(0.800000011920928955078125f, 0.62000000476837158203125f, 0.519999980926513671875f)) * (0.2199999988079071044921875f + (0.7799999713897705078125f * max(dot(n, float3(-0.3980148732662200927734375f, 0.5970222949981689453125f, 0.696525990962982177734375f)), 0.0f)))) + float3(_969, _969, _969); } float3 studio(float3 n, float3 base) { float3 c = float3(0.0f, 0.0f, 0.0f); c = base * 0.2800000011920928955078125f; c += ((base * max(dot(n, float3(-0.4511292278766632080078125f, 0.551380217075347900390625f, 0.70175659656524658203125f)), 0.0f)) * 0.85000002384185791015625f); c += (((base * max(dot(n, float3(0.845154285430908203125f, 0.16903086006641387939453125f, 0.507092535495758056640625f)), 0.0f)) * 0.3499999940395355224609375f) * float3(0.89999997615814208984375f, 0.949999988079071044921875f, 1.0499999523162841796875f)); c += ((base * max(dot(n, float3(0.12674485146999359130859375f, -0.8872139453887939453125f, 0.44360697269439697265625f)), 0.0f)) * 0.2199999988079071044921875f); c += ((float3(1.0f, 1.0f, 1.0f) * pow(max(dot(n, normalize(float3(-0.4511292278766632080078125f, 0.551380217075347900390625f, 0.70175659656524658203125f) + float3(0.0f, 0.0f, 1.0f))), 0.0f), 40.0f)) * 0.180000007152557373046875f); c += ((base * pow(1.0f - max(dot(n, float3(0.0f, 0.0f, 1.0f)), 0.0f), 3.0f)) * 0.25f); return c; } float3 f_schlick(float3 f0, float vh) { return f0 + ((float3(1.0f, 1.0f, 1.0f) - f0) * pow(1.0f - vh, 5.0f)); } float d_ggx(float nh, float a2) { float _1257 = ((nh * nh) * (a2 - 1.0f)) + 1.0f; return a2 / ((3.1415927410125732421875f * _1257) * _1257); } float v_smith(float nl, float nv, float a2) { return 0.5f / max((nl * sqrt(((nv * nv) * (1.0f - a2)) + a2)) + (nv * sqrt(((nl * nl) * (1.0f - a2)) + a2)), 9.9999997473787516355514526367188e-05f); } float3 light(float3 n, float3 v, float3 l, float3 radiance, float3 diffuse, float3 f0, float a2) { float _1306 = dot(n, l); if (_1306 <= 0.0f) { return float3(0.0f, 0.0f, 0.0f); } float3 _1311 = normalize(l + v); float3 _1318 = f_schlick(f0, max(dot(v, _1311), 0.0f)); return (((((float3(1.0f, 1.0f, 1.0f) - _1318) * diffuse) / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) + (_1318 * (d_ggx(max(dot(n, _1311), 0.0f), a2) * v_smith(_1306, max(dot(n, v), 9.9999997473787516355514526367188e-05f), a2)))) * radiance) * _1306; } float3 env(float up) { float3 c = float3(0.0f, 0.0f, 0.0f); float _1379 = clamp((up * 0.5f) + 0.5f, 0.0f, 1.0f); c = lerp(float3(0.2599999904632568359375f, 0.2199999988079071044921875f, 0.180000007152557373046875f), float3(0.4799999892711639404296875f, 0.579999983310699462890625f, 0.7799999713897705078125f), float3(_1379, _1379, _1379)); c += (float3(0.2199999988079071044921875f, 0.20999999344348907470703125f, 0.189999997615814208984375f) * exp((-abs(up)) * 4.0f)); return c; } float3 pbr(VsOut _in, bool front, Samples s) { float3 n_w = float3(0.0f, 0.0f, 0.0f); float3 t_w = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); float _1424 = clamp(M_1_m0.factors.x * s.mr.z, 0.0f, 1.0f); float _1430 = clamp(M_1_m0.factors.y * s.mr.y, 0.04500000178813934326171875f, 1.0f); float _1433 = ((_1430 * _1430) * _1430) * _1430; float3 _1437 = s.base.xyz * (1.0f - _1424); float3 _1438 = lerp(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), s.base.xyz, float3(_1424, _1424, _1424)); float3 _1442 = -normalize(_in.normal); float3 _1444 = normalize(_in.normal); bool3 _1446 = bool3(front, front, front); n_w = float3(_1446.x ? _1444.x : _1442.x, _1446.y ? _1444.y : _1442.y, _1446.z ? _1444.z : _1442.z); if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { t_w = _in.tangent.xyz; t_w = normalize(t_w - (n_w * dot(n_w, t_w))); n_w = normalize(((t_w * s.normal.x) + ((cross(n_w, t_w) * _in.tangent.w) * s.normal.y)) + (n_w * s.normal.z)); } float3 _1490 = normalize(mul(float4(n_w, 0.0f), G_1_m0.view).xyz); float3 _1498 = normalize(-mul(float4(_in.world, 1.0f), G_1_m0.view).xyz); bool _1501 = G_1_m0.camera_pos.w > 0.5f; bool3 _1503 = bool3(_1501, _1501, _1501); float3 _1502 = float3(_1503.x ? float3(0.0f, 0.0f, 1.0f).x : _1498.x, _1503.y ? float3(0.0f, 0.0f, 1.0f).y : _1498.y, _1503.z ? float3(0.0f, 0.0f, 1.0f).z : _1498.z); float3 _1508 = normalize(mul(float4(0.0f, 0.0f, 1.0f, 0.0f), G_1_m0.view).xyz); c += light(_1490, _1502, float3(-0.4511292278766632080078125f, 0.551380217075347900390625f, 0.70175659656524658203125f), float3(2.599999904632568359375f, 2.5220000743865966796875f, 2.3919999599456787109375f), _1437, _1438, _1433); c += light(_1490, _1502, float3(0.845154285430908203125f, 0.16903086006641387939453125f, 0.507092535495758056640625f), float3(0.76499998569488525390625f, 0.809999942779541015625f, 0.89999997615814208984375f), _1437, _1438, _1433); c += light(_1490, _1502, float3(0.345834255218505859375f, 0.634029448032379150390625f, -0.69166851043701171875f), float3(1.2999999523162841796875f, 1.2999999523162841796875f, 1.2999999523162841796875f), _1437, _1438, _1433); float _1531 = 1.0f - _1430; c += (((_1437 * (env(dot(_1490, _1508)) * 0.800000011920928955078125f)) + ((lerp(env(dot(reflect(-_1502, _1490), _1508)), env(0.0f) * 0.85000002384185791015625f, float3(_1430, _1430, _1430)) * (_1438 + ((max(float3(_1531, _1531, _1531), _1438) - _1438) * pow(1.0f - max(dot(_1490, _1502), 9.9999997473787516355514526367188e-05f), 5.0f)))) * (1.0f - (0.5f * _1430)))) * s.occlusion); c += s.emission; return c; } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _518; bool _521 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _526 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _526)) { break; } uint _556 = decal_entry(k); uint _559 = min(min(_556, 63u), 63u); float3 _565 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_559].to_local).xyz; if (all(bool3(_565.x >= float3(0.0f, -1.0f, 0.0f).x, _565.y >= float3(0.0f, -1.0f, 0.0f).y, _565.z >= float3(0.0f, -1.0f, 0.0f).z))) { _521 = all(bool3(_565.x <= float3(1.0f, 1.0f, 1.0f).x, _565.y <= float3(1.0f, 1.0f, 1.0f).y, _565.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _521 = false; } if (!_521) { uint _724 = k; k = _724 + 1u; continue; } fade = pow(1.0f - abs(_565.y), (_565.y > 0.0f) ? Decal_1_m0.entries[_559].fades.x : Decal_1_m0.entries[_559].fades.y); if (Decal_1_m0.entries[_559].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_559].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_559].axis_y.xyz) * 0.5f) + 0.5f); } float2 _603 = _565.xz; float _604 = decal_level(Decal_1_m0.entries[_559], world_1); if (Decal_1_m0.entries[_559].layers.x > 0u) { float4 _616 = decal_texel(Decal_1_m0.entries[_559].layers.x, _603, _604, (Decal_1_m0.entries[_559].flags.x & 1u) != 0u); float4 _622 = float4(srgb_to_linear(_616.xyz), _616.w) * Decal_1_m0.entries[_559].modulate; float _625 = _622.w * fade; float _631 = _625 * Decal_1_m0.entries[_559].fades.w; out_s.base = lerp(out_s.base, _622.xyz, float3(_631, _631, _631)); if (Decal_1_m0.entries[_559].layers.y > 0u) { float4 _644 = decal_texel(Decal_1_m0.entries[_559].layers.y, _603, _604, (Decal_1_m0.entries[_559].flags.x & 2u) != 0u); float _647 = (_644.x * 2.0f) - 1.0f; float _650 = 1.0f - (_644.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_559].axis_x.xyz * _647) + (Decal_1_m0.entries[_559].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_647 * _647)) - (_650 * _650))))) + (Decal_1_m0.entries[_559].axis_z.xyz * _650)), float3(_625, _625, _625))); } if (Decal_1_m0.entries[_559].layers.z > 0u) { float4 _684 = decal_texel(Decal_1_m0.entries[_559].layers.z, _603, _604, (Decal_1_m0.entries[_559].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _684.x, _625); out_s.roughness = lerp(out_s.roughness, _684.y, _625); out_s.metallic = lerp(out_s.metallic, _684.z, _625); } } if (Decal_1_m0.entries[_559].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_559].layers.w, _603, _604, (Decal_1_m0.entries[_559].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_559].modulate.xyz) * Decal_1_m0.entries[_559].axis_x.w) * fade); } uint _724 = k; k = _724 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } uint object_light_count() { return min(O_1_m0.lights.z, 8u); } uint object_light(uint k) { return min(((((k < 4u) ? O_1_m0.lights.x : O_1_m0.lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float shadow_factor(uint i, float3 world_1, float3 n_geo, float3 l) { int dy = -1; bool _3784 = false; uint part = 0u; bool _3786 = false; uint c = 0u; float vis = 0.0f; bool _3782 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint _3794 = min(i, 63u); uint _3804 = min(Lit_1_m0.lights[min(i, 63u)].info.w, 15u); uint _3807 = min(_3804, 15u); uint _3810 = min(_3804, 15u); uint _3816 = max(Shadow_1_m0.lights[min(_3804, 15u)].info.y, 1u); float _3822 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; if (Lit_1_m0.lights[_3794].info.x == 0u) { if (_3822 > Shadow_1_m0.lights[min(_3804, 15u)].fade.y) { return 1.0f; } part = _3816 - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(c < _3816)) { break; } if (_3822 <= Shadow_1_m0.lights[min(_3804, 15u)].splits[min(c, 3u)]) { part = c; break; } c++; continue; } } uint _3866 = part; uint _3872 = min(min((Shadow_1_m0.lights[_3810].info.x + min(_3866, (_3816 - 1u))), 15u), 15u); float _3879 = Shadow_1_m0.tiles[_3872].texel.x + (Shadow_1_m0.tiles[_3872].texel.y * distance(world_1, Lit_1_m0.lights[min(i, 63u)].position.xyz)); float3 _3890 = (world_1 + (n_geo * ((Shadow_1_m0.lights[_3807].params.y * max(Shadow_1_m0.lights[_3807].params.z, 1.0f)) * _3879))) + (l * (Shadow_1_m0.lights[_3807].params.x * _3879)); if (Lit_1_m0.lights[_3794].info.x == 1u) { float3 _3894 = _3890 - Lit_1_m0.lights[min(i, 63u)].position.xyz; float3 _3895 = abs(_3894); if (_3895.x >= _3895.y) { _3782 = _3895.x >= _3895.z; } else { _3782 = false; } if (_3782) { part = (_3894.x >= 0.0f) ? 0u : 1u; } else { if (_3895.y >= _3895.z) { part = (_3894.y >= 0.0f) ? 2u : 3u; } else { part = (_3894.z >= 0.0f) ? 4u : 5u; } } } uint _3928 = min((Shadow_1_m0.lights[_3810].info.x + min(part, (_3816 - 1u))), 15u); float4 _3933 = mul(float4(_3890, 1.0f), Shadow_1_m0.tiles[min(_3928, 15u)].view_proj); if (_3933.w <= 0.0f) { return 1.0f; } float3 _3941 = _3933.xyz / float3(_3933.www); if (!(abs(_3941.x) > 1.0f)) { _3784 = abs(_3941.y) > 1.0f; } else { _3784 = true; } if (!_3784) { _3786 = _3941.z > 1.0f; } else { _3786 = true; } if (_3786) { return 1.0f; } uint _3962 = min(_3928, 15u); float2 _3975 = Shadow_1_m0.tiles[_3962].rect.xy + (float2((_3941.x * 0.5f) + 0.5f, 0.5f - (_3941.y * 0.5f)) * Shadow_1_m0.tiles[_3962].rect.zw); float _3979 = 0.5f * Shadow_1_m0.atlas.x; float2 _3981 = Shadow_1_m0.tiles[_3962].rect.xy + float2(_3979, _3979); float _3985 = 0.5f * Shadow_1_m0.atlas.x; float2 _3987 = (Shadow_1_m0.tiles[_3962].rect.xy + Shadow_1_m0.tiles[_3962].rect.zw) - float2(_3985, _3985); if (Shadow_1_m0.lights[_3807].params.z <= 0.0f) { vis = t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3975, _3981, _3987), _3941.z); } else { float _3998 = Shadow_1_m0.lights[_3807].params.z * Shadow_1_m0.atlas.x; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(dx <= 1)) { break; } vis += t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3975 + (float2(float(dx), float(dy)) * _3998), _3981, _3987), _3941.z); dx++; continue; } dy++; continue; } vis /= 9.0f; } if (Lit_1_m0.lights[_3794].info.x == 0u) { uint _4063 = min(_3804, 15u); vis = lerp(vis, 1.0f, smoothstep(Shadow_1_m0.lights[_4063].fade.x, Shadow_1_m0.lights[_4063].fade.y, _3822)); } return lerp(1.0f, vis, Shadow_1_m0.lights[_3807].params.w); } float3 light_specular(float3 n, float3 v, float3 l, float3 radiance, float3 diffuse, float3 f0, float a2, float specular) { float _1341 = dot(n, l); if (_1341 <= 0.0f) { return float3(0.0f, 0.0f, 0.0f); } float3 _1346 = normalize(l + v); return (((diffuse / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) + ((f_schlick(f0, max(dot(v, _1346), 0.0f)) * (d_ggx(max(dot(n, _1346), 0.0f), a2) * v_smith(_1341, max(dot(n, v), 9.9999997473787516355514526367188e-05f), a2))) * specular)) * radiance) * _1341; } float3 probe_light(float3 n) { return max(float3(O_1_m0.gi[0u].x + dot(O_1_m0.gi[0u].yzw, n), O_1_m0.gi[1u].x + dot(O_1_m0.gi[1u].yzw, n), O_1_m0.gi[2u].x + dot(O_1_m0.gi[2u].yzw, n)), float3(0.0f, 0.0f, 0.0f)); } float4 gi_diffuse(float3 n, bool baked, float3 baked_light) { if (baked) { return float4(baked_light, 1.0f); } if (true ? ((O_1_m0.extra.x & 8u) != 0u) : false) { return float4(probe_light(n), 1.0f); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float3 sh_irradiance(float3 n) { float3 c = float3(0.0f, 0.0f, 0.0f); c = Sky_1_m0.sh[0u].xyz * 0.2820949852466583251953125f; c += (Sky_1_m0.sh[1u].xyz * (0.48860299587249755859375f * n.y)); c += (Sky_1_m0.sh[2u].xyz * (0.48860299587249755859375f * n.z)); c += (Sky_1_m0.sh[3u].xyz * (0.48860299587249755859375f * n.x)); c += (Sky_1_m0.sh[4u].xyz * ((1.09254801273345947265625f * n.x) * n.y)); c += (Sky_1_m0.sh[5u].xyz * ((1.09254801273345947265625f * n.y) * n.z)); c += (Sky_1_m0.sh[6u].xyz * (0.3153919875621795654296875f * (((3.0f * n.z) * n.z) - 1.0f))); c += (Sky_1_m0.sh[7u].xyz * ((1.09254801273345947265625f * n.x) * n.z)); c += (Sky_1_m0.sh[8u].xyz * (0.546274006366729736328125f * ((n.x * n.x) - (n.y * n.y)))); return max(c, float3(0.0f, 0.0f, 0.0f)); } float3 radiance(float3 d, float roughness) { return t_radiance.SampleLevel(s_radiance, d, roughness * float(max(Sky_1_m0.flags.y, 1u) - 1u)).xyz; } float2 env_brdf_approx(float roughness, float nv) { float4 _2259 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * roughness) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f); return (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_2259.x * _2259.x, exp2((-9.27999973297119140625f) * nv)) * _2259.x) + _2259.y)) + _2259.zw; } float probe_weight(ProbeEntryU p, float3 world_1) { float3 _4290 = mul(float4(world_1, 1.0f), p.to_local).xyz; float _4306 = min(p.extents.xyz.x - abs(_4290.x), min(p.extents.xyz.y - abs(_4290.y), p.extents.xyz.z - abs(_4290.z))); if (_4306 < 0.0f) { return 0.0f; } if (!(p.extents.w > 0.0f)) { return 1.0f; } return min(_4306 / p.extents.w, 1.0f); } float probe_exit(float o, float d, float e) { if (d > 0.0f) { return (e - o) / d; } if (d < 0.0f) { return ((-e) - o) / d; } return 3.0000000054977557577780399428115e+38f; } float3 probe_lookup(ProbeEntryU p, float3 world_1, float3 dir) { float3 _4348 = mul(float4(dir, 0.0f), p.to_local).xyz; if ((p.info.x & 1u) == 0u) { return _4348; } float3 _4358 = mul(float4(world_1, 1.0f), p.to_local).xyz; return (_4358 + (_4348 * max(min(probe_exit(_4358.x, _4348.x, p.extents.xyz.x), min(probe_exit(_4358.y, _4348.y, p.extents.xyz.y), probe_exit(_4358.z, _4348.z, p.extents.xyz.z))), 0.0f))) - p.offset.xyz; } float3 probe_face_uv(float3 d) { bool _4134 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _4137 = abs(d); if (_4137.x >= _4137.y) { _4134 = _4137.x >= _4137.z; } else { _4134 = false; } if (_4134) { ma = _4137.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_4137.y >= _4137.z) { ma = _4137.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _4137.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 probe_texel(uint row, float3 fuv, uint level) { float _4223 = 0.5f / float(max((Probe_1_m0.counts.z >> level), 1u)); return t_probes.SampleLevel(s_probes, float2((fuv.x + clamp(fuv.y, _4223, 1.0f - _4223)) / 6.0f, (float(row) + clamp(fuv.z, _4223, 1.0f - _4223)) / 8.0f), float(level)).xyz; } float3 probe_sample(uint row, float3 d, float lod) { bool _4250 = false; uint _4255 = max(Probe_1_m0.counts.y, 1u); float _4258 = clamp(lod, 0.0f, float(_4255 - 1u)); uint _4260 = uint(clamp(_4258, 0.0f, 4294967040.0f)); float _4262 = _4258 - float(_4260); float3 _4263 = probe_face_uv(d); float3 _4264 = probe_texel(row, _4263, _4260); if (!(_4262 <= 0.0f)) { _4250 = (_4260 + 1u) >= _4255; } else { _4250 = true; } if (_4250) { return _4264; } return (_4264 * (1.0f - _4262)) + (probe_texel(row, _4263, _4260 + 1u) * _4262); } float4 probe_reflection(float3 world_1, float3 r, float roughness, uint probes) { float3 acc = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _4397 = min(Probe_1_m0.counts.x, 8u); float _4403 = roughness * float(max(Probe_1_m0.counts.y, 1u) - 1u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _4397)) { break; } uint _4426 = i; uint _4428 = min(_4426, 7u); if (((probes >> Probe_1_m0.probes[_4428].info.w) & 1u) == 0u) { uint _4454 = i; i = _4454 + 1u; continue; } float _4438 = probe_weight(Probe_1_m0.probes[_4428], world_1); if (_4438 <= 0.0f) { uint _4454 = i; i = _4454 + 1u; continue; } acc += ((probe_sample(Probe_1_m0.probes[_4428].info.w, probe_lookup(Probe_1_m0.probes[_4428], world_1, r), _4403) * Probe_1_m0.probes[_4428].offset.w) * _4438); w_sum += _4438; uint _4454 = i; i = _4454 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float4 probe_ambient(float3 world_1, float3 n, uint probes) { float3 c = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; bool _4479 = false; float3 acc = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _4486 = min(Probe_1_m0.counts.x, 8u); uint _4490 = max(Probe_1_m0.counts.y, 1u) - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _4486)) { break; } uint _4512 = i; uint _4513 = min(_4512, 7u); if (!(((probes >> Probe_1_m0.probes[_4513].info.w) & 1u) == 0u)) { _4479 = Probe_1_m0.probes[_4513].info.y == 0u; } else { _4479 = true; } if (_4479) { uint _4556 = i; i = _4556 + 1u; continue; } float _4531 = probe_weight(Probe_1_m0.probes[_4513], world_1); if (_4531 <= 0.0f) { uint _4556 = i; i = _4556 + 1u; continue; } c = Probe_1_m0.probes[_4513].ambient.xyz; if (Probe_1_m0.probes[_4513].info.y == 1u) { c = probe_texel(Probe_1_m0.probes[_4513].info.w, probe_face_uv(mul(float4(n, 0.0f), Probe_1_m0.probes[_4513].to_local).xyz), _4490); } acc += (c * _4531); w_sum += _4531; uint _4556 = i; i = _4556 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float3 sky(float3 dir) { float _1567 = acos(clamp(dot(normalize(dir), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_1567 <= 1.57079637050628662109375f) { float _1577 = clamp(1.0f - pow(max(1.0f - (1.0f - (_1567 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_1577, _1577, _1577)); } float _1592 = clamp(1.0f - pow(max(1.0f - ((_1567 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_1592, _1592, _1592)); } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _2280 = max(x, 0.0f) * max(x, 0.0f); float _2281 = _2280 * _2280; return _2281 * _2281; } float3 fog_sun_scatter(float3 fc, float3 dir) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _2299 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _2299)) { break; } uint _2322 = pool_sun(k); if (Lit_1_m0.lights[min(_2322, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_2322, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir, -Lit_1_m0.lights[min(_2322, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 surface_fog(float3 c, float3 world_1, float3 dir) { float amount = 0.0f; bool _2388 = false; float dist = 0.0f; float3 fc = float3(0.0f, 0.0f, 0.0f); float _2396 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; dist = distance(world_1, G_1_m0.camera_pos.xyz); if (Sky_1_m0.fog_origin.w > 0.5f) { dist = max(_2396 - Sky_1_m0.fog_origin.x, 0.0f); } if ((Sky_1_m0.flags.x & 256u) != 0u) { float _2422 = smoothstep(Sky_1_m0.fog_depth.x, Sky_1_m0.fog_depth.y, dist); amount = ((_2422 > 0.0f) ? pow(max(_2422, 9.9999999747524270787835121154785e-07f), Sky_1_m0.fog_depth.z) : 0.0f) * Sky_1_m0.fog.x; } else { amount = 1.0f - exp(min(0.0f, (-dist) * Sky_1_m0.fog.x)); } if (abs(Sky_1_m0.fog.w) >= 9.9999997473787516355514526367188e-05f) { amount = max(amount, 1.0f - exp(min(0.0f, (dot(world_1, Lit_1_m0.up.xyz) - Sky_1_m0.fog.z) * Sky_1_m0.fog.w))); } amount = clamp(amount, 0.0f, 1.0f); fc = Sky_1_m0.fog_color.xyz; if ((Sky_1_m0.flags.x & 8u) != 0u) { _2388 = Sky_1_m0.fog_depth.w > 0.0f; } else { _2388 = false; } if (true ? _2388 : false) { fc = lerp(fc, radiance(sky_dir(dir), lerp(1.0f / float(max(Sky_1_m0.flags.y, 2u) - 1u), 1.0f, 1.0f - clamp((_2396 - Sky_1_m0.fog_origin.y) / max(Sky_1_m0.fog_origin.z - Sky_1_m0.fog_origin.y, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f))) * Sky_1_m0.sun.w, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)); } fc = fog_sun_scatter(fc, dir); return lerp(c, fc, float3(amount, amount, amount)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _2540 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _2544 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_2540 == 4u) { return float2(0.0f, _2544); } float3 _2553 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _2554 = abs(d); bool3 _2555 = bool3(_2554.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _2554.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _2554.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _2556 = float3(_2555.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _2555.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _2555.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _2559 = ((-_2553) - o) / _2556; float3 _2561 = (_2553 - o) / _2556; float3 _2562 = min(_2559, _2561); float3 _2563 = max(_2559, _2561); r = float2(max(0.0f, _2562.y), min(_2544, _2563.y)); if (_2540 == 3u) { r = float2(max(max(r.x, _2562.x), _2562.z), min(min(r.y, _2563.x), _2563.z)); } else { if (_2540 == 0u) { a = dot(d / _2553, d / _2553); b = dot(o / _2553, d / _2553); c = dot(o / _2553, o / _2553) - 1.0f; } else { float _2602 = min(_2553.x, _2553.z); float _2607 = (_2540 == 1u) ? (_2602 / (2.0f * _2553.y)) : 0.0f; float _2610 = _2553.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_2607 * _2607) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_2607 * _2607) * _2610) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_2540 == 1u) ? (((_2607 * _2607) * _2610) * _2610) : (_2602 * _2602)); } } float _2656 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_2656 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _2720 = min(((-b) - sqrt(_2656)) / a, ((-b) + sqrt(_2656)) / a); float _2733 = max(((-b) - sqrt(_2656)) / a, ((-b) + sqrt(_2656)) / a); if (a > 0.0f) { r = float2(max(r.x, _2720), min(r.y, _2733)); } else { if (r.x < min(r.y, _2720)) { r.y = min(r.y, _2720); } else { r.x = max(r.x, _2733); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _2777 = min(k, 15u); rho = Fog_1_m0.entries[_2777].material.x * min(exp2((-Fog_1_m0.entries[_2777].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2777].material.w)), 1.0f); if (Fog_1_m0.entries[_2777].material.z > 0.0f) { uint _2804 = uint(clamp(Fog_1_m0.entries[_2777].albedo.w, 0.0f, 4294967040.0f)); float3 _2807 = Fog_1_m0.entries[_2777].size.xyz * 0.5f; float _2810 = min(_2807.x, _2807.z); if (_2804 == 0u) { float _2816 = length(lp / _2807); sdf = (_2816 * (_2816 - 1.0f)) / max(length(lp / (_2807 * _2807)), 9.9999999600419720025001879548654e-13f); } else { if (_2804 == 3u) { float3 _2829 = abs(lp) - _2807; sdf = length(max(_2829, float3(0.0f, 0.0f, 0.0f))) + min(max(_2829.x, max(_2829.y, _2829.z)), 0.0f); } else { if (_2804 == 2u) { float2 _2850 = float2(length(lp.xz) - _2810, abs(lp.y) - _2807.y); sdf = min(max(_2850.x, _2850.y), 0.0f) + length(max(_2850, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _2810 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _2807.y))), float2(length(lp.xz), lp.y - _2807.y)), (-_2807.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_2777].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_2777].material.z); } return rho; } float3 fog_light(uint n, float3 p, float3 dir) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _3011 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_3011].lights.z, 8u))) { break; } uint _3047 = min(((((k < 4u) ? Fog_1_m0.entries[_3011].lights.x : Fog_1_m0.entries[_3011].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _3048 = min(_3047, 63u); l = -Lit_1_m0.lights[_3048].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_3048].info.x != 0u) { float3 _3061 = Lit_1_m0.lights[_3048].position.xyz - p; float _3063 = max(length(_3061), 9.9999999747524270787835121154785e-07f); l = _3061 / float3(_3063, _3063, _3063); atten = omni_attenuation(length(_3061), Lit_1_m0.lights[_3048].position.w, Lit_1_m0.lights[_3048].direction.w); if (Lit_1_m0.lights[_3048].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_3048].direction.xyz), Lit_1_m0.lights[_3048].spot.x)) / max(1.0f - Lit_1_m0.lights[_3048].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_3048].spot.y)); } } float _3104 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir, l)); sum += (Lit_1_m0.lights[_3048].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _3104) * sqrt(_3104))) * Fog_1_m0.light_fog[min((_3047 >> 2u), 15u)][min((_3047 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _2902 = min(k, 15u); if ((Fog_1_m0.entries[_2902].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_2902].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_2902].material.y) * a), 1.0f); } float _2920 = clamp((-a) / b, t0, t1); float _2922 = (b > 0.0f) ? _2920 : t0; float _2924 = (b > 0.0f) ? t1 : _2920; float _2929 = ((Fog_1_m0.entries[_2902].material.y * abs(b)) * (_2924 - _2922)) * 0.693147182464599609375f; return Fog_1_m0.entries[_2902].material.x * (((t1 - t0) - (_2924 - _2922)) + ((min(exp2((-Fog_1_m0.entries[_2902].material.y) * max(a + (b * ((b > 0.0f) ? _2922 : _2924)), 0.0f)), 1.0f) * (_2924 - _2922)) * ((_2929 < 0.00999999977648258209228515625f) ? (1.0f - (_2929 * (0.5f - (_2929 * (0.16666667163372039794921875f - (_2929 / 24.0f)))))) : ((1.0f - exp(-_2929)) / _2929)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _3147 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _3149 = false; float tau = 0.0f; bool _3140 = false; uint i = 0u; bool _3142 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3152 = min(k, 15u); float3 _3158 = mul(float4(o, 1.0f), Fog_1_m0.entries[_3152].to_local).xyz; float3 _3162 = mul(float4(d, 0.0f), Fog_1_m0.entries[_3152].to_local).xyz; float _3169 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_3152].material.w; float _3173 = dot(d, Fog_1_m0.up.xyz); bool _3176 = Fog_1_m0.entries[_3152].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_3152].material.y > 0.0f) { _3140 = ((-_3169) / _3173) > ch.x; } else { _3140 = false; } if (_3140) { _3142 = ((-_3169) / _3173) < ch.y; } else { _3142 = false; } if (_3142) { split = (-_3169) / _3173; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_3176 ? 12u : 4u))) { break; } uint _3227 = i & 3u; if (!(_3227 == 0u)) { _3147 = _3227 == 3u; } else { _3147 = true; } float _3235 = _3147 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_3227 == 0u)) { _3149 = _3227 == 3u; } else { _3149 = true; } float _3243 = _3149 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _3246 = float2(split, ch.y); float2 _3249 = float2(ch.x, split); bool _3251 = i < 8u; bool2 _3253 = bool2(_3251, _3251); float2 _3252 = float2(_3253.x ? _3249.x : _3246.x, _3253.y ? _3249.y : _3246.y); bool _3255 = i < 4u; bool2 _3257 = bool2(_3255, _3255); float2 _3256 = float2(_3257.x ? ch.x : _3252.x, _3257.y ? ch.y : _3252.y); float _3261 = (_3256.y - _3256.x) * 0.5f; float _3270 = ((_3256.x + _3256.y) * 0.5f) + (_3261 * ((_3227 < 2u) ? (-_3235) : _3235)); float3 _3272 = o + (d * _3270); float _3275 = fog_density(k, _3272, _3158 + (_3162 * _3270)); if (i < 4u) { q += (((Fog_1_m0.entries[_3152].albedo.xyz * fog_light(k, _3272, d)) + Fog_1_m0.entries[_3152].emission.xyz) * ((_3243 * _3261) * clamp(_3275, 0.0f, 1.0f))); } else { tau += ((_3243 * _3261) * _3275); } i++; continue; } if (!_3176) { tau = fog_falloff_depth(k, _3169, _3173, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _3323; uint i_3 = 0u; uint n = 0u; bool _3329 = false; float2 chords[4] = _3326; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _3333; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _3346 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_3346 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _3376 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_3346) { _3329 = _3376 == 0u; } else { _3329 = false; } if (_3329) { break; } uint _3388 = _3346 ? i_2 : (min(_3376, 16u) - 1u); uint _3389 = min(_3388, 15u); float2 _3398 = fog_chord(_3388, mul(float4(o, 1.0f), Fog_1_m0.entries[_3389].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_3389].to_local).xyz, t_end); if (_3398.y > _3398.x) { at[min(m, 3u)] = _3388; chords[min(m, 3u)] = _3398; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _3554 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _3554)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _3674 = exp(-tau); return (c * _3674) + (q * ((1.0f - _3674) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 fog_volumes(float3 c, float3 world_1, uint list) { float3 _3710 = world_1 - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(world_1, 1.0f), G_1_m0.view).z); bool _3713 = G_1_m0.camera_pos.w > 0.5f; bool3 _3715 = bool3(_3713, _3713, _3713); float3 _3714 = float3(_3715.x ? _3710.x : G_1_m0.camera_pos.xyz.x, _3715.y ? _3710.y : G_1_m0.camera_pos.xyz.y, _3715.z ? _3710.z : G_1_m0.camera_pos.xyz.z); float _3717 = length(world_1 - _3714); float _3719 = max(_3717, 9.9999999747524270787835121154785e-07f); float3 _3722 = fog_integrate(c, _3714, (world_1 - _3714) / float3(_3719, _3719, _3719), _3717, list); bool _3723 = _3717 > 0.0f; bool3 _3725 = bool3(_3723, _3723, _3723); return float3(_3725.x ? _3722.x : c.x, _3725.y ? _3722.y : c.y, _3725.z ? _3722.z : c.z); } float3 filmic_curve(float3 x) { float _1610 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _1614 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _1620 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _1624 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_1610, _1610, _1610))) + float3(_1614, _1614, _1614)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_1620, _1620, _1620))) - float3(_1624, _1624, _1624); } float3 aces_curve(float3 c, float white) { float3 _1672 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _1680 = ((_1672 * (_1672 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_1672 * ((_1672 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _1685 = 1.7999999523162841796875f * white; float _1693 = ((_1685 * (_1685 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_1685 * ((0.98372900485992431640625f * _1685) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _1680), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _1680), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _1680)) / float3(_1693, _1693, _1693); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _1748 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_1748, _1748, _1748); float3 _1753 = v * v; float3 _1754 = _1753 * _1753; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_1753 * 4.01109981536865234375f)) - ((_1753 * 25.68199920654296875f) * v)) + (_1754 * 70.35900115966796875f)) - ((_1754 * 74.7779998779296875f) * v)) + ((_1754 * 27.069000244140625f) * _1753), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _1783 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_1783 * Lit_1_m0.tone.y) + _1783) / ((_1783 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_1783) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_1783, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_1783); } return _1783; } float3 lit_with(VsOut _in, bool front, Samples s, bool baked, float3 baked_light) { float3 dif = float3(0.0f, 0.0f, 0.0f); float3 diffuse_amb = float3(0.0f, 0.0f, 0.0f); float atten = 0.0f; uint k = 0u; float3 t = float3(0.0f, 0.0f, 0.0f); bool _4625 = false; float3 dif_1 = float3(0.0f, 0.0f, 0.0f); float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); float3 n_mat = float3(0.0f, 0.0f, 0.0f); float3 dif_2 = float3(0.0f, 0.0f, 0.0f); float3 spec_amb = float3(0.0f, 0.0f, 0.0f); float3 radiance_1 = float3(0.0f, 0.0f, 0.0f); bool _4605 = false; DecalSurface surf = _4602; uint2 loop_bound = uint2(4294967295u, 4294967295u); float3 _4630 = -normalize(_in.normal); float3 _4632 = normalize(_in.normal); bool3 _4634 = bool3(front, front, front); float3 _4633 = float3(_4634.x ? _4632.x : _4630.x, _4634.y ? _4632.y : _4630.y, _4634.z ? _4632.z : _4630.z); n_mat = _4633; if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { t = _in.tangent.xyz; t = normalize(t - (n_mat * dot(n_mat, t))); n_mat = normalize(((t * s.normal.x) + ((cross(n_mat, t) * _in.tangent.w) * s.normal.y)) + (n_mat * s.normal.z)); } DecalSurface _4689 = { s.base.xyz, clamp(M_1_m0.factors.x * s.mr.z, 0.0f, 1.0f), clamp(M_1_m0.factors.y * s.mr.y, 0.04500000178813934326171875f, 1.0f), s.occlusion, n_mat, s.emission }; surf = _4689; if (true ? (O_1_m0.decals.z > 0u) : false) { DecalSurface _4698 = surf; surf = apply_decals(_in.world, _4633, _4698); } float _4707 = ((surf.roughness * surf.roughness) * surf.roughness) * surf.roughness; float3 _4711 = surf.base * (1.0f - surf.metallic); float3 _4712 = lerp(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), surf.base, float3(surf.metallic, surf.metallic, surf.metallic)); float3 _4728 = normalize(G_1_m0.camera_pos.xyz - _in.world); float3 _4729 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _4732 = G_1_m0.camera_pos.w > 0.5f; bool3 _4734 = bool3(_4732, _4732, _4732); float3 _4733 = float3(_4734.x ? _4729.x : _4728.x, _4734.y ? _4729.y : _4728.y, _4734.z ? _4729.z : _4728.z); uint _4735 = object_light_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(true ? (k < _4735) : false)) { break; } uint _4759 = object_light(k); uint _4760 = min(_4759, 63u); if (baked) { _4605 = Lit_1_m0.lights[_4760].info.z == 1u; } else { _4605 = false; } if (_4605) { uint _4845 = k; k = _4845 + 1u; continue; } l = float3(0.0f, 0.0f, 0.0f); atten = 1.0f; if (Lit_1_m0.lights[_4760].info.x == 0u) { l = -Lit_1_m0.lights[_4760].direction.xyz; } else { float3 _4784 = Lit_1_m0.lights[_4760].position.xyz - _in.world; float _4785 = length(_4784); float _4786 = max(_4785, 9.9999999747524270787835121154785e-07f); l = _4784 / float3(_4786, _4786, _4786); atten = omni_attenuation(_4785, Lit_1_m0.lights[_4760].position.w, Lit_1_m0.lights[_4760].direction.w); if (Lit_1_m0.lights[_4760].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_4760].direction.xyz), Lit_1_m0.lights[_4760].spot.x)) / max(1.0f - Lit_1_m0.lights[_4760].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_4760].spot.y)); } } if (atten > 0.0f) { radiance_1 = Lit_1_m0.lights[_4760].color.xyz * atten; if (true ? (Lit_1_m0.lights[_4760].info.y == 1u) : false) { radiance_1 = Lit_1_m0.lights[_4760].color.xyz * (atten * shadow_factor(_4759, _in.world, _4633, l)); } c += light_specular(surf.normal, _4733, l, radiance_1, _4711, _4712, _4707, Lit_1_m0.lights[_4760].spot.z); } uint _4845 = k; k = _4845 + 1u; continue; } float _4848 = max(dot(surf.normal, _4733), 9.9999997473787516355514526367188e-05f); float _4849 = 1.0f - surf.roughness; float3 _4856 = _4712 + ((max(float3(_4849, _4849, _4849), _4712) - _4712) * pow(1.0f - _4848, 5.0f)); float4 _4857 = gi_diffuse(surf.normal, baked, baked_light); if (true ? ((Sky_1_m0.flags.x & 8u) != 0u) : false) { float _4870 = Sky_1_m0.ibl.x * Sky_1_m0.sun.w; diffuse_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 16u) != 0u) { diffuse_amb = lerp(Sky_1_m0.ambient.xyz, sh_irradiance(sky_dir(surf.normal)) * _4870, float3(Sky_1_m0.ambient.w, Sky_1_m0.ambient.w, Sky_1_m0.ambient.w)); } if (_4857.w > 0.0f) { diffuse_amb = _4857.xyz; } spec_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 32u) != 0u) { spec_amb = radiance(sky_dir(reflect(-_4733, surf.normal)), surf.roughness) * _4870; } else { if ((Sky_1_m0.flags.x & 64u) != 0u) { spec_amb = float3(0.0f, 0.0f, 0.0f); } } float2 _4916 = env_brdf_approx(surf.roughness, _4848); if (true ? (Probe_1_m0.counts.x > 0u) : false) { float4 _4929 = probe_reflection(_in.world, reflect(-_4733, surf.normal), surf.roughness, O_1_m0.extra.z); dif_1 = diffuse_amb; if (_4857.w <= 0.0f) { float4 _4944 = probe_ambient(_in.world, surf.normal, O_1_m0.extra.z); dif_1 = (diffuse_amb * (1.0f - _4944.w)) + _4944.xyz; } float _4959 = _4916.y * clamp(50.0f * _4712.y, surf.metallic, 1.0f); ambient = (_4711 * dif_1) + (((spec_amb * (1.0f - _4929.w)) + _4929.xyz) * ((_4712 * _4916.x) + float3(_4959, _4959, _4959))); } else { float _4973 = _4916.y * clamp(50.0f * _4712.y, surf.metallic, 1.0f); ambient = (_4711 * diffuse_amb) + (spec_amb * ((_4712 * _4916.x) + float3(_4973, _4973, _4973))); } } else { if ((Lit_1_m0.counts.y & 2u) != 0u) { float3 _4995 = (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f; float _5007 = clamp((dot(surf.normal, Lit_1_m0.up.xyz) * 0.5f) + 0.5f, 0.0f, 1.0f); float3 _5008 = lerp((Lit_1_m0.ground_horizon.xyz + Lit_1_m0.ground_bottom.xyz) * 0.5f, _4995, float3(_5007, _5007, _5007)); float3 _5013 = lerp(sky(reflect(-_4733, surf.normal)), _4995, float3(surf.roughness, surf.roughness, surf.roughness)); if (Probe_1_m0.counts.x > 0u) { float4 _5026 = probe_reflection(_in.world, reflect(-_4733, surf.normal), surf.roughness, O_1_m0.extra.z); dif = _4857.xyz; if (_4857.w <= 0.0f) { float4 _5043 = probe_ambient(_in.world, surf.normal, O_1_m0.extra.z); dif = ((_5008 * Lit_1_m0.ambient.w) * (1.0f - _5043.w)) + _5043.xyz; } ambient = (_4711 * dif) + ((((_5013 * Lit_1_m0.ambient.w) * (1.0f - _5026.w)) + _5026.xyz) * _4856); } else { if (_4857.w > 0.0f) { ambient = (_4711 * _4857.xyz) + ((_5013 * _4856) * Lit_1_m0.ambient.w); } else { ambient = ((_4711 * _5008) + (_5013 * _4856)) * Lit_1_m0.ambient.w; } } } else { if (Probe_1_m0.counts.x > 0u) { float4 _5085 = probe_reflection(_in.world, reflect(-_4733, surf.normal), surf.roughness, O_1_m0.extra.z); dif_2 = _4857.xyz; if (_4857.w <= 0.0f) { float4 _5102 = probe_ambient(_in.world, surf.normal, O_1_m0.extra.z); dif_2 = (Lit_1_m0.ambient.xyz * (1.0f - _5102.w)) + _5102.xyz; } ambient = (_4711 * dif_2) + (((Lit_1_m0.ambient.xyz * (1.0f - _5085.w)) + _5085.xyz) * _4856); } else { if (_4857.w > 0.0f) { ambient = (_4711 * _4857.xyz) + (Lit_1_m0.ambient.xyz * _4856); } else { ambient = Lit_1_m0.ambient.xyz * (_4711 + _4856); } } } } if ((Lit_1_m0.counts.y & 4u) != 0u) { _4625 = M_1_m0.flags.y != 2u; } else { _4625 = false; } if (true ? _4625 : false) { int _5152; spvTextureSize(t_ao, 0u, _5152); int _5154 = int(min(uint(0), uint(int(_5152) - 1))); uint _5155_dummy_parameter; float4 _5159 = t_ao.Load(int3(int2(min(uint2(int2(clamp(floor(_in.clip.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ao, uint(_5154), _5155_dummy_parameter)) - int2(1, 1)))), _5154)); float _5160 = _5159.x; c *= lerp(1.0f, min(_5160, surf.occlusion), Lit_1_m0.tone.z * Lit_1_m0.tone.w); c += (ambient * min(surf.occlusion, _5160)); } else { c += (ambient * surf.occlusion); } c += surf.emission; if (true ? ((Sky_1_m0.flags.x & 128u) != 0u) : false) { c = surface_fog(c, _in.world, -_4733); } if (true ? (O_1_m0.decals.w != 0u) : false) { c = fog_volumes(c, _in.world, O_1_m0.decals.w); } return tonemap(c); } float3 lit(VsOut _in, bool front, Samples s) { return lit_with(_in, front, s, false, float3(0.0f, 0.0f, 0.0f)); } uint naga_mod(uint lhs, uint rhs) { return lhs % ((rhs == 0u) ? 1u : rhs); } float3 hsv(float h, float s, float v) { float _989 = h / 60.0f; float3 _992 = fmod(float3(5.0f, 3.0f, 1.0f) + float3(_989, _989, _989), float3(6.0f, 6.0f, 6.0f)); return (float3(1.0f, 1.0f, 1.0f) - (clamp(min(_992, float3(4.0f, 4.0f, 4.0f) - _992), float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)) * s)) * v; } float3 checker(float2 uv_1) { float3 c = float3(0.0f, 0.0f, 0.0f); int2 _1028 = int2(clamp(floor(uv_1 * G_1_m0.fparams.y), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); c = hsv(float(naga_mod((uint(_1028.x) * 73856093u) ^ (uint(_1028.y) * 19349663u), 360u)), 0.180000007152557373046875f, (((_1028.x + _1028.y) & 1) == 1) ? 0.4000000059604644775390625f : 0.7400000095367431640625f); float2 _1047 = abs(frac(uv_1) - float2(0.5f, 0.5f)); float2 _1051 = float2(0.5f, 0.5f) - ((fwidth(uv_1) * 1.0f) + float2(9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f)); bool _1053 = any(bool2(_1047.x > _1051.x, _1047.y > _1051.y)); float3 _1056 = c * 0.3499999940395355224609375f; bool3 _1058 = bool3(_1053, _1053, _1053); c = float3(_1058.x ? _1056.x : c.x, _1058.y ? _1056.y : c.y, _1058.z ? _1056.z : c.z); return srgb_to_linear(c); } float3 weight_color(float w) { if (w < 0.0f) { return srgb_to_linear(float3(0.0f, 0.0f, 0.07999999821186065673828125f)); } float _772 = clamp(w, 0.0f, 1.0f) * 4.0f; int _778 = min(int(clamp(floor(_772), -2147483648.0f, 2147483520.0f)), 3); float _780 = _772 - float(_778); return srgb_to_linear(lerp(_760[min(uint(_778), 4u)], _760[min(uint(_778 + 1), 4u)], float3(_780, _780, _780))); } float3 light_count_color() { return LIGHT_COUNT_COLORS[min(min(O_1_m0.lights.w, 9u), 9u)]; } float3 item_fade(float3 c) { if (true ? ((O_1_m0.extra.x & 64u) == 0u) : true) { return c; } return lerp(c, tonemap(O_1_m0.normal[3u].xyz), float3(O_1_m0.normal[3u].www)); } float3 emerge_tint(float3 c, float r) { bool _1942 = false; if (!((O_1_m0.extra.x & 32u) == 0u)) { _1942 = r >= 1.0f; } else { _1942 = true; } if (true ? _1942 : true) { return c; } float _1964 = smoothstep(0.0f, 1.0f, r); return lerp(tonemap(srgb_to_linear(spvUnpackUnorm4x8(O_1_m0.extra.w).xyz)), c, float3(_1964, _1964, _1964)); } float3 linear_to_srgb(float3 c) { float3 _336 = c * 12.9200000762939453125f; float3 _339 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _340 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_340.x ? _336.x : _339.x, _340.y ? _336.y : _339.y, _340.z ? _336.z : _339.z); } float4 target_color(float4 c) { float4 _351 = clamp(c, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if (G_1_m0.fparams.w > 0.5f) { return float4(linear_to_srgb(_351.xyz), _351.w); } return _351; } float4 lit_output(float4 c) { if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(c.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(c.w, 0.0f, 1.0f)); } return target_color(c); } void frag_main() { bool _7070 = false; float alpha = 1.0f; bool _7074 = false; bool _7068 = false; float3 c = float3(0.0f, 0.0f, 0.0f); bool _7072 = false; bool _7066 = false; VsOut _7005 = { gl_FragCoord, world, normal, uv, flags, tangent, weight, color }; bool _7078 = gl_FrontFacing != mirrored(_7005); Samples _7079 = surface_samples(_7005); if (true ? ((_7005.flags & 2u) != 0u) : false) { discard; } float _7089 = emerge_reveal(_7005.world, _7005.clip.xy); if (true ? (_7089 <= 0.0f) : false) { discard; } float3 _7096 = -normalize(_7005.normal); float3 _7098 = normalize(_7005.normal); bool3 _7100 = bool3(_7078, _7078, _7078); float3 _7099 = float3(_7100.x ? _7098.x : _7096.x, _7100.y ? _7098.y : _7096.y, _7100.z ? _7098.z : _7096.z); float3 _7106 = normalize(mul(float4(_7099, 0.0f), G_1_m0.view).xyz); float3 _7109 = srgb_to_linear(float3(0.800000011920928955078125f, 0.800000011920928955078125f, 0.800000011920928955078125f)); if (true ? (G_1_m0.params.x == 1u) : false) { c = matcap(_7106, G_1_m0.params.w); } else { if (true ? (G_1_m0.params.x == 2u) : false) { c = srgb_to_linear((_7099 * 0.5f) + float3(0.5f, 0.5f, 0.5f)); } else { if (true ? (G_1_m0.params.x == 3u) : false) { bool3 _7132 = bool3(_7078, _7078, _7078); c = lerp(studio(_7106, _7109), srgb_to_linear(float3(_7132.x ? float3(0.0f, 0.25f, 1.0f).x : float3(1.0f, 0.0f, 0.0f).x, _7132.y ? float3(0.0f, 0.25f, 1.0f).y : float3(1.0f, 0.0f, 0.0f).y, _7132.z ? float3(0.0f, 0.25f, 1.0f).z : float3(1.0f, 0.0f, 0.0f).z)), float3(0.550000011920928955078125f, 0.550000011920928955078125f, 0.550000011920928955078125f)); } else { if (true ? (G_1_m0.params.x == 4u) : false) { c = studio(_7106, O_1_m0.color.xyz); } else { if (true ? (G_1_m0.params.x == 5u) : false) { if (M_1_m0.flags.y == 1u) { _7066 = _7079.base.w < M_1_m0.emission.w; } else { _7066 = false; } if (true ? _7066 : false) { discard; } if (true ? (M_1_m0.flags.y == 2u) : false) { alpha = _7079.base.w; } c = pbr(_7005, _7078, _7079); } else { if (true ? (G_1_m0.params.x == 8u) : false) { if (M_1_m0.flags.y == 1u) { _7068 = _7079.base.w < M_1_m0.emission.w; } else { _7068 = false; } if (true ? _7068 : false) { discard; } if (true ? (M_1_m0.flags.y == 2u) : false) { alpha = _7079.base.w; } c = lit(_7005, _7078, _7079); } else { if (true ? (G_1_m0.params.x == 6u) : false) { c = studio(_7106, checker(_7005.uv)); } else { if (G_1_m0.params.x == 7u) { _7070 = (O_1_m0.extra.x & 1u) != 0u; } else { _7070 = false; } if (true ? _7070 : false) { c = studio(_7106, weight_color(_7005.weight)); } else { if (true ? (G_1_m0.params.x == 10u) : false) { c = studio(_7106, srgb_to_linear(light_count_color())); } else { if (true) { c = studio(_7106, _7109); } } } } } } } } } } if (O_1_m0.params.w == 1u) { _7072 = (G_1_m0.params.y & 1u) != 0u; } else { _7072 = false; } if (_7072) { _7074 = (_7005.flags & 1u) != 0u; } else { _7074 = false; } if (true ? _7074 : false) { c = lerp(c, srgb_to_linear(float3(1.0f, 0.6349999904632568359375f, 0.0f)), float3(0.4000000059604644775390625f, 0.4000000059604644775390625f, 0.4000000059604644775390625f)); } if (true ? (G_1_m0.params.x == 8u) : false) { _7030 = lit_output(float4(emerge_tint(item_fade(c), _7089), alpha)); return; } _7030 = target_color(float4(c, alpha)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; color = stage_input.color; frag_main(); SPIRV_Cross_Output stage_output; stage_output._7030 = _7030; return stage_output; }  fs_shadowmainyBstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _285[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const Samples _597 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Samples _690 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const VsOutExt _1487 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1515 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _1874[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _2381 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer M : register(b9) { MaterialU M_1_m0 : packoffset(c0); }; Texture2D t_base : register(t4); Texture2D t_normal : register(t5); Texture2D t_mr : register(t6); Texture2D t_emission : register(t7); Texture2D t_occlusion : register(t8); SamplerState s_mat : register(s2); static float4 gl_FragCoord; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 color; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 color : TEXCOORD6; float4 gl_FragCoord : SV_Position; }; float2 tex_uv(float2 uv_1) { return float2(uv_1.x, 1.0f - uv_1.y); } float2 material_uv(float2 uv_1) { return (tex_uv(uv_1) * M_1_m0.uv.xy) + M_1_m0.uv.zw; } float3 srgb_to_linear(float3 c) { float3 _172 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _175 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _177 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_177.x ? _172.x : _175.x, _177.y ? _172.y : _175.y, _177.z ? _172.z : _175.z); } float4 decoded_base(float4 t) { if ((M_1_m0.flags.w & 32u) != 0u) { return float4(srgb_to_linear(t.xyz), t.w); } return t; } float3 decoded_emission(float3 t) { if ((M_1_m0.flags.w & 64u) != 0u) { return srgb_to_linear(t); } return t; } Samples sample_material(float2 uv_in) { Samples s = _597; float2 _599 = material_uv(uv_in); s.base = M_1_m0.base_color; if (true ? ((M_1_m0.flags.x & 1u) != 0u) : false) { s.base *= decoded_base(t_base.Sample(s_mat, _599)); } s.normal = float3(0.0f, 0.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { s.normal = normalize((t_normal.Sample(s_mat, _599).xyz * 2.0f) - float3(1.0f, 1.0f, 1.0f)); } s.mr = float4(1.0f, 1.0f, 1.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 4u) != 0u) : false) { s.mr = t_mr.Sample(s_mat, _599); } s.emission = M_1_m0.emission.xyz; if (true ? ((M_1_m0.flags.x & 8u) != 0u) : false) { s.emission *= decoded_emission(t_emission.Sample(s_mat, _599).xyz); } s.occlusion = 1.0f; if (true ? ((M_1_m0.flags.x & 16u) != 0u) : false) { s.occlusion = t_occlusion.Sample(s_mat, _599).x; } return s; } Samples surface_samples(VsOut _in) { Samples s = _690; float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); s = sample_material(_in.uv); if (true ? ((M_1_m0.flags.w & 1u) != 0u) : false) { c = _in.color; if ((M_1_m0.flags.w & 2u) != 0u) { c = float4(srgb_to_linear(c.xyz), c.w); } s.base *= c; } return s; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1056 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1056, _1056, _1056); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1075 = floor(p); float3 _1076 = frac(p); float3 _1080 = (_1076 * _1076) * (float3(3.0f, 3.0f, 3.0f) - (_1076 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1075), emerge_hash(_1075 + float3(1.0f, 0.0f, 0.0f)), _1080.x), lerp(emerge_hash(_1075 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1075 + float3(1.0f, 1.0f, 0.0f)), _1080.x), _1080.y), lerp(lerp(emerge_hash(_1075 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1075 + float3(1.0f, 0.0f, 1.0f)), _1080.x), lerp(emerge_hash(_1075 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1075 + float3(1.0f, 1.0f, 1.0f)), _1080.x), _1080.y), _1080.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1138 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1138) * 0.64999997615814208984375f) + (emerge_noise((_1138 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _2436 = false; VsOut _2403 = { gl_FragCoord, world, normal, uv, flags, tangent, weight, color }; Samples _2439 = surface_samples(_2403); if ((_2403.flags & 2u) != 0u) { discard; } if (emerge_reveal(_2403.world, float2(-1.0f, -1.0f)) <= 0.0f) { discard; } if (M_1_m0.flags.y == 1u) { _2436 = _2439.base.w < M_1_m0.emission.w; } else { _2436 = false; } if (true ? _2436 : false) { discard; } else { return; } } void main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; color = stage_input.color; frag_main(); } fs_idmainFGstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _419[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const Samples _787 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Samples _878 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const VsOutExt _1834 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1862 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1888 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1943 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _2374[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _2943 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const IdOut _3010 = { float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer M : register(b9) { MaterialU M_1_m0 : packoffset(c0); }; Texture2D t_base : register(t4); Texture2D t_normal : register(t5); Texture2D t_mr : register(t6); Texture2D t_emission : register(t7); Texture2D t_occlusion : register(t8); SamplerState s_mat : register(s2); static float4 gl_FragCoord; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 color; static float4 id; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 color : TEXCOORD6; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 id : SV_Target0; }; float2 tex_uv(float2 uv_1) { return float2(uv_1.x, 1.0f - uv_1.y); } float2 material_uv(float2 uv_1) { return (tex_uv(uv_1) * M_1_m0.uv.xy) + M_1_m0.uv.zw; } float3 srgb_to_linear(float3 c) { float3 _175 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _178 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _180 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_180.x ? _175.x : _178.x, _180.y ? _175.y : _178.y, _180.z ? _175.z : _178.z); } float4 decoded_base(float4 t) { if ((M_1_m0.flags.w & 32u) != 0u) { return float4(srgb_to_linear(t.xyz), t.w); } return t; } float3 decoded_emission(float3 t) { if ((M_1_m0.flags.w & 64u) != 0u) { return srgb_to_linear(t); } return t; } Samples sample_material(float2 uv_in) { Samples s = _787; float2 _789 = material_uv(uv_in); s.base = M_1_m0.base_color; if (true ? ((M_1_m0.flags.x & 1u) != 0u) : false) { s.base *= decoded_base(t_base.Sample(s_mat, _789)); } s.normal = float3(0.0f, 0.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { s.normal = normalize((t_normal.Sample(s_mat, _789).xyz * 2.0f) - float3(1.0f, 1.0f, 1.0f)); } s.mr = float4(1.0f, 1.0f, 1.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 4u) != 0u) : false) { s.mr = t_mr.Sample(s_mat, _789); } s.emission = M_1_m0.emission.xyz; if (true ? ((M_1_m0.flags.x & 8u) != 0u) : false) { s.emission *= decoded_emission(t_emission.Sample(s_mat, _789).xyz); } s.occlusion = 1.0f; if (true ? ((M_1_m0.flags.x & 16u) != 0u) : false) { s.occlusion = t_occlusion.Sample(s_mat, _789).x; } return s; } Samples surface_samples(VsOut _in) { Samples s = _878; float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); s = sample_material(_in.uv); if (true ? ((M_1_m0.flags.w & 1u) != 0u) : false) { c = _in.color; if ((M_1_m0.flags.w & 2u) != 0u) { c = float4(srgb_to_linear(c.xyz), c.w); } s.base *= c; } return s; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1407 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1407, _1407, _1407); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1426 = floor(p); float3 _1427 = frac(p); float3 _1431 = (_1427 * _1427) * (float3(3.0f, 3.0f, 3.0f) - (_1427 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1426), emerge_hash(_1426 + float3(1.0f, 0.0f, 0.0f)), _1431.x), lerp(emerge_hash(_1426 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1426 + float3(1.0f, 1.0f, 0.0f)), _1431.x), _1431.y), lerp(lerp(emerge_hash(_1426 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1426 + float3(1.0f, 0.0f, 1.0f)), _1431.x), lerp(emerge_hash(_1426 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1426 + float3(1.0f, 1.0f, 1.0f)), _1431.x), _1431.y), _1431.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1487 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1487) * 0.64999997615814208984375f) + (emerge_noise((_1487 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _3004 = false; IdOut _out = _3010; bool _3002 = false; bool _3006 = false; VsOut _2965 = { gl_FragCoord, world, normal, uv, flags, tangent, weight, color }; Samples _3012 = surface_samples(_2965); if ((_2965.flags & 2u) != 0u) { discard; } if (emerge_reveal(_2965.world, _2965.clip.xy) <= 0.0f) { discard; } if (!(G_1_m0.params.x == 5u)) { _3002 = G_1_m0.params.x == 8u; } else { _3002 = true; } if (_3002) { _3004 = M_1_m0.flags.y == 1u; } else { _3004 = false; } if (_3004) { _3006 = _3012.base.w < M_1_m0.emission.w; } else { _3006 = false; } if (_3006) { discard; } _out.id = float4(float(O_1_m0.params.z & 255u), float((O_1_m0.params.z >> 8u) & 255u), float((O_1_m0.params.z >> 16u) & 255u), float(uint(O_1_m0.params.x == 1u) | ((O_1_m0.params.y == 1u) ? 2u : 0u))) / float4(255.0f, 255.0f, 255.0f, 255.0f); id = _out.id; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; color = stage_input.color; frag_main(); SPIRV_Cross_Output stage_output; stage_output.id = id; return stage_output; } fs_normal_depthmainðJstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _419[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const Samples _787 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Samples _878 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const VsOutExt _1834 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1862 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1888 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1943 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _2374[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _2943 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const NormalDepthOut _3012 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer M : register(b9) { MaterialU M_1_m0 : packoffset(c0); }; Texture2D t_base : register(t4); Texture2D t_normal : register(t5); Texture2D t_mr : register(t6); Texture2D t_emission : register(t7); Texture2D t_occlusion : register(t8); SamplerState s_mat : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 color; static float4 normal_depth; static float4 surface; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 color : TEXCOORD6; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 normal_depth : SV_Target0; float4 surface : SV_Target1; }; float2 tex_uv(float2 uv_1) { return float2(uv_1.x, 1.0f - uv_1.y); } float2 material_uv(float2 uv_1) { return (tex_uv(uv_1) * M_1_m0.uv.xy) + M_1_m0.uv.zw; } float3 srgb_to_linear(float3 c) { float3 _175 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _178 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _180 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_180.x ? _175.x : _178.x, _180.y ? _175.y : _178.y, _180.z ? _175.z : _178.z); } float4 decoded_base(float4 t) { if ((M_1_m0.flags.w & 32u) != 0u) { return float4(srgb_to_linear(t.xyz), t.w); } return t; } float3 decoded_emission(float3 t) { if ((M_1_m0.flags.w & 64u) != 0u) { return srgb_to_linear(t); } return t; } Samples sample_material(float2 uv_in) { Samples s = _787; float2 _789 = material_uv(uv_in); s.base = M_1_m0.base_color; if (true ? ((M_1_m0.flags.x & 1u) != 0u) : false) { s.base *= decoded_base(t_base.Sample(s_mat, _789)); } s.normal = float3(0.0f, 0.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { s.normal = normalize((t_normal.Sample(s_mat, _789).xyz * 2.0f) - float3(1.0f, 1.0f, 1.0f)); } s.mr = float4(1.0f, 1.0f, 1.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 4u) != 0u) : false) { s.mr = t_mr.Sample(s_mat, _789); } s.emission = M_1_m0.emission.xyz; if (true ? ((M_1_m0.flags.x & 8u) != 0u) : false) { s.emission *= decoded_emission(t_emission.Sample(s_mat, _789).xyz); } s.occlusion = 1.0f; if (true ? ((M_1_m0.flags.x & 16u) != 0u) : false) { s.occlusion = t_occlusion.Sample(s_mat, _789).x; } return s; } Samples surface_samples(VsOut _in) { Samples s = _878; float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); s = sample_material(_in.uv); if (true ? ((M_1_m0.flags.w & 1u) != 0u) : false) { c = _in.color; if ((M_1_m0.flags.w & 2u) != 0u) { c = float4(srgb_to_linear(c.xyz), c.w); } s.base *= c; } return s; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1407 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1407, _1407, _1407); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1426 = floor(p); float3 _1427 = frac(p); float3 _1431 = (_1427 * _1427) * (float3(3.0f, 3.0f, 3.0f) - (_1427 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1426), emerge_hash(_1426 + float3(1.0f, 0.0f, 0.0f)), _1431.x), lerp(emerge_hash(_1426 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1426 + float3(1.0f, 1.0f, 0.0f)), _1431.x), _1431.y), lerp(lerp(emerge_hash(_1426 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1426 + float3(1.0f, 0.0f, 1.0f)), _1431.x), lerp(emerge_hash(_1426 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1426 + float3(1.0f, 1.0f, 1.0f)), _1431.x), _1431.y), _1431.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1487 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1487) * 0.64999997615814208984375f) + (emerge_noise((_1487 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } bool mirrored(VsOut _in) { return ((O_1_m0.extra.x & 2u) != 0u) != ((_in.flags & 128u) != 0u); } void frag_main() { bool _3006 = false; NormalDepthOut _out = _3012; bool _3004 = false; bool _3008 = false; VsOut _2965 = { gl_FragCoord, world, normal, uv, flags, tangent, weight, color }; Samples _3014 = surface_samples(_2965); if ((_2965.flags & 2u) != 0u) { discard; } if (emerge_reveal(_2965.world, _2965.clip.xy) <= 0.0f) { discard; } if (!(G_1_m0.params.x == 5u)) { _3004 = G_1_m0.params.x == 8u; } else { _3004 = true; } if (_3004) { _3006 = M_1_m0.flags.y == 1u; } else { _3006 = false; } if (_3006) { _3008 = _3014.base.w < M_1_m0.emission.w; } else { _3008 = false; } if (_3008) { discard; } bool _3057 = gl_FrontFacing != mirrored(_2965); float3 _3060 = -normalize(_2965.normal); float3 _3062 = normalize(_2965.normal); bool3 _3064 = bool3(_3057, _3057, _3057); float _3076 = clamp(M_1_m0.factors.x * _3014.mr.z, 0.0f, 1.0f); _out.normal_depth = float4(normalize(mul(float4(float3(_3064.x ? _3062.x : _3060.x, _3064.y ? _3062.y : _3060.y, _3064.z ? _3062.z : _3060.z), 0.0f), G_1_m0.view).xyz), -mul(float4(_2965.world, 1.0f), G_1_m0.view).z); _out.surface = float4(lerp(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), _3014.base.xyz, float3(_3076, _3076, _3076)), clamp(M_1_m0.factors.y * _3014.mr.y, 0.04500000178813934326171875f, 1.0f)); normal_depth = _out.normal_depth; surface = _out.surface; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; color = stage_input.color; frag_main(); SPIRV_Cross_Output stage_output; stage_output.normal_depth = normal_depth; stage_output.surface = surface; return stage_output; } vs_surface_extmainç5struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _408[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const VsOutExt _1419 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1447 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1473 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1528 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _1895[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _2467 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; static float4 gl_Position; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float weight_1; static float4 color; static float2 uv1_1; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float weight_1 : TEXCOORD5; float4 color : TEXCOORD6; float2 uv1_1 : TEXCOORD7; float4 gl_Position : SV_Position; }; VsOut surface_vertex(VsIn _in) { VsOut _out = _1473; float4 _1479 = mul(float4(_in.pos, 1.0f), O_1_m0.model); _out.clip = mul(_1479, G_1_m0.view_proj); _out.world = _1479.xyz; _out.normal = normalize(mul(float4(_in.normal, 0.0f), O_1_m0.normal).xyz); _out.uv = _in.uv; _out.flags = _in.flags; _out.tangent = float4(normalize(mul(float4(_in.tangent.xyz, 0.0f), O_1_m0.model).xyz), _in.tangent.w * (((O_1_m0.extra.x & 2u) != 0u) ? (-1.0f) : 1.0f)); _out.weight = _in.weight; _out.color = float4(1.0f, 1.0f, 1.0f, 1.0f); return _out; } VsOutExt ext_vs_out(VsOut o, float2 uv1_2) { VsOutExt e = _1419; e.clip = o.clip; e.world = o.world; e.normal = o.normal; e.uv = o.uv; e.flags = o.flags; e.tangent = o.tangent; e.weight = o.weight; e.color = o.color; e.uv1 = uv1_2; return e; } void vert_main() { VsIn _2489 = { pos, normal, uv, flags, tangent, weight }; VsOutExt _2529 = ext_vs_out(surface_vertex(_2489), uv1); gl_Position = _2529.clip; world = _2529.world; normal_1 = _2529.normal; uv_1 = _2529.uv; flags_1 = _2529.flags; tangent_1 = _2529.tangent; weight_1 = _2529.weight; color = _2529.color; uv1_1 = _2529.uv1; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.weight_1 = weight_1; stage_output.color = color; stage_output.uv1_1 = uv1_1; return stage_output; } vs_surface_ext_instancedmainŒ9struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _408[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const VsOutExt _1419 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1447 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1473 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1528 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _1895[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _2467 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; static float4 gl_Position; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 row0; static float4 row1; static float4 row2; static float4 color; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float weight_1; static float4 color_1; static float2 uv1_1; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 row0 : TEXCOORD6; float4 row1 : TEXCOORD7; float4 row2 : TEXCOORD8; float4 color : TEXCOORD9; float2 uv1 : TEXCOORD10; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float weight_1 : TEXCOORD5; float4 color_1 : TEXCOORD6; float2 uv1_1 : TEXCOORD7; float4 gl_Position : SV_Position; }; VsOut surface_vertex_instanced(VsIn _in, InstIn inst) { VsOut _out = _1528; float4 _1531 = float4(_in.pos, 1.0f); float4 _1542 = mul(float4(float3(dot(inst.row0, _1531), dot(inst.row1, _1531), dot(inst.row2, _1531)), 1.0f), O_1_m0.model); float3 _1549 = float3(inst.row0.x, inst.row1.x, inst.row2.x); float3 _1556 = float3(inst.row0.y, inst.row1.y, inst.row2.y); float3 _1563 = float3(inst.row0.z, inst.row1.z, inst.row2.z); bool _1566 = dot(_1549, cross(_1556, _1563)) < 0.0f; _out.clip = mul(_1542, G_1_m0.view_proj); _out.world = _1542.xyz; _out.normal = normalize(mul(float4(mul(_in.normal, float3x3(cross(_1556, _1563), cross(_1563, _1549), cross(_1549, _1556))) * (_1566 ? (-1.0f) : 1.0f), 0.0f), O_1_m0.normal).xyz); _out.uv = _in.uv; _out.flags = _in.flags | (_1566 ? 128u : 0u); _out.tangent = float4(normalize(mul(float4(mul(_in.tangent.xyz, float3x3(_1549, _1556, _1563)), 0.0f), O_1_m0.model).xyz), _in.tangent.w * ((((O_1_m0.extra.x & 2u) != 0u) != _1566) ? (-1.0f) : 1.0f)); _out.weight = _in.weight; _out.color = inst.color; return _out; } VsOutExt ext_vs_out(VsOut o, float2 uv1_2) { VsOutExt e = _1419; e.clip = o.clip; e.world = o.world; e.normal = o.normal; e.uv = o.uv; e.flags = o.flags; e.tangent = o.tangent; e.weight = o.weight; e.color = o.color; e.uv1 = uv1_2; return e; } void vert_main() { VsIn _2489 = { pos, normal, uv, flags, tangent, weight }; InstIn _2507 = { row0, row1, row2, color }; VsOutExt _2538 = ext_vs_out(surface_vertex_instanced(_2489, _2507), uv1); gl_Position = _2538.clip; world = _2538.world; normal_1 = _2538.normal; uv_1 = _2538.uv; flags_1 = _2538.flags; tangent_1 = _2538.tangent; weight_1 = _2538.weight; color_1 = _2538.color; uv1_1 = _2538.uv1; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; row0 = stage_input.row0; row1 = stage_input.row1; row2 = stage_input.row2; color = stage_input.color; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.weight_1 = weight_1; stage_output.color_1 = color_1; stage_output.uv1_1 = uv1_1; return stage_output; } fs_surface_extmain–struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _520 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const float3 _762[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const Samples _1127 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Samples _1218 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const uint _3325[4] = { 0u, 0u, 0u, 0u }; static const float2 _3328[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _3335[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const DecalSurface _4604 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const VsOutExt _5265 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _5291 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _5317 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _5372 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const ExtSamples _5554 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), false, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float2(0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f) }; static const float _6231[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const ExtCtx _6524 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), false, 0.0f, float2(0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f) }; static const DecalSurface _6528 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const VsOutExt _8132 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer M : register(b9) { MaterialU M_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Shadow : register(b2) { ShadowU Shadow_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Probe : register(b4) { ProbeU Probe_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; Texture2D t_base : register(t4); Texture2D t_normal : register(t5); Texture2D t_mr : register(t6); Texture2D t_emission : register(t7); Texture2D t_occlusion : register(t8); SamplerState s_mat : register(s2); Texture2DArray t_ext : register(t9); Texture2D t_shadow : register(t0); SamplerComparisonState s_shadow : register(s0); TextureCube t_radiance : register(t10); SamplerState s_radiance : register(s3); Texture2D t_ao : register(t1); Texture2D t_probes : register(t13); SamplerState s_probes : register(s6); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); Texture2D t_screen : register(t3); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 color; static float2 uv1; static float4 _8181; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 color : TEXCOORD6; float2 uv1 : TEXCOORD7; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 _8181 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint spvPackUnorm4x8(float4 value) { uint4 Packed = uint4(round(saturate(value) * 255.0)); return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); } float4 spvUnpackUnorm4x8(uint value) { uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); return float4(Packed) / 255.0; } VsOut ext_base_in(VsOutExt e) { VsOut o = _5291; o.clip = e.clip; o.world = e.world; o.normal = e.normal; o.uv = e.uv; o.flags = e.flags; o.tangent = e.tangent; o.weight = e.weight; o.color = e.color; return o; } bool mirrored(VsOut _in) { return ((O_1_m0.extra.x & 2u) != 0u) != ((_in.flags & 128u) != 0u); } float2 tex_uv(float2 uv_1) { return float2(uv_1.x, 1.0f - uv_1.y); } float2 ext_uv(uint s, float2 uv0, float2 uv1_1) { uint _5475 = min((s * 2u), 39u); uint _5480 = min(((s * 2u) + 1u), 39u); bool _5484 = M_1_m0.xf[_5475].w > 0.5f; bool2 _5486 = bool2(_5484, _5484); float2 _5485 = float2(_5486.x ? uv1_1.x : uv0.x, _5486.y ? uv1_1.y : uv0.y); return float2(dot(M_1_m0.xf[_5475].xy, _5485) + M_1_m0.xf[_5475].z, dot(M_1_m0.xf[_5480].xy, _5485) + M_1_m0.xf[_5480].z); } float3 srgb_to_linear(float3 c) { float3 _207 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _210 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _212 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_212.x ? _207.x : _210.x, _212.y ? _207.y : _210.y, _212.z ? _207.z : _210.z); } float4 decoded_base(float4 t) { if ((M_1_m0.flags.w & 32u) != 0u) { return float4(srgb_to_linear(t.xyz), t.w); } return t; } float3 scaled_normal(float3 texel, float scale) { return normalize(((texel * 2.0f) - float3(1.0f, 1.0f, 1.0f)) * float3(scale, scale, 1.0f)); } float ext_where(uint s) { return M_1_m0.xf[min(((s * 2u) + 1u), 39u)].w; } float4 ext_layer(uint s, float2 uv0, float2 uv1_1) { return t_ext.Sample(s_mat, float3(ext_uv(s, uv0, uv1_1), float(int(clamp(ext_where(s) + 0.5f, -2147483648.0f, 2147483520.0f)) - 1))); } float3 decoded_emission(float3 t) { if ((M_1_m0.flags.w & 64u) != 0u) { return srgb_to_linear(t); } return t; } ExtSamples sample_ext(VsOutExt _in) { ExtSamples s = _5554; float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); float thick = 1.0f; float2 _5560 = tex_uv(_in.uv); float2 _5562 = tex_uv(_in.uv1); s.base = M_1_m0.base_color; if (true ? ((M_1_m0.flags.x & 1u) != 0u) : false) { s.base *= decoded_base(t_base.Sample(s_mat, ext_uv(0u, _5560, _5562))); } if (true ? ((M_1_m0.flags.w & 1u) != 0u) : false) { c = _in.color; if ((M_1_m0.flags.w & 2u) != 0u) { c = float4(srgb_to_linear(c.xyz), c.w); } s.base *= c; } s.normal = float3(0.0f, 0.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { s.normal = scaled_normal(t_normal.Sample(s_mat, ext_uv(3u, _5560, _5562)).xyz, M_1_m0.ext[3u].w); } s.metallic = M_1_m0.factors.x; if (true ? (ext_where(1u) > 0.5f) : false) { s.metallic *= t_mr.Sample(s_mat, ext_uv(1u, _5560, _5562)).z; } s.roughness = M_1_m0.factors.y; if (true ? ((M_1_m0.flags.w & 16u) != 0u) : false) { if (ext_where(2u) > 0.5f) { s.roughness *= ext_layer(2u, _5560, _5562).y; } } else { if (true ? (ext_where(2u) > 0.5f) : false) { s.roughness *= t_mr.Sample(s_mat, ext_uv(2u, _5560, _5562)).y; } } s.emission = M_1_m0.emission.xyz; if (true ? ((M_1_m0.flags.x & 8u) != 0u) : false) { s.emission *= decoded_emission(t_emission.Sample(s_mat, ext_uv(5u, _5560, _5562)).xyz); } s.occlusion = 1.0f; if (true ? ((M_1_m0.flags.x & 16u) != 0u) : false) { s.occlusion = 1.0f + (M_1_m0.ext[6u].w * (t_occlusion.Sample(s_mat, ext_uv(4u, _5560, _5562)).x - 1.0f)); } s.specular = M_1_m0.ext[0u].w; if (true ? (ext_where(11u) > 0.5f) : false) { s.specular *= ext_layer(11u, _5560, _5562).w; } s.specular_color = M_1_m0.ext[0u].xyz; if (true ? (ext_where(12u) > 0.5f) : false) { s.specular_color *= srgb_to_linear(ext_layer(12u, _5560, _5562).xyz); } s.transmission = M_1_m0.ext[1u].y; if (true ? (ext_where(13u) > 0.5f) : false) { s.transmission *= ext_layer(13u, _5560, _5562).x; } s.thickness = M_1_m0.ext[1u].z; if (true ? (ext_where(14u) > 0.5f) : false) { s.thickness *= ext_layer(14u, _5560, _5562).y; } s.clearcoat = M_1_m0.ext[3u].x; if (true ? (ext_where(6u) > 0.5f) : false) { s.clearcoat *= ext_layer(6u, _5560, _5562).x; } s.clearcoat_roughness = M_1_m0.ext[3u].y; if (true ? (ext_where(7u) > 0.5f) : false) { s.clearcoat_roughness *= ext_layer(7u, _5560, _5562).y; } s.clearcoat_normal = float3(0.0f, 0.0f, 1.0f); s.clearcoat_mapped = false; if (true ? (ext_where(8u) > 0.5f) : false) { s.clearcoat_normal = scaled_normal(ext_layer(8u, _5560, _5562).xyz, M_1_m0.ext[3u].z); s.clearcoat_mapped = true; } s.sheen_color = M_1_m0.ext[4u].xyz; if (true ? (ext_where(9u) > 0.5f) : false) { s.sheen_color *= srgb_to_linear(ext_layer(9u, _5560, _5562).xyz); } s.sheen_roughness = M_1_m0.ext[4u].w; if (true ? (ext_where(10u) > 0.5f) : false) { s.sheen_roughness *= ext_layer(10u, _5560, _5562).w; } s.iridescence = M_1_m0.ext[5u].x; if (true ? (ext_where(15u) > 0.5f) : false) { s.iridescence *= ext_layer(15u, _5560, _5562).x; } if (true ? (ext_where(16u) > 0.5f) : false) { thick = ext_layer(16u, _5560, _5562).y; } s.iridescence_thickness = lerp(M_1_m0.ext[5u].z, M_1_m0.ext[5u].w, thick); s.anisotropy = M_1_m0.ext[6u].x; s.anisotropy_dir = M_1_m0.ext[6u].yz; if (true ? (ext_where(17u) > 0.5f) : false) { float3 _5882 = ext_layer(17u, _5560, _5562).xyz; float2 _5885 = (_5882.xy * 2.0f) - float2(1.0f, 1.0f); float2 _5886 = normalize(_5885); bool _5888 = dot(_5885, _5885) > 9.9999999392252902907785028219223e-09f; bool2 _5890 = bool2(_5888, _5888); float2 _5889 = float2(_5890.x ? _5886.x : float2(1.0f, 0.0f).x, _5890.y ? _5886.y : float2(1.0f, 0.0f).y); s.anisotropy_dir = float2((M_1_m0.ext[6u].y * _5889.x) - (M_1_m0.ext[6u].z * _5889.y), (M_1_m0.ext[6u].z * _5889.x) + (M_1_m0.ext[6u].y * _5889.y)); s.anisotropy *= _5882.z; } s.diffuse_transmission = M_1_m0.ext[7u].w; if (true ? (ext_where(18u) > 0.5f) : false) { s.diffuse_transmission *= ext_layer(18u, _5560, _5562).w; } s.diffuse_transmission_color = M_1_m0.ext[7u].xyz; if (true ? (ext_where(19u) > 0.5f) : false) { s.diffuse_transmission_color *= srgb_to_linear(ext_layer(19u, _5560, _5562).xyz); } return s; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1831 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1831, _1831, _1831); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1850 = floor(p); float3 _1851 = frac(p); float3 _1855 = (_1851 * _1851) * (float3(3.0f, 3.0f, 3.0f) - (_1851 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1850), emerge_hash(_1850 + float3(1.0f, 0.0f, 0.0f)), _1855.x), lerp(emerge_hash(_1850 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1850 + float3(1.0f, 1.0f, 0.0f)), _1855.x), _1855.y), lerp(lerp(emerge_hash(_1850 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1850 + float3(1.0f, 0.0f, 1.0f)), _1855.x), lerp(emerge_hash(_1850 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1850 + float3(1.0f, 1.0f, 1.0f)), _1855.x), _1855.y), _1855.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1911 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1911) * 0.64999997615814208984375f) + (emerge_noise((_1911 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } bool ext_cut(ExtSamples s) { bool _5950 = false; if (M_1_m0.flags.y == 1u) { _5950 = s.base.w < M_1_m0.emission.w; } else { _5950 = false; } return true ? _5950 : false; } float3 studio(float3 n, float3 base) { float3 c = float3(0.0f, 0.0f, 0.0f); c = base * 0.2800000011920928955078125f; c += ((base * max(dot(n, float3(-0.4511292278766632080078125f, 0.551380217075347900390625f, 0.70175659656524658203125f)), 0.0f)) * 0.85000002384185791015625f); c += (((base * max(dot(n, float3(0.845154285430908203125f, 0.16903086006641387939453125f, 0.507092535495758056640625f)), 0.0f)) * 0.3499999940395355224609375f) * float3(0.89999997615814208984375f, 0.949999988079071044921875f, 1.0499999523162841796875f)); c += ((base * max(dot(n, float3(0.12674485146999359130859375f, -0.8872139453887939453125f, 0.44360697269439697265625f)), 0.0f)) * 0.2199999988079071044921875f); c += ((float3(1.0f, 1.0f, 1.0f) * pow(max(dot(n, normalize(float3(-0.4511292278766632080078125f, 0.551380217075347900390625f, 0.70175659656524658203125f) + float3(0.0f, 0.0f, 1.0f))), 0.0f), 40.0f)) * 0.180000007152557373046875f); c += ((base * pow(1.0f - max(dot(n, float3(0.0f, 0.0f, 1.0f)), 0.0f), 3.0f)) * 0.25f); return c; } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _520; bool _523 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _528 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _528)) { break; } uint _558 = decal_entry(k); uint _561 = min(min(_558, 63u), 63u); float3 _567 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_561].to_local).xyz; if (all(bool3(_567.x >= float3(0.0f, -1.0f, 0.0f).x, _567.y >= float3(0.0f, -1.0f, 0.0f).y, _567.z >= float3(0.0f, -1.0f, 0.0f).z))) { _523 = all(bool3(_567.x <= float3(1.0f, 1.0f, 1.0f).x, _567.y <= float3(1.0f, 1.0f, 1.0f).y, _567.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _523 = false; } if (!_523) { uint _726 = k; k = _726 + 1u; continue; } fade = pow(1.0f - abs(_567.y), (_567.y > 0.0f) ? Decal_1_m0.entries[_561].fades.x : Decal_1_m0.entries[_561].fades.y); if (Decal_1_m0.entries[_561].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_561].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_561].axis_y.xyz) * 0.5f) + 0.5f); } float2 _605 = _567.xz; float _606 = decal_level(Decal_1_m0.entries[_561], world_1); if (Decal_1_m0.entries[_561].layers.x > 0u) { float4 _618 = decal_texel(Decal_1_m0.entries[_561].layers.x, _605, _606, (Decal_1_m0.entries[_561].flags.x & 1u) != 0u); float4 _624 = float4(srgb_to_linear(_618.xyz), _618.w) * Decal_1_m0.entries[_561].modulate; float _627 = _624.w * fade; float _633 = _627 * Decal_1_m0.entries[_561].fades.w; out_s.base = lerp(out_s.base, _624.xyz, float3(_633, _633, _633)); if (Decal_1_m0.entries[_561].layers.y > 0u) { float4 _646 = decal_texel(Decal_1_m0.entries[_561].layers.y, _605, _606, (Decal_1_m0.entries[_561].flags.x & 2u) != 0u); float _649 = (_646.x * 2.0f) - 1.0f; float _652 = 1.0f - (_646.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_561].axis_x.xyz * _649) + (Decal_1_m0.entries[_561].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_649 * _649)) - (_652 * _652))))) + (Decal_1_m0.entries[_561].axis_z.xyz * _652)), float3(_627, _627, _627))); } if (Decal_1_m0.entries[_561].layers.z > 0u) { float4 _686 = decal_texel(Decal_1_m0.entries[_561].layers.z, _605, _606, (Decal_1_m0.entries[_561].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _686.x, _627); out_s.roughness = lerp(out_s.roughness, _686.y, _627); out_s.metallic = lerp(out_s.metallic, _686.z, _627); } } if (Decal_1_m0.entries[_561].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_561].layers.w, _605, _606, (Decal_1_m0.entries[_561].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_561].modulate.xyz) * Decal_1_m0.entries[_561].axis_x.w) * fade); } uint _726 = k; k = _726 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } float3 ext_view(float3 world_1) { float3 _6500 = normalize(G_1_m0.camera_pos.xyz - world_1); float3 _6501 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _6504 = G_1_m0.camera_pos.w > 0.5f; bool3 _6506 = bool3(_6504, _6504, _6504); return float3(_6506.x ? _6501.x : _6500.x, _6506.y ? _6501.y : _6500.y, _6506.z ? _6501.z : _6500.z); } float3 ior_to_f0(float3 transmitted, float incident) { float3 _6366 = (transmitted - float3(incident, incident, incident)) / (transmitted + float3(incident, incident, incident)); return _6366 * _6366; } float pow5(float x) { float _5979 = x * x; return (_5979 * _5979) * x; } float3 iridescence_sensitivity(float opd, float3 shift) { float3 xyz = float3(0.0f, 0.0f, 0.0f); float _6327 = (6.283185482025146484375f * opd) * 9.999999717180685365747194737196e-10f; xyz = ((float3(5.4856000384490011256843899900559e-13f, 4.4201000823883285217874572481378e-13f, 5.2481001315551889518928874167614e-13f) * sqrt(float3(4327799808.0f, 9304599552.0f, 6612100096.0f) * 6.283185482025146484375f)) * cos((float3(1681000.0f, 1795300.0f, 2208400.0f) * _6327) + shift)) * exp(float3(4327799808.0f, 9304599552.0f, 6612100096.0f) * ((-_6327) * _6327)); xyz.x += ((1.6440829142538859741762280464172e-08f * cos((2239900.0f * _6327) + shift.x)) * exp(((-4528200192.0f) * _6327) * _6327)); xyz /= float3(1.0685000262355970335192978382111e-07f, 1.0685000262355970335192978382111e-07f, 1.0685000262355970335192978382111e-07f); return mul(xyz, float3x3(float3(3.240454196929931640625f, -0.969265997409820556640625f, 0.0556433983147144317626953125f), float3(-1.537138462066650390625f, 1.87601077556610107421875f, -0.2040258944034576416015625f), float3(-0.498531401157379150390625f, 0.04155600070953369140625f, 1.05722522735595703125f))); } float3 eval_iridescence(float outside, float film_in, float cos1, float thickness, float3 f0) { float3 i = float3(0.0f, 0.0f, 0.0f); float3 cm = float3(0.0f, 0.0f, 0.0f); int m = 1; uint2 loop_bound = uint2(4294967295u, 4294967295u); float _6389 = lerp(outside, film_in, smoothstep(0.0f, 0.02999999932944774627685546875f, thickness)); float _6390 = outside / _6389; float _6395 = 1.0f - ((_6390 * _6390) * (1.0f - (cos1 * cos1))); if (_6395 < 0.0f) { return float3(1.0f, 1.0f, 1.0f); } float _6399 = sqrt(_6395); float3 _6401 = ior_to_f0(float3(_6389, _6389, _6389), outside); float _6402 = _6401.x; float _6408 = _6402 + ((1.0f - _6402) * pow5(clamp(1.0f - cos1, 0.0f, 1.0f))); float _6409 = 1.0f - _6408; float _6412 = 3.1415927410125732421875f - ((_6389 < outside) ? 3.1415927410125732421875f : 0.0f); float3 _6415 = sqrt(min(f0 + float3(9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f), float3(0.99989998340606689453125f, 0.99989998340606689453125f, 0.99989998340606689453125f))); float3 _6418 = (float3(1.0f, 1.0f, 1.0f) + _6415) / (float3(1.0f, 1.0f, 1.0f) - _6415); float3 _6419 = ior_to_f0(_6418, _6389); float3 _6425 = _6419 + ((float3(1.0f, 1.0f, 1.0f) - _6419) * pow5(clamp(1.0f - _6399, 0.0f, 1.0f))); float3 _6426 = float3(_6389, _6389, _6389); bool3 _6427 = bool3(_6418.x < _6426.x, _6418.y < _6426.y, _6418.z < _6426.z); float _6431 = ((2.0f * _6389) * thickness) * _6399; float3 _6433 = float3(_6412, _6412, _6412) + float3(_6427.x ? float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f).x : float3(0.0f, 0.0f, 0.0f).x, _6427.y ? float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f).y : float3(0.0f, 0.0f, 0.0f).y, _6427.z ? float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f).z : float3(0.0f, 0.0f, 0.0f).z); float3 _6435 = clamp(_6425 * _6408, float3(9.9999997473787516355514526367188e-06f, 9.9999997473787516355514526367188e-06f, 9.9999997473787516355514526367188e-06f), float3(0.99989998340606689453125f, 0.99989998340606689453125f, 0.99989998340606689453125f)); float3 _6436 = sqrt(_6435); float3 _6440 = (_6425 * (_6409 * _6409)) / (float3(1.0f, 1.0f, 1.0f) - _6435); i = float3(_6408, _6408, _6408) + _6440; cm = _6440 - float3(_6409, _6409, _6409); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(m <= 2)) { break; } cm *= _6436; i += ((cm * 2.0f) * iridescence_sensitivity(float(m) * _6431, _6433 * float(m))); m++; continue; } return max(i, float3(0.0f, 0.0f, 0.0f)); } ExtCtx ext_ctx(VsOutExt _in, bool front, ExtSamples s, bool decals) { float3 t = float3(0.0f, 0.0f, 0.0f); bool _6529 = false; ExtCtx e = _6524; DecalSurface surf = _6528; float3 _6534 = -normalize(_in.normal); float3 _6536 = normalize(_in.normal); bool3 _6538 = bool3(front, front, front); float3 _6537 = float3(_6538.x ? _6536.x : _6534.x, _6538.y ? _6536.y : _6534.y, _6538.z ? _6536.z : _6534.z); t = _in.tangent.xyz; t = normalize(t - (_6537 * dot(_6537, t))); float3 _6551 = cross(_6537, t) * _in.tangent.w; e.n_geo = _6537; e.n = _6537; if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { e.n = normalize(((t * s.normal.x) + (_6551 * s.normal.y)) + (_6537 * s.normal.z)); } e.nc = _6537; if (s.clearcoat_mapped) { e.nc = normalize(((t * s.clearcoat_normal.x) + (_6551 * s.clearcoat_normal.y)) + (_6537 * s.clearcoat_normal.z)); } DecalSurface _6603 = { s.base.xyz, clamp(s.metallic, 0.0f, 1.0f), clamp(s.roughness, 0.04500000178813934326171875f, 1.0f), s.occlusion, e.n, s.emission }; surf = _6603; if (true ? decals : false) { DecalSurface _6609 = surf; surf = apply_decals(_in.world, _6537, _6609); } e.n = surf.normal; e.occlusion = surf.occlusion; e.emission = surf.emission; e.v = ext_view(_in.world); e.world = _in.world; e.nv = max(dot(e.n, e.v), 9.9999997473787516355514526367188e-05f); e.metallic = surf.metallic; e.roughness = surf.roughness; e.alpha = e.roughness * e.roughness; e.a2 = e.alpha * e.alpha; e.base = surf.base; e.diffuse = e.base * (1.0f - e.metallic); e.ior = max(M_1_m0.ext[1u].x, 1.0f); float _6674 = (e.ior - 1.0f) / (e.ior + 1.0f); float _6676 = max(s.specular, 0.0f); float _6677 = _6674 * _6674; e.f0 = lerp(min(float3(_6677, _6677, _6677) * s.specular_color, float3(1.0f, 1.0f, 1.0f)) * _6676, e.base, float3(e.metallic, e.metallic, e.metallic)); e.f90 = lerp(float3(_6676, _6676, _6676), float3(1.0f, 1.0f, 1.0f), float3(e.metallic, e.metallic, e.metallic)); e.iridescence = clamp(s.iridescence, 0.0f, 1.0f); e.irid_f = e.f0; if (true ? (e.iridescence > 0.0f) : false) { e.irid_f = eval_iridescence(1.0f, M_1_m0.ext[5u].y, e.nv, s.iridescence_thickness, e.f0); } e.aniso = clamp(s.anisotropy, 0.0f, 1.0f); e.aniso_t = normalize((t * s.anisotropy_dir.x) + (_6551 * s.anisotropy_dir.y)); e.aniso_b = normalize(cross(_6537, e.aniso_t)); e.clearcoat = clamp(s.clearcoat, 0.0f, 1.0f); e.cc_roughness = clamp(s.clearcoat_roughness, 0.04500000178813934326171875f, 1.0f); float _6745 = e.cc_roughness * e.cc_roughness; e.cc_a2 = _6745 * _6745; e.sheen = max(s.sheen_color, float3(0.0f, 0.0f, 0.0f)); e.sheen_roughness = clamp(s.sheen_roughness, 0.070000000298023223876953125f, 1.0f); e.sheen_alpha = e.sheen_roughness * e.sheen_roughness; e.dt = clamp(s.diffuse_transmission, 0.0f, 1.0f); e.dt_color = max(s.diffuse_transmission_color, float3(0.0f, 0.0f, 0.0f)); e.transmission = clamp(s.transmission, 0.0f, 1.0f); e.trans_alpha = max(e.alpha * clamp((e.ior * 2.0f) - 2.0f, 0.0f, 1.0f), 0.00200000009499490261077880859375f); float _6803 = max(s.thickness, 0.0f) * (((length(O_1_m0.model[0u].xyz) + length(O_1_m0.model[1u].xyz)) + length(O_1_m0.model[2u].xyz)) / 3.0f); e.thin = _6803 <= 0.0f; e.thickness = _6803; e.frag = _in.clip.xy; e.attenuation = float3(1.0f, 1.0f, 1.0f); if (M_1_m0.ext[1u].w > 0.0f) { _6529 = _6803 > 0.0f; } else { _6529 = false; } if (true ? _6529 : false) { float _6831 = _6803 / M_1_m0.ext[1u].w; e.attenuation = pow(max(M_1_m0.ext[2u].xyz, float3(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f)), float3(_6831, _6831, _6831)); } e.dispersion = M_1_m0.ext[2u].w; return e; } float3 f_schlick90(float3 f0, float3 f90, float vh) { return f0 + ((f90 - f0) * pow5(clamp(1.0f - vh, 0.0f, 1.0f))); } float3 ext_fresnel(ExtCtx e, float vh) { return lerp(f_schlick90(e.f0, e.f90, vh), e.irid_f, float3(e.iridescence, e.iridescence, e.iridescence)); } float d_ggx_aniso(float nh, float th, float bh, float at, float ab) { float _6004 = at * ab; float3 _6008 = float3(ab * th, at * bh, _6004 * nh); float _6010 = _6004 / dot(_6008, _6008); return ((_6004 * _6010) * _6010) / 3.1415927410125732421875f; } float v_ggx_aniso(float nl, float nv, float bv, float tv, float tl, float bl, float at, float ab) { return clamp(0.5f / max((nl * length(float3(at * tv, ab * bv, nv))) + (nv * length(float3(at * tl, ab * bl, nl))), 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f); } float d_ggx(float nh, float a2) { float _1259 = ((nh * nh) * (a2 - 1.0f)) + 1.0f; return a2 / ((3.1415927410125732421875f * _1259) * _1259); } float v_smith(float nl, float nv, float a2) { return 0.5f / max((nl * sqrt(((nv * nv) * (1.0f - a2)) + a2)) + (nv * sqrt(((nl * nl) * (1.0f - a2)) + a2)), 9.9999997473787516355514526367188e-05f); } float max3(float3 c) { return max(c.x, max(c.y, c.z)); } float sheen_albedo(float nv, float roughness) { float _6243 = clamp(sqrt(clamp(nv, 0.0f, 1.0f)), 0.0f, 1.0f) * 15.0f; float _6247 = clamp((roughness - 0.070000000298023223876953125f) / 0.930000007152557373046875f, 0.0f, 1.0f) * 7.0f; int _6251 = min(int(clamp(floor(_6243), -2147483648.0f, 2147483520.0f)), 14); int _6255 = min(int(clamp(floor(_6247), -2147483648.0f, 2147483520.0f)), 6); float _6257 = _6243 - float(_6251); return lerp(lerp(_6231[min(uint((_6255 * 16) + _6251), 127u)], _6231[min(uint(((_6255 * 16) + _6251) + 1), 127u)], _6257), lerp(_6231[min(uint(((_6255 + 1) * 16) + _6251), 127u)], _6231[min(uint((((_6255 + 1) * 16) + _6251) + 1), 127u)], _6257), _6247 - float(_6255)); } float d_charlie(float alpha_g, float nh) { float _6047 = 1.0f / alpha_g; return ((2.0f + _6047) * pow(max(max(1.0f - (nh * nh), 0.0f), 1.0000000116860974230803549289703e-07f), _6047 * 0.5f)) / 6.283185482025146484375f; } float charlie_l(float x, float alpha_g) { float _6074 = (1.0f - alpha_g) * (1.0f - alpha_g); return ((lerp(21.5473003387451171875f, 25.3244991302490234375f, _6074) / (1.0f + (lerp(3.8298699855804443359375f, 3.3243501186370849609375f, _6074) * pow(max(x, 9.9999999747524270787835121154785e-07f), lerp(0.1982299983501434326171875f, 0.1680099964141845703125f, _6074))))) + (lerp(-1.97759997844696044921875f, -1.27392995357513427734375f, _6074) * x)) + lerp(-4.320539951324462890625f, -4.859670162200927734375f, _6074); } float lambda_sheen(float cos_theta, float alpha_g) { if (abs(cos_theta) < 0.5f) { return exp(charlie_l(cos_theta, alpha_g)); } return exp((2.0f * charlie_l(0.5f, alpha_g)) - charlie_l(1.0f - cos_theta, alpha_g)); } float v_charlie(float nl, float nv, float alpha_g) { return clamp(1.0f / (((1.0f + lambda_sheen(nv, alpha_g)) + lambda_sheen(nl, alpha_g)) * ((4.0f * nv) * nl)), 0.0f, 1.0f); } float3 ext_light(ExtCtx e, float3 l, float3 radiance, float spec, bool godot) { float3 c = float3(0.0f, 0.0f, 0.0f); float3 specular = float3(0.0f, 0.0f, 0.0f); float3 diffuse = float3(0.0f, 0.0f, 0.0f); float3 f = float3(0.0f, 0.0f, 0.0f); float dv = 0.0f; float _6871 = dot(e.n, l); float _6872 = max(_6871, 0.0f); float3 _6875 = normalize(l + e.v); float _6878 = max(dot(e.n, _6875), 0.0f); float _6881 = max(dot(e.v, _6875), 0.0f); if (_6872 > 0.0f) { f = ext_fresnel(e, _6881); if (true ? (e.aniso > 0.0f) : false) { float _6897 = lerp(e.alpha, 1.0f, e.aniso * e.aniso); dv = d_ggx_aniso(_6878, dot(e.aniso_t, _6875), dot(e.aniso_b, _6875), _6897, e.alpha) * v_ggx_aniso(_6872, e.nv, dot(e.aniso_b, e.v), dot(e.aniso_t, e.v), dot(e.aniso_t, l), dot(e.aniso_b, l), _6897, e.alpha); } else { dv = d_ggx(_6878, e.a2) * v_smith(_6872, e.nv, e.a2); } specular = ((f * dv) * _6872) * (godot ? spec : 1.0f); } float3 _6931 = ((float3(1.0f, 1.0f, 1.0f) - f) * e.diffuse) / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f); float3 _6933 = e.diffuse / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f); bool3 _6935 = bool3(godot, godot, godot); diffuse = float3(_6935.x ? _6933.x : _6931.x, _6935.y ? _6933.y : _6931.y, _6935.z ? _6933.z : _6931.z) * _6872; if (true ? (e.dt > 0.0f) : false) { diffuse = lerp(diffuse, ((e.dt_color * (1.0f - e.metallic)) / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * max(-dot(e.n_geo, l), 0.0f), float3(e.dt, e.dt, e.dt)); } if (true ? (e.transmission > 0.0f) : false) { float3 _6968 = normalize(l + ((e.n * 2.0f) * dot(-l, e.n))); float3 _6971 = normalize(_6968 + e.v); float _6974 = e.trans_alpha * e.trans_alpha; diffuse = lerp(diffuse, (((((float3(1.0f, 1.0f, 1.0f) - f_schlick90(e.f0, e.f90, clamp(dot(e.v, _6971), 0.0f, 1.0f))) * e.base) * d_ggx(clamp(dot(e.n, _6971), 0.0f, 1.0f), _6974)) * v_smith(clamp(dot(e.n, _6968), 0.0f, 1.0f), e.nv, _6974)) * e.attenuation) * (float(_6871 < 0.0f) * (1.0f - e.metallic)), float3(e.transmission, e.transmission, e.transmission)); } c = (diffuse + specular) * radiance; if (true ? (max3(e.sheen) > 0.0f) : false) { c *= (1.0f - (max3(e.sheen) * sheen_albedo(e.nv, e.sheen_roughness))); if (_6872 > 0.0f) { c += ((((e.sheen * d_charlie(e.sheen_alpha, _6878)) * v_charlie(_6872, e.nv, e.sheen_alpha)) * _6872) * radiance); } } if (true ? (e.clearcoat > 0.0f) : false) { float _7046 = max(dot(e.nc, e.v), 9.9999997473787516355514526367188e-05f); c *= (1.0f - (e.clearcoat * f_schlick90(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), float3(1.0f, 1.0f, 1.0f), _7046).x)); float _7055 = dot(e.nc, l); if (_7055 > 0.0f) { c += ((radiance * ((((e.clearcoat * f_schlick90(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), float3(1.0f, 1.0f, 1.0f), _6881).x) * d_ggx(max(dot(e.nc, _6875), 0.0f), e.cc_a2)) * v_smith(_7055, _7046, e.cc_a2)) * _7055)) * (godot ? spec : 1.0f)); } } return c; } float3 env(float up) { float3 c = float3(0.0f, 0.0f, 0.0f); float _1381 = clamp((up * 0.5f) + 0.5f, 0.0f, 1.0f); c = lerp(float3(0.2599999904632568359375f, 0.2199999988079071044921875f, 0.180000007152557373046875f), float3(0.4799999892711639404296875f, 0.579999983310699462890625f, 0.7799999713897705078125f), float3(_1381, _1381, _1381)); c += (float3(0.2199999988079071044921875f, 0.20999999344348907470703125f, 0.189999997615814208984375f) * exp((-abs(up)) * 4.0f)); return c; } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float3 sh_irradiance(float3 n) { float3 c = float3(0.0f, 0.0f, 0.0f); c = Sky_1_m0.sh[0u].xyz * 0.2820949852466583251953125f; c += (Sky_1_m0.sh[1u].xyz * (0.48860299587249755859375f * n.y)); c += (Sky_1_m0.sh[2u].xyz * (0.48860299587249755859375f * n.z)); c += (Sky_1_m0.sh[3u].xyz * (0.48860299587249755859375f * n.x)); c += (Sky_1_m0.sh[4u].xyz * ((1.09254801273345947265625f * n.x) * n.y)); c += (Sky_1_m0.sh[5u].xyz * ((1.09254801273345947265625f * n.y) * n.z)); c += (Sky_1_m0.sh[6u].xyz * (0.3153919875621795654296875f * (((3.0f * n.z) * n.z) - 1.0f))); c += (Sky_1_m0.sh[7u].xyz * ((1.09254801273345947265625f * n.x) * n.z)); c += (Sky_1_m0.sh[8u].xyz * (0.546274006366729736328125f * ((n.x * n.x) - (n.y * n.y)))); return max(c, float3(0.0f, 0.0f, 0.0f)); } float3 ext_irradiance(float3 n, bool lit_mode) { if (true ? (!lit_mode) : false) { return env(n.z) * 0.800000011920928955078125f; } if (true ? ((Sky_1_m0.flags.x & 8u) != 0u) : false) { if ((Sky_1_m0.flags.x & 16u) != 0u) { return lerp(Sky_1_m0.ambient.xyz, sh_irradiance(sky_dir(n)) * (Sky_1_m0.ibl.x * Sky_1_m0.sun.w), float3(Sky_1_m0.ambient.w, Sky_1_m0.ambient.w, Sky_1_m0.ambient.w)); } return Sky_1_m0.ambient.xyz; } if (true ? ((Lit_1_m0.counts.y & 2u) != 0u) : false) { float _7154 = clamp((dot(n, Lit_1_m0.up.xyz) * 0.5f) + 0.5f, 0.0f, 1.0f); return lerp((Lit_1_m0.ground_horizon.xyz + Lit_1_m0.ground_bottom.xyz) * 0.5f, (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f, float3(_7154, _7154, _7154)) * Lit_1_m0.ambient.w; } return Lit_1_m0.ambient.xyz; } float probe_weight(ProbeEntryU p, float3 world_1) { float3 _4292 = mul(float4(world_1, 1.0f), p.to_local).xyz; float _4308 = min(p.extents.xyz.x - abs(_4292.x), min(p.extents.xyz.y - abs(_4292.y), p.extents.xyz.z - abs(_4292.z))); if (_4308 < 0.0f) { return 0.0f; } if (!(p.extents.w > 0.0f)) { return 1.0f; } return min(_4308 / p.extents.w, 1.0f); } float3 probe_face_uv(float3 d) { bool _4136 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _4139 = abs(d); if (_4139.x >= _4139.y) { _4136 = _4139.x >= _4139.z; } else { _4136 = false; } if (_4136) { ma = _4139.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_4139.y >= _4139.z) { ma = _4139.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _4139.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 probe_texel(uint row, float3 fuv, uint level) { float _4225 = 0.5f / float(max((Probe_1_m0.counts.z >> level), 1u)); return t_probes.SampleLevel(s_probes, float2((fuv.x + clamp(fuv.y, _4225, 1.0f - _4225)) / 6.0f, (float(row) + clamp(fuv.z, _4225, 1.0f - _4225)) / 8.0f), float(level)).xyz; } float4 probe_ambient(float3 world_1, float3 n, uint probes) { float3 c = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; bool _4481 = false; float3 acc = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _4488 = min(Probe_1_m0.counts.x, 8u); uint _4492 = max(Probe_1_m0.counts.y, 1u) - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _4488)) { break; } uint _4514 = i; uint _4515 = min(_4514, 7u); if (!(((probes >> Probe_1_m0.probes[_4515].info.w) & 1u) == 0u)) { _4481 = Probe_1_m0.probes[_4515].info.y == 0u; } else { _4481 = true; } if (_4481) { uint _4558 = i; i = _4558 + 1u; continue; } float _4533 = probe_weight(Probe_1_m0.probes[_4515], world_1); if (_4533 <= 0.0f) { uint _4558 = i; i = _4558 + 1u; continue; } c = Probe_1_m0.probes[_4515].ambient.xyz; if (Probe_1_m0.probes[_4515].info.y == 1u) { c = probe_texel(Probe_1_m0.probes[_4515].info.w, probe_face_uv(mul(float4(n, 0.0f), Probe_1_m0.probes[_4515].to_local).xyz), _4492); } acc += (c * _4533); w_sum += _4533; uint _4558 = i; i = _4558 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float2 env_brdf_approx(float roughness, float nv) { float4 _2261 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * roughness) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f); return (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_2261.x * _2261.x, exp2((-9.27999973297119140625f) * nv)) * _2261.x) + _2261.y)) + _2261.zw; } float3 ext_env_weight(float3 f0, float3 f90, float roughness, float nv, float metallic, bool lit_mode) { bool _7288 = false; if (lit_mode) { _7288 = (Sky_1_m0.flags.x & 8u) != 0u; } else { _7288 = false; } if (true ? _7288 : false) { float2 _7302 = env_brdf_approx(roughness, nv); return (f0 * _7302.x) + ((f90 * _7302.y) * clamp(50.0f * f0.y, metallic, 1.0f)); } float3 _7319 = f0 + ((max(f90 * (1.0f - roughness), f0) - f0) * pow5(1.0f - nv)); if (true ? (!lit_mode) : false) { return _7319 * (1.0f - (0.5f * roughness)); } return _7319; } float3 radiance(float3 d, float roughness) { return t_radiance.SampleLevel(s_radiance, d, roughness * float(max(Sky_1_m0.flags.y, 1u) - 1u)).xyz; } float3 sky(float3 dir) { float _1569 = acos(clamp(dot(normalize(dir), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_1569 <= 1.57079637050628662109375f) { float _1579 = clamp(1.0f - pow(max(1.0f - (1.0f - (_1569 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_1579, _1579, _1579)); } float _1594 = clamp(1.0f - pow(max(1.0f - ((_1569 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_1594, _1594, _1594)); } float3 ext_radiance(float3 dir, float roughness, bool lit_mode) { if (true ? (!lit_mode) : false) { return lerp(env(dir.z), env(0.0f) * 0.85000002384185791015625f, float3(roughness, roughness, roughness)); } if (true ? ((Sky_1_m0.flags.x & 8u) != 0u) : false) { if ((Sky_1_m0.flags.x & 32u) != 0u) { return radiance(sky_dir(dir), roughness) * (Sky_1_m0.ibl.x * Sky_1_m0.sun.w); } if ((Sky_1_m0.flags.x & 64u) != 0u) { return float3(0.0f, 0.0f, 0.0f); } return Sky_1_m0.ambient.xyz; } if (true ? ((Lit_1_m0.counts.y & 2u) != 0u) : false) { return lerp(sky(dir), (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f, float3(roughness, roughness, roughness)) * Lit_1_m0.ambient.w; } return Lit_1_m0.ambient.xyz; } float probe_exit(float o, float d, float e) { if (d > 0.0f) { return (e - o) / d; } if (d < 0.0f) { return ((-e) - o) / d; } return 3.0000000054977557577780399428115e+38f; } float3 probe_lookup(ProbeEntryU p, float3 world_1, float3 dir) { float3 _4350 = mul(float4(dir, 0.0f), p.to_local).xyz; if ((p.info.x & 1u) == 0u) { return _4350; } float3 _4360 = mul(float4(world_1, 1.0f), p.to_local).xyz; return (_4360 + (_4350 * max(min(probe_exit(_4360.x, _4350.x, p.extents.xyz.x), min(probe_exit(_4360.y, _4350.y, p.extents.xyz.y), probe_exit(_4360.z, _4350.z, p.extents.xyz.z))), 0.0f))) - p.offset.xyz; } float3 probe_sample(uint row, float3 d, float lod) { bool _4252 = false; uint _4257 = max(Probe_1_m0.counts.y, 1u); float _4260 = clamp(lod, 0.0f, float(_4257 - 1u)); uint _4262 = uint(clamp(_4260, 0.0f, 4294967040.0f)); float _4264 = _4260 - float(_4262); float3 _4265 = probe_face_uv(d); float3 _4266 = probe_texel(row, _4265, _4262); if (!(_4264 <= 0.0f)) { _4252 = (_4262 + 1u) >= _4257; } else { _4252 = true; } if (_4252) { return _4266; } return (_4266 * (1.0f - _4264)) + (probe_texel(row, _4265, _4262 + 1u) * _4264); } float4 probe_reflection(float3 world_1, float3 r, float roughness, uint probes) { float3 acc = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _4399 = min(Probe_1_m0.counts.x, 8u); float _4405 = roughness * float(max(Probe_1_m0.counts.y, 1u) - 1u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _4399)) { break; } uint _4428 = i; uint _4430 = min(_4428, 7u); if (((probes >> Probe_1_m0.probes[_4430].info.w) & 1u) == 0u) { uint _4456 = i; i = _4456 + 1u; continue; } float _4440 = probe_weight(Probe_1_m0.probes[_4430], world_1); if (_4440 <= 0.0f) { uint _4456 = i; i = _4456 + 1u; continue; } acc += ((probe_sample(Probe_1_m0.probes[_4430].info.w, probe_lookup(Probe_1_m0.probes[_4430], world_1, r), _4405) * Probe_1_m0.probes[_4430].offset.w) * _4440); w_sum += _4440; uint _4456 = i; i = _4456 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float3 ext_probe_radiance(ExtCtx e, float3 dir, float roughness, bool lit_mode) { bool _7253 = false; float3 _7256 = ext_radiance(dir, roughness, lit_mode); if (!(!lit_mode)) { _7253 = Probe_1_m0.counts.x == 0u; } else { _7253 = true; } if (true ? _7253 : true) { return _7256; } float4 _7272 = probe_reflection(e.world, dir, roughness, O_1_m0.extra.z); return (_7256 * (1.0f - _7272.w)) + _7272.xyz; } float3 screen_texel(float2 uv_1, float rough) { return t_screen.SampleLevel(s_radiance, uv_1, min(log2(max(G_1_m0.viewport.x, 1.0f)) * max(rough, 0.0f), float(max(Lit_1_m0.dirs.w, 1u)) - 1.0f)).xyz; } float2 screen_uv_of(float3 p) { float4 _7336 = mul(float4(p, 1.0f), G_1_m0.view_proj); float _7341 = (_7336.w > 9.9999999747524270787835121154785e-07f) ? _7336.w : 9.9999999747524270787835121154785e-07f; float2 _7343 = _7336.xy / float2(_7341, _7341); return float2((_7343.x * 0.5f) + 0.5f, 0.5f - (_7343.y * 0.5f)); } float2 screen_exit_uv(ExtCtx e, float ior) { return screen_uv_of(e.world + (refract(-e.v, e.n, 1.0f / ior) * e.thickness)); } float3 ext_screen_refracted(ExtCtx e, float rough) { if (e.thin) { float3 _7413 = normalize(mul(float4(e.n, 0.0f), G_1_m0.view).xyz); return screen_texel((e.frag * G_1_m0.viewport.zw) + (float2(-_7413.x, _7413.y) * M_1_m0.factors.z), rough) * e.attenuation; } if (true ? (e.dispersion > 0.0f) : false) { float _7439 = ((e.ior - 1.0f) * 0.02500000037252902984619140625f) * e.dispersion; return float3(screen_texel(screen_exit_uv(e, max(e.ior - _7439, 1.0f)), rough).x, screen_texel(screen_exit_uv(e, e.ior), rough).y, screen_texel(screen_exit_uv(e, e.ior + _7439), rough).z) * e.attenuation; } return screen_texel(screen_exit_uv(e, e.ior), rough) * e.attenuation; } float3 ext_refracted(ExtCtx e, bool lit_mode) { bool _7475 = false; bool _7477 = false; float _7481 = sqrt(e.trans_alpha); if (lit_mode) { _7475 = (Lit_1_m0.counts.y & 16u) != 0u; } else { _7475 = false; } if (_7475) { _7477 = Lit_1_m0.dirs.w > 0u; } else { _7477 = false; } if (true ? _7477 : false) { return ext_screen_refracted(e, _7481); } if (e.thin) { return ext_radiance(-e.v, _7481, lit_mode) * e.attenuation; } if (true ? (e.dispersion > 0.0f) : false) { float _7518 = ((e.ior - 1.0f) * 0.02500000037252902984619140625f) * e.dispersion; float3 _7525 = float3(max(e.ior - _7518, 1.0f), e.ior, e.ior + _7518); return float3(ext_radiance(refract(-e.v, e.n, 1.0f / _7525.x), _7481, lit_mode).x, ext_radiance(refract(-e.v, e.n, 1.0f / _7525.y), _7481, lit_mode).y, ext_radiance(refract(-e.v, e.n, 1.0f / _7525.z), _7481, lit_mode).z) * e.attenuation; } return ext_radiance(refract(-e.v, e.n, 1.0f / e.ior), _7481, lit_mode) * e.attenuation; } float3 ext_ambient(ExtCtx e, bool lit_mode, float4 gi) { float3 bent = float3(0.0f, 0.0f, 0.0f); bool _7585 = false; float3 diffuse = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); bool _7587 = false; bool _7581 = false; float3 r = float3(0.0f, 0.0f, 0.0f); bool _7583 = false; diffuse = e.diffuse * ext_irradiance(e.n, lit_mode); if (lit_mode) { _7581 = (Sky_1_m0.flags.x & 8u) == 0u; } else { _7581 = false; } if (_7581) { _7583 = (Lit_1_m0.counts.y & 2u) == 0u; } else { _7583 = false; } if (true ? _7583 : false) { diffuse = Lit_1_m0.ambient.xyz * e.diffuse; } if (lit_mode) { _7585 = Probe_1_m0.counts.x > 0u; } else { _7585 = false; } if (_7585) { _7587 = gi.w <= 0.0f; } else { _7587 = false; } if (true ? _7587 : false) { float4 _7645 = probe_ambient(e.world, e.n, O_1_m0.extra.z); diffuse = (diffuse * (1.0f - _7645.w)) + (e.diffuse * _7645.xyz); } if (gi.w > 0.0f) { diffuse = e.diffuse * gi.xyz; } if (true ? (e.dt > 0.0f) : false) { diffuse = lerp(diffuse, (e.dt_color * (1.0f - e.metallic)) * ext_irradiance(-e.n_geo, lit_mode), float3(e.dt, e.dt, e.dt)); } r = reflect(-e.v, e.n); if (true ? (e.aniso > 0.0f) : false) { bent = normalize(cross(cross(e.aniso_b, e.v), e.aniso_b)); float _7698 = pow(1.0f - (e.aniso * (1.0f - e.roughness)), 4.0f); bent = normalize(lerp(bent, e.n, float3(_7698, _7698, _7698))); float _7711 = e.roughness * e.roughness; r = normalize(lerp(reflect(-e.v, bent), bent, float3(_7711, _7711, _7711))); } float3 _7726 = ext_env_weight(lerp(e.f0, e.irid_f, float3(e.iridescence, e.iridescence, e.iridescence)), lerp(e.f90, float3(1.0f, 1.0f, 1.0f), float3(e.iridescence, e.iridescence, e.iridescence)), e.roughness, e.nv, e.metallic, lit_mode); if (true ? (e.transmission > 0.0f) : false) { diffuse = lerp(diffuse, (((float3(1.0f, 1.0f, 1.0f) - _7726) * e.base) * ext_refracted(e, lit_mode)) * (1.0f - e.metallic), float3(e.transmission, e.transmission, e.transmission)); } c = diffuse + (ext_probe_radiance(e, r, e.roughness, lit_mode) * _7726); if (true ? (max3(e.sheen) > 0.0f) : false) { float _7757 = sheen_albedo(e.nv, e.sheen_roughness); c = (c * (1.0f - (max3(e.sheen) * _7757))) + ((e.sheen * ext_irradiance(e.n, lit_mode)) * _7757); } if (true ? (e.clearcoat > 0.0f) : false) { float _7778 = max(dot(e.nc, e.v), 9.9999997473787516355514526367188e-05f); c = (c * (1.0f - (e.clearcoat * f_schlick90(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), float3(1.0f, 1.0f, 1.0f), _7778).x))) + ((ext_probe_radiance(e, reflect(-e.v, e.nc), e.cc_roughness, lit_mode) * e.clearcoat) * ext_env_weight(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), float3(1.0f, 1.0f, 1.0f), e.cc_roughness, _7778, 0.0f, lit_mode)); } return c; } uint object_light_count() { return min(O_1_m0.lights.z, 8u); } uint object_light(uint k) { return min(((((k < 4u) ? O_1_m0.lights.x : O_1_m0.lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float shadow_factor(uint i, float3 world_1, float3 n_geo, float3 l) { int dy = -1; bool _3786 = false; uint part = 0u; bool _3788 = false; uint c = 0u; float vis = 0.0f; bool _3784 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint _3796 = min(i, 63u); uint _3806 = min(Lit_1_m0.lights[min(i, 63u)].info.w, 15u); uint _3809 = min(_3806, 15u); uint _3812 = min(_3806, 15u); uint _3818 = max(Shadow_1_m0.lights[min(_3806, 15u)].info.y, 1u); float _3824 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; if (Lit_1_m0.lights[_3796].info.x == 0u) { if (_3824 > Shadow_1_m0.lights[min(_3806, 15u)].fade.y) { return 1.0f; } part = _3818 - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(c < _3818)) { break; } if (_3824 <= Shadow_1_m0.lights[min(_3806, 15u)].splits[min(c, 3u)]) { part = c; break; } c++; continue; } } uint _3868 = part; uint _3874 = min(min((Shadow_1_m0.lights[_3812].info.x + min(_3868, (_3818 - 1u))), 15u), 15u); float _3881 = Shadow_1_m0.tiles[_3874].texel.x + (Shadow_1_m0.tiles[_3874].texel.y * distance(world_1, Lit_1_m0.lights[min(i, 63u)].position.xyz)); float3 _3892 = (world_1 + (n_geo * ((Shadow_1_m0.lights[_3809].params.y * max(Shadow_1_m0.lights[_3809].params.z, 1.0f)) * _3881))) + (l * (Shadow_1_m0.lights[_3809].params.x * _3881)); if (Lit_1_m0.lights[_3796].info.x == 1u) { float3 _3896 = _3892 - Lit_1_m0.lights[min(i, 63u)].position.xyz; float3 _3897 = abs(_3896); if (_3897.x >= _3897.y) { _3784 = _3897.x >= _3897.z; } else { _3784 = false; } if (_3784) { part = (_3896.x >= 0.0f) ? 0u : 1u; } else { if (_3897.y >= _3897.z) { part = (_3896.y >= 0.0f) ? 2u : 3u; } else { part = (_3896.z >= 0.0f) ? 4u : 5u; } } } uint _3930 = min((Shadow_1_m0.lights[_3812].info.x + min(part, (_3818 - 1u))), 15u); float4 _3935 = mul(float4(_3892, 1.0f), Shadow_1_m0.tiles[min(_3930, 15u)].view_proj); if (_3935.w <= 0.0f) { return 1.0f; } float3 _3943 = _3935.xyz / float3(_3935.www); if (!(abs(_3943.x) > 1.0f)) { _3786 = abs(_3943.y) > 1.0f; } else { _3786 = true; } if (!_3786) { _3788 = _3943.z > 1.0f; } else { _3788 = true; } if (_3788) { return 1.0f; } uint _3964 = min(_3930, 15u); float2 _3977 = Shadow_1_m0.tiles[_3964].rect.xy + (float2((_3943.x * 0.5f) + 0.5f, 0.5f - (_3943.y * 0.5f)) * Shadow_1_m0.tiles[_3964].rect.zw); float _3981 = 0.5f * Shadow_1_m0.atlas.x; float2 _3983 = Shadow_1_m0.tiles[_3964].rect.xy + float2(_3981, _3981); float _3987 = 0.5f * Shadow_1_m0.atlas.x; float2 _3989 = (Shadow_1_m0.tiles[_3964].rect.xy + Shadow_1_m0.tiles[_3964].rect.zw) - float2(_3987, _3987); if (Shadow_1_m0.lights[_3809].params.z <= 0.0f) { vis = t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3977, _3983, _3989), _3943.z); } else { float _4000 = Shadow_1_m0.lights[_3809].params.z * Shadow_1_m0.atlas.x; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(dx <= 1)) { break; } vis += t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3977 + (float2(float(dx), float(dy)) * _4000), _3983, _3989), _3943.z); dx++; continue; } dy++; continue; } vis /= 9.0f; } if (Lit_1_m0.lights[_3796].info.x == 0u) { uint _4065 = min(_3806, 15u); vis = lerp(vis, 1.0f, smoothstep(Shadow_1_m0.lights[_4065].fade.x, Shadow_1_m0.lights[_4065].fade.y, _3824)); } return lerp(1.0f, vis, Shadow_1_m0.lights[_3809].params.w); } float3 probe_light(float3 n) { return max(float3(O_1_m0.gi[0u].x + dot(O_1_m0.gi[0u].yzw, n), O_1_m0.gi[1u].x + dot(O_1_m0.gi[1u].yzw, n), O_1_m0.gi[2u].x + dot(O_1_m0.gi[2u].yzw, n)), float3(0.0f, 0.0f, 0.0f)); } float4 gi_diffuse(float3 n, bool baked, float3 baked_light) { if (baked) { return float4(baked_light, 1.0f); } if (true ? ((O_1_m0.extra.x & 8u) != 0u) : false) { return float4(probe_light(n), 1.0f); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float3 ext_shade_with(VsOutExt _in, bool front, ExtSamples s, bool lit_mode, bool baked, float3 baked_light) { float3 rad = float3(0.0f, 0.0f, 0.0f); bool _7836 = false; bool _7832 = false; bool _7844 = false; float3 l = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); float atten = 0.0f; uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); if (lit_mode) { _7832 = O_1_m0.decals.z > 0u; } else { _7832 = false; } ExtCtx _7855 = ext_ctx(_in, front, s, true ? _7832 : false); if (true ? (!lit_mode) : false) { float3x3 _7870 = transpose(float3x3(G_1_m0.view[0u].xyz, G_1_m0.view[1u].xyz, G_1_m0.view[2u].xyz)); c += ext_light(_7855, normalize(mul(float3(-0.449999988079071044921875f, 0.550000011920928955078125f, 0.699999988079071044921875f), _7870)), float3(2.599999904632568359375f, 2.5220000743865966796875f, 2.3919999599456787109375f), 1.0f, false); c += ext_light(_7855, normalize(mul(float3(0.75f, 0.1500000059604644775390625f, 0.449999988079071044921875f), _7870)), float3(0.76499998569488525390625f, 0.809999942779541015625f, 0.89999997615814208984375f), 1.0f, false); c += ext_light(_7855, normalize(mul(float3(0.300000011920928955078125f, 0.550000011920928955078125f, -0.60000002384185791015625f), _7870)), float3(1.2999999523162841796875f, 1.2999999523162841796875f, 1.2999999523162841796875f), 1.0f, false); c += (ext_ambient(_7855, false, float4(0.0f, 0.0f, 0.0f, 0.0f)) * s.occlusion); c += s.emission; return c; } uint _7895 = object_light_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(true ? (k < _7895) : false)) { break; } uint _7919 = object_light(k); uint _7920 = min(_7919, 63u); if (baked) { _7836 = Lit_1_m0.lights[_7920].info.z == 1u; } else { _7836 = false; } if (_7836) { uint _8006 = k; k = _8006 + 1u; continue; } l = float3(0.0f, 0.0f, 0.0f); atten = 1.0f; if (Lit_1_m0.lights[_7920].info.x == 0u) { l = -Lit_1_m0.lights[_7920].direction.xyz; } else { float3 _7944 = Lit_1_m0.lights[_7920].position.xyz - _in.world; float _7945 = length(_7944); float _7946 = max(_7945, 9.9999999747524270787835121154785e-07f); l = _7944 / float3(_7946, _7946, _7946); atten = omni_attenuation(_7945, Lit_1_m0.lights[_7920].position.w, Lit_1_m0.lights[_7920].direction.w); if (Lit_1_m0.lights[_7920].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_7920].direction.xyz), Lit_1_m0.lights[_7920].spot.x)) / max(1.0f - Lit_1_m0.lights[_7920].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_7920].spot.y)); } } if (atten > 0.0f) { rad = Lit_1_m0.lights[_7920].color.xyz * atten; if (true ? (Lit_1_m0.lights[_7920].info.y == 1u) : false) { rad = Lit_1_m0.lights[_7920].color.xyz * (atten * shadow_factor(_7919, _in.world, _7855.n_geo, l)); } c += ext_light(_7855, l, rad, Lit_1_m0.lights[_7920].spot.z, true); } uint _8006 = k; k = _8006 + 1u; continue; } float3 _8010 = ext_ambient(_7855, true, gi_diffuse(_7855.n, baked, baked_light)); if ((Lit_1_m0.counts.y & 4u) != 0u) { _7844 = M_1_m0.flags.y != 2u; } else { _7844 = false; } if (true ? _7844 : false) { int _8031; spvTextureSize(t_ao, 0u, _8031); int _8033 = int(min(uint(0), uint(int(_8031) - 1))); uint _8034_dummy_parameter; float4 _8038 = t_ao.Load(int3(int2(min(uint2(int2(clamp(floor(_in.clip.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ao, uint(_8033), _8034_dummy_parameter)) - int2(1, 1)))), _8033)); float _8039 = _8038.x; c *= lerp(1.0f, min(_8039, _7855.occlusion), Lit_1_m0.tone.z * Lit_1_m0.tone.w); c += (_8010 * min(_7855.occlusion, _8039)); } else { c += (_8010 * _7855.occlusion); } c += _7855.emission; return c; } float3 ext_shade(VsOutExt _in, bool front, ExtSamples s, bool lit_mode) { return ext_shade_with(_in, front, s, lit_mode, false, float3(0.0f, 0.0f, 0.0f)); } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _2282 = max(x, 0.0f) * max(x, 0.0f); float _2283 = _2282 * _2282; return _2283 * _2283; } float3 fog_sun_scatter(float3 fc, float3 dir) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _2301 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _2301)) { break; } uint _2324 = pool_sun(k); if (Lit_1_m0.lights[min(_2324, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_2324, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir, -Lit_1_m0.lights[min(_2324, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 surface_fog(float3 c, float3 world_1, float3 dir) { float amount = 0.0f; bool _2390 = false; float dist = 0.0f; float3 fc = float3(0.0f, 0.0f, 0.0f); float _2398 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; dist = distance(world_1, G_1_m0.camera_pos.xyz); if (Sky_1_m0.fog_origin.w > 0.5f) { dist = max(_2398 - Sky_1_m0.fog_origin.x, 0.0f); } if ((Sky_1_m0.flags.x & 256u) != 0u) { float _2424 = smoothstep(Sky_1_m0.fog_depth.x, Sky_1_m0.fog_depth.y, dist); amount = ((_2424 > 0.0f) ? pow(max(_2424, 9.9999999747524270787835121154785e-07f), Sky_1_m0.fog_depth.z) : 0.0f) * Sky_1_m0.fog.x; } else { amount = 1.0f - exp(min(0.0f, (-dist) * Sky_1_m0.fog.x)); } if (abs(Sky_1_m0.fog.w) >= 9.9999997473787516355514526367188e-05f) { amount = max(amount, 1.0f - exp(min(0.0f, (dot(world_1, Lit_1_m0.up.xyz) - Sky_1_m0.fog.z) * Sky_1_m0.fog.w))); } amount = clamp(amount, 0.0f, 1.0f); fc = Sky_1_m0.fog_color.xyz; if ((Sky_1_m0.flags.x & 8u) != 0u) { _2390 = Sky_1_m0.fog_depth.w > 0.0f; } else { _2390 = false; } if (true ? _2390 : false) { fc = lerp(fc, radiance(sky_dir(dir), lerp(1.0f / float(max(Sky_1_m0.flags.y, 2u) - 1u), 1.0f, 1.0f - clamp((_2398 - Sky_1_m0.fog_origin.y) / max(Sky_1_m0.fog_origin.z - Sky_1_m0.fog_origin.y, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f))) * Sky_1_m0.sun.w, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)); } fc = fog_sun_scatter(fc, dir); return lerp(c, fc, float3(amount, amount, amount)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _2542 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _2546 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_2542 == 4u) { return float2(0.0f, _2546); } float3 _2555 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _2556 = abs(d); bool3 _2557 = bool3(_2556.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _2556.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _2556.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _2558 = float3(_2557.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _2557.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _2557.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _2561 = ((-_2555) - o) / _2558; float3 _2563 = (_2555 - o) / _2558; float3 _2564 = min(_2561, _2563); float3 _2565 = max(_2561, _2563); r = float2(max(0.0f, _2564.y), min(_2546, _2565.y)); if (_2542 == 3u) { r = float2(max(max(r.x, _2564.x), _2564.z), min(min(r.y, _2565.x), _2565.z)); } else { if (_2542 == 0u) { a = dot(d / _2555, d / _2555); b = dot(o / _2555, d / _2555); c = dot(o / _2555, o / _2555) - 1.0f; } else { float _2604 = min(_2555.x, _2555.z); float _2609 = (_2542 == 1u) ? (_2604 / (2.0f * _2555.y)) : 0.0f; float _2612 = _2555.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_2609 * _2609) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_2609 * _2609) * _2612) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_2542 == 1u) ? (((_2609 * _2609) * _2612) * _2612) : (_2604 * _2604)); } } float _2658 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_2658 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _2722 = min(((-b) - sqrt(_2658)) / a, ((-b) + sqrt(_2658)) / a); float _2735 = max(((-b) - sqrt(_2658)) / a, ((-b) + sqrt(_2658)) / a); if (a > 0.0f) { r = float2(max(r.x, _2722), min(r.y, _2735)); } else { if (r.x < min(r.y, _2722)) { r.y = min(r.y, _2722); } else { r.x = max(r.x, _2735); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _2779 = min(k, 15u); rho = Fog_1_m0.entries[_2779].material.x * min(exp2((-Fog_1_m0.entries[_2779].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2779].material.w)), 1.0f); if (Fog_1_m0.entries[_2779].material.z > 0.0f) { uint _2806 = uint(clamp(Fog_1_m0.entries[_2779].albedo.w, 0.0f, 4294967040.0f)); float3 _2809 = Fog_1_m0.entries[_2779].size.xyz * 0.5f; float _2812 = min(_2809.x, _2809.z); if (_2806 == 0u) { float _2818 = length(lp / _2809); sdf = (_2818 * (_2818 - 1.0f)) / max(length(lp / (_2809 * _2809)), 9.9999999600419720025001879548654e-13f); } else { if (_2806 == 3u) { float3 _2831 = abs(lp) - _2809; sdf = length(max(_2831, float3(0.0f, 0.0f, 0.0f))) + min(max(_2831.x, max(_2831.y, _2831.z)), 0.0f); } else { if (_2806 == 2u) { float2 _2852 = float2(length(lp.xz) - _2812, abs(lp.y) - _2809.y); sdf = min(max(_2852.x, _2852.y), 0.0f) + length(max(_2852, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _2812 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _2809.y))), float2(length(lp.xz), lp.y - _2809.y)), (-_2809.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_2779].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_2779].material.z); } return rho; } float3 fog_light(uint n, float3 p, float3 dir) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _3013 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_3013].lights.z, 8u))) { break; } uint _3049 = min(((((k < 4u) ? Fog_1_m0.entries[_3013].lights.x : Fog_1_m0.entries[_3013].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _3050 = min(_3049, 63u); l = -Lit_1_m0.lights[_3050].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_3050].info.x != 0u) { float3 _3063 = Lit_1_m0.lights[_3050].position.xyz - p; float _3065 = max(length(_3063), 9.9999999747524270787835121154785e-07f); l = _3063 / float3(_3065, _3065, _3065); atten = omni_attenuation(length(_3063), Lit_1_m0.lights[_3050].position.w, Lit_1_m0.lights[_3050].direction.w); if (Lit_1_m0.lights[_3050].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_3050].direction.xyz), Lit_1_m0.lights[_3050].spot.x)) / max(1.0f - Lit_1_m0.lights[_3050].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_3050].spot.y)); } } float _3106 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir, l)); sum += (Lit_1_m0.lights[_3050].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _3106) * sqrt(_3106))) * Fog_1_m0.light_fog[min((_3049 >> 2u), 15u)][min((_3049 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _2904 = min(k, 15u); if ((Fog_1_m0.entries[_2904].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_2904].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_2904].material.y) * a), 1.0f); } float _2922 = clamp((-a) / b, t0, t1); float _2924 = (b > 0.0f) ? _2922 : t0; float _2926 = (b > 0.0f) ? t1 : _2922; float _2931 = ((Fog_1_m0.entries[_2904].material.y * abs(b)) * (_2926 - _2924)) * 0.693147182464599609375f; return Fog_1_m0.entries[_2904].material.x * (((t1 - t0) - (_2926 - _2924)) + ((min(exp2((-Fog_1_m0.entries[_2904].material.y) * max(a + (b * ((b > 0.0f) ? _2924 : _2926)), 0.0f)), 1.0f) * (_2926 - _2924)) * ((_2931 < 0.00999999977648258209228515625f) ? (1.0f - (_2931 * (0.5f - (_2931 * (0.16666667163372039794921875f - (_2931 / 24.0f)))))) : ((1.0f - exp(-_2931)) / _2931)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _3149 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _3151 = false; float tau = 0.0f; bool _3142 = false; uint i = 0u; bool _3144 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3154 = min(k, 15u); float3 _3160 = mul(float4(o, 1.0f), Fog_1_m0.entries[_3154].to_local).xyz; float3 _3164 = mul(float4(d, 0.0f), Fog_1_m0.entries[_3154].to_local).xyz; float _3171 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_3154].material.w; float _3175 = dot(d, Fog_1_m0.up.xyz); bool _3178 = Fog_1_m0.entries[_3154].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_3154].material.y > 0.0f) { _3142 = ((-_3171) / _3175) > ch.x; } else { _3142 = false; } if (_3142) { _3144 = ((-_3171) / _3175) < ch.y; } else { _3144 = false; } if (_3144) { split = (-_3171) / _3175; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_3178 ? 12u : 4u))) { break; } uint _3229 = i & 3u; if (!(_3229 == 0u)) { _3149 = _3229 == 3u; } else { _3149 = true; } float _3237 = _3149 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_3229 == 0u)) { _3151 = _3229 == 3u; } else { _3151 = true; } float _3245 = _3151 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _3248 = float2(split, ch.y); float2 _3251 = float2(ch.x, split); bool _3253 = i < 8u; bool2 _3255 = bool2(_3253, _3253); float2 _3254 = float2(_3255.x ? _3251.x : _3248.x, _3255.y ? _3251.y : _3248.y); bool _3257 = i < 4u; bool2 _3259 = bool2(_3257, _3257); float2 _3258 = float2(_3259.x ? ch.x : _3254.x, _3259.y ? ch.y : _3254.y); float _3263 = (_3258.y - _3258.x) * 0.5f; float _3272 = ((_3258.x + _3258.y) * 0.5f) + (_3263 * ((_3229 < 2u) ? (-_3237) : _3237)); float3 _3274 = o + (d * _3272); float _3277 = fog_density(k, _3274, _3160 + (_3164 * _3272)); if (i < 4u) { q += (((Fog_1_m0.entries[_3154].albedo.xyz * fog_light(k, _3274, d)) + Fog_1_m0.entries[_3154].emission.xyz) * ((_3245 * _3263) * clamp(_3277, 0.0f, 1.0f))); } else { tau += ((_3245 * _3263) * _3277); } i++; continue; } if (!_3178) { tau = fog_falloff_depth(k, _3171, _3175, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _3325; uint i_3 = 0u; uint n = 0u; bool _3331 = false; float2 chords[4] = _3328; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _3335; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _3348 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_3348 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _3378 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_3348) { _3331 = _3378 == 0u; } else { _3331 = false; } if (_3331) { break; } uint _3390 = _3348 ? i_2 : (min(_3378, 16u) - 1u); uint _3391 = min(_3390, 15u); float2 _3400 = fog_chord(_3390, mul(float4(o, 1.0f), Fog_1_m0.entries[_3391].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_3391].to_local).xyz, t_end); if (_3400.y > _3400.x) { at[min(m, 3u)] = _3390; chords[min(m, 3u)] = _3400; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _3556 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _3556)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _3676 = exp(-tau); return (c * _3676) + (q * ((1.0f - _3676) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 fog_volumes(float3 c, float3 world_1, uint list) { float3 _3712 = world_1 - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(world_1, 1.0f), G_1_m0.view).z); bool _3715 = G_1_m0.camera_pos.w > 0.5f; bool3 _3717 = bool3(_3715, _3715, _3715); float3 _3716 = float3(_3717.x ? _3712.x : G_1_m0.camera_pos.xyz.x, _3717.y ? _3712.y : G_1_m0.camera_pos.xyz.y, _3717.z ? _3712.z : G_1_m0.camera_pos.xyz.z); float _3719 = length(world_1 - _3716); float _3721 = max(_3719, 9.9999999747524270787835121154785e-07f); float3 _3724 = fog_integrate(c, _3716, (world_1 - _3716) / float3(_3721, _3721, _3721), _3719, list); bool _3725 = _3719 > 0.0f; bool3 _3727 = bool3(_3725, _3725, _3725); return float3(_3727.x ? _3724.x : c.x, _3727.y ? _3724.y : c.y, _3727.z ? _3724.z : c.z); } float3 filmic_curve(float3 x) { float _1612 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _1616 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _1622 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _1626 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_1612, _1612, _1612))) + float3(_1616, _1616, _1616)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_1622, _1622, _1622))) - float3(_1626, _1626, _1626); } float3 aces_curve(float3 c, float white) { float3 _1674 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _1682 = ((_1674 * (_1674 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_1674 * ((_1674 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _1687 = 1.7999999523162841796875f * white; float _1695 = ((_1687 * (_1687 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_1687 * ((0.98372900485992431640625f * _1687) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _1682), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _1682), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _1682)) / float3(_1695, _1695, _1695); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _1750 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_1750, _1750, _1750); float3 _1755 = v * v; float3 _1756 = _1755 * _1755; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_1755 * 4.01109981536865234375f)) - ((_1755 * 25.68199920654296875f) * v)) + (_1756 * 70.35900115966796875f)) - ((_1756 * 74.7779998779296875f) * v)) + ((_1756 * 27.069000244140625f) * _1755), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _1785 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_1785 * Lit_1_m0.tone.y) + _1785) / ((_1785 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_1785) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_1785, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_1785); } return _1785; } float3 ext_lit_finish(float3 c_in, float3 world_1) { float3 c = float3(0.0f, 0.0f, 0.0f); c = c_in; if (true ? ((Sky_1_m0.flags.x & 128u) != 0u) : false) { c = surface_fog(c, world_1, -ext_view(world_1)); } if (true ? (O_1_m0.decals.w != 0u) : false) { c = fog_volumes(c, world_1, O_1_m0.decals.w); } return tonemap(c); } float3 item_fade(float3 c) { if (true ? ((O_1_m0.extra.x & 64u) == 0u) : true) { return c; } return lerp(c, tonemap(O_1_m0.normal[3u].xyz), float3(O_1_m0.normal[3u].www)); } float3 emerge_tint(float3 c, float r) { bool _1944 = false; if (!((O_1_m0.extra.x & 32u) == 0u)) { _1944 = r >= 1.0f; } else { _1944 = true; } if (true ? _1944 : true) { return c; } float _1966 = smoothstep(0.0f, 1.0f, r); return lerp(tonemap(srgb_to_linear(spvUnpackUnorm4x8(O_1_m0.extra.w).xyz)), c, float3(_1966, _1966, _1966)); } float3 linear_to_srgb(float3 c) { float3 _338 = c * 12.9200000762939453125f; float3 _341 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _342 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_342.x ? _338.x : _341.x, _342.y ? _338.y : _341.y, _342.z ? _338.z : _341.z); } float4 target_color(float4 c) { float4 _353 = clamp(c, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if (G_1_m0.fparams.w > 0.5f) { return float4(linear_to_srgb(_353.xyz), _353.w); } return _353; } float4 lit_output(float4 c) { if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(c.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(c.w, 0.0f, 1.0f)); } return target_color(c); } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); bool _8219 = false; float alpha = 1.0f; bool _8217 = false; VsOutExt _8154 = { gl_FragCoord, world, normal, uv, flags, tangent, weight, color, uv1 }; bool _8224 = gl_FrontFacing != mirrored(ext_base_in(_8154)); ExtSamples _8225 = sample_ext(_8154); if (true ? ((_8154.flags & 2u) != 0u) : false) { discard; } float _8235 = emerge_reveal(_8154.world, _8154.clip.xy); if (true ? (_8235 <= 0.0f) : false) { discard; } if (ext_cut(_8225)) { discard; } if (true ? (M_1_m0.flags.y == 2u) : false) { alpha = _8225.base.w; } bool _8254 = true ? (G_1_m0.params.x == 8u) : false; if (true ? (G_1_m0.params.x == 9u) : false) { alpha = 1.0f; float3 _8264 = -normalize(_8154.normal); float3 _8266 = normalize(_8154.normal); bool3 _8268 = bool3(_8224, _8224, _8224); c = studio(normalize(mul(float4(float3(_8268.x ? _8266.x : _8264.x, _8268.y ? _8266.y : _8264.y, _8268.z ? _8266.z : _8264.z), 0.0f), G_1_m0.view).xyz), srgb_to_linear(float3(0.800000011920928955078125f, 0.800000011920928955078125f, 0.800000011920928955078125f))); } else { if (true ? ((M_1_m0.flags.w & 8u) != 0u) : false) { c = _8225.base.xyz; } else { c = ext_shade(_8154, _8224, _8225, _8254); } if (true ? _8254 : false) { c = ext_lit_finish(c, _8154.world); } } if (O_1_m0.params.w == 1u) { _8217 = (G_1_m0.params.y & 1u) != 0u; } else { _8217 = false; } if (_8217) { _8219 = (_8154.flags & 1u) != 0u; } else { _8219 = false; } if (true ? _8219 : false) { c = lerp(c, srgb_to_linear(float3(1.0f, 0.6349999904632568359375f, 0.0f)), float3(0.4000000059604644775390625f, 0.4000000059604644775390625f, 0.4000000059604644775390625f)); } if (true ? _8254 : false) { _8181 = lit_output(float4(emerge_tint(item_fade(c), _8235), alpha)); return; } _8181 = target_color(float4(c, alpha)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; color = stage_input.color; uv1 = stage_input.uv1; frag_main(); SPIRV_Cross_Output stage_output; stage_output._8181 = _8181; return stage_output; }  fs_shadow_extmainîTstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _287[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const Samples _599 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Samples _692 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const VsOutExt _1489 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1517 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const ExtSamples _1628 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), false, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float2(0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f) }; static const float _2305[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _2812 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer M : register(b9) { MaterialU M_1_m0 : packoffset(c0); }; Texture2D t_base : register(t4); Texture2D t_normal : register(t5); Texture2D t_mr : register(t6); Texture2D t_emission : register(t7); Texture2D t_occlusion : register(t8); SamplerState s_mat : register(s2); Texture2DArray t_ext : register(t9); static float4 gl_FragCoord; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 color; static float2 uv1; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 color : TEXCOORD6; float2 uv1 : TEXCOORD7; float4 gl_FragCoord : SV_Position; }; float2 tex_uv(float2 uv_1) { return float2(uv_1.x, 1.0f - uv_1.y); } float2 ext_uv(uint s, float2 uv0, float2 uv1_1) { uint _1547 = min((s * 2u), 39u); uint _1552 = min(((s * 2u) + 1u), 39u); bool _1556 = M_1_m0.xf[_1547].w > 0.5f; bool2 _1559 = bool2(_1556, _1556); float2 _1557 = float2(_1559.x ? uv1_1.x : uv0.x, _1559.y ? uv1_1.y : uv0.y); return float2(dot(M_1_m0.xf[_1547].xy, _1557) + M_1_m0.xf[_1547].z, dot(M_1_m0.xf[_1552].xy, _1557) + M_1_m0.xf[_1552].z); } float3 srgb_to_linear(float3 c) { float3 _174 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _177 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _179 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_179.x ? _174.x : _177.x, _179.y ? _174.y : _177.y, _179.z ? _174.z : _177.z); } float4 decoded_base(float4 t) { if ((M_1_m0.flags.w & 32u) != 0u) { return float4(srgb_to_linear(t.xyz), t.w); } return t; } float3 scaled_normal(float3 texel, float scale) { return normalize(((texel * 2.0f) - float3(1.0f, 1.0f, 1.0f)) * float3(scale, scale, 1.0f)); } float ext_where(uint s) { return M_1_m0.xf[min(((s * 2u) + 1u), 39u)].w; } float4 ext_layer(uint s, float2 uv0, float2 uv1_1) { return t_ext.Sample(s_mat, float3(ext_uv(s, uv0, uv1_1), float(int(clamp(ext_where(s) + 0.5f, -2147483648.0f, 2147483520.0f)) - 1))); } float3 decoded_emission(float3 t) { if ((M_1_m0.flags.w & 64u) != 0u) { return srgb_to_linear(t); } return t; } ExtSamples sample_ext(VsOutExt _in) { ExtSamples s = _1628; float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); float thick = 1.0f; float2 _1634 = tex_uv(_in.uv); float2 _1636 = tex_uv(_in.uv1); s.base = M_1_m0.base_color; if (true ? ((M_1_m0.flags.x & 1u) != 0u) : false) { s.base *= decoded_base(t_base.Sample(s_mat, ext_uv(0u, _1634, _1636))); } if (true ? ((M_1_m0.flags.w & 1u) != 0u) : false) { c = _in.color; if ((M_1_m0.flags.w & 2u) != 0u) { c = float4(srgb_to_linear(c.xyz), c.w); } s.base *= c; } s.normal = float3(0.0f, 0.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { s.normal = scaled_normal(t_normal.Sample(s_mat, ext_uv(3u, _1634, _1636)).xyz, M_1_m0.ext[3u].w); } s.metallic = M_1_m0.factors.x; if (true ? (ext_where(1u) > 0.5f) : false) { s.metallic *= t_mr.Sample(s_mat, ext_uv(1u, _1634, _1636)).z; } s.roughness = M_1_m0.factors.y; if (true ? ((M_1_m0.flags.w & 16u) != 0u) : false) { if (ext_where(2u) > 0.5f) { s.roughness *= ext_layer(2u, _1634, _1636).y; } } else { if (true ? (ext_where(2u) > 0.5f) : false) { s.roughness *= t_mr.Sample(s_mat, ext_uv(2u, _1634, _1636)).y; } } s.emission = M_1_m0.emission.xyz; if (true ? ((M_1_m0.flags.x & 8u) != 0u) : false) { s.emission *= decoded_emission(t_emission.Sample(s_mat, ext_uv(5u, _1634, _1636)).xyz); } s.occlusion = 1.0f; if (true ? ((M_1_m0.flags.x & 16u) != 0u) : false) { s.occlusion = 1.0f + (M_1_m0.ext[6u].w * (t_occlusion.Sample(s_mat, ext_uv(4u, _1634, _1636)).x - 1.0f)); } s.specular = M_1_m0.ext[0u].w; if (true ? (ext_where(11u) > 0.5f) : false) { s.specular *= ext_layer(11u, _1634, _1636).w; } s.specular_color = M_1_m0.ext[0u].xyz; if (true ? (ext_where(12u) > 0.5f) : false) { s.specular_color *= srgb_to_linear(ext_layer(12u, _1634, _1636).xyz); } s.transmission = M_1_m0.ext[1u].y; if (true ? (ext_where(13u) > 0.5f) : false) { s.transmission *= ext_layer(13u, _1634, _1636).x; } s.thickness = M_1_m0.ext[1u].z; if (true ? (ext_where(14u) > 0.5f) : false) { s.thickness *= ext_layer(14u, _1634, _1636).y; } s.clearcoat = M_1_m0.ext[3u].x; if (true ? (ext_where(6u) > 0.5f) : false) { s.clearcoat *= ext_layer(6u, _1634, _1636).x; } s.clearcoat_roughness = M_1_m0.ext[3u].y; if (true ? (ext_where(7u) > 0.5f) : false) { s.clearcoat_roughness *= ext_layer(7u, _1634, _1636).y; } s.clearcoat_normal = float3(0.0f, 0.0f, 1.0f); s.clearcoat_mapped = false; if (true ? (ext_where(8u) > 0.5f) : false) { s.clearcoat_normal = scaled_normal(ext_layer(8u, _1634, _1636).xyz, M_1_m0.ext[3u].z); s.clearcoat_mapped = true; } s.sheen_color = M_1_m0.ext[4u].xyz; if (true ? (ext_where(9u) > 0.5f) : false) { s.sheen_color *= srgb_to_linear(ext_layer(9u, _1634, _1636).xyz); } s.sheen_roughness = M_1_m0.ext[4u].w; if (true ? (ext_where(10u) > 0.5f) : false) { s.sheen_roughness *= ext_layer(10u, _1634, _1636).w; } s.iridescence = M_1_m0.ext[5u].x; if (true ? (ext_where(15u) > 0.5f) : false) { s.iridescence *= ext_layer(15u, _1634, _1636).x; } if (true ? (ext_where(16u) > 0.5f) : false) { thick = ext_layer(16u, _1634, _1636).y; } s.iridescence_thickness = lerp(M_1_m0.ext[5u].z, M_1_m0.ext[5u].w, thick); s.anisotropy = M_1_m0.ext[6u].x; s.anisotropy_dir = M_1_m0.ext[6u].yz; if (true ? (ext_where(17u) > 0.5f) : false) { float3 _1956 = ext_layer(17u, _1634, _1636).xyz; float2 _1959 = (_1956.xy * 2.0f) - float2(1.0f, 1.0f); float2 _1960 = normalize(_1959); bool _1962 = dot(_1959, _1959) > 9.9999999392252902907785028219223e-09f; bool2 _1964 = bool2(_1962, _1962); float2 _1963 = float2(_1964.x ? _1960.x : float2(1.0f, 0.0f).x, _1964.y ? _1960.y : float2(1.0f, 0.0f).y); s.anisotropy_dir = float2((M_1_m0.ext[6u].y * _1963.x) - (M_1_m0.ext[6u].z * _1963.y), (M_1_m0.ext[6u].z * _1963.x) + (M_1_m0.ext[6u].y * _1963.y)); s.anisotropy *= _1956.z; } s.diffuse_transmission = M_1_m0.ext[7u].w; if (true ? (ext_where(18u) > 0.5f) : false) { s.diffuse_transmission *= ext_layer(18u, _1634, _1636).w; } s.diffuse_transmission_color = M_1_m0.ext[7u].xyz; if (true ? (ext_where(19u) > 0.5f) : false) { s.diffuse_transmission_color *= srgb_to_linear(ext_layer(19u, _1634, _1636).xyz); } return s; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1058 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1058, _1058, _1058); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1077 = floor(p); float3 _1078 = frac(p); float3 _1082 = (_1078 * _1078) * (float3(3.0f, 3.0f, 3.0f) - (_1078 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1077), emerge_hash(_1077 + float3(1.0f, 0.0f, 0.0f)), _1082.x), lerp(emerge_hash(_1077 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1077 + float3(1.0f, 1.0f, 0.0f)), _1082.x), _1082.y), lerp(lerp(emerge_hash(_1077 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1077 + float3(1.0f, 0.0f, 1.0f)), _1082.x), lerp(emerge_hash(_1077 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1077 + float3(1.0f, 1.0f, 1.0f)), _1082.x), _1082.y), _1082.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1140 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1140) * 0.64999997615814208984375f) + (emerge_noise((_1140 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } bool ext_cut(ExtSamples s) { bool _2024 = false; if (M_1_m0.flags.y == 1u) { _2024 = s.base.w < M_1_m0.emission.w; } else { _2024 = false; } return true ? _2024 : false; } void frag_main() { VsOutExt _2834 = { gl_FragCoord, world, normal, uv, flags, tangent, weight, color, uv1 }; ExtSamples _2871 = sample_ext(_2834); if ((_2834.flags & 2u) != 0u) { discard; } if (emerge_reveal(_2834.world, float2(-1.0f, -1.0f)) <= 0.0f) { discard; } if (ext_cut(_2871)) { discard; } else { return; } } void main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; color = stage_input.color; uv1 = stage_input.uv1; frag_main(); }  fs_id_extmainÖVstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _287[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const Samples _599 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Samples _692 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const VsOutExt _1489 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1517 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const ExtSamples _1628 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), false, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float2(0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f) }; static const float _2305[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _2812 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const IdOut _2875 = { float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer M : register(b9) { MaterialU M_1_m0 : packoffset(c0); }; Texture2D t_base : register(t4); Texture2D t_normal : register(t5); Texture2D t_mr : register(t6); Texture2D t_emission : register(t7); Texture2D t_occlusion : register(t8); SamplerState s_mat : register(s2); Texture2DArray t_ext : register(t9); static float4 gl_FragCoord; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 color; static float2 uv1; static float4 id; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 color : TEXCOORD6; float2 uv1 : TEXCOORD7; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 id : SV_Target0; }; float2 tex_uv(float2 uv_1) { return float2(uv_1.x, 1.0f - uv_1.y); } float2 ext_uv(uint s, float2 uv0, float2 uv1_1) { uint _1547 = min((s * 2u), 39u); uint _1552 = min(((s * 2u) + 1u), 39u); bool _1556 = M_1_m0.xf[_1547].w > 0.5f; bool2 _1559 = bool2(_1556, _1556); float2 _1557 = float2(_1559.x ? uv1_1.x : uv0.x, _1559.y ? uv1_1.y : uv0.y); return float2(dot(M_1_m0.xf[_1547].xy, _1557) + M_1_m0.xf[_1547].z, dot(M_1_m0.xf[_1552].xy, _1557) + M_1_m0.xf[_1552].z); } float3 srgb_to_linear(float3 c) { float3 _174 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _177 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _179 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_179.x ? _174.x : _177.x, _179.y ? _174.y : _177.y, _179.z ? _174.z : _177.z); } float4 decoded_base(float4 t) { if ((M_1_m0.flags.w & 32u) != 0u) { return float4(srgb_to_linear(t.xyz), t.w); } return t; } float3 scaled_normal(float3 texel, float scale) { return normalize(((texel * 2.0f) - float3(1.0f, 1.0f, 1.0f)) * float3(scale, scale, 1.0f)); } float ext_where(uint s) { return M_1_m0.xf[min(((s * 2u) + 1u), 39u)].w; } float4 ext_layer(uint s, float2 uv0, float2 uv1_1) { return t_ext.Sample(s_mat, float3(ext_uv(s, uv0, uv1_1), float(int(clamp(ext_where(s) + 0.5f, -2147483648.0f, 2147483520.0f)) - 1))); } float3 decoded_emission(float3 t) { if ((M_1_m0.flags.w & 64u) != 0u) { return srgb_to_linear(t); } return t; } ExtSamples sample_ext(VsOutExt _in) { ExtSamples s = _1628; float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); float thick = 1.0f; float2 _1634 = tex_uv(_in.uv); float2 _1636 = tex_uv(_in.uv1); s.base = M_1_m0.base_color; if (true ? ((M_1_m0.flags.x & 1u) != 0u) : false) { s.base *= decoded_base(t_base.Sample(s_mat, ext_uv(0u, _1634, _1636))); } if (true ? ((M_1_m0.flags.w & 1u) != 0u) : false) { c = _in.color; if ((M_1_m0.flags.w & 2u) != 0u) { c = float4(srgb_to_linear(c.xyz), c.w); } s.base *= c; } s.normal = float3(0.0f, 0.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { s.normal = scaled_normal(t_normal.Sample(s_mat, ext_uv(3u, _1634, _1636)).xyz, M_1_m0.ext[3u].w); } s.metallic = M_1_m0.factors.x; if (true ? (ext_where(1u) > 0.5f) : false) { s.metallic *= t_mr.Sample(s_mat, ext_uv(1u, _1634, _1636)).z; } s.roughness = M_1_m0.factors.y; if (true ? ((M_1_m0.flags.w & 16u) != 0u) : false) { if (ext_where(2u) > 0.5f) { s.roughness *= ext_layer(2u, _1634, _1636).y; } } else { if (true ? (ext_where(2u) > 0.5f) : false) { s.roughness *= t_mr.Sample(s_mat, ext_uv(2u, _1634, _1636)).y; } } s.emission = M_1_m0.emission.xyz; if (true ? ((M_1_m0.flags.x & 8u) != 0u) : false) { s.emission *= decoded_emission(t_emission.Sample(s_mat, ext_uv(5u, _1634, _1636)).xyz); } s.occlusion = 1.0f; if (true ? ((M_1_m0.flags.x & 16u) != 0u) : false) { s.occlusion = 1.0f + (M_1_m0.ext[6u].w * (t_occlusion.Sample(s_mat, ext_uv(4u, _1634, _1636)).x - 1.0f)); } s.specular = M_1_m0.ext[0u].w; if (true ? (ext_where(11u) > 0.5f) : false) { s.specular *= ext_layer(11u, _1634, _1636).w; } s.specular_color = M_1_m0.ext[0u].xyz; if (true ? (ext_where(12u) > 0.5f) : false) { s.specular_color *= srgb_to_linear(ext_layer(12u, _1634, _1636).xyz); } s.transmission = M_1_m0.ext[1u].y; if (true ? (ext_where(13u) > 0.5f) : false) { s.transmission *= ext_layer(13u, _1634, _1636).x; } s.thickness = M_1_m0.ext[1u].z; if (true ? (ext_where(14u) > 0.5f) : false) { s.thickness *= ext_layer(14u, _1634, _1636).y; } s.clearcoat = M_1_m0.ext[3u].x; if (true ? (ext_where(6u) > 0.5f) : false) { s.clearcoat *= ext_layer(6u, _1634, _1636).x; } s.clearcoat_roughness = M_1_m0.ext[3u].y; if (true ? (ext_where(7u) > 0.5f) : false) { s.clearcoat_roughness *= ext_layer(7u, _1634, _1636).y; } s.clearcoat_normal = float3(0.0f, 0.0f, 1.0f); s.clearcoat_mapped = false; if (true ? (ext_where(8u) > 0.5f) : false) { s.clearcoat_normal = scaled_normal(ext_layer(8u, _1634, _1636).xyz, M_1_m0.ext[3u].z); s.clearcoat_mapped = true; } s.sheen_color = M_1_m0.ext[4u].xyz; if (true ? (ext_where(9u) > 0.5f) : false) { s.sheen_color *= srgb_to_linear(ext_layer(9u, _1634, _1636).xyz); } s.sheen_roughness = M_1_m0.ext[4u].w; if (true ? (ext_where(10u) > 0.5f) : false) { s.sheen_roughness *= ext_layer(10u, _1634, _1636).w; } s.iridescence = M_1_m0.ext[5u].x; if (true ? (ext_where(15u) > 0.5f) : false) { s.iridescence *= ext_layer(15u, _1634, _1636).x; } if (true ? (ext_where(16u) > 0.5f) : false) { thick = ext_layer(16u, _1634, _1636).y; } s.iridescence_thickness = lerp(M_1_m0.ext[5u].z, M_1_m0.ext[5u].w, thick); s.anisotropy = M_1_m0.ext[6u].x; s.anisotropy_dir = M_1_m0.ext[6u].yz; if (true ? (ext_where(17u) > 0.5f) : false) { float3 _1956 = ext_layer(17u, _1634, _1636).xyz; float2 _1959 = (_1956.xy * 2.0f) - float2(1.0f, 1.0f); float2 _1960 = normalize(_1959); bool _1962 = dot(_1959, _1959) > 9.9999999392252902907785028219223e-09f; bool2 _1964 = bool2(_1962, _1962); float2 _1963 = float2(_1964.x ? _1960.x : float2(1.0f, 0.0f).x, _1964.y ? _1960.y : float2(1.0f, 0.0f).y); s.anisotropy_dir = float2((M_1_m0.ext[6u].y * _1963.x) - (M_1_m0.ext[6u].z * _1963.y), (M_1_m0.ext[6u].z * _1963.x) + (M_1_m0.ext[6u].y * _1963.y)); s.anisotropy *= _1956.z; } s.diffuse_transmission = M_1_m0.ext[7u].w; if (true ? (ext_where(18u) > 0.5f) : false) { s.diffuse_transmission *= ext_layer(18u, _1634, _1636).w; } s.diffuse_transmission_color = M_1_m0.ext[7u].xyz; if (true ? (ext_where(19u) > 0.5f) : false) { s.diffuse_transmission_color *= srgb_to_linear(ext_layer(19u, _1634, _1636).xyz); } return s; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1058 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1058, _1058, _1058); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1077 = floor(p); float3 _1078 = frac(p); float3 _1082 = (_1078 * _1078) * (float3(3.0f, 3.0f, 3.0f) - (_1078 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1077), emerge_hash(_1077 + float3(1.0f, 0.0f, 0.0f)), _1082.x), lerp(emerge_hash(_1077 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1077 + float3(1.0f, 1.0f, 0.0f)), _1082.x), _1082.y), lerp(lerp(emerge_hash(_1077 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1077 + float3(1.0f, 0.0f, 1.0f)), _1082.x), lerp(emerge_hash(_1077 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1077 + float3(1.0f, 1.0f, 1.0f)), _1082.x), _1082.y), _1082.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1140 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1140) * 0.64999997615814208984375f) + (emerge_noise((_1140 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } bool ext_cut(ExtSamples s) { bool _2024 = false; if (M_1_m0.flags.y == 1u) { _2024 = s.base.w < M_1_m0.emission.w; } else { _2024 = false; } return true ? _2024 : false; } void frag_main() { IdOut _out = _2875; VsOutExt _2834 = { gl_FragCoord, world, normal, uv, flags, tangent, weight, color, uv1 }; ExtSamples _2877 = sample_ext(_2834); if ((_2834.flags & 2u) != 0u) { discard; } if (emerge_reveal(_2834.world, _2834.clip.xy) <= 0.0f) { discard; } if (ext_cut(_2877)) { discard; } _out.id = float4(float(O_1_m0.params.z & 255u), float((O_1_m0.params.z >> 8u) & 255u), float((O_1_m0.params.z >> 16u) & 255u), float(uint(O_1_m0.params.x == 1u) | ((O_1_m0.params.y == 1u) ? 2u : 0u))) / float4(255.0f, 255.0f, 255.0f, 255.0f); id = _out.id; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; color = stage_input.color; uv1 = stage_input.uv1; frag_main(); SPIRV_Cross_Output stage_output; stage_output.id = id; return stage_output; } fs_normal_depth_extmain2”struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _471 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const float3 _713[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const Samples _1078 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Samples _1169 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const VsOutExt _2122 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _2149 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _2175 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _2230 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const ExtSamples _2412 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), false, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float2(0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f) }; static const float _3089[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const ExtCtx _3385 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), false, 0.0f, float2(0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f) }; static const DecalSurface _3389 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const VsOutExt _3986 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const NormalDepthOut _4055 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer M : register(b9) { MaterialU M_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; Texture2D t_base : register(t4); Texture2D t_normal : register(t5); Texture2D t_mr : register(t6); Texture2D t_emission : register(t7); Texture2D t_occlusion : register(t8); SamplerState s_mat : register(s2); Texture2DArray t_ext : register(t9); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 color; static float2 uv1; static float4 normal_depth; static float4 surface; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 color : TEXCOORD6; float2 uv1 : TEXCOORD7; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 normal_depth : SV_Target0; float4 surface : SV_Target1; }; float2 tex_uv(float2 uv_1) { return float2(uv_1.x, 1.0f - uv_1.y); } float2 ext_uv(uint s, float2 uv0, float2 uv1_1) { uint _2333 = min((s * 2u), 39u); uint _2338 = min(((s * 2u) + 1u), 39u); bool _2342 = M_1_m0.xf[_2333].w > 0.5f; bool2 _2344 = bool2(_2342, _2342); float2 _2343 = float2(_2344.x ? uv1_1.x : uv0.x, _2344.y ? uv1_1.y : uv0.y); return float2(dot(M_1_m0.xf[_2333].xy, _2343) + M_1_m0.xf[_2333].z, dot(M_1_m0.xf[_2338].xy, _2343) + M_1_m0.xf[_2338].z); } float3 srgb_to_linear(float3 c) { float3 _182 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _185 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _187 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_187.x ? _182.x : _185.x, _187.y ? _182.y : _185.y, _187.z ? _182.z : _185.z); } float4 decoded_base(float4 t) { if ((M_1_m0.flags.w & 32u) != 0u) { return float4(srgb_to_linear(t.xyz), t.w); } return t; } float3 scaled_normal(float3 texel, float scale) { return normalize(((texel * 2.0f) - float3(1.0f, 1.0f, 1.0f)) * float3(scale, scale, 1.0f)); } float ext_where(uint s) { return M_1_m0.xf[min(((s * 2u) + 1u), 39u)].w; } float4 ext_layer(uint s, float2 uv0, float2 uv1_1) { return t_ext.Sample(s_mat, float3(ext_uv(s, uv0, uv1_1), float(int(clamp(ext_where(s) + 0.5f, -2147483648.0f, 2147483520.0f)) - 1))); } float3 decoded_emission(float3 t) { if ((M_1_m0.flags.w & 64u) != 0u) { return srgb_to_linear(t); } return t; } ExtSamples sample_ext(VsOutExt _in) { ExtSamples s = _2412; float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); float thick = 1.0f; float2 _2418 = tex_uv(_in.uv); float2 _2420 = tex_uv(_in.uv1); s.base = M_1_m0.base_color; if (true ? ((M_1_m0.flags.x & 1u) != 0u) : false) { s.base *= decoded_base(t_base.Sample(s_mat, ext_uv(0u, _2418, _2420))); } if (true ? ((M_1_m0.flags.w & 1u) != 0u) : false) { c = _in.color; if ((M_1_m0.flags.w & 2u) != 0u) { c = float4(srgb_to_linear(c.xyz), c.w); } s.base *= c; } s.normal = float3(0.0f, 0.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { s.normal = scaled_normal(t_normal.Sample(s_mat, ext_uv(3u, _2418, _2420)).xyz, M_1_m0.ext[3u].w); } s.metallic = M_1_m0.factors.x; if (true ? (ext_where(1u) > 0.5f) : false) { s.metallic *= t_mr.Sample(s_mat, ext_uv(1u, _2418, _2420)).z; } s.roughness = M_1_m0.factors.y; if (true ? ((M_1_m0.flags.w & 16u) != 0u) : false) { if (ext_where(2u) > 0.5f) { s.roughness *= ext_layer(2u, _2418, _2420).y; } } else { if (true ? (ext_where(2u) > 0.5f) : false) { s.roughness *= t_mr.Sample(s_mat, ext_uv(2u, _2418, _2420)).y; } } s.emission = M_1_m0.emission.xyz; if (true ? ((M_1_m0.flags.x & 8u) != 0u) : false) { s.emission *= decoded_emission(t_emission.Sample(s_mat, ext_uv(5u, _2418, _2420)).xyz); } s.occlusion = 1.0f; if (true ? ((M_1_m0.flags.x & 16u) != 0u) : false) { s.occlusion = 1.0f + (M_1_m0.ext[6u].w * (t_occlusion.Sample(s_mat, ext_uv(4u, _2418, _2420)).x - 1.0f)); } s.specular = M_1_m0.ext[0u].w; if (true ? (ext_where(11u) > 0.5f) : false) { s.specular *= ext_layer(11u, _2418, _2420).w; } s.specular_color = M_1_m0.ext[0u].xyz; if (true ? (ext_where(12u) > 0.5f) : false) { s.specular_color *= srgb_to_linear(ext_layer(12u, _2418, _2420).xyz); } s.transmission = M_1_m0.ext[1u].y; if (true ? (ext_where(13u) > 0.5f) : false) { s.transmission *= ext_layer(13u, _2418, _2420).x; } s.thickness = M_1_m0.ext[1u].z; if (true ? (ext_where(14u) > 0.5f) : false) { s.thickness *= ext_layer(14u, _2418, _2420).y; } s.clearcoat = M_1_m0.ext[3u].x; if (true ? (ext_where(6u) > 0.5f) : false) { s.clearcoat *= ext_layer(6u, _2418, _2420).x; } s.clearcoat_roughness = M_1_m0.ext[3u].y; if (true ? (ext_where(7u) > 0.5f) : false) { s.clearcoat_roughness *= ext_layer(7u, _2418, _2420).y; } s.clearcoat_normal = float3(0.0f, 0.0f, 1.0f); s.clearcoat_mapped = false; if (true ? (ext_where(8u) > 0.5f) : false) { s.clearcoat_normal = scaled_normal(ext_layer(8u, _2418, _2420).xyz, M_1_m0.ext[3u].z); s.clearcoat_mapped = true; } s.sheen_color = M_1_m0.ext[4u].xyz; if (true ? (ext_where(9u) > 0.5f) : false) { s.sheen_color *= srgb_to_linear(ext_layer(9u, _2418, _2420).xyz); } s.sheen_roughness = M_1_m0.ext[4u].w; if (true ? (ext_where(10u) > 0.5f) : false) { s.sheen_roughness *= ext_layer(10u, _2418, _2420).w; } s.iridescence = M_1_m0.ext[5u].x; if (true ? (ext_where(15u) > 0.5f) : false) { s.iridescence *= ext_layer(15u, _2418, _2420).x; } if (true ? (ext_where(16u) > 0.5f) : false) { thick = ext_layer(16u, _2418, _2420).y; } s.iridescence_thickness = lerp(M_1_m0.ext[5u].z, M_1_m0.ext[5u].w, thick); s.anisotropy = M_1_m0.ext[6u].x; s.anisotropy_dir = M_1_m0.ext[6u].yz; if (true ? (ext_where(17u) > 0.5f) : false) { float3 _2740 = ext_layer(17u, _2418, _2420).xyz; float2 _2743 = (_2740.xy * 2.0f) - float2(1.0f, 1.0f); float2 _2744 = normalize(_2743); bool _2746 = dot(_2743, _2743) > 9.9999999392252902907785028219223e-09f; bool2 _2748 = bool2(_2746, _2746); float2 _2747 = float2(_2748.x ? _2744.x : float2(1.0f, 0.0f).x, _2748.y ? _2744.y : float2(1.0f, 0.0f).y); s.anisotropy_dir = float2((M_1_m0.ext[6u].y * _2747.x) - (M_1_m0.ext[6u].z * _2747.y), (M_1_m0.ext[6u].z * _2747.x) + (M_1_m0.ext[6u].y * _2747.y)); s.anisotropy *= _2740.z; } s.diffuse_transmission = M_1_m0.ext[7u].w; if (true ? (ext_where(18u) > 0.5f) : false) { s.diffuse_transmission *= ext_layer(18u, _2418, _2420).w; } s.diffuse_transmission_color = M_1_m0.ext[7u].xyz; if (true ? (ext_where(19u) > 0.5f) : false) { s.diffuse_transmission_color *= srgb_to_linear(ext_layer(19u, _2418, _2420).xyz); } return s; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1697 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1697, _1697, _1697); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1716 = floor(p); float3 _1717 = frac(p); float3 _1721 = (_1717 * _1717) * (float3(3.0f, 3.0f, 3.0f) - (_1717 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1716), emerge_hash(_1716 + float3(1.0f, 0.0f, 0.0f)), _1721.x), lerp(emerge_hash(_1716 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1716 + float3(1.0f, 1.0f, 0.0f)), _1721.x), _1721.y), lerp(lerp(emerge_hash(_1716 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1716 + float3(1.0f, 0.0f, 1.0f)), _1721.x), lerp(emerge_hash(_1716 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1716 + float3(1.0f, 1.0f, 1.0f)), _1721.x), _1721.y), _1721.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1777 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1777) * 0.64999997615814208984375f) + (emerge_noise((_1777 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } bool ext_cut(ExtSamples s) { bool _2808 = false; if (M_1_m0.flags.y == 1u) { _2808 = s.base.w < M_1_m0.emission.w; } else { _2808 = false; } return true ? _2808 : false; } VsOut ext_base_in(VsOutExt e) { VsOut o = _2149; o.clip = e.clip; o.world = e.world; o.normal = e.normal; o.uv = e.uv; o.flags = e.flags; o.tangent = e.tangent; o.weight = e.weight; o.color = e.color; return o; } bool mirrored(VsOut _in) { return ((O_1_m0.extra.x & 2u) != 0u) != ((_in.flags & 128u) != 0u); } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _471; bool _474 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _479 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _479)) { break; } uint _509 = decal_entry(k); uint _512 = min(min(_509, 63u), 63u); float3 _518 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_512].to_local).xyz; if (all(bool3(_518.x >= float3(0.0f, -1.0f, 0.0f).x, _518.y >= float3(0.0f, -1.0f, 0.0f).y, _518.z >= float3(0.0f, -1.0f, 0.0f).z))) { _474 = all(bool3(_518.x <= float3(1.0f, 1.0f, 1.0f).x, _518.y <= float3(1.0f, 1.0f, 1.0f).y, _518.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _474 = false; } if (!_474) { uint _677 = k; k = _677 + 1u; continue; } fade = pow(1.0f - abs(_518.y), (_518.y > 0.0f) ? Decal_1_m0.entries[_512].fades.x : Decal_1_m0.entries[_512].fades.y); if (Decal_1_m0.entries[_512].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_512].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_512].axis_y.xyz) * 0.5f) + 0.5f); } float2 _556 = _518.xz; float _557 = decal_level(Decal_1_m0.entries[_512], world_1); if (Decal_1_m0.entries[_512].layers.x > 0u) { float4 _569 = decal_texel(Decal_1_m0.entries[_512].layers.x, _556, _557, (Decal_1_m0.entries[_512].flags.x & 1u) != 0u); float4 _575 = float4(srgb_to_linear(_569.xyz), _569.w) * Decal_1_m0.entries[_512].modulate; float _578 = _575.w * fade; float _584 = _578 * Decal_1_m0.entries[_512].fades.w; out_s.base = lerp(out_s.base, _575.xyz, float3(_584, _584, _584)); if (Decal_1_m0.entries[_512].layers.y > 0u) { float4 _597 = decal_texel(Decal_1_m0.entries[_512].layers.y, _556, _557, (Decal_1_m0.entries[_512].flags.x & 2u) != 0u); float _600 = (_597.x * 2.0f) - 1.0f; float _603 = 1.0f - (_597.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_512].axis_x.xyz * _600) + (Decal_1_m0.entries[_512].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_600 * _600)) - (_603 * _603))))) + (Decal_1_m0.entries[_512].axis_z.xyz * _603)), float3(_578, _578, _578))); } if (Decal_1_m0.entries[_512].layers.z > 0u) { float4 _637 = decal_texel(Decal_1_m0.entries[_512].layers.z, _556, _557, (Decal_1_m0.entries[_512].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _637.x, _578); out_s.roughness = lerp(out_s.roughness, _637.y, _578); out_s.metallic = lerp(out_s.metallic, _637.z, _578); } } if (Decal_1_m0.entries[_512].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_512].layers.w, _556, _557, (Decal_1_m0.entries[_512].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_512].modulate.xyz) * Decal_1_m0.entries[_512].axis_x.w) * fade); } uint _677 = k; k = _677 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } float3 ext_view(float3 world_1) { float3 _3361 = normalize(G_1_m0.camera_pos.xyz - world_1); float3 _3362 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _3365 = G_1_m0.camera_pos.w > 0.5f; bool3 _3367 = bool3(_3365, _3365, _3365); return float3(_3367.x ? _3362.x : _3361.x, _3367.y ? _3362.y : _3361.y, _3367.z ? _3362.z : _3361.z); } float3 ior_to_f0(float3 transmitted, float incident) { float3 _3225 = (transmitted - float3(incident, incident, incident)) / (transmitted + float3(incident, incident, incident)); return _3225 * _3225; } float pow5(float x) { float _2837 = x * x; return (_2837 * _2837) * x; } float3 iridescence_sensitivity(float opd, float3 shift) { float3 xyz = float3(0.0f, 0.0f, 0.0f); float _3186 = (6.283185482025146484375f * opd) * 9.999999717180685365747194737196e-10f; xyz = ((float3(5.4856000384490011256843899900559e-13f, 4.4201000823883285217874572481378e-13f, 5.2481001315551889518928874167614e-13f) * sqrt(float3(4327799808.0f, 9304599552.0f, 6612100096.0f) * 6.283185482025146484375f)) * cos((float3(1681000.0f, 1795300.0f, 2208400.0f) * _3186) + shift)) * exp(float3(4327799808.0f, 9304599552.0f, 6612100096.0f) * ((-_3186) * _3186)); xyz.x += ((1.6440829142538859741762280464172e-08f * cos((2239900.0f * _3186) + shift.x)) * exp(((-4528200192.0f) * _3186) * _3186)); xyz /= float3(1.0685000262355970335192978382111e-07f, 1.0685000262355970335192978382111e-07f, 1.0685000262355970335192978382111e-07f); return mul(xyz, float3x3(float3(3.240454196929931640625f, -0.969265997409820556640625f, 0.0556433983147144317626953125f), float3(-1.537138462066650390625f, 1.87601077556610107421875f, -0.2040258944034576416015625f), float3(-0.498531401157379150390625f, 0.04155600070953369140625f, 1.05722522735595703125f))); } float3 eval_iridescence(float outside, float film_in, float cos1, float thickness, float3 f0) { float3 i = float3(0.0f, 0.0f, 0.0f); float3 cm = float3(0.0f, 0.0f, 0.0f); int m = 1; uint2 loop_bound = uint2(4294967295u, 4294967295u); float _3250 = lerp(outside, film_in, smoothstep(0.0f, 0.02999999932944774627685546875f, thickness)); float _3251 = outside / _3250; float _3256 = 1.0f - ((_3251 * _3251) * (1.0f - (cos1 * cos1))); if (_3256 < 0.0f) { return float3(1.0f, 1.0f, 1.0f); } float _3260 = sqrt(_3256); float3 _3262 = ior_to_f0(float3(_3250, _3250, _3250), outside); float _3263 = _3262.x; float _3269 = _3263 + ((1.0f - _3263) * pow5(clamp(1.0f - cos1, 0.0f, 1.0f))); float _3270 = 1.0f - _3269; float _3273 = 3.1415927410125732421875f - ((_3250 < outside) ? 3.1415927410125732421875f : 0.0f); float3 _3276 = sqrt(min(f0 + float3(9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f), float3(0.99989998340606689453125f, 0.99989998340606689453125f, 0.99989998340606689453125f))); float3 _3279 = (float3(1.0f, 1.0f, 1.0f) + _3276) / (float3(1.0f, 1.0f, 1.0f) - _3276); float3 _3280 = ior_to_f0(_3279, _3250); float3 _3286 = _3280 + ((float3(1.0f, 1.0f, 1.0f) - _3280) * pow5(clamp(1.0f - _3260, 0.0f, 1.0f))); float3 _3287 = float3(_3250, _3250, _3250); bool3 _3288 = bool3(_3279.x < _3287.x, _3279.y < _3287.y, _3279.z < _3287.z); float _3292 = ((2.0f * _3250) * thickness) * _3260; float3 _3294 = float3(_3273, _3273, _3273) + float3(_3288.x ? float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f).x : float3(0.0f, 0.0f, 0.0f).x, _3288.y ? float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f).y : float3(0.0f, 0.0f, 0.0f).y, _3288.z ? float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f).z : float3(0.0f, 0.0f, 0.0f).z); float3 _3296 = clamp(_3286 * _3269, float3(9.9999997473787516355514526367188e-06f, 9.9999997473787516355514526367188e-06f, 9.9999997473787516355514526367188e-06f), float3(0.99989998340606689453125f, 0.99989998340606689453125f, 0.99989998340606689453125f)); float3 _3297 = sqrt(_3296); float3 _3301 = (_3286 * (_3270 * _3270)) / (float3(1.0f, 1.0f, 1.0f) - _3296); i = float3(_3269, _3269, _3269) + _3301; cm = _3301 - float3(_3270, _3270, _3270); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(m <= 2)) { break; } cm *= _3297; i += ((cm * 2.0f) * iridescence_sensitivity(float(m) * _3292, _3294 * float(m))); m++; continue; } return max(i, float3(0.0f, 0.0f, 0.0f)); } ExtCtx ext_ctx(VsOutExt _in, bool front, ExtSamples s, bool decals) { float3 t = float3(0.0f, 0.0f, 0.0f); bool _3390 = false; ExtCtx e = _3385; DecalSurface surf = _3389; float3 _3395 = -normalize(_in.normal); float3 _3397 = normalize(_in.normal); bool3 _3399 = bool3(front, front, front); float3 _3398 = float3(_3399.x ? _3397.x : _3395.x, _3399.y ? _3397.y : _3395.y, _3399.z ? _3397.z : _3395.z); t = _in.tangent.xyz; t = normalize(t - (_3398 * dot(_3398, t))); float3 _3412 = cross(_3398, t) * _in.tangent.w; e.n_geo = _3398; e.n = _3398; if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { e.n = normalize(((t * s.normal.x) + (_3412 * s.normal.y)) + (_3398 * s.normal.z)); } e.nc = _3398; if (s.clearcoat_mapped) { e.nc = normalize(((t * s.clearcoat_normal.x) + (_3412 * s.clearcoat_normal.y)) + (_3398 * s.clearcoat_normal.z)); } DecalSurface _3464 = { s.base.xyz, clamp(s.metallic, 0.0f, 1.0f), clamp(s.roughness, 0.04500000178813934326171875f, 1.0f), s.occlusion, e.n, s.emission }; surf = _3464; if (true ? decals : false) { DecalSurface _3470 = surf; surf = apply_decals(_in.world, _3398, _3470); } e.n = surf.normal; e.occlusion = surf.occlusion; e.emission = surf.emission; e.v = ext_view(_in.world); e.world = _in.world; e.nv = max(dot(e.n, e.v), 9.9999997473787516355514526367188e-05f); e.metallic = surf.metallic; e.roughness = surf.roughness; e.alpha = e.roughness * e.roughness; e.a2 = e.alpha * e.alpha; e.base = surf.base; e.diffuse = e.base * (1.0f - e.metallic); e.ior = max(M_1_m0.ext[1u].x, 1.0f); float _3535 = (e.ior - 1.0f) / (e.ior + 1.0f); float _3537 = max(s.specular, 0.0f); float _3538 = _3535 * _3535; e.f0 = lerp(min(float3(_3538, _3538, _3538) * s.specular_color, float3(1.0f, 1.0f, 1.0f)) * _3537, e.base, float3(e.metallic, e.metallic, e.metallic)); e.f90 = lerp(float3(_3537, _3537, _3537), float3(1.0f, 1.0f, 1.0f), float3(e.metallic, e.metallic, e.metallic)); e.iridescence = clamp(s.iridescence, 0.0f, 1.0f); e.irid_f = e.f0; if (true ? (e.iridescence > 0.0f) : false) { e.irid_f = eval_iridescence(1.0f, M_1_m0.ext[5u].y, e.nv, s.iridescence_thickness, e.f0); } e.aniso = clamp(s.anisotropy, 0.0f, 1.0f); e.aniso_t = normalize((t * s.anisotropy_dir.x) + (_3412 * s.anisotropy_dir.y)); e.aniso_b = normalize(cross(_3398, e.aniso_t)); e.clearcoat = clamp(s.clearcoat, 0.0f, 1.0f); e.cc_roughness = clamp(s.clearcoat_roughness, 0.04500000178813934326171875f, 1.0f); float _3606 = e.cc_roughness * e.cc_roughness; e.cc_a2 = _3606 * _3606; e.sheen = max(s.sheen_color, float3(0.0f, 0.0f, 0.0f)); e.sheen_roughness = clamp(s.sheen_roughness, 0.070000000298023223876953125f, 1.0f); e.sheen_alpha = e.sheen_roughness * e.sheen_roughness; e.dt = clamp(s.diffuse_transmission, 0.0f, 1.0f); e.dt_color = max(s.diffuse_transmission_color, float3(0.0f, 0.0f, 0.0f)); e.transmission = clamp(s.transmission, 0.0f, 1.0f); e.trans_alpha = max(e.alpha * clamp((e.ior * 2.0f) - 2.0f, 0.0f, 1.0f), 0.00200000009499490261077880859375f); float _3664 = max(s.thickness, 0.0f) * (((length(O_1_m0.model[0u].xyz) + length(O_1_m0.model[1u].xyz)) + length(O_1_m0.model[2u].xyz)) / 3.0f); e.thin = _3664 <= 0.0f; e.thickness = _3664; e.frag = _in.clip.xy; e.attenuation = float3(1.0f, 1.0f, 1.0f); if (M_1_m0.ext[1u].w > 0.0f) { _3390 = _3664 > 0.0f; } else { _3390 = false; } if (true ? _3390 : false) { float _3692 = _3664 / M_1_m0.ext[1u].w; e.attenuation = pow(max(M_1_m0.ext[2u].xyz, float3(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f)), float3(_3692, _3692, _3692)); } e.dispersion = M_1_m0.ext[2u].w; return e; } void frag_main() { NormalDepthOut _out = _4055; VsOutExt _4008 = { gl_FragCoord, world, normal, uv, flags, tangent, weight, color, uv1 }; ExtSamples _4057 = sample_ext(_4008); if ((_4008.flags & 2u) != 0u) { discard; } if (emerge_reveal(_4008.world, _4008.clip.xy) <= 0.0f) { discard; } if (ext_cut(_4057)) { discard; } bool _4075 = gl_FrontFacing != mirrored(ext_base_in(_4008)); float3 _4078 = -normalize(_4008.normal); float3 _4080 = normalize(_4008.normal); bool3 _4082 = bool3(_4075, _4075, _4075); ExtCtx _4089 = ext_ctx(_4008, _4075, _4057, false); _out.normal_depth = float4(normalize(mul(float4(float3(_4082.x ? _4080.x : _4078.x, _4082.y ? _4080.y : _4078.y, _4082.z ? _4080.z : _4078.z), 0.0f), G_1_m0.view).xyz), -mul(float4(_4008.world, 1.0f), G_1_m0.view).z); _out.surface = float4(clamp(_4089.f0, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), _4089.roughness); normal_depth = _out.normal_depth; surface = _out.surface; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; color = stage_input.color; uv1 = stage_input.uv1; frag_main(); SPIRV_Cross_Output stage_output; stage_output.normal_depth = normal_depth; stage_output.surface = surface; return stage_output; } vs_surface_lmmain¢7struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _408[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const VsOutExt _1419 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1447 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1473 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1528 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _1895[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _2467 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOutLm _2532 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; static float4 gl_Position; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float2 uv1; static float2 uv_lm; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float weight_1; static float4 color; static float2 uv1_1; static float2 uv_lm_1; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; float2 uv_lm : TEXCOORD11; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float weight_1 : TEXCOORD5; float4 color : TEXCOORD6; float2 uv1_1 : TEXCOORD7; float2 uv_lm_1 : TEXCOORD8; float4 gl_Position : SV_Position; }; VsOut surface_vertex(VsIn _in) { VsOut _out = _1473; float4 _1479 = mul(float4(_in.pos, 1.0f), O_1_m0.model); _out.clip = mul(_1479, G_1_m0.view_proj); _out.world = _1479.xyz; _out.normal = normalize(mul(float4(_in.normal, 0.0f), O_1_m0.normal).xyz); _out.uv = _in.uv; _out.flags = _in.flags; _out.tangent = float4(normalize(mul(float4(_in.tangent.xyz, 0.0f), O_1_m0.model).xyz), _in.tangent.w * (((O_1_m0.extra.x & 2u) != 0u) ? (-1.0f) : 1.0f)); _out.weight = _in.weight; _out.color = float4(1.0f, 1.0f, 1.0f, 1.0f); return _out; } void vert_main() { VsOutLm _out = _2532; VsIn _2489 = { pos, normal, uv, flags, tangent, weight }; VsOut _2534 = surface_vertex(_2489); _out.clip = _2534.clip; _out.world = _2534.world; _out.normal = _2534.normal; _out.uv = _2534.uv; _out.flags = _2534.flags; _out.tangent = _2534.tangent; _out.weight = _2534.weight; _out.color = _2534.color; _out.uv1 = uv1; _out.uv_lm = uv_lm; gl_Position = _out.clip; world = _out.world; normal_1 = _out.normal; uv_1 = _out.uv; flags_1 = _out.flags; tangent_1 = _out.tangent; weight_1 = _out.weight; color = _out.color; uv1_1 = _out.uv1; uv_lm_1 = _out.uv_lm; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; uv1 = stage_input.uv1; uv_lm = stage_input.uv_lm; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.weight_1 = weight_1; stage_output.color = color; stage_output.uv1_1 = uv1_1; stage_output.uv_lm_1 = uv_lm_1; return stage_output; }  fs_surface_lmmain7struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _520 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const float3 _762[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const Samples _1127 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Samples _1218 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const uint _3325[4] = { 0u, 0u, 0u, 0u }; static const float2 _3328[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _3335[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const DecalSurface _4604 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const VsOutExt _5265 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _5291 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _5317 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _5372 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _5803[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const ExtCtx _6096 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), false, 0.0f, float2(0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f) }; static const DecalSurface _6100 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const VsOutExt _6985 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer M : register(b9) { MaterialU M_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Shadow : register(b2) { ShadowU Shadow_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Probe : register(b4) { ProbeU Probe_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; Texture2D t_base : register(t4); Texture2D t_normal : register(t5); Texture2D t_mr : register(t6); Texture2D t_emission : register(t7); Texture2D t_occlusion : register(t8); SamplerState s_mat : register(s2); Texture2D t_shadow : register(t0); SamplerComparisonState s_shadow : register(s0); TextureCube t_radiance : register(t10); SamplerState s_radiance : register(s3); Texture2D t_ao : register(t1); Texture2DArray t_lightmap : register(t12); SamplerState s_lightmap : register(s5); Texture2D t_probes : register(t13); SamplerState s_probes : register(s6); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 color; static float2 uv1; static float2 uv_lm; static float4 _7051; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 color : TEXCOORD6; float2 uv1 : TEXCOORD7; float2 uv_lm : TEXCOORD8; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 _7051 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint spvPackUnorm4x8(float4 value) { uint4 Packed = uint4(round(saturate(value) * 255.0)); return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); } float4 spvUnpackUnorm4x8(uint value) { uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); return float4(Packed) / 255.0; } VsOutExt lm_ext_in(VsOutLm l) { VsOutExt e = _6985; e.clip = l.clip; e.world = l.world; e.normal = l.normal; e.uv = l.uv; e.flags = l.flags; e.tangent = l.tangent; e.weight = l.weight; e.color = l.color; e.uv1 = l.uv1; return e; } VsOut ext_base_in(VsOutExt e) { VsOut o = _5291; o.clip = e.clip; o.world = e.world; o.normal = e.normal; o.uv = e.uv; o.flags = e.flags; o.tangent = e.tangent; o.weight = e.weight; o.color = e.color; return o; } bool mirrored(VsOut _in) { return ((O_1_m0.extra.x & 2u) != 0u) != ((_in.flags & 128u) != 0u); } float2 tex_uv(float2 uv_1) { return float2(uv_1.x, 1.0f - uv_1.y); } float2 material_uv(float2 uv_1) { return (tex_uv(uv_1) * M_1_m0.uv.xy) + M_1_m0.uv.zw; } float3 srgb_to_linear(float3 c) { float3 _207 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _210 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _212 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_212.x ? _207.x : _210.x, _212.y ? _207.y : _210.y, _212.z ? _207.z : _210.z); } float4 decoded_base(float4 t) { if ((M_1_m0.flags.w & 32u) != 0u) { return float4(srgb_to_linear(t.xyz), t.w); } return t; } float3 decoded_emission(float3 t) { if ((M_1_m0.flags.w & 64u) != 0u) { return srgb_to_linear(t); } return t; } Samples sample_material(float2 uv_in) { Samples s = _1127; float2 _1129 = material_uv(uv_in); s.base = M_1_m0.base_color; if (true ? ((M_1_m0.flags.x & 1u) != 0u) : false) { s.base *= decoded_base(t_base.Sample(s_mat, _1129)); } s.normal = float3(0.0f, 0.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { s.normal = normalize((t_normal.Sample(s_mat, _1129).xyz * 2.0f) - float3(1.0f, 1.0f, 1.0f)); } s.mr = float4(1.0f, 1.0f, 1.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 4u) != 0u) : false) { s.mr = t_mr.Sample(s_mat, _1129); } s.emission = M_1_m0.emission.xyz; if (true ? ((M_1_m0.flags.x & 8u) != 0u) : false) { s.emission *= decoded_emission(t_emission.Sample(s_mat, _1129).xyz); } s.occlusion = 1.0f; if (true ? ((M_1_m0.flags.x & 16u) != 0u) : false) { s.occlusion = t_occlusion.Sample(s_mat, _1129).x; } return s; } Samples surface_samples(VsOut _in) { Samples s = _1218; float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); s = sample_material(_in.uv); if (true ? ((M_1_m0.flags.w & 1u) != 0u) : false) { c = _in.color; if ((M_1_m0.flags.w & 2u) != 0u) { c = float4(srgb_to_linear(c.xyz), c.w); } s.base *= c; } return s; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1831 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1831, _1831, _1831); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1850 = floor(p); float3 _1851 = frac(p); float3 _1855 = (_1851 * _1851) * (float3(3.0f, 3.0f, 3.0f) - (_1851 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1850), emerge_hash(_1850 + float3(1.0f, 0.0f, 0.0f)), _1855.x), lerp(emerge_hash(_1850 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1850 + float3(1.0f, 1.0f, 0.0f)), _1855.x), _1855.y), lerp(lerp(emerge_hash(_1850 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1850 + float3(1.0f, 0.0f, 1.0f)), _1855.x), lerp(emerge_hash(_1850 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1850 + float3(1.0f, 1.0f, 1.0f)), _1855.x), _1855.y), _1855.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1911 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1911) * 0.64999997615814208984375f) + (emerge_noise((_1911 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } float3 lightmap_light(float2 uv_lm_1) { return t_lightmap.SampleLevel(s_lightmap, float3(uv_lm_1, float(int(O_1_m0.extra.y))), 0.0f).xyz; } float3 filmic_curve(float3 x) { float _1612 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _1616 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _1622 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _1626 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_1612, _1612, _1612))) + float3(_1616, _1616, _1616)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_1622, _1622, _1622))) - float3(_1626, _1626, _1626); } float3 aces_curve(float3 c, float white) { float3 _1674 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _1682 = ((_1674 * (_1674 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_1674 * ((_1674 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _1687 = 1.7999999523162841796875f * white; float _1695 = ((_1687 * (_1687 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_1687 * ((0.98372900485992431640625f * _1687) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _1682), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _1682), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _1682)) / float3(_1695, _1695, _1695); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _1750 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_1750, _1750, _1750); float3 _1755 = v * v; float3 _1756 = _1755 * _1755; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_1755 * 4.01109981536865234375f)) - ((_1755 * 25.68199920654296875f) * v)) + (_1756 * 70.35900115966796875f)) - ((_1756 * 74.7779998779296875f) * v)) + ((_1756 * 27.069000244140625f) * _1755), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _1785 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_1785 * Lit_1_m0.tone.y) + _1785) / ((_1785 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_1785) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_1785, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_1785); } return _1785; } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _520; bool _523 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _528 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _528)) { break; } uint _558 = decal_entry(k); uint _561 = min(min(_558, 63u), 63u); float3 _567 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_561].to_local).xyz; if (all(bool3(_567.x >= float3(0.0f, -1.0f, 0.0f).x, _567.y >= float3(0.0f, -1.0f, 0.0f).y, _567.z >= float3(0.0f, -1.0f, 0.0f).z))) { _523 = all(bool3(_567.x <= float3(1.0f, 1.0f, 1.0f).x, _567.y <= float3(1.0f, 1.0f, 1.0f).y, _567.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _523 = false; } if (!_523) { uint _726 = k; k = _726 + 1u; continue; } fade = pow(1.0f - abs(_567.y), (_567.y > 0.0f) ? Decal_1_m0.entries[_561].fades.x : Decal_1_m0.entries[_561].fades.y); if (Decal_1_m0.entries[_561].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_561].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_561].axis_y.xyz) * 0.5f) + 0.5f); } float2 _605 = _567.xz; float _606 = decal_level(Decal_1_m0.entries[_561], world_1); if (Decal_1_m0.entries[_561].layers.x > 0u) { float4 _618 = decal_texel(Decal_1_m0.entries[_561].layers.x, _605, _606, (Decal_1_m0.entries[_561].flags.x & 1u) != 0u); float4 _624 = float4(srgb_to_linear(_618.xyz), _618.w) * Decal_1_m0.entries[_561].modulate; float _627 = _624.w * fade; float _633 = _627 * Decal_1_m0.entries[_561].fades.w; out_s.base = lerp(out_s.base, _624.xyz, float3(_633, _633, _633)); if (Decal_1_m0.entries[_561].layers.y > 0u) { float4 _646 = decal_texel(Decal_1_m0.entries[_561].layers.y, _605, _606, (Decal_1_m0.entries[_561].flags.x & 2u) != 0u); float _649 = (_646.x * 2.0f) - 1.0f; float _652 = 1.0f - (_646.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_561].axis_x.xyz * _649) + (Decal_1_m0.entries[_561].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_649 * _649)) - (_652 * _652))))) + (Decal_1_m0.entries[_561].axis_z.xyz * _652)), float3(_627, _627, _627))); } if (Decal_1_m0.entries[_561].layers.z > 0u) { float4 _686 = decal_texel(Decal_1_m0.entries[_561].layers.z, _605, _606, (Decal_1_m0.entries[_561].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _686.x, _627); out_s.roughness = lerp(out_s.roughness, _686.y, _627); out_s.metallic = lerp(out_s.metallic, _686.z, _627); } } if (Decal_1_m0.entries[_561].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_561].layers.w, _605, _606, (Decal_1_m0.entries[_561].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_561].modulate.xyz) * Decal_1_m0.entries[_561].axis_x.w) * fade); } uint _726 = k; k = _726 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } uint object_light_count() { return min(O_1_m0.lights.z, 8u); } uint object_light(uint k) { return min(((((k < 4u) ? O_1_m0.lights.x : O_1_m0.lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float shadow_factor(uint i, float3 world_1, float3 n_geo, float3 l) { int dy = -1; bool _3786 = false; uint part = 0u; bool _3788 = false; uint c = 0u; float vis = 0.0f; bool _3784 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint _3796 = min(i, 63u); uint _3806 = min(Lit_1_m0.lights[min(i, 63u)].info.w, 15u); uint _3809 = min(_3806, 15u); uint _3812 = min(_3806, 15u); uint _3818 = max(Shadow_1_m0.lights[min(_3806, 15u)].info.y, 1u); float _3824 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; if (Lit_1_m0.lights[_3796].info.x == 0u) { if (_3824 > Shadow_1_m0.lights[min(_3806, 15u)].fade.y) { return 1.0f; } part = _3818 - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(c < _3818)) { break; } if (_3824 <= Shadow_1_m0.lights[min(_3806, 15u)].splits[min(c, 3u)]) { part = c; break; } c++; continue; } } uint _3868 = part; uint _3874 = min(min((Shadow_1_m0.lights[_3812].info.x + min(_3868, (_3818 - 1u))), 15u), 15u); float _3881 = Shadow_1_m0.tiles[_3874].texel.x + (Shadow_1_m0.tiles[_3874].texel.y * distance(world_1, Lit_1_m0.lights[min(i, 63u)].position.xyz)); float3 _3892 = (world_1 + (n_geo * ((Shadow_1_m0.lights[_3809].params.y * max(Shadow_1_m0.lights[_3809].params.z, 1.0f)) * _3881))) + (l * (Shadow_1_m0.lights[_3809].params.x * _3881)); if (Lit_1_m0.lights[_3796].info.x == 1u) { float3 _3896 = _3892 - Lit_1_m0.lights[min(i, 63u)].position.xyz; float3 _3897 = abs(_3896); if (_3897.x >= _3897.y) { _3784 = _3897.x >= _3897.z; } else { _3784 = false; } if (_3784) { part = (_3896.x >= 0.0f) ? 0u : 1u; } else { if (_3897.y >= _3897.z) { part = (_3896.y >= 0.0f) ? 2u : 3u; } else { part = (_3896.z >= 0.0f) ? 4u : 5u; } } } uint _3930 = min((Shadow_1_m0.lights[_3812].info.x + min(part, (_3818 - 1u))), 15u); float4 _3935 = mul(float4(_3892, 1.0f), Shadow_1_m0.tiles[min(_3930, 15u)].view_proj); if (_3935.w <= 0.0f) { return 1.0f; } float3 _3943 = _3935.xyz / float3(_3935.www); if (!(abs(_3943.x) > 1.0f)) { _3786 = abs(_3943.y) > 1.0f; } else { _3786 = true; } if (!_3786) { _3788 = _3943.z > 1.0f; } else { _3788 = true; } if (_3788) { return 1.0f; } uint _3964 = min(_3930, 15u); float2 _3977 = Shadow_1_m0.tiles[_3964].rect.xy + (float2((_3943.x * 0.5f) + 0.5f, 0.5f - (_3943.y * 0.5f)) * Shadow_1_m0.tiles[_3964].rect.zw); float _3981 = 0.5f * Shadow_1_m0.atlas.x; float2 _3983 = Shadow_1_m0.tiles[_3964].rect.xy + float2(_3981, _3981); float _3987 = 0.5f * Shadow_1_m0.atlas.x; float2 _3989 = (Shadow_1_m0.tiles[_3964].rect.xy + Shadow_1_m0.tiles[_3964].rect.zw) - float2(_3987, _3987); if (Shadow_1_m0.lights[_3809].params.z <= 0.0f) { vis = t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3977, _3983, _3989), _3943.z); } else { float _4000 = Shadow_1_m0.lights[_3809].params.z * Shadow_1_m0.atlas.x; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(dx <= 1)) { break; } vis += t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3977 + (float2(float(dx), float(dy)) * _4000), _3983, _3989), _3943.z); dx++; continue; } dy++; continue; } vis /= 9.0f; } if (Lit_1_m0.lights[_3796].info.x == 0u) { uint _4065 = min(_3806, 15u); vis = lerp(vis, 1.0f, smoothstep(Shadow_1_m0.lights[_4065].fade.x, Shadow_1_m0.lights[_4065].fade.y, _3824)); } return lerp(1.0f, vis, Shadow_1_m0.lights[_3809].params.w); } float3 f_schlick(float3 f0, float vh) { return f0 + ((float3(1.0f, 1.0f, 1.0f) - f0) * pow(1.0f - vh, 5.0f)); } float d_ggx(float nh, float a2) { float _1259 = ((nh * nh) * (a2 - 1.0f)) + 1.0f; return a2 / ((3.1415927410125732421875f * _1259) * _1259); } float v_smith(float nl, float nv, float a2) { return 0.5f / max((nl * sqrt(((nv * nv) * (1.0f - a2)) + a2)) + (nv * sqrt(((nl * nl) * (1.0f - a2)) + a2)), 9.9999997473787516355514526367188e-05f); } float3 light_specular(float3 n, float3 v, float3 l, float3 radiance, float3 diffuse, float3 f0, float a2, float specular) { float _1343 = dot(n, l); if (_1343 <= 0.0f) { return float3(0.0f, 0.0f, 0.0f); } float3 _1348 = normalize(l + v); return (((diffuse / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) + ((f_schlick(f0, max(dot(v, _1348), 0.0f)) * (d_ggx(max(dot(n, _1348), 0.0f), a2) * v_smith(_1343, max(dot(n, v), 9.9999997473787516355514526367188e-05f), a2))) * specular)) * radiance) * _1343; } float3 probe_light(float3 n) { return max(float3(O_1_m0.gi[0u].x + dot(O_1_m0.gi[0u].yzw, n), O_1_m0.gi[1u].x + dot(O_1_m0.gi[1u].yzw, n), O_1_m0.gi[2u].x + dot(O_1_m0.gi[2u].yzw, n)), float3(0.0f, 0.0f, 0.0f)); } float4 gi_diffuse(float3 n, bool baked, float3 baked_light) { if (baked) { return float4(baked_light, 1.0f); } if (true ? ((O_1_m0.extra.x & 8u) != 0u) : false) { return float4(probe_light(n), 1.0f); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float3 sh_irradiance(float3 n) { float3 c = float3(0.0f, 0.0f, 0.0f); c = Sky_1_m0.sh[0u].xyz * 0.2820949852466583251953125f; c += (Sky_1_m0.sh[1u].xyz * (0.48860299587249755859375f * n.y)); c += (Sky_1_m0.sh[2u].xyz * (0.48860299587249755859375f * n.z)); c += (Sky_1_m0.sh[3u].xyz * (0.48860299587249755859375f * n.x)); c += (Sky_1_m0.sh[4u].xyz * ((1.09254801273345947265625f * n.x) * n.y)); c += (Sky_1_m0.sh[5u].xyz * ((1.09254801273345947265625f * n.y) * n.z)); c += (Sky_1_m0.sh[6u].xyz * (0.3153919875621795654296875f * (((3.0f * n.z) * n.z) - 1.0f))); c += (Sky_1_m0.sh[7u].xyz * ((1.09254801273345947265625f * n.x) * n.z)); c += (Sky_1_m0.sh[8u].xyz * (0.546274006366729736328125f * ((n.x * n.x) - (n.y * n.y)))); return max(c, float3(0.0f, 0.0f, 0.0f)); } float3 radiance(float3 d, float roughness) { return t_radiance.SampleLevel(s_radiance, d, roughness * float(max(Sky_1_m0.flags.y, 1u) - 1u)).xyz; } float2 env_brdf_approx(float roughness, float nv) { float4 _2261 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * roughness) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f); return (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_2261.x * _2261.x, exp2((-9.27999973297119140625f) * nv)) * _2261.x) + _2261.y)) + _2261.zw; } float probe_weight(ProbeEntryU p, float3 world_1) { float3 _4292 = mul(float4(world_1, 1.0f), p.to_local).xyz; float _4308 = min(p.extents.xyz.x - abs(_4292.x), min(p.extents.xyz.y - abs(_4292.y), p.extents.xyz.z - abs(_4292.z))); if (_4308 < 0.0f) { return 0.0f; } if (!(p.extents.w > 0.0f)) { return 1.0f; } return min(_4308 / p.extents.w, 1.0f); } float probe_exit(float o, float d, float e) { if (d > 0.0f) { return (e - o) / d; } if (d < 0.0f) { return ((-e) - o) / d; } return 3.0000000054977557577780399428115e+38f; } float3 probe_lookup(ProbeEntryU p, float3 world_1, float3 dir) { float3 _4350 = mul(float4(dir, 0.0f), p.to_local).xyz; if ((p.info.x & 1u) == 0u) { return _4350; } float3 _4360 = mul(float4(world_1, 1.0f), p.to_local).xyz; return (_4360 + (_4350 * max(min(probe_exit(_4360.x, _4350.x, p.extents.xyz.x), min(probe_exit(_4360.y, _4350.y, p.extents.xyz.y), probe_exit(_4360.z, _4350.z, p.extents.xyz.z))), 0.0f))) - p.offset.xyz; } float3 probe_face_uv(float3 d) { bool _4136 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _4139 = abs(d); if (_4139.x >= _4139.y) { _4136 = _4139.x >= _4139.z; } else { _4136 = false; } if (_4136) { ma = _4139.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_4139.y >= _4139.z) { ma = _4139.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _4139.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 probe_texel(uint row, float3 fuv, uint level) { float _4225 = 0.5f / float(max((Probe_1_m0.counts.z >> level), 1u)); return t_probes.SampleLevel(s_probes, float2((fuv.x + clamp(fuv.y, _4225, 1.0f - _4225)) / 6.0f, (float(row) + clamp(fuv.z, _4225, 1.0f - _4225)) / 8.0f), float(level)).xyz; } float3 probe_sample(uint row, float3 d, float lod) { bool _4252 = false; uint _4257 = max(Probe_1_m0.counts.y, 1u); float _4260 = clamp(lod, 0.0f, float(_4257 - 1u)); uint _4262 = uint(clamp(_4260, 0.0f, 4294967040.0f)); float _4264 = _4260 - float(_4262); float3 _4265 = probe_face_uv(d); float3 _4266 = probe_texel(row, _4265, _4262); if (!(_4264 <= 0.0f)) { _4252 = (_4262 + 1u) >= _4257; } else { _4252 = true; } if (_4252) { return _4266; } return (_4266 * (1.0f - _4264)) + (probe_texel(row, _4265, _4262 + 1u) * _4264); } float4 probe_reflection(float3 world_1, float3 r, float roughness, uint probes) { float3 acc = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _4399 = min(Probe_1_m0.counts.x, 8u); float _4405 = roughness * float(max(Probe_1_m0.counts.y, 1u) - 1u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _4399)) { break; } uint _4428 = i; uint _4430 = min(_4428, 7u); if (((probes >> Probe_1_m0.probes[_4430].info.w) & 1u) == 0u) { uint _4456 = i; i = _4456 + 1u; continue; } float _4440 = probe_weight(Probe_1_m0.probes[_4430], world_1); if (_4440 <= 0.0f) { uint _4456 = i; i = _4456 + 1u; continue; } acc += ((probe_sample(Probe_1_m0.probes[_4430].info.w, probe_lookup(Probe_1_m0.probes[_4430], world_1, r), _4405) * Probe_1_m0.probes[_4430].offset.w) * _4440); w_sum += _4440; uint _4456 = i; i = _4456 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float4 probe_ambient(float3 world_1, float3 n, uint probes) { float3 c = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; bool _4481 = false; float3 acc = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _4488 = min(Probe_1_m0.counts.x, 8u); uint _4492 = max(Probe_1_m0.counts.y, 1u) - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _4488)) { break; } uint _4514 = i; uint _4515 = min(_4514, 7u); if (!(((probes >> Probe_1_m0.probes[_4515].info.w) & 1u) == 0u)) { _4481 = Probe_1_m0.probes[_4515].info.y == 0u; } else { _4481 = true; } if (_4481) { uint _4558 = i; i = _4558 + 1u; continue; } float _4533 = probe_weight(Probe_1_m0.probes[_4515], world_1); if (_4533 <= 0.0f) { uint _4558 = i; i = _4558 + 1u; continue; } c = Probe_1_m0.probes[_4515].ambient.xyz; if (Probe_1_m0.probes[_4515].info.y == 1u) { c = probe_texel(Probe_1_m0.probes[_4515].info.w, probe_face_uv(mul(float4(n, 0.0f), Probe_1_m0.probes[_4515].to_local).xyz), _4492); } acc += (c * _4533); w_sum += _4533; uint _4558 = i; i = _4558 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float3 sky(float3 dir) { float _1569 = acos(clamp(dot(normalize(dir), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_1569 <= 1.57079637050628662109375f) { float _1579 = clamp(1.0f - pow(max(1.0f - (1.0f - (_1569 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_1579, _1579, _1579)); } float _1594 = clamp(1.0f - pow(max(1.0f - ((_1569 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_1594, _1594, _1594)); } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _2282 = max(x, 0.0f) * max(x, 0.0f); float _2283 = _2282 * _2282; return _2283 * _2283; } float3 fog_sun_scatter(float3 fc, float3 dir) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _2301 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _2301)) { break; } uint _2324 = pool_sun(k); if (Lit_1_m0.lights[min(_2324, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_2324, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir, -Lit_1_m0.lights[min(_2324, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 surface_fog(float3 c, float3 world_1, float3 dir) { float amount = 0.0f; bool _2390 = false; float dist = 0.0f; float3 fc = float3(0.0f, 0.0f, 0.0f); float _2398 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; dist = distance(world_1, G_1_m0.camera_pos.xyz); if (Sky_1_m0.fog_origin.w > 0.5f) { dist = max(_2398 - Sky_1_m0.fog_origin.x, 0.0f); } if ((Sky_1_m0.flags.x & 256u) != 0u) { float _2424 = smoothstep(Sky_1_m0.fog_depth.x, Sky_1_m0.fog_depth.y, dist); amount = ((_2424 > 0.0f) ? pow(max(_2424, 9.9999999747524270787835121154785e-07f), Sky_1_m0.fog_depth.z) : 0.0f) * Sky_1_m0.fog.x; } else { amount = 1.0f - exp(min(0.0f, (-dist) * Sky_1_m0.fog.x)); } if (abs(Sky_1_m0.fog.w) >= 9.9999997473787516355514526367188e-05f) { amount = max(amount, 1.0f - exp(min(0.0f, (dot(world_1, Lit_1_m0.up.xyz) - Sky_1_m0.fog.z) * Sky_1_m0.fog.w))); } amount = clamp(amount, 0.0f, 1.0f); fc = Sky_1_m0.fog_color.xyz; if ((Sky_1_m0.flags.x & 8u) != 0u) { _2390 = Sky_1_m0.fog_depth.w > 0.0f; } else { _2390 = false; } if (true ? _2390 : false) { fc = lerp(fc, radiance(sky_dir(dir), lerp(1.0f / float(max(Sky_1_m0.flags.y, 2u) - 1u), 1.0f, 1.0f - clamp((_2398 - Sky_1_m0.fog_origin.y) / max(Sky_1_m0.fog_origin.z - Sky_1_m0.fog_origin.y, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f))) * Sky_1_m0.sun.w, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)); } fc = fog_sun_scatter(fc, dir); return lerp(c, fc, float3(amount, amount, amount)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _2542 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _2546 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_2542 == 4u) { return float2(0.0f, _2546); } float3 _2555 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _2556 = abs(d); bool3 _2557 = bool3(_2556.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _2556.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _2556.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _2558 = float3(_2557.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _2557.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _2557.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _2561 = ((-_2555) - o) / _2558; float3 _2563 = (_2555 - o) / _2558; float3 _2564 = min(_2561, _2563); float3 _2565 = max(_2561, _2563); r = float2(max(0.0f, _2564.y), min(_2546, _2565.y)); if (_2542 == 3u) { r = float2(max(max(r.x, _2564.x), _2564.z), min(min(r.y, _2565.x), _2565.z)); } else { if (_2542 == 0u) { a = dot(d / _2555, d / _2555); b = dot(o / _2555, d / _2555); c = dot(o / _2555, o / _2555) - 1.0f; } else { float _2604 = min(_2555.x, _2555.z); float _2609 = (_2542 == 1u) ? (_2604 / (2.0f * _2555.y)) : 0.0f; float _2612 = _2555.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_2609 * _2609) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_2609 * _2609) * _2612) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_2542 == 1u) ? (((_2609 * _2609) * _2612) * _2612) : (_2604 * _2604)); } } float _2658 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_2658 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _2722 = min(((-b) - sqrt(_2658)) / a, ((-b) + sqrt(_2658)) / a); float _2735 = max(((-b) - sqrt(_2658)) / a, ((-b) + sqrt(_2658)) / a); if (a > 0.0f) { r = float2(max(r.x, _2722), min(r.y, _2735)); } else { if (r.x < min(r.y, _2722)) { r.y = min(r.y, _2722); } else { r.x = max(r.x, _2735); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _2779 = min(k, 15u); rho = Fog_1_m0.entries[_2779].material.x * min(exp2((-Fog_1_m0.entries[_2779].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2779].material.w)), 1.0f); if (Fog_1_m0.entries[_2779].material.z > 0.0f) { uint _2806 = uint(clamp(Fog_1_m0.entries[_2779].albedo.w, 0.0f, 4294967040.0f)); float3 _2809 = Fog_1_m0.entries[_2779].size.xyz * 0.5f; float _2812 = min(_2809.x, _2809.z); if (_2806 == 0u) { float _2818 = length(lp / _2809); sdf = (_2818 * (_2818 - 1.0f)) / max(length(lp / (_2809 * _2809)), 9.9999999600419720025001879548654e-13f); } else { if (_2806 == 3u) { float3 _2831 = abs(lp) - _2809; sdf = length(max(_2831, float3(0.0f, 0.0f, 0.0f))) + min(max(_2831.x, max(_2831.y, _2831.z)), 0.0f); } else { if (_2806 == 2u) { float2 _2852 = float2(length(lp.xz) - _2812, abs(lp.y) - _2809.y); sdf = min(max(_2852.x, _2852.y), 0.0f) + length(max(_2852, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _2812 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _2809.y))), float2(length(lp.xz), lp.y - _2809.y)), (-_2809.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_2779].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_2779].material.z); } return rho; } float3 fog_light(uint n, float3 p, float3 dir) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _3013 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_3013].lights.z, 8u))) { break; } uint _3049 = min(((((k < 4u) ? Fog_1_m0.entries[_3013].lights.x : Fog_1_m0.entries[_3013].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _3050 = min(_3049, 63u); l = -Lit_1_m0.lights[_3050].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_3050].info.x != 0u) { float3 _3063 = Lit_1_m0.lights[_3050].position.xyz - p; float _3065 = max(length(_3063), 9.9999999747524270787835121154785e-07f); l = _3063 / float3(_3065, _3065, _3065); atten = omni_attenuation(length(_3063), Lit_1_m0.lights[_3050].position.w, Lit_1_m0.lights[_3050].direction.w); if (Lit_1_m0.lights[_3050].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_3050].direction.xyz), Lit_1_m0.lights[_3050].spot.x)) / max(1.0f - Lit_1_m0.lights[_3050].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_3050].spot.y)); } } float _3106 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir, l)); sum += (Lit_1_m0.lights[_3050].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _3106) * sqrt(_3106))) * Fog_1_m0.light_fog[min((_3049 >> 2u), 15u)][min((_3049 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _2904 = min(k, 15u); if ((Fog_1_m0.entries[_2904].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_2904].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_2904].material.y) * a), 1.0f); } float _2922 = clamp((-a) / b, t0, t1); float _2924 = (b > 0.0f) ? _2922 : t0; float _2926 = (b > 0.0f) ? t1 : _2922; float _2931 = ((Fog_1_m0.entries[_2904].material.y * abs(b)) * (_2926 - _2924)) * 0.693147182464599609375f; return Fog_1_m0.entries[_2904].material.x * (((t1 - t0) - (_2926 - _2924)) + ((min(exp2((-Fog_1_m0.entries[_2904].material.y) * max(a + (b * ((b > 0.0f) ? _2924 : _2926)), 0.0f)), 1.0f) * (_2926 - _2924)) * ((_2931 < 0.00999999977648258209228515625f) ? (1.0f - (_2931 * (0.5f - (_2931 * (0.16666667163372039794921875f - (_2931 / 24.0f)))))) : ((1.0f - exp(-_2931)) / _2931)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _3149 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _3151 = false; float tau = 0.0f; bool _3142 = false; uint i = 0u; bool _3144 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3154 = min(k, 15u); float3 _3160 = mul(float4(o, 1.0f), Fog_1_m0.entries[_3154].to_local).xyz; float3 _3164 = mul(float4(d, 0.0f), Fog_1_m0.entries[_3154].to_local).xyz; float _3171 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_3154].material.w; float _3175 = dot(d, Fog_1_m0.up.xyz); bool _3178 = Fog_1_m0.entries[_3154].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_3154].material.y > 0.0f) { _3142 = ((-_3171) / _3175) > ch.x; } else { _3142 = false; } if (_3142) { _3144 = ((-_3171) / _3175) < ch.y; } else { _3144 = false; } if (_3144) { split = (-_3171) / _3175; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_3178 ? 12u : 4u))) { break; } uint _3229 = i & 3u; if (!(_3229 == 0u)) { _3149 = _3229 == 3u; } else { _3149 = true; } float _3237 = _3149 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_3229 == 0u)) { _3151 = _3229 == 3u; } else { _3151 = true; } float _3245 = _3151 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _3248 = float2(split, ch.y); float2 _3251 = float2(ch.x, split); bool _3253 = i < 8u; bool2 _3255 = bool2(_3253, _3253); float2 _3254 = float2(_3255.x ? _3251.x : _3248.x, _3255.y ? _3251.y : _3248.y); bool _3257 = i < 4u; bool2 _3259 = bool2(_3257, _3257); float2 _3258 = float2(_3259.x ? ch.x : _3254.x, _3259.y ? ch.y : _3254.y); float _3263 = (_3258.y - _3258.x) * 0.5f; float _3272 = ((_3258.x + _3258.y) * 0.5f) + (_3263 * ((_3229 < 2u) ? (-_3237) : _3237)); float3 _3274 = o + (d * _3272); float _3277 = fog_density(k, _3274, _3160 + (_3164 * _3272)); if (i < 4u) { q += (((Fog_1_m0.entries[_3154].albedo.xyz * fog_light(k, _3274, d)) + Fog_1_m0.entries[_3154].emission.xyz) * ((_3245 * _3263) * clamp(_3277, 0.0f, 1.0f))); } else { tau += ((_3245 * _3263) * _3277); } i++; continue; } if (!_3178) { tau = fog_falloff_depth(k, _3171, _3175, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _3325; uint i_3 = 0u; uint n = 0u; bool _3331 = false; float2 chords[4] = _3328; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _3335; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _3348 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_3348 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _3378 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_3348) { _3331 = _3378 == 0u; } else { _3331 = false; } if (_3331) { break; } uint _3390 = _3348 ? i_2 : (min(_3378, 16u) - 1u); uint _3391 = min(_3390, 15u); float2 _3400 = fog_chord(_3390, mul(float4(o, 1.0f), Fog_1_m0.entries[_3391].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_3391].to_local).xyz, t_end); if (_3400.y > _3400.x) { at[min(m, 3u)] = _3390; chords[min(m, 3u)] = _3400; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _3556 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _3556)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _3676 = exp(-tau); return (c * _3676) + (q * ((1.0f - _3676) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 fog_volumes(float3 c, float3 world_1, uint list) { float3 _3712 = world_1 - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(world_1, 1.0f), G_1_m0.view).z); bool _3715 = G_1_m0.camera_pos.w > 0.5f; bool3 _3717 = bool3(_3715, _3715, _3715); float3 _3716 = float3(_3717.x ? _3712.x : G_1_m0.camera_pos.xyz.x, _3717.y ? _3712.y : G_1_m0.camera_pos.xyz.y, _3717.z ? _3712.z : G_1_m0.camera_pos.xyz.z); float _3719 = length(world_1 - _3716); float _3721 = max(_3719, 9.9999999747524270787835121154785e-07f); float3 _3724 = fog_integrate(c, _3716, (world_1 - _3716) / float3(_3721, _3721, _3721), _3719, list); bool _3725 = _3719 > 0.0f; bool3 _3727 = bool3(_3725, _3725, _3725); return float3(_3727.x ? _3724.x : c.x, _3727.y ? _3724.y : c.y, _3727.z ? _3724.z : c.z); } float3 lit_with(VsOut _in, bool front, Samples s, bool baked, float3 baked_light) { float3 dif = float3(0.0f, 0.0f, 0.0f); float3 diffuse_amb = float3(0.0f, 0.0f, 0.0f); float atten = 0.0f; uint k = 0u; float3 t = float3(0.0f, 0.0f, 0.0f); bool _4627 = false; float3 dif_1 = float3(0.0f, 0.0f, 0.0f); float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); float3 n_mat = float3(0.0f, 0.0f, 0.0f); float3 dif_2 = float3(0.0f, 0.0f, 0.0f); float3 spec_amb = float3(0.0f, 0.0f, 0.0f); float3 radiance_1 = float3(0.0f, 0.0f, 0.0f); bool _4607 = false; DecalSurface surf = _4604; uint2 loop_bound = uint2(4294967295u, 4294967295u); float3 _4632 = -normalize(_in.normal); float3 _4634 = normalize(_in.normal); bool3 _4636 = bool3(front, front, front); float3 _4635 = float3(_4636.x ? _4634.x : _4632.x, _4636.y ? _4634.y : _4632.y, _4636.z ? _4634.z : _4632.z); n_mat = _4635; if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { t = _in.tangent.xyz; t = normalize(t - (n_mat * dot(n_mat, t))); n_mat = normalize(((t * s.normal.x) + ((cross(n_mat, t) * _in.tangent.w) * s.normal.y)) + (n_mat * s.normal.z)); } DecalSurface _4691 = { s.base.xyz, clamp(M_1_m0.factors.x * s.mr.z, 0.0f, 1.0f), clamp(M_1_m0.factors.y * s.mr.y, 0.04500000178813934326171875f, 1.0f), s.occlusion, n_mat, s.emission }; surf = _4691; if (true ? (O_1_m0.decals.z > 0u) : false) { DecalSurface _4700 = surf; surf = apply_decals(_in.world, _4635, _4700); } float _4709 = ((surf.roughness * surf.roughness) * surf.roughness) * surf.roughness; float3 _4713 = surf.base * (1.0f - surf.metallic); float3 _4714 = lerp(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), surf.base, float3(surf.metallic, surf.metallic, surf.metallic)); float3 _4730 = normalize(G_1_m0.camera_pos.xyz - _in.world); float3 _4731 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _4734 = G_1_m0.camera_pos.w > 0.5f; bool3 _4736 = bool3(_4734, _4734, _4734); float3 _4735 = float3(_4736.x ? _4731.x : _4730.x, _4736.y ? _4731.y : _4730.y, _4736.z ? _4731.z : _4730.z); uint _4737 = object_light_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(true ? (k < _4737) : false)) { break; } uint _4761 = object_light(k); uint _4762 = min(_4761, 63u); if (baked) { _4607 = Lit_1_m0.lights[_4762].info.z == 1u; } else { _4607 = false; } if (_4607) { uint _4847 = k; k = _4847 + 1u; continue; } l = float3(0.0f, 0.0f, 0.0f); atten = 1.0f; if (Lit_1_m0.lights[_4762].info.x == 0u) { l = -Lit_1_m0.lights[_4762].direction.xyz; } else { float3 _4786 = Lit_1_m0.lights[_4762].position.xyz - _in.world; float _4787 = length(_4786); float _4788 = max(_4787, 9.9999999747524270787835121154785e-07f); l = _4786 / float3(_4788, _4788, _4788); atten = omni_attenuation(_4787, Lit_1_m0.lights[_4762].position.w, Lit_1_m0.lights[_4762].direction.w); if (Lit_1_m0.lights[_4762].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_4762].direction.xyz), Lit_1_m0.lights[_4762].spot.x)) / max(1.0f - Lit_1_m0.lights[_4762].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_4762].spot.y)); } } if (atten > 0.0f) { radiance_1 = Lit_1_m0.lights[_4762].color.xyz * atten; if (true ? (Lit_1_m0.lights[_4762].info.y == 1u) : false) { radiance_1 = Lit_1_m0.lights[_4762].color.xyz * (atten * shadow_factor(_4761, _in.world, _4635, l)); } c += light_specular(surf.normal, _4735, l, radiance_1, _4713, _4714, _4709, Lit_1_m0.lights[_4762].spot.z); } uint _4847 = k; k = _4847 + 1u; continue; } float _4850 = max(dot(surf.normal, _4735), 9.9999997473787516355514526367188e-05f); float _4851 = 1.0f - surf.roughness; float3 _4858 = _4714 + ((max(float3(_4851, _4851, _4851), _4714) - _4714) * pow(1.0f - _4850, 5.0f)); float4 _4859 = gi_diffuse(surf.normal, baked, baked_light); if (true ? ((Sky_1_m0.flags.x & 8u) != 0u) : false) { float _4872 = Sky_1_m0.ibl.x * Sky_1_m0.sun.w; diffuse_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 16u) != 0u) { diffuse_amb = lerp(Sky_1_m0.ambient.xyz, sh_irradiance(sky_dir(surf.normal)) * _4872, float3(Sky_1_m0.ambient.w, Sky_1_m0.ambient.w, Sky_1_m0.ambient.w)); } if (_4859.w > 0.0f) { diffuse_amb = _4859.xyz; } spec_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 32u) != 0u) { spec_amb = radiance(sky_dir(reflect(-_4735, surf.normal)), surf.roughness) * _4872; } else { if ((Sky_1_m0.flags.x & 64u) != 0u) { spec_amb = float3(0.0f, 0.0f, 0.0f); } } float2 _4918 = env_brdf_approx(surf.roughness, _4850); if (true ? (Probe_1_m0.counts.x > 0u) : false) { float4 _4931 = probe_reflection(_in.world, reflect(-_4735, surf.normal), surf.roughness, O_1_m0.extra.z); dif_1 = diffuse_amb; if (_4859.w <= 0.0f) { float4 _4946 = probe_ambient(_in.world, surf.normal, O_1_m0.extra.z); dif_1 = (diffuse_amb * (1.0f - _4946.w)) + _4946.xyz; } float _4961 = _4918.y * clamp(50.0f * _4714.y, surf.metallic, 1.0f); ambient = (_4713 * dif_1) + (((spec_amb * (1.0f - _4931.w)) + _4931.xyz) * ((_4714 * _4918.x) + float3(_4961, _4961, _4961))); } else { float _4975 = _4918.y * clamp(50.0f * _4714.y, surf.metallic, 1.0f); ambient = (_4713 * diffuse_amb) + (spec_amb * ((_4714 * _4918.x) + float3(_4975, _4975, _4975))); } } else { if ((Lit_1_m0.counts.y & 2u) != 0u) { float3 _4997 = (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f; float _5009 = clamp((dot(surf.normal, Lit_1_m0.up.xyz) * 0.5f) + 0.5f, 0.0f, 1.0f); float3 _5010 = lerp((Lit_1_m0.ground_horizon.xyz + Lit_1_m0.ground_bottom.xyz) * 0.5f, _4997, float3(_5009, _5009, _5009)); float3 _5015 = lerp(sky(reflect(-_4735, surf.normal)), _4997, float3(surf.roughness, surf.roughness, surf.roughness)); if (Probe_1_m0.counts.x > 0u) { float4 _5028 = probe_reflection(_in.world, reflect(-_4735, surf.normal), surf.roughness, O_1_m0.extra.z); dif = _4859.xyz; if (_4859.w <= 0.0f) { float4 _5045 = probe_ambient(_in.world, surf.normal, O_1_m0.extra.z); dif = ((_5010 * Lit_1_m0.ambient.w) * (1.0f - _5045.w)) + _5045.xyz; } ambient = (_4713 * dif) + ((((_5015 * Lit_1_m0.ambient.w) * (1.0f - _5028.w)) + _5028.xyz) * _4858); } else { if (_4859.w > 0.0f) { ambient = (_4713 * _4859.xyz) + ((_5015 * _4858) * Lit_1_m0.ambient.w); } else { ambient = ((_4713 * _5010) + (_5015 * _4858)) * Lit_1_m0.ambient.w; } } } else { if (Probe_1_m0.counts.x > 0u) { float4 _5087 = probe_reflection(_in.world, reflect(-_4735, surf.normal), surf.roughness, O_1_m0.extra.z); dif_2 = _4859.xyz; if (_4859.w <= 0.0f) { float4 _5104 = probe_ambient(_in.world, surf.normal, O_1_m0.extra.z); dif_2 = (Lit_1_m0.ambient.xyz * (1.0f - _5104.w)) + _5104.xyz; } ambient = (_4713 * dif_2) + (((Lit_1_m0.ambient.xyz * (1.0f - _5087.w)) + _5087.xyz) * _4858); } else { if (_4859.w > 0.0f) { ambient = (_4713 * _4859.xyz) + (Lit_1_m0.ambient.xyz * _4858); } else { ambient = Lit_1_m0.ambient.xyz * (_4713 + _4858); } } } } if ((Lit_1_m0.counts.y & 4u) != 0u) { _4627 = M_1_m0.flags.y != 2u; } else { _4627 = false; } if (true ? _4627 : false) { int _5154; spvTextureSize(t_ao, 0u, _5154); int _5156 = int(min(uint(0), uint(int(_5154) - 1))); uint _5157_dummy_parameter; float4 _5161 = t_ao.Load(int3(int2(min(uint2(int2(clamp(floor(_in.clip.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ao, uint(_5156), _5157_dummy_parameter)) - int2(1, 1)))), _5156)); float _5162 = _5161.x; c *= lerp(1.0f, min(_5162, surf.occlusion), Lit_1_m0.tone.z * Lit_1_m0.tone.w); c += (ambient * min(surf.occlusion, _5162)); } else { c += (ambient * surf.occlusion); } c += surf.emission; if (true ? ((Sky_1_m0.flags.x & 128u) != 0u) : false) { c = surface_fog(c, _in.world, -_4735); } if (true ? (O_1_m0.decals.w != 0u) : false) { c = fog_volumes(c, _in.world, O_1_m0.decals.w); } return tonemap(c); } float3 item_fade(float3 c) { if (true ? ((O_1_m0.extra.x & 64u) == 0u) : true) { return c; } return lerp(c, tonemap(O_1_m0.normal[3u].xyz), float3(O_1_m0.normal[3u].www)); } float3 emerge_tint(float3 c, float r) { bool _1944 = false; if (!((O_1_m0.extra.x & 32u) == 0u)) { _1944 = r >= 1.0f; } else { _1944 = true; } if (true ? _1944 : true) { return c; } float _1966 = smoothstep(0.0f, 1.0f, r); return lerp(tonemap(srgb_to_linear(spvUnpackUnorm4x8(O_1_m0.extra.w).xyz)), c, float3(_1966, _1966, _1966)); } float3 linear_to_srgb(float3 c) { float3 _338 = c * 12.9200000762939453125f; float3 _341 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _342 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_342.x ? _338.x : _341.x, _342.y ? _338.y : _341.y, _342.z ? _338.z : _341.z); } float4 target_color(float4 c) { float4 _353 = clamp(c, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if (G_1_m0.fparams.w > 0.5f) { return float4(linear_to_srgb(_353.xyz), _353.w); } return _353; } float4 lit_output(float4 c) { if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(c.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(c.w, 0.0f, 1.0f)); } return target_color(c); } void frag_main() { bool _7090 = false; float alpha = 1.0f; bool _7088 = false; float3 c = float3(0.0f, 0.0f, 0.0f); bool _7086 = false; VsOutLm _7022 = { gl_FragCoord, world, normal, uv, flags, tangent, weight, color, uv1, uv_lm }; VsOut _7094 = ext_base_in(lm_ext_in(_7022)); Samples _7097 = surface_samples(_7094); if (true ? ((_7022.flags & 2u) != 0u) : false) { discard; } float _7107 = emerge_reveal(_7022.world, _7022.clip.xy); if (true ? (_7107 <= 0.0f) : false) { discard; } float3 _7113 = lightmap_light(_7022.uv_lm); if (true ? (G_1_m0.params.x == 9u) : false) { c = tonemap(_7113); } else { if (M_1_m0.flags.y == 1u) { _7086 = _7097.base.w < M_1_m0.emission.w; } else { _7086 = false; } if (true ? _7086 : false) { discard; } if (true ? (M_1_m0.flags.y == 2u) : false) { alpha = _7097.base.w; } c = lit_with(_7094, gl_FrontFacing != mirrored(_7094), _7097, true, _7113); } if (O_1_m0.params.w == 1u) { _7088 = (G_1_m0.params.y & 1u) != 0u; } else { _7088 = false; } if (_7088) { _7090 = (_7022.flags & 1u) != 0u; } else { _7090 = false; } if (true ? _7090 : false) { c = lerp(c, srgb_to_linear(float3(1.0f, 0.6349999904632568359375f, 0.0f)), float3(0.4000000059604644775390625f, 0.4000000059604644775390625f, 0.4000000059604644775390625f)); } _7051 = lit_output(float4(emerge_tint(item_fade(c), _7107), alpha)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; color = stage_input.color; uv1 = stage_input.uv1; uv_lm = stage_input.uv_lm; frag_main(); SPIRV_Cross_Output stage_output; stage_output._7051 = _7051; return stage_output; } fs_surface_ext_lmmain¡‘struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _522 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const float3 _764[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const Samples _1129 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Samples _1220 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f }; static const uint _3327[4] = { 0u, 0u, 0u, 0u }; static const float2 _3330[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _3337[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const DecalSurface _4606 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const VsOutExt _5267 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _5293 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _5319 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _5374 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const ExtSamples _5556 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), false, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float2(0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f) }; static const float _6233[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const ExtCtx _6526 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), false, 0.0f, float2(0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f) }; static const DecalSurface _6530 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const VsOutExt _8134 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer M : register(b9) { MaterialU M_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Shadow : register(b2) { ShadowU Shadow_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Probe : register(b4) { ProbeU Probe_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; Texture2D t_base : register(t4); Texture2D t_normal : register(t5); Texture2D t_mr : register(t6); Texture2D t_emission : register(t7); Texture2D t_occlusion : register(t8); SamplerState s_mat : register(s2); Texture2DArray t_ext : register(t9); Texture2D t_shadow : register(t0); SamplerComparisonState s_shadow : register(s0); TextureCube t_radiance : register(t10); SamplerState s_radiance : register(s3); Texture2D t_ao : register(t1); Texture2DArray t_lightmap : register(t12); SamplerState s_lightmap : register(s5); Texture2D t_probes : register(t13); SamplerState s_probes : register(s6); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); Texture2D t_screen : register(t3); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 color; static float2 uv1; static float2 uv_lm; static float4 _8200; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 color : TEXCOORD6; float2 uv1 : TEXCOORD7; float2 uv_lm : TEXCOORD8; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 _8200 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint spvPackUnorm4x8(float4 value) { uint4 Packed = uint4(round(saturate(value) * 255.0)); return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); } float4 spvUnpackUnorm4x8(uint value) { uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); return float4(Packed) / 255.0; } VsOutExt lm_ext_in(VsOutLm l) { VsOutExt e = _8134; e.clip = l.clip; e.world = l.world; e.normal = l.normal; e.uv = l.uv; e.flags = l.flags; e.tangent = l.tangent; e.weight = l.weight; e.color = l.color; e.uv1 = l.uv1; return e; } VsOut ext_base_in(VsOutExt e) { VsOut o = _5293; o.clip = e.clip; o.world = e.world; o.normal = e.normal; o.uv = e.uv; o.flags = e.flags; o.tangent = e.tangent; o.weight = e.weight; o.color = e.color; return o; } bool mirrored(VsOut _in) { return ((O_1_m0.extra.x & 2u) != 0u) != ((_in.flags & 128u) != 0u); } float2 tex_uv(float2 uv_1) { return float2(uv_1.x, 1.0f - uv_1.y); } float2 ext_uv(uint s, float2 uv0, float2 uv1_1) { uint _5477 = min((s * 2u), 39u); uint _5482 = min(((s * 2u) + 1u), 39u); bool _5486 = M_1_m0.xf[_5477].w > 0.5f; bool2 _5488 = bool2(_5486, _5486); float2 _5487 = float2(_5488.x ? uv1_1.x : uv0.x, _5488.y ? uv1_1.y : uv0.y); return float2(dot(M_1_m0.xf[_5477].xy, _5487) + M_1_m0.xf[_5477].z, dot(M_1_m0.xf[_5482].xy, _5487) + M_1_m0.xf[_5482].z); } float3 srgb_to_linear(float3 c) { float3 _209 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _212 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _214 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_214.x ? _209.x : _212.x, _214.y ? _209.y : _212.y, _214.z ? _209.z : _212.z); } float4 decoded_base(float4 t) { if ((M_1_m0.flags.w & 32u) != 0u) { return float4(srgb_to_linear(t.xyz), t.w); } return t; } float3 scaled_normal(float3 texel, float scale) { return normalize(((texel * 2.0f) - float3(1.0f, 1.0f, 1.0f)) * float3(scale, scale, 1.0f)); } float ext_where(uint s) { return M_1_m0.xf[min(((s * 2u) + 1u), 39u)].w; } float4 ext_layer(uint s, float2 uv0, float2 uv1_1) { return t_ext.Sample(s_mat, float3(ext_uv(s, uv0, uv1_1), float(int(clamp(ext_where(s) + 0.5f, -2147483648.0f, 2147483520.0f)) - 1))); } float3 decoded_emission(float3 t) { if ((M_1_m0.flags.w & 64u) != 0u) { return srgb_to_linear(t); } return t; } ExtSamples sample_ext(VsOutExt _in) { ExtSamples s = _5556; float4 c = float4(0.0f, 0.0f, 0.0f, 0.0f); float thick = 1.0f; float2 _5562 = tex_uv(_in.uv); float2 _5564 = tex_uv(_in.uv1); s.base = M_1_m0.base_color; if (true ? ((M_1_m0.flags.x & 1u) != 0u) : false) { s.base *= decoded_base(t_base.Sample(s_mat, ext_uv(0u, _5562, _5564))); } if (true ? ((M_1_m0.flags.w & 1u) != 0u) : false) { c = _in.color; if ((M_1_m0.flags.w & 2u) != 0u) { c = float4(srgb_to_linear(c.xyz), c.w); } s.base *= c; } s.normal = float3(0.0f, 0.0f, 1.0f); if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { s.normal = scaled_normal(t_normal.Sample(s_mat, ext_uv(3u, _5562, _5564)).xyz, M_1_m0.ext[3u].w); } s.metallic = M_1_m0.factors.x; if (true ? (ext_where(1u) > 0.5f) : false) { s.metallic *= t_mr.Sample(s_mat, ext_uv(1u, _5562, _5564)).z; } s.roughness = M_1_m0.factors.y; if (true ? ((M_1_m0.flags.w & 16u) != 0u) : false) { if (ext_where(2u) > 0.5f) { s.roughness *= ext_layer(2u, _5562, _5564).y; } } else { if (true ? (ext_where(2u) > 0.5f) : false) { s.roughness *= t_mr.Sample(s_mat, ext_uv(2u, _5562, _5564)).y; } } s.emission = M_1_m0.emission.xyz; if (true ? ((M_1_m0.flags.x & 8u) != 0u) : false) { s.emission *= decoded_emission(t_emission.Sample(s_mat, ext_uv(5u, _5562, _5564)).xyz); } s.occlusion = 1.0f; if (true ? ((M_1_m0.flags.x & 16u) != 0u) : false) { s.occlusion = 1.0f + (M_1_m0.ext[6u].w * (t_occlusion.Sample(s_mat, ext_uv(4u, _5562, _5564)).x - 1.0f)); } s.specular = M_1_m0.ext[0u].w; if (true ? (ext_where(11u) > 0.5f) : false) { s.specular *= ext_layer(11u, _5562, _5564).w; } s.specular_color = M_1_m0.ext[0u].xyz; if (true ? (ext_where(12u) > 0.5f) : false) { s.specular_color *= srgb_to_linear(ext_layer(12u, _5562, _5564).xyz); } s.transmission = M_1_m0.ext[1u].y; if (true ? (ext_where(13u) > 0.5f) : false) { s.transmission *= ext_layer(13u, _5562, _5564).x; } s.thickness = M_1_m0.ext[1u].z; if (true ? (ext_where(14u) > 0.5f) : false) { s.thickness *= ext_layer(14u, _5562, _5564).y; } s.clearcoat = M_1_m0.ext[3u].x; if (true ? (ext_where(6u) > 0.5f) : false) { s.clearcoat *= ext_layer(6u, _5562, _5564).x; } s.clearcoat_roughness = M_1_m0.ext[3u].y; if (true ? (ext_where(7u) > 0.5f) : false) { s.clearcoat_roughness *= ext_layer(7u, _5562, _5564).y; } s.clearcoat_normal = float3(0.0f, 0.0f, 1.0f); s.clearcoat_mapped = false; if (true ? (ext_where(8u) > 0.5f) : false) { s.clearcoat_normal = scaled_normal(ext_layer(8u, _5562, _5564).xyz, M_1_m0.ext[3u].z); s.clearcoat_mapped = true; } s.sheen_color = M_1_m0.ext[4u].xyz; if (true ? (ext_where(9u) > 0.5f) : false) { s.sheen_color *= srgb_to_linear(ext_layer(9u, _5562, _5564).xyz); } s.sheen_roughness = M_1_m0.ext[4u].w; if (true ? (ext_where(10u) > 0.5f) : false) { s.sheen_roughness *= ext_layer(10u, _5562, _5564).w; } s.iridescence = M_1_m0.ext[5u].x; if (true ? (ext_where(15u) > 0.5f) : false) { s.iridescence *= ext_layer(15u, _5562, _5564).x; } if (true ? (ext_where(16u) > 0.5f) : false) { thick = ext_layer(16u, _5562, _5564).y; } s.iridescence_thickness = lerp(M_1_m0.ext[5u].z, M_1_m0.ext[5u].w, thick); s.anisotropy = M_1_m0.ext[6u].x; s.anisotropy_dir = M_1_m0.ext[6u].yz; if (true ? (ext_where(17u) > 0.5f) : false) { float3 _5884 = ext_layer(17u, _5562, _5564).xyz; float2 _5887 = (_5884.xy * 2.0f) - float2(1.0f, 1.0f); float2 _5888 = normalize(_5887); bool _5890 = dot(_5887, _5887) > 9.9999999392252902907785028219223e-09f; bool2 _5892 = bool2(_5890, _5890); float2 _5891 = float2(_5892.x ? _5888.x : float2(1.0f, 0.0f).x, _5892.y ? _5888.y : float2(1.0f, 0.0f).y); s.anisotropy_dir = float2((M_1_m0.ext[6u].y * _5891.x) - (M_1_m0.ext[6u].z * _5891.y), (M_1_m0.ext[6u].z * _5891.x) + (M_1_m0.ext[6u].y * _5891.y)); s.anisotropy *= _5884.z; } s.diffuse_transmission = M_1_m0.ext[7u].w; if (true ? (ext_where(18u) > 0.5f) : false) { s.diffuse_transmission *= ext_layer(18u, _5562, _5564).w; } s.diffuse_transmission_color = M_1_m0.ext[7u].xyz; if (true ? (ext_where(19u) > 0.5f) : false) { s.diffuse_transmission_color *= srgb_to_linear(ext_layer(19u, _5562, _5564).xyz); } return s; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1833 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1833, _1833, _1833); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1852 = floor(p); float3 _1853 = frac(p); float3 _1857 = (_1853 * _1853) * (float3(3.0f, 3.0f, 3.0f) - (_1853 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1852), emerge_hash(_1852 + float3(1.0f, 0.0f, 0.0f)), _1857.x), lerp(emerge_hash(_1852 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1852 + float3(1.0f, 1.0f, 0.0f)), _1857.x), _1857.y), lerp(lerp(emerge_hash(_1852 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1852 + float3(1.0f, 0.0f, 1.0f)), _1857.x), lerp(emerge_hash(_1852 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1852 + float3(1.0f, 1.0f, 1.0f)), _1857.x), _1857.y), _1857.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1913 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1913) * 0.64999997615814208984375f) + (emerge_noise((_1913 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } float3 lightmap_light(float2 uv_lm_1) { return t_lightmap.SampleLevel(s_lightmap, float3(uv_lm_1, float(int(O_1_m0.extra.y))), 0.0f).xyz; } float3 filmic_curve(float3 x) { float _1614 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _1618 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _1624 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _1628 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_1614, _1614, _1614))) + float3(_1618, _1618, _1618)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_1624, _1624, _1624))) - float3(_1628, _1628, _1628); } float3 aces_curve(float3 c, float white) { float3 _1676 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _1684 = ((_1676 * (_1676 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_1676 * ((_1676 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _1689 = 1.7999999523162841796875f * white; float _1697 = ((_1689 * (_1689 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_1689 * ((0.98372900485992431640625f * _1689) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _1684), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _1684), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _1684)) / float3(_1697, _1697, _1697); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _1752 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_1752, _1752, _1752); float3 _1757 = v * v; float3 _1758 = _1757 * _1757; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_1757 * 4.01109981536865234375f)) - ((_1757 * 25.68199920654296875f) * v)) + (_1758 * 70.35900115966796875f)) - ((_1758 * 74.7779998779296875f) * v)) + ((_1758 * 27.069000244140625f) * _1757), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _1787 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_1787 * Lit_1_m0.tone.y) + _1787) / ((_1787 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_1787) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_1787, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_1787); } return _1787; } bool ext_cut(ExtSamples s) { bool _5952 = false; if (M_1_m0.flags.y == 1u) { _5952 = s.base.w < M_1_m0.emission.w; } else { _5952 = false; } return true ? _5952 : false; } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _522; bool _525 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _530 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _530)) { break; } uint _560 = decal_entry(k); uint _563 = min(min(_560, 63u), 63u); float3 _569 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_563].to_local).xyz; if (all(bool3(_569.x >= float3(0.0f, -1.0f, 0.0f).x, _569.y >= float3(0.0f, -1.0f, 0.0f).y, _569.z >= float3(0.0f, -1.0f, 0.0f).z))) { _525 = all(bool3(_569.x <= float3(1.0f, 1.0f, 1.0f).x, _569.y <= float3(1.0f, 1.0f, 1.0f).y, _569.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _525 = false; } if (!_525) { uint _728 = k; k = _728 + 1u; continue; } fade = pow(1.0f - abs(_569.y), (_569.y > 0.0f) ? Decal_1_m0.entries[_563].fades.x : Decal_1_m0.entries[_563].fades.y); if (Decal_1_m0.entries[_563].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_563].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_563].axis_y.xyz) * 0.5f) + 0.5f); } float2 _607 = _569.xz; float _608 = decal_level(Decal_1_m0.entries[_563], world_1); if (Decal_1_m0.entries[_563].layers.x > 0u) { float4 _620 = decal_texel(Decal_1_m0.entries[_563].layers.x, _607, _608, (Decal_1_m0.entries[_563].flags.x & 1u) != 0u); float4 _626 = float4(srgb_to_linear(_620.xyz), _620.w) * Decal_1_m0.entries[_563].modulate; float _629 = _626.w * fade; float _635 = _629 * Decal_1_m0.entries[_563].fades.w; out_s.base = lerp(out_s.base, _626.xyz, float3(_635, _635, _635)); if (Decal_1_m0.entries[_563].layers.y > 0u) { float4 _648 = decal_texel(Decal_1_m0.entries[_563].layers.y, _607, _608, (Decal_1_m0.entries[_563].flags.x & 2u) != 0u); float _651 = (_648.x * 2.0f) - 1.0f; float _654 = 1.0f - (_648.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_563].axis_x.xyz * _651) + (Decal_1_m0.entries[_563].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_651 * _651)) - (_654 * _654))))) + (Decal_1_m0.entries[_563].axis_z.xyz * _654)), float3(_629, _629, _629))); } if (Decal_1_m0.entries[_563].layers.z > 0u) { float4 _688 = decal_texel(Decal_1_m0.entries[_563].layers.z, _607, _608, (Decal_1_m0.entries[_563].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _688.x, _629); out_s.roughness = lerp(out_s.roughness, _688.y, _629); out_s.metallic = lerp(out_s.metallic, _688.z, _629); } } if (Decal_1_m0.entries[_563].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_563].layers.w, _607, _608, (Decal_1_m0.entries[_563].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_563].modulate.xyz) * Decal_1_m0.entries[_563].axis_x.w) * fade); } uint _728 = k; k = _728 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } float3 ext_view(float3 world_1) { float3 _6502 = normalize(G_1_m0.camera_pos.xyz - world_1); float3 _6503 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _6506 = G_1_m0.camera_pos.w > 0.5f; bool3 _6508 = bool3(_6506, _6506, _6506); return float3(_6508.x ? _6503.x : _6502.x, _6508.y ? _6503.y : _6502.y, _6508.z ? _6503.z : _6502.z); } float3 ior_to_f0(float3 transmitted, float incident) { float3 _6368 = (transmitted - float3(incident, incident, incident)) / (transmitted + float3(incident, incident, incident)); return _6368 * _6368; } float pow5(float x) { float _5981 = x * x; return (_5981 * _5981) * x; } float3 iridescence_sensitivity(float opd, float3 shift) { float3 xyz = float3(0.0f, 0.0f, 0.0f); float _6329 = (6.283185482025146484375f * opd) * 9.999999717180685365747194737196e-10f; xyz = ((float3(5.4856000384490011256843899900559e-13f, 4.4201000823883285217874572481378e-13f, 5.2481001315551889518928874167614e-13f) * sqrt(float3(4327799808.0f, 9304599552.0f, 6612100096.0f) * 6.283185482025146484375f)) * cos((float3(1681000.0f, 1795300.0f, 2208400.0f) * _6329) + shift)) * exp(float3(4327799808.0f, 9304599552.0f, 6612100096.0f) * ((-_6329) * _6329)); xyz.x += ((1.6440829142538859741762280464172e-08f * cos((2239900.0f * _6329) + shift.x)) * exp(((-4528200192.0f) * _6329) * _6329)); xyz /= float3(1.0685000262355970335192978382111e-07f, 1.0685000262355970335192978382111e-07f, 1.0685000262355970335192978382111e-07f); return mul(xyz, float3x3(float3(3.240454196929931640625f, -0.969265997409820556640625f, 0.0556433983147144317626953125f), float3(-1.537138462066650390625f, 1.87601077556610107421875f, -0.2040258944034576416015625f), float3(-0.498531401157379150390625f, 0.04155600070953369140625f, 1.05722522735595703125f))); } float3 eval_iridescence(float outside, float film_in, float cos1, float thickness, float3 f0) { float3 i = float3(0.0f, 0.0f, 0.0f); float3 cm = float3(0.0f, 0.0f, 0.0f); int m = 1; uint2 loop_bound = uint2(4294967295u, 4294967295u); float _6391 = lerp(outside, film_in, smoothstep(0.0f, 0.02999999932944774627685546875f, thickness)); float _6392 = outside / _6391; float _6397 = 1.0f - ((_6392 * _6392) * (1.0f - (cos1 * cos1))); if (_6397 < 0.0f) { return float3(1.0f, 1.0f, 1.0f); } float _6401 = sqrt(_6397); float3 _6403 = ior_to_f0(float3(_6391, _6391, _6391), outside); float _6404 = _6403.x; float _6410 = _6404 + ((1.0f - _6404) * pow5(clamp(1.0f - cos1, 0.0f, 1.0f))); float _6411 = 1.0f - _6410; float _6414 = 3.1415927410125732421875f - ((_6391 < outside) ? 3.1415927410125732421875f : 0.0f); float3 _6417 = sqrt(min(f0 + float3(9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f), float3(0.99989998340606689453125f, 0.99989998340606689453125f, 0.99989998340606689453125f))); float3 _6420 = (float3(1.0f, 1.0f, 1.0f) + _6417) / (float3(1.0f, 1.0f, 1.0f) - _6417); float3 _6421 = ior_to_f0(_6420, _6391); float3 _6427 = _6421 + ((float3(1.0f, 1.0f, 1.0f) - _6421) * pow5(clamp(1.0f - _6401, 0.0f, 1.0f))); float3 _6428 = float3(_6391, _6391, _6391); bool3 _6429 = bool3(_6420.x < _6428.x, _6420.y < _6428.y, _6420.z < _6428.z); float _6433 = ((2.0f * _6391) * thickness) * _6401; float3 _6435 = float3(_6414, _6414, _6414) + float3(_6429.x ? float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f).x : float3(0.0f, 0.0f, 0.0f).x, _6429.y ? float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f).y : float3(0.0f, 0.0f, 0.0f).y, _6429.z ? float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f).z : float3(0.0f, 0.0f, 0.0f).z); float3 _6437 = clamp(_6427 * _6410, float3(9.9999997473787516355514526367188e-06f, 9.9999997473787516355514526367188e-06f, 9.9999997473787516355514526367188e-06f), float3(0.99989998340606689453125f, 0.99989998340606689453125f, 0.99989998340606689453125f)); float3 _6438 = sqrt(_6437); float3 _6442 = (_6427 * (_6411 * _6411)) / (float3(1.0f, 1.0f, 1.0f) - _6437); i = float3(_6410, _6410, _6410) + _6442; cm = _6442 - float3(_6411, _6411, _6411); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(m <= 2)) { break; } cm *= _6438; i += ((cm * 2.0f) * iridescence_sensitivity(float(m) * _6433, _6435 * float(m))); m++; continue; } return max(i, float3(0.0f, 0.0f, 0.0f)); } ExtCtx ext_ctx(VsOutExt _in, bool front, ExtSamples s, bool decals) { float3 t = float3(0.0f, 0.0f, 0.0f); bool _6531 = false; ExtCtx e = _6526; DecalSurface surf = _6530; float3 _6536 = -normalize(_in.normal); float3 _6538 = normalize(_in.normal); bool3 _6540 = bool3(front, front, front); float3 _6539 = float3(_6540.x ? _6538.x : _6536.x, _6540.y ? _6538.y : _6536.y, _6540.z ? _6538.z : _6536.z); t = _in.tangent.xyz; t = normalize(t - (_6539 * dot(_6539, t))); float3 _6553 = cross(_6539, t) * _in.tangent.w; e.n_geo = _6539; e.n = _6539; if (true ? ((M_1_m0.flags.x & 2u) != 0u) : false) { e.n = normalize(((t * s.normal.x) + (_6553 * s.normal.y)) + (_6539 * s.normal.z)); } e.nc = _6539; if (s.clearcoat_mapped) { e.nc = normalize(((t * s.clearcoat_normal.x) + (_6553 * s.clearcoat_normal.y)) + (_6539 * s.clearcoat_normal.z)); } DecalSurface _6605 = { s.base.xyz, clamp(s.metallic, 0.0f, 1.0f), clamp(s.roughness, 0.04500000178813934326171875f, 1.0f), s.occlusion, e.n, s.emission }; surf = _6605; if (true ? decals : false) { DecalSurface _6611 = surf; surf = apply_decals(_in.world, _6539, _6611); } e.n = surf.normal; e.occlusion = surf.occlusion; e.emission = surf.emission; e.v = ext_view(_in.world); e.world = _in.world; e.nv = max(dot(e.n, e.v), 9.9999997473787516355514526367188e-05f); e.metallic = surf.metallic; e.roughness = surf.roughness; e.alpha = e.roughness * e.roughness; e.a2 = e.alpha * e.alpha; e.base = surf.base; e.diffuse = e.base * (1.0f - e.metallic); e.ior = max(M_1_m0.ext[1u].x, 1.0f); float _6676 = (e.ior - 1.0f) / (e.ior + 1.0f); float _6678 = max(s.specular, 0.0f); float _6679 = _6676 * _6676; e.f0 = lerp(min(float3(_6679, _6679, _6679) * s.specular_color, float3(1.0f, 1.0f, 1.0f)) * _6678, e.base, float3(e.metallic, e.metallic, e.metallic)); e.f90 = lerp(float3(_6678, _6678, _6678), float3(1.0f, 1.0f, 1.0f), float3(e.metallic, e.metallic, e.metallic)); e.iridescence = clamp(s.iridescence, 0.0f, 1.0f); e.irid_f = e.f0; if (true ? (e.iridescence > 0.0f) : false) { e.irid_f = eval_iridescence(1.0f, M_1_m0.ext[5u].y, e.nv, s.iridescence_thickness, e.f0); } e.aniso = clamp(s.anisotropy, 0.0f, 1.0f); e.aniso_t = normalize((t * s.anisotropy_dir.x) + (_6553 * s.anisotropy_dir.y)); e.aniso_b = normalize(cross(_6539, e.aniso_t)); e.clearcoat = clamp(s.clearcoat, 0.0f, 1.0f); e.cc_roughness = clamp(s.clearcoat_roughness, 0.04500000178813934326171875f, 1.0f); float _6747 = e.cc_roughness * e.cc_roughness; e.cc_a2 = _6747 * _6747; e.sheen = max(s.sheen_color, float3(0.0f, 0.0f, 0.0f)); e.sheen_roughness = clamp(s.sheen_roughness, 0.070000000298023223876953125f, 1.0f); e.sheen_alpha = e.sheen_roughness * e.sheen_roughness; e.dt = clamp(s.diffuse_transmission, 0.0f, 1.0f); e.dt_color = max(s.diffuse_transmission_color, float3(0.0f, 0.0f, 0.0f)); e.transmission = clamp(s.transmission, 0.0f, 1.0f); e.trans_alpha = max(e.alpha * clamp((e.ior * 2.0f) - 2.0f, 0.0f, 1.0f), 0.00200000009499490261077880859375f); float _6805 = max(s.thickness, 0.0f) * (((length(O_1_m0.model[0u].xyz) + length(O_1_m0.model[1u].xyz)) + length(O_1_m0.model[2u].xyz)) / 3.0f); e.thin = _6805 <= 0.0f; e.thickness = _6805; e.frag = _in.clip.xy; e.attenuation = float3(1.0f, 1.0f, 1.0f); if (M_1_m0.ext[1u].w > 0.0f) { _6531 = _6805 > 0.0f; } else { _6531 = false; } if (true ? _6531 : false) { float _6833 = _6805 / M_1_m0.ext[1u].w; e.attenuation = pow(max(M_1_m0.ext[2u].xyz, float3(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f)), float3(_6833, _6833, _6833)); } e.dispersion = M_1_m0.ext[2u].w; return e; } float3 f_schlick90(float3 f0, float3 f90, float vh) { return f0 + ((f90 - f0) * pow5(clamp(1.0f - vh, 0.0f, 1.0f))); } float3 ext_fresnel(ExtCtx e, float vh) { return lerp(f_schlick90(e.f0, e.f90, vh), e.irid_f, float3(e.iridescence, e.iridescence, e.iridescence)); } float d_ggx_aniso(float nh, float th, float bh, float at, float ab) { float _6006 = at * ab; float3 _6010 = float3(ab * th, at * bh, _6006 * nh); float _6012 = _6006 / dot(_6010, _6010); return ((_6006 * _6012) * _6012) / 3.1415927410125732421875f; } float v_ggx_aniso(float nl, float nv, float bv, float tv, float tl, float bl, float at, float ab) { return clamp(0.5f / max((nl * length(float3(at * tv, ab * bv, nv))) + (nv * length(float3(at * tl, ab * bl, nl))), 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f); } float d_ggx(float nh, float a2) { float _1261 = ((nh * nh) * (a2 - 1.0f)) + 1.0f; return a2 / ((3.1415927410125732421875f * _1261) * _1261); } float v_smith(float nl, float nv, float a2) { return 0.5f / max((nl * sqrt(((nv * nv) * (1.0f - a2)) + a2)) + (nv * sqrt(((nl * nl) * (1.0f - a2)) + a2)), 9.9999997473787516355514526367188e-05f); } float max3(float3 c) { return max(c.x, max(c.y, c.z)); } float sheen_albedo(float nv, float roughness) { float _6245 = clamp(sqrt(clamp(nv, 0.0f, 1.0f)), 0.0f, 1.0f) * 15.0f; float _6249 = clamp((roughness - 0.070000000298023223876953125f) / 0.930000007152557373046875f, 0.0f, 1.0f) * 7.0f; int _6253 = min(int(clamp(floor(_6245), -2147483648.0f, 2147483520.0f)), 14); int _6257 = min(int(clamp(floor(_6249), -2147483648.0f, 2147483520.0f)), 6); float _6259 = _6245 - float(_6253); return lerp(lerp(_6233[min(uint((_6257 * 16) + _6253), 127u)], _6233[min(uint(((_6257 * 16) + _6253) + 1), 127u)], _6259), lerp(_6233[min(uint(((_6257 + 1) * 16) + _6253), 127u)], _6233[min(uint((((_6257 + 1) * 16) + _6253) + 1), 127u)], _6259), _6249 - float(_6257)); } float d_charlie(float alpha_g, float nh) { float _6049 = 1.0f / alpha_g; return ((2.0f + _6049) * pow(max(max(1.0f - (nh * nh), 0.0f), 1.0000000116860974230803549289703e-07f), _6049 * 0.5f)) / 6.283185482025146484375f; } float charlie_l(float x, float alpha_g) { float _6076 = (1.0f - alpha_g) * (1.0f - alpha_g); return ((lerp(21.5473003387451171875f, 25.3244991302490234375f, _6076) / (1.0f + (lerp(3.8298699855804443359375f, 3.3243501186370849609375f, _6076) * pow(max(x, 9.9999999747524270787835121154785e-07f), lerp(0.1982299983501434326171875f, 0.1680099964141845703125f, _6076))))) + (lerp(-1.97759997844696044921875f, -1.27392995357513427734375f, _6076) * x)) + lerp(-4.320539951324462890625f, -4.859670162200927734375f, _6076); } float lambda_sheen(float cos_theta, float alpha_g) { if (abs(cos_theta) < 0.5f) { return exp(charlie_l(cos_theta, alpha_g)); } return exp((2.0f * charlie_l(0.5f, alpha_g)) - charlie_l(1.0f - cos_theta, alpha_g)); } float v_charlie(float nl, float nv, float alpha_g) { return clamp(1.0f / (((1.0f + lambda_sheen(nv, alpha_g)) + lambda_sheen(nl, alpha_g)) * ((4.0f * nv) * nl)), 0.0f, 1.0f); } float3 ext_light(ExtCtx e, float3 l, float3 radiance, float spec, bool godot) { float3 c = float3(0.0f, 0.0f, 0.0f); float3 specular = float3(0.0f, 0.0f, 0.0f); float3 diffuse = float3(0.0f, 0.0f, 0.0f); float3 f = float3(0.0f, 0.0f, 0.0f); float dv = 0.0f; float _6873 = dot(e.n, l); float _6874 = max(_6873, 0.0f); float3 _6877 = normalize(l + e.v); float _6880 = max(dot(e.n, _6877), 0.0f); float _6883 = max(dot(e.v, _6877), 0.0f); if (_6874 > 0.0f) { f = ext_fresnel(e, _6883); if (true ? (e.aniso > 0.0f) : false) { float _6899 = lerp(e.alpha, 1.0f, e.aniso * e.aniso); dv = d_ggx_aniso(_6880, dot(e.aniso_t, _6877), dot(e.aniso_b, _6877), _6899, e.alpha) * v_ggx_aniso(_6874, e.nv, dot(e.aniso_b, e.v), dot(e.aniso_t, e.v), dot(e.aniso_t, l), dot(e.aniso_b, l), _6899, e.alpha); } else { dv = d_ggx(_6880, e.a2) * v_smith(_6874, e.nv, e.a2); } specular = ((f * dv) * _6874) * (godot ? spec : 1.0f); } float3 _6933 = ((float3(1.0f, 1.0f, 1.0f) - f) * e.diffuse) / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f); float3 _6935 = e.diffuse / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f); bool3 _6937 = bool3(godot, godot, godot); diffuse = float3(_6937.x ? _6935.x : _6933.x, _6937.y ? _6935.y : _6933.y, _6937.z ? _6935.z : _6933.z) * _6874; if (true ? (e.dt > 0.0f) : false) { diffuse = lerp(diffuse, ((e.dt_color * (1.0f - e.metallic)) / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * max(-dot(e.n_geo, l), 0.0f), float3(e.dt, e.dt, e.dt)); } if (true ? (e.transmission > 0.0f) : false) { float3 _6970 = normalize(l + ((e.n * 2.0f) * dot(-l, e.n))); float3 _6973 = normalize(_6970 + e.v); float _6976 = e.trans_alpha * e.trans_alpha; diffuse = lerp(diffuse, (((((float3(1.0f, 1.0f, 1.0f) - f_schlick90(e.f0, e.f90, clamp(dot(e.v, _6973), 0.0f, 1.0f))) * e.base) * d_ggx(clamp(dot(e.n, _6973), 0.0f, 1.0f), _6976)) * v_smith(clamp(dot(e.n, _6970), 0.0f, 1.0f), e.nv, _6976)) * e.attenuation) * (float(_6873 < 0.0f) * (1.0f - e.metallic)), float3(e.transmission, e.transmission, e.transmission)); } c = (diffuse + specular) * radiance; if (true ? (max3(e.sheen) > 0.0f) : false) { c *= (1.0f - (max3(e.sheen) * sheen_albedo(e.nv, e.sheen_roughness))); if (_6874 > 0.0f) { c += ((((e.sheen * d_charlie(e.sheen_alpha, _6880)) * v_charlie(_6874, e.nv, e.sheen_alpha)) * _6874) * radiance); } } if (true ? (e.clearcoat > 0.0f) : false) { float _7048 = max(dot(e.nc, e.v), 9.9999997473787516355514526367188e-05f); c *= (1.0f - (e.clearcoat * f_schlick90(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), float3(1.0f, 1.0f, 1.0f), _7048).x)); float _7057 = dot(e.nc, l); if (_7057 > 0.0f) { c += ((radiance * ((((e.clearcoat * f_schlick90(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), float3(1.0f, 1.0f, 1.0f), _6883).x) * d_ggx(max(dot(e.nc, _6877), 0.0f), e.cc_a2)) * v_smith(_7057, _7048, e.cc_a2)) * _7057)) * (godot ? spec : 1.0f)); } } return c; } float3 env(float up) { float3 c = float3(0.0f, 0.0f, 0.0f); float _1383 = clamp((up * 0.5f) + 0.5f, 0.0f, 1.0f); c = lerp(float3(0.2599999904632568359375f, 0.2199999988079071044921875f, 0.180000007152557373046875f), float3(0.4799999892711639404296875f, 0.579999983310699462890625f, 0.7799999713897705078125f), float3(_1383, _1383, _1383)); c += (float3(0.2199999988079071044921875f, 0.20999999344348907470703125f, 0.189999997615814208984375f) * exp((-abs(up)) * 4.0f)); return c; } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float3 sh_irradiance(float3 n) { float3 c = float3(0.0f, 0.0f, 0.0f); c = Sky_1_m0.sh[0u].xyz * 0.2820949852466583251953125f; c += (Sky_1_m0.sh[1u].xyz * (0.48860299587249755859375f * n.y)); c += (Sky_1_m0.sh[2u].xyz * (0.48860299587249755859375f * n.z)); c += (Sky_1_m0.sh[3u].xyz * (0.48860299587249755859375f * n.x)); c += (Sky_1_m0.sh[4u].xyz * ((1.09254801273345947265625f * n.x) * n.y)); c += (Sky_1_m0.sh[5u].xyz * ((1.09254801273345947265625f * n.y) * n.z)); c += (Sky_1_m0.sh[6u].xyz * (0.3153919875621795654296875f * (((3.0f * n.z) * n.z) - 1.0f))); c += (Sky_1_m0.sh[7u].xyz * ((1.09254801273345947265625f * n.x) * n.z)); c += (Sky_1_m0.sh[8u].xyz * (0.546274006366729736328125f * ((n.x * n.x) - (n.y * n.y)))); return max(c, float3(0.0f, 0.0f, 0.0f)); } float3 ext_irradiance(float3 n, bool lit_mode) { if (true ? (!lit_mode) : false) { return env(n.z) * 0.800000011920928955078125f; } if (true ? ((Sky_1_m0.flags.x & 8u) != 0u) : false) { if ((Sky_1_m0.flags.x & 16u) != 0u) { return lerp(Sky_1_m0.ambient.xyz, sh_irradiance(sky_dir(n)) * (Sky_1_m0.ibl.x * Sky_1_m0.sun.w), float3(Sky_1_m0.ambient.w, Sky_1_m0.ambient.w, Sky_1_m0.ambient.w)); } return Sky_1_m0.ambient.xyz; } if (true ? ((Lit_1_m0.counts.y & 2u) != 0u) : false) { float _7156 = clamp((dot(n, Lit_1_m0.up.xyz) * 0.5f) + 0.5f, 0.0f, 1.0f); return lerp((Lit_1_m0.ground_horizon.xyz + Lit_1_m0.ground_bottom.xyz) * 0.5f, (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f, float3(_7156, _7156, _7156)) * Lit_1_m0.ambient.w; } return Lit_1_m0.ambient.xyz; } float probe_weight(ProbeEntryU p, float3 world_1) { float3 _4294 = mul(float4(world_1, 1.0f), p.to_local).xyz; float _4310 = min(p.extents.xyz.x - abs(_4294.x), min(p.extents.xyz.y - abs(_4294.y), p.extents.xyz.z - abs(_4294.z))); if (_4310 < 0.0f) { return 0.0f; } if (!(p.extents.w > 0.0f)) { return 1.0f; } return min(_4310 / p.extents.w, 1.0f); } float3 probe_face_uv(float3 d) { bool _4138 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _4141 = abs(d); if (_4141.x >= _4141.y) { _4138 = _4141.x >= _4141.z; } else { _4138 = false; } if (_4138) { ma = _4141.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_4141.y >= _4141.z) { ma = _4141.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _4141.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 probe_texel(uint row, float3 fuv, uint level) { float _4227 = 0.5f / float(max((Probe_1_m0.counts.z >> level), 1u)); return t_probes.SampleLevel(s_probes, float2((fuv.x + clamp(fuv.y, _4227, 1.0f - _4227)) / 6.0f, (float(row) + clamp(fuv.z, _4227, 1.0f - _4227)) / 8.0f), float(level)).xyz; } float4 probe_ambient(float3 world_1, float3 n, uint probes) { float3 c = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; bool _4483 = false; float3 acc = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _4490 = min(Probe_1_m0.counts.x, 8u); uint _4494 = max(Probe_1_m0.counts.y, 1u) - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _4490)) { break; } uint _4516 = i; uint _4517 = min(_4516, 7u); if (!(((probes >> Probe_1_m0.probes[_4517].info.w) & 1u) == 0u)) { _4483 = Probe_1_m0.probes[_4517].info.y == 0u; } else { _4483 = true; } if (_4483) { uint _4560 = i; i = _4560 + 1u; continue; } float _4535 = probe_weight(Probe_1_m0.probes[_4517], world_1); if (_4535 <= 0.0f) { uint _4560 = i; i = _4560 + 1u; continue; } c = Probe_1_m0.probes[_4517].ambient.xyz; if (Probe_1_m0.probes[_4517].info.y == 1u) { c = probe_texel(Probe_1_m0.probes[_4517].info.w, probe_face_uv(mul(float4(n, 0.0f), Probe_1_m0.probes[_4517].to_local).xyz), _4494); } acc += (c * _4535); w_sum += _4535; uint _4560 = i; i = _4560 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float2 env_brdf_approx(float roughness, float nv) { float4 _2263 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * roughness) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f); return (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_2263.x * _2263.x, exp2((-9.27999973297119140625f) * nv)) * _2263.x) + _2263.y)) + _2263.zw; } float3 ext_env_weight(float3 f0, float3 f90, float roughness, float nv, float metallic, bool lit_mode) { bool _7290 = false; if (lit_mode) { _7290 = (Sky_1_m0.flags.x & 8u) != 0u; } else { _7290 = false; } if (true ? _7290 : false) { float2 _7304 = env_brdf_approx(roughness, nv); return (f0 * _7304.x) + ((f90 * _7304.y) * clamp(50.0f * f0.y, metallic, 1.0f)); } float3 _7321 = f0 + ((max(f90 * (1.0f - roughness), f0) - f0) * pow5(1.0f - nv)); if (true ? (!lit_mode) : false) { return _7321 * (1.0f - (0.5f * roughness)); } return _7321; } float3 radiance(float3 d, float roughness) { return t_radiance.SampleLevel(s_radiance, d, roughness * float(max(Sky_1_m0.flags.y, 1u) - 1u)).xyz; } float3 sky(float3 dir) { float _1571 = acos(clamp(dot(normalize(dir), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_1571 <= 1.57079637050628662109375f) { float _1581 = clamp(1.0f - pow(max(1.0f - (1.0f - (_1571 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_1581, _1581, _1581)); } float _1596 = clamp(1.0f - pow(max(1.0f - ((_1571 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_1596, _1596, _1596)); } float3 ext_radiance(float3 dir, float roughness, bool lit_mode) { if (true ? (!lit_mode) : false) { return lerp(env(dir.z), env(0.0f) * 0.85000002384185791015625f, float3(roughness, roughness, roughness)); } if (true ? ((Sky_1_m0.flags.x & 8u) != 0u) : false) { if ((Sky_1_m0.flags.x & 32u) != 0u) { return radiance(sky_dir(dir), roughness) * (Sky_1_m0.ibl.x * Sky_1_m0.sun.w); } if ((Sky_1_m0.flags.x & 64u) != 0u) { return float3(0.0f, 0.0f, 0.0f); } return Sky_1_m0.ambient.xyz; } if (true ? ((Lit_1_m0.counts.y & 2u) != 0u) : false) { return lerp(sky(dir), (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f, float3(roughness, roughness, roughness)) * Lit_1_m0.ambient.w; } return Lit_1_m0.ambient.xyz; } float probe_exit(float o, float d, float e) { if (d > 0.0f) { return (e - o) / d; } if (d < 0.0f) { return ((-e) - o) / d; } return 3.0000000054977557577780399428115e+38f; } float3 probe_lookup(ProbeEntryU p, float3 world_1, float3 dir) { float3 _4352 = mul(float4(dir, 0.0f), p.to_local).xyz; if ((p.info.x & 1u) == 0u) { return _4352; } float3 _4362 = mul(float4(world_1, 1.0f), p.to_local).xyz; return (_4362 + (_4352 * max(min(probe_exit(_4362.x, _4352.x, p.extents.xyz.x), min(probe_exit(_4362.y, _4352.y, p.extents.xyz.y), probe_exit(_4362.z, _4352.z, p.extents.xyz.z))), 0.0f))) - p.offset.xyz; } float3 probe_sample(uint row, float3 d, float lod) { bool _4254 = false; uint _4259 = max(Probe_1_m0.counts.y, 1u); float _4262 = clamp(lod, 0.0f, float(_4259 - 1u)); uint _4264 = uint(clamp(_4262, 0.0f, 4294967040.0f)); float _4266 = _4262 - float(_4264); float3 _4267 = probe_face_uv(d); float3 _4268 = probe_texel(row, _4267, _4264); if (!(_4266 <= 0.0f)) { _4254 = (_4264 + 1u) >= _4259; } else { _4254 = true; } if (_4254) { return _4268; } return (_4268 * (1.0f - _4266)) + (probe_texel(row, _4267, _4264 + 1u) * _4266); } float4 probe_reflection(float3 world_1, float3 r, float roughness, uint probes) { float3 acc = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _4401 = min(Probe_1_m0.counts.x, 8u); float _4407 = roughness * float(max(Probe_1_m0.counts.y, 1u) - 1u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _4401)) { break; } uint _4430 = i; uint _4432 = min(_4430, 7u); if (((probes >> Probe_1_m0.probes[_4432].info.w) & 1u) == 0u) { uint _4458 = i; i = _4458 + 1u; continue; } float _4442 = probe_weight(Probe_1_m0.probes[_4432], world_1); if (_4442 <= 0.0f) { uint _4458 = i; i = _4458 + 1u; continue; } acc += ((probe_sample(Probe_1_m0.probes[_4432].info.w, probe_lookup(Probe_1_m0.probes[_4432], world_1, r), _4407) * Probe_1_m0.probes[_4432].offset.w) * _4442); w_sum += _4442; uint _4458 = i; i = _4458 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float3 ext_probe_radiance(ExtCtx e, float3 dir, float roughness, bool lit_mode) { bool _7255 = false; float3 _7258 = ext_radiance(dir, roughness, lit_mode); if (!(!lit_mode)) { _7255 = Probe_1_m0.counts.x == 0u; } else { _7255 = true; } if (true ? _7255 : true) { return _7258; } float4 _7274 = probe_reflection(e.world, dir, roughness, O_1_m0.extra.z); return (_7258 * (1.0f - _7274.w)) + _7274.xyz; } float3 screen_texel(float2 uv_1, float rough) { return t_screen.SampleLevel(s_radiance, uv_1, min(log2(max(G_1_m0.viewport.x, 1.0f)) * max(rough, 0.0f), float(max(Lit_1_m0.dirs.w, 1u)) - 1.0f)).xyz; } float2 screen_uv_of(float3 p) { float4 _7338 = mul(float4(p, 1.0f), G_1_m0.view_proj); float _7343 = (_7338.w > 9.9999999747524270787835121154785e-07f) ? _7338.w : 9.9999999747524270787835121154785e-07f; float2 _7345 = _7338.xy / float2(_7343, _7343); return float2((_7345.x * 0.5f) + 0.5f, 0.5f - (_7345.y * 0.5f)); } float2 screen_exit_uv(ExtCtx e, float ior) { return screen_uv_of(e.world + (refract(-e.v, e.n, 1.0f / ior) * e.thickness)); } float3 ext_screen_refracted(ExtCtx e, float rough) { if (e.thin) { float3 _7415 = normalize(mul(float4(e.n, 0.0f), G_1_m0.view).xyz); return screen_texel((e.frag * G_1_m0.viewport.zw) + (float2(-_7415.x, _7415.y) * M_1_m0.factors.z), rough) * e.attenuation; } if (true ? (e.dispersion > 0.0f) : false) { float _7441 = ((e.ior - 1.0f) * 0.02500000037252902984619140625f) * e.dispersion; return float3(screen_texel(screen_exit_uv(e, max(e.ior - _7441, 1.0f)), rough).x, screen_texel(screen_exit_uv(e, e.ior), rough).y, screen_texel(screen_exit_uv(e, e.ior + _7441), rough).z) * e.attenuation; } return screen_texel(screen_exit_uv(e, e.ior), rough) * e.attenuation; } float3 ext_refracted(ExtCtx e, bool lit_mode) { bool _7477 = false; bool _7479 = false; float _7483 = sqrt(e.trans_alpha); if (lit_mode) { _7477 = (Lit_1_m0.counts.y & 16u) != 0u; } else { _7477 = false; } if (_7477) { _7479 = Lit_1_m0.dirs.w > 0u; } else { _7479 = false; } if (true ? _7479 : false) { return ext_screen_refracted(e, _7483); } if (e.thin) { return ext_radiance(-e.v, _7483, lit_mode) * e.attenuation; } if (true ? (e.dispersion > 0.0f) : false) { float _7520 = ((e.ior - 1.0f) * 0.02500000037252902984619140625f) * e.dispersion; float3 _7527 = float3(max(e.ior - _7520, 1.0f), e.ior, e.ior + _7520); return float3(ext_radiance(refract(-e.v, e.n, 1.0f / _7527.x), _7483, lit_mode).x, ext_radiance(refract(-e.v, e.n, 1.0f / _7527.y), _7483, lit_mode).y, ext_radiance(refract(-e.v, e.n, 1.0f / _7527.z), _7483, lit_mode).z) * e.attenuation; } return ext_radiance(refract(-e.v, e.n, 1.0f / e.ior), _7483, lit_mode) * e.attenuation; } float3 ext_ambient(ExtCtx e, bool lit_mode, float4 gi) { float3 bent = float3(0.0f, 0.0f, 0.0f); bool _7587 = false; float3 diffuse = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); bool _7589 = false; bool _7583 = false; float3 r = float3(0.0f, 0.0f, 0.0f); bool _7585 = false; diffuse = e.diffuse * ext_irradiance(e.n, lit_mode); if (lit_mode) { _7583 = (Sky_1_m0.flags.x & 8u) == 0u; } else { _7583 = false; } if (_7583) { _7585 = (Lit_1_m0.counts.y & 2u) == 0u; } else { _7585 = false; } if (true ? _7585 : false) { diffuse = Lit_1_m0.ambient.xyz * e.diffuse; } if (lit_mode) { _7587 = Probe_1_m0.counts.x > 0u; } else { _7587 = false; } if (_7587) { _7589 = gi.w <= 0.0f; } else { _7589 = false; } if (true ? _7589 : false) { float4 _7647 = probe_ambient(e.world, e.n, O_1_m0.extra.z); diffuse = (diffuse * (1.0f - _7647.w)) + (e.diffuse * _7647.xyz); } if (gi.w > 0.0f) { diffuse = e.diffuse * gi.xyz; } if (true ? (e.dt > 0.0f) : false) { diffuse = lerp(diffuse, (e.dt_color * (1.0f - e.metallic)) * ext_irradiance(-e.n_geo, lit_mode), float3(e.dt, e.dt, e.dt)); } r = reflect(-e.v, e.n); if (true ? (e.aniso > 0.0f) : false) { bent = normalize(cross(cross(e.aniso_b, e.v), e.aniso_b)); float _7700 = pow(1.0f - (e.aniso * (1.0f - e.roughness)), 4.0f); bent = normalize(lerp(bent, e.n, float3(_7700, _7700, _7700))); float _7713 = e.roughness * e.roughness; r = normalize(lerp(reflect(-e.v, bent), bent, float3(_7713, _7713, _7713))); } float3 _7728 = ext_env_weight(lerp(e.f0, e.irid_f, float3(e.iridescence, e.iridescence, e.iridescence)), lerp(e.f90, float3(1.0f, 1.0f, 1.0f), float3(e.iridescence, e.iridescence, e.iridescence)), e.roughness, e.nv, e.metallic, lit_mode); if (true ? (e.transmission > 0.0f) : false) { diffuse = lerp(diffuse, (((float3(1.0f, 1.0f, 1.0f) - _7728) * e.base) * ext_refracted(e, lit_mode)) * (1.0f - e.metallic), float3(e.transmission, e.transmission, e.transmission)); } c = diffuse + (ext_probe_radiance(e, r, e.roughness, lit_mode) * _7728); if (true ? (max3(e.sheen) > 0.0f) : false) { float _7759 = sheen_albedo(e.nv, e.sheen_roughness); c = (c * (1.0f - (max3(e.sheen) * _7759))) + ((e.sheen * ext_irradiance(e.n, lit_mode)) * _7759); } if (true ? (e.clearcoat > 0.0f) : false) { float _7780 = max(dot(e.nc, e.v), 9.9999997473787516355514526367188e-05f); c = (c * (1.0f - (e.clearcoat * f_schlick90(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), float3(1.0f, 1.0f, 1.0f), _7780).x))) + ((ext_probe_radiance(e, reflect(-e.v, e.nc), e.cc_roughness, lit_mode) * e.clearcoat) * ext_env_weight(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), float3(1.0f, 1.0f, 1.0f), e.cc_roughness, _7780, 0.0f, lit_mode)); } return c; } uint object_light_count() { return min(O_1_m0.lights.z, 8u); } uint object_light(uint k) { return min(((((k < 4u) ? O_1_m0.lights.x : O_1_m0.lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float shadow_factor(uint i, float3 world_1, float3 n_geo, float3 l) { int dy = -1; bool _3788 = false; uint part = 0u; bool _3790 = false; uint c = 0u; float vis = 0.0f; bool _3786 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint _3798 = min(i, 63u); uint _3808 = min(Lit_1_m0.lights[min(i, 63u)].info.w, 15u); uint _3811 = min(_3808, 15u); uint _3814 = min(_3808, 15u); uint _3820 = max(Shadow_1_m0.lights[min(_3808, 15u)].info.y, 1u); float _3826 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; if (Lit_1_m0.lights[_3798].info.x == 0u) { if (_3826 > Shadow_1_m0.lights[min(_3808, 15u)].fade.y) { return 1.0f; } part = _3820 - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(c < _3820)) { break; } if (_3826 <= Shadow_1_m0.lights[min(_3808, 15u)].splits[min(c, 3u)]) { part = c; break; } c++; continue; } } uint _3870 = part; uint _3876 = min(min((Shadow_1_m0.lights[_3814].info.x + min(_3870, (_3820 - 1u))), 15u), 15u); float _3883 = Shadow_1_m0.tiles[_3876].texel.x + (Shadow_1_m0.tiles[_3876].texel.y * distance(world_1, Lit_1_m0.lights[min(i, 63u)].position.xyz)); float3 _3894 = (world_1 + (n_geo * ((Shadow_1_m0.lights[_3811].params.y * max(Shadow_1_m0.lights[_3811].params.z, 1.0f)) * _3883))) + (l * (Shadow_1_m0.lights[_3811].params.x * _3883)); if (Lit_1_m0.lights[_3798].info.x == 1u) { float3 _3898 = _3894 - Lit_1_m0.lights[min(i, 63u)].position.xyz; float3 _3899 = abs(_3898); if (_3899.x >= _3899.y) { _3786 = _3899.x >= _3899.z; } else { _3786 = false; } if (_3786) { part = (_3898.x >= 0.0f) ? 0u : 1u; } else { if (_3899.y >= _3899.z) { part = (_3898.y >= 0.0f) ? 2u : 3u; } else { part = (_3898.z >= 0.0f) ? 4u : 5u; } } } uint _3932 = min((Shadow_1_m0.lights[_3814].info.x + min(part, (_3820 - 1u))), 15u); float4 _3937 = mul(float4(_3894, 1.0f), Shadow_1_m0.tiles[min(_3932, 15u)].view_proj); if (_3937.w <= 0.0f) { return 1.0f; } float3 _3945 = _3937.xyz / float3(_3937.www); if (!(abs(_3945.x) > 1.0f)) { _3788 = abs(_3945.y) > 1.0f; } else { _3788 = true; } if (!_3788) { _3790 = _3945.z > 1.0f; } else { _3790 = true; } if (_3790) { return 1.0f; } uint _3966 = min(_3932, 15u); float2 _3979 = Shadow_1_m0.tiles[_3966].rect.xy + (float2((_3945.x * 0.5f) + 0.5f, 0.5f - (_3945.y * 0.5f)) * Shadow_1_m0.tiles[_3966].rect.zw); float _3983 = 0.5f * Shadow_1_m0.atlas.x; float2 _3985 = Shadow_1_m0.tiles[_3966].rect.xy + float2(_3983, _3983); float _3989 = 0.5f * Shadow_1_m0.atlas.x; float2 _3991 = (Shadow_1_m0.tiles[_3966].rect.xy + Shadow_1_m0.tiles[_3966].rect.zw) - float2(_3989, _3989); if (Shadow_1_m0.lights[_3811].params.z <= 0.0f) { vis = t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3979, _3985, _3991), _3945.z); } else { float _4002 = Shadow_1_m0.lights[_3811].params.z * Shadow_1_m0.atlas.x; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(dx <= 1)) { break; } vis += t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3979 + (float2(float(dx), float(dy)) * _4002), _3985, _3991), _3945.z); dx++; continue; } dy++; continue; } vis /= 9.0f; } if (Lit_1_m0.lights[_3798].info.x == 0u) { uint _4067 = min(_3808, 15u); vis = lerp(vis, 1.0f, smoothstep(Shadow_1_m0.lights[_4067].fade.x, Shadow_1_m0.lights[_4067].fade.y, _3826)); } return lerp(1.0f, vis, Shadow_1_m0.lights[_3811].params.w); } float3 probe_light(float3 n) { return max(float3(O_1_m0.gi[0u].x + dot(O_1_m0.gi[0u].yzw, n), O_1_m0.gi[1u].x + dot(O_1_m0.gi[1u].yzw, n), O_1_m0.gi[2u].x + dot(O_1_m0.gi[2u].yzw, n)), float3(0.0f, 0.0f, 0.0f)); } float4 gi_diffuse(float3 n, bool baked, float3 baked_light) { if (baked) { return float4(baked_light, 1.0f); } if (true ? ((O_1_m0.extra.x & 8u) != 0u) : false) { return float4(probe_light(n), 1.0f); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float3 ext_shade_with(VsOutExt _in, bool front, ExtSamples s, bool lit_mode, bool baked, float3 baked_light) { float3 rad = float3(0.0f, 0.0f, 0.0f); bool _7838 = false; bool _7834 = false; bool _7846 = false; float3 l = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); float atten = 0.0f; uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); if (lit_mode) { _7834 = O_1_m0.decals.z > 0u; } else { _7834 = false; } ExtCtx _7857 = ext_ctx(_in, front, s, true ? _7834 : false); if (true ? (!lit_mode) : false) { float3x3 _7872 = transpose(float3x3(G_1_m0.view[0u].xyz, G_1_m0.view[1u].xyz, G_1_m0.view[2u].xyz)); c += ext_light(_7857, normalize(mul(float3(-0.449999988079071044921875f, 0.550000011920928955078125f, 0.699999988079071044921875f), _7872)), float3(2.599999904632568359375f, 2.5220000743865966796875f, 2.3919999599456787109375f), 1.0f, false); c += ext_light(_7857, normalize(mul(float3(0.75f, 0.1500000059604644775390625f, 0.449999988079071044921875f), _7872)), float3(0.76499998569488525390625f, 0.809999942779541015625f, 0.89999997615814208984375f), 1.0f, false); c += ext_light(_7857, normalize(mul(float3(0.300000011920928955078125f, 0.550000011920928955078125f, -0.60000002384185791015625f), _7872)), float3(1.2999999523162841796875f, 1.2999999523162841796875f, 1.2999999523162841796875f), 1.0f, false); c += (ext_ambient(_7857, false, float4(0.0f, 0.0f, 0.0f, 0.0f)) * s.occlusion); c += s.emission; return c; } uint _7897 = object_light_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(true ? (k < _7897) : false)) { break; } uint _7921 = object_light(k); uint _7922 = min(_7921, 63u); if (baked) { _7838 = Lit_1_m0.lights[_7922].info.z == 1u; } else { _7838 = false; } if (_7838) { uint _8008 = k; k = _8008 + 1u; continue; } l = float3(0.0f, 0.0f, 0.0f); atten = 1.0f; if (Lit_1_m0.lights[_7922].info.x == 0u) { l = -Lit_1_m0.lights[_7922].direction.xyz; } else { float3 _7946 = Lit_1_m0.lights[_7922].position.xyz - _in.world; float _7947 = length(_7946); float _7948 = max(_7947, 9.9999999747524270787835121154785e-07f); l = _7946 / float3(_7948, _7948, _7948); atten = omni_attenuation(_7947, Lit_1_m0.lights[_7922].position.w, Lit_1_m0.lights[_7922].direction.w); if (Lit_1_m0.lights[_7922].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_7922].direction.xyz), Lit_1_m0.lights[_7922].spot.x)) / max(1.0f - Lit_1_m0.lights[_7922].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_7922].spot.y)); } } if (atten > 0.0f) { rad = Lit_1_m0.lights[_7922].color.xyz * atten; if (true ? (Lit_1_m0.lights[_7922].info.y == 1u) : false) { rad = Lit_1_m0.lights[_7922].color.xyz * (atten * shadow_factor(_7921, _in.world, _7857.n_geo, l)); } c += ext_light(_7857, l, rad, Lit_1_m0.lights[_7922].spot.z, true); } uint _8008 = k; k = _8008 + 1u; continue; } float3 _8012 = ext_ambient(_7857, true, gi_diffuse(_7857.n, baked, baked_light)); if ((Lit_1_m0.counts.y & 4u) != 0u) { _7846 = M_1_m0.flags.y != 2u; } else { _7846 = false; } if (true ? _7846 : false) { int _8033; spvTextureSize(t_ao, 0u, _8033); int _8035 = int(min(uint(0), uint(int(_8033) - 1))); uint _8036_dummy_parameter; float4 _8040 = t_ao.Load(int3(int2(min(uint2(int2(clamp(floor(_in.clip.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ao, uint(_8035), _8036_dummy_parameter)) - int2(1, 1)))), _8035)); float _8041 = _8040.x; c *= lerp(1.0f, min(_8041, _7857.occlusion), Lit_1_m0.tone.z * Lit_1_m0.tone.w); c += (_8012 * min(_7857.occlusion, _8041)); } else { c += (_8012 * _7857.occlusion); } c += _7857.emission; return c; } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _2284 = max(x, 0.0f) * max(x, 0.0f); float _2285 = _2284 * _2284; return _2285 * _2285; } float3 fog_sun_scatter(float3 fc, float3 dir) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _2303 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _2303)) { break; } uint _2326 = pool_sun(k); if (Lit_1_m0.lights[min(_2326, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_2326, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir, -Lit_1_m0.lights[min(_2326, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 surface_fog(float3 c, float3 world_1, float3 dir) { float amount = 0.0f; bool _2392 = false; float dist = 0.0f; float3 fc = float3(0.0f, 0.0f, 0.0f); float _2400 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; dist = distance(world_1, G_1_m0.camera_pos.xyz); if (Sky_1_m0.fog_origin.w > 0.5f) { dist = max(_2400 - Sky_1_m0.fog_origin.x, 0.0f); } if ((Sky_1_m0.flags.x & 256u) != 0u) { float _2426 = smoothstep(Sky_1_m0.fog_depth.x, Sky_1_m0.fog_depth.y, dist); amount = ((_2426 > 0.0f) ? pow(max(_2426, 9.9999999747524270787835121154785e-07f), Sky_1_m0.fog_depth.z) : 0.0f) * Sky_1_m0.fog.x; } else { amount = 1.0f - exp(min(0.0f, (-dist) * Sky_1_m0.fog.x)); } if (abs(Sky_1_m0.fog.w) >= 9.9999997473787516355514526367188e-05f) { amount = max(amount, 1.0f - exp(min(0.0f, (dot(world_1, Lit_1_m0.up.xyz) - Sky_1_m0.fog.z) * Sky_1_m0.fog.w))); } amount = clamp(amount, 0.0f, 1.0f); fc = Sky_1_m0.fog_color.xyz; if ((Sky_1_m0.flags.x & 8u) != 0u) { _2392 = Sky_1_m0.fog_depth.w > 0.0f; } else { _2392 = false; } if (true ? _2392 : false) { fc = lerp(fc, radiance(sky_dir(dir), lerp(1.0f / float(max(Sky_1_m0.flags.y, 2u) - 1u), 1.0f, 1.0f - clamp((_2400 - Sky_1_m0.fog_origin.y) / max(Sky_1_m0.fog_origin.z - Sky_1_m0.fog_origin.y, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f))) * Sky_1_m0.sun.w, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)); } fc = fog_sun_scatter(fc, dir); return lerp(c, fc, float3(amount, amount, amount)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _2544 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _2548 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_2544 == 4u) { return float2(0.0f, _2548); } float3 _2557 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _2558 = abs(d); bool3 _2559 = bool3(_2558.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _2558.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _2558.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _2560 = float3(_2559.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _2559.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _2559.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _2563 = ((-_2557) - o) / _2560; float3 _2565 = (_2557 - o) / _2560; float3 _2566 = min(_2563, _2565); float3 _2567 = max(_2563, _2565); r = float2(max(0.0f, _2566.y), min(_2548, _2567.y)); if (_2544 == 3u) { r = float2(max(max(r.x, _2566.x), _2566.z), min(min(r.y, _2567.x), _2567.z)); } else { if (_2544 == 0u) { a = dot(d / _2557, d / _2557); b = dot(o / _2557, d / _2557); c = dot(o / _2557, o / _2557) - 1.0f; } else { float _2606 = min(_2557.x, _2557.z); float _2611 = (_2544 == 1u) ? (_2606 / (2.0f * _2557.y)) : 0.0f; float _2614 = _2557.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_2611 * _2611) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_2611 * _2611) * _2614) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_2544 == 1u) ? (((_2611 * _2611) * _2614) * _2614) : (_2606 * _2606)); } } float _2660 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_2660 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _2724 = min(((-b) - sqrt(_2660)) / a, ((-b) + sqrt(_2660)) / a); float _2737 = max(((-b) - sqrt(_2660)) / a, ((-b) + sqrt(_2660)) / a); if (a > 0.0f) { r = float2(max(r.x, _2724), min(r.y, _2737)); } else { if (r.x < min(r.y, _2724)) { r.y = min(r.y, _2724); } else { r.x = max(r.x, _2737); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _2781 = min(k, 15u); rho = Fog_1_m0.entries[_2781].material.x * min(exp2((-Fog_1_m0.entries[_2781].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2781].material.w)), 1.0f); if (Fog_1_m0.entries[_2781].material.z > 0.0f) { uint _2808 = uint(clamp(Fog_1_m0.entries[_2781].albedo.w, 0.0f, 4294967040.0f)); float3 _2811 = Fog_1_m0.entries[_2781].size.xyz * 0.5f; float _2814 = min(_2811.x, _2811.z); if (_2808 == 0u) { float _2820 = length(lp / _2811); sdf = (_2820 * (_2820 - 1.0f)) / max(length(lp / (_2811 * _2811)), 9.9999999600419720025001879548654e-13f); } else { if (_2808 == 3u) { float3 _2833 = abs(lp) - _2811; sdf = length(max(_2833, float3(0.0f, 0.0f, 0.0f))) + min(max(_2833.x, max(_2833.y, _2833.z)), 0.0f); } else { if (_2808 == 2u) { float2 _2854 = float2(length(lp.xz) - _2814, abs(lp.y) - _2811.y); sdf = min(max(_2854.x, _2854.y), 0.0f) + length(max(_2854, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _2814 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _2811.y))), float2(length(lp.xz), lp.y - _2811.y)), (-_2811.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_2781].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_2781].material.z); } return rho; } float3 fog_light(uint n, float3 p, float3 dir) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _3015 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_3015].lights.z, 8u))) { break; } uint _3051 = min(((((k < 4u) ? Fog_1_m0.entries[_3015].lights.x : Fog_1_m0.entries[_3015].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _3052 = min(_3051, 63u); l = -Lit_1_m0.lights[_3052].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_3052].info.x != 0u) { float3 _3065 = Lit_1_m0.lights[_3052].position.xyz - p; float _3067 = max(length(_3065), 9.9999999747524270787835121154785e-07f); l = _3065 / float3(_3067, _3067, _3067); atten = omni_attenuation(length(_3065), Lit_1_m0.lights[_3052].position.w, Lit_1_m0.lights[_3052].direction.w); if (Lit_1_m0.lights[_3052].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_3052].direction.xyz), Lit_1_m0.lights[_3052].spot.x)) / max(1.0f - Lit_1_m0.lights[_3052].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_3052].spot.y)); } } float _3108 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir, l)); sum += (Lit_1_m0.lights[_3052].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _3108) * sqrt(_3108))) * Fog_1_m0.light_fog[min((_3051 >> 2u), 15u)][min((_3051 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _2906 = min(k, 15u); if ((Fog_1_m0.entries[_2906].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_2906].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_2906].material.y) * a), 1.0f); } float _2924 = clamp((-a) / b, t0, t1); float _2926 = (b > 0.0f) ? _2924 : t0; float _2928 = (b > 0.0f) ? t1 : _2924; float _2933 = ((Fog_1_m0.entries[_2906].material.y * abs(b)) * (_2928 - _2926)) * 0.693147182464599609375f; return Fog_1_m0.entries[_2906].material.x * (((t1 - t0) - (_2928 - _2926)) + ((min(exp2((-Fog_1_m0.entries[_2906].material.y) * max(a + (b * ((b > 0.0f) ? _2926 : _2928)), 0.0f)), 1.0f) * (_2928 - _2926)) * ((_2933 < 0.00999999977648258209228515625f) ? (1.0f - (_2933 * (0.5f - (_2933 * (0.16666667163372039794921875f - (_2933 / 24.0f)))))) : ((1.0f - exp(-_2933)) / _2933)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _3151 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _3153 = false; float tau = 0.0f; bool _3144 = false; uint i = 0u; bool _3146 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3156 = min(k, 15u); float3 _3162 = mul(float4(o, 1.0f), Fog_1_m0.entries[_3156].to_local).xyz; float3 _3166 = mul(float4(d, 0.0f), Fog_1_m0.entries[_3156].to_local).xyz; float _3173 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_3156].material.w; float _3177 = dot(d, Fog_1_m0.up.xyz); bool _3180 = Fog_1_m0.entries[_3156].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_3156].material.y > 0.0f) { _3144 = ((-_3173) / _3177) > ch.x; } else { _3144 = false; } if (_3144) { _3146 = ((-_3173) / _3177) < ch.y; } else { _3146 = false; } if (_3146) { split = (-_3173) / _3177; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_3180 ? 12u : 4u))) { break; } uint _3231 = i & 3u; if (!(_3231 == 0u)) { _3151 = _3231 == 3u; } else { _3151 = true; } float _3239 = _3151 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_3231 == 0u)) { _3153 = _3231 == 3u; } else { _3153 = true; } float _3247 = _3153 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _3250 = float2(split, ch.y); float2 _3253 = float2(ch.x, split); bool _3255 = i < 8u; bool2 _3257 = bool2(_3255, _3255); float2 _3256 = float2(_3257.x ? _3253.x : _3250.x, _3257.y ? _3253.y : _3250.y); bool _3259 = i < 4u; bool2 _3261 = bool2(_3259, _3259); float2 _3260 = float2(_3261.x ? ch.x : _3256.x, _3261.y ? ch.y : _3256.y); float _3265 = (_3260.y - _3260.x) * 0.5f; float _3274 = ((_3260.x + _3260.y) * 0.5f) + (_3265 * ((_3231 < 2u) ? (-_3239) : _3239)); float3 _3276 = o + (d * _3274); float _3279 = fog_density(k, _3276, _3162 + (_3166 * _3274)); if (i < 4u) { q += (((Fog_1_m0.entries[_3156].albedo.xyz * fog_light(k, _3276, d)) + Fog_1_m0.entries[_3156].emission.xyz) * ((_3247 * _3265) * clamp(_3279, 0.0f, 1.0f))); } else { tau += ((_3247 * _3265) * _3279); } i++; continue; } if (!_3180) { tau = fog_falloff_depth(k, _3173, _3177, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _3327; uint i_3 = 0u; uint n = 0u; bool _3333 = false; float2 chords[4] = _3330; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _3337; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _3350 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_3350 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _3380 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_3350) { _3333 = _3380 == 0u; } else { _3333 = false; } if (_3333) { break; } uint _3392 = _3350 ? i_2 : (min(_3380, 16u) - 1u); uint _3393 = min(_3392, 15u); float2 _3402 = fog_chord(_3392, mul(float4(o, 1.0f), Fog_1_m0.entries[_3393].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_3393].to_local).xyz, t_end); if (_3402.y > _3402.x) { at[min(m, 3u)] = _3392; chords[min(m, 3u)] = _3402; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _3558 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _3558)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _3678 = exp(-tau); return (c * _3678) + (q * ((1.0f - _3678) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 fog_volumes(float3 c, float3 world_1, uint list) { float3 _3714 = world_1 - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(world_1, 1.0f), G_1_m0.view).z); bool _3717 = G_1_m0.camera_pos.w > 0.5f; bool3 _3719 = bool3(_3717, _3717, _3717); float3 _3718 = float3(_3719.x ? _3714.x : G_1_m0.camera_pos.xyz.x, _3719.y ? _3714.y : G_1_m0.camera_pos.xyz.y, _3719.z ? _3714.z : G_1_m0.camera_pos.xyz.z); float _3721 = length(world_1 - _3718); float _3723 = max(_3721, 9.9999999747524270787835121154785e-07f); float3 _3726 = fog_integrate(c, _3718, (world_1 - _3718) / float3(_3723, _3723, _3723), _3721, list); bool _3727 = _3721 > 0.0f; bool3 _3729 = bool3(_3727, _3727, _3727); return float3(_3729.x ? _3726.x : c.x, _3729.y ? _3726.y : c.y, _3729.z ? _3726.z : c.z); } float3 ext_lit_finish(float3 c_in, float3 world_1) { float3 c = float3(0.0f, 0.0f, 0.0f); c = c_in; if (true ? ((Sky_1_m0.flags.x & 128u) != 0u) : false) { c = surface_fog(c, world_1, -ext_view(world_1)); } if (true ? (O_1_m0.decals.w != 0u) : false) { c = fog_volumes(c, world_1, O_1_m0.decals.w); } return tonemap(c); } float3 item_fade(float3 c) { if (true ? ((O_1_m0.extra.x & 64u) == 0u) : true) { return c; } return lerp(c, tonemap(O_1_m0.normal[3u].xyz), float3(O_1_m0.normal[3u].www)); } float3 emerge_tint(float3 c, float r) { bool _1946 = false; if (!((O_1_m0.extra.x & 32u) == 0u)) { _1946 = r >= 1.0f; } else { _1946 = true; } if (true ? _1946 : true) { return c; } float _1968 = smoothstep(0.0f, 1.0f, r); return lerp(tonemap(srgb_to_linear(spvUnpackUnorm4x8(O_1_m0.extra.w).xyz)), c, float3(_1968, _1968, _1968)); } float3 linear_to_srgb(float3 c) { float3 _340 = c * 12.9200000762939453125f; float3 _343 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _344 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_344.x ? _340.x : _343.x, _344.y ? _340.y : _343.y, _344.z ? _340.z : _343.z); } float4 target_color(float4 c) { float4 _355 = clamp(c, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if (G_1_m0.fparams.w > 0.5f) { return float4(linear_to_srgb(_355.xyz), _355.w); } return _355; } float4 lit_output(float4 c) { if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(c.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(c.w, 0.0f, 1.0f)); } return target_color(c); } void frag_main() { float alpha = 1.0f; bool _8239 = false; float3 c = float3(0.0f, 0.0f, 0.0f); bool _8237 = false; VsOutLm _8171 = { gl_FragCoord, world, normal, uv, flags, tangent, weight, color, uv1, uv_lm }; VsOutExt _8242 = lm_ext_in(_8171); ExtSamples _8246 = sample_ext(_8242); if (true ? ((_8171.flags & 2u) != 0u) : false) { discard; } float _8256 = emerge_reveal(_8171.world, _8171.clip.xy); if (true ? (_8256 <= 0.0f) : false) { discard; } float3 _8262 = lightmap_light(_8171.uv_lm); if (true ? (G_1_m0.params.x == 9u) : false) { c = tonemap(_8262); } else { if (ext_cut(_8246)) { discard; } if (true ? (M_1_m0.flags.y == 2u) : false) { alpha = _8246.base.w; } if (true ? ((M_1_m0.flags.w & 8u) != 0u) : false) { c = _8246.base.xyz; } else { c = ext_shade_with(_8242, gl_FrontFacing != mirrored(ext_base_in(_8242)), _8246, true, true, _8262); } c = ext_lit_finish(c, _8171.world); } if (O_1_m0.params.w == 1u) { _8237 = (G_1_m0.params.y & 1u) != 0u; } else { _8237 = false; } if (_8237) { _8239 = (_8171.flags & 1u) != 0u; } else { _8239 = false; } if (true ? _8239 : false) { c = lerp(c, srgb_to_linear(float3(1.0f, 0.6349999904632568359375f, 0.0f)), float3(0.4000000059604644775390625f, 0.4000000059604644775390625f, 0.4000000059604644775390625f)); } _8200 = lit_output(float4(emerge_tint(item_fade(c), _8256), alpha)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; color = stage_input.color; uv1 = stage_input.uv1; uv_lm = stage_input.uv_lm; frag_main(); SPIRV_Cross_Output stage_output; stage_output._8200 = _8200; return stage_output; } vs_surface_skinnedmain);struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _411[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const VsOutExt _1422 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1450 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1476 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1531 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _1898[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _2470 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const SkinRows _2515 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _2589 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Skin : register(b6) { SkinU Skin_1_m0 : packoffset(c0); }; static float4 gl_Position; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static uint4 joints; static float4 weights; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float weight_1; static float4 color; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; uint4 joints : TEXCOORD12; float4 weights : TEXCOORD13; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float weight_1 : TEXCOORD5; float4 color : TEXCOORD6; float4 gl_Position : SV_Position; }; float4 skin_row(uint k, uint r) { return Skin_1_m0.rows[min(((min(k, 254u) * 3u) + r), 764u)]; } SkinRows skin_rows(SkinIn s) { SkinRows m = _2515; m.r0 = (((skin_row(s.joints.x, 0u) * s.weights.x) + (skin_row(s.joints.y, 0u) * s.weights.y)) + (skin_row(s.joints.z, 0u) * s.weights.z)) + (skin_row(s.joints.w, 0u) * s.weights.w); m.r1 = (((skin_row(s.joints.x, 1u) * s.weights.x) + (skin_row(s.joints.y, 1u) * s.weights.y)) + (skin_row(s.joints.z, 1u) * s.weights.z)) + (skin_row(s.joints.w, 1u) * s.weights.w); m.r2 = (((skin_row(s.joints.x, 2u) * s.weights.x) + (skin_row(s.joints.y, 2u) * s.weights.y)) + (skin_row(s.joints.z, 2u) * s.weights.z)) + (skin_row(s.joints.w, 2u) * s.weights.w); return m; } VsOut skinned_vertex(VsIn _in, SkinIn s) { VsOut _out = _2589; SkinRows _2591 = skin_rows(s); float4 _2593 = float4(_in.pos, 1.0f); float4 _2600 = float4(dot(_2591.r0, _2593), dot(_2591.r1, _2593), dot(_2591.r2, _2593), 1.0f); float3 _2607 = float3(_2591.r0.x, _2591.r1.x, _2591.r2.x); float3 _2614 = float3(_2591.r0.y, _2591.r1.y, _2591.r2.y); float3 _2621 = float3(_2591.r0.z, _2591.r1.z, _2591.r2.z); bool _2624 = dot(_2607, cross(_2614, _2621)) < 0.0f; _out.clip = mul(_2600, G_1_m0.view_proj); _out.world = _2600.xyz; _out.normal = normalize(mul(_in.normal, float3x3(cross(_2614, _2621), cross(_2621, _2607), cross(_2607, _2614))) * (_2624 ? (-1.0f) : 1.0f)); _out.uv = _in.uv; _out.flags = _in.flags | (_2624 ? 128u : 0u); _out.tangent = float4(normalize(mul(_in.tangent.xyz, float3x3(_2607, _2614, _2621))), _in.tangent.w * ((((O_1_m0.extra.x & 2u) != 0u) != _2624) ? (-1.0f) : 1.0f)); _out.weight = _in.weight; _out.color = float4(1.0f, 1.0f, 1.0f, 1.0f); return _out; } void vert_main() { VsIn _2668 = { pos, normal, uv, flags, tangent, weight }; SkinIn _2686 = { joints, weights }; VsOut _2711 = skinned_vertex(_2668, _2686); gl_Position = _2711.clip; world = _2711.world; normal_1 = _2711.normal; uv_1 = _2711.uv; flags_1 = _2711.flags; tangent_1 = _2711.tangent; weight_1 = _2711.weight; color = _2711.color; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; joints = stage_input.joints; weights = stage_input.weights; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.weight_1 = weight_1; stage_output.color = color; return stage_output; } vs_surface_ext_skinnedmain=struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float3 _411[5] = { float3(0.0f, 0.0f, 1.0f), float3(0.0f, 1.0f, 1.0f), float3(0.0f, 1.0f, 0.0f), float3(1.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f) }; static const VsOutExt _1422 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _1450 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1476 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _1531 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _1898[128] = { 1.0f, 1.0f, 1.0f, 1.0f, 0.721700012683868408203125f, 0.33700001239776611328125f, 0.1290999948978424072265625f, 0.038199998438358306884765625f, 0.008000000379979610443115234375f, 0.0010999999940395355224609375f, 9.9999997473787516355514526367188e-05f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.87699997425079345703125f, 0.687900006771087646484375f, 0.51800000667572021484375f, 0.3738000094890594482421875f, 0.2565000057220458984375f, 0.16570000350475311279296875f, 0.099100001156330108642578125f, 0.0537000000476837158203125f, 0.02539999969303607940673828125f, 0.00999999977648258209228515625f, 0.00289999996311962604522705078125f, 0.0005000000237487256526947021484375f, 0.0f, 0.863900005817413330078125f, 0.863900005817413330078125f, 0.827799975872039794921875f, 0.72689998149871826171875f, 0.617600023746490478515625f, 0.51289999485015869140625f, 0.4169000089168548583984375f, 0.330799996852874755859375f, 0.25499999523162841796875f, 0.1895000040531158447265625f, 0.13439999520778656005859375f, 0.08969999849796295166015625f, 0.0555000007152557373046875f, 0.030400000512599945068359375f, 0.0130000002682209014892578125f, 0.00260000000707805156707763671875f, 0.8025000095367431640625f, 0.8025000095367431640625f, 0.77880001068115234375f, 0.70389997959136962890625f, 0.61930000782012939453125f, 0.53649997711181640625f, 0.4586000144481658935546875f, 0.3864000141620635986328125f, 0.3199000060558319091796875f, 0.258899986743927001953125f, 0.2035000026226043701171875f, 0.154100000858306884765625f, 0.112300001084804534912109375f, 0.076499998569488525390625f, 0.0458999983966350555419921875f, 0.02009999938309192657470703125f, 0.827199995517730712890625f, 0.827199995517730712890625f, 0.807799994945526123046875f, 0.7407000064849853515625f, 0.66320002079010009765625f, 0.58679997920989990234375f, 0.51450002193450927734375f, 0.4467999935150146484375f, 0.383300006389617919921875f, 0.323599994182586669921875f, 0.267599999904632568359375f, 0.21559999883174896240234375f, 0.169900000095367431640625f, 0.12860000133514404296875f, 0.090300001204013824462890625f, 0.05449999868869781494140625f, 0.888000011444091796875f, 0.888000011444091796875f, 0.86930000782012939453125f, 0.802100002765655517578125f, 0.7242000102996826171875f, 0.647599995136260986328125f, 0.5752999782562255859375f, 0.507499992847442626953125f, 0.443599998950958251953125f, 0.3831000030040740966796875f, 0.325500011444091796875f, 0.2712999880313873291015625f, 0.2229000031948089599609375f, 0.17859999835491180419921875f, 0.13650000095367431640625f, 0.09600000083446502685546875f, 0.9423999786376953125f, 0.9423999786376953125f, 0.923099994659423828125f, 0.853699982166290283203125f, 0.7736999988555908203125f, 0.69550001621246337890625f, 0.62220001220703125f, 0.553699970245361328125f, 0.4893000125885009765625f, 0.42809998989105224609375f, 0.369599997997283935546875f, 0.314300000667572021484375f, 0.26499998569488525390625f, 0.21960000693798065185546875f, 0.17630000412464141845703125f, 0.134700000286102294921875f, 0.940900027751922607421875f, 0.940900027751922607421875f, 0.922200024127960205078125f, 0.854700028896331787109375f, 0.777100026607513427734375f, 0.7016999721527099609375f, 0.631200015544891357421875f, 0.5655000209808349609375f, 0.503799974918365478515625f, 0.4451999962329864501953125f, 0.3890999853610992431640625f, 0.335900008678436279296875f, 0.2885999977588653564453125f, 0.24510000646114349365234375f, 0.20360000431537628173828125f, 0.1638000011444091796875f }; static const VsOutExt _2470 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const SkinRows _2515 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _2589 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Skin : register(b6) { SkinU Skin_1_m0 : packoffset(c0); }; static float4 gl_Position; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static uint4 joints; static float4 weights; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float weight_1; static float4 color; static float2 uv1_1; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint4 joints : TEXCOORD12; float4 weights : TEXCOORD13; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float weight_1 : TEXCOORD5; float4 color : TEXCOORD6; float2 uv1_1 : TEXCOORD7; float4 gl_Position : SV_Position; }; float4 skin_row(uint k, uint r) { return Skin_1_m0.rows[min(((min(k, 254u) * 3u) + r), 764u)]; } SkinRows skin_rows(SkinIn s) { SkinRows m = _2515; m.r0 = (((skin_row(s.joints.x, 0u) * s.weights.x) + (skin_row(s.joints.y, 0u) * s.weights.y)) + (skin_row(s.joints.z, 0u) * s.weights.z)) + (skin_row(s.joints.w, 0u) * s.weights.w); m.r1 = (((skin_row(s.joints.x, 1u) * s.weights.x) + (skin_row(s.joints.y, 1u) * s.weights.y)) + (skin_row(s.joints.z, 1u) * s.weights.z)) + (skin_row(s.joints.w, 1u) * s.weights.w); m.r2 = (((skin_row(s.joints.x, 2u) * s.weights.x) + (skin_row(s.joints.y, 2u) * s.weights.y)) + (skin_row(s.joints.z, 2u) * s.weights.z)) + (skin_row(s.joints.w, 2u) * s.weights.w); return m; } VsOut skinned_vertex(VsIn _in, SkinIn s) { VsOut _out = _2589; SkinRows _2591 = skin_rows(s); float4 _2593 = float4(_in.pos, 1.0f); float4 _2600 = float4(dot(_2591.r0, _2593), dot(_2591.r1, _2593), dot(_2591.r2, _2593), 1.0f); float3 _2607 = float3(_2591.r0.x, _2591.r1.x, _2591.r2.x); float3 _2614 = float3(_2591.r0.y, _2591.r1.y, _2591.r2.y); float3 _2621 = float3(_2591.r0.z, _2591.r1.z, _2591.r2.z); bool _2624 = dot(_2607, cross(_2614, _2621)) < 0.0f; _out.clip = mul(_2600, G_1_m0.view_proj); _out.world = _2600.xyz; _out.normal = normalize(mul(_in.normal, float3x3(cross(_2614, _2621), cross(_2621, _2607), cross(_2607, _2614))) * (_2624 ? (-1.0f) : 1.0f)); _out.uv = _in.uv; _out.flags = _in.flags | (_2624 ? 128u : 0u); _out.tangent = float4(normalize(mul(_in.tangent.xyz, float3x3(_2607, _2614, _2621))), _in.tangent.w * ((((O_1_m0.extra.x & 2u) != 0u) != _2624) ? (-1.0f) : 1.0f)); _out.weight = _in.weight; _out.color = float4(1.0f, 1.0f, 1.0f, 1.0f); return _out; } VsOutExt ext_vs_out(VsOut o, float2 uv1_2) { VsOutExt e = _1422; e.clip = o.clip; e.world = o.world; e.normal = o.normal; e.uv = o.uv; e.flags = o.flags; e.tangent = o.tangent; e.weight = o.weight; e.color = o.color; e.uv1 = uv1_2; return e; } void vert_main() { VsIn _2668 = { pos, normal, uv, flags, tangent, weight }; SkinIn _2686 = { joints, weights }; VsOutExt _2715 = ext_vs_out(skinned_vertex(_2668, _2686), uv1); gl_Position = _2715.clip; world = _2715.world; normal_1 = _2715.normal; uv_1 = _2715.uv; flags_1 = _2715.flags; tangent_1 = _2715.tangent; weight_1 = _2715.weight; color = _2715.color; uv1_1 = _2715.uv1; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; joints = stage_input.joints; weights = stage_input.weights; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.weight_1 = weight_1; stage_output.color = color; stage_output.uv1_1 = uv1_1; return stage_output; }  @Ð Ð/ ,@  P     {Ðþ—4ÌhÜäF‚�SKw;žP•hÛ— REò«WHSLT Globals@ viewÿÿÿÿproj@ÿÿÿÿ view_proj€ÿÿÿÿ camera_posÀÿÿÿÿviewportÐÿÿÿÿ wire_coloràÿÿÿÿ select_colorðÿÿÿÿ active_colorÿÿÿÿgridÿÿÿÿparams ÿÿÿÿfparams0ÿÿÿÿG_block@ObjectUmodelÿÿÿÿnormal@ÿÿÿÿcolor€ÿÿÿÿparams�ÿÿÿÿextra ÿÿÿÿgi°ÿÿÿÿdecalsàÿÿÿÿlightsðÿÿÿÿO_blockLightUPcolorÿÿÿÿpositionÿÿÿÿ direction ÿÿÿÿspot0ÿÿÿÿinfo@ÿÿÿÿLitUÐ countsÿÿÿÿambientÿÿÿÿtone ÿÿÿÿup0ÿÿÿÿsky_top@ÿÿÿÿ sky_horizonPÿÿÿÿground_horizon`ÿÿÿÿ ground_bottompÿÿÿÿ inv_view_proj€ÿÿÿÿdirsÀÿÿÿÿlightsÐ@P Lit_blockÐSunU  directionÿÿÿÿcolorÿÿÿÿSkyUflagsÿÿÿÿto_skyÿÿÿÿsky_topPÿÿÿÿ sky_horizon`ÿÿÿÿ ground_bottompÿÿÿÿground_horizon€ÿÿÿÿsun�ÿÿÿÿambient ÿÿÿÿibl°ÿÿÿÿ fog_colorÀÿÿÿÿfogÐÿÿÿÿ fog_depthàÿÿÿÿ fog_originðÿÿÿÿsuns sh€ ÿÿÿÿ Sky_block FogEntryU�to_localÿÿÿÿsize@ÿÿÿÿmaterialPÿÿÿÿalbedo`ÿÿÿÿemissionpÿÿÿÿlights€ÿÿÿÿFogU@ countsÿÿÿÿparamsÿÿÿÿambient ÿÿÿÿup0ÿÿÿÿ light_fog@ÿÿÿÿentries@� Fog_block@  GOLitSky Fog t_panoramaÿÿÿÿ s_panoramaÿÿÿÿ vs_surface vs_surfacevs_surface_instancedvs_surface_instancedvs_skyvs_skyfs_skyfs_sky fs_surface fs_surface fs_shadow fs_shadowfs_idfs_idfs_normal_depthfs_normal_depthvs_surface_extvs_surface_extvs_surface_ext_instancedvs_surface_ext_instancedfs_surface_extfs_surface_ext fs_shadow_ext fs_shadow_ext fs_id_ext fs_id_extfs_normal_depth_extfs_normal_depth_ext vs_surface_lm vs_surface_lm fs_surface_lm fs_surface_lmfs_surface_ext_lmfs_surface_ext_lmvs_surface_skinnedvs_surface_skinnedvs_surface_ext_skinnedvs_surface_ext_skinnedä„#7(2 GLSL.std.450,!vs_surface!!!!!!!!!#!$!&!(!)!+!Š!vs_surface_instancedm!o!q!s!u!w!z!|!~!€!‚!ƒ!„!…!†!‡!ˆ!‰!ú!vs_skyö!ø!ù!"fs_sky"""y"fs_surfacee"g"i"k"m"o"q"s"u"x"€#fs_shadowp#r#t#v#x#z#|#~#»#fs_idª#¬#®#°#²#´#¶#¸#º#*$fs_normal_depth$$$$$ $"$$$&$($)$®$vs_surface_ext—$™$›$�$Ÿ$¡$£$¥$¦$§$¨$©$ª$«$¬$­$â$vs_surface_ext_instancedÂ$Ä$Æ$È$Ê$Ì$Ï$Ñ$Ó$Õ$×$Ù$Ú$Û$Ü$Ý$Þ$ß$à$á$ %fs_surface_extö$ø$ú$ü$þ$%%%%% %°%fs_shadow_extž% %¢%¤%¦%¨%ª%¬%®%ß%fs_id_extÌ%Î%Ð%Ò%Ô%Ö%Ø%Ú%Ü%Þ%-&fs_normal_depth_ext&&&&&!&#&%&'&)&+&,&Œ&vs_surface_lmr&t&v&x&z&|&~&€&‚&ƒ&„&…&†&‡&ˆ&‰&Š&‹&Í&fs_surface_lm¶&¸&º&¼&¾&À&Â&Ä&Æ&È&Ê&Ì&_'fs_surface_ext_lmH'J'L'N'P'R'T'V'X'Z'\'^'õ'vs_surface_skinnedÛ'Ý'ß'á'ã'å'è'ë'í'î'ï'ð'ñ'ò'ó'ô'$(vs_surface_ext_skinned( ( (((((((((((( (!("(#("y"€#»#*$ %°%ß%-&Í&_'H#HHH#@HHH#€HHH#ÀH#ÐH#àH#ðH#H#H # H #0G H #H H H #@H H H #€H #�H # H #°H #àH #ðGGH#H#H# H#0H#@H#PH#ÐGH#H#H# H#0H#@GPH#H#H# H#0H#@H#PH#`H#pH#€HHH #ÀH #ÐH#H#H# H#0H#HHH#@H#PG@G `H!#H!#H!#H##H##G$ G&H(#H(#H(H(H(#PH(#`H(#pH(#€H(#�H(# H(#°H( #ÀH( #ÐH( #àH( #ðH( #H(#€H*#H*H*H*#@H*#PH*#`H*#pG+€H,#H,#H-#H-H-H-#@H-#PH-#`H-#pH-#€H-#�H-# G.°H/#H/#H/# H0#H0# H0#H0#H0# H0#0H3#H3#H3# H3#(H3#0H3#@H4#H4#H4# H4#0H4#8H4#@H4#PH4#`H5#H5#H5# H5#0G7H:#H:#H:# H:#0H:#<H;#H;H;H;#@H;#PH;#`H;#pH;#€G<G=�H>#H>#H># H>#0H>#@H>#@G?G@GAHB#HB#GCHD#HE#HE#HF#HF#HF# HF#0HF#8HF#@HF#PHF#`HF#pHG#HG#HG#HG# HG#0HG#<HG#@HG#PHG#\HG #`HG #dHG #hHG #pHG #|HG#€HG#ŒHG#�HG#”HG#˜HG# HG#¨HG#°GHHJ#HJ#HJ# HJ#0HJ#@HJ#LHJ#PHJ#`HJ#lHJ #pHJ #tHJ #xHJ #€HJ #�HJ#œHJ# HJ#¬HJ#°HJ#ÀHJ#ÌHJ#ÐHJ#ÔHJ#àHJ#ìHJ#ðHJ#ôHJ#HJ# HJ#HJ#HJ# HJ#,HJ #0HJ!#8HJ"#@HJ##DHJ$#PHK#HK#HK# HK#0HK#8HK#@HK#PHK#`HK#pHK #xGLHN#HO#HO#HP#HP#HP# G�"G�!G�H�#G’"G’!G“H“#G•"G•!G–H–#G˜"G˜!Gš"Gš!G›"G›!Gœ"Gœ!G�"G�!Gž"Gž!G "G !G¢"G¢!G£H£#G¥"G¥!G¦H¦#G¨"G¨!Gª"Gª!G«"G«!G¬H¬#G®"G®!G°"G°!G±"G±!G²"G²!G³"G³!G´"G´!Gµ"Gµ!G¶"G¶!G·H·#G¹"G¹!Gº"Gº!G»"G»!G¼H¼#G¾"G¾!G¿"G¿!GÀ"GÀ!GÁ"GÁ!GÂHÂ#GÄ"GÄ!GÅHÅ#G!G!G!G!G!G!G! G!!G#!G$!G&!G&!G(!G)!G+!Gm!Go!Gq!Gs!Gu!Gw!Gz!G|!G~!G€! G‚! Gƒ!G„!G…!G†!G†!G‡!Gˆ!G‰!Gö! *Gø! Gù!G" G"G"Ge" Gg"Gi"Gk"Gm"Gm"Go"Gq"Gs"Gu" Gu"Gx"Gp# Gr#Gt#Gv#Gx#Gx#Gz#G|#G~#Gª# G¬#G®#G°#G²#G²#G´#G¶#G¸#Gº#G$ G$G$G$G$G$G $G"$G$$G&$ G&$G($G)$G—$G™$G›$G�$GŸ$G¡$G£$ G¥$ G¦$G§$G¨$G©$G©$Gª$G«$G¬$G­$GÂ$GÄ$GÆ$GÈ$GÊ$GÌ$GÏ$GÑ$GÓ$GÕ$ G×$ GÙ$ GÚ$GÛ$GÜ$GÝ$GÝ$GÞ$Gß$Gà$Gá$Gö$ Gø$Gú$Gü$Gþ$Gþ$G%G%G%G%G% G%G %Gž% G %G¢%G¤%G¦%G¦%G¨%Gª%G¬%G®%GÌ% GÎ%GÐ%GÒ%GÔ%GÔ%GÖ%GØ%GÚ%GÜ%GÞ%G& G&G&G&G&G&G!&G#&G%&G'&G)& G)&G+&G,&Gr&Gt&Gv&Gx&Gz&G|&G~& G€& G‚& Gƒ&G„&G…&G†&G†&G‡&Gˆ&G‰&GŠ&G‹&G¶& G¸&Gº&G¼&G¾&G¾&GÀ&GÂ&GÄ&GÆ&GÈ&GÊ& GÊ&GÌ&GH' GJ'GL'GN'GP'GP'GR'GT'GV'GX'GZ'G\' G\'G^'GÛ'GÝ'Gß'Gá'Gã'Gå'Gè' Gë' Gí' Gî'Gï'Gð'Gñ'Gñ'Gò'Gó'Gô'G(G (G (G(G(G(G( G( G( G( G(G(G(G(G(G (G!(G"(G#(   +       +(+   +  +@ + !  "#+%$#%+' &'($& )*+*,+ -.-/.0  12 3 1 4 156 +87 892:  ;<=;><=?%@1%A%B1C1 DE F 11G    1 +I€HI'J        1  K 111+MýLMNLOP+Q+R+S+T+U+V ) W+XÛI@+Y¯´´>, ZYYY+[ެ,>+\ ý|>+]š™?, ^[\]+_”„>+`ÍÌÌ>+a°¬,?, b_`a+cîÐÐ=+d™Ÿ?+e¿¸8?, fcde+g+ùø=+h©¡!?+i‹‡?, jghi+k¢šš>+l¶»;?, mklY+n ¦&?+oÜÔT?+pêèh>, qnop+rúòr?+sÍÈH?+toñp=, urst+v“Ž?, wrvt+xÛà`?+yƒŠ ?, zx_y, {Z^bfjmquwz+|+}ff¦?+~ÍÌL?+�Âõ=+€$tI+�€+‚ns\?+ƒý®>+„²>+…ýò&?+† +‡ +ˆ +‰+Š+‹+Œ+�+Žÿ� ‘�;‘�“ ”“;”’– —–;—• ™;™˜;™š;™›;™œ;™� Ÿ;Ÿž ¡;¡ £ ¤£;¤¢¦! §¦;§¥ ©";©¨;Ÿª¬( ­¬;­« ¯);¯®;™°;Ÿ±;Ÿ²;™³;¡´;Ÿµ·, ¸·;¸¶;™¹;Ÿº¼/ ½¼;½»;¡¾;Ÿ¿;™ÀÂ> ÃÂ;ÃÁÅN ÆÅ;ÆÄ!Ë1Ò"+Õ!Ù +ÚR¸NA, ÛÚÚÚ+Ü®Ga=, ÝÜÜÜ+Þ= ‡?, ßÞÞÞ+àš™@, áààà+âæ®%=, ãâââé !ð ñ ó * õ+öö(\?, ÷öÕÕ+ø€?+ùš™Y?+úfff?, ûÕùú ý . þ.    /A !I  M.N P X+bUUÕ>, cbbb+d.M;, eddd!p,rÕÕÕÕ,søøøø+t? w!ƒ!Œ+Ž?!�   ¥ «!Û- Ý/+ß½7†5!ÿ1 !0 0+€¿, ÕÕ, øøø+@+ìQ8= 0.0 . !.# %-.-&- .-/ ,-0SS+1ÿÿÿÿ,-211 D. H-!ý 4!  +  ×£=, ÕÕ , ÕÕø, Õøø, ÕøÕ, øøÕ, øÕÕ,7+€@+2+2 7+!Ï+"ÿÿÿN!6 +7iúæ¾+8A' ?+9R¦3?, :789+;\X?+<m->+=ÑÐ?, >;<=+?gÉ>+@t c¿+At ã>, B?@A+C)\�>+D33³>+E33s?+Fff†?, GúEF+H®Ga>+I B+JìQ8>+K@@+L€>. N!z +{ÍÌ ?+|R¸?+}ìQ8?, ~{|}+š™™>, €J{+�ìQ¸>+‚ ×£>, ƒ`�‚+„)\�=+…�Âu=, † „…, ‡]]]+ˆ@A+‰333?+Š{n?+‹¤p=?, ŒŠ‹|+�›È˾+ŽtÖ?+�‡O2?, ��Ž�+‘À?+’@?+“ffæ>+”ÍÌL=, •“ ”+–ÀA+—¸?, ˜~|—+™ðA+š®G?. œ!ï +ð @, ñðKø+òpB+óÀ@, ôóóó, õ, öÕÕÕ!!  1+]ôf+Ÿ@'+h,1tt+·Ñ8,1. ,1!!,1""!C11 L!v:1 :.:€�!Ò:4.:Û.Ý!ÿ! !" ! 2 , 3XXX! V +q�Âõ>+ráz?, sqrš+t¸…>, utHJ+v= W>+w\�B>, xHvw. z!Ž 4 :+‘ ×#=, ’‘‘‘,“ÕÕøÕ+”ff&@+•sh!@+–‡@, —”•–+˜ ×C?+™(\O?, š˜™ú+›0±>+œÁO"?+�01¿, ž›œ�, Ÿ}}}. ¡. £+0ÛÉ?+1UUÕ@+2HB+_®Ga?+`ÍÌÌ=+aÍÌL>+b ×#<+zffæ?+{rá?+|‚‹µ>+}ÒŒE=, ~{|}+㥛=+€øˆh?+�fI€<, ‚€�+ƒ§è<+„» >+…xV?, †ƒ„…+‡YÉ<, ˆ‡‡‡+‰¯Þ½8, Љ‰‰+‹ªÕ{?+ŒÁ«Ý>, �ŒŒŒ+Ž�Ës>, �ŽŽŽ+�shÍ?+‘Üô¿+’Là–½, “�‘’+”Rѽ+•4×�?+–?Æ», —”•–+˜MV»+™2•½+š»‰?, ›˜™š+¾ ?+¿…Ï>+À%ëµ=+Á`¿>+ÂT A?+Ñ+7>+Ä+­¦=+Å�í×=+Ƽt;?, Ǿ¿À, ÈÁÂÃ, ÉÄÅÆ,6ÊÇÈÉ+Ëhvû?+ÌÊ@™¾+Í,P(¾+Ί[¿+Ï&É©?+Ð)ñs¾+ѸõÞ½+ÒOßݼ+ÓŠŠ³?, ÔËÌÍ, ÕÎÏÐ, ÖÑÒÓ,6×ÔÕÖ+Ø9•GÁ+ÙŽÕ€@+Úÿæ[/, ÛÚÚÚ, ÜØØØ, ÝÙÙÙ+Þ1¬<+ßîZ€@+à¼tÍA+áÏ·ŒB+âVŽ•B+ãP�ØA+äÿæÛ., åäää. ç!2 +3&Ó=+4\�úA, 5444. 7, OKKK, PøÕø, Qøøø!z 1+|ff&?+}ÍÌ,@+~Í̈A, ~~~+€Cq‰=+��E¿;,1‚€�+ƒ‚îSB.…. ² á(. ú ($ *#!h222+2l+2n€+2oÿÿÿÿ+~ÛÉ@,9¶+ÂÁn�>+Ã,*ú>+Ä�Ø‹?+Å{¡>+Æ�Ø ?. È Ê&/ )!7 1+8 ®Gá¼+9 ˜n¿+: X9´<,; 8 9 : +< {.=+= ¸…?+> ×#½,? ø< = > +@ ázÁ+A ¸…¿,1B A = !V +c oƒ:. e …  † !º .Á .à . Å . Ç !K 1  L >+N ̼Œ+, O N N N Q 1.1R W = X ;+\ ÿÿO!C  ,1E ÕÕ+F À.H !à +Å r1?+Æ «ª*>. !!  +$ ÛIA. & . ) .+ ž <!±  1.µ . · . ¹ . ¾ . À !f +i +j ¬Å'7 l ?.?m o @.@p . t v A.Aw .{ .} . !Ú !- 0!+4A. 8. :. < ?2.2A N O Š � ] !z .�.�.‘.“. •!á   â,+æA!  . !+* +Sæ±a!e * !‘  ™*.*š.*œ ¼+ ¾*!í . õ. ÷.*ù!X 4 : . k. m. o.0q. u. w.y. {. }. . �. ƒ. …. ‡. ‰,9›!F41 F.F!4F 4.4 !643.4:!m435.4q!Ò111 Õ+×'!ð!ý11!GF,1"øø,1#øÕ+$wÌ+2 &G.G'.) g+�+Ÿ!± G. ´!Ø !ç! ý+•¿Ö3+!ß`¬A+"“˜ÊA+#—u@+$'ÂT@+%ÎüJ>+&Ð ,>+'ÿ!ý¿+(#£¿+)ÝAŠÀ+*k‚›À+`UÁ8?+aD‹¬>+bÊ2>+cšw=+do<+eà-�:+fƒ`?+g70?+h¦›?+i·b¿>+jøSƒ>+kC­)>+lñôÊ=+mˆô[=+n©Ð<+oí >;+po:+q�(]?+r³êS?+s:?+t ?+ujM?+vësÕ>+wž^©>+x\�‚>+yJ B>+z'  >+{¢´·=+|øSc=+}l ù<+~ôýT<+Ãd*;+€¤pM?+�p_G?+‚Ê24?+ƒrŠ?+„X ?+…ŸÍê>+†9ÖÅ>+‡ïÉ£>+ˆŠŽ„>+‰NbP>+ŠdÌ>+‹‹ýå=+Œ¬œ=+�£<=+ŽÁ¨¤<+�aÃS?+�ûËN?+‘„ž=?+’zÇ)?+“†8?+”F¶?+•øÂä>+–æ?Ä>+—殥>+˜Þ‰>+™?Æ\>+šDú->+›¸¯>+œ5ï¸=+�d;_=+žøSc?+ŸrŠ^?+ mVM?+¡,e9?+¢É%?+£ÜF?+¤…ë?+¥Šã>+¦¯%Ä>+§ð§¦>+¨ÕçŠ>+©æ?d>+ªëâ6>+«¨Æ >+¬¦›Ä=+­ Aq?+®HPl?+¯ŒZ?+°4F?+±J 2?+²€H?+³H¿ ?+´ˆ…ú>+µì/Û>+¶6<½>+·îë >+¸®‡>+¹ÓÞ`>+ºý‡4>+»Ìî >+¼ÓÞp?+½Ml?+¾ŸÍZ?+¿ðF?+Àœ¢3?+ÁS–!?+œÄ?+à ù?+ÄAñã>+Å8Ç>+Æû«>+ÇaÓ>+Èûz>+É…|P>+Ê0»'>,ƒHËøøøø`abcdeÕÕÕÕÕøøøfghijklmnbopÕqqrstuvwxyz{|}~€€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž���‘’“”•–—˜™š›œ�žžŸ ¡¢£¤¥¦§¨©ª«¬­­®¯°±²³´µ¶·¸¹º»¼¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ+ÌpA+Íà@+2Î+2Ï+2Ð ÒH!  +_p‰0+ êg++ [Ôø*+ Œ¸+,    + @3ÍI+ 'ÛI+@ÊJ,  +~ú€O+;¦ P+RÅO, +Ä9�2+p¶J+mó†Ï+iuå3, +šcO@+Ñ!x¿+Uêc=+ôÀÄ¿+!ð?+*ìP¾+ ‚?ÿ¾+! 6*=+"(S‡?, #, $, % !",6&#$%. (![  +\�Âõ<, ]+^rù?, _^^^, `j j j +2a. c. e!åJF G +ìo;, íßßß ïJ.Jð. ò.0ô. ö+M#+Q$+~+Ò+Ö+Ý+á+å+é+ô+ +!++)"!0 J!@ J  .D. F. H! !t  !À J  . Ê! ê  . í!1 !/ 1!H1J+^ÍÌÌ, ’“+ š™¿, { . . . .. . ,9×!ù F G .  !6 FK.F8 !`  a N+c þ e L+i ü!p PO s P.Pt !¹ 43O.4¾ ! ;!!;!! !1;!! !;!! !;!! !;!!  !; !! "! ;"!!!;"!#! %!1;%!$! '!;'!&!; !(! *!;*!)!; !+!!-!.41!;!m!;!o!;!q!;!s!;!u!;!w!;!z!;!|!;!~!;!€!; !‚!;"!ƒ!;"!„!;%!…!;'!†!; !‡!;*!ˆ!; !‰!.4Ž!;!ö!; !ø!;%!ù!,1û!,1ü!K,1ý!K,Cþ!û!ü!ý! "C "B.B";!";!"; !". #";!e";!g";!i";!k";!m";!o";!q";!s" v" ;v"u"; !x", ’"~~~, “"ttt, ”"ÕLø+•"\�"?, –"ø•"Õ. ˜". ›". �". Ÿ". ¡". £";!p#;!r#;!t#;!v#;!x#;!z#;!|#;!~#,1‰#. ‹#;!ª#;!¬#;!®#;!°#;!²#;!´#;!¶#;!¸#; !º#+Å#C,Æ#Å#Å#Å#Å#. È#. Ê#. Ì# Î#D.DÏ#;!$;!$;!$;!$;!$;! $;!"$;!$$;v"&$; !($; !)$. 5$. 7$. 9$ ;$E.E<$;!—$;!™$;!›$;!�$;!Ÿ$;!¡$;!£$; !¥$;"!¦$;"!§$;%!¨$;'!©$; !ª$;*!«$; !¬$;%!­$;!Â$;!Ä$;!Æ$;!È$;!Ê$;!Ì$;!Ï$;!Ñ$;!Ó$;!Õ$;!×$; !Ù$;"!Ú$;"!Û$;%!Ü$;'!Ý$; !Þ$;*!ß$; !à$;%!á$;!ö$;!ø$;!ú$;!ü$;!þ$;!%;!%;!%;!%;v"%; ! %. (%. *%. ,%;!ž%;! %;!¢%;!¤%;!¦%;!¨%;!ª%;!¬%;!®%;!Ì%;!Î%;!Ð%;!Ò%;!Ô%;!Ö%;!Ø%;!Ú%;!Ü%; !Þ%.Dê%;!&;!&;!&;!&;!&;!!&;!#&;!%&;!'&;v")&; !+&; !,&.E<&;!r&;!t&;!v&;!x&;!z&;!|&;!~&;!€&; !‚&;"!ƒ&;"!„&;%!…&;'!†&; !‡&;*!ˆ&; !‰&;%!Š&;%!‹& �&K.K‘&;!¶&;!¸&;!º&;!¼&;!¾&;!À&;!Â&;!Ä&;!Æ&;!È&;v"Ê&; !Ì&. é&. ì&. î&. ð&;!H';!J';!L';!N';!P';!R';!T';!V';!X';!Z';v"\'; !^'. }'. €'. ‚';!Û';!Ý';!ß';!á';!ã';!å' é';é'è';!ë'; !í';"!î';"!ï';%!ð';'!ñ'; !ò';*!ó'; !ô';!(;! (;! (;!(;!(;!(;é'(;!(;!(; !(;"!(;"!(;%!(;'!(; ! (;*!!(; !"(;%!#(6ÊË71È7ÉøÇ="̨=ͪùÎøÎQÏÈQÐÈP1ÑÏÐVÒÓÌÍZÔÓÑÉÕþÔ86 ØÙ7 ×øÖùäøäˆ å×Û� æ×݈ çæß  èçá¼éê×ã© ëêåèþë86ïð7í7îøì;ýüþ;ýÿAñò�SAóô’SùøÇíª S÷úøþîøAò'Q= A ô =  ª  QÇ í%«  S÷úøÇ R« S>üùø>üõùø= ü÷úø9 Ø÷PøþøÇí« S÷úøÇ %« S>ÿùø>ÿõùø= ÿ÷!ú "!ø"9 #ØûP$#øþ$ø!Ç% Q« &%S÷'ú&('ø(÷)ú *)ø*Ç+íQ« ,+S÷-ú,.-ø.A/0òT=10þ1ø-A/2ò8=32þ3ø)A4ô S=54ª 65Q÷7ú687ø8A/9òT=:9A/;òU=<;A=ô Q=>=ª ?>QPAB????©@B<:þ@ø7ù'ø'A/Cò8=DCþD86HI7 F7GøE;MLNAñJ�SAóK’SùOøOAPQJS=RQAPSKS=TS’URTPVFø‘WUV>LWAXYLR=ZYƒ[øG…\Z[AX]LR>]\=^Lþ^86 aÙ7 `ø_ùføfŽ g`Ú  h`cŽ ihÞƒ jiݼék`e© lkgjþl86op7nømAñq�Sùuøu v+nrsAwxq =yxº zyt÷{úz|{ø|O }vv9 ~a}QvP€~þ€ø{þv86‚ƒø�Aó„’Sù…ø…A†„UR=‡† ˆ&‡þˆ86‹Œ7Šø‰Aó�’Sù�ø�A��UQ=‘�A’�US=“’° ”Š%©•”“‘Ç–Š „—–˜•—Ç™˜Ž š&™Žþš86 œ�ø›; Ÿ{Aóž’Sù¡ø¡A¢žU =£¢ ¤&£' ¦&¤'A¥§Ÿ¦= ¨§þ¨86ªƒø©A«¬¢Sù­ø­A®¬'R=¯® °&¯þ°86³Œ7²ø±A«´¢SùµøµA¶´'Q=·¶A¸´'S=¹¸° º²%©»º¹·Ç¼² „½¼Â¾»½Ç¿¾Ž À&¿ŽþÀ86ƒøÁAóÃ’SùÄøÄAÅÃTR=ÆÅ Ç&ÆþÇ86ÊŒ7ÉøÈAóË’SùÌøÌAÍËTQ=ÎÍAÏËTS=Ðϰ ÑÉ%©ÒÑÐÎÇÓÉ „ÔÓÂÕÒÔÇÖÕŽþÖ86ÚÛ7-Ø7 Ùø×AñÜ�SAÝÞ»SùàøàAwáÞQS=âáA/ãÜ =äãO åääƒ æÙå çBæAwèÞQQ=éèº êét©ëêøç…ìâëAíÞSQ=îí ï)îQ‚ðïQpñðQòØQóò ô(ó߈õìô ö(õø ÷ö ø+÷Õñþø86þÿ7ú71û7ü7 ýøù=¾=¿ùø‚úQ|2©ýÕüoP ûV X  þ 8607 7 70ø ;%$&;S;X"#;;ý !;.32Añ�SAó’SAÝ»S=¾=¿ù'ø'>9(Âù)ø)ö*,ù4ø4=-53ª/605› 76÷8ú7*8ø8Q95ª :9S©;:QSP-<;Q‚-=5<>3=ù+ø+=>° ?>(÷@ú?@AøAù*ø@ùBøB=E9FÊE G&FŽ I&GŽAHJRI=-KJQLKPM ø‘NLMO ONN¾éPO› QP÷RúQSTøS¼éUO› VU> VùRøT> õùRøR= W ¨ XW÷YúXZYøZù,øYQ[O \[ƒ]ø\Q^KQ_^Q`KQa`QbOº cbÕ©dca_ e]d>"eQfKQgfº hgÕ÷iúhjiøj=k"QlKQmlQnKO onn”p o…qpt�rqt s1mør…tks>"tùiøiO1uOO>$K=-v$9wÚv QxKQyxQzKQ{z¬ |{S÷}ú|~}ø~QKQ€Ç�yQ« ‚�S9ƒþ€uw‚O „ƒƒ9 …Ø„Q†ƒP‡…†QˆK…‰‡ˆQЉ=‹"…ŒŠ‹A¥�S= Ž�O �‰‰Q�KQ‘�…’Œ‘P ”’’’  “.Ž�”A¥•S>•“Q–KQ—–¬ ˜—S÷™ú˜š™øšQ›KQœ›Ç�yR« ž�S9ŸþœuwžQ Ÿ…¡ ƒ¢¡øQ£Ÿ…¤£ƒ¥ø¤…¦¢¢ƒ§ø¦…¨¥¥ƒ©§¨ ª(Õ© «ªQ¬KO ­¬¬Ž ®­¢Q¯KO °¯¯Ž ±°«� ²®±Q³KO ´³³Ž µ´¥� ¶²µ  ·E¶A¥¸%= ¹¸P »ŒŒŒ  º.¹·»  ¼EºA¥½%>½¼ù™ø™Q¾KQ¿¾¬ À¿S÷ÁúÀÂÁøÂQÃKQÄÃÇÅy%« ÆÅS9ÇþÄuwÆAXÈ =ÉÈQÊÇ Ë.ÉÊŒAXÌ >ÌËAXÍR=ÎÍQÏÇ Ð.ÎÏŒAXÑR>ÑÐAXÒQ=ÓÒQÔÇ Õ.ÓÔŒAXÖQ>ÖÕùÁøÁù}ø}Q×KQØ×¬ ÙØS÷ÚúÙÛÚøÛQÜKQÝÜÇÞy« ßÞS9àþÝuwßA¥á8= âáO ãàà9 äØãQåKO æåå… çäæQèKQéèŽ êçé=ë"Ž ìêë� íâìA¥î8>îíùÚøÚùCøCù,ø,=ï€ðïQ>ðù)ø*AXñR=òñ ó+òøAXôR>ôóAXõQ=öõ ÷+öÕøAXøQ>ø÷=0ùþù86 üý74ûøúAóþ’SùÿøÿAþ%S=ÇR« SQûÇI« S¥ þ86  7 ø;ùø¸  Õ÷úø9 Ø þø + Õø…   #+ !"n2$# 2%'$o&%ƒ'& (&%%A¥)(= *)€2+% ,&+%A¥-,= .-P 0'''  /.*.09 1Ø/þ186 567 37 4ø2;¥MNùOøOŽ P4C>MP= QM”R3: S(RÕŽ T4SŽ UTù� VQU>MV= WM”X3> Y(XÕŽ Z4YŽ [ZD… \[G� ]W\>M]= ^M”_3B `(_ÕŽ a4`Ž baH� c^b>Mc� d:  eEd= fM”g3e h(gÕ ihIŽ jiŽ kjJ� lfk>Ml”m3 n(mÕƒoøn poK= qMŽ r4pŽ srL� tqs>Mt= uMþu86 yz7 w7xøv;¥›œù�ø�ª žxQ÷Ÿúž Ÿø  ¡  ¢G¡wQ£¢ ¤+£ÕøP ¦¤¤¤  ¥.~€¦Q§¢¨§ ©+¨ÕøP «©©©  ª.ƒ†«Q¬¢¾ ­¬ÕP鯭­­© ®¯¥ª>›®= °›Q±¢ ²±³²…´³ˆ µ´Ž ¶‡µŽ ·¶‰� ¸°·>›¸”¹w º(¹Õƒ»øº ¼»= ½›Ž ¾½ú…¿¼LP À¿¿¿� Á¾ÀþÁøŸª ÂxR÷ÃúÂÄÃøÄ9 ÅØŒ”Æw�…ÇÆt�ÈÇt ÉÈ‘”Êw Ë(ÊÕƒÌøË ÍÌK…Î’É�ÏLÎŽ ÐÅÏŽ ѕ͎ ÒÑt� ÓÐÒ� Ô�  ÕEÔ”ÖwÕ ×(ÖÕ Ø×–Ž ÙØŽ ÚÙ� ÛÓÚþÛøÃ9 Üؘ”Ýw� Þ(ÝÕ� ß�  àEß”áwà â(áÕ ãâ™…äã…åšÞ�æHåŽ çÜæP èäää� éçèþé86 îï7ë7ì7íøêù÷ø÷ˆøëòP ùøøø� úñùŒ ûúôƒ üõû  ý%ûü  þ+ýöŽ ÿþìƒ ÿŽ íþ8677øª S©Q‰ þ 86  71 ø ;¥Añ�SùøAwQ=Ž1  1 1+n9Q2 Q2!€2" !Ç2#"Q2$|%$„&%Q2'|('„)(Æ*&)9+*p,+ª -#©.-`‹9 /î,J.>/ 10 ƒ110 121Ñ13 Ž143ø�154ƒ165º/726š 87= 9= :Ž ;:DPé=888© <=;9><= >9 ?Ø>þ?861BC71Aø@ùDøDQEAQFAƒGøFP1HEGþH861KC71JøIALM•SùNøN91OBJA/PM%=QPO1RQQ…1SORA/TM%=UTO1VUU�1WSVþW86Zp7YøXAL[•Sù\ø\A][ =^]Ç_^V« `_S÷aú`baøbO cYY9 dØcQeYPfdeþføaþY86 iÙ7 høgALj•SùkøkAlj =mlÇnm« onS÷púoqpøq9 rØhþrøpþh86:uv71tøs;~€ALw•S=x˜=yš=z›={œ=|�=}žù�ø�91‚KtA/ƒwS=„ƒAM…~S>…„A†w S=‡†Çˆ‡Q« ‰ˆS© ŠW‰õ÷‹úŠŒ‹øŒAM�~S=Ž�V��x}W‘�‚9’Z‘…“Ž’AM”~S>”“ù‹ø‹A¥•~Q>•A–w S=—–ǘ—R« ™˜S© šW™õ÷›úšœ›øœV��y}Wž�‚O ŸžžŽ  Ÿƒ ¡   ¢E¡A¥£~Q>£¢ù›ø›AM¤~R>¤sA¥w S=¦¥Ç§¦%« ¨§S© ©W¨õ÷ªú©«ªø«V�¬z}W­¬‚AM®~R>®­ùªøªA/¯wQ=°¯O ±°°A¥²~ >²±A³w S=´³Çµ´« ¶µS© ·W¶õ÷¸ú·¹¸ø¹A¥º~ = »ºV�¼{}W½¼‚O ¾½½9 ¿i¾… À»¿A¥Á~ >ÁÀù¸ø¸AXÂ~%>ÂøAÃw S=ÄÃÇÅÄ« ÆÅS© ÇWÆõ÷ÈúÇÉÈøÉV�Ê|}WËÊ‚QÌËAXÍ~%>ÍÌùÈøÈ=:Î~þÎ86:ÑÒ74ÐøÏ;ÚÛ;MÜÝALÓ•S=Ô˜=Õš=Ö›=ל=Ø�=ÙžùÞøÞQ1ßÐ9:àuß>ÚàAáÓ =âáÇãâQ« äãS© åWäõ÷æúåçæøçQèÐ>ÜèAéÓ =êéÇëêR« ìëS÷íúìîíøî=ïÜO ðïï9 ñØðAXòÜ =óòPôñó>ÜôùíøíAMõÚS=öõ=÷Ü…øö÷AMùÚS>ùøùæøæ=:úÚþú86þÿ7ü7ýøûùø…üüƒýø…�ø…X…ˆýþ86  7 7 7 øùø…  ƒø …�  … …  ƒø …�  … � (ˆtþ86 !"7 7 øù#ø#ƒ $ƒ%ø  &%ðŽ '$&� ('þ(86 127 *7 +7 ,7 -7 .7 /70ø)ù4ø4”5*,¼ 65Õ÷7ú687ø8þöø7� 9,+  :E9”;*: <(;Õ”=+: >(=Õ”?*+ @(?9 A!/>9Bþ<09C 5@0…DBCŽ EADƒ FA… GF.ˆ HG3� IHE… JI-Ž KJ5þK86 UV7 M7 N7 O7 P7 Q7 R7S7TøLùWøW”XMO¼ YXÕ÷ZúY[Zø[þöøZ� \ON  ]E\”^M] _(^Õ”`N] a(`Õ”bMN c(b9 d!Ra9eþ_S9f XcS…gefŽ hdgˆ iQ3Ž jhT� kij… lkPŽ mlXþm86 p 7oøn;¥yzù{ø{…|ot�}|t ~+}ÕøP €~~~  .us€>y= �y ‚oƒ‚…„ƒ …„Ž †x…� ‡�†>y‡= ˆyþˆ86 �Ž74Š7 ‹7:Œø‰;¥ ¡;¥¢£;¥¤öAñ��SAL�•Sù¥ø¥Aw¦�RS=§¦Q¨ŒQ©¨…ª§© «+ªÕøAw¬�RQ=­¬Q®ŒQ¯®…°­¯ ±+°ø…²±±…³²±…´³±QµŒO ¶µµƒ·ø«Ž ¸¶·P º«««  ¹.’¶ºQ »Š  ¼E» ½¼Q ¾Š  ¿E¾PéÁ‹‹‹© ÀÁ¿½> ÀAÂ� S=ÃÂÇÄÃR« ÅÄS© ÆWÅõ÷ÇúÆÈÇøÈQÉŠO ÊÉÉ>¢Ê= Ë¢= Ì = Í = ΢”ÏÍÎŽ ÐÌσ ÑËÐ  ÒEÑ>¢Ò= Ó = Ô¢  ÕDÓÔQÖŠQ×ÖŽ ØÕ×= Ù¢Q ÚŒQÛÚŽ ÜÙÛQ ÝŒQÞÝŽ ߨÞ� àÜß= á Q âŒQã⎠äáã� åàä  æEå> æùÇøÇAPç�S=èç= é PêéÕ‘ëèêO ìëë  íEìAPî�S=ïîQ ðŠPñðø‘òïñO óòò ôó  õEôAwö� =÷öº ø÷tPéúøøø© ùúõAPû�S=üû‘ýü“O þýý  ÿEþ= ¤9 1íù:—¸¹´� >¤= ¤9 1íù>š¸¹´� >¤= ¤9 1íùžŸ¸¹´� >¤” íù  (  ù  G í” íÿ9 p Ž ~” ÿ9 p9 pÕŽ ùP ±±±  .ƒø±P   (¹ƒ ¹ƒø  ðŽ � ¹… ¸… … t±ƒ!ø Ž "!� #"= $¤Q%ŒŽ &#%� '$&>¤'= (¤Q )Œ� *()>¤*= +¤þ+86 .Ù7 -ø,A«/¢Sù3ø3  4E-A/5/ =65O 766”847 9+8ø :9¼ ;:0÷<ú;=<ø=ˆ>:0ƒ?ø>ƒ@ø? A(@ß BA1ƒCøB D+CÕøA/E/8=FEO GFFA/H/%=IHO JIIP LDDD  K.GJLþKø<ƒM:0ˆNM0ƒOøN P(Oß QP2ƒRøQ S+RÕøA/T/T=UTO VUUA/W/U=XWO YXXP [SSS  Z.VY[þZ86 ^Ù7 ]ø\ùcøcŽ d]_…e`]P feee� gdf… h]g…iabP jiii� khjŽ l]_� ml‡… n]m…oaP pooo� qnpˆ rkqˆsbP tsssƒ urtþu86 y"7 w7xøvùœøœ”�~w…žz�”Ÿ‚w… zŸ”¡†w…¢z¡P £ž ¢� ¤£ˆ… ¥£¤ƒ ¦¥ŠŽ §£‹� ¨§�… ©£¨� ª©�ˆ «¦ª”¬“«”­—«”®›«P ¯¬­®…°zx�±°‡…²°±ƒ³²‰…´‹°�µ´Œ…¶°µ�·¶Žˆ¸³·P ¹¸¸¸ˆ º¯¹þº86 ½Ù7 ¼ø»;¥æçùèøè  é(¼Û‘ êÊé>æê= ëæ  ìë  í+ìÜ݃ îí܃ïÙØP ðïïïˆ ñîð>æñ= òæ= óæ… ôòó… õôô= öæŽ ÷öÞŽ øôß� ù÷øŽ úôà= ûæ… üúûƒ ýùüŽ þõá� ÿýþŽ õâ= æ… ƒ ÿŽ õã… ô�   (å  á‘ ×þ 86 Ù7 ø A« ¢SùøAw RS=Ž    (öAw RQ=A SR=ª Q÷úøŽ � Ž P � ˆ þøª R÷!ú "!ø"9 #^P $9 %^$ˆ &#%þ&ø!ª ' ÷(ú')(ø)9 *yþ*ø(ª +%÷,ú+-,ø-9 .½þ.ø,þ86127 0ø/;¥67ù8ø8Ž 903  : 9>6:= ;6= <6= =6O >==� ?>5”@<?P A@@@� B;A>6BAXC6S=DCAXE6Q=FE�GDFAXH6R=IH…JGI K JþK86N27 MøLùRøR  SM  T M… UTTŽ VTƒ WOV… XUW9Y1S� ZS9[1ZQ\X ].Y[\� ^S9_1^� `S9a1`QbX c._abQdX e.]cd� fS9g1f� hSP9i1hQjX k.gij� lS9m1l� nSQ9o1nQpX q.mopQrX s.kqrQtX u.estþu86yz7 w71xøv;X„…Aó{’Sù†ø†A‡{%S=ˆ‡Ç‰ˆVª ЉS© ‹WŠW÷Œú‹�Œø�þøøŒAwŽ{QS =�ŽŽ �w}9‘N�…’‘|Ž “�}� ”“9•N”…–•D�—’– ˜1a~—>„˜Q™x¾ š™Õ÷›úšœ›øœ 1�x”ž�‚ Ÿ ž… ƒŸ ¡  =¢„ƒ£¡t…¤£�¥¢¤ ¦+¥Õø>„¦ù›ø›…§�z=¨„ƒ©§¨ˆª©~þª86 ®"7 ¬7­ø«;ý±²Aó¯’SA«°¢Sù³ø³A´¯%S=µ´Ç¶µVª ·¶S¨ ¸·÷¹ú¸º»øº¾ ¼­ø>±¼ù¹ø»>±Wù¹ø¹= ½±© ¾W½W÷¿ú¾À¿øÀþ¬ø¿AÁ¯% =ÂÁ Ã@ÂO ÄÃÃ9 ÅØÄ9 Æ Å Ç1Õø­P ÉÇÇÇ  È.ƬÉþÈ86 ÌÙ7 ËøÊAóÍ’SA«Î¢SùÏøÏAÐÍ%S=ÑÐÇÒѪ ÓÒS© ÔWÓW÷ÕúÔÖÕøÖþËøÕA/×ÍQ =Ø×O ÙØØ9 Ú ÙQÛØP ÝÛÛÛ  Ü.ËÚÝþÜ86 àÙ7 ßøÞAáâ«SùãøãAPäâQ=åäPæßÕ‘çåæO èçç  éEèþé86íÿ7ë7ìøêùîøîƒïøë ð(ï߈ñøì òðñƒóøò ô+óÕøþô86 ÷Ù7 öøõ;¥ùú;ûS;.2Aáø«SùüøüQýö þ+ýø ÿþA/ø =O A/øR=O ˆÿ0ƒøAwøR = 9 í P      . Aw ø = Ž  >ùAøSR= &%ùøöùø=-ª/0› ÷úøQª S©QSP- Q‚-! >!ùø="û° #"÷$ú#$%ø%ùø$ù&ø&=)û +&) A*,øˆ+=#-,Q.-Q/.Q0-O 100”21ö 3+2ø 43¸ 54/÷6ú578ø7Q9-O :99>ù:ù6ø8Aw;øTS=<;¸ =4<÷>ú=?>ø?ƒ@4/AwAøTS=BAƒCB/ˆD@CQE-O FEE= GùAwHøTQ=IH9JíDIP LJJJ  K.FGL>ùKù>ø>ù6ø6ù'ø'ùø=Mû€NMQ>ûNùøA/Oø8=POO QPPA/Rø%=SRO TSSƒUÿ0ˆVU0AwWø% =XW9YíVXP [YYY  Z.QT[Aw\ø8 =]\Ž ^Z]= _ùQ`ö¾ a`ÕPécaaa© bc_^AwdøTR=edŽ fbeþf862gh72i72jøkª mjlª pinª qjo§ rpq¦ smr©2tsj‡2uit„2vut‚2wivþw86 zÙ7 yøxAá{«S=|°=}²ùøQ€yQ�y‚� ƒ€‚ˆ„ƒ~ … „Q†y ‡+†ø ˆ‡ˆ‰ˆXP1Š…‰A‹{SS=Œ‹Ç�Œ%« Ž�S÷�úŽ��ø�V�‘|}X’‘ŠÕO “’’Aw”{TR=•”Ž –“•þ–ø�g-—|l|9˜—Q™ŠQ2š˜o›š…œ™› �œ ž+�!"n2ŸžQ2 ˜92¡gŸ Q2¢˜€2£¡¢Q2¤˜92¥g£¤Q¦ŠQ2§˜o¨§…©¦¨ ª© «+ª!"n2¬«Q2­˜‚2®­ 2°*¬l 2¯'°®P9±¥¯j2²|‚2³² 2´&l³g9µ|´‚9·µ¶ 9¸&±·_¹|¸´O º¹¹Aw»{TR=¼»Ž ½º¼þ½86 ÀÙ7 ¿ø¾;¥ÇÈAáÁ«SùÉøÉA/ËÁ‰S=ÌËO ÍÌÌŽ ÎÍÂ>ÇÎ= ÏÇA/ÐÁ‰Q=ÑÐO ÒÑÑQÓ¿…ÔÃÓŽ ÕÒÔ� ÖÏÕ>ÇÖ= ×ÇA/ØÁ‰R=ÙØO ÚÙÙQÛ¿…ÜÃÛŽ ÝÚÜ� Þ×Ý>ÇÞ= ßÇA/àÁ‰ =áàO âááQã¿…äÃ㎠åâä� æßå>Çæ= çÇA/èÁ‰%=éèO êééQë¿…ìÄëQí¿…îìíŽ ïêî� ðçï>Çð= ñÇA/òÁ‰8=óòO ôóóQõ¿…öÄõQ÷¿…øö÷Ž ùôø� úñù>Çú= ûÇA/üÁ‰T=ýüO þýýQÿ¿… KÿQ ¿…  ƒ  ø… Å Ž  þ �  û >Ç =  ÇA/ Á‰U=  O Q ¿… Ä Q ¿… Ž   �    >Ç =  ÇA/ Á‰=  O    Q ¿Q ¿…   Q ¿Q ¿…   ƒ   … Æ Ž    �    >Ç =  Ç  ( öþ 86 $ "7 " 7# ø! Aá% «S=)& ®=' ±ù( ø( A) % SQ=* ) + )* Q‚, + Qp- , …. # - V/ 0 & ' X1 0 " . O 2 1 1 þ2 8616 7 74 75 ø3 ùC øC ŽD ; 4 �E D ? QF E QG E …H F G …I @ 5 J I K %H J QL E …M K L QN E �O M N Ž1P B O O1Q E E �1R P Q þR 86U V 7T øS ùW øW X (T Õ Y (T Õ…Z X Y …[ Z Z …\ [ [ þ\ 86 ` 67 ^ 7 _ ø] ;¥d e ;f S;.r 2A«a ¢SAáb «Sùg øg >d ^ Awh b ' =i h º j i c ÷k új l k øl 9m ªùn øn öo q ùs øs =-t r ª/u 0t › v u ÷w úv o w øw Qx t ª y x S©z y QSP-{ z Q‚-| t { >r | ùp øp =} f ° ~ } m ÷ ú~  € ø€ ùo ø ù� ø� =ƒ f 9„ ³ƒ ‡ &„ ŽAˆ a ‡ %S=‰ ˆ ª Š ‰ S÷‹ úŠ Œ ‹ øŒ = � d Ž &„ ŽA/� a Ž S=� � O ‘ � � ˆ ’ ‘ 3 “ &„ ŽA/” a “ R=• ” O – • •  — – ”˜ _ — 9™ U ˜ Ž š ’ ™ Aw› b ' =œ › Ž � š œ � ž � � >d ž ù‹ ø‹ ù‚ ø‚ ùq øq =Ÿ f €  Ÿ Q>f   ùn øo ùk øk = ¡ d þ¡ 86 ¥ 67 £ 7 ¤ ø¢ A«¦ ¢SAá§ «Sù¨ ø¨ A/© § '=ª © O « ª ª Aw¬ § † =­ ¬ P ¯ ­ ­ ­  ® .« £ ¯ 9 ° ` ® ¤ Aw± § Q=² ± P ´ ² ² ²  ³ .£ ° ´ þ³ 86 ¹ º 7 ¶ 7 · 7 ¸ øµ ;X à ;ýÆ Ç ;XÀ Á ;¥Ä Å Añ» �SA«¼ ¢SAá½ «S=)¾ ®=¿ ±ùÈ øÈ APÉ » S=Ê É PË · ø‘Ì Ê Ë QÍ Ì Î Í A/Ï » =Ð Ï O Ñ Ð Ð  Ò C· Ñ >À Ò AwÓ ½ ‡ =Ô Ó º Õ Ô t÷Ö úÕ × Ö ø× AwØ ½ ‡S=Ù Ø ƒÚ Î Ù Û (Ú Õ>À Û ùÖ øÖ AÜ ½ SS=Ý Ü ÇÞ Ý |« ß Þ S÷à úß á â øá Awã ½ †S=ä ã Awå ½ †Q=æ å =ç À è 1ä æ ç é (è ßAwê ½ †R=ë ê ì é ë º í è Õ©î í ì ÕAwï ½ S=ð ï …ñ î ð > ñ ùà øâ =ò À ó ò Awô ½ S=õ ô …ö ó õ ÷ %Õö ø ÷ ƒù øø > ù ùà øà Awú ½  =û ú ü û ¾ ý ü ÷þ úý ÿ þ øÿ A/ ¼ = O    ” ·  =  Aw ½ R=  ƒ   Aw ½  =  …   %Õ   ƒ ø  ( >  ùþ øþ =   + Õø>  A/ ½ '=  O    >Ä  A ½ SS=  Ç  «   S÷ ú   ø Aw ½ † =  º   Õ>Æ  ù ø >Æ õù ø =  Æ ©  W õ÷ ú ! ø! Aw" ½ ‡Q=# " ƒ$ Î # Aw% ½ ‡R=& % Aw' ½ ‡Q=( ' ƒ) & ( * () ߈+ $ * , ++ ÕøA- ½ SQ=. - / ). R‚0 / Qp1 0 ˆ2 ø1 ƒ3 ø, 4 .2 ø3 = 5 Ä 9 6 ภ9 7 $ 6 4 Aw8 ½ T =9 8 Ž : 7 9 Aw; ½ † =< ; P > < < <  = .5 : > >Ä = ù ø = ? Ä 9 @ ` ? ¸ >Ä @ = A Ä =B  P D B B B  C .¶ A D þC 861J K 7F 7 G 7 H 7I øE ;XS Õ;XU ;Q P R ;XT ÕAL M ÁSùV øV Y &F ŠAwZ M 8Y =[ Z ] +[ Õ\ m^ ] _ &F ŠAw` M 8_ % =a ` b %a I ª c ^ %÷d úc e d øe P1f Õb þf ød g &F ŠA/h M 8g Q=i h O j i i Ž k j t  l H ¸ém l O © n m O H  o k ƒ p o G ˆ q p n ƒ r k G ˆ s r n  t %q s  u (q s Qv t  w (Õv Qx u  y %b x P1z w y >P z ª { ^ ÷| ú{ } ~ ø} AX P S=€  Q� t ‚ (€ � Qƒ t  „ (‚ ƒ AX… P Q=† … Q‡ u ˆ %† ‡ Q‰ u  Š %ˆ ‰ P1‹ „ Š >P ‹ ù| ø~ ª Œ ^ S÷� úŒ Ž � øŽ ˆ � H k ˆ ‘ H k ”’ � ‘ >S ’ ˆ “ G k ˆ ” H k ”• “ ” >T • ˆ – G k ˆ — G k ”˜ – — ƒ™ ˜ ø>U ™ ù� ø� Qš k Q› k  œ %š › Q� k …ž � ˆŸ œ ž ª   ^ Q©¡   Ÿ ÕQ¢ k Q£ G ƒ¤ ¢ £ Q¥ H Q¦ H …§ ¥ ¦ Q¨ H Q© H …ª ¨ © �« § ª …¬ ¡ ¡ Q­ H …® ¬ ­ Q¯ H …° ® ¯ ƒ± « ° >S ± Q² G Q³ H …´ ² ³ Qµ G Q¶ H …· µ ¶ �¸ ´ · …¹ ¡ ¡ …º ¹ ¤ Q» H …¼ º » �½ ¸ ¼ >T ½ Q¾ G Q¿ G …À ¾ ¿ QÁ G Q G …à Á  �Ä À à …Å œ œ …Æ ¡ ¡ …Ç Æ ¤ …È Ç ¤ ª É ^ Q©Ê É È Å ƒË Ä Ê >U Ë ù� ø� ù| ø| =Ì T =Í T …Î Ì Í =Ï S =Ð U …Ñ Ï Ð ƒÒ Î Ñ =Ó S Ô Ó ¸ Õ Ô N ÷Ö úÕ × Ø ø× =Ù T Ú Ù ¸ Û Ú N ÷Ü úÛ Ý Þ øÝ AXß P Q=à ß =á U º â á Õ©ã â à AXä P Q>ä ã ùÜ øÞ =å T º æ å Õ÷ç úæ è é øè AXê P Q=ë ê =ì U í ì =î T …ï î ˆð í ï ñ %ë ð AXò P Q>ò ñ ùç øé AXó P S=ô ó =õ U ö õ =÷ T …ø ÷ ˆù ö ø ú (ô ù AXû P S>û ú ùç øç ùÜ øÜ ùÖ øØ ¸ ü Ò Õ÷ý úü þ ÿ øþ AX P Q= = S º   Õ©   AX P Q>  ùý øÿ = T    Ò ƒ   = S ˆ = T   Ò �  = S ˆ    %  = T    Ò ƒ   = S ˆ   = T    Ò �   = S ˆ    (  = S º ! Õ÷" ú! # $ ø# AX% P S=& % ' (&  AX( P Q=) ( * %)  P1+ ' * >P + ù" ø$ AX, P S=- , AX. P Q=/ . 0 %/  ¸ 1 - 0 ÷2 ú1 3 4 ø3 AX5 P Q=6 5 7 %6  AX8 P Q>8 7 ù2 ø4 AX9 P S=: 9 ; (:  AX< P S>< ; ù2 ø2 ù" ø" ùý øý ùÖ øÖ =1= P þ= 86B C 7? 7 @ 7 A ø> ;XG H ;XI ÕAL D ÁSùJ øJ K &? ŠAX L D 8K =;M L QN M QO N QP M QQ P R Q A/S D =T S O U T T ”V @ U QW M QX W ƒY V X …Z R Y [ Z \ %[ ø…] O \ >G ] Q^ M Q_ ^ º ` _ Õ÷a ú` b a øb Qc M Qd c  e +d Õ\ mf e Qg M O h g g Ž i h tQj i Qk i  l %j k ª m f S÷n úm o p øo ˆ q A i r Bq ƒs r ø…t r s … u i i ˆ v A u w Bv x (w N ˆy t x >I y ùn øp ª z f ÷{ úz | } ø|  ~ A ƒ  ~ i  € ( ö � B€ Q‚  Qƒ  Q„   … (ƒ „ † (‚ … ‡ %† Õ�ˆ � ‡ >I ˆ ù{ ø} ª ‰ f R÷Š ú‰ ‹ Œ ø‹ O1� A A  Ž B� ƒ� Ž l Q� A  ‘ � Q’ i ƒ“ ‘ ’ P1” � “ Q• ” Q– ”  — (• – ˜ %— Õ 1™ (” E š B™ �› ˜ š >I › ùŠ øŒ …œ l t � (c œ ˆž ø� QŸ i    (c Ÿ ˆ¡ ø  P1¢ ž ¡ 1£ E¢ O1¤ A A  ¥ B¤ Q¦ A Q§ i ƒ¨ ¦ § P1© ¥ ¨ ”ª £ © Q« i ¬ « Q­ A ƒ® ¬ ­ ¯ (ª ® >I ¯ ùŠ øŠ ù{ ø{ ùn øn =° G =± I …² F ± Q³ M Q´ ³ ˆµ ² ´ ¶ +µ ÕøQ· M Q¸ ·  ¹ ¶ ¸ …º ° ¹ >G º ùa øa =» G þ» 86 à 7½ 7¾ 7¿ 7À 7Á ø¼ AL Ä ÁSùÇ øÇ È &½ ŠA/É Ä 8È R=Ê É QË Ê …Ì Ë ¿ ´ Í Ì Õ÷Î úÍ Ï Î øÏ QÐ Ê ƒÑ Á À …Ò Ð Ñ Ó Ë …Ô Ó ¾ Õ Ô Ö %Õ ø…× Ò Ö þ× øÎ Ø ¾ ˆÙ Ø ¿ Ú +Ù À Á º Û ¿ Õ©Ü Û Ú À º Ý ¿ Õ©Þ Ý Á Ú ß ¿ …à Ë ß ƒá Þ Ü …â à á …ã â Å ä ã å ä ƒæ øå ˆç æ ã ˆè ã –ƒé Æ è …ê ã é ƒë tê …ì ã ë ƒí øì ¸ î ã b©ï î í ç ð Ë º ñ ¿ Õ©ò ñ Ü Þ …ó ¿ ò �ô ¾ ó õ (ô Õ…ö ð õ ÷ ö ø %÷ øQù Ê ƒú Á À ƒû Þ Ü ƒü ú û ƒý Þ Ü …þ ø ý …ÿ þ ï � ü ÿ … ù þ 86 7 7 7 ø ;X  ù ø …   > =  =  … > =  =  …   >  =  ƒ ø  ( Õ>  =  =  …   >  =   (      …   þ 86 ! 7 7  7  ø ;' S;X* + ;¥% & ;¥( ) ;.< 2A«" ¢SAL # ÁSù, ø, A/- # R=. - O / . . Aw0 # QQ=1 0 Ž 2 / 1 >% 2 Aw3 # QS=4 3 5 & ŠA6 # 85 8=7 6 ù8 ø8 ö9 ; ù= ø= =-> < ª/? 0> › @ ? ÷A ú@ 9 A øA QB > ª C B S©D C QSP-E D Q‚-F > E >< F ù: ø: =G ' QH 7  I &H ° J G I ÷K úJ K L øL ù9 øK ùM øM QO 7 QP 7 =Q ' ° R Q %©S R P O =T ' ÇU T „V U ÂW S V ÇX W Ž Y &X Ž Z &Y ŽA† [ " Z =\ [ Q] \ O ^ ] ]  _ ^ >( _ >* øQ` \ Qa ` « b a S÷c úb d c ød Qe \ O f e e ƒ g f  h Bg i (h ßP j i i i ˆ k g j >( k l Bg Qm \ Qn m Qo \ Qp o 9q  l n p >* q Qr \ Qs r ª t s R÷u út v u øv = w (  x w Qy \ O z y y ”{ x z Q| \ Q} | ~ ({ } ƒ ø~ Q€ \ Q� € ƒ‚ ø� ƒ (‚ ߈„  ƒ … („ =† * Q‡ \ Qˆ ‡  ‰ … ˆ ƒŠ ø‰ …‹ † Š >* ‹ ùu øu ùc øc …Œ 4 4 �� øŒ …Ž 4 = � ( ”�  � …‘ Ž � ƒ’ � ‘ = “ % Q” \ O • ” ” =– * …— 4 4 ƒ˜ ø— …™ – ˜ …š $ ’ › ’ …œ š › ˆ� ™ œ Ÿ Y RÇ  Y ¡ &  ¢ &Ÿ ŠAw£ # %¢ ¡ =¤ £ …¥ � ¤ Ž ¦ • ¥ � § “ ¦ >% § ùN øN ù; ø; =¨ ' €© ¨ Q>' © ù8 ø9 = ª % þª 86° ± 7¬ 7 ­ 7 ® 71¯ ø« ;ý½ ¾ ;¥º ö;X´ µ ;ý¿ À ;X» Õ;ý¶ · ;¼ S;ý¸ ¹ ;.ú 2A«² ¢SAL ³ ÁSùÁ øÁ  &¬ ŠAX à ³ 8 =;Ä Ã QÅ Ä PÆ ­ ø‘Ç Å Æ O È Ç Ç QÉ Ä PÊ ® Õ‘Ë É Ê O Ì Ë Ë A/Í ³ =Î Í O Ï Î Î ”Ð ­ Ï QÑ Ä QÒ Ñ ƒÓ Ð Ò A/Ô ³ =Õ Ô O Ö Õ Õ ”× ® Ö QØ Ä QÙ Ø º Ú Ù ÕQÛ ¯ QÜ ¯ �Ý Û Ü …Þ Ý t>´ Þ Qß Ä Qà ß º á à Õ÷â úá ã ä øã å Ó ˆæ å × Qç ¯ º è æ ç >¶ è ùâ øä >¶ õùâ øâ = é ¶ ÷ê úé ë ì øë í Ó ˆî í × Qï ¯ ¸ ð î ï >¸ ð ùê øì >¸ õùê øê = ñ ¸ ÷ò úñ ó ò øó ô Ó ˆõ ô × >´ õ ùò øò ùö øö ö÷ ù ùû øû =-ü ú ª/ý 0ü › þ ý ÷ÿ úþ ÷ ÿ øÿ Q ü ª  S©  QSP-  Q‚- ü  >ú  ùø øø = ¼ © Ú ‡%°    ÷ ú  ø ù÷ ø ù ø = ¼ Ç ª  S¨   ÷ ú   ø ª  >½  ù ø >½ Wù ø =  ½ ©  ‚ƒª  S¨   ÷ ú   ø ª  >¿  ù ø >¿ Wù ø =  ¿ ©  „…= ´ Q ¯ P1   Q! ¯ =" ´ P1# ! " =$ ¼ ° % $ P/' % % ©1& ' # =( ¼ ° ) ( %P/+ ) ) ©1* + ¯ & Q, * Q- * ƒ. , - …/ . tQ0 * Q1 * �2 0 1 …3 2 t4  ° 5 R©6 5 4  …7 / 6 �8 3 7 Ž 9 ® 8 � : ­ 9 Ž ; Ì 8 � < È ; 9= B ¬ : < => ¼ ° ? > %÷@ ú? A B øA = C º QD Ä O E D D 9 F ¬ : ® … G E F QH Ä O I H H � J G I …K  / L += Õø…M K L Ž N J M � O C N >º O ù@ øB =P » …Q  / …R Q = �S P R >» S ù@ ø@ ù ø ùù øù =T ¼ €U T Q>¼ U ùö ø÷ ¨ V Ú ÷W úV X W øX QY ¯ QZ ¯ 9 [  ¬ Ó × Y Z >» [ ùW øW = \ º =] » P^ \ ] þ^ 86 e f 7 ` 7 a 7 b 7c 7d ø_ ;X� Õ;| } ;x S;r S;l k m ;‚ S;~  ;y S;ýs t ;o n p ;¥€ ö;Xz { ;v u w ;q S;.‰ 2;.Ð 2;.ô 2;.2;.Y2;.¢2A«g ¢SAL h ÁSùƒ øƒ ® „ d �ù… ø… ö† ˆ ùŠ øŠ =-‹ ‰ ª/Œ 0‹ › � Œ ÷Ž ú� † Ž øŽ Q� ‹ ª � � S©‘ � QSP-’ ‘ Q‚-“ ‹ ’ >‰ “ ù‡ ø‡ =” r A• h SS=– • — &– ©˜ „ — %° ™ ” ˜ ÷š ú™ š › ø› ù† øš ùœ øœ =ž r ÇŸ ž „  Ÿ ¡ d   Ç¢ ¡ i ¨ £ „ ÷¤ ú£ ¥ ¦ ø¥ ª § ¢ S>s § ù¤ ø¦ >s õù¤ ø¤ = ¨ s ÷© ú¨ ª © øª ù† ø© « &¢ ‚¬ « Q=­ r ©® „ ­ ¬ ¯ &® ŠAP° h 8¯ S=± ° P² a ø‘³ ± ² O ´ ³ ³ Pµ b Õ‘¶ ± µ O · ¶ ¶ 91¸ J ® ´ · c Q¹ ¸ Qº ¸ º » ¹ º ÷¼ ú» ½ ¼ ø½ =¾ q ¿ &¾ AÀ k ¿ >À ® =Á q  &Á AQ à n  >à ¸ =Ä q €Å Ä Q>q Å =Æ q ª Ç Æ %÷È úÇ É È øÉ ù† øÈ ù¼ ø¼ ù� ø� ùˆ øˆ =Ê r €Ë Ê Q>r Ë ù… ø† ùÌ øÌ öÍ Ï ùÑ øÑ =-Ò Ð ª/Ó 0Ò › Ô Ó ÷Õ úÔ Í Õ øÕ QÖ Ò ª × Ö S©Ø × QSP-Ù Ø Q‚-Ú Ò Ù >Ð Ú ùÎ øÎ =Û x =Ü q ° Ý Û Ü ÷Þ úÝ Þ ß øß ùÍ øÞ ùà øà =â x =ã x ä &ã Aå k ä =æ å =ç x è &ç AQ é n è =1ê é 9ë ° æ a b ê ì &â AMí u ì >í ë ùá øá ùÏ øÏ =î x €ï î Q>x ï ùÌ øÍ ùð øð öñ ó ùõ øõ =-ö ô ª/÷ 0ö › ø ÷ ÷ù úø ñ ù øù Qú ö ª û ú S©ü û QSP-ý ü Q‚-þ ö ý >ô þ ùò øò =ÿ y =q ° ÿ ÷úøùñ øùø=y & AXu  = ¸  Õ÷ ú   ø >z Õ>| Sù ø öùø=-ª/0› ÷úøQª S©QSP-Q‚->ùø=| =q ° ÷ú ø ùøù!ø!=#| $&# AX%n $Q=&%='y (&' AX)n (Q=*) +%&*=,| -&, AX.n -S=/.=0y 1&0 AX2n 1S=32 4(/3ƒ5+4 6(5Õ=7| 8&7 AX9n 8Q=:9=;| <&; AX=n <S=>=ƒ?:> @(?߈A6@=Bz =C| D&C AXEu D =FE G(FÕ…HGA�IBH>z Iù"ø"ùø=J| €KJQ>| Kù ø=Ly M&L AXNu M =ONPO=Qz R(QN ˆSPR T%Sø>~ SùUøUöVXùZøZ=-[Yª/\0[› ]\÷^ú]V^ø^Q_[ª `_S©a`QSP-baQ‚-c[b>YcùWøW=d~ =eq ° fde÷gúfghøhùVøgùiøi=k~ l&k AXmu l =nmº onÕ÷púoqpøq=r~ s&r AXtn sQ=ut=vy w&v AXxn wQ=yx z%uy={~ |&{ AX}n |S=~}=y €& AX�n €S=‚� ƒ(~‚ƒ„zƒ …(„Õ=†~ ‡&† AXˆn ‡Q=‰ˆ=Š~ ‹&Š AXŒn ‹S=�ŒƒŽ‰� �(Žßˆ�…�=‘~ ’&‘ AM“u ’=”“…•�Tƒ–ø•Ž—”– ˜&‘ AM™u ˜>™—ùpøpùjøjùXøX=š~ €›šQ>~ ›ùUøVù ø ùøùó øó =œy €�œQ>y �ùð øñ ùžøžöŸ¡ù£ø£=-¤¢ª/¥0¤› ¦¥÷§ú¦Ÿ§ø§Q¨¤ª ©¨S©ª©QSP-«ªQ‚-¬¤«>¢¬ù ø =­‚ =®q ° ¯­®÷°ú¯°±ø±ùŸø°ù²ø²=´‚ µ&´ AX¶u µ =·¶º ¸·Õ÷¹ú¸º¹øº= »€ =¼‚ ½&¼ AM¾u ½=¿¾O À¿¿� Á»À>€ Á=Â� = Ä&à AXÅu Ä =ÆÅ�ÇÂÆ>� Çù¹ø¹ù³ø³ù¡ø¡=È‚ €ÉÈQ>‚ ÉùžøŸ=Ê� ËÊ ÌËŽ Í` Ì= ΀ ƒÏøÌ=Ð� Ñ(Ðj ˆÒÏÑŽ ÓÎÒ� ÔÍÓþÔ86 ÙÚ7 Ö7 ×7ØøÕAñÛ�SA«Ü¢SAL ÝÁSùÞøÞAwßÛSSR=àßAwáÛSQR=âáAwãÛSRR=äãP åàâä  æEåA/çÛ =èçO éèèAPêÛS=ëêPì×ø‘íëìQîíŽ ïæîƒ ð×ïAwñÛ =òñº óòtPéõóóó© ôõðéƒ ö×ô ÷Böƒ ø×ô ù(÷ßP úùùùˆ ûøú9 üe Öôû÷غ ý÷ÕPéÿýýý© þÿüÖþþ86 º 7 7 7 øAñ�SA«¢SAL ÁSùøAw SSR=  Aw SQR=  Aw SRR= P     EA/ =O APS=Pø‘QŽ ƒ Aw =º tPé© A SQ=! 9 "e €!Aw#QR=$#P &$$$  %."&þ%86,-7(7 )7 *7 +ø';?>o;ý9:;5S;?@A;ý;<;6S;X=Õ;ý78;.n2;.2;.'2Añ.�SA«/¢SA01¥S="2¨=3ªùBøB C&(ŽAD/C%S=ED F&(ŽA/G/FQ=HGO IHH J&(ŽAK/J% =LK M&LŠ P&MŠA/Q1QPS=RQ S&MŠAT1QS S=UT V&MŠAW1QV Q=XW Y)XQAPZ.S=[ZP\)ø‘][\Q^]_^ª `ES÷aú`baøb c&MŠAwd1QcRQ=edº f_e÷gúfhgøhþøøg‚iYQ>5iùjøjökmùoøo=-pnª/q0p› rq÷súrksøsQtpª utS©vuQSP-wvQ‚-xpw>nxùløl=y6° zyY÷{úz{|ø|ùkø{ù}ø}=6 €& �&MŠAw‚1Q�Q€=ƒ‚¼ „_ƒ÷…ú„†…ø†=‡6>5‡ùkø…ù~ø~ùmøm=ˆ6€‰ˆQ>6‰ùjøkùaøa=‹5‚ŒYQ �&‹Œ€ŽU� �&ŽŠ ‘&�ŠA/’1R‘R=“’Q”“Q•“ –C)I…—•–�˜”—Q™RQšR ›(šø…œ™›…�œ˜Ž ž*�� Ÿ)žQ R…¡ ˜Ž ¢+¡� £Ÿ¢ª ¤EQ÷¥ú¤¦¥ø¦ƒ §£I  ¨§Q©¨Qª¨¾ «©ª÷¬ú«­®ø­Q¯¨Q°¨¾ ±¯°>7±ù¬ø®>7õù¬ø¬= ²7÷³ú²´µø´Q¶§¾ ·¶Õ©¸·SQ>5¸ù³øµQ¹¨Qº¨¾ »¹º÷¼ú»½¾ø½Q¿§¾ À¿Õ©ÁÀR >5Áù¼ø¾Q§¾ ÃÂÕ©ÄÃ%8>5Äù¼ø¼ù³ø³ù¥ø¥=Å5‚ÆYQ Ç&ÅÆ€ÈUÇ É&ÈŠ Ê&ÉŠAPË1RÊS=ÌËPÍ£ø‘ÎÌÍQÏμ ÐÏÕ÷ÑúÐÒÑøÒþøøÑO ÓÎÎQÔÎP ÕÔÔÔˆ ÖÓÕQ×Ö Ø×º ÙØø¨ ÚÙ÷ÛúÚÜÝøÜQÞÖ ßÞº àßø>9àùÛøÝ>9WùÛøÛ= á9¨ âá÷ãúâäåøäQæÖº çæø>;çùãøå>;Wùãøã= è;÷éúèêéøêþøøé ë&ÉŠA/ì1RëQ=íìQîÖ…ïît�ðïtQñÖ…òñtƒótòP1ôðóO1õííO1öíí…1÷ôö�1øõ÷Awù1SS=úùO1ûíí…ütúP1ýüü�1þûýO1ÿííO1íí�1ÿ…túP1ƒ1QR¼ Õ÷ú ø 1 +øþQ Ö9 Ê  >= ùø … úùøöùø=-ª/0› ÷úøQª S©QSP-Q‚->ùø=2>³ ÷ú ø ùøù!ø!>@où#ø#ö$&ù(ø(=-)'ª/*0)› +*÷,ú+$,ø,Q-)ª .-S©/.QSP-0/Q‚-1)0>'1ù%ø%=22@³ 32÷4ú345ø5ù$ø4ù6ø6=28@o98=2:>o;:P1<9;Ž1=< �1>ø= 1?+>þ=@=QAÖ9BÊ?A�C@B>=Cù7ø7ù&ø&=2D@€2ED>@Eù#ø$ù"ø"ùø=2F>€2GF>>Gùø=H=ˆIH4>=Iùøª JES÷KúJLKøL M&MŠA/N1QMR=ON=P=QQOQRO S1QR_ T.PøS>=TùKøK=U=QVR W.øUVþW86 ZÙ7 YøXAó[’Sù\ø\Aw^[8SS=_^A/`[8S=a`O baa”cbY�d_cAwe[8QS=feA/g[8Q=hgO ihh”jiY�kfjAwl[8RS=mlA/n[8R=onO poo”qpY�rmqP sdkr  t(söþt86yz7 v7 w7 xøuAó{’Sù|ø|÷}úw~}ø~Pxøþø}A€{%S=�€Ç‚�« ƒ‚S© „Wƒõ÷…ú„†…ø†9 ‡ZvPˆ‡øþˆø…þr86 ‹Ù7 Šø‰;ý”•;XŽ�;X’“;XŒ�;X�‘ù–ø–  —ŠQ˜—Q™—¾ š˜™÷›úšœ�øœQž—QŸ—¾  žŸ>” ù›ø�>”õù›ø›= ¡”÷¢ú¡£¤ø£Q¥—>Ž¥Q¦Š¾ §¦Õ÷¨ú§©ªø©>ŒÕQ«Š¬«>�¬Q­Š®­>’®ù¨øª>ŒøQ¯Š>�¯Q°Š±°>’±ù¨ø¨ù¢ø¤Q²—Q³—¾ ´²³÷µú´¶·ø¶Q¸—>ޏQ¹Š¾ º¹Õ÷»úº¼½ø¼>ŒQ¾Š>�¾Q¿Š>’¿ù»ø½>ŒKQÀŠ>�ÀQÁŠÂÁ>’Âù»ø»ùµø·Q×>ŽÃQÄŠ¾ ÅÄÕ÷ÆúÅÇÈøÇ>ŒQÉŠ>�ÉQÊŠËÊ>’ËùÆøÈ>ŒðQÌŠÍÌ>�ÍQΊÏÎ>’ÏùÆøÆùµøµù¢ø¢=ÐŒ=Ñ�=ÒŽˆÓÑÒ�ÔÓø…ÕÔt=Ö’=׎ˆØÖ×�ÙØø…ÚÙtP ÛÐÕÚþÛ86 àá7Ý7 Þ7ßøÜAâã¶S=ä¹=åºùçøçAèãSR=éèÂêéß ë)êQpìëˆítìQîÞƒïøí ð+îíïQñÞƒòøí ó+ñíòQôÞ�õôðˆöõóp÷Ý�ø÷óˆùøæP1úöùpûßV�üäåXýüúûO þýýþþ86 77 7øÿ;ý Aâ¶S=¹=ºù ø A SQ=    ) Q‚ Qp +Õ +Õ\ mpƒ9 ‹9 ༠ը ÷úø€Q®  >ùø>Wùø= ÷ú ø þøƒ!øŽ "!€#Q9 $à#Ž %$� &"%þ&86*+7*(7 )ø'ù,ø,Q-(P.)ø‘/-.O 0//Q1(O 211Q32Q40 54ƒ635Q72Q80 98ƒ:79Q;2Q<0 =<ƒ>;= ?%:> @%6?¸ A@Õ÷BúACBøCþÕøBQD(QEDº FEÕ¨ GF÷HúGIHøIþøøHQJ(QKJˆL@K M%LøþM86R 7O7P7QøNùTøTº UPÕ÷VúUWVøWƒXQOˆYXPþYøV¸ ZPÕ÷[úZ\[ø\]Qƒ^]Oˆ_^Pþ_ø[þS86 de7*a7 b7 cø`ùføfQgaPhcÕ‘ighO jiiQkaQlkÇmlQª nmS÷oúnpoøpþjøoQqaPrbø‘sqrO tssQuaO vuuQwtQxjQyv9zRwxyQ{tQ|jQ}v9~R{|}QtQ€jQ�v9‚R€� ƒ%~‚ „%zƒ …(„ÕŽ †j…� ‡t†QˆaO ‰ˆˆƒ Ї‰þŠ86�‘7 Œ7 �7Ž7�ø‹;™›œ;X–Õ;™˜š;¥•ö;—S;.«2Aâ’¶S=“¹=”ºù�ø�Až’SS=Ÿž  &ŸA¡’SQ=¢¡ £)¢Q‚¤£Qp¥¤…¦Ž¥ù§ø§ö¨ªù¬ø¬=-­«ª/®0­› ¯®÷°ú¯¨°ø°Q±­ª ²±S©³²QSP-´³Q‚-µ­´>«µù©ø©=¶—° ·¶ ÷¸ú·¸¹ø¹ù¨ø¸ùºøº=½— ¿&½UA¾À’Q¿=*ÁÀQÂÁQÃÂÂÄ�ÃÇÅÄQª ÆÅS÷ÇúÆÈÇøÈùªøÇ>˜Á=*ɘ9Ê*ÉŒ¼ ËÊÕ÷ÌúËÍÌøÍùªøÌ= ΕQÏÁQÐÏ>›Á=*Ñ›9 ÒdÑŒ�9 ÓÐÒ¦QÔÁQÕÔŽ ÖÓÕŽ ×ÖÊ� ØÎ×>•Ø=Ù–�ÚÙÊ>–Úù»ø»ùªøª=Û—€ÜÛQ>—Üù§ø¨=Ý–º ÞÝø÷ßúÞàßøà= á•=â–P ãââ∠äáã>•ä>–øùßøß= å•=æ–Pçåæþç86ìí7 é7 ê7ëøè;¥ö÷;XòÕ;ýôõ;¥ñö;™øù;óS;.2Aâî¶S=ï¹=ðºùúøúAûîSS=üû ý&üAþîSQ=ÿþ )ÿQ‚Qùøöùø=-ª/ 0›  ÷ ú  ø Q ª  S© QSP-Q‚->ùø=ó° ý÷úøùøùø=ó &UA¾îQ=*QQÂëÇQª S¨ ÷!ú "#ø"Q$Q%$ª &%S>ô&ù!ø#>ôWù!ø!= 'ô÷(ú')(ø)ùø(>ø=**ø9+**é¼ ,+Õ÷-ú,.-ø.ùø-Q/O 0//>ö0Q1Q21ª 32Q÷4ú354ø5Q6Q76Q8P9êÕ‘:89O ;::9 <‹;9 =à7<>ö=ù4ø4= >ñ= ?öŽ @?+� A>@>ñA=Bò�CB+>òCùøùø=Dó€EDQ>óEùø=Fòº GFø÷HúGIHøI= Jñ=KòP LKKKˆ MJL>ñM>òøùHøH= Nñ=OòPPNOþP86 WX74R7 S7:T7 U7 VøQ;¥„…;¥~;Xxy;sS;¥no;ýˆ‰;¥‚ƒ;¥|};¥vw;¥rö;¥lm;¥†‡;¥€�;¥z{;ýtu;pq;.û2;ÑAñY�SAóZ’SAL[•SA«\¢SA0]¥S="^¨=_ªAá`«S=)a®=b±=c³Aâd¶S=e¹=fºAÝg»S=h¾=i¿AL jÁSùŠøŠQ ‹R  ŒE‹ �ŒQ ŽR  �EŽPé‘SSS© �‘��>l�A’[ S=“’Ç”“R« •”S© –W•õ÷—ú–˜—ø˜Q™RO š™™>nš= ›n= œl= �l= žn”Ÿ�žŽ  œŸƒ ¡›   ¢E¡>n¢= £l= ¤n  ¥D£¤Q¦RQ§¦Ž ¨¥§= ©nQ ªTQ«ªŽ ¬©«Q ­TQ®­Ž ¯¨®� °¬¯= ±lQ ²TQ³²Ž ´±³� µ°´  ¶Eµ>l¶ù—ø—Q·TO ¸··Aw¹[RS=º¹Q»TQ¼»…½º¼ ¾+½ÕøAw¿[RQ=À¿QÁTQÂÁ…ÃÀ Ä+ÃøQÅT= ÆlQ ÇTP 0ȸ¾ÄÅÆÇ>pÈAÉZTR=Êɬ ËÊS© ÌWËõ÷ÍúÌÎÍøÎQ ÏR=0Ðp>ÑÐ=0ÒÑ90ÓÏ�Ò>pÓùÍøÍAXÔpQ=ÕÔAXÖpR=×Ö…Ø××…ÙØ×…ÚÙ×A¥ÛpS= ÜÛƒÝøÕŽ ÞÜÝP àÕÕÕ  ß.’ÜàA¥áp%= âáAwãYSSR=äãAwåYSQR=æåAwçYSRR=èçP éäæèA/êY =ëêO ìëëQ íRƒ îìí  ïEî  ðEéAwñY =òñº óòtPéõóóó© ôõðï9ö‚ù÷ø÷öøúùüøü=-ýûª/þ0ý› ÿþ÷úÿøøQýª S©QSP-Q‚-ý>ûùùøù=s° ö© Wõ÷ ú  ø ùøø ù ø = s9‹  &ŽA† \=÷úUøQQª Q>tùø>tõùø= t÷úøùúøQQ>vk>xøª S÷ú øQ!O "!! #">v#ùø Q$O %$$Q &Rƒ '%& (B' )((ßP *)))ˆ +'*>v+Q,Q-,Q.Q/.90 (-/>x0ª 1R÷2ú132ø3Q4Q54= 6v 76Q8O 988”:79 ;(:5ƒ<ø;ƒ=ø5 >(=߈?<> @(?=AxQBQCB D@CƒEøD…FAE>xFù2ø2ùø=Gxº HGÕ÷IúHJIøJQKO LKK=MxŽ NLM>zNQOQPOª QPQ© RWQõ÷SúRTSøTQUO VUU=WxQ XR= Yv9Z,X�Y…[WZŽ \V[>z\ùSøS= ]r= ^v= _zQ`Qa`9 bUâô^_ÞßÚa� c]b>rcùIøIù ø ùúøú=ds€edQ>seù÷øø”fâô g(fƒhø×P ihhh  j(i߃ kj߃løg mlðŽ nkm� oßn9pyâUVAq`SS=rqÇsr« tsS© uWtõ÷vúuwxøwAwy`S=zyAw{`T =|{…}z|A/~`U=~O €>~€A�`SS=‚�ǃ‚« „ƒS÷…ú„†…ø†A/‡`U=ˆ‡O ‰ˆˆ9 Šàâ9 ‹ÀŠŽ Œ‹}Aw�`U =Ž�P �ŽŽŽ  �.‰Œ�>~�ù…ø…Q‘pº ’‘Õ÷“ú’”“ø”O •pp>~•ù“ø“A/–`U=—–O ˜——>€˜A™`SS=š™Ç›šV« œ›S÷�úœžŸøž  ô  ¡G â9 ¢à¡9 £$ ¢×Ž ¤£}>€¤ù�øŸA¥`SS=¦¥Ç§¦« ¨§S÷©ú¨ª©øª>€öù©ø©ù�ø�91«6 ×gA¬dSS=­¬¬ ®­S© ¯W®õ÷°ú¯±²ø±Q ³R ´ô  µG´âA¶Z%R=·¶9¸�³µ×·= ¹€Qº¸ƒ»øºŽ ¼¹»O ½¸¸� ¾¼½= ¿~>‚¿QÀp¼ ÁÀÕ÷ÂúÁÃÂøÃQ ÄRAÅZ%R=ÆÅ9ÇìÄâÆ= È~QÉÇƒÊøÉŽ ËÈÊO ÌÇÇ� ÍËÌ>‚ÍùÂøÂ= ΂… ÏÞÎQÐ«Ž ÑßÐQÒ«QÓß…Ô2Ó Õ+ÔÕø…ÖÒÕP ×ÖÖÖ� ØÑ×… Ù¾Ø� ÚÏÙ>|Úù°ø²= Û~… ÜÞÛ= Ý€QÞ«Ž ßßÞQà«Qáß…â2á ã+âÕø…äàãP åäää� æßå… çÝæ� èÜç>|èù°ø°ùvøxAé\SQ=êéÇëêR« ìëS÷íúìîïøîA/ð\ =ñðO òññA/ó\%=ôóO õôôA/ö\8=÷öO ø÷÷� ùõøŽ úùtA/û\T=üûO ýüüA/þ\U=ÿþO ÿÿ� ýŽ t”âò…t�t +ÕøP   .ú ô  G â9 . P ×××  . ú AdSS=¬ S÷úøQ R ô  GâAZ%R=9�×Aw\Q =Ž  QƒøŽ O � ! O "pp>„"Q#p¼ $#Õ÷%ú$&%ø&Q 'RA(Z%R=)(9*ì'â)Aw+\Q =,+Ž -,Q.*ƒ/ø.Ž 0-/O 1**� 201>„2ù%ø%= 3„… 4Þ3… 5!o� 645>|6ùøQ7pº 87Õ÷9ú8:;ø:O <pp… =Þ<… > oAw?\Q =@?Ž A>@� B=A>|Bù9ø;… CÞ… D o� ECDAwF\Q =GFŽ HEG>|Hù9ø9ùøùíøïAIdSS=JI¬ KJS÷LúKMNøMQ OR Pô  QGPâARZ%R=SR9T�OQ×SA/U\Q=VUO WVVQXTƒYøXŽ ZWYO [TT� \Z[O ]pp>†]Q^p¼ _^Õ÷`ú_a`øaQ bRAcZ%R=dc9eìbâdA/f\Q=gfO hggQieƒjøiŽ khjO lee� mkl>†mù`ø`= n†… oÞn… p\o� qop>|qùLøNQrpº srÕ÷túsuvøuO wpp… xÞwA/y\Q=zyO {zz… |{o� }x|>|}ùtøvA/~\Q=~O €� �Þo… ‚€�>|‚ùtøtùLøLùíøíùvøvAƒ\SQ=„ƒÇ…„%« †…S÷‡ú†ˆ‰øˆAŠ[ Q=‹Š« Œ‹R>ˆŒù‡ø‰>ˆõù‡ø‡= �ˆ© ŽW�õ÷�úŽ�‘ø�Q’RO1“’’ 1”“ 1•+”n9–•j2—c‚2˜— 2™&l˜g9šc™‚9œš› 9�&–œ_žc�™QŸž=  rAX¡p =¢¡ £%Ÿ¢Aw¤\RR=¥¤Aw¦\R =§¦…¨¥§ ©.ø£¨Ž ª ©>rª= «r= ¬|AX­p =®­ ¯%®ŸŽ °¬¯� ±«°>r±ù�ø‘= ²r= ³|AX´p =µ´Ž ¶³µ� ·²¶>r·ù�ø�= ¸rA¥¹p8= º¹� »¸º>r»A¼`SS=½¼Ç¾½I« ¿¾S© ÀW¿õ÷ÁúÀÂÁøÂ= ÃrQ ÄR Åô9 ƹ ÃÄÅ>rÆùÁøÁAÇZT =ÈÇ« ÉÈS© ÊWÉõ÷ËúÊÌËøÌ= ÍrQ ÎRAÏZT =ÐÏ9 ÑÙÍÎÐ>rÑùËøË= Òr9 Ó ÒþÓ86 ØŽ74Õ7 Ö7:×øÔAñÙ�SAóÚ’SALÛ•SA«Ü¢SA0Ý¥S="Þ¨=ߪAáà«S=)á®=â±=ã³Aâä¶S=å¹=æºAÝç»S=è¾=é¿AL êÁSùëøë9 ìWÕÖ×õöþì86ïp7îøíAñð�SA«ñ¢SùòøòAóñSQ=ôóÇõô« öõS÷÷úöø÷øøO ùîî  ú(ùöQûî ü+ûÕøPýúüþýø÷9þoîþþ86F7471øÿ;ùøQAM S> Q A¥ Q>  Q A¥ R>  Q1AQ  >QA%>QAM8>QAXT>QAMU>AQ >=Fþ8647Fø; ù!ø!Q"AM#S>#"Q $A¥%Q>%$Q &A¥'R>'&Q1(AQ ) >)(Q*A+%>+*Q,AM-8>-,Q.AX/T>/.Q0AM1U>10=42þ286456734ø3;9:Añ7�SAó8’Sù;ø;AP<8S==<Q >4P?>ø‘@=?APA7R=BA‘CB@AMD9S>DCO E@@A¥F9Q>FEAPG8Q=HGQ I4PJIÕ‘KHJO LKK  MELA¥N9R>NMQ1O4AQ P9 >POQQ4AR9%>RQAS8%S=TSÇUTR« VUS©WVøAPX8S=YXQZ4O [ZZP\[Õ‘]Y\O ^]]  _E^Q`4Qa`…baWPc_bAMd98>dcQe4AXf9T>feAMg9U>gs=4h9þh864lm73j75køi;pqAñn�SAóo’SùrørQ sjPtsøQuk”vutQwk”xwtQyk”zytP {vxzAP|oS=}|P~{ø‘}~Q€kQ�€Q‚kQƒ‚Q„kQ…„P †�ƒ…Q‡kQˆ‡Q‰kQЉQ‹kQŒ‹P �ˆŠŒQŽkQ�ŽQ�kQ‘�Q’kQ“’P ”�‘“  •D�””–†•¸ —–Õ  ˜D�”  ™D”†  šD†�P6›˜™šQ œj‘ �›œ©ž—øŽ Ÿ�žP6 †�”Q¡jO ¢¡¡‘ £ ¢AP¤nR=¥¤‘¦¥AM§pS>§¦O ¨A¥©pQ>©¨APªoQ=«ªP¬ŸÕ‘­«¬O ®­­  ¯E®A¥°pR>°¯Q1±jAQ ²p >²±Q³j©´—ISŵ³´A¶p%>¶µA·o%S=¸·Ç¹¸R« º¹S¥ »º—©¼»øAP½oS=¾½P¿£Õ‘À¾¿O ÁÀÀ  ÂEÁQÃjQÄÃ…ÅļPÆÂÅAMÇp8>ÇÆQÈjAXÉpT>ÉÈQÊkAMËpU>ËÊ=4ÌpþÌ861ÑÒ7Î71Ï71ÐøÍALÓ•SùÔøÔ„ÖÎR Ø&Ö×A/ÙÓ8Ø=ÚÙ„ÛÎR€ÜÛQ Ý&Ü×A/ÞÓ8Ý=ßÞQàÚº áàtP/ãáá©1âãÐÏO1äÚÚ”åäâQæÚ�çåæO1èßß”éèâQêß�ëéêP1ìçëþì86ïð7îøíALñ•Sùòøò„óîR€ôóQ õ&ô×Awöñ8õ =÷öþ÷86üý7ù71ú71ûøøALþ•S=ÿž= ùø91Ñùúû9ïù�t +!"n2‚2oP V ÿW   þ 86 "7 7ø ùøŽ  ƒ P ø…   Eþ86G7Fø;&%';M();X*øAL•S=˜=š=›=œ=�= ž=! ù+ø+Q1,91-B,Q1.91/B.A/0S=10AM2%S>21A3 S=43Ç54Q« 65S© 7W6õ÷8ú798ø9AM:%S=;:91<ÑS-/V�= W>=<9?Z>…@;?AMA%S>A@ù8ø8AB =CBÇDCQ« EDS© FWEõ÷GúFHGøHQI>(IAJ =KJÇLKR« MLS÷NúMONøO=P(O QPP9 RØQAXS( =TSPURT>(UùNøNAMV%S=WV=X(…YWXAMZ%S>ZYùGøGA¥[%Q>[A\ S=]\Ç^]R« _^S© `W_õ÷aú`baøb91cÑ -/V�d WedcO feeAwhT =ih9 jfiA¥k%Q>kjùaøaAwlRS=mlAXn%R>nm9oïQº pot© qWpõ÷rúqsrøsAXt%R=ut91vÑQ-/V�w WxwvQyx…zuyAX{%R>{zùrørAw|RQ=}|AX~% >~}A =€Ç�€« ‚�S© ƒW‚õ÷„úƒ…†ø…9‡ïRº ˆ‡t÷‰úˆŠ‰øŠAX‹% =Œ‹9�üR-/QŽ�…�ŒŽAX�% >��ù‰ø‰ù„ø†9‘ïRº ’‘t© “W’õ÷”ú“•”ø•AX–% =—–91˜ÑR-/V�™ Wš™˜Q›š…œ—›AX�% >�œù”ø”ù„ø„A/žQ=ŸžO  ŸŸA¥¡%%>¡ A¢ S=£¢Ç¤£« ¥¤S© ¦W¥õ÷§ú¦¨§ø¨A¥©%%= ª©91«Ñ8-/V�¬ W­¬«O ®­­9 ¯i®… °ª¯A¥±%%>±°ù§ø§AX²%8>²øA³ S=´³Çµ´« ¶µS© ·W¶õ÷¸ú·¹¸ø¹91ºÑ%-/V�» W¼»ºQ½¼Aw¾TT =¿¾ƒÀ½ø…Á¿À�ÂøÁAXÃ%8>ÃÂù¸ø¸AwÄTS =ÅÄAXÆ%T>ÆÅ9Ç ÈÇt© ÉWÈõ÷ÊúÉËÊøËAXÌ%T=ÍÌ9Îü†-/QÏÎ…ÐÍÏAXÑ%T>ÑÐùÊøÊA/ÒTS=ÓÒO ÔÓÓA¥Õ%U>ÕÔ9Ö ×Öt© ØW×õ÷ÙúØÚÙøÚA¥Û%U= ÜÛ9Ýü‡-/O ÞÝÝ9 ßØÞ… àÜßA¥á%U>áàùÙøÙAwâTQQ=ãâAXä%>äã9å æåt© çWæõ÷èúçéèøéAXê%=ëê9ìüˆ-/Qíì…îëíAXï%>ïîùèøèAwðTQR=ñðAXò%'>òñ9ó ôót© õWôõ÷öúõ÷öø÷AXø%'=ùø9úü‰-/Qûú…üùûAXý%'>ýüùöøöAwþT S=ÿþAX%>ÿ9ïTº t© Wõ÷úøAX%=9üT-/Q …  AX %>  ùøAw T Q=  AX%†> 9ïUº t© Wõ÷úøAX%†=9üU-/Q…AX%†>ùøA¥%‡>Aý%ˆ>õ9ïº t© Wõ÷ú ø 9!ü-/O "!!Aw#T R=$#9 %"$A¥&%‡>&%Aý'%ˆ>'WùøA/(T%=)(O *))A¥+%‰>+*9,ï'º -,t© .W-õ÷/ú.0/ø0A¥1%‰= 2193ü'-/O 4339 5Ø4… 625A¥7%‰>76ù/ø/Aw8T% =98AX:%Š>:99;ïº <;t© =W<õ÷>ú=?>ø?AX@%Š=A@9Bü-/QCB…DACAXE%Š>EDù>ø>AwFT8S=GFAXH%>HG9I JIt© KWJõ÷LúKMLøMAXN%=ON9PüŠ-/QQP…ROQAXS%>SRùLøL9Tïº UTt© VWUõ÷WúVXWøX9Yü-/QZY>*ZùWøWAw[T8R=\[Aw]T8 =^]=_* `.\^_AXa%‹>a`AwbTTS=cbAXd%Œ>dcA/eTT=feO1gffAQ h%�>hg9i jit© kWjõ÷lúkmløm9nü‹-/O onnO1pooŽ1qpƒ1rq" 1sEr”trrº ut$P/wuu©1vws#AwxTTQ=yxAwzTTR={zQ|v…}y|Q~v…{~ƒ€}Q�v…‚{�Qƒv…„yƒ�…‚„P1†€…AQ ‡%�>‡†AXˆ%Œ=‰ˆQŠo…‹‰ŠAXŒ%Œ>Œ‹ùlølAw�TU =Ž�AX�%�>�Ž9‘ ’‘t© “W’õ÷”ú“•”ø•AX–%�=—–9˜üŒ-/Q™˜…š—™AX›%�>›šù”ø”A/œTU=�œO ž��A¥ %Ÿ> ž9¡ï�º ¢¡t© £W¢õ÷¤ú£¥¤ø¥A¥¦%Ÿ= §¦9¨ü�-/O ©¨¨9 ªØ©… «§ªA¥¬%Ÿ>¬«ù¤ø¤=G­%þ­86 °±7G¯ø®;ý³´AL²•SùµøµA¶² Q=·¶ª ¸·Q÷¹ú¸º»øºQ¼¯Q½¼Aw¾²Q =¿¾¸ À½¿>³Àù¹ø»>³õù¹ø¹= Á³© ÂWÁõþÂ86Å27 ÄøÃùÆøÆQÇÄQÈÄQÉÄ Ê(ÈÉ Ë(ÇÊþË86ÎV 7ÍøÌùÏøÏ…ÐÍÍ…ÑÐÐ…ÒÑÍþÒ86 ר7 Ô7 Õ7ÖøÓùÙøÙƒ ÚÕÔƒÛøÖ Ü+ÛÕø9ÝÎÜŽ ÞÚÝ� ßÔÞþß86æç7á7â7ã7ä7åøàùèøè…éäå…êåâ…ëäã…ìéáP íêëì”îííˆïéî…ðéï…ñðïˆòñXþò86üý7ô7õ7ö7÷7ø7ù7ú7ûøóùþøþ…ÿú÷…ûöP ÿõ B…ô…úø…ûùP ô B…õ�   ( ߈ t   + Õøþ 86ÿ77ø ùøˆø…ƒø (Õ� (…t …ˆ~þ86 ÿ77øù+ø+ƒ,øƒ-ø….,- /.!". 0.#$. 1.%&. 2.'(. 3.)*. 4(ß 541…605�7ø6ˆ8/7…92�:89�;:3þ;86?ÿ7=7>ø<ù@ø@ A=¸ BAt÷CúBDCøD9E => FEþFøC9G t>…HGƒIø=9J I>ƒKHJ LKþL86Q 7N7O7PøMùRøR9S?OP�TøS9U?NP�VTU…WO…XWN…YVXˆZøY [+ZÕøþ[86_ÿ7]7^ø\;ÒÑËùÓøÓ Ô+]Õø ÕÔ Ö+ÕÕø…×Ö̃Ø^„ˆÙØŠ Ú+ÙÕø…ÛÚÍ Ü× Ý+Ü!"n2ÞÝ 2ß'ÞÎ àÛ á+à!"n2âá 2ã'âÏoä߃å×äoæãƒçÛæ„2èãЀ2éèß ê&éi AXëÑê=ìë„2íãЀ2îí߀2ïî ð&ïi AXñÑð=òñ ó.ìòå€2ôã„2õôЀ2öõß ÷&öi AXøÑ÷=ùø€2úã„2ûúЀ2üû߀2ýü þ&ýi AXÿÑþ=ÿ .ùå .óçþ86 77 ø;¥'(ù)ø)…*~…+*Ž ,~  -,… . -Ž /+� 0/  10… 2.13+…43+Ž 54  65… 726>'7AX8'S=98…:+Q;�<:; =<…>=…?+…@?+ A@…B>A�C9BAXD'S>DC= E'ˆ FE>'F= G'‘ H&GþH86 L"7 J7KøIùMøMP NKKKƒ OJNP PKKK� QJPˆ ROQ… SRRþS86 Z[7U7V7W7X7 YøT;¥bc;¥de;?f;.¥2ùgøg h1Õ\X i.UVhˆjUi…kjj…lWWƒmøl…nkmƒoøn¸ poÕ÷qúprqørþøq soP tiii9 uLtUQvuƒwøvƒxøW y+xÕø9zÎy…{wz�|v{ƒ}ø|¸ ~iU©~XÕƒ€X� �Y]  ‚%�_  ƒ‚� „ƒƒ …ƒˆ †„…9 ‡L†iƒ ˆ‡ƒ‰øs Š+‰Õø9‹ÎŠŽ Œˆ‹� �‡ŒP Žiii¸é�†Ž© ��3ö…‘i…’‘X…“’sP ”€€€� •”�Ž –�|  —+–`_  ˜—…™}}Ž š�™ƒ ›—ˆ œš›P �|||� ž�œ>bžP Ÿ}}}ƒ  œŸ>d ù¡ø¡ö¢¤ù¦ø¦=-§¥ª/¨0§› ©¨÷ªú©¢ªøªQ«§ª ¬«S©­¬QSP-®­Q‚-¯§®>¥¯ù£ø£=2°f³ ±°a÷²ú±²³ø³ù¢ø²ù´ø´= ¶d… ·¶˜>d·= ¸b= ¹dŽ º¹=2»fo¼»…½¼“=2¾fo¿¾Ž À•¿9 Á½À… ºÁ� øÂ>bÃùµøµù¤ø¤=2Äf€2ÅÄ>fÅù¡ø¢= Æb  Ç(ÆöþÇ86 ÊÙ7 ÉøÈAñË�SùÌøÌAwÍËSSR=ÎÍAwÏËSQR=ÐÏAwÑËSRR=ÒÑP ÓÎÐÒA/ÔË =ÕÔO ÖÕÕƒ ×ÖÉ  ØE×  ÙEÓAwÚË =ÛÚº ÜÛtPéÞÜÜÜ© ÝÞÙØþÝ86Jäå7Fà7 á7Gâ7 ãøß;¥ñò;ýõö;ïîð;óô;EAñæ�SAóç’SALè•SAÝé»S=ê¾=ë¿ù÷ø÷Q øà  ùEø úùQ ûà  üEûPéþááá© ýþüúQÿàO ÿÿ>ñ= ñ= ñ”ýŽ ýƒ   E>ñ= ñ  DýQ àQ  Ž  A¥ îQ> ýA¥ îS> ýAè S=ÇR« S© Wõ÷úø= ñQ âQŽ Q âQŽ  � Q âQŽ ý�   !E A¥"îS>"!ùøA¥#îR>#ýQ $â ÷%ú$&%ø&= 'ñQ (â Q)(Ž *')Q +â Q,+Ž - ,� .*-Q /â Q0/Ž 1ý0� 2.1  3E2A¥4îR>43ù%ø%Q5âO 655Q7â 8+7ÕøQ9â :+9øQ;âA¥<îS= =<Q >âP 0?68:;=>>ó?© @Wãõ÷Aú@BAøBQ Cà=0Dó>ED=0FE90GCýF>óGùAøAA¥Hó%= IHA¥JîS>JIAXKó =LKAXNîM>NLA¥Oó8= POA¥RîQ>RPQ Sà9 TÊSA¥Uî >UTQ VàA¥Wî%>WVA¥XîS= YXA¥Zî = [Z”\Y[ ](\AX^î8>^]AX_óQ=`_AXaî>a`AXbóR=cbAXdî'>dcAXeî'=feAXgî'=hg…ifhAXjî>jiAXkî=lkAXmî=nm…olnAXpî†>poA¥qóS= rqA¥sîT>srA¥tîT= utAXvî=wvƒxøwŽ yuxA¥zîU>zyAw{èTQS=|{ }(|øAXî~>}AX€î~=�€ƒ‚�øAXƒî~=„ƒ�…„øˆ†‚…Q‡â ˆ(‡Õ…‰††P Љ‰‰Q ‹â… ŒŠ‹  �%ŒŽ Ž�ˆA¥�îT= ��AX‘î=’‘P ”’’’  “.Ž�”A¥•î‡>•“P –ˆˆˆAX—î=˜—P š˜˜˜  ™.–šA¥›îˆ>›™Qœâ �+œÕøAXžî‰>ž�A¥Ÿî‡=  ŸA¥¡îŠ>¡ AX¢î‰=£¢º ¤£Õ© ¥W¤õ÷¦ú¥§¦ø§Aw¨èT8Q=©¨AXªî8=«ªQ¬âA¥­î‡= ®­9 ¯Zø©«¬®A¥°îŠ>°¯ù¦ø¦Q±â ²+±ÕøAX³î>³²= ´ñQ1µâQ¶µŽ ·´¶Q1¸âQ¹¸Ž º ¹� »·º  ¼E»A¥½î‹>½¼A¥¾î‹= ¿¾  ÀDý¿  ÁEÀA¥ÂîŒ>ÂÁQÃâ Ä+ÃÕøAXÅî�>ÅÄQÆâ Ç+ÆøAXÈî�>ÈÇAXÉî�=ÊÉAXËî�=ÌË…ÍÊÌ…ÎÍÍAXÏîŸ>ÏÎQ Ðâ  Ñ(ÐöA¥ÓîÒ>ÓÑQÔâ Õ+Ô„øAX×îÖ>×ÕAXØîÖ=ÙØAXÚîÖ=ÛÚ…ÜÙÛAXÞîÝ>ÞÜQßâ à+ßÕøAXâîá>âàQ ãâ  ä(ãöA¥æîå>æäQçâ è+çÕøAXêîé>êèAXëî=ìëAXíî~=îí…ïîƒðï ñ+ðÕø…òìñ ó(òìAXõîô>õóA/öçSS=÷öO ø÷÷ ùBøA/úçSQ=ûúO üûû ýBü�þùýA/ÿçSR=ÿO  B�þˆKQâ (Õ…¼ ÕAý î > AX îV> Q àO1   AQ î> A¥î>AwèTQ =º Õ÷úøº Õ>õùø>õõùø= õ© Wõ÷úøA/èTR=O   (íAw!èTQ ="!ˆ#"P $###  % $A¥&î>&%ùøAw'èTR =('AX*î)>*(=J+îþ+86 /07J-7.ø,ù1ø1Q 2- Q 3- 9 4×23.Q 5-Q6-P 8666  7.458þ786 ?@7J:7 ;7 <7=7 >ø9;¥GH;¥Bö;¥EF;¥Aö;XCDùIøIQ J:”KJ; L(KÕQ M:� N;M  OENQ P:”QPO R(QÕQ S:”TSO U(TÕQV:º WLÕ÷XúWYXøY9 Z/:U>AZQ[:º \[Õ© ]W\õ÷^ú]_`ø_Qa: Qb:Qc:…dbc e.aødQf: Q g:”hgOQ i:”jiO9 kæRhjefQ l:Q m:”nlmQ o:Q p:”qopQ r:”sr;Q t:”ut;9 vüLVnqsuef…wkv>Cwù^ø`Qx: 9yþRxQz: 9{ LVz…|y{>C|ù^ø^= }A=~CŽ }~Ž €L©�>=øŽ ‚€�>B‚ùXøX= ƒAƒ „ƒQ …:… †„…ˆ ‡†3Q ˆ:ˆ ‰ˆ3Pé‹>>>© Š‹‰‡Ž ŒŠL>EŒQ�:º Ž�Õ© �WŽõ÷�ú�‘�ø‘Q ’:Q“:ƒ”ø“Ž •’”ˆ –•3Q —:”˜—;™˜ š(™ÕŽ ›–š= œEQ�:P Ÿ���  ž.œ›Ÿ>Ežù�ø�Q :º ¡ Õ© ¢W¡õ÷£ú¢¤£ø¤Q ¥:Ž ¦¥ §;Q ¨:”©§¨Ž ª¦©� «;ª  ¬E«Q ­:� ®¬­  ¯E®Q°:Q±:…²°±Q ³: Q ´: Q µ:”¶µ¯ ·+¶Õø9 ¸×³´·ƒ ¹¸Q º:… »¹ºQ ¼:”½¼¯ ¾+½Õø9¿þ¾²Ž À»¿Q Á:”ÂÁ¬ Ã+ÂÕø9Ä ÃV²Ž ÅÀÄQ Æ:… ÇÅÆ¸ ÈKÕ©ÉÈøÕQÊ:ƒËøÊ…ÌÉË= ÍEŽ ÎÇÌQÏ:P ÑÏÏÏ  Ð.ÍÎÑ>EÐù£ø£= ÒE= ÓB� ÔÒÓ… ÕÔ<>GÕQ Ö:9×ÅÖº Ø×Õ© ÙWØõ÷ÚúÙÛÚøÛQ Ü:9ÝÅÜQÞ:9ß_VÞ…àÝ߃áøà= âGŽ ãâá>G㺠äLÕ÷åúäæåøæ= çGQ è:Qé:9êéRŽ ëèêQì:9íQLVìŽ îëíŽ ïîL… ðï<� ñçð>GñùåøåùÚøÚQò:º óòÕ© ôWóõ÷õúôöõøöQ ÷:Q ø:”ù÷ø ú(ù9 û×’úQüû= ýGQþ:…ÿþüƒøÿŽ ý>GQ :”;º Õ÷úøQ :”O  (Õ9 ×’UQ  = GQ :…  Q:9þ …Q:9 ú……Ž <©>=øŽ �  >Gùøùõøõ= Gþ86 7 7 øA« ¢SAá!«Sù"ø"¨ #© $W#õ÷%ú$&%ø&Q'9 (p'Ž )(~þ)ø%A*!SS=+*Ç,+« -,S© .W-õ÷/ú.0/ø0Aw1!S=21Aw3!T =43…524A6!SS=76Ç87« 98S÷:ú9;:ø;A/<!U==<O >==9 ?à9 @À?Ž A@5AwB!U =CBP ECCC  D.>AEþDø:A/F!U=GFO HGGþHø/AI SQ=JIÇKJR« LKS© MWLõ÷NúMONøOA/P %=QPO RQQA/S 8=TSO UTT� VRUŽ WVtA/X T=YXO ZYYA/[ U=\[O ]\\� ^Z]Ž _^tA/`  =a`O baa”cb…dct�edt f+eÕøP hfff  g._WhAwi Q =jiŽ kgjþkøNA/l Q=mlO nmmþn86 st7 p7q7 røoA«u¢SAáv«S=)w®=x±ùyøy¨ zr© {Wzõ÷|ú{}|ø}Q~p9 p~9 €pÕŽ �€ùP ƒqqq  ‚.�ƒþ‚ø|A„vSS=…„dž…« ‡†S© ˆW‡õ÷‰úˆŠ‰øŠAw‹vS=Œ‹Aw�vT =Ž�…�ŒŽA�vSS=‘�Ç’‘V« “’S÷”ú“•”ø•9 –àp9 —$ –qŽ ˜—�þ˜ø”A™vSS=š™Ç›š« œ›S÷�úœž�øžþöø�A/ŸvU= ŸO ¡  þ¡ø‰A¢uSQ=£¢Ç¤£R« ¥¤S© ¦W¥õ÷§ú¦¨§ø¨A/©u%=ª©O «ªªA/¬u8=­¬O ®­­� ¯«®Ž °¯t9 ±.pP ³qqq  ².±°³Aw´uQ =µ´Ž ¶²µþ¶ø§A/·uQ=¸·O ¹¸¸þ¹86 ¿À7J»7 ¼7½7 ¾øº;ýÉÊAóÁ’SA«Â¢SAáëS=)Ä®=űAâÆ¶S=ǹ=ȺùËøË9 Ìs¼½¾¨ ;¨ ÎÍ÷ÏúÎÐÑøÐAÒÆSS=ÓÒª ÔÓS>ÉÔùÏøÑ>ÉWùÏøÏ= ÕÉ© ÖWÕW÷×ú֨׸ØþÌø×Q Ù»AÚÁ%R=ÛÚ9Ü�Ù¼½ÛQÝÜƒÞøÝŽ ßÌÞO àÜÜ� áßàþá86 éê7 ã7 ä7å7æ7ç7 èøâ;ýìíAáë«Sùîøî÷ïúèðñøðAòëSS=óòÇôó« õôS>ìõùïøñ>ìõùïøï= öì© ÷Wöõ÷øú÷ùøøù91ú6 åæQûúŽ üãûQýúŽ þäýQÿã…2ÿ +çøŽ þ� üþøøƒøåŽ ä  (ãƒ ãƒøæ9 ÎŽ  � ã ¨ è© W õ÷ú ø…tåƒøŽ  þøþ 8617 øAñ�SùøAPR=Pø‘O1QQº ß©! ßP1"!!ˆ1#"Q$#…%$t�&%tQ'#…('tƒ)t(P1*&)þ*86 ./71,7-ø+Añ0�SA«1¢S=2±=3Àù4ø4A51' =65 7)6Qp87Aw90%S=:9 ;(:ø <; =(-Õ…><=ƒ?8ø @%>?V�A32XBA,@O CBBþC861GH7JE7FøDAñI�SùJøJQ KE LKQ MEˆNøF  OHLMNQ PEQQE Ž ROQ� SPR91TSþT86 X07JV7WøUAñY�SALZ•SA«[¢S=\±=]Àù_ø_Q `V÷aú`baøbAPcYS=dcQ eVPfeÕ‘gdfO hgg  iEhQjikjQliP1mklAwnZRR=onŽ1pmoQ1qV!A/rY%=srO1tss…1uqt�1vup9 w.vWQ xV… ywxþyøaQzV"º {zÕ© |W{õ÷}ú|~}ø~QVƒ€ø…�€^Q‚V"…ƒ�‚Q„Vƒ…„ƒ †(…ø91‡GV†9 ˆ.‡WQ‰ˆQŠV91‹GVŠ9 Œ.‹WQ�ŒQŽV��Žƒ91�GV�9 ‘.�WQ’‘P “‰�’Q ”V… •“”þ•ø}Q–V91—GV–9 ˜.—WQ ™V… š˜™þš86 žŸ7Jœ7 �ø›;ý§¨;ý©ªAñ �SAL¡•SA«¢¢SAᣫS=)¤®=¥±=¦Àù«ø«Q¬œ ­¬÷®ú�¯°ø¯A±¢SQ=²±Ç³²« ´³S>§´ù®ø°>§õù®ø®= µ§÷¶úµ·¸ø·A¹¢' =º¹¬ »ºS>©»ù¶ø¸>©õù¶ø¶= ¼©© ½W¼õ÷¾ú½¿¾ø¿9 ÀXœ­þÀø¾Q Áœ÷ÂúÁÃÂøÃQ Äœ ÅÄ9 ÆsÅ­�Q Çœ… ÈÆÇþÈøÂQÉœ"º ÊÉÕ© ËWÊõ÷ÌúËÍÌøÍQΜƒÏÎø…ÐÏ^QÑœ"…ÒÐÑQÓœƒÔÓÒ Õ(ÔøQÖœQל�Ø×ÒP ÙÕÖØQ Úœ ÛÚQ ÜœQÝÙˆÞøÝ  ßHÛÜÞ9 àsß­�QáàQ ✠ãâQ äœQåÙˆæøå  çHãäæ9 èsç­�QéèQ êœ ëêQ ìœQíÙˆîøí  ïHëìî9 ðsï­�QñðP òáéñQ óœ… ôòóþôøÌQ õœ öõQ ÷œQøœˆùøø  úHö÷ù9 ûsú­�Q üœ… ýûüþý86 7Jÿ7 7øþ;¥;ý;¥;¥;ý;ý;¥;ýAñ�SAó’SAL•SA«¢SAá«S=) ®= ±Aâ ¶S= ¹= º=ÀùøQ ÿQ !ÿQ "ÿ9 #"… $!#>$÷%ú&'ø&A(SS=)(Ç*)ª +*S>+ù%ø'>õù%ø%= ,÷-ú,./ø.A0SQ=10Ç21Rª 32S>3ù-ø/>õù-ø-= 4© 5W4õ÷6ú576ø7A/8Q=98O :99Q ;ÿ… <:;><ù6ø6÷=ú>?ø>A@ SS=A@¬ BAS>Bù=ø?>õù=ø== C÷DúCEFøEQG¼ HGÕ>HùDøF>õùDøD= I© JWIõ÷KúJLKøLQ MÿQ NÿAO%R=PO9QìMNP= RQSQƒTøSŽ URTQ VÿO WQQ… XVW� YUX>YùKøKQZº [ZÕ÷\ú[]\ø]Q ^ÿO _… `^_>`ù\ø\Qaÿº baÕ© cWbõ÷dúcedøe= fQ gÿQhÿƒiøhŽ jgiQ kÿ lk9 ml… njmQoÿP qooo  p.fnq>pùdødQ rÿ srQ tÿ  uGst>uQvÿº wvÕ© xWwõ÷yúxzyøzQ {ÿQ |ÿ  }D{|Q ~ÿ  D}~  €E>€Q�ÿQ‚ÿ ƒƒø‚…„�ƒƒ…ø„ †…= ‡Q ˆÿP І††  ‰.‡ˆŠ  ‹E‰>‹Q Œÿ �Œ= Ž  �G�Ž= �Q‘ÿ Q’ÿ …“‘’P •“““  ”.��•  –E”>–ùyøyQ —ÿ Q ˜ÿQ™ÿP ›™™™  š.—˜›Q œÿ Q�ÿP Ÿ���  ž.œŸQ ÿ Q¡ÿ9 ¢éšž  ¡= £Q¤ÿ 9 ¥¿ÿ£¤… ¦¥¢Q§ÿº ¨§Õ© ©W¨õ÷ªú©«ªø«ƒ ¬¢Q ­ÿ… ®¬­9 ¯žÿ… °®¯Q±ÿƒ²ø±Ž ³°²= ´QµÿP ·µµµ  ¶.´³·>¶ùªøª= ¸� ¹¸¦>¹Q ºÿ9»Åºº ¼»Õ© ½W¼õ÷¾ú½¿¾ø¿QÀÿ9Á_ À= ÂQ Ãÿ9ÄÅÃ…ÅÄÁƒÆøÅŽ ÇÂÆQ ÈÿQ Éÿ9 ÊÉ… ËÈÊŽ ÌËÁ� ÍÇÌ>Íù¾ø¾QÎÿº ÏÎÕ© ÐWÏõ÷ÑúÐÒÑøÒQ ÓÿQ Ôÿ”ÕÓÔ Ö(Õ9 ××’ÖQØ×QÙÿ9 Úé’ÙÖÕ= ÛQÜÿ…ÝÜØƒÞøÝŽ ßÛÞQàÿQ áÿ âáQ ãÿ  äGâãQåÿ9 æ¿ÿäåŽ çæà… èçÚ� éßè>éùÑøÑ= êþê86 òó7Fì7 í7Gî7 ï7 ð7 ñøë;¥;ý;ý  ;ý;¥;¥ö;X;S;.P2Añô�SAóõ’SALö•SA«÷¢SA0ø¥S="ù¨=úªAáû«S=)ü®=ý±=þ³Aâÿ¶S=¹=ºAÝ»S=¾=¿=Àùø÷úïøAõTR=¬ S>  ùø> õùø= ! © "W!õ9J#äìíî"¨ $ï© %W$õ÷&ú%'&ø'A/(ôSS=)(O *))A/+ôSQ=,+O -,,A/.ôSR=/.O 0//P61*-0T621= 3‘ 42  5E49 6?#5—øõ� 736>7= 8‘ 92   :E99 ;?#:šøõ� <8;><= =‘ >2   ?E>9 @?#?Ÿøõ� A=@>A= B9 C#õrQDîŽ ECD� FBE>F= GQ Hî� IGH>I= JþJø&9K‚ùLøLöMOùQøQ=-RPª/S0R› TS÷UúTMUøUQVRª WVS©XWQSP-YXQ‚-ZRY>PZùNøN=[° \[K© ]W\õ÷^ú]^_ø_ùMø^ù`ø`=b9c‹b d&cŽA† e÷d=fe÷gúðhiøhQjfQkjª lkQ>lùgøi>õùgøg= m÷númonøoùOønQpfQqp>k>øª rqS÷súrtuøtQvfO wvv xw>xùsøuQyfO zyyQ {ìƒ |z{ }B| ~(}ßP ~~~ˆ €|>€Q�fQ‚�QƒfQ„ƒ9… }‚„>…ª †qR÷‡ú†ˆ‡øˆQ‰fQЉ= ‹ Œ‹Q�fO Ž��”�ŒŽ �(�Šƒ‘ø�ƒ’øŠ “(’߈”‘“ •(”=–Q—fQ˜— ™•˜ƒšø™…›–š>›ù‡ø‡ùsøs=œº �œÕ÷žú�ŸžøŸQ fO ¡  =¢Ž £¡¢>£Q¤fQ¥¤ª ¦¥Q© §W¦õ÷¨ú§©¨ø©QªfO «ªª=¬Q ­ìQ ®#= ¯9°,c­®¯…±¬°Ž ²«±>²ù¨ø¨= ³= ´= µQ¶fQ·¶9 ¸?#´µ·W� ¹³¸>¹ùžøžùaøaùOøO=º€»ºQ>»ùLøMQ ¼#9½y¼ðñ9 ¾#W½A¿÷SQ=À¿ÇÁÀ%« ÂÁS÷ÃúÂÄÅøÄAÆö Q=ÇÆ« ÈÇR>ÈùÃøÅ>õùÃøÃ= É© ÊWÉõ÷ËúÊÌÍøÌQÎìO1ÏÎÎ 1ÐÏ 1Ñ+Ðn9ÒÑj2Óþ‚2ÔÓ 2Õ&lÔg9ÖþÕ‚9ØÖ× 9Ù&ÒØ_ÚþÙÕQÛÚ= ÜQÝ## Þ%ÛÝAwß÷RR=àßAwá÷R =âá…ãàâ ä.øÞ㎠åÜä>å= æQç## è%çÛŽ é¾è� êæé>êùËøÍ= ëQì##Ž í¾ì� îëí>îùËøË= ïQ ð#$� ñïð>ñ= òþò86 øù7Fô7 õ7Gö7 ÷øóAñú�SAóû’SALü•SA«ý¢SA0þ¥S="ÿ¨= ªAá «S=) ®= ±= ³Aâ ¶S= ¹= ºAÝ »S= ¾= ¿= Àù ø 9 òôõö÷õöþ 86  67  7  ø ;¥  Añ �SAó ’SA« ¢SAá «S=) ®= ±AL  ÁSù ø >  A  SS=  Ç  I«   S© W õ÷! ú " ! ø" = #  9 $ Ê  % $ 9 & ¹ #  % > & ù! ø! A'  T =( ' « ) ( S© * W) õ÷+ ú* , + ø, = -  A.  T =/ . 9 0 Ù-  / > 0 ù+ ø+ = 1  9 2 1 þ2 86F5 6 7K4 ø3 ;7 8 ù9 ø9 Q: 4 AM; 7 S>; : Q < 4 A¥= 7 Q>= < Q > 4 A¥? 7 R>? > Q1@ 4 AQ A 7 >A @ QB 4 AC 7 %>C B QD 4 AME 7 8>E D QF 4 AXG 7 T>G F QH 4 AMI 7 U>I H Q1J 4 AQ K 7 >K J =FL 7 þL 86 O 71N øM AóP ’S=Q ´=R µùS øS AT P %Q=U T |2V U oW V P X N W VY Q R XZ Y X ÕO [ Z Z þ[ 86_ ` 7] 7^ ø\ Aa b ÄSùd ød f &] c „g f €h g ^ j &h i A/k b Sj =l k þl 86Po p 7On øm ;s r t Aa q ÄSùu øu Qv n Qw n Qx w Qy v 9z _ y SŽ{ z x Q| w Q} v 9~ _ } SŽ ~ | �€ {  Q� w Q‚ v 9ƒ _ ‚ SŽ„ ƒ � �… € „ Q† w Q‡ v 9ˆ _ ‡ Sމ ˆ † �Š … ‰ AM‹ r S>‹ Š QŒ w Q� v 9Ž _ � QŽ� Ž Œ Q� w Q‘ v 9’ _ ‘ QŽ“ ’ � �” � “ Q• w Q– v 9— _ – QŽ˜ — • �™ ” ˜ Qš w Q› v 9œ _ › QŽ� œ š �ž ™ � AMŸ r Q>Ÿ ž Q  w Q¡ v 9¢ _ ¡ RŽ£ ¢   Q¤ w Q¥ v 9¦ _ ¥ Rާ ¦ ¤ �¨ £ § Q© w Qª v 9« _ ª Rެ « © �­ ¨ ¬ Q® w Q¯ v 9° _ ¯ Rޱ ° ® �² ­ ± AM³ r R>³ ² =P´ r þ´ 864¸ ¹ 73¶ 7O· øµ ;½ ¾ Añº �SAó» ’SAa ¼ ÄSù¿ ø¿ 9PÀ o · Q Á ¶ P Á øQà À ”Ä Ã Â QÅ À ”Æ Å Â QÇ À ”È Ç Â PÉ Ä Æ È øQÊ À QË Ê QÌ À QÍ Ì QÎ À QÏ Î P Ð Ë Í Ï QÑ À QÒ Ñ QÓ À QÔ Ó QÕ À QÖ Õ P × Ò Ô Ö QØ À QÙ Ø QÚ À QÛ Ú QÜ À QÝ Ü P Þ Ù Û Ý  ß D× Þ ”à Ð ß ¸ á à Õ  â D× Þ  ã DÞ Ð  ä DÐ × P6å â ã ä Q æ ¶ ‘ ç å æ ©è á øŽ é ç è P6ê Ð × Þ Që ¶ O ì ë ë ‘ í ê ì APî º R=ï î ‘ð ï É AMñ ½ S>ñ ð O ò É É A¥ó ½ Q>ó ò  ô Eé A¥õ ½ R>õ ô Q1ö ¶ AQ ÷ ½ >÷ ö Qø ¶ ©ù á ISÅú ø ù Aû ½ %>û ú Aü » %S=ý ü Çþ ý R« ÿ þ S¥ !ÿ á ©!!ø  !Eí Q!¶ Q!!…!!!P!!!AM!½ 8>!!Q!¶ AX !½ T> !!AM !½ U> !s=4 !½ þ !86,!-!ø !;0!1!= !!= !!=1!!=!!=!!=!!P 3 !!!!!!!Añ.!�SAó/!’Sù2!ø2!AP3!/!S=4!3!Q 5! !P6!5!ø‘7!4!6!AP8!.!R=9!8!‘:!9!7!AM;!0!S>;!:!O =!!/!Q=?!>!Q @! !PA!@!Õ‘B!?!A!O C!B!B!  D!EC!A¥E!0!R>E!D!Q1F! !AQ G!0! >G!F!QH! !AI!0!%>I!H!AJ!/!%S=K!J!ÇL!K!R« M!L!S©N!M!øAPO!/!S=P!O!QQ! !O R!Q!Q!PS!R!Õ‘T!P!S!O U!T!T!  V!EU!QW! !QX!W!…Y!X!N!PZ!V!Y!AM[!0!8>[!Z!Q\! !AX]!0!T>]!\!AM^!0!U>^!s=4_!0!Q`!_!>!`!A*!a!!Q=b!a!c!b!>a!c!Q d!_!>!!d!Q e!_!>#!e!Q1f!_!>$!f!Qg!_!>&!g!Qh!_!>(!h!Qi!_!>)!i!Qj!_!>+!j!ý86Š!-!øk!;�!Ž!= n!m!= p!o!=1r!q!=t!s!=v!u!=x!w!P 3l!n!p!r!t!v!x!={!z!=}!|!=!~!=�!€!P5y!{!}!!�!Añ‹!�SAóŒ!’Sù�!ø�!Q �!l!P‘!�!øQ’!y!”“!’!‘!Q”!y!”•!”!‘!Q–!y!”—!–!‘!P ˜!“!•!—!AP™!Œ!S=š!™!P›!˜!ø‘œ!š!›!Q�!y!Qž!�!QŸ!y!Q !Ÿ!Q¡!y!Q¢!¡!P £!ž! !¢!Q¤!y!Q¥!¤!Q¦!y!Q§!¦!Q¨!y!Q©!¨!P ª!¥!§!©!Q«!y!Q¬!«!Q­!y!Q®!­!Q¯!y!Q°!¯!P ±!¬!®!°!  ²!Dª!±!”³!£!²!¸ ´!³!Õ  µ!Dª!±!  ¶!D±!£!  ·!D£!ª!P6¸!µ!¶!·!Q ¹!l!‘ º!¸!¹!©»!´!øŽ ¼!º!»!P6½!£!ª!±!Q¾!l!O ¿!¾!¾!‘ À!½!¿!APÁ!‹!R=Â!Á!‘Ã!Â!œ!AMÄ!�!S>Ä!Ã!O Å!œ!œ!A¥Æ!�!Q>Æ!Å!APÇ!Œ!Q=È!Ç!PÉ!¼!Õ‘Ê!È!É!O Ë!Ê!Ê!  Ì!EË!A¥Í!�!R>Í!Ì!Q1Î!l!AQ Ï!�! >Ï!Î!QÐ!l!©Ñ!´!ISÅÒ!Ð!Ñ!AÓ!�!%>Ó!Ò!AÔ!Œ!%S=Õ!Ô!ÇÖ!Õ!R« ×!Ö!S¥ Ø!×!´!©Ù!Ø!øAPÚ!Œ!S=Û!Ú!PÜ!À!Õ‘Ý!Û!Ü!O Þ!Ý!Ý!  ß!EÞ!Qà!l!Qá!à!…â!á!Ù!Pã!ß!â!AMä!�!8>ä!ã!Qå!l!AXæ!�!T>æ!å!Qç!y!AMè!�!U>è!ç!=4é!�!Qê!é!>‚!ê!A*!ë!‚!Q=ì!ë!í!ì!>ë!í!Q î!é!>ƒ!î!Q ï!é!>„!ï!Q1ð!é!>…!ð!Qñ!é!>†!ñ!Qò!é!>‡!ò!Qó!é!>ˆ!ó!Qô!é!>‰!ô!ý86ú!-!øõ!;"ÿ!þ!;"""=÷!ö!ù"ø" "&÷!RAQ "ÿ!"=1""P""øøAM ""S> ""  "&÷!RAQ "ÿ! "=1 " "AQ ""Q> " "=B""Q"">ø!"A*!"ø!Q="""">""Q1"">ù!"ý86"-!ø";¥""#"=""=1""PB"""Añ"�SA«"¢SAá"«S="°= "²AL !"ÁSù$"ø$"AP%""=&"%"Q1'""P("'"Õø‘)"&"("AP*""=+"*"Q1,""P-","øø‘."+"-"O /"."."Q0"."P 1"0"0"0"ˆ 2"/"1"O 3")")"Q4")"P 5"4"4"4"ˆ 6"3"5"ƒ 7"2"6"A8""SS=9"8"Ç:"9" « ;":"S÷<"ú;"=">"ø="9 ?"à7"Ç@"9"Q« A"@"S÷B"úA"C"D"øC"9 E"÷?">""E"ùB"øD"9 F"z?">""F"ùB"øB"= G"""AwH""T =I"H"Ž J"G"I">""J"ù<"ø>"9 K".7">""K"ù<"ø<"ÇL"9"I« M"L"S÷N"úM"O"N"øO"= P"""  Q"E7"9 R"¥ P"Q">""R"ùN"øN"AS"!"SR=T"S"« U"T"S÷V"úU"W"V"øW"= X"""O Y")")"QZ")"P ["Z"Z"Z"ˆ \"Y"["  ]"E7"9 ^"X"\"]">""^"ùV"øV"= _"""9 `" _"Pa"`"ø9b"ïa">"b"ý86y"-!øc";ýž"Ÿ";X™"ø;ý¢"£";ýœ"�";¥—"˜";ý "¡";ýš"›"=f"e"= h"g"= j"i"=1l"k"=n"m"=p"o"=r"q"=t"s"P 4d"f"h"j"l"n"p"r"t"= w"u"Añz"�SAó{"’SAL|"•S=}"˜=~"š="›=€"œ=�"�=‚"žA«ƒ"¢SA0„"¥S="…"¨=†"ªAá‡"«S=)ˆ"®=‰"±=Š"³Aâ‹"¶S=Œ"¹=�"ºAÝŽ"»S=�"¾=�"¿AL ‘"ÁSù¤"ø¤"9 ¥"üd"¥ ¦"w"¥"9:§"Ñd"Q¨"d"Ç©"¨"R« ª"©"S© «"Wª"õ÷¬"ú«"­"¬"ø­"üø¬"Q ®"d"Q¯"d"O1°"¯"¯"9±"y®"°"¼ ²"±"Õ© ³"W²"õ÷´"ú³"µ"´"øµ"üø´"Q ¶"d"  ·"E¶" ¸"·"Q ¹"d"  º"E¹"Pé¼"¦"¦"¦"© »"¼"º"¸"AP½"z"S=¾"½"P¿"»"Õ‘À"¾"¿"O Á"À"À"  Â"EÁ"AÃ"z"'S=Ä"Ã"9 Å"Ø’"ª Æ"Ä"Q© Ç"WÆ"õ÷È"úÇ"É"Ê"øÉ"AË"z"' =Ì"Ë"9 Í"yÂ"Ì">—"Í"ùÈ"øÊ"ª Î"Ä"R© Ï"WÎ"õ÷Ð"úÏ"Ñ"Ò"øÑ"Ž Ó"»"t� Ô"Ó"“"9 Õ"ØÔ">—"Õ"ùÐ"øÒ"ª Ö"Ä" © ×"WÖ"õ÷Ø"ú×"Ù"Ú"øÙ"PéÜ"¦"¦"¦"© Û"Ü"”"9 Ý"5Â"Å"9 Þ"ØÛ"P à"{{{  ß".Ý"Þ"à">—"ß"ùØ"øÚ"ª á"Ä"%© â"Wá"õ÷ã"úâ"ä"å"øä"A/æ"{"R=ç"æ"O è"ç"ç"9 é"5Â"è">—"é"ùã"øå"ª ê"Ä"8© ë"Wê"õ÷ì"úë"í"î"øí"Aï"|" Q=ð"ï"ª ñ"ð"Q÷ò"úñ"ó"ô"øó"Qõ"§"Qö"õ"Aw÷"|"Q =ø"÷"¸ ù"ö"ø">š"ù"ùò"øô">š"õùò"øò"= ú"š"© û"Wú"õ÷ü"úû"ý"ü"øý"üøü"Aþ"|" Q=ÿ"þ"ª #ÿ"R© #W#õ÷#ú###ø#Q#§"Q##>™"#ù#ø#9 #�d"¦"§">—"#ùì"øî"ª #Ä"© #W#õ÷ #ú# # #ø #A #|" Q= # #ª # #Q÷#ú###ø#Q#§"Q##Aw#|"Q =##¸ ###>œ"#ù#ø#>œ"õù#ø#= #œ"© #W#õ÷#ú###ø#üø#A#|" Q=##ª ##R© #W#õ÷#ú# ##ø #Q!#§"Q"#!#>™""#ù#ø#9 ##Ød"¦"§">—"##ù #ø #ª $#Ä"T© %#W$#õ÷&#ú%#'#(#ø'#Q1)#d"9 *# )#9 +#5Â"*#>—"+#ù&#ø(#ª ,#Ä"U÷-#ú,#.#/#ø.#A0#{"%S=1#0#Ç2#1#Q« 3#2#S>ž"3#ù-#ø/#>ž"õù-#ø-#= 4#ž"© 5#W4#õ÷6#ú5#7#8#ø7#Q9#d"9 :# 9#9 ;#5Â":#>—";#ù6#ø8#ª <#Ä"© =#W<#õ÷>#ú=#?#@#ø?#9 A#œ9 B#ØA#9 C#5Â"B#>—"C#ù>#ø@#÷D#úWE#D#øE#9 F#5Â"Å">—"F#ùD#øD#ù>#ø>#ù6#ø6#ù&#ø&#ù #ø #ùì"øì"ùã"øã"ùØ"øØ"ùÐ"øÐ"ùÈ"øÈ"AG#{" =H#G#ª I#H#Q÷J#úI#K#L#øK#AM#z"'Q=N#M#ÇO#N#Q« P#O#S> "P#ùJ#øL#> "õùJ#øJ#= Q# "÷R#úQ#S#T#øS#QU#d"ÇV#U#Q« W#V#S>¢"W#ùR#øT#>¢"õùR#øR#= X#¢"© Y#WX#õ÷Z#úY#[#Z#ø[#= \#—"9 ]#Ø–"P _#```  ^#.\#]#_#>—"^#ùZ#øZ#ª `#Ä"© a#W`#õ÷b#úa#c#b#øc#= d#—"9 e#Ìd#9 f#®e#±"=g#™"Ph#f#g#9i#ïh#>x"i#ýøb#= j#—"=k#™"Pl#j#k#9m#ol#>x"m#ý86€#-!øn#;ýŠ#‹#=q#p#= s#r#= u#t#=1w#v#=y#x#={#z#=}#|#=#~#P 4o#q#s#u#w#y#{#}##Aó�#’SAL‚#•S=ƒ#˜=„#š=…#›=†#œ=‡#�=ˆ#žùŒ#øŒ#9:�#Ño#QŽ#o#Ç�#Ž#R« �#�#S÷‘#ú�#’#‘#ø’#üø‘#Q “#o#9”#y“#‰#¼ •#”#Õ÷–#ú•#—#–#ø—#üø–#A˜#‚# Q=™#˜#ª š#™#Q÷›#úš#œ#�#øœ#Qž#�#QŸ#ž#Aw #‚#Q =¡# #¸ ¢#Ÿ#¡#>Š#¢#ù›#ø�#>Š#õù›#ø›#= £#Š#© ¤#W£#õ÷¥#ú¤#¦#§#ø¦#üø§#ýø¥#ý86»#-!ø¨#;ýÉ#Ê#;Î#Í#Ï#;ýÇ#È#;ýË#Ì#=«#ª#= ­#¬#= ¯#®#=1±#°#=³#²#=µ#´#=·#¶#=¹#¸#P 4©#«#­#¯#±#³#µ#·#¹#Añ¼#�SAó½#’SAL¾#•S=¿#˜=À#š=Á#›=Â#œ=Ã#�=Ä#žùÐ#øÐ#9:Ñ#Ñ©#QÒ#©#ÇÓ#Ò#R« Ô#Ó#S÷Õ#úÔ#Ö#Õ#øÖ#üøÕ#Q ×#©#QØ#©#O1Ù#Ø#Ø#9Ú#y×#Ù#¼ Û#Ú#Õ÷Ü#úÛ#Ý#Ü#øÝ#üøÜ#AÞ#¼#'S=ß#Þ#ª à#ß#8¨ á#à#÷â#úá#ã#ä#øã#Aå#¼#'S=æ#å#ª ç#æ#>Ç#ç#ùâ#øä#>Ç#Wùâ#øâ#= è#Ç#÷é#úè#ê#ë#øê#Aì#¾# Q=í#ì#ª î#í#Q>É#î#ùé#øë#>É#õùé#øé#= ï#É#÷ð#úï#ñ#ò#øñ#Qó#Ñ#Qô#ó#Awõ#¾#Q =ö#õ#¸ ÷#ô#ö#>Ë#÷#ùð#øò#>Ë#õùð#øð#= ø#Ë#÷ù#úø#ú#ù#øú#üøù#Aû#½# R=ü#û#Aý#½# S=þ#ý#ª ÿ#þ#Q©$ÿ#QSA$½# Q=$$ª $$Q©$$RSÅ$$$Ç$ü#Žp$$Â$ü#Ç $$Žp $ $ $ü#Ç $ $Žp $ $p$$P$$ $ $$ˆ$$Æ#AM$Í#S>$$=D$Í#Q$$>º#$ý86*$-!ø$;ý6$7$;;$:$<$;ý4$5$;ý8$9$=$$= $$= $$=1$$=$$=!$ $=#$"$=%$$$P 4$$$$$$!$#$%$= '$&$Añ+$�SAó,$’SAL-$•S=.$˜=/$š=0$›=1$œ=2$�=3$žù=$ø=$9:>$Ñ$Q?$$Ç@$?$R« A$@$S÷B$úA$C$B$øC$üøB$Q D$$QE$$O1F$E$E$9G$yD$F$¼ H$G$Õ÷I$úH$J$I$øJ$üøI$AK$+$'S=L$K$ª M$L$8¨ N$M$÷O$úN$P$Q$øP$AR$+$'S=S$R$ª T$S$>4$T$ùO$øQ$>4$WùO$øO$= U$4$÷V$úU$W$X$øW$AY$-$ Q=Z$Y$ª [$Z$Q>6$[$ùV$øX$>6$õùV$øV$= \$6$÷]$ú\$^$_$ø^$Q`$>$Qa$`$Awb$-$Q =c$b$¸ d$a$c$>8$d$ù]$ø_$>8$õù]$ø]$= e$8$÷f$úe$g$f$øg$üøf$9 h$ü$¥ i$'$h$Q j$$  k$Ej$ l$k$Q m$$  n$Em$Pép$i$i$i$© o$p$n$l$APq$+$S=r$q$Ps$o$Õ‘t$r$s$O u$t$t$  v$Eu$Aww$-$RS=x$w$Qy$>$Qz$y$…{$x$z$ |$+{$ÕøAw}$-$RQ=~$}$Q$>$Q€$$…�$~$€$ ‚$+�$øAPƒ$+$S=„$ƒ$Q …$$P†$…$ø‘‡$„$†$Qˆ$‡$‰$ˆ$PŠ$v$‰$AM‹$:$S>‹$Š$QŒ$>$O �$Œ$Œ$P �$|$|$|$  Ž$.’�$�$P�$Ž$‚$AM‘$:$Q>‘$�$=E’$:$Q“$’$>($“$Q”$’$>)$”$ý86®$-!ø•$= ˜$—$= š$™$=1œ$›$=ž$�$= $Ÿ$=¢$¡$P 3–$˜$š$œ$ž$ $¢$=1¤$£$Añ¯$�SAó°$’Sù±$ø±$94²$5–$9F³$²$¤$Q´$³$>¥$´$A*!µ$¥$Q=¶$µ$·$¶$>µ$·$Q ¸$³$>¦$¸$Q ¹$³$>§$¹$Q1º$³$>¨$º$Q»$³$>©$»$Q¼$³$>ª$¼$Q½$³$>«$½$Q¾$³$>¬$¾$Q1¿$³$>­$¿$ý86â$-!øÀ$= Ã$Â$= Å$Ä$=1Ç$Æ$=É$È$=Ë$Ê$=Í$Ì$P 3Á$Ã$Å$Ç$É$Ë$Í$=Ð$Ï$=Ò$Ñ$=Ô$Ó$=Ö$Õ$P5Î$Ð$Ò$Ô$Ö$=1Ø$×$Añã$�SAóä$’Sùå$øå$94æ$lÁ$Î$9Fç$æ$Ø$Qè$ç$>Ù$è$A*!é$Ù$Q=ê$é$ë$ê$>é$ë$Q ì$ç$>Ú$ì$Q í$ç$>Û$í$Q1î$ç$>Ü$î$Qï$ç$>Ý$ï$Qð$ç$>Þ$ð$Qñ$ç$>ß$ñ$Qò$ç$>à$ò$Q1ó$ç$>á$ó$ý86 %-!øô$;¥'%(%;ý+%,%;X&%ø;ý)%*%=÷$ö$= ù$ø$= û$ú$=1ý$ü$=ÿ$þ$=%%=%%=%%=1%%P Fõ$÷$ù$û$ý$ÿ$%%%%= %%Añ %�SAó %’SAL%•S=%˜=%š=%›=%œ=%�=%ž=% A«%¢SA0%¥S="%¨=%ªAá%«S=)%®=%±=%³Aâ%¶S=%¹= %ºAÝ!%»S="%¾=#%¿=$%ÀAL %%ÁSù-%ø-%94.%õ$9 /%ü.%¥ 0% %/%9G1%õ$Q2%õ$Ç3%2%R« 4%3%S© 5%W4%õ÷6%ú5%7%6%ø7%üø6%Q 8%õ$Q9%õ$O1:%9%9%9;%y8%:%¼ <%;%Õ© =%W<%õ÷>%ú=%?%>%ø?%üø>%9 @%°1%÷A%ú@%B%A%øB%üøA%AC%% Q=D%C%ª E%D%R© F%WE%õ÷G%úF%H%G%øH%QI%1%QJ%I%>&%J%ùG%øG%AK% %'S=L%K%ª M%L%© N%WM%õAO% %'S=P%O%ª Q%P%'© R%WQ%õ÷S%úR%T%U%øT%>&%øQ V%õ$  W%EV% X%W%Q Y%õ$  Z%EY%Pé\%0%0%0%© [%\%Z%X%AP]% %S=^%]%P_%[%Õ‘`%^%_%O a%`%`%  b%Ea%9 c%Ø’"9 d%5b%c%>'%d%ùS%øU%Ae%% =f%e%Çg%f%« h%g%S© i%Wh%õ÷j%úi%k%l%øk%Qm%1%O n%m%m%>'%n%ùj%øl%9 o%øõ$0%1%N%>'%o%ùj%øj%© p%WN%õ÷q%úp%r%q%ør%= s%'%Q t%õ$9 u% s%t%>'%u%ùq%øq%ùS%øS%Av% % =w%v%ª x%w%Q÷y%úx%z%{%øz%A|% %'Q=}%|%Ç~%}%Q« %~%S>)%%ùy%ø{%>)%õùy%øy%= €%)%÷�%ú€%‚%ƒ%ø‚%Q„%õ$Ç…%„%Q« †%…%S>+%†%ù�%øƒ%>+%õù�%ø�%= ‡%+%© ˆ%W‡%õ÷‰%úˆ%Š%‰%øŠ%= ‹%'%9 Œ%Ø–"P Ž%```  �%.‹%Œ%Ž%>'%�%ù‰%ø‰%© �%WN%õ÷�%ú�%‘%�%ø‘%= ’%'%9 “%Ì’%9 ”%®“%;%=•%&%P–%”%•%9—%ï–%> %—%ýø�%= ˜%'%=™%&%Pš%˜%™%9›%oš%> %›%ý86°%-!øœ%=Ÿ%ž%= ¡% %= £%¢%=1¥%¤%=§%¦%=©%¨%=«%ª%=­%¬%=1¯%®%P F�%Ÿ%¡%£%¥%§%©%«%­%¯%Aó±%’SAL²%•S=³%˜=´%š=µ%›=¶%œ=·%�=¸%ž=¹% ùº%øº%9G»%�%Q¼%�%ǽ%¼%R« ¾%½%S÷¿%ú¾%À%¿%øÀ%üø¿%Q Á%�%9Â%yÁ%‰#¼ Ã%Â%Õ÷Ä%úÃ%Å%Ä%øÅ%üøÄ%9 Æ%°»%÷Ç%úÆ%È%É%øÈ%üøÉ%ýøÇ%ý86ß%-!øÊ%;Î#é%ê%=Í%Ì%= Ï%Î%= Ñ%Ð%=1Ó%Ò%=Õ%Ô%=×%Ö%=Ù%Ø%=Û%Ú%=1Ý%Ü%P FË%Í%Ï%Ñ%Ó%Õ%×%Ù%Û%Ý%Aóà%’SALá%•S=â%˜=ã%š=ä%›=å%œ=æ%�=ç%ž=è% ùë%øë%9Gì%Ë%Qí%Ë%Çî%í%R« ï%î%S÷ð%úï%ñ%ð%øñ%üøð%Q ò%Ë%Qó%Ë%O1ô%ó%ó%9õ%yò%ô%¼ ö%õ%Õ÷÷%úö%ø%÷%øø%üø÷%9 ù%°ì%÷ú%úù%û%ú%øû%üøú%Aü%à% R=ý%ü%Aþ%à% S=ÿ%þ%ª &ÿ%Q©&&QSA&à% Q=&&ª &&Q©&&RSÅ&&&Ç&ý%Žp&& &ý%Ç & &Žp & & &ý%Ç & &Žp& &p&&P&& &&&ˆ&&Æ#AM&é%S>&&=D&é%Q&&>Þ%&ý86-&-!ø&;;$;&<&=&&= &&= &&=1&&= &&="&!&=$&#&=&&%&=1(&'&P F&&&&& &"&$&&&(&= *&)&Añ.&�SAó/&’SAL0&•S=1&˜=2&š=3&›=4&œ=5&�=6&ž=7& AÝ8&»S=9&¾=:&¿ù=&ø=&9G>&&Q?&&Ç@&?&R« A&@&S÷B&úA&C&B&øC&üøB&Q D&&QE&&O1F&E&E&9G&yD&F&¼ H&G&Õ÷I&úH&J&I&øJ&üøI&9 K&°>&÷L&úK&M&L&øM&üøL&94N&&9 O&üN&¥ P&*&O&Q Q&&  R&EQ& S&R&Q T&&  U&ET&PéW&P&P&P&© V&W&U&S&APX&.&S=Y&X&PZ&V&Õ‘[&Y&Z&O \&[&[&  ]&E\&9J^&ä&P&>&õAP_&.&S=`&_&Q a&&Pb&a&ø‘c&`&b&Qd&c&e&d&Pf&]&e&AMg&;&S>g&f&Q h&^&  i&+h&öQj&^& Pk&i&j&AMl&;&Q>l&k&=Em&;&Qn&m&>+&n&Qo&m&>,&o&ý86Œ&-!øp&;�&�&‘&= s&r&= u&t&=1w&v&=y&x&={&z&=}&|&P 3q&s&u&w&y&{&}&=1&~&=1�&€&Añ�&�SAóŽ&’Sù’&ø’&94“&5q&Q”&“&AM•&�&S>•&”&Q –&“&A¥—&�&Q>—&–&Q ˜&“&A¥™&�&R>™&˜&Q1š&“&AQ ›&�& >›&š&Qœ&“&A�&�&%>�&œ&Qž&“&AMŸ&�&8>Ÿ&ž&Q &“&AX¡&�&T>¡& &Q¢&“&AM£&�&U>£&¢&AQ ¤&�&>¤&&AQ ¥&�&'>¥&�&=K¦&�&Q§&¦&>‚&§&A*!¨&‚&Q=©&¨&ª&©&>¨&ª&Q «&¦&>ƒ&«&Q ¬&¦&>„&¬&Q1­&¦&>…&­&Q®&¦&>†&®&Q¯&¦&>‡&¯&Q°&¦&>ˆ&°&Q±&¦&>‰&±&Q1²&¦&>Š&²&Q1³&¦& >‹&³&ý86Í&-!ø´&;ýï&ð&;Xê&ø;ýí&î&;¥è&é&;ýë&ì&=·&¶&= ¹&¸&= »&º&=1½&¼&=¿&¾&=Á&À&=Ã&Â&=Å&Ä&=1Ç&Æ&=1É&È&P Kµ&·&¹&»&½&¿&Á&Ã&Å&Ç&É&= Ë&Ê&AñÎ&�SAóÏ&’SALÐ&•S=Ñ&˜=Ò&š=Ó&›=Ô&œ=Õ&�=Ö&žA«×&¢SA0Ø&¥S="Ù&¨=Ú&ªAáÛ&«S=)Ü&®=Ý&±=Þ&³=ß&´=à&µAâá&¶S=â&¹=ã&ºAÝä&»S=å&¾=æ&¿AL ç&ÁSùñ&øñ&9Fò&5 µ&94ó&ò&9 ô&üó&¥ õ&Ë&ô&9:ö&Ñó&Q÷&µ&Çø&÷&R« ù&ø&S© ú&Wù&õ÷û&úú&ü&û&øü&üøû&Q ý&µ&Qþ&µ&O1ÿ&þ&þ&9'yý&ÿ&¼ ''Õ© 'W'õ÷'ú'''ø'üø'Q1'µ& 9 'O 'A'Î&'S=''ª '''© 'W 'õ÷ 'ú ' ' 'ø '9 ' '>è&'ù 'ø 'A'Ð& Q=''ª ''Q÷'ú'''ø'Q'ö&Q''Aw'Ð&Q =''¸ '''>ë&'ù'ø'>ë&õù'ø'= 'ë&© 'W'õ÷'ú'''ø'üø'A'Ð& Q=''ª ''R© !'W 'õ÷"'ú!'#'"'ø#'Q$'ö&Q%'$'>ê&%'ù"'ø"'9 &'Wó&õ&ö&W'>è&&'ù 'ø 'A''Ï& =('''ª )'('Q÷*'ú)'+','ø+'A-'Î&'Q=.'-'Ç/'.'Q« 0'/'S>í&0'ù*'ø,'>í&õù*'ø*'= 1'í&÷2'ú1'3'4'ø3'Q5'µ&Ç6'5'Q« 7'6'S>ï&7'ù2'ø4'>ï&õù2'ø2'= 8'ï&© 9'W8'õ÷:'ú9';':'ø;'= <'è&9 ='Ø–"P ?'```  >'.<'='?'>è&>'ù:'ø:'= @'è&9 A'Ì@'9 B'®A''=C'ê&PD'B'C'9E'ïD'>Ì&E'ý86_'-!øF';X~'ø;ý�'‚';¥|'}';ý'€'=I'H'= K'J'= M'L'=1O'N'=Q'P'=S'R'=U'T'=W'V'=1Y'X'=1['Z'P KG'I'K'M'O'Q'S'U'W'Y'['= ]'\'Añ`'�SAóa'’SALb'•S=c'˜=d'š=e'›=f'œ=g'�=h'ž=i' A«j'¢SA0k'¥S="l'¨=m'ªAán'«S=)o'®=p'±=q'³=r'´=s'µAât'¶S=u'¹=v'ºAÝw'»S=x'¾=y'¿=z'ÀAL {'ÁSùƒ'øƒ'9F„'5 G'94…'„'9 †'ü…'¥ ‡']'†'9Gˆ'„'Q‰'G'ÇŠ'‰'R« ‹'Š'S© Œ'W‹'õ÷�'úŒ'Ž'�'øŽ'üø�'Q �'G'Q�'G'O1‘'�'�'9’'y�'‘'¼ “'’'Õ© ”'W“'õ÷•'ú”'–'•'ø–'üø•'Q1—'G' 9 ˜'O —'A™'`''S=š'™'ª ›'š''© œ'W›'õ÷�'úœ'ž'Ÿ'øž'9  ' ˜'>|' 'ù�'øŸ'9 ¡'°ˆ'÷¢'ú¡'£'¢'ø£'üø¢'A¤'b' Q=¥'¤'ª ¦'¥'R© §'W¦'õ÷¨'ú§'©'¨'ø©'Qª'ˆ'Q«'ª'>~'«'ù¨'ø¨'A¬'b' =­'¬'Ç®'­'« ¯'®'S© °'W¯'õ÷±'ú°'²'³'ø²'Q´'ˆ'O µ'´'´'>|'µ'ù±'ø³'9 ¶'ò„'‡'ˆ'WW˜'>|'¶'ù±'ø±'= ·'|'Q ¸'G'9 ¹' ·'¸'>|'¹'ù�'ø�'Aº'a' =»'º'ª ¼'»'Q÷½'ú¼'¾'¿'ø¾'AÀ'`''Q=Á'À'ÇÂ'Á'Q« Ã'Â'S>'Ã'ù½'ø¿'>'õù½'ø½'= Ä''÷Å'úÄ'Æ'Ç'øÆ'QÈ'G'ÇÉ'È'Q« Ê'É'S>�'Ê'ùÅ'øÇ'>�'õùÅ'øÅ'= Ë'�'© Ì'WË'õ÷Í'úÌ'Î'Í'øÎ'= Ï'|'9 Ð'Ø–"P Ò'```  Ñ'.Ï'Ð'Ò'>|'Ñ'ùÍ'øÍ'= Ó'|'9 Ô'ÌÓ'9 Õ'®Ô'’'=Ö'~'P×'Õ'Ö'9Ø'ï×'>^'Ø'ý86õ'-!øÙ'= Ü'Û'= Þ'Ý'=1à'ß'=â'á'=ä'ã'=æ'å'P 3Ú'Ü'Þ'à'â'ä'æ'=ê'è'=ì'ë'POç'ê'ì'Añö'�SAó÷'’SAa ø'ÄSùù'øù'94ú'¸ Ú'ç'Qû'ú'>í'û'A*!ü'í'Q=ý'ü'þ'ý'>ü'þ'Q ÿ'ú'>î'ÿ'Q (ú'>ï'(Q1(ú'>ð'(Q(ú'>ñ'(Q(ú'>ò'(Q(ú'>ó'(Q(ú'>ô'(ý86$(-!ø(= ((= ( (=1 ( (=((=((=((P 3( ( ( ((((=((=((PO(((=1((Añ%(�SAó&(’SAa '(ÄSù((ø((94)(¸ ((9F*()((Q+(*(>(+(A*!,((Q=-(,(.(-(>,(.(Q /(*(>(/(Q 0(*(>(0(Q11(*(>(1(Q2(*(>(2(Q3(*(> (3(Q4(*(>!(4(Q5(*(>"(5(Q16(*(>#(6(ý8 @Ð Ð/ ,@ P˜J£&ѰA¬ËÎ-”ÒÑ'�gQoCî¶_7hh'·ÊË$hedra_shaders/world/5543174aac7480a3jÔ£œ8BTSR ížížñ kË \l`n†ænïÕp�s dähæ@Ð ¨¶ ¬¸ îšË –= 0  vs_customvs_custom_instancedvs_custom_skinned fs_customfs_custom_depth fs_custom_idfs_custom_normal_depth+GOLitShadowt_shadows_shadowSky t_radiance t_panorama s_radiance s_panoramat_ao t_lightmap s_lightmapProbet_probess_probesDecalt_decalss_decalsFogSkint_screenhedra_palbedo_textureSAMPLER_NEAREST_REPEAT! vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depth÷�struct Globals { view: mat4x4, proj: mat4x4, view_proj: mat4x4, camera_pos: vec4, viewport: vec4, wire_color: vec4, select_color: vec4, active_color: vec4, grid: vec4, params: vec4, fparams: vec4, } struct ObjectU { model: mat4x4, normal: mat4x4, color: vec4, params: vec4, extra: vec4, gi: array, 3>, decals: vec4, lights: vec4, } struct LightU { color: vec4, position: vec4, direction: vec4, spot: vec4, info: vec4, } struct LitU { counts: vec4, ambient: vec4, tone: vec4, up: vec4, sky_top: vec4, sky_horizon: vec4, ground_horizon: vec4, ground_bottom: vec4, inv_view_proj: mat4x4, dirs: vec4, lights: array, } struct ShadowLightU { params: vec4, splits: vec4, fade: vec4, info: vec4, } struct ShadowTileU { view_proj: mat4x4, rect: vec4, texel: vec4, } struct ShadowU { atlas: vec4, lights: array, tiles: array, } struct SunU { direction: vec4, color: vec4, } struct SkyU { flags: vec4, to_sky: mat4x4, sky_top: vec4, sky_horizon: vec4, ground_bottom: vec4, ground_horizon: vec4, sun: vec4, ambient: vec4, ibl: vec4, fog_color: vec4, fog: vec4, fog_depth: vec4, fog_origin: vec4, suns: array, sh: array, 9>, } struct ProbeEntryU { to_local: mat4x4, extents: vec4, offset: vec4, ambient: vec4, info: vec4, } struct ProbeU { counts: vec4, probes: array, } struct DecalEntryU { to_local: mat4x4, modulate: vec4, fades: vec4, axis_x: vec4, axis_y: vec4, axis_z: vec4, layers: vec4, flags: vec4, } struct DecalU { counts: vec4, lod: vec4, entries: array, } struct DecalSurface { base: vec3, metallic: f32, roughness: f32, occlusion: f32, normal: vec3, emission: vec3, } struct VsIn { @location(0) pos: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, } struct InstIn { @location(6) row0_: vec4, @location(7) row1_: vec4, @location(8) row2_: vec4, @location(9) color: vec4, } struct FogEntryU { to_local: mat4x4, size: vec4, material: vec4, albedo: vec4, emission: vec4, lights: vec4, } struct FogU { counts: vec4, params: vec4, ambient: vec4, up: vec4, light_fog: array, 16>, entries: array, } struct SkinU { rows: array, 765>, } struct SkinIn { @location(12) joints: vec4, @location(13) weights: vec4, } struct SkinRows { r0_: vec4, r1_: vec4, r2_: vec4, } struct HedraInstExtra { @location(14) custom: vec4, @location(15) id: f32, } struct CustomOut { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) color: vec4, @location(6) uv2_: vec2, @location(7) @interpolate(flat) instance_id: u32, @location(8) hedra_v0_: vec4, @location(9) hedra_v1_: vec4, @location(10) hedra_v2_: vec4, @location(11) hedra_v3_: vec4, } struct IdOut { @location(0) id: vec4, } struct HedraParams { albedo: vec4, uv_scale: vec2, uv_offset: vec2, uv_scroll: vec2, snap_resolution: vec2, affine_strength: f32, affine_near: f32, hedra_pad0_: f32, hedra_pad1_: f32, sun_direction: vec3, hedra_pad2_: f32, sun_color: vec3, hedra_pad3_: f32, sky_ambient: vec3, hedra_pad4_: f32, ground_ambient: vec3, light_bands: f32, emission: vec3, overbright: f32, screen_door: f32, } struct HedraNormalDepthOut { @location(0) normal_depth: vec4, @location(1) surface: vec4, } const OBJ_HAS_WEIGHTS: u32 = 1u; const OBJ_MIRRORED: u32 = 2u; const SHADE_SOLID: u32 = 0u; const SHADE_MATCAP: u32 = 1u; const SHADE_NORMALS: u32 = 2u; const SHADE_FACE_ORIENT: u32 = 3u; const SHADE_RANDOM: u32 = 4u; const SHADE_MATERIAL: u32 = 5u; const SHADE_UV_CHECKER: u32 = 6u; const SHADE_WEIGHTS: u32 = 7u; const SHADE_LIT: u32 = 8u; const SHADE_LIGHTMAP: u32 = 9u; const SHADE_LIGHT_COUNT: u32 = 10u; const OV_SELECTION: u32 = 1u; const OV_SEAMS: u32 = 2u; const OV_SHARP: u32 = 4u; const F_SELECTED: u32 = 1u; const F_HIDDEN: u32 = 2u; const F_SEAM: u32 = 4u; const F_SHARP: u32 = 8u; const F_MESH: u32 = 16u; const F_FADE: u32 = 32u; const F_NO_PULL: u32 = 64u; const SPEC_TEX_BASE: bool = true; const SPEC_TEX_NORMAL: bool = true; const SPEC_TEX_MR: bool = true; const SPEC_TEX_EMISSION: bool = true; const SPEC_TEX_OCCLUSION: bool = true; const SPEC_VERTEX_COLOR: bool = true; const SPEC_EXT: bool = true; const SPEC_UNLIT: bool = true; const SPEC_ALPHA_MASK: bool = true; const SPEC_ALPHA_BLEND: bool = true; const SPEC_CLEARCOAT: bool = true; const SPEC_SHEEN: bool = true; const SPEC_TRANSMISSION: bool = true; const SPEC_IRIDESCENCE: bool = true; const SPEC_ANISOTROPY: bool = true; const SPEC_DIFFUSE_TRANSMISSION: bool = true; const SPEC_VOLUME: bool = true; const SPEC_DISPERSION: bool = true; const SPEC_EXT_LAYERS: bool = true; const SPEC_ROUGHNESS_LAYER: bool = true; const SPEC_LIT: bool = true; const SPEC_LIGHTS: bool = true; const SPEC_SHADOWS: bool = true; const SPEC_DECALS: bool = true; const SPEC_FOG: bool = true; const SPEC_FOG_VOLUMES: bool = true; const SPEC_PROBES: bool = true; const SPEC_PROBE_GI: bool = true; const SPEC_SSAO: bool = true; const SPEC_SCREEN_REFRACTION: bool = true; const SPEC_EMERGE: bool = true; const SPEC_FADE: bool = true; const SPEC_FACE_FLAGS: bool = true; const SPEC_AMBIENT_FLAT: bool = true; const SPEC_AMBIENT_GRADIENT: bool = true; const SPEC_AMBIENT_SKY: bool = true; const SPEC_MATERIAL_MODE: bool = true; const SPEC_OTHER_MODES: bool = true; const PI: f32 = 3.1415927f; const TAU: f32 = 6.2831855f; const E: f32 = 2.7182817f; const HEDRA_BLEND_MIX: u32 = 0u; const HEDRA_BLEND_PREMUL_ALPHA: u32 = 4u; const HEDRA_CULL_FRONT: u32 = 1u; const HEDRA_DIFFUSE_LAMBERT: u32 = 0u; const HEDRA_DIFFUSE_LAMBERT_WRAP: u32 = 1u; const HEDRA_DIFFUSE_BURLEY: u32 = 2u; const HEDRA_DIFFUSE_TOON: u32 = 3u; const HEDRA_SPECULAR_SCHLICK_GGX: u32 = 0u; const HEDRA_SPECULAR_TOON: u32 = 1u; const HEDRA_SPECULAR_DISABLED: u32 = 2u; const HEDRA_ENCODE_SRGB: u32 = 2u; const HEDRA_NEVER: u32 = 4294967295u; const MAX_FRAME_LIGHTS: u32 = 64u; const MAX_OBJECT_LIGHTS: u32 = 8u; const MAX_SHADOW_LIGHTS: u32 = 16u; const MAX_POOL_DIRECTIONAL: u32 = 8u; const LIGHT_COUNT_COLORS: array, 10> = array, 10>(vec3(0.352941f, 0.352941f, 0.352941f), vec3(0.168627f, 0.247059f, 0.6f), vec3(0.129412f, 0.4f, 0.67451f), vec3(0.101961f, 0.623529f, 0.721569f), vec3(0.121569f, 0.631373f, 0.529412f), vec3(0.301961f, 0.733333f, 0.352941f), vec3(0.65098f, 0.831373f, 0.227451f), vec3(0.94902f, 0.784314f, 0.058824f), vec3(0.94902f, 0.556863f, 0.058824f), vec3(0.878431f, 0.129412f, 0.541176f)); const LIGHT_DIRECTIONAL: u32 = 0u; const LIGHT_OMNI: u32 = 1u; const LIGHT_SPOT: u32 = 2u; const LIGHT_BAKE_DISABLED: u32 = 0u; const LIGHT_BAKE_STATIC: u32 = 1u; const LIGHT_BAKE_DYNAMIC: u32 = 2u; const TONEMAP_LINEAR: u32 = 0u; const TONEMAP_REINHARD: u32 = 1u; const TONEMAP_FILMIC: u32 = 2u; const TONEMAP_ACES: u32 = 3u; const TONEMAP_AGX: u32 = 4u; const ENV_SKY: u32 = 1u; const ENV_AMBIENT_SKY: u32 = 2u; const ENV_SSAO: u32 = 4u; const ENV_HDR: u32 = 8u; const ENV_SCREEN_REFRACTION: u32 = 16u; const LIGHT_SHADOWED: u32 = 1u; const LIGHT_BAKED_STATIC: u32 = 1u; const SHADOW_TILES: u32 = 16u; const SKY_DRAW_PROCEDURAL: u32 = 1u; const SKY_DRAW_PANORAMA: u32 = 2u; const SKY_PANORAMA_FILTER: u32 = 4u; const SKY_IBL: u32 = 8u; const SKY_AMBIENT_SKY: u32 = 16u; const SKY_REFLECT_RADIANCE: u32 = 32u; const SKY_REFLECT_OFF: u32 = 64u; const SKY_FOG: u32 = 128u; const SKY_FOG_DEPTH: u32 = 256u; const SKY_SUNS: u32 = 4u; const OBJ_LIGHTMAP: u32 = 4u; const OBJ_PROBE_GI: u32 = 8u; const PROBE_BOX: u32 = 1u; const PROBE_INTERIOR: u32 = 2u; const MAX_PROBES: u32 = 8u; const PROBE_AMBIENT_DISABLED: u32 = 0u; const PROBE_AMBIENT_ENVIRONMENT: u32 = 1u; const PROBE_AMBIENT_CONSTANT_COLOR: u32 = 2u; const MAX_FRAME_DECALS: u32 = 64u; const MAX_OBJECT_DECALS: u32 = 8u; const DECAL_LIVE_ALBEDO: u32 = 1u; const DECAL_LIVE_NORMAL: u32 = 2u; const DECAL_LIVE_ORM: u32 = 4u; const DECAL_LIVE_EMISSION: u32 = 8u; const F_INSTANCE_MIRRORED: u32 = 128u; const OBJ_EMERGE: u32 = 32u; const EMERGE_SCALE: f32 = 1.3f; const EMERGE_EDGE: f32 = 0.8f; const EMERGE_DITHER: f32 = 0.12f; const OBJ_FADE: u32 = 64u; const MAX_FRAME_FOG_VOLUMES: u32 = 16u; const MAX_OBJECT_FOG_VOLUMES: u32 = 4u; const FOG_SHAPE_ELLIPSOID: u32 = 0u; const FOG_SHAPE_CONE: u32 = 1u; const FOG_SHAPE_CYLINDER: u32 = 2u; const FOG_SHAPE_BOX: u32 = 3u; const FOG_SHAPE_WORLD: u32 = 4u; const FOG_SKY_DISTANCE: f32 = 1000000f; const FOG_LIST_ALL: u32 = 2147483648u; const FOG_GL_X0_: f32 = 0.8611363f; const FOG_GL_X1_: f32 = 0.339981f; const FOG_GL_W0_: f32 = 0.3478548f; const FOG_GL_W1_: f32 = 0.6521452f; const OBJ_SKINNED: u32 = 16u; const SKIN_JOINTS: u32 = 255u; const HEDRA_UNSHADED: bool = true; const HEDRA_HAS_LIGHT: bool = false; const HEDRA_USES_POSITION: bool = false; const HEDRA_SKIP_VERTEX_TRANSFORM: bool = true; const HEDRA_WORLD_VERTEX_COORDS: bool = false; const HEDRA_AMBIENT_LIGHT_DISABLED: bool = false; const HEDRA_FOG_DISABLED: bool = false; const HEDRA_SHADOWS_DISABLED: bool = true; const HEDRA_ALPHA: bool = false; const HEDRA_ALPHA_SCISSOR: bool = false; const HEDRA_DIFFUSE: u32 = 0u; const HEDRA_SPECULAR: u32 = 2u; const HEDRA_BLEND: u32 = 0u; const HEDRA_CULL: u32 = 0u; @group(0) @binding(0) var G: Globals; @group(1) @binding(0) var O: ObjectU; @group(0) @binding(1) var Lit: LitU; @group(0) @binding(2) var Shadow: ShadowU; @group(0) @binding(3) var t_shadow: texture_depth_2d; @group(0) @binding(4) var s_shadow: sampler_comparison; @group(0) @binding(5) var Sky: SkyU; @group(3) @binding(0) var t_radiance: texture_cube; @group(3) @binding(1) var t_panorama: texture_2d; @group(3) @binding(2) var s_radiance: sampler; @group(3) @binding(3) var s_panorama: sampler; @group(0) @binding(6) var t_ao: texture_2d; @group(3) @binding(4) var t_lightmap: texture_2d_array; @group(3) @binding(5) var s_lightmap: sampler; @group(0) @binding(7) var Probe: ProbeU; @group(3) @binding(6) var t_probes: texture_2d; @group(3) @binding(7) var s_probes: sampler; @group(1) @binding(2) var Decal: DecalU; @group(1) @binding(3) var t_decals: texture_2d_array; @group(1) @binding(4) var s_decals: sampler; @group(1) @binding(5) var Fog: FogU; @group(1) @binding(1) var Skin: SkinU; @group(1) @binding(6) var t_screen: texture_2d; var VERTEX: vec3; var NORMAL: vec3; var TANGENT: vec3; var BINORMAL: vec3; var POSITION: vec4; var UV: vec2; var UV2_: vec2; var COLOR: vec4; var INSTANCE_ID: i32; var INSTANCE_CUSTOM: vec4; var VERTEX_ID: i32; var MODEL_MATRIX: mat4x4; var MODEL_NORMAL_MATRIX: mat3x3; var INV_VIEW_MATRIX: mat4x4; var INV_PROJECTION_MATRIX: mat4x4; var MODELVIEW_MATRIX: mat4x4; var MODELVIEW_NORMAL_MATRIX: mat3x3; var NODE_POSITION_WORLD: vec3; var NODE_POSITION_VIEW: vec3; var CAMERA_DIRECTION_WORLD: vec3; var LIGHT_VERTEX: vec3; var FRAGCOORD: vec4; var FRONT_FACING: bool; var VIEW: vec3; var NORMAL_MAP: vec3; var NORMAL_MAP_DEPTH: f32; var ALBEDO: vec3; var ALPHA: f32; var ALPHA_SCISSOR_THRESHOLD: f32; var PREMUL_ALPHA_FACTOR: f32; var METALLIC: f32; var SPECULAR: f32; var ROUGHNESS: f32; var RIM: f32; var RIM_TINT: f32; var BACKLIGHT: vec3; var AO: f32; var AO_LIGHT_AFFECT: f32; var EMISSION: vec3; var SCREEN_UV: vec2; var SPECULAR_AMOUNT: f32; var LIGHT: vec3; var LIGHT_COLOR: vec3; var LIGHT_IS_DIRECTIONAL: bool; var ATTENUATION: f32; var DIFFUSE_LIGHT: vec3; var SPECULAR_LIGHT: vec3; var hedra_world: vec3; var hedra_n_geo: vec3; var hedra_n: vec3; var hedra_front: bool; @group(2) @binding(0) var hedra_p: HedraParams; @group(2) @binding(1) var albedo_texture: texture_2d; @group(2) @binding(2) var SAMPLER_NEAREST_REPEAT: sampler; var affine_uv: vec4; var gouraud: vec3; fn srgb_to_linear(c_1: vec3) -> vec3 { let lo = (c_1 / vec3(12.92f)); let hi = pow(((c_1 + vec3(0.055f)) / vec3(1.055f)), vec3(2.4f)); return select(hi, lo, (c_1 <= vec3(0.04045f))); } fn element_color(flags: u32, fallback: vec4) -> vec4 { var local_4: bool; var local_5: bool; if ((flags & F_MESH) == 0u) { return fallback; } let overlays = G.params.y; let _e13 = O.params.w; let edit_object = (_e13 == 1u); if ((flags & F_SEAM) != 0u) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } let _e27 = local_4; if _e27 { let _e32 = srgb_to_linear(vec3(0.86f, 0f, 0f)); return vec4(_e32, 1f); } if ((flags & F_SHARP) != 0u) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } let _e46 = local_5; if _e46 { let _e51 = srgb_to_linear(vec3(0f, 0.85f, 0.9f)); return vec4(_e51, 1f); } if ((overlays & OV_SELECTION) != 0u) { if edit_object { if ((flags & F_SELECTED) != 0u) { let _e64 = G.select_color; return _e64; } let _e67 = G.wire_color; return _e67; } let _e71 = O.params.x; if (_e71 == 1u) { let _e76 = G.select_color; let _e79 = G.active_color; let _e83 = O.params.y; return select(_e76, _e79, (_e83 == 1u)); } } let _e89 = G.wire_color; return _e89; } fn to_view(p: vec3, pull: f32) -> vec4 { var v: vec4; let _e4 = G.view; let _e7 = O.model; v = ((_e4 * _e7) * vec4(p, 1f)); let _e15 = v.z; v.z = (_e15 * (1f - pull)); let _e19 = v; return _e19; } fn linear_to_srgb(c_2: vec3) -> vec3 { let lo_1 = (c_2 * 12.92f); let hi_1 = ((1.055f * pow(c_2, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (c_2 <= vec3(0.0031308f))); } fn target_color(c_3: vec4) -> vec4 { let k_12 = clamp(c_3, vec4(0f), vec4(1f)); let _e9 = G.fparams.w; if (_e9 > 0.5f) { let _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } fn object_light_count() -> u32 { let _e3 = O.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } fn object_light(k: u32) -> u32 { let _e4 = O.lights.y; let _e8 = O.lights.x; let word = select(_e4, _e8, (k < 4u)); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } fn light_count_color() -> vec3 { var colors: array, 10> = LIGHT_COUNT_COLORS; let _e5 = O.lights.w; let _e9 = colors[min(_e5, 9u)]; return _e9; } fn pool_sun_count() -> u32 { let _e3 = Lit.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } fn pool_sun(k_1: u32) -> u32 { let _e4 = Lit.dirs.y; let _e8 = Lit.dirs.x; let word_1 = select(_e4, _e8, (k_1 < 4u)); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } fn decal_count() -> u32 { let _e3 = O.decals.z; return min(_e3, MAX_OBJECT_DECALS); } fn decal_entry(k_2: u32) -> u32 { let _e4 = O.decals.y; let _e8 = O.decals.x; let word_2 = select(_e4, _e8, (k_2 < 4u)); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } fn decal_level(e: DecalEntryU, world: vec3) -> f32 { let _e5 = Decal.lod.x; let _e8 = G.camera_pos; let _e15 = Decal.lod.y; let pixel_1 = (_e5 * select(length((world - _e8.xyz)), 1f, (_e15 > 0.5f))); let _e24 = Decal.counts.y; let top = f32((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 0.000001f)), 1f)), 0f, top); } fn decal_texel(layer: u32, uv: vec2, level: f32, live: bool) -> vec4 { let _e11 = textureSampleLevel(t_decals, s_decals, uv, i32((layer - 1u)), select(level, 0f, live)); return _e11; } fn apply_decals(world_1: vec3, n_geo: vec3, surf: DecalSurface) -> DecalSurface { var out_s: DecalSurface; var k_3: u32 = 0u; var local_6: bool; var fade: f32; out_s = surf; let _e4 = decal_count(); loop { let _e7 = k_3; if (_e7 < _e4) { } else { break; } { let _e11 = k_3; let _e12 = decal_entry(_e11); let e_2 = Decal.entries[min(_e12, 63u)]; let uvw = (e_2.to_local * vec4(world_1, 1f)).xyz; if all((uvw >= vec3(0f, -1f, 0f))) { local_6 = all((uvw <= vec3(1f))); } else { local_6 = false; } let _e35 = local_6; if !(_e35) { continue; } fade = pow((1f - abs(uvw.y)), select(e_2.fades.y, e_2.fades.x, (uvw.y > 0f))); if (e_2.fades.z > 0f) { let _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1f, ((dot(n_geo, e_2.axis_y.xyz) * 0.5f) + 0.5f))); } let uv_3 = uvw.xz; let _e69 = decal_level(e_2, world_1); let live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { let _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); let _e84 = srgb_to_linear(_e82.xyz); let a_2 = (vec4(_e84, _e82.w) * e_2.modulate); let _e90 = fade; let alpha = (a_2.w * _e90); let _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if (e_2.layers.y > 0u) { let _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); let nx = ((_e110.x * 2f) - 1f); let ny = (1f - (_e110.y * 2f)); let nz = sqrt(max(0f, ((1f - (nx * nx)) - (ny * ny)))); let dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); let _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { let _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); let _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); let _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); let _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { let _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); let _e184 = out_s.emission; let _e186 = srgb_to_linear(_e182.xyz); let _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } continuing { let _e197 = k_3; k_3 = (_e197 + 1u); } } let _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045f, 1f); let _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0f, 1f); let _e211 = out_s; return _e211; } fn d_ggx(nh: f32, a2_: f32) -> f32 { let d_12 = (((nh * nh) * (a2_ - 1f)) + 1f); return (a2_ / ((PI * d_12) * d_12)); } fn v_smith(nl: f32, nv: f32, a2_1: f32) -> f32 { let gv = (nl * sqrt((((nv * nv) * (1f - a2_1)) + a2_1))); let g_l = (nv * sqrt((((nl * nl) * (1f - a2_1)) + a2_1))); return (0.5f / max((gv + g_l), 0.0001f)); } fn f_schlick(f0_: vec3, vh: f32) -> vec3 { return (f0_ + ((vec3(1f) - f0_) * pow((1f - vh), 5f))); } fn light_specular(n: vec3, v_1: vec3, l: vec3, radiance: vec3, diffuse: vec3, f0_1: vec3, a2_2: f32, specular: f32) -> vec3 { let nl_2 = dot(n, l); if (nl_2 <= 0f) { return vec3(0f); } let h = normalize((l + v_1)); let nh_1 = max(dot(n, h), 0f); let vh_1 = max(dot(v_1, h), 0f); let nv_3 = max(dot(n, v_1), 0.0001f); let _e24 = f_schlick(f0_1, vh_1); let _e25 = d_ggx(nh_1, a2_2); let _e26 = v_smith(nl_2, nv_3, a2_2); let spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927f)) + (spec * specular)) * radiance) * nl_2); } fn sky(dir: vec3) -> vec3 { let _e4 = Lit.up; let a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1f, 1f)); if (a_3 <= 1.5707964f) { let c_23 = (1f - (a_3 / 1.5707964f)); let k_13 = clamp((1f - pow(max((1f - c_23), 0.000001f), 6.6666665f)), 0f, 1f); let _e30 = Lit.sky_horizon; let _e34 = Lit.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } let c_24 = ((a_3 - 1.5707964f) / 1.5707964f); let k_14 = clamp((1f - pow(max((1f - c_24), 0.000001f), 50f)), 0f, 1f); let _e54 = Lit.ground_horizon; let _e58 = Lit.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } fn filmic_curve(x: vec3) -> vec3 { return ((((x * ((0.88f * x) + vec3((0.1f * 0.6f)))) + vec3((0.2f * 0.01f))) / ((x * ((0.88f * x) + vec3(0.6f))) + vec3((0.2f * 0.3f)))) - vec3((0.01f / 0.3f))); } fn aces_curve(c_4: vec3, white: f32) -> vec3 { let x_2 = vec3((1.8f * dot(vec3(0.59719f, 0.35458f, 0.04823f), c_4)), (1.8f * dot(vec3(0.076f, 0.90834f, 0.01566f), c_4)), (1.8f * dot(vec3(0.0284f, 0.13383f, 0.83777f), c_4))); let t_2 = (((x_2 * (x_2 + vec3(0.0245786f))) - vec3(0.000090537f)) / ((x_2 * ((0.983729f * x_2) + vec3(0.432951f))) + vec3(0.238081f))); let o_5 = vec3(dot(vec3(1.60475f, -0.53108f, -0.07367f), t_2), dot(vec3(-0.10208f, 1.10813f, -0.00605f), t_2), dot(vec3(-0.00327f, -0.07276f, 1.07602f), t_2)); let w_1 = (1.8f * white); let wt = (((w_1 * (w_1 + 0.0245786f)) - 0.000090537f) / ((w_1 * ((0.983729f * w_1) + 0.432951f)) + 0.238081f)); return (o_5 / vec3(wt)); } fn agx_curve(c_5: vec3) -> vec3 { var v_2: vec3; let inset = mat3x3(vec3(0.54490817f, 0.14044006f, 0.08882741f), vec3(0.37377945f, 0.7541096f, 0.17887713f), vec3(0.08138498f, 0.10543358f, 0.73225f)); let outset = mat3x3(vec3(1.964551f, -0.29932243f, -0.16436833f), vec3(-0.85585845f, 1.3264511f, -0.23822464f), vec3(-0.10886711f, -0.02708402f, 1.4026654f)); v_2 = (inset * max(c_5, vec3(0.0000000002f))); let _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931f), vec3(4.0260687f)) - vec3(-12.473931f)) / vec3((4.0260687f - -12.473931f))); let _e44 = v_2; let _e45 = v_2; let x2_ = (_e44 * _e45); let x4_ = (x2_ * x2_); let _e48 = v_2; let _e56 = v_2; let _e64 = v_2; let p_7 = ((((((0.021f * _e48) + (4.0111f * x2_)) - ((25.682f * x2_) * _e56)) + (70.359f * x4_)) - ((74.778f * x4_) * _e64)) + ((27.069f * x4_) * x2_)); return (outset * pow(max(p_7, vec3(0.0000000001f)), vec3(2.4f))); } fn tonemap(c_in: vec3) -> vec3 { let _e4 = Lit.tone.x; let c_25 = max((c_in * _e4), vec3(0f)); let white_1 = Lit.tone.y; let mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return (((white_1 * c_25) + c_25) / ((c_25 * white_1) + vec3(white_1))); } if (mode == TONEMAP_FILMIC) { let _e27 = filmic_curve(c_25); let _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if (mode == TONEMAP_ACES) { let _e33 = aces_curve(c_25, white_1); return _e33; } if (mode == TONEMAP_AGX) { let _e36 = agx_curve(c_25); return _e36; } return c_25; } fn emerge_hash(p_1: vec3) -> f32 { var q: vec3; q = fract((p_1 * 0.1031f)); let _e5 = q; let _e6 = q; let _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32f))))); let _e16 = q.x; let _e18 = q.y; let _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } fn emerge_noise(p_2: vec3) -> f32 { let i_13 = floor(p_2); let f = fract(p_2); let u_1 = ((f * f) * (vec3(3f) - (2f * f))); let _e10 = emerge_hash(i_13); let _e16 = emerge_hash((i_13 + vec3(1f, 0f, 0f))); let _e24 = emerge_hash((i_13 + vec3(0f, 1f, 0f))); let _e30 = emerge_hash((i_13 + vec3(1f, 1f, 0f))); let a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); let _e40 = emerge_hash((i_13 + vec3(0f, 0f, 1f))); let _e46 = emerge_hash((i_13 + vec3(1f, 0f, 1f))); let _e54 = emerge_hash((i_13 + vec3(0f, 1f, 1f))); let _e60 = emerge_hash((i_13 + vec3(1f, 1f, 1f))); let b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } fn emerge_reveal(world_2: vec3, pixel: vec2) -> f32 { var n_1: f32; let _e6 = O.extra.x; if select(true, ((_e6 & OBJ_EMERGE) == 0u), SPEC_EMERGE) { return 1f; } let e_3 = O.normal[0][3]; let w_2 = (world_2 * EMERGE_SCALE); let _e21 = emerge_noise(w_2); let _e29 = emerge_noise(((w_2 * 2.7f) + vec3(17.1f))); n_1 = smoothstep(0.2f, 0.8f, ((_e21 * 0.65f) + (_e29 * 0.35f))); if (pixel.x >= 0f) { let ign = fract((52.982918f * fract(dot(floor(pixel), vec2(0.06711056f, 0.00583715f))))); let _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5f) * EMERGE_DITHER)), 0f, 1f); } let _e60 = n_1; return (((e_3 * 1.8f) - _e60) / EMERGE_EDGE); } fn emerge_tint(c_6: vec3, r: f32) -> vec3 { var local_7: bool; let _e6 = O.extra.x; if !(((_e6 & OBJ_EMERGE) == 0u)) { local_7 = (r >= 1f); } else { local_7 = true; } let _e17 = local_7; if select(true, _e17, SPEC_EMERGE) { return c_6; } let _e23 = O.extra.w; let _e26 = srgb_to_linear(unpack4x8unorm(_e23).xyz); let _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0f, 1f, r)); } fn item_fade(c_7: vec3) -> vec3 { let _e5 = O.extra.x; if select(true, ((_e5 & OBJ_FADE) == 0u), SPEC_FADE) { return c_7; } let f_1 = O.normal[3]; let _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } fn sky_dir(d: vec3) -> vec3 { let _e3 = Sky.to_sky; return normalize((_e3 * vec4(d, 0f)).xyz); } fn sky_curve(c_8: f32, curve: f32) -> f32 { return clamp((1f - pow(max((1f - c_8), 0.000001f), (1f / curve))), 0f, 1f); } fn procedural_sky(d_1: vec3) -> vec3 { var sky_1: vec3; var i: u32 = 0u; let v_7 = acos(clamp(d_1.y, -1f, 1f)); let _e8 = Sky.sky_horizon; let _e12 = Sky.sky_top; let _e21 = Sky.sky_top.w; let _e22 = sky_curve((1f - (v_7 / 1.5707964f)), _e21); let _e27 = Sky.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); let _e33 = Sky.flags.z; let suns = min(_e33, SKY_SUNS); loop { let _e38 = i; if (_e38 < suns) { } else { break; } { let _e42 = i; let sun = Sky.suns[_e42]; let size = sun.direction.w; let a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1f, 1f)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { let _e60 = Sky.sun.x; if (a_5 < _e60) { let _e66 = Sky.sun.x; let c2_ = ((a_5 - size) / (_e66 - size)); let _e71 = sky_1; let _e75 = Sky.sun.y; let _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } continuing { let _e79 = i; i = (_e79 + 1u); } } let _e83 = Sky.ground_horizon; let _e87 = Sky.ground_bottom; let _e96 = Sky.ground_bottom.w; let _e97 = sky_curve(((v_7 - 1.5707964f) / 1.5707964f), _e96); let _e102 = Sky.ground_horizon.w; let ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); let _e104 = sky_1; let _e112 = Sky.sun.z; return (select(ground, _e104, (d_1.y >= 0f)) * _e112); } fn panorama(d_2: vec3) -> vec3 { let uv_4 = vec2(fract((atan2(d_2.x, -(d_2.z)) / 6.2831855f)), (acos(clamp(d_2.y, -1f, 1f)) / PI)); let _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { let _e27 = textureSampleLevel(t_panorama, s_panorama, uv_4, 0f); let _e32 = Sky.sun.z; return (_e27.xyz * _e32); } let _e36 = textureDimensions(t_panorama, 0i); let size_1 = vec2(_e36); let x_3 = (((i32(floor((uv_4.x * f32(size_1.x)))) % size_1.x) + size_1.x) % size_1.x); let y = clamp(i32(floor((uv_4.y * f32(size_1.y)))), 0i, (size_1.y - 1i)); let _e64 = textureLoad(t_panorama, vec2(x_3, y), 0i); let _e69 = Sky.sun.z; return (_e64.xyz * _e69); } fn sh_irradiance(n_2: vec3) -> vec3 { var c_9: vec3; let _e4 = Sky.sh[0]; c_9 = (_e4.xyz * 0.282095f); let _e9 = c_9; let _e13 = Sky.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603f * n_2.y))); let _e20 = c_9; let _e24 = Sky.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603f * n_2.z))); let _e31 = c_9; let _e35 = Sky.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603f * n_2.x))); let _e42 = c_9; let _e46 = Sky.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548f * n_2.x) * n_2.y))); let _e55 = c_9; let _e59 = Sky.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548f * n_2.y) * n_2.z))); let _e68 = c_9; let _e72 = Sky.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392f * (((3f * n_2.z) * n_2.z) - 1f)))); let _e85 = c_9; let _e89 = Sky.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548f * n_2.x) * n_2.z))); let _e98 = c_9; let _e102 = Sky.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274f * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); let _e115 = c_9; return max(_e115, vec3(0f)); } fn radiance_1(d_3: vec3, roughness: f32) -> vec3 { let _e5 = Sky.flags.y; let top_1 = f32((max(_e5, 1u) - 1u)); let _e14 = textureSampleLevel(t_radiance, s_radiance, d_3, (roughness * top_1)); return _e14.xyz; } fn env_brdf_approx(roughness_1: f32, nv_1: f32) -> vec2 { let r_6 = ((roughness_1 * vec4(-1f, -0.0275f, -0.572f, 0.022f)) + vec4(1f, 0.0425f, 1.04f, -0.04f)); let a004_ = ((min((r_6.x * r_6.x), exp2((-9.28f * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04f, 1.04f) * a004_) + r_6.zw); } fn pow8_(x_1: f32) -> f32 { let x2_1 = (max(x_1, 0f) * max(x_1, 0f)); let x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } fn fog_sun_scatter(fc: vec3, dir_1: vec3) -> vec3 { var c_10: vec3; var k_4: u32 = 0u; c_10 = fc; let _e6 = Sky.fog_color.w; if (_e6 > 0.001f) { let _e9 = pool_sun_count(); loop { let _e12 = k_4; if (_e12 < _e9) { } else { break; } { let _e14 = k_4; let _e15 = pool_sun(_e14); let _e21 = Lit.lights[_e15].info.x; if (_e21 == LIGHT_DIRECTIONAL) { let _e24 = c_10; let _e29 = Lit.lights[_e15].color; let _e38 = Lit.lights[_e15].direction; let _e42 = pow8_(dot(dir_1, -(_e38.xyz))); let _e47 = Sky.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927f)) * _e42) * _e47)); } } continuing { let _e51 = k_4; k_4 = (_e51 + 1u); } } } let _e53 = c_10; return _e53; } fn sky_fog(c_11: vec3, dir_2: vec3) -> vec3 { let _e4 = Sky.fog_color; let _e9 = Sky.fog_depth.w; let _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); let _e15 = Sky.fog.y; return mix(c_11, _e11, _e15); } fn surface_fog(c_12: vec3, world_3: vec3, dir_3: vec3) -> vec3 { var dist: f32; var amount: f32; var fc_1: vec3; var local_8: bool; let _e5 = G.view; let depth = -((_e5 * vec4(world_3, 1f)).z); let _e13 = G.camera_pos; dist = distance(world_3, _e13.xyz); let _e20 = Sky.fog_origin.w; if (_e20 > 0.5f) { let _e26 = Sky.fog_origin.x; dist = max((depth - _e26), 0f); } let _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { let _e42 = Sky.fog_depth.x; let _e46 = Sky.fog_depth.y; let _e47 = dist; let z = smoothstep(_e42, _e46, _e47); let _e54 = Sky.fog_depth.z; let _e63 = Sky.fog.x; amount = (select(0f, pow(max(z, 0.000001f), _e54), (z > 0f)) * _e63); } else { let _e65 = dist; let _e70 = Sky.fog.x; amount = (1f - exp(min(0f, (-(_e65) * _e70)))); } let _e80 = Sky.fog.w; if (abs(_e80) >= 0.0001f) { let _e86 = Lit.up; let y_1 = dot(world_3, _e86.xyz); let _e89 = amount; let _e93 = Sky.fog.z; let _e98 = Sky.fog.w; amount = max(_e89, (1f - exp(min(0f, ((y_1 - _e93) * _e98))))); } let _e106 = amount; amount = clamp(_e106, 0f, 1f); let _e112 = Sky.fog_color; fc_1 = _e112.xyz; let _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { let _e129 = Sky.fog_depth.w; local_8 = (_e129 > 0f); } else { local_8 = false; } let _e133 = local_8; if select(false, _e133, SPEC_AMBIENT_SKY) { let _e139 = Sky.fog_origin.y; let _e144 = Sky.fog_origin.z; let _e148 = Sky.fog_origin.y; let t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 0.000001f)), 0f, 1f); let _e159 = Sky.flags.y; let top_2 = f32((max(_e159, 2u) - 1u)); let rough = mix((1f / top_2), 1f, (1f - t_3)); let _e171 = fc_1; let _e172 = sky_dir(dir_3); let _e173 = radiance_1(_e172, rough); let _e177 = Sky.sun.w; let _e182 = Sky.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } let _e184 = fc_1; let _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; let _e186 = fc_1; let _e187 = amount; return mix(c_12, _e186, _e187); } fn fog_chord(k_5: u32, o: vec3, d_4: vec3, t_end_ray: f32) -> vec2 { var r_1: vec2; var a: f32 = 0f; var b: f32 = 0f; var c_13: f32 = -1f; let _e9 = Fog.entries[k_5].albedo.w; let shape = u32(_e9); let _e16 = Fog.entries[k_5].emission.w; let t_end_1 = min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return vec2(0f, t_end_1); } let _e26 = Fog.entries[k_5].size; let h_1 = (_e26.xyz * 0.5f); let dd = select(d_4, vec3(0.000000000001f), (abs(d_4) < vec3(0.000000000001f))); let sa = ((-(h_1) - o) / dd); let sb = ((h_1 - o) / dd); let s_in = min(sa, sb); let s_out = max(sa, sb); r_1 = vec2(max(0f, s_in.y), min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { let _e60 = r_1.x; let _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1f); } else { let rad = min(h_1.x, h_1.z); let k_15 = select(0f, (rad / (2f * h_1.y)), (shape == FOG_SHAPE_CONE)); let w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - select((rad * rad), (((k_15 * k_15) * w_3) * w_3), (shape == FOG_SHAPE_CONE))); } } let _e139 = b; let _e140 = b; let _e142 = a; let _e143 = c_13; let disc = ((_e139 * _e140) - (_e142 * _e143)); let _e146 = a; if (abs(_e146) < 0.000000000001f) { let _e150 = b; if (abs(_e150) < 0.000000000001f) { let _e156 = r_1.y; let _e157 = c_13; r_1.y = select(_e156, -1f, (_e157 > 0f)); } else { let _e162 = b; if (_e162 > 0f) { let _e167 = r_1.y; let _e168 = c_13; let _e170 = b; r_1.y = min(_e167, (-(_e168) / (2f * _e170))); } else { let _e177 = r_1.x; let _e178 = c_13; let _e180 = b; r_1.x = max(_e177, (-(_e178) / (2f * _e180))); } } } else { if (disc < 0f) { let _e189 = r_1.y; let _e190 = a; r_1.y = select(_e189, -1f, (_e190 > 0f)); } else { let _e195 = b; let _e199 = a; let _e201 = b; let _e205 = a; let lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); let _e208 = b; let _e212 = a; let _e214 = b; let _e218 = a; let hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); let _e221 = a; if (_e221 > 0f) { let _e225 = r_1.x; let _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { let _e232 = r_1.x; let _e234 = r_1.y; if (_e232 < min(_e234, lo_2)) { let _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { let _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } let _e245 = r_1; return _e245; } fn fog_density(k_6: u32, p_3: vec3, lp: vec3) -> f32 { var rho: f32; var sdf: f32 = 0f; let e_4 = Fog.entries[k_6]; let _e14 = Fog.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1f)); if (e_4.material.z > 0f) { let shape_1 = u32(e_4.albedo.w); let h_2 = (e_4.size.xyz * 0.5f); let rad_1 = min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { let k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1f)) / max(length((lp / (h_2 * h_2))), 0.000000000001f)); } else { if (shape_1 == FOG_SHAPE_BOX) { let q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0f))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0f)); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { let q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0f) + length(max(q_4, vec2(0f)))); } else { let n_11 = normalize(vec2((1f / max(0.001f, (rad_1 * 0.5f))), (1f / max(0.001f, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } let _e116 = rho; let _e117 = sdf; rho = (_e116 * pow(clamp(((-2f * _e117) / e_4.size.w), 0f, 1f), e_4.material.z)); } let _e130 = rho; return _e130; } fn fog_falloff_depth(k_7: u32, a_1: f32, b_1: f32, t0_: f32, t1_: f32) -> f32 { let m_4 = Fog.entries[k_7].material; let hf = m_4.y; if ((hf * b_1) == 0f) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1f)); } let s_2 = clamp((-(a_1) / b_1), t0_, t1_); let lo_3 = select(t0_, s_2, (b_1 > 0f)); let hi_3 = select(s_2, t1_, (b_1 > 0f)); let x_4 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472f); let g = select(((1f - exp(-(x_4))) / x_4), (1f - (x_4 * (0.5f - (x_4 * (0.16666667f - (x_4 / 24f)))))), (x_4 < 0.01f)); let top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * select(hi_3, lo_3, (b_1 > 0f)))), 0f))), 1f); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } fn omni_attenuation(d_5: f32, inv_range: f32, decay: f32) -> f32 { var nd: f32; nd = (d_5 * inv_range); let _e5 = nd; let _e6 = nd; nd = (_e5 * _e6); let _e8 = nd; let _e9 = nd; nd = (_e8 * _e9); let _e11 = nd; nd = max((1f - _e11), 0f); let _e16 = nd; let _e17 = nd; nd = (_e16 * _e17); let _e19 = nd; return (_e19 * pow(max(d_5, 0.0001f), -(decay))); } fn fog_light(n_3: u32, p_4: vec3, dir_4: vec3) -> vec3 { var sum: vec3; var k_8: u32 = 0u; var l_1: vec3; var atten: f32; let _e5 = Fog.ambient; let _e10 = Fog.params.y; sum = (_e5.xyz * _e10); let g_1 = Fog.params.x; let lights = Fog.entries[n_3].lights; loop { let _e24 = k_8; if (_e24 < min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { let _e31 = k_8; let _e35 = k_8; let i_14 = min(((select(lights.y, lights.x, (_e31 < 4u)) >> ((_e35 & 3u) * 8u)) & 255u), 63u); let li = Lit.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1f; if (li.info.x != LIGHT_DIRECTIONAL) { let rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 0.000001f))); let _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { let _e77 = l_1; let rim = max(0.0001f, ((1f - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1f - li.spot.x), 0.000001f))); let _e96 = atten; atten = (_e96 * (1f - pow(rim, li.spot.y))); } } let _e108 = l_1; let q_5 = ((1f + (g_1 * g_1)) - ((2f * g_1) * dot(dir_4, _e108))); let _e112 = sum; let _e115 = atten; let _e133 = Fog.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1f - (g_1 * g_1))) / ((12.566371f * q_5) * sqrt(q_5))) * _e133))); } continuing { let _e138 = k_8; k_8 = (_e138 + 1u); } } let _e140 = sum; return _e140; } fn fog_entry(k_9: u32, o_1: vec3, d_6: vec3, ch: vec2) -> vec4 { var split: f32; var local_9: bool; var local_10: bool; var q_1: vec3 = vec3(0f); var tau: f32 = 0f; var i_1: u32 = 0u; var local_11: bool; var local_12: bool; let e_5 = Fog.entries[k_9]; let lo_4 = (e_5.to_local * vec4(o_1, 1f)).xyz; let ld = (e_5.to_local * vec4(d_6, 0f)).xyz; let _e20 = Fog.up; let a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); let _e28 = Fog.up; let b_3 = dot(d_6, _e28.xyz); let edge = (e_5.material.z > 0f); split = ((ch.x + ch.y) * 0.5f); if (e_5.material.y > 0f) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } let _e52 = local_9; if _e52 { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } let _e60 = local_10; if _e60 { split = (-(a_6) / b_3); } loop { let _e70 = i_1; if (_e70 < select(4u, 12u, edge)) { } else { break; } { let _e75 = i_1; let j = (_e75 & 3u); if !((j == 0u)) { local_11 = (j == 3u); } else { local_11 = true; } let _e88 = local_11; let x_5 = select(FOG_GL_X1_, FOG_GL_X0_, _e88); if !((j == 0u)) { local_12 = (j == 3u); } else { local_12 = true; } let _e100 = local_12; let w_4 = select(FOG_GL_W1_, FOG_GL_W0_, _e100); let _e102 = split; let _e106 = split; let _e108 = i_1; let _e112 = i_1; let seg = select(select(vec2(_e102, ch.y), vec2(ch.x, _e106), (_e108 < 8u)), ch, (_e112 < 4u)); let half_len = ((seg.y - seg.x) * 0.5f); let t_4 = (((seg.x + seg.y) * 0.5f) + (half_len * select(x_5, -(x_5), (j < 2u)))); let p_8 = (o_1 + (d_6 * t_4)); let _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_4))); let _e137 = i_1; if (_e137 < 4u) { let _e140 = q_1; let _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0f, 1f)))); } else { let _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } continuing { let _e160 = i_1; i_1 = (_e160 + 1u); } } if !(edge) { let _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } let _e166 = q_1; let _e167 = tau; return vec4(_e166, _e167); } fn fog_integrate(c_14: vec3, o_2: vec3, d_7: vec3, t_end: f32, list: u32) -> vec3 { var at: array; var chords: array, 4>; var m: u32 = 0u; var i_2: u32 = 0u; var local_13: bool; var parts: array, 4>; var i_3: u32 = 0u; var n_4: u32 = 0u; var avail: f32; var i_4: u32; var i_5: u32; var q_2: vec3 = vec3(0f); var tau_1: f32 = 0f; var i_6: u32 = 0u; let all_ = (list >= FOG_LIST_ALL); loop { let _e13 = i_2; let _e18 = Fog.counts.x; if (_e13 < select(4u, min(_e18, MAX_FRAME_FOG_VOLUMES), all_)) { } else { break; } { let _e23 = i_2; let byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if !(all_) { local_13 = (byte == 0u); } else { local_13 = false; } let _e37 = local_13; if _e37 { break; } let _e42 = i_2; let k_16 = select((min(byte, MAX_FRAME_FOG_VOLUMES) - 1u), _e42, all_); let to_local = Fog.entries[k_16].to_local; let _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1f)).xyz, (to_local * vec4(d_7, 0f)).xyz, t_end); if (_e57.y > _e57.x) { let _e61 = m; at[_e61] = k_16; let _e63 = m; chords[_e63] = _e57; let _e66 = m; m = (_e66 + 1u); let _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } continuing { let _e72 = i_2; i_2 = (_e72 + 1u); } } loop { let _e77 = i_3; let _e78 = m; if (_e77 < _e78) { } else { break; } { let _e80 = i_3; let _e82 = i_3; let _e84 = at[_e82]; let _e85 = i_3; let _e87 = chords[_e85]; let _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } continuing { let _e90 = i_3; i_3 = (_e90 + 1u); } } loop { let _e94 = n_4; let _e95 = m; if (_e94 < _e95) { } else { break; } { let _e97 = n_4; let _e100 = parts[_e97].w; if (_e100 < 0f) { avail = 0f; i_4 = 0u; loop { let _e107 = i_4; let _e108 = m; if (_e107 < _e108) { } else { break; } { let _e110 = i_4; let _e113 = chords[_e110].y; let _e114 = n_4; let _e117 = chords[_e114].y; let _e119 = i_4; let _e122 = chords[_e119].x; let _e123 = n_4; let _e126 = chords[_e123].x; let _e131 = i_4; let _e134 = chords[_e131].y; let _e135 = i_4; let _e138 = chords[_e135].x; let share = (max((min(_e113, _e117) - max(_e122, _e126)), 0f) / max((_e134 - _e138), 0.000001f)); let _e143 = avail; let _e144 = i_4; let _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0f) * share)); } continuing { let _e153 = i_4; i_4 = (_e153 + 1u); } } let _e155 = n_4; let _e158 = parts[_e155].w; let _e160 = avail; let f_2 = min((-(_e158) / max(_e160, 0.000000000001f)), 1f); i_5 = 0u; loop { let _e168 = i_5; let _e169 = m; if (_e168 < _e169) { } else { break; } { let _e171 = i_5; let _e174 = parts[_e171].w; if (_e174 > 0f) { let _e177 = i_5; let _e180 = chords[_e177].y; let _e181 = n_4; let _e184 = chords[_e181].y; let _e186 = i_5; let _e189 = chords[_e186].x; let _e190 = n_4; let _e193 = chords[_e190].x; let _e198 = i_5; let _e201 = chords[_e198].y; let _e202 = i_5; let _e205 = chords[_e202].x; let share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0f) / max((_e201 - _e205), 0.000001f)); let _e210 = i_5; let _e212 = parts[_e210]; parts[_e210] = (_e212 * (1f - (share_1 * f_2))); } } continuing { let _e218 = i_5; i_5 = (_e218 + 1u); } } } } continuing { let _e221 = n_4; n_4 = (_e221 + 1u); } } loop { let _e230 = i_6; let _e231 = m; if (_e230 < _e231) { } else { break; } { let _e233 = i_6; let _e236 = parts[_e233].w; if (_e236 > 0f) { let _e239 = q_2; let _e240 = i_6; let _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); let _e245 = tau_1; let _e246 = i_6; let _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } continuing { let _e252 = i_6; i_6 = (_e252 + 1u); } } let _e254 = tau_1; let t_5 = exp(-(_e254)); let _e258 = q_2; let _e261 = tau_1; return ((c_14 * t_5) + (_e258 * ((1f - t_5) / max(_e261, 0.00001f)))); } fn fog_volumes(c_15: vec3, world_4: vec3, list_1: u32) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_6 = select(_e22.xyz, (world_4 - (back * (_e26 * vec4(world_4, 1f)).z)), (_e36 > 0.5f)); let len = length((world_4 - o_6)); let _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 0.000001f))), len, list_1); return select(c_15, _e47, (len > 0f)); } fn sky_fog_volumes(c_16: vec3, near_point: vec3, dir_5: vec3) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back_1 = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_7 = select(_e22.xyz, (near_point - (back_1 * (_e26 * vec4(near_point, 1f)).z)), (_e36 > 0.5f)); let _e44 = Fog.counts.y; let _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); let _e49 = Fog.params.z; return mix(c_16, _e45, _e49); } fn shadow_factor(i_7: u32, world_5: vec3, n_geo_1: vec3, l_2: vec3) -> f32 { var part: u32 = 0u; var c_17: u32 = 0u; var local_14: bool; var local_15: bool; var local_16: bool; var vis: f32 = 0f; var dy: i32 = -1i; var dx: i32; let kind = Lit.lights[i_7].info.x; let _e14 = Lit.lights[i_7].position; let light_pos = _e14.xyz; let _e21 = Lit.lights[i_7].info.w; let slot = min(_e21, 15u); let params = Shadow.lights[slot].params; let first = Shadow.lights[slot].info.x; let _e40 = Shadow.lights[slot].info.y; let count = max(_e40, 1u); let _e45 = G.view; let view_depth = -((_e45 * vec4(world_5, 1f)).z); if (kind == LIGHT_DIRECTIONAL) { let _e60 = Shadow.lights[slot].fade.y; if (view_depth > _e60) { return 1f; } part = (count - 1u); loop { let _e67 = c_17; if (_e67 < count) { } else { break; } { let _e73 = c_17; let _e75 = Shadow.lights[slot].splits[_e73]; if (view_depth <= _e75) { let _e77 = c_17; part = _e77; break; } } continuing { let _e79 = c_17; c_17 = (_e79 + 1u); } } } let _e83 = part; let texel = Shadow.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; let t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); let p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1f)) * t_6))) + (l_2 * (params.x * t_6))); if (kind == LIGHT_OMNI) { let d_13 = (p_9 - light_pos); let a_7 = abs(d_13); if (a_7.x >= a_7.y) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } let _e123 = local_14; if _e123 { part = select(1u, 0u, (d_13.x >= 0f)); } else { if (a_7.y >= a_7.z) { part = select(3u, 2u, (d_13.y >= 0f)); } else { part = select(5u, 4u, (d_13.z >= 0f)); } } } let _e145 = part; let tile = min((first + min(_e145, (count - 1u))), 15u); let _e156 = Shadow.tiles[tile].view_proj; let clip_1 = (_e156 * vec4(p_9, 1f)); if (clip_1.w <= 0f) { return 1f; } let ndc = (clip_1.xyz / vec3(clip_1.w)); if !((abs(ndc.x) > 1f)) { local_15 = (abs(ndc.y) > 1f); } else { local_15 = true; } let _e180 = local_15; if !(_e180) { local_16 = (ndc.z > 1f); } else { local_16 = true; } let _e188 = local_16; if _e188 { return 1f; } let rect = Shadow.tiles[tile].rect; let uv_5 = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let auv = (rect.xy + (uv_5 * rect.zw)); let texel_uv = Shadow.atlas.x; let lo_5 = (rect.xy + vec2((0.5f * texel_uv))); let hi_4 = ((rect.xy + rect.zw) - vec2((0.5f * texel_uv))); let r_7 = params.z; if (r_7 <= 0f) { let _e235 = textureSampleCompareLevel(t_shadow, s_shadow, clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { let spread = (r_7 * texel_uv); loop { let _e239 = dy; if (_e239 <= 1i) { } else { break; } { dx = -1i; loop { let _e244 = dx; if (_e244 <= 1i) { } else { break; } { let _e247 = dx; let _e249 = dy; let tap = clamp((auv + (vec2(f32(_e247), f32(_e249)) * spread)), lo_5, hi_4); let _e255 = vis; let _e259 = textureSampleCompareLevel(t_shadow, s_shadow, tap, ndc.z); vis = (_e255 + _e259); } continuing { let _e262 = dx; dx = (_e262 + 1i); } } } continuing { let _e265 = dy; dy = (_e265 + 1i); } } let _e267 = vis; vis = (_e267 / 9f); } if (kind == LIGHT_DIRECTIONAL) { let fade_1 = Shadow.lights[slot].fade; let _e277 = vis; vis = mix(_e277, 1f, smoothstep(fade_1.x, fade_1.y, view_depth)); } let _e283 = vis; return mix(1f, _e283, params.w); } fn probe_light(n_5: vec3) -> vec3 { let _e5 = O.gi[0].x; let _e9 = O.gi[0]; let _e17 = O.gi[1].x; let _e21 = O.gi[1]; let _e29 = O.gi[2].x; let _e33 = O.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0f)); } fn gi_diffuse(n_6: vec3, baked: bool, baked_light: vec3) -> vec4 { if baked { return vec4(baked_light, 1f); } let _e9 = O.extra.x; if select(false, ((_e9 & OBJ_PROBE_GI) != 0u), SPEC_PROBE_GI) { let _e16 = probe_light(n_6); return vec4(_e16, 1f); } return vec4(0f); } fn probe_face_uv(d_8: vec3) -> vec3 { var face: f32; var ma: f32; var sc: f32; var tc: f32; var local_17: bool; let a_8 = abs(d_8); if (a_8.x >= a_8.y) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } let _e15 = local_17; if _e15 { ma = a_8.x; if (d_8.x >= 0f) { face = 0f; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1f; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0f) { face = 2f; sc = d_8.x; tc = d_8.z; } else { face = 3f; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0f) { face = 4f; sc = d_8.x; tc = -(d_8.y); } else { face = 5f; sc = -(d_8.x); tc = -(d_8.y); } } } let _e56 = face; let _e57 = sc; let _e58 = ma; let _e64 = tc; let _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1f) * 0.5f), (((_e64 / _e65) + 1f) * 0.5f)); } fn probe_texel(row: u32, fuv: vec3, level_1: u32) -> vec3 { let _e6 = Probe.counts.z; let n_12 = f32(max((_e6 >> level_1), 1u)); let lo_6 = (0.5f / n_12); let u_2 = clamp(fuv.y, lo_6, (1f - lo_6)); let v_8 = clamp(fuv.z, lo_6, (1f - lo_6)); let uv_6 = vec2(((fuv.x + u_2) / 6f), ((f32(row) + v_8) / 8f)); let _e33 = textureSampleLevel(t_probes, s_probes, uv_6, f32(level_1)); return _e33.xyz; } fn probe_sample(row_1: u32, d_9: vec3, lod: f32) -> vec3 { var local_18: bool; let _e6 = Probe.counts.y; let levels = max(_e6, 1u); let l_5 = clamp(lod, 0f, f32((levels - 1u))); let m0_ = u32(l_5); let t_7 = (l_5 - f32(m0_)); let _e17 = probe_face_uv(d_9); let _e18 = probe_texel(row_1, _e17, m0_); if !((t_7 <= 0f)) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } let _e28 = local_18; if _e28 { return _e18; } let _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1f - t_7)) + (_e34 * t_7)); } fn probe_weight(p_5: ProbeEntryU, world_6: vec3) -> f32 { let l_6 = (p_5.to_local * vec4(world_6, 1f)).xyz; let e_6 = p_5.extents.xyz; let d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if (d_14 < 0f) { return 0f; } if !((p_5.extents.w > 0f)) { return 1f; } return min((d_14 / p_5.extents.w), 1f); } fn probe_exit(o_3: f32, d_10: f32, e_1: f32) -> f32 { if (d_10 > 0f) { return ((e_1 - o_3) / d_10); } if (d_10 < 0f) { return ((-(e_1) - o_3) / d_10); } return 300000000000000000000000000000000000000f; } fn probe_lookup(p_6: ProbeEntryU, world_7: vec3, dir_6: vec3) -> vec3 { let d_15 = (p_6.to_local * vec4(dir_6, 0f)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } let o_8 = (p_6.to_local * vec4(world_7, 1f)).xyz; let e_7 = p_6.extents.xyz; let _e24 = probe_exit(o_8.x, d_15.x, e_7.x); let _e28 = probe_exit(o_8.y, d_15.y, e_7.y); let _e32 = probe_exit(o_8.z, d_15.z, e_7.z); let t_8 = max(min(_e24, min(_e28, _e32)), 0f); return ((o_8 + (d_15 * t_8)) - p_6.offset.xyz); } fn probe_reflection(world_8: vec3, r_2: vec3, roughness_2: f32, probes: u32) -> vec4 { var acc: vec3 = vec3(0f); var w_sum: f32 = 0f; var i_8: u32 = 0u; let _e12 = Probe.counts.x; let count_1 = min(_e12, MAX_PROBES); let _e18 = Probe.counts.y; let lod_1 = (roughness_2 * f32((max(_e18, 1u) - 1u))); loop { let _e27 = i_8; if (_e27 < count_1) { } else { break; } { let _e31 = i_8; let p_10 = Probe.probes[_e31]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } let _e41 = probe_weight(p_10, world_8); if (_e41 <= 0f) { continue; } let _e44 = acc; let _e47 = probe_lookup(p_10, world_8, r_2); let _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); let _e54 = w_sum; w_sum = (_e54 + _e41); } continuing { let _e57 = i_8; i_8 = (_e57 + 1u); } } let _e59 = w_sum; if (_e59 > 1f) { let _e62 = acc; let _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1f; } let _e67 = acc; let _e68 = w_sum; return vec4(_e67, _e68); } fn probe_ambient(world_9: vec3, n_7: vec3, probes_1: u32) -> vec4 { var acc_1: vec3 = vec3(0f); var w_sum_1: f32 = 0f; var i_9: u32 = 0u; var local_19: bool; var c_18: vec3; let _e11 = Probe.counts.x; let count_2 = min(_e11, MAX_PROBES); let _e17 = Probe.counts.y; let last = (max(_e17, 1u) - 1u); loop { let _e24 = i_9; if (_e24 < count_2) { } else { break; } { let _e28 = i_9; let p_11 = Probe.probes[_e28]; if !((((probes_1 >> p_11.info.w) & 1u) == 0u)) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } let _e46 = local_19; if _e46 { continue; } let _e47 = probe_weight(p_11, world_9); if (_e47 <= 0f) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { let _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0f)).xyz); let _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } let _e66 = acc_1; let _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); let _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } continuing { let _e73 = i_9; i_9 = (_e73 + 1u); } } let _e75 = w_sum_1; if (_e75 > 1f) { let _e78 = acc_1; let _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1f; } let _e83 = acc_1; let _e84 = w_sum_1; return vec4(_e83, _e84); } fn skin_row(k_10: u32, r_3: u32) -> vec4 { let _e10 = Skin.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } fn skin_rows(s_1: SkinIn) -> SkinRows { var m_1: SkinRows; let j_1 = s_1.joints; let w_5 = s_1.weights; let _e8 = skin_row(j_1.x, 0u); let _e13 = skin_row(j_1.y, 0u); let _e19 = skin_row(j_1.z, 0u); let _e25 = skin_row(j_1.w, 0u); m_1.r0_ = ((((w_5.x * _e8) + (w_5.y * _e13)) + (w_5.z * _e19)) + (w_5.w * _e25)); let _e32 = skin_row(j_1.x, 1u); let _e37 = skin_row(j_1.y, 1u); let _e43 = skin_row(j_1.z, 1u); let _e49 = skin_row(j_1.w, 1u); m_1.r1_ = ((((w_5.x * _e32) + (w_5.y * _e37)) + (w_5.z * _e43)) + (w_5.w * _e49)); let _e56 = skin_row(j_1.x, 2u); let _e61 = skin_row(j_1.y, 2u); let _e67 = skin_row(j_1.z, 2u); let _e73 = skin_row(j_1.w, 2u); m_1.r2_ = ((((w_5.x * _e56) + (w_5.y * _e61)) + (w_5.z * _e67)) + (w_5.w * _e73)); let _e76 = m_1; return _e76; } fn hedra_store_varyings(o_4: ptr) { let _e3 = affine_uv; (*o_4).hedra_v0_ = vec4(_e3); let _e7 = gouraud; (*o_4).hedra_v1_ = vec4(_e7, 0f); return; } fn hedra_load_varyings(i_10: CustomOut) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } fn light() { return; } fn scene_to_frame(v_3: vec3) -> vec3 { return vec3(v_3.x, -(v_3.z), v_3.y); } fn snap_view(view_pos: vec4) -> vec4 { let _e4 = hedra_p.snap_resolution.x; if (_e4 <= 0f) { return view_pos; } let _e9 = G.proj; let clip_2 = (_e9 * view_pos); if (clip_2.w <= 0.0001f) { return view_pos; } let _e16 = hedra_p.snap_resolution; let half_res = (_e16 * 0.5f); let ndc_1 = (clip_2.xy / vec2(clip_2.w)); let snapped = (round((ndc_1 * half_res)) / half_res); let _e27 = INV_PROJECTION_MATRIX; let back_2 = (_e27 * vec4((snapped * clip_2.w), clip_2.z, clip_2.w)); return vec4((back_2.xyz / vec3(back_2.w)), 1f); } fn vertex() { var diffuse_1: f32; let _e1 = MODEL_NORMAL_MATRIX; let _e3 = NORMAL; let n_13 = normalize((_e1 * _e3)); let _e8 = hedra_p.sun_direction; let _e9 = scene_to_frame(_e8); let sun_1 = normalize(_e9); diffuse_1 = max(dot(n_13, sun_1), 0f); let _e17 = hedra_p.light_bands; if (_e17 >= 2f) { let _e20 = diffuse_1; let _e23 = hedra_p.light_bands; let _e30 = hedra_p.light_bands; diffuse_1 = (floor(((_e20 * _e23) + 0.5f)) / _e30); } let _e34 = hedra_p.ground_ambient; let _e37 = hedra_p.sky_ambient; let ambient_2 = mix(_e34, _e37, ((n_13.z * 0.5f) + 0.5f)); let _e47 = hedra_p.sun_color; let _e48 = diffuse_1; let _e52 = COLOR; let _e57 = hedra_p.overbright; let _e61 = hedra_p.emission; gouraud = ((((ambient_2 + (_e47 * _e48)) * _e52.xyz) * _e57) + _e61); let _e64 = MODELVIEW_MATRIX; let _e66 = VERTEX; let _e70 = snap_view((_e64 * vec4(_e66, 1f))); VERTEX = _e70.xyz; let _e75 = MODELVIEW_NORMAL_MATRIX; let _e77 = NORMAL; NORMAL = normalize((_e75 * _e77)); let _e81 = UV; let _e84 = hedra_p.uv_scale; let _e88 = hedra_p.uv_offset; let _e92 = hedra_p.uv_scroll; let _e96 = G.fparams.w; let uv_7 = (((_e81 * _e84) + _e88) + (_e92 * _e96)); UV = uv_7; let _e102 = G.proj; let w_6 = (_e102 * _e70).w; let _e107 = hedra_p.affine_strength; let _e112 = hedra_p.affine_near; let weight = (_e107 * clamp(((w_6 - 0.25f) / max(_e112, 0.001f)), 0f, 1f)); affine_uv = vec4((uv_7 * w_6), w_6, weight); return; } fn fragment() { var order: array = array(0f, 2f, 3f, 1f); let _e2 = hedra_p.screen_door; if (_e2 > 0f) { let _e12 = FRAGCOORD; let cell = (vec2(_e12.xy) % vec2(2u, 2u)); let _e25 = order[((cell.y * 2u) + cell.x)]; let _e28 = hedra_p.screen_door; if (_e25 < ((_e28 * 4f) - 0.001f)) { discard; } } let _e35 = affine_uv; let _e39 = affine_uv.z; let affine = (_e35.xy / vec2(max(_e39, 0.0001f))); let _e45 = UV; let _e48 = affine_uv.w; let uv_8 = mix(_e45, affine, clamp(_e48, 0f, 1f)); let texel_1 = textureSample(albedo_texture, SAMPLER_NEAREST_REPEAT, uv_8); let _e60 = hedra_p.albedo; let _e64 = gouraud; ALBEDO = ((texel_1.xyz * _e60.xyz) * _e64); return; } fn hedra_mat3_(m_2: mat4x4) -> mat3x3 { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } fn hedra_rigid_inverse(m_3: mat4x4) -> mat4x4 { let _e1 = hedra_mat3_(m_3); let r_8 = transpose(_e1); let t_9 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0f), vec4(r_8[1], 0f), vec4(r_8[2], 0f), vec4(t_9, 1f)); } fn hedra_inv_projection() -> mat4x4 { let _e2 = G.wire_color; let _e5 = G.select_color; let _e8 = G.active_color; let _e11 = G.grid; return mat4x4(_e2, _e5, _e8, _e11); } fn hedra_godot_uv(uv_1: vec2) -> vec2 { return vec2(uv_1.x, (1f - uv_1.y)); } fn hedra_transparent() -> bool { var local_20: bool; var local_21: bool; if HEDRA_ALPHA { local_20 = true; } else { local_20 = false; } let _e5 = local_20; if !(_e5) { local_21 = false; } else { local_21 = true; } let _e11 = local_21; return _e11; } fn hedra_mirrored(flags_1: u32) -> bool { let _e4 = O.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } fn hedra_matrices(model: mat4x4, normal: mat3x3) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; let _e7 = G.view; let _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; let _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; let _e14 = G.view; MODELVIEW_MATRIX = (_e14 * model); let _e19 = G.view; let _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; let _e28 = G.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1f)).xyz; let _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } fn hedra_begin_vertex(pos: vec3, normal_1: vec3, tangent: vec4, uv_2: vec2, uv2_: vec2, color: vec4, vid_3: u32) { var local_22: bool; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); let _e17 = hedra_godot_uv(uv_2); UV = _e17; let _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = i32(vid_3); POSITION = vec4(1f); if HEDRA_WORLD_VERTEX_COORDS { local_22 = false; } else { local_22 = false; } let _e31 = local_22; if _e31 { let _e34 = MODEL_MATRIX; let _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1f)).xyz; let _e43 = MODEL_NORMAL_MATRIX; let _e45 = NORMAL; NORMAL = (_e43 * _e45); let _e49 = MODEL_NORMAL_MATRIX; let _e51 = TANGENT; TANGENT = (_e49 * _e51); let _e55 = MODEL_NORMAL_MATRIX; let _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } fn hedra_end_vertex(world_10: vec4, n_8: vec3, t: vec3, tw: f32, flags_2: u32) -> CustomOut { var out_2: CustomOut; let _e9 = G.view_proj; out_2.clip = (_e9 * world_10); if HEDRA_USES_POSITION { let _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); let _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); let _e28 = COLOR; out_2.color = _e28; let _e31 = UV2_; out_2.uv2_ = _e31; let _e34 = INSTANCE_ID; out_2.instance_id = u32(max(_e34, 0i)); hedra_store_varyings((&out_2)); let _e38 = out_2; return _e38; } fn hedra_vertex_space() -> bool { var local_23: bool; if false { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } let _e5 = local_23; return _e5; } fn hedra_vertex_world() -> vec4 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e2 = INV_VIEW_MATRIX; let _e4 = VERTEX; return (_e2 * vec4(_e4, 1f)); } let _e9 = VERTEX; return vec4(_e9, 1f); } fn hedra_vertex_dir(d_11: vec3) -> vec3 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e3 = INV_VIEW_MATRIX; let _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } fn hedra_tangent_sign(w: f32, flip: bool) -> f32 { let _e5 = O.extra.x; return (w * select(1f, -1f, (((_e5 & OBJ_MIRRORED) != 0u) != flip))); } fn hedra_fragment(in_7: CustomOut, facing_4: bool) { var t_1: vec3; var nm: vec3; let _e3 = hedra_mirrored(in_7.flags); let front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; let _e14 = G.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); let _e19 = O.model; let _e22 = O.normal; let _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); let _e26 = G.view; let _e27 = hedra_mat3_(_e26); let n_geo_2 = select(-(normalize(in_7.normal)), normalize(in_7.normal), front); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; let _e41 = t_1; let _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); let _e47 = t_1; let b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); let _e55 = G.view; VERTEX = (_e55 * vec4(in_7.world, 1f)).xyz; let _e63 = VERTEX; LIGHT_VERTEX = _e63; let vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); let normal0_ = NORMAL; let _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); let _e80 = VERTEX; let _e90 = G.camera_pos.w; VIEW = select(normalize(-(_e80)), vec3(0f, 0f, 1f), (_e90 > 0.5f)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5f); NORMAL_MAP_DEPTH = 1f; ALBEDO = vec3(1f); ALPHA = 1f; ALPHA_SCISSOR_THRESHOLD = 1f; PREMUL_ALPHA_FACTOR = 1f; METALLIC = 0f; SPECULAR = 0.5f; ROUGHNESS = 1f; RIM = 0f; RIM_TINT = 0f; BACKLIGHT = vec3(0f); AO = 1f; AO_LIGHT_AFFECT = 0f; EMISSION = vec3(0f); hedra_load_varyings(in_7); fragment(); let back_3 = transpose(_e27); let _e136 = NORMAL; if any((_e136 != normal0_)) { let _e141 = NORMAL; hedra_n = normalize((back_3 * _e141)); } let _e145 = NORMAL_MAP; if any((_e145 != vec3(0.5f))) { let _e151 = NORMAL_MAP; nm = _e151; let _e153 = nm; nm = vec3(((_e153.xy * 2f) - vec2(1f)), 0f); let _e163 = nm; let _e165 = nm; nm.z = sqrt(max(0f, (1f - dot(_e163.xy, _e165.xy)))); let _e175 = NORMAL; let _e177 = TANGENT; let _e179 = nm.x; let _e182 = BINORMAL; let _e184 = nm.y; let _e188 = NORMAL; let _e190 = nm.z; let _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); let _e199 = NORMAL; hedra_n = normalize((back_3 * _e199)); } let _e203 = LIGHT_VERTEX; if any((_e203 != vertex0_)) { let _e208 = INV_VIEW_MATRIX; let _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1f)).xyz; return; } else { return; } } fn hedra_culled(flags_3: u32) -> bool { var local_24: bool; var local_25: bool; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if false { let _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } let _e12 = local_24; if _e12 { return true; } if HEDRA_ALPHA_SCISSOR { let _e18 = ALPHA; let _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = (_e18 < _e20); } else { local_25 = false; } let _e23 = local_25; return _e23; } fn hedra_view_dir(world_11: vec3) -> vec3 { let _e5 = G.view[0][2]; let _e10 = G.view[1][2]; let _e15 = G.view[2][2]; let view_dir = vec3(_e5, _e10, _e15); let _e19 = G.camera_pos; let _e27 = G.camera_pos.w; return select(normalize((_e19.xyz - world_11)), normalize(view_dir), (_e27 > 0.5f)); } fn hedra_schlick(u: f32) -> f32 { let m_5 = clamp((1f - u), 0f, 1f); let m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } fn hedra_diffuse_brdf(nl_1: f32, nv_2: f32, lh: f32, r_4: f32) -> f32 { let c_nl = max(nl_1, 0f); if false { return (max(0f, ((nl_1 + r_4) / ((1f + r_4) * (1f + r_4)))) * 0.31830987f); } if false { return (smoothstep(-(r_4), max(r_4, 0.01f), nl_1) * 0.31830987f); } if false { let fd90_ = ((((2f * lh) * lh) * r_4) - 0.5f); let _e32 = hedra_schlick(nv_2); let fdv = (1f + (fd90_ * _e32)); let _e36 = hedra_schlick(c_nl); let fdl = (1f + (fd90_ * _e36)); return (((0.31830987f * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987f); } fn hedra_light_modes(n_9: vec3, v_4: vec3, l_3: vec3, radiance_2: vec3, diffuse_2: vec3, f0_2: vec3, a2_3: f32, r_5: f32, specular_1: f32) -> vec3 { var c_19: vec3; var mid: f32; var local_26: bool; let nl_3 = min(dot(n_9, l_3), 1f); let nv_4 = max(dot(n_9, v_4), 0.0001f); let h_3 = normalize((l_3 + v_4)); let lh_1 = clamp(dot(l_3, h_3), 0f, 1f); let _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if (r_5 > 0f) { if false { let refl = normalize(-(reflect(l_3, n_9))); let rv = dot(refl, v_4); mid = (1f - r_5); let _e35 = mid; let _e36 = mid; mid = (_e35 * _e36); let _e38 = c_19; let _e40 = mid; let _e44 = mid; let _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5f)), (_e44 + (r_5 * 0.5f)), rv) * _e49) * specular_1))); } else { if false { local_26 = (nl_3 > 0f); } else { local_26 = false; } let _e60 = local_26; if _e60 { let nh_2 = max(dot(n_9, h_3), 0f); let vh_2 = max(dot(v_4, h_3), 0f); let _e67 = f_schlick(f0_2, vh_2); let _e68 = c_19; let _e69 = d_ggx(nh_2, a2_3); let _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } let _e77 = c_19; return _e77; } fn hedra_light_dir(i_11: u32, world_12: vec3) -> vec4 { var atten_1: f32; let li_1 = Lit.lights[i_11]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return vec4(-(li_1.direction.xyz), 1f); } let rel_1 = (li_1.position.xyz - world_12); let d_16 = length(rel_1); let l_7 = (rel_1 / vec3(max(d_16, 0.000001f))); let _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { let cone = li_1.spot.x; let scos = max(dot(-(l_7), li_1.direction.xyz), cone); let rim_1 = max(0.0001f, ((1f - scos) / max((1f - cone), 0.000001f))); let _e49 = atten_1; atten_1 = (_e49 * (1f - pow(rim_1, li_1.spot.y))); } let _e56 = atten_1; return vec4(l_7, _e56); } fn hedra_shadow(i_12: u32, l_4: vec3) -> f32 { var local_27: bool; if false { let _e10 = Lit.lights[i_12].info.y; local_27 = (_e10 != LIGHT_SHADOWED); } else { local_27 = true; } let _e14 = local_27; if _e14 { return 1f; } let _e17 = hedra_world; let _e19 = hedra_n_geo; let _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } fn hedra_ambient(n_10: vec3, v_5: vec3, diffuse_3: vec3, f0_3: vec3, roughness_3: f32, metallic: f32) -> vec3 { var ambient: vec3; var diffuse_amb: vec3; var spec_amb: vec3; var dif: vec3; var dif_1: vec3; var dif_2: vec3; let world_13 = hedra_world; let nv_5 = max(dot(n_10, v_5), 0.0001f); let f_amb = (f0_3 + ((max(vec3((1f - roughness_3)), f0_3) - f0_3) * pow((1f - nv_5), 5f))); let _e25 = gi_diffuse(n_10, false, vec3(0f)); let _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { let _e38 = Sky.ibl.x; let _e42 = Sky.sun.w; let scale = (_e38 * _e42); let _e46 = Sky.ambient; diffuse_amb = _e46.xyz; let _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { let _e59 = Sky.ambient; let _e61 = sky_dir(n_10); let _e62 = sh_irradiance(_e61); let _e67 = Sky.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if (_e25.w > 0f) { diffuse_amb = _e25.xyz; } let _e75 = Sky.ambient; spec_amb = _e75.xyz; let _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { let _e88 = sky_dir(reflect(-(v_5), n_10)); let _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { let _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = vec3(0f); } } let _e101 = env_brdf_approx(roughness_3, nv_5); let _e105 = Probe.counts.x; if (_e105 > 0u) { let _e113 = O.extra.z; let _e114 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e113); let _e115 = spec_amb; let spec_1 = ((_e115 * (1f - _e114.w)) + _e114.xyz); let _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0f) { let _e130 = O.extra.z; let _e131 = probe_ambient(world_13, n_10, _e130); let _e132 = diffuse_amb; dif = ((_e132 * (1f - _e131.w)) + _e131.xyz); } let _e139 = dif; ambient = ((diffuse_3 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } else { let _e154 = diffuse_amb; let _e156 = spec_amb; ambient = ((diffuse_3 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } } else { let _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { let _e180 = Lit.up; let up = _e180.xyz; let _e184 = Lit.sky_top; let _e188 = Lit.sky_horizon; let sky_avg = ((_e184.xyz + _e188.xyz) * 0.5f); let _e195 = Lit.ground_horizon; let _e199 = Lit.ground_bottom; let ground_avg = ((_e195.xyz + _e199.xyz) * 0.5f); let irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up) * 0.5f) + 0.5f), 0f, 1f)); let _e215 = sky(reflect(-(v_5), n_10)); let blurred = mix(_e215, sky_avg, roughness_3); let _e220 = Probe.counts.x; if (_e220 > 0u) { let _e228 = O.extra.z; let _e229 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e228); let _e233 = Lit.ambient.w; let spec_2 = (((blurred * _e233) * (1f - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if (_e25.w <= 0f) { let _e249 = O.extra.z; let _e250 = probe_ambient(world_13, n_10, _e249); let _e254 = Lit.ambient.w; dif_1 = (((irradiance * _e254) * (1f - _e250.w)) + _e250.xyz); } let _e262 = dif_1; ambient = ((diffuse_3 * _e262) + (spec_2 * f_amb)); } else { if (_e25.w > 0f) { let _e275 = Lit.ambient.w; ambient = ((diffuse_3 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { let _e284 = Lit.ambient.w; ambient = (((diffuse_3 * irradiance) + (blurred * f_amb)) * _e284); } } } else { let _e289 = Probe.counts.x; if (_e289 > 0u) { let _e297 = O.extra.z; let _e298 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e297); let _e301 = Lit.ambient; let spec_3 = ((_e301.xyz * (1f - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if (_e25.w <= 0f) { let _e317 = O.extra.z; let _e318 = probe_ambient(world_13, n_10, _e317); let _e321 = Lit.ambient; dif_2 = ((_e321.xyz * (1f - _e318.w)) + _e318.xyz); } let _e329 = dif_2; ambient = ((diffuse_3 * _e329) + (spec_3 * f_amb)); } else { if (_e25.w > 0f) { let _e340 = Lit.ambient; ambient = ((diffuse_3 * _e25.xyz) + (_e340.xyz * f_amb)); } else { let _e346 = Lit.ambient; ambient = (_e346.xyz * (diffuse_3 + f_amb)); } } } } let _e350 = ambient; return _e350; } fn hedra_fog(c_in_1: vec3, v_6: vec3) -> vec3 { var c_20: vec3; c_20 = c_in_1; if HEDRA_FOG_DISABLED { let _e4 = c_20; return _e4; } let _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { let _e13 = c_20; let _e15 = hedra_world; let _e17 = surface_fog(_e13, _e15, -(v_6)); c_20 = _e17; } let _e21 = O.decals.w; if (_e21 != 0u) { let _e24 = c_20; let _e26 = hedra_world; let _e30 = O.decals.w; let _e31 = fog_volumes(_e24, _e26, _e30); c_20 = _e31; } let _e32 = c_20; return _e32; } fn hedra_lit(clip: vec4) -> vec3 { var surf_1: DecalSurface; var c_21: vec3 = vec3(0f); var k_11: u32 = 0u; var local_28: bool; var radiance_3: vec3; var local_29: bool; var local_30: bool; var ambient_1: vec3 = vec3(0f); var local_31: bool; let n_geo_3 = hedra_n_geo; let _e4 = ALBEDO; let _e6 = METALLIC; let _e11 = ROUGHNESS; let _e16 = AO; let _e18 = hedra_n; let _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0f, 1f), clamp(_e11, 0.045f, 1f), _e16, _e18, _e20); let _e26 = O.decals.z; if (_e26 > 0u) { let _e30 = hedra_world; let _e31 = surf_1; let _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; let _e35 = surf_1.base; ALBEDO = _e35; let _e38 = surf_1.metallic; METALLIC = _e38; let _e41 = surf_1.roughness; ROUGHNESS = _e41; let _e45 = G.view; let _e46 = hedra_mat3_(_e45); let _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } let metallic_1 = surf_1.metallic; let roughness_4 = surf_1.roughness; let a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); let base = surf_1.base; let diffuse_4 = (base * (1f - metallic_1)); let _e64 = SPECULAR; let _e68 = SPECULAR; let f0_4 = mix(vec3(((0.16f * _e64) * _e68)), base, metallic_1); let n_14 = surf_1.normal; let _e75 = hedra_world; let _e76 = hedra_view_dir(_e75); let _e79 = G.view; let _e80 = hedra_mat3_(_e79); let _e82 = surf_1.occlusion; let _e84 = AO_LIGHT_AFFECT; let ao_direct = mix(1f, _e82, _e84); DIFFUSE_LIGHT = vec3(0f); SPECULAR_LIGHT = vec3(0f); let _e96 = object_light_count(); loop { let _e99 = k_11; if (_e99 < _e96) { } else { break; } { let _e101 = k_11; let _e102 = object_light(_e101); let li_2 = Lit.lights[_e102]; let _e108 = hedra_world; let _e109 = hedra_light_dir(_e102, _e108); let l_8 = _e109.xyz; let atten_2 = _e109.w; if HEDRA_HAS_LIGHT { if !((li_2.info.x == LIGHT_DIRECTIONAL)) { local_28 = (atten_2 > 0f); } else { local_28 = true; } let _e123 = local_28; if _e123 { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; let _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } let _e142 = RIM; if (_e142 > 0f) { let rim_light = pow(max(0.0001f, (1f - max(dot(n_14, _e76), 0.0001f))), max(0f, ((1f - roughness_4) * 16f))); let _e159 = c_21; let _e164 = RIM; let _e170 = RIM_TINT; c_21 = (_e159 + (((diffuse_4 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1f), base, _e170))); } if (atten_2 > 0f) { radiance_3 = (li_2.color.xyz * atten_2); if (li_2.info.y == LIGHT_SHADOWED) { local_29 = false; } else { local_29 = false; } let _e188 = local_29; if _e188 { let _e192 = hedra_world; let _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if true { local_30 = false; } else { local_30 = false; } let _e201 = local_30; if _e201 { let _e202 = c_21; let _e203 = radiance_3; let _e206 = light_specular(n_14, _e76, l_8, _e203, diffuse_4, f0_4, a2_4, li_2.spot.z); c_21 = (_e202 + _e206); } else { let _e208 = c_21; let _e209 = radiance_3; let _e212 = hedra_light_modes(n_14, _e76, l_8, _e209, diffuse_4, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = (_e208 + _e212); } let _e215 = BACKLIGHT; if any((_e215 > vec3(0f))) { let nl_4 = max(min(dot(n_14, l_8), 1f), 0f); let _e225 = c_21; let _e226 = radiance_3; let _e229 = BACKLIGHT; c_21 = (_e225 + (((diffuse_4 * _e226) * _e229) * (0.31830987f - (nl_4 * 0.31830987f)))); } } } continuing { let _e238 = k_11; k_11 = (_e238 + 1u); } } if HEDRA_HAS_LIGHT { let _e242 = DIFFUSE_LIGHT; let _e249 = SPECULAR_LIGHT; c_21 = ((((_e242 * base) * ao_direct) * (1f - metallic_1)) + (_e249 * ao_direct)); } else { let _e253 = AO_LIGHT_AFFECT; if (_e253 > 0f) { let _e256 = c_21; c_21 = (_e256 * ao_direct); } } if true { let _e262 = hedra_ambient(n_14, _e76, diffuse_4, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } let _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { let _e273 = hedra_transparent(); local_31 = !(_e273); } else { local_31 = false; } let _e276 = local_31; if _e276 { let _e282 = textureLoad(t_ao, vec2(floor(clip.xy)), 0i); let ssao = _e282.x; let _e284 = c_21; let _e286 = surf_1.occlusion; let _e291 = Lit.tone.z; let _e295 = Lit.tone.w; c_21 = (_e284 * mix(1f, min(ssao, _e286), (_e291 * _e295))); let _e300 = c_21; let _e301 = ambient_1; let _e303 = surf_1.occlusion; c_21 = (_e300 + (_e301 * min(_e303, ssao))); } else { let _e307 = c_21; let _e308 = ambient_1; let _e310 = surf_1.occlusion; c_21 = (_e307 + (_e308 * _e310)); } let _e313 = c_21; let _e315 = surf_1.emission; c_21 = (_e313 + _e315); let _e317 = c_21; let _e318 = hedra_fog(_e317, _e76); let _e319 = tonemap(_e318); return _e319; } fn hedra_output(c_22: vec3) -> vec4 { var rgb: vec3; rgb = c_22; if false { let _e3 = rgb; let _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } let _e7 = rgb; let _e9 = ALPHA; let _e10 = hedra_transparent(); let o_9 = vec4(_e7, select(1f, _e9, _e10)); let _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return vec4(max(o_9.xyz, vec3(0f)), clamp(o_9.w, 0f, 1f)); } let k_17 = clamp(o_9, vec4(0f), vec4(1f)); let _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { let _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } fn hedra_bindings() -> vec3 { let uv_9 = vec2(0.5f); let _e5 = textureSampleLevel(t_panorama, s_panorama, uv_9, 0f); let _e11 = textureSampleLevel(t_lightmap, s_lightmap, uv_9, 0i, 0f); let _e17 = textureSampleLevel(t_screen, s_radiance, uv_9, 0f); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } @vertex fn vs_custom(in: VsIn, @location(10) uv1_: vec2, @builtin(vertex_index) vid: u32) -> CustomOut { let _e5 = O.model; let _e8 = O.normal; let _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, vec4(1f), vid); vertex(); let _e24 = hedra_tangent_sign(in.tangent.w, false); let _e25 = hedra_vertex_space(); if _e25 { let _e26 = hedra_vertex_world(); let _e28 = NORMAL; let _e29 = hedra_vertex_dir(_e28); let _e31 = TANGENT; let _e32 = hedra_vertex_dir(_e31); let _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags); return _e34; } let _e37 = O.model; let _e39 = VERTEX; let world_14 = (_e37 * vec4(_e39, 1f)); let _e45 = O.normal; let _e47 = NORMAL; let n_15 = (_e45 * vec4(_e47, 0f)).xyz; let _e54 = O.model; let _e56 = TANGENT; let t_10 = (_e54 * vec4(_e56, 0f)).xyz; let _e62 = hedra_end_vertex(world_14, n_15, t_10, _e24, in.flags); return _e62; } @vertex fn vs_custom_instanced(in_1: VsIn, inst: InstIn, @location(10) uv1_1: vec2, extra: HedraInstExtra, @builtin(vertex_index) vid_1: u32) -> CustomOut { let bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); let by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); let bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); let det = dot(bx, cross(by, bz)); let flip_1 = (det < 0f); let cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * select(1f, -1f, flip_1)); let basis = mat4x4(vec4(bx, 0f), vec4(by, 0f), vec4(bz, 0f), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1f)); let _e55 = O.model; let _e59 = O.normal; let _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); let flags_4 = (in_1.flags | select(0u, F_INSTANCE_MIRRORED, flip_1)); let _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); let _e80 = hedra_vertex_space(); if _e80 { let _e81 = hedra_vertex_world(); let _e83 = NORMAL; let _e84 = hedra_vertex_dir(_e83); let _e86 = TANGENT; let _e87 = hedra_vertex_dir(_e86); let _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); return _e88; } let _e90 = VERTEX; let p1_ = vec4(_e90, 1f); let local_32 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); let _e102 = O.model; let world_15 = (_e102 * vec4(local_32, 1f)); let _e108 = O.normal; let _e110 = NORMAL; let n_16 = (_e108 * vec4((cofactor * _e110), 0f)).xyz; let _e118 = O.model; let _e121 = TANGENT; let t_11 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0f)).xyz; let _e127 = hedra_end_vertex(world_15, n_16, t_11, _e79, flags_4); return _e127; } @vertex fn vs_custom_skinned(in_2: VsIn, s: SkinIn, @location(10) uv1_2: vec2, @builtin(vertex_index) vid_2: u32) -> CustomOut { let _e4 = skin_rows(s); let p_12 = vec4(in_2.pos, 1f); let skinned = vec3(dot(_e4.r0_, p_12), dot(_e4.r1_, p_12), dot(_e4.r2_, p_12)); let bx_1 = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); let by_1 = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); let bz_1 = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); let det_1 = dot(bx_1, cross(by_1, bz_1)); let flip_2 = (det_1 < 0f); let cofactor_1 = mat3x3(cross(by_1, bz_1), cross(bz_1, bx_1), cross(bx_1, by_1)); let n0_ = normalize(((cofactor_1 * in_2.normal) * select(1f, -1f, flip_2))); let t0_1 = normalize((mat3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz)); let _e58 = O.model; let _e61 = O.normal; let _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1f), vid_2); vertex(); let flags_5 = (in_2.flags | select(0u, F_INSTANCE_MIRRORED, flip_2)); let _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2); let _e82 = hedra_vertex_space(); if _e82 { let _e83 = hedra_vertex_world(); let _e85 = NORMAL; let _e86 = hedra_vertex_dir(_e85); let _e88 = TANGENT; let _e89 = hedra_vertex_dir(_e88); let _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5); return _e90; } let _e93 = O.model; let _e95 = VERTEX; let world_16 = (_e93 * vec4(_e95, 1f)); let _e101 = O.normal; let _e103 = NORMAL; let n_17 = (_e101 * vec4(_e103, 0f)).xyz; let _e110 = O.model; let _e112 = TANGENT; let t_12 = (_e110 * vec4(_e112, 0f)).xyz; let _e117 = hedra_end_vertex(world_16, n_17, t_12, _e81, flags_5); return _e117; } @fragment fn fs_custom(in_3: CustomOut, @builtin(front_facing) facing: bool) -> @location(0) vec4 { var c: vec3; hedra_fragment(in_3, facing); let _e3 = hedra_culled(in_3.flags); if _e3 { discard; } let _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if (_e7 <= 0f) { discard; } if HEDRA_UNSHADED { let _e13 = ALBEDO; let _e15 = hedra_world; let _e16 = hedra_view_dir(_e15); let _e17 = hedra_fog(_e13, _e16); let _e18 = tonemap(_e17); c = _e18; } else { let _e20 = hedra_lit(in_3.clip); c = _e20; } let _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { let _e27 = c; let _e28 = hedra_bindings(); c = (_e27 + _e28); } let _e33 = G.params.x; if (_e33 == SHADE_LIT) { let _e36 = c; let _e37 = item_fade(_e36); let _e38 = emerge_tint(_e37, _e7); c = _e38; } let _e39 = c; let _e40 = hedra_output(_e39); return _e40; } @fragment fn fs_custom_depth(in_4: CustomOut, @builtin(front_facing) facing_1: bool) { var local: bool; var local_1: bool; hedra_fragment(in_4, facing_1); if !(((in_4.flags & F_HIDDEN) != 0u)) { if HEDRA_ALPHA_SCISSOR { let _e14 = ALPHA; let _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } let _e19 = local_1; local = _e19; } else { local = true; } let _e21 = local; if _e21 { discard; } let _e25 = emerge_reveal(in_4.world, vec2(-1f)); if (_e25 <= 0f) { discard; } else { return; } } @fragment fn fs_custom_id(in_5: CustomOut, @builtin(front_facing) facing_2: bool) -> IdOut { var local_2: bool; var out: IdOut; hedra_fragment(in_5, facing_2); let _e3 = hedra_culled(in_5.flags); if !(_e3) { let _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0f); } else { local_2 = true; } let _e14 = local_2; if _e14 { discard; } let id = O.params.z; let _e24 = O.params.x; let _e33 = O.params.y; let bits = (select(0u, 1u, (_e24 == 1u)) | select(0u, 2u, (_e33 == 1u))); out.id = (vec4(f32((id & 255u)), f32(((id >> 8u) & 255u)), f32(((id >> 16u) & 255u)), f32(bits)) / vec4(255f)); let _e58 = out; return _e58; } @fragment fn fs_custom_normal_depth(in_6: CustomOut, @builtin(front_facing) facing_3: bool) -> HedraNormalDepthOut { var local_3: bool; var out_1: HedraNormalDepthOut; hedra_fragment(in_6, facing_3); let _e3 = hedra_culled(in_6.flags); if !(_e3) { let _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0f); } else { local_3 = true; } let _e14 = local_3; if _e14 { discard; } let _e17 = G.view; let _e18 = hedra_mat3_(_e17); let _e20 = hedra_n; let n_view = normalize((_e18 * _e20)); let _e24 = METALLIC; let metallic_2 = clamp(_e24, 0f, 1f); let _e29 = SPECULAR; let _e33 = SPECULAR; let _e37 = ALBEDO; let f0_5 = mix(vec3(((0.16f * _e29) * _e33)), _e37, metallic_2); let _e43 = G.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1f)).z)); let _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_5, vec3(0f), vec3(1f)), clamp(_e58, 0.045f, 1f)); let _e63 = out_1; return _e63; }  @Ð Ð/ ,@  ˜J£&ѰA¬ËÎ-”ÒÑ'ÁØõ|xÖ_7hh'· vs_custommainr�#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; vec2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0_; float hedra_pad1_; vec3 sun_direction; float hedra_pad2_; vec3 sun_color; float hedra_pad3_; vec3 sky_ambient; float hedra_pad4_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_2Vertex { HedraParams _group_2_binding_0_vs; }; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } vec4 snap_view(vec4 view_pos) { float _e4 = _group_2_binding_0_vs.snap_resolution.x; if ((_e4 <= 0.0)) { return view_pos; } mat4x4 _e9 = _group_0_binding_0_vs.proj; vec4 clip_1 = (_e9 * view_pos); if ((clip_1.w <= 0.0001)) { return view_pos; } vec2 _e16 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e16 * 0.5); vec2 ndc = (clip_1.xy / vec2(clip_1.w)); vec2 snapped = (roundEven((ndc * half_res)) / half_res); mat4x4 _e27 = INV_PROJECTION_MATRIX; vec4 back = (_e27 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); return vec4((back.xyz / vec3(back.w)), 1.0); } void vertex() { float diffuse_1 = 0.0; mat3x3 _e1 = MODEL_NORMAL_MATRIX; vec3 _e3 = NORMAL; vec3 n_11 = normalize((_e1 * _e3)); vec3 _e8 = _group_2_binding_0_vs.sun_direction; vec3 _e9 = scene_to_frame(_e8); vec3 sun = normalize(_e9); diffuse_1 = max(dot(n_11, sun), 0.0); float _e17 = _group_2_binding_0_vs.light_bands; if ((_e17 >= 2.0)) { float _e20 = diffuse_1; float _e23 = _group_2_binding_0_vs.light_bands; float _e30 = _group_2_binding_0_vs.light_bands; diffuse_1 = (floor(((_e20 * _e23) + 0.5)) / _e30); } vec3 _e34 = _group_2_binding_0_vs.ground_ambient; vec3 _e37 = _group_2_binding_0_vs.sky_ambient; vec3 ambient_2 = mix(_e34, _e37, ((n_11.z * 0.5) + 0.5)); vec3 _e47 = _group_2_binding_0_vs.sun_color; float _e48 = diffuse_1; vec4 _e52 = COLOR; float _e57 = _group_2_binding_0_vs.overbright; vec3 _e61 = _group_2_binding_0_vs.emission; gouraud = ((((ambient_2 + (_e47 * _e48)) * _e52.xyz) * _e57) + _e61); mat4x4 _e64 = MODELVIEW_MATRIX; vec3 _e66 = VERTEX; vec4 _e70 = snap_view((_e64 * vec4(_e66, 1.0))); VERTEX = _e70.xyz; mat3x3 _e75 = MODELVIEW_NORMAL_MATRIX; vec3 _e77 = NORMAL; NORMAL = normalize((_e75 * _e77)); vec2 _e81 = UV; vec2 _e84 = _group_2_binding_0_vs.uv_scale; vec2 _e88 = _group_2_binding_0_vs.uv_offset; vec2 _e92 = _group_2_binding_0_vs.uv_scroll; float _e96 = _group_0_binding_0_vs.fparams.w; vec2 uv_3 = (((_e81 * _e84) + _e88) + (_e92 * _e96)); UV = uv_3; mat4x4 _e102 = _group_0_binding_0_vs.proj; float w_3 = (_e102 * _e70).w; float _e107 = _group_2_binding_0_vs.affine_strength; float _e112 = _group_2_binding_0_vs.affine_near; float weight = (_e107 * clamp(((w_3 - 0.25) / max(_e112, 0.001)), 0.0, 1.0)); affine_uv = vec4((uv_3 * w_3), w_3, weight); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_22 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_22 = false; } else { local_22 = false; } bool _e31 = local_22; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); vec2 uv1_ = _p2vs_location10; uint vid = uint(gl_VertexID); mat4x4 _e5 = _group_1_binding_0_vs.model; mat4x4 _e8 = _group_1_binding_0_vs.normal; mat3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(in_.pos, in_.normal, in_.tangent, in_.uv, uv1_, vec4(1.0), vid); vertex(); float _e24 = hedra_tangent_sign(in_.tangent.w, false); bool _e25 = hedra_vertex_space(); if (_e25) { vec4 _e26 = hedra_vertex_world(); vec3 _e28 = NORMAL; vec3 _e29 = hedra_vertex_dir(_e28); vec3 _e31 = TANGENT; vec3 _e32 = hedra_vertex_dir(_e31); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in_.flags); gl_Position = _e34.clip; _vs2fs_location0 = _e34.world; _vs2fs_location1 = _e34.normal; _vs2fs_location2 = _e34.uv; _vs2fs_location3 = _e34.flags; _vs2fs_location4 = _e34.tangent; _vs2fs_location5 = _e34.color; _vs2fs_location6 = _e34.uv2_; _vs2fs_location7 = _e34.instance_id; _vs2fs_location8 = _e34.hedra_v0_; _vs2fs_location9 = _e34.hedra_v1_; _vs2fs_location10 = _e34.hedra_v2_; _vs2fs_location11 = _e34.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e37 = _group_1_binding_0_vs.model; vec3 _e39 = VERTEX; vec4 world_13 = (_e37 * vec4(_e39, 1.0)); mat4x4 _e45 = _group_1_binding_0_vs.normal; vec3 _e47 = NORMAL; vec3 n_12 = (_e45 * vec4(_e47, 0.0)).xyz; mat4x4 _e54 = _group_1_binding_0_vs.model; vec3 _e56 = TANGENT; vec3 t_5 = (_e54 * vec4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_13, n_12, t_5, _e24, in_.flags); gl_Position = _e62.clip; _vs2fs_location0 = _e62.world; _vs2fs_location1 = _e62.normal; _vs2fs_location2 = _e62.uv; _vs2fs_location3 = _e62.flags; _vs2fs_location4 = _e62.tangent; _vs2fs_location5 = _e62.color; _vs2fs_location6 = _e62.uv2_; _vs2fs_location7 = _e62.instance_id; _vs2fs_location8 = _e62.hedra_v0_; _vs2fs_location9 = _e62.hedra_v1_; _vs2fs_location10 = _e62.hedra_v2_; _vs2fs_location11 = _e62.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_instancedmainT’#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; vec2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0_; float hedra_pad1_; vec3 sun_direction; float hedra_pad2_; vec3 sun_color; float hedra_pad3_; vec3 sky_ambient; float hedra_pad4_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_2Vertex { HedraParams _group_2_binding_0_vs; }; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec2 _p2vs_location10; layout(location = 14) in vec4 _p2vs_location14; layout(location = 15) in float _p2vs_location15; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } vec4 snap_view(vec4 view_pos) { float _e4 = _group_2_binding_0_vs.snap_resolution.x; if ((_e4 <= 0.0)) { return view_pos; } mat4x4 _e9 = _group_0_binding_0_vs.proj; vec4 clip_1 = (_e9 * view_pos); if ((clip_1.w <= 0.0001)) { return view_pos; } vec2 _e16 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e16 * 0.5); vec2 ndc = (clip_1.xy / vec2(clip_1.w)); vec2 snapped = (roundEven((ndc * half_res)) / half_res); mat4x4 _e27 = INV_PROJECTION_MATRIX; vec4 back = (_e27 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); return vec4((back.xyz / vec3(back.w)), 1.0); } void vertex() { float diffuse_1 = 0.0; mat3x3 _e1 = MODEL_NORMAL_MATRIX; vec3 _e3 = NORMAL; vec3 n_11 = normalize((_e1 * _e3)); vec3 _e8 = _group_2_binding_0_vs.sun_direction; vec3 _e9 = scene_to_frame(_e8); vec3 sun = normalize(_e9); diffuse_1 = max(dot(n_11, sun), 0.0); float _e17 = _group_2_binding_0_vs.light_bands; if ((_e17 >= 2.0)) { float _e20 = diffuse_1; float _e23 = _group_2_binding_0_vs.light_bands; float _e30 = _group_2_binding_0_vs.light_bands; diffuse_1 = (floor(((_e20 * _e23) + 0.5)) / _e30); } vec3 _e34 = _group_2_binding_0_vs.ground_ambient; vec3 _e37 = _group_2_binding_0_vs.sky_ambient; vec3 ambient_2 = mix(_e34, _e37, ((n_11.z * 0.5) + 0.5)); vec3 _e47 = _group_2_binding_0_vs.sun_color; float _e48 = diffuse_1; vec4 _e52 = COLOR; float _e57 = _group_2_binding_0_vs.overbright; vec3 _e61 = _group_2_binding_0_vs.emission; gouraud = ((((ambient_2 + (_e47 * _e48)) * _e52.xyz) * _e57) + _e61); mat4x4 _e64 = MODELVIEW_MATRIX; vec3 _e66 = VERTEX; vec4 _e70 = snap_view((_e64 * vec4(_e66, 1.0))); VERTEX = _e70.xyz; mat3x3 _e75 = MODELVIEW_NORMAL_MATRIX; vec3 _e77 = NORMAL; NORMAL = normalize((_e75 * _e77)); vec2 _e81 = UV; vec2 _e84 = _group_2_binding_0_vs.uv_scale; vec2 _e88 = _group_2_binding_0_vs.uv_offset; vec2 _e92 = _group_2_binding_0_vs.uv_scroll; float _e96 = _group_0_binding_0_vs.fparams.w; vec2 uv_3 = (((_e81 * _e84) + _e88) + (_e92 * _e96)); UV = uv_3; mat4x4 _e102 = _group_0_binding_0_vs.proj; float w_3 = (_e102 * _e70).w; float _e107 = _group_2_binding_0_vs.affine_strength; float _e112 = _group_2_binding_0_vs.affine_near; float weight = (_e107 * clamp(((w_3 - 0.25) / max(_e112, 0.001)), 0.0, 1.0)); affine_uv = vec4((uv_3 * w_3), w_3, weight); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_22 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_22 = false; } else { local_22 = false; } bool _e31 = local_22; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_1 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); InstIn inst = InstIn(_p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9); vec2 uv1_1 = _p2vs_location10; HedraInstExtra extra = HedraInstExtra(_p2vs_location14, _p2vs_location15); uint vid_1 = uint(gl_VertexID); vec3 bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); vec3 by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); vec3 bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * (flip_1 ? -1.0 : 1.0)); mat4x4 basis = mat4x4(vec4(bx, 0.0), vec4(by, 0.0), vec4(bz, 0.0), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); mat4x4 _e55 = _group_1_binding_0_vs.model; mat4x4 _e59 = _group_1_binding_0_vs.normal; mat3x3 _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = int(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); uint flags_4 = (in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); bool _e80 = hedra_vertex_space(); if (_e80) { vec4 _e81 = hedra_vertex_world(); vec3 _e83 = NORMAL; vec3 _e84 = hedra_vertex_dir(_e83); vec3 _e86 = TANGENT; vec3 _e87 = hedra_vertex_dir(_e86); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); gl_Position = _e88.clip; _vs2fs_location0 = _e88.world; _vs2fs_location1 = _e88.normal; _vs2fs_location2 = _e88.uv; _vs2fs_location3 = _e88.flags; _vs2fs_location4 = _e88.tangent; _vs2fs_location5 = _e88.color; _vs2fs_location6 = _e88.uv2_; _vs2fs_location7 = _e88.instance_id; _vs2fs_location8 = _e88.hedra_v0_; _vs2fs_location9 = _e88.hedra_v1_; _vs2fs_location10 = _e88.hedra_v2_; _vs2fs_location11 = _e88.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vec3 _e90 = VERTEX; vec4 p1_ = vec4(_e90, 1.0); vec3 local_32 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); mat4x4 _e102 = _group_1_binding_0_vs.model; vec4 world_13 = (_e102 * vec4(local_32, 1.0)); mat4x4 _e108 = _group_1_binding_0_vs.normal; vec3 _e110 = NORMAL; vec3 n_12 = (_e108 * vec4((cofactor * _e110), 0.0)).xyz; mat4x4 _e118 = _group_1_binding_0_vs.model; vec3 _e121 = TANGENT; vec3 t_5 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_13, n_12, t_5, _e79, flags_4); gl_Position = _e127.clip; _vs2fs_location0 = _e127.world; _vs2fs_location1 = _e127.normal; _vs2fs_location2 = _e127.uv; _vs2fs_location3 = _e127.flags; _vs2fs_location4 = _e127.tangent; _vs2fs_location5 = _e127.color; _vs2fs_location6 = _e127.uv2_; _vs2fs_location7 = _e127.instance_id; _vs2fs_location8 = _e127.hedra_v0_; _vs2fs_location9 = _e127.hedra_v1_; _vs2fs_location10 = _e127.hedra_v2_; _vs2fs_location11 = _e127.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_skinnedmain•#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; vec2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0_; float hedra_pad1_; vec3 sun_direction; float hedra_pad2_; vec3 sun_color; float hedra_pad3_; vec3 sky_ambient; float hedra_pad4_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(std140) uniform SkinU_block_2Vertex { SkinU _group_1_binding_1_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_3Vertex { HedraParams _group_2_binding_0_vs; }; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 12) in uvec4 _p2vs_location12; layout(location = 13) in vec4 _p2vs_location13; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } vec4 skin_row(uint k_10, uint r_3) { vec4 _e10 = _group_1_binding_1_vs.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } SkinRows skin_rows(SkinIn s_1) { SkinRows m_1 = SkinRows(vec4(0.0), vec4(0.0), vec4(0.0)); uvec4 j = s_1.joints; vec4 w_3 = s_1.weights; vec4 _e8 = skin_row(j.x, 0u); vec4 _e13 = skin_row(j.y, 0u); vec4 _e19 = skin_row(j.z, 0u); vec4 _e25 = skin_row(j.w, 0u); m_1.r0_ = ((((w_3.x * _e8) + (w_3.y * _e13)) + (w_3.z * _e19)) + (w_3.w * _e25)); vec4 _e32 = skin_row(j.x, 1u); vec4 _e37 = skin_row(j.y, 1u); vec4 _e43 = skin_row(j.z, 1u); vec4 _e49 = skin_row(j.w, 1u); m_1.r1_ = ((((w_3.x * _e32) + (w_3.y * _e37)) + (w_3.z * _e43)) + (w_3.w * _e49)); vec4 _e56 = skin_row(j.x, 2u); vec4 _e61 = skin_row(j.y, 2u); vec4 _e67 = skin_row(j.z, 2u); vec4 _e73 = skin_row(j.w, 2u); m_1.r2_ = ((((w_3.x * _e56) + (w_3.y * _e61)) + (w_3.z * _e67)) + (w_3.w * _e73)); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } vec4 snap_view(vec4 view_pos) { float _e4 = _group_2_binding_0_vs.snap_resolution.x; if ((_e4 <= 0.0)) { return view_pos; } mat4x4 _e9 = _group_0_binding_0_vs.proj; vec4 clip_1 = (_e9 * view_pos); if ((clip_1.w <= 0.0001)) { return view_pos; } vec2 _e16 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e16 * 0.5); vec2 ndc = (clip_1.xy / vec2(clip_1.w)); vec2 snapped = (roundEven((ndc * half_res)) / half_res); mat4x4 _e27 = INV_PROJECTION_MATRIX; vec4 back = (_e27 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); return vec4((back.xyz / vec3(back.w)), 1.0); } void vertex() { float diffuse_1 = 0.0; mat3x3 _e1 = MODEL_NORMAL_MATRIX; vec3 _e3 = NORMAL; vec3 n_11 = normalize((_e1 * _e3)); vec3 _e8 = _group_2_binding_0_vs.sun_direction; vec3 _e9 = scene_to_frame(_e8); vec3 sun = normalize(_e9); diffuse_1 = max(dot(n_11, sun), 0.0); float _e17 = _group_2_binding_0_vs.light_bands; if ((_e17 >= 2.0)) { float _e20 = diffuse_1; float _e23 = _group_2_binding_0_vs.light_bands; float _e30 = _group_2_binding_0_vs.light_bands; diffuse_1 = (floor(((_e20 * _e23) + 0.5)) / _e30); } vec3 _e34 = _group_2_binding_0_vs.ground_ambient; vec3 _e37 = _group_2_binding_0_vs.sky_ambient; vec3 ambient_2 = mix(_e34, _e37, ((n_11.z * 0.5) + 0.5)); vec3 _e47 = _group_2_binding_0_vs.sun_color; float _e48 = diffuse_1; vec4 _e52 = COLOR; float _e57 = _group_2_binding_0_vs.overbright; vec3 _e61 = _group_2_binding_0_vs.emission; gouraud = ((((ambient_2 + (_e47 * _e48)) * _e52.xyz) * _e57) + _e61); mat4x4 _e64 = MODELVIEW_MATRIX; vec3 _e66 = VERTEX; vec4 _e70 = snap_view((_e64 * vec4(_e66, 1.0))); VERTEX = _e70.xyz; mat3x3 _e75 = MODELVIEW_NORMAL_MATRIX; vec3 _e77 = NORMAL; NORMAL = normalize((_e75 * _e77)); vec2 _e81 = UV; vec2 _e84 = _group_2_binding_0_vs.uv_scale; vec2 _e88 = _group_2_binding_0_vs.uv_offset; vec2 _e92 = _group_2_binding_0_vs.uv_scroll; float _e96 = _group_0_binding_0_vs.fparams.w; vec2 uv_3 = (((_e81 * _e84) + _e88) + (_e92 * _e96)); UV = uv_3; mat4x4 _e102 = _group_0_binding_0_vs.proj; float w_4 = (_e102 * _e70).w; float _e107 = _group_2_binding_0_vs.affine_strength; float _e112 = _group_2_binding_0_vs.affine_near; float weight = (_e107 * clamp(((w_4 - 0.25) / max(_e112, 0.001)), 0.0, 1.0)); affine_uv = vec4((uv_3 * w_4), w_4, weight); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_22 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_22 = false; } else { local_22 = false; } bool _e31 = local_22; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_2 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); SkinIn s = SkinIn(_p2vs_location12, _p2vs_location13); vec2 uv1_2 = _p2vs_location10; uint vid_2 = uint(gl_VertexID); SkinRows _e4 = skin_rows(s); vec4 p_8 = vec4(in_2.pos, 1.0); vec3 skinned = vec3(dot(_e4.r0_, p_8), dot(_e4.r1_, p_8), dot(_e4.r2_, p_8)); vec3 bx = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); vec3 by = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); vec3 bz = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n0_ = normalize(((cofactor * in_2.normal) * (flip_1 ? -1.0 : 1.0))); vec3 t0_1 = normalize((mat3x3(bx, by, bz) * in_2.tangent.xyz)); mat4x4 _e58 = _group_1_binding_0_vs.model; mat4x4 _e61 = _group_1_binding_0_vs.normal; mat3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1.0), vid_2); vertex(); uint flags_4 = (in_2.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_1); bool _e82 = hedra_vertex_space(); if (_e82) { vec4 _e83 = hedra_vertex_world(); vec3 _e85 = NORMAL; vec3 _e86 = hedra_vertex_dir(_e85); vec3 _e88 = TANGENT; vec3 _e89 = hedra_vertex_dir(_e88); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_4); gl_Position = _e90.clip; _vs2fs_location0 = _e90.world; _vs2fs_location1 = _e90.normal; _vs2fs_location2 = _e90.uv; _vs2fs_location3 = _e90.flags; _vs2fs_location4 = _e90.tangent; _vs2fs_location5 = _e90.color; _vs2fs_location6 = _e90.uv2_; _vs2fs_location7 = _e90.instance_id; _vs2fs_location8 = _e90.hedra_v0_; _vs2fs_location9 = _e90.hedra_v1_; _vs2fs_location10 = _e90.hedra_v2_; _vs2fs_location11 = _e90.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e93 = _group_1_binding_0_vs.model; vec3 _e95 = VERTEX; vec4 world_13 = (_e93 * vec4(_e95, 1.0)); mat4x4 _e101 = _group_1_binding_0_vs.normal; vec3 _e103 = NORMAL; vec3 n_12 = (_e101 * vec4(_e103, 0.0)).xyz; mat4x4 _e110 = _group_1_binding_0_vs.model; vec3 _e112 = TANGENT; vec3 t_5 = (_e110 * vec4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_13, n_12, t_5, _e81, flags_4); gl_Position = _e117.clip; _vs2fs_location0 = _e117.world; _vs2fs_location1 = _e117.normal; _vs2fs_location2 = _e117.uv; _vs2fs_location3 = _e117.flags; _vs2fs_location4 = _e117.tangent; _vs2fs_location5 = _e117.color; _vs2fs_location6 = _e117.uv2_; _vs2fs_location7 = _e117.instance_id; _vs2fs_location8 = _e117.hedra_v0_; _vs2fs_location9 = _e117.hedra_v1_; _vs2fs_location10 = _e117.hedra_v2_; _vs2fs_location11 = _e117.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_custommain�{#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; vec2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0_; float hedra_pad1_; vec3 sun_direction; float hedra_pad2_; vec3 sun_color; float hedra_pad3_; vec3 sky_ambient; float hedra_pad4_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform LitU_block_2Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform ShadowU_block_3Fragment { ShadowU _group_0_binding_2_fs; }; uniform highp sampler2DShadow _group_0_binding_3_fs; layout(std140) uniform SkyU_block_4Fragment { SkyU _group_0_binding_5_fs; }; uniform highp samplerCube _group_3_binding_0_fs; uniform highp sampler2D _group_3_binding_1_fs; uniform highp sampler2D _group_0_binding_6_fs; uniform highp sampler2DArray _group_3_binding_4_fs; layout(std140) uniform ProbeU_block_5Fragment { ProbeU _group_0_binding_7_fs; }; uniform highp sampler2D _group_3_binding_6_fs; layout(std140) uniform DecalU_block_6Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; layout(std140) uniform FogU_block_7Fragment { FogU _group_1_binding_5_fs; }; uniform highp sampler2D _group_1_binding_6_fs; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); float SPECULAR_AMOUNT = 0.0; vec3 LIGHT = vec3(0.0); vec3 LIGHT_COLOR = vec3(0.0); bool LIGHT_IS_DIRECTIONAL = false; float ATTENUATION = 0.0; vec3 DIFFUSE_LIGHT = vec3(0.0); vec3 SPECULAR_LIGHT = vec3(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_8Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word_1 = ((k_1 < 4u) ? _e8 : _e4); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_2 = ((k_2 < 4u) ? _e8 : _e4); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local_6 = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_2 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_2.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local_6 = all(lessThanEqual(uvw, vec3(1.0))); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y)); if ((e_2.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1.0, ((dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1); uint live_1 = e_2.flags.x; if ((e_2.layers.x > 0u)) { vec4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_2.modulate); float _e90 = fade; float alpha = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if ((e_2.layers.y > 0u)) { vec4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if ((e_2.layers.z > 0u)) { vec4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if ((e_2.layers.w > 0u)) { vec4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_3 <= 1.5707964)) { float c_23 = (1.0 - (a_3 / 1.5707964)); float k_13 = clamp((1.0 - pow(max((1.0 - c_23), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } float c_24 = ((a_3 - 1.5707964) / 1.5707964); float k_14 = clamp((1.0 - pow(max((1.0 - c_24), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_25 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_25) + c_25) / ((c_25 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_25); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_25, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_25); return _e36; } return c_25; } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_3 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_3 * 1.8) - _e60) / EMERGE_EDGE); } vec3 emerge_tint(vec3 c_6, float r) { bool local_7 = false; uint _e6 = _group_1_binding_0_fs.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = (r >= 1.0); } else { local_7 = true; } bool _e17 = local_7; if ((SPEC_EMERGE ? _e17 : true)) { return c_6; } uint _e23 = _group_1_binding_0_fs.extra.w; vec3 _e26 = srgb_to_linear((vec4(_e23 & 0xFFu, _e23 >> 8 & 0xFFu, _e23 >> 16 & 0xFFu, _e23 >> 24) / 255.0).xyz); vec3 _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0.0, 1.0, r)); } vec3 item_fade(vec3 c_7) { uint _e5 = _group_1_binding_0_fs.extra.x; if ((SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true)) { return c_7; } vec4 f_1 = _group_1_binding_0_fs.normal[3]; vec3 _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec3 procedural_sky(vec3 d_1) { vec3 sky_1 = vec3(0.0); uint i = 0u; float v_7 = acos(clamp(d_1.y, -1.0, 1.0)); vec4 _e8 = _group_0_binding_5_fs.sky_horizon; vec4 _e12 = _group_0_binding_5_fs.sky_top; float _e21 = _group_0_binding_5_fs.sky_top.w; float _e22 = sky_curve((1.0 - (v_7 / 1.5707964)), _e21); float _e27 = _group_0_binding_5_fs.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); uint _e33 = _group_0_binding_5_fs.flags.z; uint suns = min(_e33, SKY_SUNS); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e79 = i; i = (_e79 + 1u); } loop_init_1 = false; uint _e38 = i; if ((_e38 < suns)) { } else { break; } { uint _e42 = i; SunU sun = _group_0_binding_5_fs.suns[_e42]; float size = sun.direction.w; float a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1.0, 1.0)); if ((a_5 < size)) { sky_1 = sun.color.xyz; } else { float _e60 = _group_0_binding_5_fs.sun.x; if ((a_5 < _e60)) { float _e66 = _group_0_binding_5_fs.sun.x; float c2_ = ((a_5 - size) / (_e66 - size)); vec3 _e71 = sky_1; float _e75 = _group_0_binding_5_fs.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } } vec4 _e83 = _group_0_binding_5_fs.ground_horizon; vec4 _e87 = _group_0_binding_5_fs.ground_bottom; float _e96 = _group_0_binding_5_fs.ground_bottom.w; float _e97 = sky_curve(((v_7 - 1.5707964) / 1.5707964), _e96); float _e102 = _group_0_binding_5_fs.ground_horizon.w; vec3 ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); vec3 _e104 = sky_1; float _e112 = _group_0_binding_5_fs.sun.z; return (((d_1.y >= 0.0) ? _e104 : ground) * _e112); } vec3 sh_irradiance(vec3 n_2) { vec3 c_9 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_9 = (_e4.xyz * 0.282095); vec3 _e9 = c_9; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603 * n_2.y))); vec3 _e20 = c_9; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603 * n_2.z))); vec3 _e31 = c_9; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603 * n_2.x))); vec3 _e42 = c_9; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y))); vec3 _e55 = c_9; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z))); vec3 _e68 = c_9; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0)))); vec3 _e85 = c_9; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z))); vec3 _e98 = c_9; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); vec3 _e115 = c_9; return max(_e115, vec3(0.0)); } vec3 radiance_1(vec3 d_3, float roughness) { uint _e5 = _group_0_binding_5_fs.flags.y; float top_1 = float((max(_e5, 1u) - 1u)); vec4 _e14 = textureLod(_group_3_binding_0_fs, vec3(d_3), (roughness * top_1)); return _e14.xyz; } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_10 = vec3(0.0); uint k_4 = 0u; c_10 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_2 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_10; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_10; return _e53; } vec3 sky_fog(vec3 c_11, vec3 dir_2) { vec4 _e4 = _group_0_binding_5_fs.fog_color; float _e9 = _group_0_binding_5_fs.fog_depth.w; vec3 _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); float _e15 = _group_0_binding_5_fs.fog.y; return mix(c_11, _e11, _e15); } vec3 surface_fog(vec3 c_12, vec3 world_3, vec3 dir_3) { float dist = 0.0; float amount = 0.0; vec3 fc_1 = vec3(0.0); bool local_8 = false; mat4x4 _e5 = _group_0_binding_0_fs.view; float depth = -((_e5 * vec4(world_3, 1.0)).z); vec4 _e13 = _group_0_binding_0_fs.camera_pos; dist = distance(world_3, _e13.xyz); float _e20 = _group_0_binding_5_fs.fog_origin.w; if ((_e20 > 0.5)) { float _e26 = _group_0_binding_5_fs.fog_origin.x; dist = max((depth - _e26), 0.0); } uint _e34 = _group_0_binding_5_fs.flags.x; if (((_e34 & SKY_FOG_DEPTH) != 0u)) { float _e42 = _group_0_binding_5_fs.fog_depth.x; float _e46 = _group_0_binding_5_fs.fog_depth.y; float _e47 = dist; float z = smoothstep(_e42, _e46, _e47); float _e54 = _group_0_binding_5_fs.fog_depth.z; float _e63 = _group_0_binding_5_fs.fog.x; amount = (((z > 0.0) ? pow(max(z, 1e-6), _e54) : 0.0) * _e63); } else { float _e65 = dist; float _e70 = _group_0_binding_5_fs.fog.x; amount = (1.0 - exp(min(0.0, (-(_e65) * _e70)))); } float _e80 = _group_0_binding_5_fs.fog.w; if ((abs(_e80) >= 0.0001)) { vec4 _e86 = _group_0_binding_1_fs.up; float y = dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = _group_0_binding_5_fs.fog.z; float _e98 = _group_0_binding_5_fs.fog.w; amount = max(_e89, (1.0 - exp(min(0.0, ((y - _e93) * _e98))))); } float _e106 = amount; amount = clamp(_e106, 0.0, 1.0); vec4 _e112 = _group_0_binding_5_fs.fog_color; fc_1 = _e112.xyz; uint _e119 = _group_0_binding_5_fs.flags.x; if (((_e119 & SKY_IBL) != 0u)) { float _e129 = _group_0_binding_5_fs.fog_depth.w; local_8 = (_e129 > 0.0); } else { local_8 = false; } bool _e133 = local_8; if ((SPEC_AMBIENT_SKY ? _e133 : false)) { float _e139 = _group_0_binding_5_fs.fog_origin.y; float _e144 = _group_0_binding_5_fs.fog_origin.z; float _e148 = _group_0_binding_5_fs.fog_origin.y; float t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 1e-6)), 0.0, 1.0); uint _e159 = _group_0_binding_5_fs.flags.y; float top_2 = float((max(_e159, 2u) - 1u)); float rough = mix((1.0 / top_2), 1.0, (1.0 - t_3)); vec3 _e171 = fc_1; vec3 _e172 = sky_dir(dir_3); vec3 _e173 = radiance_1(_e172, rough); float _e177 = _group_0_binding_5_fs.sun.w; float _e182 = _group_0_binding_5_fs.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } vec3 _e184 = fc_1; vec3 _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; vec3 _e186 = fc_1; float _e187 = amount; return mix(c_12, _e186, _e187); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_4, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h_1 = (_e26.xyz * 0.5); vec3 dd = mix(d_4, vec3(1e-12), lessThan(abs(d_4), vec3(1e-12))); vec3 sa = ((-(h_1) - o) / dd); vec3 sb = ((h_1 - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1.0); } else { float rad = min(h_1.x, h_1.z); float k_15 = ((shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0); float w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_3, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_4 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1.0)); if ((e_4.material.z > 0.0)) { uint shape_1 = uint(e_4.albedo.w); vec3 h_2 = (e_4.size.xyz * 0.5); float rad_1 = min(h_2.x, h_2.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_2 * h_2))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_11 = normalize(vec2((1.0 / max(0.001, (rad_1 * 0.5))), (1.0 / max(0.001, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_4.size.w), 0.0, 1.0), e_4.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_4 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_4.y; if (((hf * b_1) == 0.0)) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_2 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_2 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_2); float x_3 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_3 < 0.01) ? (1.0 - (x_3 * (0.5 - (x_3 * (0.16666667 - (x_3 / 24.0)))))) : ((1.0 - exp(-(x_3))) / x_3)); float top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 fog_light(uint n_3, vec3 p_4, vec3 dir_4) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l_1 = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_3].lights; bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_3 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l_1; float rim = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim, li.spot.y))); } } vec3 _e108 = l_1; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_4, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_6, vec2 ch) { float split = 0.0; bool local_9 = false; bool local_10 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = false; bool local_12 = false; FogEntryU e_5 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_5.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_5.to_local * vec4(d_6, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_6, _e28.xyz); bool edge = (e_5.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_5.material.y > 0.0)) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = (-(a_6) / b_3); } bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e160 = i_1; i_1 = (_e160 + 1u); } loop_init_4 = false; uint _e70 = i_1; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i_1; uint j = (_e75 & 3u); if (!((j == 0u))) { local_11 = (j == 3u); } else { local_11 = true; } bool _e88 = local_11; float x_4 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_12 = (j == 3u); } else { local_12 = true; } bool _e100 = local_12; float w_4 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_4 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_4) : x_4))); vec3 p_8 = (o_1 + (d_6 * t_4)); float _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_4))); uint _e137 = i_1; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_14, vec3 o_2, vec3 d_7, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_2 = 0u; bool local_13 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_3 = 0u; uint n_4 = 0u; float avail = 0.0; uint i_4 = 0u; uint i_5 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e72 = i_2; i_2 = (_e72 + 1u); } loop_init_5 = false; uint _e13 = i_2; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_2; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_13 = (byte == 0u); } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_16].to_local; vec2 _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_7, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_16; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e90 = i_3; i_3 = (_e90 + 1u); } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at[_e82]; uint _e85 = i_3; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } } bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e221 = n_4; n_4 = (_e221 + 1u); } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_4; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_4 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e153 = i_4; i_4 = (_e153 + 1u); } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_4; float _e113 = chords[_e110].y; uint _e114 = n_4; float _e117 = chords[_e114].y; uint _e119 = i_4; float _e122 = chords[_e119].x; uint _e123 = n_4; float _e126 = chords[_e123].x; uint _e131 = i_4; float _e134 = chords[_e131].y; uint _e135 = i_4; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_4; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_4; float _e158 = parts[_e155].w; float _e160 = avail; float f_2 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_5 = 0u; bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e218 = i_5; i_5 = (_e218 + 1u); } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_5; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_5; float _e180 = chords[_e177].y; uint _e181 = n_4; float _e184 = chords[_e181].y; uint _e186 = i_5; float _e189 = chords[_e186].x; uint _e190 = n_4; float _e193 = chords[_e190].x; uint _e198 = i_5; float _e201 = chords[_e198].y; uint _e202 = i_5; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_5; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_2))); } } } } } } bool loop_init_10 = true; while(true) { if (!loop_init_10) { uint _e252 = i_6; i_6 = (_e252 + 1u); } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_6; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_6; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_5 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_14 * t_5) + (_e258 * ((1.0 - t_5) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_15, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_6 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_6)); vec3 _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_15); } vec3 sky_fog_volumes(vec3 c_16, vec3 near_point, vec3 dir_5) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back_1 = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (near_point - (back_1 * (_e26 * vec4(near_point, 1.0)).z)) : _e22.xyz); uint _e44 = _group_1_binding_5_fs.counts.y; vec3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); float _e49 = _group_1_binding_5_fs.params.z; return mix(c_16, _e45, _e49); } float shadow_factor(uint i_7, vec3 world_5, vec3 n_geo_1, vec3 l_2) { uint part = 0u; uint c_17 = 0u; bool local_14 = false; bool local_15 = false; bool local_16 = false; float vis = 0.0; int dy = -1; int dx = 0; uint kind = _group_0_binding_1_fs.lights[i_7].info.x; vec4 _e14 = _group_0_binding_1_fs.lights[i_7].position; vec3 light_pos = _e14.xyz; uint _e21 = _group_0_binding_1_fs.lights[i_7].info.w; uint slot = min(_e21, 15u); vec4 params = _group_0_binding_2_fs.lights[slot].params; uint first = _group_0_binding_2_fs.lights[slot].info.x; uint _e40 = _group_0_binding_2_fs.lights[slot].info.y; uint count = max(_e40, 1u); mat4x4 _e45 = _group_0_binding_0_fs.view; float view_depth = -((_e45 * vec4(world_5, 1.0)).z); if ((kind == LIGHT_DIRECTIONAL)) { float _e60 = _group_0_binding_2_fs.lights[slot].fade.y; if ((view_depth > _e60)) { return 1.0; } part = (count - 1u); bool loop_init_11 = true; while(true) { if (!loop_init_11) { uint _e79 = c_17; c_17 = (_e79 + 1u); } loop_init_11 = false; uint _e67 = c_17; if ((_e67 < count)) { } else { break; } { uint _e73 = c_17; float _e75 = _group_0_binding_2_fs.lights[slot].splits[_e73]; if ((view_depth <= _e75)) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; vec4 texel = _group_0_binding_2_fs.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; float t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); vec3 p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1.0)) * t_6))) + (l_2 * (params.x * t_6))); if ((kind == LIGHT_OMNI)) { vec3 d_13 = (p_9 - light_pos); vec3 a_7 = abs(d_13); if ((a_7.x >= a_7.y)) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = ((d_13.x >= 0.0) ? 0u : 1u); } else { if ((a_7.y >= a_7.z)) { part = ((d_13.y >= 0.0) ? 2u : 3u); } else { part = ((d_13.z >= 0.0) ? 4u : 5u); } } } uint _e145 = part; uint tile = min((first + min(_e145, (count - 1u))), 15u); mat4x4 _e156 = _group_0_binding_2_fs.tiles[tile].view_proj; vec4 clip_1 = (_e156 * vec4(p_9, 1.0)); if ((clip_1.w <= 0.0)) { return 1.0; } vec3 ndc = (clip_1.xyz / vec3(clip_1.w)); if (!((abs(ndc.x) > 1.0))) { local_15 = (abs(ndc.y) > 1.0); } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = (ndc.z > 1.0); } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } vec4 rect = _group_0_binding_2_fs.tiles[tile].rect; vec2 uv_4 = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); vec2 auv = (rect.xy + (uv_4 * rect.zw)); float texel_uv = _group_0_binding_2_fs.atlas.x; vec2 lo_5 = (rect.xy + vec2((0.5 * texel_uv))); vec2 hi_4 = ((rect.xy + rect.zw) - vec2((0.5 * texel_uv))); float r_7 = params.z; if ((r_7 <= 0.0)) { float _e235 = textureLod(_group_0_binding_3_fs, vec3(clamp(auv, lo_5, hi_4), ndc.z), 0.0); vis = _e235; } else { float spread = (r_7 * texel_uv); bool loop_init_12 = true; while(true) { if (!loop_init_12) { int _e265 = dy; dy = (_e265 + 1); } loop_init_12 = false; int _e239 = dy; if ((_e239 <= 1)) { } else { break; } { dx = -1; bool loop_init_13 = true; while(true) { if (!loop_init_13) { int _e262 = dx; dx = (_e262 + 1); } loop_init_13 = false; int _e244 = dx; if ((_e244 <= 1)) { } else { break; } { int _e247 = dx; int _e249 = dy; vec2 tap = clamp((auv + (vec2(float(_e247), float(_e249)) * spread)), lo_5, hi_4); float _e255 = vis; float _e259 = textureLod(_group_0_binding_3_fs, vec3(tap, ndc.z), 0.0); vis = (_e255 + _e259); } } } } float _e267 = vis; vis = (_e267 / 9.0); } if ((kind == LIGHT_DIRECTIONAL)) { vec4 fade_1 = _group_0_binding_2_fs.lights[slot].fade; float _e277 = vis; vis = mix(_e277, 1.0, smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return mix(1.0, _e283, params.w); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_8 = abs(d_8); if ((a_8.x >= a_8.y)) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_8.y >= a_8.z)) { ma = a_8.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 probe_texel(uint row, vec3 fuv, uint level_1) { uint _e6 = _group_0_binding_7_fs.counts.z; float n_12 = float(max((_e6 >> level_1), 1u)); float lo_6 = (0.5 / n_12); float u_2 = clamp(fuv.y, lo_6, (1.0 - lo_6)); float v_8 = clamp(fuv.z, lo_6, (1.0 - lo_6)); vec2 uv_5 = vec2(((fuv.x + u_2) / 6.0), ((float(row) + v_8) / 8.0)); vec4 _e33 = textureLod(_group_3_binding_6_fs, vec2(uv_5), float(level_1)); return _e33.xyz; } vec3 probe_sample(uint row_1, vec3 d_9, float lod) { bool local_18 = false; uint _e6 = _group_0_binding_7_fs.counts.y; uint levels = max(_e6, 1u); float l_5 = clamp(lod, 0.0, float((levels - 1u))); uint m0_ = uint(l_5); float t_7 = (l_5 - float(m0_)); vec3 _e17 = probe_face_uv(d_9); vec3 _e18 = probe_texel(row_1, _e17, m0_); if (!((t_7 <= 0.0))) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } vec3 _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1.0 - t_7)) + (_e34 * t_7)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_6 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_6 = p_5.extents.xyz; float d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if ((d_14 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_14 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_15 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_15; } vec3 o_8 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_8 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_8 + (d_15 * t_8)) - p_6.offset.xyz); } vec4 probe_reflection(vec3 world_8, vec3 r_2, float roughness_2, uint probes) { vec3 acc = vec3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = _group_0_binding_7_fs.counts.x; uint count_1 = min(_e12, MAX_PROBES); uint _e18 = _group_0_binding_7_fs.counts.y; float lod_1 = (roughness_2 * float((max(_e18, 1u) - 1u))); bool loop_init_14 = true; while(true) { if (!loop_init_14) { uint _e57 = i_8; i_8 = (_e57 + 1u); } loop_init_14 = false; uint _e27 = i_8; if ((_e27 < count_1)) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = _group_0_binding_7_fs.probes[_e31]; if ((((probes >> p_10.info.w) & 1u) == 0u)) { continue; } float _e41 = probe_weight(p_10, world_8); if ((_e41 <= 0.0)) { continue; } vec3 _e44 = acc; vec3 _e47 = probe_lookup(p_10, world_8, r_2); vec3 _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); float _e54 = w_sum; w_sum = (_e54 + _e41); } } float _e59 = w_sum; if ((_e59 > 1.0)) { vec3 _e62 = acc; float _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1.0; } vec3 _e67 = acc; float _e68 = w_sum; return vec4(_e67, _e68); } vec4 probe_ambient(vec3 world_9, vec3 n_7, uint probes_1) { vec3 acc_1 = vec3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = false; vec3 c_18 = vec3(0.0); uint _e11 = _group_0_binding_7_fs.counts.x; uint count_2 = min(_e11, MAX_PROBES); uint _e17 = _group_0_binding_7_fs.counts.y; uint last = (max(_e17, 1u) - 1u); bool loop_init_15 = true; while(true) { if (!loop_init_15) { uint _e73 = i_9; i_9 = (_e73 + 1u); } loop_init_15 = false; uint _e24 = i_9; if ((_e24 < count_2)) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = _group_0_binding_7_fs.probes[_e28]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if ((_e47 <= 0.0)) { continue; } c_18 = p_11.ambient.xyz; if ((p_11.info.y == PROBE_AMBIENT_ENVIRONMENT)) { vec3 _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0.0)).xyz); vec3 _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } vec3 _e66 = acc_1; vec3 _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); float _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } } float _e75 = w_sum_1; if ((_e75 > 1.0)) { vec3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1.0; } vec3 _e83 = acc_1; float _e84 = w_sum_1; return vec4(_e83, _e84); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void fragment() { float order[4] = float[4](0.0, 2.0, 3.0, 1.0); float _e2 = _group_2_binding_0_fs.screen_door; if ((_e2 > 0.0)) { vec4 _e12 = FRAGCOORD; uvec2 cell = (uvec2(_e12.xy) % uvec2(2u, 2u)); float _e25 = order[((cell.y * 2u) + cell.x)]; float _e28 = _group_2_binding_0_fs.screen_door; if ((_e25 < ((_e28 * 4.0) - 0.001))) { discard; } } vec4 _e35 = affine_uv; float _e39 = affine_uv.z; vec2 affine = (_e35.xy / vec2(max(_e39, 0.0001))); vec2 _e45 = UV; float _e48 = affine_uv.w; vec2 uv_6 = mix(_e45, affine, clamp(_e48, 0.0, 1.0)); vec4 texel_1 = texture(_group_2_binding_1_fs, vec2(uv_6)); vec4 _e60 = _group_2_binding_0_fs.albedo; vec3 _e64 = gouraud; ALBEDO = ((texel_1.xyz * _e60.xyz) * _e64); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_8 = transpose(_e1); vec3 t_9 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0.0), vec4(r_8[1], 0.0), vec4(r_8[2], 0.0), vec4(t_9, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back_2 = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back_2 * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back_2 * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_24 = false; bool local_25 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } bool _e12 = local_24; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = (_e18 < _e20); } else { local_25 = false; } bool _e23 = local_25; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_5 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_3 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_3), 0.0); float vh_2 = max(dot(v_4, h_3), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } vec4 hedra_light_dir(uint i_11, vec3 world_12) { float atten_1 = 0.0; LightU li_1 = _group_0_binding_1_fs.lights[i_11]; if ((li_1.info.x == LIGHT_DIRECTIONAL)) { return vec4(-(li_1.direction.xyz), 1.0); } vec3 rel_1 = (li_1.position.xyz - world_12); float d_16 = length(rel_1); vec3 l_7 = (rel_1 / vec3(max(d_16, 1e-6))); float _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if ((li_1.info.x == LIGHT_SPOT)) { float cone = li_1.spot.x; float scos = max(dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = max(0.0001, ((1.0 - scos) / max((1.0 - cone), 1e-6))); float _e49 = atten_1; atten_1 = (_e49 * (1.0 - pow(rim_1, li_1.spot.y))); } float _e56 = atten_1; return vec4(l_7, _e56); } float hedra_shadow(uint i_12, vec3 l_4) { bool local_27 = false; if (false) { uint _e10 = _group_0_binding_1_fs.lights[i_12].info.y; local_27 = (_e10 != LIGHT_SHADOWED); } else { local_27 = true; } bool _e14 = local_27; if (_e14) { return 1.0; } vec3 _e17 = hedra_world; vec3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } vec3 hedra_ambient(vec3 n_10, vec3 v_5, vec3 diffuse_3, vec3 f0_3, float roughness_3, float metallic) { vec3 ambient = vec3(0.0); vec3 diffuse_amb = vec3(0.0); vec3 spec_amb = vec3(0.0); vec3 dif = vec3(0.0); vec3 dif_1 = vec3(0.0); vec3 dif_2 = vec3(0.0); vec3 world_13 = hedra_world; float nv_5 = max(dot(n_10, v_5), 0.0001); vec3 f_amb = (f0_3 + ((max(vec3((1.0 - roughness_3)), f0_3) - f0_3) * pow((1.0 - nv_5), 5.0))); vec4 _e25 = gi_diffuse(n_10, false, vec3(0.0)); uint _e30 = _group_0_binding_5_fs.flags.x; if (((_e30 & SKY_IBL) != 0u)) { float _e38 = _group_0_binding_5_fs.ibl.x; float _e42 = _group_0_binding_5_fs.sun.w; float scale = (_e38 * _e42); vec4 _e46 = _group_0_binding_5_fs.ambient; diffuse_amb = _e46.xyz; uint _e52 = _group_0_binding_5_fs.flags.x; if (((_e52 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e59 = _group_0_binding_5_fs.ambient; vec3 _e61 = sky_dir(n_10); vec3 _e62 = sh_irradiance(_e61); float _e67 = _group_0_binding_5_fs.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if ((_e25.w > 0.0)) { diffuse_amb = _e25.xyz; } vec4 _e75 = _group_0_binding_5_fs.ambient; spec_amb = _e75.xyz; uint _e81 = _group_0_binding_5_fs.flags.x; if (((_e81 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e88 = sky_dir(reflect(-(v_5), n_10)); vec3 _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { uint _e94 = _group_0_binding_5_fs.flags.x; if (((_e94 & SKY_REFLECT_OFF) != 0u)) { spec_amb = vec3(0.0); } } vec2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = _group_0_binding_7_fs.counts.x; if ((_e105 > 0u)) { uint _e113 = _group_1_binding_0_fs.extra.z; vec4 _e114 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e113); vec3 _e115 = spec_amb; vec3 spec_1 = ((_e115 * (1.0 - _e114.w)) + _e114.xyz); vec3 _e122 = diffuse_amb; dif = _e122; if ((_e25.w <= 0.0)) { uint _e130 = _group_1_binding_0_fs.extra.z; vec4 _e131 = probe_ambient(world_13, n_10, _e130); vec3 _e132 = diffuse_amb; dif = ((_e132 * (1.0 - _e131.w)) + _e131.xyz); } vec3 _e139 = dif; ambient = ((diffuse_3 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } else { vec3 _e154 = diffuse_amb; vec3 _e156 = spec_amb; ambient = ((diffuse_3 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } } else { uint _e173 = _group_0_binding_1_fs.counts.y; if (((_e173 & ENV_AMBIENT_SKY) != 0u)) { vec4 _e180 = _group_0_binding_1_fs.up; vec3 up = _e180.xyz; vec4 _e184 = _group_0_binding_1_fs.sky_top; vec4 _e188 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e184.xyz + _e188.xyz) * 0.5); vec4 _e195 = _group_0_binding_1_fs.ground_horizon; vec4 _e199 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e195.xyz + _e199.xyz) * 0.5); vec3 irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up) * 0.5) + 0.5), 0.0, 1.0)); vec3 _e215 = sky(reflect(-(v_5), n_10)); vec3 blurred = mix(_e215, sky_avg, roughness_3); uint _e220 = _group_0_binding_7_fs.counts.x; if ((_e220 > 0u)) { uint _e228 = _group_1_binding_0_fs.extra.z; vec4 _e229 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e228); float _e233 = _group_0_binding_1_fs.ambient.w; vec3 spec_2 = (((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e249 = _group_1_binding_0_fs.extra.z; vec4 _e250 = probe_ambient(world_13, n_10, _e249); float _e254 = _group_0_binding_1_fs.ambient.w; dif_1 = (((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz); } vec3 _e262 = dif_1; ambient = ((diffuse_3 * _e262) + (spec_2 * f_amb)); } else { if ((_e25.w > 0.0)) { float _e275 = _group_0_binding_1_fs.ambient.w; ambient = ((diffuse_3 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { float _e284 = _group_0_binding_1_fs.ambient.w; ambient = (((diffuse_3 * irradiance) + (blurred * f_amb)) * _e284); } } } else { uint _e289 = _group_0_binding_7_fs.counts.x; if ((_e289 > 0u)) { uint _e297 = _group_1_binding_0_fs.extra.z; vec4 _e298 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e297); vec4 _e301 = _group_0_binding_1_fs.ambient; vec3 spec_3 = ((_e301.xyz * (1.0 - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e317 = _group_1_binding_0_fs.extra.z; vec4 _e318 = probe_ambient(world_13, n_10, _e317); vec4 _e321 = _group_0_binding_1_fs.ambient; dif_2 = ((_e321.xyz * (1.0 - _e318.w)) + _e318.xyz); } vec3 _e329 = dif_2; ambient = ((diffuse_3 * _e329) + (spec_3 * f_amb)); } else { if ((_e25.w > 0.0)) { vec4 _e340 = _group_0_binding_1_fs.ambient; ambient = ((diffuse_3 * _e25.xyz) + (_e340.xyz * f_amb)); } else { vec4 _e346 = _group_0_binding_1_fs.ambient; ambient = (_e346.xyz * (diffuse_3 + f_amb)); } } } } vec3 _e350 = ambient; return _e350; } vec3 hedra_fog(vec3 c_in_1, vec3 v_6) { vec3 c_20 = vec3(0.0); c_20 = c_in_1; if (HEDRA_FOG_DISABLED) { vec3 _e4 = c_20; return _e4; } uint _e8 = _group_0_binding_5_fs.flags.x; if (((_e8 & SKY_FOG) != 0u)) { vec3 _e13 = c_20; vec3 _e15 = hedra_world; vec3 _e17 = surface_fog(_e13, _e15, -(v_6)); c_20 = _e17; } uint _e21 = _group_1_binding_0_fs.decals.w; if ((_e21 != 0u)) { vec3 _e24 = c_20; vec3 _e26 = hedra_world; uint _e30 = _group_1_binding_0_fs.decals.w; vec3 _e31 = fog_volumes(_e24, _e26, _e30); c_20 = _e31; } vec3 _e32 = c_20; return _e32; } vec3 hedra_lit(vec4 clip) { DecalSurface surf_1 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); vec3 c_21 = vec3(0.0); uint k_11 = 0u; bool local_28 = false; vec3 radiance_3 = vec3(0.0); bool local_29 = false; bool local_30 = false; vec3 ambient_1 = vec3(0.0); bool local_31 = false; vec3 n_geo_3 = hedra_n_geo; vec3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; vec3 _e18 = hedra_n; vec3 _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0.0, 1.0), clamp(_e11, 0.045, 1.0), _e16, _e18, _e20); uint _e26 = _group_1_binding_0_fs.decals.z; if ((_e26 > 0u)) { vec3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; vec3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; mat4x4 _e45 = _group_0_binding_0_fs.view; mat3x3 _e46 = hedra_mat3_(_e45); vec3 _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); vec3 base = surf_1.base; vec3 diffuse_4 = (base * (1.0 - metallic_1)); float _e64 = SPECULAR; float _e68 = SPECULAR; vec3 f0_4 = mix(vec3(((0.16 * _e64) * _e68)), base, metallic_1); vec3 n_13 = surf_1.normal; vec3 _e75 = hedra_world; vec3 _e76 = hedra_view_dir(_e75); mat4x4 _e79 = _group_0_binding_0_fs.view; mat3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = mix(1.0, _e82, _e84); DIFFUSE_LIGHT = vec3(0.0); SPECULAR_LIGHT = vec3(0.0); uint _e96 = object_light_count(); bool loop_init_16 = true; while(true) { if (!loop_init_16) { uint _e238 = k_11; k_11 = (_e238 + 1u); } loop_init_16 = false; uint _e99 = k_11; if ((_e99 < _e96)) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101); LightU li_2 = _group_0_binding_1_fs.lights[_e102]; vec3 _e108 = hedra_world; vec4 _e109 = hedra_light_dir(_e102, _e108); vec3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_28 = (atten_2 > 0.0); } else { local_28 = true; } bool _e123 = local_28; if (_e123) { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if ((_e142 > 0.0)) { float rim_light = pow(max(0.0001, (1.0 - max(dot(n_13, _e76), 0.0001))), max(0.0, ((1.0 - roughness_4) * 16.0))); vec3 _e159 = c_21; float _e164 = RIM; float _e170 = RIM_TINT; c_21 = (_e159 + (((diffuse_4 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1.0), base, _e170))); } if ((atten_2 > 0.0)) { radiance_3 = (li_2.color.xyz * atten_2); if ((li_2.info.y == LIGHT_SHADOWED)) { local_29 = false; } else { local_29 = false; } bool _e188 = local_29; if (_e188) { vec3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if (true) { local_30 = false; } else { local_30 = false; } bool _e201 = local_30; if (_e201) { vec3 _e202 = c_21; vec3 _e203 = radiance_3; vec3 _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_4, f0_4, a2_4, li_2.spot.z); c_21 = (_e202 + _e206); } else { vec3 _e208 = c_21; vec3 _e209 = radiance_3; vec3 _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_4, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = (_e208 + _e212); } vec3 _e215 = BACKLIGHT; if (any(greaterThan(_e215, vec3(0.0)))) { float nl_4 = max(min(dot(n_13, l_8), 1.0), 0.0); vec3 _e225 = c_21; vec3 _e226 = radiance_3; vec3 _e229 = BACKLIGHT; c_21 = (_e225 + (((diffuse_4 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987)))); } } } } if (HEDRA_HAS_LIGHT) { vec3 _e242 = DIFFUSE_LIGHT; vec3 _e249 = SPECULAR_LIGHT; c_21 = ((((_e242 * base) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct)); } else { float _e253 = AO_LIGHT_AFFECT; if ((_e253 > 0.0)) { vec3 _e256 = c_21; c_21 = (_e256 * ao_direct); } } if (true) { vec3 _e262 = hedra_ambient(n_13, _e76, diffuse_4, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } uint _e266 = _group_0_binding_1_fs.counts.y; if (((_e266 & ENV_SSAO) != 0u)) { bool _e273 = hedra_transparent(); local_31 = !(_e273); } else { local_31 = false; } bool _e276 = local_31; if (_e276) { vec4 _e282 = texelFetch(_group_0_binding_6_fs, ivec2(floor(clip.xy)), 0); float ssao = _e282.x; vec3 _e284 = c_21; float _e286 = surf_1.occlusion; float _e291 = _group_0_binding_1_fs.tone.z; float _e295 = _group_0_binding_1_fs.tone.w; c_21 = (_e284 * mix(1.0, min(ssao, _e286), (_e291 * _e295))); vec3 _e300 = c_21; vec3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_21 = (_e300 + (_e301 * min(_e303, ssao))); } else { vec3 _e307 = c_21; vec3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_21 = (_e307 + (_e308 * _e310)); } vec3 _e313 = c_21; vec3 _e315 = surf_1.emission; c_21 = (_e313 + _e315); vec3 _e317 = c_21; vec3 _e318 = hedra_fog(_e317, _e76); vec3 _e319 = tonemap(_e318); return _e319; } vec4 hedra_output(vec3 c_22) { vec3 rgb = vec3(0.0); rgb = c_22; if (false) { vec3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } vec3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); vec4 o_9 = vec4(_e7, (_e10 ? _e9 : 1.0)); uint _e17 = _group_0_binding_1_fs.counts.y; if (((_e17 & ENV_HDR) != 0u)) { return vec4(max(o_9.xyz, vec3(0.0)), clamp(o_9.w, 0.0, 1.0)); } vec4 k_17 = clamp(o_9, vec4(0.0), vec4(1.0)); uint _e39 = _group_0_binding_0_fs.params.z; if (((_e39 & HEDRA_ENCODE_SRGB) != 0u)) { vec3 _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } vec3 hedra_bindings() { vec2 uv_7 = vec2(0.5); vec4 _e5 = textureLod(_group_3_binding_1_fs, vec2(uv_7), 0.0); vec4 _e11 = textureLod(_group_3_binding_4_fs, vec3(uv_7, 0), 0.0); vec4 _e17 = textureLod(_group_1_binding_6_fs, vec2(uv_7), 0.0); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } void main() { CustomOut in_3 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing = gl_FrontFacing; vec3 c = vec3(0.0); hedra_fragment(in_3, facing); bool _e3 = hedra_culled(in_3.flags); if (_e3) { discard; } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if ((_e7 <= 0.0)) { discard; } if (HEDRA_UNSHADED) { vec3 _e13 = ALBEDO; vec3 _e15 = hedra_world; vec3 _e16 = hedra_view_dir(_e15); vec3 _e17 = hedra_fog(_e13, _e16); vec3 _e18 = tonemap(_e17); c = _e18; } else { vec3 _e20 = hedra_lit(in_3.clip); c = _e20; } uint _e24 = _group_0_binding_1_fs.counts.w; if ((_e24 == HEDRA_NEVER)) { vec3 _e27 = c; vec3 _e28 = hedra_bindings(); c = (_e27 + _e28); } uint _e33 = _group_0_binding_0_fs.params.x; if ((_e33 == SHADE_LIT)) { vec3 _e36 = c; vec3 _e37 = item_fade(_e36); vec3 _e38 = emerge_tint(_e37, _e7); c = _e38; } vec3 _e39 = c; vec4 _e40 = hedra_output(_e39); _fs2p_location0 = _e40; return; } fs_custom_depthmain=†#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; vec2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0_; float hedra_pad1_; vec3 sun_direction; float hedra_pad2_; vec3 sun_color; float hedra_pad3_; vec3 sky_ambient; float hedra_pad4_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void fragment() { float order[4] = float[4](0.0, 2.0, 3.0, 1.0); float _e2 = _group_2_binding_0_fs.screen_door; if ((_e2 > 0.0)) { vec4 _e12 = FRAGCOORD; uvec2 cell = (uvec2(_e12.xy) % uvec2(2u, 2u)); float _e25 = order[((cell.y * 2u) + cell.x)]; float _e28 = _group_2_binding_0_fs.screen_door; if ((_e25 < ((_e28 * 4.0) - 0.001))) { discard; } } vec4 _e35 = affine_uv; float _e39 = affine_uv.z; vec2 affine = (_e35.xy / vec2(max(_e39, 0.0001))); vec2 _e45 = UV; float _e48 = affine_uv.w; vec2 uv_3 = mix(_e45, affine, clamp(_e48, 0.0, 1.0)); vec4 texel = texture(_group_2_binding_1_fs, vec2(uv_3)); vec4 _e60 = _group_2_binding_0_fs.albedo; vec3 _e64 = gouraud; ALBEDO = ((texel.xyz * _e60.xyz) * _e64); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_4 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_1 = gl_FrontFacing; bool local = false; bool local_1 = false; hedra_fragment(in_4, facing_1); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { discard; } float _e25 = emerge_reveal(in_4.world, vec2(-1.0)); if ((_e25 <= 0.0)) { discard; } else { return; } }  fs_custom_idmain0‰#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; vec2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0_; float hedra_pad1_; vec3 sun_direction; float hedra_pad2_; vec3 sun_color; float hedra_pad3_; vec3 sky_ambient; float hedra_pad4_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void fragment() { float order[4] = float[4](0.0, 2.0, 3.0, 1.0); float _e2 = _group_2_binding_0_fs.screen_door; if ((_e2 > 0.0)) { vec4 _e12 = FRAGCOORD; uvec2 cell = (uvec2(_e12.xy) % uvec2(2u, 2u)); float _e25 = order[((cell.y * 2u) + cell.x)]; float _e28 = _group_2_binding_0_fs.screen_door; if ((_e25 < ((_e28 * 4.0) - 0.001))) { discard; } } vec4 _e35 = affine_uv; float _e39 = affine_uv.z; vec2 affine = (_e35.xy / vec2(max(_e39, 0.0001))); vec2 _e45 = UV; float _e48 = affine_uv.w; vec2 uv_3 = mix(_e45, affine, clamp(_e48, 0.0, 1.0)); vec4 texel = texture(_group_2_binding_1_fs, vec2(uv_3)); vec4 _e60 = _group_2_binding_0_fs.albedo; vec3 _e64 = gouraud; ALBEDO = ((texel.xyz * _e60.xyz) * _e64); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_24 = false; bool local_25 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } bool _e12 = local_24; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = (_e18 < _e20); } else { local_25 = false; } bool _e23 = local_25; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_5 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_2 = gl_FrontFacing; bool local_2 = false; IdOut out_ = IdOut(vec4(0.0)); hedra_fragment(in_5, facing_2); bool _e3 = hedra_culled(in_5.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0.0); } else { local_2 = true; } bool _e14 = local_2; if (_e14) { discard; } uint id = _group_1_binding_0_fs.params.z; uint _e24 = _group_1_binding_0_fs.params.x; uint _e33 = _group_1_binding_0_fs.params.y; uint bits = (((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u)); out_.id = (vec4(float((id & 255u)), float(((id >> 8u) & 255u)), float(((id >> 16u) & 255u)), float(bits)) / vec4(255.0)); IdOut _e58 = out_; _fs2p_location0 = _e58.id; return; } fs_custom_normal_depthmainÑŠ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; vec2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0_; float hedra_pad1_; vec3 sun_direction; float hedra_pad2_; vec3 sun_color; float hedra_pad3_; vec3 sky_ambient; float hedra_pad4_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; layout(location = 1) out vec4 _fs2p_location1; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void fragment() { float order[4] = float[4](0.0, 2.0, 3.0, 1.0); float _e2 = _group_2_binding_0_fs.screen_door; if ((_e2 > 0.0)) { vec4 _e12 = FRAGCOORD; uvec2 cell = (uvec2(_e12.xy) % uvec2(2u, 2u)); float _e25 = order[((cell.y * 2u) + cell.x)]; float _e28 = _group_2_binding_0_fs.screen_door; if ((_e25 < ((_e28 * 4.0) - 0.001))) { discard; } } vec4 _e35 = affine_uv; float _e39 = affine_uv.z; vec2 affine = (_e35.xy / vec2(max(_e39, 0.0001))); vec2 _e45 = UV; float _e48 = affine_uv.w; vec2 uv_3 = mix(_e45, affine, clamp(_e48, 0.0, 1.0)); vec4 texel = texture(_group_2_binding_1_fs, vec2(uv_3)); vec4 _e60 = _group_2_binding_0_fs.albedo; vec3 _e64 = gouraud; ALBEDO = ((texel.xyz * _e60.xyz) * _e64); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_24 = false; bool local_25 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } bool _e12 = local_24; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = (_e18 < _e20); } else { local_25 = false; } bool _e23 = local_25; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_6 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_3 = gl_FrontFacing; bool local_3 = false; HedraNormalDepthOut out_1 = HedraNormalDepthOut(vec4(0.0), vec4(0.0)); hedra_fragment(in_6, facing_3); bool _e3 = hedra_culled(in_6.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0.0); } else { local_3 = true; } bool _e14 = local_3; if (_e14) { discard; } mat4x4 _e17 = _group_0_binding_0_fs.view; mat3x3 _e18 = hedra_mat3_(_e17); vec3 _e20 = hedra_n; vec3 n_view = normalize((_e18 * _e20)); float _e24 = METALLIC; float metallic_1 = clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; vec3 _e37 = ALBEDO; vec3 f0_4 = mix(vec3(((0.16 * _e29) * _e33)), _e37, metallic_1); mat4x4 _e43 = _group_0_binding_0_fs.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_4, vec3(0.0), vec3(1.0)), clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; _fs2p_location0 = _e63.normal_depth; _fs2p_location1 = _e63.surface; return; }  @Ð Ð/ ,@   {Ðþ—4ÌhÜ©Z„åŸþhO¦ígw<]ÕápuªrWJGlobals_block_0VertexObjectU_block_1Vertex HedraParams_block_2VertexSkinU_block_2Vertex HedraParams_block_3VertexSkyU_block_4FragmentShadowU_block_3FragmentGlobals_block_0Fragment HedraParams_block_8FragmentFogU_block_7FragmentDecalU_block_6FragmentObjectU_block_1FragmentProbeU_block_5FragmentLitU_block_2Fragment_group_3_binding_4_fs_group_0_binding_6_fs_group_2_binding_1_fs_group_1_binding_3_fs_group_3_binding_1_fs_group_3_binding_6_fs_group_0_binding_3_fs_group_1_binding_6_fs_group_3_binding_0_fs HedraParams_block_2Fragment vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depth™r// language: metal2.2 #include #include using metal::uint; struct Globals { metal::float4x4 view; metal::float4x4 proj; metal::float4x4 view_proj; metal::float4 camera_pos; metal::float4 viewport; metal::float4 wire_color; metal::float4 select_color; metal::float4 active_color; metal::float4 grid; metal::uint4 params; metal::float4 fparams; }; struct type_5 { metal::float4 inner[3]; }; struct ObjectU { metal::float4x4 model; metal::float4x4 normal; metal::float4 color; metal::uint4 params; metal::uint4 extra; type_5 gi; metal::uint4 decals; metal::uint4 lights; }; struct type_8 { metal::float3 inner[10]; }; struct LightU { metal::float4 color; metal::float4 position; metal::float4 direction; metal::float4 spot; metal::uint4 info; }; struct type_9 { LightU inner[64]; }; struct LitU { metal::uint4 counts; metal::float4 ambient; metal::float4 tone; metal::float4 up; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_horizon; metal::float4 ground_bottom; metal::float4x4 inv_view_proj; metal::uint4 dirs; type_9 lights; }; struct ShadowLightU { metal::float4 params; metal::float4 splits; metal::float4 fade; metal::uint4 info; }; struct ShadowTileU { metal::float4x4 view_proj; metal::float4 rect; metal::float4 texel; }; struct type_10 { ShadowLightU inner[16]; }; struct type_11 { ShadowTileU inner[16]; }; struct ShadowU { metal::float4 atlas; type_10 lights; type_11 tiles; }; struct SunU { metal::float4 direction; metal::float4 color; }; struct type_14 { SunU inner[4]; }; struct type_15 { metal::float4 inner[9]; }; struct SkyU { metal::uint4 flags; metal::float4x4 to_sky; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_bottom; metal::float4 ground_horizon; metal::float4 sun; metal::float4 ambient; metal::float4 ibl; metal::float4 fog_color; metal::float4 fog; metal::float4 fog_depth; metal::float4 fog_origin; type_14 suns; type_15 sh; }; struct ProbeEntryU { metal::float4x4 to_local; metal::float4 extents; metal::float4 offset; metal::float4 ambient; metal::uint4 info; }; struct type_20 { ProbeEntryU inner[8]; }; struct ProbeU { metal::uint4 counts; type_20 probes; }; struct DecalEntryU { metal::float4x4 to_local; metal::float4 modulate; metal::float4 fades; metal::float4 axis_x; metal::float4 axis_y; metal::float4 axis_z; metal::uint4 layers; metal::uint4 flags; }; struct type_21 { DecalEntryU inner[64]; }; struct DecalU { metal::uint4 counts; metal::float4 lod; type_21 entries; }; struct DecalSurface { metal::packed_float3 base; float metallic; float roughness; float occlusion; char _pad4[8]; metal::float3 normal; metal::float3 emission; }; struct VsIn { metal::float3 pos; metal::float3 normal; metal::float2 uv; uint flags; char _pad4[4]; metal::float4 tangent; float weight; char _pad6[12]; }; struct InstIn { metal::float4 row0_; metal::float4 row1_; metal::float4 row2_; metal::float4 color; }; struct FogEntryU { metal::float4x4 to_local; metal::float4 size; metal::float4 material; metal::float4 albedo; metal::float4 emission; metal::uint4 lights; }; struct type_26 { metal::float4 inner[16]; }; struct type_27 { FogEntryU inner[16]; }; struct FogU { metal::uint4 counts; metal::float4 params; metal::float4 ambient; metal::float4 up; type_26 light_fog; type_27 entries; }; struct type_28 { uint inner[4]; }; struct type_29 { metal::float2 inner[4]; }; struct type_30 { metal::float4 inner[4]; }; struct type_31 { metal::float4 inner[765]; }; struct SkinU { type_31 rows; }; struct SkinIn { metal::uint4 joints; metal::float4 weights; }; struct SkinRows { metal::float4 r0_; metal::float4 r1_; metal::float4 r2_; }; struct HedraInstExtra { metal::float4 custom; float id; char _pad2[12]; }; struct CustomOut { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; metal::float4 color; metal::float2 uv2_; uint instance_id; char _pad9[4]; metal::float4 hedra_v0_; metal::float4 hedra_v1_; metal::float4 hedra_v2_; metal::float4 hedra_v3_; }; struct IdOut { metal::float4 id; }; struct HedraParams { metal::float4 albedo; metal::float2 uv_scale; metal::float2 uv_offset; metal::float2 uv_scroll; metal::float2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0_; float hedra_pad1_; metal::packed_float3 sun_direction; float hedra_pad2_; metal::packed_float3 sun_color; float hedra_pad3_; metal::packed_float3 sky_ambient; float hedra_pad4_; metal::packed_float3 ground_ambient; float light_bands; metal::packed_float3 emission; float overbright; float screen_door; char _pad20[12]; }; struct type_33 { float inner[4]; }; struct HedraNormalDepthOut { metal::float4 normal_depth; metal::float4 surface; }; constant uint OBJ_HAS_WEIGHTS = 1u; constant uint OBJ_MIRRORED = 2u; constant uint SHADE_SOLID = 0u; constant uint SHADE_MATCAP = 1u; constant uint SHADE_NORMALS = 2u; constant uint SHADE_FACE_ORIENT = 3u; constant uint SHADE_RANDOM = 4u; constant uint SHADE_MATERIAL = 5u; constant uint SHADE_UV_CHECKER = 6u; constant uint SHADE_WEIGHTS = 7u; constant uint SHADE_LIT = 8u; constant uint SHADE_LIGHTMAP = 9u; constant uint SHADE_LIGHT_COUNT = 10u; constant uint OV_SELECTION = 1u; constant uint OV_SEAMS = 2u; constant uint OV_SHARP = 4u; constant uint F_SELECTED = 1u; constant uint F_HIDDEN = 2u; constant uint F_SEAM = 4u; constant uint F_SHARP = 8u; constant uint F_MESH = 16u; constant uint F_FADE = 32u; constant uint F_NO_PULL = 64u; constant bool SPEC_TEX_BASE = true; constant bool SPEC_TEX_NORMAL = true; constant bool SPEC_TEX_MR = true; constant bool SPEC_TEX_EMISSION = true; constant bool SPEC_TEX_OCCLUSION = true; constant bool SPEC_VERTEX_COLOR = true; constant bool SPEC_EXT = true; constant bool SPEC_UNLIT = true; constant bool SPEC_ALPHA_MASK = true; constant bool SPEC_ALPHA_BLEND = true; constant bool SPEC_CLEARCOAT = true; constant bool SPEC_SHEEN = true; constant bool SPEC_TRANSMISSION = true; constant bool SPEC_IRIDESCENCE = true; constant bool SPEC_ANISOTROPY = true; constant bool SPEC_DIFFUSE_TRANSMISSION = true; constant bool SPEC_VOLUME = true; constant bool SPEC_DISPERSION = true; constant bool SPEC_EXT_LAYERS = true; constant bool SPEC_ROUGHNESS_LAYER = true; constant bool SPEC_LIT = true; constant bool SPEC_LIGHTS = true; constant bool SPEC_SHADOWS = true; constant bool SPEC_DECALS = true; constant bool SPEC_FOG = true; constant bool SPEC_FOG_VOLUMES = true; constant bool SPEC_PROBES = true; constant bool SPEC_PROBE_GI = true; constant bool SPEC_SSAO = true; constant bool SPEC_SCREEN_REFRACTION = true; constant bool SPEC_EMERGE = true; constant bool SPEC_FADE = true; constant bool SPEC_FACE_FLAGS = true; constant bool SPEC_AMBIENT_FLAT = true; constant bool SPEC_AMBIENT_GRADIENT = true; constant bool SPEC_AMBIENT_SKY = true; constant bool SPEC_MATERIAL_MODE = true; constant bool SPEC_OTHER_MODES = true; constant float PI = 3.1415927; constant float TAU = 6.2831855; constant float E = 2.7182817; constant uint HEDRA_BLEND_MIX = 0u; constant uint HEDRA_BLEND_PREMUL_ALPHA = 4u; constant uint HEDRA_CULL_FRONT = 1u; constant uint HEDRA_DIFFUSE_LAMBERT = 0u; constant uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; constant uint HEDRA_DIFFUSE_BURLEY = 2u; constant uint HEDRA_DIFFUSE_TOON = 3u; constant uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; constant uint HEDRA_SPECULAR_TOON = 1u; constant uint HEDRA_SPECULAR_DISABLED = 2u; constant uint HEDRA_ENCODE_SRGB = 2u; constant uint HEDRA_NEVER = 4294967295u; constant uint MAX_FRAME_LIGHTS = 64u; constant uint MAX_OBJECT_LIGHTS = 8u; constant uint MAX_SHADOW_LIGHTS = 16u; constant uint MAX_POOL_DIRECTIONAL = 8u; constant type_8 LIGHT_COUNT_COLORS = type_8 {{metal::float3(0.352941, 0.352941, 0.352941), metal::float3(0.168627, 0.247059, 0.6), metal::float3(0.129412, 0.4, 0.67451), metal::float3(0.101961, 0.623529, 0.721569), metal::float3(0.121569, 0.631373, 0.529412), metal::float3(0.301961, 0.733333, 0.352941), metal::float3(0.65098, 0.831373, 0.227451), metal::float3(0.94902, 0.784314, 0.058824), metal::float3(0.94902, 0.556863, 0.058824), metal::float3(0.878431, 0.129412, 0.541176)}}; constant uint LIGHT_DIRECTIONAL = 0u; constant uint LIGHT_OMNI = 1u; constant uint LIGHT_SPOT = 2u; constant uint LIGHT_BAKE_DISABLED = 0u; constant uint LIGHT_BAKE_STATIC = 1u; constant uint LIGHT_BAKE_DYNAMIC = 2u; constant uint TONEMAP_LINEAR = 0u; constant uint TONEMAP_REINHARD = 1u; constant uint TONEMAP_FILMIC = 2u; constant uint TONEMAP_ACES = 3u; constant uint TONEMAP_AGX = 4u; constant uint ENV_SKY = 1u; constant uint ENV_AMBIENT_SKY = 2u; constant uint ENV_SSAO = 4u; constant uint ENV_HDR = 8u; constant uint ENV_SCREEN_REFRACTION = 16u; constant uint LIGHT_SHADOWED = 1u; constant uint LIGHT_BAKED_STATIC = 1u; constant uint SHADOW_TILES = 16u; constant uint SKY_DRAW_PROCEDURAL = 1u; constant uint SKY_DRAW_PANORAMA = 2u; constant uint SKY_PANORAMA_FILTER = 4u; constant uint SKY_IBL = 8u; constant uint SKY_AMBIENT_SKY = 16u; constant uint SKY_REFLECT_RADIANCE = 32u; constant uint SKY_REFLECT_OFF = 64u; constant uint SKY_FOG = 128u; constant uint SKY_FOG_DEPTH = 256u; constant uint SKY_SUNS = 4u; constant uint OBJ_LIGHTMAP = 4u; constant uint OBJ_PROBE_GI = 8u; constant uint PROBE_BOX = 1u; constant uint PROBE_INTERIOR = 2u; constant uint MAX_PROBES = 8u; constant uint PROBE_AMBIENT_DISABLED = 0u; constant uint PROBE_AMBIENT_ENVIRONMENT = 1u; constant uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; constant uint MAX_FRAME_DECALS = 64u; constant uint MAX_OBJECT_DECALS = 8u; constant uint DECAL_LIVE_ALBEDO = 1u; constant uint DECAL_LIVE_NORMAL = 2u; constant uint DECAL_LIVE_ORM = 4u; constant uint DECAL_LIVE_EMISSION = 8u; constant uint F_INSTANCE_MIRRORED = 128u; constant uint OBJ_EMERGE = 32u; constant float EMERGE_SCALE = 1.3; constant float EMERGE_EDGE = 0.8; constant float EMERGE_DITHER = 0.12; constant uint OBJ_FADE = 64u; constant uint MAX_FRAME_FOG_VOLUMES = 16u; constant uint MAX_OBJECT_FOG_VOLUMES = 4u; constant uint FOG_SHAPE_ELLIPSOID = 0u; constant uint FOG_SHAPE_CONE = 1u; constant uint FOG_SHAPE_CYLINDER = 2u; constant uint FOG_SHAPE_BOX = 3u; constant uint FOG_SHAPE_WORLD = 4u; constant float FOG_SKY_DISTANCE = 1000000.0; constant uint FOG_LIST_ALL = 2147483648u; constant float FOG_GL_X0_ = 0.8611363; constant float FOG_GL_X1_ = 0.339981; constant float FOG_GL_W0_ = 0.3478548; constant float FOG_GL_W1_ = 0.6521452; constant uint OBJ_SKINNED = 16u; constant uint SKIN_JOINTS = 255u; constant bool HEDRA_UNSHADED = true; constant bool HEDRA_HAS_LIGHT = false; constant bool HEDRA_USES_POSITION = false; constant bool HEDRA_SKIP_VERTEX_TRANSFORM = true; constant bool HEDRA_WORLD_VERTEX_COORDS = false; constant bool HEDRA_AMBIENT_LIGHT_DISABLED = false; constant bool HEDRA_FOG_DISABLED = false; constant bool HEDRA_SHADOWS_DISABLED = true; constant bool HEDRA_ALPHA = false; constant bool HEDRA_ALPHA_SCISSOR = false; constant uint HEDRA_DIFFUSE = 0u; constant uint HEDRA_SPECULAR = 2u; constant uint HEDRA_BLEND = 0u; constant uint HEDRA_CULL = 0u; metal::float3 srgb_to_linear( metal::float3 c_1 ) { metal::float3 lo = c_1 / metal::float3(12.92); metal::float3 hi = metal::pow((c_1 + metal::float3(0.055)) / metal::float3(1.055), metal::float3(2.4)); return metal::select(hi, lo, c_1 <= metal::float3(0.04045)); } metal::float4 element_color( uint flags, metal::float4 fallback, constant Globals& G, constant ObjectU& O ) { bool local_4 = {}; bool local_5 = {}; if ((flags & F_MESH) == 0u) { return fallback; } uint overlays = G.params.y; uint _e13 = O.params.w; bool edit_object = _e13 == 1u; if ((flags & F_SEAM) != 0u) { local_4 = (overlays & OV_SEAMS) != 0u; } else { local_4 = false; } bool _e27 = local_4; if (_e27) { metal::float3 _e32 = srgb_to_linear(metal::float3(0.86, 0.0, 0.0)); return metal::float4(_e32, 1.0); } if ((flags & F_SHARP) != 0u) { local_5 = (overlays & OV_SHARP) != 0u; } else { local_5 = false; } bool _e46 = local_5; if (_e46) { metal::float3 _e51 = srgb_to_linear(metal::float3(0.0, 0.85, 0.9)); return metal::float4(_e51, 1.0); } if ((overlays & OV_SELECTION) != 0u) { if (edit_object) { if ((flags & F_SELECTED) != 0u) { metal::float4 _e64 = G.select_color; return _e64; } metal::float4 _e67 = G.wire_color; return _e67; } uint _e71 = O.params.x; if (_e71 == 1u) { metal::float4 _e76 = G.select_color; metal::float4 _e79 = G.active_color; uint _e83 = O.params.y; return (_e83 == 1u) ? _e79 : _e76; } } metal::float4 _e89 = G.wire_color; return _e89; } metal::float4 to_view( metal::float3 p, float pull, constant Globals& G, constant ObjectU& O ) { metal::float4 v = {}; metal::float4x4 _e4 = G.view; metal::float4x4 _e7 = O.model; v = (_e4 * _e7) * metal::float4(p, 1.0); float _e15 = v.z; v.z = _e15 * (1.0 - pull); metal::float4 _e19 = v; return _e19; } metal::float3 linear_to_srgb( metal::float3 c_2 ) { metal::float3 lo_1 = c_2 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(c_2, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, c_2 <= metal::float3(0.0031308)); } metal::float4 target_color( metal::float4 c_3, constant Globals& G ) { metal::float4 k_12 = metal::clamp(c_3, metal::float4(0.0), metal::float4(1.0)); float _e9 = G.fparams.w; if (_e9 > 0.5) { metal::float3 _e13 = linear_to_srgb(k_12.xyz); return metal::float4(_e13, k_12.w); } return k_12; } uint object_light_count( constant ObjectU& O ) { uint _e3 = O.lights.z; return metal::min(_e3, MAX_OBJECT_LIGHTS); } uint object_light( uint k, constant ObjectU& O ) { uint _e4 = O.lights.y; uint _e8 = O.lights.x; uint word = (k < 4u) ? _e8 : _e4; return metal::min((word >> ((k & 3u) * 8u)) & 255u, 63u); } metal::float3 light_count_color( constant ObjectU& O ) { type_8 colors = LIGHT_COUNT_COLORS; uint _e5 = O.lights.w; metal::float3 _e9 = colors.inner[metal::min(unsigned(metal::min(_e5, 9u)), 9u)]; return _e9; } uint pool_sun_count( constant LitU& Lit ) { uint _e3 = Lit.dirs.z; return metal::min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun( uint k_1, constant LitU& Lit ) { uint _e4 = Lit.dirs.y; uint _e8 = Lit.dirs.x; uint word_1 = (k_1 < 4u) ? _e8 : _e4; return metal::min((word_1 >> ((k_1 & 3u) * 8u)) & 255u, 63u); } uint decal_count( constant ObjectU& O ) { uint _e3 = O.decals.z; return metal::min(_e3, MAX_OBJECT_DECALS); } uint decal_entry( uint k_2, constant ObjectU& O ) { uint _e4 = O.decals.y; uint _e8 = O.decals.x; uint word_2 = (k_2 < 4u) ? _e8 : _e4; return (word_2 >> ((k_2 & 3u) * 8u)) & 255u; } float decal_level( DecalEntryU e, metal::float3 world, constant Globals& G, constant DecalU& Decal ) { float _e5 = Decal.lod.x; metal::float4 _e8 = G.camera_pos; float _e15 = Decal.lod.y; float pixel_1 = _e5 * ((_e15 > 0.5) ? 1.0 : metal::length(world - _e8.xyz)); uint _e24 = Decal.counts.y; float top = static_cast(metal::max(_e24, 1u) - 1u); return metal::clamp(metal::log2(metal::max(pixel_1 / metal::max(e.axis_y.w, 0.000001), 1.0)), 0.0, top); } metal::float4 decal_texel( uint layer, metal::float2 uv, float level, bool live, metal::texture2d_array t_decals, metal::sampler s_decals ) { metal::float4 _e11 = t_decals.sample(s_decals, uv, static_cast(layer - 1u), metal::level(live ? 0.0 : level)); return _e11; } DecalSurface apply_decals( metal::float3 world_1, metal::float3 n_geo, DecalSurface surf, constant Globals& G, constant ObjectU& O, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { DecalSurface out_s = {}; uint k_3 = 0u; bool local_6 = {}; float fade = {}; out_s = surf; uint _e4 = decal_count(O); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { uint _e197 = k_3; k_3 = _e197 + 1u; } loop_init = false; uint _e7 = k_3; if (_e7 < _e4) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11, O); DecalEntryU e_2 = Decal.entries.inner[metal::min(unsigned(metal::min(_e12, 63u)), 63u)]; metal::float3 uvw = (e_2.to_local * metal::float4(world_1, 1.0)).xyz; if (metal::all(uvw >= metal::float3(0.0, -1.0, 0.0))) { local_6 = metal::all(uvw <= metal::float3(1.0)); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = metal::pow(1.0 - metal::abs(uvw.y), (uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y); if (e_2.fades.z > 0.0) { float _e55 = fade; fade = _e55 * metal::smoothstep(e_2.fades.z, 1.0, (metal::dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5); } metal::float2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1, G, Decal); uint live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { metal::float4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, (live_1 & DECAL_LIVE_ALBEDO) != 0u, t_decals, s_decals); metal::float3 _e84 = srgb_to_linear(_e82.xyz); metal::float4 a_2 = metal::float4(_e84, _e82.w) * e_2.modulate; float _e90 = fade; float alpha = a_2.w * _e90; metal::float3 _e94 = out_s.base; out_s.base = metal::mix(_e94, a_2.xyz, alpha * e_2.fades.w); if (e_2.layers.y > 0u) { metal::float4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, (live_1 & DECAL_LIVE_NORMAL) != 0u, t_decals, s_decals); float nx = (_e110.x * 2.0) - 1.0; float ny = 1.0 - (_e110.y * 2.0); float nz = metal::sqrt(metal::max(0.0, (1.0 - (nx * nx)) - (ny * ny))); metal::float3 dn = metal::normalize(((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny)); metal::float3 _e143 = out_s.normal; out_s.normal = metal::normalize(metal::mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { metal::float4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, (live_1 & DECAL_LIVE_ORM) != 0u, t_decals, s_decals); float _e159 = out_s.occlusion; out_s.occlusion = metal::mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = metal::mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = metal::mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { metal::float4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, (live_1 & DECAL_LIVE_EMISSION) != 0u, t_decals, s_decals); metal::float3 _e184 = out_s.emission; metal::float3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = _e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193); } } } float _e201 = out_s.roughness; out_s.roughness = metal::clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = metal::clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx( float nh, float a2_ ) { float d_12 = ((nh * nh) * (a2_ - 1.0)) + 1.0; return a2_ / ((PI * d_12) * d_12); } float v_smith( float nl, float nv, float a2_1 ) { float gv = nl * metal::sqrt(((nv * nv) * (1.0 - a2_1)) + a2_1); float g_l = nv * metal::sqrt(((nl * nl) * (1.0 - a2_1)) + a2_1); return 0.5 / metal::max(gv + g_l, 0.0001); } metal::float3 f_schlick( metal::float3 f0_, float vh ) { return f0_ + ((metal::float3(1.0) - f0_) * metal::pow(1.0 - vh, 5.0)); } metal::float3 light_specular( metal::float3 n, metal::float3 v_1, metal::float3 l, metal::float3 radiance, metal::float3 diffuse, metal::float3 f0_1, float a2_2, float specular ) { float nl_2 = metal::dot(n, l); if (nl_2 <= 0.0) { return metal::float3(0.0); } metal::float3 h = metal::normalize(l + v_1); float nh_1 = metal::max(metal::dot(n, h), 0.0); float vh_1 = metal::max(metal::dot(v_1, h), 0.0); float nv_3 = metal::max(metal::dot(n, v_1), 0.0001); metal::float3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); metal::float3 spec = (_e25 * _e26) * _e24; return (((diffuse / metal::float3(3.1415927)) + (spec * specular)) * radiance) * nl_2; } metal::float3 sky( metal::float3 dir, constant LitU& Lit ) { metal::float4 _e4 = Lit.up; float a_3 = metal::acos(metal::clamp(metal::dot(metal::normalize(dir), _e4.xyz), -1.0, 1.0)); if (a_3 <= 1.5707964) { float c_23 = 1.0 - (a_3 / 1.5707964); float k_13 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_23, 0.000001), 6.6666665), 0.0, 1.0); metal::float4 _e30 = Lit.sky_horizon; metal::float4 _e34 = Lit.sky_top; return metal::mix(_e30.xyz, _e34.xyz, k_13); } float c_24 = (a_3 - 1.5707964) / 1.5707964; float k_14 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_24, 0.000001), 50.0), 0.0, 1.0); metal::float4 _e54 = Lit.ground_horizon; metal::float4 _e58 = Lit.ground_bottom; return metal::mix(_e54.xyz, _e58.xyz, k_14); } metal::float3 filmic_curve( metal::float3 x ) { return (((x * ((0.88 * x) + metal::float3(0.1 * 0.6))) + metal::float3(0.2 * 0.01)) / ((x * ((0.88 * x) + metal::float3(0.6))) + metal::float3(0.2 * 0.3))) - metal::float3(0.01 / 0.3); } metal::float3 aces_curve( metal::float3 c_4, float white ) { metal::float3 x_2 = metal::float3(1.8 * metal::dot(metal::float3(0.59719, 0.35458, 0.04823), c_4), 1.8 * metal::dot(metal::float3(0.076, 0.90834, 0.01566), c_4), 1.8 * metal::dot(metal::float3(0.0284, 0.13383, 0.83777), c_4)); metal::float3 t_2 = ((x_2 * (x_2 + metal::float3(0.0245786))) - metal::float3(0.000090537)) / ((x_2 * ((0.983729 * x_2) + metal::float3(0.432951))) + metal::float3(0.238081)); metal::float3 o_5 = metal::float3(metal::dot(metal::float3(1.60475, -0.53108, -0.07367), t_2), metal::dot(metal::float3(-0.10208, 1.10813, -0.00605), t_2), metal::dot(metal::float3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = 1.8 * white; float wt = ((w_1 * (w_1 + 0.0245786)) - 0.000090537) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081); return o_5 / metal::float3(wt); } metal::float3 agx_curve( metal::float3 c_5 ) { metal::float3 v_2 = {}; metal::float3x3 inset = metal::float3x3(metal::float3(0.54490817, 0.14044006, 0.08882741), metal::float3(0.37377945, 0.7541096, 0.17887713), metal::float3(0.08138498, 0.10543358, 0.73225)); metal::float3x3 outset = metal::float3x3(metal::float3(1.964551, -0.29932243, -0.16436833), metal::float3(-0.85585845, 1.3264511, -0.23822464), metal::float3(-0.10886711, -0.02708402, 1.4026654)); v_2 = inset * metal::max(c_5, metal::float3(0.0000000002)); metal::float3 _e34 = v_2; v_2 = (metal::clamp(metal::log2(_e34), metal::float3(-12.473931), metal::float3(4.0260687)) - metal::float3(-12.473931)) / metal::float3(4.0260687 - -12.473931); metal::float3 _e44 = v_2; metal::float3 _e45 = v_2; metal::float3 x2_ = _e44 * _e45; metal::float3 x4_ = x2_ * x2_; metal::float3 _e48 = v_2; metal::float3 _e56 = v_2; metal::float3 _e64 = v_2; metal::float3 p_7 = (((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_); return outset * metal::pow(metal::max(p_7, metal::float3(0.0000000001)), metal::float3(2.4)); } metal::float3 tonemap( metal::float3 c_in, constant LitU& Lit ) { float _e4 = Lit.tone.x; metal::float3 c_25 = metal::max(c_in * _e4, metal::float3(0.0)); float white_1 = Lit.tone.y; uint mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return ((white_1 * c_25) + c_25) / ((c_25 * white_1) + metal::float3(white_1)); } if (mode == TONEMAP_FILMIC) { metal::float3 _e27 = filmic_curve(c_25); metal::float3 _e29 = filmic_curve(metal::float3(white_1)); return _e27 / _e29; } if (mode == TONEMAP_ACES) { metal::float3 _e33 = aces_curve(c_25, white_1); return _e33; } if (mode == TONEMAP_AGX) { metal::float3 _e36 = agx_curve(c_25); return _e36; } return c_25; } float emerge_hash( metal::float3 p_1 ) { metal::float3 q = {}; q = metal::fract(p_1 * 0.1031); metal::float3 _e5 = q; metal::float3 _e6 = q; metal::float3 _e7 = q; q = _e5 + metal::float3(metal::dot(_e6, _e7.zyx + metal::float3(31.32))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return metal::fract((_e16 + _e18) * _e21); } float emerge_noise( metal::float3 p_2 ) { metal::float3 i_13 = metal::floor(p_2); metal::float3 f = metal::fract(p_2); metal::float3 u_1 = (f * f) * (metal::float3(3.0) - (2.0 * f)); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 0.0)); float _e24 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 0.0)); float _e30 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 0.0)); float a_4 = metal::mix(metal::mix(_e10, _e16, u_1.x), metal::mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash(i_13 + metal::float3(0.0, 0.0, 1.0)); float _e46 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 1.0)); float _e54 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 1.0)); float _e60 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 1.0)); float b_2 = metal::mix(metal::mix(_e40, _e46, u_1.x), metal::mix(_e54, _e60, u_1.x), u_1.y); return metal::mix(a_4, b_2, u_1.z); } float emerge_reveal( metal::float3 world_2, metal::float2 pixel, constant ObjectU& O ) { float n_1 = {}; uint _e6 = O.extra.x; if (SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true) { return 1.0; } float e_3 = O.normal[0].w; metal::float3 w_2 = world_2 * EMERGE_SCALE; float _e21 = emerge_noise(w_2); float _e29 = emerge_noise((w_2 * 2.7) + metal::float3(17.1)); n_1 = metal::smoothstep(0.2, 0.8, (_e21 * 0.65) + (_e29 * 0.35)); if (pixel.x >= 0.0) { float ign = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(pixel), metal::float2(0.06711056, 0.00583715)))); float _e49 = n_1; n_1 = metal::clamp(_e49 + ((ign - 0.5) * EMERGE_DITHER), 0.0, 1.0); } float _e60 = n_1; return ((e_3 * 1.8) - _e60) / EMERGE_EDGE; } metal::float3 emerge_tint( metal::float3 c_6, float r, constant ObjectU& O, constant LitU& Lit ) { bool local_7 = {}; uint _e6 = O.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = r >= 1.0; } else { local_7 = true; } bool _e17 = local_7; if (SPEC_EMERGE ? _e17 : true) { return c_6; } uint _e23 = O.extra.w; metal::float3 _e26 = srgb_to_linear(metal::unpack_unorm4x8_to_float(_e23).xyz); metal::float3 _e27 = tonemap(_e26, Lit); return metal::mix(_e27, c_6, metal::smoothstep(0.0, 1.0, r)); } metal::float3 item_fade( metal::float3 c_7, constant ObjectU& O, constant LitU& Lit ) { uint _e5 = O.extra.x; if (SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true) { return c_7; } metal::float4 f_1 = O.normal[3]; metal::float3 _e17 = tonemap(f_1.xyz, Lit); return metal::mix(c_7, _e17, f_1.w); } metal::float3 sky_dir( metal::float3 d, constant SkyU& Sky ) { metal::float4x4 _e3 = Sky.to_sky; return metal::normalize((_e3 * metal::float4(d, 0.0)).xyz); } float sky_curve( float c_8, float curve ) { return metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_8, 0.000001), 1.0 / curve), 0.0, 1.0); } metal::float3 procedural_sky( metal::float3 d_1, constant SkyU& Sky ) { metal::float3 sky_1 = {}; uint i = 0u; float v_7 = metal::acos(metal::clamp(d_1.y, -1.0, 1.0)); metal::float4 _e8 = Sky.sky_horizon; metal::float4 _e12 = Sky.sky_top; float _e21 = Sky.sky_top.w; float _e22 = sky_curve(1.0 - (v_7 / 1.5707964), _e21); float _e27 = Sky.sky_horizon.w; sky_1 = metal::mix(_e8.xyz, _e12.xyz, _e22) * _e27; uint _e33 = Sky.flags.z; uint suns = metal::min(_e33, SKY_SUNS); uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { uint _e79 = i; i = _e79 + 1u; } loop_init_1 = false; uint _e38 = i; if (_e38 < suns) { } else { break; } { uint _e42 = i; SunU sun = Sky.suns.inner[metal::min(unsigned(_e42), 3u)]; float size = sun.direction.w; float a_5 = metal::acos(metal::clamp(metal::dot(sun.direction.xyz, d_1), -1.0, 1.0)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { float _e60 = Sky.sun.x; if (a_5 < _e60) { float _e66 = Sky.sun.x; float c2_ = (a_5 - size) / (_e66 - size); metal::float3 _e71 = sky_1; float _e75 = Sky.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = metal::mix(sun.color.xyz, _e71, _e76); } } } } metal::float4 _e83 = Sky.ground_horizon; metal::float4 _e87 = Sky.ground_bottom; float _e96 = Sky.ground_bottom.w; float _e97 = sky_curve((v_7 - 1.5707964) / 1.5707964, _e96); float _e102 = Sky.ground_horizon.w; metal::float3 ground = metal::mix(_e83.xyz, _e87.xyz, _e97) * _e102; metal::float3 _e104 = sky_1; float _e112 = Sky.sun.z; return ((d_1.y >= 0.0) ? _e104 : ground) * _e112; } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } int naga_mod(int lhs, int rhs) { int divisor = metal::select(rhs, 1, (lhs == (-2147483647 - 1) & rhs == -1) | (rhs == 0)); return lhs - (lhs / divisor) * divisor; } metal::float3 panorama( metal::float3 d_2, constant SkyU& Sky, metal::texture2d t_panorama, metal::sampler s_panorama ) { metal::float2 uv_4 = metal::float2(metal::fract(metal::atan2(d_2.x, -(d_2.z)) / 6.2831855), metal::acos(metal::clamp(d_2.y, -1.0, 1.0)) / PI); uint _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { metal::float4 _e27 = t_panorama.sample(s_panorama, uv_4, metal::level(0.0)); float _e32 = Sky.sun.z; return _e27.xyz * _e32; } metal::int2 size_1 = static_cast(metal::uint2(t_panorama.get_width(0), t_panorama.get_height(0))); int x_3 = naga_mod(as_type(as_type(naga_mod(naga_f2i32(metal::floor(uv_4.x * static_cast(size_1.x))), size_1.x)) + as_type(size_1.x)), size_1.x); int y = metal::clamp(naga_f2i32(metal::floor(uv_4.y * static_cast(size_1.y))), 0, as_type(as_type(size_1.y) - as_type(1))); uint clamped_lod_e64 = metal::min(uint(0), t_panorama.get_num_mip_levels() - 1); metal::float4 _e64 = t_panorama.read(metal::min(metal::uint2(metal::int2(x_3, y)), metal::uint2(t_panorama.get_width(clamped_lod_e64), t_panorama.get_height(clamped_lod_e64)) - 1), clamped_lod_e64); float _e69 = Sky.sun.z; return _e64.xyz * _e69; } metal::float3 sh_irradiance( metal::float3 n_2, constant SkyU& Sky ) { metal::float3 c_9 = {}; metal::float4 _e4 = Sky.sh.inner[0]; c_9 = _e4.xyz * 0.282095; metal::float3 _e9 = c_9; metal::float4 _e13 = Sky.sh.inner[1]; c_9 = _e9 + (_e13.xyz * (0.488603 * n_2.y)); metal::float3 _e20 = c_9; metal::float4 _e24 = Sky.sh.inner[2]; c_9 = _e20 + (_e24.xyz * (0.488603 * n_2.z)); metal::float3 _e31 = c_9; metal::float4 _e35 = Sky.sh.inner[3]; c_9 = _e31 + (_e35.xyz * (0.488603 * n_2.x)); metal::float3 _e42 = c_9; metal::float4 _e46 = Sky.sh.inner[4]; c_9 = _e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y)); metal::float3 _e55 = c_9; metal::float4 _e59 = Sky.sh.inner[5]; c_9 = _e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z)); metal::float3 _e68 = c_9; metal::float4 _e72 = Sky.sh.inner[6]; c_9 = _e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0))); metal::float3 _e85 = c_9; metal::float4 _e89 = Sky.sh.inner[7]; c_9 = _e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z)); metal::float3 _e98 = c_9; metal::float4 _e102 = Sky.sh.inner[8]; c_9 = _e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y)))); metal::float3 _e115 = c_9; return metal::max(_e115, metal::float3(0.0)); } metal::float3 radiance_1( metal::float3 d_3, float roughness, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { uint _e5 = Sky.flags.y; float top_1 = static_cast(metal::max(_e5, 1u) - 1u); metal::float4 _e14 = t_radiance.sample(s_radiance, d_3, metal::level(roughness * top_1)); return _e14.xyz; } metal::float2 env_brdf_approx( float roughness_1, float nv_1 ) { metal::float4 r_6 = (roughness_1 * metal::float4(-1.0, -0.0275, -0.572, 0.022)) + metal::float4(1.0, 0.0425, 1.04, -0.04); float a004_ = (metal::min(r_6.x * r_6.x, metal::exp2(-9.28 * nv_1)) * r_6.x) + r_6.y; return (metal::float2(-1.04, 1.04) * a004_) + r_6.zw; } float pow8_( float x_1 ) { float x2_1 = metal::max(x_1, 0.0) * metal::max(x_1, 0.0); float x4_1 = x2_1 * x2_1; return x4_1 * x4_1; } metal::float3 fog_sun_scatter( metal::float3 fc, metal::float3 dir_1, constant LitU& Lit, constant SkyU& Sky ) { metal::float3 c_10 = {}; uint k_4 = 0u; c_10 = fc; float _e6 = Sky.fog_color.w; if (_e6 > 0.001) { uint _e9 = pool_sun_count(Lit); uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { uint _e51 = k_4; k_4 = _e51 + 1u; } loop_init_2 = false; uint _e12 = k_4; if (_e12 < _e9) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14, Lit); uint _e21 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].info.x; if (_e21 == LIGHT_DIRECTIONAL) { metal::float3 _e24 = c_10; metal::float4 _e29 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].color; metal::float4 _e38 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].direction; float _e42 = pow8_(metal::dot(dir_1, -(_e38.xyz))); float _e47 = Sky.fog_color.w; c_10 = _e24 + (((_e29.xyz / metal::float3(3.1415927)) * _e42) * _e47); } } } } metal::float3 _e53 = c_10; return _e53; } metal::float3 sky_fog( metal::float3 c_11, metal::float3 dir_2, constant LitU& Lit, constant SkyU& Sky ) { metal::float4 _e4 = Sky.fog_color; float _e9 = Sky.fog_depth.w; metal::float3 _e11 = fog_sun_scatter(metal::mix(_e4.xyz, c_11, _e9), dir_2, Lit, Sky); float _e15 = Sky.fog.y; return metal::mix(c_11, _e11, _e15); } metal::float3 surface_fog( metal::float3 c_12, metal::float3 world_3, metal::float3 dir_3, constant Globals& G, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { float dist = {}; float amount = {}; metal::float3 fc_1 = {}; bool local_8 = {}; metal::float4x4 _e5 = G.view; float depth = -((_e5 * metal::float4(world_3, 1.0)).z); metal::float4 _e13 = G.camera_pos; dist = metal::distance(world_3, _e13.xyz); float _e20 = Sky.fog_origin.w; if (_e20 > 0.5) { float _e26 = Sky.fog_origin.x; dist = metal::max(depth - _e26, 0.0); } uint _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { float _e42 = Sky.fog_depth.x; float _e46 = Sky.fog_depth.y; float _e47 = dist; float z = metal::smoothstep(_e42, _e46, _e47); float _e54 = Sky.fog_depth.z; float _e63 = Sky.fog.x; amount = ((z > 0.0) ? metal::pow(metal::max(z, 0.000001), _e54) : 0.0) * _e63; } else { float _e65 = dist; float _e70 = Sky.fog.x; amount = 1.0 - metal::exp(metal::min(0.0, -(_e65) * _e70)); } float _e80 = Sky.fog.w; if (metal::abs(_e80) >= 0.0001) { metal::float4 _e86 = Lit.up; float y_1 = metal::dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = Sky.fog.z; float _e98 = Sky.fog.w; amount = metal::max(_e89, 1.0 - metal::exp(metal::min(0.0, (y_1 - _e93) * _e98))); } float _e106 = amount; amount = metal::clamp(_e106, 0.0, 1.0); metal::float4 _e112 = Sky.fog_color; fc_1 = _e112.xyz; uint _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { float _e129 = Sky.fog_depth.w; local_8 = _e129 > 0.0; } else { local_8 = false; } bool _e133 = local_8; if (SPEC_AMBIENT_SKY ? _e133 : false) { float _e139 = Sky.fog_origin.y; float _e144 = Sky.fog_origin.z; float _e148 = Sky.fog_origin.y; float t_3 = metal::clamp((depth - _e139) / metal::max(_e144 - _e148, 0.000001), 0.0, 1.0); uint _e159 = Sky.flags.y; float top_2 = static_cast(metal::max(_e159, 2u) - 1u); float rough = metal::mix(1.0 / top_2, 1.0, 1.0 - t_3); metal::float3 _e171 = fc_1; metal::float3 _e172 = sky_dir(dir_3, Sky); metal::float3 _e173 = radiance_1(_e172, rough, Sky, t_radiance, s_radiance); float _e177 = Sky.sun.w; float _e182 = Sky.fog_depth.w; fc_1 = metal::mix(_e171, _e173 * _e177, _e182); } metal::float3 _e184 = fc_1; metal::float3 _e185 = fog_sun_scatter(_e184, dir_3, Lit, Sky); fc_1 = _e185; metal::float3 _e186 = fc_1; float _e187 = amount; return metal::mix(c_12, _e186, _e187); } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::float2 fog_chord( uint k_5, metal::float3 o, metal::float3 d_4, float t_end_ray, constant FogU& Fog ) { metal::float2 r_1 = {}; float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].albedo.w; uint shape = naga_f2u32(_e9); float _e16 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].emission.w; float t_end_1 = metal::min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return metal::float2(0.0, t_end_1); } metal::float4 _e26 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].size; metal::float3 h_1 = _e26.xyz * 0.5; metal::float3 dd = metal::select(d_4, metal::float3(0.000000000001), metal::abs(d_4) < metal::float3(0.000000000001)); metal::float3 sa = (-(h_1) - o) / dd; metal::float3 sb = (h_1 - o) / dd; metal::float3 s_in = metal::min(sa, sb); metal::float3 s_out = metal::max(sa, sb); r_1 = metal::float2(metal::max(0.0, s_in.y), metal::min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = metal::float2(metal::max(metal::max(_e60, s_in.x), s_in.z), metal::min(metal::min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = metal::dot(d_4 / h_1, d_4 / h_1); b = metal::dot(o / h_1, d_4 / h_1); c_13 = metal::dot(o / h_1, o / h_1) - 1.0; } else { float rad = metal::min(h_1.x, h_1.z); float k_15 = (shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0; float w_3 = h_1.y - o.y; a = ((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y); b = ((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y); c_13 = ((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad)); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = (_e139 * _e140) - (_e142 * _e143); float _e146 = a; if (metal::abs(_e146) < 0.000000000001) { float _e150 = b; if (metal::abs(_e150) < 0.000000000001) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = (_e157 > 0.0) ? -1.0 : _e156; } else { float _e162 = b; if (_e162 > 0.0) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = metal::min(_e167, -(_e168) / (2.0 * _e170)); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = metal::max(_e177, -(_e178) / (2.0 * _e180)); } } } else { if (disc < 0.0) { float _e189 = r_1.y; float _e190 = a; r_1.y = (_e190 > 0.0) ? -1.0 : _e189; } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = metal::min((-(_e195) - metal::sqrt(disc)) / _e199, (-(_e201) + metal::sqrt(disc)) / _e205); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = metal::max((-(_e208) - metal::sqrt(disc)) / _e212, (-(_e214) + metal::sqrt(disc)) / _e218); float _e221 = a; if (_e221 > 0.0) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = metal::float2(metal::max(_e225, lo_2), metal::min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if (_e232 < metal::min(_e234, lo_2)) { float _e239 = r_1.y; r_1.y = metal::min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = metal::max(_e243, hi_2); } } } } metal::float2 _e245 = r_1; return _e245; } float fog_density( uint k_6, metal::float3 p_3, metal::float3 lp, constant FogU& Fog ) { float rho = {}; float sdf = 0.0; FogEntryU e_4 = Fog.entries.inner[metal::min(unsigned(k_6), 15u)]; metal::float4 _e14 = Fog.up; rho = e_4.material.x * metal::min(metal::exp2(-(e_4.material.y) * (metal::dot(p_3, _e14.xyz) - e_4.material.w)), 1.0); if (e_4.material.z > 0.0) { uint shape_1 = naga_f2u32(e_4.albedo.w); metal::float3 h_2 = e_4.size.xyz * 0.5; float rad_1 = metal::min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { float k0_ = metal::length(lp / h_2); sdf = (k0_ * (k0_ - 1.0)) / metal::max(metal::length(lp / (h_2 * h_2)), 0.000000000001); } else { if (shape_1 == FOG_SHAPE_BOX) { metal::float3 q_3 = metal::abs(lp) - h_2; sdf = metal::length(metal::max(q_3, metal::float3(0.0))) + metal::min(metal::max(q_3.x, metal::max(q_3.y, q_3.z)), 0.0); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { metal::float2 q_4 = metal::float2(metal::length(lp.xz) - rad_1, metal::abs(lp.y) - h_2.y); sdf = metal::min(metal::max(q_4.x, q_4.y), 0.0) + metal::length(metal::max(q_4, metal::float2(0.0))); } else { metal::float2 n_11 = metal::normalize(metal::float2(1.0 / metal::max(0.001, rad_1 * 0.5), 1.0 / metal::max(0.001, h_2.y))); sdf = metal::max(metal::dot(n_11, metal::float2(metal::length(lp.xz), lp.y - h_2.y)), -(h_2.y) - lp.y); } } } float _e116 = rho; float _e117 = sdf; rho = _e116 * metal::pow(metal::clamp((-2.0 * _e117) / e_4.size.w, 0.0, 1.0), e_4.material.z); } float _e130 = rho; return _e130; } float fog_falloff_depth( uint k_7, float a_1, float b_1, float t0_, float t1_, constant FogU& Fog ) { metal::float4 m_4 = Fog.entries.inner[metal::min(unsigned(k_7), 15u)].material; float hf = m_4.y; if ((hf * b_1) == 0.0) { return (m_4.x * (t1_ - t0_)) * metal::min(metal::exp2(-(hf) * a_1), 1.0); } float s_2 = metal::clamp(-(a_1) / b_1, t0_, t1_); float lo_3 = (b_1 > 0.0) ? s_2 : t0_; float hi_3 = (b_1 > 0.0) ? t1_ : s_2; float x_4 = ((hf * metal::abs(b_1)) * (hi_3 - lo_3)) * 0.6931472; float g = (x_4 < 0.01) ? (1.0 - (x_4 * (0.5 - (x_4 * (0.16666667 - (x_4 / 24.0)))))) : ((1.0 - metal::exp(-(x_4))) / x_4); float top_3 = metal::min(metal::exp2(-(hf) * metal::max(a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3)), 0.0)), 1.0); return m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g)); } float omni_attenuation( float d_5, float inv_range, float decay ) { float nd = {}; nd = d_5 * inv_range; float _e5 = nd; float _e6 = nd; nd = _e5 * _e6; float _e8 = nd; float _e9 = nd; nd = _e8 * _e9; float _e11 = nd; nd = metal::max(1.0 - _e11, 0.0); float _e16 = nd; float _e17 = nd; nd = _e16 * _e17; float _e19 = nd; return _e19 * metal::pow(metal::max(d_5, 0.0001), -(decay)); } metal::float3 fog_light( uint n_3, metal::float3 p_4, metal::float3 dir_4, constant LitU& Lit, constant FogU& Fog ) { metal::float3 sum = {}; uint k_8 = 0u; metal::float3 l_1 = {}; float atten = {}; metal::float4 _e5 = Fog.ambient; float _e10 = Fog.params.y; sum = _e5.xyz * _e10; float g_1 = Fog.params.x; metal::uint4 lights = Fog.entries.inner[metal::min(unsigned(n_3), 15u)].lights; uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { uint _e138 = k_8; k_8 = _e138 + 1u; } loop_init_3 = false; uint _e24 = k_8; if (_e24 < metal::min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = metal::min((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u, 63u); LightU li = Lit.lights.inner[metal::min(unsigned(i_14), 63u)]; l_1 = -(li.direction.xyz); atten = 1.0; if (li.info.x != LIGHT_DIRECTIONAL) { metal::float3 rel = li.position.xyz - p_4; l_1 = rel / metal::float3(metal::max(metal::length(rel), 0.000001)); float _e72 = omni_attenuation(metal::length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { metal::float3 _e77 = l_1; float rim = metal::max(0.0001, (1.0 - metal::max(metal::dot(-(_e77), li.direction.xyz), li.spot.x)) / metal::max(1.0 - li.spot.x, 0.000001)); float _e96 = atten; atten = _e96 * (1.0 - metal::pow(rim, li.spot.y)); } } metal::float3 _e108 = l_1; float q_5 = (1.0 + (g_1 * g_1)) - ((2.0 * g_1) * metal::dot(dir_4, _e108)); metal::float3 _e112 = sum; float _e115 = atten; float _e133 = Fog.light_fog.inner[metal::min(unsigned(i_14 >> 2u), 15u)][metal::min(unsigned(i_14 & 3u), 3u)]; sum = _e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * metal::sqrt(q_5))) * _e133)); } } metal::float3 _e140 = sum; return _e140; } metal::float4 fog_entry( uint k_9, metal::float3 o_1, metal::float3 d_6, metal::float2 ch, constant LitU& Lit, constant FogU& Fog ) { float split = {}; bool local_9 = {}; bool local_10 = {}; metal::float3 q_1 = metal::float3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = {}; bool local_12 = {}; FogEntryU e_5 = Fog.entries.inner[metal::min(unsigned(k_9), 15u)]; metal::float3 lo_4 = (e_5.to_local * metal::float4(o_1, 1.0)).xyz; metal::float3 ld = (e_5.to_local * metal::float4(d_6, 0.0)).xyz; metal::float4 _e20 = Fog.up; float a_6 = metal::dot(o_1, _e20.xyz) - e_5.material.w; metal::float4 _e28 = Fog.up; float b_3 = metal::dot(d_6, _e28.xyz); bool edge = e_5.material.z > 0.0; split = (ch.x + ch.y) * 0.5; if (e_5.material.y > 0.0) { local_9 = (-(a_6) / b_3) > ch.x; } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = (-(a_6) / b_3) < ch.y; } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = -(a_6) / b_3; } uint2 loop_bound_4 = uint2(4294967295u); bool loop_init_4 = true; while(true) { if (metal::all(loop_bound_4 == uint2(0u))) { break; } loop_bound_4 -= uint2(loop_bound_4.y == 0u, 1u); if (!loop_init_4) { uint _e160 = i_1; i_1 = _e160 + 1u; } loop_init_4 = false; uint _e70 = i_1; if (_e70 < (edge ? 12u : 4u)) { } else { break; } { uint _e75 = i_1; uint j = _e75 & 3u; if (!((j == 0u))) { local_11 = j == 3u; } else { local_11 = true; } bool _e88 = local_11; float x_5 = _e88 ? FOG_GL_X0_ : FOG_GL_X1_; if (!((j == 0u))) { local_12 = j == 3u; } else { local_12 = true; } bool _e100 = local_12; float w_4 = _e100 ? FOG_GL_W0_ : FOG_GL_W1_; float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; metal::float2 seg = (_e112 < 4u) ? ch : ((_e108 < 8u) ? metal::float2(ch.x, _e106) : metal::float2(_e102, ch.y)); float half_len = (seg.y - seg.x) * 0.5; float t_4 = ((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_5) : x_5)); metal::float3 p_8 = o_1 + (d_6 * t_4); float _e136 = fog_density(k_9, p_8, lo_4 + (ld * t_4), Fog); uint _e137 = i_1; if (_e137 < 4u) { metal::float3 _e140 = q_1; metal::float3 _e143 = fog_light(k_9, p_8, d_6, Lit, Fog); q_1 = _e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * metal::clamp(_e136, 0.0, 1.0))); } else { float _e155 = tau; tau = _e155 + ((w_4 * half_len) * _e136); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y, Fog); tau = _e165; } metal::float3 _e166 = q_1; float _e167 = tau; return metal::float4(_e166, _e167); } metal::float3 fog_integrate( metal::float3 c_14, metal::float3 o_2, metal::float3 d_7, float t_end, uint list, constant LitU& Lit, constant FogU& Fog ) { type_28 at = {}; type_29 chords = {}; uint m = 0u; uint i_2 = 0u; bool local_13 = {}; type_30 parts = {}; uint i_3 = 0u; uint n_4 = 0u; float avail = {}; uint i_4 = {}; uint i_5 = {}; metal::float3 q_2 = metal::float3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all = list >= FOG_LIST_ALL; uint2 loop_bound_5 = uint2(4294967295u); bool loop_init_5 = true; while(true) { if (metal::all(loop_bound_5 == uint2(0u))) { break; } loop_bound_5 -= uint2(loop_bound_5.y == 0u, 1u); if (!loop_init_5) { uint _e72 = i_2; i_2 = _e72 + 1u; } loop_init_5 = false; uint _e13 = i_2; uint _e18 = Fog.counts.x; if (_e13 < (all ? metal::min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u)) { } else { break; } { uint _e23 = i_2; uint byte = (list >> ((_e23 & 3u) * 8u)) & 127u; if (!(all)) { local_13 = byte == 0u; } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = all ? _e42 : (metal::min(byte, MAX_FRAME_FOG_VOLUMES) - 1u); metal::float4x4 to_local = Fog.entries.inner[metal::min(unsigned(k_16), 15u)].to_local; metal::float2 _e57 = fog_chord(k_16, (to_local * metal::float4(o_2, 1.0)).xyz, (to_local * metal::float4(d_7, 0.0)).xyz, t_end, Fog); if (_e57.y > _e57.x) { uint _e61 = m; at.inner[metal::min(unsigned(_e61), 3u)] = k_16; uint _e63 = m; chords.inner[metal::min(unsigned(_e63), 3u)] = _e57; uint _e66 = m; m = _e66 + 1u; uint _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } } uint2 loop_bound_6 = uint2(4294967295u); bool loop_init_6 = true; while(true) { if (metal::all(loop_bound_6 == uint2(0u))) { break; } loop_bound_6 -= uint2(loop_bound_6.y == 0u, 1u); if (!loop_init_6) { uint _e90 = i_3; i_3 = _e90 + 1u; } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if (_e77 < _e78) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at.inner[metal::min(unsigned(_e82), 3u)]; uint _e85 = i_3; metal::float2 _e87 = chords.inner[metal::min(unsigned(_e85), 3u)]; metal::float4 _e88 = fog_entry(_e84, o_2, d_7, _e87, Lit, Fog); parts.inner[metal::min(unsigned(_e80), 3u)] = _e88; } } uint2 loop_bound_7 = uint2(4294967295u); bool loop_init_7 = true; while(true) { if (metal::all(loop_bound_7 == uint2(0u))) { break; } loop_bound_7 -= uint2(loop_bound_7.y == 0u, 1u); if (!loop_init_7) { uint _e221 = n_4; n_4 = _e221 + 1u; } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if (_e94 < _e95) { } else { break; } { uint _e97 = n_4; float _e100 = parts.inner[metal::min(unsigned(_e97), 3u)].w; if (_e100 < 0.0) { avail = 0.0; i_4 = 0u; uint2 loop_bound_8 = uint2(4294967295u); bool loop_init_8 = true; while(true) { if (metal::all(loop_bound_8 == uint2(0u))) { break; } loop_bound_8 -= uint2(loop_bound_8.y == 0u, 1u); if (!loop_init_8) { uint _e153 = i_4; i_4 = _e153 + 1u; } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if (_e107 < _e108) { } else { break; } { uint _e110 = i_4; float _e113 = chords.inner[metal::min(unsigned(_e110), 3u)].y; uint _e114 = n_4; float _e117 = chords.inner[metal::min(unsigned(_e114), 3u)].y; uint _e119 = i_4; float _e122 = chords.inner[metal::min(unsigned(_e119), 3u)].x; uint _e123 = n_4; float _e126 = chords.inner[metal::min(unsigned(_e123), 3u)].x; uint _e131 = i_4; float _e134 = chords.inner[metal::min(unsigned(_e131), 3u)].y; uint _e135 = i_4; float _e138 = chords.inner[metal::min(unsigned(_e135), 3u)].x; float share = metal::max(metal::min(_e113, _e117) - metal::max(_e122, _e126), 0.0) / metal::max(_e134 - _e138, 0.000001); float _e143 = avail; uint _e144 = i_4; float _e147 = parts.inner[metal::min(unsigned(_e144), 3u)].w; avail = _e143 + (metal::max(_e147, 0.0) * share); } } uint _e155 = n_4; float _e158 = parts.inner[metal::min(unsigned(_e155), 3u)].w; float _e160 = avail; float f_2 = metal::min(-(_e158) / metal::max(_e160, 0.000000000001), 1.0); i_5 = 0u; uint2 loop_bound_9 = uint2(4294967295u); bool loop_init_9 = true; while(true) { if (metal::all(loop_bound_9 == uint2(0u))) { break; } loop_bound_9 -= uint2(loop_bound_9.y == 0u, 1u); if (!loop_init_9) { uint _e218 = i_5; i_5 = _e218 + 1u; } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if (_e168 < _e169) { } else { break; } { uint _e171 = i_5; float _e174 = parts.inner[metal::min(unsigned(_e171), 3u)].w; if (_e174 > 0.0) { uint _e177 = i_5; float _e180 = chords.inner[metal::min(unsigned(_e177), 3u)].y; uint _e181 = n_4; float _e184 = chords.inner[metal::min(unsigned(_e181), 3u)].y; uint _e186 = i_5; float _e189 = chords.inner[metal::min(unsigned(_e186), 3u)].x; uint _e190 = n_4; float _e193 = chords.inner[metal::min(unsigned(_e190), 3u)].x; uint _e198 = i_5; float _e201 = chords.inner[metal::min(unsigned(_e198), 3u)].y; uint _e202 = i_5; float _e205 = chords.inner[metal::min(unsigned(_e202), 3u)].x; float share_1 = metal::max(metal::min(_e180, _e184) - metal::max(_e189, _e193), 0.0) / metal::max(_e201 - _e205, 0.000001); uint _e210 = i_5; metal::float4 _e212 = parts.inner[metal::min(unsigned(_e210), 3u)]; parts.inner[metal::min(unsigned(_e210), 3u)] = _e212 * (1.0 - (share_1 * f_2)); } } } } } } uint2 loop_bound_10 = uint2(4294967295u); bool loop_init_10 = true; while(true) { if (metal::all(loop_bound_10 == uint2(0u))) { break; } loop_bound_10 -= uint2(loop_bound_10.y == 0u, 1u); if (!loop_init_10) { uint _e252 = i_6; i_6 = _e252 + 1u; } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if (_e230 < _e231) { } else { break; } { uint _e233 = i_6; float _e236 = parts.inner[metal::min(unsigned(_e233), 3u)].w; if (_e236 > 0.0) { metal::float3 _e239 = q_2; uint _e240 = i_6; metal::float4 _e242 = parts.inner[metal::min(unsigned(_e240), 3u)]; q_2 = _e239 + _e242.xyz; float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts.inner[metal::min(unsigned(_e246), 3u)].w; tau_1 = _e245 + _e249; } } } float _e254 = tau_1; float t_5 = metal::exp(-(_e254)); metal::float3 _e258 = q_2; float _e261 = tau_1; return (c_14 * t_5) + (_e258 * ((1.0 - t_5) / metal::max(_e261, 0.00001))); } metal::float3 fog_volumes( metal::float3 c_15, metal::float3 world_4, uint list_1, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_6 = (_e36 > 0.5) ? (world_4 - (back * (_e26 * metal::float4(world_4, 1.0)).z)) : _e22.xyz; float len = metal::length(world_4 - o_6); metal::float3 _e47 = fog_integrate(c_15, o_6, (world_4 - o_6) / metal::float3(metal::max(len, 0.000001)), len, list_1, Lit, Fog); return (len > 0.0) ? _e47 : c_15; } metal::float3 sky_fog_volumes( metal::float3 c_16, metal::float3 near_point, metal::float3 dir_5, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back_1 = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_7 = (_e36 > 0.5) ? (near_point - (back_1 * (_e26 * metal::float4(near_point, 1.0)).z)) : _e22.xyz; uint _e44 = Fog.counts.y; metal::float3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44, Lit, Fog); float _e49 = Fog.params.z; return metal::mix(c_16, _e45, _e49); } float shadow_factor( uint i_7, metal::float3 world_5, metal::float3 n_geo_1, metal::float3 l_2, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow ) { uint part = 0u; uint c_17 = 0u; bool local_14 = {}; bool local_15 = {}; bool local_16 = {}; float vis = 0.0; int dy = -1; int dx = {}; uint kind = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.x; metal::float4 _e14 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].position; metal::float3 light_pos = _e14.xyz; uint _e21 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.w; uint slot = metal::min(_e21, 15u); metal::float4 params = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].params; uint first = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.x; uint _e40 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.y; uint count = metal::max(_e40, 1u); metal::float4x4 _e45 = G.view; float view_depth = -((_e45 * metal::float4(world_5, 1.0)).z); if (kind == LIGHT_DIRECTIONAL) { float _e60 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade.y; if (view_depth > _e60) { return 1.0; } part = count - 1u; uint2 loop_bound_11 = uint2(4294967295u); bool loop_init_11 = true; while(true) { if (metal::all(loop_bound_11 == uint2(0u))) { break; } loop_bound_11 -= uint2(loop_bound_11.y == 0u, 1u); if (!loop_init_11) { uint _e79 = c_17; c_17 = _e79 + 1u; } loop_init_11 = false; uint _e67 = c_17; if (_e67 < count) { } else { break; } { uint _e73 = c_17; float _e75 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].splits[metal::min(unsigned(_e73), 3u)]; if (view_depth <= _e75) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; metal::float4 texel = Shadow.tiles.inner[metal::min(unsigned(metal::min(first + metal::min(_e83, count - 1u), 15u)), 15u)].texel; float t_6 = texel.x + (texel.y * metal::distance(world_5, light_pos)); metal::float3 p_9 = (world_5 + (n_geo_1 * ((params.y * metal::max(params.z, 1.0)) * t_6))) + (l_2 * (params.x * t_6)); if (kind == LIGHT_OMNI) { metal::float3 d_13 = p_9 - light_pos; metal::float3 a_7 = metal::abs(d_13); if (a_7.x >= a_7.y) { local_14 = a_7.x >= a_7.z; } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = (d_13.x >= 0.0) ? 0u : 1u; } else { if (a_7.y >= a_7.z) { part = (d_13.y >= 0.0) ? 2u : 3u; } else { part = (d_13.z >= 0.0) ? 4u : 5u; } } } uint _e145 = part; uint tile = metal::min(first + metal::min(_e145, count - 1u), 15u); metal::float4x4 _e156 = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].view_proj; metal::float4 clip_1 = _e156 * metal::float4(p_9, 1.0); if (clip_1.w <= 0.0) { return 1.0; } metal::float3 ndc = clip_1.xyz / metal::float3(clip_1.w); if (!((metal::abs(ndc.x) > 1.0))) { local_15 = metal::abs(ndc.y) > 1.0; } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = ndc.z > 1.0; } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } metal::float4 rect = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].rect; metal::float2 uv_5 = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); metal::float2 auv = rect.xy + (uv_5 * rect.zw); float texel_uv = Shadow.atlas.x; metal::float2 lo_5 = rect.xy + metal::float2(0.5 * texel_uv); metal::float2 hi_4 = (rect.xy + rect.zw) - metal::float2(0.5 * texel_uv); float r_7 = params.z; if (r_7 <= 0.0) { float _e235 = t_shadow.sample_compare(s_shadow, metal::clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { float spread = r_7 * texel_uv; uint2 loop_bound_12 = uint2(4294967295u); bool loop_init_12 = true; while(true) { if (metal::all(loop_bound_12 == uint2(0u))) { break; } loop_bound_12 -= uint2(loop_bound_12.y == 0u, 1u); if (!loop_init_12) { int _e265 = dy; dy = as_type(as_type(_e265) + as_type(1)); } loop_init_12 = false; int _e239 = dy; if (_e239 <= 1) { } else { break; } { dx = -1; uint2 loop_bound_13 = uint2(4294967295u); bool loop_init_13 = true; while(true) { if (metal::all(loop_bound_13 == uint2(0u))) { break; } loop_bound_13 -= uint2(loop_bound_13.y == 0u, 1u); if (!loop_init_13) { int _e262 = dx; dx = as_type(as_type(_e262) + as_type(1)); } loop_init_13 = false; int _e244 = dx; if (_e244 <= 1) { } else { break; } { int _e247 = dx; int _e249 = dy; metal::float2 tap = metal::clamp(auv + (metal::float2(static_cast(_e247), static_cast(_e249)) * spread), lo_5, hi_4); float _e255 = vis; float _e259 = t_shadow.sample_compare(s_shadow, tap, ndc.z); vis = _e255 + _e259; } } } } float _e267 = vis; vis = _e267 / 9.0; } if (kind == LIGHT_DIRECTIONAL) { metal::float4 fade_1 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade; float _e277 = vis; vis = metal::mix(_e277, 1.0, metal::smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return metal::mix(1.0, _e283, params.w); } metal::float3 probe_light( metal::float3 n_5, constant ObjectU& O ) { float _e5 = O.gi.inner[0].x; metal::float4 _e9 = O.gi.inner[0]; float _e17 = O.gi.inner[1].x; metal::float4 _e21 = O.gi.inner[1]; float _e29 = O.gi.inner[2].x; metal::float4 _e33 = O.gi.inner[2]; return metal::max(metal::float3(_e5 + metal::dot(_e9.yzw, n_5), _e17 + metal::dot(_e21.yzw, n_5), _e29 + metal::dot(_e33.yzw, n_5)), metal::float3(0.0)); } metal::float4 gi_diffuse( metal::float3 n_6, bool baked, metal::float3 baked_light, constant ObjectU& O ) { if (baked) { return metal::float4(baked_light, 1.0); } uint _e9 = O.extra.x; if (SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false) { metal::float3 _e16 = probe_light(n_6, O); return metal::float4(_e16, 1.0); } return metal::float4(0.0); } metal::float3 probe_face_uv( metal::float3 d_8 ) { float face = {}; float ma = {}; float sc = {}; float tc = {}; bool local_17 = {}; metal::float3 a_8 = metal::abs(d_8); if (a_8.x >= a_8.y) { local_17 = a_8.x >= a_8.z; } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if (d_8.x >= 0.0) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0.0) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0.0) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return metal::float3(_e56, ((_e57 / _e58) + 1.0) * 0.5, ((_e64 / _e65) + 1.0) * 0.5); } metal::float3 probe_texel( uint row, metal::float3 fuv, uint level_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { uint _e6 = Probe.counts.z; float n_12 = static_cast(metal::max(_e6 >> level_1, 1u)); float lo_6 = 0.5 / n_12; float u_2 = metal::clamp(fuv.y, lo_6, 1.0 - lo_6); float v_8 = metal::clamp(fuv.z, lo_6, 1.0 - lo_6); metal::float2 uv_6 = metal::float2((fuv.x + u_2) / 6.0, (static_cast(row) + v_8) / 8.0); metal::float4 _e33 = t_probes.sample(s_probes, uv_6, metal::level(static_cast(level_1))); return _e33.xyz; } metal::float3 probe_sample( uint row_1, metal::float3 d_9, float lod, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { bool local_18 = {}; uint _e6 = Probe.counts.y; uint levels = metal::max(_e6, 1u); float l_5 = metal::clamp(lod, 0.0, static_cast(levels - 1u)); uint m0_ = naga_f2u32(l_5); float t_7 = l_5 - static_cast(m0_); metal::float3 _e17 = probe_face_uv(d_9); metal::float3 _e18 = probe_texel(row_1, _e17, m0_, Probe, t_probes, s_probes); if (!((t_7 <= 0.0))) { local_18 = (m0_ + 1u) >= levels; } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } metal::float3 _e34 = probe_texel(row_1, _e17, m0_ + 1u, Probe, t_probes, s_probes); return (_e18 * (1.0 - t_7)) + (_e34 * t_7); } float probe_weight( ProbeEntryU p_5, metal::float3 world_6 ) { metal::float3 l_6 = (p_5.to_local * metal::float4(world_6, 1.0)).xyz; metal::float3 e_6 = p_5.extents.xyz; float d_14 = metal::min(e_6.x - metal::abs(l_6.x), metal::min(e_6.y - metal::abs(l_6.y), e_6.z - metal::abs(l_6.z))); if (d_14 < 0.0) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return metal::min(d_14 / p_5.extents.w, 1.0); } float probe_exit( float o_3, float d_10, float e_1 ) { if (d_10 > 0.0) { return (e_1 - o_3) / d_10; } if (d_10 < 0.0) { return (-(e_1) - o_3) / d_10; } return 300000000000000000000000000000000000000.0; } metal::float3 probe_lookup( ProbeEntryU p_6, metal::float3 world_7, metal::float3 dir_6 ) { metal::float3 d_15 = (p_6.to_local * metal::float4(dir_6, 0.0)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } metal::float3 o_8 = (p_6.to_local * metal::float4(world_7, 1.0)).xyz; metal::float3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_8 = metal::max(metal::min(_e24, metal::min(_e28, _e32)), 0.0); return (o_8 + (d_15 * t_8)) - p_6.offset.xyz; } metal::float4 probe_reflection( metal::float3 world_8, metal::float3 r_2, float roughness_2, uint probes, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc = metal::float3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = Probe.counts.x; uint count_1 = metal::min(_e12, MAX_PROBES); uint _e18 = Probe.counts.y; float lod_1 = roughness_2 * static_cast(metal::max(_e18, 1u) - 1u); uint2 loop_bound_14 = uint2(4294967295u); bool loop_init_14 = true; while(true) { if (metal::all(loop_bound_14 == uint2(0u))) { break; } loop_bound_14 -= uint2(loop_bound_14.y == 0u, 1u); if (!loop_init_14) { uint _e57 = i_8; i_8 = _e57 + 1u; } loop_init_14 = false; uint _e27 = i_8; if (_e27 < count_1) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = Probe.probes.inner[metal::min(unsigned(_e31), 7u)]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } float _e41 = probe_weight(p_10, world_8); if (_e41 <= 0.0) { continue; } metal::float3 _e44 = acc; metal::float3 _e47 = probe_lookup(p_10, world_8, r_2); metal::float3 _e48 = probe_sample(p_10.info.w, _e47, lod_1, Probe, t_probes, s_probes); acc = _e44 + ((_e48 * p_10.offset.w) * _e41); float _e54 = w_sum; w_sum = _e54 + _e41; } } float _e59 = w_sum; if (_e59 > 1.0) { metal::float3 _e62 = acc; float _e63 = w_sum; acc = _e62 / metal::float3(_e63); w_sum = 1.0; } metal::float3 _e67 = acc; float _e68 = w_sum; return metal::float4(_e67, _e68); } metal::float4 probe_ambient( metal::float3 world_9, metal::float3 n_7, uint probes_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc_1 = metal::float3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = {}; metal::float3 c_18 = {}; uint _e11 = Probe.counts.x; uint count_2 = metal::min(_e11, MAX_PROBES); uint _e17 = Probe.counts.y; uint last = metal::max(_e17, 1u) - 1u; uint2 loop_bound_15 = uint2(4294967295u); bool loop_init_15 = true; while(true) { if (metal::all(loop_bound_15 == uint2(0u))) { break; } loop_bound_15 -= uint2(loop_bound_15.y == 0u, 1u); if (!loop_init_15) { uint _e73 = i_9; i_9 = _e73 + 1u; } loop_init_15 = false; uint _e24 = i_9; if (_e24 < count_2) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = Probe.probes.inner[metal::min(unsigned(_e28), 7u)]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = p_11.info.y == PROBE_AMBIENT_DISABLED; } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if (_e47 <= 0.0) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { metal::float3 _e64 = probe_face_uv((p_11.to_local * metal::float4(n_7, 0.0)).xyz); metal::float3 _e65 = probe_texel(p_11.info.w, _e64, last, Probe, t_probes, s_probes); c_18 = _e65; } metal::float3 _e66 = acc_1; metal::float3 _e67 = c_18; acc_1 = _e66 + (_e67 * _e47); float _e70 = w_sum_1; w_sum_1 = _e70 + _e47; } } float _e75 = w_sum_1; if (_e75 > 1.0) { metal::float3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = _e78 / metal::float3(_e79); w_sum_1 = 1.0; } metal::float3 _e83 = acc_1; float _e84 = w_sum_1; return metal::float4(_e83, _e84); } metal::float4 skin_row( uint k_10, uint r_3, constant SkinU& Skin ) { metal::float4 _e10 = Skin.rows.inner[metal::min(unsigned((metal::min(k_10, 254u) * 3u) + r_3), 764u)]; return _e10; } SkinRows skin_rows( SkinIn s_1, constant SkinU& Skin ) { SkinRows m_1 = {}; metal::uint4 j_1 = s_1.joints; metal::float4 w_5 = s_1.weights; metal::float4 _e8 = skin_row(s_1.joints.x, 0u, Skin); metal::float4 _e13 = skin_row(s_1.joints.y, 0u, Skin); metal::float4 _e19 = skin_row(s_1.joints.z, 0u, Skin); metal::float4 _e25 = skin_row(s_1.joints.w, 0u, Skin); m_1.r0_ = (((s_1.weights.x * _e8) + (s_1.weights.y * _e13)) + (s_1.weights.z * _e19)) + (s_1.weights.w * _e25); metal::float4 _e32 = skin_row(s_1.joints.x, 1u, Skin); metal::float4 _e37 = skin_row(s_1.joints.y, 1u, Skin); metal::float4 _e43 = skin_row(s_1.joints.z, 1u, Skin); metal::float4 _e49 = skin_row(s_1.joints.w, 1u, Skin); m_1.r1_ = (((s_1.weights.x * _e32) + (s_1.weights.y * _e37)) + (s_1.weights.z * _e43)) + (s_1.weights.w * _e49); metal::float4 _e56 = skin_row(s_1.joints.x, 2u, Skin); metal::float4 _e61 = skin_row(s_1.joints.y, 2u, Skin); metal::float4 _e67 = skin_row(s_1.joints.z, 2u, Skin); metal::float4 _e73 = skin_row(s_1.joints.w, 2u, Skin); m_1.r2_ = (((s_1.weights.x * _e56) + (s_1.weights.y * _e61)) + (s_1.weights.z * _e67)) + (s_1.weights.w * _e73); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings( thread CustomOut& o_4, thread metal::float4& affine_uv, thread metal::float3& gouraud ) { metal::float4 _e3 = affine_uv; o_4.hedra_v0_ = static_cast(_e3); metal::float3 _e7 = gouraud; o_4.hedra_v1_ = metal::float4(_e7, 0.0); return; } void hedra_load_varyings( CustomOut i_10, thread metal::float4& affine_uv, thread metal::float3& gouraud ) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light( ) { return; } metal::float3 scene_to_frame( metal::float3 v_3 ) { return metal::float3(v_3.x, -(v_3.z), v_3.y); } metal::float4 snap_view( metal::float4 view_pos, constant Globals& G, thread metal::float4x4& INV_PROJECTION_MATRIX, constant HedraParams& hedra_p ) { float _e4 = hedra_p.snap_resolution.x; if (_e4 <= 0.0) { return view_pos; } metal::float4x4 _e9 = G.proj; metal::float4 clip_2 = _e9 * view_pos; if (clip_2.w <= 0.0001) { return view_pos; } metal::float2 _e16 = hedra_p.snap_resolution; metal::float2 half_res = _e16 * 0.5; metal::float2 ndc_1 = clip_2.xy / metal::float2(clip_2.w); metal::float2 snapped = metal::rint(ndc_1 * half_res) / half_res; metal::float4x4 _e27 = INV_PROJECTION_MATRIX; metal::float4 back_2 = _e27 * metal::float4(snapped * clip_2.w, clip_2.z, clip_2.w); return metal::float4(back_2.xyz / metal::float3(back_2.w), 1.0); } void vertex_( constant Globals& G, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float2& UV, thread metal::float4& COLOR, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, constant HedraParams& hedra_p, thread metal::float4& affine_uv, thread metal::float3& gouraud ) { float diffuse_1 = {}; metal::float3x3 _e1 = MODEL_NORMAL_MATRIX; metal::float3 _e3 = NORMAL; metal::float3 n_13 = metal::normalize(_e1 * _e3); metal::float3 _e8 = hedra_p.sun_direction; metal::float3 _e9 = scene_to_frame(_e8); metal::float3 sun_1 = metal::normalize(_e9); diffuse_1 = metal::max(metal::dot(n_13, sun_1), 0.0); float _e17 = hedra_p.light_bands; if (_e17 >= 2.0) { float _e20 = diffuse_1; float _e23 = hedra_p.light_bands; float _e30 = hedra_p.light_bands; diffuse_1 = metal::floor((_e20 * _e23) + 0.5) / _e30; } metal::float3 _e34 = hedra_p.ground_ambient; metal::float3 _e37 = hedra_p.sky_ambient; metal::float3 ambient_2 = metal::mix(_e34, _e37, (n_13.z * 0.5) + 0.5); metal::float3 _e47 = hedra_p.sun_color; float _e48 = diffuse_1; metal::float4 _e52 = COLOR; float _e57 = hedra_p.overbright; metal::float3 _e61 = hedra_p.emission; gouraud = (((ambient_2 + (_e47 * _e48)) * _e52.xyz) * _e57) + _e61; metal::float4x4 _e64 = MODELVIEW_MATRIX; metal::float3 _e66 = VERTEX; metal::float4 _e70 = snap_view(_e64 * metal::float4(_e66, 1.0), G, INV_PROJECTION_MATRIX, hedra_p); VERTEX = _e70.xyz; metal::float3x3 _e75 = MODELVIEW_NORMAL_MATRIX; metal::float3 _e77 = NORMAL; NORMAL = metal::normalize(_e75 * _e77); metal::float2 _e81 = UV; metal::float2 _e84 = hedra_p.uv_scale; metal::float2 _e88 = hedra_p.uv_offset; metal::float2 _e92 = hedra_p.uv_scroll; float _e96 = G.fparams.w; metal::float2 uv_7 = ((_e81 * _e84) + _e88) + (_e92 * _e96); UV = uv_7; metal::float4x4 _e102 = G.proj; float w_6 = (_e102 * _e70).w; float _e107 = hedra_p.affine_strength; float _e112 = hedra_p.affine_near; float weight = _e107 * metal::clamp((w_6 - 0.25) / metal::max(_e112, 0.001), 0.0, 1.0); affine_uv = metal::float4(uv_7 * w_6, w_6, weight); return; } metal::uint2 naga_f2u32(metal::float2 value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::uint2 naga_mod(metal::uint2 lhs, metal::uint2 rhs) { return lhs % metal::select(rhs, 1u, rhs == 0u); } void fragment_( thread metal::float2& UV, thread metal::float4& FRAGCOORD, thread metal::float3& ALBEDO, constant HedraParams& hedra_p, metal::texture2d albedo_texture, metal::sampler SAMPLER_NEAREST_REPEAT, thread metal::float4& affine_uv, thread metal::float3& gouraud ) { type_33 order = type_33 {{0.0, 2.0, 3.0, 1.0}}; float _e2 = hedra_p.screen_door; if (_e2 > 0.0) { metal::float4 _e12 = FRAGCOORD; metal::uint2 cell = naga_mod(naga_f2u32(_e12.xy), metal::uint2(2u, 2u)); float _e25 = order.inner[metal::min(unsigned((cell.y * 2u) + cell.x), 3u)]; float _e28 = hedra_p.screen_door; if (_e25 < ((_e28 * 4.0) - 0.001)) { metal::discard_fragment(); } } metal::float4 _e35 = affine_uv; float _e39 = affine_uv.z; metal::float2 affine = _e35.xy / metal::float2(metal::max(_e39, 0.0001)); metal::float2 _e45 = UV; float _e48 = affine_uv.w; metal::float2 uv_8 = metal::mix(_e45, affine, metal::clamp(_e48, 0.0, 1.0)); metal::float4 texel_1 = albedo_texture.sample(SAMPLER_NEAREST_REPEAT, uv_8); metal::float4 _e60 = hedra_p.albedo; metal::float3 _e64 = gouraud; ALBEDO = (texel_1.xyz * _e60.xyz) * _e64; return; } metal::float3x3 hedra_mat3_( metal::float4x4 m_2 ) { return metal::float3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } metal::float4x4 hedra_rigid_inverse( metal::float4x4 m_3 ) { metal::float3x3 _e1 = hedra_mat3_(m_3); metal::float3x3 r_8 = metal::transpose(_e1); metal::float3 t_9 = -((r_8 * m_3[3].xyz)); return metal::float4x4(metal::float4(r_8[0], 0.0), metal::float4(r_8[1], 0.0), metal::float4(r_8[2], 0.0), metal::float4(t_9, 1.0)); } metal::float4x4 hedra_inv_projection( constant Globals& G ) { metal::float4 _e2 = G.wire_color; metal::float4 _e5 = G.select_color; metal::float4 _e8 = G.active_color; metal::float4 _e11 = G.grid; return metal::float4x4(_e2, _e5, _e8, _e11); } metal::float2 hedra_godot_uv( metal::float2 uv_1 ) { return metal::float2(uv_1.x, 1.0 - uv_1.y); } bool hedra_transparent( ) { bool local_20 = {}; bool local_21 = {}; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored( uint flags_1, constant ObjectU& O ) { uint _e4 = O.extra.x; return ((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u); } void hedra_matrices( metal::float4x4 model, metal::float3x3 normal, constant Globals& G, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD ) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; metal::float4x4 _e7 = G.view; metal::float4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; metal::float4x4 _e10 = hedra_inv_projection(G); INV_PROJECTION_MATRIX = _e10; metal::float4x4 _e14 = G.view; MODELVIEW_MATRIX = _e14 * model; metal::float4x4 _e19 = G.view; metal::float3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = _e20 * normal; NODE_POSITION_WORLD = model[3].xyz; metal::float4x4 _e28 = G.view; NODE_POSITION_VIEW = (_e28 * metal::float4(model[3].xyz, 1.0)).xyz; metal::float4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex( metal::float3 pos, metal::float3 normal_1, metal::float4 tangent, metal::float2 uv_2, metal::float2 uv2_, metal::float4 color, uint vid_3, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& VERTEX_ID, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX ) { bool local_22 = {}; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = metal::cross(normal_1, tangent.xyz) * tangent.w; metal::float2 _e17 = hedra_godot_uv(uv_2); UV = _e17; metal::float2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = static_cast(vid_3); POSITION = metal::float4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_22 = false; } else { local_22 = false; } bool _e31 = local_22; if (_e31) { metal::float4x4 _e34 = MODEL_MATRIX; metal::float3 _e36 = VERTEX; VERTEX = (_e34 * metal::float4(_e36, 1.0)).xyz; metal::float3x3 _e43 = MODEL_NORMAL_MATRIX; metal::float3 _e45 = NORMAL; NORMAL = _e43 * _e45; metal::float3x3 _e49 = MODEL_NORMAL_MATRIX; metal::float3 _e51 = TANGENT; TANGENT = _e49 * _e51; metal::float3x3 _e55 = MODEL_NORMAL_MATRIX; metal::float3 _e57 = BINORMAL; BINORMAL = _e55 * _e57; return; } else { return; } } CustomOut hedra_end_vertex( metal::float4 world_10, metal::float3 n_8, metal::float3 t, float tw, uint flags_2, constant Globals& G, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& INSTANCE_ID, thread metal::float4& affine_uv, thread metal::float3& gouraud ) { CustomOut out_2 = {}; metal::float4x4 _e9 = G.view_proj; out_2.clip = _e9 * world_10; if (HEDRA_USES_POSITION) { metal::float4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = metal::normalize(n_8); metal::float2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = metal::float4(metal::normalize(t), tw); metal::float4 _e28 = COLOR; out_2.color = _e28; metal::float2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = static_cast(metal::max(_e34, 0)); hedra_store_varyings(out_2, affine_uv, gouraud); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space( ) { bool local_23 = {}; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } metal::float4 hedra_vertex_world( thread metal::float3& VERTEX, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e2 = INV_VIEW_MATRIX; metal::float3 _e4 = VERTEX; return _e2 * metal::float4(_e4, 1.0); } metal::float3 _e9 = VERTEX; return metal::float4(_e9, 1.0); } metal::float3 hedra_vertex_dir( metal::float3 d_11, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e3 = INV_VIEW_MATRIX; metal::float3x3 _e4 = hedra_mat3_(_e3); return _e4 * d_11; } return d_11; } float hedra_tangent_sign( float w, bool flip, constant ObjectU& O ) { uint _e5 = O.extra.x; return w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); } void hedra_fragment( CustomOut in_7, bool facing_4, constant Globals& G, constant ObjectU& O, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD, thread metal::float3& LIGHT_VERTEX, thread metal::float4& FRAGCOORD, thread bool& FRONT_FACING, thread metal::float3& VIEW, thread metal::float3& NORMAL_MAP, thread float& NORMAL_MAP_DEPTH, thread metal::float3& ALBEDO, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread float& PREMUL_ALPHA_FACTOR, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread metal::float2& SCREEN_UV, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n, thread bool& hedra_front, constant HedraParams& hedra_p, metal::texture2d albedo_texture, metal::sampler SAMPLER_NEAREST_REPEAT, thread metal::float4& affine_uv, thread metal::float3& gouraud ) { metal::float3 t_1 = {}; metal::float3 nm = {}; bool _e3 = hedra_mirrored(in_7.flags, O); bool front = facing_4 != _e3; hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; metal::float4 _e14 = G.viewport; SCREEN_UV = in_7.clip.xy * _e14.zw; metal::float4x4 _e19 = O.model; metal::float4x4 _e22 = O.normal; metal::float3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); metal::float4x4 _e26 = G.view; metal::float3x3 _e27 = hedra_mat3_(_e26); metal::float3 n_geo_2 = front ? metal::normalize(in_7.normal) : -(metal::normalize(in_7.normal)); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; metal::float3 _e41 = t_1; metal::float3 _e42 = t_1; t_1 = metal::normalize(_e41 - (n_geo_2 * metal::dot(n_geo_2, _e42))); metal::float3 _e47 = t_1; metal::float3 b_4 = metal::cross(n_geo_2, _e47) * in_7.tangent.w; metal::float4x4 _e55 = G.view; VERTEX = (_e55 * metal::float4(in_7.world, 1.0)).xyz; metal::float3 _e63 = VERTEX; LIGHT_VERTEX = _e63; metal::float3 vertex0_ = VERTEX; NORMAL = metal::normalize(_e27 * n_geo_2); metal::float3 normal0_ = NORMAL; metal::float3 _e72 = t_1; TANGENT = metal::normalize(_e27 * _e72); BINORMAL = metal::normalize(_e27 * b_4); metal::float3 _e80 = VERTEX; float _e90 = G.camera_pos.w; VIEW = (_e90 > 0.5) ? metal::float3(0.0, 0.0, 1.0) : metal::normalize(-(_e80)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = metal::float3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = metal::float3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = metal::float3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = metal::float3(0.0); hedra_load_varyings(in_7, affine_uv, gouraud); fragment_(UV, FRAGCOORD, ALBEDO, hedra_p, albedo_texture, SAMPLER_NEAREST_REPEAT, affine_uv, gouraud); metal::float3x3 back_3 = metal::transpose(_e27); metal::float3 _e136 = NORMAL; if (metal::any(_e136 != normal0_)) { metal::float3 _e141 = NORMAL; hedra_n = metal::normalize(back_3 * _e141); } metal::float3 _e145 = NORMAL_MAP; if (metal::any(_e145 != metal::float3(0.5))) { metal::float3 _e151 = NORMAL_MAP; nm = _e151; metal::float3 _e153 = nm; nm = metal::float3((_e153.xy * 2.0) - metal::float2(1.0), 0.0); metal::float3 _e163 = nm; metal::float3 _e165 = nm; nm.z = metal::sqrt(metal::max(0.0, 1.0 - metal::dot(_e163.xy, _e165.xy))); metal::float3 _e175 = NORMAL; metal::float3 _e177 = TANGENT; float _e179 = nm.x; metal::float3 _e182 = BINORMAL; float _e184 = nm.y; metal::float3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = metal::normalize(metal::mix(_e175, ((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190), _e194)); metal::float3 _e199 = NORMAL; hedra_n = metal::normalize(back_3 * _e199); } metal::float3 _e203 = LIGHT_VERTEX; if (metal::any(_e203 != vertex0_)) { metal::float4x4 _e208 = INV_VIEW_MATRIX; metal::float3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * metal::float4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled( uint flags_3, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread bool& hedra_front ) { bool local_24 = {}; bool local_25 = {}; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if (false) { bool _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } bool _e12 = local_24; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = _e18 < _e20; } else { local_25 = false; } bool _e23 = local_25; return _e23; } metal::float3 hedra_view_dir( metal::float3 world_11, constant Globals& G ) { float _e5 = G.view[0].z; float _e10 = G.view[1].z; float _e15 = G.view[2].z; metal::float3 view_dir = metal::float3(_e5, _e10, _e15); metal::float4 _e19 = G.camera_pos; float _e27 = G.camera_pos.w; return (_e27 > 0.5) ? metal::normalize(view_dir) : metal::normalize(_e19.xyz - world_11); } float hedra_schlick( float u ) { float m_5 = metal::clamp(1.0 - u, 0.0, 1.0); float m2_ = m_5 * m_5; return (m2_ * m2_) * m_5; } float hedra_diffuse_brdf( float nl_1, float nv_2, float lh, float r_4 ) { float c_nl = metal::max(nl_1, 0.0); if (false) { return metal::max(0.0, (nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4))) * 0.31830987; } if (false) { return metal::smoothstep(-(r_4), metal::max(r_4, 0.01), nl_1) * 0.31830987; } if (false) { float fd90_ = (((2.0 * lh) * lh) * r_4) - 0.5; float _e32 = hedra_schlick(nv_2); float fdv = 1.0 + (fd90_ * _e32); float _e36 = hedra_schlick(c_nl); float fdl = 1.0 + (fd90_ * _e36); return ((0.31830987 * fdv) * fdl) * c_nl; } return c_nl * 0.31830987; } metal::float3 hedra_light_modes( metal::float3 n_9, metal::float3 v_4, metal::float3 l_3, metal::float3 radiance_2, metal::float3 diffuse_2, metal::float3 f0_2, float a2_3, float r_5, float specular_1 ) { metal::float3 c_19 = {}; float mid = {}; bool local_26 = {}; float nl_3 = metal::min(metal::dot(n_9, l_3), 1.0); float nv_4 = metal::max(metal::dot(n_9, v_4), 0.0001); metal::float3 h_3 = metal::normalize(l_3 + v_4); float lh_1 = metal::clamp(metal::dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = (diffuse_2 * _e21) * radiance_2; if (r_5 > 0.0) { if (false) { metal::float3 refl = metal::normalize(-(metal::reflect(l_3, n_9))); float rv = metal::dot(refl, v_4); mid = 1.0 - r_5; float _e35 = mid; float _e36 = mid; mid = _e35 * _e36; metal::float3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = _e38 + ((diffuse_2 * radiance_2) * ((metal::smoothstep(_e40 - (r_5 * 0.5), _e44 + (r_5 * 0.5), rv) * _e49) * specular_1)); } else { if (false) { local_26 = nl_3 > 0.0; } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = metal::max(metal::dot(n_9, h_3), 0.0); float vh_2 = metal::max(metal::dot(v_4, h_3), 0.0); metal::float3 _e67 = f_schlick(f0_2, vh_2); metal::float3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = _e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2); } } } metal::float3 _e77 = c_19; return _e77; } metal::float4 hedra_light_dir( uint i_11, metal::float3 world_12, constant LitU& Lit ) { float atten_1 = {}; LightU li_1 = Lit.lights.inner[metal::min(unsigned(i_11), 63u)]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return metal::float4(-(li_1.direction.xyz), 1.0); } metal::float3 rel_1 = li_1.position.xyz - world_12; float d_16 = metal::length(rel_1); metal::float3 l_7 = rel_1 / metal::float3(metal::max(d_16, 0.000001)); float _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { float cone = li_1.spot.x; float scos = metal::max(metal::dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = metal::max(0.0001, (1.0 - scos) / metal::max(1.0 - cone, 0.000001)); float _e49 = atten_1; atten_1 = _e49 * (1.0 - metal::pow(rim_1, li_1.spot.y)); } float _e56 = atten_1; return metal::float4(l_7, _e56); } float hedra_shadow( uint i_12, metal::float3 l_4, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo ) { bool local_27 = {}; if (false) { uint _e10 = Lit.lights.inner[metal::min(unsigned(i_12), 63u)].info.y; local_27 = _e10 != LIGHT_SHADOWED; } else { local_27 = true; } bool _e14 = local_27; if (_e14) { return 1.0; } metal::float3 _e17 = hedra_world; metal::float3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4, G, Lit, Shadow, t_shadow, s_shadow); return _e20; } metal::float3 hedra_ambient( metal::float3 n_10, metal::float3 v_5, metal::float3 diffuse_3, metal::float3 f0_3, float roughness_3, float metallic, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, thread metal::float3& hedra_world ) { metal::float3 ambient = {}; metal::float3 diffuse_amb = {}; metal::float3 spec_amb = {}; metal::float3 dif = {}; metal::float3 dif_1 = {}; metal::float3 dif_2 = {}; metal::float3 world_13 = hedra_world; float nv_5 = metal::max(metal::dot(n_10, v_5), 0.0001); metal::float3 f_amb = f0_3 + ((metal::max(metal::float3(1.0 - roughness_3), f0_3) - f0_3) * metal::pow(1.0 - nv_5, 5.0)); metal::float4 _e25 = gi_diffuse(n_10, false, metal::float3(0.0), O); uint _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { float _e38 = Sky.ibl.x; float _e42 = Sky.sun.w; float scale = _e38 * _e42; metal::float4 _e46 = Sky.ambient; diffuse_amb = _e46.xyz; uint _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { metal::float4 _e59 = Sky.ambient; metal::float3 _e61 = sky_dir(n_10, Sky); metal::float3 _e62 = sh_irradiance(_e61, Sky); float _e67 = Sky.ambient.w; diffuse_amb = metal::mix(_e59.xyz, _e62 * scale, _e67); } if (_e25.w > 0.0) { diffuse_amb = _e25.xyz; } metal::float4 _e75 = Sky.ambient; spec_amb = _e75.xyz; uint _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { metal::float3 _e88 = sky_dir(metal::reflect(-(v_5), n_10), Sky); metal::float3 _e89 = radiance_1(_e88, roughness_3, Sky, t_radiance, s_radiance); spec_amb = _e89 * scale; } else { uint _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = metal::float3(0.0); } } metal::float2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = Probe.counts.x; if (_e105 > 0u) { uint _e113 = O.extra.z; metal::float4 _e114 = probe_reflection(world_13, metal::reflect(-(v_5), n_10), roughness_3, _e113, Probe, t_probes, s_probes); metal::float3 _e115 = spec_amb; metal::float3 spec_1 = (_e115 * (1.0 - _e114.w)) + _e114.xyz; metal::float3 _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0.0) { uint _e130 = O.extra.z; metal::float4 _e131 = probe_ambient(world_13, n_10, _e130, Probe, t_probes, s_probes); metal::float3 _e132 = diffuse_amb; dif = (_e132 * (1.0 - _e131.w)) + _e131.xyz; } metal::float3 _e139 = dif; ambient = (diffuse_3 * _e139) + (spec_1 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } else { metal::float3 _e154 = diffuse_amb; metal::float3 _e156 = spec_amb; ambient = (diffuse_3 * _e154) + (_e156 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } } else { uint _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { metal::float4 _e180 = Lit.up; metal::float3 up = _e180.xyz; metal::float4 _e184 = Lit.sky_top; metal::float4 _e188 = Lit.sky_horizon; metal::float3 sky_avg = (_e184.xyz + _e188.xyz) * 0.5; metal::float4 _e195 = Lit.ground_horizon; metal::float4 _e199 = Lit.ground_bottom; metal::float3 ground_avg = (_e195.xyz + _e199.xyz) * 0.5; metal::float3 irradiance = metal::mix(ground_avg, sky_avg, metal::clamp((metal::dot(n_10, up) * 0.5) + 0.5, 0.0, 1.0)); metal::float3 _e215 = sky(metal::reflect(-(v_5), n_10), Lit); metal::float3 blurred = metal::mix(_e215, sky_avg, roughness_3); uint _e220 = Probe.counts.x; if (_e220 > 0u) { uint _e228 = O.extra.z; metal::float4 _e229 = probe_reflection(world_13, metal::reflect(-(v_5), n_10), roughness_3, _e228, Probe, t_probes, s_probes); float _e233 = Lit.ambient.w; metal::float3 spec_2 = ((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz; dif_1 = _e25.xyz; if (_e25.w <= 0.0) { uint _e249 = O.extra.z; metal::float4 _e250 = probe_ambient(world_13, n_10, _e249, Probe, t_probes, s_probes); float _e254 = Lit.ambient.w; dif_1 = ((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz; } metal::float3 _e262 = dif_1; ambient = (diffuse_3 * _e262) + (spec_2 * f_amb); } else { if (_e25.w > 0.0) { float _e275 = Lit.ambient.w; ambient = (diffuse_3 * _e25.xyz) + ((blurred * f_amb) * _e275); } else { float _e284 = Lit.ambient.w; ambient = ((diffuse_3 * irradiance) + (blurred * f_amb)) * _e284; } } } else { uint _e289 = Probe.counts.x; if (_e289 > 0u) { uint _e297 = O.extra.z; metal::float4 _e298 = probe_reflection(world_13, metal::reflect(-(v_5), n_10), roughness_3, _e297, Probe, t_probes, s_probes); metal::float4 _e301 = Lit.ambient; metal::float3 spec_3 = (_e301.xyz * (1.0 - _e298.w)) + _e298.xyz; dif_2 = _e25.xyz; if (_e25.w <= 0.0) { uint _e317 = O.extra.z; metal::float4 _e318 = probe_ambient(world_13, n_10, _e317, Probe, t_probes, s_probes); metal::float4 _e321 = Lit.ambient; dif_2 = (_e321.xyz * (1.0 - _e318.w)) + _e318.xyz; } metal::float3 _e329 = dif_2; ambient = (diffuse_3 * _e329) + (spec_3 * f_amb); } else { if (_e25.w > 0.0) { metal::float4 _e340 = Lit.ambient; ambient = (diffuse_3 * _e25.xyz) + (_e340.xyz * f_amb); } else { metal::float4 _e346 = Lit.ambient; ambient = _e346.xyz * (diffuse_3 + f_amb); } } } } metal::float3 _e350 = ambient; return _e350; } metal::float3 hedra_fog( metal::float3 c_in_1, metal::float3 v_6, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant FogU& Fog, thread metal::float3& hedra_world ) { metal::float3 c_20 = {}; c_20 = c_in_1; if (HEDRA_FOG_DISABLED) { metal::float3 _e4 = c_20; return _e4; } uint _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { metal::float3 _e13 = c_20; metal::float3 _e15 = hedra_world; metal::float3 _e17 = surface_fog(_e13, _e15, -(v_6), G, Lit, Sky, t_radiance, s_radiance); c_20 = _e17; } uint _e21 = O.decals.w; if (_e21 != 0u) { metal::float3 _e24 = c_20; metal::float3 _e26 = hedra_world; uint _e30 = O.decals.w; metal::float3 _e31 = fog_volumes(_e24, _e26, _e30, G, Lit, Fog); c_20 = _e31; } metal::float3 _e32 = c_20; return _e32; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } metal::float3 hedra_lit( metal::float4 clip, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals, constant FogU& Fog, thread metal::float3& NORMAL, thread metal::float3& ALBEDO, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread float& SPECULAR_AMOUNT, thread metal::float3& LIGHT, thread metal::float3& LIGHT_COLOR, thread bool& LIGHT_IS_DIRECTIONAL, thread float& ATTENUATION, thread metal::float3& DIFFUSE_LIGHT, thread metal::float3& SPECULAR_LIGHT, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n ) { DecalSurface surf_1 = {}; metal::float3 c_21 = metal::float3(0.0); uint k_11 = 0u; bool local_28 = {}; metal::float3 radiance_3 = {}; bool local_29 = {}; bool local_30 = {}; metal::float3 ambient_1 = metal::float3(0.0); bool local_31 = {}; metal::float3 n_geo_3 = hedra_n_geo; metal::float3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; metal::float3 _e18 = hedra_n; metal::float3 _e20 = EMISSION; surf_1 = DecalSurface {_e4, metal::clamp(_e6, 0.0, 1.0), metal::clamp(_e11, 0.045, 1.0), _e16, {}, _e18, _e20}; uint _e26 = O.decals.z; if (_e26 > 0u) { metal::float3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31, G, O, Decal, t_decals, s_decals); surf_1 = _e32; metal::float3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; metal::float4x4 _e45 = G.view; metal::float3x3 _e46 = hedra_mat3_(_e45); metal::float3 _e48 = surf_1.normal; NORMAL = metal::normalize(_e46 * _e48); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = ((roughness_4 * roughness_4) * roughness_4) * roughness_4; metal::float3 base = surf_1.base; metal::float3 diffuse_4 = base * (1.0 - metallic_1); float _e64 = SPECULAR; float _e68 = SPECULAR; metal::float3 f0_4 = metal::mix(metal::float3((0.16 * _e64) * _e68), base, metallic_1); metal::float3 n_14 = surf_1.normal; metal::float3 _e75 = hedra_world; metal::float3 _e76 = hedra_view_dir(_e75, G); metal::float4x4 _e79 = G.view; metal::float3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = metal::mix(1.0, _e82, _e84); DIFFUSE_LIGHT = metal::float3(0.0); SPECULAR_LIGHT = metal::float3(0.0); uint _e96 = object_light_count(O); uint2 loop_bound_16 = uint2(4294967295u); bool loop_init_16 = true; while(true) { if (metal::all(loop_bound_16 == uint2(0u))) { break; } loop_bound_16 -= uint2(loop_bound_16.y == 0u, 1u); if (!loop_init_16) { uint _e238 = k_11; k_11 = _e238 + 1u; } loop_init_16 = false; uint _e99 = k_11; if (_e99 < _e96) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101, O); LightU li_2 = Lit.lights.inner[metal::min(unsigned(_e102), 63u)]; metal::float3 _e108 = hedra_world; metal::float4 _e109 = hedra_light_dir(_e102, _e108, Lit); metal::float3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_28 = atten_2 > 0.0; } else { local_28 = true; } bool _e123 = local_28; if (_e123) { LIGHT = metal::normalize(_e80 * l_8); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8, G, Lit, Shadow, t_shadow, s_shadow, hedra_world, hedra_n_geo); ATTENUATION = atten_2 * _e131; LIGHT_IS_DIRECTIONAL = li_2.info.x == LIGHT_DIRECTIONAL; SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if (_e142 > 0.0) { float rim_light = metal::pow(metal::max(0.0001, 1.0 - metal::max(metal::dot(n_14, _e76), 0.0001)), metal::max(0.0, (1.0 - roughness_4) * 16.0)); metal::float3 _e159 = c_21; float _e164 = RIM; float _e170 = RIM_TINT; c_21 = _e159 + (((diffuse_4 * li_2.color.xyz) * (rim_light * _e164)) * metal::mix(metal::float3(1.0), base, _e170)); } if (atten_2 > 0.0) { radiance_3 = li_2.color.xyz * atten_2; if (li_2.info.y == LIGHT_SHADOWED) { local_29 = false; } else { local_29 = false; } bool _e188 = local_29; if (_e188) { metal::float3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8, G, Lit, Shadow, t_shadow, s_shadow); radiance_3 = li_2.color.xyz * (atten_2 * _e193); } if (true) { local_30 = false; } else { local_30 = false; } bool _e201 = local_30; if (_e201) { metal::float3 _e202 = c_21; metal::float3 _e203 = radiance_3; metal::float3 _e206 = light_specular(n_14, _e76, l_8, _e203, diffuse_4, f0_4, a2_4, li_2.spot.z); c_21 = _e202 + _e206; } else { metal::float3 _e208 = c_21; metal::float3 _e209 = radiance_3; metal::float3 _e212 = hedra_light_modes(n_14, _e76, l_8, _e209, diffuse_4, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = _e208 + _e212; } metal::float3 _e215 = BACKLIGHT; if (metal::any(_e215 > metal::float3(0.0))) { float nl_4 = metal::max(metal::min(metal::dot(n_14, l_8), 1.0), 0.0); metal::float3 _e225 = c_21; metal::float3 _e226 = radiance_3; metal::float3 _e229 = BACKLIGHT; c_21 = _e225 + (((diffuse_4 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987))); } } } } if (HEDRA_HAS_LIGHT) { metal::float3 _e242 = DIFFUSE_LIGHT; metal::float3 _e249 = SPECULAR_LIGHT; c_21 = (((_e242 * base) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct); } else { float _e253 = AO_LIGHT_AFFECT; if (_e253 > 0.0) { metal::float3 _e256 = c_21; c_21 = _e256 * ao_direct; } } if (true) { metal::float3 _e262 = hedra_ambient(n_14, _e76, diffuse_4, f0_4, roughness_4, metallic_1, O, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes, hedra_world); ambient_1 = _e262; } uint _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { bool _e273 = hedra_transparent(); local_31 = !(_e273); } else { local_31 = false; } bool _e276 = local_31; if (_e276) { uint clamped_lod_e282 = metal::min(uint(0), t_ao.get_num_mip_levels() - 1); metal::float4 _e282 = t_ao.read(metal::min(metal::uint2(naga_f2i32(metal::floor(clip.xy))), metal::uint2(t_ao.get_width(clamped_lod_e282), t_ao.get_height(clamped_lod_e282)) - 1), clamped_lod_e282); float ssao = _e282.x; metal::float3 _e284 = c_21; float _e286 = surf_1.occlusion; float _e291 = Lit.tone.z; float _e295 = Lit.tone.w; c_21 = _e284 * metal::mix(1.0, metal::min(ssao, _e286), _e291 * _e295); metal::float3 _e300 = c_21; metal::float3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_21 = _e300 + (_e301 * metal::min(_e303, ssao)); } else { metal::float3 _e307 = c_21; metal::float3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_21 = _e307 + (_e308 * _e310); } metal::float3 _e313 = c_21; metal::float3 _e315 = surf_1.emission; c_21 = _e313 + _e315; metal::float3 _e317 = c_21; metal::float3 _e318 = hedra_fog(_e317, _e76, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e319 = tonemap(_e318, Lit); return _e319; } metal::float4 hedra_output( metal::float3 c_22, constant Globals& G, constant LitU& Lit, thread float& ALPHA, thread float& PREMUL_ALPHA_FACTOR ) { metal::float3 rgb = {}; rgb = c_22; if (false) { metal::float3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = _e3 * _e5; } metal::float3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); metal::float4 o_9 = metal::float4(_e7, _e10 ? _e9 : 1.0); uint _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return metal::float4(metal::max(o_9.xyz, metal::float3(0.0)), metal::clamp(o_9.w, 0.0, 1.0)); } metal::float4 k_17 = metal::clamp(o_9, metal::float4(0.0), metal::float4(1.0)); uint _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { metal::float3 _e45 = linear_to_srgb(k_17.xyz); return metal::float4(_e45, k_17.w); } return k_17; } metal::float3 hedra_bindings( metal::texture2d t_panorama, metal::sampler s_radiance, metal::sampler s_panorama, metal::texture2d_array t_lightmap, metal::sampler s_lightmap, metal::texture2d t_screen ) { metal::float2 uv_9 = metal::float2(0.5); metal::float4 _e5 = t_panorama.sample(s_panorama, uv_9, metal::level(0.0)); metal::float4 _e11 = t_lightmap.sample(s_lightmap, uv_9, 0, metal::level(0.0)); metal::float4 _e17 = t_screen.sample(s_radiance, uv_9, metal::level(0.0)); return (_e5.xyz + _e11.xyz) + _e17.xyz; } struct vs_customInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float2 uv1_ [[attribute(10)]]; }; struct vs_customOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_customOutput vs_custom( vs_customInput varyings [[stage_in]] , uint vid [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const VsIn in = { varyings.pos_1, varyings.normal_2, varyings.uv_3, varyings.flags_4, {}, varyings.tangent_1, varyings.weight }; const auto uv1_ = varyings.uv1_; metal::float4x4 _e5 = O.model; metal::float4x4 _e8 = O.normal; metal::float3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, metal::float4(1.0), vid, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, UV, COLOR, MODEL_NORMAL_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, hedra_p, affine_uv, gouraud); float _e24 = hedra_tangent_sign(in.tangent.w, false, O); bool _e25 = hedra_vertex_space(); if (_e25) { metal::float4 _e26 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e28 = NORMAL; metal::float3 _e29 = hedra_vertex_dir(_e28, INV_VIEW_MATRIX); metal::float3 _e31 = TANGENT; metal::float3 _e32 = hedra_vertex_dir(_e31, INV_VIEW_MATRIX); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, affine_uv, gouraud); const auto _tmp = _e34; return vs_customOutput { _tmp.clip, _tmp.world, _tmp.normal, _tmp.uv, _tmp.flags, _tmp.tangent, _tmp.color, _tmp.uv2_, _tmp.instance_id, _tmp.hedra_v0_, _tmp.hedra_v1_, _tmp.hedra_v2_, _tmp.hedra_v3_ }; } metal::float4x4 _e37 = O.model; metal::float3 _e39 = VERTEX; metal::float4 world_14 = _e37 * metal::float4(_e39, 1.0); metal::float4x4 _e45 = O.normal; metal::float3 _e47 = NORMAL; metal::float3 n_15 = (_e45 * metal::float4(_e47, 0.0)).xyz; metal::float4x4 _e54 = O.model; metal::float3 _e56 = TANGENT; metal::float3 t_10 = (_e54 * metal::float4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_14, n_15, t_10, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, affine_uv, gouraud); const auto _tmp_1 = _e62; return vs_customOutput { _tmp_1.clip, _tmp_1.world, _tmp_1.normal, _tmp_1.uv, _tmp_1.flags, _tmp_1.tangent, _tmp_1.color, _tmp_1.uv2_, _tmp_1.instance_id, _tmp_1.hedra_v0_, _tmp_1.hedra_v1_, _tmp_1.hedra_v2_, _tmp_1.hedra_v3_ }; } struct vs_custom_instancedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float4 row0_ [[attribute(6)]]; metal::float4 row1_ [[attribute(7)]]; metal::float4 row2_ [[attribute(8)]]; metal::float4 color_1 [[attribute(9)]]; metal::float2 uv1_1 [[attribute(10)]]; metal::float4 custom [[attribute(14)]]; float id [[attribute(15)]]; }; struct vs_custom_instancedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_instancedOutput vs_custom_instanced( vs_custom_instancedInput varyings_1 [[stage_in]] , uint vid_1 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const VsIn in_1 = { varyings_1.pos_1, varyings_1.normal_2, varyings_1.uv_3, varyings_1.flags_4, {}, varyings_1.tangent_1, varyings_1.weight }; const InstIn inst = { varyings_1.row0_, varyings_1.row1_, varyings_1.row2_, varyings_1.color_1 }; const auto uv1_1 = varyings_1.uv1_1; const HedraInstExtra extra = { varyings_1.custom, varyings_1.id }; metal::float3 bx = metal::float3(inst.row0_.x, inst.row1_.x, inst.row2_.x); metal::float3 by = metal::float3(inst.row0_.y, inst.row1_.y, inst.row2_.y); metal::float3 bz = metal::float3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = metal::dot(bx, metal::cross(by, bz)); bool flip_1 = det < 0.0; metal::float3x3 cofactor = metal::float3x3(metal::cross(by, bz), metal::cross(bz, bx), metal::cross(bx, by)) * (flip_1 ? -1.0 : 1.0); metal::float4x4 basis = metal::float4x4(metal::float4(bx, 0.0), metal::float4(by, 0.0), metal::float4(bz, 0.0), metal::float4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); metal::float4x4 _e55 = O.model; metal::float4x4 _e59 = O.normal; metal::float3x3 _e60 = hedra_mat3_(_e59); hedra_matrices(_e55 * basis, _e60 * cofactor, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = naga_f2i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, UV, COLOR, MODEL_NORMAL_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, hedra_p, affine_uv, gouraud); uint flags_4 = in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1, O); bool _e80 = hedra_vertex_space(); if (_e80) { metal::float4 _e81 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e83 = NORMAL; metal::float3 _e84 = hedra_vertex_dir(_e83, INV_VIEW_MATRIX); metal::float3 _e86 = TANGENT; metal::float3 _e87 = hedra_vertex_dir(_e86, INV_VIEW_MATRIX); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, affine_uv, gouraud); const auto _tmp_2 = _e88; return vs_custom_instancedOutput { _tmp_2.clip, _tmp_2.world, _tmp_2.normal, _tmp_2.uv, _tmp_2.flags, _tmp_2.tangent, _tmp_2.color, _tmp_2.uv2_, _tmp_2.instance_id, _tmp_2.hedra_v0_, _tmp_2.hedra_v1_, _tmp_2.hedra_v2_, _tmp_2.hedra_v3_ }; } metal::float3 _e90 = VERTEX; metal::float4 p1_ = metal::float4(_e90, 1.0); metal::float3 local_32 = metal::float3(metal::dot(inst.row0_, p1_), metal::dot(inst.row1_, p1_), metal::dot(inst.row2_, p1_)); metal::float4x4 _e102 = O.model; metal::float4 world_15 = _e102 * metal::float4(local_32, 1.0); metal::float4x4 _e108 = O.normal; metal::float3 _e110 = NORMAL; metal::float3 n_16 = (_e108 * metal::float4(cofactor * _e110, 0.0)).xyz; metal::float4x4 _e118 = O.model; metal::float3 _e121 = TANGENT; metal::float3 t_11 = (_e118 * metal::float4(metal::float3x3(bx, by, bz) * _e121, 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_15, n_16, t_11, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, affine_uv, gouraud); const auto _tmp_3 = _e127; return vs_custom_instancedOutput { _tmp_3.clip, _tmp_3.world, _tmp_3.normal, _tmp_3.uv, _tmp_3.flags, _tmp_3.tangent, _tmp_3.color, _tmp_3.uv2_, _tmp_3.instance_id, _tmp_3.hedra_v0_, _tmp_3.hedra_v1_, _tmp_3.hedra_v2_, _tmp_3.hedra_v3_ }; } struct vs_custom_skinnedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::uint4 joints [[attribute(12)]]; metal::float4 weights [[attribute(13)]]; metal::float2 uv1_2 [[attribute(10)]]; }; struct vs_custom_skinnedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_skinnedOutput vs_custom_skinned( vs_custom_skinnedInput varyings_2 [[stage_in]] , uint vid_2 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant SkinU& Skin [[buffer(6)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const VsIn in_2 = { varyings_2.pos_1, varyings_2.normal_2, varyings_2.uv_3, varyings_2.flags_4, {}, varyings_2.tangent_1, varyings_2.weight }; const SkinIn s = { varyings_2.joints, varyings_2.weights }; const auto uv1_2 = varyings_2.uv1_2; SkinRows _e4 = skin_rows(s, Skin); metal::float4 p_12 = metal::float4(in_2.pos, 1.0); metal::float3 skinned = metal::float3(metal::dot(_e4.r0_, p_12), metal::dot(_e4.r1_, p_12), metal::dot(_e4.r2_, p_12)); metal::float3 bx_1 = metal::float3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); metal::float3 by_1 = metal::float3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); metal::float3 bz_1 = metal::float3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det_1 = metal::dot(bx_1, metal::cross(by_1, bz_1)); bool flip_2 = det_1 < 0.0; metal::float3x3 cofactor_1 = metal::float3x3(metal::cross(by_1, bz_1), metal::cross(bz_1, bx_1), metal::cross(bx_1, by_1)); metal::float3 n0_ = metal::normalize((cofactor_1 * in_2.normal) * (flip_2 ? -1.0 : 1.0)); metal::float3 t0_1 = metal::normalize(metal::float3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz); metal::float4x4 _e58 = O.model; metal::float4x4 _e61 = O.normal; metal::float3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(skinned, n0_, metal::float4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, metal::float4(1.0), vid_2, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, UV, COLOR, MODEL_NORMAL_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, hedra_p, affine_uv, gouraud); uint flags_5 = in_2.flags | (flip_2 ? F_INSTANCE_MIRRORED : 0u); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2, O); bool _e82 = hedra_vertex_space(); if (_e82) { metal::float4 _e83 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e85 = NORMAL; metal::float3 _e86 = hedra_vertex_dir(_e85, INV_VIEW_MATRIX); metal::float3 _e88 = TANGENT; metal::float3 _e89 = hedra_vertex_dir(_e88, INV_VIEW_MATRIX); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, affine_uv, gouraud); const auto _tmp_4 = _e90; return vs_custom_skinnedOutput { _tmp_4.clip, _tmp_4.world, _tmp_4.normal, _tmp_4.uv, _tmp_4.flags, _tmp_4.tangent, _tmp_4.color, _tmp_4.uv2_, _tmp_4.instance_id, _tmp_4.hedra_v0_, _tmp_4.hedra_v1_, _tmp_4.hedra_v2_, _tmp_4.hedra_v3_ }; } metal::float4x4 _e93 = O.model; metal::float3 _e95 = VERTEX; metal::float4 world_16 = _e93 * metal::float4(_e95, 1.0); metal::float4x4 _e101 = O.normal; metal::float3 _e103 = NORMAL; metal::float3 n_17 = (_e101 * metal::float4(_e103, 0.0)).xyz; metal::float4x4 _e110 = O.model; metal::float3 _e112 = TANGENT; metal::float3 t_12 = (_e110 * metal::float4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_16, n_17, t_12, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, affine_uv, gouraud); const auto _tmp_5 = _e117; return vs_custom_skinnedOutput { _tmp_5.clip, _tmp_5.world, _tmp_5.normal, _tmp_5.uv, _tmp_5.flags, _tmp_5.tangent, _tmp_5.color, _tmp_5.uv2_, _tmp_5.instance_id, _tmp_5.hedra_v0_, _tmp_5.hedra_v1_, _tmp_5.hedra_v2_, _tmp_5.hedra_v3_ }; } struct fs_customInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_customOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_customOutput fs_custom( fs_customInput varyings_3 [[stage_in]] , metal::float4 clip_3 [[position]] , bool facing [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant LitU& Lit [[buffer(1)]] , constant ShadowU& Shadow [[buffer(2)]] , metal::depth2d t_shadow [[texture(0)]] , metal::sampler s_shadow [[sampler(0)]] , constant SkyU& Sky [[buffer(3)]] , metal::texturecube t_radiance [[texture(5)]] , metal::texture2d t_panorama [[texture(6)]] , metal::sampler s_radiance [[sampler(3)]] , metal::sampler s_panorama [[sampler(4)]] , metal::texture2d t_ao [[texture(1)]] , metal::texture2d_array t_lightmap [[texture(7)]] , metal::sampler s_lightmap [[sampler(5)]] , constant ProbeU& Probe [[buffer(4)]] , metal::texture2d t_probes [[texture(8)]] , metal::sampler s_probes [[sampler(6)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] , constant FogU& Fog [[buffer(8)]] , metal::texture2d t_screen [[texture(3)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d albedo_texture [[texture(4)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; float SPECULAR_AMOUNT = {}; metal::float3 LIGHT = {}; metal::float3 LIGHT_COLOR = {}; bool LIGHT_IS_DIRECTIONAL = {}; float ATTENUATION = {}; metal::float3 DIFFUSE_LIGHT = {}; metal::float3 SPECULAR_LIGHT = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const CustomOut in_3 = { clip_3, varyings_3.world_13, varyings_3.normal_2, varyings_3.uv_3, varyings_3.flags_4, {}, varyings_3.tangent_1, varyings_3.color_1, varyings_3.uv2_1, varyings_3.instance_id, {}, varyings_3.hedra_v0_, varyings_3.hedra_v1_, varyings_3.hedra_v2_, varyings_3.hedra_v3_ }; metal::float3 c = {}; hedra_fragment(in_3, facing, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, albedo_texture, SAMPLER_NEAREST_REPEAT, affine_uv, gouraud); bool _e3 = hedra_culled(in_3.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (_e3) { metal::discard_fragment(); } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy, O); if (_e7 <= 0.0) { metal::discard_fragment(); } if (HEDRA_UNSHADED) { metal::float3 _e13 = ALBEDO; metal::float3 _e15 = hedra_world; metal::float3 _e16 = hedra_view_dir(_e15, G); metal::float3 _e17 = hedra_fog(_e13, _e16, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e18 = tonemap(_e17, Lit); c = _e18; } else { metal::float3 _e20 = hedra_lit(in_3.clip, G, O, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, Fog, NORMAL, ALBEDO, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SPECULAR_AMOUNT, LIGHT, LIGHT_COLOR, LIGHT_IS_DIRECTIONAL, ATTENUATION, DIFFUSE_LIGHT, SPECULAR_LIGHT, hedra_world, hedra_n_geo, hedra_n); c = _e20; } uint _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { metal::float3 _e27 = c; metal::float3 _e28 = hedra_bindings(t_panorama, s_radiance, s_panorama, t_lightmap, s_lightmap, t_screen); c = _e27 + _e28; } uint _e33 = G.params.x; if (_e33 == SHADE_LIT) { metal::float3 _e36 = c; metal::float3 _e37 = item_fade(_e36, O, Lit); metal::float3 _e38 = emerge_tint(_e37, _e7, O, Lit); c = _e38; } metal::float3 _e39 = c; metal::float4 _e40 = hedra_output(_e39, G, Lit, ALPHA, PREMUL_ALPHA_FACTOR); return fs_customOutput { _e40 }; } struct fs_custom_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; fragment void fs_custom_depth( fs_custom_depthInput varyings_4 [[stage_in]] , metal::float4 clip_4 [[position]] , bool facing_1 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d albedo_texture [[texture(4)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const CustomOut in_4 = { clip_4, varyings_4.world_13, varyings_4.normal_2, varyings_4.uv_3, varyings_4.flags_4, {}, varyings_4.tangent_1, varyings_4.color_1, varyings_4.uv2_1, varyings_4.instance_id, {}, varyings_4.hedra_v0_, varyings_4.hedra_v1_, varyings_4.hedra_v2_, varyings_4.hedra_v3_ }; bool local = {}; bool local_1 = {}; hedra_fragment(in_4, facing_1, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, albedo_texture, SAMPLER_NEAREST_REPEAT, affine_uv, gouraud); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = _e14 < _e16; } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { metal::discard_fragment(); } float _e25 = emerge_reveal(in_4.world, metal::float2(-1.0), O); if (_e25 <= 0.0) { metal::discard_fragment(); } else { return; } } struct fs_custom_idInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_idOutput { metal::float4 id [[color(0)]]; }; fragment fs_custom_idOutput fs_custom_id( fs_custom_idInput varyings_5 [[stage_in]] , metal::float4 clip_5 [[position]] , bool facing_2 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d albedo_texture [[texture(4)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const CustomOut in_5 = { clip_5, varyings_5.world_13, varyings_5.normal_2, varyings_5.uv_3, varyings_5.flags_4, {}, varyings_5.tangent_1, varyings_5.color_1, varyings_5.uv2_1, varyings_5.instance_id, {}, varyings_5.hedra_v0_, varyings_5.hedra_v1_, varyings_5.hedra_v2_, varyings_5.hedra_v3_ }; bool local_2 = {}; IdOut out = {}; hedra_fragment(in_5, facing_2, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, albedo_texture, SAMPLER_NEAREST_REPEAT, affine_uv, gouraud); bool _e3 = hedra_culled(in_5.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy, O); local_2 = _e10 <= 0.0; } else { local_2 = true; } bool _e14 = local_2; if (_e14) { metal::discard_fragment(); } uint id = O.params.z; uint _e24 = O.params.x; uint _e33 = O.params.y; uint bits = ((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u); out.id = metal::float4(static_cast(id & 255u), static_cast((id >> 8u) & 255u), static_cast((id >> 16u) & 255u), static_cast(bits)) / metal::float4(255.0); IdOut _e58 = out; const auto _tmp_6 = _e58; return fs_custom_idOutput { _tmp_6.id }; } struct fs_custom_normal_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_normal_depthOutput { metal::float4 normal_depth [[color(0)]]; metal::float4 surface [[color(1)]]; }; fragment fs_custom_normal_depthOutput fs_custom_normal_depth( fs_custom_normal_depthInput varyings_6 [[stage_in]] , metal::float4 clip_6 [[position]] , bool facing_3 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d albedo_texture [[texture(4)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const CustomOut in_6 = { clip_6, varyings_6.world_13, varyings_6.normal_2, varyings_6.uv_3, varyings_6.flags_4, {}, varyings_6.tangent_1, varyings_6.color_1, varyings_6.uv2_1, varyings_6.instance_id, {}, varyings_6.hedra_v0_, varyings_6.hedra_v1_, varyings_6.hedra_v2_, varyings_6.hedra_v3_ }; bool local_3 = {}; HedraNormalDepthOut out_1 = {}; hedra_fragment(in_6, facing_3, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, albedo_texture, SAMPLER_NEAREST_REPEAT, affine_uv, gouraud); bool _e3 = hedra_culled(in_6.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy, O); local_3 = _e10 <= 0.0; } else { local_3 = true; } bool _e14 = local_3; if (_e14) { metal::discard_fragment(); } metal::float4x4 _e17 = G.view; metal::float3x3 _e18 = hedra_mat3_(_e17); metal::float3 _e20 = hedra_n; metal::float3 n_view = metal::normalize(_e18 * _e20); float _e24 = METALLIC; float metallic_2 = metal::clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; metal::float3 _e37 = ALBEDO; metal::float3 f0_5 = metal::mix(metal::float3((0.16 * _e29) * _e33), _e37, metallic_2); metal::float4x4 _e43 = G.view; out_1.normal_depth = metal::float4(n_view, -((_e43 * metal::float4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = metal::float4(metal::clamp(f0_5, metal::float3(0.0), metal::float3(1.0)), metal::clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; const auto _tmp_7 = _e63; return fs_custom_normal_depthOutput { _tmp_7.normal_depth, _tmp_7.surface }; }  @Ð Ð/ ,@   {Ðþ—4ÌhÜäF‚�SKw;¹”7è· ðçkíVã›c vs_custommain'=struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0; float hedra_pad1; float3 sun_direction; float hedra_pad2; float3 sun_color; float hedra_pad3; float3 sky_ambient; float hedra_pad4; float3 ground_ambient; float light_bands; float3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1454 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1305 = transpose(hedra_mat3(m)); return float4x4(float4(_1305[0], 0.0f), float4(_1305[1], 0.0f), float4(_1305[2], 0.0f), float4(-mul(m[3].xyz, _1305), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1411 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1411 = false; } else { _1411 = false; } if (_1411) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } float3 scene_to_frame(float3 v) { return float3(v.x, -v.z, v.y); } float4 snap_view(float4 view_pos) { if (hedra_p_1_m0.snap_resolution.x <= 0.0f) { return view_pos; } float4 _1160 = mul(view_pos, G_1_m0.proj); if (_1160.w <= 9.9999997473787516355514526367188e-05f) { return view_pos; } float2 _1167 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1181 = mul(float4((round((_1160.xy / float2(_1160.ww)) * _1167) / _1167) * _1160.w, _1160.zw), INV_PROJECTION_MATRIX); return float4(_1181.xyz / float3(_1181.www), 1.0f); } void vertex() { float diffuse = 0.0f; float3 _1199 = normalize(mul(NORMAL, MODEL_NORMAL_MATRIX)); diffuse = max(dot(_1199, normalize(scene_to_frame(hedra_p_1_m0.sun_direction))), 0.0f); if (hedra_p_1_m0.light_bands >= 2.0f) { diffuse = floor((diffuse * hedra_p_1_m0.light_bands) + 0.5f) / hedra_p_1_m0.light_bands; } float _1229 = (_1199.z * 0.5f) + 0.5f; gouraud = (((lerp(hedra_p_1_m0.ground_ambient, hedra_p_1_m0.sky_ambient, float3(_1229, _1229, _1229)) + (hedra_p_1_m0.sun_color * diffuse)) * COLOR.xyz) * hedra_p_1_m0.overbright) + hedra_p_1_m0.emission; float4 _1253 = snap_view(mul(float4(VERTEX, 1.0f), MODELVIEW_MATRIX)); VERTEX = _1253.xyz; NORMAL = normalize(mul(NORMAL, MODELVIEW_NORMAL_MATRIX)); float2 _1259 = UV; float2 _1271 = ((_1259 * hedra_p_1_m0.uv_scale) + hedra_p_1_m0.uv_offset) + (hedra_p_1_m0.uv_scroll * G_1_m0.fparams.w); UV = _1271; float4 _1274 = mul(_1253, G_1_m0.proj); float _1275 = _1274.w; affine_uv = float4(_1271 * _1275, _1275, hedra_p_1_m0.affine_strength * clamp((_1275 - 0.25f) / max(hedra_p_1_m0.affine_near, 0.001000000047497451305389404296875f), 0.0f, 1.0f)); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1488 = false; if (false) { _1488 = false; } else { _1488 = true; } return _1488; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = affine_uv; o.hedra_v1 = float4(gouraud, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1454; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1684 = { pos, normal, uv, flags, tangent, weight }; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(_1684.pos, _1684.normal, _1684.tangent, _1684.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); float _1742 = hedra_tangent_sign(_1684.tangent.w, false); if (hedra_vertex_space()) { CustomOut _1752 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1742, _1684.flags); gl_Position = _1752.clip; world = _1752.world; normal_1 = _1752.normal; uv_1 = _1752.uv; flags_1 = _1752.flags; tangent_1 = _1752.tangent; color = _1752.color; uv2 = _1752.uv2; instance_id = _1752.instance_id; hedra_v0 = _1752.hedra_v0; hedra_v1 = _1752.hedra_v1; hedra_v2 = _1752.hedra_v2; hedra_v3 = _1752.hedra_v3; return; } CustomOut _1784 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1742, _1684.flags); gl_Position = _1784.clip; world = _1784.world; normal_1 = _1784.normal; uv_1 = _1784.uv; flags_1 = _1784.flags; tangent_1 = _1784.tangent; color = _1784.color; uv2 = _1784.uv2; instance_id = _1784.instance_id; hedra_v0 = _1784.hedra_v0; hedra_v1 = _1784.hedra_v1; hedra_v2 = _1784.hedra_v2; hedra_v3 = _1784.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_instancedmainOBstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0; float hedra_pad1; float3 sun_direction; float hedra_pad2; float3 sun_color; float hedra_pad3; float3 sky_ambient; float hedra_pad4; float3 ground_ambient; float light_bands; float3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1454 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 row0; static float4 row1; static float4 row2; static float4 color; static float2 uv1; static float4 custom; static float id; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color_1; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 row0 : TEXCOORD6; float4 row1 : TEXCOORD7; float4 row2 : TEXCOORD8; float4 color : TEXCOORD9; float2 uv1 : TEXCOORD10; float4 custom : TEXCOORD14; float id : TEXCOORD15; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color_1 : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1305 = transpose(hedra_mat3(m)); return float4x4(float4(_1305[0], 0.0f), float4(_1305[1], 0.0f), float4(_1305[2], 0.0f), float4(-mul(m[3].xyz, _1305), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_2, uint vid) { bool _1411 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_2; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1411 = false; } else { _1411 = false; } if (_1411) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } float3 scene_to_frame(float3 v) { return float3(v.x, -v.z, v.y); } float4 snap_view(float4 view_pos) { if (hedra_p_1_m0.snap_resolution.x <= 0.0f) { return view_pos; } float4 _1160 = mul(view_pos, G_1_m0.proj); if (_1160.w <= 9.9999997473787516355514526367188e-05f) { return view_pos; } float2 _1167 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1181 = mul(float4((round((_1160.xy / float2(_1160.ww)) * _1167) / _1167) * _1160.w, _1160.zw), INV_PROJECTION_MATRIX); return float4(_1181.xyz / float3(_1181.www), 1.0f); } void vertex() { float diffuse = 0.0f; float3 _1199 = normalize(mul(NORMAL, MODEL_NORMAL_MATRIX)); diffuse = max(dot(_1199, normalize(scene_to_frame(hedra_p_1_m0.sun_direction))), 0.0f); if (hedra_p_1_m0.light_bands >= 2.0f) { diffuse = floor((diffuse * hedra_p_1_m0.light_bands) + 0.5f) / hedra_p_1_m0.light_bands; } float _1229 = (_1199.z * 0.5f) + 0.5f; gouraud = (((lerp(hedra_p_1_m0.ground_ambient, hedra_p_1_m0.sky_ambient, float3(_1229, _1229, _1229)) + (hedra_p_1_m0.sun_color * diffuse)) * COLOR.xyz) * hedra_p_1_m0.overbright) + hedra_p_1_m0.emission; float4 _1253 = snap_view(mul(float4(VERTEX, 1.0f), MODELVIEW_MATRIX)); VERTEX = _1253.xyz; NORMAL = normalize(mul(NORMAL, MODELVIEW_NORMAL_MATRIX)); float2 _1259 = UV; float2 _1271 = ((_1259 * hedra_p_1_m0.uv_scale) + hedra_p_1_m0.uv_offset) + (hedra_p_1_m0.uv_scroll * G_1_m0.fparams.w); UV = _1271; float4 _1274 = mul(_1253, G_1_m0.proj); float _1275 = _1274.w; affine_uv = float4(_1271 * _1275, _1275, hedra_p_1_m0.affine_strength * clamp((_1275 - 0.25f) / max(hedra_p_1_m0.affine_near, 0.001000000047497451305389404296875f), 0.0f, 1.0f)); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1488 = false; if (false) { _1488 = false; } else { _1488 = true; } return _1488; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = affine_uv; o.hedra_v1 = float4(gouraud, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1454; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1684 = { pos, normal, uv, flags, tangent, weight }; InstIn _1702 = { row0, row1, row2, color }; HedraInstExtra _1713 = { custom, id }; float3 _1748 = float3(_1702.row0.x, _1702.row1.x, _1702.row2.x); float3 _1755 = float3(_1702.row0.y, _1702.row1.y, _1702.row2.y); float3 _1762 = float3(_1702.row0.z, _1702.row1.z, _1702.row2.z); bool _1765 = dot(_1748, cross(_1755, _1762)) < 0.0f; float3x3 _1771 = float3x3(cross(_1755, _1762), cross(_1762, _1748), cross(_1748, _1755)) * (_1765 ? (-1.0f) : 1.0f); hedra_matrices(mul(float4x4(float4(_1748, 0.0f), float4(_1755, 0.0f), float4(_1762, 0.0f), float4(_1702.row0.w, _1702.row1.w, _1702.row2.w, 1.0f)), O_1_m0.model), mul(_1771, hedra_mat3(O_1_m0.normal))); INSTANCE_ID = int(clamp(_1713.id, -2147483648.0f, 2147483520.0f)); INSTANCE_CUSTOM = _1713.custom; hedra_begin_vertex(_1684.pos, _1684.normal, _1684.tangent, _1684.uv, uv1, _1702.color, uint(gl_VertexIndex)); vertex(); uint _1806 = _1684.flags | (_1765 ? 128u : 0u); float _1809 = hedra_tangent_sign(_1684.tangent.w, _1765); if (hedra_vertex_space()) { CustomOut _1818 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1809, _1806); gl_Position = _1818.clip; world = _1818.world; normal_1 = _1818.normal; uv_1 = _1818.uv; flags_1 = _1818.flags; tangent_1 = _1818.tangent; color_1 = _1818.color; uv2 = _1818.uv2; instance_id = _1818.instance_id; hedra_v0 = _1818.hedra_v0; hedra_v1 = _1818.hedra_v1; hedra_v2 = _1818.hedra_v2; hedra_v3 = _1818.hedra_v3; return; } float4 _1833 = float4(VERTEX, 1.0f); CustomOut _1860 = hedra_end_vertex(mul(float4(float3(dot(_1702.row0, _1833), dot(_1702.row1, _1833), dot(_1702.row2, _1833)), 1.0f), O_1_m0.model), mul(float4(mul(NORMAL, _1771), 0.0f), O_1_m0.normal).xyz, mul(float4(mul(TANGENT, float3x3(_1748, _1755, _1762)), 0.0f), O_1_m0.model).xyz, _1809, _1806); gl_Position = _1860.clip; world = _1860.world; normal_1 = _1860.normal; uv_1 = _1860.uv; flags_1 = _1860.flags; tangent_1 = _1860.tangent; color_1 = _1860.color; uv2 = _1860.uv2; instance_id = _1860.instance_id; hedra_v0 = _1860.hedra_v0; hedra_v1 = _1860.hedra_v1; hedra_v2 = _1860.hedra_v2; hedra_v3 = _1860.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; row0 = stage_input.row0; row1 = stage_input.row1; row2 = stage_input.row2; color = stage_input.color; uv1 = stage_input.uv1; custom = stage_input.custom; id = stage_input.id; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color_1 = color_1; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_skinnedmainDstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0; float hedra_pad1; float3 sun_direction; float hedra_pad2; float3 sun_color; float hedra_pad3; float3 sky_ambient; float hedra_pad4; float3 ground_ambient; float light_bands; float3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const SkinRows _1141 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const CustomOut _1546 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Skin : register(b6) { SkinU Skin_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static uint4 joints; static float4 weights; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint4 joints : TEXCOORD12; float4 weights : TEXCOORD13; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); float4 skin_row(uint k, uint r) { return Skin_1_m0.rows[min(((min(k, 254u) * 3u) + r), 764u)]; } SkinRows skin_rows(SkinIn s) { SkinRows m = _1141; m.r0 = (((skin_row(s.joints.x, 0u) * s.weights.x) + (skin_row(s.joints.y, 0u) * s.weights.y)) + (skin_row(s.joints.z, 0u) * s.weights.z)) + (skin_row(s.joints.w, 0u) * s.weights.w); m.r1 = (((skin_row(s.joints.x, 1u) * s.weights.x) + (skin_row(s.joints.y, 1u) * s.weights.y)) + (skin_row(s.joints.z, 1u) * s.weights.z)) + (skin_row(s.joints.w, 1u) * s.weights.w); m.r2 = (((skin_row(s.joints.x, 2u) * s.weights.x) + (skin_row(s.joints.y, 2u) * s.weights.y)) + (skin_row(s.joints.z, 2u) * s.weights.z)) + (skin_row(s.joints.w, 2u) * s.weights.w); return m; } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1397 = transpose(hedra_mat3(m)); return float4x4(float4(_1397[0], 0.0f), float4(_1397[1], 0.0f), float4(_1397[2], 0.0f), float4(-mul(m[3].xyz, _1397), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1503 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1503 = false; } else { _1503 = false; } if (_1503) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } float3 scene_to_frame(float3 v) { return float3(v.x, -v.z, v.y); } float4 snap_view(float4 view_pos) { if (hedra_p_1_m0.snap_resolution.x <= 0.0f) { return view_pos; } float4 _1252 = mul(view_pos, G_1_m0.proj); if (_1252.w <= 9.9999997473787516355514526367188e-05f) { return view_pos; } float2 _1259 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1273 = mul(float4((round((_1252.xy / float2(_1252.ww)) * _1259) / _1259) * _1252.w, _1252.zw), INV_PROJECTION_MATRIX); return float4(_1273.xyz / float3(_1273.www), 1.0f); } void vertex() { float diffuse = 0.0f; float3 _1291 = normalize(mul(NORMAL, MODEL_NORMAL_MATRIX)); diffuse = max(dot(_1291, normalize(scene_to_frame(hedra_p_1_m0.sun_direction))), 0.0f); if (hedra_p_1_m0.light_bands >= 2.0f) { diffuse = floor((diffuse * hedra_p_1_m0.light_bands) + 0.5f) / hedra_p_1_m0.light_bands; } float _1321 = (_1291.z * 0.5f) + 0.5f; gouraud = (((lerp(hedra_p_1_m0.ground_ambient, hedra_p_1_m0.sky_ambient, float3(_1321, _1321, _1321)) + (hedra_p_1_m0.sun_color * diffuse)) * COLOR.xyz) * hedra_p_1_m0.overbright) + hedra_p_1_m0.emission; float4 _1345 = snap_view(mul(float4(VERTEX, 1.0f), MODELVIEW_MATRIX)); VERTEX = _1345.xyz; NORMAL = normalize(mul(NORMAL, MODELVIEW_NORMAL_MATRIX)); float2 _1351 = UV; float2 _1363 = ((_1351 * hedra_p_1_m0.uv_scale) + hedra_p_1_m0.uv_offset) + (hedra_p_1_m0.uv_scroll * G_1_m0.fparams.w); UV = _1363; float4 _1366 = mul(_1345, G_1_m0.proj); float _1367 = _1366.w; affine_uv = float4(_1363 * _1367, _1367, hedra_p_1_m0.affine_strength * clamp((_1367 - 0.25f) / max(hedra_p_1_m0.affine_near, 0.001000000047497451305389404296875f), 0.0f, 1.0f)); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1580 = false; if (false) { _1580 = false; } else { _1580 = true; } return _1580; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = affine_uv; o.hedra_v1 = float4(gouraud, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1546; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1776 = { pos, normal, uv, flags, tangent, weight }; SkinIn _1794 = { joints, weights }; SkinRows _1827 = skin_rows(_1794); float4 _1829 = float4(_1776.pos, 1.0f); float3 _1843 = float3(_1827.r0.x, _1827.r1.x, _1827.r2.x); float3 _1850 = float3(_1827.r0.y, _1827.r1.y, _1827.r2.y); float3 _1857 = float3(_1827.r0.z, _1827.r1.z, _1827.r2.z); bool _1860 = dot(_1843, cross(_1850, _1857)) < 0.0f; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(float3(dot(_1827.r0, _1829), dot(_1827.r1, _1829), dot(_1827.r2, _1829)), normalize(mul(_1776.normal, float3x3(cross(_1850, _1857), cross(_1857, _1843), cross(_1843, _1850))) * (_1860 ? (-1.0f) : 1.0f)), float4(normalize(mul(_1776.tangent.xyz, float3x3(_1843, _1850, _1857))), _1776.tangent.w), _1776.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); uint _1889 = _1776.flags | (_1860 ? 128u : 0u); float _1892 = hedra_tangent_sign(_1776.tangent.w, _1860); if (hedra_vertex_space()) { CustomOut _1901 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1892, _1889); gl_Position = _1901.clip; world = _1901.world; normal_1 = _1901.normal; uv_1 = _1901.uv; flags_1 = _1901.flags; tangent_1 = _1901.tangent; color = _1901.color; uv2 = _1901.uv2; instance_id = _1901.instance_id; hedra_v0 = _1901.hedra_v0; hedra_v1 = _1901.hedra_v1; hedra_v2 = _1901.hedra_v2; hedra_v3 = _1901.hedra_v3; return; } CustomOut _1932 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1892, _1889); gl_Position = _1932.clip; world = _1932.world; normal_1 = _1932.normal; uv_1 = _1932.uv; flags_1 = _1932.flags; tangent_1 = _1932.tangent; color = _1932.color; uv2 = _1932.uv2; instance_id = _1932.instance_id; hedra_v0 = _1932.hedra_v0; hedra_v1 = _1932.hedra_v1; hedra_v2 = _1932.hedra_v2; hedra_v3 = _1932.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; joints = stage_input.joints; weights = stage_input.weights; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; }  fs_custommain°Bstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0; float hedra_pad1; float3 sun_direction; float hedra_pad2; float3 sun_color; float hedra_pad3; float3 sky_ambient; float hedra_pad4; float3 ground_ambient; float light_bands; float3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _569 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const uint _2654[4] = { 0u, 0u, 0u, 0u }; static const float2 _2657[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _2664[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _3950[4] = { 0.0f, 2.0f, 3.0f, 1.0f }; static const DecalSurface _4944 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Shadow : register(b2) { ShadowU Shadow_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Probe : register(b4) { ProbeU Probe_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D t_shadow : register(t0); SamplerComparisonState s_shadow : register(s0); TextureCube t_radiance : register(t5); Texture2D t_panorama : register(t6); SamplerState s_radiance : register(s3); SamplerState s_panorama : register(s4); Texture2D t_ao : register(t1); Texture2DArray t_lightmap : register(t7); SamplerState s_lightmap : register(s5); Texture2D t_probes : register(t8); SamplerState s_probes : register(s6); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); Texture2D t_screen : register(t3); Texture2D albedo_texture : register(t4); SamplerState SAMPLER_NEAREST_REPEAT : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 _5340; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 _5340 : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float SPECULAR_AMOUNT = 0.0f; static float3 LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_COLOR = float3(0.0f, 0.0f, 0.0f); static bool LIGHT_IS_DIRECTIONAL = false; static float ATTENUATION = 0.0f; static float3 DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint spvPackUnorm4x8(float4 value) { uint4 Packed = uint4(round(saturate(value) * 255.0)); return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); } float4 spvUnpackUnorm4x8(uint value) { uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); return float4(Packed) / 255.0; } bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _4021 = transpose(hedra_mat3(m)); return float4x4(float4(_4021[0], 0.0f), float4(_4021[1], 0.0f), float4(_4021[2], 0.0f), float4(-mul(m[3].xyz, _4021), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { affine_uv = i.hedra_v0; gouraud = i.hedra_v1.xyz; } uint2 naga_mod(uint2 lhs, uint2 rhs) { bool2 _3940 = bool2(rhs.x == uint2(0u, 0u).x, rhs.y == uint2(0u, 0u).y); return lhs % uint2(_3940.x ? uint2(1u, 1u).x : rhs.x, _3940.y ? uint2(1u, 1u).y : rhs.y); } void fragment() { if (hedra_p_1_m0.screen_door > 0.0f) { uint2 _3966 = naga_mod(uint2(clamp(FRAGCOORD.xy, float2(0.0f, 0.0f), float2(4294967040.0f, 4294967040.0f))), uint2(2u, 2u)); if (_3950[min(((_3966.y * 2u) + _3966.x), 3u)] < ((hedra_p_1_m0.screen_door * 4.0f) - 0.001000000047497451305389404296875f)) { discard; } } float _3985 = max(affine_uv.z, 9.9999997473787516355514526367188e-05f); float _3991 = clamp(affine_uv.w, 0.0f, 1.0f); ALBEDO = (albedo_texture.Sample(SAMPLER_NEAREST_REPEAT, lerp(UV, affine_uv.xy / float2(_3985, _3985), float2(_3991, _3991))).xyz * hedra_p_1_m0.albedo.xyz) * gouraud; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _4180 = facing != hedra_mirrored(_in.flags); hedra_front = _4180; FRONT_FACING = _4180; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _4196 = hedra_mat3(G_1_m0.view); float3 _4199 = -normalize(_in.normal); float3 _4201 = normalize(_in.normal); bool3 _4203 = bool3(_4180, _4180, _4180); float3 _4202 = float3(_4203.x ? _4201.x : _4199.x, _4203.y ? _4201.y : _4199.y, _4203.z ? _4201.z : _4199.z); hedra_n_geo = _4202; hedra_n = _4202; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_4202 * dot(_4202, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _4225 = VERTEX; NORMAL = normalize(mul(_4202, _4196)); float3 _4228 = NORMAL; TANGENT = normalize(mul(t, _4196)); BINORMAL = normalize(mul(cross(_4202, t) * _in.tangent.w, _4196)); float3 _4236 = normalize(-VERTEX); bool _4239 = G_1_m0.camera_pos.w > 0.5f; bool3 _4241 = bool3(_4239, _4239, _4239); VIEW = float3(_4241.x ? float3(0.0f, 0.0f, 1.0f).x : _4236.x, _4241.y ? float3(0.0f, 0.0f, 1.0f).y : _4236.y, _4241.z ? float3(0.0f, 0.0f, 1.0f).z : _4236.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _4247 = transpose(_4196); if (any(bool3(NORMAL.x != _4228.x, NORMAL.y != _4228.y, NORMAL.z != _4228.z))) { hedra_n = normalize(mul(NORMAL, _4247)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _4247)); } if (any(bool3(LIGHT_VERTEX.x != _4225.x, LIGHT_VERTEX.y != _4225.y, LIGHT_VERTEX.z != _4225.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _4312 = false; bool _4314 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _4312 = hedra_front; } else { _4312 = false; } if (_4312) { return true; } if (false) { _4314 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _4314 = false; } return _4314; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1146 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1146, _1146, _1146); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1171 = floor(p); float3 _1172 = frac(p); float3 _1176 = (_1172 * _1172) * (float3(3.0f, 3.0f, 3.0f) - (_1172 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1171), emerge_hash(_1171 + float3(1.0f, 0.0f, 0.0f)), _1176.x), lerp(emerge_hash(_1171 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1171 + float3(1.0f, 1.0f, 0.0f)), _1176.x), _1176.y), lerp(lerp(emerge_hash(_1171 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1171 + float3(1.0f, 0.0f, 1.0f)), _1176.x), lerp(emerge_hash(_1171 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1171 + float3(1.0f, 1.0f, 1.0f)), _1176.x), _1176.y), _1176.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1233 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1233) * 0.64999997615814208984375f) + (emerge_noise((_1233 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } float3 hedra_view_dir(float3 world_1) { float3 _4351 = normalize(G_1_m0.camera_pos.xyz - world_1); float3 _4352 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _4355 = G_1_m0.camera_pos.w > 0.5f; bool3 _4357 = bool3(_4355, _4355, _4355); return float3(_4357.x ? _4352.x : _4351.x, _4357.y ? _4352.y : _4351.y, _4357.z ? _4352.z : _4351.z); } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float3 radiance(float3 d, float roughness) { return t_radiance.SampleLevel(s_radiance, d, roughness * float(max(Sky_1_m0.flags.y, 1u) - 1u)).xyz; } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _1606 = max(x, 0.0f) * max(x, 0.0f); float _1607 = _1606 * _1606; return _1607 * _1607; } float3 fog_sun_scatter(float3 fc, float3 dir) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _1626 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _1626)) { break; } uint _1649 = pool_sun(k); if (Lit_1_m0.lights[min(_1649, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_1649, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir, -Lit_1_m0.lights[min(_1649, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 surface_fog(float3 c, float3 world_1, float3 dir) { float amount = 0.0f; bool _1716 = false; float dist = 0.0f; float3 fc = float3(0.0f, 0.0f, 0.0f); float _1724 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; dist = distance(world_1, G_1_m0.camera_pos.xyz); if (Sky_1_m0.fog_origin.w > 0.5f) { dist = max(_1724 - Sky_1_m0.fog_origin.x, 0.0f); } if ((Sky_1_m0.flags.x & 256u) != 0u) { float _1751 = smoothstep(Sky_1_m0.fog_depth.x, Sky_1_m0.fog_depth.y, dist); amount = ((_1751 > 0.0f) ? pow(max(_1751, 9.9999999747524270787835121154785e-07f), Sky_1_m0.fog_depth.z) : 0.0f) * Sky_1_m0.fog.x; } else { amount = 1.0f - exp(min(0.0f, (-dist) * Sky_1_m0.fog.x)); } if (abs(Sky_1_m0.fog.w) >= 9.9999997473787516355514526367188e-05f) { amount = max(amount, 1.0f - exp(min(0.0f, (dot(world_1, Lit_1_m0.up.xyz) - Sky_1_m0.fog.z) * Sky_1_m0.fog.w))); } amount = clamp(amount, 0.0f, 1.0f); fc = Sky_1_m0.fog_color.xyz; if ((Sky_1_m0.flags.x & 8u) != 0u) { _1716 = Sky_1_m0.fog_depth.w > 0.0f; } else { _1716 = false; } if (true ? _1716 : false) { fc = lerp(fc, radiance(sky_dir(dir), lerp(1.0f / float(max(Sky_1_m0.flags.y, 2u) - 1u), 1.0f, 1.0f - clamp((_1724 - Sky_1_m0.fog_origin.y) / max(Sky_1_m0.fog_origin.z - Sky_1_m0.fog_origin.y, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f))) * Sky_1_m0.sun.w, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)); } fc = fog_sun_scatter(fc, dir); return lerp(c, fc, float3(amount, amount, amount)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _1870 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _1874 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_1870 == 4u) { return float2(0.0f, _1874); } float3 _1883 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _1884 = abs(d); bool3 _1885 = bool3(_1884.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _1884.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _1884.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _1886 = float3(_1885.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _1885.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _1885.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _1889 = ((-_1883) - o) / _1886; float3 _1891 = (_1883 - o) / _1886; float3 _1892 = min(_1889, _1891); float3 _1893 = max(_1889, _1891); r = float2(max(0.0f, _1892.y), min(_1874, _1893.y)); if (_1870 == 3u) { r = float2(max(max(r.x, _1892.x), _1892.z), min(min(r.y, _1893.x), _1893.z)); } else { if (_1870 == 0u) { a = dot(d / _1883, d / _1883); b = dot(o / _1883, d / _1883); c = dot(o / _1883, o / _1883) - 1.0f; } else { float _1932 = min(_1883.x, _1883.z); float _1937 = (_1870 == 1u) ? (_1932 / (2.0f * _1883.y)) : 0.0f; float _1940 = _1883.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_1937 * _1937) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_1937 * _1937) * _1940) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_1870 == 1u) ? (((_1937 * _1937) * _1940) * _1940) : (_1932 * _1932)); } } float _1986 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_1986 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _2050 = min(((-b) - sqrt(_1986)) / a, ((-b) + sqrt(_1986)) / a); float _2063 = max(((-b) - sqrt(_1986)) / a, ((-b) + sqrt(_1986)) / a); if (a > 0.0f) { r = float2(max(r.x, _2050), min(r.y, _2063)); } else { if (r.x < min(r.y, _2050)) { r.y = min(r.y, _2050); } else { r.x = max(r.x, _2063); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _2107 = min(k, 15u); rho = Fog_1_m0.entries[_2107].material.x * min(exp2((-Fog_1_m0.entries[_2107].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2107].material.w)), 1.0f); if (Fog_1_m0.entries[_2107].material.z > 0.0f) { uint _2134 = uint(clamp(Fog_1_m0.entries[_2107].albedo.w, 0.0f, 4294967040.0f)); float3 _2137 = Fog_1_m0.entries[_2107].size.xyz * 0.5f; float _2140 = min(_2137.x, _2137.z); if (_2134 == 0u) { float _2146 = length(lp / _2137); sdf = (_2146 * (_2146 - 1.0f)) / max(length(lp / (_2137 * _2137)), 9.9999999600419720025001879548654e-13f); } else { if (_2134 == 3u) { float3 _2159 = abs(lp) - _2137; sdf = length(max(_2159, float3(0.0f, 0.0f, 0.0f))) + min(max(_2159.x, max(_2159.y, _2159.z)), 0.0f); } else { if (_2134 == 2u) { float2 _2180 = float2(length(lp.xz) - _2140, abs(lp.y) - _2137.y); sdf = min(max(_2180.x, _2180.y), 0.0f) + length(max(_2180, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _2140 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _2137.y))), float2(length(lp.xz), lp.y - _2137.y)), (-_2137.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_2107].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_2107].material.z); } return rho; } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float3 fog_light(uint n, float3 p, float3 dir) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _2342 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_2342].lights.z, 8u))) { break; } uint _2378 = min(((((k < 4u) ? Fog_1_m0.entries[_2342].lights.x : Fog_1_m0.entries[_2342].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _2379 = min(_2378, 63u); l = -Lit_1_m0.lights[_2379].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_2379].info.x != 0u) { float3 _2392 = Lit_1_m0.lights[_2379].position.xyz - p; float _2394 = max(length(_2392), 9.9999999747524270787835121154785e-07f); l = _2392 / float3(_2394, _2394, _2394); atten = omni_attenuation(length(_2392), Lit_1_m0.lights[_2379].position.w, Lit_1_m0.lights[_2379].direction.w); if (Lit_1_m0.lights[_2379].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_2379].direction.xyz), Lit_1_m0.lights[_2379].spot.x)) / max(1.0f - Lit_1_m0.lights[_2379].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_2379].spot.y)); } } float _2435 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir, l)); sum += (Lit_1_m0.lights[_2379].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _2435) * sqrt(_2435))) * Fog_1_m0.light_fog[min((_2378 >> 2u), 15u)][min((_2378 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _2233 = min(k, 15u); if ((Fog_1_m0.entries[_2233].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_2233].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_2233].material.y) * a), 1.0f); } float _2251 = clamp((-a) / b, t0, t1); float _2253 = (b > 0.0f) ? _2251 : t0; float _2255 = (b > 0.0f) ? t1 : _2251; float _2260 = ((Fog_1_m0.entries[_2233].material.y * abs(b)) * (_2255 - _2253)) * 0.693147182464599609375f; return Fog_1_m0.entries[_2233].material.x * (((t1 - t0) - (_2255 - _2253)) + ((min(exp2((-Fog_1_m0.entries[_2233].material.y) * max(a + (b * ((b > 0.0f) ? _2253 : _2255)), 0.0f)), 1.0f) * (_2255 - _2253)) * ((_2260 < 0.00999999977648258209228515625f) ? (1.0f - (_2260 * (0.5f - (_2260 * (0.16666667163372039794921875f - (_2260 / 24.0f)))))) : ((1.0f - exp(-_2260)) / _2260)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _2478 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _2480 = false; float tau = 0.0f; bool _2471 = false; uint i = 0u; bool _2473 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _2483 = min(k, 15u); float3 _2489 = mul(float4(o, 1.0f), Fog_1_m0.entries[_2483].to_local).xyz; float3 _2493 = mul(float4(d, 0.0f), Fog_1_m0.entries[_2483].to_local).xyz; float _2500 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2483].material.w; float _2504 = dot(d, Fog_1_m0.up.xyz); bool _2507 = Fog_1_m0.entries[_2483].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_2483].material.y > 0.0f) { _2471 = ((-_2500) / _2504) > ch.x; } else { _2471 = false; } if (_2471) { _2473 = ((-_2500) / _2504) < ch.y; } else { _2473 = false; } if (_2473) { split = (-_2500) / _2504; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_2507 ? 12u : 4u))) { break; } uint _2558 = i & 3u; if (!(_2558 == 0u)) { _2478 = _2558 == 3u; } else { _2478 = true; } float _2566 = _2478 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_2558 == 0u)) { _2480 = _2558 == 3u; } else { _2480 = true; } float _2574 = _2480 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _2577 = float2(split, ch.y); float2 _2580 = float2(ch.x, split); bool _2582 = i < 8u; bool2 _2584 = bool2(_2582, _2582); float2 _2583 = float2(_2584.x ? _2580.x : _2577.x, _2584.y ? _2580.y : _2577.y); bool _2586 = i < 4u; bool2 _2588 = bool2(_2586, _2586); float2 _2587 = float2(_2588.x ? ch.x : _2583.x, _2588.y ? ch.y : _2583.y); float _2592 = (_2587.y - _2587.x) * 0.5f; float _2601 = ((_2587.x + _2587.y) * 0.5f) + (_2592 * ((_2558 < 2u) ? (-_2566) : _2566)); float3 _2603 = o + (d * _2601); float _2606 = fog_density(k, _2603, _2489 + (_2493 * _2601)); if (i < 4u) { q += (((Fog_1_m0.entries[_2483].albedo.xyz * fog_light(k, _2603, d)) + Fog_1_m0.entries[_2483].emission.xyz) * ((_2574 * _2592) * clamp(_2606, 0.0f, 1.0f))); } else { tau += ((_2574 * _2592) * _2606); } i++; continue; } if (!_2507) { tau = fog_falloff_depth(k, _2500, _2504, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _2654; uint i_3 = 0u; uint n = 0u; bool _2660 = false; float2 chords[4] = _2657; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _2664; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _2677 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_2677 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _2707 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_2677) { _2660 = _2707 == 0u; } else { _2660 = false; } if (_2660) { break; } uint _2719 = _2677 ? i_2 : (min(_2707, 16u) - 1u); uint _2720 = min(_2719, 15u); float2 _2729 = fog_chord(_2719, mul(float4(o, 1.0f), Fog_1_m0.entries[_2720].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_2720].to_local).xyz, t_end); if (_2729.y > _2729.x) { at[min(m, 3u)] = _2719; chords[min(m, 3u)] = _2729; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _2885 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _2885)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _3005 = exp(-tau); return (c * _3005) + (q * ((1.0f - _3005) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 fog_volumes(float3 c, float3 world_1, uint list) { float3 _3041 = world_1 - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(world_1, 1.0f), G_1_m0.view).z); bool _3044 = G_1_m0.camera_pos.w > 0.5f; bool3 _3046 = bool3(_3044, _3044, _3044); float3 _3045 = float3(_3046.x ? _3041.x : G_1_m0.camera_pos.xyz.x, _3046.y ? _3041.y : G_1_m0.camera_pos.xyz.y, _3046.z ? _3041.z : G_1_m0.camera_pos.xyz.z); float _3048 = length(world_1 - _3045); float _3050 = max(_3048, 9.9999999747524270787835121154785e-07f); float3 _3053 = fog_integrate(c, _3045, (world_1 - _3045) / float3(_3050, _3050, _3050), _3048, list); bool _3054 = _3048 > 0.0f; bool3 _3056 = bool3(_3054, _3054, _3054); return float3(_3056.x ? _3053.x : c.x, _3056.y ? _3053.y : c.y, _3056.z ? _3053.z : c.z); } float3 hedra_fog(float3 c_in, float3 v) { float3 c = float3(0.0f, 0.0f, 0.0f); c = c_in; if (false) { return c; } if ((Sky_1_m0.flags.x & 128u) != 0u) { c = surface_fog(c, hedra_world, -v); } if (O_1_m0.decals.w != 0u) { c = fog_volumes(c, hedra_world, O_1_m0.decals.w); } return c; } float3 filmic_curve(float3 x) { float _927 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _931 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _937 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _941 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_927, _927, _927))) + float3(_931, _931, _931)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_937, _937, _937))) - float3(_941, _941, _941); } float3 aces_curve(float3 c, float white) { float3 _989 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _997 = ((_989 * (_989 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_989 * ((_989 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _1002 = 1.7999999523162841796875f * white; float _1010 = ((_1002 * (_1002 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_1002 * ((0.98372900485992431640625f * _1002) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _997), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _997), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _997)) / float3(_1010, _1010, _1010); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _1065 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_1065, _1065, _1065); float3 _1070 = v * v; float3 _1071 = _1070 * _1070; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_1070 * 4.01109981536865234375f)) - ((_1070 * 25.68199920654296875f) * v)) + (_1071 * 70.35900115966796875f)) - ((_1071 * 74.7779998779296875f) * v)) + ((_1071 * 27.069000244140625f) * _1070), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _1100 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_1100 * Lit_1_m0.tone.y) + _1100) / ((_1100 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_1100) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_1100, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_1100); } return _1100; } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } float3 srgb_to_linear(float3 c) { float3 _257 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _260 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _262 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_262.x ? _257.x : _260.x, _262.y ? _257.y : _260.y, _262.z ? _257.z : _260.z); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _569; bool _572 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _577 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _577)) { break; } uint _605 = decal_entry(k); uint _608 = min(min(_605, 63u), 63u); float3 _614 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_608].to_local).xyz; if (all(bool3(_614.x >= float3(0.0f, -1.0f, 0.0f).x, _614.y >= float3(0.0f, -1.0f, 0.0f).y, _614.z >= float3(0.0f, -1.0f, 0.0f).z))) { _572 = all(bool3(_614.x <= float3(1.0f, 1.0f, 1.0f).x, _614.y <= float3(1.0f, 1.0f, 1.0f).y, _614.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _572 = false; } if (!_572) { uint _773 = k; k = _773 + 1u; continue; } fade = pow(1.0f - abs(_614.y), (_614.y > 0.0f) ? Decal_1_m0.entries[_608].fades.x : Decal_1_m0.entries[_608].fades.y); if (Decal_1_m0.entries[_608].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_608].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_608].axis_y.xyz) * 0.5f) + 0.5f); } float2 _652 = _614.xz; float _653 = decal_level(Decal_1_m0.entries[_608], world_1); if (Decal_1_m0.entries[_608].layers.x > 0u) { float4 _665 = decal_texel(Decal_1_m0.entries[_608].layers.x, _652, _653, (Decal_1_m0.entries[_608].flags.x & 1u) != 0u); float4 _671 = float4(srgb_to_linear(_665.xyz), _665.w) * Decal_1_m0.entries[_608].modulate; float _674 = _671.w * fade; float _680 = _674 * Decal_1_m0.entries[_608].fades.w; out_s.base = lerp(out_s.base, _671.xyz, float3(_680, _680, _680)); if (Decal_1_m0.entries[_608].layers.y > 0u) { float4 _693 = decal_texel(Decal_1_m0.entries[_608].layers.y, _652, _653, (Decal_1_m0.entries[_608].flags.x & 2u) != 0u); float _696 = (_693.x * 2.0f) - 1.0f; float _699 = 1.0f - (_693.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_608].axis_x.xyz * _696) + (Decal_1_m0.entries[_608].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_696 * _696)) - (_699 * _699))))) + (Decal_1_m0.entries[_608].axis_z.xyz * _699)), float3(_674, _674, _674))); } if (Decal_1_m0.entries[_608].layers.z > 0u) { float4 _733 = decal_texel(Decal_1_m0.entries[_608].layers.z, _652, _653, (Decal_1_m0.entries[_608].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _733.x, _674); out_s.roughness = lerp(out_s.roughness, _733.y, _674); out_s.metallic = lerp(out_s.metallic, _733.z, _674); } } if (Decal_1_m0.entries[_608].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_608].layers.w, _652, _653, (Decal_1_m0.entries[_608].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_608].modulate.xyz) * Decal_1_m0.entries[_608].axis_x.w) * fade); } uint _773 = k; k = _773 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } uint object_light_count() { return min(O_1_m0.lights.z, 8u); } uint object_light(uint k) { return min(((((k < 4u) ? O_1_m0.lights.x : O_1_m0.lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float4 hedra_light_dir(uint i, float3 world_1) { float atten = 0.0f; uint _4497 = min(i, 63u); if (Lit_1_m0.lights[_4497].info.x == 0u) { return float4(-Lit_1_m0.lights[_4497].direction.xyz, 1.0f); } float3 _4511 = Lit_1_m0.lights[_4497].position.xyz - world_1; float _4512 = length(_4511); float _4513 = max(_4512, 9.9999999747524270787835121154785e-07f); float3 _4515 = _4511 / float3(_4513, _4513, _4513); atten = omni_attenuation(_4512, Lit_1_m0.lights[_4497].position.w, Lit_1_m0.lights[_4497].direction.w); if (Lit_1_m0.lights[_4497].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-_4515, Lit_1_m0.lights[_4497].direction.xyz), Lit_1_m0.lights[_4497].spot.x)) / max(1.0f - Lit_1_m0.lights[_4497].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_4497].spot.y)); } return float4(_4515, atten); } float shadow_factor(uint i, float3 world_1, float3 n_geo, float3 l) { int dy = -1; bool _3116 = false; uint part = 0u; bool _3118 = false; uint c = 0u; float vis = 0.0f; bool _3114 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint _3126 = min(i, 63u); uint _3136 = min(Lit_1_m0.lights[min(i, 63u)].info.w, 15u); uint _3139 = min(_3136, 15u); uint _3142 = min(_3136, 15u); uint _3148 = max(Shadow_1_m0.lights[min(_3136, 15u)].info.y, 1u); float _3154 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; if (Lit_1_m0.lights[_3126].info.x == 0u) { if (_3154 > Shadow_1_m0.lights[min(_3136, 15u)].fade.y) { return 1.0f; } part = _3148 - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(c < _3148)) { break; } if (_3154 <= Shadow_1_m0.lights[min(_3136, 15u)].splits[min(c, 3u)]) { part = c; break; } c++; continue; } } uint _3198 = part; uint _3204 = min(min((Shadow_1_m0.lights[_3142].info.x + min(_3198, (_3148 - 1u))), 15u), 15u); float _3211 = Shadow_1_m0.tiles[_3204].texel.x + (Shadow_1_m0.tiles[_3204].texel.y * distance(world_1, Lit_1_m0.lights[min(i, 63u)].position.xyz)); float3 _3222 = (world_1 + (n_geo * ((Shadow_1_m0.lights[_3139].params.y * max(Shadow_1_m0.lights[_3139].params.z, 1.0f)) * _3211))) + (l * (Shadow_1_m0.lights[_3139].params.x * _3211)); if (Lit_1_m0.lights[_3126].info.x == 1u) { float3 _3226 = _3222 - Lit_1_m0.lights[min(i, 63u)].position.xyz; float3 _3227 = abs(_3226); if (_3227.x >= _3227.y) { _3114 = _3227.x >= _3227.z; } else { _3114 = false; } if (_3114) { part = (_3226.x >= 0.0f) ? 0u : 1u; } else { if (_3227.y >= _3227.z) { part = (_3226.y >= 0.0f) ? 2u : 3u; } else { part = (_3226.z >= 0.0f) ? 4u : 5u; } } } uint _3260 = min((Shadow_1_m0.lights[_3142].info.x + min(part, (_3148 - 1u))), 15u); float4 _3265 = mul(float4(_3222, 1.0f), Shadow_1_m0.tiles[min(_3260, 15u)].view_proj); if (_3265.w <= 0.0f) { return 1.0f; } float3 _3273 = _3265.xyz / float3(_3265.www); if (!(abs(_3273.x) > 1.0f)) { _3116 = abs(_3273.y) > 1.0f; } else { _3116 = true; } if (!_3116) { _3118 = _3273.z > 1.0f; } else { _3118 = true; } if (_3118) { return 1.0f; } uint _3294 = min(_3260, 15u); float2 _3307 = Shadow_1_m0.tiles[_3294].rect.xy + (float2((_3273.x * 0.5f) + 0.5f, 0.5f - (_3273.y * 0.5f)) * Shadow_1_m0.tiles[_3294].rect.zw); float _3311 = 0.5f * Shadow_1_m0.atlas.x; float2 _3313 = Shadow_1_m0.tiles[_3294].rect.xy + float2(_3311, _3311); float _3317 = 0.5f * Shadow_1_m0.atlas.x; float2 _3319 = (Shadow_1_m0.tiles[_3294].rect.xy + Shadow_1_m0.tiles[_3294].rect.zw) - float2(_3317, _3317); if (Shadow_1_m0.lights[_3139].params.z <= 0.0f) { vis = t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3307, _3313, _3319), _3273.z); } else { float _3330 = Shadow_1_m0.lights[_3139].params.z * Shadow_1_m0.atlas.x; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(dx <= 1)) { break; } vis += t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3307 + (float2(float(dx), float(dy)) * _3330), _3313, _3319), _3273.z); dx++; continue; } dy++; continue; } vis /= 9.0f; } if (Lit_1_m0.lights[_3126].info.x == 0u) { uint _3395 = min(_3136, 15u); vis = lerp(vis, 1.0f, smoothstep(Shadow_1_m0.lights[_3395].fade.x, Shadow_1_m0.lights[_3395].fade.y, _3154)); } return lerp(1.0f, vis, Shadow_1_m0.lights[_3139].params.w); } float hedra_shadow(uint i, float3 l) { bool _4556 = false; if (false) { _4556 = Lit_1_m0.lights[min(i, 63u)].info.y != 1u; } else { _4556 = true; } if (_4556) { return 1.0f; } return shadow_factor(i, hedra_world, hedra_n_geo, l); } void light() { } float3 f_schlick(float3 f0, float vh) { return f0 + ((float3(1.0f, 1.0f, 1.0f) - f0) * pow(1.0f - vh, 5.0f)); } float d_ggx(float nh, float a2) { float _793 = ((nh * nh) * (a2 - 1.0f)) + 1.0f; return a2 / ((3.1415927410125732421875f * _793) * _793); } float v_smith(float nl, float nv, float a2) { return 0.5f / max((nl * sqrt(((nv * nv) * (1.0f - a2)) + a2)) + (nv * sqrt(((nl * nl) * (1.0f - a2)) + a2)), 9.9999997473787516355514526367188e-05f); } float3 light_specular(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float specular) { float _846 = dot(n, l); if (_846 <= 0.0f) { return float3(0.0f, 0.0f, 0.0f); } float3 _851 = normalize(l + v); return (((diffuse / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) + ((f_schlick(f0, max(dot(v, _851), 0.0f)) * (d_ggx(max(dot(n, _851), 0.0f), a2) * v_smith(_846, max(dot(n, v), 9.9999997473787516355514526367188e-05f), a2))) * specular)) * radiance_1) * _846; } float hedra_schlick(float u) { float _4363 = clamp(1.0f - u, 0.0f, 1.0f); float _4364 = _4363 * _4363; return (_4364 * _4364) * _4363; } float hedra_diffuse_brdf(float nl, float nv, float lh, float r) { float _4376 = max(nl, 0.0f); if (false) { return max(0.0f, (nl + r) / ((1.0f + r) * (1.0f + r))) * 0.3183098733425140380859375f; } if (false) { return smoothstep(-r, max(r, 0.00999999977648258209228515625f), nl) * 0.3183098733425140380859375f; } if (false) { float _4397 = (((2.0f * lh) * lh) * r) - 0.5f; return ((0.3183098733425140380859375f * (1.0f + (_4397 * hedra_schlick(nv)))) * (1.0f + (_4397 * hedra_schlick(_4376)))) * _4376; } return _4376 * 0.3183098733425140380859375f; } float3 hedra_light_modes(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float r, float specular) { float3 c = float3(0.0f, 0.0f, 0.0f); float mid = 0.0f; bool _4424 = false; float _4428 = min(dot(n, l), 1.0f); float _4430 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float3 _4432 = normalize(l + v); c = (diffuse * hedra_diffuse_brdf(_4428, _4430, clamp(dot(l, _4432), 0.0f, 1.0f), r)) * radiance_1; if (r > 0.0f) { if (false) { mid = 1.0f - r; mid *= mid; c += ((diffuse * radiance_1) * ((smoothstep(mid - (r * 0.5f), mid + (r * 0.5f), dot(normalize(-reflect(l, n)), v)) * mid) * specular)); } else { if (false) { _4424 = _4428 > 0.0f; } else { _4424 = false; } if (_4424) { c += (((f_schlick(f0, max(dot(v, _4432), 0.0f)) * (d_ggx(max(dot(n, _4432), 0.0f), a2) * v_smith(_4428, _4430, a2))) * (specular * _4428)) * radiance_1); } } } return c; } float3 probe_light(float3 n) { return max(float3(O_1_m0.gi[0u].x + dot(O_1_m0.gi[0u].yzw, n), O_1_m0.gi[1u].x + dot(O_1_m0.gi[1u].yzw, n), O_1_m0.gi[2u].x + dot(O_1_m0.gi[2u].yzw, n)), float3(0.0f, 0.0f, 0.0f)); } float4 gi_diffuse(float3 n, bool baked, float3 baked_light) { if (baked) { return float4(baked_light, 1.0f); } if (true ? ((O_1_m0.extra.x & 8u) != 0u) : false) { return float4(probe_light(n), 1.0f); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float3 sh_irradiance(float3 n) { float3 c = float3(0.0f, 0.0f, 0.0f); c = Sky_1_m0.sh[0u].xyz * 0.2820949852466583251953125f; c += (Sky_1_m0.sh[1u].xyz * (0.48860299587249755859375f * n.y)); c += (Sky_1_m0.sh[2u].xyz * (0.48860299587249755859375f * n.z)); c += (Sky_1_m0.sh[3u].xyz * (0.48860299587249755859375f * n.x)); c += (Sky_1_m0.sh[4u].xyz * ((1.09254801273345947265625f * n.x) * n.y)); c += (Sky_1_m0.sh[5u].xyz * ((1.09254801273345947265625f * n.y) * n.z)); c += (Sky_1_m0.sh[6u].xyz * (0.3153919875621795654296875f * (((3.0f * n.z) * n.z) - 1.0f))); c += (Sky_1_m0.sh[7u].xyz * ((1.09254801273345947265625f * n.x) * n.z)); c += (Sky_1_m0.sh[8u].xyz * (0.546274006366729736328125f * ((n.x * n.x) - (n.y * n.y)))); return max(c, float3(0.0f, 0.0f, 0.0f)); } float2 env_brdf_approx(float roughness, float nv) { float4 _1585 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * roughness) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f); return (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_1585.x * _1585.x, exp2((-9.27999973297119140625f) * nv)) * _1585.x) + _1585.y)) + _1585.zw; } float probe_weight(ProbeEntryU p, float3 world_1) { float3 _3625 = mul(float4(world_1, 1.0f), p.to_local).xyz; float _3641 = min(p.extents.xyz.x - abs(_3625.x), min(p.extents.xyz.y - abs(_3625.y), p.extents.xyz.z - abs(_3625.z))); if (_3641 < 0.0f) { return 0.0f; } if (!(p.extents.w > 0.0f)) { return 1.0f; } return min(_3641 / p.extents.w, 1.0f); } float probe_exit(float o, float d, float e) { if (d > 0.0f) { return (e - o) / d; } if (d < 0.0f) { return ((-e) - o) / d; } return 3.0000000054977557577780399428115e+38f; } float3 probe_lookup(ProbeEntryU p, float3 world_1, float3 dir) { float3 _3683 = mul(float4(dir, 0.0f), p.to_local).xyz; if ((p.info.x & 1u) == 0u) { return _3683; } float3 _3693 = mul(float4(world_1, 1.0f), p.to_local).xyz; return (_3693 + (_3683 * max(min(probe_exit(_3693.x, _3683.x, p.extents.xyz.x), min(probe_exit(_3693.y, _3683.y, p.extents.xyz.y), probe_exit(_3693.z, _3683.z, p.extents.xyz.z))), 0.0f))) - p.offset.xyz; } float3 probe_face_uv(float3 d) { bool _3467 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _3470 = abs(d); if (_3470.x >= _3470.y) { _3467 = _3470.x >= _3470.z; } else { _3467 = false; } if (_3467) { ma = _3470.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_3470.y >= _3470.z) { ma = _3470.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _3470.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 probe_texel(uint row, float3 fuv, uint level) { float _3557 = 0.5f / float(max((Probe_1_m0.counts.z >> level), 1u)); return t_probes.SampleLevel(s_probes, float2((fuv.x + clamp(fuv.y, _3557, 1.0f - _3557)) / 6.0f, (float(row) + clamp(fuv.z, _3557, 1.0f - _3557)) / 8.0f), float(level)).xyz; } float3 probe_sample(uint row, float3 d, float lod) { bool _3585 = false; uint _3590 = max(Probe_1_m0.counts.y, 1u); float _3593 = clamp(lod, 0.0f, float(_3590 - 1u)); uint _3595 = uint(clamp(_3593, 0.0f, 4294967040.0f)); float _3597 = _3593 - float(_3595); float3 _3598 = probe_face_uv(d); float3 _3599 = probe_texel(row, _3598, _3595); if (!(_3597 <= 0.0f)) { _3585 = (_3595 + 1u) >= _3590; } else { _3585 = true; } if (_3585) { return _3599; } return (_3599 * (1.0f - _3597)) + (probe_texel(row, _3598, _3595 + 1u) * _3597); } float4 probe_reflection(float3 world_1, float3 r, float roughness, uint probes) { float3 acc = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3732 = min(Probe_1_m0.counts.x, 8u); float _3738 = roughness * float(max(Probe_1_m0.counts.y, 1u) - 1u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3732)) { break; } uint _3761 = i; uint _3763 = min(_3761, 7u); if (((probes >> Probe_1_m0.probes[_3763].info.w) & 1u) == 0u) { uint _3789 = i; i = _3789 + 1u; continue; } float _3773 = probe_weight(Probe_1_m0.probes[_3763], world_1); if (_3773 <= 0.0f) { uint _3789 = i; i = _3789 + 1u; continue; } acc += ((probe_sample(Probe_1_m0.probes[_3763].info.w, probe_lookup(Probe_1_m0.probes[_3763], world_1, r), _3738) * Probe_1_m0.probes[_3763].offset.w) * _3773); w_sum += _3773; uint _3789 = i; i = _3789 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float4 probe_ambient(float3 world_1, float3 n, uint probes) { float3 c = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; bool _3814 = false; float3 acc = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3821 = min(Probe_1_m0.counts.x, 8u); uint _3825 = max(Probe_1_m0.counts.y, 1u) - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3821)) { break; } uint _3847 = i; uint _3848 = min(_3847, 7u); if (!(((probes >> Probe_1_m0.probes[_3848].info.w) & 1u) == 0u)) { _3814 = Probe_1_m0.probes[_3848].info.y == 0u; } else { _3814 = true; } if (_3814) { uint _3891 = i; i = _3891 + 1u; continue; } float _3866 = probe_weight(Probe_1_m0.probes[_3848], world_1); if (_3866 <= 0.0f) { uint _3891 = i; i = _3891 + 1u; continue; } c = Probe_1_m0.probes[_3848].ambient.xyz; if (Probe_1_m0.probes[_3848].info.y == 1u) { c = probe_texel(Probe_1_m0.probes[_3848].info.w, probe_face_uv(mul(float4(n, 0.0f), Probe_1_m0.probes[_3848].to_local).xyz), _3825); } acc += (c * _3866); w_sum += _3866; uint _3891 = i; i = _3891 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float3 sky(float3 dir) { float _882 = acos(clamp(dot(normalize(dir), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_882 <= 1.57079637050628662109375f) { float _892 = clamp(1.0f - pow(max(1.0f - (1.0f - (_882 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_892, _892, _892)); } float _907 = clamp(1.0f - pow(max(1.0f - ((_882 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_907, _907, _907)); } float3 hedra_ambient(float3 n, float3 v, float3 diffuse, float3 f0, float roughness, float metallic) { float3 dif = float3(0.0f, 0.0f, 0.0f); float3 diffuse_amb = float3(0.0f, 0.0f, 0.0f); float3 dif_1 = float3(0.0f, 0.0f, 0.0f); float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 dif_2 = float3(0.0f, 0.0f, 0.0f); float3 spec_amb = float3(0.0f, 0.0f, 0.0f); float _4604 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float _4605 = 1.0f - roughness; float3 _4612 = f0 + ((max(float3(_4605, _4605, _4605), f0) - f0) * pow(1.0f - _4604, 5.0f)); float4 _4613 = gi_diffuse(n, false, float3(0.0f, 0.0f, 0.0f)); if ((Sky_1_m0.flags.x & 8u) != 0u) { float _4625 = Sky_1_m0.ibl.x * Sky_1_m0.sun.w; diffuse_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 16u) != 0u) { diffuse_amb = lerp(Sky_1_m0.ambient.xyz, sh_irradiance(sky_dir(n)) * _4625, float3(Sky_1_m0.ambient.w, Sky_1_m0.ambient.w, Sky_1_m0.ambient.w)); } if (_4613.w > 0.0f) { diffuse_amb = _4613.xyz; } spec_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 32u) != 0u) { spec_amb = radiance(sky_dir(reflect(-v, n)), roughness) * _4625; } else { if ((Sky_1_m0.flags.x & 64u) != 0u) { spec_amb = float3(0.0f, 0.0f, 0.0f); } } float2 _4671 = env_brdf_approx(roughness, _4604); if (Probe_1_m0.counts.x > 0u) { float4 _4682 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_1 = diffuse_amb; if (_4613.w <= 0.0f) { float4 _4696 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_1 = (diffuse_amb * (1.0f - _4696.w)) + _4696.xyz; } float _4711 = _4671.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * dif_1) + (((spec_amb * (1.0f - _4682.w)) + _4682.xyz) * ((f0 * _4671.x) + float3(_4711, _4711, _4711))); } else { float _4725 = _4671.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * diffuse_amb) + (spec_amb * ((f0 * _4671.x) + float3(_4725, _4725, _4725))); } } else { if ((Lit_1_m0.counts.y & 2u) != 0u) { float3 _4747 = (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f; float _4759 = clamp((dot(n, Lit_1_m0.up.xyz) * 0.5f) + 0.5f, 0.0f, 1.0f); float3 _4760 = lerp((Lit_1_m0.ground_horizon.xyz + Lit_1_m0.ground_bottom.xyz) * 0.5f, _4747, float3(_4759, _4759, _4759)); float3 _4765 = lerp(sky(reflect(-v, n)), _4747, float3(roughness, roughness, roughness)); if (Probe_1_m0.counts.x > 0u) { float4 _4777 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif = _4613.xyz; if (_4613.w <= 0.0f) { float4 _4793 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif = ((_4760 * Lit_1_m0.ambient.w) * (1.0f - _4793.w)) + _4793.xyz; } ambient = (diffuse * dif) + ((((_4765 * Lit_1_m0.ambient.w) * (1.0f - _4777.w)) + _4777.xyz) * _4612); } else { if (_4613.w > 0.0f) { ambient = (diffuse * _4613.xyz) + ((_4765 * _4612) * Lit_1_m0.ambient.w); } else { ambient = ((diffuse * _4760) + (_4765 * _4612)) * Lit_1_m0.ambient.w; } } } else { if (Probe_1_m0.counts.x > 0u) { float4 _4834 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_2 = _4613.xyz; if (_4613.w <= 0.0f) { float4 _4850 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_2 = (Lit_1_m0.ambient.xyz * (1.0f - _4850.w)) + _4850.xyz; } ambient = (diffuse * dif_2) + (((Lit_1_m0.ambient.xyz * (1.0f - _4834.w)) + _4834.xyz) * _4612); } else { if (_4613.w > 0.0f) { ambient = (diffuse * _4613.xyz) + (Lit_1_m0.ambient.xyz * _4612); } else { ambient = Lit_1_m0.ambient.xyz * (diffuse + _4612); } } } } return ambient; } bool hedra_transparent() { bool _4060 = false; bool _4062 = false; if (false) { _4060 = true; } else { _4060 = false; } if (!_4060) { _4062 = false; } else { _4062 = true; } return _4062; } float3 hedra_lit(float4 clip) { bool _4953 = false; bool _4947 = false; DecalSurface surf = _4944; float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 radiance_1 = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); bool _4956 = false; bool _4951 = false; uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); DecalSurface _4968 = { ALBEDO, clamp(METALLIC, 0.0f, 1.0f), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f), AO, hedra_n, EMISSION }; surf = _4968; if (O_1_m0.decals.z > 0u) { DecalSurface _4976 = surf; surf = apply_decals(hedra_world, hedra_n_geo, _4976); ALBEDO = surf.base; METALLIC = surf.metallic; ROUGHNESS = surf.roughness; NORMAL = normalize(mul(surf.normal, hedra_mat3(G_1_m0.view))); } float _4998 = ((surf.roughness * surf.roughness) * surf.roughness) * surf.roughness; float3 _5002 = surf.base * (1.0f - surf.metallic); float _5006 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; float3 _5008 = lerp(float3(_5006, _5006, _5006), surf.base, float3(surf.metallic, surf.metallic, surf.metallic)); float3 _5013 = hedra_view_dir(hedra_world); float3x3 _5016 = hedra_mat3(G_1_m0.view); float _5020 = lerp(1.0f, surf.occlusion, AO_LIGHT_AFFECT); DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); uint _5021 = object_light_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _5021)) { break; } uint _5044 = object_light(k); uint _5045 = min(_5044, 63u); float4 _5049 = hedra_light_dir(_5044, hedra_world); float3 _5050 = _5049.xyz; float _5051 = _5049.w; if (false) { if (!(Lit_1_m0.lights[_5045].info.x == 0u)) { _4947 = _5051 > 0.0f; } else { _4947 = true; } if (_4947) { LIGHT = normalize(mul(_5050, _5016)); LIGHT_COLOR = Lit_1_m0.lights[_5045].color.xyz; ATTENUATION = _5051 * hedra_shadow(_5044, _5050); LIGHT_IS_DIRECTIONAL = Lit_1_m0.lights[_5045].info.x == 0u; SPECULAR_AMOUNT = Lit_1_m0.lights[_5045].spot.z; light(); } uint _5158 = k; k = _5158 + 1u; continue; } if (RIM > 0.0f) { c += (((_5002 * Lit_1_m0.lights[_5045].color.xyz) * (pow(max(9.9999997473787516355514526367188e-05f, 1.0f - max(dot(surf.normal, _5013), 9.9999997473787516355514526367188e-05f)), max(0.0f, (1.0f - surf.roughness) * 16.0f)) * RIM)) * lerp(float3(1.0f, 1.0f, 1.0f), surf.base, float3(RIM_TINT, RIM_TINT, RIM_TINT))); } if (_5051 > 0.0f) { radiance_1 = Lit_1_m0.lights[_5045].color.xyz * _5051; if (Lit_1_m0.lights[_5045].info.y == 1u) { _4951 = false; } else { _4951 = false; } if (_4951) { radiance_1 = Lit_1_m0.lights[_5045].color.xyz * (_5051 * shadow_factor(_5044, hedra_world, hedra_n_geo, _5050)); } if (true) { _4953 = false; } else { _4953 = false; } if (_4953) { c += light_specular(surf.normal, _5013, _5050, radiance_1, _5002, _5008, _4998, Lit_1_m0.lights[_5045].spot.z); } else { c += hedra_light_modes(surf.normal, _5013, _5050, radiance_1, _5002, _5008, _4998, surf.roughness, Lit_1_m0.lights[_5045].spot.z); } if (any(bool3(BACKLIGHT.x > float3(0.0f, 0.0f, 0.0f).x, BACKLIGHT.y > float3(0.0f, 0.0f, 0.0f).y, BACKLIGHT.z > float3(0.0f, 0.0f, 0.0f).z))) { c += (((_5002 * radiance_1) * BACKLIGHT) * (0.3183098733425140380859375f - (max(min(dot(surf.normal, _5050), 1.0f), 0.0f) * 0.3183098733425140380859375f))); } } uint _5158 = k; k = _5158 + 1u; continue; } if (false) { c = (((DIFFUSE_LIGHT * surf.base) * _5020) * (1.0f - surf.metallic)) + (SPECULAR_LIGHT * _5020); } else { if (AO_LIGHT_AFFECT > 0.0f) { c *= _5020; } } if (true) { ambient = hedra_ambient(surf.normal, _5013, _5002, _5008, surf.roughness, surf.metallic); } if ((Lit_1_m0.counts.y & 4u) != 0u) { _4956 = !hedra_transparent(); } else { _4956 = false; } if (_4956) { int _5201; spvTextureSize(t_ao, 0u, _5201); int _5203 = int(min(uint(0), uint(int(_5201) - 1))); uint _5204_dummy_parameter; float4 _5208 = t_ao.Load(int3(int2(min(uint2(int2(clamp(floor(clip.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ao, uint(_5203), _5204_dummy_parameter)) - int2(1, 1)))), _5203)); float _5209 = _5208.x; c *= lerp(1.0f, min(_5209, surf.occlusion), Lit_1_m0.tone.z * Lit_1_m0.tone.w); c += (ambient * min(surf.occlusion, _5209)); } else { c += (ambient * surf.occlusion); } c += surf.emission; return tonemap(hedra_fog(c, _5013)); } float3 hedra_bindings() { return (t_panorama.SampleLevel(s_panorama, float2(0.5f, 0.5f), 0.0f).xyz + t_lightmap.SampleLevel(s_lightmap, float3(float2(0.5f, 0.5f), float(0)), 0.0f).xyz) + t_screen.SampleLevel(s_radiance, float2(0.5f, 0.5f), 0.0f).xyz; } float3 item_fade(float3 c) { if (true ? ((O_1_m0.extra.x & 64u) == 0u) : true) { return c; } return lerp(c, tonemap(O_1_m0.normal[3u].xyz), float3(O_1_m0.normal[3u].www)); } float3 emerge_tint(float3 c, float r) { bool _1266 = false; if (!((O_1_m0.extra.x & 32u) == 0u)) { _1266 = r >= 1.0f; } else { _1266 = true; } if (true ? _1266 : true) { return c; } float _1288 = smoothstep(0.0f, 1.0f, r); return lerp(tonemap(srgb_to_linear(spvUnpackUnorm4x8(O_1_m0.extra.w).xyz)), c, float3(_1288, _1288, _1288)); } float3 linear_to_srgb(float3 c) { float3 _387 = c * 12.9200000762939453125f; float3 _390 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _391 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_391.x ? _387.x : _390.x, _391.y ? _387.y : _390.y, _391.z ? _387.z : _390.z); } float4 hedra_output(float3 c) { float3 rgb = float3(0.0f, 0.0f, 0.0f); rgb = c; if (false) { rgb *= PREMUL_ALPHA_FACTOR; } float4 _5259 = float4(rgb, hedra_transparent() ? ALPHA : 1.0f); if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(_5259.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(_5259.w, 0.0f, 1.0f)); } float4 _5271 = clamp(_5259, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if ((G_1_m0.params.z & 2u) != 0u) { return float4(linear_to_srgb(_5271.xyz), _5271.w); } return _5271; } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); CustomOut _5306 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_5306, gl_FrontFacing); if (hedra_culled(_5306.flags)) { discard; } float _5379 = emerge_reveal(_5306.world, _5306.clip.xy); if (_5379 <= 0.0f) { discard; } if (true) { c = tonemap(hedra_fog(ALBEDO, hedra_view_dir(hedra_world))); } else { float3 _5392 = hedra_lit(_5306.clip); c = _5392; } if (Lit_1_m0.counts.w == 4294967295u) { c += hedra_bindings(); } if (G_1_m0.params.x == 8u) { c = emerge_tint(item_fade(c), _5379); } _5340 = hedra_output(c); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output._5340 = _5340; return stage_output; } fs_custom_depthmain«@struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0; float hedra_pad1; float3 sun_direction; float hedra_pad2; float3 sun_color; float hedra_pad3; float3 sky_ambient; float hedra_pad4; float3 ground_ambient; float light_bands; float3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float _1188[4] = { 0.0f, 2.0f, 3.0f, 1.0f }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D albedo_texture : register(t4); SamplerState SAMPLER_NEAREST_REPEAT : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1263 = transpose(hedra_mat3(m)); return float4x4(float4(_1263[0], 0.0f), float4(_1263[1], 0.0f), float4(_1263[2], 0.0f), float4(-mul(m[3].xyz, _1263), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { affine_uv = i.hedra_v0; gouraud = i.hedra_v1.xyz; } uint2 naga_mod(uint2 lhs, uint2 rhs) { bool2 _1178 = bool2(rhs.x == uint2(0u, 0u).x, rhs.y == uint2(0u, 0u).y); return lhs % uint2(_1178.x ? uint2(1u, 1u).x : rhs.x, _1178.y ? uint2(1u, 1u).y : rhs.y); } void fragment() { if (hedra_p_1_m0.screen_door > 0.0f) { uint2 _1207 = naga_mod(uint2(clamp(FRAGCOORD.xy, float2(0.0f, 0.0f), float2(4294967040.0f, 4294967040.0f))), uint2(2u, 2u)); if (_1188[min(((_1207.y * 2u) + _1207.x), 3u)] < ((hedra_p_1_m0.screen_door * 4.0f) - 0.001000000047497451305389404296875f)) { discard; } } float _1226 = max(affine_uv.z, 9.9999997473787516355514526367188e-05f); float _1232 = clamp(affine_uv.w, 0.0f, 1.0f); ALBEDO = (albedo_texture.Sample(SAMPLER_NEAREST_REPEAT, lerp(UV, affine_uv.xy / float2(_1226, _1226), float2(_1232, _1232))).xyz * hedra_p_1_m0.albedo.xyz) * gouraud; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1422 = facing != hedra_mirrored(_in.flags); hedra_front = _1422; FRONT_FACING = _1422; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1438 = hedra_mat3(G_1_m0.view); float3 _1441 = -normalize(_in.normal); float3 _1443 = normalize(_in.normal); bool3 _1445 = bool3(_1422, _1422, _1422); float3 _1444 = float3(_1445.x ? _1443.x : _1441.x, _1445.y ? _1443.y : _1441.y, _1445.z ? _1443.z : _1441.z); hedra_n_geo = _1444; hedra_n = _1444; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1444 * dot(_1444, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1467 = VERTEX; NORMAL = normalize(mul(_1444, _1438)); float3 _1470 = NORMAL; TANGENT = normalize(mul(t, _1438)); BINORMAL = normalize(mul(cross(_1444, t) * _in.tangent.w, _1438)); float3 _1478 = normalize(-VERTEX); bool _1481 = G_1_m0.camera_pos.w > 0.5f; bool3 _1483 = bool3(_1481, _1481, _1481); VIEW = float3(_1483.x ? float3(0.0f, 0.0f, 1.0f).x : _1478.x, _1483.y ? float3(0.0f, 0.0f, 1.0f).y : _1478.y, _1483.z ? float3(0.0f, 0.0f, 1.0f).z : _1478.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1489 = transpose(_1438); if (any(bool3(NORMAL.x != _1470.x, NORMAL.y != _1470.y, NORMAL.z != _1470.z))) { hedra_n = normalize(mul(NORMAL, _1489)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1489)); } if (any(bool3(LIGHT_VERTEX.x != _1467.x, LIGHT_VERTEX.y != _1467.y, LIGHT_VERTEX.z != _1467.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _711 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_711, _711, _711); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _737 = floor(p); float3 _738 = frac(p); float3 _742 = (_738 * _738) * (float3(3.0f, 3.0f, 3.0f) - (_738 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_737), emerge_hash(_737 + float3(1.0f, 0.0f, 0.0f)), _742.x), lerp(emerge_hash(_737 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_737 + float3(1.0f, 1.0f, 0.0f)), _742.x), _742.y), lerp(lerp(emerge_hash(_737 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_737 + float3(1.0f, 0.0f, 1.0f)), _742.x), lerp(emerge_hash(_737 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_737 + float3(1.0f, 1.0f, 1.0f)), _742.x), _742.y), _742.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _799 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_799) * 0.64999997615814208984375f) + (emerge_noise((_799 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1746 = false; bool _1748 = false; CustomOut _1705 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1705, gl_FrontFacing); if (!((_1705.flags & 2u) != 0u)) { if (false) { _1748 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1748 = false; } _1746 = _1748; } else { _1746 = true; } if (_1746) { discard; } if (emerge_reveal(_1705.world, float2(-1.0f, -1.0f)) <= 0.0f) { discard; } else { return; } } void main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); }  fs_custom_idmainhCstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0; float hedra_pad1; float3 sun_direction; float hedra_pad2; float3 sun_color; float hedra_pad3; float3 sky_ambient; float hedra_pad4; float3 ground_ambient; float light_bands; float3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float _1188[4] = { 0.0f, 2.0f, 3.0f, 1.0f }; static const IdOut _1779 = { float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D albedo_texture : register(t4); SamplerState SAMPLER_NEAREST_REPEAT : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 id; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 id : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1263 = transpose(hedra_mat3(m)); return float4x4(float4(_1263[0], 0.0f), float4(_1263[1], 0.0f), float4(_1263[2], 0.0f), float4(-mul(m[3].xyz, _1263), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { affine_uv = i.hedra_v0; gouraud = i.hedra_v1.xyz; } uint2 naga_mod(uint2 lhs, uint2 rhs) { bool2 _1178 = bool2(rhs.x == uint2(0u, 0u).x, rhs.y == uint2(0u, 0u).y); return lhs % uint2(_1178.x ? uint2(1u, 1u).x : rhs.x, _1178.y ? uint2(1u, 1u).y : rhs.y); } void fragment() { if (hedra_p_1_m0.screen_door > 0.0f) { uint2 _1207 = naga_mod(uint2(clamp(FRAGCOORD.xy, float2(0.0f, 0.0f), float2(4294967040.0f, 4294967040.0f))), uint2(2u, 2u)); if (_1188[min(((_1207.y * 2u) + _1207.x), 3u)] < ((hedra_p_1_m0.screen_door * 4.0f) - 0.001000000047497451305389404296875f)) { discard; } } float _1226 = max(affine_uv.z, 9.9999997473787516355514526367188e-05f); float _1232 = clamp(affine_uv.w, 0.0f, 1.0f); ALBEDO = (albedo_texture.Sample(SAMPLER_NEAREST_REPEAT, lerp(UV, affine_uv.xy / float2(_1226, _1226), float2(_1232, _1232))).xyz * hedra_p_1_m0.albedo.xyz) * gouraud; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1422 = facing != hedra_mirrored(_in.flags); hedra_front = _1422; FRONT_FACING = _1422; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1438 = hedra_mat3(G_1_m0.view); float3 _1441 = -normalize(_in.normal); float3 _1443 = normalize(_in.normal); bool3 _1445 = bool3(_1422, _1422, _1422); float3 _1444 = float3(_1445.x ? _1443.x : _1441.x, _1445.y ? _1443.y : _1441.y, _1445.z ? _1443.z : _1441.z); hedra_n_geo = _1444; hedra_n = _1444; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1444 * dot(_1444, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1467 = VERTEX; NORMAL = normalize(mul(_1444, _1438)); float3 _1470 = NORMAL; TANGENT = normalize(mul(t, _1438)); BINORMAL = normalize(mul(cross(_1444, t) * _in.tangent.w, _1438)); float3 _1478 = normalize(-VERTEX); bool _1481 = G_1_m0.camera_pos.w > 0.5f; bool3 _1483 = bool3(_1481, _1481, _1481); VIEW = float3(_1483.x ? float3(0.0f, 0.0f, 1.0f).x : _1478.x, _1483.y ? float3(0.0f, 0.0f, 1.0f).y : _1478.y, _1483.z ? float3(0.0f, 0.0f, 1.0f).z : _1478.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1489 = transpose(_1438); if (any(bool3(NORMAL.x != _1470.x, NORMAL.y != _1470.y, NORMAL.z != _1470.z))) { hedra_n = normalize(mul(NORMAL, _1489)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1489)); } if (any(bool3(LIGHT_VERTEX.x != _1467.x, LIGHT_VERTEX.y != _1467.y, LIGHT_VERTEX.z != _1467.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1554 = false; bool _1556 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _1554 = hedra_front; } else { _1554 = false; } if (_1554) { return true; } if (false) { _1556 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1556 = false; } return _1556; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _711 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_711, _711, _711); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _737 = floor(p); float3 _738 = frac(p); float3 _742 = (_738 * _738) * (float3(3.0f, 3.0f, 3.0f) - (_738 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_737), emerge_hash(_737 + float3(1.0f, 0.0f, 0.0f)), _742.x), lerp(emerge_hash(_737 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_737 + float3(1.0f, 1.0f, 0.0f)), _742.x), _742.y), lerp(lerp(emerge_hash(_737 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_737 + float3(1.0f, 0.0f, 1.0f)), _742.x), lerp(emerge_hash(_737 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_737 + float3(1.0f, 1.0f, 1.0f)), _742.x), _742.y), _742.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _799 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_799) * 0.64999997615814208984375f) + (emerge_noise((_799 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1775 = false; IdOut _out = _1779; CustomOut _1731 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1731, gl_FrontFacing); if (!hedra_culled(_1731.flags)) { _1775 = emerge_reveal(_1731.world, _1731.clip.xy) <= 0.0f; } else { _1775 = true; } if (_1775) { discard; } _out.id = float4(float(O_1_m0.params.z & 255u), float((O_1_m0.params.z >> 8u) & 255u), float((O_1_m0.params.z >> 16u) & 255u), float(uint(O_1_m0.params.x == 1u) | ((O_1_m0.params.y == 1u) ? 2u : 0u))) / float4(255.0f, 255.0f, 255.0f, 255.0f); id = _out.id; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.id = id; return stage_output; } fs_custom_normal_depthmain/Estruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float2 snap_resolution; float affine_strength; float affine_near; float hedra_pad0; float hedra_pad1; float3 sun_direction; float hedra_pad2; float3 sun_color; float hedra_pad3; float3 sky_ambient; float hedra_pad4; float3 ground_ambient; float light_bands; float3 emission; float overbright; float screen_door; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float _1188[4] = { 0.0f, 2.0f, 3.0f, 1.0f }; static const HedraNormalDepthOut _1780 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D albedo_texture : register(t4); SamplerState SAMPLER_NEAREST_REPEAT : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 normal_depth; static float4 surface; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 normal_depth : SV_Target0; float4 surface : SV_Target1; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1263 = transpose(hedra_mat3(m)); return float4x4(float4(_1263[0], 0.0f), float4(_1263[1], 0.0f), float4(_1263[2], 0.0f), float4(-mul(m[3].xyz, _1263), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { affine_uv = i.hedra_v0; gouraud = i.hedra_v1.xyz; } uint2 naga_mod(uint2 lhs, uint2 rhs) { bool2 _1178 = bool2(rhs.x == uint2(0u, 0u).x, rhs.y == uint2(0u, 0u).y); return lhs % uint2(_1178.x ? uint2(1u, 1u).x : rhs.x, _1178.y ? uint2(1u, 1u).y : rhs.y); } void fragment() { if (hedra_p_1_m0.screen_door > 0.0f) { uint2 _1207 = naga_mod(uint2(clamp(FRAGCOORD.xy, float2(0.0f, 0.0f), float2(4294967040.0f, 4294967040.0f))), uint2(2u, 2u)); if (_1188[min(((_1207.y * 2u) + _1207.x), 3u)] < ((hedra_p_1_m0.screen_door * 4.0f) - 0.001000000047497451305389404296875f)) { discard; } } float _1226 = max(affine_uv.z, 9.9999997473787516355514526367188e-05f); float _1232 = clamp(affine_uv.w, 0.0f, 1.0f); ALBEDO = (albedo_texture.Sample(SAMPLER_NEAREST_REPEAT, lerp(UV, affine_uv.xy / float2(_1226, _1226), float2(_1232, _1232))).xyz * hedra_p_1_m0.albedo.xyz) * gouraud; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1422 = facing != hedra_mirrored(_in.flags); hedra_front = _1422; FRONT_FACING = _1422; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1438 = hedra_mat3(G_1_m0.view); float3 _1441 = -normalize(_in.normal); float3 _1443 = normalize(_in.normal); bool3 _1445 = bool3(_1422, _1422, _1422); float3 _1444 = float3(_1445.x ? _1443.x : _1441.x, _1445.y ? _1443.y : _1441.y, _1445.z ? _1443.z : _1441.z); hedra_n_geo = _1444; hedra_n = _1444; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1444 * dot(_1444, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1467 = VERTEX; NORMAL = normalize(mul(_1444, _1438)); float3 _1470 = NORMAL; TANGENT = normalize(mul(t, _1438)); BINORMAL = normalize(mul(cross(_1444, t) * _in.tangent.w, _1438)); float3 _1478 = normalize(-VERTEX); bool _1481 = G_1_m0.camera_pos.w > 0.5f; bool3 _1483 = bool3(_1481, _1481, _1481); VIEW = float3(_1483.x ? float3(0.0f, 0.0f, 1.0f).x : _1478.x, _1483.y ? float3(0.0f, 0.0f, 1.0f).y : _1478.y, _1483.z ? float3(0.0f, 0.0f, 1.0f).z : _1478.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1489 = transpose(_1438); if (any(bool3(NORMAL.x != _1470.x, NORMAL.y != _1470.y, NORMAL.z != _1470.z))) { hedra_n = normalize(mul(NORMAL, _1489)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1489)); } if (any(bool3(LIGHT_VERTEX.x != _1467.x, LIGHT_VERTEX.y != _1467.y, LIGHT_VERTEX.z != _1467.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1554 = false; bool _1556 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _1554 = hedra_front; } else { _1554 = false; } if (_1554) { return true; } if (false) { _1556 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1556 = false; } return _1556; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _711 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_711, _711, _711); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _737 = floor(p); float3 _738 = frac(p); float3 _742 = (_738 * _738) * (float3(3.0f, 3.0f, 3.0f) - (_738 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_737), emerge_hash(_737 + float3(1.0f, 0.0f, 0.0f)), _742.x), lerp(emerge_hash(_737 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_737 + float3(1.0f, 1.0f, 0.0f)), _742.x), _742.y), lerp(lerp(emerge_hash(_737 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_737 + float3(1.0f, 0.0f, 1.0f)), _742.x), lerp(emerge_hash(_737 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_737 + float3(1.0f, 1.0f, 1.0f)), _742.x), _742.y), _742.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _799 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_799) * 0.64999997615814208984375f) + (emerge_noise((_799 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1776 = false; HedraNormalDepthOut _out = _1780; CustomOut _1731 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1731, gl_FrontFacing); if (!hedra_culled(_1731.flags)) { _1776 = emerge_reveal(_1731.world, _1731.clip.xy) <= 0.0f; } else { _1776 = true; } if (_1776) { discard; } float _1804 = clamp(METALLIC, 0.0f, 1.0f); float _1808 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; _out.normal_depth = float4(normalize(mul(hedra_n, hedra_mat3(G_1_m0.view))), -mul(float4(_1731.world, 1.0f), G_1_m0.view).z); _out.surface = float4(clamp(lerp(float3(_1808, _1808, _1808), ALBEDO, float3(_1804, _1804, _1804)), float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f)); normal_depth = _out.normal_depth; surface = _out.surface; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.normal_depth = normal_depth; stage_output.surface = surface; return stage_output; }  @Ð Ð/ ,@   {Ðþ—4ÌhÜäF‚�SKw;¹”7è· ðçkíVã›cHSLTGlobals@ viewÿÿÿÿproj@ÿÿÿÿ view_proj€ÿÿÿÿ camera_posÀÿÿÿÿviewportÐÿÿÿÿ wire_coloràÿÿÿÿ select_colorðÿÿÿÿ active_colorÿÿÿÿgridÿÿÿÿparams ÿÿÿÿfparams0ÿÿÿÿG_block@ObjectUmodelÿÿÿÿnormal@ÿÿÿÿcolor€ÿÿÿÿparams�ÿÿÿÿextra ÿÿÿÿgi°ÿÿÿÿdecalsàÿÿÿÿlightsðÿÿÿÿO_block HedraParams”albedoÿÿÿÿuv_scaleÿÿÿÿ uv_offsetÿÿÿÿ uv_scroll ÿÿÿÿsnap_resolution(ÿÿÿÿaffine_strength0ÿÿÿÿ affine_near4ÿÿÿÿ hedra_pad08ÿÿÿÿ hedra_pad1<ÿÿÿÿ sun_direction@ÿÿÿÿ hedra_pad2Lÿÿÿÿ sun_colorPÿÿÿÿ hedra_pad3\ÿÿÿÿ sky_ambient`ÿÿÿÿ hedra_pad4lÿÿÿÿground_ambientpÿÿÿÿ light_bands|ÿÿÿÿemission€ÿÿÿÿ overbrightŒÿÿÿÿ screen_door�ÿÿÿÿ hedra_p_block”LightUPcolorÿÿÿÿpositionÿÿÿÿ direction ÿÿÿÿspot0ÿÿÿÿinfo@ÿÿÿÿLitUÐ countsÿÿÿÿambientÿÿÿÿtone ÿÿÿÿup0ÿÿÿÿsky_top@ÿÿÿÿ sky_horizonPÿÿÿÿground_horizon`ÿÿÿÿ ground_bottompÿÿÿÿ inv_view_proj€ÿÿÿÿdirsÀÿÿÿÿlightsÐ@P Lit_blockÐ ShadowLightU@paramsÿÿÿÿsplitsÿÿÿÿfade ÿÿÿÿinfo0ÿÿÿÿ ShadowTileU` view_projÿÿÿÿrect@ÿÿÿÿtexelPÿÿÿÿShadowU atlasÿÿÿÿlights@ tiles` Shadow_block  SunU  directionÿÿÿÿcolorÿÿÿÿSkyUflagsÿÿÿÿto_skyÿÿÿÿsky_topPÿÿÿÿ sky_horizon`ÿÿÿÿ ground_bottompÿÿÿÿground_horizon€ÿÿÿÿsun�ÿÿÿÿambient ÿÿÿÿibl°ÿÿÿÿ fog_colorÀÿÿÿÿfogÐÿÿÿÿ fog_depthàÿÿÿÿ fog_originðÿÿÿÿsuns sh€ ÿÿÿÿ Sky_block ProbeEntryU€to_localÿÿÿÿextents@ÿÿÿÿoffsetPÿÿÿÿambient`ÿÿÿÿinfopÿÿÿÿProbeUcountsÿÿÿÿprobes€ Probe_block DecalEntryU°to_localÿÿÿÿmodulate@ÿÿÿÿfadesPÿÿÿÿaxis_x`ÿÿÿÿaxis_ypÿÿÿÿaxis_z€ÿÿÿÿlayers�ÿÿÿÿflags ÿÿÿÿDecalU ,countsÿÿÿÿlodÿÿÿÿentries @° Decal_block , FogEntryU�to_localÿÿÿÿsize@ÿÿÿÿmaterialPÿÿÿÿalbedo`ÿÿÿÿemissionpÿÿÿÿlights€ÿÿÿÿFogU@ countsÿÿÿÿparamsÿÿÿÿambient ÿÿÿÿup0ÿÿÿÿ light_fog@ÿÿÿÿentries@� Fog_block@ GOhedra_pLitShadow SkyProbeDecalFogt_shadowÿÿÿÿ t_radianceÿÿÿÿ t_panoramaÿÿÿÿt_aoÿÿÿÿ t_lightmapÿÿÿÿt_probesÿÿÿÿt_decalsÿÿÿÿt_screenÿÿÿÿalbedo_textureÿÿÿÿs_shadowÿÿÿÿ s_radianceÿÿÿÿ s_panoramaÿÿÿÿ s_lightmapÿÿÿÿs_probesÿÿÿÿs_decalsÿÿÿÿSAMPLER_NEAREST_REPEATÿÿÿÿ vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depth <#—2 GLSL.std.450‹vs_customehjmpsvxz|~�ƒ„…†‡ˆ‰Š# vs_custom_instancedßáãåçéìîðòô÷ùûýþÿ ¼vs_custom_skinned™›�Ÿ¡£¦©«­¯°±²³´µ¶·¸¹º»_fs_customACEGIKMOQSUWY[^Âfs_custom_depth¦¨ª¬®°²´¶¸º¼¾Àfs_custom_idèêìîðòôöøúüþ[fs_custom_normal_depth=?ACEGIKMOQSUWYZ_Â[H#HHH#@HHH#€HHH#ÀH#ÐH#àH#ðH#H#H # H #0G H #H H H #@H H H #€H #�H # H #°H #àH #ðGH#H#H# H#0H#@GPH#H#H# H#0H#@H#PH#`H#pH#€HHH #ÀH #ÐH#H#H# H#0H#HHH#@H#PG@G`H#H#H#H#H#G GH!#H!#H!H!H!#PH!#`H!#pH!#€H!#�H!# H!#°H! #ÀH! #ÐH! #àH! #ðH! #H!#€H%#H%H%H%#@H%#PH%#`H%#pG&€H(#H(#H)#H)H)H)#@H)#PH)#`H)#pH)#€H)#�H)# G*°H+#H+#H+# H,#H,# H,#H,#H,# H,#0H/#H/#H/# H/#(H/#0H/#@H0#H0#H0# H0#0H3#H3H3H3#@H3#PH3#`H3#pH3#€G4G5�H6#H6#H6# H6#0H6#@H6#@G7G8G9G:H<#H=#H=#H>#H>#H># H?#H?#H@#H@#H@# H@#0H@#8H@#@H@#PH@#`H@#hH@ #pH@ #€H@ #�H@ # HA#HB#HB#HB#HB# HB#(HB#0HB#4HB#8HB#<HB #@HB #LHB #PHB #\HB #`HB#lHB#pHB#|HB#€HB#ŒHB#�GDHF#HF#Gƒ"Gƒ!G„H„#G†"G†!G‡H‡#G‰"G‰!GŠHŠ#GŒ"GŒ!G�H�#G�"G�!G‘"G‘!G“"G“!G”H”#G–"G–!G˜"G˜!Gš"Gš!G›"G›!Gœ"Gœ!G�"G�!GŸ"GŸ!G "G !G¡H¡#G£"G£!G¤"G¤!G¥"G¥!G¦H¦#G¨"G¨!G©"G©!Gª"Gª!G«H«#G­"G­!G®H®#G°"G°!Gô"Gô!GõHõ#G÷"G÷!Gø"Gø!GeGhGjGmGpGsGv Gx *Gz G|G~GG�G�GƒG„G…G†G†G‡Gˆ G‰ GŠ GßGáGãGåGçGéGìGîGðGò Gô G÷GùGû *Gý GþGÿGGGGGGGGGG G G  G™G›G�GŸG¡G£G¦ G© G« G­ *G¯ G°G±G²G³G³G´GµG¶G·G·G¸G¹ Gº G» GA GCGEGGGIGIGKGMGOGQGQGSGU GW GY G[ G[G^G¦ G¨GªG¬G®G®G°G²G´G¶G¶G¸Gº G¼ G¾ GÀ GÀGè GêGìGîGðGðGòGôGöGøGøGúGü Gþ G G GGG= G?GAGCGEGEGGGIGKGMGMGOGQ GS GU GW GWGYGZ   +       +  +@ + ++  ! " # $%+'&%'(& )*)+*,  -. / -01 2.345364578-9+;ý:;<:=>?@ --AB----      C@DEF+G+H+I+J+K+L+M ) N+OÛI@+PÛÉ@+QTø-@+Rÿÿÿÿ+S¯´´>, TSSS+Uެ,>+V ý|>+Wš™?, XUVW+Y”„>+ZÍÌÌ>+[°¬,?, \YZ[+]îÐÐ=+^™Ÿ?+_¿¸8?, `]^_+a+ùø=+b©¡!?+c‹‡?, dabc+e¢šš>+f¶»;?, gefS+h ¦&?+iÜÔT?+jêèh>, khij+lúòr?+mÍÈH?+noñp=, olmn+p“Ž?, qlpn+rÛà`?+sƒŠ ?, trYs, uTX\`dgkoqt+v€+w+xff¦?+yÍÌL?+z�Âõ=+{$tI+|€+}ns\?+~ý®>+²>+€ýò&?+�ÿ* ‚„ …„;…ƒ‡ ˆ‡;ˆ†Š ‹Š;‹‰� Ž�;ŽŒ �;�� ’;’‘”! •”;•“ —";—– ™#;™˜;’š;’›;™œ ž$;ž�;’Ÿ¡( ¢¡;¢ ;™£;’¤¦+ §¦;§¥;ž¨;’©«6 ¬«;¬ª®< ¯®;¯­;™° ² . ³;²±³;²´³;²µ³;²¶³ ¸.¹;¸·¹ »-.-¼;»º¼;»½¼;¸¾¹ À...Á;À¿Á;¸Â¹;ÀÃÁ Å.Æ;ÅÄÆ È1.1É;ÈÇÉ;ÅÊÆ;ÅËÆ;ÅÌÆ;ÈÍÉ;²Î³;²Ï³;²Ð³;²Ñ³;¸Ò¹ Ô . Õ;ÔÓÕ;²Ö³;²×³ Ù.Ú;ÙØÚ;²Û³;ÙÜÚ;ÙÝÚ;ÙÞÚ;ÙßÚ;ÙàÚ;ÙáÚ;ÙâÚ;ÙãÚ;²ä³;ÙåÚ;ÙæÚ;²ç³;»è¼;ÙéÚ;²ê³;²ë³;ÔìÕ;ÙíÚ;²î³;²ï³;²ð³;²ñ³;²ò³;ÔóÕõB öõ;öô;™÷;’ø;¸ù¹;²ú³!ÿ-+ !  +R¸NA, +®Ga=, += ‡?, +š™@, +æ®%=,  !$ % ' +)ö(\?, *)  ++€?+,š™Y?+-fff?, . ,- 0 . 1. 3 9 : bt !|  €.� ƒ ‹+•UUÕ>, –•••+—.M;, ˜———!£,¥    ,¦+++++§? ª!¶!¿+Á?!Ð Ó Ø Þ!) ++½7†5!2- 9$!C, ,+I€¿, J I , K++++L@+MìQ8= O,.,P R. T.V X).)Y `Ea ,EbII,EcRR u* y)!/!=+>·Ñ8!S +T @! e , f   , gOOO+ƒÛÉ?+„UUÕ@+…HB+²®Ga?+³ÍÌÌ=+´ÍÌL>+µ ×#<+¶š™™>, ·WWW+Ïffæ?+Ðrá?+Ñ‚‹µ>+ÒÒŒE=, ÓÐÑÒ+Ô㥛=+Õøˆh?+ÖfI€<, ×ÔÕÖ+اè<+Ù» >+ÚxV?, ÛØÙÚ+ÜYÉ<, ÝÜÜÜ+Þ¯Þ½8, ßÞÞÞ+àªÕ{?+áÁ«Ý>, âááá+ã�Ës>, äããã+åshÍ?+æÜô¿+çLà–½, èåæç+éRѽ+ê4×�?+ë?Æ», ìéêë+íMV»+î2•½+ﻉ?, ðíîï+ ?+…Ï>+%ëµ=+`¿>+T A?+‘+7>++­¦=+�í×=+¼t;?, , , ,1+ hvû?+!Ê@™¾+",P(¾+#Š[¿+$&É©?+%)ñs¾+&¸õÞ½+'Oßݼ+(ŠŠ³?, ) !", *#$%, +&'(,1,)*++-9•GÁ+.ŽÕ€@+/ÿæ[/, 0///, 1---, 2...+31¬<+4îZ€@+5¼tÍA+6Ï·ŒB+7VŽ•B+8P�ØA+9ÿæÛ., :999. <!‡ +ˆ&Ó=+‰\�úA, Љ‰‰. Œ+¤@@, ¥¤¤¤, ¦+  , § + , ¨++ , ©  +, ª+ +, « ++, ¬+++!Õ -+×ff&?+ØÍÌ,@+ÙÍ̈A, ÚÙÙÙ+Û33³>+ÜCq‰=+Ý�E¿;,-ÞÜÝ+ß‚îSB.á.  =!. V „ †+ˆ !Å...+.É+.Ë€+.Ìÿÿÿÿ+.Ñî#+üÏ+ýÿÿÿN,2ÑÑ+"Án�>+#,*ú>+$�Ø‹?+%{¡>+&�Ø ?. ( *++�"!˜-+™®Gá¼+š˜n¿+›X9´<,œI™š›+�{.=+ž¸…?+Ÿ ×#½, +�žŸ+¡ázÁ+¢¸…¿,-£¢ž!·! +Åoƒ:. Ç ç è+ ! .$.&. (. *+6 !¯-  °6+²̼Œ+, ³²²² µ-.-¶ »5 ¼3+½+ÁÿÿO!¨ ,-ª  +«À.­!( +* r1?++ ÀA+, «ª*>.n !‡  +Š ÛIA. Œ . � .‘  4!  -. .  .  . $ . & !Ì +Ï +Ð ¬Å'7 Ò 7.7Ó Õ 8.8Ö . Ú Ü 9.9Ý .á .ã .å !@ !“  – +š A. ž .   . ¢ ¥ ...§ ´  µ  ð  ö  à  !à  +ò €@.ô .ö .ø .ú . ü !H   I(+MÀ@+NA!l  . q!“% +»æ±a!Í % !ù  %.%.% $& &%!U . ]. _.%a!½ ¾<+Àþ Â:+Æü!Í>= Ð>.>Ñ!C!@!& 5B 8-+_€>.a g +�+‘!¼EEE,EÁGG,DÉ L¤+,EÊHH ÌD+Î,-ÖÁÁ!1! !!.--!6 . 8. :!H !V1! y --. {!¡@ .@¤. Å!Í!ä !ò@ , ø§§§,-ù++. û. ý. †. ˆ!Â+Ãù¢>! ð . ò.ô. ö!9 .<!s . z! ‘ . ›. �. Ÿ. ¡. £. ¥. Ê!ç +ù ×#>+ú€A.,ü. . . . . ,-÷üü,-øýý,2ÿÑÑ!& . *,-T§§ f ;fe;fh k-;kj n;nm q;qp t;ts;kv;nx {;{z } ;}|;}~ €-;€ ‚;‚�;{ƒ;{„;€…;‚†;{‡;{ˆ;{‰;{Š ª;fß;fá;kã;nå;qç;té;qì;qî;qð;qò;kô;q÷;tù;nû;{ý;}þ;}ÿ;€;‚;{;{;€;‚;{;{;{;{ ;f™;f›;k�;nŸ;q¡;t£ §;§¦;q©;k«;n­;{¯;}°;}±;€²;‚³;{´;{µ;€¶;‚·;{¸;{¹;{º;{»;qA;fC;fE;kG;nI;qK;qM;kO;nQ;qS;qU;qW;qY \ ;\[;{^. z;q¦;f¨;fª;k¬;n®;q°;q²;k´;n¶;q¸;qº;q¼;q¾;\À,-ÈII. Ê. Ì;qè;fê;fì;kî;nð;qò;qô;kö;nø;qú;qü;qþ;q;\;{+ C,     .  A.A;q=;f?;fA;kC;nE;qG;qI;kK;nM;qO;qQ;qS;qU;\W;{Y;{Z. b dF.Fe6þÿ7-ü7ýøû=�=‘ùøQüQüP-VZý þ86  7 ø ùøˆ  �  ˆ   ¼ © þ86#$7!7"ø ;0/1;023A%&ƒIA'(†Iù4ø4Ç5!ª 65I÷7ú687ø8þ"ø7A:;& G=<;A:=( =>=ª ?>GÇ@!« A@I÷BúACDøCÇE<H« FEI>/FùBøD>/‚ùBøB= G/÷HúGIHøI9 J *PKJ+þKøHÇL!'« MLI÷NúMOPøOÇQ<« RQI>2RùNøP>2‚ùNøN= S2÷TúSUTøU9 V .PWV+þWøTÇX<G« YXI÷ZúY[Zø[÷\ú?]\ø]Ç^!G« _^I÷`ú_a`øaAbc&K=dcþdø`Abe&J=feþfø\A:g( I=hgª ihG÷júikjøkAbl&K=mlAbn&L=onA:p( G=qpª rqGPturrrr©suomþsøjùZøZAbv&J=wvþw86{|7 y7zøx;€�A%}ƒIA'~†Iù‚ø‚Aƒ„}I=…„Aƒ†~I=‡†’ˆ…‡P‰y+‘Šˆ‰>ŠA‹ŒH=�ŒƒŽ+z…��ŽA‹�H>��=‘þ‘86 ” 7 “ø’ù™ø™Ž š“  ›“–Ž œ›ƒ �œ¼ž“˜© Ÿžš�þŸ86¢£7¡ø A%¤ƒIù¨ø¨ ©+¡¥¦Aª«¤ =¬«º ­¬§÷®ú­¯®ø¯O °©©9 ±”°Q²©P³±²þ³ø®þ©86µ¶ø´A'·†Iù¸ø¸A:¹·LH=º¹ »&º'þ»86¾¿7½ø¼A'À†IùÂøÂA:ÃÀLG=ÄÃA:ÅÀLI=ÆÅ° ǽ©ÈÇÆÄÇɽ „ÊÉ'ÂËÈÊÇÌË� Í&ÌÁþÍ86 ÏÐøÎ;ÓÒuA'цIùÔøÔA:ÕÑL =ÖÕ ×&Ö Ù&× AØÚÒÙ= ÛÚþÛ86ݶøÜAÞ߉IùàøàA:áß H=âá ã&â'þã86æ¿7åøäAÞç‰IùèøèA:éç G=êéA:ëç I=ìë° íå©îíìêÇïå „ðï'ÂñîðÇòñ� ó&òÁþó86õ¶øôA'ö†Iù÷ø÷A:øöKH=ùø ú&ù'þú86ý¿7üøûA'þ†IùÿøÿA:þKG=A:þKI=° ü©Çü „'ÂÇ �þ 86 7) 7 ø A%ƒIA¥IùøAªGI=Ab =O ƒ   BAªGG=º §©+…A: IG=!  ")!G‚#"Gp$#Q% Q&% '(&ˆ(' )((+ *) ++* $þ+86127-7-.7/7 0ø,=$3¨=4©ù5ø5‚6-G|.76©80 /o:7P ;.:V9<34X=<;8þ=86,BC7 ?7 @7,Aø>;XWY;RQI;‹UV;ONP;0ST;`dcA%DƒIA'E†IAF¥I=$G¨=H©ùZøZ>NA9[õù\ø\ö]_ùeøe=Efdªagbf› hg÷iúh]iøiQjfª kjI©lkGIPEmlG‚Enfm>dnù^ø^=oQ° po[÷qúpqrørù]øqùsøs=vQ9wýv x&wÁ z&xÁAy{FHz=)|{Q}|P~?+‘}~O €¾�€J› ‚�÷ƒú‚„…ø„¼†€K› ‡†>S‡ùƒø…>S‚ùƒøƒ= ˆS¨ ‰ˆ÷Šú‰‹Šø‹ù_øŠQŒ€ �ŒƒŽ+�Q�|Q��Q‘|Q’‘Q“€º ”“ ©•”’� –Ž•>U–Q—|Q˜—º ™˜ ÷šú™›šø›=œUQ�|Qž�QŸ|O  ŸŸ”¡@ …¢¡§�£¢§ ¤1ž+£…¥œ¤>U¥ùšøšO-¦€€>W|=)§W9¨ §?Q©|Qª©Q«|Q¬«¬ ­¬I÷®ú­¯®ø¯Q°|Q±°Ç²ªG« ³²I9´1±¦¨³O µ´´9 ¶ µQ·´P¸¶·Q¹|…º¸¹Q»º=¼U…½»¼AؾNI= ¿¾O ÀººQÁ|QÂÁ…ýÂP ÅÃÃà  Ä.¿ÀÅAØÆNI>ÆÄQÇ|QÈǬ ÉÈI÷ÊúÉËÊøËQÌ|QÍÌÇΪH« ÏÎI9Ð1ͦ¨ÏQÑÐ…ÒÑLƒÓÒ+QÔÐ…ÕÔLƒÖ+Õ…×ÓÓƒØ+×…ÙÖÖƒÚØÙ Û( Ú ÜÛQÝ|O ÞÝÝŽ ßÞÓQà|O áààŽ âáÜ� ãßâQä|O åääŽ æåÖ� çãæ  èEçAØéN= êéP ì½½½  ë.êèì  íEëAØîN>îíùÊøÊQï|Qðï¬ ñðI÷òúñóòøóQô|QõôÇöª« ÷öI9ø1õ¦¨÷A‹ùN =úùQûø ü.úû½A‹ýN >ýüA‹þNH=ÿþQø .ÿ½A‹NH>A‹NG=Qø .½A‹NG>ùòøòù®ø®Q|Q ¬  I÷ ú   ø Q |Q Ǫ'« I91¦¨AØNJ= O 9  Q|O … Q|QŽ =UŽ � AØNJ>ù ø ùtøtù_ø_= Q€! G>Q!ù\ø]A‹"NH=#" $+#M+A‹%NH>%$A‹&NG='& (+' +A‹)NG>)(=,*Nþ*86./7,7-ø+ù0ø0…1,,ƒ2-+…312�43+…5O4…654ˆ7-6þ786<=797:7;ø8ù?ø?…@::ƒA+;…B@A�CB; DC…E9D…F99ƒG+;…HFG�IH; JI…K:J�LEK M(L>ˆN§MþN86 RS7 P7QøOùUøUƒ VKPƒW+Q XWTŽ YVX� ZPYþZ86 de7 \7 ]7 ^7 _7 `7 a7b7cø[ùhøh”i\^¼ ji ÷kújlkølþføk� m^]  nEm”o\n p(o ”q]n r(q ”s\] t(s>9 uRar9v.pb9w<itb…xvwŽ yuxˆ z`gŽ {yc� |z{… }|_Ž ~}iþ~86 � 7 €øAÞ‚‰Iù†ø†  ‡E€Abˆ‚ =‰ˆO Љ‰”‹‡Š Œ+‹I+ �Œ¼ Ž�ƒ÷�úŽ��ø�ˆ‘�ƒƒ’+‘ƒ“+’ ”(“ •”„ƒ–+• —+– +Ab˜‚J=™˜O š™™Ab›‚=œ›O �œœP Ÿ———  ž.š�Ÿþžø�ƒ �ƒˆ¡ ƒƒ¢+¡ £(¢ ¤£…ƒ¥+¤ ¦+¥ +Ab§‚K=¨§O ©¨¨Abª‚L=«ªO ¬««P ®¦¦¦  ­.©¬®þ­86 ± 7 °ø¯ù¸ø¸Ž ¹°²…º³WP »ººº� ¼¹»… ½°¼…¾´µP ¿¾¾¾� À½¿Ž Á°²� ÂÁ·… ð…Ĵ¶P ÅÄÄÄ� ÆÃň ÇÀƈȵ¶P ÉÈÈȃ ÊÇÉþÊ86 ÎS7 Ì7ÍøËùñøñ”òÓÌ…óÏò”ô×Ì…õÏô”öÛÌ…÷ÏöP øóõ÷� ùøÝ… úøùƒ ûúߎ üøà� ýüâ… þøý� ÿþäˆ ûÿ”è”ì”ðP …ÏÍ�Ü…ƒÞ… à�  á…  �  ㈠ P    ˆ þ86  7 ø;Ø;<ù=ø=  >(0‘ ?>>;?= @;  A@  B+A12ƒ CB1ƒD.-P EDDDˆ FCE>;F= G;= H;… IGH… JII= K;Ž LK3Ž MI4� NLMŽ OI5= P;… QOPƒ RNQŽ SJ6� TRSŽ UJ7= V;… WUVƒ XTWŽ YJ8… ZYI� [XZ  \([:  ]\‘ ^,]þ^86 a 7 `ø_AÞb‰IùcøcAªdbHI=edŽ f`e  g(ffAªhbHG=ihA:jbIH=kjª lkG÷múlnmønŽ ogi� pogŽ qgiP riii� sqrˆ tpsþtømª ukH÷vúuwvøw9 x±gP yiii9 z±yˆ {xzþ{øvª |k ÷}ú|~}ø~9 Îgiþø}ª €k÷�ú€‚�ø‚9 ƒgþƒø�þg86†‡7 …ø„;Ø‹Œù�ø�Ž Ž…ˆ  � Ž>‹�= �‹= ‘‹= ’‹O “’’� ”“Š”•‘”P –•••� —�–>‹—A‹˜‹I=™˜A‹š‹G=›š�œ™›A‹�‹H=ž�…Ÿœž   Ÿþ 86£‡7 ¢ø¡ù­ø­  ®¢  ¯ ¢… °¯¯Ž ±¯Lƒ ²¥±… ³°²9´†®� µ®¦9¶†µQ·³ ¸.´¶·� ¹®§9º†¹� »®¨9¼†»Q½³ ¾.º¼½Q¿³ À.¸¾¿� Á®©9†Á� îª9ĆÃQų Æ.ÂÄÅ� Ç®«9ȆÇ� É®¬9ʆÉQ˳ Ì.ÈÊËQͳ Î.ÆÌÍQϳ Ð.ÀÎÏþÐ86ÔÕ7 Ò7-ÓøÑ;‹àáA'Ö†IùâøâA:ãÖI=äãÇåäMª æåI© çNæN÷èúçéèøéþ+øèAªêÖGI =ëêŽ ìÒx9í£ì…îí׎ ïìØ� ðïÚ9ñ£ð…òñÛ�óîò ô1´yó>àôQõÓ¾ öõ ÷÷úöø÷øø -ùÓ”úùÞ û ú…üßû ý ü=þàƒÿý§…ÿz�þ + +>àù÷ø÷…ëÏ=àƒˆyþ86 S7 7 ø;0 A' †IAÞ ‰IùøA: I=ÇMª I¨ ÷úø¾  +> ùø> Nùø=  © NN÷úøþøA:  = @O 9 !  9 "a! #1 + P %###  $."%þ$86 ( 7 'ø&A')†IAÞ*‰Iù+ø+A:,)I=-,Ç.-ª /.I© 0N/N÷1ú021ø2þ'ø1Ab3)G =43O 5449 6a5Q74P 9777  8.'69þ886 < 7 ;ø:A=>“Iù?ø?Aƒ@>G=A@PB; ‘CABO DCC  EEDþE86I/7G7HøFùJøJƒK+G L(KˆM+H NLMƒO+N P+O +þP86 S 7 RøQ;ØUV;RWI;`scA=T“IùXøXQYR Z+YI+ [ZAb\T =]\O ^]]Ab_TH=`_O a``ˆb[ƒƒc+bAªdTH =ed9fIceP hfff  g.^ahAªiT =jiŽ kgj>UkA:lTIH=ml n&mùoøoöprùtøt=Eusªavbu› wv÷xúwpxøxQyuª zyI©{zGIPE|{G‚E}u|>s}ùqøq=~W° ~n÷€ú€�ø�ùpø€ù‚ø‚=…W ‡&… A†‰Tˆ‡=ЉQ‹ŠQŒ‹Q�ŠO Ž��”�ŽR �+�I+ ‘�¸ ’‘Œ÷“ú’”•ø”Q–ŠO —––>U—ù“ø•Aª˜TKI=™˜¸ š‘™÷›úšœ›øœƒ�‘ŒAªžTKI=Ÿžƒ ŸŒˆ¡� Q¢ŠO £¢¢= ¤UAª¥TKG=¦¥9§I¡¦P ©§§§  ¨.£¤©>U¨ù›ø›ù“ø“ùƒøƒùrør=ªW€«ªG>W«ùoøpAb¬TJ=­¬O ®­­Ab¯T=°¯O ±°°ƒ²[ƒˆ³²ƒAª´T =µ´9¶I³µP ¸¶¶¶  ·.®±¸Aª¹TJ =º¹Ž »·º= ¼UQ½R¾ ¾½ PÀ¾¾¾© ¿À¼»AªÁTKH=ÂÁŽ Ã¿ÂþÃ86.ÄÅ7.Æ7.ÇøÈª ÊÇɪ ÍÆËª ÎÇ̧ ÏÍΦ ÐÊÏ©.ÒÐÑLJ.ÓÆÒ„.ÔÓÒ‚.ÕÆÔþÕ86 Ø 7 ×øÖA=Ù“I=#Ú˜=Û›ùÜøÜQÝ×QÞ×ßÞ àÝ߈áàP â áQã× ä+ãI+ åäˆæåOP-çâæA:èÙII=éèÇêé« ëêI÷ìúëíìøíVîïÚÛXðïç O ñððAªòÙKH=óòŽ ôñóþôøìgEõÚÉ|2öõQ÷çQ.øöoùø…ú÷ù ûú þ+ûüýn.ÿþQ.ö9.ÄÿQ.ö€.Q.ö9.ÄQçQ.öo…      + üýn.  Q. ö‚. Ñ .* É .'P2j.Ú‚.Ñ .&Ég2Ú‚2 2&_ÚO AªÙKH=Ž þ86  7 ø;Ø'(A=!“Iù)ø)Ab,!+I=-,O .--Ž /.">'/= 0'Ab1!+G=21O 322Q4…5#4Ž 635� 706>'7= 8'Ab9!+H=:9O ;::Q<…=#<Ž >;=� ?8>>'?= @'AbA!+ =BAO CBBQD…E#DŽ FCE� G@F>'G= H'AbI!+=JIO KJJQL…M$LQN…OMNŽ PKO� QHP>'Q= R'AbS!+J=TSO UTTQV…W$VQX…YWXŽ ZUY� [RZ>'[= \'Ab]!+K=^]O _^^Q`…a¤`Qb…cabƒdc+…e%dŽ f_e� g\f>'g= h'Abi!+L=jiO kjjQl…m$lQn…omnŽ pko� qhp>'q= r'Abs!+'=tsO uttQvQw…xvwQyQz…{yzƒ|x{…}&|Ž ~u}� r~>'= €'  �(€fþ�86 …S7 ƒ7„ø‚A=†“I="‡–=ˆšù‰ø‰A:ІIG=‹Š Œ)‹G‚�ŒGpŽ�…�„ŽV�‘‡ˆX’‘ƒ�O “’’þ“86-—˜7•7–ø”ù¤ø¤Ž¥œ•�¦¥ Q§¦Q¨¦…©§¨…ª¡– «ª ¬%©«Q­¦…®¬­Q¯¦�°®¯Ž-±£°O-²¦¦�-³±²þ³86¶·7µø´ù¸ø¸ ¹(µ  º(µ …»¹º…¼»»…½¼¼þ½86 ÁÂ7 ¿7 Àø¾;ØÆÇ;RÈI;`ÔcAÞÉIA=Ä“IùÉøÉ>Æ¿AªÊÄ =Ëʺ ÌËÅ÷ÍúÌÎÍøÎ9ÏÝùÐøÐöÑÓùÕøÕ=EÖÔªa×bÖ› Ø×÷ÙúØÑÙøÙQÚÖª ÛÚI©ÜÛGIPEÝÜG‚EÞÖÝ>ÔÞùÒøÒ=ßȰ àßÏ÷áúàáâøâùÑøáùãøã=åÈ9ææå é&æÁA:êÃéI=ëêª ìëI÷íúìîíøî= ïÆ ð&æÁAbñÃðI=òñO óòòˆ ôóg õ&æÁAböÃõH=÷öO ø÷÷ ùø”úÀù9û¶úŽ üôûAªýÄ =þýŽ ÿüþ� ïÿ>ÆùíøíùäøäùÓøÓ=È€G>ÈùÐøÑùÍøÍ= Æþ86 Â7 7 øAÞ‰IA= “Iù ø Ab   =  O   Aª  =P   . 9 ÁAª G=P   .þ86 7 7 7 ø;‹%&;0)*;‹#$;Ø'(A%ƒIAÞ‰IA= “I="!–="šù+ø+Aƒ,I=-,P.+‘/-.Q0/10Ab2 =32O 433 5C4>#5Aª7 6 =87º 98§÷:ú9;:ø;Aª< 6I==<ƒ>1= ?(> >#?ù:ø:A:@ II=A@ÇBAw« CBI÷DúCEFøEAªG I=HGAªI G=JI=K# L1HJK M(LAªN H=ON PMOº QL ©RQP AªS I=TS…URT>%UùDøF=V#WVAªX I=YX…ZWY [% Z \[ƒ]+\>%]ùDøDAª^  =_^ `_¾ a`>÷búacbøcAbd =edO fee”gf=h%Aªi H=jiƒkgjAªl  =ml…nkm o% n poƒq+p r(hq>%rùbøb=s% t+s +>%tAbu  =vuO wvv>'wA:x II=yxÇzy'« {zI÷|ú{}~ø}Aª  =€º �€ >)�ù|ø~>)‚ù|ø|= ‚)© ƒN‚‚÷„úƒ…„ø…Aª† 6G=‡†ƒˆ1‡Aª‰ 6H=ЉAª‹ 6G=Œ‹ƒ�ŠŒ Ž(�ˆ�ˆŽ �+� +A:‘ IG=’‘ “)’H‚”“Gp•”ˆ–+•ƒ—+� ˜.–+—= ™'9 š<9 ›…š˜Aªœ K =�œŽ ž›�AªŸ  = ŸP ¢     ¡.™ž¢>'¡ù„ø„= £'9 ¤Á£>'¤= ¥'=¦%P ¨¦¦¦  §.¥¨þ§86-®¯7ª7 «7 ¬7­ø©;‹· ;‹¹I;µ´¶;‹¸ A°±ªIùºøº ¾&ª½Aª¿±J¾ =À¿ Â+À ÁmàÄ&ª½AªÅ±JÄ =ÆÅ Ç%Æ­ª ÈÃ÷ÉúÈÊÉøÊP-Ë ÇþËøÉ Ì&ª½AbͱJÌG=ÎÍO ÏÎÎŽ Ðϧ  Ѭ¸Òѳ© ÓÒ³¬ ÔЃ ÕÔ«ˆ ÖÕÓƒ ×Ыˆ Ø×Ó  Ù%ÖØ  Ú(ÖØQÛÙ Ü( ÛQÝÚ Þ%ÇÝP-ßÜÞ>´ßª àà ÷áúàâãøâA‹ä´I=åäQæÙ ç(åæQèÙ é(çèA‹ê´G=ëêQìÚ í%ëìQîÚ ï%íîP-ðéï>´ðùáøãª ñÃI÷òúñóôøóˆ õ¬Ðˆ ö¬Ð”÷õö>·÷ˆ ø«Ðˆ ù¬Ð”úøù>¸úˆ û«Ðˆ ü«Ð”ýûüƒþý+>¹þùòøôQÿÐQÐ %ÿQÐ…Lˆª ÃG© QÐQ«ƒ Q ¬Q ¬…   Q ¬Q¬… � …Q¬…Q¬…ƒ>·Q«Q¬…Q«Q¬…�…… Q ¬…! �"!>¸"Q#«Q$«…%#$Q&«Q'«…(&'�)%(…*…+…,+ …-, ª .ÃG©/.-*ƒ0)/>¹0ùòøòùáøá=1¸=2¸…312=4·=5¹…645ƒ736=8· 98¸ :9²÷;ú:<=ø<=>¸ ?>¸ @?²÷Aú@BCøBA‹D´G=ED=F¹º GF ©HGIEA‹I´G>IHùAøC=J¸º KJ ÷LúKMNøMA‹O´G=PO=Q¹RQ=S¸…TLSˆURT V%PUA‹W´G>WVùLøNA‹X´I=YX=Z¹[Z=\¸…]L\ˆ^[] _(Y^A‹`´I>`_ùLøLùAøAù;ø=¸ a7 ÷búacdøcA‹e´G=fe=g·º hg ©ihIfA‹j´G>jiùbød=k¸lk m7ƒnlm=o·ˆpno=q¸rq s7�trs=u·ˆvtu w%pv=x¸yx z7ƒ{yz=|·ˆ}{|=~¸~ €7��€=‚·ˆƒ�‚ „(}ƒ=…·º †… ÷‡ú†ˆ‰øˆA‹Š´I=‹Š Œ(‹wA‹�´G=Ž� �%Ž„P-�Œ�>´�ù‡ø‰A‹‘´I=’‘A‹“´G=”“ •%”w¸ –’•÷—ú–˜™ø˜A‹š´G=›š œ%›wA‹�´G>�œù—ø™A‹ž´I=Ÿž  (Ÿ„A‹¡´I>¡ ù—ø—ù‡ø‡ùbøbù;ø;=-¢´þ¢86§¨7¤7 ¥7 ¦ø£;‹¬­;‹® A°©ªIù¯ø¯ °&¤½A¼±©J°=3²±Q³²Q´³Qµ²Q¶µ·¶Ab¸© =¹¸O º¹¹”»¥ºQ¼²Q½¼ƒ¾»½…¿·¾ À¿ Á%À+…´Á>¬ÂQòQÄú ÅÄ ÷ÆúÅÇÆøÇQȲQÉÈ Ê+É ÁmËÊQ̲O ÍÌÌŽ ÎͧQÏÎQÐÎ Ñ%ÏЪ ÒËI÷ÓúÒÔÕøÔˆ ֦Π×BÖƒØ×+…Ùר… ÚÎΈ Û¦Ú ÜBÛ Ý(ܲˆÞÙÝ>®ÞùÓøÕª ßË ÷àúßáâøá  㦃 äãÎ  å(äf æBåQçäQèäQéä ê(èé ë(çê ì%ë �íæì>®íùàøâª îËH÷ïúîðñøðO-ò¦¦ óBòƒôóÑQõ¦ öõQ÷΃øö÷P-ùôøQúùQûù ü(úû ý%ü  -þ(ùª ÿBþ� ýÿ>® ùïøñ… ѧ  (Å ˆ + Q Î  (Å ˆ + P-   - E O- ¦¦  B Q ¦Q ΃ P- ”   Q Î  Q ¦ƒ    (  >® ùïøïùàøàùÓøÓ= ¬= ®… « Q ²Q  ˆ    + +Q ²Q      …   >¬ ùÆøÆ= ¬þ 86' ( 7" 7# 7$ 7% 7& ø! A°) ªIù- ø- . &" ½Ab/ ) J. H=0 / Q1 0 …2 1 $ ´ 3 2 ÷4 ú3 5 4 ø5 Q6 0 ƒ7 & % …8 6 7 9 1 …: 9 # ; : < %; +…= 8 < þ= ø4 > # ˆ? > $ @ +? % & º A $ ©B A @ % º C $ ©D C & @ E $ …F 1 E ƒG D B …H F G …I H * J I K J ƒL +K ˆM L I ˆN I + ƒO , N …P I O ƒQ §P …R I Q ƒS +R ¸ T I µ©U T S M V 1 º W $ ©X W B D …Y $ X �Z # Y [ (Z …\ V [ ] \ ^ %] +Q_ 0 ƒ` & % ƒa D B ƒb ` a ƒc D B …d ^ c …e d U �f b e …g _ f þg 86l =7i 7j 7k øh ;‹m n ùo øo …p i j >m p =q m =r m …s q r >m s =t m =u m …v t u >m v =w m ƒx +w y (x >m y =z m ={ m …| z { >m | =} m ~ (i > k € ~  …� } € þ� 86 † ‡ 7ƒ 7 „ 7 … ø‚ ;R� I;‹� ‘ ;Ø‹ Œ ;ØŽ � ;`¢ cAÞˆ ‰IA°‰ ªIù’ ø’ Ab“ ‰ H=” “ O • ” ” Aª– ‰ GG=— – Ž ˜ • — >‹ ˜ Aª™ ‰ GI=š ™ › &ƒ ½A9œ ‰ J› J=� œ ùž øž öŸ ¡ ù£ ø£ =E¤ ¢ ªa¥ b¤ › ¦ ¥ ÷§ ú¦ Ÿ § ø§ Q¨ ¤ ª © ¨ I©ª © GIPE« ª G‚E¬ ¤ « >¢ ¬ ù  ø  =­ � Q® �  ¯ &® '° ° ­ ¯ ÷± ú° ± ² ø² ùŸ ø± ù³ ø³ Qµ � Q¶ � =· � ° ¸ · ©¹ ¸ ¶ µ =º � Ç» º „¼ » '½ ¹ ¼ Ǿ ½ � ¿ &¾ Á À &¿ ÁAèÁ ˆ À = Á Qà  O Ä Ã Ã  Å Ä >Ž Å >� +QÆ Â QÇ Æ « È Ç I÷É úÈ Ê É øÊ QË Â O Ì Ë Ë ƒ Í Ì „ Î BÍ Ï (Î P Ð Ï Ï Ï ˆ Ñ Í Ð >Ž Ñ Ò BÍ QÓ Â QÔ Ó QÕ Â QÖ Õ 9× l Ò Ô Ö >� × QØ Â QÙ Ø ª Ú Ù H÷Û úÚ Ü Û øÜ = Ý Ž  Þ Ý Qß Â O à ß ß ”á Þ à Qâ  Qã â ä (á ã ƒå +ä Qæ  Qç æ ƒè +ç é (è ˆê å é ë (>ê =ì � Qí  Qî í  ï ë î ƒð +ï …ñ ì ð >� ñ ùÛ øÛ ùÉ øÉ …ò š š �ó +ò …ô Lš = õ Ž ”ö … õ …÷ ô ö ƒø ó ÷ = ù ‹ Qú  O û ú ú =ü � …ý š š ƒþ +ý …ÿ ü þ … Š ø  ø …  ˆ ÿ   ¿ HÇ ¿  &  & ½Aª ‰   = …  Ž û � ù >‹ ù´ ø´ ù¡ ø¡ = � €  G>�  ùž øŸ =  ‹ þ 86  7 7  7  7- ø ;0# $ ;Ø f;‹  ;0% & ;‹!  ;0  ;R" I;0  ;`` cAÞ ‰IA° ªIù' ø' ( & ½A¼)  J( =3* ) Q+ * P,  +‘- + , O . - - Q/ * P0  ‘1 / 0 O 2 1 1 Ab3  =4 3 O 5 4 4 ”6  5 Q7 * Q8 7 ƒ9 6 8 Ab:  =; : O < ; ; ”=  < Q> * Q? > º @ ? QA  QB  �C A B …D C §> D QE * QF E º G F ÷H úG I J øI K 9 ˆL K = QM  º N L M > N ùH øJ > ‚ùH øH = O  ÷P úO Q R øQ S 9 ˆT S = QU  ¸ V T U > V ùP øR > ‚ùP øP = W  ÷X úW Y X øY Z 9 ˆ[ Z = > [ ùX øX ù\ ø\ ö] _ ùa øa =Eb ` ªac bb › d c ÷e úd ] e øe Qf b ª g f I©h g GIPEi h G‚Ej b i >` j ù^ ø^ =k " ©l @ 6° m k l ÷n úm n o øo ù] øn ùp øp =r " Çs r ª t s I¨ u t ÷v úu w x øw ª y s ># y ùv øx ># Nùv øv = z # ©{ z }~ª | s I¨ } | ÷~ ú}  € ø ª � s >% � ù~ ø€ >% Nù~ ø~ = ‚ % ©ƒ ‚ €=„  Q…  P-† „ … Q‡  =ˆ  P-‰ ‡ ˆ =Š " ° ‹ Š 'Pa� ‹ ‹ ©-Œ � ‰ † =Ž " ° � Ž Pa‘ � � ©-� ‘  Œ Q’ � Q“ � ƒ” ’ “ …• ” §Q– � Q— � �˜ – — …™ ˜ §š { ° › s H©œ › š { …� • œ �ž ™ � Ž Ÿ  ž �    Ÿ Ž ¡ 2 ž � ¢ . ¡ 9£ §   ¢ =¤ " ° ¥ ¤ ÷¦ ú¥ § ¨ ø§ = © Qª * O « ª ª 9 ¬ †     … ­ « ¬ Q® * O ¯ ® ® � ° ­ ¯ …± ƒ • ² +£ +…³ ± ² Ž ´ ° ³ � µ © ´ > µ ù¦ ø¨ =¶ ! …· ƒ • …¸ · £ �¹ ¶ ¸ >! ¹ ù¦ ø¦ ùq øq ù_ ø_ =º " €» º G>" » ù\ ø] ¨ ¼ @ ÷½ ú¼ ¾ ½ ø¾ Q¿  QÀ  9 Á '  9 = ¿ À >! Á ù½ ø½ =  =à ! PÄ Â Ã þÄ 86 Ë Ì 7 Æ 7 Ç 7 È 7É 7Ê øÅ ;‹ç  ;Râ ã ;RÞ I;RØ I;Ò Ñ Ó ;Rè I;Rä å ;Rß I;0Ù Ú ;Õ Ô Ö ;Øæ f;‹à á ;Ü Û Ý ;R× I;`ï c;`6 c;`Z c;`w c;`¿ c;` cAÞÍ ‰IA°Î ªIùé øé ® ê Ê |ùë øë öì î ùð øð =Eñ ï ªaò bñ › ó ò ÷ô úó ì ô øô Qõ ñ ª ö õ I©÷ ö GIPEø ÷ G‚Eù ñ ø >ï ù ùí øí =ú Ø A:û Î II=ü û ý &ü ©þ ê ý ° ÿ ú þ ÷ úÿ  ø ùì ø ù ø = Ø Ç  „  'Â Ê  Ç  Ï ¨ ê ÷ ú ø ª  I>Ù ù ø >Ù ‚ù ø =  Ù ÷ ú   ø ùì ø  & ‚  G= Ø © ê    & ½Aƒ Î J I=  P Ç +‘   O    P È ‘   O    9- ®   É Q  Q  º !  ÷" ú! # " ø# =$ × % &$ AR& Ñ % >&  =' × ( &' Aµ) Ô ( >)  =* × €+ * G>× + =, × ª - , ÷. ú- / . ø/ ùì ø. ù" ø" ù ø ùî øî =0 Ø €1 0 G>Ø 1 ùë øì ù2 ø2 ö3 5 ù7 ø7 =E8 6 ªa9 b8 › : 9 ÷; ú: 3 ; ø; Q< 8 ª = < I©> = GIPE? > G‚E@ 8 ? >6 @ ù4 ø4 =A Þ =B × ° C A B ÷D úC D E øE ù3 øD ùF øF =H Þ =I Þ J &I ARK Ñ J =L K =M Þ N &M AµO Ô N =-P O 9Q  L Ç È P R &H A€S Û R >S Q ùG øG ù5 ø5 =T Þ €U T G>Þ U ù2 ø3 ùV øV öW Y ù[ ø[ =E\ Z ªa] b\ › ^ ] ÷_ ú^ W _ ø_ Q` \ ª a ` I©b a GIPEc b G‚Ed \ c >Z d ùX øX =e ß =f × ° g e f ÷h úg h i øi ùW øh ùj øj =l ß m &l A‹n Û m =o n ¸ p o ÷q úp r q ør >à >â Iùs øs öt v ùx øx =Ey w ªaz by › { z ÷| ú{ t | ø| Q} y ª ~ } I© ~ GIPE€  G‚E� y € >w � ùu øu =‚ â =ƒ × ° „ ‚ ƒ ÷… ú„ … † ø† ùt ø… ù‡ ø‡ =‰ â Š &‰ A‹‹ Ô Š G=Œ ‹ =� ß Ž &� A‹� Ô Ž G=� � ‘ %Œ � =’ â “ &’ A‹” Ô “ I=• ” =– ß — &– A‹˜ Ô — I=™ ˜ š (• ™ ƒ› ‘ š œ (› =� â ž &� A‹Ÿ Ô ž G=  Ÿ =¡ â ¢ &¡ A‹£ Ô ¢ I=¤ £ ƒ¥   ¤ ¦ (¥ ˆ§ œ ¦ =¨ à =© â ª &© A‹« Û ª =¬ « ­ (¬ …® ­ § �¯ ¨ ® >à ¯ ùˆ øˆ ùv øv =° â €± ° G>â ± ùs øt =² ß ³ &² A‹´ Û ³ =µ ´ ¶ µ =· à ¸ (· ²ˆ¹ ¶ ¸ º %¹ +>ä Iù» ø» ö¼ ¾ ùÀ øÀ =EÁ ¿ ªa bÁ › à  ÷Ä úà ¼ Ä øÄ QÅ Á ª Æ Å I©Ç Æ GIPEÈ Ç G‚EÉ Á È >¿ É ù½ ø½ =Ê ä =Ë × ° Ì Ê Ë ÷Í úÌ Í Î øÎ ù¼ øÍ ùÏ øÏ =Ñ ä Ò &Ñ A‹Ó Û Ò =Ô Ó º Õ Ô ÷Ö úÕ × Ö ø× =Ø ä Ù &Ø A‹Ú Ô Ù G=Û Ú =Ü ß Ý &Ü A‹Þ Ô Ý G=ß Þ à %Û ß =á ä â &á A‹ã Ô â I=ä ã =å ß æ &å A‹ç Ô æ I=è ç é (ä è ƒê à é ë (ê =ì ä í &ì A‹î Ô í G=ï î =ð ä ñ &ð A‹ò Ô ñ I=ó ò ƒô ï ó õ (ô ˆö ë õ =÷ ä ø &÷ A€ù Û ø =ú ù …û ö º ƒü +û Žý ú ü þ &÷ A€ÿ Û þ >ÿ ý ùÖ øÖ ùÐ øÐ ù¾ ø¾ = ä € G>ä  ù» ø¼ ùq øq ùk øk ùY øY = ß €  G>ß  ùV øW ù ø ö  ù ø =E  ªa b › ÷ ú  ø Q ª   I©  GIPE  G‚E  >  ù ø = è = × °    ÷ ú   ø ù ø ù ø = è  & A‹ Û  =  º   ÷ ú  ø = ! æ =" è # &" A€$ Û # =% $ O & % % � ' ! & >æ ' =( ç =) è * &) A‹+ Û * =, + �- ( , >ç - ù ø ù ø ù ø =. è €/ . G>è / ù ø =0 ç 1 0 2 1 Ž 3 Æ 2 = 4 æ ƒ5 +2 =6 ç 7 (6 Ð ˆ8 5 7 Ž 9 4 8 � : 3 9 þ: 86 ? @ 7 < 7 = 7> ø; A%A ƒIAÞB ‰IA°C ªIùD øD AªE A IIH=F E AªG A IGH=H G AªI A IHH=J I P K F H J  L EK AbM A =N M O O N N AƒP A I=Q P PR = +‘S Q R QT S Ž U L T ƒ V = U AªW A =X W º Y X §P[ Y Y Y © Z [ V O ƒ \ = Z ] B\ ƒ ^ = Z _ (] P ` _ _ _ ˆ a ^ ` 9 b Ë < Z a ] > º c ] Pe c c c © d e b < þd 86 j 7 g 7 h 7 i øf A%k ƒIAÞl ‰IA°m ªIùn øn Aªo k IIH=p o Aªq k IGH=r q Aªs k IHH=t s P u p r t  v Eu Abw k =x w O y x x Aƒz k I={ z P| h +‘} { | Q~ } Ž  v ~ ƒ € h  Aª� k =‚ � º ƒ ‚ §P… ƒ ƒ ƒ © „ … € y A:† m IG=‡ † 9 ˆ Ë g „ i {‡ Aª‰ m GH=Š ‰ P Œ Š Š Š  ‹ .g ˆ Œ þ‹ 86’ “ 7Ž 7 � 7 � 7 ‘ ø� ;¥ ¤ Ì;0Ÿ   ;R› I;¥ ¦ § ;0¡ ¢ ;Rœ I;‹£  ;0� ž ;`Ô c;`x c;`� cA%” ƒIAÞ• ‰IA– — ŒI=˜ �=™ ‘ù¨ ø¨ © &Ž ÁA:ª • © I=« ª ¬ &Ž ÁAb­ • ¬ G=® ­ O ¯ ® ®  ° &Ž ÁA:± • °  =² ± ³ &² ½ ¶ &³ ½Ab· — G¶ I=¸ · ¹ &³ ½A:º — G¹ I=» º ¼ &³ ½A:½ — G¼ G=¾ ½ ¿ )¾ GAƒÀ ” I=Á À P � +‘à Á  QÄ Ã Å Ä ª Æ « I÷Ç úÆ È Ç øÈ É &³ ½AªÊ — GÉ HG=Ë Ê º Ì Å Ë ÷Í úÌ Î Í øÎ þ+øÍ ‚Ï ¿ G>› Ï ùÐ øÐ öÑ Ó ùÕ øÕ =EÖ Ô ªa× bÖ › Ø × ÷Ù úØ Ñ Ù øÙ QÚ Ö ª Û Ú I©Ü Û GIPEÝ Ü G‚EÞ Ö Ý >Ô Þ ùÒ øÒ =ß œ ° à ß ¿ ÷á úà á â øâ ùÑ øá ùã øã =å œ æ &å ç &³ ½Aªè — Gç Gæ =é è ¼ ê Å é ÷ë úê ì ë øì =í œ >› í ùÑ øë ùä øä ùÓ øÓ =î œ €ï î G>œ ï ùÐ øÑ ùÇ øÇ =ñ › ‚ò ¿ G ó &ñ ò €ô » ó õ &ô ½ ÷ &õ ½Abø — H÷ H=ù ø Qú ù Qû ù  ü C� ¯ …ý û ü �þ ú ý Qÿ ¸ Q ¸   ( +… ÿ  …  þ Ž  �  �  �  Q ¸ …  þ Ž  ‘  �   ª « G÷ ú ø ƒ ¯    Q  Q  ¾    ÷ ú   ø Q  Q  ¾    >�  ù ø >� ‚ù ø =  � ÷ ú   ø Q ¾   ©  IG>›  ù ø Q  Q  ¾ !  ÷" ú! # $ ø# Q% ¾ & % ©' & H >› ' ù" ø$ Q( ¾ ) ( ©* ) J>› * ù" ø" ù ø ù ø =+ › ‚, ¿ G - &+ , €. » - / &. ½ 0 &/ ½Aƒ1 — H0 I=2 1 P3 +‘4 2 3 Q5 4 ¼ 6 5 ÷7 ú6 8 7 ø8 þ+ø7 O 9 4 4 Q: 4 P ; : : : ˆ < 9 ; Q= < > = º ? > +¨ @ ? ÷A ú@ B C øB QD <  E D º F E +>Ÿ F ùA øC >Ÿ NùA øA = G Ÿ ¨ H G ÷I úH J K øJ QL < º M L +>¡ M ùI øK >¡ NùI øI = N ¡ ÷O úN P O øP þ+øO Q &/ ½AbR — HQ G=S R QT < …U T §�V U §QW < …X W §ƒY §X P-Z V Y O-[ S S O-\ S S …-] Z \ �-^ [ ] Aª_ — II=` _ O-a S S …b §` P-c b b �-d a c O-e S S O-f S S �-g e f …h §` P-i h h ƒ-j g i Qk ¸ ¼ l k ÷m úl n o øn -p +^ d j Qq < 9r þp q >£ r ùm øo …s k ` ùt øt öu w ùy øy =Ez x ªa{ bz › | { ÷} ú| u } ø} Q~ z ª  ~ I©€  GIPE� € G‚E‚ z � >x ‚ ùv øv =.ƒ ¤ ³ „ ƒ Ñ÷… ú„ … † ø† ùu ø… ù‡ ø‡ >¦ Ìù‰ ø‰ öŠ Œ ùŽ øŽ =E� � ªa� b� › ‘ � ÷’ ú‘ Š ’ ø’ Q“ � ª ” “ I©• ” GIPE– • G‚E— � – >� — ù‹ ø‹ =.˜ ¦ ³ ™ ˜ Ñ÷š ú™ š › ø› ùŠ øš ùœ øœ =.ž ¦ oŸ ž =.  ¤ o¡   P-¢ Ÿ ¡ Ž-£ ¢ s �-¤ ^ £ -¥ +¤ d j =¦ £ Q§ < 9¨ þ¥ § �© ¦ ¨ >£ © ù� ø� ùŒ øŒ =.ª ¦ €.« ª Ñ>¦ « ù‰ øŠ ùˆ øˆ ùw øw =.¬ ¤ €.­ ¬ Ñ>¤ ­ ùt øu =® £ ˆ¯ ® š >£ ¯ ùm øm ª ° « I÷± ú° ² ± ø² ³ &³ ½Ab´ — G³ H=µ ´ =¶ £ Q· µ Q¸ µ  ¹ 1· ¸ Å º .¶ +¹ >£ º ù± ø± =» £ Q¼ ¸  ½ .+» ¼ þ½ 86 À 7 ¿ ø¾ A'Á †Iù ø AªÄ Á JII=Å Ä AbÆ Á JI=Ç Æ O È Ç Ç ”É È ¿ �Ê Å É AªË Á JGI=Ì Ë AbÍ Á JG=Î Í O Ï Î Î ”Ð Ï ¿ �Ñ Ì Ð AªÒ Á JHI=Ó Ò AbÔ Á JH=Õ Ô O Ö Õ Õ ”× Ö ¿ �Ø Ó × P Ù Ê Ñ Ø  Ú (Ù fþÚ 86ß à 7 Ü 7 Ý 7 Þ øÛ A'á †Iùâ øâ ÷ã úÝ ä ã øä På Þ +þå øã A:æ á I=ç æ Çè ç '« é è I© ê Né ‚÷ë úê ì ë øì 9 í À Ü Pî í +þî øë þ¥86 ñ 7 ð øï ;0û ü ;‹õ ö ;‹ù ú ;‹ó ô ;‹÷ ø ùý øý  þ ð Qÿ þ Qþ ¾ ÿ ÷úøQþ Qþ ¾ >û ùø>û ‚ùø= û ÷ ú  ø Q þ >õ Q ð ¾   ÷úø>ó Qð >÷ Qð >ù ùø>ó +Qð >÷ Qð >ù ùøù ø Qþ Qþ ¾ ÷úøQþ >õ Q ð ¾ !  ÷"ú!#$ø#>ó LQ%ð >÷ %Q&ð >ù &ù"ø$>ó ¤Q'ð >÷ 'Q(ð )(>ù )ù"ø"ùøQ*þ >õ *Q+ð ¾ ,+ ÷-ú,./ø.>ó ò Q0ð >÷ 0Q1ð 21>ù 2ù-ø/>ó TQ3ð 43>÷ 4Q5ð 65>ù 6ù-ø-ùøù ø =7ó =8÷ =9õ ˆ:89�;:+…<;§==ù =>õ ˆ?=>�@?+…A@§P B7<AþB86 GH7D7 E7FøCAIJ I=#K£=L¤ùOøOA:PJIH=QPÂRQF S)RGpTSˆU§TQVEƒW+U X+VUWQYEƒZ+U [+YUZQ\E�]\Xˆ^]Mp_D�`_[ˆa`NP-b^apcFVîdKLXedbcO feeþf86 kl7h7 i7jøg;0pqAIm I=#n£=o¤ùrørA:smIG=ts u)tG‚vuGpwv x+j w y+x Ámzyp{zƒ|x{9 }ñ i9 ~Gh}z¼ | ¨ €÷�ú€‚ƒø‚€„zG® …„u>p…ù�øƒ>pNù�ø�= †p÷‡ú†ˆ‡øˆþ~ø‡ƒ‰+|Ž Š~‰€‹zG9 ŒGh}‹Ž �Œ|� ŽŠ�þŽ86’“7%�7 ‘ø�ù”ø”Q•�P–‘+‘—•–O ˜——Q™�O š™™Q›šQœ˜ �œƒž›�QŸšQ ˜ ¡ ƒ¢Ÿ¡Q£šQ¤˜ ¥¤ƒ¦£¥ §%¢¦ ¨%ž§¸ ©¨ ÷ªú©«ªø«þ øªQ¬�Q­¬º ®­ ¨ ¯®÷°ú¯±°ø±þ+ø°Q²�Q³²ˆ´¨³ µ%´+þµ86º=7·7¸7¹ø¶ù¼ø¼º ½¸ ÷¾ú½¿¾ø¿ƒÀ¹·ˆÁÀ¸þÁø¾¸ ¸ ÷ÃúÂÄÃøÄŹƒÆÅ·ˆÇƸþÇøÃþ»86 ÌÍ7%É7 Ê7 ËøÈùÎøÎQÏÉPÐË ‘ÑÏÐO ÒÑÑQÓÉQÔÓÇÕÔGª ÖÕI÷×ú֨׸ØþÒø×QÙÉPÚÊ+‘ÛÙÚO ÜÛÛQÝÉO ÞÝÝQßÜQàÒQáÞ9âºßàáQãÜQäÒQåÞ9æºãäåQçÜQèÒQéÞ9êºçèé ë%æê ì%âë í(ì Ž îÒí� ïÜîQðÉO ñððƒ òïñþò86øù7 ô7 õ7ö7÷øó;;‹þ ;;Øýf;RÿI;`cAIú I=#û£=ü¤ùøA:úII= &'A: úIG=    ) G‚  Gp  …ö ùøöùø=Eªab› ÷úøQª I©GIPEG‚E>ùø=ÿ° ÷ ú !ø!ùø ù"ø"=%ÿ '&%LA&(úG'=%)(Q*)Q+*Â,÷+Ç-,Gª .-I÷/ú.0/ø0ùø/>)=%192’1ô¼ 32 ÷4ú354ø5ùø4= 6ýQ7)Q87>)=%99 :Ì9ôõ9 ;k8:Q<)Q=<Ž >;=Ž ?>2� @6?>ý@=Aþ�BA2>þBù#ø#ùø=Cÿ€DCG>ÿDùø=Eþº FE+÷GúFHGøH= Iý=JþP KJJJˆ LIK>ýL>þ+ùGøG= Mý=NþPOMNþO86TU7 Q7 R7SøP;Ø^_;‹Z ;0\];ØYf;`a;R[I;`ncAIV I=#W£=X¤ùbøbA:cVII=dc e&d'A:fVIG=gf h)gG‚ihGùjøjökmùoøo=Epnªaqbp› rq÷súrksøsQtpª utI©vuGIPEwvG‚Expw>nxùløl=y[° zye÷{úz{|ø|ùkø{ù}ø}=[ €&LA&�VG€=%‚�Qƒ‚Q„ƒÂ…S„dž…Gª ‡†I¨ ˆ‡÷‰úˆŠ‹øŠQŒ‚Q�Œª Ž�I>\Žù‰ø‹>\Nù‰ø‰= �\÷�ú�‘�ø‘ùmø�>`‚=%’`9“’’Q¼ ”“ ÷•ú”–•ø–ùmø•Q—‚O ˜——>^˜Q™‚Qš™ª ›šG÷œú›�œø�Qž‚QŸžQ ‚P¡R ‘¢ ¡O £¢¢9 ¤ñ £9 ¥GŸ¤i>^¥ùœøœ= ¦Y= §^Ž ¨§“� ©¦¨>Y©=ªZ�«ª“>Z«ù~ø~ùmøm=¬[€­¬G>[­ùjøk=®Zº ¯®+÷°ú¯±°ø±= ²Y=³ZP ´³³³ˆ µ²´>Yµ>Z+ù°ø°= ¶Y=·ZP¸¶·þ¸86¼½7º7»ø¹A¾¿­IùÁøÁ Ã&ºÀ„Äà €ÅÄ» Ç&ÅÆAbÈ¿IÇ=ÉÈþÉ86>ÌÍ7=ËøÊ;ÐÏÑA¾Î­IùÒøÒQÓËQÔËQÕÔQÖÓ9×¼ÖIŽØ×ÕQÙÔQÚÓ9Û¼ÚIŽÜÛÙ�ÝØÜQÞÔQßÓ9à¼ßIŽáàÞ�âÝáQãÔQäÓ9å¼äIŽæåã�çâæA€èÏI>èçQéÔQêÓ9ë¼êGŽìëéQíÔQîÓ9ï¼îGŽðïí�ñìðQòÔQóÓ9ô¼óGŽõôò�öñõQ÷ÔQøÓ9ù¼øGŽúù÷�ûöúA€üÏG>üûQýÔQþÓ9ÿ¼þHŽÿýQÔQÓ9¼HŽ�QÔQÓ9¼HŽ �  Q ÔQ Ó9 ¼ HŽ  � A€ÏH>=>Ïþ867Cøùø=ùA€ >= úP A€>ý867@øù ø Q! >ù!Q" O #"">ú#ý86%&ø$ù'ø'ý86 * 7 )ø(ù+ø+Q,)Q-).-Q/)P 0,./þ0863£72ø1A%4ƒIA56ôIù7ø7Aª96I=:9¼ ;: ÷<ú;=<ø=þ2ø<Aƒ>4G=?>‘@?2QA@¼ BA>÷CúBDCøDþ2øCA8E6=-FEŽ-GF§O-H@@QI@P-JIIˆ-KHJ…-LKG -MLˆ-NMG=OËQP@Ž-QNPQR@QS@PTQRS‘UOTO VUUQWUP XWWWˆ YVXPZY+þZ86\&ø[;‹`aA%]ƒIA5^ôIùbøb=1cÇ= d´‘ ecd  fEeAgh^ = ih9 j*i  kEj”lfk m(l >`mAªn^=on¾ poL÷qúprqør=s`Aªt^=ut…vsu�wv§ xwAªy^=zyˆ{xz>`{ùqøqAg|^½= }|Ag~^ˆ= ~Q€f…�€§�‚�§P „‚‚‚  ƒ.}„Ag…^= †…=‡`Ž ˆ†‡� ‰ƒˆ=оO ‹ŠŠ… Œ‰‹AªŽ^�=�ŽŽ �Œ�Ag’^‘= “’� ”�“>ú”=•Ì= –±P—–+‘˜•—9™3˜O š™™>±š=1›Í= œ´‘ �›œ  žE�>´ž=-ŸºA8 ^G=-¡ …-¢Ÿ¡A8£^H=-¤£�-¥¢¤A8¦^ =-§¦Aª¨] =©¨Ž-ª§©�-«¥ª>º«Aƒ¬]G=­¬‘®­™Q¯®Aª°^J=±°ƒ²¯_Aª³^K=´³ µ(´Åˆ¶²µ ·+¶ +…¸±·Ž-¹«¯Pº¹¯¸>ùºý86E»¼7E½7E¾ø¿ªaÀ¾b©EÂÀÁ¾‰EýÂþÃ86Å&øÄ;ÌËÉA5ÆôI=#Ç÷=ÈøùÍøÍAªÏÆÎ=ÐϺ ÑÐ ÷ÒúÑÓÒøÓ=ÔÒO-ÕÔÔ -×+ÕªÖmEØ×9EÙ»ØÊQÚÙ„ÛÚHQÜÙ€ÝÛÜ Þ&Ý A‹ßËÞ=àßAªáÆÎ=âá…ãâò ƒä㟠åàä÷æúåçæøçüøæùÒøÒ=èùO-éèèAÙêùH=ëê ì(ë>P-íììˆ-îéí=-ïºAÙðù =ñð ò+ñ +P-ôòò -ó.ïîôVîõÇÈWöõóO ÷ööAbøÆI=ùøO úùù… û÷ú= üú… ýûü>Ûýý8617ÿøþùøQÿO QÿO QÿO P1 þ 86  7 ø ùø91 T1Q O ‘  Q P Q P Q P P+Pþ86øA% ƒIù!ø!Ab" J=#"Ab$ K=%$Ab& L='&Ab( '=)(P*#%')þ*86--.7-,ø+ù/ø/Q0,Q1,ƒ2+1P-302þ386 56ø4;078;09:ù;ø;÷<ú‚=>ø=>7Nù<ø>>7‚ù<ø<= ?7¨ @?÷Aú@BCøB>9‚ùAøC>9NùAøA= D9þD86 GH7FøEA'I†IùJøJA:KII=LKÇMLH« NMIÇOFv« POI¥ QNPþQ86UV7S71TøRA%WƒIùXøX>ÄS>ÇTAƒYWI=ZY9[ Z>Ê[9\>Ë\Aƒ]WI=^]’_^S>Ì_Aƒ`WI=a`91ba’1cbT>ÍcQdSO edd>ÎeAƒfWI=gfQhSO ihhPji+‘kgjO lkk>ÏlA¸mÊH=nmO onn>Ðoý86xy7 q7 r7s7-t7-u7v7wøp;0z{ù|ø|>±q>´rO }ss>µ}O ~ss  Dr~Q€sŽ �€>¶�9-‚-t>º‚9-ƒ-u>½ƒ>¾v|.„w>Ä>·¦÷…ú‚†‡ø†>z‚ù…ø‡>z‚ù…ø…= ˆz÷‰úˆŠ‹øŠ=ŒÄ= �±PŽ�+‘�ŒŽO ���>±�=1‘Ç= ’´‘ “‘’>´“=1”Ç= •µ‘ –”•>µ–=1—Ç= ˜¶‘ ™—˜>¶™ýø‹ýø‰ý86@ ¡7›7 œ7 �7ž7Ÿøš;C£¤A%¢ƒIù¥ø¥Aƒ¦¢H=§¦‘¨§›A€©£I>©¨÷ªú‚«ªø«=¬·A€­£I>­¬ùªøªO ®››Aد£G>¯®  °EœAر£H>±°=-²ºAµ³£ >³²AR´£>´Ÿ  µE�P¶µžA€·£J>·¶=¸¾A€¹£K>¹¸=-º½Aµ»£L>»º=.¼¿ .½*¼É|¾½AR¿£'>¿¾9À£=@Á£þÁ86 Ã6øÂ;0ÄÅùÆøÆ÷Çú‚ÈÉøÈ>Ä‚ùÇøÉ>ÄNùÇøÇ= ÊÄþÊ86ÌÍøËùÎøÎ÷ÏúNÐÏøÐ=ÑÊ= Ò±PÓÒ+‘ÔÑÓþÔøÏ= Õ±PÖÕ+þÖ86 Ù 7 Øø×ùÚøÚ÷ÛúNÜÛøÜ=ÝÊ91ÞÝ‘ ßÞØþßøÛþØ86ãä7á7 âøàA'å†IùæøæA:çåI=èçÇéèH« êéI¥ ëêâ©ìëI+…íáìþí86ñò7@ï7 ðøî;Øúû;ØüýA%óƒIA'ô†IA5õôI=#ö÷=÷øùþøþQÿï9 Gÿ¥ ð>ó>ÓQï>ÒQïO-Abó=O-…->èAƒ ôI=  Aƒ ôG=  91  9U  AƒóI=91Q ï  E Q ï  EP© >ñ>òQ ï>ðQïO >ú= ú= ú”Ž ƒ   !E >ú!= "ú  #D"Q$ïQ%$Ž &#%Aƒ'óI=('Q )ïP*)+‘+(*O ,++>±,= -±>Ñ-= .±‘ /  0E/>´0= 1´= 2ú‘ 32  4E3>µ4‘ 5&  6E5>¶6= 7± 87  9E8Aª:ó =;:º <;§P><<<© =>©9>Ö=Q-?ï>º?Q-@ï>½@QAï>¾A>×ø>Ø+>ÛK>Ü+>Ý+>Þ+>ß >à§>á+>â >ã >äf>å+>æ >çf9Bï9CÅT1D= E´¶FE1š GF÷HúGIHøI= J´‘ KDJ  LEK>òLùHøH= M×¶NMøš ON÷PúOQPøQ= R×>üR= SüO-TSSŽ-UTLƒ-VUùP WV >üW= XüO-YXX= ZüO-[ZZ”\Y[ƒ]+\ ^( ] _^A‹`üH>`_= a´= bµA‹cüI=dcŽ ebd= f¶A‹güG=hgŽ ifh� jei= k´A‹lüH=mlŽ nkm� ojn=pØP rppp  q.aor  sEq>´s= t´‘ uDt  vEu>òvùPøP= wѶxw.š yx÷zúy{|ø{=}Ê= ~ÑP~+‘€}O �€€>ð�ýø|ýøzý86 „H7ƒø‚;0…†;0‡ˆù‰ø‰ÇŠƒH« ‹ŠI÷Œú‹�Œø�þNøŒ÷Žú‚��ø�= ‘ó>…‘ùŽø�>…‚ùŽøŽ= ’…÷“ú’”“ø”þNø“÷•ú‚–—ø–=˜Ü=™ݸ š˜™>‡šù•ø—>‡‚ù•ø•= ›‡þ›86 ž 7 �øœA%ŸƒIù ø Aª¡ŸIIH=¢¡Aª£ŸIGH=¤£Aª¥ŸIHH=¦¥P §¢¤¦Ab¨Ÿ =©¨O ª©©ƒ «ª�  ¬E«  ­E§Aª®Ÿ =¯®º °¯§P²°°°© ±²­¬þ±86µ·7´ø³ù¶ø¶ƒ·+´ ¸+· +…¹¸¸…º¹¹…»º¸þ»86ÁÂ7½7¾7¿7Àø¼ùÄøÄ Å(½ ÷Æú‚ÇÆøÇ�ȽÀ�É+À�Ê+À…ËÉʈÌÈË Í( Ì…ÎÍÃþÎøÆ÷Ïú‚ÐÏøÐÑÀ Ò(Àµ Ó1ÑÒ½…ÔÓÃþÔøÏ÷Õú‚ÖÕøÖ…×L¿…Ø×¿…ÙØÀƒÚÙ§9Ûµ¾…ÜÚÛ�Ý+Ü9޵ŅßÚÞ�à+ß…áÃÝ…âáà…ãâÅþãøÕ…äÅÃþä86 ïð7 æ7 ç7 è7 é7 ê7 ë7ì7í7îøå;Øñò;‹óô;0õöù÷ø÷”øæè ù%ø+”úæç û(ú>� üèç  ýEü”þèý ÿ+þ +9ÁùûÿíŽ ê… é>ñº í ÷úø÷ú‚ø  Gèæ    E ”  çƒ +í>ó =ó=ó…>ó= ñ… êé=ó…í§ƒ=ó…í§� 1 =ó……îŽ � >ñùø÷ú‚ !ø º "ù >õ"ùø!>õ‚ùø= #õ÷$ú#%$ø%”&æý '(& ”(çý )(( 9 *Rë)= +ñ9,.'ì9-<ùûì….,-Ž /*.…0îùŽ 1/0… 21é� 3+2>ñ3ù$ø$ùøùø= 4ñþ48689767 7ø5;‹;<AÞ:‰Iù=ø= >&6ÁAè?:>=@?QA@QBAª CBI÷DúCEDøEQF@O GFF HGPIH+þIøDQJ@O KJJƒ LK7 MBL N(MP ONNNˆ PLOQQ@QRQQS@QTS9Ul MRT>;UQV@QWVª XWH÷YúXZYøZQ[@Q\[ ]PQ^@O _^^”`]_ a(`\ƒb+aƒc+\ d(cˆebd f(>e=g;Qh@Qih jfiƒk+j…lgk>;lùYøY=m;PnPmþn86rs7p7 qøo;0yzA%tƒIAÞu‰IA– vŒI=w�=x‘ù{ø{÷|ú‚}~ø} &pÁA:€uG=�€« ‚�G>y‚ù|ø~>yNù|ø|= ƒy÷„úƒ…„ø…þ+ø„= †ð= ‡ñ9ˆ’ p†‡qþˆ86 �‘7 Š7 ‹7 Œ7 �7Ž7�ø‰;Ø¢£;Øœ�;Ø ¡;Øš›;ؤ¥;ØžŸA'’†IAÞ“‰IA=”“I="•–=–šAI— I=#˜£=™¤ù¦ø¦= §ð”¨Š‹ ©(¨>ƒª+ŽP «ªªª  ¬(«�ƒ ­¬�ƒ®+© ¯®TŽ °­¯� ±�°9²ß Š‚fA:³”II=´³Çµ´'« ¶µI÷·ú¶¸¹ø¸Aªº”'I=»ºAª¼”K =½¼…¾»½Ab¿”L=À¿O ÁÀÀ>œÁA:”II=ÃÂÇÄë ÅÄI÷ÆúÅÇÆøÇAbÈ”L=ÉÈO ÊÉÉ9 Ë<Š9 Ì ËŽ Í̾AªÎ”L =ÏÎP ÑÏÏÏ  Ð.ÊÍÑ>œÐùÆøÆQÒ²º ÓÒ ÷ÔúÓÕÔøÕO Ö²²>œÖùÔøÔAb×”L=Ø×O ÙØØ>žÙA:Ú”II=ÛÚÇÜÛM« ÝÜI÷ÞúÝßàøß á‹  âGáŠ9 ã<â9 ä…㎎ åä¾>žåùÞøàA:æ”II=çæÇèç« éèI÷êúéëêøë>žfùêøêùÞøÞ9-ì—Ž©A:í—II=îí¬ ïîI÷ðúïñòøñ ó‹  ôGóŠA:õ’H=öõ9÷ø§ôŽö= øžQù÷ƒú+ùŽ ûøúO ü÷÷� ýûü= þœ> þQÿ²¼ ÿ ÷úøA:’H=9T§Š= œQƒ+Ž O �   >  ùø=  … Œ QìŽ �QìQ�…… +�+…P � … ý�  >šùðøò= œ… Œ= žQìŽ �QìQ�… … !+ �+…"!P #"""� $#… %$� &%>š&ùðøðù·ø¹A:'“IG=('Ç)(H« *)I÷+ú*,-ø,Ab.“ =/.O 0//Ab1“=21O 322Ab4“J=54O 655� 736Ž 87§Ab9“K=:9O ;::Ab<“L==<O >==� ?;>Ž @?§”AŠ0…BA§�CB§ D+C +P FDDD  E.@8F G‹  HGGŠ9 I�HP KŽŽŽ  J.I8KA:L—II=ML¬ NMI÷OúNPQøP R‹  SGRŠA:T’H=UT9Vø§SŽUAªW“G =XWŽ YJXQZVƒ[+ZŽ \Y[O ]VV� ^\]O _²²>¢_Q`²¼ a` ÷búacbøcA:d’H=ed9fT§ŠeAªg“G =hgŽ iEhQjfƒk+jŽ likO mff� nlm>¢nùbøb= o¢… pŒo… q^±� rpq>šrùOøQQs²º ts ÷uútvwøvO x²²… yŒx… zJ±Aª{“G =|{Ž }z|� ~y}>š~ùuøw… ŒE… €J±� �€Aª‚“G =ƒ‚Ž „�ƒ>š„ùuøuùOøOù+ø-A:…—II=†…¬ ‡†I÷ˆú‡‰Šø‰ ‹‹  ŒG‹ŠA:�’H=Ž�9�ø§ŒŽŽAb�“G=‘�O ’‘‘Q“�ƒ”+“Ž •’”O –��� —•–O ˜²²>¤˜Q™²¼ š™ ÷›úšœ›øœA:�’H=ž�9ŸT§ŠžAb “G=¡ O ¢¡¡Q£Ÿƒ¤+£Ž ¥¢¤O ¦ŸŸ� §¥¦>¤§ù›ø›= ¨¤… ©Œ¨… ª—±� «©ª>š«ùˆøŠQ¬²º ­¬ ÷®ú­¯°ø¯O ±²²… ²Œ±Ab³“G=´³O µ´´… ¶µ±� ·²¶>š·ù®ø°Ab¸“G=¹¸O º¹¹� »Œ±… ¼º»>š¼ù®ø®ùˆøˆù+ø+ù·ø·= ½šþ½86 ÁÂ7 ¿7 Àø¾;ØÉÊA%ƒIA'ÆIAÞĉIA=Å“I="Æ–=ÇšA°ÈªIùËøË>É¿÷Ìú‚ÍÌøÍ= ÎÉþÎøÌA:ÏÅII=ÐÏÇÑÐv« ÒÑI÷ÓúÒÔÓøÔ= ÕÉ= Öð ×À9 ØÕÖ×>ÉØùÓøÓA:ÙÃK =ÚÙ« ÛÚI÷ÜúÛÝÜøÝ= ÞÉ= ßðA:àÃK =áà9 â? Þßá>ÉâùÜøÜ= ãÉþã86 æç7åøä;0;0ÿ;Oûü;Øf;Ø;Øýf;0 ;0;RþI;`Nc;OA%èƒIA'é†IAÞê‰IA– ëŒI=ì�=í‘A=î“I="ï–=ðš=#ñœAIò I=#ó£=ô¤Aõ¥I=$ö¨=÷©A°øªIù ø = ñ= Û= ß +  +=á +M+=å= ò= çP , >ûA:éKH=¬ I÷úø= ð=,û>=,9,B >ûAØûI= >Û A‹!ûG="!>ß"A‹#ûH=$#>á$Aƒ%èI=&%91'&AØ(û= )(‘ *')  +E*>´+ùøA‹,ûG=-,A‹.ûH=/.…0//…10/…21/AØ3ûI= 43ƒ5+-Ž 645=7à…8ù7=9à…:89P ;:::P =---  <.;4=AØ>û= ?>= @ð9 Až@AƒBèI=CB91DCA‹Eû =FE=Gæ H.+FG>îf>ïf9IµùJøJöKMùOøO=EPNªaQbP› RQ÷SúRKSøSQTPª UTI©VUGIPEWVG‚EXPW>NXùLøL=Yþ° ZYI÷[úZ[\ø\ùKø[ù]ø]=_þ9`¾_ a&`ÁAèbêa=cb= dð9e8`dO feeQge÷hú‚ihøiQjcQkjª lkI¨ ml÷númopøoº qg >ÿqùnøp>ÿNùnøn= rÿ÷súrtsøt‘ uDf  vEu>êvQwcO xww>ëx9yr`f…zgy>ízQ{cQ|{ª }|I>ì}Q~cQ~>é9€%ùsøsùMøh=�⺠‚� ÷ƒú‚„ƒø„”…?A †(…>ƒ‡+† ˆ(>‡ƒ‰+/…Љú ‹( Š Œˆ‹= �ýQŽcO �ŽŽ… �6�=‘â…’Œ‘Ž “�’=”ãP –”””  •.K4–… —“•� ˜�—>ý˜ùƒøƒº ™g ÷šú™›šø›QœcO �œœŽ ž�g>žQŸcQ Ÿª ¡ G÷¢ú¡£¤ø£>‚ù¢ø¤>‚ù¢ø¢= ¥÷¦ú¥§¦ø§Q¨cO ©¨¨= ªð9«’ `ª f…¬g«Ž ­©¬>­ù¦ø¦÷®úN¯°ø¯>‚ù®ø°>‚ù®ø®= ±÷²ú±³´ø³= µý= ¶Q·cQ¸·9 ¹d?Af¶6<2¸� ºµ¹>ýºù²ø´= »ý= ¼Q½cQ¾½9 ¿ï?Af¼6<2/¾� À»¿>ýÀù²ø²= ÁäºÂÁfš ÃÂ÷ÄúÃÅÄøÅ”Æ?f Ç%Æ+ È(Ç = Éý= Ê… Ë6Ê= Ìä… ÍËÌ…ÎÈÃÏÃÎŽ ÐÍÏ� ÑÉÐ>ýÑùÄøÄùšøšù^ø^ùMøM=Òþ€ÓÒG>þÓùJøK÷Ôú‚ÕÖøÕ= ×î… Ø×4Ž ÙØHƒÚ+-Ž ÛÙÚ= ÜïŽ ÝÜH� ÞÛÝ>ýÞùÔøÖ=ßæº àß ÷áúàâáøâ= ãýŽ äãH>ýäùáøáùÔøÔ÷åúNæåøæ9 ç�?A6</->çùåøåA:èêIG=éèÇêé« ëêI÷ìúëíîøí9 ï5¨ ðï>ðùìøî>‚ùìøì= ñ÷òúñóôøóO-õåå -öõ -ù+ö÷øn2úùj.ûñ‚.üûÑ .ý&Éüg2þñý‚2þÿ 2&ú_ñýQ= ýA‹û = %AªêHH= Aª êH =  …     .+ Ž  >ý= ý= A‹û = %Ž � >ýùòøô= ý= A‹û =Ž � >ýùòøò= ýAØûJ= � >ý= ý9 !Á A9 "a!þ"86%&7 $ø#;Ø)*A%'ƒIAÞ(‰Iù+ø+>)$÷,ú‚-,ø-= .)=/ÞŽ 0./>)0ù,ø,= 1)=2Ü9 35©432+P514A:6(IG=76Ç87'« 98I÷:ú9;:ø;O <55  =(<fQ>5 ?+> +P@=?þ@ø: A+5¥¦A:B' H=CBÇDCH« EDI÷FúEGFøGO HAA9 I”HQJAPKIJþKøFþA86 MÐøL=#N˜=Oš=P›=$Q�=RŸ=#S°ùUøUVîVNPXWVT O XWWoYÉP ZTYV9[QRX\[Z O ]\\� ^X]Vî_SOX`_T O a``� b^aþb86‹&øc= ge= ih=-lj=om=rp=usP /dgiloru=-wv=yxA%ŒƒIA'�†IA5ŽôIù�ø�Aƒ��I=‘�Aƒ’�G=“’91”“9•U‘”>¿É>Â¥Q –dQ —dQ˜dQ-™d9 šx–—˜™w¦y9›\QœdQ�œ9žã�‚9 ŸÃ÷ úŸ¡ ø¡9¢Ì= £´9 ¤Ù£= ¥µ9 ¦Ù¥Q§d9 @¨ ¢¤¦ž§Q©¨>z©Aª«zG=¬«­¬>«­Q ®¨>|®Q ¯¨>~¯Q-°¨>°Q±¨>�±Q²¨>ƒ²Q³¨>„³Q-´¨>…´Qµ¨>†µQ¶¨ >‡¶Q·¨ >ˆ·Q¸¨ >‰¸Q¹¨ >йýø Aƒº�I=»º= ¼±P½¼+‘¾»½Aƒ¿�G=À¿= Á´PÂÁ ‘ÃÀÂO ÄÃÃAƒÅ�I=ÆÅ= ǵPÈÇ ‘ÉÆÈO ÊÉÉQËd9 @Ì ¾ÄÊžËQÍÌ>zÍAªÎzG=ÏÎÐÏ>ÎÐQ ÑÌ>|ÑQ ÒÌ>~ÒQ-ÓÌ>ÓQÔÌ>�ÔQÕÌ>ƒÕQÖÌ>„ÖQ-×Ì>…×QØÌ>†ØQÙÌ >‡ÙQÚÌ >ˆÚQÛÌ >‰ÛQÜÌ >ŠÜý86 &øÝ= àß= âá=-äã=æå=èç=êéP /Þàâäæèê=íì=ïî=ñð=óòP0ëíïñó=-õô=ø÷=úùP?öøú=üûA% ƒIA' †IA5 ôIùøQëQQëQQëQP QëQQëQQëQP QëQQëQ Q!ëQ"!P # "  $D#”%$¸ &%   'D#  (D#  )DP1*'()©+&I+�1,*+P- P. P/# Q0ëQ10Q2ëQ32Q4ëQ54P6135+P7-./6Aƒ8 I=98’:97Aƒ; G=<;91=<’1>=,9?U:>Q@ö A+@üýn.BA>¿BQCö>ÂCQ DÞQ EÞQFÞQ-GÞQHë9 IxDEFGõHü9J\QKÞ©L&vIÅMKLQNÞQON9PãO&9 QÃ÷RúQSRøS9TÌ= U´9 VÙU= Wµ9 XÙW9 @Y TVXPMQZY>ýZAª[ýG=\[]\>[]Q ^Y>þ^Q _Y>ÿ_Q-`Y>`QaY>aQbY>bQcY>cQ-dY>dQeY>eQfY >fQgY >gQhY >hQiY > iýøR= j±Pkj+Qlë”mlkQnë”onkQpë”qpkP rmoqAƒs I=tsPur+‘vtuAƒw G=xw= y´‘ z,yP{z ‘|x{O }||Aƒ~ I=~P1€#= �µ‘ ‚€�Pƒ‚ ‘„ƒO …„„9 @† v}…PMQ‡†>ý‡AªˆýG=‰ˆŠ‰>ˆŠQ ‹†>þ‹Q Œ†>ÿŒQ-�†>�Qކ>ŽQ�†>�Q�†>�Q-‘†>‘Q’†>’Q“† >“Q”† >”Q•† >•Q–† > –ý86¼&ø—= š™= œ›=-ž�= Ÿ=¢¡=¤£P /˜šœž ¢¤=¨¦=ª©P=¥¨ª=-¬«=®­A%½ƒIA'¾†IA¾¿­IA5ÀôIùÁøÁ9>ÂÌ¥Q ØPÄÃ+QÅ”ÆÅÄQÇ”ÈÇÄQÉ”ÊÉÄP ËÆÈÊQÌÂQÍÌQÎÂQÏÎQÐÂQÑÐP ÒÍÏÑQÓÂQÔÓQÕÂQÖÕQ×ÂQØ×P ÙÔÖØQÚÂQÛÚQÜÂQÝÜQÞÂQßÞP àÛÝß  áDÙà”âÒḠãâ   äDÙà  åDàÒ  æDÒÙP1çäåæQ 蘑 éçè©êãI+Ž ëéê  ìEëP1íÒÙàQî˜O ïîî‘ ðíï  ñEðAƒò¾I=óòAƒô¾G=õô91öõ9÷Uóö>¿É>Â¥Qø˜QùøPúñùQ-û˜9 üxËìúû¬¦®9ý\Qþ˜©ÿãvIÅþÿQ˜Q9ãã9 Ã÷úø9Ì= ´9 Ù= µ9 Ù 9 @    Q  >¯ Aª¯G=>Q  >°Q  >±Q- >²Q >³Q >´Q >µQ- >¶Q >·Q  >¸Q  >¹Q  >ºQ  >»ýøAƒ¾I== ±P +‘! Aƒ"¾G=#"= $´P%$ ‘&#%O '&&Aƒ(¾I=)(= *µP+* ‘,)+O -,,9 @. !'-Q/.>¯/Aª0¯G=1021>02Q 3.>°3Q 4.>±4Q-5.>²5Q6.>³6Q7.>´7Q8.>µ8Q-9.>¶9Q:.>·:Q;. >¸;Q<. >¹<Q=. >º=Q>. >»>ý86_&ø?;Øyz=BA= DC= FE=-HG=JI=LK=NM=-PO=RQ=TS=VU=XW=ZYP@@BDFHJLNPRTVXZ= ][A%`ƒIA'a†IAÞb‰IA– cŒI=d�=e‘A=f“I="g–=#h˜=iš=j›=#kœ=$l�=mŸAIn I=#o£=p¤Aq¥I=$r¨=s©A°tªI=#u°A5vôI=#w÷=xøù{ø{9|ñ@]Q}@9 ~„}÷ú~€ø€üøQ �@Q‚@O-ƒ‚‚9„Ô�ƒ¼ …„ ÷†ú…‡†ø‡üø†÷ˆúN‰Šø‰= ‹Û= Œð9 �žŒ9 ŽÁ‹�9 �aŽ>y�ùˆøŠQ�@9 ‘æ�>y‘ùˆøˆA:’bI =“’ª ”“R÷•ú”–•ø–= —y9 ˜M� ™—˜>y™ù•ø•A:š` I=›šª œ›'÷�úœž�øž= Ÿy9  (Ÿ9 ¡  „>y¡ù�ø�= ¢y9£%¢>^£ý86Â&ø¤;0ÉÊ;0ËÌ=§¦= ©¨= «ª=-­¬=¯®=±°=³²=-µ´=·¶=¹¸=»º=½¼=¿¾P@¥§©«­¯±³µ·¹»½¿= ÁÀA%ÃIA'ĆIA5ÅôI=#Æ÷=ÇøùÍøÍ9Îñ¥ÁQÏ¥ÇÐÏH« ÑÐI¨ ÒÑ÷ÓúÒÔÕøÔ÷Öú‚רø×=ÙÜ=Úݸ ÛÙÚ>ËÛùÖøØ>Ë‚ùÖøÖ= ÜË>ÉÜùÓøÕ>ÉNùÓøÓ= ÝÉ÷ÞúÝßÞøßüøÞQ à¥9áÔàȼ âá ÷ãúâäåøäüøåýøãý86&øæ;0 ;=éè= ëê= íì=-ïî=ñð=óò=õô=-÷ö=ùø=ûú=ýü=ÿþ=P@çéëíïñóõ÷ùûýÿ= A%ƒIA'†IA5ôI=# ÷= øùø9ñçQç9 „¨ ÷úøQ çQçO-9Ô¼  > ùø> Nùø=  ÷ ú! ø!üø A:" H=#"A:$ I=%$ª &%G©'&GIA:( G=)(ª *)G©+*HIÅ,'+Ç-#�p.-Â/#'Ç0/�p10Â2#Ç32�p43p5,P6.145ˆ76 A€8I>87=A9Q:9>:ý86[&ø;;0ab;dce=>== @?= BA=-DC=FE=HG=JI=-LK=NM=PO=RQ=TS=VUP@<>@BDFHJLNPRTV= XWA%\ƒIA']†IA5^ôI=#_÷=`øùføf9gñ<XQh<9 i„h¨ ji÷kújlmølQ n<Qo<O-poo9qÔnp¼ rq >arùkøm>aNùkøk= sa÷túsutøuüøtAƒv\I=wv91xw= yò‘ zxy  {Ez=|ß }+| +=~à…ù~=€à…�€P ‚���= ƒÛP …}}}  „.‚ƒ…Aƒ†\I=‡†Q ˆ<P‰ˆ+‘Ї‰Q‹ŠŒ‹P�{ŒA€ŽcI>Ž�  �+„fK=�á ‘+�M+P’�‘A€“cG>“’=F”cQ•”>Y•Q–”>Z–ý8 @Ð Ð/ ,@  ˜J£&ѰA¬ËÎ-”ÒÑ'ÁØõ|xÖ_7hh'·ÊË$hedra_shaders/world/61cffb0a77b1a3dajÔ¯Ò7BTSR I›I›M�‹Ä ØaÜcL(dïfzg ‘Í•ÏÇ ª– ®˜ !Ï« r8 Aä  vs_customvs_custom_instancedvs_custom_skinned fs_customfs_custom_depth fs_custom_idfs_custom_normal_depth,GOLitShadowt_shadows_shadowSky t_radiance t_panorama s_radiance s_panoramat_ao t_lightmap s_lightmapProbet_probess_probesDecalt_decalss_decalsFogSkint_screenhedra_phorizon_textureSAMPLER_NEAREST_REPEAT! vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depthSšstruct Globals { view: mat4x4, proj: mat4x4, view_proj: mat4x4, camera_pos: vec4, viewport: vec4, wire_color: vec4, select_color: vec4, active_color: vec4, grid: vec4, params: vec4, fparams: vec4, } struct ObjectU { model: mat4x4, normal: mat4x4, color: vec4, params: vec4, extra: vec4, gi: array, 3>, decals: vec4, lights: vec4, } struct LightU { color: vec4, position: vec4, direction: vec4, spot: vec4, info: vec4, } struct LitU { counts: vec4, ambient: vec4, tone: vec4, up: vec4, sky_top: vec4, sky_horizon: vec4, ground_horizon: vec4, ground_bottom: vec4, inv_view_proj: mat4x4, dirs: vec4, lights: array, } struct ShadowLightU { params: vec4, splits: vec4, fade: vec4, info: vec4, } struct ShadowTileU { view_proj: mat4x4, rect: vec4, texel: vec4, } struct ShadowU { atlas: vec4, lights: array, tiles: array, } struct SunU { direction: vec4, color: vec4, } struct SkyU { flags: vec4, to_sky: mat4x4, sky_top: vec4, sky_horizon: vec4, ground_bottom: vec4, ground_horizon: vec4, sun: vec4, ambient: vec4, ibl: vec4, fog_color: vec4, fog: vec4, fog_depth: vec4, fog_origin: vec4, suns: array, sh: array, 9>, } struct ProbeEntryU { to_local: mat4x4, extents: vec4, offset: vec4, ambient: vec4, info: vec4, } struct ProbeU { counts: vec4, probes: array, } struct DecalEntryU { to_local: mat4x4, modulate: vec4, fades: vec4, axis_x: vec4, axis_y: vec4, axis_z: vec4, layers: vec4, flags: vec4, } struct DecalU { counts: vec4, lod: vec4, entries: array, } struct DecalSurface { base: vec3, metallic: f32, roughness: f32, occlusion: f32, normal: vec3, emission: vec3, } struct VsIn { @location(0) pos: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, } struct InstIn { @location(6) row0_: vec4, @location(7) row1_: vec4, @location(8) row2_: vec4, @location(9) color: vec4, } struct FogEntryU { to_local: mat4x4, size: vec4, material: vec4, albedo: vec4, emission: vec4, lights: vec4, } struct FogU { counts: vec4, params: vec4, ambient: vec4, up: vec4, light_fog: array, 16>, entries: array, } struct SkinU { rows: array, 765>, } struct SkinIn { @location(12) joints: vec4, @location(13) weights: vec4, } struct SkinRows { r0_: vec4, r1_: vec4, r2_: vec4, } struct HedraInstExtra { @location(14) custom: vec4, @location(15) id: f32, } struct CustomOut { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) color: vec4, @location(6) uv2_: vec2, @location(7) @interpolate(flat) instance_id: u32, @location(8) hedra_v0_: vec4, @location(9) hedra_v1_: vec4, @location(10) hedra_v2_: vec4, @location(11) hedra_v3_: vec4, } struct IdOut { @location(0) id: vec4, } struct HedraParams { zenith: vec3, hedra_pad0_: f32, horizon: vec3, hedra_pad1_: f32, below: vec3, bands: f32, curve: f32, hedra_pad2_: f32, hedra_pad3_: f32, hedra_pad4_: f32, sun_direction: vec3, hedra_pad5_: f32, sun_color: vec3, sun_size: f32, halo_size: f32, halo_strength: f32, horizon_repeat: f32, hedra_pad6_: f32, horizon_band: vec2, hedra_pad7_: f32, hedra_pad8_: f32, horizon_tint: vec3, } struct HedraNormalDepthOut { @location(0) normal_depth: vec4, @location(1) surface: vec4, } const OBJ_HAS_WEIGHTS: u32 = 1u; const OBJ_MIRRORED: u32 = 2u; const SHADE_SOLID: u32 = 0u; const SHADE_MATCAP: u32 = 1u; const SHADE_NORMALS: u32 = 2u; const SHADE_FACE_ORIENT: u32 = 3u; const SHADE_RANDOM: u32 = 4u; const SHADE_MATERIAL: u32 = 5u; const SHADE_UV_CHECKER: u32 = 6u; const SHADE_WEIGHTS: u32 = 7u; const SHADE_LIT: u32 = 8u; const SHADE_LIGHTMAP: u32 = 9u; const SHADE_LIGHT_COUNT: u32 = 10u; const OV_SELECTION: u32 = 1u; const OV_SEAMS: u32 = 2u; const OV_SHARP: u32 = 4u; const F_SELECTED: u32 = 1u; const F_HIDDEN: u32 = 2u; const F_SEAM: u32 = 4u; const F_SHARP: u32 = 8u; const F_MESH: u32 = 16u; const F_FADE: u32 = 32u; const F_NO_PULL: u32 = 64u; const SPEC_TEX_BASE: bool = true; const SPEC_TEX_NORMAL: bool = true; const SPEC_TEX_MR: bool = true; const SPEC_TEX_EMISSION: bool = true; const SPEC_TEX_OCCLUSION: bool = true; const SPEC_VERTEX_COLOR: bool = true; const SPEC_EXT: bool = true; const SPEC_UNLIT: bool = true; const SPEC_ALPHA_MASK: bool = true; const SPEC_ALPHA_BLEND: bool = true; const SPEC_CLEARCOAT: bool = true; const SPEC_SHEEN: bool = true; const SPEC_TRANSMISSION: bool = true; const SPEC_IRIDESCENCE: bool = true; const SPEC_ANISOTROPY: bool = true; const SPEC_DIFFUSE_TRANSMISSION: bool = true; const SPEC_VOLUME: bool = true; const SPEC_DISPERSION: bool = true; const SPEC_EXT_LAYERS: bool = true; const SPEC_ROUGHNESS_LAYER: bool = true; const SPEC_LIT: bool = true; const SPEC_LIGHTS: bool = true; const SPEC_SHADOWS: bool = true; const SPEC_DECALS: bool = true; const SPEC_FOG: bool = true; const SPEC_FOG_VOLUMES: bool = true; const SPEC_PROBES: bool = true; const SPEC_PROBE_GI: bool = true; const SPEC_SSAO: bool = true; const SPEC_SCREEN_REFRACTION: bool = true; const SPEC_EMERGE: bool = true; const SPEC_FADE: bool = true; const SPEC_FACE_FLAGS: bool = true; const SPEC_AMBIENT_FLAT: bool = true; const SPEC_AMBIENT_GRADIENT: bool = true; const SPEC_AMBIENT_SKY: bool = true; const SPEC_MATERIAL_MODE: bool = true; const SPEC_OTHER_MODES: bool = true; const PI: f32 = 3.1415927f; const TAU: f32 = 6.2831855f; const E: f32 = 2.7182817f; const HEDRA_BLEND_MIX: u32 = 0u; const HEDRA_BLEND_PREMUL_ALPHA: u32 = 4u; const HEDRA_CULL_FRONT: u32 = 1u; const HEDRA_DIFFUSE_LAMBERT: u32 = 0u; const HEDRA_DIFFUSE_LAMBERT_WRAP: u32 = 1u; const HEDRA_DIFFUSE_BURLEY: u32 = 2u; const HEDRA_DIFFUSE_TOON: u32 = 3u; const HEDRA_SPECULAR_SCHLICK_GGX: u32 = 0u; const HEDRA_SPECULAR_TOON: u32 = 1u; const HEDRA_SPECULAR_DISABLED: u32 = 2u; const HEDRA_ENCODE_SRGB: u32 = 2u; const HEDRA_NEVER: u32 = 4294967295u; const MAX_FRAME_LIGHTS: u32 = 64u; const MAX_OBJECT_LIGHTS: u32 = 8u; const MAX_SHADOW_LIGHTS: u32 = 16u; const MAX_POOL_DIRECTIONAL: u32 = 8u; const LIGHT_COUNT_COLORS: array, 10> = array, 10>(vec3(0.352941f, 0.352941f, 0.352941f), vec3(0.168627f, 0.247059f, 0.6f), vec3(0.129412f, 0.4f, 0.67451f), vec3(0.101961f, 0.623529f, 0.721569f), vec3(0.121569f, 0.631373f, 0.529412f), vec3(0.301961f, 0.733333f, 0.352941f), vec3(0.65098f, 0.831373f, 0.227451f), vec3(0.94902f, 0.784314f, 0.058824f), vec3(0.94902f, 0.556863f, 0.058824f), vec3(0.878431f, 0.129412f, 0.541176f)); const LIGHT_DIRECTIONAL: u32 = 0u; const LIGHT_OMNI: u32 = 1u; const LIGHT_SPOT: u32 = 2u; const LIGHT_BAKE_DISABLED: u32 = 0u; const LIGHT_BAKE_STATIC: u32 = 1u; const LIGHT_BAKE_DYNAMIC: u32 = 2u; const TONEMAP_LINEAR: u32 = 0u; const TONEMAP_REINHARD: u32 = 1u; const TONEMAP_FILMIC: u32 = 2u; const TONEMAP_ACES: u32 = 3u; const TONEMAP_AGX: u32 = 4u; const ENV_SKY: u32 = 1u; const ENV_AMBIENT_SKY: u32 = 2u; const ENV_SSAO: u32 = 4u; const ENV_HDR: u32 = 8u; const ENV_SCREEN_REFRACTION: u32 = 16u; const LIGHT_SHADOWED: u32 = 1u; const LIGHT_BAKED_STATIC: u32 = 1u; const SHADOW_TILES: u32 = 16u; const SKY_DRAW_PROCEDURAL: u32 = 1u; const SKY_DRAW_PANORAMA: u32 = 2u; const SKY_PANORAMA_FILTER: u32 = 4u; const SKY_IBL: u32 = 8u; const SKY_AMBIENT_SKY: u32 = 16u; const SKY_REFLECT_RADIANCE: u32 = 32u; const SKY_REFLECT_OFF: u32 = 64u; const SKY_FOG: u32 = 128u; const SKY_FOG_DEPTH: u32 = 256u; const SKY_SUNS: u32 = 4u; const OBJ_LIGHTMAP: u32 = 4u; const OBJ_PROBE_GI: u32 = 8u; const PROBE_BOX: u32 = 1u; const PROBE_INTERIOR: u32 = 2u; const MAX_PROBES: u32 = 8u; const PROBE_AMBIENT_DISABLED: u32 = 0u; const PROBE_AMBIENT_ENVIRONMENT: u32 = 1u; const PROBE_AMBIENT_CONSTANT_COLOR: u32 = 2u; const MAX_FRAME_DECALS: u32 = 64u; const MAX_OBJECT_DECALS: u32 = 8u; const DECAL_LIVE_ALBEDO: u32 = 1u; const DECAL_LIVE_NORMAL: u32 = 2u; const DECAL_LIVE_ORM: u32 = 4u; const DECAL_LIVE_EMISSION: u32 = 8u; const F_INSTANCE_MIRRORED: u32 = 128u; const OBJ_EMERGE: u32 = 32u; const EMERGE_SCALE: f32 = 1.3f; const EMERGE_EDGE: f32 = 0.8f; const EMERGE_DITHER: f32 = 0.12f; const OBJ_FADE: u32 = 64u; const MAX_FRAME_FOG_VOLUMES: u32 = 16u; const MAX_OBJECT_FOG_VOLUMES: u32 = 4u; const FOG_SHAPE_ELLIPSOID: u32 = 0u; const FOG_SHAPE_CONE: u32 = 1u; const FOG_SHAPE_CYLINDER: u32 = 2u; const FOG_SHAPE_BOX: u32 = 3u; const FOG_SHAPE_WORLD: u32 = 4u; const FOG_SKY_DISTANCE: f32 = 1000000f; const FOG_LIST_ALL: u32 = 2147483648u; const FOG_GL_X0_: f32 = 0.8611363f; const FOG_GL_X1_: f32 = 0.339981f; const FOG_GL_W0_: f32 = 0.3478548f; const FOG_GL_W1_: f32 = 0.6521452f; const OBJ_SKINNED: u32 = 16u; const SKIN_JOINTS: u32 = 255u; const HEDRA_UNSHADED: bool = true; const HEDRA_HAS_LIGHT: bool = false; const HEDRA_USES_POSITION: bool = false; const HEDRA_SKIP_VERTEX_TRANSFORM: bool = false; const HEDRA_WORLD_VERTEX_COORDS: bool = true; const HEDRA_AMBIENT_LIGHT_DISABLED: bool = false; const HEDRA_FOG_DISABLED: bool = true; const HEDRA_SHADOWS_DISABLED: bool = true; const HEDRA_ALPHA: bool = false; const HEDRA_ALPHA_SCISSOR: bool = false; const HEDRA_DIFFUSE: u32 = 0u; const HEDRA_SPECULAR: u32 = 2u; const HEDRA_BLEND: u32 = 0u; const HEDRA_CULL: u32 = 1u; @group(0) @binding(0) var G: Globals; @group(1) @binding(0) var O: ObjectU; @group(0) @binding(1) var Lit: LitU; @group(0) @binding(2) var Shadow: ShadowU; @group(0) @binding(3) var t_shadow: texture_depth_2d; @group(0) @binding(4) var s_shadow: sampler_comparison; @group(0) @binding(5) var Sky: SkyU; @group(3) @binding(0) var t_radiance: texture_cube; @group(3) @binding(1) var t_panorama: texture_2d; @group(3) @binding(2) var s_radiance: sampler; @group(3) @binding(3) var s_panorama: sampler; @group(0) @binding(6) var t_ao: texture_2d; @group(3) @binding(4) var t_lightmap: texture_2d_array; @group(3) @binding(5) var s_lightmap: sampler; @group(0) @binding(7) var Probe: ProbeU; @group(3) @binding(6) var t_probes: texture_2d; @group(3) @binding(7) var s_probes: sampler; @group(1) @binding(2) var Decal: DecalU; @group(1) @binding(3) var t_decals: texture_2d_array; @group(1) @binding(4) var s_decals: sampler; @group(1) @binding(5) var Fog: FogU; @group(1) @binding(1) var Skin: SkinU; @group(1) @binding(6) var t_screen: texture_2d; var VERTEX: vec3; var NORMAL: vec3; var TANGENT: vec3; var BINORMAL: vec3; var POSITION: vec4; var UV: vec2; var UV2_: vec2; var COLOR: vec4; var INSTANCE_ID: i32; var INSTANCE_CUSTOM: vec4; var VERTEX_ID: i32; var MODEL_MATRIX: mat4x4; var MODEL_NORMAL_MATRIX: mat3x3; var INV_VIEW_MATRIX: mat4x4; var INV_PROJECTION_MATRIX: mat4x4; var MODELVIEW_MATRIX: mat4x4; var MODELVIEW_NORMAL_MATRIX: mat3x3; var NODE_POSITION_WORLD: vec3; var NODE_POSITION_VIEW: vec3; var CAMERA_DIRECTION_WORLD: vec3; var LIGHT_VERTEX: vec3; var FRAGCOORD: vec4; var FRONT_FACING: bool; var VIEW: vec3; var NORMAL_MAP: vec3; var NORMAL_MAP_DEPTH: f32; var ALBEDO: vec3; var ALPHA: f32; var ALPHA_SCISSOR_THRESHOLD: f32; var PREMUL_ALPHA_FACTOR: f32; var METALLIC: f32; var SPECULAR: f32; var ROUGHNESS: f32; var RIM: f32; var RIM_TINT: f32; var BACKLIGHT: vec3; var AO: f32; var AO_LIGHT_AFFECT: f32; var EMISSION: vec3; var SCREEN_UV: vec2; var SPECULAR_AMOUNT: f32; var LIGHT: vec3; var LIGHT_COLOR: vec3; var LIGHT_IS_DIRECTIONAL: bool; var ATTENUATION: f32; var DIFFUSE_LIGHT: vec3; var SPECULAR_LIGHT: vec3; var hedra_world: vec3; var hedra_n_geo: vec3; var hedra_n: vec3; var hedra_front: bool; @group(2) @binding(0) var hedra_p: HedraParams; @group(2) @binding(1) var horizon_texture: texture_2d; @group(2) @binding(2) var SAMPLER_NEAREST_REPEAT: sampler; var dir_7: vec3; fn srgb_to_linear(c_1: vec3) -> vec3 { let lo = (c_1 / vec3(12.92f)); let hi = pow(((c_1 + vec3(0.055f)) / vec3(1.055f)), vec3(2.4f)); return select(hi, lo, (c_1 <= vec3(0.04045f))); } fn element_color(flags: u32, fallback: vec4) -> vec4 { var local_4: bool; var local_5: bool; if ((flags & F_MESH) == 0u) { return fallback; } let overlays = G.params.y; let _e13 = O.params.w; let edit_object = (_e13 == 1u); if ((flags & F_SEAM) != 0u) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } let _e27 = local_4; if _e27 { let _e32 = srgb_to_linear(vec3(0.86f, 0f, 0f)); return vec4(_e32, 1f); } if ((flags & F_SHARP) != 0u) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } let _e46 = local_5; if _e46 { let _e51 = srgb_to_linear(vec3(0f, 0.85f, 0.9f)); return vec4(_e51, 1f); } if ((overlays & OV_SELECTION) != 0u) { if edit_object { if ((flags & F_SELECTED) != 0u) { let _e64 = G.select_color; return _e64; } let _e67 = G.wire_color; return _e67; } let _e71 = O.params.x; if (_e71 == 1u) { let _e76 = G.select_color; let _e79 = G.active_color; let _e83 = O.params.y; return select(_e76, _e79, (_e83 == 1u)); } } let _e89 = G.wire_color; return _e89; } fn to_view(p: vec3, pull: f32) -> vec4 { var v: vec4; let _e4 = G.view; let _e7 = O.model; v = ((_e4 * _e7) * vec4(p, 1f)); let _e15 = v.z; v.z = (_e15 * (1f - pull)); let _e19 = v; return _e19; } fn linear_to_srgb(c_2: vec3) -> vec3 { let lo_1 = (c_2 * 12.92f); let hi_1 = ((1.055f * pow(c_2, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (c_2 <= vec3(0.0031308f))); } fn target_color(c_3: vec4) -> vec4 { let k_12 = clamp(c_3, vec4(0f), vec4(1f)); let _e9 = G.fparams.w; if (_e9 > 0.5f) { let _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } fn object_light_count() -> u32 { let _e3 = O.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } fn object_light(k: u32) -> u32 { let _e4 = O.lights.y; let _e8 = O.lights.x; let word = select(_e4, _e8, (k < 4u)); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } fn light_count_color() -> vec3 { var colors: array, 10> = LIGHT_COUNT_COLORS; let _e5 = O.lights.w; let _e9 = colors[min(_e5, 9u)]; return _e9; } fn pool_sun_count() -> u32 { let _e3 = Lit.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } fn pool_sun(k_1: u32) -> u32 { let _e4 = Lit.dirs.y; let _e8 = Lit.dirs.x; let word_1 = select(_e4, _e8, (k_1 < 4u)); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } fn decal_count() -> u32 { let _e3 = O.decals.z; return min(_e3, MAX_OBJECT_DECALS); } fn decal_entry(k_2: u32) -> u32 { let _e4 = O.decals.y; let _e8 = O.decals.x; let word_2 = select(_e4, _e8, (k_2 < 4u)); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } fn decal_level(e: DecalEntryU, world: vec3) -> f32 { let _e5 = Decal.lod.x; let _e8 = G.camera_pos; let _e15 = Decal.lod.y; let pixel_1 = (_e5 * select(length((world - _e8.xyz)), 1f, (_e15 > 0.5f))); let _e24 = Decal.counts.y; let top = f32((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 0.000001f)), 1f)), 0f, top); } fn decal_texel(layer: u32, uv: vec2, level: f32, live: bool) -> vec4 { let _e11 = textureSampleLevel(t_decals, s_decals, uv, i32((layer - 1u)), select(level, 0f, live)); return _e11; } fn apply_decals(world_1: vec3, n_geo: vec3, surf: DecalSurface) -> DecalSurface { var out_s: DecalSurface; var k_3: u32 = 0u; var local_6: bool; var fade: f32; out_s = surf; let _e4 = decal_count(); loop { let _e7 = k_3; if (_e7 < _e4) { } else { break; } { let _e11 = k_3; let _e12 = decal_entry(_e11); let e_2 = Decal.entries[min(_e12, 63u)]; let uvw = (e_2.to_local * vec4(world_1, 1f)).xyz; if all((uvw >= vec3(0f, -1f, 0f))) { local_6 = all((uvw <= vec3(1f))); } else { local_6 = false; } let _e35 = local_6; if !(_e35) { continue; } fade = pow((1f - abs(uvw.y)), select(e_2.fades.y, e_2.fades.x, (uvw.y > 0f))); if (e_2.fades.z > 0f) { let _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1f, ((dot(n_geo, e_2.axis_y.xyz) * 0.5f) + 0.5f))); } let uv_3 = uvw.xz; let _e69 = decal_level(e_2, world_1); let live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { let _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); let _e84 = srgb_to_linear(_e82.xyz); let a_2 = (vec4(_e84, _e82.w) * e_2.modulate); let _e90 = fade; let alpha = (a_2.w * _e90); let _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if (e_2.layers.y > 0u) { let _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); let nx = ((_e110.x * 2f) - 1f); let ny = (1f - (_e110.y * 2f)); let nz = sqrt(max(0f, ((1f - (nx * nx)) - (ny * ny)))); let dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); let _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { let _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); let _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); let _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); let _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { let _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); let _e184 = out_s.emission; let _e186 = srgb_to_linear(_e182.xyz); let _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } continuing { let _e197 = k_3; k_3 = (_e197 + 1u); } } let _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045f, 1f); let _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0f, 1f); let _e211 = out_s; return _e211; } fn d_ggx(nh: f32, a2_: f32) -> f32 { let d_12 = (((nh * nh) * (a2_ - 1f)) + 1f); return (a2_ / ((PI * d_12) * d_12)); } fn v_smith(nl: f32, nv: f32, a2_1: f32) -> f32 { let gv = (nl * sqrt((((nv * nv) * (1f - a2_1)) + a2_1))); let g_l = (nv * sqrt((((nl * nl) * (1f - a2_1)) + a2_1))); return (0.5f / max((gv + g_l), 0.0001f)); } fn f_schlick(f0_: vec3, vh: f32) -> vec3 { return (f0_ + ((vec3(1f) - f0_) * pow((1f - vh), 5f))); } fn light_specular(n: vec3, v_1: vec3, l: vec3, radiance: vec3, diffuse: vec3, f0_1: vec3, a2_2: f32, specular: f32) -> vec3 { let nl_2 = dot(n, l); if (nl_2 <= 0f) { return vec3(0f); } let h = normalize((l + v_1)); let nh_1 = max(dot(n, h), 0f); let vh_1 = max(dot(v_1, h), 0f); let nv_3 = max(dot(n, v_1), 0.0001f); let _e24 = f_schlick(f0_1, vh_1); let _e25 = d_ggx(nh_1, a2_2); let _e26 = v_smith(nl_2, nv_3, a2_2); let spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927f)) + (spec * specular)) * radiance) * nl_2); } fn sky(dir: vec3) -> vec3 { let _e4 = Lit.up; let a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1f, 1f)); if (a_3 <= 1.5707964f) { let c_23 = (1f - (a_3 / 1.5707964f)); let k_13 = clamp((1f - pow(max((1f - c_23), 0.000001f), 6.6666665f)), 0f, 1f); let _e30 = Lit.sky_horizon; let _e34 = Lit.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } let c_24 = ((a_3 - 1.5707964f) / 1.5707964f); let k_14 = clamp((1f - pow(max((1f - c_24), 0.000001f), 50f)), 0f, 1f); let _e54 = Lit.ground_horizon; let _e58 = Lit.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } fn filmic_curve(x: vec3) -> vec3 { return ((((x * ((0.88f * x) + vec3((0.1f * 0.6f)))) + vec3((0.2f * 0.01f))) / ((x * ((0.88f * x) + vec3(0.6f))) + vec3((0.2f * 0.3f)))) - vec3((0.01f / 0.3f))); } fn aces_curve(c_4: vec3, white: f32) -> vec3 { let x_2 = vec3((1.8f * dot(vec3(0.59719f, 0.35458f, 0.04823f), c_4)), (1.8f * dot(vec3(0.076f, 0.90834f, 0.01566f), c_4)), (1.8f * dot(vec3(0.0284f, 0.13383f, 0.83777f), c_4))); let t_3 = (((x_2 * (x_2 + vec3(0.0245786f))) - vec3(0.000090537f)) / ((x_2 * ((0.983729f * x_2) + vec3(0.432951f))) + vec3(0.238081f))); let o_5 = vec3(dot(vec3(1.60475f, -0.53108f, -0.07367f), t_3), dot(vec3(-0.10208f, 1.10813f, -0.00605f), t_3), dot(vec3(-0.00327f, -0.07276f, 1.07602f), t_3)); let w_1 = (1.8f * white); let wt = (((w_1 * (w_1 + 0.0245786f)) - 0.000090537f) / ((w_1 * ((0.983729f * w_1) + 0.432951f)) + 0.238081f)); return (o_5 / vec3(wt)); } fn agx_curve(c_5: vec3) -> vec3 { var v_2: vec3; let inset = mat3x3(vec3(0.54490817f, 0.14044006f, 0.08882741f), vec3(0.37377945f, 0.7541096f, 0.17887713f), vec3(0.08138498f, 0.10543358f, 0.73225f)); let outset = mat3x3(vec3(1.964551f, -0.29932243f, -0.16436833f), vec3(-0.85585845f, 1.3264511f, -0.23822464f), vec3(-0.10886711f, -0.02708402f, 1.4026654f)); v_2 = (inset * max(c_5, vec3(0.0000000002f))); let _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931f), vec3(4.0260687f)) - vec3(-12.473931f)) / vec3((4.0260687f - -12.473931f))); let _e44 = v_2; let _e45 = v_2; let x2_ = (_e44 * _e45); let x4_ = (x2_ * x2_); let _e48 = v_2; let _e56 = v_2; let _e64 = v_2; let p_7 = ((((((0.021f * _e48) + (4.0111f * x2_)) - ((25.682f * x2_) * _e56)) + (70.359f * x4_)) - ((74.778f * x4_) * _e64)) + ((27.069f * x4_) * x2_)); return (outset * pow(max(p_7, vec3(0.0000000001f)), vec3(2.4f))); } fn tonemap(c_in: vec3) -> vec3 { let _e4 = Lit.tone.x; let c_25 = max((c_in * _e4), vec3(0f)); let white_1 = Lit.tone.y; let mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return (((white_1 * c_25) + c_25) / ((c_25 * white_1) + vec3(white_1))); } if (mode == TONEMAP_FILMIC) { let _e27 = filmic_curve(c_25); let _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if (mode == TONEMAP_ACES) { let _e33 = aces_curve(c_25, white_1); return _e33; } if (mode == TONEMAP_AGX) { let _e36 = agx_curve(c_25); return _e36; } return c_25; } fn emerge_hash(p_1: vec3) -> f32 { var q: vec3; q = fract((p_1 * 0.1031f)); let _e5 = q; let _e6 = q; let _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32f))))); let _e16 = q.x; let _e18 = q.y; let _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } fn emerge_noise(p_2: vec3) -> f32 { let i_13 = floor(p_2); let f = fract(p_2); let u_1 = ((f * f) * (vec3(3f) - (2f * f))); let _e10 = emerge_hash(i_13); let _e16 = emerge_hash((i_13 + vec3(1f, 0f, 0f))); let _e24 = emerge_hash((i_13 + vec3(0f, 1f, 0f))); let _e30 = emerge_hash((i_13 + vec3(1f, 1f, 0f))); let a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); let _e40 = emerge_hash((i_13 + vec3(0f, 0f, 1f))); let _e46 = emerge_hash((i_13 + vec3(1f, 0f, 1f))); let _e54 = emerge_hash((i_13 + vec3(0f, 1f, 1f))); let _e60 = emerge_hash((i_13 + vec3(1f, 1f, 1f))); let b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } fn emerge_reveal(world_2: vec3, pixel: vec2) -> f32 { var n_1: f32; let _e6 = O.extra.x; if select(true, ((_e6 & OBJ_EMERGE) == 0u), SPEC_EMERGE) { return 1f; } let e_3 = O.normal[0][3]; let w_2 = (world_2 * EMERGE_SCALE); let _e21 = emerge_noise(w_2); let _e29 = emerge_noise(((w_2 * 2.7f) + vec3(17.1f))); n_1 = smoothstep(0.2f, 0.8f, ((_e21 * 0.65f) + (_e29 * 0.35f))); if (pixel.x >= 0f) { let ign = fract((52.982918f * fract(dot(floor(pixel), vec2(0.06711056f, 0.00583715f))))); let _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5f) * EMERGE_DITHER)), 0f, 1f); } let _e60 = n_1; return (((e_3 * 1.8f) - _e60) / EMERGE_EDGE); } fn emerge_tint(c_6: vec3, r: f32) -> vec3 { var local_7: bool; let _e6 = O.extra.x; if !(((_e6 & OBJ_EMERGE) == 0u)) { local_7 = (r >= 1f); } else { local_7 = true; } let _e17 = local_7; if select(true, _e17, SPEC_EMERGE) { return c_6; } let _e23 = O.extra.w; let _e26 = srgb_to_linear(unpack4x8unorm(_e23).xyz); let _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0f, 1f, r)); } fn item_fade(c_7: vec3) -> vec3 { let _e5 = O.extra.x; if select(true, ((_e5 & OBJ_FADE) == 0u), SPEC_FADE) { return c_7; } let f_1 = O.normal[3]; let _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } fn sky_dir(d: vec3) -> vec3 { let _e3 = Sky.to_sky; return normalize((_e3 * vec4(d, 0f)).xyz); } fn sky_curve(c_8: f32, curve: f32) -> f32 { return clamp((1f - pow(max((1f - c_8), 0.000001f), (1f / curve))), 0f, 1f); } fn procedural_sky(d_1: vec3) -> vec3 { var sky_1: vec3; var i: u32 = 0u; let v_7 = acos(clamp(d_1.y, -1f, 1f)); let _e8 = Sky.sky_horizon; let _e12 = Sky.sky_top; let _e21 = Sky.sky_top.w; let _e22 = sky_curve((1f - (v_7 / 1.5707964f)), _e21); let _e27 = Sky.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); let _e33 = Sky.flags.z; let suns = min(_e33, SKY_SUNS); loop { let _e38 = i; if (_e38 < suns) { } else { break; } { let _e42 = i; let sun = Sky.suns[_e42]; let size = sun.direction.w; let a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1f, 1f)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { let _e60 = Sky.sun.x; if (a_5 < _e60) { let _e66 = Sky.sun.x; let c2_ = ((a_5 - size) / (_e66 - size)); let _e71 = sky_1; let _e75 = Sky.sun.y; let _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } continuing { let _e79 = i; i = (_e79 + 1u); } } let _e83 = Sky.ground_horizon; let _e87 = Sky.ground_bottom; let _e96 = Sky.ground_bottom.w; let _e97 = sky_curve(((v_7 - 1.5707964f) / 1.5707964f), _e96); let _e102 = Sky.ground_horizon.w; let ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); let _e104 = sky_1; let _e112 = Sky.sun.z; return (select(ground, _e104, (d_1.y >= 0f)) * _e112); } fn panorama(d_2: vec3) -> vec3 { let uv_4 = vec2(fract((atan2(d_2.x, -(d_2.z)) / 6.2831855f)), (acos(clamp(d_2.y, -1f, 1f)) / PI)); let _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { let _e27 = textureSampleLevel(t_panorama, s_panorama, uv_4, 0f); let _e32 = Sky.sun.z; return (_e27.xyz * _e32); } let _e36 = textureDimensions(t_panorama, 0i); let size_1 = vec2(_e36); let x_3 = (((i32(floor((uv_4.x * f32(size_1.x)))) % size_1.x) + size_1.x) % size_1.x); let y = clamp(i32(floor((uv_4.y * f32(size_1.y)))), 0i, (size_1.y - 1i)); let _e64 = textureLoad(t_panorama, vec2(x_3, y), 0i); let _e69 = Sky.sun.z; return (_e64.xyz * _e69); } fn sh_irradiance(n_2: vec3) -> vec3 { var c_9: vec3; let _e4 = Sky.sh[0]; c_9 = (_e4.xyz * 0.282095f); let _e9 = c_9; let _e13 = Sky.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603f * n_2.y))); let _e20 = c_9; let _e24 = Sky.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603f * n_2.z))); let _e31 = c_9; let _e35 = Sky.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603f * n_2.x))); let _e42 = c_9; let _e46 = Sky.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548f * n_2.x) * n_2.y))); let _e55 = c_9; let _e59 = Sky.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548f * n_2.y) * n_2.z))); let _e68 = c_9; let _e72 = Sky.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392f * (((3f * n_2.z) * n_2.z) - 1f)))); let _e85 = c_9; let _e89 = Sky.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548f * n_2.x) * n_2.z))); let _e98 = c_9; let _e102 = Sky.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274f * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); let _e115 = c_9; return max(_e115, vec3(0f)); } fn radiance_1(d_3: vec3, roughness: f32) -> vec3 { let _e5 = Sky.flags.y; let top_1 = f32((max(_e5, 1u) - 1u)); let _e14 = textureSampleLevel(t_radiance, s_radiance, d_3, (roughness * top_1)); return _e14.xyz; } fn env_brdf_approx(roughness_1: f32, nv_1: f32) -> vec2 { let r_6 = ((roughness_1 * vec4(-1f, -0.0275f, -0.572f, 0.022f)) + vec4(1f, 0.0425f, 1.04f, -0.04f)); let a004_ = ((min((r_6.x * r_6.x), exp2((-9.28f * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04f, 1.04f) * a004_) + r_6.zw); } fn pow8_(x_1: f32) -> f32 { let x2_1 = (max(x_1, 0f) * max(x_1, 0f)); let x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } fn fog_sun_scatter(fc: vec3, dir_1: vec3) -> vec3 { var c_10: vec3; var k_4: u32 = 0u; c_10 = fc; let _e6 = Sky.fog_color.w; if (_e6 > 0.001f) { let _e9 = pool_sun_count(); loop { let _e12 = k_4; if (_e12 < _e9) { } else { break; } { let _e14 = k_4; let _e15 = pool_sun(_e14); let _e21 = Lit.lights[_e15].info.x; if (_e21 == LIGHT_DIRECTIONAL) { let _e24 = c_10; let _e29 = Lit.lights[_e15].color; let _e38 = Lit.lights[_e15].direction; let _e42 = pow8_(dot(dir_1, -(_e38.xyz))); let _e47 = Sky.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927f)) * _e42) * _e47)); } } continuing { let _e51 = k_4; k_4 = (_e51 + 1u); } } } let _e53 = c_10; return _e53; } fn sky_fog(c_11: vec3, dir_2: vec3) -> vec3 { let _e4 = Sky.fog_color; let _e9 = Sky.fog_depth.w; let _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); let _e15 = Sky.fog.y; return mix(c_11, _e11, _e15); } fn surface_fog(c_12: vec3, world_3: vec3, dir_3: vec3) -> vec3 { var dist: f32; var amount: f32; var fc_1: vec3; var local_8: bool; let _e5 = G.view; let depth = -((_e5 * vec4(world_3, 1f)).z); let _e13 = G.camera_pos; dist = distance(world_3, _e13.xyz); let _e20 = Sky.fog_origin.w; if (_e20 > 0.5f) { let _e26 = Sky.fog_origin.x; dist = max((depth - _e26), 0f); } let _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { let _e42 = Sky.fog_depth.x; let _e46 = Sky.fog_depth.y; let _e47 = dist; let z = smoothstep(_e42, _e46, _e47); let _e54 = Sky.fog_depth.z; let _e63 = Sky.fog.x; amount = (select(0f, pow(max(z, 0.000001f), _e54), (z > 0f)) * _e63); } else { let _e65 = dist; let _e70 = Sky.fog.x; amount = (1f - exp(min(0f, (-(_e65) * _e70)))); } let _e80 = Sky.fog.w; if (abs(_e80) >= 0.0001f) { let _e86 = Lit.up; let y_1 = dot(world_3, _e86.xyz); let _e89 = amount; let _e93 = Sky.fog.z; let _e98 = Sky.fog.w; amount = max(_e89, (1f - exp(min(0f, ((y_1 - _e93) * _e98))))); } let _e106 = amount; amount = clamp(_e106, 0f, 1f); let _e112 = Sky.fog_color; fc_1 = _e112.xyz; let _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { let _e129 = Sky.fog_depth.w; local_8 = (_e129 > 0f); } else { local_8 = false; } let _e133 = local_8; if select(false, _e133, SPEC_AMBIENT_SKY) { let _e139 = Sky.fog_origin.y; let _e144 = Sky.fog_origin.z; let _e148 = Sky.fog_origin.y; let t_4 = clamp(((depth - _e139) / max((_e144 - _e148), 0.000001f)), 0f, 1f); let _e159 = Sky.flags.y; let top_2 = f32((max(_e159, 2u) - 1u)); let rough = mix((1f / top_2), 1f, (1f - t_4)); let _e171 = fc_1; let _e172 = sky_dir(dir_3); let _e173 = radiance_1(_e172, rough); let _e177 = Sky.sun.w; let _e182 = Sky.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } let _e184 = fc_1; let _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; let _e186 = fc_1; let _e187 = amount; return mix(c_12, _e186, _e187); } fn fog_chord(k_5: u32, o: vec3, d_4: vec3, t_end_ray: f32) -> vec2 { var r_1: vec2; var a: f32 = 0f; var b: f32 = 0f; var c_13: f32 = -1f; let _e9 = Fog.entries[k_5].albedo.w; let shape = u32(_e9); let _e16 = Fog.entries[k_5].emission.w; let t_end_1 = min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return vec2(0f, t_end_1); } let _e26 = Fog.entries[k_5].size; let h_1 = (_e26.xyz * 0.5f); let dd = select(d_4, vec3(0.000000000001f), (abs(d_4) < vec3(0.000000000001f))); let sa = ((-(h_1) - o) / dd); let sb = ((h_1 - o) / dd); let s_in = min(sa, sb); let s_out = max(sa, sb); r_1 = vec2(max(0f, s_in.y), min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { let _e60 = r_1.x; let _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1f); } else { let rad = min(h_1.x, h_1.z); let k_15 = select(0f, (rad / (2f * h_1.y)), (shape == FOG_SHAPE_CONE)); let w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - select((rad * rad), (((k_15 * k_15) * w_3) * w_3), (shape == FOG_SHAPE_CONE))); } } let _e139 = b; let _e140 = b; let _e142 = a; let _e143 = c_13; let disc = ((_e139 * _e140) - (_e142 * _e143)); let _e146 = a; if (abs(_e146) < 0.000000000001f) { let _e150 = b; if (abs(_e150) < 0.000000000001f) { let _e156 = r_1.y; let _e157 = c_13; r_1.y = select(_e156, -1f, (_e157 > 0f)); } else { let _e162 = b; if (_e162 > 0f) { let _e167 = r_1.y; let _e168 = c_13; let _e170 = b; r_1.y = min(_e167, (-(_e168) / (2f * _e170))); } else { let _e177 = r_1.x; let _e178 = c_13; let _e180 = b; r_1.x = max(_e177, (-(_e178) / (2f * _e180))); } } } else { if (disc < 0f) { let _e189 = r_1.y; let _e190 = a; r_1.y = select(_e189, -1f, (_e190 > 0f)); } else { let _e195 = b; let _e199 = a; let _e201 = b; let _e205 = a; let lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); let _e208 = b; let _e212 = a; let _e214 = b; let _e218 = a; let hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); let _e221 = a; if (_e221 > 0f) { let _e225 = r_1.x; let _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { let _e232 = r_1.x; let _e234 = r_1.y; if (_e232 < min(_e234, lo_2)) { let _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { let _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } let _e245 = r_1; return _e245; } fn fog_density(k_6: u32, p_3: vec3, lp: vec3) -> f32 { var rho: f32; var sdf: f32 = 0f; let e_4 = Fog.entries[k_6]; let _e14 = Fog.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1f)); if (e_4.material.z > 0f) { let shape_1 = u32(e_4.albedo.w); let h_2 = (e_4.size.xyz * 0.5f); let rad_1 = min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { let k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1f)) / max(length((lp / (h_2 * h_2))), 0.000000000001f)); } else { if (shape_1 == FOG_SHAPE_BOX) { let q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0f))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0f)); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { let q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0f) + length(max(q_4, vec2(0f)))); } else { let n_11 = normalize(vec2((1f / max(0.001f, (rad_1 * 0.5f))), (1f / max(0.001f, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } let _e116 = rho; let _e117 = sdf; rho = (_e116 * pow(clamp(((-2f * _e117) / e_4.size.w), 0f, 1f), e_4.material.z)); } let _e130 = rho; return _e130; } fn fog_falloff_depth(k_7: u32, a_1: f32, b_1: f32, t0_: f32, t1_: f32) -> f32 { let m_4 = Fog.entries[k_7].material; let hf = m_4.y; if ((hf * b_1) == 0f) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1f)); } let s_2 = clamp((-(a_1) / b_1), t0_, t1_); let lo_3 = select(t0_, s_2, (b_1 > 0f)); let hi_3 = select(s_2, t1_, (b_1 > 0f)); let x_4 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472f); let g = select(((1f - exp(-(x_4))) / x_4), (1f - (x_4 * (0.5f - (x_4 * (0.16666667f - (x_4 / 24f)))))), (x_4 < 0.01f)); let top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * select(hi_3, lo_3, (b_1 > 0f)))), 0f))), 1f); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } fn omni_attenuation(d_5: f32, inv_range: f32, decay: f32) -> f32 { var nd: f32; nd = (d_5 * inv_range); let _e5 = nd; let _e6 = nd; nd = (_e5 * _e6); let _e8 = nd; let _e9 = nd; nd = (_e8 * _e9); let _e11 = nd; nd = max((1f - _e11), 0f); let _e16 = nd; let _e17 = nd; nd = (_e16 * _e17); let _e19 = nd; return (_e19 * pow(max(d_5, 0.0001f), -(decay))); } fn fog_light(n_3: u32, p_4: vec3, dir_4: vec3) -> vec3 { var sum: vec3; var k_8: u32 = 0u; var l_1: vec3; var atten: f32; let _e5 = Fog.ambient; let _e10 = Fog.params.y; sum = (_e5.xyz * _e10); let g_1 = Fog.params.x; let lights = Fog.entries[n_3].lights; loop { let _e24 = k_8; if (_e24 < min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { let _e31 = k_8; let _e35 = k_8; let i_14 = min(((select(lights.y, lights.x, (_e31 < 4u)) >> ((_e35 & 3u) * 8u)) & 255u), 63u); let li = Lit.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1f; if (li.info.x != LIGHT_DIRECTIONAL) { let rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 0.000001f))); let _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { let _e77 = l_1; let rim = max(0.0001f, ((1f - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1f - li.spot.x), 0.000001f))); let _e96 = atten; atten = (_e96 * (1f - pow(rim, li.spot.y))); } } let _e108 = l_1; let q_5 = ((1f + (g_1 * g_1)) - ((2f * g_1) * dot(dir_4, _e108))); let _e112 = sum; let _e115 = atten; let _e133 = Fog.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1f - (g_1 * g_1))) / ((12.566371f * q_5) * sqrt(q_5))) * _e133))); } continuing { let _e138 = k_8; k_8 = (_e138 + 1u); } } let _e140 = sum; return _e140; } fn fog_entry(k_9: u32, o_1: vec3, d_6: vec3, ch: vec2) -> vec4 { var split: f32; var local_9: bool; var local_10: bool; var q_1: vec3 = vec3(0f); var tau: f32 = 0f; var i_1: u32 = 0u; var local_11: bool; var local_12: bool; let e_5 = Fog.entries[k_9]; let lo_4 = (e_5.to_local * vec4(o_1, 1f)).xyz; let ld = (e_5.to_local * vec4(d_6, 0f)).xyz; let _e20 = Fog.up; let a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); let _e28 = Fog.up; let b_3 = dot(d_6, _e28.xyz); let edge = (e_5.material.z > 0f); split = ((ch.x + ch.y) * 0.5f); if (e_5.material.y > 0f) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } let _e52 = local_9; if _e52 { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } let _e60 = local_10; if _e60 { split = (-(a_6) / b_3); } loop { let _e70 = i_1; if (_e70 < select(4u, 12u, edge)) { } else { break; } { let _e75 = i_1; let j = (_e75 & 3u); if !((j == 0u)) { local_11 = (j == 3u); } else { local_11 = true; } let _e88 = local_11; let x_5 = select(FOG_GL_X1_, FOG_GL_X0_, _e88); if !((j == 0u)) { local_12 = (j == 3u); } else { local_12 = true; } let _e100 = local_12; let w_4 = select(FOG_GL_W1_, FOG_GL_W0_, _e100); let _e102 = split; let _e106 = split; let _e108 = i_1; let _e112 = i_1; let seg = select(select(vec2(_e102, ch.y), vec2(ch.x, _e106), (_e108 < 8u)), ch, (_e112 < 4u)); let half_len = ((seg.y - seg.x) * 0.5f); let t_5 = (((seg.x + seg.y) * 0.5f) + (half_len * select(x_5, -(x_5), (j < 2u)))); let p_8 = (o_1 + (d_6 * t_5)); let _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_5))); let _e137 = i_1; if (_e137 < 4u) { let _e140 = q_1; let _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0f, 1f)))); } else { let _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } continuing { let _e160 = i_1; i_1 = (_e160 + 1u); } } if !(edge) { let _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } let _e166 = q_1; let _e167 = tau; return vec4(_e166, _e167); } fn fog_integrate(c_14: vec3, o_2: vec3, d_7: vec3, t_end: f32, list: u32) -> vec3 { var at: array; var chords: array, 4>; var m: u32 = 0u; var i_2: u32 = 0u; var local_13: bool; var parts: array, 4>; var i_3: u32 = 0u; var n_4: u32 = 0u; var avail: f32; var i_4: u32; var i_5: u32; var q_2: vec3 = vec3(0f); var tau_1: f32 = 0f; var i_6: u32 = 0u; let all_ = (list >= FOG_LIST_ALL); loop { let _e13 = i_2; let _e18 = Fog.counts.x; if (_e13 < select(4u, min(_e18, MAX_FRAME_FOG_VOLUMES), all_)) { } else { break; } { let _e23 = i_2; let byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if !(all_) { local_13 = (byte == 0u); } else { local_13 = false; } let _e37 = local_13; if _e37 { break; } let _e42 = i_2; let k_16 = select((min(byte, MAX_FRAME_FOG_VOLUMES) - 1u), _e42, all_); let to_local = Fog.entries[k_16].to_local; let _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1f)).xyz, (to_local * vec4(d_7, 0f)).xyz, t_end); if (_e57.y > _e57.x) { let _e61 = m; at[_e61] = k_16; let _e63 = m; chords[_e63] = _e57; let _e66 = m; m = (_e66 + 1u); let _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } continuing { let _e72 = i_2; i_2 = (_e72 + 1u); } } loop { let _e77 = i_3; let _e78 = m; if (_e77 < _e78) { } else { break; } { let _e80 = i_3; let _e82 = i_3; let _e84 = at[_e82]; let _e85 = i_3; let _e87 = chords[_e85]; let _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } continuing { let _e90 = i_3; i_3 = (_e90 + 1u); } } loop { let _e94 = n_4; let _e95 = m; if (_e94 < _e95) { } else { break; } { let _e97 = n_4; let _e100 = parts[_e97].w; if (_e100 < 0f) { avail = 0f; i_4 = 0u; loop { let _e107 = i_4; let _e108 = m; if (_e107 < _e108) { } else { break; } { let _e110 = i_4; let _e113 = chords[_e110].y; let _e114 = n_4; let _e117 = chords[_e114].y; let _e119 = i_4; let _e122 = chords[_e119].x; let _e123 = n_4; let _e126 = chords[_e123].x; let _e131 = i_4; let _e134 = chords[_e131].y; let _e135 = i_4; let _e138 = chords[_e135].x; let share = (max((min(_e113, _e117) - max(_e122, _e126)), 0f) / max((_e134 - _e138), 0.000001f)); let _e143 = avail; let _e144 = i_4; let _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0f) * share)); } continuing { let _e153 = i_4; i_4 = (_e153 + 1u); } } let _e155 = n_4; let _e158 = parts[_e155].w; let _e160 = avail; let f_2 = min((-(_e158) / max(_e160, 0.000000000001f)), 1f); i_5 = 0u; loop { let _e168 = i_5; let _e169 = m; if (_e168 < _e169) { } else { break; } { let _e171 = i_5; let _e174 = parts[_e171].w; if (_e174 > 0f) { let _e177 = i_5; let _e180 = chords[_e177].y; let _e181 = n_4; let _e184 = chords[_e181].y; let _e186 = i_5; let _e189 = chords[_e186].x; let _e190 = n_4; let _e193 = chords[_e190].x; let _e198 = i_5; let _e201 = chords[_e198].y; let _e202 = i_5; let _e205 = chords[_e202].x; let share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0f) / max((_e201 - _e205), 0.000001f)); let _e210 = i_5; let _e212 = parts[_e210]; parts[_e210] = (_e212 * (1f - (share_1 * f_2))); } } continuing { let _e218 = i_5; i_5 = (_e218 + 1u); } } } } continuing { let _e221 = n_4; n_4 = (_e221 + 1u); } } loop { let _e230 = i_6; let _e231 = m; if (_e230 < _e231) { } else { break; } { let _e233 = i_6; let _e236 = parts[_e233].w; if (_e236 > 0f) { let _e239 = q_2; let _e240 = i_6; let _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); let _e245 = tau_1; let _e246 = i_6; let _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } continuing { let _e252 = i_6; i_6 = (_e252 + 1u); } } let _e254 = tau_1; let t_6 = exp(-(_e254)); let _e258 = q_2; let _e261 = tau_1; return ((c_14 * t_6) + (_e258 * ((1f - t_6) / max(_e261, 0.00001f)))); } fn fog_volumes(c_15: vec3, world_4: vec3, list_1: u32) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_6 = select(_e22.xyz, (world_4 - (back * (_e26 * vec4(world_4, 1f)).z)), (_e36 > 0.5f)); let len = length((world_4 - o_6)); let _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 0.000001f))), len, list_1); return select(c_15, _e47, (len > 0f)); } fn sky_fog_volumes(c_16: vec3, near_point: vec3, dir_5: vec3) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back_1 = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_7 = select(_e22.xyz, (near_point - (back_1 * (_e26 * vec4(near_point, 1f)).z)), (_e36 > 0.5f)); let _e44 = Fog.counts.y; let _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); let _e49 = Fog.params.z; return mix(c_16, _e45, _e49); } fn shadow_factor(i_7: u32, world_5: vec3, n_geo_1: vec3, l_2: vec3) -> f32 { var part: u32 = 0u; var c_17: u32 = 0u; var local_14: bool; var local_15: bool; var local_16: bool; var vis: f32 = 0f; var dy: i32 = -1i; var dx: i32; let kind = Lit.lights[i_7].info.x; let _e14 = Lit.lights[i_7].position; let light_pos = _e14.xyz; let _e21 = Lit.lights[i_7].info.w; let slot = min(_e21, 15u); let params = Shadow.lights[slot].params; let first = Shadow.lights[slot].info.x; let _e40 = Shadow.lights[slot].info.y; let count = max(_e40, 1u); let _e45 = G.view; let view_depth = -((_e45 * vec4(world_5, 1f)).z); if (kind == LIGHT_DIRECTIONAL) { let _e60 = Shadow.lights[slot].fade.y; if (view_depth > _e60) { return 1f; } part = (count - 1u); loop { let _e67 = c_17; if (_e67 < count) { } else { break; } { let _e73 = c_17; let _e75 = Shadow.lights[slot].splits[_e73]; if (view_depth <= _e75) { let _e77 = c_17; part = _e77; break; } } continuing { let _e79 = c_17; c_17 = (_e79 + 1u); } } } let _e83 = part; let texel = Shadow.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; let t_7 = (texel.x + (texel.y * distance(world_5, light_pos))); let p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1f)) * t_7))) + (l_2 * (params.x * t_7))); if (kind == LIGHT_OMNI) { let d_13 = (p_9 - light_pos); let a_7 = abs(d_13); if (a_7.x >= a_7.y) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } let _e123 = local_14; if _e123 { part = select(1u, 0u, (d_13.x >= 0f)); } else { if (a_7.y >= a_7.z) { part = select(3u, 2u, (d_13.y >= 0f)); } else { part = select(5u, 4u, (d_13.z >= 0f)); } } } let _e145 = part; let tile = min((first + min(_e145, (count - 1u))), 15u); let _e156 = Shadow.tiles[tile].view_proj; let clip_1 = (_e156 * vec4(p_9, 1f)); if (clip_1.w <= 0f) { return 1f; } let ndc = (clip_1.xyz / vec3(clip_1.w)); if !((abs(ndc.x) > 1f)) { local_15 = (abs(ndc.y) > 1f); } else { local_15 = true; } let _e180 = local_15; if !(_e180) { local_16 = (ndc.z > 1f); } else { local_16 = true; } let _e188 = local_16; if _e188 { return 1f; } let rect = Shadow.tiles[tile].rect; let uv_5 = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let auv = (rect.xy + (uv_5 * rect.zw)); let texel_uv = Shadow.atlas.x; let lo_5 = (rect.xy + vec2((0.5f * texel_uv))); let hi_4 = ((rect.xy + rect.zw) - vec2((0.5f * texel_uv))); let r_7 = params.z; if (r_7 <= 0f) { let _e235 = textureSampleCompareLevel(t_shadow, s_shadow, clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { let spread = (r_7 * texel_uv); loop { let _e239 = dy; if (_e239 <= 1i) { } else { break; } { dx = -1i; loop { let _e244 = dx; if (_e244 <= 1i) { } else { break; } { let _e247 = dx; let _e249 = dy; let tap = clamp((auv + (vec2(f32(_e247), f32(_e249)) * spread)), lo_5, hi_4); let _e255 = vis; let _e259 = textureSampleCompareLevel(t_shadow, s_shadow, tap, ndc.z); vis = (_e255 + _e259); } continuing { let _e262 = dx; dx = (_e262 + 1i); } } } continuing { let _e265 = dy; dy = (_e265 + 1i); } } let _e267 = vis; vis = (_e267 / 9f); } if (kind == LIGHT_DIRECTIONAL) { let fade_1 = Shadow.lights[slot].fade; let _e277 = vis; vis = mix(_e277, 1f, smoothstep(fade_1.x, fade_1.y, view_depth)); } let _e283 = vis; return mix(1f, _e283, params.w); } fn probe_light(n_5: vec3) -> vec3 { let _e5 = O.gi[0].x; let _e9 = O.gi[0]; let _e17 = O.gi[1].x; let _e21 = O.gi[1]; let _e29 = O.gi[2].x; let _e33 = O.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0f)); } fn gi_diffuse(n_6: vec3, baked: bool, baked_light: vec3) -> vec4 { if baked { return vec4(baked_light, 1f); } let _e9 = O.extra.x; if select(false, ((_e9 & OBJ_PROBE_GI) != 0u), SPEC_PROBE_GI) { let _e16 = probe_light(n_6); return vec4(_e16, 1f); } return vec4(0f); } fn probe_face_uv(d_8: vec3) -> vec3 { var face: f32; var ma: f32; var sc: f32; var tc: f32; var local_17: bool; let a_8 = abs(d_8); if (a_8.x >= a_8.y) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } let _e15 = local_17; if _e15 { ma = a_8.x; if (d_8.x >= 0f) { face = 0f; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1f; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0f) { face = 2f; sc = d_8.x; tc = d_8.z; } else { face = 3f; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0f) { face = 4f; sc = d_8.x; tc = -(d_8.y); } else { face = 5f; sc = -(d_8.x); tc = -(d_8.y); } } } let _e56 = face; let _e57 = sc; let _e58 = ma; let _e64 = tc; let _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1f) * 0.5f), (((_e64 / _e65) + 1f) * 0.5f)); } fn probe_texel(row: u32, fuv: vec3, level_1: u32) -> vec3 { let _e6 = Probe.counts.z; let n_12 = f32(max((_e6 >> level_1), 1u)); let lo_6 = (0.5f / n_12); let u_2 = clamp(fuv.y, lo_6, (1f - lo_6)); let v_8 = clamp(fuv.z, lo_6, (1f - lo_6)); let uv_6 = vec2(((fuv.x + u_2) / 6f), ((f32(row) + v_8) / 8f)); let _e33 = textureSampleLevel(t_probes, s_probes, uv_6, f32(level_1)); return _e33.xyz; } fn probe_sample(row_1: u32, d_9: vec3, lod: f32) -> vec3 { var local_18: bool; let _e6 = Probe.counts.y; let levels = max(_e6, 1u); let l_5 = clamp(lod, 0f, f32((levels - 1u))); let m0_ = u32(l_5); let t_8 = (l_5 - f32(m0_)); let _e17 = probe_face_uv(d_9); let _e18 = probe_texel(row_1, _e17, m0_); if !((t_8 <= 0f)) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } let _e28 = local_18; if _e28 { return _e18; } let _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1f - t_8)) + (_e34 * t_8)); } fn probe_weight(p_5: ProbeEntryU, world_6: vec3) -> f32 { let l_6 = (p_5.to_local * vec4(world_6, 1f)).xyz; let e_6 = p_5.extents.xyz; let d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if (d_14 < 0f) { return 0f; } if !((p_5.extents.w > 0f)) { return 1f; } return min((d_14 / p_5.extents.w), 1f); } fn probe_exit(o_3: f32, d_10: f32, e_1: f32) -> f32 { if (d_10 > 0f) { return ((e_1 - o_3) / d_10); } if (d_10 < 0f) { return ((-(e_1) - o_3) / d_10); } return 300000000000000000000000000000000000000f; } fn probe_lookup(p_6: ProbeEntryU, world_7: vec3, dir_6: vec3) -> vec3 { let d_15 = (p_6.to_local * vec4(dir_6, 0f)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } let o_8 = (p_6.to_local * vec4(world_7, 1f)).xyz; let e_7 = p_6.extents.xyz; let _e24 = probe_exit(o_8.x, d_15.x, e_7.x); let _e28 = probe_exit(o_8.y, d_15.y, e_7.y); let _e32 = probe_exit(o_8.z, d_15.z, e_7.z); let t_9 = max(min(_e24, min(_e28, _e32)), 0f); return ((o_8 + (d_15 * t_9)) - p_6.offset.xyz); } fn probe_reflection(world_8: vec3, r_2: vec3, roughness_2: f32, probes: u32) -> vec4 { var acc: vec3 = vec3(0f); var w_sum: f32 = 0f; var i_8: u32 = 0u; let _e12 = Probe.counts.x; let count_1 = min(_e12, MAX_PROBES); let _e18 = Probe.counts.y; let lod_1 = (roughness_2 * f32((max(_e18, 1u) - 1u))); loop { let _e27 = i_8; if (_e27 < count_1) { } else { break; } { let _e31 = i_8; let p_10 = Probe.probes[_e31]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } let _e41 = probe_weight(p_10, world_8); if (_e41 <= 0f) { continue; } let _e44 = acc; let _e47 = probe_lookup(p_10, world_8, r_2); let _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); let _e54 = w_sum; w_sum = (_e54 + _e41); } continuing { let _e57 = i_8; i_8 = (_e57 + 1u); } } let _e59 = w_sum; if (_e59 > 1f) { let _e62 = acc; let _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1f; } let _e67 = acc; let _e68 = w_sum; return vec4(_e67, _e68); } fn probe_ambient(world_9: vec3, n_7: vec3, probes_1: u32) -> vec4 { var acc_1: vec3 = vec3(0f); var w_sum_1: f32 = 0f; var i_9: u32 = 0u; var local_19: bool; var c_18: vec3; let _e11 = Probe.counts.x; let count_2 = min(_e11, MAX_PROBES); let _e17 = Probe.counts.y; let last = (max(_e17, 1u) - 1u); loop { let _e24 = i_9; if (_e24 < count_2) { } else { break; } { let _e28 = i_9; let p_11 = Probe.probes[_e28]; if !((((probes_1 >> p_11.info.w) & 1u) == 0u)) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } let _e46 = local_19; if _e46 { continue; } let _e47 = probe_weight(p_11, world_9); if (_e47 <= 0f) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { let _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0f)).xyz); let _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } let _e66 = acc_1; let _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); let _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } continuing { let _e73 = i_9; i_9 = (_e73 + 1u); } } let _e75 = w_sum_1; if (_e75 > 1f) { let _e78 = acc_1; let _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1f; } let _e83 = acc_1; let _e84 = w_sum_1; return vec4(_e83, _e84); } fn skin_row(k_10: u32, r_3: u32) -> vec4 { let _e10 = Skin.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } fn skin_rows(s_1: SkinIn) -> SkinRows { var m_1: SkinRows; let j_1 = s_1.joints; let w_5 = s_1.weights; let _e8 = skin_row(j_1.x, 0u); let _e13 = skin_row(j_1.y, 0u); let _e19 = skin_row(j_1.z, 0u); let _e25 = skin_row(j_1.w, 0u); m_1.r0_ = ((((w_5.x * _e8) + (w_5.y * _e13)) + (w_5.z * _e19)) + (w_5.w * _e25)); let _e32 = skin_row(j_1.x, 1u); let _e37 = skin_row(j_1.y, 1u); let _e43 = skin_row(j_1.z, 1u); let _e49 = skin_row(j_1.w, 1u); m_1.r1_ = ((((w_5.x * _e32) + (w_5.y * _e37)) + (w_5.z * _e43)) + (w_5.w * _e49)); let _e56 = skin_row(j_1.x, 2u); let _e61 = skin_row(j_1.y, 2u); let _e67 = skin_row(j_1.z, 2u); let _e73 = skin_row(j_1.w, 2u); m_1.r2_ = ((((w_5.x * _e56) + (w_5.y * _e61)) + (w_5.z * _e67)) + (w_5.w * _e73)); let _e76 = m_1; return _e76; } fn hedra_store_varyings(o_4: ptr) { let _e3 = dir_7; (*o_4).hedra_v0_ = vec4(_e3, 0f); return; } fn hedra_load_varyings(i_10: CustomOut) { dir_7 = i_10.hedra_v0_.xyz; return; } fn light() { return; } fn scene_to_frame(v_3: vec3) -> vec3 { return vec3(v_3.x, -(v_3.z), v_3.y); } fn vertex() { let _e2 = VERTEX; let _e4 = NODE_POSITION_WORLD; dir_7 = (_e2 - _e4); return; } fn fragment() { var t: f32; var col: vec3; var local_20: bool; var local_21: bool; let _e1 = dir_7; let d_16 = normalize(_e1); let up = d_16.z; let _e9 = hedra_p.curve; t = pow(clamp(up, 0f, 1f), (1f / _e9)); let _e16 = hedra_p.bands; if (_e16 >= 2f) { let _e19 = t; let _e22 = hedra_p.bands; let _e27 = hedra_p.bands; t = (floor((_e19 * _e22)) / _e27); } let _e31 = hedra_p.horizon; let _e34 = hedra_p.zenith; let _e35 = t; col = mix(_e31, _e34, _e35); if (up < 0f) { let _e42 = hedra_p.horizon; let _e45 = hedra_p.below; col = mix(_e42, _e45, clamp((-(up) * 8f), 0f, 1f)); } let _e55 = hedra_p.sun_direction; let _e56 = scene_to_frame(_e55); let sun_1 = normalize(_e56); let angle = degrees(acos(clamp(dot(d_16, sun_1), -1f, 1f))); let _e66 = hedra_p.halo_strength; let _e69 = hedra_p.halo_size; let halo = (_e66 * pow(clamp((1f - (angle / max(_e69, 0.001f))), 0f, 1f), 2f)); let _e81 = col; let _e84 = hedra_p.sun_color; col = (_e81 + (_e84 * halo)); let _e89 = hedra_p.sun_size; if (angle < _e89) { let _e93 = hedra_p.sun_color; col = (_e93 * 1.4f); } let elevation = degrees(asin(clamp(up, -1f, 1f))); let _e104 = hedra_p.horizon_band.x; let _e109 = hedra_p.horizon_band.y; let _e113 = hedra_p.horizon_band.x; let v_9 = ((elevation - _e104) / max((_e109 - _e113), 0.001f)); let _e127 = hedra_p.horizon_repeat; let u_3 = (((atan2(d_16.y, d_16.x) / TAU) + 0.5f) * _e127); let strip = textureSample(horizon_texture, SAMPLER_NEAREST_REPEAT, vec2(u_3, (1f - clamp(v_9, 0f, 1f)))); if (v_9 >= 0f) { local_20 = (v_9 <= 1f); } else { local_20 = false; } let _e145 = local_20; if _e145 { local_21 = (strip.w >= 0.5f); } else { local_21 = false; } let _e152 = local_21; if _e152 { let _e156 = hedra_p.horizon_tint; col = (strip.xyz * _e156); } let _e159 = col; ALBEDO = _e159; return; } fn hedra_mat3_(m_2: mat4x4) -> mat3x3 { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } fn hedra_rigid_inverse(m_3: mat4x4) -> mat4x4 { let _e1 = hedra_mat3_(m_3); let r_8 = transpose(_e1); let t_10 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0f), vec4(r_8[1], 0f), vec4(r_8[2], 0f), vec4(t_10, 1f)); } fn hedra_inv_projection() -> mat4x4 { let _e2 = G.wire_color; let _e5 = G.select_color; let _e8 = G.active_color; let _e11 = G.grid; return mat4x4(_e2, _e5, _e8, _e11); } fn hedra_godot_uv(uv_1: vec2) -> vec2 { return vec2(uv_1.x, (1f - uv_1.y)); } fn hedra_transparent() -> bool { var local_22: bool; var local_23: bool; if HEDRA_ALPHA { local_22 = true; } else { local_22 = false; } let _e5 = local_22; if !(_e5) { local_23 = false; } else { local_23 = true; } let _e11 = local_23; return _e11; } fn hedra_mirrored(flags_1: u32) -> bool { let _e4 = O.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } fn hedra_matrices(model: mat4x4, normal: mat3x3) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; let _e7 = G.view; let _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; let _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; let _e14 = G.view; MODELVIEW_MATRIX = (_e14 * model); let _e19 = G.view; let _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; let _e28 = G.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1f)).xyz; let _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } fn hedra_begin_vertex(pos: vec3, normal_1: vec3, tangent: vec4, uv_2: vec2, uv2_: vec2, color: vec4, vid_3: u32) { var local_24: bool; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); let _e17 = hedra_godot_uv(uv_2); UV = _e17; let _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = i32(vid_3); POSITION = vec4(1f); if HEDRA_WORLD_VERTEX_COORDS { local_24 = true; } else { local_24 = false; } let _e31 = local_24; if _e31 { let _e34 = MODEL_MATRIX; let _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1f)).xyz; let _e43 = MODEL_NORMAL_MATRIX; let _e45 = NORMAL; NORMAL = (_e43 * _e45); let _e49 = MODEL_NORMAL_MATRIX; let _e51 = TANGENT; TANGENT = (_e49 * _e51); let _e55 = MODEL_NORMAL_MATRIX; let _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } fn hedra_end_vertex(world_10: vec4, n_8: vec3, t_1: vec3, tw: f32, flags_2: u32) -> CustomOut { var out_2: CustomOut; let _e9 = G.view_proj; out_2.clip = (_e9 * world_10); if HEDRA_USES_POSITION { let _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); let _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t_1), tw); let _e28 = COLOR; out_2.color = _e28; let _e31 = UV2_; out_2.uv2_ = _e31; let _e34 = INSTANCE_ID; out_2.instance_id = u32(max(_e34, 0i)); hedra_store_varyings((&out_2)); let _e38 = out_2; return _e38; } fn hedra_vertex_space() -> bool { var local_25: bool; if true { local_25 = HEDRA_WORLD_VERTEX_COORDS; } else { local_25 = true; } let _e5 = local_25; return _e5; } fn hedra_vertex_world() -> vec4 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e2 = INV_VIEW_MATRIX; let _e4 = VERTEX; return (_e2 * vec4(_e4, 1f)); } let _e9 = VERTEX; return vec4(_e9, 1f); } fn hedra_vertex_dir(d_11: vec3) -> vec3 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e3 = INV_VIEW_MATRIX; let _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } fn hedra_tangent_sign(w: f32, flip: bool) -> f32 { let _e5 = O.extra.x; return (w * select(1f, -1f, (((_e5 & OBJ_MIRRORED) != 0u) != flip))); } fn hedra_fragment(in_7: CustomOut, facing_4: bool) { var t_2: vec3; var nm: vec3; let _e3 = hedra_mirrored(in_7.flags); let front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; let _e14 = G.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); let _e19 = O.model; let _e22 = O.normal; let _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); let _e26 = G.view; let _e27 = hedra_mat3_(_e26); let n_geo_2 = select(-(normalize(in_7.normal)), normalize(in_7.normal), front); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_2 = in_7.tangent.xyz; let _e41 = t_2; let _e42 = t_2; t_2 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); let _e47 = t_2; let b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); let _e55 = G.view; VERTEX = (_e55 * vec4(in_7.world, 1f)).xyz; let _e63 = VERTEX; LIGHT_VERTEX = _e63; let vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); let normal0_ = NORMAL; let _e72 = t_2; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); let _e80 = VERTEX; let _e90 = G.camera_pos.w; VIEW = select(normalize(-(_e80)), vec3(0f, 0f, 1f), (_e90 > 0.5f)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5f); NORMAL_MAP_DEPTH = 1f; ALBEDO = vec3(1f); ALPHA = 1f; ALPHA_SCISSOR_THRESHOLD = 1f; PREMUL_ALPHA_FACTOR = 1f; METALLIC = 0f; SPECULAR = 0.5f; ROUGHNESS = 1f; RIM = 0f; RIM_TINT = 0f; BACKLIGHT = vec3(0f); AO = 1f; AO_LIGHT_AFFECT = 0f; EMISSION = vec3(0f); hedra_load_varyings(in_7); fragment(); let back_2 = transpose(_e27); let _e136 = NORMAL; if any((_e136 != normal0_)) { let _e141 = NORMAL; hedra_n = normalize((back_2 * _e141)); } let _e145 = NORMAL_MAP; if any((_e145 != vec3(0.5f))) { let _e151 = NORMAL_MAP; nm = _e151; let _e153 = nm; nm = vec3(((_e153.xy * 2f) - vec2(1f)), 0f); let _e163 = nm; let _e165 = nm; nm.z = sqrt(max(0f, (1f - dot(_e163.xy, _e165.xy)))); let _e175 = NORMAL; let _e177 = TANGENT; let _e179 = nm.x; let _e182 = BINORMAL; let _e184 = nm.y; let _e188 = NORMAL; let _e190 = nm.z; let _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); let _e199 = NORMAL; hedra_n = normalize((back_2 * _e199)); } let _e203 = LIGHT_VERTEX; if any((_e203 != vertex0_)) { let _e208 = INV_VIEW_MATRIX; let _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1f)).xyz; return; } else { return; } } fn hedra_culled(flags_3: u32) -> bool { var local_26: bool; var local_27: bool; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if true { let _e10 = hedra_front; local_26 = _e10; } else { local_26 = false; } let _e12 = local_26; if _e12 { return true; } if HEDRA_ALPHA_SCISSOR { let _e18 = ALPHA; let _e20 = ALPHA_SCISSOR_THRESHOLD; local_27 = (_e18 < _e20); } else { local_27 = false; } let _e23 = local_27; return _e23; } fn hedra_view_dir(world_11: vec3) -> vec3 { let _e5 = G.view[0][2]; let _e10 = G.view[1][2]; let _e15 = G.view[2][2]; let view_dir = vec3(_e5, _e10, _e15); let _e19 = G.camera_pos; let _e27 = G.camera_pos.w; return select(normalize((_e19.xyz - world_11)), normalize(view_dir), (_e27 > 0.5f)); } fn hedra_schlick(u: f32) -> f32 { let m_5 = clamp((1f - u), 0f, 1f); let m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } fn hedra_diffuse_brdf(nl_1: f32, nv_2: f32, lh: f32, r_4: f32) -> f32 { let c_nl = max(nl_1, 0f); if false { return (max(0f, ((nl_1 + r_4) / ((1f + r_4) * (1f + r_4)))) * 0.31830987f); } if false { return (smoothstep(-(r_4), max(r_4, 0.01f), nl_1) * 0.31830987f); } if false { let fd90_ = ((((2f * lh) * lh) * r_4) - 0.5f); let _e32 = hedra_schlick(nv_2); let fdv = (1f + (fd90_ * _e32)); let _e36 = hedra_schlick(c_nl); let fdl = (1f + (fd90_ * _e36)); return (((0.31830987f * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987f); } fn hedra_light_modes(n_9: vec3, v_4: vec3, l_3: vec3, radiance_2: vec3, diffuse_1: vec3, f0_2: vec3, a2_3: f32, r_5: f32, specular_1: f32) -> vec3 { var c_19: vec3; var mid: f32; var local_28: bool; let nl_3 = min(dot(n_9, l_3), 1f); let nv_4 = max(dot(n_9, v_4), 0.0001f); let h_3 = normalize((l_3 + v_4)); let lh_1 = clamp(dot(l_3, h_3), 0f, 1f); let _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if (r_5 > 0f) { if false { let refl = normalize(-(reflect(l_3, n_9))); let rv = dot(refl, v_4); mid = (1f - r_5); let _e35 = mid; let _e36 = mid; mid = (_e35 * _e36); let _e38 = c_19; let _e40 = mid; let _e44 = mid; let _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5f)), (_e44 + (r_5 * 0.5f)), rv) * _e49) * specular_1))); } else { if false { local_28 = (nl_3 > 0f); } else { local_28 = false; } let _e60 = local_28; if _e60 { let nh_2 = max(dot(n_9, h_3), 0f); let vh_2 = max(dot(v_4, h_3), 0f); let _e67 = f_schlick(f0_2, vh_2); let _e68 = c_19; let _e69 = d_ggx(nh_2, a2_3); let _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } let _e77 = c_19; return _e77; } fn hedra_light_dir(i_11: u32, world_12: vec3) -> vec4 { var atten_1: f32; let li_1 = Lit.lights[i_11]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return vec4(-(li_1.direction.xyz), 1f); } let rel_1 = (li_1.position.xyz - world_12); let d_17 = length(rel_1); let l_7 = (rel_1 / vec3(max(d_17, 0.000001f))); let _e27 = omni_attenuation(d_17, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { let cone = li_1.spot.x; let scos = max(dot(-(l_7), li_1.direction.xyz), cone); let rim_1 = max(0.0001f, ((1f - scos) / max((1f - cone), 0.000001f))); let _e49 = atten_1; atten_1 = (_e49 * (1f - pow(rim_1, li_1.spot.y))); } let _e56 = atten_1; return vec4(l_7, _e56); } fn hedra_shadow(i_12: u32, l_4: vec3) -> f32 { var local_29: bool; if false { let _e10 = Lit.lights[i_12].info.y; local_29 = (_e10 != LIGHT_SHADOWED); } else { local_29 = true; } let _e14 = local_29; if _e14 { return 1f; } let _e17 = hedra_world; let _e19 = hedra_n_geo; let _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } fn hedra_ambient(n_10: vec3, v_5: vec3, diffuse_2: vec3, f0_3: vec3, roughness_3: f32, metallic: f32) -> vec3 { var ambient: vec3; var diffuse_amb: vec3; var spec_amb: vec3; var dif: vec3; var dif_1: vec3; var dif_2: vec3; let world_13 = hedra_world; let nv_5 = max(dot(n_10, v_5), 0.0001f); let f_amb = (f0_3 + ((max(vec3((1f - roughness_3)), f0_3) - f0_3) * pow((1f - nv_5), 5f))); let _e25 = gi_diffuse(n_10, false, vec3(0f)); let _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { let _e38 = Sky.ibl.x; let _e42 = Sky.sun.w; let scale = (_e38 * _e42); let _e46 = Sky.ambient; diffuse_amb = _e46.xyz; let _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { let _e59 = Sky.ambient; let _e61 = sky_dir(n_10); let _e62 = sh_irradiance(_e61); let _e67 = Sky.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if (_e25.w > 0f) { diffuse_amb = _e25.xyz; } let _e75 = Sky.ambient; spec_amb = _e75.xyz; let _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { let _e88 = sky_dir(reflect(-(v_5), n_10)); let _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { let _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = vec3(0f); } } let _e101 = env_brdf_approx(roughness_3, nv_5); let _e105 = Probe.counts.x; if (_e105 > 0u) { let _e113 = O.extra.z; let _e114 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e113); let _e115 = spec_amb; let spec_1 = ((_e115 * (1f - _e114.w)) + _e114.xyz); let _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0f) { let _e130 = O.extra.z; let _e131 = probe_ambient(world_13, n_10, _e130); let _e132 = diffuse_amb; dif = ((_e132 * (1f - _e131.w)) + _e131.xyz); } let _e139 = dif; ambient = ((diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } else { let _e154 = diffuse_amb; let _e156 = spec_amb; ambient = ((diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } } else { let _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { let _e180 = Lit.up; let up_1 = _e180.xyz; let _e184 = Lit.sky_top; let _e188 = Lit.sky_horizon; let sky_avg = ((_e184.xyz + _e188.xyz) * 0.5f); let _e195 = Lit.ground_horizon; let _e199 = Lit.ground_bottom; let ground_avg = ((_e195.xyz + _e199.xyz) * 0.5f); let irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up_1) * 0.5f) + 0.5f), 0f, 1f)); let _e215 = sky(reflect(-(v_5), n_10)); let blurred = mix(_e215, sky_avg, roughness_3); let _e220 = Probe.counts.x; if (_e220 > 0u) { let _e228 = O.extra.z; let _e229 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e228); let _e233 = Lit.ambient.w; let spec_2 = (((blurred * _e233) * (1f - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if (_e25.w <= 0f) { let _e249 = O.extra.z; let _e250 = probe_ambient(world_13, n_10, _e249); let _e254 = Lit.ambient.w; dif_1 = (((irradiance * _e254) * (1f - _e250.w)) + _e250.xyz); } let _e262 = dif_1; ambient = ((diffuse_2 * _e262) + (spec_2 * f_amb)); } else { if (_e25.w > 0f) { let _e275 = Lit.ambient.w; ambient = ((diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { let _e284 = Lit.ambient.w; ambient = (((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284); } } } else { let _e289 = Probe.counts.x; if (_e289 > 0u) { let _e297 = O.extra.z; let _e298 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e297); let _e301 = Lit.ambient; let spec_3 = ((_e301.xyz * (1f - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if (_e25.w <= 0f) { let _e317 = O.extra.z; let _e318 = probe_ambient(world_13, n_10, _e317); let _e321 = Lit.ambient; dif_2 = ((_e321.xyz * (1f - _e318.w)) + _e318.xyz); } let _e329 = dif_2; ambient = ((diffuse_2 * _e329) + (spec_3 * f_amb)); } else { if (_e25.w > 0f) { let _e340 = Lit.ambient; ambient = ((diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb)); } else { let _e346 = Lit.ambient; ambient = (_e346.xyz * (diffuse_2 + f_amb)); } } } } let _e350 = ambient; return _e350; } fn hedra_fog(c_in_1: vec3, v_6: vec3) -> vec3 { var c_20: vec3; c_20 = c_in_1; if HEDRA_FOG_DISABLED { let _e4 = c_20; return _e4; } let _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { let _e13 = c_20; let _e15 = hedra_world; let _e17 = surface_fog(_e13, _e15, -(v_6)); c_20 = _e17; } let _e21 = O.decals.w; if (_e21 != 0u) { let _e24 = c_20; let _e26 = hedra_world; let _e30 = O.decals.w; let _e31 = fog_volumes(_e24, _e26, _e30); c_20 = _e31; } let _e32 = c_20; return _e32; } fn hedra_lit(clip: vec4) -> vec3 { var surf_1: DecalSurface; var c_21: vec3 = vec3(0f); var k_11: u32 = 0u; var local_30: bool; var radiance_3: vec3; var local_31: bool; var local_32: bool; var ambient_1: vec3 = vec3(0f); var local_33: bool; let n_geo_3 = hedra_n_geo; let _e4 = ALBEDO; let _e6 = METALLIC; let _e11 = ROUGHNESS; let _e16 = AO; let _e18 = hedra_n; let _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0f, 1f), clamp(_e11, 0.045f, 1f), _e16, _e18, _e20); let _e26 = O.decals.z; if (_e26 > 0u) { let _e30 = hedra_world; let _e31 = surf_1; let _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; let _e35 = surf_1.base; ALBEDO = _e35; let _e38 = surf_1.metallic; METALLIC = _e38; let _e41 = surf_1.roughness; ROUGHNESS = _e41; let _e45 = G.view; let _e46 = hedra_mat3_(_e45); let _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } let metallic_1 = surf_1.metallic; let roughness_4 = surf_1.roughness; let a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); let base = surf_1.base; let diffuse_3 = (base * (1f - metallic_1)); let _e64 = SPECULAR; let _e68 = SPECULAR; let f0_4 = mix(vec3(((0.16f * _e64) * _e68)), base, metallic_1); let n_13 = surf_1.normal; let _e75 = hedra_world; let _e76 = hedra_view_dir(_e75); let _e79 = G.view; let _e80 = hedra_mat3_(_e79); let _e82 = surf_1.occlusion; let _e84 = AO_LIGHT_AFFECT; let ao_direct = mix(1f, _e82, _e84); DIFFUSE_LIGHT = vec3(0f); SPECULAR_LIGHT = vec3(0f); let _e96 = object_light_count(); loop { let _e99 = k_11; if (_e99 < _e96) { } else { break; } { let _e101 = k_11; let _e102 = object_light(_e101); let li_2 = Lit.lights[_e102]; let _e108 = hedra_world; let _e109 = hedra_light_dir(_e102, _e108); let l_8 = _e109.xyz; let atten_2 = _e109.w; if HEDRA_HAS_LIGHT { if !((li_2.info.x == LIGHT_DIRECTIONAL)) { local_30 = (atten_2 > 0f); } else { local_30 = true; } let _e123 = local_30; if _e123 { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; let _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } let _e142 = RIM; if (_e142 > 0f) { let rim_light = pow(max(0.0001f, (1f - max(dot(n_13, _e76), 0.0001f))), max(0f, ((1f - roughness_4) * 16f))); let _e159 = c_21; let _e164 = RIM; let _e170 = RIM_TINT; c_21 = (_e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1f), base, _e170))); } if (atten_2 > 0f) { radiance_3 = (li_2.color.xyz * atten_2); if (li_2.info.y == LIGHT_SHADOWED) { local_31 = false; } else { local_31 = false; } let _e188 = local_31; if _e188 { let _e192 = hedra_world; let _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if true { local_32 = false; } else { local_32 = false; } let _e201 = local_32; if _e201 { let _e202 = c_21; let _e203 = radiance_3; let _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_21 = (_e202 + _e206); } else { let _e208 = c_21; let _e209 = radiance_3; let _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = (_e208 + _e212); } let _e215 = BACKLIGHT; if any((_e215 > vec3(0f))) { let nl_4 = max(min(dot(n_13, l_8), 1f), 0f); let _e225 = c_21; let _e226 = radiance_3; let _e229 = BACKLIGHT; c_21 = (_e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987f - (nl_4 * 0.31830987f)))); } } } continuing { let _e238 = k_11; k_11 = (_e238 + 1u); } } if HEDRA_HAS_LIGHT { let _e242 = DIFFUSE_LIGHT; let _e249 = SPECULAR_LIGHT; c_21 = ((((_e242 * base) * ao_direct) * (1f - metallic_1)) + (_e249 * ao_direct)); } else { let _e253 = AO_LIGHT_AFFECT; if (_e253 > 0f) { let _e256 = c_21; c_21 = (_e256 * ao_direct); } } if true { let _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } let _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { let _e273 = hedra_transparent(); local_33 = !(_e273); } else { local_33 = false; } let _e276 = local_33; if _e276 { let _e282 = textureLoad(t_ao, vec2(floor(clip.xy)), 0i); let ssao = _e282.x; let _e284 = c_21; let _e286 = surf_1.occlusion; let _e291 = Lit.tone.z; let _e295 = Lit.tone.w; c_21 = (_e284 * mix(1f, min(ssao, _e286), (_e291 * _e295))); let _e300 = c_21; let _e301 = ambient_1; let _e303 = surf_1.occlusion; c_21 = (_e300 + (_e301 * min(_e303, ssao))); } else { let _e307 = c_21; let _e308 = ambient_1; let _e310 = surf_1.occlusion; c_21 = (_e307 + (_e308 * _e310)); } let _e313 = c_21; let _e315 = surf_1.emission; c_21 = (_e313 + _e315); let _e317 = c_21; let _e318 = hedra_fog(_e317, _e76); let _e319 = tonemap(_e318); return _e319; } fn hedra_output(c_22: vec3) -> vec4 { var rgb: vec3; rgb = c_22; if false { let _e3 = rgb; let _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } let _e7 = rgb; let _e9 = ALPHA; let _e10 = hedra_transparent(); let o_9 = vec4(_e7, select(1f, _e9, _e10)); let _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return vec4(max(o_9.xyz, vec3(0f)), clamp(o_9.w, 0f, 1f)); } let k_17 = clamp(o_9, vec4(0f), vec4(1f)); let _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { let _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } fn hedra_bindings() -> vec3 { let uv_7 = vec2(0.5f); let _e5 = textureSampleLevel(t_panorama, s_panorama, uv_7, 0f); let _e11 = textureSampleLevel(t_lightmap, s_lightmap, uv_7, 0i, 0f); let _e17 = textureSampleLevel(t_screen, s_radiance, uv_7, 0f); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } @vertex fn vs_custom(in: VsIn, @location(10) uv1_: vec2, @builtin(vertex_index) vid: u32) -> CustomOut { let _e5 = O.model; let _e8 = O.normal; let _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, vec4(1f), vid); vertex(); let _e24 = hedra_tangent_sign(in.tangent.w, false); let _e25 = hedra_vertex_space(); if _e25 { let _e26 = hedra_vertex_world(); let _e28 = NORMAL; let _e29 = hedra_vertex_dir(_e28); let _e31 = TANGENT; let _e32 = hedra_vertex_dir(_e31); let _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags); return _e34; } let _e37 = O.model; let _e39 = VERTEX; let world_14 = (_e37 * vec4(_e39, 1f)); let _e45 = O.normal; let _e47 = NORMAL; let n_14 = (_e45 * vec4(_e47, 0f)).xyz; let _e54 = O.model; let _e56 = TANGENT; let t_11 = (_e54 * vec4(_e56, 0f)).xyz; let _e62 = hedra_end_vertex(world_14, n_14, t_11, _e24, in.flags); return _e62; } @vertex fn vs_custom_instanced(in_1: VsIn, inst: InstIn, @location(10) uv1_1: vec2, extra: HedraInstExtra, @builtin(vertex_index) vid_1: u32) -> CustomOut { let bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); let by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); let bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); let det = dot(bx, cross(by, bz)); let flip_1 = (det < 0f); let cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * select(1f, -1f, flip_1)); let basis = mat4x4(vec4(bx, 0f), vec4(by, 0f), vec4(bz, 0f), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1f)); let _e55 = O.model; let _e59 = O.normal; let _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); let flags_4 = (in_1.flags | select(0u, F_INSTANCE_MIRRORED, flip_1)); let _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); let _e80 = hedra_vertex_space(); if _e80 { let _e81 = hedra_vertex_world(); let _e83 = NORMAL; let _e84 = hedra_vertex_dir(_e83); let _e86 = TANGENT; let _e87 = hedra_vertex_dir(_e86); let _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); return _e88; } let _e90 = VERTEX; let p1_ = vec4(_e90, 1f); let local_34 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); let _e102 = O.model; let world_15 = (_e102 * vec4(local_34, 1f)); let _e108 = O.normal; let _e110 = NORMAL; let n_15 = (_e108 * vec4((cofactor * _e110), 0f)).xyz; let _e118 = O.model; let _e121 = TANGENT; let t_12 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0f)).xyz; let _e127 = hedra_end_vertex(world_15, n_15, t_12, _e79, flags_4); return _e127; } @vertex fn vs_custom_skinned(in_2: VsIn, s: SkinIn, @location(10) uv1_2: vec2, @builtin(vertex_index) vid_2: u32) -> CustomOut { let _e4 = skin_rows(s); let p_12 = vec4(in_2.pos, 1f); let skinned = vec3(dot(_e4.r0_, p_12), dot(_e4.r1_, p_12), dot(_e4.r2_, p_12)); let bx_1 = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); let by_1 = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); let bz_1 = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); let det_1 = dot(bx_1, cross(by_1, bz_1)); let flip_2 = (det_1 < 0f); let cofactor_1 = mat3x3(cross(by_1, bz_1), cross(bz_1, bx_1), cross(bx_1, by_1)); let n0_ = normalize(((cofactor_1 * in_2.normal) * select(1f, -1f, flip_2))); let t0_1 = normalize((mat3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz)); let _e58 = O.model; let _e61 = O.normal; let _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1f), vid_2); vertex(); let flags_5 = (in_2.flags | select(0u, F_INSTANCE_MIRRORED, flip_2)); let _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2); let _e82 = hedra_vertex_space(); if _e82 { let _e83 = hedra_vertex_world(); let _e85 = NORMAL; let _e86 = hedra_vertex_dir(_e85); let _e88 = TANGENT; let _e89 = hedra_vertex_dir(_e88); let _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5); return _e90; } let _e93 = O.model; let _e95 = VERTEX; let world_16 = (_e93 * vec4(_e95, 1f)); let _e101 = O.normal; let _e103 = NORMAL; let n_16 = (_e101 * vec4(_e103, 0f)).xyz; let _e110 = O.model; let _e112 = TANGENT; let t_13 = (_e110 * vec4(_e112, 0f)).xyz; let _e117 = hedra_end_vertex(world_16, n_16, t_13, _e81, flags_5); return _e117; } @fragment fn fs_custom(in_3: CustomOut, @builtin(front_facing) facing: bool) -> @location(0) vec4 { var c: vec3; hedra_fragment(in_3, facing); let _e3 = hedra_culled(in_3.flags); if _e3 { discard; } let _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if (_e7 <= 0f) { discard; } if HEDRA_UNSHADED { let _e13 = ALBEDO; let _e15 = hedra_world; let _e16 = hedra_view_dir(_e15); let _e17 = hedra_fog(_e13, _e16); let _e18 = tonemap(_e17); c = _e18; } else { let _e20 = hedra_lit(in_3.clip); c = _e20; } let _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { let _e27 = c; let _e28 = hedra_bindings(); c = (_e27 + _e28); } let _e33 = G.params.x; if (_e33 == SHADE_LIT) { let _e36 = c; let _e37 = item_fade(_e36); let _e38 = emerge_tint(_e37, _e7); c = _e38; } let _e39 = c; let _e40 = hedra_output(_e39); return _e40; } @fragment fn fs_custom_depth(in_4: CustomOut, @builtin(front_facing) facing_1: bool) { var local: bool; var local_1: bool; hedra_fragment(in_4, facing_1); if !(((in_4.flags & F_HIDDEN) != 0u)) { if HEDRA_ALPHA_SCISSOR { let _e14 = ALPHA; let _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } let _e19 = local_1; local = _e19; } else { local = true; } let _e21 = local; if _e21 { discard; } let _e25 = emerge_reveal(in_4.world, vec2(-1f)); if (_e25 <= 0f) { discard; } else { return; } } @fragment fn fs_custom_id(in_5: CustomOut, @builtin(front_facing) facing_2: bool) -> IdOut { var local_2: bool; var out: IdOut; hedra_fragment(in_5, facing_2); let _e3 = hedra_culled(in_5.flags); if !(_e3) { let _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0f); } else { local_2 = true; } let _e14 = local_2; if _e14 { discard; } let id = O.params.z; let _e24 = O.params.x; let _e33 = O.params.y; let bits = (select(0u, 1u, (_e24 == 1u)) | select(0u, 2u, (_e33 == 1u))); out.id = (vec4(f32((id & 255u)), f32(((id >> 8u) & 255u)), f32(((id >> 16u) & 255u)), f32(bits)) / vec4(255f)); let _e58 = out; return _e58; } @fragment fn fs_custom_normal_depth(in_6: CustomOut, @builtin(front_facing) facing_3: bool) -> HedraNormalDepthOut { var local_3: bool; var out_1: HedraNormalDepthOut; hedra_fragment(in_6, facing_3); let _e3 = hedra_culled(in_6.flags); if !(_e3) { let _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0f); } else { local_3 = true; } let _e14 = local_3; if _e14 { discard; } let _e17 = G.view; let _e18 = hedra_mat3_(_e17); let _e20 = hedra_n; let n_view = normalize((_e18 * _e20)); let _e24 = METALLIC; let metallic_2 = clamp(_e24, 0f, 1f); let _e29 = SPECULAR; let _e33 = SPECULAR; let _e37 = ALBEDO; let f0_5 = mix(vec3(((0.16f * _e29) * _e33)), _e37, metallic_2); let _e43 = G.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1f)).z)); let _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_5, vec3(0f), vec3(1f)), clamp(_e58, 0.045f, 1f)); let _e63 = out_1; return _e63; }  @Ð Ð/ ,@ �˜J£&ѰA¬ËÎ-”ÒÑ'‘+ëjl€_7hh'· vs_custommain9ƒ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 zenith; float hedra_pad0_; vec3 horizon; float hedra_pad1_; vec3 below; float bands; float curve; float hedra_pad2_; float hedra_pad3_; float hedra_pad4_; vec3 sun_direction; float hedra_pad5_; vec3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6_; vec2 horizon_band; float hedra_pad7_; float hedra_pad8_; vec3 horizon_tint; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = true; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 1u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 dir_7 = vec3(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_3 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_3), dot(vec3(-0.10208, 1.10813, -0.00605), t_3), dot(vec3(-0.00327, -0.07276, 1.07602), t_3)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_4 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_4)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec3 _e3 = dir_7; o_4.hedra_v0_ = vec4(_e3, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { dir_7 = i_10.hedra_v0_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void vertex() { vec3 _e2 = VERTEX; vec3 _e4 = NODE_POSITION_WORLD; dir_7 = (_e2 - _e4); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_5 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_5, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_22 = false; bool local_23 = false; if (HEDRA_ALPHA) { local_22 = true; } else { local_22 = false; } bool _e5 = local_22; if (!(_e5)) { local_23 = false; } else { local_23 = true; } bool _e11 = local_23; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_24 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_24 = true; } else { local_24 = false; } bool _e31 = local_24; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t_1, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t_1), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_25 = false; if (true) { local_25 = HEDRA_WORLD_VERTEX_COORDS; } else { local_25 = true; } bool _e5 = local_25; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_28 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_28 = (nl_3 > 0.0); } else { local_28 = false; } bool _e60 = local_28; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); vec2 uv1_ = _p2vs_location10; uint vid = uint(gl_VertexID); mat4x4 _e5 = _group_1_binding_0_vs.model; mat4x4 _e8 = _group_1_binding_0_vs.normal; mat3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(in_.pos, in_.normal, in_.tangent, in_.uv, uv1_, vec4(1.0), vid); vertex(); float _e24 = hedra_tangent_sign(in_.tangent.w, false); bool _e25 = hedra_vertex_space(); if (_e25) { vec4 _e26 = hedra_vertex_world(); vec3 _e28 = NORMAL; vec3 _e29 = hedra_vertex_dir(_e28); vec3 _e31 = TANGENT; vec3 _e32 = hedra_vertex_dir(_e31); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in_.flags); gl_Position = _e34.clip; _vs2fs_location0 = _e34.world; _vs2fs_location1 = _e34.normal; _vs2fs_location2 = _e34.uv; _vs2fs_location3 = _e34.flags; _vs2fs_location4 = _e34.tangent; _vs2fs_location5 = _e34.color; _vs2fs_location6 = _e34.uv2_; _vs2fs_location7 = _e34.instance_id; _vs2fs_location8 = _e34.hedra_v0_; _vs2fs_location9 = _e34.hedra_v1_; _vs2fs_location10 = _e34.hedra_v2_; _vs2fs_location11 = _e34.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e37 = _group_1_binding_0_vs.model; vec3 _e39 = VERTEX; vec4 world_13 = (_e37 * vec4(_e39, 1.0)); mat4x4 _e45 = _group_1_binding_0_vs.normal; vec3 _e47 = NORMAL; vec3 n_11 = (_e45 * vec4(_e47, 0.0)).xyz; mat4x4 _e54 = _group_1_binding_0_vs.model; vec3 _e56 = TANGENT; vec3 t_6 = (_e54 * vec4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_13, n_11, t_6, _e24, in_.flags); gl_Position = _e62.clip; _vs2fs_location0 = _e62.world; _vs2fs_location1 = _e62.normal; _vs2fs_location2 = _e62.uv; _vs2fs_location3 = _e62.flags; _vs2fs_location4 = _e62.tangent; _vs2fs_location5 = _e62.color; _vs2fs_location6 = _e62.uv2_; _vs2fs_location7 = _e62.instance_id; _vs2fs_location8 = _e62.hedra_v0_; _vs2fs_location9 = _e62.hedra_v1_; _vs2fs_location10 = _e62.hedra_v2_; _vs2fs_location11 = _e62.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_instancedmainˆ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 zenith; float hedra_pad0_; vec3 horizon; float hedra_pad1_; vec3 below; float bands; float curve; float hedra_pad2_; float hedra_pad3_; float hedra_pad4_; vec3 sun_direction; float hedra_pad5_; vec3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6_; vec2 horizon_band; float hedra_pad7_; float hedra_pad8_; vec3 horizon_tint; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = true; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 1u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 dir_7 = vec3(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec2 _p2vs_location10; layout(location = 14) in vec4 _p2vs_location14; layout(location = 15) in float _p2vs_location15; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_3 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_3), dot(vec3(-0.10208, 1.10813, -0.00605), t_3), dot(vec3(-0.00327, -0.07276, 1.07602), t_3)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_4 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_4)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec3 _e3 = dir_7; o_4.hedra_v0_ = vec4(_e3, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { dir_7 = i_10.hedra_v0_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void vertex() { vec3 _e2 = VERTEX; vec3 _e4 = NODE_POSITION_WORLD; dir_7 = (_e2 - _e4); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_5 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_5, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_22 = false; bool local_23 = false; if (HEDRA_ALPHA) { local_22 = true; } else { local_22 = false; } bool _e5 = local_22; if (!(_e5)) { local_23 = false; } else { local_23 = true; } bool _e11 = local_23; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_24 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_24 = true; } else { local_24 = false; } bool _e31 = local_24; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t_1, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t_1), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_25 = false; if (true) { local_25 = HEDRA_WORLD_VERTEX_COORDS; } else { local_25 = true; } bool _e5 = local_25; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_28 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_28 = (nl_3 > 0.0); } else { local_28 = false; } bool _e60 = local_28; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_1 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); InstIn inst = InstIn(_p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9); vec2 uv1_1 = _p2vs_location10; HedraInstExtra extra = HedraInstExtra(_p2vs_location14, _p2vs_location15); uint vid_1 = uint(gl_VertexID); vec3 bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); vec3 by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); vec3 bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * (flip_1 ? -1.0 : 1.0)); mat4x4 basis = mat4x4(vec4(bx, 0.0), vec4(by, 0.0), vec4(bz, 0.0), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); mat4x4 _e55 = _group_1_binding_0_vs.model; mat4x4 _e59 = _group_1_binding_0_vs.normal; mat3x3 _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = int(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); uint flags_4 = (in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); bool _e80 = hedra_vertex_space(); if (_e80) { vec4 _e81 = hedra_vertex_world(); vec3 _e83 = NORMAL; vec3 _e84 = hedra_vertex_dir(_e83); vec3 _e86 = TANGENT; vec3 _e87 = hedra_vertex_dir(_e86); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); gl_Position = _e88.clip; _vs2fs_location0 = _e88.world; _vs2fs_location1 = _e88.normal; _vs2fs_location2 = _e88.uv; _vs2fs_location3 = _e88.flags; _vs2fs_location4 = _e88.tangent; _vs2fs_location5 = _e88.color; _vs2fs_location6 = _e88.uv2_; _vs2fs_location7 = _e88.instance_id; _vs2fs_location8 = _e88.hedra_v0_; _vs2fs_location9 = _e88.hedra_v1_; _vs2fs_location10 = _e88.hedra_v2_; _vs2fs_location11 = _e88.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vec3 _e90 = VERTEX; vec4 p1_ = vec4(_e90, 1.0); vec3 local_34 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); mat4x4 _e102 = _group_1_binding_0_vs.model; vec4 world_13 = (_e102 * vec4(local_34, 1.0)); mat4x4 _e108 = _group_1_binding_0_vs.normal; vec3 _e110 = NORMAL; vec3 n_11 = (_e108 * vec4((cofactor * _e110), 0.0)).xyz; mat4x4 _e118 = _group_1_binding_0_vs.model; vec3 _e121 = TANGENT; vec3 t_6 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_13, n_11, t_6, _e79, flags_4); gl_Position = _e127.clip; _vs2fs_location0 = _e127.world; _vs2fs_location1 = _e127.normal; _vs2fs_location2 = _e127.uv; _vs2fs_location3 = _e127.flags; _vs2fs_location4 = _e127.tangent; _vs2fs_location5 = _e127.color; _vs2fs_location6 = _e127.uv2_; _vs2fs_location7 = _e127.instance_id; _vs2fs_location8 = _e127.hedra_v0_; _vs2fs_location9 = _e127.hedra_v1_; _vs2fs_location10 = _e127.hedra_v2_; _vs2fs_location11 = _e127.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_skinnedmainÜŠ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 zenith; float hedra_pad0_; vec3 horizon; float hedra_pad1_; vec3 below; float bands; float curve; float hedra_pad2_; float hedra_pad3_; float hedra_pad4_; vec3 sun_direction; float hedra_pad5_; vec3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6_; vec2 horizon_band; float hedra_pad7_; float hedra_pad8_; vec3 horizon_tint; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = true; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 1u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(std140) uniform SkinU_block_2Vertex { SkinU _group_1_binding_1_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 dir_7 = vec3(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 12) in uvec4 _p2vs_location12; layout(location = 13) in vec4 _p2vs_location13; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_3 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_3), dot(vec3(-0.10208, 1.10813, -0.00605), t_3), dot(vec3(-0.00327, -0.07276, 1.07602), t_3)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_4 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_4)) - p_6.offset.xyz); } vec4 skin_row(uint k_10, uint r_3) { vec4 _e10 = _group_1_binding_1_vs.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } SkinRows skin_rows(SkinIn s_1) { SkinRows m_1 = SkinRows(vec4(0.0), vec4(0.0), vec4(0.0)); uvec4 j = s_1.joints; vec4 w_3 = s_1.weights; vec4 _e8 = skin_row(j.x, 0u); vec4 _e13 = skin_row(j.y, 0u); vec4 _e19 = skin_row(j.z, 0u); vec4 _e25 = skin_row(j.w, 0u); m_1.r0_ = ((((w_3.x * _e8) + (w_3.y * _e13)) + (w_3.z * _e19)) + (w_3.w * _e25)); vec4 _e32 = skin_row(j.x, 1u); vec4 _e37 = skin_row(j.y, 1u); vec4 _e43 = skin_row(j.z, 1u); vec4 _e49 = skin_row(j.w, 1u); m_1.r1_ = ((((w_3.x * _e32) + (w_3.y * _e37)) + (w_3.z * _e43)) + (w_3.w * _e49)); vec4 _e56 = skin_row(j.x, 2u); vec4 _e61 = skin_row(j.y, 2u); vec4 _e67 = skin_row(j.z, 2u); vec4 _e73 = skin_row(j.w, 2u); m_1.r2_ = ((((w_3.x * _e56) + (w_3.y * _e61)) + (w_3.z * _e67)) + (w_3.w * _e73)); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings(inout CustomOut o_4) { vec3 _e3 = dir_7; o_4.hedra_v0_ = vec4(_e3, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { dir_7 = i_10.hedra_v0_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void vertex() { vec3 _e2 = VERTEX; vec3 _e4 = NODE_POSITION_WORLD; dir_7 = (_e2 - _e4); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_5 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_5, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_22 = false; bool local_23 = false; if (HEDRA_ALPHA) { local_22 = true; } else { local_22 = false; } bool _e5 = local_22; if (!(_e5)) { local_23 = false; } else { local_23 = true; } bool _e11 = local_23; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_24 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_24 = true; } else { local_24 = false; } bool _e31 = local_24; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t_1, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t_1), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_25 = false; if (true) { local_25 = HEDRA_WORLD_VERTEX_COORDS; } else { local_25 = true; } bool _e5 = local_25; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_28 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_28 = (nl_3 > 0.0); } else { local_28 = false; } bool _e60 = local_28; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_2 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); SkinIn s = SkinIn(_p2vs_location12, _p2vs_location13); vec2 uv1_2 = _p2vs_location10; uint vid_2 = uint(gl_VertexID); SkinRows _e4 = skin_rows(s); vec4 p_8 = vec4(in_2.pos, 1.0); vec3 skinned = vec3(dot(_e4.r0_, p_8), dot(_e4.r1_, p_8), dot(_e4.r2_, p_8)); vec3 bx = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); vec3 by = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); vec3 bz = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n0_ = normalize(((cofactor * in_2.normal) * (flip_1 ? -1.0 : 1.0))); vec3 t0_1 = normalize((mat3x3(bx, by, bz) * in_2.tangent.xyz)); mat4x4 _e58 = _group_1_binding_0_vs.model; mat4x4 _e61 = _group_1_binding_0_vs.normal; mat3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1.0), vid_2); vertex(); uint flags_4 = (in_2.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_1); bool _e82 = hedra_vertex_space(); if (_e82) { vec4 _e83 = hedra_vertex_world(); vec3 _e85 = NORMAL; vec3 _e86 = hedra_vertex_dir(_e85); vec3 _e88 = TANGENT; vec3 _e89 = hedra_vertex_dir(_e88); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_4); gl_Position = _e90.clip; _vs2fs_location0 = _e90.world; _vs2fs_location1 = _e90.normal; _vs2fs_location2 = _e90.uv; _vs2fs_location3 = _e90.flags; _vs2fs_location4 = _e90.tangent; _vs2fs_location5 = _e90.color; _vs2fs_location6 = _e90.uv2_; _vs2fs_location7 = _e90.instance_id; _vs2fs_location8 = _e90.hedra_v0_; _vs2fs_location9 = _e90.hedra_v1_; _vs2fs_location10 = _e90.hedra_v2_; _vs2fs_location11 = _e90.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e93 = _group_1_binding_0_vs.model; vec3 _e95 = VERTEX; vec4 world_13 = (_e93 * vec4(_e95, 1.0)); mat4x4 _e101 = _group_1_binding_0_vs.normal; vec3 _e103 = NORMAL; vec3 n_11 = (_e101 * vec4(_e103, 0.0)).xyz; mat4x4 _e110 = _group_1_binding_0_vs.model; vec3 _e112 = TANGENT; vec3 t_6 = (_e110 * vec4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_13, n_11, t_6, _e81, flags_4); gl_Position = _e117.clip; _vs2fs_location0 = _e117.world; _vs2fs_location1 = _e117.normal; _vs2fs_location2 = _e117.uv; _vs2fs_location3 = _e117.flags; _vs2fs_location4 = _e117.tangent; _vs2fs_location5 = _e117.color; _vs2fs_location6 = _e117.uv2_; _vs2fs_location7 = _e117.instance_id; _vs2fs_location8 = _e117.hedra_v0_; _vs2fs_location9 = _e117.hedra_v1_; _vs2fs_location10 = _e117.hedra_v2_; _vs2fs_location11 = _e117.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_custommain†�#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 zenith; float hedra_pad0_; vec3 horizon; float hedra_pad1_; vec3 below; float bands; float curve; float hedra_pad2_; float hedra_pad3_; float hedra_pad4_; vec3 sun_direction; float hedra_pad5_; vec3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6_; vec2 horizon_band; float hedra_pad7_; float hedra_pad8_; vec3 horizon_tint; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = true; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 1u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform LitU_block_2Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform ShadowU_block_3Fragment { ShadowU _group_0_binding_2_fs; }; uniform highp sampler2DShadow _group_0_binding_3_fs; layout(std140) uniform SkyU_block_4Fragment { SkyU _group_0_binding_5_fs; }; uniform highp samplerCube _group_3_binding_0_fs; uniform highp sampler2D _group_3_binding_1_fs; uniform highp sampler2D _group_0_binding_6_fs; uniform highp sampler2DArray _group_3_binding_4_fs; layout(std140) uniform ProbeU_block_5Fragment { ProbeU _group_0_binding_7_fs; }; uniform highp sampler2D _group_3_binding_6_fs; layout(std140) uniform DecalU_block_6Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; layout(std140) uniform FogU_block_7Fragment { FogU _group_1_binding_5_fs; }; uniform highp sampler2D _group_1_binding_6_fs; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); float SPECULAR_AMOUNT = 0.0; vec3 LIGHT = vec3(0.0); vec3 LIGHT_COLOR = vec3(0.0); bool LIGHT_IS_DIRECTIONAL = false; float ATTENUATION = 0.0; vec3 DIFFUSE_LIGHT = vec3(0.0); vec3 SPECULAR_LIGHT = vec3(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_8Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec3 dir_7 = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word_1 = ((k_1 < 4u) ? _e8 : _e4); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_2 = ((k_2 < 4u) ? _e8 : _e4); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local_6 = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_2 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_2.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local_6 = all(lessThanEqual(uvw, vec3(1.0))); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y)); if ((e_2.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1.0, ((dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1); uint live_1 = e_2.flags.x; if ((e_2.layers.x > 0u)) { vec4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_2.modulate); float _e90 = fade; float alpha = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if ((e_2.layers.y > 0u)) { vec4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if ((e_2.layers.z > 0u)) { vec4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if ((e_2.layers.w > 0u)) { vec4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_3 <= 1.5707964)) { float c_23 = (1.0 - (a_3 / 1.5707964)); float k_13 = clamp((1.0 - pow(max((1.0 - c_23), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } float c_24 = ((a_3 - 1.5707964) / 1.5707964); float k_14 = clamp((1.0 - pow(max((1.0 - c_24), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_3 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_3), dot(vec3(-0.10208, 1.10813, -0.00605), t_3), dot(vec3(-0.00327, -0.07276, 1.07602), t_3)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_25 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_25) + c_25) / ((c_25 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_25); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_25, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_25); return _e36; } return c_25; } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_3 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_3 * 1.8) - _e60) / EMERGE_EDGE); } vec3 emerge_tint(vec3 c_6, float r) { bool local_7 = false; uint _e6 = _group_1_binding_0_fs.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = (r >= 1.0); } else { local_7 = true; } bool _e17 = local_7; if ((SPEC_EMERGE ? _e17 : true)) { return c_6; } uint _e23 = _group_1_binding_0_fs.extra.w; vec3 _e26 = srgb_to_linear((vec4(_e23 & 0xFFu, _e23 >> 8 & 0xFFu, _e23 >> 16 & 0xFFu, _e23 >> 24) / 255.0).xyz); vec3 _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0.0, 1.0, r)); } vec3 item_fade(vec3 c_7) { uint _e5 = _group_1_binding_0_fs.extra.x; if ((SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true)) { return c_7; } vec4 f_1 = _group_1_binding_0_fs.normal[3]; vec3 _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec3 procedural_sky(vec3 d_1) { vec3 sky_1 = vec3(0.0); uint i = 0u; float v_7 = acos(clamp(d_1.y, -1.0, 1.0)); vec4 _e8 = _group_0_binding_5_fs.sky_horizon; vec4 _e12 = _group_0_binding_5_fs.sky_top; float _e21 = _group_0_binding_5_fs.sky_top.w; float _e22 = sky_curve((1.0 - (v_7 / 1.5707964)), _e21); float _e27 = _group_0_binding_5_fs.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); uint _e33 = _group_0_binding_5_fs.flags.z; uint suns = min(_e33, SKY_SUNS); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e79 = i; i = (_e79 + 1u); } loop_init_1 = false; uint _e38 = i; if ((_e38 < suns)) { } else { break; } { uint _e42 = i; SunU sun = _group_0_binding_5_fs.suns[_e42]; float size = sun.direction.w; float a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1.0, 1.0)); if ((a_5 < size)) { sky_1 = sun.color.xyz; } else { float _e60 = _group_0_binding_5_fs.sun.x; if ((a_5 < _e60)) { float _e66 = _group_0_binding_5_fs.sun.x; float c2_ = ((a_5 - size) / (_e66 - size)); vec3 _e71 = sky_1; float _e75 = _group_0_binding_5_fs.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } } vec4 _e83 = _group_0_binding_5_fs.ground_horizon; vec4 _e87 = _group_0_binding_5_fs.ground_bottom; float _e96 = _group_0_binding_5_fs.ground_bottom.w; float _e97 = sky_curve(((v_7 - 1.5707964) / 1.5707964), _e96); float _e102 = _group_0_binding_5_fs.ground_horizon.w; vec3 ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); vec3 _e104 = sky_1; float _e112 = _group_0_binding_5_fs.sun.z; return (((d_1.y >= 0.0) ? _e104 : ground) * _e112); } vec3 sh_irradiance(vec3 n_2) { vec3 c_9 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_9 = (_e4.xyz * 0.282095); vec3 _e9 = c_9; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603 * n_2.y))); vec3 _e20 = c_9; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603 * n_2.z))); vec3 _e31 = c_9; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603 * n_2.x))); vec3 _e42 = c_9; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y))); vec3 _e55 = c_9; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z))); vec3 _e68 = c_9; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0)))); vec3 _e85 = c_9; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z))); vec3 _e98 = c_9; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); vec3 _e115 = c_9; return max(_e115, vec3(0.0)); } vec3 radiance_1(vec3 d_3, float roughness) { uint _e5 = _group_0_binding_5_fs.flags.y; float top_1 = float((max(_e5, 1u) - 1u)); vec4 _e14 = textureLod(_group_3_binding_0_fs, vec3(d_3), (roughness * top_1)); return _e14.xyz; } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_10 = vec3(0.0); uint k_4 = 0u; c_10 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_2 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_10; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_10; return _e53; } vec3 sky_fog(vec3 c_11, vec3 dir_2) { vec4 _e4 = _group_0_binding_5_fs.fog_color; float _e9 = _group_0_binding_5_fs.fog_depth.w; vec3 _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); float _e15 = _group_0_binding_5_fs.fog.y; return mix(c_11, _e11, _e15); } vec3 surface_fog(vec3 c_12, vec3 world_3, vec3 dir_3) { float dist = 0.0; float amount = 0.0; vec3 fc_1 = vec3(0.0); bool local_8 = false; mat4x4 _e5 = _group_0_binding_0_fs.view; float depth = -((_e5 * vec4(world_3, 1.0)).z); vec4 _e13 = _group_0_binding_0_fs.camera_pos; dist = distance(world_3, _e13.xyz); float _e20 = _group_0_binding_5_fs.fog_origin.w; if ((_e20 > 0.5)) { float _e26 = _group_0_binding_5_fs.fog_origin.x; dist = max((depth - _e26), 0.0); } uint _e34 = _group_0_binding_5_fs.flags.x; if (((_e34 & SKY_FOG_DEPTH) != 0u)) { float _e42 = _group_0_binding_5_fs.fog_depth.x; float _e46 = _group_0_binding_5_fs.fog_depth.y; float _e47 = dist; float z = smoothstep(_e42, _e46, _e47); float _e54 = _group_0_binding_5_fs.fog_depth.z; float _e63 = _group_0_binding_5_fs.fog.x; amount = (((z > 0.0) ? pow(max(z, 1e-6), _e54) : 0.0) * _e63); } else { float _e65 = dist; float _e70 = _group_0_binding_5_fs.fog.x; amount = (1.0 - exp(min(0.0, (-(_e65) * _e70)))); } float _e80 = _group_0_binding_5_fs.fog.w; if ((abs(_e80) >= 0.0001)) { vec4 _e86 = _group_0_binding_1_fs.up; float y = dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = _group_0_binding_5_fs.fog.z; float _e98 = _group_0_binding_5_fs.fog.w; amount = max(_e89, (1.0 - exp(min(0.0, ((y - _e93) * _e98))))); } float _e106 = amount; amount = clamp(_e106, 0.0, 1.0); vec4 _e112 = _group_0_binding_5_fs.fog_color; fc_1 = _e112.xyz; uint _e119 = _group_0_binding_5_fs.flags.x; if (((_e119 & SKY_IBL) != 0u)) { float _e129 = _group_0_binding_5_fs.fog_depth.w; local_8 = (_e129 > 0.0); } else { local_8 = false; } bool _e133 = local_8; if ((SPEC_AMBIENT_SKY ? _e133 : false)) { float _e139 = _group_0_binding_5_fs.fog_origin.y; float _e144 = _group_0_binding_5_fs.fog_origin.z; float _e148 = _group_0_binding_5_fs.fog_origin.y; float t_4 = clamp(((depth - _e139) / max((_e144 - _e148), 1e-6)), 0.0, 1.0); uint _e159 = _group_0_binding_5_fs.flags.y; float top_2 = float((max(_e159, 2u) - 1u)); float rough = mix((1.0 / top_2), 1.0, (1.0 - t_4)); vec3 _e171 = fc_1; vec3 _e172 = sky_dir(dir_3); vec3 _e173 = radiance_1(_e172, rough); float _e177 = _group_0_binding_5_fs.sun.w; float _e182 = _group_0_binding_5_fs.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } vec3 _e184 = fc_1; vec3 _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; vec3 _e186 = fc_1; float _e187 = amount; return mix(c_12, _e186, _e187); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_4, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h_1 = (_e26.xyz * 0.5); vec3 dd = mix(d_4, vec3(1e-12), lessThan(abs(d_4), vec3(1e-12))); vec3 sa = ((-(h_1) - o) / dd); vec3 sb = ((h_1 - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1.0); } else { float rad = min(h_1.x, h_1.z); float k_15 = ((shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0); float w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_3, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_4 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1.0)); if ((e_4.material.z > 0.0)) { uint shape_1 = uint(e_4.albedo.w); vec3 h_2 = (e_4.size.xyz * 0.5); float rad_1 = min(h_2.x, h_2.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_2 * h_2))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_11 = normalize(vec2((1.0 / max(0.001, (rad_1 * 0.5))), (1.0 / max(0.001, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_4.size.w), 0.0, 1.0), e_4.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_4 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_4.y; if (((hf * b_1) == 0.0)) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_2 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_2 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_2); float x_3 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_3 < 0.01) ? (1.0 - (x_3 * (0.5 - (x_3 * (0.16666667 - (x_3 / 24.0)))))) : ((1.0 - exp(-(x_3))) / x_3)); float top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 fog_light(uint n_3, vec3 p_4, vec3 dir_4) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l_1 = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_3].lights; bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_3 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l_1; float rim = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim, li.spot.y))); } } vec3 _e108 = l_1; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_4, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_6, vec2 ch) { float split = 0.0; bool local_9 = false; bool local_10 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = false; bool local_12 = false; FogEntryU e_5 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_5.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_5.to_local * vec4(d_6, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_6, _e28.xyz); bool edge = (e_5.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_5.material.y > 0.0)) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = (-(a_6) / b_3); } bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e160 = i_1; i_1 = (_e160 + 1u); } loop_init_4 = false; uint _e70 = i_1; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i_1; uint j = (_e75 & 3u); if (!((j == 0u))) { local_11 = (j == 3u); } else { local_11 = true; } bool _e88 = local_11; float x_4 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_12 = (j == 3u); } else { local_12 = true; } bool _e100 = local_12; float w_4 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_5 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_4) : x_4))); vec3 p_8 = (o_1 + (d_6 * t_5)); float _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_5))); uint _e137 = i_1; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_14, vec3 o_2, vec3 d_7, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_2 = 0u; bool local_13 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_3 = 0u; uint n_4 = 0u; float avail = 0.0; uint i_4 = 0u; uint i_5 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e72 = i_2; i_2 = (_e72 + 1u); } loop_init_5 = false; uint _e13 = i_2; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_2; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_13 = (byte == 0u); } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_16].to_local; vec2 _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_7, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_16; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e90 = i_3; i_3 = (_e90 + 1u); } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at[_e82]; uint _e85 = i_3; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } } bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e221 = n_4; n_4 = (_e221 + 1u); } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_4; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_4 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e153 = i_4; i_4 = (_e153 + 1u); } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_4; float _e113 = chords[_e110].y; uint _e114 = n_4; float _e117 = chords[_e114].y; uint _e119 = i_4; float _e122 = chords[_e119].x; uint _e123 = n_4; float _e126 = chords[_e123].x; uint _e131 = i_4; float _e134 = chords[_e131].y; uint _e135 = i_4; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_4; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_4; float _e158 = parts[_e155].w; float _e160 = avail; float f_2 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_5 = 0u; bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e218 = i_5; i_5 = (_e218 + 1u); } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_5; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_5; float _e180 = chords[_e177].y; uint _e181 = n_4; float _e184 = chords[_e181].y; uint _e186 = i_5; float _e189 = chords[_e186].x; uint _e190 = n_4; float _e193 = chords[_e190].x; uint _e198 = i_5; float _e201 = chords[_e198].y; uint _e202 = i_5; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_5; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_2))); } } } } } } bool loop_init_10 = true; while(true) { if (!loop_init_10) { uint _e252 = i_6; i_6 = (_e252 + 1u); } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_6; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_6; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_6 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_14 * t_6) + (_e258 * ((1.0 - t_6) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_15, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_6 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_6)); vec3 _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_15); } vec3 sky_fog_volumes(vec3 c_16, vec3 near_point, vec3 dir_5) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back_1 = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (near_point - (back_1 * (_e26 * vec4(near_point, 1.0)).z)) : _e22.xyz); uint _e44 = _group_1_binding_5_fs.counts.y; vec3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); float _e49 = _group_1_binding_5_fs.params.z; return mix(c_16, _e45, _e49); } float shadow_factor(uint i_7, vec3 world_5, vec3 n_geo_1, vec3 l_2) { uint part = 0u; uint c_17 = 0u; bool local_14 = false; bool local_15 = false; bool local_16 = false; float vis = 0.0; int dy = -1; int dx = 0; uint kind = _group_0_binding_1_fs.lights[i_7].info.x; vec4 _e14 = _group_0_binding_1_fs.lights[i_7].position; vec3 light_pos = _e14.xyz; uint _e21 = _group_0_binding_1_fs.lights[i_7].info.w; uint slot = min(_e21, 15u); vec4 params = _group_0_binding_2_fs.lights[slot].params; uint first = _group_0_binding_2_fs.lights[slot].info.x; uint _e40 = _group_0_binding_2_fs.lights[slot].info.y; uint count = max(_e40, 1u); mat4x4 _e45 = _group_0_binding_0_fs.view; float view_depth = -((_e45 * vec4(world_5, 1.0)).z); if ((kind == LIGHT_DIRECTIONAL)) { float _e60 = _group_0_binding_2_fs.lights[slot].fade.y; if ((view_depth > _e60)) { return 1.0; } part = (count - 1u); bool loop_init_11 = true; while(true) { if (!loop_init_11) { uint _e79 = c_17; c_17 = (_e79 + 1u); } loop_init_11 = false; uint _e67 = c_17; if ((_e67 < count)) { } else { break; } { uint _e73 = c_17; float _e75 = _group_0_binding_2_fs.lights[slot].splits[_e73]; if ((view_depth <= _e75)) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; vec4 texel = _group_0_binding_2_fs.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; float t_7 = (texel.x + (texel.y * distance(world_5, light_pos))); vec3 p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1.0)) * t_7))) + (l_2 * (params.x * t_7))); if ((kind == LIGHT_OMNI)) { vec3 d_13 = (p_9 - light_pos); vec3 a_7 = abs(d_13); if ((a_7.x >= a_7.y)) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = ((d_13.x >= 0.0) ? 0u : 1u); } else { if ((a_7.y >= a_7.z)) { part = ((d_13.y >= 0.0) ? 2u : 3u); } else { part = ((d_13.z >= 0.0) ? 4u : 5u); } } } uint _e145 = part; uint tile = min((first + min(_e145, (count - 1u))), 15u); mat4x4 _e156 = _group_0_binding_2_fs.tiles[tile].view_proj; vec4 clip_1 = (_e156 * vec4(p_9, 1.0)); if ((clip_1.w <= 0.0)) { return 1.0; } vec3 ndc = (clip_1.xyz / vec3(clip_1.w)); if (!((abs(ndc.x) > 1.0))) { local_15 = (abs(ndc.y) > 1.0); } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = (ndc.z > 1.0); } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } vec4 rect = _group_0_binding_2_fs.tiles[tile].rect; vec2 uv_4 = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); vec2 auv = (rect.xy + (uv_4 * rect.zw)); float texel_uv = _group_0_binding_2_fs.atlas.x; vec2 lo_5 = (rect.xy + vec2((0.5 * texel_uv))); vec2 hi_4 = ((rect.xy + rect.zw) - vec2((0.5 * texel_uv))); float r_7 = params.z; if ((r_7 <= 0.0)) { float _e235 = textureLod(_group_0_binding_3_fs, vec3(clamp(auv, lo_5, hi_4), ndc.z), 0.0); vis = _e235; } else { float spread = (r_7 * texel_uv); bool loop_init_12 = true; while(true) { if (!loop_init_12) { int _e265 = dy; dy = (_e265 + 1); } loop_init_12 = false; int _e239 = dy; if ((_e239 <= 1)) { } else { break; } { dx = -1; bool loop_init_13 = true; while(true) { if (!loop_init_13) { int _e262 = dx; dx = (_e262 + 1); } loop_init_13 = false; int _e244 = dx; if ((_e244 <= 1)) { } else { break; } { int _e247 = dx; int _e249 = dy; vec2 tap = clamp((auv + (vec2(float(_e247), float(_e249)) * spread)), lo_5, hi_4); float _e255 = vis; float _e259 = textureLod(_group_0_binding_3_fs, vec3(tap, ndc.z), 0.0); vis = (_e255 + _e259); } } } } float _e267 = vis; vis = (_e267 / 9.0); } if ((kind == LIGHT_DIRECTIONAL)) { vec4 fade_1 = _group_0_binding_2_fs.lights[slot].fade; float _e277 = vis; vis = mix(_e277, 1.0, smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return mix(1.0, _e283, params.w); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_8 = abs(d_8); if ((a_8.x >= a_8.y)) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_8.y >= a_8.z)) { ma = a_8.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 probe_texel(uint row, vec3 fuv, uint level_1) { uint _e6 = _group_0_binding_7_fs.counts.z; float n_12 = float(max((_e6 >> level_1), 1u)); float lo_6 = (0.5 / n_12); float u_2 = clamp(fuv.y, lo_6, (1.0 - lo_6)); float v_8 = clamp(fuv.z, lo_6, (1.0 - lo_6)); vec2 uv_5 = vec2(((fuv.x + u_2) / 6.0), ((float(row) + v_8) / 8.0)); vec4 _e33 = textureLod(_group_3_binding_6_fs, vec2(uv_5), float(level_1)); return _e33.xyz; } vec3 probe_sample(uint row_1, vec3 d_9, float lod) { bool local_18 = false; uint _e6 = _group_0_binding_7_fs.counts.y; uint levels = max(_e6, 1u); float l_5 = clamp(lod, 0.0, float((levels - 1u))); uint m0_ = uint(l_5); float t_8 = (l_5 - float(m0_)); vec3 _e17 = probe_face_uv(d_9); vec3 _e18 = probe_texel(row_1, _e17, m0_); if (!((t_8 <= 0.0))) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } vec3 _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1.0 - t_8)) + (_e34 * t_8)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_6 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_6 = p_5.extents.xyz; float d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if ((d_14 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_14 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_15 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_15; } vec3 o_8 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_9 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_8 + (d_15 * t_9)) - p_6.offset.xyz); } vec4 probe_reflection(vec3 world_8, vec3 r_2, float roughness_2, uint probes) { vec3 acc = vec3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = _group_0_binding_7_fs.counts.x; uint count_1 = min(_e12, MAX_PROBES); uint _e18 = _group_0_binding_7_fs.counts.y; float lod_1 = (roughness_2 * float((max(_e18, 1u) - 1u))); bool loop_init_14 = true; while(true) { if (!loop_init_14) { uint _e57 = i_8; i_8 = (_e57 + 1u); } loop_init_14 = false; uint _e27 = i_8; if ((_e27 < count_1)) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = _group_0_binding_7_fs.probes[_e31]; if ((((probes >> p_10.info.w) & 1u) == 0u)) { continue; } float _e41 = probe_weight(p_10, world_8); if ((_e41 <= 0.0)) { continue; } vec3 _e44 = acc; vec3 _e47 = probe_lookup(p_10, world_8, r_2); vec3 _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); float _e54 = w_sum; w_sum = (_e54 + _e41); } } float _e59 = w_sum; if ((_e59 > 1.0)) { vec3 _e62 = acc; float _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1.0; } vec3 _e67 = acc; float _e68 = w_sum; return vec4(_e67, _e68); } vec4 probe_ambient(vec3 world_9, vec3 n_7, uint probes_1) { vec3 acc_1 = vec3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = false; vec3 c_18 = vec3(0.0); uint _e11 = _group_0_binding_7_fs.counts.x; uint count_2 = min(_e11, MAX_PROBES); uint _e17 = _group_0_binding_7_fs.counts.y; uint last = (max(_e17, 1u) - 1u); bool loop_init_15 = true; while(true) { if (!loop_init_15) { uint _e73 = i_9; i_9 = (_e73 + 1u); } loop_init_15 = false; uint _e24 = i_9; if ((_e24 < count_2)) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = _group_0_binding_7_fs.probes[_e28]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if ((_e47 <= 0.0)) { continue; } c_18 = p_11.ambient.xyz; if ((p_11.info.y == PROBE_AMBIENT_ENVIRONMENT)) { vec3 _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0.0)).xyz); vec3 _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } vec3 _e66 = acc_1; vec3 _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); float _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } } float _e75 = w_sum_1; if ((_e75 > 1.0)) { vec3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1.0; } vec3 _e83 = acc_1; float _e84 = w_sum_1; return vec4(_e83, _e84); } void hedra_store_varyings(inout CustomOut o_4) { vec3 _e3 = dir_7; o_4.hedra_v0_ = vec4(_e3, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { dir_7 = i_10.hedra_v0_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void fragment() { float t = 0.0; vec3 col = vec3(0.0); bool local_20 = false; bool local_21 = false; vec3 _e1 = dir_7; vec3 d_16 = normalize(_e1); float up = d_16.z; float _e9 = _group_2_binding_0_fs.curve; t = pow(clamp(up, 0.0, 1.0), (1.0 / _e9)); float _e16 = _group_2_binding_0_fs.bands; if ((_e16 >= 2.0)) { float _e19 = t; float _e22 = _group_2_binding_0_fs.bands; float _e27 = _group_2_binding_0_fs.bands; t = (floor((_e19 * _e22)) / _e27); } vec3 _e31 = _group_2_binding_0_fs.horizon; vec3 _e34 = _group_2_binding_0_fs.zenith; float _e35 = t; col = mix(_e31, _e34, _e35); if ((up < 0.0)) { vec3 _e42 = _group_2_binding_0_fs.horizon; vec3 _e45 = _group_2_binding_0_fs.below; col = mix(_e42, _e45, clamp((-(up) * 8.0), 0.0, 1.0)); } vec3 _e55 = _group_2_binding_0_fs.sun_direction; vec3 _e56 = scene_to_frame(_e55); vec3 sun_1 = normalize(_e56); float angle = degrees(acos(clamp(dot(d_16, sun_1), -1.0, 1.0))); float _e66 = _group_2_binding_0_fs.halo_strength; float _e69 = _group_2_binding_0_fs.halo_size; float halo = (_e66 * pow(clamp((1.0 - (angle / max(_e69, 0.001))), 0.0, 1.0), 2.0)); vec3 _e81 = col; vec3 _e84 = _group_2_binding_0_fs.sun_color; col = (_e81 + (_e84 * halo)); float _e89 = _group_2_binding_0_fs.sun_size; if ((angle < _e89)) { vec3 _e93 = _group_2_binding_0_fs.sun_color; col = (_e93 * 1.4); } float elevation = degrees(asin(clamp(up, -1.0, 1.0))); float _e104 = _group_2_binding_0_fs.horizon_band.x; float _e109 = _group_2_binding_0_fs.horizon_band.y; float _e113 = _group_2_binding_0_fs.horizon_band.x; float v_9 = ((elevation - _e104) / max((_e109 - _e113), 0.001)); float _e127 = _group_2_binding_0_fs.horizon_repeat; float u_3 = (((atan(d_16.y, d_16.x) / TAU) + 0.5) * _e127); vec4 strip = texture(_group_2_binding_1_fs, vec2(vec2(u_3, (1.0 - clamp(v_9, 0.0, 1.0))))); if ((v_9 >= 0.0)) { local_20 = (v_9 <= 1.0); } else { local_20 = false; } bool _e145 = local_20; if (_e145) { local_21 = (strip.w >= 0.5); } else { local_21 = false; } bool _e152 = local_21; if (_e152) { vec3 _e156 = _group_2_binding_0_fs.horizon_tint; col = (strip.xyz * _e156); } vec3 _e159 = col; ALBEDO = _e159; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_8 = transpose(_e1); vec3 t_10 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0.0), vec4(r_8[1], 0.0), vec4(r_8[2], 0.0), vec4(t_10, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_22 = false; bool local_23 = false; if (HEDRA_ALPHA) { local_22 = true; } else { local_22 = false; } bool _e5 = local_22; if (!(_e5)) { local_23 = false; } else { local_23 = true; } bool _e11 = local_23; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_25 = false; if (true) { local_25 = HEDRA_WORLD_VERTEX_COORDS; } else { local_25 = true; } bool _e5 = local_25; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_2 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_2 = in_7.tangent.xyz; vec3 _e41 = t_2; vec3 _e42 = t_2; t_2 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_2; vec3 b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_2; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back_2 = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back_2 * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back_2 * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_26 = false; bool local_27 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (true) { bool _e10 = hedra_front; local_26 = _e10; } else { local_26 = false; } bool _e12 = local_26; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_27 = (_e18 < _e20); } else { local_27 = false; } bool _e23 = local_27; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_5 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_28 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_3 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_28 = (nl_3 > 0.0); } else { local_28 = false; } bool _e60 = local_28; if (_e60) { float nh_2 = max(dot(n_9, h_3), 0.0); float vh_2 = max(dot(v_4, h_3), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } vec4 hedra_light_dir(uint i_11, vec3 world_12) { float atten_1 = 0.0; LightU li_1 = _group_0_binding_1_fs.lights[i_11]; if ((li_1.info.x == LIGHT_DIRECTIONAL)) { return vec4(-(li_1.direction.xyz), 1.0); } vec3 rel_1 = (li_1.position.xyz - world_12); float d_17 = length(rel_1); vec3 l_7 = (rel_1 / vec3(max(d_17, 1e-6))); float _e27 = omni_attenuation(d_17, li_1.position.w, li_1.direction.w); atten_1 = _e27; if ((li_1.info.x == LIGHT_SPOT)) { float cone = li_1.spot.x; float scos = max(dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = max(0.0001, ((1.0 - scos) / max((1.0 - cone), 1e-6))); float _e49 = atten_1; atten_1 = (_e49 * (1.0 - pow(rim_1, li_1.spot.y))); } float _e56 = atten_1; return vec4(l_7, _e56); } float hedra_shadow(uint i_12, vec3 l_4) { bool local_29 = false; if (false) { uint _e10 = _group_0_binding_1_fs.lights[i_12].info.y; local_29 = (_e10 != LIGHT_SHADOWED); } else { local_29 = true; } bool _e14 = local_29; if (_e14) { return 1.0; } vec3 _e17 = hedra_world; vec3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } vec3 hedra_ambient(vec3 n_10, vec3 v_5, vec3 diffuse_2, vec3 f0_3, float roughness_3, float metallic) { vec3 ambient = vec3(0.0); vec3 diffuse_amb = vec3(0.0); vec3 spec_amb = vec3(0.0); vec3 dif = vec3(0.0); vec3 dif_1 = vec3(0.0); vec3 dif_2 = vec3(0.0); vec3 world_13 = hedra_world; float nv_5 = max(dot(n_10, v_5), 0.0001); vec3 f_amb = (f0_3 + ((max(vec3((1.0 - roughness_3)), f0_3) - f0_3) * pow((1.0 - nv_5), 5.0))); vec4 _e25 = gi_diffuse(n_10, false, vec3(0.0)); uint _e30 = _group_0_binding_5_fs.flags.x; if (((_e30 & SKY_IBL) != 0u)) { float _e38 = _group_0_binding_5_fs.ibl.x; float _e42 = _group_0_binding_5_fs.sun.w; float scale = (_e38 * _e42); vec4 _e46 = _group_0_binding_5_fs.ambient; diffuse_amb = _e46.xyz; uint _e52 = _group_0_binding_5_fs.flags.x; if (((_e52 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e59 = _group_0_binding_5_fs.ambient; vec3 _e61 = sky_dir(n_10); vec3 _e62 = sh_irradiance(_e61); float _e67 = _group_0_binding_5_fs.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if ((_e25.w > 0.0)) { diffuse_amb = _e25.xyz; } vec4 _e75 = _group_0_binding_5_fs.ambient; spec_amb = _e75.xyz; uint _e81 = _group_0_binding_5_fs.flags.x; if (((_e81 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e88 = sky_dir(reflect(-(v_5), n_10)); vec3 _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { uint _e94 = _group_0_binding_5_fs.flags.x; if (((_e94 & SKY_REFLECT_OFF) != 0u)) { spec_amb = vec3(0.0); } } vec2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = _group_0_binding_7_fs.counts.x; if ((_e105 > 0u)) { uint _e113 = _group_1_binding_0_fs.extra.z; vec4 _e114 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e113); vec3 _e115 = spec_amb; vec3 spec_1 = ((_e115 * (1.0 - _e114.w)) + _e114.xyz); vec3 _e122 = diffuse_amb; dif = _e122; if ((_e25.w <= 0.0)) { uint _e130 = _group_1_binding_0_fs.extra.z; vec4 _e131 = probe_ambient(world_13, n_10, _e130); vec3 _e132 = diffuse_amb; dif = ((_e132 * (1.0 - _e131.w)) + _e131.xyz); } vec3 _e139 = dif; ambient = ((diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } else { vec3 _e154 = diffuse_amb; vec3 _e156 = spec_amb; ambient = ((diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } } else { uint _e173 = _group_0_binding_1_fs.counts.y; if (((_e173 & ENV_AMBIENT_SKY) != 0u)) { vec4 _e180 = _group_0_binding_1_fs.up; vec3 up_1 = _e180.xyz; vec4 _e184 = _group_0_binding_1_fs.sky_top; vec4 _e188 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e184.xyz + _e188.xyz) * 0.5); vec4 _e195 = _group_0_binding_1_fs.ground_horizon; vec4 _e199 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e195.xyz + _e199.xyz) * 0.5); vec3 irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up_1) * 0.5) + 0.5), 0.0, 1.0)); vec3 _e215 = sky(reflect(-(v_5), n_10)); vec3 blurred = mix(_e215, sky_avg, roughness_3); uint _e220 = _group_0_binding_7_fs.counts.x; if ((_e220 > 0u)) { uint _e228 = _group_1_binding_0_fs.extra.z; vec4 _e229 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e228); float _e233 = _group_0_binding_1_fs.ambient.w; vec3 spec_2 = (((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e249 = _group_1_binding_0_fs.extra.z; vec4 _e250 = probe_ambient(world_13, n_10, _e249); float _e254 = _group_0_binding_1_fs.ambient.w; dif_1 = (((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz); } vec3 _e262 = dif_1; ambient = ((diffuse_2 * _e262) + (spec_2 * f_amb)); } else { if ((_e25.w > 0.0)) { float _e275 = _group_0_binding_1_fs.ambient.w; ambient = ((diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { float _e284 = _group_0_binding_1_fs.ambient.w; ambient = (((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284); } } } else { uint _e289 = _group_0_binding_7_fs.counts.x; if ((_e289 > 0u)) { uint _e297 = _group_1_binding_0_fs.extra.z; vec4 _e298 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e297); vec4 _e301 = _group_0_binding_1_fs.ambient; vec3 spec_3 = ((_e301.xyz * (1.0 - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e317 = _group_1_binding_0_fs.extra.z; vec4 _e318 = probe_ambient(world_13, n_10, _e317); vec4 _e321 = _group_0_binding_1_fs.ambient; dif_2 = ((_e321.xyz * (1.0 - _e318.w)) + _e318.xyz); } vec3 _e329 = dif_2; ambient = ((diffuse_2 * _e329) + (spec_3 * f_amb)); } else { if ((_e25.w > 0.0)) { vec4 _e340 = _group_0_binding_1_fs.ambient; ambient = ((diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb)); } else { vec4 _e346 = _group_0_binding_1_fs.ambient; ambient = (_e346.xyz * (diffuse_2 + f_amb)); } } } } vec3 _e350 = ambient; return _e350; } vec3 hedra_fog(vec3 c_in_1, vec3 v_6) { vec3 c_20 = vec3(0.0); c_20 = c_in_1; if (HEDRA_FOG_DISABLED) { vec3 _e4 = c_20; return _e4; } uint _e8 = _group_0_binding_5_fs.flags.x; if (((_e8 & SKY_FOG) != 0u)) { vec3 _e13 = c_20; vec3 _e15 = hedra_world; vec3 _e17 = surface_fog(_e13, _e15, -(v_6)); c_20 = _e17; } uint _e21 = _group_1_binding_0_fs.decals.w; if ((_e21 != 0u)) { vec3 _e24 = c_20; vec3 _e26 = hedra_world; uint _e30 = _group_1_binding_0_fs.decals.w; vec3 _e31 = fog_volumes(_e24, _e26, _e30); c_20 = _e31; } vec3 _e32 = c_20; return _e32; } vec3 hedra_lit(vec4 clip) { DecalSurface surf_1 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); vec3 c_21 = vec3(0.0); uint k_11 = 0u; bool local_30 = false; vec3 radiance_3 = vec3(0.0); bool local_31 = false; bool local_32 = false; vec3 ambient_1 = vec3(0.0); bool local_33 = false; vec3 n_geo_3 = hedra_n_geo; vec3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; vec3 _e18 = hedra_n; vec3 _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0.0, 1.0), clamp(_e11, 0.045, 1.0), _e16, _e18, _e20); uint _e26 = _group_1_binding_0_fs.decals.z; if ((_e26 > 0u)) { vec3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; vec3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; mat4x4 _e45 = _group_0_binding_0_fs.view; mat3x3 _e46 = hedra_mat3_(_e45); vec3 _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); vec3 base = surf_1.base; vec3 diffuse_3 = (base * (1.0 - metallic_1)); float _e64 = SPECULAR; float _e68 = SPECULAR; vec3 f0_4 = mix(vec3(((0.16 * _e64) * _e68)), base, metallic_1); vec3 n_13 = surf_1.normal; vec3 _e75 = hedra_world; vec3 _e76 = hedra_view_dir(_e75); mat4x4 _e79 = _group_0_binding_0_fs.view; mat3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = mix(1.0, _e82, _e84); DIFFUSE_LIGHT = vec3(0.0); SPECULAR_LIGHT = vec3(0.0); uint _e96 = object_light_count(); bool loop_init_16 = true; while(true) { if (!loop_init_16) { uint _e238 = k_11; k_11 = (_e238 + 1u); } loop_init_16 = false; uint _e99 = k_11; if ((_e99 < _e96)) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101); LightU li_2 = _group_0_binding_1_fs.lights[_e102]; vec3 _e108 = hedra_world; vec4 _e109 = hedra_light_dir(_e102, _e108); vec3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_30 = (atten_2 > 0.0); } else { local_30 = true; } bool _e123 = local_30; if (_e123) { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if ((_e142 > 0.0)) { float rim_light = pow(max(0.0001, (1.0 - max(dot(n_13, _e76), 0.0001))), max(0.0, ((1.0 - roughness_4) * 16.0))); vec3 _e159 = c_21; float _e164 = RIM; float _e170 = RIM_TINT; c_21 = (_e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1.0), base, _e170))); } if ((atten_2 > 0.0)) { radiance_3 = (li_2.color.xyz * atten_2); if ((li_2.info.y == LIGHT_SHADOWED)) { local_31 = false; } else { local_31 = false; } bool _e188 = local_31; if (_e188) { vec3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if (true) { local_32 = false; } else { local_32 = false; } bool _e201 = local_32; if (_e201) { vec3 _e202 = c_21; vec3 _e203 = radiance_3; vec3 _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_21 = (_e202 + _e206); } else { vec3 _e208 = c_21; vec3 _e209 = radiance_3; vec3 _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = (_e208 + _e212); } vec3 _e215 = BACKLIGHT; if (any(greaterThan(_e215, vec3(0.0)))) { float nl_4 = max(min(dot(n_13, l_8), 1.0), 0.0); vec3 _e225 = c_21; vec3 _e226 = radiance_3; vec3 _e229 = BACKLIGHT; c_21 = (_e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987)))); } } } } if (HEDRA_HAS_LIGHT) { vec3 _e242 = DIFFUSE_LIGHT; vec3 _e249 = SPECULAR_LIGHT; c_21 = ((((_e242 * base) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct)); } else { float _e253 = AO_LIGHT_AFFECT; if ((_e253 > 0.0)) { vec3 _e256 = c_21; c_21 = (_e256 * ao_direct); } } if (true) { vec3 _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } uint _e266 = _group_0_binding_1_fs.counts.y; if (((_e266 & ENV_SSAO) != 0u)) { bool _e273 = hedra_transparent(); local_33 = !(_e273); } else { local_33 = false; } bool _e276 = local_33; if (_e276) { vec4 _e282 = texelFetch(_group_0_binding_6_fs, ivec2(floor(clip.xy)), 0); float ssao = _e282.x; vec3 _e284 = c_21; float _e286 = surf_1.occlusion; float _e291 = _group_0_binding_1_fs.tone.z; float _e295 = _group_0_binding_1_fs.tone.w; c_21 = (_e284 * mix(1.0, min(ssao, _e286), (_e291 * _e295))); vec3 _e300 = c_21; vec3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_21 = (_e300 + (_e301 * min(_e303, ssao))); } else { vec3 _e307 = c_21; vec3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_21 = (_e307 + (_e308 * _e310)); } vec3 _e313 = c_21; vec3 _e315 = surf_1.emission; c_21 = (_e313 + _e315); vec3 _e317 = c_21; vec3 _e318 = hedra_fog(_e317, _e76); vec3 _e319 = tonemap(_e318); return _e319; } vec4 hedra_output(vec3 c_22) { vec3 rgb = vec3(0.0); rgb = c_22; if (false) { vec3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } vec3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); vec4 o_9 = vec4(_e7, (_e10 ? _e9 : 1.0)); uint _e17 = _group_0_binding_1_fs.counts.y; if (((_e17 & ENV_HDR) != 0u)) { return vec4(max(o_9.xyz, vec3(0.0)), clamp(o_9.w, 0.0, 1.0)); } vec4 k_17 = clamp(o_9, vec4(0.0), vec4(1.0)); uint _e39 = _group_0_binding_0_fs.params.z; if (((_e39 & HEDRA_ENCODE_SRGB) != 0u)) { vec3 _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } vec3 hedra_bindings() { vec2 uv_6 = vec2(0.5); vec4 _e5 = textureLod(_group_3_binding_1_fs, vec2(uv_6), 0.0); vec4 _e11 = textureLod(_group_3_binding_4_fs, vec3(uv_6, 0), 0.0); vec4 _e17 = textureLod(_group_1_binding_6_fs, vec2(uv_6), 0.0); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } void main() { CustomOut in_3 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing = gl_FrontFacing; vec3 c = vec3(0.0); hedra_fragment(in_3, facing); bool _e3 = hedra_culled(in_3.flags); if (_e3) { discard; } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if ((_e7 <= 0.0)) { discard; } if (HEDRA_UNSHADED) { vec3 _e13 = ALBEDO; vec3 _e15 = hedra_world; vec3 _e16 = hedra_view_dir(_e15); vec3 _e17 = hedra_fog(_e13, _e16); vec3 _e18 = tonemap(_e17); c = _e18; } else { vec3 _e20 = hedra_lit(in_3.clip); c = _e20; } uint _e24 = _group_0_binding_1_fs.counts.w; if ((_e24 == HEDRA_NEVER)) { vec3 _e27 = c; vec3 _e28 = hedra_bindings(); c = (_e27 + _e28); } uint _e33 = _group_0_binding_0_fs.params.x; if ((_e33 == SHADE_LIT)) { vec3 _e36 = c; vec3 _e37 = item_fade(_e36); vec3 _e38 = emerge_tint(_e37, _e7); c = _e38; } vec3 _e39 = c; vec4 _e40 = hedra_output(_e39); _fs2p_location0 = _e40; return; } fs_custom_depthmain/Œ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 zenith; float hedra_pad0_; vec3 horizon; float hedra_pad1_; vec3 below; float bands; float curve; float hedra_pad2_; float hedra_pad3_; float hedra_pad4_; vec3 sun_direction; float hedra_pad5_; vec3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6_; vec2 horizon_band; float hedra_pad7_; float hedra_pad8_; vec3 horizon_tint; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = true; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 1u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec3 dir_7 = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_3 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_3), dot(vec3(-0.10208, 1.10813, -0.00605), t_3), dot(vec3(-0.00327, -0.07276, 1.07602), t_3)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_4 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_4)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec3 _e3 = dir_7; o_4.hedra_v0_ = vec4(_e3, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { dir_7 = i_10.hedra_v0_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void fragment() { float t = 0.0; vec3 col = vec3(0.0); bool local_20 = false; bool local_21 = false; vec3 _e1 = dir_7; vec3 d_15 = normalize(_e1); float up = d_15.z; float _e9 = _group_2_binding_0_fs.curve; t = pow(clamp(up, 0.0, 1.0), (1.0 / _e9)); float _e16 = _group_2_binding_0_fs.bands; if ((_e16 >= 2.0)) { float _e19 = t; float _e22 = _group_2_binding_0_fs.bands; float _e27 = _group_2_binding_0_fs.bands; t = (floor((_e19 * _e22)) / _e27); } vec3 _e31 = _group_2_binding_0_fs.horizon; vec3 _e34 = _group_2_binding_0_fs.zenith; float _e35 = t; col = mix(_e31, _e34, _e35); if ((up < 0.0)) { vec3 _e42 = _group_2_binding_0_fs.horizon; vec3 _e45 = _group_2_binding_0_fs.below; col = mix(_e42, _e45, clamp((-(up) * 8.0), 0.0, 1.0)); } vec3 _e55 = _group_2_binding_0_fs.sun_direction; vec3 _e56 = scene_to_frame(_e55); vec3 sun = normalize(_e56); float angle = degrees(acos(clamp(dot(d_15, sun), -1.0, 1.0))); float _e66 = _group_2_binding_0_fs.halo_strength; float _e69 = _group_2_binding_0_fs.halo_size; float halo = (_e66 * pow(clamp((1.0 - (angle / max(_e69, 0.001))), 0.0, 1.0), 2.0)); vec3 _e81 = col; vec3 _e84 = _group_2_binding_0_fs.sun_color; col = (_e81 + (_e84 * halo)); float _e89 = _group_2_binding_0_fs.sun_size; if ((angle < _e89)) { vec3 _e93 = _group_2_binding_0_fs.sun_color; col = (_e93 * 1.4); } float elevation = degrees(asin(clamp(up, -1.0, 1.0))); float _e104 = _group_2_binding_0_fs.horizon_band.x; float _e109 = _group_2_binding_0_fs.horizon_band.y; float _e113 = _group_2_binding_0_fs.horizon_band.x; float v_7 = ((elevation - _e104) / max((_e109 - _e113), 0.001)); float _e127 = _group_2_binding_0_fs.horizon_repeat; float u_2 = (((atan(d_15.y, d_15.x) / TAU) + 0.5) * _e127); vec4 strip = texture(_group_2_binding_1_fs, vec2(vec2(u_2, (1.0 - clamp(v_7, 0.0, 1.0))))); if ((v_7 >= 0.0)) { local_20 = (v_7 <= 1.0); } else { local_20 = false; } bool _e145 = local_20; if (_e145) { local_21 = (strip.w >= 0.5); } else { local_21 = false; } bool _e152 = local_21; if (_e152) { vec3 _e156 = _group_2_binding_0_fs.horizon_tint; col = (strip.xyz * _e156); } vec3 _e159 = col; ALBEDO = _e159; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_5 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_5, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_22 = false; bool local_23 = false; if (HEDRA_ALPHA) { local_22 = true; } else { local_22 = false; } bool _e5 = local_22; if (!(_e5)) { local_23 = false; } else { local_23 = true; } bool _e11 = local_23; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_25 = false; if (true) { local_25 = HEDRA_WORLD_VERTEX_COORDS; } else { local_25 = true; } bool _e5 = local_25; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_2 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_2 = in_7.tangent.xyz; vec3 _e41 = t_2; vec3 _e42 = t_2; t_2 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_2; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_2; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_28 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_28 = (nl_3 > 0.0); } else { local_28 = false; } bool _e60 = local_28; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_4 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_1 = gl_FrontFacing; bool local = false; bool local_1 = false; hedra_fragment(in_4, facing_1); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { discard; } float _e25 = emerge_reveal(in_4.world, vec2(-1.0)); if ((_e25 <= 0.0)) { discard; } else { return; } }  fs_custom_idmain!�#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 zenith; float hedra_pad0_; vec3 horizon; float hedra_pad1_; vec3 below; float bands; float curve; float hedra_pad2_; float hedra_pad3_; float hedra_pad4_; vec3 sun_direction; float hedra_pad5_; vec3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6_; vec2 horizon_band; float hedra_pad7_; float hedra_pad8_; vec3 horizon_tint; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = true; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 1u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec3 dir_7 = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_3 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_3), dot(vec3(-0.10208, 1.10813, -0.00605), t_3), dot(vec3(-0.00327, -0.07276, 1.07602), t_3)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_4 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_4)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec3 _e3 = dir_7; o_4.hedra_v0_ = vec4(_e3, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { dir_7 = i_10.hedra_v0_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void fragment() { float t = 0.0; vec3 col = vec3(0.0); bool local_20 = false; bool local_21 = false; vec3 _e1 = dir_7; vec3 d_15 = normalize(_e1); float up = d_15.z; float _e9 = _group_2_binding_0_fs.curve; t = pow(clamp(up, 0.0, 1.0), (1.0 / _e9)); float _e16 = _group_2_binding_0_fs.bands; if ((_e16 >= 2.0)) { float _e19 = t; float _e22 = _group_2_binding_0_fs.bands; float _e27 = _group_2_binding_0_fs.bands; t = (floor((_e19 * _e22)) / _e27); } vec3 _e31 = _group_2_binding_0_fs.horizon; vec3 _e34 = _group_2_binding_0_fs.zenith; float _e35 = t; col = mix(_e31, _e34, _e35); if ((up < 0.0)) { vec3 _e42 = _group_2_binding_0_fs.horizon; vec3 _e45 = _group_2_binding_0_fs.below; col = mix(_e42, _e45, clamp((-(up) * 8.0), 0.0, 1.0)); } vec3 _e55 = _group_2_binding_0_fs.sun_direction; vec3 _e56 = scene_to_frame(_e55); vec3 sun = normalize(_e56); float angle = degrees(acos(clamp(dot(d_15, sun), -1.0, 1.0))); float _e66 = _group_2_binding_0_fs.halo_strength; float _e69 = _group_2_binding_0_fs.halo_size; float halo = (_e66 * pow(clamp((1.0 - (angle / max(_e69, 0.001))), 0.0, 1.0), 2.0)); vec3 _e81 = col; vec3 _e84 = _group_2_binding_0_fs.sun_color; col = (_e81 + (_e84 * halo)); float _e89 = _group_2_binding_0_fs.sun_size; if ((angle < _e89)) { vec3 _e93 = _group_2_binding_0_fs.sun_color; col = (_e93 * 1.4); } float elevation = degrees(asin(clamp(up, -1.0, 1.0))); float _e104 = _group_2_binding_0_fs.horizon_band.x; float _e109 = _group_2_binding_0_fs.horizon_band.y; float _e113 = _group_2_binding_0_fs.horizon_band.x; float v_7 = ((elevation - _e104) / max((_e109 - _e113), 0.001)); float _e127 = _group_2_binding_0_fs.horizon_repeat; float u_2 = (((atan(d_15.y, d_15.x) / TAU) + 0.5) * _e127); vec4 strip = texture(_group_2_binding_1_fs, vec2(vec2(u_2, (1.0 - clamp(v_7, 0.0, 1.0))))); if ((v_7 >= 0.0)) { local_20 = (v_7 <= 1.0); } else { local_20 = false; } bool _e145 = local_20; if (_e145) { local_21 = (strip.w >= 0.5); } else { local_21 = false; } bool _e152 = local_21; if (_e152) { vec3 _e156 = _group_2_binding_0_fs.horizon_tint; col = (strip.xyz * _e156); } vec3 _e159 = col; ALBEDO = _e159; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_5 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_5, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_22 = false; bool local_23 = false; if (HEDRA_ALPHA) { local_22 = true; } else { local_22 = false; } bool _e5 = local_22; if (!(_e5)) { local_23 = false; } else { local_23 = true; } bool _e11 = local_23; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_25 = false; if (true) { local_25 = HEDRA_WORLD_VERTEX_COORDS; } else { local_25 = true; } bool _e5 = local_25; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_2 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_2 = in_7.tangent.xyz; vec3 _e41 = t_2; vec3 _e42 = t_2; t_2 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_2; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_2; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_26 = false; bool local_27 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (true) { bool _e10 = hedra_front; local_26 = _e10; } else { local_26 = false; } bool _e12 = local_26; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_27 = (_e18 < _e20); } else { local_27 = false; } bool _e23 = local_27; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_28 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_28 = (nl_3 > 0.0); } else { local_28 = false; } bool _e60 = local_28; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_5 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_2 = gl_FrontFacing; bool local_2 = false; IdOut out_ = IdOut(vec4(0.0)); hedra_fragment(in_5, facing_2); bool _e3 = hedra_culled(in_5.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0.0); } else { local_2 = true; } bool _e14 = local_2; if (_e14) { discard; } uint id = _group_1_binding_0_fs.params.z; uint _e24 = _group_1_binding_0_fs.params.x; uint _e33 = _group_1_binding_0_fs.params.y; uint bits = (((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u)); out_.id = (vec4(float((id & 255u)), float(((id >> 8u) & 255u)), float(((id >> 16u) & 255u)), float(bits)) / vec4(255.0)); IdOut _e58 = out_; _fs2p_location0 = _e58.id; return; } fs_custom_normal_depthmainÂ�#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 zenith; float hedra_pad0_; vec3 horizon; float hedra_pad1_; vec3 below; float bands; float curve; float hedra_pad2_; float hedra_pad3_; float hedra_pad4_; vec3 sun_direction; float hedra_pad5_; vec3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6_; vec2 horizon_band; float hedra_pad7_; float hedra_pad8_; vec3 horizon_tint; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = true; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 1u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec3 dir_7 = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; layout(location = 1) out vec4 _fs2p_location1; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_3 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_3), dot(vec3(-0.10208, 1.10813, -0.00605), t_3), dot(vec3(-0.00327, -0.07276, 1.07602), t_3)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_4 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_4)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec3 _e3 = dir_7; o_4.hedra_v0_ = vec4(_e3, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { dir_7 = i_10.hedra_v0_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void fragment() { float t = 0.0; vec3 col = vec3(0.0); bool local_20 = false; bool local_21 = false; vec3 _e1 = dir_7; vec3 d_15 = normalize(_e1); float up = d_15.z; float _e9 = _group_2_binding_0_fs.curve; t = pow(clamp(up, 0.0, 1.0), (1.0 / _e9)); float _e16 = _group_2_binding_0_fs.bands; if ((_e16 >= 2.0)) { float _e19 = t; float _e22 = _group_2_binding_0_fs.bands; float _e27 = _group_2_binding_0_fs.bands; t = (floor((_e19 * _e22)) / _e27); } vec3 _e31 = _group_2_binding_0_fs.horizon; vec3 _e34 = _group_2_binding_0_fs.zenith; float _e35 = t; col = mix(_e31, _e34, _e35); if ((up < 0.0)) { vec3 _e42 = _group_2_binding_0_fs.horizon; vec3 _e45 = _group_2_binding_0_fs.below; col = mix(_e42, _e45, clamp((-(up) * 8.0), 0.0, 1.0)); } vec3 _e55 = _group_2_binding_0_fs.sun_direction; vec3 _e56 = scene_to_frame(_e55); vec3 sun = normalize(_e56); float angle = degrees(acos(clamp(dot(d_15, sun), -1.0, 1.0))); float _e66 = _group_2_binding_0_fs.halo_strength; float _e69 = _group_2_binding_0_fs.halo_size; float halo = (_e66 * pow(clamp((1.0 - (angle / max(_e69, 0.001))), 0.0, 1.0), 2.0)); vec3 _e81 = col; vec3 _e84 = _group_2_binding_0_fs.sun_color; col = (_e81 + (_e84 * halo)); float _e89 = _group_2_binding_0_fs.sun_size; if ((angle < _e89)) { vec3 _e93 = _group_2_binding_0_fs.sun_color; col = (_e93 * 1.4); } float elevation = degrees(asin(clamp(up, -1.0, 1.0))); float _e104 = _group_2_binding_0_fs.horizon_band.x; float _e109 = _group_2_binding_0_fs.horizon_band.y; float _e113 = _group_2_binding_0_fs.horizon_band.x; float v_7 = ((elevation - _e104) / max((_e109 - _e113), 0.001)); float _e127 = _group_2_binding_0_fs.horizon_repeat; float u_2 = (((atan(d_15.y, d_15.x) / TAU) + 0.5) * _e127); vec4 strip = texture(_group_2_binding_1_fs, vec2(vec2(u_2, (1.0 - clamp(v_7, 0.0, 1.0))))); if ((v_7 >= 0.0)) { local_20 = (v_7 <= 1.0); } else { local_20 = false; } bool _e145 = local_20; if (_e145) { local_21 = (strip.w >= 0.5); } else { local_21 = false; } bool _e152 = local_21; if (_e152) { vec3 _e156 = _group_2_binding_0_fs.horizon_tint; col = (strip.xyz * _e156); } vec3 _e159 = col; ALBEDO = _e159; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_5 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_5, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_22 = false; bool local_23 = false; if (HEDRA_ALPHA) { local_22 = true; } else { local_22 = false; } bool _e5 = local_22; if (!(_e5)) { local_23 = false; } else { local_23 = true; } bool _e11 = local_23; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_25 = false; if (true) { local_25 = HEDRA_WORLD_VERTEX_COORDS; } else { local_25 = true; } bool _e5 = local_25; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_2 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_2 = in_7.tangent.xyz; vec3 _e41 = t_2; vec3 _e42 = t_2; t_2 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_2; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_2; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_26 = false; bool local_27 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (true) { bool _e10 = hedra_front; local_26 = _e10; } else { local_26 = false; } bool _e12 = local_26; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_27 = (_e18 < _e20); } else { local_27 = false; } bool _e23 = local_27; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_28 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_28 = (nl_3 > 0.0); } else { local_28 = false; } bool _e60 = local_28; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_6 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_3 = gl_FrontFacing; bool local_3 = false; HedraNormalDepthOut out_1 = HedraNormalDepthOut(vec4(0.0), vec4(0.0)); hedra_fragment(in_6, facing_3); bool _e3 = hedra_culled(in_6.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0.0); } else { local_3 = true; } bool _e14 = local_3; if (_e14) { discard; } mat4x4 _e17 = _group_0_binding_0_fs.view; mat3x3 _e18 = hedra_mat3_(_e17); vec3 _e20 = hedra_n; vec3 n_view = normalize((_e18 * _e20)); float _e24 = METALLIC; float metallic_1 = clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; vec3 _e37 = ALBEDO; vec3 f0_4 = mix(vec3(((0.16 * _e29) * _e33)), _e37, metallic_1); mat4x4 _e43 = _group_0_binding_0_fs.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_4, vec3(0.0), vec3(1.0)), clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; _fs2p_location0 = _e63.normal_depth; _fs2p_location1 = _e63.surface; return; }  @Ð Ð/ ,@  �{Ðþ—4ÌhÜ©Z„åŸþh³@]ß,dápuªrWJGlobals_block_0VertexObjectU_block_1VertexSkinU_block_2VertexSkyU_block_4FragmentShadowU_block_3FragmentGlobals_block_0Fragment HedraParams_block_8FragmentFogU_block_7FragmentDecalU_block_6FragmentObjectU_block_1FragmentProbeU_block_5FragmentLitU_block_2Fragment_group_3_binding_4_fs_group_0_binding_6_fs_group_2_binding_1_fs_group_1_binding_3_fs_group_3_binding_1_fs_group_3_binding_6_fs_group_0_binding_3_fs_group_1_binding_6_fs_group_3_binding_0_fs HedraParams_block_2Fragment vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depth„f// language: metal2.2 #include #include using metal::uint; struct Globals { metal::float4x4 view; metal::float4x4 proj; metal::float4x4 view_proj; metal::float4 camera_pos; metal::float4 viewport; metal::float4 wire_color; metal::float4 select_color; metal::float4 active_color; metal::float4 grid; metal::uint4 params; metal::float4 fparams; }; struct type_5 { metal::float4 inner[3]; }; struct ObjectU { metal::float4x4 model; metal::float4x4 normal; metal::float4 color; metal::uint4 params; metal::uint4 extra; type_5 gi; metal::uint4 decals; metal::uint4 lights; }; struct type_8 { metal::float3 inner[10]; }; struct LightU { metal::float4 color; metal::float4 position; metal::float4 direction; metal::float4 spot; metal::uint4 info; }; struct type_9 { LightU inner[64]; }; struct LitU { metal::uint4 counts; metal::float4 ambient; metal::float4 tone; metal::float4 up; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_horizon; metal::float4 ground_bottom; metal::float4x4 inv_view_proj; metal::uint4 dirs; type_9 lights; }; struct ShadowLightU { metal::float4 params; metal::float4 splits; metal::float4 fade; metal::uint4 info; }; struct ShadowTileU { metal::float4x4 view_proj; metal::float4 rect; metal::float4 texel; }; struct type_10 { ShadowLightU inner[16]; }; struct type_11 { ShadowTileU inner[16]; }; struct ShadowU { metal::float4 atlas; type_10 lights; type_11 tiles; }; struct SunU { metal::float4 direction; metal::float4 color; }; struct type_14 { SunU inner[4]; }; struct type_15 { metal::float4 inner[9]; }; struct SkyU { metal::uint4 flags; metal::float4x4 to_sky; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_bottom; metal::float4 ground_horizon; metal::float4 sun; metal::float4 ambient; metal::float4 ibl; metal::float4 fog_color; metal::float4 fog; metal::float4 fog_depth; metal::float4 fog_origin; type_14 suns; type_15 sh; }; struct ProbeEntryU { metal::float4x4 to_local; metal::float4 extents; metal::float4 offset; metal::float4 ambient; metal::uint4 info; }; struct type_20 { ProbeEntryU inner[8]; }; struct ProbeU { metal::uint4 counts; type_20 probes; }; struct DecalEntryU { metal::float4x4 to_local; metal::float4 modulate; metal::float4 fades; metal::float4 axis_x; metal::float4 axis_y; metal::float4 axis_z; metal::uint4 layers; metal::uint4 flags; }; struct type_21 { DecalEntryU inner[64]; }; struct DecalU { metal::uint4 counts; metal::float4 lod; type_21 entries; }; struct DecalSurface { metal::packed_float3 base; float metallic; float roughness; float occlusion; char _pad4[8]; metal::float3 normal; metal::float3 emission; }; struct VsIn { metal::float3 pos; metal::float3 normal; metal::float2 uv; uint flags; char _pad4[4]; metal::float4 tangent; float weight; char _pad6[12]; }; struct InstIn { metal::float4 row0_; metal::float4 row1_; metal::float4 row2_; metal::float4 color; }; struct FogEntryU { metal::float4x4 to_local; metal::float4 size; metal::float4 material; metal::float4 albedo; metal::float4 emission; metal::uint4 lights; }; struct type_26 { metal::float4 inner[16]; }; struct type_27 { FogEntryU inner[16]; }; struct FogU { metal::uint4 counts; metal::float4 params; metal::float4 ambient; metal::float4 up; type_26 light_fog; type_27 entries; }; struct type_28 { uint inner[4]; }; struct type_29 { metal::float2 inner[4]; }; struct type_30 { metal::float4 inner[4]; }; struct type_31 { metal::float4 inner[765]; }; struct SkinU { type_31 rows; }; struct SkinIn { metal::uint4 joints; metal::float4 weights; }; struct SkinRows { metal::float4 r0_; metal::float4 r1_; metal::float4 r2_; }; struct HedraInstExtra { metal::float4 custom; float id; char _pad2[12]; }; struct CustomOut { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; metal::float4 color; metal::float2 uv2_; uint instance_id; char _pad9[4]; metal::float4 hedra_v0_; metal::float4 hedra_v1_; metal::float4 hedra_v2_; metal::float4 hedra_v3_; }; struct IdOut { metal::float4 id; }; struct HedraParams { metal::packed_float3 zenith; float hedra_pad0_; metal::packed_float3 horizon; float hedra_pad1_; metal::packed_float3 below; float bands; float curve; float hedra_pad2_; float hedra_pad3_; float hedra_pad4_; metal::packed_float3 sun_direction; float hedra_pad5_; metal::packed_float3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6_; metal::float2 horizon_band; float hedra_pad7_; float hedra_pad8_; metal::float3 horizon_tint; }; struct HedraNormalDepthOut { metal::float4 normal_depth; metal::float4 surface; }; constant uint OBJ_HAS_WEIGHTS = 1u; constant uint OBJ_MIRRORED = 2u; constant uint SHADE_SOLID = 0u; constant uint SHADE_MATCAP = 1u; constant uint SHADE_NORMALS = 2u; constant uint SHADE_FACE_ORIENT = 3u; constant uint SHADE_RANDOM = 4u; constant uint SHADE_MATERIAL = 5u; constant uint SHADE_UV_CHECKER = 6u; constant uint SHADE_WEIGHTS = 7u; constant uint SHADE_LIT = 8u; constant uint SHADE_LIGHTMAP = 9u; constant uint SHADE_LIGHT_COUNT = 10u; constant uint OV_SELECTION = 1u; constant uint OV_SEAMS = 2u; constant uint OV_SHARP = 4u; constant uint F_SELECTED = 1u; constant uint F_HIDDEN = 2u; constant uint F_SEAM = 4u; constant uint F_SHARP = 8u; constant uint F_MESH = 16u; constant uint F_FADE = 32u; constant uint F_NO_PULL = 64u; constant bool SPEC_TEX_BASE = true; constant bool SPEC_TEX_NORMAL = true; constant bool SPEC_TEX_MR = true; constant bool SPEC_TEX_EMISSION = true; constant bool SPEC_TEX_OCCLUSION = true; constant bool SPEC_VERTEX_COLOR = true; constant bool SPEC_EXT = true; constant bool SPEC_UNLIT = true; constant bool SPEC_ALPHA_MASK = true; constant bool SPEC_ALPHA_BLEND = true; constant bool SPEC_CLEARCOAT = true; constant bool SPEC_SHEEN = true; constant bool SPEC_TRANSMISSION = true; constant bool SPEC_IRIDESCENCE = true; constant bool SPEC_ANISOTROPY = true; constant bool SPEC_DIFFUSE_TRANSMISSION = true; constant bool SPEC_VOLUME = true; constant bool SPEC_DISPERSION = true; constant bool SPEC_EXT_LAYERS = true; constant bool SPEC_ROUGHNESS_LAYER = true; constant bool SPEC_LIT = true; constant bool SPEC_LIGHTS = true; constant bool SPEC_SHADOWS = true; constant bool SPEC_DECALS = true; constant bool SPEC_FOG = true; constant bool SPEC_FOG_VOLUMES = true; constant bool SPEC_PROBES = true; constant bool SPEC_PROBE_GI = true; constant bool SPEC_SSAO = true; constant bool SPEC_SCREEN_REFRACTION = true; constant bool SPEC_EMERGE = true; constant bool SPEC_FADE = true; constant bool SPEC_FACE_FLAGS = true; constant bool SPEC_AMBIENT_FLAT = true; constant bool SPEC_AMBIENT_GRADIENT = true; constant bool SPEC_AMBIENT_SKY = true; constant bool SPEC_MATERIAL_MODE = true; constant bool SPEC_OTHER_MODES = true; constant float PI = 3.1415927; constant float TAU = 6.2831855; constant float E = 2.7182817; constant uint HEDRA_BLEND_MIX = 0u; constant uint HEDRA_BLEND_PREMUL_ALPHA = 4u; constant uint HEDRA_CULL_FRONT = 1u; constant uint HEDRA_DIFFUSE_LAMBERT = 0u; constant uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; constant uint HEDRA_DIFFUSE_BURLEY = 2u; constant uint HEDRA_DIFFUSE_TOON = 3u; constant uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; constant uint HEDRA_SPECULAR_TOON = 1u; constant uint HEDRA_SPECULAR_DISABLED = 2u; constant uint HEDRA_ENCODE_SRGB = 2u; constant uint HEDRA_NEVER = 4294967295u; constant uint MAX_FRAME_LIGHTS = 64u; constant uint MAX_OBJECT_LIGHTS = 8u; constant uint MAX_SHADOW_LIGHTS = 16u; constant uint MAX_POOL_DIRECTIONAL = 8u; constant type_8 LIGHT_COUNT_COLORS = type_8 {{metal::float3(0.352941, 0.352941, 0.352941), metal::float3(0.168627, 0.247059, 0.6), metal::float3(0.129412, 0.4, 0.67451), metal::float3(0.101961, 0.623529, 0.721569), metal::float3(0.121569, 0.631373, 0.529412), metal::float3(0.301961, 0.733333, 0.352941), metal::float3(0.65098, 0.831373, 0.227451), metal::float3(0.94902, 0.784314, 0.058824), metal::float3(0.94902, 0.556863, 0.058824), metal::float3(0.878431, 0.129412, 0.541176)}}; constant uint LIGHT_DIRECTIONAL = 0u; constant uint LIGHT_OMNI = 1u; constant uint LIGHT_SPOT = 2u; constant uint LIGHT_BAKE_DISABLED = 0u; constant uint LIGHT_BAKE_STATIC = 1u; constant uint LIGHT_BAKE_DYNAMIC = 2u; constant uint TONEMAP_LINEAR = 0u; constant uint TONEMAP_REINHARD = 1u; constant uint TONEMAP_FILMIC = 2u; constant uint TONEMAP_ACES = 3u; constant uint TONEMAP_AGX = 4u; constant uint ENV_SKY = 1u; constant uint ENV_AMBIENT_SKY = 2u; constant uint ENV_SSAO = 4u; constant uint ENV_HDR = 8u; constant uint ENV_SCREEN_REFRACTION = 16u; constant uint LIGHT_SHADOWED = 1u; constant uint LIGHT_BAKED_STATIC = 1u; constant uint SHADOW_TILES = 16u; constant uint SKY_DRAW_PROCEDURAL = 1u; constant uint SKY_DRAW_PANORAMA = 2u; constant uint SKY_PANORAMA_FILTER = 4u; constant uint SKY_IBL = 8u; constant uint SKY_AMBIENT_SKY = 16u; constant uint SKY_REFLECT_RADIANCE = 32u; constant uint SKY_REFLECT_OFF = 64u; constant uint SKY_FOG = 128u; constant uint SKY_FOG_DEPTH = 256u; constant uint SKY_SUNS = 4u; constant uint OBJ_LIGHTMAP = 4u; constant uint OBJ_PROBE_GI = 8u; constant uint PROBE_BOX = 1u; constant uint PROBE_INTERIOR = 2u; constant uint MAX_PROBES = 8u; constant uint PROBE_AMBIENT_DISABLED = 0u; constant uint PROBE_AMBIENT_ENVIRONMENT = 1u; constant uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; constant uint MAX_FRAME_DECALS = 64u; constant uint MAX_OBJECT_DECALS = 8u; constant uint DECAL_LIVE_ALBEDO = 1u; constant uint DECAL_LIVE_NORMAL = 2u; constant uint DECAL_LIVE_ORM = 4u; constant uint DECAL_LIVE_EMISSION = 8u; constant uint F_INSTANCE_MIRRORED = 128u; constant uint OBJ_EMERGE = 32u; constant float EMERGE_SCALE = 1.3; constant float EMERGE_EDGE = 0.8; constant float EMERGE_DITHER = 0.12; constant uint OBJ_FADE = 64u; constant uint MAX_FRAME_FOG_VOLUMES = 16u; constant uint MAX_OBJECT_FOG_VOLUMES = 4u; constant uint FOG_SHAPE_ELLIPSOID = 0u; constant uint FOG_SHAPE_CONE = 1u; constant uint FOG_SHAPE_CYLINDER = 2u; constant uint FOG_SHAPE_BOX = 3u; constant uint FOG_SHAPE_WORLD = 4u; constant float FOG_SKY_DISTANCE = 1000000.0; constant uint FOG_LIST_ALL = 2147483648u; constant float FOG_GL_X0_ = 0.8611363; constant float FOG_GL_X1_ = 0.339981; constant float FOG_GL_W0_ = 0.3478548; constant float FOG_GL_W1_ = 0.6521452; constant uint OBJ_SKINNED = 16u; constant uint SKIN_JOINTS = 255u; constant bool HEDRA_UNSHADED = true; constant bool HEDRA_HAS_LIGHT = false; constant bool HEDRA_USES_POSITION = false; constant bool HEDRA_SKIP_VERTEX_TRANSFORM = false; constant bool HEDRA_WORLD_VERTEX_COORDS = true; constant bool HEDRA_AMBIENT_LIGHT_DISABLED = false; constant bool HEDRA_FOG_DISABLED = true; constant bool HEDRA_SHADOWS_DISABLED = true; constant bool HEDRA_ALPHA = false; constant bool HEDRA_ALPHA_SCISSOR = false; constant uint HEDRA_DIFFUSE = 0u; constant uint HEDRA_SPECULAR = 2u; constant uint HEDRA_BLEND = 0u; constant uint HEDRA_CULL = 1u; metal::float3 srgb_to_linear( metal::float3 c_1 ) { metal::float3 lo = c_1 / metal::float3(12.92); metal::float3 hi = metal::pow((c_1 + metal::float3(0.055)) / metal::float3(1.055), metal::float3(2.4)); return metal::select(hi, lo, c_1 <= metal::float3(0.04045)); } metal::float4 element_color( uint flags, metal::float4 fallback, constant Globals& G, constant ObjectU& O ) { bool local_4 = {}; bool local_5 = {}; if ((flags & F_MESH) == 0u) { return fallback; } uint overlays = G.params.y; uint _e13 = O.params.w; bool edit_object = _e13 == 1u; if ((flags & F_SEAM) != 0u) { local_4 = (overlays & OV_SEAMS) != 0u; } else { local_4 = false; } bool _e27 = local_4; if (_e27) { metal::float3 _e32 = srgb_to_linear(metal::float3(0.86, 0.0, 0.0)); return metal::float4(_e32, 1.0); } if ((flags & F_SHARP) != 0u) { local_5 = (overlays & OV_SHARP) != 0u; } else { local_5 = false; } bool _e46 = local_5; if (_e46) { metal::float3 _e51 = srgb_to_linear(metal::float3(0.0, 0.85, 0.9)); return metal::float4(_e51, 1.0); } if ((overlays & OV_SELECTION) != 0u) { if (edit_object) { if ((flags & F_SELECTED) != 0u) { metal::float4 _e64 = G.select_color; return _e64; } metal::float4 _e67 = G.wire_color; return _e67; } uint _e71 = O.params.x; if (_e71 == 1u) { metal::float4 _e76 = G.select_color; metal::float4 _e79 = G.active_color; uint _e83 = O.params.y; return (_e83 == 1u) ? _e79 : _e76; } } metal::float4 _e89 = G.wire_color; return _e89; } metal::float4 to_view( metal::float3 p, float pull, constant Globals& G, constant ObjectU& O ) { metal::float4 v = {}; metal::float4x4 _e4 = G.view; metal::float4x4 _e7 = O.model; v = (_e4 * _e7) * metal::float4(p, 1.0); float _e15 = v.z; v.z = _e15 * (1.0 - pull); metal::float4 _e19 = v; return _e19; } metal::float3 linear_to_srgb( metal::float3 c_2 ) { metal::float3 lo_1 = c_2 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(c_2, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, c_2 <= metal::float3(0.0031308)); } metal::float4 target_color( metal::float4 c_3, constant Globals& G ) { metal::float4 k_12 = metal::clamp(c_3, metal::float4(0.0), metal::float4(1.0)); float _e9 = G.fparams.w; if (_e9 > 0.5) { metal::float3 _e13 = linear_to_srgb(k_12.xyz); return metal::float4(_e13, k_12.w); } return k_12; } uint object_light_count( constant ObjectU& O ) { uint _e3 = O.lights.z; return metal::min(_e3, MAX_OBJECT_LIGHTS); } uint object_light( uint k, constant ObjectU& O ) { uint _e4 = O.lights.y; uint _e8 = O.lights.x; uint word = (k < 4u) ? _e8 : _e4; return metal::min((word >> ((k & 3u) * 8u)) & 255u, 63u); } metal::float3 light_count_color( constant ObjectU& O ) { type_8 colors = LIGHT_COUNT_COLORS; uint _e5 = O.lights.w; metal::float3 _e9 = colors.inner[metal::min(unsigned(metal::min(_e5, 9u)), 9u)]; return _e9; } uint pool_sun_count( constant LitU& Lit ) { uint _e3 = Lit.dirs.z; return metal::min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun( uint k_1, constant LitU& Lit ) { uint _e4 = Lit.dirs.y; uint _e8 = Lit.dirs.x; uint word_1 = (k_1 < 4u) ? _e8 : _e4; return metal::min((word_1 >> ((k_1 & 3u) * 8u)) & 255u, 63u); } uint decal_count( constant ObjectU& O ) { uint _e3 = O.decals.z; return metal::min(_e3, MAX_OBJECT_DECALS); } uint decal_entry( uint k_2, constant ObjectU& O ) { uint _e4 = O.decals.y; uint _e8 = O.decals.x; uint word_2 = (k_2 < 4u) ? _e8 : _e4; return (word_2 >> ((k_2 & 3u) * 8u)) & 255u; } float decal_level( DecalEntryU e, metal::float3 world, constant Globals& G, constant DecalU& Decal ) { float _e5 = Decal.lod.x; metal::float4 _e8 = G.camera_pos; float _e15 = Decal.lod.y; float pixel_1 = _e5 * ((_e15 > 0.5) ? 1.0 : metal::length(world - _e8.xyz)); uint _e24 = Decal.counts.y; float top = static_cast(metal::max(_e24, 1u) - 1u); return metal::clamp(metal::log2(metal::max(pixel_1 / metal::max(e.axis_y.w, 0.000001), 1.0)), 0.0, top); } metal::float4 decal_texel( uint layer, metal::float2 uv, float level, bool live, metal::texture2d_array t_decals, metal::sampler s_decals ) { metal::float4 _e11 = t_decals.sample(s_decals, uv, static_cast(layer - 1u), metal::level(live ? 0.0 : level)); return _e11; } DecalSurface apply_decals( metal::float3 world_1, metal::float3 n_geo, DecalSurface surf, constant Globals& G, constant ObjectU& O, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { DecalSurface out_s = {}; uint k_3 = 0u; bool local_6 = {}; float fade = {}; out_s = surf; uint _e4 = decal_count(O); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { uint _e197 = k_3; k_3 = _e197 + 1u; } loop_init = false; uint _e7 = k_3; if (_e7 < _e4) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11, O); DecalEntryU e_2 = Decal.entries.inner[metal::min(unsigned(metal::min(_e12, 63u)), 63u)]; metal::float3 uvw = (e_2.to_local * metal::float4(world_1, 1.0)).xyz; if (metal::all(uvw >= metal::float3(0.0, -1.0, 0.0))) { local_6 = metal::all(uvw <= metal::float3(1.0)); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = metal::pow(1.0 - metal::abs(uvw.y), (uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y); if (e_2.fades.z > 0.0) { float _e55 = fade; fade = _e55 * metal::smoothstep(e_2.fades.z, 1.0, (metal::dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5); } metal::float2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1, G, Decal); uint live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { metal::float4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, (live_1 & DECAL_LIVE_ALBEDO) != 0u, t_decals, s_decals); metal::float3 _e84 = srgb_to_linear(_e82.xyz); metal::float4 a_2 = metal::float4(_e84, _e82.w) * e_2.modulate; float _e90 = fade; float alpha = a_2.w * _e90; metal::float3 _e94 = out_s.base; out_s.base = metal::mix(_e94, a_2.xyz, alpha * e_2.fades.w); if (e_2.layers.y > 0u) { metal::float4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, (live_1 & DECAL_LIVE_NORMAL) != 0u, t_decals, s_decals); float nx = (_e110.x * 2.0) - 1.0; float ny = 1.0 - (_e110.y * 2.0); float nz = metal::sqrt(metal::max(0.0, (1.0 - (nx * nx)) - (ny * ny))); metal::float3 dn = metal::normalize(((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny)); metal::float3 _e143 = out_s.normal; out_s.normal = metal::normalize(metal::mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { metal::float4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, (live_1 & DECAL_LIVE_ORM) != 0u, t_decals, s_decals); float _e159 = out_s.occlusion; out_s.occlusion = metal::mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = metal::mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = metal::mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { metal::float4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, (live_1 & DECAL_LIVE_EMISSION) != 0u, t_decals, s_decals); metal::float3 _e184 = out_s.emission; metal::float3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = _e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193); } } } float _e201 = out_s.roughness; out_s.roughness = metal::clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = metal::clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx( float nh, float a2_ ) { float d_12 = ((nh * nh) * (a2_ - 1.0)) + 1.0; return a2_ / ((PI * d_12) * d_12); } float v_smith( float nl, float nv, float a2_1 ) { float gv = nl * metal::sqrt(((nv * nv) * (1.0 - a2_1)) + a2_1); float g_l = nv * metal::sqrt(((nl * nl) * (1.0 - a2_1)) + a2_1); return 0.5 / metal::max(gv + g_l, 0.0001); } metal::float3 f_schlick( metal::float3 f0_, float vh ) { return f0_ + ((metal::float3(1.0) - f0_) * metal::pow(1.0 - vh, 5.0)); } metal::float3 light_specular( metal::float3 n, metal::float3 v_1, metal::float3 l, metal::float3 radiance, metal::float3 diffuse, metal::float3 f0_1, float a2_2, float specular ) { float nl_2 = metal::dot(n, l); if (nl_2 <= 0.0) { return metal::float3(0.0); } metal::float3 h = metal::normalize(l + v_1); float nh_1 = metal::max(metal::dot(n, h), 0.0); float vh_1 = metal::max(metal::dot(v_1, h), 0.0); float nv_3 = metal::max(metal::dot(n, v_1), 0.0001); metal::float3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); metal::float3 spec = (_e25 * _e26) * _e24; return (((diffuse / metal::float3(3.1415927)) + (spec * specular)) * radiance) * nl_2; } metal::float3 sky( metal::float3 dir, constant LitU& Lit ) { metal::float4 _e4 = Lit.up; float a_3 = metal::acos(metal::clamp(metal::dot(metal::normalize(dir), _e4.xyz), -1.0, 1.0)); if (a_3 <= 1.5707964) { float c_23 = 1.0 - (a_3 / 1.5707964); float k_13 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_23, 0.000001), 6.6666665), 0.0, 1.0); metal::float4 _e30 = Lit.sky_horizon; metal::float4 _e34 = Lit.sky_top; return metal::mix(_e30.xyz, _e34.xyz, k_13); } float c_24 = (a_3 - 1.5707964) / 1.5707964; float k_14 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_24, 0.000001), 50.0), 0.0, 1.0); metal::float4 _e54 = Lit.ground_horizon; metal::float4 _e58 = Lit.ground_bottom; return metal::mix(_e54.xyz, _e58.xyz, k_14); } metal::float3 filmic_curve( metal::float3 x ) { return (((x * ((0.88 * x) + metal::float3(0.1 * 0.6))) + metal::float3(0.2 * 0.01)) / ((x * ((0.88 * x) + metal::float3(0.6))) + metal::float3(0.2 * 0.3))) - metal::float3(0.01 / 0.3); } metal::float3 aces_curve( metal::float3 c_4, float white ) { metal::float3 x_2 = metal::float3(1.8 * metal::dot(metal::float3(0.59719, 0.35458, 0.04823), c_4), 1.8 * metal::dot(metal::float3(0.076, 0.90834, 0.01566), c_4), 1.8 * metal::dot(metal::float3(0.0284, 0.13383, 0.83777), c_4)); metal::float3 t_3 = ((x_2 * (x_2 + metal::float3(0.0245786))) - metal::float3(0.000090537)) / ((x_2 * ((0.983729 * x_2) + metal::float3(0.432951))) + metal::float3(0.238081)); metal::float3 o_5 = metal::float3(metal::dot(metal::float3(1.60475, -0.53108, -0.07367), t_3), metal::dot(metal::float3(-0.10208, 1.10813, -0.00605), t_3), metal::dot(metal::float3(-0.00327, -0.07276, 1.07602), t_3)); float w_1 = 1.8 * white; float wt = ((w_1 * (w_1 + 0.0245786)) - 0.000090537) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081); return o_5 / metal::float3(wt); } metal::float3 agx_curve( metal::float3 c_5 ) { metal::float3 v_2 = {}; metal::float3x3 inset = metal::float3x3(metal::float3(0.54490817, 0.14044006, 0.08882741), metal::float3(0.37377945, 0.7541096, 0.17887713), metal::float3(0.08138498, 0.10543358, 0.73225)); metal::float3x3 outset = metal::float3x3(metal::float3(1.964551, -0.29932243, -0.16436833), metal::float3(-0.85585845, 1.3264511, -0.23822464), metal::float3(-0.10886711, -0.02708402, 1.4026654)); v_2 = inset * metal::max(c_5, metal::float3(0.0000000002)); metal::float3 _e34 = v_2; v_2 = (metal::clamp(metal::log2(_e34), metal::float3(-12.473931), metal::float3(4.0260687)) - metal::float3(-12.473931)) / metal::float3(4.0260687 - -12.473931); metal::float3 _e44 = v_2; metal::float3 _e45 = v_2; metal::float3 x2_ = _e44 * _e45; metal::float3 x4_ = x2_ * x2_; metal::float3 _e48 = v_2; metal::float3 _e56 = v_2; metal::float3 _e64 = v_2; metal::float3 p_7 = (((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_); return outset * metal::pow(metal::max(p_7, metal::float3(0.0000000001)), metal::float3(2.4)); } metal::float3 tonemap( metal::float3 c_in, constant LitU& Lit ) { float _e4 = Lit.tone.x; metal::float3 c_25 = metal::max(c_in * _e4, metal::float3(0.0)); float white_1 = Lit.tone.y; uint mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return ((white_1 * c_25) + c_25) / ((c_25 * white_1) + metal::float3(white_1)); } if (mode == TONEMAP_FILMIC) { metal::float3 _e27 = filmic_curve(c_25); metal::float3 _e29 = filmic_curve(metal::float3(white_1)); return _e27 / _e29; } if (mode == TONEMAP_ACES) { metal::float3 _e33 = aces_curve(c_25, white_1); return _e33; } if (mode == TONEMAP_AGX) { metal::float3 _e36 = agx_curve(c_25); return _e36; } return c_25; } float emerge_hash( metal::float3 p_1 ) { metal::float3 q = {}; q = metal::fract(p_1 * 0.1031); metal::float3 _e5 = q; metal::float3 _e6 = q; metal::float3 _e7 = q; q = _e5 + metal::float3(metal::dot(_e6, _e7.zyx + metal::float3(31.32))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return metal::fract((_e16 + _e18) * _e21); } float emerge_noise( metal::float3 p_2 ) { metal::float3 i_13 = metal::floor(p_2); metal::float3 f = metal::fract(p_2); metal::float3 u_1 = (f * f) * (metal::float3(3.0) - (2.0 * f)); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 0.0)); float _e24 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 0.0)); float _e30 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 0.0)); float a_4 = metal::mix(metal::mix(_e10, _e16, u_1.x), metal::mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash(i_13 + metal::float3(0.0, 0.0, 1.0)); float _e46 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 1.0)); float _e54 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 1.0)); float _e60 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 1.0)); float b_2 = metal::mix(metal::mix(_e40, _e46, u_1.x), metal::mix(_e54, _e60, u_1.x), u_1.y); return metal::mix(a_4, b_2, u_1.z); } float emerge_reveal( metal::float3 world_2, metal::float2 pixel, constant ObjectU& O ) { float n_1 = {}; uint _e6 = O.extra.x; if (SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true) { return 1.0; } float e_3 = O.normal[0].w; metal::float3 w_2 = world_2 * EMERGE_SCALE; float _e21 = emerge_noise(w_2); float _e29 = emerge_noise((w_2 * 2.7) + metal::float3(17.1)); n_1 = metal::smoothstep(0.2, 0.8, (_e21 * 0.65) + (_e29 * 0.35)); if (pixel.x >= 0.0) { float ign = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(pixel), metal::float2(0.06711056, 0.00583715)))); float _e49 = n_1; n_1 = metal::clamp(_e49 + ((ign - 0.5) * EMERGE_DITHER), 0.0, 1.0); } float _e60 = n_1; return ((e_3 * 1.8) - _e60) / EMERGE_EDGE; } metal::float3 emerge_tint( metal::float3 c_6, float r, constant ObjectU& O, constant LitU& Lit ) { bool local_7 = {}; uint _e6 = O.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = r >= 1.0; } else { local_7 = true; } bool _e17 = local_7; if (SPEC_EMERGE ? _e17 : true) { return c_6; } uint _e23 = O.extra.w; metal::float3 _e26 = srgb_to_linear(metal::unpack_unorm4x8_to_float(_e23).xyz); metal::float3 _e27 = tonemap(_e26, Lit); return metal::mix(_e27, c_6, metal::smoothstep(0.0, 1.0, r)); } metal::float3 item_fade( metal::float3 c_7, constant ObjectU& O, constant LitU& Lit ) { uint _e5 = O.extra.x; if (SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true) { return c_7; } metal::float4 f_1 = O.normal[3]; metal::float3 _e17 = tonemap(f_1.xyz, Lit); return metal::mix(c_7, _e17, f_1.w); } metal::float3 sky_dir( metal::float3 d, constant SkyU& Sky ) { metal::float4x4 _e3 = Sky.to_sky; return metal::normalize((_e3 * metal::float4(d, 0.0)).xyz); } float sky_curve( float c_8, float curve ) { return metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_8, 0.000001), 1.0 / curve), 0.0, 1.0); } metal::float3 procedural_sky( metal::float3 d_1, constant SkyU& Sky ) { metal::float3 sky_1 = {}; uint i = 0u; float v_7 = metal::acos(metal::clamp(d_1.y, -1.0, 1.0)); metal::float4 _e8 = Sky.sky_horizon; metal::float4 _e12 = Sky.sky_top; float _e21 = Sky.sky_top.w; float _e22 = sky_curve(1.0 - (v_7 / 1.5707964), _e21); float _e27 = Sky.sky_horizon.w; sky_1 = metal::mix(_e8.xyz, _e12.xyz, _e22) * _e27; uint _e33 = Sky.flags.z; uint suns = metal::min(_e33, SKY_SUNS); uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { uint _e79 = i; i = _e79 + 1u; } loop_init_1 = false; uint _e38 = i; if (_e38 < suns) { } else { break; } { uint _e42 = i; SunU sun = Sky.suns.inner[metal::min(unsigned(_e42), 3u)]; float size = sun.direction.w; float a_5 = metal::acos(metal::clamp(metal::dot(sun.direction.xyz, d_1), -1.0, 1.0)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { float _e60 = Sky.sun.x; if (a_5 < _e60) { float _e66 = Sky.sun.x; float c2_ = (a_5 - size) / (_e66 - size); metal::float3 _e71 = sky_1; float _e75 = Sky.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = metal::mix(sun.color.xyz, _e71, _e76); } } } } metal::float4 _e83 = Sky.ground_horizon; metal::float4 _e87 = Sky.ground_bottom; float _e96 = Sky.ground_bottom.w; float _e97 = sky_curve((v_7 - 1.5707964) / 1.5707964, _e96); float _e102 = Sky.ground_horizon.w; metal::float3 ground = metal::mix(_e83.xyz, _e87.xyz, _e97) * _e102; metal::float3 _e104 = sky_1; float _e112 = Sky.sun.z; return ((d_1.y >= 0.0) ? _e104 : ground) * _e112; } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } int naga_mod(int lhs, int rhs) { int divisor = metal::select(rhs, 1, (lhs == (-2147483647 - 1) & rhs == -1) | (rhs == 0)); return lhs - (lhs / divisor) * divisor; } metal::float3 panorama( metal::float3 d_2, constant SkyU& Sky, metal::texture2d t_panorama, metal::sampler s_panorama ) { metal::float2 uv_4 = metal::float2(metal::fract(metal::atan2(d_2.x, -(d_2.z)) / 6.2831855), metal::acos(metal::clamp(d_2.y, -1.0, 1.0)) / PI); uint _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { metal::float4 _e27 = t_panorama.sample(s_panorama, uv_4, metal::level(0.0)); float _e32 = Sky.sun.z; return _e27.xyz * _e32; } metal::int2 size_1 = static_cast(metal::uint2(t_panorama.get_width(0), t_panorama.get_height(0))); int x_3 = naga_mod(as_type(as_type(naga_mod(naga_f2i32(metal::floor(uv_4.x * static_cast(size_1.x))), size_1.x)) + as_type(size_1.x)), size_1.x); int y = metal::clamp(naga_f2i32(metal::floor(uv_4.y * static_cast(size_1.y))), 0, as_type(as_type(size_1.y) - as_type(1))); uint clamped_lod_e64 = metal::min(uint(0), t_panorama.get_num_mip_levels() - 1); metal::float4 _e64 = t_panorama.read(metal::min(metal::uint2(metal::int2(x_3, y)), metal::uint2(t_panorama.get_width(clamped_lod_e64), t_panorama.get_height(clamped_lod_e64)) - 1), clamped_lod_e64); float _e69 = Sky.sun.z; return _e64.xyz * _e69; } metal::float3 sh_irradiance( metal::float3 n_2, constant SkyU& Sky ) { metal::float3 c_9 = {}; metal::float4 _e4 = Sky.sh.inner[0]; c_9 = _e4.xyz * 0.282095; metal::float3 _e9 = c_9; metal::float4 _e13 = Sky.sh.inner[1]; c_9 = _e9 + (_e13.xyz * (0.488603 * n_2.y)); metal::float3 _e20 = c_9; metal::float4 _e24 = Sky.sh.inner[2]; c_9 = _e20 + (_e24.xyz * (0.488603 * n_2.z)); metal::float3 _e31 = c_9; metal::float4 _e35 = Sky.sh.inner[3]; c_9 = _e31 + (_e35.xyz * (0.488603 * n_2.x)); metal::float3 _e42 = c_9; metal::float4 _e46 = Sky.sh.inner[4]; c_9 = _e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y)); metal::float3 _e55 = c_9; metal::float4 _e59 = Sky.sh.inner[5]; c_9 = _e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z)); metal::float3 _e68 = c_9; metal::float4 _e72 = Sky.sh.inner[6]; c_9 = _e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0))); metal::float3 _e85 = c_9; metal::float4 _e89 = Sky.sh.inner[7]; c_9 = _e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z)); metal::float3 _e98 = c_9; metal::float4 _e102 = Sky.sh.inner[8]; c_9 = _e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y)))); metal::float3 _e115 = c_9; return metal::max(_e115, metal::float3(0.0)); } metal::float3 radiance_1( metal::float3 d_3, float roughness, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { uint _e5 = Sky.flags.y; float top_1 = static_cast(metal::max(_e5, 1u) - 1u); metal::float4 _e14 = t_radiance.sample(s_radiance, d_3, metal::level(roughness * top_1)); return _e14.xyz; } metal::float2 env_brdf_approx( float roughness_1, float nv_1 ) { metal::float4 r_6 = (roughness_1 * metal::float4(-1.0, -0.0275, -0.572, 0.022)) + metal::float4(1.0, 0.0425, 1.04, -0.04); float a004_ = (metal::min(r_6.x * r_6.x, metal::exp2(-9.28 * nv_1)) * r_6.x) + r_6.y; return (metal::float2(-1.04, 1.04) * a004_) + r_6.zw; } float pow8_( float x_1 ) { float x2_1 = metal::max(x_1, 0.0) * metal::max(x_1, 0.0); float x4_1 = x2_1 * x2_1; return x4_1 * x4_1; } metal::float3 fog_sun_scatter( metal::float3 fc, metal::float3 dir_1, constant LitU& Lit, constant SkyU& Sky ) { metal::float3 c_10 = {}; uint k_4 = 0u; c_10 = fc; float _e6 = Sky.fog_color.w; if (_e6 > 0.001) { uint _e9 = pool_sun_count(Lit); uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { uint _e51 = k_4; k_4 = _e51 + 1u; } loop_init_2 = false; uint _e12 = k_4; if (_e12 < _e9) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14, Lit); uint _e21 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].info.x; if (_e21 == LIGHT_DIRECTIONAL) { metal::float3 _e24 = c_10; metal::float4 _e29 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].color; metal::float4 _e38 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].direction; float _e42 = pow8_(metal::dot(dir_1, -(_e38.xyz))); float _e47 = Sky.fog_color.w; c_10 = _e24 + (((_e29.xyz / metal::float3(3.1415927)) * _e42) * _e47); } } } } metal::float3 _e53 = c_10; return _e53; } metal::float3 sky_fog( metal::float3 c_11, metal::float3 dir_2, constant LitU& Lit, constant SkyU& Sky ) { metal::float4 _e4 = Sky.fog_color; float _e9 = Sky.fog_depth.w; metal::float3 _e11 = fog_sun_scatter(metal::mix(_e4.xyz, c_11, _e9), dir_2, Lit, Sky); float _e15 = Sky.fog.y; return metal::mix(c_11, _e11, _e15); } metal::float3 surface_fog( metal::float3 c_12, metal::float3 world_3, metal::float3 dir_3, constant Globals& G, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { float dist = {}; float amount = {}; metal::float3 fc_1 = {}; bool local_8 = {}; metal::float4x4 _e5 = G.view; float depth = -((_e5 * metal::float4(world_3, 1.0)).z); metal::float4 _e13 = G.camera_pos; dist = metal::distance(world_3, _e13.xyz); float _e20 = Sky.fog_origin.w; if (_e20 > 0.5) { float _e26 = Sky.fog_origin.x; dist = metal::max(depth - _e26, 0.0); } uint _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { float _e42 = Sky.fog_depth.x; float _e46 = Sky.fog_depth.y; float _e47 = dist; float z = metal::smoothstep(_e42, _e46, _e47); float _e54 = Sky.fog_depth.z; float _e63 = Sky.fog.x; amount = ((z > 0.0) ? metal::pow(metal::max(z, 0.000001), _e54) : 0.0) * _e63; } else { float _e65 = dist; float _e70 = Sky.fog.x; amount = 1.0 - metal::exp(metal::min(0.0, -(_e65) * _e70)); } float _e80 = Sky.fog.w; if (metal::abs(_e80) >= 0.0001) { metal::float4 _e86 = Lit.up; float y_1 = metal::dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = Sky.fog.z; float _e98 = Sky.fog.w; amount = metal::max(_e89, 1.0 - metal::exp(metal::min(0.0, (y_1 - _e93) * _e98))); } float _e106 = amount; amount = metal::clamp(_e106, 0.0, 1.0); metal::float4 _e112 = Sky.fog_color; fc_1 = _e112.xyz; uint _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { float _e129 = Sky.fog_depth.w; local_8 = _e129 > 0.0; } else { local_8 = false; } bool _e133 = local_8; if (SPEC_AMBIENT_SKY ? _e133 : false) { float _e139 = Sky.fog_origin.y; float _e144 = Sky.fog_origin.z; float _e148 = Sky.fog_origin.y; float t_4 = metal::clamp((depth - _e139) / metal::max(_e144 - _e148, 0.000001), 0.0, 1.0); uint _e159 = Sky.flags.y; float top_2 = static_cast(metal::max(_e159, 2u) - 1u); float rough = metal::mix(1.0 / top_2, 1.0, 1.0 - t_4); metal::float3 _e171 = fc_1; metal::float3 _e172 = sky_dir(dir_3, Sky); metal::float3 _e173 = radiance_1(_e172, rough, Sky, t_radiance, s_radiance); float _e177 = Sky.sun.w; float _e182 = Sky.fog_depth.w; fc_1 = metal::mix(_e171, _e173 * _e177, _e182); } metal::float3 _e184 = fc_1; metal::float3 _e185 = fog_sun_scatter(_e184, dir_3, Lit, Sky); fc_1 = _e185; metal::float3 _e186 = fc_1; float _e187 = amount; return metal::mix(c_12, _e186, _e187); } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::float2 fog_chord( uint k_5, metal::float3 o, metal::float3 d_4, float t_end_ray, constant FogU& Fog ) { metal::float2 r_1 = {}; float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].albedo.w; uint shape = naga_f2u32(_e9); float _e16 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].emission.w; float t_end_1 = metal::min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return metal::float2(0.0, t_end_1); } metal::float4 _e26 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].size; metal::float3 h_1 = _e26.xyz * 0.5; metal::float3 dd = metal::select(d_4, metal::float3(0.000000000001), metal::abs(d_4) < metal::float3(0.000000000001)); metal::float3 sa = (-(h_1) - o) / dd; metal::float3 sb = (h_1 - o) / dd; metal::float3 s_in = metal::min(sa, sb); metal::float3 s_out = metal::max(sa, sb); r_1 = metal::float2(metal::max(0.0, s_in.y), metal::min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = metal::float2(metal::max(metal::max(_e60, s_in.x), s_in.z), metal::min(metal::min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = metal::dot(d_4 / h_1, d_4 / h_1); b = metal::dot(o / h_1, d_4 / h_1); c_13 = metal::dot(o / h_1, o / h_1) - 1.0; } else { float rad = metal::min(h_1.x, h_1.z); float k_15 = (shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0; float w_3 = h_1.y - o.y; a = ((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y); b = ((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y); c_13 = ((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad)); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = (_e139 * _e140) - (_e142 * _e143); float _e146 = a; if (metal::abs(_e146) < 0.000000000001) { float _e150 = b; if (metal::abs(_e150) < 0.000000000001) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = (_e157 > 0.0) ? -1.0 : _e156; } else { float _e162 = b; if (_e162 > 0.0) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = metal::min(_e167, -(_e168) / (2.0 * _e170)); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = metal::max(_e177, -(_e178) / (2.0 * _e180)); } } } else { if (disc < 0.0) { float _e189 = r_1.y; float _e190 = a; r_1.y = (_e190 > 0.0) ? -1.0 : _e189; } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = metal::min((-(_e195) - metal::sqrt(disc)) / _e199, (-(_e201) + metal::sqrt(disc)) / _e205); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = metal::max((-(_e208) - metal::sqrt(disc)) / _e212, (-(_e214) + metal::sqrt(disc)) / _e218); float _e221 = a; if (_e221 > 0.0) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = metal::float2(metal::max(_e225, lo_2), metal::min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if (_e232 < metal::min(_e234, lo_2)) { float _e239 = r_1.y; r_1.y = metal::min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = metal::max(_e243, hi_2); } } } } metal::float2 _e245 = r_1; return _e245; } float fog_density( uint k_6, metal::float3 p_3, metal::float3 lp, constant FogU& Fog ) { float rho = {}; float sdf = 0.0; FogEntryU e_4 = Fog.entries.inner[metal::min(unsigned(k_6), 15u)]; metal::float4 _e14 = Fog.up; rho = e_4.material.x * metal::min(metal::exp2(-(e_4.material.y) * (metal::dot(p_3, _e14.xyz) - e_4.material.w)), 1.0); if (e_4.material.z > 0.0) { uint shape_1 = naga_f2u32(e_4.albedo.w); metal::float3 h_2 = e_4.size.xyz * 0.5; float rad_1 = metal::min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { float k0_ = metal::length(lp / h_2); sdf = (k0_ * (k0_ - 1.0)) / metal::max(metal::length(lp / (h_2 * h_2)), 0.000000000001); } else { if (shape_1 == FOG_SHAPE_BOX) { metal::float3 q_3 = metal::abs(lp) - h_2; sdf = metal::length(metal::max(q_3, metal::float3(0.0))) + metal::min(metal::max(q_3.x, metal::max(q_3.y, q_3.z)), 0.0); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { metal::float2 q_4 = metal::float2(metal::length(lp.xz) - rad_1, metal::abs(lp.y) - h_2.y); sdf = metal::min(metal::max(q_4.x, q_4.y), 0.0) + metal::length(metal::max(q_4, metal::float2(0.0))); } else { metal::float2 n_11 = metal::normalize(metal::float2(1.0 / metal::max(0.001, rad_1 * 0.5), 1.0 / metal::max(0.001, h_2.y))); sdf = metal::max(metal::dot(n_11, metal::float2(metal::length(lp.xz), lp.y - h_2.y)), -(h_2.y) - lp.y); } } } float _e116 = rho; float _e117 = sdf; rho = _e116 * metal::pow(metal::clamp((-2.0 * _e117) / e_4.size.w, 0.0, 1.0), e_4.material.z); } float _e130 = rho; return _e130; } float fog_falloff_depth( uint k_7, float a_1, float b_1, float t0_, float t1_, constant FogU& Fog ) { metal::float4 m_4 = Fog.entries.inner[metal::min(unsigned(k_7), 15u)].material; float hf = m_4.y; if ((hf * b_1) == 0.0) { return (m_4.x * (t1_ - t0_)) * metal::min(metal::exp2(-(hf) * a_1), 1.0); } float s_2 = metal::clamp(-(a_1) / b_1, t0_, t1_); float lo_3 = (b_1 > 0.0) ? s_2 : t0_; float hi_3 = (b_1 > 0.0) ? t1_ : s_2; float x_4 = ((hf * metal::abs(b_1)) * (hi_3 - lo_3)) * 0.6931472; float g = (x_4 < 0.01) ? (1.0 - (x_4 * (0.5 - (x_4 * (0.16666667 - (x_4 / 24.0)))))) : ((1.0 - metal::exp(-(x_4))) / x_4); float top_3 = metal::min(metal::exp2(-(hf) * metal::max(a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3)), 0.0)), 1.0); return m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g)); } float omni_attenuation( float d_5, float inv_range, float decay ) { float nd = {}; nd = d_5 * inv_range; float _e5 = nd; float _e6 = nd; nd = _e5 * _e6; float _e8 = nd; float _e9 = nd; nd = _e8 * _e9; float _e11 = nd; nd = metal::max(1.0 - _e11, 0.0); float _e16 = nd; float _e17 = nd; nd = _e16 * _e17; float _e19 = nd; return _e19 * metal::pow(metal::max(d_5, 0.0001), -(decay)); } metal::float3 fog_light( uint n_3, metal::float3 p_4, metal::float3 dir_4, constant LitU& Lit, constant FogU& Fog ) { metal::float3 sum = {}; uint k_8 = 0u; metal::float3 l_1 = {}; float atten = {}; metal::float4 _e5 = Fog.ambient; float _e10 = Fog.params.y; sum = _e5.xyz * _e10; float g_1 = Fog.params.x; metal::uint4 lights = Fog.entries.inner[metal::min(unsigned(n_3), 15u)].lights; uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { uint _e138 = k_8; k_8 = _e138 + 1u; } loop_init_3 = false; uint _e24 = k_8; if (_e24 < metal::min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = metal::min((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u, 63u); LightU li = Lit.lights.inner[metal::min(unsigned(i_14), 63u)]; l_1 = -(li.direction.xyz); atten = 1.0; if (li.info.x != LIGHT_DIRECTIONAL) { metal::float3 rel = li.position.xyz - p_4; l_1 = rel / metal::float3(metal::max(metal::length(rel), 0.000001)); float _e72 = omni_attenuation(metal::length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { metal::float3 _e77 = l_1; float rim = metal::max(0.0001, (1.0 - metal::max(metal::dot(-(_e77), li.direction.xyz), li.spot.x)) / metal::max(1.0 - li.spot.x, 0.000001)); float _e96 = atten; atten = _e96 * (1.0 - metal::pow(rim, li.spot.y)); } } metal::float3 _e108 = l_1; float q_5 = (1.0 + (g_1 * g_1)) - ((2.0 * g_1) * metal::dot(dir_4, _e108)); metal::float3 _e112 = sum; float _e115 = atten; float _e133 = Fog.light_fog.inner[metal::min(unsigned(i_14 >> 2u), 15u)][metal::min(unsigned(i_14 & 3u), 3u)]; sum = _e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * metal::sqrt(q_5))) * _e133)); } } metal::float3 _e140 = sum; return _e140; } metal::float4 fog_entry( uint k_9, metal::float3 o_1, metal::float3 d_6, metal::float2 ch, constant LitU& Lit, constant FogU& Fog ) { float split = {}; bool local_9 = {}; bool local_10 = {}; metal::float3 q_1 = metal::float3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = {}; bool local_12 = {}; FogEntryU e_5 = Fog.entries.inner[metal::min(unsigned(k_9), 15u)]; metal::float3 lo_4 = (e_5.to_local * metal::float4(o_1, 1.0)).xyz; metal::float3 ld = (e_5.to_local * metal::float4(d_6, 0.0)).xyz; metal::float4 _e20 = Fog.up; float a_6 = metal::dot(o_1, _e20.xyz) - e_5.material.w; metal::float4 _e28 = Fog.up; float b_3 = metal::dot(d_6, _e28.xyz); bool edge = e_5.material.z > 0.0; split = (ch.x + ch.y) * 0.5; if (e_5.material.y > 0.0) { local_9 = (-(a_6) / b_3) > ch.x; } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = (-(a_6) / b_3) < ch.y; } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = -(a_6) / b_3; } uint2 loop_bound_4 = uint2(4294967295u); bool loop_init_4 = true; while(true) { if (metal::all(loop_bound_4 == uint2(0u))) { break; } loop_bound_4 -= uint2(loop_bound_4.y == 0u, 1u); if (!loop_init_4) { uint _e160 = i_1; i_1 = _e160 + 1u; } loop_init_4 = false; uint _e70 = i_1; if (_e70 < (edge ? 12u : 4u)) { } else { break; } { uint _e75 = i_1; uint j = _e75 & 3u; if (!((j == 0u))) { local_11 = j == 3u; } else { local_11 = true; } bool _e88 = local_11; float x_5 = _e88 ? FOG_GL_X0_ : FOG_GL_X1_; if (!((j == 0u))) { local_12 = j == 3u; } else { local_12 = true; } bool _e100 = local_12; float w_4 = _e100 ? FOG_GL_W0_ : FOG_GL_W1_; float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; metal::float2 seg = (_e112 < 4u) ? ch : ((_e108 < 8u) ? metal::float2(ch.x, _e106) : metal::float2(_e102, ch.y)); float half_len = (seg.y - seg.x) * 0.5; float t_5 = ((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_5) : x_5)); metal::float3 p_8 = o_1 + (d_6 * t_5); float _e136 = fog_density(k_9, p_8, lo_4 + (ld * t_5), Fog); uint _e137 = i_1; if (_e137 < 4u) { metal::float3 _e140 = q_1; metal::float3 _e143 = fog_light(k_9, p_8, d_6, Lit, Fog); q_1 = _e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * metal::clamp(_e136, 0.0, 1.0))); } else { float _e155 = tau; tau = _e155 + ((w_4 * half_len) * _e136); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y, Fog); tau = _e165; } metal::float3 _e166 = q_1; float _e167 = tau; return metal::float4(_e166, _e167); } metal::float3 fog_integrate( metal::float3 c_14, metal::float3 o_2, metal::float3 d_7, float t_end, uint list, constant LitU& Lit, constant FogU& Fog ) { type_28 at = {}; type_29 chords = {}; uint m = 0u; uint i_2 = 0u; bool local_13 = {}; type_30 parts = {}; uint i_3 = 0u; uint n_4 = 0u; float avail = {}; uint i_4 = {}; uint i_5 = {}; metal::float3 q_2 = metal::float3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all = list >= FOG_LIST_ALL; uint2 loop_bound_5 = uint2(4294967295u); bool loop_init_5 = true; while(true) { if (metal::all(loop_bound_5 == uint2(0u))) { break; } loop_bound_5 -= uint2(loop_bound_5.y == 0u, 1u); if (!loop_init_5) { uint _e72 = i_2; i_2 = _e72 + 1u; } loop_init_5 = false; uint _e13 = i_2; uint _e18 = Fog.counts.x; if (_e13 < (all ? metal::min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u)) { } else { break; } { uint _e23 = i_2; uint byte = (list >> ((_e23 & 3u) * 8u)) & 127u; if (!(all)) { local_13 = byte == 0u; } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = all ? _e42 : (metal::min(byte, MAX_FRAME_FOG_VOLUMES) - 1u); metal::float4x4 to_local = Fog.entries.inner[metal::min(unsigned(k_16), 15u)].to_local; metal::float2 _e57 = fog_chord(k_16, (to_local * metal::float4(o_2, 1.0)).xyz, (to_local * metal::float4(d_7, 0.0)).xyz, t_end, Fog); if (_e57.y > _e57.x) { uint _e61 = m; at.inner[metal::min(unsigned(_e61), 3u)] = k_16; uint _e63 = m; chords.inner[metal::min(unsigned(_e63), 3u)] = _e57; uint _e66 = m; m = _e66 + 1u; uint _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } } uint2 loop_bound_6 = uint2(4294967295u); bool loop_init_6 = true; while(true) { if (metal::all(loop_bound_6 == uint2(0u))) { break; } loop_bound_6 -= uint2(loop_bound_6.y == 0u, 1u); if (!loop_init_6) { uint _e90 = i_3; i_3 = _e90 + 1u; } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if (_e77 < _e78) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at.inner[metal::min(unsigned(_e82), 3u)]; uint _e85 = i_3; metal::float2 _e87 = chords.inner[metal::min(unsigned(_e85), 3u)]; metal::float4 _e88 = fog_entry(_e84, o_2, d_7, _e87, Lit, Fog); parts.inner[metal::min(unsigned(_e80), 3u)] = _e88; } } uint2 loop_bound_7 = uint2(4294967295u); bool loop_init_7 = true; while(true) { if (metal::all(loop_bound_7 == uint2(0u))) { break; } loop_bound_7 -= uint2(loop_bound_7.y == 0u, 1u); if (!loop_init_7) { uint _e221 = n_4; n_4 = _e221 + 1u; } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if (_e94 < _e95) { } else { break; } { uint _e97 = n_4; float _e100 = parts.inner[metal::min(unsigned(_e97), 3u)].w; if (_e100 < 0.0) { avail = 0.0; i_4 = 0u; uint2 loop_bound_8 = uint2(4294967295u); bool loop_init_8 = true; while(true) { if (metal::all(loop_bound_8 == uint2(0u))) { break; } loop_bound_8 -= uint2(loop_bound_8.y == 0u, 1u); if (!loop_init_8) { uint _e153 = i_4; i_4 = _e153 + 1u; } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if (_e107 < _e108) { } else { break; } { uint _e110 = i_4; float _e113 = chords.inner[metal::min(unsigned(_e110), 3u)].y; uint _e114 = n_4; float _e117 = chords.inner[metal::min(unsigned(_e114), 3u)].y; uint _e119 = i_4; float _e122 = chords.inner[metal::min(unsigned(_e119), 3u)].x; uint _e123 = n_4; float _e126 = chords.inner[metal::min(unsigned(_e123), 3u)].x; uint _e131 = i_4; float _e134 = chords.inner[metal::min(unsigned(_e131), 3u)].y; uint _e135 = i_4; float _e138 = chords.inner[metal::min(unsigned(_e135), 3u)].x; float share = metal::max(metal::min(_e113, _e117) - metal::max(_e122, _e126), 0.0) / metal::max(_e134 - _e138, 0.000001); float _e143 = avail; uint _e144 = i_4; float _e147 = parts.inner[metal::min(unsigned(_e144), 3u)].w; avail = _e143 + (metal::max(_e147, 0.0) * share); } } uint _e155 = n_4; float _e158 = parts.inner[metal::min(unsigned(_e155), 3u)].w; float _e160 = avail; float f_2 = metal::min(-(_e158) / metal::max(_e160, 0.000000000001), 1.0); i_5 = 0u; uint2 loop_bound_9 = uint2(4294967295u); bool loop_init_9 = true; while(true) { if (metal::all(loop_bound_9 == uint2(0u))) { break; } loop_bound_9 -= uint2(loop_bound_9.y == 0u, 1u); if (!loop_init_9) { uint _e218 = i_5; i_5 = _e218 + 1u; } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if (_e168 < _e169) { } else { break; } { uint _e171 = i_5; float _e174 = parts.inner[metal::min(unsigned(_e171), 3u)].w; if (_e174 > 0.0) { uint _e177 = i_5; float _e180 = chords.inner[metal::min(unsigned(_e177), 3u)].y; uint _e181 = n_4; float _e184 = chords.inner[metal::min(unsigned(_e181), 3u)].y; uint _e186 = i_5; float _e189 = chords.inner[metal::min(unsigned(_e186), 3u)].x; uint _e190 = n_4; float _e193 = chords.inner[metal::min(unsigned(_e190), 3u)].x; uint _e198 = i_5; float _e201 = chords.inner[metal::min(unsigned(_e198), 3u)].y; uint _e202 = i_5; float _e205 = chords.inner[metal::min(unsigned(_e202), 3u)].x; float share_1 = metal::max(metal::min(_e180, _e184) - metal::max(_e189, _e193), 0.0) / metal::max(_e201 - _e205, 0.000001); uint _e210 = i_5; metal::float4 _e212 = parts.inner[metal::min(unsigned(_e210), 3u)]; parts.inner[metal::min(unsigned(_e210), 3u)] = _e212 * (1.0 - (share_1 * f_2)); } } } } } } uint2 loop_bound_10 = uint2(4294967295u); bool loop_init_10 = true; while(true) { if (metal::all(loop_bound_10 == uint2(0u))) { break; } loop_bound_10 -= uint2(loop_bound_10.y == 0u, 1u); if (!loop_init_10) { uint _e252 = i_6; i_6 = _e252 + 1u; } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if (_e230 < _e231) { } else { break; } { uint _e233 = i_6; float _e236 = parts.inner[metal::min(unsigned(_e233), 3u)].w; if (_e236 > 0.0) { metal::float3 _e239 = q_2; uint _e240 = i_6; metal::float4 _e242 = parts.inner[metal::min(unsigned(_e240), 3u)]; q_2 = _e239 + _e242.xyz; float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts.inner[metal::min(unsigned(_e246), 3u)].w; tau_1 = _e245 + _e249; } } } float _e254 = tau_1; float t_6 = metal::exp(-(_e254)); metal::float3 _e258 = q_2; float _e261 = tau_1; return (c_14 * t_6) + (_e258 * ((1.0 - t_6) / metal::max(_e261, 0.00001))); } metal::float3 fog_volumes( metal::float3 c_15, metal::float3 world_4, uint list_1, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_6 = (_e36 > 0.5) ? (world_4 - (back * (_e26 * metal::float4(world_4, 1.0)).z)) : _e22.xyz; float len = metal::length(world_4 - o_6); metal::float3 _e47 = fog_integrate(c_15, o_6, (world_4 - o_6) / metal::float3(metal::max(len, 0.000001)), len, list_1, Lit, Fog); return (len > 0.0) ? _e47 : c_15; } metal::float3 sky_fog_volumes( metal::float3 c_16, metal::float3 near_point, metal::float3 dir_5, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back_1 = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_7 = (_e36 > 0.5) ? (near_point - (back_1 * (_e26 * metal::float4(near_point, 1.0)).z)) : _e22.xyz; uint _e44 = Fog.counts.y; metal::float3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44, Lit, Fog); float _e49 = Fog.params.z; return metal::mix(c_16, _e45, _e49); } float shadow_factor( uint i_7, metal::float3 world_5, metal::float3 n_geo_1, metal::float3 l_2, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow ) { uint part = 0u; uint c_17 = 0u; bool local_14 = {}; bool local_15 = {}; bool local_16 = {}; float vis = 0.0; int dy = -1; int dx = {}; uint kind = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.x; metal::float4 _e14 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].position; metal::float3 light_pos = _e14.xyz; uint _e21 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.w; uint slot = metal::min(_e21, 15u); metal::float4 params = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].params; uint first = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.x; uint _e40 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.y; uint count = metal::max(_e40, 1u); metal::float4x4 _e45 = G.view; float view_depth = -((_e45 * metal::float4(world_5, 1.0)).z); if (kind == LIGHT_DIRECTIONAL) { float _e60 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade.y; if (view_depth > _e60) { return 1.0; } part = count - 1u; uint2 loop_bound_11 = uint2(4294967295u); bool loop_init_11 = true; while(true) { if (metal::all(loop_bound_11 == uint2(0u))) { break; } loop_bound_11 -= uint2(loop_bound_11.y == 0u, 1u); if (!loop_init_11) { uint _e79 = c_17; c_17 = _e79 + 1u; } loop_init_11 = false; uint _e67 = c_17; if (_e67 < count) { } else { break; } { uint _e73 = c_17; float _e75 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].splits[metal::min(unsigned(_e73), 3u)]; if (view_depth <= _e75) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; metal::float4 texel = Shadow.tiles.inner[metal::min(unsigned(metal::min(first + metal::min(_e83, count - 1u), 15u)), 15u)].texel; float t_7 = texel.x + (texel.y * metal::distance(world_5, light_pos)); metal::float3 p_9 = (world_5 + (n_geo_1 * ((params.y * metal::max(params.z, 1.0)) * t_7))) + (l_2 * (params.x * t_7)); if (kind == LIGHT_OMNI) { metal::float3 d_13 = p_9 - light_pos; metal::float3 a_7 = metal::abs(d_13); if (a_7.x >= a_7.y) { local_14 = a_7.x >= a_7.z; } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = (d_13.x >= 0.0) ? 0u : 1u; } else { if (a_7.y >= a_7.z) { part = (d_13.y >= 0.0) ? 2u : 3u; } else { part = (d_13.z >= 0.0) ? 4u : 5u; } } } uint _e145 = part; uint tile = metal::min(first + metal::min(_e145, count - 1u), 15u); metal::float4x4 _e156 = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].view_proj; metal::float4 clip_1 = _e156 * metal::float4(p_9, 1.0); if (clip_1.w <= 0.0) { return 1.0; } metal::float3 ndc = clip_1.xyz / metal::float3(clip_1.w); if (!((metal::abs(ndc.x) > 1.0))) { local_15 = metal::abs(ndc.y) > 1.0; } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = ndc.z > 1.0; } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } metal::float4 rect = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].rect; metal::float2 uv_5 = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); metal::float2 auv = rect.xy + (uv_5 * rect.zw); float texel_uv = Shadow.atlas.x; metal::float2 lo_5 = rect.xy + metal::float2(0.5 * texel_uv); metal::float2 hi_4 = (rect.xy + rect.zw) - metal::float2(0.5 * texel_uv); float r_7 = params.z; if (r_7 <= 0.0) { float _e235 = t_shadow.sample_compare(s_shadow, metal::clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { float spread = r_7 * texel_uv; uint2 loop_bound_12 = uint2(4294967295u); bool loop_init_12 = true; while(true) { if (metal::all(loop_bound_12 == uint2(0u))) { break; } loop_bound_12 -= uint2(loop_bound_12.y == 0u, 1u); if (!loop_init_12) { int _e265 = dy; dy = as_type(as_type(_e265) + as_type(1)); } loop_init_12 = false; int _e239 = dy; if (_e239 <= 1) { } else { break; } { dx = -1; uint2 loop_bound_13 = uint2(4294967295u); bool loop_init_13 = true; while(true) { if (metal::all(loop_bound_13 == uint2(0u))) { break; } loop_bound_13 -= uint2(loop_bound_13.y == 0u, 1u); if (!loop_init_13) { int _e262 = dx; dx = as_type(as_type(_e262) + as_type(1)); } loop_init_13 = false; int _e244 = dx; if (_e244 <= 1) { } else { break; } { int _e247 = dx; int _e249 = dy; metal::float2 tap = metal::clamp(auv + (metal::float2(static_cast(_e247), static_cast(_e249)) * spread), lo_5, hi_4); float _e255 = vis; float _e259 = t_shadow.sample_compare(s_shadow, tap, ndc.z); vis = _e255 + _e259; } } } } float _e267 = vis; vis = _e267 / 9.0; } if (kind == LIGHT_DIRECTIONAL) { metal::float4 fade_1 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade; float _e277 = vis; vis = metal::mix(_e277, 1.0, metal::smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return metal::mix(1.0, _e283, params.w); } metal::float3 probe_light( metal::float3 n_5, constant ObjectU& O ) { float _e5 = O.gi.inner[0].x; metal::float4 _e9 = O.gi.inner[0]; float _e17 = O.gi.inner[1].x; metal::float4 _e21 = O.gi.inner[1]; float _e29 = O.gi.inner[2].x; metal::float4 _e33 = O.gi.inner[2]; return metal::max(metal::float3(_e5 + metal::dot(_e9.yzw, n_5), _e17 + metal::dot(_e21.yzw, n_5), _e29 + metal::dot(_e33.yzw, n_5)), metal::float3(0.0)); } metal::float4 gi_diffuse( metal::float3 n_6, bool baked, metal::float3 baked_light, constant ObjectU& O ) { if (baked) { return metal::float4(baked_light, 1.0); } uint _e9 = O.extra.x; if (SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false) { metal::float3 _e16 = probe_light(n_6, O); return metal::float4(_e16, 1.0); } return metal::float4(0.0); } metal::float3 probe_face_uv( metal::float3 d_8 ) { float face = {}; float ma = {}; float sc = {}; float tc = {}; bool local_17 = {}; metal::float3 a_8 = metal::abs(d_8); if (a_8.x >= a_8.y) { local_17 = a_8.x >= a_8.z; } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if (d_8.x >= 0.0) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0.0) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0.0) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return metal::float3(_e56, ((_e57 / _e58) + 1.0) * 0.5, ((_e64 / _e65) + 1.0) * 0.5); } metal::float3 probe_texel( uint row, metal::float3 fuv, uint level_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { uint _e6 = Probe.counts.z; float n_12 = static_cast(metal::max(_e6 >> level_1, 1u)); float lo_6 = 0.5 / n_12; float u_2 = metal::clamp(fuv.y, lo_6, 1.0 - lo_6); float v_8 = metal::clamp(fuv.z, lo_6, 1.0 - lo_6); metal::float2 uv_6 = metal::float2((fuv.x + u_2) / 6.0, (static_cast(row) + v_8) / 8.0); metal::float4 _e33 = t_probes.sample(s_probes, uv_6, metal::level(static_cast(level_1))); return _e33.xyz; } metal::float3 probe_sample( uint row_1, metal::float3 d_9, float lod, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { bool local_18 = {}; uint _e6 = Probe.counts.y; uint levels = metal::max(_e6, 1u); float l_5 = metal::clamp(lod, 0.0, static_cast(levels - 1u)); uint m0_ = naga_f2u32(l_5); float t_8 = l_5 - static_cast(m0_); metal::float3 _e17 = probe_face_uv(d_9); metal::float3 _e18 = probe_texel(row_1, _e17, m0_, Probe, t_probes, s_probes); if (!((t_8 <= 0.0))) { local_18 = (m0_ + 1u) >= levels; } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } metal::float3 _e34 = probe_texel(row_1, _e17, m0_ + 1u, Probe, t_probes, s_probes); return (_e18 * (1.0 - t_8)) + (_e34 * t_8); } float probe_weight( ProbeEntryU p_5, metal::float3 world_6 ) { metal::float3 l_6 = (p_5.to_local * metal::float4(world_6, 1.0)).xyz; metal::float3 e_6 = p_5.extents.xyz; float d_14 = metal::min(e_6.x - metal::abs(l_6.x), metal::min(e_6.y - metal::abs(l_6.y), e_6.z - metal::abs(l_6.z))); if (d_14 < 0.0) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return metal::min(d_14 / p_5.extents.w, 1.0); } float probe_exit( float o_3, float d_10, float e_1 ) { if (d_10 > 0.0) { return (e_1 - o_3) / d_10; } if (d_10 < 0.0) { return (-(e_1) - o_3) / d_10; } return 300000000000000000000000000000000000000.0; } metal::float3 probe_lookup( ProbeEntryU p_6, metal::float3 world_7, metal::float3 dir_6 ) { metal::float3 d_15 = (p_6.to_local * metal::float4(dir_6, 0.0)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } metal::float3 o_8 = (p_6.to_local * metal::float4(world_7, 1.0)).xyz; metal::float3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_9 = metal::max(metal::min(_e24, metal::min(_e28, _e32)), 0.0); return (o_8 + (d_15 * t_9)) - p_6.offset.xyz; } metal::float4 probe_reflection( metal::float3 world_8, metal::float3 r_2, float roughness_2, uint probes, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc = metal::float3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = Probe.counts.x; uint count_1 = metal::min(_e12, MAX_PROBES); uint _e18 = Probe.counts.y; float lod_1 = roughness_2 * static_cast(metal::max(_e18, 1u) - 1u); uint2 loop_bound_14 = uint2(4294967295u); bool loop_init_14 = true; while(true) { if (metal::all(loop_bound_14 == uint2(0u))) { break; } loop_bound_14 -= uint2(loop_bound_14.y == 0u, 1u); if (!loop_init_14) { uint _e57 = i_8; i_8 = _e57 + 1u; } loop_init_14 = false; uint _e27 = i_8; if (_e27 < count_1) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = Probe.probes.inner[metal::min(unsigned(_e31), 7u)]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } float _e41 = probe_weight(p_10, world_8); if (_e41 <= 0.0) { continue; } metal::float3 _e44 = acc; metal::float3 _e47 = probe_lookup(p_10, world_8, r_2); metal::float3 _e48 = probe_sample(p_10.info.w, _e47, lod_1, Probe, t_probes, s_probes); acc = _e44 + ((_e48 * p_10.offset.w) * _e41); float _e54 = w_sum; w_sum = _e54 + _e41; } } float _e59 = w_sum; if (_e59 > 1.0) { metal::float3 _e62 = acc; float _e63 = w_sum; acc = _e62 / metal::float3(_e63); w_sum = 1.0; } metal::float3 _e67 = acc; float _e68 = w_sum; return metal::float4(_e67, _e68); } metal::float4 probe_ambient( metal::float3 world_9, metal::float3 n_7, uint probes_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc_1 = metal::float3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = {}; metal::float3 c_18 = {}; uint _e11 = Probe.counts.x; uint count_2 = metal::min(_e11, MAX_PROBES); uint _e17 = Probe.counts.y; uint last = metal::max(_e17, 1u) - 1u; uint2 loop_bound_15 = uint2(4294967295u); bool loop_init_15 = true; while(true) { if (metal::all(loop_bound_15 == uint2(0u))) { break; } loop_bound_15 -= uint2(loop_bound_15.y == 0u, 1u); if (!loop_init_15) { uint _e73 = i_9; i_9 = _e73 + 1u; } loop_init_15 = false; uint _e24 = i_9; if (_e24 < count_2) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = Probe.probes.inner[metal::min(unsigned(_e28), 7u)]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = p_11.info.y == PROBE_AMBIENT_DISABLED; } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if (_e47 <= 0.0) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { metal::float3 _e64 = probe_face_uv((p_11.to_local * metal::float4(n_7, 0.0)).xyz); metal::float3 _e65 = probe_texel(p_11.info.w, _e64, last, Probe, t_probes, s_probes); c_18 = _e65; } metal::float3 _e66 = acc_1; metal::float3 _e67 = c_18; acc_1 = _e66 + (_e67 * _e47); float _e70 = w_sum_1; w_sum_1 = _e70 + _e47; } } float _e75 = w_sum_1; if (_e75 > 1.0) { metal::float3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = _e78 / metal::float3(_e79); w_sum_1 = 1.0; } metal::float3 _e83 = acc_1; float _e84 = w_sum_1; return metal::float4(_e83, _e84); } metal::float4 skin_row( uint k_10, uint r_3, constant SkinU& Skin ) { metal::float4 _e10 = Skin.rows.inner[metal::min(unsigned((metal::min(k_10, 254u) * 3u) + r_3), 764u)]; return _e10; } SkinRows skin_rows( SkinIn s_1, constant SkinU& Skin ) { SkinRows m_1 = {}; metal::uint4 j_1 = s_1.joints; metal::float4 w_5 = s_1.weights; metal::float4 _e8 = skin_row(s_1.joints.x, 0u, Skin); metal::float4 _e13 = skin_row(s_1.joints.y, 0u, Skin); metal::float4 _e19 = skin_row(s_1.joints.z, 0u, Skin); metal::float4 _e25 = skin_row(s_1.joints.w, 0u, Skin); m_1.r0_ = (((s_1.weights.x * _e8) + (s_1.weights.y * _e13)) + (s_1.weights.z * _e19)) + (s_1.weights.w * _e25); metal::float4 _e32 = skin_row(s_1.joints.x, 1u, Skin); metal::float4 _e37 = skin_row(s_1.joints.y, 1u, Skin); metal::float4 _e43 = skin_row(s_1.joints.z, 1u, Skin); metal::float4 _e49 = skin_row(s_1.joints.w, 1u, Skin); m_1.r1_ = (((s_1.weights.x * _e32) + (s_1.weights.y * _e37)) + (s_1.weights.z * _e43)) + (s_1.weights.w * _e49); metal::float4 _e56 = skin_row(s_1.joints.x, 2u, Skin); metal::float4 _e61 = skin_row(s_1.joints.y, 2u, Skin); metal::float4 _e67 = skin_row(s_1.joints.z, 2u, Skin); metal::float4 _e73 = skin_row(s_1.joints.w, 2u, Skin); m_1.r2_ = (((s_1.weights.x * _e56) + (s_1.weights.y * _e61)) + (s_1.weights.z * _e67)) + (s_1.weights.w * _e73); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings( thread CustomOut& o_4, thread metal::float3& dir_7 ) { metal::float3 _e3 = dir_7; o_4.hedra_v0_ = metal::float4(_e3, 0.0); return; } void hedra_load_varyings( CustomOut i_10, thread metal::float3& dir_7 ) { dir_7 = i_10.hedra_v0_.xyz; return; } void light( ) { return; } metal::float3 scene_to_frame( metal::float3 v_3 ) { return metal::float3(v_3.x, -(v_3.z), v_3.y); } void vertex_( thread metal::float3& VERTEX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& dir_7 ) { metal::float3 _e2 = VERTEX; metal::float3 _e4 = NODE_POSITION_WORLD; dir_7 = _e2 - _e4; return; } void fragment_( thread metal::float3& ALBEDO, constant HedraParams& hedra_p, metal::texture2d horizon_texture, metal::sampler SAMPLER_NEAREST_REPEAT, thread metal::float3& dir_7 ) { float t = {}; metal::float3 col = {}; bool local_20 = {}; bool local_21 = {}; metal::float3 _e1 = dir_7; metal::float3 d_16 = metal::normalize(_e1); float up = d_16.z; float _e9 = hedra_p.curve; t = metal::pow(metal::clamp(up, 0.0, 1.0), 1.0 / _e9); float _e16 = hedra_p.bands; if (_e16 >= 2.0) { float _e19 = t; float _e22 = hedra_p.bands; float _e27 = hedra_p.bands; t = metal::floor(_e19 * _e22) / _e27; } metal::float3 _e31 = hedra_p.horizon; metal::float3 _e34 = hedra_p.zenith; float _e35 = t; col = metal::mix(_e31, _e34, _e35); if (up < 0.0) { metal::float3 _e42 = hedra_p.horizon; metal::float3 _e45 = hedra_p.below; col = metal::mix(_e42, _e45, metal::clamp(-(up) * 8.0, 0.0, 1.0)); } metal::float3 _e55 = hedra_p.sun_direction; metal::float3 _e56 = scene_to_frame(_e55); metal::float3 sun_1 = metal::normalize(_e56); float angle = ((metal::acos(metal::clamp(metal::dot(d_16, sun_1), -1.0, 1.0))) * 57.295779513082322865); float _e66 = hedra_p.halo_strength; float _e69 = hedra_p.halo_size; float halo = _e66 * metal::pow(metal::clamp(1.0 - (angle / metal::max(_e69, 0.001)), 0.0, 1.0), 2.0); metal::float3 _e81 = col; metal::float3 _e84 = hedra_p.sun_color; col = _e81 + (_e84 * halo); float _e89 = hedra_p.sun_size; if (angle < _e89) { metal::float3 _e93 = hedra_p.sun_color; col = _e93 * 1.4; } float elevation = ((metal::asin(metal::clamp(up, -1.0, 1.0))) * 57.295779513082322865); float _e104 = hedra_p.horizon_band.x; float _e109 = hedra_p.horizon_band.y; float _e113 = hedra_p.horizon_band.x; float v_9 = (elevation - _e104) / metal::max(_e109 - _e113, 0.001); float _e127 = hedra_p.horizon_repeat; float u_3 = ((metal::atan2(d_16.y, d_16.x) / TAU) + 0.5) * _e127; metal::float4 strip = horizon_texture.sample(SAMPLER_NEAREST_REPEAT, metal::float2(u_3, 1.0 - metal::clamp(v_9, 0.0, 1.0))); if (v_9 >= 0.0) { local_20 = v_9 <= 1.0; } else { local_20 = false; } bool _e145 = local_20; if (_e145) { local_21 = strip.w >= 0.5; } else { local_21 = false; } bool _e152 = local_21; if (_e152) { metal::float3 _e156 = hedra_p.horizon_tint; col = strip.xyz * _e156; } metal::float3 _e159 = col; ALBEDO = _e159; return; } metal::float3x3 hedra_mat3_( metal::float4x4 m_2 ) { return metal::float3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } metal::float4x4 hedra_rigid_inverse( metal::float4x4 m_3 ) { metal::float3x3 _e1 = hedra_mat3_(m_3); metal::float3x3 r_8 = metal::transpose(_e1); metal::float3 t_10 = -((r_8 * m_3[3].xyz)); return metal::float4x4(metal::float4(r_8[0], 0.0), metal::float4(r_8[1], 0.0), metal::float4(r_8[2], 0.0), metal::float4(t_10, 1.0)); } metal::float4x4 hedra_inv_projection( constant Globals& G ) { metal::float4 _e2 = G.wire_color; metal::float4 _e5 = G.select_color; metal::float4 _e8 = G.active_color; metal::float4 _e11 = G.grid; return metal::float4x4(_e2, _e5, _e8, _e11); } metal::float2 hedra_godot_uv( metal::float2 uv_1 ) { return metal::float2(uv_1.x, 1.0 - uv_1.y); } bool hedra_transparent( ) { bool local_22 = {}; bool local_23 = {}; if (HEDRA_ALPHA) { local_22 = true; } else { local_22 = false; } bool _e5 = local_22; if (!(_e5)) { local_23 = false; } else { local_23 = true; } bool _e11 = local_23; return _e11; } bool hedra_mirrored( uint flags_1, constant ObjectU& O ) { uint _e4 = O.extra.x; return ((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u); } void hedra_matrices( metal::float4x4 model, metal::float3x3 normal, constant Globals& G, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD ) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; metal::float4x4 _e7 = G.view; metal::float4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; metal::float4x4 _e10 = hedra_inv_projection(G); INV_PROJECTION_MATRIX = _e10; metal::float4x4 _e14 = G.view; MODELVIEW_MATRIX = _e14 * model; metal::float4x4 _e19 = G.view; metal::float3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = _e20 * normal; NODE_POSITION_WORLD = model[3].xyz; metal::float4x4 _e28 = G.view; NODE_POSITION_VIEW = (_e28 * metal::float4(model[3].xyz, 1.0)).xyz; metal::float4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex( metal::float3 pos, metal::float3 normal_1, metal::float4 tangent, metal::float2 uv_2, metal::float2 uv2_, metal::float4 color, uint vid_3, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& VERTEX_ID, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX ) { bool local_24 = {}; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = metal::cross(normal_1, tangent.xyz) * tangent.w; metal::float2 _e17 = hedra_godot_uv(uv_2); UV = _e17; metal::float2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = static_cast(vid_3); POSITION = metal::float4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_24 = true; } else { local_24 = false; } bool _e31 = local_24; if (_e31) { metal::float4x4 _e34 = MODEL_MATRIX; metal::float3 _e36 = VERTEX; VERTEX = (_e34 * metal::float4(_e36, 1.0)).xyz; metal::float3x3 _e43 = MODEL_NORMAL_MATRIX; metal::float3 _e45 = NORMAL; NORMAL = _e43 * _e45; metal::float3x3 _e49 = MODEL_NORMAL_MATRIX; metal::float3 _e51 = TANGENT; TANGENT = _e49 * _e51; metal::float3x3 _e55 = MODEL_NORMAL_MATRIX; metal::float3 _e57 = BINORMAL; BINORMAL = _e55 * _e57; return; } else { return; } } CustomOut hedra_end_vertex( metal::float4 world_10, metal::float3 n_8, metal::float3 t_1, float tw, uint flags_2, constant Globals& G, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& INSTANCE_ID, thread metal::float3& dir_7 ) { CustomOut out_2 = {}; metal::float4x4 _e9 = G.view_proj; out_2.clip = _e9 * world_10; if (HEDRA_USES_POSITION) { metal::float4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = metal::normalize(n_8); metal::float2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = metal::float4(metal::normalize(t_1), tw); metal::float4 _e28 = COLOR; out_2.color = _e28; metal::float2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = static_cast(metal::max(_e34, 0)); hedra_store_varyings(out_2, dir_7); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space( ) { bool local_25 = {}; if (true) { local_25 = HEDRA_WORLD_VERTEX_COORDS; } else { local_25 = true; } bool _e5 = local_25; return _e5; } metal::float4 hedra_vertex_world( thread metal::float3& VERTEX, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e2 = INV_VIEW_MATRIX; metal::float3 _e4 = VERTEX; return _e2 * metal::float4(_e4, 1.0); } metal::float3 _e9 = VERTEX; return metal::float4(_e9, 1.0); } metal::float3 hedra_vertex_dir( metal::float3 d_11, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e3 = INV_VIEW_MATRIX; metal::float3x3 _e4 = hedra_mat3_(_e3); return _e4 * d_11; } return d_11; } float hedra_tangent_sign( float w, bool flip, constant ObjectU& O ) { uint _e5 = O.extra.x; return w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); } void hedra_fragment( CustomOut in_7, bool facing_4, constant Globals& G, constant ObjectU& O, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD, thread metal::float3& LIGHT_VERTEX, thread metal::float4& FRAGCOORD, thread bool& FRONT_FACING, thread metal::float3& VIEW, thread metal::float3& NORMAL_MAP, thread float& NORMAL_MAP_DEPTH, thread metal::float3& ALBEDO, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread float& PREMUL_ALPHA_FACTOR, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread metal::float2& SCREEN_UV, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n, thread bool& hedra_front, constant HedraParams& hedra_p, metal::texture2d horizon_texture, metal::sampler SAMPLER_NEAREST_REPEAT, thread metal::float3& dir_7 ) { metal::float3 t_2 = {}; metal::float3 nm = {}; bool _e3 = hedra_mirrored(in_7.flags, O); bool front = facing_4 != _e3; hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; metal::float4 _e14 = G.viewport; SCREEN_UV = in_7.clip.xy * _e14.zw; metal::float4x4 _e19 = O.model; metal::float4x4 _e22 = O.normal; metal::float3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); metal::float4x4 _e26 = G.view; metal::float3x3 _e27 = hedra_mat3_(_e26); metal::float3 n_geo_2 = front ? metal::normalize(in_7.normal) : -(metal::normalize(in_7.normal)); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_2 = in_7.tangent.xyz; metal::float3 _e41 = t_2; metal::float3 _e42 = t_2; t_2 = metal::normalize(_e41 - (n_geo_2 * metal::dot(n_geo_2, _e42))); metal::float3 _e47 = t_2; metal::float3 b_4 = metal::cross(n_geo_2, _e47) * in_7.tangent.w; metal::float4x4 _e55 = G.view; VERTEX = (_e55 * metal::float4(in_7.world, 1.0)).xyz; metal::float3 _e63 = VERTEX; LIGHT_VERTEX = _e63; metal::float3 vertex0_ = VERTEX; NORMAL = metal::normalize(_e27 * n_geo_2); metal::float3 normal0_ = NORMAL; metal::float3 _e72 = t_2; TANGENT = metal::normalize(_e27 * _e72); BINORMAL = metal::normalize(_e27 * b_4); metal::float3 _e80 = VERTEX; float _e90 = G.camera_pos.w; VIEW = (_e90 > 0.5) ? metal::float3(0.0, 0.0, 1.0) : metal::normalize(-(_e80)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = metal::float3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = metal::float3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = metal::float3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = metal::float3(0.0); hedra_load_varyings(in_7, dir_7); fragment_(ALBEDO, hedra_p, horizon_texture, SAMPLER_NEAREST_REPEAT, dir_7); metal::float3x3 back_2 = metal::transpose(_e27); metal::float3 _e136 = NORMAL; if (metal::any(_e136 != normal0_)) { metal::float3 _e141 = NORMAL; hedra_n = metal::normalize(back_2 * _e141); } metal::float3 _e145 = NORMAL_MAP; if (metal::any(_e145 != metal::float3(0.5))) { metal::float3 _e151 = NORMAL_MAP; nm = _e151; metal::float3 _e153 = nm; nm = metal::float3((_e153.xy * 2.0) - metal::float2(1.0), 0.0); metal::float3 _e163 = nm; metal::float3 _e165 = nm; nm.z = metal::sqrt(metal::max(0.0, 1.0 - metal::dot(_e163.xy, _e165.xy))); metal::float3 _e175 = NORMAL; metal::float3 _e177 = TANGENT; float _e179 = nm.x; metal::float3 _e182 = BINORMAL; float _e184 = nm.y; metal::float3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = metal::normalize(metal::mix(_e175, ((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190), _e194)); metal::float3 _e199 = NORMAL; hedra_n = metal::normalize(back_2 * _e199); } metal::float3 _e203 = LIGHT_VERTEX; if (metal::any(_e203 != vertex0_)) { metal::float4x4 _e208 = INV_VIEW_MATRIX; metal::float3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * metal::float4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled( uint flags_3, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread bool& hedra_front ) { bool local_26 = {}; bool local_27 = {}; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if (true) { bool _e10 = hedra_front; local_26 = _e10; } else { local_26 = false; } bool _e12 = local_26; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_27 = _e18 < _e20; } else { local_27 = false; } bool _e23 = local_27; return _e23; } metal::float3 hedra_view_dir( metal::float3 world_11, constant Globals& G ) { float _e5 = G.view[0].z; float _e10 = G.view[1].z; float _e15 = G.view[2].z; metal::float3 view_dir = metal::float3(_e5, _e10, _e15); metal::float4 _e19 = G.camera_pos; float _e27 = G.camera_pos.w; return (_e27 > 0.5) ? metal::normalize(view_dir) : metal::normalize(_e19.xyz - world_11); } float hedra_schlick( float u ) { float m_5 = metal::clamp(1.0 - u, 0.0, 1.0); float m2_ = m_5 * m_5; return (m2_ * m2_) * m_5; } float hedra_diffuse_brdf( float nl_1, float nv_2, float lh, float r_4 ) { float c_nl = metal::max(nl_1, 0.0); if (false) { return metal::max(0.0, (nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4))) * 0.31830987; } if (false) { return metal::smoothstep(-(r_4), metal::max(r_4, 0.01), nl_1) * 0.31830987; } if (false) { float fd90_ = (((2.0 * lh) * lh) * r_4) - 0.5; float _e32 = hedra_schlick(nv_2); float fdv = 1.0 + (fd90_ * _e32); float _e36 = hedra_schlick(c_nl); float fdl = 1.0 + (fd90_ * _e36); return ((0.31830987 * fdv) * fdl) * c_nl; } return c_nl * 0.31830987; } metal::float3 hedra_light_modes( metal::float3 n_9, metal::float3 v_4, metal::float3 l_3, metal::float3 radiance_2, metal::float3 diffuse_1, metal::float3 f0_2, float a2_3, float r_5, float specular_1 ) { metal::float3 c_19 = {}; float mid = {}; bool local_28 = {}; float nl_3 = metal::min(metal::dot(n_9, l_3), 1.0); float nv_4 = metal::max(metal::dot(n_9, v_4), 0.0001); metal::float3 h_3 = metal::normalize(l_3 + v_4); float lh_1 = metal::clamp(metal::dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = (diffuse_1 * _e21) * radiance_2; if (r_5 > 0.0) { if (false) { metal::float3 refl = metal::normalize(-(metal::reflect(l_3, n_9))); float rv = metal::dot(refl, v_4); mid = 1.0 - r_5; float _e35 = mid; float _e36 = mid; mid = _e35 * _e36; metal::float3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = _e38 + ((diffuse_1 * radiance_2) * ((metal::smoothstep(_e40 - (r_5 * 0.5), _e44 + (r_5 * 0.5), rv) * _e49) * specular_1)); } else { if (false) { local_28 = nl_3 > 0.0; } else { local_28 = false; } bool _e60 = local_28; if (_e60) { float nh_2 = metal::max(metal::dot(n_9, h_3), 0.0); float vh_2 = metal::max(metal::dot(v_4, h_3), 0.0); metal::float3 _e67 = f_schlick(f0_2, vh_2); metal::float3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = _e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2); } } } metal::float3 _e77 = c_19; return _e77; } metal::float4 hedra_light_dir( uint i_11, metal::float3 world_12, constant LitU& Lit ) { float atten_1 = {}; LightU li_1 = Lit.lights.inner[metal::min(unsigned(i_11), 63u)]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return metal::float4(-(li_1.direction.xyz), 1.0); } metal::float3 rel_1 = li_1.position.xyz - world_12; float d_17 = metal::length(rel_1); metal::float3 l_7 = rel_1 / metal::float3(metal::max(d_17, 0.000001)); float _e27 = omni_attenuation(d_17, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { float cone = li_1.spot.x; float scos = metal::max(metal::dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = metal::max(0.0001, (1.0 - scos) / metal::max(1.0 - cone, 0.000001)); float _e49 = atten_1; atten_1 = _e49 * (1.0 - metal::pow(rim_1, li_1.spot.y)); } float _e56 = atten_1; return metal::float4(l_7, _e56); } float hedra_shadow( uint i_12, metal::float3 l_4, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo ) { bool local_29 = {}; if (false) { uint _e10 = Lit.lights.inner[metal::min(unsigned(i_12), 63u)].info.y; local_29 = _e10 != LIGHT_SHADOWED; } else { local_29 = true; } bool _e14 = local_29; if (_e14) { return 1.0; } metal::float3 _e17 = hedra_world; metal::float3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4, G, Lit, Shadow, t_shadow, s_shadow); return _e20; } metal::float3 hedra_ambient( metal::float3 n_10, metal::float3 v_5, metal::float3 diffuse_2, metal::float3 f0_3, float roughness_3, float metallic, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, thread metal::float3& hedra_world ) { metal::float3 ambient = {}; metal::float3 diffuse_amb = {}; metal::float3 spec_amb = {}; metal::float3 dif = {}; metal::float3 dif_1 = {}; metal::float3 dif_2 = {}; metal::float3 world_13 = hedra_world; float nv_5 = metal::max(metal::dot(n_10, v_5), 0.0001); metal::float3 f_amb = f0_3 + ((metal::max(metal::float3(1.0 - roughness_3), f0_3) - f0_3) * metal::pow(1.0 - nv_5, 5.0)); metal::float4 _e25 = gi_diffuse(n_10, false, metal::float3(0.0), O); uint _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { float _e38 = Sky.ibl.x; float _e42 = Sky.sun.w; float scale = _e38 * _e42; metal::float4 _e46 = Sky.ambient; diffuse_amb = _e46.xyz; uint _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { metal::float4 _e59 = Sky.ambient; metal::float3 _e61 = sky_dir(n_10, Sky); metal::float3 _e62 = sh_irradiance(_e61, Sky); float _e67 = Sky.ambient.w; diffuse_amb = metal::mix(_e59.xyz, _e62 * scale, _e67); } if (_e25.w > 0.0) { diffuse_amb = _e25.xyz; } metal::float4 _e75 = Sky.ambient; spec_amb = _e75.xyz; uint _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { metal::float3 _e88 = sky_dir(metal::reflect(-(v_5), n_10), Sky); metal::float3 _e89 = radiance_1(_e88, roughness_3, Sky, t_radiance, s_radiance); spec_amb = _e89 * scale; } else { uint _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = metal::float3(0.0); } } metal::float2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = Probe.counts.x; if (_e105 > 0u) { uint _e113 = O.extra.z; metal::float4 _e114 = probe_reflection(world_13, metal::reflect(-(v_5), n_10), roughness_3, _e113, Probe, t_probes, s_probes); metal::float3 _e115 = spec_amb; metal::float3 spec_1 = (_e115 * (1.0 - _e114.w)) + _e114.xyz; metal::float3 _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0.0) { uint _e130 = O.extra.z; metal::float4 _e131 = probe_ambient(world_13, n_10, _e130, Probe, t_probes, s_probes); metal::float3 _e132 = diffuse_amb; dif = (_e132 * (1.0 - _e131.w)) + _e131.xyz; } metal::float3 _e139 = dif; ambient = (diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } else { metal::float3 _e154 = diffuse_amb; metal::float3 _e156 = spec_amb; ambient = (diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } } else { uint _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { metal::float4 _e180 = Lit.up; metal::float3 up_1 = _e180.xyz; metal::float4 _e184 = Lit.sky_top; metal::float4 _e188 = Lit.sky_horizon; metal::float3 sky_avg = (_e184.xyz + _e188.xyz) * 0.5; metal::float4 _e195 = Lit.ground_horizon; metal::float4 _e199 = Lit.ground_bottom; metal::float3 ground_avg = (_e195.xyz + _e199.xyz) * 0.5; metal::float3 irradiance = metal::mix(ground_avg, sky_avg, metal::clamp((metal::dot(n_10, up_1) * 0.5) + 0.5, 0.0, 1.0)); metal::float3 _e215 = sky(metal::reflect(-(v_5), n_10), Lit); metal::float3 blurred = metal::mix(_e215, sky_avg, roughness_3); uint _e220 = Probe.counts.x; if (_e220 > 0u) { uint _e228 = O.extra.z; metal::float4 _e229 = probe_reflection(world_13, metal::reflect(-(v_5), n_10), roughness_3, _e228, Probe, t_probes, s_probes); float _e233 = Lit.ambient.w; metal::float3 spec_2 = ((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz; dif_1 = _e25.xyz; if (_e25.w <= 0.0) { uint _e249 = O.extra.z; metal::float4 _e250 = probe_ambient(world_13, n_10, _e249, Probe, t_probes, s_probes); float _e254 = Lit.ambient.w; dif_1 = ((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz; } metal::float3 _e262 = dif_1; ambient = (diffuse_2 * _e262) + (spec_2 * f_amb); } else { if (_e25.w > 0.0) { float _e275 = Lit.ambient.w; ambient = (diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275); } else { float _e284 = Lit.ambient.w; ambient = ((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284; } } } else { uint _e289 = Probe.counts.x; if (_e289 > 0u) { uint _e297 = O.extra.z; metal::float4 _e298 = probe_reflection(world_13, metal::reflect(-(v_5), n_10), roughness_3, _e297, Probe, t_probes, s_probes); metal::float4 _e301 = Lit.ambient; metal::float3 spec_3 = (_e301.xyz * (1.0 - _e298.w)) + _e298.xyz; dif_2 = _e25.xyz; if (_e25.w <= 0.0) { uint _e317 = O.extra.z; metal::float4 _e318 = probe_ambient(world_13, n_10, _e317, Probe, t_probes, s_probes); metal::float4 _e321 = Lit.ambient; dif_2 = (_e321.xyz * (1.0 - _e318.w)) + _e318.xyz; } metal::float3 _e329 = dif_2; ambient = (diffuse_2 * _e329) + (spec_3 * f_amb); } else { if (_e25.w > 0.0) { metal::float4 _e340 = Lit.ambient; ambient = (diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb); } else { metal::float4 _e346 = Lit.ambient; ambient = _e346.xyz * (diffuse_2 + f_amb); } } } } metal::float3 _e350 = ambient; return _e350; } metal::float3 hedra_fog( metal::float3 c_in_1, metal::float3 v_6, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant FogU& Fog, thread metal::float3& hedra_world ) { metal::float3 c_20 = {}; c_20 = c_in_1; if (HEDRA_FOG_DISABLED) { metal::float3 _e4 = c_20; return _e4; } uint _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { metal::float3 _e13 = c_20; metal::float3 _e15 = hedra_world; metal::float3 _e17 = surface_fog(_e13, _e15, -(v_6), G, Lit, Sky, t_radiance, s_radiance); c_20 = _e17; } uint _e21 = O.decals.w; if (_e21 != 0u) { metal::float3 _e24 = c_20; metal::float3 _e26 = hedra_world; uint _e30 = O.decals.w; metal::float3 _e31 = fog_volumes(_e24, _e26, _e30, G, Lit, Fog); c_20 = _e31; } metal::float3 _e32 = c_20; return _e32; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } metal::float3 hedra_lit( metal::float4 clip, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals, constant FogU& Fog, thread metal::float3& NORMAL, thread metal::float3& ALBEDO, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread float& SPECULAR_AMOUNT, thread metal::float3& LIGHT, thread metal::float3& LIGHT_COLOR, thread bool& LIGHT_IS_DIRECTIONAL, thread float& ATTENUATION, thread metal::float3& DIFFUSE_LIGHT, thread metal::float3& SPECULAR_LIGHT, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n ) { DecalSurface surf_1 = {}; metal::float3 c_21 = metal::float3(0.0); uint k_11 = 0u; bool local_30 = {}; metal::float3 radiance_3 = {}; bool local_31 = {}; bool local_32 = {}; metal::float3 ambient_1 = metal::float3(0.0); bool local_33 = {}; metal::float3 n_geo_3 = hedra_n_geo; metal::float3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; metal::float3 _e18 = hedra_n; metal::float3 _e20 = EMISSION; surf_1 = DecalSurface {_e4, metal::clamp(_e6, 0.0, 1.0), metal::clamp(_e11, 0.045, 1.0), _e16, {}, _e18, _e20}; uint _e26 = O.decals.z; if (_e26 > 0u) { metal::float3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31, G, O, Decal, t_decals, s_decals); surf_1 = _e32; metal::float3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; metal::float4x4 _e45 = G.view; metal::float3x3 _e46 = hedra_mat3_(_e45); metal::float3 _e48 = surf_1.normal; NORMAL = metal::normalize(_e46 * _e48); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = ((roughness_4 * roughness_4) * roughness_4) * roughness_4; metal::float3 base = surf_1.base; metal::float3 diffuse_3 = base * (1.0 - metallic_1); float _e64 = SPECULAR; float _e68 = SPECULAR; metal::float3 f0_4 = metal::mix(metal::float3((0.16 * _e64) * _e68), base, metallic_1); metal::float3 n_13 = surf_1.normal; metal::float3 _e75 = hedra_world; metal::float3 _e76 = hedra_view_dir(_e75, G); metal::float4x4 _e79 = G.view; metal::float3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = metal::mix(1.0, _e82, _e84); DIFFUSE_LIGHT = metal::float3(0.0); SPECULAR_LIGHT = metal::float3(0.0); uint _e96 = object_light_count(O); uint2 loop_bound_16 = uint2(4294967295u); bool loop_init_16 = true; while(true) { if (metal::all(loop_bound_16 == uint2(0u))) { break; } loop_bound_16 -= uint2(loop_bound_16.y == 0u, 1u); if (!loop_init_16) { uint _e238 = k_11; k_11 = _e238 + 1u; } loop_init_16 = false; uint _e99 = k_11; if (_e99 < _e96) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101, O); LightU li_2 = Lit.lights.inner[metal::min(unsigned(_e102), 63u)]; metal::float3 _e108 = hedra_world; metal::float4 _e109 = hedra_light_dir(_e102, _e108, Lit); metal::float3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_30 = atten_2 > 0.0; } else { local_30 = true; } bool _e123 = local_30; if (_e123) { LIGHT = metal::normalize(_e80 * l_8); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8, G, Lit, Shadow, t_shadow, s_shadow, hedra_world, hedra_n_geo); ATTENUATION = atten_2 * _e131; LIGHT_IS_DIRECTIONAL = li_2.info.x == LIGHT_DIRECTIONAL; SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if (_e142 > 0.0) { float rim_light = metal::pow(metal::max(0.0001, 1.0 - metal::max(metal::dot(n_13, _e76), 0.0001)), metal::max(0.0, (1.0 - roughness_4) * 16.0)); metal::float3 _e159 = c_21; float _e164 = RIM; float _e170 = RIM_TINT; c_21 = _e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * metal::mix(metal::float3(1.0), base, _e170)); } if (atten_2 > 0.0) { radiance_3 = li_2.color.xyz * atten_2; if (li_2.info.y == LIGHT_SHADOWED) { local_31 = false; } else { local_31 = false; } bool _e188 = local_31; if (_e188) { metal::float3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8, G, Lit, Shadow, t_shadow, s_shadow); radiance_3 = li_2.color.xyz * (atten_2 * _e193); } if (true) { local_32 = false; } else { local_32 = false; } bool _e201 = local_32; if (_e201) { metal::float3 _e202 = c_21; metal::float3 _e203 = radiance_3; metal::float3 _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_21 = _e202 + _e206; } else { metal::float3 _e208 = c_21; metal::float3 _e209 = radiance_3; metal::float3 _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = _e208 + _e212; } metal::float3 _e215 = BACKLIGHT; if (metal::any(_e215 > metal::float3(0.0))) { float nl_4 = metal::max(metal::min(metal::dot(n_13, l_8), 1.0), 0.0); metal::float3 _e225 = c_21; metal::float3 _e226 = radiance_3; metal::float3 _e229 = BACKLIGHT; c_21 = _e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987))); } } } } if (HEDRA_HAS_LIGHT) { metal::float3 _e242 = DIFFUSE_LIGHT; metal::float3 _e249 = SPECULAR_LIGHT; c_21 = (((_e242 * base) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct); } else { float _e253 = AO_LIGHT_AFFECT; if (_e253 > 0.0) { metal::float3 _e256 = c_21; c_21 = _e256 * ao_direct; } } if (true) { metal::float3 _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1, O, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes, hedra_world); ambient_1 = _e262; } uint _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { bool _e273 = hedra_transparent(); local_33 = !(_e273); } else { local_33 = false; } bool _e276 = local_33; if (_e276) { uint clamped_lod_e282 = metal::min(uint(0), t_ao.get_num_mip_levels() - 1); metal::float4 _e282 = t_ao.read(metal::min(metal::uint2(naga_f2i32(metal::floor(clip.xy))), metal::uint2(t_ao.get_width(clamped_lod_e282), t_ao.get_height(clamped_lod_e282)) - 1), clamped_lod_e282); float ssao = _e282.x; metal::float3 _e284 = c_21; float _e286 = surf_1.occlusion; float _e291 = Lit.tone.z; float _e295 = Lit.tone.w; c_21 = _e284 * metal::mix(1.0, metal::min(ssao, _e286), _e291 * _e295); metal::float3 _e300 = c_21; metal::float3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_21 = _e300 + (_e301 * metal::min(_e303, ssao)); } else { metal::float3 _e307 = c_21; metal::float3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_21 = _e307 + (_e308 * _e310); } metal::float3 _e313 = c_21; metal::float3 _e315 = surf_1.emission; c_21 = _e313 + _e315; metal::float3 _e317 = c_21; metal::float3 _e318 = hedra_fog(_e317, _e76, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e319 = tonemap(_e318, Lit); return _e319; } metal::float4 hedra_output( metal::float3 c_22, constant Globals& G, constant LitU& Lit, thread float& ALPHA, thread float& PREMUL_ALPHA_FACTOR ) { metal::float3 rgb = {}; rgb = c_22; if (false) { metal::float3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = _e3 * _e5; } metal::float3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); metal::float4 o_9 = metal::float4(_e7, _e10 ? _e9 : 1.0); uint _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return metal::float4(metal::max(o_9.xyz, metal::float3(0.0)), metal::clamp(o_9.w, 0.0, 1.0)); } metal::float4 k_17 = metal::clamp(o_9, metal::float4(0.0), metal::float4(1.0)); uint _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { metal::float3 _e45 = linear_to_srgb(k_17.xyz); return metal::float4(_e45, k_17.w); } return k_17; } metal::float3 hedra_bindings( metal::texture2d t_panorama, metal::sampler s_radiance, metal::sampler s_panorama, metal::texture2d_array t_lightmap, metal::sampler s_lightmap, metal::texture2d t_screen ) { metal::float2 uv_7 = metal::float2(0.5); metal::float4 _e5 = t_panorama.sample(s_panorama, uv_7, metal::level(0.0)); metal::float4 _e11 = t_lightmap.sample(s_lightmap, uv_7, 0, metal::level(0.0)); metal::float4 _e17 = t_screen.sample(s_radiance, uv_7, metal::level(0.0)); return (_e5.xyz + _e11.xyz) + _e17.xyz; } struct vs_customInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float2 uv1_ [[attribute(10)]]; }; struct vs_customOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_customOutput vs_custom( vs_customInput varyings [[stage_in]] , uint vid [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 dir_7 = {}; const VsIn in = { varyings.pos_1, varyings.normal_2, varyings.uv_3, varyings.flags_4, {}, varyings.tangent_1, varyings.weight }; const auto uv1_ = varyings.uv1_; metal::float4x4 _e5 = O.model; metal::float4x4 _e8 = O.normal; metal::float3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, metal::float4(1.0), vid, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(VERTEX, NODE_POSITION_WORLD, dir_7); float _e24 = hedra_tangent_sign(in.tangent.w, false, O); bool _e25 = hedra_vertex_space(); if (_e25) { metal::float4 _e26 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e28 = NORMAL; metal::float3 _e29 = hedra_vertex_dir(_e28, INV_VIEW_MATRIX); metal::float3 _e31 = TANGENT; metal::float3 _e32 = hedra_vertex_dir(_e31, INV_VIEW_MATRIX); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, dir_7); const auto _tmp = _e34; return vs_customOutput { _tmp.clip, _tmp.world, _tmp.normal, _tmp.uv, _tmp.flags, _tmp.tangent, _tmp.color, _tmp.uv2_, _tmp.instance_id, _tmp.hedra_v0_, _tmp.hedra_v1_, _tmp.hedra_v2_, _tmp.hedra_v3_ }; } metal::float4x4 _e37 = O.model; metal::float3 _e39 = VERTEX; metal::float4 world_14 = _e37 * metal::float4(_e39, 1.0); metal::float4x4 _e45 = O.normal; metal::float3 _e47 = NORMAL; metal::float3 n_14 = (_e45 * metal::float4(_e47, 0.0)).xyz; metal::float4x4 _e54 = O.model; metal::float3 _e56 = TANGENT; metal::float3 t_11 = (_e54 * metal::float4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_14, n_14, t_11, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, dir_7); const auto _tmp_1 = _e62; return vs_customOutput { _tmp_1.clip, _tmp_1.world, _tmp_1.normal, _tmp_1.uv, _tmp_1.flags, _tmp_1.tangent, _tmp_1.color, _tmp_1.uv2_, _tmp_1.instance_id, _tmp_1.hedra_v0_, _tmp_1.hedra_v1_, _tmp_1.hedra_v2_, _tmp_1.hedra_v3_ }; } struct vs_custom_instancedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float4 row0_ [[attribute(6)]]; metal::float4 row1_ [[attribute(7)]]; metal::float4 row2_ [[attribute(8)]]; metal::float4 color_1 [[attribute(9)]]; metal::float2 uv1_1 [[attribute(10)]]; metal::float4 custom [[attribute(14)]]; float id [[attribute(15)]]; }; struct vs_custom_instancedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_instancedOutput vs_custom_instanced( vs_custom_instancedInput varyings_1 [[stage_in]] , uint vid_1 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 dir_7 = {}; const VsIn in_1 = { varyings_1.pos_1, varyings_1.normal_2, varyings_1.uv_3, varyings_1.flags_4, {}, varyings_1.tangent_1, varyings_1.weight }; const InstIn inst = { varyings_1.row0_, varyings_1.row1_, varyings_1.row2_, varyings_1.color_1 }; const auto uv1_1 = varyings_1.uv1_1; const HedraInstExtra extra = { varyings_1.custom, varyings_1.id }; metal::float3 bx = metal::float3(inst.row0_.x, inst.row1_.x, inst.row2_.x); metal::float3 by = metal::float3(inst.row0_.y, inst.row1_.y, inst.row2_.y); metal::float3 bz = metal::float3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = metal::dot(bx, metal::cross(by, bz)); bool flip_1 = det < 0.0; metal::float3x3 cofactor = metal::float3x3(metal::cross(by, bz), metal::cross(bz, bx), metal::cross(bx, by)) * (flip_1 ? -1.0 : 1.0); metal::float4x4 basis = metal::float4x4(metal::float4(bx, 0.0), metal::float4(by, 0.0), metal::float4(bz, 0.0), metal::float4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); metal::float4x4 _e55 = O.model; metal::float4x4 _e59 = O.normal; metal::float3x3 _e60 = hedra_mat3_(_e59); hedra_matrices(_e55 * basis, _e60 * cofactor, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = naga_f2i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(VERTEX, NODE_POSITION_WORLD, dir_7); uint flags_4 = in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1, O); bool _e80 = hedra_vertex_space(); if (_e80) { metal::float4 _e81 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e83 = NORMAL; metal::float3 _e84 = hedra_vertex_dir(_e83, INV_VIEW_MATRIX); metal::float3 _e86 = TANGENT; metal::float3 _e87 = hedra_vertex_dir(_e86, INV_VIEW_MATRIX); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, dir_7); const auto _tmp_2 = _e88; return vs_custom_instancedOutput { _tmp_2.clip, _tmp_2.world, _tmp_2.normal, _tmp_2.uv, _tmp_2.flags, _tmp_2.tangent, _tmp_2.color, _tmp_2.uv2_, _tmp_2.instance_id, _tmp_2.hedra_v0_, _tmp_2.hedra_v1_, _tmp_2.hedra_v2_, _tmp_2.hedra_v3_ }; } metal::float3 _e90 = VERTEX; metal::float4 p1_ = metal::float4(_e90, 1.0); metal::float3 local_34 = metal::float3(metal::dot(inst.row0_, p1_), metal::dot(inst.row1_, p1_), metal::dot(inst.row2_, p1_)); metal::float4x4 _e102 = O.model; metal::float4 world_15 = _e102 * metal::float4(local_34, 1.0); metal::float4x4 _e108 = O.normal; metal::float3 _e110 = NORMAL; metal::float3 n_15 = (_e108 * metal::float4(cofactor * _e110, 0.0)).xyz; metal::float4x4 _e118 = O.model; metal::float3 _e121 = TANGENT; metal::float3 t_12 = (_e118 * metal::float4(metal::float3x3(bx, by, bz) * _e121, 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_15, n_15, t_12, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, dir_7); const auto _tmp_3 = _e127; return vs_custom_instancedOutput { _tmp_3.clip, _tmp_3.world, _tmp_3.normal, _tmp_3.uv, _tmp_3.flags, _tmp_3.tangent, _tmp_3.color, _tmp_3.uv2_, _tmp_3.instance_id, _tmp_3.hedra_v0_, _tmp_3.hedra_v1_, _tmp_3.hedra_v2_, _tmp_3.hedra_v3_ }; } struct vs_custom_skinnedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::uint4 joints [[attribute(12)]]; metal::float4 weights [[attribute(13)]]; metal::float2 uv1_2 [[attribute(10)]]; }; struct vs_custom_skinnedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_skinnedOutput vs_custom_skinned( vs_custom_skinnedInput varyings_2 [[stage_in]] , uint vid_2 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant SkinU& Skin [[buffer(6)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 dir_7 = {}; const VsIn in_2 = { varyings_2.pos_1, varyings_2.normal_2, varyings_2.uv_3, varyings_2.flags_4, {}, varyings_2.tangent_1, varyings_2.weight }; const SkinIn s = { varyings_2.joints, varyings_2.weights }; const auto uv1_2 = varyings_2.uv1_2; SkinRows _e4 = skin_rows(s, Skin); metal::float4 p_12 = metal::float4(in_2.pos, 1.0); metal::float3 skinned = metal::float3(metal::dot(_e4.r0_, p_12), metal::dot(_e4.r1_, p_12), metal::dot(_e4.r2_, p_12)); metal::float3 bx_1 = metal::float3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); metal::float3 by_1 = metal::float3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); metal::float3 bz_1 = metal::float3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det_1 = metal::dot(bx_1, metal::cross(by_1, bz_1)); bool flip_2 = det_1 < 0.0; metal::float3x3 cofactor_1 = metal::float3x3(metal::cross(by_1, bz_1), metal::cross(bz_1, bx_1), metal::cross(bx_1, by_1)); metal::float3 n0_ = metal::normalize((cofactor_1 * in_2.normal) * (flip_2 ? -1.0 : 1.0)); metal::float3 t0_1 = metal::normalize(metal::float3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz); metal::float4x4 _e58 = O.model; metal::float4x4 _e61 = O.normal; metal::float3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(skinned, n0_, metal::float4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, metal::float4(1.0), vid_2, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(VERTEX, NODE_POSITION_WORLD, dir_7); uint flags_5 = in_2.flags | (flip_2 ? F_INSTANCE_MIRRORED : 0u); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2, O); bool _e82 = hedra_vertex_space(); if (_e82) { metal::float4 _e83 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e85 = NORMAL; metal::float3 _e86 = hedra_vertex_dir(_e85, INV_VIEW_MATRIX); metal::float3 _e88 = TANGENT; metal::float3 _e89 = hedra_vertex_dir(_e88, INV_VIEW_MATRIX); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, dir_7); const auto _tmp_4 = _e90; return vs_custom_skinnedOutput { _tmp_4.clip, _tmp_4.world, _tmp_4.normal, _tmp_4.uv, _tmp_4.flags, _tmp_4.tangent, _tmp_4.color, _tmp_4.uv2_, _tmp_4.instance_id, _tmp_4.hedra_v0_, _tmp_4.hedra_v1_, _tmp_4.hedra_v2_, _tmp_4.hedra_v3_ }; } metal::float4x4 _e93 = O.model; metal::float3 _e95 = VERTEX; metal::float4 world_16 = _e93 * metal::float4(_e95, 1.0); metal::float4x4 _e101 = O.normal; metal::float3 _e103 = NORMAL; metal::float3 n_16 = (_e101 * metal::float4(_e103, 0.0)).xyz; metal::float4x4 _e110 = O.model; metal::float3 _e112 = TANGENT; metal::float3 t_13 = (_e110 * metal::float4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_16, n_16, t_13, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, dir_7); const auto _tmp_5 = _e117; return vs_custom_skinnedOutput { _tmp_5.clip, _tmp_5.world, _tmp_5.normal, _tmp_5.uv, _tmp_5.flags, _tmp_5.tangent, _tmp_5.color, _tmp_5.uv2_, _tmp_5.instance_id, _tmp_5.hedra_v0_, _tmp_5.hedra_v1_, _tmp_5.hedra_v2_, _tmp_5.hedra_v3_ }; } struct fs_customInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_customOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_customOutput fs_custom( fs_customInput varyings_3 [[stage_in]] , metal::float4 clip_2 [[position]] , bool facing [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant LitU& Lit [[buffer(1)]] , constant ShadowU& Shadow [[buffer(2)]] , metal::depth2d t_shadow [[texture(0)]] , metal::sampler s_shadow [[sampler(0)]] , constant SkyU& Sky [[buffer(3)]] , metal::texturecube t_radiance [[texture(5)]] , metal::texture2d t_panorama [[texture(6)]] , metal::sampler s_radiance [[sampler(3)]] , metal::sampler s_panorama [[sampler(4)]] , metal::texture2d t_ao [[texture(1)]] , metal::texture2d_array t_lightmap [[texture(7)]] , metal::sampler s_lightmap [[sampler(5)]] , constant ProbeU& Probe [[buffer(4)]] , metal::texture2d t_probes [[texture(8)]] , metal::sampler s_probes [[sampler(6)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] , constant FogU& Fog [[buffer(8)]] , metal::texture2d t_screen [[texture(3)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d horizon_texture [[texture(4)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; float SPECULAR_AMOUNT = {}; metal::float3 LIGHT = {}; metal::float3 LIGHT_COLOR = {}; bool LIGHT_IS_DIRECTIONAL = {}; float ATTENUATION = {}; metal::float3 DIFFUSE_LIGHT = {}; metal::float3 SPECULAR_LIGHT = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float3 dir_7 = {}; const CustomOut in_3 = { clip_2, varyings_3.world_13, varyings_3.normal_2, varyings_3.uv_3, varyings_3.flags_4, {}, varyings_3.tangent_1, varyings_3.color_1, varyings_3.uv2_1, varyings_3.instance_id, {}, varyings_3.hedra_v0_, varyings_3.hedra_v1_, varyings_3.hedra_v2_, varyings_3.hedra_v3_ }; metal::float3 c = {}; hedra_fragment(in_3, facing, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, horizon_texture, SAMPLER_NEAREST_REPEAT, dir_7); bool _e3 = hedra_culled(in_3.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (_e3) { metal::discard_fragment(); } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy, O); if (_e7 <= 0.0) { metal::discard_fragment(); } if (HEDRA_UNSHADED) { metal::float3 _e13 = ALBEDO; metal::float3 _e15 = hedra_world; metal::float3 _e16 = hedra_view_dir(_e15, G); metal::float3 _e17 = hedra_fog(_e13, _e16, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e18 = tonemap(_e17, Lit); c = _e18; } else { metal::float3 _e20 = hedra_lit(in_3.clip, G, O, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, Fog, NORMAL, ALBEDO, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SPECULAR_AMOUNT, LIGHT, LIGHT_COLOR, LIGHT_IS_DIRECTIONAL, ATTENUATION, DIFFUSE_LIGHT, SPECULAR_LIGHT, hedra_world, hedra_n_geo, hedra_n); c = _e20; } uint _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { metal::float3 _e27 = c; metal::float3 _e28 = hedra_bindings(t_panorama, s_radiance, s_panorama, t_lightmap, s_lightmap, t_screen); c = _e27 + _e28; } uint _e33 = G.params.x; if (_e33 == SHADE_LIT) { metal::float3 _e36 = c; metal::float3 _e37 = item_fade(_e36, O, Lit); metal::float3 _e38 = emerge_tint(_e37, _e7, O, Lit); c = _e38; } metal::float3 _e39 = c; metal::float4 _e40 = hedra_output(_e39, G, Lit, ALPHA, PREMUL_ALPHA_FACTOR); return fs_customOutput { _e40 }; } struct fs_custom_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; fragment void fs_custom_depth( fs_custom_depthInput varyings_4 [[stage_in]] , metal::float4 clip_3 [[position]] , bool facing_1 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d horizon_texture [[texture(4)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float3 dir_7 = {}; const CustomOut in_4 = { clip_3, varyings_4.world_13, varyings_4.normal_2, varyings_4.uv_3, varyings_4.flags_4, {}, varyings_4.tangent_1, varyings_4.color_1, varyings_4.uv2_1, varyings_4.instance_id, {}, varyings_4.hedra_v0_, varyings_4.hedra_v1_, varyings_4.hedra_v2_, varyings_4.hedra_v3_ }; bool local = {}; bool local_1 = {}; hedra_fragment(in_4, facing_1, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, horizon_texture, SAMPLER_NEAREST_REPEAT, dir_7); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = _e14 < _e16; } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { metal::discard_fragment(); } float _e25 = emerge_reveal(in_4.world, metal::float2(-1.0), O); if (_e25 <= 0.0) { metal::discard_fragment(); } else { return; } } struct fs_custom_idInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_idOutput { metal::float4 id [[color(0)]]; }; fragment fs_custom_idOutput fs_custom_id( fs_custom_idInput varyings_5 [[stage_in]] , metal::float4 clip_4 [[position]] , bool facing_2 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d horizon_texture [[texture(4)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float3 dir_7 = {}; const CustomOut in_5 = { clip_4, varyings_5.world_13, varyings_5.normal_2, varyings_5.uv_3, varyings_5.flags_4, {}, varyings_5.tangent_1, varyings_5.color_1, varyings_5.uv2_1, varyings_5.instance_id, {}, varyings_5.hedra_v0_, varyings_5.hedra_v1_, varyings_5.hedra_v2_, varyings_5.hedra_v3_ }; bool local_2 = {}; IdOut out = {}; hedra_fragment(in_5, facing_2, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, horizon_texture, SAMPLER_NEAREST_REPEAT, dir_7); bool _e3 = hedra_culled(in_5.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy, O); local_2 = _e10 <= 0.0; } else { local_2 = true; } bool _e14 = local_2; if (_e14) { metal::discard_fragment(); } uint id = O.params.z; uint _e24 = O.params.x; uint _e33 = O.params.y; uint bits = ((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u); out.id = metal::float4(static_cast(id & 255u), static_cast((id >> 8u) & 255u), static_cast((id >> 16u) & 255u), static_cast(bits)) / metal::float4(255.0); IdOut _e58 = out; const auto _tmp_6 = _e58; return fs_custom_idOutput { _tmp_6.id }; } struct fs_custom_normal_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_normal_depthOutput { metal::float4 normal_depth [[color(0)]]; metal::float4 surface [[color(1)]]; }; fragment fs_custom_normal_depthOutput fs_custom_normal_depth( fs_custom_normal_depthInput varyings_6 [[stage_in]] , metal::float4 clip_5 [[position]] , bool facing_3 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d horizon_texture [[texture(4)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float3 dir_7 = {}; const CustomOut in_6 = { clip_5, varyings_6.world_13, varyings_6.normal_2, varyings_6.uv_3, varyings_6.flags_4, {}, varyings_6.tangent_1, varyings_6.color_1, varyings_6.uv2_1, varyings_6.instance_id, {}, varyings_6.hedra_v0_, varyings_6.hedra_v1_, varyings_6.hedra_v2_, varyings_6.hedra_v3_ }; bool local_3 = {}; HedraNormalDepthOut out_1 = {}; hedra_fragment(in_6, facing_3, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, horizon_texture, SAMPLER_NEAREST_REPEAT, dir_7); bool _e3 = hedra_culled(in_6.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy, O); local_3 = _e10 <= 0.0; } else { local_3 = true; } bool _e14 = local_3; if (_e14) { metal::discard_fragment(); } metal::float4x4 _e17 = G.view; metal::float3x3 _e18 = hedra_mat3_(_e17); metal::float3 _e20 = hedra_n; metal::float3 n_view = metal::normalize(_e18 * _e20); float _e24 = METALLIC; float metallic_2 = metal::clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; metal::float3 _e37 = ALBEDO; metal::float3 f0_5 = metal::mix(metal::float3((0.16 * _e29) * _e33), _e37, metallic_2); metal::float4x4 _e43 = G.view; out_1.normal_depth = metal::float4(n_view, -((_e43 * metal::float4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = metal::float4(metal::clamp(f0_5, metal::float3(0.0), metal::float3(1.0)), metal::clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; const auto _tmp_7 = _e63; return fs_custom_normal_depthOutput { _tmp_7.normal_depth, _tmp_7.surface }; }  @Ð Ð/ ,@  �{Ðþ—4ÌhÜäF‚�SKw;‰¡ŠÝ‘šçkíVã›c vs_custommainÜ5struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 zenith; float hedra_pad0; float3 horizon; float hedra_pad1; float3 below; float bands; float curve; float hedra_pad2; float hedra_pad3; float hedra_pad4; float3 sun_direction; float hedra_pad5; float3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6; float2 horizon_band; float hedra_pad7; float hedra_pad8; float3 horizon_tint; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1309 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 dir = float3(0.0f, 0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1160 = transpose(hedra_mat3(m)); return float4x4(float4(_1160[0], 0.0f), float4(_1160[1], 0.0f), float4(_1160[2], 0.0f), float4(-mul(m[3].xyz, _1160), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1266 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (true) { _1266 = true; } else { _1266 = false; } if (_1266) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { dir = VERTEX - NODE_POSITION_WORLD; } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1343 = false; if (true) { _1343 = true; } else { _1343 = true; } return _1343; } float4 hedra_vertex_world() { if (false) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (false) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = float4(dir, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1309; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1539 = { pos, normal, uv, flags, tangent, weight }; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(_1539.pos, _1539.normal, _1539.tangent, _1539.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); float _1596 = hedra_tangent_sign(_1539.tangent.w, false); if (hedra_vertex_space()) { CustomOut _1606 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1596, _1539.flags); gl_Position = _1606.clip; world = _1606.world; normal_1 = _1606.normal; uv_1 = _1606.uv; flags_1 = _1606.flags; tangent_1 = _1606.tangent; color = _1606.color; uv2 = _1606.uv2; instance_id = _1606.instance_id; hedra_v0 = _1606.hedra_v0; hedra_v1 = _1606.hedra_v1; hedra_v2 = _1606.hedra_v2; hedra_v3 = _1606.hedra_v3; return; } CustomOut _1638 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1596, _1539.flags); gl_Position = _1638.clip; world = _1638.world; normal_1 = _1638.normal; uv_1 = _1638.uv; flags_1 = _1638.flags; tangent_1 = _1638.tangent; color = _1638.color; uv2 = _1638.uv2; instance_id = _1638.instance_id; hedra_v0 = _1638.hedra_v0; hedra_v1 = _1638.hedra_v1; hedra_v2 = _1638.hedra_v2; hedra_v3 = _1638.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_instancedmain;struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 zenith; float hedra_pad0; float3 horizon; float hedra_pad1; float3 below; float bands; float curve; float hedra_pad2; float hedra_pad3; float hedra_pad4; float3 sun_direction; float hedra_pad5; float3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6; float2 horizon_band; float hedra_pad7; float hedra_pad8; float3 horizon_tint; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1309 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 row0; static float4 row1; static float4 row2; static float4 color; static float2 uv1; static float4 custom; static float id; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color_1; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 row0 : TEXCOORD6; float4 row1 : TEXCOORD7; float4 row2 : TEXCOORD8; float4 color : TEXCOORD9; float2 uv1 : TEXCOORD10; float4 custom : TEXCOORD14; float id : TEXCOORD15; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color_1 : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 dir = float3(0.0f, 0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1160 = transpose(hedra_mat3(m)); return float4x4(float4(_1160[0], 0.0f), float4(_1160[1], 0.0f), float4(_1160[2], 0.0f), float4(-mul(m[3].xyz, _1160), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_2, uint vid) { bool _1266 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_2; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (true) { _1266 = true; } else { _1266 = false; } if (_1266) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { dir = VERTEX - NODE_POSITION_WORLD; } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1343 = false; if (true) { _1343 = true; } else { _1343 = true; } return _1343; } float4 hedra_vertex_world() { if (false) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (false) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = float4(dir, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1309; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1539 = { pos, normal, uv, flags, tangent, weight }; InstIn _1557 = { row0, row1, row2, color }; HedraInstExtra _1568 = { custom, id }; float3 _1602 = float3(_1557.row0.x, _1557.row1.x, _1557.row2.x); float3 _1609 = float3(_1557.row0.y, _1557.row1.y, _1557.row2.y); float3 _1616 = float3(_1557.row0.z, _1557.row1.z, _1557.row2.z); bool _1619 = dot(_1602, cross(_1609, _1616)) < 0.0f; float3x3 _1625 = float3x3(cross(_1609, _1616), cross(_1616, _1602), cross(_1602, _1609)) * (_1619 ? (-1.0f) : 1.0f); hedra_matrices(mul(float4x4(float4(_1602, 0.0f), float4(_1609, 0.0f), float4(_1616, 0.0f), float4(_1557.row0.w, _1557.row1.w, _1557.row2.w, 1.0f)), O_1_m0.model), mul(_1625, hedra_mat3(O_1_m0.normal))); INSTANCE_ID = int(clamp(_1568.id, -2147483648.0f, 2147483520.0f)); INSTANCE_CUSTOM = _1568.custom; hedra_begin_vertex(_1539.pos, _1539.normal, _1539.tangent, _1539.uv, uv1, _1557.color, uint(gl_VertexIndex)); vertex(); uint _1660 = _1539.flags | (_1619 ? 128u : 0u); float _1663 = hedra_tangent_sign(_1539.tangent.w, _1619); if (hedra_vertex_space()) { CustomOut _1672 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1663, _1660); gl_Position = _1672.clip; world = _1672.world; normal_1 = _1672.normal; uv_1 = _1672.uv; flags_1 = _1672.flags; tangent_1 = _1672.tangent; color_1 = _1672.color; uv2 = _1672.uv2; instance_id = _1672.instance_id; hedra_v0 = _1672.hedra_v0; hedra_v1 = _1672.hedra_v1; hedra_v2 = _1672.hedra_v2; hedra_v3 = _1672.hedra_v3; return; } float4 _1687 = float4(VERTEX, 1.0f); CustomOut _1714 = hedra_end_vertex(mul(float4(float3(dot(_1557.row0, _1687), dot(_1557.row1, _1687), dot(_1557.row2, _1687)), 1.0f), O_1_m0.model), mul(float4(mul(NORMAL, _1625), 0.0f), O_1_m0.normal).xyz, mul(float4(mul(TANGENT, float3x3(_1602, _1609, _1616)), 0.0f), O_1_m0.model).xyz, _1663, _1660); gl_Position = _1714.clip; world = _1714.world; normal_1 = _1714.normal; uv_1 = _1714.uv; flags_1 = _1714.flags; tangent_1 = _1714.tangent; color_1 = _1714.color; uv2 = _1714.uv2; instance_id = _1714.instance_id; hedra_v0 = _1714.hedra_v0; hedra_v1 = _1714.hedra_v1; hedra_v2 = _1714.hedra_v2; hedra_v3 = _1714.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; row0 = stage_input.row0; row1 = stage_input.row1; row2 = stage_input.row2; color = stage_input.color; uv1 = stage_input.uv1; custom = stage_input.custom; id = stage_input.id; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color_1 = color_1; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_skinnedmainÊ<struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 zenith; float hedra_pad0; float3 horizon; float hedra_pad1; float3 below; float bands; float curve; float hedra_pad2; float hedra_pad3; float hedra_pad4; float3 sun_direction; float hedra_pad5; float3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6; float2 horizon_band; float hedra_pad7; float hedra_pad8; float3 horizon_tint; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const SkinRows _1135 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const CustomOut _1401 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Skin : register(b6) { SkinU Skin_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static uint4 joints; static float4 weights; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint4 joints : TEXCOORD12; float4 weights : TEXCOORD13; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 dir = float3(0.0f, 0.0f, 0.0f); float4 skin_row(uint k, uint r) { return Skin_1_m0.rows[min(((min(k, 254u) * 3u) + r), 764u)]; } SkinRows skin_rows(SkinIn s) { SkinRows m = _1135; m.r0 = (((skin_row(s.joints.x, 0u) * s.weights.x) + (skin_row(s.joints.y, 0u) * s.weights.y)) + (skin_row(s.joints.z, 0u) * s.weights.z)) + (skin_row(s.joints.w, 0u) * s.weights.w); m.r1 = (((skin_row(s.joints.x, 1u) * s.weights.x) + (skin_row(s.joints.y, 1u) * s.weights.y)) + (skin_row(s.joints.z, 1u) * s.weights.z)) + (skin_row(s.joints.w, 1u) * s.weights.w); m.r2 = (((skin_row(s.joints.x, 2u) * s.weights.x) + (skin_row(s.joints.y, 2u) * s.weights.y)) + (skin_row(s.joints.z, 2u) * s.weights.z)) + (skin_row(s.joints.w, 2u) * s.weights.w); return m; } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1252 = transpose(hedra_mat3(m)); return float4x4(float4(_1252[0], 0.0f), float4(_1252[1], 0.0f), float4(_1252[2], 0.0f), float4(-mul(m[3].xyz, _1252), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1358 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (true) { _1358 = true; } else { _1358 = false; } if (_1358) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { dir = VERTEX - NODE_POSITION_WORLD; } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1435 = false; if (true) { _1435 = true; } else { _1435 = true; } return _1435; } float4 hedra_vertex_world() { if (false) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (false) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = float4(dir, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1401; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1631 = { pos, normal, uv, flags, tangent, weight }; SkinIn _1649 = { joints, weights }; SkinRows _1681 = skin_rows(_1649); float4 _1683 = float4(_1631.pos, 1.0f); float3 _1697 = float3(_1681.r0.x, _1681.r1.x, _1681.r2.x); float3 _1704 = float3(_1681.r0.y, _1681.r1.y, _1681.r2.y); float3 _1711 = float3(_1681.r0.z, _1681.r1.z, _1681.r2.z); bool _1714 = dot(_1697, cross(_1704, _1711)) < 0.0f; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(float3(dot(_1681.r0, _1683), dot(_1681.r1, _1683), dot(_1681.r2, _1683)), normalize(mul(_1631.normal, float3x3(cross(_1704, _1711), cross(_1711, _1697), cross(_1697, _1704))) * (_1714 ? (-1.0f) : 1.0f)), float4(normalize(mul(_1631.tangent.xyz, float3x3(_1697, _1704, _1711))), _1631.tangent.w), _1631.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); uint _1743 = _1631.flags | (_1714 ? 128u : 0u); float _1746 = hedra_tangent_sign(_1631.tangent.w, _1714); if (hedra_vertex_space()) { CustomOut _1755 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1746, _1743); gl_Position = _1755.clip; world = _1755.world; normal_1 = _1755.normal; uv_1 = _1755.uv; flags_1 = _1755.flags; tangent_1 = _1755.tangent; color = _1755.color; uv2 = _1755.uv2; instance_id = _1755.instance_id; hedra_v0 = _1755.hedra_v0; hedra_v1 = _1755.hedra_v1; hedra_v2 = _1755.hedra_v2; hedra_v3 = _1755.hedra_v3; return; } CustomOut _1786 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1746, _1743); gl_Position = _1786.clip; world = _1786.world; normal_1 = _1786.normal; uv_1 = _1786.uv; flags_1 = _1786.flags; tangent_1 = _1786.tangent; color = _1786.color; uv2 = _1786.uv2; instance_id = _1786.instance_id; hedra_v0 = _1786.hedra_v0; hedra_v1 = _1786.hedra_v1; hedra_v2 = _1786.hedra_v2; hedra_v3 = _1786.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; joints = stage_input.joints; weights = stage_input.weights; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; }  fs_custommainíEstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 zenith; float hedra_pad0; float3 horizon; float hedra_pad1; float3 below; float bands; float curve; float hedra_pad2; float hedra_pad3; float hedra_pad4; float3 sun_direction; float hedra_pad5; float3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6; float2 horizon_band; float hedra_pad7; float hedra_pad8; float3 horizon_tint; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _566 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const uint _2652[4] = { 0u, 0u, 0u, 0u }; static const float2 _2655[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _2662[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const DecalSurface _5007 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Shadow : register(b2) { ShadowU Shadow_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Probe : register(b4) { ProbeU Probe_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D t_shadow : register(t0); SamplerComparisonState s_shadow : register(s0); TextureCube t_radiance : register(t5); Texture2D t_panorama : register(t6); SamplerState s_radiance : register(s3); SamplerState s_panorama : register(s4); Texture2D t_ao : register(t1); Texture2DArray t_lightmap : register(t7); SamplerState s_lightmap : register(s5); Texture2D t_probes : register(t8); SamplerState s_probes : register(s6); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); Texture2D t_screen : register(t3); Texture2D horizon_texture : register(t4); SamplerState SAMPLER_NEAREST_REPEAT : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 _5403; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 _5403 : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float SPECULAR_AMOUNT = 0.0f; static float3 LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_COLOR = float3(0.0f, 0.0f, 0.0f); static bool LIGHT_IS_DIRECTIONAL = false; static float ATTENUATION = 0.0f; static float3 DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float3 dir = float3(0.0f, 0.0f, 0.0f); uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint spvPackUnorm4x8(float4 value) { uint4 Packed = uint4(round(saturate(value) * 255.0)); return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); } float4 spvUnpackUnorm4x8(uint value) { uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); return float4(Packed) / 255.0; } bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _4084 = transpose(hedra_mat3(m)); return float4x4(float4(_4084[0], 0.0f), float4(_4084[1], 0.0f), float4(_4084[2], 0.0f), float4(-mul(m[3].xyz, _4084), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { dir = i.hedra_v0.xyz; } float3 scene_to_frame(float3 v) { return float3(v.x, -v.z, v.y); } void fragment() { float3 col = float3(0.0f, 0.0f, 0.0f); bool _3943 = false; float t = 0.0f; bool _3941 = false; float3 _3947 = normalize(dir); float _3948 = _3947.z; t = pow(clamp(_3948, 0.0f, 1.0f), 1.0f / hedra_p_1_m0.curve); if (hedra_p_1_m0.bands >= 2.0f) { t = floor(t * hedra_p_1_m0.bands) / hedra_p_1_m0.bands; } col = lerp(hedra_p_1_m0.horizon, hedra_p_1_m0.zenith, float3(t, t, t)); if (_3948 < 0.0f) { float _3984 = clamp((-_3948) * 8.0f, 0.0f, 1.0f); col = lerp(hedra_p_1_m0.horizon, hedra_p_1_m0.below, float3(_3984, _3984, _3984)); } float _3994 = degrees(acos(clamp(dot(_3947, normalize(scene_to_frame(hedra_p_1_m0.sun_direction))), -1.0f, 1.0f))); col += (hedra_p_1_m0.sun_color * (hedra_p_1_m0.halo_strength * pow(clamp(1.0f - (_3994 / max(hedra_p_1_m0.halo_size, 0.001000000047497451305389404296875f)), 0.0f, 1.0f), 2.0f))); if (_3994 < hedra_p_1_m0.sun_size) { col = hedra_p_1_m0.sun_color * 1.39999997615814208984375f; } float _4032 = (degrees(asin(clamp(_3948, -1.0f, 1.0f))) - hedra_p_1_m0.horizon_band.x) / max(hedra_p_1_m0.horizon_band.y - hedra_p_1_m0.horizon_band.x, 0.001000000047497451305389404296875f); float4 _4045 = horizon_texture.Sample(SAMPLER_NEAREST_REPEAT, float2(((atan2(_3947.y, _3947.x) / 6.283185482025146484375f) + 0.5f) * hedra_p_1_m0.horizon_repeat, 1.0f - clamp(_4032, 0.0f, 1.0f))); if (_4032 >= 0.0f) { _3941 = _4032 <= 1.0f; } else { _3941 = false; } if (_3941) { _3943 = _4045.w >= 0.5f; } else { _3943 = false; } if (_3943) { col = _4045.xyz * hedra_p_1_m0.horizon_tint; } ALBEDO = col; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _4243 = facing != hedra_mirrored(_in.flags); hedra_front = _4243; FRONT_FACING = _4243; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _4259 = hedra_mat3(G_1_m0.view); float3 _4262 = -normalize(_in.normal); float3 _4264 = normalize(_in.normal); bool3 _4266 = bool3(_4243, _4243, _4243); float3 _4265 = float3(_4266.x ? _4264.x : _4262.x, _4266.y ? _4264.y : _4262.y, _4266.z ? _4264.z : _4262.z); hedra_n_geo = _4265; hedra_n = _4265; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_4265 * dot(_4265, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _4288 = VERTEX; NORMAL = normalize(mul(_4265, _4259)); float3 _4291 = NORMAL; TANGENT = normalize(mul(t, _4259)); BINORMAL = normalize(mul(cross(_4265, t) * _in.tangent.w, _4259)); float3 _4299 = normalize(-VERTEX); bool _4302 = G_1_m0.camera_pos.w > 0.5f; bool3 _4304 = bool3(_4302, _4302, _4302); VIEW = float3(_4304.x ? float3(0.0f, 0.0f, 1.0f).x : _4299.x, _4304.y ? float3(0.0f, 0.0f, 1.0f).y : _4299.y, _4304.z ? float3(0.0f, 0.0f, 1.0f).z : _4299.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _4310 = transpose(_4259); if (any(bool3(NORMAL.x != _4291.x, NORMAL.y != _4291.y, NORMAL.z != _4291.z))) { hedra_n = normalize(mul(NORMAL, _4310)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _4310)); } if (any(bool3(LIGHT_VERTEX.x != _4288.x, LIGHT_VERTEX.y != _4288.y, LIGHT_VERTEX.z != _4288.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _4375 = false; bool _4377 = false; if ((flags_1 & 2u) != 0u) { return true; } if (true) { _4375 = hedra_front; } else { _4375 = false; } if (_4375) { return true; } if (false) { _4377 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _4377 = false; } return _4377; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1144 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1144, _1144, _1144); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1169 = floor(p); float3 _1170 = frac(p); float3 _1174 = (_1170 * _1170) * (float3(3.0f, 3.0f, 3.0f) - (_1170 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1169), emerge_hash(_1169 + float3(1.0f, 0.0f, 0.0f)), _1174.x), lerp(emerge_hash(_1169 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1169 + float3(1.0f, 1.0f, 0.0f)), _1174.x), _1174.y), lerp(lerp(emerge_hash(_1169 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1169 + float3(1.0f, 0.0f, 1.0f)), _1174.x), lerp(emerge_hash(_1169 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1169 + float3(1.0f, 1.0f, 1.0f)), _1174.x), _1174.y), _1174.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1231 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1231) * 0.64999997615814208984375f) + (emerge_noise((_1231 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } float3 hedra_view_dir(float3 world_1) { float3 _4414 = normalize(G_1_m0.camera_pos.xyz - world_1); float3 _4415 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _4418 = G_1_m0.camera_pos.w > 0.5f; bool3 _4420 = bool3(_4418, _4418, _4418); return float3(_4420.x ? _4415.x : _4414.x, _4420.y ? _4415.y : _4414.y, _4420.z ? _4415.z : _4414.z); } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float3 radiance(float3 d, float roughness) { return t_radiance.SampleLevel(s_radiance, d, roughness * float(max(Sky_1_m0.flags.y, 1u) - 1u)).xyz; } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _1604 = max(x, 0.0f) * max(x, 0.0f); float _1605 = _1604 * _1604; return _1605 * _1605; } float3 fog_sun_scatter(float3 fc, float3 dir_1) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _1624 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _1624)) { break; } uint _1647 = pool_sun(k); if (Lit_1_m0.lights[min(_1647, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_1647, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir_1, -Lit_1_m0.lights[min(_1647, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 surface_fog(float3 c, float3 world_1, float3 dir_1) { float amount = 0.0f; bool _1714 = false; float dist = 0.0f; float3 fc = float3(0.0f, 0.0f, 0.0f); float _1722 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; dist = distance(world_1, G_1_m0.camera_pos.xyz); if (Sky_1_m0.fog_origin.w > 0.5f) { dist = max(_1722 - Sky_1_m0.fog_origin.x, 0.0f); } if ((Sky_1_m0.flags.x & 256u) != 0u) { float _1749 = smoothstep(Sky_1_m0.fog_depth.x, Sky_1_m0.fog_depth.y, dist); amount = ((_1749 > 0.0f) ? pow(max(_1749, 9.9999999747524270787835121154785e-07f), Sky_1_m0.fog_depth.z) : 0.0f) * Sky_1_m0.fog.x; } else { amount = 1.0f - exp(min(0.0f, (-dist) * Sky_1_m0.fog.x)); } if (abs(Sky_1_m0.fog.w) >= 9.9999997473787516355514526367188e-05f) { amount = max(amount, 1.0f - exp(min(0.0f, (dot(world_1, Lit_1_m0.up.xyz) - Sky_1_m0.fog.z) * Sky_1_m0.fog.w))); } amount = clamp(amount, 0.0f, 1.0f); fc = Sky_1_m0.fog_color.xyz; if ((Sky_1_m0.flags.x & 8u) != 0u) { _1714 = Sky_1_m0.fog_depth.w > 0.0f; } else { _1714 = false; } if (true ? _1714 : false) { fc = lerp(fc, radiance(sky_dir(dir_1), lerp(1.0f / float(max(Sky_1_m0.flags.y, 2u) - 1u), 1.0f, 1.0f - clamp((_1722 - Sky_1_m0.fog_origin.y) / max(Sky_1_m0.fog_origin.z - Sky_1_m0.fog_origin.y, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f))) * Sky_1_m0.sun.w, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)); } fc = fog_sun_scatter(fc, dir_1); return lerp(c, fc, float3(amount, amount, amount)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _1868 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _1872 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_1868 == 4u) { return float2(0.0f, _1872); } float3 _1881 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _1882 = abs(d); bool3 _1883 = bool3(_1882.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _1882.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _1882.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _1884 = float3(_1883.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _1883.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _1883.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _1887 = ((-_1881) - o) / _1884; float3 _1889 = (_1881 - o) / _1884; float3 _1890 = min(_1887, _1889); float3 _1891 = max(_1887, _1889); r = float2(max(0.0f, _1890.y), min(_1872, _1891.y)); if (_1868 == 3u) { r = float2(max(max(r.x, _1890.x), _1890.z), min(min(r.y, _1891.x), _1891.z)); } else { if (_1868 == 0u) { a = dot(d / _1881, d / _1881); b = dot(o / _1881, d / _1881); c = dot(o / _1881, o / _1881) - 1.0f; } else { float _1930 = min(_1881.x, _1881.z); float _1935 = (_1868 == 1u) ? (_1930 / (2.0f * _1881.y)) : 0.0f; float _1938 = _1881.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_1935 * _1935) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_1935 * _1935) * _1938) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_1868 == 1u) ? (((_1935 * _1935) * _1938) * _1938) : (_1930 * _1930)); } } float _1984 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_1984 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _2048 = min(((-b) - sqrt(_1984)) / a, ((-b) + sqrt(_1984)) / a); float _2061 = max(((-b) - sqrt(_1984)) / a, ((-b) + sqrt(_1984)) / a); if (a > 0.0f) { r = float2(max(r.x, _2048), min(r.y, _2061)); } else { if (r.x < min(r.y, _2048)) { r.y = min(r.y, _2048); } else { r.x = max(r.x, _2061); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _2105 = min(k, 15u); rho = Fog_1_m0.entries[_2105].material.x * min(exp2((-Fog_1_m0.entries[_2105].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2105].material.w)), 1.0f); if (Fog_1_m0.entries[_2105].material.z > 0.0f) { uint _2132 = uint(clamp(Fog_1_m0.entries[_2105].albedo.w, 0.0f, 4294967040.0f)); float3 _2135 = Fog_1_m0.entries[_2105].size.xyz * 0.5f; float _2138 = min(_2135.x, _2135.z); if (_2132 == 0u) { float _2144 = length(lp / _2135); sdf = (_2144 * (_2144 - 1.0f)) / max(length(lp / (_2135 * _2135)), 9.9999999600419720025001879548654e-13f); } else { if (_2132 == 3u) { float3 _2157 = abs(lp) - _2135; sdf = length(max(_2157, float3(0.0f, 0.0f, 0.0f))) + min(max(_2157.x, max(_2157.y, _2157.z)), 0.0f); } else { if (_2132 == 2u) { float2 _2178 = float2(length(lp.xz) - _2138, abs(lp.y) - _2135.y); sdf = min(max(_2178.x, _2178.y), 0.0f) + length(max(_2178, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _2138 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _2135.y))), float2(length(lp.xz), lp.y - _2135.y)), (-_2135.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_2105].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_2105].material.z); } return rho; } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float3 fog_light(uint n, float3 p, float3 dir_1) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _2340 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_2340].lights.z, 8u))) { break; } uint _2376 = min(((((k < 4u) ? Fog_1_m0.entries[_2340].lights.x : Fog_1_m0.entries[_2340].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _2377 = min(_2376, 63u); l = -Lit_1_m0.lights[_2377].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_2377].info.x != 0u) { float3 _2390 = Lit_1_m0.lights[_2377].position.xyz - p; float _2392 = max(length(_2390), 9.9999999747524270787835121154785e-07f); l = _2390 / float3(_2392, _2392, _2392); atten = omni_attenuation(length(_2390), Lit_1_m0.lights[_2377].position.w, Lit_1_m0.lights[_2377].direction.w); if (Lit_1_m0.lights[_2377].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_2377].direction.xyz), Lit_1_m0.lights[_2377].spot.x)) / max(1.0f - Lit_1_m0.lights[_2377].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_2377].spot.y)); } } float _2433 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir_1, l)); sum += (Lit_1_m0.lights[_2377].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _2433) * sqrt(_2433))) * Fog_1_m0.light_fog[min((_2376 >> 2u), 15u)][min((_2376 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _2231 = min(k, 15u); if ((Fog_1_m0.entries[_2231].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_2231].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_2231].material.y) * a), 1.0f); } float _2249 = clamp((-a) / b, t0, t1); float _2251 = (b > 0.0f) ? _2249 : t0; float _2253 = (b > 0.0f) ? t1 : _2249; float _2258 = ((Fog_1_m0.entries[_2231].material.y * abs(b)) * (_2253 - _2251)) * 0.693147182464599609375f; return Fog_1_m0.entries[_2231].material.x * (((t1 - t0) - (_2253 - _2251)) + ((min(exp2((-Fog_1_m0.entries[_2231].material.y) * max(a + (b * ((b > 0.0f) ? _2251 : _2253)), 0.0f)), 1.0f) * (_2253 - _2251)) * ((_2258 < 0.00999999977648258209228515625f) ? (1.0f - (_2258 * (0.5f - (_2258 * (0.16666667163372039794921875f - (_2258 / 24.0f)))))) : ((1.0f - exp(-_2258)) / _2258)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _2476 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _2478 = false; float tau = 0.0f; bool _2469 = false; uint i = 0u; bool _2471 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _2481 = min(k, 15u); float3 _2487 = mul(float4(o, 1.0f), Fog_1_m0.entries[_2481].to_local).xyz; float3 _2491 = mul(float4(d, 0.0f), Fog_1_m0.entries[_2481].to_local).xyz; float _2498 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2481].material.w; float _2502 = dot(d, Fog_1_m0.up.xyz); bool _2505 = Fog_1_m0.entries[_2481].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_2481].material.y > 0.0f) { _2469 = ((-_2498) / _2502) > ch.x; } else { _2469 = false; } if (_2469) { _2471 = ((-_2498) / _2502) < ch.y; } else { _2471 = false; } if (_2471) { split = (-_2498) / _2502; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_2505 ? 12u : 4u))) { break; } uint _2556 = i & 3u; if (!(_2556 == 0u)) { _2476 = _2556 == 3u; } else { _2476 = true; } float _2564 = _2476 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_2556 == 0u)) { _2478 = _2556 == 3u; } else { _2478 = true; } float _2572 = _2478 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _2575 = float2(split, ch.y); float2 _2578 = float2(ch.x, split); bool _2580 = i < 8u; bool2 _2582 = bool2(_2580, _2580); float2 _2581 = float2(_2582.x ? _2578.x : _2575.x, _2582.y ? _2578.y : _2575.y); bool _2584 = i < 4u; bool2 _2586 = bool2(_2584, _2584); float2 _2585 = float2(_2586.x ? ch.x : _2581.x, _2586.y ? ch.y : _2581.y); float _2590 = (_2585.y - _2585.x) * 0.5f; float _2599 = ((_2585.x + _2585.y) * 0.5f) + (_2590 * ((_2556 < 2u) ? (-_2564) : _2564)); float3 _2601 = o + (d * _2599); float _2604 = fog_density(k, _2601, _2487 + (_2491 * _2599)); if (i < 4u) { q += (((Fog_1_m0.entries[_2481].albedo.xyz * fog_light(k, _2601, d)) + Fog_1_m0.entries[_2481].emission.xyz) * ((_2572 * _2590) * clamp(_2604, 0.0f, 1.0f))); } else { tau += ((_2572 * _2590) * _2604); } i++; continue; } if (!_2505) { tau = fog_falloff_depth(k, _2498, _2502, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _2652; uint i_3 = 0u; uint n = 0u; bool _2658 = false; float2 chords[4] = _2655; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _2662; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _2675 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_2675 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _2705 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_2675) { _2658 = _2705 == 0u; } else { _2658 = false; } if (_2658) { break; } uint _2717 = _2675 ? i_2 : (min(_2705, 16u) - 1u); uint _2718 = min(_2717, 15u); float2 _2727 = fog_chord(_2717, mul(float4(o, 1.0f), Fog_1_m0.entries[_2718].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_2718].to_local).xyz, t_end); if (_2727.y > _2727.x) { at[min(m, 3u)] = _2717; chords[min(m, 3u)] = _2727; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _2883 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _2883)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _3003 = exp(-tau); return (c * _3003) + (q * ((1.0f - _3003) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 fog_volumes(float3 c, float3 world_1, uint list) { float3 _3039 = world_1 - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(world_1, 1.0f), G_1_m0.view).z); bool _3042 = G_1_m0.camera_pos.w > 0.5f; bool3 _3044 = bool3(_3042, _3042, _3042); float3 _3043 = float3(_3044.x ? _3039.x : G_1_m0.camera_pos.xyz.x, _3044.y ? _3039.y : G_1_m0.camera_pos.xyz.y, _3044.z ? _3039.z : G_1_m0.camera_pos.xyz.z); float _3046 = length(world_1 - _3043); float _3048 = max(_3046, 9.9999999747524270787835121154785e-07f); float3 _3051 = fog_integrate(c, _3043, (world_1 - _3043) / float3(_3048, _3048, _3048), _3046, list); bool _3052 = _3046 > 0.0f; bool3 _3054 = bool3(_3052, _3052, _3052); return float3(_3054.x ? _3051.x : c.x, _3054.y ? _3051.y : c.y, _3054.z ? _3051.z : c.z); } float3 hedra_fog(float3 c_in, float3 v) { float3 c = float3(0.0f, 0.0f, 0.0f); c = c_in; if (true) { return c; } if ((Sky_1_m0.flags.x & 128u) != 0u) { c = surface_fog(c, hedra_world, -v); } if (O_1_m0.decals.w != 0u) { c = fog_volumes(c, hedra_world, O_1_m0.decals.w); } return c; } float3 filmic_curve(float3 x) { float _925 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _929 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _935 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _939 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_925, _925, _925))) + float3(_929, _929, _929)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_935, _935, _935))) - float3(_939, _939, _939); } float3 aces_curve(float3 c, float white) { float3 _987 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _995 = ((_987 * (_987 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_987 * ((_987 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _1000 = 1.7999999523162841796875f * white; float _1008 = ((_1000 * (_1000 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_1000 * ((0.98372900485992431640625f * _1000) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _995), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _995), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _995)) / float3(_1008, _1008, _1008); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _1063 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_1063, _1063, _1063); float3 _1068 = v * v; float3 _1069 = _1068 * _1068; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_1068 * 4.01109981536865234375f)) - ((_1068 * 25.68199920654296875f) * v)) + (_1069 * 70.35900115966796875f)) - ((_1069 * 74.7779998779296875f) * v)) + ((_1069 * 27.069000244140625f) * _1068), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _1098 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_1098 * Lit_1_m0.tone.y) + _1098) / ((_1098 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_1098) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_1098, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_1098); } return _1098; } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } float3 srgb_to_linear(float3 c) { float3 _254 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _257 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _259 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_259.x ? _254.x : _257.x, _259.y ? _254.y : _257.y, _259.z ? _254.z : _257.z); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _566; bool _569 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _574 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _574)) { break; } uint _603 = decal_entry(k); uint _606 = min(min(_603, 63u), 63u); float3 _612 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_606].to_local).xyz; if (all(bool3(_612.x >= float3(0.0f, -1.0f, 0.0f).x, _612.y >= float3(0.0f, -1.0f, 0.0f).y, _612.z >= float3(0.0f, -1.0f, 0.0f).z))) { _569 = all(bool3(_612.x <= float3(1.0f, 1.0f, 1.0f).x, _612.y <= float3(1.0f, 1.0f, 1.0f).y, _612.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _569 = false; } if (!_569) { uint _771 = k; k = _771 + 1u; continue; } fade = pow(1.0f - abs(_612.y), (_612.y > 0.0f) ? Decal_1_m0.entries[_606].fades.x : Decal_1_m0.entries[_606].fades.y); if (Decal_1_m0.entries[_606].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_606].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_606].axis_y.xyz) * 0.5f) + 0.5f); } float2 _650 = _612.xz; float _651 = decal_level(Decal_1_m0.entries[_606], world_1); if (Decal_1_m0.entries[_606].layers.x > 0u) { float4 _663 = decal_texel(Decal_1_m0.entries[_606].layers.x, _650, _651, (Decal_1_m0.entries[_606].flags.x & 1u) != 0u); float4 _669 = float4(srgb_to_linear(_663.xyz), _663.w) * Decal_1_m0.entries[_606].modulate; float _672 = _669.w * fade; float _678 = _672 * Decal_1_m0.entries[_606].fades.w; out_s.base = lerp(out_s.base, _669.xyz, float3(_678, _678, _678)); if (Decal_1_m0.entries[_606].layers.y > 0u) { float4 _691 = decal_texel(Decal_1_m0.entries[_606].layers.y, _650, _651, (Decal_1_m0.entries[_606].flags.x & 2u) != 0u); float _694 = (_691.x * 2.0f) - 1.0f; float _697 = 1.0f - (_691.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_606].axis_x.xyz * _694) + (Decal_1_m0.entries[_606].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_694 * _694)) - (_697 * _697))))) + (Decal_1_m0.entries[_606].axis_z.xyz * _697)), float3(_672, _672, _672))); } if (Decal_1_m0.entries[_606].layers.z > 0u) { float4 _731 = decal_texel(Decal_1_m0.entries[_606].layers.z, _650, _651, (Decal_1_m0.entries[_606].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _731.x, _672); out_s.roughness = lerp(out_s.roughness, _731.y, _672); out_s.metallic = lerp(out_s.metallic, _731.z, _672); } } if (Decal_1_m0.entries[_606].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_606].layers.w, _650, _651, (Decal_1_m0.entries[_606].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_606].modulate.xyz) * Decal_1_m0.entries[_606].axis_x.w) * fade); } uint _771 = k; k = _771 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } uint object_light_count() { return min(O_1_m0.lights.z, 8u); } uint object_light(uint k) { return min(((((k < 4u) ? O_1_m0.lights.x : O_1_m0.lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float4 hedra_light_dir(uint i, float3 world_1) { float atten = 0.0f; uint _4560 = min(i, 63u); if (Lit_1_m0.lights[_4560].info.x == 0u) { return float4(-Lit_1_m0.lights[_4560].direction.xyz, 1.0f); } float3 _4574 = Lit_1_m0.lights[_4560].position.xyz - world_1; float _4575 = length(_4574); float _4576 = max(_4575, 9.9999999747524270787835121154785e-07f); float3 _4578 = _4574 / float3(_4576, _4576, _4576); atten = omni_attenuation(_4575, Lit_1_m0.lights[_4560].position.w, Lit_1_m0.lights[_4560].direction.w); if (Lit_1_m0.lights[_4560].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-_4578, Lit_1_m0.lights[_4560].direction.xyz), Lit_1_m0.lights[_4560].spot.x)) / max(1.0f - Lit_1_m0.lights[_4560].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_4560].spot.y)); } return float4(_4578, atten); } float shadow_factor(uint i, float3 world_1, float3 n_geo, float3 l) { int dy = -1; bool _3114 = false; uint part = 0u; bool _3116 = false; uint c = 0u; float vis = 0.0f; bool _3112 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint _3124 = min(i, 63u); uint _3134 = min(Lit_1_m0.lights[min(i, 63u)].info.w, 15u); uint _3137 = min(_3134, 15u); uint _3140 = min(_3134, 15u); uint _3146 = max(Shadow_1_m0.lights[min(_3134, 15u)].info.y, 1u); float _3152 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; if (Lit_1_m0.lights[_3124].info.x == 0u) { if (_3152 > Shadow_1_m0.lights[min(_3134, 15u)].fade.y) { return 1.0f; } part = _3146 - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(c < _3146)) { break; } if (_3152 <= Shadow_1_m0.lights[min(_3134, 15u)].splits[min(c, 3u)]) { part = c; break; } c++; continue; } } uint _3196 = part; uint _3202 = min(min((Shadow_1_m0.lights[_3140].info.x + min(_3196, (_3146 - 1u))), 15u), 15u); float _3209 = Shadow_1_m0.tiles[_3202].texel.x + (Shadow_1_m0.tiles[_3202].texel.y * distance(world_1, Lit_1_m0.lights[min(i, 63u)].position.xyz)); float3 _3220 = (world_1 + (n_geo * ((Shadow_1_m0.lights[_3137].params.y * max(Shadow_1_m0.lights[_3137].params.z, 1.0f)) * _3209))) + (l * (Shadow_1_m0.lights[_3137].params.x * _3209)); if (Lit_1_m0.lights[_3124].info.x == 1u) { float3 _3224 = _3220 - Lit_1_m0.lights[min(i, 63u)].position.xyz; float3 _3225 = abs(_3224); if (_3225.x >= _3225.y) { _3112 = _3225.x >= _3225.z; } else { _3112 = false; } if (_3112) { part = (_3224.x >= 0.0f) ? 0u : 1u; } else { if (_3225.y >= _3225.z) { part = (_3224.y >= 0.0f) ? 2u : 3u; } else { part = (_3224.z >= 0.0f) ? 4u : 5u; } } } uint _3258 = min((Shadow_1_m0.lights[_3140].info.x + min(part, (_3146 - 1u))), 15u); float4 _3263 = mul(float4(_3220, 1.0f), Shadow_1_m0.tiles[min(_3258, 15u)].view_proj); if (_3263.w <= 0.0f) { return 1.0f; } float3 _3271 = _3263.xyz / float3(_3263.www); if (!(abs(_3271.x) > 1.0f)) { _3114 = abs(_3271.y) > 1.0f; } else { _3114 = true; } if (!_3114) { _3116 = _3271.z > 1.0f; } else { _3116 = true; } if (_3116) { return 1.0f; } uint _3292 = min(_3258, 15u); float2 _3305 = Shadow_1_m0.tiles[_3292].rect.xy + (float2((_3271.x * 0.5f) + 0.5f, 0.5f - (_3271.y * 0.5f)) * Shadow_1_m0.tiles[_3292].rect.zw); float _3309 = 0.5f * Shadow_1_m0.atlas.x; float2 _3311 = Shadow_1_m0.tiles[_3292].rect.xy + float2(_3309, _3309); float _3315 = 0.5f * Shadow_1_m0.atlas.x; float2 _3317 = (Shadow_1_m0.tiles[_3292].rect.xy + Shadow_1_m0.tiles[_3292].rect.zw) - float2(_3315, _3315); if (Shadow_1_m0.lights[_3137].params.z <= 0.0f) { vis = t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3305, _3311, _3317), _3271.z); } else { float _3328 = Shadow_1_m0.lights[_3137].params.z * Shadow_1_m0.atlas.x; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(dx <= 1)) { break; } vis += t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3305 + (float2(float(dx), float(dy)) * _3328), _3311, _3317), _3271.z); dx++; continue; } dy++; continue; } vis /= 9.0f; } if (Lit_1_m0.lights[_3124].info.x == 0u) { uint _3393 = min(_3134, 15u); vis = lerp(vis, 1.0f, smoothstep(Shadow_1_m0.lights[_3393].fade.x, Shadow_1_m0.lights[_3393].fade.y, _3152)); } return lerp(1.0f, vis, Shadow_1_m0.lights[_3137].params.w); } float hedra_shadow(uint i, float3 l) { bool _4619 = false; if (false) { _4619 = Lit_1_m0.lights[min(i, 63u)].info.y != 1u; } else { _4619 = true; } if (_4619) { return 1.0f; } return shadow_factor(i, hedra_world, hedra_n_geo, l); } void light() { } float3 f_schlick(float3 f0, float vh) { return f0 + ((float3(1.0f, 1.0f, 1.0f) - f0) * pow(1.0f - vh, 5.0f)); } float d_ggx(float nh, float a2) { float _791 = ((nh * nh) * (a2 - 1.0f)) + 1.0f; return a2 / ((3.1415927410125732421875f * _791) * _791); } float v_smith(float nl, float nv, float a2) { return 0.5f / max((nl * sqrt(((nv * nv) * (1.0f - a2)) + a2)) + (nv * sqrt(((nl * nl) * (1.0f - a2)) + a2)), 9.9999997473787516355514526367188e-05f); } float3 light_specular(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float specular) { float _844 = dot(n, l); if (_844 <= 0.0f) { return float3(0.0f, 0.0f, 0.0f); } float3 _849 = normalize(l + v); return (((diffuse / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) + ((f_schlick(f0, max(dot(v, _849), 0.0f)) * (d_ggx(max(dot(n, _849), 0.0f), a2) * v_smith(_844, max(dot(n, v), 9.9999997473787516355514526367188e-05f), a2))) * specular)) * radiance_1) * _844; } float hedra_schlick(float u) { float _4426 = clamp(1.0f - u, 0.0f, 1.0f); float _4427 = _4426 * _4426; return (_4427 * _4427) * _4426; } float hedra_diffuse_brdf(float nl, float nv, float lh, float r) { float _4439 = max(nl, 0.0f); if (false) { return max(0.0f, (nl + r) / ((1.0f + r) * (1.0f + r))) * 0.3183098733425140380859375f; } if (false) { return smoothstep(-r, max(r, 0.00999999977648258209228515625f), nl) * 0.3183098733425140380859375f; } if (false) { float _4460 = (((2.0f * lh) * lh) * r) - 0.5f; return ((0.3183098733425140380859375f * (1.0f + (_4460 * hedra_schlick(nv)))) * (1.0f + (_4460 * hedra_schlick(_4439)))) * _4439; } return _4439 * 0.3183098733425140380859375f; } float3 hedra_light_modes(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float r, float specular) { float3 c = float3(0.0f, 0.0f, 0.0f); float mid = 0.0f; bool _4487 = false; float _4491 = min(dot(n, l), 1.0f); float _4493 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float3 _4495 = normalize(l + v); c = (diffuse * hedra_diffuse_brdf(_4491, _4493, clamp(dot(l, _4495), 0.0f, 1.0f), r)) * radiance_1; if (r > 0.0f) { if (false) { mid = 1.0f - r; mid *= mid; c += ((diffuse * radiance_1) * ((smoothstep(mid - (r * 0.5f), mid + (r * 0.5f), dot(normalize(-reflect(l, n)), v)) * mid) * specular)); } else { if (false) { _4487 = _4491 > 0.0f; } else { _4487 = false; } if (_4487) { c += (((f_schlick(f0, max(dot(v, _4495), 0.0f)) * (d_ggx(max(dot(n, _4495), 0.0f), a2) * v_smith(_4491, _4493, a2))) * (specular * _4491)) * radiance_1); } } } return c; } float3 probe_light(float3 n) { return max(float3(O_1_m0.gi[0u].x + dot(O_1_m0.gi[0u].yzw, n), O_1_m0.gi[1u].x + dot(O_1_m0.gi[1u].yzw, n), O_1_m0.gi[2u].x + dot(O_1_m0.gi[2u].yzw, n)), float3(0.0f, 0.0f, 0.0f)); } float4 gi_diffuse(float3 n, bool baked, float3 baked_light) { if (baked) { return float4(baked_light, 1.0f); } if (true ? ((O_1_m0.extra.x & 8u) != 0u) : false) { return float4(probe_light(n), 1.0f); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float3 sh_irradiance(float3 n) { float3 c = float3(0.0f, 0.0f, 0.0f); c = Sky_1_m0.sh[0u].xyz * 0.2820949852466583251953125f; c += (Sky_1_m0.sh[1u].xyz * (0.48860299587249755859375f * n.y)); c += (Sky_1_m0.sh[2u].xyz * (0.48860299587249755859375f * n.z)); c += (Sky_1_m0.sh[3u].xyz * (0.48860299587249755859375f * n.x)); c += (Sky_1_m0.sh[4u].xyz * ((1.09254801273345947265625f * n.x) * n.y)); c += (Sky_1_m0.sh[5u].xyz * ((1.09254801273345947265625f * n.y) * n.z)); c += (Sky_1_m0.sh[6u].xyz * (0.3153919875621795654296875f * (((3.0f * n.z) * n.z) - 1.0f))); c += (Sky_1_m0.sh[7u].xyz * ((1.09254801273345947265625f * n.x) * n.z)); c += (Sky_1_m0.sh[8u].xyz * (0.546274006366729736328125f * ((n.x * n.x) - (n.y * n.y)))); return max(c, float3(0.0f, 0.0f, 0.0f)); } float2 env_brdf_approx(float roughness, float nv) { float4 _1583 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * roughness) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f); return (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_1583.x * _1583.x, exp2((-9.27999973297119140625f) * nv)) * _1583.x) + _1583.y)) + _1583.zw; } float probe_weight(ProbeEntryU p, float3 world_1) { float3 _3623 = mul(float4(world_1, 1.0f), p.to_local).xyz; float _3639 = min(p.extents.xyz.x - abs(_3623.x), min(p.extents.xyz.y - abs(_3623.y), p.extents.xyz.z - abs(_3623.z))); if (_3639 < 0.0f) { return 0.0f; } if (!(p.extents.w > 0.0f)) { return 1.0f; } return min(_3639 / p.extents.w, 1.0f); } float probe_exit(float o, float d, float e) { if (d > 0.0f) { return (e - o) / d; } if (d < 0.0f) { return ((-e) - o) / d; } return 3.0000000054977557577780399428115e+38f; } float3 probe_lookup(ProbeEntryU p, float3 world_1, float3 dir_1) { float3 _3681 = mul(float4(dir_1, 0.0f), p.to_local).xyz; if ((p.info.x & 1u) == 0u) { return _3681; } float3 _3691 = mul(float4(world_1, 1.0f), p.to_local).xyz; return (_3691 + (_3681 * max(min(probe_exit(_3691.x, _3681.x, p.extents.xyz.x), min(probe_exit(_3691.y, _3681.y, p.extents.xyz.y), probe_exit(_3691.z, _3681.z, p.extents.xyz.z))), 0.0f))) - p.offset.xyz; } float3 probe_face_uv(float3 d) { bool _3465 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _3468 = abs(d); if (_3468.x >= _3468.y) { _3465 = _3468.x >= _3468.z; } else { _3465 = false; } if (_3465) { ma = _3468.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_3468.y >= _3468.z) { ma = _3468.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _3468.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 probe_texel(uint row, float3 fuv, uint level) { float _3555 = 0.5f / float(max((Probe_1_m0.counts.z >> level), 1u)); return t_probes.SampleLevel(s_probes, float2((fuv.x + clamp(fuv.y, _3555, 1.0f - _3555)) / 6.0f, (float(row) + clamp(fuv.z, _3555, 1.0f - _3555)) / 8.0f), float(level)).xyz; } float3 probe_sample(uint row, float3 d, float lod) { bool _3583 = false; uint _3588 = max(Probe_1_m0.counts.y, 1u); float _3591 = clamp(lod, 0.0f, float(_3588 - 1u)); uint _3593 = uint(clamp(_3591, 0.0f, 4294967040.0f)); float _3595 = _3591 - float(_3593); float3 _3596 = probe_face_uv(d); float3 _3597 = probe_texel(row, _3596, _3593); if (!(_3595 <= 0.0f)) { _3583 = (_3593 + 1u) >= _3588; } else { _3583 = true; } if (_3583) { return _3597; } return (_3597 * (1.0f - _3595)) + (probe_texel(row, _3596, _3593 + 1u) * _3595); } float4 probe_reflection(float3 world_1, float3 r, float roughness, uint probes) { float3 acc = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3730 = min(Probe_1_m0.counts.x, 8u); float _3736 = roughness * float(max(Probe_1_m0.counts.y, 1u) - 1u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3730)) { break; } uint _3759 = i; uint _3761 = min(_3759, 7u); if (((probes >> Probe_1_m0.probes[_3761].info.w) & 1u) == 0u) { uint _3787 = i; i = _3787 + 1u; continue; } float _3771 = probe_weight(Probe_1_m0.probes[_3761], world_1); if (_3771 <= 0.0f) { uint _3787 = i; i = _3787 + 1u; continue; } acc += ((probe_sample(Probe_1_m0.probes[_3761].info.w, probe_lookup(Probe_1_m0.probes[_3761], world_1, r), _3736) * Probe_1_m0.probes[_3761].offset.w) * _3771); w_sum += _3771; uint _3787 = i; i = _3787 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float4 probe_ambient(float3 world_1, float3 n, uint probes) { float3 c = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; bool _3812 = false; float3 acc = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3819 = min(Probe_1_m0.counts.x, 8u); uint _3823 = max(Probe_1_m0.counts.y, 1u) - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3819)) { break; } uint _3845 = i; uint _3846 = min(_3845, 7u); if (!(((probes >> Probe_1_m0.probes[_3846].info.w) & 1u) == 0u)) { _3812 = Probe_1_m0.probes[_3846].info.y == 0u; } else { _3812 = true; } if (_3812) { uint _3889 = i; i = _3889 + 1u; continue; } float _3864 = probe_weight(Probe_1_m0.probes[_3846], world_1); if (_3864 <= 0.0f) { uint _3889 = i; i = _3889 + 1u; continue; } c = Probe_1_m0.probes[_3846].ambient.xyz; if (Probe_1_m0.probes[_3846].info.y == 1u) { c = probe_texel(Probe_1_m0.probes[_3846].info.w, probe_face_uv(mul(float4(n, 0.0f), Probe_1_m0.probes[_3846].to_local).xyz), _3823); } acc += (c * _3864); w_sum += _3864; uint _3889 = i; i = _3889 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float3 sky(float3 dir_1) { float _880 = acos(clamp(dot(normalize(dir_1), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_880 <= 1.57079637050628662109375f) { float _890 = clamp(1.0f - pow(max(1.0f - (1.0f - (_880 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_890, _890, _890)); } float _905 = clamp(1.0f - pow(max(1.0f - ((_880 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_905, _905, _905)); } float3 hedra_ambient(float3 n, float3 v, float3 diffuse, float3 f0, float roughness, float metallic) { float3 dif = float3(0.0f, 0.0f, 0.0f); float3 diffuse_amb = float3(0.0f, 0.0f, 0.0f); float3 dif_1 = float3(0.0f, 0.0f, 0.0f); float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 dif_2 = float3(0.0f, 0.0f, 0.0f); float3 spec_amb = float3(0.0f, 0.0f, 0.0f); float _4667 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float _4668 = 1.0f - roughness; float3 _4675 = f0 + ((max(float3(_4668, _4668, _4668), f0) - f0) * pow(1.0f - _4667, 5.0f)); float4 _4676 = gi_diffuse(n, false, float3(0.0f, 0.0f, 0.0f)); if ((Sky_1_m0.flags.x & 8u) != 0u) { float _4688 = Sky_1_m0.ibl.x * Sky_1_m0.sun.w; diffuse_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 16u) != 0u) { diffuse_amb = lerp(Sky_1_m0.ambient.xyz, sh_irradiance(sky_dir(n)) * _4688, float3(Sky_1_m0.ambient.w, Sky_1_m0.ambient.w, Sky_1_m0.ambient.w)); } if (_4676.w > 0.0f) { diffuse_amb = _4676.xyz; } spec_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 32u) != 0u) { spec_amb = radiance(sky_dir(reflect(-v, n)), roughness) * _4688; } else { if ((Sky_1_m0.flags.x & 64u) != 0u) { spec_amb = float3(0.0f, 0.0f, 0.0f); } } float2 _4734 = env_brdf_approx(roughness, _4667); if (Probe_1_m0.counts.x > 0u) { float4 _4745 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_1 = diffuse_amb; if (_4676.w <= 0.0f) { float4 _4759 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_1 = (diffuse_amb * (1.0f - _4759.w)) + _4759.xyz; } float _4774 = _4734.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * dif_1) + (((spec_amb * (1.0f - _4745.w)) + _4745.xyz) * ((f0 * _4734.x) + float3(_4774, _4774, _4774))); } else { float _4788 = _4734.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * diffuse_amb) + (spec_amb * ((f0 * _4734.x) + float3(_4788, _4788, _4788))); } } else { if ((Lit_1_m0.counts.y & 2u) != 0u) { float3 _4810 = (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f; float _4822 = clamp((dot(n, Lit_1_m0.up.xyz) * 0.5f) + 0.5f, 0.0f, 1.0f); float3 _4823 = lerp((Lit_1_m0.ground_horizon.xyz + Lit_1_m0.ground_bottom.xyz) * 0.5f, _4810, float3(_4822, _4822, _4822)); float3 _4828 = lerp(sky(reflect(-v, n)), _4810, float3(roughness, roughness, roughness)); if (Probe_1_m0.counts.x > 0u) { float4 _4840 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif = _4676.xyz; if (_4676.w <= 0.0f) { float4 _4856 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif = ((_4823 * Lit_1_m0.ambient.w) * (1.0f - _4856.w)) + _4856.xyz; } ambient = (diffuse * dif) + ((((_4828 * Lit_1_m0.ambient.w) * (1.0f - _4840.w)) + _4840.xyz) * _4675); } else { if (_4676.w > 0.0f) { ambient = (diffuse * _4676.xyz) + ((_4828 * _4675) * Lit_1_m0.ambient.w); } else { ambient = ((diffuse * _4823) + (_4828 * _4675)) * Lit_1_m0.ambient.w; } } } else { if (Probe_1_m0.counts.x > 0u) { float4 _4897 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_2 = _4676.xyz; if (_4676.w <= 0.0f) { float4 _4913 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_2 = (Lit_1_m0.ambient.xyz * (1.0f - _4913.w)) + _4913.xyz; } ambient = (diffuse * dif_2) + (((Lit_1_m0.ambient.xyz * (1.0f - _4897.w)) + _4897.xyz) * _4675); } else { if (_4676.w > 0.0f) { ambient = (diffuse * _4676.xyz) + (Lit_1_m0.ambient.xyz * _4675); } else { ambient = Lit_1_m0.ambient.xyz * (diffuse + _4675); } } } } return ambient; } bool hedra_transparent() { bool _4123 = false; bool _4125 = false; if (false) { _4123 = true; } else { _4123 = false; } if (!_4123) { _4125 = false; } else { _4125 = true; } return _4125; } float3 hedra_lit(float4 clip) { bool _5016 = false; bool _5010 = false; DecalSurface surf = _5007; float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 radiance_1 = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); bool _5019 = false; bool _5014 = false; uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); DecalSurface _5031 = { ALBEDO, clamp(METALLIC, 0.0f, 1.0f), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f), AO, hedra_n, EMISSION }; surf = _5031; if (O_1_m0.decals.z > 0u) { DecalSurface _5039 = surf; surf = apply_decals(hedra_world, hedra_n_geo, _5039); ALBEDO = surf.base; METALLIC = surf.metallic; ROUGHNESS = surf.roughness; NORMAL = normalize(mul(surf.normal, hedra_mat3(G_1_m0.view))); } float _5061 = ((surf.roughness * surf.roughness) * surf.roughness) * surf.roughness; float3 _5065 = surf.base * (1.0f - surf.metallic); float _5069 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; float3 _5071 = lerp(float3(_5069, _5069, _5069), surf.base, float3(surf.metallic, surf.metallic, surf.metallic)); float3 _5076 = hedra_view_dir(hedra_world); float3x3 _5079 = hedra_mat3(G_1_m0.view); float _5083 = lerp(1.0f, surf.occlusion, AO_LIGHT_AFFECT); DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); uint _5084 = object_light_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _5084)) { break; } uint _5107 = object_light(k); uint _5108 = min(_5107, 63u); float4 _5112 = hedra_light_dir(_5107, hedra_world); float3 _5113 = _5112.xyz; float _5114 = _5112.w; if (false) { if (!(Lit_1_m0.lights[_5108].info.x == 0u)) { _5010 = _5114 > 0.0f; } else { _5010 = true; } if (_5010) { LIGHT = normalize(mul(_5113, _5079)); LIGHT_COLOR = Lit_1_m0.lights[_5108].color.xyz; ATTENUATION = _5114 * hedra_shadow(_5107, _5113); LIGHT_IS_DIRECTIONAL = Lit_1_m0.lights[_5108].info.x == 0u; SPECULAR_AMOUNT = Lit_1_m0.lights[_5108].spot.z; light(); } uint _5221 = k; k = _5221 + 1u; continue; } if (RIM > 0.0f) { c += (((_5065 * Lit_1_m0.lights[_5108].color.xyz) * (pow(max(9.9999997473787516355514526367188e-05f, 1.0f - max(dot(surf.normal, _5076), 9.9999997473787516355514526367188e-05f)), max(0.0f, (1.0f - surf.roughness) * 16.0f)) * RIM)) * lerp(float3(1.0f, 1.0f, 1.0f), surf.base, float3(RIM_TINT, RIM_TINT, RIM_TINT))); } if (_5114 > 0.0f) { radiance_1 = Lit_1_m0.lights[_5108].color.xyz * _5114; if (Lit_1_m0.lights[_5108].info.y == 1u) { _5014 = false; } else { _5014 = false; } if (_5014) { radiance_1 = Lit_1_m0.lights[_5108].color.xyz * (_5114 * shadow_factor(_5107, hedra_world, hedra_n_geo, _5113)); } if (true) { _5016 = false; } else { _5016 = false; } if (_5016) { c += light_specular(surf.normal, _5076, _5113, radiance_1, _5065, _5071, _5061, Lit_1_m0.lights[_5108].spot.z); } else { c += hedra_light_modes(surf.normal, _5076, _5113, radiance_1, _5065, _5071, _5061, surf.roughness, Lit_1_m0.lights[_5108].spot.z); } if (any(bool3(BACKLIGHT.x > float3(0.0f, 0.0f, 0.0f).x, BACKLIGHT.y > float3(0.0f, 0.0f, 0.0f).y, BACKLIGHT.z > float3(0.0f, 0.0f, 0.0f).z))) { c += (((_5065 * radiance_1) * BACKLIGHT) * (0.3183098733425140380859375f - (max(min(dot(surf.normal, _5113), 1.0f), 0.0f) * 0.3183098733425140380859375f))); } } uint _5221 = k; k = _5221 + 1u; continue; } if (false) { c = (((DIFFUSE_LIGHT * surf.base) * _5083) * (1.0f - surf.metallic)) + (SPECULAR_LIGHT * _5083); } else { if (AO_LIGHT_AFFECT > 0.0f) { c *= _5083; } } if (true) { ambient = hedra_ambient(surf.normal, _5076, _5065, _5071, surf.roughness, surf.metallic); } if ((Lit_1_m0.counts.y & 4u) != 0u) { _5019 = !hedra_transparent(); } else { _5019 = false; } if (_5019) { int _5264; spvTextureSize(t_ao, 0u, _5264); int _5266 = int(min(uint(0), uint(int(_5264) - 1))); uint _5267_dummy_parameter; float4 _5271 = t_ao.Load(int3(int2(min(uint2(int2(clamp(floor(clip.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ao, uint(_5266), _5267_dummy_parameter)) - int2(1, 1)))), _5266)); float _5272 = _5271.x; c *= lerp(1.0f, min(_5272, surf.occlusion), Lit_1_m0.tone.z * Lit_1_m0.tone.w); c += (ambient * min(surf.occlusion, _5272)); } else { c += (ambient * surf.occlusion); } c += surf.emission; return tonemap(hedra_fog(c, _5076)); } float3 hedra_bindings() { return (t_panorama.SampleLevel(s_panorama, float2(0.5f, 0.5f), 0.0f).xyz + t_lightmap.SampleLevel(s_lightmap, float3(float2(0.5f, 0.5f), float(0)), 0.0f).xyz) + t_screen.SampleLevel(s_radiance, float2(0.5f, 0.5f), 0.0f).xyz; } float3 item_fade(float3 c) { if (true ? ((O_1_m0.extra.x & 64u) == 0u) : true) { return c; } return lerp(c, tonemap(O_1_m0.normal[3u].xyz), float3(O_1_m0.normal[3u].www)); } float3 emerge_tint(float3 c, float r) { bool _1264 = false; if (!((O_1_m0.extra.x & 32u) == 0u)) { _1264 = r >= 1.0f; } else { _1264 = true; } if (true ? _1264 : true) { return c; } float _1286 = smoothstep(0.0f, 1.0f, r); return lerp(tonemap(srgb_to_linear(spvUnpackUnorm4x8(O_1_m0.extra.w).xyz)), c, float3(_1286, _1286, _1286)); } float3 linear_to_srgb(float3 c) { float3 _384 = c * 12.9200000762939453125f; float3 _387 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _388 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_388.x ? _384.x : _387.x, _388.y ? _384.y : _387.y, _388.z ? _384.z : _387.z); } float4 hedra_output(float3 c) { float3 rgb = float3(0.0f, 0.0f, 0.0f); rgb = c; if (false) { rgb *= PREMUL_ALPHA_FACTOR; } float4 _5322 = float4(rgb, hedra_transparent() ? ALPHA : 1.0f); if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(_5322.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(_5322.w, 0.0f, 1.0f)); } float4 _5334 = clamp(_5322, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if ((G_1_m0.params.z & 2u) != 0u) { return float4(linear_to_srgb(_5334.xyz), _5334.w); } return _5334; } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); CustomOut _5369 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_5369, gl_FrontFacing); if (hedra_culled(_5369.flags)) { discard; } float _5442 = emerge_reveal(_5369.world, _5369.clip.xy); if (_5442 <= 0.0f) { discard; } if (true) { c = tonemap(hedra_fog(ALBEDO, hedra_view_dir(hedra_world))); } else { float3 _5455 = hedra_lit(_5369.clip); c = _5455; } if (Lit_1_m0.counts.w == 4294967295u) { c += hedra_bindings(); } if (G_1_m0.params.x == 8u) { c = emerge_tint(item_fade(c), _5442); } _5403 = hedra_output(c); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output._5403 = _5403; return stage_output; } fs_custom_depthmainÔCstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 zenith; float hedra_pad0; float3 horizon; float hedra_pad1; float3 below; float bands; float curve; float hedra_pad2; float hedra_pad3; float hedra_pad4; float3 sun_direction; float hedra_pad5; float3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6; float2 horizon_band; float hedra_pad7; float hedra_pad8; float3 horizon_tint; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D horizon_texture : register(t4); SamplerState SAMPLER_NEAREST_REPEAT : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float3 dir = float3(0.0f, 0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1326 = transpose(hedra_mat3(m)); return float4x4(float4(_1326[0], 0.0f), float4(_1326[1], 0.0f), float4(_1326[2], 0.0f), float4(-mul(m[3].xyz, _1326), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { dir = i.hedra_v0.xyz; } float3 scene_to_frame(float3 v) { return float3(v.x, -v.z, v.y); } void fragment() { float3 col = float3(0.0f, 0.0f, 0.0f); bool _1180 = false; float t = 0.0f; bool _1178 = false; float3 _1184 = normalize(dir); float _1185 = _1184.z; t = pow(clamp(_1185, 0.0f, 1.0f), 1.0f / hedra_p_1_m0.curve); if (hedra_p_1_m0.bands >= 2.0f) { t = floor(t * hedra_p_1_m0.bands) / hedra_p_1_m0.bands; } col = lerp(hedra_p_1_m0.horizon, hedra_p_1_m0.zenith, float3(t, t, t)); if (_1185 < 0.0f) { float _1221 = clamp((-_1185) * 8.0f, 0.0f, 1.0f); col = lerp(hedra_p_1_m0.horizon, hedra_p_1_m0.below, float3(_1221, _1221, _1221)); } float _1231 = degrees(acos(clamp(dot(_1184, normalize(scene_to_frame(hedra_p_1_m0.sun_direction))), -1.0f, 1.0f))); col += (hedra_p_1_m0.sun_color * (hedra_p_1_m0.halo_strength * pow(clamp(1.0f - (_1231 / max(hedra_p_1_m0.halo_size, 0.001000000047497451305389404296875f)), 0.0f, 1.0f), 2.0f))); if (_1231 < hedra_p_1_m0.sun_size) { col = hedra_p_1_m0.sun_color * 1.39999997615814208984375f; } float _1273 = (degrees(asin(clamp(_1185, -1.0f, 1.0f))) - hedra_p_1_m0.horizon_band.x) / max(hedra_p_1_m0.horizon_band.y - hedra_p_1_m0.horizon_band.x, 0.001000000047497451305389404296875f); float4 _1287 = horizon_texture.Sample(SAMPLER_NEAREST_REPEAT, float2(((atan2(_1184.y, _1184.x) / 6.283185482025146484375f) + 0.5f) * hedra_p_1_m0.horizon_repeat, 1.0f - clamp(_1273, 0.0f, 1.0f))); if (_1273 >= 0.0f) { _1178 = _1273 <= 1.0f; } else { _1178 = false; } if (_1178) { _1180 = _1287.w >= 0.5f; } else { _1180 = false; } if (_1180) { col = _1287.xyz * hedra_p_1_m0.horizon_tint; } ALBEDO = col; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1485 = facing != hedra_mirrored(_in.flags); hedra_front = _1485; FRONT_FACING = _1485; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1501 = hedra_mat3(G_1_m0.view); float3 _1504 = -normalize(_in.normal); float3 _1506 = normalize(_in.normal); bool3 _1508 = bool3(_1485, _1485, _1485); float3 _1507 = float3(_1508.x ? _1506.x : _1504.x, _1508.y ? _1506.y : _1504.y, _1508.z ? _1506.z : _1504.z); hedra_n_geo = _1507; hedra_n = _1507; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1507 * dot(_1507, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1530 = VERTEX; NORMAL = normalize(mul(_1507, _1501)); float3 _1533 = NORMAL; TANGENT = normalize(mul(t, _1501)); BINORMAL = normalize(mul(cross(_1507, t) * _in.tangent.w, _1501)); float3 _1541 = normalize(-VERTEX); bool _1544 = G_1_m0.camera_pos.w > 0.5f; bool3 _1546 = bool3(_1544, _1544, _1544); VIEW = float3(_1546.x ? float3(0.0f, 0.0f, 1.0f).x : _1541.x, _1546.y ? float3(0.0f, 0.0f, 1.0f).y : _1541.y, _1546.z ? float3(0.0f, 0.0f, 1.0f).z : _1541.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1552 = transpose(_1501); if (any(bool3(NORMAL.x != _1533.x, NORMAL.y != _1533.y, NORMAL.z != _1533.z))) { hedra_n = normalize(mul(NORMAL, _1552)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1552)); } if (any(bool3(LIGHT_VERTEX.x != _1530.x, LIGHT_VERTEX.y != _1530.y, LIGHT_VERTEX.z != _1530.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _708 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_708, _708, _708); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _734 = floor(p); float3 _735 = frac(p); float3 _739 = (_735 * _735) * (float3(3.0f, 3.0f, 3.0f) - (_735 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_734), emerge_hash(_734 + float3(1.0f, 0.0f, 0.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 0.0f)), _739.x), _739.y), lerp(lerp(emerge_hash(_734 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 0.0f, 1.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 1.0f)), _739.x), _739.y), _739.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _796 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_796) * 0.64999997615814208984375f) + (emerge_noise((_796 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1809 = false; bool _1811 = false; CustomOut _1768 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1768, gl_FrontFacing); if (!((_1768.flags & 2u) != 0u)) { if (false) { _1811 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1811 = false; } _1809 = _1811; } else { _1809 = true; } if (_1809) { discard; } if (emerge_reveal(_1768.world, float2(-1.0f, -1.0f)) <= 0.0f) { discard; } else { return; } } void main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); }  fs_custom_idmain�Fstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 zenith; float hedra_pad0; float3 horizon; float hedra_pad1; float3 below; float bands; float curve; float hedra_pad2; float hedra_pad3; float hedra_pad4; float3 sun_direction; float hedra_pad5; float3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6; float2 horizon_band; float hedra_pad7; float hedra_pad8; float3 horizon_tint; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const IdOut _1842 = { float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D horizon_texture : register(t4); SamplerState SAMPLER_NEAREST_REPEAT : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 id; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 id : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float3 dir = float3(0.0f, 0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1326 = transpose(hedra_mat3(m)); return float4x4(float4(_1326[0], 0.0f), float4(_1326[1], 0.0f), float4(_1326[2], 0.0f), float4(-mul(m[3].xyz, _1326), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { dir = i.hedra_v0.xyz; } float3 scene_to_frame(float3 v) { return float3(v.x, -v.z, v.y); } void fragment() { float3 col = float3(0.0f, 0.0f, 0.0f); bool _1180 = false; float t = 0.0f; bool _1178 = false; float3 _1184 = normalize(dir); float _1185 = _1184.z; t = pow(clamp(_1185, 0.0f, 1.0f), 1.0f / hedra_p_1_m0.curve); if (hedra_p_1_m0.bands >= 2.0f) { t = floor(t * hedra_p_1_m0.bands) / hedra_p_1_m0.bands; } col = lerp(hedra_p_1_m0.horizon, hedra_p_1_m0.zenith, float3(t, t, t)); if (_1185 < 0.0f) { float _1221 = clamp((-_1185) * 8.0f, 0.0f, 1.0f); col = lerp(hedra_p_1_m0.horizon, hedra_p_1_m0.below, float3(_1221, _1221, _1221)); } float _1231 = degrees(acos(clamp(dot(_1184, normalize(scene_to_frame(hedra_p_1_m0.sun_direction))), -1.0f, 1.0f))); col += (hedra_p_1_m0.sun_color * (hedra_p_1_m0.halo_strength * pow(clamp(1.0f - (_1231 / max(hedra_p_1_m0.halo_size, 0.001000000047497451305389404296875f)), 0.0f, 1.0f), 2.0f))); if (_1231 < hedra_p_1_m0.sun_size) { col = hedra_p_1_m0.sun_color * 1.39999997615814208984375f; } float _1273 = (degrees(asin(clamp(_1185, -1.0f, 1.0f))) - hedra_p_1_m0.horizon_band.x) / max(hedra_p_1_m0.horizon_band.y - hedra_p_1_m0.horizon_band.x, 0.001000000047497451305389404296875f); float4 _1287 = horizon_texture.Sample(SAMPLER_NEAREST_REPEAT, float2(((atan2(_1184.y, _1184.x) / 6.283185482025146484375f) + 0.5f) * hedra_p_1_m0.horizon_repeat, 1.0f - clamp(_1273, 0.0f, 1.0f))); if (_1273 >= 0.0f) { _1178 = _1273 <= 1.0f; } else { _1178 = false; } if (_1178) { _1180 = _1287.w >= 0.5f; } else { _1180 = false; } if (_1180) { col = _1287.xyz * hedra_p_1_m0.horizon_tint; } ALBEDO = col; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1485 = facing != hedra_mirrored(_in.flags); hedra_front = _1485; FRONT_FACING = _1485; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1501 = hedra_mat3(G_1_m0.view); float3 _1504 = -normalize(_in.normal); float3 _1506 = normalize(_in.normal); bool3 _1508 = bool3(_1485, _1485, _1485); float3 _1507 = float3(_1508.x ? _1506.x : _1504.x, _1508.y ? _1506.y : _1504.y, _1508.z ? _1506.z : _1504.z); hedra_n_geo = _1507; hedra_n = _1507; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1507 * dot(_1507, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1530 = VERTEX; NORMAL = normalize(mul(_1507, _1501)); float3 _1533 = NORMAL; TANGENT = normalize(mul(t, _1501)); BINORMAL = normalize(mul(cross(_1507, t) * _in.tangent.w, _1501)); float3 _1541 = normalize(-VERTEX); bool _1544 = G_1_m0.camera_pos.w > 0.5f; bool3 _1546 = bool3(_1544, _1544, _1544); VIEW = float3(_1546.x ? float3(0.0f, 0.0f, 1.0f).x : _1541.x, _1546.y ? float3(0.0f, 0.0f, 1.0f).y : _1541.y, _1546.z ? float3(0.0f, 0.0f, 1.0f).z : _1541.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1552 = transpose(_1501); if (any(bool3(NORMAL.x != _1533.x, NORMAL.y != _1533.y, NORMAL.z != _1533.z))) { hedra_n = normalize(mul(NORMAL, _1552)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1552)); } if (any(bool3(LIGHT_VERTEX.x != _1530.x, LIGHT_VERTEX.y != _1530.y, LIGHT_VERTEX.z != _1530.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1617 = false; bool _1619 = false; if ((flags_1 & 2u) != 0u) { return true; } if (true) { _1617 = hedra_front; } else { _1617 = false; } if (_1617) { return true; } if (false) { _1619 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1619 = false; } return _1619; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _708 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_708, _708, _708); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _734 = floor(p); float3 _735 = frac(p); float3 _739 = (_735 * _735) * (float3(3.0f, 3.0f, 3.0f) - (_735 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_734), emerge_hash(_734 + float3(1.0f, 0.0f, 0.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 0.0f)), _739.x), _739.y), lerp(lerp(emerge_hash(_734 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 0.0f, 1.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 1.0f)), _739.x), _739.y), _739.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _796 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_796) * 0.64999997615814208984375f) + (emerge_noise((_796 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1838 = false; IdOut _out = _1842; CustomOut _1794 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1794, gl_FrontFacing); if (!hedra_culled(_1794.flags)) { _1838 = emerge_reveal(_1794.world, _1794.clip.xy) <= 0.0f; } else { _1838 = true; } if (_1838) { discard; } _out.id = float4(float(O_1_m0.params.z & 255u), float((O_1_m0.params.z >> 8u) & 255u), float((O_1_m0.params.z >> 16u) & 255u), float(uint(O_1_m0.params.x == 1u) | ((O_1_m0.params.y == 1u) ? 2u : 0u))) / float4(255.0f, 255.0f, 255.0f, 255.0f); id = _out.id; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.id = id; return stage_output; } fs_custom_normal_depthmainWHstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 zenith; float hedra_pad0; float3 horizon; float hedra_pad1; float3 below; float bands; float curve; float hedra_pad2; float hedra_pad3; float hedra_pad4; float3 sun_direction; float hedra_pad5; float3 sun_color; float sun_size; float halo_size; float halo_strength; float horizon_repeat; float hedra_pad6; float2 horizon_band; float hedra_pad7; float hedra_pad8; float3 horizon_tint; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const HedraNormalDepthOut _1843 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D horizon_texture : register(t4); SamplerState SAMPLER_NEAREST_REPEAT : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 normal_depth; static float4 surface; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 normal_depth : SV_Target0; float4 surface : SV_Target1; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float3 dir = float3(0.0f, 0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1326 = transpose(hedra_mat3(m)); return float4x4(float4(_1326[0], 0.0f), float4(_1326[1], 0.0f), float4(_1326[2], 0.0f), float4(-mul(m[3].xyz, _1326), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { dir = i.hedra_v0.xyz; } float3 scene_to_frame(float3 v) { return float3(v.x, -v.z, v.y); } void fragment() { float3 col = float3(0.0f, 0.0f, 0.0f); bool _1180 = false; float t = 0.0f; bool _1178 = false; float3 _1184 = normalize(dir); float _1185 = _1184.z; t = pow(clamp(_1185, 0.0f, 1.0f), 1.0f / hedra_p_1_m0.curve); if (hedra_p_1_m0.bands >= 2.0f) { t = floor(t * hedra_p_1_m0.bands) / hedra_p_1_m0.bands; } col = lerp(hedra_p_1_m0.horizon, hedra_p_1_m0.zenith, float3(t, t, t)); if (_1185 < 0.0f) { float _1221 = clamp((-_1185) * 8.0f, 0.0f, 1.0f); col = lerp(hedra_p_1_m0.horizon, hedra_p_1_m0.below, float3(_1221, _1221, _1221)); } float _1231 = degrees(acos(clamp(dot(_1184, normalize(scene_to_frame(hedra_p_1_m0.sun_direction))), -1.0f, 1.0f))); col += (hedra_p_1_m0.sun_color * (hedra_p_1_m0.halo_strength * pow(clamp(1.0f - (_1231 / max(hedra_p_1_m0.halo_size, 0.001000000047497451305389404296875f)), 0.0f, 1.0f), 2.0f))); if (_1231 < hedra_p_1_m0.sun_size) { col = hedra_p_1_m0.sun_color * 1.39999997615814208984375f; } float _1273 = (degrees(asin(clamp(_1185, -1.0f, 1.0f))) - hedra_p_1_m0.horizon_band.x) / max(hedra_p_1_m0.horizon_band.y - hedra_p_1_m0.horizon_band.x, 0.001000000047497451305389404296875f); float4 _1287 = horizon_texture.Sample(SAMPLER_NEAREST_REPEAT, float2(((atan2(_1184.y, _1184.x) / 6.283185482025146484375f) + 0.5f) * hedra_p_1_m0.horizon_repeat, 1.0f - clamp(_1273, 0.0f, 1.0f))); if (_1273 >= 0.0f) { _1178 = _1273 <= 1.0f; } else { _1178 = false; } if (_1178) { _1180 = _1287.w >= 0.5f; } else { _1180 = false; } if (_1180) { col = _1287.xyz * hedra_p_1_m0.horizon_tint; } ALBEDO = col; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1485 = facing != hedra_mirrored(_in.flags); hedra_front = _1485; FRONT_FACING = _1485; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1501 = hedra_mat3(G_1_m0.view); float3 _1504 = -normalize(_in.normal); float3 _1506 = normalize(_in.normal); bool3 _1508 = bool3(_1485, _1485, _1485); float3 _1507 = float3(_1508.x ? _1506.x : _1504.x, _1508.y ? _1506.y : _1504.y, _1508.z ? _1506.z : _1504.z); hedra_n_geo = _1507; hedra_n = _1507; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1507 * dot(_1507, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1530 = VERTEX; NORMAL = normalize(mul(_1507, _1501)); float3 _1533 = NORMAL; TANGENT = normalize(mul(t, _1501)); BINORMAL = normalize(mul(cross(_1507, t) * _in.tangent.w, _1501)); float3 _1541 = normalize(-VERTEX); bool _1544 = G_1_m0.camera_pos.w > 0.5f; bool3 _1546 = bool3(_1544, _1544, _1544); VIEW = float3(_1546.x ? float3(0.0f, 0.0f, 1.0f).x : _1541.x, _1546.y ? float3(0.0f, 0.0f, 1.0f).y : _1541.y, _1546.z ? float3(0.0f, 0.0f, 1.0f).z : _1541.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1552 = transpose(_1501); if (any(bool3(NORMAL.x != _1533.x, NORMAL.y != _1533.y, NORMAL.z != _1533.z))) { hedra_n = normalize(mul(NORMAL, _1552)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1552)); } if (any(bool3(LIGHT_VERTEX.x != _1530.x, LIGHT_VERTEX.y != _1530.y, LIGHT_VERTEX.z != _1530.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1617 = false; bool _1619 = false; if ((flags_1 & 2u) != 0u) { return true; } if (true) { _1617 = hedra_front; } else { _1617 = false; } if (_1617) { return true; } if (false) { _1619 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1619 = false; } return _1619; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _708 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_708, _708, _708); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _734 = floor(p); float3 _735 = frac(p); float3 _739 = (_735 * _735) * (float3(3.0f, 3.0f, 3.0f) - (_735 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_734), emerge_hash(_734 + float3(1.0f, 0.0f, 0.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 0.0f)), _739.x), _739.y), lerp(lerp(emerge_hash(_734 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 0.0f, 1.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 1.0f)), _739.x), _739.y), _739.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _796 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_796) * 0.64999997615814208984375f) + (emerge_noise((_796 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1839 = false; HedraNormalDepthOut _out = _1843; CustomOut _1794 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1794, gl_FrontFacing); if (!hedra_culled(_1794.flags)) { _1839 = emerge_reveal(_1794.world, _1794.clip.xy) <= 0.0f; } else { _1839 = true; } if (_1839) { discard; } float _1867 = clamp(METALLIC, 0.0f, 1.0f); float _1871 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; _out.normal_depth = float4(normalize(mul(hedra_n, hedra_mat3(G_1_m0.view))), -mul(float4(_1794.world, 1.0f), G_1_m0.view).z); _out.surface = float4(clamp(lerp(float3(_1871, _1871, _1871), ALBEDO, float3(_1867, _1867, _1867)), float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f)); normal_depth = _out.normal_depth; surface = _out.surface; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.normal_depth = normal_depth; stage_output.surface = surface; return stage_output; }  @Ð Ð/ ,@  �{Ðþ—4ÌhÜäF‚�SKw;‰¡ŠÝ‘šçkíVã›cHSLTGlobals@ viewÿÿÿÿproj@ÿÿÿÿ view_proj€ÿÿÿÿ camera_posÀÿÿÿÿviewportÐÿÿÿÿ wire_coloràÿÿÿÿ select_colorðÿÿÿÿ active_colorÿÿÿÿgridÿÿÿÿparams ÿÿÿÿfparams0ÿÿÿÿG_block@ObjectUmodelÿÿÿÿnormal@ÿÿÿÿcolor€ÿÿÿÿparams�ÿÿÿÿextra ÿÿÿÿgi°ÿÿÿÿdecalsàÿÿÿÿlightsðÿÿÿÿO_blockLightUPcolorÿÿÿÿpositionÿÿÿÿ direction ÿÿÿÿspot0ÿÿÿÿinfo@ÿÿÿÿLitUÐ countsÿÿÿÿambientÿÿÿÿtone ÿÿÿÿup0ÿÿÿÿsky_top@ÿÿÿÿ sky_horizonPÿÿÿÿground_horizon`ÿÿÿÿ ground_bottompÿÿÿÿ inv_view_proj€ÿÿÿÿdirsÀÿÿÿÿlightsÐ@P Lit_blockÐ ShadowLightU@paramsÿÿÿÿsplitsÿÿÿÿfade ÿÿÿÿinfo0ÿÿÿÿ ShadowTileU` view_projÿÿÿÿrect@ÿÿÿÿtexelPÿÿÿÿShadowU atlasÿÿÿÿlights@tiles` Shadow_block  SunU  directionÿÿÿÿcolorÿÿÿÿSkyUflagsÿÿÿÿto_skyÿÿÿÿsky_topPÿÿÿÿ sky_horizon`ÿÿÿÿ ground_bottompÿÿÿÿground_horizon€ÿÿÿÿsun�ÿÿÿÿambient ÿÿÿÿibl°ÿÿÿÿ fog_colorÀÿÿÿÿfogÐÿÿÿÿ fog_depthàÿÿÿÿ fog_originðÿÿÿÿsuns sh€ ÿÿÿÿ Sky_block ProbeEntryU€to_localÿÿÿÿextents@ÿÿÿÿoffsetPÿÿÿÿambient`ÿÿÿÿinfopÿÿÿÿProbeUcountsÿÿÿÿprobes€ Probe_block DecalEntryU°to_localÿÿÿÿmodulate@ÿÿÿÿfadesPÿÿÿÿaxis_x`ÿÿÿÿaxis_ypÿÿÿÿaxis_z€ÿÿÿÿlayers�ÿÿÿÿflags ÿÿÿÿDecalU ,countsÿÿÿÿlodÿÿÿÿentries @° Decal_block , FogEntryU�to_localÿÿÿÿsize@ÿÿÿÿmaterialPÿÿÿÿalbedo`ÿÿÿÿemissionpÿÿÿÿlights€ÿÿÿÿFogU@ countsÿÿÿÿparamsÿÿÿÿambient ÿÿÿÿup0ÿÿÿÿ light_fog@ÿÿÿÿentries@� Fog_block@  HedraParamsŒzenithÿÿÿÿ hedra_pad0 ÿÿÿÿhorizonÿÿÿÿ hedra_pad1ÿÿÿÿbelow ÿÿÿÿbands,ÿÿÿÿcurve0ÿÿÿÿ hedra_pad24ÿÿÿÿ hedra_pad38ÿÿÿÿ hedra_pad4<ÿÿÿÿ sun_direction@ÿÿÿÿ hedra_pad5Lÿÿÿÿ sun_colorPÿÿÿÿsun_size\ÿÿÿÿ halo_size`ÿÿÿÿ halo_strengthdÿÿÿÿhorizon_repeathÿÿÿÿ hedra_pad6lÿÿÿÿ horizon_bandpÿÿÿÿ hedra_pad7xÿÿÿÿ hedra_pad8|ÿÿÿÿ horizon_tint€ÿÿÿÿ hedra_p_blockŒGOLitShadow Sky ProbeDecalFoghedra_pt_shadowÿÿÿÿ t_radianceÿÿÿÿ t_panoramaÿÿÿÿt_aoÿÿÿÿ t_lightmapÿÿÿÿt_probesÿÿÿÿt_decalsÿÿÿÿt_screenÿÿÿÿhorizon_textureÿÿÿÿs_shadowÿÿÿÿ s_radianceÿÿÿÿ s_panoramaÿÿÿÿ s_lightmapÿÿÿÿs_probesÿÿÿÿs_decalsÿÿÿÿSAMPLER_NEAREST_REPEATÿÿÿÿ vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depth|7#P2 GLSL.std.450Gvs_custom!$&),/2468:;=?@ABCDEF#Åvs_custom_instancedšœž ¢¤§©«­¯²´¶¸¹º»¼½¾¿ÀÁÂÃÄvvs_custom_skinnedSUWY[]`cegijklmnopqrstufs_customúüþ  {fs_custom_depth_acegikmoqsuwy¾fs_custom_id¡£¥§©«­¯±³µ·¹»½fs_custom_normal_depthöøúüþ  {¾H#HHH#@HHH#€HHH#ÀH#ÐH#àH#ðH#H#H # H #0G H #H H H #@H H H #€H #�H # H #°H #àH #ðGH#H#H# H#0H#@GPH#H#H# H#0H#@H#PH#`H#pH#€HHH #ÀH #ÐH#H#H# H#0H#HHH#@H#PG@G`H#H#H#H#H#G GH!#H!#H!H!H!#PH!#`H!#pH!#€H!#�H!# H!#°H! #ÀH! #ÐH! #àH! #ðH! #H!#€H%#H%H%H%#@H%#PH%#`H%#pG&€H(#H(#H)#H)H)H)#@H)#PH)#`H)#pH)#€H)#�H)# G*°H+#H+#H+# H,#H,# H,#H,#H,# H,#0H/#H/#H/# H/#(H/#0H/#@H0#H0#H0# H0#0H3#H3H3H3#@H3#PH3#`H3#pH3#€G4G5�H6#H6#H6# H6#0H6#@H6#@G7G8G9G:H<#H=#H=#H>#H>#H># H?#H?#H@#H@#H@# H@#0H@#8H@#@H@#PH@#`H@#hH@ #pH@ #€H@ #�H@ # HA#HB#HB# HB#HB#HB# HB#,HB#0HB#4HB#8HB #<HB #@HB #LHB #PHB #\HB#`HB#dHB#hHB#lHB#pHB#xHB#|HB#€HD#HD#G�"G�!G‚H‚#G„"G„!G…H…#G‡"G‡!GˆHˆ#GŠ"GŠ!G‹H‹#G�"G�!G�"G�!G‘"G‘!G’H’#G”"G”!G–"G–!G˜"G˜!G™"G™!Gš"Gš!G›"G›!G�"G�!Gž"Gž!GŸHŸ#G¡"G¡!G¢"G¢!G£"G£!G¤H¤#G¦"G¦!G§"G§!G¨"G¨!G©H©#G«"G«!G¬H¬#G®"G®!Gò"Gò!GóHó#Gõ"Gõ!Gö"Gö!G!G$G&G)G,G/G2 G4 *G6 G8G:G;G=G=G?G@GAGBGBGCGD GE GF GšGœGžG G¢G¤G§G©G«G­ G¯ G²G´G¶ *G¸ G¹GºG»G¼G¼G½G¾G¿GÀGÀGÁG Gà GÄ GSGUGWGYG[G]G` Gc Ge Gg *Gi GjGkGlGmGmGnGoGpGqGqGrGs Gt Gu Gú GüGþGGGGGGG G G G G G G GGG_ GaGcGeGgGgGiGkGmGoGoGqGs Gu Gw Gy GyG¡ G£G¥G§G©G©G«G­G¯G±G±G³Gµ G· G¹ G» G»G½Gö GøGúGüGþGþGGGGGGG  G  G G GGG   +       +  +@ + ++  ! " # $%+'&%'(& )*)+*,  -. / -01 2.345364578-9+;ý:;<:=>?@ --AB     - C@D+E+F+G+H+I+J+K ) L+MÛI@+NÛÉ@+OTø-@+Pÿÿÿÿ+Q¯´´>, RQQQ+Sެ,>+T ý|>+Uš™?, VSTU+W”„>+XÍÌÌ>+Y°¬,?, ZWXY+[îÐÐ=+\™Ÿ?+]¿¸8?, ^[\]+_+ùø=+`©¡!?+a‹‡?, b_`a+c¢šš>+d¶»;?, ecdQ+f ¦&?+gÜÔT?+hêèh>, ifgh+júòr?+kÍÈH?+loñp=, mjkl+n“Ž?, ojnl+pÛà`?+qƒŠ ?, rpWq, sRVZ^beimor+t€+u+vff¦?+wÍÌL?+x�Âõ=+y$tI+z€+{ns\?+|ý®>+}²>+~ýò&?+ÿ* €‚ ƒ‚;ƒ�… †…;†„ˆ ‰ˆ;‰‡‹ Œ‹;ŒŠ Ž;Ž� �;��’! “’;“‘ •";•” —#;—–;�˜;�™;—š œ$;œ›;��Ÿ(  Ÿ; ž;—¡;�¢¤+ ¥¤;¥£;œ¦;�§©6 ª©;ª¨¬< ­¬;­«;—® ° . ±;°¯±;°²±;°³±;°´± ¶.·;¶µ· ¹-.-º;¹¸º;¹»º;¶¼· ¾...¿;¾½¿;¶À·;¾Á¿ Ã.Ä;ÃÂÄ Æ1.1Ç;ÆÅÇ;ÃÈÄ;ÃÉÄ;ÃÊÄ;ÆËÇ;°Ì±;°Í±;°Î±;°Ï±;¶Ð· Ò . Ó;ÒÑÓ;°Ô±;°Õ± ×.Ø;×ÖØ;°Ù±;×ÚØ;×ÛØ;×ÜØ;×ÝØ;×ÞØ;×ߨ;×àØ;×áØ;°â±;×ãØ;×äØ;°å±;¹æº;×çØ;°è±;°é±;ÒêÓ;×ëØ;°ì±;°í±;°î±;°ï±;°ð±;ÒñÓóB ôó;ôò;—õ;�ö;°÷±!ü-+!  + R¸NA,    + ®Ga=,    += ‡?, +š™@, +æ®%=,  !! " $ +&ö(\?, '&+(€?+)š™Y?+*fff?, +)* - . .. 0 6 7 _q !y  }.~ € ˆ+’UUÕ>, “’’’+”.M;, •”””! ,¢,£((((+¤? §!³!¼+¾?!Í Ð Õ Û! )  ++½7†5!/- 6$!@, ,+F€¿, GF, H(((+I@+JìQ8= L,.,M O. Q.S U).)V] ^]_ ,]`GG,]aPP s* w)!-!;+<·Ñ8!Q +R @! c , d, eMMM+�ÛÉ?+‚UUÕ@+ƒHB+°®Ga?+±ÍÌÌ=+²ÍÌL>+³ ×#<+´š™™>, µUUU+Íffæ?+Îrá?+Ï‚‹µ>+ÐÒŒE=, ÑÎÏÐ+Ò㥛=+Óøˆh?+ÔfI€<, ÕÒÓÔ+Ö§è<+×» >+ØxV?, ÙÖר+ÚYÉ<, ÛÚÚÚ+ܯ޽8, ÝÜÜÜ+ÞªÕ{?+ßÁ«Ý>, àßßß+á�Ës>, âááá+ãshÍ?+äÜô¿+åLà–½, æãäå+çRѽ+è4×�?+é?Æ», êçèé+ëMV»+ì2•½+í»‰?, îëìí+ ?+…Ï>+%ëµ=+`¿>+T A?+‘+7>++­¦=+�í×=+¼t;?, , , ,1+hvû?+Ê@™¾+ ,P(¾+!Š[¿+"&É©?+#)ñs¾+$¸õÞ½+%Oßݼ+&ŠŠ³?, ' , (!"#, )$%&,1*'()++9•GÁ+,ŽÕ€@+-ÿæ[/, .---, /+++, 0,,,+11¬<+2îZ€@+3¼tÍA+4Ï·ŒB+5VŽ•B+6P�ØA+7ÿæÛ., 8777. :!… +†&Ó=+‡\�úA, ˆ‡‡‡. Š+¢@@, £¢¢¢, ¤(, ¥(, ¦((, §(, ¨((, ©((, ª(((!Ó -+Õff&?+ÖÍÌ,@+×Í̈A, Ø×××+Ù33³>+ÚCq‰=+Û�E¿;,-ÜÚÛ+Ý‚îSB.ß.  ;!. T ‚ „+† !Ã...+.Ç+.É€+.Êÿÿÿÿ+.Ïì#+úÏ+ûÿÿÿN,2ÏÏ+ Án�>+!,*ú>+"�Ø‹?+#{¡>+$�Ø ?. & (+)Ž"!–-+—®Gá¼+˜˜n¿+™X9´<,šF—˜™+›{.=+œ¸…?+� ×#½,ž(›œ�+ŸázÁ+ ¸…¿,-¡ œ!µ!À +Ãoƒ:. Å å æ+  ! .".$. &. (+4 !­-  ®6+°̼Œ+, ±°°° ³-.-´ ¹5 º3+»+¿ÿÿO!¦ ,-¨+©À.«!& +( r1?+) ÀA+* «ª*>.l !…  +ˆ ÛIA. Š . � .�  4!  -. .  .  . " . $ !Ê +Í +Î ¬Å'7 Ð 7.7Ñ Ó 8.8Ô . Ø Ú 9.9Û .ß .á .ã !> !‘  ” +˜ A. œ . ž .   £ ...¥ ²  ³  î  ô  Á  !Þ  +ð €@.ò .ô .ö .ø . ú !F   G(+KÀ@+LA!j  . o!‘% +¹æ±a!Ë % !÷  ÿ%.%.% "& $%!S . [. ].%_!» ¼<+¾þ À:+Äü!Ë>= Î>.>Ï!C!@!! 4B+833³?.:. <. >. @ W �-+Ž+µ!½1!É!Û!ê--!ò . ô. ö! !1! 5 --. 7!]@ .@`. �!‰!  !®@ , ´¤¤¤,-µ((. ·. ¹. B. D!~+ƒù¢>! ¬ . ®.°. ²!õ .ø!/ . 6! M . W. Y. [. ]. _. a. †!£ +µ ×#>+¶€A.,¸. ¼. ¾. À. Â. Å,-³úú,-´ûû,2»ÏÏ!â . æ,-¤¤ " ;"!;"$ '-;'& *;*) -;-, 0;0/;'2;*4 7;76 9 ;98;9: <-;<; >;>=;7?;7@;<A;>B;7C;7D;7E;7F e;"š;"œ;'ž;* ;-¢;0¤;-§;-©;-«;-­;'¯;-²;0´;*¶;7¸;9¹;9º;<»;>¼;7½;7¾;<¿;>À;7Á;7Â;7Ã;7Ä;"S;"U;'W;*Y;-[;0] a;a`;-c;'e;*g;7i;9j;9k;<l;>m;7n;7o;<p;>q;7r;7s;7t;7u;-ú;"ü;"þ;';*;-;-;';* ;- ;-;-;-  ;;7. 3;-_;"a;"c;'e;*g;-i;-k;'m;*o;-q;-s;-u;-w;y,-�FF. ƒ. …;-¡;"£;"¥;'§;*©;-«;-­;'¯;*±;-³;-µ;-·;-¹;»;7½+ÄC,ÅÄÄÄÄ. Ç ÉA.AÊ;-ö;"ø;"ú;'ü;*þ;-;-;';*;-;- ;- ;-;;7;7.  D.D6ûü7-ù7úøø=ý�=þ�ùÿøÿQùQùP-VýþZúþ86  7 øùøˆ  � ˆ   ¼© þ86 !77ø;-,.;-/0A"#�GA$%„Gù1ø1Ç2ª 32G÷4ú354ø5þø4A78# E=98A7:% =;:ª <;EÇ=« >=G÷?ú>@Aø@ÇB9F« CBG>,Cù?øA>,€ù?ø?= D,÷EúDFEøF9 G 'PHG(þHøEÇI'« JIG÷KúJLMøLÇN9« ONG>/OùKøM>/€ùKøK= P/÷QúPRQøR9 S +PTS(þTøQÇU9E« VUG÷WúVXWøX÷Yú<ZYøZÇ[E« \[G÷]ú\^]ø^A_`#I=a`þaø]A_b#H=cbþcøYA7d% G=edª feE÷gúfhgøhA_i#I=jiA_k#J=lkA7m% E=nmª onEPqroooo©prljþpøgùWøWA_s#H=tsþt86xy7 v7wøu;}|~A"z�GA${„GùøA€�zG=‚�A€ƒ{G=„ƒ’…‚„P†v(‘‡…†>|‡Aˆ‰|F=Љƒ‹(w…ŒŠ‹Aˆ�|F>�Œ=Ž|þŽ86 ‘ 7 �ø�ù–ø–Ž —�   ˜�“Ž ™˜ƒ 𙼛�•© œ›—šþœ86Ÿ 7žø�A"¡�Gù¥ø¥ ¦+ž¢£A§¨¡ =©¨º ª©¤÷«úª¬«ø¬O ­¦¦9 ®‘­Q¯¦P°®¯þ°ø«þ¦86²³ø±A$´„GùµøµA7¶´JF=·¶ ¸&·'þ¸86»¼7ºø¹A$½„Gù¿ø¿A7À½JE=ÁÀA7½JG=ð ĺ©ÅÄÃÁÇÆº „ÇÆ'ÂÈÅÇÇÉÈ Ê&ɾþÊ86 ÌÍøË;ÐÏsA$΄GùÑøÑA7ÒÎJ =ÓÒ Ô&Ó Ö&Ô AÕ×ÏÖ= Ø×þØ86Ú³øÙAÛ܇GùÝøÝA7ÞÜ F=ßÞ à&ß'þà86ã¼7âøáAÛä‡GùåøåA7æä E=çæA7èä G=éè° êâ©ëêéçÇìâ „íì'ÂîëíÇïî ð&ï¾þð86ò³øñA$ó„GùôøôA7õóIF=öõ ÷&ö'þ÷86ú¼7ùøøA$û„GùüøüA7ýûIE=þýA7ÿûIG=ÿ° ù©þÇù „'ÂÇþ86  7)7 øA" �GA £GùøA§EG=A_  =O ƒ   BA§EE=º ¤©(…A7GE= )E‚ Ep! Q"Q#" $(#ˆ%$ &(%( '& (+'!þ(86./7*7-+7,7 -ø)=$0¦=1§ù2ø2‚3*E|.43©5-,o74P 8+7V6901X:985þ:86,?@7 <7 =7,>ø;;UTV;ONG;ˆRS;LKM;-PQ;^baA"A�GA$B„GA C£G=$D¦=E§ùWøW>K>9XòùYøYöZ\ùcøc=]dbª_e`d› fe÷gúfZgøgQhdª ihG©jiEGP]kjE‚]ldk>blù[ø[=mN° nmX÷oúnopøpùZøoùqøq=tN9uút v&u¾ x&v¾AwyCFx=)zyQ{zP|<(‘}{|O ~}}¾~G› €÷�ú€‚ƒø‚¼„~H› …„>P…ù�øƒ>P€ù�ø�= †P¨ ‡†÷ˆú‡‰ˆø‰ù\øˆQŠ~ ‹ŠƒŒ(‹Q�zQŽ�Q�zQ��Q‘~º ’‘©“’�Ž ”Œ“>R”Q•zQ–•º —–÷˜ú—™˜ø™=šRQ›zQœ›Q�zO ž��”Ÿ=ž… Ÿ¤�¡ ¤ ¢1œ(¡…£š¢>R£ù˜ø˜O-¤~~>Tz=)¥T9¦ ¥<Q§zQ¨§Q©zQª©¬ «ªG÷¬ú«­¬ø­Q®zQ¯®Ç°¨E« ±°G9².¯¤¦±O ³²²9 ´ ³Qµ²P¶´µQ·z…¸¶·Q¹¸=ºR…»¹ºAÕ¼KG= ½¼O ¾¸¸Q¿zQÀ¿…Á»ÀP ÃÁÁÁ  Â.½¾ÃAÕÄKG>ÄÂQÅzQÆÅ¬ ÇÆG÷ÈúÇÉÈøÉQÊzQËÊÇ̨F« ÍÌG9Î.ˤ¦ÍQÏÎ…ÐÏIƒÑÐ(QÒÎ…ÓÒIƒÔ(Ó…ÕÑуÖ(Õ…×ÔÔƒØÖ× Ù(Ø ÚÙQÛzO ÜÛÛŽ ÝÜÑQÞzO ßÞÞŽ àßÚ� áÝàQâzO ãâ⎠äãÔ� åáä  æEåAÕçK= èçP ê»»»  é.èæê  ëEéAÕìK>ìëùÈøÈQízQîí¬ ïîG÷ðúïñðøñQòzQóòÇô¨« õôG9ö.ó¤¦õAˆ÷K =ø÷Qùö ú.øù»AˆûK >ûúAˆüKF=ýüQþö ÿ.ýþ»AˆKF>ÿAˆKE=Qö .»AˆKE>ùðøðù¬ø¬QzQ¬ G÷ ú  ø Q zQ  Ç ¨'«  G9. ¤¦AÕKH= O 9  QzO … QzQŽ =RŽ � AÕKH>ù ø ùrørù\ø\=N€E>NùYøZAˆ KF=!  "+!J(Aˆ#KF>#"Aˆ$KE=%$ &+%(Aˆ'KE>'&=,(Kþ(86,-7*7+ø)ù.ø.…/**ƒ0+(…1/0�21(…3M2…432ˆ5+4þ586:;777879ø6ù=ø=…>88ƒ?(9…@>?�A@9 BA…C7B…D77ƒE(9…FDE�GF9 HG…I8H�JCI K(J<ˆL¤KþL86 PQ7 N7OøMùSøSƒ THNƒU(O VURŽ WTV� XNWþX86 bc7 Z7 [7 \7 ]7 ^7 _7`7aøYùføf”gZ\¼ hg÷iúhjiøjþdøi� k\[  lEk”mZl n(m”o[l p(o”qZ[ r(q<9 sP_p9t,n`9u:gr`…vtuŽ wsvˆ x^eŽ ywa� zxy… {z]Ž |{gþ|86  7 ~ø}AÛ€‡Gù„ø„  …E~A_†€ =‡†O ˆ‡‡”‰…ˆ Š+‰F( ‹Š¼ Œ‹�÷�úŒŽ�øŽˆ�‹�ƒ�(�ƒ‘(� ’(‘ “’‚ƒ”(“ •+”(A_–€H=—–O ˜——A_™€=š™O ›ššP �•••  œ.˜›�þœø�ƒž‹�ˆŸž�ƒ (Ÿ ¡(  ¢¡ƒƒ£(¢ ¤+£(A_¥€I=¦¥O §¦¦A_¨€J=©¨O ª©©P ¬¤¤¤  «.§ª¬þ«86 ¯ 7 ®ø­ù¶ø¶Ž ·®°…¸±UP ¹¸¸¸� º·¹… »®º…¼²³P ½¼¼¼� ¾»½Ž ¿®°� À¿µ… Á®À…²´P ÃÂÂÂ� ÄÁÈ žĈƳ´P ÇÆÆÆƒ ÈÅÇþÈ86 ÌQ7 Ê7ËøÉùïøï”ðÑÊ…ñÍð”òÕÊ…óÍò”ôÙÊ…õÍôP öñóõ� ÷öÛ… øö÷ƒ ùøÝŽ úöÞ� ûúà… üöû� ýü∠þùý”ÿæþ”êþ”îþP ÿ…ÍË�Ú…ƒÜ…Þ�ß… �  ሠ P    ˆ  þ 86  7 ø;Õ9:ù;ø;  <(.‘ =<>9== >9  ?>  @+?/0ƒ A@/ƒB,+P CBBBˆ DAC>9D= E9= F9… GEF… HGG= I9Ž JI1Ž KG2� LJKŽ MG3= N9… OMNƒ PLOŽ QH4� RPQŽ SH5= T9… USTƒ VRUŽ WH6… XWG� YVX  Z(Y8  [Z‘ \*[þ\86 _ 7 ^ø]AÛ`‡GùaøaA§b`FG=cbŽ d^c  e(ddA§f`FE=gfA7h`GF=ihª jiE÷kújlkølŽ meg� nmeŽ oegP pggg� qopˆ rnqþrøkª siF÷túsutøu9 v¯eP wggg9 x¯wˆ yvxþyøtª zi ÷{úz|{ø|9 }Ìegþ}ø{ª ~i÷ú~€ø€9 �eþ�øþe86„…7 ƒø‚;Õ‰Šù‹ø‹Ž Œƒ†  � Œ>‰�= މ= �‰= �‰O ‘��� ’‘ˆ”“�’P ”“““� •Ž”>‰•Aˆ–‰G=—–Aˆ˜‰E=™˜�š—™Aˆ›‰F=œ›…�šœ ž �þž86¡…7  øŸù«ø«  ¬   ­  … ®­­Ž ¯­Iƒ °£¯… ±®°9²„¬� ³¬¤9´„³Qµ± ¶.²´µ� ·¬¥9¸„·� ¹¬¦9º„¹Q»± ¼.¸º»Q½± ¾.¶¼½� ¿¬§9À„¿� Á¬¨9„ÁQñ Ä.ÀÂÃ� Ŭ©9Æ„Å� Ǭª9È„ÇQɱ Ê.ÆÈÉQ˱ Ì.ÄÊËQͱ Î.¾ÌÍþÎ86ÒÓ7 Ð7-ÑøÏ;ˆÞßA$Ô„GùàøàA7áÔG=âáÇãâKª äãG© åLäL÷æúåçæøçþ(øæA§èÔEG =éèŽ êÐv9ë¡ê…ìëÕŽ íêÖ� îíØ9ï¡î…ðïÙ�ñìð ò1²wñ>ÞòQóѾ ôó÷õúôöõøö -÷Ñ”ø÷Ü ù ø…úÝù û ú=üÞƒýû¤…þýx�ÿüþ +ÿ(>Þùõøõ…éÍ=Þƒˆwþ86 Q7 7ø;-  A$ „GAÛ ‡Gù ø A7 G=ÇKª G¨ ÷úø¾ (> ùø> Lùø=  © LL÷úøþøA7  = @O 9  9 _ !1(P #!!!  ". #þ"86 & 7 %ø$A$'„GAÛ(‡Gù)ø)A7*'G=+*Ç,+ª -,G© .L-L÷/ú.0/ø0þ%ø/A_1'E =21O 3229 4_3Q52P 7555  6.%47þ686 : 7 9ø8A;<‘Gù=ø=A€><E=?>P@9‘A?@O BAA  CEBþC86G-7E7FøDùHøHƒI(E J(IˆK(F LJKƒM(L N+M(þN86 Q 7 PøO;ÕST;OUG;^qaA;R‘GùVøVQWP X+WF( YXA_ZR =[ZO \[[A_]RF=^]O _^^ˆ`Y�ƒa(`A§bRF =cb9dGacP fddd  e.\_fA§gR =hgŽ ieh>SiA7jRGF=kj l&kùmømönpùrør=]sqª_t`s› ut÷vúunvøvQwsª xwG©yxEGP]zyE‚]{sz>q{ùoøo=|U° }|l÷~ú}~øùnø~ù€ø€=ƒU …&ƒ A„‡R†…=ˆ‡Q‰ˆQЉQ‹ˆO Œ‹‹”�ŒP Ž+�F( �ޏ ��Š÷‘ú�’“ø’Q”ˆO •””>S•ù‘ø“A§–RIG=—–¸ ˜�—÷™ú˜š™øšƒ›�ŠA§œRIG=�œƒž�ŠˆŸ›žQ ˆO ¡  = ¢SA§£RIE=¤£9¥GŸ¤P §¥¥¥  ¦.¡¢§>S¦ù™ø™ù‘ø‘ù�ø�ùpøp=¨U€©¨E>U©ùmønA_ªRH=«ªO ¬««A_­R=®­O ¯®®ƒ°Y�ˆ±°�A§²R =³²9´G±³P ¶´´´  µ.¬¯¶A§·RH =¸·Ž ¹µ¸= ºSQ»P¾ ¼»P¾¼¼¼© ½¾º¹A§¿RIF=À¿Ž Á½ÀþÁ86.ÂÃ7.Ä7.ÅøÆª ÈÅǪ ËÄɪ ÌÅʧ ÍË̦ ÎÈÍ©.ÐÎÏŇ.ÑÄЄ.ÒÑЂ.ÓÄÒþÓ86 Ö 7 ÕøÔA;בG=#Ø–=Ù™ùÚøÚQÛÕQÜÕÝÜ ÞÛ݈ßÞN à ßQáÕ â+áF( ãâˆäãMP-åàäA7æ×GG=çæÇèç« éèG÷êúéëêøëVìíØÙXîíåO ïîîA§ð×IF=ñðŽ òïñþòøêg]óØÇ|2ôóQõåQ.öôo÷ö…øõ÷ ùø ü+ùúûn.ýüQ.þô9.ÿÂýþQ.ô€.ÿQ.ô9.ÂQåQ.ôo…   +úûn.  Q. ô‚.  Ï .* Ç . ' P2 j.Ø‚.Ï .&Çg2Ø‚2 2&_ØO A§×IF=Ž þ86  7 ø;Õ%&A;‘Gù'ø'A_*)G=+*O ,++Ž -, >%-= .%A_/)E=0/O 100Q2…3!2Ž 413� 5.4>%5= 6%A_7)F=87O 988Q:…;!:Ž <9;� =6<>%== >%A_?) =@?O A@@QB…C!BŽ DAC� E>D>%E= F%A_G)=HGO IHHQJ…K"JQL…MKLŽ NIM� OFN>%O= P%A_Q)H=RQO SRRQT…U"TQV…WUVŽ XSW� YPX>%Y= Z%A_[)I=\[O ]\\Q^…_¢^Q`…a_`ƒba(…c#bŽ d]c� eZd>%e= f%A_g)J=hgO ihhQj…k"jQl…mklŽ nim� ofn>%o= p%A_q)'=rqO srrQtQu…vtuQwQx…ywxƒzvy…{$zŽ |s{� }p|>%}= ~%  (~dþ86 ƒQ7 �7‚ø€A;„‘G="…”=†˜ù‡ø‡A7ˆ„GE=‰ˆ Š)‰E‚‹ŠEpŒ‹…�‚ŒVŽ�…†X����O ‘��þ‘86-•–7“7”ø’ù¢ø¢Ž£š“�¤£žQ¥¤Q¦¤…§¥¦…¨Ÿ” ©¨ ª%§©Q«¤…¬ª«Q­¤�®¬­Ž-¯¡®O-°¤¤�-±¯°þ±86´µ7³ø²ù¶ø¶ ·(³ ¸(³…¹·¸…º¹¹…»ººþ»86 ¿À7 ½7 ¾ø¼;ÕÄÅ;OÆG;^ÒaAÛÁ‡GA;‘GùÇøÇ>ĽA§È =ÉȺ ÊÉÃ÷ËúÊÌËøÌ9ÍÚùÎøÎöÏÑùÓøÓ=]ÔÒª_Õ`Ô› ÖÕ÷×úÖÏ×ø×QØÔª ÙØG©ÚÙEGP]ÛÚE‚]ÜÔÛ>ÒÜùÐøÐ=ÝÆ° ÞÝÍ÷ßúÞßàøàùÏøßùáøá=ãÆ9äãã ç&ä¾A7èÁçG=éèª êéG÷ëúêìëøì= íÄ î&ä¾A_ïÁîG=ðïO ñððˆ òñe ó&ä¾A_ôÁóF=õôO öõõ ÷ö”ø¾÷9ù´øŽ úòùA§û =üûŽ ýúü� þíý>ÄþùëøëùâøâùÑøÑ=ÿÆ€ÿE>ÆùÎøÏùËøË= Äþ86 À7 7 øAÛ‡GA;‘GùøA_  =  O   A§   = P   . 9 ¿A§E=P   .þ86 7 7 7 ø;ˆ#$;-'(;ˆ!";Õ%&A"�GAÛ‡GA;‘G="”= ˜ù)ø)A€*G=+*P,(‘-+,Q.-/.A_0 =10O 211 3C2>!3A§54 =65º 76¤÷8ú798ø9A§:4G=;:ƒ</; =(<>!=ù8ø8A7>GG=?>Ç@?u« A@G÷BúACDøCA§E G=FEA§G E=HG=I! J1FHI K(JA§L F=ML NKMº OJ©PONA§QG=RQ…SPR>#SùBøD=T!UTA§VG=WV…XUW Y%X ZYƒ[(Z>#[ùBøBA§\ =]\ ^]¾ _^<÷`ú_a`øaA_b =cbO dcc”ed=f#A§gF=hgƒiehA§j =kj…lik m%l nmƒo(n p(fo>#pù`ø`=q# r+q(>#rA_s =tsO utt>%uA7vGG=wvÇxw'« yxG÷zúy{|ø{A§}  =~}º ~>'ùzø|>'€ùzøz= €'© �L€€÷‚ú�ƒ‚øƒA§„4E=…„ƒ†/…A§‡4F=ˆ‡A§‰4E=Љƒ‹ˆŠ Œ(‹ˆ�†Œ Ž+�(A7�GE=�� ‘)�F‚’‘Ep“’ˆ”(“ƒ•(Ž –.”(•= —%9 ˜:9 ™ƒ˜–A§šI =›šŽ œ™›A§�  =ž�P  žžž  Ÿ.—œ >%Ÿù‚ø‚= ¡%9 ¢¿¡>%¢= £%=¤#P ¦¤¤¤  ¥.£¦þ¥86-¬­7¨7 ©7 ª7«ø§;ˆµ;ˆ·F;³²´;ˆ¶A®¯¨Gù¸ø¸ ¼&¨»A§½¯H¼ =¾½ À+¾¿mÁÀ Â&¨»A§Ã¯H =Äà Å%Ä«ª ÆÁ÷ÇúÆÈÇøÈP-ÉÅþÉøÇ Ê&¨»A_˯HÊE=ÌËO ÍÌÌŽ Îͤ  Ϫ¸Ðϱ© Ñбª Ò΃ ÓÒ©ˆ ÔÓу ÕΩˆ ÖÕÑ  ×%ÔÖ  Ø(ÔÖQÙ× Ú(ÙQÛØ Ü%ÅÛP-ÝÚÜ>²Ýª ÞÁ ÷ßúÞàáøàAˆâ²G=ãâQä× å(ãäQæ× ç(åæAˆè²E=éèQêØ ë%éêQìØ í%ëìP-îçí>²îùßøáª ïÁG÷ðúïñòøñˆ óªÎˆ ôªÎ”õóô>µõˆ ö©Îˆ ÷ªÎ”øö÷>¶øˆ ù©Îˆ ú©Î”ûùúƒüû(>·üùðøòQýÎQþÎ ÿ%ýþQÎ…Iˆÿª ÁE©QÎQ©ƒQªQ ª…  Q ªQ ª…   �  …Qª…Qª…ƒ>µQ©Qª…Q©Qª…�……Qª…� >¶ Q!©Q"©…#!"Q$©Q%©…&$%�'#&…(ÿÿ…)…*)…+*ª ,ÁE©-,+(ƒ.'->·.ùðøðùßøß=/¶=0¶…1/0=2µ=3·…423ƒ514=6µ 76¸ 87°÷9ú8:;ø:=<¶ =<¸ >=°÷?ú>@Aø@AˆB²E=CB=D·º ED©FEFCAˆG²E>GFù?øA=H¶º IH÷JúIKLøKAˆM²E=NM=O·PO=Q¶…RIQˆSPR T%NSAˆU²E>UTùJøLAˆV²G=WV=X·YX=Z¶…[IZˆ\Y[ ](W\Aˆ^²G>^]ùJøJù?ø?ù9ø;¸ _5÷`ú_abøaAˆc²E=dc=eµº fe©gfFdAˆh²E>hgù`øb=i¶ji k5ƒljk=mµˆnlm=o¶po q5�rpq=sµˆtrs u%nt=v¶wv x5ƒywx=zµˆ{yz=|¶}| ~5�}~=€µˆ�€ ‚({�=ƒµº „ƒ÷…ú„†‡ø†Aˆˆ²G=‰ˆ Š(‰uAˆ‹²E=Œ‹ �%Œ‚P-ŽŠ�>²Žù…ø‡Aˆ�²G=��Aˆ‘²E=’‘ “%’u¸ ”�“÷•ú”–—ø–Aˆ˜²E=™˜ š%™uAˆ›²E>›šù•ø—Aˆœ²G=�œ ž(�‚AˆŸ²G>Ÿžù•ø•ù…ø…ù`ø`ù9ø9=- ²þ 86¥¦7¢7 £7 ¤ø¡;ˆª«;ˆ¬A®§¨Gù­ø­ ®&¢»Aº¯§H®=3°¯Q±°Q²±Q³°Q´³µ´A_¶§ =·¶O ¸··”¹£¸Qº°Q»ºƒ¼¹»…½µ¼ ¾½ ¿%¾(…À²¿>ªÀQÁ°QÂÁº ÃÂ÷ÄúÃÅÄøÅQưQÇÆ È+Ç¿mÉÈQʰO ËÊÊŽ ÌˤQÍÌQÎÌ Ï%ÍΪ ÐÉG÷ÑúÐÒÓøÒˆ Ô¤Ì ÕBÔƒÖÕ(…×ÕÖ… ØÌ̈ Ù¤Ø ÚBÙ Û(Ú°ˆÜ×Û>¬ÜùÑøÓª ÝÉ ÷ÞúÝßàøß  ᤃ âáÌ  ã(âd äBãQåâQæâQçâ è(æç é(åè ê%é�ëäê>¬ëùÞøàª ìÉF÷íúìîïøîO-𤤠ñBðƒòñÏQó¤ ôóQõ̃öôõP-÷òöQø÷Qù÷ ú(øù û%ú -ü(÷¨ ýBü�þûý>¬þùíøï…ÿϤ  (Ãÿˆ ( Q Ì  (à ˆ ( P-   - E O- ¤¤  B Q ¤Q ̃ P-  ”  Q Ì  Q ¤ƒ    (  >¬ ùíøíùÞøÞùÑøÑ= ª= ¬… © Q °Q  ˆ    + (Q °Q      …   >ª ùÄøÄ= ªþ 86% & 7 7! 7" 7# 7$ ø A®' ¨Gù+ ø+ , & »A_- ' H, F=. - Q/ . …0 / " ´ 1 0 ÷2 ú1 3 2 ø3 Q4 . ƒ5 $ # …6 4 5 7 / …8 7 ! 9 8 : %9 (…; 6 : þ; ø2 < ! ˆ= < " > += # $ º ? " ©@ ? > # º A " ©B A $ > C " …D / C ƒE B @ …F D E …G F ( H G I H ƒJ (I ˆK J G ˆL G ) ƒM * L …N G M ƒO ¤N …P G O ƒQ (P ¸ R G ³©S R Q K T / º U " ©V U @ B …W " V �X ! W Y (X …Z T Y [ Z \ %[ (Q] . ƒ^ $ # ƒ_ B @ ƒ` ^ _ ƒa B @ …b \ a …c b S �d ` c …e ] d þe 86j ;7g 7h 7i øf ;ˆk l ùm øm …n g h >k n =o k =p k …q o p >k q =r k =s k …t r s >k t =u k ƒv (u w (v >k w =x k =y k …z x y >k z ={ k | (g <} i ~ | } … { ~ þ 86 „ … 7� 7 ‚ 7 ƒ ø€ ;O‹ G;ˆŽ � ;Õ‰ Š ;ÕŒ � ;^  aAÛ† ‡GA®‡ ¨Gù� ø� A_‘ ‡ F=’ ‘ O “ ’ ’ A§” ‡ EE=• ” Ž – “ • >‰ – A§— ‡ EG=˜ — ™ &� »A6š ‡ H™ H=› š ùœ øœ ö� Ÿ ù¡ ø¡ =]¢   ª_£ `¢ › ¤ £ ÷¥ ú¤ � ¥ ø¥ Q¦ ¢ ª § ¦ G©¨ § EGP]© ¨ E‚]ª ¢ © >  ª ùž øž =« ‹ Q¬ ›  ­ &¬ '° ® « ­ ÷¯ ú® ¯ ° ø° ù� ø¯ ù± ø± Q³ › Q´ › =µ ‹ ° ¶ µ ©· ¶ ´ ³ =¸ ‹ ǹ ¸ „º ¹ '» · º Ǽ »  ½ &¼ ¾ ¾ &½ ¾Aæ¿ † ¾ =À ¿ QÁ À O  Á Á  à  >Œ à >Ž (QÄ À QÅ Ä « Æ Å G÷Ç úÆ È Ç øÈ QÉ À O Ê É É ƒ Ë Ê ‚ Ì BË Í (Ì P Î Í Í Í ˆ Ï Ë Î >Œ Ï Ð BË QÑ À QÒ Ñ QÓ À QÔ Ó 9Õ j Ð Ò Ô >Ž Õ QÖ À Q× Ö ª Ø × F÷Ù úØ Ú Ù øÚ = Û Œ  Ü Û QÝ À O Þ Ý Ý ”ß Ü Þ Qà À Qá à â (ß á ƒã (â Qä À Qå ä ƒæ (å ç (æ ˆè ã ç é (<è =ê Ž Që À Qì ë  í é ì ƒî (í …ï ê î >Ž ï ùÙ øÙ ùÇ øÇ …ð ˜ ˜ �ñ (ð …ò I˜ = ó Œ ”ô ƒ ó …õ ò ô ƒö ñ õ = ÷ ‰ Qø À O ù ø ø =ú Ž …û ˜ ˜ ƒü (û …ý ú ü …þ ˆ ö ÿ ö … þ ÿ ˆ ý  ½ FÇ ½  &  & »A§ ‡   =  …   Ž ù � ÷ >‰ ù² ø² ùŸ øŸ = ‹ € E>‹ ùœ ø� =  ‰ þ 86  7 7  7  7- ø ;-! " ;Õ d;ˆ  ;-# $ ;ˆ ;-  ;O G;-  ;^^ aAÛ ‡GA® ¨Gù% ø% & & »Aº'  H& =3( ' Q) ( P*  (‘+ ) * O , + + Q- ( P.  ‘/ - . O 0 / / A_1  =2 1 O 3 2 2 ”4  3 Q5 ( Q6 5 ƒ7 4 6 A_8  =9 8 O : 9 9 ”;  : Q< ( Q= < º > = Q?  Q@  �A ? @ …B A ¤> B QC ( QD C º E D ÷F úE G H øG I 7 ˆJ I ; QK  º L J K > L ùF øH > €ùF øF = M  ÷N úM O P øO Q 7 ˆR Q ; QS  ¸ T R S > T ùN øP > €ùN øN = U  ÷V úU W V øW X 7 ˆY X ; > Y ùV øV ùZ øZ ö[ ] ù_ ø_ =]` ^ ª_a `` › b a ÷c úb [ c øc Qd ` ª e d G©f e EGP]g f E‚]h ` g >^ h ù\ ø\ =i ©j > 4° k i j ÷l úk l m øm ù[ øl ùn øn =p Çq p ª r q G¨ s r ÷t ús u v øu ª w q >! w ùt øv >! Lùt øt = x ! ©y x {|ª z q G¨ { z ÷| ú{ } ~ ø} ª  q >#  ù| ø~ ># Lù| ø| = € # ©� € }~=‚  Qƒ  P-„ ‚ ƒ Q…  =†  P-‡ … † =ˆ ° ‰ ˆ 'P_‹ ‰ ‰ ©-Š ‹ ‡ „ =Œ ° � Œ P_� � � ©-Ž �  Š Q� Ž Q‘ Ž ƒ’ � ‘ …“ ’ ¤Q” Ž Q• Ž �– ” • …— – ¤˜ y ° ™ q F©š ™ ˜ y …› “ š �œ — › Ž �  œ � ž  � Ž Ÿ 0 œ �   , Ÿ 9¡ ¥ ž   =¢ ° £ ¢ ÷¤ ú£ ¥ ¦ ø¥ = §  Q¨ ( O © ¨ ¨ 9 ª „  ž  … « © ª Q¬ ( O ­ ¬ ¬ � ® « ­ …¯ � “ ° +¡ (…± ¯ ° Ž ² ® ± � ³ § ² > ³ ù¤ ø¦ =´  …µ � “ …¶ µ ¡ �· ´ ¶ > · ù¤ ø¤ ùo øo ù] ø] =¸ €¹ ¸ E> ¹ ùZ ø[ ¨ º > ÷» úº ¼ » ø¼ Q½  Q¾  9 ¿ %  7 ; ½ ¾ > ¿ ù» ø» = À  =Á  P À Á þ 86 É Ê 7 Ä 7 Å 7 Æ 7Ç 7È øà ;ˆå ;Oà á ;OÜ G;OÖ G;Ð Ï Ñ ;Oæ G;Oâ ã ;OÝ G;-× Ø ;Ó Ò Ô ;Õä d;ˆÞ ß ;Ú Ù Û ;OÕ G;^í a;^4 a;^X a;^u a;^½ a;^ aAÛË ‡GA®Ì ¨Gùç øç ® è È zùé øé öê ì ùî øî =]ï í ª_ð `ï › ñ ð ÷ò úñ ê ò øò Qó ï ª ô ó G©õ ô EGP]ö õ E‚]÷ ï ö >í ÷ ùë øë =ø Ö A7ù Ì GG=ú ù û &ú ©ü è û ° ý ø ü ÷þ úý þ ÿ øÿ ùê øþ ù ø = Ö Ç  „  'Â È  Ç  Í ¨  è ÷ ú ø ª  G>× ù ø >× €ù ø = × ÷ ú  ø ùê ø  & ‚  E= Ö © è    & »A€ Ì H G=  P Å (‘   O    P Æ ‘   O    9- ¬   Ç Q  Q  º    ÷ ú ! ø! =" Õ # &" AO$ Ï # >$  =% Õ & &% A³' Ò & >'  =( Õ €) ( E>Õ ) =* Õ ª + * ÷, ú+ - , ø- ùê ø, ù ø ù ø ùì øì =. Ö €/ . E>Ö / ùé øê ù0 ø0 ö1 3 ù5 ø5 =]6 4 ª_7 `6 › 8 7 ÷9 ú8 1 9 ø9 Q: 6 ª ; : G©< ; EGP]= < E‚]> 6 = >4 > ù2 ø2 =? Ü =@ Õ ° A ? @ ÷B úA B C øC ù1 øB ùD øD =F Ü =G Ü H &G AOI Ï H =J I =K Ü L &K A³M Ò L =-N M 9O  J Å Æ N P &F A}Q Ù P >Q O ùE øE ù3 ø3 =R Ü €S R E>Ü S ù0 ø1 ùT øT öU W ùY øY =]Z X ª_[ `Z › \ [ ÷] ú\ U ] ø] Q^ Z ª _ ^ G©` _ EGP]a ` E‚]b Z a >X b ùV øV =c Ý =d Õ ° e c d ÷f úe f g øg ùU øf ùh øh =j Ý k &j Aˆl Ù k =m l ¸ n m ÷o ún p o øp >Þ >à Gùq øq ör t ùv øv =]w u ª_x `w › y x ÷z úy r z øz Q{ w ª | { G©} | EGP]~ } E‚] w ~ >u  ùs øs =€ à =� Õ ° ‚ € � ÷ƒ ú‚ ƒ „ ø„ ùr øƒ ù… ø… =‡ à ˆ &‡ Aˆ‰ Ò ˆ E=Š ‰ =‹ Ý Œ &‹ Aˆ� Ò Œ E=Ž � � %Š Ž =� à ‘ &� Aˆ’ Ò ‘ G=“ ’ =” Ý • &” Aˆ– Ò • G=— – ˜ (“ — ƒ™ � ˜ š (™ =› à œ &› Aˆ� Ò œ E=ž � =Ÿ à   &Ÿ Aˆ¡ Ò   G=¢ ¡ ƒ£ ž ¢ ¤ (£ ˆ¥ š ¤ =¦ Þ =§ à ¨ &§ Aˆ© Ù ¨ =ª © « (ª …¬ « ¥ �­ ¦ ¬ >Þ ­ ù† ø† ùt øt =® à €¯ ® E>à ¯ ùq ør =° Ý ± &° Aˆ² Ù ± =³ ² ´ ³ =µ Þ ¶ (µ °ˆ· ´ ¶ ¸ %· (>â Gù¹ ø¹ öº ¼ ù¾ ø¾ =]¿ ½ ª_À `¿ › Á À ÷ úÁ º  ø Qà ¿ ª Ä Ã G©Å Ä EGP]Æ Å E‚]Ç ¿ Æ >½ Ç ù» ø» =È â =É Õ ° Ê È É ÷Ë úÊ Ë Ì øÌ ùº øË ùÍ øÍ =Ï â Ð &Ï AˆÑ Ù Ð =Ò Ñ º Ó Ò ÷Ô úÓ Õ Ô øÕ =Ö â × &Ö AˆØ Ò × E=Ù Ø =Ú Ý Û &Ú AˆÜ Ò Û E=Ý Ü Þ %Ù Ý =ß â à &ß Aˆá Ò à G=â á =ã Ý ä &ã Aˆå Ò ä G=æ å ç (â æ ƒè Þ ç é (è =ê â ë &ê Aˆì Ò ë E=í ì =î â ï &î Aˆð Ò ï G=ñ ð ƒò í ñ ó (ò ˆô é ó =õ â ö &õ A}÷ Ù ö =ø ÷ …ù ô ¸ ƒú (ù Žû ø ú ü &õ A}ý Ù ü >ý û ùÔ øÔ ùÎ øÎ ù¼ ø¼ =þ â €ÿ þ E>â ÿ ù¹ øº ùo øo ùi øi ùW øW = Ý € E>Ý  ùT øU ù ø ö  ù ø =]  ª_ ` › ÷ ú  ø Q  ª G© EGP]  E‚]   >  ù ø = æ = Õ °    ÷ ú   ø ù ø ù ø = æ  & Aˆ Ù  =  º   ÷ ú   ø =  ä = æ ! & A}" Ù ! =# " O $ # # � %  $ >ä % =& å =' æ ( &' Aˆ) Ù ( =* ) �+ & * >å + ù ø ù ø ù ø =, æ €- , E>æ - ù ø =. å / . 0 / Ž 1 Ä 0 = 2 ä ƒ3 (0 =4 å 5 (4 Î ˆ6 3 5 Ž 7 2 6 � 8 1 7 þ8 86 = > 7 : 7 ; 7< ø9 A"? �GAÛ@ ‡GA®A ¨GùB øB A§C ? GGF=D C A§E ? GEF=F E A§G ? GFF=H G P I D F H  J EI A_K ? =L K O M L L A€N ? G=O N PP ; (‘Q O P QR Q Ž S J R ƒ T ; S A§U ? =V U º W V ¤PY W W W © X Y T M ƒ Z ; X [ BZ ƒ \ ; X ] ([ P ^ ] ] ] ˆ _ \ ^ 9 ` É : X _ [ < º a [ Pc a a a © b c ` : þb 86 h 7 e 7 f 7 g ød A"i �GAÛj ‡GA®k ¨Gùl øl A§m i GGF=n m A§o i GEF=p o A§q i GFF=r q P s n p r  t Es A_u i =v u O w v v A€x i G=y x Pz f (‘{ y z Q| { Ž } t | ƒ ~ f } A§ i =€  º � € ¤Pƒ � � � © ‚ ƒ ~ w A7„ k GE=… „ 9 † É e ‚ g y… A§‡ k EF=ˆ ‡ P Š ˆ ˆ ˆ  ‰ .e † Š þ‰ 86� ‘ 7Œ 7 � 7 Ž 7 � ø‹ ;£ ¢ Ê;-� ž ;O™ G;£ ¤ ¥ ;-Ÿ   ;Oš G;ˆ¡ ;-› œ ;^Ò a;^v a;^‹ aA"’ �GAÛ“ ‡GA” • ŠG=– �=— �ù¦ ø¦ § &Œ ¾A7¨ “ § G=© ¨ ª &Œ ¾A_« “ ª E=¬ « O ­ ¬ ¬  ® &Œ ¾A7¯ “ ®  =° ¯ ± &° » ´ &± »A_µ • E´ G=¶ µ · &± »A7¸ • E· G=¹ ¸ º &± »A7» • Eº E=¼ » ½ )¼ EA€¾ ’ G=¿ ¾ PÀ � (‘Á ¿ À Q Á à  ª Ä © G÷Å úÄ Æ Å øÆ Ç &± »A§È • EÇ FE=É È º Ê Ã É ÷Ë úÊ Ì Ë øÌ þ(øË ‚Í ½ E>™ Í ùÎ øÎ öÏ Ñ ùÓ øÓ =]Ô Ò ª_Õ `Ô › Ö Õ ÷× úÖ Ï × ø× QØ Ô ª Ù Ø G©Ú Ù EGP]Û Ú E‚]Ü Ô Û >Ò Ü ùÐ øÐ =Ý š ° Þ Ý ½ ÷ß úÞ ß à øà ùÏ øß ùá øá =ã š ä &ã å &± »A§æ • Eå Eä =ç æ ¼ è à ç ÷é úè ê é øê =ë š >™ ë ùÏ øé ùâ øâ ùÑ øÑ =ì š €í ì E>š í ùÎ øÏ ùÅ øÅ =ï ™ ‚ð ½ E ñ &ï ð €ò ¹ ñ ó &ò » õ &ó »A_ö • Fõ F=÷ ö Qø ÷ Qù ÷  ú C� ­ …û ù ú �ü ø û Qý ¶ Qþ ¶  ÿ (þ (… ý ÿ … ü Ž  Ž  �  �  Q ¶ …  ü Ž  �  �    ª  © E÷ ú ø ƒ  ­   Q Q ¾   ÷ ú   ø Q Q ¾    >›  ù ø >› €ù ø =  › ÷ ú   ø Q ¾   ©  GE>™  ù ø Q Q ¾    ÷ ú ! " ø! Q# ¾ $ # ©% $ F >™ % ù ø" Q& ¾ ' & ©( ' H>™ ( ù ø ù ø ù ø =) ™ ‚* ½ E + &) * €, ¹ + - &, » . &- »A€/ • F. G=0 / P1  (‘2 0 1 Q3 2 ¼ 4 3 ÷5 ú4 6 5 ø6 þ(ø5 O 7 2 2 Q8 2 P 9 8 8 8 ˆ : 7 9 Q; : < ; º = < (¨ > = ÷? ú> @ A ø@ QB :  C B º D C (>� D ù? øA >� Lù? ø? = E � ¨ F E ÷G úF H I øH QJ : º K J (>Ÿ K ùG øI >Ÿ LùG øG = L Ÿ ÷M úL N M øN þ(øM O &- »A_P • FO E=Q P QR : …S R ¤�T S ¤QU : …V U ¤ƒW ¤V P-X T W O-Y Q Q O-Z Q Q …-[ X Z �-\ Y [ A§] • GG=^ ] O-_ Q Q …` ¤^ P-a ` ` �-b _ a O-c Q Q O-d Q Q �-e c d …f ¤^ P-g f f ƒ-h e g Qi ¶ ¼ j i ÷k új l m øl -n +\ b h Qo : 9p ûn o >¡ p ùk øm …q i ^ ùr ør ös u ùw øw =]x v ª_y `x › z y ÷{ úz s { ø{ Q| x ª } | G©~ } EGP] ~ E‚]€ x  >v € ùt øt =.� ¢ ³ ‚ � Ï÷ƒ ú‚ ƒ „ ø„ ùs øƒ ù… ø… >¤ Êù‡ ø‡ öˆ Š ùŒ øŒ =]� ‹ ª_Ž `� › � Ž ÷� ú� ˆ � ø� Q‘ � ª ’ ‘ G©“ ’ EGP]” “ E‚]• � ” >‹ • ù‰ ø‰ =.– ¤ ³ — – Ï÷˜ ú— ˜ ™ ø™ ùˆ ø˜ ùš øš =.œ ¤ o� œ =.ž ¢ oŸ ž P-  � Ÿ Ž-¡   q �-¢ \ ¡ -£ +¢ b h =¤ ¡ Q¥ : 9¦ û£ ¥ �§ ¤ ¦ >¡ § ù› ø› ùŠ øŠ =.¨ ¤ €.© ¨ Ï>¤ © ù‡ øˆ ù† ø† ùu øu =.ª ¢ €.« ª Ï>¢ « ùr øs =¬ ¡ ˆ­ ¬ ˜ >¡ ­ ùk øk ª ® © G÷¯ ú® ° ¯ ø° ± &± »A_² • E± F=³ ² =´ ¡ Qµ ³ Q¶ ³  · 1µ ¶ à ¸ .´ (· >¡ ¸ ù¯ ø¯ =¹ ¡ Qº ¶  » .(¹ º þ» 86 ¾ 7 ½ ø¼ A$¿ „GùÀ øÀ A§ ¿ HGG=à  A_Ä ¿ HG=Å Ä O Æ Å Å ”Ç Æ ½ �È Ã Ç A§É ¿ HEG=Ê É A_Ë ¿ HE=Ì Ë O Í Ì Ì ”Î Í ½ �Ï Ê Î A§Ð ¿ HFG=Ñ Ð A_Ò ¿ HF=Ó Ò O Ô Ó Ó ”Õ Ô ½ �Ö Ñ Õ P × È Ï Ö  Ø (× dþØ 86Ý Þ 7 Ú 7 Û 7 Ü øÙ A$ß „Gùà øà ÷á úÛ â á øâ Pã Ü (þã øá A7ä ß G=å ä Çæ å '« ç æ G© è Lç €÷é úè ê é øê 9 ë ¾ Ú Pì ë (þì øé þ¢86 ï 7 î øí ;-ù ú ;ˆó ô ;ˆ÷ ø ;ˆñ ò ;ˆõ ö ùû øû  ü î Qý ü Qþ ü ¾ ÿ ý þ ÷úÿ øQü Qü ¾ >ù ùø>ù €ùø= ù ÷ú øQ ü >ó Q î ¾  ÷ ú ø>ñ Qî >õ Qî >÷ ù ø>ñ (Qî >õ Qî >÷ ù ø ùø Qü Qü ¾ ÷úøQü >ó Qî ¾ ÷ ú!"ø!>ñ IQ#î >õ #Q$î >÷ $ù ø">ñ ¢Q%î >õ %Q&î '&>÷ 'ù ø ùøQ(ü >ó (Q)î ¾ *)÷+ú*,-ø,>ñ ð Q.î >õ .Q/î 0/>÷ 0ù+ø->ñ RQ1î 21>õ 2Q3î 43>÷ 4ù+ø+ùøùø=5ñ =6õ =7ó ˆ867�98(…:9¤=;÷ =<ó ˆ=;<�>=(…?>¤P @5:?þ@86 EF7B7 C7DøAAGHžG=#I¡=J¢ùMøMA7NHGF=ONÂPOD Q)PEpRQˆS¤RQTCƒU(S V+TSUQWCƒX(S Y+WSXQZC�[ZVˆ\[Kp]B�^]Yˆ_^LP-`\_paDVìbIJXcb`aO dccþd86 ij7f7 g7høe;-noAGkžG=#l¡=m¢ùpøpA7qkGE=rq s)rE‚tsEput v+hu w+v¿mxwpyxƒzvy9 {ï g9 |Ef{x¼ }z¨ ~}÷ú~€�ø€€‚xE® ƒ‚s>nƒùø�>nLùø= „n÷…ú„†…ø†þ|ø…ƒ‡(zŽ ˆ|‡€‰xE9 ŠEf{‰Ž ‹Šz� Œˆ‹þŒ86�‘7%Ž7 �ø�ù’ø’Q“ŽP”�(‘•“”O –••Q—ŽO ˜——Q™˜Qš– ›šƒœ™›Q�˜Qž– Ÿžƒ �ŸQ¡˜Q¢– £¢ƒ¤¡£ ¥% ¤ ¦%œ¥¸ §¦÷¨ú§©¨ø©þø¨QªŽQ«ªº ¬«¨ ­¬÷®ú­¯®ø¯þ(ø®Q°ŽQ±°ˆ²¦± ³%²(þ³86¸;7µ7¶7·ø´ùºøºº »¶÷¼ú»½¼ø½ƒ¾·µˆ¿¾¶þ¿ø¼¸ À¶÷ÁúÀÂÁøÂ÷ƒÄõˆÅĶþÅøÁþ¹86 ÊË7%Ç7 È7 ÉøÆùÌøÌQÍÇPÎÉ‘ÏÍÎO ÐÏÏQÑÇQÒÑÇÓÒEª ÔÓG÷ÕúÔÖÕøÖþÐøÕQ×ÇPØÈ(‘ÙרO ÚÙÙQÛÇO ÜÛÛQÝÚQÞÐQßÜ9à¸ÝÞßQáÚQâÐQãÜ9ä¸áâãQåÚQæÐQçÜ9è¸åæç é%äè ê%àé ë(êŽ ìÐë� íÚìQîÇO ïîîƒ ðíïþð86ö÷7 ò7 ó7ô7õøñ;ÿ;ˆü;ÿþ;Õûd;OýG;^aAGøžG=#ù¡=ú¢ùøA7øGG= &'A7øGE=  )E‚  Ep  … ô ù ø öùø=]ª_`› ÷úøQª G©EGP]E‚]>ùø=ý° ÷úøùøù ø =#ý %&#JA$&øE%=%'&Q('Q)(Â*õ)Ç+*Eª ,+G÷-ú,.-ø.ùø->þ'=%/þ90�/ò¼ 10÷2ú132ø3ùø2= 4ûQ5'Q65>'=%79 8Ê7òó9 9i68 Q:'Q;:Ž <9;Ž =<0� >4=>û>=?ü�@?0>ü@ù!ø!ùø=Aý€BAE>ýBù ø=Cüº DC(÷EúDFEøF= Gû=HüP IHHHˆ JGI>ûJ>ü(ùEøE= Kû=LüPMKLþM86RS7 O7 P7QøN;Õ\];ˆX;-Z[;ÕWd;ÿ^_;OYG;^laAGTžG=#U¡=V¢ù`ø`A7aTGG=ba c&b'A7dTGE=ed f)eE‚gfEùhøhöikùmøm=]nlª_o`n› po÷qúpiqøqQrnª srG©tsEGP]utE‚]vnu>lvùjøj=wY° xwc÷yúxyzøzùiøyù{ø{=}Y ~&}JA$TE~=%€Q�€Q‚�ƒQ‚Ç„ƒEª …„G¨ †…÷‡ú†ˆ‰øˆQŠ€Q‹Šª Œ‹G>ZŒù‡ø‰>ZLù‡ø‡= �Z÷Žú��Žø�ùkøŽ>^€=%�^9‘��O¼ ’‘÷“ú’”“ø”ùkø“Q•€O –••>\–Q—€Q˜—ª ™˜E÷šú™›šø›Qœ€Q�œQž€PŸP‘ žŸO ¡  9 ¢ï ¡9 £E�¢g>\£ùšøš= ¤W= ¥\Ž ¦¥‘� §¤¦>W§=¨X�©¨‘>X©ù|ø|ùkøk=ªY€«ªE>Y«ùhøi=¬Xº ­¬(÷®ú­¯®ø¯= °W=±XP ²±±±ˆ ³°²>W³>X(ù®ø®= ´W=µXP¶´µþ¶86º»7¸7¹ø·A¼½«Gù¿ø¿ Á&¸¾„ÂÁ €Ã¹ Å&ÃÄA_ƽGÅ=ÇÆþÇ86>ÊË7=ÉøÈ;ÎÍÏA¼Ì«GùÐøÐQÑÉQÒÉQÓÒQÔÑ9ÕºÔGŽÖÕÓQ×ÒQØÑ9ÙºØGŽÚÙ×�ÛÖÚQÜÒQÝÑ9ÞºÝGŽßÞÜ�àÛßQáÒQâÑ9ãºâGŽäãá�åàäA}æÍG>æåQçÒQèÑ9éºèEŽêéçQëÒQìÑ9íºìEŽîíë�ïêîQðÒQñÑ9òºñEŽóòð�ôïóQõÒQöÑ9÷ºöEŽø÷õ�ùôøA}úÍE>úùQûÒQüÑ9ýºüFŽþýûQÿÒQÑ9ºFŽÿ�þQÒQÑ9ºFŽ�Q ÒQ Ñ9 º FŽ   �  A}ÍF> =>Íþ867Cøùø= ÷PA} >ý867@øùøQ O >÷ý86 !øù"ø"ý86 % 7 $ø#ù&ø&Q'$Q($)(Q*$P +')*þ+86-!ø,ù.ø.= /¯= 0̃ 1/0>÷1ý863!ø2;Õ;<;-?@;ˆ9:;-=>A45òG=#6õ=7öùAøA= B÷  CEBQDC E+D(A§F5I=GFˆH(G IEH>9IA§J5H=KJ¾ LKI÷MúLNMøN=O9A§P5H=QP…ROQ SRA§T5H=UTˆVSU>9VùMøMAWX5F= YXAWZ5G= [Z=\9P ^\\\  ].Y[^>;]¸ _D÷`ú_a`øaAWb5F= cbAWd5= edfD…gfL h+g(P jhhh  i.cej>;iù`ø`AWk5= lk9 m%l  nEm”oCn p+oF( qp r qA§s5»=tsA§u5)=vu w(vÈxrwƒy(x z+y( {zI…|t{= };AW~54= ~Ž €|� �}€>;�A§‚5†=ƒ‚¸ „rƒ÷…ú„†…ø†AW‡54= ˆ‡Ž ‰ˆ8>;‰ù…ø… Š+DF( ‹Š Œ ‹A§�5ŽG=��ƒ‘Œ�A§’5ŽE=“’A§”5ŽG=•”ƒ–“• —(–Ș‘—Q™CQšC ›™šˆœ›N��œ¤A§ž5=Ÿž… �Ÿ ¡+˜(ƒ¢(¡P-£ ¢Vì¤67W¥¤£¾ ¦˜÷§ú¦¨©ø¨¼ ª˜(>=ªù§ø©>=€ù§ø§= «=÷¬ú«­®ø­Q¯¥¾ °¯¤>?°ù¬ø®>?€ù¬ø¬= ±?÷²ú±³²ø³O ´¥¥AW¶5µ= ·¶… ¸´·>;¸ù²ø²= ¹;>Ù¹ý861¼½7»øºù¾ø¾Q¿»O À¿¿QÁ»O ÂÁÁQûO ÄÃÃP1ÅÀÂÄþÅ86ÈÉ7ÇøÆùÊøÊ91˼ÇT1ÌËQÍÇO ÎÍÍ‘ ÏÌÎ ÐÏQ ÑÌPÒÑQ ÓÌPÔÓQ ÕÌPÖÕP×Ð(PØÒÔÖ×þØ86ÚÛøÙA"Ü�GùÝøÝA_ÞÜH=ßÞA_àÜI=áàA_âÜJ=ãâA_äÜ'=åäPæßáãåþæ86-éê7-èøçùëøëQìèQíèƒî(íP-ïìîþï86 ñòøð;-óô;-õöù÷ø÷÷øú€ùúøù>óLùøøú>ó€ùøøø= ûó¨ üû÷ýúüþÿøþ>õ€ùýøÿ>õLùýøý= õþ86 7øA$„GùøA7G=Ç F«  GÇ t«  G¥   þ 86771øA"�Gùø>Â>ÅA€G=9È>È9Ú>ÉA€G=’>ÊA€G=91¼’1>ËQ O !  >Ì!A€"G=#"Q$O %$$P&%(‘'#&O (''>Í(A¶)ÈF=*)O +**>Î+ý86457 -7 .7/7-07-17273ø,;-67ù8ø8>¯->².O 9//>³9O ://  ;D.:Q</Ž =;<>´=9->é0>¸>9-?é1>»?>¼2|.@3>Á@>µ£÷AúLBCøB>6LùAøC>6€ùAøA= D6÷EúDFGøF=HÂ= I¯PJI(‘KHJO LKK>¯L=1MÅ= N²‘ OMN>²O=1PÅ= Q³‘ RPQ>³R=1SÅ= T´‘ UST>´UýøGýøEý86@\]7W7 X7 Y7Z7[øV;C_`A"^�GùaøaA€b^F=cb‘dcWA}e_G>ed÷fú€gføg=hµA}i_G>ihùføfO jWWAÕk_E>kj  lEXAÕm_F>ml=-n¸A³o_ >onAOp_>p[  qEYPrqZA}s_H>sr=t¼A}u_I>ut=-v»A³w_J>wv=.x½ .y*xÇ|zyAO{_'>{z9|_=@}_þ}86 òø~;-€�ù‚ø‚÷ƒúL„…ø„>€Lùƒø…>€Lùƒøƒ= †€þ†86ˆ‰ø‡ùŠøŠ÷‹ú€Œ‹øŒ=�È= ޝP�Ž(‘���þ�ø‹= ‘¯P’‘(þ’86 • 7 ”ø“ù–ø–÷—ú€˜—ø˜=™È91𼙑 ›š”þ›ø—þ”86Ÿ 7�7 žøœA$¡„Gù¢ø¢A7£¡G=¤£Ç¥¤F« ¦¥G¥ §¦ž©¨§F(…©�¨þ©86­®7@«7 ¬øª;Õ¶·;Õ¸¹A"¯�GA$°„GA4±òG=#²õ=³öùºøºQ»«9 ¼»¥ ½¬¼>ñ½>ѽQ¾«>оQ¿«O-À¿¿A_Á¯=ÂÁO-ÃÂÂ…-ÄÀÃ>æÄA€Å°G=ÆÅA€Ç°E=ÈÇ91ɼÈ9ÊÆÉA€Ë¯G=ÌË91ͼÌQ Ϋ  ÏEÎ ÐÏQ Ñ«  ÒEÑPÔ½½½© ÓÔÒÐ>ïÓ>ðÓQ Õ«>îÕQÖ«O ×ÖÖ>¶×= ض= Ù¶”ÚÓÙŽ ÛÓÚƒ ÜØÛ  ÝEÜ>¶Ý= Þ¶  ßDÓÞQà«QáàŽ âßáA€ã¯G=äãQ å«Pæå(‘çäæO èçç>¯è= é¯>Ïé= ꯑ ëÍÓ  ìEë>²ì= í²= î¶‘ ïÍî  ðEï>³ð‘ ñÍâ  òEñ>´ò= ó¯ ôó  õEôA§ö¯ =÷öº ø÷¤Púøøø© ùú§õ>ÔùQ-û«>¸ûQ-ü«>»üQý«>¼ý>Õ´>Ö(>ÙH>Ú(>Û(>Ü(>Ý>Þ¤>ß(>à>á>âd>ã(>ä>åd9þ«9ÿ3T1Í= ²¶íš ÷úø= ²‘   E>ðùø= Õ¶  ´š  ÷ ú   ø = Õ>¸= ¸O-Ž-Iƒ-µP >¸= ¸O-= ¸O-”ƒ( ( Aˆ¸F>= ²= ³Aˆ¸G= Ž ! = "´Aˆ#¸E=$#Ž %"$� &!%= '²Aˆ(¸F=)(Ž *')� +&*=,ÖP .,,,  -.+.  /E->²/= 0²‘ 10  2E1>ð2ù ø = 3϶43êš 54÷6ú578ø7=9È= :ÏP;:(‘<9;O =<<>î=ýø8ýø6ý86 @7?ø>;-AB;-CDùEøEÇF?F« GFG÷HúGIHøIþLøH÷JúLKLøK= Mñ>AMùJøL>A€ùJøJ= NA÷OúNPOøPþLøO÷Qú€RSøR=TÚ=UÛ¸ VTU>CVùQøS>C€ùQøQ= WCþW86 Z 7 YøXA"[�Gù\ø\A§][GGF=^]A§_[GEF=`_A§a[GFF=baP c^`bA_d[ =edO feeƒ gfY  hEg  iEcA§j[ =kjº lk¤Pnlll© mnihþm86qµ7pøoùrørƒs(p t+s(…utt…vuu…wvtþw86}~7y7z7{7|øxù€ø€ �(y÷‚ú€ƒ‚øƒ�„y|�…(|�†(|…‡…†ˆˆ„‡ ‰(ˆ…ЉþŠø‚÷‹ú€Œ‹øŒ�| Ž(|³ �1�Žy…��þ�ø‹÷‘ú€’‘ø’…“I{…”“{…•”|ƒ–•¤9—qz…˜–—�™(˜9šq�…›–š�œ(›…�™…ž�œ…Ÿž�þŸø‘… �þ 86 «¬7 ¢7 £7 ¤7 ¥7 ¦7 §7¨7©7ªø¡;Õ­®;ˆ¯°;-±²ù³ø³”´¢¤ µ%´(”¶¢£ ·(¶<� ¸¤£  ¹E¸”º¤¹ »+º(9¼}µ·»©Ž ½¦¼… ¾½¥>­¾º ¿©÷Àú¿ÁÀøÁ÷Âú€ÃÄøÃ  ÅG¤¢ ÆÅ  ÇEÆ”ÈÇ£ƒÉ(©>¯É=ʯ=˯…ÌÊË>¯Ì= Í­… Φ¥=ϯ…Щ¤ƒÑÏÐ=Ò¯…Ó©¤�ÔÒÓ Õ1ÑÔÈ=Ö¯…×ÕÖ…Ø×ªŽ ÙÎØ� ÚÍÙ>­ÚùÂøÄ÷Ûú€ÜÝøÜº Þµ>±ÞùÛøÝ>±€ùÛøÛ= ß±÷àúßáàøá”⢹ ã(â”䣹 å(ä9 æP§å= ç­9è,ã¨9é:µ·¨…êèéŽ ëæê…ìªµŽ íëì… îí¥� ïçî>­ïùàøàùÂøÂùÀøÀ= ð­þð86ôõ7ò7 óøñ;ˆ÷øAÛö‡Gùùøù ú&ò¾Aæûöú=üûQýüQþýª ÿþG÷úÿøQüO  P(þøQüO ƒ ó  B  ( P    ˆ  Q üQ QüQ9j >÷QüQª F÷úøQüQ  QüO ” (ƒ(ƒ(  (ˆ!  "(<!=#÷Q$üQ%$ &"%ƒ'(&…(#'>÷(ùø=)÷P* )þ*86./7,7 -ø+;-56A"0�GAÛ1‡GA” 2ŠG=3�=4�ù7ø7÷8ú€9:ø9 ;&,¾A7<1;E==<« >=E>5>ù8ø:>5Lù8ø8= ?5÷@ú?A@øAþ(ø@= Bî= Cï9D� ,BC-þD86 LM7 F7 G7 H7 I7J7KøE;Õ^_;ÕXY;Õ\];ÕVW;Õ`a;ÕZ[A$N„GAÛO‡GA;P‘G="Q”=R˜AGSžG=#T¡=U¢ùbøb= cî”dFG e(d<ƒf(JP gfff  h(gIƒ ihIƒj(e kjRŽ lik� mIl9nÝ F€dA7oPGG=poÇqp'« rqG÷súrtuøtA§vP'G=wvA§xPI =yx…zwyA_{PJ=|{O }||>X}A7~PGG=~Ç€« �€G÷‚ú�ƒ‚øƒA_„PJ=…„O †……9 ‡:F9 ˆ‡Ž ‰ˆzA§ŠPJ =‹ŠP �‹‹‹  Œ.†‰�>XŒù‚ø‚QŽnº �Ž÷�ú�‘�ø‘O ’nn>X’ù�ø�A_“PJ=”“O •””>Z•A7–PGG=—–ǘ—K« ™˜G÷šú™›œø› �G  žG�F9 Ÿ:ž9  ƒŸJŽ ¡ z>Z¡ùšøœA7¢PGG=£¢Ç¤£« ¥¤G÷¦ú¥§¦ø§>Zdù¦ø¦ùšøš9-¨•JeA7©SGG=ª©¬ «ªG÷¬ú«­®ø­ ¯G  °G¯FA7±NF=²±9³öc°J²= ´ZQµ³ƒ¶(µŽ ·´¶O ¸³³� ¹·¸= ºX>\ºQ»n¼ ¼»÷½ú¼¾½ø¾A7¿NF=À¿9ÁRcFÀ= ÂXQÃÁƒÄ(ÃŽ ÅÂÄO ÆÁÁ� ÇÅÆ>\Çù½ø½= È\… ÉHÈQÊ¨Ž ËIÊQ̨QÍI…ÎƒÍ Ï+ÎK(…ÐÌÏP ÑÐÐÐ� ÒËÑ… Ó¹Ò� ÔÉÓ>VÔù¬ø®= ÕX… ÖHÕ= ×ZQØ¨Ž ÙIØQÚ¨QÛI…ÜƒÛ Ý+ÜK(…ÞÚÝP ßÞÞÞ� àÙß… á×à� âÖá>Vâù¬ø¬ùsøuA7ãOGE=äãÇåäF« æåG÷çúæèéøèA_êO =ëêO ìëëA_íO=îíO ïîîA_ðOH=ñðO òññ� óïòŽ ôó¤A_õOI=öõO ÷ööA_øOJ=ùøO úùù� û÷úŽ üû¤”ýFì…þý¤�ÿþ¤ +ÿ(P   .üô G  GF9 P JJJ  .ôA7SGG= ¬  G÷ ú   ø  G  GFA7NF=9öcJA§OE =Ž Qƒ(Ž O � O nn>^Qn¼ ÷úøA7 NF=! 9"RcF!A§#OE =$#Ž %$Q&"ƒ'(&Ž (%'O )""� *()>^*ùø= +^… ,H+… -m� .,->V.ù ø Q/nº 0/÷1ú023ø2O 4nn… 5H4… 6mA§7OE =87Ž 968� :59>V:ù1ø3… ;H… <m� =;<A§>OE =?>Ž @=?>V@ù1ø1ù ø ùçøéA7ASGG=BA¬ CBG÷DúCEFøE GG  HGGFA7INF=JI9KöcHJJA_LOE=MLO NMMQOKƒP(OŽ QNPO RKK� SQRO Tnn>`TQUn¼ VU÷WúVXWøXA7YNF=ZY9[RcFZA_\OE=]\O ^]]Q_[ƒ`(_Ž a^`O b[[� cab>`cùWøW= d`… eHd… fSm� gef>VgùDøFQhnº ih÷júikløkO mnn… nHmA_oOE=poO qpp… rqm� snr>VsùjølA_tOE=utO vuu� wHm… xvw>VxùjøjùDøDùçøçùsøs= yVþy86 }À7 {7 |øz;Õ…†A"~�GA$„GAÛ€‡GA;�‘G="‚”=ƒ˜A®„¨Gù‡ø‡>…{÷ˆúL‰ˆø‰= Š…þŠøˆA7‹�GG=Œ‹Ç�Œt« Ž�G÷�úŽ��ø�= ‘…= ’î “|9 ”‘’“>…”ù�ø�A7•I =–•« —–G÷˜ú—™˜ø™= š…= ›îA7œI =�œ9 ž= š›�>…žù˜ø˜= Ÿ…þŸ86 ¢£7¡ø ;-ÁÂ;-»¼;L·¸;ÕÃd;Õ½¾;Õ¹d;-ÄÅ;-¿À;OºG;^ a;LØA"¤�GA$¥„GAÛ¦‡GA” §ŠG=¨�=©�A;ª‘G="«”=¬˜=#­šAG®žG=#¯¡=°¢A ±£G=$²¦=³§A®´¨GùÆøÆ= Çï= ÈÙ=ÉÝ Ê+É(=Ëß Ì+ËJ(=Íã= Îð= ÏåP ,ÐÈÊÌÍÎÏ>·ÐA7Ñ¥IF=ÒѬ ÓÒG÷ÔúÓÕÔøÕ= Öî=,×·>Ø×=,ÙØ9,Ú?ÖÇÙ>·ÚAÕÛ·G= ÜÛ>ÙÜAˆÝ·E=ÞÝ>ÝÞAˆß·F=àß>ßàA€á¤G=âá91ã¼âAÕä·= åä‘ æãå  çEæ>²çùÔøÔAˆè·E=éèAˆê·F=ëê…ìëë…íìë…îíëAÕï·G= ðïƒñ(éŽ òðñ=óÞ…ôµó=õÞ…öôõP ÷öööP ùééé  ø.÷ðùAÕú·= ûú= üî9 ýZüA€þ¤G=ÿþ91¼ÿAˆ· ==ä .(>ìd>íd9²ùøö ù ø =]  ª_ ` ›  ÷úøQ ª G©EGP]E‚] > ùø=º° ÷úøùøùø=º9» &¾Aæ¦== î9!ô O "!!Q#!÷$ú€%$ø%Q&Q'&ª ('G¨ )(÷*ú)+,ø+º -#>»-ù*ø,>»Lù*ø*= .»÷/ú.0/ø0‘ 1"  2E1>è2Q3O 433>é495."…6#5>ë6Q7Q87ª 98G>ê9Q:Q;:>ç;9< ù/ø/ù ø$==ຠ>=÷?ú>@?ø@”Aûý B(A<ƒC(B D(<CƒE(ë…FE¶ G(F HDG= I¹QJO KJJ… LòK=Mà…NHMŽ OLN=PáP RPPP  Q.HðR… SOQ� TIS>¹Tù?ø?º U#÷VúUWVøWQXO YXXŽ ZY#>½ZQ[Q\[ª ]\E÷^ú]_`ø_>¿€ù^ø`>¿€ù^ø^= a¿÷búacbøcQdO edd= fî9g� fÇ"…h#gŽ ieh>½iùbøb÷júLkløk>Á€ùjøl>Á€ùjøj= mÁ÷númopøo= q¹= r½QsQts9 ubûý"ròøît� vqu>¹vùnøp= w¹= x½QyQzy9 {«ûý"xòøîëz� |w{>¹|ùnøn= }âº~}dš ~÷€ú�€ø�”‚û" ƒ%‚( „(ƒ= …¹= †½… ‡ò†= ˆâ… ‰‡ˆ…Š„ƒ‹ŠŽ Œ‰‹� �…Œ>¹�ù€ø€ùVøVùøù ø =Žº€�ŽE>º�ùø÷�ú€‘’ø‘= “ì… ”“ðŽ •”ƒ–(éŽ —•–= ˜íŽ ™˜� š—™>¹šù�ø’=›äº œ›÷�úœž�øž= Ÿ¹Ž  Ÿ>¹ ù�ø�ù�ø�÷¡úL¢¡ø¢9 £Lûýòøëé>ãù¡ø¡A7¤¦GE=¥¤Ç¦¥« §¦G÷¨ú§©ªø©9 «ñ¨ ¬«>Ĭù¨øª>Ä€ù¨ø¨= ­Ä÷®ú­¯°ø¯O-±¡¡ -²± -µ+²³´n2¶µj.·­‚.¸·Ï .¹&Ǹg2º­¹‚2¼º» 2½&¶¼_¾­½¹Q¿¾= À¹AˆÁ· =ÂÁ Ã%¿ÂA§Ä¦FF=ÅÄA§Æ¦F =ÇÆ…ÈÅÇ É.(ÃÈŽ ÊÀÉ>¹Ê= ˹= ÌÃAˆÍ· =ÎÍ Ï%Î¿Ž ÐÌÏ� ÑËÐ>¹Ñù®ø°= Ò¹= ÓÃAˆÔ· =ÕÔŽ ÖÓÕ� ×ÒÖ>¹×ù®ø®= عAÕÙ·H= ÚÙ� ÛØÚ>¹Û= ܹ9 Ý}Üý9 Þ_ÝþÞ86áâ7 àøß;ÕåæA"ã�GAÛä‡Gùçøç>åà÷èú€éèøé= êå=ëÜŽ ìêë>åìùèøè= íå=îÚ9 ïñ©ðïî(PñíðA7òäGE=óòÇôó'« õôG÷öúõ÷öø÷O øññ  ù(ødQúñ û+ú(Püùûþüøö ý+ñ¢£A7þã F=ÿþÇÿF« G÷úøO ýý9 ‘QýPþøþý86 Íø=# –= ˜= ™=$ ›=�=#®ùøVì  XO oÇP V6 XO � Vì XO � þ86G!ø= #!= %$=-(&=+)=.,=1/P / #%(+.1=-32=54A"H�GA$I„GùJøJA€KIG=LKA€MIE=NM91O¼N9PLO>½Ç>À¢Q Q Q R QS Q-T 9 U4QRST3£59V-QW QXW9YŸX€9 Z÷[úZ\[ø\9]ˆ= ^²9 _•^= `³9 a•`Qb 9 @c\]_aYbQdc>6dAef6E=gfhg>fhQ ic>8iQ jc>:jQ-kc>;kQlc>=lQmc>?mQnc>@nQ-oc>AoQpc>BpQqc >CqQrc >DrQsc >EsQtc >Ftýø[A€uIG=vu= w¯Pxw(‘yvxA€zIE={z= |²P}|‘~{}O ~~A€€IG=�€= ‚³Pƒ‚‘„�ƒO …„„Q† 9 @‡\y…Y†Qˆ‡>6ˆAe‰6E=Љ‹Š>‰‹Q Œ‡>8ŒQ �‡>:�Q-އ>;ŽQ�‡>=�Q�‡>?�Q‘‡>@‘Q-’‡>A’Q“‡>B“Q”‡ >C”Q•‡ >D•Q–‡ >E–Q—‡ >F—ý86Å!ø˜= ›š= �œ=-Ÿž=¡ =£¢=¥¤P /™›�Ÿ¡£¥=¨§=ª©=¬«=®­P0¦¨ª¬®=-°¯=³²=µ´P?±³µ=·¶A"Æ�GA$Ç„GùÈøÈQɦQÊÉQ˦QÌËQͦQÎÍP ÏÊÌÎQЦQÑÐQÒ¦QÓÒQÔ¦QÕÔP ÖÑÓÕQצQØ×QÙ¦QÚÙQÛ¦QÜÛP ÝØÚÜ  ÞDÖÝ”ßÏÞ¸ àß  áDÖÝ  âDÝÏ  ãDÏÖP1äáâã©åàF(�1æäåPçÏPèÖPéÝQê¦QëêQì¦QíìQî¦QïîPðëíï(PñçèéðA€òÇG=óò’ôóñA€õÇE=öõ91÷¼ö’1ø÷æ9ùôøQú± û+úúûn.üû>½üQý±>ÀýQ þ™Q ÿ™Q™Q-™Q¦9 4þÿ°·9-Q™©àtGÅQ™Q 9 Ÿ à9 ÷ ú   ø 9ˆ= ²9 •= ³9 •9 @\ Q>¸Ae¸E=>Q >¹Q >ºQ->»Q>¼Q>½Q>¾Q->¿Q>ÀQ  >Á Q! >Â!Q" >Ã"Q# >Ä#ýø = $¯P%$(Q&¦”'&%Q(¦”)(%Q*¦”+*%P ,')+A€-ÇG=.-P/,(‘0./A€1ÇE=21= 3²‘ 4æ3P54‘625O 766A€8ÇG=98P1:ÏÖÝ= ;³‘ <:;P=<‘>9=O ?>>9 @@\07? QA@>¸AAeB¸E=CBDC>BDQ E@>¹EQ F@>ºFQ-G@>»GQH@>¼HQI@>½IQJ@>¾JQ-K@>¿KQL@>ÀLQM@ >ÁMQN@ >ÂNQO@ >ÃOQP@ >ÄPý86v!øQ= TS= VU=-XW=ZY=\[=^]P /RTVXZ\^=b`=dcP=_bd=-fe=hgA"w�GA$x„GA¼y«Gùzøz9>{Ê_Q |RP}|(Q~{”~}Q€{”�€}Q‚{”ƒ‚}P „�ƒQ…{Q†…Q‡{Qˆ‡Q‰{QЉP ‹†ˆŠQŒ{Q�ŒQŽ{Q�ŽQ�{Q‘�P ’��‘Q“{Q”“Q•{Q–•Q—{Q˜—P ™”–˜  šD’™”›‹š¸ œ›  �D’™  žD™‹  ŸD‹’P1 �žŸQ ¡R‘ ¢ ¡©£œF(Ž ¤¢£  ¥E¤P1¦‹’™Q§RO ¨§§‘ ©¦¨  ªE©A€«xG=¬«A€­xE=®­91¯¼®9°¬¯>½Ç>À¢Q±RQ²±P³ª²Q-´R9 µ4„¥³´f£h9¶-Q·R©¸œtGŹ·¸QºRQ»º9¼Ÿ»œ9 ½÷¾ú½¿¾ø¿9Àˆ= Á²9 •Á= ó9 Ä•Ã9 @Å\ÀÂļ¹QÆÅ>iÆAeÇiE=ÈÇÉÈ>ÇÉQ ÊÅ>jÊQ ËÅ>kËQ-ÌÅ>lÌQÍÅ>mÍQÎÅ>nÎQÏÅ>oÏQ-ÐÅ>pÐQÑÅ>qÑQÒÅ >rÒQÓÅ >sÓQÔÅ >tÔQÕÅ >uÕýø¾A€ÖxG=×Ö= دPÙØ(‘Ú×ÙA€ÛxE=ÜÛ= ݲPÞÝ‘ßÜÞO àßßA€áxG=âá= ã³Päã‘åâäO æåå9 @ç\Úàæ¼¹Qèç>ièAeéiE=êéëê>éëQ ìç>jìQ íç>kíQ-îç>lîQïç>mïQðç>nðQñç>oñQ-òç>pòQóç>qóQôç >rôQõç >sõQöç >töQ÷ç >u÷ý86!øø;Õ23=ûú= ýü= ÿþ=-====- =  =  ===P@ùûýÿ   = A"�GA$„GAÛ‡GA” ŠG=�=�A;‘G=" ”=#!–="˜=#™=#$š=$%›=&�AG'žG=#(¡=)¢A *£G=$+¦=,§A®-¨G=#.®A4/òG=#0õ=1öù4ø495­ùQ6ù9 7@6÷8ú798ø9üø8Q :ùQ;ùO-<;;9=Ò:<¼ >=÷?ú>@?ø@üø?÷AúLBCøB= DÙ= Eî9 FZE9 G}DF9 H_G>2HùAøCQIù9 J¢I>2JùAøAA7KG =LKª MLP÷NúMONøO= P29 Q � RPQ>2RùNøNA7S G=TSª UT'÷VúUWVøW= X29 Y&X9 ZY=>2ZùVøV= [29\á[>\ý86{!ø];-‚ƒ;-„…=`_= ba= dc=-fe=hg=ji=lk=-nm=po=rq=ts=vu=xwP@^`bdfhjlnprtvx= zyA"|�GA$}„GA4~òG=#õ=€öù†ø†9‡­^zQˆ^ljˆF« ЉG¨ ‹Š÷Œú‹�Žø�÷�ú€�‘ø�=’Ú=“Û¸ ”’“>„”ù�ø‘>„€ù�ø�= •„>‚•ùŒøŽ>‚LùŒøŒ= –‚÷—ú–˜—ø˜üø—Q ™^9šÒ™�¼ ›š÷œú›�žø�üøžýøœý86¾!øŸ;-ÆÇ;ÉÈÊ=¢¡= ¤£= ¦¥=-¨§=ª©=¬«=®­=-°¯=²±=´³=¶µ=¸·=º¹P@ ¢¤¦¨ª¬®°²´¶¸º= ¼»A"¿�GA$À„GA4ÁòG=#Âõ=ÃöùËøË9Ì­ ¼QÍ 9 Î@ͨ ÏÎ÷ÐúÏÑÒøÑQ Ó QÔ O-ÕÔÔ9ÖÒÓÕ¼ ×Ö>Æ×ùÐøÒ>ÆLùÐøÐ= ØÆ÷ÙúØÚÙøÚüøÙA7ÛÀ F=ÜÛA7ÝÀ G=Þݪ ßÞE©àßEGA7áÀ E=â᪠ãâE©äãFGÅåàäÇæÜpçæÂèÜ'ÇéèpêéÂëÜÇìëpíìpîåPïçêíîˆðïÅA}ñÈG>ñð=AòÈQóò>½óý86!øô;-;=÷ö= ùø= ûú=-ýü=ÿþ===-== =  =  =P@õ÷ùûýÿ   = A"�GA$„GA4òG=#õ=öùø9 ­õQ!õ9 "@!¨ #"÷$ú#%&ø%Q 'õQ(õO-)((9*Ò')¼ +*>+ù$ø&>Lù$ø$= ,÷-ú,.-ø.üø-A€/G=0/911¼0= 2ð‘ 312  4E3=5Ý 6+5(=7Þ…8µ7=9Þ…:89P ;:::= <ÙP >666  =.;<>A€?G=@?Q AõPBA(‘C@BQDCEDPF4EA}GG>GF  H+=dH=Iß J+IJ(PKHJA}LE>LK=DMQNM>NQOM>Oý8 @Ð Ð/ ,@ �˜J£&ѰA¬ËÎ-”ÒÑ'‘+ëjl€_7hh'·ÊË$hedra_shaders/world/9e4d21cdf1310405jÔùñ6BTSR )˜)˜(Q𢫠óE(H†¡H©Jjk ¶(;¸è³ #l (Kn ²ý~ ž4 ›³ (< vs_customvs_custom_instancedvs_custom_skinned fs_customfs_custom_depth fs_custom_idfs_custom_normal_depth NGOLitShadowt_shadows_shadowSky t_radiance t_panorama s_radiance s_panoramat_ao t_lightmap s_lightmapProbet_probess_probesDecalt_decalss_decalsFogSkint_screenhedra_pmatcapalbedo_textureSAMPLER_NEAREST_CLAMPSAMPLER_NEAREST_REPEAT%  vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depth3—struct Globals { view: mat4x4, proj: mat4x4, view_proj: mat4x4, camera_pos: vec4, viewport: vec4, wire_color: vec4, select_color: vec4, active_color: vec4, grid: vec4, params: vec4, fparams: vec4, } struct ObjectU { model: mat4x4, normal: mat4x4, color: vec4, params: vec4, extra: vec4, gi: array, 3>, decals: vec4, lights: vec4, } struct LightU { color: vec4, position: vec4, direction: vec4, spot: vec4, info: vec4, } struct LitU { counts: vec4, ambient: vec4, tone: vec4, up: vec4, sky_top: vec4, sky_horizon: vec4, ground_horizon: vec4, ground_bottom: vec4, inv_view_proj: mat4x4, dirs: vec4, lights: array, } struct ShadowLightU { params: vec4, splits: vec4, fade: vec4, info: vec4, } struct ShadowTileU { view_proj: mat4x4, rect: vec4, texel: vec4, } struct ShadowU { atlas: vec4, lights: array, tiles: array, } struct SunU { direction: vec4, color: vec4, } struct SkyU { flags: vec4, to_sky: mat4x4, sky_top: vec4, sky_horizon: vec4, ground_bottom: vec4, ground_horizon: vec4, sun: vec4, ambient: vec4, ibl: vec4, fog_color: vec4, fog: vec4, fog_depth: vec4, fog_origin: vec4, suns: array, sh: array, 9>, } struct ProbeEntryU { to_local: mat4x4, extents: vec4, offset: vec4, ambient: vec4, info: vec4, } struct ProbeU { counts: vec4, probes: array, } struct DecalEntryU { to_local: mat4x4, modulate: vec4, fades: vec4, axis_x: vec4, axis_y: vec4, axis_z: vec4, layers: vec4, flags: vec4, } struct DecalU { counts: vec4, lod: vec4, entries: array, } struct DecalSurface { base: vec3, metallic: f32, roughness: f32, occlusion: f32, normal: vec3, emission: vec3, } struct VsIn { @location(0) pos: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, } struct InstIn { @location(6) row0_: vec4, @location(7) row1_: vec4, @location(8) row2_: vec4, @location(9) color: vec4, } struct FogEntryU { to_local: mat4x4, size: vec4, material: vec4, albedo: vec4, emission: vec4, lights: vec4, } struct FogU { counts: vec4, params: vec4, ambient: vec4, up: vec4, light_fog: array, 16>, entries: array, } struct SkinU { rows: array, 765>, } struct SkinIn { @location(12) joints: vec4, @location(13) weights: vec4, } struct SkinRows { r0_: vec4, r1_: vec4, r2_: vec4, } struct HedraInstExtra { @location(14) custom: vec4, @location(15) id: f32, } struct CustomOut { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) color: vec4, @location(6) uv2_: vec2, @location(7) @interpolate(flat) instance_id: u32, @location(8) hedra_v0_: vec4, @location(9) hedra_v1_: vec4, @location(10) hedra_v2_: vec4, @location(11) hedra_v3_: vec4, } struct IdOut { @location(0) id: vec4, } struct HedraParams { tint: vec3, reflectivity: f32, snap_resolution: vec2, } struct HedraNormalDepthOut { @location(0) normal_depth: vec4, @location(1) surface: vec4, } const OBJ_HAS_WEIGHTS: u32 = 1u; const OBJ_MIRRORED: u32 = 2u; const SHADE_SOLID: u32 = 0u; const SHADE_MATCAP: u32 = 1u; const SHADE_NORMALS: u32 = 2u; const SHADE_FACE_ORIENT: u32 = 3u; const SHADE_RANDOM: u32 = 4u; const SHADE_MATERIAL: u32 = 5u; const SHADE_UV_CHECKER: u32 = 6u; const SHADE_WEIGHTS: u32 = 7u; const SHADE_LIT: u32 = 8u; const SHADE_LIGHTMAP: u32 = 9u; const SHADE_LIGHT_COUNT: u32 = 10u; const OV_SELECTION: u32 = 1u; const OV_SEAMS: u32 = 2u; const OV_SHARP: u32 = 4u; const F_SELECTED: u32 = 1u; const F_HIDDEN: u32 = 2u; const F_SEAM: u32 = 4u; const F_SHARP: u32 = 8u; const F_MESH: u32 = 16u; const F_FADE: u32 = 32u; const F_NO_PULL: u32 = 64u; const SPEC_TEX_BASE: bool = true; const SPEC_TEX_NORMAL: bool = true; const SPEC_TEX_MR: bool = true; const SPEC_TEX_EMISSION: bool = true; const SPEC_TEX_OCCLUSION: bool = true; const SPEC_VERTEX_COLOR: bool = true; const SPEC_EXT: bool = true; const SPEC_UNLIT: bool = true; const SPEC_ALPHA_MASK: bool = true; const SPEC_ALPHA_BLEND: bool = true; const SPEC_CLEARCOAT: bool = true; const SPEC_SHEEN: bool = true; const SPEC_TRANSMISSION: bool = true; const SPEC_IRIDESCENCE: bool = true; const SPEC_ANISOTROPY: bool = true; const SPEC_DIFFUSE_TRANSMISSION: bool = true; const SPEC_VOLUME: bool = true; const SPEC_DISPERSION: bool = true; const SPEC_EXT_LAYERS: bool = true; const SPEC_ROUGHNESS_LAYER: bool = true; const SPEC_LIT: bool = true; const SPEC_LIGHTS: bool = true; const SPEC_SHADOWS: bool = true; const SPEC_DECALS: bool = true; const SPEC_FOG: bool = true; const SPEC_FOG_VOLUMES: bool = true; const SPEC_PROBES: bool = true; const SPEC_PROBE_GI: bool = true; const SPEC_SSAO: bool = true; const SPEC_SCREEN_REFRACTION: bool = true; const SPEC_EMERGE: bool = true; const SPEC_FADE: bool = true; const SPEC_FACE_FLAGS: bool = true; const SPEC_AMBIENT_FLAT: bool = true; const SPEC_AMBIENT_GRADIENT: bool = true; const SPEC_AMBIENT_SKY: bool = true; const SPEC_MATERIAL_MODE: bool = true; const SPEC_OTHER_MODES: bool = true; const PI: f32 = 3.1415927f; const TAU: f32 = 6.2831855f; const E: f32 = 2.7182817f; const HEDRA_BLEND_MIX: u32 = 0u; const HEDRA_BLEND_PREMUL_ALPHA: u32 = 4u; const HEDRA_CULL_FRONT: u32 = 1u; const HEDRA_DIFFUSE_LAMBERT: u32 = 0u; const HEDRA_DIFFUSE_LAMBERT_WRAP: u32 = 1u; const HEDRA_DIFFUSE_BURLEY: u32 = 2u; const HEDRA_DIFFUSE_TOON: u32 = 3u; const HEDRA_SPECULAR_SCHLICK_GGX: u32 = 0u; const HEDRA_SPECULAR_TOON: u32 = 1u; const HEDRA_SPECULAR_DISABLED: u32 = 2u; const HEDRA_ENCODE_SRGB: u32 = 2u; const HEDRA_NEVER: u32 = 4294967295u; const MAX_FRAME_LIGHTS: u32 = 64u; const MAX_OBJECT_LIGHTS: u32 = 8u; const MAX_SHADOW_LIGHTS: u32 = 16u; const MAX_POOL_DIRECTIONAL: u32 = 8u; const LIGHT_COUNT_COLORS: array, 10> = array, 10>(vec3(0.352941f, 0.352941f, 0.352941f), vec3(0.168627f, 0.247059f, 0.6f), vec3(0.129412f, 0.4f, 0.67451f), vec3(0.101961f, 0.623529f, 0.721569f), vec3(0.121569f, 0.631373f, 0.529412f), vec3(0.301961f, 0.733333f, 0.352941f), vec3(0.65098f, 0.831373f, 0.227451f), vec3(0.94902f, 0.784314f, 0.058824f), vec3(0.94902f, 0.556863f, 0.058824f), vec3(0.878431f, 0.129412f, 0.541176f)); const LIGHT_DIRECTIONAL: u32 = 0u; const LIGHT_OMNI: u32 = 1u; const LIGHT_SPOT: u32 = 2u; const LIGHT_BAKE_DISABLED: u32 = 0u; const LIGHT_BAKE_STATIC: u32 = 1u; const LIGHT_BAKE_DYNAMIC: u32 = 2u; const TONEMAP_LINEAR: u32 = 0u; const TONEMAP_REINHARD: u32 = 1u; const TONEMAP_FILMIC: u32 = 2u; const TONEMAP_ACES: u32 = 3u; const TONEMAP_AGX: u32 = 4u; const ENV_SKY: u32 = 1u; const ENV_AMBIENT_SKY: u32 = 2u; const ENV_SSAO: u32 = 4u; const ENV_HDR: u32 = 8u; const ENV_SCREEN_REFRACTION: u32 = 16u; const LIGHT_SHADOWED: u32 = 1u; const LIGHT_BAKED_STATIC: u32 = 1u; const SHADOW_TILES: u32 = 16u; const SKY_DRAW_PROCEDURAL: u32 = 1u; const SKY_DRAW_PANORAMA: u32 = 2u; const SKY_PANORAMA_FILTER: u32 = 4u; const SKY_IBL: u32 = 8u; const SKY_AMBIENT_SKY: u32 = 16u; const SKY_REFLECT_RADIANCE: u32 = 32u; const SKY_REFLECT_OFF: u32 = 64u; const SKY_FOG: u32 = 128u; const SKY_FOG_DEPTH: u32 = 256u; const SKY_SUNS: u32 = 4u; const OBJ_LIGHTMAP: u32 = 4u; const OBJ_PROBE_GI: u32 = 8u; const PROBE_BOX: u32 = 1u; const PROBE_INTERIOR: u32 = 2u; const MAX_PROBES: u32 = 8u; const PROBE_AMBIENT_DISABLED: u32 = 0u; const PROBE_AMBIENT_ENVIRONMENT: u32 = 1u; const PROBE_AMBIENT_CONSTANT_COLOR: u32 = 2u; const MAX_FRAME_DECALS: u32 = 64u; const MAX_OBJECT_DECALS: u32 = 8u; const DECAL_LIVE_ALBEDO: u32 = 1u; const DECAL_LIVE_NORMAL: u32 = 2u; const DECAL_LIVE_ORM: u32 = 4u; const DECAL_LIVE_EMISSION: u32 = 8u; const F_INSTANCE_MIRRORED: u32 = 128u; const OBJ_EMERGE: u32 = 32u; const EMERGE_SCALE: f32 = 1.3f; const EMERGE_EDGE: f32 = 0.8f; const EMERGE_DITHER: f32 = 0.12f; const OBJ_FADE: u32 = 64u; const MAX_FRAME_FOG_VOLUMES: u32 = 16u; const MAX_OBJECT_FOG_VOLUMES: u32 = 4u; const FOG_SHAPE_ELLIPSOID: u32 = 0u; const FOG_SHAPE_CONE: u32 = 1u; const FOG_SHAPE_CYLINDER: u32 = 2u; const FOG_SHAPE_BOX: u32 = 3u; const FOG_SHAPE_WORLD: u32 = 4u; const FOG_SKY_DISTANCE: f32 = 1000000f; const FOG_LIST_ALL: u32 = 2147483648u; const FOG_GL_X0_: f32 = 0.8611363f; const FOG_GL_X1_: f32 = 0.339981f; const FOG_GL_W0_: f32 = 0.3478548f; const FOG_GL_W1_: f32 = 0.6521452f; const OBJ_SKINNED: u32 = 16u; const SKIN_JOINTS: u32 = 255u; const HEDRA_UNSHADED: bool = true; const HEDRA_HAS_LIGHT: bool = false; const HEDRA_USES_POSITION: bool = false; const HEDRA_SKIP_VERTEX_TRANSFORM: bool = true; const HEDRA_WORLD_VERTEX_COORDS: bool = false; const HEDRA_AMBIENT_LIGHT_DISABLED: bool = false; const HEDRA_FOG_DISABLED: bool = false; const HEDRA_SHADOWS_DISABLED: bool = true; const HEDRA_ALPHA: bool = false; const HEDRA_ALPHA_SCISSOR: bool = false; const HEDRA_DIFFUSE: u32 = 0u; const HEDRA_SPECULAR: u32 = 2u; const HEDRA_BLEND: u32 = 0u; const HEDRA_CULL: u32 = 0u; @group(0) @binding(0) var G: Globals; @group(1) @binding(0) var O: ObjectU; @group(0) @binding(1) var Lit: LitU; @group(0) @binding(2) var Shadow: ShadowU; @group(0) @binding(3) var t_shadow: texture_depth_2d; @group(0) @binding(4) var s_shadow: sampler_comparison; @group(0) @binding(5) var Sky: SkyU; @group(3) @binding(0) var t_radiance: texture_cube; @group(3) @binding(1) var t_panorama: texture_2d; @group(3) @binding(2) var s_radiance: sampler; @group(3) @binding(3) var s_panorama: sampler; @group(0) @binding(6) var t_ao: texture_2d; @group(3) @binding(4) var t_lightmap: texture_2d_array; @group(3) @binding(5) var s_lightmap: sampler; @group(0) @binding(7) var Probe: ProbeU; @group(3) @binding(6) var t_probes: texture_2d; @group(3) @binding(7) var s_probes: sampler; @group(1) @binding(2) var Decal: DecalU; @group(1) @binding(3) var t_decals: texture_2d_array; @group(1) @binding(4) var s_decals: sampler; @group(1) @binding(5) var Fog: FogU; @group(1) @binding(1) var Skin: SkinU; @group(1) @binding(6) var t_screen: texture_2d; var VERTEX: vec3; var NORMAL: vec3; var TANGENT: vec3; var BINORMAL: vec3; var POSITION: vec4; var UV: vec2; var UV2_: vec2; var COLOR: vec4; var INSTANCE_ID: i32; var INSTANCE_CUSTOM: vec4; var VERTEX_ID: i32; var MODEL_MATRIX: mat4x4; var MODEL_NORMAL_MATRIX: mat3x3; var INV_VIEW_MATRIX: mat4x4; var INV_PROJECTION_MATRIX: mat4x4; var MODELVIEW_MATRIX: mat4x4; var MODELVIEW_NORMAL_MATRIX: mat3x3; var NODE_POSITION_WORLD: vec3; var NODE_POSITION_VIEW: vec3; var CAMERA_DIRECTION_WORLD: vec3; var LIGHT_VERTEX: vec3; var FRAGCOORD: vec4; var FRONT_FACING: bool; var VIEW: vec3; var NORMAL_MAP: vec3; var NORMAL_MAP_DEPTH: f32; var ALBEDO: vec3; var ALPHA: f32; var ALPHA_SCISSOR_THRESHOLD: f32; var PREMUL_ALPHA_FACTOR: f32; var METALLIC: f32; var SPECULAR: f32; var ROUGHNESS: f32; var RIM: f32; var RIM_TINT: f32; var BACKLIGHT: vec3; var AO: f32; var AO_LIGHT_AFFECT: f32; var EMISSION: vec3; var SCREEN_UV: vec2; var SPECULAR_AMOUNT: f32; var LIGHT: vec3; var LIGHT_COLOR: vec3; var LIGHT_IS_DIRECTIONAL: bool; var ATTENUATION: f32; var DIFFUSE_LIGHT: vec3; var SPECULAR_LIGHT: vec3; var hedra_world: vec3; var hedra_n_geo: vec3; var hedra_n: vec3; var hedra_front: bool; @group(2) @binding(0) var hedra_p: HedraParams; @group(2) @binding(1) var matcap: texture_2d; @group(2) @binding(2) var albedo_texture: texture_2d; @group(2) @binding(3) var SAMPLER_NEAREST_CLAMP: sampler; @group(2) @binding(4) var SAMPLER_NEAREST_REPEAT: sampler; var env_uv: vec4; var base_uv: vec3; fn srgb_to_linear(c_1: vec3) -> vec3 { let lo = (c_1 / vec3(12.92f)); let hi = pow(((c_1 + vec3(0.055f)) / vec3(1.055f)), vec3(2.4f)); return select(hi, lo, (c_1 <= vec3(0.04045f))); } fn element_color(flags: u32, fallback: vec4) -> vec4 { var local_4: bool; var local_5: bool; if ((flags & F_MESH) == 0u) { return fallback; } let overlays = G.params.y; let _e13 = O.params.w; let edit_object = (_e13 == 1u); if ((flags & F_SEAM) != 0u) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } let _e27 = local_4; if _e27 { let _e32 = srgb_to_linear(vec3(0.86f, 0f, 0f)); return vec4(_e32, 1f); } if ((flags & F_SHARP) != 0u) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } let _e46 = local_5; if _e46 { let _e51 = srgb_to_linear(vec3(0f, 0.85f, 0.9f)); return vec4(_e51, 1f); } if ((overlays & OV_SELECTION) != 0u) { if edit_object { if ((flags & F_SELECTED) != 0u) { let _e64 = G.select_color; return _e64; } let _e67 = G.wire_color; return _e67; } let _e71 = O.params.x; if (_e71 == 1u) { let _e76 = G.select_color; let _e79 = G.active_color; let _e83 = O.params.y; return select(_e76, _e79, (_e83 == 1u)); } } let _e89 = G.wire_color; return _e89; } fn to_view(p: vec3, pull: f32) -> vec4 { var v: vec4; let _e4 = G.view; let _e7 = O.model; v = ((_e4 * _e7) * vec4(p, 1f)); let _e15 = v.z; v.z = (_e15 * (1f - pull)); let _e19 = v; return _e19; } fn linear_to_srgb(c_2: vec3) -> vec3 { let lo_1 = (c_2 * 12.92f); let hi_1 = ((1.055f * pow(c_2, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (c_2 <= vec3(0.0031308f))); } fn target_color(c_3: vec4) -> vec4 { let k_12 = clamp(c_3, vec4(0f), vec4(1f)); let _e9 = G.fparams.w; if (_e9 > 0.5f) { let _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } fn object_light_count() -> u32 { let _e3 = O.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } fn object_light(k: u32) -> u32 { let _e4 = O.lights.y; let _e8 = O.lights.x; let word = select(_e4, _e8, (k < 4u)); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } fn light_count_color() -> vec3 { var colors: array, 10> = LIGHT_COUNT_COLORS; let _e5 = O.lights.w; let _e9 = colors[min(_e5, 9u)]; return _e9; } fn pool_sun_count() -> u32 { let _e3 = Lit.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } fn pool_sun(k_1: u32) -> u32 { let _e4 = Lit.dirs.y; let _e8 = Lit.dirs.x; let word_1 = select(_e4, _e8, (k_1 < 4u)); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } fn decal_count() -> u32 { let _e3 = O.decals.z; return min(_e3, MAX_OBJECT_DECALS); } fn decal_entry(k_2: u32) -> u32 { let _e4 = O.decals.y; let _e8 = O.decals.x; let word_2 = select(_e4, _e8, (k_2 < 4u)); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } fn decal_level(e: DecalEntryU, world: vec3) -> f32 { let _e5 = Decal.lod.x; let _e8 = G.camera_pos; let _e15 = Decal.lod.y; let pixel_1 = (_e5 * select(length((world - _e8.xyz)), 1f, (_e15 > 0.5f))); let _e24 = Decal.counts.y; let top = f32((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 0.000001f)), 1f)), 0f, top); } fn decal_texel(layer: u32, uv: vec2, level: f32, live: bool) -> vec4 { let _e11 = textureSampleLevel(t_decals, s_decals, uv, i32((layer - 1u)), select(level, 0f, live)); return _e11; } fn apply_decals(world_1: vec3, n_geo: vec3, surf: DecalSurface) -> DecalSurface { var out_s: DecalSurface; var k_3: u32 = 0u; var local_6: bool; var fade: f32; out_s = surf; let _e4 = decal_count(); loop { let _e7 = k_3; if (_e7 < _e4) { } else { break; } { let _e11 = k_3; let _e12 = decal_entry(_e11); let e_2 = Decal.entries[min(_e12, 63u)]; let uvw = (e_2.to_local * vec4(world_1, 1f)).xyz; if all((uvw >= vec3(0f, -1f, 0f))) { local_6 = all((uvw <= vec3(1f))); } else { local_6 = false; } let _e35 = local_6; if !(_e35) { continue; } fade = pow((1f - abs(uvw.y)), select(e_2.fades.y, e_2.fades.x, (uvw.y > 0f))); if (e_2.fades.z > 0f) { let _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1f, ((dot(n_geo, e_2.axis_y.xyz) * 0.5f) + 0.5f))); } let uv_3 = uvw.xz; let _e69 = decal_level(e_2, world_1); let live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { let _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); let _e84 = srgb_to_linear(_e82.xyz); let a_2 = (vec4(_e84, _e82.w) * e_2.modulate); let _e90 = fade; let alpha = (a_2.w * _e90); let _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if (e_2.layers.y > 0u) { let _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); let nx = ((_e110.x * 2f) - 1f); let ny = (1f - (_e110.y * 2f)); let nz = sqrt(max(0f, ((1f - (nx * nx)) - (ny * ny)))); let dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); let _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { let _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); let _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); let _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); let _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { let _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); let _e184 = out_s.emission; let _e186 = srgb_to_linear(_e182.xyz); let _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } continuing { let _e197 = k_3; k_3 = (_e197 + 1u); } } let _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045f, 1f); let _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0f, 1f); let _e211 = out_s; return _e211; } fn d_ggx(nh: f32, a2_: f32) -> f32 { let d_12 = (((nh * nh) * (a2_ - 1f)) + 1f); return (a2_ / ((PI * d_12) * d_12)); } fn v_smith(nl: f32, nv: f32, a2_1: f32) -> f32 { let gv = (nl * sqrt((((nv * nv) * (1f - a2_1)) + a2_1))); let g_l = (nv * sqrt((((nl * nl) * (1f - a2_1)) + a2_1))); return (0.5f / max((gv + g_l), 0.0001f)); } fn f_schlick(f0_: vec3, vh: f32) -> vec3 { return (f0_ + ((vec3(1f) - f0_) * pow((1f - vh), 5f))); } fn light_specular(n: vec3, v_1: vec3, l: vec3, radiance: vec3, diffuse: vec3, f0_1: vec3, a2_2: f32, specular: f32) -> vec3 { let nl_2 = dot(n, l); if (nl_2 <= 0f) { return vec3(0f); } let h = normalize((l + v_1)); let nh_1 = max(dot(n, h), 0f); let vh_1 = max(dot(v_1, h), 0f); let nv_3 = max(dot(n, v_1), 0.0001f); let _e24 = f_schlick(f0_1, vh_1); let _e25 = d_ggx(nh_1, a2_2); let _e26 = v_smith(nl_2, nv_3, a2_2); let spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927f)) + (spec * specular)) * radiance) * nl_2); } fn sky(dir: vec3) -> vec3 { let _e4 = Lit.up; let a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1f, 1f)); if (a_3 <= 1.5707964f) { let c_23 = (1f - (a_3 / 1.5707964f)); let k_13 = clamp((1f - pow(max((1f - c_23), 0.000001f), 6.6666665f)), 0f, 1f); let _e30 = Lit.sky_horizon; let _e34 = Lit.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } let c_24 = ((a_3 - 1.5707964f) / 1.5707964f); let k_14 = clamp((1f - pow(max((1f - c_24), 0.000001f), 50f)), 0f, 1f); let _e54 = Lit.ground_horizon; let _e58 = Lit.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } fn filmic_curve(x: vec3) -> vec3 { return ((((x * ((0.88f * x) + vec3((0.1f * 0.6f)))) + vec3((0.2f * 0.01f))) / ((x * ((0.88f * x) + vec3(0.6f))) + vec3((0.2f * 0.3f)))) - vec3((0.01f / 0.3f))); } fn aces_curve(c_4: vec3, white: f32) -> vec3 { let x_2 = vec3((1.8f * dot(vec3(0.59719f, 0.35458f, 0.04823f), c_4)), (1.8f * dot(vec3(0.076f, 0.90834f, 0.01566f), c_4)), (1.8f * dot(vec3(0.0284f, 0.13383f, 0.83777f), c_4))); let t_2 = (((x_2 * (x_2 + vec3(0.0245786f))) - vec3(0.000090537f)) / ((x_2 * ((0.983729f * x_2) + vec3(0.432951f))) + vec3(0.238081f))); let o_5 = vec3(dot(vec3(1.60475f, -0.53108f, -0.07367f), t_2), dot(vec3(-0.10208f, 1.10813f, -0.00605f), t_2), dot(vec3(-0.00327f, -0.07276f, 1.07602f), t_2)); let w_1 = (1.8f * white); let wt = (((w_1 * (w_1 + 0.0245786f)) - 0.000090537f) / ((w_1 * ((0.983729f * w_1) + 0.432951f)) + 0.238081f)); return (o_5 / vec3(wt)); } fn agx_curve(c_5: vec3) -> vec3 { var v_2: vec3; let inset = mat3x3(vec3(0.54490817f, 0.14044006f, 0.08882741f), vec3(0.37377945f, 0.7541096f, 0.17887713f), vec3(0.08138498f, 0.10543358f, 0.73225f)); let outset = mat3x3(vec3(1.964551f, -0.29932243f, -0.16436833f), vec3(-0.85585845f, 1.3264511f, -0.23822464f), vec3(-0.10886711f, -0.02708402f, 1.4026654f)); v_2 = (inset * max(c_5, vec3(0.0000000002f))); let _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931f), vec3(4.0260687f)) - vec3(-12.473931f)) / vec3((4.0260687f - -12.473931f))); let _e44 = v_2; let _e45 = v_2; let x2_ = (_e44 * _e45); let x4_ = (x2_ * x2_); let _e48 = v_2; let _e56 = v_2; let _e64 = v_2; let p_7 = ((((((0.021f * _e48) + (4.0111f * x2_)) - ((25.682f * x2_) * _e56)) + (70.359f * x4_)) - ((74.778f * x4_) * _e64)) + ((27.069f * x4_) * x2_)); return (outset * pow(max(p_7, vec3(0.0000000001f)), vec3(2.4f))); } fn tonemap(c_in: vec3) -> vec3 { let _e4 = Lit.tone.x; let c_25 = max((c_in * _e4), vec3(0f)); let white_1 = Lit.tone.y; let mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return (((white_1 * c_25) + c_25) / ((c_25 * white_1) + vec3(white_1))); } if (mode == TONEMAP_FILMIC) { let _e27 = filmic_curve(c_25); let _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if (mode == TONEMAP_ACES) { let _e33 = aces_curve(c_25, white_1); return _e33; } if (mode == TONEMAP_AGX) { let _e36 = agx_curve(c_25); return _e36; } return c_25; } fn emerge_hash(p_1: vec3) -> f32 { var q: vec3; q = fract((p_1 * 0.1031f)); let _e5 = q; let _e6 = q; let _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32f))))); let _e16 = q.x; let _e18 = q.y; let _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } fn emerge_noise(p_2: vec3) -> f32 { let i_13 = floor(p_2); let f = fract(p_2); let u_1 = ((f * f) * (vec3(3f) - (2f * f))); let _e10 = emerge_hash(i_13); let _e16 = emerge_hash((i_13 + vec3(1f, 0f, 0f))); let _e24 = emerge_hash((i_13 + vec3(0f, 1f, 0f))); let _e30 = emerge_hash((i_13 + vec3(1f, 1f, 0f))); let a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); let _e40 = emerge_hash((i_13 + vec3(0f, 0f, 1f))); let _e46 = emerge_hash((i_13 + vec3(1f, 0f, 1f))); let _e54 = emerge_hash((i_13 + vec3(0f, 1f, 1f))); let _e60 = emerge_hash((i_13 + vec3(1f, 1f, 1f))); let b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } fn emerge_reveal(world_2: vec3, pixel: vec2) -> f32 { var n_1: f32; let _e6 = O.extra.x; if select(true, ((_e6 & OBJ_EMERGE) == 0u), SPEC_EMERGE) { return 1f; } let e_3 = O.normal[0][3]; let w_2 = (world_2 * EMERGE_SCALE); let _e21 = emerge_noise(w_2); let _e29 = emerge_noise(((w_2 * 2.7f) + vec3(17.1f))); n_1 = smoothstep(0.2f, 0.8f, ((_e21 * 0.65f) + (_e29 * 0.35f))); if (pixel.x >= 0f) { let ign = fract((52.982918f * fract(dot(floor(pixel), vec2(0.06711056f, 0.00583715f))))); let _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5f) * EMERGE_DITHER)), 0f, 1f); } let _e60 = n_1; return (((e_3 * 1.8f) - _e60) / EMERGE_EDGE); } fn emerge_tint(c_6: vec3, r: f32) -> vec3 { var local_7: bool; let _e6 = O.extra.x; if !(((_e6 & OBJ_EMERGE) == 0u)) { local_7 = (r >= 1f); } else { local_7 = true; } let _e17 = local_7; if select(true, _e17, SPEC_EMERGE) { return c_6; } let _e23 = O.extra.w; let _e26 = srgb_to_linear(unpack4x8unorm(_e23).xyz); let _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0f, 1f, r)); } fn item_fade(c_7: vec3) -> vec3 { let _e5 = O.extra.x; if select(true, ((_e5 & OBJ_FADE) == 0u), SPEC_FADE) { return c_7; } let f_1 = O.normal[3]; let _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } fn sky_dir(d: vec3) -> vec3 { let _e3 = Sky.to_sky; return normalize((_e3 * vec4(d, 0f)).xyz); } fn sky_curve(c_8: f32, curve: f32) -> f32 { return clamp((1f - pow(max((1f - c_8), 0.000001f), (1f / curve))), 0f, 1f); } fn procedural_sky(d_1: vec3) -> vec3 { var sky_1: vec3; var i: u32 = 0u; let v_6 = acos(clamp(d_1.y, -1f, 1f)); let _e8 = Sky.sky_horizon; let _e12 = Sky.sky_top; let _e21 = Sky.sky_top.w; let _e22 = sky_curve((1f - (v_6 / 1.5707964f)), _e21); let _e27 = Sky.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); let _e33 = Sky.flags.z; let suns = min(_e33, SKY_SUNS); loop { let _e38 = i; if (_e38 < suns) { } else { break; } { let _e42 = i; let sun = Sky.suns[_e42]; let size = sun.direction.w; let a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1f, 1f)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { let _e60 = Sky.sun.x; if (a_5 < _e60) { let _e66 = Sky.sun.x; let c2_ = ((a_5 - size) / (_e66 - size)); let _e71 = sky_1; let _e75 = Sky.sun.y; let _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } continuing { let _e79 = i; i = (_e79 + 1u); } } let _e83 = Sky.ground_horizon; let _e87 = Sky.ground_bottom; let _e96 = Sky.ground_bottom.w; let _e97 = sky_curve(((v_6 - 1.5707964f) / 1.5707964f), _e96); let _e102 = Sky.ground_horizon.w; let ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); let _e104 = sky_1; let _e112 = Sky.sun.z; return (select(ground, _e104, (d_1.y >= 0f)) * _e112); } fn panorama(d_2: vec3) -> vec3 { let uv_4 = vec2(fract((atan2(d_2.x, -(d_2.z)) / 6.2831855f)), (acos(clamp(d_2.y, -1f, 1f)) / PI)); let _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { let _e27 = textureSampleLevel(t_panorama, s_panorama, uv_4, 0f); let _e32 = Sky.sun.z; return (_e27.xyz * _e32); } let _e36 = textureDimensions(t_panorama, 0i); let size_1 = vec2(_e36); let x_3 = (((i32(floor((uv_4.x * f32(size_1.x)))) % size_1.x) + size_1.x) % size_1.x); let y = clamp(i32(floor((uv_4.y * f32(size_1.y)))), 0i, (size_1.y - 1i)); let _e64 = textureLoad(t_panorama, vec2(x_3, y), 0i); let _e69 = Sky.sun.z; return (_e64.xyz * _e69); } fn sh_irradiance(n_2: vec3) -> vec3 { var c_9: vec3; let _e4 = Sky.sh[0]; c_9 = (_e4.xyz * 0.282095f); let _e9 = c_9; let _e13 = Sky.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603f * n_2.y))); let _e20 = c_9; let _e24 = Sky.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603f * n_2.z))); let _e31 = c_9; let _e35 = Sky.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603f * n_2.x))); let _e42 = c_9; let _e46 = Sky.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548f * n_2.x) * n_2.y))); let _e55 = c_9; let _e59 = Sky.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548f * n_2.y) * n_2.z))); let _e68 = c_9; let _e72 = Sky.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392f * (((3f * n_2.z) * n_2.z) - 1f)))); let _e85 = c_9; let _e89 = Sky.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548f * n_2.x) * n_2.z))); let _e98 = c_9; let _e102 = Sky.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274f * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); let _e115 = c_9; return max(_e115, vec3(0f)); } fn radiance_1(d_3: vec3, roughness: f32) -> vec3 { let _e5 = Sky.flags.y; let top_1 = f32((max(_e5, 1u) - 1u)); let _e14 = textureSampleLevel(t_radiance, s_radiance, d_3, (roughness * top_1)); return _e14.xyz; } fn env_brdf_approx(roughness_1: f32, nv_1: f32) -> vec2 { let r_6 = ((roughness_1 * vec4(-1f, -0.0275f, -0.572f, 0.022f)) + vec4(1f, 0.0425f, 1.04f, -0.04f)); let a004_ = ((min((r_6.x * r_6.x), exp2((-9.28f * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04f, 1.04f) * a004_) + r_6.zw); } fn pow8_(x_1: f32) -> f32 { let x2_1 = (max(x_1, 0f) * max(x_1, 0f)); let x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } fn fog_sun_scatter(fc: vec3, dir_1: vec3) -> vec3 { var c_10: vec3; var k_4: u32 = 0u; c_10 = fc; let _e6 = Sky.fog_color.w; if (_e6 > 0.001f) { let _e9 = pool_sun_count(); loop { let _e12 = k_4; if (_e12 < _e9) { } else { break; } { let _e14 = k_4; let _e15 = pool_sun(_e14); let _e21 = Lit.lights[_e15].info.x; if (_e21 == LIGHT_DIRECTIONAL) { let _e24 = c_10; let _e29 = Lit.lights[_e15].color; let _e38 = Lit.lights[_e15].direction; let _e42 = pow8_(dot(dir_1, -(_e38.xyz))); let _e47 = Sky.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927f)) * _e42) * _e47)); } } continuing { let _e51 = k_4; k_4 = (_e51 + 1u); } } } let _e53 = c_10; return _e53; } fn sky_fog(c_11: vec3, dir_2: vec3) -> vec3 { let _e4 = Sky.fog_color; let _e9 = Sky.fog_depth.w; let _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); let _e15 = Sky.fog.y; return mix(c_11, _e11, _e15); } fn surface_fog(c_12: vec3, world_3: vec3, dir_3: vec3) -> vec3 { var dist: f32; var amount: f32; var fc_1: vec3; var local_8: bool; let _e5 = G.view; let depth = -((_e5 * vec4(world_3, 1f)).z); let _e13 = G.camera_pos; dist = distance(world_3, _e13.xyz); let _e20 = Sky.fog_origin.w; if (_e20 > 0.5f) { let _e26 = Sky.fog_origin.x; dist = max((depth - _e26), 0f); } let _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { let _e42 = Sky.fog_depth.x; let _e46 = Sky.fog_depth.y; let _e47 = dist; let z = smoothstep(_e42, _e46, _e47); let _e54 = Sky.fog_depth.z; let _e63 = Sky.fog.x; amount = (select(0f, pow(max(z, 0.000001f), _e54), (z > 0f)) * _e63); } else { let _e65 = dist; let _e70 = Sky.fog.x; amount = (1f - exp(min(0f, (-(_e65) * _e70)))); } let _e80 = Sky.fog.w; if (abs(_e80) >= 0.0001f) { let _e86 = Lit.up; let y_1 = dot(world_3, _e86.xyz); let _e89 = amount; let _e93 = Sky.fog.z; let _e98 = Sky.fog.w; amount = max(_e89, (1f - exp(min(0f, ((y_1 - _e93) * _e98))))); } let _e106 = amount; amount = clamp(_e106, 0f, 1f); let _e112 = Sky.fog_color; fc_1 = _e112.xyz; let _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { let _e129 = Sky.fog_depth.w; local_8 = (_e129 > 0f); } else { local_8 = false; } let _e133 = local_8; if select(false, _e133, SPEC_AMBIENT_SKY) { let _e139 = Sky.fog_origin.y; let _e144 = Sky.fog_origin.z; let _e148 = Sky.fog_origin.y; let t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 0.000001f)), 0f, 1f); let _e159 = Sky.flags.y; let top_2 = f32((max(_e159, 2u) - 1u)); let rough = mix((1f / top_2), 1f, (1f - t_3)); let _e171 = fc_1; let _e172 = sky_dir(dir_3); let _e173 = radiance_1(_e172, rough); let _e177 = Sky.sun.w; let _e182 = Sky.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } let _e184 = fc_1; let _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; let _e186 = fc_1; let _e187 = amount; return mix(c_12, _e186, _e187); } fn fog_chord(k_5: u32, o: vec3, d_4: vec3, t_end_ray: f32) -> vec2 { var r_1: vec2; var a: f32 = 0f; var b: f32 = 0f; var c_13: f32 = -1f; let _e9 = Fog.entries[k_5].albedo.w; let shape = u32(_e9); let _e16 = Fog.entries[k_5].emission.w; let t_end_1 = min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return vec2(0f, t_end_1); } let _e26 = Fog.entries[k_5].size; let h_1 = (_e26.xyz * 0.5f); let dd = select(d_4, vec3(0.000000000001f), (abs(d_4) < vec3(0.000000000001f))); let sa = ((-(h_1) - o) / dd); let sb = ((h_1 - o) / dd); let s_in = min(sa, sb); let s_out = max(sa, sb); r_1 = vec2(max(0f, s_in.y), min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { let _e60 = r_1.x; let _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1f); } else { let rad = min(h_1.x, h_1.z); let k_15 = select(0f, (rad / (2f * h_1.y)), (shape == FOG_SHAPE_CONE)); let w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - select((rad * rad), (((k_15 * k_15) * w_3) * w_3), (shape == FOG_SHAPE_CONE))); } } let _e139 = b; let _e140 = b; let _e142 = a; let _e143 = c_13; let disc = ((_e139 * _e140) - (_e142 * _e143)); let _e146 = a; if (abs(_e146) < 0.000000000001f) { let _e150 = b; if (abs(_e150) < 0.000000000001f) { let _e156 = r_1.y; let _e157 = c_13; r_1.y = select(_e156, -1f, (_e157 > 0f)); } else { let _e162 = b; if (_e162 > 0f) { let _e167 = r_1.y; let _e168 = c_13; let _e170 = b; r_1.y = min(_e167, (-(_e168) / (2f * _e170))); } else { let _e177 = r_1.x; let _e178 = c_13; let _e180 = b; r_1.x = max(_e177, (-(_e178) / (2f * _e180))); } } } else { if (disc < 0f) { let _e189 = r_1.y; let _e190 = a; r_1.y = select(_e189, -1f, (_e190 > 0f)); } else { let _e195 = b; let _e199 = a; let _e201 = b; let _e205 = a; let lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); let _e208 = b; let _e212 = a; let _e214 = b; let _e218 = a; let hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); let _e221 = a; if (_e221 > 0f) { let _e225 = r_1.x; let _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { let _e232 = r_1.x; let _e234 = r_1.y; if (_e232 < min(_e234, lo_2)) { let _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { let _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } let _e245 = r_1; return _e245; } fn fog_density(k_6: u32, p_3: vec3, lp: vec3) -> f32 { var rho: f32; var sdf: f32 = 0f; let e_4 = Fog.entries[k_6]; let _e14 = Fog.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1f)); if (e_4.material.z > 0f) { let shape_1 = u32(e_4.albedo.w); let h_2 = (e_4.size.xyz * 0.5f); let rad_1 = min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { let k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1f)) / max(length((lp / (h_2 * h_2))), 0.000000000001f)); } else { if (shape_1 == FOG_SHAPE_BOX) { let q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0f))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0f)); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { let q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0f) + length(max(q_4, vec2(0f)))); } else { let n_11 = normalize(vec2((1f / max(0.001f, (rad_1 * 0.5f))), (1f / max(0.001f, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } let _e116 = rho; let _e117 = sdf; rho = (_e116 * pow(clamp(((-2f * _e117) / e_4.size.w), 0f, 1f), e_4.material.z)); } let _e130 = rho; return _e130; } fn fog_falloff_depth(k_7: u32, a_1: f32, b_1: f32, t0_: f32, t1_: f32) -> f32 { let m_4 = Fog.entries[k_7].material; let hf = m_4.y; if ((hf * b_1) == 0f) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1f)); } let s_2 = clamp((-(a_1) / b_1), t0_, t1_); let lo_3 = select(t0_, s_2, (b_1 > 0f)); let hi_3 = select(s_2, t1_, (b_1 > 0f)); let x_4 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472f); let g = select(((1f - exp(-(x_4))) / x_4), (1f - (x_4 * (0.5f - (x_4 * (0.16666667f - (x_4 / 24f)))))), (x_4 < 0.01f)); let top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * select(hi_3, lo_3, (b_1 > 0f)))), 0f))), 1f); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } fn omni_attenuation(d_5: f32, inv_range: f32, decay: f32) -> f32 { var nd: f32; nd = (d_5 * inv_range); let _e5 = nd; let _e6 = nd; nd = (_e5 * _e6); let _e8 = nd; let _e9 = nd; nd = (_e8 * _e9); let _e11 = nd; nd = max((1f - _e11), 0f); let _e16 = nd; let _e17 = nd; nd = (_e16 * _e17); let _e19 = nd; return (_e19 * pow(max(d_5, 0.0001f), -(decay))); } fn fog_light(n_3: u32, p_4: vec3, dir_4: vec3) -> vec3 { var sum: vec3; var k_8: u32 = 0u; var l_1: vec3; var atten: f32; let _e5 = Fog.ambient; let _e10 = Fog.params.y; sum = (_e5.xyz * _e10); let g_1 = Fog.params.x; let lights = Fog.entries[n_3].lights; loop { let _e24 = k_8; if (_e24 < min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { let _e31 = k_8; let _e35 = k_8; let i_14 = min(((select(lights.y, lights.x, (_e31 < 4u)) >> ((_e35 & 3u) * 8u)) & 255u), 63u); let li = Lit.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1f; if (li.info.x != LIGHT_DIRECTIONAL) { let rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 0.000001f))); let _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { let _e77 = l_1; let rim = max(0.0001f, ((1f - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1f - li.spot.x), 0.000001f))); let _e96 = atten; atten = (_e96 * (1f - pow(rim, li.spot.y))); } } let _e108 = l_1; let q_5 = ((1f + (g_1 * g_1)) - ((2f * g_1) * dot(dir_4, _e108))); let _e112 = sum; let _e115 = atten; let _e133 = Fog.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1f - (g_1 * g_1))) / ((12.566371f * q_5) * sqrt(q_5))) * _e133))); } continuing { let _e138 = k_8; k_8 = (_e138 + 1u); } } let _e140 = sum; return _e140; } fn fog_entry(k_9: u32, o_1: vec3, d_6: vec3, ch: vec2) -> vec4 { var split: f32; var local_9: bool; var local_10: bool; var q_1: vec3 = vec3(0f); var tau: f32 = 0f; var i_1: u32 = 0u; var local_11: bool; var local_12: bool; let e_5 = Fog.entries[k_9]; let lo_4 = (e_5.to_local * vec4(o_1, 1f)).xyz; let ld = (e_5.to_local * vec4(d_6, 0f)).xyz; let _e20 = Fog.up; let a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); let _e28 = Fog.up; let b_3 = dot(d_6, _e28.xyz); let edge = (e_5.material.z > 0f); split = ((ch.x + ch.y) * 0.5f); if (e_5.material.y > 0f) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } let _e52 = local_9; if _e52 { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } let _e60 = local_10; if _e60 { split = (-(a_6) / b_3); } loop { let _e70 = i_1; if (_e70 < select(4u, 12u, edge)) { } else { break; } { let _e75 = i_1; let j = (_e75 & 3u); if !((j == 0u)) { local_11 = (j == 3u); } else { local_11 = true; } let _e88 = local_11; let x_5 = select(FOG_GL_X1_, FOG_GL_X0_, _e88); if !((j == 0u)) { local_12 = (j == 3u); } else { local_12 = true; } let _e100 = local_12; let w_4 = select(FOG_GL_W1_, FOG_GL_W0_, _e100); let _e102 = split; let _e106 = split; let _e108 = i_1; let _e112 = i_1; let seg = select(select(vec2(_e102, ch.y), vec2(ch.x, _e106), (_e108 < 8u)), ch, (_e112 < 4u)); let half_len = ((seg.y - seg.x) * 0.5f); let t_4 = (((seg.x + seg.y) * 0.5f) + (half_len * select(x_5, -(x_5), (j < 2u)))); let p_8 = (o_1 + (d_6 * t_4)); let _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_4))); let _e137 = i_1; if (_e137 < 4u) { let _e140 = q_1; let _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0f, 1f)))); } else { let _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } continuing { let _e160 = i_1; i_1 = (_e160 + 1u); } } if !(edge) { let _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } let _e166 = q_1; let _e167 = tau; return vec4(_e166, _e167); } fn fog_integrate(c_14: vec3, o_2: vec3, d_7: vec3, t_end: f32, list: u32) -> vec3 { var at: array; var chords: array, 4>; var m: u32 = 0u; var i_2: u32 = 0u; var local_13: bool; var parts: array, 4>; var i_3: u32 = 0u; var n_4: u32 = 0u; var avail: f32; var i_4: u32; var i_5: u32; var q_2: vec3 = vec3(0f); var tau_1: f32 = 0f; var i_6: u32 = 0u; let all_ = (list >= FOG_LIST_ALL); loop { let _e13 = i_2; let _e18 = Fog.counts.x; if (_e13 < select(4u, min(_e18, MAX_FRAME_FOG_VOLUMES), all_)) { } else { break; } { let _e23 = i_2; let byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if !(all_) { local_13 = (byte == 0u); } else { local_13 = false; } let _e37 = local_13; if _e37 { break; } let _e42 = i_2; let k_16 = select((min(byte, MAX_FRAME_FOG_VOLUMES) - 1u), _e42, all_); let to_local = Fog.entries[k_16].to_local; let _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1f)).xyz, (to_local * vec4(d_7, 0f)).xyz, t_end); if (_e57.y > _e57.x) { let _e61 = m; at[_e61] = k_16; let _e63 = m; chords[_e63] = _e57; let _e66 = m; m = (_e66 + 1u); let _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } continuing { let _e72 = i_2; i_2 = (_e72 + 1u); } } loop { let _e77 = i_3; let _e78 = m; if (_e77 < _e78) { } else { break; } { let _e80 = i_3; let _e82 = i_3; let _e84 = at[_e82]; let _e85 = i_3; let _e87 = chords[_e85]; let _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } continuing { let _e90 = i_3; i_3 = (_e90 + 1u); } } loop { let _e94 = n_4; let _e95 = m; if (_e94 < _e95) { } else { break; } { let _e97 = n_4; let _e100 = parts[_e97].w; if (_e100 < 0f) { avail = 0f; i_4 = 0u; loop { let _e107 = i_4; let _e108 = m; if (_e107 < _e108) { } else { break; } { let _e110 = i_4; let _e113 = chords[_e110].y; let _e114 = n_4; let _e117 = chords[_e114].y; let _e119 = i_4; let _e122 = chords[_e119].x; let _e123 = n_4; let _e126 = chords[_e123].x; let _e131 = i_4; let _e134 = chords[_e131].y; let _e135 = i_4; let _e138 = chords[_e135].x; let share = (max((min(_e113, _e117) - max(_e122, _e126)), 0f) / max((_e134 - _e138), 0.000001f)); let _e143 = avail; let _e144 = i_4; let _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0f) * share)); } continuing { let _e153 = i_4; i_4 = (_e153 + 1u); } } let _e155 = n_4; let _e158 = parts[_e155].w; let _e160 = avail; let f_2 = min((-(_e158) / max(_e160, 0.000000000001f)), 1f); i_5 = 0u; loop { let _e168 = i_5; let _e169 = m; if (_e168 < _e169) { } else { break; } { let _e171 = i_5; let _e174 = parts[_e171].w; if (_e174 > 0f) { let _e177 = i_5; let _e180 = chords[_e177].y; let _e181 = n_4; let _e184 = chords[_e181].y; let _e186 = i_5; let _e189 = chords[_e186].x; let _e190 = n_4; let _e193 = chords[_e190].x; let _e198 = i_5; let _e201 = chords[_e198].y; let _e202 = i_5; let _e205 = chords[_e202].x; let share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0f) / max((_e201 - _e205), 0.000001f)); let _e210 = i_5; let _e212 = parts[_e210]; parts[_e210] = (_e212 * (1f - (share_1 * f_2))); } } continuing { let _e218 = i_5; i_5 = (_e218 + 1u); } } } } continuing { let _e221 = n_4; n_4 = (_e221 + 1u); } } loop { let _e230 = i_6; let _e231 = m; if (_e230 < _e231) { } else { break; } { let _e233 = i_6; let _e236 = parts[_e233].w; if (_e236 > 0f) { let _e239 = q_2; let _e240 = i_6; let _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); let _e245 = tau_1; let _e246 = i_6; let _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } continuing { let _e252 = i_6; i_6 = (_e252 + 1u); } } let _e254 = tau_1; let t_5 = exp(-(_e254)); let _e258 = q_2; let _e261 = tau_1; return ((c_14 * t_5) + (_e258 * ((1f - t_5) / max(_e261, 0.00001f)))); } fn fog_volumes(c_15: vec3, world_4: vec3, list_1: u32) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_6 = select(_e22.xyz, (world_4 - (back * (_e26 * vec4(world_4, 1f)).z)), (_e36 > 0.5f)); let len = length((world_4 - o_6)); let _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 0.000001f))), len, list_1); return select(c_15, _e47, (len > 0f)); } fn sky_fog_volumes(c_16: vec3, near_point: vec3, dir_5: vec3) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back_1 = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_7 = select(_e22.xyz, (near_point - (back_1 * (_e26 * vec4(near_point, 1f)).z)), (_e36 > 0.5f)); let _e44 = Fog.counts.y; let _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); let _e49 = Fog.params.z; return mix(c_16, _e45, _e49); } fn shadow_factor(i_7: u32, world_5: vec3, n_geo_1: vec3, l_2: vec3) -> f32 { var part: u32 = 0u; var c_17: u32 = 0u; var local_14: bool; var local_15: bool; var local_16: bool; var vis: f32 = 0f; var dy: i32 = -1i; var dx: i32; let kind = Lit.lights[i_7].info.x; let _e14 = Lit.lights[i_7].position; let light_pos = _e14.xyz; let _e21 = Lit.lights[i_7].info.w; let slot = min(_e21, 15u); let params = Shadow.lights[slot].params; let first = Shadow.lights[slot].info.x; let _e40 = Shadow.lights[slot].info.y; let count = max(_e40, 1u); let _e45 = G.view; let view_depth = -((_e45 * vec4(world_5, 1f)).z); if (kind == LIGHT_DIRECTIONAL) { let _e60 = Shadow.lights[slot].fade.y; if (view_depth > _e60) { return 1f; } part = (count - 1u); loop { let _e67 = c_17; if (_e67 < count) { } else { break; } { let _e73 = c_17; let _e75 = Shadow.lights[slot].splits[_e73]; if (view_depth <= _e75) { let _e77 = c_17; part = _e77; break; } } continuing { let _e79 = c_17; c_17 = (_e79 + 1u); } } } let _e83 = part; let texel = Shadow.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; let t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); let p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1f)) * t_6))) + (l_2 * (params.x * t_6))); if (kind == LIGHT_OMNI) { let d_13 = (p_9 - light_pos); let a_7 = abs(d_13); if (a_7.x >= a_7.y) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } let _e123 = local_14; if _e123 { part = select(1u, 0u, (d_13.x >= 0f)); } else { if (a_7.y >= a_7.z) { part = select(3u, 2u, (d_13.y >= 0f)); } else { part = select(5u, 4u, (d_13.z >= 0f)); } } } let _e145 = part; let tile = min((first + min(_e145, (count - 1u))), 15u); let _e156 = Shadow.tiles[tile].view_proj; let clip_1 = (_e156 * vec4(p_9, 1f)); if (clip_1.w <= 0f) { return 1f; } let ndc = (clip_1.xyz / vec3(clip_1.w)); if !((abs(ndc.x) > 1f)) { local_15 = (abs(ndc.y) > 1f); } else { local_15 = true; } let _e180 = local_15; if !(_e180) { local_16 = (ndc.z > 1f); } else { local_16 = true; } let _e188 = local_16; if _e188 { return 1f; } let rect = Shadow.tiles[tile].rect; let uv_5 = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let auv = (rect.xy + (uv_5 * rect.zw)); let texel_uv = Shadow.atlas.x; let lo_5 = (rect.xy + vec2((0.5f * texel_uv))); let hi_4 = ((rect.xy + rect.zw) - vec2((0.5f * texel_uv))); let r_7 = params.z; if (r_7 <= 0f) { let _e235 = textureSampleCompareLevel(t_shadow, s_shadow, clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { let spread = (r_7 * texel_uv); loop { let _e239 = dy; if (_e239 <= 1i) { } else { break; } { dx = -1i; loop { let _e244 = dx; if (_e244 <= 1i) { } else { break; } { let _e247 = dx; let _e249 = dy; let tap = clamp((auv + (vec2(f32(_e247), f32(_e249)) * spread)), lo_5, hi_4); let _e255 = vis; let _e259 = textureSampleCompareLevel(t_shadow, s_shadow, tap, ndc.z); vis = (_e255 + _e259); } continuing { let _e262 = dx; dx = (_e262 + 1i); } } } continuing { let _e265 = dy; dy = (_e265 + 1i); } } let _e267 = vis; vis = (_e267 / 9f); } if (kind == LIGHT_DIRECTIONAL) { let fade_1 = Shadow.lights[slot].fade; let _e277 = vis; vis = mix(_e277, 1f, smoothstep(fade_1.x, fade_1.y, view_depth)); } let _e283 = vis; return mix(1f, _e283, params.w); } fn probe_light(n_5: vec3) -> vec3 { let _e5 = O.gi[0].x; let _e9 = O.gi[0]; let _e17 = O.gi[1].x; let _e21 = O.gi[1]; let _e29 = O.gi[2].x; let _e33 = O.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0f)); } fn gi_diffuse(n_6: vec3, baked: bool, baked_light: vec3) -> vec4 { if baked { return vec4(baked_light, 1f); } let _e9 = O.extra.x; if select(false, ((_e9 & OBJ_PROBE_GI) != 0u), SPEC_PROBE_GI) { let _e16 = probe_light(n_6); return vec4(_e16, 1f); } return vec4(0f); } fn probe_face_uv(d_8: vec3) -> vec3 { var face: f32; var ma: f32; var sc: f32; var tc: f32; var local_17: bool; let a_8 = abs(d_8); if (a_8.x >= a_8.y) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } let _e15 = local_17; if _e15 { ma = a_8.x; if (d_8.x >= 0f) { face = 0f; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1f; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0f) { face = 2f; sc = d_8.x; tc = d_8.z; } else { face = 3f; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0f) { face = 4f; sc = d_8.x; tc = -(d_8.y); } else { face = 5f; sc = -(d_8.x); tc = -(d_8.y); } } } let _e56 = face; let _e57 = sc; let _e58 = ma; let _e64 = tc; let _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1f) * 0.5f), (((_e64 / _e65) + 1f) * 0.5f)); } fn probe_texel(row: u32, fuv: vec3, level_1: u32) -> vec3 { let _e6 = Probe.counts.z; let n_12 = f32(max((_e6 >> level_1), 1u)); let lo_6 = (0.5f / n_12); let u_2 = clamp(fuv.y, lo_6, (1f - lo_6)); let v_7 = clamp(fuv.z, lo_6, (1f - lo_6)); let uv_6 = vec2(((fuv.x + u_2) / 6f), ((f32(row) + v_7) / 8f)); let _e33 = textureSampleLevel(t_probes, s_probes, uv_6, f32(level_1)); return _e33.xyz; } fn probe_sample(row_1: u32, d_9: vec3, lod: f32) -> vec3 { var local_18: bool; let _e6 = Probe.counts.y; let levels = max(_e6, 1u); let l_5 = clamp(lod, 0f, f32((levels - 1u))); let m0_ = u32(l_5); let t_7 = (l_5 - f32(m0_)); let _e17 = probe_face_uv(d_9); let _e18 = probe_texel(row_1, _e17, m0_); if !((t_7 <= 0f)) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } let _e28 = local_18; if _e28 { return _e18; } let _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1f - t_7)) + (_e34 * t_7)); } fn probe_weight(p_5: ProbeEntryU, world_6: vec3) -> f32 { let l_6 = (p_5.to_local * vec4(world_6, 1f)).xyz; let e_6 = p_5.extents.xyz; let d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if (d_14 < 0f) { return 0f; } if !((p_5.extents.w > 0f)) { return 1f; } return min((d_14 / p_5.extents.w), 1f); } fn probe_exit(o_3: f32, d_10: f32, e_1: f32) -> f32 { if (d_10 > 0f) { return ((e_1 - o_3) / d_10); } if (d_10 < 0f) { return ((-(e_1) - o_3) / d_10); } return 300000000000000000000000000000000000000f; } fn probe_lookup(p_6: ProbeEntryU, world_7: vec3, dir_6: vec3) -> vec3 { let d_15 = (p_6.to_local * vec4(dir_6, 0f)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } let o_8 = (p_6.to_local * vec4(world_7, 1f)).xyz; let e_7 = p_6.extents.xyz; let _e24 = probe_exit(o_8.x, d_15.x, e_7.x); let _e28 = probe_exit(o_8.y, d_15.y, e_7.y); let _e32 = probe_exit(o_8.z, d_15.z, e_7.z); let t_8 = max(min(_e24, min(_e28, _e32)), 0f); return ((o_8 + (d_15 * t_8)) - p_6.offset.xyz); } fn probe_reflection(world_8: vec3, r_2: vec3, roughness_2: f32, probes: u32) -> vec4 { var acc: vec3 = vec3(0f); var w_sum: f32 = 0f; var i_8: u32 = 0u; let _e12 = Probe.counts.x; let count_1 = min(_e12, MAX_PROBES); let _e18 = Probe.counts.y; let lod_1 = (roughness_2 * f32((max(_e18, 1u) - 1u))); loop { let _e27 = i_8; if (_e27 < count_1) { } else { break; } { let _e31 = i_8; let p_10 = Probe.probes[_e31]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } let _e41 = probe_weight(p_10, world_8); if (_e41 <= 0f) { continue; } let _e44 = acc; let _e47 = probe_lookup(p_10, world_8, r_2); let _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); let _e54 = w_sum; w_sum = (_e54 + _e41); } continuing { let _e57 = i_8; i_8 = (_e57 + 1u); } } let _e59 = w_sum; if (_e59 > 1f) { let _e62 = acc; let _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1f; } let _e67 = acc; let _e68 = w_sum; return vec4(_e67, _e68); } fn probe_ambient(world_9: vec3, n_7: vec3, probes_1: u32) -> vec4 { var acc_1: vec3 = vec3(0f); var w_sum_1: f32 = 0f; var i_9: u32 = 0u; var local_19: bool; var c_18: vec3; let _e11 = Probe.counts.x; let count_2 = min(_e11, MAX_PROBES); let _e17 = Probe.counts.y; let last = (max(_e17, 1u) - 1u); loop { let _e24 = i_9; if (_e24 < count_2) { } else { break; } { let _e28 = i_9; let p_11 = Probe.probes[_e28]; if !((((probes_1 >> p_11.info.w) & 1u) == 0u)) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } let _e46 = local_19; if _e46 { continue; } let _e47 = probe_weight(p_11, world_9); if (_e47 <= 0f) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { let _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0f)).xyz); let _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } let _e66 = acc_1; let _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); let _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } continuing { let _e73 = i_9; i_9 = (_e73 + 1u); } } let _e75 = w_sum_1; if (_e75 > 1f) { let _e78 = acc_1; let _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1f; } let _e83 = acc_1; let _e84 = w_sum_1; return vec4(_e83, _e84); } fn skin_row(k_10: u32, r_3: u32) -> vec4 { let _e10 = Skin.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } fn skin_rows(s_1: SkinIn) -> SkinRows { var m_1: SkinRows; let j_1 = s_1.joints; let w_5 = s_1.weights; let _e8 = skin_row(j_1.x, 0u); let _e13 = skin_row(j_1.y, 0u); let _e19 = skin_row(j_1.z, 0u); let _e25 = skin_row(j_1.w, 0u); m_1.r0_ = ((((w_5.x * _e8) + (w_5.y * _e13)) + (w_5.z * _e19)) + (w_5.w * _e25)); let _e32 = skin_row(j_1.x, 1u); let _e37 = skin_row(j_1.y, 1u); let _e43 = skin_row(j_1.z, 1u); let _e49 = skin_row(j_1.w, 1u); m_1.r1_ = ((((w_5.x * _e32) + (w_5.y * _e37)) + (w_5.z * _e43)) + (w_5.w * _e49)); let _e56 = skin_row(j_1.x, 2u); let _e61 = skin_row(j_1.y, 2u); let _e67 = skin_row(j_1.z, 2u); let _e73 = skin_row(j_1.w, 2u); m_1.r2_ = ((((w_5.x * _e56) + (w_5.y * _e61)) + (w_5.z * _e67)) + (w_5.w * _e73)); let _e76 = m_1; return _e76; } fn hedra_store_varyings(o_4: ptr) { let _e3 = env_uv; (*o_4).hedra_v0_ = vec4(_e3); let _e7 = base_uv; (*o_4).hedra_v1_ = vec4(_e7, 0f); return; } fn hedra_load_varyings(i_10: CustomOut) { env_uv = i_10.hedra_v0_; base_uv = i_10.hedra_v1_.xyz; return; } fn light() { return; } fn vertex() { var view_pos: vec4; var local_20: bool; let _e1 = MODELVIEW_MATRIX; let _e3 = VERTEX; view_pos = (_e1 * vec4(_e3, 1f)); let _e10 = G.proj; let _e11 = view_pos; let clip_2 = (_e10 * _e11); let _e16 = hedra_p.snap_resolution.x; if (_e16 > 0f) { local_20 = (clip_2.w > 0.0001f); } else { local_20 = false; } let _e25 = local_20; if _e25 { let _e28 = hedra_p.snap_resolution; let half_res = (_e28 * 0.5f); let snapped = (round(((clip_2.xy / vec2(clip_2.w)) * half_res)) / half_res); let _e39 = INV_PROJECTION_MATRIX; let back_2 = (_e39 * vec4((snapped * clip_2.w), clip_2.z, clip_2.w)); view_pos = vec4((back_2.xyz / vec3(back_2.w)), 1f); } let _e53 = view_pos; VERTEX = _e53.xyz; let _e57 = MODELVIEW_NORMAL_MATRIX; let _e59 = NORMAL; NORMAL = normalize((_e57 * _e59)); let _e64 = G.proj; let _e65 = view_pos; let w_6 = max((_e64 * _e65).w, 0.0001f); let _e71 = NORMAL; let m_5 = ((_e71.xy * vec2(0.5f, -0.5f)) + vec2(0.5f)); env_uv = vec4((m_5 * w_6), w_6, 0f); let _e86 = UV; base_uv = vec3((_e86 * w_6), w_6); return; } fn fragment() { let _e3 = env_uv; let _e7 = env_uv.z; let _e10 = textureSample(matcap, SAMPLER_NEAREST_CLAMP, (_e3.xy / vec2(_e7))); let _e14 = hedra_p.tint; let env = (_e10.xyz * _e14); let _e19 = base_uv; let _e23 = base_uv.z; let _e26 = textureSample(albedo_texture, SAMPLER_NEAREST_REPEAT, (_e19.xy / vec2(_e23))); let base = _e26.xyz; let _e31 = hedra_p.reflectivity; ALBEDO = mix(base, env, _e31); return; } fn hedra_mat3_(m_2: mat4x4) -> mat3x3 { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } fn hedra_rigid_inverse(m_3: mat4x4) -> mat4x4 { let _e1 = hedra_mat3_(m_3); let r_8 = transpose(_e1); let t_9 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0f), vec4(r_8[1], 0f), vec4(r_8[2], 0f), vec4(t_9, 1f)); } fn hedra_inv_projection() -> mat4x4 { let _e2 = G.wire_color; let _e5 = G.select_color; let _e8 = G.active_color; let _e11 = G.grid; return mat4x4(_e2, _e5, _e8, _e11); } fn hedra_godot_uv(uv_1: vec2) -> vec2 { return vec2(uv_1.x, (1f - uv_1.y)); } fn hedra_transparent() -> bool { var local_21: bool; var local_22: bool; if HEDRA_ALPHA { local_21 = true; } else { local_21 = false; } let _e5 = local_21; if !(_e5) { local_22 = false; } else { local_22 = true; } let _e11 = local_22; return _e11; } fn hedra_mirrored(flags_1: u32) -> bool { let _e4 = O.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } fn hedra_matrices(model: mat4x4, normal: mat3x3) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; let _e7 = G.view; let _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; let _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; let _e14 = G.view; MODELVIEW_MATRIX = (_e14 * model); let _e19 = G.view; let _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; let _e28 = G.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1f)).xyz; let _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } fn hedra_begin_vertex(pos: vec3, normal_1: vec3, tangent: vec4, uv_2: vec2, uv2_: vec2, color: vec4, vid_3: u32) { var local_23: bool; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); let _e17 = hedra_godot_uv(uv_2); UV = _e17; let _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = i32(vid_3); POSITION = vec4(1f); if HEDRA_WORLD_VERTEX_COORDS { local_23 = false; } else { local_23 = false; } let _e31 = local_23; if _e31 { let _e34 = MODEL_MATRIX; let _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1f)).xyz; let _e43 = MODEL_NORMAL_MATRIX; let _e45 = NORMAL; NORMAL = (_e43 * _e45); let _e49 = MODEL_NORMAL_MATRIX; let _e51 = TANGENT; TANGENT = (_e49 * _e51); let _e55 = MODEL_NORMAL_MATRIX; let _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } fn hedra_end_vertex(world_10: vec4, n_8: vec3, t: vec3, tw: f32, flags_2: u32) -> CustomOut { var out_2: CustomOut; let _e9 = G.view_proj; out_2.clip = (_e9 * world_10); if HEDRA_USES_POSITION { let _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); let _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); let _e28 = COLOR; out_2.color = _e28; let _e31 = UV2_; out_2.uv2_ = _e31; let _e34 = INSTANCE_ID; out_2.instance_id = u32(max(_e34, 0i)); hedra_store_varyings((&out_2)); let _e38 = out_2; return _e38; } fn hedra_vertex_space() -> bool { var local_24: bool; if false { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } let _e5 = local_24; return _e5; } fn hedra_vertex_world() -> vec4 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e2 = INV_VIEW_MATRIX; let _e4 = VERTEX; return (_e2 * vec4(_e4, 1f)); } let _e9 = VERTEX; return vec4(_e9, 1f); } fn hedra_vertex_dir(d_11: vec3) -> vec3 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e3 = INV_VIEW_MATRIX; let _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } fn hedra_tangent_sign(w: f32, flip: bool) -> f32 { let _e5 = O.extra.x; return (w * select(1f, -1f, (((_e5 & OBJ_MIRRORED) != 0u) != flip))); } fn hedra_fragment(in_7: CustomOut, facing_4: bool) { var t_1: vec3; var nm: vec3; let _e3 = hedra_mirrored(in_7.flags); let front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; let _e14 = G.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); let _e19 = O.model; let _e22 = O.normal; let _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); let _e26 = G.view; let _e27 = hedra_mat3_(_e26); let n_geo_2 = select(-(normalize(in_7.normal)), normalize(in_7.normal), front); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; let _e41 = t_1; let _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); let _e47 = t_1; let b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); let _e55 = G.view; VERTEX = (_e55 * vec4(in_7.world, 1f)).xyz; let _e63 = VERTEX; LIGHT_VERTEX = _e63; let vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); let normal0_ = NORMAL; let _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); let _e80 = VERTEX; let _e90 = G.camera_pos.w; VIEW = select(normalize(-(_e80)), vec3(0f, 0f, 1f), (_e90 > 0.5f)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5f); NORMAL_MAP_DEPTH = 1f; ALBEDO = vec3(1f); ALPHA = 1f; ALPHA_SCISSOR_THRESHOLD = 1f; PREMUL_ALPHA_FACTOR = 1f; METALLIC = 0f; SPECULAR = 0.5f; ROUGHNESS = 1f; RIM = 0f; RIM_TINT = 0f; BACKLIGHT = vec3(0f); AO = 1f; AO_LIGHT_AFFECT = 0f; EMISSION = vec3(0f); hedra_load_varyings(in_7); fragment(); let back_3 = transpose(_e27); let _e136 = NORMAL; if any((_e136 != normal0_)) { let _e141 = NORMAL; hedra_n = normalize((back_3 * _e141)); } let _e145 = NORMAL_MAP; if any((_e145 != vec3(0.5f))) { let _e151 = NORMAL_MAP; nm = _e151; let _e153 = nm; nm = vec3(((_e153.xy * 2f) - vec2(1f)), 0f); let _e163 = nm; let _e165 = nm; nm.z = sqrt(max(0f, (1f - dot(_e163.xy, _e165.xy)))); let _e175 = NORMAL; let _e177 = TANGENT; let _e179 = nm.x; let _e182 = BINORMAL; let _e184 = nm.y; let _e188 = NORMAL; let _e190 = nm.z; let _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); let _e199 = NORMAL; hedra_n = normalize((back_3 * _e199)); } let _e203 = LIGHT_VERTEX; if any((_e203 != vertex0_)) { let _e208 = INV_VIEW_MATRIX; let _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1f)).xyz; return; } else { return; } } fn hedra_culled(flags_3: u32) -> bool { var local_25: bool; var local_26: bool; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if false { let _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } let _e12 = local_25; if _e12 { return true; } if HEDRA_ALPHA_SCISSOR { let _e18 = ALPHA; let _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = (_e18 < _e20); } else { local_26 = false; } let _e23 = local_26; return _e23; } fn hedra_view_dir(world_11: vec3) -> vec3 { let _e5 = G.view[0][2]; let _e10 = G.view[1][2]; let _e15 = G.view[2][2]; let view_dir = vec3(_e5, _e10, _e15); let _e19 = G.camera_pos; let _e27 = G.camera_pos.w; return select(normalize((_e19.xyz - world_11)), normalize(view_dir), (_e27 > 0.5f)); } fn hedra_schlick(u: f32) -> f32 { let m_6 = clamp((1f - u), 0f, 1f); let m2_ = (m_6 * m_6); return ((m2_ * m2_) * m_6); } fn hedra_diffuse_brdf(nl_1: f32, nv_2: f32, lh: f32, r_4: f32) -> f32 { let c_nl = max(nl_1, 0f); if false { return (max(0f, ((nl_1 + r_4) / ((1f + r_4) * (1f + r_4)))) * 0.31830987f); } if false { return (smoothstep(-(r_4), max(r_4, 0.01f), nl_1) * 0.31830987f); } if false { let fd90_ = ((((2f * lh) * lh) * r_4) - 0.5f); let _e32 = hedra_schlick(nv_2); let fdv = (1f + (fd90_ * _e32)); let _e36 = hedra_schlick(c_nl); let fdl = (1f + (fd90_ * _e36)); return (((0.31830987f * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987f); } fn hedra_light_modes(n_9: vec3, v_3: vec3, l_3: vec3, radiance_2: vec3, diffuse_1: vec3, f0_2: vec3, a2_3: f32, r_5: f32, specular_1: f32) -> vec3 { var c_19: vec3; var mid: f32; var local_27: bool; let nl_3 = min(dot(n_9, l_3), 1f); let nv_4 = max(dot(n_9, v_3), 0.0001f); let h_3 = normalize((l_3 + v_3)); let lh_1 = clamp(dot(l_3, h_3), 0f, 1f); let _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if (r_5 > 0f) { if false { let refl = normalize(-(reflect(l_3, n_9))); let rv = dot(refl, v_3); mid = (1f - r_5); let _e35 = mid; let _e36 = mid; mid = (_e35 * _e36); let _e38 = c_19; let _e40 = mid; let _e44 = mid; let _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5f)), (_e44 + (r_5 * 0.5f)), rv) * _e49) * specular_1))); } else { if false { local_27 = (nl_3 > 0f); } else { local_27 = false; } let _e60 = local_27; if _e60 { let nh_2 = max(dot(n_9, h_3), 0f); let vh_2 = max(dot(v_3, h_3), 0f); let _e67 = f_schlick(f0_2, vh_2); let _e68 = c_19; let _e69 = d_ggx(nh_2, a2_3); let _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } let _e77 = c_19; return _e77; } fn hedra_light_dir(i_11: u32, world_12: vec3) -> vec4 { var atten_1: f32; let li_1 = Lit.lights[i_11]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return vec4(-(li_1.direction.xyz), 1f); } let rel_1 = (li_1.position.xyz - world_12); let d_16 = length(rel_1); let l_7 = (rel_1 / vec3(max(d_16, 0.000001f))); let _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { let cone = li_1.spot.x; let scos = max(dot(-(l_7), li_1.direction.xyz), cone); let rim_1 = max(0.0001f, ((1f - scos) / max((1f - cone), 0.000001f))); let _e49 = atten_1; atten_1 = (_e49 * (1f - pow(rim_1, li_1.spot.y))); } let _e56 = atten_1; return vec4(l_7, _e56); } fn hedra_shadow(i_12: u32, l_4: vec3) -> f32 { var local_28: bool; if false { let _e10 = Lit.lights[i_12].info.y; local_28 = (_e10 != LIGHT_SHADOWED); } else { local_28 = true; } let _e14 = local_28; if _e14 { return 1f; } let _e17 = hedra_world; let _e19 = hedra_n_geo; let _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } fn hedra_ambient(n_10: vec3, v_4: vec3, diffuse_2: vec3, f0_3: vec3, roughness_3: f32, metallic: f32) -> vec3 { var ambient: vec3; var diffuse_amb: vec3; var spec_amb: vec3; var dif: vec3; var dif_1: vec3; var dif_2: vec3; let world_13 = hedra_world; let nv_5 = max(dot(n_10, v_4), 0.0001f); let f_amb = (f0_3 + ((max(vec3((1f - roughness_3)), f0_3) - f0_3) * pow((1f - nv_5), 5f))); let _e25 = gi_diffuse(n_10, false, vec3(0f)); let _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { let _e38 = Sky.ibl.x; let _e42 = Sky.sun.w; let scale = (_e38 * _e42); let _e46 = Sky.ambient; diffuse_amb = _e46.xyz; let _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { let _e59 = Sky.ambient; let _e61 = sky_dir(n_10); let _e62 = sh_irradiance(_e61); let _e67 = Sky.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if (_e25.w > 0f) { diffuse_amb = _e25.xyz; } let _e75 = Sky.ambient; spec_amb = _e75.xyz; let _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { let _e88 = sky_dir(reflect(-(v_4), n_10)); let _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { let _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = vec3(0f); } } let _e101 = env_brdf_approx(roughness_3, nv_5); let _e105 = Probe.counts.x; if (_e105 > 0u) { let _e113 = O.extra.z; let _e114 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e113); let _e115 = spec_amb; let spec_1 = ((_e115 * (1f - _e114.w)) + _e114.xyz); let _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0f) { let _e130 = O.extra.z; let _e131 = probe_ambient(world_13, n_10, _e130); let _e132 = diffuse_amb; dif = ((_e132 * (1f - _e131.w)) + _e131.xyz); } let _e139 = dif; ambient = ((diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } else { let _e154 = diffuse_amb; let _e156 = spec_amb; ambient = ((diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } } else { let _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { let _e180 = Lit.up; let up = _e180.xyz; let _e184 = Lit.sky_top; let _e188 = Lit.sky_horizon; let sky_avg = ((_e184.xyz + _e188.xyz) * 0.5f); let _e195 = Lit.ground_horizon; let _e199 = Lit.ground_bottom; let ground_avg = ((_e195.xyz + _e199.xyz) * 0.5f); let irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up) * 0.5f) + 0.5f), 0f, 1f)); let _e215 = sky(reflect(-(v_4), n_10)); let blurred = mix(_e215, sky_avg, roughness_3); let _e220 = Probe.counts.x; if (_e220 > 0u) { let _e228 = O.extra.z; let _e229 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e228); let _e233 = Lit.ambient.w; let spec_2 = (((blurred * _e233) * (1f - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if (_e25.w <= 0f) { let _e249 = O.extra.z; let _e250 = probe_ambient(world_13, n_10, _e249); let _e254 = Lit.ambient.w; dif_1 = (((irradiance * _e254) * (1f - _e250.w)) + _e250.xyz); } let _e262 = dif_1; ambient = ((diffuse_2 * _e262) + (spec_2 * f_amb)); } else { if (_e25.w > 0f) { let _e275 = Lit.ambient.w; ambient = ((diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { let _e284 = Lit.ambient.w; ambient = (((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284); } } } else { let _e289 = Probe.counts.x; if (_e289 > 0u) { let _e297 = O.extra.z; let _e298 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e297); let _e301 = Lit.ambient; let spec_3 = ((_e301.xyz * (1f - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if (_e25.w <= 0f) { let _e317 = O.extra.z; let _e318 = probe_ambient(world_13, n_10, _e317); let _e321 = Lit.ambient; dif_2 = ((_e321.xyz * (1f - _e318.w)) + _e318.xyz); } let _e329 = dif_2; ambient = ((diffuse_2 * _e329) + (spec_3 * f_amb)); } else { if (_e25.w > 0f) { let _e340 = Lit.ambient; ambient = ((diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb)); } else { let _e346 = Lit.ambient; ambient = (_e346.xyz * (diffuse_2 + f_amb)); } } } } let _e350 = ambient; return _e350; } fn hedra_fog(c_in_1: vec3, v_5: vec3) -> vec3 { var c_20: vec3; c_20 = c_in_1; if HEDRA_FOG_DISABLED { let _e4 = c_20; return _e4; } let _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { let _e13 = c_20; let _e15 = hedra_world; let _e17 = surface_fog(_e13, _e15, -(v_5)); c_20 = _e17; } let _e21 = O.decals.w; if (_e21 != 0u) { let _e24 = c_20; let _e26 = hedra_world; let _e30 = O.decals.w; let _e31 = fog_volumes(_e24, _e26, _e30); c_20 = _e31; } let _e32 = c_20; return _e32; } fn hedra_lit(clip: vec4) -> vec3 { var surf_1: DecalSurface; var c_21: vec3 = vec3(0f); var k_11: u32 = 0u; var local_29: bool; var radiance_3: vec3; var local_30: bool; var local_31: bool; var ambient_1: vec3 = vec3(0f); var local_32: bool; let n_geo_3 = hedra_n_geo; let _e4 = ALBEDO; let _e6 = METALLIC; let _e11 = ROUGHNESS; let _e16 = AO; let _e18 = hedra_n; let _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0f, 1f), clamp(_e11, 0.045f, 1f), _e16, _e18, _e20); let _e26 = O.decals.z; if (_e26 > 0u) { let _e30 = hedra_world; let _e31 = surf_1; let _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; let _e35 = surf_1.base; ALBEDO = _e35; let _e38 = surf_1.metallic; METALLIC = _e38; let _e41 = surf_1.roughness; ROUGHNESS = _e41; let _e45 = G.view; let _e46 = hedra_mat3_(_e45); let _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } let metallic_1 = surf_1.metallic; let roughness_4 = surf_1.roughness; let a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); let base_1 = surf_1.base; let diffuse_3 = (base_1 * (1f - metallic_1)); let _e64 = SPECULAR; let _e68 = SPECULAR; let f0_4 = mix(vec3(((0.16f * _e64) * _e68)), base_1, metallic_1); let n_13 = surf_1.normal; let _e75 = hedra_world; let _e76 = hedra_view_dir(_e75); let _e79 = G.view; let _e80 = hedra_mat3_(_e79); let _e82 = surf_1.occlusion; let _e84 = AO_LIGHT_AFFECT; let ao_direct = mix(1f, _e82, _e84); DIFFUSE_LIGHT = vec3(0f); SPECULAR_LIGHT = vec3(0f); let _e96 = object_light_count(); loop { let _e99 = k_11; if (_e99 < _e96) { } else { break; } { let _e101 = k_11; let _e102 = object_light(_e101); let li_2 = Lit.lights[_e102]; let _e108 = hedra_world; let _e109 = hedra_light_dir(_e102, _e108); let l_8 = _e109.xyz; let atten_2 = _e109.w; if HEDRA_HAS_LIGHT { if !((li_2.info.x == LIGHT_DIRECTIONAL)) { local_29 = (atten_2 > 0f); } else { local_29 = true; } let _e123 = local_29; if _e123 { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; let _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } let _e142 = RIM; if (_e142 > 0f) { let rim_light = pow(max(0.0001f, (1f - max(dot(n_13, _e76), 0.0001f))), max(0f, ((1f - roughness_4) * 16f))); let _e159 = c_21; let _e164 = RIM; let _e170 = RIM_TINT; c_21 = (_e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1f), base_1, _e170))); } if (atten_2 > 0f) { radiance_3 = (li_2.color.xyz * atten_2); if (li_2.info.y == LIGHT_SHADOWED) { local_30 = false; } else { local_30 = false; } let _e188 = local_30; if _e188 { let _e192 = hedra_world; let _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if true { local_31 = false; } else { local_31 = false; } let _e201 = local_31; if _e201 { let _e202 = c_21; let _e203 = radiance_3; let _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_21 = (_e202 + _e206); } else { let _e208 = c_21; let _e209 = radiance_3; let _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = (_e208 + _e212); } let _e215 = BACKLIGHT; if any((_e215 > vec3(0f))) { let nl_4 = max(min(dot(n_13, l_8), 1f), 0f); let _e225 = c_21; let _e226 = radiance_3; let _e229 = BACKLIGHT; c_21 = (_e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987f - (nl_4 * 0.31830987f)))); } } } continuing { let _e238 = k_11; k_11 = (_e238 + 1u); } } if HEDRA_HAS_LIGHT { let _e242 = DIFFUSE_LIGHT; let _e249 = SPECULAR_LIGHT; c_21 = ((((_e242 * base_1) * ao_direct) * (1f - metallic_1)) + (_e249 * ao_direct)); } else { let _e253 = AO_LIGHT_AFFECT; if (_e253 > 0f) { let _e256 = c_21; c_21 = (_e256 * ao_direct); } } if true { let _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } let _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { let _e273 = hedra_transparent(); local_32 = !(_e273); } else { local_32 = false; } let _e276 = local_32; if _e276 { let _e282 = textureLoad(t_ao, vec2(floor(clip.xy)), 0i); let ssao = _e282.x; let _e284 = c_21; let _e286 = surf_1.occlusion; let _e291 = Lit.tone.z; let _e295 = Lit.tone.w; c_21 = (_e284 * mix(1f, min(ssao, _e286), (_e291 * _e295))); let _e300 = c_21; let _e301 = ambient_1; let _e303 = surf_1.occlusion; c_21 = (_e300 + (_e301 * min(_e303, ssao))); } else { let _e307 = c_21; let _e308 = ambient_1; let _e310 = surf_1.occlusion; c_21 = (_e307 + (_e308 * _e310)); } let _e313 = c_21; let _e315 = surf_1.emission; c_21 = (_e313 + _e315); let _e317 = c_21; let _e318 = hedra_fog(_e317, _e76); let _e319 = tonemap(_e318); return _e319; } fn hedra_output(c_22: vec3) -> vec4 { var rgb: vec3; rgb = c_22; if false { let _e3 = rgb; let _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } let _e7 = rgb; let _e9 = ALPHA; let _e10 = hedra_transparent(); let o_9 = vec4(_e7, select(1f, _e9, _e10)); let _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return vec4(max(o_9.xyz, vec3(0f)), clamp(o_9.w, 0f, 1f)); } let k_17 = clamp(o_9, vec4(0f), vec4(1f)); let _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { let _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } fn hedra_bindings() -> vec3 { let uv_7 = vec2(0.5f); let _e5 = textureSampleLevel(t_panorama, s_panorama, uv_7, 0f); let _e11 = textureSampleLevel(t_lightmap, s_lightmap, uv_7, 0i, 0f); let _e17 = textureSampleLevel(t_screen, s_radiance, uv_7, 0f); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } @vertex fn vs_custom(in: VsIn, @location(10) uv1_: vec2, @builtin(vertex_index) vid: u32) -> CustomOut { let _e5 = O.model; let _e8 = O.normal; let _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, vec4(1f), vid); vertex(); let _e24 = hedra_tangent_sign(in.tangent.w, false); let _e25 = hedra_vertex_space(); if _e25 { let _e26 = hedra_vertex_world(); let _e28 = NORMAL; let _e29 = hedra_vertex_dir(_e28); let _e31 = TANGENT; let _e32 = hedra_vertex_dir(_e31); let _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags); return _e34; } let _e37 = O.model; let _e39 = VERTEX; let world_14 = (_e37 * vec4(_e39, 1f)); let _e45 = O.normal; let _e47 = NORMAL; let n_14 = (_e45 * vec4(_e47, 0f)).xyz; let _e54 = O.model; let _e56 = TANGENT; let t_10 = (_e54 * vec4(_e56, 0f)).xyz; let _e62 = hedra_end_vertex(world_14, n_14, t_10, _e24, in.flags); return _e62; } @vertex fn vs_custom_instanced(in_1: VsIn, inst: InstIn, @location(10) uv1_1: vec2, extra: HedraInstExtra, @builtin(vertex_index) vid_1: u32) -> CustomOut { let bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); let by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); let bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); let det = dot(bx, cross(by, bz)); let flip_1 = (det < 0f); let cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * select(1f, -1f, flip_1)); let basis = mat4x4(vec4(bx, 0f), vec4(by, 0f), vec4(bz, 0f), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1f)); let _e55 = O.model; let _e59 = O.normal; let _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); let flags_4 = (in_1.flags | select(0u, F_INSTANCE_MIRRORED, flip_1)); let _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); let _e80 = hedra_vertex_space(); if _e80 { let _e81 = hedra_vertex_world(); let _e83 = NORMAL; let _e84 = hedra_vertex_dir(_e83); let _e86 = TANGENT; let _e87 = hedra_vertex_dir(_e86); let _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); return _e88; } let _e90 = VERTEX; let p1_ = vec4(_e90, 1f); let local_33 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); let _e102 = O.model; let world_15 = (_e102 * vec4(local_33, 1f)); let _e108 = O.normal; let _e110 = NORMAL; let n_15 = (_e108 * vec4((cofactor * _e110), 0f)).xyz; let _e118 = O.model; let _e121 = TANGENT; let t_11 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0f)).xyz; let _e127 = hedra_end_vertex(world_15, n_15, t_11, _e79, flags_4); return _e127; } @vertex fn vs_custom_skinned(in_2: VsIn, s: SkinIn, @location(10) uv1_2: vec2, @builtin(vertex_index) vid_2: u32) -> CustomOut { let _e4 = skin_rows(s); let p_12 = vec4(in_2.pos, 1f); let skinned = vec3(dot(_e4.r0_, p_12), dot(_e4.r1_, p_12), dot(_e4.r2_, p_12)); let bx_1 = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); let by_1 = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); let bz_1 = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); let det_1 = dot(bx_1, cross(by_1, bz_1)); let flip_2 = (det_1 < 0f); let cofactor_1 = mat3x3(cross(by_1, bz_1), cross(bz_1, bx_1), cross(bx_1, by_1)); let n0_ = normalize(((cofactor_1 * in_2.normal) * select(1f, -1f, flip_2))); let t0_1 = normalize((mat3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz)); let _e58 = O.model; let _e61 = O.normal; let _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1f), vid_2); vertex(); let flags_5 = (in_2.flags | select(0u, F_INSTANCE_MIRRORED, flip_2)); let _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2); let _e82 = hedra_vertex_space(); if _e82 { let _e83 = hedra_vertex_world(); let _e85 = NORMAL; let _e86 = hedra_vertex_dir(_e85); let _e88 = TANGENT; let _e89 = hedra_vertex_dir(_e88); let _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5); return _e90; } let _e93 = O.model; let _e95 = VERTEX; let world_16 = (_e93 * vec4(_e95, 1f)); let _e101 = O.normal; let _e103 = NORMAL; let n_16 = (_e101 * vec4(_e103, 0f)).xyz; let _e110 = O.model; let _e112 = TANGENT; let t_12 = (_e110 * vec4(_e112, 0f)).xyz; let _e117 = hedra_end_vertex(world_16, n_16, t_12, _e81, flags_5); return _e117; } @fragment fn fs_custom(in_3: CustomOut, @builtin(front_facing) facing: bool) -> @location(0) vec4 { var c: vec3; hedra_fragment(in_3, facing); let _e3 = hedra_culled(in_3.flags); if _e3 { discard; } let _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if (_e7 <= 0f) { discard; } if HEDRA_UNSHADED { let _e13 = ALBEDO; let _e15 = hedra_world; let _e16 = hedra_view_dir(_e15); let _e17 = hedra_fog(_e13, _e16); let _e18 = tonemap(_e17); c = _e18; } else { let _e20 = hedra_lit(in_3.clip); c = _e20; } let _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { let _e27 = c; let _e28 = hedra_bindings(); c = (_e27 + _e28); } let _e33 = G.params.x; if (_e33 == SHADE_LIT) { let _e36 = c; let _e37 = item_fade(_e36); let _e38 = emerge_tint(_e37, _e7); c = _e38; } let _e39 = c; let _e40 = hedra_output(_e39); return _e40; } @fragment fn fs_custom_depth(in_4: CustomOut, @builtin(front_facing) facing_1: bool) { var local: bool; var local_1: bool; hedra_fragment(in_4, facing_1); if !(((in_4.flags & F_HIDDEN) != 0u)) { if HEDRA_ALPHA_SCISSOR { let _e14 = ALPHA; let _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } let _e19 = local_1; local = _e19; } else { local = true; } let _e21 = local; if _e21 { discard; } let _e25 = emerge_reveal(in_4.world, vec2(-1f)); if (_e25 <= 0f) { discard; } else { return; } } @fragment fn fs_custom_id(in_5: CustomOut, @builtin(front_facing) facing_2: bool) -> IdOut { var local_2: bool; var out: IdOut; hedra_fragment(in_5, facing_2); let _e3 = hedra_culled(in_5.flags); if !(_e3) { let _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0f); } else { local_2 = true; } let _e14 = local_2; if _e14 { discard; } let id = O.params.z; let _e24 = O.params.x; let _e33 = O.params.y; let bits = (select(0u, 1u, (_e24 == 1u)) | select(0u, 2u, (_e33 == 1u))); out.id = (vec4(f32((id & 255u)), f32(((id >> 8u) & 255u)), f32(((id >> 16u) & 255u)), f32(bits)) / vec4(255f)); let _e58 = out; return _e58; } @fragment fn fs_custom_normal_depth(in_6: CustomOut, @builtin(front_facing) facing_3: bool) -> HedraNormalDepthOut { var local_3: bool; var out_1: HedraNormalDepthOut; hedra_fragment(in_6, facing_3); let _e3 = hedra_culled(in_6.flags); if !(_e3) { let _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0f); } else { local_3 = true; } let _e14 = local_3; if _e14 { discard; } let _e17 = G.view; let _e18 = hedra_mat3_(_e17); let _e20 = hedra_n; let n_view = normalize((_e18 * _e20)); let _e24 = METALLIC; let metallic_2 = clamp(_e24, 0f, 1f); let _e29 = SPECULAR; let _e33 = SPECULAR; let _e37 = ALBEDO; let f0_5 = mix(vec3(((0.16f * _e29) * _e33)), _e37, metallic_2); let _e43 = G.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1f)).z)); let _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_5, vec3(0f), vec3(1f)), clamp(_e58, 0.045f, 1f)); let _e63 = out_1; return _e63; }  @Ð Ð/ ,@  ˜J£&ѰA¬ËÎ-”ÒÑ'RSuQÇuS_7hh'· vs_custommain݆#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 tint; float reflectivity; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_2Vertex { HedraParams _group_2_binding_0_vs; }; vec4 env_uv = vec4(0.0); vec3 base_uv = vec3(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = env_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = base_uv; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { env_uv = i_10.hedra_v0_; base_uv = i_10.hedra_v1_.xyz; return; } void light() { return; } void vertex() { vec4 view_pos = vec4(0.0); bool local_20 = false; mat4x4 _e1 = MODELVIEW_MATRIX; vec3 _e3 = VERTEX; view_pos = (_e1 * vec4(_e3, 1.0)); mat4x4 _e10 = _group_0_binding_0_vs.proj; vec4 _e11 = view_pos; vec4 clip_1 = (_e10 * _e11); float _e16 = _group_2_binding_0_vs.snap_resolution.x; if ((_e16 > 0.0)) { local_20 = (clip_1.w > 0.0001); } else { local_20 = false; } bool _e25 = local_20; if (_e25) { vec2 _e28 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e28 * 0.5); vec2 snapped = (roundEven(((clip_1.xy / vec2(clip_1.w)) * half_res)) / half_res); mat4x4 _e39 = INV_PROJECTION_MATRIX; vec4 back = (_e39 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); view_pos = vec4((back.xyz / vec3(back.w)), 1.0); } vec4 _e53 = view_pos; VERTEX = _e53.xyz; mat3x3 _e57 = MODELVIEW_NORMAL_MATRIX; vec3 _e59 = NORMAL; NORMAL = normalize((_e57 * _e59)); mat4x4 _e64 = _group_0_binding_0_vs.proj; vec4 _e65 = view_pos; float w_3 = max((_e64 * _e65).w, 0.0001); vec3 _e71 = NORMAL; vec2 m_4 = ((_e71.xy * vec2(0.5, -0.5)) + vec2(0.5)); env_uv = vec4((m_4 * w_3), w_3, 0.0); vec2 _e86 = UV; base_uv = vec3((_e86 * w_3), w_3); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_23 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_23 = false; } else { local_23 = false; } bool _e31 = local_23; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_5 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); vec2 uv1_ = _p2vs_location10; uint vid = uint(gl_VertexID); mat4x4 _e5 = _group_1_binding_0_vs.model; mat4x4 _e8 = _group_1_binding_0_vs.normal; mat3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(in_.pos, in_.normal, in_.tangent, in_.uv, uv1_, vec4(1.0), vid); vertex(); float _e24 = hedra_tangent_sign(in_.tangent.w, false); bool _e25 = hedra_vertex_space(); if (_e25) { vec4 _e26 = hedra_vertex_world(); vec3 _e28 = NORMAL; vec3 _e29 = hedra_vertex_dir(_e28); vec3 _e31 = TANGENT; vec3 _e32 = hedra_vertex_dir(_e31); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in_.flags); gl_Position = _e34.clip; _vs2fs_location0 = _e34.world; _vs2fs_location1 = _e34.normal; _vs2fs_location2 = _e34.uv; _vs2fs_location3 = _e34.flags; _vs2fs_location4 = _e34.tangent; _vs2fs_location5 = _e34.color; _vs2fs_location6 = _e34.uv2_; _vs2fs_location7 = _e34.instance_id; _vs2fs_location8 = _e34.hedra_v0_; _vs2fs_location9 = _e34.hedra_v1_; _vs2fs_location10 = _e34.hedra_v2_; _vs2fs_location11 = _e34.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e37 = _group_1_binding_0_vs.model; vec3 _e39 = VERTEX; vec4 world_13 = (_e37 * vec4(_e39, 1.0)); mat4x4 _e45 = _group_1_binding_0_vs.normal; vec3 _e47 = NORMAL; vec3 n_11 = (_e45 * vec4(_e47, 0.0)).xyz; mat4x4 _e54 = _group_1_binding_0_vs.model; vec3 _e56 = TANGENT; vec3 t_5 = (_e54 * vec4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_13, n_11, t_5, _e24, in_.flags); gl_Position = _e62.clip; _vs2fs_location0 = _e62.world; _vs2fs_location1 = _e62.normal; _vs2fs_location2 = _e62.uv; _vs2fs_location3 = _e62.flags; _vs2fs_location4 = _e62.tangent; _vs2fs_location5 = _e62.color; _vs2fs_location6 = _e62.uv2_; _vs2fs_location7 = _e62.instance_id; _vs2fs_location8 = _e62.hedra_v0_; _vs2fs_location9 = _e62.hedra_v1_; _vs2fs_location10 = _e62.hedra_v2_; _vs2fs_location11 = _e62.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_instancedmain¿‹#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 tint; float reflectivity; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_2Vertex { HedraParams _group_2_binding_0_vs; }; vec4 env_uv = vec4(0.0); vec3 base_uv = vec3(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec2 _p2vs_location10; layout(location = 14) in vec4 _p2vs_location14; layout(location = 15) in float _p2vs_location15; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = env_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = base_uv; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { env_uv = i_10.hedra_v0_; base_uv = i_10.hedra_v1_.xyz; return; } void light() { return; } void vertex() { vec4 view_pos = vec4(0.0); bool local_20 = false; mat4x4 _e1 = MODELVIEW_MATRIX; vec3 _e3 = VERTEX; view_pos = (_e1 * vec4(_e3, 1.0)); mat4x4 _e10 = _group_0_binding_0_vs.proj; vec4 _e11 = view_pos; vec4 clip_1 = (_e10 * _e11); float _e16 = _group_2_binding_0_vs.snap_resolution.x; if ((_e16 > 0.0)) { local_20 = (clip_1.w > 0.0001); } else { local_20 = false; } bool _e25 = local_20; if (_e25) { vec2 _e28 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e28 * 0.5); vec2 snapped = (roundEven(((clip_1.xy / vec2(clip_1.w)) * half_res)) / half_res); mat4x4 _e39 = INV_PROJECTION_MATRIX; vec4 back = (_e39 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); view_pos = vec4((back.xyz / vec3(back.w)), 1.0); } vec4 _e53 = view_pos; VERTEX = _e53.xyz; mat3x3 _e57 = MODELVIEW_NORMAL_MATRIX; vec3 _e59 = NORMAL; NORMAL = normalize((_e57 * _e59)); mat4x4 _e64 = _group_0_binding_0_vs.proj; vec4 _e65 = view_pos; float w_3 = max((_e64 * _e65).w, 0.0001); vec3 _e71 = NORMAL; vec2 m_4 = ((_e71.xy * vec2(0.5, -0.5)) + vec2(0.5)); env_uv = vec4((m_4 * w_3), w_3, 0.0); vec2 _e86 = UV; base_uv = vec3((_e86 * w_3), w_3); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_23 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_23 = false; } else { local_23 = false; } bool _e31 = local_23; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_5 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_1 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); InstIn inst = InstIn(_p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9); vec2 uv1_1 = _p2vs_location10; HedraInstExtra extra = HedraInstExtra(_p2vs_location14, _p2vs_location15); uint vid_1 = uint(gl_VertexID); vec3 bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); vec3 by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); vec3 bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * (flip_1 ? -1.0 : 1.0)); mat4x4 basis = mat4x4(vec4(bx, 0.0), vec4(by, 0.0), vec4(bz, 0.0), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); mat4x4 _e55 = _group_1_binding_0_vs.model; mat4x4 _e59 = _group_1_binding_0_vs.normal; mat3x3 _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = int(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); uint flags_4 = (in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); bool _e80 = hedra_vertex_space(); if (_e80) { vec4 _e81 = hedra_vertex_world(); vec3 _e83 = NORMAL; vec3 _e84 = hedra_vertex_dir(_e83); vec3 _e86 = TANGENT; vec3 _e87 = hedra_vertex_dir(_e86); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); gl_Position = _e88.clip; _vs2fs_location0 = _e88.world; _vs2fs_location1 = _e88.normal; _vs2fs_location2 = _e88.uv; _vs2fs_location3 = _e88.flags; _vs2fs_location4 = _e88.tangent; _vs2fs_location5 = _e88.color; _vs2fs_location6 = _e88.uv2_; _vs2fs_location7 = _e88.instance_id; _vs2fs_location8 = _e88.hedra_v0_; _vs2fs_location9 = _e88.hedra_v1_; _vs2fs_location10 = _e88.hedra_v2_; _vs2fs_location11 = _e88.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vec3 _e90 = VERTEX; vec4 p1_ = vec4(_e90, 1.0); vec3 local_33 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); mat4x4 _e102 = _group_1_binding_0_vs.model; vec4 world_13 = (_e102 * vec4(local_33, 1.0)); mat4x4 _e108 = _group_1_binding_0_vs.normal; vec3 _e110 = NORMAL; vec3 n_11 = (_e108 * vec4((cofactor * _e110), 0.0)).xyz; mat4x4 _e118 = _group_1_binding_0_vs.model; vec3 _e121 = TANGENT; vec3 t_5 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_13, n_11, t_5, _e79, flags_4); gl_Position = _e127.clip; _vs2fs_location0 = _e127.world; _vs2fs_location1 = _e127.normal; _vs2fs_location2 = _e127.uv; _vs2fs_location3 = _e127.flags; _vs2fs_location4 = _e127.tangent; _vs2fs_location5 = _e127.color; _vs2fs_location6 = _e127.uv2_; _vs2fs_location7 = _e127.instance_id; _vs2fs_location8 = _e127.hedra_v0_; _vs2fs_location9 = _e127.hedra_v1_; _vs2fs_location10 = _e127.hedra_v2_; _vs2fs_location11 = _e127.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_skinnedmain€Ž#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 tint; float reflectivity; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(std140) uniform SkinU_block_2Vertex { SkinU _group_1_binding_1_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_3Vertex { HedraParams _group_2_binding_0_vs; }; vec4 env_uv = vec4(0.0); vec3 base_uv = vec3(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 12) in uvec4 _p2vs_location12; layout(location = 13) in vec4 _p2vs_location13; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } vec4 skin_row(uint k_10, uint r_3) { vec4 _e10 = _group_1_binding_1_vs.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } SkinRows skin_rows(SkinIn s_1) { SkinRows m_1 = SkinRows(vec4(0.0), vec4(0.0), vec4(0.0)); uvec4 j = s_1.joints; vec4 w_3 = s_1.weights; vec4 _e8 = skin_row(j.x, 0u); vec4 _e13 = skin_row(j.y, 0u); vec4 _e19 = skin_row(j.z, 0u); vec4 _e25 = skin_row(j.w, 0u); m_1.r0_ = ((((w_3.x * _e8) + (w_3.y * _e13)) + (w_3.z * _e19)) + (w_3.w * _e25)); vec4 _e32 = skin_row(j.x, 1u); vec4 _e37 = skin_row(j.y, 1u); vec4 _e43 = skin_row(j.z, 1u); vec4 _e49 = skin_row(j.w, 1u); m_1.r1_ = ((((w_3.x * _e32) + (w_3.y * _e37)) + (w_3.z * _e43)) + (w_3.w * _e49)); vec4 _e56 = skin_row(j.x, 2u); vec4 _e61 = skin_row(j.y, 2u); vec4 _e67 = skin_row(j.z, 2u); vec4 _e73 = skin_row(j.w, 2u); m_1.r2_ = ((((w_3.x * _e56) + (w_3.y * _e61)) + (w_3.z * _e67)) + (w_3.w * _e73)); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = env_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = base_uv; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { env_uv = i_10.hedra_v0_; base_uv = i_10.hedra_v1_.xyz; return; } void light() { return; } void vertex() { vec4 view_pos = vec4(0.0); bool local_20 = false; mat4x4 _e1 = MODELVIEW_MATRIX; vec3 _e3 = VERTEX; view_pos = (_e1 * vec4(_e3, 1.0)); mat4x4 _e10 = _group_0_binding_0_vs.proj; vec4 _e11 = view_pos; vec4 clip_1 = (_e10 * _e11); float _e16 = _group_2_binding_0_vs.snap_resolution.x; if ((_e16 > 0.0)) { local_20 = (clip_1.w > 0.0001); } else { local_20 = false; } bool _e25 = local_20; if (_e25) { vec2 _e28 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e28 * 0.5); vec2 snapped = (roundEven(((clip_1.xy / vec2(clip_1.w)) * half_res)) / half_res); mat4x4 _e39 = INV_PROJECTION_MATRIX; vec4 back = (_e39 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); view_pos = vec4((back.xyz / vec3(back.w)), 1.0); } vec4 _e53 = view_pos; VERTEX = _e53.xyz; mat3x3 _e57 = MODELVIEW_NORMAL_MATRIX; vec3 _e59 = NORMAL; NORMAL = normalize((_e57 * _e59)); mat4x4 _e64 = _group_0_binding_0_vs.proj; vec4 _e65 = view_pos; float w_4 = max((_e64 * _e65).w, 0.0001); vec3 _e71 = NORMAL; vec2 m_4 = ((_e71.xy * vec2(0.5, -0.5)) + vec2(0.5)); env_uv = vec4((m_4 * w_4), w_4, 0.0); vec2 _e86 = UV; base_uv = vec3((_e86 * w_4), w_4); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_23 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_23 = false; } else { local_23 = false; } bool _e31 = local_23; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_5 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_2 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); SkinIn s = SkinIn(_p2vs_location12, _p2vs_location13); vec2 uv1_2 = _p2vs_location10; uint vid_2 = uint(gl_VertexID); SkinRows _e4 = skin_rows(s); vec4 p_8 = vec4(in_2.pos, 1.0); vec3 skinned = vec3(dot(_e4.r0_, p_8), dot(_e4.r1_, p_8), dot(_e4.r2_, p_8)); vec3 bx = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); vec3 by = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); vec3 bz = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n0_ = normalize(((cofactor * in_2.normal) * (flip_1 ? -1.0 : 1.0))); vec3 t0_1 = normalize((mat3x3(bx, by, bz) * in_2.tangent.xyz)); mat4x4 _e58 = _group_1_binding_0_vs.model; mat4x4 _e61 = _group_1_binding_0_vs.normal; mat3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1.0), vid_2); vertex(); uint flags_4 = (in_2.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_1); bool _e82 = hedra_vertex_space(); if (_e82) { vec4 _e83 = hedra_vertex_world(); vec3 _e85 = NORMAL; vec3 _e86 = hedra_vertex_dir(_e85); vec3 _e88 = TANGENT; vec3 _e89 = hedra_vertex_dir(_e88); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_4); gl_Position = _e90.clip; _vs2fs_location0 = _e90.world; _vs2fs_location1 = _e90.normal; _vs2fs_location2 = _e90.uv; _vs2fs_location3 = _e90.flags; _vs2fs_location4 = _e90.tangent; _vs2fs_location5 = _e90.color; _vs2fs_location6 = _e90.uv2_; _vs2fs_location7 = _e90.instance_id; _vs2fs_location8 = _e90.hedra_v0_; _vs2fs_location9 = _e90.hedra_v1_; _vs2fs_location10 = _e90.hedra_v2_; _vs2fs_location11 = _e90.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e93 = _group_1_binding_0_vs.model; vec3 _e95 = VERTEX; vec4 world_13 = (_e93 * vec4(_e95, 1.0)); mat4x4 _e101 = _group_1_binding_0_vs.normal; vec3 _e103 = NORMAL; vec3 n_11 = (_e101 * vec4(_e103, 0.0)).xyz; mat4x4 _e110 = _group_1_binding_0_vs.model; vec3 _e112 = TANGENT; vec3 t_5 = (_e110 * vec4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_13, n_11, t_5, _e81, flags_4); gl_Position = _e117.clip; _vs2fs_location0 = _e117.world; _vs2fs_location1 = _e117.normal; _vs2fs_location2 = _e117.uv; _vs2fs_location3 = _e117.flags; _vs2fs_location4 = _e117.tangent; _vs2fs_location5 = _e117.color; _vs2fs_location6 = _e117.uv2_; _vs2fs_location7 = _e117.instance_id; _vs2fs_location8 = _e117.hedra_v0_; _vs2fs_location9 = _e117.hedra_v1_; _vs2fs_location10 = _e117.hedra_v2_; _vs2fs_location11 = _e117.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_custommain‘x#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 tint; float reflectivity; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform LitU_block_2Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform ShadowU_block_3Fragment { ShadowU _group_0_binding_2_fs; }; uniform highp sampler2DShadow _group_0_binding_3_fs; layout(std140) uniform SkyU_block_4Fragment { SkyU _group_0_binding_5_fs; }; uniform highp samplerCube _group_3_binding_0_fs; uniform highp sampler2D _group_3_binding_1_fs; uniform highp sampler2D _group_0_binding_6_fs; uniform highp sampler2DArray _group_3_binding_4_fs; layout(std140) uniform ProbeU_block_5Fragment { ProbeU _group_0_binding_7_fs; }; uniform highp sampler2D _group_3_binding_6_fs; layout(std140) uniform DecalU_block_6Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; layout(std140) uniform FogU_block_7Fragment { FogU _group_1_binding_5_fs; }; uniform highp sampler2D _group_1_binding_6_fs; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); float SPECULAR_AMOUNT = 0.0; vec3 LIGHT = vec3(0.0); vec3 LIGHT_COLOR = vec3(0.0); bool LIGHT_IS_DIRECTIONAL = false; float ATTENUATION = 0.0; vec3 DIFFUSE_LIGHT = vec3(0.0); vec3 SPECULAR_LIGHT = vec3(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_8Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; vec4 env_uv = vec4(0.0); vec3 base_uv = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word_1 = ((k_1 < 4u) ? _e8 : _e4); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_2 = ((k_2 < 4u) ? _e8 : _e4); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local_6 = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_2 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_2.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local_6 = all(lessThanEqual(uvw, vec3(1.0))); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y)); if ((e_2.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1.0, ((dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1); uint live_1 = e_2.flags.x; if ((e_2.layers.x > 0u)) { vec4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_2.modulate); float _e90 = fade; float alpha = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if ((e_2.layers.y > 0u)) { vec4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if ((e_2.layers.z > 0u)) { vec4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if ((e_2.layers.w > 0u)) { vec4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_3 <= 1.5707964)) { float c_23 = (1.0 - (a_3 / 1.5707964)); float k_13 = clamp((1.0 - pow(max((1.0 - c_23), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } float c_24 = ((a_3 - 1.5707964) / 1.5707964); float k_14 = clamp((1.0 - pow(max((1.0 - c_24), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_25 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_25) + c_25) / ((c_25 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_25); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_25, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_25); return _e36; } return c_25; } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_3 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_3 * 1.8) - _e60) / EMERGE_EDGE); } vec3 emerge_tint(vec3 c_6, float r) { bool local_7 = false; uint _e6 = _group_1_binding_0_fs.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = (r >= 1.0); } else { local_7 = true; } bool _e17 = local_7; if ((SPEC_EMERGE ? _e17 : true)) { return c_6; } uint _e23 = _group_1_binding_0_fs.extra.w; vec3 _e26 = srgb_to_linear((vec4(_e23 & 0xFFu, _e23 >> 8 & 0xFFu, _e23 >> 16 & 0xFFu, _e23 >> 24) / 255.0).xyz); vec3 _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0.0, 1.0, r)); } vec3 item_fade(vec3 c_7) { uint _e5 = _group_1_binding_0_fs.extra.x; if ((SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true)) { return c_7; } vec4 f_1 = _group_1_binding_0_fs.normal[3]; vec3 _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec3 procedural_sky(vec3 d_1) { vec3 sky_1 = vec3(0.0); uint i = 0u; float v_6 = acos(clamp(d_1.y, -1.0, 1.0)); vec4 _e8 = _group_0_binding_5_fs.sky_horizon; vec4 _e12 = _group_0_binding_5_fs.sky_top; float _e21 = _group_0_binding_5_fs.sky_top.w; float _e22 = sky_curve((1.0 - (v_6 / 1.5707964)), _e21); float _e27 = _group_0_binding_5_fs.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); uint _e33 = _group_0_binding_5_fs.flags.z; uint suns = min(_e33, SKY_SUNS); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e79 = i; i = (_e79 + 1u); } loop_init_1 = false; uint _e38 = i; if ((_e38 < suns)) { } else { break; } { uint _e42 = i; SunU sun = _group_0_binding_5_fs.suns[_e42]; float size = sun.direction.w; float a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1.0, 1.0)); if ((a_5 < size)) { sky_1 = sun.color.xyz; } else { float _e60 = _group_0_binding_5_fs.sun.x; if ((a_5 < _e60)) { float _e66 = _group_0_binding_5_fs.sun.x; float c2_ = ((a_5 - size) / (_e66 - size)); vec3 _e71 = sky_1; float _e75 = _group_0_binding_5_fs.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } } vec4 _e83 = _group_0_binding_5_fs.ground_horizon; vec4 _e87 = _group_0_binding_5_fs.ground_bottom; float _e96 = _group_0_binding_5_fs.ground_bottom.w; float _e97 = sky_curve(((v_6 - 1.5707964) / 1.5707964), _e96); float _e102 = _group_0_binding_5_fs.ground_horizon.w; vec3 ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); vec3 _e104 = sky_1; float _e112 = _group_0_binding_5_fs.sun.z; return (((d_1.y >= 0.0) ? _e104 : ground) * _e112); } vec3 sh_irradiance(vec3 n_2) { vec3 c_9 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_9 = (_e4.xyz * 0.282095); vec3 _e9 = c_9; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603 * n_2.y))); vec3 _e20 = c_9; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603 * n_2.z))); vec3 _e31 = c_9; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603 * n_2.x))); vec3 _e42 = c_9; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y))); vec3 _e55 = c_9; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z))); vec3 _e68 = c_9; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0)))); vec3 _e85 = c_9; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z))); vec3 _e98 = c_9; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); vec3 _e115 = c_9; return max(_e115, vec3(0.0)); } vec3 radiance_1(vec3 d_3, float roughness) { uint _e5 = _group_0_binding_5_fs.flags.y; float top_1 = float((max(_e5, 1u) - 1u)); vec4 _e14 = textureLod(_group_3_binding_0_fs, vec3(d_3), (roughness * top_1)); return _e14.xyz; } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_10 = vec3(0.0); uint k_4 = 0u; c_10 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_2 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_10; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_10; return _e53; } vec3 sky_fog(vec3 c_11, vec3 dir_2) { vec4 _e4 = _group_0_binding_5_fs.fog_color; float _e9 = _group_0_binding_5_fs.fog_depth.w; vec3 _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); float _e15 = _group_0_binding_5_fs.fog.y; return mix(c_11, _e11, _e15); } vec3 surface_fog(vec3 c_12, vec3 world_3, vec3 dir_3) { float dist = 0.0; float amount = 0.0; vec3 fc_1 = vec3(0.0); bool local_8 = false; mat4x4 _e5 = _group_0_binding_0_fs.view; float depth = -((_e5 * vec4(world_3, 1.0)).z); vec4 _e13 = _group_0_binding_0_fs.camera_pos; dist = distance(world_3, _e13.xyz); float _e20 = _group_0_binding_5_fs.fog_origin.w; if ((_e20 > 0.5)) { float _e26 = _group_0_binding_5_fs.fog_origin.x; dist = max((depth - _e26), 0.0); } uint _e34 = _group_0_binding_5_fs.flags.x; if (((_e34 & SKY_FOG_DEPTH) != 0u)) { float _e42 = _group_0_binding_5_fs.fog_depth.x; float _e46 = _group_0_binding_5_fs.fog_depth.y; float _e47 = dist; float z = smoothstep(_e42, _e46, _e47); float _e54 = _group_0_binding_5_fs.fog_depth.z; float _e63 = _group_0_binding_5_fs.fog.x; amount = (((z > 0.0) ? pow(max(z, 1e-6), _e54) : 0.0) * _e63); } else { float _e65 = dist; float _e70 = _group_0_binding_5_fs.fog.x; amount = (1.0 - exp(min(0.0, (-(_e65) * _e70)))); } float _e80 = _group_0_binding_5_fs.fog.w; if ((abs(_e80) >= 0.0001)) { vec4 _e86 = _group_0_binding_1_fs.up; float y = dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = _group_0_binding_5_fs.fog.z; float _e98 = _group_0_binding_5_fs.fog.w; amount = max(_e89, (1.0 - exp(min(0.0, ((y - _e93) * _e98))))); } float _e106 = amount; amount = clamp(_e106, 0.0, 1.0); vec4 _e112 = _group_0_binding_5_fs.fog_color; fc_1 = _e112.xyz; uint _e119 = _group_0_binding_5_fs.flags.x; if (((_e119 & SKY_IBL) != 0u)) { float _e129 = _group_0_binding_5_fs.fog_depth.w; local_8 = (_e129 > 0.0); } else { local_8 = false; } bool _e133 = local_8; if ((SPEC_AMBIENT_SKY ? _e133 : false)) { float _e139 = _group_0_binding_5_fs.fog_origin.y; float _e144 = _group_0_binding_5_fs.fog_origin.z; float _e148 = _group_0_binding_5_fs.fog_origin.y; float t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 1e-6)), 0.0, 1.0); uint _e159 = _group_0_binding_5_fs.flags.y; float top_2 = float((max(_e159, 2u) - 1u)); float rough = mix((1.0 / top_2), 1.0, (1.0 - t_3)); vec3 _e171 = fc_1; vec3 _e172 = sky_dir(dir_3); vec3 _e173 = radiance_1(_e172, rough); float _e177 = _group_0_binding_5_fs.sun.w; float _e182 = _group_0_binding_5_fs.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } vec3 _e184 = fc_1; vec3 _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; vec3 _e186 = fc_1; float _e187 = amount; return mix(c_12, _e186, _e187); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_4, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h_1 = (_e26.xyz * 0.5); vec3 dd = mix(d_4, vec3(1e-12), lessThan(abs(d_4), vec3(1e-12))); vec3 sa = ((-(h_1) - o) / dd); vec3 sb = ((h_1 - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1.0); } else { float rad = min(h_1.x, h_1.z); float k_15 = ((shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0); float w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_3, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_4 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1.0)); if ((e_4.material.z > 0.0)) { uint shape_1 = uint(e_4.albedo.w); vec3 h_2 = (e_4.size.xyz * 0.5); float rad_1 = min(h_2.x, h_2.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_2 * h_2))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_11 = normalize(vec2((1.0 / max(0.001, (rad_1 * 0.5))), (1.0 / max(0.001, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_4.size.w), 0.0, 1.0), e_4.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_4 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_4.y; if (((hf * b_1) == 0.0)) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_2 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_2 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_2); float x_3 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_3 < 0.01) ? (1.0 - (x_3 * (0.5 - (x_3 * (0.16666667 - (x_3 / 24.0)))))) : ((1.0 - exp(-(x_3))) / x_3)); float top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 fog_light(uint n_3, vec3 p_4, vec3 dir_4) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l_1 = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_3].lights; bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_3 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l_1; float rim = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim, li.spot.y))); } } vec3 _e108 = l_1; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_4, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_6, vec2 ch) { float split = 0.0; bool local_9 = false; bool local_10 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = false; bool local_12 = false; FogEntryU e_5 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_5.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_5.to_local * vec4(d_6, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_6, _e28.xyz); bool edge = (e_5.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_5.material.y > 0.0)) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = (-(a_6) / b_3); } bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e160 = i_1; i_1 = (_e160 + 1u); } loop_init_4 = false; uint _e70 = i_1; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i_1; uint j = (_e75 & 3u); if (!((j == 0u))) { local_11 = (j == 3u); } else { local_11 = true; } bool _e88 = local_11; float x_4 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_12 = (j == 3u); } else { local_12 = true; } bool _e100 = local_12; float w_4 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_4 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_4) : x_4))); vec3 p_8 = (o_1 + (d_6 * t_4)); float _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_4))); uint _e137 = i_1; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_14, vec3 o_2, vec3 d_7, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_2 = 0u; bool local_13 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_3 = 0u; uint n_4 = 0u; float avail = 0.0; uint i_4 = 0u; uint i_5 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e72 = i_2; i_2 = (_e72 + 1u); } loop_init_5 = false; uint _e13 = i_2; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_2; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_13 = (byte == 0u); } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_16].to_local; vec2 _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_7, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_16; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e90 = i_3; i_3 = (_e90 + 1u); } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at[_e82]; uint _e85 = i_3; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } } bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e221 = n_4; n_4 = (_e221 + 1u); } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_4; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_4 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e153 = i_4; i_4 = (_e153 + 1u); } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_4; float _e113 = chords[_e110].y; uint _e114 = n_4; float _e117 = chords[_e114].y; uint _e119 = i_4; float _e122 = chords[_e119].x; uint _e123 = n_4; float _e126 = chords[_e123].x; uint _e131 = i_4; float _e134 = chords[_e131].y; uint _e135 = i_4; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_4; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_4; float _e158 = parts[_e155].w; float _e160 = avail; float f_2 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_5 = 0u; bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e218 = i_5; i_5 = (_e218 + 1u); } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_5; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_5; float _e180 = chords[_e177].y; uint _e181 = n_4; float _e184 = chords[_e181].y; uint _e186 = i_5; float _e189 = chords[_e186].x; uint _e190 = n_4; float _e193 = chords[_e190].x; uint _e198 = i_5; float _e201 = chords[_e198].y; uint _e202 = i_5; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_5; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_2))); } } } } } } bool loop_init_10 = true; while(true) { if (!loop_init_10) { uint _e252 = i_6; i_6 = (_e252 + 1u); } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_6; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_6; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_5 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_14 * t_5) + (_e258 * ((1.0 - t_5) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_15, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_6 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_6)); vec3 _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_15); } vec3 sky_fog_volumes(vec3 c_16, vec3 near_point, vec3 dir_5) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back_1 = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (near_point - (back_1 * (_e26 * vec4(near_point, 1.0)).z)) : _e22.xyz); uint _e44 = _group_1_binding_5_fs.counts.y; vec3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); float _e49 = _group_1_binding_5_fs.params.z; return mix(c_16, _e45, _e49); } float shadow_factor(uint i_7, vec3 world_5, vec3 n_geo_1, vec3 l_2) { uint part = 0u; uint c_17 = 0u; bool local_14 = false; bool local_15 = false; bool local_16 = false; float vis = 0.0; int dy = -1; int dx = 0; uint kind = _group_0_binding_1_fs.lights[i_7].info.x; vec4 _e14 = _group_0_binding_1_fs.lights[i_7].position; vec3 light_pos = _e14.xyz; uint _e21 = _group_0_binding_1_fs.lights[i_7].info.w; uint slot = min(_e21, 15u); vec4 params = _group_0_binding_2_fs.lights[slot].params; uint first = _group_0_binding_2_fs.lights[slot].info.x; uint _e40 = _group_0_binding_2_fs.lights[slot].info.y; uint count = max(_e40, 1u); mat4x4 _e45 = _group_0_binding_0_fs.view; float view_depth = -((_e45 * vec4(world_5, 1.0)).z); if ((kind == LIGHT_DIRECTIONAL)) { float _e60 = _group_0_binding_2_fs.lights[slot].fade.y; if ((view_depth > _e60)) { return 1.0; } part = (count - 1u); bool loop_init_11 = true; while(true) { if (!loop_init_11) { uint _e79 = c_17; c_17 = (_e79 + 1u); } loop_init_11 = false; uint _e67 = c_17; if ((_e67 < count)) { } else { break; } { uint _e73 = c_17; float _e75 = _group_0_binding_2_fs.lights[slot].splits[_e73]; if ((view_depth <= _e75)) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; vec4 texel = _group_0_binding_2_fs.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; float t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); vec3 p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1.0)) * t_6))) + (l_2 * (params.x * t_6))); if ((kind == LIGHT_OMNI)) { vec3 d_13 = (p_9 - light_pos); vec3 a_7 = abs(d_13); if ((a_7.x >= a_7.y)) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = ((d_13.x >= 0.0) ? 0u : 1u); } else { if ((a_7.y >= a_7.z)) { part = ((d_13.y >= 0.0) ? 2u : 3u); } else { part = ((d_13.z >= 0.0) ? 4u : 5u); } } } uint _e145 = part; uint tile = min((first + min(_e145, (count - 1u))), 15u); mat4x4 _e156 = _group_0_binding_2_fs.tiles[tile].view_proj; vec4 clip_1 = (_e156 * vec4(p_9, 1.0)); if ((clip_1.w <= 0.0)) { return 1.0; } vec3 ndc = (clip_1.xyz / vec3(clip_1.w)); if (!((abs(ndc.x) > 1.0))) { local_15 = (abs(ndc.y) > 1.0); } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = (ndc.z > 1.0); } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } vec4 rect = _group_0_binding_2_fs.tiles[tile].rect; vec2 uv_4 = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); vec2 auv = (rect.xy + (uv_4 * rect.zw)); float texel_uv = _group_0_binding_2_fs.atlas.x; vec2 lo_5 = (rect.xy + vec2((0.5 * texel_uv))); vec2 hi_4 = ((rect.xy + rect.zw) - vec2((0.5 * texel_uv))); float r_7 = params.z; if ((r_7 <= 0.0)) { float _e235 = textureLod(_group_0_binding_3_fs, vec3(clamp(auv, lo_5, hi_4), ndc.z), 0.0); vis = _e235; } else { float spread = (r_7 * texel_uv); bool loop_init_12 = true; while(true) { if (!loop_init_12) { int _e265 = dy; dy = (_e265 + 1); } loop_init_12 = false; int _e239 = dy; if ((_e239 <= 1)) { } else { break; } { dx = -1; bool loop_init_13 = true; while(true) { if (!loop_init_13) { int _e262 = dx; dx = (_e262 + 1); } loop_init_13 = false; int _e244 = dx; if ((_e244 <= 1)) { } else { break; } { int _e247 = dx; int _e249 = dy; vec2 tap = clamp((auv + (vec2(float(_e247), float(_e249)) * spread)), lo_5, hi_4); float _e255 = vis; float _e259 = textureLod(_group_0_binding_3_fs, vec3(tap, ndc.z), 0.0); vis = (_e255 + _e259); } } } } float _e267 = vis; vis = (_e267 / 9.0); } if ((kind == LIGHT_DIRECTIONAL)) { vec4 fade_1 = _group_0_binding_2_fs.lights[slot].fade; float _e277 = vis; vis = mix(_e277, 1.0, smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return mix(1.0, _e283, params.w); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_8 = abs(d_8); if ((a_8.x >= a_8.y)) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_8.y >= a_8.z)) { ma = a_8.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 probe_texel(uint row, vec3 fuv, uint level_1) { uint _e6 = _group_0_binding_7_fs.counts.z; float n_12 = float(max((_e6 >> level_1), 1u)); float lo_6 = (0.5 / n_12); float u_2 = clamp(fuv.y, lo_6, (1.0 - lo_6)); float v_7 = clamp(fuv.z, lo_6, (1.0 - lo_6)); vec2 uv_5 = vec2(((fuv.x + u_2) / 6.0), ((float(row) + v_7) / 8.0)); vec4 _e33 = textureLod(_group_3_binding_6_fs, vec2(uv_5), float(level_1)); return _e33.xyz; } vec3 probe_sample(uint row_1, vec3 d_9, float lod) { bool local_18 = false; uint _e6 = _group_0_binding_7_fs.counts.y; uint levels = max(_e6, 1u); float l_5 = clamp(lod, 0.0, float((levels - 1u))); uint m0_ = uint(l_5); float t_7 = (l_5 - float(m0_)); vec3 _e17 = probe_face_uv(d_9); vec3 _e18 = probe_texel(row_1, _e17, m0_); if (!((t_7 <= 0.0))) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } vec3 _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1.0 - t_7)) + (_e34 * t_7)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_6 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_6 = p_5.extents.xyz; float d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if ((d_14 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_14 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_15 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_15; } vec3 o_8 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_8 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_8 + (d_15 * t_8)) - p_6.offset.xyz); } vec4 probe_reflection(vec3 world_8, vec3 r_2, float roughness_2, uint probes) { vec3 acc = vec3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = _group_0_binding_7_fs.counts.x; uint count_1 = min(_e12, MAX_PROBES); uint _e18 = _group_0_binding_7_fs.counts.y; float lod_1 = (roughness_2 * float((max(_e18, 1u) - 1u))); bool loop_init_14 = true; while(true) { if (!loop_init_14) { uint _e57 = i_8; i_8 = (_e57 + 1u); } loop_init_14 = false; uint _e27 = i_8; if ((_e27 < count_1)) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = _group_0_binding_7_fs.probes[_e31]; if ((((probes >> p_10.info.w) & 1u) == 0u)) { continue; } float _e41 = probe_weight(p_10, world_8); if ((_e41 <= 0.0)) { continue; } vec3 _e44 = acc; vec3 _e47 = probe_lookup(p_10, world_8, r_2); vec3 _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); float _e54 = w_sum; w_sum = (_e54 + _e41); } } float _e59 = w_sum; if ((_e59 > 1.0)) { vec3 _e62 = acc; float _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1.0; } vec3 _e67 = acc; float _e68 = w_sum; return vec4(_e67, _e68); } vec4 probe_ambient(vec3 world_9, vec3 n_7, uint probes_1) { vec3 acc_1 = vec3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = false; vec3 c_18 = vec3(0.0); uint _e11 = _group_0_binding_7_fs.counts.x; uint count_2 = min(_e11, MAX_PROBES); uint _e17 = _group_0_binding_7_fs.counts.y; uint last = (max(_e17, 1u) - 1u); bool loop_init_15 = true; while(true) { if (!loop_init_15) { uint _e73 = i_9; i_9 = (_e73 + 1u); } loop_init_15 = false; uint _e24 = i_9; if ((_e24 < count_2)) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = _group_0_binding_7_fs.probes[_e28]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if ((_e47 <= 0.0)) { continue; } c_18 = p_11.ambient.xyz; if ((p_11.info.y == PROBE_AMBIENT_ENVIRONMENT)) { vec3 _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0.0)).xyz); vec3 _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } vec3 _e66 = acc_1; vec3 _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); float _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } } float _e75 = w_sum_1; if ((_e75 > 1.0)) { vec3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1.0; } vec3 _e83 = acc_1; float _e84 = w_sum_1; return vec4(_e83, _e84); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = env_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = base_uv; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { env_uv = i_10.hedra_v0_; base_uv = i_10.hedra_v1_.xyz; return; } void light() { return; } void fragment() { vec4 _e3 = env_uv; float _e7 = env_uv.z; vec4 _e10 = texture(_group_2_binding_1_fs, vec2((_e3.xy / vec2(_e7)))); vec3 _e14 = _group_2_binding_0_fs.tint; vec3 env = (_e10.xyz * _e14); vec3 _e19 = base_uv; float _e23 = base_uv.z; vec4 _e26 = texture(_group_2_binding_2_fs, vec2((_e19.xy / vec2(_e23)))); vec3 base = _e26.xyz; float _e31 = _group_2_binding_0_fs.reflectivity; ALBEDO = mix(base, env, _e31); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_8 = transpose(_e1); vec3 t_9 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0.0), vec4(r_8[1], 0.0), vec4(r_8[2], 0.0), vec4(t_9, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back_2 = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back_2 * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back_2 * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_25 = false; bool local_26 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } bool _e12 = local_25; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = (_e18 < _e20); } else { local_26 = false; } bool _e23 = local_26; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_5 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_3 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_3), 0.0); float vh_2 = max(dot(v_3, h_3), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } vec4 hedra_light_dir(uint i_11, vec3 world_12) { float atten_1 = 0.0; LightU li_1 = _group_0_binding_1_fs.lights[i_11]; if ((li_1.info.x == LIGHT_DIRECTIONAL)) { return vec4(-(li_1.direction.xyz), 1.0); } vec3 rel_1 = (li_1.position.xyz - world_12); float d_16 = length(rel_1); vec3 l_7 = (rel_1 / vec3(max(d_16, 1e-6))); float _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if ((li_1.info.x == LIGHT_SPOT)) { float cone = li_1.spot.x; float scos = max(dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = max(0.0001, ((1.0 - scos) / max((1.0 - cone), 1e-6))); float _e49 = atten_1; atten_1 = (_e49 * (1.0 - pow(rim_1, li_1.spot.y))); } float _e56 = atten_1; return vec4(l_7, _e56); } float hedra_shadow(uint i_12, vec3 l_4) { bool local_28 = false; if (false) { uint _e10 = _group_0_binding_1_fs.lights[i_12].info.y; local_28 = (_e10 != LIGHT_SHADOWED); } else { local_28 = true; } bool _e14 = local_28; if (_e14) { return 1.0; } vec3 _e17 = hedra_world; vec3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } vec3 hedra_ambient(vec3 n_10, vec3 v_4, vec3 diffuse_2, vec3 f0_3, float roughness_3, float metallic) { vec3 ambient = vec3(0.0); vec3 diffuse_amb = vec3(0.0); vec3 spec_amb = vec3(0.0); vec3 dif = vec3(0.0); vec3 dif_1 = vec3(0.0); vec3 dif_2 = vec3(0.0); vec3 world_13 = hedra_world; float nv_5 = max(dot(n_10, v_4), 0.0001); vec3 f_amb = (f0_3 + ((max(vec3((1.0 - roughness_3)), f0_3) - f0_3) * pow((1.0 - nv_5), 5.0))); vec4 _e25 = gi_diffuse(n_10, false, vec3(0.0)); uint _e30 = _group_0_binding_5_fs.flags.x; if (((_e30 & SKY_IBL) != 0u)) { float _e38 = _group_0_binding_5_fs.ibl.x; float _e42 = _group_0_binding_5_fs.sun.w; float scale = (_e38 * _e42); vec4 _e46 = _group_0_binding_5_fs.ambient; diffuse_amb = _e46.xyz; uint _e52 = _group_0_binding_5_fs.flags.x; if (((_e52 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e59 = _group_0_binding_5_fs.ambient; vec3 _e61 = sky_dir(n_10); vec3 _e62 = sh_irradiance(_e61); float _e67 = _group_0_binding_5_fs.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if ((_e25.w > 0.0)) { diffuse_amb = _e25.xyz; } vec4 _e75 = _group_0_binding_5_fs.ambient; spec_amb = _e75.xyz; uint _e81 = _group_0_binding_5_fs.flags.x; if (((_e81 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e88 = sky_dir(reflect(-(v_4), n_10)); vec3 _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { uint _e94 = _group_0_binding_5_fs.flags.x; if (((_e94 & SKY_REFLECT_OFF) != 0u)) { spec_amb = vec3(0.0); } } vec2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = _group_0_binding_7_fs.counts.x; if ((_e105 > 0u)) { uint _e113 = _group_1_binding_0_fs.extra.z; vec4 _e114 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e113); vec3 _e115 = spec_amb; vec3 spec_1 = ((_e115 * (1.0 - _e114.w)) + _e114.xyz); vec3 _e122 = diffuse_amb; dif = _e122; if ((_e25.w <= 0.0)) { uint _e130 = _group_1_binding_0_fs.extra.z; vec4 _e131 = probe_ambient(world_13, n_10, _e130); vec3 _e132 = diffuse_amb; dif = ((_e132 * (1.0 - _e131.w)) + _e131.xyz); } vec3 _e139 = dif; ambient = ((diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } else { vec3 _e154 = diffuse_amb; vec3 _e156 = spec_amb; ambient = ((diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } } else { uint _e173 = _group_0_binding_1_fs.counts.y; if (((_e173 & ENV_AMBIENT_SKY) != 0u)) { vec4 _e180 = _group_0_binding_1_fs.up; vec3 up = _e180.xyz; vec4 _e184 = _group_0_binding_1_fs.sky_top; vec4 _e188 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e184.xyz + _e188.xyz) * 0.5); vec4 _e195 = _group_0_binding_1_fs.ground_horizon; vec4 _e199 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e195.xyz + _e199.xyz) * 0.5); vec3 irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up) * 0.5) + 0.5), 0.0, 1.0)); vec3 _e215 = sky(reflect(-(v_4), n_10)); vec3 blurred = mix(_e215, sky_avg, roughness_3); uint _e220 = _group_0_binding_7_fs.counts.x; if ((_e220 > 0u)) { uint _e228 = _group_1_binding_0_fs.extra.z; vec4 _e229 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e228); float _e233 = _group_0_binding_1_fs.ambient.w; vec3 spec_2 = (((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e249 = _group_1_binding_0_fs.extra.z; vec4 _e250 = probe_ambient(world_13, n_10, _e249); float _e254 = _group_0_binding_1_fs.ambient.w; dif_1 = (((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz); } vec3 _e262 = dif_1; ambient = ((diffuse_2 * _e262) + (spec_2 * f_amb)); } else { if ((_e25.w > 0.0)) { float _e275 = _group_0_binding_1_fs.ambient.w; ambient = ((diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { float _e284 = _group_0_binding_1_fs.ambient.w; ambient = (((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284); } } } else { uint _e289 = _group_0_binding_7_fs.counts.x; if ((_e289 > 0u)) { uint _e297 = _group_1_binding_0_fs.extra.z; vec4 _e298 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e297); vec4 _e301 = _group_0_binding_1_fs.ambient; vec3 spec_3 = ((_e301.xyz * (1.0 - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e317 = _group_1_binding_0_fs.extra.z; vec4 _e318 = probe_ambient(world_13, n_10, _e317); vec4 _e321 = _group_0_binding_1_fs.ambient; dif_2 = ((_e321.xyz * (1.0 - _e318.w)) + _e318.xyz); } vec3 _e329 = dif_2; ambient = ((diffuse_2 * _e329) + (spec_3 * f_amb)); } else { if ((_e25.w > 0.0)) { vec4 _e340 = _group_0_binding_1_fs.ambient; ambient = ((diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb)); } else { vec4 _e346 = _group_0_binding_1_fs.ambient; ambient = (_e346.xyz * (diffuse_2 + f_amb)); } } } } vec3 _e350 = ambient; return _e350; } vec3 hedra_fog(vec3 c_in_1, vec3 v_5) { vec3 c_20 = vec3(0.0); c_20 = c_in_1; if (HEDRA_FOG_DISABLED) { vec3 _e4 = c_20; return _e4; } uint _e8 = _group_0_binding_5_fs.flags.x; if (((_e8 & SKY_FOG) != 0u)) { vec3 _e13 = c_20; vec3 _e15 = hedra_world; vec3 _e17 = surface_fog(_e13, _e15, -(v_5)); c_20 = _e17; } uint _e21 = _group_1_binding_0_fs.decals.w; if ((_e21 != 0u)) { vec3 _e24 = c_20; vec3 _e26 = hedra_world; uint _e30 = _group_1_binding_0_fs.decals.w; vec3 _e31 = fog_volumes(_e24, _e26, _e30); c_20 = _e31; } vec3 _e32 = c_20; return _e32; } vec3 hedra_lit(vec4 clip) { DecalSurface surf_1 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); vec3 c_21 = vec3(0.0); uint k_11 = 0u; bool local_29 = false; vec3 radiance_3 = vec3(0.0); bool local_30 = false; bool local_31 = false; vec3 ambient_1 = vec3(0.0); bool local_32 = false; vec3 n_geo_3 = hedra_n_geo; vec3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; vec3 _e18 = hedra_n; vec3 _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0.0, 1.0), clamp(_e11, 0.045, 1.0), _e16, _e18, _e20); uint _e26 = _group_1_binding_0_fs.decals.z; if ((_e26 > 0u)) { vec3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; vec3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; mat4x4 _e45 = _group_0_binding_0_fs.view; mat3x3 _e46 = hedra_mat3_(_e45); vec3 _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); vec3 base_1 = surf_1.base; vec3 diffuse_3 = (base_1 * (1.0 - metallic_1)); float _e64 = SPECULAR; float _e68 = SPECULAR; vec3 f0_4 = mix(vec3(((0.16 * _e64) * _e68)), base_1, metallic_1); vec3 n_13 = surf_1.normal; vec3 _e75 = hedra_world; vec3 _e76 = hedra_view_dir(_e75); mat4x4 _e79 = _group_0_binding_0_fs.view; mat3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = mix(1.0, _e82, _e84); DIFFUSE_LIGHT = vec3(0.0); SPECULAR_LIGHT = vec3(0.0); uint _e96 = object_light_count(); bool loop_init_16 = true; while(true) { if (!loop_init_16) { uint _e238 = k_11; k_11 = (_e238 + 1u); } loop_init_16 = false; uint _e99 = k_11; if ((_e99 < _e96)) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101); LightU li_2 = _group_0_binding_1_fs.lights[_e102]; vec3 _e108 = hedra_world; vec4 _e109 = hedra_light_dir(_e102, _e108); vec3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_29 = (atten_2 > 0.0); } else { local_29 = true; } bool _e123 = local_29; if (_e123) { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if ((_e142 > 0.0)) { float rim_light = pow(max(0.0001, (1.0 - max(dot(n_13, _e76), 0.0001))), max(0.0, ((1.0 - roughness_4) * 16.0))); vec3 _e159 = c_21; float _e164 = RIM; float _e170 = RIM_TINT; c_21 = (_e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1.0), base_1, _e170))); } if ((atten_2 > 0.0)) { radiance_3 = (li_2.color.xyz * atten_2); if ((li_2.info.y == LIGHT_SHADOWED)) { local_30 = false; } else { local_30 = false; } bool _e188 = local_30; if (_e188) { vec3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if (true) { local_31 = false; } else { local_31 = false; } bool _e201 = local_31; if (_e201) { vec3 _e202 = c_21; vec3 _e203 = radiance_3; vec3 _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_21 = (_e202 + _e206); } else { vec3 _e208 = c_21; vec3 _e209 = radiance_3; vec3 _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = (_e208 + _e212); } vec3 _e215 = BACKLIGHT; if (any(greaterThan(_e215, vec3(0.0)))) { float nl_4 = max(min(dot(n_13, l_8), 1.0), 0.0); vec3 _e225 = c_21; vec3 _e226 = radiance_3; vec3 _e229 = BACKLIGHT; c_21 = (_e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987)))); } } } } if (HEDRA_HAS_LIGHT) { vec3 _e242 = DIFFUSE_LIGHT; vec3 _e249 = SPECULAR_LIGHT; c_21 = ((((_e242 * base_1) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct)); } else { float _e253 = AO_LIGHT_AFFECT; if ((_e253 > 0.0)) { vec3 _e256 = c_21; c_21 = (_e256 * ao_direct); } } if (true) { vec3 _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } uint _e266 = _group_0_binding_1_fs.counts.y; if (((_e266 & ENV_SSAO) != 0u)) { bool _e273 = hedra_transparent(); local_32 = !(_e273); } else { local_32 = false; } bool _e276 = local_32; if (_e276) { vec4 _e282 = texelFetch(_group_0_binding_6_fs, ivec2(floor(clip.xy)), 0); float ssao = _e282.x; vec3 _e284 = c_21; float _e286 = surf_1.occlusion; float _e291 = _group_0_binding_1_fs.tone.z; float _e295 = _group_0_binding_1_fs.tone.w; c_21 = (_e284 * mix(1.0, min(ssao, _e286), (_e291 * _e295))); vec3 _e300 = c_21; vec3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_21 = (_e300 + (_e301 * min(_e303, ssao))); } else { vec3 _e307 = c_21; vec3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_21 = (_e307 + (_e308 * _e310)); } vec3 _e313 = c_21; vec3 _e315 = surf_1.emission; c_21 = (_e313 + _e315); vec3 _e317 = c_21; vec3 _e318 = hedra_fog(_e317, _e76); vec3 _e319 = tonemap(_e318); return _e319; } vec4 hedra_output(vec3 c_22) { vec3 rgb = vec3(0.0); rgb = c_22; if (false) { vec3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } vec3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); vec4 o_9 = vec4(_e7, (_e10 ? _e9 : 1.0)); uint _e17 = _group_0_binding_1_fs.counts.y; if (((_e17 & ENV_HDR) != 0u)) { return vec4(max(o_9.xyz, vec3(0.0)), clamp(o_9.w, 0.0, 1.0)); } vec4 k_17 = clamp(o_9, vec4(0.0), vec4(1.0)); uint _e39 = _group_0_binding_0_fs.params.z; if (((_e39 & HEDRA_ENCODE_SRGB) != 0u)) { vec3 _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } vec3 hedra_bindings() { vec2 uv_6 = vec2(0.5); vec4 _e5 = textureLod(_group_3_binding_1_fs, vec2(uv_6), 0.0); vec4 _e11 = textureLod(_group_3_binding_4_fs, vec3(uv_6, 0), 0.0); vec4 _e17 = textureLod(_group_1_binding_6_fs, vec2(uv_6), 0.0); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } void main() { CustomOut in_3 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing = gl_FrontFacing; vec3 c = vec3(0.0); hedra_fragment(in_3, facing); bool _e3 = hedra_culled(in_3.flags); if (_e3) { discard; } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if ((_e7 <= 0.0)) { discard; } if (HEDRA_UNSHADED) { vec3 _e13 = ALBEDO; vec3 _e15 = hedra_world; vec3 _e16 = hedra_view_dir(_e15); vec3 _e17 = hedra_fog(_e13, _e16); vec3 _e18 = tonemap(_e17); c = _e18; } else { vec3 _e20 = hedra_lit(in_3.clip); c = _e20; } uint _e24 = _group_0_binding_1_fs.counts.w; if ((_e24 == HEDRA_NEVER)) { vec3 _e27 = c; vec3 _e28 = hedra_bindings(); c = (_e27 + _e28); } uint _e33 = _group_0_binding_0_fs.params.x; if ((_e33 == SHADE_LIT)) { vec3 _e36 = c; vec3 _e37 = item_fade(_e36); vec3 _e38 = emerge_tint(_e37, _e7); c = _e38; } vec3 _e39 = c; vec4 _e40 = hedra_output(_e39); _fs2p_location0 = _e40; return; } fs_custom_depthmain9ƒ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 tint; float reflectivity; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; vec4 env_uv = vec4(0.0); vec3 base_uv = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = env_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = base_uv; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { env_uv = i_10.hedra_v0_; base_uv = i_10.hedra_v1_.xyz; return; } void light() { return; } void fragment() { vec4 _e3 = env_uv; float _e7 = env_uv.z; vec4 _e10 = texture(_group_2_binding_1_fs, vec2((_e3.xy / vec2(_e7)))); vec3 _e14 = _group_2_binding_0_fs.tint; vec3 env = (_e10.xyz * _e14); vec3 _e19 = base_uv; float _e23 = base_uv.z; vec4 _e26 = texture(_group_2_binding_2_fs, vec2((_e19.xy / vec2(_e23)))); vec3 base = _e26.xyz; float _e31 = _group_2_binding_0_fs.reflectivity; ALBEDO = mix(base, env, _e31); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_4 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_1 = gl_FrontFacing; bool local = false; bool local_1 = false; hedra_fragment(in_4, facing_1); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { discard; } float _e25 = emerge_reveal(in_4.world, vec2(-1.0)); if ((_e25 <= 0.0)) { discard; } else { return; } }  fs_custom_idmain,†#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 tint; float reflectivity; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; vec4 env_uv = vec4(0.0); vec3 base_uv = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = env_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = base_uv; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { env_uv = i_10.hedra_v0_; base_uv = i_10.hedra_v1_.xyz; return; } void light() { return; } void fragment() { vec4 _e3 = env_uv; float _e7 = env_uv.z; vec4 _e10 = texture(_group_2_binding_1_fs, vec2((_e3.xy / vec2(_e7)))); vec3 _e14 = _group_2_binding_0_fs.tint; vec3 env = (_e10.xyz * _e14); vec3 _e19 = base_uv; float _e23 = base_uv.z; vec4 _e26 = texture(_group_2_binding_2_fs, vec2((_e19.xy / vec2(_e23)))); vec3 base = _e26.xyz; float _e31 = _group_2_binding_0_fs.reflectivity; ALBEDO = mix(base, env, _e31); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_25 = false; bool local_26 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } bool _e12 = local_25; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = (_e18 < _e20); } else { local_26 = false; } bool _e23 = local_26; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_5 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_2 = gl_FrontFacing; bool local_2 = false; IdOut out_ = IdOut(vec4(0.0)); hedra_fragment(in_5, facing_2); bool _e3 = hedra_culled(in_5.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0.0); } else { local_2 = true; } bool _e14 = local_2; if (_e14) { discard; } uint id = _group_1_binding_0_fs.params.z; uint _e24 = _group_1_binding_0_fs.params.x; uint _e33 = _group_1_binding_0_fs.params.y; uint bits = (((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u)); out_.id = (vec4(float((id & 255u)), float(((id >> 8u) & 255u)), float(((id >> 16u) & 255u)), float(bits)) / vec4(255.0)); IdOut _e58 = out_; _fs2p_location0 = _e58.id; return; } fs_custom_normal_depthmain͇#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 tint; float reflectivity; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 0u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; uniform highp sampler2D _group_2_binding_2_fs; vec4 env_uv = vec4(0.0); vec3 base_uv = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; layout(location = 1) out vec4 _fs2p_location1; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = env_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = base_uv; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { env_uv = i_10.hedra_v0_; base_uv = i_10.hedra_v1_.xyz; return; } void light() { return; } void fragment() { vec4 _e3 = env_uv; float _e7 = env_uv.z; vec4 _e10 = texture(_group_2_binding_1_fs, vec2((_e3.xy / vec2(_e7)))); vec3 _e14 = _group_2_binding_0_fs.tint; vec3 env = (_e10.xyz * _e14); vec3 _e19 = base_uv; float _e23 = base_uv.z; vec4 _e26 = texture(_group_2_binding_2_fs, vec2((_e19.xy / vec2(_e23)))); vec3 base = _e26.xyz; float _e31 = _group_2_binding_0_fs.reflectivity; ALBEDO = mix(base, env, _e31); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_25 = false; bool local_26 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } bool _e12 = local_25; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = (_e18 < _e20); } else { local_26 = false; } bool _e23 = local_26; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_6 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_3 = gl_FrontFacing; bool local_3 = false; HedraNormalDepthOut out_1 = HedraNormalDepthOut(vec4(0.0), vec4(0.0)); hedra_fragment(in_6, facing_3); bool _e3 = hedra_culled(in_6.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0.0); } else { local_3 = true; } bool _e14 = local_3; if (_e14) { discard; } mat4x4 _e17 = _group_0_binding_0_fs.view; mat3x3 _e18 = hedra_mat3_(_e17); vec3 _e20 = hedra_n; vec3 n_view = normalize((_e18 * _e20)); float _e24 = METALLIC; float metallic_1 = clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; vec3 _e37 = ALBEDO; vec3 f0_4 = mix(vec3(((0.16 * _e29) * _e33)), _e37, metallic_1); mat4x4 _e43 = _group_0_binding_0_fs.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_4, vec3(0.0), vec3(1.0)), clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; _fs2p_location0 = _e63.normal_depth; _fs2p_location1 = _e63.surface; return; }  @Ð Ð/ ,@    {Ðþ—4ÌhÜ©Z„åŸþh�¡/f6|b%0.²Globals_block_0VertexObjectU_block_1Vertex HedraParams_block_2VertexSkinU_block_2Vertex HedraParams_block_3VertexSkyU_block_4FragmentShadowU_block_3FragmentGlobals_block_0Fragment HedraParams_block_8FragmentFogU_block_7FragmentDecalU_block_6FragmentObjectU_block_1FragmentProbeU_block_5FragmentLitU_block_2Fragment_group_3_binding_4_fs_group_0_binding_6_fs_group_2_binding_1_fs_group_1_binding_3_fs_group_3_binding_1_fs_group_2_binding_2_fs _group_3_binding_6_fs_group_0_binding_3_fs_group_1_binding_6_fs_group_3_binding_0_fs HedraParams_block_2Fragment vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depthtj// language: metal2.2 #include #include using metal::uint; struct Globals { metal::float4x4 view; metal::float4x4 proj; metal::float4x4 view_proj; metal::float4 camera_pos; metal::float4 viewport; metal::float4 wire_color; metal::float4 select_color; metal::float4 active_color; metal::float4 grid; metal::uint4 params; metal::float4 fparams; }; struct type_5 { metal::float4 inner[3]; }; struct ObjectU { metal::float4x4 model; metal::float4x4 normal; metal::float4 color; metal::uint4 params; metal::uint4 extra; type_5 gi; metal::uint4 decals; metal::uint4 lights; }; struct type_8 { metal::float3 inner[10]; }; struct LightU { metal::float4 color; metal::float4 position; metal::float4 direction; metal::float4 spot; metal::uint4 info; }; struct type_9 { LightU inner[64]; }; struct LitU { metal::uint4 counts; metal::float4 ambient; metal::float4 tone; metal::float4 up; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_horizon; metal::float4 ground_bottom; metal::float4x4 inv_view_proj; metal::uint4 dirs; type_9 lights; }; struct ShadowLightU { metal::float4 params; metal::float4 splits; metal::float4 fade; metal::uint4 info; }; struct ShadowTileU { metal::float4x4 view_proj; metal::float4 rect; metal::float4 texel; }; struct type_10 { ShadowLightU inner[16]; }; struct type_11 { ShadowTileU inner[16]; }; struct ShadowU { metal::float4 atlas; type_10 lights; type_11 tiles; }; struct SunU { metal::float4 direction; metal::float4 color; }; struct type_14 { SunU inner[4]; }; struct type_15 { metal::float4 inner[9]; }; struct SkyU { metal::uint4 flags; metal::float4x4 to_sky; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_bottom; metal::float4 ground_horizon; metal::float4 sun; metal::float4 ambient; metal::float4 ibl; metal::float4 fog_color; metal::float4 fog; metal::float4 fog_depth; metal::float4 fog_origin; type_14 suns; type_15 sh; }; struct ProbeEntryU { metal::float4x4 to_local; metal::float4 extents; metal::float4 offset; metal::float4 ambient; metal::uint4 info; }; struct type_20 { ProbeEntryU inner[8]; }; struct ProbeU { metal::uint4 counts; type_20 probes; }; struct DecalEntryU { metal::float4x4 to_local; metal::float4 modulate; metal::float4 fades; metal::float4 axis_x; metal::float4 axis_y; metal::float4 axis_z; metal::uint4 layers; metal::uint4 flags; }; struct type_21 { DecalEntryU inner[64]; }; struct DecalU { metal::uint4 counts; metal::float4 lod; type_21 entries; }; struct DecalSurface { metal::packed_float3 base; float metallic; float roughness; float occlusion; char _pad4[8]; metal::float3 normal; metal::float3 emission; }; struct VsIn { metal::float3 pos; metal::float3 normal; metal::float2 uv; uint flags; char _pad4[4]; metal::float4 tangent; float weight; char _pad6[12]; }; struct InstIn { metal::float4 row0_; metal::float4 row1_; metal::float4 row2_; metal::float4 color; }; struct FogEntryU { metal::float4x4 to_local; metal::float4 size; metal::float4 material; metal::float4 albedo; metal::float4 emission; metal::uint4 lights; }; struct type_26 { metal::float4 inner[16]; }; struct type_27 { FogEntryU inner[16]; }; struct FogU { metal::uint4 counts; metal::float4 params; metal::float4 ambient; metal::float4 up; type_26 light_fog; type_27 entries; }; struct type_28 { uint inner[4]; }; struct type_29 { metal::float2 inner[4]; }; struct type_30 { metal::float4 inner[4]; }; struct type_31 { metal::float4 inner[765]; }; struct SkinU { type_31 rows; }; struct SkinIn { metal::uint4 joints; metal::float4 weights; }; struct SkinRows { metal::float4 r0_; metal::float4 r1_; metal::float4 r2_; }; struct HedraInstExtra { metal::float4 custom; float id; char _pad2[12]; }; struct CustomOut { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; metal::float4 color; metal::float2 uv2_; uint instance_id; char _pad9[4]; metal::float4 hedra_v0_; metal::float4 hedra_v1_; metal::float4 hedra_v2_; metal::float4 hedra_v3_; }; struct IdOut { metal::float4 id; }; struct HedraParams { metal::packed_float3 tint; float reflectivity; metal::float2 snap_resolution; char _pad3[8]; }; struct HedraNormalDepthOut { metal::float4 normal_depth; metal::float4 surface; }; constant uint OBJ_HAS_WEIGHTS = 1u; constant uint OBJ_MIRRORED = 2u; constant uint SHADE_SOLID = 0u; constant uint SHADE_MATCAP = 1u; constant uint SHADE_NORMALS = 2u; constant uint SHADE_FACE_ORIENT = 3u; constant uint SHADE_RANDOM = 4u; constant uint SHADE_MATERIAL = 5u; constant uint SHADE_UV_CHECKER = 6u; constant uint SHADE_WEIGHTS = 7u; constant uint SHADE_LIT = 8u; constant uint SHADE_LIGHTMAP = 9u; constant uint SHADE_LIGHT_COUNT = 10u; constant uint OV_SELECTION = 1u; constant uint OV_SEAMS = 2u; constant uint OV_SHARP = 4u; constant uint F_SELECTED = 1u; constant uint F_HIDDEN = 2u; constant uint F_SEAM = 4u; constant uint F_SHARP = 8u; constant uint F_MESH = 16u; constant uint F_FADE = 32u; constant uint F_NO_PULL = 64u; constant bool SPEC_TEX_BASE = true; constant bool SPEC_TEX_NORMAL = true; constant bool SPEC_TEX_MR = true; constant bool SPEC_TEX_EMISSION = true; constant bool SPEC_TEX_OCCLUSION = true; constant bool SPEC_VERTEX_COLOR = true; constant bool SPEC_EXT = true; constant bool SPEC_UNLIT = true; constant bool SPEC_ALPHA_MASK = true; constant bool SPEC_ALPHA_BLEND = true; constant bool SPEC_CLEARCOAT = true; constant bool SPEC_SHEEN = true; constant bool SPEC_TRANSMISSION = true; constant bool SPEC_IRIDESCENCE = true; constant bool SPEC_ANISOTROPY = true; constant bool SPEC_DIFFUSE_TRANSMISSION = true; constant bool SPEC_VOLUME = true; constant bool SPEC_DISPERSION = true; constant bool SPEC_EXT_LAYERS = true; constant bool SPEC_ROUGHNESS_LAYER = true; constant bool SPEC_LIT = true; constant bool SPEC_LIGHTS = true; constant bool SPEC_SHADOWS = true; constant bool SPEC_DECALS = true; constant bool SPEC_FOG = true; constant bool SPEC_FOG_VOLUMES = true; constant bool SPEC_PROBES = true; constant bool SPEC_PROBE_GI = true; constant bool SPEC_SSAO = true; constant bool SPEC_SCREEN_REFRACTION = true; constant bool SPEC_EMERGE = true; constant bool SPEC_FADE = true; constant bool SPEC_FACE_FLAGS = true; constant bool SPEC_AMBIENT_FLAT = true; constant bool SPEC_AMBIENT_GRADIENT = true; constant bool SPEC_AMBIENT_SKY = true; constant bool SPEC_MATERIAL_MODE = true; constant bool SPEC_OTHER_MODES = true; constant float PI = 3.1415927; constant float TAU = 6.2831855; constant float E = 2.7182817; constant uint HEDRA_BLEND_MIX = 0u; constant uint HEDRA_BLEND_PREMUL_ALPHA = 4u; constant uint HEDRA_CULL_FRONT = 1u; constant uint HEDRA_DIFFUSE_LAMBERT = 0u; constant uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; constant uint HEDRA_DIFFUSE_BURLEY = 2u; constant uint HEDRA_DIFFUSE_TOON = 3u; constant uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; constant uint HEDRA_SPECULAR_TOON = 1u; constant uint HEDRA_SPECULAR_DISABLED = 2u; constant uint HEDRA_ENCODE_SRGB = 2u; constant uint HEDRA_NEVER = 4294967295u; constant uint MAX_FRAME_LIGHTS = 64u; constant uint MAX_OBJECT_LIGHTS = 8u; constant uint MAX_SHADOW_LIGHTS = 16u; constant uint MAX_POOL_DIRECTIONAL = 8u; constant type_8 LIGHT_COUNT_COLORS = type_8 {{metal::float3(0.352941, 0.352941, 0.352941), metal::float3(0.168627, 0.247059, 0.6), metal::float3(0.129412, 0.4, 0.67451), metal::float3(0.101961, 0.623529, 0.721569), metal::float3(0.121569, 0.631373, 0.529412), metal::float3(0.301961, 0.733333, 0.352941), metal::float3(0.65098, 0.831373, 0.227451), metal::float3(0.94902, 0.784314, 0.058824), metal::float3(0.94902, 0.556863, 0.058824), metal::float3(0.878431, 0.129412, 0.541176)}}; constant uint LIGHT_DIRECTIONAL = 0u; constant uint LIGHT_OMNI = 1u; constant uint LIGHT_SPOT = 2u; constant uint LIGHT_BAKE_DISABLED = 0u; constant uint LIGHT_BAKE_STATIC = 1u; constant uint LIGHT_BAKE_DYNAMIC = 2u; constant uint TONEMAP_LINEAR = 0u; constant uint TONEMAP_REINHARD = 1u; constant uint TONEMAP_FILMIC = 2u; constant uint TONEMAP_ACES = 3u; constant uint TONEMAP_AGX = 4u; constant uint ENV_SKY = 1u; constant uint ENV_AMBIENT_SKY = 2u; constant uint ENV_SSAO = 4u; constant uint ENV_HDR = 8u; constant uint ENV_SCREEN_REFRACTION = 16u; constant uint LIGHT_SHADOWED = 1u; constant uint LIGHT_BAKED_STATIC = 1u; constant uint SHADOW_TILES = 16u; constant uint SKY_DRAW_PROCEDURAL = 1u; constant uint SKY_DRAW_PANORAMA = 2u; constant uint SKY_PANORAMA_FILTER = 4u; constant uint SKY_IBL = 8u; constant uint SKY_AMBIENT_SKY = 16u; constant uint SKY_REFLECT_RADIANCE = 32u; constant uint SKY_REFLECT_OFF = 64u; constant uint SKY_FOG = 128u; constant uint SKY_FOG_DEPTH = 256u; constant uint SKY_SUNS = 4u; constant uint OBJ_LIGHTMAP = 4u; constant uint OBJ_PROBE_GI = 8u; constant uint PROBE_BOX = 1u; constant uint PROBE_INTERIOR = 2u; constant uint MAX_PROBES = 8u; constant uint PROBE_AMBIENT_DISABLED = 0u; constant uint PROBE_AMBIENT_ENVIRONMENT = 1u; constant uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; constant uint MAX_FRAME_DECALS = 64u; constant uint MAX_OBJECT_DECALS = 8u; constant uint DECAL_LIVE_ALBEDO = 1u; constant uint DECAL_LIVE_NORMAL = 2u; constant uint DECAL_LIVE_ORM = 4u; constant uint DECAL_LIVE_EMISSION = 8u; constant uint F_INSTANCE_MIRRORED = 128u; constant uint OBJ_EMERGE = 32u; constant float EMERGE_SCALE = 1.3; constant float EMERGE_EDGE = 0.8; constant float EMERGE_DITHER = 0.12; constant uint OBJ_FADE = 64u; constant uint MAX_FRAME_FOG_VOLUMES = 16u; constant uint MAX_OBJECT_FOG_VOLUMES = 4u; constant uint FOG_SHAPE_ELLIPSOID = 0u; constant uint FOG_SHAPE_CONE = 1u; constant uint FOG_SHAPE_CYLINDER = 2u; constant uint FOG_SHAPE_BOX = 3u; constant uint FOG_SHAPE_WORLD = 4u; constant float FOG_SKY_DISTANCE = 1000000.0; constant uint FOG_LIST_ALL = 2147483648u; constant float FOG_GL_X0_ = 0.8611363; constant float FOG_GL_X1_ = 0.339981; constant float FOG_GL_W0_ = 0.3478548; constant float FOG_GL_W1_ = 0.6521452; constant uint OBJ_SKINNED = 16u; constant uint SKIN_JOINTS = 255u; constant bool HEDRA_UNSHADED = true; constant bool HEDRA_HAS_LIGHT = false; constant bool HEDRA_USES_POSITION = false; constant bool HEDRA_SKIP_VERTEX_TRANSFORM = true; constant bool HEDRA_WORLD_VERTEX_COORDS = false; constant bool HEDRA_AMBIENT_LIGHT_DISABLED = false; constant bool HEDRA_FOG_DISABLED = false; constant bool HEDRA_SHADOWS_DISABLED = true; constant bool HEDRA_ALPHA = false; constant bool HEDRA_ALPHA_SCISSOR = false; constant uint HEDRA_DIFFUSE = 0u; constant uint HEDRA_SPECULAR = 2u; constant uint HEDRA_BLEND = 0u; constant uint HEDRA_CULL = 0u; metal::float3 srgb_to_linear( metal::float3 c_1 ) { metal::float3 lo = c_1 / metal::float3(12.92); metal::float3 hi = metal::pow((c_1 + metal::float3(0.055)) / metal::float3(1.055), metal::float3(2.4)); return metal::select(hi, lo, c_1 <= metal::float3(0.04045)); } metal::float4 element_color( uint flags, metal::float4 fallback, constant Globals& G, constant ObjectU& O ) { bool local_4 = {}; bool local_5 = {}; if ((flags & F_MESH) == 0u) { return fallback; } uint overlays = G.params.y; uint _e13 = O.params.w; bool edit_object = _e13 == 1u; if ((flags & F_SEAM) != 0u) { local_4 = (overlays & OV_SEAMS) != 0u; } else { local_4 = false; } bool _e27 = local_4; if (_e27) { metal::float3 _e32 = srgb_to_linear(metal::float3(0.86, 0.0, 0.0)); return metal::float4(_e32, 1.0); } if ((flags & F_SHARP) != 0u) { local_5 = (overlays & OV_SHARP) != 0u; } else { local_5 = false; } bool _e46 = local_5; if (_e46) { metal::float3 _e51 = srgb_to_linear(metal::float3(0.0, 0.85, 0.9)); return metal::float4(_e51, 1.0); } if ((overlays & OV_SELECTION) != 0u) { if (edit_object) { if ((flags & F_SELECTED) != 0u) { metal::float4 _e64 = G.select_color; return _e64; } metal::float4 _e67 = G.wire_color; return _e67; } uint _e71 = O.params.x; if (_e71 == 1u) { metal::float4 _e76 = G.select_color; metal::float4 _e79 = G.active_color; uint _e83 = O.params.y; return (_e83 == 1u) ? _e79 : _e76; } } metal::float4 _e89 = G.wire_color; return _e89; } metal::float4 to_view( metal::float3 p, float pull, constant Globals& G, constant ObjectU& O ) { metal::float4 v = {}; metal::float4x4 _e4 = G.view; metal::float4x4 _e7 = O.model; v = (_e4 * _e7) * metal::float4(p, 1.0); float _e15 = v.z; v.z = _e15 * (1.0 - pull); metal::float4 _e19 = v; return _e19; } metal::float3 linear_to_srgb( metal::float3 c_2 ) { metal::float3 lo_1 = c_2 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(c_2, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, c_2 <= metal::float3(0.0031308)); } metal::float4 target_color( metal::float4 c_3, constant Globals& G ) { metal::float4 k_12 = metal::clamp(c_3, metal::float4(0.0), metal::float4(1.0)); float _e9 = G.fparams.w; if (_e9 > 0.5) { metal::float3 _e13 = linear_to_srgb(k_12.xyz); return metal::float4(_e13, k_12.w); } return k_12; } uint object_light_count( constant ObjectU& O ) { uint _e3 = O.lights.z; return metal::min(_e3, MAX_OBJECT_LIGHTS); } uint object_light( uint k, constant ObjectU& O ) { uint _e4 = O.lights.y; uint _e8 = O.lights.x; uint word = (k < 4u) ? _e8 : _e4; return metal::min((word >> ((k & 3u) * 8u)) & 255u, 63u); } metal::float3 light_count_color( constant ObjectU& O ) { type_8 colors = LIGHT_COUNT_COLORS; uint _e5 = O.lights.w; metal::float3 _e9 = colors.inner[metal::min(unsigned(metal::min(_e5, 9u)), 9u)]; return _e9; } uint pool_sun_count( constant LitU& Lit ) { uint _e3 = Lit.dirs.z; return metal::min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun( uint k_1, constant LitU& Lit ) { uint _e4 = Lit.dirs.y; uint _e8 = Lit.dirs.x; uint word_1 = (k_1 < 4u) ? _e8 : _e4; return metal::min((word_1 >> ((k_1 & 3u) * 8u)) & 255u, 63u); } uint decal_count( constant ObjectU& O ) { uint _e3 = O.decals.z; return metal::min(_e3, MAX_OBJECT_DECALS); } uint decal_entry( uint k_2, constant ObjectU& O ) { uint _e4 = O.decals.y; uint _e8 = O.decals.x; uint word_2 = (k_2 < 4u) ? _e8 : _e4; return (word_2 >> ((k_2 & 3u) * 8u)) & 255u; } float decal_level( DecalEntryU e, metal::float3 world, constant Globals& G, constant DecalU& Decal ) { float _e5 = Decal.lod.x; metal::float4 _e8 = G.camera_pos; float _e15 = Decal.lod.y; float pixel_1 = _e5 * ((_e15 > 0.5) ? 1.0 : metal::length(world - _e8.xyz)); uint _e24 = Decal.counts.y; float top = static_cast(metal::max(_e24, 1u) - 1u); return metal::clamp(metal::log2(metal::max(pixel_1 / metal::max(e.axis_y.w, 0.000001), 1.0)), 0.0, top); } metal::float4 decal_texel( uint layer, metal::float2 uv, float level, bool live, metal::texture2d_array t_decals, metal::sampler s_decals ) { metal::float4 _e11 = t_decals.sample(s_decals, uv, static_cast(layer - 1u), metal::level(live ? 0.0 : level)); return _e11; } DecalSurface apply_decals( metal::float3 world_1, metal::float3 n_geo, DecalSurface surf, constant Globals& G, constant ObjectU& O, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { DecalSurface out_s = {}; uint k_3 = 0u; bool local_6 = {}; float fade = {}; out_s = surf; uint _e4 = decal_count(O); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { uint _e197 = k_3; k_3 = _e197 + 1u; } loop_init = false; uint _e7 = k_3; if (_e7 < _e4) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11, O); DecalEntryU e_2 = Decal.entries.inner[metal::min(unsigned(metal::min(_e12, 63u)), 63u)]; metal::float3 uvw = (e_2.to_local * metal::float4(world_1, 1.0)).xyz; if (metal::all(uvw >= metal::float3(0.0, -1.0, 0.0))) { local_6 = metal::all(uvw <= metal::float3(1.0)); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = metal::pow(1.0 - metal::abs(uvw.y), (uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y); if (e_2.fades.z > 0.0) { float _e55 = fade; fade = _e55 * metal::smoothstep(e_2.fades.z, 1.0, (metal::dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5); } metal::float2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1, G, Decal); uint live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { metal::float4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, (live_1 & DECAL_LIVE_ALBEDO) != 0u, t_decals, s_decals); metal::float3 _e84 = srgb_to_linear(_e82.xyz); metal::float4 a_2 = metal::float4(_e84, _e82.w) * e_2.modulate; float _e90 = fade; float alpha = a_2.w * _e90; metal::float3 _e94 = out_s.base; out_s.base = metal::mix(_e94, a_2.xyz, alpha * e_2.fades.w); if (e_2.layers.y > 0u) { metal::float4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, (live_1 & DECAL_LIVE_NORMAL) != 0u, t_decals, s_decals); float nx = (_e110.x * 2.0) - 1.0; float ny = 1.0 - (_e110.y * 2.0); float nz = metal::sqrt(metal::max(0.0, (1.0 - (nx * nx)) - (ny * ny))); metal::float3 dn = metal::normalize(((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny)); metal::float3 _e143 = out_s.normal; out_s.normal = metal::normalize(metal::mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { metal::float4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, (live_1 & DECAL_LIVE_ORM) != 0u, t_decals, s_decals); float _e159 = out_s.occlusion; out_s.occlusion = metal::mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = metal::mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = metal::mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { metal::float4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, (live_1 & DECAL_LIVE_EMISSION) != 0u, t_decals, s_decals); metal::float3 _e184 = out_s.emission; metal::float3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = _e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193); } } } float _e201 = out_s.roughness; out_s.roughness = metal::clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = metal::clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx( float nh, float a2_ ) { float d_12 = ((nh * nh) * (a2_ - 1.0)) + 1.0; return a2_ / ((PI * d_12) * d_12); } float v_smith( float nl, float nv, float a2_1 ) { float gv = nl * metal::sqrt(((nv * nv) * (1.0 - a2_1)) + a2_1); float g_l = nv * metal::sqrt(((nl * nl) * (1.0 - a2_1)) + a2_1); return 0.5 / metal::max(gv + g_l, 0.0001); } metal::float3 f_schlick( metal::float3 f0_, float vh ) { return f0_ + ((metal::float3(1.0) - f0_) * metal::pow(1.0 - vh, 5.0)); } metal::float3 light_specular( metal::float3 n, metal::float3 v_1, metal::float3 l, metal::float3 radiance, metal::float3 diffuse, metal::float3 f0_1, float a2_2, float specular ) { float nl_2 = metal::dot(n, l); if (nl_2 <= 0.0) { return metal::float3(0.0); } metal::float3 h = metal::normalize(l + v_1); float nh_1 = metal::max(metal::dot(n, h), 0.0); float vh_1 = metal::max(metal::dot(v_1, h), 0.0); float nv_3 = metal::max(metal::dot(n, v_1), 0.0001); metal::float3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); metal::float3 spec = (_e25 * _e26) * _e24; return (((diffuse / metal::float3(3.1415927)) + (spec * specular)) * radiance) * nl_2; } metal::float3 sky( metal::float3 dir, constant LitU& Lit ) { metal::float4 _e4 = Lit.up; float a_3 = metal::acos(metal::clamp(metal::dot(metal::normalize(dir), _e4.xyz), -1.0, 1.0)); if (a_3 <= 1.5707964) { float c_23 = 1.0 - (a_3 / 1.5707964); float k_13 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_23, 0.000001), 6.6666665), 0.0, 1.0); metal::float4 _e30 = Lit.sky_horizon; metal::float4 _e34 = Lit.sky_top; return metal::mix(_e30.xyz, _e34.xyz, k_13); } float c_24 = (a_3 - 1.5707964) / 1.5707964; float k_14 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_24, 0.000001), 50.0), 0.0, 1.0); metal::float4 _e54 = Lit.ground_horizon; metal::float4 _e58 = Lit.ground_bottom; return metal::mix(_e54.xyz, _e58.xyz, k_14); } metal::float3 filmic_curve( metal::float3 x ) { return (((x * ((0.88 * x) + metal::float3(0.1 * 0.6))) + metal::float3(0.2 * 0.01)) / ((x * ((0.88 * x) + metal::float3(0.6))) + metal::float3(0.2 * 0.3))) - metal::float3(0.01 / 0.3); } metal::float3 aces_curve( metal::float3 c_4, float white ) { metal::float3 x_2 = metal::float3(1.8 * metal::dot(metal::float3(0.59719, 0.35458, 0.04823), c_4), 1.8 * metal::dot(metal::float3(0.076, 0.90834, 0.01566), c_4), 1.8 * metal::dot(metal::float3(0.0284, 0.13383, 0.83777), c_4)); metal::float3 t_2 = ((x_2 * (x_2 + metal::float3(0.0245786))) - metal::float3(0.000090537)) / ((x_2 * ((0.983729 * x_2) + metal::float3(0.432951))) + metal::float3(0.238081)); metal::float3 o_5 = metal::float3(metal::dot(metal::float3(1.60475, -0.53108, -0.07367), t_2), metal::dot(metal::float3(-0.10208, 1.10813, -0.00605), t_2), metal::dot(metal::float3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = 1.8 * white; float wt = ((w_1 * (w_1 + 0.0245786)) - 0.000090537) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081); return o_5 / metal::float3(wt); } metal::float3 agx_curve( metal::float3 c_5 ) { metal::float3 v_2 = {}; metal::float3x3 inset = metal::float3x3(metal::float3(0.54490817, 0.14044006, 0.08882741), metal::float3(0.37377945, 0.7541096, 0.17887713), metal::float3(0.08138498, 0.10543358, 0.73225)); metal::float3x3 outset = metal::float3x3(metal::float3(1.964551, -0.29932243, -0.16436833), metal::float3(-0.85585845, 1.3264511, -0.23822464), metal::float3(-0.10886711, -0.02708402, 1.4026654)); v_2 = inset * metal::max(c_5, metal::float3(0.0000000002)); metal::float3 _e34 = v_2; v_2 = (metal::clamp(metal::log2(_e34), metal::float3(-12.473931), metal::float3(4.0260687)) - metal::float3(-12.473931)) / metal::float3(4.0260687 - -12.473931); metal::float3 _e44 = v_2; metal::float3 _e45 = v_2; metal::float3 x2_ = _e44 * _e45; metal::float3 x4_ = x2_ * x2_; metal::float3 _e48 = v_2; metal::float3 _e56 = v_2; metal::float3 _e64 = v_2; metal::float3 p_7 = (((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_); return outset * metal::pow(metal::max(p_7, metal::float3(0.0000000001)), metal::float3(2.4)); } metal::float3 tonemap( metal::float3 c_in, constant LitU& Lit ) { float _e4 = Lit.tone.x; metal::float3 c_25 = metal::max(c_in * _e4, metal::float3(0.0)); float white_1 = Lit.tone.y; uint mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return ((white_1 * c_25) + c_25) / ((c_25 * white_1) + metal::float3(white_1)); } if (mode == TONEMAP_FILMIC) { metal::float3 _e27 = filmic_curve(c_25); metal::float3 _e29 = filmic_curve(metal::float3(white_1)); return _e27 / _e29; } if (mode == TONEMAP_ACES) { metal::float3 _e33 = aces_curve(c_25, white_1); return _e33; } if (mode == TONEMAP_AGX) { metal::float3 _e36 = agx_curve(c_25); return _e36; } return c_25; } float emerge_hash( metal::float3 p_1 ) { metal::float3 q = {}; q = metal::fract(p_1 * 0.1031); metal::float3 _e5 = q; metal::float3 _e6 = q; metal::float3 _e7 = q; q = _e5 + metal::float3(metal::dot(_e6, _e7.zyx + metal::float3(31.32))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return metal::fract((_e16 + _e18) * _e21); } float emerge_noise( metal::float3 p_2 ) { metal::float3 i_13 = metal::floor(p_2); metal::float3 f = metal::fract(p_2); metal::float3 u_1 = (f * f) * (metal::float3(3.0) - (2.0 * f)); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 0.0)); float _e24 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 0.0)); float _e30 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 0.0)); float a_4 = metal::mix(metal::mix(_e10, _e16, u_1.x), metal::mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash(i_13 + metal::float3(0.0, 0.0, 1.0)); float _e46 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 1.0)); float _e54 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 1.0)); float _e60 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 1.0)); float b_2 = metal::mix(metal::mix(_e40, _e46, u_1.x), metal::mix(_e54, _e60, u_1.x), u_1.y); return metal::mix(a_4, b_2, u_1.z); } float emerge_reveal( metal::float3 world_2, metal::float2 pixel, constant ObjectU& O ) { float n_1 = {}; uint _e6 = O.extra.x; if (SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true) { return 1.0; } float e_3 = O.normal[0].w; metal::float3 w_2 = world_2 * EMERGE_SCALE; float _e21 = emerge_noise(w_2); float _e29 = emerge_noise((w_2 * 2.7) + metal::float3(17.1)); n_1 = metal::smoothstep(0.2, 0.8, (_e21 * 0.65) + (_e29 * 0.35)); if (pixel.x >= 0.0) { float ign = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(pixel), metal::float2(0.06711056, 0.00583715)))); float _e49 = n_1; n_1 = metal::clamp(_e49 + ((ign - 0.5) * EMERGE_DITHER), 0.0, 1.0); } float _e60 = n_1; return ((e_3 * 1.8) - _e60) / EMERGE_EDGE; } metal::float3 emerge_tint( metal::float3 c_6, float r, constant ObjectU& O, constant LitU& Lit ) { bool local_7 = {}; uint _e6 = O.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = r >= 1.0; } else { local_7 = true; } bool _e17 = local_7; if (SPEC_EMERGE ? _e17 : true) { return c_6; } uint _e23 = O.extra.w; metal::float3 _e26 = srgb_to_linear(metal::unpack_unorm4x8_to_float(_e23).xyz); metal::float3 _e27 = tonemap(_e26, Lit); return metal::mix(_e27, c_6, metal::smoothstep(0.0, 1.0, r)); } metal::float3 item_fade( metal::float3 c_7, constant ObjectU& O, constant LitU& Lit ) { uint _e5 = O.extra.x; if (SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true) { return c_7; } metal::float4 f_1 = O.normal[3]; metal::float3 _e17 = tonemap(f_1.xyz, Lit); return metal::mix(c_7, _e17, f_1.w); } metal::float3 sky_dir( metal::float3 d, constant SkyU& Sky ) { metal::float4x4 _e3 = Sky.to_sky; return metal::normalize((_e3 * metal::float4(d, 0.0)).xyz); } float sky_curve( float c_8, float curve ) { return metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_8, 0.000001), 1.0 / curve), 0.0, 1.0); } metal::float3 procedural_sky( metal::float3 d_1, constant SkyU& Sky ) { metal::float3 sky_1 = {}; uint i = 0u; float v_6 = metal::acos(metal::clamp(d_1.y, -1.0, 1.0)); metal::float4 _e8 = Sky.sky_horizon; metal::float4 _e12 = Sky.sky_top; float _e21 = Sky.sky_top.w; float _e22 = sky_curve(1.0 - (v_6 / 1.5707964), _e21); float _e27 = Sky.sky_horizon.w; sky_1 = metal::mix(_e8.xyz, _e12.xyz, _e22) * _e27; uint _e33 = Sky.flags.z; uint suns = metal::min(_e33, SKY_SUNS); uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { uint _e79 = i; i = _e79 + 1u; } loop_init_1 = false; uint _e38 = i; if (_e38 < suns) { } else { break; } { uint _e42 = i; SunU sun = Sky.suns.inner[metal::min(unsigned(_e42), 3u)]; float size = sun.direction.w; float a_5 = metal::acos(metal::clamp(metal::dot(sun.direction.xyz, d_1), -1.0, 1.0)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { float _e60 = Sky.sun.x; if (a_5 < _e60) { float _e66 = Sky.sun.x; float c2_ = (a_5 - size) / (_e66 - size); metal::float3 _e71 = sky_1; float _e75 = Sky.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = metal::mix(sun.color.xyz, _e71, _e76); } } } } metal::float4 _e83 = Sky.ground_horizon; metal::float4 _e87 = Sky.ground_bottom; float _e96 = Sky.ground_bottom.w; float _e97 = sky_curve((v_6 - 1.5707964) / 1.5707964, _e96); float _e102 = Sky.ground_horizon.w; metal::float3 ground = metal::mix(_e83.xyz, _e87.xyz, _e97) * _e102; metal::float3 _e104 = sky_1; float _e112 = Sky.sun.z; return ((d_1.y >= 0.0) ? _e104 : ground) * _e112; } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } int naga_mod(int lhs, int rhs) { int divisor = metal::select(rhs, 1, (lhs == (-2147483647 - 1) & rhs == -1) | (rhs == 0)); return lhs - (lhs / divisor) * divisor; } metal::float3 panorama( metal::float3 d_2, constant SkyU& Sky, metal::texture2d t_panorama, metal::sampler s_panorama ) { metal::float2 uv_4 = metal::float2(metal::fract(metal::atan2(d_2.x, -(d_2.z)) / 6.2831855), metal::acos(metal::clamp(d_2.y, -1.0, 1.0)) / PI); uint _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { metal::float4 _e27 = t_panorama.sample(s_panorama, uv_4, metal::level(0.0)); float _e32 = Sky.sun.z; return _e27.xyz * _e32; } metal::int2 size_1 = static_cast(metal::uint2(t_panorama.get_width(0), t_panorama.get_height(0))); int x_3 = naga_mod(as_type(as_type(naga_mod(naga_f2i32(metal::floor(uv_4.x * static_cast(size_1.x))), size_1.x)) + as_type(size_1.x)), size_1.x); int y = metal::clamp(naga_f2i32(metal::floor(uv_4.y * static_cast(size_1.y))), 0, as_type(as_type(size_1.y) - as_type(1))); uint clamped_lod_e64 = metal::min(uint(0), t_panorama.get_num_mip_levels() - 1); metal::float4 _e64 = t_panorama.read(metal::min(metal::uint2(metal::int2(x_3, y)), metal::uint2(t_panorama.get_width(clamped_lod_e64), t_panorama.get_height(clamped_lod_e64)) - 1), clamped_lod_e64); float _e69 = Sky.sun.z; return _e64.xyz * _e69; } metal::float3 sh_irradiance( metal::float3 n_2, constant SkyU& Sky ) { metal::float3 c_9 = {}; metal::float4 _e4 = Sky.sh.inner[0]; c_9 = _e4.xyz * 0.282095; metal::float3 _e9 = c_9; metal::float4 _e13 = Sky.sh.inner[1]; c_9 = _e9 + (_e13.xyz * (0.488603 * n_2.y)); metal::float3 _e20 = c_9; metal::float4 _e24 = Sky.sh.inner[2]; c_9 = _e20 + (_e24.xyz * (0.488603 * n_2.z)); metal::float3 _e31 = c_9; metal::float4 _e35 = Sky.sh.inner[3]; c_9 = _e31 + (_e35.xyz * (0.488603 * n_2.x)); metal::float3 _e42 = c_9; metal::float4 _e46 = Sky.sh.inner[4]; c_9 = _e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y)); metal::float3 _e55 = c_9; metal::float4 _e59 = Sky.sh.inner[5]; c_9 = _e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z)); metal::float3 _e68 = c_9; metal::float4 _e72 = Sky.sh.inner[6]; c_9 = _e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0))); metal::float3 _e85 = c_9; metal::float4 _e89 = Sky.sh.inner[7]; c_9 = _e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z)); metal::float3 _e98 = c_9; metal::float4 _e102 = Sky.sh.inner[8]; c_9 = _e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y)))); metal::float3 _e115 = c_9; return metal::max(_e115, metal::float3(0.0)); } metal::float3 radiance_1( metal::float3 d_3, float roughness, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { uint _e5 = Sky.flags.y; float top_1 = static_cast(metal::max(_e5, 1u) - 1u); metal::float4 _e14 = t_radiance.sample(s_radiance, d_3, metal::level(roughness * top_1)); return _e14.xyz; } metal::float2 env_brdf_approx( float roughness_1, float nv_1 ) { metal::float4 r_6 = (roughness_1 * metal::float4(-1.0, -0.0275, -0.572, 0.022)) + metal::float4(1.0, 0.0425, 1.04, -0.04); float a004_ = (metal::min(r_6.x * r_6.x, metal::exp2(-9.28 * nv_1)) * r_6.x) + r_6.y; return (metal::float2(-1.04, 1.04) * a004_) + r_6.zw; } float pow8_( float x_1 ) { float x2_1 = metal::max(x_1, 0.0) * metal::max(x_1, 0.0); float x4_1 = x2_1 * x2_1; return x4_1 * x4_1; } metal::float3 fog_sun_scatter( metal::float3 fc, metal::float3 dir_1, constant LitU& Lit, constant SkyU& Sky ) { metal::float3 c_10 = {}; uint k_4 = 0u; c_10 = fc; float _e6 = Sky.fog_color.w; if (_e6 > 0.001) { uint _e9 = pool_sun_count(Lit); uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { uint _e51 = k_4; k_4 = _e51 + 1u; } loop_init_2 = false; uint _e12 = k_4; if (_e12 < _e9) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14, Lit); uint _e21 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].info.x; if (_e21 == LIGHT_DIRECTIONAL) { metal::float3 _e24 = c_10; metal::float4 _e29 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].color; metal::float4 _e38 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].direction; float _e42 = pow8_(metal::dot(dir_1, -(_e38.xyz))); float _e47 = Sky.fog_color.w; c_10 = _e24 + (((_e29.xyz / metal::float3(3.1415927)) * _e42) * _e47); } } } } metal::float3 _e53 = c_10; return _e53; } metal::float3 sky_fog( metal::float3 c_11, metal::float3 dir_2, constant LitU& Lit, constant SkyU& Sky ) { metal::float4 _e4 = Sky.fog_color; float _e9 = Sky.fog_depth.w; metal::float3 _e11 = fog_sun_scatter(metal::mix(_e4.xyz, c_11, _e9), dir_2, Lit, Sky); float _e15 = Sky.fog.y; return metal::mix(c_11, _e11, _e15); } metal::float3 surface_fog( metal::float3 c_12, metal::float3 world_3, metal::float3 dir_3, constant Globals& G, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { float dist = {}; float amount = {}; metal::float3 fc_1 = {}; bool local_8 = {}; metal::float4x4 _e5 = G.view; float depth = -((_e5 * metal::float4(world_3, 1.0)).z); metal::float4 _e13 = G.camera_pos; dist = metal::distance(world_3, _e13.xyz); float _e20 = Sky.fog_origin.w; if (_e20 > 0.5) { float _e26 = Sky.fog_origin.x; dist = metal::max(depth - _e26, 0.0); } uint _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { float _e42 = Sky.fog_depth.x; float _e46 = Sky.fog_depth.y; float _e47 = dist; float z = metal::smoothstep(_e42, _e46, _e47); float _e54 = Sky.fog_depth.z; float _e63 = Sky.fog.x; amount = ((z > 0.0) ? metal::pow(metal::max(z, 0.000001), _e54) : 0.0) * _e63; } else { float _e65 = dist; float _e70 = Sky.fog.x; amount = 1.0 - metal::exp(metal::min(0.0, -(_e65) * _e70)); } float _e80 = Sky.fog.w; if (metal::abs(_e80) >= 0.0001) { metal::float4 _e86 = Lit.up; float y_1 = metal::dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = Sky.fog.z; float _e98 = Sky.fog.w; amount = metal::max(_e89, 1.0 - metal::exp(metal::min(0.0, (y_1 - _e93) * _e98))); } float _e106 = amount; amount = metal::clamp(_e106, 0.0, 1.0); metal::float4 _e112 = Sky.fog_color; fc_1 = _e112.xyz; uint _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { float _e129 = Sky.fog_depth.w; local_8 = _e129 > 0.0; } else { local_8 = false; } bool _e133 = local_8; if (SPEC_AMBIENT_SKY ? _e133 : false) { float _e139 = Sky.fog_origin.y; float _e144 = Sky.fog_origin.z; float _e148 = Sky.fog_origin.y; float t_3 = metal::clamp((depth - _e139) / metal::max(_e144 - _e148, 0.000001), 0.0, 1.0); uint _e159 = Sky.flags.y; float top_2 = static_cast(metal::max(_e159, 2u) - 1u); float rough = metal::mix(1.0 / top_2, 1.0, 1.0 - t_3); metal::float3 _e171 = fc_1; metal::float3 _e172 = sky_dir(dir_3, Sky); metal::float3 _e173 = radiance_1(_e172, rough, Sky, t_radiance, s_radiance); float _e177 = Sky.sun.w; float _e182 = Sky.fog_depth.w; fc_1 = metal::mix(_e171, _e173 * _e177, _e182); } metal::float3 _e184 = fc_1; metal::float3 _e185 = fog_sun_scatter(_e184, dir_3, Lit, Sky); fc_1 = _e185; metal::float3 _e186 = fc_1; float _e187 = amount; return metal::mix(c_12, _e186, _e187); } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::float2 fog_chord( uint k_5, metal::float3 o, metal::float3 d_4, float t_end_ray, constant FogU& Fog ) { metal::float2 r_1 = {}; float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].albedo.w; uint shape = naga_f2u32(_e9); float _e16 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].emission.w; float t_end_1 = metal::min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return metal::float2(0.0, t_end_1); } metal::float4 _e26 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].size; metal::float3 h_1 = _e26.xyz * 0.5; metal::float3 dd = metal::select(d_4, metal::float3(0.000000000001), metal::abs(d_4) < metal::float3(0.000000000001)); metal::float3 sa = (-(h_1) - o) / dd; metal::float3 sb = (h_1 - o) / dd; metal::float3 s_in = metal::min(sa, sb); metal::float3 s_out = metal::max(sa, sb); r_1 = metal::float2(metal::max(0.0, s_in.y), metal::min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = metal::float2(metal::max(metal::max(_e60, s_in.x), s_in.z), metal::min(metal::min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = metal::dot(d_4 / h_1, d_4 / h_1); b = metal::dot(o / h_1, d_4 / h_1); c_13 = metal::dot(o / h_1, o / h_1) - 1.0; } else { float rad = metal::min(h_1.x, h_1.z); float k_15 = (shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0; float w_3 = h_1.y - o.y; a = ((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y); b = ((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y); c_13 = ((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad)); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = (_e139 * _e140) - (_e142 * _e143); float _e146 = a; if (metal::abs(_e146) < 0.000000000001) { float _e150 = b; if (metal::abs(_e150) < 0.000000000001) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = (_e157 > 0.0) ? -1.0 : _e156; } else { float _e162 = b; if (_e162 > 0.0) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = metal::min(_e167, -(_e168) / (2.0 * _e170)); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = metal::max(_e177, -(_e178) / (2.0 * _e180)); } } } else { if (disc < 0.0) { float _e189 = r_1.y; float _e190 = a; r_1.y = (_e190 > 0.0) ? -1.0 : _e189; } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = metal::min((-(_e195) - metal::sqrt(disc)) / _e199, (-(_e201) + metal::sqrt(disc)) / _e205); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = metal::max((-(_e208) - metal::sqrt(disc)) / _e212, (-(_e214) + metal::sqrt(disc)) / _e218); float _e221 = a; if (_e221 > 0.0) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = metal::float2(metal::max(_e225, lo_2), metal::min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if (_e232 < metal::min(_e234, lo_2)) { float _e239 = r_1.y; r_1.y = metal::min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = metal::max(_e243, hi_2); } } } } metal::float2 _e245 = r_1; return _e245; } float fog_density( uint k_6, metal::float3 p_3, metal::float3 lp, constant FogU& Fog ) { float rho = {}; float sdf = 0.0; FogEntryU e_4 = Fog.entries.inner[metal::min(unsigned(k_6), 15u)]; metal::float4 _e14 = Fog.up; rho = e_4.material.x * metal::min(metal::exp2(-(e_4.material.y) * (metal::dot(p_3, _e14.xyz) - e_4.material.w)), 1.0); if (e_4.material.z > 0.0) { uint shape_1 = naga_f2u32(e_4.albedo.w); metal::float3 h_2 = e_4.size.xyz * 0.5; float rad_1 = metal::min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { float k0_ = metal::length(lp / h_2); sdf = (k0_ * (k0_ - 1.0)) / metal::max(metal::length(lp / (h_2 * h_2)), 0.000000000001); } else { if (shape_1 == FOG_SHAPE_BOX) { metal::float3 q_3 = metal::abs(lp) - h_2; sdf = metal::length(metal::max(q_3, metal::float3(0.0))) + metal::min(metal::max(q_3.x, metal::max(q_3.y, q_3.z)), 0.0); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { metal::float2 q_4 = metal::float2(metal::length(lp.xz) - rad_1, metal::abs(lp.y) - h_2.y); sdf = metal::min(metal::max(q_4.x, q_4.y), 0.0) + metal::length(metal::max(q_4, metal::float2(0.0))); } else { metal::float2 n_11 = metal::normalize(metal::float2(1.0 / metal::max(0.001, rad_1 * 0.5), 1.0 / metal::max(0.001, h_2.y))); sdf = metal::max(metal::dot(n_11, metal::float2(metal::length(lp.xz), lp.y - h_2.y)), -(h_2.y) - lp.y); } } } float _e116 = rho; float _e117 = sdf; rho = _e116 * metal::pow(metal::clamp((-2.0 * _e117) / e_4.size.w, 0.0, 1.0), e_4.material.z); } float _e130 = rho; return _e130; } float fog_falloff_depth( uint k_7, float a_1, float b_1, float t0_, float t1_, constant FogU& Fog ) { metal::float4 m_4 = Fog.entries.inner[metal::min(unsigned(k_7), 15u)].material; float hf = m_4.y; if ((hf * b_1) == 0.0) { return (m_4.x * (t1_ - t0_)) * metal::min(metal::exp2(-(hf) * a_1), 1.0); } float s_2 = metal::clamp(-(a_1) / b_1, t0_, t1_); float lo_3 = (b_1 > 0.0) ? s_2 : t0_; float hi_3 = (b_1 > 0.0) ? t1_ : s_2; float x_4 = ((hf * metal::abs(b_1)) * (hi_3 - lo_3)) * 0.6931472; float g = (x_4 < 0.01) ? (1.0 - (x_4 * (0.5 - (x_4 * (0.16666667 - (x_4 / 24.0)))))) : ((1.0 - metal::exp(-(x_4))) / x_4); float top_3 = metal::min(metal::exp2(-(hf) * metal::max(a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3)), 0.0)), 1.0); return m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g)); } float omni_attenuation( float d_5, float inv_range, float decay ) { float nd = {}; nd = d_5 * inv_range; float _e5 = nd; float _e6 = nd; nd = _e5 * _e6; float _e8 = nd; float _e9 = nd; nd = _e8 * _e9; float _e11 = nd; nd = metal::max(1.0 - _e11, 0.0); float _e16 = nd; float _e17 = nd; nd = _e16 * _e17; float _e19 = nd; return _e19 * metal::pow(metal::max(d_5, 0.0001), -(decay)); } metal::float3 fog_light( uint n_3, metal::float3 p_4, metal::float3 dir_4, constant LitU& Lit, constant FogU& Fog ) { metal::float3 sum = {}; uint k_8 = 0u; metal::float3 l_1 = {}; float atten = {}; metal::float4 _e5 = Fog.ambient; float _e10 = Fog.params.y; sum = _e5.xyz * _e10; float g_1 = Fog.params.x; metal::uint4 lights = Fog.entries.inner[metal::min(unsigned(n_3), 15u)].lights; uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { uint _e138 = k_8; k_8 = _e138 + 1u; } loop_init_3 = false; uint _e24 = k_8; if (_e24 < metal::min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = metal::min((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u, 63u); LightU li = Lit.lights.inner[metal::min(unsigned(i_14), 63u)]; l_1 = -(li.direction.xyz); atten = 1.0; if (li.info.x != LIGHT_DIRECTIONAL) { metal::float3 rel = li.position.xyz - p_4; l_1 = rel / metal::float3(metal::max(metal::length(rel), 0.000001)); float _e72 = omni_attenuation(metal::length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { metal::float3 _e77 = l_1; float rim = metal::max(0.0001, (1.0 - metal::max(metal::dot(-(_e77), li.direction.xyz), li.spot.x)) / metal::max(1.0 - li.spot.x, 0.000001)); float _e96 = atten; atten = _e96 * (1.0 - metal::pow(rim, li.spot.y)); } } metal::float3 _e108 = l_1; float q_5 = (1.0 + (g_1 * g_1)) - ((2.0 * g_1) * metal::dot(dir_4, _e108)); metal::float3 _e112 = sum; float _e115 = atten; float _e133 = Fog.light_fog.inner[metal::min(unsigned(i_14 >> 2u), 15u)][metal::min(unsigned(i_14 & 3u), 3u)]; sum = _e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * metal::sqrt(q_5))) * _e133)); } } metal::float3 _e140 = sum; return _e140; } metal::float4 fog_entry( uint k_9, metal::float3 o_1, metal::float3 d_6, metal::float2 ch, constant LitU& Lit, constant FogU& Fog ) { float split = {}; bool local_9 = {}; bool local_10 = {}; metal::float3 q_1 = metal::float3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = {}; bool local_12 = {}; FogEntryU e_5 = Fog.entries.inner[metal::min(unsigned(k_9), 15u)]; metal::float3 lo_4 = (e_5.to_local * metal::float4(o_1, 1.0)).xyz; metal::float3 ld = (e_5.to_local * metal::float4(d_6, 0.0)).xyz; metal::float4 _e20 = Fog.up; float a_6 = metal::dot(o_1, _e20.xyz) - e_5.material.w; metal::float4 _e28 = Fog.up; float b_3 = metal::dot(d_6, _e28.xyz); bool edge = e_5.material.z > 0.0; split = (ch.x + ch.y) * 0.5; if (e_5.material.y > 0.0) { local_9 = (-(a_6) / b_3) > ch.x; } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = (-(a_6) / b_3) < ch.y; } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = -(a_6) / b_3; } uint2 loop_bound_4 = uint2(4294967295u); bool loop_init_4 = true; while(true) { if (metal::all(loop_bound_4 == uint2(0u))) { break; } loop_bound_4 -= uint2(loop_bound_4.y == 0u, 1u); if (!loop_init_4) { uint _e160 = i_1; i_1 = _e160 + 1u; } loop_init_4 = false; uint _e70 = i_1; if (_e70 < (edge ? 12u : 4u)) { } else { break; } { uint _e75 = i_1; uint j = _e75 & 3u; if (!((j == 0u))) { local_11 = j == 3u; } else { local_11 = true; } bool _e88 = local_11; float x_5 = _e88 ? FOG_GL_X0_ : FOG_GL_X1_; if (!((j == 0u))) { local_12 = j == 3u; } else { local_12 = true; } bool _e100 = local_12; float w_4 = _e100 ? FOG_GL_W0_ : FOG_GL_W1_; float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; metal::float2 seg = (_e112 < 4u) ? ch : ((_e108 < 8u) ? metal::float2(ch.x, _e106) : metal::float2(_e102, ch.y)); float half_len = (seg.y - seg.x) * 0.5; float t_4 = ((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_5) : x_5)); metal::float3 p_8 = o_1 + (d_6 * t_4); float _e136 = fog_density(k_9, p_8, lo_4 + (ld * t_4), Fog); uint _e137 = i_1; if (_e137 < 4u) { metal::float3 _e140 = q_1; metal::float3 _e143 = fog_light(k_9, p_8, d_6, Lit, Fog); q_1 = _e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * metal::clamp(_e136, 0.0, 1.0))); } else { float _e155 = tau; tau = _e155 + ((w_4 * half_len) * _e136); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y, Fog); tau = _e165; } metal::float3 _e166 = q_1; float _e167 = tau; return metal::float4(_e166, _e167); } metal::float3 fog_integrate( metal::float3 c_14, metal::float3 o_2, metal::float3 d_7, float t_end, uint list, constant LitU& Lit, constant FogU& Fog ) { type_28 at = {}; type_29 chords = {}; uint m = 0u; uint i_2 = 0u; bool local_13 = {}; type_30 parts = {}; uint i_3 = 0u; uint n_4 = 0u; float avail = {}; uint i_4 = {}; uint i_5 = {}; metal::float3 q_2 = metal::float3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all = list >= FOG_LIST_ALL; uint2 loop_bound_5 = uint2(4294967295u); bool loop_init_5 = true; while(true) { if (metal::all(loop_bound_5 == uint2(0u))) { break; } loop_bound_5 -= uint2(loop_bound_5.y == 0u, 1u); if (!loop_init_5) { uint _e72 = i_2; i_2 = _e72 + 1u; } loop_init_5 = false; uint _e13 = i_2; uint _e18 = Fog.counts.x; if (_e13 < (all ? metal::min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u)) { } else { break; } { uint _e23 = i_2; uint byte = (list >> ((_e23 & 3u) * 8u)) & 127u; if (!(all)) { local_13 = byte == 0u; } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = all ? _e42 : (metal::min(byte, MAX_FRAME_FOG_VOLUMES) - 1u); metal::float4x4 to_local = Fog.entries.inner[metal::min(unsigned(k_16), 15u)].to_local; metal::float2 _e57 = fog_chord(k_16, (to_local * metal::float4(o_2, 1.0)).xyz, (to_local * metal::float4(d_7, 0.0)).xyz, t_end, Fog); if (_e57.y > _e57.x) { uint _e61 = m; at.inner[metal::min(unsigned(_e61), 3u)] = k_16; uint _e63 = m; chords.inner[metal::min(unsigned(_e63), 3u)] = _e57; uint _e66 = m; m = _e66 + 1u; uint _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } } uint2 loop_bound_6 = uint2(4294967295u); bool loop_init_6 = true; while(true) { if (metal::all(loop_bound_6 == uint2(0u))) { break; } loop_bound_6 -= uint2(loop_bound_6.y == 0u, 1u); if (!loop_init_6) { uint _e90 = i_3; i_3 = _e90 + 1u; } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if (_e77 < _e78) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at.inner[metal::min(unsigned(_e82), 3u)]; uint _e85 = i_3; metal::float2 _e87 = chords.inner[metal::min(unsigned(_e85), 3u)]; metal::float4 _e88 = fog_entry(_e84, o_2, d_7, _e87, Lit, Fog); parts.inner[metal::min(unsigned(_e80), 3u)] = _e88; } } uint2 loop_bound_7 = uint2(4294967295u); bool loop_init_7 = true; while(true) { if (metal::all(loop_bound_7 == uint2(0u))) { break; } loop_bound_7 -= uint2(loop_bound_7.y == 0u, 1u); if (!loop_init_7) { uint _e221 = n_4; n_4 = _e221 + 1u; } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if (_e94 < _e95) { } else { break; } { uint _e97 = n_4; float _e100 = parts.inner[metal::min(unsigned(_e97), 3u)].w; if (_e100 < 0.0) { avail = 0.0; i_4 = 0u; uint2 loop_bound_8 = uint2(4294967295u); bool loop_init_8 = true; while(true) { if (metal::all(loop_bound_8 == uint2(0u))) { break; } loop_bound_8 -= uint2(loop_bound_8.y == 0u, 1u); if (!loop_init_8) { uint _e153 = i_4; i_4 = _e153 + 1u; } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if (_e107 < _e108) { } else { break; } { uint _e110 = i_4; float _e113 = chords.inner[metal::min(unsigned(_e110), 3u)].y; uint _e114 = n_4; float _e117 = chords.inner[metal::min(unsigned(_e114), 3u)].y; uint _e119 = i_4; float _e122 = chords.inner[metal::min(unsigned(_e119), 3u)].x; uint _e123 = n_4; float _e126 = chords.inner[metal::min(unsigned(_e123), 3u)].x; uint _e131 = i_4; float _e134 = chords.inner[metal::min(unsigned(_e131), 3u)].y; uint _e135 = i_4; float _e138 = chords.inner[metal::min(unsigned(_e135), 3u)].x; float share = metal::max(metal::min(_e113, _e117) - metal::max(_e122, _e126), 0.0) / metal::max(_e134 - _e138, 0.000001); float _e143 = avail; uint _e144 = i_4; float _e147 = parts.inner[metal::min(unsigned(_e144), 3u)].w; avail = _e143 + (metal::max(_e147, 0.0) * share); } } uint _e155 = n_4; float _e158 = parts.inner[metal::min(unsigned(_e155), 3u)].w; float _e160 = avail; float f_2 = metal::min(-(_e158) / metal::max(_e160, 0.000000000001), 1.0); i_5 = 0u; uint2 loop_bound_9 = uint2(4294967295u); bool loop_init_9 = true; while(true) { if (metal::all(loop_bound_9 == uint2(0u))) { break; } loop_bound_9 -= uint2(loop_bound_9.y == 0u, 1u); if (!loop_init_9) { uint _e218 = i_5; i_5 = _e218 + 1u; } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if (_e168 < _e169) { } else { break; } { uint _e171 = i_5; float _e174 = parts.inner[metal::min(unsigned(_e171), 3u)].w; if (_e174 > 0.0) { uint _e177 = i_5; float _e180 = chords.inner[metal::min(unsigned(_e177), 3u)].y; uint _e181 = n_4; float _e184 = chords.inner[metal::min(unsigned(_e181), 3u)].y; uint _e186 = i_5; float _e189 = chords.inner[metal::min(unsigned(_e186), 3u)].x; uint _e190 = n_4; float _e193 = chords.inner[metal::min(unsigned(_e190), 3u)].x; uint _e198 = i_5; float _e201 = chords.inner[metal::min(unsigned(_e198), 3u)].y; uint _e202 = i_5; float _e205 = chords.inner[metal::min(unsigned(_e202), 3u)].x; float share_1 = metal::max(metal::min(_e180, _e184) - metal::max(_e189, _e193), 0.0) / metal::max(_e201 - _e205, 0.000001); uint _e210 = i_5; metal::float4 _e212 = parts.inner[metal::min(unsigned(_e210), 3u)]; parts.inner[metal::min(unsigned(_e210), 3u)] = _e212 * (1.0 - (share_1 * f_2)); } } } } } } uint2 loop_bound_10 = uint2(4294967295u); bool loop_init_10 = true; while(true) { if (metal::all(loop_bound_10 == uint2(0u))) { break; } loop_bound_10 -= uint2(loop_bound_10.y == 0u, 1u); if (!loop_init_10) { uint _e252 = i_6; i_6 = _e252 + 1u; } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if (_e230 < _e231) { } else { break; } { uint _e233 = i_6; float _e236 = parts.inner[metal::min(unsigned(_e233), 3u)].w; if (_e236 > 0.0) { metal::float3 _e239 = q_2; uint _e240 = i_6; metal::float4 _e242 = parts.inner[metal::min(unsigned(_e240), 3u)]; q_2 = _e239 + _e242.xyz; float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts.inner[metal::min(unsigned(_e246), 3u)].w; tau_1 = _e245 + _e249; } } } float _e254 = tau_1; float t_5 = metal::exp(-(_e254)); metal::float3 _e258 = q_2; float _e261 = tau_1; return (c_14 * t_5) + (_e258 * ((1.0 - t_5) / metal::max(_e261, 0.00001))); } metal::float3 fog_volumes( metal::float3 c_15, metal::float3 world_4, uint list_1, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_6 = (_e36 > 0.5) ? (world_4 - (back * (_e26 * metal::float4(world_4, 1.0)).z)) : _e22.xyz; float len = metal::length(world_4 - o_6); metal::float3 _e47 = fog_integrate(c_15, o_6, (world_4 - o_6) / metal::float3(metal::max(len, 0.000001)), len, list_1, Lit, Fog); return (len > 0.0) ? _e47 : c_15; } metal::float3 sky_fog_volumes( metal::float3 c_16, metal::float3 near_point, metal::float3 dir_5, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back_1 = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_7 = (_e36 > 0.5) ? (near_point - (back_1 * (_e26 * metal::float4(near_point, 1.0)).z)) : _e22.xyz; uint _e44 = Fog.counts.y; metal::float3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44, Lit, Fog); float _e49 = Fog.params.z; return metal::mix(c_16, _e45, _e49); } float shadow_factor( uint i_7, metal::float3 world_5, metal::float3 n_geo_1, metal::float3 l_2, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow ) { uint part = 0u; uint c_17 = 0u; bool local_14 = {}; bool local_15 = {}; bool local_16 = {}; float vis = 0.0; int dy = -1; int dx = {}; uint kind = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.x; metal::float4 _e14 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].position; metal::float3 light_pos = _e14.xyz; uint _e21 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.w; uint slot = metal::min(_e21, 15u); metal::float4 params = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].params; uint first = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.x; uint _e40 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.y; uint count = metal::max(_e40, 1u); metal::float4x4 _e45 = G.view; float view_depth = -((_e45 * metal::float4(world_5, 1.0)).z); if (kind == LIGHT_DIRECTIONAL) { float _e60 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade.y; if (view_depth > _e60) { return 1.0; } part = count - 1u; uint2 loop_bound_11 = uint2(4294967295u); bool loop_init_11 = true; while(true) { if (metal::all(loop_bound_11 == uint2(0u))) { break; } loop_bound_11 -= uint2(loop_bound_11.y == 0u, 1u); if (!loop_init_11) { uint _e79 = c_17; c_17 = _e79 + 1u; } loop_init_11 = false; uint _e67 = c_17; if (_e67 < count) { } else { break; } { uint _e73 = c_17; float _e75 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].splits[metal::min(unsigned(_e73), 3u)]; if (view_depth <= _e75) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; metal::float4 texel = Shadow.tiles.inner[metal::min(unsigned(metal::min(first + metal::min(_e83, count - 1u), 15u)), 15u)].texel; float t_6 = texel.x + (texel.y * metal::distance(world_5, light_pos)); metal::float3 p_9 = (world_5 + (n_geo_1 * ((params.y * metal::max(params.z, 1.0)) * t_6))) + (l_2 * (params.x * t_6)); if (kind == LIGHT_OMNI) { metal::float3 d_13 = p_9 - light_pos; metal::float3 a_7 = metal::abs(d_13); if (a_7.x >= a_7.y) { local_14 = a_7.x >= a_7.z; } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = (d_13.x >= 0.0) ? 0u : 1u; } else { if (a_7.y >= a_7.z) { part = (d_13.y >= 0.0) ? 2u : 3u; } else { part = (d_13.z >= 0.0) ? 4u : 5u; } } } uint _e145 = part; uint tile = metal::min(first + metal::min(_e145, count - 1u), 15u); metal::float4x4 _e156 = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].view_proj; metal::float4 clip_1 = _e156 * metal::float4(p_9, 1.0); if (clip_1.w <= 0.0) { return 1.0; } metal::float3 ndc = clip_1.xyz / metal::float3(clip_1.w); if (!((metal::abs(ndc.x) > 1.0))) { local_15 = metal::abs(ndc.y) > 1.0; } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = ndc.z > 1.0; } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } metal::float4 rect = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].rect; metal::float2 uv_5 = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); metal::float2 auv = rect.xy + (uv_5 * rect.zw); float texel_uv = Shadow.atlas.x; metal::float2 lo_5 = rect.xy + metal::float2(0.5 * texel_uv); metal::float2 hi_4 = (rect.xy + rect.zw) - metal::float2(0.5 * texel_uv); float r_7 = params.z; if (r_7 <= 0.0) { float _e235 = t_shadow.sample_compare(s_shadow, metal::clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { float spread = r_7 * texel_uv; uint2 loop_bound_12 = uint2(4294967295u); bool loop_init_12 = true; while(true) { if (metal::all(loop_bound_12 == uint2(0u))) { break; } loop_bound_12 -= uint2(loop_bound_12.y == 0u, 1u); if (!loop_init_12) { int _e265 = dy; dy = as_type(as_type(_e265) + as_type(1)); } loop_init_12 = false; int _e239 = dy; if (_e239 <= 1) { } else { break; } { dx = -1; uint2 loop_bound_13 = uint2(4294967295u); bool loop_init_13 = true; while(true) { if (metal::all(loop_bound_13 == uint2(0u))) { break; } loop_bound_13 -= uint2(loop_bound_13.y == 0u, 1u); if (!loop_init_13) { int _e262 = dx; dx = as_type(as_type(_e262) + as_type(1)); } loop_init_13 = false; int _e244 = dx; if (_e244 <= 1) { } else { break; } { int _e247 = dx; int _e249 = dy; metal::float2 tap = metal::clamp(auv + (metal::float2(static_cast(_e247), static_cast(_e249)) * spread), lo_5, hi_4); float _e255 = vis; float _e259 = t_shadow.sample_compare(s_shadow, tap, ndc.z); vis = _e255 + _e259; } } } } float _e267 = vis; vis = _e267 / 9.0; } if (kind == LIGHT_DIRECTIONAL) { metal::float4 fade_1 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade; float _e277 = vis; vis = metal::mix(_e277, 1.0, metal::smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return metal::mix(1.0, _e283, params.w); } metal::float3 probe_light( metal::float3 n_5, constant ObjectU& O ) { float _e5 = O.gi.inner[0].x; metal::float4 _e9 = O.gi.inner[0]; float _e17 = O.gi.inner[1].x; metal::float4 _e21 = O.gi.inner[1]; float _e29 = O.gi.inner[2].x; metal::float4 _e33 = O.gi.inner[2]; return metal::max(metal::float3(_e5 + metal::dot(_e9.yzw, n_5), _e17 + metal::dot(_e21.yzw, n_5), _e29 + metal::dot(_e33.yzw, n_5)), metal::float3(0.0)); } metal::float4 gi_diffuse( metal::float3 n_6, bool baked, metal::float3 baked_light, constant ObjectU& O ) { if (baked) { return metal::float4(baked_light, 1.0); } uint _e9 = O.extra.x; if (SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false) { metal::float3 _e16 = probe_light(n_6, O); return metal::float4(_e16, 1.0); } return metal::float4(0.0); } metal::float3 probe_face_uv( metal::float3 d_8 ) { float face = {}; float ma = {}; float sc = {}; float tc = {}; bool local_17 = {}; metal::float3 a_8 = metal::abs(d_8); if (a_8.x >= a_8.y) { local_17 = a_8.x >= a_8.z; } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if (d_8.x >= 0.0) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0.0) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0.0) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return metal::float3(_e56, ((_e57 / _e58) + 1.0) * 0.5, ((_e64 / _e65) + 1.0) * 0.5); } metal::float3 probe_texel( uint row, metal::float3 fuv, uint level_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { uint _e6 = Probe.counts.z; float n_12 = static_cast(metal::max(_e6 >> level_1, 1u)); float lo_6 = 0.5 / n_12; float u_2 = metal::clamp(fuv.y, lo_6, 1.0 - lo_6); float v_7 = metal::clamp(fuv.z, lo_6, 1.0 - lo_6); metal::float2 uv_6 = metal::float2((fuv.x + u_2) / 6.0, (static_cast(row) + v_7) / 8.0); metal::float4 _e33 = t_probes.sample(s_probes, uv_6, metal::level(static_cast(level_1))); return _e33.xyz; } metal::float3 probe_sample( uint row_1, metal::float3 d_9, float lod, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { bool local_18 = {}; uint _e6 = Probe.counts.y; uint levels = metal::max(_e6, 1u); float l_5 = metal::clamp(lod, 0.0, static_cast(levels - 1u)); uint m0_ = naga_f2u32(l_5); float t_7 = l_5 - static_cast(m0_); metal::float3 _e17 = probe_face_uv(d_9); metal::float3 _e18 = probe_texel(row_1, _e17, m0_, Probe, t_probes, s_probes); if (!((t_7 <= 0.0))) { local_18 = (m0_ + 1u) >= levels; } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } metal::float3 _e34 = probe_texel(row_1, _e17, m0_ + 1u, Probe, t_probes, s_probes); return (_e18 * (1.0 - t_7)) + (_e34 * t_7); } float probe_weight( ProbeEntryU p_5, metal::float3 world_6 ) { metal::float3 l_6 = (p_5.to_local * metal::float4(world_6, 1.0)).xyz; metal::float3 e_6 = p_5.extents.xyz; float d_14 = metal::min(e_6.x - metal::abs(l_6.x), metal::min(e_6.y - metal::abs(l_6.y), e_6.z - metal::abs(l_6.z))); if (d_14 < 0.0) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return metal::min(d_14 / p_5.extents.w, 1.0); } float probe_exit( float o_3, float d_10, float e_1 ) { if (d_10 > 0.0) { return (e_1 - o_3) / d_10; } if (d_10 < 0.0) { return (-(e_1) - o_3) / d_10; } return 300000000000000000000000000000000000000.0; } metal::float3 probe_lookup( ProbeEntryU p_6, metal::float3 world_7, metal::float3 dir_6 ) { metal::float3 d_15 = (p_6.to_local * metal::float4(dir_6, 0.0)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } metal::float3 o_8 = (p_6.to_local * metal::float4(world_7, 1.0)).xyz; metal::float3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_8 = metal::max(metal::min(_e24, metal::min(_e28, _e32)), 0.0); return (o_8 + (d_15 * t_8)) - p_6.offset.xyz; } metal::float4 probe_reflection( metal::float3 world_8, metal::float3 r_2, float roughness_2, uint probes, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc = metal::float3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = Probe.counts.x; uint count_1 = metal::min(_e12, MAX_PROBES); uint _e18 = Probe.counts.y; float lod_1 = roughness_2 * static_cast(metal::max(_e18, 1u) - 1u); uint2 loop_bound_14 = uint2(4294967295u); bool loop_init_14 = true; while(true) { if (metal::all(loop_bound_14 == uint2(0u))) { break; } loop_bound_14 -= uint2(loop_bound_14.y == 0u, 1u); if (!loop_init_14) { uint _e57 = i_8; i_8 = _e57 + 1u; } loop_init_14 = false; uint _e27 = i_8; if (_e27 < count_1) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = Probe.probes.inner[metal::min(unsigned(_e31), 7u)]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } float _e41 = probe_weight(p_10, world_8); if (_e41 <= 0.0) { continue; } metal::float3 _e44 = acc; metal::float3 _e47 = probe_lookup(p_10, world_8, r_2); metal::float3 _e48 = probe_sample(p_10.info.w, _e47, lod_1, Probe, t_probes, s_probes); acc = _e44 + ((_e48 * p_10.offset.w) * _e41); float _e54 = w_sum; w_sum = _e54 + _e41; } } float _e59 = w_sum; if (_e59 > 1.0) { metal::float3 _e62 = acc; float _e63 = w_sum; acc = _e62 / metal::float3(_e63); w_sum = 1.0; } metal::float3 _e67 = acc; float _e68 = w_sum; return metal::float4(_e67, _e68); } metal::float4 probe_ambient( metal::float3 world_9, metal::float3 n_7, uint probes_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc_1 = metal::float3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = {}; metal::float3 c_18 = {}; uint _e11 = Probe.counts.x; uint count_2 = metal::min(_e11, MAX_PROBES); uint _e17 = Probe.counts.y; uint last = metal::max(_e17, 1u) - 1u; uint2 loop_bound_15 = uint2(4294967295u); bool loop_init_15 = true; while(true) { if (metal::all(loop_bound_15 == uint2(0u))) { break; } loop_bound_15 -= uint2(loop_bound_15.y == 0u, 1u); if (!loop_init_15) { uint _e73 = i_9; i_9 = _e73 + 1u; } loop_init_15 = false; uint _e24 = i_9; if (_e24 < count_2) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = Probe.probes.inner[metal::min(unsigned(_e28), 7u)]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = p_11.info.y == PROBE_AMBIENT_DISABLED; } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if (_e47 <= 0.0) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { metal::float3 _e64 = probe_face_uv((p_11.to_local * metal::float4(n_7, 0.0)).xyz); metal::float3 _e65 = probe_texel(p_11.info.w, _e64, last, Probe, t_probes, s_probes); c_18 = _e65; } metal::float3 _e66 = acc_1; metal::float3 _e67 = c_18; acc_1 = _e66 + (_e67 * _e47); float _e70 = w_sum_1; w_sum_1 = _e70 + _e47; } } float _e75 = w_sum_1; if (_e75 > 1.0) { metal::float3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = _e78 / metal::float3(_e79); w_sum_1 = 1.0; } metal::float3 _e83 = acc_1; float _e84 = w_sum_1; return metal::float4(_e83, _e84); } metal::float4 skin_row( uint k_10, uint r_3, constant SkinU& Skin ) { metal::float4 _e10 = Skin.rows.inner[metal::min(unsigned((metal::min(k_10, 254u) * 3u) + r_3), 764u)]; return _e10; } SkinRows skin_rows( SkinIn s_1, constant SkinU& Skin ) { SkinRows m_1 = {}; metal::uint4 j_1 = s_1.joints; metal::float4 w_5 = s_1.weights; metal::float4 _e8 = skin_row(s_1.joints.x, 0u, Skin); metal::float4 _e13 = skin_row(s_1.joints.y, 0u, Skin); metal::float4 _e19 = skin_row(s_1.joints.z, 0u, Skin); metal::float4 _e25 = skin_row(s_1.joints.w, 0u, Skin); m_1.r0_ = (((s_1.weights.x * _e8) + (s_1.weights.y * _e13)) + (s_1.weights.z * _e19)) + (s_1.weights.w * _e25); metal::float4 _e32 = skin_row(s_1.joints.x, 1u, Skin); metal::float4 _e37 = skin_row(s_1.joints.y, 1u, Skin); metal::float4 _e43 = skin_row(s_1.joints.z, 1u, Skin); metal::float4 _e49 = skin_row(s_1.joints.w, 1u, Skin); m_1.r1_ = (((s_1.weights.x * _e32) + (s_1.weights.y * _e37)) + (s_1.weights.z * _e43)) + (s_1.weights.w * _e49); metal::float4 _e56 = skin_row(s_1.joints.x, 2u, Skin); metal::float4 _e61 = skin_row(s_1.joints.y, 2u, Skin); metal::float4 _e67 = skin_row(s_1.joints.z, 2u, Skin); metal::float4 _e73 = skin_row(s_1.joints.w, 2u, Skin); m_1.r2_ = (((s_1.weights.x * _e56) + (s_1.weights.y * _e61)) + (s_1.weights.z * _e67)) + (s_1.weights.w * _e73); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings( thread CustomOut& o_4, thread metal::float4& env_uv, thread metal::float3& base_uv ) { metal::float4 _e3 = env_uv; o_4.hedra_v0_ = static_cast(_e3); metal::float3 _e7 = base_uv; o_4.hedra_v1_ = metal::float4(_e7, 0.0); return; } void hedra_load_varyings( CustomOut i_10, thread metal::float4& env_uv, thread metal::float3& base_uv ) { env_uv = i_10.hedra_v0_; base_uv = i_10.hedra_v1_.xyz; return; } void light( ) { return; } void vertex_( constant Globals& G, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float2& UV, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, constant HedraParams& hedra_p, thread metal::float4& env_uv, thread metal::float3& base_uv ) { metal::float4 view_pos = {}; bool local_20 = {}; metal::float4x4 _e1 = MODELVIEW_MATRIX; metal::float3 _e3 = VERTEX; view_pos = _e1 * metal::float4(_e3, 1.0); metal::float4x4 _e10 = G.proj; metal::float4 _e11 = view_pos; metal::float4 clip_2 = _e10 * _e11; float _e16 = hedra_p.snap_resolution.x; if (_e16 > 0.0) { local_20 = clip_2.w > 0.0001; } else { local_20 = false; } bool _e25 = local_20; if (_e25) { metal::float2 _e28 = hedra_p.snap_resolution; metal::float2 half_res = _e28 * 0.5; metal::float2 snapped = metal::rint((clip_2.xy / metal::float2(clip_2.w)) * half_res) / half_res; metal::float4x4 _e39 = INV_PROJECTION_MATRIX; metal::float4 back_2 = _e39 * metal::float4(snapped * clip_2.w, clip_2.z, clip_2.w); view_pos = metal::float4(back_2.xyz / metal::float3(back_2.w), 1.0); } metal::float4 _e53 = view_pos; VERTEX = _e53.xyz; metal::float3x3 _e57 = MODELVIEW_NORMAL_MATRIX; metal::float3 _e59 = NORMAL; NORMAL = metal::normalize(_e57 * _e59); metal::float4x4 _e64 = G.proj; metal::float4 _e65 = view_pos; float w_6 = metal::max((_e64 * _e65).w, 0.0001); metal::float3 _e71 = NORMAL; metal::float2 m_5 = (_e71.xy * metal::float2(0.5, -0.5)) + metal::float2(0.5); env_uv = metal::float4(m_5 * w_6, w_6, 0.0); metal::float2 _e86 = UV; base_uv = metal::float3(_e86 * w_6, w_6); return; } void fragment_( thread metal::float3& ALBEDO, constant HedraParams& hedra_p, metal::texture2d matcap, metal::texture2d albedo_texture, metal::sampler SAMPLER_NEAREST_CLAMP, metal::sampler SAMPLER_NEAREST_REPEAT, thread metal::float4& env_uv, thread metal::float3& base_uv ) { metal::float4 _e3 = env_uv; float _e7 = env_uv.z; metal::float4 _e10 = matcap.sample(SAMPLER_NEAREST_CLAMP, _e3.xy / metal::float2(_e7)); metal::float3 _e14 = hedra_p.tint; metal::float3 env = _e10.xyz * _e14; metal::float3 _e19 = base_uv; float _e23 = base_uv.z; metal::float4 _e26 = albedo_texture.sample(SAMPLER_NEAREST_REPEAT, _e19.xy / metal::float2(_e23)); metal::float3 base = _e26.xyz; float _e31 = hedra_p.reflectivity; ALBEDO = metal::mix(base, env, _e31); return; } metal::float3x3 hedra_mat3_( metal::float4x4 m_2 ) { return metal::float3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } metal::float4x4 hedra_rigid_inverse( metal::float4x4 m_3 ) { metal::float3x3 _e1 = hedra_mat3_(m_3); metal::float3x3 r_8 = metal::transpose(_e1); metal::float3 t_9 = -((r_8 * m_3[3].xyz)); return metal::float4x4(metal::float4(r_8[0], 0.0), metal::float4(r_8[1], 0.0), metal::float4(r_8[2], 0.0), metal::float4(t_9, 1.0)); } metal::float4x4 hedra_inv_projection( constant Globals& G ) { metal::float4 _e2 = G.wire_color; metal::float4 _e5 = G.select_color; metal::float4 _e8 = G.active_color; metal::float4 _e11 = G.grid; return metal::float4x4(_e2, _e5, _e8, _e11); } metal::float2 hedra_godot_uv( metal::float2 uv_1 ) { return metal::float2(uv_1.x, 1.0 - uv_1.y); } bool hedra_transparent( ) { bool local_21 = {}; bool local_22 = {}; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored( uint flags_1, constant ObjectU& O ) { uint _e4 = O.extra.x; return ((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u); } void hedra_matrices( metal::float4x4 model, metal::float3x3 normal, constant Globals& G, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD ) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; metal::float4x4 _e7 = G.view; metal::float4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; metal::float4x4 _e10 = hedra_inv_projection(G); INV_PROJECTION_MATRIX = _e10; metal::float4x4 _e14 = G.view; MODELVIEW_MATRIX = _e14 * model; metal::float4x4 _e19 = G.view; metal::float3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = _e20 * normal; NODE_POSITION_WORLD = model[3].xyz; metal::float4x4 _e28 = G.view; NODE_POSITION_VIEW = (_e28 * metal::float4(model[3].xyz, 1.0)).xyz; metal::float4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex( metal::float3 pos, metal::float3 normal_1, metal::float4 tangent, metal::float2 uv_2, metal::float2 uv2_, metal::float4 color, uint vid_3, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& VERTEX_ID, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX ) { bool local_23 = {}; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = metal::cross(normal_1, tangent.xyz) * tangent.w; metal::float2 _e17 = hedra_godot_uv(uv_2); UV = _e17; metal::float2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = static_cast(vid_3); POSITION = metal::float4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_23 = false; } else { local_23 = false; } bool _e31 = local_23; if (_e31) { metal::float4x4 _e34 = MODEL_MATRIX; metal::float3 _e36 = VERTEX; VERTEX = (_e34 * metal::float4(_e36, 1.0)).xyz; metal::float3x3 _e43 = MODEL_NORMAL_MATRIX; metal::float3 _e45 = NORMAL; NORMAL = _e43 * _e45; metal::float3x3 _e49 = MODEL_NORMAL_MATRIX; metal::float3 _e51 = TANGENT; TANGENT = _e49 * _e51; metal::float3x3 _e55 = MODEL_NORMAL_MATRIX; metal::float3 _e57 = BINORMAL; BINORMAL = _e55 * _e57; return; } else { return; } } CustomOut hedra_end_vertex( metal::float4 world_10, metal::float3 n_8, metal::float3 t, float tw, uint flags_2, constant Globals& G, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& INSTANCE_ID, thread metal::float4& env_uv, thread metal::float3& base_uv ) { CustomOut out_2 = {}; metal::float4x4 _e9 = G.view_proj; out_2.clip = _e9 * world_10; if (HEDRA_USES_POSITION) { metal::float4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = metal::normalize(n_8); metal::float2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = metal::float4(metal::normalize(t), tw); metal::float4 _e28 = COLOR; out_2.color = _e28; metal::float2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = static_cast(metal::max(_e34, 0)); hedra_store_varyings(out_2, env_uv, base_uv); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space( ) { bool local_24 = {}; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } metal::float4 hedra_vertex_world( thread metal::float3& VERTEX, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e2 = INV_VIEW_MATRIX; metal::float3 _e4 = VERTEX; return _e2 * metal::float4(_e4, 1.0); } metal::float3 _e9 = VERTEX; return metal::float4(_e9, 1.0); } metal::float3 hedra_vertex_dir( metal::float3 d_11, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e3 = INV_VIEW_MATRIX; metal::float3x3 _e4 = hedra_mat3_(_e3); return _e4 * d_11; } return d_11; } float hedra_tangent_sign( float w, bool flip, constant ObjectU& O ) { uint _e5 = O.extra.x; return w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); } void hedra_fragment( CustomOut in_7, bool facing_4, constant Globals& G, constant ObjectU& O, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD, thread metal::float3& LIGHT_VERTEX, thread metal::float4& FRAGCOORD, thread bool& FRONT_FACING, thread metal::float3& VIEW, thread metal::float3& NORMAL_MAP, thread float& NORMAL_MAP_DEPTH, thread metal::float3& ALBEDO, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread float& PREMUL_ALPHA_FACTOR, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread metal::float2& SCREEN_UV, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n, thread bool& hedra_front, constant HedraParams& hedra_p, metal::texture2d matcap, metal::texture2d albedo_texture, metal::sampler SAMPLER_NEAREST_CLAMP, metal::sampler SAMPLER_NEAREST_REPEAT, thread metal::float4& env_uv, thread metal::float3& base_uv ) { metal::float3 t_1 = {}; metal::float3 nm = {}; bool _e3 = hedra_mirrored(in_7.flags, O); bool front = facing_4 != _e3; hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; metal::float4 _e14 = G.viewport; SCREEN_UV = in_7.clip.xy * _e14.zw; metal::float4x4 _e19 = O.model; metal::float4x4 _e22 = O.normal; metal::float3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); metal::float4x4 _e26 = G.view; metal::float3x3 _e27 = hedra_mat3_(_e26); metal::float3 n_geo_2 = front ? metal::normalize(in_7.normal) : -(metal::normalize(in_7.normal)); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; metal::float3 _e41 = t_1; metal::float3 _e42 = t_1; t_1 = metal::normalize(_e41 - (n_geo_2 * metal::dot(n_geo_2, _e42))); metal::float3 _e47 = t_1; metal::float3 b_4 = metal::cross(n_geo_2, _e47) * in_7.tangent.w; metal::float4x4 _e55 = G.view; VERTEX = (_e55 * metal::float4(in_7.world, 1.0)).xyz; metal::float3 _e63 = VERTEX; LIGHT_VERTEX = _e63; metal::float3 vertex0_ = VERTEX; NORMAL = metal::normalize(_e27 * n_geo_2); metal::float3 normal0_ = NORMAL; metal::float3 _e72 = t_1; TANGENT = metal::normalize(_e27 * _e72); BINORMAL = metal::normalize(_e27 * b_4); metal::float3 _e80 = VERTEX; float _e90 = G.camera_pos.w; VIEW = (_e90 > 0.5) ? metal::float3(0.0, 0.0, 1.0) : metal::normalize(-(_e80)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = metal::float3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = metal::float3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = metal::float3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = metal::float3(0.0); hedra_load_varyings(in_7, env_uv, base_uv); fragment_(ALBEDO, hedra_p, matcap, albedo_texture, SAMPLER_NEAREST_CLAMP, SAMPLER_NEAREST_REPEAT, env_uv, base_uv); metal::float3x3 back_3 = metal::transpose(_e27); metal::float3 _e136 = NORMAL; if (metal::any(_e136 != normal0_)) { metal::float3 _e141 = NORMAL; hedra_n = metal::normalize(back_3 * _e141); } metal::float3 _e145 = NORMAL_MAP; if (metal::any(_e145 != metal::float3(0.5))) { metal::float3 _e151 = NORMAL_MAP; nm = _e151; metal::float3 _e153 = nm; nm = metal::float3((_e153.xy * 2.0) - metal::float2(1.0), 0.0); metal::float3 _e163 = nm; metal::float3 _e165 = nm; nm.z = metal::sqrt(metal::max(0.0, 1.0 - metal::dot(_e163.xy, _e165.xy))); metal::float3 _e175 = NORMAL; metal::float3 _e177 = TANGENT; float _e179 = nm.x; metal::float3 _e182 = BINORMAL; float _e184 = nm.y; metal::float3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = metal::normalize(metal::mix(_e175, ((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190), _e194)); metal::float3 _e199 = NORMAL; hedra_n = metal::normalize(back_3 * _e199); } metal::float3 _e203 = LIGHT_VERTEX; if (metal::any(_e203 != vertex0_)) { metal::float4x4 _e208 = INV_VIEW_MATRIX; metal::float3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * metal::float4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled( uint flags_3, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread bool& hedra_front ) { bool local_25 = {}; bool local_26 = {}; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if (false) { bool _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } bool _e12 = local_25; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = _e18 < _e20; } else { local_26 = false; } bool _e23 = local_26; return _e23; } metal::float3 hedra_view_dir( metal::float3 world_11, constant Globals& G ) { float _e5 = G.view[0].z; float _e10 = G.view[1].z; float _e15 = G.view[2].z; metal::float3 view_dir = metal::float3(_e5, _e10, _e15); metal::float4 _e19 = G.camera_pos; float _e27 = G.camera_pos.w; return (_e27 > 0.5) ? metal::normalize(view_dir) : metal::normalize(_e19.xyz - world_11); } float hedra_schlick( float u ) { float m_6 = metal::clamp(1.0 - u, 0.0, 1.0); float m2_ = m_6 * m_6; return (m2_ * m2_) * m_6; } float hedra_diffuse_brdf( float nl_1, float nv_2, float lh, float r_4 ) { float c_nl = metal::max(nl_1, 0.0); if (false) { return metal::max(0.0, (nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4))) * 0.31830987; } if (false) { return metal::smoothstep(-(r_4), metal::max(r_4, 0.01), nl_1) * 0.31830987; } if (false) { float fd90_ = (((2.0 * lh) * lh) * r_4) - 0.5; float _e32 = hedra_schlick(nv_2); float fdv = 1.0 + (fd90_ * _e32); float _e36 = hedra_schlick(c_nl); float fdl = 1.0 + (fd90_ * _e36); return ((0.31830987 * fdv) * fdl) * c_nl; } return c_nl * 0.31830987; } metal::float3 hedra_light_modes( metal::float3 n_9, metal::float3 v_3, metal::float3 l_3, metal::float3 radiance_2, metal::float3 diffuse_1, metal::float3 f0_2, float a2_3, float r_5, float specular_1 ) { metal::float3 c_19 = {}; float mid = {}; bool local_27 = {}; float nl_3 = metal::min(metal::dot(n_9, l_3), 1.0); float nv_4 = metal::max(metal::dot(n_9, v_3), 0.0001); metal::float3 h_3 = metal::normalize(l_3 + v_3); float lh_1 = metal::clamp(metal::dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = (diffuse_1 * _e21) * radiance_2; if (r_5 > 0.0) { if (false) { metal::float3 refl = metal::normalize(-(metal::reflect(l_3, n_9))); float rv = metal::dot(refl, v_3); mid = 1.0 - r_5; float _e35 = mid; float _e36 = mid; mid = _e35 * _e36; metal::float3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = _e38 + ((diffuse_1 * radiance_2) * ((metal::smoothstep(_e40 - (r_5 * 0.5), _e44 + (r_5 * 0.5), rv) * _e49) * specular_1)); } else { if (false) { local_27 = nl_3 > 0.0; } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = metal::max(metal::dot(n_9, h_3), 0.0); float vh_2 = metal::max(metal::dot(v_3, h_3), 0.0); metal::float3 _e67 = f_schlick(f0_2, vh_2); metal::float3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = _e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2); } } } metal::float3 _e77 = c_19; return _e77; } metal::float4 hedra_light_dir( uint i_11, metal::float3 world_12, constant LitU& Lit ) { float atten_1 = {}; LightU li_1 = Lit.lights.inner[metal::min(unsigned(i_11), 63u)]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return metal::float4(-(li_1.direction.xyz), 1.0); } metal::float3 rel_1 = li_1.position.xyz - world_12; float d_16 = metal::length(rel_1); metal::float3 l_7 = rel_1 / metal::float3(metal::max(d_16, 0.000001)); float _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { float cone = li_1.spot.x; float scos = metal::max(metal::dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = metal::max(0.0001, (1.0 - scos) / metal::max(1.0 - cone, 0.000001)); float _e49 = atten_1; atten_1 = _e49 * (1.0 - metal::pow(rim_1, li_1.spot.y)); } float _e56 = atten_1; return metal::float4(l_7, _e56); } float hedra_shadow( uint i_12, metal::float3 l_4, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo ) { bool local_28 = {}; if (false) { uint _e10 = Lit.lights.inner[metal::min(unsigned(i_12), 63u)].info.y; local_28 = _e10 != LIGHT_SHADOWED; } else { local_28 = true; } bool _e14 = local_28; if (_e14) { return 1.0; } metal::float3 _e17 = hedra_world; metal::float3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4, G, Lit, Shadow, t_shadow, s_shadow); return _e20; } metal::float3 hedra_ambient( metal::float3 n_10, metal::float3 v_4, metal::float3 diffuse_2, metal::float3 f0_3, float roughness_3, float metallic, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, thread metal::float3& hedra_world ) { metal::float3 ambient = {}; metal::float3 diffuse_amb = {}; metal::float3 spec_amb = {}; metal::float3 dif = {}; metal::float3 dif_1 = {}; metal::float3 dif_2 = {}; metal::float3 world_13 = hedra_world; float nv_5 = metal::max(metal::dot(n_10, v_4), 0.0001); metal::float3 f_amb = f0_3 + ((metal::max(metal::float3(1.0 - roughness_3), f0_3) - f0_3) * metal::pow(1.0 - nv_5, 5.0)); metal::float4 _e25 = gi_diffuse(n_10, false, metal::float3(0.0), O); uint _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { float _e38 = Sky.ibl.x; float _e42 = Sky.sun.w; float scale = _e38 * _e42; metal::float4 _e46 = Sky.ambient; diffuse_amb = _e46.xyz; uint _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { metal::float4 _e59 = Sky.ambient; metal::float3 _e61 = sky_dir(n_10, Sky); metal::float3 _e62 = sh_irradiance(_e61, Sky); float _e67 = Sky.ambient.w; diffuse_amb = metal::mix(_e59.xyz, _e62 * scale, _e67); } if (_e25.w > 0.0) { diffuse_amb = _e25.xyz; } metal::float4 _e75 = Sky.ambient; spec_amb = _e75.xyz; uint _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { metal::float3 _e88 = sky_dir(metal::reflect(-(v_4), n_10), Sky); metal::float3 _e89 = radiance_1(_e88, roughness_3, Sky, t_radiance, s_radiance); spec_amb = _e89 * scale; } else { uint _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = metal::float3(0.0); } } metal::float2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = Probe.counts.x; if (_e105 > 0u) { uint _e113 = O.extra.z; metal::float4 _e114 = probe_reflection(world_13, metal::reflect(-(v_4), n_10), roughness_3, _e113, Probe, t_probes, s_probes); metal::float3 _e115 = spec_amb; metal::float3 spec_1 = (_e115 * (1.0 - _e114.w)) + _e114.xyz; metal::float3 _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0.0) { uint _e130 = O.extra.z; metal::float4 _e131 = probe_ambient(world_13, n_10, _e130, Probe, t_probes, s_probes); metal::float3 _e132 = diffuse_amb; dif = (_e132 * (1.0 - _e131.w)) + _e131.xyz; } metal::float3 _e139 = dif; ambient = (diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } else { metal::float3 _e154 = diffuse_amb; metal::float3 _e156 = spec_amb; ambient = (diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } } else { uint _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { metal::float4 _e180 = Lit.up; metal::float3 up = _e180.xyz; metal::float4 _e184 = Lit.sky_top; metal::float4 _e188 = Lit.sky_horizon; metal::float3 sky_avg = (_e184.xyz + _e188.xyz) * 0.5; metal::float4 _e195 = Lit.ground_horizon; metal::float4 _e199 = Lit.ground_bottom; metal::float3 ground_avg = (_e195.xyz + _e199.xyz) * 0.5; metal::float3 irradiance = metal::mix(ground_avg, sky_avg, metal::clamp((metal::dot(n_10, up) * 0.5) + 0.5, 0.0, 1.0)); metal::float3 _e215 = sky(metal::reflect(-(v_4), n_10), Lit); metal::float3 blurred = metal::mix(_e215, sky_avg, roughness_3); uint _e220 = Probe.counts.x; if (_e220 > 0u) { uint _e228 = O.extra.z; metal::float4 _e229 = probe_reflection(world_13, metal::reflect(-(v_4), n_10), roughness_3, _e228, Probe, t_probes, s_probes); float _e233 = Lit.ambient.w; metal::float3 spec_2 = ((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz; dif_1 = _e25.xyz; if (_e25.w <= 0.0) { uint _e249 = O.extra.z; metal::float4 _e250 = probe_ambient(world_13, n_10, _e249, Probe, t_probes, s_probes); float _e254 = Lit.ambient.w; dif_1 = ((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz; } metal::float3 _e262 = dif_1; ambient = (diffuse_2 * _e262) + (spec_2 * f_amb); } else { if (_e25.w > 0.0) { float _e275 = Lit.ambient.w; ambient = (diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275); } else { float _e284 = Lit.ambient.w; ambient = ((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284; } } } else { uint _e289 = Probe.counts.x; if (_e289 > 0u) { uint _e297 = O.extra.z; metal::float4 _e298 = probe_reflection(world_13, metal::reflect(-(v_4), n_10), roughness_3, _e297, Probe, t_probes, s_probes); metal::float4 _e301 = Lit.ambient; metal::float3 spec_3 = (_e301.xyz * (1.0 - _e298.w)) + _e298.xyz; dif_2 = _e25.xyz; if (_e25.w <= 0.0) { uint _e317 = O.extra.z; metal::float4 _e318 = probe_ambient(world_13, n_10, _e317, Probe, t_probes, s_probes); metal::float4 _e321 = Lit.ambient; dif_2 = (_e321.xyz * (1.0 - _e318.w)) + _e318.xyz; } metal::float3 _e329 = dif_2; ambient = (diffuse_2 * _e329) + (spec_3 * f_amb); } else { if (_e25.w > 0.0) { metal::float4 _e340 = Lit.ambient; ambient = (diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb); } else { metal::float4 _e346 = Lit.ambient; ambient = _e346.xyz * (diffuse_2 + f_amb); } } } } metal::float3 _e350 = ambient; return _e350; } metal::float3 hedra_fog( metal::float3 c_in_1, metal::float3 v_5, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant FogU& Fog, thread metal::float3& hedra_world ) { metal::float3 c_20 = {}; c_20 = c_in_1; if (HEDRA_FOG_DISABLED) { metal::float3 _e4 = c_20; return _e4; } uint _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { metal::float3 _e13 = c_20; metal::float3 _e15 = hedra_world; metal::float3 _e17 = surface_fog(_e13, _e15, -(v_5), G, Lit, Sky, t_radiance, s_radiance); c_20 = _e17; } uint _e21 = O.decals.w; if (_e21 != 0u) { metal::float3 _e24 = c_20; metal::float3 _e26 = hedra_world; uint _e30 = O.decals.w; metal::float3 _e31 = fog_volumes(_e24, _e26, _e30, G, Lit, Fog); c_20 = _e31; } metal::float3 _e32 = c_20; return _e32; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } metal::float3 hedra_lit( metal::float4 clip, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals, constant FogU& Fog, thread metal::float3& NORMAL, thread metal::float3& ALBEDO, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread float& SPECULAR_AMOUNT, thread metal::float3& LIGHT, thread metal::float3& LIGHT_COLOR, thread bool& LIGHT_IS_DIRECTIONAL, thread float& ATTENUATION, thread metal::float3& DIFFUSE_LIGHT, thread metal::float3& SPECULAR_LIGHT, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n ) { DecalSurface surf_1 = {}; metal::float3 c_21 = metal::float3(0.0); uint k_11 = 0u; bool local_29 = {}; metal::float3 radiance_3 = {}; bool local_30 = {}; bool local_31 = {}; metal::float3 ambient_1 = metal::float3(0.0); bool local_32 = {}; metal::float3 n_geo_3 = hedra_n_geo; metal::float3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; metal::float3 _e18 = hedra_n; metal::float3 _e20 = EMISSION; surf_1 = DecalSurface {_e4, metal::clamp(_e6, 0.0, 1.0), metal::clamp(_e11, 0.045, 1.0), _e16, {}, _e18, _e20}; uint _e26 = O.decals.z; if (_e26 > 0u) { metal::float3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31, G, O, Decal, t_decals, s_decals); surf_1 = _e32; metal::float3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; metal::float4x4 _e45 = G.view; metal::float3x3 _e46 = hedra_mat3_(_e45); metal::float3 _e48 = surf_1.normal; NORMAL = metal::normalize(_e46 * _e48); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = ((roughness_4 * roughness_4) * roughness_4) * roughness_4; metal::float3 base_1 = surf_1.base; metal::float3 diffuse_3 = base_1 * (1.0 - metallic_1); float _e64 = SPECULAR; float _e68 = SPECULAR; metal::float3 f0_4 = metal::mix(metal::float3((0.16 * _e64) * _e68), base_1, metallic_1); metal::float3 n_13 = surf_1.normal; metal::float3 _e75 = hedra_world; metal::float3 _e76 = hedra_view_dir(_e75, G); metal::float4x4 _e79 = G.view; metal::float3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = metal::mix(1.0, _e82, _e84); DIFFUSE_LIGHT = metal::float3(0.0); SPECULAR_LIGHT = metal::float3(0.0); uint _e96 = object_light_count(O); uint2 loop_bound_16 = uint2(4294967295u); bool loop_init_16 = true; while(true) { if (metal::all(loop_bound_16 == uint2(0u))) { break; } loop_bound_16 -= uint2(loop_bound_16.y == 0u, 1u); if (!loop_init_16) { uint _e238 = k_11; k_11 = _e238 + 1u; } loop_init_16 = false; uint _e99 = k_11; if (_e99 < _e96) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101, O); LightU li_2 = Lit.lights.inner[metal::min(unsigned(_e102), 63u)]; metal::float3 _e108 = hedra_world; metal::float4 _e109 = hedra_light_dir(_e102, _e108, Lit); metal::float3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_29 = atten_2 > 0.0; } else { local_29 = true; } bool _e123 = local_29; if (_e123) { LIGHT = metal::normalize(_e80 * l_8); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8, G, Lit, Shadow, t_shadow, s_shadow, hedra_world, hedra_n_geo); ATTENUATION = atten_2 * _e131; LIGHT_IS_DIRECTIONAL = li_2.info.x == LIGHT_DIRECTIONAL; SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if (_e142 > 0.0) { float rim_light = metal::pow(metal::max(0.0001, 1.0 - metal::max(metal::dot(n_13, _e76), 0.0001)), metal::max(0.0, (1.0 - roughness_4) * 16.0)); metal::float3 _e159 = c_21; float _e164 = RIM; float _e170 = RIM_TINT; c_21 = _e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * metal::mix(metal::float3(1.0), base_1, _e170)); } if (atten_2 > 0.0) { radiance_3 = li_2.color.xyz * atten_2; if (li_2.info.y == LIGHT_SHADOWED) { local_30 = false; } else { local_30 = false; } bool _e188 = local_30; if (_e188) { metal::float3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8, G, Lit, Shadow, t_shadow, s_shadow); radiance_3 = li_2.color.xyz * (atten_2 * _e193); } if (true) { local_31 = false; } else { local_31 = false; } bool _e201 = local_31; if (_e201) { metal::float3 _e202 = c_21; metal::float3 _e203 = radiance_3; metal::float3 _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_21 = _e202 + _e206; } else { metal::float3 _e208 = c_21; metal::float3 _e209 = radiance_3; metal::float3 _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = _e208 + _e212; } metal::float3 _e215 = BACKLIGHT; if (metal::any(_e215 > metal::float3(0.0))) { float nl_4 = metal::max(metal::min(metal::dot(n_13, l_8), 1.0), 0.0); metal::float3 _e225 = c_21; metal::float3 _e226 = radiance_3; metal::float3 _e229 = BACKLIGHT; c_21 = _e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987))); } } } } if (HEDRA_HAS_LIGHT) { metal::float3 _e242 = DIFFUSE_LIGHT; metal::float3 _e249 = SPECULAR_LIGHT; c_21 = (((_e242 * base_1) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct); } else { float _e253 = AO_LIGHT_AFFECT; if (_e253 > 0.0) { metal::float3 _e256 = c_21; c_21 = _e256 * ao_direct; } } if (true) { metal::float3 _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1, O, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes, hedra_world); ambient_1 = _e262; } uint _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { bool _e273 = hedra_transparent(); local_32 = !(_e273); } else { local_32 = false; } bool _e276 = local_32; if (_e276) { uint clamped_lod_e282 = metal::min(uint(0), t_ao.get_num_mip_levels() - 1); metal::float4 _e282 = t_ao.read(metal::min(metal::uint2(naga_f2i32(metal::floor(clip.xy))), metal::uint2(t_ao.get_width(clamped_lod_e282), t_ao.get_height(clamped_lod_e282)) - 1), clamped_lod_e282); float ssao = _e282.x; metal::float3 _e284 = c_21; float _e286 = surf_1.occlusion; float _e291 = Lit.tone.z; float _e295 = Lit.tone.w; c_21 = _e284 * metal::mix(1.0, metal::min(ssao, _e286), _e291 * _e295); metal::float3 _e300 = c_21; metal::float3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_21 = _e300 + (_e301 * metal::min(_e303, ssao)); } else { metal::float3 _e307 = c_21; metal::float3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_21 = _e307 + (_e308 * _e310); } metal::float3 _e313 = c_21; metal::float3 _e315 = surf_1.emission; c_21 = _e313 + _e315; metal::float3 _e317 = c_21; metal::float3 _e318 = hedra_fog(_e317, _e76, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e319 = tonemap(_e318, Lit); return _e319; } metal::float4 hedra_output( metal::float3 c_22, constant Globals& G, constant LitU& Lit, thread float& ALPHA, thread float& PREMUL_ALPHA_FACTOR ) { metal::float3 rgb = {}; rgb = c_22; if (false) { metal::float3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = _e3 * _e5; } metal::float3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); metal::float4 o_9 = metal::float4(_e7, _e10 ? _e9 : 1.0); uint _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return metal::float4(metal::max(o_9.xyz, metal::float3(0.0)), metal::clamp(o_9.w, 0.0, 1.0)); } metal::float4 k_17 = metal::clamp(o_9, metal::float4(0.0), metal::float4(1.0)); uint _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { metal::float3 _e45 = linear_to_srgb(k_17.xyz); return metal::float4(_e45, k_17.w); } return k_17; } metal::float3 hedra_bindings( metal::texture2d t_panorama, metal::sampler s_radiance, metal::sampler s_panorama, metal::texture2d_array t_lightmap, metal::sampler s_lightmap, metal::texture2d t_screen ) { metal::float2 uv_7 = metal::float2(0.5); metal::float4 _e5 = t_panorama.sample(s_panorama, uv_7, metal::level(0.0)); metal::float4 _e11 = t_lightmap.sample(s_lightmap, uv_7, 0, metal::level(0.0)); metal::float4 _e17 = t_screen.sample(s_radiance, uv_7, metal::level(0.0)); return (_e5.xyz + _e11.xyz) + _e17.xyz; } struct vs_customInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float2 uv1_ [[attribute(10)]]; }; struct vs_customOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_customOutput vs_custom( vs_customInput varyings [[stage_in]] , uint vid [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float4 env_uv = {}; metal::float3 base_uv = {}; const VsIn in = { varyings.pos_1, varyings.normal_2, varyings.uv_3, varyings.flags_4, {}, varyings.tangent_1, varyings.weight }; const auto uv1_ = varyings.uv1_; metal::float4x4 _e5 = O.model; metal::float4x4 _e8 = O.normal; metal::float3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, metal::float4(1.0), vid, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, UV, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, hedra_p, env_uv, base_uv); float _e24 = hedra_tangent_sign(in.tangent.w, false, O); bool _e25 = hedra_vertex_space(); if (_e25) { metal::float4 _e26 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e28 = NORMAL; metal::float3 _e29 = hedra_vertex_dir(_e28, INV_VIEW_MATRIX); metal::float3 _e31 = TANGENT; metal::float3 _e32 = hedra_vertex_dir(_e31, INV_VIEW_MATRIX); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, env_uv, base_uv); const auto _tmp = _e34; return vs_customOutput { _tmp.clip, _tmp.world, _tmp.normal, _tmp.uv, _tmp.flags, _tmp.tangent, _tmp.color, _tmp.uv2_, _tmp.instance_id, _tmp.hedra_v0_, _tmp.hedra_v1_, _tmp.hedra_v2_, _tmp.hedra_v3_ }; } metal::float4x4 _e37 = O.model; metal::float3 _e39 = VERTEX; metal::float4 world_14 = _e37 * metal::float4(_e39, 1.0); metal::float4x4 _e45 = O.normal; metal::float3 _e47 = NORMAL; metal::float3 n_14 = (_e45 * metal::float4(_e47, 0.0)).xyz; metal::float4x4 _e54 = O.model; metal::float3 _e56 = TANGENT; metal::float3 t_10 = (_e54 * metal::float4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_14, n_14, t_10, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, env_uv, base_uv); const auto _tmp_1 = _e62; return vs_customOutput { _tmp_1.clip, _tmp_1.world, _tmp_1.normal, _tmp_1.uv, _tmp_1.flags, _tmp_1.tangent, _tmp_1.color, _tmp_1.uv2_, _tmp_1.instance_id, _tmp_1.hedra_v0_, _tmp_1.hedra_v1_, _tmp_1.hedra_v2_, _tmp_1.hedra_v3_ }; } struct vs_custom_instancedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float4 row0_ [[attribute(6)]]; metal::float4 row1_ [[attribute(7)]]; metal::float4 row2_ [[attribute(8)]]; metal::float4 color_1 [[attribute(9)]]; metal::float2 uv1_1 [[attribute(10)]]; metal::float4 custom [[attribute(14)]]; float id [[attribute(15)]]; }; struct vs_custom_instancedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_instancedOutput vs_custom_instanced( vs_custom_instancedInput varyings_1 [[stage_in]] , uint vid_1 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float4 env_uv = {}; metal::float3 base_uv = {}; const VsIn in_1 = { varyings_1.pos_1, varyings_1.normal_2, varyings_1.uv_3, varyings_1.flags_4, {}, varyings_1.tangent_1, varyings_1.weight }; const InstIn inst = { varyings_1.row0_, varyings_1.row1_, varyings_1.row2_, varyings_1.color_1 }; const auto uv1_1 = varyings_1.uv1_1; const HedraInstExtra extra = { varyings_1.custom, varyings_1.id }; metal::float3 bx = metal::float3(inst.row0_.x, inst.row1_.x, inst.row2_.x); metal::float3 by = metal::float3(inst.row0_.y, inst.row1_.y, inst.row2_.y); metal::float3 bz = metal::float3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = metal::dot(bx, metal::cross(by, bz)); bool flip_1 = det < 0.0; metal::float3x3 cofactor = metal::float3x3(metal::cross(by, bz), metal::cross(bz, bx), metal::cross(bx, by)) * (flip_1 ? -1.0 : 1.0); metal::float4x4 basis = metal::float4x4(metal::float4(bx, 0.0), metal::float4(by, 0.0), metal::float4(bz, 0.0), metal::float4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); metal::float4x4 _e55 = O.model; metal::float4x4 _e59 = O.normal; metal::float3x3 _e60 = hedra_mat3_(_e59); hedra_matrices(_e55 * basis, _e60 * cofactor, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = naga_f2i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, UV, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, hedra_p, env_uv, base_uv); uint flags_4 = in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1, O); bool _e80 = hedra_vertex_space(); if (_e80) { metal::float4 _e81 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e83 = NORMAL; metal::float3 _e84 = hedra_vertex_dir(_e83, INV_VIEW_MATRIX); metal::float3 _e86 = TANGENT; metal::float3 _e87 = hedra_vertex_dir(_e86, INV_VIEW_MATRIX); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, env_uv, base_uv); const auto _tmp_2 = _e88; return vs_custom_instancedOutput { _tmp_2.clip, _tmp_2.world, _tmp_2.normal, _tmp_2.uv, _tmp_2.flags, _tmp_2.tangent, _tmp_2.color, _tmp_2.uv2_, _tmp_2.instance_id, _tmp_2.hedra_v0_, _tmp_2.hedra_v1_, _tmp_2.hedra_v2_, _tmp_2.hedra_v3_ }; } metal::float3 _e90 = VERTEX; metal::float4 p1_ = metal::float4(_e90, 1.0); metal::float3 local_33 = metal::float3(metal::dot(inst.row0_, p1_), metal::dot(inst.row1_, p1_), metal::dot(inst.row2_, p1_)); metal::float4x4 _e102 = O.model; metal::float4 world_15 = _e102 * metal::float4(local_33, 1.0); metal::float4x4 _e108 = O.normal; metal::float3 _e110 = NORMAL; metal::float3 n_15 = (_e108 * metal::float4(cofactor * _e110, 0.0)).xyz; metal::float4x4 _e118 = O.model; metal::float3 _e121 = TANGENT; metal::float3 t_11 = (_e118 * metal::float4(metal::float3x3(bx, by, bz) * _e121, 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_15, n_15, t_11, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, env_uv, base_uv); const auto _tmp_3 = _e127; return vs_custom_instancedOutput { _tmp_3.clip, _tmp_3.world, _tmp_3.normal, _tmp_3.uv, _tmp_3.flags, _tmp_3.tangent, _tmp_3.color, _tmp_3.uv2_, _tmp_3.instance_id, _tmp_3.hedra_v0_, _tmp_3.hedra_v1_, _tmp_3.hedra_v2_, _tmp_3.hedra_v3_ }; } struct vs_custom_skinnedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::uint4 joints [[attribute(12)]]; metal::float4 weights [[attribute(13)]]; metal::float2 uv1_2 [[attribute(10)]]; }; struct vs_custom_skinnedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_skinnedOutput vs_custom_skinned( vs_custom_skinnedInput varyings_2 [[stage_in]] , uint vid_2 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant SkinU& Skin [[buffer(6)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float4 env_uv = {}; metal::float3 base_uv = {}; const VsIn in_2 = { varyings_2.pos_1, varyings_2.normal_2, varyings_2.uv_3, varyings_2.flags_4, {}, varyings_2.tangent_1, varyings_2.weight }; const SkinIn s = { varyings_2.joints, varyings_2.weights }; const auto uv1_2 = varyings_2.uv1_2; SkinRows _e4 = skin_rows(s, Skin); metal::float4 p_12 = metal::float4(in_2.pos, 1.0); metal::float3 skinned = metal::float3(metal::dot(_e4.r0_, p_12), metal::dot(_e4.r1_, p_12), metal::dot(_e4.r2_, p_12)); metal::float3 bx_1 = metal::float3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); metal::float3 by_1 = metal::float3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); metal::float3 bz_1 = metal::float3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det_1 = metal::dot(bx_1, metal::cross(by_1, bz_1)); bool flip_2 = det_1 < 0.0; metal::float3x3 cofactor_1 = metal::float3x3(metal::cross(by_1, bz_1), metal::cross(bz_1, bx_1), metal::cross(bx_1, by_1)); metal::float3 n0_ = metal::normalize((cofactor_1 * in_2.normal) * (flip_2 ? -1.0 : 1.0)); metal::float3 t0_1 = metal::normalize(metal::float3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz); metal::float4x4 _e58 = O.model; metal::float4x4 _e61 = O.normal; metal::float3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(skinned, n0_, metal::float4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, metal::float4(1.0), vid_2, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, UV, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, hedra_p, env_uv, base_uv); uint flags_5 = in_2.flags | (flip_2 ? F_INSTANCE_MIRRORED : 0u); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2, O); bool _e82 = hedra_vertex_space(); if (_e82) { metal::float4 _e83 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e85 = NORMAL; metal::float3 _e86 = hedra_vertex_dir(_e85, INV_VIEW_MATRIX); metal::float3 _e88 = TANGENT; metal::float3 _e89 = hedra_vertex_dir(_e88, INV_VIEW_MATRIX); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, env_uv, base_uv); const auto _tmp_4 = _e90; return vs_custom_skinnedOutput { _tmp_4.clip, _tmp_4.world, _tmp_4.normal, _tmp_4.uv, _tmp_4.flags, _tmp_4.tangent, _tmp_4.color, _tmp_4.uv2_, _tmp_4.instance_id, _tmp_4.hedra_v0_, _tmp_4.hedra_v1_, _tmp_4.hedra_v2_, _tmp_4.hedra_v3_ }; } metal::float4x4 _e93 = O.model; metal::float3 _e95 = VERTEX; metal::float4 world_16 = _e93 * metal::float4(_e95, 1.0); metal::float4x4 _e101 = O.normal; metal::float3 _e103 = NORMAL; metal::float3 n_16 = (_e101 * metal::float4(_e103, 0.0)).xyz; metal::float4x4 _e110 = O.model; metal::float3 _e112 = TANGENT; metal::float3 t_12 = (_e110 * metal::float4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_16, n_16, t_12, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, env_uv, base_uv); const auto _tmp_5 = _e117; return vs_custom_skinnedOutput { _tmp_5.clip, _tmp_5.world, _tmp_5.normal, _tmp_5.uv, _tmp_5.flags, _tmp_5.tangent, _tmp_5.color, _tmp_5.uv2_, _tmp_5.instance_id, _tmp_5.hedra_v0_, _tmp_5.hedra_v1_, _tmp_5.hedra_v2_, _tmp_5.hedra_v3_ }; } struct fs_customInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_customOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_customOutput fs_custom( fs_customInput varyings_3 [[stage_in]] , metal::float4 clip_3 [[position]] , bool facing [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant LitU& Lit [[buffer(1)]] , constant ShadowU& Shadow [[buffer(2)]] , metal::depth2d t_shadow [[texture(0)]] , metal::sampler s_shadow [[sampler(0)]] , constant SkyU& Sky [[buffer(3)]] , metal::texturecube t_radiance [[texture(6)]] , metal::texture2d t_panorama [[texture(7)]] , metal::sampler s_radiance [[sampler(4)]] , metal::sampler s_panorama [[sampler(5)]] , metal::texture2d t_ao [[texture(1)]] , metal::texture2d_array t_lightmap [[texture(8)]] , metal::sampler s_lightmap [[sampler(6)]] , constant ProbeU& Probe [[buffer(4)]] , metal::texture2d t_probes [[texture(9)]] , metal::sampler s_probes [[sampler(7)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] , constant FogU& Fog [[buffer(8)]] , metal::texture2d t_screen [[texture(3)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d matcap [[texture(4)]] , metal::texture2d albedo_texture [[texture(5)]] , metal::sampler SAMPLER_NEAREST_CLAMP [[sampler(2)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(3)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; float SPECULAR_AMOUNT = {}; metal::float3 LIGHT = {}; metal::float3 LIGHT_COLOR = {}; bool LIGHT_IS_DIRECTIONAL = {}; float ATTENUATION = {}; metal::float3 DIFFUSE_LIGHT = {}; metal::float3 SPECULAR_LIGHT = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float4 env_uv = {}; metal::float3 base_uv = {}; const CustomOut in_3 = { clip_3, varyings_3.world_13, varyings_3.normal_2, varyings_3.uv_3, varyings_3.flags_4, {}, varyings_3.tangent_1, varyings_3.color_1, varyings_3.uv2_1, varyings_3.instance_id, {}, varyings_3.hedra_v0_, varyings_3.hedra_v1_, varyings_3.hedra_v2_, varyings_3.hedra_v3_ }; metal::float3 c = {}; hedra_fragment(in_3, facing, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, matcap, albedo_texture, SAMPLER_NEAREST_CLAMP, SAMPLER_NEAREST_REPEAT, env_uv, base_uv); bool _e3 = hedra_culled(in_3.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (_e3) { metal::discard_fragment(); } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy, O); if (_e7 <= 0.0) { metal::discard_fragment(); } if (HEDRA_UNSHADED) { metal::float3 _e13 = ALBEDO; metal::float3 _e15 = hedra_world; metal::float3 _e16 = hedra_view_dir(_e15, G); metal::float3 _e17 = hedra_fog(_e13, _e16, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e18 = tonemap(_e17, Lit); c = _e18; } else { metal::float3 _e20 = hedra_lit(in_3.clip, G, O, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, Fog, NORMAL, ALBEDO, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SPECULAR_AMOUNT, LIGHT, LIGHT_COLOR, LIGHT_IS_DIRECTIONAL, ATTENUATION, DIFFUSE_LIGHT, SPECULAR_LIGHT, hedra_world, hedra_n_geo, hedra_n); c = _e20; } uint _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { metal::float3 _e27 = c; metal::float3 _e28 = hedra_bindings(t_panorama, s_radiance, s_panorama, t_lightmap, s_lightmap, t_screen); c = _e27 + _e28; } uint _e33 = G.params.x; if (_e33 == SHADE_LIT) { metal::float3 _e36 = c; metal::float3 _e37 = item_fade(_e36, O, Lit); metal::float3 _e38 = emerge_tint(_e37, _e7, O, Lit); c = _e38; } metal::float3 _e39 = c; metal::float4 _e40 = hedra_output(_e39, G, Lit, ALPHA, PREMUL_ALPHA_FACTOR); return fs_customOutput { _e40 }; } struct fs_custom_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; fragment void fs_custom_depth( fs_custom_depthInput varyings_4 [[stage_in]] , metal::float4 clip_4 [[position]] , bool facing_1 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d matcap [[texture(4)]] , metal::texture2d albedo_texture [[texture(5)]] , metal::sampler SAMPLER_NEAREST_CLAMP [[sampler(2)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(3)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float4 env_uv = {}; metal::float3 base_uv = {}; const CustomOut in_4 = { clip_4, varyings_4.world_13, varyings_4.normal_2, varyings_4.uv_3, varyings_4.flags_4, {}, varyings_4.tangent_1, varyings_4.color_1, varyings_4.uv2_1, varyings_4.instance_id, {}, varyings_4.hedra_v0_, varyings_4.hedra_v1_, varyings_4.hedra_v2_, varyings_4.hedra_v3_ }; bool local = {}; bool local_1 = {}; hedra_fragment(in_4, facing_1, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, matcap, albedo_texture, SAMPLER_NEAREST_CLAMP, SAMPLER_NEAREST_REPEAT, env_uv, base_uv); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = _e14 < _e16; } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { metal::discard_fragment(); } float _e25 = emerge_reveal(in_4.world, metal::float2(-1.0), O); if (_e25 <= 0.0) { metal::discard_fragment(); } else { return; } } struct fs_custom_idInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_idOutput { metal::float4 id [[color(0)]]; }; fragment fs_custom_idOutput fs_custom_id( fs_custom_idInput varyings_5 [[stage_in]] , metal::float4 clip_5 [[position]] , bool facing_2 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d matcap [[texture(4)]] , metal::texture2d albedo_texture [[texture(5)]] , metal::sampler SAMPLER_NEAREST_CLAMP [[sampler(2)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(3)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float4 env_uv = {}; metal::float3 base_uv = {}; const CustomOut in_5 = { clip_5, varyings_5.world_13, varyings_5.normal_2, varyings_5.uv_3, varyings_5.flags_4, {}, varyings_5.tangent_1, varyings_5.color_1, varyings_5.uv2_1, varyings_5.instance_id, {}, varyings_5.hedra_v0_, varyings_5.hedra_v1_, varyings_5.hedra_v2_, varyings_5.hedra_v3_ }; bool local_2 = {}; IdOut out = {}; hedra_fragment(in_5, facing_2, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, matcap, albedo_texture, SAMPLER_NEAREST_CLAMP, SAMPLER_NEAREST_REPEAT, env_uv, base_uv); bool _e3 = hedra_culled(in_5.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy, O); local_2 = _e10 <= 0.0; } else { local_2 = true; } bool _e14 = local_2; if (_e14) { metal::discard_fragment(); } uint id = O.params.z; uint _e24 = O.params.x; uint _e33 = O.params.y; uint bits = ((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u); out.id = metal::float4(static_cast(id & 255u), static_cast((id >> 8u) & 255u), static_cast((id >> 16u) & 255u), static_cast(bits)) / metal::float4(255.0); IdOut _e58 = out; const auto _tmp_6 = _e58; return fs_custom_idOutput { _tmp_6.id }; } struct fs_custom_normal_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_normal_depthOutput { metal::float4 normal_depth [[color(0)]]; metal::float4 surface [[color(1)]]; }; fragment fs_custom_normal_depthOutput fs_custom_normal_depth( fs_custom_normal_depthInput varyings_6 [[stage_in]] , metal::float4 clip_6 [[position]] , bool facing_3 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d matcap [[texture(4)]] , metal::texture2d albedo_texture [[texture(5)]] , metal::sampler SAMPLER_NEAREST_CLAMP [[sampler(2)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(3)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float4 env_uv = {}; metal::float3 base_uv = {}; const CustomOut in_6 = { clip_6, varyings_6.world_13, varyings_6.normal_2, varyings_6.uv_3, varyings_6.flags_4, {}, varyings_6.tangent_1, varyings_6.color_1, varyings_6.uv2_1, varyings_6.instance_id, {}, varyings_6.hedra_v0_, varyings_6.hedra_v1_, varyings_6.hedra_v2_, varyings_6.hedra_v3_ }; bool local_3 = {}; HedraNormalDepthOut out_1 = {}; hedra_fragment(in_6, facing_3, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, matcap, albedo_texture, SAMPLER_NEAREST_CLAMP, SAMPLER_NEAREST_REPEAT, env_uv, base_uv); bool _e3 = hedra_culled(in_6.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy, O); local_3 = _e10 <= 0.0; } else { local_3 = true; } bool _e14 = local_3; if (_e14) { metal::discard_fragment(); } metal::float4x4 _e17 = G.view; metal::float3x3 _e18 = hedra_mat3_(_e17); metal::float3 _e20 = hedra_n; metal::float3 n_view = metal::normalize(_e18 * _e20); float _e24 = METALLIC; float metallic_2 = metal::clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; metal::float3 _e37 = ALBEDO; metal::float3 f0_5 = metal::mix(metal::float3((0.16 * _e29) * _e33), _e37, metallic_2); metal::float4x4 _e43 = G.view; out_1.normal_depth = metal::float4(n_view, -((_e43 * metal::float4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = metal::float4(metal::clamp(f0_5, metal::float3(0.0), metal::float3(1.0)), metal::clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; const auto _tmp_7 = _e63; return fs_custom_normal_depthOutput { _tmp_7.normal_depth, _tmp_7.surface }; }  @Ð Ð/ ,@   {Ðþ—4ÌhÜäF‚�SKw;É 3XÒ`Í[k&Õ֯Švs_custommain‹8struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 tint; float reflectivity; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1377 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float4 env_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 base_uv = float3(0.0f, 0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1228 = transpose(hedra_mat3(m)); return float4x4(float4(_1228[0], 0.0f), float4(_1228[1], 0.0f), float4(_1228[2], 0.0f), float4(-mul(m[3].xyz, _1228), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1334 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1334 = false; } else { _1334 = false; } if (_1334) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { float4 view_pos = float4(0.0f, 0.0f, 0.0f, 0.0f); bool _1144 = false; view_pos = mul(float4(VERTEX, 1.0f), MODELVIEW_MATRIX); float4 _1154 = mul(view_pos, G_1_m0.proj); if (hedra_p_1_m0.snap_resolution.x > 0.0f) { _1144 = _1154.w > 9.9999997473787516355514526367188e-05f; } else { _1144 = false; } if (_1144) { float2 _1169 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1183 = mul(float4((round((_1154.xy / float2(_1154.ww)) * _1169) / _1169) * _1154.w, _1154.zw), INV_PROJECTION_MATRIX); view_pos = float4(_1183.xyz / float3(_1183.www), 1.0f); } VERTEX = view_pos.xyz; NORMAL = normalize(mul(NORMAL, MODELVIEW_NORMAL_MATRIX)); float _1200 = max(mul(view_pos, G_1_m0.proj).w, 9.9999997473787516355514526367188e-05f); env_uv = float4(((NORMAL.xy * float2(0.5f, -0.5f)) + float2(0.5f, 0.5f)) * _1200, _1200, 0.0f); base_uv = float3(UV * _1200, _1200); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1411 = false; if (false) { _1411 = false; } else { _1411 = true; } return _1411; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = env_uv; o.hedra_v1 = float4(base_uv, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1377; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1607 = { pos, normal, uv, flags, tangent, weight }; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(_1607.pos, _1607.normal, _1607.tangent, _1607.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); float _1665 = hedra_tangent_sign(_1607.tangent.w, false); if (hedra_vertex_space()) { CustomOut _1675 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1665, _1607.flags); gl_Position = _1675.clip; world = _1675.world; normal_1 = _1675.normal; uv_1 = _1675.uv; flags_1 = _1675.flags; tangent_1 = _1675.tangent; color = _1675.color; uv2 = _1675.uv2; instance_id = _1675.instance_id; hedra_v0 = _1675.hedra_v0; hedra_v1 = _1675.hedra_v1; hedra_v2 = _1675.hedra_v2; hedra_v3 = _1675.hedra_v3; return; } CustomOut _1707 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1665, _1607.flags); gl_Position = _1707.clip; world = _1707.world; normal_1 = _1707.normal; uv_1 = _1707.uv; flags_1 = _1707.flags; tangent_1 = _1707.tangent; color = _1707.color; uv2 = _1707.uv2; instance_id = _1707.instance_id; hedra_v0 = _1707.hedra_v0; hedra_v1 = _1707.hedra_v1; hedra_v2 = _1707.hedra_v2; hedra_v3 = _1707.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_instancedmain³=struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 tint; float reflectivity; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1377 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 row0; static float4 row1; static float4 row2; static float4 color; static float2 uv1; static float4 custom; static float id; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color_1; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 row0 : TEXCOORD6; float4 row1 : TEXCOORD7; float4 row2 : TEXCOORD8; float4 color : TEXCOORD9; float2 uv1 : TEXCOORD10; float4 custom : TEXCOORD14; float id : TEXCOORD15; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color_1 : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float4 env_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 base_uv = float3(0.0f, 0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1228 = transpose(hedra_mat3(m)); return float4x4(float4(_1228[0], 0.0f), float4(_1228[1], 0.0f), float4(_1228[2], 0.0f), float4(-mul(m[3].xyz, _1228), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_2, uint vid) { bool _1334 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_2; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1334 = false; } else { _1334 = false; } if (_1334) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { float4 view_pos = float4(0.0f, 0.0f, 0.0f, 0.0f); bool _1144 = false; view_pos = mul(float4(VERTEX, 1.0f), MODELVIEW_MATRIX); float4 _1154 = mul(view_pos, G_1_m0.proj); if (hedra_p_1_m0.snap_resolution.x > 0.0f) { _1144 = _1154.w > 9.9999997473787516355514526367188e-05f; } else { _1144 = false; } if (_1144) { float2 _1169 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1183 = mul(float4((round((_1154.xy / float2(_1154.ww)) * _1169) / _1169) * _1154.w, _1154.zw), INV_PROJECTION_MATRIX); view_pos = float4(_1183.xyz / float3(_1183.www), 1.0f); } VERTEX = view_pos.xyz; NORMAL = normalize(mul(NORMAL, MODELVIEW_NORMAL_MATRIX)); float _1200 = max(mul(view_pos, G_1_m0.proj).w, 9.9999997473787516355514526367188e-05f); env_uv = float4(((NORMAL.xy * float2(0.5f, -0.5f)) + float2(0.5f, 0.5f)) * _1200, _1200, 0.0f); base_uv = float3(UV * _1200, _1200); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1411 = false; if (false) { _1411 = false; } else { _1411 = true; } return _1411; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = env_uv; o.hedra_v1 = float4(base_uv, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1377; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1607 = { pos, normal, uv, flags, tangent, weight }; InstIn _1625 = { row0, row1, row2, color }; HedraInstExtra _1636 = { custom, id }; float3 _1671 = float3(_1625.row0.x, _1625.row1.x, _1625.row2.x); float3 _1678 = float3(_1625.row0.y, _1625.row1.y, _1625.row2.y); float3 _1685 = float3(_1625.row0.z, _1625.row1.z, _1625.row2.z); bool _1688 = dot(_1671, cross(_1678, _1685)) < 0.0f; float3x3 _1694 = float3x3(cross(_1678, _1685), cross(_1685, _1671), cross(_1671, _1678)) * (_1688 ? (-1.0f) : 1.0f); hedra_matrices(mul(float4x4(float4(_1671, 0.0f), float4(_1678, 0.0f), float4(_1685, 0.0f), float4(_1625.row0.w, _1625.row1.w, _1625.row2.w, 1.0f)), O_1_m0.model), mul(_1694, hedra_mat3(O_1_m0.normal))); INSTANCE_ID = int(clamp(_1636.id, -2147483648.0f, 2147483520.0f)); INSTANCE_CUSTOM = _1636.custom; hedra_begin_vertex(_1607.pos, _1607.normal, _1607.tangent, _1607.uv, uv1, _1625.color, uint(gl_VertexIndex)); vertex(); uint _1729 = _1607.flags | (_1688 ? 128u : 0u); float _1732 = hedra_tangent_sign(_1607.tangent.w, _1688); if (hedra_vertex_space()) { CustomOut _1741 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1732, _1729); gl_Position = _1741.clip; world = _1741.world; normal_1 = _1741.normal; uv_1 = _1741.uv; flags_1 = _1741.flags; tangent_1 = _1741.tangent; color_1 = _1741.color; uv2 = _1741.uv2; instance_id = _1741.instance_id; hedra_v0 = _1741.hedra_v0; hedra_v1 = _1741.hedra_v1; hedra_v2 = _1741.hedra_v2; hedra_v3 = _1741.hedra_v3; return; } float4 _1756 = float4(VERTEX, 1.0f); CustomOut _1783 = hedra_end_vertex(mul(float4(float3(dot(_1625.row0, _1756), dot(_1625.row1, _1756), dot(_1625.row2, _1756)), 1.0f), O_1_m0.model), mul(float4(mul(NORMAL, _1694), 0.0f), O_1_m0.normal).xyz, mul(float4(mul(TANGENT, float3x3(_1671, _1678, _1685)), 0.0f), O_1_m0.model).xyz, _1732, _1729); gl_Position = _1783.clip; world = _1783.world; normal_1 = _1783.normal; uv_1 = _1783.uv; flags_1 = _1783.flags; tangent_1 = _1783.tangent; color_1 = _1783.color; uv2 = _1783.uv2; instance_id = _1783.instance_id; hedra_v0 = _1783.hedra_v0; hedra_v1 = _1783.hedra_v1; hedra_v2 = _1783.hedra_v2; hedra_v3 = _1783.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; row0 = stage_input.row0; row1 = stage_input.row1; row2 = stage_input.row2; color = stage_input.color; uv1 = stage_input.uv1; custom = stage_input.custom; id = stage_input.id; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color_1 = color_1; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_skinnedmainy?struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 tint; float reflectivity; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const SkinRows _1139 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const CustomOut _1469 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Skin : register(b6) { SkinU Skin_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static uint4 joints; static float4 weights; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint4 joints : TEXCOORD12; float4 weights : TEXCOORD13; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float4 env_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 base_uv = float3(0.0f, 0.0f, 0.0f); float4 skin_row(uint k, uint r) { return Skin_1_m0.rows[min(((min(k, 254u) * 3u) + r), 764u)]; } SkinRows skin_rows(SkinIn s) { SkinRows m = _1139; m.r0 = (((skin_row(s.joints.x, 0u) * s.weights.x) + (skin_row(s.joints.y, 0u) * s.weights.y)) + (skin_row(s.joints.z, 0u) * s.weights.z)) + (skin_row(s.joints.w, 0u) * s.weights.w); m.r1 = (((skin_row(s.joints.x, 1u) * s.weights.x) + (skin_row(s.joints.y, 1u) * s.weights.y)) + (skin_row(s.joints.z, 1u) * s.weights.z)) + (skin_row(s.joints.w, 1u) * s.weights.w); m.r2 = (((skin_row(s.joints.x, 2u) * s.weights.x) + (skin_row(s.joints.y, 2u) * s.weights.y)) + (skin_row(s.joints.z, 2u) * s.weights.z)) + (skin_row(s.joints.w, 2u) * s.weights.w); return m; } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1320 = transpose(hedra_mat3(m)); return float4x4(float4(_1320[0], 0.0f), float4(_1320[1], 0.0f), float4(_1320[2], 0.0f), float4(-mul(m[3].xyz, _1320), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1426 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1426 = false; } else { _1426 = false; } if (_1426) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { float4 view_pos = float4(0.0f, 0.0f, 0.0f, 0.0f); bool _1236 = false; view_pos = mul(float4(VERTEX, 1.0f), MODELVIEW_MATRIX); float4 _1246 = mul(view_pos, G_1_m0.proj); if (hedra_p_1_m0.snap_resolution.x > 0.0f) { _1236 = _1246.w > 9.9999997473787516355514526367188e-05f; } else { _1236 = false; } if (_1236) { float2 _1261 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1275 = mul(float4((round((_1246.xy / float2(_1246.ww)) * _1261) / _1261) * _1246.w, _1246.zw), INV_PROJECTION_MATRIX); view_pos = float4(_1275.xyz / float3(_1275.www), 1.0f); } VERTEX = view_pos.xyz; NORMAL = normalize(mul(NORMAL, MODELVIEW_NORMAL_MATRIX)); float _1292 = max(mul(view_pos, G_1_m0.proj).w, 9.9999997473787516355514526367188e-05f); env_uv = float4(((NORMAL.xy * float2(0.5f, -0.5f)) + float2(0.5f, 0.5f)) * _1292, _1292, 0.0f); base_uv = float3(UV * _1292, _1292); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1503 = false; if (false) { _1503 = false; } else { _1503 = true; } return _1503; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = env_uv; o.hedra_v1 = float4(base_uv, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1469; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1699 = { pos, normal, uv, flags, tangent, weight }; SkinIn _1717 = { joints, weights }; SkinRows _1750 = skin_rows(_1717); float4 _1752 = float4(_1699.pos, 1.0f); float3 _1766 = float3(_1750.r0.x, _1750.r1.x, _1750.r2.x); float3 _1773 = float3(_1750.r0.y, _1750.r1.y, _1750.r2.y); float3 _1780 = float3(_1750.r0.z, _1750.r1.z, _1750.r2.z); bool _1783 = dot(_1766, cross(_1773, _1780)) < 0.0f; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(float3(dot(_1750.r0, _1752), dot(_1750.r1, _1752), dot(_1750.r2, _1752)), normalize(mul(_1699.normal, float3x3(cross(_1773, _1780), cross(_1780, _1766), cross(_1766, _1773))) * (_1783 ? (-1.0f) : 1.0f)), float4(normalize(mul(_1699.tangent.xyz, float3x3(_1766, _1773, _1780))), _1699.tangent.w), _1699.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); uint _1812 = _1699.flags | (_1783 ? 128u : 0u); float _1815 = hedra_tangent_sign(_1699.tangent.w, _1783); if (hedra_vertex_space()) { CustomOut _1824 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1815, _1812); gl_Position = _1824.clip; world = _1824.world; normal_1 = _1824.normal; uv_1 = _1824.uv; flags_1 = _1824.flags; tangent_1 = _1824.tangent; color = _1824.color; uv2 = _1824.uv2; instance_id = _1824.instance_id; hedra_v0 = _1824.hedra_v0; hedra_v1 = _1824.hedra_v1; hedra_v2 = _1824.hedra_v2; hedra_v3 = _1824.hedra_v3; return; } CustomOut _1855 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1815, _1812); gl_Position = _1855.clip; world = _1855.world; normal_1 = _1855.normal; uv_1 = _1855.uv; flags_1 = _1855.flags; tangent_1 = _1855.tangent; color = _1855.color; uv2 = _1855.uv2; instance_id = _1855.instance_id; hedra_v0 = _1855.hedra_v0; hedra_v1 = _1855.hedra_v1; hedra_v2 = _1855.hedra_v2; hedra_v3 = _1855.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; joints = stage_input.joints; weights = stage_input.weights; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; }  fs_custommain?struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 tint; float reflectivity; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _569 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const uint _2655[4] = { 0u, 0u, 0u, 0u }; static const float2 _2658[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _2665[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const DecalSurface _4905 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Shadow : register(b2) { ShadowU Shadow_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Probe : register(b4) { ProbeU Probe_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D t_shadow : register(t0); SamplerComparisonState s_shadow : register(s0); TextureCube t_radiance : register(t6); Texture2D t_panorama : register(t7); SamplerState s_radiance : register(s4); SamplerState s_panorama : register(s5); Texture2D t_ao : register(t1); Texture2DArray t_lightmap : register(t8); SamplerState s_lightmap : register(s6); Texture2D t_probes : register(t9); SamplerState s_probes : register(s7); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); Texture2D t_screen : register(t3); Texture2D matcap : register(t4); Texture2D albedo_texture : register(t5); SamplerState SAMPLER_NEAREST_CLAMP : register(s2); SamplerState SAMPLER_NEAREST_REPEAT : register(s3); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 _5301; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 _5301 : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float SPECULAR_AMOUNT = 0.0f; static float3 LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_COLOR = float3(0.0f, 0.0f, 0.0f); static bool LIGHT_IS_DIRECTIONAL = false; static float ATTENUATION = 0.0f; static float3 DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float4 env_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 base_uv = float3(0.0f, 0.0f, 0.0f); uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint spvPackUnorm4x8(float4 value) { uint4 Packed = uint4(round(saturate(value) * 255.0)); return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); } float4 spvUnpackUnorm4x8(uint value) { uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); return float4(Packed) / 255.0; } bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _3980 = transpose(hedra_mat3(m)); return float4x4(float4(_3980[0], 0.0f), float4(_3980[1], 0.0f), float4(_3980[2], 0.0f), float4(-mul(m[3].xyz, _3980), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { env_uv = i.hedra_v0; base_uv = i.hedra_v1.xyz; } void fragment() { ALBEDO = lerp(albedo_texture.Sample(SAMPLER_NEAREST_REPEAT, base_uv.xy / float2(base_uv.z, base_uv.z)).xyz, matcap.Sample(SAMPLER_NEAREST_CLAMP, env_uv.xy / float2(env_uv.z, env_uv.z)).xyz * hedra_p_1_m0.tint, float3(hedra_p_1_m0.reflectivity, hedra_p_1_m0.reflectivity, hedra_p_1_m0.reflectivity)); } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _4141 = facing != hedra_mirrored(_in.flags); hedra_front = _4141; FRONT_FACING = _4141; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _4157 = hedra_mat3(G_1_m0.view); float3 _4160 = -normalize(_in.normal); float3 _4162 = normalize(_in.normal); bool3 _4164 = bool3(_4141, _4141, _4141); float3 _4163 = float3(_4164.x ? _4162.x : _4160.x, _4164.y ? _4162.y : _4160.y, _4164.z ? _4162.z : _4160.z); hedra_n_geo = _4163; hedra_n = _4163; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_4163 * dot(_4163, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _4186 = VERTEX; NORMAL = normalize(mul(_4163, _4157)); float3 _4189 = NORMAL; TANGENT = normalize(mul(t, _4157)); BINORMAL = normalize(mul(cross(_4163, t) * _in.tangent.w, _4157)); float3 _4197 = normalize(-VERTEX); bool _4200 = G_1_m0.camera_pos.w > 0.5f; bool3 _4202 = bool3(_4200, _4200, _4200); VIEW = float3(_4202.x ? float3(0.0f, 0.0f, 1.0f).x : _4197.x, _4202.y ? float3(0.0f, 0.0f, 1.0f).y : _4197.y, _4202.z ? float3(0.0f, 0.0f, 1.0f).z : _4197.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _4208 = transpose(_4157); if (any(bool3(NORMAL.x != _4189.x, NORMAL.y != _4189.y, NORMAL.z != _4189.z))) { hedra_n = normalize(mul(NORMAL, _4208)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _4208)); } if (any(bool3(LIGHT_VERTEX.x != _4186.x, LIGHT_VERTEX.y != _4186.y, LIGHT_VERTEX.z != _4186.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _4273 = false; bool _4275 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _4273 = hedra_front; } else { _4273 = false; } if (_4273) { return true; } if (false) { _4275 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _4275 = false; } return _4275; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1147 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1147, _1147, _1147); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1172 = floor(p); float3 _1173 = frac(p); float3 _1177 = (_1173 * _1173) * (float3(3.0f, 3.0f, 3.0f) - (_1173 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1172), emerge_hash(_1172 + float3(1.0f, 0.0f, 0.0f)), _1177.x), lerp(emerge_hash(_1172 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1172 + float3(1.0f, 1.0f, 0.0f)), _1177.x), _1177.y), lerp(lerp(emerge_hash(_1172 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1172 + float3(1.0f, 0.0f, 1.0f)), _1177.x), lerp(emerge_hash(_1172 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1172 + float3(1.0f, 1.0f, 1.0f)), _1177.x), _1177.y), _1177.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1234 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1234) * 0.64999997615814208984375f) + (emerge_noise((_1234 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } float3 hedra_view_dir(float3 world_1) { float3 _4312 = normalize(G_1_m0.camera_pos.xyz - world_1); float3 _4313 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _4316 = G_1_m0.camera_pos.w > 0.5f; bool3 _4318 = bool3(_4316, _4316, _4316); return float3(_4318.x ? _4313.x : _4312.x, _4318.y ? _4313.y : _4312.y, _4318.z ? _4313.z : _4312.z); } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float3 radiance(float3 d, float roughness) { return t_radiance.SampleLevel(s_radiance, d, roughness * float(max(Sky_1_m0.flags.y, 1u) - 1u)).xyz; } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _1607 = max(x, 0.0f) * max(x, 0.0f); float _1608 = _1607 * _1607; return _1608 * _1608; } float3 fog_sun_scatter(float3 fc, float3 dir) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _1627 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _1627)) { break; } uint _1650 = pool_sun(k); if (Lit_1_m0.lights[min(_1650, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_1650, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir, -Lit_1_m0.lights[min(_1650, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 surface_fog(float3 c, float3 world_1, float3 dir) { float amount = 0.0f; bool _1717 = false; float dist = 0.0f; float3 fc = float3(0.0f, 0.0f, 0.0f); float _1725 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; dist = distance(world_1, G_1_m0.camera_pos.xyz); if (Sky_1_m0.fog_origin.w > 0.5f) { dist = max(_1725 - Sky_1_m0.fog_origin.x, 0.0f); } if ((Sky_1_m0.flags.x & 256u) != 0u) { float _1752 = smoothstep(Sky_1_m0.fog_depth.x, Sky_1_m0.fog_depth.y, dist); amount = ((_1752 > 0.0f) ? pow(max(_1752, 9.9999999747524270787835121154785e-07f), Sky_1_m0.fog_depth.z) : 0.0f) * Sky_1_m0.fog.x; } else { amount = 1.0f - exp(min(0.0f, (-dist) * Sky_1_m0.fog.x)); } if (abs(Sky_1_m0.fog.w) >= 9.9999997473787516355514526367188e-05f) { amount = max(amount, 1.0f - exp(min(0.0f, (dot(world_1, Lit_1_m0.up.xyz) - Sky_1_m0.fog.z) * Sky_1_m0.fog.w))); } amount = clamp(amount, 0.0f, 1.0f); fc = Sky_1_m0.fog_color.xyz; if ((Sky_1_m0.flags.x & 8u) != 0u) { _1717 = Sky_1_m0.fog_depth.w > 0.0f; } else { _1717 = false; } if (true ? _1717 : false) { fc = lerp(fc, radiance(sky_dir(dir), lerp(1.0f / float(max(Sky_1_m0.flags.y, 2u) - 1u), 1.0f, 1.0f - clamp((_1725 - Sky_1_m0.fog_origin.y) / max(Sky_1_m0.fog_origin.z - Sky_1_m0.fog_origin.y, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f))) * Sky_1_m0.sun.w, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)); } fc = fog_sun_scatter(fc, dir); return lerp(c, fc, float3(amount, amount, amount)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _1871 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _1875 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_1871 == 4u) { return float2(0.0f, _1875); } float3 _1884 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _1885 = abs(d); bool3 _1886 = bool3(_1885.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _1885.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _1885.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _1887 = float3(_1886.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _1886.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _1886.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _1890 = ((-_1884) - o) / _1887; float3 _1892 = (_1884 - o) / _1887; float3 _1893 = min(_1890, _1892); float3 _1894 = max(_1890, _1892); r = float2(max(0.0f, _1893.y), min(_1875, _1894.y)); if (_1871 == 3u) { r = float2(max(max(r.x, _1893.x), _1893.z), min(min(r.y, _1894.x), _1894.z)); } else { if (_1871 == 0u) { a = dot(d / _1884, d / _1884); b = dot(o / _1884, d / _1884); c = dot(o / _1884, o / _1884) - 1.0f; } else { float _1933 = min(_1884.x, _1884.z); float _1938 = (_1871 == 1u) ? (_1933 / (2.0f * _1884.y)) : 0.0f; float _1941 = _1884.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_1938 * _1938) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_1938 * _1938) * _1941) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_1871 == 1u) ? (((_1938 * _1938) * _1941) * _1941) : (_1933 * _1933)); } } float _1987 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_1987 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _2051 = min(((-b) - sqrt(_1987)) / a, ((-b) + sqrt(_1987)) / a); float _2064 = max(((-b) - sqrt(_1987)) / a, ((-b) + sqrt(_1987)) / a); if (a > 0.0f) { r = float2(max(r.x, _2051), min(r.y, _2064)); } else { if (r.x < min(r.y, _2051)) { r.y = min(r.y, _2051); } else { r.x = max(r.x, _2064); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _2108 = min(k, 15u); rho = Fog_1_m0.entries[_2108].material.x * min(exp2((-Fog_1_m0.entries[_2108].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2108].material.w)), 1.0f); if (Fog_1_m0.entries[_2108].material.z > 0.0f) { uint _2135 = uint(clamp(Fog_1_m0.entries[_2108].albedo.w, 0.0f, 4294967040.0f)); float3 _2138 = Fog_1_m0.entries[_2108].size.xyz * 0.5f; float _2141 = min(_2138.x, _2138.z); if (_2135 == 0u) { float _2147 = length(lp / _2138); sdf = (_2147 * (_2147 - 1.0f)) / max(length(lp / (_2138 * _2138)), 9.9999999600419720025001879548654e-13f); } else { if (_2135 == 3u) { float3 _2160 = abs(lp) - _2138; sdf = length(max(_2160, float3(0.0f, 0.0f, 0.0f))) + min(max(_2160.x, max(_2160.y, _2160.z)), 0.0f); } else { if (_2135 == 2u) { float2 _2181 = float2(length(lp.xz) - _2141, abs(lp.y) - _2138.y); sdf = min(max(_2181.x, _2181.y), 0.0f) + length(max(_2181, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _2141 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _2138.y))), float2(length(lp.xz), lp.y - _2138.y)), (-_2138.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_2108].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_2108].material.z); } return rho; } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float3 fog_light(uint n, float3 p, float3 dir) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _2343 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_2343].lights.z, 8u))) { break; } uint _2379 = min(((((k < 4u) ? Fog_1_m0.entries[_2343].lights.x : Fog_1_m0.entries[_2343].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _2380 = min(_2379, 63u); l = -Lit_1_m0.lights[_2380].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_2380].info.x != 0u) { float3 _2393 = Lit_1_m0.lights[_2380].position.xyz - p; float _2395 = max(length(_2393), 9.9999999747524270787835121154785e-07f); l = _2393 / float3(_2395, _2395, _2395); atten = omni_attenuation(length(_2393), Lit_1_m0.lights[_2380].position.w, Lit_1_m0.lights[_2380].direction.w); if (Lit_1_m0.lights[_2380].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_2380].direction.xyz), Lit_1_m0.lights[_2380].spot.x)) / max(1.0f - Lit_1_m0.lights[_2380].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_2380].spot.y)); } } float _2436 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir, l)); sum += (Lit_1_m0.lights[_2380].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _2436) * sqrt(_2436))) * Fog_1_m0.light_fog[min((_2379 >> 2u), 15u)][min((_2379 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _2234 = min(k, 15u); if ((Fog_1_m0.entries[_2234].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_2234].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_2234].material.y) * a), 1.0f); } float _2252 = clamp((-a) / b, t0, t1); float _2254 = (b > 0.0f) ? _2252 : t0; float _2256 = (b > 0.0f) ? t1 : _2252; float _2261 = ((Fog_1_m0.entries[_2234].material.y * abs(b)) * (_2256 - _2254)) * 0.693147182464599609375f; return Fog_1_m0.entries[_2234].material.x * (((t1 - t0) - (_2256 - _2254)) + ((min(exp2((-Fog_1_m0.entries[_2234].material.y) * max(a + (b * ((b > 0.0f) ? _2254 : _2256)), 0.0f)), 1.0f) * (_2256 - _2254)) * ((_2261 < 0.00999999977648258209228515625f) ? (1.0f - (_2261 * (0.5f - (_2261 * (0.16666667163372039794921875f - (_2261 / 24.0f)))))) : ((1.0f - exp(-_2261)) / _2261)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _2479 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _2481 = false; float tau = 0.0f; bool _2472 = false; uint i = 0u; bool _2474 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _2484 = min(k, 15u); float3 _2490 = mul(float4(o, 1.0f), Fog_1_m0.entries[_2484].to_local).xyz; float3 _2494 = mul(float4(d, 0.0f), Fog_1_m0.entries[_2484].to_local).xyz; float _2501 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2484].material.w; float _2505 = dot(d, Fog_1_m0.up.xyz); bool _2508 = Fog_1_m0.entries[_2484].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_2484].material.y > 0.0f) { _2472 = ((-_2501) / _2505) > ch.x; } else { _2472 = false; } if (_2472) { _2474 = ((-_2501) / _2505) < ch.y; } else { _2474 = false; } if (_2474) { split = (-_2501) / _2505; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_2508 ? 12u : 4u))) { break; } uint _2559 = i & 3u; if (!(_2559 == 0u)) { _2479 = _2559 == 3u; } else { _2479 = true; } float _2567 = _2479 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_2559 == 0u)) { _2481 = _2559 == 3u; } else { _2481 = true; } float _2575 = _2481 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _2578 = float2(split, ch.y); float2 _2581 = float2(ch.x, split); bool _2583 = i < 8u; bool2 _2585 = bool2(_2583, _2583); float2 _2584 = float2(_2585.x ? _2581.x : _2578.x, _2585.y ? _2581.y : _2578.y); bool _2587 = i < 4u; bool2 _2589 = bool2(_2587, _2587); float2 _2588 = float2(_2589.x ? ch.x : _2584.x, _2589.y ? ch.y : _2584.y); float _2593 = (_2588.y - _2588.x) * 0.5f; float _2602 = ((_2588.x + _2588.y) * 0.5f) + (_2593 * ((_2559 < 2u) ? (-_2567) : _2567)); float3 _2604 = o + (d * _2602); float _2607 = fog_density(k, _2604, _2490 + (_2494 * _2602)); if (i < 4u) { q += (((Fog_1_m0.entries[_2484].albedo.xyz * fog_light(k, _2604, d)) + Fog_1_m0.entries[_2484].emission.xyz) * ((_2575 * _2593) * clamp(_2607, 0.0f, 1.0f))); } else { tau += ((_2575 * _2593) * _2607); } i++; continue; } if (!_2508) { tau = fog_falloff_depth(k, _2501, _2505, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _2655; uint i_3 = 0u; uint n = 0u; bool _2661 = false; float2 chords[4] = _2658; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _2665; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _2678 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_2678 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _2708 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_2678) { _2661 = _2708 == 0u; } else { _2661 = false; } if (_2661) { break; } uint _2720 = _2678 ? i_2 : (min(_2708, 16u) - 1u); uint _2721 = min(_2720, 15u); float2 _2730 = fog_chord(_2720, mul(float4(o, 1.0f), Fog_1_m0.entries[_2721].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_2721].to_local).xyz, t_end); if (_2730.y > _2730.x) { at[min(m, 3u)] = _2720; chords[min(m, 3u)] = _2730; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _2886 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _2886)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _3006 = exp(-tau); return (c * _3006) + (q * ((1.0f - _3006) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 fog_volumes(float3 c, float3 world_1, uint list) { float3 _3042 = world_1 - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(world_1, 1.0f), G_1_m0.view).z); bool _3045 = G_1_m0.camera_pos.w > 0.5f; bool3 _3047 = bool3(_3045, _3045, _3045); float3 _3046 = float3(_3047.x ? _3042.x : G_1_m0.camera_pos.xyz.x, _3047.y ? _3042.y : G_1_m0.camera_pos.xyz.y, _3047.z ? _3042.z : G_1_m0.camera_pos.xyz.z); float _3049 = length(world_1 - _3046); float _3051 = max(_3049, 9.9999999747524270787835121154785e-07f); float3 _3054 = fog_integrate(c, _3046, (world_1 - _3046) / float3(_3051, _3051, _3051), _3049, list); bool _3055 = _3049 > 0.0f; bool3 _3057 = bool3(_3055, _3055, _3055); return float3(_3057.x ? _3054.x : c.x, _3057.y ? _3054.y : c.y, _3057.z ? _3054.z : c.z); } float3 hedra_fog(float3 c_in, float3 v) { float3 c = float3(0.0f, 0.0f, 0.0f); c = c_in; if (false) { return c; } if ((Sky_1_m0.flags.x & 128u) != 0u) { c = surface_fog(c, hedra_world, -v); } if (O_1_m0.decals.w != 0u) { c = fog_volumes(c, hedra_world, O_1_m0.decals.w); } return c; } float3 filmic_curve(float3 x) { float _928 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _932 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _938 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _942 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_928, _928, _928))) + float3(_932, _932, _932)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_938, _938, _938))) - float3(_942, _942, _942); } float3 aces_curve(float3 c, float white) { float3 _990 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _998 = ((_990 * (_990 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_990 * ((_990 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _1003 = 1.7999999523162841796875f * white; float _1011 = ((_1003 * (_1003 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_1003 * ((0.98372900485992431640625f * _1003) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _998), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _998), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _998)) / float3(_1011, _1011, _1011); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _1066 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_1066, _1066, _1066); float3 _1071 = v * v; float3 _1072 = _1071 * _1071; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_1071 * 4.01109981536865234375f)) - ((_1071 * 25.68199920654296875f) * v)) + (_1072 * 70.35900115966796875f)) - ((_1072 * 74.7779998779296875f) * v)) + ((_1072 * 27.069000244140625f) * _1071), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _1101 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_1101 * Lit_1_m0.tone.y) + _1101) / ((_1101 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_1101) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_1101, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_1101); } return _1101; } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } float3 srgb_to_linear(float3 c) { float3 _257 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _260 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _262 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_262.x ? _257.x : _260.x, _262.y ? _257.y : _260.y, _262.z ? _257.z : _260.z); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _569; bool _572 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _577 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _577)) { break; } uint _606 = decal_entry(k); uint _609 = min(min(_606, 63u), 63u); float3 _615 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_609].to_local).xyz; if (all(bool3(_615.x >= float3(0.0f, -1.0f, 0.0f).x, _615.y >= float3(0.0f, -1.0f, 0.0f).y, _615.z >= float3(0.0f, -1.0f, 0.0f).z))) { _572 = all(bool3(_615.x <= float3(1.0f, 1.0f, 1.0f).x, _615.y <= float3(1.0f, 1.0f, 1.0f).y, _615.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _572 = false; } if (!_572) { uint _774 = k; k = _774 + 1u; continue; } fade = pow(1.0f - abs(_615.y), (_615.y > 0.0f) ? Decal_1_m0.entries[_609].fades.x : Decal_1_m0.entries[_609].fades.y); if (Decal_1_m0.entries[_609].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_609].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_609].axis_y.xyz) * 0.5f) + 0.5f); } float2 _653 = _615.xz; float _654 = decal_level(Decal_1_m0.entries[_609], world_1); if (Decal_1_m0.entries[_609].layers.x > 0u) { float4 _666 = decal_texel(Decal_1_m0.entries[_609].layers.x, _653, _654, (Decal_1_m0.entries[_609].flags.x & 1u) != 0u); float4 _672 = float4(srgb_to_linear(_666.xyz), _666.w) * Decal_1_m0.entries[_609].modulate; float _675 = _672.w * fade; float _681 = _675 * Decal_1_m0.entries[_609].fades.w; out_s.base = lerp(out_s.base, _672.xyz, float3(_681, _681, _681)); if (Decal_1_m0.entries[_609].layers.y > 0u) { float4 _694 = decal_texel(Decal_1_m0.entries[_609].layers.y, _653, _654, (Decal_1_m0.entries[_609].flags.x & 2u) != 0u); float _697 = (_694.x * 2.0f) - 1.0f; float _700 = 1.0f - (_694.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_609].axis_x.xyz * _697) + (Decal_1_m0.entries[_609].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_697 * _697)) - (_700 * _700))))) + (Decal_1_m0.entries[_609].axis_z.xyz * _700)), float3(_675, _675, _675))); } if (Decal_1_m0.entries[_609].layers.z > 0u) { float4 _734 = decal_texel(Decal_1_m0.entries[_609].layers.z, _653, _654, (Decal_1_m0.entries[_609].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _734.x, _675); out_s.roughness = lerp(out_s.roughness, _734.y, _675); out_s.metallic = lerp(out_s.metallic, _734.z, _675); } } if (Decal_1_m0.entries[_609].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_609].layers.w, _653, _654, (Decal_1_m0.entries[_609].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_609].modulate.xyz) * Decal_1_m0.entries[_609].axis_x.w) * fade); } uint _774 = k; k = _774 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } uint object_light_count() { return min(O_1_m0.lights.z, 8u); } uint object_light(uint k) { return min(((((k < 4u) ? O_1_m0.lights.x : O_1_m0.lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float4 hedra_light_dir(uint i, float3 world_1) { float atten = 0.0f; uint _4458 = min(i, 63u); if (Lit_1_m0.lights[_4458].info.x == 0u) { return float4(-Lit_1_m0.lights[_4458].direction.xyz, 1.0f); } float3 _4472 = Lit_1_m0.lights[_4458].position.xyz - world_1; float _4473 = length(_4472); float _4474 = max(_4473, 9.9999999747524270787835121154785e-07f); float3 _4476 = _4472 / float3(_4474, _4474, _4474); atten = omni_attenuation(_4473, Lit_1_m0.lights[_4458].position.w, Lit_1_m0.lights[_4458].direction.w); if (Lit_1_m0.lights[_4458].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-_4476, Lit_1_m0.lights[_4458].direction.xyz), Lit_1_m0.lights[_4458].spot.x)) / max(1.0f - Lit_1_m0.lights[_4458].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_4458].spot.y)); } return float4(_4476, atten); } float shadow_factor(uint i, float3 world_1, float3 n_geo, float3 l) { int dy = -1; bool _3117 = false; uint part = 0u; bool _3119 = false; uint c = 0u; float vis = 0.0f; bool _3115 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint _3127 = min(i, 63u); uint _3137 = min(Lit_1_m0.lights[min(i, 63u)].info.w, 15u); uint _3140 = min(_3137, 15u); uint _3143 = min(_3137, 15u); uint _3149 = max(Shadow_1_m0.lights[min(_3137, 15u)].info.y, 1u); float _3155 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; if (Lit_1_m0.lights[_3127].info.x == 0u) { if (_3155 > Shadow_1_m0.lights[min(_3137, 15u)].fade.y) { return 1.0f; } part = _3149 - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(c < _3149)) { break; } if (_3155 <= Shadow_1_m0.lights[min(_3137, 15u)].splits[min(c, 3u)]) { part = c; break; } c++; continue; } } uint _3199 = part; uint _3205 = min(min((Shadow_1_m0.lights[_3143].info.x + min(_3199, (_3149 - 1u))), 15u), 15u); float _3212 = Shadow_1_m0.tiles[_3205].texel.x + (Shadow_1_m0.tiles[_3205].texel.y * distance(world_1, Lit_1_m0.lights[min(i, 63u)].position.xyz)); float3 _3223 = (world_1 + (n_geo * ((Shadow_1_m0.lights[_3140].params.y * max(Shadow_1_m0.lights[_3140].params.z, 1.0f)) * _3212))) + (l * (Shadow_1_m0.lights[_3140].params.x * _3212)); if (Lit_1_m0.lights[_3127].info.x == 1u) { float3 _3227 = _3223 - Lit_1_m0.lights[min(i, 63u)].position.xyz; float3 _3228 = abs(_3227); if (_3228.x >= _3228.y) { _3115 = _3228.x >= _3228.z; } else { _3115 = false; } if (_3115) { part = (_3227.x >= 0.0f) ? 0u : 1u; } else { if (_3228.y >= _3228.z) { part = (_3227.y >= 0.0f) ? 2u : 3u; } else { part = (_3227.z >= 0.0f) ? 4u : 5u; } } } uint _3261 = min((Shadow_1_m0.lights[_3143].info.x + min(part, (_3149 - 1u))), 15u); float4 _3266 = mul(float4(_3223, 1.0f), Shadow_1_m0.tiles[min(_3261, 15u)].view_proj); if (_3266.w <= 0.0f) { return 1.0f; } float3 _3274 = _3266.xyz / float3(_3266.www); if (!(abs(_3274.x) > 1.0f)) { _3117 = abs(_3274.y) > 1.0f; } else { _3117 = true; } if (!_3117) { _3119 = _3274.z > 1.0f; } else { _3119 = true; } if (_3119) { return 1.0f; } uint _3295 = min(_3261, 15u); float2 _3308 = Shadow_1_m0.tiles[_3295].rect.xy + (float2((_3274.x * 0.5f) + 0.5f, 0.5f - (_3274.y * 0.5f)) * Shadow_1_m0.tiles[_3295].rect.zw); float _3312 = 0.5f * Shadow_1_m0.atlas.x; float2 _3314 = Shadow_1_m0.tiles[_3295].rect.xy + float2(_3312, _3312); float _3318 = 0.5f * Shadow_1_m0.atlas.x; float2 _3320 = (Shadow_1_m0.tiles[_3295].rect.xy + Shadow_1_m0.tiles[_3295].rect.zw) - float2(_3318, _3318); if (Shadow_1_m0.lights[_3140].params.z <= 0.0f) { vis = t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3308, _3314, _3320), _3274.z); } else { float _3331 = Shadow_1_m0.lights[_3140].params.z * Shadow_1_m0.atlas.x; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(dx <= 1)) { break; } vis += t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3308 + (float2(float(dx), float(dy)) * _3331), _3314, _3320), _3274.z); dx++; continue; } dy++; continue; } vis /= 9.0f; } if (Lit_1_m0.lights[_3127].info.x == 0u) { uint _3396 = min(_3137, 15u); vis = lerp(vis, 1.0f, smoothstep(Shadow_1_m0.lights[_3396].fade.x, Shadow_1_m0.lights[_3396].fade.y, _3155)); } return lerp(1.0f, vis, Shadow_1_m0.lights[_3140].params.w); } float hedra_shadow(uint i, float3 l) { bool _4517 = false; if (false) { _4517 = Lit_1_m0.lights[min(i, 63u)].info.y != 1u; } else { _4517 = true; } if (_4517) { return 1.0f; } return shadow_factor(i, hedra_world, hedra_n_geo, l); } void light() { } float3 f_schlick(float3 f0, float vh) { return f0 + ((float3(1.0f, 1.0f, 1.0f) - f0) * pow(1.0f - vh, 5.0f)); } float d_ggx(float nh, float a2) { float _794 = ((nh * nh) * (a2 - 1.0f)) + 1.0f; return a2 / ((3.1415927410125732421875f * _794) * _794); } float v_smith(float nl, float nv, float a2) { return 0.5f / max((nl * sqrt(((nv * nv) * (1.0f - a2)) + a2)) + (nv * sqrt(((nl * nl) * (1.0f - a2)) + a2)), 9.9999997473787516355514526367188e-05f); } float3 light_specular(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float specular) { float _847 = dot(n, l); if (_847 <= 0.0f) { return float3(0.0f, 0.0f, 0.0f); } float3 _852 = normalize(l + v); return (((diffuse / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) + ((f_schlick(f0, max(dot(v, _852), 0.0f)) * (d_ggx(max(dot(n, _852), 0.0f), a2) * v_smith(_847, max(dot(n, v), 9.9999997473787516355514526367188e-05f), a2))) * specular)) * radiance_1) * _847; } float hedra_schlick(float u) { float _4324 = clamp(1.0f - u, 0.0f, 1.0f); float _4325 = _4324 * _4324; return (_4325 * _4325) * _4324; } float hedra_diffuse_brdf(float nl, float nv, float lh, float r) { float _4337 = max(nl, 0.0f); if (false) { return max(0.0f, (nl + r) / ((1.0f + r) * (1.0f + r))) * 0.3183098733425140380859375f; } if (false) { return smoothstep(-r, max(r, 0.00999999977648258209228515625f), nl) * 0.3183098733425140380859375f; } if (false) { float _4358 = (((2.0f * lh) * lh) * r) - 0.5f; return ((0.3183098733425140380859375f * (1.0f + (_4358 * hedra_schlick(nv)))) * (1.0f + (_4358 * hedra_schlick(_4337)))) * _4337; } return _4337 * 0.3183098733425140380859375f; } float3 hedra_light_modes(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float r, float specular) { float3 c = float3(0.0f, 0.0f, 0.0f); float mid = 0.0f; bool _4385 = false; float _4389 = min(dot(n, l), 1.0f); float _4391 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float3 _4393 = normalize(l + v); c = (diffuse * hedra_diffuse_brdf(_4389, _4391, clamp(dot(l, _4393), 0.0f, 1.0f), r)) * radiance_1; if (r > 0.0f) { if (false) { mid = 1.0f - r; mid *= mid; c += ((diffuse * radiance_1) * ((smoothstep(mid - (r * 0.5f), mid + (r * 0.5f), dot(normalize(-reflect(l, n)), v)) * mid) * specular)); } else { if (false) { _4385 = _4389 > 0.0f; } else { _4385 = false; } if (_4385) { c += (((f_schlick(f0, max(dot(v, _4393), 0.0f)) * (d_ggx(max(dot(n, _4393), 0.0f), a2) * v_smith(_4389, _4391, a2))) * (specular * _4389)) * radiance_1); } } } return c; } float3 probe_light(float3 n) { return max(float3(O_1_m0.gi[0u].x + dot(O_1_m0.gi[0u].yzw, n), O_1_m0.gi[1u].x + dot(O_1_m0.gi[1u].yzw, n), O_1_m0.gi[2u].x + dot(O_1_m0.gi[2u].yzw, n)), float3(0.0f, 0.0f, 0.0f)); } float4 gi_diffuse(float3 n, bool baked, float3 baked_light) { if (baked) { return float4(baked_light, 1.0f); } if (true ? ((O_1_m0.extra.x & 8u) != 0u) : false) { return float4(probe_light(n), 1.0f); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float3 sh_irradiance(float3 n) { float3 c = float3(0.0f, 0.0f, 0.0f); c = Sky_1_m0.sh[0u].xyz * 0.2820949852466583251953125f; c += (Sky_1_m0.sh[1u].xyz * (0.48860299587249755859375f * n.y)); c += (Sky_1_m0.sh[2u].xyz * (0.48860299587249755859375f * n.z)); c += (Sky_1_m0.sh[3u].xyz * (0.48860299587249755859375f * n.x)); c += (Sky_1_m0.sh[4u].xyz * ((1.09254801273345947265625f * n.x) * n.y)); c += (Sky_1_m0.sh[5u].xyz * ((1.09254801273345947265625f * n.y) * n.z)); c += (Sky_1_m0.sh[6u].xyz * (0.3153919875621795654296875f * (((3.0f * n.z) * n.z) - 1.0f))); c += (Sky_1_m0.sh[7u].xyz * ((1.09254801273345947265625f * n.x) * n.z)); c += (Sky_1_m0.sh[8u].xyz * (0.546274006366729736328125f * ((n.x * n.x) - (n.y * n.y)))); return max(c, float3(0.0f, 0.0f, 0.0f)); } float2 env_brdf_approx(float roughness, float nv) { float4 _1586 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * roughness) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f); return (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_1586.x * _1586.x, exp2((-9.27999973297119140625f) * nv)) * _1586.x) + _1586.y)) + _1586.zw; } float probe_weight(ProbeEntryU p, float3 world_1) { float3 _3626 = mul(float4(world_1, 1.0f), p.to_local).xyz; float _3642 = min(p.extents.xyz.x - abs(_3626.x), min(p.extents.xyz.y - abs(_3626.y), p.extents.xyz.z - abs(_3626.z))); if (_3642 < 0.0f) { return 0.0f; } if (!(p.extents.w > 0.0f)) { return 1.0f; } return min(_3642 / p.extents.w, 1.0f); } float probe_exit(float o, float d, float e) { if (d > 0.0f) { return (e - o) / d; } if (d < 0.0f) { return ((-e) - o) / d; } return 3.0000000054977557577780399428115e+38f; } float3 probe_lookup(ProbeEntryU p, float3 world_1, float3 dir) { float3 _3684 = mul(float4(dir, 0.0f), p.to_local).xyz; if ((p.info.x & 1u) == 0u) { return _3684; } float3 _3694 = mul(float4(world_1, 1.0f), p.to_local).xyz; return (_3694 + (_3684 * max(min(probe_exit(_3694.x, _3684.x, p.extents.xyz.x), min(probe_exit(_3694.y, _3684.y, p.extents.xyz.y), probe_exit(_3694.z, _3684.z, p.extents.xyz.z))), 0.0f))) - p.offset.xyz; } float3 probe_face_uv(float3 d) { bool _3468 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _3471 = abs(d); if (_3471.x >= _3471.y) { _3468 = _3471.x >= _3471.z; } else { _3468 = false; } if (_3468) { ma = _3471.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_3471.y >= _3471.z) { ma = _3471.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _3471.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 probe_texel(uint row, float3 fuv, uint level) { float _3558 = 0.5f / float(max((Probe_1_m0.counts.z >> level), 1u)); return t_probes.SampleLevel(s_probes, float2((fuv.x + clamp(fuv.y, _3558, 1.0f - _3558)) / 6.0f, (float(row) + clamp(fuv.z, _3558, 1.0f - _3558)) / 8.0f), float(level)).xyz; } float3 probe_sample(uint row, float3 d, float lod) { bool _3586 = false; uint _3591 = max(Probe_1_m0.counts.y, 1u); float _3594 = clamp(lod, 0.0f, float(_3591 - 1u)); uint _3596 = uint(clamp(_3594, 0.0f, 4294967040.0f)); float _3598 = _3594 - float(_3596); float3 _3599 = probe_face_uv(d); float3 _3600 = probe_texel(row, _3599, _3596); if (!(_3598 <= 0.0f)) { _3586 = (_3596 + 1u) >= _3591; } else { _3586 = true; } if (_3586) { return _3600; } return (_3600 * (1.0f - _3598)) + (probe_texel(row, _3599, _3596 + 1u) * _3598); } float4 probe_reflection(float3 world_1, float3 r, float roughness, uint probes) { float3 acc = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3733 = min(Probe_1_m0.counts.x, 8u); float _3739 = roughness * float(max(Probe_1_m0.counts.y, 1u) - 1u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3733)) { break; } uint _3762 = i; uint _3764 = min(_3762, 7u); if (((probes >> Probe_1_m0.probes[_3764].info.w) & 1u) == 0u) { uint _3790 = i; i = _3790 + 1u; continue; } float _3774 = probe_weight(Probe_1_m0.probes[_3764], world_1); if (_3774 <= 0.0f) { uint _3790 = i; i = _3790 + 1u; continue; } acc += ((probe_sample(Probe_1_m0.probes[_3764].info.w, probe_lookup(Probe_1_m0.probes[_3764], world_1, r), _3739) * Probe_1_m0.probes[_3764].offset.w) * _3774); w_sum += _3774; uint _3790 = i; i = _3790 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float4 probe_ambient(float3 world_1, float3 n, uint probes) { float3 c = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; bool _3815 = false; float3 acc = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3822 = min(Probe_1_m0.counts.x, 8u); uint _3826 = max(Probe_1_m0.counts.y, 1u) - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3822)) { break; } uint _3848 = i; uint _3849 = min(_3848, 7u); if (!(((probes >> Probe_1_m0.probes[_3849].info.w) & 1u) == 0u)) { _3815 = Probe_1_m0.probes[_3849].info.y == 0u; } else { _3815 = true; } if (_3815) { uint _3892 = i; i = _3892 + 1u; continue; } float _3867 = probe_weight(Probe_1_m0.probes[_3849], world_1); if (_3867 <= 0.0f) { uint _3892 = i; i = _3892 + 1u; continue; } c = Probe_1_m0.probes[_3849].ambient.xyz; if (Probe_1_m0.probes[_3849].info.y == 1u) { c = probe_texel(Probe_1_m0.probes[_3849].info.w, probe_face_uv(mul(float4(n, 0.0f), Probe_1_m0.probes[_3849].to_local).xyz), _3826); } acc += (c * _3867); w_sum += _3867; uint _3892 = i; i = _3892 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float3 sky(float3 dir) { float _883 = acos(clamp(dot(normalize(dir), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_883 <= 1.57079637050628662109375f) { float _893 = clamp(1.0f - pow(max(1.0f - (1.0f - (_883 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_893, _893, _893)); } float _908 = clamp(1.0f - pow(max(1.0f - ((_883 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_908, _908, _908)); } float3 hedra_ambient(float3 n, float3 v, float3 diffuse, float3 f0, float roughness, float metallic) { float3 dif = float3(0.0f, 0.0f, 0.0f); float3 diffuse_amb = float3(0.0f, 0.0f, 0.0f); float3 dif_1 = float3(0.0f, 0.0f, 0.0f); float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 dif_2 = float3(0.0f, 0.0f, 0.0f); float3 spec_amb = float3(0.0f, 0.0f, 0.0f); float _4565 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float _4566 = 1.0f - roughness; float3 _4573 = f0 + ((max(float3(_4566, _4566, _4566), f0) - f0) * pow(1.0f - _4565, 5.0f)); float4 _4574 = gi_diffuse(n, false, float3(0.0f, 0.0f, 0.0f)); if ((Sky_1_m0.flags.x & 8u) != 0u) { float _4586 = Sky_1_m0.ibl.x * Sky_1_m0.sun.w; diffuse_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 16u) != 0u) { diffuse_amb = lerp(Sky_1_m0.ambient.xyz, sh_irradiance(sky_dir(n)) * _4586, float3(Sky_1_m0.ambient.w, Sky_1_m0.ambient.w, Sky_1_m0.ambient.w)); } if (_4574.w > 0.0f) { diffuse_amb = _4574.xyz; } spec_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 32u) != 0u) { spec_amb = radiance(sky_dir(reflect(-v, n)), roughness) * _4586; } else { if ((Sky_1_m0.flags.x & 64u) != 0u) { spec_amb = float3(0.0f, 0.0f, 0.0f); } } float2 _4632 = env_brdf_approx(roughness, _4565); if (Probe_1_m0.counts.x > 0u) { float4 _4643 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_1 = diffuse_amb; if (_4574.w <= 0.0f) { float4 _4657 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_1 = (diffuse_amb * (1.0f - _4657.w)) + _4657.xyz; } float _4672 = _4632.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * dif_1) + (((spec_amb * (1.0f - _4643.w)) + _4643.xyz) * ((f0 * _4632.x) + float3(_4672, _4672, _4672))); } else { float _4686 = _4632.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * diffuse_amb) + (spec_amb * ((f0 * _4632.x) + float3(_4686, _4686, _4686))); } } else { if ((Lit_1_m0.counts.y & 2u) != 0u) { float3 _4708 = (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f; float _4720 = clamp((dot(n, Lit_1_m0.up.xyz) * 0.5f) + 0.5f, 0.0f, 1.0f); float3 _4721 = lerp((Lit_1_m0.ground_horizon.xyz + Lit_1_m0.ground_bottom.xyz) * 0.5f, _4708, float3(_4720, _4720, _4720)); float3 _4726 = lerp(sky(reflect(-v, n)), _4708, float3(roughness, roughness, roughness)); if (Probe_1_m0.counts.x > 0u) { float4 _4738 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif = _4574.xyz; if (_4574.w <= 0.0f) { float4 _4754 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif = ((_4721 * Lit_1_m0.ambient.w) * (1.0f - _4754.w)) + _4754.xyz; } ambient = (diffuse * dif) + ((((_4726 * Lit_1_m0.ambient.w) * (1.0f - _4738.w)) + _4738.xyz) * _4573); } else { if (_4574.w > 0.0f) { ambient = (diffuse * _4574.xyz) + ((_4726 * _4573) * Lit_1_m0.ambient.w); } else { ambient = ((diffuse * _4721) + (_4726 * _4573)) * Lit_1_m0.ambient.w; } } } else { if (Probe_1_m0.counts.x > 0u) { float4 _4795 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_2 = _4574.xyz; if (_4574.w <= 0.0f) { float4 _4811 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_2 = (Lit_1_m0.ambient.xyz * (1.0f - _4811.w)) + _4811.xyz; } ambient = (diffuse * dif_2) + (((Lit_1_m0.ambient.xyz * (1.0f - _4795.w)) + _4795.xyz) * _4573); } else { if (_4574.w > 0.0f) { ambient = (diffuse * _4574.xyz) + (Lit_1_m0.ambient.xyz * _4573); } else { ambient = Lit_1_m0.ambient.xyz * (diffuse + _4573); } } } } return ambient; } bool hedra_transparent() { bool _4019 = false; bool _4021 = false; if (false) { _4019 = true; } else { _4019 = false; } if (!_4019) { _4021 = false; } else { _4021 = true; } return _4021; } float3 hedra_lit(float4 clip) { bool _4914 = false; bool _4908 = false; DecalSurface surf = _4905; float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 radiance_1 = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); bool _4917 = false; bool _4912 = false; uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); DecalSurface _4929 = { ALBEDO, clamp(METALLIC, 0.0f, 1.0f), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f), AO, hedra_n, EMISSION }; surf = _4929; if (O_1_m0.decals.z > 0u) { DecalSurface _4937 = surf; surf = apply_decals(hedra_world, hedra_n_geo, _4937); ALBEDO = surf.base; METALLIC = surf.metallic; ROUGHNESS = surf.roughness; NORMAL = normalize(mul(surf.normal, hedra_mat3(G_1_m0.view))); } float _4959 = ((surf.roughness * surf.roughness) * surf.roughness) * surf.roughness; float3 _4963 = surf.base * (1.0f - surf.metallic); float _4967 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; float3 _4969 = lerp(float3(_4967, _4967, _4967), surf.base, float3(surf.metallic, surf.metallic, surf.metallic)); float3 _4974 = hedra_view_dir(hedra_world); float3x3 _4977 = hedra_mat3(G_1_m0.view); float _4981 = lerp(1.0f, surf.occlusion, AO_LIGHT_AFFECT); DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); uint _4982 = object_light_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _4982)) { break; } uint _5005 = object_light(k); uint _5006 = min(_5005, 63u); float4 _5010 = hedra_light_dir(_5005, hedra_world); float3 _5011 = _5010.xyz; float _5012 = _5010.w; if (false) { if (!(Lit_1_m0.lights[_5006].info.x == 0u)) { _4908 = _5012 > 0.0f; } else { _4908 = true; } if (_4908) { LIGHT = normalize(mul(_5011, _4977)); LIGHT_COLOR = Lit_1_m0.lights[_5006].color.xyz; ATTENUATION = _5012 * hedra_shadow(_5005, _5011); LIGHT_IS_DIRECTIONAL = Lit_1_m0.lights[_5006].info.x == 0u; SPECULAR_AMOUNT = Lit_1_m0.lights[_5006].spot.z; light(); } uint _5119 = k; k = _5119 + 1u; continue; } if (RIM > 0.0f) { c += (((_4963 * Lit_1_m0.lights[_5006].color.xyz) * (pow(max(9.9999997473787516355514526367188e-05f, 1.0f - max(dot(surf.normal, _4974), 9.9999997473787516355514526367188e-05f)), max(0.0f, (1.0f - surf.roughness) * 16.0f)) * RIM)) * lerp(float3(1.0f, 1.0f, 1.0f), surf.base, float3(RIM_TINT, RIM_TINT, RIM_TINT))); } if (_5012 > 0.0f) { radiance_1 = Lit_1_m0.lights[_5006].color.xyz * _5012; if (Lit_1_m0.lights[_5006].info.y == 1u) { _4912 = false; } else { _4912 = false; } if (_4912) { radiance_1 = Lit_1_m0.lights[_5006].color.xyz * (_5012 * shadow_factor(_5005, hedra_world, hedra_n_geo, _5011)); } if (true) { _4914 = false; } else { _4914 = false; } if (_4914) { c += light_specular(surf.normal, _4974, _5011, radiance_1, _4963, _4969, _4959, Lit_1_m0.lights[_5006].spot.z); } else { c += hedra_light_modes(surf.normal, _4974, _5011, radiance_1, _4963, _4969, _4959, surf.roughness, Lit_1_m0.lights[_5006].spot.z); } if (any(bool3(BACKLIGHT.x > float3(0.0f, 0.0f, 0.0f).x, BACKLIGHT.y > float3(0.0f, 0.0f, 0.0f).y, BACKLIGHT.z > float3(0.0f, 0.0f, 0.0f).z))) { c += (((_4963 * radiance_1) * BACKLIGHT) * (0.3183098733425140380859375f - (max(min(dot(surf.normal, _5011), 1.0f), 0.0f) * 0.3183098733425140380859375f))); } } uint _5119 = k; k = _5119 + 1u; continue; } if (false) { c = (((DIFFUSE_LIGHT * surf.base) * _4981) * (1.0f - surf.metallic)) + (SPECULAR_LIGHT * _4981); } else { if (AO_LIGHT_AFFECT > 0.0f) { c *= _4981; } } if (true) { ambient = hedra_ambient(surf.normal, _4974, _4963, _4969, surf.roughness, surf.metallic); } if ((Lit_1_m0.counts.y & 4u) != 0u) { _4917 = !hedra_transparent(); } else { _4917 = false; } if (_4917) { int _5162; spvTextureSize(t_ao, 0u, _5162); int _5164 = int(min(uint(0), uint(int(_5162) - 1))); uint _5165_dummy_parameter; float4 _5169 = t_ao.Load(int3(int2(min(uint2(int2(clamp(floor(clip.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ao, uint(_5164), _5165_dummy_parameter)) - int2(1, 1)))), _5164)); float _5170 = _5169.x; c *= lerp(1.0f, min(_5170, surf.occlusion), Lit_1_m0.tone.z * Lit_1_m0.tone.w); c += (ambient * min(surf.occlusion, _5170)); } else { c += (ambient * surf.occlusion); } c += surf.emission; return tonemap(hedra_fog(c, _4974)); } float3 hedra_bindings() { return (t_panorama.SampleLevel(s_panorama, float2(0.5f, 0.5f), 0.0f).xyz + t_lightmap.SampleLevel(s_lightmap, float3(float2(0.5f, 0.5f), float(0)), 0.0f).xyz) + t_screen.SampleLevel(s_radiance, float2(0.5f, 0.5f), 0.0f).xyz; } float3 item_fade(float3 c) { if (true ? ((O_1_m0.extra.x & 64u) == 0u) : true) { return c; } return lerp(c, tonemap(O_1_m0.normal[3u].xyz), float3(O_1_m0.normal[3u].www)); } float3 emerge_tint(float3 c, float r) { bool _1267 = false; if (!((O_1_m0.extra.x & 32u) == 0u)) { _1267 = r >= 1.0f; } else { _1267 = true; } if (true ? _1267 : true) { return c; } float _1289 = smoothstep(0.0f, 1.0f, r); return lerp(tonemap(srgb_to_linear(spvUnpackUnorm4x8(O_1_m0.extra.w).xyz)), c, float3(_1289, _1289, _1289)); } float3 linear_to_srgb(float3 c) { float3 _387 = c * 12.9200000762939453125f; float3 _390 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _391 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_391.x ? _387.x : _390.x, _391.y ? _387.y : _390.y, _391.z ? _387.z : _390.z); } float4 hedra_output(float3 c) { float3 rgb = float3(0.0f, 0.0f, 0.0f); rgb = c; if (false) { rgb *= PREMUL_ALPHA_FACTOR; } float4 _5220 = float4(rgb, hedra_transparent() ? ALPHA : 1.0f); if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(_5220.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(_5220.w, 0.0f, 1.0f)); } float4 _5232 = clamp(_5220, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if ((G_1_m0.params.z & 2u) != 0u) { return float4(linear_to_srgb(_5232.xyz), _5232.w); } return _5232; } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); CustomOut _5267 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_5267, gl_FrontFacing); if (hedra_culled(_5267.flags)) { discard; } float _5342 = emerge_reveal(_5267.world, _5267.clip.xy); if (_5342 <= 0.0f) { discard; } if (true) { c = tonemap(hedra_fog(ALBEDO, hedra_view_dir(hedra_world))); } else { float3 _5355 = hedra_lit(_5267.clip); c = _5355; } if (Lit_1_m0.counts.w == 4294967295u) { c += hedra_bindings(); } if (G_1_m0.params.x == 8u) { c = emerge_tint(item_fade(c), _5342); } _5301 = hedra_output(c); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output._5301 = _5301; return stage_output; } fs_custom_depthmain =struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 tint; float reflectivity; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D matcap : register(t4); Texture2D albedo_texture : register(t5); SamplerState SAMPLER_NEAREST_CLAMP : register(s2); SamplerState SAMPLER_NEAREST_REPEAT : register(s3); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float4 env_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 base_uv = float3(0.0f, 0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1216 = transpose(hedra_mat3(m)); return float4x4(float4(_1216[0], 0.0f), float4(_1216[1], 0.0f), float4(_1216[2], 0.0f), float4(-mul(m[3].xyz, _1216), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { env_uv = i.hedra_v0; base_uv = i.hedra_v1.xyz; } void fragment() { ALBEDO = lerp(albedo_texture.Sample(SAMPLER_NEAREST_REPEAT, base_uv.xy / float2(base_uv.z, base_uv.z)).xyz, matcap.Sample(SAMPLER_NEAREST_CLAMP, env_uv.xy / float2(env_uv.z, env_uv.z)).xyz * hedra_p_1_m0.tint, float3(hedra_p_1_m0.reflectivity, hedra_p_1_m0.reflectivity, hedra_p_1_m0.reflectivity)); } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1377 = facing != hedra_mirrored(_in.flags); hedra_front = _1377; FRONT_FACING = _1377; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1393 = hedra_mat3(G_1_m0.view); float3 _1396 = -normalize(_in.normal); float3 _1398 = normalize(_in.normal); bool3 _1400 = bool3(_1377, _1377, _1377); float3 _1399 = float3(_1400.x ? _1398.x : _1396.x, _1400.y ? _1398.y : _1396.y, _1400.z ? _1398.z : _1396.z); hedra_n_geo = _1399; hedra_n = _1399; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1399 * dot(_1399, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1422 = VERTEX; NORMAL = normalize(mul(_1399, _1393)); float3 _1425 = NORMAL; TANGENT = normalize(mul(t, _1393)); BINORMAL = normalize(mul(cross(_1399, t) * _in.tangent.w, _1393)); float3 _1433 = normalize(-VERTEX); bool _1436 = G_1_m0.camera_pos.w > 0.5f; bool3 _1438 = bool3(_1436, _1436, _1436); VIEW = float3(_1438.x ? float3(0.0f, 0.0f, 1.0f).x : _1433.x, _1438.y ? float3(0.0f, 0.0f, 1.0f).y : _1433.y, _1438.z ? float3(0.0f, 0.0f, 1.0f).z : _1433.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1444 = transpose(_1393); if (any(bool3(NORMAL.x != _1425.x, NORMAL.y != _1425.y, NORMAL.z != _1425.z))) { hedra_n = normalize(mul(NORMAL, _1444)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1444)); } if (any(bool3(LIGHT_VERTEX.x != _1422.x, LIGHT_VERTEX.y != _1422.y, LIGHT_VERTEX.z != _1422.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _711 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_711, _711, _711); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _737 = floor(p); float3 _738 = frac(p); float3 _742 = (_738 * _738) * (float3(3.0f, 3.0f, 3.0f) - (_738 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_737), emerge_hash(_737 + float3(1.0f, 0.0f, 0.0f)), _742.x), lerp(emerge_hash(_737 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_737 + float3(1.0f, 1.0f, 0.0f)), _742.x), _742.y), lerp(lerp(emerge_hash(_737 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_737 + float3(1.0f, 0.0f, 1.0f)), _742.x), lerp(emerge_hash(_737 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_737 + float3(1.0f, 1.0f, 1.0f)), _742.x), _742.y), _742.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _799 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_799) * 0.64999997615814208984375f) + (emerge_noise((_799 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1703 = false; bool _1705 = false; CustomOut _1660 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1660, gl_FrontFacing); if (!((_1660.flags & 2u) != 0u)) { if (false) { _1705 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1705 = false; } _1703 = _1705; } else { _1703 = true; } if (_1703) { discard; } if (emerge_reveal(_1660.world, float2(-1.0f, -1.0f)) <= 0.0f) { discard; } else { return; } } void main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); }  fs_custom_idmainÇ?struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 tint; float reflectivity; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const IdOut _1736 = { float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D matcap : register(t4); Texture2D albedo_texture : register(t5); SamplerState SAMPLER_NEAREST_CLAMP : register(s2); SamplerState SAMPLER_NEAREST_REPEAT : register(s3); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 id; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 id : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float4 env_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 base_uv = float3(0.0f, 0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1216 = transpose(hedra_mat3(m)); return float4x4(float4(_1216[0], 0.0f), float4(_1216[1], 0.0f), float4(_1216[2], 0.0f), float4(-mul(m[3].xyz, _1216), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { env_uv = i.hedra_v0; base_uv = i.hedra_v1.xyz; } void fragment() { ALBEDO = lerp(albedo_texture.Sample(SAMPLER_NEAREST_REPEAT, base_uv.xy / float2(base_uv.z, base_uv.z)).xyz, matcap.Sample(SAMPLER_NEAREST_CLAMP, env_uv.xy / float2(env_uv.z, env_uv.z)).xyz * hedra_p_1_m0.tint, float3(hedra_p_1_m0.reflectivity, hedra_p_1_m0.reflectivity, hedra_p_1_m0.reflectivity)); } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1377 = facing != hedra_mirrored(_in.flags); hedra_front = _1377; FRONT_FACING = _1377; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1393 = hedra_mat3(G_1_m0.view); float3 _1396 = -normalize(_in.normal); float3 _1398 = normalize(_in.normal); bool3 _1400 = bool3(_1377, _1377, _1377); float3 _1399 = float3(_1400.x ? _1398.x : _1396.x, _1400.y ? _1398.y : _1396.y, _1400.z ? _1398.z : _1396.z); hedra_n_geo = _1399; hedra_n = _1399; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1399 * dot(_1399, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1422 = VERTEX; NORMAL = normalize(mul(_1399, _1393)); float3 _1425 = NORMAL; TANGENT = normalize(mul(t, _1393)); BINORMAL = normalize(mul(cross(_1399, t) * _in.tangent.w, _1393)); float3 _1433 = normalize(-VERTEX); bool _1436 = G_1_m0.camera_pos.w > 0.5f; bool3 _1438 = bool3(_1436, _1436, _1436); VIEW = float3(_1438.x ? float3(0.0f, 0.0f, 1.0f).x : _1433.x, _1438.y ? float3(0.0f, 0.0f, 1.0f).y : _1433.y, _1438.z ? float3(0.0f, 0.0f, 1.0f).z : _1433.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1444 = transpose(_1393); if (any(bool3(NORMAL.x != _1425.x, NORMAL.y != _1425.y, NORMAL.z != _1425.z))) { hedra_n = normalize(mul(NORMAL, _1444)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1444)); } if (any(bool3(LIGHT_VERTEX.x != _1422.x, LIGHT_VERTEX.y != _1422.y, LIGHT_VERTEX.z != _1422.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1509 = false; bool _1511 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _1509 = hedra_front; } else { _1509 = false; } if (_1509) { return true; } if (false) { _1511 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1511 = false; } return _1511; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _711 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_711, _711, _711); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _737 = floor(p); float3 _738 = frac(p); float3 _742 = (_738 * _738) * (float3(3.0f, 3.0f, 3.0f) - (_738 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_737), emerge_hash(_737 + float3(1.0f, 0.0f, 0.0f)), _742.x), lerp(emerge_hash(_737 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_737 + float3(1.0f, 1.0f, 0.0f)), _742.x), _742.y), lerp(lerp(emerge_hash(_737 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_737 + float3(1.0f, 0.0f, 1.0f)), _742.x), lerp(emerge_hash(_737 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_737 + float3(1.0f, 1.0f, 1.0f)), _742.x), _742.y), _742.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _799 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_799) * 0.64999997615814208984375f) + (emerge_noise((_799 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1732 = false; IdOut _out = _1736; CustomOut _1686 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1686, gl_FrontFacing); if (!hedra_culled(_1686.flags)) { _1732 = emerge_reveal(_1686.world, _1686.clip.xy) <= 0.0f; } else { _1732 = true; } if (_1732) { discard; } _out.id = float4(float(O_1_m0.params.z & 255u), float((O_1_m0.params.z >> 8u) & 255u), float((O_1_m0.params.z >> 16u) & 255u), float(uint(O_1_m0.params.x == 1u) | ((O_1_m0.params.y == 1u) ? 2u : 0u))) / float4(255.0f, 255.0f, 255.0f, 255.0f); id = _out.id; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.id = id; return stage_output; } fs_custom_normal_depthmainŽAstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 tint; float reflectivity; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const HedraNormalDepthOut _1737 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D matcap : register(t4); Texture2D albedo_texture : register(t5); SamplerState SAMPLER_NEAREST_CLAMP : register(s2); SamplerState SAMPLER_NEAREST_REPEAT : register(s3); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 normal_depth; static float4 surface; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 normal_depth : SV_Target0; float4 surface : SV_Target1; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float4 env_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 base_uv = float3(0.0f, 0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1216 = transpose(hedra_mat3(m)); return float4x4(float4(_1216[0], 0.0f), float4(_1216[1], 0.0f), float4(_1216[2], 0.0f), float4(-mul(m[3].xyz, _1216), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { env_uv = i.hedra_v0; base_uv = i.hedra_v1.xyz; } void fragment() { ALBEDO = lerp(albedo_texture.Sample(SAMPLER_NEAREST_REPEAT, base_uv.xy / float2(base_uv.z, base_uv.z)).xyz, matcap.Sample(SAMPLER_NEAREST_CLAMP, env_uv.xy / float2(env_uv.z, env_uv.z)).xyz * hedra_p_1_m0.tint, float3(hedra_p_1_m0.reflectivity, hedra_p_1_m0.reflectivity, hedra_p_1_m0.reflectivity)); } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1377 = facing != hedra_mirrored(_in.flags); hedra_front = _1377; FRONT_FACING = _1377; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1393 = hedra_mat3(G_1_m0.view); float3 _1396 = -normalize(_in.normal); float3 _1398 = normalize(_in.normal); bool3 _1400 = bool3(_1377, _1377, _1377); float3 _1399 = float3(_1400.x ? _1398.x : _1396.x, _1400.y ? _1398.y : _1396.y, _1400.z ? _1398.z : _1396.z); hedra_n_geo = _1399; hedra_n = _1399; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1399 * dot(_1399, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1422 = VERTEX; NORMAL = normalize(mul(_1399, _1393)); float3 _1425 = NORMAL; TANGENT = normalize(mul(t, _1393)); BINORMAL = normalize(mul(cross(_1399, t) * _in.tangent.w, _1393)); float3 _1433 = normalize(-VERTEX); bool _1436 = G_1_m0.camera_pos.w > 0.5f; bool3 _1438 = bool3(_1436, _1436, _1436); VIEW = float3(_1438.x ? float3(0.0f, 0.0f, 1.0f).x : _1433.x, _1438.y ? float3(0.0f, 0.0f, 1.0f).y : _1433.y, _1438.z ? float3(0.0f, 0.0f, 1.0f).z : _1433.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1444 = transpose(_1393); if (any(bool3(NORMAL.x != _1425.x, NORMAL.y != _1425.y, NORMAL.z != _1425.z))) { hedra_n = normalize(mul(NORMAL, _1444)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1444)); } if (any(bool3(LIGHT_VERTEX.x != _1422.x, LIGHT_VERTEX.y != _1422.y, LIGHT_VERTEX.z != _1422.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1509 = false; bool _1511 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _1509 = hedra_front; } else { _1509 = false; } if (_1509) { return true; } if (false) { _1511 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1511 = false; } return _1511; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _711 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_711, _711, _711); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _737 = floor(p); float3 _738 = frac(p); float3 _742 = (_738 * _738) * (float3(3.0f, 3.0f, 3.0f) - (_738 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_737), emerge_hash(_737 + float3(1.0f, 0.0f, 0.0f)), _742.x), lerp(emerge_hash(_737 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_737 + float3(1.0f, 1.0f, 0.0f)), _742.x), _742.y), lerp(lerp(emerge_hash(_737 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_737 + float3(1.0f, 0.0f, 1.0f)), _742.x), lerp(emerge_hash(_737 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_737 + float3(1.0f, 1.0f, 1.0f)), _742.x), _742.y), _742.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _799 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_799) * 0.64999997615814208984375f) + (emerge_noise((_799 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1733 = false; HedraNormalDepthOut _out = _1737; CustomOut _1686 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1686, gl_FrontFacing); if (!hedra_culled(_1686.flags)) { _1733 = emerge_reveal(_1686.world, _1686.clip.xy) <= 0.0f; } else { _1733 = true; } if (_1733) { discard; } float _1761 = clamp(METALLIC, 0.0f, 1.0f); float _1765 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; _out.normal_depth = float4(normalize(mul(hedra_n, hedra_mat3(G_1_m0.view))), -mul(float4(_1686.world, 1.0f), G_1_m0.view).z); _out.surface = float4(clamp(lerp(float3(_1765, _1765, _1765), ALBEDO, float3(_1761, _1761, _1761)), float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f)); normal_depth = _out.normal_depth; surface = _out.surface; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.normal_depth = normal_depth; stage_output.surface = surface; return stage_output; }  @Ð Ð/ ,@   {Ðþ—4ÌhÜäF‚�SKw;É 3XÒ`Í[k&ÕÖ¯ÅHSLTGlobals@ viewÿÿÿÿproj@ÿÿÿÿ view_proj€ÿÿÿÿ camera_posÀÿÿÿÿviewportÐÿÿÿÿ wire_coloràÿÿÿÿ select_colorðÿÿÿÿ active_colorÿÿÿÿgridÿÿÿÿparams ÿÿÿÿfparams0ÿÿÿÿG_block@ObjectUmodelÿÿÿÿnormal@ÿÿÿÿcolor€ÿÿÿÿparams�ÿÿÿÿextra ÿÿÿÿgi°ÿÿÿÿdecalsàÿÿÿÿlightsðÿÿÿÿO_block HedraParamstintÿÿÿÿ reflectivity ÿÿÿÿsnap_resolutionÿÿÿÿ hedra_p_blockLightUPcolorÿÿÿÿpositionÿÿÿÿ direction ÿÿÿÿspot0ÿÿÿÿinfo@ÿÿÿÿLitUÐ countsÿÿÿÿambientÿÿÿÿtone ÿÿÿÿup0ÿÿÿÿsky_top@ÿÿÿÿ sky_horizonPÿÿÿÿground_horizon`ÿÿÿÿ ground_bottompÿÿÿÿ inv_view_proj€ÿÿÿÿdirsÀÿÿÿÿlightsÐ@P Lit_blockÐ ShadowLightU@paramsÿÿÿÿsplitsÿÿÿÿfade ÿÿÿÿinfo0ÿÿÿÿ ShadowTileU` view_projÿÿÿÿrect@ÿÿÿÿtexelPÿÿÿÿShadowU atlasÿÿÿÿlights@ tiles` Shadow_block  SunU  directionÿÿÿÿcolorÿÿÿÿSkyUflagsÿÿÿÿto_skyÿÿÿÿsky_topPÿÿÿÿ sky_horizon`ÿÿÿÿ ground_bottompÿÿÿÿground_horizon€ÿÿÿÿsun�ÿÿÿÿambient ÿÿÿÿibl°ÿÿÿÿ fog_colorÀÿÿÿÿfogÐÿÿÿÿ fog_depthàÿÿÿÿ fog_originðÿÿÿÿsuns sh€ ÿÿÿÿ Sky_block ProbeEntryU€to_localÿÿÿÿextents@ÿÿÿÿoffsetPÿÿÿÿambient`ÿÿÿÿinfopÿÿÿÿProbeUcountsÿÿÿÿprobes€ Probe_block DecalEntryU°to_localÿÿÿÿmodulate@ÿÿÿÿfadesPÿÿÿÿaxis_x`ÿÿÿÿaxis_ypÿÿÿÿaxis_z€ÿÿÿÿlayers�ÿÿÿÿflags ÿÿÿÿDecalU ,countsÿÿÿÿlodÿÿÿÿentries @° Decal_block , FogEntryU�to_localÿÿÿÿsize@ÿÿÿÿmaterialPÿÿÿÿalbedo`ÿÿÿÿemissionpÿÿÿÿlights€ÿÿÿÿFogU@ countsÿÿÿÿparamsÿÿÿÿambient ÿÿÿÿup0ÿÿÿÿ light_fog@ÿÿÿÿentries@� Fog_block@ GOhedra_pLitShadow SkyProbeDecalFogt_shadowÿÿÿÿ t_radianceÿÿÿÿ t_panoramaÿÿÿÿt_aoÿÿÿÿ t_lightmapÿÿÿÿt_probesÿÿÿÿt_decalsÿÿÿÿt_screenÿÿÿÿmatcapÿÿÿÿalbedo_textureÿÿÿÿs_shadowÿÿÿÿ s_radianceÿÿÿÿ s_panoramaÿÿÿÿ s_lightmapÿÿÿÿs_probesÿÿÿÿs_decalsÿÿÿÿSAMPLER_NEAREST_CLAMPÿÿÿÿSAMPLER_NEAREST_REPEATÿÿÿÿ vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depth¨3#92 GLSL.std.450%vs_customÿ   !"#$#¤vs_custom_instancedy{}�ƒ†ˆŠŒŽ‘“•—˜™š›œ�žŸ ¡¢£Vvs_custom_skinned3579;=@CEGIJKLMNOPQRSTUùfs_customÛÝßáãåçéëíïñóõø^fs_custom_depthBDFHJLNPRTVXZ\£fs_custom_id†ˆŠŒŽ�’”–˜šœž ¢ûfs_custom_normal_depthÝßáãåçéëíïñóõ÷ùúù^£ûH#HHH#@HHH#€HHH#ÀH#ÐH#àH#ðH#H#H # H #0G H #H H H #@H H H #€H #�H # H #°H #àH #ðGH#H#H# H#0H#@GPH#H#H# H#0H#@H#PH#`H#pH#€HHH #ÀH #ÐH#H#H# H#0H#HHH#@H#PG@G`H#H#H#H#H#G GH!#H!#H!H!H!#PH!#`H!#pH!#€H!#�H!# H!#°H! #ÀH! #ÐH! #àH! #ðH! #H!#€H%#H%H%H%#@H%#PH%#`H%#pG&€H(#H(#H)#H)H)H)#@H)#PH)#`H)#pH)#€H)#�H)# G*°H+#H+#H+# H,#H,# H,#H,#H,# H,#0H/#H/#H/# H/#(H/#0H/#@H0#H0#H0# H0#0H3#H3H3H3#@H3#PH3#`H3#pH3#€G4G5�H6#H6#H6# H6#0H6#@H6#@G7G8G9G:H<#H=#H=#H>#H>#H># H?#H?#H@#H@#H@# H@#0H@#8H@#@H@#PH@#`H@#hH@ #pH@ #€H@ #�H@ # HA#HB#HB# HB#HD#HD#G�"G�!G‚H‚#G„"G„!G…H…#G‡"G‡!GˆHˆ#GŠ"GŠ!G‹H‹#G�"G�!G�"G�!G‘"G‘!G’H’#G”"G”!G–"G–!G˜"G˜!G™"G™!Gš"Gš!G›"G›!G�"G�!Gž"Gž!GŸHŸ#G¡"G¡!G¢"G¢!G£"G£!G¤H¤#G¦"G¦!G§"G§!G¨"G¨!G©H©#G«"G«!G¬H¬#G®"G®!Gò"Gò!GóHó#Gõ"Gõ!Gö"Gö!G÷"G÷!Gø"Gø!GÿGGGG G G G *G GGGGGGGGG G G!G" G# G$ GyG{G}GG�GƒG†GˆGŠGŒ GŽ G‘G“G• *G— G˜G™GšG›G›GœG�GžGŸGŸG G¡ G¢ G£ G3G5G7G9G;G=G@ GC GE GG *GI GJGKGLGMGMGNGOGPGQGQGRGS GT GU GÛ GÝGßGáGãGãGåGçGéGëGëGíGï Gñ Gó Gõ GõGøGB GDGFGHGJGJGLGNGPGRGRGTGV GX GZ G\ G\G† GˆGŠGŒGŽGŽG�G’G”G–G–G˜Gš Gœ Gž G  G G¢GÝ GßGáGãGåGåGçGéGëGíGíGïGñ Gó Gõ G÷ G÷GùGú   +       +  +@ + ++  ! " # $%+'&%'(& )*)+*,  -. / -01 2.345364578-9+;ý:;<:=>?@ --AB - C@D+E+F+G+H+I+J+K ) L+MÛI@+NÛÉ@+OTø-@+Pÿÿÿÿ+Q¯´´>, RQQQ+Sެ,>+T ý|>+Uš™?, VSTU+W”„>+XÍÌÌ>+Y°¬,?, ZWXY+[îÐÐ=+\™Ÿ?+]¿¸8?, ^[\]+_+ùø=+`©¡!?+a‹‡?, b_`a+c¢šš>+d¶»;?, ecdQ+f ¦&?+gÜÔT?+hêèh>, ifgh+júòr?+kÍÈH?+loñp=, mjkl+n“Ž?, ojnl+pÛà`?+qƒŠ ?, rpWq, sRVZ^beimor+t€+u+vff¦?+wÍÌL?+x�Âõ=+y$tI+z€+{ns\?+|ý®>+}²>+~ýò&?+ÿ* €‚ ƒ‚;ƒ�… †…;†„ˆ ‰ˆ;‰‡‹ Œ‹;ŒŠ Ž;Ž� �;��’! “’;“‘ •";•” —#;—–;�˜;�™;—š œ$;œ›;��Ÿ(  Ÿ; ž;—¡;�¢¤+ ¥¤;¥£;œ¦;�§©6 ª©;ª¨¬< ­¬;­«;—® ° . ±;°¯±;°²±;°³±;°´± ¶.·;¶µ· ¹-.-º;¹¸º;¹»º;¶¼· ¾...¿;¾½¿;¶À·;¾Á¿ Ã.Ä;ÃÂÄ Æ1.1Ç;ÆÅÇ;ÃÈÄ;ÃÉÄ;ÃÊÄ;ÆËÇ;°Ì±;°Í±;°Î±;°Ï±;¶Ð· Ò . Ó;ÒÑÓ;°Ô±;°Õ± ×.Ø;×ÖØ;°Ù±;×ÚØ;×ÛØ;×ÜØ;×ÝØ;×ÞØ;×ߨ;×àØ;×áØ;°â±;×ãØ;×äØ;°å±;¹æº;×çØ;°è±;°é±;ÒêÓ;×ëØ;°ì±;°í±;°î±;°ï±;°ð±;ÒñÓóB ôó;ôò;—õ;—ö;�÷;�ø;¶ù·;°ú±!ÿ-+ !  +R¸NA, +®Ga=, += ‡?, +š™@, +æ®%=,  !$ % ' +)ö(\?, *)  ++€?+,š™Y?+-fff?, . ,- 0 . 1. 3 9 : bt !|  €.� ƒ ‹+•UUÕ>, –•••+—.M;, ˜———!£,¥    ,¦+++++§? ª!¶!¿+Á?!Ð Ó Ø Þ!) ++½7†5!2- 9$!C, ,+I€¿, J I , K++++L@+MìQ8= O,.,P R. T.V X).)Y` a`b ,`cGG,`dPP v* z)!0!>+?·Ñ8!T +U @! f , g   , hMMM+„ÛÉ?+…UUÕ@+†HB+³®Ga?+´ÍÌÌ=+µÍÌL>+¶ ×#<+·š™™>, ¸UUU+Ðffæ?+Ñrá?+Ò‚‹µ>+ÓÒŒE=, ÔÑÒÓ+Õ㥛=+Öøˆh?+×fI€<, ØÕÖ×+Ù§è<+Ú» >+ÛxV?, ÜÙÚÛ+ÝYÉ<, ÞÝÝÝ+߯޽8, àßßß+áªÕ{?+âÁ«Ý>, ãâââ+ä�Ës>, åäää+æshÍ?+çÜô¿+èLà–½, éæçè+êRѽ+ë4×�?+ì?Æ», íêëì+îMV»+ï2•½+ð»‰?, ñîïð+ ?+…Ï>+%ëµ=+`¿>+T A?+‘+7>++­¦=+�í×=+¼t;?, , , ,1 +!hvû?+"Ê@™¾+#,P(¾+$Š[¿+%&É©?+&)ñs¾+'¸õÞ½+(Oßݼ+)ŠŠ³?, *!"#, +$%&, ,'(),1-*+,+.9•GÁ+/ŽÕ€@+0ÿæ[/, 1000, 2..., 3///+41¬<+5îZ€@+6¼tÍA+7Ï·ŒB+8VŽ•B+9P�ØA+:ÿæÛ., ;:::. =!ˆ +‰&Ó=+Š\�úA, ‹ŠŠŠ. �+¥@@, ¦¥¥¥, §+  , ¨ + , ©++ , ª  +, «+ +, ¬ ++, ­+++!Ö -+Øff&?+ÙÍÌ,@+ÚÍ̈A, ÛÚÚÚ+Ü33³>+ÝCq‰=+Þ�E¿;,-ßÝÞ+à‚îSB.â.  >!. W … ‡+‰ !Æ...+.Ê+.Ì€+.Íÿÿÿÿ+.Òï#+ýÏ+þÿÿÿN,2ÒÒ+#Án�>+$,*ú>+%�Ø‹?+&{¡>+'�Ø ?. ) ++,‘"!™-+š®Gá¼+›˜n¿+œX9´<,�Iš›œ+ž{.=+Ÿ¸…?+  ×#½,¡+žŸ +¢ázÁ+£¸…¿,-¤£Ÿ!¸!à +Æoƒ:. È è é+ ! .%.'. ). ++7 !°-  ±6+³̼Œ+, ´³³³ ¶-.-· ¼5 ½3+¾+ÂÿÿO!© ,-«  +¬À.®!) ++ r1?+, ÀA+- «ª*>.o !ˆ  +‹ ÛIA. � . � .’  4!  -. .  . . % . ' !Í +Ð +Ñ ¬Å'7 Ó 7.7Ô Ö 8.8× . Û Ý 9.9Þ .â .ä .æ !A !”  — +› A. Ÿ . ¡ . £ ¦ ...¨ µ  ¶  ñ  ÷  Ä  !á  +ó €@.õ .÷ .ù .û . ý !I   J(+NÀ@+OA!m  . r!”% +¼æ±a!Î % !ú  %.%.% %& '%!V . ^. `.%b!¾ ¿<+Áþ Ã:+Çü!Î>= Ñ>.>Ò!C! @!' ,B+.¿,-/§.,-0§§.2. 4 >- † !š1!¦!¸!Ç--!Ï . Ñ. Ó!á !ï1!  --. !:@ .@=. ^!f!} !‹@ , “§§§,-”++. –. ˜. !. #!]+^ƒù¢>! ‹ . �.�. ‘!Ô .×! . ! , . 6. 8. :. <. >. @. e!‚ +” ×#>+•€A.,—. ›. �. Ÿ. ¡. ¤,-’ýý,-“þþ,2šÒÒ!Á . Å  ;ÿ; -; ;  ;   ; ;; ;  ;; -; ;;;;; ;!;";#;$ D;y;{;};; �;ƒ; †; ˆ; Š; Œ;Ž; ‘;“;•;—;˜;™;š;›;œ;�;ž;Ÿ; ;¡;¢;£;3;5;7;9; ;;= A;A@; C;E;G;I;J;K;L;M;N;O;P;Q;R;S;T;U; Û;Ý;ß;á;ã; å; ç;é;ë; í; ï; ñ; ó ö ;öõ;ø. ; B;D;F;H;J; L; N;P;R; T; V; X; Z;ö\,-fII. h. j; †;ˆ;Š;Œ;Ž; �; ’;”;–; ˜; š; œ; ž;ö ;¢+«C,¬««««. ® °A.A±; Ý;ß;á;ã;å; ç; é;ë;í; ï; ñ; ó; õ;ö÷;ù;ú.  D.D6þÿ7-ü7ýøû=�=�ùøQüQüP-VZý þ86  7 ø ùøˆ  �  ˆ   ¼ © þ86#$7!7"ø ;0/1;023A%&�GA'(„Gù4ø4Ç5!ª 65G÷7ú687ø8þ"ø7A:;& E=<;A:=( =>=ª ?>EÇ@!« A@G÷BúACDøCÇE<F« FEG>/FùBøD>/€ùBøB= G/÷HúGIHøI9 J *PKJ+þKøHÇL!'« MLG÷NúMOPøOÇQ<« RQG>2RùNøP>2€ùNøN= S2÷TúSUTøU9 V .PWV+þWøTÇX<E« YXG÷ZúY[Zø[÷\ú?]\ø]Ç^!E« _^G÷`ú_a`øaAbc&I=dcþdø`Abe&H=feþfø\A:g( G=hgª ihE÷júikjøkAbl&I=mlAbn&J=onA:p( E=qpª rqEPturrrr©suomþsøjùZøZAbv&H=wvþw86{|7 y7zøx;€�A%}�GA'~„Gù‚ø‚Aƒ„}G=…„Aƒ†~G=‡†’ˆ…‡P‰y+‘Šˆ‰>ŠA‹ŒF=�ŒƒŽ+z…��ŽA‹�F>��=‘þ‘86 ” 7 “ø’ù™ø™Ž š“  ›“–Ž œ›ƒ �œ¼ž“˜© Ÿžš�þŸ86¢£7¡ø A%¤�Gù¨ø¨ ©+¡¥¦Aª«¤ =¬«º ­¬§÷®ú­¯®ø¯O °©©9 ±”°Q²©P³±²þ³ø®þ©86µ¶ø´A'·„Gù¸ø¸A:¹·JF=º¹ »&º'þ»86¾¿7½ø¼A'À„GùÂøÂA:ÃÀJE=ÄÃA:ÅÀJG=ÆÅ° ǽ©ÈÇÆÄÇɽ „ÊÉ'ÂËÈÊÇÌË Í&ÌÁþÍ86 ÏÐøÎ;ÓÒsA'Ñ„GùÔøÔA:ÕÑJ =ÖÕ ×&Ö Ù&× AØÚÒÙ= ÛÚþÛ86ݶøÜAÞ߇GùàøàA:áß F=âá ã&â'þã86æ¿7åøäAÞç‡GùèøèA:éç E=êéA:ëç G=ìë° íå©îíìêÇïå „ðï'ÂñîðÇòñ ó&òÁþó86õ¶øôA'ö„Gù÷ø÷A:øöIF=ùø ú&ù'þú86ý¿7üøûA'þ„GùÿøÿA:þIE=A:þIG=° ü©Çü „'ÂÇ þ 86 7) 7 ø A%�GA£GùøAªEG=Ab =O ƒ   BAªEE=º §©+…A: GE=!  ")!E‚#"Ep$#Q% Q&% '(&ˆ(' )((+ *) ++* $þ+86127-7-.7/7 0ø,=$3¦=4§ù5ø5‚6-E|.76©80 /o:7P ;.:V9<34X=<;8þ=86,BC7 ?7 @7,Aø>;XWY;RQG;‹UV;ONP;0ST;aedA%D�GA'E„GAF£G=$G¦=H§ùZøZ>NA9[õù\ø\ö]_ùføf=`geªbhcg› ih÷júi]jøjQkgª lkG©mlEGP`nmE‚`ogn>eoù^ø^=pQ° qp[÷rúqrsøsù]ørùtøt=wQ9xýw y&xÁ {&yÁAz|FF{=)}|Q~}P?+‘€~O �€€¾‚�J› ƒ‚÷„úƒ…†ø…¼‡�K› ˆ‡>Sˆù„ø†>S€ù„ø„= ‰S¨ Љ÷‹úŠŒ‹øŒù_ø‹Q�� Ž�ƒ�+ŽQ�}Q‘�Q’}Q“’Q”�º •” ©–•“‘ —�–>U—Q˜}Q™˜º š™ ÷›úšœ›øœ=�UQž}QŸžQ }O ¡  ”¢@¡…£¢§�¤£§ ¥1Ÿ+¤…¦�¥>U¦ù›ø›O-§��>W}=)¨W9© ¨?Qª}Q«ªQ¬}Q­¬¬ ®­G÷¯ú®°¯ø°Q±}Q²±Ç³«E« ´³G9µ1²§©´O ¶µµ9 · ¶Q¸µP¹·¸Qº}…»¹ºQ¼»=½U…¾¼½AØ¿NG= À¿O Á»»QÂ}QÃ…ľÃP ÆÄÄÄ  Å.ÀÁÆAØÇNG>ÇÅQÈ}QÉȬ ÊÉG÷ËúÊÌËøÌQÍ}QÎÍÇÏ«F« ÐÏG9Ñ1Χ©ÐQÒÑ…ÓÒLƒÔÓ+QÕÑ…ÖÕLƒ×+Ö…ØÔÔƒÙ+Ø…Ú×׃ÛÙÚ Ü( Û ÝÜQÞ}O ßÞÞŽ àßÔQá}O âáᎠãâÝ� äàãQå}O æååŽ çæ×� èäç  éEèAØêN= ëêP í¾¾¾  ì.ëéí  îEìAØïN>ïîùËøËQð}Qñð¬ òñG÷óúòôóøôQõ}QöõÇ÷«« ø÷G9ù1ö§©øA‹úN =ûúQüù ý.ûü¾A‹þN >þýA‹ÿNF=ÿQù .¾A‹NF>A‹NE=Qù .¾A‹NE>ùóøóù¯ø¯Q }Q  ¬  G÷ ú   ø Q}QÇ«'« G91§©AØNH= O 9  Q}O … Q}QŽ =UŽ � AØ NH> ù ø ùuøuù_ø_=!Q€"!E>Q"ù\ø]A‹#NF=$# %+$M+A‹&NF>&%A‹'NE=(' )+( +A‹*NE>*)=,+Nþ+86/07-7.ø,ù1ø1…2--ƒ3.+…423�54+…6M5…765ˆ8.7þ886=>7:7;7<ø9ù@ø@…A;;ƒB+<…CAB�DC< ED…F:E…G::ƒH+<…IGH�JI< KJ…L;K�MFL N(M?ˆO§NþO86 ST7 Q7RøPùVøVƒ WKQƒX+R YXUŽ ZWY� [QZþ[86 ef7 ]7 ^7 _7 `7 a7 b7c7dø\ùiøi”j]_¼ kj ÷lúkmlømþgøl� n_^  oEn”p]o q(p ”r^o s(r ”t]^ u(t?9 vSbs9w/qc9x=juc…ywxŽ zvyˆ {ahŽ |zd� }{|… ~}`Ž ~jþ86 ‚ 7 �ø€AÞƒ‡Gù‡ø‡  ˆE�Ab‰ƒ =ЉO ‹ŠŠ”Œˆ‹ �+ŒI+ Ž�¼ �Ž„÷�ú�‘�ø‘ˆ’Ž„ƒ“+’ƒ”+“ •(” –•…ƒ—+– ˜+— +Ab™ƒH=š™O ›ššAbœƒ=�œO ž��P  ˜˜˜  Ÿ.›ž þŸø�ƒ¡Ž„ˆ¢¡„ƒ£+¢ ¤(£ ¥¤†ƒ¦+¥ §+¦ +Ab¨ƒI=©¨O ª©©Ab«ƒJ=¬«O ­¬¬P ¯§§§  ®.ª­¯þ®86 ² 7 ±ø°ù¹ø¹Ž º±³…»´UP ¼»»»� ½º¼… ¾±½…¿µ¶P À¿¿¿� Á¾ÀŽ Â±³� ø… ıÅŵ·P ÆÅÅÅ� ÇÄÆˆ ÈÁLjɶ·P ÊÉÉɃ ËÈÊþË86 ÏT7 Í7ÎøÌùòøò”óÔÍ…ôÐó”õØÍ…öÐõ”÷ÜÍ…øÐ÷P ùôöø� úùÞ… ûùúƒ üûàŽ ýùá� þýã… ÿùþ� ÿåˆ ü”é”í”ñP …ÐÎ�Ý…ƒ ß… á�  â…  �  äˆ  P ˆ þ86  7 ø;Ø<=ù>ø>  ?(1‘ @ ?><@= A<  BA  C+B23ƒ DC2ƒE/.P FEEEˆ GDF><G= H<= I<… JHI… KJJ= L<Ž ML4Ž NJ5� OMNŽ PJ6= Q<… RPQƒ SORŽ TK7� USTŽ VK8= W<… XVWƒ YUXŽ ZK9… [ZJ� \Y[  ](\;  ^]‘ _-^þ_86 b 7 aø`AÞc‡GùdødAªecFG=feŽ gaf  h(ggAªicFE=jiA:kcGF=lkª mlE÷númonøoŽ phj� qphŽ rhjP sjjj� trsˆ uqtþuønª vlF÷wúvxwøx9 y²hP zjjj9 {²zˆ |y{þ|øwª }l ÷~ú}~ø9 €Ïhjþ€ø~ª �l÷‚ú�ƒ‚øƒ9 „hþ„ø‚þh86‡ˆ7 †ø…;ØŒ�ùŽøŽŽ �†‰  � �>Œ�= ‘Œ= ’Œ= “ŒO ”““� •”‹”–’•P —–––� ˜‘—>Œ˜A‹™ŒG=š™A‹›ŒE=œ›��šœA‹žŒF=Ÿž… �Ÿ ¡  þ¡86¤ˆ7 £ø¢ù®ø®  ¯£  ° £… ±°°Ž ²°Lƒ ³¦²… ´±³9µ‡¯� ¶¯§9·‡¶Q¸´ ¹.µ·¸� º¯¨9»‡º� ¼¯©9½‡¼Q¾´ ¿.»½¾QÀ´ Á.¹¿À� ¯ª9ÇÂ� į«9ŇÄQÆ´ Ç.ÃÅÆ� ȯ¬9ɇÈ� ʯ­9ˇÊQÌ´ Í.ÉËÌQδ Ï.ÇÍÎQд Ñ.ÁÏÐþÑ86ÕÖ7 Ó7-ÔøÒ;‹áâA'ׄGùãøãA:ä×G=åäÇæåKª çæG© èLçL÷éúèêéøêþ+øéAªë×EG =ìëŽ íÓv9î¤í…ïîØŽ ðíÙ� ñðÛ9ò¤ñ…óòÜ�ôïó õ1µwô>áõQöÔ¾ ÷ö ÷øú÷ùøøù -úÔ”ûúß ü û…ýàü þ ý=ÿáƒþ§…x�ÿ + +>áùøøø…ìÐ=჈wþ86 T7 7 ø;0A' „GAÞ ‡GùøA: G=ÇKª G¨ ÷úø¾  +>ùø>Lùø= © LL÷úøþ øA:  =  @O !  9 " !9 #b" $1 + P &$$$  %.# &þ%86 ) 7 (ø'A'*„GAÞ+‡Gù,ø,A:-*G=.-Ç/.ª 0/G© 1L0L÷2ú132ø3þ(ø2Ab4*E =54O 6559 7b6Q85P :888  9.(7:þ986 = 7 <ø;A>?‘Gù@ø@AƒA?E=BAPC< ‘DBCO EDD  FEEþF86J07H7IøGùKøKƒL+H M(LˆN+I OMNƒP+O Q+P +þQ86 T 7 SøR;ØVW;RXG;atdA>U‘GùYøYQZS [+ZI+ \[Ab]U =^]O _^^Ab`UF=a`O baaˆc\„ƒd+cAªeUF =fe9gJdfP iggg  h._biAªjU =kjŽ lhk>VlA:mUGF=nm o&nùpøpöqsùuøu=`vtªbwcv› xw÷yúxqyøyQzvª {zG©|{EGP`}|E‚`~v}>t~ùrør=X° €o÷�ú€�‚ø‚ùqø�ùƒøƒ=†X ˆ&† A‡ŠU‰ˆ=‹ŠQŒ‹Q�ŒQŽ‹O �ŽŽ”��S ‘+�I+ ’‘¸ “’�÷”ú“•–ø•Q—‹O ˜——>V˜ù”ø–Aª™UIG=𙏠›’š÷œú›�œø�ƒž’�AªŸUIG= Ÿƒ¡ �ˆ¢ž¡Q£‹O ¤££= ¥VAª¦UIE=§¦9¨J¢§P ª¨¨¨  ©.¤¥ª>V©ùœøœù”ø”ù„ø„ùsøs=«X€¬«E>X¬ùpøqAb­UH=®­O ¯®®Ab°U=±°O ²±±ƒ³\„ˆ´³„AªµU =¶µ9·J´¶P ¹···  ¸.¯²¹AªºUH =»ºŽ ¼¸»= ½VQ¾S¾ ¿¾ PÁ¿¿¿© ÀÁ½¼AªÂUIF=ÃÂŽ ÄÀÃþÄ86.ÅÆ7.Ç7.ÈøÉª ËÈʪ ÎÇ̪ ÏÈͧ ÐÎϦ ÑËЩ.ÓÑÒȇ.ÔÇÓ„.ÕÔÓ‚.ÖÇÕþÖ86 Ù 7 Øø×A>Ú‘G=#Û–=Ü™ùÝøÝQÞØQߨàß áÞàˆâáN ã âQäØ å+äI+ æåˆçæMP-èãçA:éÚGG=êéÇëê« ìëG÷íúìîíøîVïðÛÜXñðè O òññAªóÚIF=ôóŽ õòôþõøíg`öÛÊ|2÷öQøèQ.ù÷oúù…ûøú üû ÿ+üýþn.ÿQ.÷9.ÅQ.÷€.Q.÷9.ÅQèQ.÷o …       + ýþn.  Q.÷‚.Ò .* Ê .'P2j.Û‚.Ò .&Êg2Û‚2 2&_ÛO AªÚIF=Ž þ86 ! 7 ø;Ø()A>"‘Gù*ø*Ab-",G=.-O /..Ž 0/#>(0= 1(Ab2",E=32O 433Q5 …6$5Ž 746� 817>(8= 9(Ab:",F=;:O <;;Q= …>$=Ž ?<>� @9?>(@= A(AbB", =CBO DCCQE …F$EŽ GDF� HAG>(H= I(AbJ",=KJO LKKQM …N%MQO …PNOŽ QLP� RIQ>(R= S(AbT",H=UTO VUUQW …X%WQY …ZXYŽ [VZ� \S[>(\= ](Ab^",I=_^O `__Qa …b¥aQc …dbcƒed+…f&eŽ g`f� h]g>(h= i(Abj",J=kjO lkkQm …n%mQo …pnoŽ qlp� riq>(r= s(Abt",'=utO vuuQw Qx …ywxQz Q{ …|z{ƒ}y|…~'}Ž v~� €s>(€= �(  ‚(�gþ‚86 †T7 „7…øƒA>‡‘G="ˆ”=‰˜ùŠøŠA:‹‡GE=Œ‹ �)ŒE‚Ž�Ep�Ž…�…�V‘’ˆ‰X“’„�O ”““þ”86-˜™7–7—ø•ù¥ø¥Ž¦�–�§¦¡Q¨§Q©§…ª¨©…«¢— ¬« ­%ª¬Q®§…¯­®Q°§�±¯°Ž-²¤±O-³§§�-´²³þ´86·¸7¶øµù¹ø¹ º(¶  »(¶ …¼º»…½¼¼…¾½½þ¾86 ÂÃ7 À7 Áø¿;ØÇÈ;RÉG;aÕdAÞćGA>Å‘GùÊøÊ>ÇÀAªËÅ =Ì˺ ÍÌÆ÷ÎúÍÏÎøÏ9ÐÝùÑøÑöÒÔùÖøÖ=`×ÕªbØc×› ÙØ÷ÚúÙÒÚøÚQÛת ÜÛG©ÝÜEGP`ÞÝE‚`ß×Þ>ÕßùÓøÓ=àɰ áàÐ÷âúáâãøãùÒøâùäøä=æÉ9çææ ê&çÁA:ëÄêG=ìëª íìG÷îúíïîøï= ðÇ ñ&çÁAbòÄñG=óòO ôóóˆ õôh ö&çÁAb÷ÄöF=ø÷O ùøø úù”ûÁú9ü·ûŽ ýõüAªþÅ =ÿþŽ ýÿ� ð>ÇùîøîùåøåùÔøÔ=É€E>ÉùÑøÒùÎøÎ= Çþ86 Ã7 7 øAÞ ‡GA> ‘Gù ø Ab   =  O   Aª  =P   .9 ÂAª E=P   .þ86 7 7 7 ø;‹&';0*+;‹$%;Ø()A%�GAÞ ‡GA>!‘G=""”=#˜ù,ø,Aƒ-G=.-P/+‘0./Q1021Ab3 =43O 544 6C5>$6Aª8!7 =98º :9§÷;ú:<;ø<Aª=!7G=>=ƒ?2> @(? >$@ù;ø;A:A!GG=BAÇCBu« DCG÷EúDFGøFAªH!G=IHAªJ!E=KJ=L$ M1IKL N(MAªO!F=PO QNPº RM ©SRQ AªT!G=UT…VSU>&VùEøG=W$XWAªY!G=ZY…[XZ \% [ ]\ƒ^+]>&^ùEøEAª_! =`_ a`¾ ba?÷cúbdcødAbe  =feO gff”hg=i&Aªj!F=kjƒlhkAªm! =nm…oln p% o qpƒr+q s(ir>&sùcøc=t& u+t +>&uAbv! =wvO xww>(xA:y!GG=zyÇ{z'« |{G÷}ú|~ø~Aª€! =�€º ‚� >*‚ù}ø>*€ù}ø}= ƒ*© „Lƒ€÷…ú„†…ø†Aª‡!7E=ˆ‡ƒ‰2ˆAªŠ!7F=‹ŠAªŒ!7E=�ŒƒŽ‹� �(Žˆ�‰� ‘+� +A:’!GE=“’ ”)“F‚•”Ep–•ˆ—+–ƒ˜+‘ ™.—+˜= š(9 ›=9 œ†›™Aª�!I =ž�Ž ŸœžAª ! =¡ P £¡¡¡  ¢.šŸ£>(¢ù…ø…= ¤(9 ¥Â¤>(¥= ¦(=§&P ©§§§  ¨.¦©þ¨86-¯°7«7 ¬7 ­7®øª;‹¸ ;‹ºI;¶µ·;‹¹ A±²¨Gù»ø» ¿&«¾AªÀ²H¿ =ÁÀ Ã+Á ÂmÄà Å&«¾AªÆ²HÅ =ÇÆ È%Ç®ª ÉÄ÷ÊúÉËÊøËP-Ì ÈþÌøÊ Í&«¾AbβHÍE=ÏÎO ÐÏÏŽ ÑЧ  Ò­¸ÓÒ´© ÔÓ´­ Õу ÖÕ¬ˆ ×ÖÔƒ ØÑ¬ˆ ÙØÔ  Ú%×Ù  Û(×ÙQÜÚ Ý( ÜQÞÛ ß%ÈÞP-àÝß>µàª áÄ ÷âúáãäøãA‹åµG=æåQçÚ è(æçQéÚ ê(èéA‹ëµE=ìëQíÛ î%ìíQïÛ ð%îïP-ñêð>µñùâøäª òÄG÷óúòôõøôˆ ö­Ñˆ ÷­Ñ”øö÷>¸øˆ ù¬Ñˆ ú­Ñ”ûùú>¹ûˆ ü¬Ñˆ ý¬Ñ”þüýƒÿþ+>ºÿùóøõQÑQÑ %QÑ…Lˆª ÄE© QÑQ ¬ƒ  Q ­Q ­…   Q­Q­…� …Q­…Q­…ƒ>¸Q¬Q­…Q¬Q­…�……  Q!­…" !�#">¹#Q$¬Q%¬…&$%Q'¬Q(¬…)'(�*&)…+…,…-, ….- ª /ÄE©0/.+ƒ1*0>º1ùóøóùâøâ=2¹=3¹…423=5¸=6º…756ƒ847=9¸ :9¸ ;:³÷<ú;=>ø==?¹ @?¸ A@³÷BúACDøCA‹EµE=FE=Gºº HG ©IHIFA‹JµE>JIùBøD=K¹º LK ÷MúLNOøNA‹PµE=QP=RºSR=T¹…ULTˆVSU W%QVA‹XµE>XWùMøOA‹YµG=ZY=[º\[=]¹…^L]ˆ_\^ `(Z_A‹aµG>a`ùMøMùBøBù<ø>¸ b8 ÷cúbdeødA‹fµE=gf=h¸º ih ©jiIgA‹kµE>kjùcøe=l¹ml n8ƒomn=p¸ˆqop=r¹sr t8�ust=v¸ˆwuv x%qw=y¹zy {8ƒ|z{=}¸ˆ~|}=¹€ �8�‚€�=ƒ¸ˆ„‚ƒ …(~„=†¸º ‡† ÷ˆú‡‰Šø‰A‹‹µG=Œ‹ �(ŒxA‹ŽµE=�Ž �%�…P-‘��>µ‘ùˆøŠA‹’µG=“’A‹”µE=•” –%•x¸ —“–÷˜ú—™šø™A‹›µE=œ› �%œxA‹žµE>ž�ù˜øšA‹ŸµG= Ÿ ¡( …A‹¢µG>¢¡ù˜ø˜ùˆøˆùcøcù<ø<=-£µþ£86¨©7¥7 ¦7 §ø¤;‹­®;‹¯ A±ª¨Gù°ø° ±&¥¾A½²ªH±=3³²Q´³Qµ´Q¶³Q·¶¸·Ab¹ª =º¹O »ºº”¼¦»Q½³Q¾½ƒ¿¼¾…À¸¿ ÁÀ Â%Á+…õÂ>­ÃQijQÅĺ ÆÅ ÷ÇúÆÈÇøÈQɳQÊÉ Ë+Ê ÂmÌËQͳO ÎÍÍŽ ÏΧQÐÏQÑÏ Ò%ÐѪ ÓÌG÷ÔúÓÕÖøÕˆ ×§Ï ØB×ƒÙØ+…ÚØÙ… ÛÏψ Ü§Û ÝBÜ Þ(ݳˆßÚÞ>¯ßùÔøÖª àÌ ÷áúàâãøâ  䧃 åäÏ  æ(åg çBæQèåQéåQêå ë(éê ì(èë í%ì �îçí>¯îùáøãª ïÌF÷ðúïñòøñO-ó§§ ôBóƒõôÒQö§ ÷öQøÏƒù÷øP-úõùQûúQüú ý(ûü þ%ý  -ÿ(ú«  Bÿ� þ >¯ ùðøò… Ò§  (Æ ˆ + Q Ï  (Æ ˆ + P-   - E O- §§  B Q §Q σ P-  ”  Q Ï  Q §ƒ    (  >¯ ùðøðùáøáùÔøÔ= ­= ¯… ¬ Q ³Q  ˆ    + +Q ³Q      …   >­ ùÇøÇ=! ­þ! 86( ) 7# 7$ 7% 7& 7' ø" A±* ¨Gù. ø. / &# ¾Ab0 * H/ F=1 0 Q2 1 …3 2 % ´ 4 3 ÷5 ú4 6 5 ø6 Q7 1 ƒ8 ' & …9 7 8 : 2 …; : $ < ; = %< +…> 9 = þ> ø5 ? $ ˆ@ ? % A +@ & ' º B % ©C B A & º D % ©E D ' A F % …G 2 F ƒH E C …I G H …J I + K J L K ƒM +L ˆN M J ˆO J , ƒP - O …Q J P ƒR §Q …S J R ƒT +S ¸ U J ¶©V U T N W 2 º X % ©Y X C E …Z % Y �[ $ Z \ ([ …] W \ ^ ] _ %^ +Q` 1 ƒa ' & ƒb E C ƒc a b ƒd E C …e _ d …f e V �g c f …h ` g þh 86m >7j 7k 7l øi ;‹n o ùp øp …q j k >n q =r n =s n …t r s >n t =u n =v n …w u v >n w =x n ƒy +x z (y >n z ={ n =| n …} { | >n } =~ n  (j ?€ l �  € …‚ ~ � þ‚ 86 ‡ ˆ 7„ 7 … 7 † øƒ ;RŽ G;‹‘ ’ ;ØŒ � ;Ø� � ;a£ dAÞ‰ ‡GA±Š ¨Gù“ ø“ Ab” Š F=• ” O – • • Aª— Š EE=˜ — Ž ™ – ˜ >Œ ™ Aªš Š EG=› š œ &„ ¾A9� Š Hœ H=ž � ùŸ øŸ ö  ¢ ù¤ ø¤ =`¥ £ ªb¦ c¥ › § ¦ ÷¨ ú§   ¨ ø¨ Q© ¥ ª ª © G©« ª EGP`¬ « E‚`­ ¥ ¬ >£ ­ ù¡ ø¡ =® Ž Q¯ ž  ° &¯ '° ± ® ° ÷² ú± ² ³ ø³ ù  ø² ù´ ø´ Q¶ ž Q· ž =¸ Ž ° ¹ ¸ ©º ¹ · ¶ =» Ž Ç¼ » „½ ¼ '¾ º ½ Ç¿ ¾  À &¿ Á Á &À ÁAé ‰ Á =à  QÄ Ã O Å Ä Ä  Æ Å >� Æ >‘ +QÇ Ã QÈ Ç « É È G÷Ê úÉ Ë Ê øË QÌ Ã O Í Ì Ì ƒ Î Í … Ï BÎ Ð (Ï P Ñ Ð Ð Ð ˆ Ò Î Ñ >� Ò Ó BÎ QÔ Ã QÕ Ô QÖ Ã Q× Ö 9Ø m Ó Õ × >‘ Ø QÙ Ã QÚ Ù ª Û Ú F÷Ü úÛ Ý Ü øÝ = Þ �  ß Þ Qà à O á à à ”â ß á Qã à Qä ã å (â ä ƒæ +å Qç à Qè ç ƒé +è ê (é ˆë æ ê ì (?ë =í ‘ Qî à Qï î  ð ì ï ƒñ +ð …ò í ñ >‘ ò ùÜ øÜ ùÊ øÊ …ó › › �ô +ó …õ L› = ö � ”÷ † ö …ø õ ÷ ƒù ô ø = ú Œ Qû à O ü û û =ý ‘ …þ › › ƒÿ +þ … ý ÿ … ‹ ù  ù …   ˆ   À FÇ À  &  & ¾Aª Š   = …  Ž ü �  ú >Œ  ùµ øµ ù¢ ø¢ = Ž €  E>Ž  ùŸ ø  =  Œ þ 86  7 7  7  7- ø ;0$ % ;Ø! g;‹  ;0& ' ;‹"  ;0  ;R# G;0  ;aa dAÞ ‡GA± ¨Gù( ø( ) & ¾A½*  H) =3+ * Q, + P-  +‘. , - O / . . Q0 + P1  ‘2 0 1 O 3 2 2 Ab4  =5 4 O 6 5 5 ”7  6 Q8 + Q9 8 ƒ: 7 9 Ab;  =< ; O = < < ”>  = Q? + Q@ ? º A @ QB  QC  �D B C …E D §> E QF + QG F º H G ÷I úH J K øJ L : ˆM L > QN  º O M N > O ùI øK > €ùI øI = P  ÷Q úP R S øR T : ˆU T > QV  ¸ W U V > W ùQ øS > €ùQ øQ = X  ÷Y úX Z Y øZ [ : ˆ\ [ > > \ ùY øY ù] ø] ö^ ` ùb øb =`c a ªbd cc › e d ÷f úe ^ f øf Qg c ª h g G©i h EGP`j i E‚`k c j >a k ù_ ø_ =l # ©m A 7° n l m ÷o ún o p øp ù^ øo ùq øq =s # Çt s ª u t G¨ v u ÷w úv x y øx ª z t >$ z ùw øy >$ Lùw øw = { $ ©| { {|ª } t G¨ ~ } ÷ ú~ € � ø€ ª ‚ t >& ‚ ù ø� >& Lù ø = ƒ & ©„ ƒ }~=…  Q†  P-‡ … † Qˆ  =‰  P-Š ˆ ‰ =‹ # ° Œ ‹ 'PbŽ Œ Œ ©-� Ž Š ‡ =� # ° � � Pb’ � � ©-‘ ’  � Q“ ‘ Q” ‘ ƒ• “ ” …– • §Q— ‘ Q˜ ‘ �™ — ˜ …š ™ §› | ° œ t F©� œ › | …ž – � �Ÿ š ž Ž    Ÿ � ¡    Ž ¢ 3 Ÿ � £ / ¢ 9¤ ¨ ¡ £ =¥ # ° ¦ ¥ ÷§ ú¦ ¨ © ø¨ = ª ! Q« + O ¬ « « 9 ­ ‡  ¡  … ® ¬ ­ Q¯ + O ° ¯ ¯ � ± ® ° …² „ – ³ +¤ +…´ ² ³ Ž µ ± ´ � ¶ ª µ >! ¶ ù§ ø© =· " …¸ „ – …¹ ¸ ¤ �º · ¹ >" º ù§ ø§ ùr ør ù` ø` =» # €¼ » E># ¼ ù] ø^ ¨ ½ A ÷¾ ú½ ¿ ¾ ø¿ QÀ  QÁ  9  (  : > À Á >"  ù¾ ø¾ = à ! =Ä " PÅ Ã Ä þÅ 86 Ì Í 7 Ç 7 È 7 É 7Ê 7Ë øÆ ;‹è  ;Rã ä ;Rß G;RÙ G;Ó Ò Ô ;Ré G;Rå æ ;Rà G;0Ú Û ;Ö Õ × ;Øç g;‹á â ;Ý Ü Þ ;RØ G;að d;a7 d;a[ d;ax d;aÀ d;a dAÞÎ ‡GA±Ï ¨Gùê øê ® ë Ë zùì øì öí ï ùñ øñ =`ò ð ªbó cò › ô ó ÷õ úô í õ øõ Qö ò ª ÷ ö G©ø ÷ EGP`ù ø E‚`ú ò ù >ð ú ùî øî =û Ù A:ü Ï GG=ý ü þ &ý ©ÿ ë þ ° û ÿ ÷ ú   ø ùí ø ù ø = Ù Ç  „  'Â Ë  Ç  Ð ¨ ë ÷ ú ø ª  G>Ú  ù ø >Ú €ù ø =  Ú ÷ ú   ø ùí ø  & ‚  E= Ù © ë    & ¾Aƒ Ï H G=  P È +‘   O    P É ‘   O    9- ¯   Ê Q  Q!  º " ! ÷# ú" $ # ø$ =% Ø & &% AR' Ò & >'  =( Ø ) &( A¶* Õ ) >*  =+ Ø €, + E>Ø , =- Ø ª . - ÷/ ú. 0 / ø0 ùí ø/ ù# ø# ù ø ùï øï =1 Ù €2 1 E>Ù 2 ùì øí ù3 ø3 ö4 6 ù8 ø8 =`9 7 ªb: c9 › ; : ÷< ú; 4 < ø< Q= 9 ª > = G©? > EGP`@ ? E‚`A 9 @ >7 A ù5 ø5 =B ß =C Ø ° D B C ÷E úD E F øF ù4 øE ùG øG =I ß =J ß K &J ARL Ò K =M L =N ß O &N A¶P Õ O =-Q P 9R  M È É Q S &I A€T Ü S >T R ùH øH ù6 ø6 =U ß €V U E>ß V ù3 ø4 ùW øW öX Z ù\ ø\ =`] [ ªb^ c] › _ ^ ÷` ú_ X ` ø` Qa ] ª b a G©c b EGP`d c E‚`e ] d >[ e ùY øY =f à =g Ø ° h f g ÷i úh i j øj ùX øi ùk øk =m à n &m A‹o Ü n =p o ¸ q p ÷r úq s r øs >á >ã Gùt øt öu w ùy øy =`z x ªb{ cz › | { ÷} ú| u } ø} Q~ z ª  ~ G©€  EGP`� € E‚`‚ z � >x ‚ ùv øv =ƒ ã =„ Ø ° … ƒ „ ÷† ú… † ‡ ø‡ ùu ø† ùˆ øˆ =Š ã ‹ &Š A‹Œ Õ ‹ E=� Œ =Ž à � &Ž A‹� Õ � E=‘ � ’ %� ‘ =“ ã ” &“ A‹• Õ ” G=– • =— à ˜ &— A‹™ Õ ˜ G=š ™ › (– š ƒœ ’ › � (œ =ž ã Ÿ &ž A‹  Õ Ÿ E=¡   =¢ ã £ &¢ A‹¤ Õ £ G=¥ ¤ ƒ¦ ¡ ¥ § (¦ ˆ¨ � § =© á =ª ã « &ª A‹¬ Ü « =­ ¬ ® (­ …¯ ® ¨ �° © ¯ >á ° ù‰ ø‰ ùw øw =± ã €² ± E>ã ² ùt øu =³ à ´ &³ A‹µ Ü ´ =¶ µ · ¶ =¸ á ¹ (¸ ³ˆº · ¹ » %º +>å Gù¼ ø¼ ö½ ¿ ùÁ øÁ =` À ªbà c › Ä Ã ÷Å úÄ ½ Å øÅ QÆ Â ª Ç Æ G©È Ç EGP`É È E‚`Ê Â É >À Ê ù¾ ø¾ =Ë å =Ì Ø ° Í Ë Ì ÷Î úÍ Î Ï øÏ ù½ øÎ ùÐ øÐ =Ò å Ó &Ò A‹Ô Ü Ó =Õ Ô º Ö Õ ÷× úÖ Ø × øØ =Ù å Ú &Ù A‹Û Õ Ú E=Ü Û =Ý à Þ &Ý A‹ß Õ Þ E=à ß á %Ü à =â å ã &â A‹ä Õ ã G=å ä =æ à ç &æ A‹è Õ ç G=é è ê (å é ƒë á ê ì (ë =í å î &í A‹ï Õ î E=ð ï =ñ å ò &ñ A‹ó Õ ò G=ô ó ƒõ ð ô ö (õ ˆ÷ ì ö =ø å ù &ø A€ú Ü ù =û ú …ü ÷ » ƒý +ü Žþ û ý ÿ &ø A€ Ü ÿ > þ ù× ø× ùÑ øÑ ù¿ ø¿ = å €  E>å  ù¼ ø½ ùr ør ùl øl ùZ øZ = à €  E>à  ùW øX ù ø ö  ù ø =` ªb c › ÷ ú   ø Q ª   G©  EGP`  E‚`  >  ù ø = é = Ø °    ÷ ú   ø ù ø ù ø = é  & A‹ Ü  =  º   ÷ ú ! ø! = " ç =# é $ &# A€% Ü $ =& % O ' & & � ( " ' >ç ( =) è =* é + &* A‹, Ü + =- , �. ) - >è . ù ø ù ø ù ø =/ é €0 / E>é 0 ù ø =1 è 2 1 3 2 Ž 4 Ç 3 = 5 ç ƒ6 +3 =7 è 8 (7 Ñ ˆ9 6 8 Ž : 5 9 � ; 4 : þ; 86 @ A 7 = 7 > 7? ø< A%B �GAÞC ‡GA±D ¨GùE øE AªF B GGF=G F AªH B GEF=I H AªJ B GFF=K J P L G I K  M EL AbN B =O N O P O O AƒQ B G=R Q PS > +‘T R S QU T Ž V M U ƒ W > V AªX B =Y X º Z Y §P\ Z Z Z © [ \ W P ƒ ] > [ ^ B] ƒ _ > [ ` (^ P a ` ` ` ˆ b _ a 9 c Ì = [ b ^ ? º d ^ Pf d d d © e f c = þe 86 k 7 h 7 i 7 j øg A%l �GAÞm ‡GA±n ¨Gùo øo Aªp l GGF=q p Aªr l GEF=s r Aªt l GFF=u t P v q s u  w Ev Abx l =y x O z y y Aƒ{ l G=| { P} i +‘~ | } Q ~ Ž € w  ƒ � i € Aª‚ l =ƒ ‚ º „ ƒ §P† „ „ „ © … † � z A:‡ n GE=ˆ ‡ 9 ‰ Ì h … j yˆ AªŠ n EF=‹ Š P � ‹ ‹ ‹  Œ .h ‰ � þŒ 86“ ” 7� 7 � 7 ‘ 7 ’ øŽ ;¦ ¥ Í;0  ¡ ;Rœ G;¦ § ¨ ;0¢ £ ;R� G;‹¤  ;0ž Ÿ ;aÕ d;ay d;aŽ dA%• �GAÞ– ‡GA— ˜ ŠG=™ �=š �ù© ø© ª &� ÁA:« – ª G=¬ « ­ &� ÁAb® – ­ E=¯ ® O ° ¯ ¯  ± &� ÁA:² – ±  =³ ² ´ &³ ¾ · &´ ¾Ab¸ ˜ E· G=¹ ¸ º &´ ¾A:» ˜ Eº G=¼ » ½ &´ ¾A:¾ ˜ E½ E=¿ ¾ À )¿ EAƒÁ • G= Á Pà � +‘Ä Â Ã QÅ Ä Æ Å ª Ç ¬ G÷È úÇ É È øÉ Ê &´ ¾AªË ˜ EÊ FE=Ì Ë º Í Æ Ì ÷Î úÍ Ï Î øÏ þ+øÎ ‚Ð À E>œ Ð ùÑ øÑ öÒ Ô ùÖ øÖ =`× Õ ªbØ c× › Ù Ø ÷Ú úÙ Ò Ú øÚ QÛ × ª Ü Û G©Ý Ü EGP`Þ Ý E‚`ß × Þ >Õ ß ùÓ øÓ =à � ° á à À ÷â úá â ã øã ùÒ øâ ùä øä =æ � ç &æ è &´ ¾Aªé ˜ Eè Eç =ê é ¼ ë Æ ê ÷ì úë í ì øí =î � >œ î ùÒ øì ùå øå ùÔ øÔ =ï � €ð ï E>� ð ùÑ øÒ ùÈ øÈ =ò œ ‚ó À E ô &ò ó €õ ¼ ô ö &õ ¾ ø &ö ¾Abù ˜ Fø F=ú ù Qû ú Qü ú  ý C� ° …þ ü ý �ÿ û þ Q ¹ Q ¹   ( +…  …  ÿ Ž  ‘  �  �  Q ¹ …  ÿ Ž ’  �  ª ¬ E÷ ú ø ƒ  °    Q  Q  ¾    ÷ ú   ø Q  Q  ¾    >ž  ù ø >ž €ù ø =  ž ÷ ú   ø Q  ¾   ©  GE>œ  ù ø Q  Q!  ¾ " ! ÷# ú" $ % ø$ Q&  ¾ ' & ©( ' F >œ ( ù# ø% Q)  ¾ * ) ©+ * H>œ + ù# ø# ù ø ù ø =, œ ‚- À E . &, - €/ ¼ . 0 &/ ¾ 1 &0 ¾Aƒ2 ˜ F1 G=3 2 P4 +‘5 3 4 Q6 5 ¼ 7 6 ÷8 ú7 9 8 ø9 þ+ø8 O : 5 5 Q; 5 P < ; ; ; ˆ = : < Q> = ? > º @ ? +¨ A @ ÷B úA C D øC QE =  F E º G F +>  G ùB øD >  LùB øB = H   ¨ I H ÷J úI K L øK QM = º N M +>¢ N ùJ øL >¢ LùJ øJ = O ¢ ÷P úO Q P øQ þ+øP R &0 ¾AbS ˜ FR E=T S QU = …V U §�W V §QX = …Y X §ƒZ §Y P-[ W Z O-\ T T O-] T T …-^ [ ] �-_ \ ^ Aª` ˜ GG=a ` O-b T T …c §a P-d c c �-e b d O-f T T O-g T T �-h f g …i §a P-j i i ƒ-k h j Ql ¹ ¼ m l ÷n úm o p øo -q +_ e k Qr = 9s þq r >¤ s ùn øp …t l a ùu øu öv x ùz øz =`{ y ªb| c{ › } | ÷~ ú} v ~ ø~ Q { ª €  G©� € EGP`‚ � E‚`ƒ { ‚ >y ƒ ùw øw =.„ ¥ ³ … „ Ò÷† ú… † ‡ ø‡ ùv ø† ùˆ øˆ >§ ÍùŠ øŠ ö‹ � ù� ø� =`� Ž ªb‘ c� › ’ ‘ ÷“ ú’ ‹ “ ø“ Q” � ª • ” G©– • EGP`— – E‚`˜ � — >Ž ˜ ùŒ øŒ =.™ § ³ š ™ Ò÷› úš › œ øœ ù‹ ø› ù� ø� =.Ÿ § o  Ÿ =.¡ ¥ o¢ ¡ P-£   ¢ Ž-¤ £ t �-¥ _ ¤ -¦ +¥ e k =§ ¤ Q¨ = 9© þ¦ ¨ �ª § © >¤ ª ùž øž ù� ø� =.« § €.¬ « Ò>§ ¬ ùŠ ø‹ ù‰ ø‰ ùx øx =.­ ¥ €.® ­ Ò>¥ ® ùu øv =¯ ¤ ˆ° ¯ › >¤ ° ùn øn ª ± ¬ G÷² ú± ³ ² ø³ ´ &´ ¾Abµ ˜ E´ F=¶ µ =· ¤ Q¸ ¶ Q¹ ¶  º 1¸ ¹ Æ » .· +º >¤ » ù² ø² =¼ ¤ Q½ ¹  ¾ .+¼ ½ þ¾ 86 Á 7 À ø¿ A' „Gùà øà AªÅ  HGG=Æ Å AbÇ Â HG=È Ç O É È È ”Ê É À �Ë Æ Ê AªÌ  HEG=Í Ì AbÎ Â HE=Ï Î O Ð Ï Ï ”Ñ Ð À �Ò Í Ñ AªÓ  HFG=Ô Ó AbÕ Â HF=Ö Õ O × Ö Ö ”Ø × À �Ù Ô Ø P Ú Ë Ò Ù  Û (Ú gþÛ 86à á 7 Ý 7 Þ 7 ß øÜ A'â „Gùã øã ÷ä úÞ å ä øå Pæ ß +þæ øä A:ç â G=è ç Çé è '« ê é G© ë Lê €÷ì úë í ì øí 9 î Á Ý Pï î +þï øì þ¥86 ò 7 ñ øð ;0ü ý ;‹ö ÷ ;‹ú û ;‹ô õ ;‹ø ù ùþ øþ  ÿ ñ Qÿ Qÿ ¾ ÷úøQÿ Qÿ ¾ >ü ùø>ü €ùø= ü ÷ ú   ø Q ÿ >ö Qñ ¾  ÷úø>ô Qñ >ø Qñ >ú ùø>ô +Qñ >ø Qñ >ú ùøù ø Qÿ Qÿ ¾ ÷úøQ ÿ >ö Q!ñ ¾ "! ÷#ú"$%ø$>ô LQ&ñ >ø &Q'ñ >ú 'ù#ø%>ô ¥Q(ñ >ø (Q)ñ *)>ú *ù#ø#ùøQ+ÿ >ö +Q,ñ ¾ -, ÷.ú-/0ø/>ô ó Q1ñ >ø 1Q2ñ 32>ú 3ù.ø0>ô UQ4ñ 54>ø 5Q6ñ 76>ú 7ù.ø.ùøù ø =8ô =9ø =:ö ˆ;9:�<;+…=<§=>ú =?ö ˆ@>?�A@+…BA§P C8=BþC86 HI7E7 F7GøDAJKžG=#L¡=M¢ùPøPA:QKGF=RQÂSRG T)SEpUTˆV§UQWFƒX+V Y+WVXQZFƒ[+V \+ZV[Q]F�^]Yˆ_^Np`E�a`\ˆbaOP-c_bpdGVïeLMXfecdO gffþg86 lm7i7 j7køh;0qrAJnžG=#o¡=p¢ùsøsA:tnGE=ut v)uE‚wvEpxw y+k x z+y Âm{zp|{ƒ}y|9 ~ò j9 Hi~{¼ €} ¨ �€÷‚ú�ƒ„øƒ€…{E® †…v>q†ù‚ø„>qLù‚ø‚= ‡q÷ˆú‡‰ˆø‰þøˆƒŠ+}Ž ‹Š€Œ{E9 �Hi~ŒŽ Ž�}� �‹Žþ�86“”7%‘7 ’ø�ù•ø•Q–‘P—’+‘˜–—O ™˜˜Qš‘O ›ššQœ›Q�™ ž�ƒŸœžQ ›Q¡™ ¢¡ƒ£ ¢Q¤›Q¥™ ¦¥ƒ§¤¦ ¨%£§ ©%Ÿ¨¸ ª© ÷«úª¬«ø¬þ ø«Q­‘Q®­º ¯® ¨ °¯÷±ú°²±ø²þ+ø±Q³‘Q´³ˆµ©´ ¶%µ+þ¶86»>7¸7¹7ºø·ù½ø½º ¾¹ ÷¿ú¾À¿øÀƒÁº¸ˆÂÁ¹þÂø¿¸ ù ÷ÄúÃÅÄøÅÆºƒÇƸˆÈǹþÈøÄþ¼86 ÍÎ7%Ê7 Ë7 ÌøÉùÏøÏQÐÊPÑÌ ‘ÒÐÑO ÓÒÒQÔÊQÕÔÇÖÕEª ×ÖG÷Øú×ÙØøÙþÓøØQÚÊPÛË+‘ÜÚÛO ÝÜÜQÞÊO ßÞÞQàÝQáÓQâß9ã»àáâQäÝQåÓQæß9ç»äåæQèÝQéÓQêß9ë»èéê ì%çë í%ãì î(í Ž ïÓî� ðÝïQñÊO òññƒ óðòþó86ùú7 õ7 ö7÷7øøô;;‹ÿ ;;Øþg;RG;adAJûžG=#ü¡=ý¢ùøA:ûGG=  &'A: ûGE=    ) E‚  Ep …÷ùøöùø=`ªbc› ÷úøQª G©EGP`E‚`>ùø=°  ÷!ú !"ø"ùø!ù#ø#=& (&&JA')ûE(=%*)Q+*Q,+Â-ø,Ç.-Eª /.G÷0ú/10ø1ùø0>*=%293“2õ¼ 43 ÷5ú465ø6ùø5= 7þQ8*Q98>*=%:9 ;Í:õö9 <l9;Q=*Q>=Ž ?<>Ž @?3� A7@>þA=Bÿ�CB3>ÿCù$ø$ùø=D€EDE>Eùø=Fÿº GF+÷HúGIHøI= Jþ=KÿP LKKKˆ MJL>þM>ÿ+ùHøH= Nþ=OÿPPNOþP86UV7 R7 S7TøQ;Ø_`;‹[ ;0]^;ØZg;ab;R\G;aodAJWžG=#X¡=Y¢ùcøcA:dWGG=ed f&e'A:gWGE=hg i)hE‚jiEùkøkölnùpøp=`qoªbrcq› sr÷túsltøtQuqª vuG©wvEGP`xwE‚`yqx>oyùmøm=z\° {zf÷|ú{|}ø}ùlø|ù~ø~=€\ �&€JA'‚WE�=%ƒ‚Q„ƒQ…„†T…LJ†Eª ˆ‡G¨ ‰ˆ÷Šú‰‹Œø‹Q�ƒQŽ�ª �ŽG>]�ùŠøŒ>]LùŠøŠ= �]÷‘ú�’‘ø’ùnø‘>aƒ=%“a9”““R¼ •” ÷–ú•—–ø—ùnø–Q˜ƒO ™˜˜>_™QšƒQ›šª œ›E÷�úœž�øžQŸƒQ ŸQ¡ƒP¢S ‘£¡¢O ¤££9 ¥ò ¤9 ¦H ¥j>_¦ù�ø�= §Z= ¨_Ž ©¨”� ª§©>Zª=«[�¬«”>[¬ùøùnøn=­\€®­E>\®ùkøl=¯[º °¯+÷±ú°²±ø²= ³Z=´[P µ´´´ˆ ¶³µ>Z¶>[+ù±ø±= ·Z=¸[P¹·¸þ¹86½¾7»7¼øºA¿À«GùÂøÂ Ä&»Á„ÅÄ €ÆÅ¼ È&ÆÇAbÉÀGÈ=ÊÉþÊ86>ÍÎ7=ÌøË;ÑÐÒA¿Ï«GùÓøÓQÔÌQÕÌQÖÕQ×Ô9ؽ×GŽÙØÖQÚÕQÛÔ9ܽÛGŽÝÜÚ�ÞÙÝQßÕQàÔ9á½àGŽâáß�ãÞâQäÕQåÔ9æ½åGŽçæä�èãçA€éÐG>éèQêÕQëÔ9ì½ëEŽíìêQîÕQïÔ9ð½ïEŽñðî�òíñQóÕQôÔ9õ½ôEŽöõó�÷òöQøÕQùÔ9ú½ùEŽûúø�ü÷ûA€ýÐE>ýüQþÕQÿÔ9½ÿFŽþQÕQÔ9½FŽ�QÕQÔ9 ½FŽ  �  Q ÕQ Ô9½ FŽ � A€ÐF>=>Ðþ867Cøùø=ùA€ >= úP A€>ý86 7@øù!ø!Q" >ù"Q# O $##>ú$ý86&'ø%ù(ø(ý86*'ø);€12;034A%+�GA,-òGù5ø5=6Ê= 7¯P87+‘968>19Aƒ:+E=;:=<1‘=;<Aª?-FG=@?º A@ ÷BúACDøCQE=º FE?>3FùBøD>3€ùBøB= G3÷HúGIHøIA>J-F=-KJŽ-LK§O-M==QN=P-ONNˆ-PMO…-QPL -RQˆ-SRL=TÉQU=Ž-VSUQW=QX=PYVWX‘ZTYO [ZZQ\ZP ]\\\ˆ ^[]P_^+>1_ùHøH=`1O a``>¯a=1bË= c²‘ dbc  eEd>²eAƒf+E=gf=h1‘ighQji k(j?= l²O-mll…-nm/�-on0Ž-pokPqpk >ùq=-r¸Ž-srkP tsk>útý86v'øuA,wòG=#xõ=#yö=z÷={øù|ø|=}ùO-~}}A×ùF=€P-�€€ˆ-‚~�VïƒxzW„ƒ‚O …„„A†‡wG= ˆ‡… ‰…ˆ= ŠúO-‹ŠŠA׌úF=�ŒP-Ž��ˆ-�‹ŽVï�y{W‘��O ’‘‘Aª“wE=”“P –”””  •.’‰–>Ù•ý861™š7˜ø—ù›ø›Qœ˜O �œœQž˜O ŸžžQ ˜O ¡  P1¢�Ÿ¡þ¢86¥¦7¤ø£ù§ø§91¨™¤T1©¨Qª¤O «ªª‘ ¬©« ­¬Q ®©P¯® Q °©P±° Q ²©P³² P´­+Pµ¯±³´þµ86·¸ø¶A%¹�GùºøºAb»¹H=¼»Ab½¹I=¾½Ab¿¹J=À¿AbÁ¹'=ÂÁPü¾ÀÂþÃ86-ÆÇ7-ÅøÄùÈøÈQÉÅQÊŃË+ÊP-ÌÉËþÌ86 ÎÏøÍ;0ÐÑ;0ÒÓùÔøÔ÷Õú€Ö×øÖ>ÐLùÕø×>ЀùÕøÕ= ØÐ¨ ÙØ÷ÚúÙÛÜøÛ>Ò€ùÚøÜ>ÒLùÚøÚ= ÝÒþÝ86 àá7ßøÞA'â„GùãøãA:äâG=åäÇæåF« çæGÇèßt« éèG¥ êçéþê86îï7ì71íøëA%ð�Gùñøñ>Âì>ÅíAƒòðG=óò9ô¥ó>Èô9õ·>ÉõAƒöðG=÷ö’ø÷ì>ÊøAƒùðG=úù91û™ú’1üûí>ËüQýìO þýý>ÌþAƒÿðG=ÿQìO P+‘O >ÍA¶ÈF=O >Îý867 7 7 7- 7-77ø ;0ùø>¯ >² O   >³O     D Q Ž >´9-Æ >¸9-Æ>»>¼|.>Á>µ¦÷ú€ ø>€ùø >€ùø= !÷"ú!#$ø#=%Â= &¯P'&+‘(%'O )((>¯)=1*Å= +²‘ ,*+>²,=1-Å= .³‘ /-.>³/=10Å= 1´‘ 201>´2ýø$ýø"ý86@9:747 57 67778ø3;C<=A%;�Gù>ø>Aƒ?;F=@?‘A@4A€B<G>BA÷Cú€DCøD=EµA€F<G>FEùCøCO G44AØH<E>HG  IE5AØJ<F>JI=-K¸A¶L< >LKARM<>M8  NE6PON7A€P<H>PO=Q¼A€R<I>RQ=-S»A¶T<J>TS=.U½ .V*UÊ|WVARX<'>XW9Y<=@Z<þZ86 \Ïø[;0]^ù_ø_÷`ú€abøa>]€ù`øb>]Lù`ø`= c]þc86efødùgøg÷húLihøi=jÈ= k¯Plk+‘mjlþmøh= n¯Pon+þo86 r 7 qøpùsøs÷túLutøu=vÈ91w™v‘ xwqþxøtþq86|}7z7 {øyA'~„GùøA:€~G=�€Ç‚�F« ƒ‚G¥ „ƒ{©…„I+…†z…þ†86Š‹7@ˆ7 ‰ø‡;Ø•–;Ø—˜A%Œ�GA'�„GA,ŽòG=#�õ=#�ö=‘÷=’øù™ø™Qšˆ9 ›àš¥ œ‰›>ñœ>ÑœQ�ˆ>Ð�QžˆO-ŸžžAb Œ=¡ O-¢¡¡…-£Ÿ¢>æ£Aƒ¤�G=¥¤Aƒ¦�E=§¦91¨™§9©î¥¨AƒªŒG=«ª91¬™«Q ­ˆ  ®E­ ¯®Q °ˆ  ±E°P³œœœ© ²³±¯>ï²>ð²Q ´ˆ>î´QµˆO ¶µµ>•¶= ·•= ¸•”¹²¸Ž º²¹ƒ »·º  ¼E»>•¼= ½•  ¾D²½Q¿ˆQÀ¿Ž Á¾ÀAƒÂŒG=ÃÂQ ĈPÅÄ+‘ÆÃÅO ÇÆÆ>¯Ç= ȯ>ÏÈ= ɯ‘ ʬ²  ËEÊ>²Ë= ̲= Í•‘ Î¬Í  ÏEÎ>³Ï‘ ЬÁ  ÑEÐ>´Ñ= Ò¯ ÓÒ  ÔEÓAªÕŒ =ÖÕº ×Ö§PÙ××ש ØÙªÔ>ÔØQ-Úˆ>¸ÚQ-Ûˆ>»ÛQ܈>¼Ü>Õ“>Ö+>ÙK>Ú+>Û+>Ü+>Ý >Þ§>ß+>à >á >âg>ã+>ä >åg9݈9ÞvT1߬= ಶáàÌš âá÷ãúâäãøä= 岑 æßå  çEæ>ðçùãøã= èÕ¶é蓚 êé÷ëúêìëøì= íÕ>—í= î—O-ïîîŽ-ðïLƒ-ñð”P òñ >—ò= ó—O-ôóó= õ—O-öõõ”÷ôöƒø+÷ ù( ø úùA‹û—F>ûú= ü²= ý³A‹þ—G=ÿþŽ ýÿ= ´A‹—E=Ž � = ²A‹—F=Ž �  = ÖP      .ü    E >²= ²‘ ß  E>ðùëøë= ϶Éš ÷úø=È= ÏP+‘O >îýøýøý86 á7ø;0 !;0"#ù$ø$Ç%F« &%G÷'ú&('ø(þLø'÷)ú€*+ø*= ,ñ> ,ù)ø+> €ù)ø)= - ÷.ú-/.ø/þLø.÷0ú€12ø1=3Ú=4Û¸ 534>"5ù0ø2>"€ù0ø0= 6"þ686 9 7 8ø7A%:�Gù;ø;Aª<:GGF==<Aª>:GEF=?>Aª@:GFF=A@P B=?AAbC: =DCO EDDƒ FE8  GEF  HEBAªI: =JIº KJ§PMKKK© LMHGþL86P¸7OøNùQøQƒR+O S+R +…TSS…UTT…VUSþV86\]7X7Y7Z7[øWù_ø_ `(X ÷aú€baøb�cX[�d+[�e+[…fdeˆgcf h( g…ih^þiøa÷jú€kjøkl[ m([¶ n1lmX…on^þoøj÷pú€qpøq…rLZ…srZ…ts[ƒut§9vPY…wuv�x+w9yP`…zuy�{+z…|^x…}|{…~}`þ~øp…`^þ86 Š‹7 �7 ‚7 ƒ7 „7 …7 †7‡7ˆ7‰ø€;ØŒ�;‹Ž�;0�‘ù’ø’”“�ƒ ”%“+”•�‚ –(•?� —ƒ‚  ˜E—”™ƒ˜ š+™ +9›\”–šˆŽ œ…›… �œ„>Œ�º žˆ ÷Ÿúž Ÿø ÷¡ú€¢£ø¢  ¤Gƒ� ¥¤  ¦E¥”§¦‚ƒ¨+ˆ>ލ=©Ž=ªŽ…«©ª>Ž«= ¬Œ… ­…„=®Ž…¯ˆ§ƒ°®¯=±Ž…²ˆ§�³±² ´1°³§=µŽ…¶´µ…·¶‰Ž ¸­·� ¹¬¸>Œ¹ù¡ø£÷ºú€»¼ø»º ½” >�½ùºø¼>�€ùºøº= ¾�÷¿ú¾À¿øÀ”Á�˜ Â(Á ”˜ Ä(à 9 ÅS†Ä= ÆŒ9Ç/‡9È=”–‡…ÉÇÈŽ ÊÅɅˉ”Ž ÌÊË… ÍÌ„� ÎÆÍ>ŒÎù¿ø¿ù¡ø¡ùŸøŸ= ÏŒþÏ86ÓÔ7Ñ7 ÒøÐ;‹Ö×AÞÕ‡GùØøØ Ù&ÑÁAéÚÕÙ=ÛÚQÜÛQÝܪ ÞÝG÷ßúÞàßøàQáÛO âáá ãâPäã+þäøßQåÛO æååƒ çæÒ èBç é(èP êéééˆ ëçêQìÛQíìQîÛQïî9ðm èíï>ÖðQñÛQòñª óòF÷ôúóõôøõQöÛQ÷ö øëQùÛO úùù”ûøú ü(û÷ƒý+üƒþ+÷ ÿ(þˆýÿ (?=ÖQÛQ ƒ+…>Öùôøô=ÖP ëþ 86 7 7 ø ;0A%�GAÞ‡GA— ŠG=�=�ùø÷ú€ø & ÁA:E=« E>ùø>Lùø= ÷ú ø þ+ø= !î= "ï9#“ !" þ#86 +,7 %7 &7 '7 (7)7*ø$;Ø=>;Ø78;Ø;<;Ø56;Ø?@;Ø9:A'-„GAÞ.‡GA>/‘G="0”=1˜AJ2žG=#3¡=4¢ùAøA= Bî”C%& D(C?ƒE+)P FEEE  G(F(ƒ HG(ƒI+D JIUŽ KHJ� L(K9Mà %€gA:N/GG=ONÇPO'« QPG÷RúQSTøSAªU/'G=VUAªW/I =XW…YVXAbZ/J=[ZO \[[>7\A:]/GG=^]Ç_^« `_G÷aú`baøbAbc/J=dcO edd9 f=%9 g!fŽ hgYAªi/J =jiP ljjj  k.ehl>7kùaøaQmMº nm ÷oúnpoøpO qMM>7qùoøoAbr/J=srO tss>9tA:u/GG=vuÇwvK« xwG÷yúxz{øz |&  }G|%9 ~=}9 †~)Ž €Y>9€ùyø{A:�/GG=‚�ǃ‚« „ƒG÷…ú„†…ø†>9gù…ø…ùyøy9-‡˜)DA:ˆ2GG=‰ˆ¬ ЉG÷‹úŠŒ�øŒ Ž&  �GŽ%A:�-F=‘�9’ùB�)‘= “9Q”’ƒ•+”Ž –“•O —’’� ˜–—= ™7>;™QšM¼ ›š ÷œú›�œø�A:ž-F=Ÿž9 UB%Ÿ= ¡7Q¢ ƒ£+¢Ž ¤¡£O ¥  � ¦¤¥>;¦ùœøœ= §;… ¨'§Q©‡Ž ª(©Q«‡Q¬(…­†¬ ®+­*+…¯«®P °¯¯¯� ±ª°… ²˜±� ³¨²>5³ù‹ø�= ´7… µ'´= ¶9Q·‡Ž ¸(·Q¹‡Qº(…»†º ¼+»*+…½¹¼P ¾½½½� ¿¸¾… À¶¿� ÁµÀ>5Áù‹ø‹ùRøTA:Â.GE=ÃÂÇÄÃF« ÅÄG÷ÆúÅÇÈøÇAbÉ. =ÊÉO ËÊÊAbÌ.=ÍÌO ÎÍÍAbÏ.H=ÐÏO ÑÐÐ� ÒÎÑŽ ÓÒ§AbÔ.I=ÕÔO ÖÕÕAb×.J=Ø×O ÙØØ� ÚÖÙŽ ÛÚ§”Ü%Ë…Ýܧ�Þݧ ß+Þ +P áßßß  à.ÛÓá â&  ãGâ%9 ä‚ãP æ)))  å.äÓæA:ç2GG=èç¬ éèG÷êúéëìøë í&  îGí%A:ï-F=ðï9ñùBî)ðAªò.E =óòŽ ôåóQõñƒö+õŽ ÷ôöO øññ� ù÷øO úMM>=úQûM¼ üû ÷ýúüþýøþA:ÿ-F=ÿ9UB%Aª.E =Ž àQƒ+Ž O � >= ùýøý= =… ' … ùL�   >5 ùêøìQMº  ÷úøO MM… '… åLAª.E =Ž � >5ùø… 'à… åL� Aª.E =Ž >5ùøùêøêùÆøÈA: 2GG=! ¬ "!G÷#ú"$%ø$ &&  'G&%A:(-F=)(9*ùB'))Ab+.E=,+O -,,Q.*ƒ/+.Ž 0-/O 1**� 201O 3MM>?3Q4M¼ 54 ÷6ú576ø7A:8-F=989:UB%9Ab;.E=<;O =<<Q>:ƒ?+>Ž @=?O A::� B@A>?Bù6ø6= C?… D'C… E2L� FDE>5Fù#ø%QGMº HG ÷IúHJKøJO LMM… M'LAbN.E=ONO POO… QPL� RMQ>5RùIøKAbS.E=TSO UTT� V'L… WUV>5WùIøIù#ø#ùÆøÆùRøR= X5þX86 \Ã7 Z7 [øY;ØdeA%]�GA'^„GAÞ_‡GA>`‘G="a”=b˜A±c¨Gùføf>dZ÷gú€hgøh= idþiøgA:j`GG=kjÇlkt« mlG÷númonøo= pd= qî r[9 spqr>dsùnønA:t^I =ut« vuG÷wúvxwøx= yd= zîA:{^I =|{9 }@ yz|>d}ùwøw= ~dþ~86 �‚7€ø;0 ¡;0š›;O–—;Ø¢g;Øœ�;ؘg;0£¤;0žŸ;R™G;aéd;O·A%ƒ�GA'„„GAÞ…‡GA— †ŠG=‡�=ˆ�A>‰‘G="Š”=‹˜=#ŒšAJ�žG=#Ž¡=�¢A�£G=$‘¦=’§A±“¨Gù¥ø¥= ¦ï= §Ù=¨Ý ©+¨ +=ªß «+ªM+=¬ã= ­ð= ®åP ,¯§©«¬­®>–¯A:°„IF=±°¬ ²±G÷³ú²´³ø´= µî=,¶–>·¶=,¸·9,¹Bµ¦¸>–¹Aغ–G= »º>Ù»A‹¼–E=½¼>ݽA‹¾–F=¿¾>ß¿AƒÀƒG=ÁÀ91™ÁAØÃ–= ÄÑ ÅÂÄ  ÆEÅ>²Æù³ø³A‹Ç–E=ÈÇA‹É–F=ÊÉ…ËÊÊ…ÌËÊ…ÍÌÊAØÎ–G= Ï΃Ð+ÈŽ ÑÏÐ=ÒÞ…Ó”Ò=ÔÞ…ÕÓÔP ÖÕÕÕP ØÈÈÈ  ×.ÖÏØAØÙ–= ÚÙ= Ûî9 Ü9ÛAƒÝƒG=ÞÝ91ß™ÞA‹à– =áà=âä ã.+áâ>ìg>íg9äµùåøåöæèùêøê=`ëéªbìcë› íì÷îúíæîøîQïëª ðïG©ñðEGP`òñE‚`óëò>éóùçøç=ô™° õôä÷öúõö÷ø÷ùæøöùøøø=ú™9û¾ú ü&ûÁAéý…ü=þý= ÿî9ÓûÿO Q÷ú€øQþQª G¨ ÷ ú  ø º  >š ù ø >šLù ø = š÷ú ø‘ ß  E>èQþO >é9 û…>ëQþQª G>êQþQ>ç9&ùøùèø=ຠ ÷úø” ÚÜ !( ?ƒ"+! #(?"ƒ$+Ê…%$• &( % '#&= (˜Q)þO *))… +Ñ*=,à…-',Ž .+-=/áP 1///  0.KÏ1… 2.0� 3(2>˜3ùøº 4 ÷5ú465ø6Q7þO 877Ž 98>œ9Q:þQ;:ª <;E÷=ú<>?ø>>ž€ù=ø?>ž€ù=ø== @ž÷Aú@BAøBQCþO DCC= Eî9F“ ûE¦…GFŽ HDG>œHùAøA÷IúLJKøJ> €ùIøK> €ùIøI= L ÷MúLNOøN= P˜= QœQRþQSR9 TeÚÜQÑ×ÍS� UPT>˜UùMøO= V˜= WœQXþQYX9 ZŠÚÜWÑ×ÍÊY� [VZ>˜[ùMøM= \âº]\gš ^]÷_ú^`_ø`”aÚ b%a+ c(b = d˜= eœ… fÑe= gâ… hfg…ic^ƒj^iŽ khj� ldk>˜lù_ø_ù5ø5ùùøùùèøè=m™€nmE>™nùåøæ÷oú€pqøp= rì… srÏŽ tsãƒu+ÈŽ vtu= wíŽ xwã� yvx>˜yùoøq=zäº {z ÷|ú{}|ø}= ~˜Ž ~ã>˜ù|ø|ùoøo÷€úL�€ø�9 ‚+ÚÜÑ×ÊÈ>¢‚ù€ø€A:ƒ…GE=„ƒÇ…„« †…G÷‡ú†ˆ‰øˆ9 ŠÎ¨ ‹Š>£‹ù‡ø‰>£€ù‡ø‡= Œ£÷�úŒŽ�øŽO-�€€ -‘� -”+‘’“n2•”j.–Œ‚.—–Ò .˜&Ê—g2™Œ˜‚2›™š 2œ&•›_�Œœ˜Qž�= Ÿ˜A‹ – =¡  ¢%ž¡Aª£…FF=¤£Aª¥…F =¦¥…§¤¦ ¨.+¢§Ž ©Ÿ¨>˜©= ª˜= «¢A‹¬– =­¬ ®%­žŽ ¯«®� °ª¯>˜°ù�ø�= ±˜= ²¢A‹³– =´³Ž µ²´� ¶±µ>˜¶ù�ø�= ·˜Aظ–H= ¹¸� º·¹>˜º= »˜9 ¼\»Ü9 ½b¼þ½86ÀÁ7 ¿ø¾;ØÄÅA%Â�GAÞÇGùÆøÆ>Ä¿÷Çú€ÈÇøÈ= ÉÄ=ÊÜŽ ËÉÊ>ÄËùÇøÇ= ÌÄ=ÍÚ9 ÎΩÏÎÍ+PÐÌÏA:ÑÃGE=ÒÑÇÓÒ'« ÔÓG÷ÕúÔÖÕøÖO ×ÐÐ  Ø(×gQÙÐ Ú+Ù +PÛØÚþÛøÕ Ü+Ð¥¦A:Ý F=ÞÝÇßÞF« àßG÷áúàâáøâO ãÜÜ9 ä”ãQåÜPæäåþæøáþÜ86 èÐøç=#é–=ê˜=ë™=$ì›=í�=#î®ùïøïVïðéëXñð0 O òññoóÊP ô0óV9õìíXöõô O ÷öö� øò÷VïùîêXúù0 O ûúú� üøûþü86%'øý= ÿ= =-= =  = P /þ  =-=A%&�GA''„GA,(òGù)ø)Aƒ*'G=+*Aƒ,'E=-,91.™-9/î+.>½Ê>À¥Q 0þQ 1þQ2þQ-3þ9 40123¦95*Q6þQ7698|7€9 9\÷:ú9;:ø;9<e= =²9 >r== ?³9 @r?QAþ9 @B9<>@8AQCB>CADEE=FEGF>EGQ HB>HQ IB>IQ-JB>JQKB>KQLB>LQMB>MQ-NB>NQOB> OQPB >!PQQB >"QQRB >#RQSB >$Sýø:AƒT'G=UT= V¯PWV+‘XUWAƒY'E=ZY= [²P\[ ‘]Z\O ^]]Aƒ_'G=`_= a³Pba ‘c`bO dccQeþ9 @f9X^d8eQgf>gADhE=ihji>hjQ kf>kQ lf>lQ-mf>mQnf>nQof>oQpf>pQ-qf>qQrf> rQsf >!sQtf >"tQuf >#uQvf >$vý86¤'øw= zy= |{=-~}=€=‚�=„ƒP /xz|~€‚„=‡†=‰ˆ=‹Š=�ŒP0…‡‰‹�=-�Ž=’‘=”“P?�’”=–•A%¥�GA'¦„GA,§òGù¨ø¨Q©…Qª©Q«…Q¬«Q­…Q®­P ¯ª¬®Q°…Q±°Q²…Q³²Q´…Qµ´P ¶±³µQ·…Q¸·Q¹…Qº¹Q»…Q¼»P ½¸º¼  ¾D¶½”¿¯¾¸ À¿   ÁD¶½  ÂD½¯  ÃD¯¶P1ÄÁÂéÅÀI+�1ÆÄÅPǯ Pȶ Pɽ QÊ…QËÊQÌ…QÍÌQÎ…QÏÎPÐËÍÏ+PÑÇÈÉÐAƒÒ¦G=ÓÒ’ÔÓÑAƒÕ¦E=ÖÕ91×™Ö’1Ø×Æ9ÙîÔØQÚ� Û+Úýþn.ÜÛ>½ÜQÝ�>ÀÝQ ÞxQ ßxQàxQ-áxQâ…9 ãÞßàá�â–9ä*Qåx©æÀtGÅçåæQèxQéè9ê|éÀ9 ë\÷ìúëíìøí9îe= ï²9 ðrï= ñ³9 òrñ9 @ó9îðòêçQôó>—ôADõ—E=öõ÷ö>õ÷Q øó>˜øQ ùó>™ùQ-úó>šúQûó>›ûQüó>œüQýó>�ýQ-þó>žþQÿó>ŸÿQó > Qó >¡Qó >¢Qó >£ýøì= ¯P+Q…”Q…” Q …”  P   Aƒ ¦G= P +‘Aƒ¦E== ²‘ ÆP ‘O Aƒ¦G=P1¯¶½= ³‘ P ‘O 9 @ 9êçQ! >—!AD"—E=#"$#>"$Q % >˜%Q & >™&Q-' >š'Q( >›(Q) >œ)Q* >�*Q-+ >ž+Q, >Ÿ,Q-  > -Q.  >¡.Q/  >¢/Q0  >£0ý86V'ø1= 43= 65=-87=:9=<;=>=P /2468:<>=B@=DCP=?BD=-FE=HGA%W�GA'X„GA¿Y«GA,ZòGù[ø[9>\Í?Q ]2P^]+Q_\”`_^Qa\”ba^Qc\”dc^P e`bdQf\QgfQh\QihQj\QkjP lgikQm\QnmQo\QpoQq\QrqP snprQt\QutQv\QwvQx\QyxP zuwy  {Dsz”|l{¸ }|   ~Dsz  Dzl  €DlsP1�~€Q ‚2‘ ƒ�‚©„}I+Ž …ƒ„  †E…P1‡lszQˆ2O ‰ˆˆ‘ Ї‰  ‹EŠAƒŒXG=�ŒAƒŽXE=�Ž91�™�9‘î��>½Ê>À¥Q’2Q“’P”‹“Q-•29 –e†”•F¦H9—*Q˜2©™}tGÅš˜™Q›2Qœ›9�|œ}9 ž\÷Ÿúž Ÿø 9¡e= ¢²9 £r¢= ¤³9 ¥r¤9 @¦9¡£¥�šQ§¦>I§AD¨IE=©¨ª©>¨ªQ «¦>J«Q ¬¦>K¬Q-­¦>L­Q®¦>M®Q¯¦>N¯Q°¦>O°Q-±¦>P±Q²¦>Q²Q³¦ >R³Q´¦ >S´Qµ¦ >TµQ¶¦ >U¶ýøŸAƒ·XG=¸·= ¹¯Pº¹+‘»¸ºAƒ¼XE=½¼= ¾²P¿¾ ‘À½¿O ÁÀÀAƒÂXG=ÃÂ= ijPÅÄ ‘ÆÃÅO ÇÆÆ9 @È9»ÁÇ�šQÉÈ>IÉADÊIE=ËÊÌË>ÊÌQ ÍÈ>JÍQ ÎÈ>KÎQ-ÏÈ>LÏQÐÈ>MÐQÑÈ>NÑQÒÈ>OÒQ-ÓÈ>PÓQÔÈ>QÔQÕÈ >RÕQÖÈ >SÖQ×È >T×QØÈ >UØý86ù'øÙ;Ø=ÜÛ= ÞÝ= àß=-âá=äã=æå=èç=-êé=ìë=îí=ðï=òñ=ôóP@ÚÜÞàâäæèêìîðòô= ÷õA%ú�GA'û„GAÞü‡GA— ýŠG=þ�=ÿ�A>‘G="”=#–=˜=™=#š=$›=�AJžG=# ¡= ¢A £G=$ ¦= §A±¨G=#®A,òG=#õ=#ö=÷=øùø9ŠÚ÷QÚ9 ÷úøüøQ ÚQÚO-9 Õ¼ !  ÷"ú!#"ø#üø"÷$úL%&ø%= 'Ù= (î9 )9(9 *\')9 +b*>+ù$ø&Q,Ú9 -�,>-ù$ø$A:.üG =/.ª 0/P÷1ú021ø2= 39 4è� 534>5ù1ø1A:6ú G=76ª 87'÷9ú8:9ø:= ;9 <);9 = < >=ù9ø9= >9?À>>ø?ý86^'ø@;0gh;0ij=CB= ED= GF=-IH=KJ=ML=ON=-QP=SR=UT=WV=YX=[ZP@ACEGIKMOQSUWY[= ]\A%_�GA'`„GA,aòG=#bõ=#cö=d÷=eøùkøk9lŠA]QmAÇnmF« onG¨ po÷qúprsør÷tú€uvøu=wÚ=xÛ¸ ywx>iyùtøv>i€ùtøt= zi>gzùqøs>gLùqøq= {g÷|ú{}|ø}üø|Q ~A9Õ~f¼ € ÷�ú€‚ƒø‚üøƒýø�ý86£'ø„;0­®;°¯±=‡†= ‰ˆ= ‹Š=-�Œ=�Ž=‘�=“’=-•”=—–=™˜=›š=�œ=ŸžP@…‡‰‹��‘“•—™›�Ÿ= ¡ A%¤�GA'¥„GA,¦òG=#§õ=#¨ö=©÷=ªøù²ø²9³Š…¡Q´…9 µ´¨ ¶µ÷·ú¶¸¹ø¸Q º…Q»…O-¼»»9½Õº¼¼ ¾½ >­¾ù·ø¹>­Lù·ø·= ¿­÷Àú¿ÁÀøÁüøÀA:Â¥ F=ÃÂA:Ä¥ G=ÅĪ ÆÅE©ÇÆEGA:È¥ E=ÉȪ ÊÉE©ËÊFGÅÌÇËÇÍÃpÎÍÂÏÃ'ÇÐÏpÑÐÂÒÃÇÓÒpÔÓpÕÌPÖÎÑÔÕˆ×Ö¬A€Ø¯G>Ø×=AÙ¯QÚÙ>¢Úý86û'øÛ;0;=ÞÝ= àß= âá=-äã=æå=èç=êé=-ìë=îí=ðï=òñ=ôó=öõP@ÜÞàâäæèêìîðòôö= ø÷A%ü�GA'ý„GA,þòG=#ÿõ=#ö=÷=øùø9 ŠÜøQ Ü9  ¨  ÷ ú øQ ÜQÜO-9Õ¼  >ù ø>Lù ø = ÷úøüøAƒüG=91™= ð‘   E=Ý + += Þ…!” ="Þ…#!"P $###= %ÙP '  &.$%'Aƒ(üG=)(Q *ÜP+*+‘,)+Q-,.-P/.A€0G>0/  1+&gK=2ß 3+2M+P413A€5E>54=D6Q76>ù7Q86>ú8ý8 @Ð Ð/ ,@  ˜J£&ѰA¬ËÎ-”ÒÑ'RSuQÇuS_7hh'·ÊË$hedra_shaders/world/b768126626422a2bjÔ³ž6BTSR >•>•à—,¢ J9à*;†°;Ö†=œ] "›à�þª H ààI ŠjZ J0 ´Š àü vs_customvs_custom_instancedvs_custom_skinned fs_customfs_custom_depth fs_custom_idfs_custom_normal_depthÿGOLitShadowt_shadows_shadowSky t_radiance t_panorama s_radiance s_panoramat_ao t_lightmap s_lightmapProbet_probess_probesDecalt_decalss_decalsFogSkint_screenhedra_p vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depthH”struct Globals { view: mat4x4, proj: mat4x4, view_proj: mat4x4, camera_pos: vec4, viewport: vec4, wire_color: vec4, select_color: vec4, active_color: vec4, grid: vec4, params: vec4, fparams: vec4, } struct ObjectU { model: mat4x4, normal: mat4x4, color: vec4, params: vec4, extra: vec4, gi: array, 3>, decals: vec4, lights: vec4, } struct LightU { color: vec4, position: vec4, direction: vec4, spot: vec4, info: vec4, } struct LitU { counts: vec4, ambient: vec4, tone: vec4, up: vec4, sky_top: vec4, sky_horizon: vec4, ground_horizon: vec4, ground_bottom: vec4, inv_view_proj: mat4x4, dirs: vec4, lights: array, } struct ShadowLightU { params: vec4, splits: vec4, fade: vec4, info: vec4, } struct ShadowTileU { view_proj: mat4x4, rect: vec4, texel: vec4, } struct ShadowU { atlas: vec4, lights: array, tiles: array, } struct SunU { direction: vec4, color: vec4, } struct SkyU { flags: vec4, to_sky: mat4x4, sky_top: vec4, sky_horizon: vec4, ground_bottom: vec4, ground_horizon: vec4, sun: vec4, ambient: vec4, ibl: vec4, fog_color: vec4, fog: vec4, fog_depth: vec4, fog_origin: vec4, suns: array, sh: array, 9>, } struct ProbeEntryU { to_local: mat4x4, extents: vec4, offset: vec4, ambient: vec4, info: vec4, } struct ProbeU { counts: vec4, probes: array, } struct DecalEntryU { to_local: mat4x4, modulate: vec4, fades: vec4, axis_x: vec4, axis_y: vec4, axis_z: vec4, layers: vec4, flags: vec4, } struct DecalU { counts: vec4, lod: vec4, entries: array, } struct DecalSurface { base: vec3, metallic: f32, roughness: f32, occlusion: f32, normal: vec3, emission: vec3, } struct VsIn { @location(0) pos: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, } struct InstIn { @location(6) row0_: vec4, @location(7) row1_: vec4, @location(8) row2_: vec4, @location(9) color: vec4, } struct FogEntryU { to_local: mat4x4, size: vec4, material: vec4, albedo: vec4, emission: vec4, lights: vec4, } struct FogU { counts: vec4, params: vec4, ambient: vec4, up: vec4, light_fog: array, 16>, entries: array, } struct SkinU { rows: array, 765>, } struct SkinIn { @location(12) joints: vec4, @location(13) weights: vec4, } struct SkinRows { r0_: vec4, r1_: vec4, r2_: vec4, } struct HedraInstExtra { @location(14) custom: vec4, @location(15) id: f32, } struct CustomOut { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) color: vec4, @location(6) uv2_: vec2, @location(7) @interpolate(flat) instance_id: u32, @location(8) hedra_v0_: vec4, @location(9) hedra_v1_: vec4, @location(10) hedra_v2_: vec4, @location(11) hedra_v3_: vec4, } struct IdOut { @location(0) id: vec4, } struct HedraParams { shadow_color: vec3, lift: f32, rings: f32, hedra_pad0_: f32, snap_resolution: vec2, } struct HedraNormalDepthOut { @location(0) normal_depth: vec4, @location(1) surface: vec4, } const OBJ_HAS_WEIGHTS: u32 = 1u; const OBJ_MIRRORED: u32 = 2u; const SHADE_SOLID: u32 = 0u; const SHADE_MATCAP: u32 = 1u; const SHADE_NORMALS: u32 = 2u; const SHADE_FACE_ORIENT: u32 = 3u; const SHADE_RANDOM: u32 = 4u; const SHADE_MATERIAL: u32 = 5u; const SHADE_UV_CHECKER: u32 = 6u; const SHADE_WEIGHTS: u32 = 7u; const SHADE_LIT: u32 = 8u; const SHADE_LIGHTMAP: u32 = 9u; const SHADE_LIGHT_COUNT: u32 = 10u; const OV_SELECTION: u32 = 1u; const OV_SEAMS: u32 = 2u; const OV_SHARP: u32 = 4u; const F_SELECTED: u32 = 1u; const F_HIDDEN: u32 = 2u; const F_SEAM: u32 = 4u; const F_SHARP: u32 = 8u; const F_MESH: u32 = 16u; const F_FADE: u32 = 32u; const F_NO_PULL: u32 = 64u; const SPEC_TEX_BASE: bool = true; const SPEC_TEX_NORMAL: bool = true; const SPEC_TEX_MR: bool = true; const SPEC_TEX_EMISSION: bool = true; const SPEC_TEX_OCCLUSION: bool = true; const SPEC_VERTEX_COLOR: bool = true; const SPEC_EXT: bool = true; const SPEC_UNLIT: bool = true; const SPEC_ALPHA_MASK: bool = true; const SPEC_ALPHA_BLEND: bool = true; const SPEC_CLEARCOAT: bool = true; const SPEC_SHEEN: bool = true; const SPEC_TRANSMISSION: bool = true; const SPEC_IRIDESCENCE: bool = true; const SPEC_ANISOTROPY: bool = true; const SPEC_DIFFUSE_TRANSMISSION: bool = true; const SPEC_VOLUME: bool = true; const SPEC_DISPERSION: bool = true; const SPEC_EXT_LAYERS: bool = true; const SPEC_ROUGHNESS_LAYER: bool = true; const SPEC_LIT: bool = true; const SPEC_LIGHTS: bool = true; const SPEC_SHADOWS: bool = true; const SPEC_DECALS: bool = true; const SPEC_FOG: bool = true; const SPEC_FOG_VOLUMES: bool = true; const SPEC_PROBES: bool = true; const SPEC_PROBE_GI: bool = true; const SPEC_SSAO: bool = true; const SPEC_SCREEN_REFRACTION: bool = true; const SPEC_EMERGE: bool = true; const SPEC_FADE: bool = true; const SPEC_FACE_FLAGS: bool = true; const SPEC_AMBIENT_FLAT: bool = true; const SPEC_AMBIENT_GRADIENT: bool = true; const SPEC_AMBIENT_SKY: bool = true; const SPEC_MATERIAL_MODE: bool = true; const SPEC_OTHER_MODES: bool = true; const PI: f32 = 3.1415927f; const TAU: f32 = 6.2831855f; const E: f32 = 2.7182817f; const HEDRA_BLEND_MIX: u32 = 0u; const HEDRA_BLEND_PREMUL_ALPHA: u32 = 4u; const HEDRA_CULL_FRONT: u32 = 1u; const HEDRA_DIFFUSE_LAMBERT: u32 = 0u; const HEDRA_DIFFUSE_LAMBERT_WRAP: u32 = 1u; const HEDRA_DIFFUSE_BURLEY: u32 = 2u; const HEDRA_DIFFUSE_TOON: u32 = 3u; const HEDRA_SPECULAR_SCHLICK_GGX: u32 = 0u; const HEDRA_SPECULAR_TOON: u32 = 1u; const HEDRA_SPECULAR_DISABLED: u32 = 2u; const HEDRA_ENCODE_SRGB: u32 = 2u; const HEDRA_NEVER: u32 = 4294967295u; const MAX_FRAME_LIGHTS: u32 = 64u; const MAX_OBJECT_LIGHTS: u32 = 8u; const MAX_SHADOW_LIGHTS: u32 = 16u; const MAX_POOL_DIRECTIONAL: u32 = 8u; const LIGHT_COUNT_COLORS: array, 10> = array, 10>(vec3(0.352941f, 0.352941f, 0.352941f), vec3(0.168627f, 0.247059f, 0.6f), vec3(0.129412f, 0.4f, 0.67451f), vec3(0.101961f, 0.623529f, 0.721569f), vec3(0.121569f, 0.631373f, 0.529412f), vec3(0.301961f, 0.733333f, 0.352941f), vec3(0.65098f, 0.831373f, 0.227451f), vec3(0.94902f, 0.784314f, 0.058824f), vec3(0.94902f, 0.556863f, 0.058824f), vec3(0.878431f, 0.129412f, 0.541176f)); const LIGHT_DIRECTIONAL: u32 = 0u; const LIGHT_OMNI: u32 = 1u; const LIGHT_SPOT: u32 = 2u; const LIGHT_BAKE_DISABLED: u32 = 0u; const LIGHT_BAKE_STATIC: u32 = 1u; const LIGHT_BAKE_DYNAMIC: u32 = 2u; const TONEMAP_LINEAR: u32 = 0u; const TONEMAP_REINHARD: u32 = 1u; const TONEMAP_FILMIC: u32 = 2u; const TONEMAP_ACES: u32 = 3u; const TONEMAP_AGX: u32 = 4u; const ENV_SKY: u32 = 1u; const ENV_AMBIENT_SKY: u32 = 2u; const ENV_SSAO: u32 = 4u; const ENV_HDR: u32 = 8u; const ENV_SCREEN_REFRACTION: u32 = 16u; const LIGHT_SHADOWED: u32 = 1u; const LIGHT_BAKED_STATIC: u32 = 1u; const SHADOW_TILES: u32 = 16u; const SKY_DRAW_PROCEDURAL: u32 = 1u; const SKY_DRAW_PANORAMA: u32 = 2u; const SKY_PANORAMA_FILTER: u32 = 4u; const SKY_IBL: u32 = 8u; const SKY_AMBIENT_SKY: u32 = 16u; const SKY_REFLECT_RADIANCE: u32 = 32u; const SKY_REFLECT_OFF: u32 = 64u; const SKY_FOG: u32 = 128u; const SKY_FOG_DEPTH: u32 = 256u; const SKY_SUNS: u32 = 4u; const OBJ_LIGHTMAP: u32 = 4u; const OBJ_PROBE_GI: u32 = 8u; const PROBE_BOX: u32 = 1u; const PROBE_INTERIOR: u32 = 2u; const MAX_PROBES: u32 = 8u; const PROBE_AMBIENT_DISABLED: u32 = 0u; const PROBE_AMBIENT_ENVIRONMENT: u32 = 1u; const PROBE_AMBIENT_CONSTANT_COLOR: u32 = 2u; const MAX_FRAME_DECALS: u32 = 64u; const MAX_OBJECT_DECALS: u32 = 8u; const DECAL_LIVE_ALBEDO: u32 = 1u; const DECAL_LIVE_NORMAL: u32 = 2u; const DECAL_LIVE_ORM: u32 = 4u; const DECAL_LIVE_EMISSION: u32 = 8u; const F_INSTANCE_MIRRORED: u32 = 128u; const OBJ_EMERGE: u32 = 32u; const EMERGE_SCALE: f32 = 1.3f; const EMERGE_EDGE: f32 = 0.8f; const EMERGE_DITHER: f32 = 0.12f; const OBJ_FADE: u32 = 64u; const MAX_FRAME_FOG_VOLUMES: u32 = 16u; const MAX_OBJECT_FOG_VOLUMES: u32 = 4u; const FOG_SHAPE_ELLIPSOID: u32 = 0u; const FOG_SHAPE_CONE: u32 = 1u; const FOG_SHAPE_CYLINDER: u32 = 2u; const FOG_SHAPE_BOX: u32 = 3u; const FOG_SHAPE_WORLD: u32 = 4u; const FOG_SKY_DISTANCE: f32 = 1000000f; const FOG_LIST_ALL: u32 = 2147483648u; const FOG_GL_X0_: f32 = 0.8611363f; const FOG_GL_X1_: f32 = 0.339981f; const FOG_GL_W0_: f32 = 0.3478548f; const FOG_GL_W1_: f32 = 0.6521452f; const OBJ_SKINNED: u32 = 16u; const SKIN_JOINTS: u32 = 255u; const HEDRA_UNSHADED: bool = true; const HEDRA_HAS_LIGHT: bool = false; const HEDRA_USES_POSITION: bool = false; const HEDRA_SKIP_VERTEX_TRANSFORM: bool = true; const HEDRA_WORLD_VERTEX_COORDS: bool = false; const HEDRA_AMBIENT_LIGHT_DISABLED: bool = false; const HEDRA_FOG_DISABLED: bool = true; const HEDRA_SHADOWS_DISABLED: bool = true; const HEDRA_ALPHA: bool = false; const HEDRA_ALPHA_SCISSOR: bool = false; const HEDRA_DIFFUSE: u32 = 0u; const HEDRA_SPECULAR: u32 = 2u; const HEDRA_BLEND: u32 = 3u; const HEDRA_CULL: u32 = 2u; @group(0) @binding(0) var G: Globals; @group(1) @binding(0) var O: ObjectU; @group(0) @binding(1) var Lit: LitU; @group(0) @binding(2) var Shadow: ShadowU; @group(0) @binding(3) var t_shadow: texture_depth_2d; @group(0) @binding(4) var s_shadow: sampler_comparison; @group(0) @binding(5) var Sky: SkyU; @group(3) @binding(0) var t_radiance: texture_cube; @group(3) @binding(1) var t_panorama: texture_2d; @group(3) @binding(2) var s_radiance: sampler; @group(3) @binding(3) var s_panorama: sampler; @group(0) @binding(6) var t_ao: texture_2d; @group(3) @binding(4) var t_lightmap: texture_2d_array; @group(3) @binding(5) var s_lightmap: sampler; @group(0) @binding(7) var Probe: ProbeU; @group(3) @binding(6) var t_probes: texture_2d; @group(3) @binding(7) var s_probes: sampler; @group(1) @binding(2) var Decal: DecalU; @group(1) @binding(3) var t_decals: texture_2d_array; @group(1) @binding(4) var s_decals: sampler; @group(1) @binding(5) var Fog: FogU; @group(1) @binding(1) var Skin: SkinU; @group(1) @binding(6) var t_screen: texture_2d; var VERTEX: vec3; var NORMAL: vec3; var TANGENT: vec3; var BINORMAL: vec3; var POSITION: vec4; var UV: vec2; var UV2_: vec2; var COLOR: vec4; var INSTANCE_ID: i32; var INSTANCE_CUSTOM: vec4; var VERTEX_ID: i32; var MODEL_MATRIX: mat4x4; var MODEL_NORMAL_MATRIX: mat3x3; var INV_VIEW_MATRIX: mat4x4; var INV_PROJECTION_MATRIX: mat4x4; var MODELVIEW_MATRIX: mat4x4; var MODELVIEW_NORMAL_MATRIX: mat3x3; var NODE_POSITION_WORLD: vec3; var NODE_POSITION_VIEW: vec3; var CAMERA_DIRECTION_WORLD: vec3; var LIGHT_VERTEX: vec3; var FRAGCOORD: vec4; var FRONT_FACING: bool; var VIEW: vec3; var NORMAL_MAP: vec3; var NORMAL_MAP_DEPTH: f32; var ALBEDO: vec3; var ALPHA: f32; var ALPHA_SCISSOR_THRESHOLD: f32; var PREMUL_ALPHA_FACTOR: f32; var METALLIC: f32; var SPECULAR: f32; var ROUGHNESS: f32; var RIM: f32; var RIM_TINT: f32; var BACKLIGHT: vec3; var AO: f32; var AO_LIGHT_AFFECT: f32; var EMISSION: vec3; var SCREEN_UV: vec2; var SPECULAR_AMOUNT: f32; var LIGHT: vec3; var LIGHT_COLOR: vec3; var LIGHT_IS_DIRECTIONAL: bool; var ATTENUATION: f32; var DIFFUSE_LIGHT: vec3; var SPECULAR_LIGHT: vec3; var hedra_world: vec3; var hedra_n_geo: vec3; var hedra_n: vec3; var hedra_front: bool; @group(2) @binding(0) var hedra_p: HedraParams; fn srgb_to_linear(c_1: vec3) -> vec3 { let lo = (c_1 / vec3(12.92f)); let hi = pow(((c_1 + vec3(0.055f)) / vec3(1.055f)), vec3(2.4f)); return select(hi, lo, (c_1 <= vec3(0.04045f))); } fn element_color(flags: u32, fallback: vec4) -> vec4 { var local_4: bool; var local_5: bool; if ((flags & F_MESH) == 0u) { return fallback; } let overlays = G.params.y; let _e13 = O.params.w; let edit_object = (_e13 == 1u); if ((flags & F_SEAM) != 0u) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } let _e27 = local_4; if _e27 { let _e32 = srgb_to_linear(vec3(0.86f, 0f, 0f)); return vec4(_e32, 1f); } if ((flags & F_SHARP) != 0u) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } let _e46 = local_5; if _e46 { let _e51 = srgb_to_linear(vec3(0f, 0.85f, 0.9f)); return vec4(_e51, 1f); } if ((overlays & OV_SELECTION) != 0u) { if edit_object { if ((flags & F_SELECTED) != 0u) { let _e64 = G.select_color; return _e64; } let _e67 = G.wire_color; return _e67; } let _e71 = O.params.x; if (_e71 == 1u) { let _e76 = G.select_color; let _e79 = G.active_color; let _e83 = O.params.y; return select(_e76, _e79, (_e83 == 1u)); } } let _e89 = G.wire_color; return _e89; } fn to_view(p: vec3, pull: f32) -> vec4 { var v: vec4; let _e4 = G.view; let _e7 = O.model; v = ((_e4 * _e7) * vec4(p, 1f)); let _e15 = v.z; v.z = (_e15 * (1f - pull)); let _e19 = v; return _e19; } fn linear_to_srgb(c_2: vec3) -> vec3 { let lo_1 = (c_2 * 12.92f); let hi_1 = ((1.055f * pow(c_2, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (c_2 <= vec3(0.0031308f))); } fn target_color(c_3: vec4) -> vec4 { let k_12 = clamp(c_3, vec4(0f), vec4(1f)); let _e9 = G.fparams.w; if (_e9 > 0.5f) { let _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } fn object_light_count() -> u32 { let _e3 = O.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } fn object_light(k: u32) -> u32 { let _e4 = O.lights.y; let _e8 = O.lights.x; let word = select(_e4, _e8, (k < 4u)); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } fn light_count_color() -> vec3 { var colors: array, 10> = LIGHT_COUNT_COLORS; let _e5 = O.lights.w; let _e9 = colors[min(_e5, 9u)]; return _e9; } fn pool_sun_count() -> u32 { let _e3 = Lit.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } fn pool_sun(k_1: u32) -> u32 { let _e4 = Lit.dirs.y; let _e8 = Lit.dirs.x; let word_1 = select(_e4, _e8, (k_1 < 4u)); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } fn decal_count() -> u32 { let _e3 = O.decals.z; return min(_e3, MAX_OBJECT_DECALS); } fn decal_entry(k_2: u32) -> u32 { let _e4 = O.decals.y; let _e8 = O.decals.x; let word_2 = select(_e4, _e8, (k_2 < 4u)); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } fn decal_level(e: DecalEntryU, world: vec3) -> f32 { let _e5 = Decal.lod.x; let _e8 = G.camera_pos; let _e15 = Decal.lod.y; let pixel_1 = (_e5 * select(length((world - _e8.xyz)), 1f, (_e15 > 0.5f))); let _e24 = Decal.counts.y; let top = f32((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 0.000001f)), 1f)), 0f, top); } fn decal_texel(layer: u32, uv: vec2, level: f32, live: bool) -> vec4 { let _e11 = textureSampleLevel(t_decals, s_decals, uv, i32((layer - 1u)), select(level, 0f, live)); return _e11; } fn apply_decals(world_1: vec3, n_geo: vec3, surf: DecalSurface) -> DecalSurface { var out_s: DecalSurface; var k_3: u32 = 0u; var local_6: bool; var fade: f32; out_s = surf; let _e4 = decal_count(); loop { let _e7 = k_3; if (_e7 < _e4) { } else { break; } { let _e11 = k_3; let _e12 = decal_entry(_e11); let e_2 = Decal.entries[min(_e12, 63u)]; let uvw = (e_2.to_local * vec4(world_1, 1f)).xyz; if all((uvw >= vec3(0f, -1f, 0f))) { local_6 = all((uvw <= vec3(1f))); } else { local_6 = false; } let _e35 = local_6; if !(_e35) { continue; } fade = pow((1f - abs(uvw.y)), select(e_2.fades.y, e_2.fades.x, (uvw.y > 0f))); if (e_2.fades.z > 0f) { let _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1f, ((dot(n_geo, e_2.axis_y.xyz) * 0.5f) + 0.5f))); } let uv_3 = uvw.xz; let _e69 = decal_level(e_2, world_1); let live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { let _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); let _e84 = srgb_to_linear(_e82.xyz); let a_2 = (vec4(_e84, _e82.w) * e_2.modulate); let _e90 = fade; let alpha = (a_2.w * _e90); let _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if (e_2.layers.y > 0u) { let _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); let nx = ((_e110.x * 2f) - 1f); let ny = (1f - (_e110.y * 2f)); let nz = sqrt(max(0f, ((1f - (nx * nx)) - (ny * ny)))); let dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); let _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { let _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); let _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); let _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); let _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { let _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); let _e184 = out_s.emission; let _e186 = srgb_to_linear(_e182.xyz); let _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } continuing { let _e197 = k_3; k_3 = (_e197 + 1u); } } let _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045f, 1f); let _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0f, 1f); let _e211 = out_s; return _e211; } fn d_ggx(nh: f32, a2_: f32) -> f32 { let d_12 = (((nh * nh) * (a2_ - 1f)) + 1f); return (a2_ / ((PI * d_12) * d_12)); } fn v_smith(nl: f32, nv: f32, a2_1: f32) -> f32 { let gv = (nl * sqrt((((nv * nv) * (1f - a2_1)) + a2_1))); let g_l = (nv * sqrt((((nl * nl) * (1f - a2_1)) + a2_1))); return (0.5f / max((gv + g_l), 0.0001f)); } fn f_schlick(f0_: vec3, vh: f32) -> vec3 { return (f0_ + ((vec3(1f) - f0_) * pow((1f - vh), 5f))); } fn light_specular(n: vec3, v_1: vec3, l: vec3, radiance: vec3, diffuse: vec3, f0_1: vec3, a2_2: f32, specular: f32) -> vec3 { let nl_2 = dot(n, l); if (nl_2 <= 0f) { return vec3(0f); } let h = normalize((l + v_1)); let nh_1 = max(dot(n, h), 0f); let vh_1 = max(dot(v_1, h), 0f); let nv_3 = max(dot(n, v_1), 0.0001f); let _e24 = f_schlick(f0_1, vh_1); let _e25 = d_ggx(nh_1, a2_2); let _e26 = v_smith(nl_2, nv_3, a2_2); let spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927f)) + (spec * specular)) * radiance) * nl_2); } fn sky(dir: vec3) -> vec3 { let _e4 = Lit.up; let a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1f, 1f)); if (a_3 <= 1.5707964f) { let c_23 = (1f - (a_3 / 1.5707964f)); let k_13 = clamp((1f - pow(max((1f - c_23), 0.000001f), 6.6666665f)), 0f, 1f); let _e30 = Lit.sky_horizon; let _e34 = Lit.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } let c_24 = ((a_3 - 1.5707964f) / 1.5707964f); let k_14 = clamp((1f - pow(max((1f - c_24), 0.000001f), 50f)), 0f, 1f); let _e54 = Lit.ground_horizon; let _e58 = Lit.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } fn filmic_curve(x: vec3) -> vec3 { return ((((x * ((0.88f * x) + vec3((0.1f * 0.6f)))) + vec3((0.2f * 0.01f))) / ((x * ((0.88f * x) + vec3(0.6f))) + vec3((0.2f * 0.3f)))) - vec3((0.01f / 0.3f))); } fn aces_curve(c_4: vec3, white: f32) -> vec3 { let x_2 = vec3((1.8f * dot(vec3(0.59719f, 0.35458f, 0.04823f), c_4)), (1.8f * dot(vec3(0.076f, 0.90834f, 0.01566f), c_4)), (1.8f * dot(vec3(0.0284f, 0.13383f, 0.83777f), c_4))); let t_2 = (((x_2 * (x_2 + vec3(0.0245786f))) - vec3(0.000090537f)) / ((x_2 * ((0.983729f * x_2) + vec3(0.432951f))) + vec3(0.238081f))); let o_5 = vec3(dot(vec3(1.60475f, -0.53108f, -0.07367f), t_2), dot(vec3(-0.10208f, 1.10813f, -0.00605f), t_2), dot(vec3(-0.00327f, -0.07276f, 1.07602f), t_2)); let w_1 = (1.8f * white); let wt = (((w_1 * (w_1 + 0.0245786f)) - 0.000090537f) / ((w_1 * ((0.983729f * w_1) + 0.432951f)) + 0.238081f)); return (o_5 / vec3(wt)); } fn agx_curve(c_5: vec3) -> vec3 { var v_2: vec3; let inset = mat3x3(vec3(0.54490817f, 0.14044006f, 0.08882741f), vec3(0.37377945f, 0.7541096f, 0.17887713f), vec3(0.08138498f, 0.10543358f, 0.73225f)); let outset = mat3x3(vec3(1.964551f, -0.29932243f, -0.16436833f), vec3(-0.85585845f, 1.3264511f, -0.23822464f), vec3(-0.10886711f, -0.02708402f, 1.4026654f)); v_2 = (inset * max(c_5, vec3(0.0000000002f))); let _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931f), vec3(4.0260687f)) - vec3(-12.473931f)) / vec3((4.0260687f - -12.473931f))); let _e44 = v_2; let _e45 = v_2; let x2_ = (_e44 * _e45); let x4_ = (x2_ * x2_); let _e48 = v_2; let _e56 = v_2; let _e64 = v_2; let p_7 = ((((((0.021f * _e48) + (4.0111f * x2_)) - ((25.682f * x2_) * _e56)) + (70.359f * x4_)) - ((74.778f * x4_) * _e64)) + ((27.069f * x4_) * x2_)); return (outset * pow(max(p_7, vec3(0.0000000001f)), vec3(2.4f))); } fn tonemap(c_in: vec3) -> vec3 { let _e4 = Lit.tone.x; let c_25 = max((c_in * _e4), vec3(0f)); let white_1 = Lit.tone.y; let mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return (((white_1 * c_25) + c_25) / ((c_25 * white_1) + vec3(white_1))); } if (mode == TONEMAP_FILMIC) { let _e27 = filmic_curve(c_25); let _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if (mode == TONEMAP_ACES) { let _e33 = aces_curve(c_25, white_1); return _e33; } if (mode == TONEMAP_AGX) { let _e36 = agx_curve(c_25); return _e36; } return c_25; } fn emerge_hash(p_1: vec3) -> f32 { var q: vec3; q = fract((p_1 * 0.1031f)); let _e5 = q; let _e6 = q; let _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32f))))); let _e16 = q.x; let _e18 = q.y; let _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } fn emerge_noise(p_2: vec3) -> f32 { let i_13 = floor(p_2); let f = fract(p_2); let u_1 = ((f * f) * (vec3(3f) - (2f * f))); let _e10 = emerge_hash(i_13); let _e16 = emerge_hash((i_13 + vec3(1f, 0f, 0f))); let _e24 = emerge_hash((i_13 + vec3(0f, 1f, 0f))); let _e30 = emerge_hash((i_13 + vec3(1f, 1f, 0f))); let a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); let _e40 = emerge_hash((i_13 + vec3(0f, 0f, 1f))); let _e46 = emerge_hash((i_13 + vec3(1f, 0f, 1f))); let _e54 = emerge_hash((i_13 + vec3(0f, 1f, 1f))); let _e60 = emerge_hash((i_13 + vec3(1f, 1f, 1f))); let b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } fn emerge_reveal(world_2: vec3, pixel: vec2) -> f32 { var n_1: f32; let _e6 = O.extra.x; if select(true, ((_e6 & OBJ_EMERGE) == 0u), SPEC_EMERGE) { return 1f; } let e_3 = O.normal[0][3]; let w_2 = (world_2 * EMERGE_SCALE); let _e21 = emerge_noise(w_2); let _e29 = emerge_noise(((w_2 * 2.7f) + vec3(17.1f))); n_1 = smoothstep(0.2f, 0.8f, ((_e21 * 0.65f) + (_e29 * 0.35f))); if (pixel.x >= 0f) { let ign = fract((52.982918f * fract(dot(floor(pixel), vec2(0.06711056f, 0.00583715f))))); let _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5f) * EMERGE_DITHER)), 0f, 1f); } let _e60 = n_1; return (((e_3 * 1.8f) - _e60) / EMERGE_EDGE); } fn emerge_tint(c_6: vec3, r: f32) -> vec3 { var local_7: bool; let _e6 = O.extra.x; if !(((_e6 & OBJ_EMERGE) == 0u)) { local_7 = (r >= 1f); } else { local_7 = true; } let _e17 = local_7; if select(true, _e17, SPEC_EMERGE) { return c_6; } let _e23 = O.extra.w; let _e26 = srgb_to_linear(unpack4x8unorm(_e23).xyz); let _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0f, 1f, r)); } fn item_fade(c_7: vec3) -> vec3 { let _e5 = O.extra.x; if select(true, ((_e5 & OBJ_FADE) == 0u), SPEC_FADE) { return c_7; } let f_1 = O.normal[3]; let _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } fn sky_dir(d: vec3) -> vec3 { let _e3 = Sky.to_sky; return normalize((_e3 * vec4(d, 0f)).xyz); } fn sky_curve(c_8: f32, curve: f32) -> f32 { return clamp((1f - pow(max((1f - c_8), 0.000001f), (1f / curve))), 0f, 1f); } fn procedural_sky(d_1: vec3) -> vec3 { var sky_1: vec3; var i: u32 = 0u; let v_6 = acos(clamp(d_1.y, -1f, 1f)); let _e8 = Sky.sky_horizon; let _e12 = Sky.sky_top; let _e21 = Sky.sky_top.w; let _e22 = sky_curve((1f - (v_6 / 1.5707964f)), _e21); let _e27 = Sky.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); let _e33 = Sky.flags.z; let suns = min(_e33, SKY_SUNS); loop { let _e38 = i; if (_e38 < suns) { } else { break; } { let _e42 = i; let sun = Sky.suns[_e42]; let size = sun.direction.w; let a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1f, 1f)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { let _e60 = Sky.sun.x; if (a_5 < _e60) { let _e66 = Sky.sun.x; let c2_ = ((a_5 - size) / (_e66 - size)); let _e71 = sky_1; let _e75 = Sky.sun.y; let _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } continuing { let _e79 = i; i = (_e79 + 1u); } } let _e83 = Sky.ground_horizon; let _e87 = Sky.ground_bottom; let _e96 = Sky.ground_bottom.w; let _e97 = sky_curve(((v_6 - 1.5707964f) / 1.5707964f), _e96); let _e102 = Sky.ground_horizon.w; let ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); let _e104 = sky_1; let _e112 = Sky.sun.z; return (select(ground, _e104, (d_1.y >= 0f)) * _e112); } fn panorama(d_2: vec3) -> vec3 { let uv_4 = vec2(fract((atan2(d_2.x, -(d_2.z)) / 6.2831855f)), (acos(clamp(d_2.y, -1f, 1f)) / PI)); let _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { let _e27 = textureSampleLevel(t_panorama, s_panorama, uv_4, 0f); let _e32 = Sky.sun.z; return (_e27.xyz * _e32); } let _e36 = textureDimensions(t_panorama, 0i); let size_1 = vec2(_e36); let x_3 = (((i32(floor((uv_4.x * f32(size_1.x)))) % size_1.x) + size_1.x) % size_1.x); let y = clamp(i32(floor((uv_4.y * f32(size_1.y)))), 0i, (size_1.y - 1i)); let _e64 = textureLoad(t_panorama, vec2(x_3, y), 0i); let _e69 = Sky.sun.z; return (_e64.xyz * _e69); } fn sh_irradiance(n_2: vec3) -> vec3 { var c_9: vec3; let _e4 = Sky.sh[0]; c_9 = (_e4.xyz * 0.282095f); let _e9 = c_9; let _e13 = Sky.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603f * n_2.y))); let _e20 = c_9; let _e24 = Sky.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603f * n_2.z))); let _e31 = c_9; let _e35 = Sky.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603f * n_2.x))); let _e42 = c_9; let _e46 = Sky.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548f * n_2.x) * n_2.y))); let _e55 = c_9; let _e59 = Sky.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548f * n_2.y) * n_2.z))); let _e68 = c_9; let _e72 = Sky.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392f * (((3f * n_2.z) * n_2.z) - 1f)))); let _e85 = c_9; let _e89 = Sky.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548f * n_2.x) * n_2.z))); let _e98 = c_9; let _e102 = Sky.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274f * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); let _e115 = c_9; return max(_e115, vec3(0f)); } fn radiance_1(d_3: vec3, roughness: f32) -> vec3 { let _e5 = Sky.flags.y; let top_1 = f32((max(_e5, 1u) - 1u)); let _e14 = textureSampleLevel(t_radiance, s_radiance, d_3, (roughness * top_1)); return _e14.xyz; } fn env_brdf_approx(roughness_1: f32, nv_1: f32) -> vec2 { let r_6 = ((roughness_1 * vec4(-1f, -0.0275f, -0.572f, 0.022f)) + vec4(1f, 0.0425f, 1.04f, -0.04f)); let a004_ = ((min((r_6.x * r_6.x), exp2((-9.28f * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04f, 1.04f) * a004_) + r_6.zw); } fn pow8_(x_1: f32) -> f32 { let x2_1 = (max(x_1, 0f) * max(x_1, 0f)); let x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } fn fog_sun_scatter(fc: vec3, dir_1: vec3) -> vec3 { var c_10: vec3; var k_4: u32 = 0u; c_10 = fc; let _e6 = Sky.fog_color.w; if (_e6 > 0.001f) { let _e9 = pool_sun_count(); loop { let _e12 = k_4; if (_e12 < _e9) { } else { break; } { let _e14 = k_4; let _e15 = pool_sun(_e14); let _e21 = Lit.lights[_e15].info.x; if (_e21 == LIGHT_DIRECTIONAL) { let _e24 = c_10; let _e29 = Lit.lights[_e15].color; let _e38 = Lit.lights[_e15].direction; let _e42 = pow8_(dot(dir_1, -(_e38.xyz))); let _e47 = Sky.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927f)) * _e42) * _e47)); } } continuing { let _e51 = k_4; k_4 = (_e51 + 1u); } } } let _e53 = c_10; return _e53; } fn sky_fog(c_11: vec3, dir_2: vec3) -> vec3 { let _e4 = Sky.fog_color; let _e9 = Sky.fog_depth.w; let _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); let _e15 = Sky.fog.y; return mix(c_11, _e11, _e15); } fn surface_fog(c_12: vec3, world_3: vec3, dir_3: vec3) -> vec3 { var dist: f32; var amount: f32; var fc_1: vec3; var local_8: bool; let _e5 = G.view; let depth = -((_e5 * vec4(world_3, 1f)).z); let _e13 = G.camera_pos; dist = distance(world_3, _e13.xyz); let _e20 = Sky.fog_origin.w; if (_e20 > 0.5f) { let _e26 = Sky.fog_origin.x; dist = max((depth - _e26), 0f); } let _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { let _e42 = Sky.fog_depth.x; let _e46 = Sky.fog_depth.y; let _e47 = dist; let z = smoothstep(_e42, _e46, _e47); let _e54 = Sky.fog_depth.z; let _e63 = Sky.fog.x; amount = (select(0f, pow(max(z, 0.000001f), _e54), (z > 0f)) * _e63); } else { let _e65 = dist; let _e70 = Sky.fog.x; amount = (1f - exp(min(0f, (-(_e65) * _e70)))); } let _e80 = Sky.fog.w; if (abs(_e80) >= 0.0001f) { let _e86 = Lit.up; let y_1 = dot(world_3, _e86.xyz); let _e89 = amount; let _e93 = Sky.fog.z; let _e98 = Sky.fog.w; amount = max(_e89, (1f - exp(min(0f, ((y_1 - _e93) * _e98))))); } let _e106 = amount; amount = clamp(_e106, 0f, 1f); let _e112 = Sky.fog_color; fc_1 = _e112.xyz; let _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { let _e129 = Sky.fog_depth.w; local_8 = (_e129 > 0f); } else { local_8 = false; } let _e133 = local_8; if select(false, _e133, SPEC_AMBIENT_SKY) { let _e139 = Sky.fog_origin.y; let _e144 = Sky.fog_origin.z; let _e148 = Sky.fog_origin.y; let t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 0.000001f)), 0f, 1f); let _e159 = Sky.flags.y; let top_2 = f32((max(_e159, 2u) - 1u)); let rough = mix((1f / top_2), 1f, (1f - t_3)); let _e171 = fc_1; let _e172 = sky_dir(dir_3); let _e173 = radiance_1(_e172, rough); let _e177 = Sky.sun.w; let _e182 = Sky.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } let _e184 = fc_1; let _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; let _e186 = fc_1; let _e187 = amount; return mix(c_12, _e186, _e187); } fn fog_chord(k_5: u32, o: vec3, d_4: vec3, t_end_ray: f32) -> vec2 { var r_1: vec2; var a: f32 = 0f; var b: f32 = 0f; var c_13: f32 = -1f; let _e9 = Fog.entries[k_5].albedo.w; let shape = u32(_e9); let _e16 = Fog.entries[k_5].emission.w; let t_end_1 = min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return vec2(0f, t_end_1); } let _e26 = Fog.entries[k_5].size; let h_1 = (_e26.xyz * 0.5f); let dd = select(d_4, vec3(0.000000000001f), (abs(d_4) < vec3(0.000000000001f))); let sa = ((-(h_1) - o) / dd); let sb = ((h_1 - o) / dd); let s_in = min(sa, sb); let s_out = max(sa, sb); r_1 = vec2(max(0f, s_in.y), min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { let _e60 = r_1.x; let _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1f); } else { let rad = min(h_1.x, h_1.z); let k_15 = select(0f, (rad / (2f * h_1.y)), (shape == FOG_SHAPE_CONE)); let w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - select((rad * rad), (((k_15 * k_15) * w_3) * w_3), (shape == FOG_SHAPE_CONE))); } } let _e139 = b; let _e140 = b; let _e142 = a; let _e143 = c_13; let disc = ((_e139 * _e140) - (_e142 * _e143)); let _e146 = a; if (abs(_e146) < 0.000000000001f) { let _e150 = b; if (abs(_e150) < 0.000000000001f) { let _e156 = r_1.y; let _e157 = c_13; r_1.y = select(_e156, -1f, (_e157 > 0f)); } else { let _e162 = b; if (_e162 > 0f) { let _e167 = r_1.y; let _e168 = c_13; let _e170 = b; r_1.y = min(_e167, (-(_e168) / (2f * _e170))); } else { let _e177 = r_1.x; let _e178 = c_13; let _e180 = b; r_1.x = max(_e177, (-(_e178) / (2f * _e180))); } } } else { if (disc < 0f) { let _e189 = r_1.y; let _e190 = a; r_1.y = select(_e189, -1f, (_e190 > 0f)); } else { let _e195 = b; let _e199 = a; let _e201 = b; let _e205 = a; let lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); let _e208 = b; let _e212 = a; let _e214 = b; let _e218 = a; let hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); let _e221 = a; if (_e221 > 0f) { let _e225 = r_1.x; let _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { let _e232 = r_1.x; let _e234 = r_1.y; if (_e232 < min(_e234, lo_2)) { let _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { let _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } let _e245 = r_1; return _e245; } fn fog_density(k_6: u32, p_3: vec3, lp: vec3) -> f32 { var rho: f32; var sdf: f32 = 0f; let e_4 = Fog.entries[k_6]; let _e14 = Fog.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1f)); if (e_4.material.z > 0f) { let shape_1 = u32(e_4.albedo.w); let h_2 = (e_4.size.xyz * 0.5f); let rad_1 = min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { let k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1f)) / max(length((lp / (h_2 * h_2))), 0.000000000001f)); } else { if (shape_1 == FOG_SHAPE_BOX) { let q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0f))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0f)); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { let q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0f) + length(max(q_4, vec2(0f)))); } else { let n_11 = normalize(vec2((1f / max(0.001f, (rad_1 * 0.5f))), (1f / max(0.001f, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } let _e116 = rho; let _e117 = sdf; rho = (_e116 * pow(clamp(((-2f * _e117) / e_4.size.w), 0f, 1f), e_4.material.z)); } let _e130 = rho; return _e130; } fn fog_falloff_depth(k_7: u32, a_1: f32, b_1: f32, t0_: f32, t1_: f32) -> f32 { let m_4 = Fog.entries[k_7].material; let hf = m_4.y; if ((hf * b_1) == 0f) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1f)); } let s_2 = clamp((-(a_1) / b_1), t0_, t1_); let lo_3 = select(t0_, s_2, (b_1 > 0f)); let hi_3 = select(s_2, t1_, (b_1 > 0f)); let x_4 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472f); let g = select(((1f - exp(-(x_4))) / x_4), (1f - (x_4 * (0.5f - (x_4 * (0.16666667f - (x_4 / 24f)))))), (x_4 < 0.01f)); let top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * select(hi_3, lo_3, (b_1 > 0f)))), 0f))), 1f); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } fn omni_attenuation(d_5: f32, inv_range: f32, decay: f32) -> f32 { var nd: f32; nd = (d_5 * inv_range); let _e5 = nd; let _e6 = nd; nd = (_e5 * _e6); let _e8 = nd; let _e9 = nd; nd = (_e8 * _e9); let _e11 = nd; nd = max((1f - _e11), 0f); let _e16 = nd; let _e17 = nd; nd = (_e16 * _e17); let _e19 = nd; return (_e19 * pow(max(d_5, 0.0001f), -(decay))); } fn fog_light(n_3: u32, p_4: vec3, dir_4: vec3) -> vec3 { var sum: vec3; var k_8: u32 = 0u; var l_1: vec3; var atten: f32; let _e5 = Fog.ambient; let _e10 = Fog.params.y; sum = (_e5.xyz * _e10); let g_1 = Fog.params.x; let lights = Fog.entries[n_3].lights; loop { let _e24 = k_8; if (_e24 < min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { let _e31 = k_8; let _e35 = k_8; let i_14 = min(((select(lights.y, lights.x, (_e31 < 4u)) >> ((_e35 & 3u) * 8u)) & 255u), 63u); let li = Lit.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1f; if (li.info.x != LIGHT_DIRECTIONAL) { let rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 0.000001f))); let _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { let _e77 = l_1; let rim = max(0.0001f, ((1f - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1f - li.spot.x), 0.000001f))); let _e96 = atten; atten = (_e96 * (1f - pow(rim, li.spot.y))); } } let _e108 = l_1; let q_5 = ((1f + (g_1 * g_1)) - ((2f * g_1) * dot(dir_4, _e108))); let _e112 = sum; let _e115 = atten; let _e133 = Fog.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1f - (g_1 * g_1))) / ((12.566371f * q_5) * sqrt(q_5))) * _e133))); } continuing { let _e138 = k_8; k_8 = (_e138 + 1u); } } let _e140 = sum; return _e140; } fn fog_entry(k_9: u32, o_1: vec3, d_6: vec3, ch: vec2) -> vec4 { var split: f32; var local_9: bool; var local_10: bool; var q_1: vec3 = vec3(0f); var tau: f32 = 0f; var i_1: u32 = 0u; var local_11: bool; var local_12: bool; let e_5 = Fog.entries[k_9]; let lo_4 = (e_5.to_local * vec4(o_1, 1f)).xyz; let ld = (e_5.to_local * vec4(d_6, 0f)).xyz; let _e20 = Fog.up; let a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); let _e28 = Fog.up; let b_3 = dot(d_6, _e28.xyz); let edge = (e_5.material.z > 0f); split = ((ch.x + ch.y) * 0.5f); if (e_5.material.y > 0f) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } let _e52 = local_9; if _e52 { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } let _e60 = local_10; if _e60 { split = (-(a_6) / b_3); } loop { let _e70 = i_1; if (_e70 < select(4u, 12u, edge)) { } else { break; } { let _e75 = i_1; let j = (_e75 & 3u); if !((j == 0u)) { local_11 = (j == 3u); } else { local_11 = true; } let _e88 = local_11; let x_5 = select(FOG_GL_X1_, FOG_GL_X0_, _e88); if !((j == 0u)) { local_12 = (j == 3u); } else { local_12 = true; } let _e100 = local_12; let w_4 = select(FOG_GL_W1_, FOG_GL_W0_, _e100); let _e102 = split; let _e106 = split; let _e108 = i_1; let _e112 = i_1; let seg = select(select(vec2(_e102, ch.y), vec2(ch.x, _e106), (_e108 < 8u)), ch, (_e112 < 4u)); let half_len = ((seg.y - seg.x) * 0.5f); let t_4 = (((seg.x + seg.y) * 0.5f) + (half_len * select(x_5, -(x_5), (j < 2u)))); let p_8 = (o_1 + (d_6 * t_4)); let _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_4))); let _e137 = i_1; if (_e137 < 4u) { let _e140 = q_1; let _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0f, 1f)))); } else { let _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } continuing { let _e160 = i_1; i_1 = (_e160 + 1u); } } if !(edge) { let _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } let _e166 = q_1; let _e167 = tau; return vec4(_e166, _e167); } fn fog_integrate(c_14: vec3, o_2: vec3, d_7: vec3, t_end: f32, list: u32) -> vec3 { var at: array; var chords: array, 4>; var m: u32 = 0u; var i_2: u32 = 0u; var local_13: bool; var parts: array, 4>; var i_3: u32 = 0u; var n_4: u32 = 0u; var avail: f32; var i_4: u32; var i_5: u32; var q_2: vec3 = vec3(0f); var tau_1: f32 = 0f; var i_6: u32 = 0u; let all_ = (list >= FOG_LIST_ALL); loop { let _e13 = i_2; let _e18 = Fog.counts.x; if (_e13 < select(4u, min(_e18, MAX_FRAME_FOG_VOLUMES), all_)) { } else { break; } { let _e23 = i_2; let byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if !(all_) { local_13 = (byte == 0u); } else { local_13 = false; } let _e37 = local_13; if _e37 { break; } let _e42 = i_2; let k_16 = select((min(byte, MAX_FRAME_FOG_VOLUMES) - 1u), _e42, all_); let to_local = Fog.entries[k_16].to_local; let _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1f)).xyz, (to_local * vec4(d_7, 0f)).xyz, t_end); if (_e57.y > _e57.x) { let _e61 = m; at[_e61] = k_16; let _e63 = m; chords[_e63] = _e57; let _e66 = m; m = (_e66 + 1u); let _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } continuing { let _e72 = i_2; i_2 = (_e72 + 1u); } } loop { let _e77 = i_3; let _e78 = m; if (_e77 < _e78) { } else { break; } { let _e80 = i_3; let _e82 = i_3; let _e84 = at[_e82]; let _e85 = i_3; let _e87 = chords[_e85]; let _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } continuing { let _e90 = i_3; i_3 = (_e90 + 1u); } } loop { let _e94 = n_4; let _e95 = m; if (_e94 < _e95) { } else { break; } { let _e97 = n_4; let _e100 = parts[_e97].w; if (_e100 < 0f) { avail = 0f; i_4 = 0u; loop { let _e107 = i_4; let _e108 = m; if (_e107 < _e108) { } else { break; } { let _e110 = i_4; let _e113 = chords[_e110].y; let _e114 = n_4; let _e117 = chords[_e114].y; let _e119 = i_4; let _e122 = chords[_e119].x; let _e123 = n_4; let _e126 = chords[_e123].x; let _e131 = i_4; let _e134 = chords[_e131].y; let _e135 = i_4; let _e138 = chords[_e135].x; let share = (max((min(_e113, _e117) - max(_e122, _e126)), 0f) / max((_e134 - _e138), 0.000001f)); let _e143 = avail; let _e144 = i_4; let _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0f) * share)); } continuing { let _e153 = i_4; i_4 = (_e153 + 1u); } } let _e155 = n_4; let _e158 = parts[_e155].w; let _e160 = avail; let f_2 = min((-(_e158) / max(_e160, 0.000000000001f)), 1f); i_5 = 0u; loop { let _e168 = i_5; let _e169 = m; if (_e168 < _e169) { } else { break; } { let _e171 = i_5; let _e174 = parts[_e171].w; if (_e174 > 0f) { let _e177 = i_5; let _e180 = chords[_e177].y; let _e181 = n_4; let _e184 = chords[_e181].y; let _e186 = i_5; let _e189 = chords[_e186].x; let _e190 = n_4; let _e193 = chords[_e190].x; let _e198 = i_5; let _e201 = chords[_e198].y; let _e202 = i_5; let _e205 = chords[_e202].x; let share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0f) / max((_e201 - _e205), 0.000001f)); let _e210 = i_5; let _e212 = parts[_e210]; parts[_e210] = (_e212 * (1f - (share_1 * f_2))); } } continuing { let _e218 = i_5; i_5 = (_e218 + 1u); } } } } continuing { let _e221 = n_4; n_4 = (_e221 + 1u); } } loop { let _e230 = i_6; let _e231 = m; if (_e230 < _e231) { } else { break; } { let _e233 = i_6; let _e236 = parts[_e233].w; if (_e236 > 0f) { let _e239 = q_2; let _e240 = i_6; let _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); let _e245 = tau_1; let _e246 = i_6; let _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } continuing { let _e252 = i_6; i_6 = (_e252 + 1u); } } let _e254 = tau_1; let t_5 = exp(-(_e254)); let _e258 = q_2; let _e261 = tau_1; return ((c_14 * t_5) + (_e258 * ((1f - t_5) / max(_e261, 0.00001f)))); } fn fog_volumes(c_15: vec3, world_4: vec3, list_1: u32) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_6 = select(_e22.xyz, (world_4 - (back * (_e26 * vec4(world_4, 1f)).z)), (_e36 > 0.5f)); let len = length((world_4 - o_6)); let _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 0.000001f))), len, list_1); return select(c_15, _e47, (len > 0f)); } fn sky_fog_volumes(c_16: vec3, near_point: vec3, dir_5: vec3) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back_1 = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_7 = select(_e22.xyz, (near_point - (back_1 * (_e26 * vec4(near_point, 1f)).z)), (_e36 > 0.5f)); let _e44 = Fog.counts.y; let _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); let _e49 = Fog.params.z; return mix(c_16, _e45, _e49); } fn shadow_factor(i_7: u32, world_5: vec3, n_geo_1: vec3, l_2: vec3) -> f32 { var part: u32 = 0u; var c_17: u32 = 0u; var local_14: bool; var local_15: bool; var local_16: bool; var vis: f32 = 0f; var dy: i32 = -1i; var dx: i32; let kind = Lit.lights[i_7].info.x; let _e14 = Lit.lights[i_7].position; let light_pos = _e14.xyz; let _e21 = Lit.lights[i_7].info.w; let slot = min(_e21, 15u); let params = Shadow.lights[slot].params; let first = Shadow.lights[slot].info.x; let _e40 = Shadow.lights[slot].info.y; let count = max(_e40, 1u); let _e45 = G.view; let view_depth = -((_e45 * vec4(world_5, 1f)).z); if (kind == LIGHT_DIRECTIONAL) { let _e60 = Shadow.lights[slot].fade.y; if (view_depth > _e60) { return 1f; } part = (count - 1u); loop { let _e67 = c_17; if (_e67 < count) { } else { break; } { let _e73 = c_17; let _e75 = Shadow.lights[slot].splits[_e73]; if (view_depth <= _e75) { let _e77 = c_17; part = _e77; break; } } continuing { let _e79 = c_17; c_17 = (_e79 + 1u); } } } let _e83 = part; let texel = Shadow.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; let t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); let p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1f)) * t_6))) + (l_2 * (params.x * t_6))); if (kind == LIGHT_OMNI) { let d_13 = (p_9 - light_pos); let a_7 = abs(d_13); if (a_7.x >= a_7.y) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } let _e123 = local_14; if _e123 { part = select(1u, 0u, (d_13.x >= 0f)); } else { if (a_7.y >= a_7.z) { part = select(3u, 2u, (d_13.y >= 0f)); } else { part = select(5u, 4u, (d_13.z >= 0f)); } } } let _e145 = part; let tile = min((first + min(_e145, (count - 1u))), 15u); let _e156 = Shadow.tiles[tile].view_proj; let clip_1 = (_e156 * vec4(p_9, 1f)); if (clip_1.w <= 0f) { return 1f; } let ndc = (clip_1.xyz / vec3(clip_1.w)); if !((abs(ndc.x) > 1f)) { local_15 = (abs(ndc.y) > 1f); } else { local_15 = true; } let _e180 = local_15; if !(_e180) { local_16 = (ndc.z > 1f); } else { local_16 = true; } let _e188 = local_16; if _e188 { return 1f; } let rect = Shadow.tiles[tile].rect; let uv_5 = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let auv = (rect.xy + (uv_5 * rect.zw)); let texel_uv = Shadow.atlas.x; let lo_5 = (rect.xy + vec2((0.5f * texel_uv))); let hi_4 = ((rect.xy + rect.zw) - vec2((0.5f * texel_uv))); let r_7 = params.z; if (r_7 <= 0f) { let _e235 = textureSampleCompareLevel(t_shadow, s_shadow, clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { let spread = (r_7 * texel_uv); loop { let _e239 = dy; if (_e239 <= 1i) { } else { break; } { dx = -1i; loop { let _e244 = dx; if (_e244 <= 1i) { } else { break; } { let _e247 = dx; let _e249 = dy; let tap = clamp((auv + (vec2(f32(_e247), f32(_e249)) * spread)), lo_5, hi_4); let _e255 = vis; let _e259 = textureSampleCompareLevel(t_shadow, s_shadow, tap, ndc.z); vis = (_e255 + _e259); } continuing { let _e262 = dx; dx = (_e262 + 1i); } } } continuing { let _e265 = dy; dy = (_e265 + 1i); } } let _e267 = vis; vis = (_e267 / 9f); } if (kind == LIGHT_DIRECTIONAL) { let fade_1 = Shadow.lights[slot].fade; let _e277 = vis; vis = mix(_e277, 1f, smoothstep(fade_1.x, fade_1.y, view_depth)); } let _e283 = vis; return mix(1f, _e283, params.w); } fn probe_light(n_5: vec3) -> vec3 { let _e5 = O.gi[0].x; let _e9 = O.gi[0]; let _e17 = O.gi[1].x; let _e21 = O.gi[1]; let _e29 = O.gi[2].x; let _e33 = O.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0f)); } fn gi_diffuse(n_6: vec3, baked: bool, baked_light: vec3) -> vec4 { if baked { return vec4(baked_light, 1f); } let _e9 = O.extra.x; if select(false, ((_e9 & OBJ_PROBE_GI) != 0u), SPEC_PROBE_GI) { let _e16 = probe_light(n_6); return vec4(_e16, 1f); } return vec4(0f); } fn probe_face_uv(d_8: vec3) -> vec3 { var face: f32; var ma: f32; var sc: f32; var tc: f32; var local_17: bool; let a_8 = abs(d_8); if (a_8.x >= a_8.y) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } let _e15 = local_17; if _e15 { ma = a_8.x; if (d_8.x >= 0f) { face = 0f; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1f; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0f) { face = 2f; sc = d_8.x; tc = d_8.z; } else { face = 3f; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0f) { face = 4f; sc = d_8.x; tc = -(d_8.y); } else { face = 5f; sc = -(d_8.x); tc = -(d_8.y); } } } let _e56 = face; let _e57 = sc; let _e58 = ma; let _e64 = tc; let _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1f) * 0.5f), (((_e64 / _e65) + 1f) * 0.5f)); } fn probe_texel(row: u32, fuv: vec3, level_1: u32) -> vec3 { let _e6 = Probe.counts.z; let n_12 = f32(max((_e6 >> level_1), 1u)); let lo_6 = (0.5f / n_12); let u_2 = clamp(fuv.y, lo_6, (1f - lo_6)); let v_7 = clamp(fuv.z, lo_6, (1f - lo_6)); let uv_6 = vec2(((fuv.x + u_2) / 6f), ((f32(row) + v_7) / 8f)); let _e33 = textureSampleLevel(t_probes, s_probes, uv_6, f32(level_1)); return _e33.xyz; } fn probe_sample(row_1: u32, d_9: vec3, lod: f32) -> vec3 { var local_18: bool; let _e6 = Probe.counts.y; let levels = max(_e6, 1u); let l_5 = clamp(lod, 0f, f32((levels - 1u))); let m0_ = u32(l_5); let t_7 = (l_5 - f32(m0_)); let _e17 = probe_face_uv(d_9); let _e18 = probe_texel(row_1, _e17, m0_); if !((t_7 <= 0f)) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } let _e28 = local_18; if _e28 { return _e18; } let _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1f - t_7)) + (_e34 * t_7)); } fn probe_weight(p_5: ProbeEntryU, world_6: vec3) -> f32 { let l_6 = (p_5.to_local * vec4(world_6, 1f)).xyz; let e_6 = p_5.extents.xyz; let d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if (d_14 < 0f) { return 0f; } if !((p_5.extents.w > 0f)) { return 1f; } return min((d_14 / p_5.extents.w), 1f); } fn probe_exit(o_3: f32, d_10: f32, e_1: f32) -> f32 { if (d_10 > 0f) { return ((e_1 - o_3) / d_10); } if (d_10 < 0f) { return ((-(e_1) - o_3) / d_10); } return 300000000000000000000000000000000000000f; } fn probe_lookup(p_6: ProbeEntryU, world_7: vec3, dir_6: vec3) -> vec3 { let d_15 = (p_6.to_local * vec4(dir_6, 0f)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } let o_8 = (p_6.to_local * vec4(world_7, 1f)).xyz; let e_7 = p_6.extents.xyz; let _e24 = probe_exit(o_8.x, d_15.x, e_7.x); let _e28 = probe_exit(o_8.y, d_15.y, e_7.y); let _e32 = probe_exit(o_8.z, d_15.z, e_7.z); let t_8 = max(min(_e24, min(_e28, _e32)), 0f); return ((o_8 + (d_15 * t_8)) - p_6.offset.xyz); } fn probe_reflection(world_8: vec3, r_2: vec3, roughness_2: f32, probes: u32) -> vec4 { var acc: vec3 = vec3(0f); var w_sum: f32 = 0f; var i_8: u32 = 0u; let _e12 = Probe.counts.x; let count_1 = min(_e12, MAX_PROBES); let _e18 = Probe.counts.y; let lod_1 = (roughness_2 * f32((max(_e18, 1u) - 1u))); loop { let _e27 = i_8; if (_e27 < count_1) { } else { break; } { let _e31 = i_8; let p_10 = Probe.probes[_e31]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } let _e41 = probe_weight(p_10, world_8); if (_e41 <= 0f) { continue; } let _e44 = acc; let _e47 = probe_lookup(p_10, world_8, r_2); let _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); let _e54 = w_sum; w_sum = (_e54 + _e41); } continuing { let _e57 = i_8; i_8 = (_e57 + 1u); } } let _e59 = w_sum; if (_e59 > 1f) { let _e62 = acc; let _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1f; } let _e67 = acc; let _e68 = w_sum; return vec4(_e67, _e68); } fn probe_ambient(world_9: vec3, n_7: vec3, probes_1: u32) -> vec4 { var acc_1: vec3 = vec3(0f); var w_sum_1: f32 = 0f; var i_9: u32 = 0u; var local_19: bool; var c_18: vec3; let _e11 = Probe.counts.x; let count_2 = min(_e11, MAX_PROBES); let _e17 = Probe.counts.y; let last = (max(_e17, 1u) - 1u); loop { let _e24 = i_9; if (_e24 < count_2) { } else { break; } { let _e28 = i_9; let p_11 = Probe.probes[_e28]; if !((((probes_1 >> p_11.info.w) & 1u) == 0u)) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } let _e46 = local_19; if _e46 { continue; } let _e47 = probe_weight(p_11, world_9); if (_e47 <= 0f) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { let _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0f)).xyz); let _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } let _e66 = acc_1; let _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); let _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } continuing { let _e73 = i_9; i_9 = (_e73 + 1u); } } let _e75 = w_sum_1; if (_e75 > 1f) { let _e78 = acc_1; let _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1f; } let _e83 = acc_1; let _e84 = w_sum_1; return vec4(_e83, _e84); } fn skin_row(k_10: u32, r_3: u32) -> vec4 { let _e10 = Skin.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } fn skin_rows(s_1: SkinIn) -> SkinRows { var m_1: SkinRows; let j_1 = s_1.joints; let w_5 = s_1.weights; let _e8 = skin_row(j_1.x, 0u); let _e13 = skin_row(j_1.y, 0u); let _e19 = skin_row(j_1.z, 0u); let _e25 = skin_row(j_1.w, 0u); m_1.r0_ = ((((w_5.x * _e8) + (w_5.y * _e13)) + (w_5.z * _e19)) + (w_5.w * _e25)); let _e32 = skin_row(j_1.x, 1u); let _e37 = skin_row(j_1.y, 1u); let _e43 = skin_row(j_1.z, 1u); let _e49 = skin_row(j_1.w, 1u); m_1.r1_ = ((((w_5.x * _e32) + (w_5.y * _e37)) + (w_5.z * _e43)) + (w_5.w * _e49)); let _e56 = skin_row(j_1.x, 2u); let _e61 = skin_row(j_1.y, 2u); let _e67 = skin_row(j_1.z, 2u); let _e73 = skin_row(j_1.w, 2u); m_1.r2_ = ((((w_5.x * _e56) + (w_5.y * _e61)) + (w_5.z * _e67)) + (w_5.w * _e73)); let _e76 = m_1; return _e76; } fn hedra_store_varyings(o_4: ptr) { return; } fn hedra_load_varyings(i_10: CustomOut) { return; } fn light() { return; } fn vertex() { var view_pos: vec4; var local_20: bool; let _e2 = hedra_p.lift; let shrink = (1f - (0.5f * _e2)); let _e8 = MODELVIEW_MATRIX; let _e10 = VERTEX; view_pos = (_e8 * vec4((_e10 * shrink), 1f)); let _e18 = G.proj; let _e19 = view_pos; let clip_2 = (_e18 * _e19); let _e24 = hedra_p.snap_resolution.x; if (_e24 > 0f) { local_20 = (clip_2.w > 0.0001f); } else { local_20 = false; } let _e33 = local_20; if _e33 { let _e36 = hedra_p.snap_resolution; let half_res = (_e36 * 0.5f); let snapped = (round(((clip_2.xy / vec2(clip_2.w)) * half_res)) / half_res); let _e47 = INV_PROJECTION_MATRIX; let back_2 = (_e47 * vec4((snapped * clip_2.w), clip_2.z, clip_2.w)); view_pos = vec4((back_2.xyz / vec3(back_2.w)), 1f); } let _e61 = view_pos; VERTEX = _e61.xyz; let _e65 = MODELVIEW_NORMAL_MATRIX; let _e67 = NORMAL; NORMAL = normalize((_e65 * _e67)); return; } fn fragment() { let _e1 = UV; let r_8 = (length((_e1 - vec2(0.5f))) * 2f); let _e15 = hedra_p.rings; let _e22 = hedra_p.rings; let ring = (floor(((clamp((1f - r_8), 0f, 1f) * _e15) + 0.999f)) / _e22); let _e26 = hedra_p.lift; let strength = (ring * (1f - _e26)); let _e35 = hedra_p.shadow_color; ALBEDO = mix(vec3(1f), _e35, strength); return; } fn hedra_mat3_(m_2: mat4x4) -> mat3x3 { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } fn hedra_rigid_inverse(m_3: mat4x4) -> mat4x4 { let _e1 = hedra_mat3_(m_3); let r_9 = transpose(_e1); let t_9 = -((r_9 * m_3[3].xyz)); return mat4x4(vec4(r_9[0], 0f), vec4(r_9[1], 0f), vec4(r_9[2], 0f), vec4(t_9, 1f)); } fn hedra_inv_projection() -> mat4x4 { let _e2 = G.wire_color; let _e5 = G.select_color; let _e8 = G.active_color; let _e11 = G.grid; return mat4x4(_e2, _e5, _e8, _e11); } fn hedra_godot_uv(uv_1: vec2) -> vec2 { return vec2(uv_1.x, (1f - uv_1.y)); } fn hedra_transparent() -> bool { var local_21: bool; var local_22: bool; if HEDRA_ALPHA { local_21 = true; } else { local_21 = false; } let _e5 = local_21; if !(_e5) { local_22 = true; } else { local_22 = true; } let _e11 = local_22; return _e11; } fn hedra_mirrored(flags_1: u32) -> bool { let _e4 = O.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } fn hedra_matrices(model: mat4x4, normal: mat3x3) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; let _e7 = G.view; let _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; let _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; let _e14 = G.view; MODELVIEW_MATRIX = (_e14 * model); let _e19 = G.view; let _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; let _e28 = G.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1f)).xyz; let _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } fn hedra_begin_vertex(pos: vec3, normal_1: vec3, tangent: vec4, uv_2: vec2, uv2_: vec2, color: vec4, vid_3: u32) { var local_23: bool; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); let _e17 = hedra_godot_uv(uv_2); UV = _e17; let _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = i32(vid_3); POSITION = vec4(1f); if HEDRA_WORLD_VERTEX_COORDS { local_23 = false; } else { local_23 = false; } let _e31 = local_23; if _e31 { let _e34 = MODEL_MATRIX; let _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1f)).xyz; let _e43 = MODEL_NORMAL_MATRIX; let _e45 = NORMAL; NORMAL = (_e43 * _e45); let _e49 = MODEL_NORMAL_MATRIX; let _e51 = TANGENT; TANGENT = (_e49 * _e51); let _e55 = MODEL_NORMAL_MATRIX; let _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } fn hedra_end_vertex(world_10: vec4, n_8: vec3, t: vec3, tw: f32, flags_2: u32) -> CustomOut { var out_2: CustomOut; let _e9 = G.view_proj; out_2.clip = (_e9 * world_10); if HEDRA_USES_POSITION { let _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); let _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); let _e28 = COLOR; out_2.color = _e28; let _e31 = UV2_; out_2.uv2_ = _e31; let _e34 = INSTANCE_ID; out_2.instance_id = u32(max(_e34, 0i)); hedra_store_varyings((&out_2)); let _e38 = out_2; return _e38; } fn hedra_vertex_space() -> bool { var local_24: bool; if false { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } let _e5 = local_24; return _e5; } fn hedra_vertex_world() -> vec4 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e2 = INV_VIEW_MATRIX; let _e4 = VERTEX; return (_e2 * vec4(_e4, 1f)); } let _e9 = VERTEX; return vec4(_e9, 1f); } fn hedra_vertex_dir(d_11: vec3) -> vec3 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e3 = INV_VIEW_MATRIX; let _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } fn hedra_tangent_sign(w: f32, flip: bool) -> f32 { let _e5 = O.extra.x; return (w * select(1f, -1f, (((_e5 & OBJ_MIRRORED) != 0u) != flip))); } fn hedra_fragment(in_7: CustomOut, facing_4: bool) { var t_1: vec3; var nm: vec3; let _e3 = hedra_mirrored(in_7.flags); let front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; let _e14 = G.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); let _e19 = O.model; let _e22 = O.normal; let _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); let _e26 = G.view; let _e27 = hedra_mat3_(_e26); let n_geo_2 = select(-(normalize(in_7.normal)), normalize(in_7.normal), front); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; let _e41 = t_1; let _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); let _e47 = t_1; let b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); let _e55 = G.view; VERTEX = (_e55 * vec4(in_7.world, 1f)).xyz; let _e63 = VERTEX; LIGHT_VERTEX = _e63; let vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); let normal0_ = NORMAL; let _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); let _e80 = VERTEX; let _e90 = G.camera_pos.w; VIEW = select(normalize(-(_e80)), vec3(0f, 0f, 1f), (_e90 > 0.5f)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5f); NORMAL_MAP_DEPTH = 1f; ALBEDO = vec3(1f); ALPHA = 1f; ALPHA_SCISSOR_THRESHOLD = 1f; PREMUL_ALPHA_FACTOR = 1f; METALLIC = 0f; SPECULAR = 0.5f; ROUGHNESS = 1f; RIM = 0f; RIM_TINT = 0f; BACKLIGHT = vec3(0f); AO = 1f; AO_LIGHT_AFFECT = 0f; EMISSION = vec3(0f); hedra_load_varyings(in_7); fragment(); let back_3 = transpose(_e27); let _e136 = NORMAL; if any((_e136 != normal0_)) { let _e141 = NORMAL; hedra_n = normalize((back_3 * _e141)); } let _e145 = NORMAL_MAP; if any((_e145 != vec3(0.5f))) { let _e151 = NORMAL_MAP; nm = _e151; let _e153 = nm; nm = vec3(((_e153.xy * 2f) - vec2(1f)), 0f); let _e163 = nm; let _e165 = nm; nm.z = sqrt(max(0f, (1f - dot(_e163.xy, _e165.xy)))); let _e175 = NORMAL; let _e177 = TANGENT; let _e179 = nm.x; let _e182 = BINORMAL; let _e184 = nm.y; let _e188 = NORMAL; let _e190 = nm.z; let _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); let _e199 = NORMAL; hedra_n = normalize((back_3 * _e199)); } let _e203 = LIGHT_VERTEX; if any((_e203 != vertex0_)) { let _e208 = INV_VIEW_MATRIX; let _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1f)).xyz; return; } else { return; } } fn hedra_culled(flags_3: u32) -> bool { var local_25: bool; var local_26: bool; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if false { let _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } let _e12 = local_25; if _e12 { return true; } if HEDRA_ALPHA_SCISSOR { let _e18 = ALPHA; let _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = (_e18 < _e20); } else { local_26 = false; } let _e23 = local_26; return _e23; } fn hedra_view_dir(world_11: vec3) -> vec3 { let _e5 = G.view[0][2]; let _e10 = G.view[1][2]; let _e15 = G.view[2][2]; let view_dir = vec3(_e5, _e10, _e15); let _e19 = G.camera_pos; let _e27 = G.camera_pos.w; return select(normalize((_e19.xyz - world_11)), normalize(view_dir), (_e27 > 0.5f)); } fn hedra_schlick(u: f32) -> f32 { let m_5 = clamp((1f - u), 0f, 1f); let m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } fn hedra_diffuse_brdf(nl_1: f32, nv_2: f32, lh: f32, r_4: f32) -> f32 { let c_nl = max(nl_1, 0f); if false { return (max(0f, ((nl_1 + r_4) / ((1f + r_4) * (1f + r_4)))) * 0.31830987f); } if false { return (smoothstep(-(r_4), max(r_4, 0.01f), nl_1) * 0.31830987f); } if false { let fd90_ = ((((2f * lh) * lh) * r_4) - 0.5f); let _e32 = hedra_schlick(nv_2); let fdv = (1f + (fd90_ * _e32)); let _e36 = hedra_schlick(c_nl); let fdl = (1f + (fd90_ * _e36)); return (((0.31830987f * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987f); } fn hedra_light_modes(n_9: vec3, v_3: vec3, l_3: vec3, radiance_2: vec3, diffuse_1: vec3, f0_2: vec3, a2_3: f32, r_5: f32, specular_1: f32) -> vec3 { var c_19: vec3; var mid: f32; var local_27: bool; let nl_3 = min(dot(n_9, l_3), 1f); let nv_4 = max(dot(n_9, v_3), 0.0001f); let h_3 = normalize((l_3 + v_3)); let lh_1 = clamp(dot(l_3, h_3), 0f, 1f); let _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if (r_5 > 0f) { if false { let refl = normalize(-(reflect(l_3, n_9))); let rv = dot(refl, v_3); mid = (1f - r_5); let _e35 = mid; let _e36 = mid; mid = (_e35 * _e36); let _e38 = c_19; let _e40 = mid; let _e44 = mid; let _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5f)), (_e44 + (r_5 * 0.5f)), rv) * _e49) * specular_1))); } else { if false { local_27 = (nl_3 > 0f); } else { local_27 = false; } let _e60 = local_27; if _e60 { let nh_2 = max(dot(n_9, h_3), 0f); let vh_2 = max(dot(v_3, h_3), 0f); let _e67 = f_schlick(f0_2, vh_2); let _e68 = c_19; let _e69 = d_ggx(nh_2, a2_3); let _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } let _e77 = c_19; return _e77; } fn hedra_light_dir(i_11: u32, world_12: vec3) -> vec4 { var atten_1: f32; let li_1 = Lit.lights[i_11]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return vec4(-(li_1.direction.xyz), 1f); } let rel_1 = (li_1.position.xyz - world_12); let d_16 = length(rel_1); let l_7 = (rel_1 / vec3(max(d_16, 0.000001f))); let _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { let cone = li_1.spot.x; let scos = max(dot(-(l_7), li_1.direction.xyz), cone); let rim_1 = max(0.0001f, ((1f - scos) / max((1f - cone), 0.000001f))); let _e49 = atten_1; atten_1 = (_e49 * (1f - pow(rim_1, li_1.spot.y))); } let _e56 = atten_1; return vec4(l_7, _e56); } fn hedra_shadow(i_12: u32, l_4: vec3) -> f32 { var local_28: bool; if false { let _e10 = Lit.lights[i_12].info.y; local_28 = (_e10 != LIGHT_SHADOWED); } else { local_28 = true; } let _e14 = local_28; if _e14 { return 1f; } let _e17 = hedra_world; let _e19 = hedra_n_geo; let _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } fn hedra_ambient(n_10: vec3, v_4: vec3, diffuse_2: vec3, f0_3: vec3, roughness_3: f32, metallic: f32) -> vec3 { var ambient: vec3; var diffuse_amb: vec3; var spec_amb: vec3; var dif: vec3; var dif_1: vec3; var dif_2: vec3; let world_13 = hedra_world; let nv_5 = max(dot(n_10, v_4), 0.0001f); let f_amb = (f0_3 + ((max(vec3((1f - roughness_3)), f0_3) - f0_3) * pow((1f - nv_5), 5f))); let _e25 = gi_diffuse(n_10, false, vec3(0f)); let _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { let _e38 = Sky.ibl.x; let _e42 = Sky.sun.w; let scale = (_e38 * _e42); let _e46 = Sky.ambient; diffuse_amb = _e46.xyz; let _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { let _e59 = Sky.ambient; let _e61 = sky_dir(n_10); let _e62 = sh_irradiance(_e61); let _e67 = Sky.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if (_e25.w > 0f) { diffuse_amb = _e25.xyz; } let _e75 = Sky.ambient; spec_amb = _e75.xyz; let _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { let _e88 = sky_dir(reflect(-(v_4), n_10)); let _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { let _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = vec3(0f); } } let _e101 = env_brdf_approx(roughness_3, nv_5); let _e105 = Probe.counts.x; if (_e105 > 0u) { let _e113 = O.extra.z; let _e114 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e113); let _e115 = spec_amb; let spec_1 = ((_e115 * (1f - _e114.w)) + _e114.xyz); let _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0f) { let _e130 = O.extra.z; let _e131 = probe_ambient(world_13, n_10, _e130); let _e132 = diffuse_amb; dif = ((_e132 * (1f - _e131.w)) + _e131.xyz); } let _e139 = dif; ambient = ((diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } else { let _e154 = diffuse_amb; let _e156 = spec_amb; ambient = ((diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } } else { let _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { let _e180 = Lit.up; let up = _e180.xyz; let _e184 = Lit.sky_top; let _e188 = Lit.sky_horizon; let sky_avg = ((_e184.xyz + _e188.xyz) * 0.5f); let _e195 = Lit.ground_horizon; let _e199 = Lit.ground_bottom; let ground_avg = ((_e195.xyz + _e199.xyz) * 0.5f); let irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up) * 0.5f) + 0.5f), 0f, 1f)); let _e215 = sky(reflect(-(v_4), n_10)); let blurred = mix(_e215, sky_avg, roughness_3); let _e220 = Probe.counts.x; if (_e220 > 0u) { let _e228 = O.extra.z; let _e229 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e228); let _e233 = Lit.ambient.w; let spec_2 = (((blurred * _e233) * (1f - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if (_e25.w <= 0f) { let _e249 = O.extra.z; let _e250 = probe_ambient(world_13, n_10, _e249); let _e254 = Lit.ambient.w; dif_1 = (((irradiance * _e254) * (1f - _e250.w)) + _e250.xyz); } let _e262 = dif_1; ambient = ((diffuse_2 * _e262) + (spec_2 * f_amb)); } else { if (_e25.w > 0f) { let _e275 = Lit.ambient.w; ambient = ((diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { let _e284 = Lit.ambient.w; ambient = (((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284); } } } else { let _e289 = Probe.counts.x; if (_e289 > 0u) { let _e297 = O.extra.z; let _e298 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e297); let _e301 = Lit.ambient; let spec_3 = ((_e301.xyz * (1f - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if (_e25.w <= 0f) { let _e317 = O.extra.z; let _e318 = probe_ambient(world_13, n_10, _e317); let _e321 = Lit.ambient; dif_2 = ((_e321.xyz * (1f - _e318.w)) + _e318.xyz); } let _e329 = dif_2; ambient = ((diffuse_2 * _e329) + (spec_3 * f_amb)); } else { if (_e25.w > 0f) { let _e340 = Lit.ambient; ambient = ((diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb)); } else { let _e346 = Lit.ambient; ambient = (_e346.xyz * (diffuse_2 + f_amb)); } } } } let _e350 = ambient; return _e350; } fn hedra_fog(c_in_1: vec3, v_5: vec3) -> vec3 { var c_20: vec3; c_20 = c_in_1; if HEDRA_FOG_DISABLED { let _e4 = c_20; return _e4; } let _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { let _e13 = c_20; let _e15 = hedra_world; let _e17 = surface_fog(_e13, _e15, -(v_5)); c_20 = _e17; } let _e21 = O.decals.w; if (_e21 != 0u) { let _e24 = c_20; let _e26 = hedra_world; let _e30 = O.decals.w; let _e31 = fog_volumes(_e24, _e26, _e30); c_20 = _e31; } let _e32 = c_20; return _e32; } fn hedra_lit(clip: vec4) -> vec3 { var surf_1: DecalSurface; var c_21: vec3 = vec3(0f); var k_11: u32 = 0u; var local_29: bool; var radiance_3: vec3; var local_30: bool; var local_31: bool; var ambient_1: vec3 = vec3(0f); var local_32: bool; let n_geo_3 = hedra_n_geo; let _e4 = ALBEDO; let _e6 = METALLIC; let _e11 = ROUGHNESS; let _e16 = AO; let _e18 = hedra_n; let _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0f, 1f), clamp(_e11, 0.045f, 1f), _e16, _e18, _e20); let _e26 = O.decals.z; if (_e26 > 0u) { let _e30 = hedra_world; let _e31 = surf_1; let _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; let _e35 = surf_1.base; ALBEDO = _e35; let _e38 = surf_1.metallic; METALLIC = _e38; let _e41 = surf_1.roughness; ROUGHNESS = _e41; let _e45 = G.view; let _e46 = hedra_mat3_(_e45); let _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } let metallic_1 = surf_1.metallic; let roughness_4 = surf_1.roughness; let a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); let base = surf_1.base; let diffuse_3 = (base * (1f - metallic_1)); let _e64 = SPECULAR; let _e68 = SPECULAR; let f0_4 = mix(vec3(((0.16f * _e64) * _e68)), base, metallic_1); let n_13 = surf_1.normal; let _e75 = hedra_world; let _e76 = hedra_view_dir(_e75); let _e79 = G.view; let _e80 = hedra_mat3_(_e79); let _e82 = surf_1.occlusion; let _e84 = AO_LIGHT_AFFECT; let ao_direct = mix(1f, _e82, _e84); DIFFUSE_LIGHT = vec3(0f); SPECULAR_LIGHT = vec3(0f); let _e96 = object_light_count(); loop { let _e99 = k_11; if (_e99 < _e96) { } else { break; } { let _e101 = k_11; let _e102 = object_light(_e101); let li_2 = Lit.lights[_e102]; let _e108 = hedra_world; let _e109 = hedra_light_dir(_e102, _e108); let l_8 = _e109.xyz; let atten_2 = _e109.w; if HEDRA_HAS_LIGHT { if !((li_2.info.x == LIGHT_DIRECTIONAL)) { local_29 = (atten_2 > 0f); } else { local_29 = true; } let _e123 = local_29; if _e123 { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; let _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } let _e142 = RIM; if (_e142 > 0f) { let rim_light = pow(max(0.0001f, (1f - max(dot(n_13, _e76), 0.0001f))), max(0f, ((1f - roughness_4) * 16f))); let _e159 = c_21; let _e164 = RIM; let _e170 = RIM_TINT; c_21 = (_e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1f), base, _e170))); } if (atten_2 > 0f) { radiance_3 = (li_2.color.xyz * atten_2); if (li_2.info.y == LIGHT_SHADOWED) { local_30 = false; } else { local_30 = false; } let _e188 = local_30; if _e188 { let _e192 = hedra_world; let _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if true { local_31 = false; } else { local_31 = false; } let _e201 = local_31; if _e201 { let _e202 = c_21; let _e203 = radiance_3; let _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_21 = (_e202 + _e206); } else { let _e208 = c_21; let _e209 = radiance_3; let _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = (_e208 + _e212); } let _e215 = BACKLIGHT; if any((_e215 > vec3(0f))) { let nl_4 = max(min(dot(n_13, l_8), 1f), 0f); let _e225 = c_21; let _e226 = radiance_3; let _e229 = BACKLIGHT; c_21 = (_e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987f - (nl_4 * 0.31830987f)))); } } } continuing { let _e238 = k_11; k_11 = (_e238 + 1u); } } if HEDRA_HAS_LIGHT { let _e242 = DIFFUSE_LIGHT; let _e249 = SPECULAR_LIGHT; c_21 = ((((_e242 * base) * ao_direct) * (1f - metallic_1)) + (_e249 * ao_direct)); } else { let _e253 = AO_LIGHT_AFFECT; if (_e253 > 0f) { let _e256 = c_21; c_21 = (_e256 * ao_direct); } } if true { let _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } let _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { let _e273 = hedra_transparent(); local_32 = !(_e273); } else { local_32 = false; } let _e276 = local_32; if _e276 { let _e282 = textureLoad(t_ao, vec2(floor(clip.xy)), 0i); let ssao = _e282.x; let _e284 = c_21; let _e286 = surf_1.occlusion; let _e291 = Lit.tone.z; let _e295 = Lit.tone.w; c_21 = (_e284 * mix(1f, min(ssao, _e286), (_e291 * _e295))); let _e300 = c_21; let _e301 = ambient_1; let _e303 = surf_1.occlusion; c_21 = (_e300 + (_e301 * min(_e303, ssao))); } else { let _e307 = c_21; let _e308 = ambient_1; let _e310 = surf_1.occlusion; c_21 = (_e307 + (_e308 * _e310)); } let _e313 = c_21; let _e315 = surf_1.emission; c_21 = (_e313 + _e315); let _e317 = c_21; let _e318 = hedra_fog(_e317, _e76); let _e319 = tonemap(_e318); return _e319; } fn hedra_output(c_22: vec3) -> vec4 { var rgb: vec3; rgb = c_22; if false { let _e3 = rgb; let _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } let _e7 = rgb; let _e9 = ALPHA; let _e10 = hedra_transparent(); let o_9 = vec4(_e7, select(1f, _e9, _e10)); let _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return vec4(max(o_9.xyz, vec3(0f)), clamp(o_9.w, 0f, 1f)); } let k_17 = clamp(o_9, vec4(0f), vec4(1f)); let _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { let _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } fn hedra_bindings() -> vec3 { let uv_7 = vec2(0.5f); let _e5 = textureSampleLevel(t_panorama, s_panorama, uv_7, 0f); let _e11 = textureSampleLevel(t_lightmap, s_lightmap, uv_7, 0i, 0f); let _e17 = textureSampleLevel(t_screen, s_radiance, uv_7, 0f); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } @vertex fn vs_custom(in: VsIn, @location(10) uv1_: vec2, @builtin(vertex_index) vid: u32) -> CustomOut { let _e5 = O.model; let _e8 = O.normal; let _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, vec4(1f), vid); vertex(); let _e24 = hedra_tangent_sign(in.tangent.w, false); let _e25 = hedra_vertex_space(); if _e25 { let _e26 = hedra_vertex_world(); let _e28 = NORMAL; let _e29 = hedra_vertex_dir(_e28); let _e31 = TANGENT; let _e32 = hedra_vertex_dir(_e31); let _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags); return _e34; } let _e37 = O.model; let _e39 = VERTEX; let world_14 = (_e37 * vec4(_e39, 1f)); let _e45 = O.normal; let _e47 = NORMAL; let n_14 = (_e45 * vec4(_e47, 0f)).xyz; let _e54 = O.model; let _e56 = TANGENT; let t_10 = (_e54 * vec4(_e56, 0f)).xyz; let _e62 = hedra_end_vertex(world_14, n_14, t_10, _e24, in.flags); return _e62; } @vertex fn vs_custom_instanced(in_1: VsIn, inst: InstIn, @location(10) uv1_1: vec2, extra: HedraInstExtra, @builtin(vertex_index) vid_1: u32) -> CustomOut { let bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); let by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); let bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); let det = dot(bx, cross(by, bz)); let flip_1 = (det < 0f); let cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * select(1f, -1f, flip_1)); let basis = mat4x4(vec4(bx, 0f), vec4(by, 0f), vec4(bz, 0f), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1f)); let _e55 = O.model; let _e59 = O.normal; let _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); let flags_4 = (in_1.flags | select(0u, F_INSTANCE_MIRRORED, flip_1)); let _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); let _e80 = hedra_vertex_space(); if _e80 { let _e81 = hedra_vertex_world(); let _e83 = NORMAL; let _e84 = hedra_vertex_dir(_e83); let _e86 = TANGENT; let _e87 = hedra_vertex_dir(_e86); let _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); return _e88; } let _e90 = VERTEX; let p1_ = vec4(_e90, 1f); let local_33 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); let _e102 = O.model; let world_15 = (_e102 * vec4(local_33, 1f)); let _e108 = O.normal; let _e110 = NORMAL; let n_15 = (_e108 * vec4((cofactor * _e110), 0f)).xyz; let _e118 = O.model; let _e121 = TANGENT; let t_11 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0f)).xyz; let _e127 = hedra_end_vertex(world_15, n_15, t_11, _e79, flags_4); return _e127; } @vertex fn vs_custom_skinned(in_2: VsIn, s: SkinIn, @location(10) uv1_2: vec2, @builtin(vertex_index) vid_2: u32) -> CustomOut { let _e4 = skin_rows(s); let p_12 = vec4(in_2.pos, 1f); let skinned = vec3(dot(_e4.r0_, p_12), dot(_e4.r1_, p_12), dot(_e4.r2_, p_12)); let bx_1 = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); let by_1 = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); let bz_1 = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); let det_1 = dot(bx_1, cross(by_1, bz_1)); let flip_2 = (det_1 < 0f); let cofactor_1 = mat3x3(cross(by_1, bz_1), cross(bz_1, bx_1), cross(bx_1, by_1)); let n0_ = normalize(((cofactor_1 * in_2.normal) * select(1f, -1f, flip_2))); let t0_1 = normalize((mat3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz)); let _e58 = O.model; let _e61 = O.normal; let _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1f), vid_2); vertex(); let flags_5 = (in_2.flags | select(0u, F_INSTANCE_MIRRORED, flip_2)); let _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2); let _e82 = hedra_vertex_space(); if _e82 { let _e83 = hedra_vertex_world(); let _e85 = NORMAL; let _e86 = hedra_vertex_dir(_e85); let _e88 = TANGENT; let _e89 = hedra_vertex_dir(_e88); let _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5); return _e90; } let _e93 = O.model; let _e95 = VERTEX; let world_16 = (_e93 * vec4(_e95, 1f)); let _e101 = O.normal; let _e103 = NORMAL; let n_16 = (_e101 * vec4(_e103, 0f)).xyz; let _e110 = O.model; let _e112 = TANGENT; let t_12 = (_e110 * vec4(_e112, 0f)).xyz; let _e117 = hedra_end_vertex(world_16, n_16, t_12, _e81, flags_5); return _e117; } @fragment fn fs_custom(in_3: CustomOut, @builtin(front_facing) facing: bool) -> @location(0) vec4 { var c: vec3; hedra_fragment(in_3, facing); let _e3 = hedra_culled(in_3.flags); if _e3 { discard; } let _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if (_e7 <= 0f) { discard; } if HEDRA_UNSHADED { let _e13 = ALBEDO; let _e15 = hedra_world; let _e16 = hedra_view_dir(_e15); let _e17 = hedra_fog(_e13, _e16); let _e18 = tonemap(_e17); c = _e18; } else { let _e20 = hedra_lit(in_3.clip); c = _e20; } let _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { let _e27 = c; let _e28 = hedra_bindings(); c = (_e27 + _e28); } let _e33 = G.params.x; if (_e33 == SHADE_LIT) { let _e36 = c; let _e37 = item_fade(_e36); let _e38 = emerge_tint(_e37, _e7); c = _e38; } let _e39 = c; let _e40 = hedra_output(_e39); return _e40; } @fragment fn fs_custom_depth(in_4: CustomOut, @builtin(front_facing) facing_1: bool) { var local: bool; var local_1: bool; hedra_fragment(in_4, facing_1); if !(((in_4.flags & F_HIDDEN) != 0u)) { if HEDRA_ALPHA_SCISSOR { let _e14 = ALPHA; let _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } let _e19 = local_1; local = _e19; } else { local = true; } let _e21 = local; if _e21 { discard; } let _e25 = emerge_reveal(in_4.world, vec2(-1f)); if (_e25 <= 0f) { discard; } else { return; } } @fragment fn fs_custom_id(in_5: CustomOut, @builtin(front_facing) facing_2: bool) -> IdOut { var local_2: bool; var out: IdOut; hedra_fragment(in_5, facing_2); let _e3 = hedra_culled(in_5.flags); if !(_e3) { let _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0f); } else { local_2 = true; } let _e14 = local_2; if _e14 { discard; } let id = O.params.z; let _e24 = O.params.x; let _e33 = O.params.y; let bits = (select(0u, 1u, (_e24 == 1u)) | select(0u, 2u, (_e33 == 1u))); out.id = (vec4(f32((id & 255u)), f32(((id >> 8u) & 255u)), f32(((id >> 16u) & 255u)), f32(bits)) / vec4(255f)); let _e58 = out; return _e58; } @fragment fn fs_custom_normal_depth(in_6: CustomOut, @builtin(front_facing) facing_3: bool) -> HedraNormalDepthOut { var local_3: bool; var out_1: HedraNormalDepthOut; hedra_fragment(in_6, facing_3); let _e3 = hedra_culled(in_6.flags); if !(_e3) { let _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0f); } else { local_3 = true; } let _e14 = local_3; if _e14 { discard; } let _e17 = G.view; let _e18 = hedra_mat3_(_e17); let _e20 = hedra_n; let n_view = normalize((_e18 * _e20)); let _e24 = METALLIC; let metallic_2 = clamp(_e24, 0f, 1f); let _e29 = SPECULAR; let _e33 = SPECULAR; let _e37 = ALBEDO; let f0_5 = mix(vec3(((0.16f * _e29) * _e33)), _e37, metallic_2); let _e43 = G.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1f)).z)); let _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_5, vec3(0f), vec3(1f)), clamp(_e58, 0.045f, 1f)); let _e63 = out_1; return _e63; }  @Ð Ð/ ,@  ˜J£&ѰA¬ËÎ-”ÒÑ'š€Uè‹Ó©æ_7hh'· vs_custommainQ…#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 shadow_color; float lift; float rings; float hedra_pad0_; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 3u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_2Vertex { HedraParams _group_2_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } void vertex() { vec4 view_pos = vec4(0.0); bool local_20 = false; float _e2 = _group_2_binding_0_vs.lift; float shrink = (1.0 - (0.5 * _e2)); mat4x4 _e8 = MODELVIEW_MATRIX; vec3 _e10 = VERTEX; view_pos = (_e8 * vec4((_e10 * shrink), 1.0)); mat4x4 _e18 = _group_0_binding_0_vs.proj; vec4 _e19 = view_pos; vec4 clip_1 = (_e18 * _e19); float _e24 = _group_2_binding_0_vs.snap_resolution.x; if ((_e24 > 0.0)) { local_20 = (clip_1.w > 0.0001); } else { local_20 = false; } bool _e33 = local_20; if (_e33) { vec2 _e36 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e36 * 0.5); vec2 snapped = (roundEven(((clip_1.xy / vec2(clip_1.w)) * half_res)) / half_res); mat4x4 _e47 = INV_PROJECTION_MATRIX; vec4 back = (_e47 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); view_pos = vec4((back.xyz / vec3(back.w)), 1.0); } vec4 _e61 = view_pos; VERTEX = _e61.xyz; mat3x3 _e65 = MODELVIEW_NORMAL_MATRIX; vec3 _e67 = NORMAL; NORMAL = normalize((_e65 * _e67)); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = true; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_23 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_23 = false; } else { local_23 = false; } bool _e31 = local_23; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); vec2 uv1_ = _p2vs_location10; uint vid = uint(gl_VertexID); mat4x4 _e5 = _group_1_binding_0_vs.model; mat4x4 _e8 = _group_1_binding_0_vs.normal; mat3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(in_.pos, in_.normal, in_.tangent, in_.uv, uv1_, vec4(1.0), vid); vertex(); float _e24 = hedra_tangent_sign(in_.tangent.w, false); bool _e25 = hedra_vertex_space(); if (_e25) { vec4 _e26 = hedra_vertex_world(); vec3 _e28 = NORMAL; vec3 _e29 = hedra_vertex_dir(_e28); vec3 _e31 = TANGENT; vec3 _e32 = hedra_vertex_dir(_e31); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in_.flags); gl_Position = _e34.clip; _vs2fs_location0 = _e34.world; _vs2fs_location1 = _e34.normal; _vs2fs_location2 = _e34.uv; _vs2fs_location3 = _e34.flags; _vs2fs_location4 = _e34.tangent; _vs2fs_location5 = _e34.color; _vs2fs_location6 = _e34.uv2_; _vs2fs_location7 = _e34.instance_id; _vs2fs_location8 = _e34.hedra_v0_; _vs2fs_location9 = _e34.hedra_v1_; _vs2fs_location10 = _e34.hedra_v2_; _vs2fs_location11 = _e34.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e37 = _group_1_binding_0_vs.model; vec3 _e39 = VERTEX; vec4 world_13 = (_e37 * vec4(_e39, 1.0)); mat4x4 _e45 = _group_1_binding_0_vs.normal; vec3 _e47 = NORMAL; vec3 n_11 = (_e45 * vec4(_e47, 0.0)).xyz; mat4x4 _e54 = _group_1_binding_0_vs.model; vec3 _e56 = TANGENT; vec3 t_5 = (_e54 * vec4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_13, n_11, t_5, _e24, in_.flags); gl_Position = _e62.clip; _vs2fs_location0 = _e62.world; _vs2fs_location1 = _e62.normal; _vs2fs_location2 = _e62.uv; _vs2fs_location3 = _e62.flags; _vs2fs_location4 = _e62.tangent; _vs2fs_location5 = _e62.color; _vs2fs_location6 = _e62.uv2_; _vs2fs_location7 = _e62.instance_id; _vs2fs_location8 = _e62.hedra_v0_; _vs2fs_location9 = _e62.hedra_v1_; _vs2fs_location10 = _e62.hedra_v2_; _vs2fs_location11 = _e62.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_instancedmain3Š#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 shadow_color; float lift; float rings; float hedra_pad0_; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 3u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_2Vertex { HedraParams _group_2_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec2 _p2vs_location10; layout(location = 14) in vec4 _p2vs_location14; layout(location = 15) in float _p2vs_location15; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } void vertex() { vec4 view_pos = vec4(0.0); bool local_20 = false; float _e2 = _group_2_binding_0_vs.lift; float shrink = (1.0 - (0.5 * _e2)); mat4x4 _e8 = MODELVIEW_MATRIX; vec3 _e10 = VERTEX; view_pos = (_e8 * vec4((_e10 * shrink), 1.0)); mat4x4 _e18 = _group_0_binding_0_vs.proj; vec4 _e19 = view_pos; vec4 clip_1 = (_e18 * _e19); float _e24 = _group_2_binding_0_vs.snap_resolution.x; if ((_e24 > 0.0)) { local_20 = (clip_1.w > 0.0001); } else { local_20 = false; } bool _e33 = local_20; if (_e33) { vec2 _e36 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e36 * 0.5); vec2 snapped = (roundEven(((clip_1.xy / vec2(clip_1.w)) * half_res)) / half_res); mat4x4 _e47 = INV_PROJECTION_MATRIX; vec4 back = (_e47 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); view_pos = vec4((back.xyz / vec3(back.w)), 1.0); } vec4 _e61 = view_pos; VERTEX = _e61.xyz; mat3x3 _e65 = MODELVIEW_NORMAL_MATRIX; vec3 _e67 = NORMAL; NORMAL = normalize((_e65 * _e67)); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = true; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_23 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_23 = false; } else { local_23 = false; } bool _e31 = local_23; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_1 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); InstIn inst = InstIn(_p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9); vec2 uv1_1 = _p2vs_location10; HedraInstExtra extra = HedraInstExtra(_p2vs_location14, _p2vs_location15); uint vid_1 = uint(gl_VertexID); vec3 bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); vec3 by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); vec3 bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * (flip_1 ? -1.0 : 1.0)); mat4x4 basis = mat4x4(vec4(bx, 0.0), vec4(by, 0.0), vec4(bz, 0.0), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); mat4x4 _e55 = _group_1_binding_0_vs.model; mat4x4 _e59 = _group_1_binding_0_vs.normal; mat3x3 _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = int(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); uint flags_4 = (in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); bool _e80 = hedra_vertex_space(); if (_e80) { vec4 _e81 = hedra_vertex_world(); vec3 _e83 = NORMAL; vec3 _e84 = hedra_vertex_dir(_e83); vec3 _e86 = TANGENT; vec3 _e87 = hedra_vertex_dir(_e86); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); gl_Position = _e88.clip; _vs2fs_location0 = _e88.world; _vs2fs_location1 = _e88.normal; _vs2fs_location2 = _e88.uv; _vs2fs_location3 = _e88.flags; _vs2fs_location4 = _e88.tangent; _vs2fs_location5 = _e88.color; _vs2fs_location6 = _e88.uv2_; _vs2fs_location7 = _e88.instance_id; _vs2fs_location8 = _e88.hedra_v0_; _vs2fs_location9 = _e88.hedra_v1_; _vs2fs_location10 = _e88.hedra_v2_; _vs2fs_location11 = _e88.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vec3 _e90 = VERTEX; vec4 p1_ = vec4(_e90, 1.0); vec3 local_33 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); mat4x4 _e102 = _group_1_binding_0_vs.model; vec4 world_13 = (_e102 * vec4(local_33, 1.0)); mat4x4 _e108 = _group_1_binding_0_vs.normal; vec3 _e110 = NORMAL; vec3 n_11 = (_e108 * vec4((cofactor * _e110), 0.0)).xyz; mat4x4 _e118 = _group_1_binding_0_vs.model; vec3 _e121 = TANGENT; vec3 t_5 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_13, n_11, t_5, _e79, flags_4); gl_Position = _e127.clip; _vs2fs_location0 = _e127.world; _vs2fs_location1 = _e127.normal; _vs2fs_location2 = _e127.uv; _vs2fs_location3 = _e127.flags; _vs2fs_location4 = _e127.tangent; _vs2fs_location5 = _e127.color; _vs2fs_location6 = _e127.uv2_; _vs2fs_location7 = _e127.instance_id; _vs2fs_location8 = _e127.hedra_v0_; _vs2fs_location9 = _e127.hedra_v1_; _vs2fs_location10 = _e127.hedra_v2_; _vs2fs_location11 = _e127.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_skinnedmainôŒ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 shadow_color; float lift; float rings; float hedra_pad0_; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 3u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(std140) uniform SkinU_block_2Vertex { SkinU _group_1_binding_1_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_3Vertex { HedraParams _group_2_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 12) in uvec4 _p2vs_location12; layout(location = 13) in vec4 _p2vs_location13; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } vec4 skin_row(uint k_10, uint r_3) { vec4 _e10 = _group_1_binding_1_vs.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } SkinRows skin_rows(SkinIn s_1) { SkinRows m_1 = SkinRows(vec4(0.0), vec4(0.0), vec4(0.0)); uvec4 j = s_1.joints; vec4 w_3 = s_1.weights; vec4 _e8 = skin_row(j.x, 0u); vec4 _e13 = skin_row(j.y, 0u); vec4 _e19 = skin_row(j.z, 0u); vec4 _e25 = skin_row(j.w, 0u); m_1.r0_ = ((((w_3.x * _e8) + (w_3.y * _e13)) + (w_3.z * _e19)) + (w_3.w * _e25)); vec4 _e32 = skin_row(j.x, 1u); vec4 _e37 = skin_row(j.y, 1u); vec4 _e43 = skin_row(j.z, 1u); vec4 _e49 = skin_row(j.w, 1u); m_1.r1_ = ((((w_3.x * _e32) + (w_3.y * _e37)) + (w_3.z * _e43)) + (w_3.w * _e49)); vec4 _e56 = skin_row(j.x, 2u); vec4 _e61 = skin_row(j.y, 2u); vec4 _e67 = skin_row(j.z, 2u); vec4 _e73 = skin_row(j.w, 2u); m_1.r2_ = ((((w_3.x * _e56) + (w_3.y * _e61)) + (w_3.z * _e67)) + (w_3.w * _e73)); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } void vertex() { vec4 view_pos = vec4(0.0); bool local_20 = false; float _e2 = _group_2_binding_0_vs.lift; float shrink = (1.0 - (0.5 * _e2)); mat4x4 _e8 = MODELVIEW_MATRIX; vec3 _e10 = VERTEX; view_pos = (_e8 * vec4((_e10 * shrink), 1.0)); mat4x4 _e18 = _group_0_binding_0_vs.proj; vec4 _e19 = view_pos; vec4 clip_1 = (_e18 * _e19); float _e24 = _group_2_binding_0_vs.snap_resolution.x; if ((_e24 > 0.0)) { local_20 = (clip_1.w > 0.0001); } else { local_20 = false; } bool _e33 = local_20; if (_e33) { vec2 _e36 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e36 * 0.5); vec2 snapped = (roundEven(((clip_1.xy / vec2(clip_1.w)) * half_res)) / half_res); mat4x4 _e47 = INV_PROJECTION_MATRIX; vec4 back = (_e47 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); view_pos = vec4((back.xyz / vec3(back.w)), 1.0); } vec4 _e61 = view_pos; VERTEX = _e61.xyz; mat3x3 _e65 = MODELVIEW_NORMAL_MATRIX; vec3 _e67 = NORMAL; NORMAL = normalize((_e65 * _e67)); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = true; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_23 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_23 = false; } else { local_23 = false; } bool _e31 = local_23; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_2 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); SkinIn s = SkinIn(_p2vs_location12, _p2vs_location13); vec2 uv1_2 = _p2vs_location10; uint vid_2 = uint(gl_VertexID); SkinRows _e4 = skin_rows(s); vec4 p_8 = vec4(in_2.pos, 1.0); vec3 skinned = vec3(dot(_e4.r0_, p_8), dot(_e4.r1_, p_8), dot(_e4.r2_, p_8)); vec3 bx = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); vec3 by = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); vec3 bz = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n0_ = normalize(((cofactor * in_2.normal) * (flip_1 ? -1.0 : 1.0))); vec3 t0_1 = normalize((mat3x3(bx, by, bz) * in_2.tangent.xyz)); mat4x4 _e58 = _group_1_binding_0_vs.model; mat4x4 _e61 = _group_1_binding_0_vs.normal; mat3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1.0), vid_2); vertex(); uint flags_4 = (in_2.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_1); bool _e82 = hedra_vertex_space(); if (_e82) { vec4 _e83 = hedra_vertex_world(); vec3 _e85 = NORMAL; vec3 _e86 = hedra_vertex_dir(_e85); vec3 _e88 = TANGENT; vec3 _e89 = hedra_vertex_dir(_e88); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_4); gl_Position = _e90.clip; _vs2fs_location0 = _e90.world; _vs2fs_location1 = _e90.normal; _vs2fs_location2 = _e90.uv; _vs2fs_location3 = _e90.flags; _vs2fs_location4 = _e90.tangent; _vs2fs_location5 = _e90.color; _vs2fs_location6 = _e90.uv2_; _vs2fs_location7 = _e90.instance_id; _vs2fs_location8 = _e90.hedra_v0_; _vs2fs_location9 = _e90.hedra_v1_; _vs2fs_location10 = _e90.hedra_v2_; _vs2fs_location11 = _e90.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e93 = _group_1_binding_0_vs.model; vec3 _e95 = VERTEX; vec4 world_13 = (_e93 * vec4(_e95, 1.0)); mat4x4 _e101 = _group_1_binding_0_vs.normal; vec3 _e103 = NORMAL; vec3 n_11 = (_e101 * vec4(_e103, 0.0)).xyz; mat4x4 _e110 = _group_1_binding_0_vs.model; vec3 _e112 = TANGENT; vec3 t_5 = (_e110 * vec4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_13, n_11, t_5, _e81, flags_4); gl_Position = _e117.clip; _vs2fs_location0 = _e117.world; _vs2fs_location1 = _e117.normal; _vs2fs_location2 = _e117.uv; _vs2fs_location3 = _e117.flags; _vs2fs_location4 = _e117.tangent; _vs2fs_location5 = _e117.color; _vs2fs_location6 = _e117.uv2_; _vs2fs_location7 = _e117.instance_id; _vs2fs_location8 = _e117.hedra_v0_; _vs2fs_location9 = _e117.hedra_v1_; _vs2fs_location10 = _e117.hedra_v2_; _vs2fs_location11 = _e117.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_custommainUw#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 shadow_color; float lift; float rings; float hedra_pad0_; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 3u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform LitU_block_2Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform ShadowU_block_3Fragment { ShadowU _group_0_binding_2_fs; }; uniform highp sampler2DShadow _group_0_binding_3_fs; layout(std140) uniform SkyU_block_4Fragment { SkyU _group_0_binding_5_fs; }; uniform highp samplerCube _group_3_binding_0_fs; uniform highp sampler2D _group_3_binding_1_fs; uniform highp sampler2D _group_0_binding_6_fs; uniform highp sampler2DArray _group_3_binding_4_fs; layout(std140) uniform ProbeU_block_5Fragment { ProbeU _group_0_binding_7_fs; }; uniform highp sampler2D _group_3_binding_6_fs; layout(std140) uniform DecalU_block_6Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; layout(std140) uniform FogU_block_7Fragment { FogU _group_1_binding_5_fs; }; uniform highp sampler2D _group_1_binding_6_fs; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); float SPECULAR_AMOUNT = 0.0; vec3 LIGHT = vec3(0.0); vec3 LIGHT_COLOR = vec3(0.0); bool LIGHT_IS_DIRECTIONAL = false; float ATTENUATION = 0.0; vec3 DIFFUSE_LIGHT = vec3(0.0); vec3 SPECULAR_LIGHT = vec3(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_8Fragment { HedraParams _group_2_binding_0_fs; }; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word_1 = ((k_1 < 4u) ? _e8 : _e4); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_2 = ((k_2 < 4u) ? _e8 : _e4); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local_6 = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_2 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_2.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local_6 = all(lessThanEqual(uvw, vec3(1.0))); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y)); if ((e_2.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1.0, ((dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1); uint live_1 = e_2.flags.x; if ((e_2.layers.x > 0u)) { vec4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_2.modulate); float _e90 = fade; float alpha = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if ((e_2.layers.y > 0u)) { vec4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if ((e_2.layers.z > 0u)) { vec4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if ((e_2.layers.w > 0u)) { vec4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_3 <= 1.5707964)) { float c_23 = (1.0 - (a_3 / 1.5707964)); float k_13 = clamp((1.0 - pow(max((1.0 - c_23), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } float c_24 = ((a_3 - 1.5707964) / 1.5707964); float k_14 = clamp((1.0 - pow(max((1.0 - c_24), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_25 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_25) + c_25) / ((c_25 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_25); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_25, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_25); return _e36; } return c_25; } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_3 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_3 * 1.8) - _e60) / EMERGE_EDGE); } vec3 emerge_tint(vec3 c_6, float r) { bool local_7 = false; uint _e6 = _group_1_binding_0_fs.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = (r >= 1.0); } else { local_7 = true; } bool _e17 = local_7; if ((SPEC_EMERGE ? _e17 : true)) { return c_6; } uint _e23 = _group_1_binding_0_fs.extra.w; vec3 _e26 = srgb_to_linear((vec4(_e23 & 0xFFu, _e23 >> 8 & 0xFFu, _e23 >> 16 & 0xFFu, _e23 >> 24) / 255.0).xyz); vec3 _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0.0, 1.0, r)); } vec3 item_fade(vec3 c_7) { uint _e5 = _group_1_binding_0_fs.extra.x; if ((SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true)) { return c_7; } vec4 f_1 = _group_1_binding_0_fs.normal[3]; vec3 _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec3 procedural_sky(vec3 d_1) { vec3 sky_1 = vec3(0.0); uint i = 0u; float v_6 = acos(clamp(d_1.y, -1.0, 1.0)); vec4 _e8 = _group_0_binding_5_fs.sky_horizon; vec4 _e12 = _group_0_binding_5_fs.sky_top; float _e21 = _group_0_binding_5_fs.sky_top.w; float _e22 = sky_curve((1.0 - (v_6 / 1.5707964)), _e21); float _e27 = _group_0_binding_5_fs.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); uint _e33 = _group_0_binding_5_fs.flags.z; uint suns = min(_e33, SKY_SUNS); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e79 = i; i = (_e79 + 1u); } loop_init_1 = false; uint _e38 = i; if ((_e38 < suns)) { } else { break; } { uint _e42 = i; SunU sun = _group_0_binding_5_fs.suns[_e42]; float size = sun.direction.w; float a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1.0, 1.0)); if ((a_5 < size)) { sky_1 = sun.color.xyz; } else { float _e60 = _group_0_binding_5_fs.sun.x; if ((a_5 < _e60)) { float _e66 = _group_0_binding_5_fs.sun.x; float c2_ = ((a_5 - size) / (_e66 - size)); vec3 _e71 = sky_1; float _e75 = _group_0_binding_5_fs.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } } vec4 _e83 = _group_0_binding_5_fs.ground_horizon; vec4 _e87 = _group_0_binding_5_fs.ground_bottom; float _e96 = _group_0_binding_5_fs.ground_bottom.w; float _e97 = sky_curve(((v_6 - 1.5707964) / 1.5707964), _e96); float _e102 = _group_0_binding_5_fs.ground_horizon.w; vec3 ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); vec3 _e104 = sky_1; float _e112 = _group_0_binding_5_fs.sun.z; return (((d_1.y >= 0.0) ? _e104 : ground) * _e112); } vec3 sh_irradiance(vec3 n_2) { vec3 c_9 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_9 = (_e4.xyz * 0.282095); vec3 _e9 = c_9; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603 * n_2.y))); vec3 _e20 = c_9; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603 * n_2.z))); vec3 _e31 = c_9; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603 * n_2.x))); vec3 _e42 = c_9; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y))); vec3 _e55 = c_9; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z))); vec3 _e68 = c_9; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0)))); vec3 _e85 = c_9; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z))); vec3 _e98 = c_9; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); vec3 _e115 = c_9; return max(_e115, vec3(0.0)); } vec3 radiance_1(vec3 d_3, float roughness) { uint _e5 = _group_0_binding_5_fs.flags.y; float top_1 = float((max(_e5, 1u) - 1u)); vec4 _e14 = textureLod(_group_3_binding_0_fs, vec3(d_3), (roughness * top_1)); return _e14.xyz; } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_10 = vec3(0.0); uint k_4 = 0u; c_10 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_2 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_10; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_10; return _e53; } vec3 sky_fog(vec3 c_11, vec3 dir_2) { vec4 _e4 = _group_0_binding_5_fs.fog_color; float _e9 = _group_0_binding_5_fs.fog_depth.w; vec3 _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); float _e15 = _group_0_binding_5_fs.fog.y; return mix(c_11, _e11, _e15); } vec3 surface_fog(vec3 c_12, vec3 world_3, vec3 dir_3) { float dist = 0.0; float amount = 0.0; vec3 fc_1 = vec3(0.0); bool local_8 = false; mat4x4 _e5 = _group_0_binding_0_fs.view; float depth = -((_e5 * vec4(world_3, 1.0)).z); vec4 _e13 = _group_0_binding_0_fs.camera_pos; dist = distance(world_3, _e13.xyz); float _e20 = _group_0_binding_5_fs.fog_origin.w; if ((_e20 > 0.5)) { float _e26 = _group_0_binding_5_fs.fog_origin.x; dist = max((depth - _e26), 0.0); } uint _e34 = _group_0_binding_5_fs.flags.x; if (((_e34 & SKY_FOG_DEPTH) != 0u)) { float _e42 = _group_0_binding_5_fs.fog_depth.x; float _e46 = _group_0_binding_5_fs.fog_depth.y; float _e47 = dist; float z = smoothstep(_e42, _e46, _e47); float _e54 = _group_0_binding_5_fs.fog_depth.z; float _e63 = _group_0_binding_5_fs.fog.x; amount = (((z > 0.0) ? pow(max(z, 1e-6), _e54) : 0.0) * _e63); } else { float _e65 = dist; float _e70 = _group_0_binding_5_fs.fog.x; amount = (1.0 - exp(min(0.0, (-(_e65) * _e70)))); } float _e80 = _group_0_binding_5_fs.fog.w; if ((abs(_e80) >= 0.0001)) { vec4 _e86 = _group_0_binding_1_fs.up; float y = dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = _group_0_binding_5_fs.fog.z; float _e98 = _group_0_binding_5_fs.fog.w; amount = max(_e89, (1.0 - exp(min(0.0, ((y - _e93) * _e98))))); } float _e106 = amount; amount = clamp(_e106, 0.0, 1.0); vec4 _e112 = _group_0_binding_5_fs.fog_color; fc_1 = _e112.xyz; uint _e119 = _group_0_binding_5_fs.flags.x; if (((_e119 & SKY_IBL) != 0u)) { float _e129 = _group_0_binding_5_fs.fog_depth.w; local_8 = (_e129 > 0.0); } else { local_8 = false; } bool _e133 = local_8; if ((SPEC_AMBIENT_SKY ? _e133 : false)) { float _e139 = _group_0_binding_5_fs.fog_origin.y; float _e144 = _group_0_binding_5_fs.fog_origin.z; float _e148 = _group_0_binding_5_fs.fog_origin.y; float t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 1e-6)), 0.0, 1.0); uint _e159 = _group_0_binding_5_fs.flags.y; float top_2 = float((max(_e159, 2u) - 1u)); float rough = mix((1.0 / top_2), 1.0, (1.0 - t_3)); vec3 _e171 = fc_1; vec3 _e172 = sky_dir(dir_3); vec3 _e173 = radiance_1(_e172, rough); float _e177 = _group_0_binding_5_fs.sun.w; float _e182 = _group_0_binding_5_fs.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } vec3 _e184 = fc_1; vec3 _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; vec3 _e186 = fc_1; float _e187 = amount; return mix(c_12, _e186, _e187); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_4, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h_1 = (_e26.xyz * 0.5); vec3 dd = mix(d_4, vec3(1e-12), lessThan(abs(d_4), vec3(1e-12))); vec3 sa = ((-(h_1) - o) / dd); vec3 sb = ((h_1 - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1.0); } else { float rad = min(h_1.x, h_1.z); float k_15 = ((shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0); float w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_3, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_4 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1.0)); if ((e_4.material.z > 0.0)) { uint shape_1 = uint(e_4.albedo.w); vec3 h_2 = (e_4.size.xyz * 0.5); float rad_1 = min(h_2.x, h_2.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_2 * h_2))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_11 = normalize(vec2((1.0 / max(0.001, (rad_1 * 0.5))), (1.0 / max(0.001, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_4.size.w), 0.0, 1.0), e_4.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_4 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_4.y; if (((hf * b_1) == 0.0)) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_2 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_2 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_2); float x_3 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_3 < 0.01) ? (1.0 - (x_3 * (0.5 - (x_3 * (0.16666667 - (x_3 / 24.0)))))) : ((1.0 - exp(-(x_3))) / x_3)); float top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 fog_light(uint n_3, vec3 p_4, vec3 dir_4) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l_1 = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_3].lights; bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_3 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l_1; float rim = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim, li.spot.y))); } } vec3 _e108 = l_1; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_4, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_6, vec2 ch) { float split = 0.0; bool local_9 = false; bool local_10 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = false; bool local_12 = false; FogEntryU e_5 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_5.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_5.to_local * vec4(d_6, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_6, _e28.xyz); bool edge = (e_5.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_5.material.y > 0.0)) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = (-(a_6) / b_3); } bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e160 = i_1; i_1 = (_e160 + 1u); } loop_init_4 = false; uint _e70 = i_1; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i_1; uint j = (_e75 & 3u); if (!((j == 0u))) { local_11 = (j == 3u); } else { local_11 = true; } bool _e88 = local_11; float x_4 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_12 = (j == 3u); } else { local_12 = true; } bool _e100 = local_12; float w_4 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_4 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_4) : x_4))); vec3 p_8 = (o_1 + (d_6 * t_4)); float _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_4))); uint _e137 = i_1; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_14, vec3 o_2, vec3 d_7, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_2 = 0u; bool local_13 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_3 = 0u; uint n_4 = 0u; float avail = 0.0; uint i_4 = 0u; uint i_5 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e72 = i_2; i_2 = (_e72 + 1u); } loop_init_5 = false; uint _e13 = i_2; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_2; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_13 = (byte == 0u); } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_16].to_local; vec2 _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_7, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_16; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e90 = i_3; i_3 = (_e90 + 1u); } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at[_e82]; uint _e85 = i_3; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } } bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e221 = n_4; n_4 = (_e221 + 1u); } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_4; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_4 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e153 = i_4; i_4 = (_e153 + 1u); } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_4; float _e113 = chords[_e110].y; uint _e114 = n_4; float _e117 = chords[_e114].y; uint _e119 = i_4; float _e122 = chords[_e119].x; uint _e123 = n_4; float _e126 = chords[_e123].x; uint _e131 = i_4; float _e134 = chords[_e131].y; uint _e135 = i_4; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_4; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_4; float _e158 = parts[_e155].w; float _e160 = avail; float f_2 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_5 = 0u; bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e218 = i_5; i_5 = (_e218 + 1u); } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_5; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_5; float _e180 = chords[_e177].y; uint _e181 = n_4; float _e184 = chords[_e181].y; uint _e186 = i_5; float _e189 = chords[_e186].x; uint _e190 = n_4; float _e193 = chords[_e190].x; uint _e198 = i_5; float _e201 = chords[_e198].y; uint _e202 = i_5; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_5; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_2))); } } } } } } bool loop_init_10 = true; while(true) { if (!loop_init_10) { uint _e252 = i_6; i_6 = (_e252 + 1u); } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_6; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_6; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_5 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_14 * t_5) + (_e258 * ((1.0 - t_5) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_15, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_6 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_6)); vec3 _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_15); } vec3 sky_fog_volumes(vec3 c_16, vec3 near_point, vec3 dir_5) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back_1 = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (near_point - (back_1 * (_e26 * vec4(near_point, 1.0)).z)) : _e22.xyz); uint _e44 = _group_1_binding_5_fs.counts.y; vec3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); float _e49 = _group_1_binding_5_fs.params.z; return mix(c_16, _e45, _e49); } float shadow_factor(uint i_7, vec3 world_5, vec3 n_geo_1, vec3 l_2) { uint part = 0u; uint c_17 = 0u; bool local_14 = false; bool local_15 = false; bool local_16 = false; float vis = 0.0; int dy = -1; int dx = 0; uint kind = _group_0_binding_1_fs.lights[i_7].info.x; vec4 _e14 = _group_0_binding_1_fs.lights[i_7].position; vec3 light_pos = _e14.xyz; uint _e21 = _group_0_binding_1_fs.lights[i_7].info.w; uint slot = min(_e21, 15u); vec4 params = _group_0_binding_2_fs.lights[slot].params; uint first = _group_0_binding_2_fs.lights[slot].info.x; uint _e40 = _group_0_binding_2_fs.lights[slot].info.y; uint count = max(_e40, 1u); mat4x4 _e45 = _group_0_binding_0_fs.view; float view_depth = -((_e45 * vec4(world_5, 1.0)).z); if ((kind == LIGHT_DIRECTIONAL)) { float _e60 = _group_0_binding_2_fs.lights[slot].fade.y; if ((view_depth > _e60)) { return 1.0; } part = (count - 1u); bool loop_init_11 = true; while(true) { if (!loop_init_11) { uint _e79 = c_17; c_17 = (_e79 + 1u); } loop_init_11 = false; uint _e67 = c_17; if ((_e67 < count)) { } else { break; } { uint _e73 = c_17; float _e75 = _group_0_binding_2_fs.lights[slot].splits[_e73]; if ((view_depth <= _e75)) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; vec4 texel = _group_0_binding_2_fs.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; float t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); vec3 p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1.0)) * t_6))) + (l_2 * (params.x * t_6))); if ((kind == LIGHT_OMNI)) { vec3 d_13 = (p_9 - light_pos); vec3 a_7 = abs(d_13); if ((a_7.x >= a_7.y)) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = ((d_13.x >= 0.0) ? 0u : 1u); } else { if ((a_7.y >= a_7.z)) { part = ((d_13.y >= 0.0) ? 2u : 3u); } else { part = ((d_13.z >= 0.0) ? 4u : 5u); } } } uint _e145 = part; uint tile = min((first + min(_e145, (count - 1u))), 15u); mat4x4 _e156 = _group_0_binding_2_fs.tiles[tile].view_proj; vec4 clip_1 = (_e156 * vec4(p_9, 1.0)); if ((clip_1.w <= 0.0)) { return 1.0; } vec3 ndc = (clip_1.xyz / vec3(clip_1.w)); if (!((abs(ndc.x) > 1.0))) { local_15 = (abs(ndc.y) > 1.0); } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = (ndc.z > 1.0); } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } vec4 rect = _group_0_binding_2_fs.tiles[tile].rect; vec2 uv_4 = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); vec2 auv = (rect.xy + (uv_4 * rect.zw)); float texel_uv = _group_0_binding_2_fs.atlas.x; vec2 lo_5 = (rect.xy + vec2((0.5 * texel_uv))); vec2 hi_4 = ((rect.xy + rect.zw) - vec2((0.5 * texel_uv))); float r_7 = params.z; if ((r_7 <= 0.0)) { float _e235 = textureLod(_group_0_binding_3_fs, vec3(clamp(auv, lo_5, hi_4), ndc.z), 0.0); vis = _e235; } else { float spread = (r_7 * texel_uv); bool loop_init_12 = true; while(true) { if (!loop_init_12) { int _e265 = dy; dy = (_e265 + 1); } loop_init_12 = false; int _e239 = dy; if ((_e239 <= 1)) { } else { break; } { dx = -1; bool loop_init_13 = true; while(true) { if (!loop_init_13) { int _e262 = dx; dx = (_e262 + 1); } loop_init_13 = false; int _e244 = dx; if ((_e244 <= 1)) { } else { break; } { int _e247 = dx; int _e249 = dy; vec2 tap = clamp((auv + (vec2(float(_e247), float(_e249)) * spread)), lo_5, hi_4); float _e255 = vis; float _e259 = textureLod(_group_0_binding_3_fs, vec3(tap, ndc.z), 0.0); vis = (_e255 + _e259); } } } } float _e267 = vis; vis = (_e267 / 9.0); } if ((kind == LIGHT_DIRECTIONAL)) { vec4 fade_1 = _group_0_binding_2_fs.lights[slot].fade; float _e277 = vis; vis = mix(_e277, 1.0, smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return mix(1.0, _e283, params.w); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_8 = abs(d_8); if ((a_8.x >= a_8.y)) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_8.y >= a_8.z)) { ma = a_8.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 probe_texel(uint row, vec3 fuv, uint level_1) { uint _e6 = _group_0_binding_7_fs.counts.z; float n_12 = float(max((_e6 >> level_1), 1u)); float lo_6 = (0.5 / n_12); float u_2 = clamp(fuv.y, lo_6, (1.0 - lo_6)); float v_7 = clamp(fuv.z, lo_6, (1.0 - lo_6)); vec2 uv_5 = vec2(((fuv.x + u_2) / 6.0), ((float(row) + v_7) / 8.0)); vec4 _e33 = textureLod(_group_3_binding_6_fs, vec2(uv_5), float(level_1)); return _e33.xyz; } vec3 probe_sample(uint row_1, vec3 d_9, float lod) { bool local_18 = false; uint _e6 = _group_0_binding_7_fs.counts.y; uint levels = max(_e6, 1u); float l_5 = clamp(lod, 0.0, float((levels - 1u))); uint m0_ = uint(l_5); float t_7 = (l_5 - float(m0_)); vec3 _e17 = probe_face_uv(d_9); vec3 _e18 = probe_texel(row_1, _e17, m0_); if (!((t_7 <= 0.0))) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } vec3 _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1.0 - t_7)) + (_e34 * t_7)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_6 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_6 = p_5.extents.xyz; float d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if ((d_14 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_14 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_15 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_15; } vec3 o_8 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_8 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_8 + (d_15 * t_8)) - p_6.offset.xyz); } vec4 probe_reflection(vec3 world_8, vec3 r_2, float roughness_2, uint probes) { vec3 acc = vec3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = _group_0_binding_7_fs.counts.x; uint count_1 = min(_e12, MAX_PROBES); uint _e18 = _group_0_binding_7_fs.counts.y; float lod_1 = (roughness_2 * float((max(_e18, 1u) - 1u))); bool loop_init_14 = true; while(true) { if (!loop_init_14) { uint _e57 = i_8; i_8 = (_e57 + 1u); } loop_init_14 = false; uint _e27 = i_8; if ((_e27 < count_1)) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = _group_0_binding_7_fs.probes[_e31]; if ((((probes >> p_10.info.w) & 1u) == 0u)) { continue; } float _e41 = probe_weight(p_10, world_8); if ((_e41 <= 0.0)) { continue; } vec3 _e44 = acc; vec3 _e47 = probe_lookup(p_10, world_8, r_2); vec3 _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); float _e54 = w_sum; w_sum = (_e54 + _e41); } } float _e59 = w_sum; if ((_e59 > 1.0)) { vec3 _e62 = acc; float _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1.0; } vec3 _e67 = acc; float _e68 = w_sum; return vec4(_e67, _e68); } vec4 probe_ambient(vec3 world_9, vec3 n_7, uint probes_1) { vec3 acc_1 = vec3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = false; vec3 c_18 = vec3(0.0); uint _e11 = _group_0_binding_7_fs.counts.x; uint count_2 = min(_e11, MAX_PROBES); uint _e17 = _group_0_binding_7_fs.counts.y; uint last = (max(_e17, 1u) - 1u); bool loop_init_15 = true; while(true) { if (!loop_init_15) { uint _e73 = i_9; i_9 = (_e73 + 1u); } loop_init_15 = false; uint _e24 = i_9; if ((_e24 < count_2)) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = _group_0_binding_7_fs.probes[_e28]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if ((_e47 <= 0.0)) { continue; } c_18 = p_11.ambient.xyz; if ((p_11.info.y == PROBE_AMBIENT_ENVIRONMENT)) { vec3 _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0.0)).xyz); vec3 _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } vec3 _e66 = acc_1; vec3 _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); float _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } } float _e75 = w_sum_1; if ((_e75 > 1.0)) { vec3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1.0; } vec3 _e83 = acc_1; float _e84 = w_sum_1; return vec4(_e83, _e84); } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } void fragment() { vec2 _e1 = UV; float r_8 = (length((_e1 - vec2(0.5))) * 2.0); float _e15 = _group_2_binding_0_fs.rings; float _e22 = _group_2_binding_0_fs.rings; float ring = (floor(((clamp((1.0 - r_8), 0.0, 1.0) * _e15) + 0.999)) / _e22); float _e26 = _group_2_binding_0_fs.lift; float strength = (ring * (1.0 - _e26)); vec3 _e35 = _group_2_binding_0_fs.shadow_color; ALBEDO = mix(vec3(1.0), _e35, strength); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_9 = transpose(_e1); vec3 t_9 = -((r_9 * m_3[3].xyz)); return mat4x4(vec4(r_9[0], 0.0), vec4(r_9[1], 0.0), vec4(r_9[2], 0.0), vec4(t_9, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = true; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back_2 = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back_2 * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back_2 * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_25 = false; bool local_26 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } bool _e12 = local_25; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = (_e18 < _e20); } else { local_26 = false; } bool _e23 = local_26; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_5 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_3 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_3), 0.0); float vh_2 = max(dot(v_3, h_3), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } vec4 hedra_light_dir(uint i_11, vec3 world_12) { float atten_1 = 0.0; LightU li_1 = _group_0_binding_1_fs.lights[i_11]; if ((li_1.info.x == LIGHT_DIRECTIONAL)) { return vec4(-(li_1.direction.xyz), 1.0); } vec3 rel_1 = (li_1.position.xyz - world_12); float d_16 = length(rel_1); vec3 l_7 = (rel_1 / vec3(max(d_16, 1e-6))); float _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if ((li_1.info.x == LIGHT_SPOT)) { float cone = li_1.spot.x; float scos = max(dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = max(0.0001, ((1.0 - scos) / max((1.0 - cone), 1e-6))); float _e49 = atten_1; atten_1 = (_e49 * (1.0 - pow(rim_1, li_1.spot.y))); } float _e56 = atten_1; return vec4(l_7, _e56); } float hedra_shadow(uint i_12, vec3 l_4) { bool local_28 = false; if (false) { uint _e10 = _group_0_binding_1_fs.lights[i_12].info.y; local_28 = (_e10 != LIGHT_SHADOWED); } else { local_28 = true; } bool _e14 = local_28; if (_e14) { return 1.0; } vec3 _e17 = hedra_world; vec3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } vec3 hedra_ambient(vec3 n_10, vec3 v_4, vec3 diffuse_2, vec3 f0_3, float roughness_3, float metallic) { vec3 ambient = vec3(0.0); vec3 diffuse_amb = vec3(0.0); vec3 spec_amb = vec3(0.0); vec3 dif = vec3(0.0); vec3 dif_1 = vec3(0.0); vec3 dif_2 = vec3(0.0); vec3 world_13 = hedra_world; float nv_5 = max(dot(n_10, v_4), 0.0001); vec3 f_amb = (f0_3 + ((max(vec3((1.0 - roughness_3)), f0_3) - f0_3) * pow((1.0 - nv_5), 5.0))); vec4 _e25 = gi_diffuse(n_10, false, vec3(0.0)); uint _e30 = _group_0_binding_5_fs.flags.x; if (((_e30 & SKY_IBL) != 0u)) { float _e38 = _group_0_binding_5_fs.ibl.x; float _e42 = _group_0_binding_5_fs.sun.w; float scale = (_e38 * _e42); vec4 _e46 = _group_0_binding_5_fs.ambient; diffuse_amb = _e46.xyz; uint _e52 = _group_0_binding_5_fs.flags.x; if (((_e52 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e59 = _group_0_binding_5_fs.ambient; vec3 _e61 = sky_dir(n_10); vec3 _e62 = sh_irradiance(_e61); float _e67 = _group_0_binding_5_fs.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if ((_e25.w > 0.0)) { diffuse_amb = _e25.xyz; } vec4 _e75 = _group_0_binding_5_fs.ambient; spec_amb = _e75.xyz; uint _e81 = _group_0_binding_5_fs.flags.x; if (((_e81 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e88 = sky_dir(reflect(-(v_4), n_10)); vec3 _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { uint _e94 = _group_0_binding_5_fs.flags.x; if (((_e94 & SKY_REFLECT_OFF) != 0u)) { spec_amb = vec3(0.0); } } vec2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = _group_0_binding_7_fs.counts.x; if ((_e105 > 0u)) { uint _e113 = _group_1_binding_0_fs.extra.z; vec4 _e114 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e113); vec3 _e115 = spec_amb; vec3 spec_1 = ((_e115 * (1.0 - _e114.w)) + _e114.xyz); vec3 _e122 = diffuse_amb; dif = _e122; if ((_e25.w <= 0.0)) { uint _e130 = _group_1_binding_0_fs.extra.z; vec4 _e131 = probe_ambient(world_13, n_10, _e130); vec3 _e132 = diffuse_amb; dif = ((_e132 * (1.0 - _e131.w)) + _e131.xyz); } vec3 _e139 = dif; ambient = ((diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } else { vec3 _e154 = diffuse_amb; vec3 _e156 = spec_amb; ambient = ((diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } } else { uint _e173 = _group_0_binding_1_fs.counts.y; if (((_e173 & ENV_AMBIENT_SKY) != 0u)) { vec4 _e180 = _group_0_binding_1_fs.up; vec3 up = _e180.xyz; vec4 _e184 = _group_0_binding_1_fs.sky_top; vec4 _e188 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e184.xyz + _e188.xyz) * 0.5); vec4 _e195 = _group_0_binding_1_fs.ground_horizon; vec4 _e199 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e195.xyz + _e199.xyz) * 0.5); vec3 irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up) * 0.5) + 0.5), 0.0, 1.0)); vec3 _e215 = sky(reflect(-(v_4), n_10)); vec3 blurred = mix(_e215, sky_avg, roughness_3); uint _e220 = _group_0_binding_7_fs.counts.x; if ((_e220 > 0u)) { uint _e228 = _group_1_binding_0_fs.extra.z; vec4 _e229 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e228); float _e233 = _group_0_binding_1_fs.ambient.w; vec3 spec_2 = (((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e249 = _group_1_binding_0_fs.extra.z; vec4 _e250 = probe_ambient(world_13, n_10, _e249); float _e254 = _group_0_binding_1_fs.ambient.w; dif_1 = (((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz); } vec3 _e262 = dif_1; ambient = ((diffuse_2 * _e262) + (spec_2 * f_amb)); } else { if ((_e25.w > 0.0)) { float _e275 = _group_0_binding_1_fs.ambient.w; ambient = ((diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { float _e284 = _group_0_binding_1_fs.ambient.w; ambient = (((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284); } } } else { uint _e289 = _group_0_binding_7_fs.counts.x; if ((_e289 > 0u)) { uint _e297 = _group_1_binding_0_fs.extra.z; vec4 _e298 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e297); vec4 _e301 = _group_0_binding_1_fs.ambient; vec3 spec_3 = ((_e301.xyz * (1.0 - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e317 = _group_1_binding_0_fs.extra.z; vec4 _e318 = probe_ambient(world_13, n_10, _e317); vec4 _e321 = _group_0_binding_1_fs.ambient; dif_2 = ((_e321.xyz * (1.0 - _e318.w)) + _e318.xyz); } vec3 _e329 = dif_2; ambient = ((diffuse_2 * _e329) + (spec_3 * f_amb)); } else { if ((_e25.w > 0.0)) { vec4 _e340 = _group_0_binding_1_fs.ambient; ambient = ((diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb)); } else { vec4 _e346 = _group_0_binding_1_fs.ambient; ambient = (_e346.xyz * (diffuse_2 + f_amb)); } } } } vec3 _e350 = ambient; return _e350; } vec3 hedra_fog(vec3 c_in_1, vec3 v_5) { vec3 c_20 = vec3(0.0); c_20 = c_in_1; if (HEDRA_FOG_DISABLED) { vec3 _e4 = c_20; return _e4; } uint _e8 = _group_0_binding_5_fs.flags.x; if (((_e8 & SKY_FOG) != 0u)) { vec3 _e13 = c_20; vec3 _e15 = hedra_world; vec3 _e17 = surface_fog(_e13, _e15, -(v_5)); c_20 = _e17; } uint _e21 = _group_1_binding_0_fs.decals.w; if ((_e21 != 0u)) { vec3 _e24 = c_20; vec3 _e26 = hedra_world; uint _e30 = _group_1_binding_0_fs.decals.w; vec3 _e31 = fog_volumes(_e24, _e26, _e30); c_20 = _e31; } vec3 _e32 = c_20; return _e32; } vec3 hedra_lit(vec4 clip) { DecalSurface surf_1 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); vec3 c_21 = vec3(0.0); uint k_11 = 0u; bool local_29 = false; vec3 radiance_3 = vec3(0.0); bool local_30 = false; bool local_31 = false; vec3 ambient_1 = vec3(0.0); bool local_32 = false; vec3 n_geo_3 = hedra_n_geo; vec3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; vec3 _e18 = hedra_n; vec3 _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0.0, 1.0), clamp(_e11, 0.045, 1.0), _e16, _e18, _e20); uint _e26 = _group_1_binding_0_fs.decals.z; if ((_e26 > 0u)) { vec3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; vec3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; mat4x4 _e45 = _group_0_binding_0_fs.view; mat3x3 _e46 = hedra_mat3_(_e45); vec3 _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); vec3 base = surf_1.base; vec3 diffuse_3 = (base * (1.0 - metallic_1)); float _e64 = SPECULAR; float _e68 = SPECULAR; vec3 f0_4 = mix(vec3(((0.16 * _e64) * _e68)), base, metallic_1); vec3 n_13 = surf_1.normal; vec3 _e75 = hedra_world; vec3 _e76 = hedra_view_dir(_e75); mat4x4 _e79 = _group_0_binding_0_fs.view; mat3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = mix(1.0, _e82, _e84); DIFFUSE_LIGHT = vec3(0.0); SPECULAR_LIGHT = vec3(0.0); uint _e96 = object_light_count(); bool loop_init_16 = true; while(true) { if (!loop_init_16) { uint _e238 = k_11; k_11 = (_e238 + 1u); } loop_init_16 = false; uint _e99 = k_11; if ((_e99 < _e96)) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101); LightU li_2 = _group_0_binding_1_fs.lights[_e102]; vec3 _e108 = hedra_world; vec4 _e109 = hedra_light_dir(_e102, _e108); vec3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_29 = (atten_2 > 0.0); } else { local_29 = true; } bool _e123 = local_29; if (_e123) { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if ((_e142 > 0.0)) { float rim_light = pow(max(0.0001, (1.0 - max(dot(n_13, _e76), 0.0001))), max(0.0, ((1.0 - roughness_4) * 16.0))); vec3 _e159 = c_21; float _e164 = RIM; float _e170 = RIM_TINT; c_21 = (_e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1.0), base, _e170))); } if ((atten_2 > 0.0)) { radiance_3 = (li_2.color.xyz * atten_2); if ((li_2.info.y == LIGHT_SHADOWED)) { local_30 = false; } else { local_30 = false; } bool _e188 = local_30; if (_e188) { vec3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if (true) { local_31 = false; } else { local_31 = false; } bool _e201 = local_31; if (_e201) { vec3 _e202 = c_21; vec3 _e203 = radiance_3; vec3 _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_21 = (_e202 + _e206); } else { vec3 _e208 = c_21; vec3 _e209 = radiance_3; vec3 _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = (_e208 + _e212); } vec3 _e215 = BACKLIGHT; if (any(greaterThan(_e215, vec3(0.0)))) { float nl_4 = max(min(dot(n_13, l_8), 1.0), 0.0); vec3 _e225 = c_21; vec3 _e226 = radiance_3; vec3 _e229 = BACKLIGHT; c_21 = (_e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987)))); } } } } if (HEDRA_HAS_LIGHT) { vec3 _e242 = DIFFUSE_LIGHT; vec3 _e249 = SPECULAR_LIGHT; c_21 = ((((_e242 * base) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct)); } else { float _e253 = AO_LIGHT_AFFECT; if ((_e253 > 0.0)) { vec3 _e256 = c_21; c_21 = (_e256 * ao_direct); } } if (true) { vec3 _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } uint _e266 = _group_0_binding_1_fs.counts.y; if (((_e266 & ENV_SSAO) != 0u)) { bool _e273 = hedra_transparent(); local_32 = !(_e273); } else { local_32 = false; } bool _e276 = local_32; if (_e276) { vec4 _e282 = texelFetch(_group_0_binding_6_fs, ivec2(floor(clip.xy)), 0); float ssao = _e282.x; vec3 _e284 = c_21; float _e286 = surf_1.occlusion; float _e291 = _group_0_binding_1_fs.tone.z; float _e295 = _group_0_binding_1_fs.tone.w; c_21 = (_e284 * mix(1.0, min(ssao, _e286), (_e291 * _e295))); vec3 _e300 = c_21; vec3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_21 = (_e300 + (_e301 * min(_e303, ssao))); } else { vec3 _e307 = c_21; vec3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_21 = (_e307 + (_e308 * _e310)); } vec3 _e313 = c_21; vec3 _e315 = surf_1.emission; c_21 = (_e313 + _e315); vec3 _e317 = c_21; vec3 _e318 = hedra_fog(_e317, _e76); vec3 _e319 = tonemap(_e318); return _e319; } vec4 hedra_output(vec3 c_22) { vec3 rgb = vec3(0.0); rgb = c_22; if (false) { vec3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } vec3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); vec4 o_9 = vec4(_e7, (_e10 ? _e9 : 1.0)); uint _e17 = _group_0_binding_1_fs.counts.y; if (((_e17 & ENV_HDR) != 0u)) { return vec4(max(o_9.xyz, vec3(0.0)), clamp(o_9.w, 0.0, 1.0)); } vec4 k_17 = clamp(o_9, vec4(0.0), vec4(1.0)); uint _e39 = _group_0_binding_0_fs.params.z; if (((_e39 & HEDRA_ENCODE_SRGB) != 0u)) { vec3 _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } vec3 hedra_bindings() { vec2 uv_6 = vec2(0.5); vec4 _e5 = textureLod(_group_3_binding_1_fs, vec2(uv_6), 0.0); vec4 _e11 = textureLod(_group_3_binding_4_fs, vec3(uv_6, 0), 0.0); vec4 _e17 = textureLod(_group_1_binding_6_fs, vec2(uv_6), 0.0); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } void main() { CustomOut in_3 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing = gl_FrontFacing; vec3 c = vec3(0.0); hedra_fragment(in_3, facing); bool _e3 = hedra_culled(in_3.flags); if (_e3) { discard; } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if ((_e7 <= 0.0)) { discard; } if (HEDRA_UNSHADED) { vec3 _e13 = ALBEDO; vec3 _e15 = hedra_world; vec3 _e16 = hedra_view_dir(_e15); vec3 _e17 = hedra_fog(_e13, _e16); vec3 _e18 = tonemap(_e17); c = _e18; } else { vec3 _e20 = hedra_lit(in_3.clip); c = _e20; } uint _e24 = _group_0_binding_1_fs.counts.w; if ((_e24 == HEDRA_NEVER)) { vec3 _e27 = c; vec3 _e28 = hedra_bindings(); c = (_e27 + _e28); } uint _e33 = _group_0_binding_0_fs.params.x; if ((_e33 == SHADE_LIT)) { vec3 _e36 = c; vec3 _e37 = item_fade(_e36); vec3 _e38 = emerge_tint(_e37, _e7); c = _e38; } vec3 _e39 = c; vec4 _e40 = hedra_output(_e39); _fs2p_location0 = _e40; return; } fs_custom_depthmain‚#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 shadow_color; float lift; float rings; float hedra_pad0_; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 3u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } void fragment() { vec2 _e1 = UV; float r_7 = (length((_e1 - vec2(0.5))) * 2.0); float _e15 = _group_2_binding_0_fs.rings; float _e22 = _group_2_binding_0_fs.rings; float ring = (floor(((clamp((1.0 - r_7), 0.0, 1.0) * _e15) + 0.999)) / _e22); float _e26 = _group_2_binding_0_fs.lift; float strength = (ring * (1.0 - _e26)); vec3 _e35 = _group_2_binding_0_fs.shadow_color; ALBEDO = mix(vec3(1.0), _e35, strength); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_8 = transpose(_e1); vec3 t_4 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0.0), vec4(r_8[1], 0.0), vec4(r_8[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = true; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_4 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_1 = gl_FrontFacing; bool local = false; bool local_1 = false; hedra_fragment(in_4, facing_1); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { discard; } float _e25 = emerge_reveal(in_4.world, vec2(-1.0)); if ((_e25 <= 0.0)) { discard; } else { return; } }  fs_custom_idmainú„#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 shadow_color; float lift; float rings; float hedra_pad0_; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 3u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } void fragment() { vec2 _e1 = UV; float r_7 = (length((_e1 - vec2(0.5))) * 2.0); float _e15 = _group_2_binding_0_fs.rings; float _e22 = _group_2_binding_0_fs.rings; float ring = (floor(((clamp((1.0 - r_7), 0.0, 1.0) * _e15) + 0.999)) / _e22); float _e26 = _group_2_binding_0_fs.lift; float strength = (ring * (1.0 - _e26)); vec3 _e35 = _group_2_binding_0_fs.shadow_color; ALBEDO = mix(vec3(1.0), _e35, strength); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_8 = transpose(_e1); vec3 t_4 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0.0), vec4(r_8[1], 0.0), vec4(r_8[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = true; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_25 = false; bool local_26 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } bool _e12 = local_25; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = (_e18 < _e20); } else { local_26 = false; } bool _e23 = local_26; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_5 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_2 = gl_FrontFacing; bool local_2 = false; IdOut out_ = IdOut(vec4(0.0)); hedra_fragment(in_5, facing_2); bool _e3 = hedra_culled(in_5.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0.0); } else { local_2 = true; } bool _e14 = local_2; if (_e14) { discard; } uint id = _group_1_binding_0_fs.params.z; uint _e24 = _group_1_binding_0_fs.params.x; uint _e33 = _group_1_binding_0_fs.params.y; uint bits = (((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u)); out_.id = (vec4(float((id & 255u)), float(((id >> 8u) & 255u)), float(((id >> 16u) & 255u)), float(bits)) / vec4(255.0)); IdOut _e58 = out_; _fs2p_location0 = _e58.id; return; } fs_custom_normal_depthmain›†#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec3 shadow_color; float lift; float rings; float hedra_pad0_; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 3u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; layout(location = 1) out vec4 _fs2p_location1; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } void fragment() { vec2 _e1 = UV; float r_7 = (length((_e1 - vec2(0.5))) * 2.0); float _e15 = _group_2_binding_0_fs.rings; float _e22 = _group_2_binding_0_fs.rings; float ring = (floor(((clamp((1.0 - r_7), 0.0, 1.0) * _e15) + 0.999)) / _e22); float _e26 = _group_2_binding_0_fs.lift; float strength = (ring * (1.0 - _e26)); vec3 _e35 = _group_2_binding_0_fs.shadow_color; ALBEDO = mix(vec3(1.0), _e35, strength); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_8 = transpose(_e1); vec3 t_4 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0.0), vec4(r_8[1], 0.0), vec4(r_8[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = true; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_25 = false; bool local_26 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } bool _e12 = local_25; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = (_e18 < _e20); } else { local_26 = false; } bool _e23 = local_26; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_6 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_3 = gl_FrontFacing; bool local_3 = false; HedraNormalDepthOut out_1 = HedraNormalDepthOut(vec4(0.0), vec4(0.0)); hedra_fragment(in_6, facing_3); bool _e3 = hedra_culled(in_6.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0.0); } else { local_3 = true; } bool _e14 = local_3; if (_e14) { discard; } mat4x4 _e17 = _group_0_binding_0_fs.view; mat3x3 _e18 = hedra_mat3_(_e17); vec3 _e20 = hedra_n; vec3 n_view = normalize((_e18 * _e20)); float _e24 = METALLIC; float metallic_1 = clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; vec3 _e37 = ALBEDO; vec3 f0_4 = mix(vec3(((0.16 * _e29) * _e33)), _e37, metallic_1); mat4x4 _e43 = _group_0_binding_0_fs.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_4, vec3(0.0), vec3(1.0)), clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; _fs2p_location0 = _e63.normal_depth; _fs2p_location1 = _e63.surface; return; }  @Ð Ð/ ,@  {Ðþ—4ÌhÜ©Z„åŸþh�ƒcàÄèHoC‰5¢üïGlobals_block_0VertexObjectU_block_1Vertex HedraParams_block_2VertexSkinU_block_2Vertex HedraParams_block_3VertexSkyU_block_4FragmentShadowU_block_3FragmentGlobals_block_0Fragment HedraParams_block_8FragmentFogU_block_7FragmentDecalU_block_6FragmentObjectU_block_1FragmentProbeU_block_5FragmentLitU_block_2Fragment_group_3_binding_4_fs_group_0_binding_6_fs_group_3_binding_6_fs_group_1_binding_3_fs_group_3_binding_1_fs_group_0_binding_3_fs_group_1_binding_6_fs_group_3_binding_0_fs HedraParams_block_2Fragment vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depth¦\// language: metal2.2 #include #include using metal::uint; struct Globals { metal::float4x4 view; metal::float4x4 proj; metal::float4x4 view_proj; metal::float4 camera_pos; metal::float4 viewport; metal::float4 wire_color; metal::float4 select_color; metal::float4 active_color; metal::float4 grid; metal::uint4 params; metal::float4 fparams; }; struct type_5 { metal::float4 inner[3]; }; struct ObjectU { metal::float4x4 model; metal::float4x4 normal; metal::float4 color; metal::uint4 params; metal::uint4 extra; type_5 gi; metal::uint4 decals; metal::uint4 lights; }; struct type_8 { metal::float3 inner[10]; }; struct LightU { metal::float4 color; metal::float4 position; metal::float4 direction; metal::float4 spot; metal::uint4 info; }; struct type_9 { LightU inner[64]; }; struct LitU { metal::uint4 counts; metal::float4 ambient; metal::float4 tone; metal::float4 up; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_horizon; metal::float4 ground_bottom; metal::float4x4 inv_view_proj; metal::uint4 dirs; type_9 lights; }; struct ShadowLightU { metal::float4 params; metal::float4 splits; metal::float4 fade; metal::uint4 info; }; struct ShadowTileU { metal::float4x4 view_proj; metal::float4 rect; metal::float4 texel; }; struct type_10 { ShadowLightU inner[16]; }; struct type_11 { ShadowTileU inner[16]; }; struct ShadowU { metal::float4 atlas; type_10 lights; type_11 tiles; }; struct SunU { metal::float4 direction; metal::float4 color; }; struct type_14 { SunU inner[4]; }; struct type_15 { metal::float4 inner[9]; }; struct SkyU { metal::uint4 flags; metal::float4x4 to_sky; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_bottom; metal::float4 ground_horizon; metal::float4 sun; metal::float4 ambient; metal::float4 ibl; metal::float4 fog_color; metal::float4 fog; metal::float4 fog_depth; metal::float4 fog_origin; type_14 suns; type_15 sh; }; struct ProbeEntryU { metal::float4x4 to_local; metal::float4 extents; metal::float4 offset; metal::float4 ambient; metal::uint4 info; }; struct type_20 { ProbeEntryU inner[8]; }; struct ProbeU { metal::uint4 counts; type_20 probes; }; struct DecalEntryU { metal::float4x4 to_local; metal::float4 modulate; metal::float4 fades; metal::float4 axis_x; metal::float4 axis_y; metal::float4 axis_z; metal::uint4 layers; metal::uint4 flags; }; struct type_21 { DecalEntryU inner[64]; }; struct DecalU { metal::uint4 counts; metal::float4 lod; type_21 entries; }; struct DecalSurface { metal::packed_float3 base; float metallic; float roughness; float occlusion; char _pad4[8]; metal::float3 normal; metal::float3 emission; }; struct VsIn { metal::float3 pos; metal::float3 normal; metal::float2 uv; uint flags; char _pad4[4]; metal::float4 tangent; float weight; char _pad6[12]; }; struct InstIn { metal::float4 row0_; metal::float4 row1_; metal::float4 row2_; metal::float4 color; }; struct FogEntryU { metal::float4x4 to_local; metal::float4 size; metal::float4 material; metal::float4 albedo; metal::float4 emission; metal::uint4 lights; }; struct type_26 { metal::float4 inner[16]; }; struct type_27 { FogEntryU inner[16]; }; struct FogU { metal::uint4 counts; metal::float4 params; metal::float4 ambient; metal::float4 up; type_26 light_fog; type_27 entries; }; struct type_28 { uint inner[4]; }; struct type_29 { metal::float2 inner[4]; }; struct type_30 { metal::float4 inner[4]; }; struct type_31 { metal::float4 inner[765]; }; struct SkinU { type_31 rows; }; struct SkinIn { metal::uint4 joints; metal::float4 weights; }; struct SkinRows { metal::float4 r0_; metal::float4 r1_; metal::float4 r2_; }; struct HedraInstExtra { metal::float4 custom; float id; char _pad2[12]; }; struct CustomOut { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; metal::float4 color; metal::float2 uv2_; uint instance_id; char _pad9[4]; metal::float4 hedra_v0_; metal::float4 hedra_v1_; metal::float4 hedra_v2_; metal::float4 hedra_v3_; }; struct IdOut { metal::float4 id; }; struct HedraParams { metal::packed_float3 shadow_color; float lift; float rings; float hedra_pad0_; metal::float2 snap_resolution; }; struct HedraNormalDepthOut { metal::float4 normal_depth; metal::float4 surface; }; constant uint OBJ_HAS_WEIGHTS = 1u; constant uint OBJ_MIRRORED = 2u; constant uint SHADE_SOLID = 0u; constant uint SHADE_MATCAP = 1u; constant uint SHADE_NORMALS = 2u; constant uint SHADE_FACE_ORIENT = 3u; constant uint SHADE_RANDOM = 4u; constant uint SHADE_MATERIAL = 5u; constant uint SHADE_UV_CHECKER = 6u; constant uint SHADE_WEIGHTS = 7u; constant uint SHADE_LIT = 8u; constant uint SHADE_LIGHTMAP = 9u; constant uint SHADE_LIGHT_COUNT = 10u; constant uint OV_SELECTION = 1u; constant uint OV_SEAMS = 2u; constant uint OV_SHARP = 4u; constant uint F_SELECTED = 1u; constant uint F_HIDDEN = 2u; constant uint F_SEAM = 4u; constant uint F_SHARP = 8u; constant uint F_MESH = 16u; constant uint F_FADE = 32u; constant uint F_NO_PULL = 64u; constant bool SPEC_TEX_BASE = true; constant bool SPEC_TEX_NORMAL = true; constant bool SPEC_TEX_MR = true; constant bool SPEC_TEX_EMISSION = true; constant bool SPEC_TEX_OCCLUSION = true; constant bool SPEC_VERTEX_COLOR = true; constant bool SPEC_EXT = true; constant bool SPEC_UNLIT = true; constant bool SPEC_ALPHA_MASK = true; constant bool SPEC_ALPHA_BLEND = true; constant bool SPEC_CLEARCOAT = true; constant bool SPEC_SHEEN = true; constant bool SPEC_TRANSMISSION = true; constant bool SPEC_IRIDESCENCE = true; constant bool SPEC_ANISOTROPY = true; constant bool SPEC_DIFFUSE_TRANSMISSION = true; constant bool SPEC_VOLUME = true; constant bool SPEC_DISPERSION = true; constant bool SPEC_EXT_LAYERS = true; constant bool SPEC_ROUGHNESS_LAYER = true; constant bool SPEC_LIT = true; constant bool SPEC_LIGHTS = true; constant bool SPEC_SHADOWS = true; constant bool SPEC_DECALS = true; constant bool SPEC_FOG = true; constant bool SPEC_FOG_VOLUMES = true; constant bool SPEC_PROBES = true; constant bool SPEC_PROBE_GI = true; constant bool SPEC_SSAO = true; constant bool SPEC_SCREEN_REFRACTION = true; constant bool SPEC_EMERGE = true; constant bool SPEC_FADE = true; constant bool SPEC_FACE_FLAGS = true; constant bool SPEC_AMBIENT_FLAT = true; constant bool SPEC_AMBIENT_GRADIENT = true; constant bool SPEC_AMBIENT_SKY = true; constant bool SPEC_MATERIAL_MODE = true; constant bool SPEC_OTHER_MODES = true; constant float PI = 3.1415927; constant float TAU = 6.2831855; constant float E = 2.7182817; constant uint HEDRA_BLEND_MIX = 0u; constant uint HEDRA_BLEND_PREMUL_ALPHA = 4u; constant uint HEDRA_CULL_FRONT = 1u; constant uint HEDRA_DIFFUSE_LAMBERT = 0u; constant uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; constant uint HEDRA_DIFFUSE_BURLEY = 2u; constant uint HEDRA_DIFFUSE_TOON = 3u; constant uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; constant uint HEDRA_SPECULAR_TOON = 1u; constant uint HEDRA_SPECULAR_DISABLED = 2u; constant uint HEDRA_ENCODE_SRGB = 2u; constant uint HEDRA_NEVER = 4294967295u; constant uint MAX_FRAME_LIGHTS = 64u; constant uint MAX_OBJECT_LIGHTS = 8u; constant uint MAX_SHADOW_LIGHTS = 16u; constant uint MAX_POOL_DIRECTIONAL = 8u; constant type_8 LIGHT_COUNT_COLORS = type_8 {{metal::float3(0.352941, 0.352941, 0.352941), metal::float3(0.168627, 0.247059, 0.6), metal::float3(0.129412, 0.4, 0.67451), metal::float3(0.101961, 0.623529, 0.721569), metal::float3(0.121569, 0.631373, 0.529412), metal::float3(0.301961, 0.733333, 0.352941), metal::float3(0.65098, 0.831373, 0.227451), metal::float3(0.94902, 0.784314, 0.058824), metal::float3(0.94902, 0.556863, 0.058824), metal::float3(0.878431, 0.129412, 0.541176)}}; constant uint LIGHT_DIRECTIONAL = 0u; constant uint LIGHT_OMNI = 1u; constant uint LIGHT_SPOT = 2u; constant uint LIGHT_BAKE_DISABLED = 0u; constant uint LIGHT_BAKE_STATIC = 1u; constant uint LIGHT_BAKE_DYNAMIC = 2u; constant uint TONEMAP_LINEAR = 0u; constant uint TONEMAP_REINHARD = 1u; constant uint TONEMAP_FILMIC = 2u; constant uint TONEMAP_ACES = 3u; constant uint TONEMAP_AGX = 4u; constant uint ENV_SKY = 1u; constant uint ENV_AMBIENT_SKY = 2u; constant uint ENV_SSAO = 4u; constant uint ENV_HDR = 8u; constant uint ENV_SCREEN_REFRACTION = 16u; constant uint LIGHT_SHADOWED = 1u; constant uint LIGHT_BAKED_STATIC = 1u; constant uint SHADOW_TILES = 16u; constant uint SKY_DRAW_PROCEDURAL = 1u; constant uint SKY_DRAW_PANORAMA = 2u; constant uint SKY_PANORAMA_FILTER = 4u; constant uint SKY_IBL = 8u; constant uint SKY_AMBIENT_SKY = 16u; constant uint SKY_REFLECT_RADIANCE = 32u; constant uint SKY_REFLECT_OFF = 64u; constant uint SKY_FOG = 128u; constant uint SKY_FOG_DEPTH = 256u; constant uint SKY_SUNS = 4u; constant uint OBJ_LIGHTMAP = 4u; constant uint OBJ_PROBE_GI = 8u; constant uint PROBE_BOX = 1u; constant uint PROBE_INTERIOR = 2u; constant uint MAX_PROBES = 8u; constant uint PROBE_AMBIENT_DISABLED = 0u; constant uint PROBE_AMBIENT_ENVIRONMENT = 1u; constant uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; constant uint MAX_FRAME_DECALS = 64u; constant uint MAX_OBJECT_DECALS = 8u; constant uint DECAL_LIVE_ALBEDO = 1u; constant uint DECAL_LIVE_NORMAL = 2u; constant uint DECAL_LIVE_ORM = 4u; constant uint DECAL_LIVE_EMISSION = 8u; constant uint F_INSTANCE_MIRRORED = 128u; constant uint OBJ_EMERGE = 32u; constant float EMERGE_SCALE = 1.3; constant float EMERGE_EDGE = 0.8; constant float EMERGE_DITHER = 0.12; constant uint OBJ_FADE = 64u; constant uint MAX_FRAME_FOG_VOLUMES = 16u; constant uint MAX_OBJECT_FOG_VOLUMES = 4u; constant uint FOG_SHAPE_ELLIPSOID = 0u; constant uint FOG_SHAPE_CONE = 1u; constant uint FOG_SHAPE_CYLINDER = 2u; constant uint FOG_SHAPE_BOX = 3u; constant uint FOG_SHAPE_WORLD = 4u; constant float FOG_SKY_DISTANCE = 1000000.0; constant uint FOG_LIST_ALL = 2147483648u; constant float FOG_GL_X0_ = 0.8611363; constant float FOG_GL_X1_ = 0.339981; constant float FOG_GL_W0_ = 0.3478548; constant float FOG_GL_W1_ = 0.6521452; constant uint OBJ_SKINNED = 16u; constant uint SKIN_JOINTS = 255u; constant bool HEDRA_UNSHADED = true; constant bool HEDRA_HAS_LIGHT = false; constant bool HEDRA_USES_POSITION = false; constant bool HEDRA_SKIP_VERTEX_TRANSFORM = true; constant bool HEDRA_WORLD_VERTEX_COORDS = false; constant bool HEDRA_AMBIENT_LIGHT_DISABLED = false; constant bool HEDRA_FOG_DISABLED = true; constant bool HEDRA_SHADOWS_DISABLED = true; constant bool HEDRA_ALPHA = false; constant bool HEDRA_ALPHA_SCISSOR = false; constant uint HEDRA_DIFFUSE = 0u; constant uint HEDRA_SPECULAR = 2u; constant uint HEDRA_BLEND = 3u; constant uint HEDRA_CULL = 2u; metal::float3 srgb_to_linear( metal::float3 c_1 ) { metal::float3 lo = c_1 / metal::float3(12.92); metal::float3 hi = metal::pow((c_1 + metal::float3(0.055)) / metal::float3(1.055), metal::float3(2.4)); return metal::select(hi, lo, c_1 <= metal::float3(0.04045)); } metal::float4 element_color( uint flags, metal::float4 fallback, constant Globals& G, constant ObjectU& O ) { bool local_4 = {}; bool local_5 = {}; if ((flags & F_MESH) == 0u) { return fallback; } uint overlays = G.params.y; uint _e13 = O.params.w; bool edit_object = _e13 == 1u; if ((flags & F_SEAM) != 0u) { local_4 = (overlays & OV_SEAMS) != 0u; } else { local_4 = false; } bool _e27 = local_4; if (_e27) { metal::float3 _e32 = srgb_to_linear(metal::float3(0.86, 0.0, 0.0)); return metal::float4(_e32, 1.0); } if ((flags & F_SHARP) != 0u) { local_5 = (overlays & OV_SHARP) != 0u; } else { local_5 = false; } bool _e46 = local_5; if (_e46) { metal::float3 _e51 = srgb_to_linear(metal::float3(0.0, 0.85, 0.9)); return metal::float4(_e51, 1.0); } if ((overlays & OV_SELECTION) != 0u) { if (edit_object) { if ((flags & F_SELECTED) != 0u) { metal::float4 _e64 = G.select_color; return _e64; } metal::float4 _e67 = G.wire_color; return _e67; } uint _e71 = O.params.x; if (_e71 == 1u) { metal::float4 _e76 = G.select_color; metal::float4 _e79 = G.active_color; uint _e83 = O.params.y; return (_e83 == 1u) ? _e79 : _e76; } } metal::float4 _e89 = G.wire_color; return _e89; } metal::float4 to_view( metal::float3 p, float pull, constant Globals& G, constant ObjectU& O ) { metal::float4 v = {}; metal::float4x4 _e4 = G.view; metal::float4x4 _e7 = O.model; v = (_e4 * _e7) * metal::float4(p, 1.0); float _e15 = v.z; v.z = _e15 * (1.0 - pull); metal::float4 _e19 = v; return _e19; } metal::float3 linear_to_srgb( metal::float3 c_2 ) { metal::float3 lo_1 = c_2 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(c_2, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, c_2 <= metal::float3(0.0031308)); } metal::float4 target_color( metal::float4 c_3, constant Globals& G ) { metal::float4 k_12 = metal::clamp(c_3, metal::float4(0.0), metal::float4(1.0)); float _e9 = G.fparams.w; if (_e9 > 0.5) { metal::float3 _e13 = linear_to_srgb(k_12.xyz); return metal::float4(_e13, k_12.w); } return k_12; } uint object_light_count( constant ObjectU& O ) { uint _e3 = O.lights.z; return metal::min(_e3, MAX_OBJECT_LIGHTS); } uint object_light( uint k, constant ObjectU& O ) { uint _e4 = O.lights.y; uint _e8 = O.lights.x; uint word = (k < 4u) ? _e8 : _e4; return metal::min((word >> ((k & 3u) * 8u)) & 255u, 63u); } metal::float3 light_count_color( constant ObjectU& O ) { type_8 colors = LIGHT_COUNT_COLORS; uint _e5 = O.lights.w; metal::float3 _e9 = colors.inner[metal::min(unsigned(metal::min(_e5, 9u)), 9u)]; return _e9; } uint pool_sun_count( constant LitU& Lit ) { uint _e3 = Lit.dirs.z; return metal::min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun( uint k_1, constant LitU& Lit ) { uint _e4 = Lit.dirs.y; uint _e8 = Lit.dirs.x; uint word_1 = (k_1 < 4u) ? _e8 : _e4; return metal::min((word_1 >> ((k_1 & 3u) * 8u)) & 255u, 63u); } uint decal_count( constant ObjectU& O ) { uint _e3 = O.decals.z; return metal::min(_e3, MAX_OBJECT_DECALS); } uint decal_entry( uint k_2, constant ObjectU& O ) { uint _e4 = O.decals.y; uint _e8 = O.decals.x; uint word_2 = (k_2 < 4u) ? _e8 : _e4; return (word_2 >> ((k_2 & 3u) * 8u)) & 255u; } float decal_level( DecalEntryU e, metal::float3 world, constant Globals& G, constant DecalU& Decal ) { float _e5 = Decal.lod.x; metal::float4 _e8 = G.camera_pos; float _e15 = Decal.lod.y; float pixel_1 = _e5 * ((_e15 > 0.5) ? 1.0 : metal::length(world - _e8.xyz)); uint _e24 = Decal.counts.y; float top = static_cast(metal::max(_e24, 1u) - 1u); return metal::clamp(metal::log2(metal::max(pixel_1 / metal::max(e.axis_y.w, 0.000001), 1.0)), 0.0, top); } metal::float4 decal_texel( uint layer, metal::float2 uv, float level, bool live, metal::texture2d_array t_decals, metal::sampler s_decals ) { metal::float4 _e11 = t_decals.sample(s_decals, uv, static_cast(layer - 1u), metal::level(live ? 0.0 : level)); return _e11; } DecalSurface apply_decals( metal::float3 world_1, metal::float3 n_geo, DecalSurface surf, constant Globals& G, constant ObjectU& O, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { DecalSurface out_s = {}; uint k_3 = 0u; bool local_6 = {}; float fade = {}; out_s = surf; uint _e4 = decal_count(O); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { uint _e197 = k_3; k_3 = _e197 + 1u; } loop_init = false; uint _e7 = k_3; if (_e7 < _e4) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11, O); DecalEntryU e_2 = Decal.entries.inner[metal::min(unsigned(metal::min(_e12, 63u)), 63u)]; metal::float3 uvw = (e_2.to_local * metal::float4(world_1, 1.0)).xyz; if (metal::all(uvw >= metal::float3(0.0, -1.0, 0.0))) { local_6 = metal::all(uvw <= metal::float3(1.0)); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = metal::pow(1.0 - metal::abs(uvw.y), (uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y); if (e_2.fades.z > 0.0) { float _e55 = fade; fade = _e55 * metal::smoothstep(e_2.fades.z, 1.0, (metal::dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5); } metal::float2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1, G, Decal); uint live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { metal::float4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, (live_1 & DECAL_LIVE_ALBEDO) != 0u, t_decals, s_decals); metal::float3 _e84 = srgb_to_linear(_e82.xyz); metal::float4 a_2 = metal::float4(_e84, _e82.w) * e_2.modulate; float _e90 = fade; float alpha = a_2.w * _e90; metal::float3 _e94 = out_s.base; out_s.base = metal::mix(_e94, a_2.xyz, alpha * e_2.fades.w); if (e_2.layers.y > 0u) { metal::float4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, (live_1 & DECAL_LIVE_NORMAL) != 0u, t_decals, s_decals); float nx = (_e110.x * 2.0) - 1.0; float ny = 1.0 - (_e110.y * 2.0); float nz = metal::sqrt(metal::max(0.0, (1.0 - (nx * nx)) - (ny * ny))); metal::float3 dn = metal::normalize(((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny)); metal::float3 _e143 = out_s.normal; out_s.normal = metal::normalize(metal::mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { metal::float4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, (live_1 & DECAL_LIVE_ORM) != 0u, t_decals, s_decals); float _e159 = out_s.occlusion; out_s.occlusion = metal::mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = metal::mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = metal::mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { metal::float4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, (live_1 & DECAL_LIVE_EMISSION) != 0u, t_decals, s_decals); metal::float3 _e184 = out_s.emission; metal::float3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = _e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193); } } } float _e201 = out_s.roughness; out_s.roughness = metal::clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = metal::clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx( float nh, float a2_ ) { float d_12 = ((nh * nh) * (a2_ - 1.0)) + 1.0; return a2_ / ((PI * d_12) * d_12); } float v_smith( float nl, float nv, float a2_1 ) { float gv = nl * metal::sqrt(((nv * nv) * (1.0 - a2_1)) + a2_1); float g_l = nv * metal::sqrt(((nl * nl) * (1.0 - a2_1)) + a2_1); return 0.5 / metal::max(gv + g_l, 0.0001); } metal::float3 f_schlick( metal::float3 f0_, float vh ) { return f0_ + ((metal::float3(1.0) - f0_) * metal::pow(1.0 - vh, 5.0)); } metal::float3 light_specular( metal::float3 n, metal::float3 v_1, metal::float3 l, metal::float3 radiance, metal::float3 diffuse, metal::float3 f0_1, float a2_2, float specular ) { float nl_2 = metal::dot(n, l); if (nl_2 <= 0.0) { return metal::float3(0.0); } metal::float3 h = metal::normalize(l + v_1); float nh_1 = metal::max(metal::dot(n, h), 0.0); float vh_1 = metal::max(metal::dot(v_1, h), 0.0); float nv_3 = metal::max(metal::dot(n, v_1), 0.0001); metal::float3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); metal::float3 spec = (_e25 * _e26) * _e24; return (((diffuse / metal::float3(3.1415927)) + (spec * specular)) * radiance) * nl_2; } metal::float3 sky( metal::float3 dir, constant LitU& Lit ) { metal::float4 _e4 = Lit.up; float a_3 = metal::acos(metal::clamp(metal::dot(metal::normalize(dir), _e4.xyz), -1.0, 1.0)); if (a_3 <= 1.5707964) { float c_23 = 1.0 - (a_3 / 1.5707964); float k_13 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_23, 0.000001), 6.6666665), 0.0, 1.0); metal::float4 _e30 = Lit.sky_horizon; metal::float4 _e34 = Lit.sky_top; return metal::mix(_e30.xyz, _e34.xyz, k_13); } float c_24 = (a_3 - 1.5707964) / 1.5707964; float k_14 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_24, 0.000001), 50.0), 0.0, 1.0); metal::float4 _e54 = Lit.ground_horizon; metal::float4 _e58 = Lit.ground_bottom; return metal::mix(_e54.xyz, _e58.xyz, k_14); } metal::float3 filmic_curve( metal::float3 x ) { return (((x * ((0.88 * x) + metal::float3(0.1 * 0.6))) + metal::float3(0.2 * 0.01)) / ((x * ((0.88 * x) + metal::float3(0.6))) + metal::float3(0.2 * 0.3))) - metal::float3(0.01 / 0.3); } metal::float3 aces_curve( metal::float3 c_4, float white ) { metal::float3 x_2 = metal::float3(1.8 * metal::dot(metal::float3(0.59719, 0.35458, 0.04823), c_4), 1.8 * metal::dot(metal::float3(0.076, 0.90834, 0.01566), c_4), 1.8 * metal::dot(metal::float3(0.0284, 0.13383, 0.83777), c_4)); metal::float3 t_2 = ((x_2 * (x_2 + metal::float3(0.0245786))) - metal::float3(0.000090537)) / ((x_2 * ((0.983729 * x_2) + metal::float3(0.432951))) + metal::float3(0.238081)); metal::float3 o_5 = metal::float3(metal::dot(metal::float3(1.60475, -0.53108, -0.07367), t_2), metal::dot(metal::float3(-0.10208, 1.10813, -0.00605), t_2), metal::dot(metal::float3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = 1.8 * white; float wt = ((w_1 * (w_1 + 0.0245786)) - 0.000090537) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081); return o_5 / metal::float3(wt); } metal::float3 agx_curve( metal::float3 c_5 ) { metal::float3 v_2 = {}; metal::float3x3 inset = metal::float3x3(metal::float3(0.54490817, 0.14044006, 0.08882741), metal::float3(0.37377945, 0.7541096, 0.17887713), metal::float3(0.08138498, 0.10543358, 0.73225)); metal::float3x3 outset = metal::float3x3(metal::float3(1.964551, -0.29932243, -0.16436833), metal::float3(-0.85585845, 1.3264511, -0.23822464), metal::float3(-0.10886711, -0.02708402, 1.4026654)); v_2 = inset * metal::max(c_5, metal::float3(0.0000000002)); metal::float3 _e34 = v_2; v_2 = (metal::clamp(metal::log2(_e34), metal::float3(-12.473931), metal::float3(4.0260687)) - metal::float3(-12.473931)) / metal::float3(4.0260687 - -12.473931); metal::float3 _e44 = v_2; metal::float3 _e45 = v_2; metal::float3 x2_ = _e44 * _e45; metal::float3 x4_ = x2_ * x2_; metal::float3 _e48 = v_2; metal::float3 _e56 = v_2; metal::float3 _e64 = v_2; metal::float3 p_7 = (((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_); return outset * metal::pow(metal::max(p_7, metal::float3(0.0000000001)), metal::float3(2.4)); } metal::float3 tonemap( metal::float3 c_in, constant LitU& Lit ) { float _e4 = Lit.tone.x; metal::float3 c_25 = metal::max(c_in * _e4, metal::float3(0.0)); float white_1 = Lit.tone.y; uint mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return ((white_1 * c_25) + c_25) / ((c_25 * white_1) + metal::float3(white_1)); } if (mode == TONEMAP_FILMIC) { metal::float3 _e27 = filmic_curve(c_25); metal::float3 _e29 = filmic_curve(metal::float3(white_1)); return _e27 / _e29; } if (mode == TONEMAP_ACES) { metal::float3 _e33 = aces_curve(c_25, white_1); return _e33; } if (mode == TONEMAP_AGX) { metal::float3 _e36 = agx_curve(c_25); return _e36; } return c_25; } float emerge_hash( metal::float3 p_1 ) { metal::float3 q = {}; q = metal::fract(p_1 * 0.1031); metal::float3 _e5 = q; metal::float3 _e6 = q; metal::float3 _e7 = q; q = _e5 + metal::float3(metal::dot(_e6, _e7.zyx + metal::float3(31.32))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return metal::fract((_e16 + _e18) * _e21); } float emerge_noise( metal::float3 p_2 ) { metal::float3 i_13 = metal::floor(p_2); metal::float3 f = metal::fract(p_2); metal::float3 u_1 = (f * f) * (metal::float3(3.0) - (2.0 * f)); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 0.0)); float _e24 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 0.0)); float _e30 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 0.0)); float a_4 = metal::mix(metal::mix(_e10, _e16, u_1.x), metal::mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash(i_13 + metal::float3(0.0, 0.0, 1.0)); float _e46 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 1.0)); float _e54 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 1.0)); float _e60 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 1.0)); float b_2 = metal::mix(metal::mix(_e40, _e46, u_1.x), metal::mix(_e54, _e60, u_1.x), u_1.y); return metal::mix(a_4, b_2, u_1.z); } float emerge_reveal( metal::float3 world_2, metal::float2 pixel, constant ObjectU& O ) { float n_1 = {}; uint _e6 = O.extra.x; if (SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true) { return 1.0; } float e_3 = O.normal[0].w; metal::float3 w_2 = world_2 * EMERGE_SCALE; float _e21 = emerge_noise(w_2); float _e29 = emerge_noise((w_2 * 2.7) + metal::float3(17.1)); n_1 = metal::smoothstep(0.2, 0.8, (_e21 * 0.65) + (_e29 * 0.35)); if (pixel.x >= 0.0) { float ign = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(pixel), metal::float2(0.06711056, 0.00583715)))); float _e49 = n_1; n_1 = metal::clamp(_e49 + ((ign - 0.5) * EMERGE_DITHER), 0.0, 1.0); } float _e60 = n_1; return ((e_3 * 1.8) - _e60) / EMERGE_EDGE; } metal::float3 emerge_tint( metal::float3 c_6, float r, constant ObjectU& O, constant LitU& Lit ) { bool local_7 = {}; uint _e6 = O.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = r >= 1.0; } else { local_7 = true; } bool _e17 = local_7; if (SPEC_EMERGE ? _e17 : true) { return c_6; } uint _e23 = O.extra.w; metal::float3 _e26 = srgb_to_linear(metal::unpack_unorm4x8_to_float(_e23).xyz); metal::float3 _e27 = tonemap(_e26, Lit); return metal::mix(_e27, c_6, metal::smoothstep(0.0, 1.0, r)); } metal::float3 item_fade( metal::float3 c_7, constant ObjectU& O, constant LitU& Lit ) { uint _e5 = O.extra.x; if (SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true) { return c_7; } metal::float4 f_1 = O.normal[3]; metal::float3 _e17 = tonemap(f_1.xyz, Lit); return metal::mix(c_7, _e17, f_1.w); } metal::float3 sky_dir( metal::float3 d, constant SkyU& Sky ) { metal::float4x4 _e3 = Sky.to_sky; return metal::normalize((_e3 * metal::float4(d, 0.0)).xyz); } float sky_curve( float c_8, float curve ) { return metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_8, 0.000001), 1.0 / curve), 0.0, 1.0); } metal::float3 procedural_sky( metal::float3 d_1, constant SkyU& Sky ) { metal::float3 sky_1 = {}; uint i = 0u; float v_6 = metal::acos(metal::clamp(d_1.y, -1.0, 1.0)); metal::float4 _e8 = Sky.sky_horizon; metal::float4 _e12 = Sky.sky_top; float _e21 = Sky.sky_top.w; float _e22 = sky_curve(1.0 - (v_6 / 1.5707964), _e21); float _e27 = Sky.sky_horizon.w; sky_1 = metal::mix(_e8.xyz, _e12.xyz, _e22) * _e27; uint _e33 = Sky.flags.z; uint suns = metal::min(_e33, SKY_SUNS); uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { uint _e79 = i; i = _e79 + 1u; } loop_init_1 = false; uint _e38 = i; if (_e38 < suns) { } else { break; } { uint _e42 = i; SunU sun = Sky.suns.inner[metal::min(unsigned(_e42), 3u)]; float size = sun.direction.w; float a_5 = metal::acos(metal::clamp(metal::dot(sun.direction.xyz, d_1), -1.0, 1.0)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { float _e60 = Sky.sun.x; if (a_5 < _e60) { float _e66 = Sky.sun.x; float c2_ = (a_5 - size) / (_e66 - size); metal::float3 _e71 = sky_1; float _e75 = Sky.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = metal::mix(sun.color.xyz, _e71, _e76); } } } } metal::float4 _e83 = Sky.ground_horizon; metal::float4 _e87 = Sky.ground_bottom; float _e96 = Sky.ground_bottom.w; float _e97 = sky_curve((v_6 - 1.5707964) / 1.5707964, _e96); float _e102 = Sky.ground_horizon.w; metal::float3 ground = metal::mix(_e83.xyz, _e87.xyz, _e97) * _e102; metal::float3 _e104 = sky_1; float _e112 = Sky.sun.z; return ((d_1.y >= 0.0) ? _e104 : ground) * _e112; } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } int naga_mod(int lhs, int rhs) { int divisor = metal::select(rhs, 1, (lhs == (-2147483647 - 1) & rhs == -1) | (rhs == 0)); return lhs - (lhs / divisor) * divisor; } metal::float3 panorama( metal::float3 d_2, constant SkyU& Sky, metal::texture2d t_panorama, metal::sampler s_panorama ) { metal::float2 uv_4 = metal::float2(metal::fract(metal::atan2(d_2.x, -(d_2.z)) / 6.2831855), metal::acos(metal::clamp(d_2.y, -1.0, 1.0)) / PI); uint _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { metal::float4 _e27 = t_panorama.sample(s_panorama, uv_4, metal::level(0.0)); float _e32 = Sky.sun.z; return _e27.xyz * _e32; } metal::int2 size_1 = static_cast(metal::uint2(t_panorama.get_width(0), t_panorama.get_height(0))); int x_3 = naga_mod(as_type(as_type(naga_mod(naga_f2i32(metal::floor(uv_4.x * static_cast(size_1.x))), size_1.x)) + as_type(size_1.x)), size_1.x); int y = metal::clamp(naga_f2i32(metal::floor(uv_4.y * static_cast(size_1.y))), 0, as_type(as_type(size_1.y) - as_type(1))); uint clamped_lod_e64 = metal::min(uint(0), t_panorama.get_num_mip_levels() - 1); metal::float4 _e64 = t_panorama.read(metal::min(metal::uint2(metal::int2(x_3, y)), metal::uint2(t_panorama.get_width(clamped_lod_e64), t_panorama.get_height(clamped_lod_e64)) - 1), clamped_lod_e64); float _e69 = Sky.sun.z; return _e64.xyz * _e69; } metal::float3 sh_irradiance( metal::float3 n_2, constant SkyU& Sky ) { metal::float3 c_9 = {}; metal::float4 _e4 = Sky.sh.inner[0]; c_9 = _e4.xyz * 0.282095; metal::float3 _e9 = c_9; metal::float4 _e13 = Sky.sh.inner[1]; c_9 = _e9 + (_e13.xyz * (0.488603 * n_2.y)); metal::float3 _e20 = c_9; metal::float4 _e24 = Sky.sh.inner[2]; c_9 = _e20 + (_e24.xyz * (0.488603 * n_2.z)); metal::float3 _e31 = c_9; metal::float4 _e35 = Sky.sh.inner[3]; c_9 = _e31 + (_e35.xyz * (0.488603 * n_2.x)); metal::float3 _e42 = c_9; metal::float4 _e46 = Sky.sh.inner[4]; c_9 = _e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y)); metal::float3 _e55 = c_9; metal::float4 _e59 = Sky.sh.inner[5]; c_9 = _e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z)); metal::float3 _e68 = c_9; metal::float4 _e72 = Sky.sh.inner[6]; c_9 = _e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0))); metal::float3 _e85 = c_9; metal::float4 _e89 = Sky.sh.inner[7]; c_9 = _e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z)); metal::float3 _e98 = c_9; metal::float4 _e102 = Sky.sh.inner[8]; c_9 = _e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y)))); metal::float3 _e115 = c_9; return metal::max(_e115, metal::float3(0.0)); } metal::float3 radiance_1( metal::float3 d_3, float roughness, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { uint _e5 = Sky.flags.y; float top_1 = static_cast(metal::max(_e5, 1u) - 1u); metal::float4 _e14 = t_radiance.sample(s_radiance, d_3, metal::level(roughness * top_1)); return _e14.xyz; } metal::float2 env_brdf_approx( float roughness_1, float nv_1 ) { metal::float4 r_6 = (roughness_1 * metal::float4(-1.0, -0.0275, -0.572, 0.022)) + metal::float4(1.0, 0.0425, 1.04, -0.04); float a004_ = (metal::min(r_6.x * r_6.x, metal::exp2(-9.28 * nv_1)) * r_6.x) + r_6.y; return (metal::float2(-1.04, 1.04) * a004_) + r_6.zw; } float pow8_( float x_1 ) { float x2_1 = metal::max(x_1, 0.0) * metal::max(x_1, 0.0); float x4_1 = x2_1 * x2_1; return x4_1 * x4_1; } metal::float3 fog_sun_scatter( metal::float3 fc, metal::float3 dir_1, constant LitU& Lit, constant SkyU& Sky ) { metal::float3 c_10 = {}; uint k_4 = 0u; c_10 = fc; float _e6 = Sky.fog_color.w; if (_e6 > 0.001) { uint _e9 = pool_sun_count(Lit); uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { uint _e51 = k_4; k_4 = _e51 + 1u; } loop_init_2 = false; uint _e12 = k_4; if (_e12 < _e9) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14, Lit); uint _e21 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].info.x; if (_e21 == LIGHT_DIRECTIONAL) { metal::float3 _e24 = c_10; metal::float4 _e29 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].color; metal::float4 _e38 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].direction; float _e42 = pow8_(metal::dot(dir_1, -(_e38.xyz))); float _e47 = Sky.fog_color.w; c_10 = _e24 + (((_e29.xyz / metal::float3(3.1415927)) * _e42) * _e47); } } } } metal::float3 _e53 = c_10; return _e53; } metal::float3 sky_fog( metal::float3 c_11, metal::float3 dir_2, constant LitU& Lit, constant SkyU& Sky ) { metal::float4 _e4 = Sky.fog_color; float _e9 = Sky.fog_depth.w; metal::float3 _e11 = fog_sun_scatter(metal::mix(_e4.xyz, c_11, _e9), dir_2, Lit, Sky); float _e15 = Sky.fog.y; return metal::mix(c_11, _e11, _e15); } metal::float3 surface_fog( metal::float3 c_12, metal::float3 world_3, metal::float3 dir_3, constant Globals& G, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { float dist = {}; float amount = {}; metal::float3 fc_1 = {}; bool local_8 = {}; metal::float4x4 _e5 = G.view; float depth = -((_e5 * metal::float4(world_3, 1.0)).z); metal::float4 _e13 = G.camera_pos; dist = metal::distance(world_3, _e13.xyz); float _e20 = Sky.fog_origin.w; if (_e20 > 0.5) { float _e26 = Sky.fog_origin.x; dist = metal::max(depth - _e26, 0.0); } uint _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { float _e42 = Sky.fog_depth.x; float _e46 = Sky.fog_depth.y; float _e47 = dist; float z = metal::smoothstep(_e42, _e46, _e47); float _e54 = Sky.fog_depth.z; float _e63 = Sky.fog.x; amount = ((z > 0.0) ? metal::pow(metal::max(z, 0.000001), _e54) : 0.0) * _e63; } else { float _e65 = dist; float _e70 = Sky.fog.x; amount = 1.0 - metal::exp(metal::min(0.0, -(_e65) * _e70)); } float _e80 = Sky.fog.w; if (metal::abs(_e80) >= 0.0001) { metal::float4 _e86 = Lit.up; float y_1 = metal::dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = Sky.fog.z; float _e98 = Sky.fog.w; amount = metal::max(_e89, 1.0 - metal::exp(metal::min(0.0, (y_1 - _e93) * _e98))); } float _e106 = amount; amount = metal::clamp(_e106, 0.0, 1.0); metal::float4 _e112 = Sky.fog_color; fc_1 = _e112.xyz; uint _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { float _e129 = Sky.fog_depth.w; local_8 = _e129 > 0.0; } else { local_8 = false; } bool _e133 = local_8; if (SPEC_AMBIENT_SKY ? _e133 : false) { float _e139 = Sky.fog_origin.y; float _e144 = Sky.fog_origin.z; float _e148 = Sky.fog_origin.y; float t_3 = metal::clamp((depth - _e139) / metal::max(_e144 - _e148, 0.000001), 0.0, 1.0); uint _e159 = Sky.flags.y; float top_2 = static_cast(metal::max(_e159, 2u) - 1u); float rough = metal::mix(1.0 / top_2, 1.0, 1.0 - t_3); metal::float3 _e171 = fc_1; metal::float3 _e172 = sky_dir(dir_3, Sky); metal::float3 _e173 = radiance_1(_e172, rough, Sky, t_radiance, s_radiance); float _e177 = Sky.sun.w; float _e182 = Sky.fog_depth.w; fc_1 = metal::mix(_e171, _e173 * _e177, _e182); } metal::float3 _e184 = fc_1; metal::float3 _e185 = fog_sun_scatter(_e184, dir_3, Lit, Sky); fc_1 = _e185; metal::float3 _e186 = fc_1; float _e187 = amount; return metal::mix(c_12, _e186, _e187); } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::float2 fog_chord( uint k_5, metal::float3 o, metal::float3 d_4, float t_end_ray, constant FogU& Fog ) { metal::float2 r_1 = {}; float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].albedo.w; uint shape = naga_f2u32(_e9); float _e16 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].emission.w; float t_end_1 = metal::min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return metal::float2(0.0, t_end_1); } metal::float4 _e26 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].size; metal::float3 h_1 = _e26.xyz * 0.5; metal::float3 dd = metal::select(d_4, metal::float3(0.000000000001), metal::abs(d_4) < metal::float3(0.000000000001)); metal::float3 sa = (-(h_1) - o) / dd; metal::float3 sb = (h_1 - o) / dd; metal::float3 s_in = metal::min(sa, sb); metal::float3 s_out = metal::max(sa, sb); r_1 = metal::float2(metal::max(0.0, s_in.y), metal::min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = metal::float2(metal::max(metal::max(_e60, s_in.x), s_in.z), metal::min(metal::min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = metal::dot(d_4 / h_1, d_4 / h_1); b = metal::dot(o / h_1, d_4 / h_1); c_13 = metal::dot(o / h_1, o / h_1) - 1.0; } else { float rad = metal::min(h_1.x, h_1.z); float k_15 = (shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0; float w_3 = h_1.y - o.y; a = ((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y); b = ((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y); c_13 = ((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad)); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = (_e139 * _e140) - (_e142 * _e143); float _e146 = a; if (metal::abs(_e146) < 0.000000000001) { float _e150 = b; if (metal::abs(_e150) < 0.000000000001) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = (_e157 > 0.0) ? -1.0 : _e156; } else { float _e162 = b; if (_e162 > 0.0) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = metal::min(_e167, -(_e168) / (2.0 * _e170)); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = metal::max(_e177, -(_e178) / (2.0 * _e180)); } } } else { if (disc < 0.0) { float _e189 = r_1.y; float _e190 = a; r_1.y = (_e190 > 0.0) ? -1.0 : _e189; } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = metal::min((-(_e195) - metal::sqrt(disc)) / _e199, (-(_e201) + metal::sqrt(disc)) / _e205); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = metal::max((-(_e208) - metal::sqrt(disc)) / _e212, (-(_e214) + metal::sqrt(disc)) / _e218); float _e221 = a; if (_e221 > 0.0) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = metal::float2(metal::max(_e225, lo_2), metal::min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if (_e232 < metal::min(_e234, lo_2)) { float _e239 = r_1.y; r_1.y = metal::min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = metal::max(_e243, hi_2); } } } } metal::float2 _e245 = r_1; return _e245; } float fog_density( uint k_6, metal::float3 p_3, metal::float3 lp, constant FogU& Fog ) { float rho = {}; float sdf = 0.0; FogEntryU e_4 = Fog.entries.inner[metal::min(unsigned(k_6), 15u)]; metal::float4 _e14 = Fog.up; rho = e_4.material.x * metal::min(metal::exp2(-(e_4.material.y) * (metal::dot(p_3, _e14.xyz) - e_4.material.w)), 1.0); if (e_4.material.z > 0.0) { uint shape_1 = naga_f2u32(e_4.albedo.w); metal::float3 h_2 = e_4.size.xyz * 0.5; float rad_1 = metal::min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { float k0_ = metal::length(lp / h_2); sdf = (k0_ * (k0_ - 1.0)) / metal::max(metal::length(lp / (h_2 * h_2)), 0.000000000001); } else { if (shape_1 == FOG_SHAPE_BOX) { metal::float3 q_3 = metal::abs(lp) - h_2; sdf = metal::length(metal::max(q_3, metal::float3(0.0))) + metal::min(metal::max(q_3.x, metal::max(q_3.y, q_3.z)), 0.0); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { metal::float2 q_4 = metal::float2(metal::length(lp.xz) - rad_1, metal::abs(lp.y) - h_2.y); sdf = metal::min(metal::max(q_4.x, q_4.y), 0.0) + metal::length(metal::max(q_4, metal::float2(0.0))); } else { metal::float2 n_11 = metal::normalize(metal::float2(1.0 / metal::max(0.001, rad_1 * 0.5), 1.0 / metal::max(0.001, h_2.y))); sdf = metal::max(metal::dot(n_11, metal::float2(metal::length(lp.xz), lp.y - h_2.y)), -(h_2.y) - lp.y); } } } float _e116 = rho; float _e117 = sdf; rho = _e116 * metal::pow(metal::clamp((-2.0 * _e117) / e_4.size.w, 0.0, 1.0), e_4.material.z); } float _e130 = rho; return _e130; } float fog_falloff_depth( uint k_7, float a_1, float b_1, float t0_, float t1_, constant FogU& Fog ) { metal::float4 m_4 = Fog.entries.inner[metal::min(unsigned(k_7), 15u)].material; float hf = m_4.y; if ((hf * b_1) == 0.0) { return (m_4.x * (t1_ - t0_)) * metal::min(metal::exp2(-(hf) * a_1), 1.0); } float s_2 = metal::clamp(-(a_1) / b_1, t0_, t1_); float lo_3 = (b_1 > 0.0) ? s_2 : t0_; float hi_3 = (b_1 > 0.0) ? t1_ : s_2; float x_4 = ((hf * metal::abs(b_1)) * (hi_3 - lo_3)) * 0.6931472; float g = (x_4 < 0.01) ? (1.0 - (x_4 * (0.5 - (x_4 * (0.16666667 - (x_4 / 24.0)))))) : ((1.0 - metal::exp(-(x_4))) / x_4); float top_3 = metal::min(metal::exp2(-(hf) * metal::max(a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3)), 0.0)), 1.0); return m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g)); } float omni_attenuation( float d_5, float inv_range, float decay ) { float nd = {}; nd = d_5 * inv_range; float _e5 = nd; float _e6 = nd; nd = _e5 * _e6; float _e8 = nd; float _e9 = nd; nd = _e8 * _e9; float _e11 = nd; nd = metal::max(1.0 - _e11, 0.0); float _e16 = nd; float _e17 = nd; nd = _e16 * _e17; float _e19 = nd; return _e19 * metal::pow(metal::max(d_5, 0.0001), -(decay)); } metal::float3 fog_light( uint n_3, metal::float3 p_4, metal::float3 dir_4, constant LitU& Lit, constant FogU& Fog ) { metal::float3 sum = {}; uint k_8 = 0u; metal::float3 l_1 = {}; float atten = {}; metal::float4 _e5 = Fog.ambient; float _e10 = Fog.params.y; sum = _e5.xyz * _e10; float g_1 = Fog.params.x; metal::uint4 lights = Fog.entries.inner[metal::min(unsigned(n_3), 15u)].lights; uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { uint _e138 = k_8; k_8 = _e138 + 1u; } loop_init_3 = false; uint _e24 = k_8; if (_e24 < metal::min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = metal::min((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u, 63u); LightU li = Lit.lights.inner[metal::min(unsigned(i_14), 63u)]; l_1 = -(li.direction.xyz); atten = 1.0; if (li.info.x != LIGHT_DIRECTIONAL) { metal::float3 rel = li.position.xyz - p_4; l_1 = rel / metal::float3(metal::max(metal::length(rel), 0.000001)); float _e72 = omni_attenuation(metal::length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { metal::float3 _e77 = l_1; float rim = metal::max(0.0001, (1.0 - metal::max(metal::dot(-(_e77), li.direction.xyz), li.spot.x)) / metal::max(1.0 - li.spot.x, 0.000001)); float _e96 = atten; atten = _e96 * (1.0 - metal::pow(rim, li.spot.y)); } } metal::float3 _e108 = l_1; float q_5 = (1.0 + (g_1 * g_1)) - ((2.0 * g_1) * metal::dot(dir_4, _e108)); metal::float3 _e112 = sum; float _e115 = atten; float _e133 = Fog.light_fog.inner[metal::min(unsigned(i_14 >> 2u), 15u)][metal::min(unsigned(i_14 & 3u), 3u)]; sum = _e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * metal::sqrt(q_5))) * _e133)); } } metal::float3 _e140 = sum; return _e140; } metal::float4 fog_entry( uint k_9, metal::float3 o_1, metal::float3 d_6, metal::float2 ch, constant LitU& Lit, constant FogU& Fog ) { float split = {}; bool local_9 = {}; bool local_10 = {}; metal::float3 q_1 = metal::float3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = {}; bool local_12 = {}; FogEntryU e_5 = Fog.entries.inner[metal::min(unsigned(k_9), 15u)]; metal::float3 lo_4 = (e_5.to_local * metal::float4(o_1, 1.0)).xyz; metal::float3 ld = (e_5.to_local * metal::float4(d_6, 0.0)).xyz; metal::float4 _e20 = Fog.up; float a_6 = metal::dot(o_1, _e20.xyz) - e_5.material.w; metal::float4 _e28 = Fog.up; float b_3 = metal::dot(d_6, _e28.xyz); bool edge = e_5.material.z > 0.0; split = (ch.x + ch.y) * 0.5; if (e_5.material.y > 0.0) { local_9 = (-(a_6) / b_3) > ch.x; } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = (-(a_6) / b_3) < ch.y; } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = -(a_6) / b_3; } uint2 loop_bound_4 = uint2(4294967295u); bool loop_init_4 = true; while(true) { if (metal::all(loop_bound_4 == uint2(0u))) { break; } loop_bound_4 -= uint2(loop_bound_4.y == 0u, 1u); if (!loop_init_4) { uint _e160 = i_1; i_1 = _e160 + 1u; } loop_init_4 = false; uint _e70 = i_1; if (_e70 < (edge ? 12u : 4u)) { } else { break; } { uint _e75 = i_1; uint j = _e75 & 3u; if (!((j == 0u))) { local_11 = j == 3u; } else { local_11 = true; } bool _e88 = local_11; float x_5 = _e88 ? FOG_GL_X0_ : FOG_GL_X1_; if (!((j == 0u))) { local_12 = j == 3u; } else { local_12 = true; } bool _e100 = local_12; float w_4 = _e100 ? FOG_GL_W0_ : FOG_GL_W1_; float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; metal::float2 seg = (_e112 < 4u) ? ch : ((_e108 < 8u) ? metal::float2(ch.x, _e106) : metal::float2(_e102, ch.y)); float half_len = (seg.y - seg.x) * 0.5; float t_4 = ((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_5) : x_5)); metal::float3 p_8 = o_1 + (d_6 * t_4); float _e136 = fog_density(k_9, p_8, lo_4 + (ld * t_4), Fog); uint _e137 = i_1; if (_e137 < 4u) { metal::float3 _e140 = q_1; metal::float3 _e143 = fog_light(k_9, p_8, d_6, Lit, Fog); q_1 = _e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * metal::clamp(_e136, 0.0, 1.0))); } else { float _e155 = tau; tau = _e155 + ((w_4 * half_len) * _e136); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y, Fog); tau = _e165; } metal::float3 _e166 = q_1; float _e167 = tau; return metal::float4(_e166, _e167); } metal::float3 fog_integrate( metal::float3 c_14, metal::float3 o_2, metal::float3 d_7, float t_end, uint list, constant LitU& Lit, constant FogU& Fog ) { type_28 at = {}; type_29 chords = {}; uint m = 0u; uint i_2 = 0u; bool local_13 = {}; type_30 parts = {}; uint i_3 = 0u; uint n_4 = 0u; float avail = {}; uint i_4 = {}; uint i_5 = {}; metal::float3 q_2 = metal::float3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all = list >= FOG_LIST_ALL; uint2 loop_bound_5 = uint2(4294967295u); bool loop_init_5 = true; while(true) { if (metal::all(loop_bound_5 == uint2(0u))) { break; } loop_bound_5 -= uint2(loop_bound_5.y == 0u, 1u); if (!loop_init_5) { uint _e72 = i_2; i_2 = _e72 + 1u; } loop_init_5 = false; uint _e13 = i_2; uint _e18 = Fog.counts.x; if (_e13 < (all ? metal::min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u)) { } else { break; } { uint _e23 = i_2; uint byte = (list >> ((_e23 & 3u) * 8u)) & 127u; if (!(all)) { local_13 = byte == 0u; } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = all ? _e42 : (metal::min(byte, MAX_FRAME_FOG_VOLUMES) - 1u); metal::float4x4 to_local = Fog.entries.inner[metal::min(unsigned(k_16), 15u)].to_local; metal::float2 _e57 = fog_chord(k_16, (to_local * metal::float4(o_2, 1.0)).xyz, (to_local * metal::float4(d_7, 0.0)).xyz, t_end, Fog); if (_e57.y > _e57.x) { uint _e61 = m; at.inner[metal::min(unsigned(_e61), 3u)] = k_16; uint _e63 = m; chords.inner[metal::min(unsigned(_e63), 3u)] = _e57; uint _e66 = m; m = _e66 + 1u; uint _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } } uint2 loop_bound_6 = uint2(4294967295u); bool loop_init_6 = true; while(true) { if (metal::all(loop_bound_6 == uint2(0u))) { break; } loop_bound_6 -= uint2(loop_bound_6.y == 0u, 1u); if (!loop_init_6) { uint _e90 = i_3; i_3 = _e90 + 1u; } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if (_e77 < _e78) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at.inner[metal::min(unsigned(_e82), 3u)]; uint _e85 = i_3; metal::float2 _e87 = chords.inner[metal::min(unsigned(_e85), 3u)]; metal::float4 _e88 = fog_entry(_e84, o_2, d_7, _e87, Lit, Fog); parts.inner[metal::min(unsigned(_e80), 3u)] = _e88; } } uint2 loop_bound_7 = uint2(4294967295u); bool loop_init_7 = true; while(true) { if (metal::all(loop_bound_7 == uint2(0u))) { break; } loop_bound_7 -= uint2(loop_bound_7.y == 0u, 1u); if (!loop_init_7) { uint _e221 = n_4; n_4 = _e221 + 1u; } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if (_e94 < _e95) { } else { break; } { uint _e97 = n_4; float _e100 = parts.inner[metal::min(unsigned(_e97), 3u)].w; if (_e100 < 0.0) { avail = 0.0; i_4 = 0u; uint2 loop_bound_8 = uint2(4294967295u); bool loop_init_8 = true; while(true) { if (metal::all(loop_bound_8 == uint2(0u))) { break; } loop_bound_8 -= uint2(loop_bound_8.y == 0u, 1u); if (!loop_init_8) { uint _e153 = i_4; i_4 = _e153 + 1u; } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if (_e107 < _e108) { } else { break; } { uint _e110 = i_4; float _e113 = chords.inner[metal::min(unsigned(_e110), 3u)].y; uint _e114 = n_4; float _e117 = chords.inner[metal::min(unsigned(_e114), 3u)].y; uint _e119 = i_4; float _e122 = chords.inner[metal::min(unsigned(_e119), 3u)].x; uint _e123 = n_4; float _e126 = chords.inner[metal::min(unsigned(_e123), 3u)].x; uint _e131 = i_4; float _e134 = chords.inner[metal::min(unsigned(_e131), 3u)].y; uint _e135 = i_4; float _e138 = chords.inner[metal::min(unsigned(_e135), 3u)].x; float share = metal::max(metal::min(_e113, _e117) - metal::max(_e122, _e126), 0.0) / metal::max(_e134 - _e138, 0.000001); float _e143 = avail; uint _e144 = i_4; float _e147 = parts.inner[metal::min(unsigned(_e144), 3u)].w; avail = _e143 + (metal::max(_e147, 0.0) * share); } } uint _e155 = n_4; float _e158 = parts.inner[metal::min(unsigned(_e155), 3u)].w; float _e160 = avail; float f_2 = metal::min(-(_e158) / metal::max(_e160, 0.000000000001), 1.0); i_5 = 0u; uint2 loop_bound_9 = uint2(4294967295u); bool loop_init_9 = true; while(true) { if (metal::all(loop_bound_9 == uint2(0u))) { break; } loop_bound_9 -= uint2(loop_bound_9.y == 0u, 1u); if (!loop_init_9) { uint _e218 = i_5; i_5 = _e218 + 1u; } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if (_e168 < _e169) { } else { break; } { uint _e171 = i_5; float _e174 = parts.inner[metal::min(unsigned(_e171), 3u)].w; if (_e174 > 0.0) { uint _e177 = i_5; float _e180 = chords.inner[metal::min(unsigned(_e177), 3u)].y; uint _e181 = n_4; float _e184 = chords.inner[metal::min(unsigned(_e181), 3u)].y; uint _e186 = i_5; float _e189 = chords.inner[metal::min(unsigned(_e186), 3u)].x; uint _e190 = n_4; float _e193 = chords.inner[metal::min(unsigned(_e190), 3u)].x; uint _e198 = i_5; float _e201 = chords.inner[metal::min(unsigned(_e198), 3u)].y; uint _e202 = i_5; float _e205 = chords.inner[metal::min(unsigned(_e202), 3u)].x; float share_1 = metal::max(metal::min(_e180, _e184) - metal::max(_e189, _e193), 0.0) / metal::max(_e201 - _e205, 0.000001); uint _e210 = i_5; metal::float4 _e212 = parts.inner[metal::min(unsigned(_e210), 3u)]; parts.inner[metal::min(unsigned(_e210), 3u)] = _e212 * (1.0 - (share_1 * f_2)); } } } } } } uint2 loop_bound_10 = uint2(4294967295u); bool loop_init_10 = true; while(true) { if (metal::all(loop_bound_10 == uint2(0u))) { break; } loop_bound_10 -= uint2(loop_bound_10.y == 0u, 1u); if (!loop_init_10) { uint _e252 = i_6; i_6 = _e252 + 1u; } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if (_e230 < _e231) { } else { break; } { uint _e233 = i_6; float _e236 = parts.inner[metal::min(unsigned(_e233), 3u)].w; if (_e236 > 0.0) { metal::float3 _e239 = q_2; uint _e240 = i_6; metal::float4 _e242 = parts.inner[metal::min(unsigned(_e240), 3u)]; q_2 = _e239 + _e242.xyz; float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts.inner[metal::min(unsigned(_e246), 3u)].w; tau_1 = _e245 + _e249; } } } float _e254 = tau_1; float t_5 = metal::exp(-(_e254)); metal::float3 _e258 = q_2; float _e261 = tau_1; return (c_14 * t_5) + (_e258 * ((1.0 - t_5) / metal::max(_e261, 0.00001))); } metal::float3 fog_volumes( metal::float3 c_15, metal::float3 world_4, uint list_1, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_6 = (_e36 > 0.5) ? (world_4 - (back * (_e26 * metal::float4(world_4, 1.0)).z)) : _e22.xyz; float len = metal::length(world_4 - o_6); metal::float3 _e47 = fog_integrate(c_15, o_6, (world_4 - o_6) / metal::float3(metal::max(len, 0.000001)), len, list_1, Lit, Fog); return (len > 0.0) ? _e47 : c_15; } metal::float3 sky_fog_volumes( metal::float3 c_16, metal::float3 near_point, metal::float3 dir_5, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back_1 = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_7 = (_e36 > 0.5) ? (near_point - (back_1 * (_e26 * metal::float4(near_point, 1.0)).z)) : _e22.xyz; uint _e44 = Fog.counts.y; metal::float3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44, Lit, Fog); float _e49 = Fog.params.z; return metal::mix(c_16, _e45, _e49); } float shadow_factor( uint i_7, metal::float3 world_5, metal::float3 n_geo_1, metal::float3 l_2, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow ) { uint part = 0u; uint c_17 = 0u; bool local_14 = {}; bool local_15 = {}; bool local_16 = {}; float vis = 0.0; int dy = -1; int dx = {}; uint kind = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.x; metal::float4 _e14 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].position; metal::float3 light_pos = _e14.xyz; uint _e21 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.w; uint slot = metal::min(_e21, 15u); metal::float4 params = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].params; uint first = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.x; uint _e40 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.y; uint count = metal::max(_e40, 1u); metal::float4x4 _e45 = G.view; float view_depth = -((_e45 * metal::float4(world_5, 1.0)).z); if (kind == LIGHT_DIRECTIONAL) { float _e60 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade.y; if (view_depth > _e60) { return 1.0; } part = count - 1u; uint2 loop_bound_11 = uint2(4294967295u); bool loop_init_11 = true; while(true) { if (metal::all(loop_bound_11 == uint2(0u))) { break; } loop_bound_11 -= uint2(loop_bound_11.y == 0u, 1u); if (!loop_init_11) { uint _e79 = c_17; c_17 = _e79 + 1u; } loop_init_11 = false; uint _e67 = c_17; if (_e67 < count) { } else { break; } { uint _e73 = c_17; float _e75 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].splits[metal::min(unsigned(_e73), 3u)]; if (view_depth <= _e75) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; metal::float4 texel = Shadow.tiles.inner[metal::min(unsigned(metal::min(first + metal::min(_e83, count - 1u), 15u)), 15u)].texel; float t_6 = texel.x + (texel.y * metal::distance(world_5, light_pos)); metal::float3 p_9 = (world_5 + (n_geo_1 * ((params.y * metal::max(params.z, 1.0)) * t_6))) + (l_2 * (params.x * t_6)); if (kind == LIGHT_OMNI) { metal::float3 d_13 = p_9 - light_pos; metal::float3 a_7 = metal::abs(d_13); if (a_7.x >= a_7.y) { local_14 = a_7.x >= a_7.z; } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = (d_13.x >= 0.0) ? 0u : 1u; } else { if (a_7.y >= a_7.z) { part = (d_13.y >= 0.0) ? 2u : 3u; } else { part = (d_13.z >= 0.0) ? 4u : 5u; } } } uint _e145 = part; uint tile = metal::min(first + metal::min(_e145, count - 1u), 15u); metal::float4x4 _e156 = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].view_proj; metal::float4 clip_1 = _e156 * metal::float4(p_9, 1.0); if (clip_1.w <= 0.0) { return 1.0; } metal::float3 ndc = clip_1.xyz / metal::float3(clip_1.w); if (!((metal::abs(ndc.x) > 1.0))) { local_15 = metal::abs(ndc.y) > 1.0; } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = ndc.z > 1.0; } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } metal::float4 rect = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].rect; metal::float2 uv_5 = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); metal::float2 auv = rect.xy + (uv_5 * rect.zw); float texel_uv = Shadow.atlas.x; metal::float2 lo_5 = rect.xy + metal::float2(0.5 * texel_uv); metal::float2 hi_4 = (rect.xy + rect.zw) - metal::float2(0.5 * texel_uv); float r_7 = params.z; if (r_7 <= 0.0) { float _e235 = t_shadow.sample_compare(s_shadow, metal::clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { float spread = r_7 * texel_uv; uint2 loop_bound_12 = uint2(4294967295u); bool loop_init_12 = true; while(true) { if (metal::all(loop_bound_12 == uint2(0u))) { break; } loop_bound_12 -= uint2(loop_bound_12.y == 0u, 1u); if (!loop_init_12) { int _e265 = dy; dy = as_type(as_type(_e265) + as_type(1)); } loop_init_12 = false; int _e239 = dy; if (_e239 <= 1) { } else { break; } { dx = -1; uint2 loop_bound_13 = uint2(4294967295u); bool loop_init_13 = true; while(true) { if (metal::all(loop_bound_13 == uint2(0u))) { break; } loop_bound_13 -= uint2(loop_bound_13.y == 0u, 1u); if (!loop_init_13) { int _e262 = dx; dx = as_type(as_type(_e262) + as_type(1)); } loop_init_13 = false; int _e244 = dx; if (_e244 <= 1) { } else { break; } { int _e247 = dx; int _e249 = dy; metal::float2 tap = metal::clamp(auv + (metal::float2(static_cast(_e247), static_cast(_e249)) * spread), lo_5, hi_4); float _e255 = vis; float _e259 = t_shadow.sample_compare(s_shadow, tap, ndc.z); vis = _e255 + _e259; } } } } float _e267 = vis; vis = _e267 / 9.0; } if (kind == LIGHT_DIRECTIONAL) { metal::float4 fade_1 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade; float _e277 = vis; vis = metal::mix(_e277, 1.0, metal::smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return metal::mix(1.0, _e283, params.w); } metal::float3 probe_light( metal::float3 n_5, constant ObjectU& O ) { float _e5 = O.gi.inner[0].x; metal::float4 _e9 = O.gi.inner[0]; float _e17 = O.gi.inner[1].x; metal::float4 _e21 = O.gi.inner[1]; float _e29 = O.gi.inner[2].x; metal::float4 _e33 = O.gi.inner[2]; return metal::max(metal::float3(_e5 + metal::dot(_e9.yzw, n_5), _e17 + metal::dot(_e21.yzw, n_5), _e29 + metal::dot(_e33.yzw, n_5)), metal::float3(0.0)); } metal::float4 gi_diffuse( metal::float3 n_6, bool baked, metal::float3 baked_light, constant ObjectU& O ) { if (baked) { return metal::float4(baked_light, 1.0); } uint _e9 = O.extra.x; if (SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false) { metal::float3 _e16 = probe_light(n_6, O); return metal::float4(_e16, 1.0); } return metal::float4(0.0); } metal::float3 probe_face_uv( metal::float3 d_8 ) { float face = {}; float ma = {}; float sc = {}; float tc = {}; bool local_17 = {}; metal::float3 a_8 = metal::abs(d_8); if (a_8.x >= a_8.y) { local_17 = a_8.x >= a_8.z; } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if (d_8.x >= 0.0) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0.0) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0.0) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return metal::float3(_e56, ((_e57 / _e58) + 1.0) * 0.5, ((_e64 / _e65) + 1.0) * 0.5); } metal::float3 probe_texel( uint row, metal::float3 fuv, uint level_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { uint _e6 = Probe.counts.z; float n_12 = static_cast(metal::max(_e6 >> level_1, 1u)); float lo_6 = 0.5 / n_12; float u_2 = metal::clamp(fuv.y, lo_6, 1.0 - lo_6); float v_7 = metal::clamp(fuv.z, lo_6, 1.0 - lo_6); metal::float2 uv_6 = metal::float2((fuv.x + u_2) / 6.0, (static_cast(row) + v_7) / 8.0); metal::float4 _e33 = t_probes.sample(s_probes, uv_6, metal::level(static_cast(level_1))); return _e33.xyz; } metal::float3 probe_sample( uint row_1, metal::float3 d_9, float lod, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { bool local_18 = {}; uint _e6 = Probe.counts.y; uint levels = metal::max(_e6, 1u); float l_5 = metal::clamp(lod, 0.0, static_cast(levels - 1u)); uint m0_ = naga_f2u32(l_5); float t_7 = l_5 - static_cast(m0_); metal::float3 _e17 = probe_face_uv(d_9); metal::float3 _e18 = probe_texel(row_1, _e17, m0_, Probe, t_probes, s_probes); if (!((t_7 <= 0.0))) { local_18 = (m0_ + 1u) >= levels; } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } metal::float3 _e34 = probe_texel(row_1, _e17, m0_ + 1u, Probe, t_probes, s_probes); return (_e18 * (1.0 - t_7)) + (_e34 * t_7); } float probe_weight( ProbeEntryU p_5, metal::float3 world_6 ) { metal::float3 l_6 = (p_5.to_local * metal::float4(world_6, 1.0)).xyz; metal::float3 e_6 = p_5.extents.xyz; float d_14 = metal::min(e_6.x - metal::abs(l_6.x), metal::min(e_6.y - metal::abs(l_6.y), e_6.z - metal::abs(l_6.z))); if (d_14 < 0.0) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return metal::min(d_14 / p_5.extents.w, 1.0); } float probe_exit( float o_3, float d_10, float e_1 ) { if (d_10 > 0.0) { return (e_1 - o_3) / d_10; } if (d_10 < 0.0) { return (-(e_1) - o_3) / d_10; } return 300000000000000000000000000000000000000.0; } metal::float3 probe_lookup( ProbeEntryU p_6, metal::float3 world_7, metal::float3 dir_6 ) { metal::float3 d_15 = (p_6.to_local * metal::float4(dir_6, 0.0)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } metal::float3 o_8 = (p_6.to_local * metal::float4(world_7, 1.0)).xyz; metal::float3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_8 = metal::max(metal::min(_e24, metal::min(_e28, _e32)), 0.0); return (o_8 + (d_15 * t_8)) - p_6.offset.xyz; } metal::float4 probe_reflection( metal::float3 world_8, metal::float3 r_2, float roughness_2, uint probes, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc = metal::float3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = Probe.counts.x; uint count_1 = metal::min(_e12, MAX_PROBES); uint _e18 = Probe.counts.y; float lod_1 = roughness_2 * static_cast(metal::max(_e18, 1u) - 1u); uint2 loop_bound_14 = uint2(4294967295u); bool loop_init_14 = true; while(true) { if (metal::all(loop_bound_14 == uint2(0u))) { break; } loop_bound_14 -= uint2(loop_bound_14.y == 0u, 1u); if (!loop_init_14) { uint _e57 = i_8; i_8 = _e57 + 1u; } loop_init_14 = false; uint _e27 = i_8; if (_e27 < count_1) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = Probe.probes.inner[metal::min(unsigned(_e31), 7u)]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } float _e41 = probe_weight(p_10, world_8); if (_e41 <= 0.0) { continue; } metal::float3 _e44 = acc; metal::float3 _e47 = probe_lookup(p_10, world_8, r_2); metal::float3 _e48 = probe_sample(p_10.info.w, _e47, lod_1, Probe, t_probes, s_probes); acc = _e44 + ((_e48 * p_10.offset.w) * _e41); float _e54 = w_sum; w_sum = _e54 + _e41; } } float _e59 = w_sum; if (_e59 > 1.0) { metal::float3 _e62 = acc; float _e63 = w_sum; acc = _e62 / metal::float3(_e63); w_sum = 1.0; } metal::float3 _e67 = acc; float _e68 = w_sum; return metal::float4(_e67, _e68); } metal::float4 probe_ambient( metal::float3 world_9, metal::float3 n_7, uint probes_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc_1 = metal::float3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = {}; metal::float3 c_18 = {}; uint _e11 = Probe.counts.x; uint count_2 = metal::min(_e11, MAX_PROBES); uint _e17 = Probe.counts.y; uint last = metal::max(_e17, 1u) - 1u; uint2 loop_bound_15 = uint2(4294967295u); bool loop_init_15 = true; while(true) { if (metal::all(loop_bound_15 == uint2(0u))) { break; } loop_bound_15 -= uint2(loop_bound_15.y == 0u, 1u); if (!loop_init_15) { uint _e73 = i_9; i_9 = _e73 + 1u; } loop_init_15 = false; uint _e24 = i_9; if (_e24 < count_2) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = Probe.probes.inner[metal::min(unsigned(_e28), 7u)]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = p_11.info.y == PROBE_AMBIENT_DISABLED; } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if (_e47 <= 0.0) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { metal::float3 _e64 = probe_face_uv((p_11.to_local * metal::float4(n_7, 0.0)).xyz); metal::float3 _e65 = probe_texel(p_11.info.w, _e64, last, Probe, t_probes, s_probes); c_18 = _e65; } metal::float3 _e66 = acc_1; metal::float3 _e67 = c_18; acc_1 = _e66 + (_e67 * _e47); float _e70 = w_sum_1; w_sum_1 = _e70 + _e47; } } float _e75 = w_sum_1; if (_e75 > 1.0) { metal::float3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = _e78 / metal::float3(_e79); w_sum_1 = 1.0; } metal::float3 _e83 = acc_1; float _e84 = w_sum_1; return metal::float4(_e83, _e84); } metal::float4 skin_row( uint k_10, uint r_3, constant SkinU& Skin ) { metal::float4 _e10 = Skin.rows.inner[metal::min(unsigned((metal::min(k_10, 254u) * 3u) + r_3), 764u)]; return _e10; } SkinRows skin_rows( SkinIn s_1, constant SkinU& Skin ) { SkinRows m_1 = {}; metal::uint4 j_1 = s_1.joints; metal::float4 w_5 = s_1.weights; metal::float4 _e8 = skin_row(s_1.joints.x, 0u, Skin); metal::float4 _e13 = skin_row(s_1.joints.y, 0u, Skin); metal::float4 _e19 = skin_row(s_1.joints.z, 0u, Skin); metal::float4 _e25 = skin_row(s_1.joints.w, 0u, Skin); m_1.r0_ = (((s_1.weights.x * _e8) + (s_1.weights.y * _e13)) + (s_1.weights.z * _e19)) + (s_1.weights.w * _e25); metal::float4 _e32 = skin_row(s_1.joints.x, 1u, Skin); metal::float4 _e37 = skin_row(s_1.joints.y, 1u, Skin); metal::float4 _e43 = skin_row(s_1.joints.z, 1u, Skin); metal::float4 _e49 = skin_row(s_1.joints.w, 1u, Skin); m_1.r1_ = (((s_1.weights.x * _e32) + (s_1.weights.y * _e37)) + (s_1.weights.z * _e43)) + (s_1.weights.w * _e49); metal::float4 _e56 = skin_row(s_1.joints.x, 2u, Skin); metal::float4 _e61 = skin_row(s_1.joints.y, 2u, Skin); metal::float4 _e67 = skin_row(s_1.joints.z, 2u, Skin); metal::float4 _e73 = skin_row(s_1.joints.w, 2u, Skin); m_1.r2_ = (((s_1.weights.x * _e56) + (s_1.weights.y * _e61)) + (s_1.weights.z * _e67)) + (s_1.weights.w * _e73); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings( thread CustomOut& o_4 ) { return; } void hedra_load_varyings( CustomOut i_10 ) { return; } void light( ) { return; } void vertex_( constant Globals& G, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, constant HedraParams& hedra_p ) { metal::float4 view_pos = {}; bool local_20 = {}; float _e2 = hedra_p.lift; float shrink = 1.0 - (0.5 * _e2); metal::float4x4 _e8 = MODELVIEW_MATRIX; metal::float3 _e10 = VERTEX; view_pos = _e8 * metal::float4(_e10 * shrink, 1.0); metal::float4x4 _e18 = G.proj; metal::float4 _e19 = view_pos; metal::float4 clip_2 = _e18 * _e19; float _e24 = hedra_p.snap_resolution.x; if (_e24 > 0.0) { local_20 = clip_2.w > 0.0001; } else { local_20 = false; } bool _e33 = local_20; if (_e33) { metal::float2 _e36 = hedra_p.snap_resolution; metal::float2 half_res = _e36 * 0.5; metal::float2 snapped = metal::rint((clip_2.xy / metal::float2(clip_2.w)) * half_res) / half_res; metal::float4x4 _e47 = INV_PROJECTION_MATRIX; metal::float4 back_2 = _e47 * metal::float4(snapped * clip_2.w, clip_2.z, clip_2.w); view_pos = metal::float4(back_2.xyz / metal::float3(back_2.w), 1.0); } metal::float4 _e61 = view_pos; VERTEX = _e61.xyz; metal::float3x3 _e65 = MODELVIEW_NORMAL_MATRIX; metal::float3 _e67 = NORMAL; NORMAL = metal::normalize(_e65 * _e67); return; } void fragment_( thread metal::float2& UV, thread metal::float3& ALBEDO, constant HedraParams& hedra_p ) { metal::float2 _e1 = UV; float r_8 = metal::length(_e1 - metal::float2(0.5)) * 2.0; float _e15 = hedra_p.rings; float _e22 = hedra_p.rings; float ring = metal::floor((metal::clamp(1.0 - r_8, 0.0, 1.0) * _e15) + 0.999) / _e22; float _e26 = hedra_p.lift; float strength = ring * (1.0 - _e26); metal::float3 _e35 = hedra_p.shadow_color; ALBEDO = metal::mix(metal::float3(1.0), _e35, strength); return; } metal::float3x3 hedra_mat3_( metal::float4x4 m_2 ) { return metal::float3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } metal::float4x4 hedra_rigid_inverse( metal::float4x4 m_3 ) { metal::float3x3 _e1 = hedra_mat3_(m_3); metal::float3x3 r_9 = metal::transpose(_e1); metal::float3 t_9 = -((r_9 * m_3[3].xyz)); return metal::float4x4(metal::float4(r_9[0], 0.0), metal::float4(r_9[1], 0.0), metal::float4(r_9[2], 0.0), metal::float4(t_9, 1.0)); } metal::float4x4 hedra_inv_projection( constant Globals& G ) { metal::float4 _e2 = G.wire_color; metal::float4 _e5 = G.select_color; metal::float4 _e8 = G.active_color; metal::float4 _e11 = G.grid; return metal::float4x4(_e2, _e5, _e8, _e11); } metal::float2 hedra_godot_uv( metal::float2 uv_1 ) { return metal::float2(uv_1.x, 1.0 - uv_1.y); } bool hedra_transparent( ) { bool local_21 = {}; bool local_22 = {}; if (HEDRA_ALPHA) { local_21 = true; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = true; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored( uint flags_1, constant ObjectU& O ) { uint _e4 = O.extra.x; return ((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u); } void hedra_matrices( metal::float4x4 model, metal::float3x3 normal, constant Globals& G, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD ) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; metal::float4x4 _e7 = G.view; metal::float4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; metal::float4x4 _e10 = hedra_inv_projection(G); INV_PROJECTION_MATRIX = _e10; metal::float4x4 _e14 = G.view; MODELVIEW_MATRIX = _e14 * model; metal::float4x4 _e19 = G.view; metal::float3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = _e20 * normal; NODE_POSITION_WORLD = model[3].xyz; metal::float4x4 _e28 = G.view; NODE_POSITION_VIEW = (_e28 * metal::float4(model[3].xyz, 1.0)).xyz; metal::float4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex( metal::float3 pos, metal::float3 normal_1, metal::float4 tangent, metal::float2 uv_2, metal::float2 uv2_, metal::float4 color, uint vid_3, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& VERTEX_ID, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX ) { bool local_23 = {}; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = metal::cross(normal_1, tangent.xyz) * tangent.w; metal::float2 _e17 = hedra_godot_uv(uv_2); UV = _e17; metal::float2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = static_cast(vid_3); POSITION = metal::float4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_23 = false; } else { local_23 = false; } bool _e31 = local_23; if (_e31) { metal::float4x4 _e34 = MODEL_MATRIX; metal::float3 _e36 = VERTEX; VERTEX = (_e34 * metal::float4(_e36, 1.0)).xyz; metal::float3x3 _e43 = MODEL_NORMAL_MATRIX; metal::float3 _e45 = NORMAL; NORMAL = _e43 * _e45; metal::float3x3 _e49 = MODEL_NORMAL_MATRIX; metal::float3 _e51 = TANGENT; TANGENT = _e49 * _e51; metal::float3x3 _e55 = MODEL_NORMAL_MATRIX; metal::float3 _e57 = BINORMAL; BINORMAL = _e55 * _e57; return; } else { return; } } CustomOut hedra_end_vertex( metal::float4 world_10, metal::float3 n_8, metal::float3 t, float tw, uint flags_2, constant Globals& G, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& INSTANCE_ID ) { CustomOut out_2 = {}; metal::float4x4 _e9 = G.view_proj; out_2.clip = _e9 * world_10; if (HEDRA_USES_POSITION) { metal::float4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = metal::normalize(n_8); metal::float2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = metal::float4(metal::normalize(t), tw); metal::float4 _e28 = COLOR; out_2.color = _e28; metal::float2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = static_cast(metal::max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space( ) { bool local_24 = {}; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } metal::float4 hedra_vertex_world( thread metal::float3& VERTEX, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e2 = INV_VIEW_MATRIX; metal::float3 _e4 = VERTEX; return _e2 * metal::float4(_e4, 1.0); } metal::float3 _e9 = VERTEX; return metal::float4(_e9, 1.0); } metal::float3 hedra_vertex_dir( metal::float3 d_11, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e3 = INV_VIEW_MATRIX; metal::float3x3 _e4 = hedra_mat3_(_e3); return _e4 * d_11; } return d_11; } float hedra_tangent_sign( float w, bool flip, constant ObjectU& O ) { uint _e5 = O.extra.x; return w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); } void hedra_fragment( CustomOut in_7, bool facing_4, constant Globals& G, constant ObjectU& O, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD, thread metal::float3& LIGHT_VERTEX, thread metal::float4& FRAGCOORD, thread bool& FRONT_FACING, thread metal::float3& VIEW, thread metal::float3& NORMAL_MAP, thread float& NORMAL_MAP_DEPTH, thread metal::float3& ALBEDO, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread float& PREMUL_ALPHA_FACTOR, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread metal::float2& SCREEN_UV, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n, thread bool& hedra_front, constant HedraParams& hedra_p ) { metal::float3 t_1 = {}; metal::float3 nm = {}; bool _e3 = hedra_mirrored(in_7.flags, O); bool front = facing_4 != _e3; hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; metal::float4 _e14 = G.viewport; SCREEN_UV = in_7.clip.xy * _e14.zw; metal::float4x4 _e19 = O.model; metal::float4x4 _e22 = O.normal; metal::float3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); metal::float4x4 _e26 = G.view; metal::float3x3 _e27 = hedra_mat3_(_e26); metal::float3 n_geo_2 = front ? metal::normalize(in_7.normal) : -(metal::normalize(in_7.normal)); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; metal::float3 _e41 = t_1; metal::float3 _e42 = t_1; t_1 = metal::normalize(_e41 - (n_geo_2 * metal::dot(n_geo_2, _e42))); metal::float3 _e47 = t_1; metal::float3 b_4 = metal::cross(n_geo_2, _e47) * in_7.tangent.w; metal::float4x4 _e55 = G.view; VERTEX = (_e55 * metal::float4(in_7.world, 1.0)).xyz; metal::float3 _e63 = VERTEX; LIGHT_VERTEX = _e63; metal::float3 vertex0_ = VERTEX; NORMAL = metal::normalize(_e27 * n_geo_2); metal::float3 normal0_ = NORMAL; metal::float3 _e72 = t_1; TANGENT = metal::normalize(_e27 * _e72); BINORMAL = metal::normalize(_e27 * b_4); metal::float3 _e80 = VERTEX; float _e90 = G.camera_pos.w; VIEW = (_e90 > 0.5) ? metal::float3(0.0, 0.0, 1.0) : metal::normalize(-(_e80)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = metal::float3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = metal::float3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = metal::float3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = metal::float3(0.0); hedra_load_varyings(in_7); fragment_(UV, ALBEDO, hedra_p); metal::float3x3 back_3 = metal::transpose(_e27); metal::float3 _e136 = NORMAL; if (metal::any(_e136 != normal0_)) { metal::float3 _e141 = NORMAL; hedra_n = metal::normalize(back_3 * _e141); } metal::float3 _e145 = NORMAL_MAP; if (metal::any(_e145 != metal::float3(0.5))) { metal::float3 _e151 = NORMAL_MAP; nm = _e151; metal::float3 _e153 = nm; nm = metal::float3((_e153.xy * 2.0) - metal::float2(1.0), 0.0); metal::float3 _e163 = nm; metal::float3 _e165 = nm; nm.z = metal::sqrt(metal::max(0.0, 1.0 - metal::dot(_e163.xy, _e165.xy))); metal::float3 _e175 = NORMAL; metal::float3 _e177 = TANGENT; float _e179 = nm.x; metal::float3 _e182 = BINORMAL; float _e184 = nm.y; metal::float3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = metal::normalize(metal::mix(_e175, ((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190), _e194)); metal::float3 _e199 = NORMAL; hedra_n = metal::normalize(back_3 * _e199); } metal::float3 _e203 = LIGHT_VERTEX; if (metal::any(_e203 != vertex0_)) { metal::float4x4 _e208 = INV_VIEW_MATRIX; metal::float3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * metal::float4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled( uint flags_3, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread bool& hedra_front ) { bool local_25 = {}; bool local_26 = {}; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if (false) { bool _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } bool _e12 = local_25; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = _e18 < _e20; } else { local_26 = false; } bool _e23 = local_26; return _e23; } metal::float3 hedra_view_dir( metal::float3 world_11, constant Globals& G ) { float _e5 = G.view[0].z; float _e10 = G.view[1].z; float _e15 = G.view[2].z; metal::float3 view_dir = metal::float3(_e5, _e10, _e15); metal::float4 _e19 = G.camera_pos; float _e27 = G.camera_pos.w; return (_e27 > 0.5) ? metal::normalize(view_dir) : metal::normalize(_e19.xyz - world_11); } float hedra_schlick( float u ) { float m_5 = metal::clamp(1.0 - u, 0.0, 1.0); float m2_ = m_5 * m_5; return (m2_ * m2_) * m_5; } float hedra_diffuse_brdf( float nl_1, float nv_2, float lh, float r_4 ) { float c_nl = metal::max(nl_1, 0.0); if (false) { return metal::max(0.0, (nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4))) * 0.31830987; } if (false) { return metal::smoothstep(-(r_4), metal::max(r_4, 0.01), nl_1) * 0.31830987; } if (false) { float fd90_ = (((2.0 * lh) * lh) * r_4) - 0.5; float _e32 = hedra_schlick(nv_2); float fdv = 1.0 + (fd90_ * _e32); float _e36 = hedra_schlick(c_nl); float fdl = 1.0 + (fd90_ * _e36); return ((0.31830987 * fdv) * fdl) * c_nl; } return c_nl * 0.31830987; } metal::float3 hedra_light_modes( metal::float3 n_9, metal::float3 v_3, metal::float3 l_3, metal::float3 radiance_2, metal::float3 diffuse_1, metal::float3 f0_2, float a2_3, float r_5, float specular_1 ) { metal::float3 c_19 = {}; float mid = {}; bool local_27 = {}; float nl_3 = metal::min(metal::dot(n_9, l_3), 1.0); float nv_4 = metal::max(metal::dot(n_9, v_3), 0.0001); metal::float3 h_3 = metal::normalize(l_3 + v_3); float lh_1 = metal::clamp(metal::dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = (diffuse_1 * _e21) * radiance_2; if (r_5 > 0.0) { if (false) { metal::float3 refl = metal::normalize(-(metal::reflect(l_3, n_9))); float rv = metal::dot(refl, v_3); mid = 1.0 - r_5; float _e35 = mid; float _e36 = mid; mid = _e35 * _e36; metal::float3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = _e38 + ((diffuse_1 * radiance_2) * ((metal::smoothstep(_e40 - (r_5 * 0.5), _e44 + (r_5 * 0.5), rv) * _e49) * specular_1)); } else { if (false) { local_27 = nl_3 > 0.0; } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = metal::max(metal::dot(n_9, h_3), 0.0); float vh_2 = metal::max(metal::dot(v_3, h_3), 0.0); metal::float3 _e67 = f_schlick(f0_2, vh_2); metal::float3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = _e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2); } } } metal::float3 _e77 = c_19; return _e77; } metal::float4 hedra_light_dir( uint i_11, metal::float3 world_12, constant LitU& Lit ) { float atten_1 = {}; LightU li_1 = Lit.lights.inner[metal::min(unsigned(i_11), 63u)]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return metal::float4(-(li_1.direction.xyz), 1.0); } metal::float3 rel_1 = li_1.position.xyz - world_12; float d_16 = metal::length(rel_1); metal::float3 l_7 = rel_1 / metal::float3(metal::max(d_16, 0.000001)); float _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { float cone = li_1.spot.x; float scos = metal::max(metal::dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = metal::max(0.0001, (1.0 - scos) / metal::max(1.0 - cone, 0.000001)); float _e49 = atten_1; atten_1 = _e49 * (1.0 - metal::pow(rim_1, li_1.spot.y)); } float _e56 = atten_1; return metal::float4(l_7, _e56); } float hedra_shadow( uint i_12, metal::float3 l_4, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo ) { bool local_28 = {}; if (false) { uint _e10 = Lit.lights.inner[metal::min(unsigned(i_12), 63u)].info.y; local_28 = _e10 != LIGHT_SHADOWED; } else { local_28 = true; } bool _e14 = local_28; if (_e14) { return 1.0; } metal::float3 _e17 = hedra_world; metal::float3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4, G, Lit, Shadow, t_shadow, s_shadow); return _e20; } metal::float3 hedra_ambient( metal::float3 n_10, metal::float3 v_4, metal::float3 diffuse_2, metal::float3 f0_3, float roughness_3, float metallic, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, thread metal::float3& hedra_world ) { metal::float3 ambient = {}; metal::float3 diffuse_amb = {}; metal::float3 spec_amb = {}; metal::float3 dif = {}; metal::float3 dif_1 = {}; metal::float3 dif_2 = {}; metal::float3 world_13 = hedra_world; float nv_5 = metal::max(metal::dot(n_10, v_4), 0.0001); metal::float3 f_amb = f0_3 + ((metal::max(metal::float3(1.0 - roughness_3), f0_3) - f0_3) * metal::pow(1.0 - nv_5, 5.0)); metal::float4 _e25 = gi_diffuse(n_10, false, metal::float3(0.0), O); uint _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { float _e38 = Sky.ibl.x; float _e42 = Sky.sun.w; float scale = _e38 * _e42; metal::float4 _e46 = Sky.ambient; diffuse_amb = _e46.xyz; uint _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { metal::float4 _e59 = Sky.ambient; metal::float3 _e61 = sky_dir(n_10, Sky); metal::float3 _e62 = sh_irradiance(_e61, Sky); float _e67 = Sky.ambient.w; diffuse_amb = metal::mix(_e59.xyz, _e62 * scale, _e67); } if (_e25.w > 0.0) { diffuse_amb = _e25.xyz; } metal::float4 _e75 = Sky.ambient; spec_amb = _e75.xyz; uint _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { metal::float3 _e88 = sky_dir(metal::reflect(-(v_4), n_10), Sky); metal::float3 _e89 = radiance_1(_e88, roughness_3, Sky, t_radiance, s_radiance); spec_amb = _e89 * scale; } else { uint _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = metal::float3(0.0); } } metal::float2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = Probe.counts.x; if (_e105 > 0u) { uint _e113 = O.extra.z; metal::float4 _e114 = probe_reflection(world_13, metal::reflect(-(v_4), n_10), roughness_3, _e113, Probe, t_probes, s_probes); metal::float3 _e115 = spec_amb; metal::float3 spec_1 = (_e115 * (1.0 - _e114.w)) + _e114.xyz; metal::float3 _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0.0) { uint _e130 = O.extra.z; metal::float4 _e131 = probe_ambient(world_13, n_10, _e130, Probe, t_probes, s_probes); metal::float3 _e132 = diffuse_amb; dif = (_e132 * (1.0 - _e131.w)) + _e131.xyz; } metal::float3 _e139 = dif; ambient = (diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } else { metal::float3 _e154 = diffuse_amb; metal::float3 _e156 = spec_amb; ambient = (diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } } else { uint _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { metal::float4 _e180 = Lit.up; metal::float3 up = _e180.xyz; metal::float4 _e184 = Lit.sky_top; metal::float4 _e188 = Lit.sky_horizon; metal::float3 sky_avg = (_e184.xyz + _e188.xyz) * 0.5; metal::float4 _e195 = Lit.ground_horizon; metal::float4 _e199 = Lit.ground_bottom; metal::float3 ground_avg = (_e195.xyz + _e199.xyz) * 0.5; metal::float3 irradiance = metal::mix(ground_avg, sky_avg, metal::clamp((metal::dot(n_10, up) * 0.5) + 0.5, 0.0, 1.0)); metal::float3 _e215 = sky(metal::reflect(-(v_4), n_10), Lit); metal::float3 blurred = metal::mix(_e215, sky_avg, roughness_3); uint _e220 = Probe.counts.x; if (_e220 > 0u) { uint _e228 = O.extra.z; metal::float4 _e229 = probe_reflection(world_13, metal::reflect(-(v_4), n_10), roughness_3, _e228, Probe, t_probes, s_probes); float _e233 = Lit.ambient.w; metal::float3 spec_2 = ((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz; dif_1 = _e25.xyz; if (_e25.w <= 0.0) { uint _e249 = O.extra.z; metal::float4 _e250 = probe_ambient(world_13, n_10, _e249, Probe, t_probes, s_probes); float _e254 = Lit.ambient.w; dif_1 = ((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz; } metal::float3 _e262 = dif_1; ambient = (diffuse_2 * _e262) + (spec_2 * f_amb); } else { if (_e25.w > 0.0) { float _e275 = Lit.ambient.w; ambient = (diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275); } else { float _e284 = Lit.ambient.w; ambient = ((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284; } } } else { uint _e289 = Probe.counts.x; if (_e289 > 0u) { uint _e297 = O.extra.z; metal::float4 _e298 = probe_reflection(world_13, metal::reflect(-(v_4), n_10), roughness_3, _e297, Probe, t_probes, s_probes); metal::float4 _e301 = Lit.ambient; metal::float3 spec_3 = (_e301.xyz * (1.0 - _e298.w)) + _e298.xyz; dif_2 = _e25.xyz; if (_e25.w <= 0.0) { uint _e317 = O.extra.z; metal::float4 _e318 = probe_ambient(world_13, n_10, _e317, Probe, t_probes, s_probes); metal::float4 _e321 = Lit.ambient; dif_2 = (_e321.xyz * (1.0 - _e318.w)) + _e318.xyz; } metal::float3 _e329 = dif_2; ambient = (diffuse_2 * _e329) + (spec_3 * f_amb); } else { if (_e25.w > 0.0) { metal::float4 _e340 = Lit.ambient; ambient = (diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb); } else { metal::float4 _e346 = Lit.ambient; ambient = _e346.xyz * (diffuse_2 + f_amb); } } } } metal::float3 _e350 = ambient; return _e350; } metal::float3 hedra_fog( metal::float3 c_in_1, metal::float3 v_5, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant FogU& Fog, thread metal::float3& hedra_world ) { metal::float3 c_20 = {}; c_20 = c_in_1; if (HEDRA_FOG_DISABLED) { metal::float3 _e4 = c_20; return _e4; } uint _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { metal::float3 _e13 = c_20; metal::float3 _e15 = hedra_world; metal::float3 _e17 = surface_fog(_e13, _e15, -(v_5), G, Lit, Sky, t_radiance, s_radiance); c_20 = _e17; } uint _e21 = O.decals.w; if (_e21 != 0u) { metal::float3 _e24 = c_20; metal::float3 _e26 = hedra_world; uint _e30 = O.decals.w; metal::float3 _e31 = fog_volumes(_e24, _e26, _e30, G, Lit, Fog); c_20 = _e31; } metal::float3 _e32 = c_20; return _e32; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } metal::float3 hedra_lit( metal::float4 clip, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals, constant FogU& Fog, thread metal::float3& NORMAL, thread metal::float3& ALBEDO, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread float& SPECULAR_AMOUNT, thread metal::float3& LIGHT, thread metal::float3& LIGHT_COLOR, thread bool& LIGHT_IS_DIRECTIONAL, thread float& ATTENUATION, thread metal::float3& DIFFUSE_LIGHT, thread metal::float3& SPECULAR_LIGHT, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n ) { DecalSurface surf_1 = {}; metal::float3 c_21 = metal::float3(0.0); uint k_11 = 0u; bool local_29 = {}; metal::float3 radiance_3 = {}; bool local_30 = {}; bool local_31 = {}; metal::float3 ambient_1 = metal::float3(0.0); bool local_32 = {}; metal::float3 n_geo_3 = hedra_n_geo; metal::float3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; metal::float3 _e18 = hedra_n; metal::float3 _e20 = EMISSION; surf_1 = DecalSurface {_e4, metal::clamp(_e6, 0.0, 1.0), metal::clamp(_e11, 0.045, 1.0), _e16, {}, _e18, _e20}; uint _e26 = O.decals.z; if (_e26 > 0u) { metal::float3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31, G, O, Decal, t_decals, s_decals); surf_1 = _e32; metal::float3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; metal::float4x4 _e45 = G.view; metal::float3x3 _e46 = hedra_mat3_(_e45); metal::float3 _e48 = surf_1.normal; NORMAL = metal::normalize(_e46 * _e48); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = ((roughness_4 * roughness_4) * roughness_4) * roughness_4; metal::float3 base = surf_1.base; metal::float3 diffuse_3 = base * (1.0 - metallic_1); float _e64 = SPECULAR; float _e68 = SPECULAR; metal::float3 f0_4 = metal::mix(metal::float3((0.16 * _e64) * _e68), base, metallic_1); metal::float3 n_13 = surf_1.normal; metal::float3 _e75 = hedra_world; metal::float3 _e76 = hedra_view_dir(_e75, G); metal::float4x4 _e79 = G.view; metal::float3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = metal::mix(1.0, _e82, _e84); DIFFUSE_LIGHT = metal::float3(0.0); SPECULAR_LIGHT = metal::float3(0.0); uint _e96 = object_light_count(O); uint2 loop_bound_16 = uint2(4294967295u); bool loop_init_16 = true; while(true) { if (metal::all(loop_bound_16 == uint2(0u))) { break; } loop_bound_16 -= uint2(loop_bound_16.y == 0u, 1u); if (!loop_init_16) { uint _e238 = k_11; k_11 = _e238 + 1u; } loop_init_16 = false; uint _e99 = k_11; if (_e99 < _e96) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101, O); LightU li_2 = Lit.lights.inner[metal::min(unsigned(_e102), 63u)]; metal::float3 _e108 = hedra_world; metal::float4 _e109 = hedra_light_dir(_e102, _e108, Lit); metal::float3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_29 = atten_2 > 0.0; } else { local_29 = true; } bool _e123 = local_29; if (_e123) { LIGHT = metal::normalize(_e80 * l_8); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8, G, Lit, Shadow, t_shadow, s_shadow, hedra_world, hedra_n_geo); ATTENUATION = atten_2 * _e131; LIGHT_IS_DIRECTIONAL = li_2.info.x == LIGHT_DIRECTIONAL; SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if (_e142 > 0.0) { float rim_light = metal::pow(metal::max(0.0001, 1.0 - metal::max(metal::dot(n_13, _e76), 0.0001)), metal::max(0.0, (1.0 - roughness_4) * 16.0)); metal::float3 _e159 = c_21; float _e164 = RIM; float _e170 = RIM_TINT; c_21 = _e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * metal::mix(metal::float3(1.0), base, _e170)); } if (atten_2 > 0.0) { radiance_3 = li_2.color.xyz * atten_2; if (li_2.info.y == LIGHT_SHADOWED) { local_30 = false; } else { local_30 = false; } bool _e188 = local_30; if (_e188) { metal::float3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8, G, Lit, Shadow, t_shadow, s_shadow); radiance_3 = li_2.color.xyz * (atten_2 * _e193); } if (true) { local_31 = false; } else { local_31 = false; } bool _e201 = local_31; if (_e201) { metal::float3 _e202 = c_21; metal::float3 _e203 = radiance_3; metal::float3 _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_21 = _e202 + _e206; } else { metal::float3 _e208 = c_21; metal::float3 _e209 = radiance_3; metal::float3 _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = _e208 + _e212; } metal::float3 _e215 = BACKLIGHT; if (metal::any(_e215 > metal::float3(0.0))) { float nl_4 = metal::max(metal::min(metal::dot(n_13, l_8), 1.0), 0.0); metal::float3 _e225 = c_21; metal::float3 _e226 = radiance_3; metal::float3 _e229 = BACKLIGHT; c_21 = _e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987))); } } } } if (HEDRA_HAS_LIGHT) { metal::float3 _e242 = DIFFUSE_LIGHT; metal::float3 _e249 = SPECULAR_LIGHT; c_21 = (((_e242 * base) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct); } else { float _e253 = AO_LIGHT_AFFECT; if (_e253 > 0.0) { metal::float3 _e256 = c_21; c_21 = _e256 * ao_direct; } } if (true) { metal::float3 _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1, O, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes, hedra_world); ambient_1 = _e262; } uint _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { bool _e273 = hedra_transparent(); local_32 = !(_e273); } else { local_32 = false; } bool _e276 = local_32; if (_e276) { uint clamped_lod_e282 = metal::min(uint(0), t_ao.get_num_mip_levels() - 1); metal::float4 _e282 = t_ao.read(metal::min(metal::uint2(naga_f2i32(metal::floor(clip.xy))), metal::uint2(t_ao.get_width(clamped_lod_e282), t_ao.get_height(clamped_lod_e282)) - 1), clamped_lod_e282); float ssao = _e282.x; metal::float3 _e284 = c_21; float _e286 = surf_1.occlusion; float _e291 = Lit.tone.z; float _e295 = Lit.tone.w; c_21 = _e284 * metal::mix(1.0, metal::min(ssao, _e286), _e291 * _e295); metal::float3 _e300 = c_21; metal::float3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_21 = _e300 + (_e301 * metal::min(_e303, ssao)); } else { metal::float3 _e307 = c_21; metal::float3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_21 = _e307 + (_e308 * _e310); } metal::float3 _e313 = c_21; metal::float3 _e315 = surf_1.emission; c_21 = _e313 + _e315; metal::float3 _e317 = c_21; metal::float3 _e318 = hedra_fog(_e317, _e76, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e319 = tonemap(_e318, Lit); return _e319; } metal::float4 hedra_output( metal::float3 c_22, constant Globals& G, constant LitU& Lit, thread float& ALPHA, thread float& PREMUL_ALPHA_FACTOR ) { metal::float3 rgb = {}; rgb = c_22; if (false) { metal::float3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = _e3 * _e5; } metal::float3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); metal::float4 o_9 = metal::float4(_e7, _e10 ? _e9 : 1.0); uint _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return metal::float4(metal::max(o_9.xyz, metal::float3(0.0)), metal::clamp(o_9.w, 0.0, 1.0)); } metal::float4 k_17 = metal::clamp(o_9, metal::float4(0.0), metal::float4(1.0)); uint _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { metal::float3 _e45 = linear_to_srgb(k_17.xyz); return metal::float4(_e45, k_17.w); } return k_17; } metal::float3 hedra_bindings( metal::texture2d t_panorama, metal::sampler s_radiance, metal::sampler s_panorama, metal::texture2d_array t_lightmap, metal::sampler s_lightmap, metal::texture2d t_screen ) { metal::float2 uv_7 = metal::float2(0.5); metal::float4 _e5 = t_panorama.sample(s_panorama, uv_7, metal::level(0.0)); metal::float4 _e11 = t_lightmap.sample(s_lightmap, uv_7, 0, metal::level(0.0)); metal::float4 _e17 = t_screen.sample(s_radiance, uv_7, metal::level(0.0)); return (_e5.xyz + _e11.xyz) + _e17.xyz; } struct vs_customInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float2 uv1_ [[attribute(10)]]; }; struct vs_customOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_customOutput vs_custom( vs_customInput varyings [[stage_in]] , uint vid [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; const VsIn in = { varyings.pos_1, varyings.normal_2, varyings.uv_3, varyings.flags_4, {}, varyings.tangent_1, varyings.weight }; const auto uv1_ = varyings.uv1_; metal::float4x4 _e5 = O.model; metal::float4x4 _e8 = O.normal; metal::float3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, metal::float4(1.0), vid, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, hedra_p); float _e24 = hedra_tangent_sign(in.tangent.w, false, O); bool _e25 = hedra_vertex_space(); if (_e25) { metal::float4 _e26 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e28 = NORMAL; metal::float3 _e29 = hedra_vertex_dir(_e28, INV_VIEW_MATRIX); metal::float3 _e31 = TANGENT; metal::float3 _e32 = hedra_vertex_dir(_e31, INV_VIEW_MATRIX); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID); const auto _tmp = _e34; return vs_customOutput { _tmp.clip, _tmp.world, _tmp.normal, _tmp.uv, _tmp.flags, _tmp.tangent, _tmp.color, _tmp.uv2_, _tmp.instance_id, _tmp.hedra_v0_, _tmp.hedra_v1_, _tmp.hedra_v2_, _tmp.hedra_v3_ }; } metal::float4x4 _e37 = O.model; metal::float3 _e39 = VERTEX; metal::float4 world_14 = _e37 * metal::float4(_e39, 1.0); metal::float4x4 _e45 = O.normal; metal::float3 _e47 = NORMAL; metal::float3 n_14 = (_e45 * metal::float4(_e47, 0.0)).xyz; metal::float4x4 _e54 = O.model; metal::float3 _e56 = TANGENT; metal::float3 t_10 = (_e54 * metal::float4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_14, n_14, t_10, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID); const auto _tmp_1 = _e62; return vs_customOutput { _tmp_1.clip, _tmp_1.world, _tmp_1.normal, _tmp_1.uv, _tmp_1.flags, _tmp_1.tangent, _tmp_1.color, _tmp_1.uv2_, _tmp_1.instance_id, _tmp_1.hedra_v0_, _tmp_1.hedra_v1_, _tmp_1.hedra_v2_, _tmp_1.hedra_v3_ }; } struct vs_custom_instancedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float4 row0_ [[attribute(6)]]; metal::float4 row1_ [[attribute(7)]]; metal::float4 row2_ [[attribute(8)]]; metal::float4 color_1 [[attribute(9)]]; metal::float2 uv1_1 [[attribute(10)]]; metal::float4 custom [[attribute(14)]]; float id [[attribute(15)]]; }; struct vs_custom_instancedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_instancedOutput vs_custom_instanced( vs_custom_instancedInput varyings_1 [[stage_in]] , uint vid_1 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; const VsIn in_1 = { varyings_1.pos_1, varyings_1.normal_2, varyings_1.uv_3, varyings_1.flags_4, {}, varyings_1.tangent_1, varyings_1.weight }; const InstIn inst = { varyings_1.row0_, varyings_1.row1_, varyings_1.row2_, varyings_1.color_1 }; const auto uv1_1 = varyings_1.uv1_1; const HedraInstExtra extra = { varyings_1.custom, varyings_1.id }; metal::float3 bx = metal::float3(inst.row0_.x, inst.row1_.x, inst.row2_.x); metal::float3 by = metal::float3(inst.row0_.y, inst.row1_.y, inst.row2_.y); metal::float3 bz = metal::float3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = metal::dot(bx, metal::cross(by, bz)); bool flip_1 = det < 0.0; metal::float3x3 cofactor = metal::float3x3(metal::cross(by, bz), metal::cross(bz, bx), metal::cross(bx, by)) * (flip_1 ? -1.0 : 1.0); metal::float4x4 basis = metal::float4x4(metal::float4(bx, 0.0), metal::float4(by, 0.0), metal::float4(bz, 0.0), metal::float4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); metal::float4x4 _e55 = O.model; metal::float4x4 _e59 = O.normal; metal::float3x3 _e60 = hedra_mat3_(_e59); hedra_matrices(_e55 * basis, _e60 * cofactor, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = naga_f2i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, hedra_p); uint flags_4 = in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1, O); bool _e80 = hedra_vertex_space(); if (_e80) { metal::float4 _e81 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e83 = NORMAL; metal::float3 _e84 = hedra_vertex_dir(_e83, INV_VIEW_MATRIX); metal::float3 _e86 = TANGENT; metal::float3 _e87 = hedra_vertex_dir(_e86, INV_VIEW_MATRIX); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID); const auto _tmp_2 = _e88; return vs_custom_instancedOutput { _tmp_2.clip, _tmp_2.world, _tmp_2.normal, _tmp_2.uv, _tmp_2.flags, _tmp_2.tangent, _tmp_2.color, _tmp_2.uv2_, _tmp_2.instance_id, _tmp_2.hedra_v0_, _tmp_2.hedra_v1_, _tmp_2.hedra_v2_, _tmp_2.hedra_v3_ }; } metal::float3 _e90 = VERTEX; metal::float4 p1_ = metal::float4(_e90, 1.0); metal::float3 local_33 = metal::float3(metal::dot(inst.row0_, p1_), metal::dot(inst.row1_, p1_), metal::dot(inst.row2_, p1_)); metal::float4x4 _e102 = O.model; metal::float4 world_15 = _e102 * metal::float4(local_33, 1.0); metal::float4x4 _e108 = O.normal; metal::float3 _e110 = NORMAL; metal::float3 n_15 = (_e108 * metal::float4(cofactor * _e110, 0.0)).xyz; metal::float4x4 _e118 = O.model; metal::float3 _e121 = TANGENT; metal::float3 t_11 = (_e118 * metal::float4(metal::float3x3(bx, by, bz) * _e121, 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_15, n_15, t_11, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID); const auto _tmp_3 = _e127; return vs_custom_instancedOutput { _tmp_3.clip, _tmp_3.world, _tmp_3.normal, _tmp_3.uv, _tmp_3.flags, _tmp_3.tangent, _tmp_3.color, _tmp_3.uv2_, _tmp_3.instance_id, _tmp_3.hedra_v0_, _tmp_3.hedra_v1_, _tmp_3.hedra_v2_, _tmp_3.hedra_v3_ }; } struct vs_custom_skinnedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::uint4 joints [[attribute(12)]]; metal::float4 weights [[attribute(13)]]; metal::float2 uv1_2 [[attribute(10)]]; }; struct vs_custom_skinnedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_skinnedOutput vs_custom_skinned( vs_custom_skinnedInput varyings_2 [[stage_in]] , uint vid_2 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant SkinU& Skin [[buffer(6)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; const VsIn in_2 = { varyings_2.pos_1, varyings_2.normal_2, varyings_2.uv_3, varyings_2.flags_4, {}, varyings_2.tangent_1, varyings_2.weight }; const SkinIn s = { varyings_2.joints, varyings_2.weights }; const auto uv1_2 = varyings_2.uv1_2; SkinRows _e4 = skin_rows(s, Skin); metal::float4 p_12 = metal::float4(in_2.pos, 1.0); metal::float3 skinned = metal::float3(metal::dot(_e4.r0_, p_12), metal::dot(_e4.r1_, p_12), metal::dot(_e4.r2_, p_12)); metal::float3 bx_1 = metal::float3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); metal::float3 by_1 = metal::float3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); metal::float3 bz_1 = metal::float3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det_1 = metal::dot(bx_1, metal::cross(by_1, bz_1)); bool flip_2 = det_1 < 0.0; metal::float3x3 cofactor_1 = metal::float3x3(metal::cross(by_1, bz_1), metal::cross(bz_1, bx_1), metal::cross(bx_1, by_1)); metal::float3 n0_ = metal::normalize((cofactor_1 * in_2.normal) * (flip_2 ? -1.0 : 1.0)); metal::float3 t0_1 = metal::normalize(metal::float3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz); metal::float4x4 _e58 = O.model; metal::float4x4 _e61 = O.normal; metal::float3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(skinned, n0_, metal::float4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, metal::float4(1.0), vid_2, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, hedra_p); uint flags_5 = in_2.flags | (flip_2 ? F_INSTANCE_MIRRORED : 0u); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2, O); bool _e82 = hedra_vertex_space(); if (_e82) { metal::float4 _e83 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e85 = NORMAL; metal::float3 _e86 = hedra_vertex_dir(_e85, INV_VIEW_MATRIX); metal::float3 _e88 = TANGENT; metal::float3 _e89 = hedra_vertex_dir(_e88, INV_VIEW_MATRIX); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID); const auto _tmp_4 = _e90; return vs_custom_skinnedOutput { _tmp_4.clip, _tmp_4.world, _tmp_4.normal, _tmp_4.uv, _tmp_4.flags, _tmp_4.tangent, _tmp_4.color, _tmp_4.uv2_, _tmp_4.instance_id, _tmp_4.hedra_v0_, _tmp_4.hedra_v1_, _tmp_4.hedra_v2_, _tmp_4.hedra_v3_ }; } metal::float4x4 _e93 = O.model; metal::float3 _e95 = VERTEX; metal::float4 world_16 = _e93 * metal::float4(_e95, 1.0); metal::float4x4 _e101 = O.normal; metal::float3 _e103 = NORMAL; metal::float3 n_16 = (_e101 * metal::float4(_e103, 0.0)).xyz; metal::float4x4 _e110 = O.model; metal::float3 _e112 = TANGENT; metal::float3 t_12 = (_e110 * metal::float4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_16, n_16, t_12, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID); const auto _tmp_5 = _e117; return vs_custom_skinnedOutput { _tmp_5.clip, _tmp_5.world, _tmp_5.normal, _tmp_5.uv, _tmp_5.flags, _tmp_5.tangent, _tmp_5.color, _tmp_5.uv2_, _tmp_5.instance_id, _tmp_5.hedra_v0_, _tmp_5.hedra_v1_, _tmp_5.hedra_v2_, _tmp_5.hedra_v3_ }; } struct fs_customInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_customOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_customOutput fs_custom( fs_customInput varyings_3 [[stage_in]] , metal::float4 clip_3 [[position]] , bool facing [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant LitU& Lit [[buffer(1)]] , constant ShadowU& Shadow [[buffer(2)]] , metal::depth2d t_shadow [[texture(0)]] , metal::sampler s_shadow [[sampler(0)]] , constant SkyU& Sky [[buffer(3)]] , metal::texturecube t_radiance [[texture(4)]] , metal::texture2d t_panorama [[texture(5)]] , metal::sampler s_radiance [[sampler(2)]] , metal::sampler s_panorama [[sampler(3)]] , metal::texture2d t_ao [[texture(1)]] , metal::texture2d_array t_lightmap [[texture(6)]] , metal::sampler s_lightmap [[sampler(4)]] , constant ProbeU& Probe [[buffer(4)]] , metal::texture2d t_probes [[texture(7)]] , metal::sampler s_probes [[sampler(5)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] , constant FogU& Fog [[buffer(8)]] , metal::texture2d t_screen [[texture(3)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; float SPECULAR_AMOUNT = {}; metal::float3 LIGHT = {}; metal::float3 LIGHT_COLOR = {}; bool LIGHT_IS_DIRECTIONAL = {}; float ATTENUATION = {}; metal::float3 DIFFUSE_LIGHT = {}; metal::float3 SPECULAR_LIGHT = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; const CustomOut in_3 = { clip_3, varyings_3.world_13, varyings_3.normal_2, varyings_3.uv_3, varyings_3.flags_4, {}, varyings_3.tangent_1, varyings_3.color_1, varyings_3.uv2_1, varyings_3.instance_id, {}, varyings_3.hedra_v0_, varyings_3.hedra_v1_, varyings_3.hedra_v2_, varyings_3.hedra_v3_ }; metal::float3 c = {}; hedra_fragment(in_3, facing, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p); bool _e3 = hedra_culled(in_3.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (_e3) { metal::discard_fragment(); } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy, O); if (_e7 <= 0.0) { metal::discard_fragment(); } if (HEDRA_UNSHADED) { metal::float3 _e13 = ALBEDO; metal::float3 _e15 = hedra_world; metal::float3 _e16 = hedra_view_dir(_e15, G); metal::float3 _e17 = hedra_fog(_e13, _e16, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e18 = tonemap(_e17, Lit); c = _e18; } else { metal::float3 _e20 = hedra_lit(in_3.clip, G, O, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, Fog, NORMAL, ALBEDO, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SPECULAR_AMOUNT, LIGHT, LIGHT_COLOR, LIGHT_IS_DIRECTIONAL, ATTENUATION, DIFFUSE_LIGHT, SPECULAR_LIGHT, hedra_world, hedra_n_geo, hedra_n); c = _e20; } uint _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { metal::float3 _e27 = c; metal::float3 _e28 = hedra_bindings(t_panorama, s_radiance, s_panorama, t_lightmap, s_lightmap, t_screen); c = _e27 + _e28; } uint _e33 = G.params.x; if (_e33 == SHADE_LIT) { metal::float3 _e36 = c; metal::float3 _e37 = item_fade(_e36, O, Lit); metal::float3 _e38 = emerge_tint(_e37, _e7, O, Lit); c = _e38; } metal::float3 _e39 = c; metal::float4 _e40 = hedra_output(_e39, G, Lit, ALPHA, PREMUL_ALPHA_FACTOR); return fs_customOutput { _e40 }; } struct fs_custom_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; fragment void fs_custom_depth( fs_custom_depthInput varyings_4 [[stage_in]] , metal::float4 clip_4 [[position]] , bool facing_1 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; const CustomOut in_4 = { clip_4, varyings_4.world_13, varyings_4.normal_2, varyings_4.uv_3, varyings_4.flags_4, {}, varyings_4.tangent_1, varyings_4.color_1, varyings_4.uv2_1, varyings_4.instance_id, {}, varyings_4.hedra_v0_, varyings_4.hedra_v1_, varyings_4.hedra_v2_, varyings_4.hedra_v3_ }; bool local = {}; bool local_1 = {}; hedra_fragment(in_4, facing_1, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = _e14 < _e16; } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { metal::discard_fragment(); } float _e25 = emerge_reveal(in_4.world, metal::float2(-1.0), O); if (_e25 <= 0.0) { metal::discard_fragment(); } else { return; } } struct fs_custom_idInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_idOutput { metal::float4 id [[color(0)]]; }; fragment fs_custom_idOutput fs_custom_id( fs_custom_idInput varyings_5 [[stage_in]] , metal::float4 clip_5 [[position]] , bool facing_2 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; const CustomOut in_5 = { clip_5, varyings_5.world_13, varyings_5.normal_2, varyings_5.uv_3, varyings_5.flags_4, {}, varyings_5.tangent_1, varyings_5.color_1, varyings_5.uv2_1, varyings_5.instance_id, {}, varyings_5.hedra_v0_, varyings_5.hedra_v1_, varyings_5.hedra_v2_, varyings_5.hedra_v3_ }; bool local_2 = {}; IdOut out = {}; hedra_fragment(in_5, facing_2, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p); bool _e3 = hedra_culled(in_5.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy, O); local_2 = _e10 <= 0.0; } else { local_2 = true; } bool _e14 = local_2; if (_e14) { metal::discard_fragment(); } uint id = O.params.z; uint _e24 = O.params.x; uint _e33 = O.params.y; uint bits = ((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u); out.id = metal::float4(static_cast(id & 255u), static_cast((id >> 8u) & 255u), static_cast((id >> 16u) & 255u), static_cast(bits)) / metal::float4(255.0); IdOut _e58 = out; const auto _tmp_6 = _e58; return fs_custom_idOutput { _tmp_6.id }; } struct fs_custom_normal_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_normal_depthOutput { metal::float4 normal_depth [[color(0)]]; metal::float4 surface [[color(1)]]; }; fragment fs_custom_normal_depthOutput fs_custom_normal_depth( fs_custom_normal_depthInput varyings_6 [[stage_in]] , metal::float4 clip_6 [[position]] , bool facing_3 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; const CustomOut in_6 = { clip_6, varyings_6.world_13, varyings_6.normal_2, varyings_6.uv_3, varyings_6.flags_4, {}, varyings_6.tangent_1, varyings_6.color_1, varyings_6.uv2_1, varyings_6.instance_id, {}, varyings_6.hedra_v0_, varyings_6.hedra_v1_, varyings_6.hedra_v2_, varyings_6.hedra_v3_ }; bool local_3 = {}; HedraNormalDepthOut out_1 = {}; hedra_fragment(in_6, facing_3, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p); bool _e3 = hedra_culled(in_6.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy, O); local_3 = _e10 <= 0.0; } else { local_3 = true; } bool _e14 = local_3; if (_e14) { metal::discard_fragment(); } metal::float4x4 _e17 = G.view; metal::float3x3 _e18 = hedra_mat3_(_e17); metal::float3 _e20 = hedra_n; metal::float3 n_view = metal::normalize(_e18 * _e20); float _e24 = METALLIC; float metallic_2 = metal::clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; metal::float3 _e37 = ALBEDO; metal::float3 f0_5 = metal::mix(metal::float3((0.16 * _e29) * _e33), _e37, metallic_2); metal::float4x4 _e43 = G.view; out_1.normal_depth = metal::float4(n_view, -((_e43 * metal::float4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = metal::float4(metal::clamp(f0_5, metal::float3(0.0), metal::float3(1.0)), metal::clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; const auto _tmp_7 = _e63; return fs_custom_normal_depthOutput { _tmp_7.normal_depth, _tmp_7.surface }; }  @Ð Ð/ ,@  {Ðþ—4ÌhÜäF‚�SKw;�ƒcàÄèHoçÌÜÙOQ¬ vs_custommain>7struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 shadow_color; float lift; float rings; float hedra_pad0; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1354 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1205 = transpose(hedra_mat3(m)); return float4x4(float4(_1205[0], 0.0f), float4(_1205[1], 0.0f), float4(_1205[2], 0.0f), float4(-mul(m[3].xyz, _1205), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1311 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1311 = false; } else { _1311 = false; } if (_1311) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { float4 view_pos = float4(0.0f, 0.0f, 0.0f, 0.0f); bool _1131 = false; view_pos = mul(float4(VERTEX * (1.0f - (0.5f * hedra_p_1_m0.lift)), 1.0f), MODELVIEW_MATRIX); float4 _1146 = mul(view_pos, G_1_m0.proj); if (hedra_p_1_m0.snap_resolution.x > 0.0f) { _1131 = _1146.w > 9.9999997473787516355514526367188e-05f; } else { _1131 = false; } if (_1131) { float2 _1161 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1175 = mul(float4((round((_1146.xy / float2(_1146.ww)) * _1161) / _1161) * _1146.w, _1146.zw), INV_PROJECTION_MATRIX); view_pos = float4(_1175.xyz / float3(_1175.www), 1.0f); } VERTEX = view_pos.xyz; NORMAL = normalize(mul(NORMAL, MODELVIEW_NORMAL_MATRIX)); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1388 = false; if (false) { _1388 = false; } else { _1388 = true; } return _1388; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(CustomOut o) { } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1354; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1584 = { pos, normal, uv, flags, tangent, weight }; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(_1584.pos, _1584.normal, _1584.tangent, _1584.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); float _1642 = hedra_tangent_sign(_1584.tangent.w, false); if (hedra_vertex_space()) { CustomOut _1652 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1642, _1584.flags); gl_Position = _1652.clip; world = _1652.world; normal_1 = _1652.normal; uv_1 = _1652.uv; flags_1 = _1652.flags; tangent_1 = _1652.tangent; color = _1652.color; uv2 = _1652.uv2; instance_id = _1652.instance_id; hedra_v0 = _1652.hedra_v0; hedra_v1 = _1652.hedra_v1; hedra_v2 = _1652.hedra_v2; hedra_v3 = _1652.hedra_v3; return; } CustomOut _1684 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1642, _1584.flags); gl_Position = _1684.clip; world = _1684.world; normal_1 = _1684.normal; uv_1 = _1684.uv; flags_1 = _1684.flags; tangent_1 = _1684.tangent; color = _1684.color; uv2 = _1684.uv2; instance_id = _1684.instance_id; hedra_v0 = _1684.hedra_v0; hedra_v1 = _1684.hedra_v1; hedra_v2 = _1684.hedra_v2; hedra_v3 = _1684.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_instancedmainf<struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 shadow_color; float lift; float rings; float hedra_pad0; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1354 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 row0; static float4 row1; static float4 row2; static float4 color; static float2 uv1; static float4 custom; static float id; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color_1; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 row0 : TEXCOORD6; float4 row1 : TEXCOORD7; float4 row2 : TEXCOORD8; float4 color : TEXCOORD9; float2 uv1 : TEXCOORD10; float4 custom : TEXCOORD14; float id : TEXCOORD15; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color_1 : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1205 = transpose(hedra_mat3(m)); return float4x4(float4(_1205[0], 0.0f), float4(_1205[1], 0.0f), float4(_1205[2], 0.0f), float4(-mul(m[3].xyz, _1205), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_2, uint vid) { bool _1311 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_2; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1311 = false; } else { _1311 = false; } if (_1311) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { float4 view_pos = float4(0.0f, 0.0f, 0.0f, 0.0f); bool _1131 = false; view_pos = mul(float4(VERTEX * (1.0f - (0.5f * hedra_p_1_m0.lift)), 1.0f), MODELVIEW_MATRIX); float4 _1146 = mul(view_pos, G_1_m0.proj); if (hedra_p_1_m0.snap_resolution.x > 0.0f) { _1131 = _1146.w > 9.9999997473787516355514526367188e-05f; } else { _1131 = false; } if (_1131) { float2 _1161 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1175 = mul(float4((round((_1146.xy / float2(_1146.ww)) * _1161) / _1161) * _1146.w, _1146.zw), INV_PROJECTION_MATRIX); view_pos = float4(_1175.xyz / float3(_1175.www), 1.0f); } VERTEX = view_pos.xyz; NORMAL = normalize(mul(NORMAL, MODELVIEW_NORMAL_MATRIX)); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1388 = false; if (false) { _1388 = false; } else { _1388 = true; } return _1388; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(CustomOut o) { } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1354; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1584 = { pos, normal, uv, flags, tangent, weight }; InstIn _1602 = { row0, row1, row2, color }; HedraInstExtra _1613 = { custom, id }; float3 _1648 = float3(_1602.row0.x, _1602.row1.x, _1602.row2.x); float3 _1655 = float3(_1602.row0.y, _1602.row1.y, _1602.row2.y); float3 _1662 = float3(_1602.row0.z, _1602.row1.z, _1602.row2.z); bool _1665 = dot(_1648, cross(_1655, _1662)) < 0.0f; float3x3 _1671 = float3x3(cross(_1655, _1662), cross(_1662, _1648), cross(_1648, _1655)) * (_1665 ? (-1.0f) : 1.0f); hedra_matrices(mul(float4x4(float4(_1648, 0.0f), float4(_1655, 0.0f), float4(_1662, 0.0f), float4(_1602.row0.w, _1602.row1.w, _1602.row2.w, 1.0f)), O_1_m0.model), mul(_1671, hedra_mat3(O_1_m0.normal))); INSTANCE_ID = int(clamp(_1613.id, -2147483648.0f, 2147483520.0f)); INSTANCE_CUSTOM = _1613.custom; hedra_begin_vertex(_1584.pos, _1584.normal, _1584.tangent, _1584.uv, uv1, _1602.color, uint(gl_VertexIndex)); vertex(); uint _1706 = _1584.flags | (_1665 ? 128u : 0u); float _1709 = hedra_tangent_sign(_1584.tangent.w, _1665); if (hedra_vertex_space()) { CustomOut _1718 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1709, _1706); gl_Position = _1718.clip; world = _1718.world; normal_1 = _1718.normal; uv_1 = _1718.uv; flags_1 = _1718.flags; tangent_1 = _1718.tangent; color_1 = _1718.color; uv2 = _1718.uv2; instance_id = _1718.instance_id; hedra_v0 = _1718.hedra_v0; hedra_v1 = _1718.hedra_v1; hedra_v2 = _1718.hedra_v2; hedra_v3 = _1718.hedra_v3; return; } float4 _1733 = float4(VERTEX, 1.0f); CustomOut _1760 = hedra_end_vertex(mul(float4(float3(dot(_1602.row0, _1733), dot(_1602.row1, _1733), dot(_1602.row2, _1733)), 1.0f), O_1_m0.model), mul(float4(mul(NORMAL, _1671), 0.0f), O_1_m0.normal).xyz, mul(float4(mul(TANGENT, float3x3(_1648, _1655, _1662)), 0.0f), O_1_m0.model).xyz, _1709, _1706); gl_Position = _1760.clip; world = _1760.world; normal_1 = _1760.normal; uv_1 = _1760.uv; flags_1 = _1760.flags; tangent_1 = _1760.tangent; color_1 = _1760.color; uv2 = _1760.uv2; instance_id = _1760.instance_id; hedra_v0 = _1760.hedra_v0; hedra_v1 = _1760.hedra_v1; hedra_v2 = _1760.hedra_v2; hedra_v3 = _1760.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; row0 = stage_input.row0; row1 = stage_input.row1; row2 = stage_input.row2; color = stage_input.color; uv1 = stage_input.uv1; custom = stage_input.custom; id = stage_input.id; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color_1 = color_1; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_skinnedmain,>struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 shadow_color; float lift; float rings; float hedra_pad0; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const SkinRows _1137 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const CustomOut _1446 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Skin : register(b6) { SkinU Skin_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static uint4 joints; static float4 weights; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint4 joints : TEXCOORD12; float4 weights : TEXCOORD13; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); float4 skin_row(uint k, uint r) { return Skin_1_m0.rows[min(((min(k, 254u) * 3u) + r), 764u)]; } SkinRows skin_rows(SkinIn s) { SkinRows m = _1137; m.r0 = (((skin_row(s.joints.x, 0u) * s.weights.x) + (skin_row(s.joints.y, 0u) * s.weights.y)) + (skin_row(s.joints.z, 0u) * s.weights.z)) + (skin_row(s.joints.w, 0u) * s.weights.w); m.r1 = (((skin_row(s.joints.x, 1u) * s.weights.x) + (skin_row(s.joints.y, 1u) * s.weights.y)) + (skin_row(s.joints.z, 1u) * s.weights.z)) + (skin_row(s.joints.w, 1u) * s.weights.w); m.r2 = (((skin_row(s.joints.x, 2u) * s.weights.x) + (skin_row(s.joints.y, 2u) * s.weights.y)) + (skin_row(s.joints.z, 2u) * s.weights.z)) + (skin_row(s.joints.w, 2u) * s.weights.w); return m; } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1297 = transpose(hedra_mat3(m)); return float4x4(float4(_1297[0], 0.0f), float4(_1297[1], 0.0f), float4(_1297[2], 0.0f), float4(-mul(m[3].xyz, _1297), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1403 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1403 = false; } else { _1403 = false; } if (_1403) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { float4 view_pos = float4(0.0f, 0.0f, 0.0f, 0.0f); bool _1223 = false; view_pos = mul(float4(VERTEX * (1.0f - (0.5f * hedra_p_1_m0.lift)), 1.0f), MODELVIEW_MATRIX); float4 _1238 = mul(view_pos, G_1_m0.proj); if (hedra_p_1_m0.snap_resolution.x > 0.0f) { _1223 = _1238.w > 9.9999997473787516355514526367188e-05f; } else { _1223 = false; } if (_1223) { float2 _1253 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1267 = mul(float4((round((_1238.xy / float2(_1238.ww)) * _1253) / _1253) * _1238.w, _1238.zw), INV_PROJECTION_MATRIX); view_pos = float4(_1267.xyz / float3(_1267.www), 1.0f); } VERTEX = view_pos.xyz; NORMAL = normalize(mul(NORMAL, MODELVIEW_NORMAL_MATRIX)); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1480 = false; if (false) { _1480 = false; } else { _1480 = true; } return _1480; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(CustomOut o) { } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1446; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1676 = { pos, normal, uv, flags, tangent, weight }; SkinIn _1694 = { joints, weights }; SkinRows _1727 = skin_rows(_1694); float4 _1729 = float4(_1676.pos, 1.0f); float3 _1743 = float3(_1727.r0.x, _1727.r1.x, _1727.r2.x); float3 _1750 = float3(_1727.r0.y, _1727.r1.y, _1727.r2.y); float3 _1757 = float3(_1727.r0.z, _1727.r1.z, _1727.r2.z); bool _1760 = dot(_1743, cross(_1750, _1757)) < 0.0f; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(float3(dot(_1727.r0, _1729), dot(_1727.r1, _1729), dot(_1727.r2, _1729)), normalize(mul(_1676.normal, float3x3(cross(_1750, _1757), cross(_1757, _1743), cross(_1743, _1750))) * (_1760 ? (-1.0f) : 1.0f)), float4(normalize(mul(_1676.tangent.xyz, float3x3(_1743, _1750, _1757))), _1676.tangent.w), _1676.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); uint _1789 = _1676.flags | (_1760 ? 128u : 0u); float _1792 = hedra_tangent_sign(_1676.tangent.w, _1760); if (hedra_vertex_space()) { CustomOut _1801 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1792, _1789); gl_Position = _1801.clip; world = _1801.world; normal_1 = _1801.normal; uv_1 = _1801.uv; flags_1 = _1801.flags; tangent_1 = _1801.tangent; color = _1801.color; uv2 = _1801.uv2; instance_id = _1801.instance_id; hedra_v0 = _1801.hedra_v0; hedra_v1 = _1801.hedra_v1; hedra_v2 = _1801.hedra_v2; hedra_v3 = _1801.hedra_v3; return; } CustomOut _1832 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1792, _1789); gl_Position = _1832.clip; world = _1832.world; normal_1 = _1832.normal; uv_1 = _1832.uv; flags_1 = _1832.flags; tangent_1 = _1832.tangent; color = _1832.color; uv2 = _1832.uv2; instance_id = _1832.instance_id; hedra_v0 = _1832.hedra_v0; hedra_v1 = _1832.hedra_v1; hedra_v2 = _1832.hedra_v2; hedra_v3 = _1832.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; joints = stage_input.joints; weights = stage_input.weights; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; }  fs_custommainÉ=struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 shadow_color; float lift; float rings; float hedra_pad0; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _563 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const uint _2649[4] = { 0u, 0u, 0u, 0u }; static const float2 _2652[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _2659[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const DecalSurface _4882 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Shadow : register(b2) { ShadowU Shadow_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Probe : register(b4) { ProbeU Probe_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D t_shadow : register(t0); SamplerComparisonState s_shadow : register(s0); TextureCube t_radiance : register(t4); Texture2D t_panorama : register(t5); SamplerState s_radiance : register(s2); SamplerState s_panorama : register(s3); Texture2D t_ao : register(t1); Texture2DArray t_lightmap : register(t6); SamplerState s_lightmap : register(s4); Texture2D t_probes : register(t7); SamplerState s_probes : register(s5); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); Texture2D t_screen : register(t3); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 _5277; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 _5277 : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float SPECULAR_AMOUNT = 0.0f; static float3 LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_COLOR = float3(0.0f, 0.0f, 0.0f); static bool LIGHT_IS_DIRECTIONAL = false; static float ATTENUATION = 0.0f; static float3 DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint spvPackUnorm4x8(float4 value) { uint4 Packed = uint4(round(saturate(value) * 255.0)); return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); } float4 spvUnpackUnorm4x8(uint value) { uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); return float4(Packed) / 255.0; } bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _3961 = transpose(hedra_mat3(m)); return float4x4(float4(_3961[0], 0.0f), float4(_3961[1], 0.0f), float4(_3961[2], 0.0f), float4(-mul(m[3].xyz, _3961), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { } void fragment() { float _3937 = (floor((clamp(1.0f - (length(UV - float2(0.5f, 0.5f)) * 2.0f), 0.0f, 1.0f) * hedra_p_1_m0.rings) + 0.999000012874603271484375f) / hedra_p_1_m0.rings) * (1.0f - hedra_p_1_m0.lift); ALBEDO = lerp(float3(1.0f, 1.0f, 1.0f), hedra_p_1_m0.shadow_color, float3(_3937, _3937, _3937)); } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _4118 = facing != hedra_mirrored(_in.flags); hedra_front = _4118; FRONT_FACING = _4118; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _4134 = hedra_mat3(G_1_m0.view); float3 _4137 = -normalize(_in.normal); float3 _4139 = normalize(_in.normal); bool3 _4141 = bool3(_4118, _4118, _4118); float3 _4140 = float3(_4141.x ? _4139.x : _4137.x, _4141.y ? _4139.y : _4137.y, _4141.z ? _4139.z : _4137.z); hedra_n_geo = _4140; hedra_n = _4140; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_4140 * dot(_4140, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _4163 = VERTEX; NORMAL = normalize(mul(_4140, _4134)); float3 _4166 = NORMAL; TANGENT = normalize(mul(t, _4134)); BINORMAL = normalize(mul(cross(_4140, t) * _in.tangent.w, _4134)); float3 _4174 = normalize(-VERTEX); bool _4177 = G_1_m0.camera_pos.w > 0.5f; bool3 _4179 = bool3(_4177, _4177, _4177); VIEW = float3(_4179.x ? float3(0.0f, 0.0f, 1.0f).x : _4174.x, _4179.y ? float3(0.0f, 0.0f, 1.0f).y : _4174.y, _4179.z ? float3(0.0f, 0.0f, 1.0f).z : _4174.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _4185 = transpose(_4134); if (any(bool3(NORMAL.x != _4166.x, NORMAL.y != _4166.y, NORMAL.z != _4166.z))) { hedra_n = normalize(mul(NORMAL, _4185)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _4185)); } if (any(bool3(LIGHT_VERTEX.x != _4163.x, LIGHT_VERTEX.y != _4163.y, LIGHT_VERTEX.z != _4163.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _4250 = false; bool _4252 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _4250 = hedra_front; } else { _4250 = false; } if (_4250) { return true; } if (false) { _4252 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _4252 = false; } return _4252; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1141 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1141, _1141, _1141); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1166 = floor(p); float3 _1167 = frac(p); float3 _1171 = (_1167 * _1167) * (float3(3.0f, 3.0f, 3.0f) - (_1167 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1166), emerge_hash(_1166 + float3(1.0f, 0.0f, 0.0f)), _1171.x), lerp(emerge_hash(_1166 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1166 + float3(1.0f, 1.0f, 0.0f)), _1171.x), _1171.y), lerp(lerp(emerge_hash(_1166 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1166 + float3(1.0f, 0.0f, 1.0f)), _1171.x), lerp(emerge_hash(_1166 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1166 + float3(1.0f, 1.0f, 1.0f)), _1171.x), _1171.y), _1171.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1228 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1228) * 0.64999997615814208984375f) + (emerge_noise((_1228 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } float3 hedra_view_dir(float3 world_1) { float3 _4289 = normalize(G_1_m0.camera_pos.xyz - world_1); float3 _4290 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _4293 = G_1_m0.camera_pos.w > 0.5f; bool3 _4295 = bool3(_4293, _4293, _4293); return float3(_4295.x ? _4290.x : _4289.x, _4295.y ? _4290.y : _4289.y, _4295.z ? _4290.z : _4289.z); } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float3 radiance(float3 d, float roughness) { return t_radiance.SampleLevel(s_radiance, d, roughness * float(max(Sky_1_m0.flags.y, 1u) - 1u)).xyz; } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _1601 = max(x, 0.0f) * max(x, 0.0f); float _1602 = _1601 * _1601; return _1602 * _1602; } float3 fog_sun_scatter(float3 fc, float3 dir) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _1621 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _1621)) { break; } uint _1644 = pool_sun(k); if (Lit_1_m0.lights[min(_1644, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_1644, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir, -Lit_1_m0.lights[min(_1644, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 surface_fog(float3 c, float3 world_1, float3 dir) { float amount = 0.0f; bool _1711 = false; float dist = 0.0f; float3 fc = float3(0.0f, 0.0f, 0.0f); float _1719 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; dist = distance(world_1, G_1_m0.camera_pos.xyz); if (Sky_1_m0.fog_origin.w > 0.5f) { dist = max(_1719 - Sky_1_m0.fog_origin.x, 0.0f); } if ((Sky_1_m0.flags.x & 256u) != 0u) { float _1746 = smoothstep(Sky_1_m0.fog_depth.x, Sky_1_m0.fog_depth.y, dist); amount = ((_1746 > 0.0f) ? pow(max(_1746, 9.9999999747524270787835121154785e-07f), Sky_1_m0.fog_depth.z) : 0.0f) * Sky_1_m0.fog.x; } else { amount = 1.0f - exp(min(0.0f, (-dist) * Sky_1_m0.fog.x)); } if (abs(Sky_1_m0.fog.w) >= 9.9999997473787516355514526367188e-05f) { amount = max(amount, 1.0f - exp(min(0.0f, (dot(world_1, Lit_1_m0.up.xyz) - Sky_1_m0.fog.z) * Sky_1_m0.fog.w))); } amount = clamp(amount, 0.0f, 1.0f); fc = Sky_1_m0.fog_color.xyz; if ((Sky_1_m0.flags.x & 8u) != 0u) { _1711 = Sky_1_m0.fog_depth.w > 0.0f; } else { _1711 = false; } if (true ? _1711 : false) { fc = lerp(fc, radiance(sky_dir(dir), lerp(1.0f / float(max(Sky_1_m0.flags.y, 2u) - 1u), 1.0f, 1.0f - clamp((_1719 - Sky_1_m0.fog_origin.y) / max(Sky_1_m0.fog_origin.z - Sky_1_m0.fog_origin.y, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f))) * Sky_1_m0.sun.w, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)); } fc = fog_sun_scatter(fc, dir); return lerp(c, fc, float3(amount, amount, amount)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _1865 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _1869 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_1865 == 4u) { return float2(0.0f, _1869); } float3 _1878 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _1879 = abs(d); bool3 _1880 = bool3(_1879.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _1879.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _1879.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _1881 = float3(_1880.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _1880.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _1880.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _1884 = ((-_1878) - o) / _1881; float3 _1886 = (_1878 - o) / _1881; float3 _1887 = min(_1884, _1886); float3 _1888 = max(_1884, _1886); r = float2(max(0.0f, _1887.y), min(_1869, _1888.y)); if (_1865 == 3u) { r = float2(max(max(r.x, _1887.x), _1887.z), min(min(r.y, _1888.x), _1888.z)); } else { if (_1865 == 0u) { a = dot(d / _1878, d / _1878); b = dot(o / _1878, d / _1878); c = dot(o / _1878, o / _1878) - 1.0f; } else { float _1927 = min(_1878.x, _1878.z); float _1932 = (_1865 == 1u) ? (_1927 / (2.0f * _1878.y)) : 0.0f; float _1935 = _1878.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_1932 * _1932) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_1932 * _1932) * _1935) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_1865 == 1u) ? (((_1932 * _1932) * _1935) * _1935) : (_1927 * _1927)); } } float _1981 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_1981 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _2045 = min(((-b) - sqrt(_1981)) / a, ((-b) + sqrt(_1981)) / a); float _2058 = max(((-b) - sqrt(_1981)) / a, ((-b) + sqrt(_1981)) / a); if (a > 0.0f) { r = float2(max(r.x, _2045), min(r.y, _2058)); } else { if (r.x < min(r.y, _2045)) { r.y = min(r.y, _2045); } else { r.x = max(r.x, _2058); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _2102 = min(k, 15u); rho = Fog_1_m0.entries[_2102].material.x * min(exp2((-Fog_1_m0.entries[_2102].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2102].material.w)), 1.0f); if (Fog_1_m0.entries[_2102].material.z > 0.0f) { uint _2129 = uint(clamp(Fog_1_m0.entries[_2102].albedo.w, 0.0f, 4294967040.0f)); float3 _2132 = Fog_1_m0.entries[_2102].size.xyz * 0.5f; float _2135 = min(_2132.x, _2132.z); if (_2129 == 0u) { float _2141 = length(lp / _2132); sdf = (_2141 * (_2141 - 1.0f)) / max(length(lp / (_2132 * _2132)), 9.9999999600419720025001879548654e-13f); } else { if (_2129 == 3u) { float3 _2154 = abs(lp) - _2132; sdf = length(max(_2154, float3(0.0f, 0.0f, 0.0f))) + min(max(_2154.x, max(_2154.y, _2154.z)), 0.0f); } else { if (_2129 == 2u) { float2 _2175 = float2(length(lp.xz) - _2135, abs(lp.y) - _2132.y); sdf = min(max(_2175.x, _2175.y), 0.0f) + length(max(_2175, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _2135 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _2132.y))), float2(length(lp.xz), lp.y - _2132.y)), (-_2132.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_2102].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_2102].material.z); } return rho; } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float3 fog_light(uint n, float3 p, float3 dir) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _2337 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_2337].lights.z, 8u))) { break; } uint _2373 = min(((((k < 4u) ? Fog_1_m0.entries[_2337].lights.x : Fog_1_m0.entries[_2337].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _2374 = min(_2373, 63u); l = -Lit_1_m0.lights[_2374].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_2374].info.x != 0u) { float3 _2387 = Lit_1_m0.lights[_2374].position.xyz - p; float _2389 = max(length(_2387), 9.9999999747524270787835121154785e-07f); l = _2387 / float3(_2389, _2389, _2389); atten = omni_attenuation(length(_2387), Lit_1_m0.lights[_2374].position.w, Lit_1_m0.lights[_2374].direction.w); if (Lit_1_m0.lights[_2374].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_2374].direction.xyz), Lit_1_m0.lights[_2374].spot.x)) / max(1.0f - Lit_1_m0.lights[_2374].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_2374].spot.y)); } } float _2430 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir, l)); sum += (Lit_1_m0.lights[_2374].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _2430) * sqrt(_2430))) * Fog_1_m0.light_fog[min((_2373 >> 2u), 15u)][min((_2373 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _2228 = min(k, 15u); if ((Fog_1_m0.entries[_2228].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_2228].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_2228].material.y) * a), 1.0f); } float _2246 = clamp((-a) / b, t0, t1); float _2248 = (b > 0.0f) ? _2246 : t0; float _2250 = (b > 0.0f) ? t1 : _2246; float _2255 = ((Fog_1_m0.entries[_2228].material.y * abs(b)) * (_2250 - _2248)) * 0.693147182464599609375f; return Fog_1_m0.entries[_2228].material.x * (((t1 - t0) - (_2250 - _2248)) + ((min(exp2((-Fog_1_m0.entries[_2228].material.y) * max(a + (b * ((b > 0.0f) ? _2248 : _2250)), 0.0f)), 1.0f) * (_2250 - _2248)) * ((_2255 < 0.00999999977648258209228515625f) ? (1.0f - (_2255 * (0.5f - (_2255 * (0.16666667163372039794921875f - (_2255 / 24.0f)))))) : ((1.0f - exp(-_2255)) / _2255)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _2473 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _2475 = false; float tau = 0.0f; bool _2466 = false; uint i = 0u; bool _2468 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _2478 = min(k, 15u); float3 _2484 = mul(float4(o, 1.0f), Fog_1_m0.entries[_2478].to_local).xyz; float3 _2488 = mul(float4(d, 0.0f), Fog_1_m0.entries[_2478].to_local).xyz; float _2495 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2478].material.w; float _2499 = dot(d, Fog_1_m0.up.xyz); bool _2502 = Fog_1_m0.entries[_2478].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_2478].material.y > 0.0f) { _2466 = ((-_2495) / _2499) > ch.x; } else { _2466 = false; } if (_2466) { _2468 = ((-_2495) / _2499) < ch.y; } else { _2468 = false; } if (_2468) { split = (-_2495) / _2499; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_2502 ? 12u : 4u))) { break; } uint _2553 = i & 3u; if (!(_2553 == 0u)) { _2473 = _2553 == 3u; } else { _2473 = true; } float _2561 = _2473 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_2553 == 0u)) { _2475 = _2553 == 3u; } else { _2475 = true; } float _2569 = _2475 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _2572 = float2(split, ch.y); float2 _2575 = float2(ch.x, split); bool _2577 = i < 8u; bool2 _2579 = bool2(_2577, _2577); float2 _2578 = float2(_2579.x ? _2575.x : _2572.x, _2579.y ? _2575.y : _2572.y); bool _2581 = i < 4u; bool2 _2583 = bool2(_2581, _2581); float2 _2582 = float2(_2583.x ? ch.x : _2578.x, _2583.y ? ch.y : _2578.y); float _2587 = (_2582.y - _2582.x) * 0.5f; float _2596 = ((_2582.x + _2582.y) * 0.5f) + (_2587 * ((_2553 < 2u) ? (-_2561) : _2561)); float3 _2598 = o + (d * _2596); float _2601 = fog_density(k, _2598, _2484 + (_2488 * _2596)); if (i < 4u) { q += (((Fog_1_m0.entries[_2478].albedo.xyz * fog_light(k, _2598, d)) + Fog_1_m0.entries[_2478].emission.xyz) * ((_2569 * _2587) * clamp(_2601, 0.0f, 1.0f))); } else { tau += ((_2569 * _2587) * _2601); } i++; continue; } if (!_2502) { tau = fog_falloff_depth(k, _2495, _2499, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _2649; uint i_3 = 0u; uint n = 0u; bool _2655 = false; float2 chords[4] = _2652; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _2659; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _2672 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_2672 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _2702 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_2672) { _2655 = _2702 == 0u; } else { _2655 = false; } if (_2655) { break; } uint _2714 = _2672 ? i_2 : (min(_2702, 16u) - 1u); uint _2715 = min(_2714, 15u); float2 _2724 = fog_chord(_2714, mul(float4(o, 1.0f), Fog_1_m0.entries[_2715].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_2715].to_local).xyz, t_end); if (_2724.y > _2724.x) { at[min(m, 3u)] = _2714; chords[min(m, 3u)] = _2724; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _2880 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _2880)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _3000 = exp(-tau); return (c * _3000) + (q * ((1.0f - _3000) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 fog_volumes(float3 c, float3 world_1, uint list) { float3 _3036 = world_1 - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(world_1, 1.0f), G_1_m0.view).z); bool _3039 = G_1_m0.camera_pos.w > 0.5f; bool3 _3041 = bool3(_3039, _3039, _3039); float3 _3040 = float3(_3041.x ? _3036.x : G_1_m0.camera_pos.xyz.x, _3041.y ? _3036.y : G_1_m0.camera_pos.xyz.y, _3041.z ? _3036.z : G_1_m0.camera_pos.xyz.z); float _3043 = length(world_1 - _3040); float _3045 = max(_3043, 9.9999999747524270787835121154785e-07f); float3 _3048 = fog_integrate(c, _3040, (world_1 - _3040) / float3(_3045, _3045, _3045), _3043, list); bool _3049 = _3043 > 0.0f; bool3 _3051 = bool3(_3049, _3049, _3049); return float3(_3051.x ? _3048.x : c.x, _3051.y ? _3048.y : c.y, _3051.z ? _3048.z : c.z); } float3 hedra_fog(float3 c_in, float3 v) { float3 c = float3(0.0f, 0.0f, 0.0f); c = c_in; if (true) { return c; } if ((Sky_1_m0.flags.x & 128u) != 0u) { c = surface_fog(c, hedra_world, -v); } if (O_1_m0.decals.w != 0u) { c = fog_volumes(c, hedra_world, O_1_m0.decals.w); } return c; } float3 filmic_curve(float3 x) { float _922 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _926 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _932 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _936 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_922, _922, _922))) + float3(_926, _926, _926)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_932, _932, _932))) - float3(_936, _936, _936); } float3 aces_curve(float3 c, float white) { float3 _984 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _992 = ((_984 * (_984 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_984 * ((_984 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _997 = 1.7999999523162841796875f * white; float _1005 = ((_997 * (_997 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_997 * ((0.98372900485992431640625f * _997) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _992), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _992), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _992)) / float3(_1005, _1005, _1005); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _1060 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_1060, _1060, _1060); float3 _1065 = v * v; float3 _1066 = _1065 * _1065; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_1065 * 4.01109981536865234375f)) - ((_1065 * 25.68199920654296875f) * v)) + (_1066 * 70.35900115966796875f)) - ((_1066 * 74.7779998779296875f) * v)) + ((_1066 * 27.069000244140625f) * _1065), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _1095 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_1095 * Lit_1_m0.tone.y) + _1095) / ((_1095 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_1095) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_1095, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_1095); } return _1095; } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } float3 srgb_to_linear(float3 c) { float3 _251 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _254 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _256 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_256.x ? _251.x : _254.x, _256.y ? _251.y : _254.y, _256.z ? _251.z : _254.z); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _563; bool _566 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _571 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _571)) { break; } uint _600 = decal_entry(k); uint _603 = min(min(_600, 63u), 63u); float3 _609 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_603].to_local).xyz; if (all(bool3(_609.x >= float3(0.0f, -1.0f, 0.0f).x, _609.y >= float3(0.0f, -1.0f, 0.0f).y, _609.z >= float3(0.0f, -1.0f, 0.0f).z))) { _566 = all(bool3(_609.x <= float3(1.0f, 1.0f, 1.0f).x, _609.y <= float3(1.0f, 1.0f, 1.0f).y, _609.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _566 = false; } if (!_566) { uint _768 = k; k = _768 + 1u; continue; } fade = pow(1.0f - abs(_609.y), (_609.y > 0.0f) ? Decal_1_m0.entries[_603].fades.x : Decal_1_m0.entries[_603].fades.y); if (Decal_1_m0.entries[_603].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_603].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_603].axis_y.xyz) * 0.5f) + 0.5f); } float2 _647 = _609.xz; float _648 = decal_level(Decal_1_m0.entries[_603], world_1); if (Decal_1_m0.entries[_603].layers.x > 0u) { float4 _660 = decal_texel(Decal_1_m0.entries[_603].layers.x, _647, _648, (Decal_1_m0.entries[_603].flags.x & 1u) != 0u); float4 _666 = float4(srgb_to_linear(_660.xyz), _660.w) * Decal_1_m0.entries[_603].modulate; float _669 = _666.w * fade; float _675 = _669 * Decal_1_m0.entries[_603].fades.w; out_s.base = lerp(out_s.base, _666.xyz, float3(_675, _675, _675)); if (Decal_1_m0.entries[_603].layers.y > 0u) { float4 _688 = decal_texel(Decal_1_m0.entries[_603].layers.y, _647, _648, (Decal_1_m0.entries[_603].flags.x & 2u) != 0u); float _691 = (_688.x * 2.0f) - 1.0f; float _694 = 1.0f - (_688.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_603].axis_x.xyz * _691) + (Decal_1_m0.entries[_603].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_691 * _691)) - (_694 * _694))))) + (Decal_1_m0.entries[_603].axis_z.xyz * _694)), float3(_669, _669, _669))); } if (Decal_1_m0.entries[_603].layers.z > 0u) { float4 _728 = decal_texel(Decal_1_m0.entries[_603].layers.z, _647, _648, (Decal_1_m0.entries[_603].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _728.x, _669); out_s.roughness = lerp(out_s.roughness, _728.y, _669); out_s.metallic = lerp(out_s.metallic, _728.z, _669); } } if (Decal_1_m0.entries[_603].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_603].layers.w, _647, _648, (Decal_1_m0.entries[_603].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_603].modulate.xyz) * Decal_1_m0.entries[_603].axis_x.w) * fade); } uint _768 = k; k = _768 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } uint object_light_count() { return min(O_1_m0.lights.z, 8u); } uint object_light(uint k) { return min(((((k < 4u) ? O_1_m0.lights.x : O_1_m0.lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float4 hedra_light_dir(uint i, float3 world_1) { float atten = 0.0f; uint _4435 = min(i, 63u); if (Lit_1_m0.lights[_4435].info.x == 0u) { return float4(-Lit_1_m0.lights[_4435].direction.xyz, 1.0f); } float3 _4449 = Lit_1_m0.lights[_4435].position.xyz - world_1; float _4450 = length(_4449); float _4451 = max(_4450, 9.9999999747524270787835121154785e-07f); float3 _4453 = _4449 / float3(_4451, _4451, _4451); atten = omni_attenuation(_4450, Lit_1_m0.lights[_4435].position.w, Lit_1_m0.lights[_4435].direction.w); if (Lit_1_m0.lights[_4435].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-_4453, Lit_1_m0.lights[_4435].direction.xyz), Lit_1_m0.lights[_4435].spot.x)) / max(1.0f - Lit_1_m0.lights[_4435].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_4435].spot.y)); } return float4(_4453, atten); } float shadow_factor(uint i, float3 world_1, float3 n_geo, float3 l) { int dy = -1; bool _3111 = false; uint part = 0u; bool _3113 = false; uint c = 0u; float vis = 0.0f; bool _3109 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint _3121 = min(i, 63u); uint _3131 = min(Lit_1_m0.lights[min(i, 63u)].info.w, 15u); uint _3134 = min(_3131, 15u); uint _3137 = min(_3131, 15u); uint _3143 = max(Shadow_1_m0.lights[min(_3131, 15u)].info.y, 1u); float _3149 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; if (Lit_1_m0.lights[_3121].info.x == 0u) { if (_3149 > Shadow_1_m0.lights[min(_3131, 15u)].fade.y) { return 1.0f; } part = _3143 - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(c < _3143)) { break; } if (_3149 <= Shadow_1_m0.lights[min(_3131, 15u)].splits[min(c, 3u)]) { part = c; break; } c++; continue; } } uint _3193 = part; uint _3199 = min(min((Shadow_1_m0.lights[_3137].info.x + min(_3193, (_3143 - 1u))), 15u), 15u); float _3206 = Shadow_1_m0.tiles[_3199].texel.x + (Shadow_1_m0.tiles[_3199].texel.y * distance(world_1, Lit_1_m0.lights[min(i, 63u)].position.xyz)); float3 _3217 = (world_1 + (n_geo * ((Shadow_1_m0.lights[_3134].params.y * max(Shadow_1_m0.lights[_3134].params.z, 1.0f)) * _3206))) + (l * (Shadow_1_m0.lights[_3134].params.x * _3206)); if (Lit_1_m0.lights[_3121].info.x == 1u) { float3 _3221 = _3217 - Lit_1_m0.lights[min(i, 63u)].position.xyz; float3 _3222 = abs(_3221); if (_3222.x >= _3222.y) { _3109 = _3222.x >= _3222.z; } else { _3109 = false; } if (_3109) { part = (_3221.x >= 0.0f) ? 0u : 1u; } else { if (_3222.y >= _3222.z) { part = (_3221.y >= 0.0f) ? 2u : 3u; } else { part = (_3221.z >= 0.0f) ? 4u : 5u; } } } uint _3255 = min((Shadow_1_m0.lights[_3137].info.x + min(part, (_3143 - 1u))), 15u); float4 _3260 = mul(float4(_3217, 1.0f), Shadow_1_m0.tiles[min(_3255, 15u)].view_proj); if (_3260.w <= 0.0f) { return 1.0f; } float3 _3268 = _3260.xyz / float3(_3260.www); if (!(abs(_3268.x) > 1.0f)) { _3111 = abs(_3268.y) > 1.0f; } else { _3111 = true; } if (!_3111) { _3113 = _3268.z > 1.0f; } else { _3113 = true; } if (_3113) { return 1.0f; } uint _3289 = min(_3255, 15u); float2 _3302 = Shadow_1_m0.tiles[_3289].rect.xy + (float2((_3268.x * 0.5f) + 0.5f, 0.5f - (_3268.y * 0.5f)) * Shadow_1_m0.tiles[_3289].rect.zw); float _3306 = 0.5f * Shadow_1_m0.atlas.x; float2 _3308 = Shadow_1_m0.tiles[_3289].rect.xy + float2(_3306, _3306); float _3312 = 0.5f * Shadow_1_m0.atlas.x; float2 _3314 = (Shadow_1_m0.tiles[_3289].rect.xy + Shadow_1_m0.tiles[_3289].rect.zw) - float2(_3312, _3312); if (Shadow_1_m0.lights[_3134].params.z <= 0.0f) { vis = t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3302, _3308, _3314), _3268.z); } else { float _3325 = Shadow_1_m0.lights[_3134].params.z * Shadow_1_m0.atlas.x; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(dx <= 1)) { break; } vis += t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3302 + (float2(float(dx), float(dy)) * _3325), _3308, _3314), _3268.z); dx++; continue; } dy++; continue; } vis /= 9.0f; } if (Lit_1_m0.lights[_3121].info.x == 0u) { uint _3390 = min(_3131, 15u); vis = lerp(vis, 1.0f, smoothstep(Shadow_1_m0.lights[_3390].fade.x, Shadow_1_m0.lights[_3390].fade.y, _3149)); } return lerp(1.0f, vis, Shadow_1_m0.lights[_3134].params.w); } float hedra_shadow(uint i, float3 l) { bool _4494 = false; if (false) { _4494 = Lit_1_m0.lights[min(i, 63u)].info.y != 1u; } else { _4494 = true; } if (_4494) { return 1.0f; } return shadow_factor(i, hedra_world, hedra_n_geo, l); } void light() { } float3 f_schlick(float3 f0, float vh) { return f0 + ((float3(1.0f, 1.0f, 1.0f) - f0) * pow(1.0f - vh, 5.0f)); } float d_ggx(float nh, float a2) { float _788 = ((nh * nh) * (a2 - 1.0f)) + 1.0f; return a2 / ((3.1415927410125732421875f * _788) * _788); } float v_smith(float nl, float nv, float a2) { return 0.5f / max((nl * sqrt(((nv * nv) * (1.0f - a2)) + a2)) + (nv * sqrt(((nl * nl) * (1.0f - a2)) + a2)), 9.9999997473787516355514526367188e-05f); } float3 light_specular(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float specular) { float _841 = dot(n, l); if (_841 <= 0.0f) { return float3(0.0f, 0.0f, 0.0f); } float3 _846 = normalize(l + v); return (((diffuse / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) + ((f_schlick(f0, max(dot(v, _846), 0.0f)) * (d_ggx(max(dot(n, _846), 0.0f), a2) * v_smith(_841, max(dot(n, v), 9.9999997473787516355514526367188e-05f), a2))) * specular)) * radiance_1) * _841; } float hedra_schlick(float u) { float _4301 = clamp(1.0f - u, 0.0f, 1.0f); float _4302 = _4301 * _4301; return (_4302 * _4302) * _4301; } float hedra_diffuse_brdf(float nl, float nv, float lh, float r) { float _4314 = max(nl, 0.0f); if (false) { return max(0.0f, (nl + r) / ((1.0f + r) * (1.0f + r))) * 0.3183098733425140380859375f; } if (false) { return smoothstep(-r, max(r, 0.00999999977648258209228515625f), nl) * 0.3183098733425140380859375f; } if (false) { float _4335 = (((2.0f * lh) * lh) * r) - 0.5f; return ((0.3183098733425140380859375f * (1.0f + (_4335 * hedra_schlick(nv)))) * (1.0f + (_4335 * hedra_schlick(_4314)))) * _4314; } return _4314 * 0.3183098733425140380859375f; } float3 hedra_light_modes(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float r, float specular) { float3 c = float3(0.0f, 0.0f, 0.0f); float mid = 0.0f; bool _4362 = false; float _4366 = min(dot(n, l), 1.0f); float _4368 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float3 _4370 = normalize(l + v); c = (diffuse * hedra_diffuse_brdf(_4366, _4368, clamp(dot(l, _4370), 0.0f, 1.0f), r)) * radiance_1; if (r > 0.0f) { if (false) { mid = 1.0f - r; mid *= mid; c += ((diffuse * radiance_1) * ((smoothstep(mid - (r * 0.5f), mid + (r * 0.5f), dot(normalize(-reflect(l, n)), v)) * mid) * specular)); } else { if (false) { _4362 = _4366 > 0.0f; } else { _4362 = false; } if (_4362) { c += (((f_schlick(f0, max(dot(v, _4370), 0.0f)) * (d_ggx(max(dot(n, _4370), 0.0f), a2) * v_smith(_4366, _4368, a2))) * (specular * _4366)) * radiance_1); } } } return c; } float3 probe_light(float3 n) { return max(float3(O_1_m0.gi[0u].x + dot(O_1_m0.gi[0u].yzw, n), O_1_m0.gi[1u].x + dot(O_1_m0.gi[1u].yzw, n), O_1_m0.gi[2u].x + dot(O_1_m0.gi[2u].yzw, n)), float3(0.0f, 0.0f, 0.0f)); } float4 gi_diffuse(float3 n, bool baked, float3 baked_light) { if (baked) { return float4(baked_light, 1.0f); } if (true ? ((O_1_m0.extra.x & 8u) != 0u) : false) { return float4(probe_light(n), 1.0f); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float3 sh_irradiance(float3 n) { float3 c = float3(0.0f, 0.0f, 0.0f); c = Sky_1_m0.sh[0u].xyz * 0.2820949852466583251953125f; c += (Sky_1_m0.sh[1u].xyz * (0.48860299587249755859375f * n.y)); c += (Sky_1_m0.sh[2u].xyz * (0.48860299587249755859375f * n.z)); c += (Sky_1_m0.sh[3u].xyz * (0.48860299587249755859375f * n.x)); c += (Sky_1_m0.sh[4u].xyz * ((1.09254801273345947265625f * n.x) * n.y)); c += (Sky_1_m0.sh[5u].xyz * ((1.09254801273345947265625f * n.y) * n.z)); c += (Sky_1_m0.sh[6u].xyz * (0.3153919875621795654296875f * (((3.0f * n.z) * n.z) - 1.0f))); c += (Sky_1_m0.sh[7u].xyz * ((1.09254801273345947265625f * n.x) * n.z)); c += (Sky_1_m0.sh[8u].xyz * (0.546274006366729736328125f * ((n.x * n.x) - (n.y * n.y)))); return max(c, float3(0.0f, 0.0f, 0.0f)); } float2 env_brdf_approx(float roughness, float nv) { float4 _1580 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * roughness) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f); return (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_1580.x * _1580.x, exp2((-9.27999973297119140625f) * nv)) * _1580.x) + _1580.y)) + _1580.zw; } float probe_weight(ProbeEntryU p, float3 world_1) { float3 _3620 = mul(float4(world_1, 1.0f), p.to_local).xyz; float _3636 = min(p.extents.xyz.x - abs(_3620.x), min(p.extents.xyz.y - abs(_3620.y), p.extents.xyz.z - abs(_3620.z))); if (_3636 < 0.0f) { return 0.0f; } if (!(p.extents.w > 0.0f)) { return 1.0f; } return min(_3636 / p.extents.w, 1.0f); } float probe_exit(float o, float d, float e) { if (d > 0.0f) { return (e - o) / d; } if (d < 0.0f) { return ((-e) - o) / d; } return 3.0000000054977557577780399428115e+38f; } float3 probe_lookup(ProbeEntryU p, float3 world_1, float3 dir) { float3 _3678 = mul(float4(dir, 0.0f), p.to_local).xyz; if ((p.info.x & 1u) == 0u) { return _3678; } float3 _3688 = mul(float4(world_1, 1.0f), p.to_local).xyz; return (_3688 + (_3678 * max(min(probe_exit(_3688.x, _3678.x, p.extents.xyz.x), min(probe_exit(_3688.y, _3678.y, p.extents.xyz.y), probe_exit(_3688.z, _3678.z, p.extents.xyz.z))), 0.0f))) - p.offset.xyz; } float3 probe_face_uv(float3 d) { bool _3462 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _3465 = abs(d); if (_3465.x >= _3465.y) { _3462 = _3465.x >= _3465.z; } else { _3462 = false; } if (_3462) { ma = _3465.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_3465.y >= _3465.z) { ma = _3465.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _3465.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 probe_texel(uint row, float3 fuv, uint level) { float _3552 = 0.5f / float(max((Probe_1_m0.counts.z >> level), 1u)); return t_probes.SampleLevel(s_probes, float2((fuv.x + clamp(fuv.y, _3552, 1.0f - _3552)) / 6.0f, (float(row) + clamp(fuv.z, _3552, 1.0f - _3552)) / 8.0f), float(level)).xyz; } float3 probe_sample(uint row, float3 d, float lod) { bool _3580 = false; uint _3585 = max(Probe_1_m0.counts.y, 1u); float _3588 = clamp(lod, 0.0f, float(_3585 - 1u)); uint _3590 = uint(clamp(_3588, 0.0f, 4294967040.0f)); float _3592 = _3588 - float(_3590); float3 _3593 = probe_face_uv(d); float3 _3594 = probe_texel(row, _3593, _3590); if (!(_3592 <= 0.0f)) { _3580 = (_3590 + 1u) >= _3585; } else { _3580 = true; } if (_3580) { return _3594; } return (_3594 * (1.0f - _3592)) + (probe_texel(row, _3593, _3590 + 1u) * _3592); } float4 probe_reflection(float3 world_1, float3 r, float roughness, uint probes) { float3 acc = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3727 = min(Probe_1_m0.counts.x, 8u); float _3733 = roughness * float(max(Probe_1_m0.counts.y, 1u) - 1u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3727)) { break; } uint _3756 = i; uint _3758 = min(_3756, 7u); if (((probes >> Probe_1_m0.probes[_3758].info.w) & 1u) == 0u) { uint _3784 = i; i = _3784 + 1u; continue; } float _3768 = probe_weight(Probe_1_m0.probes[_3758], world_1); if (_3768 <= 0.0f) { uint _3784 = i; i = _3784 + 1u; continue; } acc += ((probe_sample(Probe_1_m0.probes[_3758].info.w, probe_lookup(Probe_1_m0.probes[_3758], world_1, r), _3733) * Probe_1_m0.probes[_3758].offset.w) * _3768); w_sum += _3768; uint _3784 = i; i = _3784 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float4 probe_ambient(float3 world_1, float3 n, uint probes) { float3 c = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; bool _3809 = false; float3 acc = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3816 = min(Probe_1_m0.counts.x, 8u); uint _3820 = max(Probe_1_m0.counts.y, 1u) - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3816)) { break; } uint _3842 = i; uint _3843 = min(_3842, 7u); if (!(((probes >> Probe_1_m0.probes[_3843].info.w) & 1u) == 0u)) { _3809 = Probe_1_m0.probes[_3843].info.y == 0u; } else { _3809 = true; } if (_3809) { uint _3886 = i; i = _3886 + 1u; continue; } float _3861 = probe_weight(Probe_1_m0.probes[_3843], world_1); if (_3861 <= 0.0f) { uint _3886 = i; i = _3886 + 1u; continue; } c = Probe_1_m0.probes[_3843].ambient.xyz; if (Probe_1_m0.probes[_3843].info.y == 1u) { c = probe_texel(Probe_1_m0.probes[_3843].info.w, probe_face_uv(mul(float4(n, 0.0f), Probe_1_m0.probes[_3843].to_local).xyz), _3820); } acc += (c * _3861); w_sum += _3861; uint _3886 = i; i = _3886 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float3 sky(float3 dir) { float _877 = acos(clamp(dot(normalize(dir), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_877 <= 1.57079637050628662109375f) { float _887 = clamp(1.0f - pow(max(1.0f - (1.0f - (_877 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_887, _887, _887)); } float _902 = clamp(1.0f - pow(max(1.0f - ((_877 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_902, _902, _902)); } float3 hedra_ambient(float3 n, float3 v, float3 diffuse, float3 f0, float roughness, float metallic) { float3 dif = float3(0.0f, 0.0f, 0.0f); float3 diffuse_amb = float3(0.0f, 0.0f, 0.0f); float3 dif_1 = float3(0.0f, 0.0f, 0.0f); float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 dif_2 = float3(0.0f, 0.0f, 0.0f); float3 spec_amb = float3(0.0f, 0.0f, 0.0f); float _4542 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float _4543 = 1.0f - roughness; float3 _4550 = f0 + ((max(float3(_4543, _4543, _4543), f0) - f0) * pow(1.0f - _4542, 5.0f)); float4 _4551 = gi_diffuse(n, false, float3(0.0f, 0.0f, 0.0f)); if ((Sky_1_m0.flags.x & 8u) != 0u) { float _4563 = Sky_1_m0.ibl.x * Sky_1_m0.sun.w; diffuse_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 16u) != 0u) { diffuse_amb = lerp(Sky_1_m0.ambient.xyz, sh_irradiance(sky_dir(n)) * _4563, float3(Sky_1_m0.ambient.w, Sky_1_m0.ambient.w, Sky_1_m0.ambient.w)); } if (_4551.w > 0.0f) { diffuse_amb = _4551.xyz; } spec_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 32u) != 0u) { spec_amb = radiance(sky_dir(reflect(-v, n)), roughness) * _4563; } else { if ((Sky_1_m0.flags.x & 64u) != 0u) { spec_amb = float3(0.0f, 0.0f, 0.0f); } } float2 _4609 = env_brdf_approx(roughness, _4542); if (Probe_1_m0.counts.x > 0u) { float4 _4620 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_1 = diffuse_amb; if (_4551.w <= 0.0f) { float4 _4634 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_1 = (diffuse_amb * (1.0f - _4634.w)) + _4634.xyz; } float _4649 = _4609.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * dif_1) + (((spec_amb * (1.0f - _4620.w)) + _4620.xyz) * ((f0 * _4609.x) + float3(_4649, _4649, _4649))); } else { float _4663 = _4609.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * diffuse_amb) + (spec_amb * ((f0 * _4609.x) + float3(_4663, _4663, _4663))); } } else { if ((Lit_1_m0.counts.y & 2u) != 0u) { float3 _4685 = (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f; float _4697 = clamp((dot(n, Lit_1_m0.up.xyz) * 0.5f) + 0.5f, 0.0f, 1.0f); float3 _4698 = lerp((Lit_1_m0.ground_horizon.xyz + Lit_1_m0.ground_bottom.xyz) * 0.5f, _4685, float3(_4697, _4697, _4697)); float3 _4703 = lerp(sky(reflect(-v, n)), _4685, float3(roughness, roughness, roughness)); if (Probe_1_m0.counts.x > 0u) { float4 _4715 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif = _4551.xyz; if (_4551.w <= 0.0f) { float4 _4731 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif = ((_4698 * Lit_1_m0.ambient.w) * (1.0f - _4731.w)) + _4731.xyz; } ambient = (diffuse * dif) + ((((_4703 * Lit_1_m0.ambient.w) * (1.0f - _4715.w)) + _4715.xyz) * _4550); } else { if (_4551.w > 0.0f) { ambient = (diffuse * _4551.xyz) + ((_4703 * _4550) * Lit_1_m0.ambient.w); } else { ambient = ((diffuse * _4698) + (_4703 * _4550)) * Lit_1_m0.ambient.w; } } } else { if (Probe_1_m0.counts.x > 0u) { float4 _4772 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_2 = _4551.xyz; if (_4551.w <= 0.0f) { float4 _4788 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_2 = (Lit_1_m0.ambient.xyz * (1.0f - _4788.w)) + _4788.xyz; } ambient = (diffuse * dif_2) + (((Lit_1_m0.ambient.xyz * (1.0f - _4772.w)) + _4772.xyz) * _4550); } else { if (_4551.w > 0.0f) { ambient = (diffuse * _4551.xyz) + (Lit_1_m0.ambient.xyz * _4550); } else { ambient = Lit_1_m0.ambient.xyz * (diffuse + _4550); } } } } return ambient; } bool hedra_transparent() { bool _4000 = false; bool _4002 = false; if (false) { _4000 = true; } else { _4000 = false; } if (!_4000) { _4002 = true; } else { _4002 = true; } return _4002; } float3 hedra_lit(float4 clip) { bool _4891 = false; bool _4885 = false; DecalSurface surf = _4882; float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 radiance_1 = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); bool _4894 = false; bool _4889 = false; uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); DecalSurface _4906 = { ALBEDO, clamp(METALLIC, 0.0f, 1.0f), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f), AO, hedra_n, EMISSION }; surf = _4906; if (O_1_m0.decals.z > 0u) { DecalSurface _4914 = surf; surf = apply_decals(hedra_world, hedra_n_geo, _4914); ALBEDO = surf.base; METALLIC = surf.metallic; ROUGHNESS = surf.roughness; NORMAL = normalize(mul(surf.normal, hedra_mat3(G_1_m0.view))); } float _4936 = ((surf.roughness * surf.roughness) * surf.roughness) * surf.roughness; float3 _4940 = surf.base * (1.0f - surf.metallic); float _4944 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; float3 _4946 = lerp(float3(_4944, _4944, _4944), surf.base, float3(surf.metallic, surf.metallic, surf.metallic)); float3 _4951 = hedra_view_dir(hedra_world); float3x3 _4954 = hedra_mat3(G_1_m0.view); float _4958 = lerp(1.0f, surf.occlusion, AO_LIGHT_AFFECT); DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); uint _4959 = object_light_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _4959)) { break; } uint _4982 = object_light(k); uint _4983 = min(_4982, 63u); float4 _4987 = hedra_light_dir(_4982, hedra_world); float3 _4988 = _4987.xyz; float _4989 = _4987.w; if (false) { if (!(Lit_1_m0.lights[_4983].info.x == 0u)) { _4885 = _4989 > 0.0f; } else { _4885 = true; } if (_4885) { LIGHT = normalize(mul(_4988, _4954)); LIGHT_COLOR = Lit_1_m0.lights[_4983].color.xyz; ATTENUATION = _4989 * hedra_shadow(_4982, _4988); LIGHT_IS_DIRECTIONAL = Lit_1_m0.lights[_4983].info.x == 0u; SPECULAR_AMOUNT = Lit_1_m0.lights[_4983].spot.z; light(); } uint _5096 = k; k = _5096 + 1u; continue; } if (RIM > 0.0f) { c += (((_4940 * Lit_1_m0.lights[_4983].color.xyz) * (pow(max(9.9999997473787516355514526367188e-05f, 1.0f - max(dot(surf.normal, _4951), 9.9999997473787516355514526367188e-05f)), max(0.0f, (1.0f - surf.roughness) * 16.0f)) * RIM)) * lerp(float3(1.0f, 1.0f, 1.0f), surf.base, float3(RIM_TINT, RIM_TINT, RIM_TINT))); } if (_4989 > 0.0f) { radiance_1 = Lit_1_m0.lights[_4983].color.xyz * _4989; if (Lit_1_m0.lights[_4983].info.y == 1u) { _4889 = false; } else { _4889 = false; } if (_4889) { radiance_1 = Lit_1_m0.lights[_4983].color.xyz * (_4989 * shadow_factor(_4982, hedra_world, hedra_n_geo, _4988)); } if (true) { _4891 = false; } else { _4891 = false; } if (_4891) { c += light_specular(surf.normal, _4951, _4988, radiance_1, _4940, _4946, _4936, Lit_1_m0.lights[_4983].spot.z); } else { c += hedra_light_modes(surf.normal, _4951, _4988, radiance_1, _4940, _4946, _4936, surf.roughness, Lit_1_m0.lights[_4983].spot.z); } if (any(bool3(BACKLIGHT.x > float3(0.0f, 0.0f, 0.0f).x, BACKLIGHT.y > float3(0.0f, 0.0f, 0.0f).y, BACKLIGHT.z > float3(0.0f, 0.0f, 0.0f).z))) { c += (((_4940 * radiance_1) * BACKLIGHT) * (0.3183098733425140380859375f - (max(min(dot(surf.normal, _4988), 1.0f), 0.0f) * 0.3183098733425140380859375f))); } } uint _5096 = k; k = _5096 + 1u; continue; } if (false) { c = (((DIFFUSE_LIGHT * surf.base) * _4958) * (1.0f - surf.metallic)) + (SPECULAR_LIGHT * _4958); } else { if (AO_LIGHT_AFFECT > 0.0f) { c *= _4958; } } if (true) { ambient = hedra_ambient(surf.normal, _4951, _4940, _4946, surf.roughness, surf.metallic); } if ((Lit_1_m0.counts.y & 4u) != 0u) { _4894 = !hedra_transparent(); } else { _4894 = false; } if (_4894) { int _5139; spvTextureSize(t_ao, 0u, _5139); int _5141 = int(min(uint(0), uint(int(_5139) - 1))); uint _5142_dummy_parameter; float4 _5146 = t_ao.Load(int3(int2(min(uint2(int2(clamp(floor(clip.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ao, uint(_5141), _5142_dummy_parameter)) - int2(1, 1)))), _5141)); float _5147 = _5146.x; c *= lerp(1.0f, min(_5147, surf.occlusion), Lit_1_m0.tone.z * Lit_1_m0.tone.w); c += (ambient * min(surf.occlusion, _5147)); } else { c += (ambient * surf.occlusion); } c += surf.emission; return tonemap(hedra_fog(c, _4951)); } float3 hedra_bindings() { return (t_panorama.SampleLevel(s_panorama, float2(0.5f, 0.5f), 0.0f).xyz + t_lightmap.SampleLevel(s_lightmap, float3(float2(0.5f, 0.5f), float(0)), 0.0f).xyz) + t_screen.SampleLevel(s_radiance, float2(0.5f, 0.5f), 0.0f).xyz; } float3 item_fade(float3 c) { if (true ? ((O_1_m0.extra.x & 64u) == 0u) : true) { return c; } return lerp(c, tonemap(O_1_m0.normal[3u].xyz), float3(O_1_m0.normal[3u].www)); } float3 emerge_tint(float3 c, float r) { bool _1261 = false; if (!((O_1_m0.extra.x & 32u) == 0u)) { _1261 = r >= 1.0f; } else { _1261 = true; } if (true ? _1261 : true) { return c; } float _1283 = smoothstep(0.0f, 1.0f, r); return lerp(tonemap(srgb_to_linear(spvUnpackUnorm4x8(O_1_m0.extra.w).xyz)), c, float3(_1283, _1283, _1283)); } float3 linear_to_srgb(float3 c) { float3 _381 = c * 12.9200000762939453125f; float3 _384 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _385 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_385.x ? _381.x : _384.x, _385.y ? _381.y : _384.y, _385.z ? _381.z : _384.z); } float4 hedra_output(float3 c) { float3 rgb = float3(0.0f, 0.0f, 0.0f); rgb = c; if (false) { rgb *= PREMUL_ALPHA_FACTOR; } float4 _5197 = float4(rgb, hedra_transparent() ? ALPHA : 1.0f); if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(_5197.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(_5197.w, 0.0f, 1.0f)); } float4 _5209 = clamp(_5197, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if ((G_1_m0.params.z & 2u) != 0u) { return float4(linear_to_srgb(_5209.xyz), _5209.w); } return _5209; } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); CustomOut _5243 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_5243, gl_FrontFacing); if (hedra_culled(_5243.flags)) { discard; } float _5314 = emerge_reveal(_5243.world, _5243.clip.xy); if (_5314 <= 0.0f) { discard; } if (true) { c = tonemap(hedra_fog(ALBEDO, hedra_view_dir(hedra_world))); } else { float3 _5327 = hedra_lit(_5243.clip); c = _5327; } if (Lit_1_m0.counts.w == 4294967295u) { c += hedra_bindings(); } if (G_1_m0.params.x == 8u) { c = emerge_tint(item_fade(c), _5314); } _5277 = hedra_output(c); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output._5277 = _5277; return stage_output; } fs_custom_depthmainË;struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 shadow_color; float lift; float rings; float hedra_pad0; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1194 = transpose(hedra_mat3(m)); return float4x4(float4(_1194[0], 0.0f), float4(_1194[1], 0.0f), float4(_1194[2], 0.0f), float4(-mul(m[3].xyz, _1194), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { } void fragment() { float _1170 = (floor((clamp(1.0f - (length(UV - float2(0.5f, 0.5f)) * 2.0f), 0.0f, 1.0f) * hedra_p_1_m0.rings) + 0.999000012874603271484375f) / hedra_p_1_m0.rings) * (1.0f - hedra_p_1_m0.lift); ALBEDO = lerp(float3(1.0f, 1.0f, 1.0f), hedra_p_1_m0.shadow_color, float3(_1170, _1170, _1170)); } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1351 = facing != hedra_mirrored(_in.flags); hedra_front = _1351; FRONT_FACING = _1351; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1367 = hedra_mat3(G_1_m0.view); float3 _1370 = -normalize(_in.normal); float3 _1372 = normalize(_in.normal); bool3 _1374 = bool3(_1351, _1351, _1351); float3 _1373 = float3(_1374.x ? _1372.x : _1370.x, _1374.y ? _1372.y : _1370.y, _1374.z ? _1372.z : _1370.z); hedra_n_geo = _1373; hedra_n = _1373; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1373 * dot(_1373, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1396 = VERTEX; NORMAL = normalize(mul(_1373, _1367)); float3 _1399 = NORMAL; TANGENT = normalize(mul(t, _1367)); BINORMAL = normalize(mul(cross(_1373, t) * _in.tangent.w, _1367)); float3 _1407 = normalize(-VERTEX); bool _1410 = G_1_m0.camera_pos.w > 0.5f; bool3 _1412 = bool3(_1410, _1410, _1410); VIEW = float3(_1412.x ? float3(0.0f, 0.0f, 1.0f).x : _1407.x, _1412.y ? float3(0.0f, 0.0f, 1.0f).y : _1407.y, _1412.z ? float3(0.0f, 0.0f, 1.0f).z : _1407.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1418 = transpose(_1367); if (any(bool3(NORMAL.x != _1399.x, NORMAL.y != _1399.y, NORMAL.z != _1399.z))) { hedra_n = normalize(mul(NORMAL, _1418)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1418)); } if (any(bool3(LIGHT_VERTEX.x != _1396.x, LIGHT_VERTEX.y != _1396.y, LIGHT_VERTEX.z != _1396.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _703 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_703, _703, _703); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _729 = floor(p); float3 _730 = frac(p); float3 _734 = (_730 * _730) * (float3(3.0f, 3.0f, 3.0f) - (_730 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_729), emerge_hash(_729 + float3(1.0f, 0.0f, 0.0f)), _734.x), lerp(emerge_hash(_729 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_729 + float3(1.0f, 1.0f, 0.0f)), _734.x), _734.y), lerp(lerp(emerge_hash(_729 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_729 + float3(1.0f, 0.0f, 1.0f)), _734.x), lerp(emerge_hash(_729 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_729 + float3(1.0f, 1.0f, 1.0f)), _734.x), _734.y), _734.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _791 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_791) * 0.64999997615814208984375f) + (emerge_noise((_791 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1673 = false; bool _1675 = false; CustomOut _1634 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1634, gl_FrontFacing); if (!((_1634.flags & 2u) != 0u)) { if (false) { _1675 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1675 = false; } _1673 = _1675; } else { _1673 = true; } if (_1673) { discard; } if (emerge_reveal(_1634.world, float2(-1.0f, -1.0f)) <= 0.0f) { discard; } else { return; } } void main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); }  fs_custom_idmainˆ>struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 shadow_color; float lift; float rings; float hedra_pad0; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const IdOut _1706 = { float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 id; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 id : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1194 = transpose(hedra_mat3(m)); return float4x4(float4(_1194[0], 0.0f), float4(_1194[1], 0.0f), float4(_1194[2], 0.0f), float4(-mul(m[3].xyz, _1194), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { } void fragment() { float _1170 = (floor((clamp(1.0f - (length(UV - float2(0.5f, 0.5f)) * 2.0f), 0.0f, 1.0f) * hedra_p_1_m0.rings) + 0.999000012874603271484375f) / hedra_p_1_m0.rings) * (1.0f - hedra_p_1_m0.lift); ALBEDO = lerp(float3(1.0f, 1.0f, 1.0f), hedra_p_1_m0.shadow_color, float3(_1170, _1170, _1170)); } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1351 = facing != hedra_mirrored(_in.flags); hedra_front = _1351; FRONT_FACING = _1351; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1367 = hedra_mat3(G_1_m0.view); float3 _1370 = -normalize(_in.normal); float3 _1372 = normalize(_in.normal); bool3 _1374 = bool3(_1351, _1351, _1351); float3 _1373 = float3(_1374.x ? _1372.x : _1370.x, _1374.y ? _1372.y : _1370.y, _1374.z ? _1372.z : _1370.z); hedra_n_geo = _1373; hedra_n = _1373; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1373 * dot(_1373, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1396 = VERTEX; NORMAL = normalize(mul(_1373, _1367)); float3 _1399 = NORMAL; TANGENT = normalize(mul(t, _1367)); BINORMAL = normalize(mul(cross(_1373, t) * _in.tangent.w, _1367)); float3 _1407 = normalize(-VERTEX); bool _1410 = G_1_m0.camera_pos.w > 0.5f; bool3 _1412 = bool3(_1410, _1410, _1410); VIEW = float3(_1412.x ? float3(0.0f, 0.0f, 1.0f).x : _1407.x, _1412.y ? float3(0.0f, 0.0f, 1.0f).y : _1407.y, _1412.z ? float3(0.0f, 0.0f, 1.0f).z : _1407.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1418 = transpose(_1367); if (any(bool3(NORMAL.x != _1399.x, NORMAL.y != _1399.y, NORMAL.z != _1399.z))) { hedra_n = normalize(mul(NORMAL, _1418)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1418)); } if (any(bool3(LIGHT_VERTEX.x != _1396.x, LIGHT_VERTEX.y != _1396.y, LIGHT_VERTEX.z != _1396.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1483 = false; bool _1485 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _1483 = hedra_front; } else { _1483 = false; } if (_1483) { return true; } if (false) { _1485 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1485 = false; } return _1485; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _703 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_703, _703, _703); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _729 = floor(p); float3 _730 = frac(p); float3 _734 = (_730 * _730) * (float3(3.0f, 3.0f, 3.0f) - (_730 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_729), emerge_hash(_729 + float3(1.0f, 0.0f, 0.0f)), _734.x), lerp(emerge_hash(_729 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_729 + float3(1.0f, 1.0f, 0.0f)), _734.x), _734.y), lerp(lerp(emerge_hash(_729 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_729 + float3(1.0f, 0.0f, 1.0f)), _734.x), lerp(emerge_hash(_729 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_729 + float3(1.0f, 1.0f, 1.0f)), _734.x), _734.y), _734.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _791 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_791) * 0.64999997615814208984375f) + (emerge_noise((_791 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1702 = false; IdOut _out = _1706; CustomOut _1660 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1660, gl_FrontFacing); if (!hedra_culled(_1660.flags)) { _1702 = emerge_reveal(_1660.world, _1660.clip.xy) <= 0.0f; } else { _1702 = true; } if (_1702) { discard; } _out.id = float4(float(O_1_m0.params.z & 255u), float((O_1_m0.params.z >> 8u) & 255u), float((O_1_m0.params.z >> 16u) & 255u), float(uint(O_1_m0.params.x == 1u) | ((O_1_m0.params.y == 1u) ? 2u : 0u))) / float4(255.0f, 255.0f, 255.0f, 255.0f); id = _out.id; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.id = id; return stage_output; } fs_custom_normal_depthmainO@struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float3 shadow_color; float lift; float rings; float hedra_pad0; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const HedraNormalDepthOut _1707 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 normal_depth; static float4 surface; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 normal_depth : SV_Target0; float4 surface : SV_Target1; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1194 = transpose(hedra_mat3(m)); return float4x4(float4(_1194[0], 0.0f), float4(_1194[1], 0.0f), float4(_1194[2], 0.0f), float4(-mul(m[3].xyz, _1194), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { } void fragment() { float _1170 = (floor((clamp(1.0f - (length(UV - float2(0.5f, 0.5f)) * 2.0f), 0.0f, 1.0f) * hedra_p_1_m0.rings) + 0.999000012874603271484375f) / hedra_p_1_m0.rings) * (1.0f - hedra_p_1_m0.lift); ALBEDO = lerp(float3(1.0f, 1.0f, 1.0f), hedra_p_1_m0.shadow_color, float3(_1170, _1170, _1170)); } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1351 = facing != hedra_mirrored(_in.flags); hedra_front = _1351; FRONT_FACING = _1351; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1367 = hedra_mat3(G_1_m0.view); float3 _1370 = -normalize(_in.normal); float3 _1372 = normalize(_in.normal); bool3 _1374 = bool3(_1351, _1351, _1351); float3 _1373 = float3(_1374.x ? _1372.x : _1370.x, _1374.y ? _1372.y : _1370.y, _1374.z ? _1372.z : _1370.z); hedra_n_geo = _1373; hedra_n = _1373; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1373 * dot(_1373, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1396 = VERTEX; NORMAL = normalize(mul(_1373, _1367)); float3 _1399 = NORMAL; TANGENT = normalize(mul(t, _1367)); BINORMAL = normalize(mul(cross(_1373, t) * _in.tangent.w, _1367)); float3 _1407 = normalize(-VERTEX); bool _1410 = G_1_m0.camera_pos.w > 0.5f; bool3 _1412 = bool3(_1410, _1410, _1410); VIEW = float3(_1412.x ? float3(0.0f, 0.0f, 1.0f).x : _1407.x, _1412.y ? float3(0.0f, 0.0f, 1.0f).y : _1407.y, _1412.z ? float3(0.0f, 0.0f, 1.0f).z : _1407.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1418 = transpose(_1367); if (any(bool3(NORMAL.x != _1399.x, NORMAL.y != _1399.y, NORMAL.z != _1399.z))) { hedra_n = normalize(mul(NORMAL, _1418)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1418)); } if (any(bool3(LIGHT_VERTEX.x != _1396.x, LIGHT_VERTEX.y != _1396.y, LIGHT_VERTEX.z != _1396.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1483 = false; bool _1485 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _1483 = hedra_front; } else { _1483 = false; } if (_1483) { return true; } if (false) { _1485 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1485 = false; } return _1485; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _703 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_703, _703, _703); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _729 = floor(p); float3 _730 = frac(p); float3 _734 = (_730 * _730) * (float3(3.0f, 3.0f, 3.0f) - (_730 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_729), emerge_hash(_729 + float3(1.0f, 0.0f, 0.0f)), _734.x), lerp(emerge_hash(_729 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_729 + float3(1.0f, 1.0f, 0.0f)), _734.x), _734.y), lerp(lerp(emerge_hash(_729 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_729 + float3(1.0f, 0.0f, 1.0f)), _734.x), lerp(emerge_hash(_729 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_729 + float3(1.0f, 1.0f, 1.0f)), _734.x), _734.y), _734.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _791 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_791) * 0.64999997615814208984375f) + (emerge_noise((_791 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1703 = false; HedraNormalDepthOut _out = _1707; CustomOut _1660 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1660, gl_FrontFacing); if (!hedra_culled(_1660.flags)) { _1703 = emerge_reveal(_1660.world, _1660.clip.xy) <= 0.0f; } else { _1703 = true; } if (_1703) { discard; } float _1731 = clamp(METALLIC, 0.0f, 1.0f); float _1735 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; _out.normal_depth = float4(normalize(mul(hedra_n, hedra_mat3(G_1_m0.view))), -mul(float4(_1660.world, 1.0f), G_1_m0.view).z); _out.surface = float4(clamp(lerp(float3(_1735, _1735, _1735), ALBEDO, float3(_1731, _1731, _1731)), float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f)); normal_depth = _out.normal_depth; surface = _out.surface; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.normal_depth = normal_depth; stage_output.surface = surface; return stage_output; }  @Ð Ð/ ,@  {Ðþ—4ÌhÜäF‚�SKw;�ƒcàÄèHoçÌÜÙOQ¬HSLTGlobals@ viewÿÿÿÿproj@ÿÿÿÿ view_proj€ÿÿÿÿ camera_posÀÿÿÿÿviewportÐÿÿÿÿ wire_coloràÿÿÿÿ select_colorðÿÿÿÿ active_colorÿÿÿÿgridÿÿÿÿparams ÿÿÿÿfparams0ÿÿÿÿG_block@ObjectUmodelÿÿÿÿnormal@ÿÿÿÿcolor€ÿÿÿÿparams�ÿÿÿÿextra ÿÿÿÿgi°ÿÿÿÿdecalsàÿÿÿÿlightsðÿÿÿÿO_block HedraParams  shadow_colorÿÿÿÿlift ÿÿÿÿringsÿÿÿÿ hedra_pad0ÿÿÿÿsnap_resolutionÿÿÿÿ hedra_p_block LightUPcolorÿÿÿÿpositionÿÿÿÿ direction ÿÿÿÿspot0ÿÿÿÿinfo@ÿÿÿÿLitUÐ countsÿÿÿÿambientÿÿÿÿtone ÿÿÿÿup0ÿÿÿÿsky_top@ÿÿÿÿ sky_horizonPÿÿÿÿground_horizon`ÿÿÿÿ ground_bottompÿÿÿÿ inv_view_proj€ÿÿÿÿdirsÀÿÿÿÿlightsÐ@P Lit_blockÐ ShadowLightU@paramsÿÿÿÿsplitsÿÿÿÿfade ÿÿÿÿinfo0ÿÿÿÿ ShadowTileU` view_projÿÿÿÿrect@ÿÿÿÿtexelPÿÿÿÿShadowU atlasÿÿÿÿlights@ tiles` Shadow_block  SunU  directionÿÿÿÿcolorÿÿÿÿSkyUflagsÿÿÿÿto_skyÿÿÿÿsky_topPÿÿÿÿ sky_horizon`ÿÿÿÿ ground_bottompÿÿÿÿground_horizon€ÿÿÿÿsun�ÿÿÿÿambient ÿÿÿÿibl°ÿÿÿÿ fog_colorÀÿÿÿÿfogÐÿÿÿÿ fog_depthàÿÿÿÿ fog_originðÿÿÿÿsuns sh€ ÿÿÿÿ Sky_block ProbeEntryU€to_localÿÿÿÿextents@ÿÿÿÿoffsetPÿÿÿÿambient`ÿÿÿÿinfopÿÿÿÿProbeUcountsÿÿÿÿprobes€ Probe_block DecalEntryU°to_localÿÿÿÿmodulate@ÿÿÿÿfadesPÿÿÿÿaxis_x`ÿÿÿÿaxis_ypÿÿÿÿaxis_z€ÿÿÿÿlayers�ÿÿÿÿflags ÿÿÿÿDecalU ,countsÿÿÿÿlodÿÿÿÿentries @° Decal_block , FogEntryU�to_localÿÿÿÿsize@ÿÿÿÿmaterialPÿÿÿÿalbedo`ÿÿÿÿemissionpÿÿÿÿlights€ÿÿÿÿFogU@ countsÿÿÿÿparamsÿÿÿÿambient ÿÿÿÿup0ÿÿÿÿ light_fog@ÿÿÿÿentries@� Fog_block@ GOhedra_pLitShadow SkyProbeDecalFogt_shadowÿÿÿÿ t_radianceÿÿÿÿ t_panoramaÿÿÿÿt_aoÿÿÿÿ t_lightmapÿÿÿÿt_probesÿÿÿÿt_decalsÿÿÿÿt_screenÿÿÿÿs_shadowÿÿÿÿ s_radianceÿÿÿÿ s_panoramaÿÿÿÿ s_lightmapÿÿÿÿs_probesÿÿÿÿs_decalsÿÿÿÿ vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depthT/#2 GLSL.std.450vs_customÛÞàãæéìîðòôõ÷ùúûüýþÿ#€vs_custom_instancedUWY[]_bdfhjmoqstuvwxyz{|}~2vs_custom_skinned!#%&'()*+,-./01Õfs_custom·¹»½¿ÁÃÅÇÉËÍÏÑÔ6fs_custom_depth "$&(*,.024wfs_custom_idZ\^`bdfhjlnprtvËfs_custom_normal_depth­¯±³µ·¹»½¿ÁÃÅÇÉÊÕ6wËH#HHH#@HHH#€HHH#ÀH#ÐH#àH#ðH#H#H # H #0G H #H H H #@H H H #€H #�H # H #°H #àH #ðGH#H#H# H#0H#@GPH#H#H# H#0H#@H#PH#`H#pH#€HHH #ÀH #ÐH#H#H# H#0H#HHH#@H#PG@G`H#H#H#H#H#G GH!#H!#H!H!H!#PH!#`H!#pH!#€H!#�H!# H!#°H! #ÀH! #ÐH! #àH! #ðH! #H!#€H%#H%H%H%#@H%#PH%#`H%#pG&€H(#H(#H)#H)H)H)#@H)#PH)#`H)#pH)#€H)#�H)# G*°H+#H+#H+# H,#H,# H,#H,#H,# H,#0H/#H/#H/# H/#(H/#0H/#@H0#H0#H0# H0#0H3#H3H3H3#@H3#PH3#`H3#pH3#€G4G5�H6#H6#H6# H6#0H6#@H6#@G7G8G9G:H<#H=#H=#H>#H>#H># H?#H?#H@#H@#H@# H@#0H@#8H@#@H@#PH@#`H@#hH@ #pH@ #€H@ #�H@ # HA#HB#HB# HB#HB#HB#HD#HD#G�"G�!G‚H‚#G„"G„!G…H…#G‡"G‡!GˆHˆ#GŠ"GŠ!G‹H‹#G�"G�!G�"G�!G‘"G‘!G’H’#G”"G”!G–"G–!G˜"G˜!G™"G™!Gš"Gš!G›"G›!G�"G�!Gž"Gž!GŸHŸ#G¡"G¡!G¢"G¢!G£"G£!G¤H¤#G¦"G¦!G§"G§!G¨"G¨!G©H©#G«"G«!G¬H¬#G®"G®!Gò"Gò!GóHó#GÛGÞGàGãGæGéGì Gî *Gð GòGôGõG÷G÷GùGúGûGüGüGýGþ Gÿ G GUGWGYG[G]G_GbGdGfGh Gj GmGoGq *Gs GtGuGvGwGwGxGyGzG{G{G|G} G~ G GGGGGGG G G! G# *G% G&G'G(G)G)G*G+G,G-G-G.G/ G0 G1 G· G¹G»G½G¿G¿GÁGÃGÅGÇGÇGÉGË GÍ GÏ GÑ GÑGÔG GGG G"G"G$G&G(G*G*G,G. G0 G2 G4 G4GZ G\G^G`GbGbGdGfGhGjGjGlGn Gp Gr Gt GtGvG­ G¯G±G³GµGµG·G¹G»G½G½G¿GÁ Gà GÅ GÇ GÇGÉGÊ   +       +  +@ + ++  ! " # $%+'&%'(& )*)+*,  -. / -01 2.345364578-9+;ý:;<:=>?@ --AB - C@D+E+F+G+H+I+J+K ) L+MÛI@+NÛÉ@+OTø-@+Pÿÿÿÿ+Q¯´´>, RQQQ+Sެ,>+T ý|>+Uš™?, VSTU+W”„>+XÍÌÌ>+Y°¬,?, ZWXY+[îÐÐ=+\™Ÿ?+]¿¸8?, ^[\]+_+ùø=+`©¡!?+a‹‡?, b_`a+c¢šš>+d¶»;?, ecdQ+f ¦&?+gÜÔT?+hêèh>, ifgh+júòr?+kÍÈH?+loñp=, mjkl+n“Ž?, ojnl+pÛà`?+qƒŠ ?, rpWq, sRVZ^beimor+t€+u+vff¦?+wÍÌL?+x�Âõ=+y$tI+z€+{ns\?+|ý®>+}²>+~ýò&?+ÿ* €‚ ƒ‚;ƒ�… †…;†„ˆ ‰ˆ;‰‡‹ Œ‹;ŒŠ Ž;Ž� �;��’! “’;“‘ •";•” —#;—–;�˜;�™;—š œ$;œ›;��Ÿ(  Ÿ; ž;—¡;�¢¤+ ¥¤;¥£;œ¦;�§©6 ª©;ª¨¬< ­¬;­«;—® ° . ±;°¯±;°²±;°³±;°´± ¶.·;¶µ· ¹-.-º;¹¸º;¹»º;¶¼· ¾...¿;¾½¿;¶À·;¾Á¿ Ã.Ä;ÃÂÄ Æ1.1Ç;ÆÅÇ;ÃÈÄ;ÃÉÄ;ÃÊÄ;ÆËÇ;°Ì±;°Í±;°Î±;°Ï±;¶Ð· Ò . Ó;ÒÑÓ;°Ô±;°Õ± ×.Ø;×ÖØ;°Ù±;×ÚØ;×ÛØ;×ÜØ;×ÝØ;×ÞØ;×ߨ;×àØ;×áØ;°â±;×ãØ;×äØ;°å±;¹æº;×çØ;°è±;°é±;ÒêÓ;×ëØ;°ì±;°í±;°î±;°ï±;°ð±;ÒñÓóB ôó;ôò!ù-+! +R¸NA, + ®Ga=,    + = ‡?,    +š™@, +æ®%=,  !  ! +#ö(\?, $#+%€?+&š™Y?+'fff?, (&' * . +. - 3 4 \n !v  z.{ } …+�UUÕ>, ����+‘.M;, ’‘‘‘!�,Ÿ, %%%%+¡? ¤!°!¹+»?!Ê Í Ò Ø!)  ++ ½7†5!,- 3$!=, ,+C€¿, DC, E%%%+F@+GìQ8= I,.,J L. N.P R).)SZ [Z\ ,Z]GG,Z^PP p* t)!*!8+9·Ñ8!N +O @! ` , a, bMMM+~ÛÉ?+UUÕ@+€HB+­®Ga?+®ÍÌÌ=+¯ÍÌL>+° ×#<+±š™™>, ²UUU+Êffæ?+Ërá?+Ì‚‹µ>+ÍÒŒE=, ÎËÌÍ+Ï㥛=+Ðøˆh?+ÑfI€<, ÒÏÐÑ+Ó§è<+Ô» >+ÕxV?, ÖÓÔÕ+×YÉ<, Ø×××+Ù¯Þ½8, ÚÙÙÙ+ÛªÕ{?+ÜÁ«Ý>, ÝÜÜÜ+Þ�Ës>, ßÞÞÞ+àshÍ?+áÜô¿+âLà–½, ãàáâ+äRѽ+å4×�?+æ?Æ», çäåæ+èMV»+é2•½+껉?, ëèéê+ ?+…Ï>+%ëµ=+`¿>+T A?+‘+7>++­¦=+�í×=+¼t;?, , , ,1+hvû?+Ê@™¾+,P(¾+Š[¿+&É©?+ )ñs¾+!¸õÞ½+"Oßݼ+#ŠŠ³?, $, % , &!"#,1'$%&+(9•GÁ+)ŽÕ€@+*ÿæ[/, +***, ,(((, -)))+.1¬<+/îZ€@+0¼tÍA+1Ï·ŒB+2VŽ•B+3P�ØA+4ÿæÛ., 5444. 7!‚ +ƒ&Ó=+„\�úA, …„„„. ‡+Ÿ@@,  ŸŸŸ, ¡%, ¢%, £%%, ¤%, ¥%%, ¦%%, §%%%!Ð -+Òff&?+ÓÍÌ,@+ÔÍ̈A, ÕÔÔÔ+Ö33³>+×Cq‰=+Ø�E¿;,-Ùר+Ú‚îSB.Ü.  8!. Q  �+ƒ !À...+.Ä+.Æ€+.Çÿÿÿÿ+.Ìé#+÷Ï+øÿÿÿN,2ÌÌ+Án�>+,*ú>+�Ø‹?+ {¡>+!�Ø ?. # %+&‹"!“-+”®Gá¼+•˜n¿+–X9´<,—C”•–+˜{.=+™¸…?+š ×#½,›%˜™š+œázÁ+�¸…¿,-ž�™!²!½ +Àoƒ:.  â ã+  ! ..!. #. %+1 !ª-  «6+­̼Œ+, ®­­­ °-.-± ¶5 ·3+¸+¼ÿÿO!£ ,-¥+¦À.¨!# +% r1?+& ÀA+' «ª*>.i !‚  +… ÛIA. ‡ . Š .Œ ÿ 4!  -. .  .  .  . ! !Ç +Ê +Ë ¬Å'7 Í 7.7Î Ð 8.8Ñ . Õ × 9.9Ø .Ü .Þ .à !; !Ž  ‘ +• A. ™ . › . �   ...¢ ¯  °  ë  ñ  ¾  !Û  +í €@.ï .ñ .ó .õ . ÷ !C   D(+HÀ@+IA!g  . l!Ž% +¶æ±a!È % !ô  ü%.%ý.%ÿ & !%!P . X. Z.%\!¸ ¹<+»þ ½:+Áü!È>= Ë>.>Ì!C!@! B.!. # 2-,-]¡¡+^w¾? r !z1!†!˜!§--!¯ . ±. ³!Á !Ï1! ò --. ô!@ .@. >!F!] !k@ , o¡¡¡,-p%%. r. t. ý. ÿ!9+:ƒù¢>! g . i.k. m!° .³!ê . ñ!  . . . . . . . A!^ +p ×#>+q€A.,s. w. y. {. }. €,-n÷÷,-oøø,2vÌÌ!� . ¡ Ü ;ÜÛ;ÜÞ á-;áà ä;äã ç;çæ ê;êé;áì;äî ñ;ñð ó ;óò;óô ö-;öõ ø;ø÷;ñù;ñú;öû;øü;ñý;ñþ;ñÿ;ñ  ;ÜU;ÜW;áY;ä[;ç];ê_;çb;çd;çf;çh;áj;çm;êo;äq;ñs;ót;óu;öv;øw;ñx;ñy;öz;ø{;ñ|;ñ};ñ~;ñ;Ü;Ü;á;ä;ç;ê ;;ç;á!;ä#;ñ%;ó&;ó';ö(;ø);ñ*;ñ+;ö,;ø-;ñ.;ñ/;ñ0;ñ1;ç·;ܹ;Ü»;á½;ä¿;çÁ;çÃ;áÅ;äÇ;çÉ;çË;çÍ;çÏ Ò ;ÒÑ;ñÔ. î;ç;Ü;Ü;á ;ä";ç$;ç&;á(;ä*;ç,;ç.;ç0;ç2;Ò4,-:CC. <. >;çZ;Ü\;Ü^;á`;äb;çd;çf;áh;äj;çl;çn;çp;çr;Òt;ñv+{C,|{{{{. ~ €A.A�;ç­;ܯ;ܱ;á³;äµ;ç·;ç¹;á»;ä½;ç¿;çÁ;çÃ;çÅ;ÒÇ;ñÉ;ñÊ. Ð ÒD.DÓ6øù7-ö7÷øõ=ú�=û�ùüøüQýöQþöP-ÿýþVúûZÿ÷þ86 7 øùøˆ  �  ˆ    ¼© þ8677ø;*)+;*,-A �GA!"„Gù.ø.Ç/ª 0/G÷1ú021ø2þø1A45  E=65A47" =87ª 98EÇ:« ;:G÷<ú;=>ø=Ç?6F« @?G>)@ù<ø>>)€ù<ø<= A)÷BúACBøC9 D$PED%þEøBÇF'« GFG÷HúGIJøIÇK6« LKG>,LùHøJ>,€ùHøH= M,÷NúMONøO9 P(PQP%þQøNÇR6E« SRG÷TúSUTøU÷Vú9WVøWÇXE« YXG÷ZúY[Zø[A\] I=^]þ^øZA\_ H=`_þ`øVA4a" G=baª cbE÷dúcedøeA\f I=gfA\h J=ihA4j" E=kjª lkEPnollll©moigþmødùTøTA\p H=qpþq86uv7 s7tør;zy{Aw�GA!x„Gù|ø|A}~wG=~A}€xG=�€’‚�Pƒs%‘„‚ƒ>y„A…†yF=‡†ƒˆ%t…‰‡ˆA…ŠyF>Љ=‹yþ‹86 Ž7 �øŒù“ø“Ž ”�  •��Ž –• ƒ —– ¼˜�’© ™˜”—þ™86œ�7›øšAž�Gù¢ø¢ £+›Ÿ A¤¥ž =¦¥º §¦¡÷¨ú§©¨ø©O ª££9 «ŽªQ¬£P­«¬þ­ø¨þ£86¯°ø®A!±„Gù²ø²A4³±JF=´³ µ&´'þµ86¸¹7·ø¶A!º„Gù¼ø¼A4½ºJE=¾½A4¿ºJG=À¿° Á·©ÂÁÀ¾Ç÷ „ÄÃ'ÂÅÂÄÇÆÅ Ç&Æ»þÇ86 ÉÊøÈ;ÍÌsA!Ë„GùÎøÎA4ÏËJ =ÐÏ Ñ&Ð Ó&Ñ AÒÔÌÓ= ÕÔþÕ86×°øÖAØÙ‡GùÚøÚA4ÛÙ F=ÜÛ Ý&Ü'þÝ86à¹7ßøÞAØá‡GùâøâA4ãá E=äãA4åá G=æå° çß©èçæäÇéß „êé'ÂëèêÇìë í&ì»þí86ï°øîA!ð„GùñøñA4òðIF=óò ô&ó'þô86÷¹7öøõA!ø„GùùøùA4úøIE=ûúA4üøIG=ýü° þö©ÿþýûÇö „'ÂÿÇþ867)7 øA �GA  £Gù ø A¤ EG=A\  =O ƒ  BA¤ EE=º ¡©%…A4 GE= )E‚EpQQ  !(  ˆ"! #("% $# %+$þ%86+,7'7-(7)7 *ø&=$-¦=.§ù/ø/‚0'E|.10©2*)o41P 5(4V36-.X7652þ786,<=7 97 :7,;ø8;RQS;LKG;…OP;IHJ;*MN;[_^A>�GA!?„GA @£G=$A¦=B§ùTøT>H;9UïùVøVöWYù`ø`=Za_ª\b]a› cb÷dúcWdødQeaª feG©gfEGPZhgE‚Ziah>_iùXøX=jK° kjU÷lúklmømùWølùnøn=qK9r÷q s&r» u&s»Atv@Fu=)wvQxwPy9%‘zxyO {zz¾|{D› }|÷~ú}€ø¼�{E› ‚�>M‚ù~ø€>M€ù~ø~= ƒM¨ „ƒ÷…ú„†…ø†ùYø…Q‡{ ˆ‡ƒ‰%ˆQŠwQ‹ŠQŒwQ�ŒQŽ{º �Ž©���‹ ‘‰�>O‘Q’wQ“’º ”“÷•ú”–•ø–=—OQ˜wQ™˜QšwO ›šš”œ:›…�œ¡�ž�¡ Ÿ1™%ž… —Ÿ>O ù•ø•O-¡{{>Qw=)¢Q9£¢9Q¤wQ¥¤Q¦wQ§¦¬ ¨§G÷©ú¨ª©øªQ«wQ¬«Ç­¥E« ®­G9¯+¬¡£®O °¯¯9 ±°Q²¯P³±²Q´w…µ³´Q¶µ=·O…¸¶·AÒ¹HG= º¹O »µµQ¼wQ½¼…¾¸½P À¾¾¾  ¿.º»ÀAÒÁHG>Á¿QÂwQì ÄÃG÷ÅúÄÆÅøÆQÇwQÈÇÇÉ¥F« ÊÉG9Ë+È¡£ÊQÌË…ÍÌFƒÎÍ%QÏË…ÐÏFƒÑ%Ð…ÒÎ΃Ó%Ò…ÔÑуÕÓÔ Ö(Õ ×ÖQØwO ÙØØŽ ÚÙÎQÛwO ÜÛÛŽ ÝÜ×� ÞÚÝQßwO àßߎ áàÑ� âÞá  ãEâAÒäH= åäP 縸¸  æ.åãç  èEæAÒéH>éèùÅøÅQêwQëê¬ ìëG÷íúìîíøîQïwQðïÇñ¥« òñG9ó+ð¡£òA…ôH =õôQöó ÷.õö¸A…øH >ø÷A…ùHF=úùQûó ü.úû¸A…ýHF>ýüA…þHE=ÿþQó .ÿ¸A…HE>ùíøíù©ø©QwQ¬ G÷úøQwQ Ç ¥'«  G9 + ¡£ AÒ HH=  O   9 QwO … QwQŽ =OŽ � AÒHH>ùøùoøoùYøY=K€E>KùVøWA…HF= +G%A… HF> A…!HE="! #+"%A…$HE>$#=,%Hþ%86)*7'7(ø&ù+ø+…,''ƒ-(%….,-�/.%…0M/…10/ˆ2(1þ28678747576ø3ù:ø:…;55ƒ<%6…=;<�>=6 ?>…@4?…A44ƒB%6…CAB�DC6 ED…F5E�G@F H(G9ˆI¡HþI86 MN7 K7LøJùPøPƒ QEKƒR%L SROŽ TQS� UKTþU86 _`7 W7 X7 Y7 Z7 [7 \7]7^øVùcøc”dWY¼ ed÷fúegføgþaøf� hYX  iEh”jWi k(j”lXi m(l”nWX o(n99 pM\m9q)k]9r7do]…sqrŽ tpsˆ u[bŽ vt^� wuv… xwZŽ yxdþy86 |7 {øzAØ}‡Gù�ø�  ‚E{A\ƒ} =„ƒO …„„”†‚… ‡+†C% ˆ‡¼ ‰ˆ~÷Šú‰‹Šø‹ˆŒˆ~ƒ�%ŒƒŽ%� �(Ž  ��ƒ‘%� ’+‘%A\“}H=”“O •””A\–}=—–O ˜——P š’’’  ™.•˜šþ™øŠƒ›ˆ~ˆœ›~ƒ�%œ ž(�  Ÿž€ƒ %Ÿ ¡+ %A\¢}I=£¢O ¤££A\¥}J=¦¥O §¦¦P ©¡¡¡  ¨.¤§©þ¨86 ¬7 «øªù³ø³Ž ´«­…µ®UP ¶µµµ� ·´¶… ¸«·…¹¯°P º¹¹¹� »¸ºŽ ¼«­� ½¼²… ¾«½…¿¯±P À¿¿¿� Á¾Àˆ »ÁˆÃ°±P ÄÃÃà ÅÂÄþÅ86 ÉN7 Ç7ÈøÆùìøì”íÎÇ…îÊí”ïÒÇ…ðÊï”ñÖÇ…òÊñP óîðò� ôóØ… õóôƒ öõÚŽ ÷óÛ� ø÷Ý… ùóø� úù߈ ûöú”üãû”ýçû”þëûP ÿüýþ…ÊÈ�×…ƒÙ…Û�Ü…�ÞˆP ˆ ÿ þ 86 7 ø ;Ò67ù8ø8  9( +‘ :9>6:= ;6  <;  =+<,-ƒ >=,ƒ?)(P @???ˆ A>@>6A= B6= C6… DBC… EDD= F6Ž GF.Ž HD/� IGHŽ JD0= K6… LJKƒ MILŽ NE1� OMNŽ PE2= Q6… RPQƒ SORŽ TE3… UTD� VSU  W(V5  XW‘ Y'XþY86 \7 [øZAØ]‡Gù^ø^A¤_]FG=`_Ž a[`  b(aaA¤c]FE=dcA4e]GF=feª gfE÷húgihøiŽ jbd� kjbŽ lbdP mddd� nlmˆ oknþoøhª pfF÷qúprqør9 s¬bP tddd9 u¬tˆ vsuþvøqª wf ÷xúwyxøy9 zÉbdþzøxª {f÷|ú{}|ø}9 ~ bþ~ø|þb86�‚7 €ø;Ò†‡ùˆøˆŽ ‰€ƒ  Š ‰>†Š= ‹†= Œ†= �†O Ž��� �Ž…”�Œ�P ‘���� ’‹‘>†’A…“†G=”“A…•†E=–•�—”–A…˜†F=™˜…š—™ › šþ›86ž‚7 �øœù¨ø¨  ©�  ª �… «ªªŽ ¬ªFƒ ­ ¬… ®«­9¯�©� °©¡9±�°Q²® ³.¯±²� ´©¢9µ�´� ¶©£9·�¶Q¸® ¹.µ·¸Qº® ».³¹º� ¼©¤9½�¼� ¾©¥9¿�¾QÀ® Á.½¿À� ©¦9Ã�Â� Ä©§9Å�ÄQÆ® Ç.ÃÅÆQÈ® É.ÁÇÈQÊ® Ë.»ÉÊþË86ÏÐ7 Í7-ÎøÌ;…ÛÜA!Ñ„GùÝøÝA4ÞÑG=ßÞÇàßKª áàG© âLáL÷ãúâäãøäþ%øãA¤åÑEG =æåŽ çÍv9èžç…éèÒŽ êçÓ� ëêÕ9ìžë…íìÖ�îéí ï1¯wî>ÛïQðξ ñð÷òúñóòøó -ôΔõôÙ ö õ…÷Úö ø ÷=ùÛƒúø¡…ûúx�üùû ý+ü%>Ûýùòøò…þæÊ=ÿÛƒþÿˆwþ86 N7 7ø;* A!„GA؇Gù ø A4 G=  Ç  Kª  G¨ ÷úø¾ %>ùø>Lùø= © LL÷úøþøA4 = @O 9 9 \ 1%P   . þ86 #7 "ø!A!$„GAØ%‡Gù&ø&A4'$G=('Ç)(ª *)G© +L*L÷,ú+-,ø-þ"ø,A\.$E =/.O 0//9 1\0Q2/P 4222  3."14þ386 77 6ø5A89‘Gù:ø:A};9E=<;P=6‘><=O ?>>  @E?þ@86D*7B7CøAùEøEƒF%B G(F ˆH%C IGHƒJ%I K+J%þK86 N7 MøL;ÒPQ;LRG;[n^A8O‘GùSøSQTM U+TC% VUA\WO =XWO YXXA\ZOF=[ZO \[[ˆ]V~ƒ^%]A¤_OF =`_9aD^`P caaa  b.Y\cA¤dO =edŽ fbe>PfA4gOGF=hg i&hùjøjökmùoøo=Zpnª\q]p› rq÷súrksøsQtpª utG©vuEGPZwvE‚Zxpw>nxùløl=yR° zyi÷{úz{|ø|ùkø{ù}ø}=€R ‚&€ A�„Oƒ‚=…„Q†…Q‡†Qˆ…O ‰ˆˆ”ЉM ‹+ŠC% Œ‹¸ �Œ‡÷Žú���ø�Q‘…O ’‘‘>P’ùŽø�A¤“OIG=”“¸ •Œ”÷–ú•—–ø—ƒ˜Œ‡A¤™OIG=š™ƒ›š‡ˆœ˜›Q�…O ž��= ŸPA¤ OIE=¡ 9¢Dœ¡P ¤¢¢¢  £.žŸ¤>P£ù–ø–ùŽøŽù~ø~ùmøm=¥R€¦¥E>R¦ùjøkA\§OH=¨§O ©¨¨A\ªO=«ªO ¬««ƒ­V~ˆ®­~A¤¯O =°¯9±D®°P ³±±±  ².©¬³A¤´OH =µ´Ž ¶²µ= ·PQ¸M¾ ¹¸P»¹¹¹© º»·¶A¤¼OIF=½¼Ž ¾º½þ¾86.¿À7.Á7.ÂøÃª ÅÂĪ ÈÁƪ ÉÂǧ ÊÈɦ ËÅÊ©.ÍË̇.ÎÁÍ„.ÏÎÍ‚.ÐÁÏþÐ86 Ó7 ÒøÑA8Ô‘G=#Õ–=Ö™ù×ø×QØÒQÙÒÚÙ ÛØÚˆÜÛN Ý ÜQÞÒ ß+ÞC% à߈áàMP-âÝáA4ãÔGG=äãÇåä« æåG÷çúæèçøèVéêÕÖXëêâO ìëëA¤íÔIF=îíŽ ïìîþïøçgZðÕÄ|2ñðQòâQ.óñoôó…õòô öõ ù+ö÷øn.úùQ.ûñ9.ü¿úûQ.ýñ€.þüýQ.ÿñ9.¿þÿQâQ.ño…  +÷øn.Q.ñ‚. Ì . *Ä . '  P2  j. Õ‚. Ì .&Äg2Õ‚2 2& _ÕO A¤ÔIF=Ž þ86 7 ø;Ò"#A8‘Gù$ø$A\'&G=('O )((Ž *)>"*= +"A\,&E=-,O .--Q/…0/Ž 1.0� 2+1>"2= 3"A\4&F=54O 655Q7…87Ž 968� :39>":= ;"A\<& ==<O >==Q?…@?Ž A>@� B;A>"B= C"A\D&=EDO FEEQG…HGQI…JHIŽ KFJ� LCK>"L= M"A\N&H=ONO POOQQ…RQQS…TRSŽ UPT� VMU>"V= W"A\X&I=YXO ZYYQ[…\Ÿ[Q]…^\]ƒ_^%…` _Ž aZ`� bWa>"b= c"A\d&J=edO feeQg…hgQi…jhiŽ kfj� lck>"l= m"A\n&'=onO pooQqQr…sqrQtQu…vtuƒwsv…x!wŽ ypx� zmy>"z= {"  |({aþ|86 €N7 ~7ø}A8�‘G="‚”=ƒ˜ù„ø„A4…�GE=†… ‡)†E‚ˆ‡Ep‰ˆ…ЉV‹Œ‚ƒX�Œ~ŠO Ž��þŽ86-’“7�7‘ø�ùŸøŸŽ —��¡ ›Q¢¡Q£¡…¤¢£…¥œ‘ ¦¥ §%¤¦Q¨¡…©§¨Qª¡�«©ªŽ-¬ž«O-­¡¡�-®¬­þ®86±²7°ø¯ù³ø³ ´(° µ(°…¶´µ…·¶¶…¸··þ¸86 ¼½7 º7 »ø¹;ÒÁÂ;LÃG;[Ï^Aؾ‡GA8¿‘GùÄøÄ>ÁºA¤Å¿ =ÆÅº ÇÆÀ÷ÈúÇÉÈøÉ9Ê×ùËøËöÌÎùÐøÐ=ZÑϪ\Ò]Ñ› ÓÒ÷ÔúÓÌÔøÔQÕѪ ÖÕG©×ÖEGPZØ×E‚ZÙÑØ>ÏÙùÍøÍ=Úð ÛÚÊ÷ÜúÛÜÝøÝùÌøÜùÞøÞ=àÃ9áàà ä&á»A4å¾äG=æåª çæG÷èúçéèøé= êÁ ë&á»A\ì¾ëG=íìO îííˆ ïîb ð&á»A\ñ¾ðF=òñO óòò ôó”õ»ô9ö±õŽ ÷ïöA¤ø¿ =ùøŽ ú÷ù� ûêú>ÁûùèøèùßøßùÎøÎ=üÀýüE>ÃýùËøÌùÈøÈ= þÁþþ86 ½7 7 øÿA؇GA8‘GùøA\ =O A¤   =  P      . 9 ¼ A¤E=P   .þ86 7 7 7 ø;… !;*$%;…;Ò"#A�GA؇GA8‘G="”=˜ù&ø&A}'G=('P)%‘*()Q+*,+A\- =.-O /.. 0C/>0A¤21 =32º 43¡÷5ú465ø6A¤71G=87ƒ9,8 :(9>:ù5ø5A4;GG=<;Ç=<u« >=G÷?ú>@Aø@A¤B G=CBA¤D E=ED=F G1CEF H(G A¤I F=JI KHJº LG©MLKA¤NG=ON…PMO> Pù?øA=QRQA¤SG=TS…URT V%U WVƒX%W> Xù?ø?A¤Y =ZY [Z¾ \[9÷]ú\^]ø^A\_ =`_O a``”ba=c A¤dF=edƒfbeA¤g =hg…ifh j%i kjƒl%k m(cl> mù]ø]=n  o+n%> oA\p =qpO rqq>"rA4sGG=tsÇut'« vuG÷wúvxyøxA¤z  ={zº |{>$|ùwøy>$€ùwøw= }$© ~L}€÷ú~€ø€A¤�1E=‚�ƒƒ,‚A¤„1F=…„A¤†1E=‡†ƒˆ…‡ ‰(ˆ ˆŠƒ‰ ‹+Š%A4ŒGE=�Œ Ž)�F‚�ŽEp��ˆ‘%�ƒ’%‹ “.‘%’= ”"9 •79 –€•“A¤—I =˜—Ž ™–˜A¤š  =›šP �›››  œ.”™�>"œùø= ž"9 Ÿ¼ž>"Ÿ=  "=¡ P £¡¡¡  ¢. £þ¢86-©ª7¥7 ¦7 §7¨ø¤;…²;…´C;°¯±;…³A«¬¨Gùµøµ ¹&¥¸A¤º¬H¹ =»º ½+»¼m¾½ ¿&¥¸A¤À¬H¿ =ÁÀ Â%Á¨ª þ÷ÄúÃÅÄøÅP-ÆÂþÆøÄ Ç&¥¸A\ȬHÇE=ÉÈO ÊÉÉŽ ËÊ¡  ̧¸ÍÌ®© ÎÍ®§ Ï˃ ÐϦˆ ÑÐ΃ Ò˦ˆ ÓÒÎ  Ô%ÑÓ  Õ(ÑÓQÖÔ ×(ÖQØÕ Ù%ÂØP-Ú×Ù>¯Úª Û¾ ÷ÜúÛÝÞøÝA…߯G=àßQáÔ â(àáQãÔ ä(âãA…å¯E=æåQçÕ è%æçQéÕ ê%èéP-ëäê>¯ëùÜøÞª ì¾G÷íúìîïøîˆ ð§Ëˆ ñ§Ë”òðñ>²òˆ ó¦Ëˆ ô§Ë”õóô>³õˆ ö¦Ëˆ ÷¦Ë”øö÷ƒùø%>´ùùíøïQúËQûË ü%úûQýË…þFýˆÿüþª ¾E©ÿQËQ¦ƒQ§Q§…Q§Q §…  �  … Q §…  Q§…ƒ >²Q¦Q§…Q¦Q§…�……Q§…�>³Q¦Q¦… Q!¦Q"¦…#!"�$ #…%üü…&…'&…('ª )¾E©*)(%ƒ+$*>´+ùíøíùÜøÜ=,³=-³….,-=/²=0´…1/0ƒ2.1=3² 43¸ 54­÷6ú578ø7=9³ :9¸ ;:­÷<ú;=>ø=A…?¯E=@?=A´º BA©CBC@A…D¯E>DCù<ø>=E³º FE÷GúFHIøHA…J¯E=KJ=L´ML=N³…OFNˆPMO Q%KPA…R¯E>RQùGøIA…S¯G=TS=U´VU=W³…XFWˆYVX Z(TYA…[¯G>[ZùGøGù<ø<ù6ø8¸ \2÷]ú\^_ø^A…`¯E=a`=b²º cb©dcCaA…e¯E>edù]ø_=f³gf h2ƒigh=j²ˆkij=l³ml n2�omn=p²ˆqop r%kq=s³ts u2ƒvtu=w²ˆxvw=y³zy {2�|z{=}²ˆ~|} (x~=€²º �€÷‚ú�ƒ„øƒA……¯G=†… ‡(†rA…ˆ¯E=‰ˆ Š%‰P-‹‡Š>¯‹ù‚ø„A…Œ¯G=�ŒA…ޝE=�Ž �%�r¸ ‘��÷’ú‘“”ø“A…•¯E=–• —%–rA…˜¯E>˜—ù’ø”A…™¯G=š™ ›(šA…œ¯G>œ›ù’ø’ù‚ø‚ù]ø]ù6ø6=-�¯þ�86¢£7Ÿ7  7 ¡øž;…§¨;…©A«¤¨Gùªøª «&Ÿ¸A·¬¤H«=3­¬Q®­Q¯®Q°­Q±°²±A\³¤ =´³O µ´´”¶ µQ·­Q¸·ƒ¹¶¸…º²¹ »º ¼%»%…½¯¼>§½Q¾­Q¿¾º À¿÷ÁúÀÂÁøÂQíQÄà Å+ļmÆÅQÇ­O ÈÇÇŽ ÉÈ¡QÊÉQËÉ Ì%Ê˪ ÍÆG÷ÎúÍÏÐøÏˆ Ñ¡É ÒBуÓÒ%…ÔÒÓ… ÕÉɈ Ö¡Õ ×BÖ Ø(×­ˆÙÔØ>©ÙùÎøÐª ÚÆ ÷ÛúÚÜÝøÜ  Þ¡ƒ ßÞÉ  à(ßa áBàQâßQãßQäß å(ãä æ(âå ç%æ�èáç>©èùÛøÝª éÆF÷êúéëìøëO-í¡¡ îBíƒïîÌQð¡ ñðQòɃóñòP-ôïóQõôQöô ÷(õö ø%÷ -ù(ô¥ úBù�ûøú>©ûùêøì…üÌ¡ ý(Àüˆþ%ýQÿÉ  (Àÿˆ % P- þ - E O- ¡¡  B Q ¡Q Ƀ   P-   ”  Q É Q ¡ƒ  (  >© ùêøêùÛøÛùÎøÎ= §= ©… ¦ Q ­Q  ˆ    + %Q ­Q      …   >§ ùÁøÁ= §þ 86" # 7 7 7 7 7! ø A«$ ¨Gù( ø( ) & ¸A\* $ H) F=+ * Q, + …- ,  ´ . - ÷/ ú. 0 / ø0 Q1 + ƒ2 ! …3 1 2 4 , …5 4  6 5 7 %6 %…8 3 7 þ8 ø/ 9  ˆ: 9  ; +: ! º <  ©= < ; º >  ©? > ! ; @  …A , @ ƒB ? = …C A B …D C % E D F E ƒG %F ˆH G D ˆI D & ƒJ ' I …K D J ƒL ¡K …M D L ƒN %M ¸ O D °©P O N H Q , º R  ©S R = ? …T  S �U  T V (U …W Q V X W Y %X %QZ + ƒ[ ! ƒ\ ? = ƒ] [ \ ƒ^ ? = …_ Y ^ …` _ P �a ] ` …b Z a þb 86g 87d 7e 7f øc ;…h i ùj øj …k d e >h k =l h =m h …n l m >h n =o h =p h …q o p >h q =r h ƒs %r t (s >h t =u h =v h …w u v >h w =x h y (d 9z f { y z …| x { þ| 86 � ‚ 7~ 7  7 € ø} ;Lˆ G;…‹ Œ ;Ò† ‡ ;Ò‰ Š ;[� ^A؃ ‡GA«„ ¨Gù� ø� A\Ž „ F=� Ž O � � � A¤‘ „ EE=’ ‘ Ž “ � ’ >† “ A¤” „ EG=• ” – &~ ¸A3— „ H– H=˜ — ù™ ø™ öš œ ùž øž =ZŸ � ª\  ]Ÿ › ¡   ÷¢ ú¡ š ¢ ø¢ Q£ Ÿ ª ¤ £ G©¥ ¤ EGPZ¦ ¥ E‚Z§ Ÿ ¦ >� § ù› ø› =¨ ˆ Q© ˜  ª &© '° « ¨ ª ÷¬ ú« ¬ ­ ø­ ùš ø¬ ù® ø® Q° ˜ Q± ˜ =² ˆ ° ³ ² ©´ ³ ± ° =µ ˆ Ƕ µ „· ¶ '¸ ´ · ǹ ¸  º &¹ » » &º »Aã¼ ƒ » =½ ¼ Q¾ ½ O ¿ ¾ ¾  À ¿ >‰ À >‹ %QÁ ½ Q Á « à  G÷Ä úÃ Å Ä øÅ QÆ ½ O Ç Æ Æ ƒ È Ç  É BÈ Ê (É P Ë Ê Ê Ê ˆ Ì È Ë >‰ Ì Í BÈ QÎ ½ QÏ Î QÐ ½ QÑ Ð 9Ò g Í Ï Ñ >‹ Ò QÓ ½ QÔ Ó ª Õ Ô F÷Ö úÕ × Ö ø× = Ø ‰  Ù Ø QÚ ½ O Û Ú Ú ”Ü Ù Û QÝ ½ QÞ Ý ß (Ü Þ ƒà %ß Qá ½ Qâ á ƒã %â ä (ã ˆå à ä æ (9å =ç ‹ Qè ½ Qé è  ê æ é ƒë %ê …ì ç ë >‹ ì ùÖ øÖ ùÄ øÄ …í • • �î %í …ï F• = ð ‰ ”ñ € ð …ò ï ñ ƒó î ò = ô † Qõ ½ O ö õ õ =÷ ‹ …ø • • ƒù %ø …ú ÷ ù …û … ó ü ó …ý û ü ˆþ ú ý  º FÇ º  &  & ¸A¤ „   =  … þ  Ž  ö  �  ô  >†  ù¯ ø¯ ùœ øœ = ˆ € E>ˆ ù™ øš = † þ 86  7 7  7  7- ø ;*  ;Ò a;…  ;* ! ;… ;*  ;L G;*  ;[[ ^AØ ‡GA« ¨Gù" ø" # & ¸A·$  H# =3% $ Q& % P'  %‘( & ' O ) ( ( Q* % P+  ‘, * + O - , , A\.  =/ . O 0 / / ”1  0 Q2 % Q3 2 ƒ4 1 3 A\5  =6 5 O 7 6 6 ”8  7 Q9 % Q: 9 º ; : Q<  Q=  �> < = …? > ¡> ? Q@ % QA @ º B A ÷C úB D E øD F 4 ˆG F 8 QH  º I G H > I ùC øE > €ùC øC = J  ÷K úJ L M øL N 4 ˆO N 8 QP  ¸ Q O P > Q ùK øM > €ùK øK = R  ÷S úR T S øT U 4 ˆV U 8 > V ùS øS ùW øW öX Z ù\ ø\ =Z] [ ª\^ ]] › _ ^ ÷` ú_ X ` ø` Qa ] ª b a G©c b EGPZd c E‚Ze ] d >[ e ùY øY =f  ©g ; 1° h f g ÷i úh i j øj ùX øi ùk øk =m  Çn m ª o n G¨ p o ÷q úp r s ør ª t n > t ùq øs > Lùq øq = u  ©v u {|ª w n G¨ x w ÷y úx z { øz ª | n > | ùy ø{ > Lùy øy = } ©~ } }~=  Q€  P-�  € Q‚  =ƒ  P-„ ‚ ƒ =…  ° † … 'P\ˆ † † ©-‡ ˆ „ � =‰  ° Š ‰ P\Œ Š Š ©-‹ Œ  ‡ Q� ‹ QŽ ‹ ƒ� � Ž …� � ¡Q‘ ‹ Q’ ‹ �“ ‘ ’ …” “ ¡• v ° – n F©— – • v …˜ � — �™ ” ˜ Ž š  ™ � ›  š Ž œ - ™ � � ) œ 9ž ¢ › � =Ÿ  °   Ÿ ÷¡ ú  ¢ £ ø¢ = ¤  Q¥ % O ¦ ¥ ¥ 9 § � ›  … ¨ ¦ § Q© % O ª © © � « ¨ ª …¬ ~ � ­ +ž %…® ¬ ­ Ž ¯ « ® � ° ¤ ¯ > ° ù¡ ø£ =±  …² ~ � …³ ² ž �´ ± ³ > ´ ù¡ ø¡ ùl øl ùZ øZ =µ  €¶ µ E> ¶ ùW øX ¨ · ; ÷¸ ú· ¹ ¸ ø¹ Qº  Q»  9 ¼ " 4 8 º » > ¼ ù¸ ø¸ = ½  =¾  P¿ ½ ¾ þ¿ 86 Æ Ç 7 Á 7  7 à 7Ä 7Å øÀ ;…â ;LÝ Þ ;LÙ G;LÓ G;Í Ì Î ;Lã G;Lß à ;LÚ G;*Ô Õ ;Ð Ï Ñ ;Òá a;…Û Ü ;× Ö Ø ;LÒ G;[ê ^;[1 ^;[U ^;[r ^;[º ^;[ ^AØÈ ‡GA«É ¨Gùä øä ® å Å zùæ øæ öç é ùë øë =Zì ê ª\í ]ì › î í ÷ï úî ç ï øï Qð ì ª ñ ð G©ò ñ EGPZó ò E‚Zô ì ó >ê ô ùè øè =õ Ó A4ö É GG=÷ ö ø &÷ ©ù å ø ° ú õ ù ÷û úú û ü øü ùç øû ùý øý =ÿ Ó Ç ÿ „ ' Š Ç  Ê ¨  å ÷ ú   ø ª   G>Ô  ù ø >Ô €ù ø = Ô ÷ ú ø ùç ø  & ‚ E= Ó © å   & ¸A} É H G=  P  %‘   O    P à ‘   O    9- ©   Ä Q  Q  º    ÷ ú   ø = Ò  & AL! Ì >!  =" Ò # &" A°$ Ï # >$  =% Ò €& % E>Ò & =' Ò ª ( ' ÷) ú( * ) ø* ùç ø) ù ø ùþ øþ ùé øé =+ Ó €, + E>Ó , ùæ øç ù- ø- ö. 0 ù2 ø2 =Z3 1 ª\4 ]3 › 5 4 ÷6 ú5 . 6 ø6 Q7 3 ª 8 7 G©9 8 EGPZ: 9 E‚Z; 3 : >1 ; ù/ ø/ =< Ù == Ò ° > < = ÷? ú> ? @ ø@ ù. ø? ùA øA =C Ù =D Ù E &D ALF Ì E =G F =H Ù I &H A°J Ï I =-K J 9L  G  à K M &C AzN Ö M >N L ùB øB ù0 ø0 =O Ù €P O E>Ù P ù- ø. ùQ øQ öR T ùV øV =ZW U ª\X ]W › Y X ÷Z úY R Z øZ Q[ W ª \ [ G©] \ EGPZ^ ] E‚Z_ W ^ >U _ ùS øS =` Ú =a Ò ° b ` a ÷c úb c d ød ùR øc ùe øe =g Ú h &g A…i Ö h =j i ¸ k j ÷l úk m l øm >Û >Ý Gùn øn öo q ùs øs =Zt r ª\u ]t › v u ÷w úv o w øw Qx t ª y x G©z y EGPZ{ z E‚Z| t { >r | ùp øp =} Ý =~ Ò °  } ~ ÷€ ú € � ø� ùo ø€ ù‚ ø‚ =„ Ý … &„ A…† Ï … E=‡ † =ˆ Ú ‰ &ˆ A…Š Ï ‰ E=‹ Š Œ %‡ ‹ =� Ý Ž &� A…� Ï Ž G=� � =‘ Ú ’ &‘ A…“ Ï ’ G=” “ • (� ” ƒ– Œ • — (– =˜ Ý ™ &˜ A…š Ï ™ E=› š =œ Ý � &œ A…ž Ï � G=Ÿ ž ƒ  › Ÿ ¡ (  ˆ¢ — ¡ =£ Û =¤ Ý ¥ &¤ A…¦ Ö ¥ =§ ¦ ¨ (§ …© ¨ ¢ �ª £ © >Û ª ùƒ øƒ ùq øq =« Ý €¬ « E>Ý ¬ ùn øo =­ Ú ® &­ A…¯ Ö ® =° ¯ ± ° =² Û ³ (² ­ˆ´ ± ³ µ %´ %>ß Gù¶ ø¶ ö· ¹ ù» ø» =Z¼ º ª\½ ]¼ › ¾ ½ ÷¿ ú¾ · ¿ ø¿ QÀ ¼ ª Á À G© Á EGPZà  E‚ZÄ ¼ à >º Ä ù¸ ø¸ =Å ß =Æ Ò ° Ç Å Æ ÷È úÇ È É øÉ ù· øÈ ùÊ øÊ =Ì ß Í &Ì A…Î Ö Í =Ï Î º Ð Ï ÷Ñ úÐ Ò Ñ øÒ =Ó ß Ô &Ó A…Õ Ï Ô E=Ö Õ =× Ú Ø &× A…Ù Ï Ø E=Ú Ù Û %Ö Ú =Ü ß Ý &Ü A…Þ Ï Ý G=ß Þ =à Ú á &à A…â Ï á G=ã â ä (ß ã ƒå Û ä æ (å =ç ß è &ç A…é Ï è E=ê é =ë ß ì &ë A…í Ï ì G=î í ƒï ê î ð (ï ˆñ æ ð =ò ß ó &ò Azô Ö ó =õ ô …ö ñ µ ƒ÷ %ö Žø õ ÷ ù &ò Azú Ö ù >ú ø ùÑ øÑ ùË øË ù¹ ø¹ =û ß €ü û E>ß ü ù¶ ø· ùl øl ùf øf ùT øT =ý Ú €þ ý E>Ú þ ùQ øR ùÿ øÿ ö  ù ø =Z  ª\ ] ›   ÷ ú  ø Q  ª G© EGPZ E‚Z  > ù ø = ã = Ò °    ÷ ú   ø ù ø ù ø = ã  & A… Ö  =  º   ÷ ú   ø =  á = ã  & Az Ö  =  O ! � "  ! >á " =# â =$ ã % &$ A…& Ö % =' & �( # ' >â ( ù ø ù ø ù ø =) ã €* ) E>ã * ùÿ ø =+ â , + - , Ž . Á - = / á ƒ0 %- =1 â 2 (1 Ë ˆ3 0 2 Ž 4 / 3 � 5 . 4 þ5 86 : ; 7 7 7 8 79 ø6 A< �GAØ= ‡GA«> ¨Gù? ø? A¤@ < GGF=A @ A¤B < GEF=C B A¤D < GFF=E D P F A C E  G EF A\H < =I H O J I I A}K < G=L K PM 8 %‘N L M QO N Ž P G O ƒ Q 8 P A¤R < =S R º T S ¡PV T T T © U V Q J ƒ W 8 U X BW ƒ Y 8 U Z (X P [ Z Z Z ˆ \ Y [ 9 ] Æ 7 U \ X 9 º ^ X P` ^ ^ ^ © _ ` ] 7 þ_ 86 e 7 b 7 c 7 d øa Af �GAØg ‡GA«h ¨Gùi øi A¤j f GGF=k j A¤l f GEF=m l A¤n f GFF=o n P p k m o  q Ep A\r f =s r O t s s A}u f G=v u Pw c %‘x v w Qy x Ž z q y ƒ { c z A¤| f =} | º ~ } ¡P€ ~ ~ ~ ©  € { t A4� h GE=‚ � 9 ƒ Æ b  d y‚ A¤„ h EF=… „ P ‡ … … …  † .b ƒ ‡ þ† 86� Ž 7‰ 7 Š 7 ‹ 7 Œ øˆ ;  Ÿ Ç;*š › ;L– G;  ¡ ¢ ;*œ � ;L— G;…ž ;*˜ ™ ;[Ï ^;[s ^;[ˆ ^A� �GAØ� ‡GA‘ ’ ŠG=“ �=” �ù£ ø£ ¤ &‰ »A4¥ � ¤ G=¦ ¥ § &‰ »A\¨ � § E=© ¨ O ª © ©  « &‰ »A4¬ � «  =­ ¬ ® &­ ¸ ± &® ¸A\² ’ E± G=³ ² ´ &® ¸A4µ ’ E´ G=¶ µ · &® ¸A4¸ ’ E· E=¹ ¸ º )¹ EA}» � G=¼ » P½ Š %‘¾ ¼ ½ Q¿ ¾ À ¿ ª Á ¦ G÷ úÁ à  øà Ä &® ¸A¤Å ’ EÄ FE=Æ Å º Ç À Æ ÷È úÇ É È øÉ þ%øÈ ‚Ê º E>– Ê ùË øË öÌ Î ùÐ øÐ =ZÑ Ï ª\Ò ]Ñ › Ó Ò ÷Ô úÓ Ì Ô øÔ QÕ Ñ ª Ö Õ G©× Ö EGPZØ × E‚ZÙ Ñ Ø >Ï Ù ùÍ øÍ =Ú — ° Û Ú º ÷Ü úÛ Ü Ý øÝ ùÌ øÜ ùÞ øÞ =à — á &à â &® ¸A¤ã ’ Eâ Eá =ä ã ¼ å À ä ÷æ úå ç æ øç =è — >– è ùÌ øæ ùß øß ùÎ øÎ =é — €ê é E>— ê ùË øÌ ù ø =ì – ‚í º E î &ì í €ï ¶ î ð &ï ¸ ò &ð ¸A\ó ’ Fò F=ô ó Qõ ô Qö ô  ÷ CŠ ª …ø ö ÷ �ù õ ø Qú ³ Qû ³  ü (û %…ý ú ü …þ ý ù Ž ÿ ‹ þ � Š ÿ Q ³ …  ù Ž  Œ  �   ª  ¦ E÷ ú   ø ƒ   ª   Q Q ¾ ÷ ú   ø Q Q ¾    >˜  ù ø >˜ €ù ø =  ˜ ÷ ú   ø Q  ¾   ©  GE>–  ù ø Q Q ¾    ÷ ú   ø Q  ¾ ! ©" ! F >– " ù ø Q#  ¾ $ # ©% $ H>– % ù ø ù ø ù ø =& – ‚' º E ( && ' €) ¶ ( * &) ¸ + &* ¸A}, ’ F+ G=- , P.  %‘/ - . Q0 / ¼ 1 0 ÷2 ú1 3 2 ø3 þ%ø2 O 4 / / Q5 / P 6 5 5 5 ˆ 7 4 6 Q8 7 9 8 º : 9 %¨ ; : ÷< ú; = > ø= Q? 7  @ ? º A @ %>š A ù< ø> >š Lù< ø< = B š ¨ C B ÷D úC E F øE QG 7 º H G %>œ H ùD øF >œ LùD øD = I œ ÷J úI K J øK þ%øJ L &* ¸A\M ’ FL E=N M QO 7 …P O ¡�Q P ¡QR 7 …S R ¡ƒT ¡S P-U Q T O-V N N O-W N N …-X U W �-Y V X A¤Z ’ GG=[ Z O-\ N N …] ¡[ P-^ ] ] �-_ \ ^ O-` N N O-a N N �-b ` a …c ¡[ P-d c c ƒ-e b d Qf ³ ¼ g f ÷h úg i j øi -k +Y _ e Ql 7 9m øk l >ž m ùh øj …n f [ ùo øo öp r ùt øt =Zu s ª\v ]u › w v ÷x úw p x øx Qy u ª z y G©{ z EGPZ| { E‚Z} u | >s } ùq øq =.~ Ÿ ³  ~ Ì÷€ ú € � ø� ùp ø€ ù‚ ø‚ >¡ Çù„ ø„ ö… ‡ ù‰ ø‰ =ZŠ ˆ ª\‹ ]Š › Œ ‹ ÷� úŒ … � ø� QŽ Š ª � Ž G©� � EGPZ‘ � E‚Z’ Š ‘ >ˆ ’ ù† ø† =.“ ¡ ³ ” “ Ì÷• ú” • – ø– ù… ø• ù— ø— =.™ ¡ oš ™ =.› Ÿ oœ › P-� š œ Ž-ž � n �-Ÿ Y ž -  +Ÿ _ e =¡ ž Q¢ 7 9£ ø  ¢ �¤ ¡ £ >ž ¤ ù˜ ø˜ ù‡ ø‡ =.¥ ¡ €.¦ ¥ Ì>¡ ¦ ù„ ø… ùƒ øƒ ùr ør =.§ Ÿ €.¨ § Ì>Ÿ ¨ ùo øp =© ž ˆª © • >ž ª ùh øh ª « ¦ G÷¬ ú« ­ ¬ ø­ ® &® ¸A\¯ ’ E® F=° ¯ =± ž Q² ° Q³ °  ´ 1² ³ À µ .± %´ >ž µ ù¬ ø¬ =¶ ž Q· ³  ¸ .%¶ · þ¸ 86 » 7 º ø¹ A!¼ „Gù½ ø½ A¤¿ ¼ HGG=À ¿ A\Á ¼ HG= Á O à   ”Ä Ã º �Å À Ä A¤Æ ¼ HEG=Ç Æ A\È ¼ HE=É È O Ê É É ”Ë Ê º �Ì Ç Ë A¤Í ¼ HFG=Î Í A\Ï ¼ HF=Ð Ï O Ñ Ð Ð ”Ò Ñ º �Ó Î Ò P Ô Å Ì Ó  Õ (Ô aþÕ 86Ú Û 7 × 7 Ø 7 Ù øÖ A!Ü „GùÝ øÝ ÷Þ úØ ß Þ øß Pà Ù %þà øÞ A4á Ü G=â á Çã â '« ä ã G© å Lä €÷æ úå ç æ øç 9 è » × Pé è %þé øæ þŸ86 ì 7 ë øê ;*ö ÷ ;…ð ñ ;…ô õ ;…î ï ;…ò ó ùø øø  ù ë Qú ù Qû ù ¾ ü ú û ÷ý úü þ ÿ øþ Qù Qù ¾ >ö ùý øÿ >ö €ùý øý = ö ÷úøQù >ð Që ¾ ÷ ú   ø >î Q ë  >ò Që >ô ù ø >î %Që >ò Që >ô ù ø ùøQù Qù ¾ ÷úøQù >ð Që ¾ ÷úø>î FQ ë >ò Q!ë >ô !ùø>î ŸQ"ë >ò "Q#ë $#>ô $ùøùøQ%ù >ð %Q&ë ¾ '&÷(ú')*ø)>î í Q+ë >ò +Q,ë -,>ô -ù(ø*>î OQ.ë /.>ò /Q0ë 10>ô 1ù(ø(ùøùø=2î =3ò =4ð ˆ534�65%…76¡=8ô =9ð ˆ:89�;:%…<;¡P =27<þ=86 BC7?7 @7Aø>ADEžG=#F¡=G¢ùJøJA4KEGF=LKÂMLA N)MEpONˆP¡OQQ@ƒR%P S+QPRQT@ƒU%P V+TPUQW@�XWSˆYXHpZ?�[ZVˆ\[IP-]Y\p^AVé_FGX`_]^O a``þa86 fg7c7 d7eøb;*klADhžG=#i¡=j¢ùmømA4nhGE=on p)oE‚qpEprq s+er t+s¼mutpvuƒwsv9 xì d9 yBcxu¼ zw¨ {z÷|ú{}~ø}€uE® €p>k€ù|ø~>kLù|ø|= �k÷‚ú�ƒ‚øƒþyø‚ƒ„%wŽ …y„€†uE9 ‡Bcx†Ž ˆ‡w� ‰…ˆþ‰86�Ž7%‹7 ŒøŠù�ø�Q�‹P‘Œ%‘’�‘O “’’Q”‹O •””Q–•Q—“ ˜—ƒ™–˜Qš•Q›“ œ›ƒ�šœQž•QŸ“  Ÿƒ¡ž  ¢%�¡ £%™¢¸ ¤£÷¥ú¤¦¥ø¦þø¥Q§‹Q¨§º ©¨¨ ª©÷«úª¬«ø¬þ%ø«Q­‹Q®­ˆ¯£® °%¯%þ°86µ87²7³7´ø±ù·ø·º ¸³÷¹ú¸º¹øºƒ»´²ˆ¼»³þ¼ø¹¸ ½³÷¾ú½¿¾ø¿À´ƒÁÀ²ˆÂÁ³þÂø¾þ¶86 ÇÈ7%Ä7 Å7 ÆøÃùÉøÉQÊÄPËÆ‘ÌÊËO ÍÌÌQÎÄQÏÎÇÐÏEª ÑÐG÷ÒúÑÓÒøÓþÍøÒQÔÄPÕÅ%‘ÖÔÕO ×ÖÖQØÄO ÙØØQÚ×QÛÍQÜÙ9ݵÚÛÜQÞ×QßÍQàÙ9áµÞßàQâ×QãÍQäÙ9åµâãä æ%áå ç%Ýæ è(çŽ éÍè� ê×éQëÄO ìëëƒ íêìþí86óô7 ï7 ð7ñ7òøî;üþÿ;…ù;üûý;Òøa;LúG;[^ADõžG=#ö¡=÷¢ùøA4õGG= &'A4õGE= )E‚Ep… ñù ø ö  ùø=Zª\]› ÷ú øQª G©EGPZE‚Z>ù ø =ú° ÷úøù øùø= ú "& JA!#õE"=%$#Q%$Q&%Â'ò&Ç('Eª )(G÷*ú)+*ø+ù ø*>û$=%,û9-�,ï¼ .-÷/ú.0/ø0ù ø/= 1øQ2$Q32>þ$=%4þ9 5Ç4ïð9 6f35 Q7$Q87Ž 968Ž :9-� ;1:>ø;=<ù�=<->ù=ùøù ø =>ú€?>E>ú?ù ø =@ùº A@%÷BúACBøC= Dø=EùP FEEEˆ GDF>øG>ù%ùBøB= Hø=IùPJHIþJ86OP7 L7 M7NøK;ÒYZ;…U;*WX;ÒTa;ü[\;LVG;[i^ADQžG=#R¡=S¢ù]ø]A4^QGG=_^ `&_'A4aQGE=ba c)bE‚dcEùeøeöfhùjøj=Zkiª\l]k› ml÷númfnønQokª poG©qpEGPZrqE‚Zskr>isùgøg=tV° ut`÷vúuvwøwùføvùxøx=zV {&zJA!|QE{=%}|Q~}Q~€NÇ�€Eª ‚�G¨ ƒ‚÷„úƒ…†ø…Q‡}Qˆ‡ª ‰ˆG>W‰ù„ø†>WLù„ø„= ŠW÷‹úŠŒ‹øŒùhø‹>[}=%�[9Ž��L¼ �Ž÷�ú�‘�ø‘ùhø�Q’}O “’’>Y“Q”}Q•”ª –•E÷—ú–˜—ø˜Q™}Qš™Q›}PœM‘�›œO ž��9 Ÿì ž9  BšŸd>Y ù—ø—= ¡T= ¢YŽ £¢Ž� ¤¡£>T¤=¥U�¦¥Ž>U¦ùyøyùhøh=§V€¨§E>V¨ùeøf=©Uº ª©%÷«úª¬«ø¬= ­T=®UP ¯®®®ˆ °­¯>T°>U%ù«ø«= ±T=²UP³±²þ³86·¸7µ7¶ø´A¹º«Gù¼ø¼ ¾&µ»„¿¾ €À¿¶ Â&ÀÁA\úGÂ=ÄÃþÄ86>ÇÈ7=ÆøÅ;ËÊÌA¹É«GùÍøÍQÎÆQÏÆQÐÏQÑÎ9Ò·ÑGŽÓÒÐQÔÏQÕÎ9Ö·ÕGŽ×ÖÔ�ØÓ×QÙÏQÚÎ9Û·ÚGŽÜÛÙ�ÝØÜQÞÏQßÎ9à·ßGŽáàÞ�âÝáAzãÊG>ãâQäÏQåÎ9æ·åEŽçæäQèÏQéÎ9ê·éEŽëêè�ìçëQíÏQîÎ9ï·îEŽðïí�ñìðQòÏQóÎ9ô·óEŽõôò�öñõAz÷ÊE>÷öQøÏQùÎ9ú·ùFŽûúøQüÏQýÎ9þ·ýFŽÿþü�ûÿQÏQÎ9·FŽ�QÏQÎ9·FŽ �  Az ÊF>  => Êþ 867Cø ùøý867@øùøý86øùøý86ø;z !;*"#A�GAòGù$ø$A¤%E=&%…'¡&ƒ(%'=)Ê= *¯Ž +*(P,+%‘-),> -A}.E=/.=0 ‘1/0A¤3G=43º 54÷6ú578ø7Q91º :99>":ù6ø8>"€ù6ø6= ;"÷<ú;=<ø=A2>=-?>Ž-@?¡O-A11QB1P-CBBˆ-DAC…-ED@ -FEˆ-GF@=HÉQI1Ž-JGIQK1QL1PMJKL‘NHMO ONNQPNP QPPPˆ ROQPSR%> Sù<ø<=T O UTT>¯U=1VË= W²‘ XVW  YEX>²Yý86[øZA\òGù_ø_=-`¸ƒ-a`] bBa…cbFƒd%c e+d%A¤f\F=gf…heg�ih^ jiA¤k\F=lkˆmjlA¤n\E=onƒp%o…qmpArs\G= tsP vqqq  u.Etv>Ùuý861yz7xøwù{ø{Q|xO }||Q~xO ~~Q€xO �€€P1‚}�þ‚86…†7„øƒù‡ø‡91ˆy„T1‰ˆQŠ„O ‹ŠŠ‘ Œ‰‹ �ŒQ މP�ŽQ �‰P‘�Q ’‰P“’P”�%P•�‘“”þ•86—˜ø–A™�GùšøšA\›™H=œ›A\�™I=ž�A\Ÿ™J= ŸA\¡™'=¢¡P£œž ¢þ£86-¦§7-¥ø¤ù¨ø¨Q©¥Qª¥ƒ«%ªP-¬©«þ¬86 ®¯ø­;*°±;*²³ù´ø´÷µú€¶·ø¶>°Lùµø·>°€ùµøµ= ¸°¨ ¹¸÷ºú¹»¼ø»>²Lùºø¼>²Lùºøº= ½²þ½86 ÀÁ7¿ø¾A!„GùÃøÃA4ÄÂG=ÅÄÇÆÅF« ÇÆGÇÈ¿t« ÉÈG¥ ÊÇÉþÊ86ÎÏ7Ì71ÍøËAÐ�GùÑøÑ>ÂÌ>ÅÍA}ÒÐG=ÓÒ9Ô…Ó>ÈÔ9Õ—>ÉÕA}ÖÐG=×Ö’Ø×Ì>ÊØA}ÙÐG=ÚÙ91ÛyÚ’1ÜÛÍ>ËÜQÝÌO ÞÝÝ>ÌÞA}ßÐG=àßQáÌO âááPãâ%‘äàãO åää>ÍåA¶æÈF=çæO èçç>Îèý86ñò7 ê7 ë7ì7-í7-î7ï7ðøé;*óôùõøõ>¯ê>²ëO öìì>³öO ÷ìì  øDë÷QùìŽ úøù>´ú9-û¦í>¸û9-ü¦î>»ü>¼ï|.ýð>Áý>µ ÷þú€ÿøÿ>ó€ùþø>ó€ùþøþ= ó÷úø=Â= ¯P%‘O >¯ =1 Å= ²‘   >² =1 Å= ³‘  >³=1Å= ´‘ >´ýøýøý86@77 7 77ø;CA�GùøA}F= ‘! Az"G>"!÷#ú€$#ø$=%µAz&G>&%ù#ø#O 'AÒ(E>('  )EAÒ*F>*)=-+¸A°, >,+AL->-  .EP/.Az0H>0/=1¼Az2I>21=-3»A°4J>43=.5½ .6*5Ä|76AL8'>8799=@:þ:86 <¯ø;;*=>ù?ø?÷@ú€ABøA>=€ù@øB>=Lù@ø@= C=þC86EFøDùGøG÷HúLIHøI=JÈ= K¯PLK%‘MJLþMøH= N¯PON%þO86 R7 QøPùSøS÷TúLUTøU=VÈ91WyV‘ XWQþXøTþQ86\]7Z7 [øYA!^„Gù_ø_A4`^G=a`ÇbaF« cbG¥ dc[©edC%…fZeþf86jk7@h7 iøg;Òqr;ÒstAl�GA!m„GAnòGùuøuQvh9 wÀv¥ xiw>ñx>ÑxQyh>ÐyQzhO-{zzA\|l=}|O-~}}…-{~>æA}€mG=�€A}‚mE=ƒ‚91„yƒ9…Î�„A}†lG=‡†91ˆy‡Q ‰h  ŠE‰ ‹ŠQ Œh  �EŒP�xxx© Ž��‹>ïŽ>ðŽQ �h>î�Q‘hO ’‘‘>q’= “q= ”q”•Ž”Ž –Ž•ƒ —“–  ˜E—>q˜= ™q  šDŽ™Q›hQœ›Ž �šœA}žlG=ŸžQ  hP¡ %‘¢Ÿ¡O £¢¢>¯£= ¤¯>Ϥ= ¥¯‘ ¦ˆŽ  §E¦>²§= ¨²= ©q‘ ªˆ©  «Eª>³«‘ ¬ˆ�  ­E¬>´­= ®¯ ¯®  °E¯A¤±l =²±º ³²¡Pµ³³³© ´µ¤°>Ô´Q-¶h>¸¶Q-·h>»·Q¸h>¼¸>Õo>Ö%>ÙE>Ú%>Û%>Ü%>Ý>Þ¡>ß%>à>á>âa>ã%>ä>åa9¹h9º[T1»ˆ= ¼²¶½¼¨š ¾½÷¿ú¾À¿øÀ= Á²‘ »Á  ÃEÂ>ðÃù¿ø¿= ÄÕ¶ÅÄoš ÆÅ÷ÇúÆÈÇøÈ= ÉÕ>sÉ= ÊsO-ËÊÊŽ-ÌËFƒ-ÍÌpP ÎÍ>sÎ= ÏsO-ÐÏÏ= ÑsO-ÒÑÑ”ÓÐÒƒÔ%Ó Õ(Ô ÖÕA…×sF>×Ö= ز= Ù³A…ÚsG=ÛÚŽ ÜÙÛ= Ý´A…ÞsE=ßÞŽ àÝß� áÜà= â²A…ãsF=ä㎠åâä� æáå=çÖP éççç  è.Øæé  êEè>²ê= 벑 ì»ë  íEì>ðíùÇøÇ= î϶ï ðï÷ñúðòóøò=ôÈ= õÏPöõ%‘÷ôöO ø÷÷>îøýøóýøñý86 ûÁ7úøù;*üý;*þÿùøÇúF« G÷úøþLø÷ú€ø= ñ>üùø>ü€ùø= ü÷ ú   ø þLø ÷ ú€ ø =Ú=Û¸ >þù ø>þ€ù ø = þþ86 7 øA�GùøA¤GGF=A¤GEF=A¤GFF=P A\ = O !  ƒ "!  #E"  $EA¤% =&%º '&¡P)'''© ()$#þ(86,²7+ø*ù-ø-ƒ.%+ /+.%…0//…100…21/þ2868974757677ø3ù;ø; <(4÷=ú€>=ø>�?47�@%7�A%7…B@AˆC?B D(C…ED:þEø=÷Fú€GFøGH7 I(7° J1HI4…KJ:þKøF÷Lú€MLøM…NF6…ON6…PO7ƒQP¡9R,5…SQR�T%S9U,<…VQU�W%V…X:T…YXW…ZY<þZøL…[<:þ[86 fg7 ]7 ^7 _7 `7 a7 b7c7d7eø\;Òhi;…jk;*lmùnøn”o]_ p%o%”q]^ r(q9� s_^  tEs”u_t v+u%9w8prvdŽ xaw… yx`>hyº zd÷{úz|{ø|÷}ú€~ø~  €G_] �€  ‚E�”ƒ‚^ƒ„%d>j„=…j=†j…‡…†>j‡= ˆh… ‰a`=Šj…‹d¡ƒŒŠ‹=�j…Žd¡���Ž �1Œ�ƒ=‘j…’�‘…“’eŽ ”‰“� •ˆ”>h•ù}ø÷–ú€—˜ø—º ™p>l™ù–ø˜>l€ù–ø–= šl÷›úšœ›øœ”�]t ž(�”Ÿ^t  (Ÿ9 ¡Mb = ¢h9£)žc9¤7prc…¥£¤Ž ¦¡¥…§epŽ ¨¦§… ©¨`� ª¢©>hªù›ø›ù}ø}ù{ø{= «hþ«86¯°7­7 ®ø¬;…²³Aر‡Gù´ø´ µ&­»Aã¶±µ=·¶Q¸·Q¹¸ª º¹G÷»úº¼»ø¼Q½·O ¾½½ ¿¾PÀ¿%þÀø»QÁ·O ÂÁÁƒ î ÄBà Å(Ä P ÆÅÅň ÇÃÆQÈ·QÉÈQÊ·QËÊ9Ìg ÄÉË>²ÌQÍ·QÎͪ ÏÎF÷ÐúÏÑÐøÑQÒ·QÓÒ ÔÇQÕ·O ÖÕÕ”×ÔÖ Ø(×ÓƒÙ%؃Ú%Ó Û(Ú ˆÜÙÛ Ý(9Ü=Þ²Qß·Qàß áÝàƒâ%á…ãÞâ>²ãùÐøÐ=ä²PåÇäþå86éê7ç7 èøæ;*ðñAë�GAØì‡GA‘ íŠG=î�=ï�ùòøò÷óú€ôõøô ö&ç»A4÷ìöE=ø÷« ùøE>ðùùóøõ>ðLùóøó= úð÷ûúúüûøüþ%øû= ýî= þï9ÿ� çýþèþÿ86 7 7 7 7 77ø;Ò;Ò;Ò;Ò;Ò;ÒA! „GAØ ‡GA8 ‘G=" ”= ˜ADžG=#¡=¢ùø= î”  (9ƒ!%P "!!!  #("ƒ $#ƒ%%  &%OŽ '$&� ('9)Ú €aA4* GG=+*Ç,+'« -,G÷.ú-/0ø/A¤1 'G=21A¤3 I =43…524A\6 J=76O 877>8A49 GG=:9Ç;:« <;G÷=ú<>=ø>A\? J=@?O A@@9 B79 CBŽ DC5A¤E J =FEP HFFF  G.ADH>Gù=ø=QI)º JI÷KúJLKøLO M))>MùKøKA\N J=ONO POO>PA4Q GG=RQÇSRK« TSG÷UúTVWøV X  YGX9 Z7Y9 [€ZŽ \[5>\ùUøWA4] GG=^]Ç_^« `_G÷aú`baøb>aùaøaùUøU9-c’ A4dGG=ed¬ feG÷gúfhiøh j  kGjA4l F=ml9nókm= oQpnƒq%pŽ roqO snn� trs= u>uQv)¼ wv÷xúwyxøyA4z F={z9|O{= }Q~|ƒ%~Ž €}O �||� ‚€�>‚ùxøx= ƒ… „ƒQ…cŽ †…Q‡cQˆ…‰€ˆ Š+‰%…‹‡ŠP Œ‹‹‹� �†Œ… Žt�� �„Ž>�ùgøi= �… ‘�= ’Q“cŽ ”“Q•cQ–…—€– ˜+—%…™•˜P š™™™� ›”š… œ’›� �‘œ>�ùgøgù.ø0A4ž GE=ŸžÇ ŸF« ¡ G÷¢ú¡£¤ø£A\¥  =¦¥O §¦¦A\¨ =©¨O ª©©A\« H=¬«O ­¬¬� ®ª­Ž ¯®¡A\° I=±°O ²±±A\³ J=´³O µ´´� ¶²µŽ ·¶¡”¸§…¹¸¡�º¹¡ »+º%P ½»»»  ¼.·¯½ ¾  ¿G¾9 À|¿P   Á.À¯ÂA4ÃGG=Äì ÅÄG÷ÆúÅÇÈøÇ É  ÊGÉA4Ë F=ÌË9ÍóÊÌA¤Î E =ÏÎŽ ÐÁÏQÑ̓Ò%ÑŽ ÓÐÒO ÔÍÍ� ÕÓÔO Ö))>ÖQ×)¼ Ø×÷ÙúØÚÙøÚA4Û F=ÜÛ9ÝOÜA¤Þ E =ßÞŽ à¼ßQá݃â%ᎠãàâO äÝÝ� åãä>åùÙøÙ= æ… çæ… èÕ(� éçè>éùÆøÈQê)º ëê÷ìúëíîøíO ï))… ðï… ñÁ(A¤ò E =óòŽ ôñó� õðô>õùìøî… ö¼… ÷Á(� øö÷A¤ù E =úùŽ ûøú>ûùìøìùÆøÆù¢ø¤A4üGG=ýü¬ þýG÷ÿúþø   GA4 F=9óA\ E=O Q ƒ % Ž   O �   O ))>Q)¼ ÷úøA4 F=9OA\ E=O Qƒ%Ž O � >ùø= … … !(� " !>"ùÿøQ#)º $#÷%ú$&'ø&O ())… )(A\* E=+*O ,++… -,(� .)->.ù%ø'A\/ E=0/O 100� 2(… 312>3ù%ø%ùÿøÿù¢ø¢ù.ø.= 4þ486 8½7 67 7ø5;Ò@AA9�GA!:„GAØ;‡GA8<‘G="=”=>˜A«?¨GùBøB>@6÷CúLDCøD= E@þEøCA4F<GG=GFÇHGt« IHG÷JúIKJøK= L@= Mî N79 OLMN>@OùJøJA4P:I =QP« RQG÷SúRTSøT= U@= VîA4W:I =XW9 Y: UVX>@YùSøS= Z@þZ86 ]^7\ø[;*|};*vw;Irs;Ò~a;Òxy;Òta;*€;*z{;LuG;[Å^;I“A_�GA!`„GAØa‡GA‘ bŠG=c�=d�A8e‘G="f”=g˜=#hšADižG=#j¡=k¢A l£G=$m¦=n§A«o¨Gù�ø�= ‚ï= ƒÙ=„Ý …+„%=†ß ‡+†G%=ˆã= ‰ð= ŠåP ,‹ƒ…‡ˆ‰Š>r‹A4Œ`IF=�Œ¬ Ž�G÷�úŽ��ø�= ‘î=,’r>“’=,”“9,•<‘‚”>r•AÒ–rG= —–>Ù—A…˜rE=™˜>Ý™A…šrF=›š>ß›A}œ_G=�œ91žy�AÒŸr=  Ÿ‘ ¡ž   ¢E¡>²¢ù�ø�A…£rE=¤£A…¥rF=¦¥…§¦¦…¨§¦…©¨¦AÒªrG= «ªƒ¬%¤Ž ­«¬=®Þ…¯p®=°Þ…±¯°P ²±±±P ´¤¤¤  ³.²«´AÒµr= ¶µ= ·î9 ¸·A}¹_G=º¹91»yºA…¼r =½¼=¾ä ¿.%½¾>ìa>ía9À¯ùÁøÁöÂÄùÆøÆ=ZÇŪ\È]Ç› ÉÈ÷ÊúÉÂÊøÊQËǪ ÌËG©ÍÌEGPZÎÍE‚ZÏÇÎ>ÅÏùÃøÃ=Ðu° ÑÐÀ÷ÒúÑÒÓøÓùÂøÒùÔøÔ=Öu9×¸Ö Ø&×»AãÙaØ=ÚÙ= Ûî9ܯ×ÛO ÝÜÜQÞÜ÷ßú€àßøàQáÚQâ᪠ãâG¨ äã÷åúäæçøæº èÞ>vèùåøç>vLùåøå= év÷êúéëêøë‘ ì»Ý  íEì>èíQîÚO ïîî>éï9ðé×Ý…ñÞð>ëñQòÚQóòª ôóG>êôQõÚQöõ>çö9÷ùêøêùÄøß=øàº ùø÷úúùûúøû”ü¶¸ ý(ü9ƒþ%ý ÿ(9þƒ%¦…q ( ÿ= tQÚO … ­=à… Ž  = áP      .E« …   � >tùúøúº Þ÷úøQÚO Ž Þ>xQÚQª E÷úø>z€ùø>z€ùø= z÷úøQÚO = !î9"� ×!‚Ý…#Þ"Ž $ #>x$ùø÷%úL&'ø&>|€ù%ø'>|€ù%ø%= (|÷)ú(*+ø*= ,t= -xQ.ÚQ/.9 0_¶¸Ý-­³©/� 1,0>t1ù)ø+= 2t= 3xQ4ÚQ549 6f¶¸Ý3­³©¦5� 726>t7ù)ø)= 8âº98aš :9÷;ú:<;ø<”=¶Ý >%=% ?(>= @t= Ax… B­A= Câ… DBC…E?:ƒF:EŽ GDF� H@G>tHù;ø;ùøùÕøÕùÄøÄ=Iu€JIE>uJùÁøÂ÷Kú€LMøL= Nì… ON«Ž PO¿ƒQ%¤Ž RPQ= SíŽ TS¿� URT>tUùKøM=Väº WV÷XúWYXøY= ZtŽ [Z¿>t[ùXøXùKøK÷\úL]\ø]9 ^¶¸­³¦¤>~^ù\ø\A4_aGE=`_Ça`« baG÷cúbdeød9 f®¨ gf>gùcøe>€ùcøc= h÷iúhjkøjO-l\\ -ml -p+mnon2qpj.rh‚.srÌ .t&Äsg2uht‚2wuv 2x&qw_yhxtQzy= {tA…|r =}| ~%z}A¤aFF=€A¤�aF =‚�…ƒ€‚ „.%~ƒŽ …{„>t…= †t= ‡~A…ˆr =‰ˆ Š%‰zŽ ‹‡Š� Œ†‹>tŒùiøk= �t= Ž~A…�r =��Ž ‘Ž�� ’�‘>t’ùiøi= “tAÒ”rH= •”� –“•>t–= —t9 ˜8—¸9 ™\˜þ™86œ�7 ›øš;Ò ¡Až�GAØŸ‡Gù¢ø¢> ›÷£ú€¤£ø¤= ¥ =¦ÜŽ §¥¦> §ù£ø£= ¨ =©Ú9 ª®©«ª©%P¬¨«A4­ŸGE=®­Ç¯®'« °¯G÷±ú°²±ø²O ³¬¬  ´(³aQµ¬ ¶+µ%P·´¶þ·ø± ¸+¬Ÿ A4¹ž F=º¹Ç»ºF« ¼»G÷½ú¼¾½ø¾O ¿¸¸9 ÀŽ¿QÁ¸PÂÀÁþÂø½þ¸86 ÄÊøÃ=#Å–=Ƙ=Ç™=$È›=É�=#Ê®ùËøËVéÌÅÇXÍÌ]O ÎÍÍoÏÄP Ð]ÏV3ÑÈÉXÒÑÐO ÓÒÒ� ÔÎÓVéÕÊÆXÖÕ]O ×ÖÖ� ØÔ×þØ86øÙ= ÝÛ= ßÞ=-âà=åã=èæ=ëéP /ÚÝßâåèë=-íì=ïîA�GA!„GAòGùøA}G=A}E= 91 y 9 Î >½Ä>ÀŸQ ÚQ ÚQÚQ-Ú9 ñ  í ï9QÚQ9\€9 <÷úø9E= ²9 R= ³9 RQÚ9 @Q>ðA !ðE="!#">!#Q $>ò$Q %>ô%Q-&>õ&Q'>÷'Q(>ù(Q)>ú)Q-*>û*Q+>ü+Q, >ý,Q- >þ-Q. >ÿ.Q/ >/ýøA}0G=10= 2¯P32%‘413A}5E=65= 7²P87‘968O :99A};G=<;= =³P>=‘?<>O @??QAÚ9 @B4:@AQCB>ðCA DðE=EDFE>DFQ GB>òGQ HB>ôHQ-IB>õIQJB>÷JQKB>ùKQLB>úLQ-MB>ûMQNB>üNQOB >ýOQPB >þPQQB >ÿQQRB >Rý86€øS= VU= XW=-ZY=\[=^]=`_P /TVXZ\^`=cb=ed=gf=ihP0acegi=-kj=nm=poP?lnp=rqA��GA!‚„GAƒòGù„ø„Q…aQ†…Q‡aQˆ‡Q‰aQЉP ‹†ˆŠQŒaQ�ŒQŽaQ�ŽQ�aQ‘�P ’��‘Q“aQ”“Q•aQ–•Q—aQ˜—P ™”–˜  šD’™”›‹š¸ œ›  �D’™  žD™‹  ŸD‹’P1 �žŸ©¡œC%�1¢ ¡P£‹P¤’P¥™Q¦aQ§¦Q¨aQ©¨QªaQ«ªP¬§©«%P­£¤¥¬A}®‚G=¯®’°¯­A}±‚E=²±91³y²’1´³¢9µÎ°´Q¶l ·+¶÷øn.¸·>½¸Q¹l>À¹Q ºTQ »TQ¼TQ-½TQ¾a9 ¿ñº»¼½k¾r9ÀQÁT©ÂœtGÅÃÁÂQÄTQÅÄ9Æ\Åœ9 Ç<÷ÈúÇÉÈøÉ9ÊE= ˲9 ÌRË= ͳ9 ÎRÍ9 @ÏÊÌÎÆÃQÐÏ>sÐA ÑsE=ÒÑÓÒ>ÑÓQ ÔÏ>tÔQ ÕÏ>uÕQ-ÖÏ>vÖQ×Ï>w×QØÏ>xØQÙÏ>yÙQ-ÚÏ>zÚQÛÏ>{ÛQÜÏ >|ÜQÝÏ >}ÝQÞÏ >~ÞQßÏ >ßýøÈ= à¯Páà%Qâa”ãâáQäa”åäáQæa”çæáP èãåçA}é‚G=êéPëè%‘ìêëA}í‚E=îí= ﲑ ð¢ïPñð‘òîñO óòòA}ô‚G=õôP1ö‹’™= ÷³‘ øö÷Pùø‘úõùO ûúú9 @üìóûÆÃQýü>sýA þsE=ÿþÿ>þQ ü>tQ ü>uQ-ü>vQü>wQü>xQü>yQ-ü>zQü>{Q ü >| Q ü >} Q ü >~ Q ü > ý862ø = = =-===P /== P= =-"!=$#A3�GA!4„GA¹5«GA6òGù7ø79>8ÇQ 9P:9%Q;8”<;:Q=8”>=:Q?8”@?:P A<>@QB8QCBQD8QEDQF8QGFP HCEGQI8QJIQK8QLKQM8QNMP OJLNQP8QQPQR8QSRQT8QUTP VQSU  WDOV”XHW¸ YX  ZDOV  [DVH  \DHOP1]Z[\Q ^‘ _]^©`YC%Ž a_`  bEaP1cHOVQdO edd‘ fce  gEfA}h4G=ihA}j4E=kj91lyk9mÎil>½Ä>ÀŸQnQonPpgoQ-q9 rñAbpq" $9sQt©uYtGÅvtuQwQxw9y\xY9 z<÷{úz|{ø|9}E= ~²9 R~= €³9 �R€9 @‚}�yvQƒ‚>%ƒA „%E=…„†…>„†Q ‡‚>&‡Q ˆ‚>'ˆQ-‰‚>(‰QŠ‚>)ŠQ‹‚>*‹QŒ‚>+ŒQ-�‚>,�QŽ‚>-ŽQ�‚ >.�Q�‚ >/�Q‘‚ >0‘Q’‚ >1’ýø{A}“4G=”“= •¯P–•%‘—”–A}˜4E=™˜= š²P›š‘œ™›O �œœA}ž4G=Ÿž=  ³P¡ ‘¢Ÿ¡O £¢¢9 @¤—�£yvQ¥¤>%¥A ¦%E=§¦¨§>¦¨Q ©¤>&©Q ª¤>'ªQ-«¤>(«Q¬¤>)¬Q­¤>*­Q®¤>+®Q-¯¤>,¯Q°¤>-°Q±¤ >.±Q²¤ >/²Q³¤ >0³Q´¤ >1´ý86Õøµ;Òíî=¸·= º¹= ¼»=-¾½=À¿=ÂÁ=ÄÃ=-ÆÅ=ÈÇ=ÊÉ=ÌË=ÎÍ=ÐÏP@¶¸º¼¾ÀÂÄÆÈÊÌÎÐ= ÓÑAÖ�GA!ׄGAØØ‡GA‘ ÙŠG=Ú�=Û�A8Ü‘G="Ý”=#Þ–=ߘ=à™=#áš=$â›=ã�ADäžG=#å¡=æ¢A ç£G=$è¦=é§A«ê¨G=#ë®AìòGùïøï9ðj¶ÓQñ¶9 òûñ÷óúòôóøôüøóQ õ¶Qö¶O-÷öö9øÏõ÷¼ ùø÷úúùûúøûüøú÷üúLýþøý= ÿÙ= î9 9 8ÿ9 \>íùüøþQ¶9 ]>íùüøüA4ØG =ª P÷ ú  ø = í9 Ä�   >í ù ø A4Ö G=ª '÷úø= í9 #9 ø>íùø= í9œ>Ôý866ø;*;<;*=>== = =-! =#"=%$='&=-)(=+*=-,=/.=10=32P@!#%')+-/13= 54A7�GA!8„GA9òGù?ø?9@j5QAÇBAF« CBG¨ DC÷EúDFGøF÷Hú€IJøI=KÚ=LÛ¸ MKL>=MùHøJ>=€ùHøH= N=>;NùEøG>;LùEøE= O;÷PúOQPøQüøPQ R9SÏR:¼ TS÷UúTVWøVüøWýøUý86wøX;*}~;€�=[Z= ]\= _^=-a`=cb=ed=gf=-ih=kj=ml=on=qp=srP@Y[]_acegikmoqs= utAx�GA!y„GAzòGù‚ø‚9ƒjYuQ„Y9 …û„¨ †…÷‡ú†ˆ‰øˆQ ŠYQ‹YO-Œ‹‹9�ÏŠŒ¼ Ž�>}Žù‡ø‰>}Lù‡ø‡= �}÷�ú�‘�ø‘üø�A4’y F=“’A4”y G=•”ª –•E©—–EGA4˜y E=™˜ª š™E©›šFGÅœ—›Ç�“pž�Ÿ“'Ç Ÿp¡ Â¢“Ç£¢p¤£p¥œP¦ž¡¤¥ˆ§¦|Az¨G>¨§=A©Qª©>vªý86Ëø«;*ÏÐ;ÒÑÓ=®­= °¯= ²±=-´³=¶µ=¸·=º¹=-¼»=¾½=À¿=ÂÁ=ÄÃ=ÆÅP@¬®°²´¶¸º¼¾ÀÂÄÆ= ÈÇAÌ�GA!Í„GAÎòGùÔøÔ9Õj¬ÈQÖ¬9 ×ûÖ¨ Ø×÷ÙúØÚÛøÚQ ܬQݬO-ÞÝÝ9ßÏÜÞ¼ àß>ÏàùÙøÛ>ÏLùÙøÙ= áÏ÷âúáãâøãüøâA}äÌG=åä91æyå= çð‘ èæç  éEè=êÝ ë+ê%=ìÞ…ípì=îÞ…ïíîP ðïïï= ñÙP óëëë  ò.ðñóA}ôÌG=õôQ ö¬P÷ö%‘øõ÷QùøúùPûéúAzüÑG>üû  ý+òaE=þß ÿ+þG%PýÿAzÑE>=DÑQ>ÉQ>Êý8 @Ð Ð/ ,@  ˜J£&ѰA¬ËÎ-”ÒÑ'š€Uè‹Ó©æ_7hh'·ÊË$hedra_shaders/world/c0dd1f82a9070abejÔÍç6BTSR :˜:˜>šè¬ &G*I†°IïŸKýf œ² ´ì² Œg �i —z F4 Ý®  vs_customvs_custom_instancedvs_custom_skinned fs_customfs_custom_depth fs_custom_idfs_custom_normal_depth(GOLitShadowt_shadows_shadowSky t_radiance t_panorama s_radiance s_panoramat_ao t_lightmap s_lightmapProbet_probess_probesDecalt_decalss_decalsFogSkint_screenhedra_p sprite_sheetSAMPLER_NEAREST_CLAMP! vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depthD—struct Globals { view: mat4x4, proj: mat4x4, view_proj: mat4x4, camera_pos: vec4, viewport: vec4, wire_color: vec4, select_color: vec4, active_color: vec4, grid: vec4, params: vec4, fparams: vec4, } struct ObjectU { model: mat4x4, normal: mat4x4, color: vec4, params: vec4, extra: vec4, gi: array, 3>, decals: vec4, lights: vec4, } struct LightU { color: vec4, position: vec4, direction: vec4, spot: vec4, info: vec4, } struct LitU { counts: vec4, ambient: vec4, tone: vec4, up: vec4, sky_top: vec4, sky_horizon: vec4, ground_horizon: vec4, ground_bottom: vec4, inv_view_proj: mat4x4, dirs: vec4, lights: array, } struct ShadowLightU { params: vec4, splits: vec4, fade: vec4, info: vec4, } struct ShadowTileU { view_proj: mat4x4, rect: vec4, texel: vec4, } struct ShadowU { atlas: vec4, lights: array, tiles: array, } struct SunU { direction: vec4, color: vec4, } struct SkyU { flags: vec4, to_sky: mat4x4, sky_top: vec4, sky_horizon: vec4, ground_bottom: vec4, ground_horizon: vec4, sun: vec4, ambient: vec4, ibl: vec4, fog_color: vec4, fog: vec4, fog_depth: vec4, fog_origin: vec4, suns: array, sh: array, 9>, } struct ProbeEntryU { to_local: mat4x4, extents: vec4, offset: vec4, ambient: vec4, info: vec4, } struct ProbeU { counts: vec4, probes: array, } struct DecalEntryU { to_local: mat4x4, modulate: vec4, fades: vec4, axis_x: vec4, axis_y: vec4, axis_z: vec4, layers: vec4, flags: vec4, } struct DecalU { counts: vec4, lod: vec4, entries: array, } struct DecalSurface { base: vec3, metallic: f32, roughness: f32, occlusion: f32, normal: vec3, emission: vec3, } struct VsIn { @location(0) pos: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, } struct InstIn { @location(6) row0_: vec4, @location(7) row1_: vec4, @location(8) row2_: vec4, @location(9) color: vec4, } struct FogEntryU { to_local: mat4x4, size: vec4, material: vec4, albedo: vec4, emission: vec4, lights: vec4, } struct FogU { counts: vec4, params: vec4, ambient: vec4, up: vec4, light_fog: array, 16>, entries: array, } struct SkinU { rows: array, 765>, } struct SkinIn { @location(12) joints: vec4, @location(13) weights: vec4, } struct SkinRows { r0_: vec4, r1_: vec4, r2_: vec4, } struct HedraInstExtra { @location(14) custom: vec4, @location(15) id: f32, } struct CustomOut { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) color: vec4, @location(6) uv2_: vec2, @location(7) @interpolate(flat) instance_id: u32, @location(8) hedra_v0_: vec4, @location(9) hedra_v1_: vec4, @location(10) hedra_v2_: vec4, @location(11) hedra_v3_: vec4, } struct IdOut { @location(0) id: vec4, } struct HedraParams { frames_x: f32, frames_y: f32, hedra_pad0_: f32, hedra_pad1_: f32, tint: vec3, alpha_cut: f32, snap_resolution: vec2, } struct HedraNormalDepthOut { @location(0) normal_depth: vec4, @location(1) surface: vec4, } const OBJ_HAS_WEIGHTS: u32 = 1u; const OBJ_MIRRORED: u32 = 2u; const SHADE_SOLID: u32 = 0u; const SHADE_MATCAP: u32 = 1u; const SHADE_NORMALS: u32 = 2u; const SHADE_FACE_ORIENT: u32 = 3u; const SHADE_RANDOM: u32 = 4u; const SHADE_MATERIAL: u32 = 5u; const SHADE_UV_CHECKER: u32 = 6u; const SHADE_WEIGHTS: u32 = 7u; const SHADE_LIT: u32 = 8u; const SHADE_LIGHTMAP: u32 = 9u; const SHADE_LIGHT_COUNT: u32 = 10u; const OV_SELECTION: u32 = 1u; const OV_SEAMS: u32 = 2u; const OV_SHARP: u32 = 4u; const F_SELECTED: u32 = 1u; const F_HIDDEN: u32 = 2u; const F_SEAM: u32 = 4u; const F_SHARP: u32 = 8u; const F_MESH: u32 = 16u; const F_FADE: u32 = 32u; const F_NO_PULL: u32 = 64u; const SPEC_TEX_BASE: bool = true; const SPEC_TEX_NORMAL: bool = true; const SPEC_TEX_MR: bool = true; const SPEC_TEX_EMISSION: bool = true; const SPEC_TEX_OCCLUSION: bool = true; const SPEC_VERTEX_COLOR: bool = true; const SPEC_EXT: bool = true; const SPEC_UNLIT: bool = true; const SPEC_ALPHA_MASK: bool = true; const SPEC_ALPHA_BLEND: bool = true; const SPEC_CLEARCOAT: bool = true; const SPEC_SHEEN: bool = true; const SPEC_TRANSMISSION: bool = true; const SPEC_IRIDESCENCE: bool = true; const SPEC_ANISOTROPY: bool = true; const SPEC_DIFFUSE_TRANSMISSION: bool = true; const SPEC_VOLUME: bool = true; const SPEC_DISPERSION: bool = true; const SPEC_EXT_LAYERS: bool = true; const SPEC_ROUGHNESS_LAYER: bool = true; const SPEC_LIT: bool = true; const SPEC_LIGHTS: bool = true; const SPEC_SHADOWS: bool = true; const SPEC_DECALS: bool = true; const SPEC_FOG: bool = true; const SPEC_FOG_VOLUMES: bool = true; const SPEC_PROBES: bool = true; const SPEC_PROBE_GI: bool = true; const SPEC_SSAO: bool = true; const SPEC_SCREEN_REFRACTION: bool = true; const SPEC_EMERGE: bool = true; const SPEC_FADE: bool = true; const SPEC_FACE_FLAGS: bool = true; const SPEC_AMBIENT_FLAT: bool = true; const SPEC_AMBIENT_GRADIENT: bool = true; const SPEC_AMBIENT_SKY: bool = true; const SPEC_MATERIAL_MODE: bool = true; const SPEC_OTHER_MODES: bool = true; const PI: f32 = 3.1415927f; const TAU: f32 = 6.2831855f; const E: f32 = 2.7182817f; const HEDRA_BLEND_MIX: u32 = 0u; const HEDRA_BLEND_PREMUL_ALPHA: u32 = 4u; const HEDRA_CULL_FRONT: u32 = 1u; const HEDRA_DIFFUSE_LAMBERT: u32 = 0u; const HEDRA_DIFFUSE_LAMBERT_WRAP: u32 = 1u; const HEDRA_DIFFUSE_BURLEY: u32 = 2u; const HEDRA_DIFFUSE_TOON: u32 = 3u; const HEDRA_SPECULAR_SCHLICK_GGX: u32 = 0u; const HEDRA_SPECULAR_TOON: u32 = 1u; const HEDRA_SPECULAR_DISABLED: u32 = 2u; const HEDRA_ENCODE_SRGB: u32 = 2u; const HEDRA_NEVER: u32 = 4294967295u; const MAX_FRAME_LIGHTS: u32 = 64u; const MAX_OBJECT_LIGHTS: u32 = 8u; const MAX_SHADOW_LIGHTS: u32 = 16u; const MAX_POOL_DIRECTIONAL: u32 = 8u; const LIGHT_COUNT_COLORS: array, 10> = array, 10>(vec3(0.352941f, 0.352941f, 0.352941f), vec3(0.168627f, 0.247059f, 0.6f), vec3(0.129412f, 0.4f, 0.67451f), vec3(0.101961f, 0.623529f, 0.721569f), vec3(0.121569f, 0.631373f, 0.529412f), vec3(0.301961f, 0.733333f, 0.352941f), vec3(0.65098f, 0.831373f, 0.227451f), vec3(0.94902f, 0.784314f, 0.058824f), vec3(0.94902f, 0.556863f, 0.058824f), vec3(0.878431f, 0.129412f, 0.541176f)); const LIGHT_DIRECTIONAL: u32 = 0u; const LIGHT_OMNI: u32 = 1u; const LIGHT_SPOT: u32 = 2u; const LIGHT_BAKE_DISABLED: u32 = 0u; const LIGHT_BAKE_STATIC: u32 = 1u; const LIGHT_BAKE_DYNAMIC: u32 = 2u; const TONEMAP_LINEAR: u32 = 0u; const TONEMAP_REINHARD: u32 = 1u; const TONEMAP_FILMIC: u32 = 2u; const TONEMAP_ACES: u32 = 3u; const TONEMAP_AGX: u32 = 4u; const ENV_SKY: u32 = 1u; const ENV_AMBIENT_SKY: u32 = 2u; const ENV_SSAO: u32 = 4u; const ENV_HDR: u32 = 8u; const ENV_SCREEN_REFRACTION: u32 = 16u; const LIGHT_SHADOWED: u32 = 1u; const LIGHT_BAKED_STATIC: u32 = 1u; const SHADOW_TILES: u32 = 16u; const SKY_DRAW_PROCEDURAL: u32 = 1u; const SKY_DRAW_PANORAMA: u32 = 2u; const SKY_PANORAMA_FILTER: u32 = 4u; const SKY_IBL: u32 = 8u; const SKY_AMBIENT_SKY: u32 = 16u; const SKY_REFLECT_RADIANCE: u32 = 32u; const SKY_REFLECT_OFF: u32 = 64u; const SKY_FOG: u32 = 128u; const SKY_FOG_DEPTH: u32 = 256u; const SKY_SUNS: u32 = 4u; const OBJ_LIGHTMAP: u32 = 4u; const OBJ_PROBE_GI: u32 = 8u; const PROBE_BOX: u32 = 1u; const PROBE_INTERIOR: u32 = 2u; const MAX_PROBES: u32 = 8u; const PROBE_AMBIENT_DISABLED: u32 = 0u; const PROBE_AMBIENT_ENVIRONMENT: u32 = 1u; const PROBE_AMBIENT_CONSTANT_COLOR: u32 = 2u; const MAX_FRAME_DECALS: u32 = 64u; const MAX_OBJECT_DECALS: u32 = 8u; const DECAL_LIVE_ALBEDO: u32 = 1u; const DECAL_LIVE_NORMAL: u32 = 2u; const DECAL_LIVE_ORM: u32 = 4u; const DECAL_LIVE_EMISSION: u32 = 8u; const F_INSTANCE_MIRRORED: u32 = 128u; const OBJ_EMERGE: u32 = 32u; const EMERGE_SCALE: f32 = 1.3f; const EMERGE_EDGE: f32 = 0.8f; const EMERGE_DITHER: f32 = 0.12f; const OBJ_FADE: u32 = 64u; const MAX_FRAME_FOG_VOLUMES: u32 = 16u; const MAX_OBJECT_FOG_VOLUMES: u32 = 4u; const FOG_SHAPE_ELLIPSOID: u32 = 0u; const FOG_SHAPE_CONE: u32 = 1u; const FOG_SHAPE_CYLINDER: u32 = 2u; const FOG_SHAPE_BOX: u32 = 3u; const FOG_SHAPE_WORLD: u32 = 4u; const FOG_SKY_DISTANCE: f32 = 1000000f; const FOG_LIST_ALL: u32 = 2147483648u; const FOG_GL_X0_: f32 = 0.8611363f; const FOG_GL_X1_: f32 = 0.339981f; const FOG_GL_W0_: f32 = 0.3478548f; const FOG_GL_W1_: f32 = 0.6521452f; const OBJ_SKINNED: u32 = 16u; const SKIN_JOINTS: u32 = 255u; const HEDRA_UNSHADED: bool = true; const HEDRA_HAS_LIGHT: bool = false; const HEDRA_USES_POSITION: bool = false; const HEDRA_SKIP_VERTEX_TRANSFORM: bool = true; const HEDRA_WORLD_VERTEX_COORDS: bool = false; const HEDRA_AMBIENT_LIGHT_DISABLED: bool = false; const HEDRA_FOG_DISABLED: bool = false; const HEDRA_SHADOWS_DISABLED: bool = true; const HEDRA_ALPHA: bool = true; const HEDRA_ALPHA_SCISSOR: bool = true; const HEDRA_DIFFUSE: u32 = 0u; const HEDRA_SPECULAR: u32 = 2u; const HEDRA_BLEND: u32 = 0u; const HEDRA_CULL: u32 = 2u; @group(0) @binding(0) var G: Globals; @group(1) @binding(0) var O: ObjectU; @group(0) @binding(1) var Lit: LitU; @group(0) @binding(2) var Shadow: ShadowU; @group(0) @binding(3) var t_shadow: texture_depth_2d; @group(0) @binding(4) var s_shadow: sampler_comparison; @group(0) @binding(5) var Sky: SkyU; @group(3) @binding(0) var t_radiance: texture_cube; @group(3) @binding(1) var t_panorama: texture_2d; @group(3) @binding(2) var s_radiance: sampler; @group(3) @binding(3) var s_panorama: sampler; @group(0) @binding(6) var t_ao: texture_2d; @group(3) @binding(4) var t_lightmap: texture_2d_array; @group(3) @binding(5) var s_lightmap: sampler; @group(0) @binding(7) var Probe: ProbeU; @group(3) @binding(6) var t_probes: texture_2d; @group(3) @binding(7) var s_probes: sampler; @group(1) @binding(2) var Decal: DecalU; @group(1) @binding(3) var t_decals: texture_2d_array; @group(1) @binding(4) var s_decals: sampler; @group(1) @binding(5) var Fog: FogU; @group(1) @binding(1) var Skin: SkinU; @group(1) @binding(6) var t_screen: texture_2d; var VERTEX: vec3; var NORMAL: vec3; var TANGENT: vec3; var BINORMAL: vec3; var POSITION: vec4; var UV: vec2; var UV2_: vec2; var COLOR: vec4; var INSTANCE_ID: i32; var INSTANCE_CUSTOM: vec4; var VERTEX_ID: i32; var MODEL_MATRIX: mat4x4; var MODEL_NORMAL_MATRIX: mat3x3; var INV_VIEW_MATRIX: mat4x4; var INV_PROJECTION_MATRIX: mat4x4; var MODELVIEW_MATRIX: mat4x4; var MODELVIEW_NORMAL_MATRIX: mat3x3; var NODE_POSITION_WORLD: vec3; var NODE_POSITION_VIEW: vec3; var CAMERA_DIRECTION_WORLD: vec3; var LIGHT_VERTEX: vec3; var FRAGCOORD: vec4; var FRONT_FACING: bool; var VIEW: vec3; var NORMAL_MAP: vec3; var NORMAL_MAP_DEPTH: f32; var ALBEDO: vec3; var ALPHA: f32; var ALPHA_SCISSOR_THRESHOLD: f32; var PREMUL_ALPHA_FACTOR: f32; var METALLIC: f32; var SPECULAR: f32; var ROUGHNESS: f32; var RIM: f32; var RIM_TINT: f32; var BACKLIGHT: vec3; var AO: f32; var AO_LIGHT_AFFECT: f32; var EMISSION: vec3; var SCREEN_UV: vec2; var SPECULAR_AMOUNT: f32; var LIGHT: vec3; var LIGHT_COLOR: vec3; var LIGHT_IS_DIRECTIONAL: bool; var ATTENUATION: f32; var DIFFUSE_LIGHT: vec3; var SPECULAR_LIGHT: vec3; var hedra_world: vec3; var hedra_n_geo: vec3; var hedra_n: vec3; var hedra_front: bool; @group(2) @binding(0) var hedra_p: HedraParams; @group(2) @binding(1) var sprite_sheet: texture_2d; @group(2) @binding(2) var SAMPLER_NEAREST_CLAMP: sampler; var frame_uv: vec2; fn srgb_to_linear(c_1: vec3) -> vec3 { let lo = (c_1 / vec3(12.92f)); let hi = pow(((c_1 + vec3(0.055f)) / vec3(1.055f)), vec3(2.4f)); return select(hi, lo, (c_1 <= vec3(0.04045f))); } fn element_color(flags: u32, fallback: vec4) -> vec4 { var local_4: bool; var local_5: bool; if ((flags & F_MESH) == 0u) { return fallback; } let overlays = G.params.y; let _e13 = O.params.w; let edit_object = (_e13 == 1u); if ((flags & F_SEAM) != 0u) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } let _e27 = local_4; if _e27 { let _e32 = srgb_to_linear(vec3(0.86f, 0f, 0f)); return vec4(_e32, 1f); } if ((flags & F_SHARP) != 0u) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } let _e46 = local_5; if _e46 { let _e51 = srgb_to_linear(vec3(0f, 0.85f, 0.9f)); return vec4(_e51, 1f); } if ((overlays & OV_SELECTION) != 0u) { if edit_object { if ((flags & F_SELECTED) != 0u) { let _e64 = G.select_color; return _e64; } let _e67 = G.wire_color; return _e67; } let _e71 = O.params.x; if (_e71 == 1u) { let _e76 = G.select_color; let _e79 = G.active_color; let _e83 = O.params.y; return select(_e76, _e79, (_e83 == 1u)); } } let _e89 = G.wire_color; return _e89; } fn to_view(p: vec3, pull: f32) -> vec4 { var v: vec4; let _e4 = G.view; let _e7 = O.model; v = ((_e4 * _e7) * vec4(p, 1f)); let _e15 = v.z; v.z = (_e15 * (1f - pull)); let _e19 = v; return _e19; } fn linear_to_srgb(c_2: vec3) -> vec3 { let lo_1 = (c_2 * 12.92f); let hi_1 = ((1.055f * pow(c_2, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (c_2 <= vec3(0.0031308f))); } fn target_color(c_3: vec4) -> vec4 { let k_12 = clamp(c_3, vec4(0f), vec4(1f)); let _e9 = G.fparams.w; if (_e9 > 0.5f) { let _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } fn object_light_count() -> u32 { let _e3 = O.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } fn object_light(k: u32) -> u32 { let _e4 = O.lights.y; let _e8 = O.lights.x; let word = select(_e4, _e8, (k < 4u)); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } fn light_count_color() -> vec3 { var colors: array, 10> = LIGHT_COUNT_COLORS; let _e5 = O.lights.w; let _e9 = colors[min(_e5, 9u)]; return _e9; } fn pool_sun_count() -> u32 { let _e3 = Lit.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } fn pool_sun(k_1: u32) -> u32 { let _e4 = Lit.dirs.y; let _e8 = Lit.dirs.x; let word_1 = select(_e4, _e8, (k_1 < 4u)); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } fn decal_count() -> u32 { let _e3 = O.decals.z; return min(_e3, MAX_OBJECT_DECALS); } fn decal_entry(k_2: u32) -> u32 { let _e4 = O.decals.y; let _e8 = O.decals.x; let word_2 = select(_e4, _e8, (k_2 < 4u)); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } fn decal_level(e: DecalEntryU, world: vec3) -> f32 { let _e5 = Decal.lod.x; let _e8 = G.camera_pos; let _e15 = Decal.lod.y; let pixel_1 = (_e5 * select(length((world - _e8.xyz)), 1f, (_e15 > 0.5f))); let _e24 = Decal.counts.y; let top = f32((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 0.000001f)), 1f)), 0f, top); } fn decal_texel(layer: u32, uv: vec2, level: f32, live: bool) -> vec4 { let _e11 = textureSampleLevel(t_decals, s_decals, uv, i32((layer - 1u)), select(level, 0f, live)); return _e11; } fn apply_decals(world_1: vec3, n_geo: vec3, surf: DecalSurface) -> DecalSurface { var out_s: DecalSurface; var k_3: u32 = 0u; var local_6: bool; var fade: f32; out_s = surf; let _e4 = decal_count(); loop { let _e7 = k_3; if (_e7 < _e4) { } else { break; } { let _e11 = k_3; let _e12 = decal_entry(_e11); let e_2 = Decal.entries[min(_e12, 63u)]; let uvw = (e_2.to_local * vec4(world_1, 1f)).xyz; if all((uvw >= vec3(0f, -1f, 0f))) { local_6 = all((uvw <= vec3(1f))); } else { local_6 = false; } let _e35 = local_6; if !(_e35) { continue; } fade = pow((1f - abs(uvw.y)), select(e_2.fades.y, e_2.fades.x, (uvw.y > 0f))); if (e_2.fades.z > 0f) { let _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1f, ((dot(n_geo, e_2.axis_y.xyz) * 0.5f) + 0.5f))); } let uv_3 = uvw.xz; let _e69 = decal_level(e_2, world_1); let live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { let _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); let _e84 = srgb_to_linear(_e82.xyz); let a_2 = (vec4(_e84, _e82.w) * e_2.modulate); let _e90 = fade; let alpha = (a_2.w * _e90); let _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if (e_2.layers.y > 0u) { let _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); let nx = ((_e110.x * 2f) - 1f); let ny = (1f - (_e110.y * 2f)); let nz = sqrt(max(0f, ((1f - (nx * nx)) - (ny * ny)))); let dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); let _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { let _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); let _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); let _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); let _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { let _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); let _e184 = out_s.emission; let _e186 = srgb_to_linear(_e182.xyz); let _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } continuing { let _e197 = k_3; k_3 = (_e197 + 1u); } } let _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045f, 1f); let _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0f, 1f); let _e211 = out_s; return _e211; } fn d_ggx(nh: f32, a2_: f32) -> f32 { let d_12 = (((nh * nh) * (a2_ - 1f)) + 1f); return (a2_ / ((PI * d_12) * d_12)); } fn v_smith(nl: f32, nv: f32, a2_1: f32) -> f32 { let gv = (nl * sqrt((((nv * nv) * (1f - a2_1)) + a2_1))); let g_l = (nv * sqrt((((nl * nl) * (1f - a2_1)) + a2_1))); return (0.5f / max((gv + g_l), 0.0001f)); } fn f_schlick(f0_: vec3, vh: f32) -> vec3 { return (f0_ + ((vec3(1f) - f0_) * pow((1f - vh), 5f))); } fn light_specular(n: vec3, v_1: vec3, l: vec3, radiance: vec3, diffuse: vec3, f0_1: vec3, a2_2: f32, specular: f32) -> vec3 { let nl_2 = dot(n, l); if (nl_2 <= 0f) { return vec3(0f); } let h = normalize((l + v_1)); let nh_1 = max(dot(n, h), 0f); let vh_1 = max(dot(v_1, h), 0f); let nv_3 = max(dot(n, v_1), 0.0001f); let _e24 = f_schlick(f0_1, vh_1); let _e25 = d_ggx(nh_1, a2_2); let _e26 = v_smith(nl_2, nv_3, a2_2); let spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927f)) + (spec * specular)) * radiance) * nl_2); } fn sky(dir: vec3) -> vec3 { let _e4 = Lit.up; let a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1f, 1f)); if (a_3 <= 1.5707964f) { let c_23 = (1f - (a_3 / 1.5707964f)); let k_13 = clamp((1f - pow(max((1f - c_23), 0.000001f), 6.6666665f)), 0f, 1f); let _e30 = Lit.sky_horizon; let _e34 = Lit.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } let c_24 = ((a_3 - 1.5707964f) / 1.5707964f); let k_14 = clamp((1f - pow(max((1f - c_24), 0.000001f), 50f)), 0f, 1f); let _e54 = Lit.ground_horizon; let _e58 = Lit.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } fn filmic_curve(x: vec3) -> vec3 { return ((((x * ((0.88f * x) + vec3((0.1f * 0.6f)))) + vec3((0.2f * 0.01f))) / ((x * ((0.88f * x) + vec3(0.6f))) + vec3((0.2f * 0.3f)))) - vec3((0.01f / 0.3f))); } fn aces_curve(c_4: vec3, white: f32) -> vec3 { let x_2 = vec3((1.8f * dot(vec3(0.59719f, 0.35458f, 0.04823f), c_4)), (1.8f * dot(vec3(0.076f, 0.90834f, 0.01566f), c_4)), (1.8f * dot(vec3(0.0284f, 0.13383f, 0.83777f), c_4))); let t_2 = (((x_2 * (x_2 + vec3(0.0245786f))) - vec3(0.000090537f)) / ((x_2 * ((0.983729f * x_2) + vec3(0.432951f))) + vec3(0.238081f))); let o_5 = vec3(dot(vec3(1.60475f, -0.53108f, -0.07367f), t_2), dot(vec3(-0.10208f, 1.10813f, -0.00605f), t_2), dot(vec3(-0.00327f, -0.07276f, 1.07602f), t_2)); let w_1 = (1.8f * white); let wt = (((w_1 * (w_1 + 0.0245786f)) - 0.000090537f) / ((w_1 * ((0.983729f * w_1) + 0.432951f)) + 0.238081f)); return (o_5 / vec3(wt)); } fn agx_curve(c_5: vec3) -> vec3 { var v_2: vec3; let inset = mat3x3(vec3(0.54490817f, 0.14044006f, 0.08882741f), vec3(0.37377945f, 0.7541096f, 0.17887713f), vec3(0.08138498f, 0.10543358f, 0.73225f)); let outset = mat3x3(vec3(1.964551f, -0.29932243f, -0.16436833f), vec3(-0.85585845f, 1.3264511f, -0.23822464f), vec3(-0.10886711f, -0.02708402f, 1.4026654f)); v_2 = (inset * max(c_5, vec3(0.0000000002f))); let _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931f), vec3(4.0260687f)) - vec3(-12.473931f)) / vec3((4.0260687f - -12.473931f))); let _e44 = v_2; let _e45 = v_2; let x2_ = (_e44 * _e45); let x4_ = (x2_ * x2_); let _e48 = v_2; let _e56 = v_2; let _e64 = v_2; let p_7 = ((((((0.021f * _e48) + (4.0111f * x2_)) - ((25.682f * x2_) * _e56)) + (70.359f * x4_)) - ((74.778f * x4_) * _e64)) + ((27.069f * x4_) * x2_)); return (outset * pow(max(p_7, vec3(0.0000000001f)), vec3(2.4f))); } fn tonemap(c_in: vec3) -> vec3 { let _e4 = Lit.tone.x; let c_25 = max((c_in * _e4), vec3(0f)); let white_1 = Lit.tone.y; let mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return (((white_1 * c_25) + c_25) / ((c_25 * white_1) + vec3(white_1))); } if (mode == TONEMAP_FILMIC) { let _e27 = filmic_curve(c_25); let _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if (mode == TONEMAP_ACES) { let _e33 = aces_curve(c_25, white_1); return _e33; } if (mode == TONEMAP_AGX) { let _e36 = agx_curve(c_25); return _e36; } return c_25; } fn emerge_hash(p_1: vec3) -> f32 { var q: vec3; q = fract((p_1 * 0.1031f)); let _e5 = q; let _e6 = q; let _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32f))))); let _e16 = q.x; let _e18 = q.y; let _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } fn emerge_noise(p_2: vec3) -> f32 { let i_13 = floor(p_2); let f = fract(p_2); let u_1 = ((f * f) * (vec3(3f) - (2f * f))); let _e10 = emerge_hash(i_13); let _e16 = emerge_hash((i_13 + vec3(1f, 0f, 0f))); let _e24 = emerge_hash((i_13 + vec3(0f, 1f, 0f))); let _e30 = emerge_hash((i_13 + vec3(1f, 1f, 0f))); let a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); let _e40 = emerge_hash((i_13 + vec3(0f, 0f, 1f))); let _e46 = emerge_hash((i_13 + vec3(1f, 0f, 1f))); let _e54 = emerge_hash((i_13 + vec3(0f, 1f, 1f))); let _e60 = emerge_hash((i_13 + vec3(1f, 1f, 1f))); let b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } fn emerge_reveal(world_2: vec3, pixel: vec2) -> f32 { var n_1: f32; let _e6 = O.extra.x; if select(true, ((_e6 & OBJ_EMERGE) == 0u), SPEC_EMERGE) { return 1f; } let e_3 = O.normal[0][3]; let w_2 = (world_2 * EMERGE_SCALE); let _e21 = emerge_noise(w_2); let _e29 = emerge_noise(((w_2 * 2.7f) + vec3(17.1f))); n_1 = smoothstep(0.2f, 0.8f, ((_e21 * 0.65f) + (_e29 * 0.35f))); if (pixel.x >= 0f) { let ign = fract((52.982918f * fract(dot(floor(pixel), vec2(0.06711056f, 0.00583715f))))); let _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5f) * EMERGE_DITHER)), 0f, 1f); } let _e60 = n_1; return (((e_3 * 1.8f) - _e60) / EMERGE_EDGE); } fn emerge_tint(c_6: vec3, r: f32) -> vec3 { var local_7: bool; let _e6 = O.extra.x; if !(((_e6 & OBJ_EMERGE) == 0u)) { local_7 = (r >= 1f); } else { local_7 = true; } let _e17 = local_7; if select(true, _e17, SPEC_EMERGE) { return c_6; } let _e23 = O.extra.w; let _e26 = srgb_to_linear(unpack4x8unorm(_e23).xyz); let _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0f, 1f, r)); } fn item_fade(c_7: vec3) -> vec3 { let _e5 = O.extra.x; if select(true, ((_e5 & OBJ_FADE) == 0u), SPEC_FADE) { return c_7; } let f_1 = O.normal[3]; let _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } fn sky_dir(d: vec3) -> vec3 { let _e3 = Sky.to_sky; return normalize((_e3 * vec4(d, 0f)).xyz); } fn sky_curve(c_8: f32, curve: f32) -> f32 { return clamp((1f - pow(max((1f - c_8), 0.000001f), (1f / curve))), 0f, 1f); } fn procedural_sky(d_1: vec3) -> vec3 { var sky_1: vec3; var i: u32 = 0u; let v_6 = acos(clamp(d_1.y, -1f, 1f)); let _e8 = Sky.sky_horizon; let _e12 = Sky.sky_top; let _e21 = Sky.sky_top.w; let _e22 = sky_curve((1f - (v_6 / 1.5707964f)), _e21); let _e27 = Sky.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); let _e33 = Sky.flags.z; let suns = min(_e33, SKY_SUNS); loop { let _e38 = i; if (_e38 < suns) { } else { break; } { let _e42 = i; let sun = Sky.suns[_e42]; let size = sun.direction.w; let a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1f, 1f)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { let _e60 = Sky.sun.x; if (a_5 < _e60) { let _e66 = Sky.sun.x; let c2_ = ((a_5 - size) / (_e66 - size)); let _e71 = sky_1; let _e75 = Sky.sun.y; let _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } continuing { let _e79 = i; i = (_e79 + 1u); } } let _e83 = Sky.ground_horizon; let _e87 = Sky.ground_bottom; let _e96 = Sky.ground_bottom.w; let _e97 = sky_curve(((v_6 - 1.5707964f) / 1.5707964f), _e96); let _e102 = Sky.ground_horizon.w; let ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); let _e104 = sky_1; let _e112 = Sky.sun.z; return (select(ground, _e104, (d_1.y >= 0f)) * _e112); } fn panorama(d_2: vec3) -> vec3 { let uv_4 = vec2(fract((atan2(d_2.x, -(d_2.z)) / 6.2831855f)), (acos(clamp(d_2.y, -1f, 1f)) / PI)); let _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { let _e27 = textureSampleLevel(t_panorama, s_panorama, uv_4, 0f); let _e32 = Sky.sun.z; return (_e27.xyz * _e32); } let _e36 = textureDimensions(t_panorama, 0i); let size_1 = vec2(_e36); let x_3 = (((i32(floor((uv_4.x * f32(size_1.x)))) % size_1.x) + size_1.x) % size_1.x); let y = clamp(i32(floor((uv_4.y * f32(size_1.y)))), 0i, (size_1.y - 1i)); let _e64 = textureLoad(t_panorama, vec2(x_3, y), 0i); let _e69 = Sky.sun.z; return (_e64.xyz * _e69); } fn sh_irradiance(n_2: vec3) -> vec3 { var c_9: vec3; let _e4 = Sky.sh[0]; c_9 = (_e4.xyz * 0.282095f); let _e9 = c_9; let _e13 = Sky.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603f * n_2.y))); let _e20 = c_9; let _e24 = Sky.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603f * n_2.z))); let _e31 = c_9; let _e35 = Sky.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603f * n_2.x))); let _e42 = c_9; let _e46 = Sky.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548f * n_2.x) * n_2.y))); let _e55 = c_9; let _e59 = Sky.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548f * n_2.y) * n_2.z))); let _e68 = c_9; let _e72 = Sky.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392f * (((3f * n_2.z) * n_2.z) - 1f)))); let _e85 = c_9; let _e89 = Sky.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548f * n_2.x) * n_2.z))); let _e98 = c_9; let _e102 = Sky.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274f * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); let _e115 = c_9; return max(_e115, vec3(0f)); } fn radiance_1(d_3: vec3, roughness: f32) -> vec3 { let _e5 = Sky.flags.y; let top_1 = f32((max(_e5, 1u) - 1u)); let _e14 = textureSampleLevel(t_radiance, s_radiance, d_3, (roughness * top_1)); return _e14.xyz; } fn env_brdf_approx(roughness_1: f32, nv_1: f32) -> vec2 { let r_6 = ((roughness_1 * vec4(-1f, -0.0275f, -0.572f, 0.022f)) + vec4(1f, 0.0425f, 1.04f, -0.04f)); let a004_ = ((min((r_6.x * r_6.x), exp2((-9.28f * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04f, 1.04f) * a004_) + r_6.zw); } fn pow8_(x_1: f32) -> f32 { let x2_1 = (max(x_1, 0f) * max(x_1, 0f)); let x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } fn fog_sun_scatter(fc: vec3, dir_1: vec3) -> vec3 { var c_10: vec3; var k_4: u32 = 0u; c_10 = fc; let _e6 = Sky.fog_color.w; if (_e6 > 0.001f) { let _e9 = pool_sun_count(); loop { let _e12 = k_4; if (_e12 < _e9) { } else { break; } { let _e14 = k_4; let _e15 = pool_sun(_e14); let _e21 = Lit.lights[_e15].info.x; if (_e21 == LIGHT_DIRECTIONAL) { let _e24 = c_10; let _e29 = Lit.lights[_e15].color; let _e38 = Lit.lights[_e15].direction; let _e42 = pow8_(dot(dir_1, -(_e38.xyz))); let _e47 = Sky.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927f)) * _e42) * _e47)); } } continuing { let _e51 = k_4; k_4 = (_e51 + 1u); } } } let _e53 = c_10; return _e53; } fn sky_fog(c_11: vec3, dir_2: vec3) -> vec3 { let _e4 = Sky.fog_color; let _e9 = Sky.fog_depth.w; let _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); let _e15 = Sky.fog.y; return mix(c_11, _e11, _e15); } fn surface_fog(c_12: vec3, world_3: vec3, dir_3: vec3) -> vec3 { var dist: f32; var amount: f32; var fc_1: vec3; var local_8: bool; let _e5 = G.view; let depth = -((_e5 * vec4(world_3, 1f)).z); let _e13 = G.camera_pos; dist = distance(world_3, _e13.xyz); let _e20 = Sky.fog_origin.w; if (_e20 > 0.5f) { let _e26 = Sky.fog_origin.x; dist = max((depth - _e26), 0f); } let _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { let _e42 = Sky.fog_depth.x; let _e46 = Sky.fog_depth.y; let _e47 = dist; let z = smoothstep(_e42, _e46, _e47); let _e54 = Sky.fog_depth.z; let _e63 = Sky.fog.x; amount = (select(0f, pow(max(z, 0.000001f), _e54), (z > 0f)) * _e63); } else { let _e65 = dist; let _e70 = Sky.fog.x; amount = (1f - exp(min(0f, (-(_e65) * _e70)))); } let _e80 = Sky.fog.w; if (abs(_e80) >= 0.0001f) { let _e86 = Lit.up; let y_1 = dot(world_3, _e86.xyz); let _e89 = amount; let _e93 = Sky.fog.z; let _e98 = Sky.fog.w; amount = max(_e89, (1f - exp(min(0f, ((y_1 - _e93) * _e98))))); } let _e106 = amount; amount = clamp(_e106, 0f, 1f); let _e112 = Sky.fog_color; fc_1 = _e112.xyz; let _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { let _e129 = Sky.fog_depth.w; local_8 = (_e129 > 0f); } else { local_8 = false; } let _e133 = local_8; if select(false, _e133, SPEC_AMBIENT_SKY) { let _e139 = Sky.fog_origin.y; let _e144 = Sky.fog_origin.z; let _e148 = Sky.fog_origin.y; let t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 0.000001f)), 0f, 1f); let _e159 = Sky.flags.y; let top_2 = f32((max(_e159, 2u) - 1u)); let rough = mix((1f / top_2), 1f, (1f - t_3)); let _e171 = fc_1; let _e172 = sky_dir(dir_3); let _e173 = radiance_1(_e172, rough); let _e177 = Sky.sun.w; let _e182 = Sky.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } let _e184 = fc_1; let _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; let _e186 = fc_1; let _e187 = amount; return mix(c_12, _e186, _e187); } fn fog_chord(k_5: u32, o: vec3, d_4: vec3, t_end_ray: f32) -> vec2 { var r_1: vec2; var a: f32 = 0f; var b: f32 = 0f; var c_13: f32 = -1f; let _e9 = Fog.entries[k_5].albedo.w; let shape = u32(_e9); let _e16 = Fog.entries[k_5].emission.w; let t_end_1 = min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return vec2(0f, t_end_1); } let _e26 = Fog.entries[k_5].size; let h_1 = (_e26.xyz * 0.5f); let dd = select(d_4, vec3(0.000000000001f), (abs(d_4) < vec3(0.000000000001f))); let sa = ((-(h_1) - o) / dd); let sb = ((h_1 - o) / dd); let s_in = min(sa, sb); let s_out = max(sa, sb); r_1 = vec2(max(0f, s_in.y), min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { let _e60 = r_1.x; let _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1f); } else { let rad = min(h_1.x, h_1.z); let k_15 = select(0f, (rad / (2f * h_1.y)), (shape == FOG_SHAPE_CONE)); let w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - select((rad * rad), (((k_15 * k_15) * w_3) * w_3), (shape == FOG_SHAPE_CONE))); } } let _e139 = b; let _e140 = b; let _e142 = a; let _e143 = c_13; let disc = ((_e139 * _e140) - (_e142 * _e143)); let _e146 = a; if (abs(_e146) < 0.000000000001f) { let _e150 = b; if (abs(_e150) < 0.000000000001f) { let _e156 = r_1.y; let _e157 = c_13; r_1.y = select(_e156, -1f, (_e157 > 0f)); } else { let _e162 = b; if (_e162 > 0f) { let _e167 = r_1.y; let _e168 = c_13; let _e170 = b; r_1.y = min(_e167, (-(_e168) / (2f * _e170))); } else { let _e177 = r_1.x; let _e178 = c_13; let _e180 = b; r_1.x = max(_e177, (-(_e178) / (2f * _e180))); } } } else { if (disc < 0f) { let _e189 = r_1.y; let _e190 = a; r_1.y = select(_e189, -1f, (_e190 > 0f)); } else { let _e195 = b; let _e199 = a; let _e201 = b; let _e205 = a; let lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); let _e208 = b; let _e212 = a; let _e214 = b; let _e218 = a; let hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); let _e221 = a; if (_e221 > 0f) { let _e225 = r_1.x; let _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { let _e232 = r_1.x; let _e234 = r_1.y; if (_e232 < min(_e234, lo_2)) { let _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { let _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } let _e245 = r_1; return _e245; } fn fog_density(k_6: u32, p_3: vec3, lp: vec3) -> f32 { var rho: f32; var sdf: f32 = 0f; let e_4 = Fog.entries[k_6]; let _e14 = Fog.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1f)); if (e_4.material.z > 0f) { let shape_1 = u32(e_4.albedo.w); let h_2 = (e_4.size.xyz * 0.5f); let rad_1 = min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { let k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1f)) / max(length((lp / (h_2 * h_2))), 0.000000000001f)); } else { if (shape_1 == FOG_SHAPE_BOX) { let q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0f))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0f)); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { let q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0f) + length(max(q_4, vec2(0f)))); } else { let n_11 = normalize(vec2((1f / max(0.001f, (rad_1 * 0.5f))), (1f / max(0.001f, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } let _e116 = rho; let _e117 = sdf; rho = (_e116 * pow(clamp(((-2f * _e117) / e_4.size.w), 0f, 1f), e_4.material.z)); } let _e130 = rho; return _e130; } fn fog_falloff_depth(k_7: u32, a_1: f32, b_1: f32, t0_: f32, t1_: f32) -> f32 { let m_4 = Fog.entries[k_7].material; let hf = m_4.y; if ((hf * b_1) == 0f) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1f)); } let s_2 = clamp((-(a_1) / b_1), t0_, t1_); let lo_3 = select(t0_, s_2, (b_1 > 0f)); let hi_3 = select(s_2, t1_, (b_1 > 0f)); let x_4 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472f); let g = select(((1f - exp(-(x_4))) / x_4), (1f - (x_4 * (0.5f - (x_4 * (0.16666667f - (x_4 / 24f)))))), (x_4 < 0.01f)); let top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * select(hi_3, lo_3, (b_1 > 0f)))), 0f))), 1f); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } fn omni_attenuation(d_5: f32, inv_range: f32, decay: f32) -> f32 { var nd: f32; nd = (d_5 * inv_range); let _e5 = nd; let _e6 = nd; nd = (_e5 * _e6); let _e8 = nd; let _e9 = nd; nd = (_e8 * _e9); let _e11 = nd; nd = max((1f - _e11), 0f); let _e16 = nd; let _e17 = nd; nd = (_e16 * _e17); let _e19 = nd; return (_e19 * pow(max(d_5, 0.0001f), -(decay))); } fn fog_light(n_3: u32, p_4: vec3, dir_4: vec3) -> vec3 { var sum: vec3; var k_8: u32 = 0u; var l_1: vec3; var atten: f32; let _e5 = Fog.ambient; let _e10 = Fog.params.y; sum = (_e5.xyz * _e10); let g_1 = Fog.params.x; let lights = Fog.entries[n_3].lights; loop { let _e24 = k_8; if (_e24 < min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { let _e31 = k_8; let _e35 = k_8; let i_14 = min(((select(lights.y, lights.x, (_e31 < 4u)) >> ((_e35 & 3u) * 8u)) & 255u), 63u); let li = Lit.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1f; if (li.info.x != LIGHT_DIRECTIONAL) { let rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 0.000001f))); let _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { let _e77 = l_1; let rim = max(0.0001f, ((1f - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1f - li.spot.x), 0.000001f))); let _e96 = atten; atten = (_e96 * (1f - pow(rim, li.spot.y))); } } let _e108 = l_1; let q_5 = ((1f + (g_1 * g_1)) - ((2f * g_1) * dot(dir_4, _e108))); let _e112 = sum; let _e115 = atten; let _e133 = Fog.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1f - (g_1 * g_1))) / ((12.566371f * q_5) * sqrt(q_5))) * _e133))); } continuing { let _e138 = k_8; k_8 = (_e138 + 1u); } } let _e140 = sum; return _e140; } fn fog_entry(k_9: u32, o_1: vec3, d_6: vec3, ch: vec2) -> vec4 { var split: f32; var local_9: bool; var local_10: bool; var q_1: vec3 = vec3(0f); var tau: f32 = 0f; var i_1: u32 = 0u; var local_11: bool; var local_12: bool; let e_5 = Fog.entries[k_9]; let lo_4 = (e_5.to_local * vec4(o_1, 1f)).xyz; let ld = (e_5.to_local * vec4(d_6, 0f)).xyz; let _e20 = Fog.up; let a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); let _e28 = Fog.up; let b_3 = dot(d_6, _e28.xyz); let edge = (e_5.material.z > 0f); split = ((ch.x + ch.y) * 0.5f); if (e_5.material.y > 0f) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } let _e52 = local_9; if _e52 { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } let _e60 = local_10; if _e60 { split = (-(a_6) / b_3); } loop { let _e70 = i_1; if (_e70 < select(4u, 12u, edge)) { } else { break; } { let _e75 = i_1; let j = (_e75 & 3u); if !((j == 0u)) { local_11 = (j == 3u); } else { local_11 = true; } let _e88 = local_11; let x_5 = select(FOG_GL_X1_, FOG_GL_X0_, _e88); if !((j == 0u)) { local_12 = (j == 3u); } else { local_12 = true; } let _e100 = local_12; let w_4 = select(FOG_GL_W1_, FOG_GL_W0_, _e100); let _e102 = split; let _e106 = split; let _e108 = i_1; let _e112 = i_1; let seg = select(select(vec2(_e102, ch.y), vec2(ch.x, _e106), (_e108 < 8u)), ch, (_e112 < 4u)); let half_len = ((seg.y - seg.x) * 0.5f); let t_4 = (((seg.x + seg.y) * 0.5f) + (half_len * select(x_5, -(x_5), (j < 2u)))); let p_8 = (o_1 + (d_6 * t_4)); let _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_4))); let _e137 = i_1; if (_e137 < 4u) { let _e140 = q_1; let _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0f, 1f)))); } else { let _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } continuing { let _e160 = i_1; i_1 = (_e160 + 1u); } } if !(edge) { let _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } let _e166 = q_1; let _e167 = tau; return vec4(_e166, _e167); } fn fog_integrate(c_14: vec3, o_2: vec3, d_7: vec3, t_end: f32, list: u32) -> vec3 { var at: array; var chords: array, 4>; var m: u32 = 0u; var i_2: u32 = 0u; var local_13: bool; var parts: array, 4>; var i_3: u32 = 0u; var n_4: u32 = 0u; var avail: f32; var i_4: u32; var i_5: u32; var q_2: vec3 = vec3(0f); var tau_1: f32 = 0f; var i_6: u32 = 0u; let all_ = (list >= FOG_LIST_ALL); loop { let _e13 = i_2; let _e18 = Fog.counts.x; if (_e13 < select(4u, min(_e18, MAX_FRAME_FOG_VOLUMES), all_)) { } else { break; } { let _e23 = i_2; let byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if !(all_) { local_13 = (byte == 0u); } else { local_13 = false; } let _e37 = local_13; if _e37 { break; } let _e42 = i_2; let k_16 = select((min(byte, MAX_FRAME_FOG_VOLUMES) - 1u), _e42, all_); let to_local = Fog.entries[k_16].to_local; let _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1f)).xyz, (to_local * vec4(d_7, 0f)).xyz, t_end); if (_e57.y > _e57.x) { let _e61 = m; at[_e61] = k_16; let _e63 = m; chords[_e63] = _e57; let _e66 = m; m = (_e66 + 1u); let _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } continuing { let _e72 = i_2; i_2 = (_e72 + 1u); } } loop { let _e77 = i_3; let _e78 = m; if (_e77 < _e78) { } else { break; } { let _e80 = i_3; let _e82 = i_3; let _e84 = at[_e82]; let _e85 = i_3; let _e87 = chords[_e85]; let _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } continuing { let _e90 = i_3; i_3 = (_e90 + 1u); } } loop { let _e94 = n_4; let _e95 = m; if (_e94 < _e95) { } else { break; } { let _e97 = n_4; let _e100 = parts[_e97].w; if (_e100 < 0f) { avail = 0f; i_4 = 0u; loop { let _e107 = i_4; let _e108 = m; if (_e107 < _e108) { } else { break; } { let _e110 = i_4; let _e113 = chords[_e110].y; let _e114 = n_4; let _e117 = chords[_e114].y; let _e119 = i_4; let _e122 = chords[_e119].x; let _e123 = n_4; let _e126 = chords[_e123].x; let _e131 = i_4; let _e134 = chords[_e131].y; let _e135 = i_4; let _e138 = chords[_e135].x; let share = (max((min(_e113, _e117) - max(_e122, _e126)), 0f) / max((_e134 - _e138), 0.000001f)); let _e143 = avail; let _e144 = i_4; let _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0f) * share)); } continuing { let _e153 = i_4; i_4 = (_e153 + 1u); } } let _e155 = n_4; let _e158 = parts[_e155].w; let _e160 = avail; let f_2 = min((-(_e158) / max(_e160, 0.000000000001f)), 1f); i_5 = 0u; loop { let _e168 = i_5; let _e169 = m; if (_e168 < _e169) { } else { break; } { let _e171 = i_5; let _e174 = parts[_e171].w; if (_e174 > 0f) { let _e177 = i_5; let _e180 = chords[_e177].y; let _e181 = n_4; let _e184 = chords[_e181].y; let _e186 = i_5; let _e189 = chords[_e186].x; let _e190 = n_4; let _e193 = chords[_e190].x; let _e198 = i_5; let _e201 = chords[_e198].y; let _e202 = i_5; let _e205 = chords[_e202].x; let share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0f) / max((_e201 - _e205), 0.000001f)); let _e210 = i_5; let _e212 = parts[_e210]; parts[_e210] = (_e212 * (1f - (share_1 * f_2))); } } continuing { let _e218 = i_5; i_5 = (_e218 + 1u); } } } } continuing { let _e221 = n_4; n_4 = (_e221 + 1u); } } loop { let _e230 = i_6; let _e231 = m; if (_e230 < _e231) { } else { break; } { let _e233 = i_6; let _e236 = parts[_e233].w; if (_e236 > 0f) { let _e239 = q_2; let _e240 = i_6; let _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); let _e245 = tau_1; let _e246 = i_6; let _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } continuing { let _e252 = i_6; i_6 = (_e252 + 1u); } } let _e254 = tau_1; let t_5 = exp(-(_e254)); let _e258 = q_2; let _e261 = tau_1; return ((c_14 * t_5) + (_e258 * ((1f - t_5) / max(_e261, 0.00001f)))); } fn fog_volumes(c_15: vec3, world_4: vec3, list_1: u32) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_6 = select(_e22.xyz, (world_4 - (back * (_e26 * vec4(world_4, 1f)).z)), (_e36 > 0.5f)); let len = length((world_4 - o_6)); let _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 0.000001f))), len, list_1); return select(c_15, _e47, (len > 0f)); } fn sky_fog_volumes(c_16: vec3, near_point: vec3, dir_5: vec3) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back_1 = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_7 = select(_e22.xyz, (near_point - (back_1 * (_e26 * vec4(near_point, 1f)).z)), (_e36 > 0.5f)); let _e44 = Fog.counts.y; let _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); let _e49 = Fog.params.z; return mix(c_16, _e45, _e49); } fn shadow_factor(i_7: u32, world_5: vec3, n_geo_1: vec3, l_2: vec3) -> f32 { var part: u32 = 0u; var c_17: u32 = 0u; var local_14: bool; var local_15: bool; var local_16: bool; var vis: f32 = 0f; var dy: i32 = -1i; var dx: i32; let kind = Lit.lights[i_7].info.x; let _e14 = Lit.lights[i_7].position; let light_pos = _e14.xyz; let _e21 = Lit.lights[i_7].info.w; let slot = min(_e21, 15u); let params = Shadow.lights[slot].params; let first = Shadow.lights[slot].info.x; let _e40 = Shadow.lights[slot].info.y; let count = max(_e40, 1u); let _e45 = G.view; let view_depth = -((_e45 * vec4(world_5, 1f)).z); if (kind == LIGHT_DIRECTIONAL) { let _e60 = Shadow.lights[slot].fade.y; if (view_depth > _e60) { return 1f; } part = (count - 1u); loop { let _e67 = c_17; if (_e67 < count) { } else { break; } { let _e73 = c_17; let _e75 = Shadow.lights[slot].splits[_e73]; if (view_depth <= _e75) { let _e77 = c_17; part = _e77; break; } } continuing { let _e79 = c_17; c_17 = (_e79 + 1u); } } } let _e83 = part; let texel = Shadow.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; let t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); let p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1f)) * t_6))) + (l_2 * (params.x * t_6))); if (kind == LIGHT_OMNI) { let d_13 = (p_9 - light_pos); let a_7 = abs(d_13); if (a_7.x >= a_7.y) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } let _e123 = local_14; if _e123 { part = select(1u, 0u, (d_13.x >= 0f)); } else { if (a_7.y >= a_7.z) { part = select(3u, 2u, (d_13.y >= 0f)); } else { part = select(5u, 4u, (d_13.z >= 0f)); } } } let _e145 = part; let tile = min((first + min(_e145, (count - 1u))), 15u); let _e156 = Shadow.tiles[tile].view_proj; let clip_1 = (_e156 * vec4(p_9, 1f)); if (clip_1.w <= 0f) { return 1f; } let ndc = (clip_1.xyz / vec3(clip_1.w)); if !((abs(ndc.x) > 1f)) { local_15 = (abs(ndc.y) > 1f); } else { local_15 = true; } let _e180 = local_15; if !(_e180) { local_16 = (ndc.z > 1f); } else { local_16 = true; } let _e188 = local_16; if _e188 { return 1f; } let rect = Shadow.tiles[tile].rect; let uv_5 = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let auv = (rect.xy + (uv_5 * rect.zw)); let texel_uv = Shadow.atlas.x; let lo_5 = (rect.xy + vec2((0.5f * texel_uv))); let hi_4 = ((rect.xy + rect.zw) - vec2((0.5f * texel_uv))); let r_7 = params.z; if (r_7 <= 0f) { let _e235 = textureSampleCompareLevel(t_shadow, s_shadow, clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { let spread = (r_7 * texel_uv); loop { let _e239 = dy; if (_e239 <= 1i) { } else { break; } { dx = -1i; loop { let _e244 = dx; if (_e244 <= 1i) { } else { break; } { let _e247 = dx; let _e249 = dy; let tap = clamp((auv + (vec2(f32(_e247), f32(_e249)) * spread)), lo_5, hi_4); let _e255 = vis; let _e259 = textureSampleCompareLevel(t_shadow, s_shadow, tap, ndc.z); vis = (_e255 + _e259); } continuing { let _e262 = dx; dx = (_e262 + 1i); } } } continuing { let _e265 = dy; dy = (_e265 + 1i); } } let _e267 = vis; vis = (_e267 / 9f); } if (kind == LIGHT_DIRECTIONAL) { let fade_1 = Shadow.lights[slot].fade; let _e277 = vis; vis = mix(_e277, 1f, smoothstep(fade_1.x, fade_1.y, view_depth)); } let _e283 = vis; return mix(1f, _e283, params.w); } fn probe_light(n_5: vec3) -> vec3 { let _e5 = O.gi[0].x; let _e9 = O.gi[0]; let _e17 = O.gi[1].x; let _e21 = O.gi[1]; let _e29 = O.gi[2].x; let _e33 = O.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0f)); } fn gi_diffuse(n_6: vec3, baked: bool, baked_light: vec3) -> vec4 { if baked { return vec4(baked_light, 1f); } let _e9 = O.extra.x; if select(false, ((_e9 & OBJ_PROBE_GI) != 0u), SPEC_PROBE_GI) { let _e16 = probe_light(n_6); return vec4(_e16, 1f); } return vec4(0f); } fn probe_face_uv(d_8: vec3) -> vec3 { var face: f32; var ma: f32; var sc: f32; var tc: f32; var local_17: bool; let a_8 = abs(d_8); if (a_8.x >= a_8.y) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } let _e15 = local_17; if _e15 { ma = a_8.x; if (d_8.x >= 0f) { face = 0f; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1f; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0f) { face = 2f; sc = d_8.x; tc = d_8.z; } else { face = 3f; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0f) { face = 4f; sc = d_8.x; tc = -(d_8.y); } else { face = 5f; sc = -(d_8.x); tc = -(d_8.y); } } } let _e56 = face; let _e57 = sc; let _e58 = ma; let _e64 = tc; let _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1f) * 0.5f), (((_e64 / _e65) + 1f) * 0.5f)); } fn probe_texel(row: u32, fuv: vec3, level_1: u32) -> vec3 { let _e6 = Probe.counts.z; let n_12 = f32(max((_e6 >> level_1), 1u)); let lo_6 = (0.5f / n_12); let u_2 = clamp(fuv.y, lo_6, (1f - lo_6)); let v_7 = clamp(fuv.z, lo_6, (1f - lo_6)); let uv_6 = vec2(((fuv.x + u_2) / 6f), ((f32(row) + v_7) / 8f)); let _e33 = textureSampleLevel(t_probes, s_probes, uv_6, f32(level_1)); return _e33.xyz; } fn probe_sample(row_1: u32, d_9: vec3, lod: f32) -> vec3 { var local_18: bool; let _e6 = Probe.counts.y; let levels = max(_e6, 1u); let l_5 = clamp(lod, 0f, f32((levels - 1u))); let m0_ = u32(l_5); let t_7 = (l_5 - f32(m0_)); let _e17 = probe_face_uv(d_9); let _e18 = probe_texel(row_1, _e17, m0_); if !((t_7 <= 0f)) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } let _e28 = local_18; if _e28 { return _e18; } let _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1f - t_7)) + (_e34 * t_7)); } fn probe_weight(p_5: ProbeEntryU, world_6: vec3) -> f32 { let l_6 = (p_5.to_local * vec4(world_6, 1f)).xyz; let e_6 = p_5.extents.xyz; let d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if (d_14 < 0f) { return 0f; } if !((p_5.extents.w > 0f)) { return 1f; } return min((d_14 / p_5.extents.w), 1f); } fn probe_exit(o_3: f32, d_10: f32, e_1: f32) -> f32 { if (d_10 > 0f) { return ((e_1 - o_3) / d_10); } if (d_10 < 0f) { return ((-(e_1) - o_3) / d_10); } return 300000000000000000000000000000000000000f; } fn probe_lookup(p_6: ProbeEntryU, world_7: vec3, dir_6: vec3) -> vec3 { let d_15 = (p_6.to_local * vec4(dir_6, 0f)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } let o_8 = (p_6.to_local * vec4(world_7, 1f)).xyz; let e_7 = p_6.extents.xyz; let _e24 = probe_exit(o_8.x, d_15.x, e_7.x); let _e28 = probe_exit(o_8.y, d_15.y, e_7.y); let _e32 = probe_exit(o_8.z, d_15.z, e_7.z); let t_8 = max(min(_e24, min(_e28, _e32)), 0f); return ((o_8 + (d_15 * t_8)) - p_6.offset.xyz); } fn probe_reflection(world_8: vec3, r_2: vec3, roughness_2: f32, probes: u32) -> vec4 { var acc: vec3 = vec3(0f); var w_sum: f32 = 0f; var i_8: u32 = 0u; let _e12 = Probe.counts.x; let count_1 = min(_e12, MAX_PROBES); let _e18 = Probe.counts.y; let lod_1 = (roughness_2 * f32((max(_e18, 1u) - 1u))); loop { let _e27 = i_8; if (_e27 < count_1) { } else { break; } { let _e31 = i_8; let p_10 = Probe.probes[_e31]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } let _e41 = probe_weight(p_10, world_8); if (_e41 <= 0f) { continue; } let _e44 = acc; let _e47 = probe_lookup(p_10, world_8, r_2); let _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); let _e54 = w_sum; w_sum = (_e54 + _e41); } continuing { let _e57 = i_8; i_8 = (_e57 + 1u); } } let _e59 = w_sum; if (_e59 > 1f) { let _e62 = acc; let _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1f; } let _e67 = acc; let _e68 = w_sum; return vec4(_e67, _e68); } fn probe_ambient(world_9: vec3, n_7: vec3, probes_1: u32) -> vec4 { var acc_1: vec3 = vec3(0f); var w_sum_1: f32 = 0f; var i_9: u32 = 0u; var local_19: bool; var c_18: vec3; let _e11 = Probe.counts.x; let count_2 = min(_e11, MAX_PROBES); let _e17 = Probe.counts.y; let last = (max(_e17, 1u) - 1u); loop { let _e24 = i_9; if (_e24 < count_2) { } else { break; } { let _e28 = i_9; let p_11 = Probe.probes[_e28]; if !((((probes_1 >> p_11.info.w) & 1u) == 0u)) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } let _e46 = local_19; if _e46 { continue; } let _e47 = probe_weight(p_11, world_9); if (_e47 <= 0f) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { let _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0f)).xyz); let _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } let _e66 = acc_1; let _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); let _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } continuing { let _e73 = i_9; i_9 = (_e73 + 1u); } } let _e75 = w_sum_1; if (_e75 > 1f) { let _e78 = acc_1; let _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1f; } let _e83 = acc_1; let _e84 = w_sum_1; return vec4(_e83, _e84); } fn skin_row(k_10: u32, r_3: u32) -> vec4 { let _e10 = Skin.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } fn skin_rows(s_1: SkinIn) -> SkinRows { var m_1: SkinRows; let j_1 = s_1.joints; let w_5 = s_1.weights; let _e8 = skin_row(j_1.x, 0u); let _e13 = skin_row(j_1.y, 0u); let _e19 = skin_row(j_1.z, 0u); let _e25 = skin_row(j_1.w, 0u); m_1.r0_ = ((((w_5.x * _e8) + (w_5.y * _e13)) + (w_5.z * _e19)) + (w_5.w * _e25)); let _e32 = skin_row(j_1.x, 1u); let _e37 = skin_row(j_1.y, 1u); let _e43 = skin_row(j_1.z, 1u); let _e49 = skin_row(j_1.w, 1u); m_1.r1_ = ((((w_5.x * _e32) + (w_5.y * _e37)) + (w_5.z * _e43)) + (w_5.w * _e49)); let _e56 = skin_row(j_1.x, 2u); let _e61 = skin_row(j_1.y, 2u); let _e67 = skin_row(j_1.z, 2u); let _e73 = skin_row(j_1.w, 2u); m_1.r2_ = ((((w_5.x * _e56) + (w_5.y * _e61)) + (w_5.z * _e67)) + (w_5.w * _e73)); let _e76 = m_1; return _e76; } fn hedra_store_varyings(o_4: ptr) { let _e3 = frame_uv; (*o_4).hedra_v0_ = vec4(_e3, 0f, 0f); return; } fn hedra_load_varyings(i_10: CustomOut) { frame_uv = i_10.hedra_v0_.xy; return; } fn light() { return; } fn vertex() { var view_pos: vec4; var local_20: bool; let _e2 = MODEL_MATRIX[0]; let scale = length(_e2.xyz); let _e6 = MODELVIEW_MATRIX; view_pos = (_e6 * vec4(0f, 0f, 0f, 1f)); let _e14 = view_pos; let _e17 = VERTEX; view_pos = vec4((_e14.xyz + vec3((_e17.xy * scale), 0f)), 1f); let _e27 = G.proj; let _e28 = view_pos; let clip_2 = (_e27 * _e28); let _e33 = hedra_p.snap_resolution.x; if (_e33 > 0f) { local_20 = (clip_2.w > 0.0001f); } else { local_20 = false; } let _e42 = local_20; if _e42 { let _e45 = hedra_p.snap_resolution; let half_res = (_e45 * 0.5f); let snapped = (round(((clip_2.xy / vec2(clip_2.w)) * half_res)) / half_res); let _e56 = INV_PROJECTION_MATRIX; let back_2 = (_e56 * vec4((snapped * clip_2.w), clip_2.z, clip_2.w)); view_pos = vec4((back_2.xyz / vec3(back_2.w)), 1f); } let _e70 = view_pos; VERTEX = _e70.xyz; NORMAL = vec3(0f, 0f, 1f); let _e79 = hedra_p.frames_x; let _e82 = hedra_p.frames_y; let count_3 = max((_e79 * _e82), 1f); let _e88 = COLOR.w; let frame = min(floor(((1f - clamp(_e88, 0f, 1f)) * count_3)), (count_3 - 1f)); let _e101 = hedra_p.frames_x; let _e105 = hedra_p.frames_x; let cell = vec2((frame % _e101), floor((frame / _e105))); let _e111 = UV; let _e115 = hedra_p.frames_x; let _e118 = hedra_p.frames_y; frame_uv = ((cell + _e111) / vec2(_e115, _e118)); return; } fn fragment() { let _e3 = frame_uv; let texel_1 = textureSample(sprite_sheet, SAMPLER_NEAREST_CLAMP, _e3); let _e9 = hedra_p.tint; let _e12 = COLOR; ALBEDO = ((texel_1.xyz * _e9) * _e12.xyz); ALPHA = texel_1.w; let _e20 = hedra_p.alpha_cut; ALPHA_SCISSOR_THRESHOLD = _e20; return; } fn hedra_mat3_(m_2: mat4x4) -> mat3x3 { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } fn hedra_rigid_inverse(m_3: mat4x4) -> mat4x4 { let _e1 = hedra_mat3_(m_3); let r_8 = transpose(_e1); let t_9 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0f), vec4(r_8[1], 0f), vec4(r_8[2], 0f), vec4(t_9, 1f)); } fn hedra_inv_projection() -> mat4x4 { let _e2 = G.wire_color; let _e5 = G.select_color; let _e8 = G.active_color; let _e11 = G.grid; return mat4x4(_e2, _e5, _e8, _e11); } fn hedra_godot_uv(uv_1: vec2) -> vec2 { return vec2(uv_1.x, (1f - uv_1.y)); } fn hedra_transparent() -> bool { var local_21: bool; var local_22: bool; if HEDRA_ALPHA { local_21 = false; } else { local_21 = false; } let _e5 = local_21; if !(_e5) { local_22 = false; } else { local_22 = true; } let _e11 = local_22; return _e11; } fn hedra_mirrored(flags_1: u32) -> bool { let _e4 = O.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } fn hedra_matrices(model: mat4x4, normal: mat3x3) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; let _e7 = G.view; let _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; let _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; let _e14 = G.view; MODELVIEW_MATRIX = (_e14 * model); let _e19 = G.view; let _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; let _e28 = G.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1f)).xyz; let _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } fn hedra_begin_vertex(pos: vec3, normal_1: vec3, tangent: vec4, uv_2: vec2, uv2_: vec2, color: vec4, vid_3: u32) { var local_23: bool; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); let _e17 = hedra_godot_uv(uv_2); UV = _e17; let _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = i32(vid_3); POSITION = vec4(1f); if HEDRA_WORLD_VERTEX_COORDS { local_23 = false; } else { local_23 = false; } let _e31 = local_23; if _e31 { let _e34 = MODEL_MATRIX; let _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1f)).xyz; let _e43 = MODEL_NORMAL_MATRIX; let _e45 = NORMAL; NORMAL = (_e43 * _e45); let _e49 = MODEL_NORMAL_MATRIX; let _e51 = TANGENT; TANGENT = (_e49 * _e51); let _e55 = MODEL_NORMAL_MATRIX; let _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } fn hedra_end_vertex(world_10: vec4, n_8: vec3, t: vec3, tw: f32, flags_2: u32) -> CustomOut { var out_2: CustomOut; let _e9 = G.view_proj; out_2.clip = (_e9 * world_10); if HEDRA_USES_POSITION { let _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); let _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); let _e28 = COLOR; out_2.color = _e28; let _e31 = UV2_; out_2.uv2_ = _e31; let _e34 = INSTANCE_ID; out_2.instance_id = u32(max(_e34, 0i)); hedra_store_varyings((&out_2)); let _e38 = out_2; return _e38; } fn hedra_vertex_space() -> bool { var local_24: bool; if false { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } let _e5 = local_24; return _e5; } fn hedra_vertex_world() -> vec4 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e2 = INV_VIEW_MATRIX; let _e4 = VERTEX; return (_e2 * vec4(_e4, 1f)); } let _e9 = VERTEX; return vec4(_e9, 1f); } fn hedra_vertex_dir(d_11: vec3) -> vec3 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e3 = INV_VIEW_MATRIX; let _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } fn hedra_tangent_sign(w: f32, flip: bool) -> f32 { let _e5 = O.extra.x; return (w * select(1f, -1f, (((_e5 & OBJ_MIRRORED) != 0u) != flip))); } fn hedra_fragment(in_7: CustomOut, facing_4: bool) { var t_1: vec3; var nm: vec3; let _e3 = hedra_mirrored(in_7.flags); let front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; let _e14 = G.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); let _e19 = O.model; let _e22 = O.normal; let _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); let _e26 = G.view; let _e27 = hedra_mat3_(_e26); let n_geo_2 = select(-(normalize(in_7.normal)), normalize(in_7.normal), front); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; let _e41 = t_1; let _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); let _e47 = t_1; let b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); let _e55 = G.view; VERTEX = (_e55 * vec4(in_7.world, 1f)).xyz; let _e63 = VERTEX; LIGHT_VERTEX = _e63; let vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); let normal0_ = NORMAL; let _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); let _e80 = VERTEX; let _e90 = G.camera_pos.w; VIEW = select(normalize(-(_e80)), vec3(0f, 0f, 1f), (_e90 > 0.5f)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5f); NORMAL_MAP_DEPTH = 1f; ALBEDO = vec3(1f); ALPHA = 1f; ALPHA_SCISSOR_THRESHOLD = 1f; PREMUL_ALPHA_FACTOR = 1f; METALLIC = 0f; SPECULAR = 0.5f; ROUGHNESS = 1f; RIM = 0f; RIM_TINT = 0f; BACKLIGHT = vec3(0f); AO = 1f; AO_LIGHT_AFFECT = 0f; EMISSION = vec3(0f); hedra_load_varyings(in_7); fragment(); let back_3 = transpose(_e27); let _e136 = NORMAL; if any((_e136 != normal0_)) { let _e141 = NORMAL; hedra_n = normalize((back_3 * _e141)); } let _e145 = NORMAL_MAP; if any((_e145 != vec3(0.5f))) { let _e151 = NORMAL_MAP; nm = _e151; let _e153 = nm; nm = vec3(((_e153.xy * 2f) - vec2(1f)), 0f); let _e163 = nm; let _e165 = nm; nm.z = sqrt(max(0f, (1f - dot(_e163.xy, _e165.xy)))); let _e175 = NORMAL; let _e177 = TANGENT; let _e179 = nm.x; let _e182 = BINORMAL; let _e184 = nm.y; let _e188 = NORMAL; let _e190 = nm.z; let _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); let _e199 = NORMAL; hedra_n = normalize((back_3 * _e199)); } let _e203 = LIGHT_VERTEX; if any((_e203 != vertex0_)) { let _e208 = INV_VIEW_MATRIX; let _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1f)).xyz; return; } else { return; } } fn hedra_culled(flags_3: u32) -> bool { var local_25: bool; var local_26: bool; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if false { let _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } let _e12 = local_25; if _e12 { return true; } if HEDRA_ALPHA_SCISSOR { let _e18 = ALPHA; let _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = (_e18 < _e20); } else { local_26 = false; } let _e23 = local_26; return _e23; } fn hedra_view_dir(world_11: vec3) -> vec3 { let _e5 = G.view[0][2]; let _e10 = G.view[1][2]; let _e15 = G.view[2][2]; let view_dir = vec3(_e5, _e10, _e15); let _e19 = G.camera_pos; let _e27 = G.camera_pos.w; return select(normalize((_e19.xyz - world_11)), normalize(view_dir), (_e27 > 0.5f)); } fn hedra_schlick(u: f32) -> f32 { let m_5 = clamp((1f - u), 0f, 1f); let m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } fn hedra_diffuse_brdf(nl_1: f32, nv_2: f32, lh: f32, r_4: f32) -> f32 { let c_nl = max(nl_1, 0f); if false { return (max(0f, ((nl_1 + r_4) / ((1f + r_4) * (1f + r_4)))) * 0.31830987f); } if false { return (smoothstep(-(r_4), max(r_4, 0.01f), nl_1) * 0.31830987f); } if false { let fd90_ = ((((2f * lh) * lh) * r_4) - 0.5f); let _e32 = hedra_schlick(nv_2); let fdv = (1f + (fd90_ * _e32)); let _e36 = hedra_schlick(c_nl); let fdl = (1f + (fd90_ * _e36)); return (((0.31830987f * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987f); } fn hedra_light_modes(n_9: vec3, v_3: vec3, l_3: vec3, radiance_2: vec3, diffuse_1: vec3, f0_2: vec3, a2_3: f32, r_5: f32, specular_1: f32) -> vec3 { var c_19: vec3; var mid: f32; var local_27: bool; let nl_3 = min(dot(n_9, l_3), 1f); let nv_4 = max(dot(n_9, v_3), 0.0001f); let h_3 = normalize((l_3 + v_3)); let lh_1 = clamp(dot(l_3, h_3), 0f, 1f); let _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if (r_5 > 0f) { if false { let refl = normalize(-(reflect(l_3, n_9))); let rv = dot(refl, v_3); mid = (1f - r_5); let _e35 = mid; let _e36 = mid; mid = (_e35 * _e36); let _e38 = c_19; let _e40 = mid; let _e44 = mid; let _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5f)), (_e44 + (r_5 * 0.5f)), rv) * _e49) * specular_1))); } else { if false { local_27 = (nl_3 > 0f); } else { local_27 = false; } let _e60 = local_27; if _e60 { let nh_2 = max(dot(n_9, h_3), 0f); let vh_2 = max(dot(v_3, h_3), 0f); let _e67 = f_schlick(f0_2, vh_2); let _e68 = c_19; let _e69 = d_ggx(nh_2, a2_3); let _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } let _e77 = c_19; return _e77; } fn hedra_light_dir(i_11: u32, world_12: vec3) -> vec4 { var atten_1: f32; let li_1 = Lit.lights[i_11]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return vec4(-(li_1.direction.xyz), 1f); } let rel_1 = (li_1.position.xyz - world_12); let d_16 = length(rel_1); let l_7 = (rel_1 / vec3(max(d_16, 0.000001f))); let _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { let cone = li_1.spot.x; let scos = max(dot(-(l_7), li_1.direction.xyz), cone); let rim_1 = max(0.0001f, ((1f - scos) / max((1f - cone), 0.000001f))); let _e49 = atten_1; atten_1 = (_e49 * (1f - pow(rim_1, li_1.spot.y))); } let _e56 = atten_1; return vec4(l_7, _e56); } fn hedra_shadow(i_12: u32, l_4: vec3) -> f32 { var local_28: bool; if false { let _e10 = Lit.lights[i_12].info.y; local_28 = (_e10 != LIGHT_SHADOWED); } else { local_28 = true; } let _e14 = local_28; if _e14 { return 1f; } let _e17 = hedra_world; let _e19 = hedra_n_geo; let _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } fn hedra_ambient(n_10: vec3, v_4: vec3, diffuse_2: vec3, f0_3: vec3, roughness_3: f32, metallic: f32) -> vec3 { var ambient: vec3; var diffuse_amb: vec3; var spec_amb: vec3; var dif: vec3; var dif_1: vec3; var dif_2: vec3; let world_13 = hedra_world; let nv_5 = max(dot(n_10, v_4), 0.0001f); let f_amb = (f0_3 + ((max(vec3((1f - roughness_3)), f0_3) - f0_3) * pow((1f - nv_5), 5f))); let _e25 = gi_diffuse(n_10, false, vec3(0f)); let _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { let _e38 = Sky.ibl.x; let _e42 = Sky.sun.w; let scale_1 = (_e38 * _e42); let _e46 = Sky.ambient; diffuse_amb = _e46.xyz; let _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { let _e59 = Sky.ambient; let _e61 = sky_dir(n_10); let _e62 = sh_irradiance(_e61); let _e67 = Sky.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale_1), _e67); } if (_e25.w > 0f) { diffuse_amb = _e25.xyz; } let _e75 = Sky.ambient; spec_amb = _e75.xyz; let _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { let _e88 = sky_dir(reflect(-(v_4), n_10)); let _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale_1); } else { let _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = vec3(0f); } } let _e101 = env_brdf_approx(roughness_3, nv_5); let _e105 = Probe.counts.x; if (_e105 > 0u) { let _e113 = O.extra.z; let _e114 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e113); let _e115 = spec_amb; let spec_1 = ((_e115 * (1f - _e114.w)) + _e114.xyz); let _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0f) { let _e130 = O.extra.z; let _e131 = probe_ambient(world_13, n_10, _e130); let _e132 = diffuse_amb; dif = ((_e132 * (1f - _e131.w)) + _e131.xyz); } let _e139 = dif; ambient = ((diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } else { let _e154 = diffuse_amb; let _e156 = spec_amb; ambient = ((diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } } else { let _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { let _e180 = Lit.up; let up = _e180.xyz; let _e184 = Lit.sky_top; let _e188 = Lit.sky_horizon; let sky_avg = ((_e184.xyz + _e188.xyz) * 0.5f); let _e195 = Lit.ground_horizon; let _e199 = Lit.ground_bottom; let ground_avg = ((_e195.xyz + _e199.xyz) * 0.5f); let irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up) * 0.5f) + 0.5f), 0f, 1f)); let _e215 = sky(reflect(-(v_4), n_10)); let blurred = mix(_e215, sky_avg, roughness_3); let _e220 = Probe.counts.x; if (_e220 > 0u) { let _e228 = O.extra.z; let _e229 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e228); let _e233 = Lit.ambient.w; let spec_2 = (((blurred * _e233) * (1f - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if (_e25.w <= 0f) { let _e249 = O.extra.z; let _e250 = probe_ambient(world_13, n_10, _e249); let _e254 = Lit.ambient.w; dif_1 = (((irradiance * _e254) * (1f - _e250.w)) + _e250.xyz); } let _e262 = dif_1; ambient = ((diffuse_2 * _e262) + (spec_2 * f_amb)); } else { if (_e25.w > 0f) { let _e275 = Lit.ambient.w; ambient = ((diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { let _e284 = Lit.ambient.w; ambient = (((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284); } } } else { let _e289 = Probe.counts.x; if (_e289 > 0u) { let _e297 = O.extra.z; let _e298 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e297); let _e301 = Lit.ambient; let spec_3 = ((_e301.xyz * (1f - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if (_e25.w <= 0f) { let _e317 = O.extra.z; let _e318 = probe_ambient(world_13, n_10, _e317); let _e321 = Lit.ambient; dif_2 = ((_e321.xyz * (1f - _e318.w)) + _e318.xyz); } let _e329 = dif_2; ambient = ((diffuse_2 * _e329) + (spec_3 * f_amb)); } else { if (_e25.w > 0f) { let _e340 = Lit.ambient; ambient = ((diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb)); } else { let _e346 = Lit.ambient; ambient = (_e346.xyz * (diffuse_2 + f_amb)); } } } } let _e350 = ambient; return _e350; } fn hedra_fog(c_in_1: vec3, v_5: vec3) -> vec3 { var c_20: vec3; c_20 = c_in_1; if HEDRA_FOG_DISABLED { let _e4 = c_20; return _e4; } let _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { let _e13 = c_20; let _e15 = hedra_world; let _e17 = surface_fog(_e13, _e15, -(v_5)); c_20 = _e17; } let _e21 = O.decals.w; if (_e21 != 0u) { let _e24 = c_20; let _e26 = hedra_world; let _e30 = O.decals.w; let _e31 = fog_volumes(_e24, _e26, _e30); c_20 = _e31; } let _e32 = c_20; return _e32; } fn hedra_lit(clip: vec4) -> vec3 { var surf_1: DecalSurface; var c_21: vec3 = vec3(0f); var k_11: u32 = 0u; var local_29: bool; var radiance_3: vec3; var local_30: bool; var local_31: bool; var ambient_1: vec3 = vec3(0f); var local_32: bool; let n_geo_3 = hedra_n_geo; let _e4 = ALBEDO; let _e6 = METALLIC; let _e11 = ROUGHNESS; let _e16 = AO; let _e18 = hedra_n; let _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0f, 1f), clamp(_e11, 0.045f, 1f), _e16, _e18, _e20); let _e26 = O.decals.z; if (_e26 > 0u) { let _e30 = hedra_world; let _e31 = surf_1; let _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; let _e35 = surf_1.base; ALBEDO = _e35; let _e38 = surf_1.metallic; METALLIC = _e38; let _e41 = surf_1.roughness; ROUGHNESS = _e41; let _e45 = G.view; let _e46 = hedra_mat3_(_e45); let _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } let metallic_1 = surf_1.metallic; let roughness_4 = surf_1.roughness; let a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); let base = surf_1.base; let diffuse_3 = (base * (1f - metallic_1)); let _e64 = SPECULAR; let _e68 = SPECULAR; let f0_4 = mix(vec3(((0.16f * _e64) * _e68)), base, metallic_1); let n_13 = surf_1.normal; let _e75 = hedra_world; let _e76 = hedra_view_dir(_e75); let _e79 = G.view; let _e80 = hedra_mat3_(_e79); let _e82 = surf_1.occlusion; let _e84 = AO_LIGHT_AFFECT; let ao_direct = mix(1f, _e82, _e84); DIFFUSE_LIGHT = vec3(0f); SPECULAR_LIGHT = vec3(0f); let _e96 = object_light_count(); loop { let _e99 = k_11; if (_e99 < _e96) { } else { break; } { let _e101 = k_11; let _e102 = object_light(_e101); let li_2 = Lit.lights[_e102]; let _e108 = hedra_world; let _e109 = hedra_light_dir(_e102, _e108); let l_8 = _e109.xyz; let atten_2 = _e109.w; if HEDRA_HAS_LIGHT { if !((li_2.info.x == LIGHT_DIRECTIONAL)) { local_29 = (atten_2 > 0f); } else { local_29 = true; } let _e123 = local_29; if _e123 { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; let _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } let _e142 = RIM; if (_e142 > 0f) { let rim_light = pow(max(0.0001f, (1f - max(dot(n_13, _e76), 0.0001f))), max(0f, ((1f - roughness_4) * 16f))); let _e159 = c_21; let _e164 = RIM; let _e170 = RIM_TINT; c_21 = (_e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1f), base, _e170))); } if (atten_2 > 0f) { radiance_3 = (li_2.color.xyz * atten_2); if (li_2.info.y == LIGHT_SHADOWED) { local_30 = false; } else { local_30 = false; } let _e188 = local_30; if _e188 { let _e192 = hedra_world; let _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if true { local_31 = false; } else { local_31 = false; } let _e201 = local_31; if _e201 { let _e202 = c_21; let _e203 = radiance_3; let _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_21 = (_e202 + _e206); } else { let _e208 = c_21; let _e209 = radiance_3; let _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = (_e208 + _e212); } let _e215 = BACKLIGHT; if any((_e215 > vec3(0f))) { let nl_4 = max(min(dot(n_13, l_8), 1f), 0f); let _e225 = c_21; let _e226 = radiance_3; let _e229 = BACKLIGHT; c_21 = (_e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987f - (nl_4 * 0.31830987f)))); } } } continuing { let _e238 = k_11; k_11 = (_e238 + 1u); } } if HEDRA_HAS_LIGHT { let _e242 = DIFFUSE_LIGHT; let _e249 = SPECULAR_LIGHT; c_21 = ((((_e242 * base) * ao_direct) * (1f - metallic_1)) + (_e249 * ao_direct)); } else { let _e253 = AO_LIGHT_AFFECT; if (_e253 > 0f) { let _e256 = c_21; c_21 = (_e256 * ao_direct); } } if true { let _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } let _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { let _e273 = hedra_transparent(); local_32 = !(_e273); } else { local_32 = false; } let _e276 = local_32; if _e276 { let _e282 = textureLoad(t_ao, vec2(floor(clip.xy)), 0i); let ssao = _e282.x; let _e284 = c_21; let _e286 = surf_1.occlusion; let _e291 = Lit.tone.z; let _e295 = Lit.tone.w; c_21 = (_e284 * mix(1f, min(ssao, _e286), (_e291 * _e295))); let _e300 = c_21; let _e301 = ambient_1; let _e303 = surf_1.occlusion; c_21 = (_e300 + (_e301 * min(_e303, ssao))); } else { let _e307 = c_21; let _e308 = ambient_1; let _e310 = surf_1.occlusion; c_21 = (_e307 + (_e308 * _e310)); } let _e313 = c_21; let _e315 = surf_1.emission; c_21 = (_e313 + _e315); let _e317 = c_21; let _e318 = hedra_fog(_e317, _e76); let _e319 = tonemap(_e318); return _e319; } fn hedra_output(c_22: vec3) -> vec4 { var rgb: vec3; rgb = c_22; if false { let _e3 = rgb; let _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } let _e7 = rgb; let _e9 = ALPHA; let _e10 = hedra_transparent(); let o_9 = vec4(_e7, select(1f, _e9, _e10)); let _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return vec4(max(o_9.xyz, vec3(0f)), clamp(o_9.w, 0f, 1f)); } let k_17 = clamp(o_9, vec4(0f), vec4(1f)); let _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { let _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } fn hedra_bindings() -> vec3 { let uv_7 = vec2(0.5f); let _e5 = textureSampleLevel(t_panorama, s_panorama, uv_7, 0f); let _e11 = textureSampleLevel(t_lightmap, s_lightmap, uv_7, 0i, 0f); let _e17 = textureSampleLevel(t_screen, s_radiance, uv_7, 0f); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } @vertex fn vs_custom(in: VsIn, @location(10) uv1_: vec2, @builtin(vertex_index) vid: u32) -> CustomOut { let _e5 = O.model; let _e8 = O.normal; let _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, vec4(1f), vid); vertex(); let _e24 = hedra_tangent_sign(in.tangent.w, false); let _e25 = hedra_vertex_space(); if _e25 { let _e26 = hedra_vertex_world(); let _e28 = NORMAL; let _e29 = hedra_vertex_dir(_e28); let _e31 = TANGENT; let _e32 = hedra_vertex_dir(_e31); let _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags); return _e34; } let _e37 = O.model; let _e39 = VERTEX; let world_14 = (_e37 * vec4(_e39, 1f)); let _e45 = O.normal; let _e47 = NORMAL; let n_14 = (_e45 * vec4(_e47, 0f)).xyz; let _e54 = O.model; let _e56 = TANGENT; let t_10 = (_e54 * vec4(_e56, 0f)).xyz; let _e62 = hedra_end_vertex(world_14, n_14, t_10, _e24, in.flags); return _e62; } @vertex fn vs_custom_instanced(in_1: VsIn, inst: InstIn, @location(10) uv1_1: vec2, extra: HedraInstExtra, @builtin(vertex_index) vid_1: u32) -> CustomOut { let bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); let by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); let bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); let det = dot(bx, cross(by, bz)); let flip_1 = (det < 0f); let cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * select(1f, -1f, flip_1)); let basis = mat4x4(vec4(bx, 0f), vec4(by, 0f), vec4(bz, 0f), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1f)); let _e55 = O.model; let _e59 = O.normal; let _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); let flags_4 = (in_1.flags | select(0u, F_INSTANCE_MIRRORED, flip_1)); let _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); let _e80 = hedra_vertex_space(); if _e80 { let _e81 = hedra_vertex_world(); let _e83 = NORMAL; let _e84 = hedra_vertex_dir(_e83); let _e86 = TANGENT; let _e87 = hedra_vertex_dir(_e86); let _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); return _e88; } let _e90 = VERTEX; let p1_ = vec4(_e90, 1f); let local_33 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); let _e102 = O.model; let world_15 = (_e102 * vec4(local_33, 1f)); let _e108 = O.normal; let _e110 = NORMAL; let n_15 = (_e108 * vec4((cofactor * _e110), 0f)).xyz; let _e118 = O.model; let _e121 = TANGENT; let t_11 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0f)).xyz; let _e127 = hedra_end_vertex(world_15, n_15, t_11, _e79, flags_4); return _e127; } @vertex fn vs_custom_skinned(in_2: VsIn, s: SkinIn, @location(10) uv1_2: vec2, @builtin(vertex_index) vid_2: u32) -> CustomOut { let _e4 = skin_rows(s); let p_12 = vec4(in_2.pos, 1f); let skinned = vec3(dot(_e4.r0_, p_12), dot(_e4.r1_, p_12), dot(_e4.r2_, p_12)); let bx_1 = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); let by_1 = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); let bz_1 = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); let det_1 = dot(bx_1, cross(by_1, bz_1)); let flip_2 = (det_1 < 0f); let cofactor_1 = mat3x3(cross(by_1, bz_1), cross(bz_1, bx_1), cross(bx_1, by_1)); let n0_ = normalize(((cofactor_1 * in_2.normal) * select(1f, -1f, flip_2))); let t0_1 = normalize((mat3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz)); let _e58 = O.model; let _e61 = O.normal; let _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1f), vid_2); vertex(); let flags_5 = (in_2.flags | select(0u, F_INSTANCE_MIRRORED, flip_2)); let _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2); let _e82 = hedra_vertex_space(); if _e82 { let _e83 = hedra_vertex_world(); let _e85 = NORMAL; let _e86 = hedra_vertex_dir(_e85); let _e88 = TANGENT; let _e89 = hedra_vertex_dir(_e88); let _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5); return _e90; } let _e93 = O.model; let _e95 = VERTEX; let world_16 = (_e93 * vec4(_e95, 1f)); let _e101 = O.normal; let _e103 = NORMAL; let n_16 = (_e101 * vec4(_e103, 0f)).xyz; let _e110 = O.model; let _e112 = TANGENT; let t_12 = (_e110 * vec4(_e112, 0f)).xyz; let _e117 = hedra_end_vertex(world_16, n_16, t_12, _e81, flags_5); return _e117; } @fragment fn fs_custom(in_3: CustomOut, @builtin(front_facing) facing: bool) -> @location(0) vec4 { var c: vec3; hedra_fragment(in_3, facing); let _e3 = hedra_culled(in_3.flags); if _e3 { discard; } let _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if (_e7 <= 0f) { discard; } if HEDRA_UNSHADED { let _e13 = ALBEDO; let _e15 = hedra_world; let _e16 = hedra_view_dir(_e15); let _e17 = hedra_fog(_e13, _e16); let _e18 = tonemap(_e17); c = _e18; } else { let _e20 = hedra_lit(in_3.clip); c = _e20; } let _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { let _e27 = c; let _e28 = hedra_bindings(); c = (_e27 + _e28); } let _e33 = G.params.x; if (_e33 == SHADE_LIT) { let _e36 = c; let _e37 = item_fade(_e36); let _e38 = emerge_tint(_e37, _e7); c = _e38; } let _e39 = c; let _e40 = hedra_output(_e39); return _e40; } @fragment fn fs_custom_depth(in_4: CustomOut, @builtin(front_facing) facing_1: bool) { var local: bool; var local_1: bool; hedra_fragment(in_4, facing_1); if !(((in_4.flags & F_HIDDEN) != 0u)) { if HEDRA_ALPHA_SCISSOR { let _e14 = ALPHA; let _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } let _e19 = local_1; local = _e19; } else { local = true; } let _e21 = local; if _e21 { discard; } let _e25 = emerge_reveal(in_4.world, vec2(-1f)); if (_e25 <= 0f) { discard; } else { return; } } @fragment fn fs_custom_id(in_5: CustomOut, @builtin(front_facing) facing_2: bool) -> IdOut { var local_2: bool; var out: IdOut; hedra_fragment(in_5, facing_2); let _e3 = hedra_culled(in_5.flags); if !(_e3) { let _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0f); } else { local_2 = true; } let _e14 = local_2; if _e14 { discard; } let id = O.params.z; let _e24 = O.params.x; let _e33 = O.params.y; let bits = (select(0u, 1u, (_e24 == 1u)) | select(0u, 2u, (_e33 == 1u))); out.id = (vec4(f32((id & 255u)), f32(((id >> 8u) & 255u)), f32(((id >> 16u) & 255u)), f32(bits)) / vec4(255f)); let _e58 = out; return _e58; } @fragment fn fs_custom_normal_depth(in_6: CustomOut, @builtin(front_facing) facing_3: bool) -> HedraNormalDepthOut { var local_3: bool; var out_1: HedraNormalDepthOut; hedra_fragment(in_6, facing_3); let _e3 = hedra_culled(in_6.flags); if !(_e3) { let _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0f); } else { local_3 = true; } let _e14 = local_3; if _e14 { discard; } let _e17 = G.view; let _e18 = hedra_mat3_(_e17); let _e20 = hedra_n; let n_view = normalize((_e18 * _e20)); let _e24 = METALLIC; let metallic_2 = clamp(_e24, 0f, 1f); let _e29 = SPECULAR; let _e33 = SPECULAR; let _e37 = ALBEDO; let f0_5 = mix(vec3(((0.16f * _e29) * _e33)), _e37, metallic_2); let _e43 = G.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1f)).z)); let _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_5, vec3(0f), vec3(1f)), clamp(_e58, 0.045f, 1f)); let _e63 = out_1; return _e63; }  @Ð Ð/ ,@ 0˜J£&ѰA¬ËÎ-”ÒÑ'19dKhô_7hh'· vs_custommaingˆ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0_; float hedra_pad1_; vec3 tint; float alpha_cut; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_2Vertex { HedraParams _group_2_binding_0_vs; }; vec2 frame_uv = vec2(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec2 _e3 = frame_uv; o_4.hedra_v0_ = vec4(_e3, 0.0, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { frame_uv = i_10.hedra_v0_.xy; return; } void light() { return; } void vertex() { vec4 view_pos = vec4(0.0); bool local_20 = false; vec4 _e2 = MODEL_MATRIX[0]; float scale = length(_e2.xyz); mat4x4 _e6 = MODELVIEW_MATRIX; view_pos = (_e6 * vec4(0.0, 0.0, 0.0, 1.0)); vec4 _e14 = view_pos; vec3 _e17 = VERTEX; view_pos = vec4((_e14.xyz + vec3((_e17.xy * scale), 0.0)), 1.0); mat4x4 _e27 = _group_0_binding_0_vs.proj; vec4 _e28 = view_pos; vec4 clip_1 = (_e27 * _e28); float _e33 = _group_2_binding_0_vs.snap_resolution.x; if ((_e33 > 0.0)) { local_20 = (clip_1.w > 0.0001); } else { local_20 = false; } bool _e42 = local_20; if (_e42) { vec2 _e45 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e45 * 0.5); vec2 snapped = (roundEven(((clip_1.xy / vec2(clip_1.w)) * half_res)) / half_res); mat4x4 _e56 = INV_PROJECTION_MATRIX; vec4 back = (_e56 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); view_pos = vec4((back.xyz / vec3(back.w)), 1.0); } vec4 _e70 = view_pos; VERTEX = _e70.xyz; NORMAL = vec3(0.0, 0.0, 1.0); float _e79 = _group_2_binding_0_vs.frames_x; float _e82 = _group_2_binding_0_vs.frames_y; float count = max((_e79 * _e82), 1.0); float _e88 = COLOR.w; float frame = min(floor(((1.0 - clamp(_e88, 0.0, 1.0)) * count)), (count - 1.0)); float _e101 = _group_2_binding_0_vs.frames_x; float _e105 = _group_2_binding_0_vs.frames_x; vec2 cell = vec2((frame - _e101 * trunc(frame / _e101)), floor((frame / _e105))); vec2 _e111 = UV; float _e115 = _group_2_binding_0_vs.frames_x; float _e118 = _group_2_binding_0_vs.frames_y; frame_uv = ((cell + _e111) / vec2(_e115, _e118)); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = false; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_23 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_23 = false; } else { local_23 = false; } bool _e31 = local_23; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); vec2 uv1_ = _p2vs_location10; uint vid = uint(gl_VertexID); mat4x4 _e5 = _group_1_binding_0_vs.model; mat4x4 _e8 = _group_1_binding_0_vs.normal; mat3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(in_.pos, in_.normal, in_.tangent, in_.uv, uv1_, vec4(1.0), vid); vertex(); float _e24 = hedra_tangent_sign(in_.tangent.w, false); bool _e25 = hedra_vertex_space(); if (_e25) { vec4 _e26 = hedra_vertex_world(); vec3 _e28 = NORMAL; vec3 _e29 = hedra_vertex_dir(_e28); vec3 _e31 = TANGENT; vec3 _e32 = hedra_vertex_dir(_e31); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in_.flags); gl_Position = _e34.clip; _vs2fs_location0 = _e34.world; _vs2fs_location1 = _e34.normal; _vs2fs_location2 = _e34.uv; _vs2fs_location3 = _e34.flags; _vs2fs_location4 = _e34.tangent; _vs2fs_location5 = _e34.color; _vs2fs_location6 = _e34.uv2_; _vs2fs_location7 = _e34.instance_id; _vs2fs_location8 = _e34.hedra_v0_; _vs2fs_location9 = _e34.hedra_v1_; _vs2fs_location10 = _e34.hedra_v2_; _vs2fs_location11 = _e34.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e37 = _group_1_binding_0_vs.model; vec3 _e39 = VERTEX; vec4 world_13 = (_e37 * vec4(_e39, 1.0)); mat4x4 _e45 = _group_1_binding_0_vs.normal; vec3 _e47 = NORMAL; vec3 n_11 = (_e45 * vec4(_e47, 0.0)).xyz; mat4x4 _e54 = _group_1_binding_0_vs.model; vec3 _e56 = TANGENT; vec3 t_5 = (_e54 * vec4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_13, n_11, t_5, _e24, in_.flags); gl_Position = _e62.clip; _vs2fs_location0 = _e62.world; _vs2fs_location1 = _e62.normal; _vs2fs_location2 = _e62.uv; _vs2fs_location3 = _e62.flags; _vs2fs_location4 = _e62.tangent; _vs2fs_location5 = _e62.color; _vs2fs_location6 = _e62.uv2_; _vs2fs_location7 = _e62.instance_id; _vs2fs_location8 = _e62.hedra_v0_; _vs2fs_location9 = _e62.hedra_v1_; _vs2fs_location10 = _e62.hedra_v2_; _vs2fs_location11 = _e62.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_instancedmainI�#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0_; float hedra_pad1_; vec3 tint; float alpha_cut; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_2Vertex { HedraParams _group_2_binding_0_vs; }; vec2 frame_uv = vec2(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec2 _p2vs_location10; layout(location = 14) in vec4 _p2vs_location14; layout(location = 15) in float _p2vs_location15; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec2 _e3 = frame_uv; o_4.hedra_v0_ = vec4(_e3, 0.0, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { frame_uv = i_10.hedra_v0_.xy; return; } void light() { return; } void vertex() { vec4 view_pos = vec4(0.0); bool local_20 = false; vec4 _e2 = MODEL_MATRIX[0]; float scale = length(_e2.xyz); mat4x4 _e6 = MODELVIEW_MATRIX; view_pos = (_e6 * vec4(0.0, 0.0, 0.0, 1.0)); vec4 _e14 = view_pos; vec3 _e17 = VERTEX; view_pos = vec4((_e14.xyz + vec3((_e17.xy * scale), 0.0)), 1.0); mat4x4 _e27 = _group_0_binding_0_vs.proj; vec4 _e28 = view_pos; vec4 clip_1 = (_e27 * _e28); float _e33 = _group_2_binding_0_vs.snap_resolution.x; if ((_e33 > 0.0)) { local_20 = (clip_1.w > 0.0001); } else { local_20 = false; } bool _e42 = local_20; if (_e42) { vec2 _e45 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e45 * 0.5); vec2 snapped = (roundEven(((clip_1.xy / vec2(clip_1.w)) * half_res)) / half_res); mat4x4 _e56 = INV_PROJECTION_MATRIX; vec4 back = (_e56 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); view_pos = vec4((back.xyz / vec3(back.w)), 1.0); } vec4 _e70 = view_pos; VERTEX = _e70.xyz; NORMAL = vec3(0.0, 0.0, 1.0); float _e79 = _group_2_binding_0_vs.frames_x; float _e82 = _group_2_binding_0_vs.frames_y; float count = max((_e79 * _e82), 1.0); float _e88 = COLOR.w; float frame = min(floor(((1.0 - clamp(_e88, 0.0, 1.0)) * count)), (count - 1.0)); float _e101 = _group_2_binding_0_vs.frames_x; float _e105 = _group_2_binding_0_vs.frames_x; vec2 cell = vec2((frame - _e101 * trunc(frame / _e101)), floor((frame / _e105))); vec2 _e111 = UV; float _e115 = _group_2_binding_0_vs.frames_x; float _e118 = _group_2_binding_0_vs.frames_y; frame_uv = ((cell + _e111) / vec2(_e115, _e118)); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = false; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_23 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_23 = false; } else { local_23 = false; } bool _e31 = local_23; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_1 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); InstIn inst = InstIn(_p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9); vec2 uv1_1 = _p2vs_location10; HedraInstExtra extra = HedraInstExtra(_p2vs_location14, _p2vs_location15); uint vid_1 = uint(gl_VertexID); vec3 bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); vec3 by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); vec3 bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * (flip_1 ? -1.0 : 1.0)); mat4x4 basis = mat4x4(vec4(bx, 0.0), vec4(by, 0.0), vec4(bz, 0.0), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); mat4x4 _e55 = _group_1_binding_0_vs.model; mat4x4 _e59 = _group_1_binding_0_vs.normal; mat3x3 _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = int(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); uint flags_4 = (in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); bool _e80 = hedra_vertex_space(); if (_e80) { vec4 _e81 = hedra_vertex_world(); vec3 _e83 = NORMAL; vec3 _e84 = hedra_vertex_dir(_e83); vec3 _e86 = TANGENT; vec3 _e87 = hedra_vertex_dir(_e86); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); gl_Position = _e88.clip; _vs2fs_location0 = _e88.world; _vs2fs_location1 = _e88.normal; _vs2fs_location2 = _e88.uv; _vs2fs_location3 = _e88.flags; _vs2fs_location4 = _e88.tangent; _vs2fs_location5 = _e88.color; _vs2fs_location6 = _e88.uv2_; _vs2fs_location7 = _e88.instance_id; _vs2fs_location8 = _e88.hedra_v0_; _vs2fs_location9 = _e88.hedra_v1_; _vs2fs_location10 = _e88.hedra_v2_; _vs2fs_location11 = _e88.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vec3 _e90 = VERTEX; vec4 p1_ = vec4(_e90, 1.0); vec3 local_33 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); mat4x4 _e102 = _group_1_binding_0_vs.model; vec4 world_13 = (_e102 * vec4(local_33, 1.0)); mat4x4 _e108 = _group_1_binding_0_vs.normal; vec3 _e110 = NORMAL; vec3 n_11 = (_e108 * vec4((cofactor * _e110), 0.0)).xyz; mat4x4 _e118 = _group_1_binding_0_vs.model; vec3 _e121 = TANGENT; vec3 t_5 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_13, n_11, t_5, _e79, flags_4); gl_Position = _e127.clip; _vs2fs_location0 = _e127.world; _vs2fs_location1 = _e127.normal; _vs2fs_location2 = _e127.uv; _vs2fs_location3 = _e127.flags; _vs2fs_location4 = _e127.tangent; _vs2fs_location5 = _e127.color; _vs2fs_location6 = _e127.uv2_; _vs2fs_location7 = _e127.instance_id; _vs2fs_location8 = _e127.hedra_v0_; _vs2fs_location9 = _e127.hedra_v1_; _vs2fs_location10 = _e127.hedra_v2_; _vs2fs_location11 = _e127.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_skinnedmain �#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0_; float hedra_pad1_; vec3 tint; float alpha_cut; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(std140) uniform SkinU_block_2Vertex { SkinU _group_1_binding_1_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_3Vertex { HedraParams _group_2_binding_0_vs; }; vec2 frame_uv = vec2(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 12) in uvec4 _p2vs_location12; layout(location = 13) in vec4 _p2vs_location13; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } vec4 skin_row(uint k_10, uint r_3) { vec4 _e10 = _group_1_binding_1_vs.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } SkinRows skin_rows(SkinIn s_1) { SkinRows m_1 = SkinRows(vec4(0.0), vec4(0.0), vec4(0.0)); uvec4 j = s_1.joints; vec4 w_3 = s_1.weights; vec4 _e8 = skin_row(j.x, 0u); vec4 _e13 = skin_row(j.y, 0u); vec4 _e19 = skin_row(j.z, 0u); vec4 _e25 = skin_row(j.w, 0u); m_1.r0_ = ((((w_3.x * _e8) + (w_3.y * _e13)) + (w_3.z * _e19)) + (w_3.w * _e25)); vec4 _e32 = skin_row(j.x, 1u); vec4 _e37 = skin_row(j.y, 1u); vec4 _e43 = skin_row(j.z, 1u); vec4 _e49 = skin_row(j.w, 1u); m_1.r1_ = ((((w_3.x * _e32) + (w_3.y * _e37)) + (w_3.z * _e43)) + (w_3.w * _e49)); vec4 _e56 = skin_row(j.x, 2u); vec4 _e61 = skin_row(j.y, 2u); vec4 _e67 = skin_row(j.z, 2u); vec4 _e73 = skin_row(j.w, 2u); m_1.r2_ = ((((w_3.x * _e56) + (w_3.y * _e61)) + (w_3.z * _e67)) + (w_3.w * _e73)); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings(inout CustomOut o_4) { vec2 _e3 = frame_uv; o_4.hedra_v0_ = vec4(_e3, 0.0, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { frame_uv = i_10.hedra_v0_.xy; return; } void light() { return; } void vertex() { vec4 view_pos = vec4(0.0); bool local_20 = false; vec4 _e2 = MODEL_MATRIX[0]; float scale = length(_e2.xyz); mat4x4 _e6 = MODELVIEW_MATRIX; view_pos = (_e6 * vec4(0.0, 0.0, 0.0, 1.0)); vec4 _e14 = view_pos; vec3 _e17 = VERTEX; view_pos = vec4((_e14.xyz + vec3((_e17.xy * scale), 0.0)), 1.0); mat4x4 _e27 = _group_0_binding_0_vs.proj; vec4 _e28 = view_pos; vec4 clip_1 = (_e27 * _e28); float _e33 = _group_2_binding_0_vs.snap_resolution.x; if ((_e33 > 0.0)) { local_20 = (clip_1.w > 0.0001); } else { local_20 = false; } bool _e42 = local_20; if (_e42) { vec2 _e45 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e45 * 0.5); vec2 snapped = (roundEven(((clip_1.xy / vec2(clip_1.w)) * half_res)) / half_res); mat4x4 _e56 = INV_PROJECTION_MATRIX; vec4 back = (_e56 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); view_pos = vec4((back.xyz / vec3(back.w)), 1.0); } vec4 _e70 = view_pos; VERTEX = _e70.xyz; NORMAL = vec3(0.0, 0.0, 1.0); float _e79 = _group_2_binding_0_vs.frames_x; float _e82 = _group_2_binding_0_vs.frames_y; float count = max((_e79 * _e82), 1.0); float _e88 = COLOR.w; float frame = min(floor(((1.0 - clamp(_e88, 0.0, 1.0)) * count)), (count - 1.0)); float _e101 = _group_2_binding_0_vs.frames_x; float _e105 = _group_2_binding_0_vs.frames_x; vec2 cell = vec2((frame - _e101 * trunc(frame / _e101)), floor((frame / _e105))); vec2 _e111 = UV; float _e115 = _group_2_binding_0_vs.frames_x; float _e118 = _group_2_binding_0_vs.frames_y; frame_uv = ((cell + _e111) / vec2(_e115, _e118)); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = false; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_23 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_23 = false; } else { local_23 = false; } bool _e31 = local_23; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_2 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); SkinIn s = SkinIn(_p2vs_location12, _p2vs_location13); vec2 uv1_2 = _p2vs_location10; uint vid_2 = uint(gl_VertexID); SkinRows _e4 = skin_rows(s); vec4 p_8 = vec4(in_2.pos, 1.0); vec3 skinned = vec3(dot(_e4.r0_, p_8), dot(_e4.r1_, p_8), dot(_e4.r2_, p_8)); vec3 bx = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); vec3 by = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); vec3 bz = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n0_ = normalize(((cofactor * in_2.normal) * (flip_1 ? -1.0 : 1.0))); vec3 t0_1 = normalize((mat3x3(bx, by, bz) * in_2.tangent.xyz)); mat4x4 _e58 = _group_1_binding_0_vs.model; mat4x4 _e61 = _group_1_binding_0_vs.normal; mat3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1.0), vid_2); vertex(); uint flags_4 = (in_2.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_1); bool _e82 = hedra_vertex_space(); if (_e82) { vec4 _e83 = hedra_vertex_world(); vec3 _e85 = NORMAL; vec3 _e86 = hedra_vertex_dir(_e85); vec3 _e88 = TANGENT; vec3 _e89 = hedra_vertex_dir(_e88); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_4); gl_Position = _e90.clip; _vs2fs_location0 = _e90.world; _vs2fs_location1 = _e90.normal; _vs2fs_location2 = _e90.uv; _vs2fs_location3 = _e90.flags; _vs2fs_location4 = _e90.tangent; _vs2fs_location5 = _e90.color; _vs2fs_location6 = _e90.uv2_; _vs2fs_location7 = _e90.instance_id; _vs2fs_location8 = _e90.hedra_v0_; _vs2fs_location9 = _e90.hedra_v1_; _vs2fs_location10 = _e90.hedra_v2_; _vs2fs_location11 = _e90.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e93 = _group_1_binding_0_vs.model; vec3 _e95 = VERTEX; vec4 world_13 = (_e93 * vec4(_e95, 1.0)); mat4x4 _e101 = _group_1_binding_0_vs.normal; vec3 _e103 = NORMAL; vec3 n_11 = (_e101 * vec4(_e103, 0.0)).xyz; mat4x4 _e110 = _group_1_binding_0_vs.model; vec3 _e112 = TANGENT; vec3 t_5 = (_e110 * vec4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_13, n_11, t_5, _e81, flags_4); gl_Position = _e117.clip; _vs2fs_location0 = _e117.world; _vs2fs_location1 = _e117.normal; _vs2fs_location2 = _e117.uv; _vs2fs_location3 = _e117.flags; _vs2fs_location4 = _e117.tangent; _vs2fs_location5 = _e117.color; _vs2fs_location6 = _e117.uv2_; _vs2fs_location7 = _e117.instance_id; _vs2fs_location8 = _e117.hedra_v0_; _vs2fs_location9 = _e117.hedra_v1_; _vs2fs_location10 = _e117.hedra_v2_; _vs2fs_location11 = _e117.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_custommain¸w#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0_; float hedra_pad1_; vec3 tint; float alpha_cut; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform LitU_block_2Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform ShadowU_block_3Fragment { ShadowU _group_0_binding_2_fs; }; uniform highp sampler2DShadow _group_0_binding_3_fs; layout(std140) uniform SkyU_block_4Fragment { SkyU _group_0_binding_5_fs; }; uniform highp samplerCube _group_3_binding_0_fs; uniform highp sampler2D _group_3_binding_1_fs; uniform highp sampler2D _group_0_binding_6_fs; uniform highp sampler2DArray _group_3_binding_4_fs; layout(std140) uniform ProbeU_block_5Fragment { ProbeU _group_0_binding_7_fs; }; uniform highp sampler2D _group_3_binding_6_fs; layout(std140) uniform DecalU_block_6Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; layout(std140) uniform FogU_block_7Fragment { FogU _group_1_binding_5_fs; }; uniform highp sampler2D _group_1_binding_6_fs; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); float SPECULAR_AMOUNT = 0.0; vec3 LIGHT = vec3(0.0); vec3 LIGHT_COLOR = vec3(0.0); bool LIGHT_IS_DIRECTIONAL = false; float ATTENUATION = 0.0; vec3 DIFFUSE_LIGHT = vec3(0.0); vec3 SPECULAR_LIGHT = vec3(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_8Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec2 frame_uv = vec2(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word_1 = ((k_1 < 4u) ? _e8 : _e4); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_2 = ((k_2 < 4u) ? _e8 : _e4); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local_6 = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_2 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_2.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local_6 = all(lessThanEqual(uvw, vec3(1.0))); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y)); if ((e_2.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1.0, ((dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1); uint live_1 = e_2.flags.x; if ((e_2.layers.x > 0u)) { vec4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_2.modulate); float _e90 = fade; float alpha = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if ((e_2.layers.y > 0u)) { vec4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if ((e_2.layers.z > 0u)) { vec4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if ((e_2.layers.w > 0u)) { vec4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_3 <= 1.5707964)) { float c_23 = (1.0 - (a_3 / 1.5707964)); float k_13 = clamp((1.0 - pow(max((1.0 - c_23), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } float c_24 = ((a_3 - 1.5707964) / 1.5707964); float k_14 = clamp((1.0 - pow(max((1.0 - c_24), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_25 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_25) + c_25) / ((c_25 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_25); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_25, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_25); return _e36; } return c_25; } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_3 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_3 * 1.8) - _e60) / EMERGE_EDGE); } vec3 emerge_tint(vec3 c_6, float r) { bool local_7 = false; uint _e6 = _group_1_binding_0_fs.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = (r >= 1.0); } else { local_7 = true; } bool _e17 = local_7; if ((SPEC_EMERGE ? _e17 : true)) { return c_6; } uint _e23 = _group_1_binding_0_fs.extra.w; vec3 _e26 = srgb_to_linear((vec4(_e23 & 0xFFu, _e23 >> 8 & 0xFFu, _e23 >> 16 & 0xFFu, _e23 >> 24) / 255.0).xyz); vec3 _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0.0, 1.0, r)); } vec3 item_fade(vec3 c_7) { uint _e5 = _group_1_binding_0_fs.extra.x; if ((SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true)) { return c_7; } vec4 f_1 = _group_1_binding_0_fs.normal[3]; vec3 _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec3 procedural_sky(vec3 d_1) { vec3 sky_1 = vec3(0.0); uint i = 0u; float v_6 = acos(clamp(d_1.y, -1.0, 1.0)); vec4 _e8 = _group_0_binding_5_fs.sky_horizon; vec4 _e12 = _group_0_binding_5_fs.sky_top; float _e21 = _group_0_binding_5_fs.sky_top.w; float _e22 = sky_curve((1.0 - (v_6 / 1.5707964)), _e21); float _e27 = _group_0_binding_5_fs.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); uint _e33 = _group_0_binding_5_fs.flags.z; uint suns = min(_e33, SKY_SUNS); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e79 = i; i = (_e79 + 1u); } loop_init_1 = false; uint _e38 = i; if ((_e38 < suns)) { } else { break; } { uint _e42 = i; SunU sun = _group_0_binding_5_fs.suns[_e42]; float size = sun.direction.w; float a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1.0, 1.0)); if ((a_5 < size)) { sky_1 = sun.color.xyz; } else { float _e60 = _group_0_binding_5_fs.sun.x; if ((a_5 < _e60)) { float _e66 = _group_0_binding_5_fs.sun.x; float c2_ = ((a_5 - size) / (_e66 - size)); vec3 _e71 = sky_1; float _e75 = _group_0_binding_5_fs.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } } vec4 _e83 = _group_0_binding_5_fs.ground_horizon; vec4 _e87 = _group_0_binding_5_fs.ground_bottom; float _e96 = _group_0_binding_5_fs.ground_bottom.w; float _e97 = sky_curve(((v_6 - 1.5707964) / 1.5707964), _e96); float _e102 = _group_0_binding_5_fs.ground_horizon.w; vec3 ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); vec3 _e104 = sky_1; float _e112 = _group_0_binding_5_fs.sun.z; return (((d_1.y >= 0.0) ? _e104 : ground) * _e112); } vec3 sh_irradiance(vec3 n_2) { vec3 c_9 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_9 = (_e4.xyz * 0.282095); vec3 _e9 = c_9; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603 * n_2.y))); vec3 _e20 = c_9; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603 * n_2.z))); vec3 _e31 = c_9; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603 * n_2.x))); vec3 _e42 = c_9; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y))); vec3 _e55 = c_9; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z))); vec3 _e68 = c_9; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0)))); vec3 _e85 = c_9; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z))); vec3 _e98 = c_9; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); vec3 _e115 = c_9; return max(_e115, vec3(0.0)); } vec3 radiance_1(vec3 d_3, float roughness) { uint _e5 = _group_0_binding_5_fs.flags.y; float top_1 = float((max(_e5, 1u) - 1u)); vec4 _e14 = textureLod(_group_3_binding_0_fs, vec3(d_3), (roughness * top_1)); return _e14.xyz; } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_10 = vec3(0.0); uint k_4 = 0u; c_10 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_2 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_10; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_10; return _e53; } vec3 sky_fog(vec3 c_11, vec3 dir_2) { vec4 _e4 = _group_0_binding_5_fs.fog_color; float _e9 = _group_0_binding_5_fs.fog_depth.w; vec3 _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); float _e15 = _group_0_binding_5_fs.fog.y; return mix(c_11, _e11, _e15); } vec3 surface_fog(vec3 c_12, vec3 world_3, vec3 dir_3) { float dist = 0.0; float amount = 0.0; vec3 fc_1 = vec3(0.0); bool local_8 = false; mat4x4 _e5 = _group_0_binding_0_fs.view; float depth = -((_e5 * vec4(world_3, 1.0)).z); vec4 _e13 = _group_0_binding_0_fs.camera_pos; dist = distance(world_3, _e13.xyz); float _e20 = _group_0_binding_5_fs.fog_origin.w; if ((_e20 > 0.5)) { float _e26 = _group_0_binding_5_fs.fog_origin.x; dist = max((depth - _e26), 0.0); } uint _e34 = _group_0_binding_5_fs.flags.x; if (((_e34 & SKY_FOG_DEPTH) != 0u)) { float _e42 = _group_0_binding_5_fs.fog_depth.x; float _e46 = _group_0_binding_5_fs.fog_depth.y; float _e47 = dist; float z = smoothstep(_e42, _e46, _e47); float _e54 = _group_0_binding_5_fs.fog_depth.z; float _e63 = _group_0_binding_5_fs.fog.x; amount = (((z > 0.0) ? pow(max(z, 1e-6), _e54) : 0.0) * _e63); } else { float _e65 = dist; float _e70 = _group_0_binding_5_fs.fog.x; amount = (1.0 - exp(min(0.0, (-(_e65) * _e70)))); } float _e80 = _group_0_binding_5_fs.fog.w; if ((abs(_e80) >= 0.0001)) { vec4 _e86 = _group_0_binding_1_fs.up; float y = dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = _group_0_binding_5_fs.fog.z; float _e98 = _group_0_binding_5_fs.fog.w; amount = max(_e89, (1.0 - exp(min(0.0, ((y - _e93) * _e98))))); } float _e106 = amount; amount = clamp(_e106, 0.0, 1.0); vec4 _e112 = _group_0_binding_5_fs.fog_color; fc_1 = _e112.xyz; uint _e119 = _group_0_binding_5_fs.flags.x; if (((_e119 & SKY_IBL) != 0u)) { float _e129 = _group_0_binding_5_fs.fog_depth.w; local_8 = (_e129 > 0.0); } else { local_8 = false; } bool _e133 = local_8; if ((SPEC_AMBIENT_SKY ? _e133 : false)) { float _e139 = _group_0_binding_5_fs.fog_origin.y; float _e144 = _group_0_binding_5_fs.fog_origin.z; float _e148 = _group_0_binding_5_fs.fog_origin.y; float t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 1e-6)), 0.0, 1.0); uint _e159 = _group_0_binding_5_fs.flags.y; float top_2 = float((max(_e159, 2u) - 1u)); float rough = mix((1.0 / top_2), 1.0, (1.0 - t_3)); vec3 _e171 = fc_1; vec3 _e172 = sky_dir(dir_3); vec3 _e173 = radiance_1(_e172, rough); float _e177 = _group_0_binding_5_fs.sun.w; float _e182 = _group_0_binding_5_fs.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } vec3 _e184 = fc_1; vec3 _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; vec3 _e186 = fc_1; float _e187 = amount; return mix(c_12, _e186, _e187); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_4, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h_1 = (_e26.xyz * 0.5); vec3 dd = mix(d_4, vec3(1e-12), lessThan(abs(d_4), vec3(1e-12))); vec3 sa = ((-(h_1) - o) / dd); vec3 sb = ((h_1 - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1.0); } else { float rad = min(h_1.x, h_1.z); float k_15 = ((shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0); float w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_3, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_4 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1.0)); if ((e_4.material.z > 0.0)) { uint shape_1 = uint(e_4.albedo.w); vec3 h_2 = (e_4.size.xyz * 0.5); float rad_1 = min(h_2.x, h_2.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_2 * h_2))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_11 = normalize(vec2((1.0 / max(0.001, (rad_1 * 0.5))), (1.0 / max(0.001, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_4.size.w), 0.0, 1.0), e_4.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_4 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_4.y; if (((hf * b_1) == 0.0)) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_2 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_2 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_2); float x_3 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_3 < 0.01) ? (1.0 - (x_3 * (0.5 - (x_3 * (0.16666667 - (x_3 / 24.0)))))) : ((1.0 - exp(-(x_3))) / x_3)); float top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 fog_light(uint n_3, vec3 p_4, vec3 dir_4) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l_1 = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_3].lights; bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_3 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l_1; float rim = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim, li.spot.y))); } } vec3 _e108 = l_1; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_4, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_6, vec2 ch) { float split = 0.0; bool local_9 = false; bool local_10 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = false; bool local_12 = false; FogEntryU e_5 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_5.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_5.to_local * vec4(d_6, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_6, _e28.xyz); bool edge = (e_5.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_5.material.y > 0.0)) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = (-(a_6) / b_3); } bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e160 = i_1; i_1 = (_e160 + 1u); } loop_init_4 = false; uint _e70 = i_1; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i_1; uint j = (_e75 & 3u); if (!((j == 0u))) { local_11 = (j == 3u); } else { local_11 = true; } bool _e88 = local_11; float x_4 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_12 = (j == 3u); } else { local_12 = true; } bool _e100 = local_12; float w_4 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_4 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_4) : x_4))); vec3 p_8 = (o_1 + (d_6 * t_4)); float _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_4))); uint _e137 = i_1; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_14, vec3 o_2, vec3 d_7, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_2 = 0u; bool local_13 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_3 = 0u; uint n_4 = 0u; float avail = 0.0; uint i_4 = 0u; uint i_5 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e72 = i_2; i_2 = (_e72 + 1u); } loop_init_5 = false; uint _e13 = i_2; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_2; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_13 = (byte == 0u); } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_16].to_local; vec2 _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_7, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_16; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e90 = i_3; i_3 = (_e90 + 1u); } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at[_e82]; uint _e85 = i_3; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } } bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e221 = n_4; n_4 = (_e221 + 1u); } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_4; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_4 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e153 = i_4; i_4 = (_e153 + 1u); } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_4; float _e113 = chords[_e110].y; uint _e114 = n_4; float _e117 = chords[_e114].y; uint _e119 = i_4; float _e122 = chords[_e119].x; uint _e123 = n_4; float _e126 = chords[_e123].x; uint _e131 = i_4; float _e134 = chords[_e131].y; uint _e135 = i_4; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_4; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_4; float _e158 = parts[_e155].w; float _e160 = avail; float f_2 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_5 = 0u; bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e218 = i_5; i_5 = (_e218 + 1u); } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_5; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_5; float _e180 = chords[_e177].y; uint _e181 = n_4; float _e184 = chords[_e181].y; uint _e186 = i_5; float _e189 = chords[_e186].x; uint _e190 = n_4; float _e193 = chords[_e190].x; uint _e198 = i_5; float _e201 = chords[_e198].y; uint _e202 = i_5; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_5; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_2))); } } } } } } bool loop_init_10 = true; while(true) { if (!loop_init_10) { uint _e252 = i_6; i_6 = (_e252 + 1u); } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_6; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_6; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_5 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_14 * t_5) + (_e258 * ((1.0 - t_5) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_15, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_6 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_6)); vec3 _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_15); } vec3 sky_fog_volumes(vec3 c_16, vec3 near_point, vec3 dir_5) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back_1 = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (near_point - (back_1 * (_e26 * vec4(near_point, 1.0)).z)) : _e22.xyz); uint _e44 = _group_1_binding_5_fs.counts.y; vec3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); float _e49 = _group_1_binding_5_fs.params.z; return mix(c_16, _e45, _e49); } float shadow_factor(uint i_7, vec3 world_5, vec3 n_geo_1, vec3 l_2) { uint part = 0u; uint c_17 = 0u; bool local_14 = false; bool local_15 = false; bool local_16 = false; float vis = 0.0; int dy = -1; int dx = 0; uint kind = _group_0_binding_1_fs.lights[i_7].info.x; vec4 _e14 = _group_0_binding_1_fs.lights[i_7].position; vec3 light_pos = _e14.xyz; uint _e21 = _group_0_binding_1_fs.lights[i_7].info.w; uint slot = min(_e21, 15u); vec4 params = _group_0_binding_2_fs.lights[slot].params; uint first = _group_0_binding_2_fs.lights[slot].info.x; uint _e40 = _group_0_binding_2_fs.lights[slot].info.y; uint count = max(_e40, 1u); mat4x4 _e45 = _group_0_binding_0_fs.view; float view_depth = -((_e45 * vec4(world_5, 1.0)).z); if ((kind == LIGHT_DIRECTIONAL)) { float _e60 = _group_0_binding_2_fs.lights[slot].fade.y; if ((view_depth > _e60)) { return 1.0; } part = (count - 1u); bool loop_init_11 = true; while(true) { if (!loop_init_11) { uint _e79 = c_17; c_17 = (_e79 + 1u); } loop_init_11 = false; uint _e67 = c_17; if ((_e67 < count)) { } else { break; } { uint _e73 = c_17; float _e75 = _group_0_binding_2_fs.lights[slot].splits[_e73]; if ((view_depth <= _e75)) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; vec4 texel = _group_0_binding_2_fs.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; float t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); vec3 p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1.0)) * t_6))) + (l_2 * (params.x * t_6))); if ((kind == LIGHT_OMNI)) { vec3 d_13 = (p_9 - light_pos); vec3 a_7 = abs(d_13); if ((a_7.x >= a_7.y)) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = ((d_13.x >= 0.0) ? 0u : 1u); } else { if ((a_7.y >= a_7.z)) { part = ((d_13.y >= 0.0) ? 2u : 3u); } else { part = ((d_13.z >= 0.0) ? 4u : 5u); } } } uint _e145 = part; uint tile = min((first + min(_e145, (count - 1u))), 15u); mat4x4 _e156 = _group_0_binding_2_fs.tiles[tile].view_proj; vec4 clip_1 = (_e156 * vec4(p_9, 1.0)); if ((clip_1.w <= 0.0)) { return 1.0; } vec3 ndc = (clip_1.xyz / vec3(clip_1.w)); if (!((abs(ndc.x) > 1.0))) { local_15 = (abs(ndc.y) > 1.0); } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = (ndc.z > 1.0); } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } vec4 rect = _group_0_binding_2_fs.tiles[tile].rect; vec2 uv_4 = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); vec2 auv = (rect.xy + (uv_4 * rect.zw)); float texel_uv = _group_0_binding_2_fs.atlas.x; vec2 lo_5 = (rect.xy + vec2((0.5 * texel_uv))); vec2 hi_4 = ((rect.xy + rect.zw) - vec2((0.5 * texel_uv))); float r_7 = params.z; if ((r_7 <= 0.0)) { float _e235 = textureLod(_group_0_binding_3_fs, vec3(clamp(auv, lo_5, hi_4), ndc.z), 0.0); vis = _e235; } else { float spread = (r_7 * texel_uv); bool loop_init_12 = true; while(true) { if (!loop_init_12) { int _e265 = dy; dy = (_e265 + 1); } loop_init_12 = false; int _e239 = dy; if ((_e239 <= 1)) { } else { break; } { dx = -1; bool loop_init_13 = true; while(true) { if (!loop_init_13) { int _e262 = dx; dx = (_e262 + 1); } loop_init_13 = false; int _e244 = dx; if ((_e244 <= 1)) { } else { break; } { int _e247 = dx; int _e249 = dy; vec2 tap = clamp((auv + (vec2(float(_e247), float(_e249)) * spread)), lo_5, hi_4); float _e255 = vis; float _e259 = textureLod(_group_0_binding_3_fs, vec3(tap, ndc.z), 0.0); vis = (_e255 + _e259); } } } } float _e267 = vis; vis = (_e267 / 9.0); } if ((kind == LIGHT_DIRECTIONAL)) { vec4 fade_1 = _group_0_binding_2_fs.lights[slot].fade; float _e277 = vis; vis = mix(_e277, 1.0, smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return mix(1.0, _e283, params.w); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_8 = abs(d_8); if ((a_8.x >= a_8.y)) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_8.y >= a_8.z)) { ma = a_8.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 probe_texel(uint row, vec3 fuv, uint level_1) { uint _e6 = _group_0_binding_7_fs.counts.z; float n_12 = float(max((_e6 >> level_1), 1u)); float lo_6 = (0.5 / n_12); float u_2 = clamp(fuv.y, lo_6, (1.0 - lo_6)); float v_7 = clamp(fuv.z, lo_6, (1.0 - lo_6)); vec2 uv_5 = vec2(((fuv.x + u_2) / 6.0), ((float(row) + v_7) / 8.0)); vec4 _e33 = textureLod(_group_3_binding_6_fs, vec2(uv_5), float(level_1)); return _e33.xyz; } vec3 probe_sample(uint row_1, vec3 d_9, float lod) { bool local_18 = false; uint _e6 = _group_0_binding_7_fs.counts.y; uint levels = max(_e6, 1u); float l_5 = clamp(lod, 0.0, float((levels - 1u))); uint m0_ = uint(l_5); float t_7 = (l_5 - float(m0_)); vec3 _e17 = probe_face_uv(d_9); vec3 _e18 = probe_texel(row_1, _e17, m0_); if (!((t_7 <= 0.0))) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } vec3 _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1.0 - t_7)) + (_e34 * t_7)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_6 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_6 = p_5.extents.xyz; float d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if ((d_14 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_14 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_15 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_15; } vec3 o_8 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_8 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_8 + (d_15 * t_8)) - p_6.offset.xyz); } vec4 probe_reflection(vec3 world_8, vec3 r_2, float roughness_2, uint probes) { vec3 acc = vec3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = _group_0_binding_7_fs.counts.x; uint count_1 = min(_e12, MAX_PROBES); uint _e18 = _group_0_binding_7_fs.counts.y; float lod_1 = (roughness_2 * float((max(_e18, 1u) - 1u))); bool loop_init_14 = true; while(true) { if (!loop_init_14) { uint _e57 = i_8; i_8 = (_e57 + 1u); } loop_init_14 = false; uint _e27 = i_8; if ((_e27 < count_1)) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = _group_0_binding_7_fs.probes[_e31]; if ((((probes >> p_10.info.w) & 1u) == 0u)) { continue; } float _e41 = probe_weight(p_10, world_8); if ((_e41 <= 0.0)) { continue; } vec3 _e44 = acc; vec3 _e47 = probe_lookup(p_10, world_8, r_2); vec3 _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); float _e54 = w_sum; w_sum = (_e54 + _e41); } } float _e59 = w_sum; if ((_e59 > 1.0)) { vec3 _e62 = acc; float _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1.0; } vec3 _e67 = acc; float _e68 = w_sum; return vec4(_e67, _e68); } vec4 probe_ambient(vec3 world_9, vec3 n_7, uint probes_1) { vec3 acc_1 = vec3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = false; vec3 c_18 = vec3(0.0); uint _e11 = _group_0_binding_7_fs.counts.x; uint count_2 = min(_e11, MAX_PROBES); uint _e17 = _group_0_binding_7_fs.counts.y; uint last = (max(_e17, 1u) - 1u); bool loop_init_15 = true; while(true) { if (!loop_init_15) { uint _e73 = i_9; i_9 = (_e73 + 1u); } loop_init_15 = false; uint _e24 = i_9; if ((_e24 < count_2)) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = _group_0_binding_7_fs.probes[_e28]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if ((_e47 <= 0.0)) { continue; } c_18 = p_11.ambient.xyz; if ((p_11.info.y == PROBE_AMBIENT_ENVIRONMENT)) { vec3 _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0.0)).xyz); vec3 _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } vec3 _e66 = acc_1; vec3 _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); float _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } } float _e75 = w_sum_1; if ((_e75 > 1.0)) { vec3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1.0; } vec3 _e83 = acc_1; float _e84 = w_sum_1; return vec4(_e83, _e84); } void hedra_store_varyings(inout CustomOut o_4) { vec2 _e3 = frame_uv; o_4.hedra_v0_ = vec4(_e3, 0.0, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { frame_uv = i_10.hedra_v0_.xy; return; } void light() { return; } void fragment() { vec2 _e3 = frame_uv; vec4 texel_1 = texture(_group_2_binding_1_fs, vec2(_e3)); vec3 _e9 = _group_2_binding_0_fs.tint; vec4 _e12 = COLOR; ALBEDO = ((texel_1.xyz * _e9) * _e12.xyz); ALPHA = texel_1.w; float _e20 = _group_2_binding_0_fs.alpha_cut; ALPHA_SCISSOR_THRESHOLD = _e20; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_8 = transpose(_e1); vec3 t_9 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0.0), vec4(r_8[1], 0.0), vec4(r_8[2], 0.0), vec4(t_9, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = false; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back_2 = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back_2 * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back_2 * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_25 = false; bool local_26 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } bool _e12 = local_25; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = (_e18 < _e20); } else { local_26 = false; } bool _e23 = local_26; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_5 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_3 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_3), 0.0); float vh_2 = max(dot(v_3, h_3), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } vec4 hedra_light_dir(uint i_11, vec3 world_12) { float atten_1 = 0.0; LightU li_1 = _group_0_binding_1_fs.lights[i_11]; if ((li_1.info.x == LIGHT_DIRECTIONAL)) { return vec4(-(li_1.direction.xyz), 1.0); } vec3 rel_1 = (li_1.position.xyz - world_12); float d_16 = length(rel_1); vec3 l_7 = (rel_1 / vec3(max(d_16, 1e-6))); float _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if ((li_1.info.x == LIGHT_SPOT)) { float cone = li_1.spot.x; float scos = max(dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = max(0.0001, ((1.0 - scos) / max((1.0 - cone), 1e-6))); float _e49 = atten_1; atten_1 = (_e49 * (1.0 - pow(rim_1, li_1.spot.y))); } float _e56 = atten_1; return vec4(l_7, _e56); } float hedra_shadow(uint i_12, vec3 l_4) { bool local_28 = false; if (false) { uint _e10 = _group_0_binding_1_fs.lights[i_12].info.y; local_28 = (_e10 != LIGHT_SHADOWED); } else { local_28 = true; } bool _e14 = local_28; if (_e14) { return 1.0; } vec3 _e17 = hedra_world; vec3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } vec3 hedra_ambient(vec3 n_10, vec3 v_4, vec3 diffuse_2, vec3 f0_3, float roughness_3, float metallic) { vec3 ambient = vec3(0.0); vec3 diffuse_amb = vec3(0.0); vec3 spec_amb = vec3(0.0); vec3 dif = vec3(0.0); vec3 dif_1 = vec3(0.0); vec3 dif_2 = vec3(0.0); vec3 world_13 = hedra_world; float nv_5 = max(dot(n_10, v_4), 0.0001); vec3 f_amb = (f0_3 + ((max(vec3((1.0 - roughness_3)), f0_3) - f0_3) * pow((1.0 - nv_5), 5.0))); vec4 _e25 = gi_diffuse(n_10, false, vec3(0.0)); uint _e30 = _group_0_binding_5_fs.flags.x; if (((_e30 & SKY_IBL) != 0u)) { float _e38 = _group_0_binding_5_fs.ibl.x; float _e42 = _group_0_binding_5_fs.sun.w; float scale = (_e38 * _e42); vec4 _e46 = _group_0_binding_5_fs.ambient; diffuse_amb = _e46.xyz; uint _e52 = _group_0_binding_5_fs.flags.x; if (((_e52 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e59 = _group_0_binding_5_fs.ambient; vec3 _e61 = sky_dir(n_10); vec3 _e62 = sh_irradiance(_e61); float _e67 = _group_0_binding_5_fs.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if ((_e25.w > 0.0)) { diffuse_amb = _e25.xyz; } vec4 _e75 = _group_0_binding_5_fs.ambient; spec_amb = _e75.xyz; uint _e81 = _group_0_binding_5_fs.flags.x; if (((_e81 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e88 = sky_dir(reflect(-(v_4), n_10)); vec3 _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { uint _e94 = _group_0_binding_5_fs.flags.x; if (((_e94 & SKY_REFLECT_OFF) != 0u)) { spec_amb = vec3(0.0); } } vec2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = _group_0_binding_7_fs.counts.x; if ((_e105 > 0u)) { uint _e113 = _group_1_binding_0_fs.extra.z; vec4 _e114 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e113); vec3 _e115 = spec_amb; vec3 spec_1 = ((_e115 * (1.0 - _e114.w)) + _e114.xyz); vec3 _e122 = diffuse_amb; dif = _e122; if ((_e25.w <= 0.0)) { uint _e130 = _group_1_binding_0_fs.extra.z; vec4 _e131 = probe_ambient(world_13, n_10, _e130); vec3 _e132 = diffuse_amb; dif = ((_e132 * (1.0 - _e131.w)) + _e131.xyz); } vec3 _e139 = dif; ambient = ((diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } else { vec3 _e154 = diffuse_amb; vec3 _e156 = spec_amb; ambient = ((diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } } else { uint _e173 = _group_0_binding_1_fs.counts.y; if (((_e173 & ENV_AMBIENT_SKY) != 0u)) { vec4 _e180 = _group_0_binding_1_fs.up; vec3 up = _e180.xyz; vec4 _e184 = _group_0_binding_1_fs.sky_top; vec4 _e188 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e184.xyz + _e188.xyz) * 0.5); vec4 _e195 = _group_0_binding_1_fs.ground_horizon; vec4 _e199 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e195.xyz + _e199.xyz) * 0.5); vec3 irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up) * 0.5) + 0.5), 0.0, 1.0)); vec3 _e215 = sky(reflect(-(v_4), n_10)); vec3 blurred = mix(_e215, sky_avg, roughness_3); uint _e220 = _group_0_binding_7_fs.counts.x; if ((_e220 > 0u)) { uint _e228 = _group_1_binding_0_fs.extra.z; vec4 _e229 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e228); float _e233 = _group_0_binding_1_fs.ambient.w; vec3 spec_2 = (((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e249 = _group_1_binding_0_fs.extra.z; vec4 _e250 = probe_ambient(world_13, n_10, _e249); float _e254 = _group_0_binding_1_fs.ambient.w; dif_1 = (((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz); } vec3 _e262 = dif_1; ambient = ((diffuse_2 * _e262) + (spec_2 * f_amb)); } else { if ((_e25.w > 0.0)) { float _e275 = _group_0_binding_1_fs.ambient.w; ambient = ((diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { float _e284 = _group_0_binding_1_fs.ambient.w; ambient = (((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284); } } } else { uint _e289 = _group_0_binding_7_fs.counts.x; if ((_e289 > 0u)) { uint _e297 = _group_1_binding_0_fs.extra.z; vec4 _e298 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e297); vec4 _e301 = _group_0_binding_1_fs.ambient; vec3 spec_3 = ((_e301.xyz * (1.0 - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e317 = _group_1_binding_0_fs.extra.z; vec4 _e318 = probe_ambient(world_13, n_10, _e317); vec4 _e321 = _group_0_binding_1_fs.ambient; dif_2 = ((_e321.xyz * (1.0 - _e318.w)) + _e318.xyz); } vec3 _e329 = dif_2; ambient = ((diffuse_2 * _e329) + (spec_3 * f_amb)); } else { if ((_e25.w > 0.0)) { vec4 _e340 = _group_0_binding_1_fs.ambient; ambient = ((diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb)); } else { vec4 _e346 = _group_0_binding_1_fs.ambient; ambient = (_e346.xyz * (diffuse_2 + f_amb)); } } } } vec3 _e350 = ambient; return _e350; } vec3 hedra_fog(vec3 c_in_1, vec3 v_5) { vec3 c_20 = vec3(0.0); c_20 = c_in_1; if (HEDRA_FOG_DISABLED) { vec3 _e4 = c_20; return _e4; } uint _e8 = _group_0_binding_5_fs.flags.x; if (((_e8 & SKY_FOG) != 0u)) { vec3 _e13 = c_20; vec3 _e15 = hedra_world; vec3 _e17 = surface_fog(_e13, _e15, -(v_5)); c_20 = _e17; } uint _e21 = _group_1_binding_0_fs.decals.w; if ((_e21 != 0u)) { vec3 _e24 = c_20; vec3 _e26 = hedra_world; uint _e30 = _group_1_binding_0_fs.decals.w; vec3 _e31 = fog_volumes(_e24, _e26, _e30); c_20 = _e31; } vec3 _e32 = c_20; return _e32; } vec3 hedra_lit(vec4 clip) { DecalSurface surf_1 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); vec3 c_21 = vec3(0.0); uint k_11 = 0u; bool local_29 = false; vec3 radiance_3 = vec3(0.0); bool local_30 = false; bool local_31 = false; vec3 ambient_1 = vec3(0.0); bool local_32 = false; vec3 n_geo_3 = hedra_n_geo; vec3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; vec3 _e18 = hedra_n; vec3 _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0.0, 1.0), clamp(_e11, 0.045, 1.0), _e16, _e18, _e20); uint _e26 = _group_1_binding_0_fs.decals.z; if ((_e26 > 0u)) { vec3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; vec3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; mat4x4 _e45 = _group_0_binding_0_fs.view; mat3x3 _e46 = hedra_mat3_(_e45); vec3 _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); vec3 base = surf_1.base; vec3 diffuse_3 = (base * (1.0 - metallic_1)); float _e64 = SPECULAR; float _e68 = SPECULAR; vec3 f0_4 = mix(vec3(((0.16 * _e64) * _e68)), base, metallic_1); vec3 n_13 = surf_1.normal; vec3 _e75 = hedra_world; vec3 _e76 = hedra_view_dir(_e75); mat4x4 _e79 = _group_0_binding_0_fs.view; mat3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = mix(1.0, _e82, _e84); DIFFUSE_LIGHT = vec3(0.0); SPECULAR_LIGHT = vec3(0.0); uint _e96 = object_light_count(); bool loop_init_16 = true; while(true) { if (!loop_init_16) { uint _e238 = k_11; k_11 = (_e238 + 1u); } loop_init_16 = false; uint _e99 = k_11; if ((_e99 < _e96)) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101); LightU li_2 = _group_0_binding_1_fs.lights[_e102]; vec3 _e108 = hedra_world; vec4 _e109 = hedra_light_dir(_e102, _e108); vec3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_29 = (atten_2 > 0.0); } else { local_29 = true; } bool _e123 = local_29; if (_e123) { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if ((_e142 > 0.0)) { float rim_light = pow(max(0.0001, (1.0 - max(dot(n_13, _e76), 0.0001))), max(0.0, ((1.0 - roughness_4) * 16.0))); vec3 _e159 = c_21; float _e164 = RIM; float _e170 = RIM_TINT; c_21 = (_e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1.0), base, _e170))); } if ((atten_2 > 0.0)) { radiance_3 = (li_2.color.xyz * atten_2); if ((li_2.info.y == LIGHT_SHADOWED)) { local_30 = false; } else { local_30 = false; } bool _e188 = local_30; if (_e188) { vec3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if (true) { local_31 = false; } else { local_31 = false; } bool _e201 = local_31; if (_e201) { vec3 _e202 = c_21; vec3 _e203 = radiance_3; vec3 _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_21 = (_e202 + _e206); } else { vec3 _e208 = c_21; vec3 _e209 = radiance_3; vec3 _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = (_e208 + _e212); } vec3 _e215 = BACKLIGHT; if (any(greaterThan(_e215, vec3(0.0)))) { float nl_4 = max(min(dot(n_13, l_8), 1.0), 0.0); vec3 _e225 = c_21; vec3 _e226 = radiance_3; vec3 _e229 = BACKLIGHT; c_21 = (_e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987)))); } } } } if (HEDRA_HAS_LIGHT) { vec3 _e242 = DIFFUSE_LIGHT; vec3 _e249 = SPECULAR_LIGHT; c_21 = ((((_e242 * base) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct)); } else { float _e253 = AO_LIGHT_AFFECT; if ((_e253 > 0.0)) { vec3 _e256 = c_21; c_21 = (_e256 * ao_direct); } } if (true) { vec3 _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } uint _e266 = _group_0_binding_1_fs.counts.y; if (((_e266 & ENV_SSAO) != 0u)) { bool _e273 = hedra_transparent(); local_32 = !(_e273); } else { local_32 = false; } bool _e276 = local_32; if (_e276) { vec4 _e282 = texelFetch(_group_0_binding_6_fs, ivec2(floor(clip.xy)), 0); float ssao = _e282.x; vec3 _e284 = c_21; float _e286 = surf_1.occlusion; float _e291 = _group_0_binding_1_fs.tone.z; float _e295 = _group_0_binding_1_fs.tone.w; c_21 = (_e284 * mix(1.0, min(ssao, _e286), (_e291 * _e295))); vec3 _e300 = c_21; vec3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_21 = (_e300 + (_e301 * min(_e303, ssao))); } else { vec3 _e307 = c_21; vec3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_21 = (_e307 + (_e308 * _e310)); } vec3 _e313 = c_21; vec3 _e315 = surf_1.emission; c_21 = (_e313 + _e315); vec3 _e317 = c_21; vec3 _e318 = hedra_fog(_e317, _e76); vec3 _e319 = tonemap(_e318); return _e319; } vec4 hedra_output(vec3 c_22) { vec3 rgb = vec3(0.0); rgb = c_22; if (false) { vec3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } vec3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); vec4 o_9 = vec4(_e7, (_e10 ? _e9 : 1.0)); uint _e17 = _group_0_binding_1_fs.counts.y; if (((_e17 & ENV_HDR) != 0u)) { return vec4(max(o_9.xyz, vec3(0.0)), clamp(o_9.w, 0.0, 1.0)); } vec4 k_17 = clamp(o_9, vec4(0.0), vec4(1.0)); uint _e39 = _group_0_binding_0_fs.params.z; if (((_e39 & HEDRA_ENCODE_SRGB) != 0u)) { vec3 _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } vec3 hedra_bindings() { vec2 uv_6 = vec2(0.5); vec4 _e5 = textureLod(_group_3_binding_1_fs, vec2(uv_6), 0.0); vec4 _e11 = textureLod(_group_3_binding_4_fs, vec3(uv_6, 0), 0.0); vec4 _e17 = textureLod(_group_1_binding_6_fs, vec2(uv_6), 0.0); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } void main() { CustomOut in_3 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing = gl_FrontFacing; vec3 c = vec3(0.0); hedra_fragment(in_3, facing); bool _e3 = hedra_culled(in_3.flags); if (_e3) { discard; } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if ((_e7 <= 0.0)) { discard; } if (HEDRA_UNSHADED) { vec3 _e13 = ALBEDO; vec3 _e15 = hedra_world; vec3 _e16 = hedra_view_dir(_e15); vec3 _e17 = hedra_fog(_e13, _e16); vec3 _e18 = tonemap(_e17); c = _e18; } else { vec3 _e20 = hedra_lit(in_3.clip); c = _e20; } uint _e24 = _group_0_binding_1_fs.counts.w; if ((_e24 == HEDRA_NEVER)) { vec3 _e27 = c; vec3 _e28 = hedra_bindings(); c = (_e27 + _e28); } uint _e33 = _group_0_binding_0_fs.params.x; if ((_e33 == SHADE_LIT)) { vec3 _e36 = c; vec3 _e37 = item_fade(_e36); vec3 _e38 = emerge_tint(_e37, _e7); c = _e38; } vec3 _e39 = c; vec4 _e40 = hedra_output(_e39); _fs2p_location0 = _e40; return; } fs_custom_depthmaind‚#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0_; float hedra_pad1_; vec3 tint; float alpha_cut; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec2 frame_uv = vec2(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec2 _e3 = frame_uv; o_4.hedra_v0_ = vec4(_e3, 0.0, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { frame_uv = i_10.hedra_v0_.xy; return; } void light() { return; } void fragment() { vec2 _e3 = frame_uv; vec4 texel = texture(_group_2_binding_1_fs, vec2(_e3)); vec3 _e9 = _group_2_binding_0_fs.tint; vec4 _e12 = COLOR; ALBEDO = ((texel.xyz * _e9) * _e12.xyz); ALPHA = texel.w; float _e20 = _group_2_binding_0_fs.alpha_cut; ALPHA_SCISSOR_THRESHOLD = _e20; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = false; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_4 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_1 = gl_FrontFacing; bool local = false; bool local_1 = false; hedra_fragment(in_4, facing_1); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { discard; } float _e25 = emerge_reveal(in_4.world, vec2(-1.0)); if ((_e25 <= 0.0)) { discard; } else { return; } }  fs_custom_idmainW…#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0_; float hedra_pad1_; vec3 tint; float alpha_cut; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec2 frame_uv = vec2(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec2 _e3 = frame_uv; o_4.hedra_v0_ = vec4(_e3, 0.0, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { frame_uv = i_10.hedra_v0_.xy; return; } void light() { return; } void fragment() { vec2 _e3 = frame_uv; vec4 texel = texture(_group_2_binding_1_fs, vec2(_e3)); vec3 _e9 = _group_2_binding_0_fs.tint; vec4 _e12 = COLOR; ALBEDO = ((texel.xyz * _e9) * _e12.xyz); ALPHA = texel.w; float _e20 = _group_2_binding_0_fs.alpha_cut; ALPHA_SCISSOR_THRESHOLD = _e20; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = false; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_25 = false; bool local_26 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } bool _e12 = local_25; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = (_e18 < _e20); } else { local_26 = false; } bool _e23 = local_26; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_5 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_2 = gl_FrontFacing; bool local_2 = false; IdOut out_ = IdOut(vec4(0.0)); hedra_fragment(in_5, facing_2); bool _e3 = hedra_culled(in_5.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0.0); } else { local_2 = true; } bool _e14 = local_2; if (_e14) { discard; } uint id = _group_1_binding_0_fs.params.z; uint _e24 = _group_1_binding_0_fs.params.x; uint _e33 = _group_1_binding_0_fs.params.y; uint bits = (((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u)); out_.id = (vec4(float((id & 255u)), float(((id >> 8u) & 255u)), float(((id >> 16u) & 255u)), float(bits)) / vec4(255.0)); IdOut _e58 = out_; _fs2p_location0 = _e58.id; return; } fs_custom_normal_depthmainø†#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0_; float hedra_pad1_; vec3 tint; float alpha_cut; vec2 snap_resolution; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec2 frame_uv = vec2(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; layout(location = 1) out vec4 _fs2p_location1; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec2 _e3 = frame_uv; o_4.hedra_v0_ = vec4(_e3, 0.0, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { frame_uv = i_10.hedra_v0_.xy; return; } void light() { return; } void fragment() { vec2 _e3 = frame_uv; vec4 texel = texture(_group_2_binding_1_fs, vec2(_e3)); vec3 _e9 = _group_2_binding_0_fs.tint; vec4 _e12 = COLOR; ALBEDO = ((texel.xyz * _e9) * _e12.xyz); ALPHA = texel.w; float _e20 = _group_2_binding_0_fs.alpha_cut; ALPHA_SCISSOR_THRESHOLD = _e20; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_21 = false; bool local_22 = false; if (HEDRA_ALPHA) { local_21 = false; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_24 = false; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_25 = false; bool local_26 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } bool _e12 = local_25; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = (_e18 < _e20); } else { local_26 = false; } bool _e23 = local_26; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_27 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_27 = (nl_3 > 0.0); } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_6 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_3 = gl_FrontFacing; bool local_3 = false; HedraNormalDepthOut out_1 = HedraNormalDepthOut(vec4(0.0), vec4(0.0)); hedra_fragment(in_6, facing_3); bool _e3 = hedra_culled(in_6.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0.0); } else { local_3 = true; } bool _e14 = local_3; if (_e14) { discard; } mat4x4 _e17 = _group_0_binding_0_fs.view; mat3x3 _e18 = hedra_mat3_(_e17); vec3 _e20 = hedra_n; vec3 n_view = normalize((_e18 * _e20)); float _e24 = METALLIC; float metallic_1 = clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; vec3 _e37 = ALBEDO; vec3 f0_4 = mix(vec3(((0.16 * _e29) * _e33)), _e37, metallic_1); mat4x4 _e43 = _group_0_binding_0_fs.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_4, vec3(0.0), vec3(1.0)), clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; _fs2p_location0 = _e63.normal_depth; _fs2p_location1 = _e63.surface; return; }  @Ð Ð/ ,@  0{Ðþ—4ÌhÜ©Z„åŸþh¿ÌæG¯ rÓápuªrWJGlobals_block_0VertexObjectU_block_1Vertex HedraParams_block_2VertexSkinU_block_2Vertex HedraParams_block_3VertexSkyU_block_4FragmentShadowU_block_3FragmentGlobals_block_0Fragment HedraParams_block_8FragmentFogU_block_7FragmentDecalU_block_6FragmentObjectU_block_1FragmentProbeU_block_5FragmentLitU_block_2Fragment_group_3_binding_4_fs_group_0_binding_6_fs_group_2_binding_1_fs_group_1_binding_3_fs_group_3_binding_1_fs_group_3_binding_6_fs_group_0_binding_3_fs_group_1_binding_6_fs_group_3_binding_0_fs HedraParams_block_2Fragment vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depthf// language: metal2.2 #include #include using metal::uint; struct Globals { metal::float4x4 view; metal::float4x4 proj; metal::float4x4 view_proj; metal::float4 camera_pos; metal::float4 viewport; metal::float4 wire_color; metal::float4 select_color; metal::float4 active_color; metal::float4 grid; metal::uint4 params; metal::float4 fparams; }; struct type_5 { metal::float4 inner[3]; }; struct ObjectU { metal::float4x4 model; metal::float4x4 normal; metal::float4 color; metal::uint4 params; metal::uint4 extra; type_5 gi; metal::uint4 decals; metal::uint4 lights; }; struct type_8 { metal::float3 inner[10]; }; struct LightU { metal::float4 color; metal::float4 position; metal::float4 direction; metal::float4 spot; metal::uint4 info; }; struct type_9 { LightU inner[64]; }; struct LitU { metal::uint4 counts; metal::float4 ambient; metal::float4 tone; metal::float4 up; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_horizon; metal::float4 ground_bottom; metal::float4x4 inv_view_proj; metal::uint4 dirs; type_9 lights; }; struct ShadowLightU { metal::float4 params; metal::float4 splits; metal::float4 fade; metal::uint4 info; }; struct ShadowTileU { metal::float4x4 view_proj; metal::float4 rect; metal::float4 texel; }; struct type_10 { ShadowLightU inner[16]; }; struct type_11 { ShadowTileU inner[16]; }; struct ShadowU { metal::float4 atlas; type_10 lights; type_11 tiles; }; struct SunU { metal::float4 direction; metal::float4 color; }; struct type_14 { SunU inner[4]; }; struct type_15 { metal::float4 inner[9]; }; struct SkyU { metal::uint4 flags; metal::float4x4 to_sky; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_bottom; metal::float4 ground_horizon; metal::float4 sun; metal::float4 ambient; metal::float4 ibl; metal::float4 fog_color; metal::float4 fog; metal::float4 fog_depth; metal::float4 fog_origin; type_14 suns; type_15 sh; }; struct ProbeEntryU { metal::float4x4 to_local; metal::float4 extents; metal::float4 offset; metal::float4 ambient; metal::uint4 info; }; struct type_20 { ProbeEntryU inner[8]; }; struct ProbeU { metal::uint4 counts; type_20 probes; }; struct DecalEntryU { metal::float4x4 to_local; metal::float4 modulate; metal::float4 fades; metal::float4 axis_x; metal::float4 axis_y; metal::float4 axis_z; metal::uint4 layers; metal::uint4 flags; }; struct type_21 { DecalEntryU inner[64]; }; struct DecalU { metal::uint4 counts; metal::float4 lod; type_21 entries; }; struct DecalSurface { metal::packed_float3 base; float metallic; float roughness; float occlusion; char _pad4[8]; metal::float3 normal; metal::float3 emission; }; struct VsIn { metal::float3 pos; metal::float3 normal; metal::float2 uv; uint flags; char _pad4[4]; metal::float4 tangent; float weight; char _pad6[12]; }; struct InstIn { metal::float4 row0_; metal::float4 row1_; metal::float4 row2_; metal::float4 color; }; struct FogEntryU { metal::float4x4 to_local; metal::float4 size; metal::float4 material; metal::float4 albedo; metal::float4 emission; metal::uint4 lights; }; struct type_26 { metal::float4 inner[16]; }; struct type_27 { FogEntryU inner[16]; }; struct FogU { metal::uint4 counts; metal::float4 params; metal::float4 ambient; metal::float4 up; type_26 light_fog; type_27 entries; }; struct type_28 { uint inner[4]; }; struct type_29 { metal::float2 inner[4]; }; struct type_30 { metal::float4 inner[4]; }; struct type_31 { metal::float4 inner[765]; }; struct SkinU { type_31 rows; }; struct SkinIn { metal::uint4 joints; metal::float4 weights; }; struct SkinRows { metal::float4 r0_; metal::float4 r1_; metal::float4 r2_; }; struct HedraInstExtra { metal::float4 custom; float id; char _pad2[12]; }; struct CustomOut { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; metal::float4 color; metal::float2 uv2_; uint instance_id; char _pad9[4]; metal::float4 hedra_v0_; metal::float4 hedra_v1_; metal::float4 hedra_v2_; metal::float4 hedra_v3_; }; struct IdOut { metal::float4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0_; float hedra_pad1_; metal::packed_float3 tint; float alpha_cut; metal::float2 snap_resolution; char _pad7[8]; }; struct HedraNormalDepthOut { metal::float4 normal_depth; metal::float4 surface; }; constant uint OBJ_HAS_WEIGHTS = 1u; constant uint OBJ_MIRRORED = 2u; constant uint SHADE_SOLID = 0u; constant uint SHADE_MATCAP = 1u; constant uint SHADE_NORMALS = 2u; constant uint SHADE_FACE_ORIENT = 3u; constant uint SHADE_RANDOM = 4u; constant uint SHADE_MATERIAL = 5u; constant uint SHADE_UV_CHECKER = 6u; constant uint SHADE_WEIGHTS = 7u; constant uint SHADE_LIT = 8u; constant uint SHADE_LIGHTMAP = 9u; constant uint SHADE_LIGHT_COUNT = 10u; constant uint OV_SELECTION = 1u; constant uint OV_SEAMS = 2u; constant uint OV_SHARP = 4u; constant uint F_SELECTED = 1u; constant uint F_HIDDEN = 2u; constant uint F_SEAM = 4u; constant uint F_SHARP = 8u; constant uint F_MESH = 16u; constant uint F_FADE = 32u; constant uint F_NO_PULL = 64u; constant bool SPEC_TEX_BASE = true; constant bool SPEC_TEX_NORMAL = true; constant bool SPEC_TEX_MR = true; constant bool SPEC_TEX_EMISSION = true; constant bool SPEC_TEX_OCCLUSION = true; constant bool SPEC_VERTEX_COLOR = true; constant bool SPEC_EXT = true; constant bool SPEC_UNLIT = true; constant bool SPEC_ALPHA_MASK = true; constant bool SPEC_ALPHA_BLEND = true; constant bool SPEC_CLEARCOAT = true; constant bool SPEC_SHEEN = true; constant bool SPEC_TRANSMISSION = true; constant bool SPEC_IRIDESCENCE = true; constant bool SPEC_ANISOTROPY = true; constant bool SPEC_DIFFUSE_TRANSMISSION = true; constant bool SPEC_VOLUME = true; constant bool SPEC_DISPERSION = true; constant bool SPEC_EXT_LAYERS = true; constant bool SPEC_ROUGHNESS_LAYER = true; constant bool SPEC_LIT = true; constant bool SPEC_LIGHTS = true; constant bool SPEC_SHADOWS = true; constant bool SPEC_DECALS = true; constant bool SPEC_FOG = true; constant bool SPEC_FOG_VOLUMES = true; constant bool SPEC_PROBES = true; constant bool SPEC_PROBE_GI = true; constant bool SPEC_SSAO = true; constant bool SPEC_SCREEN_REFRACTION = true; constant bool SPEC_EMERGE = true; constant bool SPEC_FADE = true; constant bool SPEC_FACE_FLAGS = true; constant bool SPEC_AMBIENT_FLAT = true; constant bool SPEC_AMBIENT_GRADIENT = true; constant bool SPEC_AMBIENT_SKY = true; constant bool SPEC_MATERIAL_MODE = true; constant bool SPEC_OTHER_MODES = true; constant float PI = 3.1415927; constant float TAU = 6.2831855; constant float E = 2.7182817; constant uint HEDRA_BLEND_MIX = 0u; constant uint HEDRA_BLEND_PREMUL_ALPHA = 4u; constant uint HEDRA_CULL_FRONT = 1u; constant uint HEDRA_DIFFUSE_LAMBERT = 0u; constant uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; constant uint HEDRA_DIFFUSE_BURLEY = 2u; constant uint HEDRA_DIFFUSE_TOON = 3u; constant uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; constant uint HEDRA_SPECULAR_TOON = 1u; constant uint HEDRA_SPECULAR_DISABLED = 2u; constant uint HEDRA_ENCODE_SRGB = 2u; constant uint HEDRA_NEVER = 4294967295u; constant uint MAX_FRAME_LIGHTS = 64u; constant uint MAX_OBJECT_LIGHTS = 8u; constant uint MAX_SHADOW_LIGHTS = 16u; constant uint MAX_POOL_DIRECTIONAL = 8u; constant type_8 LIGHT_COUNT_COLORS = type_8 {{metal::float3(0.352941, 0.352941, 0.352941), metal::float3(0.168627, 0.247059, 0.6), metal::float3(0.129412, 0.4, 0.67451), metal::float3(0.101961, 0.623529, 0.721569), metal::float3(0.121569, 0.631373, 0.529412), metal::float3(0.301961, 0.733333, 0.352941), metal::float3(0.65098, 0.831373, 0.227451), metal::float3(0.94902, 0.784314, 0.058824), metal::float3(0.94902, 0.556863, 0.058824), metal::float3(0.878431, 0.129412, 0.541176)}}; constant uint LIGHT_DIRECTIONAL = 0u; constant uint LIGHT_OMNI = 1u; constant uint LIGHT_SPOT = 2u; constant uint LIGHT_BAKE_DISABLED = 0u; constant uint LIGHT_BAKE_STATIC = 1u; constant uint LIGHT_BAKE_DYNAMIC = 2u; constant uint TONEMAP_LINEAR = 0u; constant uint TONEMAP_REINHARD = 1u; constant uint TONEMAP_FILMIC = 2u; constant uint TONEMAP_ACES = 3u; constant uint TONEMAP_AGX = 4u; constant uint ENV_SKY = 1u; constant uint ENV_AMBIENT_SKY = 2u; constant uint ENV_SSAO = 4u; constant uint ENV_HDR = 8u; constant uint ENV_SCREEN_REFRACTION = 16u; constant uint LIGHT_SHADOWED = 1u; constant uint LIGHT_BAKED_STATIC = 1u; constant uint SHADOW_TILES = 16u; constant uint SKY_DRAW_PROCEDURAL = 1u; constant uint SKY_DRAW_PANORAMA = 2u; constant uint SKY_PANORAMA_FILTER = 4u; constant uint SKY_IBL = 8u; constant uint SKY_AMBIENT_SKY = 16u; constant uint SKY_REFLECT_RADIANCE = 32u; constant uint SKY_REFLECT_OFF = 64u; constant uint SKY_FOG = 128u; constant uint SKY_FOG_DEPTH = 256u; constant uint SKY_SUNS = 4u; constant uint OBJ_LIGHTMAP = 4u; constant uint OBJ_PROBE_GI = 8u; constant uint PROBE_BOX = 1u; constant uint PROBE_INTERIOR = 2u; constant uint MAX_PROBES = 8u; constant uint PROBE_AMBIENT_DISABLED = 0u; constant uint PROBE_AMBIENT_ENVIRONMENT = 1u; constant uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; constant uint MAX_FRAME_DECALS = 64u; constant uint MAX_OBJECT_DECALS = 8u; constant uint DECAL_LIVE_ALBEDO = 1u; constant uint DECAL_LIVE_NORMAL = 2u; constant uint DECAL_LIVE_ORM = 4u; constant uint DECAL_LIVE_EMISSION = 8u; constant uint F_INSTANCE_MIRRORED = 128u; constant uint OBJ_EMERGE = 32u; constant float EMERGE_SCALE = 1.3; constant float EMERGE_EDGE = 0.8; constant float EMERGE_DITHER = 0.12; constant uint OBJ_FADE = 64u; constant uint MAX_FRAME_FOG_VOLUMES = 16u; constant uint MAX_OBJECT_FOG_VOLUMES = 4u; constant uint FOG_SHAPE_ELLIPSOID = 0u; constant uint FOG_SHAPE_CONE = 1u; constant uint FOG_SHAPE_CYLINDER = 2u; constant uint FOG_SHAPE_BOX = 3u; constant uint FOG_SHAPE_WORLD = 4u; constant float FOG_SKY_DISTANCE = 1000000.0; constant uint FOG_LIST_ALL = 2147483648u; constant float FOG_GL_X0_ = 0.8611363; constant float FOG_GL_X1_ = 0.339981; constant float FOG_GL_W0_ = 0.3478548; constant float FOG_GL_W1_ = 0.6521452; constant uint OBJ_SKINNED = 16u; constant uint SKIN_JOINTS = 255u; constant bool HEDRA_UNSHADED = true; constant bool HEDRA_HAS_LIGHT = false; constant bool HEDRA_USES_POSITION = false; constant bool HEDRA_SKIP_VERTEX_TRANSFORM = true; constant bool HEDRA_WORLD_VERTEX_COORDS = false; constant bool HEDRA_AMBIENT_LIGHT_DISABLED = false; constant bool HEDRA_FOG_DISABLED = false; constant bool HEDRA_SHADOWS_DISABLED = true; constant bool HEDRA_ALPHA = true; constant bool HEDRA_ALPHA_SCISSOR = true; constant uint HEDRA_DIFFUSE = 0u; constant uint HEDRA_SPECULAR = 2u; constant uint HEDRA_BLEND = 0u; constant uint HEDRA_CULL = 2u; metal::float3 srgb_to_linear( metal::float3 c_1 ) { metal::float3 lo = c_1 / metal::float3(12.92); metal::float3 hi = metal::pow((c_1 + metal::float3(0.055)) / metal::float3(1.055), metal::float3(2.4)); return metal::select(hi, lo, c_1 <= metal::float3(0.04045)); } metal::float4 element_color( uint flags, metal::float4 fallback, constant Globals& G, constant ObjectU& O ) { bool local_4 = {}; bool local_5 = {}; if ((flags & F_MESH) == 0u) { return fallback; } uint overlays = G.params.y; uint _e13 = O.params.w; bool edit_object = _e13 == 1u; if ((flags & F_SEAM) != 0u) { local_4 = (overlays & OV_SEAMS) != 0u; } else { local_4 = false; } bool _e27 = local_4; if (_e27) { metal::float3 _e32 = srgb_to_linear(metal::float3(0.86, 0.0, 0.0)); return metal::float4(_e32, 1.0); } if ((flags & F_SHARP) != 0u) { local_5 = (overlays & OV_SHARP) != 0u; } else { local_5 = false; } bool _e46 = local_5; if (_e46) { metal::float3 _e51 = srgb_to_linear(metal::float3(0.0, 0.85, 0.9)); return metal::float4(_e51, 1.0); } if ((overlays & OV_SELECTION) != 0u) { if (edit_object) { if ((flags & F_SELECTED) != 0u) { metal::float4 _e64 = G.select_color; return _e64; } metal::float4 _e67 = G.wire_color; return _e67; } uint _e71 = O.params.x; if (_e71 == 1u) { metal::float4 _e76 = G.select_color; metal::float4 _e79 = G.active_color; uint _e83 = O.params.y; return (_e83 == 1u) ? _e79 : _e76; } } metal::float4 _e89 = G.wire_color; return _e89; } metal::float4 to_view( metal::float3 p, float pull, constant Globals& G, constant ObjectU& O ) { metal::float4 v = {}; metal::float4x4 _e4 = G.view; metal::float4x4 _e7 = O.model; v = (_e4 * _e7) * metal::float4(p, 1.0); float _e15 = v.z; v.z = _e15 * (1.0 - pull); metal::float4 _e19 = v; return _e19; } metal::float3 linear_to_srgb( metal::float3 c_2 ) { metal::float3 lo_1 = c_2 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(c_2, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, c_2 <= metal::float3(0.0031308)); } metal::float4 target_color( metal::float4 c_3, constant Globals& G ) { metal::float4 k_12 = metal::clamp(c_3, metal::float4(0.0), metal::float4(1.0)); float _e9 = G.fparams.w; if (_e9 > 0.5) { metal::float3 _e13 = linear_to_srgb(k_12.xyz); return metal::float4(_e13, k_12.w); } return k_12; } uint object_light_count( constant ObjectU& O ) { uint _e3 = O.lights.z; return metal::min(_e3, MAX_OBJECT_LIGHTS); } uint object_light( uint k, constant ObjectU& O ) { uint _e4 = O.lights.y; uint _e8 = O.lights.x; uint word = (k < 4u) ? _e8 : _e4; return metal::min((word >> ((k & 3u) * 8u)) & 255u, 63u); } metal::float3 light_count_color( constant ObjectU& O ) { type_8 colors = LIGHT_COUNT_COLORS; uint _e5 = O.lights.w; metal::float3 _e9 = colors.inner[metal::min(unsigned(metal::min(_e5, 9u)), 9u)]; return _e9; } uint pool_sun_count( constant LitU& Lit ) { uint _e3 = Lit.dirs.z; return metal::min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun( uint k_1, constant LitU& Lit ) { uint _e4 = Lit.dirs.y; uint _e8 = Lit.dirs.x; uint word_1 = (k_1 < 4u) ? _e8 : _e4; return metal::min((word_1 >> ((k_1 & 3u) * 8u)) & 255u, 63u); } uint decal_count( constant ObjectU& O ) { uint _e3 = O.decals.z; return metal::min(_e3, MAX_OBJECT_DECALS); } uint decal_entry( uint k_2, constant ObjectU& O ) { uint _e4 = O.decals.y; uint _e8 = O.decals.x; uint word_2 = (k_2 < 4u) ? _e8 : _e4; return (word_2 >> ((k_2 & 3u) * 8u)) & 255u; } float decal_level( DecalEntryU e, metal::float3 world, constant Globals& G, constant DecalU& Decal ) { float _e5 = Decal.lod.x; metal::float4 _e8 = G.camera_pos; float _e15 = Decal.lod.y; float pixel_1 = _e5 * ((_e15 > 0.5) ? 1.0 : metal::length(world - _e8.xyz)); uint _e24 = Decal.counts.y; float top = static_cast(metal::max(_e24, 1u) - 1u); return metal::clamp(metal::log2(metal::max(pixel_1 / metal::max(e.axis_y.w, 0.000001), 1.0)), 0.0, top); } metal::float4 decal_texel( uint layer, metal::float2 uv, float level, bool live, metal::texture2d_array t_decals, metal::sampler s_decals ) { metal::float4 _e11 = t_decals.sample(s_decals, uv, static_cast(layer - 1u), metal::level(live ? 0.0 : level)); return _e11; } DecalSurface apply_decals( metal::float3 world_1, metal::float3 n_geo, DecalSurface surf, constant Globals& G, constant ObjectU& O, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { DecalSurface out_s = {}; uint k_3 = 0u; bool local_6 = {}; float fade = {}; out_s = surf; uint _e4 = decal_count(O); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { uint _e197 = k_3; k_3 = _e197 + 1u; } loop_init = false; uint _e7 = k_3; if (_e7 < _e4) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11, O); DecalEntryU e_2 = Decal.entries.inner[metal::min(unsigned(metal::min(_e12, 63u)), 63u)]; metal::float3 uvw = (e_2.to_local * metal::float4(world_1, 1.0)).xyz; if (metal::all(uvw >= metal::float3(0.0, -1.0, 0.0))) { local_6 = metal::all(uvw <= metal::float3(1.0)); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = metal::pow(1.0 - metal::abs(uvw.y), (uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y); if (e_2.fades.z > 0.0) { float _e55 = fade; fade = _e55 * metal::smoothstep(e_2.fades.z, 1.0, (metal::dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5); } metal::float2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1, G, Decal); uint live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { metal::float4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, (live_1 & DECAL_LIVE_ALBEDO) != 0u, t_decals, s_decals); metal::float3 _e84 = srgb_to_linear(_e82.xyz); metal::float4 a_2 = metal::float4(_e84, _e82.w) * e_2.modulate; float _e90 = fade; float alpha = a_2.w * _e90; metal::float3 _e94 = out_s.base; out_s.base = metal::mix(_e94, a_2.xyz, alpha * e_2.fades.w); if (e_2.layers.y > 0u) { metal::float4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, (live_1 & DECAL_LIVE_NORMAL) != 0u, t_decals, s_decals); float nx = (_e110.x * 2.0) - 1.0; float ny = 1.0 - (_e110.y * 2.0); float nz = metal::sqrt(metal::max(0.0, (1.0 - (nx * nx)) - (ny * ny))); metal::float3 dn = metal::normalize(((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny)); metal::float3 _e143 = out_s.normal; out_s.normal = metal::normalize(metal::mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { metal::float4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, (live_1 & DECAL_LIVE_ORM) != 0u, t_decals, s_decals); float _e159 = out_s.occlusion; out_s.occlusion = metal::mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = metal::mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = metal::mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { metal::float4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, (live_1 & DECAL_LIVE_EMISSION) != 0u, t_decals, s_decals); metal::float3 _e184 = out_s.emission; metal::float3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = _e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193); } } } float _e201 = out_s.roughness; out_s.roughness = metal::clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = metal::clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx( float nh, float a2_ ) { float d_12 = ((nh * nh) * (a2_ - 1.0)) + 1.0; return a2_ / ((PI * d_12) * d_12); } float v_smith( float nl, float nv, float a2_1 ) { float gv = nl * metal::sqrt(((nv * nv) * (1.0 - a2_1)) + a2_1); float g_l = nv * metal::sqrt(((nl * nl) * (1.0 - a2_1)) + a2_1); return 0.5 / metal::max(gv + g_l, 0.0001); } metal::float3 f_schlick( metal::float3 f0_, float vh ) { return f0_ + ((metal::float3(1.0) - f0_) * metal::pow(1.0 - vh, 5.0)); } metal::float3 light_specular( metal::float3 n, metal::float3 v_1, metal::float3 l, metal::float3 radiance, metal::float3 diffuse, metal::float3 f0_1, float a2_2, float specular ) { float nl_2 = metal::dot(n, l); if (nl_2 <= 0.0) { return metal::float3(0.0); } metal::float3 h = metal::normalize(l + v_1); float nh_1 = metal::max(metal::dot(n, h), 0.0); float vh_1 = metal::max(metal::dot(v_1, h), 0.0); float nv_3 = metal::max(metal::dot(n, v_1), 0.0001); metal::float3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); metal::float3 spec = (_e25 * _e26) * _e24; return (((diffuse / metal::float3(3.1415927)) + (spec * specular)) * radiance) * nl_2; } metal::float3 sky( metal::float3 dir, constant LitU& Lit ) { metal::float4 _e4 = Lit.up; float a_3 = metal::acos(metal::clamp(metal::dot(metal::normalize(dir), _e4.xyz), -1.0, 1.0)); if (a_3 <= 1.5707964) { float c_23 = 1.0 - (a_3 / 1.5707964); float k_13 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_23, 0.000001), 6.6666665), 0.0, 1.0); metal::float4 _e30 = Lit.sky_horizon; metal::float4 _e34 = Lit.sky_top; return metal::mix(_e30.xyz, _e34.xyz, k_13); } float c_24 = (a_3 - 1.5707964) / 1.5707964; float k_14 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_24, 0.000001), 50.0), 0.0, 1.0); metal::float4 _e54 = Lit.ground_horizon; metal::float4 _e58 = Lit.ground_bottom; return metal::mix(_e54.xyz, _e58.xyz, k_14); } metal::float3 filmic_curve( metal::float3 x ) { return (((x * ((0.88 * x) + metal::float3(0.1 * 0.6))) + metal::float3(0.2 * 0.01)) / ((x * ((0.88 * x) + metal::float3(0.6))) + metal::float3(0.2 * 0.3))) - metal::float3(0.01 / 0.3); } metal::float3 aces_curve( metal::float3 c_4, float white ) { metal::float3 x_2 = metal::float3(1.8 * metal::dot(metal::float3(0.59719, 0.35458, 0.04823), c_4), 1.8 * metal::dot(metal::float3(0.076, 0.90834, 0.01566), c_4), 1.8 * metal::dot(metal::float3(0.0284, 0.13383, 0.83777), c_4)); metal::float3 t_2 = ((x_2 * (x_2 + metal::float3(0.0245786))) - metal::float3(0.000090537)) / ((x_2 * ((0.983729 * x_2) + metal::float3(0.432951))) + metal::float3(0.238081)); metal::float3 o_5 = metal::float3(metal::dot(metal::float3(1.60475, -0.53108, -0.07367), t_2), metal::dot(metal::float3(-0.10208, 1.10813, -0.00605), t_2), metal::dot(metal::float3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = 1.8 * white; float wt = ((w_1 * (w_1 + 0.0245786)) - 0.000090537) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081); return o_5 / metal::float3(wt); } metal::float3 agx_curve( metal::float3 c_5 ) { metal::float3 v_2 = {}; metal::float3x3 inset = metal::float3x3(metal::float3(0.54490817, 0.14044006, 0.08882741), metal::float3(0.37377945, 0.7541096, 0.17887713), metal::float3(0.08138498, 0.10543358, 0.73225)); metal::float3x3 outset = metal::float3x3(metal::float3(1.964551, -0.29932243, -0.16436833), metal::float3(-0.85585845, 1.3264511, -0.23822464), metal::float3(-0.10886711, -0.02708402, 1.4026654)); v_2 = inset * metal::max(c_5, metal::float3(0.0000000002)); metal::float3 _e34 = v_2; v_2 = (metal::clamp(metal::log2(_e34), metal::float3(-12.473931), metal::float3(4.0260687)) - metal::float3(-12.473931)) / metal::float3(4.0260687 - -12.473931); metal::float3 _e44 = v_2; metal::float3 _e45 = v_2; metal::float3 x2_ = _e44 * _e45; metal::float3 x4_ = x2_ * x2_; metal::float3 _e48 = v_2; metal::float3 _e56 = v_2; metal::float3 _e64 = v_2; metal::float3 p_7 = (((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_); return outset * metal::pow(metal::max(p_7, metal::float3(0.0000000001)), metal::float3(2.4)); } metal::float3 tonemap( metal::float3 c_in, constant LitU& Lit ) { float _e4 = Lit.tone.x; metal::float3 c_25 = metal::max(c_in * _e4, metal::float3(0.0)); float white_1 = Lit.tone.y; uint mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return ((white_1 * c_25) + c_25) / ((c_25 * white_1) + metal::float3(white_1)); } if (mode == TONEMAP_FILMIC) { metal::float3 _e27 = filmic_curve(c_25); metal::float3 _e29 = filmic_curve(metal::float3(white_1)); return _e27 / _e29; } if (mode == TONEMAP_ACES) { metal::float3 _e33 = aces_curve(c_25, white_1); return _e33; } if (mode == TONEMAP_AGX) { metal::float3 _e36 = agx_curve(c_25); return _e36; } return c_25; } float emerge_hash( metal::float3 p_1 ) { metal::float3 q = {}; q = metal::fract(p_1 * 0.1031); metal::float3 _e5 = q; metal::float3 _e6 = q; metal::float3 _e7 = q; q = _e5 + metal::float3(metal::dot(_e6, _e7.zyx + metal::float3(31.32))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return metal::fract((_e16 + _e18) * _e21); } float emerge_noise( metal::float3 p_2 ) { metal::float3 i_13 = metal::floor(p_2); metal::float3 f = metal::fract(p_2); metal::float3 u_1 = (f * f) * (metal::float3(3.0) - (2.0 * f)); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 0.0)); float _e24 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 0.0)); float _e30 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 0.0)); float a_4 = metal::mix(metal::mix(_e10, _e16, u_1.x), metal::mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash(i_13 + metal::float3(0.0, 0.0, 1.0)); float _e46 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 1.0)); float _e54 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 1.0)); float _e60 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 1.0)); float b_2 = metal::mix(metal::mix(_e40, _e46, u_1.x), metal::mix(_e54, _e60, u_1.x), u_1.y); return metal::mix(a_4, b_2, u_1.z); } float emerge_reveal( metal::float3 world_2, metal::float2 pixel, constant ObjectU& O ) { float n_1 = {}; uint _e6 = O.extra.x; if (SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true) { return 1.0; } float e_3 = O.normal[0].w; metal::float3 w_2 = world_2 * EMERGE_SCALE; float _e21 = emerge_noise(w_2); float _e29 = emerge_noise((w_2 * 2.7) + metal::float3(17.1)); n_1 = metal::smoothstep(0.2, 0.8, (_e21 * 0.65) + (_e29 * 0.35)); if (pixel.x >= 0.0) { float ign = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(pixel), metal::float2(0.06711056, 0.00583715)))); float _e49 = n_1; n_1 = metal::clamp(_e49 + ((ign - 0.5) * EMERGE_DITHER), 0.0, 1.0); } float _e60 = n_1; return ((e_3 * 1.8) - _e60) / EMERGE_EDGE; } metal::float3 emerge_tint( metal::float3 c_6, float r, constant ObjectU& O, constant LitU& Lit ) { bool local_7 = {}; uint _e6 = O.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = r >= 1.0; } else { local_7 = true; } bool _e17 = local_7; if (SPEC_EMERGE ? _e17 : true) { return c_6; } uint _e23 = O.extra.w; metal::float3 _e26 = srgb_to_linear(metal::unpack_unorm4x8_to_float(_e23).xyz); metal::float3 _e27 = tonemap(_e26, Lit); return metal::mix(_e27, c_6, metal::smoothstep(0.0, 1.0, r)); } metal::float3 item_fade( metal::float3 c_7, constant ObjectU& O, constant LitU& Lit ) { uint _e5 = O.extra.x; if (SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true) { return c_7; } metal::float4 f_1 = O.normal[3]; metal::float3 _e17 = tonemap(f_1.xyz, Lit); return metal::mix(c_7, _e17, f_1.w); } metal::float3 sky_dir( metal::float3 d, constant SkyU& Sky ) { metal::float4x4 _e3 = Sky.to_sky; return metal::normalize((_e3 * metal::float4(d, 0.0)).xyz); } float sky_curve( float c_8, float curve ) { return metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_8, 0.000001), 1.0 / curve), 0.0, 1.0); } metal::float3 procedural_sky( metal::float3 d_1, constant SkyU& Sky ) { metal::float3 sky_1 = {}; uint i = 0u; float v_6 = metal::acos(metal::clamp(d_1.y, -1.0, 1.0)); metal::float4 _e8 = Sky.sky_horizon; metal::float4 _e12 = Sky.sky_top; float _e21 = Sky.sky_top.w; float _e22 = sky_curve(1.0 - (v_6 / 1.5707964), _e21); float _e27 = Sky.sky_horizon.w; sky_1 = metal::mix(_e8.xyz, _e12.xyz, _e22) * _e27; uint _e33 = Sky.flags.z; uint suns = metal::min(_e33, SKY_SUNS); uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { uint _e79 = i; i = _e79 + 1u; } loop_init_1 = false; uint _e38 = i; if (_e38 < suns) { } else { break; } { uint _e42 = i; SunU sun = Sky.suns.inner[metal::min(unsigned(_e42), 3u)]; float size = sun.direction.w; float a_5 = metal::acos(metal::clamp(metal::dot(sun.direction.xyz, d_1), -1.0, 1.0)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { float _e60 = Sky.sun.x; if (a_5 < _e60) { float _e66 = Sky.sun.x; float c2_ = (a_5 - size) / (_e66 - size); metal::float3 _e71 = sky_1; float _e75 = Sky.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = metal::mix(sun.color.xyz, _e71, _e76); } } } } metal::float4 _e83 = Sky.ground_horizon; metal::float4 _e87 = Sky.ground_bottom; float _e96 = Sky.ground_bottom.w; float _e97 = sky_curve((v_6 - 1.5707964) / 1.5707964, _e96); float _e102 = Sky.ground_horizon.w; metal::float3 ground = metal::mix(_e83.xyz, _e87.xyz, _e97) * _e102; metal::float3 _e104 = sky_1; float _e112 = Sky.sun.z; return ((d_1.y >= 0.0) ? _e104 : ground) * _e112; } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } int naga_mod(int lhs, int rhs) { int divisor = metal::select(rhs, 1, (lhs == (-2147483647 - 1) & rhs == -1) | (rhs == 0)); return lhs - (lhs / divisor) * divisor; } metal::float3 panorama( metal::float3 d_2, constant SkyU& Sky, metal::texture2d t_panorama, metal::sampler s_panorama ) { metal::float2 uv_4 = metal::float2(metal::fract(metal::atan2(d_2.x, -(d_2.z)) / 6.2831855), metal::acos(metal::clamp(d_2.y, -1.0, 1.0)) / PI); uint _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { metal::float4 _e27 = t_panorama.sample(s_panorama, uv_4, metal::level(0.0)); float _e32 = Sky.sun.z; return _e27.xyz * _e32; } metal::int2 size_1 = static_cast(metal::uint2(t_panorama.get_width(0), t_panorama.get_height(0))); int x_3 = naga_mod(as_type(as_type(naga_mod(naga_f2i32(metal::floor(uv_4.x * static_cast(size_1.x))), size_1.x)) + as_type(size_1.x)), size_1.x); int y = metal::clamp(naga_f2i32(metal::floor(uv_4.y * static_cast(size_1.y))), 0, as_type(as_type(size_1.y) - as_type(1))); uint clamped_lod_e64 = metal::min(uint(0), t_panorama.get_num_mip_levels() - 1); metal::float4 _e64 = t_panorama.read(metal::min(metal::uint2(metal::int2(x_3, y)), metal::uint2(t_panorama.get_width(clamped_lod_e64), t_panorama.get_height(clamped_lod_e64)) - 1), clamped_lod_e64); float _e69 = Sky.sun.z; return _e64.xyz * _e69; } metal::float3 sh_irradiance( metal::float3 n_2, constant SkyU& Sky ) { metal::float3 c_9 = {}; metal::float4 _e4 = Sky.sh.inner[0]; c_9 = _e4.xyz * 0.282095; metal::float3 _e9 = c_9; metal::float4 _e13 = Sky.sh.inner[1]; c_9 = _e9 + (_e13.xyz * (0.488603 * n_2.y)); metal::float3 _e20 = c_9; metal::float4 _e24 = Sky.sh.inner[2]; c_9 = _e20 + (_e24.xyz * (0.488603 * n_2.z)); metal::float3 _e31 = c_9; metal::float4 _e35 = Sky.sh.inner[3]; c_9 = _e31 + (_e35.xyz * (0.488603 * n_2.x)); metal::float3 _e42 = c_9; metal::float4 _e46 = Sky.sh.inner[4]; c_9 = _e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y)); metal::float3 _e55 = c_9; metal::float4 _e59 = Sky.sh.inner[5]; c_9 = _e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z)); metal::float3 _e68 = c_9; metal::float4 _e72 = Sky.sh.inner[6]; c_9 = _e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0))); metal::float3 _e85 = c_9; metal::float4 _e89 = Sky.sh.inner[7]; c_9 = _e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z)); metal::float3 _e98 = c_9; metal::float4 _e102 = Sky.sh.inner[8]; c_9 = _e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y)))); metal::float3 _e115 = c_9; return metal::max(_e115, metal::float3(0.0)); } metal::float3 radiance_1( metal::float3 d_3, float roughness, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { uint _e5 = Sky.flags.y; float top_1 = static_cast(metal::max(_e5, 1u) - 1u); metal::float4 _e14 = t_radiance.sample(s_radiance, d_3, metal::level(roughness * top_1)); return _e14.xyz; } metal::float2 env_brdf_approx( float roughness_1, float nv_1 ) { metal::float4 r_6 = (roughness_1 * metal::float4(-1.0, -0.0275, -0.572, 0.022)) + metal::float4(1.0, 0.0425, 1.04, -0.04); float a004_ = (metal::min(r_6.x * r_6.x, metal::exp2(-9.28 * nv_1)) * r_6.x) + r_6.y; return (metal::float2(-1.04, 1.04) * a004_) + r_6.zw; } float pow8_( float x_1 ) { float x2_1 = metal::max(x_1, 0.0) * metal::max(x_1, 0.0); float x4_1 = x2_1 * x2_1; return x4_1 * x4_1; } metal::float3 fog_sun_scatter( metal::float3 fc, metal::float3 dir_1, constant LitU& Lit, constant SkyU& Sky ) { metal::float3 c_10 = {}; uint k_4 = 0u; c_10 = fc; float _e6 = Sky.fog_color.w; if (_e6 > 0.001) { uint _e9 = pool_sun_count(Lit); uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { uint _e51 = k_4; k_4 = _e51 + 1u; } loop_init_2 = false; uint _e12 = k_4; if (_e12 < _e9) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14, Lit); uint _e21 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].info.x; if (_e21 == LIGHT_DIRECTIONAL) { metal::float3 _e24 = c_10; metal::float4 _e29 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].color; metal::float4 _e38 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].direction; float _e42 = pow8_(metal::dot(dir_1, -(_e38.xyz))); float _e47 = Sky.fog_color.w; c_10 = _e24 + (((_e29.xyz / metal::float3(3.1415927)) * _e42) * _e47); } } } } metal::float3 _e53 = c_10; return _e53; } metal::float3 sky_fog( metal::float3 c_11, metal::float3 dir_2, constant LitU& Lit, constant SkyU& Sky ) { metal::float4 _e4 = Sky.fog_color; float _e9 = Sky.fog_depth.w; metal::float3 _e11 = fog_sun_scatter(metal::mix(_e4.xyz, c_11, _e9), dir_2, Lit, Sky); float _e15 = Sky.fog.y; return metal::mix(c_11, _e11, _e15); } metal::float3 surface_fog( metal::float3 c_12, metal::float3 world_3, metal::float3 dir_3, constant Globals& G, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { float dist = {}; float amount = {}; metal::float3 fc_1 = {}; bool local_8 = {}; metal::float4x4 _e5 = G.view; float depth = -((_e5 * metal::float4(world_3, 1.0)).z); metal::float4 _e13 = G.camera_pos; dist = metal::distance(world_3, _e13.xyz); float _e20 = Sky.fog_origin.w; if (_e20 > 0.5) { float _e26 = Sky.fog_origin.x; dist = metal::max(depth - _e26, 0.0); } uint _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { float _e42 = Sky.fog_depth.x; float _e46 = Sky.fog_depth.y; float _e47 = dist; float z = metal::smoothstep(_e42, _e46, _e47); float _e54 = Sky.fog_depth.z; float _e63 = Sky.fog.x; amount = ((z > 0.0) ? metal::pow(metal::max(z, 0.000001), _e54) : 0.0) * _e63; } else { float _e65 = dist; float _e70 = Sky.fog.x; amount = 1.0 - metal::exp(metal::min(0.0, -(_e65) * _e70)); } float _e80 = Sky.fog.w; if (metal::abs(_e80) >= 0.0001) { metal::float4 _e86 = Lit.up; float y_1 = metal::dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = Sky.fog.z; float _e98 = Sky.fog.w; amount = metal::max(_e89, 1.0 - metal::exp(metal::min(0.0, (y_1 - _e93) * _e98))); } float _e106 = amount; amount = metal::clamp(_e106, 0.0, 1.0); metal::float4 _e112 = Sky.fog_color; fc_1 = _e112.xyz; uint _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { float _e129 = Sky.fog_depth.w; local_8 = _e129 > 0.0; } else { local_8 = false; } bool _e133 = local_8; if (SPEC_AMBIENT_SKY ? _e133 : false) { float _e139 = Sky.fog_origin.y; float _e144 = Sky.fog_origin.z; float _e148 = Sky.fog_origin.y; float t_3 = metal::clamp((depth - _e139) / metal::max(_e144 - _e148, 0.000001), 0.0, 1.0); uint _e159 = Sky.flags.y; float top_2 = static_cast(metal::max(_e159, 2u) - 1u); float rough = metal::mix(1.0 / top_2, 1.0, 1.0 - t_3); metal::float3 _e171 = fc_1; metal::float3 _e172 = sky_dir(dir_3, Sky); metal::float3 _e173 = radiance_1(_e172, rough, Sky, t_radiance, s_radiance); float _e177 = Sky.sun.w; float _e182 = Sky.fog_depth.w; fc_1 = metal::mix(_e171, _e173 * _e177, _e182); } metal::float3 _e184 = fc_1; metal::float3 _e185 = fog_sun_scatter(_e184, dir_3, Lit, Sky); fc_1 = _e185; metal::float3 _e186 = fc_1; float _e187 = amount; return metal::mix(c_12, _e186, _e187); } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::float2 fog_chord( uint k_5, metal::float3 o, metal::float3 d_4, float t_end_ray, constant FogU& Fog ) { metal::float2 r_1 = {}; float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].albedo.w; uint shape = naga_f2u32(_e9); float _e16 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].emission.w; float t_end_1 = metal::min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return metal::float2(0.0, t_end_1); } metal::float4 _e26 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].size; metal::float3 h_1 = _e26.xyz * 0.5; metal::float3 dd = metal::select(d_4, metal::float3(0.000000000001), metal::abs(d_4) < metal::float3(0.000000000001)); metal::float3 sa = (-(h_1) - o) / dd; metal::float3 sb = (h_1 - o) / dd; metal::float3 s_in = metal::min(sa, sb); metal::float3 s_out = metal::max(sa, sb); r_1 = metal::float2(metal::max(0.0, s_in.y), metal::min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = metal::float2(metal::max(metal::max(_e60, s_in.x), s_in.z), metal::min(metal::min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = metal::dot(d_4 / h_1, d_4 / h_1); b = metal::dot(o / h_1, d_4 / h_1); c_13 = metal::dot(o / h_1, o / h_1) - 1.0; } else { float rad = metal::min(h_1.x, h_1.z); float k_15 = (shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0; float w_3 = h_1.y - o.y; a = ((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y); b = ((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y); c_13 = ((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad)); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = (_e139 * _e140) - (_e142 * _e143); float _e146 = a; if (metal::abs(_e146) < 0.000000000001) { float _e150 = b; if (metal::abs(_e150) < 0.000000000001) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = (_e157 > 0.0) ? -1.0 : _e156; } else { float _e162 = b; if (_e162 > 0.0) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = metal::min(_e167, -(_e168) / (2.0 * _e170)); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = metal::max(_e177, -(_e178) / (2.0 * _e180)); } } } else { if (disc < 0.0) { float _e189 = r_1.y; float _e190 = a; r_1.y = (_e190 > 0.0) ? -1.0 : _e189; } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = metal::min((-(_e195) - metal::sqrt(disc)) / _e199, (-(_e201) + metal::sqrt(disc)) / _e205); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = metal::max((-(_e208) - metal::sqrt(disc)) / _e212, (-(_e214) + metal::sqrt(disc)) / _e218); float _e221 = a; if (_e221 > 0.0) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = metal::float2(metal::max(_e225, lo_2), metal::min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if (_e232 < metal::min(_e234, lo_2)) { float _e239 = r_1.y; r_1.y = metal::min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = metal::max(_e243, hi_2); } } } } metal::float2 _e245 = r_1; return _e245; } float fog_density( uint k_6, metal::float3 p_3, metal::float3 lp, constant FogU& Fog ) { float rho = {}; float sdf = 0.0; FogEntryU e_4 = Fog.entries.inner[metal::min(unsigned(k_6), 15u)]; metal::float4 _e14 = Fog.up; rho = e_4.material.x * metal::min(metal::exp2(-(e_4.material.y) * (metal::dot(p_3, _e14.xyz) - e_4.material.w)), 1.0); if (e_4.material.z > 0.0) { uint shape_1 = naga_f2u32(e_4.albedo.w); metal::float3 h_2 = e_4.size.xyz * 0.5; float rad_1 = metal::min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { float k0_ = metal::length(lp / h_2); sdf = (k0_ * (k0_ - 1.0)) / metal::max(metal::length(lp / (h_2 * h_2)), 0.000000000001); } else { if (shape_1 == FOG_SHAPE_BOX) { metal::float3 q_3 = metal::abs(lp) - h_2; sdf = metal::length(metal::max(q_3, metal::float3(0.0))) + metal::min(metal::max(q_3.x, metal::max(q_3.y, q_3.z)), 0.0); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { metal::float2 q_4 = metal::float2(metal::length(lp.xz) - rad_1, metal::abs(lp.y) - h_2.y); sdf = metal::min(metal::max(q_4.x, q_4.y), 0.0) + metal::length(metal::max(q_4, metal::float2(0.0))); } else { metal::float2 n_11 = metal::normalize(metal::float2(1.0 / metal::max(0.001, rad_1 * 0.5), 1.0 / metal::max(0.001, h_2.y))); sdf = metal::max(metal::dot(n_11, metal::float2(metal::length(lp.xz), lp.y - h_2.y)), -(h_2.y) - lp.y); } } } float _e116 = rho; float _e117 = sdf; rho = _e116 * metal::pow(metal::clamp((-2.0 * _e117) / e_4.size.w, 0.0, 1.0), e_4.material.z); } float _e130 = rho; return _e130; } float fog_falloff_depth( uint k_7, float a_1, float b_1, float t0_, float t1_, constant FogU& Fog ) { metal::float4 m_4 = Fog.entries.inner[metal::min(unsigned(k_7), 15u)].material; float hf = m_4.y; if ((hf * b_1) == 0.0) { return (m_4.x * (t1_ - t0_)) * metal::min(metal::exp2(-(hf) * a_1), 1.0); } float s_2 = metal::clamp(-(a_1) / b_1, t0_, t1_); float lo_3 = (b_1 > 0.0) ? s_2 : t0_; float hi_3 = (b_1 > 0.0) ? t1_ : s_2; float x_4 = ((hf * metal::abs(b_1)) * (hi_3 - lo_3)) * 0.6931472; float g = (x_4 < 0.01) ? (1.0 - (x_4 * (0.5 - (x_4 * (0.16666667 - (x_4 / 24.0)))))) : ((1.0 - metal::exp(-(x_4))) / x_4); float top_3 = metal::min(metal::exp2(-(hf) * metal::max(a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3)), 0.0)), 1.0); return m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g)); } float omni_attenuation( float d_5, float inv_range, float decay ) { float nd = {}; nd = d_5 * inv_range; float _e5 = nd; float _e6 = nd; nd = _e5 * _e6; float _e8 = nd; float _e9 = nd; nd = _e8 * _e9; float _e11 = nd; nd = metal::max(1.0 - _e11, 0.0); float _e16 = nd; float _e17 = nd; nd = _e16 * _e17; float _e19 = nd; return _e19 * metal::pow(metal::max(d_5, 0.0001), -(decay)); } metal::float3 fog_light( uint n_3, metal::float3 p_4, metal::float3 dir_4, constant LitU& Lit, constant FogU& Fog ) { metal::float3 sum = {}; uint k_8 = 0u; metal::float3 l_1 = {}; float atten = {}; metal::float4 _e5 = Fog.ambient; float _e10 = Fog.params.y; sum = _e5.xyz * _e10; float g_1 = Fog.params.x; metal::uint4 lights = Fog.entries.inner[metal::min(unsigned(n_3), 15u)].lights; uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { uint _e138 = k_8; k_8 = _e138 + 1u; } loop_init_3 = false; uint _e24 = k_8; if (_e24 < metal::min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = metal::min((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u, 63u); LightU li = Lit.lights.inner[metal::min(unsigned(i_14), 63u)]; l_1 = -(li.direction.xyz); atten = 1.0; if (li.info.x != LIGHT_DIRECTIONAL) { metal::float3 rel = li.position.xyz - p_4; l_1 = rel / metal::float3(metal::max(metal::length(rel), 0.000001)); float _e72 = omni_attenuation(metal::length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { metal::float3 _e77 = l_1; float rim = metal::max(0.0001, (1.0 - metal::max(metal::dot(-(_e77), li.direction.xyz), li.spot.x)) / metal::max(1.0 - li.spot.x, 0.000001)); float _e96 = atten; atten = _e96 * (1.0 - metal::pow(rim, li.spot.y)); } } metal::float3 _e108 = l_1; float q_5 = (1.0 + (g_1 * g_1)) - ((2.0 * g_1) * metal::dot(dir_4, _e108)); metal::float3 _e112 = sum; float _e115 = atten; float _e133 = Fog.light_fog.inner[metal::min(unsigned(i_14 >> 2u), 15u)][metal::min(unsigned(i_14 & 3u), 3u)]; sum = _e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * metal::sqrt(q_5))) * _e133)); } } metal::float3 _e140 = sum; return _e140; } metal::float4 fog_entry( uint k_9, metal::float3 o_1, metal::float3 d_6, metal::float2 ch, constant LitU& Lit, constant FogU& Fog ) { float split = {}; bool local_9 = {}; bool local_10 = {}; metal::float3 q_1 = metal::float3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = {}; bool local_12 = {}; FogEntryU e_5 = Fog.entries.inner[metal::min(unsigned(k_9), 15u)]; metal::float3 lo_4 = (e_5.to_local * metal::float4(o_1, 1.0)).xyz; metal::float3 ld = (e_5.to_local * metal::float4(d_6, 0.0)).xyz; metal::float4 _e20 = Fog.up; float a_6 = metal::dot(o_1, _e20.xyz) - e_5.material.w; metal::float4 _e28 = Fog.up; float b_3 = metal::dot(d_6, _e28.xyz); bool edge = e_5.material.z > 0.0; split = (ch.x + ch.y) * 0.5; if (e_5.material.y > 0.0) { local_9 = (-(a_6) / b_3) > ch.x; } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = (-(a_6) / b_3) < ch.y; } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = -(a_6) / b_3; } uint2 loop_bound_4 = uint2(4294967295u); bool loop_init_4 = true; while(true) { if (metal::all(loop_bound_4 == uint2(0u))) { break; } loop_bound_4 -= uint2(loop_bound_4.y == 0u, 1u); if (!loop_init_4) { uint _e160 = i_1; i_1 = _e160 + 1u; } loop_init_4 = false; uint _e70 = i_1; if (_e70 < (edge ? 12u : 4u)) { } else { break; } { uint _e75 = i_1; uint j = _e75 & 3u; if (!((j == 0u))) { local_11 = j == 3u; } else { local_11 = true; } bool _e88 = local_11; float x_5 = _e88 ? FOG_GL_X0_ : FOG_GL_X1_; if (!((j == 0u))) { local_12 = j == 3u; } else { local_12 = true; } bool _e100 = local_12; float w_4 = _e100 ? FOG_GL_W0_ : FOG_GL_W1_; float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; metal::float2 seg = (_e112 < 4u) ? ch : ((_e108 < 8u) ? metal::float2(ch.x, _e106) : metal::float2(_e102, ch.y)); float half_len = (seg.y - seg.x) * 0.5; float t_4 = ((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_5) : x_5)); metal::float3 p_8 = o_1 + (d_6 * t_4); float _e136 = fog_density(k_9, p_8, lo_4 + (ld * t_4), Fog); uint _e137 = i_1; if (_e137 < 4u) { metal::float3 _e140 = q_1; metal::float3 _e143 = fog_light(k_9, p_8, d_6, Lit, Fog); q_1 = _e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * metal::clamp(_e136, 0.0, 1.0))); } else { float _e155 = tau; tau = _e155 + ((w_4 * half_len) * _e136); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y, Fog); tau = _e165; } metal::float3 _e166 = q_1; float _e167 = tau; return metal::float4(_e166, _e167); } metal::float3 fog_integrate( metal::float3 c_14, metal::float3 o_2, metal::float3 d_7, float t_end, uint list, constant LitU& Lit, constant FogU& Fog ) { type_28 at = {}; type_29 chords = {}; uint m = 0u; uint i_2 = 0u; bool local_13 = {}; type_30 parts = {}; uint i_3 = 0u; uint n_4 = 0u; float avail = {}; uint i_4 = {}; uint i_5 = {}; metal::float3 q_2 = metal::float3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all = list >= FOG_LIST_ALL; uint2 loop_bound_5 = uint2(4294967295u); bool loop_init_5 = true; while(true) { if (metal::all(loop_bound_5 == uint2(0u))) { break; } loop_bound_5 -= uint2(loop_bound_5.y == 0u, 1u); if (!loop_init_5) { uint _e72 = i_2; i_2 = _e72 + 1u; } loop_init_5 = false; uint _e13 = i_2; uint _e18 = Fog.counts.x; if (_e13 < (all ? metal::min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u)) { } else { break; } { uint _e23 = i_2; uint byte = (list >> ((_e23 & 3u) * 8u)) & 127u; if (!(all)) { local_13 = byte == 0u; } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = all ? _e42 : (metal::min(byte, MAX_FRAME_FOG_VOLUMES) - 1u); metal::float4x4 to_local = Fog.entries.inner[metal::min(unsigned(k_16), 15u)].to_local; metal::float2 _e57 = fog_chord(k_16, (to_local * metal::float4(o_2, 1.0)).xyz, (to_local * metal::float4(d_7, 0.0)).xyz, t_end, Fog); if (_e57.y > _e57.x) { uint _e61 = m; at.inner[metal::min(unsigned(_e61), 3u)] = k_16; uint _e63 = m; chords.inner[metal::min(unsigned(_e63), 3u)] = _e57; uint _e66 = m; m = _e66 + 1u; uint _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } } uint2 loop_bound_6 = uint2(4294967295u); bool loop_init_6 = true; while(true) { if (metal::all(loop_bound_6 == uint2(0u))) { break; } loop_bound_6 -= uint2(loop_bound_6.y == 0u, 1u); if (!loop_init_6) { uint _e90 = i_3; i_3 = _e90 + 1u; } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if (_e77 < _e78) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at.inner[metal::min(unsigned(_e82), 3u)]; uint _e85 = i_3; metal::float2 _e87 = chords.inner[metal::min(unsigned(_e85), 3u)]; metal::float4 _e88 = fog_entry(_e84, o_2, d_7, _e87, Lit, Fog); parts.inner[metal::min(unsigned(_e80), 3u)] = _e88; } } uint2 loop_bound_7 = uint2(4294967295u); bool loop_init_7 = true; while(true) { if (metal::all(loop_bound_7 == uint2(0u))) { break; } loop_bound_7 -= uint2(loop_bound_7.y == 0u, 1u); if (!loop_init_7) { uint _e221 = n_4; n_4 = _e221 + 1u; } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if (_e94 < _e95) { } else { break; } { uint _e97 = n_4; float _e100 = parts.inner[metal::min(unsigned(_e97), 3u)].w; if (_e100 < 0.0) { avail = 0.0; i_4 = 0u; uint2 loop_bound_8 = uint2(4294967295u); bool loop_init_8 = true; while(true) { if (metal::all(loop_bound_8 == uint2(0u))) { break; } loop_bound_8 -= uint2(loop_bound_8.y == 0u, 1u); if (!loop_init_8) { uint _e153 = i_4; i_4 = _e153 + 1u; } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if (_e107 < _e108) { } else { break; } { uint _e110 = i_4; float _e113 = chords.inner[metal::min(unsigned(_e110), 3u)].y; uint _e114 = n_4; float _e117 = chords.inner[metal::min(unsigned(_e114), 3u)].y; uint _e119 = i_4; float _e122 = chords.inner[metal::min(unsigned(_e119), 3u)].x; uint _e123 = n_4; float _e126 = chords.inner[metal::min(unsigned(_e123), 3u)].x; uint _e131 = i_4; float _e134 = chords.inner[metal::min(unsigned(_e131), 3u)].y; uint _e135 = i_4; float _e138 = chords.inner[metal::min(unsigned(_e135), 3u)].x; float share = metal::max(metal::min(_e113, _e117) - metal::max(_e122, _e126), 0.0) / metal::max(_e134 - _e138, 0.000001); float _e143 = avail; uint _e144 = i_4; float _e147 = parts.inner[metal::min(unsigned(_e144), 3u)].w; avail = _e143 + (metal::max(_e147, 0.0) * share); } } uint _e155 = n_4; float _e158 = parts.inner[metal::min(unsigned(_e155), 3u)].w; float _e160 = avail; float f_2 = metal::min(-(_e158) / metal::max(_e160, 0.000000000001), 1.0); i_5 = 0u; uint2 loop_bound_9 = uint2(4294967295u); bool loop_init_9 = true; while(true) { if (metal::all(loop_bound_9 == uint2(0u))) { break; } loop_bound_9 -= uint2(loop_bound_9.y == 0u, 1u); if (!loop_init_9) { uint _e218 = i_5; i_5 = _e218 + 1u; } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if (_e168 < _e169) { } else { break; } { uint _e171 = i_5; float _e174 = parts.inner[metal::min(unsigned(_e171), 3u)].w; if (_e174 > 0.0) { uint _e177 = i_5; float _e180 = chords.inner[metal::min(unsigned(_e177), 3u)].y; uint _e181 = n_4; float _e184 = chords.inner[metal::min(unsigned(_e181), 3u)].y; uint _e186 = i_5; float _e189 = chords.inner[metal::min(unsigned(_e186), 3u)].x; uint _e190 = n_4; float _e193 = chords.inner[metal::min(unsigned(_e190), 3u)].x; uint _e198 = i_5; float _e201 = chords.inner[metal::min(unsigned(_e198), 3u)].y; uint _e202 = i_5; float _e205 = chords.inner[metal::min(unsigned(_e202), 3u)].x; float share_1 = metal::max(metal::min(_e180, _e184) - metal::max(_e189, _e193), 0.0) / metal::max(_e201 - _e205, 0.000001); uint _e210 = i_5; metal::float4 _e212 = parts.inner[metal::min(unsigned(_e210), 3u)]; parts.inner[metal::min(unsigned(_e210), 3u)] = _e212 * (1.0 - (share_1 * f_2)); } } } } } } uint2 loop_bound_10 = uint2(4294967295u); bool loop_init_10 = true; while(true) { if (metal::all(loop_bound_10 == uint2(0u))) { break; } loop_bound_10 -= uint2(loop_bound_10.y == 0u, 1u); if (!loop_init_10) { uint _e252 = i_6; i_6 = _e252 + 1u; } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if (_e230 < _e231) { } else { break; } { uint _e233 = i_6; float _e236 = parts.inner[metal::min(unsigned(_e233), 3u)].w; if (_e236 > 0.0) { metal::float3 _e239 = q_2; uint _e240 = i_6; metal::float4 _e242 = parts.inner[metal::min(unsigned(_e240), 3u)]; q_2 = _e239 + _e242.xyz; float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts.inner[metal::min(unsigned(_e246), 3u)].w; tau_1 = _e245 + _e249; } } } float _e254 = tau_1; float t_5 = metal::exp(-(_e254)); metal::float3 _e258 = q_2; float _e261 = tau_1; return (c_14 * t_5) + (_e258 * ((1.0 - t_5) / metal::max(_e261, 0.00001))); } metal::float3 fog_volumes( metal::float3 c_15, metal::float3 world_4, uint list_1, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_6 = (_e36 > 0.5) ? (world_4 - (back * (_e26 * metal::float4(world_4, 1.0)).z)) : _e22.xyz; float len = metal::length(world_4 - o_6); metal::float3 _e47 = fog_integrate(c_15, o_6, (world_4 - o_6) / metal::float3(metal::max(len, 0.000001)), len, list_1, Lit, Fog); return (len > 0.0) ? _e47 : c_15; } metal::float3 sky_fog_volumes( metal::float3 c_16, metal::float3 near_point, metal::float3 dir_5, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back_1 = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_7 = (_e36 > 0.5) ? (near_point - (back_1 * (_e26 * metal::float4(near_point, 1.0)).z)) : _e22.xyz; uint _e44 = Fog.counts.y; metal::float3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44, Lit, Fog); float _e49 = Fog.params.z; return metal::mix(c_16, _e45, _e49); } float shadow_factor( uint i_7, metal::float3 world_5, metal::float3 n_geo_1, metal::float3 l_2, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow ) { uint part = 0u; uint c_17 = 0u; bool local_14 = {}; bool local_15 = {}; bool local_16 = {}; float vis = 0.0; int dy = -1; int dx = {}; uint kind = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.x; metal::float4 _e14 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].position; metal::float3 light_pos = _e14.xyz; uint _e21 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.w; uint slot = metal::min(_e21, 15u); metal::float4 params = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].params; uint first = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.x; uint _e40 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.y; uint count = metal::max(_e40, 1u); metal::float4x4 _e45 = G.view; float view_depth = -((_e45 * metal::float4(world_5, 1.0)).z); if (kind == LIGHT_DIRECTIONAL) { float _e60 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade.y; if (view_depth > _e60) { return 1.0; } part = count - 1u; uint2 loop_bound_11 = uint2(4294967295u); bool loop_init_11 = true; while(true) { if (metal::all(loop_bound_11 == uint2(0u))) { break; } loop_bound_11 -= uint2(loop_bound_11.y == 0u, 1u); if (!loop_init_11) { uint _e79 = c_17; c_17 = _e79 + 1u; } loop_init_11 = false; uint _e67 = c_17; if (_e67 < count) { } else { break; } { uint _e73 = c_17; float _e75 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].splits[metal::min(unsigned(_e73), 3u)]; if (view_depth <= _e75) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; metal::float4 texel = Shadow.tiles.inner[metal::min(unsigned(metal::min(first + metal::min(_e83, count - 1u), 15u)), 15u)].texel; float t_6 = texel.x + (texel.y * metal::distance(world_5, light_pos)); metal::float3 p_9 = (world_5 + (n_geo_1 * ((params.y * metal::max(params.z, 1.0)) * t_6))) + (l_2 * (params.x * t_6)); if (kind == LIGHT_OMNI) { metal::float3 d_13 = p_9 - light_pos; metal::float3 a_7 = metal::abs(d_13); if (a_7.x >= a_7.y) { local_14 = a_7.x >= a_7.z; } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = (d_13.x >= 0.0) ? 0u : 1u; } else { if (a_7.y >= a_7.z) { part = (d_13.y >= 0.0) ? 2u : 3u; } else { part = (d_13.z >= 0.0) ? 4u : 5u; } } } uint _e145 = part; uint tile = metal::min(first + metal::min(_e145, count - 1u), 15u); metal::float4x4 _e156 = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].view_proj; metal::float4 clip_1 = _e156 * metal::float4(p_9, 1.0); if (clip_1.w <= 0.0) { return 1.0; } metal::float3 ndc = clip_1.xyz / metal::float3(clip_1.w); if (!((metal::abs(ndc.x) > 1.0))) { local_15 = metal::abs(ndc.y) > 1.0; } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = ndc.z > 1.0; } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } metal::float4 rect = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].rect; metal::float2 uv_5 = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); metal::float2 auv = rect.xy + (uv_5 * rect.zw); float texel_uv = Shadow.atlas.x; metal::float2 lo_5 = rect.xy + metal::float2(0.5 * texel_uv); metal::float2 hi_4 = (rect.xy + rect.zw) - metal::float2(0.5 * texel_uv); float r_7 = params.z; if (r_7 <= 0.0) { float _e235 = t_shadow.sample_compare(s_shadow, metal::clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { float spread = r_7 * texel_uv; uint2 loop_bound_12 = uint2(4294967295u); bool loop_init_12 = true; while(true) { if (metal::all(loop_bound_12 == uint2(0u))) { break; } loop_bound_12 -= uint2(loop_bound_12.y == 0u, 1u); if (!loop_init_12) { int _e265 = dy; dy = as_type(as_type(_e265) + as_type(1)); } loop_init_12 = false; int _e239 = dy; if (_e239 <= 1) { } else { break; } { dx = -1; uint2 loop_bound_13 = uint2(4294967295u); bool loop_init_13 = true; while(true) { if (metal::all(loop_bound_13 == uint2(0u))) { break; } loop_bound_13 -= uint2(loop_bound_13.y == 0u, 1u); if (!loop_init_13) { int _e262 = dx; dx = as_type(as_type(_e262) + as_type(1)); } loop_init_13 = false; int _e244 = dx; if (_e244 <= 1) { } else { break; } { int _e247 = dx; int _e249 = dy; metal::float2 tap = metal::clamp(auv + (metal::float2(static_cast(_e247), static_cast(_e249)) * spread), lo_5, hi_4); float _e255 = vis; float _e259 = t_shadow.sample_compare(s_shadow, tap, ndc.z); vis = _e255 + _e259; } } } } float _e267 = vis; vis = _e267 / 9.0; } if (kind == LIGHT_DIRECTIONAL) { metal::float4 fade_1 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade; float _e277 = vis; vis = metal::mix(_e277, 1.0, metal::smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return metal::mix(1.0, _e283, params.w); } metal::float3 probe_light( metal::float3 n_5, constant ObjectU& O ) { float _e5 = O.gi.inner[0].x; metal::float4 _e9 = O.gi.inner[0]; float _e17 = O.gi.inner[1].x; metal::float4 _e21 = O.gi.inner[1]; float _e29 = O.gi.inner[2].x; metal::float4 _e33 = O.gi.inner[2]; return metal::max(metal::float3(_e5 + metal::dot(_e9.yzw, n_5), _e17 + metal::dot(_e21.yzw, n_5), _e29 + metal::dot(_e33.yzw, n_5)), metal::float3(0.0)); } metal::float4 gi_diffuse( metal::float3 n_6, bool baked, metal::float3 baked_light, constant ObjectU& O ) { if (baked) { return metal::float4(baked_light, 1.0); } uint _e9 = O.extra.x; if (SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false) { metal::float3 _e16 = probe_light(n_6, O); return metal::float4(_e16, 1.0); } return metal::float4(0.0); } metal::float3 probe_face_uv( metal::float3 d_8 ) { float face = {}; float ma = {}; float sc = {}; float tc = {}; bool local_17 = {}; metal::float3 a_8 = metal::abs(d_8); if (a_8.x >= a_8.y) { local_17 = a_8.x >= a_8.z; } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if (d_8.x >= 0.0) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0.0) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0.0) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return metal::float3(_e56, ((_e57 / _e58) + 1.0) * 0.5, ((_e64 / _e65) + 1.0) * 0.5); } metal::float3 probe_texel( uint row, metal::float3 fuv, uint level_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { uint _e6 = Probe.counts.z; float n_12 = static_cast(metal::max(_e6 >> level_1, 1u)); float lo_6 = 0.5 / n_12; float u_2 = metal::clamp(fuv.y, lo_6, 1.0 - lo_6); float v_7 = metal::clamp(fuv.z, lo_6, 1.0 - lo_6); metal::float2 uv_6 = metal::float2((fuv.x + u_2) / 6.0, (static_cast(row) + v_7) / 8.0); metal::float4 _e33 = t_probes.sample(s_probes, uv_6, metal::level(static_cast(level_1))); return _e33.xyz; } metal::float3 probe_sample( uint row_1, metal::float3 d_9, float lod, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { bool local_18 = {}; uint _e6 = Probe.counts.y; uint levels = metal::max(_e6, 1u); float l_5 = metal::clamp(lod, 0.0, static_cast(levels - 1u)); uint m0_ = naga_f2u32(l_5); float t_7 = l_5 - static_cast(m0_); metal::float3 _e17 = probe_face_uv(d_9); metal::float3 _e18 = probe_texel(row_1, _e17, m0_, Probe, t_probes, s_probes); if (!((t_7 <= 0.0))) { local_18 = (m0_ + 1u) >= levels; } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } metal::float3 _e34 = probe_texel(row_1, _e17, m0_ + 1u, Probe, t_probes, s_probes); return (_e18 * (1.0 - t_7)) + (_e34 * t_7); } float probe_weight( ProbeEntryU p_5, metal::float3 world_6 ) { metal::float3 l_6 = (p_5.to_local * metal::float4(world_6, 1.0)).xyz; metal::float3 e_6 = p_5.extents.xyz; float d_14 = metal::min(e_6.x - metal::abs(l_6.x), metal::min(e_6.y - metal::abs(l_6.y), e_6.z - metal::abs(l_6.z))); if (d_14 < 0.0) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return metal::min(d_14 / p_5.extents.w, 1.0); } float probe_exit( float o_3, float d_10, float e_1 ) { if (d_10 > 0.0) { return (e_1 - o_3) / d_10; } if (d_10 < 0.0) { return (-(e_1) - o_3) / d_10; } return 300000000000000000000000000000000000000.0; } metal::float3 probe_lookup( ProbeEntryU p_6, metal::float3 world_7, metal::float3 dir_6 ) { metal::float3 d_15 = (p_6.to_local * metal::float4(dir_6, 0.0)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } metal::float3 o_8 = (p_6.to_local * metal::float4(world_7, 1.0)).xyz; metal::float3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_8 = metal::max(metal::min(_e24, metal::min(_e28, _e32)), 0.0); return (o_8 + (d_15 * t_8)) - p_6.offset.xyz; } metal::float4 probe_reflection( metal::float3 world_8, metal::float3 r_2, float roughness_2, uint probes, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc = metal::float3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = Probe.counts.x; uint count_1 = metal::min(_e12, MAX_PROBES); uint _e18 = Probe.counts.y; float lod_1 = roughness_2 * static_cast(metal::max(_e18, 1u) - 1u); uint2 loop_bound_14 = uint2(4294967295u); bool loop_init_14 = true; while(true) { if (metal::all(loop_bound_14 == uint2(0u))) { break; } loop_bound_14 -= uint2(loop_bound_14.y == 0u, 1u); if (!loop_init_14) { uint _e57 = i_8; i_8 = _e57 + 1u; } loop_init_14 = false; uint _e27 = i_8; if (_e27 < count_1) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = Probe.probes.inner[metal::min(unsigned(_e31), 7u)]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } float _e41 = probe_weight(p_10, world_8); if (_e41 <= 0.0) { continue; } metal::float3 _e44 = acc; metal::float3 _e47 = probe_lookup(p_10, world_8, r_2); metal::float3 _e48 = probe_sample(p_10.info.w, _e47, lod_1, Probe, t_probes, s_probes); acc = _e44 + ((_e48 * p_10.offset.w) * _e41); float _e54 = w_sum; w_sum = _e54 + _e41; } } float _e59 = w_sum; if (_e59 > 1.0) { metal::float3 _e62 = acc; float _e63 = w_sum; acc = _e62 / metal::float3(_e63); w_sum = 1.0; } metal::float3 _e67 = acc; float _e68 = w_sum; return metal::float4(_e67, _e68); } metal::float4 probe_ambient( metal::float3 world_9, metal::float3 n_7, uint probes_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc_1 = metal::float3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = {}; metal::float3 c_18 = {}; uint _e11 = Probe.counts.x; uint count_2 = metal::min(_e11, MAX_PROBES); uint _e17 = Probe.counts.y; uint last = metal::max(_e17, 1u) - 1u; uint2 loop_bound_15 = uint2(4294967295u); bool loop_init_15 = true; while(true) { if (metal::all(loop_bound_15 == uint2(0u))) { break; } loop_bound_15 -= uint2(loop_bound_15.y == 0u, 1u); if (!loop_init_15) { uint _e73 = i_9; i_9 = _e73 + 1u; } loop_init_15 = false; uint _e24 = i_9; if (_e24 < count_2) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = Probe.probes.inner[metal::min(unsigned(_e28), 7u)]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = p_11.info.y == PROBE_AMBIENT_DISABLED; } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if (_e47 <= 0.0) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { metal::float3 _e64 = probe_face_uv((p_11.to_local * metal::float4(n_7, 0.0)).xyz); metal::float3 _e65 = probe_texel(p_11.info.w, _e64, last, Probe, t_probes, s_probes); c_18 = _e65; } metal::float3 _e66 = acc_1; metal::float3 _e67 = c_18; acc_1 = _e66 + (_e67 * _e47); float _e70 = w_sum_1; w_sum_1 = _e70 + _e47; } } float _e75 = w_sum_1; if (_e75 > 1.0) { metal::float3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = _e78 / metal::float3(_e79); w_sum_1 = 1.0; } metal::float3 _e83 = acc_1; float _e84 = w_sum_1; return metal::float4(_e83, _e84); } metal::float4 skin_row( uint k_10, uint r_3, constant SkinU& Skin ) { metal::float4 _e10 = Skin.rows.inner[metal::min(unsigned((metal::min(k_10, 254u) * 3u) + r_3), 764u)]; return _e10; } SkinRows skin_rows( SkinIn s_1, constant SkinU& Skin ) { SkinRows m_1 = {}; metal::uint4 j_1 = s_1.joints; metal::float4 w_5 = s_1.weights; metal::float4 _e8 = skin_row(s_1.joints.x, 0u, Skin); metal::float4 _e13 = skin_row(s_1.joints.y, 0u, Skin); metal::float4 _e19 = skin_row(s_1.joints.z, 0u, Skin); metal::float4 _e25 = skin_row(s_1.joints.w, 0u, Skin); m_1.r0_ = (((s_1.weights.x * _e8) + (s_1.weights.y * _e13)) + (s_1.weights.z * _e19)) + (s_1.weights.w * _e25); metal::float4 _e32 = skin_row(s_1.joints.x, 1u, Skin); metal::float4 _e37 = skin_row(s_1.joints.y, 1u, Skin); metal::float4 _e43 = skin_row(s_1.joints.z, 1u, Skin); metal::float4 _e49 = skin_row(s_1.joints.w, 1u, Skin); m_1.r1_ = (((s_1.weights.x * _e32) + (s_1.weights.y * _e37)) + (s_1.weights.z * _e43)) + (s_1.weights.w * _e49); metal::float4 _e56 = skin_row(s_1.joints.x, 2u, Skin); metal::float4 _e61 = skin_row(s_1.joints.y, 2u, Skin); metal::float4 _e67 = skin_row(s_1.joints.z, 2u, Skin); metal::float4 _e73 = skin_row(s_1.joints.w, 2u, Skin); m_1.r2_ = (((s_1.weights.x * _e56) + (s_1.weights.y * _e61)) + (s_1.weights.z * _e67)) + (s_1.weights.w * _e73); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings( thread CustomOut& o_4, thread metal::float2& frame_uv ) { metal::float2 _e3 = frame_uv; o_4.hedra_v0_ = metal::float4(_e3, 0.0, 0.0); return; } void hedra_load_varyings( CustomOut i_10, thread metal::float2& frame_uv ) { frame_uv = i_10.hedra_v0_.xy; return; } void light( ) { return; } void vertex_( constant Globals& G, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float2& UV, thread metal::float4& COLOR, thread metal::float4x4& MODEL_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, constant HedraParams& hedra_p, thread metal::float2& frame_uv ) { metal::float4 view_pos = {}; bool local_20 = {}; metal::float4 _e2 = MODEL_MATRIX[0]; float scale = metal::length(_e2.xyz); metal::float4x4 _e6 = MODELVIEW_MATRIX; view_pos = _e6 * metal::float4(0.0, 0.0, 0.0, 1.0); metal::float4 _e14 = view_pos; metal::float3 _e17 = VERTEX; view_pos = metal::float4(_e14.xyz + metal::float3(_e17.xy * scale, 0.0), 1.0); metal::float4x4 _e27 = G.proj; metal::float4 _e28 = view_pos; metal::float4 clip_2 = _e27 * _e28; float _e33 = hedra_p.snap_resolution.x; if (_e33 > 0.0) { local_20 = clip_2.w > 0.0001; } else { local_20 = false; } bool _e42 = local_20; if (_e42) { metal::float2 _e45 = hedra_p.snap_resolution; metal::float2 half_res = _e45 * 0.5; metal::float2 snapped = metal::rint((clip_2.xy / metal::float2(clip_2.w)) * half_res) / half_res; metal::float4x4 _e56 = INV_PROJECTION_MATRIX; metal::float4 back_2 = _e56 * metal::float4(snapped * clip_2.w, clip_2.z, clip_2.w); view_pos = metal::float4(back_2.xyz / metal::float3(back_2.w), 1.0); } metal::float4 _e70 = view_pos; VERTEX = _e70.xyz; NORMAL = metal::float3(0.0, 0.0, 1.0); float _e79 = hedra_p.frames_x; float _e82 = hedra_p.frames_y; float count_3 = metal::max(_e79 * _e82, 1.0); float _e88 = COLOR.w; float frame = metal::min(metal::floor((1.0 - metal::clamp(_e88, 0.0, 1.0)) * count_3), count_3 - 1.0); float _e101 = hedra_p.frames_x; float _e105 = hedra_p.frames_x; metal::float2 cell = metal::float2(metal::fmod(frame, _e101), metal::floor(frame / _e105)); metal::float2 _e111 = UV; float _e115 = hedra_p.frames_x; float _e118 = hedra_p.frames_y; frame_uv = (cell + _e111) / metal::float2(_e115, _e118); return; } void fragment_( thread metal::float4& COLOR, thread metal::float3& ALBEDO, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, constant HedraParams& hedra_p, metal::texture2d sprite_sheet, metal::sampler SAMPLER_NEAREST_CLAMP, thread metal::float2& frame_uv ) { metal::float2 _e3 = frame_uv; metal::float4 texel_1 = sprite_sheet.sample(SAMPLER_NEAREST_CLAMP, _e3); metal::float3 _e9 = hedra_p.tint; metal::float4 _e12 = COLOR; ALBEDO = (texel_1.xyz * _e9) * _e12.xyz; ALPHA = texel_1.w; float _e20 = hedra_p.alpha_cut; ALPHA_SCISSOR_THRESHOLD = _e20; return; } metal::float3x3 hedra_mat3_( metal::float4x4 m_2 ) { return metal::float3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } metal::float4x4 hedra_rigid_inverse( metal::float4x4 m_3 ) { metal::float3x3 _e1 = hedra_mat3_(m_3); metal::float3x3 r_8 = metal::transpose(_e1); metal::float3 t_9 = -((r_8 * m_3[3].xyz)); return metal::float4x4(metal::float4(r_8[0], 0.0), metal::float4(r_8[1], 0.0), metal::float4(r_8[2], 0.0), metal::float4(t_9, 1.0)); } metal::float4x4 hedra_inv_projection( constant Globals& G ) { metal::float4 _e2 = G.wire_color; metal::float4 _e5 = G.select_color; metal::float4 _e8 = G.active_color; metal::float4 _e11 = G.grid; return metal::float4x4(_e2, _e5, _e8, _e11); } metal::float2 hedra_godot_uv( metal::float2 uv_1 ) { return metal::float2(uv_1.x, 1.0 - uv_1.y); } bool hedra_transparent( ) { bool local_21 = {}; bool local_22 = {}; if (HEDRA_ALPHA) { local_21 = false; } else { local_21 = false; } bool _e5 = local_21; if (!(_e5)) { local_22 = false; } else { local_22 = true; } bool _e11 = local_22; return _e11; } bool hedra_mirrored( uint flags_1, constant ObjectU& O ) { uint _e4 = O.extra.x; return ((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u); } void hedra_matrices( metal::float4x4 model, metal::float3x3 normal, constant Globals& G, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD ) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; metal::float4x4 _e7 = G.view; metal::float4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; metal::float4x4 _e10 = hedra_inv_projection(G); INV_PROJECTION_MATRIX = _e10; metal::float4x4 _e14 = G.view; MODELVIEW_MATRIX = _e14 * model; metal::float4x4 _e19 = G.view; metal::float3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = _e20 * normal; NODE_POSITION_WORLD = model[3].xyz; metal::float4x4 _e28 = G.view; NODE_POSITION_VIEW = (_e28 * metal::float4(model[3].xyz, 1.0)).xyz; metal::float4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex( metal::float3 pos, metal::float3 normal_1, metal::float4 tangent, metal::float2 uv_2, metal::float2 uv2_, metal::float4 color, uint vid_3, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& VERTEX_ID, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX ) { bool local_23 = {}; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = metal::cross(normal_1, tangent.xyz) * tangent.w; metal::float2 _e17 = hedra_godot_uv(uv_2); UV = _e17; metal::float2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = static_cast(vid_3); POSITION = metal::float4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_23 = false; } else { local_23 = false; } bool _e31 = local_23; if (_e31) { metal::float4x4 _e34 = MODEL_MATRIX; metal::float3 _e36 = VERTEX; VERTEX = (_e34 * metal::float4(_e36, 1.0)).xyz; metal::float3x3 _e43 = MODEL_NORMAL_MATRIX; metal::float3 _e45 = NORMAL; NORMAL = _e43 * _e45; metal::float3x3 _e49 = MODEL_NORMAL_MATRIX; metal::float3 _e51 = TANGENT; TANGENT = _e49 * _e51; metal::float3x3 _e55 = MODEL_NORMAL_MATRIX; metal::float3 _e57 = BINORMAL; BINORMAL = _e55 * _e57; return; } else { return; } } CustomOut hedra_end_vertex( metal::float4 world_10, metal::float3 n_8, metal::float3 t, float tw, uint flags_2, constant Globals& G, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& INSTANCE_ID, thread metal::float2& frame_uv ) { CustomOut out_2 = {}; metal::float4x4 _e9 = G.view_proj; out_2.clip = _e9 * world_10; if (HEDRA_USES_POSITION) { metal::float4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = metal::normalize(n_8); metal::float2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = metal::float4(metal::normalize(t), tw); metal::float4 _e28 = COLOR; out_2.color = _e28; metal::float2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = static_cast(metal::max(_e34, 0)); hedra_store_varyings(out_2, frame_uv); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space( ) { bool local_24 = {}; if (false) { local_24 = HEDRA_WORLD_VERTEX_COORDS; } else { local_24 = true; } bool _e5 = local_24; return _e5; } metal::float4 hedra_vertex_world( thread metal::float3& VERTEX, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e2 = INV_VIEW_MATRIX; metal::float3 _e4 = VERTEX; return _e2 * metal::float4(_e4, 1.0); } metal::float3 _e9 = VERTEX; return metal::float4(_e9, 1.0); } metal::float3 hedra_vertex_dir( metal::float3 d_11, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e3 = INV_VIEW_MATRIX; metal::float3x3 _e4 = hedra_mat3_(_e3); return _e4 * d_11; } return d_11; } float hedra_tangent_sign( float w, bool flip, constant ObjectU& O ) { uint _e5 = O.extra.x; return w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); } void hedra_fragment( CustomOut in_7, bool facing_4, constant Globals& G, constant ObjectU& O, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD, thread metal::float3& LIGHT_VERTEX, thread metal::float4& FRAGCOORD, thread bool& FRONT_FACING, thread metal::float3& VIEW, thread metal::float3& NORMAL_MAP, thread float& NORMAL_MAP_DEPTH, thread metal::float3& ALBEDO, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread float& PREMUL_ALPHA_FACTOR, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread metal::float2& SCREEN_UV, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n, thread bool& hedra_front, constant HedraParams& hedra_p, metal::texture2d sprite_sheet, metal::sampler SAMPLER_NEAREST_CLAMP, thread metal::float2& frame_uv ) { metal::float3 t_1 = {}; metal::float3 nm = {}; bool _e3 = hedra_mirrored(in_7.flags, O); bool front = facing_4 != _e3; hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; metal::float4 _e14 = G.viewport; SCREEN_UV = in_7.clip.xy * _e14.zw; metal::float4x4 _e19 = O.model; metal::float4x4 _e22 = O.normal; metal::float3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); metal::float4x4 _e26 = G.view; metal::float3x3 _e27 = hedra_mat3_(_e26); metal::float3 n_geo_2 = front ? metal::normalize(in_7.normal) : -(metal::normalize(in_7.normal)); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; metal::float3 _e41 = t_1; metal::float3 _e42 = t_1; t_1 = metal::normalize(_e41 - (n_geo_2 * metal::dot(n_geo_2, _e42))); metal::float3 _e47 = t_1; metal::float3 b_4 = metal::cross(n_geo_2, _e47) * in_7.tangent.w; metal::float4x4 _e55 = G.view; VERTEX = (_e55 * metal::float4(in_7.world, 1.0)).xyz; metal::float3 _e63 = VERTEX; LIGHT_VERTEX = _e63; metal::float3 vertex0_ = VERTEX; NORMAL = metal::normalize(_e27 * n_geo_2); metal::float3 normal0_ = NORMAL; metal::float3 _e72 = t_1; TANGENT = metal::normalize(_e27 * _e72); BINORMAL = metal::normalize(_e27 * b_4); metal::float3 _e80 = VERTEX; float _e90 = G.camera_pos.w; VIEW = (_e90 > 0.5) ? metal::float3(0.0, 0.0, 1.0) : metal::normalize(-(_e80)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = metal::float3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = metal::float3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = metal::float3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = metal::float3(0.0); hedra_load_varyings(in_7, frame_uv); fragment_(COLOR, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_p, sprite_sheet, SAMPLER_NEAREST_CLAMP, frame_uv); metal::float3x3 back_3 = metal::transpose(_e27); metal::float3 _e136 = NORMAL; if (metal::any(_e136 != normal0_)) { metal::float3 _e141 = NORMAL; hedra_n = metal::normalize(back_3 * _e141); } metal::float3 _e145 = NORMAL_MAP; if (metal::any(_e145 != metal::float3(0.5))) { metal::float3 _e151 = NORMAL_MAP; nm = _e151; metal::float3 _e153 = nm; nm = metal::float3((_e153.xy * 2.0) - metal::float2(1.0), 0.0); metal::float3 _e163 = nm; metal::float3 _e165 = nm; nm.z = metal::sqrt(metal::max(0.0, 1.0 - metal::dot(_e163.xy, _e165.xy))); metal::float3 _e175 = NORMAL; metal::float3 _e177 = TANGENT; float _e179 = nm.x; metal::float3 _e182 = BINORMAL; float _e184 = nm.y; metal::float3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = metal::normalize(metal::mix(_e175, ((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190), _e194)); metal::float3 _e199 = NORMAL; hedra_n = metal::normalize(back_3 * _e199); } metal::float3 _e203 = LIGHT_VERTEX; if (metal::any(_e203 != vertex0_)) { metal::float4x4 _e208 = INV_VIEW_MATRIX; metal::float3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * metal::float4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled( uint flags_3, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread bool& hedra_front ) { bool local_25 = {}; bool local_26 = {}; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if (false) { bool _e10 = hedra_front; local_25 = _e10; } else { local_25 = false; } bool _e12 = local_25; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_26 = _e18 < _e20; } else { local_26 = false; } bool _e23 = local_26; return _e23; } metal::float3 hedra_view_dir( metal::float3 world_11, constant Globals& G ) { float _e5 = G.view[0].z; float _e10 = G.view[1].z; float _e15 = G.view[2].z; metal::float3 view_dir = metal::float3(_e5, _e10, _e15); metal::float4 _e19 = G.camera_pos; float _e27 = G.camera_pos.w; return (_e27 > 0.5) ? metal::normalize(view_dir) : metal::normalize(_e19.xyz - world_11); } float hedra_schlick( float u ) { float m_5 = metal::clamp(1.0 - u, 0.0, 1.0); float m2_ = m_5 * m_5; return (m2_ * m2_) * m_5; } float hedra_diffuse_brdf( float nl_1, float nv_2, float lh, float r_4 ) { float c_nl = metal::max(nl_1, 0.0); if (false) { return metal::max(0.0, (nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4))) * 0.31830987; } if (false) { return metal::smoothstep(-(r_4), metal::max(r_4, 0.01), nl_1) * 0.31830987; } if (false) { float fd90_ = (((2.0 * lh) * lh) * r_4) - 0.5; float _e32 = hedra_schlick(nv_2); float fdv = 1.0 + (fd90_ * _e32); float _e36 = hedra_schlick(c_nl); float fdl = 1.0 + (fd90_ * _e36); return ((0.31830987 * fdv) * fdl) * c_nl; } return c_nl * 0.31830987; } metal::float3 hedra_light_modes( metal::float3 n_9, metal::float3 v_3, metal::float3 l_3, metal::float3 radiance_2, metal::float3 diffuse_1, metal::float3 f0_2, float a2_3, float r_5, float specular_1 ) { metal::float3 c_19 = {}; float mid = {}; bool local_27 = {}; float nl_3 = metal::min(metal::dot(n_9, l_3), 1.0); float nv_4 = metal::max(metal::dot(n_9, v_3), 0.0001); metal::float3 h_3 = metal::normalize(l_3 + v_3); float lh_1 = metal::clamp(metal::dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = (diffuse_1 * _e21) * radiance_2; if (r_5 > 0.0) { if (false) { metal::float3 refl = metal::normalize(-(metal::reflect(l_3, n_9))); float rv = metal::dot(refl, v_3); mid = 1.0 - r_5; float _e35 = mid; float _e36 = mid; mid = _e35 * _e36; metal::float3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = _e38 + ((diffuse_1 * radiance_2) * ((metal::smoothstep(_e40 - (r_5 * 0.5), _e44 + (r_5 * 0.5), rv) * _e49) * specular_1)); } else { if (false) { local_27 = nl_3 > 0.0; } else { local_27 = false; } bool _e60 = local_27; if (_e60) { float nh_2 = metal::max(metal::dot(n_9, h_3), 0.0); float vh_2 = metal::max(metal::dot(v_3, h_3), 0.0); metal::float3 _e67 = f_schlick(f0_2, vh_2); metal::float3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = _e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2); } } } metal::float3 _e77 = c_19; return _e77; } metal::float4 hedra_light_dir( uint i_11, metal::float3 world_12, constant LitU& Lit ) { float atten_1 = {}; LightU li_1 = Lit.lights.inner[metal::min(unsigned(i_11), 63u)]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return metal::float4(-(li_1.direction.xyz), 1.0); } metal::float3 rel_1 = li_1.position.xyz - world_12; float d_16 = metal::length(rel_1); metal::float3 l_7 = rel_1 / metal::float3(metal::max(d_16, 0.000001)); float _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { float cone = li_1.spot.x; float scos = metal::max(metal::dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = metal::max(0.0001, (1.0 - scos) / metal::max(1.0 - cone, 0.000001)); float _e49 = atten_1; atten_1 = _e49 * (1.0 - metal::pow(rim_1, li_1.spot.y)); } float _e56 = atten_1; return metal::float4(l_7, _e56); } float hedra_shadow( uint i_12, metal::float3 l_4, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo ) { bool local_28 = {}; if (false) { uint _e10 = Lit.lights.inner[metal::min(unsigned(i_12), 63u)].info.y; local_28 = _e10 != LIGHT_SHADOWED; } else { local_28 = true; } bool _e14 = local_28; if (_e14) { return 1.0; } metal::float3 _e17 = hedra_world; metal::float3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4, G, Lit, Shadow, t_shadow, s_shadow); return _e20; } metal::float3 hedra_ambient( metal::float3 n_10, metal::float3 v_4, metal::float3 diffuse_2, metal::float3 f0_3, float roughness_3, float metallic, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, thread metal::float3& hedra_world ) { metal::float3 ambient = {}; metal::float3 diffuse_amb = {}; metal::float3 spec_amb = {}; metal::float3 dif = {}; metal::float3 dif_1 = {}; metal::float3 dif_2 = {}; metal::float3 world_13 = hedra_world; float nv_5 = metal::max(metal::dot(n_10, v_4), 0.0001); metal::float3 f_amb = f0_3 + ((metal::max(metal::float3(1.0 - roughness_3), f0_3) - f0_3) * metal::pow(1.0 - nv_5, 5.0)); metal::float4 _e25 = gi_diffuse(n_10, false, metal::float3(0.0), O); uint _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { float _e38 = Sky.ibl.x; float _e42 = Sky.sun.w; float scale_1 = _e38 * _e42; metal::float4 _e46 = Sky.ambient; diffuse_amb = _e46.xyz; uint _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { metal::float4 _e59 = Sky.ambient; metal::float3 _e61 = sky_dir(n_10, Sky); metal::float3 _e62 = sh_irradiance(_e61, Sky); float _e67 = Sky.ambient.w; diffuse_amb = metal::mix(_e59.xyz, _e62 * scale_1, _e67); } if (_e25.w > 0.0) { diffuse_amb = _e25.xyz; } metal::float4 _e75 = Sky.ambient; spec_amb = _e75.xyz; uint _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { metal::float3 _e88 = sky_dir(metal::reflect(-(v_4), n_10), Sky); metal::float3 _e89 = radiance_1(_e88, roughness_3, Sky, t_radiance, s_radiance); spec_amb = _e89 * scale_1; } else { uint _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = metal::float3(0.0); } } metal::float2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = Probe.counts.x; if (_e105 > 0u) { uint _e113 = O.extra.z; metal::float4 _e114 = probe_reflection(world_13, metal::reflect(-(v_4), n_10), roughness_3, _e113, Probe, t_probes, s_probes); metal::float3 _e115 = spec_amb; metal::float3 spec_1 = (_e115 * (1.0 - _e114.w)) + _e114.xyz; metal::float3 _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0.0) { uint _e130 = O.extra.z; metal::float4 _e131 = probe_ambient(world_13, n_10, _e130, Probe, t_probes, s_probes); metal::float3 _e132 = diffuse_amb; dif = (_e132 * (1.0 - _e131.w)) + _e131.xyz; } metal::float3 _e139 = dif; ambient = (diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } else { metal::float3 _e154 = diffuse_amb; metal::float3 _e156 = spec_amb; ambient = (diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } } else { uint _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { metal::float4 _e180 = Lit.up; metal::float3 up = _e180.xyz; metal::float4 _e184 = Lit.sky_top; metal::float4 _e188 = Lit.sky_horizon; metal::float3 sky_avg = (_e184.xyz + _e188.xyz) * 0.5; metal::float4 _e195 = Lit.ground_horizon; metal::float4 _e199 = Lit.ground_bottom; metal::float3 ground_avg = (_e195.xyz + _e199.xyz) * 0.5; metal::float3 irradiance = metal::mix(ground_avg, sky_avg, metal::clamp((metal::dot(n_10, up) * 0.5) + 0.5, 0.0, 1.0)); metal::float3 _e215 = sky(metal::reflect(-(v_4), n_10), Lit); metal::float3 blurred = metal::mix(_e215, sky_avg, roughness_3); uint _e220 = Probe.counts.x; if (_e220 > 0u) { uint _e228 = O.extra.z; metal::float4 _e229 = probe_reflection(world_13, metal::reflect(-(v_4), n_10), roughness_3, _e228, Probe, t_probes, s_probes); float _e233 = Lit.ambient.w; metal::float3 spec_2 = ((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz; dif_1 = _e25.xyz; if (_e25.w <= 0.0) { uint _e249 = O.extra.z; metal::float4 _e250 = probe_ambient(world_13, n_10, _e249, Probe, t_probes, s_probes); float _e254 = Lit.ambient.w; dif_1 = ((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz; } metal::float3 _e262 = dif_1; ambient = (diffuse_2 * _e262) + (spec_2 * f_amb); } else { if (_e25.w > 0.0) { float _e275 = Lit.ambient.w; ambient = (diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275); } else { float _e284 = Lit.ambient.w; ambient = ((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284; } } } else { uint _e289 = Probe.counts.x; if (_e289 > 0u) { uint _e297 = O.extra.z; metal::float4 _e298 = probe_reflection(world_13, metal::reflect(-(v_4), n_10), roughness_3, _e297, Probe, t_probes, s_probes); metal::float4 _e301 = Lit.ambient; metal::float3 spec_3 = (_e301.xyz * (1.0 - _e298.w)) + _e298.xyz; dif_2 = _e25.xyz; if (_e25.w <= 0.0) { uint _e317 = O.extra.z; metal::float4 _e318 = probe_ambient(world_13, n_10, _e317, Probe, t_probes, s_probes); metal::float4 _e321 = Lit.ambient; dif_2 = (_e321.xyz * (1.0 - _e318.w)) + _e318.xyz; } metal::float3 _e329 = dif_2; ambient = (diffuse_2 * _e329) + (spec_3 * f_amb); } else { if (_e25.w > 0.0) { metal::float4 _e340 = Lit.ambient; ambient = (diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb); } else { metal::float4 _e346 = Lit.ambient; ambient = _e346.xyz * (diffuse_2 + f_amb); } } } } metal::float3 _e350 = ambient; return _e350; } metal::float3 hedra_fog( metal::float3 c_in_1, metal::float3 v_5, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant FogU& Fog, thread metal::float3& hedra_world ) { metal::float3 c_20 = {}; c_20 = c_in_1; if (HEDRA_FOG_DISABLED) { metal::float3 _e4 = c_20; return _e4; } uint _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { metal::float3 _e13 = c_20; metal::float3 _e15 = hedra_world; metal::float3 _e17 = surface_fog(_e13, _e15, -(v_5), G, Lit, Sky, t_radiance, s_radiance); c_20 = _e17; } uint _e21 = O.decals.w; if (_e21 != 0u) { metal::float3 _e24 = c_20; metal::float3 _e26 = hedra_world; uint _e30 = O.decals.w; metal::float3 _e31 = fog_volumes(_e24, _e26, _e30, G, Lit, Fog); c_20 = _e31; } metal::float3 _e32 = c_20; return _e32; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } metal::float3 hedra_lit( metal::float4 clip, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals, constant FogU& Fog, thread metal::float3& NORMAL, thread metal::float3& ALBEDO, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread float& SPECULAR_AMOUNT, thread metal::float3& LIGHT, thread metal::float3& LIGHT_COLOR, thread bool& LIGHT_IS_DIRECTIONAL, thread float& ATTENUATION, thread metal::float3& DIFFUSE_LIGHT, thread metal::float3& SPECULAR_LIGHT, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n ) { DecalSurface surf_1 = {}; metal::float3 c_21 = metal::float3(0.0); uint k_11 = 0u; bool local_29 = {}; metal::float3 radiance_3 = {}; bool local_30 = {}; bool local_31 = {}; metal::float3 ambient_1 = metal::float3(0.0); bool local_32 = {}; metal::float3 n_geo_3 = hedra_n_geo; metal::float3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; metal::float3 _e18 = hedra_n; metal::float3 _e20 = EMISSION; surf_1 = DecalSurface {_e4, metal::clamp(_e6, 0.0, 1.0), metal::clamp(_e11, 0.045, 1.0), _e16, {}, _e18, _e20}; uint _e26 = O.decals.z; if (_e26 > 0u) { metal::float3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31, G, O, Decal, t_decals, s_decals); surf_1 = _e32; metal::float3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; metal::float4x4 _e45 = G.view; metal::float3x3 _e46 = hedra_mat3_(_e45); metal::float3 _e48 = surf_1.normal; NORMAL = metal::normalize(_e46 * _e48); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = ((roughness_4 * roughness_4) * roughness_4) * roughness_4; metal::float3 base = surf_1.base; metal::float3 diffuse_3 = base * (1.0 - metallic_1); float _e64 = SPECULAR; float _e68 = SPECULAR; metal::float3 f0_4 = metal::mix(metal::float3((0.16 * _e64) * _e68), base, metallic_1); metal::float3 n_13 = surf_1.normal; metal::float3 _e75 = hedra_world; metal::float3 _e76 = hedra_view_dir(_e75, G); metal::float4x4 _e79 = G.view; metal::float3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = metal::mix(1.0, _e82, _e84); DIFFUSE_LIGHT = metal::float3(0.0); SPECULAR_LIGHT = metal::float3(0.0); uint _e96 = object_light_count(O); uint2 loop_bound_16 = uint2(4294967295u); bool loop_init_16 = true; while(true) { if (metal::all(loop_bound_16 == uint2(0u))) { break; } loop_bound_16 -= uint2(loop_bound_16.y == 0u, 1u); if (!loop_init_16) { uint _e238 = k_11; k_11 = _e238 + 1u; } loop_init_16 = false; uint _e99 = k_11; if (_e99 < _e96) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101, O); LightU li_2 = Lit.lights.inner[metal::min(unsigned(_e102), 63u)]; metal::float3 _e108 = hedra_world; metal::float4 _e109 = hedra_light_dir(_e102, _e108, Lit); metal::float3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_29 = atten_2 > 0.0; } else { local_29 = true; } bool _e123 = local_29; if (_e123) { LIGHT = metal::normalize(_e80 * l_8); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8, G, Lit, Shadow, t_shadow, s_shadow, hedra_world, hedra_n_geo); ATTENUATION = atten_2 * _e131; LIGHT_IS_DIRECTIONAL = li_2.info.x == LIGHT_DIRECTIONAL; SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if (_e142 > 0.0) { float rim_light = metal::pow(metal::max(0.0001, 1.0 - metal::max(metal::dot(n_13, _e76), 0.0001)), metal::max(0.0, (1.0 - roughness_4) * 16.0)); metal::float3 _e159 = c_21; float _e164 = RIM; float _e170 = RIM_TINT; c_21 = _e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * metal::mix(metal::float3(1.0), base, _e170)); } if (atten_2 > 0.0) { radiance_3 = li_2.color.xyz * atten_2; if (li_2.info.y == LIGHT_SHADOWED) { local_30 = false; } else { local_30 = false; } bool _e188 = local_30; if (_e188) { metal::float3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8, G, Lit, Shadow, t_shadow, s_shadow); radiance_3 = li_2.color.xyz * (atten_2 * _e193); } if (true) { local_31 = false; } else { local_31 = false; } bool _e201 = local_31; if (_e201) { metal::float3 _e202 = c_21; metal::float3 _e203 = radiance_3; metal::float3 _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_21 = _e202 + _e206; } else { metal::float3 _e208 = c_21; metal::float3 _e209 = radiance_3; metal::float3 _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = _e208 + _e212; } metal::float3 _e215 = BACKLIGHT; if (metal::any(_e215 > metal::float3(0.0))) { float nl_4 = metal::max(metal::min(metal::dot(n_13, l_8), 1.0), 0.0); metal::float3 _e225 = c_21; metal::float3 _e226 = radiance_3; metal::float3 _e229 = BACKLIGHT; c_21 = _e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987))); } } } } if (HEDRA_HAS_LIGHT) { metal::float3 _e242 = DIFFUSE_LIGHT; metal::float3 _e249 = SPECULAR_LIGHT; c_21 = (((_e242 * base) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct); } else { float _e253 = AO_LIGHT_AFFECT; if (_e253 > 0.0) { metal::float3 _e256 = c_21; c_21 = _e256 * ao_direct; } } if (true) { metal::float3 _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1, O, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes, hedra_world); ambient_1 = _e262; } uint _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { bool _e273 = hedra_transparent(); local_32 = !(_e273); } else { local_32 = false; } bool _e276 = local_32; if (_e276) { uint clamped_lod_e282 = metal::min(uint(0), t_ao.get_num_mip_levels() - 1); metal::float4 _e282 = t_ao.read(metal::min(metal::uint2(naga_f2i32(metal::floor(clip.xy))), metal::uint2(t_ao.get_width(clamped_lod_e282), t_ao.get_height(clamped_lod_e282)) - 1), clamped_lod_e282); float ssao = _e282.x; metal::float3 _e284 = c_21; float _e286 = surf_1.occlusion; float _e291 = Lit.tone.z; float _e295 = Lit.tone.w; c_21 = _e284 * metal::mix(1.0, metal::min(ssao, _e286), _e291 * _e295); metal::float3 _e300 = c_21; metal::float3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_21 = _e300 + (_e301 * metal::min(_e303, ssao)); } else { metal::float3 _e307 = c_21; metal::float3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_21 = _e307 + (_e308 * _e310); } metal::float3 _e313 = c_21; metal::float3 _e315 = surf_1.emission; c_21 = _e313 + _e315; metal::float3 _e317 = c_21; metal::float3 _e318 = hedra_fog(_e317, _e76, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e319 = tonemap(_e318, Lit); return _e319; } metal::float4 hedra_output( metal::float3 c_22, constant Globals& G, constant LitU& Lit, thread float& ALPHA, thread float& PREMUL_ALPHA_FACTOR ) { metal::float3 rgb = {}; rgb = c_22; if (false) { metal::float3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = _e3 * _e5; } metal::float3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); metal::float4 o_9 = metal::float4(_e7, _e10 ? _e9 : 1.0); uint _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return metal::float4(metal::max(o_9.xyz, metal::float3(0.0)), metal::clamp(o_9.w, 0.0, 1.0)); } metal::float4 k_17 = metal::clamp(o_9, metal::float4(0.0), metal::float4(1.0)); uint _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { metal::float3 _e45 = linear_to_srgb(k_17.xyz); return metal::float4(_e45, k_17.w); } return k_17; } metal::float3 hedra_bindings( metal::texture2d t_panorama, metal::sampler s_radiance, metal::sampler s_panorama, metal::texture2d_array t_lightmap, metal::sampler s_lightmap, metal::texture2d t_screen ) { metal::float2 uv_7 = metal::float2(0.5); metal::float4 _e5 = t_panorama.sample(s_panorama, uv_7, metal::level(0.0)); metal::float4 _e11 = t_lightmap.sample(s_lightmap, uv_7, 0, metal::level(0.0)); metal::float4 _e17 = t_screen.sample(s_radiance, uv_7, metal::level(0.0)); return (_e5.xyz + _e11.xyz) + _e17.xyz; } struct vs_customInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float2 uv1_ [[attribute(10)]]; }; struct vs_customOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_customOutput vs_custom( vs_customInput varyings [[stage_in]] , uint vid [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float2 frame_uv = {}; const VsIn in = { varyings.pos_1, varyings.normal_2, varyings.uv_3, varyings.flags_4, {}, varyings.tangent_1, varyings.weight }; const auto uv1_ = varyings.uv1_; metal::float4x4 _e5 = O.model; metal::float4x4 _e8 = O.normal; metal::float3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, metal::float4(1.0), vid, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, UV, COLOR, MODEL_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, hedra_p, frame_uv); float _e24 = hedra_tangent_sign(in.tangent.w, false, O); bool _e25 = hedra_vertex_space(); if (_e25) { metal::float4 _e26 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e28 = NORMAL; metal::float3 _e29 = hedra_vertex_dir(_e28, INV_VIEW_MATRIX); metal::float3 _e31 = TANGENT; metal::float3 _e32 = hedra_vertex_dir(_e31, INV_VIEW_MATRIX); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, frame_uv); const auto _tmp = _e34; return vs_customOutput { _tmp.clip, _tmp.world, _tmp.normal, _tmp.uv, _tmp.flags, _tmp.tangent, _tmp.color, _tmp.uv2_, _tmp.instance_id, _tmp.hedra_v0_, _tmp.hedra_v1_, _tmp.hedra_v2_, _tmp.hedra_v3_ }; } metal::float4x4 _e37 = O.model; metal::float3 _e39 = VERTEX; metal::float4 world_14 = _e37 * metal::float4(_e39, 1.0); metal::float4x4 _e45 = O.normal; metal::float3 _e47 = NORMAL; metal::float3 n_14 = (_e45 * metal::float4(_e47, 0.0)).xyz; metal::float4x4 _e54 = O.model; metal::float3 _e56 = TANGENT; metal::float3 t_10 = (_e54 * metal::float4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_14, n_14, t_10, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, frame_uv); const auto _tmp_1 = _e62; return vs_customOutput { _tmp_1.clip, _tmp_1.world, _tmp_1.normal, _tmp_1.uv, _tmp_1.flags, _tmp_1.tangent, _tmp_1.color, _tmp_1.uv2_, _tmp_1.instance_id, _tmp_1.hedra_v0_, _tmp_1.hedra_v1_, _tmp_1.hedra_v2_, _tmp_1.hedra_v3_ }; } struct vs_custom_instancedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float4 row0_ [[attribute(6)]]; metal::float4 row1_ [[attribute(7)]]; metal::float4 row2_ [[attribute(8)]]; metal::float4 color_1 [[attribute(9)]]; metal::float2 uv1_1 [[attribute(10)]]; metal::float4 custom [[attribute(14)]]; float id [[attribute(15)]]; }; struct vs_custom_instancedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_instancedOutput vs_custom_instanced( vs_custom_instancedInput varyings_1 [[stage_in]] , uint vid_1 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float2 frame_uv = {}; const VsIn in_1 = { varyings_1.pos_1, varyings_1.normal_2, varyings_1.uv_3, varyings_1.flags_4, {}, varyings_1.tangent_1, varyings_1.weight }; const InstIn inst = { varyings_1.row0_, varyings_1.row1_, varyings_1.row2_, varyings_1.color_1 }; const auto uv1_1 = varyings_1.uv1_1; const HedraInstExtra extra = { varyings_1.custom, varyings_1.id }; metal::float3 bx = metal::float3(inst.row0_.x, inst.row1_.x, inst.row2_.x); metal::float3 by = metal::float3(inst.row0_.y, inst.row1_.y, inst.row2_.y); metal::float3 bz = metal::float3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = metal::dot(bx, metal::cross(by, bz)); bool flip_1 = det < 0.0; metal::float3x3 cofactor = metal::float3x3(metal::cross(by, bz), metal::cross(bz, bx), metal::cross(bx, by)) * (flip_1 ? -1.0 : 1.0); metal::float4x4 basis = metal::float4x4(metal::float4(bx, 0.0), metal::float4(by, 0.0), metal::float4(bz, 0.0), metal::float4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); metal::float4x4 _e55 = O.model; metal::float4x4 _e59 = O.normal; metal::float3x3 _e60 = hedra_mat3_(_e59); hedra_matrices(_e55 * basis, _e60 * cofactor, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = naga_f2i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, UV, COLOR, MODEL_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, hedra_p, frame_uv); uint flags_4 = in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1, O); bool _e80 = hedra_vertex_space(); if (_e80) { metal::float4 _e81 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e83 = NORMAL; metal::float3 _e84 = hedra_vertex_dir(_e83, INV_VIEW_MATRIX); metal::float3 _e86 = TANGENT; metal::float3 _e87 = hedra_vertex_dir(_e86, INV_VIEW_MATRIX); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, frame_uv); const auto _tmp_2 = _e88; return vs_custom_instancedOutput { _tmp_2.clip, _tmp_2.world, _tmp_2.normal, _tmp_2.uv, _tmp_2.flags, _tmp_2.tangent, _tmp_2.color, _tmp_2.uv2_, _tmp_2.instance_id, _tmp_2.hedra_v0_, _tmp_2.hedra_v1_, _tmp_2.hedra_v2_, _tmp_2.hedra_v3_ }; } metal::float3 _e90 = VERTEX; metal::float4 p1_ = metal::float4(_e90, 1.0); metal::float3 local_33 = metal::float3(metal::dot(inst.row0_, p1_), metal::dot(inst.row1_, p1_), metal::dot(inst.row2_, p1_)); metal::float4x4 _e102 = O.model; metal::float4 world_15 = _e102 * metal::float4(local_33, 1.0); metal::float4x4 _e108 = O.normal; metal::float3 _e110 = NORMAL; metal::float3 n_15 = (_e108 * metal::float4(cofactor * _e110, 0.0)).xyz; metal::float4x4 _e118 = O.model; metal::float3 _e121 = TANGENT; metal::float3 t_11 = (_e118 * metal::float4(metal::float3x3(bx, by, bz) * _e121, 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_15, n_15, t_11, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, frame_uv); const auto _tmp_3 = _e127; return vs_custom_instancedOutput { _tmp_3.clip, _tmp_3.world, _tmp_3.normal, _tmp_3.uv, _tmp_3.flags, _tmp_3.tangent, _tmp_3.color, _tmp_3.uv2_, _tmp_3.instance_id, _tmp_3.hedra_v0_, _tmp_3.hedra_v1_, _tmp_3.hedra_v2_, _tmp_3.hedra_v3_ }; } struct vs_custom_skinnedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::uint4 joints [[attribute(12)]]; metal::float4 weights [[attribute(13)]]; metal::float2 uv1_2 [[attribute(10)]]; }; struct vs_custom_skinnedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_skinnedOutput vs_custom_skinned( vs_custom_skinnedInput varyings_2 [[stage_in]] , uint vid_2 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant SkinU& Skin [[buffer(6)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float2 frame_uv = {}; const VsIn in_2 = { varyings_2.pos_1, varyings_2.normal_2, varyings_2.uv_3, varyings_2.flags_4, {}, varyings_2.tangent_1, varyings_2.weight }; const SkinIn s = { varyings_2.joints, varyings_2.weights }; const auto uv1_2 = varyings_2.uv1_2; SkinRows _e4 = skin_rows(s, Skin); metal::float4 p_12 = metal::float4(in_2.pos, 1.0); metal::float3 skinned = metal::float3(metal::dot(_e4.r0_, p_12), metal::dot(_e4.r1_, p_12), metal::dot(_e4.r2_, p_12)); metal::float3 bx_1 = metal::float3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); metal::float3 by_1 = metal::float3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); metal::float3 bz_1 = metal::float3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det_1 = metal::dot(bx_1, metal::cross(by_1, bz_1)); bool flip_2 = det_1 < 0.0; metal::float3x3 cofactor_1 = metal::float3x3(metal::cross(by_1, bz_1), metal::cross(bz_1, bx_1), metal::cross(bx_1, by_1)); metal::float3 n0_ = metal::normalize((cofactor_1 * in_2.normal) * (flip_2 ? -1.0 : 1.0)); metal::float3 t0_1 = metal::normalize(metal::float3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz); metal::float4x4 _e58 = O.model; metal::float4x4 _e61 = O.normal; metal::float3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(skinned, n0_, metal::float4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, metal::float4(1.0), vid_2, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, UV, COLOR, MODEL_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, hedra_p, frame_uv); uint flags_5 = in_2.flags | (flip_2 ? F_INSTANCE_MIRRORED : 0u); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2, O); bool _e82 = hedra_vertex_space(); if (_e82) { metal::float4 _e83 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e85 = NORMAL; metal::float3 _e86 = hedra_vertex_dir(_e85, INV_VIEW_MATRIX); metal::float3 _e88 = TANGENT; metal::float3 _e89 = hedra_vertex_dir(_e88, INV_VIEW_MATRIX); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, frame_uv); const auto _tmp_4 = _e90; return vs_custom_skinnedOutput { _tmp_4.clip, _tmp_4.world, _tmp_4.normal, _tmp_4.uv, _tmp_4.flags, _tmp_4.tangent, _tmp_4.color, _tmp_4.uv2_, _tmp_4.instance_id, _tmp_4.hedra_v0_, _tmp_4.hedra_v1_, _tmp_4.hedra_v2_, _tmp_4.hedra_v3_ }; } metal::float4x4 _e93 = O.model; metal::float3 _e95 = VERTEX; metal::float4 world_16 = _e93 * metal::float4(_e95, 1.0); metal::float4x4 _e101 = O.normal; metal::float3 _e103 = NORMAL; metal::float3 n_16 = (_e101 * metal::float4(_e103, 0.0)).xyz; metal::float4x4 _e110 = O.model; metal::float3 _e112 = TANGENT; metal::float3 t_12 = (_e110 * metal::float4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_16, n_16, t_12, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, frame_uv); const auto _tmp_5 = _e117; return vs_custom_skinnedOutput { _tmp_5.clip, _tmp_5.world, _tmp_5.normal, _tmp_5.uv, _tmp_5.flags, _tmp_5.tangent, _tmp_5.color, _tmp_5.uv2_, _tmp_5.instance_id, _tmp_5.hedra_v0_, _tmp_5.hedra_v1_, _tmp_5.hedra_v2_, _tmp_5.hedra_v3_ }; } struct fs_customInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_customOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_customOutput fs_custom( fs_customInput varyings_3 [[stage_in]] , metal::float4 clip_3 [[position]] , bool facing [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant LitU& Lit [[buffer(1)]] , constant ShadowU& Shadow [[buffer(2)]] , metal::depth2d t_shadow [[texture(0)]] , metal::sampler s_shadow [[sampler(0)]] , constant SkyU& Sky [[buffer(3)]] , metal::texturecube t_radiance [[texture(5)]] , metal::texture2d t_panorama [[texture(6)]] , metal::sampler s_radiance [[sampler(3)]] , metal::sampler s_panorama [[sampler(4)]] , metal::texture2d t_ao [[texture(1)]] , metal::texture2d_array t_lightmap [[texture(7)]] , metal::sampler s_lightmap [[sampler(5)]] , constant ProbeU& Probe [[buffer(4)]] , metal::texture2d t_probes [[texture(8)]] , metal::sampler s_probes [[sampler(6)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] , constant FogU& Fog [[buffer(8)]] , metal::texture2d t_screen [[texture(3)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d sprite_sheet [[texture(4)]] , metal::sampler SAMPLER_NEAREST_CLAMP [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; float SPECULAR_AMOUNT = {}; metal::float3 LIGHT = {}; metal::float3 LIGHT_COLOR = {}; bool LIGHT_IS_DIRECTIONAL = {}; float ATTENUATION = {}; metal::float3 DIFFUSE_LIGHT = {}; metal::float3 SPECULAR_LIGHT = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float2 frame_uv = {}; const CustomOut in_3 = { clip_3, varyings_3.world_13, varyings_3.normal_2, varyings_3.uv_3, varyings_3.flags_4, {}, varyings_3.tangent_1, varyings_3.color_1, varyings_3.uv2_1, varyings_3.instance_id, {}, varyings_3.hedra_v0_, varyings_3.hedra_v1_, varyings_3.hedra_v2_, varyings_3.hedra_v3_ }; metal::float3 c = {}; hedra_fragment(in_3, facing, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, sprite_sheet, SAMPLER_NEAREST_CLAMP, frame_uv); bool _e3 = hedra_culled(in_3.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (_e3) { metal::discard_fragment(); } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy, O); if (_e7 <= 0.0) { metal::discard_fragment(); } if (HEDRA_UNSHADED) { metal::float3 _e13 = ALBEDO; metal::float3 _e15 = hedra_world; metal::float3 _e16 = hedra_view_dir(_e15, G); metal::float3 _e17 = hedra_fog(_e13, _e16, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e18 = tonemap(_e17, Lit); c = _e18; } else { metal::float3 _e20 = hedra_lit(in_3.clip, G, O, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, Fog, NORMAL, ALBEDO, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SPECULAR_AMOUNT, LIGHT, LIGHT_COLOR, LIGHT_IS_DIRECTIONAL, ATTENUATION, DIFFUSE_LIGHT, SPECULAR_LIGHT, hedra_world, hedra_n_geo, hedra_n); c = _e20; } uint _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { metal::float3 _e27 = c; metal::float3 _e28 = hedra_bindings(t_panorama, s_radiance, s_panorama, t_lightmap, s_lightmap, t_screen); c = _e27 + _e28; } uint _e33 = G.params.x; if (_e33 == SHADE_LIT) { metal::float3 _e36 = c; metal::float3 _e37 = item_fade(_e36, O, Lit); metal::float3 _e38 = emerge_tint(_e37, _e7, O, Lit); c = _e38; } metal::float3 _e39 = c; metal::float4 _e40 = hedra_output(_e39, G, Lit, ALPHA, PREMUL_ALPHA_FACTOR); return fs_customOutput { _e40 }; } struct fs_custom_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; fragment void fs_custom_depth( fs_custom_depthInput varyings_4 [[stage_in]] , metal::float4 clip_4 [[position]] , bool facing_1 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d sprite_sheet [[texture(4)]] , metal::sampler SAMPLER_NEAREST_CLAMP [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float2 frame_uv = {}; const CustomOut in_4 = { clip_4, varyings_4.world_13, varyings_4.normal_2, varyings_4.uv_3, varyings_4.flags_4, {}, varyings_4.tangent_1, varyings_4.color_1, varyings_4.uv2_1, varyings_4.instance_id, {}, varyings_4.hedra_v0_, varyings_4.hedra_v1_, varyings_4.hedra_v2_, varyings_4.hedra_v3_ }; bool local = {}; bool local_1 = {}; hedra_fragment(in_4, facing_1, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, sprite_sheet, SAMPLER_NEAREST_CLAMP, frame_uv); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = _e14 < _e16; } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { metal::discard_fragment(); } float _e25 = emerge_reveal(in_4.world, metal::float2(-1.0), O); if (_e25 <= 0.0) { metal::discard_fragment(); } else { return; } } struct fs_custom_idInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_idOutput { metal::float4 id [[color(0)]]; }; fragment fs_custom_idOutput fs_custom_id( fs_custom_idInput varyings_5 [[stage_in]] , metal::float4 clip_5 [[position]] , bool facing_2 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d sprite_sheet [[texture(4)]] , metal::sampler SAMPLER_NEAREST_CLAMP [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float2 frame_uv = {}; const CustomOut in_5 = { clip_5, varyings_5.world_13, varyings_5.normal_2, varyings_5.uv_3, varyings_5.flags_4, {}, varyings_5.tangent_1, varyings_5.color_1, varyings_5.uv2_1, varyings_5.instance_id, {}, varyings_5.hedra_v0_, varyings_5.hedra_v1_, varyings_5.hedra_v2_, varyings_5.hedra_v3_ }; bool local_2 = {}; IdOut out = {}; hedra_fragment(in_5, facing_2, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, sprite_sheet, SAMPLER_NEAREST_CLAMP, frame_uv); bool _e3 = hedra_culled(in_5.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy, O); local_2 = _e10 <= 0.0; } else { local_2 = true; } bool _e14 = local_2; if (_e14) { metal::discard_fragment(); } uint id = O.params.z; uint _e24 = O.params.x; uint _e33 = O.params.y; uint bits = ((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u); out.id = metal::float4(static_cast(id & 255u), static_cast((id >> 8u) & 255u), static_cast((id >> 16u) & 255u), static_cast(bits)) / metal::float4(255.0); IdOut _e58 = out; const auto _tmp_6 = _e58; return fs_custom_idOutput { _tmp_6.id }; } struct fs_custom_normal_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_normal_depthOutput { metal::float4 normal_depth [[color(0)]]; metal::float4 surface [[color(1)]]; }; fragment fs_custom_normal_depthOutput fs_custom_normal_depth( fs_custom_normal_depthInput varyings_6 [[stage_in]] , metal::float4 clip_6 [[position]] , bool facing_3 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d sprite_sheet [[texture(4)]] , metal::sampler SAMPLER_NEAREST_CLAMP [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float2 frame_uv = {}; const CustomOut in_6 = { clip_6, varyings_6.world_13, varyings_6.normal_2, varyings_6.uv_3, varyings_6.flags_4, {}, varyings_6.tangent_1, varyings_6.color_1, varyings_6.uv2_1, varyings_6.instance_id, {}, varyings_6.hedra_v0_, varyings_6.hedra_v1_, varyings_6.hedra_v2_, varyings_6.hedra_v3_ }; bool local_3 = {}; HedraNormalDepthOut out_1 = {}; hedra_fragment(in_6, facing_3, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, sprite_sheet, SAMPLER_NEAREST_CLAMP, frame_uv); bool _e3 = hedra_culled(in_6.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy, O); local_3 = _e10 <= 0.0; } else { local_3 = true; } bool _e14 = local_3; if (_e14) { metal::discard_fragment(); } metal::float4x4 _e17 = G.view; metal::float3x3 _e18 = hedra_mat3_(_e17); metal::float3 _e20 = hedra_n; metal::float3 n_view = metal::normalize(_e18 * _e20); float _e24 = METALLIC; float metallic_2 = metal::clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; metal::float3 _e37 = ALBEDO; metal::float3 f0_5 = metal::mix(metal::float3((0.16 * _e29) * _e33), _e37, metallic_2); metal::float4x4 _e43 = G.view; out_1.normal_depth = metal::float4(n_view, -((_e43 * metal::float4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = metal::float4(metal::clamp(f0_5, metal::float3(0.0), metal::float3(1.0)), metal::clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; const auto _tmp_7 = _e63; return fs_custom_normal_depthOutput { _tmp_7.normal_depth, _tmp_7.surface }; }  @Ð Ð/ ,@  0{Ðþ—4ÌhÜäF‚�SKw;)»0Èïq-îçkíVã›c vs_custommain?9struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0; float hedra_pad1; float3 tint; float alpha_cut; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1393 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float2 frame_uv = float2(0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1244 = transpose(hedra_mat3(m)); return float4x4(float4(_1244[0], 0.0f), float4(_1244[1], 0.0f), float4(_1244[2], 0.0f), float4(-mul(m[3].xyz, _1244), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1350 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1350 = false; } else { _1350 = false; } if (_1350) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { float4 view_pos = float4(0.0f, 0.0f, 0.0f, 0.0f); bool _1138 = false; view_pos = mul(float4(0.0f, 0.0f, 0.0f, 1.0f), MODELVIEW_MATRIX); view_pos = float4(view_pos.xyz + float3(VERTEX.xy * length(MODEL_MATRIX[0u].xyz), 0.0f), 1.0f); float4 _1158 = mul(view_pos, G_1_m0.proj); if (hedra_p_1_m0.snap_resolution.x > 0.0f) { _1138 = _1158.w > 9.9999997473787516355514526367188e-05f; } else { _1138 = false; } if (_1138) { float2 _1173 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1187 = mul(float4((round((_1158.xy / float2(_1158.ww)) * _1173) / _1173) * _1158.w, _1158.zw), INV_PROJECTION_MATRIX); view_pos = float4(_1187.xyz / float3(_1187.www), 1.0f); } VERTEX = view_pos.xyz; NORMAL = float3(0.0f, 0.0f, 1.0f); float _1200 = max(hedra_p_1_m0.frames_x * hedra_p_1_m0.frames_y, 1.0f); float _1209 = min(floor((1.0f - clamp(COLOR.w, 0.0f, 1.0f)) * _1200), _1200 - 1.0f); frame_uv = (float2(fmod(_1209, hedra_p_1_m0.frames_x), floor(_1209 / hedra_p_1_m0.frames_x)) + UV) / float2(hedra_p_1_m0.frames_x, hedra_p_1_m0.frames_y); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1427 = false; if (false) { _1427 = false; } else { _1427 = true; } return _1427; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = float4(frame_uv, 0.0f, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1393; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1623 = { pos, normal, uv, flags, tangent, weight }; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(_1623.pos, _1623.normal, _1623.tangent, _1623.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); float _1681 = hedra_tangent_sign(_1623.tangent.w, false); if (hedra_vertex_space()) { CustomOut _1691 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1681, _1623.flags); gl_Position = _1691.clip; world = _1691.world; normal_1 = _1691.normal; uv_1 = _1691.uv; flags_1 = _1691.flags; tangent_1 = _1691.tangent; color = _1691.color; uv2 = _1691.uv2; instance_id = _1691.instance_id; hedra_v0 = _1691.hedra_v0; hedra_v1 = _1691.hedra_v1; hedra_v2 = _1691.hedra_v2; hedra_v3 = _1691.hedra_v3; return; } CustomOut _1723 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1681, _1623.flags); gl_Position = _1723.clip; world = _1723.world; normal_1 = _1723.normal; uv_1 = _1723.uv; flags_1 = _1723.flags; tangent_1 = _1723.tangent; color = _1723.color; uv2 = _1723.uv2; instance_id = _1723.instance_id; hedra_v0 = _1723.hedra_v0; hedra_v1 = _1723.hedra_v1; hedra_v2 = _1723.hedra_v2; hedra_v3 = _1723.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_instancedmaing>struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0; float hedra_pad1; float3 tint; float alpha_cut; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1393 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 row0; static float4 row1; static float4 row2; static float4 color; static float2 uv1; static float4 custom; static float id; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color_1; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 row0 : TEXCOORD6; float4 row1 : TEXCOORD7; float4 row2 : TEXCOORD8; float4 color : TEXCOORD9; float2 uv1 : TEXCOORD10; float4 custom : TEXCOORD14; float id : TEXCOORD15; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color_1 : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float2 frame_uv = float2(0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1244 = transpose(hedra_mat3(m)); return float4x4(float4(_1244[0], 0.0f), float4(_1244[1], 0.0f), float4(_1244[2], 0.0f), float4(-mul(m[3].xyz, _1244), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_2, uint vid) { bool _1350 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_2; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1350 = false; } else { _1350 = false; } if (_1350) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { float4 view_pos = float4(0.0f, 0.0f, 0.0f, 0.0f); bool _1138 = false; view_pos = mul(float4(0.0f, 0.0f, 0.0f, 1.0f), MODELVIEW_MATRIX); view_pos = float4(view_pos.xyz + float3(VERTEX.xy * length(MODEL_MATRIX[0u].xyz), 0.0f), 1.0f); float4 _1158 = mul(view_pos, G_1_m0.proj); if (hedra_p_1_m0.snap_resolution.x > 0.0f) { _1138 = _1158.w > 9.9999997473787516355514526367188e-05f; } else { _1138 = false; } if (_1138) { float2 _1173 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1187 = mul(float4((round((_1158.xy / float2(_1158.ww)) * _1173) / _1173) * _1158.w, _1158.zw), INV_PROJECTION_MATRIX); view_pos = float4(_1187.xyz / float3(_1187.www), 1.0f); } VERTEX = view_pos.xyz; NORMAL = float3(0.0f, 0.0f, 1.0f); float _1200 = max(hedra_p_1_m0.frames_x * hedra_p_1_m0.frames_y, 1.0f); float _1209 = min(floor((1.0f - clamp(COLOR.w, 0.0f, 1.0f)) * _1200), _1200 - 1.0f); frame_uv = (float2(fmod(_1209, hedra_p_1_m0.frames_x), floor(_1209 / hedra_p_1_m0.frames_x)) + UV) / float2(hedra_p_1_m0.frames_x, hedra_p_1_m0.frames_y); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1427 = false; if (false) { _1427 = false; } else { _1427 = true; } return _1427; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = float4(frame_uv, 0.0f, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1393; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1623 = { pos, normal, uv, flags, tangent, weight }; InstIn _1641 = { row0, row1, row2, color }; HedraInstExtra _1652 = { custom, id }; float3 _1687 = float3(_1641.row0.x, _1641.row1.x, _1641.row2.x); float3 _1694 = float3(_1641.row0.y, _1641.row1.y, _1641.row2.y); float3 _1701 = float3(_1641.row0.z, _1641.row1.z, _1641.row2.z); bool _1704 = dot(_1687, cross(_1694, _1701)) < 0.0f; float3x3 _1710 = float3x3(cross(_1694, _1701), cross(_1701, _1687), cross(_1687, _1694)) * (_1704 ? (-1.0f) : 1.0f); hedra_matrices(mul(float4x4(float4(_1687, 0.0f), float4(_1694, 0.0f), float4(_1701, 0.0f), float4(_1641.row0.w, _1641.row1.w, _1641.row2.w, 1.0f)), O_1_m0.model), mul(_1710, hedra_mat3(O_1_m0.normal))); INSTANCE_ID = int(clamp(_1652.id, -2147483648.0f, 2147483520.0f)); INSTANCE_CUSTOM = _1652.custom; hedra_begin_vertex(_1623.pos, _1623.normal, _1623.tangent, _1623.uv, uv1, _1641.color, uint(gl_VertexIndex)); vertex(); uint _1745 = _1623.flags | (_1704 ? 128u : 0u); float _1748 = hedra_tangent_sign(_1623.tangent.w, _1704); if (hedra_vertex_space()) { CustomOut _1757 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1748, _1745); gl_Position = _1757.clip; world = _1757.world; normal_1 = _1757.normal; uv_1 = _1757.uv; flags_1 = _1757.flags; tangent_1 = _1757.tangent; color_1 = _1757.color; uv2 = _1757.uv2; instance_id = _1757.instance_id; hedra_v0 = _1757.hedra_v0; hedra_v1 = _1757.hedra_v1; hedra_v2 = _1757.hedra_v2; hedra_v3 = _1757.hedra_v3; return; } float4 _1772 = float4(VERTEX, 1.0f); CustomOut _1799 = hedra_end_vertex(mul(float4(float3(dot(_1641.row0, _1772), dot(_1641.row1, _1772), dot(_1641.row2, _1772)), 1.0f), O_1_m0.model), mul(float4(mul(NORMAL, _1710), 0.0f), O_1_m0.normal).xyz, mul(float4(mul(TANGENT, float3x3(_1687, _1694, _1701)), 0.0f), O_1_m0.model).xyz, _1748, _1745); gl_Position = _1799.clip; world = _1799.world; normal_1 = _1799.normal; uv_1 = _1799.uv; flags_1 = _1799.flags; tangent_1 = _1799.tangent; color_1 = _1799.color; uv2 = _1799.uv2; instance_id = _1799.instance_id; hedra_v0 = _1799.hedra_v0; hedra_v1 = _1799.hedra_v1; hedra_v2 = _1799.hedra_v2; hedra_v3 = _1799.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; row0 = stage_input.row0; row1 = stage_input.row1; row2 = stage_input.row2; color = stage_input.color; uv1 = stage_input.uv1; custom = stage_input.custom; id = stage_input.id; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color_1 = color_1; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_skinnedmain-@struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0; float hedra_pad1; float3 tint; float alpha_cut; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const SkinRows _1138 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const CustomOut _1485 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Skin : register(b6) { SkinU Skin_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static uint4 joints; static float4 weights; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint4 joints : TEXCOORD12; float4 weights : TEXCOORD13; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float2 frame_uv = float2(0.0f, 0.0f); float4 skin_row(uint k, uint r) { return Skin_1_m0.rows[min(((min(k, 254u) * 3u) + r), 764u)]; } SkinRows skin_rows(SkinIn s) { SkinRows m = _1138; m.r0 = (((skin_row(s.joints.x, 0u) * s.weights.x) + (skin_row(s.joints.y, 0u) * s.weights.y)) + (skin_row(s.joints.z, 0u) * s.weights.z)) + (skin_row(s.joints.w, 0u) * s.weights.w); m.r1 = (((skin_row(s.joints.x, 1u) * s.weights.x) + (skin_row(s.joints.y, 1u) * s.weights.y)) + (skin_row(s.joints.z, 1u) * s.weights.z)) + (skin_row(s.joints.w, 1u) * s.weights.w); m.r2 = (((skin_row(s.joints.x, 2u) * s.weights.x) + (skin_row(s.joints.y, 2u) * s.weights.y)) + (skin_row(s.joints.z, 2u) * s.weights.z)) + (skin_row(s.joints.w, 2u) * s.weights.w); return m; } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1336 = transpose(hedra_mat3(m)); return float4x4(float4(_1336[0], 0.0f), float4(_1336[1], 0.0f), float4(_1336[2], 0.0f), float4(-mul(m[3].xyz, _1336), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1442 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1442 = false; } else { _1442 = false; } if (_1442) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { float4 view_pos = float4(0.0f, 0.0f, 0.0f, 0.0f); bool _1230 = false; view_pos = mul(float4(0.0f, 0.0f, 0.0f, 1.0f), MODELVIEW_MATRIX); view_pos = float4(view_pos.xyz + float3(VERTEX.xy * length(MODEL_MATRIX[0u].xyz), 0.0f), 1.0f); float4 _1250 = mul(view_pos, G_1_m0.proj); if (hedra_p_1_m0.snap_resolution.x > 0.0f) { _1230 = _1250.w > 9.9999997473787516355514526367188e-05f; } else { _1230 = false; } if (_1230) { float2 _1265 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1279 = mul(float4((round((_1250.xy / float2(_1250.ww)) * _1265) / _1265) * _1250.w, _1250.zw), INV_PROJECTION_MATRIX); view_pos = float4(_1279.xyz / float3(_1279.www), 1.0f); } VERTEX = view_pos.xyz; NORMAL = float3(0.0f, 0.0f, 1.0f); float _1292 = max(hedra_p_1_m0.frames_x * hedra_p_1_m0.frames_y, 1.0f); float _1301 = min(floor((1.0f - clamp(COLOR.w, 0.0f, 1.0f)) * _1292), _1292 - 1.0f); frame_uv = (float2(fmod(_1301, hedra_p_1_m0.frames_x), floor(_1301 / hedra_p_1_m0.frames_x)) + UV) / float2(hedra_p_1_m0.frames_x, hedra_p_1_m0.frames_y); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1519 = false; if (false) { _1519 = false; } else { _1519 = true; } return _1519; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = float4(frame_uv, 0.0f, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1485; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1715 = { pos, normal, uv, flags, tangent, weight }; SkinIn _1733 = { joints, weights }; SkinRows _1766 = skin_rows(_1733); float4 _1768 = float4(_1715.pos, 1.0f); float3 _1782 = float3(_1766.r0.x, _1766.r1.x, _1766.r2.x); float3 _1789 = float3(_1766.r0.y, _1766.r1.y, _1766.r2.y); float3 _1796 = float3(_1766.r0.z, _1766.r1.z, _1766.r2.z); bool _1799 = dot(_1782, cross(_1789, _1796)) < 0.0f; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(float3(dot(_1766.r0, _1768), dot(_1766.r1, _1768), dot(_1766.r2, _1768)), normalize(mul(_1715.normal, float3x3(cross(_1789, _1796), cross(_1796, _1782), cross(_1782, _1789))) * (_1799 ? (-1.0f) : 1.0f)), float4(normalize(mul(_1715.tangent.xyz, float3x3(_1782, _1789, _1796))), _1715.tangent.w), _1715.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); uint _1828 = _1715.flags | (_1799 ? 128u : 0u); float _1831 = hedra_tangent_sign(_1715.tangent.w, _1799); if (hedra_vertex_space()) { CustomOut _1840 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1831, _1828); gl_Position = _1840.clip; world = _1840.world; normal_1 = _1840.normal; uv_1 = _1840.uv; flags_1 = _1840.flags; tangent_1 = _1840.tangent; color = _1840.color; uv2 = _1840.uv2; instance_id = _1840.instance_id; hedra_v0 = _1840.hedra_v0; hedra_v1 = _1840.hedra_v1; hedra_v2 = _1840.hedra_v2; hedra_v3 = _1840.hedra_v3; return; } CustomOut _1871 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1831, _1828); gl_Position = _1871.clip; world = _1871.world; normal_1 = _1871.normal; uv_1 = _1871.uv; flags_1 = _1871.flags; tangent_1 = _1871.tangent; color = _1871.color; uv2 = _1871.uv2; instance_id = _1871.instance_id; hedra_v0 = _1871.hedra_v0; hedra_v1 = _1871.hedra_v1; hedra_v2 = _1871.hedra_v2; hedra_v3 = _1871.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; joints = stage_input.joints; weights = stage_input.weights; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; }  fs_custommainI>struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0; float hedra_pad1; float3 tint; float alpha_cut; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _566 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const uint _2652[4] = { 0u, 0u, 0u, 0u }; static const float2 _2655[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _2662[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const DecalSurface _4883 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Shadow : register(b2) { ShadowU Shadow_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Probe : register(b4) { ProbeU Probe_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D t_shadow : register(t0); SamplerComparisonState s_shadow : register(s0); TextureCube t_radiance : register(t5); Texture2D t_panorama : register(t6); SamplerState s_radiance : register(s3); SamplerState s_panorama : register(s4); Texture2D t_ao : register(t1); Texture2DArray t_lightmap : register(t7); SamplerState s_lightmap : register(s5); Texture2D t_probes : register(t8); SamplerState s_probes : register(s6); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); Texture2D t_screen : register(t3); Texture2D sprite_sheet : register(t4); SamplerState SAMPLER_NEAREST_CLAMP : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 _5279; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 _5279 : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float SPECULAR_AMOUNT = 0.0f; static float3 LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_COLOR = float3(0.0f, 0.0f, 0.0f); static bool LIGHT_IS_DIRECTIONAL = false; static float ATTENUATION = 0.0f; static float3 DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float2 frame_uv = float2(0.0f, 0.0f); uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint spvPackUnorm4x8(float4 value) { uint4 Packed = uint4(round(saturate(value) * 255.0)); return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); } float4 spvUnpackUnorm4x8(uint value) { uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); return float4(Packed) / 255.0; } bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _3960 = transpose(hedra_mat3(m)); return float4x4(float4(_3960[0], 0.0f), float4(_3960[1], 0.0f), float4(_3960[2], 0.0f), float4(-mul(m[3].xyz, _3960), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { frame_uv = i.hedra_v0.xy; } void fragment() { float4 _3930 = sprite_sheet.Sample(SAMPLER_NEAREST_CLAMP, frame_uv); ALBEDO = (_3930.xyz * hedra_p_1_m0.tint) * COLOR.xyz; ALPHA = _3930.w; ALPHA_SCISSOR_THRESHOLD = hedra_p_1_m0.alpha_cut; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _4119 = facing != hedra_mirrored(_in.flags); hedra_front = _4119; FRONT_FACING = _4119; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _4135 = hedra_mat3(G_1_m0.view); float3 _4138 = -normalize(_in.normal); float3 _4140 = normalize(_in.normal); bool3 _4142 = bool3(_4119, _4119, _4119); float3 _4141 = float3(_4142.x ? _4140.x : _4138.x, _4142.y ? _4140.y : _4138.y, _4142.z ? _4140.z : _4138.z); hedra_n_geo = _4141; hedra_n = _4141; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_4141 * dot(_4141, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _4164 = VERTEX; NORMAL = normalize(mul(_4141, _4135)); float3 _4167 = NORMAL; TANGENT = normalize(mul(t, _4135)); BINORMAL = normalize(mul(cross(_4141, t) * _in.tangent.w, _4135)); float3 _4175 = normalize(-VERTEX); bool _4178 = G_1_m0.camera_pos.w > 0.5f; bool3 _4180 = bool3(_4178, _4178, _4178); VIEW = float3(_4180.x ? float3(0.0f, 0.0f, 1.0f).x : _4175.x, _4180.y ? float3(0.0f, 0.0f, 1.0f).y : _4175.y, _4180.z ? float3(0.0f, 0.0f, 1.0f).z : _4175.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _4186 = transpose(_4135); if (any(bool3(NORMAL.x != _4167.x, NORMAL.y != _4167.y, NORMAL.z != _4167.z))) { hedra_n = normalize(mul(NORMAL, _4186)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _4186)); } if (any(bool3(LIGHT_VERTEX.x != _4164.x, LIGHT_VERTEX.y != _4164.y, LIGHT_VERTEX.z != _4164.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _4251 = false; bool _4253 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _4251 = hedra_front; } else { _4251 = false; } if (_4251) { return true; } if (true) { _4253 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _4253 = false; } return _4253; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1144 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1144, _1144, _1144); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1169 = floor(p); float3 _1170 = frac(p); float3 _1174 = (_1170 * _1170) * (float3(3.0f, 3.0f, 3.0f) - (_1170 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1169), emerge_hash(_1169 + float3(1.0f, 0.0f, 0.0f)), _1174.x), lerp(emerge_hash(_1169 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1169 + float3(1.0f, 1.0f, 0.0f)), _1174.x), _1174.y), lerp(lerp(emerge_hash(_1169 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1169 + float3(1.0f, 0.0f, 1.0f)), _1174.x), lerp(emerge_hash(_1169 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1169 + float3(1.0f, 1.0f, 1.0f)), _1174.x), _1174.y), _1174.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1231 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1231) * 0.64999997615814208984375f) + (emerge_noise((_1231 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } float3 hedra_view_dir(float3 world_1) { float3 _4290 = normalize(G_1_m0.camera_pos.xyz - world_1); float3 _4291 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _4294 = G_1_m0.camera_pos.w > 0.5f; bool3 _4296 = bool3(_4294, _4294, _4294); return float3(_4296.x ? _4291.x : _4290.x, _4296.y ? _4291.y : _4290.y, _4296.z ? _4291.z : _4290.z); } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float3 radiance(float3 d, float roughness) { return t_radiance.SampleLevel(s_radiance, d, roughness * float(max(Sky_1_m0.flags.y, 1u) - 1u)).xyz; } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _1604 = max(x, 0.0f) * max(x, 0.0f); float _1605 = _1604 * _1604; return _1605 * _1605; } float3 fog_sun_scatter(float3 fc, float3 dir) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _1624 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _1624)) { break; } uint _1647 = pool_sun(k); if (Lit_1_m0.lights[min(_1647, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_1647, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir, -Lit_1_m0.lights[min(_1647, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 surface_fog(float3 c, float3 world_1, float3 dir) { float amount = 0.0f; bool _1714 = false; float dist = 0.0f; float3 fc = float3(0.0f, 0.0f, 0.0f); float _1722 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; dist = distance(world_1, G_1_m0.camera_pos.xyz); if (Sky_1_m0.fog_origin.w > 0.5f) { dist = max(_1722 - Sky_1_m0.fog_origin.x, 0.0f); } if ((Sky_1_m0.flags.x & 256u) != 0u) { float _1749 = smoothstep(Sky_1_m0.fog_depth.x, Sky_1_m0.fog_depth.y, dist); amount = ((_1749 > 0.0f) ? pow(max(_1749, 9.9999999747524270787835121154785e-07f), Sky_1_m0.fog_depth.z) : 0.0f) * Sky_1_m0.fog.x; } else { amount = 1.0f - exp(min(0.0f, (-dist) * Sky_1_m0.fog.x)); } if (abs(Sky_1_m0.fog.w) >= 9.9999997473787516355514526367188e-05f) { amount = max(amount, 1.0f - exp(min(0.0f, (dot(world_1, Lit_1_m0.up.xyz) - Sky_1_m0.fog.z) * Sky_1_m0.fog.w))); } amount = clamp(amount, 0.0f, 1.0f); fc = Sky_1_m0.fog_color.xyz; if ((Sky_1_m0.flags.x & 8u) != 0u) { _1714 = Sky_1_m0.fog_depth.w > 0.0f; } else { _1714 = false; } if (true ? _1714 : false) { fc = lerp(fc, radiance(sky_dir(dir), lerp(1.0f / float(max(Sky_1_m0.flags.y, 2u) - 1u), 1.0f, 1.0f - clamp((_1722 - Sky_1_m0.fog_origin.y) / max(Sky_1_m0.fog_origin.z - Sky_1_m0.fog_origin.y, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f))) * Sky_1_m0.sun.w, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)); } fc = fog_sun_scatter(fc, dir); return lerp(c, fc, float3(amount, amount, amount)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _1868 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _1872 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_1868 == 4u) { return float2(0.0f, _1872); } float3 _1881 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _1882 = abs(d); bool3 _1883 = bool3(_1882.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _1882.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _1882.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _1884 = float3(_1883.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _1883.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _1883.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _1887 = ((-_1881) - o) / _1884; float3 _1889 = (_1881 - o) / _1884; float3 _1890 = min(_1887, _1889); float3 _1891 = max(_1887, _1889); r = float2(max(0.0f, _1890.y), min(_1872, _1891.y)); if (_1868 == 3u) { r = float2(max(max(r.x, _1890.x), _1890.z), min(min(r.y, _1891.x), _1891.z)); } else { if (_1868 == 0u) { a = dot(d / _1881, d / _1881); b = dot(o / _1881, d / _1881); c = dot(o / _1881, o / _1881) - 1.0f; } else { float _1930 = min(_1881.x, _1881.z); float _1935 = (_1868 == 1u) ? (_1930 / (2.0f * _1881.y)) : 0.0f; float _1938 = _1881.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_1935 * _1935) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_1935 * _1935) * _1938) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_1868 == 1u) ? (((_1935 * _1935) * _1938) * _1938) : (_1930 * _1930)); } } float _1984 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_1984 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _2048 = min(((-b) - sqrt(_1984)) / a, ((-b) + sqrt(_1984)) / a); float _2061 = max(((-b) - sqrt(_1984)) / a, ((-b) + sqrt(_1984)) / a); if (a > 0.0f) { r = float2(max(r.x, _2048), min(r.y, _2061)); } else { if (r.x < min(r.y, _2048)) { r.y = min(r.y, _2048); } else { r.x = max(r.x, _2061); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _2105 = min(k, 15u); rho = Fog_1_m0.entries[_2105].material.x * min(exp2((-Fog_1_m0.entries[_2105].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2105].material.w)), 1.0f); if (Fog_1_m0.entries[_2105].material.z > 0.0f) { uint _2132 = uint(clamp(Fog_1_m0.entries[_2105].albedo.w, 0.0f, 4294967040.0f)); float3 _2135 = Fog_1_m0.entries[_2105].size.xyz * 0.5f; float _2138 = min(_2135.x, _2135.z); if (_2132 == 0u) { float _2144 = length(lp / _2135); sdf = (_2144 * (_2144 - 1.0f)) / max(length(lp / (_2135 * _2135)), 9.9999999600419720025001879548654e-13f); } else { if (_2132 == 3u) { float3 _2157 = abs(lp) - _2135; sdf = length(max(_2157, float3(0.0f, 0.0f, 0.0f))) + min(max(_2157.x, max(_2157.y, _2157.z)), 0.0f); } else { if (_2132 == 2u) { float2 _2178 = float2(length(lp.xz) - _2138, abs(lp.y) - _2135.y); sdf = min(max(_2178.x, _2178.y), 0.0f) + length(max(_2178, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _2138 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _2135.y))), float2(length(lp.xz), lp.y - _2135.y)), (-_2135.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_2105].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_2105].material.z); } return rho; } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float3 fog_light(uint n, float3 p, float3 dir) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _2340 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_2340].lights.z, 8u))) { break; } uint _2376 = min(((((k < 4u) ? Fog_1_m0.entries[_2340].lights.x : Fog_1_m0.entries[_2340].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _2377 = min(_2376, 63u); l = -Lit_1_m0.lights[_2377].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_2377].info.x != 0u) { float3 _2390 = Lit_1_m0.lights[_2377].position.xyz - p; float _2392 = max(length(_2390), 9.9999999747524270787835121154785e-07f); l = _2390 / float3(_2392, _2392, _2392); atten = omni_attenuation(length(_2390), Lit_1_m0.lights[_2377].position.w, Lit_1_m0.lights[_2377].direction.w); if (Lit_1_m0.lights[_2377].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_2377].direction.xyz), Lit_1_m0.lights[_2377].spot.x)) / max(1.0f - Lit_1_m0.lights[_2377].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_2377].spot.y)); } } float _2433 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir, l)); sum += (Lit_1_m0.lights[_2377].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _2433) * sqrt(_2433))) * Fog_1_m0.light_fog[min((_2376 >> 2u), 15u)][min((_2376 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _2231 = min(k, 15u); if ((Fog_1_m0.entries[_2231].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_2231].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_2231].material.y) * a), 1.0f); } float _2249 = clamp((-a) / b, t0, t1); float _2251 = (b > 0.0f) ? _2249 : t0; float _2253 = (b > 0.0f) ? t1 : _2249; float _2258 = ((Fog_1_m0.entries[_2231].material.y * abs(b)) * (_2253 - _2251)) * 0.693147182464599609375f; return Fog_1_m0.entries[_2231].material.x * (((t1 - t0) - (_2253 - _2251)) + ((min(exp2((-Fog_1_m0.entries[_2231].material.y) * max(a + (b * ((b > 0.0f) ? _2251 : _2253)), 0.0f)), 1.0f) * (_2253 - _2251)) * ((_2258 < 0.00999999977648258209228515625f) ? (1.0f - (_2258 * (0.5f - (_2258 * (0.16666667163372039794921875f - (_2258 / 24.0f)))))) : ((1.0f - exp(-_2258)) / _2258)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _2476 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _2478 = false; float tau = 0.0f; bool _2469 = false; uint i = 0u; bool _2471 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _2481 = min(k, 15u); float3 _2487 = mul(float4(o, 1.0f), Fog_1_m0.entries[_2481].to_local).xyz; float3 _2491 = mul(float4(d, 0.0f), Fog_1_m0.entries[_2481].to_local).xyz; float _2498 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2481].material.w; float _2502 = dot(d, Fog_1_m0.up.xyz); bool _2505 = Fog_1_m0.entries[_2481].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_2481].material.y > 0.0f) { _2469 = ((-_2498) / _2502) > ch.x; } else { _2469 = false; } if (_2469) { _2471 = ((-_2498) / _2502) < ch.y; } else { _2471 = false; } if (_2471) { split = (-_2498) / _2502; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_2505 ? 12u : 4u))) { break; } uint _2556 = i & 3u; if (!(_2556 == 0u)) { _2476 = _2556 == 3u; } else { _2476 = true; } float _2564 = _2476 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_2556 == 0u)) { _2478 = _2556 == 3u; } else { _2478 = true; } float _2572 = _2478 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _2575 = float2(split, ch.y); float2 _2578 = float2(ch.x, split); bool _2580 = i < 8u; bool2 _2582 = bool2(_2580, _2580); float2 _2581 = float2(_2582.x ? _2578.x : _2575.x, _2582.y ? _2578.y : _2575.y); bool _2584 = i < 4u; bool2 _2586 = bool2(_2584, _2584); float2 _2585 = float2(_2586.x ? ch.x : _2581.x, _2586.y ? ch.y : _2581.y); float _2590 = (_2585.y - _2585.x) * 0.5f; float _2599 = ((_2585.x + _2585.y) * 0.5f) + (_2590 * ((_2556 < 2u) ? (-_2564) : _2564)); float3 _2601 = o + (d * _2599); float _2604 = fog_density(k, _2601, _2487 + (_2491 * _2599)); if (i < 4u) { q += (((Fog_1_m0.entries[_2481].albedo.xyz * fog_light(k, _2601, d)) + Fog_1_m0.entries[_2481].emission.xyz) * ((_2572 * _2590) * clamp(_2604, 0.0f, 1.0f))); } else { tau += ((_2572 * _2590) * _2604); } i++; continue; } if (!_2505) { tau = fog_falloff_depth(k, _2498, _2502, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _2652; uint i_3 = 0u; uint n = 0u; bool _2658 = false; float2 chords[4] = _2655; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _2662; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _2675 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_2675 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _2705 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_2675) { _2658 = _2705 == 0u; } else { _2658 = false; } if (_2658) { break; } uint _2717 = _2675 ? i_2 : (min(_2705, 16u) - 1u); uint _2718 = min(_2717, 15u); float2 _2727 = fog_chord(_2717, mul(float4(o, 1.0f), Fog_1_m0.entries[_2718].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_2718].to_local).xyz, t_end); if (_2727.y > _2727.x) { at[min(m, 3u)] = _2717; chords[min(m, 3u)] = _2727; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _2883 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _2883)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _3003 = exp(-tau); return (c * _3003) + (q * ((1.0f - _3003) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 fog_volumes(float3 c, float3 world_1, uint list) { float3 _3039 = world_1 - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(world_1, 1.0f), G_1_m0.view).z); bool _3042 = G_1_m0.camera_pos.w > 0.5f; bool3 _3044 = bool3(_3042, _3042, _3042); float3 _3043 = float3(_3044.x ? _3039.x : G_1_m0.camera_pos.xyz.x, _3044.y ? _3039.y : G_1_m0.camera_pos.xyz.y, _3044.z ? _3039.z : G_1_m0.camera_pos.xyz.z); float _3046 = length(world_1 - _3043); float _3048 = max(_3046, 9.9999999747524270787835121154785e-07f); float3 _3051 = fog_integrate(c, _3043, (world_1 - _3043) / float3(_3048, _3048, _3048), _3046, list); bool _3052 = _3046 > 0.0f; bool3 _3054 = bool3(_3052, _3052, _3052); return float3(_3054.x ? _3051.x : c.x, _3054.y ? _3051.y : c.y, _3054.z ? _3051.z : c.z); } float3 hedra_fog(float3 c_in, float3 v) { float3 c = float3(0.0f, 0.0f, 0.0f); c = c_in; if (false) { return c; } if ((Sky_1_m0.flags.x & 128u) != 0u) { c = surface_fog(c, hedra_world, -v); } if (O_1_m0.decals.w != 0u) { c = fog_volumes(c, hedra_world, O_1_m0.decals.w); } return c; } float3 filmic_curve(float3 x) { float _925 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _929 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _935 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _939 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_925, _925, _925))) + float3(_929, _929, _929)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_935, _935, _935))) - float3(_939, _939, _939); } float3 aces_curve(float3 c, float white) { float3 _987 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _995 = ((_987 * (_987 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_987 * ((_987 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _1000 = 1.7999999523162841796875f * white; float _1008 = ((_1000 * (_1000 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_1000 * ((0.98372900485992431640625f * _1000) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _995), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _995), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _995)) / float3(_1008, _1008, _1008); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _1063 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_1063, _1063, _1063); float3 _1068 = v * v; float3 _1069 = _1068 * _1068; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_1068 * 4.01109981536865234375f)) - ((_1068 * 25.68199920654296875f) * v)) + (_1069 * 70.35900115966796875f)) - ((_1069 * 74.7779998779296875f) * v)) + ((_1069 * 27.069000244140625f) * _1068), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _1098 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_1098 * Lit_1_m0.tone.y) + _1098) / ((_1098 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_1098) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_1098, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_1098); } return _1098; } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } float3 srgb_to_linear(float3 c) { float3 _254 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _257 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _259 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_259.x ? _254.x : _257.x, _259.y ? _254.y : _257.y, _259.z ? _254.z : _257.z); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _566; bool _569 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _574 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _574)) { break; } uint _603 = decal_entry(k); uint _606 = min(min(_603, 63u), 63u); float3 _612 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_606].to_local).xyz; if (all(bool3(_612.x >= float3(0.0f, -1.0f, 0.0f).x, _612.y >= float3(0.0f, -1.0f, 0.0f).y, _612.z >= float3(0.0f, -1.0f, 0.0f).z))) { _569 = all(bool3(_612.x <= float3(1.0f, 1.0f, 1.0f).x, _612.y <= float3(1.0f, 1.0f, 1.0f).y, _612.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _569 = false; } if (!_569) { uint _771 = k; k = _771 + 1u; continue; } fade = pow(1.0f - abs(_612.y), (_612.y > 0.0f) ? Decal_1_m0.entries[_606].fades.x : Decal_1_m0.entries[_606].fades.y); if (Decal_1_m0.entries[_606].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_606].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_606].axis_y.xyz) * 0.5f) + 0.5f); } float2 _650 = _612.xz; float _651 = decal_level(Decal_1_m0.entries[_606], world_1); if (Decal_1_m0.entries[_606].layers.x > 0u) { float4 _663 = decal_texel(Decal_1_m0.entries[_606].layers.x, _650, _651, (Decal_1_m0.entries[_606].flags.x & 1u) != 0u); float4 _669 = float4(srgb_to_linear(_663.xyz), _663.w) * Decal_1_m0.entries[_606].modulate; float _672 = _669.w * fade; float _678 = _672 * Decal_1_m0.entries[_606].fades.w; out_s.base = lerp(out_s.base, _669.xyz, float3(_678, _678, _678)); if (Decal_1_m0.entries[_606].layers.y > 0u) { float4 _691 = decal_texel(Decal_1_m0.entries[_606].layers.y, _650, _651, (Decal_1_m0.entries[_606].flags.x & 2u) != 0u); float _694 = (_691.x * 2.0f) - 1.0f; float _697 = 1.0f - (_691.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_606].axis_x.xyz * _694) + (Decal_1_m0.entries[_606].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_694 * _694)) - (_697 * _697))))) + (Decal_1_m0.entries[_606].axis_z.xyz * _697)), float3(_672, _672, _672))); } if (Decal_1_m0.entries[_606].layers.z > 0u) { float4 _731 = decal_texel(Decal_1_m0.entries[_606].layers.z, _650, _651, (Decal_1_m0.entries[_606].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _731.x, _672); out_s.roughness = lerp(out_s.roughness, _731.y, _672); out_s.metallic = lerp(out_s.metallic, _731.z, _672); } } if (Decal_1_m0.entries[_606].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_606].layers.w, _650, _651, (Decal_1_m0.entries[_606].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_606].modulate.xyz) * Decal_1_m0.entries[_606].axis_x.w) * fade); } uint _771 = k; k = _771 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } uint object_light_count() { return min(O_1_m0.lights.z, 8u); } uint object_light(uint k) { return min(((((k < 4u) ? O_1_m0.lights.x : O_1_m0.lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float4 hedra_light_dir(uint i, float3 world_1) { float atten = 0.0f; uint _4436 = min(i, 63u); if (Lit_1_m0.lights[_4436].info.x == 0u) { return float4(-Lit_1_m0.lights[_4436].direction.xyz, 1.0f); } float3 _4450 = Lit_1_m0.lights[_4436].position.xyz - world_1; float _4451 = length(_4450); float _4452 = max(_4451, 9.9999999747524270787835121154785e-07f); float3 _4454 = _4450 / float3(_4452, _4452, _4452); atten = omni_attenuation(_4451, Lit_1_m0.lights[_4436].position.w, Lit_1_m0.lights[_4436].direction.w); if (Lit_1_m0.lights[_4436].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-_4454, Lit_1_m0.lights[_4436].direction.xyz), Lit_1_m0.lights[_4436].spot.x)) / max(1.0f - Lit_1_m0.lights[_4436].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_4436].spot.y)); } return float4(_4454, atten); } float shadow_factor(uint i, float3 world_1, float3 n_geo, float3 l) { int dy = -1; bool _3114 = false; uint part = 0u; bool _3116 = false; uint c = 0u; float vis = 0.0f; bool _3112 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint _3124 = min(i, 63u); uint _3134 = min(Lit_1_m0.lights[min(i, 63u)].info.w, 15u); uint _3137 = min(_3134, 15u); uint _3140 = min(_3134, 15u); uint _3146 = max(Shadow_1_m0.lights[min(_3134, 15u)].info.y, 1u); float _3152 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; if (Lit_1_m0.lights[_3124].info.x == 0u) { if (_3152 > Shadow_1_m0.lights[min(_3134, 15u)].fade.y) { return 1.0f; } part = _3146 - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(c < _3146)) { break; } if (_3152 <= Shadow_1_m0.lights[min(_3134, 15u)].splits[min(c, 3u)]) { part = c; break; } c++; continue; } } uint _3196 = part; uint _3202 = min(min((Shadow_1_m0.lights[_3140].info.x + min(_3196, (_3146 - 1u))), 15u), 15u); float _3209 = Shadow_1_m0.tiles[_3202].texel.x + (Shadow_1_m0.tiles[_3202].texel.y * distance(world_1, Lit_1_m0.lights[min(i, 63u)].position.xyz)); float3 _3220 = (world_1 + (n_geo * ((Shadow_1_m0.lights[_3137].params.y * max(Shadow_1_m0.lights[_3137].params.z, 1.0f)) * _3209))) + (l * (Shadow_1_m0.lights[_3137].params.x * _3209)); if (Lit_1_m0.lights[_3124].info.x == 1u) { float3 _3224 = _3220 - Lit_1_m0.lights[min(i, 63u)].position.xyz; float3 _3225 = abs(_3224); if (_3225.x >= _3225.y) { _3112 = _3225.x >= _3225.z; } else { _3112 = false; } if (_3112) { part = (_3224.x >= 0.0f) ? 0u : 1u; } else { if (_3225.y >= _3225.z) { part = (_3224.y >= 0.0f) ? 2u : 3u; } else { part = (_3224.z >= 0.0f) ? 4u : 5u; } } } uint _3258 = min((Shadow_1_m0.lights[_3140].info.x + min(part, (_3146 - 1u))), 15u); float4 _3263 = mul(float4(_3220, 1.0f), Shadow_1_m0.tiles[min(_3258, 15u)].view_proj); if (_3263.w <= 0.0f) { return 1.0f; } float3 _3271 = _3263.xyz / float3(_3263.www); if (!(abs(_3271.x) > 1.0f)) { _3114 = abs(_3271.y) > 1.0f; } else { _3114 = true; } if (!_3114) { _3116 = _3271.z > 1.0f; } else { _3116 = true; } if (_3116) { return 1.0f; } uint _3292 = min(_3258, 15u); float2 _3305 = Shadow_1_m0.tiles[_3292].rect.xy + (float2((_3271.x * 0.5f) + 0.5f, 0.5f - (_3271.y * 0.5f)) * Shadow_1_m0.tiles[_3292].rect.zw); float _3309 = 0.5f * Shadow_1_m0.atlas.x; float2 _3311 = Shadow_1_m0.tiles[_3292].rect.xy + float2(_3309, _3309); float _3315 = 0.5f * Shadow_1_m0.atlas.x; float2 _3317 = (Shadow_1_m0.tiles[_3292].rect.xy + Shadow_1_m0.tiles[_3292].rect.zw) - float2(_3315, _3315); if (Shadow_1_m0.lights[_3137].params.z <= 0.0f) { vis = t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3305, _3311, _3317), _3271.z); } else { float _3328 = Shadow_1_m0.lights[_3137].params.z * Shadow_1_m0.atlas.x; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(dx <= 1)) { break; } vis += t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3305 + (float2(float(dx), float(dy)) * _3328), _3311, _3317), _3271.z); dx++; continue; } dy++; continue; } vis /= 9.0f; } if (Lit_1_m0.lights[_3124].info.x == 0u) { uint _3393 = min(_3134, 15u); vis = lerp(vis, 1.0f, smoothstep(Shadow_1_m0.lights[_3393].fade.x, Shadow_1_m0.lights[_3393].fade.y, _3152)); } return lerp(1.0f, vis, Shadow_1_m0.lights[_3137].params.w); } float hedra_shadow(uint i, float3 l) { bool _4495 = false; if (false) { _4495 = Lit_1_m0.lights[min(i, 63u)].info.y != 1u; } else { _4495 = true; } if (_4495) { return 1.0f; } return shadow_factor(i, hedra_world, hedra_n_geo, l); } void light() { } float3 f_schlick(float3 f0, float vh) { return f0 + ((float3(1.0f, 1.0f, 1.0f) - f0) * pow(1.0f - vh, 5.0f)); } float d_ggx(float nh, float a2) { float _791 = ((nh * nh) * (a2 - 1.0f)) + 1.0f; return a2 / ((3.1415927410125732421875f * _791) * _791); } float v_smith(float nl, float nv, float a2) { return 0.5f / max((nl * sqrt(((nv * nv) * (1.0f - a2)) + a2)) + (nv * sqrt(((nl * nl) * (1.0f - a2)) + a2)), 9.9999997473787516355514526367188e-05f); } float3 light_specular(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float specular) { float _844 = dot(n, l); if (_844 <= 0.0f) { return float3(0.0f, 0.0f, 0.0f); } float3 _849 = normalize(l + v); return (((diffuse / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) + ((f_schlick(f0, max(dot(v, _849), 0.0f)) * (d_ggx(max(dot(n, _849), 0.0f), a2) * v_smith(_844, max(dot(n, v), 9.9999997473787516355514526367188e-05f), a2))) * specular)) * radiance_1) * _844; } float hedra_schlick(float u) { float _4302 = clamp(1.0f - u, 0.0f, 1.0f); float _4303 = _4302 * _4302; return (_4303 * _4303) * _4302; } float hedra_diffuse_brdf(float nl, float nv, float lh, float r) { float _4315 = max(nl, 0.0f); if (false) { return max(0.0f, (nl + r) / ((1.0f + r) * (1.0f + r))) * 0.3183098733425140380859375f; } if (false) { return smoothstep(-r, max(r, 0.00999999977648258209228515625f), nl) * 0.3183098733425140380859375f; } if (false) { float _4336 = (((2.0f * lh) * lh) * r) - 0.5f; return ((0.3183098733425140380859375f * (1.0f + (_4336 * hedra_schlick(nv)))) * (1.0f + (_4336 * hedra_schlick(_4315)))) * _4315; } return _4315 * 0.3183098733425140380859375f; } float3 hedra_light_modes(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float r, float specular) { float3 c = float3(0.0f, 0.0f, 0.0f); float mid = 0.0f; bool _4363 = false; float _4367 = min(dot(n, l), 1.0f); float _4369 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float3 _4371 = normalize(l + v); c = (diffuse * hedra_diffuse_brdf(_4367, _4369, clamp(dot(l, _4371), 0.0f, 1.0f), r)) * radiance_1; if (r > 0.0f) { if (false) { mid = 1.0f - r; mid *= mid; c += ((diffuse * radiance_1) * ((smoothstep(mid - (r * 0.5f), mid + (r * 0.5f), dot(normalize(-reflect(l, n)), v)) * mid) * specular)); } else { if (false) { _4363 = _4367 > 0.0f; } else { _4363 = false; } if (_4363) { c += (((f_schlick(f0, max(dot(v, _4371), 0.0f)) * (d_ggx(max(dot(n, _4371), 0.0f), a2) * v_smith(_4367, _4369, a2))) * (specular * _4367)) * radiance_1); } } } return c; } float3 probe_light(float3 n) { return max(float3(O_1_m0.gi[0u].x + dot(O_1_m0.gi[0u].yzw, n), O_1_m0.gi[1u].x + dot(O_1_m0.gi[1u].yzw, n), O_1_m0.gi[2u].x + dot(O_1_m0.gi[2u].yzw, n)), float3(0.0f, 0.0f, 0.0f)); } float4 gi_diffuse(float3 n, bool baked, float3 baked_light) { if (baked) { return float4(baked_light, 1.0f); } if (true ? ((O_1_m0.extra.x & 8u) != 0u) : false) { return float4(probe_light(n), 1.0f); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float3 sh_irradiance(float3 n) { float3 c = float3(0.0f, 0.0f, 0.0f); c = Sky_1_m0.sh[0u].xyz * 0.2820949852466583251953125f; c += (Sky_1_m0.sh[1u].xyz * (0.48860299587249755859375f * n.y)); c += (Sky_1_m0.sh[2u].xyz * (0.48860299587249755859375f * n.z)); c += (Sky_1_m0.sh[3u].xyz * (0.48860299587249755859375f * n.x)); c += (Sky_1_m0.sh[4u].xyz * ((1.09254801273345947265625f * n.x) * n.y)); c += (Sky_1_m0.sh[5u].xyz * ((1.09254801273345947265625f * n.y) * n.z)); c += (Sky_1_m0.sh[6u].xyz * (0.3153919875621795654296875f * (((3.0f * n.z) * n.z) - 1.0f))); c += (Sky_1_m0.sh[7u].xyz * ((1.09254801273345947265625f * n.x) * n.z)); c += (Sky_1_m0.sh[8u].xyz * (0.546274006366729736328125f * ((n.x * n.x) - (n.y * n.y)))); return max(c, float3(0.0f, 0.0f, 0.0f)); } float2 env_brdf_approx(float roughness, float nv) { float4 _1583 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * roughness) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f); return (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_1583.x * _1583.x, exp2((-9.27999973297119140625f) * nv)) * _1583.x) + _1583.y)) + _1583.zw; } float probe_weight(ProbeEntryU p, float3 world_1) { float3 _3623 = mul(float4(world_1, 1.0f), p.to_local).xyz; float _3639 = min(p.extents.xyz.x - abs(_3623.x), min(p.extents.xyz.y - abs(_3623.y), p.extents.xyz.z - abs(_3623.z))); if (_3639 < 0.0f) { return 0.0f; } if (!(p.extents.w > 0.0f)) { return 1.0f; } return min(_3639 / p.extents.w, 1.0f); } float probe_exit(float o, float d, float e) { if (d > 0.0f) { return (e - o) / d; } if (d < 0.0f) { return ((-e) - o) / d; } return 3.0000000054977557577780399428115e+38f; } float3 probe_lookup(ProbeEntryU p, float3 world_1, float3 dir) { float3 _3681 = mul(float4(dir, 0.0f), p.to_local).xyz; if ((p.info.x & 1u) == 0u) { return _3681; } float3 _3691 = mul(float4(world_1, 1.0f), p.to_local).xyz; return (_3691 + (_3681 * max(min(probe_exit(_3691.x, _3681.x, p.extents.xyz.x), min(probe_exit(_3691.y, _3681.y, p.extents.xyz.y), probe_exit(_3691.z, _3681.z, p.extents.xyz.z))), 0.0f))) - p.offset.xyz; } float3 probe_face_uv(float3 d) { bool _3465 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _3468 = abs(d); if (_3468.x >= _3468.y) { _3465 = _3468.x >= _3468.z; } else { _3465 = false; } if (_3465) { ma = _3468.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_3468.y >= _3468.z) { ma = _3468.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _3468.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 probe_texel(uint row, float3 fuv, uint level) { float _3555 = 0.5f / float(max((Probe_1_m0.counts.z >> level), 1u)); return t_probes.SampleLevel(s_probes, float2((fuv.x + clamp(fuv.y, _3555, 1.0f - _3555)) / 6.0f, (float(row) + clamp(fuv.z, _3555, 1.0f - _3555)) / 8.0f), float(level)).xyz; } float3 probe_sample(uint row, float3 d, float lod) { bool _3583 = false; uint _3588 = max(Probe_1_m0.counts.y, 1u); float _3591 = clamp(lod, 0.0f, float(_3588 - 1u)); uint _3593 = uint(clamp(_3591, 0.0f, 4294967040.0f)); float _3595 = _3591 - float(_3593); float3 _3596 = probe_face_uv(d); float3 _3597 = probe_texel(row, _3596, _3593); if (!(_3595 <= 0.0f)) { _3583 = (_3593 + 1u) >= _3588; } else { _3583 = true; } if (_3583) { return _3597; } return (_3597 * (1.0f - _3595)) + (probe_texel(row, _3596, _3593 + 1u) * _3595); } float4 probe_reflection(float3 world_1, float3 r, float roughness, uint probes) { float3 acc = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3730 = min(Probe_1_m0.counts.x, 8u); float _3736 = roughness * float(max(Probe_1_m0.counts.y, 1u) - 1u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3730)) { break; } uint _3759 = i; uint _3761 = min(_3759, 7u); if (((probes >> Probe_1_m0.probes[_3761].info.w) & 1u) == 0u) { uint _3787 = i; i = _3787 + 1u; continue; } float _3771 = probe_weight(Probe_1_m0.probes[_3761], world_1); if (_3771 <= 0.0f) { uint _3787 = i; i = _3787 + 1u; continue; } acc += ((probe_sample(Probe_1_m0.probes[_3761].info.w, probe_lookup(Probe_1_m0.probes[_3761], world_1, r), _3736) * Probe_1_m0.probes[_3761].offset.w) * _3771); w_sum += _3771; uint _3787 = i; i = _3787 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float4 probe_ambient(float3 world_1, float3 n, uint probes) { float3 c = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; bool _3812 = false; float3 acc = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3819 = min(Probe_1_m0.counts.x, 8u); uint _3823 = max(Probe_1_m0.counts.y, 1u) - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3819)) { break; } uint _3845 = i; uint _3846 = min(_3845, 7u); if (!(((probes >> Probe_1_m0.probes[_3846].info.w) & 1u) == 0u)) { _3812 = Probe_1_m0.probes[_3846].info.y == 0u; } else { _3812 = true; } if (_3812) { uint _3889 = i; i = _3889 + 1u; continue; } float _3864 = probe_weight(Probe_1_m0.probes[_3846], world_1); if (_3864 <= 0.0f) { uint _3889 = i; i = _3889 + 1u; continue; } c = Probe_1_m0.probes[_3846].ambient.xyz; if (Probe_1_m0.probes[_3846].info.y == 1u) { c = probe_texel(Probe_1_m0.probes[_3846].info.w, probe_face_uv(mul(float4(n, 0.0f), Probe_1_m0.probes[_3846].to_local).xyz), _3823); } acc += (c * _3864); w_sum += _3864; uint _3889 = i; i = _3889 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float3 sky(float3 dir) { float _880 = acos(clamp(dot(normalize(dir), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_880 <= 1.57079637050628662109375f) { float _890 = clamp(1.0f - pow(max(1.0f - (1.0f - (_880 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_890, _890, _890)); } float _905 = clamp(1.0f - pow(max(1.0f - ((_880 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_905, _905, _905)); } float3 hedra_ambient(float3 n, float3 v, float3 diffuse, float3 f0, float roughness, float metallic) { float3 dif = float3(0.0f, 0.0f, 0.0f); float3 diffuse_amb = float3(0.0f, 0.0f, 0.0f); float3 dif_1 = float3(0.0f, 0.0f, 0.0f); float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 dif_2 = float3(0.0f, 0.0f, 0.0f); float3 spec_amb = float3(0.0f, 0.0f, 0.0f); float _4543 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float _4544 = 1.0f - roughness; float3 _4551 = f0 + ((max(float3(_4544, _4544, _4544), f0) - f0) * pow(1.0f - _4543, 5.0f)); float4 _4552 = gi_diffuse(n, false, float3(0.0f, 0.0f, 0.0f)); if ((Sky_1_m0.flags.x & 8u) != 0u) { float _4564 = Sky_1_m0.ibl.x * Sky_1_m0.sun.w; diffuse_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 16u) != 0u) { diffuse_amb = lerp(Sky_1_m0.ambient.xyz, sh_irradiance(sky_dir(n)) * _4564, float3(Sky_1_m0.ambient.w, Sky_1_m0.ambient.w, Sky_1_m0.ambient.w)); } if (_4552.w > 0.0f) { diffuse_amb = _4552.xyz; } spec_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 32u) != 0u) { spec_amb = radiance(sky_dir(reflect(-v, n)), roughness) * _4564; } else { if ((Sky_1_m0.flags.x & 64u) != 0u) { spec_amb = float3(0.0f, 0.0f, 0.0f); } } float2 _4610 = env_brdf_approx(roughness, _4543); if (Probe_1_m0.counts.x > 0u) { float4 _4621 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_1 = diffuse_amb; if (_4552.w <= 0.0f) { float4 _4635 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_1 = (diffuse_amb * (1.0f - _4635.w)) + _4635.xyz; } float _4650 = _4610.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * dif_1) + (((spec_amb * (1.0f - _4621.w)) + _4621.xyz) * ((f0 * _4610.x) + float3(_4650, _4650, _4650))); } else { float _4664 = _4610.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * diffuse_amb) + (spec_amb * ((f0 * _4610.x) + float3(_4664, _4664, _4664))); } } else { if ((Lit_1_m0.counts.y & 2u) != 0u) { float3 _4686 = (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f; float _4698 = clamp((dot(n, Lit_1_m0.up.xyz) * 0.5f) + 0.5f, 0.0f, 1.0f); float3 _4699 = lerp((Lit_1_m0.ground_horizon.xyz + Lit_1_m0.ground_bottom.xyz) * 0.5f, _4686, float3(_4698, _4698, _4698)); float3 _4704 = lerp(sky(reflect(-v, n)), _4686, float3(roughness, roughness, roughness)); if (Probe_1_m0.counts.x > 0u) { float4 _4716 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif = _4552.xyz; if (_4552.w <= 0.0f) { float4 _4732 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif = ((_4699 * Lit_1_m0.ambient.w) * (1.0f - _4732.w)) + _4732.xyz; } ambient = (diffuse * dif) + ((((_4704 * Lit_1_m0.ambient.w) * (1.0f - _4716.w)) + _4716.xyz) * _4551); } else { if (_4552.w > 0.0f) { ambient = (diffuse * _4552.xyz) + ((_4704 * _4551) * Lit_1_m0.ambient.w); } else { ambient = ((diffuse * _4699) + (_4704 * _4551)) * Lit_1_m0.ambient.w; } } } else { if (Probe_1_m0.counts.x > 0u) { float4 _4773 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_2 = _4552.xyz; if (_4552.w <= 0.0f) { float4 _4789 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_2 = (Lit_1_m0.ambient.xyz * (1.0f - _4789.w)) + _4789.xyz; } ambient = (diffuse * dif_2) + (((Lit_1_m0.ambient.xyz * (1.0f - _4773.w)) + _4773.xyz) * _4551); } else { if (_4552.w > 0.0f) { ambient = (diffuse * _4552.xyz) + (Lit_1_m0.ambient.xyz * _4551); } else { ambient = Lit_1_m0.ambient.xyz * (diffuse + _4551); } } } } return ambient; } bool hedra_transparent() { bool _3999 = false; bool _4001 = false; if (true) { _3999 = false; } else { _3999 = false; } if (!_3999) { _4001 = false; } else { _4001 = true; } return _4001; } float3 hedra_lit(float4 clip) { bool _4892 = false; bool _4886 = false; DecalSurface surf = _4883; float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 radiance_1 = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); bool _4895 = false; bool _4890 = false; uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); DecalSurface _4907 = { ALBEDO, clamp(METALLIC, 0.0f, 1.0f), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f), AO, hedra_n, EMISSION }; surf = _4907; if (O_1_m0.decals.z > 0u) { DecalSurface _4915 = surf; surf = apply_decals(hedra_world, hedra_n_geo, _4915); ALBEDO = surf.base; METALLIC = surf.metallic; ROUGHNESS = surf.roughness; NORMAL = normalize(mul(surf.normal, hedra_mat3(G_1_m0.view))); } float _4937 = ((surf.roughness * surf.roughness) * surf.roughness) * surf.roughness; float3 _4941 = surf.base * (1.0f - surf.metallic); float _4945 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; float3 _4947 = lerp(float3(_4945, _4945, _4945), surf.base, float3(surf.metallic, surf.metallic, surf.metallic)); float3 _4952 = hedra_view_dir(hedra_world); float3x3 _4955 = hedra_mat3(G_1_m0.view); float _4959 = lerp(1.0f, surf.occlusion, AO_LIGHT_AFFECT); DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); uint _4960 = object_light_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _4960)) { break; } uint _4983 = object_light(k); uint _4984 = min(_4983, 63u); float4 _4988 = hedra_light_dir(_4983, hedra_world); float3 _4989 = _4988.xyz; float _4990 = _4988.w; if (false) { if (!(Lit_1_m0.lights[_4984].info.x == 0u)) { _4886 = _4990 > 0.0f; } else { _4886 = true; } if (_4886) { LIGHT = normalize(mul(_4989, _4955)); LIGHT_COLOR = Lit_1_m0.lights[_4984].color.xyz; ATTENUATION = _4990 * hedra_shadow(_4983, _4989); LIGHT_IS_DIRECTIONAL = Lit_1_m0.lights[_4984].info.x == 0u; SPECULAR_AMOUNT = Lit_1_m0.lights[_4984].spot.z; light(); } uint _5097 = k; k = _5097 + 1u; continue; } if (RIM > 0.0f) { c += (((_4941 * Lit_1_m0.lights[_4984].color.xyz) * (pow(max(9.9999997473787516355514526367188e-05f, 1.0f - max(dot(surf.normal, _4952), 9.9999997473787516355514526367188e-05f)), max(0.0f, (1.0f - surf.roughness) * 16.0f)) * RIM)) * lerp(float3(1.0f, 1.0f, 1.0f), surf.base, float3(RIM_TINT, RIM_TINT, RIM_TINT))); } if (_4990 > 0.0f) { radiance_1 = Lit_1_m0.lights[_4984].color.xyz * _4990; if (Lit_1_m0.lights[_4984].info.y == 1u) { _4890 = false; } else { _4890 = false; } if (_4890) { radiance_1 = Lit_1_m0.lights[_4984].color.xyz * (_4990 * shadow_factor(_4983, hedra_world, hedra_n_geo, _4989)); } if (true) { _4892 = false; } else { _4892 = false; } if (_4892) { c += light_specular(surf.normal, _4952, _4989, radiance_1, _4941, _4947, _4937, Lit_1_m0.lights[_4984].spot.z); } else { c += hedra_light_modes(surf.normal, _4952, _4989, radiance_1, _4941, _4947, _4937, surf.roughness, Lit_1_m0.lights[_4984].spot.z); } if (any(bool3(BACKLIGHT.x > float3(0.0f, 0.0f, 0.0f).x, BACKLIGHT.y > float3(0.0f, 0.0f, 0.0f).y, BACKLIGHT.z > float3(0.0f, 0.0f, 0.0f).z))) { c += (((_4941 * radiance_1) * BACKLIGHT) * (0.3183098733425140380859375f - (max(min(dot(surf.normal, _4989), 1.0f), 0.0f) * 0.3183098733425140380859375f))); } } uint _5097 = k; k = _5097 + 1u; continue; } if (false) { c = (((DIFFUSE_LIGHT * surf.base) * _4959) * (1.0f - surf.metallic)) + (SPECULAR_LIGHT * _4959); } else { if (AO_LIGHT_AFFECT > 0.0f) { c *= _4959; } } if (true) { ambient = hedra_ambient(surf.normal, _4952, _4941, _4947, surf.roughness, surf.metallic); } if ((Lit_1_m0.counts.y & 4u) != 0u) { _4895 = !hedra_transparent(); } else { _4895 = false; } if (_4895) { int _5140; spvTextureSize(t_ao, 0u, _5140); int _5142 = int(min(uint(0), uint(int(_5140) - 1))); uint _5143_dummy_parameter; float4 _5147 = t_ao.Load(int3(int2(min(uint2(int2(clamp(floor(clip.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ao, uint(_5142), _5143_dummy_parameter)) - int2(1, 1)))), _5142)); float _5148 = _5147.x; c *= lerp(1.0f, min(_5148, surf.occlusion), Lit_1_m0.tone.z * Lit_1_m0.tone.w); c += (ambient * min(surf.occlusion, _5148)); } else { c += (ambient * surf.occlusion); } c += surf.emission; return tonemap(hedra_fog(c, _4952)); } float3 hedra_bindings() { return (t_panorama.SampleLevel(s_panorama, float2(0.5f, 0.5f), 0.0f).xyz + t_lightmap.SampleLevel(s_lightmap, float3(float2(0.5f, 0.5f), float(0)), 0.0f).xyz) + t_screen.SampleLevel(s_radiance, float2(0.5f, 0.5f), 0.0f).xyz; } float3 item_fade(float3 c) { if (true ? ((O_1_m0.extra.x & 64u) == 0u) : true) { return c; } return lerp(c, tonemap(O_1_m0.normal[3u].xyz), float3(O_1_m0.normal[3u].www)); } float3 emerge_tint(float3 c, float r) { bool _1264 = false; if (!((O_1_m0.extra.x & 32u) == 0u)) { _1264 = r >= 1.0f; } else { _1264 = true; } if (true ? _1264 : true) { return c; } float _1286 = smoothstep(0.0f, 1.0f, r); return lerp(tonemap(srgb_to_linear(spvUnpackUnorm4x8(O_1_m0.extra.w).xyz)), c, float3(_1286, _1286, _1286)); } float3 linear_to_srgb(float3 c) { float3 _384 = c * 12.9200000762939453125f; float3 _387 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _388 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_388.x ? _384.x : _387.x, _388.y ? _384.y : _387.y, _388.z ? _384.z : _387.z); } float4 hedra_output(float3 c) { float3 rgb = float3(0.0f, 0.0f, 0.0f); rgb = c; if (false) { rgb *= PREMUL_ALPHA_FACTOR; } float4 _5198 = float4(rgb, hedra_transparent() ? ALPHA : 1.0f); if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(_5198.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(_5198.w, 0.0f, 1.0f)); } float4 _5210 = clamp(_5198, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if ((G_1_m0.params.z & 2u) != 0u) { return float4(linear_to_srgb(_5210.xyz), _5210.w); } return _5210; } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); CustomOut _5245 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_5245, gl_FrontFacing); if (hedra_culled(_5245.flags)) { discard; } float _5318 = emerge_reveal(_5245.world, _5245.clip.xy); if (_5318 <= 0.0f) { discard; } if (true) { c = tonemap(hedra_fog(ALBEDO, hedra_view_dir(hedra_world))); } else { float3 _5331 = hedra_lit(_5245.clip); c = _5331; } if (Lit_1_m0.counts.w == 4294967295u) { c += hedra_bindings(); } if (G_1_m0.params.x == 8u) { c = emerge_tint(item_fade(c), _5318); } _5279 = hedra_output(c); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output._5279 = _5279; return stage_output; } fs_custom_depthmainD<struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0; float hedra_pad1; float3 tint; float alpha_cut; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D sprite_sheet : register(t4); SamplerState SAMPLER_NEAREST_CLAMP : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float2 frame_uv = float2(0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1196 = transpose(hedra_mat3(m)); return float4x4(float4(_1196[0], 0.0f), float4(_1196[1], 0.0f), float4(_1196[2], 0.0f), float4(-mul(m[3].xyz, _1196), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { frame_uv = i.hedra_v0.xy; } void fragment() { float4 _1166 = sprite_sheet.Sample(SAMPLER_NEAREST_CLAMP, frame_uv); ALBEDO = (_1166.xyz * hedra_p_1_m0.tint) * COLOR.xyz; ALPHA = _1166.w; ALPHA_SCISSOR_THRESHOLD = hedra_p_1_m0.alpha_cut; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1355 = facing != hedra_mirrored(_in.flags); hedra_front = _1355; FRONT_FACING = _1355; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1371 = hedra_mat3(G_1_m0.view); float3 _1374 = -normalize(_in.normal); float3 _1376 = normalize(_in.normal); bool3 _1378 = bool3(_1355, _1355, _1355); float3 _1377 = float3(_1378.x ? _1376.x : _1374.x, _1378.y ? _1376.y : _1374.y, _1378.z ? _1376.z : _1374.z); hedra_n_geo = _1377; hedra_n = _1377; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1377 * dot(_1377, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1400 = VERTEX; NORMAL = normalize(mul(_1377, _1371)); float3 _1403 = NORMAL; TANGENT = normalize(mul(t, _1371)); BINORMAL = normalize(mul(cross(_1377, t) * _in.tangent.w, _1371)); float3 _1411 = normalize(-VERTEX); bool _1414 = G_1_m0.camera_pos.w > 0.5f; bool3 _1416 = bool3(_1414, _1414, _1414); VIEW = float3(_1416.x ? float3(0.0f, 0.0f, 1.0f).x : _1411.x, _1416.y ? float3(0.0f, 0.0f, 1.0f).y : _1411.y, _1416.z ? float3(0.0f, 0.0f, 1.0f).z : _1411.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1422 = transpose(_1371); if (any(bool3(NORMAL.x != _1403.x, NORMAL.y != _1403.y, NORMAL.z != _1403.z))) { hedra_n = normalize(mul(NORMAL, _1422)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1422)); } if (any(bool3(LIGHT_VERTEX.x != _1400.x, LIGHT_VERTEX.y != _1400.y, LIGHT_VERTEX.z != _1400.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _708 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_708, _708, _708); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _734 = floor(p); float3 _735 = frac(p); float3 _739 = (_735 * _735) * (float3(3.0f, 3.0f, 3.0f) - (_735 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_734), emerge_hash(_734 + float3(1.0f, 0.0f, 0.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 0.0f)), _739.x), _739.y), lerp(lerp(emerge_hash(_734 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 0.0f, 1.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 1.0f)), _739.x), _739.y), _739.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _796 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_796) * 0.64999997615814208984375f) + (emerge_noise((_796 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1679 = false; bool _1681 = false; CustomOut _1638 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1638, gl_FrontFacing); if (!((_1638.flags & 2u) != 0u)) { if (true) { _1681 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1681 = false; } _1679 = _1681; } else { _1679 = true; } if (_1679) { discard; } if (emerge_reveal(_1638.world, float2(-1.0f, -1.0f)) <= 0.0f) { discard; } else { return; } } void main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); }  fs_custom_idmain?struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0; float hedra_pad1; float3 tint; float alpha_cut; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const IdOut _1712 = { float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D sprite_sheet : register(t4); SamplerState SAMPLER_NEAREST_CLAMP : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 id; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 id : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float2 frame_uv = float2(0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1196 = transpose(hedra_mat3(m)); return float4x4(float4(_1196[0], 0.0f), float4(_1196[1], 0.0f), float4(_1196[2], 0.0f), float4(-mul(m[3].xyz, _1196), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { frame_uv = i.hedra_v0.xy; } void fragment() { float4 _1166 = sprite_sheet.Sample(SAMPLER_NEAREST_CLAMP, frame_uv); ALBEDO = (_1166.xyz * hedra_p_1_m0.tint) * COLOR.xyz; ALPHA = _1166.w; ALPHA_SCISSOR_THRESHOLD = hedra_p_1_m0.alpha_cut; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1355 = facing != hedra_mirrored(_in.flags); hedra_front = _1355; FRONT_FACING = _1355; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1371 = hedra_mat3(G_1_m0.view); float3 _1374 = -normalize(_in.normal); float3 _1376 = normalize(_in.normal); bool3 _1378 = bool3(_1355, _1355, _1355); float3 _1377 = float3(_1378.x ? _1376.x : _1374.x, _1378.y ? _1376.y : _1374.y, _1378.z ? _1376.z : _1374.z); hedra_n_geo = _1377; hedra_n = _1377; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1377 * dot(_1377, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1400 = VERTEX; NORMAL = normalize(mul(_1377, _1371)); float3 _1403 = NORMAL; TANGENT = normalize(mul(t, _1371)); BINORMAL = normalize(mul(cross(_1377, t) * _in.tangent.w, _1371)); float3 _1411 = normalize(-VERTEX); bool _1414 = G_1_m0.camera_pos.w > 0.5f; bool3 _1416 = bool3(_1414, _1414, _1414); VIEW = float3(_1416.x ? float3(0.0f, 0.0f, 1.0f).x : _1411.x, _1416.y ? float3(0.0f, 0.0f, 1.0f).y : _1411.y, _1416.z ? float3(0.0f, 0.0f, 1.0f).z : _1411.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1422 = transpose(_1371); if (any(bool3(NORMAL.x != _1403.x, NORMAL.y != _1403.y, NORMAL.z != _1403.z))) { hedra_n = normalize(mul(NORMAL, _1422)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1422)); } if (any(bool3(LIGHT_VERTEX.x != _1400.x, LIGHT_VERTEX.y != _1400.y, LIGHT_VERTEX.z != _1400.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1487 = false; bool _1489 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _1487 = hedra_front; } else { _1487 = false; } if (_1487) { return true; } if (true) { _1489 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1489 = false; } return _1489; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _708 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_708, _708, _708); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _734 = floor(p); float3 _735 = frac(p); float3 _739 = (_735 * _735) * (float3(3.0f, 3.0f, 3.0f) - (_735 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_734), emerge_hash(_734 + float3(1.0f, 0.0f, 0.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 0.0f)), _739.x), _739.y), lerp(lerp(emerge_hash(_734 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 0.0f, 1.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 1.0f)), _739.x), _739.y), _739.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _796 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_796) * 0.64999997615814208984375f) + (emerge_noise((_796 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1708 = false; IdOut _out = _1712; CustomOut _1664 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1664, gl_FrontFacing); if (!hedra_culled(_1664.flags)) { _1708 = emerge_reveal(_1664.world, _1664.clip.xy) <= 0.0f; } else { _1708 = true; } if (_1708) { discard; } _out.id = float4(float(O_1_m0.params.z & 255u), float((O_1_m0.params.z >> 8u) & 255u), float((O_1_m0.params.z >> 16u) & 255u), float(uint(O_1_m0.params.x == 1u) | ((O_1_m0.params.y == 1u) ? 2u : 0u))) / float4(255.0f, 255.0f, 255.0f, 255.0f); id = _out.id; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.id = id; return stage_output; } fs_custom_normal_depthmainÈ@struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float frames_x; float frames_y; float hedra_pad0; float hedra_pad1; float3 tint; float alpha_cut; float2 snap_resolution; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const HedraNormalDepthOut _1713 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D sprite_sheet : register(t4); SamplerState SAMPLER_NEAREST_CLAMP : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 normal_depth; static float4 surface; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 normal_depth : SV_Target0; float4 surface : SV_Target1; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float2 frame_uv = float2(0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1196 = transpose(hedra_mat3(m)); return float4x4(float4(_1196[0], 0.0f), float4(_1196[1], 0.0f), float4(_1196[2], 0.0f), float4(-mul(m[3].xyz, _1196), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { frame_uv = i.hedra_v0.xy; } void fragment() { float4 _1166 = sprite_sheet.Sample(SAMPLER_NEAREST_CLAMP, frame_uv); ALBEDO = (_1166.xyz * hedra_p_1_m0.tint) * COLOR.xyz; ALPHA = _1166.w; ALPHA_SCISSOR_THRESHOLD = hedra_p_1_m0.alpha_cut; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1355 = facing != hedra_mirrored(_in.flags); hedra_front = _1355; FRONT_FACING = _1355; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1371 = hedra_mat3(G_1_m0.view); float3 _1374 = -normalize(_in.normal); float3 _1376 = normalize(_in.normal); bool3 _1378 = bool3(_1355, _1355, _1355); float3 _1377 = float3(_1378.x ? _1376.x : _1374.x, _1378.y ? _1376.y : _1374.y, _1378.z ? _1376.z : _1374.z); hedra_n_geo = _1377; hedra_n = _1377; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1377 * dot(_1377, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1400 = VERTEX; NORMAL = normalize(mul(_1377, _1371)); float3 _1403 = NORMAL; TANGENT = normalize(mul(t, _1371)); BINORMAL = normalize(mul(cross(_1377, t) * _in.tangent.w, _1371)); float3 _1411 = normalize(-VERTEX); bool _1414 = G_1_m0.camera_pos.w > 0.5f; bool3 _1416 = bool3(_1414, _1414, _1414); VIEW = float3(_1416.x ? float3(0.0f, 0.0f, 1.0f).x : _1411.x, _1416.y ? float3(0.0f, 0.0f, 1.0f).y : _1411.y, _1416.z ? float3(0.0f, 0.0f, 1.0f).z : _1411.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1422 = transpose(_1371); if (any(bool3(NORMAL.x != _1403.x, NORMAL.y != _1403.y, NORMAL.z != _1403.z))) { hedra_n = normalize(mul(NORMAL, _1422)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1422)); } if (any(bool3(LIGHT_VERTEX.x != _1400.x, LIGHT_VERTEX.y != _1400.y, LIGHT_VERTEX.z != _1400.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1487 = false; bool _1489 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _1487 = hedra_front; } else { _1487 = false; } if (_1487) { return true; } if (true) { _1489 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1489 = false; } return _1489; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _708 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_708, _708, _708); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _734 = floor(p); float3 _735 = frac(p); float3 _739 = (_735 * _735) * (float3(3.0f, 3.0f, 3.0f) - (_735 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_734), emerge_hash(_734 + float3(1.0f, 0.0f, 0.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 0.0f)), _739.x), _739.y), lerp(lerp(emerge_hash(_734 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 0.0f, 1.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 1.0f)), _739.x), _739.y), _739.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _796 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_796) * 0.64999997615814208984375f) + (emerge_noise((_796 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1709 = false; HedraNormalDepthOut _out = _1713; CustomOut _1664 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1664, gl_FrontFacing); if (!hedra_culled(_1664.flags)) { _1709 = emerge_reveal(_1664.world, _1664.clip.xy) <= 0.0f; } else { _1709 = true; } if (_1709) { discard; } float _1737 = clamp(METALLIC, 0.0f, 1.0f); float _1741 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; _out.normal_depth = float4(normalize(mul(hedra_n, hedra_mat3(G_1_m0.view))), -mul(float4(_1664.world, 1.0f), G_1_m0.view).z); _out.surface = float4(clamp(lerp(float3(_1741, _1741, _1741), ALBEDO, float3(_1737, _1737, _1737)), float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f)); normal_depth = _out.normal_depth; surface = _out.surface; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.normal_depth = normal_depth; stage_output.surface = surface; return stage_output; }  @Ð Ð/ ,@  0{Ðþ—4ÌhÜäF‚�SKw;)»0Èïq-îçkíVã›cHSLTGlobals@ viewÿÿÿÿproj@ÿÿÿÿ view_proj€ÿÿÿÿ camera_posÀÿÿÿÿviewportÐÿÿÿÿ wire_coloràÿÿÿÿ select_colorðÿÿÿÿ active_colorÿÿÿÿgridÿÿÿÿparams ÿÿÿÿfparams0ÿÿÿÿG_block@ObjectUmodelÿÿÿÿnormal@ÿÿÿÿcolor€ÿÿÿÿparams�ÿÿÿÿextra ÿÿÿÿgi°ÿÿÿÿdecalsàÿÿÿÿlightsðÿÿÿÿO_block HedraParams(frames_xÿÿÿÿframes_yÿÿÿÿ hedra_pad0ÿÿÿÿ hedra_pad1 ÿÿÿÿtintÿÿÿÿ alpha_cutÿÿÿÿsnap_resolution ÿÿÿÿ hedra_p_block(LightUPcolorÿÿÿÿpositionÿÿÿÿ direction ÿÿÿÿspot0ÿÿÿÿinfo@ÿÿÿÿLitUÐ countsÿÿÿÿambientÿÿÿÿtone ÿÿÿÿup0ÿÿÿÿsky_top@ÿÿÿÿ sky_horizonPÿÿÿÿground_horizon`ÿÿÿÿ ground_bottompÿÿÿÿ inv_view_proj€ÿÿÿÿdirsÀÿÿÿÿlightsÐ@P Lit_blockÐ ShadowLightU@paramsÿÿÿÿsplitsÿÿÿÿfade ÿÿÿÿinfo0ÿÿÿÿ ShadowTileU` view_projÿÿÿÿrect@ÿÿÿÿtexelPÿÿÿÿShadowU atlasÿÿÿÿlights@ tiles` Shadow_block  SunU  directionÿÿÿÿcolorÿÿÿÿSkyUflagsÿÿÿÿto_skyÿÿÿÿsky_topPÿÿÿÿ sky_horizon`ÿÿÿÿ ground_bottompÿÿÿÿground_horizon€ÿÿÿÿsun�ÿÿÿÿambient ÿÿÿÿibl°ÿÿÿÿ fog_colorÀÿÿÿÿfogÐÿÿÿÿ fog_depthàÿÿÿÿ fog_originðÿÿÿÿsuns sh€ ÿÿÿÿ Sky_block ProbeEntryU€to_localÿÿÿÿextents@ÿÿÿÿoffsetPÿÿÿÿambient`ÿÿÿÿinfopÿÿÿÿProbeUcountsÿÿÿÿprobes€ Probe_block DecalEntryU°to_localÿÿÿÿmodulate@ÿÿÿÿfadesPÿÿÿÿaxis_x`ÿÿÿÿaxis_ypÿÿÿÿaxis_z€ÿÿÿÿlayers�ÿÿÿÿflags ÿÿÿÿDecalU ,countsÿÿÿÿlodÿÿÿÿentries @° Decal_block , FogEntryU�to_localÿÿÿÿsize@ÿÿÿÿmaterialPÿÿÿÿalbedo`ÿÿÿÿemissionpÿÿÿÿlights€ÿÿÿÿFogU@ countsÿÿÿÿparamsÿÿÿÿambient ÿÿÿÿup0ÿÿÿÿ light_fog@ÿÿÿÿentries@� Fog_block@ GOhedra_pLitShadow SkyProbeDecalFogt_shadowÿÿÿÿ t_radianceÿÿÿÿ t_panoramaÿÿÿÿt_aoÿÿÿÿ t_lightmapÿÿÿÿt_probesÿÿÿÿt_decalsÿÿÿÿt_screenÿÿÿÿ sprite_sheetÿÿÿÿs_shadowÿÿÿÿ s_radianceÿÿÿÿ s_panoramaÿÿÿÿ s_lightmapÿÿÿÿs_probesÿÿÿÿs_decalsÿÿÿÿSAMPLER_NEAREST_CLAMPÿÿÿÿ vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depthP3#/2 GLSL.std.450#vs_customý  !"#¢vs_custom_instancedwy{}�„†ˆŠŒ�‘“•–—˜™š›œ�žŸ ¡Tvs_custom_skinned13579;>ACEGHIJKLMNOPQRS÷fs_customÙÛÝßáãåçéëíïñóöZfs_custom_depth>@BDFHJLNPRTVX�fs_custom_id€‚„†ˆŠŒŽ�’”–˜šœófs_custom_normal_depthÕ×ÙÛÝßáãåçéëíïñò÷Z�óH#HHH#@HHH#€HHH#ÀH#ÐH#àH#ðH#H#H # H #0G H #H H H #@H H H #€H #�H # H #°H #àH #ðGH#H#H# H#0H#@GPH#H#H# H#0H#@H#PH#`H#pH#€HHH #ÀH #ÐH#H#H# H#0H#HHH#@H#PG@G`H#H#H#H#H#G GH!#H!#H!H!H!#PH!#`H!#pH!#€H!#�H!# H!#°H! #ÀH! #ÐH! #àH! #ðH! #H!#€H%#H%H%H%#@H%#PH%#`H%#pG&€H(#H(#H)#H)H)H)#@H)#PH)#`H)#pH)#€H)#�H)# G*°H+#H+#H+# H,#H,# H,#H,#H,# H,#0H/#H/#H/# H/#(H/#0H/#@H0#H0#H0# H0#0H3#H3H3H3#@H3#PH3#`H3#pH3#€G4G5�H6#H6#H6# H6#0H6#@H6#@G7G8G9G:H<#H=#H=#H>#H>#H># H?#H?#H@#H@#H@# H@#0H@#8H@#@H@#PH@#`H@#hH@ #pH@ #€H@ #�H@ # HA#HB#HB#HB#HB# HB#HB#HB# HD#HD#G�"G�!G‚H‚#G„"G„!G…H…#G‡"G‡!GˆHˆ#GŠ"GŠ!G‹H‹#G�"G�!G�"G�!G‘"G‘!G’H’#G”"G”!G–"G–!G˜"G˜!G™"G™!Gš"Gš!G›"G›!G�"G�!Gž"Gž!GŸHŸ#G¡"G¡!G¢"G¢!G£"G£!G¤H¤#G¦"G¦!G§"G§!G¨"G¨!G©H©#G«"G«!G¬H¬#G®"G®!Gò"Gò!GóHó#Gõ"Gõ!Gö"Gö!GýGGGGG G G *G GGGGGGGGGGGG  G! G" GwGyG{G}GG�G„G†GˆGŠ GŒ G�G‘G“ *G• G–G—G˜G™G™GšG›GœG�G�GžGŸ G  G¡ G1G3G5G7G9G;G> GA GC GE *GG GHGIGJGKGKGLGMGNGOGOGPGQ GR GS GÙ GÛGÝGßGáGáGãGåGçGéGéGëGí Gï Gñ Gó GóGöG> G@GBGDGFGFGHGJGLGNGNGPGR GT GV GX GXG€ G‚G„G†GˆGˆGŠGŒGŽG�G�G’G” G– G˜ Gš GšGœGÕ G×GÙGÛGÝGÝGßGáGãGåGåGçGé Gë Gí Gï GïGñGò   +       +  +@ + ++  ! " # $%+'&%'(& )*)+*,  -. / -01 2.345364578-9+;ý:;<:=>?@ --A B - C@D+E+F+G+H+I+J+K ) L+MÛI@+NÛÉ@+OTø-@+Pÿÿÿÿ+Q¯´´>, RQQQ+Sެ,>+T ý|>+Uš™?, VSTU+W”„>+XÍÌÌ>+Y°¬,?, ZWXY+[îÐÐ=+\™Ÿ?+]¿¸8?, ^[\]+_+ùø=+`©¡!?+a‹‡?, b_`a+c¢šš>+d¶»;?, ecdQ+f ¦&?+gÜÔT?+hêèh>, ifgh+júòr?+kÍÈH?+loñp=, mjkl+n“Ž?, ojnl+pÛà`?+qƒŠ ?, rpWq, sRVZ^beimor+t€+u+vff¦?+wÍÌL?+x�Âõ=+y$tI+z€+{ns\?+|ý®>+}²>+~ýò&?+ÿ* €‚ ƒ‚;ƒ�… †…;†„ˆ ‰ˆ;‰‡‹ Œ‹;ŒŠ Ž;Ž� �;��’! “’;“‘ •";•” —#;—–;�˜;�™;—š œ$;œ›;��Ÿ(  Ÿ; ž;—¡;�¢¤+ ¥¤;¥£;œ¦;�§©6 ª©;ª¨¬< ­¬;­«;—® ° . ±;°¯±;°²±;°³±;°´± ¶.·;¶µ· ¹-.-º;¹¸º;¹»º;¶¼· ¾...¿;¾½¿;¶À·;¾Á¿ Ã.Ä;ÃÂÄ Æ1.1Ç;ÆÅÇ;ÃÈÄ;ÃÉÄ;ÃÊÄ;ÆËÇ;°Ì±;°Í±;°Î±;°Ï±;¶Ð· Ò . Ó;ÒÑÓ;°Ô±;°Õ± ×.Ø;×ÖØ;°Ù±;×ÚØ;×ÛØ;×ÜØ;×ÝØ;×ÞØ;×ߨ;×àØ;×áØ;°â±;×ãØ;×äØ;°å±;¹æº;×çØ;°è±;°é±;ÒêÓ;×ëØ;°ì±;°í±;°î±;°ï±;°ð±;ÒñÓóB ôó;ôò;—õ;�ö;¹÷º!ü-+!  + R¸NA,    + ®Ga=,    += ‡?, +š™@, +æ®%=,  !! " $ +&ö(\?, '&+(€?+)š™Y?+*fff?, +)* - . .. 0 6 7 _q !y  }.~ € ˆ+’UUÕ>, “’’’+”.M;, •”””! ,¢,£((((+¤? §!³!¼+¾?!Í Ð Õ Û! )  ++½7†5!/- 6$!@, ,+F€¿, GF, H(((+I@+JìQ8= L,.,M O. Q.S U).)V] ^]_ ,]`GG,]aPP s* w)!-!;+<·Ñ8!Q +R @! c , d, eMMM+�ÛÉ?+‚UUÕ@+ƒHB+°®Ga?+±ÍÌÌ=+²ÍÌL>+³ ×#<+´š™™>, µUUU+Íffæ?+Îrá?+Ï‚‹µ>+ÐÒŒE=, ÑÎÏÐ+Ò㥛=+Óøˆh?+ÔfI€<, ÕÒÓÔ+Ö§è<+×» >+ØxV?, ÙÖר+ÚYÉ<, ÛÚÚÚ+ܯ޽8, ÝÜÜÜ+ÞªÕ{?+ßÁ«Ý>, àßßß+á�Ës>, âááá+ãshÍ?+äÜô¿+åLà–½, æãäå+çRѽ+è4×�?+é?Æ», êçèé+ëMV»+ì2•½+í»‰?, îëìí+ ?+…Ï>+%ëµ=+`¿>+T A?+‘+7>++­¦=+�í×=+¼t;?, , , ,1+hvû?+Ê@™¾+ ,P(¾+!Š[¿+"&É©?+#)ñs¾+$¸õÞ½+%Oßݼ+&ŠŠ³?, ' , (!"#, )$%&,1*'()++9•GÁ+,ŽÕ€@+-ÿæ[/, .---, /+++, 0,,,+11¬<+2îZ€@+3¼tÍA+4Ï·ŒB+5VŽ•B+6P�ØA+7ÿæÛ., 8777. :!… +†&Ó=+‡\�úA, ˆ‡‡‡. Š+¢@@, £¢¢¢, ¤(, ¥(, ¦((, §(, ¨((, ©((, ª(((!Ó -+Õff&?+ÖÍÌ,@+×Í̈A, Ø×××+Ù33³>+ÚCq‰=+Û�E¿;,-ÜÚÛ+Ý‚îSB.ß.  ;!. T ‚ „+† !Ã...+.Ç+.É€+.Êÿÿÿÿ+.Ïì#+úÏ+ûÿÿÿN,2ÏÏ+ Án�>+!,*ú>+"�Ø‹?+#{¡>+$�Ø ?. & (+)Ž"!–-+—®Gá¼+˜˜n¿+™X9´<,šF—˜™+›{.=+œ¸…?+� ×#½,ž(›œ�+ŸázÁ+ ¸…¿,-¡ œ!µ!À +Ãoƒ:. Å å æ+  ! .".$. &. (+4 !­-  ®6+°̼Œ+, ±°°° ³-.-´ ¹5 º3+»+¿ÿÿO!¦ ,-¨+©À.«!& +( r1?+) ÀA+* «ª*>.l !…  +ˆ ÛIA. Š . � .�  4!  -. .  .  . " . $ !Ê +Í +Î ¬Å'7 Ð 7.7Ñ Ó 8.8Ô . Ø Ú 9.9Û .ß .á .ã !> !‘  ” +˜ A. œ . ž .   £ ...¥ ²  ³  î  ô  Á  !Þ  +ð €@.ò .ô .ö .ø . ú !F   G(+KÀ@+LA!j  . o!‘% +¹æ±a!Ë % !÷  ÿ%.%.% "& $%!S . [. ].%_!» ¼<+¾þ À:+Äü!Ë>= Î>.>Ï!C!@!! &B,((.*. , @- Œ !™1!¥!·!Æ--!Î . Ð. Ò!à !î1!  --. !9@ .@<. ]!e!| !Š@ , �¤¤¤,-‘((. “. •. . !Z+[ƒù¢>! ˆ . Š.Œ. Ž!Ñ .Ô!  . ! ) . 3. 5. 7. 9. ;. =. b! +‘ ×#>+’€A.,”. ˜. š. œ. ž. ¡,-�úú,-�ûû,2—ÏÏ!¾ . Â,-줤 þ ;þý;þ -; ;  ;   ;  ;; ;  ;; -; ;;;;;;; ;!;" B;þw;þy;{;}; ; �; „; †; ˆ; Š;Œ; �; ‘;“;•;–;—;˜;™;š;›;œ;�;ž;Ÿ; ;¡;þ1;þ3;5;7; 9; ; ?;?>; A;C;E;G;H;I;J;K;L;M;N;O;P;Q;R;S; Ù;þÛ;þÝ;ß;á; ã; å;ç;é; ë; í; ï; ñ ô ;ôó;ö. ; >;þ@;þB;D;F; H; J;L;N; P; R; T; V;ôX,-`FF. b. d; €;þ‚;þ„;†;ˆ; Š; Œ;Ž;�; ’; ”; –; ˜;ôš;œ+£C,¤££££. ¦ ¨A.A©; Õ;þ×;þÙ;Û;Ý; ß; á;ã;å; ç; é; ë; í;ôï;ñ;ò. ú üD.Dý6ûü7-ù7úøø=ý�=þ�ùÿøÿQùQùP-VýþZúþ86  7 øùøˆ  � ˆ   ¼© þ86 !77ø;-,.;-/0A"#�GA$%„Gù1ø1Ç2ª 32G÷4ú354ø5þø4A78# E=98A7:% =;:ª <;EÇ=« >=G÷?ú>@Aø@ÇB9F« CBG>,Cù?øA>,€ù?ø?= D,÷EúDFEøF9 G 'PHG(þHøEÇI'« JIG÷KúJLMøLÇN9« ONG>/OùKøM>/€ùKøK= P/÷QúPRQøR9 S +PTS(þTøQÇU9E« VUG÷WúVXWøX÷Yú<ZYøZÇ[E« \[G÷]ú\^]ø^A_`#I=a`þaø]A_b#H=cbþcøYA7d% G=edª feE÷gúfhgøhA_i#I=jiA_k#J=lkA7m% E=nmª onEPqroooo©prljþpøgùWøWA_s#H=tsþt86xy7 v7wøu;}|~A"z�GA${„GùøA€�zG=‚�A€ƒ{G=„ƒ’…‚„P†v(‘‡…†>|‡Aˆ‰|F=Љƒ‹(w…ŒŠ‹Aˆ�|F>�Œ=Ž|þŽ86 ‘ 7 �ø�ù–ø–Ž —�   ˜�“Ž ™˜ƒ 𙼛�•© œ›—šþœ86Ÿ 7žø�A"¡�Gù¥ø¥ ¦+ž¢£A§¨¡ =©¨º ª©¤÷«úª¬«ø¬O ­¦¦9 ®‘­Q¯¦P°®¯þ°ø«þ¦86²³ø±A$´„GùµøµA7¶´JF=·¶ ¸&·'þ¸86»¼7ºø¹A$½„Gù¿ø¿A7À½JE=ÁÀA7½JG=ð ĺ©ÅÄÃÁÇÆº „ÇÆ'ÂÈÅÇÇÉÈ Ê&ɾþÊ86 ÌÍøË;ÐÏsA$΄GùÑøÑA7ÒÎJ =ÓÒ Ô&Ó Ö&Ô AÕ×ÏÖ= Ø×þØ86Ú³øÙAÛ܇GùÝøÝA7ÞÜ F=ßÞ à&ß'þà86ã¼7âøáAÛä‡GùåøåA7æä E=çæA7èä G=éè° êâ©ëêéçÇìâ „íì'ÂîëíÇïî ð&ï¾þð86ò³øñA$ó„GùôøôA7õóIF=öõ ÷&ö'þ÷86ú¼7ùøøA$û„GùüøüA7ýûIE=þýA7ÿûIG=ÿ° ù©þÇù „'ÂÇþ86  7)7 øA" �GA £GùøA§EG=A_  =O ƒ   BA§EE=º ¤©(…A7GE= )E‚ Ep! Q"Q#" $(#ˆ%$ &(%( '& (+'!þ(86./7*7-+7,7 -ø)=$0¦=1§ù2ø2‚3*E|.43©5-,o74P 8+7V6901X:985þ:86,?@7 <7 =7,>ø;;UTV;ONG;ˆRS;LKM;-PQ;^baA"A�GA$B„GA C£G=$D¦=E§ùWøW>K>9XòùYøYöZ\ùcøc=]dbª_e`d› fe÷gúfZgøgQhdª ihG©jiEGP]kjE‚]ldk>blù[ø[=mN° nmX÷oúnopøpùZøoùqøq=tN9uút v&u¾ x&v¾AwyCFx=)zyQ{zP|<(‘}{|O ~}}¾~G› €÷�ú€‚ƒø‚¼„~H› …„>P…ù�øƒ>P€ù�ø�= †P¨ ‡†÷ˆú‡‰ˆø‰ù\øˆQŠ~ ‹ŠƒŒ(‹Q�zQŽ�Q�zQ��Q‘~º ’‘©“’�Ž ”Œ“>R”Q•zQ–•º —–÷˜ú—™˜ø™=šRQ›zQœ›Q�zO ž��”Ÿ=ž… Ÿ¤�¡ ¤ ¢1œ(¡…£š¢>R£ù˜ø˜O-¤~~>Tz=)¥T9¦ ¥<Q§zQ¨§Q©zQª©¬ «ªG÷¬ú«­¬ø­Q®zQ¯®Ç°¨E« ±°G9².¯¤¦±O ³²²9 ´ ³Qµ²P¶´µQ·z…¸¶·Q¹¸=ºR…»¹ºAÕ¼KG= ½¼O ¾¸¸Q¿zQÀ¿…Á»ÀP ÃÁÁÁ  Â.½¾ÃAÕÄKG>ÄÂQÅzQÆÅ¬ ÇÆG÷ÈúÇÉÈøÉQÊzQËÊÇ̨F« ÍÌG9Î.ˤ¦ÍQÏÎ…ÐÏIƒÑÐ(QÒÎ…ÓÒIƒÔ(Ó…ÕÑуÖ(Õ…×ÔÔƒØÖ× Ù(Ø ÚÙQÛzO ÜÛÛŽ ÝÜÑQÞzO ßÞÞŽ àßÚ� áÝàQâzO ãâ⎠äãÔ� åáä  æEåAÕçK= èçP ê»»»  é.èæê  ëEéAÕìK>ìëùÈøÈQízQîí¬ ïîG÷ðúïñðøñQòzQóòÇô¨« õôG9ö.ó¤¦õAˆ÷K =ø÷Qùö ú.øù»AˆûK >ûúAˆüKF=ýüQþö ÿ.ýþ»AˆKF>ÿAˆKE=Qö .»AˆKE>ùðøðù¬ø¬QzQ¬ G÷ ú  ø Q zQ  Ç ¨'«  G9. ¤¦AÕKH= O 9  QzO … QzQŽ =RŽ � AÕKH>ù ø ùrørù\ø\=N€E>NùYøZAˆ KF=!  "+!J(Aˆ#KF>#"Aˆ$KE=%$ &+%(Aˆ'KE>'&=,(Kþ(86,-7*7+ø)ù.ø.…/**ƒ0+(…1/0�21(…3M2…432ˆ5+4þ586:;777879ø6ù=ø=…>88ƒ?(9…@>?�A@9 BA…C7B…D77ƒE(9…FDE�GF9 HG…I8H�JCI K(J<ˆL¤KþL86 PQ7 N7OøMùSøSƒ THNƒU(O VURŽ WTV� XNWþX86 bc7 Z7 [7 \7 ]7 ^7 _7`7aøYùføf”gZ\¼ hg÷iúhjiøjþdøi� k\[  lEk”mZl n(m”o[l p(o”qZ[ r(q<9 sP_p9t,n`9u:gr`…vtuŽ wsvˆ x^eŽ ywa� zxy… {z]Ž |{gþ|86  7 ~ø}AÛ€‡Gù„ø„  …E~A_†€ =‡†O ˆ‡‡”‰…ˆ Š+‰F( ‹Š¼ Œ‹�÷�úŒŽ�øŽˆ�‹�ƒ�(�ƒ‘(� ’(‘ “’‚ƒ”(“ •+”(A_–€H=—–O ˜——A_™€=š™O ›ššP �•••  œ.˜›�þœø�ƒž‹�ˆŸž�ƒ (Ÿ ¡(  ¢¡ƒƒ£(¢ ¤+£(A_¥€I=¦¥O §¦¦A_¨€J=©¨O ª©©P ¬¤¤¤  «.§ª¬þ«86 ¯ 7 ®ø­ù¶ø¶Ž ·®°…¸±UP ¹¸¸¸� º·¹… »®º…¼²³P ½¼¼¼� ¾»½Ž ¿®°� À¿µ… Á®À…²´P ÃÂÂÂ� ÄÁÈ žĈƳ´P ÇÆÆÆƒ ÈÅÇþÈ86 ÌQ7 Ê7ËøÉùïøï”ðÑÊ…ñÍð”òÕÊ…óÍò”ôÙÊ…õÍôP öñóõ� ÷öÛ… øö÷ƒ ùøÝŽ úöÞ� ûúà… üöû� ýü∠þùý”ÿæþ”êþ”îþP ÿ…ÍË�Ú…ƒÜ…Þ�ß… �  ሠ P    ˆ  þ 86  7 ø;Õ9:ù;ø;  <(.‘ =<>9== >9  ?>  @+?/0ƒ A@/ƒB,+P CBBBˆ DAC>9D= E9= F9… GEF… HGG= I9Ž JI1Ž KG2� LJKŽ MG3= N9… OMNƒ PLOŽ QH4� RPQŽ SH5= T9… USTƒ VRUŽ WH6… XWG� YVX  Z(Y8  [Z‘ \*[þ\86 _ 7 ^ø]AÛ`‡GùaøaA§b`FG=cbŽ d^c  e(ddA§f`FE=gfA7h`GF=ihª jiE÷kújlkølŽ meg� nmeŽ oegP pggg� qopˆ rnqþrøkª siF÷túsutøu9 v¯eP wggg9 x¯wˆ yvxþyøtª zi ÷{úz|{ø|9 }Ìegþ}ø{ª ~i÷ú~€ø€9 �eþ�øþe86„…7 ƒø‚;Õ‰Šù‹ø‹Ž Œƒ†  � Œ>‰�= މ= �‰= �‰O ‘��� ’‘ˆ”“�’P ”“““� •Ž”>‰•Aˆ–‰G=—–Aˆ˜‰E=™˜�š—™Aˆ›‰F=œ›…�šœ ž �þž86¡…7  øŸù«ø«  ¬   ­  … ®­­Ž ¯­Iƒ °£¯… ±®°9²„¬� ³¬¤9´„³Qµ± ¶.²´µ� ·¬¥9¸„·� ¹¬¦9º„¹Q»± ¼.¸º»Q½± ¾.¶¼½� ¿¬§9À„¿� Á¬¨9„ÁQñ Ä.ÀÂÃ� Ŭ©9Æ„Å� Ǭª9È„ÇQɱ Ê.ÆÈÉQ˱ Ì.ÄÊËQͱ Î.¾ÌÍþÎ86ÒÓ7 Ð7-ÑøÏ;ˆÞßA$Ô„GùàøàA7áÔG=âáÇãâKª äãG© åLäL÷æúåçæøçþ(øæA§èÔEG =éèŽ êÐv9ë¡ê…ìëÕŽ íêÖ� îíØ9ï¡î…ðïÙ�ñìð ò1²wñ>ÞòQóѾ ôó÷õúôöõøö -÷Ñ”ø÷Ü ù ø…úÝù û ú=üÞƒýû¤…þýx�ÿüþ +ÿ(>Þùõøõ…éÍ=Þƒˆwþ86 Q7 7ø;-  A$ „GAÛ ‡Gù ø A7 G=ÇKª G¨ ÷úø¾ (> ùø> Lùø=  © LL÷úøþøA7  = @O 9  9 _ !1(P #!!!  ". #þ"86 & 7 %ø$A$'„GAÛ(‡Gù)ø)A7*'G=+*Ç,+ª -,G© .L-L÷/ú.0/ø0þ%ø/A_1'E =21O 3229 4_3Q52P 7555  6.%47þ686 : 7 9ø8A;<‘Gù=ø=A€><E=?>P@9‘A?@O BAA  CEBþC86G-7E7FøDùHøHƒI(E J(IˆK(F LJKƒM(L N+M(þN86 Q 7 PøO;ÕST;OUG;^qaA;R‘GùVøVQWP X+WF( YXA_ZR =[ZO \[[A_]RF=^]O _^^ˆ`Y�ƒa(`A§bRF =cb9dGacP fddd  e.\_fA§gR =hgŽ ieh>SiA7jRGF=kj l&kùmømönpùrør=]sqª_t`s› ut÷vúunvøvQwsª xwG©yxEGP]zyE‚]{sz>q{ùoøo=|U° }|l÷~ú}~øùnø~ù€ø€=ƒU …&ƒ A„‡R†…=ˆ‡Q‰ˆQЉQ‹ˆO Œ‹‹”�ŒP Ž+�F( �ޏ ��Š÷‘ú�’“ø’Q”ˆO •””>S•ù‘ø“A§–RIG=—–¸ ˜�—÷™ú˜š™øšƒ›�ŠA§œRIG=�œƒž�ŠˆŸ›žQ ˆO ¡  = ¢SA§£RIE=¤£9¥GŸ¤P §¥¥¥  ¦.¡¢§>S¦ù™ø™ù‘ø‘ù�ø�ùpøp=¨U€©¨E>U©ùmønA_ªRH=«ªO ¬««A_­R=®­O ¯®®ƒ°Y�ˆ±°�A§²R =³²9´G±³P ¶´´´  µ.¬¯¶A§·RH =¸·Ž ¹µ¸= ºSQ»P¾ ¼»P¾¼¼¼© ½¾º¹A§¿RIF=À¿Ž Á½ÀþÁ86.ÂÃ7.Ä7.ÅøÆª ÈÅǪ ËÄɪ ÌÅʧ ÍË̦ ÎÈÍ©.ÐÎÏŇ.ÑÄЄ.ÒÑЂ.ÓÄÒþÓ86 Ö 7 ÕøÔA;בG=#Ø–=Ù™ùÚøÚQÛÕQÜÕÝÜ ÞÛ݈ßÞN à ßQáÕ â+áF( ãâˆäãMP-åàäA7æ×GG=çæÇèç« éèG÷êúéëêøëVìíØÙXîíåO ïîîA§ð×IF=ñðŽ òïñþòøêg]óØÇ|2ôóQõåQ.öôo÷ö…øõ÷ ùø ü+ùúûn.ýüQ.þô9.ÿÂýþQ.ô€.ÿQ.ô9.ÂQåQ.ôo…   +úûn.  Q. ô‚.  Ï .* Ç . ' P2 j.Ø‚.Ï .&Çg2Ø‚2 2&_ØO A§×IF=Ž þ86  7 ø;Õ%&A;‘Gù'ø'A_*)G=+*O ,++Ž -, >%-= .%A_/)E=0/O 100Q2…3!2Ž 413� 5.4>%5= 6%A_7)F=87O 988Q:…;!:Ž <9;� =6<>%== >%A_?) =@?O A@@QB…C!BŽ DAC� E>D>%E= F%A_G)=HGO IHHQJ…K"JQL…MKLŽ NIM� OFN>%O= P%A_Q)H=RQO SRRQT…U"TQV…WUVŽ XSW� YPX>%Y= Z%A_[)I=\[O ]\\Q^…_¢^Q`…a_`ƒba(…c#bŽ d]c� eZd>%e= f%A_g)J=hgO ihhQj…k"jQl…mklŽ nim� ofn>%o= p%A_q)'=rqO srrQtQu…vtuQwQx…ywxƒzvy…{$zŽ |s{� }p|>%}= ~%  (~dþ86 ƒQ7 �7‚ø€A;„‘G="…”=†˜ù‡ø‡A7ˆ„GE=‰ˆ Š)‰E‚‹ŠEpŒ‹…�‚ŒVŽ�…†X����O ‘��þ‘86-•–7“7”ø’ù¢ø¢Ž£š“�¤£žQ¥¤Q¦¤…§¥¦…¨Ÿ” ©¨ ª%§©Q«¤…¬ª«Q­¤�®¬­Ž-¯¡®O-°¤¤�-±¯°þ±86´µ7³ø²ù¶ø¶ ·(³ ¸(³…¹·¸…º¹¹…»ººþ»86 ¿À7 ½7 ¾ø¼;ÕÄÅ;OÆG;^ÒaAÛÁ‡GA;‘GùÇøÇ>ĽA§È =ÉȺ ÊÉÃ÷ËúÊÌËøÌ9ÍÚùÎøÎöÏÑùÓøÓ=]ÔÒª_Õ`Ô› ÖÕ÷×úÖÏ×ø×QØÔª ÙØG©ÚÙEGP]ÛÚE‚]ÜÔÛ>ÒÜùÐøÐ=ÝÆ° ÞÝÍ÷ßúÞßàøàùÏøßùáøá=ãÆ9äãã ç&ä¾A7èÁçG=éèª êéG÷ëúêìëøì= íÄ î&ä¾A_ïÁîG=ðïO ñððˆ òñe ó&ä¾A_ôÁóF=õôO öõõ ÷ö”ø¾÷9ù´øŽ úòùA§û =üûŽ ýúü� þíý>ÄþùëøëùâøâùÑøÑ=ÿÆ€ÿE>ÆùÎøÏùËøË= Äþ86 À7 7 øAÛ‡GA;‘GùøA_  =  O   A§   = P   . 9 ¿A§E=P   .þ86 7 7 7 ø;ˆ#$;-'(;ˆ!";Õ%&A"�GAÛ‡GA;‘G="”= ˜ù)ø)A€*G=+*P,(‘-+,Q.-/.A_0 =10O 211 3C2>!3A§54 =65º 76¤÷8ú798ø9A§:4G=;:ƒ</; =(<>!=ù8ø8A7>GG=?>Ç@?u« A@G÷BúACDøCA§E G=FEA§G E=HG=I! J1FHI K(JA§L F=ML NKMº OJ©PONA§QG=RQ…SPR>#SùBøD=T!UTA§VG=WV…XUW Y%X ZYƒ[(Z>#[ùBøBA§\ =]\ ^]¾ _^<÷`ú_a`øaA_b =cbO dcc”ed=f#A§gF=hgƒiehA§j =kj…lik m%l nmƒo(n p(fo>#pù`ø`=q# r+q(>#rA_s =tsO utt>%uA7vGG=wvÇxw'« yxG÷zúy{|ø{A§}  =~}º ~>'ùzø|>'€ùzøz= €'© �L€€÷‚ú�ƒ‚øƒA§„4E=…„ƒ†/…A§‡4F=ˆ‡A§‰4E=Љƒ‹ˆŠ Œ(‹ˆ�†Œ Ž+�(A7�GE=�� ‘)�F‚’‘Ep“’ˆ”(“ƒ•(Ž –.”(•= —%9 ˜:9 ™ƒ˜–A§šI =›šŽ œ™›A§�  =ž�P  žžž  Ÿ.—œ >%Ÿù‚ø‚= ¡%9 ¢¿¡>%¢= £%=¤#P ¦¤¤¤  ¥.£¦þ¥86-¬­7¨7 ©7 ª7«ø§;ˆµ;ˆ·F;³²´;ˆ¶A®¯¨Gù¸ø¸ ¼&¨»A§½¯H¼ =¾½ À+¾¿mÁÀ Â&¨»A§Ã¯H =Äà Å%Ä«ª ÆÁ÷ÇúÆÈÇøÈP-ÉÅþÉøÇ Ê&¨»A_˯HÊE=ÌËO ÍÌÌŽ Îͤ  Ϫ¸Ðϱ© Ñбª Ò΃ ÓÒ©ˆ ÔÓу ÕΩˆ ÖÕÑ  ×%ÔÖ  Ø(ÔÖQÙ× Ú(ÙQÛØ Ü%ÅÛP-ÝÚÜ>²Ýª ÞÁ ÷ßúÞàáøàAˆâ²G=ãâQä× å(ãäQæ× ç(åæAˆè²E=éèQêØ ë%éêQìØ í%ëìP-îçí>²îùßøáª ïÁG÷ðúïñòøñˆ óªÎˆ ôªÎ”õóô>µõˆ ö©Îˆ ÷ªÎ”øö÷>¶øˆ ù©Îˆ ú©Î”ûùúƒüû(>·üùðøòQýÎQþÎ ÿ%ýþQÎ…Iˆÿª ÁE©QÎQ©ƒQªQ ª…  Q ªQ ª…   �  …Qª…Qª…ƒ>µQ©Qª…Q©Qª…�……Qª…� >¶ Q!©Q"©…#!"Q$©Q%©…&$%�'#&…(ÿÿ…)…*)…+*ª ,ÁE©-,+(ƒ.'->·.ùðøðùßøß=/¶=0¶…1/0=2µ=3·…423ƒ514=6µ 76¸ 87°÷9ú8:;ø:=<¶ =<¸ >=°÷?ú>@Aø@AˆB²E=CB=D·º ED©FEFCAˆG²E>GFù?øA=H¶º IH÷JúIKLøKAˆM²E=NM=O·PO=Q¶…RIQˆSPR T%NSAˆU²E>UTùJøLAˆV²G=WV=X·YX=Z¶…[IZˆ\Y[ ](W\Aˆ^²G>^]ùJøJù?ø?ù9ø;¸ _5÷`ú_abøaAˆc²E=dc=eµº fe©gfFdAˆh²E>hgù`øb=i¶ji k5ƒljk=mµˆnlm=o¶po q5�rpq=sµˆtrs u%nt=v¶wv x5ƒywx=zµˆ{yz=|¶}| ~5�}~=€µˆ�€ ‚({�=ƒµº „ƒ÷…ú„†‡ø†Aˆˆ²G=‰ˆ Š(‰uAˆ‹²E=Œ‹ �%Œ‚P-ŽŠ�>²Žù…ø‡Aˆ�²G=��Aˆ‘²E=’‘ “%’u¸ ”�“÷•ú”–—ø–Aˆ˜²E=™˜ š%™uAˆ›²E>›šù•ø—Aˆœ²G=�œ ž(�‚AˆŸ²G>Ÿžù•ø•ù…ø…ù`ø`ù9ø9=- ²þ 86¥¦7¢7 £7 ¤ø¡;ˆª«;ˆ¬A®§¨Gù­ø­ ®&¢»Aº¯§H®=3°¯Q±°Q²±Q³°Q´³µ´A_¶§ =·¶O ¸··”¹£¸Qº°Q»ºƒ¼¹»…½µ¼ ¾½ ¿%¾(…À²¿>ªÀQÁ°QÂÁº ÃÂ÷ÄúÃÅÄøÅQưQÇÆ È+Ç¿mÉÈQʰO ËÊÊŽ ÌˤQÍÌQÎÌ Ï%ÍΪ ÐÉG÷ÑúÐÒÓøÒˆ Ô¤Ì ÕBÔƒÖÕ(…×ÕÖ… ØÌ̈ Ù¤Ø ÚBÙ Û(Ú°ˆÜ×Û>¬ÜùÑøÓª ÝÉ ÷ÞúÝßàøß  ᤃ âáÌ  ã(âd äBãQåâQæâQçâ è(æç é(åè ê%é�ëäê>¬ëùÞøàª ìÉF÷íúìîïøîO-𤤠ñBðƒòñÏQó¤ ôóQõ̃öôõP-÷òöQø÷Qù÷ ú(øù û%ú -ü(÷¨ ýBü�þûý>¬þùíøï…ÿϤ  (Ãÿˆ ( Q Ì  (à ˆ ( P-   - E O- ¤¤  B Q ¤Q ̃ P-  ”  Q Ì  Q ¤ƒ    (  >¬ ùíøíùÞøÞùÑøÑ= ª= ¬… © Q °Q  ˆ    + (Q °Q      …   >ª ùÄøÄ= ªþ 86% & 7 7! 7" 7# 7$ ø A®' ¨Gù+ ø+ , & »A_- ' H, F=. - Q/ . …0 / " ´ 1 0 ÷2 ú1 3 2 ø3 Q4 . ƒ5 $ # …6 4 5 7 / …8 7 ! 9 8 : %9 (…; 6 : þ; ø2 < ! ˆ= < " > += # $ º ? " ©@ ? > # º A " ©B A $ > C " …D / C ƒE B @ …F D E …G F ( H G I H ƒJ (I ˆK J G ˆL G ) ƒM * L …N G M ƒO ¤N …P G O ƒQ (P ¸ R G ³©S R Q K T / º U " ©V U @ B …W " V �X ! W Y (X …Z T Y [ Z \ %[ (Q] . ƒ^ $ # ƒ_ B @ ƒ` ^ _ ƒa B @ …b \ a …c b S �d ` c …e ] d þe 86j ;7g 7h 7i øf ;ˆk l ùm øm …n g h >k n =o k =p k …q o p >k q =r k =s k …t r s >k t =u k ƒv (u w (v >k w =x k =y k …z x y >k z ={ k | (g <} i ~ | } … { ~ þ 86 „ … 7� 7 ‚ 7 ƒ ø€ ;O‹ G;ˆŽ � ;Õ‰ Š ;ÕŒ � ;^  aAÛ† ‡GA®‡ ¨Gù� ø� A_‘ ‡ F=’ ‘ O “ ’ ’ A§” ‡ EE=• ” Ž – “ • >‰ – A§— ‡ EG=˜ — ™ &� »A6š ‡ H™ H=› š ùœ øœ ö� Ÿ ù¡ ø¡ =]¢   ª_£ `¢ › ¤ £ ÷¥ ú¤ � ¥ ø¥ Q¦ ¢ ª § ¦ G©¨ § EGP]© ¨ E‚]ª ¢ © >  ª ùž øž =« ‹ Q¬ ›  ­ &¬ '° ® « ­ ÷¯ ú® ¯ ° ø° ù� ø¯ ù± ø± Q³ › Q´ › =µ ‹ ° ¶ µ ©· ¶ ´ ³ =¸ ‹ ǹ ¸ „º ¹ '» · º Ǽ »  ½ &¼ ¾ ¾ &½ ¾Aæ¿ † ¾ =À ¿ QÁ À O  Á Á  à  >Œ à >Ž (QÄ À QÅ Ä « Æ Å G÷Ç úÆ È Ç øÈ QÉ À O Ê É É ƒ Ë Ê ‚ Ì BË Í (Ì P Î Í Í Í ˆ Ï Ë Î >Œ Ï Ð BË QÑ À QÒ Ñ QÓ À QÔ Ó 9Õ j Ð Ò Ô >Ž Õ QÖ À Q× Ö ª Ø × F÷Ù úØ Ú Ù øÚ = Û Œ  Ü Û QÝ À O Þ Ý Ý ”ß Ü Þ Qà À Qá à â (ß á ƒã (â Qä À Qå ä ƒæ (å ç (æ ˆè ã ç é (<è =ê Ž Që À Qì ë  í é ì ƒî (í …ï ê î >Ž ï ùÙ øÙ ùÇ øÇ …ð ˜ ˜ �ñ (ð …ò I˜ = ó Œ ”ô ƒ ó …õ ò ô ƒö ñ õ = ÷ ‰ Qø À O ù ø ø =ú Ž …û ˜ ˜ ƒü (û …ý ú ü …þ ˆ ö ÿ ö … þ ÿ ˆ ý  ½ FÇ ½  &  & »A§ ‡   =  …   Ž ù � ÷ >‰ ù² ø² ùŸ øŸ = ‹ € E>‹ ùœ ø� =  ‰ þ 86  7 7  7  7- ø ;-! " ;Õ d;ˆ  ;-# $ ;ˆ ;-  ;O G;-  ;^^ aAÛ ‡GA® ¨Gù% ø% & & »Aº'  H& =3( ' Q) ( P*  (‘+ ) * O , + + Q- ( P.  ‘/ - . O 0 / / A_1  =2 1 O 3 2 2 ”4  3 Q5 ( Q6 5 ƒ7 4 6 A_8  =9 8 O : 9 9 ”;  : Q< ( Q= < º > = Q?  Q@  �A ? @ …B A ¤> B QC ( QD C º E D ÷F úE G H øG I 7 ˆJ I ; QK  º L J K > L ùF øH > €ùF øF = M  ÷N úM O P øO Q 7 ˆR Q ; QS  ¸ T R S > T ùN øP > €ùN øN = U  ÷V úU W V øW X 7 ˆY X ; > Y ùV øV ùZ øZ ö[ ] ù_ ø_ =]` ^ ª_a `` › b a ÷c úb [ c øc Qd ` ª e d G©f e EGP]g f E‚]h ` g >^ h ù\ ø\ =i ©j > 4° k i j ÷l úk l m øm ù[ øl ùn øn =p Çq p ª r q G¨ s r ÷t ús u v øu ª w q >! w ùt øv >! Lùt øt = x ! ©y x {|ª z q G¨ { z ÷| ú{ } ~ ø} ª  q >#  ù| ø~ ># Lù| ø| = € # ©� € }~=‚  Qƒ  P-„ ‚ ƒ Q…  =†  P-‡ … † =ˆ ° ‰ ˆ 'P_‹ ‰ ‰ ©-Š ‹ ‡ „ =Œ ° � Œ P_� � � ©-Ž �  Š Q� Ž Q‘ Ž ƒ’ � ‘ …“ ’ ¤Q” Ž Q• Ž �– ” • …— – ¤˜ y ° ™ q F©š ™ ˜ y …› “ š �œ — › Ž �  œ � ž  � Ž Ÿ 0 œ �   , Ÿ 9¡ ¥ ž   =¢ ° £ ¢ ÷¤ ú£ ¥ ¦ ø¥ = §  Q¨ ( O © ¨ ¨ 9 ª „  ž  … « © ª Q¬ ( O ­ ¬ ¬ � ® « ­ …¯ � “ ° +¡ (…± ¯ ° Ž ² ® ± � ³ § ² > ³ ù¤ ø¦ =´  …µ � “ …¶ µ ¡ �· ´ ¶ > · ù¤ ø¤ ùo øo ù] ø] =¸ €¹ ¸ E> ¹ ùZ ø[ ¨ º > ÷» úº ¼ » ø¼ Q½  Q¾  9 ¿ %  7 ; ½ ¾ > ¿ ù» ø» = À  =Á  P À Á þ 86 É Ê 7 Ä 7 Å 7 Æ 7Ç 7È øà ;ˆå ;Oà á ;OÜ G;OÖ G;Ð Ï Ñ ;Oæ G;Oâ ã ;OÝ G;-× Ø ;Ó Ò Ô ;Õä d;ˆÞ ß ;Ú Ù Û ;OÕ G;^í a;^4 a;^X a;^u a;^½ a;^ aAÛË ‡GA®Ì ¨Gùç øç ® è È zùé øé öê ì ùî øî =]ï í ª_ð `ï › ñ ð ÷ò úñ ê ò øò Qó ï ª ô ó G©õ ô EGP]ö õ E‚]÷ ï ö >í ÷ ùë øë =ø Ö A7ù Ì GG=ú ù û &ú ©ü è û ° ý ø ü ÷þ úý þ ÿ øÿ ùê øþ ù ø = Ö Ç  „  'Â È  Ç  Í ¨  è ÷ ú ø ª  G>× ù ø >× €ù ø = × ÷ ú  ø ùê ø  & ‚  E= Ö © è    & »A€ Ì H G=  P Å (‘   O    P Æ ‘   O    9- ¬   Ç Q  Q  º    ÷ ú ! ø! =" Õ # &" AO$ Ï # >$  =% Õ & &% A³' Ò & >'  =( Õ €) ( E>Õ ) =* Õ ª + * ÷, ú+ - , ø- ùê ø, ù ø ù ø ùì øì =. Ö €/ . E>Ö / ùé øê ù0 ø0 ö1 3 ù5 ø5 =]6 4 ª_7 `6 › 8 7 ÷9 ú8 1 9 ø9 Q: 6 ª ; : G©< ; EGP]= < E‚]> 6 = >4 > ù2 ø2 =? Ü =@ Õ ° A ? @ ÷B úA B C øC ù1 øB ùD øD =F Ü =G Ü H &G AOI Ï H =J I =K Ü L &K A³M Ò L =-N M 9O  J Å Æ N P &F A}Q Ù P >Q O ùE øE ù3 ø3 =R Ü €S R E>Ü S ù0 ø1 ùT øT öU W ùY øY =]Z X ª_[ `Z › \ [ ÷] ú\ U ] ø] Q^ Z ª _ ^ G©` _ EGP]a ` E‚]b Z a >X b ùV øV =c Ý =d Õ ° e c d ÷f úe f g øg ùU øf ùh øh =j Ý k &j Aˆl Ù k =m l ¸ n m ÷o ún p o øp >Þ >à Gùq øq ör t ùv øv =]w u ª_x `w › y x ÷z úy r z øz Q{ w ª | { G©} | EGP]~ } E‚] w ~ >u  ùs øs =€ à =� Õ ° ‚ € � ÷ƒ ú‚ ƒ „ ø„ ùr øƒ ù… ø… =‡ à ˆ &‡ Aˆ‰ Ò ˆ E=Š ‰ =‹ Ý Œ &‹ Aˆ� Ò Œ E=Ž � � %Š Ž =� à ‘ &� Aˆ’ Ò ‘ G=“ ’ =” Ý • &” Aˆ– Ò • G=— – ˜ (“ — ƒ™ � ˜ š (™ =› à œ &› Aˆ� Ò œ E=ž � =Ÿ à   &Ÿ Aˆ¡ Ò   G=¢ ¡ ƒ£ ž ¢ ¤ (£ ˆ¥ š ¤ =¦ Þ =§ à ¨ &§ Aˆ© Ù ¨ =ª © « (ª …¬ « ¥ �­ ¦ ¬ >Þ ­ ù† ø† ùt øt =® à €¯ ® E>à ¯ ùq ør =° Ý ± &° Aˆ² Ù ± =³ ² ´ ³ =µ Þ ¶ (µ °ˆ· ´ ¶ ¸ %· (>â Gù¹ ø¹ öº ¼ ù¾ ø¾ =]¿ ½ ª_À `¿ › Á À ÷ úÁ º  ø Qà ¿ ª Ä Ã G©Å Ä EGP]Æ Å E‚]Ç ¿ Æ >½ Ç ù» ø» =È â =É Õ ° Ê È É ÷Ë úÊ Ë Ì øÌ ùº øË ùÍ øÍ =Ï â Ð &Ï AˆÑ Ù Ð =Ò Ñ º Ó Ò ÷Ô úÓ Õ Ô øÕ =Ö â × &Ö AˆØ Ò × E=Ù Ø =Ú Ý Û &Ú AˆÜ Ò Û E=Ý Ü Þ %Ù Ý =ß â à &ß Aˆá Ò à G=â á =ã Ý ä &ã Aˆå Ò ä G=æ å ç (â æ ƒè Þ ç é (è =ê â ë &ê Aˆì Ò ë E=í ì =î â ï &î Aˆð Ò ï G=ñ ð ƒò í ñ ó (ò ˆô é ó =õ â ö &õ A}÷ Ù ö =ø ÷ …ù ô ¸ ƒú (ù Žû ø ú ü &õ A}ý Ù ü >ý û ùÔ øÔ ùÎ øÎ ù¼ ø¼ =þ â €ÿ þ E>â ÿ ù¹ øº ùo øo ùi øi ùW øW = Ý € E>Ý  ùT øU ù ø ö  ù ø =]  ª_ ` › ÷ ú  ø Q  ª G© EGP]  E‚]   >  ù ø = æ = Õ °    ÷ ú   ø ù ø ù ø = æ  & Aˆ Ù  =  º   ÷ ú   ø =  ä = æ ! & A}" Ù ! =# " O $ # # � %  $ >ä % =& å =' æ ( &' Aˆ) Ù ( =* ) �+ & * >å + ù ø ù ø ù ø =, æ €- , E>æ - ù ø =. å / . 0 / Ž 1 Ä 0 = 2 ä ƒ3 (0 =4 å 5 (4 Î ˆ6 3 5 Ž 7 2 6 � 8 1 7 þ8 86 = > 7 : 7 ; 7< ø9 A"? �GAÛ@ ‡GA®A ¨GùB øB A§C ? GGF=D C A§E ? GEF=F E A§G ? GFF=H G P I D F H  J EI A_K ? =L K O M L L A€N ? G=O N PP ; (‘Q O P QR Q Ž S J R ƒ T ; S A§U ? =V U º W V ¤PY W W W © X Y T M ƒ Z ; X [ BZ ƒ \ ; X ] ([ P ^ ] ] ] ˆ _ \ ^ 9 ` É : X _ [ < º a [ Pc a a a © b c ` : þb 86 h 7 e 7 f 7 g ød A"i �GAÛj ‡GA®k ¨Gùl øl A§m i GGF=n m A§o i GEF=p o A§q i GFF=r q P s n p r  t Es A_u i =v u O w v v A€x i G=y x Pz f (‘{ y z Q| { Ž } t | ƒ ~ f } A§ i =€  º � € ¤Pƒ � � � © ‚ ƒ ~ w A7„ k GE=… „ 9 † É e ‚ g y… A§‡ k EF=ˆ ‡ P Š ˆ ˆ ˆ  ‰ .e † Š þ‰ 86� ‘ 7Œ 7 � 7 Ž 7 � ø‹ ;£ ¢ Ê;-� ž ;O™ G;£ ¤ ¥ ;-Ÿ   ;Oš G;ˆ¡ ;-› œ ;^Ò a;^v a;^‹ aA"’ �GAÛ“ ‡GA” • ŠG=– �=— �ù¦ ø¦ § &Œ ¾A7¨ “ § G=© ¨ ª &Œ ¾A_« “ ª E=¬ « O ­ ¬ ¬  ® &Œ ¾A7¯ “ ®  =° ¯ ± &° » ´ &± »A_µ • E´ G=¶ µ · &± »A7¸ • E· G=¹ ¸ º &± »A7» • Eº E=¼ » ½ )¼ EA€¾ ’ G=¿ ¾ PÀ � (‘Á ¿ À Q Á à  ª Ä © G÷Å úÄ Æ Å øÆ Ç &± »A§È • EÇ FE=É È º Ê Ã É ÷Ë úÊ Ì Ë øÌ þ(øË ‚Í ½ E>™ Í ùÎ øÎ öÏ Ñ ùÓ øÓ =]Ô Ò ª_Õ `Ô › Ö Õ ÷× úÖ Ï × ø× QØ Ô ª Ù Ø G©Ú Ù EGP]Û Ú E‚]Ü Ô Û >Ò Ü ùÐ øÐ =Ý š ° Þ Ý ½ ÷ß úÞ ß à øà ùÏ øß ùá øá =ã š ä &ã å &± »A§æ • Eå Eä =ç æ ¼ è à ç ÷é úè ê é øê =ë š >™ ë ùÏ øé ùâ øâ ùÑ øÑ =ì š €í ì E>š í ùÎ øÏ ùÅ øÅ =ï ™ ‚ð ½ E ñ &ï ð €ò ¹ ñ ó &ò » õ &ó »A_ö • Fõ F=÷ ö Qø ÷ Qù ÷  ú C� ­ …û ù ú �ü ø û Qý ¶ Qþ ¶  ÿ (þ (… ý ÿ … ü Ž  Ž  �  �  Q ¶ …  ü Ž  �  �    ª  © E÷ ú ø ƒ  ­   Q Q ¾   ÷ ú   ø Q Q ¾    >›  ù ø >› €ù ø =  › ÷ ú   ø Q ¾   ©  GE>™  ù ø Q Q ¾    ÷ ú ! " ø! Q# ¾ $ # ©% $ F >™ % ù ø" Q& ¾ ' & ©( ' H>™ ( ù ø ù ø ù ø =) ™ ‚* ½ E + &) * €, ¹ + - &, » . &- »A€/ • F. G=0 / P1  (‘2 0 1 Q3 2 ¼ 4 3 ÷5 ú4 6 5 ø6 þ(ø5 O 7 2 2 Q8 2 P 9 8 8 8 ˆ : 7 9 Q; : < ; º = < (¨ > = ÷? ú> @ A ø@ QB :  C B º D C (>� D ù? øA >� Lù? ø? = E � ¨ F E ÷G úF H I øH QJ : º K J (>Ÿ K ùG øI >Ÿ LùG øG = L Ÿ ÷M úL N M øN þ(øM O &- »A_P • FO E=Q P QR : …S R ¤�T S ¤QU : …V U ¤ƒW ¤V P-X T W O-Y Q Q O-Z Q Q …-[ X Z �-\ Y [ A§] • GG=^ ] O-_ Q Q …` ¤^ P-a ` ` �-b _ a O-c Q Q O-d Q Q �-e c d …f ¤^ P-g f f ƒ-h e g Qi ¶ ¼ j i ÷k új l m øl -n +\ b h Qo : 9p ûn o >¡ p ùk øm …q i ^ ùr ør ös u ùw øw =]x v ª_y `x › z y ÷{ úz s { ø{ Q| x ª } | G©~ } EGP] ~ E‚]€ x  >v € ùt øt =.� ¢ ³ ‚ � Ï÷ƒ ú‚ ƒ „ ø„ ùs øƒ ù… ø… >¤ Êù‡ ø‡ öˆ Š ùŒ øŒ =]� ‹ ª_Ž `� › � Ž ÷� ú� ˆ � ø� Q‘ � ª ’ ‘ G©“ ’ EGP]” “ E‚]• � ” >‹ • ù‰ ø‰ =.– ¤ ³ — – Ï÷˜ ú— ˜ ™ ø™ ùˆ ø˜ ùš øš =.œ ¤ o� œ =.ž ¢ oŸ ž P-  � Ÿ Ž-¡   q �-¢ \ ¡ -£ +¢ b h =¤ ¡ Q¥ : 9¦ û£ ¥ �§ ¤ ¦ >¡ § ù› ø› ùŠ øŠ =.¨ ¤ €.© ¨ Ï>¤ © ù‡ øˆ ù† ø† ùu øu =.ª ¢ €.« ª Ï>¢ « ùr øs =¬ ¡ ˆ­ ¬ ˜ >¡ ­ ùk øk ª ® © G÷¯ ú® ° ¯ ø° ± &± »A_² • E± F=³ ² =´ ¡ Qµ ³ Q¶ ³  · 1µ ¶ à ¸ .´ (· >¡ ¸ ù¯ ø¯ =¹ ¡ Qº ¶  » .(¹ º þ» 86 ¾ 7 ½ ø¼ A$¿ „GùÀ øÀ A§ ¿ HGG=à  A_Ä ¿ HG=Å Ä O Æ Å Å ”Ç Æ ½ �È Ã Ç A§É ¿ HEG=Ê É A_Ë ¿ HE=Ì Ë O Í Ì Ì ”Î Í ½ �Ï Ê Î A§Ð ¿ HFG=Ñ Ð A_Ò ¿ HF=Ó Ò O Ô Ó Ó ”Õ Ô ½ �Ö Ñ Õ P × È Ï Ö  Ø (× dþØ 86Ý Þ 7 Ú 7 Û 7 Ü øÙ A$ß „Gùà øà ÷á úÛ â á øâ Pã Ü (þã øá A7ä ß G=å ä Çæ å '« ç æ G© è Lç €÷é úè ê é øê 9 ë ¾ Ú Pì ë (þì øé þ¢86 ï 7 î øí ;-ù ú ;ˆó ô ;ˆ÷ ø ;ˆñ ò ;ˆõ ö ùû øû  ü î Qý ü Qþ ü ¾ ÿ ý þ ÷úÿ øQü Qü ¾ >ù ùø>ù €ùø= ù ÷ú øQ ü >ó Q î ¾  ÷ ú ø>ñ Qî >õ Qî >÷ ù ø>ñ (Qî >õ Qî >÷ ù ø ùø Qü Qü ¾ ÷úøQü >ó Qî ¾ ÷ ú!"ø!>ñ IQ#î >õ #Q$î >÷ $ù ø">ñ ¢Q%î >õ %Q&î '&>÷ 'ù ø ùøQ(ü >ó (Q)î ¾ *)÷+ú*,-ø,>ñ ð Q.î >õ .Q/î 0/>÷ 0ù+ø->ñ RQ1î 21>õ 2Q3î 43>÷ 4ù+ø+ùøùø=5ñ =6õ =7ó ˆ867�98(…:9¤=;÷ =<ó ˆ=;<�>=(…?>¤P @5:?þ@86 EF7B7 C7DøAAGHžG=#I¡=J¢ùMøMA7NHGF=ONÂPOD Q)PEpRQˆS¤RQTCƒU(S V+TSUQWCƒX(S Y+WSXQZC�[ZVˆ\[Kp]B�^]Yˆ_^LP-`\_paDVìbIJXcb`aO dccþd86 ij7f7 g7høe;-noAGkžG=#l¡=m¢ùpøpA7qkGE=rq s)rE‚tsEput v+hu w+v¿mxwpyxƒzvy9 {ï g9 |Ef{x¼ }z¨ ~}÷ú~€�ø€€‚xE® ƒ‚s>nƒùø�>nLùø= „n÷…ú„†…ø†þ|ø…ƒ‡(zŽ ˆ|‡€‰xE9 ŠEf{‰Ž ‹Šz� Œˆ‹þŒ86�‘7%Ž7 �ø�ù’ø’Q“ŽP”�(‘•“”O –••Q—ŽO ˜——Q™˜Qš– ›šƒœ™›Q�˜Qž– Ÿžƒ �ŸQ¡˜Q¢– £¢ƒ¤¡£ ¥% ¤ ¦%œ¥¸ §¦÷¨ú§©¨ø©þø¨QªŽQ«ªº ¬«¨ ­¬÷®ú­¯®ø¯þ(ø®Q°ŽQ±°ˆ²¦± ³%²(þ³86¸;7µ7¶7·ø´ùºøºº »¶÷¼ú»½¼ø½ƒ¾·µˆ¿¾¶þ¿ø¼¸ À¶÷ÁúÀÂÁøÂ÷ƒÄõˆÅĶþÅøÁþ¹86 ÊË7%Ç7 È7 ÉøÆùÌøÌQÍÇPÎÉ‘ÏÍÎO ÐÏÏQÑÇQÒÑÇÓÒEª ÔÓG÷ÕúÔÖÕøÖþÐøÕQ×ÇPØÈ(‘ÙרO ÚÙÙQÛÇO ÜÛÛQÝÚQÞÐQßÜ9à¸ÝÞßQáÚQâÐQãÜ9ä¸áâãQåÚQæÐQçÜ9è¸åæç é%äè ê%àé ë(êŽ ìÐë� íÚìQîÇO ïîîƒ ðíïþð86ö÷7 ò7 ó7ô7õøñ;ÿ;ˆü;ÿþ;Õûd;OýG;^aAGøžG=#ù¡=ú¢ùøA7øGG= &'A7øGE=  )E‚  Ep  … ô ù ø öùø=]ª_`› ÷úøQª G©EGP]E‚]>ùø=ý° ÷úøùøù ø =#ý %&#JA$&øE%=%'&Q('Q)(Â*õ)Ç+*Eª ,+G÷-ú,.-ø.ùø->þ'=%/þ90�/ò¼ 10÷2ú132ø3ùø2= 4ûQ5'Q65>'=%79 8Ê7òó9 9i68 Q:'Q;:Ž <9;Ž =<0� >4=>û>=?ü�@?0>ü@ù!ø!ùø=Aý€BAE>ýBù ø=Cüº DC(÷EúDFEøF= Gû=HüP IHHHˆ JGI>ûJ>ü(ùEøE= Kû=LüPMKLþM86RS7 O7 P7QøN;Õ\];ˆX;-Z[;ÕWd;ÿ^_;OYG;^laAGTžG=#U¡=V¢ù`ø`A7aTGG=ba c&b'A7dTGE=ed f)eE‚gfEùhøhöikùmøm=]nlª_o`n› po÷qúpiqøqQrnª srG©tsEGP]utE‚]vnu>lvùjøj=wY° xwc÷yúxyzøzùiøyù{ø{=}Y ~&}JA$TE~=%€Q�€Q‚�ƒQ‚Ç„ƒEª …„G¨ †…÷‡ú†ˆ‰øˆQŠ€Q‹Šª Œ‹G>ZŒù‡ø‰>ZLù‡ø‡= �Z÷Žú��Žø�ùkøŽ>^€=%�^9‘��O¼ ’‘÷“ú’”“ø”ùkø“Q•€O –••>\–Q—€Q˜—ª ™˜E÷šú™›šø›Qœ€Q�œQž€PŸP‘ žŸO ¡  9 ¢ï ¡9 £E�¢g>\£ùšøš= ¤W= ¥\Ž ¦¥‘� §¤¦>W§=¨X�©¨‘>X©ù|ø|ùkøk=ªY€«ªE>Y«ùhøi=¬Xº ­¬(÷®ú­¯®ø¯= °W=±XP ²±±±ˆ ³°²>W³>X(ù®ø®= ´W=µXP¶´µþ¶86º»7¸7¹ø·A¼½«Gù¿ø¿ Á&¸¾„ÂÁ €Ã¹ Å&ÃÄA_ƽGÅ=ÇÆþÇ86>ÊË7=ÉøÈ;ÎÍÏA¼Ì«GùÐøÐQÑÉQÒÉQÓÒQÔÑ9ÕºÔGŽÖÕÓQ×ÒQØÑ9ÙºØGŽÚÙ×�ÛÖÚQÜÒQÝÑ9ÞºÝGŽßÞÜ�àÛßQáÒQâÑ9ãºâGŽäãá�åàäA}æÍG>æåQçÒQèÑ9éºèEŽêéçQëÒQìÑ9íºìEŽîíë�ïêîQðÒQñÑ9òºñEŽóòð�ôïóQõÒQöÑ9÷ºöEŽø÷õ�ùôøA}úÍE>úùQûÒQüÑ9ýºüFŽþýûQÿÒQÑ9ºFŽÿ�þQÒQÑ9ºFŽ�Q ÒQ Ñ9 º FŽ   �  A}ÍF> =>Íþ867Cøùø=-÷PA} >ý867@øùøQ O->÷ý86 !øù"ø"ý86$!ø#;})*;-+,A"%�GA&'òGù-ø-A¶.ÂG=/.O 0// 1B0=2Ê‘32(>)3=4)O 544= 6¯O-766Ž-871P 98� :59P;:(>);A€<%E==<=>)‘?=>A§A'IG=BAº CB÷DúCEFøEQG?º HG<>+HùDøF>+€ùDøD= I+÷JúIKJøKA@L'I=-MLŽ-NM¤O-O??QP?P-QPPˆ-ROQ…-SRN -TSˆ-UTN=VÉQW?Ž-XUWQY?QZ?P[XYZ‘\V[O ]\\Q^\P _^^^ˆ `]_Pa`(>)aùJøJ=b)O cbb>¯c>²§A§d'G=edA§f'E=gf…heg i(h(A×j¼ =kj l+k(ƒm(l…nmi onƒpi( q%opA§r'G=srŒtqsA§u'G=vuˆwqv xwP-ytx=-z¸�-{yzA§|'G=}|A§~'E=~P-€}ˆ-�{€>÷�ý86ƒ!ø‚A&„òG=#…õ=†öù‡ø‡=-ˆ÷V쉅†WЉˆO ‹ŠŠAŒ�„= Ž�… �‹Ž=�¼O ‘��… ’�‘>Ù’Q“Š>Ú“A§”„H=•”>Û•ý861˜™7—ø–ùšøšQ›—O œ››Q�—O ž��QŸ—O  ŸŸP1¡œž þ¡86¤¥7£ø¢ù¦ø¦91§˜£T1¨§Q©£O ª©©‘ «¨ª ¬«Q ­¨P®­Q ¯¨P°¯Q ±¨P²±P³¬(P´®°²³þ´86¶·øµA"¸�Gù¹ø¹A_º¸H=»ºA_¼¸I=½¼A_¾¸J=¿¾A_À¸'=ÁÀP»½¿ÁþÂ86-ÅÆ7-ÄøÃùÇøÇQÈÄQÉăÊ(ÉP-ËÈÊþË86 ÍÎøÌ;-ÏÐ;-ÑÒùÓøÓ÷ÔúLÕÖøÕ>Ï€ùÔøÖ>Ï€ùÔøÔ= ×Ϩ Ø×÷ÙúØÚÛøÚ>Ñ€ùÙøÛ>ÑLùÙøÙ= ÜÑþÜ86 ßà7ÞøÝA$á„GùâøâA7ãáG=äãÇåäF« æåGÇçÞt« èçG¥ éæèþé86íî7ë71ìøêA"ï�Gùðøð>Âë>ÅìA€ñïG=òñ9ó¤ò>Èó9ô¶>ÉôA€õïG=öõ’÷öë>Ê÷A€øïG=ùø91ú˜ù’1ûúì>ËûQüëO ýüü>ÌýA€þïG=ÿþQëO P(‘ÿO >ÍA¶ÈF=O >Îý867 7 7 7- 7- 77ø;-ùø>¯ >² O   >³O     D Q Ž >´9-Å >¸9-Å >»>¼|.>Á>µ£÷ú€ø>€ùø>€ùø= ÷!ú "#ø"=$Â= %¯P&%(‘'$&O (''>¯(=1)Å= *²‘ +)*>²+=1,Å= -³‘ .,->³.=1/Å= 0´‘ 1/0>´1ýø#ýø!ý86@89737 47 57677ø2;C;<A":�Gù=ø=A€>:F=?>‘@?3A}A;G>A@÷Bú€CBøC=DµA}E;G>EDùBøBO F33AÕG;E>GF  HE4AÕI;F>IH=-J¸A³K; >KJAOL;>L7  ME5PNM6A}O;H>ON=P¼A}Q;I>QP=-R»A³S;J>SR=.T½ .U*TÇ|VUAOW;'>WV9X;=@Y;þY86 [ÎøZ;-\]ù^ø^÷_ú€`aø`>\€ù_øa>\Lù_ø_= b\þb86deøcùføf÷gúLhgøh=iÈ= j¯Pkj(‘likþløg= m¯Pnm(þn86 q 7 pøoùrør÷súLtsøt=uÈ91v˜u‘ wvpþwøsþp86{|7y7 zøxA$}„Gù~ø~A7}G=€Ç�€F« ‚�G¥ ƒ‚z©„ƒF(……y„þ…86‰Š7@‡7 ˆø†;Õ’“;Õ”•A"‹�GA$Œ„GA&�òG=#Žõ=�öù–ø–Q—‡9 ˜ß—¥ ™ˆ˜>ñ™>Ñ™Qš‡>КQ›‡O-œ››A_�‹=ž�O-Ÿžž…- œŸ>æ A€¡ŒG=¢¡A€£ŒE=¤£91¥˜¤9¦í¢¥A€§‹G=¨§91©˜¨Q ª‡  «Eª ¬«Q ­‡  ®E­P°™™™© ¯°®¬>ï¯>ð¯Q ±‡>î±Q²‡O ³²²>’³= ´’= µ’”¶¯µŽ ·¯¶ƒ ¸´·  ¹E¸>’¹= º’  »D¯ºQ¼‡Q½¼Ž ¾»½A€¿‹G=À¿Q Á‡PÂÁ(‘ÃÀÂO ÄÃÃ>¯Ä= ů>ÏÅ= Ư‘ Ç©¯  ÈEÇ>²È= ɲ= Ê’‘ Ë©Ê  ÌEË>³Ì‘ Í©¾  ÎEÍ>´Î= ϯ ÐÏ  ÑEÐA§Ò‹ =ÓÒº ÔÓ¤PÖÔÔÔ© ÕÖ§Ñ>ÔÕQ-ׇ>¸×Q-؇>»ØQÙ‡>¼Ù>Õ�>Ö(>ÙH>Ú(>Û(>Ü(>Ý>Þ¤>ß(>à>á>âd>ã(>ä>åd9Ú‡9ÛƒT1Ü©= ݲ¶ÞÝÉš ßÞ÷àúßáàøá= ⲑ ãÜâ  äEã>ðäùàøà= åÕ¶æå�š çæ÷èúçéèøé= êÕ>”ê= ë”O-ìëëŽ-íìIƒ-îí‘P ïî>”ï= ð”O-ñðð= ò”O-óòò”ôñóƒõ(ô ö(õ ÷öAˆø”F>ø÷= ù²= ú³Aˆû”G=üûŽ ýúü= þ´Aˆÿ”E=ÿŽ þ� ý= ²Aˆ”F=Ž � =ÖP   .ù   E >² = ²‘ Ü   E >ðùèøè= ϶Æš ÷úø=È= ÏP(‘O >îýøýøý86 à7ø;-;- ù!ø!Ç"F« #"G÷$ú#%$ø%þLø$÷&ú€'(ø'= )ñ>)ù&ø(>€ù&ø&= *÷+ú*,+ø,þLø+÷-úL./ø.=0Ú=1Û¸ 201>2ù-ø/>€ù-ø-= 3þ386 6 7 5ø4A"7�Gù8ø8A§97GGF=:9A§;7GEF=<;A§=7GFF=>=P ?:<>A_@7 =A@O BAAƒ CB5  DEC  EE?A§F7 =GFº HG¤PJHHH© IJEDþI86Mµ7LøKùNøNƒO(L P+O(…QPP…RQQ…SRPþS86YZ7U7V7W7XøTù\ø\ ](U÷^ú€_^ø_�`UX�a(X�b(X…cabˆd`c e(d…fe[þfø^÷gú€hgøhiX j(X³ k1ijU…lk[þløg÷mú€nmøn…oIW…poW…qpXƒrq¤9sMV…trs�u(t9vM]…wrv�x(w…y[u…zyx…{z]þ{øm…|][þ|86 ‡ˆ7 ~7 7 €7 �7 ‚7 ƒ7„7…7†ø};Õ‰Š;ˆ‹Œ;-�Žù�ø�”�~€ ‘%�(”’~ “(’<� ”€  •E””–€• —+–(9˜Y‘“—…Ž ™‚˜… š™�>‰šº ›…÷œú›�œø�÷žú€Ÿ øŸ  ¡G€~ ¢¡  £E¢”¤£ƒ¥(…>‹¥=¦‹=§‹…¨¦§>‹¨= ©‰… ª‚�=«‹…¬…¤ƒ­«¬=®‹…¯…¤�°®¯ ±1­°¤=²‹…³±²…´³†Ž µª´� ¶©µ>‰¶ùžø ÷·ú€¸¹ø¸º º‘>�ºù·ø¹>�€ù·ø·= »�÷¼ú»½¼ø½”¾~• ¿(¾”À• Á(À9 ÂPƒÁ= É9Ä,¿„9Å:‘“„…ÆÄÅŽ ÇÂÆ…Ȇ‘Ž ÉÇÈ… ÊÉ�� ËÃÊ>‰Ëù¼ø¼ùžøžùœøœ= ̉þÌ86ÐÑ7Î7 ÏøÍ;ˆÓÔAÛÒ‡GùÕøÕ Ö&ξAæ×ÒÖ=Ø×QÙØQÚÙª ÛÚG÷ÜúÛÝÜøÝQÞØO ßÞÞ àßPáà(þáøÜQâØO ãâ⃠äãÏ åBä æ(åP çæææˆ èäçQéØQêéQëØQìë9íj åêì>ÓíQîØQïîª ðïF÷ñúðòñøòQóØQôó õèQöØO ÷öö”øõ÷ ù(øôƒú(ùƒû(ô ü(ûˆýúü þ(<ý=ÿÓQØQ þƒ(…ÿ>Óùñøñ=ÓPèþ86  77 ø;-A" �GAÛ ‡GA” ŠG=�=�ùø÷ú€ø &¾A7 E=« E>ùø>Lùø= ÷úøþ(ø= î= ï9 �  þ 86 ()7 "7 #7 $7 %7&7'ø!;Õ:;;Õ45;Õ89;Õ23;Õ<=;Õ67A$*„GAÛ+‡GA;,‘G="-”=.˜AG/žG=#0¡=1¢ù>ø>= ?î”@"# A(@<ƒB(&P CBBB  D(C%ƒ ED%ƒF(A GFRŽ HEG� I%H9JÝ "€dA7K,GG=LKÇML'« NMG÷OúNPQøPA§R,'G=SRA§T,I =UT…VSUA_W,J=XWO YXX>4YA7Z,GG=[ZÇ\[« ]\G÷^ú]_^ø_A_`,J=a`O baa9 c:"9 dcŽ edVA§f,J =gfP iggg  h.bei>4hù^ø^QjJº kj÷lúkmlømO nJJ>4nùlølA_o,J=poO qpp>6qA7r,GG=srÇtsK« utG÷vúuwxøw y#  zGy"9 {:z9 |ƒ{&Ž }|V>6}ùvøxA7~,GG=~Ç€« �€G÷‚ú�ƒ‚øƒ>6dù‚ø‚ùvøv9-„•&AA7…/GG=†…¬ ‡†G÷ˆú‡‰Šø‰ ‹#  ŒG‹"A7�*F=Ž�9�ö?Œ&Ž= �6Q‘�ƒ’(‘Ž “�’O ”��� •“”= –4>8–Q—J¼ ˜—÷™ú˜š™øšA7›*F=œ›9�R?"œ= ž4QŸ�ƒ (ŸŽ ¡ž O ¢��� £¡¢>8£ù™ø™= ¤8… ¥$¤Q¦„Ž §%¦Q¨„Q©%…ªƒ© «+ª'(…¬¨«P ­¬¬¬� ®§­… ¯•®� °¥¯>2°ùˆøŠ= ±4… ²$±= ³6Q´„Ž µ%´Q¶„Q·%…¸ƒ· ¹+¸'(…º¶¹P »ººº� ¼µ»… ½³¼� ¾²½>2¾ùˆøˆùOøQA7¿+GE=À¿ÇÁÀF« ÂÁG÷ÃúÂÄÅøÄA_Æ+ =ÇÆO ÈÇÇA_É+=ÊÉO ËÊÊA_Ì+H=ÍÌO ÎÍÍ� ÏËÎŽ ÐϤA_Ñ+I=ÒÑO ÓÒÒA_Ô+J=ÕÔO ÖÕÕ� ×ÓÖŽ Ø×¤”Ù"È…ÚÙ¤�ÛÚ¤ Ü+Û(P ÞÜÜÜ  Ý.ØÐÞ ß#  àGß"9 áàP ã&&&  â.áÐãA7ä/GG=åä¬ æåG÷çúæèéøè ê#  ëGê"A7ì*F=íì9îö?ë&íA§ï+E =ðïŽ ñâðQòîƒó(òŽ ôñóO õîî� öôõO ÷JJ>:÷QøJ¼ ùø÷úúùûúøûA7ü*F=ýü9þR?"ýA§ÿ+E =ÿŽ ÝQþƒ(Ž O þþ� >:ùúøú= :… $… öI�  >2 ùçøéQ Jº  ÷ ú øO JJ… $… âIA§+E =Ž � >2ù ø… $Ý… âI� A§+E =Ž >2ù ø ùçøçùÃøÅA7/GG=¬ G÷ ú!"ø! ##  $G#"A7%*F=&%9'ö?$&&A_(+E=)(O *))Q+'ƒ,(+Ž -*,O .''� /-.O 0JJ><0Q1J¼ 21÷3ú243ø4A75*F=6597R?"6A_8+E=98O :99Q;7ƒ<(;Ž =:<O >77� ?=>><?ù3ø3= @<… A$@… B/I� CAB>2Cù ø"QDJº ED÷FúEGHøGO IJJ… J$IA_K+E=LKO MLL… NMI� OJN>2OùFøHA_P+E=QPO RQQ� S$I… TRS>2TùFøFù ø ùÃøÃùOøO= U2þU86 YÀ7 W7 XøV;ÕabA"Z�GA$[„GAÛ\‡GA;]‘G="^”=_˜A®`¨Gùcøc>aW÷dú€edøe= faþfødA7g]GG=hgÇiht« jiG÷kújlkøl= ma= nî oX9 pmno>apùkøkA7q[I =rq« srG÷túsutøu= va= wîA7x[I =yx9 z= vwy>azùtøt= {aþ{86 ~7}ø|;-�ž;-—˜;L“”;ÕŸd;Õ™š;Õ•d;- ¡;-›œ;O–G;^æa;L´A"€�GA$�„GAÛ‚‡GA” ƒŠG=„�=…�A;†‘G="‡”=ˆ˜=#‰šAGŠžG=#‹¡=Œ¢A �£G=$ަ=�§A®�¨Gù¢ø¢= £ï= ¤Ù=¥Ý ¦+¥(=§ß ¨+§J(=©ã= ªð= «åP ,¬¤¦¨©ª«>“¬A7­�IF=®­¬ ¯®G÷°ú¯±°ø±= ²î=,³“>´³=,µ´9,¶?²£µ>“¶AÕ·“G= ¸·>Ù¸Aˆ¹“E=º¹>ݺAˆ»“F=¼»>ß¼A€½€G=¾½91¿˜¾AÕÀ“= ÁÀ‘ ¿Á  ÃEÂ>²Ãù°ø°AˆÄ“E=ÅÄAˆÆ“F=ÇÆ…ÈÇÇ…ÉÈÇ…ÊÉÇAÕË“G= Ì˃Í(ÅŽ ÎÌÍ=ÏޅБÏ=ÑÞ…ÒÐÑP ÓÒÒÒP ÕÅÅÅ  Ô.ÓÌÕAÕÖ“= ×Ö= Øî9 Ù6ØA€Ú€G=ÛÚ91ܘÛAˆÝ“ =ÞÝ=ßä à.(Þß>ìd>íd9á²ùâøâöãåùçøç=]èæª_é`è› êé÷ëúêãëøëQìèª íìG©îíEGP]ïîE‚]ðèï>æðùäøä=ñ–° òñá÷óúòóôøôùãøóùõøõ=÷–9ø»÷ ù&ø¾Aæú‚ù=ûú= üî9ýÐøüO þýýQÿý÷ú€øQûQª G¨ ÷úøº ÿ>— ùø>—Lùø= —÷ ú   ø ‘ Üþ  E >èQûO >é9 øþ…ÿ>ëQûQª G>êQûQ>ç9 ù ø ùåø=ຠ÷úø”×Ù (<ƒ(  (<ƒ!(Ç…"!’ #(" $ #= %•Q&ûO '&&… (Î'=)à…*$)Ž +(*=,áP .,,,  -.HÌ.… /+-� 0%/>•0ùøº 1ÿ÷2ú132ø3Q4ûO 544Ž 65ÿ>™6Q7ûQ87ª 98E÷:ú9;<ø;>›€ù:ø<>›€ù:ø:= =›÷>ú=?>ø?Q@ûO A@@= Bî9C� øB£þ…DÿCŽ EAD>™Eù>ø>÷FúLGHøG>�€ùFøH>�€ùFøF= I�÷JúIKLøK= M•= N™QOûQPO9 Qb×ÙþNÎÔÊP� RMQ>•RùJøL= S•= T™QUûQVU9 W‡×ÙþTÎÔÊÇV� XSW>•XùJøJ= YâºZYdš [Z÷\ú[]\ø]”^×þ _%^( `(_= a•= b™… cÎb= dâ… ecd…f`[ƒg[fŽ heg� iah>•iù\ø\ù2ø2ùöøöùåøå=j–€kjE>–kùâøã÷lú€mnøm= oì… poÌŽ qpàƒr(ÅŽ sqr= tíŽ utà� vsu>•vùløn=wäº xw÷yúxzyøz= {•Ž |{à>•|ùyøyùløl÷}úL~}ø~9 (×ÙÎÔÇÅ>Ÿù}ø}A7€‚GE=�€Ç‚�« ƒ‚G÷„úƒ…†ø…9 ‡Í¨ ˆ‡> ˆù„ø†> €ù„ø„= ‰ ÷Šú‰‹Œø‹O-�}} -Ž� -‘+Ž��n2’‘j.“‰‚.”“Ï .•&Ç”g2–‰•‚2˜–— 2™&’˜_š‰™•Q›š= œ•Aˆ�“ =ž� Ÿ%›žA§ ‚FF=¡ A§¢‚F =£¢…¤¡£ ¥.(Ÿ¤Ž ¦œ¥>•¦= §•= ¨ŸAˆ©“ =ª© «%ª›Ž ¬¨«� ­§¬>•­ùŠøŒ= ®•= ¯ŸAˆ°“ =±°Ž ²¯±� ³®²>•³ùŠøŠ= ´•AÕµ“H= ¶µ� ·´¶>•·= ¸•9 ¹Y¸Ù9 º_¹þº86½¾7 ¼ø»;ÕÁÂA"¿�GAÛÀ‡GùÃøÃ>Á¼÷Äú€ÅÄøÅ= ÆÁ=ÇÜŽ ÈÆÇ>ÁÈùÄøÄ= ÉÁ=ÊÚ9 ËÍ©ÌËÊ(PÍÉÌA7ÎÀGE=ÏÎÇÐÏ'« ÑÐG÷ÒúÑÓÒøÓO ÔÍÍ  Õ(ÔdQÖÍ ×+Ö(PØÕ×þØøÒ Ù+Í¢£A7Ú¿ F=ÛÚÇÜÛF« ÝÜG÷ÞúÝßÞøßO àÙÙ9 á‘àQâÙPãáâþãøÞþÙ86 åÍøä=#æ–=ç˜=è™=$é›=ê�=#ë®ùíøíVìîæèXïîìO ðïïoñÇP òìñV6óéêXôóòO õôô� öðõVì÷ëçXø÷ìO ùøø� úöùþú86#!øû= ÿý= =-== =  P /üÿ  =-=A"$�GA$%„GA&&òGù'ø'A€(%G=)(A€*%E=+*91,˜+9-í),>½Ç>À¢Q .üQ /üQ0üQ-1ü9 2./01£93$Q4üQ5496{5€9 7[÷8ú798ø99:d= ;²9 <q;= =³9 >q=Q?ü9 @@8:<>6?QA@>AABCE=DCED>CEQ F@>FQ G@>GQ-H@>HQI@>IQJ@>JQK@>KQ-L@>LQM@>MQN@ >NQO@ > OQP@ >!PQQ@ >"Qýø8A€R%G=SR= T¯PUT(‘VSUA€W%E=XW= Y²PZY‘[XZO \[[A€]%G=^]= _³P`_‘a^`O baaQcü9 @d8V\b6cQed>eABfE=gfhg>fhQ id>iQ jd>jQ-kd>kQld>lQmd>mQnd>nQ-od>oQpd>pQqd >qQrd > rQsd >!sQtd >"tý86¢!øu= xw= zy=-|{=~}=€=‚�P /vxz|~€‚=…„=‡†=‰ˆ=‹ŠP0ƒ…‡‰‹=-�Œ=��=’‘P?Ž�’=”“A"£�GA$¤„GA&¥òGù¦ø¦Q§ƒQ¨§Q©ƒQª©Q«ƒQ¬«P ­¨ª¬Q®ƒQ¯®Q°ƒQ±°Q²ƒQ³²P ´¯±³QµƒQ¶µQ·ƒQ¸·Q¹ƒQº¹P »¶¸º  ¼D´»”½­¼¸ ¾½  ¿D´»  ÀD»­  ÁD­´P1¿ÀÁ©Ã¾F(�1ÄÂÃPÅ­PÆ´PÇ»QȃQÉÈQʃQËÊQ̃QÍÌPÎÉËÍ(PÏÅÆÇÎA€Ð¤G=ÑÐ’ÒÑÏA€Ó¤E=ÔÓ91Õ˜Ô’1ÖÕÄ9×íÒÖQØŽ Ù+Øúûn.ÚÙ>½ÚQÛŽ>ÀÛQ ÜvQ ÝvQÞvQ-ßvQàƒ9 áÜÝÞß�à”9â$Qãv©ä¾tGÅåãäQævQçæ9è{ç¾9 é[÷êúéëêøë9ìd= í²9 îqí= ï³9 ðqï9 @ñ8ìîðèåQòñ>•òABó•E=ôóõô>óõQ öñ>–öQ ÷ñ>—÷Q-øñ>˜øQùñ>™ùQúñ>šúQûñ>›ûQ-üñ>œüQýñ>�ýQþñ >žþQÿñ >ŸÿQñ > Qñ >¡ýøê= ¯P(Qƒ”Qƒ”Qƒ” P  A€ ¤G=  P  (‘  A€¤E== ²‘ ÄP‘O A€¤G=P1­´»= ³‘ P‘O 9 @8èåQ>•AB •E=! "!> "Q #>–#Q $>—$Q-%>˜%Q&>™&Q'>š'Q(>›(Q-)>œ)Q*>�*Q+ >ž+Q, >Ÿ,Q- > -Q. >¡.ý86T!ø/= 21= 43=-65=87=:9=<;P /02468:<=@>=BAP==@B=-DC=FEA"U�GA$V„GA¼W«GA&XòGùYøY9>ZÊ=Q [0P\[(Q]Z”^]\Q_Z”`_\QaZ”ba\P c^`bQdZQedQfZQgfQhZQihP jegiQkZQlkQmZQnmQoZQpoP qlnpQrZQsrQtZQutQvZQwvP xsuw  yDqx”zjy¸ {z  |Dqx  }Dxj  ~DjqP1|}~Q €0‘ �€©‚{F(Ž ƒ�‚  „EƒP1…jqxQ†0O ‡††‘ ˆ…‡  ‰EˆA€ŠVG=‹ŠA€ŒVE=�Œ91Ž˜�9�틎>½Ç>À¢Q�0Q‘�P’‰‘Q-“09 ”c„’“D£F9•$Q–0©—{tGŘ–—Q™0Qš™9›{š{9 œ[÷�úœž�øž9Ÿd=  ²9 ¡q = ¢³9 £q¢9 @¤8Ÿ¡£›˜Q¥¤>G¥AB¦GE=§¦¨§>¦¨Q ©¤>H©Q ª¤>IªQ-«¤>J«Q¬¤>K¬Q­¤>L­Q®¤>M®Q-¯¤>N¯Q°¤>O°Q±¤ >P±Q²¤ >Q²Q³¤ >R³Q´¤ >S´ýø�A€µVG=¶µ= ·¯P¸·(‘¹¶¸A€ºVE=»º= ¼²P½¼‘¾»½O ¿¾¾A€ÀVG=ÁÀ= ³PÑÄÁÃO ÅÄÄ9 @Æ8¹¿Å›˜QÇÆ>GÇABÈGE=ÉÈÊÉ>ÈÊQ ËÆ>HËQ ÌÆ>IÌQ-ÍÆ>JÍQÎÆ>KÎQÏÆ>LÏQÐÆ>MÐQ-ÑÆ>NÑQÒÆ>OÒQÓÆ >PÓQÔÆ >QÔQÕÆ >RÕQÖÆ >SÖý86÷!ø×;Õ=ÚÙ= ÜÛ= ÞÝ=-àß=âá=äã=æå=-èç=êé=ìë=îí=ðï=òñP@ØÚÜÞàâäæèêìîðò= õóA"ø�GA$ù„GAÛú‡GA” ûŠG=ü�=ý�A;þ‘G="ÿ”=#–=˜=™=#š=$›=�AGžG=#¡=¢A  £G=$ ¦= §A® ¨G=# ®A&òG=#õ=öùø9‰ØõQØ9 ÷úøüøQ ØQØO-9Ò¼ ÷úøüø÷ úL!"ø!= #Ù= $î9 %6$9 &Y#%9 '_&>'ù ø"Q(Ø9 )~(>)ù ø A7*úG =+*ª ,+P÷-ú,.-ø.= /9 0å� 1/0>1ù-ø-A72ø G=32ª 43'÷5ú465ø6= 79 8&79 98>9ù5ø5= :9;½:>ö;ý86Z!ø<;-ab;-cd=?>= A@= CB=-ED=GF=IH=KJ=-ML=ON=QP=SR=UT=WVP@=?ACEGIKMOQSUW= YXA"[�GA$\„GA&]òG=#^õ=_öùeøe9f‰=YQg=ÇhgF« ihG¨ ji÷kújlmøl÷núLopøo=qÚ=rÛ¸ sqr>csùnøp>c€ùnøn= tc>atùkøm>aLùkøk= ua÷vúuwvøwüøvQ x=9yÒx`¼ zy÷{úz|}ø|üø}ýø{ý86�!ø~;-¥¦;¨§©=�€= ƒ‚= …„=-‡†=‰ˆ=‹Š=�Œ=-�Ž=‘�=“’=•”=—–=™˜P@�ƒ…‡‰‹��‘“•—™= ›šA"ž�GA$Ÿ„GA& òG=#¡õ=¢öùªøª9«‰›Q¬9 ­¬¨ ®­÷¯ú®°±ø°Q ²Q³O-´³³9µÒ²´¼ ¶µ>¥¶ù¯ø±>¥Lù¯ø¯= ·¥÷¸ú·¹¸ø¹üø¸A7ºŸ F=»ºA7¼Ÿ G=½¼ª ¾½E©¿¾EGA7ÀŸ E=ÁÀª ÂÁE©ÃÂFGÅÄ¿ÃÇÅ»pÆÅÂÇ»'ÇÈÇpÉÈÂÊ»ÇËÊpÌËpÍÄPÎÆÉÌ͈ÏΤA}ЧG>ÐÏ=AѧQÒÑ>œÒý86ó!øÓ;-ùú;üûý=ÖÕ= Ø×= ÚÙ=-ÜÛ=ÞÝ=àß=âá=-äã=æå=èç=êé=ìë=îíP@ÔÖØÚÜÞàâäæèêìî= ðïA"ô�GA$õ„GA&öòG=#÷õ=øöùþøþ9ÿ‰ÔðQÔ9 ¨ ÷úøQ ÔQÔO-9 Ò¼  >ù ùø>ùLùø= ù÷ ú   ø üø A€ôG=91˜= ð‘   E=Ý +(=Þ…‘=Þ…P = ÙP   .A€ôG=Q ÔP! (‘"!Q#"$#P%$A}&ûG>&%  '+dH=(ß )+(J(P*')A}+ûE>+*=D,ûQ-,>ñ-Q.,>ò.ý8 @Ð Ð/ ,@ 0˜J£&ѰA¬ËÎ-”ÒÑ'19dKhô_7hh'·ÊË$hedra_shaders/world/cbaca40c731c4af5jÔƒ±7BTSR ñ˜ñ˜õ𥵠šPžR†$SïUVd i¹m»vÏ ㊠çŒ  ‡� 6 ™Ó  vs_customvs_custom_instancedvs_custom_skinned fs_customfs_custom_depth fs_custom_idfs_custom_normal_depth"GOLitShadowt_shadows_shadowSky t_radiance t_panorama s_radiance s_panoramat_ao t_lightmap s_lightmapProbet_probess_probesDecalt_decalss_decalsFogSkint_screenhedra_pscreenSAMPLER_NEAREST_CLAMP! vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depthû—struct Globals { view: mat4x4, proj: mat4x4, view_proj: mat4x4, camera_pos: vec4, viewport: vec4, wire_color: vec4, select_color: vec4, active_color: vec4, grid: vec4, params: vec4, fparams: vec4, } struct ObjectU { model: mat4x4, normal: mat4x4, color: vec4, params: vec4, extra: vec4, gi: array, 3>, decals: vec4, lights: vec4, } struct LightU { color: vec4, position: vec4, direction: vec4, spot: vec4, info: vec4, } struct LitU { counts: vec4, ambient: vec4, tone: vec4, up: vec4, sky_top: vec4, sky_horizon: vec4, ground_horizon: vec4, ground_bottom: vec4, inv_view_proj: mat4x4, dirs: vec4, lights: array, } struct ShadowLightU { params: vec4, splits: vec4, fade: vec4, info: vec4, } struct ShadowTileU { view_proj: mat4x4, rect: vec4, texel: vec4, } struct ShadowU { atlas: vec4, lights: array, tiles: array, } struct SunU { direction: vec4, color: vec4, } struct SkyU { flags: vec4, to_sky: mat4x4, sky_top: vec4, sky_horizon: vec4, ground_bottom: vec4, ground_horizon: vec4, sun: vec4, ambient: vec4, ibl: vec4, fog_color: vec4, fog: vec4, fog_depth: vec4, fog_origin: vec4, suns: array, sh: array, 9>, } struct ProbeEntryU { to_local: mat4x4, extents: vec4, offset: vec4, ambient: vec4, info: vec4, } struct ProbeU { counts: vec4, probes: array, } struct DecalEntryU { to_local: mat4x4, modulate: vec4, fades: vec4, axis_x: vec4, axis_y: vec4, axis_z: vec4, layers: vec4, flags: vec4, } struct DecalU { counts: vec4, lod: vec4, entries: array, } struct DecalSurface { base: vec3, metallic: f32, roughness: f32, occlusion: f32, normal: vec3, emission: vec3, } struct VsIn { @location(0) pos: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, } struct InstIn { @location(6) row0_: vec4, @location(7) row1_: vec4, @location(8) row2_: vec4, @location(9) color: vec4, } struct FogEntryU { to_local: mat4x4, size: vec4, material: vec4, albedo: vec4, emission: vec4, lights: vec4, } struct FogU { counts: vec4, params: vec4, ambient: vec4, up: vec4, light_fog: array, 16>, entries: array, } struct SkinU { rows: array, 765>, } struct SkinIn { @location(12) joints: vec4, @location(13) weights: vec4, } struct SkinRows { r0_: vec4, r1_: vec4, r2_: vec4, } struct HedraInstExtra { @location(14) custom: vec4, @location(15) id: f32, } struct CustomOut { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) color: vec4, @location(6) uv2_: vec2, @location(7) @interpolate(flat) instance_id: u32, @location(8) hedra_v0_: vec4, @location(9) hedra_v1_: vec4, @location(10) hedra_v2_: vec4, @location(11) hedra_v3_: vec4, } struct IdOut { @location(0) id: vec4, } struct HedraParams { low_res: vec2, color_bits: f32, dither_strength: f32, integer_scale: f32, } struct HedraNormalDepthOut { @location(0) normal_depth: vec4, @location(1) surface: vec4, } const OBJ_HAS_WEIGHTS: u32 = 1u; const OBJ_MIRRORED: u32 = 2u; const SHADE_SOLID: u32 = 0u; const SHADE_MATCAP: u32 = 1u; const SHADE_NORMALS: u32 = 2u; const SHADE_FACE_ORIENT: u32 = 3u; const SHADE_RANDOM: u32 = 4u; const SHADE_MATERIAL: u32 = 5u; const SHADE_UV_CHECKER: u32 = 6u; const SHADE_WEIGHTS: u32 = 7u; const SHADE_LIT: u32 = 8u; const SHADE_LIGHTMAP: u32 = 9u; const SHADE_LIGHT_COUNT: u32 = 10u; const OV_SELECTION: u32 = 1u; const OV_SEAMS: u32 = 2u; const OV_SHARP: u32 = 4u; const F_SELECTED: u32 = 1u; const F_HIDDEN: u32 = 2u; const F_SEAM: u32 = 4u; const F_SHARP: u32 = 8u; const F_MESH: u32 = 16u; const F_FADE: u32 = 32u; const F_NO_PULL: u32 = 64u; const SPEC_TEX_BASE: bool = true; const SPEC_TEX_NORMAL: bool = true; const SPEC_TEX_MR: bool = true; const SPEC_TEX_EMISSION: bool = true; const SPEC_TEX_OCCLUSION: bool = true; const SPEC_VERTEX_COLOR: bool = true; const SPEC_EXT: bool = true; const SPEC_UNLIT: bool = true; const SPEC_ALPHA_MASK: bool = true; const SPEC_ALPHA_BLEND: bool = true; const SPEC_CLEARCOAT: bool = true; const SPEC_SHEEN: bool = true; const SPEC_TRANSMISSION: bool = true; const SPEC_IRIDESCENCE: bool = true; const SPEC_ANISOTROPY: bool = true; const SPEC_DIFFUSE_TRANSMISSION: bool = true; const SPEC_VOLUME: bool = true; const SPEC_DISPERSION: bool = true; const SPEC_EXT_LAYERS: bool = true; const SPEC_ROUGHNESS_LAYER: bool = true; const SPEC_LIT: bool = true; const SPEC_LIGHTS: bool = true; const SPEC_SHADOWS: bool = true; const SPEC_DECALS: bool = true; const SPEC_FOG: bool = true; const SPEC_FOG_VOLUMES: bool = true; const SPEC_PROBES: bool = true; const SPEC_PROBE_GI: bool = true; const SPEC_SSAO: bool = true; const SPEC_SCREEN_REFRACTION: bool = true; const SPEC_EMERGE: bool = true; const SPEC_FADE: bool = true; const SPEC_FACE_FLAGS: bool = true; const SPEC_AMBIENT_FLAT: bool = true; const SPEC_AMBIENT_GRADIENT: bool = true; const SPEC_AMBIENT_SKY: bool = true; const SPEC_MATERIAL_MODE: bool = true; const SPEC_OTHER_MODES: bool = true; const PI: f32 = 3.1415927f; const TAU: f32 = 6.2831855f; const E: f32 = 2.7182817f; const HEDRA_BLEND_MIX: u32 = 0u; const HEDRA_BLEND_PREMUL_ALPHA: u32 = 4u; const HEDRA_CULL_FRONT: u32 = 1u; const HEDRA_DIFFUSE_LAMBERT: u32 = 0u; const HEDRA_DIFFUSE_LAMBERT_WRAP: u32 = 1u; const HEDRA_DIFFUSE_BURLEY: u32 = 2u; const HEDRA_DIFFUSE_TOON: u32 = 3u; const HEDRA_SPECULAR_SCHLICK_GGX: u32 = 0u; const HEDRA_SPECULAR_TOON: u32 = 1u; const HEDRA_SPECULAR_DISABLED: u32 = 2u; const HEDRA_ENCODE_SRGB: u32 = 2u; const HEDRA_NEVER: u32 = 4294967295u; const MAX_FRAME_LIGHTS: u32 = 64u; const MAX_OBJECT_LIGHTS: u32 = 8u; const MAX_SHADOW_LIGHTS: u32 = 16u; const MAX_POOL_DIRECTIONAL: u32 = 8u; const LIGHT_COUNT_COLORS: array, 10> = array, 10>(vec3(0.352941f, 0.352941f, 0.352941f), vec3(0.168627f, 0.247059f, 0.6f), vec3(0.129412f, 0.4f, 0.67451f), vec3(0.101961f, 0.623529f, 0.721569f), vec3(0.121569f, 0.631373f, 0.529412f), vec3(0.301961f, 0.733333f, 0.352941f), vec3(0.65098f, 0.831373f, 0.227451f), vec3(0.94902f, 0.784314f, 0.058824f), vec3(0.94902f, 0.556863f, 0.058824f), vec3(0.878431f, 0.129412f, 0.541176f)); const LIGHT_DIRECTIONAL: u32 = 0u; const LIGHT_OMNI: u32 = 1u; const LIGHT_SPOT: u32 = 2u; const LIGHT_BAKE_DISABLED: u32 = 0u; const LIGHT_BAKE_STATIC: u32 = 1u; const LIGHT_BAKE_DYNAMIC: u32 = 2u; const TONEMAP_LINEAR: u32 = 0u; const TONEMAP_REINHARD: u32 = 1u; const TONEMAP_FILMIC: u32 = 2u; const TONEMAP_ACES: u32 = 3u; const TONEMAP_AGX: u32 = 4u; const ENV_SKY: u32 = 1u; const ENV_AMBIENT_SKY: u32 = 2u; const ENV_SSAO: u32 = 4u; const ENV_HDR: u32 = 8u; const ENV_SCREEN_REFRACTION: u32 = 16u; const LIGHT_SHADOWED: u32 = 1u; const LIGHT_BAKED_STATIC: u32 = 1u; const SHADOW_TILES: u32 = 16u; const SKY_DRAW_PROCEDURAL: u32 = 1u; const SKY_DRAW_PANORAMA: u32 = 2u; const SKY_PANORAMA_FILTER: u32 = 4u; const SKY_IBL: u32 = 8u; const SKY_AMBIENT_SKY: u32 = 16u; const SKY_REFLECT_RADIANCE: u32 = 32u; const SKY_REFLECT_OFF: u32 = 64u; const SKY_FOG: u32 = 128u; const SKY_FOG_DEPTH: u32 = 256u; const SKY_SUNS: u32 = 4u; const OBJ_LIGHTMAP: u32 = 4u; const OBJ_PROBE_GI: u32 = 8u; const PROBE_BOX: u32 = 1u; const PROBE_INTERIOR: u32 = 2u; const MAX_PROBES: u32 = 8u; const PROBE_AMBIENT_DISABLED: u32 = 0u; const PROBE_AMBIENT_ENVIRONMENT: u32 = 1u; const PROBE_AMBIENT_CONSTANT_COLOR: u32 = 2u; const MAX_FRAME_DECALS: u32 = 64u; const MAX_OBJECT_DECALS: u32 = 8u; const DECAL_LIVE_ALBEDO: u32 = 1u; const DECAL_LIVE_NORMAL: u32 = 2u; const DECAL_LIVE_ORM: u32 = 4u; const DECAL_LIVE_EMISSION: u32 = 8u; const F_INSTANCE_MIRRORED: u32 = 128u; const OBJ_EMERGE: u32 = 32u; const EMERGE_SCALE: f32 = 1.3f; const EMERGE_EDGE: f32 = 0.8f; const EMERGE_DITHER: f32 = 0.12f; const OBJ_FADE: u32 = 64u; const MAX_FRAME_FOG_VOLUMES: u32 = 16u; const MAX_OBJECT_FOG_VOLUMES: u32 = 4u; const FOG_SHAPE_ELLIPSOID: u32 = 0u; const FOG_SHAPE_CONE: u32 = 1u; const FOG_SHAPE_CYLINDER: u32 = 2u; const FOG_SHAPE_BOX: u32 = 3u; const FOG_SHAPE_WORLD: u32 = 4u; const FOG_SKY_DISTANCE: f32 = 1000000f; const FOG_LIST_ALL: u32 = 2147483648u; const FOG_GL_X0_: f32 = 0.8611363f; const FOG_GL_X1_: f32 = 0.339981f; const FOG_GL_W0_: f32 = 0.3478548f; const FOG_GL_W1_: f32 = 0.6521452f; const OBJ_SKINNED: u32 = 16u; const SKIN_JOINTS: u32 = 255u; const HEDRA_UNSHADED: bool = true; const HEDRA_HAS_LIGHT: bool = false; const HEDRA_USES_POSITION: bool = true; const HEDRA_SKIP_VERTEX_TRANSFORM: bool = false; const HEDRA_WORLD_VERTEX_COORDS: bool = false; const HEDRA_AMBIENT_LIGHT_DISABLED: bool = true; const HEDRA_FOG_DISABLED: bool = true; const HEDRA_SHADOWS_DISABLED: bool = true; const HEDRA_ALPHA: bool = false; const HEDRA_ALPHA_SCISSOR: bool = false; const HEDRA_DIFFUSE: u32 = 0u; const HEDRA_SPECULAR: u32 = 2u; const HEDRA_BLEND: u32 = 0u; const HEDRA_CULL: u32 = 2u; @group(0) @binding(0) var G: Globals; @group(1) @binding(0) var O: ObjectU; @group(0) @binding(1) var Lit: LitU; @group(0) @binding(2) var Shadow: ShadowU; @group(0) @binding(3) var t_shadow: texture_depth_2d; @group(0) @binding(4) var s_shadow: sampler_comparison; @group(0) @binding(5) var Sky: SkyU; @group(3) @binding(0) var t_radiance: texture_cube; @group(3) @binding(1) var t_panorama: texture_2d; @group(3) @binding(2) var s_radiance: sampler; @group(3) @binding(3) var s_panorama: sampler; @group(0) @binding(6) var t_ao: texture_2d; @group(3) @binding(4) var t_lightmap: texture_2d_array; @group(3) @binding(5) var s_lightmap: sampler; @group(0) @binding(7) var Probe: ProbeU; @group(3) @binding(6) var t_probes: texture_2d; @group(3) @binding(7) var s_probes: sampler; @group(1) @binding(2) var Decal: DecalU; @group(1) @binding(3) var t_decals: texture_2d_array; @group(1) @binding(4) var s_decals: sampler; @group(1) @binding(5) var Fog: FogU; @group(1) @binding(1) var Skin: SkinU; @group(1) @binding(6) var t_screen: texture_2d; var VERTEX: vec3; var NORMAL: vec3; var TANGENT: vec3; var BINORMAL: vec3; var POSITION: vec4; var UV: vec2; var UV2_: vec2; var COLOR: vec4; var INSTANCE_ID: i32; var INSTANCE_CUSTOM: vec4; var VERTEX_ID: i32; var MODEL_MATRIX: mat4x4; var MODEL_NORMAL_MATRIX: mat3x3; var INV_VIEW_MATRIX: mat4x4; var INV_PROJECTION_MATRIX: mat4x4; var MODELVIEW_MATRIX: mat4x4; var MODELVIEW_NORMAL_MATRIX: mat3x3; var NODE_POSITION_WORLD: vec3; var NODE_POSITION_VIEW: vec3; var CAMERA_DIRECTION_WORLD: vec3; var LIGHT_VERTEX: vec3; var FRAGCOORD: vec4; var FRONT_FACING: bool; var VIEW: vec3; var NORMAL_MAP: vec3; var NORMAL_MAP_DEPTH: f32; var ALBEDO: vec3; var ALPHA: f32; var ALPHA_SCISSOR_THRESHOLD: f32; var PREMUL_ALPHA_FACTOR: f32; var METALLIC: f32; var SPECULAR: f32; var ROUGHNESS: f32; var RIM: f32; var RIM_TINT: f32; var BACKLIGHT: vec3; var AO: f32; var AO_LIGHT_AFFECT: f32; var EMISSION: vec3; var SCREEN_UV: vec2; var SPECULAR_AMOUNT: f32; var LIGHT: vec3; var LIGHT_COLOR: vec3; var LIGHT_IS_DIRECTIONAL: bool; var ATTENUATION: f32; var DIFFUSE_LIGHT: vec3; var SPECULAR_LIGHT: vec3; var hedra_world: vec3; var hedra_n_geo: vec3; var hedra_n: vec3; var hedra_front: bool; @group(2) @binding(0) var hedra_p: HedraParams; @group(2) @binding(1) var screen: texture_2d; @group(2) @binding(2) var SAMPLER_NEAREST_CLAMP: sampler; fn srgb_to_linear(c_1: vec3) -> vec3 { let lo = (c_1 / vec3(12.92f)); let hi = pow(((c_1 + vec3(0.055f)) / vec3(1.055f)), vec3(2.4f)); return select(hi, lo, (c_1 <= vec3(0.04045f))); } fn element_color(flags: u32, fallback: vec4) -> vec4 { var local_4: bool; var local_5: bool; if ((flags & F_MESH) == 0u) { return fallback; } let overlays = G.params.y; let _e13 = O.params.w; let edit_object = (_e13 == 1u); if ((flags & F_SEAM) != 0u) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } let _e27 = local_4; if _e27 { let _e32 = srgb_to_linear(vec3(0.86f, 0f, 0f)); return vec4(_e32, 1f); } if ((flags & F_SHARP) != 0u) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } let _e46 = local_5; if _e46 { let _e51 = srgb_to_linear(vec3(0f, 0.85f, 0.9f)); return vec4(_e51, 1f); } if ((overlays & OV_SELECTION) != 0u) { if edit_object { if ((flags & F_SELECTED) != 0u) { let _e64 = G.select_color; return _e64; } let _e67 = G.wire_color; return _e67; } let _e71 = O.params.x; if (_e71 == 1u) { let _e76 = G.select_color; let _e79 = G.active_color; let _e83 = O.params.y; return select(_e76, _e79, (_e83 == 1u)); } } let _e89 = G.wire_color; return _e89; } fn to_view(p: vec3, pull: f32) -> vec4 { var v: vec4; let _e4 = G.view; let _e7 = O.model; v = ((_e4 * _e7) * vec4(p, 1f)); let _e15 = v.z; v.z = (_e15 * (1f - pull)); let _e19 = v; return _e19; } fn linear_to_srgb(c_2: vec3) -> vec3 { let lo_1 = (c_2 * 12.92f); let hi_1 = ((1.055f * pow(c_2, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (c_2 <= vec3(0.0031308f))); } fn target_color(c_3: vec4) -> vec4 { let k_12 = clamp(c_3, vec4(0f), vec4(1f)); let _e9 = G.fparams.w; if (_e9 > 0.5f) { let _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } fn object_light_count() -> u32 { let _e3 = O.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } fn object_light(k: u32) -> u32 { let _e4 = O.lights.y; let _e8 = O.lights.x; let word = select(_e4, _e8, (k < 4u)); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } fn light_count_color() -> vec3 { var colors: array, 10> = LIGHT_COUNT_COLORS; let _e5 = O.lights.w; let _e9 = colors[min(_e5, 9u)]; return _e9; } fn pool_sun_count() -> u32 { let _e3 = Lit.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } fn pool_sun(k_1: u32) -> u32 { let _e4 = Lit.dirs.y; let _e8 = Lit.dirs.x; let word_1 = select(_e4, _e8, (k_1 < 4u)); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } fn decal_count() -> u32 { let _e3 = O.decals.z; return min(_e3, MAX_OBJECT_DECALS); } fn decal_entry(k_2: u32) -> u32 { let _e4 = O.decals.y; let _e8 = O.decals.x; let word_2 = select(_e4, _e8, (k_2 < 4u)); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } fn decal_level(e: DecalEntryU, world: vec3) -> f32 { let _e5 = Decal.lod.x; let _e8 = G.camera_pos; let _e15 = Decal.lod.y; let pixel_1 = (_e5 * select(length((world - _e8.xyz)), 1f, (_e15 > 0.5f))); let _e24 = Decal.counts.y; let top = f32((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 0.000001f)), 1f)), 0f, top); } fn decal_texel(layer: u32, uv: vec2, level: f32, live: bool) -> vec4 { let _e11 = textureSampleLevel(t_decals, s_decals, uv, i32((layer - 1u)), select(level, 0f, live)); return _e11; } fn apply_decals(world_1: vec3, n_geo: vec3, surf: DecalSurface) -> DecalSurface { var out_s: DecalSurface; var k_3: u32 = 0u; var local_6: bool; var fade: f32; out_s = surf; let _e4 = decal_count(); loop { let _e7 = k_3; if (_e7 < _e4) { } else { break; } { let _e11 = k_3; let _e12 = decal_entry(_e11); let e_2 = Decal.entries[min(_e12, 63u)]; let uvw = (e_2.to_local * vec4(world_1, 1f)).xyz; if all((uvw >= vec3(0f, -1f, 0f))) { local_6 = all((uvw <= vec3(1f))); } else { local_6 = false; } let _e35 = local_6; if !(_e35) { continue; } fade = pow((1f - abs(uvw.y)), select(e_2.fades.y, e_2.fades.x, (uvw.y > 0f))); if (e_2.fades.z > 0f) { let _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1f, ((dot(n_geo, e_2.axis_y.xyz) * 0.5f) + 0.5f))); } let uv_3 = uvw.xz; let _e69 = decal_level(e_2, world_1); let live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { let _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); let _e84 = srgb_to_linear(_e82.xyz); let a_2 = (vec4(_e84, _e82.w) * e_2.modulate); let _e90 = fade; let alpha = (a_2.w * _e90); let _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if (e_2.layers.y > 0u) { let _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); let nx = ((_e110.x * 2f) - 1f); let ny = (1f - (_e110.y * 2f)); let nz = sqrt(max(0f, ((1f - (nx * nx)) - (ny * ny)))); let dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); let _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { let _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); let _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); let _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); let _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { let _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); let _e184 = out_s.emission; let _e186 = srgb_to_linear(_e182.xyz); let _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } continuing { let _e197 = k_3; k_3 = (_e197 + 1u); } } let _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045f, 1f); let _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0f, 1f); let _e211 = out_s; return _e211; } fn d_ggx(nh: f32, a2_: f32) -> f32 { let d_12 = (((nh * nh) * (a2_ - 1f)) + 1f); return (a2_ / ((PI * d_12) * d_12)); } fn v_smith(nl: f32, nv: f32, a2_1: f32) -> f32 { let gv = (nl * sqrt((((nv * nv) * (1f - a2_1)) + a2_1))); let g_l = (nv * sqrt((((nl * nl) * (1f - a2_1)) + a2_1))); return (0.5f / max((gv + g_l), 0.0001f)); } fn f_schlick(f0_: vec3, vh: f32) -> vec3 { return (f0_ + ((vec3(1f) - f0_) * pow((1f - vh), 5f))); } fn light_specular(n: vec3, v_1: vec3, l: vec3, radiance: vec3, diffuse: vec3, f0_1: vec3, a2_2: f32, specular: f32) -> vec3 { let nl_2 = dot(n, l); if (nl_2 <= 0f) { return vec3(0f); } let h = normalize((l + v_1)); let nh_1 = max(dot(n, h), 0f); let vh_1 = max(dot(v_1, h), 0f); let nv_3 = max(dot(n, v_1), 0.0001f); let _e24 = f_schlick(f0_1, vh_1); let _e25 = d_ggx(nh_1, a2_2); let _e26 = v_smith(nl_2, nv_3, a2_2); let spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927f)) + (spec * specular)) * radiance) * nl_2); } fn sky(dir: vec3) -> vec3 { let _e4 = Lit.up; let a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1f, 1f)); if (a_3 <= 1.5707964f) { let c_25 = (1f - (a_3 / 1.5707964f)); let k_13 = clamp((1f - pow(max((1f - c_25), 0.000001f), 6.6666665f)), 0f, 1f); let _e30 = Lit.sky_horizon; let _e34 = Lit.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } let c_26 = ((a_3 - 1.5707964f) / 1.5707964f); let k_14 = clamp((1f - pow(max((1f - c_26), 0.000001f), 50f)), 0f, 1f); let _e54 = Lit.ground_horizon; let _e58 = Lit.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } fn filmic_curve(x: vec3) -> vec3 { return ((((x * ((0.88f * x) + vec3((0.1f * 0.6f)))) + vec3((0.2f * 0.01f))) / ((x * ((0.88f * x) + vec3(0.6f))) + vec3((0.2f * 0.3f)))) - vec3((0.01f / 0.3f))); } fn aces_curve(c_4: vec3, white: f32) -> vec3 { let x_2 = vec3((1.8f * dot(vec3(0.59719f, 0.35458f, 0.04823f), c_4)), (1.8f * dot(vec3(0.076f, 0.90834f, 0.01566f), c_4)), (1.8f * dot(vec3(0.0284f, 0.13383f, 0.83777f), c_4))); let t_2 = (((x_2 * (x_2 + vec3(0.0245786f))) - vec3(0.000090537f)) / ((x_2 * ((0.983729f * x_2) + vec3(0.432951f))) + vec3(0.238081f))); let o_5 = vec3(dot(vec3(1.60475f, -0.53108f, -0.07367f), t_2), dot(vec3(-0.10208f, 1.10813f, -0.00605f), t_2), dot(vec3(-0.00327f, -0.07276f, 1.07602f), t_2)); let w_1 = (1.8f * white); let wt = (((w_1 * (w_1 + 0.0245786f)) - 0.000090537f) / ((w_1 * ((0.983729f * w_1) + 0.432951f)) + 0.238081f)); return (o_5 / vec3(wt)); } fn agx_curve(c_5: vec3) -> vec3 { var v_2: vec3; let inset = mat3x3(vec3(0.54490817f, 0.14044006f, 0.08882741f), vec3(0.37377945f, 0.7541096f, 0.17887713f), vec3(0.08138498f, 0.10543358f, 0.73225f)); let outset = mat3x3(vec3(1.964551f, -0.29932243f, -0.16436833f), vec3(-0.85585845f, 1.3264511f, -0.23822464f), vec3(-0.10886711f, -0.02708402f, 1.4026654f)); v_2 = (inset * max(c_5, vec3(0.0000000002f))); let _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931f), vec3(4.0260687f)) - vec3(-12.473931f)) / vec3((4.0260687f - -12.473931f))); let _e44 = v_2; let _e45 = v_2; let x2_ = (_e44 * _e45); let x4_ = (x2_ * x2_); let _e48 = v_2; let _e56 = v_2; let _e64 = v_2; let p_7 = ((((((0.021f * _e48) + (4.0111f * x2_)) - ((25.682f * x2_) * _e56)) + (70.359f * x4_)) - ((74.778f * x4_) * _e64)) + ((27.069f * x4_) * x2_)); return (outset * pow(max(p_7, vec3(0.0000000001f)), vec3(2.4f))); } fn tonemap(c_in: vec3) -> vec3 { let _e4 = Lit.tone.x; let c_27 = max((c_in * _e4), vec3(0f)); let white_1 = Lit.tone.y; let mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return (((white_1 * c_27) + c_27) / ((c_27 * white_1) + vec3(white_1))); } if (mode == TONEMAP_FILMIC) { let _e27 = filmic_curve(c_27); let _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if (mode == TONEMAP_ACES) { let _e33 = aces_curve(c_27, white_1); return _e33; } if (mode == TONEMAP_AGX) { let _e36 = agx_curve(c_27); return _e36; } return c_27; } fn emerge_hash(p_1: vec3) -> f32 { var q: vec3; q = fract((p_1 * 0.1031f)); let _e5 = q; let _e6 = q; let _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32f))))); let _e16 = q.x; let _e18 = q.y; let _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } fn emerge_noise(p_2: vec3) -> f32 { let i_13 = floor(p_2); let f = fract(p_2); let u_1 = ((f * f) * (vec3(3f) - (2f * f))); let _e10 = emerge_hash(i_13); let _e16 = emerge_hash((i_13 + vec3(1f, 0f, 0f))); let _e24 = emerge_hash((i_13 + vec3(0f, 1f, 0f))); let _e30 = emerge_hash((i_13 + vec3(1f, 1f, 0f))); let a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); let _e40 = emerge_hash((i_13 + vec3(0f, 0f, 1f))); let _e46 = emerge_hash((i_13 + vec3(1f, 0f, 1f))); let _e54 = emerge_hash((i_13 + vec3(0f, 1f, 1f))); let _e60 = emerge_hash((i_13 + vec3(1f, 1f, 1f))); let b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } fn emerge_reveal(world_2: vec3, pixel: vec2) -> f32 { var n_1: f32; let _e6 = O.extra.x; if select(true, ((_e6 & OBJ_EMERGE) == 0u), SPEC_EMERGE) { return 1f; } let e_3 = O.normal[0][3]; let w_2 = (world_2 * EMERGE_SCALE); let _e21 = emerge_noise(w_2); let _e29 = emerge_noise(((w_2 * 2.7f) + vec3(17.1f))); n_1 = smoothstep(0.2f, 0.8f, ((_e21 * 0.65f) + (_e29 * 0.35f))); if (pixel.x >= 0f) { let ign = fract((52.982918f * fract(dot(floor(pixel), vec2(0.06711056f, 0.00583715f))))); let _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5f) * EMERGE_DITHER)), 0f, 1f); } let _e60 = n_1; return (((e_3 * 1.8f) - _e60) / EMERGE_EDGE); } fn emerge_tint(c_6: vec3, r: f32) -> vec3 { var local_7: bool; let _e6 = O.extra.x; if !(((_e6 & OBJ_EMERGE) == 0u)) { local_7 = (r >= 1f); } else { local_7 = true; } let _e17 = local_7; if select(true, _e17, SPEC_EMERGE) { return c_6; } let _e23 = O.extra.w; let _e26 = srgb_to_linear(unpack4x8unorm(_e23).xyz); let _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0f, 1f, r)); } fn item_fade(c_7: vec3) -> vec3 { let _e5 = O.extra.x; if select(true, ((_e5 & OBJ_FADE) == 0u), SPEC_FADE) { return c_7; } let f_1 = O.normal[3]; let _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } fn sky_dir(d: vec3) -> vec3 { let _e3 = Sky.to_sky; return normalize((_e3 * vec4(d, 0f)).xyz); } fn sky_curve(c_8: f32, curve: f32) -> f32 { return clamp((1f - pow(max((1f - c_8), 0.000001f), (1f / curve))), 0f, 1f); } fn procedural_sky(d_1: vec3) -> vec3 { var sky_1: vec3; var i: u32 = 0u; let v_6 = acos(clamp(d_1.y, -1f, 1f)); let _e8 = Sky.sky_horizon; let _e12 = Sky.sky_top; let _e21 = Sky.sky_top.w; let _e22 = sky_curve((1f - (v_6 / 1.5707964f)), _e21); let _e27 = Sky.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); let _e33 = Sky.flags.z; let suns = min(_e33, SKY_SUNS); loop { let _e38 = i; if (_e38 < suns) { } else { break; } { let _e42 = i; let sun = Sky.suns[_e42]; let size = sun.direction.w; let a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1f, 1f)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { let _e60 = Sky.sun.x; if (a_5 < _e60) { let _e66 = Sky.sun.x; let c2_ = ((a_5 - size) / (_e66 - size)); let _e71 = sky_1; let _e75 = Sky.sun.y; let _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } continuing { let _e79 = i; i = (_e79 + 1u); } } let _e83 = Sky.ground_horizon; let _e87 = Sky.ground_bottom; let _e96 = Sky.ground_bottom.w; let _e97 = sky_curve(((v_6 - 1.5707964f) / 1.5707964f), _e96); let _e102 = Sky.ground_horizon.w; let ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); let _e104 = sky_1; let _e112 = Sky.sun.z; return (select(ground, _e104, (d_1.y >= 0f)) * _e112); } fn panorama(d_2: vec3) -> vec3 { let uv_4 = vec2(fract((atan2(d_2.x, -(d_2.z)) / 6.2831855f)), (acos(clamp(d_2.y, -1f, 1f)) / PI)); let _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { let _e27 = textureSampleLevel(t_panorama, s_panorama, uv_4, 0f); let _e32 = Sky.sun.z; return (_e27.xyz * _e32); } let _e36 = textureDimensions(t_panorama, 0i); let size_1 = vec2(_e36); let x_3 = (((i32(floor((uv_4.x * f32(size_1.x)))) % size_1.x) + size_1.x) % size_1.x); let y = clamp(i32(floor((uv_4.y * f32(size_1.y)))), 0i, (size_1.y - 1i)); let _e64 = textureLoad(t_panorama, vec2(x_3, y), 0i); let _e69 = Sky.sun.z; return (_e64.xyz * _e69); } fn sh_irradiance(n_2: vec3) -> vec3 { var c_9: vec3; let _e4 = Sky.sh[0]; c_9 = (_e4.xyz * 0.282095f); let _e9 = c_9; let _e13 = Sky.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603f * n_2.y))); let _e20 = c_9; let _e24 = Sky.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603f * n_2.z))); let _e31 = c_9; let _e35 = Sky.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603f * n_2.x))); let _e42 = c_9; let _e46 = Sky.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548f * n_2.x) * n_2.y))); let _e55 = c_9; let _e59 = Sky.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548f * n_2.y) * n_2.z))); let _e68 = c_9; let _e72 = Sky.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392f * (((3f * n_2.z) * n_2.z) - 1f)))); let _e85 = c_9; let _e89 = Sky.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548f * n_2.x) * n_2.z))); let _e98 = c_9; let _e102 = Sky.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274f * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); let _e115 = c_9; return max(_e115, vec3(0f)); } fn radiance_1(d_3: vec3, roughness: f32) -> vec3 { let _e5 = Sky.flags.y; let top_1 = f32((max(_e5, 1u) - 1u)); let _e14 = textureSampleLevel(t_radiance, s_radiance, d_3, (roughness * top_1)); return _e14.xyz; } fn env_brdf_approx(roughness_1: f32, nv_1: f32) -> vec2 { let r_6 = ((roughness_1 * vec4(-1f, -0.0275f, -0.572f, 0.022f)) + vec4(1f, 0.0425f, 1.04f, -0.04f)); let a004_ = ((min((r_6.x * r_6.x), exp2((-9.28f * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04f, 1.04f) * a004_) + r_6.zw); } fn pow8_(x_1: f32) -> f32 { let x2_1 = (max(x_1, 0f) * max(x_1, 0f)); let x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } fn fog_sun_scatter(fc: vec3, dir_1: vec3) -> vec3 { var c_10: vec3; var k_4: u32 = 0u; c_10 = fc; let _e6 = Sky.fog_color.w; if (_e6 > 0.001f) { let _e9 = pool_sun_count(); loop { let _e12 = k_4; if (_e12 < _e9) { } else { break; } { let _e14 = k_4; let _e15 = pool_sun(_e14); let _e21 = Lit.lights[_e15].info.x; if (_e21 == LIGHT_DIRECTIONAL) { let _e24 = c_10; let _e29 = Lit.lights[_e15].color; let _e38 = Lit.lights[_e15].direction; let _e42 = pow8_(dot(dir_1, -(_e38.xyz))); let _e47 = Sky.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927f)) * _e42) * _e47)); } } continuing { let _e51 = k_4; k_4 = (_e51 + 1u); } } } let _e53 = c_10; return _e53; } fn sky_fog(c_11: vec3, dir_2: vec3) -> vec3 { let _e4 = Sky.fog_color; let _e9 = Sky.fog_depth.w; let _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); let _e15 = Sky.fog.y; return mix(c_11, _e11, _e15); } fn surface_fog(c_12: vec3, world_3: vec3, dir_3: vec3) -> vec3 { var dist: f32; var amount: f32; var fc_1: vec3; var local_8: bool; let _e5 = G.view; let depth = -((_e5 * vec4(world_3, 1f)).z); let _e13 = G.camera_pos; dist = distance(world_3, _e13.xyz); let _e20 = Sky.fog_origin.w; if (_e20 > 0.5f) { let _e26 = Sky.fog_origin.x; dist = max((depth - _e26), 0f); } let _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { let _e42 = Sky.fog_depth.x; let _e46 = Sky.fog_depth.y; let _e47 = dist; let z = smoothstep(_e42, _e46, _e47); let _e54 = Sky.fog_depth.z; let _e63 = Sky.fog.x; amount = (select(0f, pow(max(z, 0.000001f), _e54), (z > 0f)) * _e63); } else { let _e65 = dist; let _e70 = Sky.fog.x; amount = (1f - exp(min(0f, (-(_e65) * _e70)))); } let _e80 = Sky.fog.w; if (abs(_e80) >= 0.0001f) { let _e86 = Lit.up; let y_1 = dot(world_3, _e86.xyz); let _e89 = amount; let _e93 = Sky.fog.z; let _e98 = Sky.fog.w; amount = max(_e89, (1f - exp(min(0f, ((y_1 - _e93) * _e98))))); } let _e106 = amount; amount = clamp(_e106, 0f, 1f); let _e112 = Sky.fog_color; fc_1 = _e112.xyz; let _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { let _e129 = Sky.fog_depth.w; local_8 = (_e129 > 0f); } else { local_8 = false; } let _e133 = local_8; if select(false, _e133, SPEC_AMBIENT_SKY) { let _e139 = Sky.fog_origin.y; let _e144 = Sky.fog_origin.z; let _e148 = Sky.fog_origin.y; let t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 0.000001f)), 0f, 1f); let _e159 = Sky.flags.y; let top_2 = f32((max(_e159, 2u) - 1u)); let rough = mix((1f / top_2), 1f, (1f - t_3)); let _e171 = fc_1; let _e172 = sky_dir(dir_3); let _e173 = radiance_1(_e172, rough); let _e177 = Sky.sun.w; let _e182 = Sky.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } let _e184 = fc_1; let _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; let _e186 = fc_1; let _e187 = amount; return mix(c_12, _e186, _e187); } fn fog_chord(k_5: u32, o: vec3, d_4: vec3, t_end_ray: f32) -> vec2 { var r_1: vec2; var a: f32 = 0f; var b: f32 = 0f; var c_13: f32 = -1f; let _e9 = Fog.entries[k_5].albedo.w; let shape = u32(_e9); let _e16 = Fog.entries[k_5].emission.w; let t_end_1 = min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return vec2(0f, t_end_1); } let _e26 = Fog.entries[k_5].size; let h_1 = (_e26.xyz * 0.5f); let dd = select(d_4, vec3(0.000000000001f), (abs(d_4) < vec3(0.000000000001f))); let sa = ((-(h_1) - o) / dd); let sb = ((h_1 - o) / dd); let s_in = min(sa, sb); let s_out = max(sa, sb); r_1 = vec2(max(0f, s_in.y), min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { let _e60 = r_1.x; let _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1f); } else { let rad = min(h_1.x, h_1.z); let k_15 = select(0f, (rad / (2f * h_1.y)), (shape == FOG_SHAPE_CONE)); let w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - select((rad * rad), (((k_15 * k_15) * w_3) * w_3), (shape == FOG_SHAPE_CONE))); } } let _e139 = b; let _e140 = b; let _e142 = a; let _e143 = c_13; let disc = ((_e139 * _e140) - (_e142 * _e143)); let _e146 = a; if (abs(_e146) < 0.000000000001f) { let _e150 = b; if (abs(_e150) < 0.000000000001f) { let _e156 = r_1.y; let _e157 = c_13; r_1.y = select(_e156, -1f, (_e157 > 0f)); } else { let _e162 = b; if (_e162 > 0f) { let _e167 = r_1.y; let _e168 = c_13; let _e170 = b; r_1.y = min(_e167, (-(_e168) / (2f * _e170))); } else { let _e177 = r_1.x; let _e178 = c_13; let _e180 = b; r_1.x = max(_e177, (-(_e178) / (2f * _e180))); } } } else { if (disc < 0f) { let _e189 = r_1.y; let _e190 = a; r_1.y = select(_e189, -1f, (_e190 > 0f)); } else { let _e195 = b; let _e199 = a; let _e201 = b; let _e205 = a; let lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); let _e208 = b; let _e212 = a; let _e214 = b; let _e218 = a; let hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); let _e221 = a; if (_e221 > 0f) { let _e225 = r_1.x; let _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { let _e232 = r_1.x; let _e234 = r_1.y; if (_e232 < min(_e234, lo_2)) { let _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { let _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } let _e245 = r_1; return _e245; } fn fog_density(k_6: u32, p_3: vec3, lp: vec3) -> f32 { var rho: f32; var sdf: f32 = 0f; let e_4 = Fog.entries[k_6]; let _e14 = Fog.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1f)); if (e_4.material.z > 0f) { let shape_1 = u32(e_4.albedo.w); let h_2 = (e_4.size.xyz * 0.5f); let rad_1 = min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { let k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1f)) / max(length((lp / (h_2 * h_2))), 0.000000000001f)); } else { if (shape_1 == FOG_SHAPE_BOX) { let q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0f))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0f)); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { let q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0f) + length(max(q_4, vec2(0f)))); } else { let n_11 = normalize(vec2((1f / max(0.001f, (rad_1 * 0.5f))), (1f / max(0.001f, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } let _e116 = rho; let _e117 = sdf; rho = (_e116 * pow(clamp(((-2f * _e117) / e_4.size.w), 0f, 1f), e_4.material.z)); } let _e130 = rho; return _e130; } fn fog_falloff_depth(k_7: u32, a_1: f32, b_1: f32, t0_: f32, t1_: f32) -> f32 { let m_4 = Fog.entries[k_7].material; let hf = m_4.y; if ((hf * b_1) == 0f) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1f)); } let s_2 = clamp((-(a_1) / b_1), t0_, t1_); let lo_3 = select(t0_, s_2, (b_1 > 0f)); let hi_3 = select(s_2, t1_, (b_1 > 0f)); let x_4 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472f); let g = select(((1f - exp(-(x_4))) / x_4), (1f - (x_4 * (0.5f - (x_4 * (0.16666667f - (x_4 / 24f)))))), (x_4 < 0.01f)); let top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * select(hi_3, lo_3, (b_1 > 0f)))), 0f))), 1f); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } fn omni_attenuation(d_5: f32, inv_range: f32, decay: f32) -> f32 { var nd: f32; nd = (d_5 * inv_range); let _e5 = nd; let _e6 = nd; nd = (_e5 * _e6); let _e8 = nd; let _e9 = nd; nd = (_e8 * _e9); let _e11 = nd; nd = max((1f - _e11), 0f); let _e16 = nd; let _e17 = nd; nd = (_e16 * _e17); let _e19 = nd; return (_e19 * pow(max(d_5, 0.0001f), -(decay))); } fn fog_light(n_3: u32, p_4: vec3, dir_4: vec3) -> vec3 { var sum: vec3; var k_8: u32 = 0u; var l_1: vec3; var atten: f32; let _e5 = Fog.ambient; let _e10 = Fog.params.y; sum = (_e5.xyz * _e10); let g_1 = Fog.params.x; let lights = Fog.entries[n_3].lights; loop { let _e24 = k_8; if (_e24 < min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { let _e31 = k_8; let _e35 = k_8; let i_14 = min(((select(lights.y, lights.x, (_e31 < 4u)) >> ((_e35 & 3u) * 8u)) & 255u), 63u); let li = Lit.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1f; if (li.info.x != LIGHT_DIRECTIONAL) { let rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 0.000001f))); let _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { let _e77 = l_1; let rim = max(0.0001f, ((1f - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1f - li.spot.x), 0.000001f))); let _e96 = atten; atten = (_e96 * (1f - pow(rim, li.spot.y))); } } let _e108 = l_1; let q_5 = ((1f + (g_1 * g_1)) - ((2f * g_1) * dot(dir_4, _e108))); let _e112 = sum; let _e115 = atten; let _e133 = Fog.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1f - (g_1 * g_1))) / ((12.566371f * q_5) * sqrt(q_5))) * _e133))); } continuing { let _e138 = k_8; k_8 = (_e138 + 1u); } } let _e140 = sum; return _e140; } fn fog_entry(k_9: u32, o_1: vec3, d_6: vec3, ch: vec2) -> vec4 { var split: f32; var local_9: bool; var local_10: bool; var q_1: vec3 = vec3(0f); var tau: f32 = 0f; var i_1: u32 = 0u; var local_11: bool; var local_12: bool; let e_5 = Fog.entries[k_9]; let lo_4 = (e_5.to_local * vec4(o_1, 1f)).xyz; let ld = (e_5.to_local * vec4(d_6, 0f)).xyz; let _e20 = Fog.up; let a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); let _e28 = Fog.up; let b_3 = dot(d_6, _e28.xyz); let edge = (e_5.material.z > 0f); split = ((ch.x + ch.y) * 0.5f); if (e_5.material.y > 0f) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } let _e52 = local_9; if _e52 { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } let _e60 = local_10; if _e60 { split = (-(a_6) / b_3); } loop { let _e70 = i_1; if (_e70 < select(4u, 12u, edge)) { } else { break; } { let _e75 = i_1; let j = (_e75 & 3u); if !((j == 0u)) { local_11 = (j == 3u); } else { local_11 = true; } let _e88 = local_11; let x_5 = select(FOG_GL_X1_, FOG_GL_X0_, _e88); if !((j == 0u)) { local_12 = (j == 3u); } else { local_12 = true; } let _e100 = local_12; let w_4 = select(FOG_GL_W1_, FOG_GL_W0_, _e100); let _e102 = split; let _e106 = split; let _e108 = i_1; let _e112 = i_1; let seg = select(select(vec2(_e102, ch.y), vec2(ch.x, _e106), (_e108 < 8u)), ch, (_e112 < 4u)); let half_len = ((seg.y - seg.x) * 0.5f); let t_4 = (((seg.x + seg.y) * 0.5f) + (half_len * select(x_5, -(x_5), (j < 2u)))); let p_8 = (o_1 + (d_6 * t_4)); let _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_4))); let _e137 = i_1; if (_e137 < 4u) { let _e140 = q_1; let _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0f, 1f)))); } else { let _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } continuing { let _e160 = i_1; i_1 = (_e160 + 1u); } } if !(edge) { let _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } let _e166 = q_1; let _e167 = tau; return vec4(_e166, _e167); } fn fog_integrate(c_14: vec3, o_2: vec3, d_7: vec3, t_end: f32, list: u32) -> vec3 { var at: array; var chords: array, 4>; var m: u32 = 0u; var i_2: u32 = 0u; var local_13: bool; var parts: array, 4>; var i_3: u32 = 0u; var n_4: u32 = 0u; var avail: f32; var i_4: u32; var i_5: u32; var q_2: vec3 = vec3(0f); var tau_1: f32 = 0f; var i_6: u32 = 0u; let all_ = (list >= FOG_LIST_ALL); loop { let _e13 = i_2; let _e18 = Fog.counts.x; if (_e13 < select(4u, min(_e18, MAX_FRAME_FOG_VOLUMES), all_)) { } else { break; } { let _e23 = i_2; let byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if !(all_) { local_13 = (byte == 0u); } else { local_13 = false; } let _e37 = local_13; if _e37 { break; } let _e42 = i_2; let k_16 = select((min(byte, MAX_FRAME_FOG_VOLUMES) - 1u), _e42, all_); let to_local = Fog.entries[k_16].to_local; let _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1f)).xyz, (to_local * vec4(d_7, 0f)).xyz, t_end); if (_e57.y > _e57.x) { let _e61 = m; at[_e61] = k_16; let _e63 = m; chords[_e63] = _e57; let _e66 = m; m = (_e66 + 1u); let _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } continuing { let _e72 = i_2; i_2 = (_e72 + 1u); } } loop { let _e77 = i_3; let _e78 = m; if (_e77 < _e78) { } else { break; } { let _e80 = i_3; let _e82 = i_3; let _e84 = at[_e82]; let _e85 = i_3; let _e87 = chords[_e85]; let _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } continuing { let _e90 = i_3; i_3 = (_e90 + 1u); } } loop { let _e94 = n_4; let _e95 = m; if (_e94 < _e95) { } else { break; } { let _e97 = n_4; let _e100 = parts[_e97].w; if (_e100 < 0f) { avail = 0f; i_4 = 0u; loop { let _e107 = i_4; let _e108 = m; if (_e107 < _e108) { } else { break; } { let _e110 = i_4; let _e113 = chords[_e110].y; let _e114 = n_4; let _e117 = chords[_e114].y; let _e119 = i_4; let _e122 = chords[_e119].x; let _e123 = n_4; let _e126 = chords[_e123].x; let _e131 = i_4; let _e134 = chords[_e131].y; let _e135 = i_4; let _e138 = chords[_e135].x; let share = (max((min(_e113, _e117) - max(_e122, _e126)), 0f) / max((_e134 - _e138), 0.000001f)); let _e143 = avail; let _e144 = i_4; let _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0f) * share)); } continuing { let _e153 = i_4; i_4 = (_e153 + 1u); } } let _e155 = n_4; let _e158 = parts[_e155].w; let _e160 = avail; let f_2 = min((-(_e158) / max(_e160, 0.000000000001f)), 1f); i_5 = 0u; loop { let _e168 = i_5; let _e169 = m; if (_e168 < _e169) { } else { break; } { let _e171 = i_5; let _e174 = parts[_e171].w; if (_e174 > 0f) { let _e177 = i_5; let _e180 = chords[_e177].y; let _e181 = n_4; let _e184 = chords[_e181].y; let _e186 = i_5; let _e189 = chords[_e186].x; let _e190 = n_4; let _e193 = chords[_e190].x; let _e198 = i_5; let _e201 = chords[_e198].y; let _e202 = i_5; let _e205 = chords[_e202].x; let share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0f) / max((_e201 - _e205), 0.000001f)); let _e210 = i_5; let _e212 = parts[_e210]; parts[_e210] = (_e212 * (1f - (share_1 * f_2))); } } continuing { let _e218 = i_5; i_5 = (_e218 + 1u); } } } } continuing { let _e221 = n_4; n_4 = (_e221 + 1u); } } loop { let _e230 = i_6; let _e231 = m; if (_e230 < _e231) { } else { break; } { let _e233 = i_6; let _e236 = parts[_e233].w; if (_e236 > 0f) { let _e239 = q_2; let _e240 = i_6; let _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); let _e245 = tau_1; let _e246 = i_6; let _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } continuing { let _e252 = i_6; i_6 = (_e252 + 1u); } } let _e254 = tau_1; let t_5 = exp(-(_e254)); let _e258 = q_2; let _e261 = tau_1; return ((c_14 * t_5) + (_e258 * ((1f - t_5) / max(_e261, 0.00001f)))); } fn fog_volumes(c_15: vec3, world_4: vec3, list_1: u32) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_6 = select(_e22.xyz, (world_4 - (back * (_e26 * vec4(world_4, 1f)).z)), (_e36 > 0.5f)); let len = length((world_4 - o_6)); let _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 0.000001f))), len, list_1); return select(c_15, _e47, (len > 0f)); } fn sky_fog_volumes(c_16: vec3, near_point: vec3, dir_5: vec3) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back_1 = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_7 = select(_e22.xyz, (near_point - (back_1 * (_e26 * vec4(near_point, 1f)).z)), (_e36 > 0.5f)); let _e44 = Fog.counts.y; let _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); let _e49 = Fog.params.z; return mix(c_16, _e45, _e49); } fn shadow_factor(i_7: u32, world_5: vec3, n_geo_1: vec3, l_2: vec3) -> f32 { var part: u32 = 0u; var c_17: u32 = 0u; var local_14: bool; var local_15: bool; var local_16: bool; var vis: f32 = 0f; var dy: i32 = -1i; var dx: i32; let kind = Lit.lights[i_7].info.x; let _e14 = Lit.lights[i_7].position; let light_pos = _e14.xyz; let _e21 = Lit.lights[i_7].info.w; let slot = min(_e21, 15u); let params = Shadow.lights[slot].params; let first = Shadow.lights[slot].info.x; let _e40 = Shadow.lights[slot].info.y; let count = max(_e40, 1u); let _e45 = G.view; let view_depth = -((_e45 * vec4(world_5, 1f)).z); if (kind == LIGHT_DIRECTIONAL) { let _e60 = Shadow.lights[slot].fade.y; if (view_depth > _e60) { return 1f; } part = (count - 1u); loop { let _e67 = c_17; if (_e67 < count) { } else { break; } { let _e73 = c_17; let _e75 = Shadow.lights[slot].splits[_e73]; if (view_depth <= _e75) { let _e77 = c_17; part = _e77; break; } } continuing { let _e79 = c_17; c_17 = (_e79 + 1u); } } } let _e83 = part; let texel = Shadow.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; let t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); let p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1f)) * t_6))) + (l_2 * (params.x * t_6))); if (kind == LIGHT_OMNI) { let d_13 = (p_9 - light_pos); let a_7 = abs(d_13); if (a_7.x >= a_7.y) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } let _e123 = local_14; if _e123 { part = select(1u, 0u, (d_13.x >= 0f)); } else { if (a_7.y >= a_7.z) { part = select(3u, 2u, (d_13.y >= 0f)); } else { part = select(5u, 4u, (d_13.z >= 0f)); } } } let _e145 = part; let tile = min((first + min(_e145, (count - 1u))), 15u); let _e156 = Shadow.tiles[tile].view_proj; let clip_1 = (_e156 * vec4(p_9, 1f)); if (clip_1.w <= 0f) { return 1f; } let ndc = (clip_1.xyz / vec3(clip_1.w)); if !((abs(ndc.x) > 1f)) { local_15 = (abs(ndc.y) > 1f); } else { local_15 = true; } let _e180 = local_15; if !(_e180) { local_16 = (ndc.z > 1f); } else { local_16 = true; } let _e188 = local_16; if _e188 { return 1f; } let rect = Shadow.tiles[tile].rect; let uv_5 = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let auv = (rect.xy + (uv_5 * rect.zw)); let texel_uv = Shadow.atlas.x; let lo_5 = (rect.xy + vec2((0.5f * texel_uv))); let hi_4 = ((rect.xy + rect.zw) - vec2((0.5f * texel_uv))); let r_7 = params.z; if (r_7 <= 0f) { let _e235 = textureSampleCompareLevel(t_shadow, s_shadow, clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { let spread = (r_7 * texel_uv); loop { let _e239 = dy; if (_e239 <= 1i) { } else { break; } { dx = -1i; loop { let _e244 = dx; if (_e244 <= 1i) { } else { break; } { let _e247 = dx; let _e249 = dy; let tap = clamp((auv + (vec2(f32(_e247), f32(_e249)) * spread)), lo_5, hi_4); let _e255 = vis; let _e259 = textureSampleCompareLevel(t_shadow, s_shadow, tap, ndc.z); vis = (_e255 + _e259); } continuing { let _e262 = dx; dx = (_e262 + 1i); } } } continuing { let _e265 = dy; dy = (_e265 + 1i); } } let _e267 = vis; vis = (_e267 / 9f); } if (kind == LIGHT_DIRECTIONAL) { let fade_1 = Shadow.lights[slot].fade; let _e277 = vis; vis = mix(_e277, 1f, smoothstep(fade_1.x, fade_1.y, view_depth)); } let _e283 = vis; return mix(1f, _e283, params.w); } fn probe_light(n_5: vec3) -> vec3 { let _e5 = O.gi[0].x; let _e9 = O.gi[0]; let _e17 = O.gi[1].x; let _e21 = O.gi[1]; let _e29 = O.gi[2].x; let _e33 = O.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0f)); } fn gi_diffuse(n_6: vec3, baked: bool, baked_light: vec3) -> vec4 { if baked { return vec4(baked_light, 1f); } let _e9 = O.extra.x; if select(false, ((_e9 & OBJ_PROBE_GI) != 0u), SPEC_PROBE_GI) { let _e16 = probe_light(n_6); return vec4(_e16, 1f); } return vec4(0f); } fn probe_face_uv(d_8: vec3) -> vec3 { var face: f32; var ma: f32; var sc: f32; var tc: f32; var local_17: bool; let a_8 = abs(d_8); if (a_8.x >= a_8.y) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } let _e15 = local_17; if _e15 { ma = a_8.x; if (d_8.x >= 0f) { face = 0f; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1f; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0f) { face = 2f; sc = d_8.x; tc = d_8.z; } else { face = 3f; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0f) { face = 4f; sc = d_8.x; tc = -(d_8.y); } else { face = 5f; sc = -(d_8.x); tc = -(d_8.y); } } } let _e56 = face; let _e57 = sc; let _e58 = ma; let _e64 = tc; let _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1f) * 0.5f), (((_e64 / _e65) + 1f) * 0.5f)); } fn probe_texel(row: u32, fuv: vec3, level_1: u32) -> vec3 { let _e6 = Probe.counts.z; let n_12 = f32(max((_e6 >> level_1), 1u)); let lo_6 = (0.5f / n_12); let u_2 = clamp(fuv.y, lo_6, (1f - lo_6)); let v_7 = clamp(fuv.z, lo_6, (1f - lo_6)); let uv_6 = vec2(((fuv.x + u_2) / 6f), ((f32(row) + v_7) / 8f)); let _e33 = textureSampleLevel(t_probes, s_probes, uv_6, f32(level_1)); return _e33.xyz; } fn probe_sample(row_1: u32, d_9: vec3, lod: f32) -> vec3 { var local_18: bool; let _e6 = Probe.counts.y; let levels = max(_e6, 1u); let l_5 = clamp(lod, 0f, f32((levels - 1u))); let m0_ = u32(l_5); let t_7 = (l_5 - f32(m0_)); let _e17 = probe_face_uv(d_9); let _e18 = probe_texel(row_1, _e17, m0_); if !((t_7 <= 0f)) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } let _e28 = local_18; if _e28 { return _e18; } let _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1f - t_7)) + (_e34 * t_7)); } fn probe_weight(p_5: ProbeEntryU, world_6: vec3) -> f32 { let l_6 = (p_5.to_local * vec4(world_6, 1f)).xyz; let e_6 = p_5.extents.xyz; let d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if (d_14 < 0f) { return 0f; } if !((p_5.extents.w > 0f)) { return 1f; } return min((d_14 / p_5.extents.w), 1f); } fn probe_exit(o_3: f32, d_10: f32, e_1: f32) -> f32 { if (d_10 > 0f) { return ((e_1 - o_3) / d_10); } if (d_10 < 0f) { return ((-(e_1) - o_3) / d_10); } return 300000000000000000000000000000000000000f; } fn probe_lookup(p_6: ProbeEntryU, world_7: vec3, dir_6: vec3) -> vec3 { let d_15 = (p_6.to_local * vec4(dir_6, 0f)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } let o_8 = (p_6.to_local * vec4(world_7, 1f)).xyz; let e_7 = p_6.extents.xyz; let _e24 = probe_exit(o_8.x, d_15.x, e_7.x); let _e28 = probe_exit(o_8.y, d_15.y, e_7.y); let _e32 = probe_exit(o_8.z, d_15.z, e_7.z); let t_8 = max(min(_e24, min(_e28, _e32)), 0f); return ((o_8 + (d_15 * t_8)) - p_6.offset.xyz); } fn probe_reflection(world_8: vec3, r_2: vec3, roughness_2: f32, probes: u32) -> vec4 { var acc: vec3 = vec3(0f); var w_sum: f32 = 0f; var i_8: u32 = 0u; let _e12 = Probe.counts.x; let count_1 = min(_e12, MAX_PROBES); let _e18 = Probe.counts.y; let lod_1 = (roughness_2 * f32((max(_e18, 1u) - 1u))); loop { let _e27 = i_8; if (_e27 < count_1) { } else { break; } { let _e31 = i_8; let p_10 = Probe.probes[_e31]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } let _e41 = probe_weight(p_10, world_8); if (_e41 <= 0f) { continue; } let _e44 = acc; let _e47 = probe_lookup(p_10, world_8, r_2); let _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); let _e54 = w_sum; w_sum = (_e54 + _e41); } continuing { let _e57 = i_8; i_8 = (_e57 + 1u); } } let _e59 = w_sum; if (_e59 > 1f) { let _e62 = acc; let _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1f; } let _e67 = acc; let _e68 = w_sum; return vec4(_e67, _e68); } fn probe_ambient(world_9: vec3, n_7: vec3, probes_1: u32) -> vec4 { var acc_1: vec3 = vec3(0f); var w_sum_1: f32 = 0f; var i_9: u32 = 0u; var local_19: bool; var c_18: vec3; let _e11 = Probe.counts.x; let count_2 = min(_e11, MAX_PROBES); let _e17 = Probe.counts.y; let last = (max(_e17, 1u) - 1u); loop { let _e24 = i_9; if (_e24 < count_2) { } else { break; } { let _e28 = i_9; let p_11 = Probe.probes[_e28]; if !((((probes_1 >> p_11.info.w) & 1u) == 0u)) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } let _e46 = local_19; if _e46 { continue; } let _e47 = probe_weight(p_11, world_9); if (_e47 <= 0f) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { let _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0f)).xyz); let _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } let _e66 = acc_1; let _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); let _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } continuing { let _e73 = i_9; i_9 = (_e73 + 1u); } } let _e75 = w_sum_1; if (_e75 > 1f) { let _e78 = acc_1; let _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1f; } let _e83 = acc_1; let _e84 = w_sum_1; return vec4(_e83, _e84); } fn skin_row(k_10: u32, r_3: u32) -> vec4 { let _e10 = Skin.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } fn skin_rows(s_1: SkinIn) -> SkinRows { var m_1: SkinRows; let j_1 = s_1.joints; let w_5 = s_1.weights; let _e8 = skin_row(j_1.x, 0u); let _e13 = skin_row(j_1.y, 0u); let _e19 = skin_row(j_1.z, 0u); let _e25 = skin_row(j_1.w, 0u); m_1.r0_ = ((((w_5.x * _e8) + (w_5.y * _e13)) + (w_5.z * _e19)) + (w_5.w * _e25)); let _e32 = skin_row(j_1.x, 1u); let _e37 = skin_row(j_1.y, 1u); let _e43 = skin_row(j_1.z, 1u); let _e49 = skin_row(j_1.w, 1u); m_1.r1_ = ((((w_5.x * _e32) + (w_5.y * _e37)) + (w_5.z * _e43)) + (w_5.w * _e49)); let _e56 = skin_row(j_1.x, 2u); let _e61 = skin_row(j_1.y, 2u); let _e67 = skin_row(j_1.z, 2u); let _e73 = skin_row(j_1.w, 2u); m_1.r2_ = ((((w_5.x * _e56) + (w_5.y * _e61)) + (w_5.z * _e67)) + (w_5.w * _e73)); let _e76 = m_1; return _e76; } fn hedra_store_varyings(o_4: ptr) { return; } fn hedra_load_varyings(i_10: CustomOut) { return; } fn light() { return; } fn psx_encode_srgb(c_19: vec3) -> vec3 { let lo_7 = (c_19 * 12.92f); let hi_5 = ((1.055f * pow(max(c_19, vec3(0f)), vec3(0.41666666f))) - vec3(0.055f)); return select(hi_5, lo_7, (c_19 <= vec3(0.0031308f))); } fn psx_decode_srgb(c_20: vec3) -> vec3 { let lo_8 = (c_20 / vec3(12.92f)); let hi_6 = pow(((c_20 + vec3(0.055f)) / vec3(1.055f)), vec3(2.4f)); return select(hi_6, lo_8, (c_20 <= vec3(0.04045f))); } fn vertex() { var extent: vec2 = vec2(1f, 1f); let _e3 = hedra_p.low_res.x; let _e7 = hedra_p.low_res.y; let target_aspect = (_e3 / _e7); let _e11 = G.viewport; let _e16 = G.viewport; let view_aspect = (_e11.xy.x / max(_e16.xy.y, 1f)); if (view_aspect > target_aspect) { extent.x = (target_aspect / view_aspect); } else { extent.y = (view_aspect / target_aspect); } let _e33 = hedra_p.integer_scale; if (_e33 > 0.5f) { let _e37 = extent.y; let _e40 = G.viewport; let shown = (_e37 * _e40.xy.y); let _e47 = hedra_p.low_res.y; let whole = floor((shown / _e47)); if (whole >= 1f) { let _e52 = extent; let _e56 = hedra_p.low_res.y; extent = (_e52 * ((whole * _e56) / shown)); } } let _e62 = VERTEX; let _e66 = extent; POSITION = vec4(((_e62.xy * 2f) * _e66), 0.5f, 1f); return; } fn fragment() { var table: array = array(-4f, 0f, -3f, 1f, 2f, -2f, 3f, -1f, -3f, 1f, -4f, 0f, 3f, -1f, 2f, -2f); let _e1 = UV; let _e4 = hedra_p.low_res; let px = floor((_e1 * _e4)); let _e14 = hedra_p.low_res; let _e16 = textureSample(screen, SAMPLER_NEAREST_CLAMP, ((px + vec2(0.5f)) / _e14)); let c_28 = _e16.xyz; let ix = (u32(px.x) % 4u); let iy = (u32(px.y) % 4u); let _e48 = table[((iy * 4u) + ix)]; let _e51 = hedra_p.dither_strength; let offset = (_e48 * _e51); let _e55 = hedra_p.color_bits; let step_ = exp2((8f - _e55)); let _e59 = psx_encode_srgb(c_28); let v8_ = clamp(((_e59 * 255f) + vec3(offset)), vec3(0f), vec3(255f)); let q_6 = ((floor((v8_ / vec3(step_))) * step_) / vec3(255f)); let _e77 = psx_decode_srgb(q_6); ALBEDO = _e77; return; } fn hedra_mat3_(m_2: mat4x4) -> mat3x3 { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } fn hedra_rigid_inverse(m_3: mat4x4) -> mat4x4 { let _e1 = hedra_mat3_(m_3); let r_8 = transpose(_e1); let t_9 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0f), vec4(r_8[1], 0f), vec4(r_8[2], 0f), vec4(t_9, 1f)); } fn hedra_inv_projection() -> mat4x4 { let _e2 = G.wire_color; let _e5 = G.select_color; let _e8 = G.active_color; let _e11 = G.grid; return mat4x4(_e2, _e5, _e8, _e11); } fn hedra_godot_uv(uv_1: vec2) -> vec2 { return vec2(uv_1.x, (1f - uv_1.y)); } fn hedra_transparent() -> bool { var local_20: bool; var local_21: bool; if HEDRA_ALPHA { local_20 = true; } else { local_20 = false; } let _e5 = local_20; if !(_e5) { local_21 = false; } else { local_21 = true; } let _e11 = local_21; return _e11; } fn hedra_mirrored(flags_1: u32) -> bool { let _e4 = O.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } fn hedra_matrices(model: mat4x4, normal: mat3x3) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; let _e7 = G.view; let _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; let _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; let _e14 = G.view; MODELVIEW_MATRIX = (_e14 * model); let _e19 = G.view; let _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; let _e28 = G.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1f)).xyz; let _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } fn hedra_begin_vertex(pos: vec3, normal_1: vec3, tangent: vec4, uv_2: vec2, uv2_: vec2, color: vec4, vid_3: u32) { var local_22: bool; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); let _e17 = hedra_godot_uv(uv_2); UV = _e17; let _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = i32(vid_3); POSITION = vec4(1f); if HEDRA_WORLD_VERTEX_COORDS { local_22 = true; } else { local_22 = false; } let _e31 = local_22; if _e31 { let _e34 = MODEL_MATRIX; let _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1f)).xyz; let _e43 = MODEL_NORMAL_MATRIX; let _e45 = NORMAL; NORMAL = (_e43 * _e45); let _e49 = MODEL_NORMAL_MATRIX; let _e51 = TANGENT; TANGENT = (_e49 * _e51); let _e55 = MODEL_NORMAL_MATRIX; let _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } fn hedra_end_vertex(world_10: vec4, n_8: vec3, t: vec3, tw: f32, flags_2: u32) -> CustomOut { var out_2: CustomOut; let _e9 = G.view_proj; out_2.clip = (_e9 * world_10); if HEDRA_USES_POSITION { let _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); let _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); let _e28 = COLOR; out_2.color = _e28; let _e31 = UV2_; out_2.uv2_ = _e31; let _e34 = INSTANCE_ID; out_2.instance_id = u32(max(_e34, 0i)); hedra_store_varyings((&out_2)); let _e38 = out_2; return _e38; } fn hedra_vertex_space() -> bool { var local_23: bool; if true { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } let _e5 = local_23; return _e5; } fn hedra_vertex_world() -> vec4 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e2 = INV_VIEW_MATRIX; let _e4 = VERTEX; return (_e2 * vec4(_e4, 1f)); } let _e9 = VERTEX; return vec4(_e9, 1f); } fn hedra_vertex_dir(d_11: vec3) -> vec3 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e3 = INV_VIEW_MATRIX; let _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } fn hedra_tangent_sign(w: f32, flip: bool) -> f32 { let _e5 = O.extra.x; return (w * select(1f, -1f, (((_e5 & OBJ_MIRRORED) != 0u) != flip))); } fn hedra_fragment(in_7: CustomOut, facing_4: bool) { var t_1: vec3; var nm: vec3; let _e3 = hedra_mirrored(in_7.flags); let front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; let _e14 = G.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); let _e19 = O.model; let _e22 = O.normal; let _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); let _e26 = G.view; let _e27 = hedra_mat3_(_e26); let n_geo_2 = select(-(normalize(in_7.normal)), normalize(in_7.normal), front); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; let _e41 = t_1; let _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); let _e47 = t_1; let b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); let _e55 = G.view; VERTEX = (_e55 * vec4(in_7.world, 1f)).xyz; let _e63 = VERTEX; LIGHT_VERTEX = _e63; let vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); let normal0_ = NORMAL; let _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); let _e80 = VERTEX; let _e90 = G.camera_pos.w; VIEW = select(normalize(-(_e80)), vec3(0f, 0f, 1f), (_e90 > 0.5f)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5f); NORMAL_MAP_DEPTH = 1f; ALBEDO = vec3(1f); ALPHA = 1f; ALPHA_SCISSOR_THRESHOLD = 1f; PREMUL_ALPHA_FACTOR = 1f; METALLIC = 0f; SPECULAR = 0.5f; ROUGHNESS = 1f; RIM = 0f; RIM_TINT = 0f; BACKLIGHT = vec3(0f); AO = 1f; AO_LIGHT_AFFECT = 0f; EMISSION = vec3(0f); hedra_load_varyings(in_7); fragment(); let back_2 = transpose(_e27); let _e136 = NORMAL; if any((_e136 != normal0_)) { let _e141 = NORMAL; hedra_n = normalize((back_2 * _e141)); } let _e145 = NORMAL_MAP; if any((_e145 != vec3(0.5f))) { let _e151 = NORMAL_MAP; nm = _e151; let _e153 = nm; nm = vec3(((_e153.xy * 2f) - vec2(1f)), 0f); let _e163 = nm; let _e165 = nm; nm.z = sqrt(max(0f, (1f - dot(_e163.xy, _e165.xy)))); let _e175 = NORMAL; let _e177 = TANGENT; let _e179 = nm.x; let _e182 = BINORMAL; let _e184 = nm.y; let _e188 = NORMAL; let _e190 = nm.z; let _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); let _e199 = NORMAL; hedra_n = normalize((back_2 * _e199)); } let _e203 = LIGHT_VERTEX; if any((_e203 != vertex0_)) { let _e208 = INV_VIEW_MATRIX; let _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1f)).xyz; return; } else { return; } } fn hedra_culled(flags_3: u32) -> bool { var local_24: bool; var local_25: bool; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if false { let _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } let _e12 = local_24; if _e12 { return true; } if HEDRA_ALPHA_SCISSOR { let _e18 = ALPHA; let _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = (_e18 < _e20); } else { local_25 = false; } let _e23 = local_25; return _e23; } fn hedra_view_dir(world_11: vec3) -> vec3 { let _e5 = G.view[0][2]; let _e10 = G.view[1][2]; let _e15 = G.view[2][2]; let view_dir = vec3(_e5, _e10, _e15); let _e19 = G.camera_pos; let _e27 = G.camera_pos.w; return select(normalize((_e19.xyz - world_11)), normalize(view_dir), (_e27 > 0.5f)); } fn hedra_schlick(u: f32) -> f32 { let m_5 = clamp((1f - u), 0f, 1f); let m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } fn hedra_diffuse_brdf(nl_1: f32, nv_2: f32, lh: f32, r_4: f32) -> f32 { let c_nl = max(nl_1, 0f); if false { return (max(0f, ((nl_1 + r_4) / ((1f + r_4) * (1f + r_4)))) * 0.31830987f); } if false { return (smoothstep(-(r_4), max(r_4, 0.01f), nl_1) * 0.31830987f); } if false { let fd90_ = ((((2f * lh) * lh) * r_4) - 0.5f); let _e32 = hedra_schlick(nv_2); let fdv = (1f + (fd90_ * _e32)); let _e36 = hedra_schlick(c_nl); let fdl = (1f + (fd90_ * _e36)); return (((0.31830987f * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987f); } fn hedra_light_modes(n_9: vec3, v_3: vec3, l_3: vec3, radiance_2: vec3, diffuse_1: vec3, f0_2: vec3, a2_3: f32, r_5: f32, specular_1: f32) -> vec3 { var c_21: vec3; var mid: f32; var local_26: bool; let nl_3 = min(dot(n_9, l_3), 1f); let nv_4 = max(dot(n_9, v_3), 0.0001f); let h_3 = normalize((l_3 + v_3)); let lh_1 = clamp(dot(l_3, h_3), 0f, 1f); let _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_21 = ((diffuse_1 * _e21) * radiance_2); if (r_5 > 0f) { if false { let refl = normalize(-(reflect(l_3, n_9))); let rv = dot(refl, v_3); mid = (1f - r_5); let _e35 = mid; let _e36 = mid; mid = (_e35 * _e36); let _e38 = c_21; let _e40 = mid; let _e44 = mid; let _e49 = mid; c_21 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5f)), (_e44 + (r_5 * 0.5f)), rv) * _e49) * specular_1))); } else { if false { local_26 = (nl_3 > 0f); } else { local_26 = false; } let _e60 = local_26; if _e60 { let nh_2 = max(dot(n_9, h_3), 0f); let vh_2 = max(dot(v_3, h_3), 0f); let _e67 = f_schlick(f0_2, vh_2); let _e68 = c_21; let _e69 = d_ggx(nh_2, a2_3); let _e70 = v_smith(nl_3, nv_4, a2_3); c_21 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } let _e77 = c_21; return _e77; } fn hedra_light_dir(i_11: u32, world_12: vec3) -> vec4 { var atten_1: f32; let li_1 = Lit.lights[i_11]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return vec4(-(li_1.direction.xyz), 1f); } let rel_1 = (li_1.position.xyz - world_12); let d_16 = length(rel_1); let l_7 = (rel_1 / vec3(max(d_16, 0.000001f))); let _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { let cone = li_1.spot.x; let scos = max(dot(-(l_7), li_1.direction.xyz), cone); let rim_1 = max(0.0001f, ((1f - scos) / max((1f - cone), 0.000001f))); let _e49 = atten_1; atten_1 = (_e49 * (1f - pow(rim_1, li_1.spot.y))); } let _e56 = atten_1; return vec4(l_7, _e56); } fn hedra_shadow(i_12: u32, l_4: vec3) -> f32 { var local_27: bool; if false { let _e10 = Lit.lights[i_12].info.y; local_27 = (_e10 != LIGHT_SHADOWED); } else { local_27 = true; } let _e14 = local_27; if _e14 { return 1f; } let _e17 = hedra_world; let _e19 = hedra_n_geo; let _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } fn hedra_ambient(n_10: vec3, v_4: vec3, diffuse_2: vec3, f0_3: vec3, roughness_3: f32, metallic: f32) -> vec3 { var ambient: vec3; var diffuse_amb: vec3; var spec_amb: vec3; var dif: vec3; var dif_1: vec3; var dif_2: vec3; let world_13 = hedra_world; let nv_5 = max(dot(n_10, v_4), 0.0001f); let f_amb = (f0_3 + ((max(vec3((1f - roughness_3)), f0_3) - f0_3) * pow((1f - nv_5), 5f))); let _e25 = gi_diffuse(n_10, false, vec3(0f)); let _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { let _e38 = Sky.ibl.x; let _e42 = Sky.sun.w; let scale = (_e38 * _e42); let _e46 = Sky.ambient; diffuse_amb = _e46.xyz; let _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { let _e59 = Sky.ambient; let _e61 = sky_dir(n_10); let _e62 = sh_irradiance(_e61); let _e67 = Sky.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if (_e25.w > 0f) { diffuse_amb = _e25.xyz; } let _e75 = Sky.ambient; spec_amb = _e75.xyz; let _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { let _e88 = sky_dir(reflect(-(v_4), n_10)); let _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { let _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = vec3(0f); } } let _e101 = env_brdf_approx(roughness_3, nv_5); let _e105 = Probe.counts.x; if (_e105 > 0u) { let _e113 = O.extra.z; let _e114 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e113); let _e115 = spec_amb; let spec_1 = ((_e115 * (1f - _e114.w)) + _e114.xyz); let _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0f) { let _e130 = O.extra.z; let _e131 = probe_ambient(world_13, n_10, _e130); let _e132 = diffuse_amb; dif = ((_e132 * (1f - _e131.w)) + _e131.xyz); } let _e139 = dif; ambient = ((diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } else { let _e154 = diffuse_amb; let _e156 = spec_amb; ambient = ((diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } } else { let _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { let _e180 = Lit.up; let up = _e180.xyz; let _e184 = Lit.sky_top; let _e188 = Lit.sky_horizon; let sky_avg = ((_e184.xyz + _e188.xyz) * 0.5f); let _e195 = Lit.ground_horizon; let _e199 = Lit.ground_bottom; let ground_avg = ((_e195.xyz + _e199.xyz) * 0.5f); let irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up) * 0.5f) + 0.5f), 0f, 1f)); let _e215 = sky(reflect(-(v_4), n_10)); let blurred = mix(_e215, sky_avg, roughness_3); let _e220 = Probe.counts.x; if (_e220 > 0u) { let _e228 = O.extra.z; let _e229 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e228); let _e233 = Lit.ambient.w; let spec_2 = (((blurred * _e233) * (1f - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if (_e25.w <= 0f) { let _e249 = O.extra.z; let _e250 = probe_ambient(world_13, n_10, _e249); let _e254 = Lit.ambient.w; dif_1 = (((irradiance * _e254) * (1f - _e250.w)) + _e250.xyz); } let _e262 = dif_1; ambient = ((diffuse_2 * _e262) + (spec_2 * f_amb)); } else { if (_e25.w > 0f) { let _e275 = Lit.ambient.w; ambient = ((diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { let _e284 = Lit.ambient.w; ambient = (((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284); } } } else { let _e289 = Probe.counts.x; if (_e289 > 0u) { let _e297 = O.extra.z; let _e298 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e297); let _e301 = Lit.ambient; let spec_3 = ((_e301.xyz * (1f - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if (_e25.w <= 0f) { let _e317 = O.extra.z; let _e318 = probe_ambient(world_13, n_10, _e317); let _e321 = Lit.ambient; dif_2 = ((_e321.xyz * (1f - _e318.w)) + _e318.xyz); } let _e329 = dif_2; ambient = ((diffuse_2 * _e329) + (spec_3 * f_amb)); } else { if (_e25.w > 0f) { let _e340 = Lit.ambient; ambient = ((diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb)); } else { let _e346 = Lit.ambient; ambient = (_e346.xyz * (diffuse_2 + f_amb)); } } } } let _e350 = ambient; return _e350; } fn hedra_fog(c_in_1: vec3, v_5: vec3) -> vec3 { var c_22: vec3; c_22 = c_in_1; if HEDRA_FOG_DISABLED { let _e4 = c_22; return _e4; } let _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { let _e13 = c_22; let _e15 = hedra_world; let _e17 = surface_fog(_e13, _e15, -(v_5)); c_22 = _e17; } let _e21 = O.decals.w; if (_e21 != 0u) { let _e24 = c_22; let _e26 = hedra_world; let _e30 = O.decals.w; let _e31 = fog_volumes(_e24, _e26, _e30); c_22 = _e31; } let _e32 = c_22; return _e32; } fn hedra_lit(clip: vec4) -> vec3 { var surf_1: DecalSurface; var c_23: vec3 = vec3(0f); var k_11: u32 = 0u; var local_28: bool; var radiance_3: vec3; var local_29: bool; var local_30: bool; var ambient_1: vec3 = vec3(0f); var local_31: bool; let n_geo_3 = hedra_n_geo; let _e4 = ALBEDO; let _e6 = METALLIC; let _e11 = ROUGHNESS; let _e16 = AO; let _e18 = hedra_n; let _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0f, 1f), clamp(_e11, 0.045f, 1f), _e16, _e18, _e20); let _e26 = O.decals.z; if (_e26 > 0u) { let _e30 = hedra_world; let _e31 = surf_1; let _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; let _e35 = surf_1.base; ALBEDO = _e35; let _e38 = surf_1.metallic; METALLIC = _e38; let _e41 = surf_1.roughness; ROUGHNESS = _e41; let _e45 = G.view; let _e46 = hedra_mat3_(_e45); let _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } let metallic_1 = surf_1.metallic; let roughness_4 = surf_1.roughness; let a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); let base = surf_1.base; let diffuse_3 = (base * (1f - metallic_1)); let _e64 = SPECULAR; let _e68 = SPECULAR; let f0_4 = mix(vec3(((0.16f * _e64) * _e68)), base, metallic_1); let n_13 = surf_1.normal; let _e75 = hedra_world; let _e76 = hedra_view_dir(_e75); let _e79 = G.view; let _e80 = hedra_mat3_(_e79); let _e82 = surf_1.occlusion; let _e84 = AO_LIGHT_AFFECT; let ao_direct = mix(1f, _e82, _e84); DIFFUSE_LIGHT = vec3(0f); SPECULAR_LIGHT = vec3(0f); let _e96 = object_light_count(); loop { let _e99 = k_11; if (_e99 < _e96) { } else { break; } { let _e101 = k_11; let _e102 = object_light(_e101); let li_2 = Lit.lights[_e102]; let _e108 = hedra_world; let _e109 = hedra_light_dir(_e102, _e108); let l_8 = _e109.xyz; let atten_2 = _e109.w; if HEDRA_HAS_LIGHT { if !((li_2.info.x == LIGHT_DIRECTIONAL)) { local_28 = (atten_2 > 0f); } else { local_28 = true; } let _e123 = local_28; if _e123 { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; let _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } let _e142 = RIM; if (_e142 > 0f) { let rim_light = pow(max(0.0001f, (1f - max(dot(n_13, _e76), 0.0001f))), max(0f, ((1f - roughness_4) * 16f))); let _e159 = c_23; let _e164 = RIM; let _e170 = RIM_TINT; c_23 = (_e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1f), base, _e170))); } if (atten_2 > 0f) { radiance_3 = (li_2.color.xyz * atten_2); if (li_2.info.y == LIGHT_SHADOWED) { local_29 = false; } else { local_29 = false; } let _e188 = local_29; if _e188 { let _e192 = hedra_world; let _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if true { local_30 = false; } else { local_30 = false; } let _e201 = local_30; if _e201 { let _e202 = c_23; let _e203 = radiance_3; let _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_23 = (_e202 + _e206); } else { let _e208 = c_23; let _e209 = radiance_3; let _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_23 = (_e208 + _e212); } let _e215 = BACKLIGHT; if any((_e215 > vec3(0f))) { let nl_4 = max(min(dot(n_13, l_8), 1f), 0f); let _e225 = c_23; let _e226 = radiance_3; let _e229 = BACKLIGHT; c_23 = (_e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987f - (nl_4 * 0.31830987f)))); } } } continuing { let _e238 = k_11; k_11 = (_e238 + 1u); } } if HEDRA_HAS_LIGHT { let _e242 = DIFFUSE_LIGHT; let _e249 = SPECULAR_LIGHT; c_23 = ((((_e242 * base) * ao_direct) * (1f - metallic_1)) + (_e249 * ao_direct)); } else { let _e253 = AO_LIGHT_AFFECT; if (_e253 > 0f) { let _e256 = c_23; c_23 = (_e256 * ao_direct); } } if false { let _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } let _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { let _e273 = hedra_transparent(); local_31 = !(_e273); } else { local_31 = false; } let _e276 = local_31; if _e276 { let _e282 = textureLoad(t_ao, vec2(floor(clip.xy)), 0i); let ssao = _e282.x; let _e284 = c_23; let _e286 = surf_1.occlusion; let _e291 = Lit.tone.z; let _e295 = Lit.tone.w; c_23 = (_e284 * mix(1f, min(ssao, _e286), (_e291 * _e295))); let _e300 = c_23; let _e301 = ambient_1; let _e303 = surf_1.occlusion; c_23 = (_e300 + (_e301 * min(_e303, ssao))); } else { let _e307 = c_23; let _e308 = ambient_1; let _e310 = surf_1.occlusion; c_23 = (_e307 + (_e308 * _e310)); } let _e313 = c_23; let _e315 = surf_1.emission; c_23 = (_e313 + _e315); let _e317 = c_23; let _e318 = hedra_fog(_e317, _e76); let _e319 = tonemap(_e318); return _e319; } fn hedra_output(c_24: vec3) -> vec4 { var rgb: vec3; rgb = c_24; if false { let _e3 = rgb; let _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } let _e7 = rgb; let _e9 = ALPHA; let _e10 = hedra_transparent(); let o_9 = vec4(_e7, select(1f, _e9, _e10)); let _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return vec4(max(o_9.xyz, vec3(0f)), clamp(o_9.w, 0f, 1f)); } let k_17 = clamp(o_9, vec4(0f), vec4(1f)); let _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { let _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } fn hedra_bindings() -> vec3 { let uv_7 = vec2(0.5f); let _e5 = textureSampleLevel(t_panorama, s_panorama, uv_7, 0f); let _e11 = textureSampleLevel(t_lightmap, s_lightmap, uv_7, 0i, 0f); let _e17 = textureSampleLevel(t_screen, s_radiance, uv_7, 0f); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } @vertex fn vs_custom(in: VsIn, @location(10) uv1_: vec2, @builtin(vertex_index) vid: u32) -> CustomOut { let _e5 = O.model; let _e8 = O.normal; let _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, vec4(1f), vid); vertex(); let _e24 = hedra_tangent_sign(in.tangent.w, false); let _e25 = hedra_vertex_space(); if _e25 { let _e26 = hedra_vertex_world(); let _e28 = NORMAL; let _e29 = hedra_vertex_dir(_e28); let _e31 = TANGENT; let _e32 = hedra_vertex_dir(_e31); let _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags); return _e34; } let _e37 = O.model; let _e39 = VERTEX; let world_14 = (_e37 * vec4(_e39, 1f)); let _e45 = O.normal; let _e47 = NORMAL; let n_14 = (_e45 * vec4(_e47, 0f)).xyz; let _e54 = O.model; let _e56 = TANGENT; let t_10 = (_e54 * vec4(_e56, 0f)).xyz; let _e62 = hedra_end_vertex(world_14, n_14, t_10, _e24, in.flags); return _e62; } @vertex fn vs_custom_instanced(in_1: VsIn, inst: InstIn, @location(10) uv1_1: vec2, extra: HedraInstExtra, @builtin(vertex_index) vid_1: u32) -> CustomOut { let bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); let by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); let bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); let det = dot(bx, cross(by, bz)); let flip_1 = (det < 0f); let cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * select(1f, -1f, flip_1)); let basis = mat4x4(vec4(bx, 0f), vec4(by, 0f), vec4(bz, 0f), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1f)); let _e55 = O.model; let _e59 = O.normal; let _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); let flags_4 = (in_1.flags | select(0u, F_INSTANCE_MIRRORED, flip_1)); let _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); let _e80 = hedra_vertex_space(); if _e80 { let _e81 = hedra_vertex_world(); let _e83 = NORMAL; let _e84 = hedra_vertex_dir(_e83); let _e86 = TANGENT; let _e87 = hedra_vertex_dir(_e86); let _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); return _e88; } let _e90 = VERTEX; let p1_ = vec4(_e90, 1f); let local_32 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); let _e102 = O.model; let world_15 = (_e102 * vec4(local_32, 1f)); let _e108 = O.normal; let _e110 = NORMAL; let n_15 = (_e108 * vec4((cofactor * _e110), 0f)).xyz; let _e118 = O.model; let _e121 = TANGENT; let t_11 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0f)).xyz; let _e127 = hedra_end_vertex(world_15, n_15, t_11, _e79, flags_4); return _e127; } @vertex fn vs_custom_skinned(in_2: VsIn, s: SkinIn, @location(10) uv1_2: vec2, @builtin(vertex_index) vid_2: u32) -> CustomOut { let _e4 = skin_rows(s); let p_12 = vec4(in_2.pos, 1f); let skinned = vec3(dot(_e4.r0_, p_12), dot(_e4.r1_, p_12), dot(_e4.r2_, p_12)); let bx_1 = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); let by_1 = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); let bz_1 = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); let det_1 = dot(bx_1, cross(by_1, bz_1)); let flip_2 = (det_1 < 0f); let cofactor_1 = mat3x3(cross(by_1, bz_1), cross(bz_1, bx_1), cross(bx_1, by_1)); let n0_ = normalize(((cofactor_1 * in_2.normal) * select(1f, -1f, flip_2))); let t0_1 = normalize((mat3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz)); let _e58 = O.model; let _e61 = O.normal; let _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1f), vid_2); vertex(); let flags_5 = (in_2.flags | select(0u, F_INSTANCE_MIRRORED, flip_2)); let _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2); let _e82 = hedra_vertex_space(); if _e82 { let _e83 = hedra_vertex_world(); let _e85 = NORMAL; let _e86 = hedra_vertex_dir(_e85); let _e88 = TANGENT; let _e89 = hedra_vertex_dir(_e88); let _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5); return _e90; } let _e93 = O.model; let _e95 = VERTEX; let world_16 = (_e93 * vec4(_e95, 1f)); let _e101 = O.normal; let _e103 = NORMAL; let n_16 = (_e101 * vec4(_e103, 0f)).xyz; let _e110 = O.model; let _e112 = TANGENT; let t_12 = (_e110 * vec4(_e112, 0f)).xyz; let _e117 = hedra_end_vertex(world_16, n_16, t_12, _e81, flags_5); return _e117; } @fragment fn fs_custom(in_3: CustomOut, @builtin(front_facing) facing: bool) -> @location(0) vec4 { var c: vec3; hedra_fragment(in_3, facing); let _e3 = hedra_culled(in_3.flags); if _e3 { discard; } let _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if (_e7 <= 0f) { discard; } if HEDRA_UNSHADED { let _e13 = ALBEDO; let _e15 = hedra_world; let _e16 = hedra_view_dir(_e15); let _e17 = hedra_fog(_e13, _e16); let _e18 = tonemap(_e17); c = _e18; } else { let _e20 = hedra_lit(in_3.clip); c = _e20; } let _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { let _e27 = c; let _e28 = hedra_bindings(); c = (_e27 + _e28); } let _e33 = G.params.x; if (_e33 == SHADE_LIT) { let _e36 = c; let _e37 = item_fade(_e36); let _e38 = emerge_tint(_e37, _e7); c = _e38; } let _e39 = c; let _e40 = hedra_output(_e39); return _e40; } @fragment fn fs_custom_depth(in_4: CustomOut, @builtin(front_facing) facing_1: bool) { var local: bool; var local_1: bool; hedra_fragment(in_4, facing_1); if !(((in_4.flags & F_HIDDEN) != 0u)) { if HEDRA_ALPHA_SCISSOR { let _e14 = ALPHA; let _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } let _e19 = local_1; local = _e19; } else { local = true; } let _e21 = local; if _e21 { discard; } let _e25 = emerge_reveal(in_4.world, vec2(-1f)); if (_e25 <= 0f) { discard; } else { return; } } @fragment fn fs_custom_id(in_5: CustomOut, @builtin(front_facing) facing_2: bool) -> IdOut { var local_2: bool; var out: IdOut; hedra_fragment(in_5, facing_2); let _e3 = hedra_culled(in_5.flags); if !(_e3) { let _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0f); } else { local_2 = true; } let _e14 = local_2; if _e14 { discard; } let id = O.params.z; let _e24 = O.params.x; let _e33 = O.params.y; let bits = (select(0u, 1u, (_e24 == 1u)) | select(0u, 2u, (_e33 == 1u))); out.id = (vec4(f32((id & 255u)), f32(((id >> 8u) & 255u)), f32(((id >> 16u) & 255u)), f32(bits)) / vec4(255f)); let _e58 = out; return _e58; } @fragment fn fs_custom_normal_depth(in_6: CustomOut, @builtin(front_facing) facing_3: bool) -> HedraNormalDepthOut { var local_3: bool; var out_1: HedraNormalDepthOut; hedra_fragment(in_6, facing_3); let _e3 = hedra_culled(in_6.flags); if !(_e3) { let _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0f); } else { local_3 = true; } let _e14 = local_3; if _e14 { discard; } let _e17 = G.view; let _e18 = hedra_mat3_(_e17); let _e20 = hedra_n; let n_view = normalize((_e18 * _e20)); let _e24 = METALLIC; let metallic_2 = clamp(_e24, 0f, 1f); let _e29 = SPECULAR; let _e33 = SPECULAR; let _e37 = ALBEDO; let f0_5 = mix(vec3(((0.16f * _e29) * _e33)), _e37, metallic_2); let _e43 = G.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1f)).z)); let _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_5, vec3(0f), vec3(1f)), clamp(_e58, 0.045f, 1f)); let _e63 = out_1; return _e63; }  @Ð Ð/ ,@ ˜J£&ѰA¬ËÎ-”ÒÑ'‰nÛgnW_7hh'· vs_custommainé†#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = true; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = true; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_2Vertex { HedraParams _group_2_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } vec3 psx_encode_srgb(vec3 c_19) { vec3 lo_2 = (c_19 * 12.92); vec3 hi_2 = ((1.055 * pow(max(c_19, vec3(0.0)), vec3(0.41666666))) - vec3(0.055)); return mix(hi_2, lo_2, lessThanEqual(c_19, vec3(0.0031308))); } vec3 psx_decode_srgb(vec3 c_20) { vec3 lo_3 = (c_20 / vec3(12.92)); vec3 hi_3 = pow(((c_20 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_3, lo_3, lessThanEqual(c_20, vec3(0.04045))); } void vertex() { vec2 extent = vec2(1.0, 1.0); float _e3 = _group_2_binding_0_vs.low_res.x; float _e7 = _group_2_binding_0_vs.low_res.y; float target_aspect = (_e3 / _e7); vec4 _e11 = _group_0_binding_0_vs.viewport; vec4 _e16 = _group_0_binding_0_vs.viewport; float view_aspect = (_e11.xy.x / max(_e16.xy.y, 1.0)); if ((view_aspect > target_aspect)) { extent.x = (target_aspect / view_aspect); } else { extent.y = (view_aspect / target_aspect); } float _e33 = _group_2_binding_0_vs.integer_scale; if ((_e33 > 0.5)) { float _e37 = extent.y; vec4 _e40 = _group_0_binding_0_vs.viewport; float shown = (_e37 * _e40.xy.y); float _e47 = _group_2_binding_0_vs.low_res.y; float whole = floor((shown / _e47)); if ((whole >= 1.0)) { vec2 _e52 = extent; float _e56 = _group_2_binding_0_vs.low_res.y; extent = (_e52 * ((whole * _e56) / shown)); } } vec3 _e62 = VERTEX; vec2 _e66 = extent; POSITION = vec4(((_e62.xy * 2.0) * _e66), 0.5, 1.0); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_22 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_22 = true; } else { local_22 = false; } bool _e31 = local_22; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_23 = false; if (true) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_21 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_21 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_21; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_21 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_21; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_21 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_21; return _e77; } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); vec2 uv1_ = _p2vs_location10; uint vid = uint(gl_VertexID); mat4x4 _e5 = _group_1_binding_0_vs.model; mat4x4 _e8 = _group_1_binding_0_vs.normal; mat3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(in_.pos, in_.normal, in_.tangent, in_.uv, uv1_, vec4(1.0), vid); vertex(); float _e24 = hedra_tangent_sign(in_.tangent.w, false); bool _e25 = hedra_vertex_space(); if (_e25) { vec4 _e26 = hedra_vertex_world(); vec3 _e28 = NORMAL; vec3 _e29 = hedra_vertex_dir(_e28); vec3 _e31 = TANGENT; vec3 _e32 = hedra_vertex_dir(_e31); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in_.flags); gl_Position = _e34.clip; _vs2fs_location0 = _e34.world; _vs2fs_location1 = _e34.normal; _vs2fs_location2 = _e34.uv; _vs2fs_location3 = _e34.flags; _vs2fs_location4 = _e34.tangent; _vs2fs_location5 = _e34.color; _vs2fs_location6 = _e34.uv2_; _vs2fs_location7 = _e34.instance_id; _vs2fs_location8 = _e34.hedra_v0_; _vs2fs_location9 = _e34.hedra_v1_; _vs2fs_location10 = _e34.hedra_v2_; _vs2fs_location11 = _e34.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e37 = _group_1_binding_0_vs.model; vec3 _e39 = VERTEX; vec4 world_13 = (_e37 * vec4(_e39, 1.0)); mat4x4 _e45 = _group_1_binding_0_vs.normal; vec3 _e47 = NORMAL; vec3 n_11 = (_e45 * vec4(_e47, 0.0)).xyz; mat4x4 _e54 = _group_1_binding_0_vs.model; vec3 _e56 = TANGENT; vec3 t_5 = (_e54 * vec4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_13, n_11, t_5, _e24, in_.flags); gl_Position = _e62.clip; _vs2fs_location0 = _e62.world; _vs2fs_location1 = _e62.normal; _vs2fs_location2 = _e62.uv; _vs2fs_location3 = _e62.flags; _vs2fs_location4 = _e62.tangent; _vs2fs_location5 = _e62.color; _vs2fs_location6 = _e62.uv2_; _vs2fs_location7 = _e62.instance_id; _vs2fs_location8 = _e62.hedra_v0_; _vs2fs_location9 = _e62.hedra_v1_; _vs2fs_location10 = _e62.hedra_v2_; _vs2fs_location11 = _e62.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_instancedmainË‹#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = true; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = true; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_2Vertex { HedraParams _group_2_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec2 _p2vs_location10; layout(location = 14) in vec4 _p2vs_location14; layout(location = 15) in float _p2vs_location15; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } vec3 psx_encode_srgb(vec3 c_19) { vec3 lo_2 = (c_19 * 12.92); vec3 hi_2 = ((1.055 * pow(max(c_19, vec3(0.0)), vec3(0.41666666))) - vec3(0.055)); return mix(hi_2, lo_2, lessThanEqual(c_19, vec3(0.0031308))); } vec3 psx_decode_srgb(vec3 c_20) { vec3 lo_3 = (c_20 / vec3(12.92)); vec3 hi_3 = pow(((c_20 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_3, lo_3, lessThanEqual(c_20, vec3(0.04045))); } void vertex() { vec2 extent = vec2(1.0, 1.0); float _e3 = _group_2_binding_0_vs.low_res.x; float _e7 = _group_2_binding_0_vs.low_res.y; float target_aspect = (_e3 / _e7); vec4 _e11 = _group_0_binding_0_vs.viewport; vec4 _e16 = _group_0_binding_0_vs.viewport; float view_aspect = (_e11.xy.x / max(_e16.xy.y, 1.0)); if ((view_aspect > target_aspect)) { extent.x = (target_aspect / view_aspect); } else { extent.y = (view_aspect / target_aspect); } float _e33 = _group_2_binding_0_vs.integer_scale; if ((_e33 > 0.5)) { float _e37 = extent.y; vec4 _e40 = _group_0_binding_0_vs.viewport; float shown = (_e37 * _e40.xy.y); float _e47 = _group_2_binding_0_vs.low_res.y; float whole = floor((shown / _e47)); if ((whole >= 1.0)) { vec2 _e52 = extent; float _e56 = _group_2_binding_0_vs.low_res.y; extent = (_e52 * ((whole * _e56) / shown)); } } vec3 _e62 = VERTEX; vec2 _e66 = extent; POSITION = vec4(((_e62.xy * 2.0) * _e66), 0.5, 1.0); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_22 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_22 = true; } else { local_22 = false; } bool _e31 = local_22; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_23 = false; if (true) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_21 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_21 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_21; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_21 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_21; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_21 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_21; return _e77; } void main() { VsIn in_1 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); InstIn inst = InstIn(_p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9); vec2 uv1_1 = _p2vs_location10; HedraInstExtra extra = HedraInstExtra(_p2vs_location14, _p2vs_location15); uint vid_1 = uint(gl_VertexID); vec3 bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); vec3 by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); vec3 bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * (flip_1 ? -1.0 : 1.0)); mat4x4 basis = mat4x4(vec4(bx, 0.0), vec4(by, 0.0), vec4(bz, 0.0), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); mat4x4 _e55 = _group_1_binding_0_vs.model; mat4x4 _e59 = _group_1_binding_0_vs.normal; mat3x3 _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = int(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); uint flags_4 = (in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); bool _e80 = hedra_vertex_space(); if (_e80) { vec4 _e81 = hedra_vertex_world(); vec3 _e83 = NORMAL; vec3 _e84 = hedra_vertex_dir(_e83); vec3 _e86 = TANGENT; vec3 _e87 = hedra_vertex_dir(_e86); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); gl_Position = _e88.clip; _vs2fs_location0 = _e88.world; _vs2fs_location1 = _e88.normal; _vs2fs_location2 = _e88.uv; _vs2fs_location3 = _e88.flags; _vs2fs_location4 = _e88.tangent; _vs2fs_location5 = _e88.color; _vs2fs_location6 = _e88.uv2_; _vs2fs_location7 = _e88.instance_id; _vs2fs_location8 = _e88.hedra_v0_; _vs2fs_location9 = _e88.hedra_v1_; _vs2fs_location10 = _e88.hedra_v2_; _vs2fs_location11 = _e88.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vec3 _e90 = VERTEX; vec4 p1_ = vec4(_e90, 1.0); vec3 local_32 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); mat4x4 _e102 = _group_1_binding_0_vs.model; vec4 world_13 = (_e102 * vec4(local_32, 1.0)); mat4x4 _e108 = _group_1_binding_0_vs.normal; vec3 _e110 = NORMAL; vec3 n_11 = (_e108 * vec4((cofactor * _e110), 0.0)).xyz; mat4x4 _e118 = _group_1_binding_0_vs.model; vec3 _e121 = TANGENT; vec3 t_5 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_13, n_11, t_5, _e79, flags_4); gl_Position = _e127.clip; _vs2fs_location0 = _e127.world; _vs2fs_location1 = _e127.normal; _vs2fs_location2 = _e127.uv; _vs2fs_location3 = _e127.flags; _vs2fs_location4 = _e127.tangent; _vs2fs_location5 = _e127.color; _vs2fs_location6 = _e127.uv2_; _vs2fs_location7 = _e127.instance_id; _vs2fs_location8 = _e127.hedra_v0_; _vs2fs_location9 = _e127.hedra_v1_; _vs2fs_location10 = _e127.hedra_v2_; _vs2fs_location11 = _e127.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_skinnedmainŒŽ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = true; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = true; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(std140) uniform SkinU_block_2Vertex { SkinU _group_1_binding_1_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_3Vertex { HedraParams _group_2_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 12) in uvec4 _p2vs_location12; layout(location = 13) in vec4 _p2vs_location13; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } vec4 skin_row(uint k_10, uint r_3) { vec4 _e10 = _group_1_binding_1_vs.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } SkinRows skin_rows(SkinIn s_1) { SkinRows m_1 = SkinRows(vec4(0.0), vec4(0.0), vec4(0.0)); uvec4 j = s_1.joints; vec4 w_3 = s_1.weights; vec4 _e8 = skin_row(j.x, 0u); vec4 _e13 = skin_row(j.y, 0u); vec4 _e19 = skin_row(j.z, 0u); vec4 _e25 = skin_row(j.w, 0u); m_1.r0_ = ((((w_3.x * _e8) + (w_3.y * _e13)) + (w_3.z * _e19)) + (w_3.w * _e25)); vec4 _e32 = skin_row(j.x, 1u); vec4 _e37 = skin_row(j.y, 1u); vec4 _e43 = skin_row(j.z, 1u); vec4 _e49 = skin_row(j.w, 1u); m_1.r1_ = ((((w_3.x * _e32) + (w_3.y * _e37)) + (w_3.z * _e43)) + (w_3.w * _e49)); vec4 _e56 = skin_row(j.x, 2u); vec4 _e61 = skin_row(j.y, 2u); vec4 _e67 = skin_row(j.z, 2u); vec4 _e73 = skin_row(j.w, 2u); m_1.r2_ = ((((w_3.x * _e56) + (w_3.y * _e61)) + (w_3.z * _e67)) + (w_3.w * _e73)); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } vec3 psx_encode_srgb(vec3 c_19) { vec3 lo_2 = (c_19 * 12.92); vec3 hi_2 = ((1.055 * pow(max(c_19, vec3(0.0)), vec3(0.41666666))) - vec3(0.055)); return mix(hi_2, lo_2, lessThanEqual(c_19, vec3(0.0031308))); } vec3 psx_decode_srgb(vec3 c_20) { vec3 lo_3 = (c_20 / vec3(12.92)); vec3 hi_3 = pow(((c_20 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_3, lo_3, lessThanEqual(c_20, vec3(0.04045))); } void vertex() { vec2 extent = vec2(1.0, 1.0); float _e3 = _group_2_binding_0_vs.low_res.x; float _e7 = _group_2_binding_0_vs.low_res.y; float target_aspect = (_e3 / _e7); vec4 _e11 = _group_0_binding_0_vs.viewport; vec4 _e16 = _group_0_binding_0_vs.viewport; float view_aspect = (_e11.xy.x / max(_e16.xy.y, 1.0)); if ((view_aspect > target_aspect)) { extent.x = (target_aspect / view_aspect); } else { extent.y = (view_aspect / target_aspect); } float _e33 = _group_2_binding_0_vs.integer_scale; if ((_e33 > 0.5)) { float _e37 = extent.y; vec4 _e40 = _group_0_binding_0_vs.viewport; float shown = (_e37 * _e40.xy.y); float _e47 = _group_2_binding_0_vs.low_res.y; float whole = floor((shown / _e47)); if ((whole >= 1.0)) { vec2 _e52 = extent; float _e56 = _group_2_binding_0_vs.low_res.y; extent = (_e52 * ((whole * _e56) / shown)); } } vec3 _e62 = VERTEX; vec2 _e66 = extent; POSITION = vec4(((_e62.xy * 2.0) * _e66), 0.5, 1.0); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_22 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_22 = true; } else { local_22 = false; } bool _e31 = local_22; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_23 = false; if (true) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_21 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_21 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_21; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_21 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_21; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_21 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_21; return _e77; } void main() { VsIn in_2 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); SkinIn s = SkinIn(_p2vs_location12, _p2vs_location13); vec2 uv1_2 = _p2vs_location10; uint vid_2 = uint(gl_VertexID); SkinRows _e4 = skin_rows(s); vec4 p_8 = vec4(in_2.pos, 1.0); vec3 skinned = vec3(dot(_e4.r0_, p_8), dot(_e4.r1_, p_8), dot(_e4.r2_, p_8)); vec3 bx = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); vec3 by = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); vec3 bz = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n0_ = normalize(((cofactor * in_2.normal) * (flip_1 ? -1.0 : 1.0))); vec3 t0_1 = normalize((mat3x3(bx, by, bz) * in_2.tangent.xyz)); mat4x4 _e58 = _group_1_binding_0_vs.model; mat4x4 _e61 = _group_1_binding_0_vs.normal; mat3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1.0), vid_2); vertex(); uint flags_4 = (in_2.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_1); bool _e82 = hedra_vertex_space(); if (_e82) { vec4 _e83 = hedra_vertex_world(); vec3 _e85 = NORMAL; vec3 _e86 = hedra_vertex_dir(_e85); vec3 _e88 = TANGENT; vec3 _e89 = hedra_vertex_dir(_e88); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_4); gl_Position = _e90.clip; _vs2fs_location0 = _e90.world; _vs2fs_location1 = _e90.normal; _vs2fs_location2 = _e90.uv; _vs2fs_location3 = _e90.flags; _vs2fs_location4 = _e90.tangent; _vs2fs_location5 = _e90.color; _vs2fs_location6 = _e90.uv2_; _vs2fs_location7 = _e90.instance_id; _vs2fs_location8 = _e90.hedra_v0_; _vs2fs_location9 = _e90.hedra_v1_; _vs2fs_location10 = _e90.hedra_v2_; _vs2fs_location11 = _e90.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e93 = _group_1_binding_0_vs.model; vec3 _e95 = VERTEX; vec4 world_13 = (_e93 * vec4(_e95, 1.0)); mat4x4 _e101 = _group_1_binding_0_vs.normal; vec3 _e103 = NORMAL; vec3 n_11 = (_e101 * vec4(_e103, 0.0)).xyz; mat4x4 _e110 = _group_1_binding_0_vs.model; vec3 _e112 = TANGENT; vec3 t_5 = (_e110 * vec4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_13, n_11, t_5, _e81, flags_4); gl_Position = _e117.clip; _vs2fs_location0 = _e117.world; _vs2fs_location1 = _e117.normal; _vs2fs_location2 = _e117.uv; _vs2fs_location3 = _e117.flags; _vs2fs_location4 = _e117.tangent; _vs2fs_location5 = _e117.color; _vs2fs_location6 = _e117.uv2_; _vs2fs_location7 = _e117.instance_id; _vs2fs_location8 = _e117.hedra_v0_; _vs2fs_location9 = _e117.hedra_v1_; _vs2fs_location10 = _e117.hedra_v2_; _vs2fs_location11 = _e117.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_custommain{#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = true; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = true; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform LitU_block_2Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform ShadowU_block_3Fragment { ShadowU _group_0_binding_2_fs; }; uniform highp sampler2DShadow _group_0_binding_3_fs; layout(std140) uniform SkyU_block_4Fragment { SkyU _group_0_binding_5_fs; }; uniform highp samplerCube _group_3_binding_0_fs; uniform highp sampler2D _group_3_binding_1_fs; uniform highp sampler2D _group_0_binding_6_fs; uniform highp sampler2DArray _group_3_binding_4_fs; layout(std140) uniform ProbeU_block_5Fragment { ProbeU _group_0_binding_7_fs; }; uniform highp sampler2D _group_3_binding_6_fs; layout(std140) uniform DecalU_block_6Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; layout(std140) uniform FogU_block_7Fragment { FogU _group_1_binding_5_fs; }; uniform highp sampler2D _group_1_binding_6_fs; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); float SPECULAR_AMOUNT = 0.0; vec3 LIGHT = vec3(0.0); vec3 LIGHT_COLOR = vec3(0.0); bool LIGHT_IS_DIRECTIONAL = false; float ATTENUATION = 0.0; vec3 DIFFUSE_LIGHT = vec3(0.0); vec3 SPECULAR_LIGHT = vec3(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_8Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word_1 = ((k_1 < 4u) ? _e8 : _e4); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_2 = ((k_2 < 4u) ? _e8 : _e4); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local_6 = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_2 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_2.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local_6 = all(lessThanEqual(uvw, vec3(1.0))); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y)); if ((e_2.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1.0, ((dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1); uint live_1 = e_2.flags.x; if ((e_2.layers.x > 0u)) { vec4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_2.modulate); float _e90 = fade; float alpha = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if ((e_2.layers.y > 0u)) { vec4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if ((e_2.layers.z > 0u)) { vec4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if ((e_2.layers.w > 0u)) { vec4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_3 <= 1.5707964)) { float c_25 = (1.0 - (a_3 / 1.5707964)); float k_13 = clamp((1.0 - pow(max((1.0 - c_25), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } float c_26 = ((a_3 - 1.5707964) / 1.5707964); float k_14 = clamp((1.0 - pow(max((1.0 - c_26), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_27 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_27) + c_27) / ((c_27 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_27); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_27, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_27); return _e36; } return c_27; } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_3 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_3 * 1.8) - _e60) / EMERGE_EDGE); } vec3 emerge_tint(vec3 c_6, float r) { bool local_7 = false; uint _e6 = _group_1_binding_0_fs.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = (r >= 1.0); } else { local_7 = true; } bool _e17 = local_7; if ((SPEC_EMERGE ? _e17 : true)) { return c_6; } uint _e23 = _group_1_binding_0_fs.extra.w; vec3 _e26 = srgb_to_linear((vec4(_e23 & 0xFFu, _e23 >> 8 & 0xFFu, _e23 >> 16 & 0xFFu, _e23 >> 24) / 255.0).xyz); vec3 _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0.0, 1.0, r)); } vec3 item_fade(vec3 c_7) { uint _e5 = _group_1_binding_0_fs.extra.x; if ((SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true)) { return c_7; } vec4 f_1 = _group_1_binding_0_fs.normal[3]; vec3 _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec3 procedural_sky(vec3 d_1) { vec3 sky_1 = vec3(0.0); uint i = 0u; float v_6 = acos(clamp(d_1.y, -1.0, 1.0)); vec4 _e8 = _group_0_binding_5_fs.sky_horizon; vec4 _e12 = _group_0_binding_5_fs.sky_top; float _e21 = _group_0_binding_5_fs.sky_top.w; float _e22 = sky_curve((1.0 - (v_6 / 1.5707964)), _e21); float _e27 = _group_0_binding_5_fs.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); uint _e33 = _group_0_binding_5_fs.flags.z; uint suns = min(_e33, SKY_SUNS); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e79 = i; i = (_e79 + 1u); } loop_init_1 = false; uint _e38 = i; if ((_e38 < suns)) { } else { break; } { uint _e42 = i; SunU sun = _group_0_binding_5_fs.suns[_e42]; float size = sun.direction.w; float a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1.0, 1.0)); if ((a_5 < size)) { sky_1 = sun.color.xyz; } else { float _e60 = _group_0_binding_5_fs.sun.x; if ((a_5 < _e60)) { float _e66 = _group_0_binding_5_fs.sun.x; float c2_ = ((a_5 - size) / (_e66 - size)); vec3 _e71 = sky_1; float _e75 = _group_0_binding_5_fs.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } } vec4 _e83 = _group_0_binding_5_fs.ground_horizon; vec4 _e87 = _group_0_binding_5_fs.ground_bottom; float _e96 = _group_0_binding_5_fs.ground_bottom.w; float _e97 = sky_curve(((v_6 - 1.5707964) / 1.5707964), _e96); float _e102 = _group_0_binding_5_fs.ground_horizon.w; vec3 ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); vec3 _e104 = sky_1; float _e112 = _group_0_binding_5_fs.sun.z; return (((d_1.y >= 0.0) ? _e104 : ground) * _e112); } vec3 sh_irradiance(vec3 n_2) { vec3 c_9 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_9 = (_e4.xyz * 0.282095); vec3 _e9 = c_9; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603 * n_2.y))); vec3 _e20 = c_9; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603 * n_2.z))); vec3 _e31 = c_9; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603 * n_2.x))); vec3 _e42 = c_9; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y))); vec3 _e55 = c_9; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z))); vec3 _e68 = c_9; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0)))); vec3 _e85 = c_9; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z))); vec3 _e98 = c_9; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); vec3 _e115 = c_9; return max(_e115, vec3(0.0)); } vec3 radiance_1(vec3 d_3, float roughness) { uint _e5 = _group_0_binding_5_fs.flags.y; float top_1 = float((max(_e5, 1u) - 1u)); vec4 _e14 = textureLod(_group_3_binding_0_fs, vec3(d_3), (roughness * top_1)); return _e14.xyz; } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_10 = vec3(0.0); uint k_4 = 0u; c_10 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_2 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_10; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_10; return _e53; } vec3 sky_fog(vec3 c_11, vec3 dir_2) { vec4 _e4 = _group_0_binding_5_fs.fog_color; float _e9 = _group_0_binding_5_fs.fog_depth.w; vec3 _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); float _e15 = _group_0_binding_5_fs.fog.y; return mix(c_11, _e11, _e15); } vec3 surface_fog(vec3 c_12, vec3 world_3, vec3 dir_3) { float dist = 0.0; float amount = 0.0; vec3 fc_1 = vec3(0.0); bool local_8 = false; mat4x4 _e5 = _group_0_binding_0_fs.view; float depth = -((_e5 * vec4(world_3, 1.0)).z); vec4 _e13 = _group_0_binding_0_fs.camera_pos; dist = distance(world_3, _e13.xyz); float _e20 = _group_0_binding_5_fs.fog_origin.w; if ((_e20 > 0.5)) { float _e26 = _group_0_binding_5_fs.fog_origin.x; dist = max((depth - _e26), 0.0); } uint _e34 = _group_0_binding_5_fs.flags.x; if (((_e34 & SKY_FOG_DEPTH) != 0u)) { float _e42 = _group_0_binding_5_fs.fog_depth.x; float _e46 = _group_0_binding_5_fs.fog_depth.y; float _e47 = dist; float z = smoothstep(_e42, _e46, _e47); float _e54 = _group_0_binding_5_fs.fog_depth.z; float _e63 = _group_0_binding_5_fs.fog.x; amount = (((z > 0.0) ? pow(max(z, 1e-6), _e54) : 0.0) * _e63); } else { float _e65 = dist; float _e70 = _group_0_binding_5_fs.fog.x; amount = (1.0 - exp(min(0.0, (-(_e65) * _e70)))); } float _e80 = _group_0_binding_5_fs.fog.w; if ((abs(_e80) >= 0.0001)) { vec4 _e86 = _group_0_binding_1_fs.up; float y = dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = _group_0_binding_5_fs.fog.z; float _e98 = _group_0_binding_5_fs.fog.w; amount = max(_e89, (1.0 - exp(min(0.0, ((y - _e93) * _e98))))); } float _e106 = amount; amount = clamp(_e106, 0.0, 1.0); vec4 _e112 = _group_0_binding_5_fs.fog_color; fc_1 = _e112.xyz; uint _e119 = _group_0_binding_5_fs.flags.x; if (((_e119 & SKY_IBL) != 0u)) { float _e129 = _group_0_binding_5_fs.fog_depth.w; local_8 = (_e129 > 0.0); } else { local_8 = false; } bool _e133 = local_8; if ((SPEC_AMBIENT_SKY ? _e133 : false)) { float _e139 = _group_0_binding_5_fs.fog_origin.y; float _e144 = _group_0_binding_5_fs.fog_origin.z; float _e148 = _group_0_binding_5_fs.fog_origin.y; float t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 1e-6)), 0.0, 1.0); uint _e159 = _group_0_binding_5_fs.flags.y; float top_2 = float((max(_e159, 2u) - 1u)); float rough = mix((1.0 / top_2), 1.0, (1.0 - t_3)); vec3 _e171 = fc_1; vec3 _e172 = sky_dir(dir_3); vec3 _e173 = radiance_1(_e172, rough); float _e177 = _group_0_binding_5_fs.sun.w; float _e182 = _group_0_binding_5_fs.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } vec3 _e184 = fc_1; vec3 _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; vec3 _e186 = fc_1; float _e187 = amount; return mix(c_12, _e186, _e187); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_4, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h_1 = (_e26.xyz * 0.5); vec3 dd = mix(d_4, vec3(1e-12), lessThan(abs(d_4), vec3(1e-12))); vec3 sa = ((-(h_1) - o) / dd); vec3 sb = ((h_1 - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1.0); } else { float rad = min(h_1.x, h_1.z); float k_15 = ((shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0); float w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_3, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_4 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1.0)); if ((e_4.material.z > 0.0)) { uint shape_1 = uint(e_4.albedo.w); vec3 h_2 = (e_4.size.xyz * 0.5); float rad_1 = min(h_2.x, h_2.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_2 * h_2))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_11 = normalize(vec2((1.0 / max(0.001, (rad_1 * 0.5))), (1.0 / max(0.001, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_4.size.w), 0.0, 1.0), e_4.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_4 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_4.y; if (((hf * b_1) == 0.0)) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_2 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_2 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_2); float x_3 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_3 < 0.01) ? (1.0 - (x_3 * (0.5 - (x_3 * (0.16666667 - (x_3 / 24.0)))))) : ((1.0 - exp(-(x_3))) / x_3)); float top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 fog_light(uint n_3, vec3 p_4, vec3 dir_4) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l_1 = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_3].lights; bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_3 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l_1; float rim = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim, li.spot.y))); } } vec3 _e108 = l_1; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_4, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_6, vec2 ch) { float split = 0.0; bool local_9 = false; bool local_10 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = false; bool local_12 = false; FogEntryU e_5 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_5.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_5.to_local * vec4(d_6, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_6, _e28.xyz); bool edge = (e_5.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_5.material.y > 0.0)) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = (-(a_6) / b_3); } bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e160 = i_1; i_1 = (_e160 + 1u); } loop_init_4 = false; uint _e70 = i_1; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i_1; uint j = (_e75 & 3u); if (!((j == 0u))) { local_11 = (j == 3u); } else { local_11 = true; } bool _e88 = local_11; float x_4 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_12 = (j == 3u); } else { local_12 = true; } bool _e100 = local_12; float w_4 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_4 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_4) : x_4))); vec3 p_8 = (o_1 + (d_6 * t_4)); float _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_4))); uint _e137 = i_1; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_14, vec3 o_2, vec3 d_7, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_2 = 0u; bool local_13 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_3 = 0u; uint n_4 = 0u; float avail = 0.0; uint i_4 = 0u; uint i_5 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e72 = i_2; i_2 = (_e72 + 1u); } loop_init_5 = false; uint _e13 = i_2; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_2; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_13 = (byte == 0u); } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_16].to_local; vec2 _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_7, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_16; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e90 = i_3; i_3 = (_e90 + 1u); } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at[_e82]; uint _e85 = i_3; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } } bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e221 = n_4; n_4 = (_e221 + 1u); } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_4; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_4 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e153 = i_4; i_4 = (_e153 + 1u); } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_4; float _e113 = chords[_e110].y; uint _e114 = n_4; float _e117 = chords[_e114].y; uint _e119 = i_4; float _e122 = chords[_e119].x; uint _e123 = n_4; float _e126 = chords[_e123].x; uint _e131 = i_4; float _e134 = chords[_e131].y; uint _e135 = i_4; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_4; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_4; float _e158 = parts[_e155].w; float _e160 = avail; float f_2 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_5 = 0u; bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e218 = i_5; i_5 = (_e218 + 1u); } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_5; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_5; float _e180 = chords[_e177].y; uint _e181 = n_4; float _e184 = chords[_e181].y; uint _e186 = i_5; float _e189 = chords[_e186].x; uint _e190 = n_4; float _e193 = chords[_e190].x; uint _e198 = i_5; float _e201 = chords[_e198].y; uint _e202 = i_5; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_5; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_2))); } } } } } } bool loop_init_10 = true; while(true) { if (!loop_init_10) { uint _e252 = i_6; i_6 = (_e252 + 1u); } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_6; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_6; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_5 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_14 * t_5) + (_e258 * ((1.0 - t_5) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_15, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_6 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_6)); vec3 _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_15); } vec3 sky_fog_volumes(vec3 c_16, vec3 near_point, vec3 dir_5) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back_1 = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (near_point - (back_1 * (_e26 * vec4(near_point, 1.0)).z)) : _e22.xyz); uint _e44 = _group_1_binding_5_fs.counts.y; vec3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); float _e49 = _group_1_binding_5_fs.params.z; return mix(c_16, _e45, _e49); } float shadow_factor(uint i_7, vec3 world_5, vec3 n_geo_1, vec3 l_2) { uint part = 0u; uint c_17 = 0u; bool local_14 = false; bool local_15 = false; bool local_16 = false; float vis = 0.0; int dy = -1; int dx = 0; uint kind = _group_0_binding_1_fs.lights[i_7].info.x; vec4 _e14 = _group_0_binding_1_fs.lights[i_7].position; vec3 light_pos = _e14.xyz; uint _e21 = _group_0_binding_1_fs.lights[i_7].info.w; uint slot = min(_e21, 15u); vec4 params = _group_0_binding_2_fs.lights[slot].params; uint first = _group_0_binding_2_fs.lights[slot].info.x; uint _e40 = _group_0_binding_2_fs.lights[slot].info.y; uint count = max(_e40, 1u); mat4x4 _e45 = _group_0_binding_0_fs.view; float view_depth = -((_e45 * vec4(world_5, 1.0)).z); if ((kind == LIGHT_DIRECTIONAL)) { float _e60 = _group_0_binding_2_fs.lights[slot].fade.y; if ((view_depth > _e60)) { return 1.0; } part = (count - 1u); bool loop_init_11 = true; while(true) { if (!loop_init_11) { uint _e79 = c_17; c_17 = (_e79 + 1u); } loop_init_11 = false; uint _e67 = c_17; if ((_e67 < count)) { } else { break; } { uint _e73 = c_17; float _e75 = _group_0_binding_2_fs.lights[slot].splits[_e73]; if ((view_depth <= _e75)) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; vec4 texel = _group_0_binding_2_fs.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; float t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); vec3 p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1.0)) * t_6))) + (l_2 * (params.x * t_6))); if ((kind == LIGHT_OMNI)) { vec3 d_13 = (p_9 - light_pos); vec3 a_7 = abs(d_13); if ((a_7.x >= a_7.y)) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = ((d_13.x >= 0.0) ? 0u : 1u); } else { if ((a_7.y >= a_7.z)) { part = ((d_13.y >= 0.0) ? 2u : 3u); } else { part = ((d_13.z >= 0.0) ? 4u : 5u); } } } uint _e145 = part; uint tile = min((first + min(_e145, (count - 1u))), 15u); mat4x4 _e156 = _group_0_binding_2_fs.tiles[tile].view_proj; vec4 clip_1 = (_e156 * vec4(p_9, 1.0)); if ((clip_1.w <= 0.0)) { return 1.0; } vec3 ndc = (clip_1.xyz / vec3(clip_1.w)); if (!((abs(ndc.x) > 1.0))) { local_15 = (abs(ndc.y) > 1.0); } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = (ndc.z > 1.0); } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } vec4 rect = _group_0_binding_2_fs.tiles[tile].rect; vec2 uv_4 = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); vec2 auv = (rect.xy + (uv_4 * rect.zw)); float texel_uv = _group_0_binding_2_fs.atlas.x; vec2 lo_5 = (rect.xy + vec2((0.5 * texel_uv))); vec2 hi_4 = ((rect.xy + rect.zw) - vec2((0.5 * texel_uv))); float r_7 = params.z; if ((r_7 <= 0.0)) { float _e235 = textureLod(_group_0_binding_3_fs, vec3(clamp(auv, lo_5, hi_4), ndc.z), 0.0); vis = _e235; } else { float spread = (r_7 * texel_uv); bool loop_init_12 = true; while(true) { if (!loop_init_12) { int _e265 = dy; dy = (_e265 + 1); } loop_init_12 = false; int _e239 = dy; if ((_e239 <= 1)) { } else { break; } { dx = -1; bool loop_init_13 = true; while(true) { if (!loop_init_13) { int _e262 = dx; dx = (_e262 + 1); } loop_init_13 = false; int _e244 = dx; if ((_e244 <= 1)) { } else { break; } { int _e247 = dx; int _e249 = dy; vec2 tap = clamp((auv + (vec2(float(_e247), float(_e249)) * spread)), lo_5, hi_4); float _e255 = vis; float _e259 = textureLod(_group_0_binding_3_fs, vec3(tap, ndc.z), 0.0); vis = (_e255 + _e259); } } } } float _e267 = vis; vis = (_e267 / 9.0); } if ((kind == LIGHT_DIRECTIONAL)) { vec4 fade_1 = _group_0_binding_2_fs.lights[slot].fade; float _e277 = vis; vis = mix(_e277, 1.0, smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return mix(1.0, _e283, params.w); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_8 = abs(d_8); if ((a_8.x >= a_8.y)) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_8.y >= a_8.z)) { ma = a_8.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 probe_texel(uint row, vec3 fuv, uint level_1) { uint _e6 = _group_0_binding_7_fs.counts.z; float n_12 = float(max((_e6 >> level_1), 1u)); float lo_6 = (0.5 / n_12); float u_2 = clamp(fuv.y, lo_6, (1.0 - lo_6)); float v_7 = clamp(fuv.z, lo_6, (1.0 - lo_6)); vec2 uv_5 = vec2(((fuv.x + u_2) / 6.0), ((float(row) + v_7) / 8.0)); vec4 _e33 = textureLod(_group_3_binding_6_fs, vec2(uv_5), float(level_1)); return _e33.xyz; } vec3 probe_sample(uint row_1, vec3 d_9, float lod) { bool local_18 = false; uint _e6 = _group_0_binding_7_fs.counts.y; uint levels = max(_e6, 1u); float l_5 = clamp(lod, 0.0, float((levels - 1u))); uint m0_ = uint(l_5); float t_7 = (l_5 - float(m0_)); vec3 _e17 = probe_face_uv(d_9); vec3 _e18 = probe_texel(row_1, _e17, m0_); if (!((t_7 <= 0.0))) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } vec3 _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1.0 - t_7)) + (_e34 * t_7)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_6 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_6 = p_5.extents.xyz; float d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if ((d_14 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_14 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_15 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_15; } vec3 o_8 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_8 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_8 + (d_15 * t_8)) - p_6.offset.xyz); } vec4 probe_reflection(vec3 world_8, vec3 r_2, float roughness_2, uint probes) { vec3 acc = vec3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = _group_0_binding_7_fs.counts.x; uint count_1 = min(_e12, MAX_PROBES); uint _e18 = _group_0_binding_7_fs.counts.y; float lod_1 = (roughness_2 * float((max(_e18, 1u) - 1u))); bool loop_init_14 = true; while(true) { if (!loop_init_14) { uint _e57 = i_8; i_8 = (_e57 + 1u); } loop_init_14 = false; uint _e27 = i_8; if ((_e27 < count_1)) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = _group_0_binding_7_fs.probes[_e31]; if ((((probes >> p_10.info.w) & 1u) == 0u)) { continue; } float _e41 = probe_weight(p_10, world_8); if ((_e41 <= 0.0)) { continue; } vec3 _e44 = acc; vec3 _e47 = probe_lookup(p_10, world_8, r_2); vec3 _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); float _e54 = w_sum; w_sum = (_e54 + _e41); } } float _e59 = w_sum; if ((_e59 > 1.0)) { vec3 _e62 = acc; float _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1.0; } vec3 _e67 = acc; float _e68 = w_sum; return vec4(_e67, _e68); } vec4 probe_ambient(vec3 world_9, vec3 n_7, uint probes_1) { vec3 acc_1 = vec3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = false; vec3 c_18 = vec3(0.0); uint _e11 = _group_0_binding_7_fs.counts.x; uint count_2 = min(_e11, MAX_PROBES); uint _e17 = _group_0_binding_7_fs.counts.y; uint last = (max(_e17, 1u) - 1u); bool loop_init_15 = true; while(true) { if (!loop_init_15) { uint _e73 = i_9; i_9 = (_e73 + 1u); } loop_init_15 = false; uint _e24 = i_9; if ((_e24 < count_2)) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = _group_0_binding_7_fs.probes[_e28]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if ((_e47 <= 0.0)) { continue; } c_18 = p_11.ambient.xyz; if ((p_11.info.y == PROBE_AMBIENT_ENVIRONMENT)) { vec3 _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0.0)).xyz); vec3 _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } vec3 _e66 = acc_1; vec3 _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); float _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } } float _e75 = w_sum_1; if ((_e75 > 1.0)) { vec3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1.0; } vec3 _e83 = acc_1; float _e84 = w_sum_1; return vec4(_e83, _e84); } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } vec3 psx_encode_srgb(vec3 c_19) { vec3 lo_7 = (c_19 * 12.92); vec3 hi_5 = ((1.055 * pow(max(c_19, vec3(0.0)), vec3(0.41666666))) - vec3(0.055)); return mix(hi_5, lo_7, lessThanEqual(c_19, vec3(0.0031308))); } vec3 psx_decode_srgb(vec3 c_20) { vec3 lo_8 = (c_20 / vec3(12.92)); vec3 hi_6 = pow(((c_20 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_6, lo_8, lessThanEqual(c_20, vec3(0.04045))); } void fragment() { float table[16] = float[16](-4.0, 0.0, -3.0, 1.0, 2.0, -2.0, 3.0, -1.0, -3.0, 1.0, -4.0, 0.0, 3.0, -1.0, 2.0, -2.0); vec2 _e1 = UV; vec2 _e4 = _group_2_binding_0_fs.low_res; vec2 px = floor((_e1 * _e4)); vec2 _e14 = _group_2_binding_0_fs.low_res; vec4 _e16 = texture(_group_2_binding_1_fs, vec2(((px + vec2(0.5)) / _e14))); vec3 c_28 = _e16.xyz; uint ix = (uint(px.x) % 4u); uint iy = (uint(px.y) % 4u); float _e48 = table[((iy * 4u) + ix)]; float _e51 = _group_2_binding_0_fs.dither_strength; float offset = (_e48 * _e51); float _e55 = _group_2_binding_0_fs.color_bits; float step_ = exp2((8.0 - _e55)); vec3 _e59 = psx_encode_srgb(c_28); vec3 v8_ = clamp(((_e59 * 255.0) + vec3(offset)), vec3(0.0), vec3(255.0)); vec3 q_6 = ((floor((v8_ / vec3(step_))) * step_) / vec3(255.0)); vec3 _e77 = psx_decode_srgb(q_6); ALBEDO = _e77; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_8 = transpose(_e1); vec3 t_9 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0.0), vec4(r_8[1], 0.0), vec4(r_8[2], 0.0), vec4(t_9, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_23 = false; if (true) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back_2 = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back_2 * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back_2 * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_24 = false; bool local_25 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } bool _e12 = local_24; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = (_e18 < _e20); } else { local_25 = false; } bool _e23 = local_25; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_5 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_21 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_3 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_21 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_21; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_21 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_3), 0.0); float vh_2 = max(dot(v_3, h_3), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_21; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_21 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_21; return _e77; } vec4 hedra_light_dir(uint i_11, vec3 world_12) { float atten_1 = 0.0; LightU li_1 = _group_0_binding_1_fs.lights[i_11]; if ((li_1.info.x == LIGHT_DIRECTIONAL)) { return vec4(-(li_1.direction.xyz), 1.0); } vec3 rel_1 = (li_1.position.xyz - world_12); float d_16 = length(rel_1); vec3 l_7 = (rel_1 / vec3(max(d_16, 1e-6))); float _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if ((li_1.info.x == LIGHT_SPOT)) { float cone = li_1.spot.x; float scos = max(dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = max(0.0001, ((1.0 - scos) / max((1.0 - cone), 1e-6))); float _e49 = atten_1; atten_1 = (_e49 * (1.0 - pow(rim_1, li_1.spot.y))); } float _e56 = atten_1; return vec4(l_7, _e56); } float hedra_shadow(uint i_12, vec3 l_4) { bool local_27 = false; if (false) { uint _e10 = _group_0_binding_1_fs.lights[i_12].info.y; local_27 = (_e10 != LIGHT_SHADOWED); } else { local_27 = true; } bool _e14 = local_27; if (_e14) { return 1.0; } vec3 _e17 = hedra_world; vec3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } vec3 hedra_ambient(vec3 n_10, vec3 v_4, vec3 diffuse_2, vec3 f0_3, float roughness_3, float metallic) { vec3 ambient = vec3(0.0); vec3 diffuse_amb = vec3(0.0); vec3 spec_amb = vec3(0.0); vec3 dif = vec3(0.0); vec3 dif_1 = vec3(0.0); vec3 dif_2 = vec3(0.0); vec3 world_13 = hedra_world; float nv_5 = max(dot(n_10, v_4), 0.0001); vec3 f_amb = (f0_3 + ((max(vec3((1.0 - roughness_3)), f0_3) - f0_3) * pow((1.0 - nv_5), 5.0))); vec4 _e25 = gi_diffuse(n_10, false, vec3(0.0)); uint _e30 = _group_0_binding_5_fs.flags.x; if (((_e30 & SKY_IBL) != 0u)) { float _e38 = _group_0_binding_5_fs.ibl.x; float _e42 = _group_0_binding_5_fs.sun.w; float scale = (_e38 * _e42); vec4 _e46 = _group_0_binding_5_fs.ambient; diffuse_amb = _e46.xyz; uint _e52 = _group_0_binding_5_fs.flags.x; if (((_e52 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e59 = _group_0_binding_5_fs.ambient; vec3 _e61 = sky_dir(n_10); vec3 _e62 = sh_irradiance(_e61); float _e67 = _group_0_binding_5_fs.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if ((_e25.w > 0.0)) { diffuse_amb = _e25.xyz; } vec4 _e75 = _group_0_binding_5_fs.ambient; spec_amb = _e75.xyz; uint _e81 = _group_0_binding_5_fs.flags.x; if (((_e81 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e88 = sky_dir(reflect(-(v_4), n_10)); vec3 _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { uint _e94 = _group_0_binding_5_fs.flags.x; if (((_e94 & SKY_REFLECT_OFF) != 0u)) { spec_amb = vec3(0.0); } } vec2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = _group_0_binding_7_fs.counts.x; if ((_e105 > 0u)) { uint _e113 = _group_1_binding_0_fs.extra.z; vec4 _e114 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e113); vec3 _e115 = spec_amb; vec3 spec_1 = ((_e115 * (1.0 - _e114.w)) + _e114.xyz); vec3 _e122 = diffuse_amb; dif = _e122; if ((_e25.w <= 0.0)) { uint _e130 = _group_1_binding_0_fs.extra.z; vec4 _e131 = probe_ambient(world_13, n_10, _e130); vec3 _e132 = diffuse_amb; dif = ((_e132 * (1.0 - _e131.w)) + _e131.xyz); } vec3 _e139 = dif; ambient = ((diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } else { vec3 _e154 = diffuse_amb; vec3 _e156 = spec_amb; ambient = ((diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } } else { uint _e173 = _group_0_binding_1_fs.counts.y; if (((_e173 & ENV_AMBIENT_SKY) != 0u)) { vec4 _e180 = _group_0_binding_1_fs.up; vec3 up = _e180.xyz; vec4 _e184 = _group_0_binding_1_fs.sky_top; vec4 _e188 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e184.xyz + _e188.xyz) * 0.5); vec4 _e195 = _group_0_binding_1_fs.ground_horizon; vec4 _e199 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e195.xyz + _e199.xyz) * 0.5); vec3 irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up) * 0.5) + 0.5), 0.0, 1.0)); vec3 _e215 = sky(reflect(-(v_4), n_10)); vec3 blurred = mix(_e215, sky_avg, roughness_3); uint _e220 = _group_0_binding_7_fs.counts.x; if ((_e220 > 0u)) { uint _e228 = _group_1_binding_0_fs.extra.z; vec4 _e229 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e228); float _e233 = _group_0_binding_1_fs.ambient.w; vec3 spec_2 = (((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e249 = _group_1_binding_0_fs.extra.z; vec4 _e250 = probe_ambient(world_13, n_10, _e249); float _e254 = _group_0_binding_1_fs.ambient.w; dif_1 = (((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz); } vec3 _e262 = dif_1; ambient = ((diffuse_2 * _e262) + (spec_2 * f_amb)); } else { if ((_e25.w > 0.0)) { float _e275 = _group_0_binding_1_fs.ambient.w; ambient = ((diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { float _e284 = _group_0_binding_1_fs.ambient.w; ambient = (((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284); } } } else { uint _e289 = _group_0_binding_7_fs.counts.x; if ((_e289 > 0u)) { uint _e297 = _group_1_binding_0_fs.extra.z; vec4 _e298 = probe_reflection(world_13, reflect(-(v_4), n_10), roughness_3, _e297); vec4 _e301 = _group_0_binding_1_fs.ambient; vec3 spec_3 = ((_e301.xyz * (1.0 - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e317 = _group_1_binding_0_fs.extra.z; vec4 _e318 = probe_ambient(world_13, n_10, _e317); vec4 _e321 = _group_0_binding_1_fs.ambient; dif_2 = ((_e321.xyz * (1.0 - _e318.w)) + _e318.xyz); } vec3 _e329 = dif_2; ambient = ((diffuse_2 * _e329) + (spec_3 * f_amb)); } else { if ((_e25.w > 0.0)) { vec4 _e340 = _group_0_binding_1_fs.ambient; ambient = ((diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb)); } else { vec4 _e346 = _group_0_binding_1_fs.ambient; ambient = (_e346.xyz * (diffuse_2 + f_amb)); } } } } vec3 _e350 = ambient; return _e350; } vec3 hedra_fog(vec3 c_in_1, vec3 v_5) { vec3 c_22 = vec3(0.0); c_22 = c_in_1; if (HEDRA_FOG_DISABLED) { vec3 _e4 = c_22; return _e4; } uint _e8 = _group_0_binding_5_fs.flags.x; if (((_e8 & SKY_FOG) != 0u)) { vec3 _e13 = c_22; vec3 _e15 = hedra_world; vec3 _e17 = surface_fog(_e13, _e15, -(v_5)); c_22 = _e17; } uint _e21 = _group_1_binding_0_fs.decals.w; if ((_e21 != 0u)) { vec3 _e24 = c_22; vec3 _e26 = hedra_world; uint _e30 = _group_1_binding_0_fs.decals.w; vec3 _e31 = fog_volumes(_e24, _e26, _e30); c_22 = _e31; } vec3 _e32 = c_22; return _e32; } vec3 hedra_lit(vec4 clip) { DecalSurface surf_1 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); vec3 c_23 = vec3(0.0); uint k_11 = 0u; bool local_28 = false; vec3 radiance_3 = vec3(0.0); bool local_29 = false; bool local_30 = false; vec3 ambient_1 = vec3(0.0); bool local_31 = false; vec3 n_geo_3 = hedra_n_geo; vec3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; vec3 _e18 = hedra_n; vec3 _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0.0, 1.0), clamp(_e11, 0.045, 1.0), _e16, _e18, _e20); uint _e26 = _group_1_binding_0_fs.decals.z; if ((_e26 > 0u)) { vec3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; vec3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; mat4x4 _e45 = _group_0_binding_0_fs.view; mat3x3 _e46 = hedra_mat3_(_e45); vec3 _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); vec3 base = surf_1.base; vec3 diffuse_3 = (base * (1.0 - metallic_1)); float _e64 = SPECULAR; float _e68 = SPECULAR; vec3 f0_4 = mix(vec3(((0.16 * _e64) * _e68)), base, metallic_1); vec3 n_13 = surf_1.normal; vec3 _e75 = hedra_world; vec3 _e76 = hedra_view_dir(_e75); mat4x4 _e79 = _group_0_binding_0_fs.view; mat3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = mix(1.0, _e82, _e84); DIFFUSE_LIGHT = vec3(0.0); SPECULAR_LIGHT = vec3(0.0); uint _e96 = object_light_count(); bool loop_init_16 = true; while(true) { if (!loop_init_16) { uint _e238 = k_11; k_11 = (_e238 + 1u); } loop_init_16 = false; uint _e99 = k_11; if ((_e99 < _e96)) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101); LightU li_2 = _group_0_binding_1_fs.lights[_e102]; vec3 _e108 = hedra_world; vec4 _e109 = hedra_light_dir(_e102, _e108); vec3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_28 = (atten_2 > 0.0); } else { local_28 = true; } bool _e123 = local_28; if (_e123) { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if ((_e142 > 0.0)) { float rim_light = pow(max(0.0001, (1.0 - max(dot(n_13, _e76), 0.0001))), max(0.0, ((1.0 - roughness_4) * 16.0))); vec3 _e159 = c_23; float _e164 = RIM; float _e170 = RIM_TINT; c_23 = (_e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1.0), base, _e170))); } if ((atten_2 > 0.0)) { radiance_3 = (li_2.color.xyz * atten_2); if ((li_2.info.y == LIGHT_SHADOWED)) { local_29 = false; } else { local_29 = false; } bool _e188 = local_29; if (_e188) { vec3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if (true) { local_30 = false; } else { local_30 = false; } bool _e201 = local_30; if (_e201) { vec3 _e202 = c_23; vec3 _e203 = radiance_3; vec3 _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_23 = (_e202 + _e206); } else { vec3 _e208 = c_23; vec3 _e209 = radiance_3; vec3 _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_23 = (_e208 + _e212); } vec3 _e215 = BACKLIGHT; if (any(greaterThan(_e215, vec3(0.0)))) { float nl_4 = max(min(dot(n_13, l_8), 1.0), 0.0); vec3 _e225 = c_23; vec3 _e226 = radiance_3; vec3 _e229 = BACKLIGHT; c_23 = (_e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987)))); } } } } if (HEDRA_HAS_LIGHT) { vec3 _e242 = DIFFUSE_LIGHT; vec3 _e249 = SPECULAR_LIGHT; c_23 = ((((_e242 * base) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct)); } else { float _e253 = AO_LIGHT_AFFECT; if ((_e253 > 0.0)) { vec3 _e256 = c_23; c_23 = (_e256 * ao_direct); } } if (false) { vec3 _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } uint _e266 = _group_0_binding_1_fs.counts.y; if (((_e266 & ENV_SSAO) != 0u)) { bool _e273 = hedra_transparent(); local_31 = !(_e273); } else { local_31 = false; } bool _e276 = local_31; if (_e276) { vec4 _e282 = texelFetch(_group_0_binding_6_fs, ivec2(floor(clip.xy)), 0); float ssao = _e282.x; vec3 _e284 = c_23; float _e286 = surf_1.occlusion; float _e291 = _group_0_binding_1_fs.tone.z; float _e295 = _group_0_binding_1_fs.tone.w; c_23 = (_e284 * mix(1.0, min(ssao, _e286), (_e291 * _e295))); vec3 _e300 = c_23; vec3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_23 = (_e300 + (_e301 * min(_e303, ssao))); } else { vec3 _e307 = c_23; vec3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_23 = (_e307 + (_e308 * _e310)); } vec3 _e313 = c_23; vec3 _e315 = surf_1.emission; c_23 = (_e313 + _e315); vec3 _e317 = c_23; vec3 _e318 = hedra_fog(_e317, _e76); vec3 _e319 = tonemap(_e318); return _e319; } vec4 hedra_output(vec3 c_24) { vec3 rgb = vec3(0.0); rgb = c_24; if (false) { vec3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } vec3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); vec4 o_9 = vec4(_e7, (_e10 ? _e9 : 1.0)); uint _e17 = _group_0_binding_1_fs.counts.y; if (((_e17 & ENV_HDR) != 0u)) { return vec4(max(o_9.xyz, vec3(0.0)), clamp(o_9.w, 0.0, 1.0)); } vec4 k_17 = clamp(o_9, vec4(0.0), vec4(1.0)); uint _e39 = _group_0_binding_0_fs.params.z; if (((_e39 & HEDRA_ENCODE_SRGB) != 0u)) { vec3 _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } vec3 hedra_bindings() { vec2 uv_6 = vec2(0.5); vec4 _e5 = textureLod(_group_3_binding_1_fs, vec2(uv_6), 0.0); vec4 _e11 = textureLod(_group_3_binding_4_fs, vec3(uv_6, 0), 0.0); vec4 _e17 = textureLod(_group_1_binding_6_fs, vec2(uv_6), 0.0); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } void main() { CustomOut in_3 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing = gl_FrontFacing; vec3 c = vec3(0.0); hedra_fragment(in_3, facing); bool _e3 = hedra_culled(in_3.flags); if (_e3) { discard; } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if ((_e7 <= 0.0)) { discard; } if (HEDRA_UNSHADED) { vec3 _e13 = ALBEDO; vec3 _e15 = hedra_world; vec3 _e16 = hedra_view_dir(_e15); vec3 _e17 = hedra_fog(_e13, _e16); vec3 _e18 = tonemap(_e17); c = _e18; } else { vec3 _e20 = hedra_lit(in_3.clip); c = _e20; } uint _e24 = _group_0_binding_1_fs.counts.w; if ((_e24 == HEDRA_NEVER)) { vec3 _e27 = c; vec3 _e28 = hedra_bindings(); c = (_e27 + _e28); } uint _e33 = _group_0_binding_0_fs.params.x; if ((_e33 == SHADE_LIT)) { vec3 _e36 = c; vec3 _e37 = item_fade(_e36); vec3 _e38 = emerge_tint(_e37, _e7); c = _e38; } vec3 _e39 = c; vec4 _e40 = hedra_output(_e39); _fs2p_location0 = _e40; return; } fs_custom_depthmain³…#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = true; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = true; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } vec3 psx_encode_srgb(vec3 c_19) { vec3 lo_2 = (c_19 * 12.92); vec3 hi_2 = ((1.055 * pow(max(c_19, vec3(0.0)), vec3(0.41666666))) - vec3(0.055)); return mix(hi_2, lo_2, lessThanEqual(c_19, vec3(0.0031308))); } vec3 psx_decode_srgb(vec3 c_20) { vec3 lo_3 = (c_20 / vec3(12.92)); vec3 hi_3 = pow(((c_20 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_3, lo_3, lessThanEqual(c_20, vec3(0.04045))); } void fragment() { float table[16] = float[16](-4.0, 0.0, -3.0, 1.0, 2.0, -2.0, 3.0, -1.0, -3.0, 1.0, -4.0, 0.0, 3.0, -1.0, 2.0, -2.0); vec2 _e1 = UV; vec2 _e4 = _group_2_binding_0_fs.low_res; vec2 px = floor((_e1 * _e4)); vec2 _e14 = _group_2_binding_0_fs.low_res; vec4 _e16 = texture(_group_2_binding_1_fs, vec2(((px + vec2(0.5)) / _e14))); vec3 c_25 = _e16.xyz; uint ix = (uint(px.x) % 4u); uint iy = (uint(px.y) % 4u); float _e48 = table[((iy * 4u) + ix)]; float _e51 = _group_2_binding_0_fs.dither_strength; float offset = (_e48 * _e51); float _e55 = _group_2_binding_0_fs.color_bits; float step_ = exp2((8.0 - _e55)); vec3 _e59 = psx_encode_srgb(c_25); vec3 v8_ = clamp(((_e59 * 255.0) + vec3(offset)), vec3(0.0), vec3(255.0)); vec3 q_3 = ((floor((v8_ / vec3(step_))) * step_) / vec3(255.0)); vec3 _e77 = psx_decode_srgb(q_3); ALBEDO = _e77; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_23 = false; if (true) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_21 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_21 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_21; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_21 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_21; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_21 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_21; return _e77; } void main() { CustomOut in_4 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_1 = gl_FrontFacing; bool local = false; bool local_1 = false; hedra_fragment(in_4, facing_1); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { discard; } float _e25 = emerge_reveal(in_4.world, vec2(-1.0)); if ((_e25 <= 0.0)) { discard; } else { return; } }  fs_custom_idmain¦ˆ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = true; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = true; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } vec3 psx_encode_srgb(vec3 c_19) { vec3 lo_2 = (c_19 * 12.92); vec3 hi_2 = ((1.055 * pow(max(c_19, vec3(0.0)), vec3(0.41666666))) - vec3(0.055)); return mix(hi_2, lo_2, lessThanEqual(c_19, vec3(0.0031308))); } vec3 psx_decode_srgb(vec3 c_20) { vec3 lo_3 = (c_20 / vec3(12.92)); vec3 hi_3 = pow(((c_20 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_3, lo_3, lessThanEqual(c_20, vec3(0.04045))); } void fragment() { float table[16] = float[16](-4.0, 0.0, -3.0, 1.0, 2.0, -2.0, 3.0, -1.0, -3.0, 1.0, -4.0, 0.0, 3.0, -1.0, 2.0, -2.0); vec2 _e1 = UV; vec2 _e4 = _group_2_binding_0_fs.low_res; vec2 px = floor((_e1 * _e4)); vec2 _e14 = _group_2_binding_0_fs.low_res; vec4 _e16 = texture(_group_2_binding_1_fs, vec2(((px + vec2(0.5)) / _e14))); vec3 c_25 = _e16.xyz; uint ix = (uint(px.x) % 4u); uint iy = (uint(px.y) % 4u); float _e48 = table[((iy * 4u) + ix)]; float _e51 = _group_2_binding_0_fs.dither_strength; float offset = (_e48 * _e51); float _e55 = _group_2_binding_0_fs.color_bits; float step_ = exp2((8.0 - _e55)); vec3 _e59 = psx_encode_srgb(c_25); vec3 v8_ = clamp(((_e59 * 255.0) + vec3(offset)), vec3(0.0), vec3(255.0)); vec3 q_3 = ((floor((v8_ / vec3(step_))) * step_) / vec3(255.0)); vec3 _e77 = psx_decode_srgb(q_3); ALBEDO = _e77; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_23 = false; if (true) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_24 = false; bool local_25 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } bool _e12 = local_24; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = (_e18 < _e20); } else { local_25 = false; } bool _e23 = local_25; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_21 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_21 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_21; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_21 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_21; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_21 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_21; return _e77; } void main() { CustomOut in_5 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_2 = gl_FrontFacing; bool local_2 = false; IdOut out_ = IdOut(vec4(0.0)); hedra_fragment(in_5, facing_2); bool _e3 = hedra_culled(in_5.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0.0); } else { local_2 = true; } bool _e14 = local_2; if (_e14) { discard; } uint id = _group_1_binding_0_fs.params.z; uint _e24 = _group_1_binding_0_fs.params.x; uint _e33 = _group_1_binding_0_fs.params.y; uint bits = (((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u)); out_.id = (vec4(float((id & 255u)), float(((id >> 8u) & 255u)), float(((id >> 16u) & 255u)), float(bits)) / vec4(255.0)); IdOut _e58 = out_; _fs2p_location0 = _e58.id; return; } fs_custom_normal_depthmainGŠ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = true; const bool HEDRA_SKIP_VERTEX_TRANSFORM = false; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = true; const bool HEDRA_FOG_DISABLED = true; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = false; const bool HEDRA_ALPHA_SCISSOR = false; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; layout(location = 1) out vec4 _fs2p_location1; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { return; } void hedra_load_varyings(CustomOut i_10) { return; } void light() { return; } vec3 psx_encode_srgb(vec3 c_19) { vec3 lo_2 = (c_19 * 12.92); vec3 hi_2 = ((1.055 * pow(max(c_19, vec3(0.0)), vec3(0.41666666))) - vec3(0.055)); return mix(hi_2, lo_2, lessThanEqual(c_19, vec3(0.0031308))); } vec3 psx_decode_srgb(vec3 c_20) { vec3 lo_3 = (c_20 / vec3(12.92)); vec3 hi_3 = pow(((c_20 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi_3, lo_3, lessThanEqual(c_20, vec3(0.04045))); } void fragment() { float table[16] = float[16](-4.0, 0.0, -3.0, 1.0, 2.0, -2.0, 3.0, -1.0, -3.0, 1.0, -4.0, 0.0, 3.0, -1.0, 2.0, -2.0); vec2 _e1 = UV; vec2 _e4 = _group_2_binding_0_fs.low_res; vec2 px = floor((_e1 * _e4)); vec2 _e14 = _group_2_binding_0_fs.low_res; vec4 _e16 = texture(_group_2_binding_1_fs, vec2(((px + vec2(0.5)) / _e14))); vec3 c_25 = _e16.xyz; uint ix = (uint(px.x) % 4u); uint iy = (uint(px.y) % 4u); float _e48 = table[((iy * 4u) + ix)]; float _e51 = _group_2_binding_0_fs.dither_strength; float offset = (_e48 * _e51); float _e55 = _group_2_binding_0_fs.color_bits; float step_ = exp2((8.0 - _e55)); vec3 _e59 = psx_encode_srgb(c_25); vec3 v8_ = clamp(((_e59 * 255.0) + vec3(offset)), vec3(0.0), vec3(255.0)); vec3 q_3 = ((floor((v8_ / vec3(step_))) * step_) / vec3(255.0)); vec3 _e77 = psx_decode_srgb(q_3); ALBEDO = _e77; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_23 = false; if (true) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_24 = false; bool local_25 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } bool _e12 = local_24; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = (_e18 < _e20); } else { local_25 = false; } bool _e23 = local_25; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_3, vec3 l_3, vec3 radiance_2, vec3 diffuse_1, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_21 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_3), 0.0001); vec3 h_1 = normalize((l_3 + v_3)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_21 = ((diffuse_1 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_3); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_21; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_21 = (_e38 + ((diffuse_1 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_3, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_21; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_21 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_21; return _e77; } void main() { CustomOut in_6 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_3 = gl_FrontFacing; bool local_3 = false; HedraNormalDepthOut out_1 = HedraNormalDepthOut(vec4(0.0), vec4(0.0)); hedra_fragment(in_6, facing_3); bool _e3 = hedra_culled(in_6.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0.0); } else { local_3 = true; } bool _e14 = local_3; if (_e14) { discard; } mat4x4 _e17 = _group_0_binding_0_fs.view; mat3x3 _e18 = hedra_mat3_(_e17); vec3 _e20 = hedra_n; vec3 n_view = normalize((_e18 * _e20)); float _e24 = METALLIC; float metallic_1 = clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; vec3 _e37 = ALBEDO; vec3 f0_4 = mix(vec3(((0.16 * _e29) * _e33)), _e37, metallic_1); mat4x4 _e43 = _group_0_binding_0_fs.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_4, vec3(0.0), vec3(1.0)), clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; _fs2p_location0 = _e63.normal_depth; _fs2p_location1 = _e63.surface; return; }  @Ð Ð/ ,@  {Ðþ—4ÌhÜ©Z„åŸþh¬éÖw6ápuªrWJGlobals_block_0VertexObjectU_block_1Vertex HedraParams_block_2VertexSkinU_block_2Vertex HedraParams_block_3VertexSkyU_block_4FragmentShadowU_block_3FragmentGlobals_block_0Fragment HedraParams_block_8FragmentFogU_block_7FragmentDecalU_block_6FragmentObjectU_block_1FragmentProbeU_block_5FragmentLitU_block_2Fragment_group_3_binding_4_fs_group_0_binding_6_fs_group_2_binding_1_fs_group_1_binding_3_fs_group_3_binding_1_fs_group_3_binding_6_fs_group_0_binding_3_fs_group_1_binding_6_fs_group_3_binding_0_fs HedraParams_block_2Fragment vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depth`c// language: metal2.2 #include #include using metal::uint; struct Globals { metal::float4x4 view; metal::float4x4 proj; metal::float4x4 view_proj; metal::float4 camera_pos; metal::float4 viewport; metal::float4 wire_color; metal::float4 select_color; metal::float4 active_color; metal::float4 grid; metal::uint4 params; metal::float4 fparams; }; struct type_5 { metal::float4 inner[3]; }; struct ObjectU { metal::float4x4 model; metal::float4x4 normal; metal::float4 color; metal::uint4 params; metal::uint4 extra; type_5 gi; metal::uint4 decals; metal::uint4 lights; }; struct type_8 { metal::float3 inner[10]; }; struct LightU { metal::float4 color; metal::float4 position; metal::float4 direction; metal::float4 spot; metal::uint4 info; }; struct type_9 { LightU inner[64]; }; struct LitU { metal::uint4 counts; metal::float4 ambient; metal::float4 tone; metal::float4 up; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_horizon; metal::float4 ground_bottom; metal::float4x4 inv_view_proj; metal::uint4 dirs; type_9 lights; }; struct ShadowLightU { metal::float4 params; metal::float4 splits; metal::float4 fade; metal::uint4 info; }; struct ShadowTileU { metal::float4x4 view_proj; metal::float4 rect; metal::float4 texel; }; struct type_10 { ShadowLightU inner[16]; }; struct type_11 { ShadowTileU inner[16]; }; struct ShadowU { metal::float4 atlas; type_10 lights; type_11 tiles; }; struct SunU { metal::float4 direction; metal::float4 color; }; struct type_14 { SunU inner[4]; }; struct type_15 { metal::float4 inner[9]; }; struct SkyU { metal::uint4 flags; metal::float4x4 to_sky; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_bottom; metal::float4 ground_horizon; metal::float4 sun; metal::float4 ambient; metal::float4 ibl; metal::float4 fog_color; metal::float4 fog; metal::float4 fog_depth; metal::float4 fog_origin; type_14 suns; type_15 sh; }; struct ProbeEntryU { metal::float4x4 to_local; metal::float4 extents; metal::float4 offset; metal::float4 ambient; metal::uint4 info; }; struct type_20 { ProbeEntryU inner[8]; }; struct ProbeU { metal::uint4 counts; type_20 probes; }; struct DecalEntryU { metal::float4x4 to_local; metal::float4 modulate; metal::float4 fades; metal::float4 axis_x; metal::float4 axis_y; metal::float4 axis_z; metal::uint4 layers; metal::uint4 flags; }; struct type_21 { DecalEntryU inner[64]; }; struct DecalU { metal::uint4 counts; metal::float4 lod; type_21 entries; }; struct DecalSurface { metal::packed_float3 base; float metallic; float roughness; float occlusion; char _pad4[8]; metal::float3 normal; metal::float3 emission; }; struct VsIn { metal::float3 pos; metal::float3 normal; metal::float2 uv; uint flags; char _pad4[4]; metal::float4 tangent; float weight; char _pad6[12]; }; struct InstIn { metal::float4 row0_; metal::float4 row1_; metal::float4 row2_; metal::float4 color; }; struct FogEntryU { metal::float4x4 to_local; metal::float4 size; metal::float4 material; metal::float4 albedo; metal::float4 emission; metal::uint4 lights; }; struct type_26 { metal::float4 inner[16]; }; struct type_27 { FogEntryU inner[16]; }; struct FogU { metal::uint4 counts; metal::float4 params; metal::float4 ambient; metal::float4 up; type_26 light_fog; type_27 entries; }; struct type_28 { uint inner[4]; }; struct type_29 { metal::float2 inner[4]; }; struct type_30 { metal::float4 inner[4]; }; struct type_31 { metal::float4 inner[765]; }; struct SkinU { type_31 rows; }; struct SkinIn { metal::uint4 joints; metal::float4 weights; }; struct SkinRows { metal::float4 r0_; metal::float4 r1_; metal::float4 r2_; }; struct HedraInstExtra { metal::float4 custom; float id; char _pad2[12]; }; struct CustomOut { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; metal::float4 color; metal::float2 uv2_; uint instance_id; char _pad9[4]; metal::float4 hedra_v0_; metal::float4 hedra_v1_; metal::float4 hedra_v2_; metal::float4 hedra_v3_; }; struct IdOut { metal::float4 id; }; struct HedraParams { metal::float2 low_res; float color_bits; float dither_strength; float integer_scale; char _pad4[4]; }; struct type_33 { float inner[16]; }; struct HedraNormalDepthOut { metal::float4 normal_depth; metal::float4 surface; }; constant uint OBJ_HAS_WEIGHTS = 1u; constant uint OBJ_MIRRORED = 2u; constant uint SHADE_SOLID = 0u; constant uint SHADE_MATCAP = 1u; constant uint SHADE_NORMALS = 2u; constant uint SHADE_FACE_ORIENT = 3u; constant uint SHADE_RANDOM = 4u; constant uint SHADE_MATERIAL = 5u; constant uint SHADE_UV_CHECKER = 6u; constant uint SHADE_WEIGHTS = 7u; constant uint SHADE_LIT = 8u; constant uint SHADE_LIGHTMAP = 9u; constant uint SHADE_LIGHT_COUNT = 10u; constant uint OV_SELECTION = 1u; constant uint OV_SEAMS = 2u; constant uint OV_SHARP = 4u; constant uint F_SELECTED = 1u; constant uint F_HIDDEN = 2u; constant uint F_SEAM = 4u; constant uint F_SHARP = 8u; constant uint F_MESH = 16u; constant uint F_FADE = 32u; constant uint F_NO_PULL = 64u; constant bool SPEC_TEX_BASE = true; constant bool SPEC_TEX_NORMAL = true; constant bool SPEC_TEX_MR = true; constant bool SPEC_TEX_EMISSION = true; constant bool SPEC_TEX_OCCLUSION = true; constant bool SPEC_VERTEX_COLOR = true; constant bool SPEC_EXT = true; constant bool SPEC_UNLIT = true; constant bool SPEC_ALPHA_MASK = true; constant bool SPEC_ALPHA_BLEND = true; constant bool SPEC_CLEARCOAT = true; constant bool SPEC_SHEEN = true; constant bool SPEC_TRANSMISSION = true; constant bool SPEC_IRIDESCENCE = true; constant bool SPEC_ANISOTROPY = true; constant bool SPEC_DIFFUSE_TRANSMISSION = true; constant bool SPEC_VOLUME = true; constant bool SPEC_DISPERSION = true; constant bool SPEC_EXT_LAYERS = true; constant bool SPEC_ROUGHNESS_LAYER = true; constant bool SPEC_LIT = true; constant bool SPEC_LIGHTS = true; constant bool SPEC_SHADOWS = true; constant bool SPEC_DECALS = true; constant bool SPEC_FOG = true; constant bool SPEC_FOG_VOLUMES = true; constant bool SPEC_PROBES = true; constant bool SPEC_PROBE_GI = true; constant bool SPEC_SSAO = true; constant bool SPEC_SCREEN_REFRACTION = true; constant bool SPEC_EMERGE = true; constant bool SPEC_FADE = true; constant bool SPEC_FACE_FLAGS = true; constant bool SPEC_AMBIENT_FLAT = true; constant bool SPEC_AMBIENT_GRADIENT = true; constant bool SPEC_AMBIENT_SKY = true; constant bool SPEC_MATERIAL_MODE = true; constant bool SPEC_OTHER_MODES = true; constant float PI = 3.1415927; constant float TAU = 6.2831855; constant float E = 2.7182817; constant uint HEDRA_BLEND_MIX = 0u; constant uint HEDRA_BLEND_PREMUL_ALPHA = 4u; constant uint HEDRA_CULL_FRONT = 1u; constant uint HEDRA_DIFFUSE_LAMBERT = 0u; constant uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; constant uint HEDRA_DIFFUSE_BURLEY = 2u; constant uint HEDRA_DIFFUSE_TOON = 3u; constant uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; constant uint HEDRA_SPECULAR_TOON = 1u; constant uint HEDRA_SPECULAR_DISABLED = 2u; constant uint HEDRA_ENCODE_SRGB = 2u; constant uint HEDRA_NEVER = 4294967295u; constant uint MAX_FRAME_LIGHTS = 64u; constant uint MAX_OBJECT_LIGHTS = 8u; constant uint MAX_SHADOW_LIGHTS = 16u; constant uint MAX_POOL_DIRECTIONAL = 8u; constant type_8 LIGHT_COUNT_COLORS = type_8 {{metal::float3(0.352941, 0.352941, 0.352941), metal::float3(0.168627, 0.247059, 0.6), metal::float3(0.129412, 0.4, 0.67451), metal::float3(0.101961, 0.623529, 0.721569), metal::float3(0.121569, 0.631373, 0.529412), metal::float3(0.301961, 0.733333, 0.352941), metal::float3(0.65098, 0.831373, 0.227451), metal::float3(0.94902, 0.784314, 0.058824), metal::float3(0.94902, 0.556863, 0.058824), metal::float3(0.878431, 0.129412, 0.541176)}}; constant uint LIGHT_DIRECTIONAL = 0u; constant uint LIGHT_OMNI = 1u; constant uint LIGHT_SPOT = 2u; constant uint LIGHT_BAKE_DISABLED = 0u; constant uint LIGHT_BAKE_STATIC = 1u; constant uint LIGHT_BAKE_DYNAMIC = 2u; constant uint TONEMAP_LINEAR = 0u; constant uint TONEMAP_REINHARD = 1u; constant uint TONEMAP_FILMIC = 2u; constant uint TONEMAP_ACES = 3u; constant uint TONEMAP_AGX = 4u; constant uint ENV_SKY = 1u; constant uint ENV_AMBIENT_SKY = 2u; constant uint ENV_SSAO = 4u; constant uint ENV_HDR = 8u; constant uint ENV_SCREEN_REFRACTION = 16u; constant uint LIGHT_SHADOWED = 1u; constant uint LIGHT_BAKED_STATIC = 1u; constant uint SHADOW_TILES = 16u; constant uint SKY_DRAW_PROCEDURAL = 1u; constant uint SKY_DRAW_PANORAMA = 2u; constant uint SKY_PANORAMA_FILTER = 4u; constant uint SKY_IBL = 8u; constant uint SKY_AMBIENT_SKY = 16u; constant uint SKY_REFLECT_RADIANCE = 32u; constant uint SKY_REFLECT_OFF = 64u; constant uint SKY_FOG = 128u; constant uint SKY_FOG_DEPTH = 256u; constant uint SKY_SUNS = 4u; constant uint OBJ_LIGHTMAP = 4u; constant uint OBJ_PROBE_GI = 8u; constant uint PROBE_BOX = 1u; constant uint PROBE_INTERIOR = 2u; constant uint MAX_PROBES = 8u; constant uint PROBE_AMBIENT_DISABLED = 0u; constant uint PROBE_AMBIENT_ENVIRONMENT = 1u; constant uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; constant uint MAX_FRAME_DECALS = 64u; constant uint MAX_OBJECT_DECALS = 8u; constant uint DECAL_LIVE_ALBEDO = 1u; constant uint DECAL_LIVE_NORMAL = 2u; constant uint DECAL_LIVE_ORM = 4u; constant uint DECAL_LIVE_EMISSION = 8u; constant uint F_INSTANCE_MIRRORED = 128u; constant uint OBJ_EMERGE = 32u; constant float EMERGE_SCALE = 1.3; constant float EMERGE_EDGE = 0.8; constant float EMERGE_DITHER = 0.12; constant uint OBJ_FADE = 64u; constant uint MAX_FRAME_FOG_VOLUMES = 16u; constant uint MAX_OBJECT_FOG_VOLUMES = 4u; constant uint FOG_SHAPE_ELLIPSOID = 0u; constant uint FOG_SHAPE_CONE = 1u; constant uint FOG_SHAPE_CYLINDER = 2u; constant uint FOG_SHAPE_BOX = 3u; constant uint FOG_SHAPE_WORLD = 4u; constant float FOG_SKY_DISTANCE = 1000000.0; constant uint FOG_LIST_ALL = 2147483648u; constant float FOG_GL_X0_ = 0.8611363; constant float FOG_GL_X1_ = 0.339981; constant float FOG_GL_W0_ = 0.3478548; constant float FOG_GL_W1_ = 0.6521452; constant uint OBJ_SKINNED = 16u; constant uint SKIN_JOINTS = 255u; constant bool HEDRA_UNSHADED = true; constant bool HEDRA_HAS_LIGHT = false; constant bool HEDRA_USES_POSITION = true; constant bool HEDRA_SKIP_VERTEX_TRANSFORM = false; constant bool HEDRA_WORLD_VERTEX_COORDS = false; constant bool HEDRA_AMBIENT_LIGHT_DISABLED = true; constant bool HEDRA_FOG_DISABLED = true; constant bool HEDRA_SHADOWS_DISABLED = true; constant bool HEDRA_ALPHA = false; constant bool HEDRA_ALPHA_SCISSOR = false; constant uint HEDRA_DIFFUSE = 0u; constant uint HEDRA_SPECULAR = 2u; constant uint HEDRA_BLEND = 0u; constant uint HEDRA_CULL = 2u; metal::float3 srgb_to_linear( metal::float3 c_1 ) { metal::float3 lo = c_1 / metal::float3(12.92); metal::float3 hi = metal::pow((c_1 + metal::float3(0.055)) / metal::float3(1.055), metal::float3(2.4)); return metal::select(hi, lo, c_1 <= metal::float3(0.04045)); } metal::float4 element_color( uint flags, metal::float4 fallback, constant Globals& G, constant ObjectU& O ) { bool local_4 = {}; bool local_5 = {}; if ((flags & F_MESH) == 0u) { return fallback; } uint overlays = G.params.y; uint _e13 = O.params.w; bool edit_object = _e13 == 1u; if ((flags & F_SEAM) != 0u) { local_4 = (overlays & OV_SEAMS) != 0u; } else { local_4 = false; } bool _e27 = local_4; if (_e27) { metal::float3 _e32 = srgb_to_linear(metal::float3(0.86, 0.0, 0.0)); return metal::float4(_e32, 1.0); } if ((flags & F_SHARP) != 0u) { local_5 = (overlays & OV_SHARP) != 0u; } else { local_5 = false; } bool _e46 = local_5; if (_e46) { metal::float3 _e51 = srgb_to_linear(metal::float3(0.0, 0.85, 0.9)); return metal::float4(_e51, 1.0); } if ((overlays & OV_SELECTION) != 0u) { if (edit_object) { if ((flags & F_SELECTED) != 0u) { metal::float4 _e64 = G.select_color; return _e64; } metal::float4 _e67 = G.wire_color; return _e67; } uint _e71 = O.params.x; if (_e71 == 1u) { metal::float4 _e76 = G.select_color; metal::float4 _e79 = G.active_color; uint _e83 = O.params.y; return (_e83 == 1u) ? _e79 : _e76; } } metal::float4 _e89 = G.wire_color; return _e89; } metal::float4 to_view( metal::float3 p, float pull, constant Globals& G, constant ObjectU& O ) { metal::float4 v = {}; metal::float4x4 _e4 = G.view; metal::float4x4 _e7 = O.model; v = (_e4 * _e7) * metal::float4(p, 1.0); float _e15 = v.z; v.z = _e15 * (1.0 - pull); metal::float4 _e19 = v; return _e19; } metal::float3 linear_to_srgb( metal::float3 c_2 ) { metal::float3 lo_1 = c_2 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(c_2, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, c_2 <= metal::float3(0.0031308)); } metal::float4 target_color( metal::float4 c_3, constant Globals& G ) { metal::float4 k_12 = metal::clamp(c_3, metal::float4(0.0), metal::float4(1.0)); float _e9 = G.fparams.w; if (_e9 > 0.5) { metal::float3 _e13 = linear_to_srgb(k_12.xyz); return metal::float4(_e13, k_12.w); } return k_12; } uint object_light_count( constant ObjectU& O ) { uint _e3 = O.lights.z; return metal::min(_e3, MAX_OBJECT_LIGHTS); } uint object_light( uint k, constant ObjectU& O ) { uint _e4 = O.lights.y; uint _e8 = O.lights.x; uint word = (k < 4u) ? _e8 : _e4; return metal::min((word >> ((k & 3u) * 8u)) & 255u, 63u); } metal::float3 light_count_color( constant ObjectU& O ) { type_8 colors = LIGHT_COUNT_COLORS; uint _e5 = O.lights.w; metal::float3 _e9 = colors.inner[metal::min(unsigned(metal::min(_e5, 9u)), 9u)]; return _e9; } uint pool_sun_count( constant LitU& Lit ) { uint _e3 = Lit.dirs.z; return metal::min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun( uint k_1, constant LitU& Lit ) { uint _e4 = Lit.dirs.y; uint _e8 = Lit.dirs.x; uint word_1 = (k_1 < 4u) ? _e8 : _e4; return metal::min((word_1 >> ((k_1 & 3u) * 8u)) & 255u, 63u); } uint decal_count( constant ObjectU& O ) { uint _e3 = O.decals.z; return metal::min(_e3, MAX_OBJECT_DECALS); } uint decal_entry( uint k_2, constant ObjectU& O ) { uint _e4 = O.decals.y; uint _e8 = O.decals.x; uint word_2 = (k_2 < 4u) ? _e8 : _e4; return (word_2 >> ((k_2 & 3u) * 8u)) & 255u; } float decal_level( DecalEntryU e, metal::float3 world, constant Globals& G, constant DecalU& Decal ) { float _e5 = Decal.lod.x; metal::float4 _e8 = G.camera_pos; float _e15 = Decal.lod.y; float pixel_1 = _e5 * ((_e15 > 0.5) ? 1.0 : metal::length(world - _e8.xyz)); uint _e24 = Decal.counts.y; float top = static_cast(metal::max(_e24, 1u) - 1u); return metal::clamp(metal::log2(metal::max(pixel_1 / metal::max(e.axis_y.w, 0.000001), 1.0)), 0.0, top); } metal::float4 decal_texel( uint layer, metal::float2 uv, float level, bool live, metal::texture2d_array t_decals, metal::sampler s_decals ) { metal::float4 _e11 = t_decals.sample(s_decals, uv, static_cast(layer - 1u), metal::level(live ? 0.0 : level)); return _e11; } DecalSurface apply_decals( metal::float3 world_1, metal::float3 n_geo, DecalSurface surf, constant Globals& G, constant ObjectU& O, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { DecalSurface out_s = {}; uint k_3 = 0u; bool local_6 = {}; float fade = {}; out_s = surf; uint _e4 = decal_count(O); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { uint _e197 = k_3; k_3 = _e197 + 1u; } loop_init = false; uint _e7 = k_3; if (_e7 < _e4) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11, O); DecalEntryU e_2 = Decal.entries.inner[metal::min(unsigned(metal::min(_e12, 63u)), 63u)]; metal::float3 uvw = (e_2.to_local * metal::float4(world_1, 1.0)).xyz; if (metal::all(uvw >= metal::float3(0.0, -1.0, 0.0))) { local_6 = metal::all(uvw <= metal::float3(1.0)); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = metal::pow(1.0 - metal::abs(uvw.y), (uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y); if (e_2.fades.z > 0.0) { float _e55 = fade; fade = _e55 * metal::smoothstep(e_2.fades.z, 1.0, (metal::dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5); } metal::float2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1, G, Decal); uint live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { metal::float4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, (live_1 & DECAL_LIVE_ALBEDO) != 0u, t_decals, s_decals); metal::float3 _e84 = srgb_to_linear(_e82.xyz); metal::float4 a_2 = metal::float4(_e84, _e82.w) * e_2.modulate; float _e90 = fade; float alpha = a_2.w * _e90; metal::float3 _e94 = out_s.base; out_s.base = metal::mix(_e94, a_2.xyz, alpha * e_2.fades.w); if (e_2.layers.y > 0u) { metal::float4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, (live_1 & DECAL_LIVE_NORMAL) != 0u, t_decals, s_decals); float nx = (_e110.x * 2.0) - 1.0; float ny = 1.0 - (_e110.y * 2.0); float nz = metal::sqrt(metal::max(0.0, (1.0 - (nx * nx)) - (ny * ny))); metal::float3 dn = metal::normalize(((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny)); metal::float3 _e143 = out_s.normal; out_s.normal = metal::normalize(metal::mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { metal::float4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, (live_1 & DECAL_LIVE_ORM) != 0u, t_decals, s_decals); float _e159 = out_s.occlusion; out_s.occlusion = metal::mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = metal::mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = metal::mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { metal::float4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, (live_1 & DECAL_LIVE_EMISSION) != 0u, t_decals, s_decals); metal::float3 _e184 = out_s.emission; metal::float3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = _e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193); } } } float _e201 = out_s.roughness; out_s.roughness = metal::clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = metal::clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx( float nh, float a2_ ) { float d_12 = ((nh * nh) * (a2_ - 1.0)) + 1.0; return a2_ / ((PI * d_12) * d_12); } float v_smith( float nl, float nv, float a2_1 ) { float gv = nl * metal::sqrt(((nv * nv) * (1.0 - a2_1)) + a2_1); float g_l = nv * metal::sqrt(((nl * nl) * (1.0 - a2_1)) + a2_1); return 0.5 / metal::max(gv + g_l, 0.0001); } metal::float3 f_schlick( metal::float3 f0_, float vh ) { return f0_ + ((metal::float3(1.0) - f0_) * metal::pow(1.0 - vh, 5.0)); } metal::float3 light_specular( metal::float3 n, metal::float3 v_1, metal::float3 l, metal::float3 radiance, metal::float3 diffuse, metal::float3 f0_1, float a2_2, float specular ) { float nl_2 = metal::dot(n, l); if (nl_2 <= 0.0) { return metal::float3(0.0); } metal::float3 h = metal::normalize(l + v_1); float nh_1 = metal::max(metal::dot(n, h), 0.0); float vh_1 = metal::max(metal::dot(v_1, h), 0.0); float nv_3 = metal::max(metal::dot(n, v_1), 0.0001); metal::float3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); metal::float3 spec = (_e25 * _e26) * _e24; return (((diffuse / metal::float3(3.1415927)) + (spec * specular)) * radiance) * nl_2; } metal::float3 sky( metal::float3 dir, constant LitU& Lit ) { metal::float4 _e4 = Lit.up; float a_3 = metal::acos(metal::clamp(metal::dot(metal::normalize(dir), _e4.xyz), -1.0, 1.0)); if (a_3 <= 1.5707964) { float c_25 = 1.0 - (a_3 / 1.5707964); float k_13 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_25, 0.000001), 6.6666665), 0.0, 1.0); metal::float4 _e30 = Lit.sky_horizon; metal::float4 _e34 = Lit.sky_top; return metal::mix(_e30.xyz, _e34.xyz, k_13); } float c_26 = (a_3 - 1.5707964) / 1.5707964; float k_14 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_26, 0.000001), 50.0), 0.0, 1.0); metal::float4 _e54 = Lit.ground_horizon; metal::float4 _e58 = Lit.ground_bottom; return metal::mix(_e54.xyz, _e58.xyz, k_14); } metal::float3 filmic_curve( metal::float3 x ) { return (((x * ((0.88 * x) + metal::float3(0.1 * 0.6))) + metal::float3(0.2 * 0.01)) / ((x * ((0.88 * x) + metal::float3(0.6))) + metal::float3(0.2 * 0.3))) - metal::float3(0.01 / 0.3); } metal::float3 aces_curve( metal::float3 c_4, float white ) { metal::float3 x_2 = metal::float3(1.8 * metal::dot(metal::float3(0.59719, 0.35458, 0.04823), c_4), 1.8 * metal::dot(metal::float3(0.076, 0.90834, 0.01566), c_4), 1.8 * metal::dot(metal::float3(0.0284, 0.13383, 0.83777), c_4)); metal::float3 t_2 = ((x_2 * (x_2 + metal::float3(0.0245786))) - metal::float3(0.000090537)) / ((x_2 * ((0.983729 * x_2) + metal::float3(0.432951))) + metal::float3(0.238081)); metal::float3 o_5 = metal::float3(metal::dot(metal::float3(1.60475, -0.53108, -0.07367), t_2), metal::dot(metal::float3(-0.10208, 1.10813, -0.00605), t_2), metal::dot(metal::float3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = 1.8 * white; float wt = ((w_1 * (w_1 + 0.0245786)) - 0.000090537) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081); return o_5 / metal::float3(wt); } metal::float3 agx_curve( metal::float3 c_5 ) { metal::float3 v_2 = {}; metal::float3x3 inset = metal::float3x3(metal::float3(0.54490817, 0.14044006, 0.08882741), metal::float3(0.37377945, 0.7541096, 0.17887713), metal::float3(0.08138498, 0.10543358, 0.73225)); metal::float3x3 outset = metal::float3x3(metal::float3(1.964551, -0.29932243, -0.16436833), metal::float3(-0.85585845, 1.3264511, -0.23822464), metal::float3(-0.10886711, -0.02708402, 1.4026654)); v_2 = inset * metal::max(c_5, metal::float3(0.0000000002)); metal::float3 _e34 = v_2; v_2 = (metal::clamp(metal::log2(_e34), metal::float3(-12.473931), metal::float3(4.0260687)) - metal::float3(-12.473931)) / metal::float3(4.0260687 - -12.473931); metal::float3 _e44 = v_2; metal::float3 _e45 = v_2; metal::float3 x2_ = _e44 * _e45; metal::float3 x4_ = x2_ * x2_; metal::float3 _e48 = v_2; metal::float3 _e56 = v_2; metal::float3 _e64 = v_2; metal::float3 p_7 = (((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_); return outset * metal::pow(metal::max(p_7, metal::float3(0.0000000001)), metal::float3(2.4)); } metal::float3 tonemap( metal::float3 c_in, constant LitU& Lit ) { float _e4 = Lit.tone.x; metal::float3 c_27 = metal::max(c_in * _e4, metal::float3(0.0)); float white_1 = Lit.tone.y; uint mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return ((white_1 * c_27) + c_27) / ((c_27 * white_1) + metal::float3(white_1)); } if (mode == TONEMAP_FILMIC) { metal::float3 _e27 = filmic_curve(c_27); metal::float3 _e29 = filmic_curve(metal::float3(white_1)); return _e27 / _e29; } if (mode == TONEMAP_ACES) { metal::float3 _e33 = aces_curve(c_27, white_1); return _e33; } if (mode == TONEMAP_AGX) { metal::float3 _e36 = agx_curve(c_27); return _e36; } return c_27; } float emerge_hash( metal::float3 p_1 ) { metal::float3 q = {}; q = metal::fract(p_1 * 0.1031); metal::float3 _e5 = q; metal::float3 _e6 = q; metal::float3 _e7 = q; q = _e5 + metal::float3(metal::dot(_e6, _e7.zyx + metal::float3(31.32))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return metal::fract((_e16 + _e18) * _e21); } float emerge_noise( metal::float3 p_2 ) { metal::float3 i_13 = metal::floor(p_2); metal::float3 f = metal::fract(p_2); metal::float3 u_1 = (f * f) * (metal::float3(3.0) - (2.0 * f)); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 0.0)); float _e24 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 0.0)); float _e30 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 0.0)); float a_4 = metal::mix(metal::mix(_e10, _e16, u_1.x), metal::mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash(i_13 + metal::float3(0.0, 0.0, 1.0)); float _e46 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 1.0)); float _e54 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 1.0)); float _e60 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 1.0)); float b_2 = metal::mix(metal::mix(_e40, _e46, u_1.x), metal::mix(_e54, _e60, u_1.x), u_1.y); return metal::mix(a_4, b_2, u_1.z); } float emerge_reveal( metal::float3 world_2, metal::float2 pixel, constant ObjectU& O ) { float n_1 = {}; uint _e6 = O.extra.x; if (SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true) { return 1.0; } float e_3 = O.normal[0].w; metal::float3 w_2 = world_2 * EMERGE_SCALE; float _e21 = emerge_noise(w_2); float _e29 = emerge_noise((w_2 * 2.7) + metal::float3(17.1)); n_1 = metal::smoothstep(0.2, 0.8, (_e21 * 0.65) + (_e29 * 0.35)); if (pixel.x >= 0.0) { float ign = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(pixel), metal::float2(0.06711056, 0.00583715)))); float _e49 = n_1; n_1 = metal::clamp(_e49 + ((ign - 0.5) * EMERGE_DITHER), 0.0, 1.0); } float _e60 = n_1; return ((e_3 * 1.8) - _e60) / EMERGE_EDGE; } metal::float3 emerge_tint( metal::float3 c_6, float r, constant ObjectU& O, constant LitU& Lit ) { bool local_7 = {}; uint _e6 = O.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = r >= 1.0; } else { local_7 = true; } bool _e17 = local_7; if (SPEC_EMERGE ? _e17 : true) { return c_6; } uint _e23 = O.extra.w; metal::float3 _e26 = srgb_to_linear(metal::unpack_unorm4x8_to_float(_e23).xyz); metal::float3 _e27 = tonemap(_e26, Lit); return metal::mix(_e27, c_6, metal::smoothstep(0.0, 1.0, r)); } metal::float3 item_fade( metal::float3 c_7, constant ObjectU& O, constant LitU& Lit ) { uint _e5 = O.extra.x; if (SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true) { return c_7; } metal::float4 f_1 = O.normal[3]; metal::float3 _e17 = tonemap(f_1.xyz, Lit); return metal::mix(c_7, _e17, f_1.w); } metal::float3 sky_dir( metal::float3 d, constant SkyU& Sky ) { metal::float4x4 _e3 = Sky.to_sky; return metal::normalize((_e3 * metal::float4(d, 0.0)).xyz); } float sky_curve( float c_8, float curve ) { return metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_8, 0.000001), 1.0 / curve), 0.0, 1.0); } metal::float3 procedural_sky( metal::float3 d_1, constant SkyU& Sky ) { metal::float3 sky_1 = {}; uint i = 0u; float v_6 = metal::acos(metal::clamp(d_1.y, -1.0, 1.0)); metal::float4 _e8 = Sky.sky_horizon; metal::float4 _e12 = Sky.sky_top; float _e21 = Sky.sky_top.w; float _e22 = sky_curve(1.0 - (v_6 / 1.5707964), _e21); float _e27 = Sky.sky_horizon.w; sky_1 = metal::mix(_e8.xyz, _e12.xyz, _e22) * _e27; uint _e33 = Sky.flags.z; uint suns = metal::min(_e33, SKY_SUNS); uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { uint _e79 = i; i = _e79 + 1u; } loop_init_1 = false; uint _e38 = i; if (_e38 < suns) { } else { break; } { uint _e42 = i; SunU sun = Sky.suns.inner[metal::min(unsigned(_e42), 3u)]; float size = sun.direction.w; float a_5 = metal::acos(metal::clamp(metal::dot(sun.direction.xyz, d_1), -1.0, 1.0)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { float _e60 = Sky.sun.x; if (a_5 < _e60) { float _e66 = Sky.sun.x; float c2_ = (a_5 - size) / (_e66 - size); metal::float3 _e71 = sky_1; float _e75 = Sky.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = metal::mix(sun.color.xyz, _e71, _e76); } } } } metal::float4 _e83 = Sky.ground_horizon; metal::float4 _e87 = Sky.ground_bottom; float _e96 = Sky.ground_bottom.w; float _e97 = sky_curve((v_6 - 1.5707964) / 1.5707964, _e96); float _e102 = Sky.ground_horizon.w; metal::float3 ground = metal::mix(_e83.xyz, _e87.xyz, _e97) * _e102; metal::float3 _e104 = sky_1; float _e112 = Sky.sun.z; return ((d_1.y >= 0.0) ? _e104 : ground) * _e112; } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } int naga_mod(int lhs, int rhs) { int divisor = metal::select(rhs, 1, (lhs == (-2147483647 - 1) & rhs == -1) | (rhs == 0)); return lhs - (lhs / divisor) * divisor; } metal::float3 panorama( metal::float3 d_2, constant SkyU& Sky, metal::texture2d t_panorama, metal::sampler s_panorama ) { metal::float2 uv_4 = metal::float2(metal::fract(metal::atan2(d_2.x, -(d_2.z)) / 6.2831855), metal::acos(metal::clamp(d_2.y, -1.0, 1.0)) / PI); uint _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { metal::float4 _e27 = t_panorama.sample(s_panorama, uv_4, metal::level(0.0)); float _e32 = Sky.sun.z; return _e27.xyz * _e32; } metal::int2 size_1 = static_cast(metal::uint2(t_panorama.get_width(0), t_panorama.get_height(0))); int x_3 = naga_mod(as_type(as_type(naga_mod(naga_f2i32(metal::floor(uv_4.x * static_cast(size_1.x))), size_1.x)) + as_type(size_1.x)), size_1.x); int y = metal::clamp(naga_f2i32(metal::floor(uv_4.y * static_cast(size_1.y))), 0, as_type(as_type(size_1.y) - as_type(1))); uint clamped_lod_e64 = metal::min(uint(0), t_panorama.get_num_mip_levels() - 1); metal::float4 _e64 = t_panorama.read(metal::min(metal::uint2(metal::int2(x_3, y)), metal::uint2(t_panorama.get_width(clamped_lod_e64), t_panorama.get_height(clamped_lod_e64)) - 1), clamped_lod_e64); float _e69 = Sky.sun.z; return _e64.xyz * _e69; } metal::float3 sh_irradiance( metal::float3 n_2, constant SkyU& Sky ) { metal::float3 c_9 = {}; metal::float4 _e4 = Sky.sh.inner[0]; c_9 = _e4.xyz * 0.282095; metal::float3 _e9 = c_9; metal::float4 _e13 = Sky.sh.inner[1]; c_9 = _e9 + (_e13.xyz * (0.488603 * n_2.y)); metal::float3 _e20 = c_9; metal::float4 _e24 = Sky.sh.inner[2]; c_9 = _e20 + (_e24.xyz * (0.488603 * n_2.z)); metal::float3 _e31 = c_9; metal::float4 _e35 = Sky.sh.inner[3]; c_9 = _e31 + (_e35.xyz * (0.488603 * n_2.x)); metal::float3 _e42 = c_9; metal::float4 _e46 = Sky.sh.inner[4]; c_9 = _e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y)); metal::float3 _e55 = c_9; metal::float4 _e59 = Sky.sh.inner[5]; c_9 = _e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z)); metal::float3 _e68 = c_9; metal::float4 _e72 = Sky.sh.inner[6]; c_9 = _e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0))); metal::float3 _e85 = c_9; metal::float4 _e89 = Sky.sh.inner[7]; c_9 = _e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z)); metal::float3 _e98 = c_9; metal::float4 _e102 = Sky.sh.inner[8]; c_9 = _e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y)))); metal::float3 _e115 = c_9; return metal::max(_e115, metal::float3(0.0)); } metal::float3 radiance_1( metal::float3 d_3, float roughness, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { uint _e5 = Sky.flags.y; float top_1 = static_cast(metal::max(_e5, 1u) - 1u); metal::float4 _e14 = t_radiance.sample(s_radiance, d_3, metal::level(roughness * top_1)); return _e14.xyz; } metal::float2 env_brdf_approx( float roughness_1, float nv_1 ) { metal::float4 r_6 = (roughness_1 * metal::float4(-1.0, -0.0275, -0.572, 0.022)) + metal::float4(1.0, 0.0425, 1.04, -0.04); float a004_ = (metal::min(r_6.x * r_6.x, metal::exp2(-9.28 * nv_1)) * r_6.x) + r_6.y; return (metal::float2(-1.04, 1.04) * a004_) + r_6.zw; } float pow8_( float x_1 ) { float x2_1 = metal::max(x_1, 0.0) * metal::max(x_1, 0.0); float x4_1 = x2_1 * x2_1; return x4_1 * x4_1; } metal::float3 fog_sun_scatter( metal::float3 fc, metal::float3 dir_1, constant LitU& Lit, constant SkyU& Sky ) { metal::float3 c_10 = {}; uint k_4 = 0u; c_10 = fc; float _e6 = Sky.fog_color.w; if (_e6 > 0.001) { uint _e9 = pool_sun_count(Lit); uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { uint _e51 = k_4; k_4 = _e51 + 1u; } loop_init_2 = false; uint _e12 = k_4; if (_e12 < _e9) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14, Lit); uint _e21 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].info.x; if (_e21 == LIGHT_DIRECTIONAL) { metal::float3 _e24 = c_10; metal::float4 _e29 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].color; metal::float4 _e38 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].direction; float _e42 = pow8_(metal::dot(dir_1, -(_e38.xyz))); float _e47 = Sky.fog_color.w; c_10 = _e24 + (((_e29.xyz / metal::float3(3.1415927)) * _e42) * _e47); } } } } metal::float3 _e53 = c_10; return _e53; } metal::float3 sky_fog( metal::float3 c_11, metal::float3 dir_2, constant LitU& Lit, constant SkyU& Sky ) { metal::float4 _e4 = Sky.fog_color; float _e9 = Sky.fog_depth.w; metal::float3 _e11 = fog_sun_scatter(metal::mix(_e4.xyz, c_11, _e9), dir_2, Lit, Sky); float _e15 = Sky.fog.y; return metal::mix(c_11, _e11, _e15); } metal::float3 surface_fog( metal::float3 c_12, metal::float3 world_3, metal::float3 dir_3, constant Globals& G, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { float dist = {}; float amount = {}; metal::float3 fc_1 = {}; bool local_8 = {}; metal::float4x4 _e5 = G.view; float depth = -((_e5 * metal::float4(world_3, 1.0)).z); metal::float4 _e13 = G.camera_pos; dist = metal::distance(world_3, _e13.xyz); float _e20 = Sky.fog_origin.w; if (_e20 > 0.5) { float _e26 = Sky.fog_origin.x; dist = metal::max(depth - _e26, 0.0); } uint _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { float _e42 = Sky.fog_depth.x; float _e46 = Sky.fog_depth.y; float _e47 = dist; float z = metal::smoothstep(_e42, _e46, _e47); float _e54 = Sky.fog_depth.z; float _e63 = Sky.fog.x; amount = ((z > 0.0) ? metal::pow(metal::max(z, 0.000001), _e54) : 0.0) * _e63; } else { float _e65 = dist; float _e70 = Sky.fog.x; amount = 1.0 - metal::exp(metal::min(0.0, -(_e65) * _e70)); } float _e80 = Sky.fog.w; if (metal::abs(_e80) >= 0.0001) { metal::float4 _e86 = Lit.up; float y_1 = metal::dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = Sky.fog.z; float _e98 = Sky.fog.w; amount = metal::max(_e89, 1.0 - metal::exp(metal::min(0.0, (y_1 - _e93) * _e98))); } float _e106 = amount; amount = metal::clamp(_e106, 0.0, 1.0); metal::float4 _e112 = Sky.fog_color; fc_1 = _e112.xyz; uint _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { float _e129 = Sky.fog_depth.w; local_8 = _e129 > 0.0; } else { local_8 = false; } bool _e133 = local_8; if (SPEC_AMBIENT_SKY ? _e133 : false) { float _e139 = Sky.fog_origin.y; float _e144 = Sky.fog_origin.z; float _e148 = Sky.fog_origin.y; float t_3 = metal::clamp((depth - _e139) / metal::max(_e144 - _e148, 0.000001), 0.0, 1.0); uint _e159 = Sky.flags.y; float top_2 = static_cast(metal::max(_e159, 2u) - 1u); float rough = metal::mix(1.0 / top_2, 1.0, 1.0 - t_3); metal::float3 _e171 = fc_1; metal::float3 _e172 = sky_dir(dir_3, Sky); metal::float3 _e173 = radiance_1(_e172, rough, Sky, t_radiance, s_radiance); float _e177 = Sky.sun.w; float _e182 = Sky.fog_depth.w; fc_1 = metal::mix(_e171, _e173 * _e177, _e182); } metal::float3 _e184 = fc_1; metal::float3 _e185 = fog_sun_scatter(_e184, dir_3, Lit, Sky); fc_1 = _e185; metal::float3 _e186 = fc_1; float _e187 = amount; return metal::mix(c_12, _e186, _e187); } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::float2 fog_chord( uint k_5, metal::float3 o, metal::float3 d_4, float t_end_ray, constant FogU& Fog ) { metal::float2 r_1 = {}; float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].albedo.w; uint shape = naga_f2u32(_e9); float _e16 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].emission.w; float t_end_1 = metal::min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return metal::float2(0.0, t_end_1); } metal::float4 _e26 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].size; metal::float3 h_1 = _e26.xyz * 0.5; metal::float3 dd = metal::select(d_4, metal::float3(0.000000000001), metal::abs(d_4) < metal::float3(0.000000000001)); metal::float3 sa = (-(h_1) - o) / dd; metal::float3 sb = (h_1 - o) / dd; metal::float3 s_in = metal::min(sa, sb); metal::float3 s_out = metal::max(sa, sb); r_1 = metal::float2(metal::max(0.0, s_in.y), metal::min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = metal::float2(metal::max(metal::max(_e60, s_in.x), s_in.z), metal::min(metal::min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = metal::dot(d_4 / h_1, d_4 / h_1); b = metal::dot(o / h_1, d_4 / h_1); c_13 = metal::dot(o / h_1, o / h_1) - 1.0; } else { float rad = metal::min(h_1.x, h_1.z); float k_15 = (shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0; float w_3 = h_1.y - o.y; a = ((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y); b = ((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y); c_13 = ((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad)); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = (_e139 * _e140) - (_e142 * _e143); float _e146 = a; if (metal::abs(_e146) < 0.000000000001) { float _e150 = b; if (metal::abs(_e150) < 0.000000000001) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = (_e157 > 0.0) ? -1.0 : _e156; } else { float _e162 = b; if (_e162 > 0.0) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = metal::min(_e167, -(_e168) / (2.0 * _e170)); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = metal::max(_e177, -(_e178) / (2.0 * _e180)); } } } else { if (disc < 0.0) { float _e189 = r_1.y; float _e190 = a; r_1.y = (_e190 > 0.0) ? -1.0 : _e189; } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = metal::min((-(_e195) - metal::sqrt(disc)) / _e199, (-(_e201) + metal::sqrt(disc)) / _e205); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = metal::max((-(_e208) - metal::sqrt(disc)) / _e212, (-(_e214) + metal::sqrt(disc)) / _e218); float _e221 = a; if (_e221 > 0.0) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = metal::float2(metal::max(_e225, lo_2), metal::min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if (_e232 < metal::min(_e234, lo_2)) { float _e239 = r_1.y; r_1.y = metal::min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = metal::max(_e243, hi_2); } } } } metal::float2 _e245 = r_1; return _e245; } float fog_density( uint k_6, metal::float3 p_3, metal::float3 lp, constant FogU& Fog ) { float rho = {}; float sdf = 0.0; FogEntryU e_4 = Fog.entries.inner[metal::min(unsigned(k_6), 15u)]; metal::float4 _e14 = Fog.up; rho = e_4.material.x * metal::min(metal::exp2(-(e_4.material.y) * (metal::dot(p_3, _e14.xyz) - e_4.material.w)), 1.0); if (e_4.material.z > 0.0) { uint shape_1 = naga_f2u32(e_4.albedo.w); metal::float3 h_2 = e_4.size.xyz * 0.5; float rad_1 = metal::min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { float k0_ = metal::length(lp / h_2); sdf = (k0_ * (k0_ - 1.0)) / metal::max(metal::length(lp / (h_2 * h_2)), 0.000000000001); } else { if (shape_1 == FOG_SHAPE_BOX) { metal::float3 q_3 = metal::abs(lp) - h_2; sdf = metal::length(metal::max(q_3, metal::float3(0.0))) + metal::min(metal::max(q_3.x, metal::max(q_3.y, q_3.z)), 0.0); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { metal::float2 q_4 = metal::float2(metal::length(lp.xz) - rad_1, metal::abs(lp.y) - h_2.y); sdf = metal::min(metal::max(q_4.x, q_4.y), 0.0) + metal::length(metal::max(q_4, metal::float2(0.0))); } else { metal::float2 n_11 = metal::normalize(metal::float2(1.0 / metal::max(0.001, rad_1 * 0.5), 1.0 / metal::max(0.001, h_2.y))); sdf = metal::max(metal::dot(n_11, metal::float2(metal::length(lp.xz), lp.y - h_2.y)), -(h_2.y) - lp.y); } } } float _e116 = rho; float _e117 = sdf; rho = _e116 * metal::pow(metal::clamp((-2.0 * _e117) / e_4.size.w, 0.0, 1.0), e_4.material.z); } float _e130 = rho; return _e130; } float fog_falloff_depth( uint k_7, float a_1, float b_1, float t0_, float t1_, constant FogU& Fog ) { metal::float4 m_4 = Fog.entries.inner[metal::min(unsigned(k_7), 15u)].material; float hf = m_4.y; if ((hf * b_1) == 0.0) { return (m_4.x * (t1_ - t0_)) * metal::min(metal::exp2(-(hf) * a_1), 1.0); } float s_2 = metal::clamp(-(a_1) / b_1, t0_, t1_); float lo_3 = (b_1 > 0.0) ? s_2 : t0_; float hi_3 = (b_1 > 0.0) ? t1_ : s_2; float x_4 = ((hf * metal::abs(b_1)) * (hi_3 - lo_3)) * 0.6931472; float g = (x_4 < 0.01) ? (1.0 - (x_4 * (0.5 - (x_4 * (0.16666667 - (x_4 / 24.0)))))) : ((1.0 - metal::exp(-(x_4))) / x_4); float top_3 = metal::min(metal::exp2(-(hf) * metal::max(a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3)), 0.0)), 1.0); return m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g)); } float omni_attenuation( float d_5, float inv_range, float decay ) { float nd = {}; nd = d_5 * inv_range; float _e5 = nd; float _e6 = nd; nd = _e5 * _e6; float _e8 = nd; float _e9 = nd; nd = _e8 * _e9; float _e11 = nd; nd = metal::max(1.0 - _e11, 0.0); float _e16 = nd; float _e17 = nd; nd = _e16 * _e17; float _e19 = nd; return _e19 * metal::pow(metal::max(d_5, 0.0001), -(decay)); } metal::float3 fog_light( uint n_3, metal::float3 p_4, metal::float3 dir_4, constant LitU& Lit, constant FogU& Fog ) { metal::float3 sum = {}; uint k_8 = 0u; metal::float3 l_1 = {}; float atten = {}; metal::float4 _e5 = Fog.ambient; float _e10 = Fog.params.y; sum = _e5.xyz * _e10; float g_1 = Fog.params.x; metal::uint4 lights = Fog.entries.inner[metal::min(unsigned(n_3), 15u)].lights; uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { uint _e138 = k_8; k_8 = _e138 + 1u; } loop_init_3 = false; uint _e24 = k_8; if (_e24 < metal::min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = metal::min((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u, 63u); LightU li = Lit.lights.inner[metal::min(unsigned(i_14), 63u)]; l_1 = -(li.direction.xyz); atten = 1.0; if (li.info.x != LIGHT_DIRECTIONAL) { metal::float3 rel = li.position.xyz - p_4; l_1 = rel / metal::float3(metal::max(metal::length(rel), 0.000001)); float _e72 = omni_attenuation(metal::length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { metal::float3 _e77 = l_1; float rim = metal::max(0.0001, (1.0 - metal::max(metal::dot(-(_e77), li.direction.xyz), li.spot.x)) / metal::max(1.0 - li.spot.x, 0.000001)); float _e96 = atten; atten = _e96 * (1.0 - metal::pow(rim, li.spot.y)); } } metal::float3 _e108 = l_1; float q_5 = (1.0 + (g_1 * g_1)) - ((2.0 * g_1) * metal::dot(dir_4, _e108)); metal::float3 _e112 = sum; float _e115 = atten; float _e133 = Fog.light_fog.inner[metal::min(unsigned(i_14 >> 2u), 15u)][metal::min(unsigned(i_14 & 3u), 3u)]; sum = _e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * metal::sqrt(q_5))) * _e133)); } } metal::float3 _e140 = sum; return _e140; } metal::float4 fog_entry( uint k_9, metal::float3 o_1, metal::float3 d_6, metal::float2 ch, constant LitU& Lit, constant FogU& Fog ) { float split = {}; bool local_9 = {}; bool local_10 = {}; metal::float3 q_1 = metal::float3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = {}; bool local_12 = {}; FogEntryU e_5 = Fog.entries.inner[metal::min(unsigned(k_9), 15u)]; metal::float3 lo_4 = (e_5.to_local * metal::float4(o_1, 1.0)).xyz; metal::float3 ld = (e_5.to_local * metal::float4(d_6, 0.0)).xyz; metal::float4 _e20 = Fog.up; float a_6 = metal::dot(o_1, _e20.xyz) - e_5.material.w; metal::float4 _e28 = Fog.up; float b_3 = metal::dot(d_6, _e28.xyz); bool edge = e_5.material.z > 0.0; split = (ch.x + ch.y) * 0.5; if (e_5.material.y > 0.0) { local_9 = (-(a_6) / b_3) > ch.x; } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = (-(a_6) / b_3) < ch.y; } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = -(a_6) / b_3; } uint2 loop_bound_4 = uint2(4294967295u); bool loop_init_4 = true; while(true) { if (metal::all(loop_bound_4 == uint2(0u))) { break; } loop_bound_4 -= uint2(loop_bound_4.y == 0u, 1u); if (!loop_init_4) { uint _e160 = i_1; i_1 = _e160 + 1u; } loop_init_4 = false; uint _e70 = i_1; if (_e70 < (edge ? 12u : 4u)) { } else { break; } { uint _e75 = i_1; uint j = _e75 & 3u; if (!((j == 0u))) { local_11 = j == 3u; } else { local_11 = true; } bool _e88 = local_11; float x_5 = _e88 ? FOG_GL_X0_ : FOG_GL_X1_; if (!((j == 0u))) { local_12 = j == 3u; } else { local_12 = true; } bool _e100 = local_12; float w_4 = _e100 ? FOG_GL_W0_ : FOG_GL_W1_; float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; metal::float2 seg = (_e112 < 4u) ? ch : ((_e108 < 8u) ? metal::float2(ch.x, _e106) : metal::float2(_e102, ch.y)); float half_len = (seg.y - seg.x) * 0.5; float t_4 = ((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_5) : x_5)); metal::float3 p_8 = o_1 + (d_6 * t_4); float _e136 = fog_density(k_9, p_8, lo_4 + (ld * t_4), Fog); uint _e137 = i_1; if (_e137 < 4u) { metal::float3 _e140 = q_1; metal::float3 _e143 = fog_light(k_9, p_8, d_6, Lit, Fog); q_1 = _e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * metal::clamp(_e136, 0.0, 1.0))); } else { float _e155 = tau; tau = _e155 + ((w_4 * half_len) * _e136); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y, Fog); tau = _e165; } metal::float3 _e166 = q_1; float _e167 = tau; return metal::float4(_e166, _e167); } metal::float3 fog_integrate( metal::float3 c_14, metal::float3 o_2, metal::float3 d_7, float t_end, uint list, constant LitU& Lit, constant FogU& Fog ) { type_28 at = {}; type_29 chords = {}; uint m = 0u; uint i_2 = 0u; bool local_13 = {}; type_30 parts = {}; uint i_3 = 0u; uint n_4 = 0u; float avail = {}; uint i_4 = {}; uint i_5 = {}; metal::float3 q_2 = metal::float3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all = list >= FOG_LIST_ALL; uint2 loop_bound_5 = uint2(4294967295u); bool loop_init_5 = true; while(true) { if (metal::all(loop_bound_5 == uint2(0u))) { break; } loop_bound_5 -= uint2(loop_bound_5.y == 0u, 1u); if (!loop_init_5) { uint _e72 = i_2; i_2 = _e72 + 1u; } loop_init_5 = false; uint _e13 = i_2; uint _e18 = Fog.counts.x; if (_e13 < (all ? metal::min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u)) { } else { break; } { uint _e23 = i_2; uint byte = (list >> ((_e23 & 3u) * 8u)) & 127u; if (!(all)) { local_13 = byte == 0u; } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = all ? _e42 : (metal::min(byte, MAX_FRAME_FOG_VOLUMES) - 1u); metal::float4x4 to_local = Fog.entries.inner[metal::min(unsigned(k_16), 15u)].to_local; metal::float2 _e57 = fog_chord(k_16, (to_local * metal::float4(o_2, 1.0)).xyz, (to_local * metal::float4(d_7, 0.0)).xyz, t_end, Fog); if (_e57.y > _e57.x) { uint _e61 = m; at.inner[metal::min(unsigned(_e61), 3u)] = k_16; uint _e63 = m; chords.inner[metal::min(unsigned(_e63), 3u)] = _e57; uint _e66 = m; m = _e66 + 1u; uint _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } } uint2 loop_bound_6 = uint2(4294967295u); bool loop_init_6 = true; while(true) { if (metal::all(loop_bound_6 == uint2(0u))) { break; } loop_bound_6 -= uint2(loop_bound_6.y == 0u, 1u); if (!loop_init_6) { uint _e90 = i_3; i_3 = _e90 + 1u; } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if (_e77 < _e78) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at.inner[metal::min(unsigned(_e82), 3u)]; uint _e85 = i_3; metal::float2 _e87 = chords.inner[metal::min(unsigned(_e85), 3u)]; metal::float4 _e88 = fog_entry(_e84, o_2, d_7, _e87, Lit, Fog); parts.inner[metal::min(unsigned(_e80), 3u)] = _e88; } } uint2 loop_bound_7 = uint2(4294967295u); bool loop_init_7 = true; while(true) { if (metal::all(loop_bound_7 == uint2(0u))) { break; } loop_bound_7 -= uint2(loop_bound_7.y == 0u, 1u); if (!loop_init_7) { uint _e221 = n_4; n_4 = _e221 + 1u; } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if (_e94 < _e95) { } else { break; } { uint _e97 = n_4; float _e100 = parts.inner[metal::min(unsigned(_e97), 3u)].w; if (_e100 < 0.0) { avail = 0.0; i_4 = 0u; uint2 loop_bound_8 = uint2(4294967295u); bool loop_init_8 = true; while(true) { if (metal::all(loop_bound_8 == uint2(0u))) { break; } loop_bound_8 -= uint2(loop_bound_8.y == 0u, 1u); if (!loop_init_8) { uint _e153 = i_4; i_4 = _e153 + 1u; } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if (_e107 < _e108) { } else { break; } { uint _e110 = i_4; float _e113 = chords.inner[metal::min(unsigned(_e110), 3u)].y; uint _e114 = n_4; float _e117 = chords.inner[metal::min(unsigned(_e114), 3u)].y; uint _e119 = i_4; float _e122 = chords.inner[metal::min(unsigned(_e119), 3u)].x; uint _e123 = n_4; float _e126 = chords.inner[metal::min(unsigned(_e123), 3u)].x; uint _e131 = i_4; float _e134 = chords.inner[metal::min(unsigned(_e131), 3u)].y; uint _e135 = i_4; float _e138 = chords.inner[metal::min(unsigned(_e135), 3u)].x; float share = metal::max(metal::min(_e113, _e117) - metal::max(_e122, _e126), 0.0) / metal::max(_e134 - _e138, 0.000001); float _e143 = avail; uint _e144 = i_4; float _e147 = parts.inner[metal::min(unsigned(_e144), 3u)].w; avail = _e143 + (metal::max(_e147, 0.0) * share); } } uint _e155 = n_4; float _e158 = parts.inner[metal::min(unsigned(_e155), 3u)].w; float _e160 = avail; float f_2 = metal::min(-(_e158) / metal::max(_e160, 0.000000000001), 1.0); i_5 = 0u; uint2 loop_bound_9 = uint2(4294967295u); bool loop_init_9 = true; while(true) { if (metal::all(loop_bound_9 == uint2(0u))) { break; } loop_bound_9 -= uint2(loop_bound_9.y == 0u, 1u); if (!loop_init_9) { uint _e218 = i_5; i_5 = _e218 + 1u; } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if (_e168 < _e169) { } else { break; } { uint _e171 = i_5; float _e174 = parts.inner[metal::min(unsigned(_e171), 3u)].w; if (_e174 > 0.0) { uint _e177 = i_5; float _e180 = chords.inner[metal::min(unsigned(_e177), 3u)].y; uint _e181 = n_4; float _e184 = chords.inner[metal::min(unsigned(_e181), 3u)].y; uint _e186 = i_5; float _e189 = chords.inner[metal::min(unsigned(_e186), 3u)].x; uint _e190 = n_4; float _e193 = chords.inner[metal::min(unsigned(_e190), 3u)].x; uint _e198 = i_5; float _e201 = chords.inner[metal::min(unsigned(_e198), 3u)].y; uint _e202 = i_5; float _e205 = chords.inner[metal::min(unsigned(_e202), 3u)].x; float share_1 = metal::max(metal::min(_e180, _e184) - metal::max(_e189, _e193), 0.0) / metal::max(_e201 - _e205, 0.000001); uint _e210 = i_5; metal::float4 _e212 = parts.inner[metal::min(unsigned(_e210), 3u)]; parts.inner[metal::min(unsigned(_e210), 3u)] = _e212 * (1.0 - (share_1 * f_2)); } } } } } } uint2 loop_bound_10 = uint2(4294967295u); bool loop_init_10 = true; while(true) { if (metal::all(loop_bound_10 == uint2(0u))) { break; } loop_bound_10 -= uint2(loop_bound_10.y == 0u, 1u); if (!loop_init_10) { uint _e252 = i_6; i_6 = _e252 + 1u; } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if (_e230 < _e231) { } else { break; } { uint _e233 = i_6; float _e236 = parts.inner[metal::min(unsigned(_e233), 3u)].w; if (_e236 > 0.0) { metal::float3 _e239 = q_2; uint _e240 = i_6; metal::float4 _e242 = parts.inner[metal::min(unsigned(_e240), 3u)]; q_2 = _e239 + _e242.xyz; float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts.inner[metal::min(unsigned(_e246), 3u)].w; tau_1 = _e245 + _e249; } } } float _e254 = tau_1; float t_5 = metal::exp(-(_e254)); metal::float3 _e258 = q_2; float _e261 = tau_1; return (c_14 * t_5) + (_e258 * ((1.0 - t_5) / metal::max(_e261, 0.00001))); } metal::float3 fog_volumes( metal::float3 c_15, metal::float3 world_4, uint list_1, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_6 = (_e36 > 0.5) ? (world_4 - (back * (_e26 * metal::float4(world_4, 1.0)).z)) : _e22.xyz; float len = metal::length(world_4 - o_6); metal::float3 _e47 = fog_integrate(c_15, o_6, (world_4 - o_6) / metal::float3(metal::max(len, 0.000001)), len, list_1, Lit, Fog); return (len > 0.0) ? _e47 : c_15; } metal::float3 sky_fog_volumes( metal::float3 c_16, metal::float3 near_point, metal::float3 dir_5, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back_1 = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_7 = (_e36 > 0.5) ? (near_point - (back_1 * (_e26 * metal::float4(near_point, 1.0)).z)) : _e22.xyz; uint _e44 = Fog.counts.y; metal::float3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44, Lit, Fog); float _e49 = Fog.params.z; return metal::mix(c_16, _e45, _e49); } float shadow_factor( uint i_7, metal::float3 world_5, metal::float3 n_geo_1, metal::float3 l_2, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow ) { uint part = 0u; uint c_17 = 0u; bool local_14 = {}; bool local_15 = {}; bool local_16 = {}; float vis = 0.0; int dy = -1; int dx = {}; uint kind = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.x; metal::float4 _e14 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].position; metal::float3 light_pos = _e14.xyz; uint _e21 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.w; uint slot = metal::min(_e21, 15u); metal::float4 params = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].params; uint first = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.x; uint _e40 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.y; uint count = metal::max(_e40, 1u); metal::float4x4 _e45 = G.view; float view_depth = -((_e45 * metal::float4(world_5, 1.0)).z); if (kind == LIGHT_DIRECTIONAL) { float _e60 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade.y; if (view_depth > _e60) { return 1.0; } part = count - 1u; uint2 loop_bound_11 = uint2(4294967295u); bool loop_init_11 = true; while(true) { if (metal::all(loop_bound_11 == uint2(0u))) { break; } loop_bound_11 -= uint2(loop_bound_11.y == 0u, 1u); if (!loop_init_11) { uint _e79 = c_17; c_17 = _e79 + 1u; } loop_init_11 = false; uint _e67 = c_17; if (_e67 < count) { } else { break; } { uint _e73 = c_17; float _e75 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].splits[metal::min(unsigned(_e73), 3u)]; if (view_depth <= _e75) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; metal::float4 texel = Shadow.tiles.inner[metal::min(unsigned(metal::min(first + metal::min(_e83, count - 1u), 15u)), 15u)].texel; float t_6 = texel.x + (texel.y * metal::distance(world_5, light_pos)); metal::float3 p_9 = (world_5 + (n_geo_1 * ((params.y * metal::max(params.z, 1.0)) * t_6))) + (l_2 * (params.x * t_6)); if (kind == LIGHT_OMNI) { metal::float3 d_13 = p_9 - light_pos; metal::float3 a_7 = metal::abs(d_13); if (a_7.x >= a_7.y) { local_14 = a_7.x >= a_7.z; } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = (d_13.x >= 0.0) ? 0u : 1u; } else { if (a_7.y >= a_7.z) { part = (d_13.y >= 0.0) ? 2u : 3u; } else { part = (d_13.z >= 0.0) ? 4u : 5u; } } } uint _e145 = part; uint tile = metal::min(first + metal::min(_e145, count - 1u), 15u); metal::float4x4 _e156 = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].view_proj; metal::float4 clip_1 = _e156 * metal::float4(p_9, 1.0); if (clip_1.w <= 0.0) { return 1.0; } metal::float3 ndc = clip_1.xyz / metal::float3(clip_1.w); if (!((metal::abs(ndc.x) > 1.0))) { local_15 = metal::abs(ndc.y) > 1.0; } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = ndc.z > 1.0; } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } metal::float4 rect = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].rect; metal::float2 uv_5 = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); metal::float2 auv = rect.xy + (uv_5 * rect.zw); float texel_uv = Shadow.atlas.x; metal::float2 lo_5 = rect.xy + metal::float2(0.5 * texel_uv); metal::float2 hi_4 = (rect.xy + rect.zw) - metal::float2(0.5 * texel_uv); float r_7 = params.z; if (r_7 <= 0.0) { float _e235 = t_shadow.sample_compare(s_shadow, metal::clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { float spread = r_7 * texel_uv; uint2 loop_bound_12 = uint2(4294967295u); bool loop_init_12 = true; while(true) { if (metal::all(loop_bound_12 == uint2(0u))) { break; } loop_bound_12 -= uint2(loop_bound_12.y == 0u, 1u); if (!loop_init_12) { int _e265 = dy; dy = as_type(as_type(_e265) + as_type(1)); } loop_init_12 = false; int _e239 = dy; if (_e239 <= 1) { } else { break; } { dx = -1; uint2 loop_bound_13 = uint2(4294967295u); bool loop_init_13 = true; while(true) { if (metal::all(loop_bound_13 == uint2(0u))) { break; } loop_bound_13 -= uint2(loop_bound_13.y == 0u, 1u); if (!loop_init_13) { int _e262 = dx; dx = as_type(as_type(_e262) + as_type(1)); } loop_init_13 = false; int _e244 = dx; if (_e244 <= 1) { } else { break; } { int _e247 = dx; int _e249 = dy; metal::float2 tap = metal::clamp(auv + (metal::float2(static_cast(_e247), static_cast(_e249)) * spread), lo_5, hi_4); float _e255 = vis; float _e259 = t_shadow.sample_compare(s_shadow, tap, ndc.z); vis = _e255 + _e259; } } } } float _e267 = vis; vis = _e267 / 9.0; } if (kind == LIGHT_DIRECTIONAL) { metal::float4 fade_1 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade; float _e277 = vis; vis = metal::mix(_e277, 1.0, metal::smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return metal::mix(1.0, _e283, params.w); } metal::float3 probe_light( metal::float3 n_5, constant ObjectU& O ) { float _e5 = O.gi.inner[0].x; metal::float4 _e9 = O.gi.inner[0]; float _e17 = O.gi.inner[1].x; metal::float4 _e21 = O.gi.inner[1]; float _e29 = O.gi.inner[2].x; metal::float4 _e33 = O.gi.inner[2]; return metal::max(metal::float3(_e5 + metal::dot(_e9.yzw, n_5), _e17 + metal::dot(_e21.yzw, n_5), _e29 + metal::dot(_e33.yzw, n_5)), metal::float3(0.0)); } metal::float4 gi_diffuse( metal::float3 n_6, bool baked, metal::float3 baked_light, constant ObjectU& O ) { if (baked) { return metal::float4(baked_light, 1.0); } uint _e9 = O.extra.x; if (SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false) { metal::float3 _e16 = probe_light(n_6, O); return metal::float4(_e16, 1.0); } return metal::float4(0.0); } metal::float3 probe_face_uv( metal::float3 d_8 ) { float face = {}; float ma = {}; float sc = {}; float tc = {}; bool local_17 = {}; metal::float3 a_8 = metal::abs(d_8); if (a_8.x >= a_8.y) { local_17 = a_8.x >= a_8.z; } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if (d_8.x >= 0.0) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0.0) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0.0) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return metal::float3(_e56, ((_e57 / _e58) + 1.0) * 0.5, ((_e64 / _e65) + 1.0) * 0.5); } metal::float3 probe_texel( uint row, metal::float3 fuv, uint level_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { uint _e6 = Probe.counts.z; float n_12 = static_cast(metal::max(_e6 >> level_1, 1u)); float lo_6 = 0.5 / n_12; float u_2 = metal::clamp(fuv.y, lo_6, 1.0 - lo_6); float v_7 = metal::clamp(fuv.z, lo_6, 1.0 - lo_6); metal::float2 uv_6 = metal::float2((fuv.x + u_2) / 6.0, (static_cast(row) + v_7) / 8.0); metal::float4 _e33 = t_probes.sample(s_probes, uv_6, metal::level(static_cast(level_1))); return _e33.xyz; } metal::float3 probe_sample( uint row_1, metal::float3 d_9, float lod, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { bool local_18 = {}; uint _e6 = Probe.counts.y; uint levels = metal::max(_e6, 1u); float l_5 = metal::clamp(lod, 0.0, static_cast(levels - 1u)); uint m0_ = naga_f2u32(l_5); float t_7 = l_5 - static_cast(m0_); metal::float3 _e17 = probe_face_uv(d_9); metal::float3 _e18 = probe_texel(row_1, _e17, m0_, Probe, t_probes, s_probes); if (!((t_7 <= 0.0))) { local_18 = (m0_ + 1u) >= levels; } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } metal::float3 _e34 = probe_texel(row_1, _e17, m0_ + 1u, Probe, t_probes, s_probes); return (_e18 * (1.0 - t_7)) + (_e34 * t_7); } float probe_weight( ProbeEntryU p_5, metal::float3 world_6 ) { metal::float3 l_6 = (p_5.to_local * metal::float4(world_6, 1.0)).xyz; metal::float3 e_6 = p_5.extents.xyz; float d_14 = metal::min(e_6.x - metal::abs(l_6.x), metal::min(e_6.y - metal::abs(l_6.y), e_6.z - metal::abs(l_6.z))); if (d_14 < 0.0) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return metal::min(d_14 / p_5.extents.w, 1.0); } float probe_exit( float o_3, float d_10, float e_1 ) { if (d_10 > 0.0) { return (e_1 - o_3) / d_10; } if (d_10 < 0.0) { return (-(e_1) - o_3) / d_10; } return 300000000000000000000000000000000000000.0; } metal::float3 probe_lookup( ProbeEntryU p_6, metal::float3 world_7, metal::float3 dir_6 ) { metal::float3 d_15 = (p_6.to_local * metal::float4(dir_6, 0.0)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } metal::float3 o_8 = (p_6.to_local * metal::float4(world_7, 1.0)).xyz; metal::float3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_8 = metal::max(metal::min(_e24, metal::min(_e28, _e32)), 0.0); return (o_8 + (d_15 * t_8)) - p_6.offset.xyz; } metal::float4 probe_reflection( metal::float3 world_8, metal::float3 r_2, float roughness_2, uint probes, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc = metal::float3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = Probe.counts.x; uint count_1 = metal::min(_e12, MAX_PROBES); uint _e18 = Probe.counts.y; float lod_1 = roughness_2 * static_cast(metal::max(_e18, 1u) - 1u); uint2 loop_bound_14 = uint2(4294967295u); bool loop_init_14 = true; while(true) { if (metal::all(loop_bound_14 == uint2(0u))) { break; } loop_bound_14 -= uint2(loop_bound_14.y == 0u, 1u); if (!loop_init_14) { uint _e57 = i_8; i_8 = _e57 + 1u; } loop_init_14 = false; uint _e27 = i_8; if (_e27 < count_1) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = Probe.probes.inner[metal::min(unsigned(_e31), 7u)]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } float _e41 = probe_weight(p_10, world_8); if (_e41 <= 0.0) { continue; } metal::float3 _e44 = acc; metal::float3 _e47 = probe_lookup(p_10, world_8, r_2); metal::float3 _e48 = probe_sample(p_10.info.w, _e47, lod_1, Probe, t_probes, s_probes); acc = _e44 + ((_e48 * p_10.offset.w) * _e41); float _e54 = w_sum; w_sum = _e54 + _e41; } } float _e59 = w_sum; if (_e59 > 1.0) { metal::float3 _e62 = acc; float _e63 = w_sum; acc = _e62 / metal::float3(_e63); w_sum = 1.0; } metal::float3 _e67 = acc; float _e68 = w_sum; return metal::float4(_e67, _e68); } metal::float4 probe_ambient( metal::float3 world_9, metal::float3 n_7, uint probes_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc_1 = metal::float3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = {}; metal::float3 c_18 = {}; uint _e11 = Probe.counts.x; uint count_2 = metal::min(_e11, MAX_PROBES); uint _e17 = Probe.counts.y; uint last = metal::max(_e17, 1u) - 1u; uint2 loop_bound_15 = uint2(4294967295u); bool loop_init_15 = true; while(true) { if (metal::all(loop_bound_15 == uint2(0u))) { break; } loop_bound_15 -= uint2(loop_bound_15.y == 0u, 1u); if (!loop_init_15) { uint _e73 = i_9; i_9 = _e73 + 1u; } loop_init_15 = false; uint _e24 = i_9; if (_e24 < count_2) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = Probe.probes.inner[metal::min(unsigned(_e28), 7u)]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = p_11.info.y == PROBE_AMBIENT_DISABLED; } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if (_e47 <= 0.0) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { metal::float3 _e64 = probe_face_uv((p_11.to_local * metal::float4(n_7, 0.0)).xyz); metal::float3 _e65 = probe_texel(p_11.info.w, _e64, last, Probe, t_probes, s_probes); c_18 = _e65; } metal::float3 _e66 = acc_1; metal::float3 _e67 = c_18; acc_1 = _e66 + (_e67 * _e47); float _e70 = w_sum_1; w_sum_1 = _e70 + _e47; } } float _e75 = w_sum_1; if (_e75 > 1.0) { metal::float3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = _e78 / metal::float3(_e79); w_sum_1 = 1.0; } metal::float3 _e83 = acc_1; float _e84 = w_sum_1; return metal::float4(_e83, _e84); } metal::float4 skin_row( uint k_10, uint r_3, constant SkinU& Skin ) { metal::float4 _e10 = Skin.rows.inner[metal::min(unsigned((metal::min(k_10, 254u) * 3u) + r_3), 764u)]; return _e10; } SkinRows skin_rows( SkinIn s_1, constant SkinU& Skin ) { SkinRows m_1 = {}; metal::uint4 j_1 = s_1.joints; metal::float4 w_5 = s_1.weights; metal::float4 _e8 = skin_row(s_1.joints.x, 0u, Skin); metal::float4 _e13 = skin_row(s_1.joints.y, 0u, Skin); metal::float4 _e19 = skin_row(s_1.joints.z, 0u, Skin); metal::float4 _e25 = skin_row(s_1.joints.w, 0u, Skin); m_1.r0_ = (((s_1.weights.x * _e8) + (s_1.weights.y * _e13)) + (s_1.weights.z * _e19)) + (s_1.weights.w * _e25); metal::float4 _e32 = skin_row(s_1.joints.x, 1u, Skin); metal::float4 _e37 = skin_row(s_1.joints.y, 1u, Skin); metal::float4 _e43 = skin_row(s_1.joints.z, 1u, Skin); metal::float4 _e49 = skin_row(s_1.joints.w, 1u, Skin); m_1.r1_ = (((s_1.weights.x * _e32) + (s_1.weights.y * _e37)) + (s_1.weights.z * _e43)) + (s_1.weights.w * _e49); metal::float4 _e56 = skin_row(s_1.joints.x, 2u, Skin); metal::float4 _e61 = skin_row(s_1.joints.y, 2u, Skin); metal::float4 _e67 = skin_row(s_1.joints.z, 2u, Skin); metal::float4 _e73 = skin_row(s_1.joints.w, 2u, Skin); m_1.r2_ = (((s_1.weights.x * _e56) + (s_1.weights.y * _e61)) + (s_1.weights.z * _e67)) + (s_1.weights.w * _e73); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings( thread CustomOut& o_4 ) { return; } void hedra_load_varyings( CustomOut i_10 ) { return; } void light( ) { return; } metal::float3 psx_encode_srgb( metal::float3 c_19 ) { metal::float3 lo_7 = c_19 * 12.92; metal::float3 hi_5 = (1.055 * metal::pow(metal::max(c_19, metal::float3(0.0)), metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_5, lo_7, c_19 <= metal::float3(0.0031308)); } metal::float3 psx_decode_srgb( metal::float3 c_20 ) { metal::float3 lo_8 = c_20 / metal::float3(12.92); metal::float3 hi_6 = metal::pow((c_20 + metal::float3(0.055)) / metal::float3(1.055), metal::float3(2.4)); return metal::select(hi_6, lo_8, c_20 <= metal::float3(0.04045)); } void vertex_( constant Globals& G, thread metal::float3& VERTEX, thread metal::float4& POSITION, constant HedraParams& hedra_p ) { metal::float2 extent = metal::float2(1.0, 1.0); float _e3 = hedra_p.low_res.x; float _e7 = hedra_p.low_res.y; float target_aspect = _e3 / _e7; metal::float4 _e11 = G.viewport; metal::float4 _e16 = G.viewport; float view_aspect = _e11.xy.x / metal::max(_e16.xy.y, 1.0); if (view_aspect > target_aspect) { extent.x = target_aspect / view_aspect; } else { extent.y = view_aspect / target_aspect; } float _e33 = hedra_p.integer_scale; if (_e33 > 0.5) { float _e37 = extent.y; metal::float4 _e40 = G.viewport; float shown = _e37 * _e40.xy.y; float _e47 = hedra_p.low_res.y; float whole = metal::floor(shown / _e47); if (whole >= 1.0) { metal::float2 _e52 = extent; float _e56 = hedra_p.low_res.y; extent = _e52 * ((whole * _e56) / shown); } } metal::float3 _e62 = VERTEX; metal::float2 _e66 = extent; POSITION = metal::float4((_e62.xy * 2.0) * _e66, 0.5, 1.0); return; } uint naga_mod(uint lhs, uint rhs) { return lhs % metal::select(rhs, 1u, rhs == 0u); } void fragment_( thread metal::float2& UV, thread metal::float3& ALBEDO, constant HedraParams& hedra_p, metal::texture2d screen, metal::sampler SAMPLER_NEAREST_CLAMP ) { type_33 table = type_33 {{-4.0, 0.0, -3.0, 1.0, 2.0, -2.0, 3.0, -1.0, -3.0, 1.0, -4.0, 0.0, 3.0, -1.0, 2.0, -2.0}}; metal::float2 _e1 = UV; metal::float2 _e4 = hedra_p.low_res; metal::float2 px = metal::floor(_e1 * _e4); metal::float2 _e14 = hedra_p.low_res; metal::float4 _e16 = screen.sample(SAMPLER_NEAREST_CLAMP, (px + metal::float2(0.5)) / _e14); metal::float3 c_28 = _e16.xyz; uint ix = naga_mod(naga_f2u32(px.x), 4u); uint iy = naga_mod(naga_f2u32(px.y), 4u); float _e48 = table.inner[metal::min(unsigned((iy * 4u) + ix), 15u)]; float _e51 = hedra_p.dither_strength; float offset = _e48 * _e51; float _e55 = hedra_p.color_bits; float step = metal::exp2(8.0 - _e55); metal::float3 _e59 = psx_encode_srgb(c_28); metal::float3 v8_ = metal::clamp((_e59 * 255.0) + metal::float3(offset), metal::float3(0.0), metal::float3(255.0)); metal::float3 q_6 = (metal::floor(v8_ / metal::float3(step)) * step) / metal::float3(255.0); metal::float3 _e77 = psx_decode_srgb(q_6); ALBEDO = _e77; return; } metal::float3x3 hedra_mat3_( metal::float4x4 m_2 ) { return metal::float3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } metal::float4x4 hedra_rigid_inverse( metal::float4x4 m_3 ) { metal::float3x3 _e1 = hedra_mat3_(m_3); metal::float3x3 r_8 = metal::transpose(_e1); metal::float3 t_9 = -((r_8 * m_3[3].xyz)); return metal::float4x4(metal::float4(r_8[0], 0.0), metal::float4(r_8[1], 0.0), metal::float4(r_8[2], 0.0), metal::float4(t_9, 1.0)); } metal::float4x4 hedra_inv_projection( constant Globals& G ) { metal::float4 _e2 = G.wire_color; metal::float4 _e5 = G.select_color; metal::float4 _e8 = G.active_color; metal::float4 _e11 = G.grid; return metal::float4x4(_e2, _e5, _e8, _e11); } metal::float2 hedra_godot_uv( metal::float2 uv_1 ) { return metal::float2(uv_1.x, 1.0 - uv_1.y); } bool hedra_transparent( ) { bool local_20 = {}; bool local_21 = {}; if (HEDRA_ALPHA) { local_20 = true; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored( uint flags_1, constant ObjectU& O ) { uint _e4 = O.extra.x; return ((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u); } void hedra_matrices( metal::float4x4 model, metal::float3x3 normal, constant Globals& G, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD ) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; metal::float4x4 _e7 = G.view; metal::float4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; metal::float4x4 _e10 = hedra_inv_projection(G); INV_PROJECTION_MATRIX = _e10; metal::float4x4 _e14 = G.view; MODELVIEW_MATRIX = _e14 * model; metal::float4x4 _e19 = G.view; metal::float3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = _e20 * normal; NODE_POSITION_WORLD = model[3].xyz; metal::float4x4 _e28 = G.view; NODE_POSITION_VIEW = (_e28 * metal::float4(model[3].xyz, 1.0)).xyz; metal::float4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex( metal::float3 pos, metal::float3 normal_1, metal::float4 tangent, metal::float2 uv_2, metal::float2 uv2_, metal::float4 color, uint vid_3, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& VERTEX_ID, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX ) { bool local_22 = {}; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = metal::cross(normal_1, tangent.xyz) * tangent.w; metal::float2 _e17 = hedra_godot_uv(uv_2); UV = _e17; metal::float2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = static_cast(vid_3); POSITION = metal::float4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_22 = true; } else { local_22 = false; } bool _e31 = local_22; if (_e31) { metal::float4x4 _e34 = MODEL_MATRIX; metal::float3 _e36 = VERTEX; VERTEX = (_e34 * metal::float4(_e36, 1.0)).xyz; metal::float3x3 _e43 = MODEL_NORMAL_MATRIX; metal::float3 _e45 = NORMAL; NORMAL = _e43 * _e45; metal::float3x3 _e49 = MODEL_NORMAL_MATRIX; metal::float3 _e51 = TANGENT; TANGENT = _e49 * _e51; metal::float3x3 _e55 = MODEL_NORMAL_MATRIX; metal::float3 _e57 = BINORMAL; BINORMAL = _e55 * _e57; return; } else { return; } } CustomOut hedra_end_vertex( metal::float4 world_10, metal::float3 n_8, metal::float3 t, float tw, uint flags_2, constant Globals& G, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& INSTANCE_ID ) { CustomOut out_2 = {}; metal::float4x4 _e9 = G.view_proj; out_2.clip = _e9 * world_10; if (HEDRA_USES_POSITION) { metal::float4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = metal::normalize(n_8); metal::float2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = metal::float4(metal::normalize(t), tw); metal::float4 _e28 = COLOR; out_2.color = _e28; metal::float2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = static_cast(metal::max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space( ) { bool local_23 = {}; if (true) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } metal::float4 hedra_vertex_world( thread metal::float3& VERTEX, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e2 = INV_VIEW_MATRIX; metal::float3 _e4 = VERTEX; return _e2 * metal::float4(_e4, 1.0); } metal::float3 _e9 = VERTEX; return metal::float4(_e9, 1.0); } metal::float3 hedra_vertex_dir( metal::float3 d_11, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e3 = INV_VIEW_MATRIX; metal::float3x3 _e4 = hedra_mat3_(_e3); return _e4 * d_11; } return d_11; } float hedra_tangent_sign( float w, bool flip, constant ObjectU& O ) { uint _e5 = O.extra.x; return w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); } void hedra_fragment( CustomOut in_7, bool facing_4, constant Globals& G, constant ObjectU& O, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD, thread metal::float3& LIGHT_VERTEX, thread metal::float4& FRAGCOORD, thread bool& FRONT_FACING, thread metal::float3& VIEW, thread metal::float3& NORMAL_MAP, thread float& NORMAL_MAP_DEPTH, thread metal::float3& ALBEDO, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread float& PREMUL_ALPHA_FACTOR, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread metal::float2& SCREEN_UV, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n, thread bool& hedra_front, constant HedraParams& hedra_p, metal::texture2d screen, metal::sampler SAMPLER_NEAREST_CLAMP ) { metal::float3 t_1 = {}; metal::float3 nm = {}; bool _e3 = hedra_mirrored(in_7.flags, O); bool front = facing_4 != _e3; hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; metal::float4 _e14 = G.viewport; SCREEN_UV = in_7.clip.xy * _e14.zw; metal::float4x4 _e19 = O.model; metal::float4x4 _e22 = O.normal; metal::float3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); metal::float4x4 _e26 = G.view; metal::float3x3 _e27 = hedra_mat3_(_e26); metal::float3 n_geo_2 = front ? metal::normalize(in_7.normal) : -(metal::normalize(in_7.normal)); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; metal::float3 _e41 = t_1; metal::float3 _e42 = t_1; t_1 = metal::normalize(_e41 - (n_geo_2 * metal::dot(n_geo_2, _e42))); metal::float3 _e47 = t_1; metal::float3 b_4 = metal::cross(n_geo_2, _e47) * in_7.tangent.w; metal::float4x4 _e55 = G.view; VERTEX = (_e55 * metal::float4(in_7.world, 1.0)).xyz; metal::float3 _e63 = VERTEX; LIGHT_VERTEX = _e63; metal::float3 vertex0_ = VERTEX; NORMAL = metal::normalize(_e27 * n_geo_2); metal::float3 normal0_ = NORMAL; metal::float3 _e72 = t_1; TANGENT = metal::normalize(_e27 * _e72); BINORMAL = metal::normalize(_e27 * b_4); metal::float3 _e80 = VERTEX; float _e90 = G.camera_pos.w; VIEW = (_e90 > 0.5) ? metal::float3(0.0, 0.0, 1.0) : metal::normalize(-(_e80)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = metal::float3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = metal::float3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = metal::float3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = metal::float3(0.0); hedra_load_varyings(in_7); fragment_(UV, ALBEDO, hedra_p, screen, SAMPLER_NEAREST_CLAMP); metal::float3x3 back_2 = metal::transpose(_e27); metal::float3 _e136 = NORMAL; if (metal::any(_e136 != normal0_)) { metal::float3 _e141 = NORMAL; hedra_n = metal::normalize(back_2 * _e141); } metal::float3 _e145 = NORMAL_MAP; if (metal::any(_e145 != metal::float3(0.5))) { metal::float3 _e151 = NORMAL_MAP; nm = _e151; metal::float3 _e153 = nm; nm = metal::float3((_e153.xy * 2.0) - metal::float2(1.0), 0.0); metal::float3 _e163 = nm; metal::float3 _e165 = nm; nm.z = metal::sqrt(metal::max(0.0, 1.0 - metal::dot(_e163.xy, _e165.xy))); metal::float3 _e175 = NORMAL; metal::float3 _e177 = TANGENT; float _e179 = nm.x; metal::float3 _e182 = BINORMAL; float _e184 = nm.y; metal::float3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = metal::normalize(metal::mix(_e175, ((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190), _e194)); metal::float3 _e199 = NORMAL; hedra_n = metal::normalize(back_2 * _e199); } metal::float3 _e203 = LIGHT_VERTEX; if (metal::any(_e203 != vertex0_)) { metal::float4x4 _e208 = INV_VIEW_MATRIX; metal::float3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * metal::float4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled( uint flags_3, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread bool& hedra_front ) { bool local_24 = {}; bool local_25 = {}; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if (false) { bool _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } bool _e12 = local_24; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = _e18 < _e20; } else { local_25 = false; } bool _e23 = local_25; return _e23; } metal::float3 hedra_view_dir( metal::float3 world_11, constant Globals& G ) { float _e5 = G.view[0].z; float _e10 = G.view[1].z; float _e15 = G.view[2].z; metal::float3 view_dir = metal::float3(_e5, _e10, _e15); metal::float4 _e19 = G.camera_pos; float _e27 = G.camera_pos.w; return (_e27 > 0.5) ? metal::normalize(view_dir) : metal::normalize(_e19.xyz - world_11); } float hedra_schlick( float u ) { float m_5 = metal::clamp(1.0 - u, 0.0, 1.0); float m2_ = m_5 * m_5; return (m2_ * m2_) * m_5; } float hedra_diffuse_brdf( float nl_1, float nv_2, float lh, float r_4 ) { float c_nl = metal::max(nl_1, 0.0); if (false) { return metal::max(0.0, (nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4))) * 0.31830987; } if (false) { return metal::smoothstep(-(r_4), metal::max(r_4, 0.01), nl_1) * 0.31830987; } if (false) { float fd90_ = (((2.0 * lh) * lh) * r_4) - 0.5; float _e32 = hedra_schlick(nv_2); float fdv = 1.0 + (fd90_ * _e32); float _e36 = hedra_schlick(c_nl); float fdl = 1.0 + (fd90_ * _e36); return ((0.31830987 * fdv) * fdl) * c_nl; } return c_nl * 0.31830987; } metal::float3 hedra_light_modes( metal::float3 n_9, metal::float3 v_3, metal::float3 l_3, metal::float3 radiance_2, metal::float3 diffuse_1, metal::float3 f0_2, float a2_3, float r_5, float specular_1 ) { metal::float3 c_21 = {}; float mid = {}; bool local_26 = {}; float nl_3 = metal::min(metal::dot(n_9, l_3), 1.0); float nv_4 = metal::max(metal::dot(n_9, v_3), 0.0001); metal::float3 h_3 = metal::normalize(l_3 + v_3); float lh_1 = metal::clamp(metal::dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_21 = (diffuse_1 * _e21) * radiance_2; if (r_5 > 0.0) { if (false) { metal::float3 refl = metal::normalize(-(metal::reflect(l_3, n_9))); float rv = metal::dot(refl, v_3); mid = 1.0 - r_5; float _e35 = mid; float _e36 = mid; mid = _e35 * _e36; metal::float3 _e38 = c_21; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_21 = _e38 + ((diffuse_1 * radiance_2) * ((metal::smoothstep(_e40 - (r_5 * 0.5), _e44 + (r_5 * 0.5), rv) * _e49) * specular_1)); } else { if (false) { local_26 = nl_3 > 0.0; } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = metal::max(metal::dot(n_9, h_3), 0.0); float vh_2 = metal::max(metal::dot(v_3, h_3), 0.0); metal::float3 _e67 = f_schlick(f0_2, vh_2); metal::float3 _e68 = c_21; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_21 = _e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2); } } } metal::float3 _e77 = c_21; return _e77; } metal::float4 hedra_light_dir( uint i_11, metal::float3 world_12, constant LitU& Lit ) { float atten_1 = {}; LightU li_1 = Lit.lights.inner[metal::min(unsigned(i_11), 63u)]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return metal::float4(-(li_1.direction.xyz), 1.0); } metal::float3 rel_1 = li_1.position.xyz - world_12; float d_16 = metal::length(rel_1); metal::float3 l_7 = rel_1 / metal::float3(metal::max(d_16, 0.000001)); float _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { float cone = li_1.spot.x; float scos = metal::max(metal::dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = metal::max(0.0001, (1.0 - scos) / metal::max(1.0 - cone, 0.000001)); float _e49 = atten_1; atten_1 = _e49 * (1.0 - metal::pow(rim_1, li_1.spot.y)); } float _e56 = atten_1; return metal::float4(l_7, _e56); } float hedra_shadow( uint i_12, metal::float3 l_4, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo ) { bool local_27 = {}; if (false) { uint _e10 = Lit.lights.inner[metal::min(unsigned(i_12), 63u)].info.y; local_27 = _e10 != LIGHT_SHADOWED; } else { local_27 = true; } bool _e14 = local_27; if (_e14) { return 1.0; } metal::float3 _e17 = hedra_world; metal::float3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4, G, Lit, Shadow, t_shadow, s_shadow); return _e20; } metal::float3 hedra_ambient( metal::float3 n_10, metal::float3 v_4, metal::float3 diffuse_2, metal::float3 f0_3, float roughness_3, float metallic, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, thread metal::float3& hedra_world ) { metal::float3 ambient = {}; metal::float3 diffuse_amb = {}; metal::float3 spec_amb = {}; metal::float3 dif = {}; metal::float3 dif_1 = {}; metal::float3 dif_2 = {}; metal::float3 world_13 = hedra_world; float nv_5 = metal::max(metal::dot(n_10, v_4), 0.0001); metal::float3 f_amb = f0_3 + ((metal::max(metal::float3(1.0 - roughness_3), f0_3) - f0_3) * metal::pow(1.0 - nv_5, 5.0)); metal::float4 _e25 = gi_diffuse(n_10, false, metal::float3(0.0), O); uint _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { float _e38 = Sky.ibl.x; float _e42 = Sky.sun.w; float scale = _e38 * _e42; metal::float4 _e46 = Sky.ambient; diffuse_amb = _e46.xyz; uint _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { metal::float4 _e59 = Sky.ambient; metal::float3 _e61 = sky_dir(n_10, Sky); metal::float3 _e62 = sh_irradiance(_e61, Sky); float _e67 = Sky.ambient.w; diffuse_amb = metal::mix(_e59.xyz, _e62 * scale, _e67); } if (_e25.w > 0.0) { diffuse_amb = _e25.xyz; } metal::float4 _e75 = Sky.ambient; spec_amb = _e75.xyz; uint _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { metal::float3 _e88 = sky_dir(metal::reflect(-(v_4), n_10), Sky); metal::float3 _e89 = radiance_1(_e88, roughness_3, Sky, t_radiance, s_radiance); spec_amb = _e89 * scale; } else { uint _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = metal::float3(0.0); } } metal::float2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = Probe.counts.x; if (_e105 > 0u) { uint _e113 = O.extra.z; metal::float4 _e114 = probe_reflection(world_13, metal::reflect(-(v_4), n_10), roughness_3, _e113, Probe, t_probes, s_probes); metal::float3 _e115 = spec_amb; metal::float3 spec_1 = (_e115 * (1.0 - _e114.w)) + _e114.xyz; metal::float3 _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0.0) { uint _e130 = O.extra.z; metal::float4 _e131 = probe_ambient(world_13, n_10, _e130, Probe, t_probes, s_probes); metal::float3 _e132 = diffuse_amb; dif = (_e132 * (1.0 - _e131.w)) + _e131.xyz; } metal::float3 _e139 = dif; ambient = (diffuse_2 * _e139) + (spec_1 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } else { metal::float3 _e154 = diffuse_amb; metal::float3 _e156 = spec_amb; ambient = (diffuse_2 * _e154) + (_e156 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } } else { uint _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { metal::float4 _e180 = Lit.up; metal::float3 up = _e180.xyz; metal::float4 _e184 = Lit.sky_top; metal::float4 _e188 = Lit.sky_horizon; metal::float3 sky_avg = (_e184.xyz + _e188.xyz) * 0.5; metal::float4 _e195 = Lit.ground_horizon; metal::float4 _e199 = Lit.ground_bottom; metal::float3 ground_avg = (_e195.xyz + _e199.xyz) * 0.5; metal::float3 irradiance = metal::mix(ground_avg, sky_avg, metal::clamp((metal::dot(n_10, up) * 0.5) + 0.5, 0.0, 1.0)); metal::float3 _e215 = sky(metal::reflect(-(v_4), n_10), Lit); metal::float3 blurred = metal::mix(_e215, sky_avg, roughness_3); uint _e220 = Probe.counts.x; if (_e220 > 0u) { uint _e228 = O.extra.z; metal::float4 _e229 = probe_reflection(world_13, metal::reflect(-(v_4), n_10), roughness_3, _e228, Probe, t_probes, s_probes); float _e233 = Lit.ambient.w; metal::float3 spec_2 = ((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz; dif_1 = _e25.xyz; if (_e25.w <= 0.0) { uint _e249 = O.extra.z; metal::float4 _e250 = probe_ambient(world_13, n_10, _e249, Probe, t_probes, s_probes); float _e254 = Lit.ambient.w; dif_1 = ((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz; } metal::float3 _e262 = dif_1; ambient = (diffuse_2 * _e262) + (spec_2 * f_amb); } else { if (_e25.w > 0.0) { float _e275 = Lit.ambient.w; ambient = (diffuse_2 * _e25.xyz) + ((blurred * f_amb) * _e275); } else { float _e284 = Lit.ambient.w; ambient = ((diffuse_2 * irradiance) + (blurred * f_amb)) * _e284; } } } else { uint _e289 = Probe.counts.x; if (_e289 > 0u) { uint _e297 = O.extra.z; metal::float4 _e298 = probe_reflection(world_13, metal::reflect(-(v_4), n_10), roughness_3, _e297, Probe, t_probes, s_probes); metal::float4 _e301 = Lit.ambient; metal::float3 spec_3 = (_e301.xyz * (1.0 - _e298.w)) + _e298.xyz; dif_2 = _e25.xyz; if (_e25.w <= 0.0) { uint _e317 = O.extra.z; metal::float4 _e318 = probe_ambient(world_13, n_10, _e317, Probe, t_probes, s_probes); metal::float4 _e321 = Lit.ambient; dif_2 = (_e321.xyz * (1.0 - _e318.w)) + _e318.xyz; } metal::float3 _e329 = dif_2; ambient = (diffuse_2 * _e329) + (spec_3 * f_amb); } else { if (_e25.w > 0.0) { metal::float4 _e340 = Lit.ambient; ambient = (diffuse_2 * _e25.xyz) + (_e340.xyz * f_amb); } else { metal::float4 _e346 = Lit.ambient; ambient = _e346.xyz * (diffuse_2 + f_amb); } } } } metal::float3 _e350 = ambient; return _e350; } metal::float3 hedra_fog( metal::float3 c_in_1, metal::float3 v_5, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant FogU& Fog, thread metal::float3& hedra_world ) { metal::float3 c_22 = {}; c_22 = c_in_1; if (HEDRA_FOG_DISABLED) { metal::float3 _e4 = c_22; return _e4; } uint _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { metal::float3 _e13 = c_22; metal::float3 _e15 = hedra_world; metal::float3 _e17 = surface_fog(_e13, _e15, -(v_5), G, Lit, Sky, t_radiance, s_radiance); c_22 = _e17; } uint _e21 = O.decals.w; if (_e21 != 0u) { metal::float3 _e24 = c_22; metal::float3 _e26 = hedra_world; uint _e30 = O.decals.w; metal::float3 _e31 = fog_volumes(_e24, _e26, _e30, G, Lit, Fog); c_22 = _e31; } metal::float3 _e32 = c_22; return _e32; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } metal::float3 hedra_lit( metal::float4 clip, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals, constant FogU& Fog, thread metal::float3& NORMAL, thread metal::float3& ALBEDO, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread float& SPECULAR_AMOUNT, thread metal::float3& LIGHT, thread metal::float3& LIGHT_COLOR, thread bool& LIGHT_IS_DIRECTIONAL, thread float& ATTENUATION, thread metal::float3& DIFFUSE_LIGHT, thread metal::float3& SPECULAR_LIGHT, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n ) { DecalSurface surf_1 = {}; metal::float3 c_23 = metal::float3(0.0); uint k_11 = 0u; bool local_28 = {}; metal::float3 radiance_3 = {}; bool local_29 = {}; bool local_30 = {}; metal::float3 ambient_1 = metal::float3(0.0); bool local_31 = {}; metal::float3 n_geo_3 = hedra_n_geo; metal::float3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; metal::float3 _e18 = hedra_n; metal::float3 _e20 = EMISSION; surf_1 = DecalSurface {_e4, metal::clamp(_e6, 0.0, 1.0), metal::clamp(_e11, 0.045, 1.0), _e16, {}, _e18, _e20}; uint _e26 = O.decals.z; if (_e26 > 0u) { metal::float3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31, G, O, Decal, t_decals, s_decals); surf_1 = _e32; metal::float3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; metal::float4x4 _e45 = G.view; metal::float3x3 _e46 = hedra_mat3_(_e45); metal::float3 _e48 = surf_1.normal; NORMAL = metal::normalize(_e46 * _e48); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = ((roughness_4 * roughness_4) * roughness_4) * roughness_4; metal::float3 base = surf_1.base; metal::float3 diffuse_3 = base * (1.0 - metallic_1); float _e64 = SPECULAR; float _e68 = SPECULAR; metal::float3 f0_4 = metal::mix(metal::float3((0.16 * _e64) * _e68), base, metallic_1); metal::float3 n_13 = surf_1.normal; metal::float3 _e75 = hedra_world; metal::float3 _e76 = hedra_view_dir(_e75, G); metal::float4x4 _e79 = G.view; metal::float3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = metal::mix(1.0, _e82, _e84); DIFFUSE_LIGHT = metal::float3(0.0); SPECULAR_LIGHT = metal::float3(0.0); uint _e96 = object_light_count(O); uint2 loop_bound_16 = uint2(4294967295u); bool loop_init_16 = true; while(true) { if (metal::all(loop_bound_16 == uint2(0u))) { break; } loop_bound_16 -= uint2(loop_bound_16.y == 0u, 1u); if (!loop_init_16) { uint _e238 = k_11; k_11 = _e238 + 1u; } loop_init_16 = false; uint _e99 = k_11; if (_e99 < _e96) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101, O); LightU li_2 = Lit.lights.inner[metal::min(unsigned(_e102), 63u)]; metal::float3 _e108 = hedra_world; metal::float4 _e109 = hedra_light_dir(_e102, _e108, Lit); metal::float3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_28 = atten_2 > 0.0; } else { local_28 = true; } bool _e123 = local_28; if (_e123) { LIGHT = metal::normalize(_e80 * l_8); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8, G, Lit, Shadow, t_shadow, s_shadow, hedra_world, hedra_n_geo); ATTENUATION = atten_2 * _e131; LIGHT_IS_DIRECTIONAL = li_2.info.x == LIGHT_DIRECTIONAL; SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if (_e142 > 0.0) { float rim_light = metal::pow(metal::max(0.0001, 1.0 - metal::max(metal::dot(n_13, _e76), 0.0001)), metal::max(0.0, (1.0 - roughness_4) * 16.0)); metal::float3 _e159 = c_23; float _e164 = RIM; float _e170 = RIM_TINT; c_23 = _e159 + (((diffuse_3 * li_2.color.xyz) * (rim_light * _e164)) * metal::mix(metal::float3(1.0), base, _e170)); } if (atten_2 > 0.0) { radiance_3 = li_2.color.xyz * atten_2; if (li_2.info.y == LIGHT_SHADOWED) { local_29 = false; } else { local_29 = false; } bool _e188 = local_29; if (_e188) { metal::float3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8, G, Lit, Shadow, t_shadow, s_shadow); radiance_3 = li_2.color.xyz * (atten_2 * _e193); } if (true) { local_30 = false; } else { local_30 = false; } bool _e201 = local_30; if (_e201) { metal::float3 _e202 = c_23; metal::float3 _e203 = radiance_3; metal::float3 _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_3, f0_4, a2_4, li_2.spot.z); c_23 = _e202 + _e206; } else { metal::float3 _e208 = c_23; metal::float3 _e209 = radiance_3; metal::float3 _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_3, f0_4, a2_4, roughness_4, li_2.spot.z); c_23 = _e208 + _e212; } metal::float3 _e215 = BACKLIGHT; if (metal::any(_e215 > metal::float3(0.0))) { float nl_4 = metal::max(metal::min(metal::dot(n_13, l_8), 1.0), 0.0); metal::float3 _e225 = c_23; metal::float3 _e226 = radiance_3; metal::float3 _e229 = BACKLIGHT; c_23 = _e225 + (((diffuse_3 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987))); } } } } if (HEDRA_HAS_LIGHT) { metal::float3 _e242 = DIFFUSE_LIGHT; metal::float3 _e249 = SPECULAR_LIGHT; c_23 = (((_e242 * base) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct); } else { float _e253 = AO_LIGHT_AFFECT; if (_e253 > 0.0) { metal::float3 _e256 = c_23; c_23 = _e256 * ao_direct; } } if (false) { metal::float3 _e262 = hedra_ambient(n_13, _e76, diffuse_3, f0_4, roughness_4, metallic_1, O, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes, hedra_world); ambient_1 = _e262; } uint _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { bool _e273 = hedra_transparent(); local_31 = !(_e273); } else { local_31 = false; } bool _e276 = local_31; if (_e276) { uint clamped_lod_e282 = metal::min(uint(0), t_ao.get_num_mip_levels() - 1); metal::float4 _e282 = t_ao.read(metal::min(metal::uint2(naga_f2i32(metal::floor(clip.xy))), metal::uint2(t_ao.get_width(clamped_lod_e282), t_ao.get_height(clamped_lod_e282)) - 1), clamped_lod_e282); float ssao = _e282.x; metal::float3 _e284 = c_23; float _e286 = surf_1.occlusion; float _e291 = Lit.tone.z; float _e295 = Lit.tone.w; c_23 = _e284 * metal::mix(1.0, metal::min(ssao, _e286), _e291 * _e295); metal::float3 _e300 = c_23; metal::float3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_23 = _e300 + (_e301 * metal::min(_e303, ssao)); } else { metal::float3 _e307 = c_23; metal::float3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_23 = _e307 + (_e308 * _e310); } metal::float3 _e313 = c_23; metal::float3 _e315 = surf_1.emission; c_23 = _e313 + _e315; metal::float3 _e317 = c_23; metal::float3 _e318 = hedra_fog(_e317, _e76, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e319 = tonemap(_e318, Lit); return _e319; } metal::float4 hedra_output( metal::float3 c_24, constant Globals& G, constant LitU& Lit, thread float& ALPHA, thread float& PREMUL_ALPHA_FACTOR ) { metal::float3 rgb = {}; rgb = c_24; if (false) { metal::float3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = _e3 * _e5; } metal::float3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); metal::float4 o_9 = metal::float4(_e7, _e10 ? _e9 : 1.0); uint _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return metal::float4(metal::max(o_9.xyz, metal::float3(0.0)), metal::clamp(o_9.w, 0.0, 1.0)); } metal::float4 k_17 = metal::clamp(o_9, metal::float4(0.0), metal::float4(1.0)); uint _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { metal::float3 _e45 = linear_to_srgb(k_17.xyz); return metal::float4(_e45, k_17.w); } return k_17; } metal::float3 hedra_bindings( metal::texture2d t_panorama, metal::sampler s_radiance, metal::sampler s_panorama, metal::texture2d_array t_lightmap, metal::sampler s_lightmap, metal::texture2d t_screen ) { metal::float2 uv_7 = metal::float2(0.5); metal::float4 _e5 = t_panorama.sample(s_panorama, uv_7, metal::level(0.0)); metal::float4 _e11 = t_lightmap.sample(s_lightmap, uv_7, 0, metal::level(0.0)); metal::float4 _e17 = t_screen.sample(s_radiance, uv_7, metal::level(0.0)); return (_e5.xyz + _e11.xyz) + _e17.xyz; } struct vs_customInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float2 uv1_ [[attribute(10)]]; }; struct vs_customOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_customOutput vs_custom( vs_customInput varyings [[stage_in]] , uint vid [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; const VsIn in = { varyings.pos_1, varyings.normal_2, varyings.uv_3, varyings.flags_4, {}, varyings.tangent_1, varyings.weight }; const auto uv1_ = varyings.uv1_; metal::float4x4 _e5 = O.model; metal::float4x4 _e8 = O.normal; metal::float3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, metal::float4(1.0), vid, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, POSITION, hedra_p); float _e24 = hedra_tangent_sign(in.tangent.w, false, O); bool _e25 = hedra_vertex_space(); if (_e25) { metal::float4 _e26 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e28 = NORMAL; metal::float3 _e29 = hedra_vertex_dir(_e28, INV_VIEW_MATRIX); metal::float3 _e31 = TANGENT; metal::float3 _e32 = hedra_vertex_dir(_e31, INV_VIEW_MATRIX); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID); const auto _tmp = _e34; return vs_customOutput { _tmp.clip, _tmp.world, _tmp.normal, _tmp.uv, _tmp.flags, _tmp.tangent, _tmp.color, _tmp.uv2_, _tmp.instance_id, _tmp.hedra_v0_, _tmp.hedra_v1_, _tmp.hedra_v2_, _tmp.hedra_v3_ }; } metal::float4x4 _e37 = O.model; metal::float3 _e39 = VERTEX; metal::float4 world_14 = _e37 * metal::float4(_e39, 1.0); metal::float4x4 _e45 = O.normal; metal::float3 _e47 = NORMAL; metal::float3 n_14 = (_e45 * metal::float4(_e47, 0.0)).xyz; metal::float4x4 _e54 = O.model; metal::float3 _e56 = TANGENT; metal::float3 t_10 = (_e54 * metal::float4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_14, n_14, t_10, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID); const auto _tmp_1 = _e62; return vs_customOutput { _tmp_1.clip, _tmp_1.world, _tmp_1.normal, _tmp_1.uv, _tmp_1.flags, _tmp_1.tangent, _tmp_1.color, _tmp_1.uv2_, _tmp_1.instance_id, _tmp_1.hedra_v0_, _tmp_1.hedra_v1_, _tmp_1.hedra_v2_, _tmp_1.hedra_v3_ }; } struct vs_custom_instancedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float4 row0_ [[attribute(6)]]; metal::float4 row1_ [[attribute(7)]]; metal::float4 row2_ [[attribute(8)]]; metal::float4 color_1 [[attribute(9)]]; metal::float2 uv1_1 [[attribute(10)]]; metal::float4 custom [[attribute(14)]]; float id [[attribute(15)]]; }; struct vs_custom_instancedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_instancedOutput vs_custom_instanced( vs_custom_instancedInput varyings_1 [[stage_in]] , uint vid_1 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; const VsIn in_1 = { varyings_1.pos_1, varyings_1.normal_2, varyings_1.uv_3, varyings_1.flags_4, {}, varyings_1.tangent_1, varyings_1.weight }; const InstIn inst = { varyings_1.row0_, varyings_1.row1_, varyings_1.row2_, varyings_1.color_1 }; const auto uv1_1 = varyings_1.uv1_1; const HedraInstExtra extra = { varyings_1.custom, varyings_1.id }; metal::float3 bx = metal::float3(inst.row0_.x, inst.row1_.x, inst.row2_.x); metal::float3 by = metal::float3(inst.row0_.y, inst.row1_.y, inst.row2_.y); metal::float3 bz = metal::float3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = metal::dot(bx, metal::cross(by, bz)); bool flip_1 = det < 0.0; metal::float3x3 cofactor = metal::float3x3(metal::cross(by, bz), metal::cross(bz, bx), metal::cross(bx, by)) * (flip_1 ? -1.0 : 1.0); metal::float4x4 basis = metal::float4x4(metal::float4(bx, 0.0), metal::float4(by, 0.0), metal::float4(bz, 0.0), metal::float4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); metal::float4x4 _e55 = O.model; metal::float4x4 _e59 = O.normal; metal::float3x3 _e60 = hedra_mat3_(_e59); hedra_matrices(_e55 * basis, _e60 * cofactor, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = naga_f2i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, POSITION, hedra_p); uint flags_4 = in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1, O); bool _e80 = hedra_vertex_space(); if (_e80) { metal::float4 _e81 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e83 = NORMAL; metal::float3 _e84 = hedra_vertex_dir(_e83, INV_VIEW_MATRIX); metal::float3 _e86 = TANGENT; metal::float3 _e87 = hedra_vertex_dir(_e86, INV_VIEW_MATRIX); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID); const auto _tmp_2 = _e88; return vs_custom_instancedOutput { _tmp_2.clip, _tmp_2.world, _tmp_2.normal, _tmp_2.uv, _tmp_2.flags, _tmp_2.tangent, _tmp_2.color, _tmp_2.uv2_, _tmp_2.instance_id, _tmp_2.hedra_v0_, _tmp_2.hedra_v1_, _tmp_2.hedra_v2_, _tmp_2.hedra_v3_ }; } metal::float3 _e90 = VERTEX; metal::float4 p1_ = metal::float4(_e90, 1.0); metal::float3 local_32 = metal::float3(metal::dot(inst.row0_, p1_), metal::dot(inst.row1_, p1_), metal::dot(inst.row2_, p1_)); metal::float4x4 _e102 = O.model; metal::float4 world_15 = _e102 * metal::float4(local_32, 1.0); metal::float4x4 _e108 = O.normal; metal::float3 _e110 = NORMAL; metal::float3 n_15 = (_e108 * metal::float4(cofactor * _e110, 0.0)).xyz; metal::float4x4 _e118 = O.model; metal::float3 _e121 = TANGENT; metal::float3 t_11 = (_e118 * metal::float4(metal::float3x3(bx, by, bz) * _e121, 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_15, n_15, t_11, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID); const auto _tmp_3 = _e127; return vs_custom_instancedOutput { _tmp_3.clip, _tmp_3.world, _tmp_3.normal, _tmp_3.uv, _tmp_3.flags, _tmp_3.tangent, _tmp_3.color, _tmp_3.uv2_, _tmp_3.instance_id, _tmp_3.hedra_v0_, _tmp_3.hedra_v1_, _tmp_3.hedra_v2_, _tmp_3.hedra_v3_ }; } struct vs_custom_skinnedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::uint4 joints [[attribute(12)]]; metal::float4 weights [[attribute(13)]]; metal::float2 uv1_2 [[attribute(10)]]; }; struct vs_custom_skinnedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_skinnedOutput vs_custom_skinned( vs_custom_skinnedInput varyings_2 [[stage_in]] , uint vid_2 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant SkinU& Skin [[buffer(6)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; const VsIn in_2 = { varyings_2.pos_1, varyings_2.normal_2, varyings_2.uv_3, varyings_2.flags_4, {}, varyings_2.tangent_1, varyings_2.weight }; const SkinIn s = { varyings_2.joints, varyings_2.weights }; const auto uv1_2 = varyings_2.uv1_2; SkinRows _e4 = skin_rows(s, Skin); metal::float4 p_12 = metal::float4(in_2.pos, 1.0); metal::float3 skinned = metal::float3(metal::dot(_e4.r0_, p_12), metal::dot(_e4.r1_, p_12), metal::dot(_e4.r2_, p_12)); metal::float3 bx_1 = metal::float3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); metal::float3 by_1 = metal::float3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); metal::float3 bz_1 = metal::float3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det_1 = metal::dot(bx_1, metal::cross(by_1, bz_1)); bool flip_2 = det_1 < 0.0; metal::float3x3 cofactor_1 = metal::float3x3(metal::cross(by_1, bz_1), metal::cross(bz_1, bx_1), metal::cross(bx_1, by_1)); metal::float3 n0_ = metal::normalize((cofactor_1 * in_2.normal) * (flip_2 ? -1.0 : 1.0)); metal::float3 t0_1 = metal::normalize(metal::float3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz); metal::float4x4 _e58 = O.model; metal::float4x4 _e61 = O.normal; metal::float3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(skinned, n0_, metal::float4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, metal::float4(1.0), vid_2, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, POSITION, hedra_p); uint flags_5 = in_2.flags | (flip_2 ? F_INSTANCE_MIRRORED : 0u); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2, O); bool _e82 = hedra_vertex_space(); if (_e82) { metal::float4 _e83 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e85 = NORMAL; metal::float3 _e86 = hedra_vertex_dir(_e85, INV_VIEW_MATRIX); metal::float3 _e88 = TANGENT; metal::float3 _e89 = hedra_vertex_dir(_e88, INV_VIEW_MATRIX); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID); const auto _tmp_4 = _e90; return vs_custom_skinnedOutput { _tmp_4.clip, _tmp_4.world, _tmp_4.normal, _tmp_4.uv, _tmp_4.flags, _tmp_4.tangent, _tmp_4.color, _tmp_4.uv2_, _tmp_4.instance_id, _tmp_4.hedra_v0_, _tmp_4.hedra_v1_, _tmp_4.hedra_v2_, _tmp_4.hedra_v3_ }; } metal::float4x4 _e93 = O.model; metal::float3 _e95 = VERTEX; metal::float4 world_16 = _e93 * metal::float4(_e95, 1.0); metal::float4x4 _e101 = O.normal; metal::float3 _e103 = NORMAL; metal::float3 n_16 = (_e101 * metal::float4(_e103, 0.0)).xyz; metal::float4x4 _e110 = O.model; metal::float3 _e112 = TANGENT; metal::float3 t_12 = (_e110 * metal::float4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_16, n_16, t_12, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID); const auto _tmp_5 = _e117; return vs_custom_skinnedOutput { _tmp_5.clip, _tmp_5.world, _tmp_5.normal, _tmp_5.uv, _tmp_5.flags, _tmp_5.tangent, _tmp_5.color, _tmp_5.uv2_, _tmp_5.instance_id, _tmp_5.hedra_v0_, _tmp_5.hedra_v1_, _tmp_5.hedra_v2_, _tmp_5.hedra_v3_ }; } struct fs_customInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_customOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_customOutput fs_custom( fs_customInput varyings_3 [[stage_in]] , metal::float4 clip_2 [[position]] , bool facing [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant LitU& Lit [[buffer(1)]] , constant ShadowU& Shadow [[buffer(2)]] , metal::depth2d t_shadow [[texture(0)]] , metal::sampler s_shadow [[sampler(0)]] , constant SkyU& Sky [[buffer(3)]] , metal::texturecube t_radiance [[texture(5)]] , metal::texture2d t_panorama [[texture(6)]] , metal::sampler s_radiance [[sampler(3)]] , metal::sampler s_panorama [[sampler(4)]] , metal::texture2d t_ao [[texture(1)]] , metal::texture2d_array t_lightmap [[texture(7)]] , metal::sampler s_lightmap [[sampler(5)]] , constant ProbeU& Probe [[buffer(4)]] , metal::texture2d t_probes [[texture(8)]] , metal::sampler s_probes [[sampler(6)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] , constant FogU& Fog [[buffer(8)]] , metal::texture2d t_screen [[texture(3)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d screen [[texture(4)]] , metal::sampler SAMPLER_NEAREST_CLAMP [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; float SPECULAR_AMOUNT = {}; metal::float3 LIGHT = {}; metal::float3 LIGHT_COLOR = {}; bool LIGHT_IS_DIRECTIONAL = {}; float ATTENUATION = {}; metal::float3 DIFFUSE_LIGHT = {}; metal::float3 SPECULAR_LIGHT = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; const CustomOut in_3 = { clip_2, varyings_3.world_13, varyings_3.normal_2, varyings_3.uv_3, varyings_3.flags_4, {}, varyings_3.tangent_1, varyings_3.color_1, varyings_3.uv2_1, varyings_3.instance_id, {}, varyings_3.hedra_v0_, varyings_3.hedra_v1_, varyings_3.hedra_v2_, varyings_3.hedra_v3_ }; metal::float3 c = {}; hedra_fragment(in_3, facing, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, screen, SAMPLER_NEAREST_CLAMP); bool _e3 = hedra_culled(in_3.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (_e3) { metal::discard_fragment(); } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy, O); if (_e7 <= 0.0) { metal::discard_fragment(); } if (HEDRA_UNSHADED) { metal::float3 _e13 = ALBEDO; metal::float3 _e15 = hedra_world; metal::float3 _e16 = hedra_view_dir(_e15, G); metal::float3 _e17 = hedra_fog(_e13, _e16, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e18 = tonemap(_e17, Lit); c = _e18; } else { metal::float3 _e20 = hedra_lit(in_3.clip, G, O, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, Fog, NORMAL, ALBEDO, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SPECULAR_AMOUNT, LIGHT, LIGHT_COLOR, LIGHT_IS_DIRECTIONAL, ATTENUATION, DIFFUSE_LIGHT, SPECULAR_LIGHT, hedra_world, hedra_n_geo, hedra_n); c = _e20; } uint _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { metal::float3 _e27 = c; metal::float3 _e28 = hedra_bindings(t_panorama, s_radiance, s_panorama, t_lightmap, s_lightmap, t_screen); c = _e27 + _e28; } uint _e33 = G.params.x; if (_e33 == SHADE_LIT) { metal::float3 _e36 = c; metal::float3 _e37 = item_fade(_e36, O, Lit); metal::float3 _e38 = emerge_tint(_e37, _e7, O, Lit); c = _e38; } metal::float3 _e39 = c; metal::float4 _e40 = hedra_output(_e39, G, Lit, ALPHA, PREMUL_ALPHA_FACTOR); return fs_customOutput { _e40 }; } struct fs_custom_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; fragment void fs_custom_depth( fs_custom_depthInput varyings_4 [[stage_in]] , metal::float4 clip_3 [[position]] , bool facing_1 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d screen [[texture(4)]] , metal::sampler SAMPLER_NEAREST_CLAMP [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; const CustomOut in_4 = { clip_3, varyings_4.world_13, varyings_4.normal_2, varyings_4.uv_3, varyings_4.flags_4, {}, varyings_4.tangent_1, varyings_4.color_1, varyings_4.uv2_1, varyings_4.instance_id, {}, varyings_4.hedra_v0_, varyings_4.hedra_v1_, varyings_4.hedra_v2_, varyings_4.hedra_v3_ }; bool local = {}; bool local_1 = {}; hedra_fragment(in_4, facing_1, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, screen, SAMPLER_NEAREST_CLAMP); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = _e14 < _e16; } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { metal::discard_fragment(); } float _e25 = emerge_reveal(in_4.world, metal::float2(-1.0), O); if (_e25 <= 0.0) { metal::discard_fragment(); } else { return; } } struct fs_custom_idInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_idOutput { metal::float4 id [[color(0)]]; }; fragment fs_custom_idOutput fs_custom_id( fs_custom_idInput varyings_5 [[stage_in]] , metal::float4 clip_4 [[position]] , bool facing_2 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d screen [[texture(4)]] , metal::sampler SAMPLER_NEAREST_CLAMP [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; const CustomOut in_5 = { clip_4, varyings_5.world_13, varyings_5.normal_2, varyings_5.uv_3, varyings_5.flags_4, {}, varyings_5.tangent_1, varyings_5.color_1, varyings_5.uv2_1, varyings_5.instance_id, {}, varyings_5.hedra_v0_, varyings_5.hedra_v1_, varyings_5.hedra_v2_, varyings_5.hedra_v3_ }; bool local_2 = {}; IdOut out = {}; hedra_fragment(in_5, facing_2, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, screen, SAMPLER_NEAREST_CLAMP); bool _e3 = hedra_culled(in_5.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy, O); local_2 = _e10 <= 0.0; } else { local_2 = true; } bool _e14 = local_2; if (_e14) { metal::discard_fragment(); } uint id = O.params.z; uint _e24 = O.params.x; uint _e33 = O.params.y; uint bits = ((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u); out.id = metal::float4(static_cast(id & 255u), static_cast((id >> 8u) & 255u), static_cast((id >> 16u) & 255u), static_cast(bits)) / metal::float4(255.0); IdOut _e58 = out; const auto _tmp_6 = _e58; return fs_custom_idOutput { _tmp_6.id }; } struct fs_custom_normal_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_normal_depthOutput { metal::float4 normal_depth [[color(0)]]; metal::float4 surface [[color(1)]]; }; fragment fs_custom_normal_depthOutput fs_custom_normal_depth( fs_custom_normal_depthInput varyings_6 [[stage_in]] , metal::float4 clip_5 [[position]] , bool facing_3 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d screen [[texture(4)]] , metal::sampler SAMPLER_NEAREST_CLAMP [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; const CustomOut in_6 = { clip_5, varyings_6.world_13, varyings_6.normal_2, varyings_6.uv_3, varyings_6.flags_4, {}, varyings_6.tangent_1, varyings_6.color_1, varyings_6.uv2_1, varyings_6.instance_id, {}, varyings_6.hedra_v0_, varyings_6.hedra_v1_, varyings_6.hedra_v2_, varyings_6.hedra_v3_ }; bool local_3 = {}; HedraNormalDepthOut out_1 = {}; hedra_fragment(in_6, facing_3, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, screen, SAMPLER_NEAREST_CLAMP); bool _e3 = hedra_culled(in_6.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy, O); local_3 = _e10 <= 0.0; } else { local_3 = true; } bool _e14 = local_3; if (_e14) { metal::discard_fragment(); } metal::float4x4 _e17 = G.view; metal::float3x3 _e18 = hedra_mat3_(_e17); metal::float3 _e20 = hedra_n; metal::float3 n_view = metal::normalize(_e18 * _e20); float _e24 = METALLIC; float metallic_2 = metal::clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; metal::float3 _e37 = ALBEDO; metal::float3 f0_5 = metal::mix(metal::float3((0.16 * _e29) * _e33), _e37, metallic_2); metal::float4x4 _e43 = G.view; out_1.normal_depth = metal::float4(n_view, -((_e43 * metal::float4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = metal::float4(metal::clamp(f0_5, metal::float3(0.0), metal::float3(1.0)), metal::clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; const auto _tmp_7 = _e63; return fs_custom_normal_depthOutput { _tmp_7.normal_depth, _tmp_7.surface }; }  @Ð Ð/ ,@  {Ðþ—4ÌhÜäF‚�SKw;�ðõiF:3QçkíVã›c vs_custommain½6struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1377 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1228 = transpose(hedra_mat3(m)); return float4x4(float4(_1228[0], 0.0f), float4(_1228[1], 0.0f), float4(_1228[2], 0.0f), float4(-mul(m[3].xyz, _1228), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1334 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1334 = true; } else { _1334 = false; } if (_1334) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { float2 extent = float2(1.0f, 1.0f); float _1160 = hedra_p_1_m0.low_res.x / hedra_p_1_m0.low_res.y; float _1170 = G_1_m0.viewport.xy.x / max(G_1_m0.viewport.xy.y, 1.0f); if (_1170 > _1160) { extent.x = _1160 / _1170; } else { extent.y = _1170 / _1160; } if (hedra_p_1_m0.integer_scale > 0.5f) { float _1190 = extent.y * G_1_m0.viewport.xy.y; float _1194 = floor(_1190 / hedra_p_1_m0.low_res.y); if (_1194 >= 1.0f) { extent *= ((_1194 * hedra_p_1_m0.low_res.y) / _1190); } } POSITION = float4((VERTEX.xy * 2.0f) * extent, 0.5f, 1.0f); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1410 = false; if (true) { _1410 = false; } else { _1410 = true; } return _1410; } float4 hedra_vertex_world() { if (false) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (false) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(CustomOut o) { } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1377; _out.clip = mul(world_1, G_1_m0.view_proj); if (true) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1606 = { pos, normal, uv, flags, tangent, weight }; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(_1606.pos, _1606.normal, _1606.tangent, _1606.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); float _1664 = hedra_tangent_sign(_1606.tangent.w, false); if (hedra_vertex_space()) { CustomOut _1674 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1664, _1606.flags); gl_Position = _1674.clip; world = _1674.world; normal_1 = _1674.normal; uv_1 = _1674.uv; flags_1 = _1674.flags; tangent_1 = _1674.tangent; color = _1674.color; uv2 = _1674.uv2; instance_id = _1674.instance_id; hedra_v0 = _1674.hedra_v0; hedra_v1 = _1674.hedra_v1; hedra_v2 = _1674.hedra_v2; hedra_v3 = _1674.hedra_v3; return; } CustomOut _1706 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1664, _1606.flags); gl_Position = _1706.clip; world = _1706.world; normal_1 = _1706.normal; uv_1 = _1706.uv; flags_1 = _1706.flags; tangent_1 = _1706.tangent; color = _1706.color; uv2 = _1706.uv2; instance_id = _1706.instance_id; hedra_v0 = _1706.hedra_v0; hedra_v1 = _1706.hedra_v1; hedra_v2 = _1706.hedra_v2; hedra_v3 = _1706.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_instancedmainå;struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1377 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 row0; static float4 row1; static float4 row2; static float4 color; static float2 uv1; static float4 custom; static float id; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color_1; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 row0 : TEXCOORD6; float4 row1 : TEXCOORD7; float4 row2 : TEXCOORD8; float4 color : TEXCOORD9; float2 uv1 : TEXCOORD10; float4 custom : TEXCOORD14; float id : TEXCOORD15; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color_1 : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1228 = transpose(hedra_mat3(m)); return float4x4(float4(_1228[0], 0.0f), float4(_1228[1], 0.0f), float4(_1228[2], 0.0f), float4(-mul(m[3].xyz, _1228), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_2, uint vid) { bool _1334 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_2; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1334 = true; } else { _1334 = false; } if (_1334) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { float2 extent = float2(1.0f, 1.0f); float _1160 = hedra_p_1_m0.low_res.x / hedra_p_1_m0.low_res.y; float _1170 = G_1_m0.viewport.xy.x / max(G_1_m0.viewport.xy.y, 1.0f); if (_1170 > _1160) { extent.x = _1160 / _1170; } else { extent.y = _1170 / _1160; } if (hedra_p_1_m0.integer_scale > 0.5f) { float _1190 = extent.y * G_1_m0.viewport.xy.y; float _1194 = floor(_1190 / hedra_p_1_m0.low_res.y); if (_1194 >= 1.0f) { extent *= ((_1194 * hedra_p_1_m0.low_res.y) / _1190); } } POSITION = float4((VERTEX.xy * 2.0f) * extent, 0.5f, 1.0f); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1410 = false; if (true) { _1410 = false; } else { _1410 = true; } return _1410; } float4 hedra_vertex_world() { if (false) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (false) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(CustomOut o) { } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1377; _out.clip = mul(world_1, G_1_m0.view_proj); if (true) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1606 = { pos, normal, uv, flags, tangent, weight }; InstIn _1624 = { row0, row1, row2, color }; HedraInstExtra _1635 = { custom, id }; float3 _1670 = float3(_1624.row0.x, _1624.row1.x, _1624.row2.x); float3 _1677 = float3(_1624.row0.y, _1624.row1.y, _1624.row2.y); float3 _1684 = float3(_1624.row0.z, _1624.row1.z, _1624.row2.z); bool _1687 = dot(_1670, cross(_1677, _1684)) < 0.0f; float3x3 _1693 = float3x3(cross(_1677, _1684), cross(_1684, _1670), cross(_1670, _1677)) * (_1687 ? (-1.0f) : 1.0f); hedra_matrices(mul(float4x4(float4(_1670, 0.0f), float4(_1677, 0.0f), float4(_1684, 0.0f), float4(_1624.row0.w, _1624.row1.w, _1624.row2.w, 1.0f)), O_1_m0.model), mul(_1693, hedra_mat3(O_1_m0.normal))); INSTANCE_ID = int(clamp(_1635.id, -2147483648.0f, 2147483520.0f)); INSTANCE_CUSTOM = _1635.custom; hedra_begin_vertex(_1606.pos, _1606.normal, _1606.tangent, _1606.uv, uv1, _1624.color, uint(gl_VertexIndex)); vertex(); uint _1728 = _1606.flags | (_1687 ? 128u : 0u); float _1731 = hedra_tangent_sign(_1606.tangent.w, _1687); if (hedra_vertex_space()) { CustomOut _1740 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1731, _1728); gl_Position = _1740.clip; world = _1740.world; normal_1 = _1740.normal; uv_1 = _1740.uv; flags_1 = _1740.flags; tangent_1 = _1740.tangent; color_1 = _1740.color; uv2 = _1740.uv2; instance_id = _1740.instance_id; hedra_v0 = _1740.hedra_v0; hedra_v1 = _1740.hedra_v1; hedra_v2 = _1740.hedra_v2; hedra_v3 = _1740.hedra_v3; return; } float4 _1755 = float4(VERTEX, 1.0f); CustomOut _1782 = hedra_end_vertex(mul(float4(float3(dot(_1624.row0, _1755), dot(_1624.row1, _1755), dot(_1624.row2, _1755)), 1.0f), O_1_m0.model), mul(float4(mul(NORMAL, _1693), 0.0f), O_1_m0.normal).xyz, mul(float4(mul(TANGENT, float3x3(_1670, _1677, _1684)), 0.0f), O_1_m0.model).xyz, _1731, _1728); gl_Position = _1782.clip; world = _1782.world; normal_1 = _1782.normal; uv_1 = _1782.uv; flags_1 = _1782.flags; tangent_1 = _1782.tangent; color_1 = _1782.color; uv2 = _1782.uv2; instance_id = _1782.instance_id; hedra_v0 = _1782.hedra_v0; hedra_v1 = _1782.hedra_v1; hedra_v2 = _1782.hedra_v2; hedra_v3 = _1782.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; row0 = stage_input.row0; row1 = stage_input.row1; row2 = stage_input.row2; color = stage_input.color; uv1 = stage_input.uv1; custom = stage_input.custom; id = stage_input.id; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color_1 = color_1; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_skinnedmain«=struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const SkinRows _1138 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const CustomOut _1469 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Skin : register(b6) { SkinU Skin_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static uint4 joints; static float4 weights; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint4 joints : TEXCOORD12; float4 weights : TEXCOORD13; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); float4 skin_row(uint k, uint r) { return Skin_1_m0.rows[min(((min(k, 254u) * 3u) + r), 764u)]; } SkinRows skin_rows(SkinIn s) { SkinRows m = _1138; m.r0 = (((skin_row(s.joints.x, 0u) * s.weights.x) + (skin_row(s.joints.y, 0u) * s.weights.y)) + (skin_row(s.joints.z, 0u) * s.weights.z)) + (skin_row(s.joints.w, 0u) * s.weights.w); m.r1 = (((skin_row(s.joints.x, 1u) * s.weights.x) + (skin_row(s.joints.y, 1u) * s.weights.y)) + (skin_row(s.joints.z, 1u) * s.weights.z)) + (skin_row(s.joints.w, 1u) * s.weights.w); m.r2 = (((skin_row(s.joints.x, 2u) * s.weights.x) + (skin_row(s.joints.y, 2u) * s.weights.y)) + (skin_row(s.joints.z, 2u) * s.weights.z)) + (skin_row(s.joints.w, 2u) * s.weights.w); return m; } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1320 = transpose(hedra_mat3(m)); return float4x4(float4(_1320[0], 0.0f), float4(_1320[1], 0.0f), float4(_1320[2], 0.0f), float4(-mul(m[3].xyz, _1320), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1426 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1426 = true; } else { _1426 = false; } if (_1426) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } void vertex() { float2 extent = float2(1.0f, 1.0f); float _1252 = hedra_p_1_m0.low_res.x / hedra_p_1_m0.low_res.y; float _1262 = G_1_m0.viewport.xy.x / max(G_1_m0.viewport.xy.y, 1.0f); if (_1262 > _1252) { extent.x = _1252 / _1262; } else { extent.y = _1262 / _1252; } if (hedra_p_1_m0.integer_scale > 0.5f) { float _1282 = extent.y * G_1_m0.viewport.xy.y; float _1286 = floor(_1282 / hedra_p_1_m0.low_res.y); if (_1286 >= 1.0f) { extent *= ((_1286 * hedra_p_1_m0.low_res.y) / _1282); } } POSITION = float4((VERTEX.xy * 2.0f) * extent, 0.5f, 1.0f); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1502 = false; if (true) { _1502 = false; } else { _1502 = true; } return _1502; } float4 hedra_vertex_world() { if (false) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (false) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(CustomOut o) { } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1469; _out.clip = mul(world_1, G_1_m0.view_proj); if (true) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1698 = { pos, normal, uv, flags, tangent, weight }; SkinIn _1716 = { joints, weights }; SkinRows _1749 = skin_rows(_1716); float4 _1751 = float4(_1698.pos, 1.0f); float3 _1765 = float3(_1749.r0.x, _1749.r1.x, _1749.r2.x); float3 _1772 = float3(_1749.r0.y, _1749.r1.y, _1749.r2.y); float3 _1779 = float3(_1749.r0.z, _1749.r1.z, _1749.r2.z); bool _1782 = dot(_1765, cross(_1772, _1779)) < 0.0f; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(float3(dot(_1749.r0, _1751), dot(_1749.r1, _1751), dot(_1749.r2, _1751)), normalize(mul(_1698.normal, float3x3(cross(_1772, _1779), cross(_1779, _1765), cross(_1765, _1772))) * (_1782 ? (-1.0f) : 1.0f)), float4(normalize(mul(_1698.tangent.xyz, float3x3(_1765, _1772, _1779))), _1698.tangent.w), _1698.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); uint _1811 = _1698.flags | (_1782 ? 128u : 0u); float _1814 = hedra_tangent_sign(_1698.tangent.w, _1782); if (hedra_vertex_space()) { CustomOut _1823 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1814, _1811); gl_Position = _1823.clip; world = _1823.world; normal_1 = _1823.normal; uv_1 = _1823.uv; flags_1 = _1823.flags; tangent_1 = _1823.tangent; color = _1823.color; uv2 = _1823.uv2; instance_id = _1823.instance_id; hedra_v0 = _1823.hedra_v0; hedra_v1 = _1823.hedra_v1; hedra_v2 = _1823.hedra_v2; hedra_v3 = _1823.hedra_v3; return; } CustomOut _1854 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1814, _1811); gl_Position = _1854.clip; world = _1854.world; normal_1 = _1854.normal; uv_1 = _1854.uv; flags_1 = _1854.flags; tangent_1 = _1854.tangent; color = _1854.color; uv2 = _1854.uv2; instance_id = _1854.instance_id; hedra_v0 = _1854.hedra_v0; hedra_v1 = _1854.hedra_v1; hedra_v2 = _1854.hedra_v2; hedra_v3 = _1854.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; joints = stage_input.joints; weights = stage_input.weights; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; }  fs_custommainMGstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _566 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const uint _2652[4] = { 0u, 0u, 0u, 0u }; static const float2 _2655[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _2662[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const float _3954[16] = { -4.0f, 0.0f, -3.0f, 1.0f, 2.0f, -2.0f, 3.0f, -1.0f, -3.0f, 1.0f, -4.0f, 0.0f, 3.0f, -1.0f, 2.0f, -2.0f }; static const DecalSurface _4945 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Shadow : register(b2) { ShadowU Shadow_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Probe : register(b4) { ProbeU Probe_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D t_shadow : register(t0); SamplerComparisonState s_shadow : register(s0); TextureCube t_radiance : register(t5); Texture2D t_panorama : register(t6); SamplerState s_radiance : register(s3); SamplerState s_panorama : register(s4); Texture2D t_ao : register(t1); Texture2DArray t_lightmap : register(t7); SamplerState s_lightmap : register(s5); Texture2D t_probes : register(t8); SamplerState s_probes : register(s6); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); Texture2D t_screen : register(t3); Texture2D screen : register(t4); SamplerState SAMPLER_NEAREST_CLAMP : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 _5340; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 _5340 : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float SPECULAR_AMOUNT = 0.0f; static float3 LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_COLOR = float3(0.0f, 0.0f, 0.0f); static bool LIGHT_IS_DIRECTIONAL = false; static float ATTENUATION = 0.0f; static float3 DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint spvPackUnorm4x8(float4 value) { uint4 Packed = uint4(round(saturate(value) * 255.0)); return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); } float4 spvUnpackUnorm4x8(uint value) { uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); return float4(Packed) / 255.0; } bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _4022 = transpose(hedra_mat3(m)); return float4x4(float4(_4022[0], 0.0f), float4(_4022[1], 0.0f), float4(_4022[2], 0.0f), float4(-mul(m[3].xyz, _4022), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { } uint naga_mod(uint lhs, uint rhs) { return lhs % ((rhs == 0u) ? 1u : rhs); } float3 psx_encode_srgb(float3 c) { float3 _3920 = c * 12.9200000762939453125f; float3 _3924 = (pow(max(c, float3(0.0f, 0.0f, 0.0f)), float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _3925 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_3925.x ? _3920.x : _3924.x, _3925.y ? _3920.y : _3924.y, _3925.z ? _3920.z : _3924.z); } float3 psx_decode_srgb(float3 c) { float3 _3931 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _3934 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _3935 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_3935.x ? _3931.x : _3934.x, _3935.y ? _3931.y : _3934.y, _3935.z ? _3931.z : _3934.z); } void fragment() { float2 _3965 = floor(UV * hedra_p_1_m0.low_res); float _3988 = _3954[min(((naga_mod(uint(clamp(_3965.y, 0.0f, 4294967040.0f)), 4u) * 4u) + naga_mod(uint(clamp(_3965.x, 0.0f, 4294967040.0f)), 4u)), 15u)] * hedra_p_1_m0.dither_strength; float _3992 = exp2(8.0f - hedra_p_1_m0.color_bits); ALBEDO = psx_decode_srgb((floor(clamp((psx_encode_srgb(screen.Sample(SAMPLER_NEAREST_CLAMP, (_3965 + float2(0.5f, 0.5f)) / hedra_p_1_m0.low_res).xyz) * 255.0f) + float3(_3988, _3988, _3988), float3(0.0f, 0.0f, 0.0f), float3(255.0f, 255.0f, 255.0f)) / float3(_3992, _3992, _3992)) * _3992) / float3(255.0f, 255.0f, 255.0f)); } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _4181 = facing != hedra_mirrored(_in.flags); hedra_front = _4181; FRONT_FACING = _4181; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _4197 = hedra_mat3(G_1_m0.view); float3 _4200 = -normalize(_in.normal); float3 _4202 = normalize(_in.normal); bool3 _4204 = bool3(_4181, _4181, _4181); float3 _4203 = float3(_4204.x ? _4202.x : _4200.x, _4204.y ? _4202.y : _4200.y, _4204.z ? _4202.z : _4200.z); hedra_n_geo = _4203; hedra_n = _4203; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_4203 * dot(_4203, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _4226 = VERTEX; NORMAL = normalize(mul(_4203, _4197)); float3 _4229 = NORMAL; TANGENT = normalize(mul(t, _4197)); BINORMAL = normalize(mul(cross(_4203, t) * _in.tangent.w, _4197)); float3 _4237 = normalize(-VERTEX); bool _4240 = G_1_m0.camera_pos.w > 0.5f; bool3 _4242 = bool3(_4240, _4240, _4240); VIEW = float3(_4242.x ? float3(0.0f, 0.0f, 1.0f).x : _4237.x, _4242.y ? float3(0.0f, 0.0f, 1.0f).y : _4237.y, _4242.z ? float3(0.0f, 0.0f, 1.0f).z : _4237.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _4248 = transpose(_4197); if (any(bool3(NORMAL.x != _4229.x, NORMAL.y != _4229.y, NORMAL.z != _4229.z))) { hedra_n = normalize(mul(NORMAL, _4248)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _4248)); } if (any(bool3(LIGHT_VERTEX.x != _4226.x, LIGHT_VERTEX.y != _4226.y, LIGHT_VERTEX.z != _4226.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _4313 = false; bool _4315 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _4313 = hedra_front; } else { _4313 = false; } if (_4313) { return true; } if (false) { _4315 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _4315 = false; } return _4315; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1144 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1144, _1144, _1144); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1169 = floor(p); float3 _1170 = frac(p); float3 _1174 = (_1170 * _1170) * (float3(3.0f, 3.0f, 3.0f) - (_1170 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1169), emerge_hash(_1169 + float3(1.0f, 0.0f, 0.0f)), _1174.x), lerp(emerge_hash(_1169 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1169 + float3(1.0f, 1.0f, 0.0f)), _1174.x), _1174.y), lerp(lerp(emerge_hash(_1169 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1169 + float3(1.0f, 0.0f, 1.0f)), _1174.x), lerp(emerge_hash(_1169 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1169 + float3(1.0f, 1.0f, 1.0f)), _1174.x), _1174.y), _1174.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1231 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1231) * 0.64999997615814208984375f) + (emerge_noise((_1231 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } float3 hedra_view_dir(float3 world_1) { float3 _4352 = normalize(G_1_m0.camera_pos.xyz - world_1); float3 _4353 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _4356 = G_1_m0.camera_pos.w > 0.5f; bool3 _4358 = bool3(_4356, _4356, _4356); return float3(_4358.x ? _4353.x : _4352.x, _4358.y ? _4353.y : _4352.y, _4358.z ? _4353.z : _4352.z); } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float3 radiance(float3 d, float roughness) { return t_radiance.SampleLevel(s_radiance, d, roughness * float(max(Sky_1_m0.flags.y, 1u) - 1u)).xyz; } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _1604 = max(x, 0.0f) * max(x, 0.0f); float _1605 = _1604 * _1604; return _1605 * _1605; } float3 fog_sun_scatter(float3 fc, float3 dir) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _1624 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _1624)) { break; } uint _1647 = pool_sun(k); if (Lit_1_m0.lights[min(_1647, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_1647, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir, -Lit_1_m0.lights[min(_1647, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 surface_fog(float3 c, float3 world_1, float3 dir) { float amount = 0.0f; bool _1714 = false; float dist = 0.0f; float3 fc = float3(0.0f, 0.0f, 0.0f); float _1722 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; dist = distance(world_1, G_1_m0.camera_pos.xyz); if (Sky_1_m0.fog_origin.w > 0.5f) { dist = max(_1722 - Sky_1_m0.fog_origin.x, 0.0f); } if ((Sky_1_m0.flags.x & 256u) != 0u) { float _1749 = smoothstep(Sky_1_m0.fog_depth.x, Sky_1_m0.fog_depth.y, dist); amount = ((_1749 > 0.0f) ? pow(max(_1749, 9.9999999747524270787835121154785e-07f), Sky_1_m0.fog_depth.z) : 0.0f) * Sky_1_m0.fog.x; } else { amount = 1.0f - exp(min(0.0f, (-dist) * Sky_1_m0.fog.x)); } if (abs(Sky_1_m0.fog.w) >= 9.9999997473787516355514526367188e-05f) { amount = max(amount, 1.0f - exp(min(0.0f, (dot(world_1, Lit_1_m0.up.xyz) - Sky_1_m0.fog.z) * Sky_1_m0.fog.w))); } amount = clamp(amount, 0.0f, 1.0f); fc = Sky_1_m0.fog_color.xyz; if ((Sky_1_m0.flags.x & 8u) != 0u) { _1714 = Sky_1_m0.fog_depth.w > 0.0f; } else { _1714 = false; } if (true ? _1714 : false) { fc = lerp(fc, radiance(sky_dir(dir), lerp(1.0f / float(max(Sky_1_m0.flags.y, 2u) - 1u), 1.0f, 1.0f - clamp((_1722 - Sky_1_m0.fog_origin.y) / max(Sky_1_m0.fog_origin.z - Sky_1_m0.fog_origin.y, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f))) * Sky_1_m0.sun.w, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)); } fc = fog_sun_scatter(fc, dir); return lerp(c, fc, float3(amount, amount, amount)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _1868 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _1872 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_1868 == 4u) { return float2(0.0f, _1872); } float3 _1881 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _1882 = abs(d); bool3 _1883 = bool3(_1882.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _1882.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _1882.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _1884 = float3(_1883.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _1883.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _1883.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _1887 = ((-_1881) - o) / _1884; float3 _1889 = (_1881 - o) / _1884; float3 _1890 = min(_1887, _1889); float3 _1891 = max(_1887, _1889); r = float2(max(0.0f, _1890.y), min(_1872, _1891.y)); if (_1868 == 3u) { r = float2(max(max(r.x, _1890.x), _1890.z), min(min(r.y, _1891.x), _1891.z)); } else { if (_1868 == 0u) { a = dot(d / _1881, d / _1881); b = dot(o / _1881, d / _1881); c = dot(o / _1881, o / _1881) - 1.0f; } else { float _1930 = min(_1881.x, _1881.z); float _1935 = (_1868 == 1u) ? (_1930 / (2.0f * _1881.y)) : 0.0f; float _1938 = _1881.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_1935 * _1935) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_1935 * _1935) * _1938) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_1868 == 1u) ? (((_1935 * _1935) * _1938) * _1938) : (_1930 * _1930)); } } float _1984 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_1984 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _2048 = min(((-b) - sqrt(_1984)) / a, ((-b) + sqrt(_1984)) / a); float _2061 = max(((-b) - sqrt(_1984)) / a, ((-b) + sqrt(_1984)) / a); if (a > 0.0f) { r = float2(max(r.x, _2048), min(r.y, _2061)); } else { if (r.x < min(r.y, _2048)) { r.y = min(r.y, _2048); } else { r.x = max(r.x, _2061); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _2105 = min(k, 15u); rho = Fog_1_m0.entries[_2105].material.x * min(exp2((-Fog_1_m0.entries[_2105].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2105].material.w)), 1.0f); if (Fog_1_m0.entries[_2105].material.z > 0.0f) { uint _2132 = uint(clamp(Fog_1_m0.entries[_2105].albedo.w, 0.0f, 4294967040.0f)); float3 _2135 = Fog_1_m0.entries[_2105].size.xyz * 0.5f; float _2138 = min(_2135.x, _2135.z); if (_2132 == 0u) { float _2144 = length(lp / _2135); sdf = (_2144 * (_2144 - 1.0f)) / max(length(lp / (_2135 * _2135)), 9.9999999600419720025001879548654e-13f); } else { if (_2132 == 3u) { float3 _2157 = abs(lp) - _2135; sdf = length(max(_2157, float3(0.0f, 0.0f, 0.0f))) + min(max(_2157.x, max(_2157.y, _2157.z)), 0.0f); } else { if (_2132 == 2u) { float2 _2178 = float2(length(lp.xz) - _2138, abs(lp.y) - _2135.y); sdf = min(max(_2178.x, _2178.y), 0.0f) + length(max(_2178, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _2138 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _2135.y))), float2(length(lp.xz), lp.y - _2135.y)), (-_2135.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_2105].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_2105].material.z); } return rho; } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float3 fog_light(uint n, float3 p, float3 dir) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _2340 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_2340].lights.z, 8u))) { break; } uint _2376 = min(((((k < 4u) ? Fog_1_m0.entries[_2340].lights.x : Fog_1_m0.entries[_2340].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _2377 = min(_2376, 63u); l = -Lit_1_m0.lights[_2377].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_2377].info.x != 0u) { float3 _2390 = Lit_1_m0.lights[_2377].position.xyz - p; float _2392 = max(length(_2390), 9.9999999747524270787835121154785e-07f); l = _2390 / float3(_2392, _2392, _2392); atten = omni_attenuation(length(_2390), Lit_1_m0.lights[_2377].position.w, Lit_1_m0.lights[_2377].direction.w); if (Lit_1_m0.lights[_2377].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_2377].direction.xyz), Lit_1_m0.lights[_2377].spot.x)) / max(1.0f - Lit_1_m0.lights[_2377].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_2377].spot.y)); } } float _2433 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir, l)); sum += (Lit_1_m0.lights[_2377].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _2433) * sqrt(_2433))) * Fog_1_m0.light_fog[min((_2376 >> 2u), 15u)][min((_2376 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _2231 = min(k, 15u); if ((Fog_1_m0.entries[_2231].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_2231].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_2231].material.y) * a), 1.0f); } float _2249 = clamp((-a) / b, t0, t1); float _2251 = (b > 0.0f) ? _2249 : t0; float _2253 = (b > 0.0f) ? t1 : _2249; float _2258 = ((Fog_1_m0.entries[_2231].material.y * abs(b)) * (_2253 - _2251)) * 0.693147182464599609375f; return Fog_1_m0.entries[_2231].material.x * (((t1 - t0) - (_2253 - _2251)) + ((min(exp2((-Fog_1_m0.entries[_2231].material.y) * max(a + (b * ((b > 0.0f) ? _2251 : _2253)), 0.0f)), 1.0f) * (_2253 - _2251)) * ((_2258 < 0.00999999977648258209228515625f) ? (1.0f - (_2258 * (0.5f - (_2258 * (0.16666667163372039794921875f - (_2258 / 24.0f)))))) : ((1.0f - exp(-_2258)) / _2258)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _2476 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _2478 = false; float tau = 0.0f; bool _2469 = false; uint i = 0u; bool _2471 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _2481 = min(k, 15u); float3 _2487 = mul(float4(o, 1.0f), Fog_1_m0.entries[_2481].to_local).xyz; float3 _2491 = mul(float4(d, 0.0f), Fog_1_m0.entries[_2481].to_local).xyz; float _2498 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2481].material.w; float _2502 = dot(d, Fog_1_m0.up.xyz); bool _2505 = Fog_1_m0.entries[_2481].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_2481].material.y > 0.0f) { _2469 = ((-_2498) / _2502) > ch.x; } else { _2469 = false; } if (_2469) { _2471 = ((-_2498) / _2502) < ch.y; } else { _2471 = false; } if (_2471) { split = (-_2498) / _2502; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_2505 ? 12u : 4u))) { break; } uint _2556 = i & 3u; if (!(_2556 == 0u)) { _2476 = _2556 == 3u; } else { _2476 = true; } float _2564 = _2476 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_2556 == 0u)) { _2478 = _2556 == 3u; } else { _2478 = true; } float _2572 = _2478 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _2575 = float2(split, ch.y); float2 _2578 = float2(ch.x, split); bool _2580 = i < 8u; bool2 _2582 = bool2(_2580, _2580); float2 _2581 = float2(_2582.x ? _2578.x : _2575.x, _2582.y ? _2578.y : _2575.y); bool _2584 = i < 4u; bool2 _2586 = bool2(_2584, _2584); float2 _2585 = float2(_2586.x ? ch.x : _2581.x, _2586.y ? ch.y : _2581.y); float _2590 = (_2585.y - _2585.x) * 0.5f; float _2599 = ((_2585.x + _2585.y) * 0.5f) + (_2590 * ((_2556 < 2u) ? (-_2564) : _2564)); float3 _2601 = o + (d * _2599); float _2604 = fog_density(k, _2601, _2487 + (_2491 * _2599)); if (i < 4u) { q += (((Fog_1_m0.entries[_2481].albedo.xyz * fog_light(k, _2601, d)) + Fog_1_m0.entries[_2481].emission.xyz) * ((_2572 * _2590) * clamp(_2604, 0.0f, 1.0f))); } else { tau += ((_2572 * _2590) * _2604); } i++; continue; } if (!_2505) { tau = fog_falloff_depth(k, _2498, _2502, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _2652; uint i_3 = 0u; uint n = 0u; bool _2658 = false; float2 chords[4] = _2655; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _2662; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _2675 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_2675 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _2705 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_2675) { _2658 = _2705 == 0u; } else { _2658 = false; } if (_2658) { break; } uint _2717 = _2675 ? i_2 : (min(_2705, 16u) - 1u); uint _2718 = min(_2717, 15u); float2 _2727 = fog_chord(_2717, mul(float4(o, 1.0f), Fog_1_m0.entries[_2718].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_2718].to_local).xyz, t_end); if (_2727.y > _2727.x) { at[min(m, 3u)] = _2717; chords[min(m, 3u)] = _2727; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _2883 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _2883)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _3003 = exp(-tau); return (c * _3003) + (q * ((1.0f - _3003) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 fog_volumes(float3 c, float3 world_1, uint list) { float3 _3039 = world_1 - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(world_1, 1.0f), G_1_m0.view).z); bool _3042 = G_1_m0.camera_pos.w > 0.5f; bool3 _3044 = bool3(_3042, _3042, _3042); float3 _3043 = float3(_3044.x ? _3039.x : G_1_m0.camera_pos.xyz.x, _3044.y ? _3039.y : G_1_m0.camera_pos.xyz.y, _3044.z ? _3039.z : G_1_m0.camera_pos.xyz.z); float _3046 = length(world_1 - _3043); float _3048 = max(_3046, 9.9999999747524270787835121154785e-07f); float3 _3051 = fog_integrate(c, _3043, (world_1 - _3043) / float3(_3048, _3048, _3048), _3046, list); bool _3052 = _3046 > 0.0f; bool3 _3054 = bool3(_3052, _3052, _3052); return float3(_3054.x ? _3051.x : c.x, _3054.y ? _3051.y : c.y, _3054.z ? _3051.z : c.z); } float3 hedra_fog(float3 c_in, float3 v) { float3 c = float3(0.0f, 0.0f, 0.0f); c = c_in; if (true) { return c; } if ((Sky_1_m0.flags.x & 128u) != 0u) { c = surface_fog(c, hedra_world, -v); } if (O_1_m0.decals.w != 0u) { c = fog_volumes(c, hedra_world, O_1_m0.decals.w); } return c; } float3 filmic_curve(float3 x) { float _925 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _929 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _935 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _939 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_925, _925, _925))) + float3(_929, _929, _929)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_935, _935, _935))) - float3(_939, _939, _939); } float3 aces_curve(float3 c, float white) { float3 _987 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _995 = ((_987 * (_987 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_987 * ((_987 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _1000 = 1.7999999523162841796875f * white; float _1008 = ((_1000 * (_1000 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_1000 * ((0.98372900485992431640625f * _1000) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _995), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _995), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _995)) / float3(_1008, _1008, _1008); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _1063 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_1063, _1063, _1063); float3 _1068 = v * v; float3 _1069 = _1068 * _1068; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_1068 * 4.01109981536865234375f)) - ((_1068 * 25.68199920654296875f) * v)) + (_1069 * 70.35900115966796875f)) - ((_1069 * 74.7779998779296875f) * v)) + ((_1069 * 27.069000244140625f) * _1068), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _1098 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_1098 * Lit_1_m0.tone.y) + _1098) / ((_1098 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_1098) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_1098, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_1098); } return _1098; } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } float3 srgb_to_linear(float3 c) { float3 _254 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _257 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _259 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_259.x ? _254.x : _257.x, _259.y ? _254.y : _257.y, _259.z ? _254.z : _257.z); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _566; bool _569 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _574 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _574)) { break; } uint _603 = decal_entry(k); uint _606 = min(min(_603, 63u), 63u); float3 _612 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_606].to_local).xyz; if (all(bool3(_612.x >= float3(0.0f, -1.0f, 0.0f).x, _612.y >= float3(0.0f, -1.0f, 0.0f).y, _612.z >= float3(0.0f, -1.0f, 0.0f).z))) { _569 = all(bool3(_612.x <= float3(1.0f, 1.0f, 1.0f).x, _612.y <= float3(1.0f, 1.0f, 1.0f).y, _612.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _569 = false; } if (!_569) { uint _771 = k; k = _771 + 1u; continue; } fade = pow(1.0f - abs(_612.y), (_612.y > 0.0f) ? Decal_1_m0.entries[_606].fades.x : Decal_1_m0.entries[_606].fades.y); if (Decal_1_m0.entries[_606].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_606].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_606].axis_y.xyz) * 0.5f) + 0.5f); } float2 _650 = _612.xz; float _651 = decal_level(Decal_1_m0.entries[_606], world_1); if (Decal_1_m0.entries[_606].layers.x > 0u) { float4 _663 = decal_texel(Decal_1_m0.entries[_606].layers.x, _650, _651, (Decal_1_m0.entries[_606].flags.x & 1u) != 0u); float4 _669 = float4(srgb_to_linear(_663.xyz), _663.w) * Decal_1_m0.entries[_606].modulate; float _672 = _669.w * fade; float _678 = _672 * Decal_1_m0.entries[_606].fades.w; out_s.base = lerp(out_s.base, _669.xyz, float3(_678, _678, _678)); if (Decal_1_m0.entries[_606].layers.y > 0u) { float4 _691 = decal_texel(Decal_1_m0.entries[_606].layers.y, _650, _651, (Decal_1_m0.entries[_606].flags.x & 2u) != 0u); float _694 = (_691.x * 2.0f) - 1.0f; float _697 = 1.0f - (_691.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_606].axis_x.xyz * _694) + (Decal_1_m0.entries[_606].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_694 * _694)) - (_697 * _697))))) + (Decal_1_m0.entries[_606].axis_z.xyz * _697)), float3(_672, _672, _672))); } if (Decal_1_m0.entries[_606].layers.z > 0u) { float4 _731 = decal_texel(Decal_1_m0.entries[_606].layers.z, _650, _651, (Decal_1_m0.entries[_606].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _731.x, _672); out_s.roughness = lerp(out_s.roughness, _731.y, _672); out_s.metallic = lerp(out_s.metallic, _731.z, _672); } } if (Decal_1_m0.entries[_606].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_606].layers.w, _650, _651, (Decal_1_m0.entries[_606].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_606].modulate.xyz) * Decal_1_m0.entries[_606].axis_x.w) * fade); } uint _771 = k; k = _771 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } uint object_light_count() { return min(O_1_m0.lights.z, 8u); } uint object_light(uint k) { return min(((((k < 4u) ? O_1_m0.lights.x : O_1_m0.lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float4 hedra_light_dir(uint i, float3 world_1) { float atten = 0.0f; uint _4498 = min(i, 63u); if (Lit_1_m0.lights[_4498].info.x == 0u) { return float4(-Lit_1_m0.lights[_4498].direction.xyz, 1.0f); } float3 _4512 = Lit_1_m0.lights[_4498].position.xyz - world_1; float _4513 = length(_4512); float _4514 = max(_4513, 9.9999999747524270787835121154785e-07f); float3 _4516 = _4512 / float3(_4514, _4514, _4514); atten = omni_attenuation(_4513, Lit_1_m0.lights[_4498].position.w, Lit_1_m0.lights[_4498].direction.w); if (Lit_1_m0.lights[_4498].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-_4516, Lit_1_m0.lights[_4498].direction.xyz), Lit_1_m0.lights[_4498].spot.x)) / max(1.0f - Lit_1_m0.lights[_4498].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_4498].spot.y)); } return float4(_4516, atten); } float shadow_factor(uint i, float3 world_1, float3 n_geo, float3 l) { int dy = -1; bool _3114 = false; uint part = 0u; bool _3116 = false; uint c = 0u; float vis = 0.0f; bool _3112 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint _3124 = min(i, 63u); uint _3134 = min(Lit_1_m0.lights[min(i, 63u)].info.w, 15u); uint _3137 = min(_3134, 15u); uint _3140 = min(_3134, 15u); uint _3146 = max(Shadow_1_m0.lights[min(_3134, 15u)].info.y, 1u); float _3152 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; if (Lit_1_m0.lights[_3124].info.x == 0u) { if (_3152 > Shadow_1_m0.lights[min(_3134, 15u)].fade.y) { return 1.0f; } part = _3146 - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(c < _3146)) { break; } if (_3152 <= Shadow_1_m0.lights[min(_3134, 15u)].splits[min(c, 3u)]) { part = c; break; } c++; continue; } } uint _3196 = part; uint _3202 = min(min((Shadow_1_m0.lights[_3140].info.x + min(_3196, (_3146 - 1u))), 15u), 15u); float _3209 = Shadow_1_m0.tiles[_3202].texel.x + (Shadow_1_m0.tiles[_3202].texel.y * distance(world_1, Lit_1_m0.lights[min(i, 63u)].position.xyz)); float3 _3220 = (world_1 + (n_geo * ((Shadow_1_m0.lights[_3137].params.y * max(Shadow_1_m0.lights[_3137].params.z, 1.0f)) * _3209))) + (l * (Shadow_1_m0.lights[_3137].params.x * _3209)); if (Lit_1_m0.lights[_3124].info.x == 1u) { float3 _3224 = _3220 - Lit_1_m0.lights[min(i, 63u)].position.xyz; float3 _3225 = abs(_3224); if (_3225.x >= _3225.y) { _3112 = _3225.x >= _3225.z; } else { _3112 = false; } if (_3112) { part = (_3224.x >= 0.0f) ? 0u : 1u; } else { if (_3225.y >= _3225.z) { part = (_3224.y >= 0.0f) ? 2u : 3u; } else { part = (_3224.z >= 0.0f) ? 4u : 5u; } } } uint _3258 = min((Shadow_1_m0.lights[_3140].info.x + min(part, (_3146 - 1u))), 15u); float4 _3263 = mul(float4(_3220, 1.0f), Shadow_1_m0.tiles[min(_3258, 15u)].view_proj); if (_3263.w <= 0.0f) { return 1.0f; } float3 _3271 = _3263.xyz / float3(_3263.www); if (!(abs(_3271.x) > 1.0f)) { _3114 = abs(_3271.y) > 1.0f; } else { _3114 = true; } if (!_3114) { _3116 = _3271.z > 1.0f; } else { _3116 = true; } if (_3116) { return 1.0f; } uint _3292 = min(_3258, 15u); float2 _3305 = Shadow_1_m0.tiles[_3292].rect.xy + (float2((_3271.x * 0.5f) + 0.5f, 0.5f - (_3271.y * 0.5f)) * Shadow_1_m0.tiles[_3292].rect.zw); float _3309 = 0.5f * Shadow_1_m0.atlas.x; float2 _3311 = Shadow_1_m0.tiles[_3292].rect.xy + float2(_3309, _3309); float _3315 = 0.5f * Shadow_1_m0.atlas.x; float2 _3317 = (Shadow_1_m0.tiles[_3292].rect.xy + Shadow_1_m0.tiles[_3292].rect.zw) - float2(_3315, _3315); if (Shadow_1_m0.lights[_3137].params.z <= 0.0f) { vis = t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3305, _3311, _3317), _3271.z); } else { float _3328 = Shadow_1_m0.lights[_3137].params.z * Shadow_1_m0.atlas.x; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(dx <= 1)) { break; } vis += t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3305 + (float2(float(dx), float(dy)) * _3328), _3311, _3317), _3271.z); dx++; continue; } dy++; continue; } vis /= 9.0f; } if (Lit_1_m0.lights[_3124].info.x == 0u) { uint _3393 = min(_3134, 15u); vis = lerp(vis, 1.0f, smoothstep(Shadow_1_m0.lights[_3393].fade.x, Shadow_1_m0.lights[_3393].fade.y, _3152)); } return lerp(1.0f, vis, Shadow_1_m0.lights[_3137].params.w); } float hedra_shadow(uint i, float3 l) { bool _4557 = false; if (false) { _4557 = Lit_1_m0.lights[min(i, 63u)].info.y != 1u; } else { _4557 = true; } if (_4557) { return 1.0f; } return shadow_factor(i, hedra_world, hedra_n_geo, l); } void light() { } float3 f_schlick(float3 f0, float vh) { return f0 + ((float3(1.0f, 1.0f, 1.0f) - f0) * pow(1.0f - vh, 5.0f)); } float d_ggx(float nh, float a2) { float _791 = ((nh * nh) * (a2 - 1.0f)) + 1.0f; return a2 / ((3.1415927410125732421875f * _791) * _791); } float v_smith(float nl, float nv, float a2) { return 0.5f / max((nl * sqrt(((nv * nv) * (1.0f - a2)) + a2)) + (nv * sqrt(((nl * nl) * (1.0f - a2)) + a2)), 9.9999997473787516355514526367188e-05f); } float3 light_specular(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float specular) { float _844 = dot(n, l); if (_844 <= 0.0f) { return float3(0.0f, 0.0f, 0.0f); } float3 _849 = normalize(l + v); return (((diffuse / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) + ((f_schlick(f0, max(dot(v, _849), 0.0f)) * (d_ggx(max(dot(n, _849), 0.0f), a2) * v_smith(_844, max(dot(n, v), 9.9999997473787516355514526367188e-05f), a2))) * specular)) * radiance_1) * _844; } float hedra_schlick(float u) { float _4364 = clamp(1.0f - u, 0.0f, 1.0f); float _4365 = _4364 * _4364; return (_4365 * _4365) * _4364; } float hedra_diffuse_brdf(float nl, float nv, float lh, float r) { float _4377 = max(nl, 0.0f); if (false) { return max(0.0f, (nl + r) / ((1.0f + r) * (1.0f + r))) * 0.3183098733425140380859375f; } if (false) { return smoothstep(-r, max(r, 0.00999999977648258209228515625f), nl) * 0.3183098733425140380859375f; } if (false) { float _4398 = (((2.0f * lh) * lh) * r) - 0.5f; return ((0.3183098733425140380859375f * (1.0f + (_4398 * hedra_schlick(nv)))) * (1.0f + (_4398 * hedra_schlick(_4377)))) * _4377; } return _4377 * 0.3183098733425140380859375f; } float3 hedra_light_modes(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float r, float specular) { float3 c = float3(0.0f, 0.0f, 0.0f); float mid = 0.0f; bool _4425 = false; float _4429 = min(dot(n, l), 1.0f); float _4431 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float3 _4433 = normalize(l + v); c = (diffuse * hedra_diffuse_brdf(_4429, _4431, clamp(dot(l, _4433), 0.0f, 1.0f), r)) * radiance_1; if (r > 0.0f) { if (false) { mid = 1.0f - r; mid *= mid; c += ((diffuse * radiance_1) * ((smoothstep(mid - (r * 0.5f), mid + (r * 0.5f), dot(normalize(-reflect(l, n)), v)) * mid) * specular)); } else { if (false) { _4425 = _4429 > 0.0f; } else { _4425 = false; } if (_4425) { c += (((f_schlick(f0, max(dot(v, _4433), 0.0f)) * (d_ggx(max(dot(n, _4433), 0.0f), a2) * v_smith(_4429, _4431, a2))) * (specular * _4429)) * radiance_1); } } } return c; } float3 probe_light(float3 n) { return max(float3(O_1_m0.gi[0u].x + dot(O_1_m0.gi[0u].yzw, n), O_1_m0.gi[1u].x + dot(O_1_m0.gi[1u].yzw, n), O_1_m0.gi[2u].x + dot(O_1_m0.gi[2u].yzw, n)), float3(0.0f, 0.0f, 0.0f)); } float4 gi_diffuse(float3 n, bool baked, float3 baked_light) { if (baked) { return float4(baked_light, 1.0f); } if (true ? ((O_1_m0.extra.x & 8u) != 0u) : false) { return float4(probe_light(n), 1.0f); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float3 sh_irradiance(float3 n) { float3 c = float3(0.0f, 0.0f, 0.0f); c = Sky_1_m0.sh[0u].xyz * 0.2820949852466583251953125f; c += (Sky_1_m0.sh[1u].xyz * (0.48860299587249755859375f * n.y)); c += (Sky_1_m0.sh[2u].xyz * (0.48860299587249755859375f * n.z)); c += (Sky_1_m0.sh[3u].xyz * (0.48860299587249755859375f * n.x)); c += (Sky_1_m0.sh[4u].xyz * ((1.09254801273345947265625f * n.x) * n.y)); c += (Sky_1_m0.sh[5u].xyz * ((1.09254801273345947265625f * n.y) * n.z)); c += (Sky_1_m0.sh[6u].xyz * (0.3153919875621795654296875f * (((3.0f * n.z) * n.z) - 1.0f))); c += (Sky_1_m0.sh[7u].xyz * ((1.09254801273345947265625f * n.x) * n.z)); c += (Sky_1_m0.sh[8u].xyz * (0.546274006366729736328125f * ((n.x * n.x) - (n.y * n.y)))); return max(c, float3(0.0f, 0.0f, 0.0f)); } float2 env_brdf_approx(float roughness, float nv) { float4 _1583 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * roughness) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f); return (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_1583.x * _1583.x, exp2((-9.27999973297119140625f) * nv)) * _1583.x) + _1583.y)) + _1583.zw; } float probe_weight(ProbeEntryU p, float3 world_1) { float3 _3623 = mul(float4(world_1, 1.0f), p.to_local).xyz; float _3639 = min(p.extents.xyz.x - abs(_3623.x), min(p.extents.xyz.y - abs(_3623.y), p.extents.xyz.z - abs(_3623.z))); if (_3639 < 0.0f) { return 0.0f; } if (!(p.extents.w > 0.0f)) { return 1.0f; } return min(_3639 / p.extents.w, 1.0f); } float probe_exit(float o, float d, float e) { if (d > 0.0f) { return (e - o) / d; } if (d < 0.0f) { return ((-e) - o) / d; } return 3.0000000054977557577780399428115e+38f; } float3 probe_lookup(ProbeEntryU p, float3 world_1, float3 dir) { float3 _3681 = mul(float4(dir, 0.0f), p.to_local).xyz; if ((p.info.x & 1u) == 0u) { return _3681; } float3 _3691 = mul(float4(world_1, 1.0f), p.to_local).xyz; return (_3691 + (_3681 * max(min(probe_exit(_3691.x, _3681.x, p.extents.xyz.x), min(probe_exit(_3691.y, _3681.y, p.extents.xyz.y), probe_exit(_3691.z, _3681.z, p.extents.xyz.z))), 0.0f))) - p.offset.xyz; } float3 probe_face_uv(float3 d) { bool _3465 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _3468 = abs(d); if (_3468.x >= _3468.y) { _3465 = _3468.x >= _3468.z; } else { _3465 = false; } if (_3465) { ma = _3468.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_3468.y >= _3468.z) { ma = _3468.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _3468.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 probe_texel(uint row, float3 fuv, uint level) { float _3555 = 0.5f / float(max((Probe_1_m0.counts.z >> level), 1u)); return t_probes.SampleLevel(s_probes, float2((fuv.x + clamp(fuv.y, _3555, 1.0f - _3555)) / 6.0f, (float(row) + clamp(fuv.z, _3555, 1.0f - _3555)) / 8.0f), float(level)).xyz; } float3 probe_sample(uint row, float3 d, float lod) { bool _3583 = false; uint _3588 = max(Probe_1_m0.counts.y, 1u); float _3591 = clamp(lod, 0.0f, float(_3588 - 1u)); uint _3593 = uint(clamp(_3591, 0.0f, 4294967040.0f)); float _3595 = _3591 - float(_3593); float3 _3596 = probe_face_uv(d); float3 _3597 = probe_texel(row, _3596, _3593); if (!(_3595 <= 0.0f)) { _3583 = (_3593 + 1u) >= _3588; } else { _3583 = true; } if (_3583) { return _3597; } return (_3597 * (1.0f - _3595)) + (probe_texel(row, _3596, _3593 + 1u) * _3595); } float4 probe_reflection(float3 world_1, float3 r, float roughness, uint probes) { float3 acc = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3730 = min(Probe_1_m0.counts.x, 8u); float _3736 = roughness * float(max(Probe_1_m0.counts.y, 1u) - 1u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3730)) { break; } uint _3759 = i; uint _3761 = min(_3759, 7u); if (((probes >> Probe_1_m0.probes[_3761].info.w) & 1u) == 0u) { uint _3787 = i; i = _3787 + 1u; continue; } float _3771 = probe_weight(Probe_1_m0.probes[_3761], world_1); if (_3771 <= 0.0f) { uint _3787 = i; i = _3787 + 1u; continue; } acc += ((probe_sample(Probe_1_m0.probes[_3761].info.w, probe_lookup(Probe_1_m0.probes[_3761], world_1, r), _3736) * Probe_1_m0.probes[_3761].offset.w) * _3771); w_sum += _3771; uint _3787 = i; i = _3787 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float4 probe_ambient(float3 world_1, float3 n, uint probes) { float3 c = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; bool _3812 = false; float3 acc = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3819 = min(Probe_1_m0.counts.x, 8u); uint _3823 = max(Probe_1_m0.counts.y, 1u) - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3819)) { break; } uint _3845 = i; uint _3846 = min(_3845, 7u); if (!(((probes >> Probe_1_m0.probes[_3846].info.w) & 1u) == 0u)) { _3812 = Probe_1_m0.probes[_3846].info.y == 0u; } else { _3812 = true; } if (_3812) { uint _3889 = i; i = _3889 + 1u; continue; } float _3864 = probe_weight(Probe_1_m0.probes[_3846], world_1); if (_3864 <= 0.0f) { uint _3889 = i; i = _3889 + 1u; continue; } c = Probe_1_m0.probes[_3846].ambient.xyz; if (Probe_1_m0.probes[_3846].info.y == 1u) { c = probe_texel(Probe_1_m0.probes[_3846].info.w, probe_face_uv(mul(float4(n, 0.0f), Probe_1_m0.probes[_3846].to_local).xyz), _3823); } acc += (c * _3864); w_sum += _3864; uint _3889 = i; i = _3889 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float3 sky(float3 dir) { float _880 = acos(clamp(dot(normalize(dir), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_880 <= 1.57079637050628662109375f) { float _890 = clamp(1.0f - pow(max(1.0f - (1.0f - (_880 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_890, _890, _890)); } float _905 = clamp(1.0f - pow(max(1.0f - ((_880 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_905, _905, _905)); } float3 hedra_ambient(float3 n, float3 v, float3 diffuse, float3 f0, float roughness, float metallic) { float3 dif = float3(0.0f, 0.0f, 0.0f); float3 diffuse_amb = float3(0.0f, 0.0f, 0.0f); float3 dif_1 = float3(0.0f, 0.0f, 0.0f); float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 dif_2 = float3(0.0f, 0.0f, 0.0f); float3 spec_amb = float3(0.0f, 0.0f, 0.0f); float _4605 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float _4606 = 1.0f - roughness; float3 _4613 = f0 + ((max(float3(_4606, _4606, _4606), f0) - f0) * pow(1.0f - _4605, 5.0f)); float4 _4614 = gi_diffuse(n, false, float3(0.0f, 0.0f, 0.0f)); if ((Sky_1_m0.flags.x & 8u) != 0u) { float _4626 = Sky_1_m0.ibl.x * Sky_1_m0.sun.w; diffuse_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 16u) != 0u) { diffuse_amb = lerp(Sky_1_m0.ambient.xyz, sh_irradiance(sky_dir(n)) * _4626, float3(Sky_1_m0.ambient.w, Sky_1_m0.ambient.w, Sky_1_m0.ambient.w)); } if (_4614.w > 0.0f) { diffuse_amb = _4614.xyz; } spec_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 32u) != 0u) { spec_amb = radiance(sky_dir(reflect(-v, n)), roughness) * _4626; } else { if ((Sky_1_m0.flags.x & 64u) != 0u) { spec_amb = float3(0.0f, 0.0f, 0.0f); } } float2 _4672 = env_brdf_approx(roughness, _4605); if (Probe_1_m0.counts.x > 0u) { float4 _4683 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_1 = diffuse_amb; if (_4614.w <= 0.0f) { float4 _4697 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_1 = (diffuse_amb * (1.0f - _4697.w)) + _4697.xyz; } float _4712 = _4672.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * dif_1) + (((spec_amb * (1.0f - _4683.w)) + _4683.xyz) * ((f0 * _4672.x) + float3(_4712, _4712, _4712))); } else { float _4726 = _4672.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * diffuse_amb) + (spec_amb * ((f0 * _4672.x) + float3(_4726, _4726, _4726))); } } else { if ((Lit_1_m0.counts.y & 2u) != 0u) { float3 _4748 = (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f; float _4760 = clamp((dot(n, Lit_1_m0.up.xyz) * 0.5f) + 0.5f, 0.0f, 1.0f); float3 _4761 = lerp((Lit_1_m0.ground_horizon.xyz + Lit_1_m0.ground_bottom.xyz) * 0.5f, _4748, float3(_4760, _4760, _4760)); float3 _4766 = lerp(sky(reflect(-v, n)), _4748, float3(roughness, roughness, roughness)); if (Probe_1_m0.counts.x > 0u) { float4 _4778 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif = _4614.xyz; if (_4614.w <= 0.0f) { float4 _4794 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif = ((_4761 * Lit_1_m0.ambient.w) * (1.0f - _4794.w)) + _4794.xyz; } ambient = (diffuse * dif) + ((((_4766 * Lit_1_m0.ambient.w) * (1.0f - _4778.w)) + _4778.xyz) * _4613); } else { if (_4614.w > 0.0f) { ambient = (diffuse * _4614.xyz) + ((_4766 * _4613) * Lit_1_m0.ambient.w); } else { ambient = ((diffuse * _4761) + (_4766 * _4613)) * Lit_1_m0.ambient.w; } } } else { if (Probe_1_m0.counts.x > 0u) { float4 _4835 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_2 = _4614.xyz; if (_4614.w <= 0.0f) { float4 _4851 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_2 = (Lit_1_m0.ambient.xyz * (1.0f - _4851.w)) + _4851.xyz; } ambient = (diffuse * dif_2) + (((Lit_1_m0.ambient.xyz * (1.0f - _4835.w)) + _4835.xyz) * _4613); } else { if (_4614.w > 0.0f) { ambient = (diffuse * _4614.xyz) + (Lit_1_m0.ambient.xyz * _4613); } else { ambient = Lit_1_m0.ambient.xyz * (diffuse + _4613); } } } } return ambient; } bool hedra_transparent() { bool _4061 = false; bool _4063 = false; if (false) { _4061 = true; } else { _4061 = false; } if (!_4061) { _4063 = false; } else { _4063 = true; } return _4063; } float3 hedra_lit(float4 clip) { bool _4954 = false; bool _4948 = false; DecalSurface surf = _4945; float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 radiance_1 = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); bool _4957 = false; bool _4952 = false; uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); DecalSurface _4969 = { ALBEDO, clamp(METALLIC, 0.0f, 1.0f), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f), AO, hedra_n, EMISSION }; surf = _4969; if (O_1_m0.decals.z > 0u) { DecalSurface _4977 = surf; surf = apply_decals(hedra_world, hedra_n_geo, _4977); ALBEDO = surf.base; METALLIC = surf.metallic; ROUGHNESS = surf.roughness; NORMAL = normalize(mul(surf.normal, hedra_mat3(G_1_m0.view))); } float _4999 = ((surf.roughness * surf.roughness) * surf.roughness) * surf.roughness; float3 _5003 = surf.base * (1.0f - surf.metallic); float _5007 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; float3 _5009 = lerp(float3(_5007, _5007, _5007), surf.base, float3(surf.metallic, surf.metallic, surf.metallic)); float3 _5014 = hedra_view_dir(hedra_world); float3x3 _5017 = hedra_mat3(G_1_m0.view); float _5021 = lerp(1.0f, surf.occlusion, AO_LIGHT_AFFECT); DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); uint _5022 = object_light_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _5022)) { break; } uint _5045 = object_light(k); uint _5046 = min(_5045, 63u); float4 _5050 = hedra_light_dir(_5045, hedra_world); float3 _5051 = _5050.xyz; float _5052 = _5050.w; if (false) { if (!(Lit_1_m0.lights[_5046].info.x == 0u)) { _4948 = _5052 > 0.0f; } else { _4948 = true; } if (_4948) { LIGHT = normalize(mul(_5051, _5017)); LIGHT_COLOR = Lit_1_m0.lights[_5046].color.xyz; ATTENUATION = _5052 * hedra_shadow(_5045, _5051); LIGHT_IS_DIRECTIONAL = Lit_1_m0.lights[_5046].info.x == 0u; SPECULAR_AMOUNT = Lit_1_m0.lights[_5046].spot.z; light(); } uint _5159 = k; k = _5159 + 1u; continue; } if (RIM > 0.0f) { c += (((_5003 * Lit_1_m0.lights[_5046].color.xyz) * (pow(max(9.9999997473787516355514526367188e-05f, 1.0f - max(dot(surf.normal, _5014), 9.9999997473787516355514526367188e-05f)), max(0.0f, (1.0f - surf.roughness) * 16.0f)) * RIM)) * lerp(float3(1.0f, 1.0f, 1.0f), surf.base, float3(RIM_TINT, RIM_TINT, RIM_TINT))); } if (_5052 > 0.0f) { radiance_1 = Lit_1_m0.lights[_5046].color.xyz * _5052; if (Lit_1_m0.lights[_5046].info.y == 1u) { _4952 = false; } else { _4952 = false; } if (_4952) { radiance_1 = Lit_1_m0.lights[_5046].color.xyz * (_5052 * shadow_factor(_5045, hedra_world, hedra_n_geo, _5051)); } if (true) { _4954 = false; } else { _4954 = false; } if (_4954) { c += light_specular(surf.normal, _5014, _5051, radiance_1, _5003, _5009, _4999, Lit_1_m0.lights[_5046].spot.z); } else { c += hedra_light_modes(surf.normal, _5014, _5051, radiance_1, _5003, _5009, _4999, surf.roughness, Lit_1_m0.lights[_5046].spot.z); } if (any(bool3(BACKLIGHT.x > float3(0.0f, 0.0f, 0.0f).x, BACKLIGHT.y > float3(0.0f, 0.0f, 0.0f).y, BACKLIGHT.z > float3(0.0f, 0.0f, 0.0f).z))) { c += (((_5003 * radiance_1) * BACKLIGHT) * (0.3183098733425140380859375f - (max(min(dot(surf.normal, _5051), 1.0f), 0.0f) * 0.3183098733425140380859375f))); } } uint _5159 = k; k = _5159 + 1u; continue; } if (false) { c = (((DIFFUSE_LIGHT * surf.base) * _5021) * (1.0f - surf.metallic)) + (SPECULAR_LIGHT * _5021); } else { if (AO_LIGHT_AFFECT > 0.0f) { c *= _5021; } } if (false) { ambient = hedra_ambient(surf.normal, _5014, _5003, _5009, surf.roughness, surf.metallic); } if ((Lit_1_m0.counts.y & 4u) != 0u) { _4957 = !hedra_transparent(); } else { _4957 = false; } if (_4957) { int _5202; spvTextureSize(t_ao, 0u, _5202); int _5204 = int(min(uint(0), uint(int(_5202) - 1))); uint _5205_dummy_parameter; float4 _5209 = t_ao.Load(int3(int2(min(uint2(int2(clamp(floor(clip.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ao, uint(_5204), _5205_dummy_parameter)) - int2(1, 1)))), _5204)); float _5210 = _5209.x; c *= lerp(1.0f, min(_5210, surf.occlusion), Lit_1_m0.tone.z * Lit_1_m0.tone.w); c += (ambient * min(surf.occlusion, _5210)); } else { c += (ambient * surf.occlusion); } c += surf.emission; return tonemap(hedra_fog(c, _5014)); } float3 hedra_bindings() { return (t_panorama.SampleLevel(s_panorama, float2(0.5f, 0.5f), 0.0f).xyz + t_lightmap.SampleLevel(s_lightmap, float3(float2(0.5f, 0.5f), float(0)), 0.0f).xyz) + t_screen.SampleLevel(s_radiance, float2(0.5f, 0.5f), 0.0f).xyz; } float3 item_fade(float3 c) { if (true ? ((O_1_m0.extra.x & 64u) == 0u) : true) { return c; } return lerp(c, tonemap(O_1_m0.normal[3u].xyz), float3(O_1_m0.normal[3u].www)); } float3 emerge_tint(float3 c, float r) { bool _1264 = false; if (!((O_1_m0.extra.x & 32u) == 0u)) { _1264 = r >= 1.0f; } else { _1264 = true; } if (true ? _1264 : true) { return c; } float _1286 = smoothstep(0.0f, 1.0f, r); return lerp(tonemap(srgb_to_linear(spvUnpackUnorm4x8(O_1_m0.extra.w).xyz)), c, float3(_1286, _1286, _1286)); } float3 linear_to_srgb(float3 c) { float3 _384 = c * 12.9200000762939453125f; float3 _387 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _388 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_388.x ? _384.x : _387.x, _388.y ? _384.y : _387.y, _388.z ? _384.z : _387.z); } float4 hedra_output(float3 c) { float3 rgb = float3(0.0f, 0.0f, 0.0f); rgb = c; if (false) { rgb *= PREMUL_ALPHA_FACTOR; } float4 _5260 = float4(rgb, hedra_transparent() ? ALPHA : 1.0f); if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(_5260.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(_5260.w, 0.0f, 1.0f)); } float4 _5272 = clamp(_5260, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if ((G_1_m0.params.z & 2u) != 0u) { return float4(linear_to_srgb(_5272.xyz), _5272.w); } return _5272; } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); CustomOut _5306 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_5306, gl_FrontFacing); if (hedra_culled(_5306.flags)) { discard; } float _5379 = emerge_reveal(_5306.world, _5306.clip.xy); if (_5379 <= 0.0f) { discard; } if (true) { c = tonemap(hedra_fog(ALBEDO, hedra_view_dir(hedra_world))); } else { float3 _5392 = hedra_lit(_5306.clip); c = _5392; } if (Lit_1_m0.counts.w == 4294967295u) { c += hedra_bindings(); } if (G_1_m0.params.x == 8u) { c = emerge_tint(item_fade(c), _5379); } _5340 = hedra_output(c); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output._5340 = _5340; return stage_output; } fs_custom_depthmainHEstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float _1190[16] = { -4.0f, 0.0f, -3.0f, 1.0f, 2.0f, -2.0f, 3.0f, -1.0f, -3.0f, 1.0f, -4.0f, 0.0f, 3.0f, -1.0f, 2.0f, -2.0f }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D screen : register(t4); SamplerState SAMPLER_NEAREST_CLAMP : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1262 = transpose(hedra_mat3(m)); return float4x4(float4(_1262[0], 0.0f), float4(_1262[1], 0.0f), float4(_1262[2], 0.0f), float4(-mul(m[3].xyz, _1262), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { } uint naga_mod(uint lhs, uint rhs) { return lhs % ((rhs == 0u) ? 1u : rhs); } float3 psx_encode_srgb(float3 c) { float3 _1155 = c * 12.9200000762939453125f; float3 _1159 = (pow(max(c, float3(0.0f, 0.0f, 0.0f)), float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _1160 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_1160.x ? _1155.x : _1159.x, _1160.y ? _1155.y : _1159.y, _1160.z ? _1155.z : _1159.z); } float3 psx_decode_srgb(float3 c) { float3 _1166 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _1169 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _1170 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_1170.x ? _1166.x : _1169.x, _1170.y ? _1166.y : _1169.y, _1170.z ? _1166.z : _1169.z); } void fragment() { float2 _1202 = floor(UV * hedra_p_1_m0.low_res); float _1228 = _1190[min(((naga_mod(uint(clamp(_1202.y, 0.0f, 4294967040.0f)), 4u) * 4u) + naga_mod(uint(clamp(_1202.x, 0.0f, 4294967040.0f)), 4u)), 15u)] * hedra_p_1_m0.dither_strength; float _1232 = exp2(8.0f - hedra_p_1_m0.color_bits); ALBEDO = psx_decode_srgb((floor(clamp((psx_encode_srgb(screen.Sample(SAMPLER_NEAREST_CLAMP, (_1202 + float2(0.5f, 0.5f)) / hedra_p_1_m0.low_res).xyz) * 255.0f) + float3(_1228, _1228, _1228), float3(0.0f, 0.0f, 0.0f), float3(255.0f, 255.0f, 255.0f)) / float3(_1232, _1232, _1232)) * _1232) / float3(255.0f, 255.0f, 255.0f)); } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1421 = facing != hedra_mirrored(_in.flags); hedra_front = _1421; FRONT_FACING = _1421; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1437 = hedra_mat3(G_1_m0.view); float3 _1440 = -normalize(_in.normal); float3 _1442 = normalize(_in.normal); bool3 _1444 = bool3(_1421, _1421, _1421); float3 _1443 = float3(_1444.x ? _1442.x : _1440.x, _1444.y ? _1442.y : _1440.y, _1444.z ? _1442.z : _1440.z); hedra_n_geo = _1443; hedra_n = _1443; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1443 * dot(_1443, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1466 = VERTEX; NORMAL = normalize(mul(_1443, _1437)); float3 _1469 = NORMAL; TANGENT = normalize(mul(t, _1437)); BINORMAL = normalize(mul(cross(_1443, t) * _in.tangent.w, _1437)); float3 _1477 = normalize(-VERTEX); bool _1480 = G_1_m0.camera_pos.w > 0.5f; bool3 _1482 = bool3(_1480, _1480, _1480); VIEW = float3(_1482.x ? float3(0.0f, 0.0f, 1.0f).x : _1477.x, _1482.y ? float3(0.0f, 0.0f, 1.0f).y : _1477.y, _1482.z ? float3(0.0f, 0.0f, 1.0f).z : _1477.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1488 = transpose(_1437); if (any(bool3(NORMAL.x != _1469.x, NORMAL.y != _1469.y, NORMAL.z != _1469.z))) { hedra_n = normalize(mul(NORMAL, _1488)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1488)); } if (any(bool3(LIGHT_VERTEX.x != _1466.x, LIGHT_VERTEX.y != _1466.y, LIGHT_VERTEX.z != _1466.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _708 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_708, _708, _708); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _734 = floor(p); float3 _735 = frac(p); float3 _739 = (_735 * _735) * (float3(3.0f, 3.0f, 3.0f) - (_735 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_734), emerge_hash(_734 + float3(1.0f, 0.0f, 0.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 0.0f)), _739.x), _739.y), lerp(lerp(emerge_hash(_734 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 0.0f, 1.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 1.0f)), _739.x), _739.y), _739.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _796 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_796) * 0.64999997615814208984375f) + (emerge_noise((_796 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1745 = false; bool _1747 = false; CustomOut _1704 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1704, gl_FrontFacing); if (!((_1704.flags & 2u) != 0u)) { if (false) { _1747 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1747 = false; } _1745 = _1747; } else { _1745 = true; } if (_1745) { discard; } if (emerge_reveal(_1704.world, float2(-1.0f, -1.0f)) <= 0.0f) { discard; } else { return; } } void main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); }  fs_custom_idmainHstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float _1190[16] = { -4.0f, 0.0f, -3.0f, 1.0f, 2.0f, -2.0f, 3.0f, -1.0f, -3.0f, 1.0f, -4.0f, 0.0f, 3.0f, -1.0f, 2.0f, -2.0f }; static const IdOut _1777 = { float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D screen : register(t4); SamplerState SAMPLER_NEAREST_CLAMP : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 id; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 id : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1262 = transpose(hedra_mat3(m)); return float4x4(float4(_1262[0], 0.0f), float4(_1262[1], 0.0f), float4(_1262[2], 0.0f), float4(-mul(m[3].xyz, _1262), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { } uint naga_mod(uint lhs, uint rhs) { return lhs % ((rhs == 0u) ? 1u : rhs); } float3 psx_encode_srgb(float3 c) { float3 _1155 = c * 12.9200000762939453125f; float3 _1159 = (pow(max(c, float3(0.0f, 0.0f, 0.0f)), float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _1160 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_1160.x ? _1155.x : _1159.x, _1160.y ? _1155.y : _1159.y, _1160.z ? _1155.z : _1159.z); } float3 psx_decode_srgb(float3 c) { float3 _1166 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _1169 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _1170 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_1170.x ? _1166.x : _1169.x, _1170.y ? _1166.y : _1169.y, _1170.z ? _1166.z : _1169.z); } void fragment() { float2 _1202 = floor(UV * hedra_p_1_m0.low_res); float _1228 = _1190[min(((naga_mod(uint(clamp(_1202.y, 0.0f, 4294967040.0f)), 4u) * 4u) + naga_mod(uint(clamp(_1202.x, 0.0f, 4294967040.0f)), 4u)), 15u)] * hedra_p_1_m0.dither_strength; float _1232 = exp2(8.0f - hedra_p_1_m0.color_bits); ALBEDO = psx_decode_srgb((floor(clamp((psx_encode_srgb(screen.Sample(SAMPLER_NEAREST_CLAMP, (_1202 + float2(0.5f, 0.5f)) / hedra_p_1_m0.low_res).xyz) * 255.0f) + float3(_1228, _1228, _1228), float3(0.0f, 0.0f, 0.0f), float3(255.0f, 255.0f, 255.0f)) / float3(_1232, _1232, _1232)) * _1232) / float3(255.0f, 255.0f, 255.0f)); } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1421 = facing != hedra_mirrored(_in.flags); hedra_front = _1421; FRONT_FACING = _1421; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1437 = hedra_mat3(G_1_m0.view); float3 _1440 = -normalize(_in.normal); float3 _1442 = normalize(_in.normal); bool3 _1444 = bool3(_1421, _1421, _1421); float3 _1443 = float3(_1444.x ? _1442.x : _1440.x, _1444.y ? _1442.y : _1440.y, _1444.z ? _1442.z : _1440.z); hedra_n_geo = _1443; hedra_n = _1443; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1443 * dot(_1443, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1466 = VERTEX; NORMAL = normalize(mul(_1443, _1437)); float3 _1469 = NORMAL; TANGENT = normalize(mul(t, _1437)); BINORMAL = normalize(mul(cross(_1443, t) * _in.tangent.w, _1437)); float3 _1477 = normalize(-VERTEX); bool _1480 = G_1_m0.camera_pos.w > 0.5f; bool3 _1482 = bool3(_1480, _1480, _1480); VIEW = float3(_1482.x ? float3(0.0f, 0.0f, 1.0f).x : _1477.x, _1482.y ? float3(0.0f, 0.0f, 1.0f).y : _1477.y, _1482.z ? float3(0.0f, 0.0f, 1.0f).z : _1477.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1488 = transpose(_1437); if (any(bool3(NORMAL.x != _1469.x, NORMAL.y != _1469.y, NORMAL.z != _1469.z))) { hedra_n = normalize(mul(NORMAL, _1488)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1488)); } if (any(bool3(LIGHT_VERTEX.x != _1466.x, LIGHT_VERTEX.y != _1466.y, LIGHT_VERTEX.z != _1466.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1553 = false; bool _1555 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _1553 = hedra_front; } else { _1553 = false; } if (_1553) { return true; } if (false) { _1555 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1555 = false; } return _1555; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _708 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_708, _708, _708); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _734 = floor(p); float3 _735 = frac(p); float3 _739 = (_735 * _735) * (float3(3.0f, 3.0f, 3.0f) - (_735 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_734), emerge_hash(_734 + float3(1.0f, 0.0f, 0.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 0.0f)), _739.x), _739.y), lerp(lerp(emerge_hash(_734 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 0.0f, 1.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 1.0f)), _739.x), _739.y), _739.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _796 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_796) * 0.64999997615814208984375f) + (emerge_noise((_796 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1773 = false; IdOut _out = _1777; CustomOut _1730 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1730, gl_FrontFacing); if (!hedra_culled(_1730.flags)) { _1773 = emerge_reveal(_1730.world, _1730.clip.xy) <= 0.0f; } else { _1773 = true; } if (_1773) { discard; } _out.id = float4(float(O_1_m0.params.z & 255u), float((O_1_m0.params.z >> 8u) & 255u), float((O_1_m0.params.z >> 16u) & 255u), float(uint(O_1_m0.params.x == 1u) | ((O_1_m0.params.y == 1u) ? 2u : 0u))) / float4(255.0f, 255.0f, 255.0f, 255.0f); id = _out.id; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.id = id; return stage_output; } fs_custom_normal_depthmainÌIstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float2 low_res; float color_bits; float dither_strength; float integer_scale; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const float _1190[16] = { -4.0f, 0.0f, -3.0f, 1.0f, 2.0f, -2.0f, 3.0f, -1.0f, -3.0f, 1.0f, -4.0f, 0.0f, 3.0f, -1.0f, 2.0f, -2.0f }; static const HedraNormalDepthOut _1779 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D screen : register(t4); SamplerState SAMPLER_NEAREST_CLAMP : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 normal_depth; static float4 surface; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 normal_depth : SV_Target0; float4 surface : SV_Target1; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1262 = transpose(hedra_mat3(m)); return float4x4(float4(_1262[0], 0.0f), float4(_1262[1], 0.0f), float4(_1262[2], 0.0f), float4(-mul(m[3].xyz, _1262), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { } uint naga_mod(uint lhs, uint rhs) { return lhs % ((rhs == 0u) ? 1u : rhs); } float3 psx_encode_srgb(float3 c) { float3 _1155 = c * 12.9200000762939453125f; float3 _1159 = (pow(max(c, float3(0.0f, 0.0f, 0.0f)), float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _1160 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_1160.x ? _1155.x : _1159.x, _1160.y ? _1155.y : _1159.y, _1160.z ? _1155.z : _1159.z); } float3 psx_decode_srgb(float3 c) { float3 _1166 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _1169 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _1170 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_1170.x ? _1166.x : _1169.x, _1170.y ? _1166.y : _1169.y, _1170.z ? _1166.z : _1169.z); } void fragment() { float2 _1202 = floor(UV * hedra_p_1_m0.low_res); float _1228 = _1190[min(((naga_mod(uint(clamp(_1202.y, 0.0f, 4294967040.0f)), 4u) * 4u) + naga_mod(uint(clamp(_1202.x, 0.0f, 4294967040.0f)), 4u)), 15u)] * hedra_p_1_m0.dither_strength; float _1232 = exp2(8.0f - hedra_p_1_m0.color_bits); ALBEDO = psx_decode_srgb((floor(clamp((psx_encode_srgb(screen.Sample(SAMPLER_NEAREST_CLAMP, (_1202 + float2(0.5f, 0.5f)) / hedra_p_1_m0.low_res).xyz) * 255.0f) + float3(_1228, _1228, _1228), float3(0.0f, 0.0f, 0.0f), float3(255.0f, 255.0f, 255.0f)) / float3(_1232, _1232, _1232)) * _1232) / float3(255.0f, 255.0f, 255.0f)); } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1421 = facing != hedra_mirrored(_in.flags); hedra_front = _1421; FRONT_FACING = _1421; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1437 = hedra_mat3(G_1_m0.view); float3 _1440 = -normalize(_in.normal); float3 _1442 = normalize(_in.normal); bool3 _1444 = bool3(_1421, _1421, _1421); float3 _1443 = float3(_1444.x ? _1442.x : _1440.x, _1444.y ? _1442.y : _1440.y, _1444.z ? _1442.z : _1440.z); hedra_n_geo = _1443; hedra_n = _1443; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1443 * dot(_1443, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1466 = VERTEX; NORMAL = normalize(mul(_1443, _1437)); float3 _1469 = NORMAL; TANGENT = normalize(mul(t, _1437)); BINORMAL = normalize(mul(cross(_1443, t) * _in.tangent.w, _1437)); float3 _1477 = normalize(-VERTEX); bool _1480 = G_1_m0.camera_pos.w > 0.5f; bool3 _1482 = bool3(_1480, _1480, _1480); VIEW = float3(_1482.x ? float3(0.0f, 0.0f, 1.0f).x : _1477.x, _1482.y ? float3(0.0f, 0.0f, 1.0f).y : _1477.y, _1482.z ? float3(0.0f, 0.0f, 1.0f).z : _1477.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1488 = transpose(_1437); if (any(bool3(NORMAL.x != _1469.x, NORMAL.y != _1469.y, NORMAL.z != _1469.z))) { hedra_n = normalize(mul(NORMAL, _1488)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1488)); } if (any(bool3(LIGHT_VERTEX.x != _1466.x, LIGHT_VERTEX.y != _1466.y, LIGHT_VERTEX.z != _1466.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1553 = false; bool _1555 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _1553 = hedra_front; } else { _1553 = false; } if (_1553) { return true; } if (false) { _1555 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1555 = false; } return _1555; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _708 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_708, _708, _708); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _734 = floor(p); float3 _735 = frac(p); float3 _739 = (_735 * _735) * (float3(3.0f, 3.0f, 3.0f) - (_735 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_734), emerge_hash(_734 + float3(1.0f, 0.0f, 0.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 0.0f)), _739.x), _739.y), lerp(lerp(emerge_hash(_734 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 0.0f, 1.0f)), _739.x), lerp(emerge_hash(_734 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_734 + float3(1.0f, 1.0f, 1.0f)), _739.x), _739.y), _739.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _796 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_796) * 0.64999997615814208984375f) + (emerge_noise((_796 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1775 = false; HedraNormalDepthOut _out = _1779; CustomOut _1730 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1730, gl_FrontFacing); if (!hedra_culled(_1730.flags)) { _1775 = emerge_reveal(_1730.world, _1730.clip.xy) <= 0.0f; } else { _1775 = true; } if (_1775) { discard; } float _1803 = clamp(METALLIC, 0.0f, 1.0f); float _1807 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; _out.normal_depth = float4(normalize(mul(hedra_n, hedra_mat3(G_1_m0.view))), -mul(float4(_1730.world, 1.0f), G_1_m0.view).z); _out.surface = float4(clamp(lerp(float3(_1807, _1807, _1807), ALBEDO, float3(_1803, _1803, _1803)), float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f)); normal_depth = _out.normal_depth; surface = _out.surface; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.normal_depth = normal_depth; stage_output.surface = surface; return stage_output; }  @Ð Ð/ ,@  {Ðþ—4ÌhÜäF‚�SKw;�ðõiF:3QçkíVã›cHSLTGlobals@ viewÿÿÿÿproj@ÿÿÿÿ view_proj€ÿÿÿÿ camera_posÀÿÿÿÿviewportÐÿÿÿÿ wire_coloràÿÿÿÿ select_colorðÿÿÿÿ active_colorÿÿÿÿgridÿÿÿÿparams ÿÿÿÿfparams0ÿÿÿÿG_block@ObjectUmodelÿÿÿÿnormal@ÿÿÿÿcolor€ÿÿÿÿparams�ÿÿÿÿextra ÿÿÿÿgi°ÿÿÿÿdecalsàÿÿÿÿlightsðÿÿÿÿO_block HedraParamslow_resÿÿÿÿ color_bitsÿÿÿÿdither_strength ÿÿÿÿ integer_scaleÿÿÿÿ hedra_p_blockLightUPcolorÿÿÿÿpositionÿÿÿÿ direction ÿÿÿÿspot0ÿÿÿÿinfo@ÿÿÿÿLitUÐ countsÿÿÿÿambientÿÿÿÿtone ÿÿÿÿup0ÿÿÿÿsky_top@ÿÿÿÿ sky_horizonPÿÿÿÿground_horizon`ÿÿÿÿ ground_bottompÿÿÿÿ inv_view_proj€ÿÿÿÿdirsÀÿÿÿÿlightsÐ@P Lit_blockÐ ShadowLightU@paramsÿÿÿÿsplitsÿÿÿÿfade ÿÿÿÿinfo0ÿÿÿÿ ShadowTileU` view_projÿÿÿÿrect@ÿÿÿÿtexelPÿÿÿÿShadowU atlasÿÿÿÿlights@ tiles` Shadow_block  SunU  directionÿÿÿÿcolorÿÿÿÿSkyUflagsÿÿÿÿto_skyÿÿÿÿsky_topPÿÿÿÿ sky_horizon`ÿÿÿÿ ground_bottompÿÿÿÿground_horizon€ÿÿÿÿsun�ÿÿÿÿambient ÿÿÿÿibl°ÿÿÿÿ fog_colorÀÿÿÿÿfogÐÿÿÿÿ fog_depthàÿÿÿÿ fog_originðÿÿÿÿsuns sh€ ÿÿÿÿ Sky_block ProbeEntryU€to_localÿÿÿÿextents@ÿÿÿÿoffsetPÿÿÿÿambient`ÿÿÿÿinfopÿÿÿÿProbeUcountsÿÿÿÿprobes€ Probe_block DecalEntryU°to_localÿÿÿÿmodulate@ÿÿÿÿfadesPÿÿÿÿaxis_x`ÿÿÿÿaxis_ypÿÿÿÿaxis_z€ÿÿÿÿlayers�ÿÿÿÿflags ÿÿÿÿDecalU ,countsÿÿÿÿlodÿÿÿÿentries @° Decal_block , FogEntryU�to_localÿÿÿÿsize@ÿÿÿÿmaterialPÿÿÿÿalbedo`ÿÿÿÿemissionpÿÿÿÿlights€ÿÿÿÿFogU@ countsÿÿÿÿparamsÿÿÿÿambient ÿÿÿÿup0ÿÿÿÿ light_fog@ÿÿÿÿentries@� Fog_block@ GOhedra_pLitShadow SkyProbeDecalFogt_shadowÿÿÿÿ t_radianceÿÿÿÿ t_panoramaÿÿÿÿt_aoÿÿÿÿ t_lightmapÿÿÿÿt_probesÿÿÿÿt_decalsÿÿÿÿt_screenÿÿÿÿscreenÿÿÿÿs_shadowÿÿÿÿ s_radianceÿÿÿÿ s_panoramaÿÿÿÿ s_lightmapÿÿÿÿs_probesÿÿÿÿs_decalsÿÿÿÿSAMPLER_NEAREST_CLAMPÿÿÿÿ vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depth5#J2 GLSL.std.450?vs_custom!$'*,.0235789:;<=>#¾vs_custom_instanced“•—™›� ¢¤¦¨«­¯±²³´µ¶·¸¹º»¼½pvs_custom_skinnedMOQSUWZ]_acdefghijklmnofs_customõ÷ùûýÿ   vfs_custom_depthZ\^`bdfhjlnprt¹fs_custom_idœž ¢¤¦¨ª¬®°²´¶¸fs_custom_normal_depthðòôöøúüþ   v¹H#HHH#@HHH#€HHH#ÀH#ÐH#àH#ðH#H#H # H #0G H #H H H #@H H H #€H #�H # H #°H #àH #ðGH#H#H# H#0H#@GPH#H#H# H#0H#@H#PH#`H#pH#€HHH #ÀH #ÐH#H#H# H#0H#HHH#@H#PG@G`H#H#H#H#H#G GH!#H!#H!H!H!#PH!#`H!#pH!#€H!#�H!# H!#°H! #ÀH! #ÐH! #àH! #ðH! #H!#€H%#H%H%H%#@H%#PH%#`H%#pG&€H(#H(#H)#H)H)H)#@H)#PH)#`H)#pH)#€H)#�H)# G*°H+#H+#H+# H,#H,# H,#H,#H,# H,#0H/#H/#H/# H/#(H/#0H/#@H0#H0#H0# H0#0H3#H3H3H3#@H3#PH3#`H3#pH3#€G4G5�H6#H6#H6# H6#0H6#@H6#@G7G8G9G:H<#H=#H=#H>#H>#H># H?#H?#H@#H@#H@# H@#0H@#8H@#@H@#PH@#`H@#hH@ #pH@ #€H@ #�H@ # HA#HB#HB#HB# HB#GDHE#HE#G‚"G‚!GƒHƒ#G…"G…!G†H†#Gˆ"Gˆ!G‰H‰#G‹"G‹!GŒHŒ#GŽ"GŽ!G�"G�!G’"G’!G“H“#G•"G•!G—"G—!G™"G™!Gš"Gš!G›"G›!Gœ"Gœ!Gž"Gž!GŸ"GŸ!G H #G¢"G¢!G£"G£!G¤"G¤!G¥H¥#G§"G§!G¨"G¨!G©"G©!GªHª#G¬"G¬!G­H­#G¯"G¯!Gó"Gó!GôHô#Gö"Gö!G÷"G÷!GGGG!G$G'G* G, *G. G0G2G3G5G5G7G8G9G:G:G;G< G= G> G“G•G—G™G›G�G G¢G¤G¦ G¨ G«G­G¯ *G± G²G³G´GµGµG¶G·G¸G¹G¹GºG» G¼ G½ GMGOGQGSGUGWGZ G] G_ Ga *Gc GdGeGfGgGgGhGiGjGkGkGlGm Gn Go Gõ G÷GùGûGýGýGÿGGGGGG  G  G  G GGGZ G\G^G`GbGbGdGfGhGjGjGlGn Gp Gr Gt GtGœ GžG G¢G¤G¤G¦G¨GªG¬G¬G®G° G² G´ G¶ G¶G¸Gð GòGôGöGøGøGúGüGþGGGG G G G  G G G    +       +  +@ + ++  ! " # $%+'&%'(& )*)+*,  -. / -01 2.345364578-9+;ý:;<:=>?@ --AB- C@DE+F+G+H+I+J+K+L ) M+NÛI@+OÛÉ@+PTø-@+Qÿÿÿÿ+R¯´´>, SRRR+Tެ,>+U ý|>+Vš™?, WTUV+X”„>+YÍÌÌ>+Z°¬,?, [XYZ+\îÐÐ=+]™Ÿ?+^¿¸8?, _\]^+`+ùø=+a©¡!?+b‹‡?, c`ab+d¢šš>+e¶»;?, fdeR+g ¦&?+hÜÔT?+iêèh>, jghi+kúòr?+lÍÈH?+moñp=, nklm+o“Ž?, pkom+qÛà`?+rƒŠ ?, sqXr, tSW[_cfjnps+u€+v+wff¦?+xÍÌL?+y�Âõ=+z$tI+{€+|ns\?+}ý®>+~²>+ýò&?+€ÿ* �ƒ „ƒ;„‚† ‡†;‡…‰ Љ;ŠˆŒ �Œ;�‹ �;�Ž ‘;‘�“! ”“;”’ –";–• ˜#;˜—;‘™;‘š;˜› �$;�œ;‘ž ( ¡ ;¡Ÿ;˜¢;‘£¥+ ¦¥;¦¤;�§;‘¨ª6 «ª;«©­< ®­;®¬;˜¯ ± . ²;±°²;±³²;±´²;±µ² ·.¸;·¶¸ º-.-»;º¹»;º¼»;·½¸ ¿...À;¿¾À;·Á¸;¿ÂÀ Ä.Å;ÄÃÅ Ç1.1È;ÇÆÈ;ÄÉÅ;ÄÊÅ;ÄËÅ;ÇÌÈ;±Í²;±Î²;±Ï²;±Ð²;·Ñ¸ Ó . Ô;ÓÒÔ;±Õ²;±Ö² Ø.Ù;Ø×Ù;±Ú²;ØÛÙ;ØÜÙ;ØÝÙ;ØÞÙ;ØßÙ;ØàÙ;ØáÙ;ØâÙ;±ã²;ØäÙ;ØåÙ;±æ²;ºç»;ØèÙ;±é²;±ê²;ÓëÔ;ØìÙ;±í²;±î²;±ï²;±ð²;±ñ²;ÓòÔôB õô;õó;˜ö;‘÷!ü-+!  + R¸NA,    + ®Ga=,    += ‡?, +š™@, +æ®%=,  !! " $ +&ö(\?, '&+(€?+)š™Y?+*fff?, +)* - . .. 0 6 7 _q !y  }.~ € ˆ+’UUÕ>, “’’’+”.M;, •”””! ,¢,£((((+¤? §!³!¼+¾?!Í Ð Õ Û! )  ++½7†5!/- 6$!@, ,+F€¿, GF, H(((+I@+JìQ8= L,.,M O. Q.S U).)V] ^]_ ,]`HH,]aQQ s* w)!-!;+<·Ñ8!Q +R @! c , d, eNNN+�ÛÉ?+‚UUÕ@+ƒHB+°®Ga?+±ÍÌÌ=+²ÍÌL>+³ ×#<+´š™™>, µVVV+Íffæ?+Îrá?+Ï‚‹µ>+ÐÒŒE=, ÑÎÏÐ+Ò㥛=+Óøˆh?+ÔfI€<, ÕÒÓÔ+Ö§è<+×» >+ØxV?, ÙÖר+ÚYÉ<, ÛÚÚÚ+ܯ޽8, ÝÜÜÜ+ÞªÕ{?+ßÁ«Ý>, àßßß+á�Ës>, âááá+ãshÍ?+äÜô¿+åLà–½, æãäå+çRѽ+è4×�?+é?Æ», êçèé+ëMV»+ì2•½+í»‰?, îëìí+ ?+…Ï>+%ëµ=+`¿>+T A?+‘+7>++­¦=+�í×=+¼t;?, , , ,1+hvû?+Ê@™¾+ ,P(¾+!Š[¿+"&É©?+#)ñs¾+$¸õÞ½+%Oßݼ+&ŠŠ³?, ' , (!"#, )$%&,1*'()++9•GÁ+,ŽÕ€@+-ÿæ[/, .---, /+++, 0,,,+11¬<+2îZ€@+3¼tÍA+4Ï·ŒB+5VŽ•B+6P�ØA+7ÿæÛ., 8777. :!… +†&Ó=+‡\�úA, ˆ‡‡‡. Š+¢@@, £¢¢¢, ¤(, ¥(, ¦((, §(, ¨((, ©((, ª(((!Ó -+Õff&?+ÖÍÌ,@+×Í̈A, Ø×××+Ù33³>+ÚCq‰=+Û�E¿;,-ÜÚÛ+Ý‚îSB.ß.  ;!. T ‚ „+† !Ã...+.Ç+.É€+.Êÿÿÿÿ+.Ïì#+úÏ+ûÿÿÿN,2ÏÏ+ Án�>+!,*ú>+"�Ø‹?+#{¡>+$�Ø ?. & (+)Ž"!–-+—®Gá¼+˜˜n¿+™X9´<,šF—˜™+›{.=+œ¸…?+� ×#½,ž(›œ�+ŸázÁ+ ¸…¿,-¡ œ!µ!À +Ãoƒ:. Å å æ+  ! .".$. &. (+4 !­-  ®6+°̼Œ+, ±°°° ³-.-´ ¹5 º3+»+¿ÿÿO!¦ ,-¨+©À.«!& +( r1?+) ÀA+* «ª*>.l !…  +ˆ ÛIA. Š . � .�  4!  -. .  .  . " . $ !Ê +Í +Î ¬Å'7 Ð 7.7Ñ Ó 8.8Ô . Ø Ú 9.9Û .ß .á .ã !> !‘  ” +˜ A. œ . ž .   £ ...¥ ²  ³  î  ô  Á  !Þ  +ð €@.ò .ô .ö .ø . ú !F   G(+KÀ@+LA!j  . o!‘% +¹æ±a!Ë % !÷  ÿ%.%.% "& $%!S . [. ].%_!» ¼<+¾þ À:+Äü!Ë>= Î>.>Ï!C!@! 6B,-8(( ;-!s,-¤¤+€€À+�@À,D‚€�(I©¢F�(€¢FI©+ƒC, „ƒƒƒ †D!¶1!Â!Ô!ã--!ë . í. ï!ý ! 1! . --. 0!V@ .@Y. z!‚!™ !§@ , ­¤¤¤,-®((. °. ². ;. =!w+xƒù¢>! ¥ . §.©. «!î .ñ!( . /! F . P. R. T. V. X. Z. !œ +® ×#>+¯€A.,±. µ. ·. ¹. ». ¾,-¬úú,-­ûû,2´ÏÏ!Û . ß  ;; -; ";"! %;%$ (;(';*;", /;/. 1 ;10;12 4-;43 6;65;/7;/8;49;6:;/;;/<;/=;/> ^;“;•;—;"™;%›;(�;% ;%¢;%¤;%¦;¨;%«;(­;"¯;/±;1²;1³;4´;6µ;/¶;/·;4¸;6¹;/º;/»;/¼;/½;M;O;Q;"S;%U;(W [;[Z;%];_;"a;/c;1d;1e;4f;6g;/h;/i;4j;6k;/l;/m;/n;/o;%õ;÷;ù;û;"ý;%ÿ;%;;";%;% ;% ;%   ;;/. .;%Z;\;^;`;"b;%d;%f;h;"j;%l;%n;%p;%r;t,-|FF. ~. €;%œ;ž; ;¢;"¤;%¦;%¨;ª;"¬;%®;%°;%²;%´;¶;/¸,¿ƒƒƒƒ. Á ÃA.AÄ;%ð;ò;ô;ö;"ø;%ú;%ü;þ;";%;%;%;%; ;/ ;/ .  E.E6ûü7-ù7úøø=ýŽ=þ�ùÿøÿQùQùP-VýþZúþ86  7 øùøˆ  � ˆ   ¼© þ86 !77ø;-,.;-/0A"#‚HA$%…Hù1ø1Ç2ª 32H÷4ú354ø5þø4A78# F=98A7:% =;:ª <;FÇ=« >=H÷?ú>@Aø@ÇB9G« CBH>,Cù?øA>,�ù?ø?= D,÷EúDFEøF9 G 'PHG(þHøEÇI'« JIH÷KúJLMøLÇN9« ONH>/OùKøM>/�ùKøK= P/÷QúPRQøR9 S +PTS(þTøQÇU9F« VUH÷WúVXWøX÷Yú<ZYøZÇ[F« \[H÷]ú\^]ø^A_`#J=a`þaø]A_b#I=cbþcøYA7d% H=edª feF÷gúfhgøhA_i#J=jiA_k#K=lkA7m% F=nmª onFPqroooo©prljþpøgùWøWA_s#I=tsþt86xy7 v7wøu;}|~A"z‚HA${…HùøA€�zH=‚�A€ƒ{H=„ƒ’…‚„P†v(‘‡…†>|‡Aˆ‰|G=Љƒ‹(w…ŒŠ‹Aˆ�|G>�Œ=Ž|þŽ86 ‘ 7 �ø�ù–ø–Ž —�   ˜�“Ž ™˜ƒ 𙼛�•© œ›—šþœ86Ÿ 7žø�A"¡‚Hù¥ø¥ ¦+ž¢£A§¨¡ =©¨º ª©¤÷«úª¬«ø¬O ­¦¦9 ®‘­Q¯¦P°®¯þ°ø«þ¦86²³ø±A$´…HùµøµA7¶´KG=·¶ ¸&·'þ¸86»¼7ºø¹A$½…Hù¿ø¿A7À½KF=ÁÀA7½KH=ð ĺ©ÅÄÃÁÇÆº „ÇÆ'ÂÈÅÇÇÉÈ€ Ê&ɾþÊ86 ÌÍøË;ÐÏtA$Î…HùÑøÑA7ÒÎK =ÓÒ Ô&Ó Ö&Ô AÕ×ÏÖ= Ø×þØ86Ú³øÙAÛ܈HùÝøÝA7ÞÜ G=ßÞ à&ß'þà86ã¼7âøáAÛäˆHùåøåA7æä F=çæA7èä H=éè° êâ©ëêéçÇìâ „íì'ÂîëíÇïî€ ð&ï¾þð86ò³øñA$ó…HùôøôA7õóJG=öõ ÷&ö'þ÷86ú¼7ùøøA$û…HùüøüA7ýûJF=þýA7ÿûJH=ÿ° ù©þÇù „'ÂÇ€þ86  7)7 øA" ‚HA ¤HùøA§FH=A_  =O ƒ   BA§FF=º ¤©(…A7HF= )F‚ Fp! Q"Q#" $(#ˆ%$ &(%( '& (+'!þ(86./7*7-+7,7 -ø)=$0§=1¨ù2ø2‚3*F|.43©5-,o74P 8+7V6901X:985þ:86,?@7 <7 =7,>ø;;UTV;ONH;ˆRS;LKM;-PQ;^baA"A‚HA$B…HA C¤H=$D§=E¨ùWøW>K>9XòùYøYöZ\ùcøc=]dbª_e`d› fe÷gúfZgøgQhdª ihH©jiFHP]kjF‚]ldk>blù[ø[=mN° nmX÷oúnopøpùZøoùqøq=tN9uút v&u¾ x&v¾AwyCGx=)zyQ{zP|<(‘}{|O ~}}¾~G› €÷�ú€‚ƒø‚¼„~H› …„>P…ù�øƒ>P�ù�ø�= †P¨ ‡†÷ˆú‡‰ˆø‰ù\øˆQŠ~ ‹ŠƒŒ(‹Q�zQŽ�Q�zQ��Q‘~º ’‘©“’�Ž ”Œ“>R”Q•zQ–•º —–÷˜ú—™˜ø™=šRQ›zQœ›Q�zO ž��”Ÿ=ž… Ÿ¤�¡ ¤ ¢1œ(¡…£š¢>R£ù˜ø˜O-¤~~>Tz=)¥T9¦ ¥<Q§zQ¨§Q©zQª©¬ «ªH÷¬ú«­¬ø­Q®zQ¯®Ç°¨F« ±°H9².¯¤¦±O ³²²9 ´ ³Qµ²P¶´µQ·z…¸¶·Q¹¸=ºR…»¹ºAÕ¼KH= ½¼O ¾¸¸Q¿zQÀ¿…Á»ÀP ÃÁÁÁ  Â.½¾ÃAÕÄKH>ÄÂQÅzQÆÅ¬ ÇÆH÷ÈúÇÉÈøÉQÊzQËÊÇ̨G« ÍÌH9Î.ˤ¦ÍQÏÎ…ÐÏIƒÑÐ(QÒÎ…ÓÒIƒÔ(Ó…ÕÑуÖ(Õ…×ÔÔƒØÖ× Ù(Ø ÚÙQÛzO ÜÛÛŽ ÝÜÑQÞzO ßÞÞŽ àßÚ� áÝàQâzO ãâ⎠äãÔ� åáä  æEåAÕçK= èçP ê»»»  é.èæê  ëEéAÕìK>ìëùÈøÈQízQîí¬ ïîH÷ðúïñðøñQòzQóòÇô¨« õôH9ö.ó¤¦õAˆ÷K =ø÷Qùö ú.øù»AˆûK >ûúAˆüKG=ýüQþö ÿ.ýþ»AˆKG>ÿAˆKF=Qö .»AˆKF>ùðøðù¬ø¬QzQ¬ H÷ ú  ø Q zQ  Ç ¨'«  H9. ¤¦AÕKI= O 9  QzO … QzQŽ =RŽ � AÕKI>ù ø ùrørù\ø\=N€F>NùYøZAˆ KG=!  "+!J(Aˆ#KG>#"Aˆ$KF=%$ &+%(Aˆ'KF>'&=,(Kþ(86,-7*7+ø)ù.ø.…/**ƒ0+(…1/0�21(…3N2…432ˆ5+4þ586:;777879ø6ù=ø=…>88ƒ?(9…@>?�A@9 BA…C7B…D77ƒE(9…FDE�GF9 HG…I8H�JCI K(J<ˆL¤KþL86 PQ7 N7OøMùSøSƒ THNƒU(O VURŽ WTV� XNWþX86 bc7 Z7 [7 \7 ]7 ^7 _7`7aøYùføf”gZ\¼ hg÷iúhjiøjþdøi� k\[  lEk”mZl n(m”o[l p(o”qZ[ r(q<9 sP_p9t,n`9u:gr`…vtuŽ wsvˆ x^eŽ ywa� zxy… {z]Ž |{gþ|86  7 ~ø}AÛ€ˆHù„ø„  …E~A_†€ =‡†O ˆ‡‡”‰…ˆ Š+‰F( ‹Š¼ Œ‹�÷�úŒŽ�øŽˆ�‹�ƒ�(�ƒ‘(� ’(‘ “’‚ƒ”(“ •+”(A_–€I=—–O ˜——A_™€=š™O ›ššP �•••  œ.˜›�þœø�ƒž‹�ˆŸž�ƒ (Ÿ ¡(  ¢¡ƒƒ£(¢ ¤+£(A_¥€J=¦¥O §¦¦A_¨€K=©¨O ª©©P ¬¤¤¤  «.§ª¬þ«86 ¯ 7 ®ø­ù¶ø¶Ž ·®°…¸±VP ¹¸¸¸� º·¹… »®º…¼²³P ½¼¼¼� ¾»½Ž ¿®°� À¿µ… Á®À…²´P ÃÂÂÂ� ÄÁÈ žĈƳ´P ÇÆÆÆƒ ÈÅÇþÈ86 ÌQ7 Ê7ËøÉùïøï”ðÑÊ…ñÍð”òÕÊ…óÍò”ôÙÊ…õÍôP öñóõ� ÷öÛ… øö÷ƒ ùøÝŽ úöÞ� ûúà… üöû� ýü∠þùý”ÿæþ”êþ”îþP ÿ…ÍË�Ú…ƒÜ…Þ�ß… �  ሠ P    ˆ  þ 86  7 ø;Õ9:ù;ø;  <(.‘ =<>9== >9  ?>  @+?/0ƒ A@/ƒB,+P CBBBˆ DAC>9D= E9= F9… GEF… HGG= I9Ž JI1Ž KG2� LJKŽ MG3= N9… OMNƒ PLOŽ QH4� RPQŽ SH5= T9… USTƒ VRUŽ WH6… XWG� YVX  Z(Y8  [Z‘ \*[þ\86 _ 7 ^ø]AÛ`ˆHùaøaA§b`GH=cbŽ d^c  e(ddA§f`GF=gfA7h`HG=ihª jiF÷kújlkølŽ meg� nmeŽ oegP pggg� qopˆ rnqþrøkª siG÷túsutøu9 v¯eP wggg9 x¯wˆ yvxþyøtª zi ÷{úz|{ø|9 }Ìegþ}ø{ª ~i÷ú~€ø€9 �eþ�øþe86„…7 ƒø‚;Õ‰Šù‹ø‹Ž Œƒ†  � Œ>‰�= މ= �‰= �‰O ‘��� ’‘ˆ”“�’P ”“““� •Ž”>‰•Aˆ–‰H=—–Aˆ˜‰F=™˜�š—™Aˆ›‰G=œ›…�šœ ž �þž86¡…7  øŸù«ø«  ¬   ­  … ®­­Ž ¯­Iƒ °£¯… ±®°9²„¬� ³¬¤9´„³Qµ± ¶.²´µ� ·¬¥9¸„·� ¹¬¦9º„¹Q»± ¼.¸º»Q½± ¾.¶¼½� ¿¬§9À„¿� Á¬¨9„ÁQñ Ä.ÀÂÃ� Ŭ©9Æ„Å� Ǭª9È„ÇQɱ Ê.ÆÈÉQ˱ Ì.ÄÊËQͱ Î.¾ÌÍþÎ86ÒÓ7 Ð7-ÑøÏ;ˆÞßA$Ô…HùàøàA7áÔH=âáÇãâLª äãH© åMäM÷æúåçæøçþ(øæA§èÔFH =éèŽ êÐw9ë¡ê…ìëÕŽ íêÖ� îíØ9ï¡î…ðïÙ�ñìð ò1²xñ>ÞòQóѾ ôó÷õúôöõøö -÷Ñ”ø÷Ü ù ø…úÝù û ú=üÞƒýû¤…þýy�ÿüþ +ÿ(>Þùõøõ…éÍ=Þƒˆxþ86 Q7 7ø;-  A$ …HAÛ ˆHù ø A7 H=ÇLª H¨ ÷úø¾ (> ùø> Mùø=  © MM÷úøþøA7  = @O 9  9 _ !1(P #!!!  ". #þ"86 & 7 %ø$A$'…HAÛ(ˆHù)ø)A7*'H=+*Ç,+ª -,H© .M-M÷/ú.0/ø0þ%ø/A_1'F =21O 3229 4_3Q52P 7555  6.%47þ686 : 7 9ø8A;<’Hù=ø=A€><F=?>P@9‘A?@O BAA  CEBþC86G-7E7FøDùHøHƒI(E J(IˆK(F LJKƒM(L N+M(þN86 Q 7 PøO;ÕST;OUH;^qaA;R’HùVøVQWP X+WF( YXA_ZR =[ZO \[[A_]RG=^]O _^^ˆ`Y�ƒa(`A§bRG =cb9dGacP fddd  e.\_fA§gR =hgŽ ieh>SiA7jRHG=kj l&kùmømönpùrør=]sqª_t`s› ut÷vúunvøvQwsª xwH©yxFHP]zyF‚]{sz>q{ùoøo=|U° }|l÷~ú}~øùnø~ù€ø€=ƒU …&ƒ A„‡R†…=ˆ‡Q‰ˆQЉQ‹ˆO Œ‹‹”�ŒP Ž+�F( �ޏ ��Š÷‘ú�’“ø’Q”ˆO •””>S•ù‘ø“A§–RJH=—–¸ ˜�—÷™ú˜š™øšƒ›�ŠA§œRJH=�œƒž�ŠˆŸ›žQ ˆO ¡  = ¢SA§£RJF=¤£9¥GŸ¤P §¥¥¥  ¦.¡¢§>S¦ù™ø™ù‘ø‘ù�ø�ùpøp=¨U€©¨F>U©ùmønA_ªRI=«ªO ¬««A_­R=®­O ¯®®ƒ°Y�ˆ±°�A§²R =³²9´G±³P ¶´´´  µ.¬¯¶A§·RI =¸·Ž ¹µ¸= ºSQ»P¾ ¼»P¾¼¼¼© ½¾º¹A§¿RJG=À¿Ž Á½ÀþÁ86.ÂÃ7.Ä7.ÅøÆª ÈÅǪ ËÄɪ ÌÅʧ ÍË̦ ÎÈÍ©.ÐÎÏŇ.ÑÄЄ.ÒÑЂ.ÓÄÒþÓ86 Ö 7 ÕøÔA;×’H=#Ø—=ÙšùÚøÚQÛÕQÜÕÝÜ ÞÛ݈ßÞO à ßQáÕ â+áF( ãâˆäãNP-åàäA7æ×HH=çæÇèç« éèH÷êúéëêøëVìíØÙXîíåO ïîîA§ð×JG=ñðŽ òïñþòøêg]óØÇ|2ôóQõåQ.öôo÷ö…øõ÷ ùø ü+ùúûn.ýüQ.þô9.ÿÂýþQ.ô€.ÿQ.ô9.ÂQåQ.ôo…   +úûn.  Q. ô‚.  Ï .* Ç . ' P2 j.Ø‚.Ï .&Çg2Ø‚2 2&_ØO A§×JG=Ž þ86  7 ø;Õ%&A;’Hù'ø'A_*)H=+*O ,++Ž -, >%-= .%A_/)F=0/O 100Q2…3!2Ž 413� 5.4>%5= 6%A_7)G=87O 988Q:…;!:Ž <9;� =6<>%== >%A_?) =@?O A@@QB…C!BŽ DAC� E>D>%E= F%A_G)=HGO IHHQJ…K"JQL…MKLŽ NIM� OFN>%O= P%A_Q)I=RQO SRRQT…U"TQV…WUVŽ XSW� YPX>%Y= Z%A_[)J=\[O ]\\Q^…_¢^Q`…a_`ƒba(…c#bŽ d]c� eZd>%e= f%A_g)K=hgO ihhQj…k"jQl…mklŽ nim� ofn>%o= p%A_q)'=rqO srrQtQu…vtuQwQx…ywxƒzvy…{$zŽ |s{� }p|>%}= ~%  (~dþ86 ƒQ7 �7‚ø€A;„’H="…•=†™ù‡ø‡A7ˆ„HF=‰ˆ Š)‰F‚‹ŠFpŒ‹…�‚ŒVŽ�…†X����O ‘��þ‘86-•–7“7”ø’ù¢ø¢Ž£š“�¤£žQ¥¤Q¦¤…§¥¦…¨Ÿ” ©¨ ª%§©Q«¤…¬ª«Q­¤�®¬­Ž-¯¡®O-°¤¤�-±¯°þ±86´µ7³ø²ù¶ø¶ ·(³ ¸(³…¹·¸…º¹¹…»ººþ»86 ¿À7 ½7 ¾ø¼;ÕÄÅ;OÆH;^ÒaAÛÁˆHA;Â’HùÇøÇ>ĽA§È =ÉȺ ÊÉÃ÷ËúÊÌËøÌ9ÍÚùÎøÎöÏÑùÓøÓ=]ÔÒª_Õ`Ô› ÖÕ÷×úÖÏ×ø×QØÔª ÙØH©ÚÙFHP]ÛÚF‚]ÜÔÛ>ÒÜùÐøÐ=ÝÆ° ÞÝÍ÷ßúÞßàøàùÏøßùáøá=ãÆ9äãã ç&ä¾A7èÁçH=éèª êéH÷ëúêìëøì= íÄ î&ä¾A_ïÁîH=ðïO ñððˆ òñe ó&ä¾A_ôÁóG=õôO öõõ ÷ö”ø¾÷9ù´øŽ úòùA§û =üûŽ ýúü� þíý>ÄþùëøëùâøâùÑøÑ=ÿÆ€ÿF>ÆùÎøÏùËøË= Äþ86 À7 7 øAÛˆHA;’HùøA_  =  O   A§   = P   . 9 ¿A§F=P   .þ86 7 7 7 ø;ˆ#$;-'(;ˆ!";Õ%&A"‚HAÛˆHA;’H="•= ™ù)ø)A€*H=+*P,(‘-+,Q.-/.A_0 =10O 211 3C2>!3A§54 =65º 76¤÷8ú798ø9A§:4H=;:ƒ</; =(<>!=ù8ø8A7>HH=?>Ç@?v« A@H÷BúACDøCA§E H=FEA§G F=HG=I! J1FHI K(JA§L G=ML NKMº OJ©PONA§QH=RQ…SPR>#SùBøD=T!UTA§VH=WV…XUW Y%X ZYƒ[(Z>#[ùBøBA§\ =]\ ^]¾ _^<÷`ú_a`øaA_b =cbO dcc”ed=f#A§gG=hgƒiehA§j =kj…lik m%l nmƒo(n p(fo>#pù`ø`=q# r+q(>#rA_s =tsO utt>%uA7vHH=wvÇxw'« yxH÷zúy{|ø{A§}  =~}º ~>'ùzø|>'�ùzøz= €'© �M€�÷‚ú�ƒ‚øƒA§„4F=…„ƒ†/…A§‡4G=ˆ‡A§‰4F=Љƒ‹ˆŠ Œ(‹ˆ�†Œ Ž+�(A7�HF=�� ‘)�G‚’‘Fp“’ˆ”(“ƒ•(Ž –.”(•= —%9 ˜:9 ™ƒ˜–A§šJ =›šŽ œ™›A§�  =ž�P  žžž  Ÿ.—œ >%Ÿù‚ø‚= ¡%9 ¢¿¡>%¢= £%=¤#P ¦¤¤¤  ¥.£¦þ¥86-¬­7¨7 ©7 ª7«ø§;ˆµ;ˆ·F;³²´;ˆ¶A®¯©Hù¸ø¸ ¼&¨»A§½¯I¼ =¾½ À+¾¿mÁÀ Â&¨»A§Ã¯I =Äà Å%Ä«ª ÆÁ÷ÇúÆÈÇøÈP-ÉÅþÉøÇ Ê&¨»A_˯IÊF=ÌËO ÍÌÌŽ Îͤ  Ϫ¸Ðϱ© Ñбª Ò΃ ÓÒ©ˆ ÔÓу ÕΩˆ ÖÕÑ  ×%ÔÖ  Ø(ÔÖQÙ× Ú(ÙQÛØ Ü%ÅÛP-ÝÚÜ>²Ýª ÞÁ ÷ßúÞàáøàAˆâ²H=ãâQä× å(ãäQæ× ç(åæAˆè²F=éèQêØ ë%éêQìØ í%ëìP-îçí>²îùßøáª ïÁH÷ðúïñòøñˆ óªÎˆ ôªÎ”õóô>µõˆ ö©Îˆ ÷ªÎ”øö÷>¶øˆ ù©Îˆ ú©Î”ûùúƒüû(>·üùðøòQýÎQþÎ ÿ%ýþQÎ…Iˆÿª ÁF©QÎQ©ƒQªQ ª…  Q ªQ ª…   �  …Qª…Qª…ƒ>µQ©Qª…Q©Qª…�……Qª…� >¶ Q!©Q"©…#!"Q$©Q%©…&$%�'#&…(ÿÿ…)…*)…+*ª ,ÁF©-,+(ƒ.'->·.ùðøðùßøß=/¶=0¶…1/0=2µ=3·…423ƒ514=6µ 76¸ 87°÷9ú8:;ø:=<¶ =<¸ >=°÷?ú>@Aø@AˆB²F=CB=D·º ED©FEFCAˆG²F>GFù?øA=H¶º IH÷JúIKLøKAˆM²F=NM=O·PO=Q¶…RIQˆSPR T%NSAˆU²F>UTùJøLAˆV²H=WV=X·YX=Z¶…[IZˆ\Y[ ](W\Aˆ^²H>^]ùJøJù?ø?ù9ø;¸ _5÷`ú_abøaAˆc²F=dc=eµº fe©gfFdAˆh²F>hgù`øb=i¶ji k5ƒljk=mµˆnlm=o¶po q5�rpq=sµˆtrs u%nt=v¶wv x5ƒywx=zµˆ{yz=|¶}| ~5�}~=€µˆ�€ ‚({�=ƒµº „ƒ÷…ú„†‡ø†Aˆˆ²H=‰ˆ Š(‰uAˆ‹²F=Œ‹ �%Œ‚P-ŽŠ�>²Žù…ø‡Aˆ�²H=��Aˆ‘²F=’‘ “%’u¸ ”�“÷•ú”–—ø–Aˆ˜²F=™˜ š%™uAˆ›²F>›šù•ø—Aˆœ²H=�œ ž(�‚AˆŸ²H>Ÿžù•ø•ù…ø…ù`ø`ù9ø9=- ²þ 86¥¦7¢7 £7 ¤ø¡;ˆª«;ˆ¬A®§©Hù­ø­ ®&¢»Aº¯§I®=3°¯Q±°Q²±Q³°Q´³µ´A_¶§ =·¶O ¸··”¹£¸Qº°Q»ºƒ¼¹»…½µ¼ ¾½ ¿%¾(…À²¿>ªÀQÁ°QÂÁº ÃÂ÷ÄúÃÅÄøÅQưQÇÆ È+Ç¿mÉÈQʰO ËÊÊŽ ÌˤQÍÌQÎÌ Ï%ÍΪ ÐÉH÷ÑúÐÒÓøÒˆ Ô¤Ì ÕBÔƒÖÕ(…×ÕÖ… ØÌ̈ Ù¤Ø ÚBÙ Û(Ú°ˆÜ×Û>¬ÜùÑøÓª ÝÉ ÷ÞúÝßàøß  ᤃ âáÌ  ã(âd äBãQåâQæâQçâ è(æç é(åè ê%é�ëäê>¬ëùÞøàª ìÉG÷íúìîïøîO-𤤠ñBðƒòñÏQó¤ ôóQõ̃öôõP-÷òöQø÷Qù÷ ú(øù û%ú -ü(÷¨ ýBü�þûý>¬þùíøï…ÿϤ  (Ãÿˆ ( Q Ì  (à ˆ ( P-   - E O- ¤¤  B Q ¤Q ̃ P-  ”  Q Ì  Q ¤ƒ    (  >¬ ùíøíùÞøÞùÑøÑ= ª= ¬… © Q °Q  ˆ    + (Q °Q      …   >ª ùÄøÄ= ªþ 86% & 7 7! 7" 7# 7$ ø A®' ©Hù+ ø+ , & »A_- ' I, G=. - Q/ . …0 / " ´ 1 0 ÷2 ú1 3 2 ø3 Q4 . ƒ5 $ # …6 4 5 7 / …8 7 ! 9 8 : %9 (…; 6 : þ; ø2 < ! ˆ= < " > += # $ º ? " ©@ ? > # º A " ©B A $ > C " …D / C ƒE B @ …F D E …G F ( H G I H ƒJ (I ˆK J G ˆL G ) ƒM * L …N G M ƒO ¤N …P G O ƒQ (P ¸ R G ³©S R Q K T / º U " ©V U @ B …W " V �X ! W Y (X …Z T Y [ Z \ %[ (Q] . ƒ^ $ # ƒ_ B @ ƒ` ^ _ ƒa B @ …b \ a …c b S �d ` c …e ] d þe 86j ;7g 7h 7i øf ;ˆk l ùm øm …n g h >k n =o k =p k …q o p >k q =r k =s k …t r s >k t =u k ƒv (u w (v >k w =x k =y k …z x y >k z ={ k | (g <} i ~ | } … { ~ þ 86 „ … 7� 7 ‚ 7 ƒ ø€ ;O‹ H;ˆŽ � ;Õ‰ Š ;ÕŒ � ;^  aAÛ† ˆHA®‡ ©Hù� ø� A_‘ ‡ G=’ ‘ O “ ’ ’ A§” ‡ FF=• ” Ž – “ • >‰ – A§— ‡ FH=˜ — ™ &� »A6š ‡ I™ I=› š ùœ øœ ö� Ÿ ù¡ ø¡ =]¢   ª_£ `¢ › ¤ £ ÷¥ ú¤ � ¥ ø¥ Q¦ ¢ ª § ¦ H©¨ § FHP]© ¨ F‚]ª ¢ © >  ª ùž øž =« ‹ Q¬ ›  ­ &¬ '° ® « ­ ÷¯ ú® ¯ ° ø° ù� ø¯ ù± ø± Q³ › Q´ › =µ ‹ ° ¶ µ ©· ¶ ´ ³ =¸ ‹ ǹ ¸ „º ¹ '» · º Ǽ » € ½ &¼ ¾ ¾ &½ ¾Aæ¿ † ¾ =À ¿ QÁ À O  Á Á  à  >Œ à >Ž (QÄ À QÅ Ä « Æ Å H÷Ç úÆ È Ç øÈ QÉ À O Ê É É ƒ Ë Ê ‚ Ì BË Í (Ì P Î Í Í Í ˆ Ï Ë Î >Œ Ï Ð BË QÑ À QÒ Ñ QÓ À QÔ Ó 9Õ j Ð Ò Ô >Ž Õ QÖ À Q× Ö ª Ø × G÷Ù úØ Ú Ù øÚ = Û Œ  Ü Û QÝ À O Þ Ý Ý ”ß Ü Þ Qà À Qá à â (ß á ƒã (â Qä À Qå ä ƒæ (å ç (æ ˆè ã ç é (<è =ê Ž Që À Qì ë  í é ì ƒî (í …ï ê î >Ž ï ùÙ øÙ ùÇ øÇ …ð ˜ ˜ �ñ (ð …ò I˜ = ó Œ ”ô ƒ ó …õ ò ô ƒö ñ õ = ÷ ‰ Qø À O ù ø ø =ú Ž …û ˜ ˜ ƒü (û …ý ú ü …þ ˆ ö ÿ ö … þ ÿ ˆ ý  ½ GÇ ½  &  & »A§ ‡   =  …   Ž ù � ÷ >‰ ù² ø² ùŸ øŸ = ‹ € F>‹ ùœ ø� =  ‰ þ 86  7 7  7  7- ø ;-! " ;Õ d;ˆ  ;-# $ ;ˆ ;-  ;O H;-  ;^^ aAÛ ˆHA® ©Hù% ø% & & »Aº'  I& =3( ' Q) ( P*  (‘+ ) * O , + + Q- ( P.  ‘/ - . O 0 / / A_1  =2 1 O 3 2 2 ”4  3 Q5 ( Q6 5 ƒ7 4 6 A_8  =9 8 O : 9 9 ”;  : Q< ( Q= < º > = Q?  Q@  �A ? @ …B A ¤> B QC ( QD C º E D ÷F úE G H øG I 7 ˆJ I ; QK  º L J K > L ùF øH > �ùF øF = M  ÷N úM O P øO Q 7 ˆR Q ; QS  ¸ T R S > T ùN øP > �ùN øN = U  ÷V úU W V øW X 7 ˆY X ; > Y ùV øV ùZ øZ ö[ ] ù_ ø_ =]` ^ ª_a `` › b a ÷c úb [ c øc Qd ` ª e d H©f e FHP]g f F‚]h ` g >^ h ù\ ø\ =i ©j > 4° k i j ÷l úk l m øm ù[ øl ùn øn =p Çq p ª r q H¨ s r ÷t ús u v øu ª w q >! w ùt øv >! Mùt øt = x ! ©y x |}ª z q H¨ { z ÷| ú{ } ~ ø} ª  q >#  ù| ø~ ># Mù| ø| = € # ©� € ~=‚  Qƒ  P-„ ‚ ƒ Q…  =†  P-‡ … † =ˆ ° ‰ ˆ 'P_‹ ‰ ‰ ©-Š ‹ ‡ „ =Œ ° � Œ P_� � � ©-Ž �  Š Q� Ž Q‘ Ž ƒ’ � ‘ …“ ’ ¤Q” Ž Q• Ž �– ” • …— – ¤˜ y ° ™ q G©š ™ ˜ y …› “ š �œ — › Ž �  œ � ž  � Ž Ÿ 0 œ �   , Ÿ 9¡ ¥ ž   =¢ ° £ ¢ ÷¤ ú£ ¥ ¦ ø¥ = §  Q¨ ( O © ¨ ¨ 9 ª „  ž  … « © ª Q¬ ( O ­ ¬ ¬ � ® « ­ …¯ � “ ° +¡ (…± ¯ ° Ž ² ® ± � ³ § ² > ³ ù¤ ø¦ =´  …µ � “ …¶ µ ¡ �· ´ ¶ > · ù¤ ø¤ ùo øo ù] ø] =¸ €¹ ¸ F> ¹ ùZ ø[ ¨ º > ÷» úº ¼ » ø¼ Q½  Q¾  9 ¿ %  7 ; ½ ¾ > ¿ ù» ø» = À  =Á  P À Á þ 86 É Ê 7 Ä 7 Å 7 Æ 7Ç 7È øà ;ˆå ;Oà á ;OÜ H;OÖ H;Ð Ï Ñ ;Oæ H;Oâ ã ;OÝ H;-× Ø ;Ó Ò Ô ;Õä d;ˆÞ ß ;Ú Ù Û ;OÕ H;^í a;^4 a;^X a;^u a;^½ a;^ aAÛË ˆHA®Ì ©Hùç øç ® è È {ùé øé öê ì ùî øî =]ï í ª_ð `ï › ñ ð ÷ò úñ ê ò øò Qó ï ª ô ó H©õ ô FHP]ö õ F‚]÷ ï ö >í ÷ ùë øë =ø Ö A7ù Ì HH=ú ù û &ú ©ü è û ° ý ø ü ÷þ úý þ ÿ øÿ ùê øþ ù ø = Ö Ç  „  'Â È  Ç  Í ¨  è ÷ ú ø ª  H>× ù ø >× �ù ø = × ÷ ú  ø ùê ø  & ‚  F= Ö © è    & »A€ Ì I H=  P Å (‘   O    P Æ ‘   O    9- ¬   Ç Q  Q  º    ÷ ú ! ø! =" Õ # &" AO$ Ï # >$  =% Õ & &% A³' Ò & >'  =( Õ €) ( F>Õ ) =* Õ ª + * ÷, ú+ - , ø- ùê ø, ù ø ù ø ùì øì =. Ö €/ . F>Ö / ùé øê ù0 ø0 ö1 3 ù5 ø5 =]6 4 ª_7 `6 › 8 7 ÷9 ú8 1 9 ø9 Q: 6 ª ; : H©< ; FHP]= < F‚]> 6 = >4 > ù2 ø2 =? Ü =@ Õ ° A ? @ ÷B úA B C øC ù1 øB ùD øD =F Ü =G Ü H &G AOI Ï H =J I =K Ü L &K A³M Ò L =-N M 9O  J Å Æ N P &F A}Q Ù P >Q O ùE øE ù3 ø3 =R Ü €S R F>Ü S ù0 ø1 ùT øT öU W ùY øY =]Z X ª_[ `Z › \ [ ÷] ú\ U ] ø] Q^ Z ª _ ^ H©` _ FHP]a ` F‚]b Z a >X b ùV øV =c Ý =d Õ ° e c d ÷f úe f g øg ùU øf ùh øh =j Ý k &j Aˆl Ù k =m l ¸ n m ÷o ún p o øp >Þ >à Hùq øq ör t ùv øv =]w u ª_x `w › y x ÷z úy r z øz Q{ w ª | { H©} | FHP]~ } F‚] w ~ >u  ùs øs =€ à =� Õ ° ‚ € � ÷ƒ ú‚ ƒ „ ø„ ùr øƒ ù… ø… =‡ à ˆ &‡ Aˆ‰ Ò ˆ F=Š ‰ =‹ Ý Œ &‹ Aˆ� Ò Œ F=Ž � � %Š Ž =� à ‘ &� Aˆ’ Ò ‘ H=“ ’ =” Ý • &” Aˆ– Ò • H=— – ˜ (“ — ƒ™ � ˜ š (™ =› à œ &› Aˆ� Ò œ F=ž � =Ÿ à   &Ÿ Aˆ¡ Ò   H=¢ ¡ ƒ£ ž ¢ ¤ (£ ˆ¥ š ¤ =¦ Þ =§ à ¨ &§ Aˆ© Ù ¨ =ª © « (ª …¬ « ¥ �­ ¦ ¬ >Þ ­ ù† ø† ùt øt =® à €¯ ® F>à ¯ ùq ør =° Ý ± &° Aˆ² Ù ± =³ ² ´ ³ =µ Þ ¶ (µ °ˆ· ´ ¶ ¸ %· (>â Hù¹ ø¹ öº ¼ ù¾ ø¾ =]¿ ½ ª_À `¿ › Á À ÷ úÁ º  ø Qà ¿ ª Ä Ã H©Å Ä FHP]Æ Å F‚]Ç ¿ Æ >½ Ç ù» ø» =È â =É Õ ° Ê È É ÷Ë úÊ Ë Ì øÌ ùº øË ùÍ øÍ =Ï â Ð &Ï AˆÑ Ù Ð =Ò Ñ º Ó Ò ÷Ô úÓ Õ Ô øÕ =Ö â × &Ö AˆØ Ò × F=Ù Ø =Ú Ý Û &Ú AˆÜ Ò Û F=Ý Ü Þ %Ù Ý =ß â à &ß Aˆá Ò à H=â á =ã Ý ä &ã Aˆå Ò ä H=æ å ç (â æ ƒè Þ ç é (è =ê â ë &ê Aˆì Ò ë F=í ì =î â ï &î Aˆð Ò ï H=ñ ð ƒò í ñ ó (ò ˆô é ó =õ â ö &õ A}÷ Ù ö =ø ÷ …ù ô ¸ ƒú (ù Žû ø ú ü &õ A}ý Ù ü >ý û ùÔ øÔ ùÎ øÎ ù¼ ø¼ =þ â €ÿ þ F>â ÿ ù¹ øº ùo øo ùi øi ùW øW = Ý € F>Ý  ùT øU ù ø ö  ù ø =]  ª_ ` › ÷ ú  ø Q  ª H© FHP]  F‚]   >  ù ø = æ = Õ °    ÷ ú   ø ù ø ù ø = æ  & Aˆ Ù  =  º   ÷ ú   ø =  ä = æ ! & A}" Ù ! =# " O $ # # � %  $ >ä % =& å =' æ ( &' Aˆ) Ù ( =* ) �+ & * >å + ù ø ù ø ù ø =, æ €- , F>æ - ù ø =. å / . 0 / Ž 1 Ä 0 = 2 ä ƒ3 (0 =4 å 5 (4 Î ˆ6 3 5 Ž 7 2 6 � 8 1 7 þ8 86 = > 7 : 7 ; 7< ø9 A"? ‚HAÛ@ ˆHA®A ©HùB øB A§C ? HHG=D C A§E ? HFG=F E A§G ? HGG=H G P I D F H  J EI A_K ? =L K O M L L A€N ? H=O N PP ; (‘Q O P QR Q Ž S J R ƒ T ; S A§U ? =V U º W V ¤PY W W W © X Y T M ƒ Z ; X [ BZ ƒ \ ; X ] ([ P ^ ] ] ] ˆ _ \ ^ 9 ` É : X _ [ < º a [ Pc a a a © b c ` : þb 86 h 7 e 7 f 7 g ød A"i ‚HAÛj ˆHA®k ©Hùl øl A§m i HHG=n m A§o i HFG=p o A§q i HGG=r q P s n p r  t Es A_u i =v u O w v v A€x i H=y x Pz f (‘{ y z Q| { Ž } t | ƒ ~ f } A§ i =€  º � € ¤Pƒ � � � © ‚ ƒ ~ w A7„ k HF=… „ 9 † É e ‚ g z… A§‡ k FG=ˆ ‡ P Š ˆ ˆ ˆ  ‰ .e † Š þ‰ 86� ‘ 7Œ 7 � 7 Ž 7 � ø‹ ;£ ¢ Ê;-� ž ;O™ H;£ ¤ ¥ ;-Ÿ   ;Oš H;ˆ¡ ;-› œ ;^Ò a;^v a;^‹ aA"’ ‚HAÛ“ ˆHA” • ‹H=– Ž=— �ù¦ ø¦ § &Œ ¾A7¨ “ § H=© ¨ ª &Œ ¾A_« “ ª F=¬ « O ­ ¬ ¬  ® &Œ ¾A7¯ “ ®  =° ¯ ± &° » ´ &± »A_µ • F´ H=¶ µ · &± »A7¸ • F· H=¹ ¸ º &± »A7» • Fº F=¼ » ½ )¼ FA€¾ ’ H=¿ ¾ PÀ � (‘Á ¿ À Q Á à  ª Ä © H÷Å úÄ Æ Å øÆ Ç &± »A§È • FÇ GF=É È º Ê Ã É ÷Ë úÊ Ì Ë øÌ þ(øË ‚Í ½ F>™ Í ùÎ øÎ öÏ Ñ ùÓ øÓ =]Ô Ò ª_Õ `Ô › Ö Õ ÷× úÖ Ï × ø× QØ Ô ª Ù Ø H©Ú Ù FHP]Û Ú F‚]Ü Ô Û >Ò Ü ùÐ øÐ =Ý š ° Þ Ý ½ ÷ß úÞ ß à øà ùÏ øß ùá øá =ã š ä &ã å &± »A§æ • Få Fä =ç æ ¼ è à ç ÷é úè ê é øê =ë š >™ ë ùÏ øé ùâ øâ ùÑ øÑ =ì š €í ì F>š í ùÎ øÏ ùÅ øÅ =ï ™ ‚ð ½ F ñ &ï ð €ò ¹ ñ ó &ò » õ &ó »A_ö • Gõ G=÷ ö Qø ÷ Qù ÷  ú C� ­ …û ù ú �ü ø û Qý ¶ Qþ ¶  ÿ (þ (… ý ÿ … ü Ž  Ž  �  �  Q ¶ …  ü Ž  �  �    ª  © F÷ ú ø ƒ  ­   Q Q ¾   ÷ ú   ø Q Q ¾    >›  ù ø >› �ù ø =  › ÷ ú   ø Q ¾   ©  HF>™  ù ø Q Q ¾    ÷ ú ! " ø! Q# ¾ $ # ©% $ G >™ % ù ø" Q& ¾ ' & ©( ' I>™ ( ù ø ù ø ù ø =) ™ ‚* ½ F + &) * €, ¹ + - &, » . &- »A€/ • G. H=0 / P1  (‘2 0 1 Q3 2 ¼ 4 3 ÷5 ú4 6 5 ø6 þ(ø5 O 7 2 2 Q8 2 P 9 8 8 8 ˆ : 7 9 Q; : < ; º = < (¨ > = ÷? ú> @ A ø@ QB :  C B º D C (>� D ù? øA >� Mù? ø? = E � ¨ F E ÷G úF H I øH QJ : º K J (>Ÿ K ùG øI >Ÿ MùG øG = L Ÿ ÷M úL N M øN þ(øM O &- »A_P • GO F=Q P QR : …S R ¤�T S ¤QU : …V U ¤ƒW ¤V P-X T W O-Y Q Q O-Z Q Q …-[ X Z �-\ Y [ A§] • HH=^ ] O-_ Q Q …` ¤^ P-a ` ` �-b _ a O-c Q Q O-d Q Q �-e c d …f ¤^ P-g f f ƒ-h e g Qi ¶ ¼ j i ÷k új l m øl -n +\ b h Qo : 9p ûn o >¡ p ùk øm …q i ^ ùr ør ös u ùw øw =]x v ª_y `x › z y ÷{ úz s { ø{ Q| x ª } | H©~ } FHP] ~ F‚]€ x  >v € ùt øt =.� ¢ ³ ‚ � Ï÷ƒ ú‚ ƒ „ ø„ ùs øƒ ù… ø… >¤ Êù‡ ø‡ öˆ Š ùŒ øŒ =]� ‹ ª_Ž `� › � Ž ÷� ú� ˆ � ø� Q‘ � ª ’ ‘ H©“ ’ FHP]” “ F‚]• � ” >‹ • ù‰ ø‰ =.– ¤ ³ — – Ï÷˜ ú— ˜ ™ ø™ ùˆ ø˜ ùš øš =.œ ¤ o� œ =.ž ¢ oŸ ž P-  � Ÿ Ž-¡   q �-¢ \ ¡ -£ +¢ b h =¤ ¡ Q¥ : 9¦ û£ ¥ �§ ¤ ¦ >¡ § ù› ø› ùŠ øŠ =.¨ ¤ €.© ¨ Ï>¤ © ù‡ øˆ ù† ø† ùu øu =.ª ¢ €.« ª Ï>¢ « ùr øs =¬ ¡ ˆ­ ¬ ˜ >¡ ­ ùk øk ª ® © H÷¯ ú® ° ¯ ø° ± &± »A_² • F± G=³ ² =´ ¡ Qµ ³ Q¶ ³  · 1µ ¶ à ¸ .´ (· >¡ ¸ ù¯ ø¯ =¹ ¡ Qº ¶  » .(¹ º þ» 86 ¾ 7 ½ ø¼ A$¿ …HùÀ øÀ A§ ¿ IHH=à  A_Ä ¿ IH=Å Ä O Æ Å Å ”Ç Æ ½ �È Ã Ç A§É ¿ IFH=Ê É A_Ë ¿ IF=Ì Ë O Í Ì Ì ”Î Í ½ �Ï Ê Î A§Ð ¿ IGH=Ñ Ð A_Ò ¿ IG=Ó Ò O Ô Ó Ó ”Õ Ô ½ �Ö Ñ Õ P × È Ï Ö  Ø (× dþØ 86Ý Þ 7 Ú 7 Û 7 Ü øÙ A$ß …Hùà øà ÷á úÛ â á øâ Pã Ü (þã øá A7ä ß H=å ä Çæ å '« ç æ H© è Mç �÷é úè ê é øê 9 ë ¾ Ú Pì ë (þì øé þ¢86 ï 7 î øí ;-ù ú ;ˆó ô ;ˆ÷ ø ;ˆñ ò ;ˆõ ö ùû øû  ü î Qý ü Qþ ü ¾ ÿ ý þ ÷úÿ øQü Qü ¾ >ù ùø>ù �ùø= ù ÷ú øQ ü >ó Q î ¾  ÷ ú ø>ñ Qî >õ Qî >÷ ù ø>ñ (Qî >õ Qî >÷ ù ø ùø Qü Qü ¾ ÷úøQü >ó Qî ¾ ÷ ú!"ø!>ñ IQ#î >õ #Q$î >÷ $ù ø">ñ ¢Q%î >õ %Q&î '&>÷ 'ù ø ùøQ(ü >ó (Q)î ¾ *)÷+ú*,-ø,>ñ ð Q.î >õ .Q/î 0/>÷ 0ù+ø->ñ RQ1î 21>õ 2Q3î 43>÷ 4ù+ø+ùøùø=5ñ =6õ =7ó ˆ867�98(…:9¤=;÷ =<ó ˆ=;<�>=(…?>¤P @5:?þ@86 EF7B7 C7DøAAGHŸH=#I¢=J£ùMøMA7NHHG=ONÂPOD Q)PFpRQˆS¤RQTCƒU(S V+TSUQWCƒX(S Y+WSXQZC�[ZVˆ\[Kp]B�^]Yˆ_^LP-`\_paDVìbIJXcb`aO dccþd86 ij7f7 g7høe;-noAGkŸH=#l¢=m£ùpøpA7qkHF=rq s)rF‚tsFput v+hu w+v¿mxwpyxƒzvy9 {ï g9 |Ef{x¼ }z¨ ~}÷ú~€�ø€€‚xF® ƒ‚s>nƒùø�>nMùø= „n÷…ú„†…ø†þ|ø…ƒ‡(zŽ ˆ|‡€‰xF9 ŠEf{‰Ž ‹Šz� Œˆ‹þŒ86�‘7%Ž7 �ø�ù’ø’Q“ŽP”�(‘•“”O –••Q—ŽO ˜——Q™˜Qš– ›šƒœ™›Q�˜Qž– Ÿžƒ �ŸQ¡˜Q¢– £¢ƒ¤¡£ ¥% ¤ ¦%œ¥¸ §¦÷¨ú§©¨ø©þø¨QªŽQ«ªº ¬«¨ ­¬÷®ú­¯®ø¯þ(ø®Q°ŽQ±°ˆ²¦± ³%²(þ³86¸;7µ7¶7·ø´ùºøºº »¶÷¼ú»½¼ø½ƒ¾·µˆ¿¾¶þ¿ø¼¸ À¶÷ÁúÀÂÁøÂ÷ƒÄõˆÅĶþÅøÁþ¹86 ÊË7%Ç7 È7 ÉøÆùÌøÌQÍÇPÎÉ‘ÏÍÎO ÐÏÏQÑÇQÒÑÇÓÒFª ÔÓH÷ÕúÔÖÕøÖþÐøÕQ×ÇPØÈ(‘ÙרO ÚÙÙQÛÇO ÜÛÛQÝÚQÞÐQßÜ9à¸ÝÞßQáÚQâÐQãÜ9ä¸áâãQåÚQæÐQçÜ9è¸åæç é%äè ê%àé ë(êŽ ìÐë� íÚìQîÇO ïîîƒ ðíïþð86ö÷7 ò7 ó7ô7õøñ;ÿ;ˆü;ÿþ;Õûd;OýH;^aAGøŸH=#ù¢=ú£ùøA7øHH= &'A7øHF=  )F‚  Fp  … ô ù ø öùø=]ª_`› ÷úøQª H©FHP]F‚]>ùø=ý° ÷úøùøù ø =#ý %&#KA$&øF%=%'&Q('Q)(Â*õ)Ç+*Fª ,+H÷-ú,.-ø.ùø->þ'=%/þ90�/ò¼ 10÷2ú132ø3ùø2= 4ûQ5'Q65>'=%79 8Ê7òó9 9i68 Q:'Q;:Ž <9;Ž =<0� >4=>û>=?ü�@?0>ü@ù!ø!ùø=Aý€BAF>ýBù ø=Cüº DC(÷EúDFEøF= Gû=HüP IHHHˆ JGI>ûJ>ü(ùEøE= Kû=LüPMKLþM86RS7 O7 P7QøN;Õ\];ˆX;-Z[;ÕWd;ÿ^_;OYH;^laAGTŸH=#U¢=V£ù`ø`A7aTHH=ba c&b'A7dTHF=ed f)eF‚gfFùhøhöikùmøm=]nlª_o`n› po÷qúpiqøqQrnª srH©tsFHP]utF‚]vnu>lvùjøj=wY° xwc÷yúxyzøzùiøyù{ø{=}Y ~&}KA$TF~=%€Q�€Q‚�ƒQ‚Ç„ƒFª …„H¨ †…÷‡ú†ˆ‰øˆQŠ€Q‹Šª Œ‹H>ZŒù‡ø‰>ZMù‡ø‡= �Z÷Žú��Žø�ùkøŽ>^€=%�^9‘��O¼ ’‘÷“ú’”“ø”ùkø“Q•€O –••>\–Q—€Q˜—ª ™˜F÷šú™›šø›Qœ€Q�œQž€PŸP‘ žŸO ¡  9 ¢ï ¡9 £E�¢g>\£ùšøš= ¤W= ¥\Ž ¦¥‘� §¤¦>W§=¨X�©¨‘>X©ù|ø|ùkøk=ªY€«ªF>Y«ùhøi=¬Xº ­¬(÷®ú­¯®ø¯= °W=±XP ²±±±ˆ ³°²>W³>X(ù®ø®= ´W=µXP¶´µþ¶86º»7¸7¹ø·A¼½¬Hù¿ø¿ Á&¸¾„ÂÁ €Ã¹ Å&ÃÄA_ƽHÅ=ÇÆþÇ86>ÊË7=ÉøÈ;ÎÍÏA¼Ì¬HùÐøÐQÑÉQÒÉQÓÒQÔÑ9ÕºÔHŽÖÕÓQ×ÒQØÑ9ÙºØHŽÚÙ×�ÛÖÚQÜÒQÝÑ9ÞºÝHŽßÞÜ�àÛßQáÒQâÑ9ãºâHŽäãá�åàäA}æÍH>æåQçÒQèÑ9éºèFŽêéçQëÒQìÑ9íºìFŽîíë�ïêîQðÒQñÑ9òºñFŽóòð�ôïóQõÒQöÑ9÷ºöFŽø÷õ�ùôøA}úÍF>úùQûÒQüÑ9ýºüGŽþýûQÿÒQÑ9ºGŽÿ�þQÒQÑ9ºGŽ�Q ÒQ Ñ9 º GŽ   �  A}ÍG> =>Íþ867Cøùøý867@øùøý86øùøý86  7 øù!ø!Ž "   #(d  $#“Ž %$ƒ &%¼'•© ('"&þ(86 + 7 *ø)ù,ø,ˆ -* � .*ˆ /.  0/¼1*© 21-0þ2864ø3;³98A"5‚HA67óHù:ø:A§<7HH==<A§>7HF=?>ˆ@=?A_A5=BAO-CBBQDCA_E5=FEO-GFFQHG I(H(ˆJDIº KJ@÷LúKMNøMˆO@JAˆP9H>POùLøNˆQJ@AˆR9F>RQùLøLA§S7 =TSº UT¤÷VúUWVøWAˆX9F=YXA_Z5=[ZO-\[[Q]\…^Y]A§_7HF=`_ˆa^` ba¾ cb(÷dúcedøe=-f9A§g7HF=hg…ibhˆji^Ž-kfj>9kùdødùVøV= l°O-mllŽ-nmI=-o9…-pnoPqp¤(>¶qý86rs7t7uøvª wuH©xwFu‰ytxþy86{øz;†…‚A6|óH=#}ö=~÷ù‡ø‡=-ˆ¹A;‰|H=-Љ…-‹ˆŠ -Œ‹�-�ŒA;Ž|H=-�Žˆ-���Vì‘}~W’‘�O “’’Q”Œ •+”¿m–•9—r–Q˜Œ ™+˜¿mš™9›rš„œ›€�œ— ž&�»AˆŸ…ž= ŸA§¡|G=¢¡…£ ¢A§¤|F=¥¤ƒ¦L¥ §¦9 ¨ “Ž ©¨ƒP ª£££� «©ª  ¬+«d„P ­§§§ˆ ®¬­  ¯®Ž °¯§ˆ ±°„9 ²+±>Ú²ý861µ¶7´ø³ù·ø·Q¸´O ¹¸¸Qº´O »ººQ¼´O ½¼¼P1¾¹»½þ¾86ÁÂ7Àø¿ùÃøÃ91ĵÀT1ÅÄQÆÀO ÇÆÆ‘ ÈÅÇ ÉÈQ ÊÅPËÊQ ÌÅPÍÌQ ÎÅPÏÎPÐÉ(PÑËÍÏÐþÑ86ÓÔøÒA"Õ‚HùÖøÖA_×ÕI=Ø×A_ÙÕJ=ÚÙA_ÛÕK=ÜÛA_ÝÕ'=ÞÝPߨÚÜÞþß86-âã7-áøàùäøäQåáQæáƒç(æP-èåçþè86 êëøé;-ìí;-îïùðøð÷ñú�òóøò>ìMùñøó>ì�ùñøñ= ôì¨ õô÷öúõ÷øø÷>î�ùöøø>îMùöøö= ùîþù86 üý7ûøúA$þ…HùÿøÿA7þH=ÇG« HÇûu« H¥ þ86  771 øA" ‚Hù ø >Ã>Æ A€ H=9Á>É9Ó>ÊA€ H=’>ËA€ H=91µ’1 >ÌQO >ÍA€ H=QO P(‘ O !  >Î!A·"ÉG=#"O $##>Ï$ý86-.7 &7 '7(7-)7-*7+7,ø%;-/0ù1ø1>°&>³'O 2((>´2O 3((  4D'3Q5(Ž 645>µ69-7â)>¹79-8â*>¼8>½+|.9,>Â9>¶£÷:ú�;<ø;>/Mù:ø<>/�ù:ø:= =/÷>ú=?@ø?=AÃ= B°PCB(‘DACO EDD>°E=1FÆ= G³‘ HFG>³H=1IÆ= J´‘ KIJ>´K=1LÆ= Mµ‘ NLM>µNýø@ýø>ý86@UV7P7 Q7 R7S7TøO;CXYA"W‚HùZøZA€[WG=\[‘]\PA}^XH>^]÷_úM`_ø`=a¶A}bXH>baù_ø_O cPPAÕdXF>dc  eEQAÕfXG>fe=-g¹A³hX >hgAOiX>iT  jERPkjSA}lXI>lk=m½A}nXJ>nm=-o¼A³pXK>po=.q¾ .r*qÇ|srAOtX'>ts9uX=@vXþv86 xëøw;-yzù{ø{÷|úM}~ø}>y�ù|ø~>yMù|ø|= yþ86�‚ø€ùƒøƒ÷„ú�…„ø…=†É= ‡°Pˆ‡(‘‰†ˆþ‰ø„= аP‹Š(þ‹86 Ž 7 �øŒù�ø�÷�ú�‘�ø‘=’É91“µ’‘ ”“�þ”ø�þ�86˜™7–7 —ø•A$š…Hù›ø›A7œšH=�œÇž�G« ŸžH¥  Ÿ—©¡ F(…¢–¡þ¢86¦§7@¤7 ¥ø£;Õ¯°;Õ±²A"¨‚HA$©…HA6ªóH=#«ö=¬÷ù³ø³Q´¤9 µü´¥ ¶¥µ>ò¶>Ò¶Q·¤>Ñ·Q¸¤O-¹¸¸A_º¨=»ºO-¼»»…-½¹¼>ç½A€¾©H=¿¾A€À©F=ÁÀ91µÁ9à ¿ÂA€Ä¨H=ÅÄ91ƵÅQ Ǥ  ÈEÇ ÉÈQ ʤ  ËEÊPͶ¶¶© ÌÍËÉ>ðÌ>ñÌQ Τ>ïÎQϤO ÐÏÏ>¯Ð= ѯ= Ò¯”ÓÌÒŽ ÔÌÓƒ ÕÑÔ  ÖEÕ>¯Ö= ׯ  ØDÌ×QÙ¤QÚÙŽ ÛØÚA€Ü¨H=ÝÜQ Þ¤PßÞ(‘àÝßO áàà>°á= â°>Ðâ= ã°‘ äÆÌ  åEä>³å= æ³= 篑 èÆç  éEè>´é‘ êÆÛ  ëEê>µë= ì° íì  îEíA§ï¨ =ðïº ñð¤Póñññ© òó§î>ÕòQ-ô¤>¹ôQ-õ¤>¼õQö¤>½ö>Ö­>×(>ÚH>Û(>Ü(>Ý(>Þ>ߤ>à(>á>â>ãd>ä(>å>æd9÷¤9ø{T1ùÆ= ú³¶ûúæš üû÷ýúüþýøþ= ÿ³‘ ùÿ  E>ñùýøý= Ö¶­š ÷úø= Ö>±= ±O- Ž-  Iƒ-  ®P  >± = ±O-  = ±O-”ƒ( ( Aˆ±G>= ³= ´Aˆ±H=Ž = µAˆ±F=Ž � = ³Aˆ!±G="!Ž # "� $#=%×P '%%%  &.$'  (E&>³(= )³‘ *ù)  +E*>ñ+ùø= ,ж-,ãš .-÷/ú.01ø0=2É= 3ÐP43(‘524O 655>ï6ýø1ýø/ý86 9ý78ø7;-:;;-<=ù>ø>Ç?8G« @?H÷Aú@BAøBþMøA÷Cú�DEøD= Fò>:FùCøE>:�ùCøC= G:÷HúGIHøIþMøH÷Jú�KLøK=MÛ=Nܸ OMN><OùJøL><�ùJøJ= P<þP86 S 7 RøQA"T‚HùUøUA§VTHHG=WVA§XTHFG=YXA§ZTHGG=[ZP \WY[A_]T =^]O _^^ƒ `_R  aE`  bE\A§cT =dcº ed¤Pgeee© fgbaþf86jµ7iøhùkøkƒl(i m+l(…nmm…onn…pomþp86vw7r7s7t7uøqùyøy z(r÷{ú�|{ø|�}ru�~(u�(u…€~ˆ�}€ ‚(�…ƒ‚xþƒø{÷„ú�…„ø…†u ‡(u³ ˆ1†‡r…‰ˆxþ‰ø„÷Šú�‹Šø‹…ŒIt…�Œt…Ž�uƒ�ޤ9�js…‘���’(‘9“jz…”�“�•(”…–x’…—–•…˜—zþ˜øŠ…™zxþ™86 ¤¥7 ›7 œ7 �7 ž7 Ÿ7  7¡7¢7£øš;Õ¦§;ˆ¨©;-ª«ù¬ø¬”­›� ®%­(”¯›œ °(¯<� ±�œ  ²E±”³�² ´+³(9µv®°´¢Ž ¶Ÿµ… ·¶ž>¦·º ¸¢÷¹ú¸º¹øº÷»ú�¼½ø¼  ¾G�› ¿¾  ÀE¿”ÁÀœƒÂ(¢>¨Â=è=Ĩ…ÅÃÄ>¨Å= Ʀ… ÇŸž=Ȩ…É¢¤ƒÊÈÉ=˨…Ì¢¤�ÍËÌ Î1ÊÍÁ=Ϩ…ÐÎÏ…ÑÐ£Ž ÒÇÑ� ÓÆÒ>¦Óù»ø½÷Ôú�ÕÖøÕº ×®>ª×ùÔøÖ>ª�ùÔøÔ= ت÷ÙúØÚÙøÚ”Û›² Ü(۔ݜ² Þ(Ý9 ßP Þ= à¦9á,Ü¡9â:®°¡…ãá⎠äßã…å£®Ž æäå… çæž� èàç>¦èùÙøÙù»ø»ù¹ø¹= é¦þé86íî7ë7 ìøê;ˆðñAÛïˆHùòøò ó&ë¾Aæôïó=õôQöõQ÷öª ø÷H÷ùúøúùøúQûõO üûû ýüPþý(þþøùQÿõO ÿÿƒ ì B (P ˆ QõQQõQ 9 j  >ð Q õQ  ª  G÷ú øQõQ QõO ” (ƒ(ƒ( (ˆ (<=ðQõQ ƒ (…! >ð!ùø="ðP#"þ#86'(7%7 &ø$;-./A")‚HAÛ*ˆHA” +‹H=,Ž=-�ù0ø0÷1ú�23ø2 4&%¾A75*4F=65« 76F>.7ù1ø3>.Mù1ø1= 8.÷9ú8:9ø:þ(ø9= ;ï= <ð9=� %;<&þ=86 EF7 ?7 @7 A7 B7C7Dø>;ÕWX;ÕQR;ÕUV;ÕOP;ÕYZ;ÕSTA$G…HAÛHˆHA;I’H="J•=K™AGLŸH=#M¢=N£ù[ø[= \ï”]?@ ^(]<ƒ_(CP `___  a(`Bƒ baBƒc(^ dcRŽ ebd� fBe9gÝ ?�dA7hIHH=ihÇji'« kjH÷lúkmnømA§oI'H=poA§qIJ =rq…sprA_tIK=utO vuu>QvA7wIHH=xwÇyx« zyH÷{úz|{ø|A_}IK=~}O ~~9 €:?9 �€Ž ‚�sA§ƒIK =„ƒP †„„„  ….‚†>Q…ù{ø{Q‡gº ˆ‡÷‰úˆŠ‰øŠO ‹gg>Q‹ù‰ø‰A_ŒIK=�ŒO Ž��>SŽA7�IHH=��Ç‘�L« ’‘H÷“ú’”•ø” –@  —G–?9 ˜:—9 ™ƒ˜CŽ š™s>Sšù“ø•A7›IHH=œ›Ç�œ« ž�H÷Ÿúž Ÿø >SdùŸøŸù“ø“9-¡•C^A7¢LHH=£¢¬ ¤£H÷¥ú¤¦§ø¦ ¨@  ©G¨?A7ªGG=«ª9¬ö\©C«= ­SQ®¬ƒ¯(®Ž °­¯O ±¬¬� ²°±= ³Q>U³Q´g¼ µ´÷¶úµ·¶ø·A7¸GG=¹¸9ºR\?¹= »QQ¼ºƒ½(¼Ž ¾»½O ¿ºº� À¾¿>UÀù¶ø¶= ÁU… ÂAÁQÃ¡Ž ÄBÃQÅ¡QÆB…ÇƒÆ È+ÇD(…ÉÅÈP ÊÉÉÉ� ËÄÊ… ̲Ë� ÍÂÌ>OÍù¥ø§= ÎQ… ÏAÎ= ÐSQÑ¡Ž ÒBÑQÓ¡QÔB…ÕƒÔ Ö+ÕD(…×ÓÖP Ø×××� ÙÒØ… ÚÐÙ� ÛÏÚ>OÛù¥ø¥ùlønA7ÜHHF=ÝÜÇÞÝG« ßÞH÷àúßáâøáA_ãH =äãO åääA_æH=çæO èççA_éHI=êéO ëêê� ìèëŽ íì¤A_îHJ=ïîO ðïïA_ñHK=òñO óòò� ôðóŽ õô¤”ö?å…÷ö¤�ø÷¤ ù+ø(P ûùùù  ú.õíû ü@  ýGü?9 þýP CCC  ÿ.þíA7LHH=¬ H÷úø @  G?A7 GG=  9 ö\C A§ HF =  Ž ÿ Q ƒ(Ž O   � O gg>WQg¼ ÷úøA7GG=9R\?A§HF =Ž úQƒ (Ž ! O "� #!">W#ùø= $W… %A$… &f� '%&>O'ùøQ(gº )(÷*ú)+,ø+O -gg… .A-… /ÿfA§0HF =10Ž 2/1� 3.2>O3ù*ø,… 4Aú… 5ÿf� 645A§7HF =87Ž 968>O9ù*ø*ùøùàøâA7:LHH=;:¬ <;H÷=ú<>?ø> @@  AG@?A7BGG=CB9Dö\ACCA_EHF=FEO GFFQHDƒI(HŽ JGIO KDD� LJKO Mgg>YMQNg¼ ON÷PúOQPøQA7RGG=SR9TR\?SA_UHF=VUO WVVQXTƒY(XŽ ZWYO [TT� \Z[>Y\ùPøP= ]Y… ^A]… _Lf� `^_>O`ù=ø?Qagº ba÷cúbdeødO fgg… gAfA_hHF=ihO jii… kjf� lgk>OlùcøeA_mHF=nmO onn� pAf… qop>Oqùcøcù=ø=ùàøàùløl= rOþr86 vÀ7 t7 uøs;Õ~A"w‚HA$x…HAÛyˆHA;z’H="{•=|™A®}©Hù€ø€>~t÷�úM‚�ø‚= ƒ~þƒø�A7„zHH=…„dž…u« ‡†H÷ˆú‡‰ˆø‰= Š~= ‹ï Œu9 �Š‹Œ>~�ùˆøˆA7ŽxJ =�Ž« ��H÷‘ú�’‘ø’= “~= ”ïA7•xJ =–•9 —= “”–>~—ù‘ø‘= ˜~þ˜86 ›œ7šø™;-º»;-´µ;L°±;Õ¼d;Õ¶·;Õ²d;-½¾;-¸¹;O³H;^a;LÑA"�‚HA$ž…HAÛŸˆHA”  ‹H=¡Ž=¢�A;£’H="¤•=¥™=#¦›AG§ŸH=#¨¢=©£A ª¤H=$«§=¬¨A®­©Hù¿ø¿= Àð= ÁÚ=ÂÞ Ã+Â(=Äà Å+ÄJ(=Æä= Çñ= ÈæP ,ÉÁÃÅÆÇÈ>°ÉA7ÊžJG=Ëʬ ÌËH÷ÍúÌÎÍøÎ= Ïï=,а>ÑÐ=,ÒÑ9,Ó?ÏÀÒ>°ÓAÕÔ°H= ÕÔ>ÚÕAˆÖ°F=×Ö>Þ×AˆØ°G=ÙØ>àÙA€Ú�H=ÛÚ91ܵÛAÕݰ= ÞÝ‘ ßÜÞ  àEß>³àùÍøÍAˆá°F=âáAˆã°G=äã…åää…æåä…çæäAÕè°H= éèƒê(⎠ëéê=ìß…í®ì=îß…ïíîP ðïïïP òâââ  ñ.ðéòAÕó°= ôó= õï9 öSõA€÷�H=ø÷91ùµøAˆú° =ûú=üå ý.(ûü>íd>îd9þ²ùÿøÿöùø=]ª_`› ÷úøQ ª  H©  FHP]  F‚]  > ùø=³° þ÷úøùøùø=³9» &¾AæŸ== ï9íO Q÷ú�øQQ ª ! H¨ "!÷#ú"$%ø$º &>´&ù#ø%>´Mù#ø#= '´÷(ú')(ø)‘ *ù  +E*>é+Q,O -,,>ê-9.'…/.>ì/Q0Q10ª 21H>ë2Q3Q43>è495ù(ø(ùø=6Ạ76÷8ú798ø9”:ôö ;(:<ƒ<(; =(<<ƒ>(ä…?>¯ @(? A=@= B²QCO DCC… EëD=Fá…GAFŽ HEG=IâP KIII  J.HéK… LHJ� MBL>²Mù8ø8º N÷OúNPOøPQQO RQQŽ SR>¶SQTQUTª VUF÷WúVXYøX>¸�ùWøY>¸�ùWøW= Z¸÷[úZ\[ø\Q]O ^]]= _ï9`� _À…a`Ž b^a>¶bù[ø[÷cúMdeød>º�ùcøe>º�ùcøc= fº÷gúfhiøh= j²= k¶QlQml9 nbôökëñçm� ojn>²oùgøi= p²= q¶QrQsr9 t¤ôöqëñçäs� upt>²uùgøg= vãºwvdš xw÷yúxzyøz”{ô |%{( }(|= ~²= ¶… €ë= �ã… ‚€�…ƒ}xƒ„xƒŽ …‚„� †~…>²†ùyøyùOøOùøùø=‡³€ˆ‡F>³ˆùÿø÷‰ú�Š‹øŠ= Œí… �ŒéŽ Ž�ýƒ�(⎠�Ž�= ‘îŽ ’‘ý� “�’>²“ù‰ø‹=”åº •”÷–ú•—–ø—= ˜²Ž ™˜ý>²™ù–ø–ù‰ø‰÷šú�›šø›9 œEôöëñäâ>¼œùšøšA7�ŸHF=ž�ÇŸž«  ŸH÷¡ú ¢£ø¢9 ¤ê¨ ¥¤>½¥ù¡ø£>½�ù¡ø¡= ¦½÷§ú¦¨©ø¨O-ªšš -«ª -®+«¬­n2¯®j.°¦‚.±°Ï .²&DZg2³¦²‚2µ³´ 2¶&¯µ_·¦¶²Q¸·= ¹²Aˆº° =»º ¼%¸»A§½ŸGG=¾½A§¿ŸG =À¿…Á¾À Â.(¼ÁŽ Ã¹Â>²Ã= IJ= żAˆÆ° =ÇÆ È%Ç¸Ž ÉÅÈ� ÊÄÉ>²Êù§ø©= ˲= ̼AˆÍ° =ÎÍŽ ÏÌÎ� ÐËÏ>²Ðù§ø§= ѲAÕÒ°I= ÓÒ� ÔÑÓ>²Ô= Õ²9 ÖvÕö9 ×_Öþ×86ÚÛ7 ÙøØ;ÕÞßA"Ü‚HAÛ݈Hùàøà>ÞÙ÷áú�âáøâ= ãÞ=äÝŽ åãä>Þåùáøá= æÞ=çÛ9 èê©éèç(PêæéA7ëÝHF=ìëÇíì'« îíH÷ïúîðïøðO ñêê  ò(ñdQóê ô+ó(Põòôþõøï ö+ꢣA7÷Ü G=ø÷ÇùøG« úùH÷ûúúüûøüO ýöö9 þ‘ýQÿöPþÿþøûþö86 Íø=#—=™=š=$œ=ž=#¯ù ø Vì X  O   o ÇP  V6XO �  VìXO � þ86?ø= = =- =#!=&$=)'P / #&)=-+*=-,A"@‚HA$A…HA6BóHùCøCA€DAH=EDA€FAF=GF91HµG9I EH>¾Ç>Á¢Q JQ KQLQ-M9 N-JKLM+£-9O4QPQQP9R˜Q�9 Sx÷TúSUTøU9V�= W³9 XŽW= Y´9 ZŽYQ[9 @\UVXZR[Q]\>.]A^_.F=`_a`>_aQ b\>0bQ c\>2cQ-d\>3dQe\>5eQf\>7fQg\>8gQ-h\>9hQi\>:iQj\ >;jQk\ ><kQl\ >=lQm\ >>mýøTA€nAH=on= p°Pqp(‘roqA€sAF=ts= u³Pvu‘wtvO xwwA€yAH=zy= {´P|{‘}z|O ~}}Q9 @€Urx~RQ�€>.�A^‚.F=ƒ‚„ƒ>‚„Q …€>0…Q †€>2†Q-‡€>3‡Qˆ€>5ˆQ‰€>7‰QŠ€>8ŠQ-‹€>9‹QŒ€>:ŒQ�€ >;�QŽ€ ><ŽQ�€ >=�Q�€ >>�ý86¾ø‘= ”“= –•=-˜—=š™=œ›=ž�P /’”–˜šœž=¡ =£¢=¥¤=§¦P0Ÿ¡£¥§=-©¨=¬«=®­P?ª¬®=°¯A"¿‚HA$À…HA6ÁóHùÂøÂQßQÄÃQÅŸQÆÅQÇŸQÈÇP ÉÄÆÈQÊŸQËÊQÌŸQÍÌQΟQÏÎP ÐËÍÏQÑŸQÒÑQÓŸQÔÓQÕŸQÖÕP ×ÒÔÖ  ØDÐ×”ÙÉØ¸ ÚÙ  ÛDÐ×  ÜD×É  ÝDÉÐP1ÞÛÜÝ©ßÚF(�1àÞßPáÉPâÐPã×QäŸQåäQæŸQçæQèŸQéèPêåçé(PëáâãêA€ìÀH=íì’îíëA€ïÀF=ðï91ñµð’1òñà9ó îòQôª õ+ôúûn.öõ>¾öQ÷ª>Á÷Q ø’Q ù’Qú’Q-û’QüŸ9 ý-øùúû©ü°9þ4Qÿ’©ÚuHÅÿQ’Q9˜Ú9 x÷úø9�= ³9 Ž = ´9 Ž 9 @ U  Q >±A^±F=>Q  >²Q  >³Q- >´Q >µQ >¶Q >·Q- >¸Q >¹Q  >ºQ  >»Q  >¼Q  >½ýø= °P(Q Ÿ”! Q"Ÿ”#"Q$Ÿ”%$P &!#%A€'ÀH=('P)&(‘*()A€+ÀF=,+= -³‘ .à-P/.‘0,/O 100A€2ÀH=32P14ÉÐ×= 5´‘ 645P76‘837O 9889 @:U*19Q;:>±;A^<±F==<>=><>Q ?:>²?Q @:>³@Q-A:>´AQB:>µBQC:>¶CQD:>·DQ-E:>¸EQF:>¹FQG: >ºGQH: >»HQI: >¼IQJ: >½Jý86pøK= NM= PO=-RQ=TS=VU=XWP /LNPRTVX=\Z=^]P=Y\^=-`_=baA"q‚HA$r…HA¼s¬HA6tóHùuøu9>vÊYQ wLPxw(Qyv”zyxQ{v”|{xQ}v”~}xP z|~Q€vQ�€Q‚vQƒ‚Q„vQ…„P †�ƒ…Q‡vQˆ‡Q‰vQЉQ‹vQŒ‹P �ˆŠŒQŽvQ�ŽQ�vQ‘�Q’vQ“’P ”�‘“  •D�””–†•¸ —–  ˜D�”  ™D”†  šD†�P1›˜™šQ œL‘ �›œ©ž—F(Ž Ÿ�ž   EŸP1¡†�”Q¢LO £¢¢‘ ¤¡£  ¥E¤A€¦rH=§¦A€¨rF=©¨91ªµ©9« §ª>¾Ç>Á¢Q¬LQ­¬P®¥­Q-¯L9 °- ®¯`£b9±4Q²L©³—uHÅ´²³QµLQ¶µ9·˜¶—9 ¸x÷¹ú¸º¹øº9»�= ¼³9 ½Ž¼= ¾´9 ¿Ž¾9 @ÀU»½¿·´QÁÀ>cÁA^ÂcF=ÃÂÄÃ>ÂÄQ ÅÀ>dÅQ ÆÀ>eÆQ-ÇÀ>fÇQÈÀ>gÈQÉÀ>hÉQÊÀ>iÊQ-ËÀ>jËQÌÀ>kÌQÍÀ >lÍQÎÀ >mÎQÏÀ >nÏQÐÀ >oÐýø¹A€ÑrH=ÒÑ= Ó°PÔÓ(‘ÕÒÔA€ÖrF=×Ö= سPÙØ‘Ú×ÙO ÛÚÚA€ÜrH=ÝÜ= Þ´PßÞ‘àÝßO áàà9 @âUÕÛá·´Qãâ>cãA^äcF=åäæå>äæQ çâ>dçQ èâ>eèQ-éâ>féQêâ>gêQëâ>hëQìâ>iìQ-íâ>jíQîâ>kîQïâ >lïQðâ >mðQñâ >nñQòâ >oòý86øó;Õ-.=öõ= ø÷= úù=-üû=þý=ÿ==-===  =  = P@ôöøúüþ  = A"‚HA$…HAÛˆHA” ‹H=Ž=�A;’H="•=#—=™=š=#›=$ œ=!žAG"ŸH=##¢=$£A %¤H=$&§='¨A®(©H=#)¯A6*óH=#+ö=,÷ù/ø/90¦ôQ1ô9 291÷3ú243ø4üø3Q 5ôQ6ôO-76698Ò57¼ 98÷:ú9;:ø;üø:÷<úM=>ø== ?Ú= @ï9 AS@9 Bv?A9 C_B>-Cù<ø>QDô9 E›D>-Eù<ø<A7FH =GFª HGQ÷IúHJIøJ= K-9 L� MKL>-MùIøIA7N H=ONª PO'÷QúPRQøR= S-9 T&S9 UT8>-UùQøQ= V-9WÚV>Wý86vøX;-}~;-€=[Z= ]\= _^=-a`=cb=ed=gf=-ih=kj=ml=on=qp=srP@Y[]_acegikmoqs= utA"w‚HA$x…HA6yóH=#zö={÷ù�ø�9‚¦YuQƒYÇ„ƒG« …„H¨ †…÷‡ú†ˆ‰øˆ÷Šú�‹Œø‹=�Û=Žܸ ��Ž>�ùŠøŒ>�ùŠøŠ= �>}�ù‡ø‰>}Mù‡ø‡= ‘}÷’ú‘“’ø“üø’Q ”Y9•Ò”|¼ –•÷—ú–˜™ø˜üø™ýø—ý86¹øš;-ÀÁ;ÃÂÄ=�œ= Ÿž= ¡ =-£¢=¥¤=§¦=©¨=-«ª=­¬=¯®=±°=³²=µ´P@›�Ÿ¡£¥§©«­¯±³µ= ·¶A"º‚HA$»…HA6¼óH=#½ö=¾÷ùÅøÅ9Ʀ›·QÇ›9 È9Ǩ ÉÈ÷ÊúÉËÌøËQ Í›QΛO-ÏÎÎ9ÐÒÍϼ ÑÐ>ÀÑùÊøÌ>ÀMùÊøÊ= ÒÀ÷ÓúÒÔÓøÔüøÓA7Õ» G=ÖÕA7×» H=Ø×ª ÙØF©ÚÙFHA7Û» F=ÜÛª ÝÜF©ÞÝGHÅßÚÞÇàÖ€páàÂâÖ'Çãâ€päãÂåÖÇæå€pçæpèßPéáäçèˆêé¿A}ëÂH>ëê=AìÂQíì>¸íý86øî;-;=ñð= óò= õô=-÷ö=ùø=ûú=ýü=-ÿþ===== P@ïñóõ÷ùûýÿ =  A"‚HA$…HA6óH=#ö=÷ùø9¦ï Qï9 9¨ ÷ú øQ !ïQ"ïO-#""9$Ò!#¼ %$>%ùø >Mùø= &÷'ú&('ø(üø'A€)H=*)91+µ*= ,ñ‘ -+,  .E-=/Þ 0+/(=1ß…2®1=3ß…423P 5444= 6ÚP 8000  7.568A€9H=:9Q ;ïP<;(‘=:<Q>=?>P@.?A}AH>A@  B+7dH=Cà D+CJ(PEBDA}FF>FE=EGQHG> HQIG> Iý8 @Ð Ð/ ,@ ˜J£&ѰA¬ËÎ-”ÒÑ'‰nÛgnW_7hh'·ÊË$hedra_shaders/world/d7497308fcdf87bcjÔªõ7BTSR Ø�Ø�ÜŸçÆ ÃfÇh†Miï, proj: mat4x4, view_proj: mat4x4, camera_pos: vec4, viewport: vec4, wire_color: vec4, select_color: vec4, active_color: vec4, grid: vec4, params: vec4, fparams: vec4, } struct ObjectU { model: mat4x4, normal: mat4x4, color: vec4, params: vec4, extra: vec4, gi: array, 3>, decals: vec4, lights: vec4, } struct LightU { color: vec4, position: vec4, direction: vec4, spot: vec4, info: vec4, } struct LitU { counts: vec4, ambient: vec4, tone: vec4, up: vec4, sky_top: vec4, sky_horizon: vec4, ground_horizon: vec4, ground_bottom: vec4, inv_view_proj: mat4x4, dirs: vec4, lights: array, } struct ShadowLightU { params: vec4, splits: vec4, fade: vec4, info: vec4, } struct ShadowTileU { view_proj: mat4x4, rect: vec4, texel: vec4, } struct ShadowU { atlas: vec4, lights: array, tiles: array, } struct SunU { direction: vec4, color: vec4, } struct SkyU { flags: vec4, to_sky: mat4x4, sky_top: vec4, sky_horizon: vec4, ground_bottom: vec4, ground_horizon: vec4, sun: vec4, ambient: vec4, ibl: vec4, fog_color: vec4, fog: vec4, fog_depth: vec4, fog_origin: vec4, suns: array, sh: array, 9>, } struct ProbeEntryU { to_local: mat4x4, extents: vec4, offset: vec4, ambient: vec4, info: vec4, } struct ProbeU { counts: vec4, probes: array, } struct DecalEntryU { to_local: mat4x4, modulate: vec4, fades: vec4, axis_x: vec4, axis_y: vec4, axis_z: vec4, layers: vec4, flags: vec4, } struct DecalU { counts: vec4, lod: vec4, entries: array, } struct DecalSurface { base: vec3, metallic: f32, roughness: f32, occlusion: f32, normal: vec3, emission: vec3, } struct VsIn { @location(0) pos: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, } struct InstIn { @location(6) row0_: vec4, @location(7) row1_: vec4, @location(8) row2_: vec4, @location(9) color: vec4, } struct FogEntryU { to_local: mat4x4, size: vec4, material: vec4, albedo: vec4, emission: vec4, lights: vec4, } struct FogU { counts: vec4, params: vec4, ambient: vec4, up: vec4, light_fog: array, 16>, entries: array, } struct SkinU { rows: array, 765>, } struct SkinIn { @location(12) joints: vec4, @location(13) weights: vec4, } struct SkinRows { r0_: vec4, r1_: vec4, r2_: vec4, } struct HedraInstExtra { @location(14) custom: vec4, @location(15) id: f32, } struct CustomOut { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) color: vec4, @location(6) uv2_: vec2, @location(7) @interpolate(flat) instance_id: u32, @location(8) hedra_v0_: vec4, @location(9) hedra_v1_: vec4, @location(10) hedra_v2_: vec4, @location(11) hedra_v3_: vec4, } struct IdOut { @location(0) id: vec4, } struct HedraParams { albedo: vec4, uv_scale: vec2, uv_offset: vec2, uv_scroll: vec2, alpha_cut: f32, hedra_pad0_: f32, snap_resolution: vec2, affine_strength: f32, affine_near: f32, sun_direction: vec3, hedra_pad1_: f32, sun_color: vec3, hedra_pad2_: f32, sky_ambient: vec3, hedra_pad3_: f32, ground_ambient: vec3, light_bands: f32, emission: vec3, overbright: f32, } struct HedraNormalDepthOut { @location(0) normal_depth: vec4, @location(1) surface: vec4, } const OBJ_HAS_WEIGHTS: u32 = 1u; const OBJ_MIRRORED: u32 = 2u; const SHADE_SOLID: u32 = 0u; const SHADE_MATCAP: u32 = 1u; const SHADE_NORMALS: u32 = 2u; const SHADE_FACE_ORIENT: u32 = 3u; const SHADE_RANDOM: u32 = 4u; const SHADE_MATERIAL: u32 = 5u; const SHADE_UV_CHECKER: u32 = 6u; const SHADE_WEIGHTS: u32 = 7u; const SHADE_LIT: u32 = 8u; const SHADE_LIGHTMAP: u32 = 9u; const SHADE_LIGHT_COUNT: u32 = 10u; const OV_SELECTION: u32 = 1u; const OV_SEAMS: u32 = 2u; const OV_SHARP: u32 = 4u; const F_SELECTED: u32 = 1u; const F_HIDDEN: u32 = 2u; const F_SEAM: u32 = 4u; const F_SHARP: u32 = 8u; const F_MESH: u32 = 16u; const F_FADE: u32 = 32u; const F_NO_PULL: u32 = 64u; const SPEC_TEX_BASE: bool = true; const SPEC_TEX_NORMAL: bool = true; const SPEC_TEX_MR: bool = true; const SPEC_TEX_EMISSION: bool = true; const SPEC_TEX_OCCLUSION: bool = true; const SPEC_VERTEX_COLOR: bool = true; const SPEC_EXT: bool = true; const SPEC_UNLIT: bool = true; const SPEC_ALPHA_MASK: bool = true; const SPEC_ALPHA_BLEND: bool = true; const SPEC_CLEARCOAT: bool = true; const SPEC_SHEEN: bool = true; const SPEC_TRANSMISSION: bool = true; const SPEC_IRIDESCENCE: bool = true; const SPEC_ANISOTROPY: bool = true; const SPEC_DIFFUSE_TRANSMISSION: bool = true; const SPEC_VOLUME: bool = true; const SPEC_DISPERSION: bool = true; const SPEC_EXT_LAYERS: bool = true; const SPEC_ROUGHNESS_LAYER: bool = true; const SPEC_LIT: bool = true; const SPEC_LIGHTS: bool = true; const SPEC_SHADOWS: bool = true; const SPEC_DECALS: bool = true; const SPEC_FOG: bool = true; const SPEC_FOG_VOLUMES: bool = true; const SPEC_PROBES: bool = true; const SPEC_PROBE_GI: bool = true; const SPEC_SSAO: bool = true; const SPEC_SCREEN_REFRACTION: bool = true; const SPEC_EMERGE: bool = true; const SPEC_FADE: bool = true; const SPEC_FACE_FLAGS: bool = true; const SPEC_AMBIENT_FLAT: bool = true; const SPEC_AMBIENT_GRADIENT: bool = true; const SPEC_AMBIENT_SKY: bool = true; const SPEC_MATERIAL_MODE: bool = true; const SPEC_OTHER_MODES: bool = true; const PI: f32 = 3.1415927f; const TAU: f32 = 6.2831855f; const E: f32 = 2.7182817f; const HEDRA_BLEND_MIX: u32 = 0u; const HEDRA_BLEND_PREMUL_ALPHA: u32 = 4u; const HEDRA_CULL_FRONT: u32 = 1u; const HEDRA_DIFFUSE_LAMBERT: u32 = 0u; const HEDRA_DIFFUSE_LAMBERT_WRAP: u32 = 1u; const HEDRA_DIFFUSE_BURLEY: u32 = 2u; const HEDRA_DIFFUSE_TOON: u32 = 3u; const HEDRA_SPECULAR_SCHLICK_GGX: u32 = 0u; const HEDRA_SPECULAR_TOON: u32 = 1u; const HEDRA_SPECULAR_DISABLED: u32 = 2u; const HEDRA_ENCODE_SRGB: u32 = 2u; const HEDRA_NEVER: u32 = 4294967295u; const MAX_FRAME_LIGHTS: u32 = 64u; const MAX_OBJECT_LIGHTS: u32 = 8u; const MAX_SHADOW_LIGHTS: u32 = 16u; const MAX_POOL_DIRECTIONAL: u32 = 8u; const LIGHT_COUNT_COLORS: array, 10> = array, 10>(vec3(0.352941f, 0.352941f, 0.352941f), vec3(0.168627f, 0.247059f, 0.6f), vec3(0.129412f, 0.4f, 0.67451f), vec3(0.101961f, 0.623529f, 0.721569f), vec3(0.121569f, 0.631373f, 0.529412f), vec3(0.301961f, 0.733333f, 0.352941f), vec3(0.65098f, 0.831373f, 0.227451f), vec3(0.94902f, 0.784314f, 0.058824f), vec3(0.94902f, 0.556863f, 0.058824f), vec3(0.878431f, 0.129412f, 0.541176f)); const LIGHT_DIRECTIONAL: u32 = 0u; const LIGHT_OMNI: u32 = 1u; const LIGHT_SPOT: u32 = 2u; const LIGHT_BAKE_DISABLED: u32 = 0u; const LIGHT_BAKE_STATIC: u32 = 1u; const LIGHT_BAKE_DYNAMIC: u32 = 2u; const TONEMAP_LINEAR: u32 = 0u; const TONEMAP_REINHARD: u32 = 1u; const TONEMAP_FILMIC: u32 = 2u; const TONEMAP_ACES: u32 = 3u; const TONEMAP_AGX: u32 = 4u; const ENV_SKY: u32 = 1u; const ENV_AMBIENT_SKY: u32 = 2u; const ENV_SSAO: u32 = 4u; const ENV_HDR: u32 = 8u; const ENV_SCREEN_REFRACTION: u32 = 16u; const LIGHT_SHADOWED: u32 = 1u; const LIGHT_BAKED_STATIC: u32 = 1u; const SHADOW_TILES: u32 = 16u; const SKY_DRAW_PROCEDURAL: u32 = 1u; const SKY_DRAW_PANORAMA: u32 = 2u; const SKY_PANORAMA_FILTER: u32 = 4u; const SKY_IBL: u32 = 8u; const SKY_AMBIENT_SKY: u32 = 16u; const SKY_REFLECT_RADIANCE: u32 = 32u; const SKY_REFLECT_OFF: u32 = 64u; const SKY_FOG: u32 = 128u; const SKY_FOG_DEPTH: u32 = 256u; const SKY_SUNS: u32 = 4u; const OBJ_LIGHTMAP: u32 = 4u; const OBJ_PROBE_GI: u32 = 8u; const PROBE_BOX: u32 = 1u; const PROBE_INTERIOR: u32 = 2u; const MAX_PROBES: u32 = 8u; const PROBE_AMBIENT_DISABLED: u32 = 0u; const PROBE_AMBIENT_ENVIRONMENT: u32 = 1u; const PROBE_AMBIENT_CONSTANT_COLOR: u32 = 2u; const MAX_FRAME_DECALS: u32 = 64u; const MAX_OBJECT_DECALS: u32 = 8u; const DECAL_LIVE_ALBEDO: u32 = 1u; const DECAL_LIVE_NORMAL: u32 = 2u; const DECAL_LIVE_ORM: u32 = 4u; const DECAL_LIVE_EMISSION: u32 = 8u; const F_INSTANCE_MIRRORED: u32 = 128u; const OBJ_EMERGE: u32 = 32u; const EMERGE_SCALE: f32 = 1.3f; const EMERGE_EDGE: f32 = 0.8f; const EMERGE_DITHER: f32 = 0.12f; const OBJ_FADE: u32 = 64u; const MAX_FRAME_FOG_VOLUMES: u32 = 16u; const MAX_OBJECT_FOG_VOLUMES: u32 = 4u; const FOG_SHAPE_ELLIPSOID: u32 = 0u; const FOG_SHAPE_CONE: u32 = 1u; const FOG_SHAPE_CYLINDER: u32 = 2u; const FOG_SHAPE_BOX: u32 = 3u; const FOG_SHAPE_WORLD: u32 = 4u; const FOG_SKY_DISTANCE: f32 = 1000000f; const FOG_LIST_ALL: u32 = 2147483648u; const FOG_GL_X0_: f32 = 0.8611363f; const FOG_GL_X1_: f32 = 0.339981f; const FOG_GL_W0_: f32 = 0.3478548f; const FOG_GL_W1_: f32 = 0.6521452f; const OBJ_SKINNED: u32 = 16u; const SKIN_JOINTS: u32 = 255u; const HEDRA_UNSHADED: bool = true; const HEDRA_HAS_LIGHT: bool = false; const HEDRA_USES_POSITION: bool = false; const HEDRA_SKIP_VERTEX_TRANSFORM: bool = true; const HEDRA_WORLD_VERTEX_COORDS: bool = false; const HEDRA_AMBIENT_LIGHT_DISABLED: bool = false; const HEDRA_FOG_DISABLED: bool = false; const HEDRA_SHADOWS_DISABLED: bool = true; const HEDRA_ALPHA: bool = true; const HEDRA_ALPHA_SCISSOR: bool = true; const HEDRA_DIFFUSE: u32 = 0u; const HEDRA_SPECULAR: u32 = 2u; const HEDRA_BLEND: u32 = 0u; const HEDRA_CULL: u32 = 2u; @group(0) @binding(0) var G: Globals; @group(1) @binding(0) var O: ObjectU; @group(0) @binding(1) var Lit: LitU; @group(0) @binding(2) var Shadow: ShadowU; @group(0) @binding(3) var t_shadow: texture_depth_2d; @group(0) @binding(4) var s_shadow: sampler_comparison; @group(0) @binding(5) var Sky: SkyU; @group(3) @binding(0) var t_radiance: texture_cube; @group(3) @binding(1) var t_panorama: texture_2d; @group(3) @binding(2) var s_radiance: sampler; @group(3) @binding(3) var s_panorama: sampler; @group(0) @binding(6) var t_ao: texture_2d; @group(3) @binding(4) var t_lightmap: texture_2d_array; @group(3) @binding(5) var s_lightmap: sampler; @group(0) @binding(7) var Probe: ProbeU; @group(3) @binding(6) var t_probes: texture_2d; @group(3) @binding(7) var s_probes: sampler; @group(1) @binding(2) var Decal: DecalU; @group(1) @binding(3) var t_decals: texture_2d_array; @group(1) @binding(4) var s_decals: sampler; @group(1) @binding(5) var Fog: FogU; @group(1) @binding(1) var Skin: SkinU; @group(1) @binding(6) var t_screen: texture_2d; var VERTEX: vec3; var NORMAL: vec3; var TANGENT: vec3; var BINORMAL: vec3; var POSITION: vec4; var UV: vec2; var UV2_: vec2; var COLOR: vec4; var INSTANCE_ID: i32; var INSTANCE_CUSTOM: vec4; var VERTEX_ID: i32; var MODEL_MATRIX: mat4x4; var MODEL_NORMAL_MATRIX: mat3x3; var INV_VIEW_MATRIX: mat4x4; var INV_PROJECTION_MATRIX: mat4x4; var MODELVIEW_MATRIX: mat4x4; var MODELVIEW_NORMAL_MATRIX: mat3x3; var NODE_POSITION_WORLD: vec3; var NODE_POSITION_VIEW: vec3; var CAMERA_DIRECTION_WORLD: vec3; var LIGHT_VERTEX: vec3; var FRAGCOORD: vec4; var FRONT_FACING: bool; var VIEW: vec3; var NORMAL_MAP: vec3; var NORMAL_MAP_DEPTH: f32; var ALBEDO: vec3; var ALPHA: f32; var ALPHA_SCISSOR_THRESHOLD: f32; var PREMUL_ALPHA_FACTOR: f32; var METALLIC: f32; var SPECULAR: f32; var ROUGHNESS: f32; var RIM: f32; var RIM_TINT: f32; var BACKLIGHT: vec3; var AO: f32; var AO_LIGHT_AFFECT: f32; var EMISSION: vec3; var SCREEN_UV: vec2; var SPECULAR_AMOUNT: f32; var LIGHT: vec3; var LIGHT_COLOR: vec3; var LIGHT_IS_DIRECTIONAL: bool; var ATTENUATION: f32; var DIFFUSE_LIGHT: vec3; var SPECULAR_LIGHT: vec3; var hedra_world: vec3; var hedra_n_geo: vec3; var hedra_n: vec3; var hedra_front: bool; @group(2) @binding(0) var hedra_p: HedraParams; @group(2) @binding(1) var albedo_texture: texture_2d; @group(2) @binding(2) var SAMPLER_NEAREST_REPEAT: sampler; var affine_uv: vec4; var gouraud: vec3; fn srgb_to_linear(c_1: vec3) -> vec3 { let lo = (c_1 / vec3(12.92f)); let hi = pow(((c_1 + vec3(0.055f)) / vec3(1.055f)), vec3(2.4f)); return select(hi, lo, (c_1 <= vec3(0.04045f))); } fn element_color(flags: u32, fallback: vec4) -> vec4 { var local_4: bool; var local_5: bool; if ((flags & F_MESH) == 0u) { return fallback; } let overlays = G.params.y; let _e13 = O.params.w; let edit_object = (_e13 == 1u); if ((flags & F_SEAM) != 0u) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } let _e27 = local_4; if _e27 { let _e32 = srgb_to_linear(vec3(0.86f, 0f, 0f)); return vec4(_e32, 1f); } if ((flags & F_SHARP) != 0u) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } let _e46 = local_5; if _e46 { let _e51 = srgb_to_linear(vec3(0f, 0.85f, 0.9f)); return vec4(_e51, 1f); } if ((overlays & OV_SELECTION) != 0u) { if edit_object { if ((flags & F_SELECTED) != 0u) { let _e64 = G.select_color; return _e64; } let _e67 = G.wire_color; return _e67; } let _e71 = O.params.x; if (_e71 == 1u) { let _e76 = G.select_color; let _e79 = G.active_color; let _e83 = O.params.y; return select(_e76, _e79, (_e83 == 1u)); } } let _e89 = G.wire_color; return _e89; } fn to_view(p: vec3, pull: f32) -> vec4 { var v: vec4; let _e4 = G.view; let _e7 = O.model; v = ((_e4 * _e7) * vec4(p, 1f)); let _e15 = v.z; v.z = (_e15 * (1f - pull)); let _e19 = v; return _e19; } fn linear_to_srgb(c_2: vec3) -> vec3 { let lo_1 = (c_2 * 12.92f); let hi_1 = ((1.055f * pow(c_2, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (c_2 <= vec3(0.0031308f))); } fn target_color(c_3: vec4) -> vec4 { let k_12 = clamp(c_3, vec4(0f), vec4(1f)); let _e9 = G.fparams.w; if (_e9 > 0.5f) { let _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } fn object_light_count() -> u32 { let _e3 = O.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } fn object_light(k: u32) -> u32 { let _e4 = O.lights.y; let _e8 = O.lights.x; let word = select(_e4, _e8, (k < 4u)); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } fn light_count_color() -> vec3 { var colors: array, 10> = LIGHT_COUNT_COLORS; let _e5 = O.lights.w; let _e9 = colors[min(_e5, 9u)]; return _e9; } fn pool_sun_count() -> u32 { let _e3 = Lit.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } fn pool_sun(k_1: u32) -> u32 { let _e4 = Lit.dirs.y; let _e8 = Lit.dirs.x; let word_1 = select(_e4, _e8, (k_1 < 4u)); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } fn decal_count() -> u32 { let _e3 = O.decals.z; return min(_e3, MAX_OBJECT_DECALS); } fn decal_entry(k_2: u32) -> u32 { let _e4 = O.decals.y; let _e8 = O.decals.x; let word_2 = select(_e4, _e8, (k_2 < 4u)); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } fn decal_level(e: DecalEntryU, world: vec3) -> f32 { let _e5 = Decal.lod.x; let _e8 = G.camera_pos; let _e15 = Decal.lod.y; let pixel_1 = (_e5 * select(length((world - _e8.xyz)), 1f, (_e15 > 0.5f))); let _e24 = Decal.counts.y; let top = f32((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 0.000001f)), 1f)), 0f, top); } fn decal_texel(layer: u32, uv: vec2, level: f32, live: bool) -> vec4 { let _e11 = textureSampleLevel(t_decals, s_decals, uv, i32((layer - 1u)), select(level, 0f, live)); return _e11; } fn apply_decals(world_1: vec3, n_geo: vec3, surf: DecalSurface) -> DecalSurface { var out_s: DecalSurface; var k_3: u32 = 0u; var local_6: bool; var fade: f32; out_s = surf; let _e4 = decal_count(); loop { let _e7 = k_3; if (_e7 < _e4) { } else { break; } { let _e11 = k_3; let _e12 = decal_entry(_e11); let e_2 = Decal.entries[min(_e12, 63u)]; let uvw = (e_2.to_local * vec4(world_1, 1f)).xyz; if all((uvw >= vec3(0f, -1f, 0f))) { local_6 = all((uvw <= vec3(1f))); } else { local_6 = false; } let _e35 = local_6; if !(_e35) { continue; } fade = pow((1f - abs(uvw.y)), select(e_2.fades.y, e_2.fades.x, (uvw.y > 0f))); if (e_2.fades.z > 0f) { let _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1f, ((dot(n_geo, e_2.axis_y.xyz) * 0.5f) + 0.5f))); } let uv_3 = uvw.xz; let _e69 = decal_level(e_2, world_1); let live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { let _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); let _e84 = srgb_to_linear(_e82.xyz); let a_2 = (vec4(_e84, _e82.w) * e_2.modulate); let _e90 = fade; let alpha = (a_2.w * _e90); let _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if (e_2.layers.y > 0u) { let _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); let nx = ((_e110.x * 2f) - 1f); let ny = (1f - (_e110.y * 2f)); let nz = sqrt(max(0f, ((1f - (nx * nx)) - (ny * ny)))); let dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); let _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { let _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); let _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); let _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); let _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { let _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); let _e184 = out_s.emission; let _e186 = srgb_to_linear(_e182.xyz); let _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } continuing { let _e197 = k_3; k_3 = (_e197 + 1u); } } let _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045f, 1f); let _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0f, 1f); let _e211 = out_s; return _e211; } fn d_ggx(nh: f32, a2_: f32) -> f32 { let d_12 = (((nh * nh) * (a2_ - 1f)) + 1f); return (a2_ / ((PI * d_12) * d_12)); } fn v_smith(nl: f32, nv: f32, a2_1: f32) -> f32 { let gv = (nl * sqrt((((nv * nv) * (1f - a2_1)) + a2_1))); let g_l = (nv * sqrt((((nl * nl) * (1f - a2_1)) + a2_1))); return (0.5f / max((gv + g_l), 0.0001f)); } fn f_schlick(f0_: vec3, vh: f32) -> vec3 { return (f0_ + ((vec3(1f) - f0_) * pow((1f - vh), 5f))); } fn light_specular(n: vec3, v_1: vec3, l: vec3, radiance: vec3, diffuse: vec3, f0_1: vec3, a2_2: f32, specular: f32) -> vec3 { let nl_2 = dot(n, l); if (nl_2 <= 0f) { return vec3(0f); } let h = normalize((l + v_1)); let nh_1 = max(dot(n, h), 0f); let vh_1 = max(dot(v_1, h), 0f); let nv_3 = max(dot(n, v_1), 0.0001f); let _e24 = f_schlick(f0_1, vh_1); let _e25 = d_ggx(nh_1, a2_2); let _e26 = v_smith(nl_2, nv_3, a2_2); let spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927f)) + (spec * specular)) * radiance) * nl_2); } fn sky(dir: vec3) -> vec3 { let _e4 = Lit.up; let a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1f, 1f)); if (a_3 <= 1.5707964f) { let c_23 = (1f - (a_3 / 1.5707964f)); let k_13 = clamp((1f - pow(max((1f - c_23), 0.000001f), 6.6666665f)), 0f, 1f); let _e30 = Lit.sky_horizon; let _e34 = Lit.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } let c_24 = ((a_3 - 1.5707964f) / 1.5707964f); let k_14 = clamp((1f - pow(max((1f - c_24), 0.000001f), 50f)), 0f, 1f); let _e54 = Lit.ground_horizon; let _e58 = Lit.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } fn filmic_curve(x: vec3) -> vec3 { return ((((x * ((0.88f * x) + vec3((0.1f * 0.6f)))) + vec3((0.2f * 0.01f))) / ((x * ((0.88f * x) + vec3(0.6f))) + vec3((0.2f * 0.3f)))) - vec3((0.01f / 0.3f))); } fn aces_curve(c_4: vec3, white: f32) -> vec3 { let x_2 = vec3((1.8f * dot(vec3(0.59719f, 0.35458f, 0.04823f), c_4)), (1.8f * dot(vec3(0.076f, 0.90834f, 0.01566f), c_4)), (1.8f * dot(vec3(0.0284f, 0.13383f, 0.83777f), c_4))); let t_2 = (((x_2 * (x_2 + vec3(0.0245786f))) - vec3(0.000090537f)) / ((x_2 * ((0.983729f * x_2) + vec3(0.432951f))) + vec3(0.238081f))); let o_5 = vec3(dot(vec3(1.60475f, -0.53108f, -0.07367f), t_2), dot(vec3(-0.10208f, 1.10813f, -0.00605f), t_2), dot(vec3(-0.00327f, -0.07276f, 1.07602f), t_2)); let w_1 = (1.8f * white); let wt = (((w_1 * (w_1 + 0.0245786f)) - 0.000090537f) / ((w_1 * ((0.983729f * w_1) + 0.432951f)) + 0.238081f)); return (o_5 / vec3(wt)); } fn agx_curve(c_5: vec3) -> vec3 { var v_2: vec3; let inset = mat3x3(vec3(0.54490817f, 0.14044006f, 0.08882741f), vec3(0.37377945f, 0.7541096f, 0.17887713f), vec3(0.08138498f, 0.10543358f, 0.73225f)); let outset = mat3x3(vec3(1.964551f, -0.29932243f, -0.16436833f), vec3(-0.85585845f, 1.3264511f, -0.23822464f), vec3(-0.10886711f, -0.02708402f, 1.4026654f)); v_2 = (inset * max(c_5, vec3(0.0000000002f))); let _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931f), vec3(4.0260687f)) - vec3(-12.473931f)) / vec3((4.0260687f - -12.473931f))); let _e44 = v_2; let _e45 = v_2; let x2_ = (_e44 * _e45); let x4_ = (x2_ * x2_); let _e48 = v_2; let _e56 = v_2; let _e64 = v_2; let p_7 = ((((((0.021f * _e48) + (4.0111f * x2_)) - ((25.682f * x2_) * _e56)) + (70.359f * x4_)) - ((74.778f * x4_) * _e64)) + ((27.069f * x4_) * x2_)); return (outset * pow(max(p_7, vec3(0.0000000001f)), vec3(2.4f))); } fn tonemap(c_in: vec3) -> vec3 { let _e4 = Lit.tone.x; let c_25 = max((c_in * _e4), vec3(0f)); let white_1 = Lit.tone.y; let mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return (((white_1 * c_25) + c_25) / ((c_25 * white_1) + vec3(white_1))); } if (mode == TONEMAP_FILMIC) { let _e27 = filmic_curve(c_25); let _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if (mode == TONEMAP_ACES) { let _e33 = aces_curve(c_25, white_1); return _e33; } if (mode == TONEMAP_AGX) { let _e36 = agx_curve(c_25); return _e36; } return c_25; } fn emerge_hash(p_1: vec3) -> f32 { var q: vec3; q = fract((p_1 * 0.1031f)); let _e5 = q; let _e6 = q; let _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32f))))); let _e16 = q.x; let _e18 = q.y; let _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } fn emerge_noise(p_2: vec3) -> f32 { let i_13 = floor(p_2); let f = fract(p_2); let u_1 = ((f * f) * (vec3(3f) - (2f * f))); let _e10 = emerge_hash(i_13); let _e16 = emerge_hash((i_13 + vec3(1f, 0f, 0f))); let _e24 = emerge_hash((i_13 + vec3(0f, 1f, 0f))); let _e30 = emerge_hash((i_13 + vec3(1f, 1f, 0f))); let a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); let _e40 = emerge_hash((i_13 + vec3(0f, 0f, 1f))); let _e46 = emerge_hash((i_13 + vec3(1f, 0f, 1f))); let _e54 = emerge_hash((i_13 + vec3(0f, 1f, 1f))); let _e60 = emerge_hash((i_13 + vec3(1f, 1f, 1f))); let b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } fn emerge_reveal(world_2: vec3, pixel: vec2) -> f32 { var n_1: f32; let _e6 = O.extra.x; if select(true, ((_e6 & OBJ_EMERGE) == 0u), SPEC_EMERGE) { return 1f; } let e_3 = O.normal[0][3]; let w_2 = (world_2 * EMERGE_SCALE); let _e21 = emerge_noise(w_2); let _e29 = emerge_noise(((w_2 * 2.7f) + vec3(17.1f))); n_1 = smoothstep(0.2f, 0.8f, ((_e21 * 0.65f) + (_e29 * 0.35f))); if (pixel.x >= 0f) { let ign = fract((52.982918f * fract(dot(floor(pixel), vec2(0.06711056f, 0.00583715f))))); let _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5f) * EMERGE_DITHER)), 0f, 1f); } let _e60 = n_1; return (((e_3 * 1.8f) - _e60) / EMERGE_EDGE); } fn emerge_tint(c_6: vec3, r: f32) -> vec3 { var local_7: bool; let _e6 = O.extra.x; if !(((_e6 & OBJ_EMERGE) == 0u)) { local_7 = (r >= 1f); } else { local_7 = true; } let _e17 = local_7; if select(true, _e17, SPEC_EMERGE) { return c_6; } let _e23 = O.extra.w; let _e26 = srgb_to_linear(unpack4x8unorm(_e23).xyz); let _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0f, 1f, r)); } fn item_fade(c_7: vec3) -> vec3 { let _e5 = O.extra.x; if select(true, ((_e5 & OBJ_FADE) == 0u), SPEC_FADE) { return c_7; } let f_1 = O.normal[3]; let _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } fn sky_dir(d: vec3) -> vec3 { let _e3 = Sky.to_sky; return normalize((_e3 * vec4(d, 0f)).xyz); } fn sky_curve(c_8: f32, curve: f32) -> f32 { return clamp((1f - pow(max((1f - c_8), 0.000001f), (1f / curve))), 0f, 1f); } fn procedural_sky(d_1: vec3) -> vec3 { var sky_1: vec3; var i: u32 = 0u; let v_7 = acos(clamp(d_1.y, -1f, 1f)); let _e8 = Sky.sky_horizon; let _e12 = Sky.sky_top; let _e21 = Sky.sky_top.w; let _e22 = sky_curve((1f - (v_7 / 1.5707964f)), _e21); let _e27 = Sky.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); let _e33 = Sky.flags.z; let suns = min(_e33, SKY_SUNS); loop { let _e38 = i; if (_e38 < suns) { } else { break; } { let _e42 = i; let sun = Sky.suns[_e42]; let size = sun.direction.w; let a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1f, 1f)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { let _e60 = Sky.sun.x; if (a_5 < _e60) { let _e66 = Sky.sun.x; let c2_ = ((a_5 - size) / (_e66 - size)); let _e71 = sky_1; let _e75 = Sky.sun.y; let _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } continuing { let _e79 = i; i = (_e79 + 1u); } } let _e83 = Sky.ground_horizon; let _e87 = Sky.ground_bottom; let _e96 = Sky.ground_bottom.w; let _e97 = sky_curve(((v_7 - 1.5707964f) / 1.5707964f), _e96); let _e102 = Sky.ground_horizon.w; let ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); let _e104 = sky_1; let _e112 = Sky.sun.z; return (select(ground, _e104, (d_1.y >= 0f)) * _e112); } fn panorama(d_2: vec3) -> vec3 { let uv_4 = vec2(fract((atan2(d_2.x, -(d_2.z)) / 6.2831855f)), (acos(clamp(d_2.y, -1f, 1f)) / PI)); let _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { let _e27 = textureSampleLevel(t_panorama, s_panorama, uv_4, 0f); let _e32 = Sky.sun.z; return (_e27.xyz * _e32); } let _e36 = textureDimensions(t_panorama, 0i); let size_1 = vec2(_e36); let x_3 = (((i32(floor((uv_4.x * f32(size_1.x)))) % size_1.x) + size_1.x) % size_1.x); let y = clamp(i32(floor((uv_4.y * f32(size_1.y)))), 0i, (size_1.y - 1i)); let _e64 = textureLoad(t_panorama, vec2(x_3, y), 0i); let _e69 = Sky.sun.z; return (_e64.xyz * _e69); } fn sh_irradiance(n_2: vec3) -> vec3 { var c_9: vec3; let _e4 = Sky.sh[0]; c_9 = (_e4.xyz * 0.282095f); let _e9 = c_9; let _e13 = Sky.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603f * n_2.y))); let _e20 = c_9; let _e24 = Sky.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603f * n_2.z))); let _e31 = c_9; let _e35 = Sky.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603f * n_2.x))); let _e42 = c_9; let _e46 = Sky.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548f * n_2.x) * n_2.y))); let _e55 = c_9; let _e59 = Sky.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548f * n_2.y) * n_2.z))); let _e68 = c_9; let _e72 = Sky.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392f * (((3f * n_2.z) * n_2.z) - 1f)))); let _e85 = c_9; let _e89 = Sky.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548f * n_2.x) * n_2.z))); let _e98 = c_9; let _e102 = Sky.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274f * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); let _e115 = c_9; return max(_e115, vec3(0f)); } fn radiance_1(d_3: vec3, roughness: f32) -> vec3 { let _e5 = Sky.flags.y; let top_1 = f32((max(_e5, 1u) - 1u)); let _e14 = textureSampleLevel(t_radiance, s_radiance, d_3, (roughness * top_1)); return _e14.xyz; } fn env_brdf_approx(roughness_1: f32, nv_1: f32) -> vec2 { let r_6 = ((roughness_1 * vec4(-1f, -0.0275f, -0.572f, 0.022f)) + vec4(1f, 0.0425f, 1.04f, -0.04f)); let a004_ = ((min((r_6.x * r_6.x), exp2((-9.28f * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04f, 1.04f) * a004_) + r_6.zw); } fn pow8_(x_1: f32) -> f32 { let x2_1 = (max(x_1, 0f) * max(x_1, 0f)); let x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } fn fog_sun_scatter(fc: vec3, dir_1: vec3) -> vec3 { var c_10: vec3; var k_4: u32 = 0u; c_10 = fc; let _e6 = Sky.fog_color.w; if (_e6 > 0.001f) { let _e9 = pool_sun_count(); loop { let _e12 = k_4; if (_e12 < _e9) { } else { break; } { let _e14 = k_4; let _e15 = pool_sun(_e14); let _e21 = Lit.lights[_e15].info.x; if (_e21 == LIGHT_DIRECTIONAL) { let _e24 = c_10; let _e29 = Lit.lights[_e15].color; let _e38 = Lit.lights[_e15].direction; let _e42 = pow8_(dot(dir_1, -(_e38.xyz))); let _e47 = Sky.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927f)) * _e42) * _e47)); } } continuing { let _e51 = k_4; k_4 = (_e51 + 1u); } } } let _e53 = c_10; return _e53; } fn sky_fog(c_11: vec3, dir_2: vec3) -> vec3 { let _e4 = Sky.fog_color; let _e9 = Sky.fog_depth.w; let _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); let _e15 = Sky.fog.y; return mix(c_11, _e11, _e15); } fn surface_fog(c_12: vec3, world_3: vec3, dir_3: vec3) -> vec3 { var dist: f32; var amount: f32; var fc_1: vec3; var local_8: bool; let _e5 = G.view; let depth = -((_e5 * vec4(world_3, 1f)).z); let _e13 = G.camera_pos; dist = distance(world_3, _e13.xyz); let _e20 = Sky.fog_origin.w; if (_e20 > 0.5f) { let _e26 = Sky.fog_origin.x; dist = max((depth - _e26), 0f); } let _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { let _e42 = Sky.fog_depth.x; let _e46 = Sky.fog_depth.y; let _e47 = dist; let z = smoothstep(_e42, _e46, _e47); let _e54 = Sky.fog_depth.z; let _e63 = Sky.fog.x; amount = (select(0f, pow(max(z, 0.000001f), _e54), (z > 0f)) * _e63); } else { let _e65 = dist; let _e70 = Sky.fog.x; amount = (1f - exp(min(0f, (-(_e65) * _e70)))); } let _e80 = Sky.fog.w; if (abs(_e80) >= 0.0001f) { let _e86 = Lit.up; let y_1 = dot(world_3, _e86.xyz); let _e89 = amount; let _e93 = Sky.fog.z; let _e98 = Sky.fog.w; amount = max(_e89, (1f - exp(min(0f, ((y_1 - _e93) * _e98))))); } let _e106 = amount; amount = clamp(_e106, 0f, 1f); let _e112 = Sky.fog_color; fc_1 = _e112.xyz; let _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { let _e129 = Sky.fog_depth.w; local_8 = (_e129 > 0f); } else { local_8 = false; } let _e133 = local_8; if select(false, _e133, SPEC_AMBIENT_SKY) { let _e139 = Sky.fog_origin.y; let _e144 = Sky.fog_origin.z; let _e148 = Sky.fog_origin.y; let t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 0.000001f)), 0f, 1f); let _e159 = Sky.flags.y; let top_2 = f32((max(_e159, 2u) - 1u)); let rough = mix((1f / top_2), 1f, (1f - t_3)); let _e171 = fc_1; let _e172 = sky_dir(dir_3); let _e173 = radiance_1(_e172, rough); let _e177 = Sky.sun.w; let _e182 = Sky.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } let _e184 = fc_1; let _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; let _e186 = fc_1; let _e187 = amount; return mix(c_12, _e186, _e187); } fn fog_chord(k_5: u32, o: vec3, d_4: vec3, t_end_ray: f32) -> vec2 { var r_1: vec2; var a: f32 = 0f; var b: f32 = 0f; var c_13: f32 = -1f; let _e9 = Fog.entries[k_5].albedo.w; let shape = u32(_e9); let _e16 = Fog.entries[k_5].emission.w; let t_end_1 = min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return vec2(0f, t_end_1); } let _e26 = Fog.entries[k_5].size; let h_1 = (_e26.xyz * 0.5f); let dd = select(d_4, vec3(0.000000000001f), (abs(d_4) < vec3(0.000000000001f))); let sa = ((-(h_1) - o) / dd); let sb = ((h_1 - o) / dd); let s_in = min(sa, sb); let s_out = max(sa, sb); r_1 = vec2(max(0f, s_in.y), min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { let _e60 = r_1.x; let _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1f); } else { let rad = min(h_1.x, h_1.z); let k_15 = select(0f, (rad / (2f * h_1.y)), (shape == FOG_SHAPE_CONE)); let w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - select((rad * rad), (((k_15 * k_15) * w_3) * w_3), (shape == FOG_SHAPE_CONE))); } } let _e139 = b; let _e140 = b; let _e142 = a; let _e143 = c_13; let disc = ((_e139 * _e140) - (_e142 * _e143)); let _e146 = a; if (abs(_e146) < 0.000000000001f) { let _e150 = b; if (abs(_e150) < 0.000000000001f) { let _e156 = r_1.y; let _e157 = c_13; r_1.y = select(_e156, -1f, (_e157 > 0f)); } else { let _e162 = b; if (_e162 > 0f) { let _e167 = r_1.y; let _e168 = c_13; let _e170 = b; r_1.y = min(_e167, (-(_e168) / (2f * _e170))); } else { let _e177 = r_1.x; let _e178 = c_13; let _e180 = b; r_1.x = max(_e177, (-(_e178) / (2f * _e180))); } } } else { if (disc < 0f) { let _e189 = r_1.y; let _e190 = a; r_1.y = select(_e189, -1f, (_e190 > 0f)); } else { let _e195 = b; let _e199 = a; let _e201 = b; let _e205 = a; let lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); let _e208 = b; let _e212 = a; let _e214 = b; let _e218 = a; let hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); let _e221 = a; if (_e221 > 0f) { let _e225 = r_1.x; let _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { let _e232 = r_1.x; let _e234 = r_1.y; if (_e232 < min(_e234, lo_2)) { let _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { let _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } let _e245 = r_1; return _e245; } fn fog_density(k_6: u32, p_3: vec3, lp: vec3) -> f32 { var rho: f32; var sdf: f32 = 0f; let e_4 = Fog.entries[k_6]; let _e14 = Fog.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1f)); if (e_4.material.z > 0f) { let shape_1 = u32(e_4.albedo.w); let h_2 = (e_4.size.xyz * 0.5f); let rad_1 = min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { let k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1f)) / max(length((lp / (h_2 * h_2))), 0.000000000001f)); } else { if (shape_1 == FOG_SHAPE_BOX) { let q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0f))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0f)); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { let q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0f) + length(max(q_4, vec2(0f)))); } else { let n_11 = normalize(vec2((1f / max(0.001f, (rad_1 * 0.5f))), (1f / max(0.001f, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } let _e116 = rho; let _e117 = sdf; rho = (_e116 * pow(clamp(((-2f * _e117) / e_4.size.w), 0f, 1f), e_4.material.z)); } let _e130 = rho; return _e130; } fn fog_falloff_depth(k_7: u32, a_1: f32, b_1: f32, t0_: f32, t1_: f32) -> f32 { let m_4 = Fog.entries[k_7].material; let hf = m_4.y; if ((hf * b_1) == 0f) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1f)); } let s_2 = clamp((-(a_1) / b_1), t0_, t1_); let lo_3 = select(t0_, s_2, (b_1 > 0f)); let hi_3 = select(s_2, t1_, (b_1 > 0f)); let x_4 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472f); let g = select(((1f - exp(-(x_4))) / x_4), (1f - (x_4 * (0.5f - (x_4 * (0.16666667f - (x_4 / 24f)))))), (x_4 < 0.01f)); let top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * select(hi_3, lo_3, (b_1 > 0f)))), 0f))), 1f); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } fn omni_attenuation(d_5: f32, inv_range: f32, decay: f32) -> f32 { var nd: f32; nd = (d_5 * inv_range); let _e5 = nd; let _e6 = nd; nd = (_e5 * _e6); let _e8 = nd; let _e9 = nd; nd = (_e8 * _e9); let _e11 = nd; nd = max((1f - _e11), 0f); let _e16 = nd; let _e17 = nd; nd = (_e16 * _e17); let _e19 = nd; return (_e19 * pow(max(d_5, 0.0001f), -(decay))); } fn fog_light(n_3: u32, p_4: vec3, dir_4: vec3) -> vec3 { var sum: vec3; var k_8: u32 = 0u; var l_1: vec3; var atten: f32; let _e5 = Fog.ambient; let _e10 = Fog.params.y; sum = (_e5.xyz * _e10); let g_1 = Fog.params.x; let lights = Fog.entries[n_3].lights; loop { let _e24 = k_8; if (_e24 < min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { let _e31 = k_8; let _e35 = k_8; let i_14 = min(((select(lights.y, lights.x, (_e31 < 4u)) >> ((_e35 & 3u) * 8u)) & 255u), 63u); let li = Lit.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1f; if (li.info.x != LIGHT_DIRECTIONAL) { let rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 0.000001f))); let _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { let _e77 = l_1; let rim = max(0.0001f, ((1f - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1f - li.spot.x), 0.000001f))); let _e96 = atten; atten = (_e96 * (1f - pow(rim, li.spot.y))); } } let _e108 = l_1; let q_5 = ((1f + (g_1 * g_1)) - ((2f * g_1) * dot(dir_4, _e108))); let _e112 = sum; let _e115 = atten; let _e133 = Fog.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1f - (g_1 * g_1))) / ((12.566371f * q_5) * sqrt(q_5))) * _e133))); } continuing { let _e138 = k_8; k_8 = (_e138 + 1u); } } let _e140 = sum; return _e140; } fn fog_entry(k_9: u32, o_1: vec3, d_6: vec3, ch: vec2) -> vec4 { var split: f32; var local_9: bool; var local_10: bool; var q_1: vec3 = vec3(0f); var tau: f32 = 0f; var i_1: u32 = 0u; var local_11: bool; var local_12: bool; let e_5 = Fog.entries[k_9]; let lo_4 = (e_5.to_local * vec4(o_1, 1f)).xyz; let ld = (e_5.to_local * vec4(d_6, 0f)).xyz; let _e20 = Fog.up; let a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); let _e28 = Fog.up; let b_3 = dot(d_6, _e28.xyz); let edge = (e_5.material.z > 0f); split = ((ch.x + ch.y) * 0.5f); if (e_5.material.y > 0f) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } let _e52 = local_9; if _e52 { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } let _e60 = local_10; if _e60 { split = (-(a_6) / b_3); } loop { let _e70 = i_1; if (_e70 < select(4u, 12u, edge)) { } else { break; } { let _e75 = i_1; let j = (_e75 & 3u); if !((j == 0u)) { local_11 = (j == 3u); } else { local_11 = true; } let _e88 = local_11; let x_5 = select(FOG_GL_X1_, FOG_GL_X0_, _e88); if !((j == 0u)) { local_12 = (j == 3u); } else { local_12 = true; } let _e100 = local_12; let w_4 = select(FOG_GL_W1_, FOG_GL_W0_, _e100); let _e102 = split; let _e106 = split; let _e108 = i_1; let _e112 = i_1; let seg = select(select(vec2(_e102, ch.y), vec2(ch.x, _e106), (_e108 < 8u)), ch, (_e112 < 4u)); let half_len = ((seg.y - seg.x) * 0.5f); let t_4 = (((seg.x + seg.y) * 0.5f) + (half_len * select(x_5, -(x_5), (j < 2u)))); let p_8 = (o_1 + (d_6 * t_4)); let _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_4))); let _e137 = i_1; if (_e137 < 4u) { let _e140 = q_1; let _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0f, 1f)))); } else { let _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } continuing { let _e160 = i_1; i_1 = (_e160 + 1u); } } if !(edge) { let _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } let _e166 = q_1; let _e167 = tau; return vec4(_e166, _e167); } fn fog_integrate(c_14: vec3, o_2: vec3, d_7: vec3, t_end: f32, list: u32) -> vec3 { var at: array; var chords: array, 4>; var m: u32 = 0u; var i_2: u32 = 0u; var local_13: bool; var parts: array, 4>; var i_3: u32 = 0u; var n_4: u32 = 0u; var avail: f32; var i_4: u32; var i_5: u32; var q_2: vec3 = vec3(0f); var tau_1: f32 = 0f; var i_6: u32 = 0u; let all_ = (list >= FOG_LIST_ALL); loop { let _e13 = i_2; let _e18 = Fog.counts.x; if (_e13 < select(4u, min(_e18, MAX_FRAME_FOG_VOLUMES), all_)) { } else { break; } { let _e23 = i_2; let byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if !(all_) { local_13 = (byte == 0u); } else { local_13 = false; } let _e37 = local_13; if _e37 { break; } let _e42 = i_2; let k_16 = select((min(byte, MAX_FRAME_FOG_VOLUMES) - 1u), _e42, all_); let to_local = Fog.entries[k_16].to_local; let _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1f)).xyz, (to_local * vec4(d_7, 0f)).xyz, t_end); if (_e57.y > _e57.x) { let _e61 = m; at[_e61] = k_16; let _e63 = m; chords[_e63] = _e57; let _e66 = m; m = (_e66 + 1u); let _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } continuing { let _e72 = i_2; i_2 = (_e72 + 1u); } } loop { let _e77 = i_3; let _e78 = m; if (_e77 < _e78) { } else { break; } { let _e80 = i_3; let _e82 = i_3; let _e84 = at[_e82]; let _e85 = i_3; let _e87 = chords[_e85]; let _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } continuing { let _e90 = i_3; i_3 = (_e90 + 1u); } } loop { let _e94 = n_4; let _e95 = m; if (_e94 < _e95) { } else { break; } { let _e97 = n_4; let _e100 = parts[_e97].w; if (_e100 < 0f) { avail = 0f; i_4 = 0u; loop { let _e107 = i_4; let _e108 = m; if (_e107 < _e108) { } else { break; } { let _e110 = i_4; let _e113 = chords[_e110].y; let _e114 = n_4; let _e117 = chords[_e114].y; let _e119 = i_4; let _e122 = chords[_e119].x; let _e123 = n_4; let _e126 = chords[_e123].x; let _e131 = i_4; let _e134 = chords[_e131].y; let _e135 = i_4; let _e138 = chords[_e135].x; let share = (max((min(_e113, _e117) - max(_e122, _e126)), 0f) / max((_e134 - _e138), 0.000001f)); let _e143 = avail; let _e144 = i_4; let _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0f) * share)); } continuing { let _e153 = i_4; i_4 = (_e153 + 1u); } } let _e155 = n_4; let _e158 = parts[_e155].w; let _e160 = avail; let f_2 = min((-(_e158) / max(_e160, 0.000000000001f)), 1f); i_5 = 0u; loop { let _e168 = i_5; let _e169 = m; if (_e168 < _e169) { } else { break; } { let _e171 = i_5; let _e174 = parts[_e171].w; if (_e174 > 0f) { let _e177 = i_5; let _e180 = chords[_e177].y; let _e181 = n_4; let _e184 = chords[_e181].y; let _e186 = i_5; let _e189 = chords[_e186].x; let _e190 = n_4; let _e193 = chords[_e190].x; let _e198 = i_5; let _e201 = chords[_e198].y; let _e202 = i_5; let _e205 = chords[_e202].x; let share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0f) / max((_e201 - _e205), 0.000001f)); let _e210 = i_5; let _e212 = parts[_e210]; parts[_e210] = (_e212 * (1f - (share_1 * f_2))); } } continuing { let _e218 = i_5; i_5 = (_e218 + 1u); } } } } continuing { let _e221 = n_4; n_4 = (_e221 + 1u); } } loop { let _e230 = i_6; let _e231 = m; if (_e230 < _e231) { } else { break; } { let _e233 = i_6; let _e236 = parts[_e233].w; if (_e236 > 0f) { let _e239 = q_2; let _e240 = i_6; let _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); let _e245 = tau_1; let _e246 = i_6; let _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } continuing { let _e252 = i_6; i_6 = (_e252 + 1u); } } let _e254 = tau_1; let t_5 = exp(-(_e254)); let _e258 = q_2; let _e261 = tau_1; return ((c_14 * t_5) + (_e258 * ((1f - t_5) / max(_e261, 0.00001f)))); } fn fog_volumes(c_15: vec3, world_4: vec3, list_1: u32) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_6 = select(_e22.xyz, (world_4 - (back * (_e26 * vec4(world_4, 1f)).z)), (_e36 > 0.5f)); let len = length((world_4 - o_6)); let _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 0.000001f))), len, list_1); return select(c_15, _e47, (len > 0f)); } fn sky_fog_volumes(c_16: vec3, near_point: vec3, dir_5: vec3) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back_1 = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_7 = select(_e22.xyz, (near_point - (back_1 * (_e26 * vec4(near_point, 1f)).z)), (_e36 > 0.5f)); let _e44 = Fog.counts.y; let _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); let _e49 = Fog.params.z; return mix(c_16, _e45, _e49); } fn shadow_factor(i_7: u32, world_5: vec3, n_geo_1: vec3, l_2: vec3) -> f32 { var part: u32 = 0u; var c_17: u32 = 0u; var local_14: bool; var local_15: bool; var local_16: bool; var vis: f32 = 0f; var dy: i32 = -1i; var dx: i32; let kind = Lit.lights[i_7].info.x; let _e14 = Lit.lights[i_7].position; let light_pos = _e14.xyz; let _e21 = Lit.lights[i_7].info.w; let slot = min(_e21, 15u); let params = Shadow.lights[slot].params; let first = Shadow.lights[slot].info.x; let _e40 = Shadow.lights[slot].info.y; let count = max(_e40, 1u); let _e45 = G.view; let view_depth = -((_e45 * vec4(world_5, 1f)).z); if (kind == LIGHT_DIRECTIONAL) { let _e60 = Shadow.lights[slot].fade.y; if (view_depth > _e60) { return 1f; } part = (count - 1u); loop { let _e67 = c_17; if (_e67 < count) { } else { break; } { let _e73 = c_17; let _e75 = Shadow.lights[slot].splits[_e73]; if (view_depth <= _e75) { let _e77 = c_17; part = _e77; break; } } continuing { let _e79 = c_17; c_17 = (_e79 + 1u); } } } let _e83 = part; let texel = Shadow.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; let t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); let p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1f)) * t_6))) + (l_2 * (params.x * t_6))); if (kind == LIGHT_OMNI) { let d_13 = (p_9 - light_pos); let a_7 = abs(d_13); if (a_7.x >= a_7.y) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } let _e123 = local_14; if _e123 { part = select(1u, 0u, (d_13.x >= 0f)); } else { if (a_7.y >= a_7.z) { part = select(3u, 2u, (d_13.y >= 0f)); } else { part = select(5u, 4u, (d_13.z >= 0f)); } } } let _e145 = part; let tile = min((first + min(_e145, (count - 1u))), 15u); let _e156 = Shadow.tiles[tile].view_proj; let clip_1 = (_e156 * vec4(p_9, 1f)); if (clip_1.w <= 0f) { return 1f; } let ndc = (clip_1.xyz / vec3(clip_1.w)); if !((abs(ndc.x) > 1f)) { local_15 = (abs(ndc.y) > 1f); } else { local_15 = true; } let _e180 = local_15; if !(_e180) { local_16 = (ndc.z > 1f); } else { local_16 = true; } let _e188 = local_16; if _e188 { return 1f; } let rect = Shadow.tiles[tile].rect; let uv_5 = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let auv = (rect.xy + (uv_5 * rect.zw)); let texel_uv = Shadow.atlas.x; let lo_5 = (rect.xy + vec2((0.5f * texel_uv))); let hi_4 = ((rect.xy + rect.zw) - vec2((0.5f * texel_uv))); let r_7 = params.z; if (r_7 <= 0f) { let _e235 = textureSampleCompareLevel(t_shadow, s_shadow, clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { let spread = (r_7 * texel_uv); loop { let _e239 = dy; if (_e239 <= 1i) { } else { break; } { dx = -1i; loop { let _e244 = dx; if (_e244 <= 1i) { } else { break; } { let _e247 = dx; let _e249 = dy; let tap = clamp((auv + (vec2(f32(_e247), f32(_e249)) * spread)), lo_5, hi_4); let _e255 = vis; let _e259 = textureSampleCompareLevel(t_shadow, s_shadow, tap, ndc.z); vis = (_e255 + _e259); } continuing { let _e262 = dx; dx = (_e262 + 1i); } } } continuing { let _e265 = dy; dy = (_e265 + 1i); } } let _e267 = vis; vis = (_e267 / 9f); } if (kind == LIGHT_DIRECTIONAL) { let fade_1 = Shadow.lights[slot].fade; let _e277 = vis; vis = mix(_e277, 1f, smoothstep(fade_1.x, fade_1.y, view_depth)); } let _e283 = vis; return mix(1f, _e283, params.w); } fn probe_light(n_5: vec3) -> vec3 { let _e5 = O.gi[0].x; let _e9 = O.gi[0]; let _e17 = O.gi[1].x; let _e21 = O.gi[1]; let _e29 = O.gi[2].x; let _e33 = O.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0f)); } fn gi_diffuse(n_6: vec3, baked: bool, baked_light: vec3) -> vec4 { if baked { return vec4(baked_light, 1f); } let _e9 = O.extra.x; if select(false, ((_e9 & OBJ_PROBE_GI) != 0u), SPEC_PROBE_GI) { let _e16 = probe_light(n_6); return vec4(_e16, 1f); } return vec4(0f); } fn probe_face_uv(d_8: vec3) -> vec3 { var face: f32; var ma: f32; var sc: f32; var tc: f32; var local_17: bool; let a_8 = abs(d_8); if (a_8.x >= a_8.y) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } let _e15 = local_17; if _e15 { ma = a_8.x; if (d_8.x >= 0f) { face = 0f; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1f; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0f) { face = 2f; sc = d_8.x; tc = d_8.z; } else { face = 3f; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0f) { face = 4f; sc = d_8.x; tc = -(d_8.y); } else { face = 5f; sc = -(d_8.x); tc = -(d_8.y); } } } let _e56 = face; let _e57 = sc; let _e58 = ma; let _e64 = tc; let _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1f) * 0.5f), (((_e64 / _e65) + 1f) * 0.5f)); } fn probe_texel(row: u32, fuv: vec3, level_1: u32) -> vec3 { let _e6 = Probe.counts.z; let n_12 = f32(max((_e6 >> level_1), 1u)); let lo_6 = (0.5f / n_12); let u_2 = clamp(fuv.y, lo_6, (1f - lo_6)); let v_8 = clamp(fuv.z, lo_6, (1f - lo_6)); let uv_6 = vec2(((fuv.x + u_2) / 6f), ((f32(row) + v_8) / 8f)); let _e33 = textureSampleLevel(t_probes, s_probes, uv_6, f32(level_1)); return _e33.xyz; } fn probe_sample(row_1: u32, d_9: vec3, lod: f32) -> vec3 { var local_18: bool; let _e6 = Probe.counts.y; let levels = max(_e6, 1u); let l_5 = clamp(lod, 0f, f32((levels - 1u))); let m0_ = u32(l_5); let t_7 = (l_5 - f32(m0_)); let _e17 = probe_face_uv(d_9); let _e18 = probe_texel(row_1, _e17, m0_); if !((t_7 <= 0f)) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } let _e28 = local_18; if _e28 { return _e18; } let _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1f - t_7)) + (_e34 * t_7)); } fn probe_weight(p_5: ProbeEntryU, world_6: vec3) -> f32 { let l_6 = (p_5.to_local * vec4(world_6, 1f)).xyz; let e_6 = p_5.extents.xyz; let d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if (d_14 < 0f) { return 0f; } if !((p_5.extents.w > 0f)) { return 1f; } return min((d_14 / p_5.extents.w), 1f); } fn probe_exit(o_3: f32, d_10: f32, e_1: f32) -> f32 { if (d_10 > 0f) { return ((e_1 - o_3) / d_10); } if (d_10 < 0f) { return ((-(e_1) - o_3) / d_10); } return 300000000000000000000000000000000000000f; } fn probe_lookup(p_6: ProbeEntryU, world_7: vec3, dir_6: vec3) -> vec3 { let d_15 = (p_6.to_local * vec4(dir_6, 0f)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } let o_8 = (p_6.to_local * vec4(world_7, 1f)).xyz; let e_7 = p_6.extents.xyz; let _e24 = probe_exit(o_8.x, d_15.x, e_7.x); let _e28 = probe_exit(o_8.y, d_15.y, e_7.y); let _e32 = probe_exit(o_8.z, d_15.z, e_7.z); let t_8 = max(min(_e24, min(_e28, _e32)), 0f); return ((o_8 + (d_15 * t_8)) - p_6.offset.xyz); } fn probe_reflection(world_8: vec3, r_2: vec3, roughness_2: f32, probes: u32) -> vec4 { var acc: vec3 = vec3(0f); var w_sum: f32 = 0f; var i_8: u32 = 0u; let _e12 = Probe.counts.x; let count_1 = min(_e12, MAX_PROBES); let _e18 = Probe.counts.y; let lod_1 = (roughness_2 * f32((max(_e18, 1u) - 1u))); loop { let _e27 = i_8; if (_e27 < count_1) { } else { break; } { let _e31 = i_8; let p_10 = Probe.probes[_e31]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } let _e41 = probe_weight(p_10, world_8); if (_e41 <= 0f) { continue; } let _e44 = acc; let _e47 = probe_lookup(p_10, world_8, r_2); let _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); let _e54 = w_sum; w_sum = (_e54 + _e41); } continuing { let _e57 = i_8; i_8 = (_e57 + 1u); } } let _e59 = w_sum; if (_e59 > 1f) { let _e62 = acc; let _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1f; } let _e67 = acc; let _e68 = w_sum; return vec4(_e67, _e68); } fn probe_ambient(world_9: vec3, n_7: vec3, probes_1: u32) -> vec4 { var acc_1: vec3 = vec3(0f); var w_sum_1: f32 = 0f; var i_9: u32 = 0u; var local_19: bool; var c_18: vec3; let _e11 = Probe.counts.x; let count_2 = min(_e11, MAX_PROBES); let _e17 = Probe.counts.y; let last = (max(_e17, 1u) - 1u); loop { let _e24 = i_9; if (_e24 < count_2) { } else { break; } { let _e28 = i_9; let p_11 = Probe.probes[_e28]; if !((((probes_1 >> p_11.info.w) & 1u) == 0u)) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } let _e46 = local_19; if _e46 { continue; } let _e47 = probe_weight(p_11, world_9); if (_e47 <= 0f) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { let _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0f)).xyz); let _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } let _e66 = acc_1; let _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); let _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } continuing { let _e73 = i_9; i_9 = (_e73 + 1u); } } let _e75 = w_sum_1; if (_e75 > 1f) { let _e78 = acc_1; let _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1f; } let _e83 = acc_1; let _e84 = w_sum_1; return vec4(_e83, _e84); } fn skin_row(k_10: u32, r_3: u32) -> vec4 { let _e10 = Skin.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } fn skin_rows(s_1: SkinIn) -> SkinRows { var m_1: SkinRows; let j_1 = s_1.joints; let w_5 = s_1.weights; let _e8 = skin_row(j_1.x, 0u); let _e13 = skin_row(j_1.y, 0u); let _e19 = skin_row(j_1.z, 0u); let _e25 = skin_row(j_1.w, 0u); m_1.r0_ = ((((w_5.x * _e8) + (w_5.y * _e13)) + (w_5.z * _e19)) + (w_5.w * _e25)); let _e32 = skin_row(j_1.x, 1u); let _e37 = skin_row(j_1.y, 1u); let _e43 = skin_row(j_1.z, 1u); let _e49 = skin_row(j_1.w, 1u); m_1.r1_ = ((((w_5.x * _e32) + (w_5.y * _e37)) + (w_5.z * _e43)) + (w_5.w * _e49)); let _e56 = skin_row(j_1.x, 2u); let _e61 = skin_row(j_1.y, 2u); let _e67 = skin_row(j_1.z, 2u); let _e73 = skin_row(j_1.w, 2u); m_1.r2_ = ((((w_5.x * _e56) + (w_5.y * _e61)) + (w_5.z * _e67)) + (w_5.w * _e73)); let _e76 = m_1; return _e76; } fn hedra_store_varyings(o_4: ptr) { let _e3 = affine_uv; (*o_4).hedra_v0_ = vec4(_e3); let _e7 = gouraud; (*o_4).hedra_v1_ = vec4(_e7, 0f); return; } fn hedra_load_varyings(i_10: CustomOut) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } fn light() { return; } fn scene_to_frame(v_3: vec3) -> vec3 { return vec3(v_3.x, -(v_3.z), v_3.y); } fn snap_view(view_pos: vec4) -> vec4 { let _e4 = hedra_p.snap_resolution.x; if (_e4 <= 0f) { return view_pos; } let _e9 = G.proj; let clip_2 = (_e9 * view_pos); if (clip_2.w <= 0.0001f) { return view_pos; } let _e16 = hedra_p.snap_resolution; let half_res = (_e16 * 0.5f); let ndc_1 = (clip_2.xy / vec2(clip_2.w)); let snapped = (round((ndc_1 * half_res)) / half_res); let _e27 = INV_PROJECTION_MATRIX; let back_2 = (_e27 * vec4((snapped * clip_2.w), clip_2.z, clip_2.w)); return vec4((back_2.xyz / vec3(back_2.w)), 1f); } fn vertex() { var diffuse_1: f32; let _e1 = MODEL_NORMAL_MATRIX; let _e3 = NORMAL; let n_13 = normalize((_e1 * _e3)); let _e8 = hedra_p.sun_direction; let _e9 = scene_to_frame(_e8); let sun_1 = normalize(_e9); diffuse_1 = max(dot(n_13, sun_1), 0f); let _e17 = hedra_p.light_bands; if (_e17 >= 2f) { let _e20 = diffuse_1; let _e23 = hedra_p.light_bands; let _e30 = hedra_p.light_bands; diffuse_1 = (floor(((_e20 * _e23) + 0.5f)) / _e30); } let _e34 = hedra_p.ground_ambient; let _e37 = hedra_p.sky_ambient; let ambient_2 = mix(_e34, _e37, ((n_13.z * 0.5f) + 0.5f)); let _e47 = hedra_p.sun_color; let _e48 = diffuse_1; let _e52 = COLOR; let _e57 = hedra_p.overbright; let _e61 = hedra_p.emission; gouraud = ((((ambient_2 + (_e47 * _e48)) * _e52.xyz) * _e57) + _e61); let _e64 = MODELVIEW_MATRIX; let _e66 = VERTEX; let _e70 = snap_view((_e64 * vec4(_e66, 1f))); VERTEX = _e70.xyz; let _e75 = MODELVIEW_NORMAL_MATRIX; let _e77 = NORMAL; NORMAL = normalize((_e75 * _e77)); let _e81 = UV; let _e84 = hedra_p.uv_scale; let _e88 = hedra_p.uv_offset; let _e92 = hedra_p.uv_scroll; let _e96 = G.fparams.w; let uv_7 = (((_e81 * _e84) + _e88) + (_e92 * _e96)); UV = uv_7; let _e102 = G.proj; let w_6 = (_e102 * _e70).w; let _e107 = hedra_p.affine_strength; let _e112 = hedra_p.affine_near; let weight = (_e107 * clamp(((w_6 - 0.25f) / max(_e112, 0.001f)), 0f, 1f)); affine_uv = vec4((uv_7 * w_6), w_6, weight); return; } fn fragment() { let _e1 = affine_uv; let _e5 = affine_uv.z; let affine = (_e1.xy / vec2(max(_e5, 0.0001f))); let _e11 = UV; let _e14 = affine_uv.w; let uv_8 = mix(_e11, affine, clamp(_e14, 0f, 1f)); let texel_1 = textureSample(albedo_texture, SAMPLER_NEAREST_REPEAT, uv_8); let _e26 = hedra_p.albedo; let _e30 = gouraud; ALBEDO = ((texel_1.xyz * _e26.xyz) * _e30); let _e37 = hedra_p.albedo.w; ALPHA = (texel_1.w * _e37); let _e42 = hedra_p.alpha_cut; ALPHA_SCISSOR_THRESHOLD = _e42; return; } fn hedra_mat3_(m_2: mat4x4) -> mat3x3 { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } fn hedra_rigid_inverse(m_3: mat4x4) -> mat4x4 { let _e1 = hedra_mat3_(m_3); let r_8 = transpose(_e1); let t_9 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0f), vec4(r_8[1], 0f), vec4(r_8[2], 0f), vec4(t_9, 1f)); } fn hedra_inv_projection() -> mat4x4 { let _e2 = G.wire_color; let _e5 = G.select_color; let _e8 = G.active_color; let _e11 = G.grid; return mat4x4(_e2, _e5, _e8, _e11); } fn hedra_godot_uv(uv_1: vec2) -> vec2 { return vec2(uv_1.x, (1f - uv_1.y)); } fn hedra_transparent() -> bool { var local_20: bool; var local_21: bool; if HEDRA_ALPHA { local_20 = false; } else { local_20 = false; } let _e5 = local_20; if !(_e5) { local_21 = false; } else { local_21 = true; } let _e11 = local_21; return _e11; } fn hedra_mirrored(flags_1: u32) -> bool { let _e4 = O.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } fn hedra_matrices(model: mat4x4, normal: mat3x3) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; let _e7 = G.view; let _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; let _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; let _e14 = G.view; MODELVIEW_MATRIX = (_e14 * model); let _e19 = G.view; let _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; let _e28 = G.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1f)).xyz; let _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } fn hedra_begin_vertex(pos: vec3, normal_1: vec3, tangent: vec4, uv_2: vec2, uv2_: vec2, color: vec4, vid_3: u32) { var local_22: bool; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); let _e17 = hedra_godot_uv(uv_2); UV = _e17; let _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = i32(vid_3); POSITION = vec4(1f); if HEDRA_WORLD_VERTEX_COORDS { local_22 = false; } else { local_22 = false; } let _e31 = local_22; if _e31 { let _e34 = MODEL_MATRIX; let _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1f)).xyz; let _e43 = MODEL_NORMAL_MATRIX; let _e45 = NORMAL; NORMAL = (_e43 * _e45); let _e49 = MODEL_NORMAL_MATRIX; let _e51 = TANGENT; TANGENT = (_e49 * _e51); let _e55 = MODEL_NORMAL_MATRIX; let _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } fn hedra_end_vertex(world_10: vec4, n_8: vec3, t: vec3, tw: f32, flags_2: u32) -> CustomOut { var out_2: CustomOut; let _e9 = G.view_proj; out_2.clip = (_e9 * world_10); if HEDRA_USES_POSITION { let _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); let _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); let _e28 = COLOR; out_2.color = _e28; let _e31 = UV2_; out_2.uv2_ = _e31; let _e34 = INSTANCE_ID; out_2.instance_id = u32(max(_e34, 0i)); hedra_store_varyings((&out_2)); let _e38 = out_2; return _e38; } fn hedra_vertex_space() -> bool { var local_23: bool; if false { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } let _e5 = local_23; return _e5; } fn hedra_vertex_world() -> vec4 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e2 = INV_VIEW_MATRIX; let _e4 = VERTEX; return (_e2 * vec4(_e4, 1f)); } let _e9 = VERTEX; return vec4(_e9, 1f); } fn hedra_vertex_dir(d_11: vec3) -> vec3 { if HEDRA_SKIP_VERTEX_TRANSFORM { let _e3 = INV_VIEW_MATRIX; let _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } fn hedra_tangent_sign(w: f32, flip: bool) -> f32 { let _e5 = O.extra.x; return (w * select(1f, -1f, (((_e5 & OBJ_MIRRORED) != 0u) != flip))); } fn hedra_fragment(in_7: CustomOut, facing_4: bool) { var t_1: vec3; var nm: vec3; let _e3 = hedra_mirrored(in_7.flags); let front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; let _e14 = G.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); let _e19 = O.model; let _e22 = O.normal; let _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); let _e26 = G.view; let _e27 = hedra_mat3_(_e26); let n_geo_2 = select(-(normalize(in_7.normal)), normalize(in_7.normal), front); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; let _e41 = t_1; let _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); let _e47 = t_1; let b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); let _e55 = G.view; VERTEX = (_e55 * vec4(in_7.world, 1f)).xyz; let _e63 = VERTEX; LIGHT_VERTEX = _e63; let vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); let normal0_ = NORMAL; let _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); let _e80 = VERTEX; let _e90 = G.camera_pos.w; VIEW = select(normalize(-(_e80)), vec3(0f, 0f, 1f), (_e90 > 0.5f)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5f); NORMAL_MAP_DEPTH = 1f; ALBEDO = vec3(1f); ALPHA = 1f; ALPHA_SCISSOR_THRESHOLD = 1f; PREMUL_ALPHA_FACTOR = 1f; METALLIC = 0f; SPECULAR = 0.5f; ROUGHNESS = 1f; RIM = 0f; RIM_TINT = 0f; BACKLIGHT = vec3(0f); AO = 1f; AO_LIGHT_AFFECT = 0f; EMISSION = vec3(0f); hedra_load_varyings(in_7); fragment(); let back_3 = transpose(_e27); let _e136 = NORMAL; if any((_e136 != normal0_)) { let _e141 = NORMAL; hedra_n = normalize((back_3 * _e141)); } let _e145 = NORMAL_MAP; if any((_e145 != vec3(0.5f))) { let _e151 = NORMAL_MAP; nm = _e151; let _e153 = nm; nm = vec3(((_e153.xy * 2f) - vec2(1f)), 0f); let _e163 = nm; let _e165 = nm; nm.z = sqrt(max(0f, (1f - dot(_e163.xy, _e165.xy)))); let _e175 = NORMAL; let _e177 = TANGENT; let _e179 = nm.x; let _e182 = BINORMAL; let _e184 = nm.y; let _e188 = NORMAL; let _e190 = nm.z; let _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); let _e199 = NORMAL; hedra_n = normalize((back_3 * _e199)); } let _e203 = LIGHT_VERTEX; if any((_e203 != vertex0_)) { let _e208 = INV_VIEW_MATRIX; let _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1f)).xyz; return; } else { return; } } fn hedra_culled(flags_3: u32) -> bool { var local_24: bool; var local_25: bool; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if false { let _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } let _e12 = local_24; if _e12 { return true; } if HEDRA_ALPHA_SCISSOR { let _e18 = ALPHA; let _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = (_e18 < _e20); } else { local_25 = false; } let _e23 = local_25; return _e23; } fn hedra_view_dir(world_11: vec3) -> vec3 { let _e5 = G.view[0][2]; let _e10 = G.view[1][2]; let _e15 = G.view[2][2]; let view_dir = vec3(_e5, _e10, _e15); let _e19 = G.camera_pos; let _e27 = G.camera_pos.w; return select(normalize((_e19.xyz - world_11)), normalize(view_dir), (_e27 > 0.5f)); } fn hedra_schlick(u: f32) -> f32 { let m_5 = clamp((1f - u), 0f, 1f); let m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } fn hedra_diffuse_brdf(nl_1: f32, nv_2: f32, lh: f32, r_4: f32) -> f32 { let c_nl = max(nl_1, 0f); if false { return (max(0f, ((nl_1 + r_4) / ((1f + r_4) * (1f + r_4)))) * 0.31830987f); } if false { return (smoothstep(-(r_4), max(r_4, 0.01f), nl_1) * 0.31830987f); } if false { let fd90_ = ((((2f * lh) * lh) * r_4) - 0.5f); let _e32 = hedra_schlick(nv_2); let fdv = (1f + (fd90_ * _e32)); let _e36 = hedra_schlick(c_nl); let fdl = (1f + (fd90_ * _e36)); return (((0.31830987f * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987f); } fn hedra_light_modes(n_9: vec3, v_4: vec3, l_3: vec3, radiance_2: vec3, diffuse_2: vec3, f0_2: vec3, a2_3: f32, r_5: f32, specular_1: f32) -> vec3 { var c_19: vec3; var mid: f32; var local_26: bool; let nl_3 = min(dot(n_9, l_3), 1f); let nv_4 = max(dot(n_9, v_4), 0.0001f); let h_3 = normalize((l_3 + v_4)); let lh_1 = clamp(dot(l_3, h_3), 0f, 1f); let _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if (r_5 > 0f) { if false { let refl = normalize(-(reflect(l_3, n_9))); let rv = dot(refl, v_4); mid = (1f - r_5); let _e35 = mid; let _e36 = mid; mid = (_e35 * _e36); let _e38 = c_19; let _e40 = mid; let _e44 = mid; let _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5f)), (_e44 + (r_5 * 0.5f)), rv) * _e49) * specular_1))); } else { if false { local_26 = (nl_3 > 0f); } else { local_26 = false; } let _e60 = local_26; if _e60 { let nh_2 = max(dot(n_9, h_3), 0f); let vh_2 = max(dot(v_4, h_3), 0f); let _e67 = f_schlick(f0_2, vh_2); let _e68 = c_19; let _e69 = d_ggx(nh_2, a2_3); let _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } let _e77 = c_19; return _e77; } fn hedra_light_dir(i_11: u32, world_12: vec3) -> vec4 { var atten_1: f32; let li_1 = Lit.lights[i_11]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return vec4(-(li_1.direction.xyz), 1f); } let rel_1 = (li_1.position.xyz - world_12); let d_16 = length(rel_1); let l_7 = (rel_1 / vec3(max(d_16, 0.000001f))); let _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { let cone = li_1.spot.x; let scos = max(dot(-(l_7), li_1.direction.xyz), cone); let rim_1 = max(0.0001f, ((1f - scos) / max((1f - cone), 0.000001f))); let _e49 = atten_1; atten_1 = (_e49 * (1f - pow(rim_1, li_1.spot.y))); } let _e56 = atten_1; return vec4(l_7, _e56); } fn hedra_shadow(i_12: u32, l_4: vec3) -> f32 { var local_27: bool; if false { let _e10 = Lit.lights[i_12].info.y; local_27 = (_e10 != LIGHT_SHADOWED); } else { local_27 = true; } let _e14 = local_27; if _e14 { return 1f; } let _e17 = hedra_world; let _e19 = hedra_n_geo; let _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } fn hedra_ambient(n_10: vec3, v_5: vec3, diffuse_3: vec3, f0_3: vec3, roughness_3: f32, metallic: f32) -> vec3 { var ambient: vec3; var diffuse_amb: vec3; var spec_amb: vec3; var dif: vec3; var dif_1: vec3; var dif_2: vec3; let world_13 = hedra_world; let nv_5 = max(dot(n_10, v_5), 0.0001f); let f_amb = (f0_3 + ((max(vec3((1f - roughness_3)), f0_3) - f0_3) * pow((1f - nv_5), 5f))); let _e25 = gi_diffuse(n_10, false, vec3(0f)); let _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { let _e38 = Sky.ibl.x; let _e42 = Sky.sun.w; let scale = (_e38 * _e42); let _e46 = Sky.ambient; diffuse_amb = _e46.xyz; let _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { let _e59 = Sky.ambient; let _e61 = sky_dir(n_10); let _e62 = sh_irradiance(_e61); let _e67 = Sky.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if (_e25.w > 0f) { diffuse_amb = _e25.xyz; } let _e75 = Sky.ambient; spec_amb = _e75.xyz; let _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { let _e88 = sky_dir(reflect(-(v_5), n_10)); let _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { let _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = vec3(0f); } } let _e101 = env_brdf_approx(roughness_3, nv_5); let _e105 = Probe.counts.x; if (_e105 > 0u) { let _e113 = O.extra.z; let _e114 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e113); let _e115 = spec_amb; let spec_1 = ((_e115 * (1f - _e114.w)) + _e114.xyz); let _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0f) { let _e130 = O.extra.z; let _e131 = probe_ambient(world_13, n_10, _e130); let _e132 = diffuse_amb; dif = ((_e132 * (1f - _e131.w)) + _e131.xyz); } let _e139 = dif; ambient = ((diffuse_3 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } else { let _e154 = diffuse_amb; let _e156 = spec_amb; ambient = ((diffuse_3 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50f * f0_3.y), metallic, 1f)))))); } } else { let _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { let _e180 = Lit.up; let up = _e180.xyz; let _e184 = Lit.sky_top; let _e188 = Lit.sky_horizon; let sky_avg = ((_e184.xyz + _e188.xyz) * 0.5f); let _e195 = Lit.ground_horizon; let _e199 = Lit.ground_bottom; let ground_avg = ((_e195.xyz + _e199.xyz) * 0.5f); let irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up) * 0.5f) + 0.5f), 0f, 1f)); let _e215 = sky(reflect(-(v_5), n_10)); let blurred = mix(_e215, sky_avg, roughness_3); let _e220 = Probe.counts.x; if (_e220 > 0u) { let _e228 = O.extra.z; let _e229 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e228); let _e233 = Lit.ambient.w; let spec_2 = (((blurred * _e233) * (1f - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if (_e25.w <= 0f) { let _e249 = O.extra.z; let _e250 = probe_ambient(world_13, n_10, _e249); let _e254 = Lit.ambient.w; dif_1 = (((irradiance * _e254) * (1f - _e250.w)) + _e250.xyz); } let _e262 = dif_1; ambient = ((diffuse_3 * _e262) + (spec_2 * f_amb)); } else { if (_e25.w > 0f) { let _e275 = Lit.ambient.w; ambient = ((diffuse_3 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { let _e284 = Lit.ambient.w; ambient = (((diffuse_3 * irradiance) + (blurred * f_amb)) * _e284); } } } else { let _e289 = Probe.counts.x; if (_e289 > 0u) { let _e297 = O.extra.z; let _e298 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e297); let _e301 = Lit.ambient; let spec_3 = ((_e301.xyz * (1f - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if (_e25.w <= 0f) { let _e317 = O.extra.z; let _e318 = probe_ambient(world_13, n_10, _e317); let _e321 = Lit.ambient; dif_2 = ((_e321.xyz * (1f - _e318.w)) + _e318.xyz); } let _e329 = dif_2; ambient = ((diffuse_3 * _e329) + (spec_3 * f_amb)); } else { if (_e25.w > 0f) { let _e340 = Lit.ambient; ambient = ((diffuse_3 * _e25.xyz) + (_e340.xyz * f_amb)); } else { let _e346 = Lit.ambient; ambient = (_e346.xyz * (diffuse_3 + f_amb)); } } } } let _e350 = ambient; return _e350; } fn hedra_fog(c_in_1: vec3, v_6: vec3) -> vec3 { var c_20: vec3; c_20 = c_in_1; if HEDRA_FOG_DISABLED { let _e4 = c_20; return _e4; } let _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { let _e13 = c_20; let _e15 = hedra_world; let _e17 = surface_fog(_e13, _e15, -(v_6)); c_20 = _e17; } let _e21 = O.decals.w; if (_e21 != 0u) { let _e24 = c_20; let _e26 = hedra_world; let _e30 = O.decals.w; let _e31 = fog_volumes(_e24, _e26, _e30); c_20 = _e31; } let _e32 = c_20; return _e32; } fn hedra_lit(clip: vec4) -> vec3 { var surf_1: DecalSurface; var c_21: vec3 = vec3(0f); var k_11: u32 = 0u; var local_28: bool; var radiance_3: vec3; var local_29: bool; var local_30: bool; var ambient_1: vec3 = vec3(0f); var local_31: bool; let n_geo_3 = hedra_n_geo; let _e4 = ALBEDO; let _e6 = METALLIC; let _e11 = ROUGHNESS; let _e16 = AO; let _e18 = hedra_n; let _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0f, 1f), clamp(_e11, 0.045f, 1f), _e16, _e18, _e20); let _e26 = O.decals.z; if (_e26 > 0u) { let _e30 = hedra_world; let _e31 = surf_1; let _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; let _e35 = surf_1.base; ALBEDO = _e35; let _e38 = surf_1.metallic; METALLIC = _e38; let _e41 = surf_1.roughness; ROUGHNESS = _e41; let _e45 = G.view; let _e46 = hedra_mat3_(_e45); let _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } let metallic_1 = surf_1.metallic; let roughness_4 = surf_1.roughness; let a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); let base = surf_1.base; let diffuse_4 = (base * (1f - metallic_1)); let _e64 = SPECULAR; let _e68 = SPECULAR; let f0_4 = mix(vec3(((0.16f * _e64) * _e68)), base, metallic_1); let n_14 = surf_1.normal; let _e75 = hedra_world; let _e76 = hedra_view_dir(_e75); let _e79 = G.view; let _e80 = hedra_mat3_(_e79); let _e82 = surf_1.occlusion; let _e84 = AO_LIGHT_AFFECT; let ao_direct = mix(1f, _e82, _e84); DIFFUSE_LIGHT = vec3(0f); SPECULAR_LIGHT = vec3(0f); let _e96 = object_light_count(); loop { let _e99 = k_11; if (_e99 < _e96) { } else { break; } { let _e101 = k_11; let _e102 = object_light(_e101); let li_2 = Lit.lights[_e102]; let _e108 = hedra_world; let _e109 = hedra_light_dir(_e102, _e108); let l_8 = _e109.xyz; let atten_2 = _e109.w; if HEDRA_HAS_LIGHT { if !((li_2.info.x == LIGHT_DIRECTIONAL)) { local_28 = (atten_2 > 0f); } else { local_28 = true; } let _e123 = local_28; if _e123 { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; let _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } let _e142 = RIM; if (_e142 > 0f) { let rim_light = pow(max(0.0001f, (1f - max(dot(n_14, _e76), 0.0001f))), max(0f, ((1f - roughness_4) * 16f))); let _e159 = c_21; let _e164 = RIM; let _e170 = RIM_TINT; c_21 = (_e159 + (((diffuse_4 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1f), base, _e170))); } if (atten_2 > 0f) { radiance_3 = (li_2.color.xyz * atten_2); if (li_2.info.y == LIGHT_SHADOWED) { local_29 = false; } else { local_29 = false; } let _e188 = local_29; if _e188 { let _e192 = hedra_world; let _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if true { local_30 = false; } else { local_30 = false; } let _e201 = local_30; if _e201 { let _e202 = c_21; let _e203 = radiance_3; let _e206 = light_specular(n_14, _e76, l_8, _e203, diffuse_4, f0_4, a2_4, li_2.spot.z); c_21 = (_e202 + _e206); } else { let _e208 = c_21; let _e209 = radiance_3; let _e212 = hedra_light_modes(n_14, _e76, l_8, _e209, diffuse_4, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = (_e208 + _e212); } let _e215 = BACKLIGHT; if any((_e215 > vec3(0f))) { let nl_4 = max(min(dot(n_14, l_8), 1f), 0f); let _e225 = c_21; let _e226 = radiance_3; let _e229 = BACKLIGHT; c_21 = (_e225 + (((diffuse_4 * _e226) * _e229) * (0.31830987f - (nl_4 * 0.31830987f)))); } } } continuing { let _e238 = k_11; k_11 = (_e238 + 1u); } } if HEDRA_HAS_LIGHT { let _e242 = DIFFUSE_LIGHT; let _e249 = SPECULAR_LIGHT; c_21 = ((((_e242 * base) * ao_direct) * (1f - metallic_1)) + (_e249 * ao_direct)); } else { let _e253 = AO_LIGHT_AFFECT; if (_e253 > 0f) { let _e256 = c_21; c_21 = (_e256 * ao_direct); } } if true { let _e262 = hedra_ambient(n_14, _e76, diffuse_4, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } let _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { let _e273 = hedra_transparent(); local_31 = !(_e273); } else { local_31 = false; } let _e276 = local_31; if _e276 { let _e282 = textureLoad(t_ao, vec2(floor(clip.xy)), 0i); let ssao = _e282.x; let _e284 = c_21; let _e286 = surf_1.occlusion; let _e291 = Lit.tone.z; let _e295 = Lit.tone.w; c_21 = (_e284 * mix(1f, min(ssao, _e286), (_e291 * _e295))); let _e300 = c_21; let _e301 = ambient_1; let _e303 = surf_1.occlusion; c_21 = (_e300 + (_e301 * min(_e303, ssao))); } else { let _e307 = c_21; let _e308 = ambient_1; let _e310 = surf_1.occlusion; c_21 = (_e307 + (_e308 * _e310)); } let _e313 = c_21; let _e315 = surf_1.emission; c_21 = (_e313 + _e315); let _e317 = c_21; let _e318 = hedra_fog(_e317, _e76); let _e319 = tonemap(_e318); return _e319; } fn hedra_output(c_22: vec3) -> vec4 { var rgb: vec3; rgb = c_22; if false { let _e3 = rgb; let _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } let _e7 = rgb; let _e9 = ALPHA; let _e10 = hedra_transparent(); let o_9 = vec4(_e7, select(1f, _e9, _e10)); let _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return vec4(max(o_9.xyz, vec3(0f)), clamp(o_9.w, 0f, 1f)); } let k_17 = clamp(o_9, vec4(0f), vec4(1f)); let _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { let _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } fn hedra_bindings() -> vec3 { let uv_9 = vec2(0.5f); let _e5 = textureSampleLevel(t_panorama, s_panorama, uv_9, 0f); let _e11 = textureSampleLevel(t_lightmap, s_lightmap, uv_9, 0i, 0f); let _e17 = textureSampleLevel(t_screen, s_radiance, uv_9, 0f); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } @vertex fn vs_custom(in: VsIn, @location(10) uv1_: vec2, @builtin(vertex_index) vid: u32) -> CustomOut { let _e5 = O.model; let _e8 = O.normal; let _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, vec4(1f), vid); vertex(); let _e24 = hedra_tangent_sign(in.tangent.w, false); let _e25 = hedra_vertex_space(); if _e25 { let _e26 = hedra_vertex_world(); let _e28 = NORMAL; let _e29 = hedra_vertex_dir(_e28); let _e31 = TANGENT; let _e32 = hedra_vertex_dir(_e31); let _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags); return _e34; } let _e37 = O.model; let _e39 = VERTEX; let world_14 = (_e37 * vec4(_e39, 1f)); let _e45 = O.normal; let _e47 = NORMAL; let n_15 = (_e45 * vec4(_e47, 0f)).xyz; let _e54 = O.model; let _e56 = TANGENT; let t_10 = (_e54 * vec4(_e56, 0f)).xyz; let _e62 = hedra_end_vertex(world_14, n_15, t_10, _e24, in.flags); return _e62; } @vertex fn vs_custom_instanced(in_1: VsIn, inst: InstIn, @location(10) uv1_1: vec2, extra: HedraInstExtra, @builtin(vertex_index) vid_1: u32) -> CustomOut { let bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); let by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); let bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); let det = dot(bx, cross(by, bz)); let flip_1 = (det < 0f); let cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * select(1f, -1f, flip_1)); let basis = mat4x4(vec4(bx, 0f), vec4(by, 0f), vec4(bz, 0f), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1f)); let _e55 = O.model; let _e59 = O.normal; let _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); let flags_4 = (in_1.flags | select(0u, F_INSTANCE_MIRRORED, flip_1)); let _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); let _e80 = hedra_vertex_space(); if _e80 { let _e81 = hedra_vertex_world(); let _e83 = NORMAL; let _e84 = hedra_vertex_dir(_e83); let _e86 = TANGENT; let _e87 = hedra_vertex_dir(_e86); let _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); return _e88; } let _e90 = VERTEX; let p1_ = vec4(_e90, 1f); let local_32 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); let _e102 = O.model; let world_15 = (_e102 * vec4(local_32, 1f)); let _e108 = O.normal; let _e110 = NORMAL; let n_16 = (_e108 * vec4((cofactor * _e110), 0f)).xyz; let _e118 = O.model; let _e121 = TANGENT; let t_11 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0f)).xyz; let _e127 = hedra_end_vertex(world_15, n_16, t_11, _e79, flags_4); return _e127; } @vertex fn vs_custom_skinned(in_2: VsIn, s: SkinIn, @location(10) uv1_2: vec2, @builtin(vertex_index) vid_2: u32) -> CustomOut { let _e4 = skin_rows(s); let p_12 = vec4(in_2.pos, 1f); let skinned = vec3(dot(_e4.r0_, p_12), dot(_e4.r1_, p_12), dot(_e4.r2_, p_12)); let bx_1 = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); let by_1 = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); let bz_1 = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); let det_1 = dot(bx_1, cross(by_1, bz_1)); let flip_2 = (det_1 < 0f); let cofactor_1 = mat3x3(cross(by_1, bz_1), cross(bz_1, bx_1), cross(bx_1, by_1)); let n0_ = normalize(((cofactor_1 * in_2.normal) * select(1f, -1f, flip_2))); let t0_1 = normalize((mat3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz)); let _e58 = O.model; let _e61 = O.normal; let _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0i; INSTANCE_CUSTOM = vec4(0f); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1f), vid_2); vertex(); let flags_5 = (in_2.flags | select(0u, F_INSTANCE_MIRRORED, flip_2)); let _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2); let _e82 = hedra_vertex_space(); if _e82 { let _e83 = hedra_vertex_world(); let _e85 = NORMAL; let _e86 = hedra_vertex_dir(_e85); let _e88 = TANGENT; let _e89 = hedra_vertex_dir(_e88); let _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5); return _e90; } let _e93 = O.model; let _e95 = VERTEX; let world_16 = (_e93 * vec4(_e95, 1f)); let _e101 = O.normal; let _e103 = NORMAL; let n_17 = (_e101 * vec4(_e103, 0f)).xyz; let _e110 = O.model; let _e112 = TANGENT; let t_12 = (_e110 * vec4(_e112, 0f)).xyz; let _e117 = hedra_end_vertex(world_16, n_17, t_12, _e81, flags_5); return _e117; } @fragment fn fs_custom(in_3: CustomOut, @builtin(front_facing) facing: bool) -> @location(0) vec4 { var c: vec3; hedra_fragment(in_3, facing); let _e3 = hedra_culled(in_3.flags); if _e3 { discard; } let _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if (_e7 <= 0f) { discard; } if HEDRA_UNSHADED { let _e13 = ALBEDO; let _e15 = hedra_world; let _e16 = hedra_view_dir(_e15); let _e17 = hedra_fog(_e13, _e16); let _e18 = tonemap(_e17); c = _e18; } else { let _e20 = hedra_lit(in_3.clip); c = _e20; } let _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { let _e27 = c; let _e28 = hedra_bindings(); c = (_e27 + _e28); } let _e33 = G.params.x; if (_e33 == SHADE_LIT) { let _e36 = c; let _e37 = item_fade(_e36); let _e38 = emerge_tint(_e37, _e7); c = _e38; } let _e39 = c; let _e40 = hedra_output(_e39); return _e40; } @fragment fn fs_custom_depth(in_4: CustomOut, @builtin(front_facing) facing_1: bool) { var local: bool; var local_1: bool; hedra_fragment(in_4, facing_1); if !(((in_4.flags & F_HIDDEN) != 0u)) { if HEDRA_ALPHA_SCISSOR { let _e14 = ALPHA; let _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } let _e19 = local_1; local = _e19; } else { local = true; } let _e21 = local; if _e21 { discard; } let _e25 = emerge_reveal(in_4.world, vec2(-1f)); if (_e25 <= 0f) { discard; } else { return; } } @fragment fn fs_custom_id(in_5: CustomOut, @builtin(front_facing) facing_2: bool) -> IdOut { var local_2: bool; var out: IdOut; hedra_fragment(in_5, facing_2); let _e3 = hedra_culled(in_5.flags); if !(_e3) { let _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0f); } else { local_2 = true; } let _e14 = local_2; if _e14 { discard; } let id = O.params.z; let _e24 = O.params.x; let _e33 = O.params.y; let bits = (select(0u, 1u, (_e24 == 1u)) | select(0u, 2u, (_e33 == 1u))); out.id = (vec4(f32((id & 255u)), f32(((id >> 8u) & 255u)), f32(((id >> 16u) & 255u)), f32(bits)) / vec4(255f)); let _e58 = out; return _e58; } @fragment fn fs_custom_normal_depth(in_6: CustomOut, @builtin(front_facing) facing_3: bool) -> HedraNormalDepthOut { var local_3: bool; var out_1: HedraNormalDepthOut; hedra_fragment(in_6, facing_3); let _e3 = hedra_culled(in_6.flags); if !(_e3) { let _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0f); } else { local_3 = true; } let _e14 = local_3; if _e14 { discard; } let _e17 = G.view; let _e18 = hedra_mat3_(_e17); let _e20 = hedra_n; let n_view = normalize((_e18 * _e20)); let _e24 = METALLIC; let metallic_2 = clamp(_e24, 0f, 1f); let _e29 = SPECULAR; let _e33 = SPECULAR; let _e37 = ALBEDO; let f0_5 = mix(vec3(((0.16f * _e29) * _e33)), _e37, metallic_2); let _e43 = G.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1f)).z)); let _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_5, vec3(0f), vec3(1f)), clamp(_e58, 0.045f, 1f)); let _e63 = out_1; return _e63; }  @Ð Ð/ ,@ �˜J£&ѰA¬ËÎ-”ÒÑ'‘+ëjl€_7hh'· vs_custommainX�#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; float alpha_cut; float hedra_pad0_; vec2 snap_resolution; float affine_strength; float affine_near; vec3 sun_direction; float hedra_pad1_; vec3 sun_color; float hedra_pad2_; vec3 sky_ambient; float hedra_pad3_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_2Vertex { HedraParams _group_2_binding_0_vs; }; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } vec4 snap_view(vec4 view_pos) { float _e4 = _group_2_binding_0_vs.snap_resolution.x; if ((_e4 <= 0.0)) { return view_pos; } mat4x4 _e9 = _group_0_binding_0_vs.proj; vec4 clip_1 = (_e9 * view_pos); if ((clip_1.w <= 0.0001)) { return view_pos; } vec2 _e16 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e16 * 0.5); vec2 ndc = (clip_1.xy / vec2(clip_1.w)); vec2 snapped = (roundEven((ndc * half_res)) / half_res); mat4x4 _e27 = INV_PROJECTION_MATRIX; vec4 back = (_e27 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); return vec4((back.xyz / vec3(back.w)), 1.0); } void vertex() { float diffuse_1 = 0.0; mat3x3 _e1 = MODEL_NORMAL_MATRIX; vec3 _e3 = NORMAL; vec3 n_11 = normalize((_e1 * _e3)); vec3 _e8 = _group_2_binding_0_vs.sun_direction; vec3 _e9 = scene_to_frame(_e8); vec3 sun = normalize(_e9); diffuse_1 = max(dot(n_11, sun), 0.0); float _e17 = _group_2_binding_0_vs.light_bands; if ((_e17 >= 2.0)) { float _e20 = diffuse_1; float _e23 = _group_2_binding_0_vs.light_bands; float _e30 = _group_2_binding_0_vs.light_bands; diffuse_1 = (floor(((_e20 * _e23) + 0.5)) / _e30); } vec3 _e34 = _group_2_binding_0_vs.ground_ambient; vec3 _e37 = _group_2_binding_0_vs.sky_ambient; vec3 ambient_2 = mix(_e34, _e37, ((n_11.z * 0.5) + 0.5)); vec3 _e47 = _group_2_binding_0_vs.sun_color; float _e48 = diffuse_1; vec4 _e52 = COLOR; float _e57 = _group_2_binding_0_vs.overbright; vec3 _e61 = _group_2_binding_0_vs.emission; gouraud = ((((ambient_2 + (_e47 * _e48)) * _e52.xyz) * _e57) + _e61); mat4x4 _e64 = MODELVIEW_MATRIX; vec3 _e66 = VERTEX; vec4 _e70 = snap_view((_e64 * vec4(_e66, 1.0))); VERTEX = _e70.xyz; mat3x3 _e75 = MODELVIEW_NORMAL_MATRIX; vec3 _e77 = NORMAL; NORMAL = normalize((_e75 * _e77)); vec2 _e81 = UV; vec2 _e84 = _group_2_binding_0_vs.uv_scale; vec2 _e88 = _group_2_binding_0_vs.uv_offset; vec2 _e92 = _group_2_binding_0_vs.uv_scroll; float _e96 = _group_0_binding_0_vs.fparams.w; vec2 uv_3 = (((_e81 * _e84) + _e88) + (_e92 * _e96)); UV = uv_3; mat4x4 _e102 = _group_0_binding_0_vs.proj; float w_3 = (_e102 * _e70).w; float _e107 = _group_2_binding_0_vs.affine_strength; float _e112 = _group_2_binding_0_vs.affine_near; float weight = (_e107 * clamp(((w_3 - 0.25) / max(_e112, 0.001)), 0.0, 1.0)); affine_uv = vec4((uv_3 * w_3), w_3, weight); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = false; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_22 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_22 = false; } else { local_22 = false; } bool _e31 = local_22; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); vec2 uv1_ = _p2vs_location10; uint vid = uint(gl_VertexID); mat4x4 _e5 = _group_1_binding_0_vs.model; mat4x4 _e8 = _group_1_binding_0_vs.normal; mat3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(in_.pos, in_.normal, in_.tangent, in_.uv, uv1_, vec4(1.0), vid); vertex(); float _e24 = hedra_tangent_sign(in_.tangent.w, false); bool _e25 = hedra_vertex_space(); if (_e25) { vec4 _e26 = hedra_vertex_world(); vec3 _e28 = NORMAL; vec3 _e29 = hedra_vertex_dir(_e28); vec3 _e31 = TANGENT; vec3 _e32 = hedra_vertex_dir(_e31); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in_.flags); gl_Position = _e34.clip; _vs2fs_location0 = _e34.world; _vs2fs_location1 = _e34.normal; _vs2fs_location2 = _e34.uv; _vs2fs_location3 = _e34.flags; _vs2fs_location4 = _e34.tangent; _vs2fs_location5 = _e34.color; _vs2fs_location6 = _e34.uv2_; _vs2fs_location7 = _e34.instance_id; _vs2fs_location8 = _e34.hedra_v0_; _vs2fs_location9 = _e34.hedra_v1_; _vs2fs_location10 = _e34.hedra_v2_; _vs2fs_location11 = _e34.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e37 = _group_1_binding_0_vs.model; vec3 _e39 = VERTEX; vec4 world_13 = (_e37 * vec4(_e39, 1.0)); mat4x4 _e45 = _group_1_binding_0_vs.normal; vec3 _e47 = NORMAL; vec3 n_12 = (_e45 * vec4(_e47, 0.0)).xyz; mat4x4 _e54 = _group_1_binding_0_vs.model; vec3 _e56 = TANGENT; vec3 t_5 = (_e54 * vec4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_13, n_12, t_5, _e24, in_.flags); gl_Position = _e62.clip; _vs2fs_location0 = _e62.world; _vs2fs_location1 = _e62.normal; _vs2fs_location2 = _e62.uv; _vs2fs_location3 = _e62.flags; _vs2fs_location4 = _e62.tangent; _vs2fs_location5 = _e62.color; _vs2fs_location6 = _e62.uv2_; _vs2fs_location7 = _e62.instance_id; _vs2fs_location8 = _e62.hedra_v0_; _vs2fs_location9 = _e62.hedra_v1_; _vs2fs_location10 = _e62.hedra_v2_; _vs2fs_location11 = _e62.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_instancedmain:’#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; float alpha_cut; float hedra_pad0_; vec2 snap_resolution; float affine_strength; float affine_near; vec3 sun_direction; float hedra_pad1_; vec3 sun_color; float hedra_pad2_; vec3 sky_ambient; float hedra_pad3_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_2Vertex { HedraParams _group_2_binding_0_vs; }; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec2 _p2vs_location10; layout(location = 14) in vec4 _p2vs_location14; layout(location = 15) in float _p2vs_location15; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } vec4 snap_view(vec4 view_pos) { float _e4 = _group_2_binding_0_vs.snap_resolution.x; if ((_e4 <= 0.0)) { return view_pos; } mat4x4 _e9 = _group_0_binding_0_vs.proj; vec4 clip_1 = (_e9 * view_pos); if ((clip_1.w <= 0.0001)) { return view_pos; } vec2 _e16 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e16 * 0.5); vec2 ndc = (clip_1.xy / vec2(clip_1.w)); vec2 snapped = (roundEven((ndc * half_res)) / half_res); mat4x4 _e27 = INV_PROJECTION_MATRIX; vec4 back = (_e27 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); return vec4((back.xyz / vec3(back.w)), 1.0); } void vertex() { float diffuse_1 = 0.0; mat3x3 _e1 = MODEL_NORMAL_MATRIX; vec3 _e3 = NORMAL; vec3 n_11 = normalize((_e1 * _e3)); vec3 _e8 = _group_2_binding_0_vs.sun_direction; vec3 _e9 = scene_to_frame(_e8); vec3 sun = normalize(_e9); diffuse_1 = max(dot(n_11, sun), 0.0); float _e17 = _group_2_binding_0_vs.light_bands; if ((_e17 >= 2.0)) { float _e20 = diffuse_1; float _e23 = _group_2_binding_0_vs.light_bands; float _e30 = _group_2_binding_0_vs.light_bands; diffuse_1 = (floor(((_e20 * _e23) + 0.5)) / _e30); } vec3 _e34 = _group_2_binding_0_vs.ground_ambient; vec3 _e37 = _group_2_binding_0_vs.sky_ambient; vec3 ambient_2 = mix(_e34, _e37, ((n_11.z * 0.5) + 0.5)); vec3 _e47 = _group_2_binding_0_vs.sun_color; float _e48 = diffuse_1; vec4 _e52 = COLOR; float _e57 = _group_2_binding_0_vs.overbright; vec3 _e61 = _group_2_binding_0_vs.emission; gouraud = ((((ambient_2 + (_e47 * _e48)) * _e52.xyz) * _e57) + _e61); mat4x4 _e64 = MODELVIEW_MATRIX; vec3 _e66 = VERTEX; vec4 _e70 = snap_view((_e64 * vec4(_e66, 1.0))); VERTEX = _e70.xyz; mat3x3 _e75 = MODELVIEW_NORMAL_MATRIX; vec3 _e77 = NORMAL; NORMAL = normalize((_e75 * _e77)); vec2 _e81 = UV; vec2 _e84 = _group_2_binding_0_vs.uv_scale; vec2 _e88 = _group_2_binding_0_vs.uv_offset; vec2 _e92 = _group_2_binding_0_vs.uv_scroll; float _e96 = _group_0_binding_0_vs.fparams.w; vec2 uv_3 = (((_e81 * _e84) + _e88) + (_e92 * _e96)); UV = uv_3; mat4x4 _e102 = _group_0_binding_0_vs.proj; float w_3 = (_e102 * _e70).w; float _e107 = _group_2_binding_0_vs.affine_strength; float _e112 = _group_2_binding_0_vs.affine_near; float weight = (_e107 * clamp(((w_3 - 0.25) / max(_e112, 0.001)), 0.0, 1.0)); affine_uv = vec4((uv_3 * w_3), w_3, weight); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = false; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_22 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_22 = false; } else { local_22 = false; } bool _e31 = local_22; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_1 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); InstIn inst = InstIn(_p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9); vec2 uv1_1 = _p2vs_location10; HedraInstExtra extra = HedraInstExtra(_p2vs_location14, _p2vs_location15); uint vid_1 = uint(gl_VertexID); vec3 bx = vec3(inst.row0_.x, inst.row1_.x, inst.row2_.x); vec3 by = vec3(inst.row0_.y, inst.row1_.y, inst.row2_.y); vec3 bz = vec3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = (mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)) * (flip_1 ? -1.0 : 1.0)); mat4x4 basis = mat4x4(vec4(bx, 0.0), vec4(by, 0.0), vec4(bz, 0.0), vec4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); mat4x4 _e55 = _group_1_binding_0_vs.model; mat4x4 _e59 = _group_1_binding_0_vs.normal; mat3x3 _e60 = hedra_mat3_(_e59); hedra_matrices((_e55 * basis), (_e60 * cofactor)); INSTANCE_ID = int(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1); vertex(); uint flags_4 = (in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1); bool _e80 = hedra_vertex_space(); if (_e80) { vec4 _e81 = hedra_vertex_world(); vec3 _e83 = NORMAL; vec3 _e84 = hedra_vertex_dir(_e83); vec3 _e86 = TANGENT; vec3 _e87 = hedra_vertex_dir(_e86); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4); gl_Position = _e88.clip; _vs2fs_location0 = _e88.world; _vs2fs_location1 = _e88.normal; _vs2fs_location2 = _e88.uv; _vs2fs_location3 = _e88.flags; _vs2fs_location4 = _e88.tangent; _vs2fs_location5 = _e88.color; _vs2fs_location6 = _e88.uv2_; _vs2fs_location7 = _e88.instance_id; _vs2fs_location8 = _e88.hedra_v0_; _vs2fs_location9 = _e88.hedra_v1_; _vs2fs_location10 = _e88.hedra_v2_; _vs2fs_location11 = _e88.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vec3 _e90 = VERTEX; vec4 p1_ = vec4(_e90, 1.0); vec3 local_32 = vec3(dot(inst.row0_, p1_), dot(inst.row1_, p1_), dot(inst.row2_, p1_)); mat4x4 _e102 = _group_1_binding_0_vs.model; vec4 world_13 = (_e102 * vec4(local_32, 1.0)); mat4x4 _e108 = _group_1_binding_0_vs.normal; vec3 _e110 = NORMAL; vec3 n_12 = (_e108 * vec4((cofactor * _e110), 0.0)).xyz; mat4x4 _e118 = _group_1_binding_0_vs.model; vec3 _e121 = TANGENT; vec3 t_5 = (_e118 * vec4((mat3x3(bx, by, bz) * _e121), 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_13, n_12, t_5, _e79, flags_4); gl_Position = _e127.clip; _vs2fs_location0 = _e127.world; _vs2fs_location1 = _e127.normal; _vs2fs_location2 = _e127.uv; _vs2fs_location3 = _e127.flags; _vs2fs_location4 = _e127.tangent; _vs2fs_location5 = _e127.color; _vs2fs_location6 = _e127.uv2_; _vs2fs_location7 = _e127.instance_id; _vs2fs_location8 = _e127.hedra_v0_; _vs2fs_location9 = _e127.hedra_v1_; _vs2fs_location10 = _e127.hedra_v2_; _vs2fs_location11 = _e127.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } vs_custom_skinnedmainû”#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; float alpha_cut; float hedra_pad0_; vec2 snap_resolution; float affine_strength; float affine_near; vec3 sun_direction; float hedra_pad1_; vec3 sun_color; float hedra_pad2_; vec3 sky_ambient; float hedra_pad3_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(std140) uniform SkinU_block_2Vertex { SkinU _group_1_binding_1_vs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec4 POSITION = vec4(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); int INSTANCE_ID = 0; vec4 INSTANCE_CUSTOM = vec4(0.0); int VERTEX_ID = 0; mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); layout(std140) uniform HedraParams_block_3Vertex { HedraParams _group_2_binding_0_vs; }; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 12) in uvec4 _p2vs_location12; layout(location = 13) in vec4 _p2vs_location13; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out vec4 _vs2fs_location5; smooth out vec2 _vs2fs_location6; flat out uint _vs2fs_location7; smooth out vec4 _vs2fs_location8; smooth out vec4 _vs2fs_location9; smooth out vec4 _vs2fs_location10; smooth out vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_vs.params.y; uint _e13 = _group_1_binding_0_vs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_vs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_vs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_vs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_vs.select_color; vec4 _e79 = _group_0_binding_0_vs.active_color; uint _e83 = _group_1_binding_0_vs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_vs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_vs.view; mat4x4 _e7 = _group_1_binding_0_vs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_vs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_vs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_vs.gi[0].x; vec4 _e9 = _group_1_binding_0_vs.gi[0]; float _e17 = _group_1_binding_0_vs.gi[1].x; vec4 _e21 = _group_1_binding_0_vs.gi[1]; float _e29 = _group_1_binding_0_vs.gi[2].x; vec4 _e33 = _group_1_binding_0_vs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_vs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } vec4 skin_row(uint k_10, uint r_3) { vec4 _e10 = _group_1_binding_1_vs.rows[((min(k_10, 254u) * 3u) + r_3)]; return _e10; } SkinRows skin_rows(SkinIn s_1) { SkinRows m_1 = SkinRows(vec4(0.0), vec4(0.0), vec4(0.0)); uvec4 j = s_1.joints; vec4 w_3 = s_1.weights; vec4 _e8 = skin_row(j.x, 0u); vec4 _e13 = skin_row(j.y, 0u); vec4 _e19 = skin_row(j.z, 0u); vec4 _e25 = skin_row(j.w, 0u); m_1.r0_ = ((((w_3.x * _e8) + (w_3.y * _e13)) + (w_3.z * _e19)) + (w_3.w * _e25)); vec4 _e32 = skin_row(j.x, 1u); vec4 _e37 = skin_row(j.y, 1u); vec4 _e43 = skin_row(j.z, 1u); vec4 _e49 = skin_row(j.w, 1u); m_1.r1_ = ((((w_3.x * _e32) + (w_3.y * _e37)) + (w_3.z * _e43)) + (w_3.w * _e49)); vec4 _e56 = skin_row(j.x, 2u); vec4 _e61 = skin_row(j.y, 2u); vec4 _e67 = skin_row(j.z, 2u); vec4 _e73 = skin_row(j.w, 2u); m_1.r2_ = ((((w_3.x * _e56) + (w_3.y * _e61)) + (w_3.z * _e67)) + (w_3.w * _e73)); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } vec4 snap_view(vec4 view_pos) { float _e4 = _group_2_binding_0_vs.snap_resolution.x; if ((_e4 <= 0.0)) { return view_pos; } mat4x4 _e9 = _group_0_binding_0_vs.proj; vec4 clip_1 = (_e9 * view_pos); if ((clip_1.w <= 0.0001)) { return view_pos; } vec2 _e16 = _group_2_binding_0_vs.snap_resolution; vec2 half_res = (_e16 * 0.5); vec2 ndc = (clip_1.xy / vec2(clip_1.w)); vec2 snapped = (roundEven((ndc * half_res)) / half_res); mat4x4 _e27 = INV_PROJECTION_MATRIX; vec4 back = (_e27 * vec4((snapped * clip_1.w), clip_1.z, clip_1.w)); return vec4((back.xyz / vec3(back.w)), 1.0); } void vertex() { float diffuse_1 = 0.0; mat3x3 _e1 = MODEL_NORMAL_MATRIX; vec3 _e3 = NORMAL; vec3 n_11 = normalize((_e1 * _e3)); vec3 _e8 = _group_2_binding_0_vs.sun_direction; vec3 _e9 = scene_to_frame(_e8); vec3 sun = normalize(_e9); diffuse_1 = max(dot(n_11, sun), 0.0); float _e17 = _group_2_binding_0_vs.light_bands; if ((_e17 >= 2.0)) { float _e20 = diffuse_1; float _e23 = _group_2_binding_0_vs.light_bands; float _e30 = _group_2_binding_0_vs.light_bands; diffuse_1 = (floor(((_e20 * _e23) + 0.5)) / _e30); } vec3 _e34 = _group_2_binding_0_vs.ground_ambient; vec3 _e37 = _group_2_binding_0_vs.sky_ambient; vec3 ambient_2 = mix(_e34, _e37, ((n_11.z * 0.5) + 0.5)); vec3 _e47 = _group_2_binding_0_vs.sun_color; float _e48 = diffuse_1; vec4 _e52 = COLOR; float _e57 = _group_2_binding_0_vs.overbright; vec3 _e61 = _group_2_binding_0_vs.emission; gouraud = ((((ambient_2 + (_e47 * _e48)) * _e52.xyz) * _e57) + _e61); mat4x4 _e64 = MODELVIEW_MATRIX; vec3 _e66 = VERTEX; vec4 _e70 = snap_view((_e64 * vec4(_e66, 1.0))); VERTEX = _e70.xyz; mat3x3 _e75 = MODELVIEW_NORMAL_MATRIX; vec3 _e77 = NORMAL; NORMAL = normalize((_e75 * _e77)); vec2 _e81 = UV; vec2 _e84 = _group_2_binding_0_vs.uv_scale; vec2 _e88 = _group_2_binding_0_vs.uv_offset; vec2 _e92 = _group_2_binding_0_vs.uv_scroll; float _e96 = _group_0_binding_0_vs.fparams.w; vec2 uv_3 = (((_e81 * _e84) + _e88) + (_e92 * _e96)); UV = uv_3; mat4x4 _e102 = _group_0_binding_0_vs.proj; float w_4 = (_e102 * _e70).w; float _e107 = _group_2_binding_0_vs.affine_strength; float _e112 = _group_2_binding_0_vs.affine_near; float weight = (_e107 * clamp(((w_4 - 0.25) / max(_e112, 0.001)), 0.0, 1.0)); affine_uv = vec4((uv_3 * w_4), w_4, weight); return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_vs.wire_color; vec4 _e5 = _group_0_binding_0_vs.select_color; vec4 _e8 = _group_0_binding_0_vs.active_color; vec4 _e11 = _group_0_binding_0_vs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = false; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_vs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_vs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_vs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_vs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex(vec3 pos, vec3 normal_1, vec4 tangent, vec2 uv_2, vec2 uv2_, vec4 color, uint vid_3) { bool local_22 = false; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = (cross(normal_1, tangent.xyz) * tangent.w); vec2 _e17 = hedra_godot_uv(uv_2); UV = _e17; vec2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = int(vid_3); POSITION = vec4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_22 = false; } else { local_22 = false; } bool _e31 = local_22; if (_e31) { mat4x4 _e34 = MODEL_MATRIX; vec3 _e36 = VERTEX; VERTEX = (_e34 * vec4(_e36, 1.0)).xyz; mat3x3 _e43 = MODEL_NORMAL_MATRIX; vec3 _e45 = NORMAL; NORMAL = (_e43 * _e45); mat3x3 _e49 = MODEL_NORMAL_MATRIX; vec3 _e51 = TANGENT; TANGENT = (_e49 * _e51); mat3x3 _e55 = MODEL_NORMAL_MATRIX; vec3 _e57 = BINORMAL; BINORMAL = (_e55 * _e57); return; } else { return; } } CustomOut hedra_end_vertex(vec4 world_10, vec3 n_8, vec3 t, float tw, uint flags_2) { CustomOut out_2 = CustomOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec2(0.0), 0u, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); mat4x4 _e9 = _group_0_binding_0_vs.view_proj; out_2.clip = (_e9 * world_10); if (HEDRA_USES_POSITION) { vec4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = normalize(n_8); vec2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = vec4(normalize(t), tw); vec4 _e28 = COLOR; out_2.color = _e28; vec2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = uint(max(_e34, 0)); hedra_store_varyings(out_2); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_vs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { VsIn in_2 = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); SkinIn s = SkinIn(_p2vs_location12, _p2vs_location13); vec2 uv1_2 = _p2vs_location10; uint vid_2 = uint(gl_VertexID); SkinRows _e4 = skin_rows(s); vec4 p_8 = vec4(in_2.pos, 1.0); vec3 skinned = vec3(dot(_e4.r0_, p_8), dot(_e4.r1_, p_8), dot(_e4.r2_, p_8)); vec3 bx = vec3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); vec3 by = vec3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); vec3 bz = vec3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det = dot(bx, cross(by, bz)); bool flip_1 = (det < 0.0); mat3x3 cofactor = mat3x3(cross(by, bz), cross(bz, bx), cross(bx, by)); vec3 n0_ = normalize(((cofactor * in_2.normal) * (flip_1 ? -1.0 : 1.0))); vec3 t0_1 = normalize((mat3x3(bx, by, bz) * in_2.tangent.xyz)); mat4x4 _e58 = _group_1_binding_0_vs.model; mat4x4 _e61 = _group_1_binding_0_vs.normal; mat3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62); INSTANCE_ID = 0; INSTANCE_CUSTOM = vec4(0.0); hedra_begin_vertex(skinned, n0_, vec4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, vec4(1.0), vid_2); vertex(); uint flags_4 = (in_2.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u)); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_1); bool _e82 = hedra_vertex_space(); if (_e82) { vec4 _e83 = hedra_vertex_world(); vec3 _e85 = NORMAL; vec3 _e86 = hedra_vertex_dir(_e85); vec3 _e88 = TANGENT; vec3 _e89 = hedra_vertex_dir(_e88); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_4); gl_Position = _e90.clip; _vs2fs_location0 = _e90.world; _vs2fs_location1 = _e90.normal; _vs2fs_location2 = _e90.uv; _vs2fs_location3 = _e90.flags; _vs2fs_location4 = _e90.tangent; _vs2fs_location5 = _e90.color; _vs2fs_location6 = _e90.uv2_; _vs2fs_location7 = _e90.instance_id; _vs2fs_location8 = _e90.hedra_v0_; _vs2fs_location9 = _e90.hedra_v1_; _vs2fs_location10 = _e90.hedra_v2_; _vs2fs_location11 = _e90.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } mat4x4 _e93 = _group_1_binding_0_vs.model; vec3 _e95 = VERTEX; vec4 world_13 = (_e93 * vec4(_e95, 1.0)); mat4x4 _e101 = _group_1_binding_0_vs.normal; vec3 _e103 = NORMAL; vec3 n_12 = (_e101 * vec4(_e103, 0.0)).xyz; mat4x4 _e110 = _group_1_binding_0_vs.model; vec3 _e112 = TANGENT; vec3 t_5 = (_e110 * vec4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_13, n_12, t_5, _e81, flags_4); gl_Position = _e117.clip; _vs2fs_location0 = _e117.world; _vs2fs_location1 = _e117.normal; _vs2fs_location2 = _e117.uv; _vs2fs_location3 = _e117.flags; _vs2fs_location4 = _e117.tangent; _vs2fs_location5 = _e117.color; _vs2fs_location6 = _e117.uv2_; _vs2fs_location7 = _e117.instance_id; _vs2fs_location8 = _e117.hedra_v0_; _vs2fs_location9 = _e117.hedra_v1_; _vs2fs_location10 = _e117.hedra_v2_; _vs2fs_location11 = _e117.hedra_v3_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; }  fs_custommainƒz#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; float alpha_cut; float hedra_pad0_; vec2 snap_resolution; float affine_strength; float affine_near; vec3 sun_direction; float hedra_pad1_; vec3 sun_color; float hedra_pad2_; vec3 sky_ambient; float hedra_pad3_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform LitU_block_2Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform ShadowU_block_3Fragment { ShadowU _group_0_binding_2_fs; }; uniform highp sampler2DShadow _group_0_binding_3_fs; layout(std140) uniform SkyU_block_4Fragment { SkyU _group_0_binding_5_fs; }; uniform highp samplerCube _group_3_binding_0_fs; uniform highp sampler2D _group_3_binding_1_fs; uniform highp sampler2D _group_0_binding_6_fs; uniform highp sampler2DArray _group_3_binding_4_fs; layout(std140) uniform ProbeU_block_5Fragment { ProbeU _group_0_binding_7_fs; }; uniform highp sampler2D _group_3_binding_6_fs; layout(std140) uniform DecalU_block_6Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; layout(std140) uniform FogU_block_7Fragment { FogU _group_1_binding_5_fs; }; uniform highp sampler2D _group_1_binding_6_fs; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); float SPECULAR_AMOUNT = 0.0; vec3 LIGHT = vec3(0.0); vec3 LIGHT_COLOR = vec3(0.0); bool LIGHT_IS_DIRECTIONAL = false; float ATTENUATION = 0.0; vec3 DIFFUSE_LIGHT = vec3(0.0); vec3 SPECULAR_LIGHT = vec3(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_8Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word_1 = ((k_1 < 4u) ? _e8 : _e4); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_2 = ((k_2 < 4u) ? _e8 : _e4); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local_6 = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_2 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_2.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local_6 = all(lessThanEqual(uvw, vec3(1.0))); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y)); if ((e_2.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_2.fades.z, 1.0, ((dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1); uint live_1 = e_2.flags.x; if ((e_2.layers.x > 0u)) { vec4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_2.modulate); float _e90 = fade; float alpha = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha * e_2.fades.w)); if ((e_2.layers.y > 0u)) { vec4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha)); } if ((e_2.layers.z > 0u)) { vec4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha); } } if ((e_2.layers.w > 0u)) { vec4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_3 <= 1.5707964)) { float c_23 = (1.0 - (a_3 / 1.5707964)); float k_13 = clamp((1.0 - pow(max((1.0 - c_23), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_13); } float c_24 = ((a_3 - 1.5707964) / 1.5707964); float k_14 = clamp((1.0 - pow(max((1.0 - c_24), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_14); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_25 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_25) + c_25) / ((c_25 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_25); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_25, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_25); return _e36; } return c_25; } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_4 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_4, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_3 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_3 * 1.8) - _e60) / EMERGE_EDGE); } vec3 emerge_tint(vec3 c_6, float r) { bool local_7 = false; uint _e6 = _group_1_binding_0_fs.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = (r >= 1.0); } else { local_7 = true; } bool _e17 = local_7; if ((SPEC_EMERGE ? _e17 : true)) { return c_6; } uint _e23 = _group_1_binding_0_fs.extra.w; vec3 _e26 = srgb_to_linear((vec4(_e23 & 0xFFu, _e23 >> 8 & 0xFFu, _e23 >> 16 & 0xFFu, _e23 >> 24) / 255.0).xyz); vec3 _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0.0, 1.0, r)); } vec3 item_fade(vec3 c_7) { uint _e5 = _group_1_binding_0_fs.extra.x; if ((SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true)) { return c_7; } vec4 f_1 = _group_1_binding_0_fs.normal[3]; vec3 _e17 = tonemap(f_1.xyz); return mix(c_7, _e17, f_1.w); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec3 procedural_sky(vec3 d_1) { vec3 sky_1 = vec3(0.0); uint i = 0u; float v_7 = acos(clamp(d_1.y, -1.0, 1.0)); vec4 _e8 = _group_0_binding_5_fs.sky_horizon; vec4 _e12 = _group_0_binding_5_fs.sky_top; float _e21 = _group_0_binding_5_fs.sky_top.w; float _e22 = sky_curve((1.0 - (v_7 / 1.5707964)), _e21); float _e27 = _group_0_binding_5_fs.sky_horizon.w; sky_1 = (mix(_e8.xyz, _e12.xyz, _e22) * _e27); uint _e33 = _group_0_binding_5_fs.flags.z; uint suns = min(_e33, SKY_SUNS); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e79 = i; i = (_e79 + 1u); } loop_init_1 = false; uint _e38 = i; if ((_e38 < suns)) { } else { break; } { uint _e42 = i; SunU sun = _group_0_binding_5_fs.suns[_e42]; float size = sun.direction.w; float a_5 = acos(clamp(dot(sun.direction.xyz, d_1), -1.0, 1.0)); if ((a_5 < size)) { sky_1 = sun.color.xyz; } else { float _e60 = _group_0_binding_5_fs.sun.x; if ((a_5 < _e60)) { float _e66 = _group_0_binding_5_fs.sun.x; float c2_ = ((a_5 - size) / (_e66 - size)); vec3 _e71 = sky_1; float _e75 = _group_0_binding_5_fs.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = mix(sun.color.xyz, _e71, _e76); } } } } vec4 _e83 = _group_0_binding_5_fs.ground_horizon; vec4 _e87 = _group_0_binding_5_fs.ground_bottom; float _e96 = _group_0_binding_5_fs.ground_bottom.w; float _e97 = sky_curve(((v_7 - 1.5707964) / 1.5707964), _e96); float _e102 = _group_0_binding_5_fs.ground_horizon.w; vec3 ground = (mix(_e83.xyz, _e87.xyz, _e97) * _e102); vec3 _e104 = sky_1; float _e112 = _group_0_binding_5_fs.sun.z; return (((d_1.y >= 0.0) ? _e104 : ground) * _e112); } vec3 sh_irradiance(vec3 n_2) { vec3 c_9 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_9 = (_e4.xyz * 0.282095); vec3 _e9 = c_9; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_9 = (_e9 + (_e13.xyz * (0.488603 * n_2.y))); vec3 _e20 = c_9; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_9 = (_e20 + (_e24.xyz * (0.488603 * n_2.z))); vec3 _e31 = c_9; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_9 = (_e31 + (_e35.xyz * (0.488603 * n_2.x))); vec3 _e42 = c_9; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_9 = (_e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y))); vec3 _e55 = c_9; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_9 = (_e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z))); vec3 _e68 = c_9; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_9 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0)))); vec3 _e85 = c_9; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_9 = (_e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z))); vec3 _e98 = c_9; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_9 = (_e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y))))); vec3 _e115 = c_9; return max(_e115, vec3(0.0)); } vec3 radiance_1(vec3 d_3, float roughness) { uint _e5 = _group_0_binding_5_fs.flags.y; float top_1 = float((max(_e5, 1u) - 1u)); vec4 _e14 = textureLod(_group_3_binding_0_fs, vec3(d_3), (roughness * top_1)); return _e14.xyz; } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_10 = vec3(0.0); uint k_4 = 0u; c_10 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_2 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_10; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_10 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_10; return _e53; } vec3 sky_fog(vec3 c_11, vec3 dir_2) { vec4 _e4 = _group_0_binding_5_fs.fog_color; float _e9 = _group_0_binding_5_fs.fog_depth.w; vec3 _e11 = fog_sun_scatter(mix(_e4.xyz, c_11, _e9), dir_2); float _e15 = _group_0_binding_5_fs.fog.y; return mix(c_11, _e11, _e15); } vec3 surface_fog(vec3 c_12, vec3 world_3, vec3 dir_3) { float dist = 0.0; float amount = 0.0; vec3 fc_1 = vec3(0.0); bool local_8 = false; mat4x4 _e5 = _group_0_binding_0_fs.view; float depth = -((_e5 * vec4(world_3, 1.0)).z); vec4 _e13 = _group_0_binding_0_fs.camera_pos; dist = distance(world_3, _e13.xyz); float _e20 = _group_0_binding_5_fs.fog_origin.w; if ((_e20 > 0.5)) { float _e26 = _group_0_binding_5_fs.fog_origin.x; dist = max((depth - _e26), 0.0); } uint _e34 = _group_0_binding_5_fs.flags.x; if (((_e34 & SKY_FOG_DEPTH) != 0u)) { float _e42 = _group_0_binding_5_fs.fog_depth.x; float _e46 = _group_0_binding_5_fs.fog_depth.y; float _e47 = dist; float z = smoothstep(_e42, _e46, _e47); float _e54 = _group_0_binding_5_fs.fog_depth.z; float _e63 = _group_0_binding_5_fs.fog.x; amount = (((z > 0.0) ? pow(max(z, 1e-6), _e54) : 0.0) * _e63); } else { float _e65 = dist; float _e70 = _group_0_binding_5_fs.fog.x; amount = (1.0 - exp(min(0.0, (-(_e65) * _e70)))); } float _e80 = _group_0_binding_5_fs.fog.w; if ((abs(_e80) >= 0.0001)) { vec4 _e86 = _group_0_binding_1_fs.up; float y = dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = _group_0_binding_5_fs.fog.z; float _e98 = _group_0_binding_5_fs.fog.w; amount = max(_e89, (1.0 - exp(min(0.0, ((y - _e93) * _e98))))); } float _e106 = amount; amount = clamp(_e106, 0.0, 1.0); vec4 _e112 = _group_0_binding_5_fs.fog_color; fc_1 = _e112.xyz; uint _e119 = _group_0_binding_5_fs.flags.x; if (((_e119 & SKY_IBL) != 0u)) { float _e129 = _group_0_binding_5_fs.fog_depth.w; local_8 = (_e129 > 0.0); } else { local_8 = false; } bool _e133 = local_8; if ((SPEC_AMBIENT_SKY ? _e133 : false)) { float _e139 = _group_0_binding_5_fs.fog_origin.y; float _e144 = _group_0_binding_5_fs.fog_origin.z; float _e148 = _group_0_binding_5_fs.fog_origin.y; float t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 1e-6)), 0.0, 1.0); uint _e159 = _group_0_binding_5_fs.flags.y; float top_2 = float((max(_e159, 2u) - 1u)); float rough = mix((1.0 / top_2), 1.0, (1.0 - t_3)); vec3 _e171 = fc_1; vec3 _e172 = sky_dir(dir_3); vec3 _e173 = radiance_1(_e172, rough); float _e177 = _group_0_binding_5_fs.sun.w; float _e182 = _group_0_binding_5_fs.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } vec3 _e184 = fc_1; vec3 _e185 = fog_sun_scatter(_e184, dir_3); fc_1 = _e185; vec3 _e186 = fc_1; float _e187 = amount; return mix(c_12, _e186, _e187); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_4, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h_1 = (_e26.xyz * 0.5); vec3 dd = mix(d_4, vec3(1e-12), lessThan(abs(d_4), vec3(1e-12))); vec3 sa = ((-(h_1) - o) / dd); vec3 sb = ((h_1 - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_4 / h_1), (d_4 / h_1)); b = dot((o / h_1), (d_4 / h_1)); c_13 = (dot((o / h_1), (o / h_1)) - 1.0); } else { float rad = min(h_1.x, h_1.z); float k_15 = ((shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0); float w_3 = (h_1.y - o.y); a = (((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y)); b = (((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y)); c_13 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_3, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_4 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_4.material.x * min(exp2((-(e_4.material.y) * (dot(p_3, _e14.xyz) - e_4.material.w))), 1.0)); if ((e_4.material.z > 0.0)) { uint shape_1 = uint(e_4.albedo.w); vec3 h_2 = (e_4.size.xyz * 0.5); float rad_1 = min(h_2.x, h_2.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_2)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_2 * h_2))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_2); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_1), (abs(lp.y) - h_2.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_11 = normalize(vec2((1.0 / max(0.001, (rad_1 * 0.5))), (1.0 / max(0.001, h_2.y)))); sdf = max(dot(n_11, vec2(length(lp.xz), (lp.y - h_2.y))), (-(h_2.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_4.size.w), 0.0, 1.0), e_4.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_4 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_4.y; if (((hf * b_1) == 0.0)) { return ((m_4.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_2 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_2 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_2); float x_3 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_3 < 0.01) ? (1.0 - (x_3 * (0.5 - (x_3 * (0.16666667 - (x_3 / 24.0)))))) : ((1.0 - exp(-(x_3))) / x_3)); float top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 fog_light(uint n_3, vec3 p_4, vec3 dir_4) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l_1 = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_3].lights; bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_3 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_14]; l_1 = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_4); l_1 = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l_1; float rim = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim, li.spot.y))); } } vec3 _e108 = l_1; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_4, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_14 >> 2u)][(i_14 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_6, vec2 ch) { float split = 0.0; bool local_9 = false; bool local_10 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = false; bool local_12 = false; FogEntryU e_5 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_5.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_5.to_local * vec4(d_6, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_6 = (dot(o_1, _e20.xyz) - e_5.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_6, _e28.xyz); bool edge = (e_5.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_5.material.y > 0.0)) { local_9 = ((-(a_6) / b_3) > ch.x); } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = ((-(a_6) / b_3) < ch.y); } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = (-(a_6) / b_3); } bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e160 = i_1; i_1 = (_e160 + 1u); } loop_init_4 = false; uint _e70 = i_1; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i_1; uint j = (_e75 & 3u); if (!((j == 0u))) { local_11 = (j == 3u); } else { local_11 = true; } bool _e88 = local_11; float x_4 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_12 = (j == 3u); } else { local_12 = true; } bool _e100 = local_12; float w_4 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_4 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_4) : x_4))); vec3 p_8 = (o_1 + (d_6 * t_4)); float _e136 = fog_density(k_9, p_8, (lo_4 + (ld * t_4))); uint _e137 = i_1; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_8, d_6); q_1 = (_e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_4 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_14, vec3 o_2, vec3 d_7, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_2 = 0u; bool local_13 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_3 = 0u; uint n_4 = 0u; float avail = 0.0; uint i_4 = 0u; uint i_5 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e72 = i_2; i_2 = (_e72 + 1u); } loop_init_5 = false; uint _e13 = i_2; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_2; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_13 = (byte == 0u); } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_16].to_local; vec2 _e57 = fog_chord(k_16, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_7, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_16; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e90 = i_3; i_3 = (_e90 + 1u); } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at[_e82]; uint _e85 = i_3; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_7, _e87); parts[_e80] = _e88; } } bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e221 = n_4; n_4 = (_e221 + 1u); } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_4; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_4 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e153 = i_4; i_4 = (_e153 + 1u); } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_4; float _e113 = chords[_e110].y; uint _e114 = n_4; float _e117 = chords[_e114].y; uint _e119 = i_4; float _e122 = chords[_e119].x; uint _e123 = n_4; float _e126 = chords[_e123].x; uint _e131 = i_4; float _e134 = chords[_e131].y; uint _e135 = i_4; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_4; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_4; float _e158 = parts[_e155].w; float _e160 = avail; float f_2 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_5 = 0u; bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e218 = i_5; i_5 = (_e218 + 1u); } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_5; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_5; float _e180 = chords[_e177].y; uint _e181 = n_4; float _e184 = chords[_e181].y; uint _e186 = i_5; float _e189 = chords[_e186].x; uint _e190 = n_4; float _e193 = chords[_e190].x; uint _e198 = i_5; float _e201 = chords[_e198].y; uint _e202 = i_5; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_5; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_2))); } } } } } } bool loop_init_10 = true; while(true) { if (!loop_init_10) { uint _e252 = i_6; i_6 = (_e252 + 1u); } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_6; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_6; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_5 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_14 * t_5) + (_e258 * ((1.0 - t_5) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_15, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_6 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_6)); vec3 _e47 = fog_integrate(c_15, o_6, ((world_4 - o_6) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_15); } vec3 sky_fog_volumes(vec3 c_16, vec3 near_point, vec3 dir_5) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back_1 = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (near_point - (back_1 * (_e26 * vec4(near_point, 1.0)).z)) : _e22.xyz); uint _e44 = _group_1_binding_5_fs.counts.y; vec3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44); float _e49 = _group_1_binding_5_fs.params.z; return mix(c_16, _e45, _e49); } float shadow_factor(uint i_7, vec3 world_5, vec3 n_geo_1, vec3 l_2) { uint part = 0u; uint c_17 = 0u; bool local_14 = false; bool local_15 = false; bool local_16 = false; float vis = 0.0; int dy = -1; int dx = 0; uint kind = _group_0_binding_1_fs.lights[i_7].info.x; vec4 _e14 = _group_0_binding_1_fs.lights[i_7].position; vec3 light_pos = _e14.xyz; uint _e21 = _group_0_binding_1_fs.lights[i_7].info.w; uint slot = min(_e21, 15u); vec4 params = _group_0_binding_2_fs.lights[slot].params; uint first = _group_0_binding_2_fs.lights[slot].info.x; uint _e40 = _group_0_binding_2_fs.lights[slot].info.y; uint count = max(_e40, 1u); mat4x4 _e45 = _group_0_binding_0_fs.view; float view_depth = -((_e45 * vec4(world_5, 1.0)).z); if ((kind == LIGHT_DIRECTIONAL)) { float _e60 = _group_0_binding_2_fs.lights[slot].fade.y; if ((view_depth > _e60)) { return 1.0; } part = (count - 1u); bool loop_init_11 = true; while(true) { if (!loop_init_11) { uint _e79 = c_17; c_17 = (_e79 + 1u); } loop_init_11 = false; uint _e67 = c_17; if ((_e67 < count)) { } else { break; } { uint _e73 = c_17; float _e75 = _group_0_binding_2_fs.lights[slot].splits[_e73]; if ((view_depth <= _e75)) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; vec4 texel = _group_0_binding_2_fs.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; float t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); vec3 p_9 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1.0)) * t_6))) + (l_2 * (params.x * t_6))); if ((kind == LIGHT_OMNI)) { vec3 d_13 = (p_9 - light_pos); vec3 a_7 = abs(d_13); if ((a_7.x >= a_7.y)) { local_14 = (a_7.x >= a_7.z); } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = ((d_13.x >= 0.0) ? 0u : 1u); } else { if ((a_7.y >= a_7.z)) { part = ((d_13.y >= 0.0) ? 2u : 3u); } else { part = ((d_13.z >= 0.0) ? 4u : 5u); } } } uint _e145 = part; uint tile = min((first + min(_e145, (count - 1u))), 15u); mat4x4 _e156 = _group_0_binding_2_fs.tiles[tile].view_proj; vec4 clip_1 = (_e156 * vec4(p_9, 1.0)); if ((clip_1.w <= 0.0)) { return 1.0; } vec3 ndc = (clip_1.xyz / vec3(clip_1.w)); if (!((abs(ndc.x) > 1.0))) { local_15 = (abs(ndc.y) > 1.0); } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = (ndc.z > 1.0); } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } vec4 rect = _group_0_binding_2_fs.tiles[tile].rect; vec2 uv_4 = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); vec2 auv = (rect.xy + (uv_4 * rect.zw)); float texel_uv = _group_0_binding_2_fs.atlas.x; vec2 lo_5 = (rect.xy + vec2((0.5 * texel_uv))); vec2 hi_4 = ((rect.xy + rect.zw) - vec2((0.5 * texel_uv))); float r_7 = params.z; if ((r_7 <= 0.0)) { float _e235 = textureLod(_group_0_binding_3_fs, vec3(clamp(auv, lo_5, hi_4), ndc.z), 0.0); vis = _e235; } else { float spread = (r_7 * texel_uv); bool loop_init_12 = true; while(true) { if (!loop_init_12) { int _e265 = dy; dy = (_e265 + 1); } loop_init_12 = false; int _e239 = dy; if ((_e239 <= 1)) { } else { break; } { dx = -1; bool loop_init_13 = true; while(true) { if (!loop_init_13) { int _e262 = dx; dx = (_e262 + 1); } loop_init_13 = false; int _e244 = dx; if ((_e244 <= 1)) { } else { break; } { int _e247 = dx; int _e249 = dy; vec2 tap = clamp((auv + (vec2(float(_e247), float(_e249)) * spread)), lo_5, hi_4); float _e255 = vis; float _e259 = textureLod(_group_0_binding_3_fs, vec3(tap, ndc.z), 0.0); vis = (_e255 + _e259); } } } } float _e267 = vis; vis = (_e267 / 9.0); } if ((kind == LIGHT_DIRECTIONAL)) { vec4 fade_1 = _group_0_binding_2_fs.lights[slot].fade; float _e277 = vis; vis = mix(_e277, 1.0, smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return mix(1.0, _e283, params.w); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_8 = abs(d_8); if ((a_8.x >= a_8.y)) { local_17 = (a_8.x >= a_8.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_8.y >= a_8.z)) { ma = a_8.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 probe_texel(uint row, vec3 fuv, uint level_1) { uint _e6 = _group_0_binding_7_fs.counts.z; float n_12 = float(max((_e6 >> level_1), 1u)); float lo_6 = (0.5 / n_12); float u_2 = clamp(fuv.y, lo_6, (1.0 - lo_6)); float v_8 = clamp(fuv.z, lo_6, (1.0 - lo_6)); vec2 uv_5 = vec2(((fuv.x + u_2) / 6.0), ((float(row) + v_8) / 8.0)); vec4 _e33 = textureLod(_group_3_binding_6_fs, vec2(uv_5), float(level_1)); return _e33.xyz; } vec3 probe_sample(uint row_1, vec3 d_9, float lod) { bool local_18 = false; uint _e6 = _group_0_binding_7_fs.counts.y; uint levels = max(_e6, 1u); float l_5 = clamp(lod, 0.0, float((levels - 1u))); uint m0_ = uint(l_5); float t_7 = (l_5 - float(m0_)); vec3 _e17 = probe_face_uv(d_9); vec3 _e18 = probe_texel(row_1, _e17, m0_); if (!((t_7 <= 0.0))) { local_18 = ((m0_ + 1u) >= levels); } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } vec3 _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1.0 - t_7)) + (_e34 * t_7)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_6 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_6 = p_5.extents.xyz; float d_14 = min((e_6.x - abs(l_6.x)), min((e_6.y - abs(l_6.y)), (e_6.z - abs(l_6.z)))); if ((d_14 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_14 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_15 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_15; } vec3 o_8 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_8 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_8 + (d_15 * t_8)) - p_6.offset.xyz); } vec4 probe_reflection(vec3 world_8, vec3 r_2, float roughness_2, uint probes) { vec3 acc = vec3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = _group_0_binding_7_fs.counts.x; uint count_1 = min(_e12, MAX_PROBES); uint _e18 = _group_0_binding_7_fs.counts.y; float lod_1 = (roughness_2 * float((max(_e18, 1u) - 1u))); bool loop_init_14 = true; while(true) { if (!loop_init_14) { uint _e57 = i_8; i_8 = (_e57 + 1u); } loop_init_14 = false; uint _e27 = i_8; if ((_e27 < count_1)) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = _group_0_binding_7_fs.probes[_e31]; if ((((probes >> p_10.info.w) & 1u) == 0u)) { continue; } float _e41 = probe_weight(p_10, world_8); if ((_e41 <= 0.0)) { continue; } vec3 _e44 = acc; vec3 _e47 = probe_lookup(p_10, world_8, r_2); vec3 _e48 = probe_sample(p_10.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_10.offset.w) * _e41)); float _e54 = w_sum; w_sum = (_e54 + _e41); } } float _e59 = w_sum; if ((_e59 > 1.0)) { vec3 _e62 = acc; float _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1.0; } vec3 _e67 = acc; float _e68 = w_sum; return vec4(_e67, _e68); } vec4 probe_ambient(vec3 world_9, vec3 n_7, uint probes_1) { vec3 acc_1 = vec3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = false; vec3 c_18 = vec3(0.0); uint _e11 = _group_0_binding_7_fs.counts.x; uint count_2 = min(_e11, MAX_PROBES); uint _e17 = _group_0_binding_7_fs.counts.y; uint last = (max(_e17, 1u) - 1u); bool loop_init_15 = true; while(true) { if (!loop_init_15) { uint _e73 = i_9; i_9 = (_e73 + 1u); } loop_init_15 = false; uint _e24 = i_9; if ((_e24 < count_2)) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = _group_0_binding_7_fs.probes[_e28]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = (p_11.info.y == PROBE_AMBIENT_DISABLED); } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if ((_e47 <= 0.0)) { continue; } c_18 = p_11.ambient.xyz; if ((p_11.info.y == PROBE_AMBIENT_ENVIRONMENT)) { vec3 _e64 = probe_face_uv((p_11.to_local * vec4(n_7, 0.0)).xyz); vec3 _e65 = probe_texel(p_11.info.w, _e64, last); c_18 = _e65; } vec3 _e66 = acc_1; vec3 _e67 = c_18; acc_1 = (_e66 + (_e67 * _e47)); float _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } } float _e75 = w_sum_1; if ((_e75 > 1.0)) { vec3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1.0; } vec3 _e83 = acc_1; float _e84 = w_sum_1; return vec4(_e83, _e84); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void fragment() { vec4 _e1 = affine_uv; float _e5 = affine_uv.z; vec2 affine = (_e1.xy / vec2(max(_e5, 0.0001))); vec2 _e11 = UV; float _e14 = affine_uv.w; vec2 uv_6 = mix(_e11, affine, clamp(_e14, 0.0, 1.0)); vec4 texel_1 = texture(_group_2_binding_1_fs, vec2(uv_6)); vec4 _e26 = _group_2_binding_0_fs.albedo; vec3 _e30 = gouraud; ALBEDO = ((texel_1.xyz * _e26.xyz) * _e30); float _e37 = _group_2_binding_0_fs.albedo.w; ALPHA = (texel_1.w * _e37); float _e42 = _group_2_binding_0_fs.alpha_cut; ALPHA_SCISSOR_THRESHOLD = _e42; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_8 = transpose(_e1); vec3 t_9 = -((r_8 * m_3[3].xyz)); return mat4x4(vec4(r_8[0], 0.0), vec4(r_8[1], 0.0), vec4(r_8[2], 0.0), vec4(t_9, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = false; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_4 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_4)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back_2 = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back_2 * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back_2 * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_24 = false; bool local_25 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } bool _e12 = local_24; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = (_e18 < _e20); } else { local_25 = false; } bool _e23 = local_25; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_5 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_5 * m_5); return ((m2_ * m2_) * m_5); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_3 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_3), 0.0); float vh_2 = max(dot(v_4, h_3), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } vec4 hedra_light_dir(uint i_11, vec3 world_12) { float atten_1 = 0.0; LightU li_1 = _group_0_binding_1_fs.lights[i_11]; if ((li_1.info.x == LIGHT_DIRECTIONAL)) { return vec4(-(li_1.direction.xyz), 1.0); } vec3 rel_1 = (li_1.position.xyz - world_12); float d_16 = length(rel_1); vec3 l_7 = (rel_1 / vec3(max(d_16, 1e-6))); float _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if ((li_1.info.x == LIGHT_SPOT)) { float cone = li_1.spot.x; float scos = max(dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = max(0.0001, ((1.0 - scos) / max((1.0 - cone), 1e-6))); float _e49 = atten_1; atten_1 = (_e49 * (1.0 - pow(rim_1, li_1.spot.y))); } float _e56 = atten_1; return vec4(l_7, _e56); } float hedra_shadow(uint i_12, vec3 l_4) { bool local_27 = false; if (false) { uint _e10 = _group_0_binding_1_fs.lights[i_12].info.y; local_27 = (_e10 != LIGHT_SHADOWED); } else { local_27 = true; } bool _e14 = local_27; if (_e14) { return 1.0; } vec3 _e17 = hedra_world; vec3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4); return _e20; } vec3 hedra_ambient(vec3 n_10, vec3 v_5, vec3 diffuse_3, vec3 f0_3, float roughness_3, float metallic) { vec3 ambient = vec3(0.0); vec3 diffuse_amb = vec3(0.0); vec3 spec_amb = vec3(0.0); vec3 dif = vec3(0.0); vec3 dif_1 = vec3(0.0); vec3 dif_2 = vec3(0.0); vec3 world_13 = hedra_world; float nv_5 = max(dot(n_10, v_5), 0.0001); vec3 f_amb = (f0_3 + ((max(vec3((1.0 - roughness_3)), f0_3) - f0_3) * pow((1.0 - nv_5), 5.0))); vec4 _e25 = gi_diffuse(n_10, false, vec3(0.0)); uint _e30 = _group_0_binding_5_fs.flags.x; if (((_e30 & SKY_IBL) != 0u)) { float _e38 = _group_0_binding_5_fs.ibl.x; float _e42 = _group_0_binding_5_fs.sun.w; float scale = (_e38 * _e42); vec4 _e46 = _group_0_binding_5_fs.ambient; diffuse_amb = _e46.xyz; uint _e52 = _group_0_binding_5_fs.flags.x; if (((_e52 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e59 = _group_0_binding_5_fs.ambient; vec3 _e61 = sky_dir(n_10); vec3 _e62 = sh_irradiance(_e61); float _e67 = _group_0_binding_5_fs.ambient.w; diffuse_amb = mix(_e59.xyz, (_e62 * scale), _e67); } if ((_e25.w > 0.0)) { diffuse_amb = _e25.xyz; } vec4 _e75 = _group_0_binding_5_fs.ambient; spec_amb = _e75.xyz; uint _e81 = _group_0_binding_5_fs.flags.x; if (((_e81 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e88 = sky_dir(reflect(-(v_5), n_10)); vec3 _e89 = radiance_1(_e88, roughness_3); spec_amb = (_e89 * scale); } else { uint _e94 = _group_0_binding_5_fs.flags.x; if (((_e94 & SKY_REFLECT_OFF) != 0u)) { spec_amb = vec3(0.0); } } vec2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = _group_0_binding_7_fs.counts.x; if ((_e105 > 0u)) { uint _e113 = _group_1_binding_0_fs.extra.z; vec4 _e114 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e113); vec3 _e115 = spec_amb; vec3 spec_1 = ((_e115 * (1.0 - _e114.w)) + _e114.xyz); vec3 _e122 = diffuse_amb; dif = _e122; if ((_e25.w <= 0.0)) { uint _e130 = _group_1_binding_0_fs.extra.z; vec4 _e131 = probe_ambient(world_13, n_10, _e130); vec3 _e132 = diffuse_amb; dif = ((_e132 * (1.0 - _e131.w)) + _e131.xyz); } vec3 _e139 = dif; ambient = ((diffuse_3 * _e139) + (spec_1 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } else { vec3 _e154 = diffuse_amb; vec3 _e156 = spec_amb; ambient = ((diffuse_3 * _e154) + (_e156 * ((f0_3 * _e101.x) + vec3((_e101.y * clamp((50.0 * f0_3.y), metallic, 1.0)))))); } } else { uint _e173 = _group_0_binding_1_fs.counts.y; if (((_e173 & ENV_AMBIENT_SKY) != 0u)) { vec4 _e180 = _group_0_binding_1_fs.up; vec3 up = _e180.xyz; vec4 _e184 = _group_0_binding_1_fs.sky_top; vec4 _e188 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e184.xyz + _e188.xyz) * 0.5); vec4 _e195 = _group_0_binding_1_fs.ground_horizon; vec4 _e199 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e195.xyz + _e199.xyz) * 0.5); vec3 irradiance = mix(ground_avg, sky_avg, clamp(((dot(n_10, up) * 0.5) + 0.5), 0.0, 1.0)); vec3 _e215 = sky(reflect(-(v_5), n_10)); vec3 blurred = mix(_e215, sky_avg, roughness_3); uint _e220 = _group_0_binding_7_fs.counts.x; if ((_e220 > 0u)) { uint _e228 = _group_1_binding_0_fs.extra.z; vec4 _e229 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e228); float _e233 = _group_0_binding_1_fs.ambient.w; vec3 spec_2 = (((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz); dif_1 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e249 = _group_1_binding_0_fs.extra.z; vec4 _e250 = probe_ambient(world_13, n_10, _e249); float _e254 = _group_0_binding_1_fs.ambient.w; dif_1 = (((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz); } vec3 _e262 = dif_1; ambient = ((diffuse_3 * _e262) + (spec_2 * f_amb)); } else { if ((_e25.w > 0.0)) { float _e275 = _group_0_binding_1_fs.ambient.w; ambient = ((diffuse_3 * _e25.xyz) + ((blurred * f_amb) * _e275)); } else { float _e284 = _group_0_binding_1_fs.ambient.w; ambient = (((diffuse_3 * irradiance) + (blurred * f_amb)) * _e284); } } } else { uint _e289 = _group_0_binding_7_fs.counts.x; if ((_e289 > 0u)) { uint _e297 = _group_1_binding_0_fs.extra.z; vec4 _e298 = probe_reflection(world_13, reflect(-(v_5), n_10), roughness_3, _e297); vec4 _e301 = _group_0_binding_1_fs.ambient; vec3 spec_3 = ((_e301.xyz * (1.0 - _e298.w)) + _e298.xyz); dif_2 = _e25.xyz; if ((_e25.w <= 0.0)) { uint _e317 = _group_1_binding_0_fs.extra.z; vec4 _e318 = probe_ambient(world_13, n_10, _e317); vec4 _e321 = _group_0_binding_1_fs.ambient; dif_2 = ((_e321.xyz * (1.0 - _e318.w)) + _e318.xyz); } vec3 _e329 = dif_2; ambient = ((diffuse_3 * _e329) + (spec_3 * f_amb)); } else { if ((_e25.w > 0.0)) { vec4 _e340 = _group_0_binding_1_fs.ambient; ambient = ((diffuse_3 * _e25.xyz) + (_e340.xyz * f_amb)); } else { vec4 _e346 = _group_0_binding_1_fs.ambient; ambient = (_e346.xyz * (diffuse_3 + f_amb)); } } } } vec3 _e350 = ambient; return _e350; } vec3 hedra_fog(vec3 c_in_1, vec3 v_6) { vec3 c_20 = vec3(0.0); c_20 = c_in_1; if (HEDRA_FOG_DISABLED) { vec3 _e4 = c_20; return _e4; } uint _e8 = _group_0_binding_5_fs.flags.x; if (((_e8 & SKY_FOG) != 0u)) { vec3 _e13 = c_20; vec3 _e15 = hedra_world; vec3 _e17 = surface_fog(_e13, _e15, -(v_6)); c_20 = _e17; } uint _e21 = _group_1_binding_0_fs.decals.w; if ((_e21 != 0u)) { vec3 _e24 = c_20; vec3 _e26 = hedra_world; uint _e30 = _group_1_binding_0_fs.decals.w; vec3 _e31 = fog_volumes(_e24, _e26, _e30); c_20 = _e31; } vec3 _e32 = c_20; return _e32; } vec3 hedra_lit(vec4 clip) { DecalSurface surf_1 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); vec3 c_21 = vec3(0.0); uint k_11 = 0u; bool local_28 = false; vec3 radiance_3 = vec3(0.0); bool local_29 = false; bool local_30 = false; vec3 ambient_1 = vec3(0.0); bool local_31 = false; vec3 n_geo_3 = hedra_n_geo; vec3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; vec3 _e18 = hedra_n; vec3 _e20 = EMISSION; surf_1 = DecalSurface(_e4, clamp(_e6, 0.0, 1.0), clamp(_e11, 0.045, 1.0), _e16, _e18, _e20); uint _e26 = _group_1_binding_0_fs.decals.z; if ((_e26 > 0u)) { vec3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31); surf_1 = _e32; vec3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; mat4x4 _e45 = _group_0_binding_0_fs.view; mat3x3 _e46 = hedra_mat3_(_e45); vec3 _e48 = surf_1.normal; NORMAL = normalize((_e46 * _e48)); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = (((roughness_4 * roughness_4) * roughness_4) * roughness_4); vec3 base = surf_1.base; vec3 diffuse_4 = (base * (1.0 - metallic_1)); float _e64 = SPECULAR; float _e68 = SPECULAR; vec3 f0_4 = mix(vec3(((0.16 * _e64) * _e68)), base, metallic_1); vec3 n_13 = surf_1.normal; vec3 _e75 = hedra_world; vec3 _e76 = hedra_view_dir(_e75); mat4x4 _e79 = _group_0_binding_0_fs.view; mat3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = mix(1.0, _e82, _e84); DIFFUSE_LIGHT = vec3(0.0); SPECULAR_LIGHT = vec3(0.0); uint _e96 = object_light_count(); bool loop_init_16 = true; while(true) { if (!loop_init_16) { uint _e238 = k_11; k_11 = (_e238 + 1u); } loop_init_16 = false; uint _e99 = k_11; if ((_e99 < _e96)) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101); LightU li_2 = _group_0_binding_1_fs.lights[_e102]; vec3 _e108 = hedra_world; vec4 _e109 = hedra_light_dir(_e102, _e108); vec3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_28 = (atten_2 > 0.0); } else { local_28 = true; } bool _e123 = local_28; if (_e123) { LIGHT = normalize((_e80 * l_8)); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8); ATTENUATION = (atten_2 * _e131); LIGHT_IS_DIRECTIONAL = (li_2.info.x == LIGHT_DIRECTIONAL); SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if ((_e142 > 0.0)) { float rim_light = pow(max(0.0001, (1.0 - max(dot(n_13, _e76), 0.0001))), max(0.0, ((1.0 - roughness_4) * 16.0))); vec3 _e159 = c_21; float _e164 = RIM; float _e170 = RIM_TINT; c_21 = (_e159 + (((diffuse_4 * li_2.color.xyz) * (rim_light * _e164)) * mix(vec3(1.0), base, _e170))); } if ((atten_2 > 0.0)) { radiance_3 = (li_2.color.xyz * atten_2); if ((li_2.info.y == LIGHT_SHADOWED)) { local_29 = false; } else { local_29 = false; } bool _e188 = local_29; if (_e188) { vec3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8); radiance_3 = (li_2.color.xyz * (atten_2 * _e193)); } if (true) { local_30 = false; } else { local_30 = false; } bool _e201 = local_30; if (_e201) { vec3 _e202 = c_21; vec3 _e203 = radiance_3; vec3 _e206 = light_specular(n_13, _e76, l_8, _e203, diffuse_4, f0_4, a2_4, li_2.spot.z); c_21 = (_e202 + _e206); } else { vec3 _e208 = c_21; vec3 _e209 = radiance_3; vec3 _e212 = hedra_light_modes(n_13, _e76, l_8, _e209, diffuse_4, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = (_e208 + _e212); } vec3 _e215 = BACKLIGHT; if (any(greaterThan(_e215, vec3(0.0)))) { float nl_4 = max(min(dot(n_13, l_8), 1.0), 0.0); vec3 _e225 = c_21; vec3 _e226 = radiance_3; vec3 _e229 = BACKLIGHT; c_21 = (_e225 + (((diffuse_4 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987)))); } } } } if (HEDRA_HAS_LIGHT) { vec3 _e242 = DIFFUSE_LIGHT; vec3 _e249 = SPECULAR_LIGHT; c_21 = ((((_e242 * base) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct)); } else { float _e253 = AO_LIGHT_AFFECT; if ((_e253 > 0.0)) { vec3 _e256 = c_21; c_21 = (_e256 * ao_direct); } } if (true) { vec3 _e262 = hedra_ambient(n_13, _e76, diffuse_4, f0_4, roughness_4, metallic_1); ambient_1 = _e262; } uint _e266 = _group_0_binding_1_fs.counts.y; if (((_e266 & ENV_SSAO) != 0u)) { bool _e273 = hedra_transparent(); local_31 = !(_e273); } else { local_31 = false; } bool _e276 = local_31; if (_e276) { vec4 _e282 = texelFetch(_group_0_binding_6_fs, ivec2(floor(clip.xy)), 0); float ssao = _e282.x; vec3 _e284 = c_21; float _e286 = surf_1.occlusion; float _e291 = _group_0_binding_1_fs.tone.z; float _e295 = _group_0_binding_1_fs.tone.w; c_21 = (_e284 * mix(1.0, min(ssao, _e286), (_e291 * _e295))); vec3 _e300 = c_21; vec3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_21 = (_e300 + (_e301 * min(_e303, ssao))); } else { vec3 _e307 = c_21; vec3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_21 = (_e307 + (_e308 * _e310)); } vec3 _e313 = c_21; vec3 _e315 = surf_1.emission; c_21 = (_e313 + _e315); vec3 _e317 = c_21; vec3 _e318 = hedra_fog(_e317, _e76); vec3 _e319 = tonemap(_e318); return _e319; } vec4 hedra_output(vec3 c_22) { vec3 rgb = vec3(0.0); rgb = c_22; if (false) { vec3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = (_e3 * _e5); } vec3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); vec4 o_9 = vec4(_e7, (_e10 ? _e9 : 1.0)); uint _e17 = _group_0_binding_1_fs.counts.y; if (((_e17 & ENV_HDR) != 0u)) { return vec4(max(o_9.xyz, vec3(0.0)), clamp(o_9.w, 0.0, 1.0)); } vec4 k_17 = clamp(o_9, vec4(0.0), vec4(1.0)); uint _e39 = _group_0_binding_0_fs.params.z; if (((_e39 & HEDRA_ENCODE_SRGB) != 0u)) { vec3 _e45 = linear_to_srgb(k_17.xyz); return vec4(_e45, k_17.w); } return k_17; } vec3 hedra_bindings() { vec2 uv_7 = vec2(0.5); vec4 _e5 = textureLod(_group_3_binding_1_fs, vec2(uv_7), 0.0); vec4 _e11 = textureLod(_group_3_binding_4_fs, vec3(uv_7, 0), 0.0); vec4 _e17 = textureLod(_group_1_binding_6_fs, vec2(uv_7), 0.0); return ((_e5.xyz + _e11.xyz) + _e17.xyz); } void main() { CustomOut in_3 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing = gl_FrontFacing; vec3 c = vec3(0.0); hedra_fragment(in_3, facing); bool _e3 = hedra_culled(in_3.flags); if (_e3) { discard; } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy); if ((_e7 <= 0.0)) { discard; } if (HEDRA_UNSHADED) { vec3 _e13 = ALBEDO; vec3 _e15 = hedra_world; vec3 _e16 = hedra_view_dir(_e15); vec3 _e17 = hedra_fog(_e13, _e16); vec3 _e18 = tonemap(_e17); c = _e18; } else { vec3 _e20 = hedra_lit(in_3.clip); c = _e20; } uint _e24 = _group_0_binding_1_fs.counts.w; if ((_e24 == HEDRA_NEVER)) { vec3 _e27 = c; vec3 _e28 = hedra_bindings(); c = (_e27 + _e28); } uint _e33 = _group_0_binding_0_fs.params.x; if ((_e33 == SHADE_LIT)) { vec3 _e36 = c; vec3 _e37 = item_fade(_e36); vec3 _e38 = emerge_tint(_e37, _e7); c = _e38; } vec3 _e39 = c; vec4 _e40 = hedra_output(_e39); _fs2p_location0 = _e40; return; } fs_custom_depthmain/…#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; float alpha_cut; float hedra_pad0_; vec2 snap_resolution; float affine_strength; float affine_near; vec3 sun_direction; float hedra_pad1_; vec3 sun_color; float hedra_pad2_; vec3 sky_ambient; float hedra_pad3_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void fragment() { vec4 _e1 = affine_uv; float _e5 = affine_uv.z; vec2 affine = (_e1.xy / vec2(max(_e5, 0.0001))); vec2 _e11 = UV; float _e14 = affine_uv.w; vec2 uv_3 = mix(_e11, affine, clamp(_e14, 0.0, 1.0)); vec4 texel = texture(_group_2_binding_1_fs, vec2(uv_3)); vec4 _e26 = _group_2_binding_0_fs.albedo; vec3 _e30 = gouraud; ALBEDO = ((texel.xyz * _e26.xyz) * _e30); float _e37 = _group_2_binding_0_fs.albedo.w; ALPHA = (texel.w * _e37); float _e42 = _group_2_binding_0_fs.alpha_cut; ALPHA_SCISSOR_THRESHOLD = _e42; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = false; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_4 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_1 = gl_FrontFacing; bool local = false; bool local_1 = false; hedra_fragment(in_4, facing_1); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = (_e14 < _e16); } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { discard; } float _e25 = emerge_reveal(in_4.world, vec2(-1.0)); if ((_e25 <= 0.0)) { discard; } else { return; } }  fs_custom_idmain"ˆ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; float alpha_cut; float hedra_pad0_; vec2 snap_resolution; float affine_strength; float affine_near; vec3 sun_direction; float hedra_pad1_; vec3 sun_color; float hedra_pad2_; vec3 sky_ambient; float hedra_pad3_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void fragment() { vec4 _e1 = affine_uv; float _e5 = affine_uv.z; vec2 affine = (_e1.xy / vec2(max(_e5, 0.0001))); vec2 _e11 = UV; float _e14 = affine_uv.w; vec2 uv_3 = mix(_e11, affine, clamp(_e14, 0.0, 1.0)); vec4 texel = texture(_group_2_binding_1_fs, vec2(uv_3)); vec4 _e26 = _group_2_binding_0_fs.albedo; vec3 _e30 = gouraud; ALBEDO = ((texel.xyz * _e26.xyz) * _e30); float _e37 = _group_2_binding_0_fs.albedo.w; ALPHA = (texel.w * _e37); float _e42 = _group_2_binding_0_fs.alpha_cut; ALPHA_SCISSOR_THRESHOLD = _e42; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = false; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_24 = false; bool local_25 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } bool _e12 = local_24; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = (_e18 < _e20); } else { local_25 = false; } bool _e23 = local_25; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_5 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_2 = gl_FrontFacing; bool local_2 = false; IdOut out_ = IdOut(vec4(0.0)); hedra_fragment(in_5, facing_2); bool _e3 = hedra_culled(in_5.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy); local_2 = (_e10 <= 0.0); } else { local_2 = true; } bool _e14 = local_2; if (_e14) { discard; } uint id = _group_1_binding_0_fs.params.z; uint _e24 = _group_1_binding_0_fs.params.x; uint _e33 = _group_1_binding_0_fs.params.y; uint bits = (((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u)); out_.id = (vec4(float((id & 255u)), float(((id >> 8u) & 255u)), float(((id >> 16u) & 255u)), float(bits)) / vec4(255.0)); IdOut _e58 = out_; _fs2p_location0 = _e58.id; return; } fs_custom_normal_depthmainÉ#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; struct HedraInstExtra { vec4 custom; float id; }; struct CustomOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; vec4 color; vec2 uv2_; uint instance_id; vec4 hedra_v0_; vec4 hedra_v1_; vec4 hedra_v2_; vec4 hedra_v3_; }; struct IdOut { vec4 id; }; struct HedraParams { vec4 albedo; vec2 uv_scale; vec2 uv_offset; vec2 uv_scroll; float alpha_cut; float hedra_pad0_; vec2 snap_resolution; float affine_strength; float affine_near; vec3 sun_direction; float hedra_pad1_; vec3 sun_color; float hedra_pad2_; vec3 sky_ambient; float hedra_pad3_; vec3 ground_ambient; float light_bands; vec3 emission; float overbright; }; struct HedraNormalDepthOut { vec4 normal_depth; vec4 surface; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = true; const bool SPEC_TEX_MR = true; const bool SPEC_TEX_EMISSION = true; const bool SPEC_TEX_OCCLUSION = true; const bool SPEC_VERTEX_COLOR = true; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = true; const bool SPEC_ALPHA_BLEND = true; const bool SPEC_CLEARCOAT = true; const bool SPEC_SHEEN = true; const bool SPEC_TRANSMISSION = true; const bool SPEC_IRIDESCENCE = true; const bool SPEC_ANISOTROPY = true; const bool SPEC_DIFFUSE_TRANSMISSION = true; const bool SPEC_VOLUME = true; const bool SPEC_DISPERSION = true; const bool SPEC_EXT_LAYERS = true; const bool SPEC_ROUGHNESS_LAYER = true; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = true; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = true; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = true; const bool SPEC_OTHER_MODES = true; const float PI = 3.1415927; const float TAU = 6.2831855; const float E = 2.7182817; const uint HEDRA_BLEND_MIX = 0u; const uint HEDRA_BLEND_PREMUL_ALPHA = 4u; const uint HEDRA_CULL_FRONT = 1u; const uint HEDRA_DIFFUSE_LAMBERT = 0u; const uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; const uint HEDRA_DIFFUSE_BURLEY = 2u; const uint HEDRA_DIFFUSE_TOON = 3u; const uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; const uint HEDRA_SPECULAR_TOON = 1u; const uint HEDRA_SPECULAR_DISABLED = 2u; const uint HEDRA_ENCODE_SRGB = 2u; const uint HEDRA_NEVER = 4294967295u; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; const bool HEDRA_UNSHADED = true; const bool HEDRA_HAS_LIGHT = false; const bool HEDRA_USES_POSITION = false; const bool HEDRA_SKIP_VERTEX_TRANSFORM = true; const bool HEDRA_WORLD_VERTEX_COORDS = false; const bool HEDRA_AMBIENT_LIGHT_DISABLED = false; const bool HEDRA_FOG_DISABLED = false; const bool HEDRA_SHADOWS_DISABLED = true; const bool HEDRA_ALPHA = true; const bool HEDRA_ALPHA_SCISSOR = true; const uint HEDRA_DIFFUSE = 0u; const uint HEDRA_SPECULAR = 2u; const uint HEDRA_BLEND = 0u; const uint HEDRA_CULL = 2u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; vec3 VERTEX = vec3(0.0); vec3 NORMAL = vec3(0.0); vec3 TANGENT = vec3(0.0); vec3 BINORMAL = vec3(0.0); vec2 UV = vec2(0.0); vec2 UV2_ = vec2(0.0); vec4 COLOR = vec4(0.0); mat4x4 MODEL_MATRIX = mat4x4(0.0); mat3x3 MODEL_NORMAL_MATRIX = mat3x3(0.0); mat4x4 INV_VIEW_MATRIX = mat4x4(0.0); mat4x4 INV_PROJECTION_MATRIX = mat4x4(0.0); mat4x4 MODELVIEW_MATRIX = mat4x4(0.0); mat3x3 MODELVIEW_NORMAL_MATRIX = mat3x3(0.0); vec3 NODE_POSITION_WORLD = vec3(0.0); vec3 NODE_POSITION_VIEW = vec3(0.0); vec3 CAMERA_DIRECTION_WORLD = vec3(0.0); vec3 LIGHT_VERTEX = vec3(0.0); vec4 FRAGCOORD = vec4(0.0); bool FRONT_FACING = false; vec3 VIEW = vec3(0.0); vec3 NORMAL_MAP = vec3(0.0); float NORMAL_MAP_DEPTH = 0.0; vec3 ALBEDO = vec3(0.0); float ALPHA = 0.0; float ALPHA_SCISSOR_THRESHOLD = 0.0; float PREMUL_ALPHA_FACTOR = 0.0; float METALLIC = 0.0; float SPECULAR = 0.0; float ROUGHNESS = 0.0; float RIM = 0.0; float RIM_TINT = 0.0; vec3 BACKLIGHT = vec3(0.0); float AO = 0.0; float AO_LIGHT_AFFECT = 0.0; vec3 EMISSION = vec3(0.0); vec2 SCREEN_UV = vec2(0.0); vec3 hedra_world = vec3(0.0); vec3 hedra_n_geo = vec3(0.0); vec3 hedra_n = vec3(0.0); bool hedra_front = false; layout(std140) uniform HedraParams_block_2Fragment { HedraParams _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; vec4 affine_uv = vec4(0.0); vec3 gouraud = vec3(0.0); smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in vec4 _vs2fs_location5; smooth in vec2 _vs2fs_location6; flat in uint _vs2fs_location7; smooth in vec4 _vs2fs_location8; smooth in vec4 _vs2fs_location9; smooth in vec4 _vs2fs_location10; smooth in vec4 _vs2fs_location11; layout(location = 0) out vec4 _fs2p_location0; layout(location = 1) out vec4 _fs2p_location1; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec4 element_color(uint flags, vec4 fallback) { bool local_4 = false; bool local_5 = false; if (((flags & F_MESH) == 0u)) { return fallback; } uint overlays = _group_0_binding_0_fs.params.y; uint _e13 = _group_1_binding_0_fs.params.w; bool edit_object = (_e13 == 1u); if (((flags & F_SEAM) != 0u)) { local_4 = ((overlays & OV_SEAMS) != 0u); } else { local_4 = false; } bool _e27 = local_4; if (_e27) { vec3 _e32 = srgb_to_linear(vec3(0.86, 0.0, 0.0)); return vec4(_e32, 1.0); } if (((flags & F_SHARP) != 0u)) { local_5 = ((overlays & OV_SHARP) != 0u); } else { local_5 = false; } bool _e46 = local_5; if (_e46) { vec3 _e51 = srgb_to_linear(vec3(0.0, 0.85, 0.9)); return vec4(_e51, 1.0); } if (((overlays & OV_SELECTION) != 0u)) { if (edit_object) { if (((flags & F_SELECTED) != 0u)) { vec4 _e64 = _group_0_binding_0_fs.select_color; return _e64; } vec4 _e67 = _group_0_binding_0_fs.wire_color; return _e67; } uint _e71 = _group_1_binding_0_fs.params.x; if ((_e71 == 1u)) { vec4 _e76 = _group_0_binding_0_fs.select_color; vec4 _e79 = _group_0_binding_0_fs.active_color; uint _e83 = _group_1_binding_0_fs.params.y; return ((_e83 == 1u) ? _e79 : _e76); } } vec4 _e89 = _group_0_binding_0_fs.wire_color; return _e89; } vec4 to_view(vec3 p, float pull) { vec4 v = vec4(0.0); mat4x4 _e4 = _group_0_binding_0_fs.view; mat4x4 _e7 = _group_1_binding_0_fs.model; v = ((_e4 * _e7) * vec4(p, 1.0)); float _e15 = v.z; v.z = (_e15 * (1.0 - pull)); vec4 _e19 = v; return _e19; } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_12 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_12.xyz); return vec4(_e13, k_12.w); } return k_12; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } vec3 light_count_color() { vec3 colors[10] = LIGHT_COUNT_COLORS; uint _e5 = _group_1_binding_0_fs.lights.w; vec3 _e9 = colors[min(_e5, 9u)]; return _e9; } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } float d_ggx(float nh, float a2_) { float d_12 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_12) * d_12)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 f_schlick(vec3 f0_, float vh) { return (f0_ + ((vec3(1.0) - f0_) * pow((1.0 - vh), 5.0))); } vec3 light_specular(vec3 n, vec3 v_1, vec3 l, vec3 radiance, vec3 diffuse, vec3 f0_1, float a2_2, float specular) { float nl_2 = dot(n, l); if ((nl_2 <= 0.0)) { return vec3(0.0); } vec3 h = normalize((l + v_1)); float nh_1 = max(dot(n, h), 0.0); float vh_1 = max(dot(v_1, h), 0.0); float nv_3 = max(dot(n, v_1), 0.0001); vec3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); vec3 spec = ((_e25 * _e26) * _e24); return ((((diffuse / vec3(3.1415927)) + (spec * specular)) * radiance) * nl_2); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_2 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_2 * (x_2 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_2 * ((0.983729 * x_2) + vec3(0.432951))) + vec3(0.238081))); vec3 o_5 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = (1.8 * white); float wt = (((w_1 * (w_1 + 0.0245786)) - 9.0537e-5) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081)); return (o_5 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v_2 = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v_2 = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v_2; v_2 = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v_2; vec3 _e45 = v_2; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v_2; vec3 _e56 = v_2; vec3 _e64 = v_2; vec3 p_7 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_7, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p_1) { vec3 q = vec3(0.0); q = fract((p_1 * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_2) { vec3 i_13 = floor(p_2); vec3 f = fract(p_2); vec3 u_1 = ((f * f) * (vec3(3.0) - (2.0 * f))); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash((i_13 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_13 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_13 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u_1.x), mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash((i_13 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_13 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_13 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_13 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u_1.x), mix(_e54, _e60, u_1.x), u_1.y); return mix(a_2, b_2, u_1.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n_1 = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_2 = _group_1_binding_0_fs.normal[0][3]; vec3 w_2 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_2); float _e29 = emerge_noise(((w_2 * 2.7) + vec3(17.1))); n_1 = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n_1; n_1 = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n_1; return (((e_2 * 1.8) - _e60) / EMERGE_EDGE); } float sky_curve(float c_8, float curve) { return clamp((1.0 - pow(max((1.0 - c_8), 1e-6), (1.0 / curve))), 0.0, 1.0); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_6 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_6.x * r_6.x), exp2((-9.28 * nv_1))) * r_6.x) + r_6.y); return ((vec2(-1.04, 1.04) * a004_) + r_6.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_5, float inv_range, float decay) { float nd = 0.0; nd = (d_5 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_5, 0.0001), -(decay))); } vec3 probe_light(vec3 n_5) { float _e5 = _group_1_binding_0_fs.gi[0].x; vec4 _e9 = _group_1_binding_0_fs.gi[0]; float _e17 = _group_1_binding_0_fs.gi[1].x; vec4 _e21 = _group_1_binding_0_fs.gi[1]; float _e29 = _group_1_binding_0_fs.gi[2].x; vec4 _e33 = _group_1_binding_0_fs.gi[2]; return max(vec3((_e5 + dot(_e9.yzw, n_5)), (_e17 + dot(_e21.yzw, n_5)), (_e29 + dot(_e33.yzw, n_5))), vec3(0.0)); } vec4 gi_diffuse(vec3 n_6, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } uint _e9 = _group_1_binding_0_fs.extra.x; if ((SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false)) { vec3 _e16 = probe_light(n_6); return vec4(_e16, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_8) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_17 = false; vec3 a_3 = abs(d_8); if ((a_3.x >= a_3.y)) { local_17 = (a_3.x >= a_3.z); } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_3.x; if ((d_8.x >= 0.0)) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_8.y >= 0.0)) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_3.z; if ((d_8.z >= 0.0)) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_5, vec3 world_6) { vec3 l_5 = (p_5.to_local * vec4(world_6, 1.0)).xyz; vec3 e_3 = p_5.extents.xyz; float d_13 = min((e_3.x - abs(l_5.x)), min((e_3.y - abs(l_5.y)), (e_3.z - abs(l_5.z)))); if ((d_13 < 0.0)) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return min((d_13 / p_5.extents.w), 1.0); } float probe_exit(float o_3, float d_10, float e_1) { if ((d_10 > 0.0)) { return ((e_1 - o_3) / d_10); } if ((d_10 < 0.0)) { return ((-(e_1) - o_3) / d_10); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_6, vec3 world_7, vec3 dir_6) { vec3 d_14 = (p_6.to_local * vec4(dir_6, 0.0)).xyz; if (((p_6.info.x & PROBE_BOX) == 0u)) { return d_14; } vec3 o_6 = (p_6.to_local * vec4(world_7, 1.0)).xyz; vec3 e_4 = p_6.extents.xyz; float _e24 = probe_exit(o_6.x, d_14.x, e_4.x); float _e28 = probe_exit(o_6.y, d_14.y, e_4.y); float _e32 = probe_exit(o_6.z, d_14.z, e_4.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_6 + (d_14 * t_3)) - p_6.offset.xyz); } void hedra_store_varyings(inout CustomOut o_4) { vec4 _e3 = affine_uv; o_4.hedra_v0_ = vec4(_e3); vec3 _e7 = gouraud; o_4.hedra_v1_ = vec4(_e7, 0.0); return; } void hedra_load_varyings(CustomOut i_10) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light() { return; } vec3 scene_to_frame(vec3 v_3) { return vec3(v_3.x, -(v_3.z), v_3.y); } void fragment() { vec4 _e1 = affine_uv; float _e5 = affine_uv.z; vec2 affine = (_e1.xy / vec2(max(_e5, 0.0001))); vec2 _e11 = UV; float _e14 = affine_uv.w; vec2 uv_3 = mix(_e11, affine, clamp(_e14, 0.0, 1.0)); vec4 texel = texture(_group_2_binding_1_fs, vec2(uv_3)); vec4 _e26 = _group_2_binding_0_fs.albedo; vec3 _e30 = gouraud; ALBEDO = ((texel.xyz * _e26.xyz) * _e30); float _e37 = _group_2_binding_0_fs.albedo.w; ALPHA = (texel.w * _e37); float _e42 = _group_2_binding_0_fs.alpha_cut; ALPHA_SCISSOR_THRESHOLD = _e42; return; } mat3x3 hedra_mat3_(mat4x4 m_2) { return mat3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } mat4x4 hedra_rigid_inverse(mat4x4 m_3) { mat3x3 _e1 = hedra_mat3_(m_3); mat3x3 r_7 = transpose(_e1); vec3 t_4 = -((r_7 * m_3[3].xyz)); return mat4x4(vec4(r_7[0], 0.0), vec4(r_7[1], 0.0), vec4(r_7[2], 0.0), vec4(t_4, 1.0)); } mat4x4 hedra_inv_projection() { vec4 _e2 = _group_0_binding_0_fs.wire_color; vec4 _e5 = _group_0_binding_0_fs.select_color; vec4 _e8 = _group_0_binding_0_fs.active_color; vec4 _e11 = _group_0_binding_0_fs.grid; return mat4x4(_e2, _e5, _e8, _e11); } vec2 hedra_godot_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } bool hedra_transparent() { bool local_20 = false; bool local_21 = false; if (HEDRA_ALPHA) { local_20 = false; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored(uint flags_1) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u)); } void hedra_matrices(mat4x4 model, mat3x3 normal) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; mat4x4 _e7 = _group_0_binding_0_fs.view; mat4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; mat4x4 _e10 = hedra_inv_projection(); INV_PROJECTION_MATRIX = _e10; mat4x4 _e14 = _group_0_binding_0_fs.view; MODELVIEW_MATRIX = (_e14 * model); mat4x4 _e19 = _group_0_binding_0_fs.view; mat3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = (_e20 * normal); NODE_POSITION_WORLD = model[3].xyz; mat4x4 _e28 = _group_0_binding_0_fs.view; NODE_POSITION_VIEW = (_e28 * vec4(model[3].xyz, 1.0)).xyz; vec4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } bool hedra_vertex_space() { bool local_23 = false; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } vec4 hedra_vertex_world() { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e2 = INV_VIEW_MATRIX; vec3 _e4 = VERTEX; return (_e2 * vec4(_e4, 1.0)); } vec3 _e9 = VERTEX; return vec4(_e9, 1.0); } vec3 hedra_vertex_dir(vec3 d_11) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { mat4x4 _e3 = INV_VIEW_MATRIX; mat3x3 _e4 = hedra_mat3_(_e3); return (_e4 * d_11); } return d_11; } float hedra_tangent_sign(float w, bool flip) { uint _e5 = _group_1_binding_0_fs.extra.x; return (w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0)); } void hedra_fragment(CustomOut in_7, bool facing_4) { vec3 t_1 = vec3(0.0); vec3 nm = vec3(0.0); bool _e3 = hedra_mirrored(in_7.flags); bool front = (facing_4 != _e3); hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; vec4 _e14 = _group_0_binding_0_fs.viewport; SCREEN_UV = (in_7.clip.xy * _e14.zw); mat4x4 _e19 = _group_1_binding_0_fs.model; mat4x4 _e22 = _group_1_binding_0_fs.normal; mat3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23); mat4x4 _e26 = _group_0_binding_0_fs.view; mat3x3 _e27 = hedra_mat3_(_e26); vec3 n_geo_2 = (front ? normalize(in_7.normal) : -(normalize(in_7.normal))); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; vec3 _e41 = t_1; vec3 _e42 = t_1; t_1 = normalize((_e41 - (n_geo_2 * dot(n_geo_2, _e42)))); vec3 _e47 = t_1; vec3 b_3 = (cross(n_geo_2, _e47) * in_7.tangent.w); mat4x4 _e55 = _group_0_binding_0_fs.view; VERTEX = (_e55 * vec4(in_7.world, 1.0)).xyz; vec3 _e63 = VERTEX; LIGHT_VERTEX = _e63; vec3 vertex0_ = VERTEX; NORMAL = normalize((_e27 * n_geo_2)); vec3 normal0_ = NORMAL; vec3 _e72 = t_1; TANGENT = normalize((_e27 * _e72)); BINORMAL = normalize((_e27 * b_3)); vec3 _e80 = VERTEX; float _e90 = _group_0_binding_0_fs.camera_pos.w; VIEW = ((_e90 > 0.5) ? vec3(0.0, 0.0, 1.0) : normalize(-(_e80))); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = vec3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = vec3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = vec3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = vec3(0.0); hedra_load_varyings(in_7); fragment(); mat3x3 back = transpose(_e27); vec3 _e136 = NORMAL; if (any(notEqual(_e136, normal0_))) { vec3 _e141 = NORMAL; hedra_n = normalize((back * _e141)); } vec3 _e145 = NORMAL_MAP; if (any(notEqual(_e145, vec3(0.5)))) { vec3 _e151 = NORMAL_MAP; nm = _e151; vec3 _e153 = nm; nm = vec3(((_e153.xy * 2.0) - vec2(1.0)), 0.0); vec3 _e163 = nm; vec3 _e165 = nm; nm.z = sqrt(max(0.0, (1.0 - dot(_e163.xy, _e165.xy)))); vec3 _e175 = NORMAL; vec3 _e177 = TANGENT; float _e179 = nm.x; vec3 _e182 = BINORMAL; float _e184 = nm.y; vec3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = normalize(mix(_e175, (((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190)), _e194)); vec3 _e199 = NORMAL; hedra_n = normalize((back * _e199)); } vec3 _e203 = LIGHT_VERTEX; if (any(notEqual(_e203, vertex0_))) { mat4x4 _e208 = INV_VIEW_MATRIX; vec3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * vec4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled(uint flags_3) { bool local_24 = false; bool local_25 = false; if (((flags_3 & F_HIDDEN) != 0u)) { return true; } if (false) { bool _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } bool _e12 = local_24; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = (_e18 < _e20); } else { local_25 = false; } bool _e23 = local_25; return _e23; } vec3 hedra_view_dir(vec3 world_11) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_11))); } float hedra_schlick(float u) { float m_4 = clamp((1.0 - u), 0.0, 1.0); float m2_ = (m_4 * m_4); return ((m2_ * m2_) * m_4); } float hedra_diffuse_brdf(float nl_1, float nv_2, float lh, float r_4) { float c_nl = max(nl_1, 0.0); if (false) { return (max(0.0, ((nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4)))) * 0.31830987); } if (false) { return (smoothstep(-(r_4), max(r_4, 0.01), nl_1) * 0.31830987); } if (false) { float fd90_ = ((((2.0 * lh) * lh) * r_4) - 0.5); float _e32 = hedra_schlick(nv_2); float fdv = (1.0 + (fd90_ * _e32)); float _e36 = hedra_schlick(c_nl); float fdl = (1.0 + (fd90_ * _e36)); return (((0.31830987 * fdv) * fdl) * c_nl); } return (c_nl * 0.31830987); } vec3 hedra_light_modes(vec3 n_9, vec3 v_4, vec3 l_3, vec3 radiance_2, vec3 diffuse_2, vec3 f0_2, float a2_3, float r_5, float specular_1) { vec3 c_19 = vec3(0.0); float mid = 0.0; bool local_26 = false; float nl_3 = min(dot(n_9, l_3), 1.0); float nv_4 = max(dot(n_9, v_4), 0.0001); vec3 h_1 = normalize((l_3 + v_4)); float lh_1 = clamp(dot(l_3, h_1), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = ((diffuse_2 * _e21) * radiance_2); if ((r_5 > 0.0)) { if (false) { vec3 refl = normalize(-(reflect(l_3, n_9))); float rv = dot(refl, v_4); mid = (1.0 - r_5); float _e35 = mid; float _e36 = mid; mid = (_e35 * _e36); vec3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = (_e38 + ((diffuse_2 * radiance_2) * ((smoothstep((_e40 - (r_5 * 0.5)), (_e44 + (r_5 * 0.5)), rv) * _e49) * specular_1))); } else { if (false) { local_26 = (nl_3 > 0.0); } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = max(dot(n_9, h_1), 0.0); float vh_2 = max(dot(v_4, h_1), 0.0); vec3 _e67 = f_schlick(f0_2, vh_2); vec3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = (_e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2)); } } } vec3 _e77 = c_19; return _e77; } void main() { CustomOut in_6 = CustomOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10, _vs2fs_location11); bool facing_3 = gl_FrontFacing; bool local_3 = false; HedraNormalDepthOut out_1 = HedraNormalDepthOut(vec4(0.0), vec4(0.0)); hedra_fragment(in_6, facing_3); bool _e3 = hedra_culled(in_6.flags); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy); local_3 = (_e10 <= 0.0); } else { local_3 = true; } bool _e14 = local_3; if (_e14) { discard; } mat4x4 _e17 = _group_0_binding_0_fs.view; mat3x3 _e18 = hedra_mat3_(_e17); vec3 _e20 = hedra_n; vec3 n_view = normalize((_e18 * _e20)); float _e24 = METALLIC; float metallic_1 = clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; vec3 _e37 = ALBEDO; vec3 f0_4 = mix(vec3(((0.16 * _e29) * _e33)), _e37, metallic_1); mat4x4 _e43 = _group_0_binding_0_fs.view; out_1.normal_depth = vec4(n_view, -((_e43 * vec4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = vec4(clamp(f0_4, vec3(0.0), vec3(1.0)), clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; _fs2p_location0 = _e63.normal_depth; _fs2p_location1 = _e63.surface; return; }  @Ð Ð/ ,@  �{Ðþ—4ÌhÜ©Z„åŸþh³@]ß,dápuªrWJGlobals_block_0VertexObjectU_block_1Vertex HedraParams_block_2VertexSkinU_block_2Vertex HedraParams_block_3VertexSkyU_block_4FragmentShadowU_block_3FragmentGlobals_block_0Fragment HedraParams_block_8FragmentFogU_block_7FragmentDecalU_block_6FragmentObjectU_block_1FragmentProbeU_block_5FragmentLitU_block_2Fragment_group_3_binding_4_fs_group_0_binding_6_fs_group_2_binding_1_fs_group_1_binding_3_fs_group_3_binding_1_fs_group_3_binding_6_fs_group_0_binding_3_fs_group_1_binding_6_fs_group_3_binding_0_fs HedraParams_block_2Fragment vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depth?p// language: metal2.2 #include #include using metal::uint; struct Globals { metal::float4x4 view; metal::float4x4 proj; metal::float4x4 view_proj; metal::float4 camera_pos; metal::float4 viewport; metal::float4 wire_color; metal::float4 select_color; metal::float4 active_color; metal::float4 grid; metal::uint4 params; metal::float4 fparams; }; struct type_5 { metal::float4 inner[3]; }; struct ObjectU { metal::float4x4 model; metal::float4x4 normal; metal::float4 color; metal::uint4 params; metal::uint4 extra; type_5 gi; metal::uint4 decals; metal::uint4 lights; }; struct type_8 { metal::float3 inner[10]; }; struct LightU { metal::float4 color; metal::float4 position; metal::float4 direction; metal::float4 spot; metal::uint4 info; }; struct type_9 { LightU inner[64]; }; struct LitU { metal::uint4 counts; metal::float4 ambient; metal::float4 tone; metal::float4 up; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_horizon; metal::float4 ground_bottom; metal::float4x4 inv_view_proj; metal::uint4 dirs; type_9 lights; }; struct ShadowLightU { metal::float4 params; metal::float4 splits; metal::float4 fade; metal::uint4 info; }; struct ShadowTileU { metal::float4x4 view_proj; metal::float4 rect; metal::float4 texel; }; struct type_10 { ShadowLightU inner[16]; }; struct type_11 { ShadowTileU inner[16]; }; struct ShadowU { metal::float4 atlas; type_10 lights; type_11 tiles; }; struct SunU { metal::float4 direction; metal::float4 color; }; struct type_14 { SunU inner[4]; }; struct type_15 { metal::float4 inner[9]; }; struct SkyU { metal::uint4 flags; metal::float4x4 to_sky; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_bottom; metal::float4 ground_horizon; metal::float4 sun; metal::float4 ambient; metal::float4 ibl; metal::float4 fog_color; metal::float4 fog; metal::float4 fog_depth; metal::float4 fog_origin; type_14 suns; type_15 sh; }; struct ProbeEntryU { metal::float4x4 to_local; metal::float4 extents; metal::float4 offset; metal::float4 ambient; metal::uint4 info; }; struct type_20 { ProbeEntryU inner[8]; }; struct ProbeU { metal::uint4 counts; type_20 probes; }; struct DecalEntryU { metal::float4x4 to_local; metal::float4 modulate; metal::float4 fades; metal::float4 axis_x; metal::float4 axis_y; metal::float4 axis_z; metal::uint4 layers; metal::uint4 flags; }; struct type_21 { DecalEntryU inner[64]; }; struct DecalU { metal::uint4 counts; metal::float4 lod; type_21 entries; }; struct DecalSurface { metal::packed_float3 base; float metallic; float roughness; float occlusion; char _pad4[8]; metal::float3 normal; metal::float3 emission; }; struct VsIn { metal::float3 pos; metal::float3 normal; metal::float2 uv; uint flags; char _pad4[4]; metal::float4 tangent; float weight; char _pad6[12]; }; struct InstIn { metal::float4 row0_; metal::float4 row1_; metal::float4 row2_; metal::float4 color; }; struct FogEntryU { metal::float4x4 to_local; metal::float4 size; metal::float4 material; metal::float4 albedo; metal::float4 emission; metal::uint4 lights; }; struct type_26 { metal::float4 inner[16]; }; struct type_27 { FogEntryU inner[16]; }; struct FogU { metal::uint4 counts; metal::float4 params; metal::float4 ambient; metal::float4 up; type_26 light_fog; type_27 entries; }; struct type_28 { uint inner[4]; }; struct type_29 { metal::float2 inner[4]; }; struct type_30 { metal::float4 inner[4]; }; struct type_31 { metal::float4 inner[765]; }; struct SkinU { type_31 rows; }; struct SkinIn { metal::uint4 joints; metal::float4 weights; }; struct SkinRows { metal::float4 r0_; metal::float4 r1_; metal::float4 r2_; }; struct HedraInstExtra { metal::float4 custom; float id; char _pad2[12]; }; struct CustomOut { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; metal::float4 color; metal::float2 uv2_; uint instance_id; char _pad9[4]; metal::float4 hedra_v0_; metal::float4 hedra_v1_; metal::float4 hedra_v2_; metal::float4 hedra_v3_; }; struct IdOut { metal::float4 id; }; struct HedraParams { metal::float4 albedo; metal::float2 uv_scale; metal::float2 uv_offset; metal::float2 uv_scroll; float alpha_cut; float hedra_pad0_; metal::float2 snap_resolution; float affine_strength; float affine_near; metal::packed_float3 sun_direction; float hedra_pad1_; metal::packed_float3 sun_color; float hedra_pad2_; metal::packed_float3 sky_ambient; float hedra_pad3_; metal::packed_float3 ground_ambient; float light_bands; metal::packed_float3 emission; float overbright; }; struct HedraNormalDepthOut { metal::float4 normal_depth; metal::float4 surface; }; constant uint OBJ_HAS_WEIGHTS = 1u; constant uint OBJ_MIRRORED = 2u; constant uint SHADE_SOLID = 0u; constant uint SHADE_MATCAP = 1u; constant uint SHADE_NORMALS = 2u; constant uint SHADE_FACE_ORIENT = 3u; constant uint SHADE_RANDOM = 4u; constant uint SHADE_MATERIAL = 5u; constant uint SHADE_UV_CHECKER = 6u; constant uint SHADE_WEIGHTS = 7u; constant uint SHADE_LIT = 8u; constant uint SHADE_LIGHTMAP = 9u; constant uint SHADE_LIGHT_COUNT = 10u; constant uint OV_SELECTION = 1u; constant uint OV_SEAMS = 2u; constant uint OV_SHARP = 4u; constant uint F_SELECTED = 1u; constant uint F_HIDDEN = 2u; constant uint F_SEAM = 4u; constant uint F_SHARP = 8u; constant uint F_MESH = 16u; constant uint F_FADE = 32u; constant uint F_NO_PULL = 64u; constant bool SPEC_TEX_BASE = true; constant bool SPEC_TEX_NORMAL = true; constant bool SPEC_TEX_MR = true; constant bool SPEC_TEX_EMISSION = true; constant bool SPEC_TEX_OCCLUSION = true; constant bool SPEC_VERTEX_COLOR = true; constant bool SPEC_EXT = true; constant bool SPEC_UNLIT = true; constant bool SPEC_ALPHA_MASK = true; constant bool SPEC_ALPHA_BLEND = true; constant bool SPEC_CLEARCOAT = true; constant bool SPEC_SHEEN = true; constant bool SPEC_TRANSMISSION = true; constant bool SPEC_IRIDESCENCE = true; constant bool SPEC_ANISOTROPY = true; constant bool SPEC_DIFFUSE_TRANSMISSION = true; constant bool SPEC_VOLUME = true; constant bool SPEC_DISPERSION = true; constant bool SPEC_EXT_LAYERS = true; constant bool SPEC_ROUGHNESS_LAYER = true; constant bool SPEC_LIT = true; constant bool SPEC_LIGHTS = true; constant bool SPEC_SHADOWS = true; constant bool SPEC_DECALS = true; constant bool SPEC_FOG = true; constant bool SPEC_FOG_VOLUMES = true; constant bool SPEC_PROBES = true; constant bool SPEC_PROBE_GI = true; constant bool SPEC_SSAO = true; constant bool SPEC_SCREEN_REFRACTION = true; constant bool SPEC_EMERGE = true; constant bool SPEC_FADE = true; constant bool SPEC_FACE_FLAGS = true; constant bool SPEC_AMBIENT_FLAT = true; constant bool SPEC_AMBIENT_GRADIENT = true; constant bool SPEC_AMBIENT_SKY = true; constant bool SPEC_MATERIAL_MODE = true; constant bool SPEC_OTHER_MODES = true; constant float PI = 3.1415927; constant float TAU = 6.2831855; constant float E = 2.7182817; constant uint HEDRA_BLEND_MIX = 0u; constant uint HEDRA_BLEND_PREMUL_ALPHA = 4u; constant uint HEDRA_CULL_FRONT = 1u; constant uint HEDRA_DIFFUSE_LAMBERT = 0u; constant uint HEDRA_DIFFUSE_LAMBERT_WRAP = 1u; constant uint HEDRA_DIFFUSE_BURLEY = 2u; constant uint HEDRA_DIFFUSE_TOON = 3u; constant uint HEDRA_SPECULAR_SCHLICK_GGX = 0u; constant uint HEDRA_SPECULAR_TOON = 1u; constant uint HEDRA_SPECULAR_DISABLED = 2u; constant uint HEDRA_ENCODE_SRGB = 2u; constant uint HEDRA_NEVER = 4294967295u; constant uint MAX_FRAME_LIGHTS = 64u; constant uint MAX_OBJECT_LIGHTS = 8u; constant uint MAX_SHADOW_LIGHTS = 16u; constant uint MAX_POOL_DIRECTIONAL = 8u; constant type_8 LIGHT_COUNT_COLORS = type_8 {{metal::float3(0.352941, 0.352941, 0.352941), metal::float3(0.168627, 0.247059, 0.6), metal::float3(0.129412, 0.4, 0.67451), metal::float3(0.101961, 0.623529, 0.721569), metal::float3(0.121569, 0.631373, 0.529412), metal::float3(0.301961, 0.733333, 0.352941), metal::float3(0.65098, 0.831373, 0.227451), metal::float3(0.94902, 0.784314, 0.058824), metal::float3(0.94902, 0.556863, 0.058824), metal::float3(0.878431, 0.129412, 0.541176)}}; constant uint LIGHT_DIRECTIONAL = 0u; constant uint LIGHT_OMNI = 1u; constant uint LIGHT_SPOT = 2u; constant uint LIGHT_BAKE_DISABLED = 0u; constant uint LIGHT_BAKE_STATIC = 1u; constant uint LIGHT_BAKE_DYNAMIC = 2u; constant uint TONEMAP_LINEAR = 0u; constant uint TONEMAP_REINHARD = 1u; constant uint TONEMAP_FILMIC = 2u; constant uint TONEMAP_ACES = 3u; constant uint TONEMAP_AGX = 4u; constant uint ENV_SKY = 1u; constant uint ENV_AMBIENT_SKY = 2u; constant uint ENV_SSAO = 4u; constant uint ENV_HDR = 8u; constant uint ENV_SCREEN_REFRACTION = 16u; constant uint LIGHT_SHADOWED = 1u; constant uint LIGHT_BAKED_STATIC = 1u; constant uint SHADOW_TILES = 16u; constant uint SKY_DRAW_PROCEDURAL = 1u; constant uint SKY_DRAW_PANORAMA = 2u; constant uint SKY_PANORAMA_FILTER = 4u; constant uint SKY_IBL = 8u; constant uint SKY_AMBIENT_SKY = 16u; constant uint SKY_REFLECT_RADIANCE = 32u; constant uint SKY_REFLECT_OFF = 64u; constant uint SKY_FOG = 128u; constant uint SKY_FOG_DEPTH = 256u; constant uint SKY_SUNS = 4u; constant uint OBJ_LIGHTMAP = 4u; constant uint OBJ_PROBE_GI = 8u; constant uint PROBE_BOX = 1u; constant uint PROBE_INTERIOR = 2u; constant uint MAX_PROBES = 8u; constant uint PROBE_AMBIENT_DISABLED = 0u; constant uint PROBE_AMBIENT_ENVIRONMENT = 1u; constant uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; constant uint MAX_FRAME_DECALS = 64u; constant uint MAX_OBJECT_DECALS = 8u; constant uint DECAL_LIVE_ALBEDO = 1u; constant uint DECAL_LIVE_NORMAL = 2u; constant uint DECAL_LIVE_ORM = 4u; constant uint DECAL_LIVE_EMISSION = 8u; constant uint F_INSTANCE_MIRRORED = 128u; constant uint OBJ_EMERGE = 32u; constant float EMERGE_SCALE = 1.3; constant float EMERGE_EDGE = 0.8; constant float EMERGE_DITHER = 0.12; constant uint OBJ_FADE = 64u; constant uint MAX_FRAME_FOG_VOLUMES = 16u; constant uint MAX_OBJECT_FOG_VOLUMES = 4u; constant uint FOG_SHAPE_ELLIPSOID = 0u; constant uint FOG_SHAPE_CONE = 1u; constant uint FOG_SHAPE_CYLINDER = 2u; constant uint FOG_SHAPE_BOX = 3u; constant uint FOG_SHAPE_WORLD = 4u; constant float FOG_SKY_DISTANCE = 1000000.0; constant uint FOG_LIST_ALL = 2147483648u; constant float FOG_GL_X0_ = 0.8611363; constant float FOG_GL_X1_ = 0.339981; constant float FOG_GL_W0_ = 0.3478548; constant float FOG_GL_W1_ = 0.6521452; constant uint OBJ_SKINNED = 16u; constant uint SKIN_JOINTS = 255u; constant bool HEDRA_UNSHADED = true; constant bool HEDRA_HAS_LIGHT = false; constant bool HEDRA_USES_POSITION = false; constant bool HEDRA_SKIP_VERTEX_TRANSFORM = true; constant bool HEDRA_WORLD_VERTEX_COORDS = false; constant bool HEDRA_AMBIENT_LIGHT_DISABLED = false; constant bool HEDRA_FOG_DISABLED = false; constant bool HEDRA_SHADOWS_DISABLED = true; constant bool HEDRA_ALPHA = true; constant bool HEDRA_ALPHA_SCISSOR = true; constant uint HEDRA_DIFFUSE = 0u; constant uint HEDRA_SPECULAR = 2u; constant uint HEDRA_BLEND = 0u; constant uint HEDRA_CULL = 2u; metal::float3 srgb_to_linear( metal::float3 c_1 ) { metal::float3 lo = c_1 / metal::float3(12.92); metal::float3 hi = metal::pow((c_1 + metal::float3(0.055)) / metal::float3(1.055), metal::float3(2.4)); return metal::select(hi, lo, c_1 <= metal::float3(0.04045)); } metal::float4 element_color( uint flags, metal::float4 fallback, constant Globals& G, constant ObjectU& O ) { bool local_4 = {}; bool local_5 = {}; if ((flags & F_MESH) == 0u) { return fallback; } uint overlays = G.params.y; uint _e13 = O.params.w; bool edit_object = _e13 == 1u; if ((flags & F_SEAM) != 0u) { local_4 = (overlays & OV_SEAMS) != 0u; } else { local_4 = false; } bool _e27 = local_4; if (_e27) { metal::float3 _e32 = srgb_to_linear(metal::float3(0.86, 0.0, 0.0)); return metal::float4(_e32, 1.0); } if ((flags & F_SHARP) != 0u) { local_5 = (overlays & OV_SHARP) != 0u; } else { local_5 = false; } bool _e46 = local_5; if (_e46) { metal::float3 _e51 = srgb_to_linear(metal::float3(0.0, 0.85, 0.9)); return metal::float4(_e51, 1.0); } if ((overlays & OV_SELECTION) != 0u) { if (edit_object) { if ((flags & F_SELECTED) != 0u) { metal::float4 _e64 = G.select_color; return _e64; } metal::float4 _e67 = G.wire_color; return _e67; } uint _e71 = O.params.x; if (_e71 == 1u) { metal::float4 _e76 = G.select_color; metal::float4 _e79 = G.active_color; uint _e83 = O.params.y; return (_e83 == 1u) ? _e79 : _e76; } } metal::float4 _e89 = G.wire_color; return _e89; } metal::float4 to_view( metal::float3 p, float pull, constant Globals& G, constant ObjectU& O ) { metal::float4 v = {}; metal::float4x4 _e4 = G.view; metal::float4x4 _e7 = O.model; v = (_e4 * _e7) * metal::float4(p, 1.0); float _e15 = v.z; v.z = _e15 * (1.0 - pull); metal::float4 _e19 = v; return _e19; } metal::float3 linear_to_srgb( metal::float3 c_2 ) { metal::float3 lo_1 = c_2 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(c_2, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, c_2 <= metal::float3(0.0031308)); } metal::float4 target_color( metal::float4 c_3, constant Globals& G ) { metal::float4 k_12 = metal::clamp(c_3, metal::float4(0.0), metal::float4(1.0)); float _e9 = G.fparams.w; if (_e9 > 0.5) { metal::float3 _e13 = linear_to_srgb(k_12.xyz); return metal::float4(_e13, k_12.w); } return k_12; } uint object_light_count( constant ObjectU& O ) { uint _e3 = O.lights.z; return metal::min(_e3, MAX_OBJECT_LIGHTS); } uint object_light( uint k, constant ObjectU& O ) { uint _e4 = O.lights.y; uint _e8 = O.lights.x; uint word = (k < 4u) ? _e8 : _e4; return metal::min((word >> ((k & 3u) * 8u)) & 255u, 63u); } metal::float3 light_count_color( constant ObjectU& O ) { type_8 colors = LIGHT_COUNT_COLORS; uint _e5 = O.lights.w; metal::float3 _e9 = colors.inner[metal::min(unsigned(metal::min(_e5, 9u)), 9u)]; return _e9; } uint pool_sun_count( constant LitU& Lit ) { uint _e3 = Lit.dirs.z; return metal::min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun( uint k_1, constant LitU& Lit ) { uint _e4 = Lit.dirs.y; uint _e8 = Lit.dirs.x; uint word_1 = (k_1 < 4u) ? _e8 : _e4; return metal::min((word_1 >> ((k_1 & 3u) * 8u)) & 255u, 63u); } uint decal_count( constant ObjectU& O ) { uint _e3 = O.decals.z; return metal::min(_e3, MAX_OBJECT_DECALS); } uint decal_entry( uint k_2, constant ObjectU& O ) { uint _e4 = O.decals.y; uint _e8 = O.decals.x; uint word_2 = (k_2 < 4u) ? _e8 : _e4; return (word_2 >> ((k_2 & 3u) * 8u)) & 255u; } float decal_level( DecalEntryU e, metal::float3 world, constant Globals& G, constant DecalU& Decal ) { float _e5 = Decal.lod.x; metal::float4 _e8 = G.camera_pos; float _e15 = Decal.lod.y; float pixel_1 = _e5 * ((_e15 > 0.5) ? 1.0 : metal::length(world - _e8.xyz)); uint _e24 = Decal.counts.y; float top = static_cast(metal::max(_e24, 1u) - 1u); return metal::clamp(metal::log2(metal::max(pixel_1 / metal::max(e.axis_y.w, 0.000001), 1.0)), 0.0, top); } metal::float4 decal_texel( uint layer, metal::float2 uv, float level, bool live, metal::texture2d_array t_decals, metal::sampler s_decals ) { metal::float4 _e11 = t_decals.sample(s_decals, uv, static_cast(layer - 1u), metal::level(live ? 0.0 : level)); return _e11; } DecalSurface apply_decals( metal::float3 world_1, metal::float3 n_geo, DecalSurface surf, constant Globals& G, constant ObjectU& O, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { DecalSurface out_s = {}; uint k_3 = 0u; bool local_6 = {}; float fade = {}; out_s = surf; uint _e4 = decal_count(O); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { uint _e197 = k_3; k_3 = _e197 + 1u; } loop_init = false; uint _e7 = k_3; if (_e7 < _e4) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11, O); DecalEntryU e_2 = Decal.entries.inner[metal::min(unsigned(metal::min(_e12, 63u)), 63u)]; metal::float3 uvw = (e_2.to_local * metal::float4(world_1, 1.0)).xyz; if (metal::all(uvw >= metal::float3(0.0, -1.0, 0.0))) { local_6 = metal::all(uvw <= metal::float3(1.0)); } else { local_6 = false; } bool _e35 = local_6; if (!(_e35)) { continue; } fade = metal::pow(1.0 - metal::abs(uvw.y), (uvw.y > 0.0) ? e_2.fades.x : e_2.fades.y); if (e_2.fades.z > 0.0) { float _e55 = fade; fade = _e55 * metal::smoothstep(e_2.fades.z, 1.0, (metal::dot(n_geo, e_2.axis_y.xyz) * 0.5) + 0.5); } metal::float2 uv_3 = uvw.xz; float _e69 = decal_level(e_2, world_1, G, Decal); uint live_1 = e_2.flags.x; if (e_2.layers.x > 0u) { metal::float4 _e82 = decal_texel(e_2.layers.x, uv_3, _e69, (live_1 & DECAL_LIVE_ALBEDO) != 0u, t_decals, s_decals); metal::float3 _e84 = srgb_to_linear(_e82.xyz); metal::float4 a_2 = metal::float4(_e84, _e82.w) * e_2.modulate; float _e90 = fade; float alpha = a_2.w * _e90; metal::float3 _e94 = out_s.base; out_s.base = metal::mix(_e94, a_2.xyz, alpha * e_2.fades.w); if (e_2.layers.y > 0u) { metal::float4 _e110 = decal_texel(e_2.layers.y, uv_3, _e69, (live_1 & DECAL_LIVE_NORMAL) != 0u, t_decals, s_decals); float nx = (_e110.x * 2.0) - 1.0; float ny = 1.0 - (_e110.y * 2.0); float nz = metal::sqrt(metal::max(0.0, (1.0 - (nx * nx)) - (ny * ny))); metal::float3 dn = metal::normalize(((e_2.axis_x.xyz * nx) + (e_2.axis_y.xyz * nz)) + (e_2.axis_z.xyz * ny)); metal::float3 _e143 = out_s.normal; out_s.normal = metal::normalize(metal::mix(_e143, dn, alpha)); } if (e_2.layers.z > 0u) { metal::float4 _e156 = decal_texel(e_2.layers.z, uv_3, _e69, (live_1 & DECAL_LIVE_ORM) != 0u, t_decals, s_decals); float _e159 = out_s.occlusion; out_s.occlusion = metal::mix(_e159, _e156.x, alpha); float _e164 = out_s.roughness; out_s.roughness = metal::mix(_e164, _e156.y, alpha); float _e169 = out_s.metallic; out_s.metallic = metal::mix(_e169, _e156.z, alpha); } } if (e_2.layers.w > 0u) { metal::float4 _e182 = decal_texel(e_2.layers.w, uv_3, _e69, (live_1 & DECAL_LIVE_EMISSION) != 0u, t_decals, s_decals); metal::float3 _e184 = out_s.emission; metal::float3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = _e184 + (((_e186 * e_2.modulate.xyz) * e_2.axis_x.w) * _e193); } } } float _e201 = out_s.roughness; out_s.roughness = metal::clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = metal::clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } float d_ggx( float nh, float a2_ ) { float d_12 = ((nh * nh) * (a2_ - 1.0)) + 1.0; return a2_ / ((PI * d_12) * d_12); } float v_smith( float nl, float nv, float a2_1 ) { float gv = nl * metal::sqrt(((nv * nv) * (1.0 - a2_1)) + a2_1); float g_l = nv * metal::sqrt(((nl * nl) * (1.0 - a2_1)) + a2_1); return 0.5 / metal::max(gv + g_l, 0.0001); } metal::float3 f_schlick( metal::float3 f0_, float vh ) { return f0_ + ((metal::float3(1.0) - f0_) * metal::pow(1.0 - vh, 5.0)); } metal::float3 light_specular( metal::float3 n, metal::float3 v_1, metal::float3 l, metal::float3 radiance, metal::float3 diffuse, metal::float3 f0_1, float a2_2, float specular ) { float nl_2 = metal::dot(n, l); if (nl_2 <= 0.0) { return metal::float3(0.0); } metal::float3 h = metal::normalize(l + v_1); float nh_1 = metal::max(metal::dot(n, h), 0.0); float vh_1 = metal::max(metal::dot(v_1, h), 0.0); float nv_3 = metal::max(metal::dot(n, v_1), 0.0001); metal::float3 _e24 = f_schlick(f0_1, vh_1); float _e25 = d_ggx(nh_1, a2_2); float _e26 = v_smith(nl_2, nv_3, a2_2); metal::float3 spec = (_e25 * _e26) * _e24; return (((diffuse / metal::float3(3.1415927)) + (spec * specular)) * radiance) * nl_2; } metal::float3 sky( metal::float3 dir, constant LitU& Lit ) { metal::float4 _e4 = Lit.up; float a_3 = metal::acos(metal::clamp(metal::dot(metal::normalize(dir), _e4.xyz), -1.0, 1.0)); if (a_3 <= 1.5707964) { float c_23 = 1.0 - (a_3 / 1.5707964); float k_13 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_23, 0.000001), 6.6666665), 0.0, 1.0); metal::float4 _e30 = Lit.sky_horizon; metal::float4 _e34 = Lit.sky_top; return metal::mix(_e30.xyz, _e34.xyz, k_13); } float c_24 = (a_3 - 1.5707964) / 1.5707964; float k_14 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_24, 0.000001), 50.0), 0.0, 1.0); metal::float4 _e54 = Lit.ground_horizon; metal::float4 _e58 = Lit.ground_bottom; return metal::mix(_e54.xyz, _e58.xyz, k_14); } metal::float3 filmic_curve( metal::float3 x ) { return (((x * ((0.88 * x) + metal::float3(0.1 * 0.6))) + metal::float3(0.2 * 0.01)) / ((x * ((0.88 * x) + metal::float3(0.6))) + metal::float3(0.2 * 0.3))) - metal::float3(0.01 / 0.3); } metal::float3 aces_curve( metal::float3 c_4, float white ) { metal::float3 x_2 = metal::float3(1.8 * metal::dot(metal::float3(0.59719, 0.35458, 0.04823), c_4), 1.8 * metal::dot(metal::float3(0.076, 0.90834, 0.01566), c_4), 1.8 * metal::dot(metal::float3(0.0284, 0.13383, 0.83777), c_4)); metal::float3 t_2 = ((x_2 * (x_2 + metal::float3(0.0245786))) - metal::float3(0.000090537)) / ((x_2 * ((0.983729 * x_2) + metal::float3(0.432951))) + metal::float3(0.238081)); metal::float3 o_5 = metal::float3(metal::dot(metal::float3(1.60475, -0.53108, -0.07367), t_2), metal::dot(metal::float3(-0.10208, 1.10813, -0.00605), t_2), metal::dot(metal::float3(-0.00327, -0.07276, 1.07602), t_2)); float w_1 = 1.8 * white; float wt = ((w_1 * (w_1 + 0.0245786)) - 0.000090537) / ((w_1 * ((0.983729 * w_1) + 0.432951)) + 0.238081); return o_5 / metal::float3(wt); } metal::float3 agx_curve( metal::float3 c_5 ) { metal::float3 v_2 = {}; metal::float3x3 inset = metal::float3x3(metal::float3(0.54490817, 0.14044006, 0.08882741), metal::float3(0.37377945, 0.7541096, 0.17887713), metal::float3(0.08138498, 0.10543358, 0.73225)); metal::float3x3 outset = metal::float3x3(metal::float3(1.964551, -0.29932243, -0.16436833), metal::float3(-0.85585845, 1.3264511, -0.23822464), metal::float3(-0.10886711, -0.02708402, 1.4026654)); v_2 = inset * metal::max(c_5, metal::float3(0.0000000002)); metal::float3 _e34 = v_2; v_2 = (metal::clamp(metal::log2(_e34), metal::float3(-12.473931), metal::float3(4.0260687)) - metal::float3(-12.473931)) / metal::float3(4.0260687 - -12.473931); metal::float3 _e44 = v_2; metal::float3 _e45 = v_2; metal::float3 x2_ = _e44 * _e45; metal::float3 x4_ = x2_ * x2_; metal::float3 _e48 = v_2; metal::float3 _e56 = v_2; metal::float3 _e64 = v_2; metal::float3 p_7 = (((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_); return outset * metal::pow(metal::max(p_7, metal::float3(0.0000000001)), metal::float3(2.4)); } metal::float3 tonemap( metal::float3 c_in, constant LitU& Lit ) { float _e4 = Lit.tone.x; metal::float3 c_25 = metal::max(c_in * _e4, metal::float3(0.0)); float white_1 = Lit.tone.y; uint mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return ((white_1 * c_25) + c_25) / ((c_25 * white_1) + metal::float3(white_1)); } if (mode == TONEMAP_FILMIC) { metal::float3 _e27 = filmic_curve(c_25); metal::float3 _e29 = filmic_curve(metal::float3(white_1)); return _e27 / _e29; } if (mode == TONEMAP_ACES) { metal::float3 _e33 = aces_curve(c_25, white_1); return _e33; } if (mode == TONEMAP_AGX) { metal::float3 _e36 = agx_curve(c_25); return _e36; } return c_25; } float emerge_hash( metal::float3 p_1 ) { metal::float3 q = {}; q = metal::fract(p_1 * 0.1031); metal::float3 _e5 = q; metal::float3 _e6 = q; metal::float3 _e7 = q; q = _e5 + metal::float3(metal::dot(_e6, _e7.zyx + metal::float3(31.32))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return metal::fract((_e16 + _e18) * _e21); } float emerge_noise( metal::float3 p_2 ) { metal::float3 i_13 = metal::floor(p_2); metal::float3 f = metal::fract(p_2); metal::float3 u_1 = (f * f) * (metal::float3(3.0) - (2.0 * f)); float _e10 = emerge_hash(i_13); float _e16 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 0.0)); float _e24 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 0.0)); float _e30 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 0.0)); float a_4 = metal::mix(metal::mix(_e10, _e16, u_1.x), metal::mix(_e24, _e30, u_1.x), u_1.y); float _e40 = emerge_hash(i_13 + metal::float3(0.0, 0.0, 1.0)); float _e46 = emerge_hash(i_13 + metal::float3(1.0, 0.0, 1.0)); float _e54 = emerge_hash(i_13 + metal::float3(0.0, 1.0, 1.0)); float _e60 = emerge_hash(i_13 + metal::float3(1.0, 1.0, 1.0)); float b_2 = metal::mix(metal::mix(_e40, _e46, u_1.x), metal::mix(_e54, _e60, u_1.x), u_1.y); return metal::mix(a_4, b_2, u_1.z); } float emerge_reveal( metal::float3 world_2, metal::float2 pixel, constant ObjectU& O ) { float n_1 = {}; uint _e6 = O.extra.x; if (SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true) { return 1.0; } float e_3 = O.normal[0].w; metal::float3 w_2 = world_2 * EMERGE_SCALE; float _e21 = emerge_noise(w_2); float _e29 = emerge_noise((w_2 * 2.7) + metal::float3(17.1)); n_1 = metal::smoothstep(0.2, 0.8, (_e21 * 0.65) + (_e29 * 0.35)); if (pixel.x >= 0.0) { float ign = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(pixel), metal::float2(0.06711056, 0.00583715)))); float _e49 = n_1; n_1 = metal::clamp(_e49 + ((ign - 0.5) * EMERGE_DITHER), 0.0, 1.0); } float _e60 = n_1; return ((e_3 * 1.8) - _e60) / EMERGE_EDGE; } metal::float3 emerge_tint( metal::float3 c_6, float r, constant ObjectU& O, constant LitU& Lit ) { bool local_7 = {}; uint _e6 = O.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_7 = r >= 1.0; } else { local_7 = true; } bool _e17 = local_7; if (SPEC_EMERGE ? _e17 : true) { return c_6; } uint _e23 = O.extra.w; metal::float3 _e26 = srgb_to_linear(metal::unpack_unorm4x8_to_float(_e23).xyz); metal::float3 _e27 = tonemap(_e26, Lit); return metal::mix(_e27, c_6, metal::smoothstep(0.0, 1.0, r)); } metal::float3 item_fade( metal::float3 c_7, constant ObjectU& O, constant LitU& Lit ) { uint _e5 = O.extra.x; if (SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true) { return c_7; } metal::float4 f_1 = O.normal[3]; metal::float3 _e17 = tonemap(f_1.xyz, Lit); return metal::mix(c_7, _e17, f_1.w); } metal::float3 sky_dir( metal::float3 d, constant SkyU& Sky ) { metal::float4x4 _e3 = Sky.to_sky; return metal::normalize((_e3 * metal::float4(d, 0.0)).xyz); } float sky_curve( float c_8, float curve ) { return metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_8, 0.000001), 1.0 / curve), 0.0, 1.0); } metal::float3 procedural_sky( metal::float3 d_1, constant SkyU& Sky ) { metal::float3 sky_1 = {}; uint i = 0u; float v_7 = metal::acos(metal::clamp(d_1.y, -1.0, 1.0)); metal::float4 _e8 = Sky.sky_horizon; metal::float4 _e12 = Sky.sky_top; float _e21 = Sky.sky_top.w; float _e22 = sky_curve(1.0 - (v_7 / 1.5707964), _e21); float _e27 = Sky.sky_horizon.w; sky_1 = metal::mix(_e8.xyz, _e12.xyz, _e22) * _e27; uint _e33 = Sky.flags.z; uint suns = metal::min(_e33, SKY_SUNS); uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { uint _e79 = i; i = _e79 + 1u; } loop_init_1 = false; uint _e38 = i; if (_e38 < suns) { } else { break; } { uint _e42 = i; SunU sun = Sky.suns.inner[metal::min(unsigned(_e42), 3u)]; float size = sun.direction.w; float a_5 = metal::acos(metal::clamp(metal::dot(sun.direction.xyz, d_1), -1.0, 1.0)); if (a_5 < size) { sky_1 = sun.color.xyz; } else { float _e60 = Sky.sun.x; if (a_5 < _e60) { float _e66 = Sky.sun.x; float c2_ = (a_5 - size) / (_e66 - size); metal::float3 _e71 = sky_1; float _e75 = Sky.sun.y; float _e76 = sky_curve(c2_, _e75); sky_1 = metal::mix(sun.color.xyz, _e71, _e76); } } } } metal::float4 _e83 = Sky.ground_horizon; metal::float4 _e87 = Sky.ground_bottom; float _e96 = Sky.ground_bottom.w; float _e97 = sky_curve((v_7 - 1.5707964) / 1.5707964, _e96); float _e102 = Sky.ground_horizon.w; metal::float3 ground = metal::mix(_e83.xyz, _e87.xyz, _e97) * _e102; metal::float3 _e104 = sky_1; float _e112 = Sky.sun.z; return ((d_1.y >= 0.0) ? _e104 : ground) * _e112; } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } int naga_mod(int lhs, int rhs) { int divisor = metal::select(rhs, 1, (lhs == (-2147483647 - 1) & rhs == -1) | (rhs == 0)); return lhs - (lhs / divisor) * divisor; } metal::float3 panorama( metal::float3 d_2, constant SkyU& Sky, metal::texture2d t_panorama, metal::sampler s_panorama ) { metal::float2 uv_4 = metal::float2(metal::fract(metal::atan2(d_2.x, -(d_2.z)) / 6.2831855), metal::acos(metal::clamp(d_2.y, -1.0, 1.0)) / PI); uint _e19 = Sky.flags.x; if ((_e19 & SKY_PANORAMA_FILTER) != 0u) { metal::float4 _e27 = t_panorama.sample(s_panorama, uv_4, metal::level(0.0)); float _e32 = Sky.sun.z; return _e27.xyz * _e32; } metal::int2 size_1 = static_cast(metal::uint2(t_panorama.get_width(0), t_panorama.get_height(0))); int x_3 = naga_mod(as_type(as_type(naga_mod(naga_f2i32(metal::floor(uv_4.x * static_cast(size_1.x))), size_1.x)) + as_type(size_1.x)), size_1.x); int y = metal::clamp(naga_f2i32(metal::floor(uv_4.y * static_cast(size_1.y))), 0, as_type(as_type(size_1.y) - as_type(1))); uint clamped_lod_e64 = metal::min(uint(0), t_panorama.get_num_mip_levels() - 1); metal::float4 _e64 = t_panorama.read(metal::min(metal::uint2(metal::int2(x_3, y)), metal::uint2(t_panorama.get_width(clamped_lod_e64), t_panorama.get_height(clamped_lod_e64)) - 1), clamped_lod_e64); float _e69 = Sky.sun.z; return _e64.xyz * _e69; } metal::float3 sh_irradiance( metal::float3 n_2, constant SkyU& Sky ) { metal::float3 c_9 = {}; metal::float4 _e4 = Sky.sh.inner[0]; c_9 = _e4.xyz * 0.282095; metal::float3 _e9 = c_9; metal::float4 _e13 = Sky.sh.inner[1]; c_9 = _e9 + (_e13.xyz * (0.488603 * n_2.y)); metal::float3 _e20 = c_9; metal::float4 _e24 = Sky.sh.inner[2]; c_9 = _e20 + (_e24.xyz * (0.488603 * n_2.z)); metal::float3 _e31 = c_9; metal::float4 _e35 = Sky.sh.inner[3]; c_9 = _e31 + (_e35.xyz * (0.488603 * n_2.x)); metal::float3 _e42 = c_9; metal::float4 _e46 = Sky.sh.inner[4]; c_9 = _e42 + (_e46.xyz * ((1.092548 * n_2.x) * n_2.y)); metal::float3 _e55 = c_9; metal::float4 _e59 = Sky.sh.inner[5]; c_9 = _e55 + (_e59.xyz * ((1.092548 * n_2.y) * n_2.z)); metal::float3 _e68 = c_9; metal::float4 _e72 = Sky.sh.inner[6]; c_9 = _e68 + (_e72.xyz * (0.315392 * (((3.0 * n_2.z) * n_2.z) - 1.0))); metal::float3 _e85 = c_9; metal::float4 _e89 = Sky.sh.inner[7]; c_9 = _e85 + (_e89.xyz * ((1.092548 * n_2.x) * n_2.z)); metal::float3 _e98 = c_9; metal::float4 _e102 = Sky.sh.inner[8]; c_9 = _e98 + (_e102.xyz * (0.546274 * ((n_2.x * n_2.x) - (n_2.y * n_2.y)))); metal::float3 _e115 = c_9; return metal::max(_e115, metal::float3(0.0)); } metal::float3 radiance_1( metal::float3 d_3, float roughness, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { uint _e5 = Sky.flags.y; float top_1 = static_cast(metal::max(_e5, 1u) - 1u); metal::float4 _e14 = t_radiance.sample(s_radiance, d_3, metal::level(roughness * top_1)); return _e14.xyz; } metal::float2 env_brdf_approx( float roughness_1, float nv_1 ) { metal::float4 r_6 = (roughness_1 * metal::float4(-1.0, -0.0275, -0.572, 0.022)) + metal::float4(1.0, 0.0425, 1.04, -0.04); float a004_ = (metal::min(r_6.x * r_6.x, metal::exp2(-9.28 * nv_1)) * r_6.x) + r_6.y; return (metal::float2(-1.04, 1.04) * a004_) + r_6.zw; } float pow8_( float x_1 ) { float x2_1 = metal::max(x_1, 0.0) * metal::max(x_1, 0.0); float x4_1 = x2_1 * x2_1; return x4_1 * x4_1; } metal::float3 fog_sun_scatter( metal::float3 fc, metal::float3 dir_1, constant LitU& Lit, constant SkyU& Sky ) { metal::float3 c_10 = {}; uint k_4 = 0u; c_10 = fc; float _e6 = Sky.fog_color.w; if (_e6 > 0.001) { uint _e9 = pool_sun_count(Lit); uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { uint _e51 = k_4; k_4 = _e51 + 1u; } loop_init_2 = false; uint _e12 = k_4; if (_e12 < _e9) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14, Lit); uint _e21 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].info.x; if (_e21 == LIGHT_DIRECTIONAL) { metal::float3 _e24 = c_10; metal::float4 _e29 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].color; metal::float4 _e38 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].direction; float _e42 = pow8_(metal::dot(dir_1, -(_e38.xyz))); float _e47 = Sky.fog_color.w; c_10 = _e24 + (((_e29.xyz / metal::float3(3.1415927)) * _e42) * _e47); } } } } metal::float3 _e53 = c_10; return _e53; } metal::float3 sky_fog( metal::float3 c_11, metal::float3 dir_2, constant LitU& Lit, constant SkyU& Sky ) { metal::float4 _e4 = Sky.fog_color; float _e9 = Sky.fog_depth.w; metal::float3 _e11 = fog_sun_scatter(metal::mix(_e4.xyz, c_11, _e9), dir_2, Lit, Sky); float _e15 = Sky.fog.y; return metal::mix(c_11, _e11, _e15); } metal::float3 surface_fog( metal::float3 c_12, metal::float3 world_3, metal::float3 dir_3, constant Globals& G, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { float dist = {}; float amount = {}; metal::float3 fc_1 = {}; bool local_8 = {}; metal::float4x4 _e5 = G.view; float depth = -((_e5 * metal::float4(world_3, 1.0)).z); metal::float4 _e13 = G.camera_pos; dist = metal::distance(world_3, _e13.xyz); float _e20 = Sky.fog_origin.w; if (_e20 > 0.5) { float _e26 = Sky.fog_origin.x; dist = metal::max(depth - _e26, 0.0); } uint _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { float _e42 = Sky.fog_depth.x; float _e46 = Sky.fog_depth.y; float _e47 = dist; float z = metal::smoothstep(_e42, _e46, _e47); float _e54 = Sky.fog_depth.z; float _e63 = Sky.fog.x; amount = ((z > 0.0) ? metal::pow(metal::max(z, 0.000001), _e54) : 0.0) * _e63; } else { float _e65 = dist; float _e70 = Sky.fog.x; amount = 1.0 - metal::exp(metal::min(0.0, -(_e65) * _e70)); } float _e80 = Sky.fog.w; if (metal::abs(_e80) >= 0.0001) { metal::float4 _e86 = Lit.up; float y_1 = metal::dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = Sky.fog.z; float _e98 = Sky.fog.w; amount = metal::max(_e89, 1.0 - metal::exp(metal::min(0.0, (y_1 - _e93) * _e98))); } float _e106 = amount; amount = metal::clamp(_e106, 0.0, 1.0); metal::float4 _e112 = Sky.fog_color; fc_1 = _e112.xyz; uint _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { float _e129 = Sky.fog_depth.w; local_8 = _e129 > 0.0; } else { local_8 = false; } bool _e133 = local_8; if (SPEC_AMBIENT_SKY ? _e133 : false) { float _e139 = Sky.fog_origin.y; float _e144 = Sky.fog_origin.z; float _e148 = Sky.fog_origin.y; float t_3 = metal::clamp((depth - _e139) / metal::max(_e144 - _e148, 0.000001), 0.0, 1.0); uint _e159 = Sky.flags.y; float top_2 = static_cast(metal::max(_e159, 2u) - 1u); float rough = metal::mix(1.0 / top_2, 1.0, 1.0 - t_3); metal::float3 _e171 = fc_1; metal::float3 _e172 = sky_dir(dir_3, Sky); metal::float3 _e173 = radiance_1(_e172, rough, Sky, t_radiance, s_radiance); float _e177 = Sky.sun.w; float _e182 = Sky.fog_depth.w; fc_1 = metal::mix(_e171, _e173 * _e177, _e182); } metal::float3 _e184 = fc_1; metal::float3 _e185 = fog_sun_scatter(_e184, dir_3, Lit, Sky); fc_1 = _e185; metal::float3 _e186 = fc_1; float _e187 = amount; return metal::mix(c_12, _e186, _e187); } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::float2 fog_chord( uint k_5, metal::float3 o, metal::float3 d_4, float t_end_ray, constant FogU& Fog ) { metal::float2 r_1 = {}; float a = 0.0; float b = 0.0; float c_13 = -1.0; float _e9 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].albedo.w; uint shape = naga_f2u32(_e9); float _e16 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].emission.w; float t_end_1 = metal::min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return metal::float2(0.0, t_end_1); } metal::float4 _e26 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].size; metal::float3 h_1 = _e26.xyz * 0.5; metal::float3 dd = metal::select(d_4, metal::float3(0.000000000001), metal::abs(d_4) < metal::float3(0.000000000001)); metal::float3 sa = (-(h_1) - o) / dd; metal::float3 sb = (h_1 - o) / dd; metal::float3 s_in = metal::min(sa, sb); metal::float3 s_out = metal::max(sa, sb); r_1 = metal::float2(metal::max(0.0, s_in.y), metal::min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = metal::float2(metal::max(metal::max(_e60, s_in.x), s_in.z), metal::min(metal::min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = metal::dot(d_4 / h_1, d_4 / h_1); b = metal::dot(o / h_1, d_4 / h_1); c_13 = metal::dot(o / h_1, o / h_1) - 1.0; } else { float rad = metal::min(h_1.x, h_1.z); float k_15 = (shape == FOG_SHAPE_CONE) ? (rad / (2.0 * h_1.y)) : 0.0; float w_3 = h_1.y - o.y; a = ((d_4.x * d_4.x) + (d_4.z * d_4.z)) - (((k_15 * k_15) * d_4.y) * d_4.y); b = ((o.x * d_4.x) + (o.z * d_4.z)) + (((k_15 * k_15) * w_3) * d_4.y); c_13 = ((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_15 * k_15) * w_3) * w_3) : (rad * rad)); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_13; float disc = (_e139 * _e140) - (_e142 * _e143); float _e146 = a; if (metal::abs(_e146) < 0.000000000001) { float _e150 = b; if (metal::abs(_e150) < 0.000000000001) { float _e156 = r_1.y; float _e157 = c_13; r_1.y = (_e157 > 0.0) ? -1.0 : _e156; } else { float _e162 = b; if (_e162 > 0.0) { float _e167 = r_1.y; float _e168 = c_13; float _e170 = b; r_1.y = metal::min(_e167, -(_e168) / (2.0 * _e170)); } else { float _e177 = r_1.x; float _e178 = c_13; float _e180 = b; r_1.x = metal::max(_e177, -(_e178) / (2.0 * _e180)); } } } else { if (disc < 0.0) { float _e189 = r_1.y; float _e190 = a; r_1.y = (_e190 > 0.0) ? -1.0 : _e189; } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = metal::min((-(_e195) - metal::sqrt(disc)) / _e199, (-(_e201) + metal::sqrt(disc)) / _e205); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = metal::max((-(_e208) - metal::sqrt(disc)) / _e212, (-(_e214) + metal::sqrt(disc)) / _e218); float _e221 = a; if (_e221 > 0.0) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = metal::float2(metal::max(_e225, lo_2), metal::min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if (_e232 < metal::min(_e234, lo_2)) { float _e239 = r_1.y; r_1.y = metal::min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = metal::max(_e243, hi_2); } } } } metal::float2 _e245 = r_1; return _e245; } float fog_density( uint k_6, metal::float3 p_3, metal::float3 lp, constant FogU& Fog ) { float rho = {}; float sdf = 0.0; FogEntryU e_4 = Fog.entries.inner[metal::min(unsigned(k_6), 15u)]; metal::float4 _e14 = Fog.up; rho = e_4.material.x * metal::min(metal::exp2(-(e_4.material.y) * (metal::dot(p_3, _e14.xyz) - e_4.material.w)), 1.0); if (e_4.material.z > 0.0) { uint shape_1 = naga_f2u32(e_4.albedo.w); metal::float3 h_2 = e_4.size.xyz * 0.5; float rad_1 = metal::min(h_2.x, h_2.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { float k0_ = metal::length(lp / h_2); sdf = (k0_ * (k0_ - 1.0)) / metal::max(metal::length(lp / (h_2 * h_2)), 0.000000000001); } else { if (shape_1 == FOG_SHAPE_BOX) { metal::float3 q_3 = metal::abs(lp) - h_2; sdf = metal::length(metal::max(q_3, metal::float3(0.0))) + metal::min(metal::max(q_3.x, metal::max(q_3.y, q_3.z)), 0.0); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { metal::float2 q_4 = metal::float2(metal::length(lp.xz) - rad_1, metal::abs(lp.y) - h_2.y); sdf = metal::min(metal::max(q_4.x, q_4.y), 0.0) + metal::length(metal::max(q_4, metal::float2(0.0))); } else { metal::float2 n_11 = metal::normalize(metal::float2(1.0 / metal::max(0.001, rad_1 * 0.5), 1.0 / metal::max(0.001, h_2.y))); sdf = metal::max(metal::dot(n_11, metal::float2(metal::length(lp.xz), lp.y - h_2.y)), -(h_2.y) - lp.y); } } } float _e116 = rho; float _e117 = sdf; rho = _e116 * metal::pow(metal::clamp((-2.0 * _e117) / e_4.size.w, 0.0, 1.0), e_4.material.z); } float _e130 = rho; return _e130; } float fog_falloff_depth( uint k_7, float a_1, float b_1, float t0_, float t1_, constant FogU& Fog ) { metal::float4 m_4 = Fog.entries.inner[metal::min(unsigned(k_7), 15u)].material; float hf = m_4.y; if ((hf * b_1) == 0.0) { return (m_4.x * (t1_ - t0_)) * metal::min(metal::exp2(-(hf) * a_1), 1.0); } float s_2 = metal::clamp(-(a_1) / b_1, t0_, t1_); float lo_3 = (b_1 > 0.0) ? s_2 : t0_; float hi_3 = (b_1 > 0.0) ? t1_ : s_2; float x_4 = ((hf * metal::abs(b_1)) * (hi_3 - lo_3)) * 0.6931472; float g = (x_4 < 0.01) ? (1.0 - (x_4 * (0.5 - (x_4 * (0.16666667 - (x_4 / 24.0)))))) : ((1.0 - metal::exp(-(x_4))) / x_4); float top_3 = metal::min(metal::exp2(-(hf) * metal::max(a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3)), 0.0)), 1.0); return m_4.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g)); } float omni_attenuation( float d_5, float inv_range, float decay ) { float nd = {}; nd = d_5 * inv_range; float _e5 = nd; float _e6 = nd; nd = _e5 * _e6; float _e8 = nd; float _e9 = nd; nd = _e8 * _e9; float _e11 = nd; nd = metal::max(1.0 - _e11, 0.0); float _e16 = nd; float _e17 = nd; nd = _e16 * _e17; float _e19 = nd; return _e19 * metal::pow(metal::max(d_5, 0.0001), -(decay)); } metal::float3 fog_light( uint n_3, metal::float3 p_4, metal::float3 dir_4, constant LitU& Lit, constant FogU& Fog ) { metal::float3 sum = {}; uint k_8 = 0u; metal::float3 l_1 = {}; float atten = {}; metal::float4 _e5 = Fog.ambient; float _e10 = Fog.params.y; sum = _e5.xyz * _e10; float g_1 = Fog.params.x; metal::uint4 lights = Fog.entries.inner[metal::min(unsigned(n_3), 15u)].lights; uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { uint _e138 = k_8; k_8 = _e138 + 1u; } loop_init_3 = false; uint _e24 = k_8; if (_e24 < metal::min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_14 = metal::min((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u, 63u); LightU li = Lit.lights.inner[metal::min(unsigned(i_14), 63u)]; l_1 = -(li.direction.xyz); atten = 1.0; if (li.info.x != LIGHT_DIRECTIONAL) { metal::float3 rel = li.position.xyz - p_4; l_1 = rel / metal::float3(metal::max(metal::length(rel), 0.000001)); float _e72 = omni_attenuation(metal::length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { metal::float3 _e77 = l_1; float rim = metal::max(0.0001, (1.0 - metal::max(metal::dot(-(_e77), li.direction.xyz), li.spot.x)) / metal::max(1.0 - li.spot.x, 0.000001)); float _e96 = atten; atten = _e96 * (1.0 - metal::pow(rim, li.spot.y)); } } metal::float3 _e108 = l_1; float q_5 = (1.0 + (g_1 * g_1)) - ((2.0 * g_1) * metal::dot(dir_4, _e108)); metal::float3 _e112 = sum; float _e115 = atten; float _e133 = Fog.light_fog.inner[metal::min(unsigned(i_14 >> 2u), 15u)][metal::min(unsigned(i_14 & 3u), 3u)]; sum = _e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * metal::sqrt(q_5))) * _e133)); } } metal::float3 _e140 = sum; return _e140; } metal::float4 fog_entry( uint k_9, metal::float3 o_1, metal::float3 d_6, metal::float2 ch, constant LitU& Lit, constant FogU& Fog ) { float split = {}; bool local_9 = {}; bool local_10 = {}; metal::float3 q_1 = metal::float3(0.0); float tau = 0.0; uint i_1 = 0u; bool local_11 = {}; bool local_12 = {}; FogEntryU e_5 = Fog.entries.inner[metal::min(unsigned(k_9), 15u)]; metal::float3 lo_4 = (e_5.to_local * metal::float4(o_1, 1.0)).xyz; metal::float3 ld = (e_5.to_local * metal::float4(d_6, 0.0)).xyz; metal::float4 _e20 = Fog.up; float a_6 = metal::dot(o_1, _e20.xyz) - e_5.material.w; metal::float4 _e28 = Fog.up; float b_3 = metal::dot(d_6, _e28.xyz); bool edge = e_5.material.z > 0.0; split = (ch.x + ch.y) * 0.5; if (e_5.material.y > 0.0) { local_9 = (-(a_6) / b_3) > ch.x; } else { local_9 = false; } bool _e52 = local_9; if (_e52) { local_10 = (-(a_6) / b_3) < ch.y; } else { local_10 = false; } bool _e60 = local_10; if (_e60) { split = -(a_6) / b_3; } uint2 loop_bound_4 = uint2(4294967295u); bool loop_init_4 = true; while(true) { if (metal::all(loop_bound_4 == uint2(0u))) { break; } loop_bound_4 -= uint2(loop_bound_4.y == 0u, 1u); if (!loop_init_4) { uint _e160 = i_1; i_1 = _e160 + 1u; } loop_init_4 = false; uint _e70 = i_1; if (_e70 < (edge ? 12u : 4u)) { } else { break; } { uint _e75 = i_1; uint j = _e75 & 3u; if (!((j == 0u))) { local_11 = j == 3u; } else { local_11 = true; } bool _e88 = local_11; float x_5 = _e88 ? FOG_GL_X0_ : FOG_GL_X1_; if (!((j == 0u))) { local_12 = j == 3u; } else { local_12 = true; } bool _e100 = local_12; float w_4 = _e100 ? FOG_GL_W0_ : FOG_GL_W1_; float _e102 = split; float _e106 = split; uint _e108 = i_1; uint _e112 = i_1; metal::float2 seg = (_e112 < 4u) ? ch : ((_e108 < 8u) ? metal::float2(ch.x, _e106) : metal::float2(_e102, ch.y)); float half_len = (seg.y - seg.x) * 0.5; float t_4 = ((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_5) : x_5)); metal::float3 p_8 = o_1 + (d_6 * t_4); float _e136 = fog_density(k_9, p_8, lo_4 + (ld * t_4), Fog); uint _e137 = i_1; if (_e137 < 4u) { metal::float3 _e140 = q_1; metal::float3 _e143 = fog_light(k_9, p_8, d_6, Lit, Fog); q_1 = _e140 + (((e_5.albedo.xyz * _e143) + e_5.emission.xyz) * ((w_4 * half_len) * metal::clamp(_e136, 0.0, 1.0))); } else { float _e155 = tau; tau = _e155 + ((w_4 * half_len) * _e136); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_6, b_3, ch.x, ch.y, Fog); tau = _e165; } metal::float3 _e166 = q_1; float _e167 = tau; return metal::float4(_e166, _e167); } metal::float3 fog_integrate( metal::float3 c_14, metal::float3 o_2, metal::float3 d_7, float t_end, uint list, constant LitU& Lit, constant FogU& Fog ) { type_28 at = {}; type_29 chords = {}; uint m = 0u; uint i_2 = 0u; bool local_13 = {}; type_30 parts = {}; uint i_3 = 0u; uint n_4 = 0u; float avail = {}; uint i_4 = {}; uint i_5 = {}; metal::float3 q_2 = metal::float3(0.0); float tau_1 = 0.0; uint i_6 = 0u; bool all = list >= FOG_LIST_ALL; uint2 loop_bound_5 = uint2(4294967295u); bool loop_init_5 = true; while(true) { if (metal::all(loop_bound_5 == uint2(0u))) { break; } loop_bound_5 -= uint2(loop_bound_5.y == 0u, 1u); if (!loop_init_5) { uint _e72 = i_2; i_2 = _e72 + 1u; } loop_init_5 = false; uint _e13 = i_2; uint _e18 = Fog.counts.x; if (_e13 < (all ? metal::min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u)) { } else { break; } { uint _e23 = i_2; uint byte = (list >> ((_e23 & 3u) * 8u)) & 127u; if (!(all)) { local_13 = byte == 0u; } else { local_13 = false; } bool _e37 = local_13; if (_e37) { break; } uint _e42 = i_2; uint k_16 = all ? _e42 : (metal::min(byte, MAX_FRAME_FOG_VOLUMES) - 1u); metal::float4x4 to_local = Fog.entries.inner[metal::min(unsigned(k_16), 15u)].to_local; metal::float2 _e57 = fog_chord(k_16, (to_local * metal::float4(o_2, 1.0)).xyz, (to_local * metal::float4(d_7, 0.0)).xyz, t_end, Fog); if (_e57.y > _e57.x) { uint _e61 = m; at.inner[metal::min(unsigned(_e61), 3u)] = k_16; uint _e63 = m; chords.inner[metal::min(unsigned(_e63), 3u)] = _e57; uint _e66 = m; m = _e66 + 1u; uint _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } } uint2 loop_bound_6 = uint2(4294967295u); bool loop_init_6 = true; while(true) { if (metal::all(loop_bound_6 == uint2(0u))) { break; } loop_bound_6 -= uint2(loop_bound_6.y == 0u, 1u); if (!loop_init_6) { uint _e90 = i_3; i_3 = _e90 + 1u; } loop_init_6 = false; uint _e77 = i_3; uint _e78 = m; if (_e77 < _e78) { } else { break; } { uint _e80 = i_3; uint _e82 = i_3; uint _e84 = at.inner[metal::min(unsigned(_e82), 3u)]; uint _e85 = i_3; metal::float2 _e87 = chords.inner[metal::min(unsigned(_e85), 3u)]; metal::float4 _e88 = fog_entry(_e84, o_2, d_7, _e87, Lit, Fog); parts.inner[metal::min(unsigned(_e80), 3u)] = _e88; } } uint2 loop_bound_7 = uint2(4294967295u); bool loop_init_7 = true; while(true) { if (metal::all(loop_bound_7 == uint2(0u))) { break; } loop_bound_7 -= uint2(loop_bound_7.y == 0u, 1u); if (!loop_init_7) { uint _e221 = n_4; n_4 = _e221 + 1u; } loop_init_7 = false; uint _e94 = n_4; uint _e95 = m; if (_e94 < _e95) { } else { break; } { uint _e97 = n_4; float _e100 = parts.inner[metal::min(unsigned(_e97), 3u)].w; if (_e100 < 0.0) { avail = 0.0; i_4 = 0u; uint2 loop_bound_8 = uint2(4294967295u); bool loop_init_8 = true; while(true) { if (metal::all(loop_bound_8 == uint2(0u))) { break; } loop_bound_8 -= uint2(loop_bound_8.y == 0u, 1u); if (!loop_init_8) { uint _e153 = i_4; i_4 = _e153 + 1u; } loop_init_8 = false; uint _e107 = i_4; uint _e108 = m; if (_e107 < _e108) { } else { break; } { uint _e110 = i_4; float _e113 = chords.inner[metal::min(unsigned(_e110), 3u)].y; uint _e114 = n_4; float _e117 = chords.inner[metal::min(unsigned(_e114), 3u)].y; uint _e119 = i_4; float _e122 = chords.inner[metal::min(unsigned(_e119), 3u)].x; uint _e123 = n_4; float _e126 = chords.inner[metal::min(unsigned(_e123), 3u)].x; uint _e131 = i_4; float _e134 = chords.inner[metal::min(unsigned(_e131), 3u)].y; uint _e135 = i_4; float _e138 = chords.inner[metal::min(unsigned(_e135), 3u)].x; float share = metal::max(metal::min(_e113, _e117) - metal::max(_e122, _e126), 0.0) / metal::max(_e134 - _e138, 0.000001); float _e143 = avail; uint _e144 = i_4; float _e147 = parts.inner[metal::min(unsigned(_e144), 3u)].w; avail = _e143 + (metal::max(_e147, 0.0) * share); } } uint _e155 = n_4; float _e158 = parts.inner[metal::min(unsigned(_e155), 3u)].w; float _e160 = avail; float f_2 = metal::min(-(_e158) / metal::max(_e160, 0.000000000001), 1.0); i_5 = 0u; uint2 loop_bound_9 = uint2(4294967295u); bool loop_init_9 = true; while(true) { if (metal::all(loop_bound_9 == uint2(0u))) { break; } loop_bound_9 -= uint2(loop_bound_9.y == 0u, 1u); if (!loop_init_9) { uint _e218 = i_5; i_5 = _e218 + 1u; } loop_init_9 = false; uint _e168 = i_5; uint _e169 = m; if (_e168 < _e169) { } else { break; } { uint _e171 = i_5; float _e174 = parts.inner[metal::min(unsigned(_e171), 3u)].w; if (_e174 > 0.0) { uint _e177 = i_5; float _e180 = chords.inner[metal::min(unsigned(_e177), 3u)].y; uint _e181 = n_4; float _e184 = chords.inner[metal::min(unsigned(_e181), 3u)].y; uint _e186 = i_5; float _e189 = chords.inner[metal::min(unsigned(_e186), 3u)].x; uint _e190 = n_4; float _e193 = chords.inner[metal::min(unsigned(_e190), 3u)].x; uint _e198 = i_5; float _e201 = chords.inner[metal::min(unsigned(_e198), 3u)].y; uint _e202 = i_5; float _e205 = chords.inner[metal::min(unsigned(_e202), 3u)].x; float share_1 = metal::max(metal::min(_e180, _e184) - metal::max(_e189, _e193), 0.0) / metal::max(_e201 - _e205, 0.000001); uint _e210 = i_5; metal::float4 _e212 = parts.inner[metal::min(unsigned(_e210), 3u)]; parts.inner[metal::min(unsigned(_e210), 3u)] = _e212 * (1.0 - (share_1 * f_2)); } } } } } } uint2 loop_bound_10 = uint2(4294967295u); bool loop_init_10 = true; while(true) { if (metal::all(loop_bound_10 == uint2(0u))) { break; } loop_bound_10 -= uint2(loop_bound_10.y == 0u, 1u); if (!loop_init_10) { uint _e252 = i_6; i_6 = _e252 + 1u; } loop_init_10 = false; uint _e230 = i_6; uint _e231 = m; if (_e230 < _e231) { } else { break; } { uint _e233 = i_6; float _e236 = parts.inner[metal::min(unsigned(_e233), 3u)].w; if (_e236 > 0.0) { metal::float3 _e239 = q_2; uint _e240 = i_6; metal::float4 _e242 = parts.inner[metal::min(unsigned(_e240), 3u)]; q_2 = _e239 + _e242.xyz; float _e245 = tau_1; uint _e246 = i_6; float _e249 = parts.inner[metal::min(unsigned(_e246), 3u)].w; tau_1 = _e245 + _e249; } } } float _e254 = tau_1; float t_5 = metal::exp(-(_e254)); metal::float3 _e258 = q_2; float _e261 = tau_1; return (c_14 * t_5) + (_e258 * ((1.0 - t_5) / metal::max(_e261, 0.00001))); } metal::float3 fog_volumes( metal::float3 c_15, metal::float3 world_4, uint list_1, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_6 = (_e36 > 0.5) ? (world_4 - (back * (_e26 * metal::float4(world_4, 1.0)).z)) : _e22.xyz; float len = metal::length(world_4 - o_6); metal::float3 _e47 = fog_integrate(c_15, o_6, (world_4 - o_6) / metal::float3(metal::max(len, 0.000001)), len, list_1, Lit, Fog); return (len > 0.0) ? _e47 : c_15; } metal::float3 sky_fog_volumes( metal::float3 c_16, metal::float3 near_point, metal::float3 dir_5, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back_1 = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_7 = (_e36 > 0.5) ? (near_point - (back_1 * (_e26 * metal::float4(near_point, 1.0)).z)) : _e22.xyz; uint _e44 = Fog.counts.y; metal::float3 _e45 = fog_integrate(c_16, o_7, dir_5, FOG_SKY_DISTANCE, _e44, Lit, Fog); float _e49 = Fog.params.z; return metal::mix(c_16, _e45, _e49); } float shadow_factor( uint i_7, metal::float3 world_5, metal::float3 n_geo_1, metal::float3 l_2, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow ) { uint part = 0u; uint c_17 = 0u; bool local_14 = {}; bool local_15 = {}; bool local_16 = {}; float vis = 0.0; int dy = -1; int dx = {}; uint kind = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.x; metal::float4 _e14 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].position; metal::float3 light_pos = _e14.xyz; uint _e21 = Lit.lights.inner[metal::min(unsigned(i_7), 63u)].info.w; uint slot = metal::min(_e21, 15u); metal::float4 params = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].params; uint first = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.x; uint _e40 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.y; uint count = metal::max(_e40, 1u); metal::float4x4 _e45 = G.view; float view_depth = -((_e45 * metal::float4(world_5, 1.0)).z); if (kind == LIGHT_DIRECTIONAL) { float _e60 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade.y; if (view_depth > _e60) { return 1.0; } part = count - 1u; uint2 loop_bound_11 = uint2(4294967295u); bool loop_init_11 = true; while(true) { if (metal::all(loop_bound_11 == uint2(0u))) { break; } loop_bound_11 -= uint2(loop_bound_11.y == 0u, 1u); if (!loop_init_11) { uint _e79 = c_17; c_17 = _e79 + 1u; } loop_init_11 = false; uint _e67 = c_17; if (_e67 < count) { } else { break; } { uint _e73 = c_17; float _e75 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].splits[metal::min(unsigned(_e73), 3u)]; if (view_depth <= _e75) { uint _e77 = c_17; part = _e77; break; } } } } uint _e83 = part; metal::float4 texel = Shadow.tiles.inner[metal::min(unsigned(metal::min(first + metal::min(_e83, count - 1u), 15u)), 15u)].texel; float t_6 = texel.x + (texel.y * metal::distance(world_5, light_pos)); metal::float3 p_9 = (world_5 + (n_geo_1 * ((params.y * metal::max(params.z, 1.0)) * t_6))) + (l_2 * (params.x * t_6)); if (kind == LIGHT_OMNI) { metal::float3 d_13 = p_9 - light_pos; metal::float3 a_7 = metal::abs(d_13); if (a_7.x >= a_7.y) { local_14 = a_7.x >= a_7.z; } else { local_14 = false; } bool _e123 = local_14; if (_e123) { part = (d_13.x >= 0.0) ? 0u : 1u; } else { if (a_7.y >= a_7.z) { part = (d_13.y >= 0.0) ? 2u : 3u; } else { part = (d_13.z >= 0.0) ? 4u : 5u; } } } uint _e145 = part; uint tile = metal::min(first + metal::min(_e145, count - 1u), 15u); metal::float4x4 _e156 = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].view_proj; metal::float4 clip_1 = _e156 * metal::float4(p_9, 1.0); if (clip_1.w <= 0.0) { return 1.0; } metal::float3 ndc = clip_1.xyz / metal::float3(clip_1.w); if (!((metal::abs(ndc.x) > 1.0))) { local_15 = metal::abs(ndc.y) > 1.0; } else { local_15 = true; } bool _e180 = local_15; if (!(_e180)) { local_16 = ndc.z > 1.0; } else { local_16 = true; } bool _e188 = local_16; if (_e188) { return 1.0; } metal::float4 rect = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].rect; metal::float2 uv_5 = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); metal::float2 auv = rect.xy + (uv_5 * rect.zw); float texel_uv = Shadow.atlas.x; metal::float2 lo_5 = rect.xy + metal::float2(0.5 * texel_uv); metal::float2 hi_4 = (rect.xy + rect.zw) - metal::float2(0.5 * texel_uv); float r_7 = params.z; if (r_7 <= 0.0) { float _e235 = t_shadow.sample_compare(s_shadow, metal::clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { float spread = r_7 * texel_uv; uint2 loop_bound_12 = uint2(4294967295u); bool loop_init_12 = true; while(true) { if (metal::all(loop_bound_12 == uint2(0u))) { break; } loop_bound_12 -= uint2(loop_bound_12.y == 0u, 1u); if (!loop_init_12) { int _e265 = dy; dy = as_type(as_type(_e265) + as_type(1)); } loop_init_12 = false; int _e239 = dy; if (_e239 <= 1) { } else { break; } { dx = -1; uint2 loop_bound_13 = uint2(4294967295u); bool loop_init_13 = true; while(true) { if (metal::all(loop_bound_13 == uint2(0u))) { break; } loop_bound_13 -= uint2(loop_bound_13.y == 0u, 1u); if (!loop_init_13) { int _e262 = dx; dx = as_type(as_type(_e262) + as_type(1)); } loop_init_13 = false; int _e244 = dx; if (_e244 <= 1) { } else { break; } { int _e247 = dx; int _e249 = dy; metal::float2 tap = metal::clamp(auv + (metal::float2(static_cast(_e247), static_cast(_e249)) * spread), lo_5, hi_4); float _e255 = vis; float _e259 = t_shadow.sample_compare(s_shadow, tap, ndc.z); vis = _e255 + _e259; } } } } float _e267 = vis; vis = _e267 / 9.0; } if (kind == LIGHT_DIRECTIONAL) { metal::float4 fade_1 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade; float _e277 = vis; vis = metal::mix(_e277, 1.0, metal::smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return metal::mix(1.0, _e283, params.w); } metal::float3 probe_light( metal::float3 n_5, constant ObjectU& O ) { float _e5 = O.gi.inner[0].x; metal::float4 _e9 = O.gi.inner[0]; float _e17 = O.gi.inner[1].x; metal::float4 _e21 = O.gi.inner[1]; float _e29 = O.gi.inner[2].x; metal::float4 _e33 = O.gi.inner[2]; return metal::max(metal::float3(_e5 + metal::dot(_e9.yzw, n_5), _e17 + metal::dot(_e21.yzw, n_5), _e29 + metal::dot(_e33.yzw, n_5)), metal::float3(0.0)); } metal::float4 gi_diffuse( metal::float3 n_6, bool baked, metal::float3 baked_light, constant ObjectU& O ) { if (baked) { return metal::float4(baked_light, 1.0); } uint _e9 = O.extra.x; if (SPEC_PROBE_GI ? ((_e9 & OBJ_PROBE_GI) != 0u) : false) { metal::float3 _e16 = probe_light(n_6, O); return metal::float4(_e16, 1.0); } return metal::float4(0.0); } metal::float3 probe_face_uv( metal::float3 d_8 ) { float face = {}; float ma = {}; float sc = {}; float tc = {}; bool local_17 = {}; metal::float3 a_8 = metal::abs(d_8); if (a_8.x >= a_8.y) { local_17 = a_8.x >= a_8.z; } else { local_17 = false; } bool _e15 = local_17; if (_e15) { ma = a_8.x; if (d_8.x >= 0.0) { face = 0.0; sc = -(d_8.z); tc = -(d_8.y); } else { face = 1.0; sc = d_8.z; tc = -(d_8.y); } } else { if (a_8.y >= a_8.z) { ma = a_8.y; if (d_8.y >= 0.0) { face = 2.0; sc = d_8.x; tc = d_8.z; } else { face = 3.0; sc = d_8.x; tc = -(d_8.z); } } else { ma = a_8.z; if (d_8.z >= 0.0) { face = 4.0; sc = d_8.x; tc = -(d_8.y); } else { face = 5.0; sc = -(d_8.x); tc = -(d_8.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return metal::float3(_e56, ((_e57 / _e58) + 1.0) * 0.5, ((_e64 / _e65) + 1.0) * 0.5); } metal::float3 probe_texel( uint row, metal::float3 fuv, uint level_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { uint _e6 = Probe.counts.z; float n_12 = static_cast(metal::max(_e6 >> level_1, 1u)); float lo_6 = 0.5 / n_12; float u_2 = metal::clamp(fuv.y, lo_6, 1.0 - lo_6); float v_8 = metal::clamp(fuv.z, lo_6, 1.0 - lo_6); metal::float2 uv_6 = metal::float2((fuv.x + u_2) / 6.0, (static_cast(row) + v_8) / 8.0); metal::float4 _e33 = t_probes.sample(s_probes, uv_6, metal::level(static_cast(level_1))); return _e33.xyz; } metal::float3 probe_sample( uint row_1, metal::float3 d_9, float lod, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { bool local_18 = {}; uint _e6 = Probe.counts.y; uint levels = metal::max(_e6, 1u); float l_5 = metal::clamp(lod, 0.0, static_cast(levels - 1u)); uint m0_ = naga_f2u32(l_5); float t_7 = l_5 - static_cast(m0_); metal::float3 _e17 = probe_face_uv(d_9); metal::float3 _e18 = probe_texel(row_1, _e17, m0_, Probe, t_probes, s_probes); if (!((t_7 <= 0.0))) { local_18 = (m0_ + 1u) >= levels; } else { local_18 = true; } bool _e28 = local_18; if (_e28) { return _e18; } metal::float3 _e34 = probe_texel(row_1, _e17, m0_ + 1u, Probe, t_probes, s_probes); return (_e18 * (1.0 - t_7)) + (_e34 * t_7); } float probe_weight( ProbeEntryU p_5, metal::float3 world_6 ) { metal::float3 l_6 = (p_5.to_local * metal::float4(world_6, 1.0)).xyz; metal::float3 e_6 = p_5.extents.xyz; float d_14 = metal::min(e_6.x - metal::abs(l_6.x), metal::min(e_6.y - metal::abs(l_6.y), e_6.z - metal::abs(l_6.z))); if (d_14 < 0.0) { return 0.0; } if (!((p_5.extents.w > 0.0))) { return 1.0; } return metal::min(d_14 / p_5.extents.w, 1.0); } float probe_exit( float o_3, float d_10, float e_1 ) { if (d_10 > 0.0) { return (e_1 - o_3) / d_10; } if (d_10 < 0.0) { return (-(e_1) - o_3) / d_10; } return 300000000000000000000000000000000000000.0; } metal::float3 probe_lookup( ProbeEntryU p_6, metal::float3 world_7, metal::float3 dir_6 ) { metal::float3 d_15 = (p_6.to_local * metal::float4(dir_6, 0.0)).xyz; if ((p_6.info.x & PROBE_BOX) == 0u) { return d_15; } metal::float3 o_8 = (p_6.to_local * metal::float4(world_7, 1.0)).xyz; metal::float3 e_7 = p_6.extents.xyz; float _e24 = probe_exit(o_8.x, d_15.x, e_7.x); float _e28 = probe_exit(o_8.y, d_15.y, e_7.y); float _e32 = probe_exit(o_8.z, d_15.z, e_7.z); float t_8 = metal::max(metal::min(_e24, metal::min(_e28, _e32)), 0.0); return (o_8 + (d_15 * t_8)) - p_6.offset.xyz; } metal::float4 probe_reflection( metal::float3 world_8, metal::float3 r_2, float roughness_2, uint probes, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc = metal::float3(0.0); float w_sum = 0.0; uint i_8 = 0u; uint _e12 = Probe.counts.x; uint count_1 = metal::min(_e12, MAX_PROBES); uint _e18 = Probe.counts.y; float lod_1 = roughness_2 * static_cast(metal::max(_e18, 1u) - 1u); uint2 loop_bound_14 = uint2(4294967295u); bool loop_init_14 = true; while(true) { if (metal::all(loop_bound_14 == uint2(0u))) { break; } loop_bound_14 -= uint2(loop_bound_14.y == 0u, 1u); if (!loop_init_14) { uint _e57 = i_8; i_8 = _e57 + 1u; } loop_init_14 = false; uint _e27 = i_8; if (_e27 < count_1) { } else { break; } { uint _e31 = i_8; ProbeEntryU p_10 = Probe.probes.inner[metal::min(unsigned(_e31), 7u)]; if (((probes >> p_10.info.w) & 1u) == 0u) { continue; } float _e41 = probe_weight(p_10, world_8); if (_e41 <= 0.0) { continue; } metal::float3 _e44 = acc; metal::float3 _e47 = probe_lookup(p_10, world_8, r_2); metal::float3 _e48 = probe_sample(p_10.info.w, _e47, lod_1, Probe, t_probes, s_probes); acc = _e44 + ((_e48 * p_10.offset.w) * _e41); float _e54 = w_sum; w_sum = _e54 + _e41; } } float _e59 = w_sum; if (_e59 > 1.0) { metal::float3 _e62 = acc; float _e63 = w_sum; acc = _e62 / metal::float3(_e63); w_sum = 1.0; } metal::float3 _e67 = acc; float _e68 = w_sum; return metal::float4(_e67, _e68); } metal::float4 probe_ambient( metal::float3 world_9, metal::float3 n_7, uint probes_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc_1 = metal::float3(0.0); float w_sum_1 = 0.0; uint i_9 = 0u; bool local_19 = {}; metal::float3 c_18 = {}; uint _e11 = Probe.counts.x; uint count_2 = metal::min(_e11, MAX_PROBES); uint _e17 = Probe.counts.y; uint last = metal::max(_e17, 1u) - 1u; uint2 loop_bound_15 = uint2(4294967295u); bool loop_init_15 = true; while(true) { if (metal::all(loop_bound_15 == uint2(0u))) { break; } loop_bound_15 -= uint2(loop_bound_15.y == 0u, 1u); if (!loop_init_15) { uint _e73 = i_9; i_9 = _e73 + 1u; } loop_init_15 = false; uint _e24 = i_9; if (_e24 < count_2) { } else { break; } { uint _e28 = i_9; ProbeEntryU p_11 = Probe.probes.inner[metal::min(unsigned(_e28), 7u)]; if (!((((probes_1 >> p_11.info.w) & 1u) == 0u))) { local_19 = p_11.info.y == PROBE_AMBIENT_DISABLED; } else { local_19 = true; } bool _e46 = local_19; if (_e46) { continue; } float _e47 = probe_weight(p_11, world_9); if (_e47 <= 0.0) { continue; } c_18 = p_11.ambient.xyz; if (p_11.info.y == PROBE_AMBIENT_ENVIRONMENT) { metal::float3 _e64 = probe_face_uv((p_11.to_local * metal::float4(n_7, 0.0)).xyz); metal::float3 _e65 = probe_texel(p_11.info.w, _e64, last, Probe, t_probes, s_probes); c_18 = _e65; } metal::float3 _e66 = acc_1; metal::float3 _e67 = c_18; acc_1 = _e66 + (_e67 * _e47); float _e70 = w_sum_1; w_sum_1 = _e70 + _e47; } } float _e75 = w_sum_1; if (_e75 > 1.0) { metal::float3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = _e78 / metal::float3(_e79); w_sum_1 = 1.0; } metal::float3 _e83 = acc_1; float _e84 = w_sum_1; return metal::float4(_e83, _e84); } metal::float4 skin_row( uint k_10, uint r_3, constant SkinU& Skin ) { metal::float4 _e10 = Skin.rows.inner[metal::min(unsigned((metal::min(k_10, 254u) * 3u) + r_3), 764u)]; return _e10; } SkinRows skin_rows( SkinIn s_1, constant SkinU& Skin ) { SkinRows m_1 = {}; metal::uint4 j_1 = s_1.joints; metal::float4 w_5 = s_1.weights; metal::float4 _e8 = skin_row(s_1.joints.x, 0u, Skin); metal::float4 _e13 = skin_row(s_1.joints.y, 0u, Skin); metal::float4 _e19 = skin_row(s_1.joints.z, 0u, Skin); metal::float4 _e25 = skin_row(s_1.joints.w, 0u, Skin); m_1.r0_ = (((s_1.weights.x * _e8) + (s_1.weights.y * _e13)) + (s_1.weights.z * _e19)) + (s_1.weights.w * _e25); metal::float4 _e32 = skin_row(s_1.joints.x, 1u, Skin); metal::float4 _e37 = skin_row(s_1.joints.y, 1u, Skin); metal::float4 _e43 = skin_row(s_1.joints.z, 1u, Skin); metal::float4 _e49 = skin_row(s_1.joints.w, 1u, Skin); m_1.r1_ = (((s_1.weights.x * _e32) + (s_1.weights.y * _e37)) + (s_1.weights.z * _e43)) + (s_1.weights.w * _e49); metal::float4 _e56 = skin_row(s_1.joints.x, 2u, Skin); metal::float4 _e61 = skin_row(s_1.joints.y, 2u, Skin); metal::float4 _e67 = skin_row(s_1.joints.z, 2u, Skin); metal::float4 _e73 = skin_row(s_1.joints.w, 2u, Skin); m_1.r2_ = (((s_1.weights.x * _e56) + (s_1.weights.y * _e61)) + (s_1.weights.z * _e67)) + (s_1.weights.w * _e73); SkinRows _e76 = m_1; return _e76; } void hedra_store_varyings( thread CustomOut& o_4, thread metal::float4& affine_uv, thread metal::float3& gouraud ) { metal::float4 _e3 = affine_uv; o_4.hedra_v0_ = static_cast(_e3); metal::float3 _e7 = gouraud; o_4.hedra_v1_ = metal::float4(_e7, 0.0); return; } void hedra_load_varyings( CustomOut i_10, thread metal::float4& affine_uv, thread metal::float3& gouraud ) { affine_uv = i_10.hedra_v0_; gouraud = i_10.hedra_v1_.xyz; return; } void light( ) { return; } metal::float3 scene_to_frame( metal::float3 v_3 ) { return metal::float3(v_3.x, -(v_3.z), v_3.y); } metal::float4 snap_view( metal::float4 view_pos, constant Globals& G, thread metal::float4x4& INV_PROJECTION_MATRIX, constant HedraParams& hedra_p ) { float _e4 = hedra_p.snap_resolution.x; if (_e4 <= 0.0) { return view_pos; } metal::float4x4 _e9 = G.proj; metal::float4 clip_2 = _e9 * view_pos; if (clip_2.w <= 0.0001) { return view_pos; } metal::float2 _e16 = hedra_p.snap_resolution; metal::float2 half_res = _e16 * 0.5; metal::float2 ndc_1 = clip_2.xy / metal::float2(clip_2.w); metal::float2 snapped = metal::rint(ndc_1 * half_res) / half_res; metal::float4x4 _e27 = INV_PROJECTION_MATRIX; metal::float4 back_2 = _e27 * metal::float4(snapped * clip_2.w, clip_2.z, clip_2.w); return metal::float4(back_2.xyz / metal::float3(back_2.w), 1.0); } void vertex_( constant Globals& G, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float2& UV, thread metal::float4& COLOR, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, constant HedraParams& hedra_p, thread metal::float4& affine_uv, thread metal::float3& gouraud ) { float diffuse_1 = {}; metal::float3x3 _e1 = MODEL_NORMAL_MATRIX; metal::float3 _e3 = NORMAL; metal::float3 n_13 = metal::normalize(_e1 * _e3); metal::float3 _e8 = hedra_p.sun_direction; metal::float3 _e9 = scene_to_frame(_e8); metal::float3 sun_1 = metal::normalize(_e9); diffuse_1 = metal::max(metal::dot(n_13, sun_1), 0.0); float _e17 = hedra_p.light_bands; if (_e17 >= 2.0) { float _e20 = diffuse_1; float _e23 = hedra_p.light_bands; float _e30 = hedra_p.light_bands; diffuse_1 = metal::floor((_e20 * _e23) + 0.5) / _e30; } metal::float3 _e34 = hedra_p.ground_ambient; metal::float3 _e37 = hedra_p.sky_ambient; metal::float3 ambient_2 = metal::mix(_e34, _e37, (n_13.z * 0.5) + 0.5); metal::float3 _e47 = hedra_p.sun_color; float _e48 = diffuse_1; metal::float4 _e52 = COLOR; float _e57 = hedra_p.overbright; metal::float3 _e61 = hedra_p.emission; gouraud = (((ambient_2 + (_e47 * _e48)) * _e52.xyz) * _e57) + _e61; metal::float4x4 _e64 = MODELVIEW_MATRIX; metal::float3 _e66 = VERTEX; metal::float4 _e70 = snap_view(_e64 * metal::float4(_e66, 1.0), G, INV_PROJECTION_MATRIX, hedra_p); VERTEX = _e70.xyz; metal::float3x3 _e75 = MODELVIEW_NORMAL_MATRIX; metal::float3 _e77 = NORMAL; NORMAL = metal::normalize(_e75 * _e77); metal::float2 _e81 = UV; metal::float2 _e84 = hedra_p.uv_scale; metal::float2 _e88 = hedra_p.uv_offset; metal::float2 _e92 = hedra_p.uv_scroll; float _e96 = G.fparams.w; metal::float2 uv_7 = ((_e81 * _e84) + _e88) + (_e92 * _e96); UV = uv_7; metal::float4x4 _e102 = G.proj; float w_6 = (_e102 * _e70).w; float _e107 = hedra_p.affine_strength; float _e112 = hedra_p.affine_near; float weight = _e107 * metal::clamp((w_6 - 0.25) / metal::max(_e112, 0.001), 0.0, 1.0); affine_uv = metal::float4(uv_7 * w_6, w_6, weight); return; } void fragment_( thread metal::float2& UV, thread metal::float3& ALBEDO, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, constant HedraParams& hedra_p, metal::texture2d albedo_texture, metal::sampler SAMPLER_NEAREST_REPEAT, thread metal::float4& affine_uv, thread metal::float3& gouraud ) { metal::float4 _e1 = affine_uv; float _e5 = affine_uv.z; metal::float2 affine = _e1.xy / metal::float2(metal::max(_e5, 0.0001)); metal::float2 _e11 = UV; float _e14 = affine_uv.w; metal::float2 uv_8 = metal::mix(_e11, affine, metal::clamp(_e14, 0.0, 1.0)); metal::float4 texel_1 = albedo_texture.sample(SAMPLER_NEAREST_REPEAT, uv_8); metal::float4 _e26 = hedra_p.albedo; metal::float3 _e30 = gouraud; ALBEDO = (texel_1.xyz * _e26.xyz) * _e30; float _e37 = hedra_p.albedo.w; ALPHA = texel_1.w * _e37; float _e42 = hedra_p.alpha_cut; ALPHA_SCISSOR_THRESHOLD = _e42; return; } metal::float3x3 hedra_mat3_( metal::float4x4 m_2 ) { return metal::float3x3(m_2[0].xyz, m_2[1].xyz, m_2[2].xyz); } metal::float4x4 hedra_rigid_inverse( metal::float4x4 m_3 ) { metal::float3x3 _e1 = hedra_mat3_(m_3); metal::float3x3 r_8 = metal::transpose(_e1); metal::float3 t_9 = -((r_8 * m_3[3].xyz)); return metal::float4x4(metal::float4(r_8[0], 0.0), metal::float4(r_8[1], 0.0), metal::float4(r_8[2], 0.0), metal::float4(t_9, 1.0)); } metal::float4x4 hedra_inv_projection( constant Globals& G ) { metal::float4 _e2 = G.wire_color; metal::float4 _e5 = G.select_color; metal::float4 _e8 = G.active_color; metal::float4 _e11 = G.grid; return metal::float4x4(_e2, _e5, _e8, _e11); } metal::float2 hedra_godot_uv( metal::float2 uv_1 ) { return metal::float2(uv_1.x, 1.0 - uv_1.y); } bool hedra_transparent( ) { bool local_20 = {}; bool local_21 = {}; if (HEDRA_ALPHA) { local_20 = false; } else { local_20 = false; } bool _e5 = local_20; if (!(_e5)) { local_21 = false; } else { local_21 = true; } bool _e11 = local_21; return _e11; } bool hedra_mirrored( uint flags_1, constant ObjectU& O ) { uint _e4 = O.extra.x; return ((_e4 & OBJ_MIRRORED) != 0u) != ((flags_1 & F_INSTANCE_MIRRORED) != 0u); } void hedra_matrices( metal::float4x4 model, metal::float3x3 normal, constant Globals& G, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD ) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal; metal::float4x4 _e7 = G.view; metal::float4x4 _e8 = hedra_rigid_inverse(_e7); INV_VIEW_MATRIX = _e8; metal::float4x4 _e10 = hedra_inv_projection(G); INV_PROJECTION_MATRIX = _e10; metal::float4x4 _e14 = G.view; MODELVIEW_MATRIX = _e14 * model; metal::float4x4 _e19 = G.view; metal::float3x3 _e20 = hedra_mat3_(_e19); MODELVIEW_NORMAL_MATRIX = _e20 * normal; NODE_POSITION_WORLD = model[3].xyz; metal::float4x4 _e28 = G.view; NODE_POSITION_VIEW = (_e28 * metal::float4(model[3].xyz, 1.0)).xyz; metal::float4 _e38 = INV_VIEW_MATRIX[2]; CAMERA_DIRECTION_WORLD = _e38.xyz; return; } void hedra_begin_vertex( metal::float3 pos, metal::float3 normal_1, metal::float4 tangent, metal::float2 uv_2, metal::float2 uv2_, metal::float4 color, uint vid_3, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& VERTEX_ID, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX ) { bool local_22 = {}; VERTEX = pos; NORMAL = normal_1; TANGENT = tangent.xyz; BINORMAL = metal::cross(normal_1, tangent.xyz) * tangent.w; metal::float2 _e17 = hedra_godot_uv(uv_2); UV = _e17; metal::float2 _e19 = hedra_godot_uv(uv2_); UV2_ = _e19; COLOR = color; VERTEX_ID = static_cast(vid_3); POSITION = metal::float4(1.0); if (HEDRA_WORLD_VERTEX_COORDS) { local_22 = false; } else { local_22 = false; } bool _e31 = local_22; if (_e31) { metal::float4x4 _e34 = MODEL_MATRIX; metal::float3 _e36 = VERTEX; VERTEX = (_e34 * metal::float4(_e36, 1.0)).xyz; metal::float3x3 _e43 = MODEL_NORMAL_MATRIX; metal::float3 _e45 = NORMAL; NORMAL = _e43 * _e45; metal::float3x3 _e49 = MODEL_NORMAL_MATRIX; metal::float3 _e51 = TANGENT; TANGENT = _e49 * _e51; metal::float3x3 _e55 = MODEL_NORMAL_MATRIX; metal::float3 _e57 = BINORMAL; BINORMAL = _e55 * _e57; return; } else { return; } } CustomOut hedra_end_vertex( metal::float4 world_10, metal::float3 n_8, metal::float3 t, float tw, uint flags_2, constant Globals& G, thread metal::float4& POSITION, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread int& INSTANCE_ID, thread metal::float4& affine_uv, thread metal::float3& gouraud ) { CustomOut out_2 = {}; metal::float4x4 _e9 = G.view_proj; out_2.clip = _e9 * world_10; if (HEDRA_USES_POSITION) { metal::float4 _e14 = POSITION; out_2.clip = _e14; } out_2.world = world_10.xyz; out_2.normal = metal::normalize(n_8); metal::float2 _e21 = UV; out_2.uv = _e21; out_2.flags = flags_2; out_2.tangent = metal::float4(metal::normalize(t), tw); metal::float4 _e28 = COLOR; out_2.color = _e28; metal::float2 _e31 = UV2_; out_2.uv2_ = _e31; int _e34 = INSTANCE_ID; out_2.instance_id = static_cast(metal::max(_e34, 0)); hedra_store_varyings(out_2, affine_uv, gouraud); CustomOut _e38 = out_2; return _e38; } bool hedra_vertex_space( ) { bool local_23 = {}; if (false) { local_23 = HEDRA_WORLD_VERTEX_COORDS; } else { local_23 = true; } bool _e5 = local_23; return _e5; } metal::float4 hedra_vertex_world( thread metal::float3& VERTEX, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e2 = INV_VIEW_MATRIX; metal::float3 _e4 = VERTEX; return _e2 * metal::float4(_e4, 1.0); } metal::float3 _e9 = VERTEX; return metal::float4(_e9, 1.0); } metal::float3 hedra_vertex_dir( metal::float3 d_11, thread metal::float4x4& INV_VIEW_MATRIX ) { if (HEDRA_SKIP_VERTEX_TRANSFORM) { metal::float4x4 _e3 = INV_VIEW_MATRIX; metal::float3x3 _e4 = hedra_mat3_(_e3); return _e4 * d_11; } return d_11; } float hedra_tangent_sign( float w, bool flip, constant ObjectU& O ) { uint _e5 = O.extra.x; return w * ((((_e5 & OBJ_MIRRORED) != 0u) != flip) ? -1.0 : 1.0); } void hedra_fragment( CustomOut in_7, bool facing_4, constant Globals& G, constant ObjectU& O, thread metal::float3& VERTEX, thread metal::float3& NORMAL, thread metal::float3& TANGENT, thread metal::float3& BINORMAL, thread metal::float2& UV, thread metal::float2& UV2_, thread metal::float4& COLOR, thread metal::float4x4& MODEL_MATRIX, thread metal::float3x3& MODEL_NORMAL_MATRIX, thread metal::float4x4& INV_VIEW_MATRIX, thread metal::float4x4& INV_PROJECTION_MATRIX, thread metal::float4x4& MODELVIEW_MATRIX, thread metal::float3x3& MODELVIEW_NORMAL_MATRIX, thread metal::float3& NODE_POSITION_WORLD, thread metal::float3& NODE_POSITION_VIEW, thread metal::float3& CAMERA_DIRECTION_WORLD, thread metal::float3& LIGHT_VERTEX, thread metal::float4& FRAGCOORD, thread bool& FRONT_FACING, thread metal::float3& VIEW, thread metal::float3& NORMAL_MAP, thread float& NORMAL_MAP_DEPTH, thread metal::float3& ALBEDO, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread float& PREMUL_ALPHA_FACTOR, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread metal::float2& SCREEN_UV, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n, thread bool& hedra_front, constant HedraParams& hedra_p, metal::texture2d albedo_texture, metal::sampler SAMPLER_NEAREST_REPEAT, thread metal::float4& affine_uv, thread metal::float3& gouraud ) { metal::float3 t_1 = {}; metal::float3 nm = {}; bool _e3 = hedra_mirrored(in_7.flags, O); bool front = facing_4 != _e3; hedra_front = front; FRONT_FACING = front; FRAGCOORD = in_7.clip; metal::float4 _e14 = G.viewport; SCREEN_UV = in_7.clip.xy * _e14.zw; metal::float4x4 _e19 = O.model; metal::float4x4 _e22 = O.normal; metal::float3x3 _e23 = hedra_mat3_(_e22); hedra_matrices(_e19, _e23, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); metal::float4x4 _e26 = G.view; metal::float3x3 _e27 = hedra_mat3_(_e26); metal::float3 n_geo_2 = front ? metal::normalize(in_7.normal) : -(metal::normalize(in_7.normal)); hedra_n_geo = n_geo_2; hedra_n = n_geo_2; hedra_world = in_7.world; t_1 = in_7.tangent.xyz; metal::float3 _e41 = t_1; metal::float3 _e42 = t_1; t_1 = metal::normalize(_e41 - (n_geo_2 * metal::dot(n_geo_2, _e42))); metal::float3 _e47 = t_1; metal::float3 b_4 = metal::cross(n_geo_2, _e47) * in_7.tangent.w; metal::float4x4 _e55 = G.view; VERTEX = (_e55 * metal::float4(in_7.world, 1.0)).xyz; metal::float3 _e63 = VERTEX; LIGHT_VERTEX = _e63; metal::float3 vertex0_ = VERTEX; NORMAL = metal::normalize(_e27 * n_geo_2); metal::float3 normal0_ = NORMAL; metal::float3 _e72 = t_1; TANGENT = metal::normalize(_e27 * _e72); BINORMAL = metal::normalize(_e27 * b_4); metal::float3 _e80 = VERTEX; float _e90 = G.camera_pos.w; VIEW = (_e90 > 0.5) ? metal::float3(0.0, 0.0, 1.0) : metal::normalize(-(_e80)); UV = in_7.uv; UV2_ = in_7.uv2_; COLOR = in_7.color; NORMAL_MAP = metal::float3(0.5); NORMAL_MAP_DEPTH = 1.0; ALBEDO = metal::float3(1.0); ALPHA = 1.0; ALPHA_SCISSOR_THRESHOLD = 1.0; PREMUL_ALPHA_FACTOR = 1.0; METALLIC = 0.0; SPECULAR = 0.5; ROUGHNESS = 1.0; RIM = 0.0; RIM_TINT = 0.0; BACKLIGHT = metal::float3(0.0); AO = 1.0; AO_LIGHT_AFFECT = 0.0; EMISSION = metal::float3(0.0); hedra_load_varyings(in_7, affine_uv, gouraud); fragment_(UV, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_p, albedo_texture, SAMPLER_NEAREST_REPEAT, affine_uv, gouraud); metal::float3x3 back_3 = metal::transpose(_e27); metal::float3 _e136 = NORMAL; if (metal::any(_e136 != normal0_)) { metal::float3 _e141 = NORMAL; hedra_n = metal::normalize(back_3 * _e141); } metal::float3 _e145 = NORMAL_MAP; if (metal::any(_e145 != metal::float3(0.5))) { metal::float3 _e151 = NORMAL_MAP; nm = _e151; metal::float3 _e153 = nm; nm = metal::float3((_e153.xy * 2.0) - metal::float2(1.0), 0.0); metal::float3 _e163 = nm; metal::float3 _e165 = nm; nm.z = metal::sqrt(metal::max(0.0, 1.0 - metal::dot(_e163.xy, _e165.xy))); metal::float3 _e175 = NORMAL; metal::float3 _e177 = TANGENT; float _e179 = nm.x; metal::float3 _e182 = BINORMAL; float _e184 = nm.y; metal::float3 _e188 = NORMAL; float _e190 = nm.z; float _e194 = NORMAL_MAP_DEPTH; NORMAL = metal::normalize(metal::mix(_e175, ((_e177 * _e179) + (_e182 * _e184)) + (_e188 * _e190), _e194)); metal::float3 _e199 = NORMAL; hedra_n = metal::normalize(back_3 * _e199); } metal::float3 _e203 = LIGHT_VERTEX; if (metal::any(_e203 != vertex0_)) { metal::float4x4 _e208 = INV_VIEW_MATRIX; metal::float3 _e210 = LIGHT_VERTEX; hedra_world = (_e208 * metal::float4(_e210, 1.0)).xyz; return; } else { return; } } bool hedra_culled( uint flags_3, thread float& ALPHA, thread float& ALPHA_SCISSOR_THRESHOLD, thread bool& hedra_front ) { bool local_24 = {}; bool local_25 = {}; if ((flags_3 & F_HIDDEN) != 0u) { return true; } if (false) { bool _e10 = hedra_front; local_24 = _e10; } else { local_24 = false; } bool _e12 = local_24; if (_e12) { return true; } if (HEDRA_ALPHA_SCISSOR) { float _e18 = ALPHA; float _e20 = ALPHA_SCISSOR_THRESHOLD; local_25 = _e18 < _e20; } else { local_25 = false; } bool _e23 = local_25; return _e23; } metal::float3 hedra_view_dir( metal::float3 world_11, constant Globals& G ) { float _e5 = G.view[0].z; float _e10 = G.view[1].z; float _e15 = G.view[2].z; metal::float3 view_dir = metal::float3(_e5, _e10, _e15); metal::float4 _e19 = G.camera_pos; float _e27 = G.camera_pos.w; return (_e27 > 0.5) ? metal::normalize(view_dir) : metal::normalize(_e19.xyz - world_11); } float hedra_schlick( float u ) { float m_5 = metal::clamp(1.0 - u, 0.0, 1.0); float m2_ = m_5 * m_5; return (m2_ * m2_) * m_5; } float hedra_diffuse_brdf( float nl_1, float nv_2, float lh, float r_4 ) { float c_nl = metal::max(nl_1, 0.0); if (false) { return metal::max(0.0, (nl_1 + r_4) / ((1.0 + r_4) * (1.0 + r_4))) * 0.31830987; } if (false) { return metal::smoothstep(-(r_4), metal::max(r_4, 0.01), nl_1) * 0.31830987; } if (false) { float fd90_ = (((2.0 * lh) * lh) * r_4) - 0.5; float _e32 = hedra_schlick(nv_2); float fdv = 1.0 + (fd90_ * _e32); float _e36 = hedra_schlick(c_nl); float fdl = 1.0 + (fd90_ * _e36); return ((0.31830987 * fdv) * fdl) * c_nl; } return c_nl * 0.31830987; } metal::float3 hedra_light_modes( metal::float3 n_9, metal::float3 v_4, metal::float3 l_3, metal::float3 radiance_2, metal::float3 diffuse_2, metal::float3 f0_2, float a2_3, float r_5, float specular_1 ) { metal::float3 c_19 = {}; float mid = {}; bool local_26 = {}; float nl_3 = metal::min(metal::dot(n_9, l_3), 1.0); float nv_4 = metal::max(metal::dot(n_9, v_4), 0.0001); metal::float3 h_3 = metal::normalize(l_3 + v_4); float lh_1 = metal::clamp(metal::dot(l_3, h_3), 0.0, 1.0); float _e21 = hedra_diffuse_brdf(nl_3, nv_4, lh_1, r_5); c_19 = (diffuse_2 * _e21) * radiance_2; if (r_5 > 0.0) { if (false) { metal::float3 refl = metal::normalize(-(metal::reflect(l_3, n_9))); float rv = metal::dot(refl, v_4); mid = 1.0 - r_5; float _e35 = mid; float _e36 = mid; mid = _e35 * _e36; metal::float3 _e38 = c_19; float _e40 = mid; float _e44 = mid; float _e49 = mid; c_19 = _e38 + ((diffuse_2 * radiance_2) * ((metal::smoothstep(_e40 - (r_5 * 0.5), _e44 + (r_5 * 0.5), rv) * _e49) * specular_1)); } else { if (false) { local_26 = nl_3 > 0.0; } else { local_26 = false; } bool _e60 = local_26; if (_e60) { float nh_2 = metal::max(metal::dot(n_9, h_3), 0.0); float vh_2 = metal::max(metal::dot(v_4, h_3), 0.0); metal::float3 _e67 = f_schlick(f0_2, vh_2); metal::float3 _e68 = c_19; float _e69 = d_ggx(nh_2, a2_3); float _e70 = v_smith(nl_3, nv_4, a2_3); c_19 = _e68 + ((((_e69 * _e70) * _e67) * (specular_1 * nl_3)) * radiance_2); } } } metal::float3 _e77 = c_19; return _e77; } metal::float4 hedra_light_dir( uint i_11, metal::float3 world_12, constant LitU& Lit ) { float atten_1 = {}; LightU li_1 = Lit.lights.inner[metal::min(unsigned(i_11), 63u)]; if (li_1.info.x == LIGHT_DIRECTIONAL) { return metal::float4(-(li_1.direction.xyz), 1.0); } metal::float3 rel_1 = li_1.position.xyz - world_12; float d_16 = metal::length(rel_1); metal::float3 l_7 = rel_1 / metal::float3(metal::max(d_16, 0.000001)); float _e27 = omni_attenuation(d_16, li_1.position.w, li_1.direction.w); atten_1 = _e27; if (li_1.info.x == LIGHT_SPOT) { float cone = li_1.spot.x; float scos = metal::max(metal::dot(-(l_7), li_1.direction.xyz), cone); float rim_1 = metal::max(0.0001, (1.0 - scos) / metal::max(1.0 - cone, 0.000001)); float _e49 = atten_1; atten_1 = _e49 * (1.0 - metal::pow(rim_1, li_1.spot.y)); } float _e56 = atten_1; return metal::float4(l_7, _e56); } float hedra_shadow( uint i_12, metal::float3 l_4, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo ) { bool local_27 = {}; if (false) { uint _e10 = Lit.lights.inner[metal::min(unsigned(i_12), 63u)].info.y; local_27 = _e10 != LIGHT_SHADOWED; } else { local_27 = true; } bool _e14 = local_27; if (_e14) { return 1.0; } metal::float3 _e17 = hedra_world; metal::float3 _e19 = hedra_n_geo; float _e20 = shadow_factor(i_12, _e17, _e19, l_4, G, Lit, Shadow, t_shadow, s_shadow); return _e20; } metal::float3 hedra_ambient( metal::float3 n_10, metal::float3 v_5, metal::float3 diffuse_3, metal::float3 f0_3, float roughness_3, float metallic, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, thread metal::float3& hedra_world ) { metal::float3 ambient = {}; metal::float3 diffuse_amb = {}; metal::float3 spec_amb = {}; metal::float3 dif = {}; metal::float3 dif_1 = {}; metal::float3 dif_2 = {}; metal::float3 world_13 = hedra_world; float nv_5 = metal::max(metal::dot(n_10, v_5), 0.0001); metal::float3 f_amb = f0_3 + ((metal::max(metal::float3(1.0 - roughness_3), f0_3) - f0_3) * metal::pow(1.0 - nv_5, 5.0)); metal::float4 _e25 = gi_diffuse(n_10, false, metal::float3(0.0), O); uint _e30 = Sky.flags.x; if ((_e30 & SKY_IBL) != 0u) { float _e38 = Sky.ibl.x; float _e42 = Sky.sun.w; float scale = _e38 * _e42; metal::float4 _e46 = Sky.ambient; diffuse_amb = _e46.xyz; uint _e52 = Sky.flags.x; if ((_e52 & SKY_AMBIENT_SKY) != 0u) { metal::float4 _e59 = Sky.ambient; metal::float3 _e61 = sky_dir(n_10, Sky); metal::float3 _e62 = sh_irradiance(_e61, Sky); float _e67 = Sky.ambient.w; diffuse_amb = metal::mix(_e59.xyz, _e62 * scale, _e67); } if (_e25.w > 0.0) { diffuse_amb = _e25.xyz; } metal::float4 _e75 = Sky.ambient; spec_amb = _e75.xyz; uint _e81 = Sky.flags.x; if ((_e81 & SKY_REFLECT_RADIANCE) != 0u) { metal::float3 _e88 = sky_dir(metal::reflect(-(v_5), n_10), Sky); metal::float3 _e89 = radiance_1(_e88, roughness_3, Sky, t_radiance, s_radiance); spec_amb = _e89 * scale; } else { uint _e94 = Sky.flags.x; if ((_e94 & SKY_REFLECT_OFF) != 0u) { spec_amb = metal::float3(0.0); } } metal::float2 _e101 = env_brdf_approx(roughness_3, nv_5); uint _e105 = Probe.counts.x; if (_e105 > 0u) { uint _e113 = O.extra.z; metal::float4 _e114 = probe_reflection(world_13, metal::reflect(-(v_5), n_10), roughness_3, _e113, Probe, t_probes, s_probes); metal::float3 _e115 = spec_amb; metal::float3 spec_1 = (_e115 * (1.0 - _e114.w)) + _e114.xyz; metal::float3 _e122 = diffuse_amb; dif = _e122; if (_e25.w <= 0.0) { uint _e130 = O.extra.z; metal::float4 _e131 = probe_ambient(world_13, n_10, _e130, Probe, t_probes, s_probes); metal::float3 _e132 = diffuse_amb; dif = (_e132 * (1.0 - _e131.w)) + _e131.xyz; } metal::float3 _e139 = dif; ambient = (diffuse_3 * _e139) + (spec_1 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } else { metal::float3 _e154 = diffuse_amb; metal::float3 _e156 = spec_amb; ambient = (diffuse_3 * _e154) + (_e156 * ((f0_3 * _e101.x) + metal::float3(_e101.y * metal::clamp(50.0 * f0_3.y, metallic, 1.0)))); } } else { uint _e173 = Lit.counts.y; if ((_e173 & ENV_AMBIENT_SKY) != 0u) { metal::float4 _e180 = Lit.up; metal::float3 up = _e180.xyz; metal::float4 _e184 = Lit.sky_top; metal::float4 _e188 = Lit.sky_horizon; metal::float3 sky_avg = (_e184.xyz + _e188.xyz) * 0.5; metal::float4 _e195 = Lit.ground_horizon; metal::float4 _e199 = Lit.ground_bottom; metal::float3 ground_avg = (_e195.xyz + _e199.xyz) * 0.5; metal::float3 irradiance = metal::mix(ground_avg, sky_avg, metal::clamp((metal::dot(n_10, up) * 0.5) + 0.5, 0.0, 1.0)); metal::float3 _e215 = sky(metal::reflect(-(v_5), n_10), Lit); metal::float3 blurred = metal::mix(_e215, sky_avg, roughness_3); uint _e220 = Probe.counts.x; if (_e220 > 0u) { uint _e228 = O.extra.z; metal::float4 _e229 = probe_reflection(world_13, metal::reflect(-(v_5), n_10), roughness_3, _e228, Probe, t_probes, s_probes); float _e233 = Lit.ambient.w; metal::float3 spec_2 = ((blurred * _e233) * (1.0 - _e229.w)) + _e229.xyz; dif_1 = _e25.xyz; if (_e25.w <= 0.0) { uint _e249 = O.extra.z; metal::float4 _e250 = probe_ambient(world_13, n_10, _e249, Probe, t_probes, s_probes); float _e254 = Lit.ambient.w; dif_1 = ((irradiance * _e254) * (1.0 - _e250.w)) + _e250.xyz; } metal::float3 _e262 = dif_1; ambient = (diffuse_3 * _e262) + (spec_2 * f_amb); } else { if (_e25.w > 0.0) { float _e275 = Lit.ambient.w; ambient = (diffuse_3 * _e25.xyz) + ((blurred * f_amb) * _e275); } else { float _e284 = Lit.ambient.w; ambient = ((diffuse_3 * irradiance) + (blurred * f_amb)) * _e284; } } } else { uint _e289 = Probe.counts.x; if (_e289 > 0u) { uint _e297 = O.extra.z; metal::float4 _e298 = probe_reflection(world_13, metal::reflect(-(v_5), n_10), roughness_3, _e297, Probe, t_probes, s_probes); metal::float4 _e301 = Lit.ambient; metal::float3 spec_3 = (_e301.xyz * (1.0 - _e298.w)) + _e298.xyz; dif_2 = _e25.xyz; if (_e25.w <= 0.0) { uint _e317 = O.extra.z; metal::float4 _e318 = probe_ambient(world_13, n_10, _e317, Probe, t_probes, s_probes); metal::float4 _e321 = Lit.ambient; dif_2 = (_e321.xyz * (1.0 - _e318.w)) + _e318.xyz; } metal::float3 _e329 = dif_2; ambient = (diffuse_3 * _e329) + (spec_3 * f_amb); } else { if (_e25.w > 0.0) { metal::float4 _e340 = Lit.ambient; ambient = (diffuse_3 * _e25.xyz) + (_e340.xyz * f_amb); } else { metal::float4 _e346 = Lit.ambient; ambient = _e346.xyz * (diffuse_3 + f_amb); } } } } metal::float3 _e350 = ambient; return _e350; } metal::float3 hedra_fog( metal::float3 c_in_1, metal::float3 v_6, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant FogU& Fog, thread metal::float3& hedra_world ) { metal::float3 c_20 = {}; c_20 = c_in_1; if (HEDRA_FOG_DISABLED) { metal::float3 _e4 = c_20; return _e4; } uint _e8 = Sky.flags.x; if ((_e8 & SKY_FOG) != 0u) { metal::float3 _e13 = c_20; metal::float3 _e15 = hedra_world; metal::float3 _e17 = surface_fog(_e13, _e15, -(v_6), G, Lit, Sky, t_radiance, s_radiance); c_20 = _e17; } uint _e21 = O.decals.w; if (_e21 != 0u) { metal::float3 _e24 = c_20; metal::float3 _e26 = hedra_world; uint _e30 = O.decals.w; metal::float3 _e31 = fog_volumes(_e24, _e26, _e30, G, Lit, Fog); c_20 = _e31; } metal::float3 _e32 = c_20; return _e32; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } metal::float3 hedra_lit( metal::float4 clip, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals, constant FogU& Fog, thread metal::float3& NORMAL, thread metal::float3& ALBEDO, thread float& METALLIC, thread float& SPECULAR, thread float& ROUGHNESS, thread float& RIM, thread float& RIM_TINT, thread metal::float3& BACKLIGHT, thread float& AO, thread float& AO_LIGHT_AFFECT, thread metal::float3& EMISSION, thread float& SPECULAR_AMOUNT, thread metal::float3& LIGHT, thread metal::float3& LIGHT_COLOR, thread bool& LIGHT_IS_DIRECTIONAL, thread float& ATTENUATION, thread metal::float3& DIFFUSE_LIGHT, thread metal::float3& SPECULAR_LIGHT, thread metal::float3& hedra_world, thread metal::float3& hedra_n_geo, thread metal::float3& hedra_n ) { DecalSurface surf_1 = {}; metal::float3 c_21 = metal::float3(0.0); uint k_11 = 0u; bool local_28 = {}; metal::float3 radiance_3 = {}; bool local_29 = {}; bool local_30 = {}; metal::float3 ambient_1 = metal::float3(0.0); bool local_31 = {}; metal::float3 n_geo_3 = hedra_n_geo; metal::float3 _e4 = ALBEDO; float _e6 = METALLIC; float _e11 = ROUGHNESS; float _e16 = AO; metal::float3 _e18 = hedra_n; metal::float3 _e20 = EMISSION; surf_1 = DecalSurface {_e4, metal::clamp(_e6, 0.0, 1.0), metal::clamp(_e11, 0.045, 1.0), _e16, {}, _e18, _e20}; uint _e26 = O.decals.z; if (_e26 > 0u) { metal::float3 _e30 = hedra_world; DecalSurface _e31 = surf_1; DecalSurface _e32 = apply_decals(_e30, n_geo_3, _e31, G, O, Decal, t_decals, s_decals); surf_1 = _e32; metal::float3 _e35 = surf_1.base; ALBEDO = _e35; float _e38 = surf_1.metallic; METALLIC = _e38; float _e41 = surf_1.roughness; ROUGHNESS = _e41; metal::float4x4 _e45 = G.view; metal::float3x3 _e46 = hedra_mat3_(_e45); metal::float3 _e48 = surf_1.normal; NORMAL = metal::normalize(_e46 * _e48); } float metallic_1 = surf_1.metallic; float roughness_4 = surf_1.roughness; float a2_4 = ((roughness_4 * roughness_4) * roughness_4) * roughness_4; metal::float3 base = surf_1.base; metal::float3 diffuse_4 = base * (1.0 - metallic_1); float _e64 = SPECULAR; float _e68 = SPECULAR; metal::float3 f0_4 = metal::mix(metal::float3((0.16 * _e64) * _e68), base, metallic_1); metal::float3 n_14 = surf_1.normal; metal::float3 _e75 = hedra_world; metal::float3 _e76 = hedra_view_dir(_e75, G); metal::float4x4 _e79 = G.view; metal::float3x3 _e80 = hedra_mat3_(_e79); float _e82 = surf_1.occlusion; float _e84 = AO_LIGHT_AFFECT; float ao_direct = metal::mix(1.0, _e82, _e84); DIFFUSE_LIGHT = metal::float3(0.0); SPECULAR_LIGHT = metal::float3(0.0); uint _e96 = object_light_count(O); uint2 loop_bound_16 = uint2(4294967295u); bool loop_init_16 = true; while(true) { if (metal::all(loop_bound_16 == uint2(0u))) { break; } loop_bound_16 -= uint2(loop_bound_16.y == 0u, 1u); if (!loop_init_16) { uint _e238 = k_11; k_11 = _e238 + 1u; } loop_init_16 = false; uint _e99 = k_11; if (_e99 < _e96) { } else { break; } { uint _e101 = k_11; uint _e102 = object_light(_e101, O); LightU li_2 = Lit.lights.inner[metal::min(unsigned(_e102), 63u)]; metal::float3 _e108 = hedra_world; metal::float4 _e109 = hedra_light_dir(_e102, _e108, Lit); metal::float3 l_8 = _e109.xyz; float atten_2 = _e109.w; if (HEDRA_HAS_LIGHT) { if (!((li_2.info.x == LIGHT_DIRECTIONAL))) { local_28 = atten_2 > 0.0; } else { local_28 = true; } bool _e123 = local_28; if (_e123) { LIGHT = metal::normalize(_e80 * l_8); LIGHT_COLOR = li_2.color.xyz; float _e131 = hedra_shadow(_e102, l_8, G, Lit, Shadow, t_shadow, s_shadow, hedra_world, hedra_n_geo); ATTENUATION = atten_2 * _e131; LIGHT_IS_DIRECTIONAL = li_2.info.x == LIGHT_DIRECTIONAL; SPECULAR_AMOUNT = li_2.spot.z; light(); } continue; } float _e142 = RIM; if (_e142 > 0.0) { float rim_light = metal::pow(metal::max(0.0001, 1.0 - metal::max(metal::dot(n_14, _e76), 0.0001)), metal::max(0.0, (1.0 - roughness_4) * 16.0)); metal::float3 _e159 = c_21; float _e164 = RIM; float _e170 = RIM_TINT; c_21 = _e159 + (((diffuse_4 * li_2.color.xyz) * (rim_light * _e164)) * metal::mix(metal::float3(1.0), base, _e170)); } if (atten_2 > 0.0) { radiance_3 = li_2.color.xyz * atten_2; if (li_2.info.y == LIGHT_SHADOWED) { local_29 = false; } else { local_29 = false; } bool _e188 = local_29; if (_e188) { metal::float3 _e192 = hedra_world; float _e193 = shadow_factor(_e102, _e192, n_geo_3, l_8, G, Lit, Shadow, t_shadow, s_shadow); radiance_3 = li_2.color.xyz * (atten_2 * _e193); } if (true) { local_30 = false; } else { local_30 = false; } bool _e201 = local_30; if (_e201) { metal::float3 _e202 = c_21; metal::float3 _e203 = radiance_3; metal::float3 _e206 = light_specular(n_14, _e76, l_8, _e203, diffuse_4, f0_4, a2_4, li_2.spot.z); c_21 = _e202 + _e206; } else { metal::float3 _e208 = c_21; metal::float3 _e209 = radiance_3; metal::float3 _e212 = hedra_light_modes(n_14, _e76, l_8, _e209, diffuse_4, f0_4, a2_4, roughness_4, li_2.spot.z); c_21 = _e208 + _e212; } metal::float3 _e215 = BACKLIGHT; if (metal::any(_e215 > metal::float3(0.0))) { float nl_4 = metal::max(metal::min(metal::dot(n_14, l_8), 1.0), 0.0); metal::float3 _e225 = c_21; metal::float3 _e226 = radiance_3; metal::float3 _e229 = BACKLIGHT; c_21 = _e225 + (((diffuse_4 * _e226) * _e229) * (0.31830987 - (nl_4 * 0.31830987))); } } } } if (HEDRA_HAS_LIGHT) { metal::float3 _e242 = DIFFUSE_LIGHT; metal::float3 _e249 = SPECULAR_LIGHT; c_21 = (((_e242 * base) * ao_direct) * (1.0 - metallic_1)) + (_e249 * ao_direct); } else { float _e253 = AO_LIGHT_AFFECT; if (_e253 > 0.0) { metal::float3 _e256 = c_21; c_21 = _e256 * ao_direct; } } if (true) { metal::float3 _e262 = hedra_ambient(n_14, _e76, diffuse_4, f0_4, roughness_4, metallic_1, O, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes, hedra_world); ambient_1 = _e262; } uint _e266 = Lit.counts.y; if ((_e266 & ENV_SSAO) != 0u) { bool _e273 = hedra_transparent(); local_31 = !(_e273); } else { local_31 = false; } bool _e276 = local_31; if (_e276) { uint clamped_lod_e282 = metal::min(uint(0), t_ao.get_num_mip_levels() - 1); metal::float4 _e282 = t_ao.read(metal::min(metal::uint2(naga_f2i32(metal::floor(clip.xy))), metal::uint2(t_ao.get_width(clamped_lod_e282), t_ao.get_height(clamped_lod_e282)) - 1), clamped_lod_e282); float ssao = _e282.x; metal::float3 _e284 = c_21; float _e286 = surf_1.occlusion; float _e291 = Lit.tone.z; float _e295 = Lit.tone.w; c_21 = _e284 * metal::mix(1.0, metal::min(ssao, _e286), _e291 * _e295); metal::float3 _e300 = c_21; metal::float3 _e301 = ambient_1; float _e303 = surf_1.occlusion; c_21 = _e300 + (_e301 * metal::min(_e303, ssao)); } else { metal::float3 _e307 = c_21; metal::float3 _e308 = ambient_1; float _e310 = surf_1.occlusion; c_21 = _e307 + (_e308 * _e310); } metal::float3 _e313 = c_21; metal::float3 _e315 = surf_1.emission; c_21 = _e313 + _e315; metal::float3 _e317 = c_21; metal::float3 _e318 = hedra_fog(_e317, _e76, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e319 = tonemap(_e318, Lit); return _e319; } metal::float4 hedra_output( metal::float3 c_22, constant Globals& G, constant LitU& Lit, thread float& ALPHA, thread float& PREMUL_ALPHA_FACTOR ) { metal::float3 rgb = {}; rgb = c_22; if (false) { metal::float3 _e3 = rgb; float _e5 = PREMUL_ALPHA_FACTOR; rgb = _e3 * _e5; } metal::float3 _e7 = rgb; float _e9 = ALPHA; bool _e10 = hedra_transparent(); metal::float4 o_9 = metal::float4(_e7, _e10 ? _e9 : 1.0); uint _e17 = Lit.counts.y; if ((_e17 & ENV_HDR) != 0u) { return metal::float4(metal::max(o_9.xyz, metal::float3(0.0)), metal::clamp(o_9.w, 0.0, 1.0)); } metal::float4 k_17 = metal::clamp(o_9, metal::float4(0.0), metal::float4(1.0)); uint _e39 = G.params.z; if ((_e39 & HEDRA_ENCODE_SRGB) != 0u) { metal::float3 _e45 = linear_to_srgb(k_17.xyz); return metal::float4(_e45, k_17.w); } return k_17; } metal::float3 hedra_bindings( metal::texture2d t_panorama, metal::sampler s_radiance, metal::sampler s_panorama, metal::texture2d_array t_lightmap, metal::sampler s_lightmap, metal::texture2d t_screen ) { metal::float2 uv_9 = metal::float2(0.5); metal::float4 _e5 = t_panorama.sample(s_panorama, uv_9, metal::level(0.0)); metal::float4 _e11 = t_lightmap.sample(s_lightmap, uv_9, 0, metal::level(0.0)); metal::float4 _e17 = t_screen.sample(s_radiance, uv_9, metal::level(0.0)); return (_e5.xyz + _e11.xyz) + _e17.xyz; } struct vs_customInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float2 uv1_ [[attribute(10)]]; }; struct vs_customOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_customOutput vs_custom( vs_customInput varyings [[stage_in]] , uint vid [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const VsIn in = { varyings.pos_1, varyings.normal_2, varyings.uv_3, varyings.flags_4, {}, varyings.tangent_1, varyings.weight }; const auto uv1_ = varyings.uv1_; metal::float4x4 _e5 = O.model; metal::float4x4 _e8 = O.normal; metal::float3x3 _e9 = hedra_mat3_(_e8); hedra_matrices(_e5, _e9, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(in.pos, in.normal, in.tangent, in.uv, uv1_, metal::float4(1.0), vid, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, UV, COLOR, MODEL_NORMAL_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, hedra_p, affine_uv, gouraud); float _e24 = hedra_tangent_sign(in.tangent.w, false, O); bool _e25 = hedra_vertex_space(); if (_e25) { metal::float4 _e26 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e28 = NORMAL; metal::float3 _e29 = hedra_vertex_dir(_e28, INV_VIEW_MATRIX); metal::float3 _e31 = TANGENT; metal::float3 _e32 = hedra_vertex_dir(_e31, INV_VIEW_MATRIX); CustomOut _e34 = hedra_end_vertex(_e26, _e29, _e32, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, affine_uv, gouraud); const auto _tmp = _e34; return vs_customOutput { _tmp.clip, _tmp.world, _tmp.normal, _tmp.uv, _tmp.flags, _tmp.tangent, _tmp.color, _tmp.uv2_, _tmp.instance_id, _tmp.hedra_v0_, _tmp.hedra_v1_, _tmp.hedra_v2_, _tmp.hedra_v3_ }; } metal::float4x4 _e37 = O.model; metal::float3 _e39 = VERTEX; metal::float4 world_14 = _e37 * metal::float4(_e39, 1.0); metal::float4x4 _e45 = O.normal; metal::float3 _e47 = NORMAL; metal::float3 n_15 = (_e45 * metal::float4(_e47, 0.0)).xyz; metal::float4x4 _e54 = O.model; metal::float3 _e56 = TANGENT; metal::float3 t_10 = (_e54 * metal::float4(_e56, 0.0)).xyz; CustomOut _e62 = hedra_end_vertex(world_14, n_15, t_10, _e24, in.flags, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, affine_uv, gouraud); const auto _tmp_1 = _e62; return vs_customOutput { _tmp_1.clip, _tmp_1.world, _tmp_1.normal, _tmp_1.uv, _tmp_1.flags, _tmp_1.tangent, _tmp_1.color, _tmp_1.uv2_, _tmp_1.instance_id, _tmp_1.hedra_v0_, _tmp_1.hedra_v1_, _tmp_1.hedra_v2_, _tmp_1.hedra_v3_ }; } struct vs_custom_instancedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::float4 row0_ [[attribute(6)]]; metal::float4 row1_ [[attribute(7)]]; metal::float4 row2_ [[attribute(8)]]; metal::float4 color_1 [[attribute(9)]]; metal::float2 uv1_1 [[attribute(10)]]; metal::float4 custom [[attribute(14)]]; float id [[attribute(15)]]; }; struct vs_custom_instancedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_instancedOutput vs_custom_instanced( vs_custom_instancedInput varyings_1 [[stage_in]] , uint vid_1 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const VsIn in_1 = { varyings_1.pos_1, varyings_1.normal_2, varyings_1.uv_3, varyings_1.flags_4, {}, varyings_1.tangent_1, varyings_1.weight }; const InstIn inst = { varyings_1.row0_, varyings_1.row1_, varyings_1.row2_, varyings_1.color_1 }; const auto uv1_1 = varyings_1.uv1_1; const HedraInstExtra extra = { varyings_1.custom, varyings_1.id }; metal::float3 bx = metal::float3(inst.row0_.x, inst.row1_.x, inst.row2_.x); metal::float3 by = metal::float3(inst.row0_.y, inst.row1_.y, inst.row2_.y); metal::float3 bz = metal::float3(inst.row0_.z, inst.row1_.z, inst.row2_.z); float det = metal::dot(bx, metal::cross(by, bz)); bool flip_1 = det < 0.0; metal::float3x3 cofactor = metal::float3x3(metal::cross(by, bz), metal::cross(bz, bx), metal::cross(bx, by)) * (flip_1 ? -1.0 : 1.0); metal::float4x4 basis = metal::float4x4(metal::float4(bx, 0.0), metal::float4(by, 0.0), metal::float4(bz, 0.0), metal::float4(inst.row0_.w, inst.row1_.w, inst.row2_.w, 1.0)); metal::float4x4 _e55 = O.model; metal::float4x4 _e59 = O.normal; metal::float3x3 _e60 = hedra_mat3_(_e59); hedra_matrices(_e55 * basis, _e60 * cofactor, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = naga_f2i32(extra.id); INSTANCE_CUSTOM = extra.custom; hedra_begin_vertex(in_1.pos, in_1.normal, in_1.tangent, in_1.uv, uv1_1, inst.color, vid_1, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, UV, COLOR, MODEL_NORMAL_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, hedra_p, affine_uv, gouraud); uint flags_4 = in_1.flags | (flip_1 ? F_INSTANCE_MIRRORED : 0u); float _e79 = hedra_tangent_sign(in_1.tangent.w, flip_1, O); bool _e80 = hedra_vertex_space(); if (_e80) { metal::float4 _e81 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e83 = NORMAL; metal::float3 _e84 = hedra_vertex_dir(_e83, INV_VIEW_MATRIX); metal::float3 _e86 = TANGENT; metal::float3 _e87 = hedra_vertex_dir(_e86, INV_VIEW_MATRIX); CustomOut _e88 = hedra_end_vertex(_e81, _e84, _e87, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, affine_uv, gouraud); const auto _tmp_2 = _e88; return vs_custom_instancedOutput { _tmp_2.clip, _tmp_2.world, _tmp_2.normal, _tmp_2.uv, _tmp_2.flags, _tmp_2.tangent, _tmp_2.color, _tmp_2.uv2_, _tmp_2.instance_id, _tmp_2.hedra_v0_, _tmp_2.hedra_v1_, _tmp_2.hedra_v2_, _tmp_2.hedra_v3_ }; } metal::float3 _e90 = VERTEX; metal::float4 p1_ = metal::float4(_e90, 1.0); metal::float3 local_32 = metal::float3(metal::dot(inst.row0_, p1_), metal::dot(inst.row1_, p1_), metal::dot(inst.row2_, p1_)); metal::float4x4 _e102 = O.model; metal::float4 world_15 = _e102 * metal::float4(local_32, 1.0); metal::float4x4 _e108 = O.normal; metal::float3 _e110 = NORMAL; metal::float3 n_16 = (_e108 * metal::float4(cofactor * _e110, 0.0)).xyz; metal::float4x4 _e118 = O.model; metal::float3 _e121 = TANGENT; metal::float3 t_11 = (_e118 * metal::float4(metal::float3x3(bx, by, bz) * _e121, 0.0)).xyz; CustomOut _e127 = hedra_end_vertex(world_15, n_16, t_11, _e79, flags_4, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, affine_uv, gouraud); const auto _tmp_3 = _e127; return vs_custom_instancedOutput { _tmp_3.clip, _tmp_3.world, _tmp_3.normal, _tmp_3.uv, _tmp_3.flags, _tmp_3.tangent, _tmp_3.color, _tmp_3.uv2_, _tmp_3.instance_id, _tmp_3.hedra_v0_, _tmp_3.hedra_v1_, _tmp_3.hedra_v2_, _tmp_3.hedra_v3_ }; } struct vs_custom_skinnedInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 normal_2 [[attribute(1)]]; metal::float2 uv_3 [[attribute(2)]]; uint flags_4 [[attribute(3)]]; metal::float4 tangent_1 [[attribute(4)]]; float weight [[attribute(5)]]; metal::uint4 joints [[attribute(12)]]; metal::float4 weights [[attribute(13)]]; metal::float2 uv1_2 [[attribute(10)]]; }; struct vs_custom_skinnedOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; metal::float4 color [[user(loc5), center_perspective]]; metal::float2 uv2_ [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; vertex vs_custom_skinnedOutput vs_custom_skinned( vs_custom_skinnedInput varyings_2 [[stage_in]] , uint vid_2 [[vertex_id]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant SkinU& Skin [[buffer(6)]] , constant HedraParams& hedra_p [[buffer(9)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float4 POSITION = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; int INSTANCE_ID = {}; metal::float4 INSTANCE_CUSTOM = {}; int VERTEX_ID = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const VsIn in_2 = { varyings_2.pos_1, varyings_2.normal_2, varyings_2.uv_3, varyings_2.flags_4, {}, varyings_2.tangent_1, varyings_2.weight }; const SkinIn s = { varyings_2.joints, varyings_2.weights }; const auto uv1_2 = varyings_2.uv1_2; SkinRows _e4 = skin_rows(s, Skin); metal::float4 p_12 = metal::float4(in_2.pos, 1.0); metal::float3 skinned = metal::float3(metal::dot(_e4.r0_, p_12), metal::dot(_e4.r1_, p_12), metal::dot(_e4.r2_, p_12)); metal::float3 bx_1 = metal::float3(_e4.r0_.x, _e4.r1_.x, _e4.r2_.x); metal::float3 by_1 = metal::float3(_e4.r0_.y, _e4.r1_.y, _e4.r2_.y); metal::float3 bz_1 = metal::float3(_e4.r0_.z, _e4.r1_.z, _e4.r2_.z); float det_1 = metal::dot(bx_1, metal::cross(by_1, bz_1)); bool flip_2 = det_1 < 0.0; metal::float3x3 cofactor_1 = metal::float3x3(metal::cross(by_1, bz_1), metal::cross(bz_1, bx_1), metal::cross(bx_1, by_1)); metal::float3 n0_ = metal::normalize((cofactor_1 * in_2.normal) * (flip_2 ? -1.0 : 1.0)); metal::float3 t0_1 = metal::normalize(metal::float3x3(bx_1, by_1, bz_1) * in_2.tangent.xyz); metal::float4x4 _e58 = O.model; metal::float4x4 _e61 = O.normal; metal::float3x3 _e62 = hedra_mat3_(_e61); hedra_matrices(_e58, _e62, G, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD); INSTANCE_ID = 0; INSTANCE_CUSTOM = metal::float4(0.0); hedra_begin_vertex(skinned, n0_, metal::float4(t0_1, in_2.tangent.w), in_2.uv, uv1_2, metal::float4(1.0), vid_2, VERTEX, NORMAL, TANGENT, BINORMAL, POSITION, UV, UV2_, COLOR, VERTEX_ID, MODEL_MATRIX, MODEL_NORMAL_MATRIX); vertex_(G, VERTEX, NORMAL, UV, COLOR, MODEL_NORMAL_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, hedra_p, affine_uv, gouraud); uint flags_5 = in_2.flags | (flip_2 ? F_INSTANCE_MIRRORED : 0u); float _e81 = hedra_tangent_sign(in_2.tangent.w, flip_2, O); bool _e82 = hedra_vertex_space(); if (_e82) { metal::float4 _e83 = hedra_vertex_world(VERTEX, INV_VIEW_MATRIX); metal::float3 _e85 = NORMAL; metal::float3 _e86 = hedra_vertex_dir(_e85, INV_VIEW_MATRIX); metal::float3 _e88 = TANGENT; metal::float3 _e89 = hedra_vertex_dir(_e88, INV_VIEW_MATRIX); CustomOut _e90 = hedra_end_vertex(_e83, _e86, _e89, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, affine_uv, gouraud); const auto _tmp_4 = _e90; return vs_custom_skinnedOutput { _tmp_4.clip, _tmp_4.world, _tmp_4.normal, _tmp_4.uv, _tmp_4.flags, _tmp_4.tangent, _tmp_4.color, _tmp_4.uv2_, _tmp_4.instance_id, _tmp_4.hedra_v0_, _tmp_4.hedra_v1_, _tmp_4.hedra_v2_, _tmp_4.hedra_v3_ }; } metal::float4x4 _e93 = O.model; metal::float3 _e95 = VERTEX; metal::float4 world_16 = _e93 * metal::float4(_e95, 1.0); metal::float4x4 _e101 = O.normal; metal::float3 _e103 = NORMAL; metal::float3 n_17 = (_e101 * metal::float4(_e103, 0.0)).xyz; metal::float4x4 _e110 = O.model; metal::float3 _e112 = TANGENT; metal::float3 t_12 = (_e110 * metal::float4(_e112, 0.0)).xyz; CustomOut _e117 = hedra_end_vertex(world_16, n_17, t_12, _e81, flags_5, G, POSITION, UV, UV2_, COLOR, INSTANCE_ID, affine_uv, gouraud); const auto _tmp_5 = _e117; return vs_custom_skinnedOutput { _tmp_5.clip, _tmp_5.world, _tmp_5.normal, _tmp_5.uv, _tmp_5.flags, _tmp_5.tangent, _tmp_5.color, _tmp_5.uv2_, _tmp_5.instance_id, _tmp_5.hedra_v0_, _tmp_5.hedra_v1_, _tmp_5.hedra_v2_, _tmp_5.hedra_v3_ }; } struct fs_customInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_customOutput { metal::float4 member_3 [[color(0)]]; }; fragment fs_customOutput fs_custom( fs_customInput varyings_3 [[stage_in]] , metal::float4 clip_3 [[position]] , bool facing [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant LitU& Lit [[buffer(1)]] , constant ShadowU& Shadow [[buffer(2)]] , metal::depth2d t_shadow [[texture(0)]] , metal::sampler s_shadow [[sampler(0)]] , constant SkyU& Sky [[buffer(3)]] , metal::texturecube t_radiance [[texture(5)]] , metal::texture2d t_panorama [[texture(6)]] , metal::sampler s_radiance [[sampler(3)]] , metal::sampler s_panorama [[sampler(4)]] , metal::texture2d t_ao [[texture(1)]] , metal::texture2d_array t_lightmap [[texture(7)]] , metal::sampler s_lightmap [[sampler(5)]] , constant ProbeU& Probe [[buffer(4)]] , metal::texture2d t_probes [[texture(8)]] , metal::sampler s_probes [[sampler(6)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] , constant FogU& Fog [[buffer(8)]] , metal::texture2d t_screen [[texture(3)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d albedo_texture [[texture(4)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; float SPECULAR_AMOUNT = {}; metal::float3 LIGHT = {}; metal::float3 LIGHT_COLOR = {}; bool LIGHT_IS_DIRECTIONAL = {}; float ATTENUATION = {}; metal::float3 DIFFUSE_LIGHT = {}; metal::float3 SPECULAR_LIGHT = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const CustomOut in_3 = { clip_3, varyings_3.world_13, varyings_3.normal_2, varyings_3.uv_3, varyings_3.flags_4, {}, varyings_3.tangent_1, varyings_3.color_1, varyings_3.uv2_1, varyings_3.instance_id, {}, varyings_3.hedra_v0_, varyings_3.hedra_v1_, varyings_3.hedra_v2_, varyings_3.hedra_v3_ }; metal::float3 c = {}; hedra_fragment(in_3, facing, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, albedo_texture, SAMPLER_NEAREST_REPEAT, affine_uv, gouraud); bool _e3 = hedra_culled(in_3.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (_e3) { metal::discard_fragment(); } float _e7 = emerge_reveal(in_3.world, in_3.clip.xy, O); if (_e7 <= 0.0) { metal::discard_fragment(); } if (HEDRA_UNSHADED) { metal::float3 _e13 = ALBEDO; metal::float3 _e15 = hedra_world; metal::float3 _e16 = hedra_view_dir(_e15, G); metal::float3 _e17 = hedra_fog(_e13, _e16, G, O, Lit, Sky, t_radiance, s_radiance, Fog, hedra_world); metal::float3 _e18 = tonemap(_e17, Lit); c = _e18; } else { metal::float3 _e20 = hedra_lit(in_3.clip, G, O, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals, Fog, NORMAL, ALBEDO, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SPECULAR_AMOUNT, LIGHT, LIGHT_COLOR, LIGHT_IS_DIRECTIONAL, ATTENUATION, DIFFUSE_LIGHT, SPECULAR_LIGHT, hedra_world, hedra_n_geo, hedra_n); c = _e20; } uint _e24 = Lit.counts.w; if (_e24 == HEDRA_NEVER) { metal::float3 _e27 = c; metal::float3 _e28 = hedra_bindings(t_panorama, s_radiance, s_panorama, t_lightmap, s_lightmap, t_screen); c = _e27 + _e28; } uint _e33 = G.params.x; if (_e33 == SHADE_LIT) { metal::float3 _e36 = c; metal::float3 _e37 = item_fade(_e36, O, Lit); metal::float3 _e38 = emerge_tint(_e37, _e7, O, Lit); c = _e38; } metal::float3 _e39 = c; metal::float4 _e40 = hedra_output(_e39, G, Lit, ALPHA, PREMUL_ALPHA_FACTOR); return fs_customOutput { _e40 }; } struct fs_custom_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; fragment void fs_custom_depth( fs_custom_depthInput varyings_4 [[stage_in]] , metal::float4 clip_4 [[position]] , bool facing_1 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d albedo_texture [[texture(4)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const CustomOut in_4 = { clip_4, varyings_4.world_13, varyings_4.normal_2, varyings_4.uv_3, varyings_4.flags_4, {}, varyings_4.tangent_1, varyings_4.color_1, varyings_4.uv2_1, varyings_4.instance_id, {}, varyings_4.hedra_v0_, varyings_4.hedra_v1_, varyings_4.hedra_v2_, varyings_4.hedra_v3_ }; bool local = {}; bool local_1 = {}; hedra_fragment(in_4, facing_1, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, albedo_texture, SAMPLER_NEAREST_REPEAT, affine_uv, gouraud); if (!(((in_4.flags & F_HIDDEN) != 0u))) { if (HEDRA_ALPHA_SCISSOR) { float _e14 = ALPHA; float _e16 = ALPHA_SCISSOR_THRESHOLD; local_1 = _e14 < _e16; } else { local_1 = false; } bool _e19 = local_1; local = _e19; } else { local = true; } bool _e21 = local; if (_e21) { metal::discard_fragment(); } float _e25 = emerge_reveal(in_4.world, metal::float2(-1.0), O); if (_e25 <= 0.0) { metal::discard_fragment(); } else { return; } } struct fs_custom_idInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_idOutput { metal::float4 id [[color(0)]]; }; fragment fs_custom_idOutput fs_custom_id( fs_custom_idInput varyings_5 [[stage_in]] , metal::float4 clip_5 [[position]] , bool facing_2 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d albedo_texture [[texture(4)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const CustomOut in_5 = { clip_5, varyings_5.world_13, varyings_5.normal_2, varyings_5.uv_3, varyings_5.flags_4, {}, varyings_5.tangent_1, varyings_5.color_1, varyings_5.uv2_1, varyings_5.instance_id, {}, varyings_5.hedra_v0_, varyings_5.hedra_v1_, varyings_5.hedra_v2_, varyings_5.hedra_v3_ }; bool local_2 = {}; IdOut out = {}; hedra_fragment(in_5, facing_2, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, albedo_texture, SAMPLER_NEAREST_REPEAT, affine_uv, gouraud); bool _e3 = hedra_culled(in_5.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_5.world, in_5.clip.xy, O); local_2 = _e10 <= 0.0; } else { local_2 = true; } bool _e14 = local_2; if (_e14) { metal::discard_fragment(); } uint id = O.params.z; uint _e24 = O.params.x; uint _e33 = O.params.y; uint bits = ((_e24 == 1u) ? 1u : 0u) | ((_e33 == 1u) ? 2u : 0u); out.id = metal::float4(static_cast(id & 255u), static_cast((id >> 8u) & 255u), static_cast((id >> 16u) & 255u), static_cast(bits)) / metal::float4(255.0); IdOut _e58 = out; const auto _tmp_6 = _e58; return fs_custom_idOutput { _tmp_6.id }; } struct fs_custom_normal_depthInput { metal::float3 world_13 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float2 uv_3 [[user(loc2), center_perspective]]; uint flags_4 [[user(loc3), flat]]; metal::float4 tangent_1 [[user(loc4), center_perspective]]; metal::float4 color_1 [[user(loc5), center_perspective]]; metal::float2 uv2_1 [[user(loc6), center_perspective]]; uint instance_id [[user(loc7), flat]]; metal::float4 hedra_v0_ [[user(loc8), center_perspective]]; metal::float4 hedra_v1_ [[user(loc9), center_perspective]]; metal::float4 hedra_v2_ [[user(loc10), center_perspective]]; metal::float4 hedra_v3_ [[user(loc11), center_perspective]]; }; struct fs_custom_normal_depthOutput { metal::float4 normal_depth [[color(0)]]; metal::float4 surface [[color(1)]]; }; fragment fs_custom_normal_depthOutput fs_custom_normal_depth( fs_custom_normal_depthInput varyings_6 [[stage_in]] , metal::float4 clip_6 [[position]] , bool facing_3 [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant HedraParams& hedra_p [[buffer(9)]] , metal::texture2d albedo_texture [[texture(4)]] , metal::sampler SAMPLER_NEAREST_REPEAT [[sampler(2)]] ) { metal::float3 VERTEX = {}; metal::float3 NORMAL = {}; metal::float3 TANGENT = {}; metal::float3 BINORMAL = {}; metal::float2 UV = {}; metal::float2 UV2_ = {}; metal::float4 COLOR = {}; metal::float4x4 MODEL_MATRIX = {}; metal::float3x3 MODEL_NORMAL_MATRIX = {}; metal::float4x4 INV_VIEW_MATRIX = {}; metal::float4x4 INV_PROJECTION_MATRIX = {}; metal::float4x4 MODELVIEW_MATRIX = {}; metal::float3x3 MODELVIEW_NORMAL_MATRIX = {}; metal::float3 NODE_POSITION_WORLD = {}; metal::float3 NODE_POSITION_VIEW = {}; metal::float3 CAMERA_DIRECTION_WORLD = {}; metal::float3 LIGHT_VERTEX = {}; metal::float4 FRAGCOORD = {}; bool FRONT_FACING = {}; metal::float3 VIEW = {}; metal::float3 NORMAL_MAP = {}; float NORMAL_MAP_DEPTH = {}; metal::float3 ALBEDO = {}; float ALPHA = {}; float ALPHA_SCISSOR_THRESHOLD = {}; float PREMUL_ALPHA_FACTOR = {}; float METALLIC = {}; float SPECULAR = {}; float ROUGHNESS = {}; float RIM = {}; float RIM_TINT = {}; metal::float3 BACKLIGHT = {}; float AO = {}; float AO_LIGHT_AFFECT = {}; metal::float3 EMISSION = {}; metal::float2 SCREEN_UV = {}; metal::float3 hedra_world = {}; metal::float3 hedra_n_geo = {}; metal::float3 hedra_n = {}; bool hedra_front = {}; metal::float4 affine_uv = {}; metal::float3 gouraud = {}; const CustomOut in_6 = { clip_6, varyings_6.world_13, varyings_6.normal_2, varyings_6.uv_3, varyings_6.flags_4, {}, varyings_6.tangent_1, varyings_6.color_1, varyings_6.uv2_1, varyings_6.instance_id, {}, varyings_6.hedra_v0_, varyings_6.hedra_v1_, varyings_6.hedra_v2_, varyings_6.hedra_v3_ }; bool local_3 = {}; HedraNormalDepthOut out_1 = {}; hedra_fragment(in_6, facing_3, G, O, VERTEX, NORMAL, TANGENT, BINORMAL, UV, UV2_, COLOR, MODEL_MATRIX, MODEL_NORMAL_MATRIX, INV_VIEW_MATRIX, INV_PROJECTION_MATRIX, MODELVIEW_MATRIX, MODELVIEW_NORMAL_MATRIX, NODE_POSITION_WORLD, NODE_POSITION_VIEW, CAMERA_DIRECTION_WORLD, LIGHT_VERTEX, FRAGCOORD, FRONT_FACING, VIEW, NORMAL_MAP, NORMAL_MAP_DEPTH, ALBEDO, ALPHA, ALPHA_SCISSOR_THRESHOLD, PREMUL_ALPHA_FACTOR, METALLIC, SPECULAR, ROUGHNESS, RIM, RIM_TINT, BACKLIGHT, AO, AO_LIGHT_AFFECT, EMISSION, SCREEN_UV, hedra_world, hedra_n_geo, hedra_n, hedra_front, hedra_p, albedo_texture, SAMPLER_NEAREST_REPEAT, affine_uv, gouraud); bool _e3 = hedra_culled(in_6.flags, ALPHA, ALPHA_SCISSOR_THRESHOLD, hedra_front); if (!(_e3)) { float _e10 = emerge_reveal(in_6.world, in_6.clip.xy, O); local_3 = _e10 <= 0.0; } else { local_3 = true; } bool _e14 = local_3; if (_e14) { metal::discard_fragment(); } metal::float4x4 _e17 = G.view; metal::float3x3 _e18 = hedra_mat3_(_e17); metal::float3 _e20 = hedra_n; metal::float3 n_view = metal::normalize(_e18 * _e20); float _e24 = METALLIC; float metallic_2 = metal::clamp(_e24, 0.0, 1.0); float _e29 = SPECULAR; float _e33 = SPECULAR; metal::float3 _e37 = ALBEDO; metal::float3 f0_5 = metal::mix(metal::float3((0.16 * _e29) * _e33), _e37, metallic_2); metal::float4x4 _e43 = G.view; out_1.normal_depth = metal::float4(n_view, -((_e43 * metal::float4(in_6.world, 1.0)).z)); float _e58 = ROUGHNESS; out_1.surface = metal::float4(metal::clamp(f0_5, metal::float3(0.0), metal::float3(1.0)), metal::clamp(_e58, 0.045, 1.0)); HedraNormalDepthOut _e63 = out_1; const auto _tmp_7 = _e63; return fs_custom_normal_depthOutput { _tmp_7.normal_depth, _tmp_7.surface }; }  @Ð Ð/ ,@  �{Ðþ—4ÌhÜäF‚�SKw;‰¡ŠÝ‘šçkíVã›c vs_custommain=struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float alpha_cut; float hedra_pad0; float2 snap_resolution; float affine_strength; float affine_near; float3 sun_direction; float hedra_pad1; float3 sun_color; float hedra_pad2; float3 sky_ambient; float hedra_pad3; float3 ground_ambient; float light_bands; float3 emission; float overbright; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1452 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1303 = transpose(hedra_mat3(m)); return float4x4(float4(_1303[0], 0.0f), float4(_1303[1], 0.0f), float4(_1303[2], 0.0f), float4(-mul(m[3].xyz, _1303), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1409 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1409 = false; } else { _1409 = false; } if (_1409) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } float3 scene_to_frame(float3 v) { return float3(v.x, -v.z, v.y); } float4 snap_view(float4 view_pos) { if (hedra_p_1_m0.snap_resolution.x <= 0.0f) { return view_pos; } float4 _1158 = mul(view_pos, G_1_m0.proj); if (_1158.w <= 9.9999997473787516355514526367188e-05f) { return view_pos; } float2 _1165 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1179 = mul(float4((round((_1158.xy / float2(_1158.ww)) * _1165) / _1165) * _1158.w, _1158.zw), INV_PROJECTION_MATRIX); return float4(_1179.xyz / float3(_1179.www), 1.0f); } void vertex() { float diffuse = 0.0f; float3 _1197 = normalize(mul(NORMAL, MODEL_NORMAL_MATRIX)); diffuse = max(dot(_1197, normalize(scene_to_frame(hedra_p_1_m0.sun_direction))), 0.0f); if (hedra_p_1_m0.light_bands >= 2.0f) { diffuse = floor((diffuse * hedra_p_1_m0.light_bands) + 0.5f) / hedra_p_1_m0.light_bands; } float _1227 = (_1197.z * 0.5f) + 0.5f; gouraud = (((lerp(hedra_p_1_m0.ground_ambient, hedra_p_1_m0.sky_ambient, float3(_1227, _1227, _1227)) + (hedra_p_1_m0.sun_color * diffuse)) * COLOR.xyz) * hedra_p_1_m0.overbright) + hedra_p_1_m0.emission; float4 _1251 = snap_view(mul(float4(VERTEX, 1.0f), MODELVIEW_MATRIX)); VERTEX = _1251.xyz; NORMAL = normalize(mul(NORMAL, MODELVIEW_NORMAL_MATRIX)); float2 _1257 = UV; float2 _1269 = ((_1257 * hedra_p_1_m0.uv_scale) + hedra_p_1_m0.uv_offset) + (hedra_p_1_m0.uv_scroll * G_1_m0.fparams.w); UV = _1269; float4 _1272 = mul(_1251, G_1_m0.proj); float _1273 = _1272.w; affine_uv = float4(_1269 * _1273, _1273, hedra_p_1_m0.affine_strength * clamp((_1273 - 0.25f) / max(hedra_p_1_m0.affine_near, 0.001000000047497451305389404296875f), 0.0f, 1.0f)); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1486 = false; if (false) { _1486 = false; } else { _1486 = true; } return _1486; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = affine_uv; o.hedra_v1 = float4(gouraud, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1452; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1682 = { pos, normal, uv, flags, tangent, weight }; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(_1682.pos, _1682.normal, _1682.tangent, _1682.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); float _1740 = hedra_tangent_sign(_1682.tangent.w, false); if (hedra_vertex_space()) { CustomOut _1750 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1740, _1682.flags); gl_Position = _1750.clip; world = _1750.world; normal_1 = _1750.normal; uv_1 = _1750.uv; flags_1 = _1750.flags; tangent_1 = _1750.tangent; color = _1750.color; uv2 = _1750.uv2; instance_id = _1750.instance_id; hedra_v0 = _1750.hedra_v0; hedra_v1 = _1750.hedra_v1; hedra_v2 = _1750.hedra_v2; hedra_v3 = _1750.hedra_v3; return; } CustomOut _1782 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1740, _1682.flags); gl_Position = _1782.clip; world = _1782.world; normal_1 = _1782.normal; uv_1 = _1782.uv; flags_1 = _1782.flags; tangent_1 = _1782.tangent; color = _1782.color; uv2 = _1782.uv2; instance_id = _1782.instance_id; hedra_v0 = _1782.hedra_v0; hedra_v1 = _1782.hedra_v1; hedra_v2 = _1782.hedra_v2; hedra_v3 = _1782.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_instancedmain7Bstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float alpha_cut; float hedra_pad0; float2 snap_resolution; float affine_strength; float affine_near; float3 sun_direction; float hedra_pad1; float3 sun_color; float hedra_pad2; float3 sky_ambient; float hedra_pad3; float3 ground_ambient; float light_bands; float3 emission; float overbright; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const CustomOut _1452 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 row0; static float4 row1; static float4 row2; static float4 color; static float2 uv1; static float4 custom; static float id; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color_1; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 row0 : TEXCOORD6; float4 row1 : TEXCOORD7; float4 row2 : TEXCOORD8; float4 color : TEXCOORD9; float2 uv1 : TEXCOORD10; float4 custom : TEXCOORD14; float id : TEXCOORD15; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color_1 : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1303 = transpose(hedra_mat3(m)); return float4x4(float4(_1303[0], 0.0f), float4(_1303[1], 0.0f), float4(_1303[2], 0.0f), float4(-mul(m[3].xyz, _1303), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_2, uint vid) { bool _1409 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_2; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1409 = false; } else { _1409 = false; } if (_1409) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } float3 scene_to_frame(float3 v) { return float3(v.x, -v.z, v.y); } float4 snap_view(float4 view_pos) { if (hedra_p_1_m0.snap_resolution.x <= 0.0f) { return view_pos; } float4 _1158 = mul(view_pos, G_1_m0.proj); if (_1158.w <= 9.9999997473787516355514526367188e-05f) { return view_pos; } float2 _1165 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1179 = mul(float4((round((_1158.xy / float2(_1158.ww)) * _1165) / _1165) * _1158.w, _1158.zw), INV_PROJECTION_MATRIX); return float4(_1179.xyz / float3(_1179.www), 1.0f); } void vertex() { float diffuse = 0.0f; float3 _1197 = normalize(mul(NORMAL, MODEL_NORMAL_MATRIX)); diffuse = max(dot(_1197, normalize(scene_to_frame(hedra_p_1_m0.sun_direction))), 0.0f); if (hedra_p_1_m0.light_bands >= 2.0f) { diffuse = floor((diffuse * hedra_p_1_m0.light_bands) + 0.5f) / hedra_p_1_m0.light_bands; } float _1227 = (_1197.z * 0.5f) + 0.5f; gouraud = (((lerp(hedra_p_1_m0.ground_ambient, hedra_p_1_m0.sky_ambient, float3(_1227, _1227, _1227)) + (hedra_p_1_m0.sun_color * diffuse)) * COLOR.xyz) * hedra_p_1_m0.overbright) + hedra_p_1_m0.emission; float4 _1251 = snap_view(mul(float4(VERTEX, 1.0f), MODELVIEW_MATRIX)); VERTEX = _1251.xyz; NORMAL = normalize(mul(NORMAL, MODELVIEW_NORMAL_MATRIX)); float2 _1257 = UV; float2 _1269 = ((_1257 * hedra_p_1_m0.uv_scale) + hedra_p_1_m0.uv_offset) + (hedra_p_1_m0.uv_scroll * G_1_m0.fparams.w); UV = _1269; float4 _1272 = mul(_1251, G_1_m0.proj); float _1273 = _1272.w; affine_uv = float4(_1269 * _1273, _1273, hedra_p_1_m0.affine_strength * clamp((_1273 - 0.25f) / max(hedra_p_1_m0.affine_near, 0.001000000047497451305389404296875f), 0.0f, 1.0f)); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1486 = false; if (false) { _1486 = false; } else { _1486 = true; } return _1486; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = affine_uv; o.hedra_v1 = float4(gouraud, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1452; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1682 = { pos, normal, uv, flags, tangent, weight }; InstIn _1700 = { row0, row1, row2, color }; HedraInstExtra _1711 = { custom, id }; float3 _1746 = float3(_1700.row0.x, _1700.row1.x, _1700.row2.x); float3 _1753 = float3(_1700.row0.y, _1700.row1.y, _1700.row2.y); float3 _1760 = float3(_1700.row0.z, _1700.row1.z, _1700.row2.z); bool _1763 = dot(_1746, cross(_1753, _1760)) < 0.0f; float3x3 _1769 = float3x3(cross(_1753, _1760), cross(_1760, _1746), cross(_1746, _1753)) * (_1763 ? (-1.0f) : 1.0f); hedra_matrices(mul(float4x4(float4(_1746, 0.0f), float4(_1753, 0.0f), float4(_1760, 0.0f), float4(_1700.row0.w, _1700.row1.w, _1700.row2.w, 1.0f)), O_1_m0.model), mul(_1769, hedra_mat3(O_1_m0.normal))); INSTANCE_ID = int(clamp(_1711.id, -2147483648.0f, 2147483520.0f)); INSTANCE_CUSTOM = _1711.custom; hedra_begin_vertex(_1682.pos, _1682.normal, _1682.tangent, _1682.uv, uv1, _1700.color, uint(gl_VertexIndex)); vertex(); uint _1804 = _1682.flags | (_1763 ? 128u : 0u); float _1807 = hedra_tangent_sign(_1682.tangent.w, _1763); if (hedra_vertex_space()) { CustomOut _1816 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1807, _1804); gl_Position = _1816.clip; world = _1816.world; normal_1 = _1816.normal; uv_1 = _1816.uv; flags_1 = _1816.flags; tangent_1 = _1816.tangent; color_1 = _1816.color; uv2 = _1816.uv2; instance_id = _1816.instance_id; hedra_v0 = _1816.hedra_v0; hedra_v1 = _1816.hedra_v1; hedra_v2 = _1816.hedra_v2; hedra_v3 = _1816.hedra_v3; return; } float4 _1831 = float4(VERTEX, 1.0f); CustomOut _1858 = hedra_end_vertex(mul(float4(float3(dot(_1700.row0, _1831), dot(_1700.row1, _1831), dot(_1700.row2, _1831)), 1.0f), O_1_m0.model), mul(float4(mul(NORMAL, _1769), 0.0f), O_1_m0.normal).xyz, mul(float4(mul(TANGENT, float3x3(_1746, _1753, _1760)), 0.0f), O_1_m0.model).xyz, _1807, _1804); gl_Position = _1858.clip; world = _1858.world; normal_1 = _1858.normal; uv_1 = _1858.uv; flags_1 = _1858.flags; tangent_1 = _1858.tangent; color_1 = _1858.color; uv2 = _1858.uv2; instance_id = _1858.instance_id; hedra_v0 = _1858.hedra_v0; hedra_v1 = _1858.hedra_v1; hedra_v2 = _1858.hedra_v2; hedra_v3 = _1858.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; row0 = stage_input.row0; row1 = stage_input.row1; row2 = stage_input.row2; color = stage_input.color; uv1 = stage_input.uv1; custom = stage_input.custom; id = stage_input.id; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color_1 = color_1; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; } vs_custom_skinnedmainýCstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float alpha_cut; float hedra_pad0; float2 snap_resolution; float affine_strength; float affine_near; float3 sun_direction; float hedra_pad1; float3 sun_color; float hedra_pad2; float3 sky_ambient; float hedra_pad3; float3 ground_ambient; float light_bands; float3 emission; float overbright; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const SkinRows _1139 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const CustomOut _1544 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Skin : register(b6) { SkinU Skin_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static uint4 joints; static float4 weights; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; uint4 joints : TEXCOORD12; float4 weights : TEXCOORD13; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_Position : SV_Position; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float4 POSITION = float4(0.0f, 0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static int INSTANCE_ID = 0; static float4 INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); static int VERTEX_ID = 0; static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); float4 skin_row(uint k, uint r) { return Skin_1_m0.rows[min(((min(k, 254u) * 3u) + r), 764u)]; } SkinRows skin_rows(SkinIn s) { SkinRows m = _1139; m.r0 = (((skin_row(s.joints.x, 0u) * s.weights.x) + (skin_row(s.joints.y, 0u) * s.weights.y)) + (skin_row(s.joints.z, 0u) * s.weights.z)) + (skin_row(s.joints.w, 0u) * s.weights.w); m.r1 = (((skin_row(s.joints.x, 1u) * s.weights.x) + (skin_row(s.joints.y, 1u) * s.weights.y)) + (skin_row(s.joints.z, 1u) * s.weights.z)) + (skin_row(s.joints.w, 1u) * s.weights.w); m.r2 = (((skin_row(s.joints.x, 2u) * s.weights.x) + (skin_row(s.joints.y, 2u) * s.weights.y)) + (skin_row(s.joints.z, 2u) * s.weights.z)) + (skin_row(s.joints.w, 2u) * s.weights.w); return m; } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1395 = transpose(hedra_mat3(m)); return float4x4(float4(_1395[0], 0.0f), float4(_1395[1], 0.0f), float4(_1395[2], 0.0f), float4(-mul(m[3].xyz, _1395), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_2) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_2; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_2, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } float2 hedra_godot_uv(float2 uv_2) { return float2(uv_2.x, 1.0f - uv_2.y); } void hedra_begin_vertex(float3 pos_1, float3 normal_2, float4 tangent_2, float2 uv_2, float2 uv2_1, float4 color_1, uint vid) { bool _1501 = false; VERTEX = pos_1; NORMAL = normal_2; TANGENT = tangent_2.xyz; BINORMAL = cross(normal_2, tangent_2.xyz) * tangent_2.w; UV = hedra_godot_uv(uv_2); UV2 = hedra_godot_uv(uv2_1); COLOR = color_1; VERTEX_ID = int(vid); POSITION = float4(1.0f, 1.0f, 1.0f, 1.0f); if (false) { _1501 = false; } else { _1501 = false; } if (_1501) { VERTEX = mul(float4(VERTEX, 1.0f), MODEL_MATRIX).xyz; NORMAL = mul(NORMAL, MODEL_NORMAL_MATRIX); TANGENT = mul(TANGENT, MODEL_NORMAL_MATRIX); BINORMAL = mul(BINORMAL, MODEL_NORMAL_MATRIX); return; } else { return; } } float3 scene_to_frame(float3 v) { return float3(v.x, -v.z, v.y); } float4 snap_view(float4 view_pos) { if (hedra_p_1_m0.snap_resolution.x <= 0.0f) { return view_pos; } float4 _1250 = mul(view_pos, G_1_m0.proj); if (_1250.w <= 9.9999997473787516355514526367188e-05f) { return view_pos; } float2 _1257 = hedra_p_1_m0.snap_resolution * 0.5f; float4 _1271 = mul(float4((round((_1250.xy / float2(_1250.ww)) * _1257) / _1257) * _1250.w, _1250.zw), INV_PROJECTION_MATRIX); return float4(_1271.xyz / float3(_1271.www), 1.0f); } void vertex() { float diffuse = 0.0f; float3 _1289 = normalize(mul(NORMAL, MODEL_NORMAL_MATRIX)); diffuse = max(dot(_1289, normalize(scene_to_frame(hedra_p_1_m0.sun_direction))), 0.0f); if (hedra_p_1_m0.light_bands >= 2.0f) { diffuse = floor((diffuse * hedra_p_1_m0.light_bands) + 0.5f) / hedra_p_1_m0.light_bands; } float _1319 = (_1289.z * 0.5f) + 0.5f; gouraud = (((lerp(hedra_p_1_m0.ground_ambient, hedra_p_1_m0.sky_ambient, float3(_1319, _1319, _1319)) + (hedra_p_1_m0.sun_color * diffuse)) * COLOR.xyz) * hedra_p_1_m0.overbright) + hedra_p_1_m0.emission; float4 _1343 = snap_view(mul(float4(VERTEX, 1.0f), MODELVIEW_MATRIX)); VERTEX = _1343.xyz; NORMAL = normalize(mul(NORMAL, MODELVIEW_NORMAL_MATRIX)); float2 _1349 = UV; float2 _1361 = ((_1349 * hedra_p_1_m0.uv_scale) + hedra_p_1_m0.uv_offset) + (hedra_p_1_m0.uv_scroll * G_1_m0.fparams.w); UV = _1361; float4 _1364 = mul(_1343, G_1_m0.proj); float _1365 = _1364.w; affine_uv = float4(_1361 * _1365, _1365, hedra_p_1_m0.affine_strength * clamp((_1365 - 0.25f) / max(hedra_p_1_m0.affine_near, 0.001000000047497451305389404296875f), 0.0f, 1.0f)); } float hedra_tangent_sign(float w, bool flip) { return w * ((((O_1_m0.extra.x & 2u) != 0u) != flip) ? (-1.0f) : 1.0f); } bool hedra_vertex_space() { bool _1578 = false; if (false) { _1578 = false; } else { _1578 = true; } return _1578; } float4 hedra_vertex_world() { if (true) { return mul(float4(VERTEX, 1.0f), INV_VIEW_MATRIX); } return float4(VERTEX, 1.0f); } float3 hedra_vertex_dir(float3 d) { if (true) { return mul(d, hedra_mat3(INV_VIEW_MATRIX)); } return d; } void hedra_store_varyings(inout CustomOut o) { o.hedra_v0 = affine_uv; o.hedra_v1 = float4(gouraud, 0.0f); } CustomOut hedra_end_vertex(float4 world_1, float3 n, float3 t, float tw, uint flags_2) { CustomOut _out = _1544; _out.clip = mul(world_1, G_1_m0.view_proj); if (false) { _out.clip = POSITION; } _out.world = world_1.xyz; _out.normal = normalize(n); _out.uv = UV; _out.flags = flags_2; _out.tangent = float4(normalize(t), tw); _out.color = COLOR; _out.uv2 = UV2; _out.instance_id = uint(max(INSTANCE_ID, 0)); hedra_store_varyings(_out); return _out; } void vert_main() { VsIn _1774 = { pos, normal, uv, flags, tangent, weight }; SkinIn _1792 = { joints, weights }; SkinRows _1825 = skin_rows(_1792); float4 _1827 = float4(_1774.pos, 1.0f); float3 _1841 = float3(_1825.r0.x, _1825.r1.x, _1825.r2.x); float3 _1848 = float3(_1825.r0.y, _1825.r1.y, _1825.r2.y); float3 _1855 = float3(_1825.r0.z, _1825.r1.z, _1825.r2.z); bool _1858 = dot(_1841, cross(_1848, _1855)) < 0.0f; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); INSTANCE_ID = 0; INSTANCE_CUSTOM = float4(0.0f, 0.0f, 0.0f, 0.0f); hedra_begin_vertex(float3(dot(_1825.r0, _1827), dot(_1825.r1, _1827), dot(_1825.r2, _1827)), normalize(mul(_1774.normal, float3x3(cross(_1848, _1855), cross(_1855, _1841), cross(_1841, _1848))) * (_1858 ? (-1.0f) : 1.0f)), float4(normalize(mul(_1774.tangent.xyz, float3x3(_1841, _1848, _1855))), _1774.tangent.w), _1774.uv, uv1, float4(1.0f, 1.0f, 1.0f, 1.0f), uint(gl_VertexIndex)); vertex(); uint _1887 = _1774.flags | (_1858 ? 128u : 0u); float _1890 = hedra_tangent_sign(_1774.tangent.w, _1858); if (hedra_vertex_space()) { CustomOut _1899 = hedra_end_vertex(hedra_vertex_world(), hedra_vertex_dir(NORMAL), hedra_vertex_dir(TANGENT), _1890, _1887); gl_Position = _1899.clip; world = _1899.world; normal_1 = _1899.normal; uv_1 = _1899.uv; flags_1 = _1899.flags; tangent_1 = _1899.tangent; color = _1899.color; uv2 = _1899.uv2; instance_id = _1899.instance_id; hedra_v0 = _1899.hedra_v0; hedra_v1 = _1899.hedra_v1; hedra_v2 = _1899.hedra_v2; hedra_v3 = _1899.hedra_v3; return; } CustomOut _1930 = hedra_end_vertex(mul(float4(VERTEX, 1.0f), O_1_m0.model), mul(float4(NORMAL, 0.0f), O_1_m0.normal).xyz, mul(float4(TANGENT, 0.0f), O_1_m0.model).xyz, _1890, _1887); gl_Position = _1930.clip; world = _1930.world; normal_1 = _1930.normal; uv_1 = _1930.uv; flags_1 = _1930.flags; tangent_1 = _1930.tangent; color = _1930.color; uv2 = _1930.uv2; instance_id = _1930.instance_id; hedra_v0 = _1930.hedra_v0; hedra_v1 = _1930.hedra_v1; hedra_v2 = _1930.hedra_v2; hedra_v3 = _1930.hedra_v3; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; joints = stage_input.joints; weights = stage_input.weights; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.color = color; stage_output.uv2 = uv2; stage_output.instance_id = instance_id; stage_output.hedra_v0 = hedra_v0; stage_output.hedra_v1 = hedra_v1; stage_output.hedra_v2 = hedra_v2; stage_output.hedra_v3 = hedra_v3; return stage_output; }  fs_custommain�@struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float alpha_cut; float hedra_pad0; float2 snap_resolution; float affine_strength; float affine_near; float3 sun_direction; float hedra_pad1; float3 sun_color; float hedra_pad2; float3 sky_ambient; float hedra_pad3; float3 ground_ambient; float light_bands; float3 emission; float overbright; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _567 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const uint _2653[4] = { 0u, 0u, 0u, 0u }; static const float2 _2656[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _2663[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const DecalSurface _4910 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Shadow : register(b2) { ShadowU Shadow_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Probe : register(b4) { ProbeU Probe_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D t_shadow : register(t0); SamplerComparisonState s_shadow : register(s0); TextureCube t_radiance : register(t5); Texture2D t_panorama : register(t6); SamplerState s_radiance : register(s3); SamplerState s_panorama : register(s4); Texture2D t_ao : register(t1); Texture2DArray t_lightmap : register(t7); SamplerState s_lightmap : register(s5); Texture2D t_probes : register(t8); SamplerState s_probes : register(s6); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); Texture2D t_screen : register(t3); Texture2D albedo_texture : register(t4); SamplerState SAMPLER_NEAREST_REPEAT : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 _5306; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 _5306 : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float SPECULAR_AMOUNT = 0.0f; static float3 LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_COLOR = float3(0.0f, 0.0f, 0.0f); static bool LIGHT_IS_DIRECTIONAL = false; static float ATTENUATION = 0.0f; static float3 DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint spvPackUnorm4x8(float4 value) { uint4 Packed = uint4(round(saturate(value) * 255.0)); return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); } float4 spvUnpackUnorm4x8(uint value) { uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); return float4(Packed) / 255.0; } bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _3987 = transpose(hedra_mat3(m)); return float4x4(float4(_3987[0], 0.0f), float4(_3987[1], 0.0f), float4(_3987[2], 0.0f), float4(-mul(m[3].xyz, _3987), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { affine_uv = i.hedra_v0; gouraud = i.hedra_v1.xyz; } void fragment() { float _3945 = max(affine_uv.z, 9.9999997473787516355514526367188e-05f); float _3951 = clamp(affine_uv.w, 0.0f, 1.0f); float4 _3955 = albedo_texture.Sample(SAMPLER_NEAREST_REPEAT, lerp(UV, affine_uv.xy / float2(_3945, _3945), float2(_3951, _3951))); ALBEDO = (_3955.xyz * hedra_p_1_m0.albedo.xyz) * gouraud; ALPHA = _3955.w * hedra_p_1_m0.albedo.w; ALPHA_SCISSOR_THRESHOLD = hedra_p_1_m0.alpha_cut; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _4146 = facing != hedra_mirrored(_in.flags); hedra_front = _4146; FRONT_FACING = _4146; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _4162 = hedra_mat3(G_1_m0.view); float3 _4165 = -normalize(_in.normal); float3 _4167 = normalize(_in.normal); bool3 _4169 = bool3(_4146, _4146, _4146); float3 _4168 = float3(_4169.x ? _4167.x : _4165.x, _4169.y ? _4167.y : _4165.y, _4169.z ? _4167.z : _4165.z); hedra_n_geo = _4168; hedra_n = _4168; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_4168 * dot(_4168, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _4191 = VERTEX; NORMAL = normalize(mul(_4168, _4162)); float3 _4194 = NORMAL; TANGENT = normalize(mul(t, _4162)); BINORMAL = normalize(mul(cross(_4168, t) * _in.tangent.w, _4162)); float3 _4202 = normalize(-VERTEX); bool _4205 = G_1_m0.camera_pos.w > 0.5f; bool3 _4207 = bool3(_4205, _4205, _4205); VIEW = float3(_4207.x ? float3(0.0f, 0.0f, 1.0f).x : _4202.x, _4207.y ? float3(0.0f, 0.0f, 1.0f).y : _4202.y, _4207.z ? float3(0.0f, 0.0f, 1.0f).z : _4202.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _4213 = transpose(_4162); if (any(bool3(NORMAL.x != _4194.x, NORMAL.y != _4194.y, NORMAL.z != _4194.z))) { hedra_n = normalize(mul(NORMAL, _4213)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _4213)); } if (any(bool3(LIGHT_VERTEX.x != _4191.x, LIGHT_VERTEX.y != _4191.y, LIGHT_VERTEX.z != _4191.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _4278 = false; bool _4280 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _4278 = hedra_front; } else { _4278 = false; } if (_4278) { return true; } if (true) { _4280 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _4280 = false; } return _4280; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _1145 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_1145, _1145, _1145); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _1170 = floor(p); float3 _1171 = frac(p); float3 _1175 = (_1171 * _1171) * (float3(3.0f, 3.0f, 3.0f) - (_1171 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_1170), emerge_hash(_1170 + float3(1.0f, 0.0f, 0.0f)), _1175.x), lerp(emerge_hash(_1170 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_1170 + float3(1.0f, 1.0f, 0.0f)), _1175.x), _1175.y), lerp(lerp(emerge_hash(_1170 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_1170 + float3(1.0f, 0.0f, 1.0f)), _1175.x), lerp(emerge_hash(_1170 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_1170 + float3(1.0f, 1.0f, 1.0f)), _1175.x), _1175.y), _1175.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1232 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1232) * 0.64999997615814208984375f) + (emerge_noise((_1232 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } float3 hedra_view_dir(float3 world_1) { float3 _4317 = normalize(G_1_m0.camera_pos.xyz - world_1); float3 _4318 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _4321 = G_1_m0.camera_pos.w > 0.5f; bool3 _4323 = bool3(_4321, _4321, _4321); return float3(_4323.x ? _4318.x : _4317.x, _4323.y ? _4318.y : _4317.y, _4323.z ? _4318.z : _4317.z); } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float3 radiance(float3 d, float roughness) { return t_radiance.SampleLevel(s_radiance, d, roughness * float(max(Sky_1_m0.flags.y, 1u) - 1u)).xyz; } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _1605 = max(x, 0.0f) * max(x, 0.0f); float _1606 = _1605 * _1605; return _1606 * _1606; } float3 fog_sun_scatter(float3 fc, float3 dir) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _1625 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _1625)) { break; } uint _1648 = pool_sun(k); if (Lit_1_m0.lights[min(_1648, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_1648, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir, -Lit_1_m0.lights[min(_1648, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 surface_fog(float3 c, float3 world_1, float3 dir) { float amount = 0.0f; bool _1715 = false; float dist = 0.0f; float3 fc = float3(0.0f, 0.0f, 0.0f); float _1723 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; dist = distance(world_1, G_1_m0.camera_pos.xyz); if (Sky_1_m0.fog_origin.w > 0.5f) { dist = max(_1723 - Sky_1_m0.fog_origin.x, 0.0f); } if ((Sky_1_m0.flags.x & 256u) != 0u) { float _1750 = smoothstep(Sky_1_m0.fog_depth.x, Sky_1_m0.fog_depth.y, dist); amount = ((_1750 > 0.0f) ? pow(max(_1750, 9.9999999747524270787835121154785e-07f), Sky_1_m0.fog_depth.z) : 0.0f) * Sky_1_m0.fog.x; } else { amount = 1.0f - exp(min(0.0f, (-dist) * Sky_1_m0.fog.x)); } if (abs(Sky_1_m0.fog.w) >= 9.9999997473787516355514526367188e-05f) { amount = max(amount, 1.0f - exp(min(0.0f, (dot(world_1, Lit_1_m0.up.xyz) - Sky_1_m0.fog.z) * Sky_1_m0.fog.w))); } amount = clamp(amount, 0.0f, 1.0f); fc = Sky_1_m0.fog_color.xyz; if ((Sky_1_m0.flags.x & 8u) != 0u) { _1715 = Sky_1_m0.fog_depth.w > 0.0f; } else { _1715 = false; } if (true ? _1715 : false) { fc = lerp(fc, radiance(sky_dir(dir), lerp(1.0f / float(max(Sky_1_m0.flags.y, 2u) - 1u), 1.0f, 1.0f - clamp((_1723 - Sky_1_m0.fog_origin.y) / max(Sky_1_m0.fog_origin.z - Sky_1_m0.fog_origin.y, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f))) * Sky_1_m0.sun.w, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)); } fc = fog_sun_scatter(fc, dir); return lerp(c, fc, float3(amount, amount, amount)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _1869 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _1873 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_1869 == 4u) { return float2(0.0f, _1873); } float3 _1882 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _1883 = abs(d); bool3 _1884 = bool3(_1883.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _1883.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _1883.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _1885 = float3(_1884.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _1884.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _1884.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _1888 = ((-_1882) - o) / _1885; float3 _1890 = (_1882 - o) / _1885; float3 _1891 = min(_1888, _1890); float3 _1892 = max(_1888, _1890); r = float2(max(0.0f, _1891.y), min(_1873, _1892.y)); if (_1869 == 3u) { r = float2(max(max(r.x, _1891.x), _1891.z), min(min(r.y, _1892.x), _1892.z)); } else { if (_1869 == 0u) { a = dot(d / _1882, d / _1882); b = dot(o / _1882, d / _1882); c = dot(o / _1882, o / _1882) - 1.0f; } else { float _1931 = min(_1882.x, _1882.z); float _1936 = (_1869 == 1u) ? (_1931 / (2.0f * _1882.y)) : 0.0f; float _1939 = _1882.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_1936 * _1936) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_1936 * _1936) * _1939) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_1869 == 1u) ? (((_1936 * _1936) * _1939) * _1939) : (_1931 * _1931)); } } float _1985 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_1985 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _2049 = min(((-b) - sqrt(_1985)) / a, ((-b) + sqrt(_1985)) / a); float _2062 = max(((-b) - sqrt(_1985)) / a, ((-b) + sqrt(_1985)) / a); if (a > 0.0f) { r = float2(max(r.x, _2049), min(r.y, _2062)); } else { if (r.x < min(r.y, _2049)) { r.y = min(r.y, _2049); } else { r.x = max(r.x, _2062); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _2106 = min(k, 15u); rho = Fog_1_m0.entries[_2106].material.x * min(exp2((-Fog_1_m0.entries[_2106].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2106].material.w)), 1.0f); if (Fog_1_m0.entries[_2106].material.z > 0.0f) { uint _2133 = uint(clamp(Fog_1_m0.entries[_2106].albedo.w, 0.0f, 4294967040.0f)); float3 _2136 = Fog_1_m0.entries[_2106].size.xyz * 0.5f; float _2139 = min(_2136.x, _2136.z); if (_2133 == 0u) { float _2145 = length(lp / _2136); sdf = (_2145 * (_2145 - 1.0f)) / max(length(lp / (_2136 * _2136)), 9.9999999600419720025001879548654e-13f); } else { if (_2133 == 3u) { float3 _2158 = abs(lp) - _2136; sdf = length(max(_2158, float3(0.0f, 0.0f, 0.0f))) + min(max(_2158.x, max(_2158.y, _2158.z)), 0.0f); } else { if (_2133 == 2u) { float2 _2179 = float2(length(lp.xz) - _2139, abs(lp.y) - _2136.y); sdf = min(max(_2179.x, _2179.y), 0.0f) + length(max(_2179, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _2139 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _2136.y))), float2(length(lp.xz), lp.y - _2136.y)), (-_2136.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_2106].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_2106].material.z); } return rho; } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float3 fog_light(uint n, float3 p, float3 dir) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _2341 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_2341].lights.z, 8u))) { break; } uint _2377 = min(((((k < 4u) ? Fog_1_m0.entries[_2341].lights.x : Fog_1_m0.entries[_2341].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _2378 = min(_2377, 63u); l = -Lit_1_m0.lights[_2378].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_2378].info.x != 0u) { float3 _2391 = Lit_1_m0.lights[_2378].position.xyz - p; float _2393 = max(length(_2391), 9.9999999747524270787835121154785e-07f); l = _2391 / float3(_2393, _2393, _2393); atten = omni_attenuation(length(_2391), Lit_1_m0.lights[_2378].position.w, Lit_1_m0.lights[_2378].direction.w); if (Lit_1_m0.lights[_2378].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_2378].direction.xyz), Lit_1_m0.lights[_2378].spot.x)) / max(1.0f - Lit_1_m0.lights[_2378].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_2378].spot.y)); } } float _2434 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir, l)); sum += (Lit_1_m0.lights[_2378].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _2434) * sqrt(_2434))) * Fog_1_m0.light_fog[min((_2377 >> 2u), 15u)][min((_2377 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _2232 = min(k, 15u); if ((Fog_1_m0.entries[_2232].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_2232].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_2232].material.y) * a), 1.0f); } float _2250 = clamp((-a) / b, t0, t1); float _2252 = (b > 0.0f) ? _2250 : t0; float _2254 = (b > 0.0f) ? t1 : _2250; float _2259 = ((Fog_1_m0.entries[_2232].material.y * abs(b)) * (_2254 - _2252)) * 0.693147182464599609375f; return Fog_1_m0.entries[_2232].material.x * (((t1 - t0) - (_2254 - _2252)) + ((min(exp2((-Fog_1_m0.entries[_2232].material.y) * max(a + (b * ((b > 0.0f) ? _2252 : _2254)), 0.0f)), 1.0f) * (_2254 - _2252)) * ((_2259 < 0.00999999977648258209228515625f) ? (1.0f - (_2259 * (0.5f - (_2259 * (0.16666667163372039794921875f - (_2259 / 24.0f)))))) : ((1.0f - exp(-_2259)) / _2259)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _2477 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _2479 = false; float tau = 0.0f; bool _2470 = false; uint i = 0u; bool _2472 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _2482 = min(k, 15u); float3 _2488 = mul(float4(o, 1.0f), Fog_1_m0.entries[_2482].to_local).xyz; float3 _2492 = mul(float4(d, 0.0f), Fog_1_m0.entries[_2482].to_local).xyz; float _2499 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2482].material.w; float _2503 = dot(d, Fog_1_m0.up.xyz); bool _2506 = Fog_1_m0.entries[_2482].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_2482].material.y > 0.0f) { _2470 = ((-_2499) / _2503) > ch.x; } else { _2470 = false; } if (_2470) { _2472 = ((-_2499) / _2503) < ch.y; } else { _2472 = false; } if (_2472) { split = (-_2499) / _2503; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_2506 ? 12u : 4u))) { break; } uint _2557 = i & 3u; if (!(_2557 == 0u)) { _2477 = _2557 == 3u; } else { _2477 = true; } float _2565 = _2477 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_2557 == 0u)) { _2479 = _2557 == 3u; } else { _2479 = true; } float _2573 = _2479 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _2576 = float2(split, ch.y); float2 _2579 = float2(ch.x, split); bool _2581 = i < 8u; bool2 _2583 = bool2(_2581, _2581); float2 _2582 = float2(_2583.x ? _2579.x : _2576.x, _2583.y ? _2579.y : _2576.y); bool _2585 = i < 4u; bool2 _2587 = bool2(_2585, _2585); float2 _2586 = float2(_2587.x ? ch.x : _2582.x, _2587.y ? ch.y : _2582.y); float _2591 = (_2586.y - _2586.x) * 0.5f; float _2600 = ((_2586.x + _2586.y) * 0.5f) + (_2591 * ((_2557 < 2u) ? (-_2565) : _2565)); float3 _2602 = o + (d * _2600); float _2605 = fog_density(k, _2602, _2488 + (_2492 * _2600)); if (i < 4u) { q += (((Fog_1_m0.entries[_2482].albedo.xyz * fog_light(k, _2602, d)) + Fog_1_m0.entries[_2482].emission.xyz) * ((_2573 * _2591) * clamp(_2605, 0.0f, 1.0f))); } else { tau += ((_2573 * _2591) * _2605); } i++; continue; } if (!_2506) { tau = fog_falloff_depth(k, _2499, _2503, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _2653; uint i_3 = 0u; uint n = 0u; bool _2659 = false; float2 chords[4] = _2656; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _2663; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _2676 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_2676 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _2706 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_2676) { _2659 = _2706 == 0u; } else { _2659 = false; } if (_2659) { break; } uint _2718 = _2676 ? i_2 : (min(_2706, 16u) - 1u); uint _2719 = min(_2718, 15u); float2 _2728 = fog_chord(_2718, mul(float4(o, 1.0f), Fog_1_m0.entries[_2719].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_2719].to_local).xyz, t_end); if (_2728.y > _2728.x) { at[min(m, 3u)] = _2718; chords[min(m, 3u)] = _2728; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _2884 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _2884)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _3004 = exp(-tau); return (c * _3004) + (q * ((1.0f - _3004) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 fog_volumes(float3 c, float3 world_1, uint list) { float3 _3040 = world_1 - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(world_1, 1.0f), G_1_m0.view).z); bool _3043 = G_1_m0.camera_pos.w > 0.5f; bool3 _3045 = bool3(_3043, _3043, _3043); float3 _3044 = float3(_3045.x ? _3040.x : G_1_m0.camera_pos.xyz.x, _3045.y ? _3040.y : G_1_m0.camera_pos.xyz.y, _3045.z ? _3040.z : G_1_m0.camera_pos.xyz.z); float _3047 = length(world_1 - _3044); float _3049 = max(_3047, 9.9999999747524270787835121154785e-07f); float3 _3052 = fog_integrate(c, _3044, (world_1 - _3044) / float3(_3049, _3049, _3049), _3047, list); bool _3053 = _3047 > 0.0f; bool3 _3055 = bool3(_3053, _3053, _3053); return float3(_3055.x ? _3052.x : c.x, _3055.y ? _3052.y : c.y, _3055.z ? _3052.z : c.z); } float3 hedra_fog(float3 c_in, float3 v) { float3 c = float3(0.0f, 0.0f, 0.0f); c = c_in; if (false) { return c; } if ((Sky_1_m0.flags.x & 128u) != 0u) { c = surface_fog(c, hedra_world, -v); } if (O_1_m0.decals.w != 0u) { c = fog_volumes(c, hedra_world, O_1_m0.decals.w); } return c; } float3 filmic_curve(float3 x) { float _926 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _930 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _936 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _940 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_926, _926, _926))) + float3(_930, _930, _930)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_936, _936, _936))) - float3(_940, _940, _940); } float3 aces_curve(float3 c, float white) { float3 _988 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _996 = ((_988 * (_988 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_988 * ((_988 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _1001 = 1.7999999523162841796875f * white; float _1009 = ((_1001 * (_1001 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_1001 * ((0.98372900485992431640625f * _1001) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _996), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _996), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _996)) / float3(_1009, _1009, _1009); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _1064 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_1064, _1064, _1064); float3 _1069 = v * v; float3 _1070 = _1069 * _1069; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_1069 * 4.01109981536865234375f)) - ((_1069 * 25.68199920654296875f) * v)) + (_1070 * 70.35900115966796875f)) - ((_1070 * 74.7779998779296875f) * v)) + ((_1070 * 27.069000244140625f) * _1069), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _1099 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_1099 * Lit_1_m0.tone.y) + _1099) / ((_1099 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_1099) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_1099, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_1099); } return _1099; } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } float3 srgb_to_linear(float3 c) { float3 _255 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _258 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _260 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_260.x ? _255.x : _258.x, _260.y ? _255.y : _258.y, _260.z ? _255.z : _258.z); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _567; bool _570 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _575 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _575)) { break; } uint _604 = decal_entry(k); uint _607 = min(min(_604, 63u), 63u); float3 _613 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_607].to_local).xyz; if (all(bool3(_613.x >= float3(0.0f, -1.0f, 0.0f).x, _613.y >= float3(0.0f, -1.0f, 0.0f).y, _613.z >= float3(0.0f, -1.0f, 0.0f).z))) { _570 = all(bool3(_613.x <= float3(1.0f, 1.0f, 1.0f).x, _613.y <= float3(1.0f, 1.0f, 1.0f).y, _613.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _570 = false; } if (!_570) { uint _772 = k; k = _772 + 1u; continue; } fade = pow(1.0f - abs(_613.y), (_613.y > 0.0f) ? Decal_1_m0.entries[_607].fades.x : Decal_1_m0.entries[_607].fades.y); if (Decal_1_m0.entries[_607].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_607].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_607].axis_y.xyz) * 0.5f) + 0.5f); } float2 _651 = _613.xz; float _652 = decal_level(Decal_1_m0.entries[_607], world_1); if (Decal_1_m0.entries[_607].layers.x > 0u) { float4 _664 = decal_texel(Decal_1_m0.entries[_607].layers.x, _651, _652, (Decal_1_m0.entries[_607].flags.x & 1u) != 0u); float4 _670 = float4(srgb_to_linear(_664.xyz), _664.w) * Decal_1_m0.entries[_607].modulate; float _673 = _670.w * fade; float _679 = _673 * Decal_1_m0.entries[_607].fades.w; out_s.base = lerp(out_s.base, _670.xyz, float3(_679, _679, _679)); if (Decal_1_m0.entries[_607].layers.y > 0u) { float4 _692 = decal_texel(Decal_1_m0.entries[_607].layers.y, _651, _652, (Decal_1_m0.entries[_607].flags.x & 2u) != 0u); float _695 = (_692.x * 2.0f) - 1.0f; float _698 = 1.0f - (_692.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_607].axis_x.xyz * _695) + (Decal_1_m0.entries[_607].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_695 * _695)) - (_698 * _698))))) + (Decal_1_m0.entries[_607].axis_z.xyz * _698)), float3(_673, _673, _673))); } if (Decal_1_m0.entries[_607].layers.z > 0u) { float4 _732 = decal_texel(Decal_1_m0.entries[_607].layers.z, _651, _652, (Decal_1_m0.entries[_607].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _732.x, _673); out_s.roughness = lerp(out_s.roughness, _732.y, _673); out_s.metallic = lerp(out_s.metallic, _732.z, _673); } } if (Decal_1_m0.entries[_607].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_607].layers.w, _651, _652, (Decal_1_m0.entries[_607].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_607].modulate.xyz) * Decal_1_m0.entries[_607].axis_x.w) * fade); } uint _772 = k; k = _772 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } uint object_light_count() { return min(O_1_m0.lights.z, 8u); } uint object_light(uint k) { return min(((((k < 4u) ? O_1_m0.lights.x : O_1_m0.lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float4 hedra_light_dir(uint i, float3 world_1) { float atten = 0.0f; uint _4463 = min(i, 63u); if (Lit_1_m0.lights[_4463].info.x == 0u) { return float4(-Lit_1_m0.lights[_4463].direction.xyz, 1.0f); } float3 _4477 = Lit_1_m0.lights[_4463].position.xyz - world_1; float _4478 = length(_4477); float _4479 = max(_4478, 9.9999999747524270787835121154785e-07f); float3 _4481 = _4477 / float3(_4479, _4479, _4479); atten = omni_attenuation(_4478, Lit_1_m0.lights[_4463].position.w, Lit_1_m0.lights[_4463].direction.w); if (Lit_1_m0.lights[_4463].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-_4481, Lit_1_m0.lights[_4463].direction.xyz), Lit_1_m0.lights[_4463].spot.x)) / max(1.0f - Lit_1_m0.lights[_4463].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_4463].spot.y)); } return float4(_4481, atten); } float shadow_factor(uint i, float3 world_1, float3 n_geo, float3 l) { int dy = -1; bool _3115 = false; uint part = 0u; bool _3117 = false; uint c = 0u; float vis = 0.0f; bool _3113 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint _3125 = min(i, 63u); uint _3135 = min(Lit_1_m0.lights[min(i, 63u)].info.w, 15u); uint _3138 = min(_3135, 15u); uint _3141 = min(_3135, 15u); uint _3147 = max(Shadow_1_m0.lights[min(_3135, 15u)].info.y, 1u); float _3153 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; if (Lit_1_m0.lights[_3125].info.x == 0u) { if (_3153 > Shadow_1_m0.lights[min(_3135, 15u)].fade.y) { return 1.0f; } part = _3147 - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(c < _3147)) { break; } if (_3153 <= Shadow_1_m0.lights[min(_3135, 15u)].splits[min(c, 3u)]) { part = c; break; } c++; continue; } } uint _3197 = part; uint _3203 = min(min((Shadow_1_m0.lights[_3141].info.x + min(_3197, (_3147 - 1u))), 15u), 15u); float _3210 = Shadow_1_m0.tiles[_3203].texel.x + (Shadow_1_m0.tiles[_3203].texel.y * distance(world_1, Lit_1_m0.lights[min(i, 63u)].position.xyz)); float3 _3221 = (world_1 + (n_geo * ((Shadow_1_m0.lights[_3138].params.y * max(Shadow_1_m0.lights[_3138].params.z, 1.0f)) * _3210))) + (l * (Shadow_1_m0.lights[_3138].params.x * _3210)); if (Lit_1_m0.lights[_3125].info.x == 1u) { float3 _3225 = _3221 - Lit_1_m0.lights[min(i, 63u)].position.xyz; float3 _3226 = abs(_3225); if (_3226.x >= _3226.y) { _3113 = _3226.x >= _3226.z; } else { _3113 = false; } if (_3113) { part = (_3225.x >= 0.0f) ? 0u : 1u; } else { if (_3226.y >= _3226.z) { part = (_3225.y >= 0.0f) ? 2u : 3u; } else { part = (_3225.z >= 0.0f) ? 4u : 5u; } } } uint _3259 = min((Shadow_1_m0.lights[_3141].info.x + min(part, (_3147 - 1u))), 15u); float4 _3264 = mul(float4(_3221, 1.0f), Shadow_1_m0.tiles[min(_3259, 15u)].view_proj); if (_3264.w <= 0.0f) { return 1.0f; } float3 _3272 = _3264.xyz / float3(_3264.www); if (!(abs(_3272.x) > 1.0f)) { _3115 = abs(_3272.y) > 1.0f; } else { _3115 = true; } if (!_3115) { _3117 = _3272.z > 1.0f; } else { _3117 = true; } if (_3117) { return 1.0f; } uint _3293 = min(_3259, 15u); float2 _3306 = Shadow_1_m0.tiles[_3293].rect.xy + (float2((_3272.x * 0.5f) + 0.5f, 0.5f - (_3272.y * 0.5f)) * Shadow_1_m0.tiles[_3293].rect.zw); float _3310 = 0.5f * Shadow_1_m0.atlas.x; float2 _3312 = Shadow_1_m0.tiles[_3293].rect.xy + float2(_3310, _3310); float _3316 = 0.5f * Shadow_1_m0.atlas.x; float2 _3318 = (Shadow_1_m0.tiles[_3293].rect.xy + Shadow_1_m0.tiles[_3293].rect.zw) - float2(_3316, _3316); if (Shadow_1_m0.lights[_3138].params.z <= 0.0f) { vis = t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3306, _3312, _3318), _3272.z); } else { float _3329 = Shadow_1_m0.lights[_3138].params.z * Shadow_1_m0.atlas.x; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(dx <= 1)) { break; } vis += t_shadow.SampleCmpLevelZero(s_shadow, clamp(_3306 + (float2(float(dx), float(dy)) * _3329), _3312, _3318), _3272.z); dx++; continue; } dy++; continue; } vis /= 9.0f; } if (Lit_1_m0.lights[_3125].info.x == 0u) { uint _3394 = min(_3135, 15u); vis = lerp(vis, 1.0f, smoothstep(Shadow_1_m0.lights[_3394].fade.x, Shadow_1_m0.lights[_3394].fade.y, _3153)); } return lerp(1.0f, vis, Shadow_1_m0.lights[_3138].params.w); } float hedra_shadow(uint i, float3 l) { bool _4522 = false; if (false) { _4522 = Lit_1_m0.lights[min(i, 63u)].info.y != 1u; } else { _4522 = true; } if (_4522) { return 1.0f; } return shadow_factor(i, hedra_world, hedra_n_geo, l); } void light() { } float3 f_schlick(float3 f0, float vh) { return f0 + ((float3(1.0f, 1.0f, 1.0f) - f0) * pow(1.0f - vh, 5.0f)); } float d_ggx(float nh, float a2) { float _792 = ((nh * nh) * (a2 - 1.0f)) + 1.0f; return a2 / ((3.1415927410125732421875f * _792) * _792); } float v_smith(float nl, float nv, float a2) { return 0.5f / max((nl * sqrt(((nv * nv) * (1.0f - a2)) + a2)) + (nv * sqrt(((nl * nl) * (1.0f - a2)) + a2)), 9.9999997473787516355514526367188e-05f); } float3 light_specular(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float specular) { float _845 = dot(n, l); if (_845 <= 0.0f) { return float3(0.0f, 0.0f, 0.0f); } float3 _850 = normalize(l + v); return (((diffuse / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) + ((f_schlick(f0, max(dot(v, _850), 0.0f)) * (d_ggx(max(dot(n, _850), 0.0f), a2) * v_smith(_845, max(dot(n, v), 9.9999997473787516355514526367188e-05f), a2))) * specular)) * radiance_1) * _845; } float hedra_schlick(float u) { float _4329 = clamp(1.0f - u, 0.0f, 1.0f); float _4330 = _4329 * _4329; return (_4330 * _4330) * _4329; } float hedra_diffuse_brdf(float nl, float nv, float lh, float r) { float _4342 = max(nl, 0.0f); if (false) { return max(0.0f, (nl + r) / ((1.0f + r) * (1.0f + r))) * 0.3183098733425140380859375f; } if (false) { return smoothstep(-r, max(r, 0.00999999977648258209228515625f), nl) * 0.3183098733425140380859375f; } if (false) { float _4363 = (((2.0f * lh) * lh) * r) - 0.5f; return ((0.3183098733425140380859375f * (1.0f + (_4363 * hedra_schlick(nv)))) * (1.0f + (_4363 * hedra_schlick(_4342)))) * _4342; } return _4342 * 0.3183098733425140380859375f; } float3 hedra_light_modes(float3 n, float3 v, float3 l, float3 radiance_1, float3 diffuse, float3 f0, float a2, float r, float specular) { float3 c = float3(0.0f, 0.0f, 0.0f); float mid = 0.0f; bool _4390 = false; float _4394 = min(dot(n, l), 1.0f); float _4396 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float3 _4398 = normalize(l + v); c = (diffuse * hedra_diffuse_brdf(_4394, _4396, clamp(dot(l, _4398), 0.0f, 1.0f), r)) * radiance_1; if (r > 0.0f) { if (false) { mid = 1.0f - r; mid *= mid; c += ((diffuse * radiance_1) * ((smoothstep(mid - (r * 0.5f), mid + (r * 0.5f), dot(normalize(-reflect(l, n)), v)) * mid) * specular)); } else { if (false) { _4390 = _4394 > 0.0f; } else { _4390 = false; } if (_4390) { c += (((f_schlick(f0, max(dot(v, _4398), 0.0f)) * (d_ggx(max(dot(n, _4398), 0.0f), a2) * v_smith(_4394, _4396, a2))) * (specular * _4394)) * radiance_1); } } } return c; } float3 probe_light(float3 n) { return max(float3(O_1_m0.gi[0u].x + dot(O_1_m0.gi[0u].yzw, n), O_1_m0.gi[1u].x + dot(O_1_m0.gi[1u].yzw, n), O_1_m0.gi[2u].x + dot(O_1_m0.gi[2u].yzw, n)), float3(0.0f, 0.0f, 0.0f)); } float4 gi_diffuse(float3 n, bool baked, float3 baked_light) { if (baked) { return float4(baked_light, 1.0f); } if (true ? ((O_1_m0.extra.x & 8u) != 0u) : false) { return float4(probe_light(n), 1.0f); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float3 sh_irradiance(float3 n) { float3 c = float3(0.0f, 0.0f, 0.0f); c = Sky_1_m0.sh[0u].xyz * 0.2820949852466583251953125f; c += (Sky_1_m0.sh[1u].xyz * (0.48860299587249755859375f * n.y)); c += (Sky_1_m0.sh[2u].xyz * (0.48860299587249755859375f * n.z)); c += (Sky_1_m0.sh[3u].xyz * (0.48860299587249755859375f * n.x)); c += (Sky_1_m0.sh[4u].xyz * ((1.09254801273345947265625f * n.x) * n.y)); c += (Sky_1_m0.sh[5u].xyz * ((1.09254801273345947265625f * n.y) * n.z)); c += (Sky_1_m0.sh[6u].xyz * (0.3153919875621795654296875f * (((3.0f * n.z) * n.z) - 1.0f))); c += (Sky_1_m0.sh[7u].xyz * ((1.09254801273345947265625f * n.x) * n.z)); c += (Sky_1_m0.sh[8u].xyz * (0.546274006366729736328125f * ((n.x * n.x) - (n.y * n.y)))); return max(c, float3(0.0f, 0.0f, 0.0f)); } float2 env_brdf_approx(float roughness, float nv) { float4 _1584 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * roughness) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f); return (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_1584.x * _1584.x, exp2((-9.27999973297119140625f) * nv)) * _1584.x) + _1584.y)) + _1584.zw; } float probe_weight(ProbeEntryU p, float3 world_1) { float3 _3624 = mul(float4(world_1, 1.0f), p.to_local).xyz; float _3640 = min(p.extents.xyz.x - abs(_3624.x), min(p.extents.xyz.y - abs(_3624.y), p.extents.xyz.z - abs(_3624.z))); if (_3640 < 0.0f) { return 0.0f; } if (!(p.extents.w > 0.0f)) { return 1.0f; } return min(_3640 / p.extents.w, 1.0f); } float probe_exit(float o, float d, float e) { if (d > 0.0f) { return (e - o) / d; } if (d < 0.0f) { return ((-e) - o) / d; } return 3.0000000054977557577780399428115e+38f; } float3 probe_lookup(ProbeEntryU p, float3 world_1, float3 dir) { float3 _3682 = mul(float4(dir, 0.0f), p.to_local).xyz; if ((p.info.x & 1u) == 0u) { return _3682; } float3 _3692 = mul(float4(world_1, 1.0f), p.to_local).xyz; return (_3692 + (_3682 * max(min(probe_exit(_3692.x, _3682.x, p.extents.xyz.x), min(probe_exit(_3692.y, _3682.y, p.extents.xyz.y), probe_exit(_3692.z, _3682.z, p.extents.xyz.z))), 0.0f))) - p.offset.xyz; } float3 probe_face_uv(float3 d) { bool _3466 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _3469 = abs(d); if (_3469.x >= _3469.y) { _3466 = _3469.x >= _3469.z; } else { _3466 = false; } if (_3466) { ma = _3469.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_3469.y >= _3469.z) { ma = _3469.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _3469.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 probe_texel(uint row, float3 fuv, uint level) { float _3556 = 0.5f / float(max((Probe_1_m0.counts.z >> level), 1u)); return t_probes.SampleLevel(s_probes, float2((fuv.x + clamp(fuv.y, _3556, 1.0f - _3556)) / 6.0f, (float(row) + clamp(fuv.z, _3556, 1.0f - _3556)) / 8.0f), float(level)).xyz; } float3 probe_sample(uint row, float3 d, float lod) { bool _3584 = false; uint _3589 = max(Probe_1_m0.counts.y, 1u); float _3592 = clamp(lod, 0.0f, float(_3589 - 1u)); uint _3594 = uint(clamp(_3592, 0.0f, 4294967040.0f)); float _3596 = _3592 - float(_3594); float3 _3597 = probe_face_uv(d); float3 _3598 = probe_texel(row, _3597, _3594); if (!(_3596 <= 0.0f)) { _3584 = (_3594 + 1u) >= _3589; } else { _3584 = true; } if (_3584) { return _3598; } return (_3598 * (1.0f - _3596)) + (probe_texel(row, _3597, _3594 + 1u) * _3596); } float4 probe_reflection(float3 world_1, float3 r, float roughness, uint probes) { float3 acc = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3731 = min(Probe_1_m0.counts.x, 8u); float _3737 = roughness * float(max(Probe_1_m0.counts.y, 1u) - 1u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3731)) { break; } uint _3760 = i; uint _3762 = min(_3760, 7u); if (((probes >> Probe_1_m0.probes[_3762].info.w) & 1u) == 0u) { uint _3788 = i; i = _3788 + 1u; continue; } float _3772 = probe_weight(Probe_1_m0.probes[_3762], world_1); if (_3772 <= 0.0f) { uint _3788 = i; i = _3788 + 1u; continue; } acc += ((probe_sample(Probe_1_m0.probes[_3762].info.w, probe_lookup(Probe_1_m0.probes[_3762], world_1, r), _3737) * Probe_1_m0.probes[_3762].offset.w) * _3772); w_sum += _3772; uint _3788 = i; i = _3788 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float4 probe_ambient(float3 world_1, float3 n, uint probes) { float3 c = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; bool _3813 = false; float3 acc = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3820 = min(Probe_1_m0.counts.x, 8u); uint _3824 = max(Probe_1_m0.counts.y, 1u) - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3820)) { break; } uint _3846 = i; uint _3847 = min(_3846, 7u); if (!(((probes >> Probe_1_m0.probes[_3847].info.w) & 1u) == 0u)) { _3813 = Probe_1_m0.probes[_3847].info.y == 0u; } else { _3813 = true; } if (_3813) { uint _3890 = i; i = _3890 + 1u; continue; } float _3865 = probe_weight(Probe_1_m0.probes[_3847], world_1); if (_3865 <= 0.0f) { uint _3890 = i; i = _3890 + 1u; continue; } c = Probe_1_m0.probes[_3847].ambient.xyz; if (Probe_1_m0.probes[_3847].info.y == 1u) { c = probe_texel(Probe_1_m0.probes[_3847].info.w, probe_face_uv(mul(float4(n, 0.0f), Probe_1_m0.probes[_3847].to_local).xyz), _3824); } acc += (c * _3865); w_sum += _3865; uint _3890 = i; i = _3890 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float3 sky(float3 dir) { float _881 = acos(clamp(dot(normalize(dir), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_881 <= 1.57079637050628662109375f) { float _891 = clamp(1.0f - pow(max(1.0f - (1.0f - (_881 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_891, _891, _891)); } float _906 = clamp(1.0f - pow(max(1.0f - ((_881 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_906, _906, _906)); } float3 hedra_ambient(float3 n, float3 v, float3 diffuse, float3 f0, float roughness, float metallic) { float3 dif = float3(0.0f, 0.0f, 0.0f); float3 diffuse_amb = float3(0.0f, 0.0f, 0.0f); float3 dif_1 = float3(0.0f, 0.0f, 0.0f); float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 dif_2 = float3(0.0f, 0.0f, 0.0f); float3 spec_amb = float3(0.0f, 0.0f, 0.0f); float _4570 = max(dot(n, v), 9.9999997473787516355514526367188e-05f); float _4571 = 1.0f - roughness; float3 _4578 = f0 + ((max(float3(_4571, _4571, _4571), f0) - f0) * pow(1.0f - _4570, 5.0f)); float4 _4579 = gi_diffuse(n, false, float3(0.0f, 0.0f, 0.0f)); if ((Sky_1_m0.flags.x & 8u) != 0u) { float _4591 = Sky_1_m0.ibl.x * Sky_1_m0.sun.w; diffuse_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 16u) != 0u) { diffuse_amb = lerp(Sky_1_m0.ambient.xyz, sh_irradiance(sky_dir(n)) * _4591, float3(Sky_1_m0.ambient.w, Sky_1_m0.ambient.w, Sky_1_m0.ambient.w)); } if (_4579.w > 0.0f) { diffuse_amb = _4579.xyz; } spec_amb = Sky_1_m0.ambient.xyz; if ((Sky_1_m0.flags.x & 32u) != 0u) { spec_amb = radiance(sky_dir(reflect(-v, n)), roughness) * _4591; } else { if ((Sky_1_m0.flags.x & 64u) != 0u) { spec_amb = float3(0.0f, 0.0f, 0.0f); } } float2 _4637 = env_brdf_approx(roughness, _4570); if (Probe_1_m0.counts.x > 0u) { float4 _4648 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_1 = diffuse_amb; if (_4579.w <= 0.0f) { float4 _4662 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_1 = (diffuse_amb * (1.0f - _4662.w)) + _4662.xyz; } float _4677 = _4637.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * dif_1) + (((spec_amb * (1.0f - _4648.w)) + _4648.xyz) * ((f0 * _4637.x) + float3(_4677, _4677, _4677))); } else { float _4691 = _4637.y * clamp(50.0f * f0.y, metallic, 1.0f); ambient = (diffuse * diffuse_amb) + (spec_amb * ((f0 * _4637.x) + float3(_4691, _4691, _4691))); } } else { if ((Lit_1_m0.counts.y & 2u) != 0u) { float3 _4713 = (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f; float _4725 = clamp((dot(n, Lit_1_m0.up.xyz) * 0.5f) + 0.5f, 0.0f, 1.0f); float3 _4726 = lerp((Lit_1_m0.ground_horizon.xyz + Lit_1_m0.ground_bottom.xyz) * 0.5f, _4713, float3(_4725, _4725, _4725)); float3 _4731 = lerp(sky(reflect(-v, n)), _4713, float3(roughness, roughness, roughness)); if (Probe_1_m0.counts.x > 0u) { float4 _4743 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif = _4579.xyz; if (_4579.w <= 0.0f) { float4 _4759 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif = ((_4726 * Lit_1_m0.ambient.w) * (1.0f - _4759.w)) + _4759.xyz; } ambient = (diffuse * dif) + ((((_4731 * Lit_1_m0.ambient.w) * (1.0f - _4743.w)) + _4743.xyz) * _4578); } else { if (_4579.w > 0.0f) { ambient = (diffuse * _4579.xyz) + ((_4731 * _4578) * Lit_1_m0.ambient.w); } else { ambient = ((diffuse * _4726) + (_4731 * _4578)) * Lit_1_m0.ambient.w; } } } else { if (Probe_1_m0.counts.x > 0u) { float4 _4800 = probe_reflection(hedra_world, reflect(-v, n), roughness, O_1_m0.extra.z); dif_2 = _4579.xyz; if (_4579.w <= 0.0f) { float4 _4816 = probe_ambient(hedra_world, n, O_1_m0.extra.z); dif_2 = (Lit_1_m0.ambient.xyz * (1.0f - _4816.w)) + _4816.xyz; } ambient = (diffuse * dif_2) + (((Lit_1_m0.ambient.xyz * (1.0f - _4800.w)) + _4800.xyz) * _4578); } else { if (_4579.w > 0.0f) { ambient = (diffuse * _4579.xyz) + (Lit_1_m0.ambient.xyz * _4578); } else { ambient = Lit_1_m0.ambient.xyz * (diffuse + _4578); } } } } return ambient; } bool hedra_transparent() { bool _4026 = false; bool _4028 = false; if (true) { _4026 = false; } else { _4026 = false; } if (!_4026) { _4028 = false; } else { _4028 = true; } return _4028; } float3 hedra_lit(float4 clip) { bool _4919 = false; bool _4913 = false; DecalSurface surf = _4910; float3 ambient = float3(0.0f, 0.0f, 0.0f); float3 radiance_1 = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); bool _4922 = false; bool _4917 = false; uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); DecalSurface _4934 = { ALBEDO, clamp(METALLIC, 0.0f, 1.0f), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f), AO, hedra_n, EMISSION }; surf = _4934; if (O_1_m0.decals.z > 0u) { DecalSurface _4942 = surf; surf = apply_decals(hedra_world, hedra_n_geo, _4942); ALBEDO = surf.base; METALLIC = surf.metallic; ROUGHNESS = surf.roughness; NORMAL = normalize(mul(surf.normal, hedra_mat3(G_1_m0.view))); } float _4964 = ((surf.roughness * surf.roughness) * surf.roughness) * surf.roughness; float3 _4968 = surf.base * (1.0f - surf.metallic); float _4972 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; float3 _4974 = lerp(float3(_4972, _4972, _4972), surf.base, float3(surf.metallic, surf.metallic, surf.metallic)); float3 _4979 = hedra_view_dir(hedra_world); float3x3 _4982 = hedra_mat3(G_1_m0.view); float _4986 = lerp(1.0f, surf.occlusion, AO_LIGHT_AFFECT); DIFFUSE_LIGHT = float3(0.0f, 0.0f, 0.0f); SPECULAR_LIGHT = float3(0.0f, 0.0f, 0.0f); uint _4987 = object_light_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _4987)) { break; } uint _5010 = object_light(k); uint _5011 = min(_5010, 63u); float4 _5015 = hedra_light_dir(_5010, hedra_world); float3 _5016 = _5015.xyz; float _5017 = _5015.w; if (false) { if (!(Lit_1_m0.lights[_5011].info.x == 0u)) { _4913 = _5017 > 0.0f; } else { _4913 = true; } if (_4913) { LIGHT = normalize(mul(_5016, _4982)); LIGHT_COLOR = Lit_1_m0.lights[_5011].color.xyz; ATTENUATION = _5017 * hedra_shadow(_5010, _5016); LIGHT_IS_DIRECTIONAL = Lit_1_m0.lights[_5011].info.x == 0u; SPECULAR_AMOUNT = Lit_1_m0.lights[_5011].spot.z; light(); } uint _5124 = k; k = _5124 + 1u; continue; } if (RIM > 0.0f) { c += (((_4968 * Lit_1_m0.lights[_5011].color.xyz) * (pow(max(9.9999997473787516355514526367188e-05f, 1.0f - max(dot(surf.normal, _4979), 9.9999997473787516355514526367188e-05f)), max(0.0f, (1.0f - surf.roughness) * 16.0f)) * RIM)) * lerp(float3(1.0f, 1.0f, 1.0f), surf.base, float3(RIM_TINT, RIM_TINT, RIM_TINT))); } if (_5017 > 0.0f) { radiance_1 = Lit_1_m0.lights[_5011].color.xyz * _5017; if (Lit_1_m0.lights[_5011].info.y == 1u) { _4917 = false; } else { _4917 = false; } if (_4917) { radiance_1 = Lit_1_m0.lights[_5011].color.xyz * (_5017 * shadow_factor(_5010, hedra_world, hedra_n_geo, _5016)); } if (true) { _4919 = false; } else { _4919 = false; } if (_4919) { c += light_specular(surf.normal, _4979, _5016, radiance_1, _4968, _4974, _4964, Lit_1_m0.lights[_5011].spot.z); } else { c += hedra_light_modes(surf.normal, _4979, _5016, radiance_1, _4968, _4974, _4964, surf.roughness, Lit_1_m0.lights[_5011].spot.z); } if (any(bool3(BACKLIGHT.x > float3(0.0f, 0.0f, 0.0f).x, BACKLIGHT.y > float3(0.0f, 0.0f, 0.0f).y, BACKLIGHT.z > float3(0.0f, 0.0f, 0.0f).z))) { c += (((_4968 * radiance_1) * BACKLIGHT) * (0.3183098733425140380859375f - (max(min(dot(surf.normal, _5016), 1.0f), 0.0f) * 0.3183098733425140380859375f))); } } uint _5124 = k; k = _5124 + 1u; continue; } if (false) { c = (((DIFFUSE_LIGHT * surf.base) * _4986) * (1.0f - surf.metallic)) + (SPECULAR_LIGHT * _4986); } else { if (AO_LIGHT_AFFECT > 0.0f) { c *= _4986; } } if (true) { ambient = hedra_ambient(surf.normal, _4979, _4968, _4974, surf.roughness, surf.metallic); } if ((Lit_1_m0.counts.y & 4u) != 0u) { _4922 = !hedra_transparent(); } else { _4922 = false; } if (_4922) { int _5167; spvTextureSize(t_ao, 0u, _5167); int _5169 = int(min(uint(0), uint(int(_5167) - 1))); uint _5170_dummy_parameter; float4 _5174 = t_ao.Load(int3(int2(min(uint2(int2(clamp(floor(clip.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ao, uint(_5169), _5170_dummy_parameter)) - int2(1, 1)))), _5169)); float _5175 = _5174.x; c *= lerp(1.0f, min(_5175, surf.occlusion), Lit_1_m0.tone.z * Lit_1_m0.tone.w); c += (ambient * min(surf.occlusion, _5175)); } else { c += (ambient * surf.occlusion); } c += surf.emission; return tonemap(hedra_fog(c, _4979)); } float3 hedra_bindings() { return (t_panorama.SampleLevel(s_panorama, float2(0.5f, 0.5f), 0.0f).xyz + t_lightmap.SampleLevel(s_lightmap, float3(float2(0.5f, 0.5f), float(0)), 0.0f).xyz) + t_screen.SampleLevel(s_radiance, float2(0.5f, 0.5f), 0.0f).xyz; } float3 item_fade(float3 c) { if (true ? ((O_1_m0.extra.x & 64u) == 0u) : true) { return c; } return lerp(c, tonemap(O_1_m0.normal[3u].xyz), float3(O_1_m0.normal[3u].www)); } float3 emerge_tint(float3 c, float r) { bool _1265 = false; if (!((O_1_m0.extra.x & 32u) == 0u)) { _1265 = r >= 1.0f; } else { _1265 = true; } if (true ? _1265 : true) { return c; } float _1287 = smoothstep(0.0f, 1.0f, r); return lerp(tonemap(srgb_to_linear(spvUnpackUnorm4x8(O_1_m0.extra.w).xyz)), c, float3(_1287, _1287, _1287)); } float3 linear_to_srgb(float3 c) { float3 _385 = c * 12.9200000762939453125f; float3 _388 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _389 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_389.x ? _385.x : _388.x, _389.y ? _385.y : _388.y, _389.z ? _385.z : _388.z); } float4 hedra_output(float3 c) { float3 rgb = float3(0.0f, 0.0f, 0.0f); rgb = c; if (false) { rgb *= PREMUL_ALPHA_FACTOR; } float4 _5225 = float4(rgb, hedra_transparent() ? ALPHA : 1.0f); if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(_5225.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(_5225.w, 0.0f, 1.0f)); } float4 _5237 = clamp(_5225, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if ((G_1_m0.params.z & 2u) != 0u) { return float4(linear_to_srgb(_5237.xyz), _5237.w); } return _5237; } void frag_main() { float3 c = float3(0.0f, 0.0f, 0.0f); CustomOut _5272 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_5272, gl_FrontFacing); if (hedra_culled(_5272.flags)) { discard; } float _5345 = emerge_reveal(_5272.world, _5272.clip.xy); if (_5345 <= 0.0f) { discard; } if (true) { c = tonemap(hedra_fog(ALBEDO, hedra_view_dir(hedra_world))); } else { float3 _5358 = hedra_lit(_5272.clip); c = _5358; } if (Lit_1_m0.counts.w == 4294967295u) { c += hedra_bindings(); } if (G_1_m0.params.x == 8u) { c = emerge_tint(item_fade(c), _5345); } _5306 = hedra_output(c); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output._5306 = _5306; return stage_output; } fs_custom_depthmain˜>struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float alpha_cut; float hedra_pad0; float2 snap_resolution; float affine_strength; float affine_near; float3 sun_direction; float hedra_pad1; float3 sun_color; float hedra_pad2; float3 sky_ambient; float hedra_pad3; float3 ground_ambient; float light_bands; float3 emission; float overbright; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D albedo_texture : register(t4); SamplerState SAMPLER_NEAREST_REPEAT : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1223 = transpose(hedra_mat3(m)); return float4x4(float4(_1223[0], 0.0f), float4(_1223[1], 0.0f), float4(_1223[2], 0.0f), float4(-mul(m[3].xyz, _1223), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { affine_uv = i.hedra_v0; gouraud = i.hedra_v1.xyz; } void fragment() { float _1180 = max(affine_uv.z, 9.9999997473787516355514526367188e-05f); float _1186 = clamp(affine_uv.w, 0.0f, 1.0f); float4 _1191 = albedo_texture.Sample(SAMPLER_NEAREST_REPEAT, lerp(UV, affine_uv.xy / float2(_1180, _1180), float2(_1186, _1186))); ALBEDO = (_1191.xyz * hedra_p_1_m0.albedo.xyz) * gouraud; ALPHA = _1191.w * hedra_p_1_m0.albedo.w; ALPHA_SCISSOR_THRESHOLD = hedra_p_1_m0.alpha_cut; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1382 = facing != hedra_mirrored(_in.flags); hedra_front = _1382; FRONT_FACING = _1382; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1398 = hedra_mat3(G_1_m0.view); float3 _1401 = -normalize(_in.normal); float3 _1403 = normalize(_in.normal); bool3 _1405 = bool3(_1382, _1382, _1382); float3 _1404 = float3(_1405.x ? _1403.x : _1401.x, _1405.y ? _1403.y : _1401.y, _1405.z ? _1403.z : _1401.z); hedra_n_geo = _1404; hedra_n = _1404; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1404 * dot(_1404, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1427 = VERTEX; NORMAL = normalize(mul(_1404, _1398)); float3 _1430 = NORMAL; TANGENT = normalize(mul(t, _1398)); BINORMAL = normalize(mul(cross(_1404, t) * _in.tangent.w, _1398)); float3 _1438 = normalize(-VERTEX); bool _1441 = G_1_m0.camera_pos.w > 0.5f; bool3 _1443 = bool3(_1441, _1441, _1441); VIEW = float3(_1443.x ? float3(0.0f, 0.0f, 1.0f).x : _1438.x, _1443.y ? float3(0.0f, 0.0f, 1.0f).y : _1438.y, _1443.z ? float3(0.0f, 0.0f, 1.0f).z : _1438.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1449 = transpose(_1398); if (any(bool3(NORMAL.x != _1430.x, NORMAL.y != _1430.y, NORMAL.z != _1430.z))) { hedra_n = normalize(mul(NORMAL, _1449)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1449)); } if (any(bool3(LIGHT_VERTEX.x != _1427.x, LIGHT_VERTEX.y != _1427.y, LIGHT_VERTEX.z != _1427.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _709 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_709, _709, _709); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _735 = floor(p); float3 _736 = frac(p); float3 _740 = (_736 * _736) * (float3(3.0f, 3.0f, 3.0f) - (_736 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_735), emerge_hash(_735 + float3(1.0f, 0.0f, 0.0f)), _740.x), lerp(emerge_hash(_735 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_735 + float3(1.0f, 1.0f, 0.0f)), _740.x), _740.y), lerp(lerp(emerge_hash(_735 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_735 + float3(1.0f, 0.0f, 1.0f)), _740.x), lerp(emerge_hash(_735 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_735 + float3(1.0f, 1.0f, 1.0f)), _740.x), _740.y), _740.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _797 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_797) * 0.64999997615814208984375f) + (emerge_noise((_797 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1706 = false; bool _1708 = false; CustomOut _1665 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1665, gl_FrontFacing); if (!((_1665.flags & 2u) != 0u)) { if (true) { _1708 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1708 = false; } _1706 = _1708; } else { _1706 = true; } if (_1706) { discard; } if (emerge_reveal(_1665.world, float2(-1.0f, -1.0f)) <= 0.0f) { discard; } else { return; } } void main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); }  fs_custom_idmainUAstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float alpha_cut; float hedra_pad0; float2 snap_resolution; float affine_strength; float affine_near; float3 sun_direction; float hedra_pad1; float3 sun_color; float hedra_pad2; float3 sky_ambient; float hedra_pad3; float3 ground_ambient; float light_bands; float3 emission; float overbright; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const IdOut _1739 = { float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D albedo_texture : register(t4); SamplerState SAMPLER_NEAREST_REPEAT : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 id; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 id : SV_Target0; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1223 = transpose(hedra_mat3(m)); return float4x4(float4(_1223[0], 0.0f), float4(_1223[1], 0.0f), float4(_1223[2], 0.0f), float4(-mul(m[3].xyz, _1223), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { affine_uv = i.hedra_v0; gouraud = i.hedra_v1.xyz; } void fragment() { float _1180 = max(affine_uv.z, 9.9999997473787516355514526367188e-05f); float _1186 = clamp(affine_uv.w, 0.0f, 1.0f); float4 _1191 = albedo_texture.Sample(SAMPLER_NEAREST_REPEAT, lerp(UV, affine_uv.xy / float2(_1180, _1180), float2(_1186, _1186))); ALBEDO = (_1191.xyz * hedra_p_1_m0.albedo.xyz) * gouraud; ALPHA = _1191.w * hedra_p_1_m0.albedo.w; ALPHA_SCISSOR_THRESHOLD = hedra_p_1_m0.alpha_cut; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1382 = facing != hedra_mirrored(_in.flags); hedra_front = _1382; FRONT_FACING = _1382; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1398 = hedra_mat3(G_1_m0.view); float3 _1401 = -normalize(_in.normal); float3 _1403 = normalize(_in.normal); bool3 _1405 = bool3(_1382, _1382, _1382); float3 _1404 = float3(_1405.x ? _1403.x : _1401.x, _1405.y ? _1403.y : _1401.y, _1405.z ? _1403.z : _1401.z); hedra_n_geo = _1404; hedra_n = _1404; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1404 * dot(_1404, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1427 = VERTEX; NORMAL = normalize(mul(_1404, _1398)); float3 _1430 = NORMAL; TANGENT = normalize(mul(t, _1398)); BINORMAL = normalize(mul(cross(_1404, t) * _in.tangent.w, _1398)); float3 _1438 = normalize(-VERTEX); bool _1441 = G_1_m0.camera_pos.w > 0.5f; bool3 _1443 = bool3(_1441, _1441, _1441); VIEW = float3(_1443.x ? float3(0.0f, 0.0f, 1.0f).x : _1438.x, _1443.y ? float3(0.0f, 0.0f, 1.0f).y : _1438.y, _1443.z ? float3(0.0f, 0.0f, 1.0f).z : _1438.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1449 = transpose(_1398); if (any(bool3(NORMAL.x != _1430.x, NORMAL.y != _1430.y, NORMAL.z != _1430.z))) { hedra_n = normalize(mul(NORMAL, _1449)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1449)); } if (any(bool3(LIGHT_VERTEX.x != _1427.x, LIGHT_VERTEX.y != _1427.y, LIGHT_VERTEX.z != _1427.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1514 = false; bool _1516 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _1514 = hedra_front; } else { _1514 = false; } if (_1514) { return true; } if (true) { _1516 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1516 = false; } return _1516; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _709 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_709, _709, _709); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _735 = floor(p); float3 _736 = frac(p); float3 _740 = (_736 * _736) * (float3(3.0f, 3.0f, 3.0f) - (_736 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_735), emerge_hash(_735 + float3(1.0f, 0.0f, 0.0f)), _740.x), lerp(emerge_hash(_735 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_735 + float3(1.0f, 1.0f, 0.0f)), _740.x), _740.y), lerp(lerp(emerge_hash(_735 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_735 + float3(1.0f, 0.0f, 1.0f)), _740.x), lerp(emerge_hash(_735 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_735 + float3(1.0f, 1.0f, 1.0f)), _740.x), _740.y), _740.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _797 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_797) * 0.64999997615814208984375f) + (emerge_noise((_797 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1735 = false; IdOut _out = _1739; CustomOut _1691 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1691, gl_FrontFacing); if (!hedra_culled(_1691.flags)) { _1735 = emerge_reveal(_1691.world, _1691.clip.xy) <= 0.0f; } else { _1735 = true; } if (_1735) { discard; } _out.id = float4(float(O_1_m0.params.z & 255u), float((O_1_m0.params.z >> 8u) & 255u), float((O_1_m0.params.z >> 16u) & 255u), float(uint(O_1_m0.params.x == 1u) | ((O_1_m0.params.y == 1u) ? 2u : 0u))) / float4(255.0f, 255.0f, 255.0f, 255.0f); id = _out.id; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.id = id; return stage_output; } fs_custom_normal_depthmainCstruct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; struct HedraInstExtra { float4 custom; float id; }; struct CustomOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float4 color; float2 uv2; uint instance_id; float4 hedra_v0; float4 hedra_v1; float4 hedra_v2; float4 hedra_v3; }; struct IdOut { float4 id; }; struct HedraParams { float4 albedo; float2 uv_scale; float2 uv_offset; float2 uv_scroll; float alpha_cut; float hedra_pad0; float2 snap_resolution; float affine_strength; float affine_near; float3 sun_direction; float hedra_pad1; float3 sun_color; float hedra_pad2; float3 sky_ambient; float hedra_pad3; float3 ground_ambient; float light_bands; float3 emission; float overbright; }; struct HedraNormalDepthOut { float4 normal_depth; float4 surface; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const HedraNormalDepthOut _1740 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer hedra_p : register(b9) { HedraParams hedra_p_1_m0 : packoffset(c0); }; Texture2D albedo_texture : register(t4); SamplerState SAMPLER_NEAREST_REPEAT : register(s2); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float4 color; static float2 uv2; static uint instance_id; static float4 hedra_v0; static float4 hedra_v1; static float4 hedra_v2; static float4 hedra_v3; static float4 normal_depth; static float4 surface; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float4 color : TEXCOORD5; float2 uv2 : TEXCOORD6; nointerpolation uint instance_id : TEXCOORD7; float4 hedra_v0 : TEXCOORD8; float4 hedra_v1 : TEXCOORD9; float4 hedra_v2 : TEXCOORD10; float4 hedra_v3 : TEXCOORD11; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 normal_depth : SV_Target0; float4 surface : SV_Target1; }; static float3 VERTEX = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL = float3(0.0f, 0.0f, 0.0f); static float3 TANGENT = float3(0.0f, 0.0f, 0.0f); static float3 BINORMAL = float3(0.0f, 0.0f, 0.0f); static float2 UV = float2(0.0f, 0.0f); static float2 UV2 = float2(0.0f, 0.0f); static float4 COLOR = float4(0.0f, 0.0f, 0.0f, 0.0f); static float4x4 MODEL_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODEL_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float4x4 INV_VIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 INV_PROJECTION_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float4x4 MODELVIEW_MATRIX = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)); static float3x3 MODELVIEW_NORMAL_MATRIX = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)); static float3 NODE_POSITION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 NODE_POSITION_VIEW = float3(0.0f, 0.0f, 0.0f); static float3 CAMERA_DIRECTION_WORLD = float3(0.0f, 0.0f, 0.0f); static float3 LIGHT_VERTEX = float3(0.0f, 0.0f, 0.0f); static float4 FRAGCOORD = float4(0.0f, 0.0f, 0.0f, 0.0f); static bool FRONT_FACING = false; static float3 VIEW = float3(0.0f, 0.0f, 0.0f); static float3 NORMAL_MAP = float3(0.0f, 0.0f, 0.0f); static float NORMAL_MAP_DEPTH = 0.0f; static float3 ALBEDO = float3(0.0f, 0.0f, 0.0f); static float ALPHA = 0.0f; static float ALPHA_SCISSOR_THRESHOLD = 0.0f; static float PREMUL_ALPHA_FACTOR = 0.0f; static float METALLIC = 0.0f; static float SPECULAR = 0.0f; static float ROUGHNESS = 0.0f; static float RIM = 0.0f; static float RIM_TINT = 0.0f; static float3 BACKLIGHT = float3(0.0f, 0.0f, 0.0f); static float AO = 0.0f; static float AO_LIGHT_AFFECT = 0.0f; static float3 EMISSION = float3(0.0f, 0.0f, 0.0f); static float2 SCREEN_UV = float2(0.0f, 0.0f); static float3 hedra_world = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n_geo = float3(0.0f, 0.0f, 0.0f); static float3 hedra_n = float3(0.0f, 0.0f, 0.0f); static bool hedra_front = false; static float4 affine_uv = float4(0.0f, 0.0f, 0.0f, 0.0f); static float3 gouraud = float3(0.0f, 0.0f, 0.0f); bool hedra_mirrored(uint flags_1) { return ((O_1_m0.extra.x & 2u) != 0u) != ((flags_1 & 128u) != 0u); } float3x3 hedra_mat3(float4x4 m) { return float3x3(m[0].xyz, m[1].xyz, m[2].xyz); } float4x4 hedra_rigid_inverse(float4x4 m) { float3x3 _1223 = transpose(hedra_mat3(m)); return float4x4(float4(_1223[0], 0.0f), float4(_1223[1], 0.0f), float4(_1223[2], 0.0f), float4(-mul(m[3].xyz, _1223), 1.0f)); } float4x4 hedra_inv_projection() { return float4x4(G_1_m0.wire_color, G_1_m0.select_color, G_1_m0.active_color, G_1_m0.grid); } void hedra_matrices(float4x4 model, float3x3 normal_1) { MODEL_MATRIX = model; MODEL_NORMAL_MATRIX = normal_1; INV_VIEW_MATRIX = hedra_rigid_inverse(G_1_m0.view); INV_PROJECTION_MATRIX = hedra_inv_projection(); MODELVIEW_MATRIX = mul(model, G_1_m0.view); MODELVIEW_NORMAL_MATRIX = mul(normal_1, hedra_mat3(G_1_m0.view)); NODE_POSITION_WORLD = model[3].xyz; NODE_POSITION_VIEW = mul(float4(model[3].xyz, 1.0f), G_1_m0.view).xyz; CAMERA_DIRECTION_WORLD = INV_VIEW_MATRIX[2u].xyz; } void hedra_load_varyings(CustomOut i) { affine_uv = i.hedra_v0; gouraud = i.hedra_v1.xyz; } void fragment() { float _1180 = max(affine_uv.z, 9.9999997473787516355514526367188e-05f); float _1186 = clamp(affine_uv.w, 0.0f, 1.0f); float4 _1191 = albedo_texture.Sample(SAMPLER_NEAREST_REPEAT, lerp(UV, affine_uv.xy / float2(_1180, _1180), float2(_1186, _1186))); ALBEDO = (_1191.xyz * hedra_p_1_m0.albedo.xyz) * gouraud; ALPHA = _1191.w * hedra_p_1_m0.albedo.w; ALPHA_SCISSOR_THRESHOLD = hedra_p_1_m0.alpha_cut; } void hedra_fragment(CustomOut _in, bool facing) { float3 t = float3(0.0f, 0.0f, 0.0f); float3 nm = float3(0.0f, 0.0f, 0.0f); bool _1382 = facing != hedra_mirrored(_in.flags); hedra_front = _1382; FRONT_FACING = _1382; FRAGCOORD = _in.clip; SCREEN_UV = _in.clip.xy * G_1_m0.viewport.zw; hedra_matrices(O_1_m0.model, hedra_mat3(O_1_m0.normal)); float3x3 _1398 = hedra_mat3(G_1_m0.view); float3 _1401 = -normalize(_in.normal); float3 _1403 = normalize(_in.normal); bool3 _1405 = bool3(_1382, _1382, _1382); float3 _1404 = float3(_1405.x ? _1403.x : _1401.x, _1405.y ? _1403.y : _1401.y, _1405.z ? _1403.z : _1401.z); hedra_n_geo = _1404; hedra_n = _1404; hedra_world = _in.world; t = _in.tangent.xyz; t = normalize(t - (_1404 * dot(_1404, t))); VERTEX = mul(float4(_in.world, 1.0f), G_1_m0.view).xyz; LIGHT_VERTEX = VERTEX; float3 _1427 = VERTEX; NORMAL = normalize(mul(_1404, _1398)); float3 _1430 = NORMAL; TANGENT = normalize(mul(t, _1398)); BINORMAL = normalize(mul(cross(_1404, t) * _in.tangent.w, _1398)); float3 _1438 = normalize(-VERTEX); bool _1441 = G_1_m0.camera_pos.w > 0.5f; bool3 _1443 = bool3(_1441, _1441, _1441); VIEW = float3(_1443.x ? float3(0.0f, 0.0f, 1.0f).x : _1438.x, _1443.y ? float3(0.0f, 0.0f, 1.0f).y : _1438.y, _1443.z ? float3(0.0f, 0.0f, 1.0f).z : _1438.z); UV = _in.uv; UV2 = _in.uv2; COLOR = _in.color; NORMAL_MAP = float3(0.5f, 0.5f, 0.5f); NORMAL_MAP_DEPTH = 1.0f; ALBEDO = float3(1.0f, 1.0f, 1.0f); ALPHA = 1.0f; ALPHA_SCISSOR_THRESHOLD = 1.0f; PREMUL_ALPHA_FACTOR = 1.0f; METALLIC = 0.0f; SPECULAR = 0.5f; ROUGHNESS = 1.0f; RIM = 0.0f; RIM_TINT = 0.0f; BACKLIGHT = float3(0.0f, 0.0f, 0.0f); AO = 1.0f; AO_LIGHT_AFFECT = 0.0f; EMISSION = float3(0.0f, 0.0f, 0.0f); hedra_load_varyings(_in); fragment(); float3x3 _1449 = transpose(_1398); if (any(bool3(NORMAL.x != _1430.x, NORMAL.y != _1430.y, NORMAL.z != _1430.z))) { hedra_n = normalize(mul(NORMAL, _1449)); } if (any(bool3(NORMAL_MAP.x != float3(0.5f, 0.5f, 0.5f).x, NORMAL_MAP.y != float3(0.5f, 0.5f, 0.5f).y, NORMAL_MAP.z != float3(0.5f, 0.5f, 0.5f).z))) { nm = NORMAL_MAP; nm = float3((nm.xy * 2.0f) - float2(1.0f, 1.0f), 0.0f); nm.z = sqrt(max(0.0f, 1.0f - dot(nm.xy, nm.xy))); NORMAL = normalize(lerp(NORMAL, ((TANGENT * nm.x) + (BINORMAL * nm.y)) + (NORMAL * nm.z), float3(NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH, NORMAL_MAP_DEPTH))); hedra_n = normalize(mul(NORMAL, _1449)); } if (any(bool3(LIGHT_VERTEX.x != _1427.x, LIGHT_VERTEX.y != _1427.y, LIGHT_VERTEX.z != _1427.z))) { hedra_world = mul(float4(LIGHT_VERTEX, 1.0f), INV_VIEW_MATRIX).xyz; return; } else { return; } } bool hedra_culled(uint flags_1) { bool _1514 = false; bool _1516 = false; if ((flags_1 & 2u) != 0u) { return true; } if (false) { _1514 = hedra_front; } else { _1514 = false; } if (_1514) { return true; } if (true) { _1516 = ALPHA < ALPHA_SCISSOR_THRESHOLD; } else { _1516 = false; } return _1516; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _709 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_709, _709, _709); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _735 = floor(p); float3 _736 = frac(p); float3 _740 = (_736 * _736) * (float3(3.0f, 3.0f, 3.0f) - (_736 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_735), emerge_hash(_735 + float3(1.0f, 0.0f, 0.0f)), _740.x), lerp(emerge_hash(_735 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_735 + float3(1.0f, 1.0f, 0.0f)), _740.x), _740.y), lerp(lerp(emerge_hash(_735 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_735 + float3(1.0f, 0.0f, 1.0f)), _740.x), lerp(emerge_hash(_735 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_735 + float3(1.0f, 1.0f, 1.0f)), _740.x), _740.y), _740.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _797 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_797) * 0.64999997615814208984375f) + (emerge_noise((_797 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } void frag_main() { bool _1736 = false; HedraNormalDepthOut _out = _1740; CustomOut _1691 = { gl_FragCoord, world, normal, uv, flags, tangent, color, uv2, instance_id, hedra_v0, hedra_v1, hedra_v2, hedra_v3 }; hedra_fragment(_1691, gl_FrontFacing); if (!hedra_culled(_1691.flags)) { _1736 = emerge_reveal(_1691.world, _1691.clip.xy) <= 0.0f; } else { _1736 = true; } if (_1736) { discard; } float _1764 = clamp(METALLIC, 0.0f, 1.0f); float _1768 = (0.1599999964237213134765625f * SPECULAR) * SPECULAR; _out.normal_depth = float4(normalize(mul(hedra_n, hedra_mat3(G_1_m0.view))), -mul(float4(_1691.world, 1.0f), G_1_m0.view).z); _out.surface = float4(clamp(lerp(float3(_1768, _1768, _1768), ALBEDO, float3(_1764, _1764, _1764)), float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), clamp(ROUGHNESS, 0.04500000178813934326171875f, 1.0f)); normal_depth = _out.normal_depth; surface = _out.surface; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; color = stage_input.color; uv2 = stage_input.uv2; instance_id = stage_input.instance_id; hedra_v0 = stage_input.hedra_v0; hedra_v1 = stage_input.hedra_v1; hedra_v2 = stage_input.hedra_v2; hedra_v3 = stage_input.hedra_v3; frag_main(); SPIRV_Cross_Output stage_output; stage_output.normal_depth = normal_depth; stage_output.surface = surface; return stage_output; }  @Ð Ð/ ,@  �{Ðþ—4ÌhÜäF‚�SKw;‰¡ŠÝ‘šçkíVã›cHSLTGlobals@ viewÿÿÿÿproj@ÿÿÿÿ view_proj€ÿÿÿÿ camera_posÀÿÿÿÿviewportÐÿÿÿÿ wire_coloràÿÿÿÿ select_colorðÿÿÿÿ active_colorÿÿÿÿgridÿÿÿÿparams ÿÿÿÿfparams0ÿÿÿÿG_block@ObjectUmodelÿÿÿÿnormal@ÿÿÿÿcolor€ÿÿÿÿparams�ÿÿÿÿextra ÿÿÿÿgi°ÿÿÿÿdecalsàÿÿÿÿlightsðÿÿÿÿO_block HedraParams�albedoÿÿÿÿuv_scaleÿÿÿÿ uv_offsetÿÿÿÿ uv_scroll ÿÿÿÿ alpha_cut(ÿÿÿÿ hedra_pad0,ÿÿÿÿsnap_resolution0ÿÿÿÿaffine_strength8ÿÿÿÿ affine_near<ÿÿÿÿ sun_direction@ÿÿÿÿ hedra_pad1Lÿÿÿÿ sun_colorPÿÿÿÿ hedra_pad2\ÿÿÿÿ sky_ambient`ÿÿÿÿ hedra_pad3lÿÿÿÿground_ambientpÿÿÿÿ light_bands|ÿÿÿÿemission€ÿÿÿÿ overbrightŒÿÿÿÿ hedra_p_block�LightUPcolorÿÿÿÿpositionÿÿÿÿ direction ÿÿÿÿspot0ÿÿÿÿinfo@ÿÿÿÿLitUÐ countsÿÿÿÿambientÿÿÿÿtone ÿÿÿÿup0ÿÿÿÿsky_top@ÿÿÿÿ sky_horizonPÿÿÿÿground_horizon`ÿÿÿÿ ground_bottompÿÿÿÿ inv_view_proj€ÿÿÿÿdirsÀÿÿÿÿlightsÐ@P Lit_blockÐ ShadowLightU@paramsÿÿÿÿsplitsÿÿÿÿfade ÿÿÿÿinfo0ÿÿÿÿ ShadowTileU` view_projÿÿÿÿrect@ÿÿÿÿtexelPÿÿÿÿShadowU atlasÿÿÿÿlights@ tiles` Shadow_block  SunU  directionÿÿÿÿcolorÿÿÿÿSkyUflagsÿÿÿÿto_skyÿÿÿÿsky_topPÿÿÿÿ sky_horizon`ÿÿÿÿ ground_bottompÿÿÿÿground_horizon€ÿÿÿÿsun�ÿÿÿÿambient ÿÿÿÿibl°ÿÿÿÿ fog_colorÀÿÿÿÿfogÐÿÿÿÿ fog_depthàÿÿÿÿ fog_originðÿÿÿÿsuns sh€ ÿÿÿÿ Sky_block ProbeEntryU€to_localÿÿÿÿextents@ÿÿÿÿoffsetPÿÿÿÿambient`ÿÿÿÿinfopÿÿÿÿProbeUcountsÿÿÿÿprobes€ Probe_block DecalEntryU°to_localÿÿÿÿmodulate@ÿÿÿÿfadesPÿÿÿÿaxis_x`ÿÿÿÿaxis_ypÿÿÿÿaxis_z€ÿÿÿÿlayers�ÿÿÿÿflags ÿÿÿÿDecalU ,countsÿÿÿÿlodÿÿÿÿentries @° Decal_block , FogEntryU�to_localÿÿÿÿsize@ÿÿÿÿmaterialPÿÿÿÿalbedo`ÿÿÿÿemissionpÿÿÿÿlights€ÿÿÿÿFogU@ countsÿÿÿÿparamsÿÿÿÿambient ÿÿÿÿup0ÿÿÿÿ light_fog@ÿÿÿÿentries@� Fog_block@ GOhedra_pLitShadow SkyProbeDecalFogt_shadowÿÿÿÿ t_radianceÿÿÿÿ t_panoramaÿÿÿÿt_aoÿÿÿÿ t_lightmapÿÿÿÿt_probesÿÿÿÿt_decalsÿÿÿÿt_screenÿÿÿÿalbedo_textureÿÿÿÿs_shadowÿÿÿÿ s_radianceÿÿÿÿ s_panoramaÿÿÿÿ s_lightmapÿÿÿÿs_probesÿÿÿÿs_decalsÿÿÿÿSAMPLER_NEAREST_REPEATÿÿÿÿ vs_custom vs_customvs_custom_instancedvs_custom_instancedvs_custom_skinnedvs_custom_skinned fs_custom fs_customfs_custom_depthfs_custom_depth fs_custom_id fs_custom_idfs_custom_normal_depthfs_custom_normal_depthÔ9#u2 GLSL.std.450ivs_customCFHKNQTVXZ\]_abcdefgh#èvs_custom_instanced½¿ÁÃÅÇÊÌÎÐÒÕ×ÙÛÜÝÞßàáâãäåæçšvs_custom_skinnedwy{}�„‡‰‹�Ž��‘’“”•–—˜™=fs_custom!#%')+-/13579< fs_custom_depth„†ˆŠŒŽ�’”–˜šœžãfs_custom_idÆÈÊÌÎÐÒÔÖØÚÜÞàâ9fs_custom_normal_depth!#%')+-/13578= ã9H#HHH#@HHH#€HHH#ÀH#ÐH#àH#ðH#H#H # H #0G H #H H H #@H H H #€H #�H # H #°H #àH #ðGH#H#H# H#0H#@GPH#H#H# H#0H#@H#PH#`H#pH#€HHH #ÀH #ÐH#H#H# H#0H#HHH#@H#PG@G`H#H#H#H#H#G GH!#H!#H!H!H!#PH!#`H!#pH!#€H!#�H!# H!#°H! #ÀH! #ÐH! #àH! #ðH! #H!#€H%#H%H%H%#@H%#PH%#`H%#pG&€H(#H(#H)#H)H)H)#@H)#PH)#`H)#pH)#€H)#�H)# G*°H+#H+#H+# H,#H,# H,#H,#H,# H,#0H/#H/#H/# H/#(H/#0H/#@H0#H0#H0# H0#0H3#H3H3H3#@H3#PH3#`H3#pH3#€G4G5�H6#H6#H6# H6#0H6#@H6#@G7G8G9G:H<#H=#H=#H>#H>#H># H?#H?#H@#H@#H@# H@#0H@#8H@#@H@#PH@#`H@#hH@ #pH@ #€H@ #�H@ # HA#HB#HB#HB#HB# HB#(HB#,HB#0HB#8HB#<HB #@HB #LHB #PHB #\HB #`HB#lHB#pHB#|HB#€HB#ŒHD#HD#G�"G�!G‚H‚#G„"G„!G…H…#G‡"G‡!GˆHˆ#GŠ"GŠ!G‹H‹#G�"G�!G�"G�!G‘"G‘!G’H’#G”"G”!G–"G–!G˜"G˜!G™"G™!Gš"Gš!G›"G›!G�"G�!Gž"Gž!GŸHŸ#G¡"G¡!G¢"G¢!G£"G£!G¤H¤#G¦"G¦!G§"G§!G¨"G¨!G©H©#G«"G«!G¬H¬#G®"G®!Gò"Gò!GóHó#Gõ"Gõ!Gö"Gö!GCGFGHGKGNGQGT GV *GX GZG\G]G_G_GaGbGcGdGdGeGf Gg Gh G½G¿GÁGÃGÅGÇGÊGÌGÎGÐ GÒ GÕG×GÙ *GÛ GÜGÝGÞGßGßGàGáGâGãGãGäGå Gæ Gç GwGyG{G}GG�G„ G‡ G‰ G‹ *G� GŽG�G�G‘G‘G’G“G”G•G•G–G— G˜ G™ G G!G#G%G'G'G)G+G-G/G/G1G3 G5 G7 G9 G9G<G„ G†GˆGŠGŒGŒGŽG�G’G”G”G–G˜ Gš Gœ Gž GžGÆ GÈGÊGÌGÎGÎGÐGÒGÔGÖGÖGØGÚ GÜ GÞ Gà GàGâG GGG!G#G#G%G'G)G+G+G-G/ G1 G3 G5 G5G7G8   +       +  +@ + ++  ! " # $%+'&%'(& )*)+*,  -. / -01 2.345364578-9+;ý:;<:=>?@ --AB----      C@D+E+F+G+H+I+J+K ) L+MÛI@+NÛÉ@+OTø-@+Pÿÿÿÿ+Q¯´´>, RQQQ+Sެ,>+T ý|>+Uš™?, VSTU+W”„>+XÍÌÌ>+Y°¬,?, ZWXY+[îÐÐ=+\™Ÿ?+]¿¸8?, ^[\]+_+ùø=+`©¡!?+a‹‡?, b_`a+c¢šš>+d¶»;?, ecdQ+f ¦&?+gÜÔT?+hêèh>, ifgh+júòr?+kÍÈH?+loñp=, mjkl+n“Ž?, ojnl+pÛà`?+qƒŠ ?, rpWq, sRVZ^beimor+t€+u+vff¦?+wÍÌL?+x�Âõ=+y$tI+z€+{ns\?+|ý®>+}²>+~ýò&?+ÿ* €‚ ƒ‚;ƒ�… †…;†„ˆ ‰ˆ;‰‡‹ Œ‹;ŒŠ Ž;Ž� �;��’! “’;“‘ •";•” —#;—–;�˜;�™;—š œ$;œ›;��Ÿ(  Ÿ; ž;—¡;�¢¤+ ¥¤;¥£;œ¦;�§©6 ª©;ª¨¬< ­¬;­«;—® ° . ±;°¯±;°²±;°³±;°´± ¶.·;¶µ· ¹-.-º;¹¸º;¹»º;¶¼· ¾...¿;¾½¿;¶À·;¾Á¿ Ã.Ä;ÃÂÄ Æ1.1Ç;ÆÅÇ;ÃÈÄ;ÃÉÄ;ÃÊÄ;ÆËÇ;°Ì±;°Í±;°Î±;°Ï±;¶Ð· Ò . Ó;ÒÑÓ;°Ô±;°Õ± ×.Ø;×ÖØ;°Ù±;×ÚØ;×ÛØ;×ÜØ;×ÝØ;×ÞØ;×ߨ;×àØ;×áØ;°â±;×ãØ;×äØ;°å±;¹æº;×çØ;°è±;°é±;ÒêÓ;×ëØ;°ì±;°í±;°î±;°ï±;°ð±;ÒñÓóB ôó;ôò;—õ;�ö;¶÷·;°ø±!ý-+!  + R¸NA,    +®Ga=, += ‡?, +š™@, +æ®%=,  !" # % +'ö(\?, ('+)€?+*š™Y?++fff?, ,*+ . . /. 1 7 8 `r !z  ~. � ‰+“UUÕ>, ”“““+•.M;, –•••!¡,£,¤))))+¥? ¨!´!½+¿?!Î Ñ Ö Ü! ) ++½7†5!0- 7$!A, ,+G€¿, HG, I)))+J@+KìQ8= M,.,N P. R.T V).)W^ _^` ,^aGG,^bPP t* x)!.!<+=·Ñ8!R +S @! d , e, fMMM+‚ÛÉ?+ƒUUÕ@+„HB+±®Ga?+²ÍÌÌ=+³ÍÌL>+´ ×#<+µš™™>, ¶UUU+Îffæ?+Ïrá?+Ђ‹µ>+ÑÒŒE=, ÒÏÐÑ+Ó㥛=+Ôøˆh?+ÕfI€<, ÖÓÔÕ+×§è<+Ø» >+ÙxV?, ÚרÙ+ÛYÉ<, ÜÛÛÛ+ݯ޽8, ÞÝÝÝ+ߪÕ{?+àÁ«Ý>, áààà+â�Ës>, ãâââ+äshÍ?+åÜô¿+æLà–½, çäåæ+èRѽ+é4×�?+ê?Æ», ëèéê+ìMV»+í2•½+?, ïìíî+ ?+…Ï>+%ëµ=+`¿>+T A?+‘+7>++­¦=+�í×=+¼t;?, , , ,1+hvû?+ Ê@™¾+!,P(¾+"Š[¿+#&É©?+$)ñs¾+%¸õÞ½+&Oßݼ+'ŠŠ³?, ( !, )"#$, *%&',1+()*+,9•GÁ+-ŽÕ€@+.ÿæ[/, /..., 0,,,, 1---+21¬<+3îZ€@+4¼tÍA+5Ï·ŒB+6VŽ•B+7P�ØA+8ÿæÛ., 9888. ;!† +‡&Ó=+ˆ\�úA, ‰ˆˆˆ. ‹+£@@, ¤£££, ¥), ¦), §)), ¨), ©)), ª)), «)))!Ô -+Öff&?+×ÍÌ,@+ØÍ̈A, ÙØØØ+Ú33³>+ÛCq‰=+Ü�E¿;,-ÝÛÜ+Þ‚îSB.à.  <!. U ƒ …+‡ !Ä...+.È+.Ê€+.Ëÿÿÿÿ+.Ðí#+ûÏ+üÿÿÿN,2ÐÐ+!Án�>+",*ú>+#�Ø‹?+${¡>+%�Ø ?. ' )+*�"!—-+˜®Gá¼+™˜n¿+šX9´<,›G˜™š+œ{.=+�¸…?+ž ×#½,Ÿ)œ�ž+ ázÁ+¡¸…¿,-¢¡�!¶!Á +Äoƒ:. Æ æ ç+  ! .#.%. '. )+5 !®-  ¯6+±̼Œ+, ²±±± ´-.-µ º5 »3+¼+ÀÿÿO!§ ,-©+ªÀ.¬!' +) r1?+* ÀA++ «ª*>.m !†  +‰ ÛIA. ‹ . Ž .�  4!  -. .  .  . # . % !Ë +Î +Ï ¬Å'7 Ñ 7.7Ò Ô 8.8Õ . Ù Û 9.9Ü .à .â .ä !? !’  • +™ A. � . Ÿ . ¡ ¤ ...¦ ³  ´  ï  õ    !ß  +ñ €@.ó .õ .÷ .ù . û !G   H(+LÀ@+MA!k  . p!’% +ºæ±a!Ì % !ø  %.%.% #& %%!T . \. ^.%`!¼ ½<+¿þ Á:+Åü!Ì>= Ï>.>Ð!C!@!% 4B 7-+^€>.` f +Œ+�!ß1!ë!ý! --! . . !& !41! W --. Y!@ .@‚. £!«! !Ð@ , Ö¥¥¥,-×)). Ù. Û. d. f! +¡ƒù¢>! Î . Ð.Ò. Ô! .!Q . X! o . y. {. }. . �. ƒ. ¨!Å +× ×#>+Ø€A.,Ú. Þ. à. â. ä. ç,-Õûû,-Öüü,2ÝÐÐ! . ,-2¥¥ D ;DC;DF I-;IH L;LK O;ON R;RQ;IT;LV Y;YX [ ;[Z;[\ ^-;^] `;`_;Ya;Yb;^c;`d;Ye;Yf;Yg;Yh ˆ;D½;D¿;IÁ;LÃ;OÅ;RÇ;OÊ;OÌ;OÎ;OÐ;IÒ;OÕ;R×;LÙ;YÛ;[Ü;[Ý;^Þ;`ß;Yà;Yá;^â;`ã;Yä;Yå;Yæ;Yç;Dw;Dy;I{;L};O;R� …;…„;O‡;I‰;L‹;Y�;[Ž;[�;^�;`‘;Y’;Y“;^”;`•;Y–;Y—;Y˜;Y™;O;D!;D#;I%;L';O);O+;I-;L/;O1;O3;O5;O7 : ;:9;Y<. X;O„;D†;Dˆ;IŠ;LŒ;OŽ;O�;I’;L”;O–;O˜;Oš;Oœ;:ž,-¦GG. ¨. ª;OÆ;DÈ;DÊ;IÌ;LÎ;OÐ;OÒ;IÔ;LÖ;OØ;OÚ;OÜ;OÞ;:à;Yâ+éC,êéééé. ì îA.Aï;O;D;D;I!;L#;O%;O';I);L+;O-;O/;O1;O3;:5;Y7;Y8. @ BD.DC6üý7-ú7ûøù=þ�=ÿ�ùøQúQúP-VþÿZûþ86  7 øùøˆ   �  ˆ   ¼ © þ86!"77 ø;.-/;.01A#$�GA%&„Gù2ø2Ç3ª 43G÷5ú465ø6þ ø5A89$ E=:9A8;& =<;ª =<EÇ>« ?>G÷@ú?ABøAÇC:F« DCG>-Dù@øB>-€ù@ø@= E-÷FúEGFøG9 H (PIH)þIøFÇJ'« KJG÷LúKMNøMÇO:« POG>0PùLøN>0€ùLøL= Q0÷RúQSRøS9 T ,PUT)þUøRÇV:E« WVG÷XúWYXøY÷Zú=[Zø[Ç\E« ]\G÷^ú]_^ø_A`a$I=baþbø^A`c$H=dcþdøZA8e& G=feª gfE÷húgihøiA`j$I=kjA`l$J=mlA8n& E=onª poEPrspppp©qsmkþqøhùXøXA`t$H=utþu86yz7 w7xøv;~}A#{�GA%|„Gù€ø€A�‚{G=ƒ‚A�„|G=…„’†ƒ…P‡w)‘ˆ†‡>}ˆA‰Š}F=‹ŠƒŒ)x…�‹ŒA‰Ž}F>Ž�=�}þ�86 ’ 7 ‘ø�ù—ø—Ž ˜‘   ™‘”Ž š™ƒ ›š¼œ‘–© �œ˜›þ�86 ¡7ŸøžA#¢�Gù¦ø¦ §+Ÿ£¤A¨©¢ =ª©º «ª¥÷¬ú«­¬ø­O ®§§9 ¯’®Q°§P±¯°þ±ø¬þ§86³´ø²A%µ„Gù¶ø¶A8·µJF=¸· ¹&¸'þ¹86¼½7»øºA%¾„GùÀøÀA8Á¾JE=ÂÁA8þJG=Äð Å»©ÆÅÄÂÇÇ» „ÈÇ'ÂÉÆÈÇÊÉ Ë&Ê¿þË86 ÍÎøÌ;ÑÐsA%Ï„GùÒøÒA8ÓÏJ =ÔÓ Õ&Ô ×&Õ AÖØÐ×= ÙØþÙ86Û´øÚAÜ݇GùÞøÞA8ßÝ F=àß á&à'þá86ä½7ãøâAÜå‡GùæøæA8çå E=èçA8éå G=êé° ëã©ìëêèÇíã „îí'ÂïìîÇðï ñ&ð¿þñ86ó´øòA%ô„GùõøõA8öôIF=÷ö ø&÷'þø86û½7úøùA%ü„GùýøýA8þüIE=ÿþA8üIG=° ú©ÿÇú „'ÂÇþ86  7) 7 øA# �GA£GùøA¨EG=A`  =O ƒ   BA¨EE=º ¥©)…A8GE=  )E‚! Ep"!Q# Q$# %($ˆ&% '(&) (' )+("þ)86/07+7-,7-7 .ø*=$1¦=2§ù3ø3‚4+E|.54©6.-o85P 9,8V7:12X;:96þ;86,@A7 =7 >7,?ø<;VUW;POG;‰ST;MLN;.QR;_cbA#B�GA%C„GAD£G=$E¦=F§ùXøX>L?9YóùZøZö[]ùdød=^ecª`fae› gf÷húg[høhQieª jiG©kjEGP^lkE‚^mel>cmù\ø\=nO° onY÷púopqøqù[øpùrør=uO9vûu w&v¿ y&w¿AxzDFy=){zQ|{P}=)‘~|}O ~~¾€H› �€÷‚ú�ƒ„øƒ¼…I› †…>Q†ù‚ø„>Q€ù‚ø‚= ‡Q¨ ˆ‡÷‰úˆŠ‰øŠù]ø‰Q‹ Œ‹ƒ�)ŒQŽ{Q�ŽQ�{Q‘�Q’º “’©”“‘� •�”>S•Q–{Q—–º ˜—÷™ú˜š™øš=›SQœ{Q�œQž{O Ÿžž” >Ÿ…¡ ¥�¢¡¥ £1�)¢…¤›£>S¤ù™ø™O-¥>U{=)¦U9§ ¦=Q¨{Q©¨Qª{Q«ª¬ ¬«G÷­ú¬®­ø®Q¯{Q°¯Ç±©E« ²±G9³/°¥§²O ´³³9 µ ´Q¶³P·µ¶Q¸{…¹·¸Qº¹=»S…¼º»AÖ½LG= ¾½O ¿¹¹QÀ{QÁÀ…¼ÁP Ä  Ã.¾¿ÄAÖÅLG>ÅÃQÆ{QÇÆ¬ ÈÇG÷ÉúÈÊÉøÊQË{QÌËÇÍ©F« ÎÍG9Ï/Ì¥§ÎQÐÏ…ÑÐJƒÒÑ)QÓÏ…ÔÓJƒÕ)Ô…ÖÒÒƒ×)Ö…ØÕÕƒÙר Ú(Ù ÛÚQÜ{O ÝÜÜŽ ÞÝÒQß{O àßߎ áàÛ� âÞáQã{O äã㎠åäÕ� æâå  çEæAÖèL= éèP ë¼¼¼  ê.éçë  ìEêAÖíL>íìùÉøÉQî{Qïî¬ ðïG÷ñúðòñøòQó{QôóÇõ©« öõG9÷/ô¥§öA‰øL =ùøQú÷ û.ùú¼A‰üL >üûA‰ýLF=þýQÿ÷ .þÿ¼A‰LF>A‰LE=Q÷ .¼A‰LE>ùñøñù­ø­Q{Q¬ G÷ ú   ø Q {Q  Ç©'« G9/ ¥§AÖLH= O 9  Q{O … Q{QŽ =SŽ � AÖLH>ù ø ùsøsù]ø]=O€ E>O ùZø[A‰!LF="! #+"K)A‰$LF>$#A‰%LE=&% '+&)A‰(LE>('=,)Lþ)86-.7+7,ø*ù/ø/…0++ƒ1,)…201�32)…4M3…543ˆ6,5þ686;<78797:ø7ù>ø>…?99ƒ@):…A?@�BA: CB…D8C…E88ƒF):…GEF�HG: IH…J9I�KDJ L(K=ˆM¥LþM86 QR7 O7PøNùTøTƒ UIOƒV)P WVSŽ XUW� YOXþY86 cd7 [7 \7 ]7 ^7 _7 `7a7bøZùgøg”h[]¼ ih÷júikjøkþeøj� l]\  mEl”n[m o(n”p\m q(p”r[\ s(r=9 tQ`q9u-oa9v;hsa…wuvŽ xtwˆ y_fŽ zxb� {yz… |{^Ž }|hþ}86 € 7 ø~AÜ�‡Gù…ø…  †EA`‡� =ˆ‡O ‰ˆˆ”І‰ ‹+ŠG) Œ‹¼ �Œ‚÷Žú��Žø�ˆ�Œ‚ƒ‘)�ƒ’)‘ “(’ ”“ƒƒ•)” –+•)A`—�H=˜—O ™˜˜A`š�=›šO œ››P ž–––  �.™œžþ�øŽƒŸŒ‚ˆ Ÿ‚ƒ¡)  ¢(¡ £¢„ƒ¤)£ ¥+¤)A`¦�I=§¦O ¨§§A`©�J=ª©O «ªªP ­¥¥¥  ¬.¨«­þ¬86 ° 7 ¯ø®ù·ø·Ž ¸¯±…¹²UP º¹¹¹� »¸º… ¼¯»…½³´P ¾½½½� ¿¼¾Ž À¯±� ÁÀ¶… ¯Á…óµP ÄÃÃÃ� ÅÂĈ ƿňǴµP ÈÇÇǃ ÉÆÈþÉ86 ÍR7 Ë7ÌøÊùðøð”ñÒË…òÎñ”óÖË…ôÎó”õÚË…öÎõP ÷òôö� ø÷Ü… ù÷øƒ úùÞŽ û÷ß� üûá… ý÷ü� þý㈠ÿúþ”çÿ”ëÿ”ïÿP …ÎÌ�Û…ƒÝ…ß� à…  �  ∠ P    ˆ  þ86  7 ø;Ö:;ù<ø<  =(/‘ >=>:>= ?:  @?  A+@01ƒ BA0ƒC-,P DCCCˆ EBD>:E= F:= G:… HFG… IHH= J:Ž KJ2Ž LH3� MKLŽ NH4= O:… PNOƒ QMPŽ RI5� SQRŽ TI6= U:… VTUƒ WSVŽ XI7… YXH� ZWY  [(Z9  \[‘ ]+\þ]86 ` 7 _ø^AÜa‡GùbøbA¨caFG=dcŽ e_d  f(eeA¨gaFE=hgA8iaGF=jiª kjE÷lúkmlømŽ nfh� onfŽ pfhP qhhh� rpqˆ sorþsølª tjF÷uútvuøv9 w°fP xhhh9 y°xˆ zwyþzøuª {j ÷|ú{}|ø}9 ~Ífhþ~ø|ª j÷€ú�€ø�9 ‚fþ‚ø€þf86…†7 „øƒ;ÖŠ‹ùŒøŒŽ �„‡  Ž �>ŠŽ= �Š= �Š= ‘ŠO ’‘‘� “’‰””�“P •”””� –�•>Š–A‰—ŠG=˜—A‰™ŠE=š™�›˜šA‰œŠF=�œ…ž›� Ÿ žþŸ86¢†7 ¡ø ù¬ø¬  ­¡  ® ¡… ¯®®Ž °®Jƒ ±¤°… ²¯±9³…­� ´­¥9µ…´Q¶² ·.³µ¶� ¸­¦9¹…¸� º­§9»…ºQ¼² ½.¹»¼Q¾² ¿.·½¾� À­¨9Á…À� ­©9Ã…ÂQIJ Å.ÁÃÄ� Æ­ª9Ç…Æ� È­«9É…ÈQʲ Ë.ÇÉÊQ̲ Í.ÅËÌQβ Ï.¿ÍÎþÏ86ÓÔ7 Ñ7-ÒøÐ;‰ßàA%Õ„GùáøáA8âÕG=ãâÇäãKª åäG© æLåL÷çúæèçøèþ)øçA¨éÕEG =êéŽ ëÑv9ì¢ë…íìÖŽ îë×� ïîÙ9ð¢ï…ñðÚ�òíñ ó1³wò>ßóQôÒ¾ õô÷öúõ÷öø÷ -øÒ”ùøÝ ú ù…ûÞú ü û=ý߃þü¥…ÿþx�ýÿ +)>ßùöøö…êÎ=߃ˆwþ86 R7 7ø;.  A% „GAÜ ‡GùøA8 G=ÇKª G¨ ÷úø¾ )> ùø> Lùø=  © LL÷úøþøA8  = @O 9  9 !`  "1)P $"""  #.!$þ#86 ' 7 &ø%A%(„GAÜ)‡Gù*ø*A8+(G=,+Ç-,ª .-G© /L.L÷0ú/10ø1þ&ø0A`2(E =32O 4339 5`4Q63P 8666  7.&58þ786 ; 7 :ø9A<=‘Gù>ø>A�?=E=@?PA:‘B@AO CBB  DECþD86H.7F7GøEùIøIƒJ)F K(JˆL)G MKLƒN)M O+N)þO86 R 7 QøP;ÖTU;PVG;_rbA<S‘GùWøWQXQ Y+XG) ZYA`[S =\[O ]\\A`^SF=_^O `__ˆaZ‚ƒb)aA¨cSF =dc9eHbdP geee  f.]`gA¨hS =ihŽ jfi>TjA8kSGF=lk m&lùnønöoqùsøs=^trª`uat› vu÷wúvowøwQxtª yxG©zyEGP^{zE‚^|t{>r|ùpøp=}V° ~}m÷ú~€ø€ùoøù�ø�=„V †&„ A…ˆS‡†=‰ˆQЉQ‹ŠQŒ‰O �ŒŒ”Ž�Q �+ŽG) ��¸ ‘�‹÷’ú‘“”ø“Q•‰O –••>T–ù’ø”A¨—SIG=˜—¸ ™�˜÷šú™›šø›ƒœ�‹A¨�SIG=ž�ƒŸž‹ˆ œŸQ¡‰O ¢¡¡= £TA¨¤SIE=¥¤9¦H ¥P ¨¦¦¦  §.¢£¨>T§ùšøšù’ø’ù‚ø‚ùqøq=©V€ª©E>VªùnøoA`«SH=¬«O ­¬¬A`®S=¯®O °¯¯ƒ±Z‚ˆ²±‚A¨³S =´³9µH²´P ·µµµ  ¶.­°·A¨¸SH =¹¸Ž º¶¹= »TQ¼Q¾ ½¼P¿½½½© ¾¿»ºA¨ÀSIF=ÁÀŽ Â¾ÁþÂ86.ÃÄ7.Å7.ÆøÇª ÉÆÈª ÌÅʪ ÍÆË§ ÎÌͦ ÏÉΩ.ÑÏÐÆ‡.ÒÅÑ„.ÓÒÑ‚.ÔÅÓþÔ86 × 7 ÖøÕA<Ø‘G=#Ù–=Ú™ùÛøÛQÜÖQÝÖÞÝ ßÜÞˆàßN á àQâÖ ã+âG) äãˆåäMP-æáåA8çØGG=èçÇéè« êéG÷ëúêìëøìVíîÙÚXïîæO ðïïA¨ñØIF=òñŽ óðòþóøëg^ôÙÈ|2õôQöæQ.÷õoø÷…ùöø úù ý+úûün.þýQ.ÿõ9.ÃþÿQ.õ€.Q.õ9.ÃQæQ.õo…    + ûün.  Q. õ‚.  Ð .* È .' P2j.Ù‚.Ð .&Èg2Ù‚2 2&_ÙO A¨ØIF=Ž þ86  7 ø;Ö&'A< ‘Gù(ø(A`+ *G=,+O -,,Ž .-!>&.= /&A`0 *E=10O 211Q3…4"3Ž 524� 6/5>&6= 7&A`8 *F=98O :99Q;…<";Ž =:<� >7=>&>= ?&A`@ * =A@O BAAQC…D"CŽ EBD� F?E>&F= G&A`H *=IHO JIIQK…L#KQM…NLMŽ OJN� PGO>&P= Q&A`R *H=SRO TSSQU…V#UQW…XVWŽ YTX� ZQY>&Z= [&A`\ *I=]\O ^]]Q_…`£_Qa…b`aƒcb)…d$cŽ e^d� f[e>&f= g&A`h *J=ihO jiiQk…l#kQm…nlmŽ ojn� pgo>&p= q&A`r *'=srO tssQuQv…wuvQxQy…zxyƒ{wz…|%{Ž }t|� ~q}>&~= &  €(eþ€86 „R7 ‚7ƒø�A<…‘G="†”=‡˜ùˆøˆA8‰…GE=Љ ‹)ŠE‚Œ‹Ep�Œ…Žƒ�V��†‡X‘�‚ŽO ’‘‘þ’86-–—7”7•ø“ù£ø£Ž¤›”�¥¤ŸQ¦¥Q§¥…¨¦§…© • ª© «%¨ªQ¬¥…­«¬Q®¥�¯­®Ž-°¢¯O-±¥¥�-²°±þ²86µ¶7´ø³ù·ø· ¸(´ ¹(´…º¸¹…»ºº…¼»»þ¼86 ÀÁ7 ¾7 ¿ø½;ÖÅÆ;PÇG;_ÓbA܇GA<ÑGùÈøÈ>žA¨Éà =Êɺ ËÊÄ÷ÌúËÍÌøÍ9ÎÛùÏøÏöÐÒùÔøÔ=^ÕÓª`ÖaÕ› ×Ö÷Øú×ÐØøØQÙÕª ÚÙG©ÛÚEGP^ÜÛE‚^ÝÕÜ>ÓÝùÑøÑ=Þǰ ßÞÎ÷àúßàáøáùÐøàùâøâ=äÇ9åää è&å¿A8éÂèG=êéª ëêG÷ìúëíìøí= îÅ ï&å¿A`ðÂïG=ñðO òññˆ óòf ô&å¿A`õÂôF=öõO ÷öö ø÷”ù¿ø9úµùŽ ûóúA¨üà =ýüŽ þûý� ÿîþ>ÅÿùìøìùãøãùÒøÒ=Ç€E>ÇùÏøÐùÌøÌ= Åþ86 Á7 7 øA܇GA<‘Gù ø A`  =  O   A¨  =P   . 9 ÀA¨E=P   .þ86 7 7 7 ø;‰$%;.();‰"#;Ö&'A#�GA܇GA<‘G=" ”=!˜ù*ø*A�+G=,+P-)‘.,-Q/.0/A`1 =21O 322 4C3>"4A¨65 =76º 87¥÷9ú8:9ø:A¨;5G=<;ƒ=0< >(=>">ù9ø9A8?GG=@?ÇA@u« BAG÷CúBDEøDA¨F G=GFA¨H E=IH=J" K1GIJ L(KA¨M F=NM OLNº PK©QPOA¨RG=SR…TQS>$TùCøE=U"VUA¨WG=XW…YVX Z%Y [Zƒ\)[>$\ùCøCA¨] =^] _^¾ `_=÷aú`baøbA`c =dcO edd”fe=g$A¨hF=ihƒjfiA¨k =lk…mjl n%m onƒp)o q(gp>$qùaøa=r$ s+r)>$sA`t =utO vuu>&vA8wGG=xwÇyx'« zyG÷{úz|}ø|A¨~  =~º €>(€ù{ø}>(€ù{ø{= �(© ‚L�€÷ƒú‚„ƒø„A¨…5E=†…ƒ‡0†A¨ˆ5F=‰ˆA¨Š5E=‹ŠƒŒ‰‹ �(ŒˆŽ‡� �+Ž)A8�GE=‘� ’)‘F‚“’Ep”“ˆ•)”ƒ–)� —.•)–= ˜&9 ™;9 š„™—A¨›I =œ›Ž �šœA¨ž  =ŸžP ¡ŸŸŸ   .˜�¡>& ùƒøƒ= ¢&9 £À¢>&£= ¤&=¥$P §¥¥¥  ¦.¤§þ¦86-­®7©7 ª7 «7¬ø¨;‰¶;‰¸G;´³µ;‰·A¯°¨Gù¹ø¹ ½&©¼A¨¾°H½ =¿¾ Á+¿ÀmÂÁ Ã&©¼A¨Ä°Hà =ÅÄ Æ%Ŭª ÇÂ÷ÈúÇÉÈøÉP-ÊÆþÊøÈ Ë&©¼A`̰HËE=ÍÌO ÎÍÍŽ ÏÎ¥  Ы¸Ñв© ÒѲ« Óσ ÔÓªˆ ÕÔÒƒ ÖϪˆ ×ÖÒ  Ø%Õ×  Ù(Õ×QÚØ Û(ÚQÜÙ Ý%ÆÜP-ÞÛÝ>³Þª ß ÷àúßáâøáA‰ã³G=äãQåØ æ(äåQçØ è(æçA‰é³E=êéQëÙ ì%êëQíÙ î%ìíP-ïèî>³ïùàøâª ðÂG÷ñúðòóøòˆ ô«Ïˆ õ«Ï”öôõ>¶öˆ ÷ªÏˆ ø«Ï”ù÷ø>·ùˆ úªÏˆ ûªÏ”üúûƒýü)>¸ýùñøóQþÏQÿÏ %þÿQÏ…Jˆª ÂE©QÏQªƒQ «Q «…   Q «Q «…  � …Q«…Q«…ƒ>¶QªQ«…QªQ«…�……Q«… �! >·!Q"ªQ#ª…$"#Q%ªQ&ª…'%&�($'…)…*…+*…,+ª -ÂE©.-,)ƒ/(.>¸/ùñøñùàøà=0·=1·…201=3¶=4¸…534ƒ625=7¶ 87¸ 98±÷:ú9;<ø;==· >=¸ ?>±÷@ú?ABøAA‰C³E=DC=E¸º FE©GFGDA‰H³E>HGù@øB=I·º JI÷KúJLMøLA‰N³E=ON=P¸QP=R·…SJRˆTQS U%OTA‰V³E>VUùKøMA‰W³G=XW=Y¸ZY=[·…\J[ˆ]Z\ ^(X]A‰_³G>_^ùKøKù@ø@ù:ø<¸ `6÷aú`bcøbA‰d³E=ed=f¶º gf©hgGeA‰i³E>ihùaøc=j·kj l6ƒmkl=n¶ˆomn=p·qp r6�sqr=t¶ˆust v%ou=w·xw y6ƒzxy={¶ˆ|z{=}·~} 6�€~=�¶ˆ‚€� ƒ(|‚=„¶º …„÷†ú…‡ˆø‡A‰‰³G=Љ ‹(ŠvA‰Œ³E=�Œ Ž%�ƒP-�‹Ž>³�ù†øˆA‰�³G=‘�A‰’³E=“’ ”%“v¸ •‘”÷–ú•—˜ø—A‰™³E=š™ ›%švA‰œ³E>œ›ù–ø˜A‰�³G=ž� Ÿ(žƒA‰ ³G> Ÿù–ø–ù†ø†ùaøaù:ø:=-¡³þ¡86¦§7£7 ¤7 ¥ø¢;‰«¬;‰­A¯¨¨Gù®ø® ¯&£¼A»°¨H¯=3±°Q²±Q³²Q´±Qµ´¶µA`·¨ =¸·O ¹¸¸”º¤¹Q»±Q¼»ƒ½º¼…¾¶½ ¿¾ À%¿)…Á³À>«ÁQ±Qú ÄÃ÷ÅúÄÆÅøÆQDZQÈÇ É+ÈÀmÊÉQ˱O ÌËËŽ ÍÌ¥QÎÍQÏÍ Ð%ÎϪ ÑÊG÷ÒúÑÓÔøÓˆ Õ¥Í ÖBÕƒ×Ö)…ØÖ×… ÙÍ͈ Ú¥Ù ÛBÚ Ü(Û±ˆÝØÜ>­ÝùÒøÔª ÞÊ ÷ßúÞàáøà  ⥃ ãâÍ  ä(ãe åBäQæãQçãQèã é(çè ê(æé ë%ê�ìåë>­ìùßøáª íÊF÷îúíïðøïO-ñ¥¥ òBñƒóòÐQô¥ õôQö̓÷õöP-øó÷QùøQúø û(ùú ü%û -ý(ø© þBý�ÿüþ>­ÿùîøð… Ð¥  (Ä ˆ ) Q Í  (Ä ˆ ) P-   - E O- ¥¥  B Q ¥Q ̓ P- ”  Q Í  Q ¥ƒ    (  >­ ùîøîùßøßùÒøÒ= «= ­… ª Q ±Q  ˆ    + )Q ±Q      …   >« ùÅøÅ= «þ 86& ' 7! 7" 7# 7$ 7% ø A¯( ¨Gù, ø, - &! ¼A`. ( H- F=/ . Q0 / …1 0 # ´ 2 1 ÷3 ú2 4 3 ø4 Q5 / ƒ6 % $ …7 5 6 8 0 …9 8 " : 9 ; %: )…< 7 ; þ< ø3 = " ˆ> = # ? +> $ % º @ # ©A @ ? $ º B # ©C B % ? D # …E 0 D ƒF C A …G E F …H G ) I H J I ƒK )J ˆL K H ˆM H * ƒN + M …O H N ƒP ¥O …Q H P ƒR )Q ¸ S H ´©T S R L U 0 º V # ©W V A C …X # W �Y " X Z (Y …[ U Z \ [ ] %\ )Q^ / ƒ_ % $ ƒ` C A ƒa _ ` ƒb C A …c ] b …d c T �e a d …f ^ e þf 86k <7h 7i 7j øg ;‰l m ùn øn …o h i >l o =p l =q l …r p q >l r =s l =t l …u s t >l u =v l ƒw )v x (w >l x =y l =z l …{ y z >l { =| l } (h =~ j  } ~ …€ |  þ€ 86 … † 7‚ 7 ƒ 7 „ ø� ;PŒ G;‰� � ;ÖŠ ‹ ;Ö� Ž ;_¡ bA܇ ‡GA¯ˆ ¨Gù‘ ø‘ A`’ ˆ F=“ ’ O ” “ “ A¨• ˆ EE=– • Ž — ” – >Š — A¨˜ ˆ EG=™ ˜ š &‚ ¼A7› ˆ Hš H=œ › ù� ø� öž   ù¢ ø¢ =^£ ¡ ª`¤ a£ › ¥ ¤ ÷¦ ú¥ ž ¦ ø¦ Q§ £ ª ¨ § G©© ¨ EGP^ª © E‚^« £ ª >¡ « ùŸ øŸ =¬ Œ Q­ œ  ® &­ '° ¯ ¬ ® ÷° ú¯ ° ± ø± ùž ø° ù² ø² Q´ œ Qµ œ =¶ Œ ° · ¶ ©¸ · µ ´ =¹ Œ Ǻ ¹ „» º '¼ ¸ » ǽ ¼  ¾ &½ ¿ ¿ &¾ ¿AçÀ ‡ ¿ =Á À Q Á O à    Ä Ã >� Ä >� )QÅ Á QÆ Å « Ç Æ G÷È úÇ É È øÉ QÊ Á O Ë Ê Ê ƒ Ì Ë ƒ Í BÌ Î (Í P Ï Î Î Î ˆ Ð Ì Ï >� Ð Ñ BÌ QÒ Á QÓ Ò QÔ Á QÕ Ô 9Ö k Ñ Ó Õ >� Ö Q× Á QØ × ª Ù Ø F÷Ú úÙ Û Ú øÛ = Ü �  Ý Ü QÞ Á O ß Þ Þ ”à Ý ß Qá Á Qâ á ã (à â ƒä )ã Qå Á Qæ å ƒç )æ è (ç ˆé ä è ê (=é =ë � Qì Á Qí ì  î ê í ƒï )î …ð ë ï >� ð ùÚ øÚ ùÈ øÈ …ñ ™ ™ �ò )ñ …ó J™ = ô � ”õ „ ô …ö ó õ ƒ÷ ò ö = ø Š Qù Á O ú ù ù =û � …ü ™ ™ ƒý )ü …þ û ý …ÿ ‰ ÷  ÷ … ÿ ˆ þ   ¾ FÇ ¾  &  & ¼A¨ ˆ   =  …  Ž ú � ø >Š ù³ ø³ ù  ø  = Œ € E>Œ  ù� øž =  Š þ 86  7 7  7  7- ø ;." # ;Ö e;‰  ;.$ % ;‰ ;.  ;P! G;.  ;__ bAÜ ‡GA¯ ¨Gù& ø& ' & ¼A»(  H' =3) ( Q* ) P+  )‘, * + O - , , Q. ) P/  ‘0 . / O 1 0 0 A`2  =3 2 O 4 3 3 ”5  4 Q6 ) Q7 6 ƒ8 5 7 A`9  =: 9 O ; : : ”<  ; Q= ) Q> = º ? > Q@  QA  �B @ A …C B ¥> C QD ) QE D º F E ÷G úF H I øH J 8 ˆK J < QL  º M K L > M ùG øI > €ùG øG = N  ÷O úN P Q øP R 8 ˆS R < QT  ¸ U S T > U ùO øQ > €ùO øO = V  ÷W úV X W øX Y 8 ˆZ Y < > Z ùW øW ù[ ø[ ö\ ^ ù` ø` =^a _ ª`b aa › c b ÷d úc \ d ød Qe a ª f e G©g f EGP^h g E‚^i a h >_ i ù] ø] =j ! ©k ? 5° l j k ÷m úl m n øn ù\ øm ùo øo =q ! Çr q ª s r G¨ t s ÷u út v w øv ª x r >" x ùu øw >" Lùu øu = y " ©z y {|ª { r G¨ | { ÷} ú| ~  ø~ ª € r >$ € ù} ø >$ Lù} ø} = � $ ©‚ � }~=ƒ  Q„  P-… ƒ „ Q†  =‡  P-ˆ † ‡ =‰ ! ° Š ‰ 'P`Œ Š Š ©-‹ Œ ˆ … =� ! ° Ž � P`� Ž Ž ©-� �  ‹ Q‘ � Q’ � ƒ“ ‘ ’ …” “ ¥Q• � Q– � �— • – …˜ — ¥™ z ° š r F©› š ™ z …œ ” › �� ˜ œ Ž ž  � � Ÿ  ž Ž   1 � � ¡ -   9¢ ¦ Ÿ ¡ =£ ! ° ¤ £ ÷¥ ú¤ ¦ § ø¦ = ¨  Q© ) O ª © © 9 « …  Ÿ  … ¬ ª « Q­ ) O ® ­ ­ � ¯ ¬ ® …° ‚ ” ± +¢ )…² ° ± Ž ³ ¯ ² � ´ ¨ ³ > ´ ù¥ ø§ =µ …¶ ‚ ” …· ¶ ¢ �¸ µ · > ¸ ù¥ ø¥ ùp øp ù^ ø^ =¹ ! €º ¹ E>! º ù[ ø\ ¨ » ? ÷¼ ú» ½ ¼ ø½ Q¾  Q¿  9 À &  8 < ¾ ¿ > À ù¼ ø¼ = Á  = Pà Á  þà 86 Ê Ë 7 Å 7 Æ 7 Ç 7È 7É øÄ ;‰æ ;Pá â ;PÝ G;P× G;Ñ Ð Ò ;Pç G;Pã ä ;PÞ G;.Ø Ù ;Ô Ó Õ ;Öå e;‰ß à ;Û Ú Ü ;PÖ G;_î b;_5 b;_Y b;_v b;_¾ b;_ bAÜÌ ‡GA¯Í ¨Gùè øè ® é É zùê øê öë í ùï øï =^ð î ª`ñ að › ò ñ ÷ó úò ë ó øó Qô ð ª õ ô G©ö õ EGP^÷ ö E‚^ø ð ÷ >î ø ùì øì =ù × A8ú Í GG=û ú ü &û ©ý é ü ° þ ù ý ÷ÿ úþ ÿ ø ùë øÿ ù ø = × Ç  „  'Â É  Ç  Î ¨  é ÷ ú ø ª  G>Ø ù ø >Ø €ù ø = Ø ÷ ú   ø ùë ø  & ‚  E= × © é    & ¼A� Í H G=  P Æ )‘   O    P Ç ‘   O    9- ­   È Q  Q  º   ÷! ú " ! ø" =# Ö $ &# AP% Ð $ >%  =& Ö ' && A´( Ó ' >(  =) Ö €* ) E>Ö * =+ Ö ª , + ÷- ú, . - ø. ùë ø- ù! ø! ù ø ùí øí =/ × €0 / E>× 0 ùê øë ù1 ø1 ö2 4 ù6 ø6 =^7 5 ª`8 a7 › 9 8 ÷: ú9 2 : ø: Q; 7 ª < ; G©= < EGP^> = E‚^? 7 > >5 ? ù3 ø3 =@ Ý =A Ö ° B @ A ÷C úB C D øD ù2 øC ùE øE =G Ý =H Ý I &H APJ Ð I =K J =L Ý M &L A´N Ó M =-O N 9P  K Æ Ç O Q &G A~R Ú Q >R P ùF øF ù4 ø4 =S Ý €T S E>Ý T ù1 ø2 ùU øU öV X ùZ øZ =^[ Y ª`\ a[ › ] \ ÷^ ú] V ^ ø^ Q_ [ ª ` _ G©a ` EGP^b a E‚^c [ b >Y c ùW øW =d Þ =e Ö ° f d e ÷g úf g h øh ùV øg ùi øi =k Þ l &k A‰m Ú l =n m ¸ o n ÷p úo q p øq >ß >á Gùr ør ös u ùw øw =^x v ª`y ax › z y ÷{ úz s { ø{ Q| x ª } | G©~ } EGP^ ~ E‚^€ x  >v € ùt øt =� á =‚ Ö ° ƒ � ‚ ÷„ úƒ „ … ø… ùs ø„ ù† ø† =ˆ á ‰ &ˆ A‰Š Ó ‰ E=‹ Š =Œ Þ � &Œ A‰Ž Ó � E=� Ž � %‹ � =‘ á ’ &‘ A‰“ Ó ’ G=” “ =• Þ – &• A‰— Ó – G=˜ — ™ (” ˜ ƒš � ™ › (š =œ á � &œ A‰ž Ó � E=Ÿ ž =  á ¡ &  A‰¢ Ó ¡ G=£ ¢ ƒ¤ Ÿ £ ¥ (¤ ˆ¦ › ¥ =§ ß =¨ á © &¨ A‰ª Ú © =« ª ¬ (« …­ ¬ ¦ �® § ­ >ß ® ù‡ ø‡ ùu øu =¯ á €° ¯ E>á ° ùr øs =± Þ ² &± A‰³ Ú ² =´ ³ µ ´ =¶ ß · (¶ ±ˆ¸ µ · ¹ %¸ )>ã Gùº øº ö» ½ ù¿ ø¿ =^À ¾ ª`Á aÀ ›  Á ÷à ú » à øà QÄ À ª Å Ä G©Æ Å EGP^Ç Æ E‚^È À Ç >¾ È ù¼ ø¼ =É ã =Ê Ö ° Ë É Ê ÷Ì úË Ì Í øÍ ù» øÌ ùÎ øÎ =Ð ã Ñ &Ð A‰Ò Ú Ñ =Ó Ò º Ô Ó ÷Õ úÔ Ö Õ øÖ =× ã Ø &× A‰Ù Ó Ø E=Ú Ù =Û Þ Ü &Û A‰Ý Ó Ü E=Þ Ý ß %Ú Þ =à ã á &à A‰â Ó á G=ã â =ä Þ å &ä A‰æ Ó å G=ç æ è (ã ç ƒé ß è ê (é =ë ã ì &ë A‰í Ó ì E=î í =ï ã ð &ï A‰ñ Ó ð G=ò ñ ƒó î ò ô (ó ˆõ ê ô =ö ã ÷ &ö A~ø Ú ÷ =ù ø …ú õ ¹ ƒû )ú Žü ù û ý &ö A~þ Ú ý >þ ü ùÕ øÕ ùÏ øÏ ù½ ø½ =ÿ ã € ÿ E>ã ùº ø» ùp øp ùj øj ùX øX = Þ €  E>Þ  ùU øV ù ø ö  ù ø =^  ª` a › ÷ ú  ø Q ª  G©  EGP^  E‚^  >  ù ø = ç = Ö °    ÷ ú   ø ù ø ù ø = ç  & A‰ Ú  =  º   ÷ ú   ø = å =! ç " &! A~# Ú " =$ # O % $ $ � & % >å & =' æ =( ç ) &( A‰* Ú ) =+ * �, ' + >æ , ù ø ù ø ù ø =- ç €. - E>ç . ù ø =/ æ 0 / 1 0 Ž 2 Å 1 = 3 å ƒ4 )1 =5 æ 6 (5 Ï ˆ7 4 6 Ž 8 3 7 � 9 2 8 þ9 86 > ? 7 ; 7 < 7= ø: A#@ �GAÜA ‡GA¯B ¨GùC øC A¨D @ GGF=E D A¨F @ GEF=G F A¨H @ GFF=I H P J E G I  K EJ A`L @ =M L O N M M A�O @ G=P O PQ < )‘R P Q QS R Ž T K S ƒ U < T A¨V @ =W V º X W ¥PZ X X X © Y Z U N ƒ [ < Y \ B[ ƒ ] < Y ^ (\ P _ ^ ^ ^ ˆ ` ] _ 9 a Ê ; Y ` \ = º b \ Pd b b b © c d a ; þc 86 i 7 f 7 g 7 h øe A#j �GAÜk ‡GA¯l ¨Gùm øm A¨n j GGF=o n A¨p j GEF=q p A¨r j GFF=s r P t o q s  u Et A`v j =w v O x w w A�y j G=z y P{ g )‘| z { Q} | Ž ~ u } ƒ  g ~ A¨€ j =� € º ‚ � ¥P„ ‚ ‚ ‚ © ƒ „  x A8… l GE=† … 9 ‡ Ê f ƒ h y† A¨ˆ l EF=‰ ˆ P ‹ ‰ ‰ ‰  Š .f ‡ ‹ þŠ 86‘ ’ 7� 7 Ž 7 � 7 � øŒ ;¤ £ Ë;.ž Ÿ ;Pš G;¤ ¥ ¦ ;.  ¡ ;P› G;‰¢ ;.œ � ;_Ó b;_w b;_Œ bA#“ �GAÜ” ‡GA• – ŠG=— �=˜ �ù§ ø§ ¨ &� ¿A8© ” ¨ G=ª © « &� ¿A`¬ ” « E=­ ¬ O ® ­ ­  ¯ &� ¿A8° ” ¯  =± ° ² &± ¼ µ &² ¼A`¶ – Eµ G=· ¶ ¸ &² ¼A8¹ – E¸ G=º ¹ » &² ¼A8¼ – E» E=½ ¼ ¾ )½ EA�¿ “ G=À ¿ PÁ Ž )‘ À Á Qà  Ä Ã ª Å ª G÷Æ úÅ Ç Æ øÇ È &² ¼A¨É – EÈ FE=Ê É º Ë Ä Ê ÷Ì úË Í Ì øÍ þ)øÌ ‚Î ¾ E>š Î ùÏ øÏ öÐ Ò ùÔ øÔ =^Õ Ó ª`Ö aÕ › × Ö ÷Ø ú× Ð Ø øØ QÙ Õ ª Ú Ù G©Û Ú EGP^Ü Û E‚^Ý Õ Ü >Ó Ý ùÑ øÑ =Þ › ° ß Þ ¾ ÷à úß à á øá ùÐ øà ùâ øâ =ä › å &ä æ &² ¼A¨ç – Eæ Eå =è ç ¼ é Ä è ÷ê úé ë ê øë =ì › >š ì ùÐ øê ùã øã ùÒ øÒ =í › €î í E>› î ùÏ øÐ ùÆ øÆ =ð š ‚ñ ¾ E ò &ð ñ €ó º ò ô &ó ¼ ö &ô ¼A`÷ – Fö F=ø ÷ Qù ø Qú ø  û CŽ ® …ü ú û �ý ù ü Qþ · Qÿ ·   (ÿ )… þ …  ý Ž  �  �  Ž  Q · …  ý Ž  �  �    ª ª E÷ ú ø ƒ  ®   Q Q ¾    ÷ ú   ø Q Q ¾    >œ  ù ø >œ €ù ø =  œ ÷ ú   ø Q ¾   ©  GE>š  ù ø Q Q ¾   ÷! ú " # ø" Q$ ¾ % $ ©& % F >š & ù! ø# Q' ¾ ( ' ©) ( H>š ) ù! ø! ù ø ù ø =* š ‚+ ¾ E , &* + €- º , . &- ¼ / &. ¼A�0 – F/ G=1 0 P2  )‘3 1 2 Q4 3 ¼ 5 4 ÷6 ú5 7 6 ø7 þ)ø6 O 8 3 3 Q9 3 P : 9 9 9 ˆ ; 8 : Q< ; = < º > = )¨ ? > ÷@ ú? A B øA QC ;  D C º E D )>ž E ù@ øB >ž Lù@ ø@ = F ž ¨ G F ÷H úG I J øI QK ; º L K )>  L ùH øJ >  LùH øH = M   ÷N úM O N øO þ)øN P &. ¼A`Q – FP E=R Q QS ; …T S ¥�U T ¥QV ; …W V ¥ƒX ¥W P-Y U X O-Z R R O-[ R R …-\ Y [ �-] Z \ A¨^ – GG=_ ^ O-` R R …a ¥_ P-b a a �-c ` b O-d R R O-e R R �-f d e …g ¥_ P-h g g ƒ-i f h Qj · ¼ k j ÷l úk m n øm -o +] c i Qp ; 9q üo p >¢ q ùl øn …r j _ ùs øs öt v ùx øx =^y w ª`z ay › { z ÷| ú{ t | ø| Q} y ª ~ } G© ~ EGP^€  E‚^� y € >w � ùu øu =.‚ £ ³ ƒ ‚ Ð÷„ úƒ „ … ø… ùt ø„ ù† ø† >¥ Ëùˆ øˆ ö‰ ‹ ù� ø� =^Ž Œ ª`� aŽ › � � ÷‘ ú� ‰ ‘ ø‘ Q’ Ž ª “ ’ G©” “ EGP^• ” E‚^– Ž • >Œ – ùŠ øŠ =.— ¥ ³ ˜ — Ð÷™ ú˜ ™ š øš ù‰ ø™ ù› ø› =.� ¥ ož � =.Ÿ £ o  Ÿ P-¡ ž   Ž-¢ ¡ r �-£ ] ¢ -¤ +£ c i =¥ ¢ Q¦ ; 9§ ü¤ ¦ �¨ ¥ § >¢ ¨ ùœ øœ ù‹ ø‹ =.© ¥ €.ª © Ð>¥ ª ùˆ ø‰ ù‡ ø‡ ùv øv =.« £ €.¬ « Ð>£ ¬ ùs øt =­ ¢ ˆ® ­ ™ >¢ ® ùl øl ª ¯ ª G÷° ú¯ ± ° ø± ² &² ¼A`³ – E² F=´ ³ =µ ¢ Q¶ ´ Q· ´  ¸ 1¶ · Ä ¹ .µ )¸ >¢ ¹ ù° ø° =º ¢ Q» ·  ¼ .)º » þ¼ 86 ¿ 7 ¾ ø½ A%À „GùÁ øÁ A¨à À HGG=Ä Ã A`Å À HG=Æ Å O Ç Æ Æ ”È Ç ¾ �É Ä È A¨Ê À HEG=Ë Ê A`Ì À HE=Í Ì O Î Í Í ”Ï Î ¾ �Ð Ë Ï A¨Ñ À HFG=Ò Ñ A`Ó À HF=Ô Ó O Õ Ô Ô ”Ö Õ ¾ �× Ò Ö P Ø É Ð ×  Ù (Ø eþÙ 86Þ ß 7 Û 7 Ü 7 Ý øÚ A%à „Gùá øá ÷â úÜ ã â øã Pä Ý )þä øâ A8å à G=æ å Çç æ '« è ç G© é Lè €÷ê úé ë ê øë 9 ì ¿ Û Pí ì )þí øê þ£86 ð 7 ï øî ;.ú û ;‰ô õ ;‰ø ù ;‰ò ó ;‰ö ÷ ùü øü  ý ï Qþ ý Qÿ ý ¾ þ ÿ ÷úøQý Qý ¾ >ú ùø>ú €ùø= ú ÷ú  ø Q ý >ô Q ï ¾  ÷ú ø>ò Qï >ö Qï >ø ùø>ò )Qï >ö Qï >ø ùøùø Qý Qý ¾ ÷úøQý >ô Qï ¾ ÷!ú "#ø">ò JQ$ï >ö $Q%ï >ø %ù!ø#>ò £Q&ï >ö &Q'ï ('>ø (ù!ø!ùøQ)ý >ô )Q*ï ¾ +*÷,ú+-.ø->ò ñ Q/ï >ö /Q0ï 10>ø 1ù,ø.>ò SQ2ï 32>ö 3Q4ï 54>ø 5ù,ø,ùøùø=6ò =7ö =8ô ˆ978�:9)…;:¥=<ø ==ô ˆ><=�?>)…@?¥P A6;@þA86 FG7C7 D7EøBAHIžG=#J¡=K¢ùNøNA8OIGF=POÂQPE R)QEpSRˆT¥SQUDƒV)T W+UTVQXDƒY)T Z+XTYQ[D�\[Wˆ]\Lp^C�_^Zˆ`_MP-a]`pbEVícJKXdcabO eddþe86 jk7g7 h7iøf;.opAHlžG=#m¡=n¢ùqøqA8rlGE=sr t)sE‚utEpvu w+iv x+wÀmyxpzyƒ{wz9 |ð h9 }Fg|y¼ ~{¨ ~÷€ú�‚ø�€ƒyE® „ƒt>o„ù€ø‚>oLù€ø€= …o÷†ú…‡†ø‡þ}ø†ƒˆ){Ž ‰}ˆ€ŠyE9 ‹Fg|ŠŽ Œ‹{� �‰Œþ�86‘’7%�7 �øŽù“ø“Q”�P•�)‘–”•O —––Q˜�O ™˜˜Qš™Q›— œ›ƒ�šœQž™QŸ—  Ÿƒ¡ž Q¢™Q£— ¤£ƒ¥¢¤ ¦%¡¥ §%�¦¸ ¨§÷©ú¨ª©øªþø©Q«�Q¬«º ­¬¨ ®­÷¯ú®°¯ø°þ)ø¯Q±�Q²±ˆ³§² ´%³)þ´86¹<7¶7·7¸øµù»ø»º ¼·÷½ú¼¾½ø¾ƒ¿¸¶ˆÀ¿·þÀø½¸ Á·÷ÂúÁÃÂøÃĸƒÅĶˆÆÅ·þÆøÂþº86 ËÌ7%È7 É7 ÊøÇùÍøÍQÎÈPÏÊ‘ÐÎÏO ÑÐÐQÒÈQÓÒÇÔÓEª ÕÔG÷ÖúÕ×Öø×þÑøÖQØÈPÙÉ)‘ÚØÙO ÛÚÚQÜÈO ÝÜÜQÞÛQßÑQàÝ9á¹ÞßàQâÛQãÑQäÝ9å¹âãäQæÛQçÑQèÝ9鹿çè ê%åé ë%áê ì(ëŽ íÑì� îÛíQïÈO ðïïƒ ñîðþñ86÷ø7 ó7 ô7õ7öøò;;‰ý;ÿ;Öüe;PþG;_bAHùžG=#ú¡=û¢ùøA8ùGG= &'A8ùGE=   ) E‚  Ep  … õ ùøöùø=^ª`a› ÷úøQª G©EGP^E‚^>ùø=þ° ÷ú ø ùøù!ø!=$þ &&$JA%'ùE&=%('Q)(Q*)Â+ö*Ç,+Eª -,G÷.ú-/.ø/ùø.>ÿ(=%0ÿ91‘0ó¼ 21÷3ú243ø4ùø3= 5üQ6(Q76>(=%89 9Ë8óô9 :j79 Q;(Q<;Ž =:<Ž >=1� ?5>>ü?=@ý�A@1>ýAù"ø"ùø=Bþ€CBE>þCùø=Dýº ED)÷FúEGFøG= Hü=IýP JIIIˆ KHJ>üK>ý)ùFøF= Lü=MýPNLMþN86ST7 P7 Q7RøO;Ö]^;‰Y;.[\;ÖXe;_`;PZG;_mbAHUžG=#V¡=W¢ùaøaA8bUGG=cb d&c'A8eUGE=fe g)fE‚hgEùiøiöjlùnøn=^omª`pao› qp÷rúqjrørQsoª tsG©utEGP^vuE‚^wov>mwùkøk=xZ° yxd÷zúyz{ø{ùjøzù|ø|=~Z &~JA%€UE=%�€Q‚�Qƒ‚„RƒÇ…„Eª †…G¨ ‡†÷ˆú‡‰Šø‰Q‹�QŒ‹ª �ŒG>[�ùˆøŠ>[Lùˆøˆ= Ž[÷�úŽ��ø�ùlø�>_�=%‘_9’‘‘P¼ “’÷”ú“•”ø•ùlø”Q–�O —––>]—Q˜�Q™˜ª š™E÷›úšœ›øœQ��Qž�QŸ�P Q‘¡Ÿ O ¢¡¡9 £ð ¢9 ¤Fž£h>]¤ù›ø›= ¥X= ¦]Ž §¦’� ¨¥§>X¨=©Y�ª©’>Yªù}ø}ùløl=«Z€¬«E>Z¬ùiøj=­Yº ®­)÷¯ú®°¯ø°= ±X=²YP ³²²²ˆ ´±³>X´>Y)ù¯ø¯= µX=¶YP·µ¶þ·86»¼7¹7ºø¸A½¾«GùÀøÀ Â&¹¿„à€Äú Æ&ÄÅA`ǾGÆ=ÈÇþÈ86>ËÌ7=ÊøÉ;ÏÎÐA½Í«GùÑøÑQÒÊQÓÊQÔÓQÕÒ9Ö»ÕGŽ×ÖÔQØÓQÙÒ9Ú»ÙGŽÛÚØ�Ü×ÛQÝÓQÞÒ9ß»ÞGŽàßÝ�áÜàQâÓQãÒ9ä»ãGŽåäâ�æáåA~çÎG>çæQèÓQéÒ9ê»éEŽëêèQìÓQíÒ9î»íEŽïîì�ðëïQñÓQòÒ9ó»òEŽôóñ�õðôQöÓQ÷Ò9ø»÷EŽùøö�úõùA~ûÎE>ûúQüÓQýÒ9þ»ýFŽÿþüQÓQÒ9»FŽ�ÿQÓQÒ9»FŽ� Q ÓQ Ò9 » FŽ   �  A~ÎF>=>Îþ867Cøùø=÷A~ >= øPA~>ý867@øùøQ  >÷ Q! O "!!>ø"ý86$%ø#ù&ø&ý86 ) 7 (ø'ù*ø*Q+(Q,(-,Q.(P /+-.þ/862¡71ø0A#3�GA45òGù6ø6A¨85IG=98¼ :9÷;ú:<;ø<þ1ø;A�=3E=>=‘?>1Q@?¼ A@=÷BúACBøCþ1øBA7D5I=-EDŽ-FE¥O-G??QH?P-IHHˆ-JGI…-KJF -LKˆ-MLF=NÉQO?Ž-PMOQQ?QR?PSPQR‘TNSO UTTQVTP WVVVˆ XUWPYX)þY86[%øZ;‰_`A#\�GA4]òGùaøa=1bÅ= c²‘ dbc  eEdAfg] = hg9 i)h  jEi”kej l(k>_lA¨m]=nm¾ onJ÷púoqpøq=r_A¨s]=ts…urt�vu¥ wvA¨x]=yxˆzwy>_zùpøpAf{]¼= |{Af}]‡= ~}Qe…€¥��€¥P ƒ���  ‚.|~ƒAf„] = …„=†_Ž ‡…†� ˆ‚‡=‰¼O Љ‰… ‹ˆŠA¨�]Œ=Ž�Ž �‹ŽAf‘]�= ’‘� “�’>ø“=”Ê= •¯P–•)‘—”–9˜2—O ™˜˜>¯™=1šË= ›²‘ œš›  �Eœ>²�=-ž¸A7Ÿ]E=- Ÿ…-¡ž A7¢]F=-£¢�-¤¡£A7¥] =-¦¥A¨§\ =¨§Ž-©¦¨�-ª¤©>¸ªA�«\E=¬«‘­¬˜Q®­A¨¯]J=°¯ƒ±®^A¨²]'=³² ´(³Äˆµ±´ ¶+µ)…·°¶Ž-¸ª®P¹¸®·>÷¹ý86»%øºA4¼òG=#½õ=¾öù¿ø¿=À÷O-ÁÀÀA×Â÷F=àÄ(Ã=P-ÅÄĈ-ÆÁÅ=-ǸA×È÷ =ÉÈ Ê+É)P-ÌÊÊ -Ë.ÇÆÌVíͽ¾WÎÍËO ÏÎÎA`мG=ÑÐO ÒÑÑ… ÓÏÒ= Ôø… ÕÓÔ>ÙÕQÖÎA¨×¼G =Ø×…ÙÖØ>ÚÙA¨Ú¼=ÛÚ>ÛÛý861Þß7ÝøÜùàøàQáÝO âááQãÝO äããQåÝO æååP1çâäæþç86êë7éøèùìøì91íÞéT1îíQïéO ðïï‘ ñîð òñQ óîPôóQ õîPöõQ ÷îPø÷Pùò)Púôöøùþú86üýøûA#þ�GùÿøÿA`þH=A`þI=A`þJ=A`þ'=Pþ86-  7- ø ù ø Q Q ƒ)P-þ86 ø;.;.ùø÷úLø>€ùø>€ùø= ¨ ÷ú !ø >€ùø!>Lùø= "þ"86 %&7$ø#A%'„Gù(ø(A8)'G=*)Ç+*F« ,+GÇ-$t« .-G¥ /,.þ/863471712ø0A#5�Gù6ø6>Â1>Å2A�75G=8799ê8>È99:ü>É:A�;5G=<;’=<1>Ê=A�>5G=?>91@Þ?’1A@2>ËAQB1O CBB>ÌCA�D5G=EDQF1O GFFPHG)‘IEHO JII>ÍJA¶KÈF=LKO MLL>ÎMý86VW7 O7 P7Q7-R7-S7T7UøN;.XYùZøZ>¯O>²PO [QQ>³[O \QQ  ]DP\Q^QŽ _]^>´_9-` R>¸`9-a S>»a>¼T|.bU>Áb>µ¤÷cú€deød>X€ùcøe>X€ùcøc= fX÷gúfhiøh=jÂ= k¯Plk)‘mjlO nmm>¯n=1oÅ= p²‘ qop>²q=1rÅ= s³‘ trs>³t=1uÅ= v´‘ wuv>´wýøiýøgý86@~7y7 z7 {7|7}øx;C�‚A#€�GùƒøƒA�„€F=…„‘†…yA~‡�G>‡†÷ˆú€‰ˆø‰=еA~‹�G>‹ŠùˆøˆO ŒyyAÖ��E>�Œ  ŽEzAÖ��F>�Ž=-�¸A´‘� >‘�AP’�>’}  “E{P”“|A~•�H>•”=–¼A~—�I>—–=-˜»A´™�J>™˜=.š½ .›*šÈ|œ›AP��'>�œ9ž�=@Ÿ�þŸ86 ¡ø ;.¢£ù¤ø¤÷¥ú€¦§ø¦>¢€ù¥ø§>¢Lù¥ø¥= ¨¢þ¨86ª«ø©ù¬ø¬÷­úL®­ø®=¯È= °¯P±°)‘²¯±þ²ø­= ³¯P´³)þ´86 · 7 ¶øµù¸ø¸÷¹úLº¹øº=»È91¼Þ»‘ ½¼¶þ½ø¹þ¶86ÁÂ7¿7 Àø¾A%ÄGùÄøÄA8ÅÃG=ÆÅÇÇÆF« ÈÇG¥ ÉÈÀ©ÊÉG)…Ë¿ÊþË86ÏÐ7@Í7 ÎøÌ;ÖØÙ;ÖÚÛA#Ñ�GA%Ò„GA4ÓòG=#Ôõ=ÕöùÜøÜQÝÍ9 Þ%Ý¥ ßÎÞ>ñß>ÑßQàÍ>ÐàQáÍO-âááA`ãÑ=äãO-åää…-æâå>ææA�çÒG=èçA�éÒE=êé91ëÞê9ì3èëA�íÑG=îí91ïÞîQ ðÍ  ñEð òñQ óÍ  ôEóPößßß© õöôò>ïõ>ðõQ ÷Í>î÷QøÍO ùøø>Øù= úØ= ûØ”üõûŽ ýõüƒ þúý  ÿEþ>Øÿ= Ø  DõQÍQŽ A�ÑG=Q ÍP)‘ O   >¯ = ¯>Ï = ¯‘ ïõ  E >²= ²= Ø‘ ï  E>³‘ ï  E>´= ¯   EA¨Ñ =º ¥P© ¨>ÔQ-Í>¸Q-Í>»QÍ>¼>ÕÖ>Ö)>ÙI>Ú)>Û)>Ü)>Ý>Þ¥>ß)>à>á>âe>ã)>ä>åe9 Í9!»T1"ï= #²¶$#š %$÷&ú%'&ø'= (²‘ )"(  *E)>ð*ù&ø&= +Õ¶,+Öš -,÷.ú-/.ø/= 0Õ>Ú0= 1ÚO-211Ž-32Jƒ-43×P 54>Ú5= 6ÚO-766= 8ÚO-988”:79ƒ;): <(; =<A‰>ÚF>>== ?²= @³A‰AÚG=BAŽ C@B= D´A‰EÚE=FEŽ GDF� HCG= I²A‰JÚF=KJŽ LIK� MHL=NÖP PNNN  O.?MP  QEO>²Q= R²‘ S"R  TES>ðTù.ø.= U϶VU š WV÷XúWYZøY=[È= \ÏP]\)‘^[]O _^^>î_ýøZýøXý86 b&7aø`;.cd;.efùgøgÇhaF« ihG÷júikjøkþLøj÷lú€mnøm= oñ>coùløn>c€ùløl= pc÷qúprqørþLøq÷súLtuøt=vÚ=wÛ¸ xvw>exùsøu>e€ùsøs= yeþy86 | 7 {øzA#}�Gù~ø~A¨}GGF=€A¨�}GEF=‚�A¨ƒ}GFF=„ƒP …€‚„A`†} =‡†O ˆ‡‡ƒ ‰ˆ{  ŠE‰  ‹E…A¨Œ} =�Œº Ž�¥P�ŽŽŽ© ��‹Šþ�86“¶7’ø‘ù”ø”ƒ•)’ –+•)…—––…˜——…™˜–þ™86Ÿ 7›7œ7�7žøšù¢ø¢ £(›÷¤ú€¥¤ø¥�¦›ž�§)ž�¨)ž…©§¨ˆª¦© «(ª…¬«¡þ¬ø¤÷­ú€®­ø®¯ž °(ž´ ±1¯°›…²±¡þ²ø­÷³ú€´³ø´…µJ�…¶µ�…·¶žƒ¸·¥9¹“œ…º¸¹�»)º9¼“£…½¸¼�¾)½…¿¡»…À¿¾…ÁÀ£þÁø³…£¡þÂ86 ÍÎ7 Ä7 Å7 Æ7 Ç7 È7 É7Ê7Ë7ÌøÃ;ÖÏÐ;‰ÑÒ;.ÓÔùÕøÕ”ÖÄÆ ×%Ö)”ØÄÅ Ù(Ø=� ÚÆÅ  ÛEÚ”ÜÆÛ Ý+Ü)9ÞŸ×ÙÝËŽ ßÈÞ… àßÇ>ÏຠáË÷âúáãâøã÷äú€åæøå  çGÆÄ èç  éEè”êéŃë)Ë>Ñë=ìÑ=íÑ…îìí>Ñî= ïÏ… ðÈÇ=ñÑ…òË¥ƒóñò=ôÑ…õË¥�öôõ ÷1óöê=øÑ…ù÷ø…úùÌŽ ûðú� üïû>Ïüùäøæ÷ýú€þÿøþº ×>Óùýøÿ>Ó€ùýøý= Ó÷úø”ÄÛ (”ÅÛ (9 QÉ= Ï9 -Ê9 ;×ÙÊ…   Ž  …Ì׎  … Ç�  >Ïùøùäøäùâøâ= Ïþ8677 ø;‰A܇Gùø &¿Aç=QQ ª ! G÷"ú!#"ø#Q$O %$$ &%P'&)þ'ø"Q(O )((ƒ *) +B* ,(+P -,,,ˆ .*-Q/Q0/Q1Q2193k +02>3Q4Q54ª 65F÷7ú687ø8Q9Q:9 ;.Q<O =<<”>;= ?(>:ƒ@)?ƒA): B(AˆC@B D(=C=EQFQGF HDGƒI)H…JEI>Jù7ø7=KPL.KþL86PQ7N7 OøM;.WXA#R�GAÜS‡GA• TŠG=U�=V�ùYøY÷Zú€[\ø[ ]&N¿A8^S]E=_^« `_E>W`ùZø\>WLùZøZ= aW÷búacbøcþ)øb= dî= eï9f‘ NdeOþf86 no7 h7 i7 j7 k7l7møg;Ö€�;Öz{;Ö~;Öxy;Ö‚ƒ;Ö|}A%p„GAÜq‡GA<r‘G="s”=t˜AHužG=#v¡=w¢ù„ø„= …hi ‡(†=ƒˆ)lP ‰ˆˆˆ  Š(‰kƒ ‹ŠkƒŒ)‡ �ŒSŽ Ž‹�� �kŽ9�Þ h€eA8‘rGG=’‘Ç“’'« ”“G÷•ú”–—ø–A¨˜r'G=™˜A¨šrI =›š…œ™›A`�rJ=ž�O Ÿžž>zŸA8 rGG=¡ Ç¢¡« £¢G÷¤ú£¥¤ø¥A`¦rJ=§¦O ¨§§9 ©;h9 ª©Ž «ªœA¨¬rJ =­¬P ¯­­­  ®.¨«¯>z®ù¤ø¤Q°�º ±°÷²ú±³²ø³O ´��>z´ù²ø²A`µrJ=¶µO ·¶¶>|·A8¸rGG=¹¸Çº¹K« »ºG÷¼ú»½¾ø½ ¿i  ÀG¿h9 Á;À9 „ÁlŽ Ãœ>|Ãù¼ø¾A8ÄrGG=ÅÄÇÆÅ« ÇÆG÷ÈúÇÉÈøÉ>|eùÈøÈù¼ø¼9-Ê–l‡A8ËuGG=Ìˬ ÍÌG÷ÎúÍÏÐøÏ Ñi  ÒGÑhA8ÓpF=ÔÓ9Õ÷…ÒlÔ= Ö|Q×ÕƒØ)׎ ÙÖØO ÚÕÕ� ÛÙÚ= Üz>~ÜQÝ�¼ ÞÝ÷ßúÞàßøàA8ápF=âá9ãS…hâ= äzQåãƒæ)åŽ çäæO èãã� éçè>~éùßøß= ê~… ëjêQìÊŽ íkìQîÊQïk…ð„ï ñ+ðm)…òîñP óòòò� ôíó… õÛô� öëõ>xöùÎøÐ= ÷z… øj÷= ù|QúÊŽ ûkúQüÊQýk…þ„ý ÿ+þm)…üÿP � û… ù� ø>xùÎøÎù•ø—A8qGE=ÇF« G÷ ú  ø A` q =  O   A`q=O A`qH=O � Ž ¥A`qI=O A`qJ=O � Ž ¥”h… ¥�! ¥ "+!)P $"""  #.$ %i  &G%h9 '€&P )lll  (.')A8*uGG=+*¬ ,+G÷-ú,./ø. 0i  1G0hA82pF=3294÷…1l3A¨5qE =65Ž 7(6Q84ƒ9)8Ž :79O ;44� <:;O =��>€=Q>�¼ ?>÷@ú?A@øAA8BpF=CB9DS…hCA¨EqE =FEŽ G#FQHDƒI)HŽ JGIO KDD� LJK>€Lù@ø@= M€… NjM… O<�� PNO>xPù-ø/QQ�º RQ÷SúRTUøTO V��… WjV… X(�A¨YqE =ZYŽ [XZ� \W[>x\ùSøU… ]j#… ^(�� _]^A¨`qE =a`Ž b_a>xbùSøSù-ø-ù ø A8cuGG=dc¬ edG÷fúeghøg ii  jGihA8kpF=lk9m÷…jllA`nqE=onO pooQqmƒr)qŽ sprO tmm� ustO v��>‚vQw�¼ xw÷yúxzyøzA8{pF=|{9}S…h|A`~qE=~O €Q�}ƒ‚)�Ž ƒ€‚O „}}� …ƒ„>‚…ùyøy= †‚… ‡j†… ˆu�� ‰‡ˆ>x‰ùføhQŠ�º ‹Š÷Œú‹�Žø�O ���… �j�A`‘qE=’‘O “’’… ”“�� •�”>x•ùŒøŽA`–qE=—–O ˜——� ™j�… š˜™>xšùŒøŒùføfù ø ù•ø•= ›xþ›86 ŸÁ7 �7 žøœ;Ö§¨A# �GA%¡„GAÜ¢‡GA<£‘G="¤”=¥˜A¯¦¨Gù©ø©>§�÷ªú€«ªø«= ¬§þ¬øªA8­£GG=®­Ç¯®t« °¯G÷±ú°²±ø²= ³§= ´î µž9 ¶³´µ>§¶ù±ø±A8·¡I =¸·« ¹¸G÷ºú¹»ºø»= ¼§= ½îA8¾¡I =¿¾9 À> ¼½¿>§Àùºøº= Á§þÁ86 ÄÅ7ÃøÂ;.ãä;.ÝÞ;MÙÚ;Öåe;Ößà;ÖÛe;.æç;.áâ;PÜG;_,b;MúA#Æ�GA%Ç„GAÜȇGA• ÉŠG=Ê�=Ë�A<Ì‘G="Í”=Θ=#ÏšAHОG=#Ñ¡=Ò¢AÓ£G=$Ô¦=Õ§A¯Ö¨Gùèøè= éï= êÙ=ëÝ ì+ë)=íß î+íK)=ïã= ðð= ñåP ,òêìîïðñ>ÙòA8óÇIF=ôó¬ õôG÷öúõ÷öø÷= øî=,ùÙ>úù=,ûú9,ü@øéû>ÙüAÖýÙG= þý>ÙþA‰ÿÙE=ÿ>ÝA‰ÙF=>ßA�ÆG=91ÞAÖÙ= ‘   E>² ùöøöA‰ ÙE=  A‰ ÙF=  …  … … AÖÙG= ƒ) Ž =Þ…×=Þ…P P      .AÖÙ= = î9 |A� ÆG=! 91"Þ!A‰#Ù =$#=%ä &.)$%>ìe>íe9'³ù(ø(ö)+ù-ø-=^.,ª`/a.› 0/÷1ú0)1ø1Q2.ª 32G©43EGP^54E‚^6.5>,6ù*ø*=7ܰ 87'÷9ú89:ø:ù)ø9ù;ø;==Ü9>¼= ?&>¿Aç@È?=A@= Bî9C>BO DCCQEC÷Fú€GFøGQHAQIHª JIG¨ KJ÷LúKMNøMº OE>ÝOùLøN>ÝLùLøL= PÝ÷QúPRQøR‘ S"D  TES>èTQUAO VUU>éV9WP>D…XEW>ëXQYAQZYª [ZG>ê[Q\AQ]\>ç]9^$ùQøQù+øF=_ຠ`_÷aú`baøb”c d(c=ƒe)d f(=eƒg) …hgØ i(h jfi= kÛQlAO mll… nm=oà…pjoŽ qnp=ráP trrr  s.It… uqs� vku>Ûvùaøaº wE÷xúwyxøyQzAO {zzŽ |{E>ß|Q}AQ~}ª ~E÷€ú�‚ø�>á€ù€ø‚>á€ù€ø€= ƒá÷„úƒ…„ø…Q†AO ‡††= ˆî9‰‘ >ˆéD…ŠE‰Ž ‹‡Š>ß‹ù„ø„÷ŒúL�Žø�>ã€ùŒøŽ>ã€ùŒøŒ= �ã÷�ú�‘’ø‘= “Û= ”ßQ•AQ–•9 —cD”–� ˜“—>Û˜ù�ø’= ™Û= šßQ›AQœ›9 �ÍDš œ� ž™�>Ûžù�ø�= Ÿâº Ÿeš ¡ ÷¢ú¡£¢ø£”¤D ¥%¤) ¦(¥= §Û= ¨ß… ©¨= ªâ… «©ª…¬¦¡ƒ­¡¬Ž ®«­� ¯§®>Û¯ù¢ø¢ùxøxù<ø<ù+ø+=°Ü€±°E>ܱù(ø)÷²ú€³´ø³= µì… ¶µŽ ·¶&ƒ¸) Ž ¹·¸= ºíŽ »º&� ¼¹»>Û¼ù²ø´=½äº ¾½÷¿ú¾À¿øÀ= ÁÛŽ ÂÁ&>ÛÂù¿ø¿ù²ø²÷ÃúLÄÃøÄ9 Ån  >åÅùÃøÃA8ÆÈGE=ÇÆÇÈÇ« ÉÈG÷ÊúÉËÌøË9 ͨ ÎÍ>æÎùÊøÌ>æ€ùÊøÊ= Ïæ÷ÐúÏÑÒøÑO-ÓÃà -ÔÓ -×+ÔÕÖn2Ø×j.ÙÏ‚.ÚÙÐ .Û&ÈÚg2ÜÏÛ‚2ÞÜÝ 2ß&ØÞ_àÏßÛQáà= âÛA‰ãÙ =äã å%áäA¨æÈFF=çæA¨èÈF =éè…êçé ë.)åêŽ ìâë>Ûì= íÛ= îåA‰ïÙ =ðï ñ%ðᎠòîñ� óíò>ÛóùÐøÒ= ôÛ= õåA‰öÙ =÷öŽ øõ÷� ùôø>ÛùùÐøÐ= úÛAÖûÙH= üû� ýúü>Ûý= þÛ9 ÿŸþ9 `ÿþ867 ø;ÖA#�GA܇Gù ø >÷ ú€  ø = = ÜŽ   >ù ø = =Ú9 ©)PA8GE=Ç'« G÷úøO   (eQ +)Pþø +£¤A8  F=! Ç"!F« #"G÷$ú#%$ø%O &9 '’&Q(P)'(þ)ø$þ86 +Îø*=#,–=-˜=.™=$/›=0�=#1®ù3ø3Ví4,.X542O 655o7ÈP 827V79/0X:98O ;::� <6;Ví=1-X>=2O ?>>� @<?þ@86i%øA= EC= GF=-JH=MK=PN=SQP /BEGJMPS=-UT=WVA#j�GA%k„GA4lòGùmømA�nkG=onA�pkE=qp91rÞq9s3or>½È>À£Q tBQ uBQvBQ-wB9 xVtuvwU¤W9y[QzBQ{z9|Á{€9 }¡÷~ú}~ø9€ª= �²9 ‚·�= ƒ³9 „·ƒQ…B9 @†~€‚„|…Q‡†>X‡Aˆ‰XE=Љ‹Š>‰‹Q Œ†>ZŒQ �†>\�Q-ކ>]ŽQ�†>_�Q�†>a�Q‘†>b‘Q-’†>c’Q“†>d“Q”† >e”Q•† >f•Q–† >g–Q—† >h—ýø~A�˜kG=™˜= š¯P›š)‘œ™›A��kE=ž�= Ÿ²P Ÿ‘¡ž O ¢¡¡A�£kG=¤£= ¥³P¦¥‘§¤¦O ¨§§Q©B9 @ª~œ¢¨|©Q«ª>X«Aˆ¬XE=­¬®­>¬®Q ¯ª>Z¯Q °ª>\°Q-±ª>]±Q²ª>_²Q³ª>a³Q´ª>b´Q-µª>cµQ¶ª>d¶Q·ª >e·Q¸ª >f¸Q¹ª >g¹Qºª >hºý86è%ø»= ¾½= À¿=-ÂÁ=ÄÃ=ÆÅ=ÈÇP /¼¾ÀÂÄÆÈ=ËÊ=ÍÌ=ÏÎ=ÑÐP0ÉËÍÏÑ=-ÓÒ=ÖÕ=Ø×P?ÔÖØ=ÚÙA#é�GA%ê„GA4ëòGùìøìQíÉQîíQïÉQðïQñÉQòñP óîðòQôÉQõôQöÉQ÷öQøÉQùøP úõ÷ùQûÉQüûQýÉQþýQÿÉQÿP üþ  Dú”ó¸   Dú  Dó  DóúP1© G)�1  P óP úP QÉQQÉQQÉQP)P   A�êG=’A�êE=91Þ’1 93QÔ +ûün. >½ Q!Ô>À!Q "¼Q #¼Q$¼Q-%¼Q&É9 'V"#$%Ó&Ú9([Q)¼©*tGÅ+)*Q,¼Q-,9.Á-9 /¡÷0ú/10ø192ª= 3²9 4·3= 5³9 6·59 @7~246.+Q87>Û8Aˆ9ÛE=:9;:>9;Q <7>Ü<Q =7>Ý=Q->7>Þ>Q?7>ß?Q@7>à@QA7>áAQ-B7>âBQC7>ãCQD7 >äDQE7 >åEQF7 >æFQG7 >çGýø0= H¯PIH)QJÉ”KJIQLÉ”MLIQNÉ”ONIP PKMOA�QêG=RQPSP)‘TRSA�UêE=VU= W²‘ X WPYX‘ZVYO [ZZA�\êG=]\P1^óú= _³‘ `^_Pa`‘b]aO cbb9 @d~T[c.+Qed>ÛeAˆfÛE=gfhg>fhQ id>ÜiQ jd>ÝjQ-kd>ÞkQld>ßlQmd>àmQnd>ánQ-od>âoQpd>ãpQqd >äqQrd >årQsd >æsQtd >çtý86š%øu= xw= zy=-|{=~}=€=‚�P /vxz|~€‚=†„=ˆ‡P=ƒ†ˆ=-Љ=Œ‹A#›�GA%œ„GA½�«GA4žòGùŸøŸ9> ËƒQ ¡vP¢¡)Q£ ”¤£¢Q¥ ”¦¥¢Q§ ”¨§¢P ©¤¦¨Qª Q«ªQ¬ Q­¬Q® Q¯®P °«­¯Q± Q²±Q³ Q´³Qµ Q¶µP ·²´¶Q¸ Q¹¸Qº Q»ºQ¼ Q½¼P ¾¹»½  ¿D·¾”À°¿¸ ÁÀ  ÂD·¾  ÃD¾°  ÄD°·P1ÅÂÃÄQ Æv‘ ÇÅÆ©ÈÁG)Ž ÉÇÈ  ÊEÉP1˰·¾QÌvO ÍÌÌ‘ ÎËÍ  ÏEÎA�МG=ÑÐA�ÒœE=ÓÒ91ÔÞÓ9Õ3ÑÔ>½È>À£QÖvQ×ÖPØÏ×Q-Ùv9 ÚV©ÊØÙФŒ9Û[QÜv©ÝÁtGÅÞÜÝQßvQàß9áÁàÁ9 â¡÷ãúâäãøä9åª= æ²9 ç·æ= è³9 é·è9 @ê~åçéáÞQëê>�ëAˆì�E=íìîí>ìîQ ïê>ŽïQ ðê>�ðQ-ñê>�ñQòê>‘òQóê>’óQôê>“ôQ-õê>”õQöê>•öQ÷ê >–÷Qøê >—øQùê >˜ùQúê >™úýøãA�ûœG=üû= ý¯Pþý)‘ÿüþA�œE== ²P‘O A�œG== ³P ‘  O   9 @ ~ÿ áÞQ  >� Aˆ�E=>Q  >ŽQ  >�Q- >�Q >‘Q >’Q >“Q- >”Q >•Q  >–Q  >—Q  >˜Q  >™ý86=%ø;ÖWX= = "!= $#=-&%=('=*)=,+=-.-=0/=21=43=65=87P@ "$&(*,.02468= ;9A#>�GA%?„GAÜ@‡GA• AŠG=B�=C�A<D‘G="E”=#F–=G˜=H™=#Iš=$J›=K�AHLžG=#M¡=N¢AO£G=$P¦=Q§A¯R¨G=#S®A4TòG=#Uõ=VöùYøY9ZÏ;Q[9 \b[÷]ú\^]ø^üø]Q _Q`O-a``9bÓ_a¼ cb÷dúcedøeüød÷fúLghøg= iÙ= jî9 k|j9 lŸik9 m`l>WmùføhQn9 oÄn>WoùføfA8p@G =qpª rqP÷súrtsøt= uW9 v+� wuv>WwùsøsA8x> G=yxª zy'÷{úz|{ø|= }W9 ~'}9  ~b>Wù{ø{= €W9�€><�ý86 %ø‚;.§¨;.©ª=…„= ‡†= ‰ˆ=-‹Š=�Œ=�Ž=‘�=-“’=•”=—–=™˜=›š=�œP@ƒ…‡‰‹��‘“•—™›�= ŸžA#¡�GA%¢„GA4£òG=#¤õ=¥öù«ø«9¬ÏƒŸQ­ƒÇ®­F« ¯®G¨ °¯÷±ú°²³ø²÷´úLµ¶øµ=·Ú=¸Û¸ ¹·¸>©¹ù´ø¶>©€ù´ø´= º©>§ºù±ø³>§Lù±ø±= »§÷¼ú»½¼ø½üø¼Q ¾ƒ9¿Ó¾¦¼ À¿÷ÁúÀÂÃøÂüøÃýøÁý86ã%øÄ;.ëì;îíï=ÇÆ= ÉÈ= ËÊ=-ÍÌ=ÏÎ=ÑÐ=ÓÒ=-ÕÔ=×Ö=ÙØ=ÛÚ=ÝÜ=ßÞP@ÅÇÉËÍÏÑÓÕ×ÙÛÝß= áàA#ä�GA%å„GA4æòG=#çõ=èöùðøð9ñÏÅáQòÅ9 óbò¨ ôó÷õúôö÷øöQ øÅQùÅO-úùù9ûÓøú¼ üû>ëüùõø÷>ëLùõøõ= ýë÷þúýÿþøÿüøþA8å F=A8å G=ª E©EGA8å E=ª E© FGÅ  Ç p   'Ç pÂÇpp P ˆêA~íG>=AíQ>âý869%ø;.?@;BAC== = =-"!=$#=&%=('=-*)=,+=.-=0/=21=43P@ "$&(*,.024= 65A#:�GA%;„GA4<òG=#=õ=>öùDøD9EÏ6QF9 GbF¨ HG÷IúHJKøJQ LQMO-NMM9OÓLN¼ PO>?PùIøK>?LùIøI= Q?÷RúQSRøSüøRA�T:G=UT91VÞU= Wð‘ XVW  YEX=ZÝ [+Z)=\Þ…]×\=^Þ…_]^P `___= aÙP c[[[  b.`acA�d:G=edQ fPgf)‘hegQihjiPkYjA~lAG>lk  m+beI=nß o+nK)PpmoA~qAE>qp=DrAQsr>7sQtr>8tý8 @Ð Ð/ ,@ �˜J£&ѰA¬ËÎ-”ÒÑ'‘+ëjl€_7hh'·ÊË,hedra_shaders/world/surface_0000fdfc000000c1jÔòëBTSR ÙAÙA^7Dœ° Óô^1÷5f÷ƒéøéš Ò“^0–PO €å^Þça?ø ¹ J±^hvs_surface_extfs_surface_extFGOMt_baset_normalt_mr t_emission t_occlusions_matt_extLitShadowt_shadows_shadowSky t_radiance t_panorama s_radiance s_panoramat_ao t_lightmap s_lightmapProbet_probess_probesDecalt_decalss_decalst_screenFogSkinvs_surface_extvs_surface_extfs_surface_extfs_surface_ext’Astruct Globals { view: mat4x4, proj: mat4x4, view_proj: mat4x4, camera_pos: vec4, viewport: vec4, wire_color: vec4, select_color: vec4, active_color: vec4, grid: vec4, params: vec4, fparams: vec4, } struct ObjectU { model: mat4x4, normal: mat4x4, color: vec4, params: vec4, extra: vec4, gi: array, 3>, decals: vec4, lights: vec4, } struct MaterialU { base_color: vec4, emission: vec4, factors: vec4, flags: vec4, uv: vec4, xf: array, 40>, ext: array, 8>, } struct LightU { color: vec4, position: vec4, direction: vec4, spot: vec4, info: vec4, } struct LitU { counts: vec4, ambient: vec4, tone: vec4, up: vec4, sky_top: vec4, sky_horizon: vec4, ground_horizon: vec4, ground_bottom: vec4, inv_view_proj: mat4x4, dirs: vec4, lights: array, } struct ShadowLightU { params: vec4, splits: vec4, fade: vec4, info: vec4, } struct ShadowTileU { view_proj: mat4x4, rect: vec4, texel: vec4, } struct ShadowU { atlas: vec4, lights: array, tiles: array, } struct SunU { direction: vec4, color: vec4, } struct SkyU { flags: vec4, to_sky: mat4x4, sky_top: vec4, sky_horizon: vec4, ground_bottom: vec4, ground_horizon: vec4, sun: vec4, ambient: vec4, ibl: vec4, fog_color: vec4, fog: vec4, fog_depth: vec4, fog_origin: vec4, suns: array, sh: array, 9>, } struct ProbeEntryU { to_local: mat4x4, extents: vec4, offset: vec4, ambient: vec4, info: vec4, } struct ProbeU { counts: vec4, probes: array, } struct DecalEntryU { to_local: mat4x4, modulate: vec4, fades: vec4, axis_x: vec4, axis_y: vec4, axis_z: vec4, layers: vec4, flags: vec4, } struct DecalU { counts: vec4, lod: vec4, entries: array, } struct DecalSurface { base: vec3, metallic: f32, roughness: f32, occlusion: f32, normal: vec3, emission: vec3, } struct VsIn { @location(0) pos: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, } struct VsOut { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, @location(6) color: vec4, } struct InstIn { @location(6) row0_: vec4, @location(7) row1_: vec4, @location(8) row2_: vec4, @location(9) color: vec4, } struct Samples { base: vec4, normal: vec3, mr: vec4, emission: vec3, occlusion: f32, } struct FogEntryU { to_local: mat4x4, size: vec4, material: vec4, albedo: vec4, emission: vec4, lights: vec4, } struct FogU { counts: vec4, params: vec4, ambient: vec4, up: vec4, light_fog: array, 16>, entries: array, } struct SkyOut { @builtin(position) clip: vec4, @location(0) ndc: vec2, } struct IdOut { @location(0) id: vec4, } struct NormalDepthOut { @location(0) normal_depth: vec4, @location(1) surface: vec4, } struct VsOutExt { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, @location(6) color: vec4, @location(7) uv1_: vec2, } struct ExtSamples { base: vec4, normal: vec3, metallic: f32, roughness: f32, emission: vec3, occlusion: f32, specular: f32, specular_color: vec3, transmission: f32, thickness: f32, clearcoat: f32, clearcoat_roughness: f32, clearcoat_normal: vec3, clearcoat_mapped: bool, sheen_color: vec3, sheen_roughness: f32, iridescence: f32, iridescence_thickness: f32, anisotropy: f32, anisotropy_dir: vec2, diffuse_transmission: f32, diffuse_transmission_color: vec3, } struct ExtCtx { n: vec3, n_geo: vec3, nc: vec3, v: vec3, world: vec3, nv: f32, base: vec3, diffuse: vec3, metallic: f32, roughness: f32, alpha: f32, a2_: f32, f0_: vec3, f90_: vec3, iridescence: f32, irid_f: vec3, aniso: f32, aniso_t: vec3, aniso_b: vec3, clearcoat: f32, cc_roughness: f32, cc_a2_: f32, sheen: vec3, sheen_alpha: f32, sheen_roughness: f32, dt: f32, dt_color: vec3, transmission: f32, trans_alpha: f32, ior: f32, attenuation: vec3, thin: bool, thickness: f32, frag: vec2, dispersion: f32, occlusion: f32, emission: vec3, } struct VsOutLm { @builtin(position) clip: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) uv: vec2, @location(3) @interpolate(flat) flags: u32, @location(4) tangent: vec4, @location(5) weight: f32, @location(6) color: vec4, @location(7) uv1_: vec2, @location(8) uv_lm: vec2, } struct SkinU { rows: array, 765>, } struct SkinIn { @location(12) joints: vec4, @location(13) weights: vec4, } struct SkinRows { r0_: vec4, r1_: vec4, r2_: vec4, } const OBJ_HAS_WEIGHTS: u32 = 1u; const OBJ_MIRRORED: u32 = 2u; const SHADE_SOLID: u32 = 0u; const SHADE_MATCAP: u32 = 1u; const SHADE_NORMALS: u32 = 2u; const SHADE_FACE_ORIENT: u32 = 3u; const SHADE_RANDOM: u32 = 4u; const SHADE_MATERIAL: u32 = 5u; const SHADE_UV_CHECKER: u32 = 6u; const SHADE_WEIGHTS: u32 = 7u; const SHADE_LIT: u32 = 8u; const SHADE_LIGHTMAP: u32 = 9u; const SHADE_LIGHT_COUNT: u32 = 10u; const OV_SELECTION: u32 = 1u; const OV_SEAMS: u32 = 2u; const OV_SHARP: u32 = 4u; const F_SELECTED: u32 = 1u; const F_HIDDEN: u32 = 2u; const F_SEAM: u32 = 4u; const F_SHARP: u32 = 8u; const F_MESH: u32 = 16u; const F_FADE: u32 = 32u; const F_NO_PULL: u32 = 64u; const SPEC_TEX_BASE: bool = true; const SPEC_TEX_NORMAL: bool = false; const SPEC_TEX_MR: bool = false; const SPEC_TEX_EMISSION: bool = false; const SPEC_TEX_OCCLUSION: bool = false; const SPEC_VERTEX_COLOR: bool = false; const SPEC_EXT: bool = true; const SPEC_UNLIT: bool = true; const SPEC_ALPHA_MASK: bool = false; const SPEC_ALPHA_BLEND: bool = false; const SPEC_CLEARCOAT: bool = false; const SPEC_SHEEN: bool = false; const SPEC_TRANSMISSION: bool = false; const SPEC_IRIDESCENCE: bool = false; const SPEC_ANISOTROPY: bool = false; const SPEC_DIFFUSE_TRANSMISSION: bool = false; const SPEC_VOLUME: bool = false; const SPEC_DISPERSION: bool = false; const SPEC_EXT_LAYERS: bool = false; const SPEC_ROUGHNESS_LAYER: bool = false; const SPEC_LIT: bool = true; const SPEC_LIGHTS: bool = true; const SPEC_SHADOWS: bool = true; const SPEC_DECALS: bool = true; const SPEC_FOG: bool = true; const SPEC_FOG_VOLUMES: bool = true; const SPEC_PROBES: bool = true; const SPEC_PROBE_GI: bool = false; const SPEC_SSAO: bool = true; const SPEC_SCREEN_REFRACTION: bool = true; const SPEC_EMERGE: bool = true; const SPEC_FADE: bool = true; const SPEC_FACE_FLAGS: bool = false; const SPEC_AMBIENT_FLAT: bool = true; const SPEC_AMBIENT_GRADIENT: bool = true; const SPEC_AMBIENT_SKY: bool = true; const SPEC_MATERIAL_MODE: bool = false; const SPEC_OTHER_MODES: bool = false; const T_BASE: u32 = 1u; const T_NORMAL: u32 = 2u; const T_METALLIC_ROUGHNESS: u32 = 4u; const T_EMISSION: u32 = 8u; const T_OCCLUSION: u32 = 16u; const MAT_VERTEX_COLOR: u32 = 1u; const MAT_VERTEX_COLOR_SRGB: u32 = 2u; const MAT_EXT: u32 = 4u; const MAT_UNLIT: u32 = 8u; const MAT_ROUGHNESS_LAYER: u32 = 16u; const MAT_SRGB_BASE: u32 = 32u; const MAT_SRGB_EMISSION: u32 = 64u; const ALPHA_OPAQUE: u32 = 0u; const ALPHA_MASK: u32 = 1u; const ALPHA_BLEND: u32 = 2u; const PI: f32 = 3.1415927f; const MAX_FRAME_LIGHTS: u32 = 64u; const MAX_OBJECT_LIGHTS: u32 = 8u; const MAX_SHADOW_LIGHTS: u32 = 16u; const MAX_POOL_DIRECTIONAL: u32 = 8u; const LIGHT_COUNT_COLORS: array, 10> = array, 10>(vec3(0.352941f, 0.352941f, 0.352941f), vec3(0.168627f, 0.247059f, 0.6f), vec3(0.129412f, 0.4f, 0.67451f), vec3(0.101961f, 0.623529f, 0.721569f), vec3(0.121569f, 0.631373f, 0.529412f), vec3(0.301961f, 0.733333f, 0.352941f), vec3(0.65098f, 0.831373f, 0.227451f), vec3(0.94902f, 0.784314f, 0.058824f), vec3(0.94902f, 0.556863f, 0.058824f), vec3(0.878431f, 0.129412f, 0.541176f)); const LIGHT_DIRECTIONAL: u32 = 0u; const LIGHT_OMNI: u32 = 1u; const LIGHT_SPOT: u32 = 2u; const LIGHT_BAKE_DISABLED: u32 = 0u; const LIGHT_BAKE_STATIC: u32 = 1u; const LIGHT_BAKE_DYNAMIC: u32 = 2u; const TONEMAP_LINEAR: u32 = 0u; const TONEMAP_REINHARD: u32 = 1u; const TONEMAP_FILMIC: u32 = 2u; const TONEMAP_ACES: u32 = 3u; const TONEMAP_AGX: u32 = 4u; const ENV_SKY: u32 = 1u; const ENV_AMBIENT_SKY: u32 = 2u; const ENV_SSAO: u32 = 4u; const ENV_HDR: u32 = 8u; const ENV_SCREEN_REFRACTION: u32 = 16u; const LIGHT_SHADOWED: u32 = 1u; const LIGHT_BAKED_STATIC: u32 = 1u; const SHADOW_TILES: u32 = 16u; const SKY_DRAW_PROCEDURAL: u32 = 1u; const SKY_DRAW_PANORAMA: u32 = 2u; const SKY_PANORAMA_FILTER: u32 = 4u; const SKY_IBL: u32 = 8u; const SKY_AMBIENT_SKY: u32 = 16u; const SKY_REFLECT_RADIANCE: u32 = 32u; const SKY_REFLECT_OFF: u32 = 64u; const SKY_FOG: u32 = 128u; const SKY_FOG_DEPTH: u32 = 256u; const SKY_SUNS: u32 = 4u; const OBJ_LIGHTMAP: u32 = 4u; const OBJ_PROBE_GI: u32 = 8u; const PROBE_BOX: u32 = 1u; const PROBE_INTERIOR: u32 = 2u; const MAX_PROBES: u32 = 8u; const PROBE_AMBIENT_DISABLED: u32 = 0u; const PROBE_AMBIENT_ENVIRONMENT: u32 = 1u; const PROBE_AMBIENT_CONSTANT_COLOR: u32 = 2u; const MAX_FRAME_DECALS: u32 = 64u; const MAX_OBJECT_DECALS: u32 = 8u; const DECAL_LIVE_ALBEDO: u32 = 1u; const DECAL_LIVE_NORMAL: u32 = 2u; const DECAL_LIVE_ORM: u32 = 4u; const DECAL_LIVE_EMISSION: u32 = 8u; const F_INSTANCE_MIRRORED: u32 = 128u; const OBJ_EMERGE: u32 = 32u; const EMERGE_SCALE: f32 = 1.3f; const EMERGE_EDGE: f32 = 0.8f; const EMERGE_DITHER: f32 = 0.12f; const OBJ_FADE: u32 = 64u; const MAX_FRAME_FOG_VOLUMES: u32 = 16u; const MAX_OBJECT_FOG_VOLUMES: u32 = 4u; const FOG_SHAPE_ELLIPSOID: u32 = 0u; const FOG_SHAPE_CONE: u32 = 1u; const FOG_SHAPE_CYLINDER: u32 = 2u; const FOG_SHAPE_BOX: u32 = 3u; const FOG_SHAPE_WORLD: u32 = 4u; const FOG_SKY_DISTANCE: f32 = 1000000f; const FOG_LIST_ALL: u32 = 2147483648u; const FOG_GL_X0_: f32 = 0.8611363f; const FOG_GL_X1_: f32 = 0.339981f; const FOG_GL_W0_: f32 = 0.3478548f; const FOG_GL_W1_: f32 = 0.6521452f; const SLOT_BASE: u32 = 0u; const SLOT_METALLIC: u32 = 1u; const SLOT_ROUGHNESS: u32 = 2u; const SLOT_NORMAL: u32 = 3u; const SLOT_OCCLUSION: u32 = 4u; const SLOT_EMISSIVE: u32 = 5u; const SLOT_CLEARCOAT: u32 = 6u; const SLOT_CLEARCOAT_ROUGHNESS: u32 = 7u; const SLOT_CLEARCOAT_NORMAL: u32 = 8u; const SLOT_SHEEN_COLOR: u32 = 9u; const SLOT_SHEEN_ROUGHNESS: u32 = 10u; const SLOT_SPECULAR: u32 = 11u; const SLOT_SPECULAR_COLOR: u32 = 12u; const SLOT_TRANSMISSION: u32 = 13u; const SLOT_THICKNESS: u32 = 14u; const SLOT_IRIDESCENCE: u32 = 15u; const SLOT_IRIDESCENCE_THICKNESS: u32 = 16u; const SLOT_ANISOTROPY: u32 = 17u; const SLOT_DIFFUSE_TRANSMISSION: u32 = 18u; const SLOT_DIFFUSE_TRANSMISSION_COLOR: u32 = 19u; const OBJ_SKINNED: u32 = 16u; const SKIN_JOINTS: u32 = 255u; @group(0) @binding(0) var G: Globals; @group(1) @binding(0) var O: ObjectU; @group(2) @binding(0) var M: MaterialU; @group(2) @binding(1) var t_base: texture_2d; @group(2) @binding(2) var t_normal: texture_2d; @group(2) @binding(3) var t_mr: texture_2d; @group(2) @binding(4) var t_emission: texture_2d; @group(2) @binding(5) var t_occlusion: texture_2d; @group(2) @binding(6) var s_mat: sampler; @group(2) @binding(7) var t_ext: texture_2d_array; @group(0) @binding(1) var Lit: LitU; @group(0) @binding(2) var Shadow: ShadowU; @group(0) @binding(3) var t_shadow: texture_depth_2d; @group(0) @binding(4) var s_shadow: sampler_comparison; @group(0) @binding(5) var Sky: SkyU; @group(3) @binding(0) var t_radiance: texture_cube; @group(3) @binding(1) var t_panorama: texture_2d; @group(3) @binding(2) var s_radiance: sampler; @group(3) @binding(3) var s_panorama: sampler; @group(0) @binding(6) var t_ao: texture_2d; @group(3) @binding(4) var t_lightmap: texture_2d_array; @group(3) @binding(5) var s_lightmap: sampler; @group(0) @binding(7) var Probe: ProbeU; @group(3) @binding(6) var t_probes: texture_2d; @group(3) @binding(7) var s_probes: sampler; @group(1) @binding(2) var Decal: DecalU; @group(1) @binding(3) var t_decals: texture_2d_array; @group(1) @binding(4) var s_decals: sampler; @group(1) @binding(6) var t_screen: texture_2d; @group(1) @binding(5) var Fog: FogU; @group(1) @binding(1) var Skin: SkinU; fn srgb_to_linear(c_1: vec3) -> vec3 { let lo = (c_1 / vec3(12.92f)); let hi = pow(((c_1 + vec3(0.055f)) / vec3(1.055f)), vec3(2.4f)); return select(hi, lo, (c_1 <= vec3(0.04045f))); } fn linear_to_srgb(c_2: vec3) -> vec3 { let lo_1 = (c_2 * 12.92f); let hi_1 = ((1.055f * pow(c_2, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (c_2 <= vec3(0.0031308f))); } fn target_color(c_3: vec4) -> vec4 { let k_11 = clamp(c_3, vec4(0f), vec4(1f)); let _e9 = G.fparams.w; if (_e9 > 0.5f) { let _e13 = linear_to_srgb(k_11.xyz); return vec4(_e13, k_11.w); } return k_11; } fn object_light_count() -> u32 { let _e3 = O.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } fn object_light(k: u32) -> u32 { let _e4 = O.lights.y; let _e8 = O.lights.x; let word = select(_e4, _e8, (k < 4u)); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } fn pool_sun_count() -> u32 { let _e3 = Lit.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } fn pool_sun(k_1: u32) -> u32 { let _e4 = Lit.dirs.y; let _e8 = Lit.dirs.x; let word_1 = select(_e4, _e8, (k_1 < 4u)); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } fn decal_count() -> u32 { let _e3 = O.decals.z; return min(_e3, MAX_OBJECT_DECALS); } fn decal_entry(k_2: u32) -> u32 { let _e4 = O.decals.y; let _e8 = O.decals.x; let word_2 = select(_e4, _e8, (k_2 < 4u)); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } fn decal_level(e: DecalEntryU, world: vec3) -> f32 { let _e5 = Decal.lod.x; let _e8 = G.camera_pos; let _e15 = Decal.lod.y; let pixel_1 = (_e5 * select(length((world - _e8.xyz)), 1f, (_e15 > 0.5f))); let _e24 = Decal.counts.y; let top = f32((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 0.000001f)), 1f)), 0f, top); } fn decal_texel(layer: u32, uv: vec2, level: f32, live: bool) -> vec4 { let _e11 = textureSampleLevel(t_decals, s_decals, uv, i32((layer - 1u)), select(level, 0f, live)); return _e11; } fn apply_decals(world_1: vec3, n_geo: vec3, surf: DecalSurface) -> DecalSurface { var out_s: DecalSurface; var k_3: u32 = 0u; var local: bool; var fade: f32; out_s = surf; let _e4 = decal_count(); loop { let _e7 = k_3; if (_e7 < _e4) { } else { break; } { let _e11 = k_3; let _e12 = decal_entry(_e11); let e_9 = Decal.entries[min(_e12, 63u)]; let uvw = (e_9.to_local * vec4(world_1, 1f)).xyz; if all((uvw >= vec3(0f, -1f, 0f))) { local = all((uvw <= vec3(1f))); } else { local = false; } let _e35 = local; if !(_e35) { continue; } fade = pow((1f - abs(uvw.y)), select(e_9.fades.y, e_9.fades.x, (uvw.y > 0f))); if (e_9.fades.z > 0f) { let _e55 = fade; fade = (_e55 * smoothstep(e_9.fades.z, 1f, ((dot(n_geo, e_9.axis_y.xyz) * 0.5f) + 0.5f))); } let uv_2 = uvw.xz; let _e69 = decal_level(e_9, world_1); let live_1 = e_9.flags.x; if (e_9.layers.x > 0u) { let _e82 = decal_texel(e_9.layers.x, uv_2, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); let _e84 = srgb_to_linear(_e82.xyz); let a_2 = (vec4(_e84, _e82.w) * e_9.modulate); let _e90 = fade; let alpha_1 = (a_2.w * _e90); let _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha_1 * e_9.fades.w)); if (e_9.layers.y > 0u) { let _e110 = decal_texel(e_9.layers.y, uv_2, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); let nx = ((_e110.x * 2f) - 1f); let ny = (1f - (_e110.y * 2f)); let nz = sqrt(max(0f, ((1f - (nx * nx)) - (ny * ny)))); let dn = normalize((((e_9.axis_x.xyz * nx) + (e_9.axis_y.xyz * nz)) + (e_9.axis_z.xyz * ny))); let _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha_1)); } if (e_9.layers.z > 0u) { let _e156 = decal_texel(e_9.layers.z, uv_2, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); let _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha_1); let _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha_1); let _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha_1); } } if (e_9.layers.w > 0u) { let _e182 = decal_texel(e_9.layers.w, uv_2, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); let _e184 = out_s.emission; let _e186 = srgb_to_linear(_e182.xyz); let _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_9.modulate.xyz) * e_9.axis_x.w) * _e193)); } } continuing { let _e197 = k_3; k_3 = (_e197 + 1u); } } let _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045f, 1f); let _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0f, 1f); let _e211 = out_s; return _e211; } fn mirrored(in_2: VsOut) -> bool { let _e4 = O.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_2.flags & F_INSTANCE_MIRRORED) != 0u)); } fn tex_uv(uv_1: vec2) -> vec2 { return vec2(uv_1.x, (1f - uv_1.y)); } fn decoded_base(t: vec4) -> vec4 { let _e4 = M.flags.w; if ((_e4 & MAT_SRGB_BASE) != 0u) { let _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } fn d_ggx(nh: f32, a2_: f32) -> f32 { let d_9 = (((nh * nh) * (a2_ - 1f)) + 1f); return (a2_ / ((PI * d_9) * d_9)); } fn v_smith(nl: f32, nv: f32, a2_1: f32) -> f32 { let gv = (nl * sqrt((((nv * nv) * (1f - a2_1)) + a2_1))); let g_l = (nv * sqrt((((nl * nl) * (1f - a2_1)) + a2_1))); return (0.5f / max((gv + g_l), 0.0001f)); } fn sky(dir: vec3) -> vec3 { let _e4 = Lit.up; let a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1f, 1f)); if (a_3 <= 1.5707964f) { let c_21 = (1f - (a_3 / 1.5707964f)); let k_12 = clamp((1f - pow(max((1f - c_21), 0.000001f), 6.6666665f)), 0f, 1f); let _e30 = Lit.sky_horizon; let _e34 = Lit.sky_top; return mix(_e30.xyz, _e34.xyz, k_12); } let c_22 = ((a_3 - 1.5707964f) / 1.5707964f); let k_13 = clamp((1f - pow(max((1f - c_22), 0.000001f), 50f)), 0f, 1f); let _e54 = Lit.ground_horizon; let _e58 = Lit.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_13); } fn filmic_curve(x: vec3) -> vec3 { return ((((x * ((0.88f * x) + vec3((0.1f * 0.6f)))) + vec3((0.2f * 0.01f))) / ((x * ((0.88f * x) + vec3(0.6f))) + vec3((0.2f * 0.3f)))) - vec3((0.01f / 0.3f))); } fn aces_curve(c_4: vec3, white: f32) -> vec3 { let x_3 = vec3((1.8f * dot(vec3(0.59719f, 0.35458f, 0.04823f), c_4)), (1.8f * dot(vec3(0.076f, 0.90834f, 0.01566f), c_4)), (1.8f * dot(vec3(0.0284f, 0.13383f, 0.83777f), c_4))); let t_2 = (((x_3 * (x_3 + vec3(0.0245786f))) - vec3(0.000090537f)) / ((x_3 * ((0.983729f * x_3) + vec3(0.432951f))) + vec3(0.238081f))); let o_6 = vec3(dot(vec3(1.60475f, -0.53108f, -0.07367f), t_2), dot(vec3(-0.10208f, 1.10813f, -0.00605f), t_2), dot(vec3(-0.00327f, -0.07276f, 1.07602f), t_2)); let w = (1.8f * white); let wt = (((w * (w + 0.0245786f)) - 0.000090537f) / ((w * ((0.983729f * w) + 0.432951f)) + 0.238081f)); return (o_6 / vec3(wt)); } fn agx_curve(c_5: vec3) -> vec3 { var v: vec3; let inset = mat3x3(vec3(0.54490817f, 0.14044006f, 0.08882741f), vec3(0.37377945f, 0.7541096f, 0.17887713f), vec3(0.08138498f, 0.10543358f, 0.73225f)); let outset = mat3x3(vec3(1.964551f, -0.29932243f, -0.16436833f), vec3(-0.85585845f, 1.3264511f, -0.23822464f), vec3(-0.10886711f, -0.02708402f, 1.4026654f)); v = (inset * max(c_5, vec3(0.0000000002f))); let _e34 = v; v = ((clamp(log2(_e34), vec3(-12.473931f), vec3(4.0260687f)) - vec3(-12.473931f)) / vec3((4.0260687f - -12.473931f))); let _e44 = v; let _e45 = v; let x2_ = (_e44 * _e45); let x4_ = (x2_ * x2_); let _e48 = v; let _e56 = v; let _e64 = v; let p_6 = ((((((0.021f * _e48) + (4.0111f * x2_)) - ((25.682f * x2_) * _e56)) + (70.359f * x4_)) - ((74.778f * x4_) * _e64)) + ((27.069f * x4_) * x2_)); return (outset * pow(max(p_6, vec3(0.0000000001f)), vec3(2.4f))); } fn tonemap(c_in: vec3) -> vec3 { let _e4 = Lit.tone.x; let c_23 = max((c_in * _e4), vec3(0f)); let white_1 = Lit.tone.y; let mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return (((white_1 * c_23) + c_23) / ((c_23 * white_1) + vec3(white_1))); } if (mode == TONEMAP_FILMIC) { let _e27 = filmic_curve(c_23); let _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if (mode == TONEMAP_ACES) { let _e33 = aces_curve(c_23, white_1); return _e33; } if (mode == TONEMAP_AGX) { let _e36 = agx_curve(c_23); return _e36; } return c_23; } fn emerge_hash(p: vec3) -> f32 { var q: vec3; q = fract((p * 0.1031f)); let _e5 = q; let _e6 = q; let _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32f))))); let _e16 = q.x; let _e18 = q.y; let _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } fn emerge_noise(p_1: vec3) -> f32 { let i_9 = floor(p_1); let f_1 = fract(p_1); let u = ((f_1 * f_1) * (vec3(3f) - (2f * f_1))); let _e10 = emerge_hash(i_9); let _e16 = emerge_hash((i_9 + vec3(1f, 0f, 0f))); let _e24 = emerge_hash((i_9 + vec3(0f, 1f, 0f))); let _e30 = emerge_hash((i_9 + vec3(1f, 1f, 0f))); let a_4 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); let _e40 = emerge_hash((i_9 + vec3(0f, 0f, 1f))); let _e46 = emerge_hash((i_9 + vec3(1f, 0f, 1f))); let _e54 = emerge_hash((i_9 + vec3(0f, 1f, 1f))); let _e60 = emerge_hash((i_9 + vec3(1f, 1f, 1f))); let b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_4, b_2, u.z); } fn emerge_reveal(world_2: vec3, pixel: vec2) -> f32 { var n: f32; let _e6 = O.extra.x; if select(true, ((_e6 & OBJ_EMERGE) == 0u), SPEC_EMERGE) { return 1f; } let e_10 = O.normal[0][3]; let w_1 = (world_2 * EMERGE_SCALE); let _e21 = emerge_noise(w_1); let _e29 = emerge_noise(((w_1 * 2.7f) + vec3(17.1f))); n = smoothstep(0.2f, 0.8f, ((_e21 * 0.65f) + (_e29 * 0.35f))); if (pixel.x >= 0f) { let ign = fract((52.982918f * fract(dot(floor(pixel), vec2(0.06711056f, 0.00583715f))))); let _e49 = n; n = clamp((_e49 + ((ign - 0.5f) * EMERGE_DITHER)), 0f, 1f); } let _e60 = n; return (((e_10 * 1.8f) - _e60) / EMERGE_EDGE); } fn emerge_tint(c_6: vec3, r: f32) -> vec3 { var local_1: bool; let _e6 = O.extra.x; if !(((_e6 & OBJ_EMERGE) == 0u)) { local_1 = (r >= 1f); } else { local_1 = true; } let _e17 = local_1; if select(true, _e17, SPEC_EMERGE) { return c_6; } let _e23 = O.extra.w; let _e26 = srgb_to_linear(unpack4x8unorm(_e23).xyz); let _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0f, 1f, r)); } fn item_fade(c_7: vec3) -> vec3 { let _e5 = O.extra.x; if select(true, ((_e5 & OBJ_FADE) == 0u), SPEC_FADE) { return c_7; } let f_2 = O.normal[3]; let _e17 = tonemap(f_2.xyz); return mix(c_7, _e17, f_2.w); } fn sky_dir(d: vec3) -> vec3 { let _e3 = Sky.to_sky; return normalize((_e3 * vec4(d, 0f)).xyz); } fn sh_irradiance(n_1: vec3) -> vec3 { var c_8: vec3; let _e4 = Sky.sh[0]; c_8 = (_e4.xyz * 0.282095f); let _e9 = c_8; let _e13 = Sky.sh[1]; c_8 = (_e9 + (_e13.xyz * (0.488603f * n_1.y))); let _e20 = c_8; let _e24 = Sky.sh[2]; c_8 = (_e20 + (_e24.xyz * (0.488603f * n_1.z))); let _e31 = c_8; let _e35 = Sky.sh[3]; c_8 = (_e31 + (_e35.xyz * (0.488603f * n_1.x))); let _e42 = c_8; let _e46 = Sky.sh[4]; c_8 = (_e42 + (_e46.xyz * ((1.092548f * n_1.x) * n_1.y))); let _e55 = c_8; let _e59 = Sky.sh[5]; c_8 = (_e55 + (_e59.xyz * ((1.092548f * n_1.y) * n_1.z))); let _e68 = c_8; let _e72 = Sky.sh[6]; c_8 = (_e68 + (_e72.xyz * (0.315392f * (((3f * n_1.z) * n_1.z) - 1f)))); let _e85 = c_8; let _e89 = Sky.sh[7]; c_8 = (_e85 + (_e89.xyz * ((1.092548f * n_1.x) * n_1.z))); let _e98 = c_8; let _e102 = Sky.sh[8]; c_8 = (_e98 + (_e102.xyz * (0.546274f * ((n_1.x * n_1.x) - (n_1.y * n_1.y))))); let _e115 = c_8; return max(_e115, vec3(0f)); } fn radiance(d_1: vec3, roughness: f32) -> vec3 { let _e5 = Sky.flags.y; let top_1 = f32((max(_e5, 1u) - 1u)); let _e14 = textureSampleLevel(t_radiance, s_radiance, d_1, (roughness * top_1)); return _e14.xyz; } fn env_brdf_approx(roughness_1: f32, nv_1: f32) -> vec2 { let r_4 = ((roughness_1 * vec4(-1f, -0.0275f, -0.572f, 0.022f)) + vec4(1f, 0.0425f, 1.04f, -0.04f)); let a004_ = ((min((r_4.x * r_4.x), exp2((-9.28f * nv_1))) * r_4.x) + r_4.y); return ((vec2(-1.04f, 1.04f) * a004_) + r_4.zw); } fn pow8_(x_1: f32) -> f32 { let x2_1 = (max(x_1, 0f) * max(x_1, 0f)); let x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } fn fog_sun_scatter(fc: vec3, dir_1: vec3) -> vec3 { var c_9: vec3; var k_4: u32 = 0u; c_9 = fc; let _e6 = Sky.fog_color.w; if (_e6 > 0.001f) { let _e9 = pool_sun_count(); loop { let _e12 = k_4; if (_e12 < _e9) { } else { break; } { let _e14 = k_4; let _e15 = pool_sun(_e14); let _e21 = Lit.lights[_e15].info.x; if (_e21 == LIGHT_DIRECTIONAL) { let _e24 = c_9; let _e29 = Lit.lights[_e15].color; let _e38 = Lit.lights[_e15].direction; let _e42 = pow8_(dot(dir_1, -(_e38.xyz))); let _e47 = Sky.fog_color.w; c_9 = (_e24 + (((_e29.xyz / vec3(3.1415927f)) * _e42) * _e47)); } } continuing { let _e51 = k_4; k_4 = (_e51 + 1u); } } } let _e53 = c_9; return _e53; } fn surface_fog(c_10: vec3, world_3: vec3, dir_2: vec3) -> vec3 { var dist: f32; var amount: f32; var fc_1: vec3; var local_2: bool; let _e5 = G.view; let depth = -((_e5 * vec4(world_3, 1f)).z); let _e13 = G.camera_pos; dist = distance(world_3, _e13.xyz); let _e20 = Sky.fog_origin.w; if (_e20 > 0.5f) { let _e26 = Sky.fog_origin.x; dist = max((depth - _e26), 0f); } let _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { let _e42 = Sky.fog_depth.x; let _e46 = Sky.fog_depth.y; let _e47 = dist; let z = smoothstep(_e42, _e46, _e47); let _e54 = Sky.fog_depth.z; let _e63 = Sky.fog.x; amount = (select(0f, pow(max(z, 0.000001f), _e54), (z > 0f)) * _e63); } else { let _e65 = dist; let _e70 = Sky.fog.x; amount = (1f - exp(min(0f, (-(_e65) * _e70)))); } let _e80 = Sky.fog.w; if (abs(_e80) >= 0.0001f) { let _e86 = Lit.up; let y = dot(world_3, _e86.xyz); let _e89 = amount; let _e93 = Sky.fog.z; let _e98 = Sky.fog.w; amount = max(_e89, (1f - exp(min(0f, ((y - _e93) * _e98))))); } let _e106 = amount; amount = clamp(_e106, 0f, 1f); let _e112 = Sky.fog_color; fc_1 = _e112.xyz; let _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { let _e129 = Sky.fog_depth.w; local_2 = (_e129 > 0f); } else { local_2 = false; } let _e133 = local_2; if select(false, _e133, SPEC_AMBIENT_SKY) { let _e139 = Sky.fog_origin.y; let _e144 = Sky.fog_origin.z; let _e148 = Sky.fog_origin.y; let t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 0.000001f)), 0f, 1f); let _e159 = Sky.flags.y; let top_2 = f32((max(_e159, 2u) - 1u)); let rough = mix((1f / top_2), 1f, (1f - t_3)); let _e171 = fc_1; let _e172 = sky_dir(dir_2); let _e173 = radiance(_e172, rough); let _e177 = Sky.sun.w; let _e182 = Sky.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } let _e184 = fc_1; let _e185 = fog_sun_scatter(_e184, dir_2); fc_1 = _e185; let _e186 = fc_1; let _e187 = amount; return mix(c_10, _e186, _e187); } fn fog_chord(k_5: u32, o: vec3, d_2: vec3, t_end_ray: f32) -> vec2 { var r_1: vec2; var a: f32 = 0f; var b: f32 = 0f; var c_11: f32 = -1f; let _e9 = Fog.entries[k_5].albedo.w; let shape = u32(_e9); let _e16 = Fog.entries[k_5].emission.w; let t_end_1 = min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return vec2(0f, t_end_1); } let _e26 = Fog.entries[k_5].size; let h = (_e26.xyz * 0.5f); let dd = select(d_2, vec3(0.000000000001f), (abs(d_2) < vec3(0.000000000001f))); let sa = ((-(h) - o) / dd); let sb = ((h - o) / dd); let s_in = min(sa, sb); let s_out = max(sa, sb); r_1 = vec2(max(0f, s_in.y), min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { let _e60 = r_1.x; let _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = dot((d_2 / h), (d_2 / h)); b = dot((o / h), (d_2 / h)); c_11 = (dot((o / h), (o / h)) - 1f); } else { let rad_1 = min(h.x, h.z); let k_14 = select(0f, (rad_1 / (2f * h.y)), (shape == FOG_SHAPE_CONE)); let w_2 = (h.y - o.y); a = (((d_2.x * d_2.x) + (d_2.z * d_2.z)) - (((k_14 * k_14) * d_2.y) * d_2.y)); b = (((o.x * d_2.x) + (o.z * d_2.z)) + (((k_14 * k_14) * w_2) * d_2.y)); c_11 = (((o.x * o.x) + (o.z * o.z)) - select((rad_1 * rad_1), (((k_14 * k_14) * w_2) * w_2), (shape == FOG_SHAPE_CONE))); } } let _e139 = b; let _e140 = b; let _e142 = a; let _e143 = c_11; let disc = ((_e139 * _e140) - (_e142 * _e143)); let _e146 = a; if (abs(_e146) < 0.000000000001f) { let _e150 = b; if (abs(_e150) < 0.000000000001f) { let _e156 = r_1.y; let _e157 = c_11; r_1.y = select(_e156, -1f, (_e157 > 0f)); } else { let _e162 = b; if (_e162 > 0f) { let _e167 = r_1.y; let _e168 = c_11; let _e170 = b; r_1.y = min(_e167, (-(_e168) / (2f * _e170))); } else { let _e177 = r_1.x; let _e178 = c_11; let _e180 = b; r_1.x = max(_e177, (-(_e178) / (2f * _e180))); } } } else { if (disc < 0f) { let _e189 = r_1.y; let _e190 = a; r_1.y = select(_e189, -1f, (_e190 > 0f)); } else { let _e195 = b; let _e199 = a; let _e201 = b; let _e205 = a; let lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); let _e208 = b; let _e212 = a; let _e214 = b; let _e218 = a; let hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); let _e221 = a; if (_e221 > 0f) { let _e225 = r_1.x; let _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { let _e232 = r_1.x; let _e234 = r_1.y; if (_e232 < min(_e234, lo_2)) { let _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { let _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } let _e245 = r_1; return _e245; } fn fog_density(k_6: u32, p_2: vec3, lp: vec3) -> f32 { var rho: f32; var sdf: f32 = 0f; let e_11 = Fog.entries[k_6]; let _e14 = Fog.up; rho = (e_11.material.x * min(exp2((-(e_11.material.y) * (dot(p_2, _e14.xyz) - e_11.material.w))), 1f)); if (e_11.material.z > 0f) { let shape_1 = u32(e_11.albedo.w); let h_1 = (e_11.size.xyz * 0.5f); let rad_2 = min(h_1.x, h_1.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { let k0_ = length((lp / h_1)); sdf = ((k0_ * (k0_ - 1f)) / max(length((lp / (h_1 * h_1))), 0.000000000001f)); } else { if (shape_1 == FOG_SHAPE_BOX) { let q_3 = (abs(lp) - h_1); sdf = (length(max(q_3, vec3(0f))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0f)); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { let q_4 = vec2((length(lp.xz) - rad_2), (abs(lp.y) - h_1.y)); sdf = (min(max(q_4.x, q_4.y), 0f) + length(max(q_4, vec2(0f)))); } else { let n_7 = normalize(vec2((1f / max(0.001f, (rad_2 * 0.5f))), (1f / max(0.001f, h_1.y)))); sdf = max(dot(n_7, vec2(length(lp.xz), (lp.y - h_1.y))), (-(h_1.y) - lp.y)); } } } let _e116 = rho; let _e117 = sdf; rho = (_e116 * pow(clamp(((-2f * _e117) / e_11.size.w), 0f, 1f), e_11.material.z)); } let _e130 = rho; return _e130; } fn fog_falloff_depth(k_7: u32, a_1: f32, b_1: f32, t0_: f32, t1_: f32) -> f32 { let m_1 = Fog.entries[k_7].material; let hf = m_1.y; if ((hf * b_1) == 0f) { return ((m_1.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1f)); } let s_6 = clamp((-(a_1) / b_1), t0_, t1_); let lo_3 = select(t0_, s_6, (b_1 > 0f)); let hi_3 = select(s_6, t1_, (b_1 > 0f)); let x_4 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472f); let g = select(((1f - exp(-(x_4))) / x_4), (1f - (x_4 * (0.5f - (x_4 * (0.16666667f - (x_4 / 24f)))))), (x_4 < 0.01f)); let top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * select(hi_3, lo_3, (b_1 > 0f)))), 0f))), 1f); return (m_1.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } fn omni_attenuation(d_3: f32, inv_range: f32, decay: f32) -> f32 { var nd: f32; nd = (d_3 * inv_range); let _e5 = nd; let _e6 = nd; nd = (_e5 * _e6); let _e8 = nd; let _e9 = nd; nd = (_e8 * _e9); let _e11 = nd; nd = max((1f - _e11), 0f); let _e16 = nd; let _e17 = nd; nd = (_e16 * _e17); let _e19 = nd; return (_e19 * pow(max(d_3, 0.0001f), -(decay))); } fn fog_light(n_2: u32, p_3: vec3, dir_3: vec3) -> vec3 { var sum: vec3; var k_8: u32 = 0u; var l: vec3; var atten: f32; let _e5 = Fog.ambient; let _e10 = Fog.params.y; sum = (_e5.xyz * _e10); let g_1 = Fog.params.x; let lights = Fog.entries[n_2].lights; loop { let _e24 = k_8; if (_e24 < min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { let _e31 = k_8; let _e35 = k_8; let i_10 = min(((select(lights.y, lights.x, (_e31 < 4u)) >> ((_e35 & 3u) * 8u)) & 255u), 63u); let li = Lit.lights[i_10]; l = -(li.direction.xyz); atten = 1f; if (li.info.x != LIGHT_DIRECTIONAL) { let rel = (li.position.xyz - p_3); l = (rel / vec3(max(length(rel), 0.000001f))); let _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { let _e77 = l; let rim = max(0.0001f, ((1f - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1f - li.spot.x), 0.000001f))); let _e96 = atten; atten = (_e96 * (1f - pow(rim, li.spot.y))); } } let _e108 = l; let q_5 = ((1f + (g_1 * g_1)) - ((2f * g_1) * dot(dir_3, _e108))); let _e112 = sum; let _e115 = atten; let _e133 = Fog.light_fog[(i_10 >> 2u)][(i_10 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1f - (g_1 * g_1))) / ((12.566371f * q_5) * sqrt(q_5))) * _e133))); } continuing { let _e138 = k_8; k_8 = (_e138 + 1u); } } let _e140 = sum; return _e140; } fn fog_entry(k_9: u32, o_1: vec3, d_4: vec3, ch: vec2) -> vec4 { var split: f32; var local_3: bool; var local_4: bool; var q_1: vec3 = vec3(0f); var tau: f32 = 0f; var i: u32 = 0u; var local_5: bool; var local_6: bool; let e_12 = Fog.entries[k_9]; let lo_4 = (e_12.to_local * vec4(o_1, 1f)).xyz; let ld = (e_12.to_local * vec4(d_4, 0f)).xyz; let _e20 = Fog.up; let a_5 = (dot(o_1, _e20.xyz) - e_12.material.w); let _e28 = Fog.up; let b_3 = dot(d_4, _e28.xyz); let edge = (e_12.material.z > 0f); split = ((ch.x + ch.y) * 0.5f); if (e_12.material.y > 0f) { local_3 = ((-(a_5) / b_3) > ch.x); } else { local_3 = false; } let _e52 = local_3; if _e52 { local_4 = ((-(a_5) / b_3) < ch.y); } else { local_4 = false; } let _e60 = local_4; if _e60 { split = (-(a_5) / b_3); } loop { let _e70 = i; if (_e70 < select(4u, 12u, edge)) { } else { break; } { let _e75 = i; let j = (_e75 & 3u); if !((j == 0u)) { local_5 = (j == 3u); } else { local_5 = true; } let _e88 = local_5; let x_5 = select(FOG_GL_X1_, FOG_GL_X0_, _e88); if !((j == 0u)) { local_6 = (j == 3u); } else { local_6 = true; } let _e100 = local_6; let w_3 = select(FOG_GL_W1_, FOG_GL_W0_, _e100); let _e102 = split; let _e106 = split; let _e108 = i; let _e112 = i; let seg = select(select(vec2(_e102, ch.y), vec2(ch.x, _e106), (_e108 < 8u)), ch, (_e112 < 4u)); let half_len = ((seg.y - seg.x) * 0.5f); let t_4 = (((seg.x + seg.y) * 0.5f) + (half_len * select(x_5, -(x_5), (j < 2u)))); let p_7 = (o_1 + (d_4 * t_4)); let _e136 = fog_density(k_9, p_7, (lo_4 + (ld * t_4))); let _e137 = i; if (_e137 < 4u) { let _e140 = q_1; let _e143 = fog_light(k_9, p_7, d_4); q_1 = (_e140 + (((e_12.albedo.xyz * _e143) + e_12.emission.xyz) * ((w_3 * half_len) * clamp(_e136, 0f, 1f)))); } else { let _e155 = tau; tau = (_e155 + ((w_3 * half_len) * _e136)); } } continuing { let _e160 = i; i = (_e160 + 1u); } } if !(edge) { let _e165 = fog_falloff_depth(k_9, a_5, b_3, ch.x, ch.y); tau = _e165; } let _e166 = q_1; let _e167 = tau; return vec4(_e166, _e167); } fn fog_integrate(c_12: vec3, o_2: vec3, d_5: vec3, t_end: f32, list: u32) -> vec3 { var at: array; var chords: array, 4>; var m: u32 = 0u; var i_1: u32 = 0u; var local_7: bool; var parts: array, 4>; var i_2: u32 = 0u; var n_3: u32 = 0u; var avail: f32; var i_3: u32; var i_4: u32; var q_2: vec3 = vec3(0f); var tau_1: f32 = 0f; var i_5: u32 = 0u; let all_ = (list >= FOG_LIST_ALL); loop { let _e13 = i_1; let _e18 = Fog.counts.x; if (_e13 < select(4u, min(_e18, MAX_FRAME_FOG_VOLUMES), all_)) { } else { break; } { let _e23 = i_1; let byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if !(all_) { local_7 = (byte == 0u); } else { local_7 = false; } let _e37 = local_7; if _e37 { break; } let _e42 = i_1; let k_15 = select((min(byte, MAX_FRAME_FOG_VOLUMES) - 1u), _e42, all_); let to_local = Fog.entries[k_15].to_local; let _e57 = fog_chord(k_15, (to_local * vec4(o_2, 1f)).xyz, (to_local * vec4(d_5, 0f)).xyz, t_end); if (_e57.y > _e57.x) { let _e61 = m; at[_e61] = k_15; let _e63 = m; chords[_e63] = _e57; let _e66 = m; m = (_e66 + 1u); let _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } continuing { let _e72 = i_1; i_1 = (_e72 + 1u); } } loop { let _e77 = i_2; let _e78 = m; if (_e77 < _e78) { } else { break; } { let _e80 = i_2; let _e82 = i_2; let _e84 = at[_e82]; let _e85 = i_2; let _e87 = chords[_e85]; let _e88 = fog_entry(_e84, o_2, d_5, _e87); parts[_e80] = _e88; } continuing { let _e90 = i_2; i_2 = (_e90 + 1u); } } loop { let _e94 = n_3; let _e95 = m; if (_e94 < _e95) { } else { break; } { let _e97 = n_3; let _e100 = parts[_e97].w; if (_e100 < 0f) { avail = 0f; i_3 = 0u; loop { let _e107 = i_3; let _e108 = m; if (_e107 < _e108) { } else { break; } { let _e110 = i_3; let _e113 = chords[_e110].y; let _e114 = n_3; let _e117 = chords[_e114].y; let _e119 = i_3; let _e122 = chords[_e119].x; let _e123 = n_3; let _e126 = chords[_e123].x; let _e131 = i_3; let _e134 = chords[_e131].y; let _e135 = i_3; let _e138 = chords[_e135].x; let share = (max((min(_e113, _e117) - max(_e122, _e126)), 0f) / max((_e134 - _e138), 0.000001f)); let _e143 = avail; let _e144 = i_3; let _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0f) * share)); } continuing { let _e153 = i_3; i_3 = (_e153 + 1u); } } let _e155 = n_3; let _e158 = parts[_e155].w; let _e160 = avail; let f_3 = min((-(_e158) / max(_e160, 0.000000000001f)), 1f); i_4 = 0u; loop { let _e168 = i_4; let _e169 = m; if (_e168 < _e169) { } else { break; } { let _e171 = i_4; let _e174 = parts[_e171].w; if (_e174 > 0f) { let _e177 = i_4; let _e180 = chords[_e177].y; let _e181 = n_3; let _e184 = chords[_e181].y; let _e186 = i_4; let _e189 = chords[_e186].x; let _e190 = n_3; let _e193 = chords[_e190].x; let _e198 = i_4; let _e201 = chords[_e198].y; let _e202 = i_4; let _e205 = chords[_e202].x; let share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0f) / max((_e201 - _e205), 0.000001f)); let _e210 = i_4; let _e212 = parts[_e210]; parts[_e210] = (_e212 * (1f - (share_1 * f_3))); } } continuing { let _e218 = i_4; i_4 = (_e218 + 1u); } } } } continuing { let _e221 = n_3; n_3 = (_e221 + 1u); } } loop { let _e230 = i_5; let _e231 = m; if (_e230 < _e231) { } else { break; } { let _e233 = i_5; let _e236 = parts[_e233].w; if (_e236 > 0f) { let _e239 = q_2; let _e240 = i_5; let _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); let _e245 = tau_1; let _e246 = i_5; let _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } continuing { let _e252 = i_5; i_5 = (_e252 + 1u); } } let _e254 = tau_1; let t_5 = exp(-(_e254)); let _e258 = q_2; let _e261 = tau_1; return ((c_12 * t_5) + (_e258 * ((1f - t_5) / max(_e261, 0.00001f)))); } fn fog_volumes(c_13: vec3, world_4: vec3, list_1: u32) -> vec3 { let _e7 = G.view[0][2]; let _e12 = G.view[1][2]; let _e17 = G.view[2][2]; let back = normalize(vec3(_e7, _e12, _e17)); let _e22 = G.camera_pos; let _e26 = G.view; let _e36 = G.camera_pos.w; let o_7 = select(_e22.xyz, (world_4 - (back * (_e26 * vec4(world_4, 1f)).z)), (_e36 > 0.5f)); let len = length((world_4 - o_7)); let _e47 = fog_integrate(c_13, o_7, ((world_4 - o_7) / vec3(max(len, 0.000001f))), len, list_1); return select(c_13, _e47, (len > 0f)); } fn shadow_factor(i_6: u32, world_5: vec3, n_geo_1: vec3, l_1: vec3) -> f32 { var part: u32 = 0u; var c_14: u32 = 0u; var local_8: bool; var local_9: bool; var local_10: bool; var vis: f32 = 0f; var dy: i32 = -1i; var dx: i32; let kind = Lit.lights[i_6].info.x; let _e14 = Lit.lights[i_6].position; let light_pos = _e14.xyz; let _e21 = Lit.lights[i_6].info.w; let slot = min(_e21, 15u); let params = Shadow.lights[slot].params; let first = Shadow.lights[slot].info.x; let _e40 = Shadow.lights[slot].info.y; let count = max(_e40, 1u); let _e45 = G.view; let view_depth = -((_e45 * vec4(world_5, 1f)).z); if (kind == LIGHT_DIRECTIONAL) { let _e60 = Shadow.lights[slot].fade.y; if (view_depth > _e60) { return 1f; } part = (count - 1u); loop { let _e67 = c_14; if (_e67 < count) { } else { break; } { let _e73 = c_14; let _e75 = Shadow.lights[slot].splits[_e73]; if (view_depth <= _e75) { let _e77 = c_14; part = _e77; break; } } continuing { let _e79 = c_14; c_14 = (_e79 + 1u); } } } let _e83 = part; let texel = Shadow.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; let t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); let p_8 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1f)) * t_6))) + (l_1 * (params.x * t_6))); if (kind == LIGHT_OMNI) { let d_10 = (p_8 - light_pos); let a_6 = abs(d_10); if (a_6.x >= a_6.y) { local_8 = (a_6.x >= a_6.z); } else { local_8 = false; } let _e123 = local_8; if _e123 { part = select(1u, 0u, (d_10.x >= 0f)); } else { if (a_6.y >= a_6.z) { part = select(3u, 2u, (d_10.y >= 0f)); } else { part = select(5u, 4u, (d_10.z >= 0f)); } } } let _e145 = part; let tile = min((first + min(_e145, (count - 1u))), 15u); let _e156 = Shadow.tiles[tile].view_proj; let clip = (_e156 * vec4(p_8, 1f)); if (clip.w <= 0f) { return 1f; } let ndc = (clip.xyz / vec3(clip.w)); if !((abs(ndc.x) > 1f)) { local_9 = (abs(ndc.y) > 1f); } else { local_9 = true; } let _e180 = local_9; if !(_e180) { local_10 = (ndc.z > 1f); } else { local_10 = true; } let _e188 = local_10; if _e188 { return 1f; } let rect = Shadow.tiles[tile].rect; let uv_3 = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let auv = (rect.xy + (uv_3 * rect.zw)); let texel_uv = Shadow.atlas.x; let lo_5 = (rect.xy + vec2((0.5f * texel_uv))); let hi_4 = ((rect.xy + rect.zw) - vec2((0.5f * texel_uv))); let r_5 = params.z; if (r_5 <= 0f) { let _e235 = textureSampleCompareLevel(t_shadow, s_shadow, clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { let spread = (r_5 * texel_uv); loop { let _e239 = dy; if (_e239 <= 1i) { } else { break; } { dx = -1i; loop { let _e244 = dx; if (_e244 <= 1i) { } else { break; } { let _e247 = dx; let _e249 = dy; let tap = clamp((auv + (vec2(f32(_e247), f32(_e249)) * spread)), lo_5, hi_4); let _e255 = vis; let _e259 = textureSampleCompareLevel(t_shadow, s_shadow, tap, ndc.z); vis = (_e255 + _e259); } continuing { let _e262 = dx; dx = (_e262 + 1i); } } } continuing { let _e265 = dy; dy = (_e265 + 1i); } } let _e267 = vis; vis = (_e267 / 9f); } if (kind == LIGHT_DIRECTIONAL) { let fade_1 = Shadow.lights[slot].fade; let _e277 = vis; vis = mix(_e277, 1f, smoothstep(fade_1.x, fade_1.y, view_depth)); } let _e283 = vis; return mix(1f, _e283, params.w); } fn gi_diffuse(n_4: vec3, baked: bool, baked_light: vec3) -> vec4 { if baked { return vec4(baked_light, 1f); } return vec4(0f); } fn probe_face_uv(d_6: vec3) -> vec3 { var face: f32; var ma: f32; var sc: f32; var tc: f32; var local_11: bool; let a_7 = abs(d_6); if (a_7.x >= a_7.y) { local_11 = (a_7.x >= a_7.z); } else { local_11 = false; } let _e15 = local_11; if _e15 { ma = a_7.x; if (d_6.x >= 0f) { face = 0f; sc = -(d_6.z); tc = -(d_6.y); } else { face = 1f; sc = d_6.z; tc = -(d_6.y); } } else { if (a_7.y >= a_7.z) { ma = a_7.y; if (d_6.y >= 0f) { face = 2f; sc = d_6.x; tc = d_6.z; } else { face = 3f; sc = d_6.x; tc = -(d_6.z); } } else { ma = a_7.z; if (d_6.z >= 0f) { face = 4f; sc = d_6.x; tc = -(d_6.y); } else { face = 5f; sc = -(d_6.x); tc = -(d_6.y); } } } let _e56 = face; let _e57 = sc; let _e58 = ma; let _e64 = tc; let _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1f) * 0.5f), (((_e64 / _e65) + 1f) * 0.5f)); } fn probe_texel(row: u32, fuv: vec3, level_1: u32) -> vec3 { let _e6 = Probe.counts.z; let n_8 = f32(max((_e6 >> level_1), 1u)); let lo_6 = (0.5f / n_8); let u_1 = clamp(fuv.y, lo_6, (1f - lo_6)); let v_1 = clamp(fuv.z, lo_6, (1f - lo_6)); let uv_4 = vec2(((fuv.x + u_1) / 6f), ((f32(row) + v_1) / 8f)); let _e33 = textureSampleLevel(t_probes, s_probes, uv_4, f32(level_1)); return _e33.xyz; } fn probe_sample(row_1: u32, d_7: vec3, lod: f32) -> vec3 { var local_12: bool; let _e6 = Probe.counts.y; let levels = max(_e6, 1u); let l_4 = clamp(lod, 0f, f32((levels - 1u))); let m0_ = u32(l_4); let t_7 = (l_4 - f32(m0_)); let _e17 = probe_face_uv(d_7); let _e18 = probe_texel(row_1, _e17, m0_); if !((t_7 <= 0f)) { local_12 = ((m0_ + 1u) >= levels); } else { local_12 = true; } let _e28 = local_12; if _e28 { return _e18; } let _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1f - t_7)) + (_e34 * t_7)); } fn probe_weight(p_4: ProbeEntryU, world_6: vec3) -> f32 { let l_5 = (p_4.to_local * vec4(world_6, 1f)).xyz; let e_13 = p_4.extents.xyz; let d_11 = min((e_13.x - abs(l_5.x)), min((e_13.y - abs(l_5.y)), (e_13.z - abs(l_5.z)))); if (d_11 < 0f) { return 0f; } if !((p_4.extents.w > 0f)) { return 1f; } return min((d_11 / p_4.extents.w), 1f); } fn probe_exit(o_3: f32, d_8: f32, e_1: f32) -> f32 { if (d_8 > 0f) { return ((e_1 - o_3) / d_8); } if (d_8 < 0f) { return ((-(e_1) - o_3) / d_8); } return 300000000000000000000000000000000000000f; } fn probe_lookup(p_5: ProbeEntryU, world_7: vec3, dir_4: vec3) -> vec3 { let d_12 = (p_5.to_local * vec4(dir_4, 0f)).xyz; if ((p_5.info.x & PROBE_BOX) == 0u) { return d_12; } let o_8 = (p_5.to_local * vec4(world_7, 1f)).xyz; let e_14 = p_5.extents.xyz; let _e24 = probe_exit(o_8.x, d_12.x, e_14.x); let _e28 = probe_exit(o_8.y, d_12.y, e_14.y); let _e32 = probe_exit(o_8.z, d_12.z, e_14.z); let t_8 = max(min(_e24, min(_e28, _e32)), 0f); return ((o_8 + (d_12 * t_8)) - p_5.offset.xyz); } fn probe_reflection(world_8: vec3, r_2: vec3, roughness_2: f32, probes: u32) -> vec4 { var acc: vec3 = vec3(0f); var w_sum: f32 = 0f; var i_7: u32 = 0u; let _e12 = Probe.counts.x; let count_1 = min(_e12, MAX_PROBES); let _e18 = Probe.counts.y; let lod_1 = (roughness_2 * f32((max(_e18, 1u) - 1u))); loop { let _e27 = i_7; if (_e27 < count_1) { } else { break; } { let _e31 = i_7; let p_9 = Probe.probes[_e31]; if (((probes >> p_9.info.w) & 1u) == 0u) { continue; } let _e41 = probe_weight(p_9, world_8); if (_e41 <= 0f) { continue; } let _e44 = acc; let _e47 = probe_lookup(p_9, world_8, r_2); let _e48 = probe_sample(p_9.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_9.offset.w) * _e41)); let _e54 = w_sum; w_sum = (_e54 + _e41); } continuing { let _e57 = i_7; i_7 = (_e57 + 1u); } } let _e59 = w_sum; if (_e59 > 1f) { let _e62 = acc; let _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1f; } let _e67 = acc; let _e68 = w_sum; return vec4(_e67, _e68); } fn probe_ambient(world_9: vec3, n_5: vec3, probes_1: u32) -> vec4 { var acc_1: vec3 = vec3(0f); var w_sum_1: f32 = 0f; var i_8: u32 = 0u; var local_13: bool; var c_15: vec3; let _e11 = Probe.counts.x; let count_2 = min(_e11, MAX_PROBES); let _e17 = Probe.counts.y; let last = (max(_e17, 1u) - 1u); loop { let _e24 = i_8; if (_e24 < count_2) { } else { break; } { let _e28 = i_8; let p_10 = Probe.probes[_e28]; if !((((probes_1 >> p_10.info.w) & 1u) == 0u)) { local_13 = (p_10.info.y == PROBE_AMBIENT_DISABLED); } else { local_13 = true; } let _e46 = local_13; if _e46 { continue; } let _e47 = probe_weight(p_10, world_9); if (_e47 <= 0f) { continue; } c_15 = p_10.ambient.xyz; if (p_10.info.y == PROBE_AMBIENT_ENVIRONMENT) { let _e64 = probe_face_uv((p_10.to_local * vec4(n_5, 0f)).xyz); let _e65 = probe_texel(p_10.info.w, _e64, last); c_15 = _e65; } let _e66 = acc_1; let _e67 = c_15; acc_1 = (_e66 + (_e67 * _e47)); let _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } continuing { let _e73 = i_8; i_8 = (_e73 + 1u); } } let _e75 = w_sum_1; if (_e75 > 1f) { let _e78 = acc_1; let _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1f; } let _e83 = acc_1; let _e84 = w_sum_1; return vec4(_e83, _e84); } fn lit_output(c_16: vec4) -> vec4 { let _e4 = Lit.counts.y; if ((_e4 & ENV_HDR) != 0u) { return vec4(max(c_16.xyz, vec3(0f)), clamp(c_16.w, 0f, 1f)); } let _e18 = target_color(c_16); return _e18; } fn ext_vs_out(o_4: VsOut, uv1_1: vec2) -> VsOutExt { var e_2: VsOutExt; e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_1; let _e20 = e_2; return _e20; } fn ext_base_in(e_3: VsOutExt) -> VsOut { var o_5: VsOut; o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; let _e18 = o_5; return _e18; } fn surface_vertex(in_3: VsIn) -> VsOut { var out: VsOut; let _e3 = O.model; let world_12 = (_e3 * vec4(in_3.pos, 1f)); let _e12 = G.view_proj; out.clip = (_e12 * world_12); out.world = world_12.xyz; let _e19 = O.normal; out.normal = normalize((_e19 * vec4(in_3.normal, 0f)).xyz); out.uv = in_3.uv; out.flags = in_3.flags; let _e33 = O.extra.x; let mirror = select(1f, -1f, ((_e33 & OBJ_MIRRORED) != 0u)); let _e44 = O.model; out.tangent = vec4(normalize((_e44 * vec4(in_3.tangent.xyz, 0f)).xyz), (in_3.tangent.w * mirror)); out.weight = in_3.weight; out.color = vec4(1f); let _e61 = out; return _e61; } fn ext_uv(s: u32, uv0_: vec2, uv1_2: vec2) -> vec2 { let r0_ = M.xf[(s * 2u)]; let r1_ = M.xf[((s * 2u) + 1u)]; let uv_5 = select(uv0_, uv1_2, (r0_.w > 0.5f)); return vec2((dot(r0_.xy, uv_5) + r0_.z), (dot(r1_.xy, uv_5) + r1_.z)); } fn sample_ext(in_4: VsOutExt) -> ExtSamples { var s_1: ExtSamples; var thick: f32 = 1f; let _e2 = tex_uv(in_4.uv); let _e4 = tex_uv(in_4.uv1_); let _e9 = M.base_color; s_1.base = _e9; let _e14 = M.flags.x; if select(false, ((_e14 & T_BASE) != 0u), SPEC_TEX_BASE) { let _e22 = s_1.base; let _e26 = ext_uv(SLOT_BASE, _e2, _e4); let _e27 = textureSample(t_base, s_mat, _e26); let _e28 = decoded_base(_e27); s_1.base = (_e22 * _e28); } s_1.normal = vec3(0f, 0f, 1f); let _e39 = M.factors.x; s_1.metallic = _e39; let _e44 = M.factors.y; s_1.roughness = _e44; let _e48 = M.emission; s_1.emission = _e48.xyz; s_1.occlusion = 1f; let _e57 = M.ext[0].w; s_1.specular = _e57; let _e62 = M.ext[0]; s_1.specular_color = _e62.xyz; let _e69 = M.ext[1].y; s_1.transmission = _e69; let _e75 = M.ext[1].z; s_1.thickness = _e75; let _e81 = M.ext[3].x; s_1.clearcoat = _e81; let _e87 = M.ext[3].y; s_1.clearcoat_roughness = _e87; s_1.clearcoat_normal = vec3(0f, 0f, 1f); s_1.clearcoat_mapped = false; let _e99 = M.ext[4]; s_1.sheen_color = _e99.xyz; let _e106 = M.ext[4].w; s_1.sheen_roughness = _e106; let _e112 = M.ext[5].x; s_1.iridescence = _e112; let _e120 = M.ext[5].z; let _e125 = M.ext[5].w; let _e126 = thick; s_1.iridescence_thickness = mix(_e120, _e125, _e126); let _e133 = M.ext[6].x; s_1.anisotropy = _e133; let _e138 = M.ext[6]; s_1.anisotropy_dir = _e138.yz; let _e145 = M.ext[7].w; s_1.diffuse_transmission = _e145; let _e150 = M.ext[7]; s_1.diffuse_transmission_color = _e150.xyz; let _e152 = s_1; return _e152; } fn ext_cut(s_2: ExtSamples) -> bool { var local_14: bool; let _e5 = M.flags.y; if (_e5 == ALPHA_MASK) { let _e15 = M.emission.w; local_14 = (s_2.base.w < _e15); } else { local_14 = false; } let _e18 = local_14; return select(false, _e18, SPEC_ALPHA_MASK); } fn pow5_(x_2: f32) -> f32 { let x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } fn f_schlick90_(f0_: vec3, f90_: vec3, vh: f32) -> vec3 { let _e9 = pow5_(clamp((1f - vh), 0f, 1f)); return (f0_ + ((f90_ - f0_) * _e9)); } fn ext_view(world_10: vec3) -> vec3 { let _e5 = G.view[0][2]; let _e10 = G.view[1][2]; let _e15 = G.view[2][2]; let view_dir = vec3(_e5, _e10, _e15); let _e19 = G.camera_pos; let _e27 = G.camera_pos.w; return select(normalize((_e19.xyz - world_10)), normalize(view_dir), (_e27 > 0.5f)); } fn ext_ctx(in_5: VsOutExt, front: bool, s_3: ExtSamples, decals: bool) -> ExtCtx { var e_4: ExtCtx; var t_1: vec3; var surf_1: DecalSurface; let n_geo_2 = select(-(normalize(in_5.normal)), normalize(in_5.normal), front); t_1 = in_5.tangent.xyz; let _e14 = t_1; let _e15 = t_1; t_1 = normalize((_e14 - (n_geo_2 * dot(n_geo_2, _e15)))); let _e20 = t_1; let b_4 = (cross(n_geo_2, _e20) * in_5.tangent.w); e_4.n_geo = n_geo_2; e_4.n = n_geo_2; e_4.nc = n_geo_2; if s_3.clearcoat_mapped { let _e30 = t_1; e_4.nc = normalize((((_e30 * s_3.clearcoat_normal.x) + (b_4 * s_3.clearcoat_normal.y)) + (n_geo_2 * s_3.clearcoat_normal.z))); } let _e55 = e_4.n; surf_1 = DecalSurface(s_3.base.xyz, clamp(s_3.metallic, 0f, 1f), clamp(s_3.roughness, 0.045f, 1f), s_3.occlusion, _e55, s_3.emission); if select(false, decals, SPEC_DECALS) { let _e63 = surf_1; let _e64 = apply_decals(in_5.world, n_geo_2, _e63); surf_1 = _e64; } let _e67 = surf_1.normal; e_4.n = _e67; let _e70 = surf_1.occlusion; e_4.occlusion = _e70; let _e73 = surf_1.emission; e_4.emission = _e73; let _e76 = ext_view(in_5.world); e_4.v = _e76; e_4.world = in_5.world; let _e81 = e_4.n; let _e83 = e_4.v; e_4.nv = max(dot(_e81, _e83), 0.0001f); let _e89 = surf_1.metallic; e_4.metallic = _e89; let _e92 = surf_1.roughness; e_4.roughness = _e92; let _e95 = e_4.roughness; let _e97 = e_4.roughness; e_4.alpha = (_e95 * _e97); let _e101 = e_4.alpha; let _e103 = e_4.alpha; e_4.a2_ = (_e101 * _e103); let _e107 = surf_1.base; e_4.base = _e107; let _e110 = e_4.base; let _e112 = e_4.metallic; e_4.diffuse = (_e110 * (1f - _e112)); let _e121 = M.ext[1].x; e_4.ior = max(_e121, 1f); let _e125 = e_4.ior; let _e129 = e_4.ior; let r_6 = ((_e125 - 1f) / (_e129 + 1f)); let spec_1 = max(s_3.specular, 0f); let dielectric_f0_ = (min((vec3((r_6 * r_6)) * s_3.specular_color), vec3(1f)) * spec_1); let _e146 = e_4.base; let _e148 = e_4.metallic; e_4.f0_ = mix(dielectric_f0_, _e146, _e148); let _e155 = e_4.metallic; e_4.f90_ = mix(vec3(spec_1), vec3(1f), _e155); e_4.iridescence = clamp(s_3.iridescence, 0f, 1f); let _e164 = e_4.f0_; e_4.irid_f = _e164; e_4.aniso = clamp(s_3.anisotropy, 0f, 1f); let _e171 = t_1; e_4.aniso_t = normalize(((_e171 * s_3.anisotropy_dir.x) + (b_4 * s_3.anisotropy_dir.y))); let _e182 = e_4.aniso_t; e_4.aniso_b = normalize(cross(n_geo_2, _e182)); e_4.clearcoat = clamp(s_3.clearcoat, 0f, 1f); e_4.cc_roughness = clamp(s_3.clearcoat_roughness, 0.045f, 1f); let _e196 = e_4.cc_roughness; let _e198 = e_4.cc_roughness; let cca = (_e196 * _e198); e_4.cc_a2_ = (cca * cca); e_4.sheen = max(s_3.sheen_color, vec3(0f)); e_4.sheen_roughness = clamp(s_3.sheen_roughness, 0.07f, 1f); let _e214 = e_4.sheen_roughness; let _e216 = e_4.sheen_roughness; e_4.sheen_alpha = (_e214 * _e216); e_4.dt = clamp(s_3.diffuse_transmission, 0f, 1f); e_4.dt_color = max(s_3.diffuse_transmission_color, vec3(0f)); e_4.transmission = clamp(s_3.transmission, 0f, 1f); let _e235 = e_4.alpha; let _e237 = e_4.ior; e_4.trans_alpha = max((_e235 * clamp(((_e237 * 2f) - 2f), 0f, 1f)), 0.002f); let _e251 = O.model[0]; let _e257 = O.model[1]; let _e264 = O.model[2]; let scale = (((length(_e251.xyz) + length(_e257.xyz)) + length(_e264.xyz)) / 3f); let dist_1 = (max(s_3.thickness, 0f) * scale); e_4.thin = (dist_1 <= 0f); e_4.thickness = dist_1; e_4.frag = in_5.clip.xy; e_4.attenuation = vec3(1f); let _e289 = M.ext[2].w; e_4.dispersion = _e289; let _e290 = e_4; return _e290; } fn ext_fresnel(e_5: ExtCtx, vh_1: f32) -> vec3 { let _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_1); return mix(_e4, e_5.irid_f, e_5.iridescence); } fn ext_light(e_6: ExtCtx, l_2: vec3, radiance_1: vec3, spec: f32, godot: bool) -> vec3 { var f: vec3 = vec3(0f); var specular: vec3 = vec3(0f); var dv: f32; var diffuse: vec3; var c_17: vec3; let nl_raw = dot(e_6.n, l_2); let nl_1 = max(nl_raw, 0f); let h_2 = normalize((l_2 + e_6.v)); let nh_1 = max(dot(e_6.n, h_2), 0f); let vh_2 = max(dot(e_6.v, h_2), 0f); let nv_3 = e_6.nv; if (nl_1 > 0f) { let _e29 = ext_fresnel(e_6, vh_2); f = _e29; { let _e32 = d_ggx(nh_1, e_6.a2_); let _e34 = v_smith(nl_1, nv_3, e_6.a2_); dv = (_e32 * _e34); } let _e36 = f; let _e37 = dv; specular = (((_e36 * _e37) * nl_1) * select(1f, spec, godot)); } let _e45 = f; diffuse = (select((((vec3(1f) - _e45) * e_6.diffuse) / vec3(3.1415927f)), (e_6.diffuse / vec3(3.1415927f)), godot) * nl_1); let _e59 = diffuse; let _e60 = specular; let base = (_e59 + _e60); c_17 = (base * radiance_1); let _e64 = c_17; return _e64; } fn ext_irradiance(n_6: vec3, lit_mode: bool) -> vec3 { let _e6 = Sky.flags.x; if select(false, ((_e6 & SKY_IBL) != 0u), SPEC_AMBIENT_SKY) { let _e16 = Sky.ibl.x; let _e20 = Sky.sun.w; let scale_1 = (_e16 * _e20); let _e25 = Sky.flags.x; if ((_e25 & SKY_AMBIENT_SKY) != 0u) { let _e32 = Sky.ambient; let _e34 = sky_dir(n_6); let _e35 = sh_irradiance(_e34); let _e40 = Sky.ambient.w; return mix(_e32.xyz, (_e35 * scale_1), _e40); } let _e44 = Sky.ambient; return _e44.xyz; } let _e50 = Lit.counts.y; if select(false, ((_e50 & ENV_AMBIENT_SKY) != 0u), SPEC_AMBIENT_GRADIENT) { let _e59 = Lit.sky_top; let _e63 = Lit.sky_horizon; let sky_avg = ((_e59.xyz + _e63.xyz) * 0.5f); let _e70 = Lit.ground_horizon; let _e74 = Lit.ground_bottom; let ground_avg = ((_e70.xyz + _e74.xyz) * 0.5f); let _e81 = Lit.up; let _e95 = Lit.ambient.w; return (mix(ground_avg, sky_avg, clamp(((dot(n_6, _e81.xyz) * 0.5f) + 0.5f), 0f, 1f)) * _e95); } let _e99 = Lit.ambient; return _e99.xyz; } fn ext_radiance(dir_5: vec3, roughness_3: f32, lit_mode_1: bool) -> vec3 { let _e7 = Sky.flags.x; if select(false, ((_e7 & SKY_IBL) != 0u), SPEC_AMBIENT_SKY) { let _e17 = Sky.ibl.x; let _e21 = Sky.sun.w; let scale_2 = (_e17 * _e21); let _e26 = Sky.flags.x; if ((_e26 & SKY_REFLECT_RADIANCE) != 0u) { let _e31 = sky_dir(dir_5); let _e32 = radiance(_e31, roughness_3); return (_e32 * scale_2); } let _e37 = Sky.flags.x; if ((_e37 & SKY_REFLECT_OFF) != 0u) { return vec3(0f); } let _e46 = Sky.ambient; return _e46.xyz; } let _e52 = Lit.counts.y; if select(false, ((_e52 & ENV_AMBIENT_SKY) != 0u), SPEC_AMBIENT_GRADIENT) { let _e61 = Lit.sky_top; let _e65 = Lit.sky_horizon; let sky_avg_1 = ((_e61.xyz + _e65.xyz) * 0.5f); let _e70 = sky(dir_5); let _e75 = Lit.ambient.w; return (mix(_e70, sky_avg_1, roughness_3) * _e75); } let _e79 = Lit.ambient; return _e79.xyz; } fn ext_probe_radiance(e_7: ExtCtx, dir_6: vec3, roughness_4: f32, lit_mode_2: bool) -> vec3 { var local_15: bool; let _e4 = ext_radiance(dir_6, roughness_4, lit_mode_2); if !(!(lit_mode_2)) { let _e13 = Probe.counts.x; local_15 = (_e13 == 0u); } else { local_15 = true; } let _e17 = local_15; if select(true, _e17, SPEC_PROBES) { return _e4; } let _e24 = O.extra.z; let _e25 = probe_reflection(e_7.world, dir_6, roughness_4, _e24); return ((_e4 * (1f - _e25.w)) + _e25.xyz); } fn ext_env_weight(f0_1: vec3, f90_1: vec3, roughness_5: f32, nv_2: f32, metallic: f32, lit_mode_3: bool) -> vec3 { var local_16: bool; if lit_mode_3 { let _e12 = Sky.flags.x; local_16 = ((_e12 & SKY_IBL) != 0u); } else { local_16 = false; } let _e18 = local_16; if select(false, _e18, SPEC_AMBIENT_SKY) { let _e21 = env_brdf_approx(roughness_5, nv_2); return ((f0_1 * _e21.x) + ((f90_1 * _e21.y) * clamp((50f * f0_1.y), metallic, 1f))); } let _e40 = pow5_((1f - nv_2)); let f_amb = (f0_1 + ((max((f90_1 * (1f - roughness_5)), f0_1) - f0_1) * _e40)); return f_amb; } fn ext_ambient(e_8: ExtCtx, lit_mode_4: bool, gi: vec4) -> vec3 { var diffuse_1: vec3; var local_17: bool; var local_18: bool; var local_19: bool; var local_20: bool; var r_3: vec3; var c_18: vec3; let nv_4 = e_8.nv; let _e6 = ext_irradiance(e_8.n, lit_mode_4); diffuse_1 = (e_8.diffuse * _e6); if lit_mode_4 { let _e15 = Sky.flags.x; local_17 = ((_e15 & SKY_IBL) == 0u); } else { local_17 = false; } let _e21 = local_17; if _e21 { let _e27 = Lit.counts.y; local_18 = ((_e27 & ENV_AMBIENT_SKY) == 0u); } else { local_18 = false; } let _e33 = local_18; if select(false, _e33, SPEC_AMBIENT_FLAT) { let _e38 = Lit.ambient; diffuse_1 = (_e38.xyz * e_8.diffuse); } if lit_mode_4 { let _e48 = Probe.counts.x; local_19 = (_e48 > 0u); } else { local_19 = false; } let _e52 = local_19; if _e52 { local_20 = (gi.w <= 0f); } else { local_20 = false; } let _e59 = local_20; if select(false, _e59, SPEC_PROBES) { let _e67 = O.extra.z; let _e68 = probe_ambient(e_8.world, e_8.n, _e67); let _e69 = diffuse_1; diffuse_1 = ((_e69 * (1f - _e68.w)) + (e_8.diffuse * _e68.xyz)); } if (gi.w > 0f) { diffuse_1 = (e_8.diffuse * gi.xyz); } r_3 = reflect(-(e_8.v), e_8.n); let f0_2 = mix(e_8.f0_, e_8.irid_f, e_8.iridescence); let f90_2 = mix(e_8.f90_, vec3(1f), e_8.iridescence); let _e100 = ext_env_weight(f0_2, f90_2, e_8.roughness, nv_4, e_8.metallic, lit_mode_4); let _e101 = r_3; let _e103 = ext_probe_radiance(e_8, _e101, e_8.roughness, lit_mode_4); let specular_1 = (_e103 * _e100); let _e105 = diffuse_1; c_18 = (_e105 + specular_1); let _e108 = c_18; return _e108; } fn ext_shade_with(in_6: VsOutExt, front_1: bool, s_4: ExtSamples, lit_mode_5: bool, baked_1: bool, baked_light_1: vec3) -> vec3 { var local_21: bool; var c_19: vec3 = vec3(0f); var k_10: u32 = 0u; var local_22: bool; var l_3: vec3; var atten_1: f32; var rad: vec3; var local_23: bool; if lit_mode_5 { let _e12 = O.decals.z; local_21 = (_e12 > 0u); } else { local_21 = false; } let _e16 = local_21; let _e19 = ext_ctx(in_6, front_1, s_4, select(false, _e16, SPEC_DECALS)); let _e23 = object_light_count(); loop { let _e27 = k_10; if select(false, (_e27 < _e23), SPEC_LIGHTS) { } else { break; } { let _e31 = k_10; let _e32 = object_light(_e31); let li_1 = Lit.lights[_e32]; if baked_1 { local_22 = (li_1.info.z == LIGHT_BAKED_STATIC); } else { local_22 = false; } let _e44 = local_22; if _e44 { continue; } let kind_1 = li_1.info.x; l_3 = vec3(); atten_1 = 1f; if (kind_1 == LIGHT_DIRECTIONAL) { l_3 = -(li_1.direction.xyz); } else { let rel_1 = (li_1.position.xyz - in_6.world); let d_13 = length(rel_1); l_3 = (rel_1 / vec3(max(d_13, 0.000001f))); let _e69 = omni_attenuation(d_13, li_1.position.w, li_1.direction.w); atten_1 = _e69; if (kind_1 == LIGHT_SPOT) { let cone = li_1.spot.x; let _e74 = l_3; let scos = max(dot(-(_e74), li_1.direction.xyz), cone); let rim_1 = max(0.0001f, ((1f - scos) / max((1f - cone), 0.000001f))); let _e89 = atten_1; atten_1 = (_e89 * (1f - pow(rim_1, li_1.spot.y))); } } let _e96 = atten_1; if (_e96 > 0f) { let _e101 = atten_1; rad = (li_1.color.xyz * _e101); if select(false, (li_1.info.y == LIGHT_SHADOWED), SPEC_SHADOWS) { let _e113 = atten_1; let _e116 = l_3; let _e117 = shadow_factor(_e32, in_6.world, _e19.n_geo, _e116); rad = (li_1.color.xyz * (_e113 * _e117)); } let _e120 = c_19; let _e121 = l_3; let _e122 = rad; let _e126 = ext_light(_e19, _e121, _e122, li_1.spot.z, true); c_19 = (_e120 + _e126); } } continuing { let _e129 = k_10; k_10 = (_e129 + 1u); } } let _e133 = gi_diffuse(_e19.n, baked_1, baked_light_1); let _e134 = ext_ambient(_e19, true, _e133); let _e139 = Lit.counts.y; if ((_e139 & ENV_SSAO) != 0u) { let _e149 = M.flags.y; local_23 = (_e149 != ALPHA_BLEND); } else { local_23 = false; } let _e153 = local_23; if select(false, _e153, SPEC_SSAO) { let _e162 = textureLoad(t_ao, vec2(floor(in_6.clip.xy)), 0i); let ssao = _e162.x; let _e164 = c_19; let _e170 = Lit.tone.z; let _e174 = Lit.tone.w; c_19 = (_e164 * mix(1f, min(ssao, _e19.occlusion), (_e170 * _e174))); let _e179 = c_19; c_19 = (_e179 + (_e134 * min(_e19.occlusion, ssao))); } else { let _e184 = c_19; c_19 = (_e184 + (_e134 * _e19.occlusion)); } let _e188 = c_19; c_19 = (_e188 + _e19.emission); let _e191 = c_19; return _e191; } fn ext_shade(in_7: VsOutExt, front_2: bool, s_5: ExtSamples, lit_mode_6: bool) -> vec3 { let _e7 = ext_shade_with(in_7, front_2, s_5, lit_mode_6, false, vec3(0f)); return _e7; } fn ext_lit_finish(c_in_1: vec3, world_11: vec3) -> vec3 { var c_20: vec3; c_20 = c_in_1; let _e7 = Sky.flags.x; if select(false, ((_e7 & SKY_FOG) != 0u), SPEC_FOG) { let _e14 = c_20; let _e15 = ext_view(world_11); let _e17 = surface_fog(_e14, world_11, -(_e15)); c_20 = _e17; } let _e22 = O.decals.w; if select(false, (_e22 != 0u), SPEC_FOG_VOLUMES) { let _e27 = c_20; let _e31 = O.decals.w; let _e32 = fog_volumes(_e27, world_11, _e31); c_20 = _e32; } let _e33 = c_20; let _e34 = tonemap(_e33); return _e34; } @vertex fn vs_surface_ext(in: VsIn, @location(10) uv1_: vec2) -> VsOutExt { let _e2 = surface_vertex(in); let _e3 = ext_vs_out(_e2, uv1_); return _e3; } @fragment fn fs_surface_ext(in_1: VsOutExt, @builtin(front_facing) facing: bool) -> @location(0) vec4 { var alpha: f32 = 1f; var c: vec3; let _e2 = ext_base_in(in_1); let _e3 = mirrored(_e2); let front_3 = (facing != _e3); let _e5 = sample_ext(in_1); let _e9 = emerge_reveal(in_1.world, in_1.clip.xy); if select(false, (_e9 <= 0f), SPEC_EMERGE) { discard; } let _e15 = ext_cut(_e5); if _e15 { discard; } let _e22 = G.params.x; let lit_mode_7 = select(false, (_e22 == SHADE_LIT), SPEC_LIT); { let _e32 = M.flags.w; if select(false, ((_e32 & MAT_UNLIT) != 0u), SPEC_UNLIT) { c = _e5.base.xyz; } else { let _e41 = ext_shade(in_1, front_3, _e5, lit_mode_7); c = _e41; } if select(false, lit_mode_7, SPEC_LIT) { let _e45 = c; let _e47 = ext_lit_finish(_e45, in_1.world); c = _e47; } } if select(false, lit_mode_7, SPEC_LIT) { let _e51 = c; let _e52 = item_fade(_e51); let _e53 = emerge_tint(_e52, _e9); let _e54 = alpha; let _e56 = lit_output(vec4(_e53, _e54)); return _e56; } let _e57 = c; let _e58 = alpha; let _e60 = target_color(vec4(_e57, _e58)); return _e60; }  @Ð Ð/ ,@ P˜J£&ѰA¬ËÎ-”ÒÑ'�gQoCî¶_7hh'·vs_surface_extmain`#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = false; const bool SPEC_TEX_MR = false; const bool SPEC_TEX_EMISSION = false; const bool SPEC_TEX_OCCLUSION = false; const bool SPEC_VERTEX_COLOR = false; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = false; const bool SPEC_ALPHA_BLEND = false; const bool SPEC_CLEARCOAT = false; const bool SPEC_SHEEN = false; const bool SPEC_TRANSMISSION = false; const bool SPEC_IRIDESCENCE = false; const bool SPEC_ANISOTROPY = false; const bool SPEC_DIFFUSE_TRANSMISSION = false; const bool SPEC_VOLUME = false; const bool SPEC_DISPERSION = false; const bool SPEC_EXT_LAYERS = false; const bool SPEC_ROUGHNESS_LAYER = false; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = false; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = false; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = false; const bool SPEC_OTHER_MODES = false; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Vertex { Globals _group_0_binding_0_vs; }; layout(std140) uniform ObjectU_block_1Vertex { ObjectU _group_1_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec2 _p2vs_location2; layout(location = 3) in uint _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in float _p2vs_location5; layout(location = 10) in vec2 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out uint _vs2fs_location3; smooth out vec4 _vs2fs_location4; smooth out float _vs2fs_location5; smooth out vec4 _vs2fs_location6; smooth out vec2 _vs2fs_location7; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_11 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_vs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_11.xyz); return vec4(_e13, k_11.w); } return k_11; } uint object_light_count() { uint _e3 = _group_1_binding_0_vs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_vs.lights.y; uint _e8 = _group_1_binding_0_vs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_vs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_vs.decals.y; uint _e8 = _group_1_binding_0_vs.decals.x; uint word_1 = ((k_2 < 4u) ? _e8 : _e4); return ((word_1 >> ((k_2 & 3u) * 8u)) & 255u); } bool mirrored(VsOut in_2) { uint _e4 = _group_1_binding_0_vs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_2.flags & F_INSTANCE_MIRRORED) != 0u)); } vec2 tex_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } float d_ggx(float nh, float a2_) { float d_9 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_9) * d_9)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_3 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_3 * (x_3 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_3 * ((0.983729 * x_3) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w = (1.8 * white); float wt = (((w * (w + 0.0245786)) - 9.0537e-5) / ((w * ((0.983729 * w) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v; v = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v; vec3 _e45 = v; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v; vec3 _e56 = v; vec3 _e64 = v; vec3 p_6 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_6, vec3(1e-10)), vec3(2.4))); } float emerge_hash(vec3 p) { vec3 q = vec3(0.0); q = fract((p * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_1) { vec3 i_9 = floor(p_1); vec3 f_1 = fract(p_1); vec3 u = ((f_1 * f_1) * (vec3(3.0) - (2.0 * f_1))); float _e10 = emerge_hash(i_9); float _e16 = emerge_hash((i_9 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_9 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_9 + vec3(1.0, 1.0, 0.0))); float a_2 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_9 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_9 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_9 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_9 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_2, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n = 0.0; uint _e6 = _group_1_binding_0_vs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_9 = _group_1_binding_0_vs.normal[0][3]; vec3 w_1 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_1); float _e29 = emerge_noise(((w_1 * 2.7) + vec3(17.1))); n = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n; n = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n; return (((e_9 * 1.8) - _e60) / EMERGE_EDGE); } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_4 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_4.x * r_4.x), exp2((-9.28 * nv_1))) * r_4.x) + r_4.y); return ((vec2(-1.04, 1.04) * a004_) + r_4.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } float omni_attenuation(float d_3, float inv_range, float decay) { float nd = 0.0; nd = (d_3 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_3, 0.0001), -(decay))); } vec4 gi_diffuse(vec3 n_4, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_6) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_11 = false; vec3 a_3 = abs(d_6); if ((a_3.x >= a_3.y)) { local_11 = (a_3.x >= a_3.z); } else { local_11 = false; } bool _e15 = local_11; if (_e15) { ma = a_3.x; if ((d_6.x >= 0.0)) { face = 0.0; sc = -(d_6.z); tc = -(d_6.y); } else { face = 1.0; sc = d_6.z; tc = -(d_6.y); } } else { if ((a_3.y >= a_3.z)) { ma = a_3.y; if ((d_6.y >= 0.0)) { face = 2.0; sc = d_6.x; tc = d_6.z; } else { face = 3.0; sc = d_6.x; tc = -(d_6.z); } } else { ma = a_3.z; if ((d_6.z >= 0.0)) { face = 4.0; sc = d_6.x; tc = -(d_6.y); } else { face = 5.0; sc = -(d_6.x); tc = -(d_6.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } float probe_weight(ProbeEntryU p_4, vec3 world_6) { vec3 l_4 = (p_4.to_local * vec4(world_6, 1.0)).xyz; vec3 e_10 = p_4.extents.xyz; float d_10 = min((e_10.x - abs(l_4.x)), min((e_10.y - abs(l_4.y)), (e_10.z - abs(l_4.z)))); if ((d_10 < 0.0)) { return 0.0; } if (!((p_4.extents.w > 0.0))) { return 1.0; } return min((d_10 / p_4.extents.w), 1.0); } float probe_exit(float o_3, float d_8, float e_1) { if ((d_8 > 0.0)) { return ((e_1 - o_3) / d_8); } if ((d_8 < 0.0)) { return ((-(e_1) - o_3) / d_8); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_5, vec3 world_7, vec3 dir_4) { vec3 d_11 = (p_5.to_local * vec4(dir_4, 0.0)).xyz; if (((p_5.info.x & PROBE_BOX) == 0u)) { return d_11; } vec3 o_7 = (p_5.to_local * vec4(world_7, 1.0)).xyz; vec3 e_11 = p_5.extents.xyz; float _e24 = probe_exit(o_7.x, d_11.x, e_11.x); float _e28 = probe_exit(o_7.y, d_11.y, e_11.y); float _e32 = probe_exit(o_7.z, d_11.z, e_11.z); float t_3 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_7 + (d_11 * t_3)) - p_5.offset.xyz); } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_1) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_1; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_3) { VsOut out_ = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_vs.model; vec4 world_12 = (_e3 * vec4(in_3.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_vs.view_proj; out_.clip = (_e12 * world_12); out_.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_vs.normal; out_.normal = normalize((_e19 * vec4(in_3.normal, 0.0)).xyz); out_.uv = in_3.uv; out_.flags = in_3.flags; uint _e33 = _group_1_binding_0_vs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_vs.model; out_.tangent = vec4(normalize((_e44 * vec4(in_3.tangent.xyz, 0.0)).xyz), (in_3.tangent.w * mirror)); out_.weight = in_3.weight; out_.color = vec4(1.0); VsOut _e61 = out_; return _e61; } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_, vec3 f90_, float vh) { float _e9 = pow5_(clamp((1.0 - vh), 0.0, 1.0)); return (f0_ + ((f90_ - f0_) * _e9)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_vs.view[0][2]; float _e10 = _group_0_binding_0_vs.view[1][2]; float _e15 = _group_0_binding_0_vs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_vs.camera_pos; float _e27 = _group_0_binding_0_vs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } vec3 ext_fresnel(ExtCtx e_5, float vh_1) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_1); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_2, vec3 radiance_1, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular = vec3(0.0); float dv = 0.0; vec3 diffuse = vec3(0.0); vec3 c_17 = vec3(0.0); float nl_raw = dot(e_6.n, l_2); float nl_1 = max(nl_raw, 0.0); vec3 h = normalize((l_2 + e_6.v)); float nh_1 = max(dot(e_6.n, h), 0.0); float vh_2 = max(dot(e_6.v, h), 0.0); float nv_3 = e_6.nv; if ((nl_1 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_2); f = _e29; { float _e32 = d_ggx(nh_1, e_6.a2_); float _e34 = v_smith(nl_1, nv_3, e_6.a2_); dv = (_e32 * _e34); } vec3 _e36 = f; float _e37 = dv; specular = (((_e36 * _e37) * nl_1) * (godot ? spec : 1.0)); } vec3 _e45 = f; diffuse = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e45) * e_6.diffuse) / vec3(3.1415927))) * nl_1); vec3 _e59 = diffuse; vec3 _e60 = specular; vec3 base = (_e59 + _e60); c_17 = (base * radiance_1); vec3 _e64 = c_17; return _e64; } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5); vec2 uv1_ = _p2vs_location10; VsOut _e2 = surface_vertex(in_); VsOutExt _e3 = ext_vs_out(_e2, uv1_); gl_Position = _e3.clip; _vs2fs_location0 = _e3.world; _vs2fs_location1 = _e3.normal; _vs2fs_location2 = _e3.uv; _vs2fs_location3 = _e3.flags; _vs2fs_location4 = _e3.tangent; _vs2fs_location5 = _e3.weight; _vs2fs_location6 = _e3.color; _vs2fs_location7 = _e3.uv1_; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_surface_extmainMP#version 300 es precision highp float; precision highp int; struct Globals { mat4x4 view; mat4x4 proj; mat4x4 view_proj; vec4 camera_pos; vec4 viewport; vec4 wire_color; vec4 select_color; vec4 active_color; vec4 grid; uvec4 params; vec4 fparams; }; struct ObjectU { mat4x4 model; mat4x4 normal; vec4 color; uvec4 params; uvec4 extra; vec4 gi[3]; uvec4 decals; uvec4 lights; }; struct MaterialU { vec4 base_color; vec4 emission; vec4 factors; uvec4 flags; vec4 uv; vec4 xf[40]; vec4 ext[8]; }; struct LightU { vec4 color; vec4 position; vec4 direction; vec4 spot; uvec4 info; }; struct LitU { uvec4 counts; vec4 ambient; vec4 tone; vec4 up; vec4 sky_top; vec4 sky_horizon; vec4 ground_horizon; vec4 ground_bottom; mat4x4 inv_view_proj; uvec4 dirs; LightU lights[64]; }; struct ShadowLightU { vec4 params; vec4 splits; vec4 fade; uvec4 info; }; struct ShadowTileU { mat4x4 view_proj; vec4 rect; vec4 texel; }; struct ShadowU { vec4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { vec4 direction; vec4 color; }; struct SkyU { uvec4 flags; mat4x4 to_sky; vec4 sky_top; vec4 sky_horizon; vec4 ground_bottom; vec4 ground_horizon; vec4 sun; vec4 ambient; vec4 ibl; vec4 fog_color; vec4 fog; vec4 fog_depth; vec4 fog_origin; SunU suns[4]; vec4 sh[9]; }; struct ProbeEntryU { mat4x4 to_local; vec4 extents; vec4 offset; vec4 ambient; uvec4 info; }; struct ProbeU { uvec4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { mat4x4 to_local; vec4 modulate; vec4 fades; vec4 axis_x; vec4 axis_y; vec4 axis_z; uvec4 layers; uvec4 flags; }; struct DecalU { uvec4 counts; vec4 lod; DecalEntryU entries[64]; }; struct DecalSurface { vec3 base; float metallic; float roughness; float occlusion; vec3 normal; vec3 emission; }; struct VsIn { vec3 pos; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; }; struct VsOut { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; }; struct InstIn { vec4 row0_; vec4 row1_; vec4 row2_; vec4 color; }; struct Samples { vec4 base; vec3 normal; vec4 mr; vec3 emission; float occlusion; }; struct FogEntryU { mat4x4 to_local; vec4 size; vec4 material; vec4 albedo; vec4 emission; uvec4 lights; }; struct FogU { uvec4 counts; vec4 params; vec4 ambient; vec4 up; vec4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { vec4 clip; vec2 ndc; }; struct IdOut { vec4 id; }; struct NormalDepthOut { vec4 normal_depth; vec4 surface; }; struct VsOutExt { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; }; struct ExtSamples { vec4 base; vec3 normal; float metallic; float roughness; vec3 emission; float occlusion; float specular; vec3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; vec3 clearcoat_normal; bool clearcoat_mapped; vec3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; vec2 anisotropy_dir; float diffuse_transmission; vec3 diffuse_transmission_color; }; struct ExtCtx { vec3 n; vec3 n_geo; vec3 nc; vec3 v; vec3 world; float nv; vec3 base; vec3 diffuse; float metallic; float roughness; float alpha; float a2_; vec3 f0_; vec3 f90_; float iridescence; vec3 irid_f; float aniso; vec3 aniso_t; vec3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; vec3 sheen; float sheen_alpha; float sheen_roughness; float dt; vec3 dt_color; float transmission; float trans_alpha; float ior; vec3 attenuation; bool thin; float thickness; vec2 frag; float dispersion; float occlusion; vec3 emission; }; struct VsOutLm { vec4 clip; vec3 world; vec3 normal; vec2 uv; uint flags; vec4 tangent; float weight; vec4 color; vec2 uv1_; vec2 uv_lm; }; struct SkinU { vec4 rows[765]; }; struct SkinIn { uvec4 joints; vec4 weights; }; struct SkinRows { vec4 r0_; vec4 r1_; vec4 r2_; }; const uint OBJ_HAS_WEIGHTS = 1u; const uint OBJ_MIRRORED = 2u; const uint SHADE_SOLID = 0u; const uint SHADE_MATCAP = 1u; const uint SHADE_NORMALS = 2u; const uint SHADE_FACE_ORIENT = 3u; const uint SHADE_RANDOM = 4u; const uint SHADE_MATERIAL = 5u; const uint SHADE_UV_CHECKER = 6u; const uint SHADE_WEIGHTS = 7u; const uint SHADE_LIT = 8u; const uint SHADE_LIGHTMAP = 9u; const uint SHADE_LIGHT_COUNT = 10u; const uint OV_SELECTION = 1u; const uint OV_SEAMS = 2u; const uint OV_SHARP = 4u; const uint F_SELECTED = 1u; const uint F_HIDDEN = 2u; const uint F_SEAM = 4u; const uint F_SHARP = 8u; const uint F_MESH = 16u; const uint F_FADE = 32u; const uint F_NO_PULL = 64u; const bool SPEC_TEX_BASE = true; const bool SPEC_TEX_NORMAL = false; const bool SPEC_TEX_MR = false; const bool SPEC_TEX_EMISSION = false; const bool SPEC_TEX_OCCLUSION = false; const bool SPEC_VERTEX_COLOR = false; const bool SPEC_EXT = true; const bool SPEC_UNLIT = true; const bool SPEC_ALPHA_MASK = false; const bool SPEC_ALPHA_BLEND = false; const bool SPEC_CLEARCOAT = false; const bool SPEC_SHEEN = false; const bool SPEC_TRANSMISSION = false; const bool SPEC_IRIDESCENCE = false; const bool SPEC_ANISOTROPY = false; const bool SPEC_DIFFUSE_TRANSMISSION = false; const bool SPEC_VOLUME = false; const bool SPEC_DISPERSION = false; const bool SPEC_EXT_LAYERS = false; const bool SPEC_ROUGHNESS_LAYER = false; const bool SPEC_LIT = true; const bool SPEC_LIGHTS = true; const bool SPEC_SHADOWS = true; const bool SPEC_DECALS = true; const bool SPEC_FOG = true; const bool SPEC_FOG_VOLUMES = true; const bool SPEC_PROBES = true; const bool SPEC_PROBE_GI = false; const bool SPEC_SSAO = true; const bool SPEC_SCREEN_REFRACTION = true; const bool SPEC_EMERGE = true; const bool SPEC_FADE = true; const bool SPEC_FACE_FLAGS = false; const bool SPEC_AMBIENT_FLAT = true; const bool SPEC_AMBIENT_GRADIENT = true; const bool SPEC_AMBIENT_SKY = true; const bool SPEC_MATERIAL_MODE = false; const bool SPEC_OTHER_MODES = false; const uint T_BASE = 1u; const uint T_NORMAL = 2u; const uint T_METALLIC_ROUGHNESS = 4u; const uint T_EMISSION = 8u; const uint T_OCCLUSION = 16u; const uint MAT_VERTEX_COLOR = 1u; const uint MAT_VERTEX_COLOR_SRGB = 2u; const uint MAT_EXT = 4u; const uint MAT_UNLIT = 8u; const uint MAT_ROUGHNESS_LAYER = 16u; const uint MAT_SRGB_BASE = 32u; const uint MAT_SRGB_EMISSION = 64u; const uint ALPHA_OPAQUE = 0u; const uint ALPHA_MASK = 1u; const uint ALPHA_BLEND = 2u; const float PI = 3.1415927; const uint MAX_FRAME_LIGHTS = 64u; const uint MAX_OBJECT_LIGHTS = 8u; const uint MAX_SHADOW_LIGHTS = 16u; const uint MAX_POOL_DIRECTIONAL = 8u; const vec3 LIGHT_COUNT_COLORS[10] = vec3[10](vec3(0.352941, 0.352941, 0.352941), vec3(0.168627, 0.247059, 0.6), vec3(0.129412, 0.4, 0.67451), vec3(0.101961, 0.623529, 0.721569), vec3(0.121569, 0.631373, 0.529412), vec3(0.301961, 0.733333, 0.352941), vec3(0.65098, 0.831373, 0.227451), vec3(0.94902, 0.784314, 0.058824), vec3(0.94902, 0.556863, 0.058824), vec3(0.878431, 0.129412, 0.541176)); const uint LIGHT_DIRECTIONAL = 0u; const uint LIGHT_OMNI = 1u; const uint LIGHT_SPOT = 2u; const uint LIGHT_BAKE_DISABLED = 0u; const uint LIGHT_BAKE_STATIC = 1u; const uint LIGHT_BAKE_DYNAMIC = 2u; const uint TONEMAP_LINEAR = 0u; const uint TONEMAP_REINHARD = 1u; const uint TONEMAP_FILMIC = 2u; const uint TONEMAP_ACES = 3u; const uint TONEMAP_AGX = 4u; const uint ENV_SKY = 1u; const uint ENV_AMBIENT_SKY = 2u; const uint ENV_SSAO = 4u; const uint ENV_HDR = 8u; const uint ENV_SCREEN_REFRACTION = 16u; const uint LIGHT_SHADOWED = 1u; const uint LIGHT_BAKED_STATIC = 1u; const uint SHADOW_TILES = 16u; const uint SKY_DRAW_PROCEDURAL = 1u; const uint SKY_DRAW_PANORAMA = 2u; const uint SKY_PANORAMA_FILTER = 4u; const uint SKY_IBL = 8u; const uint SKY_AMBIENT_SKY = 16u; const uint SKY_REFLECT_RADIANCE = 32u; const uint SKY_REFLECT_OFF = 64u; const uint SKY_FOG = 128u; const uint SKY_FOG_DEPTH = 256u; const uint SKY_SUNS = 4u; const uint OBJ_LIGHTMAP = 4u; const uint OBJ_PROBE_GI = 8u; const uint PROBE_BOX = 1u; const uint PROBE_INTERIOR = 2u; const uint MAX_PROBES = 8u; const uint PROBE_AMBIENT_DISABLED = 0u; const uint PROBE_AMBIENT_ENVIRONMENT = 1u; const uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; const uint MAX_FRAME_DECALS = 64u; const uint MAX_OBJECT_DECALS = 8u; const uint DECAL_LIVE_ALBEDO = 1u; const uint DECAL_LIVE_NORMAL = 2u; const uint DECAL_LIVE_ORM = 4u; const uint DECAL_LIVE_EMISSION = 8u; const uint F_INSTANCE_MIRRORED = 128u; const uint OBJ_EMERGE = 32u; const float EMERGE_SCALE = 1.3; const float EMERGE_EDGE = 0.8; const float EMERGE_DITHER = 0.12; const uint OBJ_FADE = 64u; const uint MAX_FRAME_FOG_VOLUMES = 16u; const uint MAX_OBJECT_FOG_VOLUMES = 4u; const uint FOG_SHAPE_ELLIPSOID = 0u; const uint FOG_SHAPE_CONE = 1u; const uint FOG_SHAPE_CYLINDER = 2u; const uint FOG_SHAPE_BOX = 3u; const uint FOG_SHAPE_WORLD = 4u; const float FOG_SKY_DISTANCE = 1000000.0; const uint FOG_LIST_ALL = 2147483648u; const float FOG_GL_X0_ = 0.8611363; const float FOG_GL_X1_ = 0.339981; const float FOG_GL_W0_ = 0.3478548; const float FOG_GL_W1_ = 0.6521452; const uint SLOT_BASE = 0u; const uint SLOT_METALLIC = 1u; const uint SLOT_ROUGHNESS = 2u; const uint SLOT_NORMAL = 3u; const uint SLOT_OCCLUSION = 4u; const uint SLOT_EMISSIVE = 5u; const uint SLOT_CLEARCOAT = 6u; const uint SLOT_CLEARCOAT_ROUGHNESS = 7u; const uint SLOT_CLEARCOAT_NORMAL = 8u; const uint SLOT_SHEEN_COLOR = 9u; const uint SLOT_SHEEN_ROUGHNESS = 10u; const uint SLOT_SPECULAR = 11u; const uint SLOT_SPECULAR_COLOR = 12u; const uint SLOT_TRANSMISSION = 13u; const uint SLOT_THICKNESS = 14u; const uint SLOT_IRIDESCENCE = 15u; const uint SLOT_IRIDESCENCE_THICKNESS = 16u; const uint SLOT_ANISOTROPY = 17u; const uint SLOT_DIFFUSE_TRANSMISSION = 18u; const uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; const uint OBJ_SKINNED = 16u; const uint SKIN_JOINTS = 255u; layout(std140) uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; layout(std140) uniform ObjectU_block_1Fragment { ObjectU _group_1_binding_0_fs; }; layout(std140) uniform MaterialU_block_2Fragment { MaterialU _group_2_binding_0_fs; }; uniform highp sampler2D _group_2_binding_1_fs; layout(std140) uniform LitU_block_3Fragment { LitU _group_0_binding_1_fs; }; layout(std140) uniform ShadowU_block_4Fragment { ShadowU _group_0_binding_2_fs; }; uniform highp sampler2DShadow _group_0_binding_3_fs; layout(std140) uniform SkyU_block_5Fragment { SkyU _group_0_binding_5_fs; }; uniform highp samplerCube _group_3_binding_0_fs; uniform highp sampler2D _group_0_binding_6_fs; layout(std140) uniform ProbeU_block_6Fragment { ProbeU _group_0_binding_7_fs; }; uniform highp sampler2D _group_3_binding_6_fs; layout(std140) uniform DecalU_block_7Fragment { DecalU _group_1_binding_2_fs; }; uniform highp sampler2DArray _group_1_binding_3_fs; layout(std140) uniform FogU_block_8Fragment { FogU _group_1_binding_5_fs; }; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in uint _vs2fs_location3; smooth in vec4 _vs2fs_location4; smooth in float _vs2fs_location5; smooth in vec4 _vs2fs_location6; smooth in vec2 _vs2fs_location7; layout(location = 0) out vec4 _fs2p_location0; vec3 srgb_to_linear(vec3 c_1) { vec3 lo = (c_1 / vec3(12.92)); vec3 hi = pow(((c_1 + vec3(0.055)) / vec3(1.055)), vec3(2.4)); return mix(hi, lo, lessThanEqual(c_1, vec3(0.04045))); } vec3 linear_to_srgb(vec3 c_2) { vec3 lo_1 = (c_2 * 12.92); vec3 hi_1 = ((1.055 * pow(c_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(c_2, vec3(0.0031308))); } vec4 target_color(vec4 c_3) { vec4 k_11 = clamp(c_3, vec4(0.0), vec4(1.0)); float _e9 = _group_0_binding_0_fs.fparams.w; if ((_e9 > 0.5)) { vec3 _e13 = linear_to_srgb(k_11.xyz); return vec4(_e13, k_11.w); } return k_11; } uint object_light_count() { uint _e3 = _group_1_binding_0_fs.lights.z; return min(_e3, MAX_OBJECT_LIGHTS); } uint object_light(uint k) { uint _e4 = _group_1_binding_0_fs.lights.y; uint _e8 = _group_1_binding_0_fs.lights.x; uint word = ((k < 4u) ? _e8 : _e4); return min(((word >> ((k & 3u) * 8u)) & 255u), 63u); } uint pool_sun_count() { uint _e3 = _group_0_binding_1_fs.dirs.z; return min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun(uint k_1) { uint _e4 = _group_0_binding_1_fs.dirs.y; uint _e8 = _group_0_binding_1_fs.dirs.x; uint word_1 = ((k_1 < 4u) ? _e8 : _e4); return min(((word_1 >> ((k_1 & 3u) * 8u)) & 255u), 63u); } uint decal_count() { uint _e3 = _group_1_binding_0_fs.decals.z; return min(_e3, MAX_OBJECT_DECALS); } uint decal_entry(uint k_2) { uint _e4 = _group_1_binding_0_fs.decals.y; uint _e8 = _group_1_binding_0_fs.decals.x; uint word_2 = ((k_2 < 4u) ? _e8 : _e4); return ((word_2 >> ((k_2 & 3u) * 8u)) & 255u); } float decal_level(DecalEntryU e, vec3 world) { float _e5 = _group_1_binding_2_fs.lod.x; vec4 _e8 = _group_0_binding_0_fs.camera_pos; float _e15 = _group_1_binding_2_fs.lod.y; float pixel_1 = (_e5 * ((_e15 > 0.5) ? 1.0 : length((world - _e8.xyz)))); uint _e24 = _group_1_binding_2_fs.counts.y; float top = float((max(_e24, 1u) - 1u)); return clamp(log2(max((pixel_1 / max(e.axis_y.w, 1e-6)), 1.0)), 0.0, top); } vec4 decal_texel(uint layer, vec2 uv, float level, bool live) { vec4 _e11 = textureLod(_group_1_binding_3_fs, vec3(uv, int((layer - 1u))), (live ? 0.0 : level)); return _e11; } DecalSurface apply_decals(vec3 world_1, vec3 n_geo, DecalSurface surf) { DecalSurface out_s = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); uint k_3 = 0u; bool local = false; float fade = 0.0; out_s = surf; uint _e4 = decal_count(); bool loop_init = true; while(true) { if (!loop_init) { uint _e197 = k_3; k_3 = (_e197 + 1u); } loop_init = false; uint _e7 = k_3; if ((_e7 < _e4)) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11); DecalEntryU e_9 = _group_1_binding_2_fs.entries[min(_e12, 63u)]; vec3 uvw = (e_9.to_local * vec4(world_1, 1.0)).xyz; if (all(greaterThanEqual(uvw, vec3(0.0, -1.0, 0.0)))) { local = all(lessThanEqual(uvw, vec3(1.0))); } else { local = false; } bool _e35 = local; if (!(_e35)) { continue; } fade = pow((1.0 - abs(uvw.y)), ((uvw.y > 0.0) ? e_9.fades.x : e_9.fades.y)); if ((e_9.fades.z > 0.0)) { float _e55 = fade; fade = (_e55 * smoothstep(e_9.fades.z, 1.0, ((dot(n_geo, e_9.axis_y.xyz) * 0.5) + 0.5))); } vec2 uv_2 = uvw.xz; float _e69 = decal_level(e_9, world_1); uint live_1 = e_9.flags.x; if ((e_9.layers.x > 0u)) { vec4 _e82 = decal_texel(e_9.layers.x, uv_2, _e69, ((live_1 & DECAL_LIVE_ALBEDO) != 0u)); vec3 _e84 = srgb_to_linear(_e82.xyz); vec4 a_2 = (vec4(_e84, _e82.w) * e_9.modulate); float _e90 = fade; float alpha_1 = (a_2.w * _e90); vec3 _e94 = out_s.base; out_s.base = mix(_e94, a_2.xyz, (alpha_1 * e_9.fades.w)); if ((e_9.layers.y > 0u)) { vec4 _e110 = decal_texel(e_9.layers.y, uv_2, _e69, ((live_1 & DECAL_LIVE_NORMAL) != 0u)); float nx = ((_e110.x * 2.0) - 1.0); float ny = (1.0 - (_e110.y * 2.0)); float nz = sqrt(max(0.0, ((1.0 - (nx * nx)) - (ny * ny)))); vec3 dn = normalize((((e_9.axis_x.xyz * nx) + (e_9.axis_y.xyz * nz)) + (e_9.axis_z.xyz * ny))); vec3 _e143 = out_s.normal; out_s.normal = normalize(mix(_e143, dn, alpha_1)); } if ((e_9.layers.z > 0u)) { vec4 _e156 = decal_texel(e_9.layers.z, uv_2, _e69, ((live_1 & DECAL_LIVE_ORM) != 0u)); float _e159 = out_s.occlusion; out_s.occlusion = mix(_e159, _e156.x, alpha_1); float _e164 = out_s.roughness; out_s.roughness = mix(_e164, _e156.y, alpha_1); float _e169 = out_s.metallic; out_s.metallic = mix(_e169, _e156.z, alpha_1); } } if ((e_9.layers.w > 0u)) { vec4 _e182 = decal_texel(e_9.layers.w, uv_2, _e69, ((live_1 & DECAL_LIVE_EMISSION) != 0u)); vec3 _e184 = out_s.emission; vec3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = (_e184 + (((_e186 * e_9.modulate.xyz) * e_9.axis_x.w) * _e193)); } } } float _e201 = out_s.roughness; out_s.roughness = clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } bool mirrored(VsOut in_2) { uint _e4 = _group_1_binding_0_fs.extra.x; return (((_e4 & OBJ_MIRRORED) != 0u) != ((in_2.flags & F_INSTANCE_MIRRORED) != 0u)); } vec2 tex_uv(vec2 uv_1) { return vec2(uv_1.x, (1.0 - uv_1.y)); } vec4 decoded_base(vec4 t) { uint _e4 = _group_2_binding_0_fs.flags.w; if (((_e4 & MAT_SRGB_BASE) != 0u)) { vec3 _e10 = srgb_to_linear(t.xyz); return vec4(_e10, t.w); } return t; } float d_ggx(float nh, float a2_) { float d_9 = (((nh * nh) * (a2_ - 1.0)) + 1.0); return (a2_ / ((PI * d_9) * d_9)); } float v_smith(float nl, float nv, float a2_1) { float gv = (nl * sqrt((((nv * nv) * (1.0 - a2_1)) + a2_1))); float g_l = (nv * sqrt((((nl * nl) * (1.0 - a2_1)) + a2_1))); return (0.5 / max((gv + g_l), 0.0001)); } vec3 sky(vec3 dir) { vec4 _e4 = _group_0_binding_1_fs.up; float a_3 = acos(clamp(dot(normalize(dir), _e4.xyz), -1.0, 1.0)); if ((a_3 <= 1.5707964)) { float c_21 = (1.0 - (a_3 / 1.5707964)); float k_12 = clamp((1.0 - pow(max((1.0 - c_21), 1e-6), 6.6666665)), 0.0, 1.0); vec4 _e30 = _group_0_binding_1_fs.sky_horizon; vec4 _e34 = _group_0_binding_1_fs.sky_top; return mix(_e30.xyz, _e34.xyz, k_12); } float c_22 = ((a_3 - 1.5707964) / 1.5707964); float k_13 = clamp((1.0 - pow(max((1.0 - c_22), 1e-6), 50.0)), 0.0, 1.0); vec4 _e54 = _group_0_binding_1_fs.ground_horizon; vec4 _e58 = _group_0_binding_1_fs.ground_bottom; return mix(_e54.xyz, _e58.xyz, k_13); } vec3 filmic_curve(vec3 x) { return ((((x * ((0.88 * x) + vec3((0.1 * 0.6)))) + vec3((0.2 * 0.01))) / ((x * ((0.88 * x) + vec3(0.6))) + vec3((0.2 * 0.3)))) - vec3((0.01 / 0.3))); } vec3 aces_curve(vec3 c_4, float white) { vec3 x_3 = vec3((1.8 * dot(vec3(0.59719, 0.35458, 0.04823), c_4)), (1.8 * dot(vec3(0.076, 0.90834, 0.01566), c_4)), (1.8 * dot(vec3(0.0284, 0.13383, 0.83777), c_4))); vec3 t_2 = (((x_3 * (x_3 + vec3(0.0245786))) - vec3(9.0537e-5)) / ((x_3 * ((0.983729 * x_3) + vec3(0.432951))) + vec3(0.238081))); vec3 o_6 = vec3(dot(vec3(1.60475, -0.53108, -0.07367), t_2), dot(vec3(-0.10208, 1.10813, -0.00605), t_2), dot(vec3(-0.00327, -0.07276, 1.07602), t_2)); float w = (1.8 * white); float wt = (((w * (w + 0.0245786)) - 9.0537e-5) / ((w * ((0.983729 * w) + 0.432951)) + 0.238081)); return (o_6 / vec3(wt)); } vec3 agx_curve(vec3 c_5) { vec3 v = vec3(0.0); mat3x3 inset = mat3x3(vec3(0.54490817, 0.14044006, 0.08882741), vec3(0.37377945, 0.7541096, 0.17887713), vec3(0.08138498, 0.10543358, 0.73225)); mat3x3 outset = mat3x3(vec3(1.964551, -0.29932243, -0.16436833), vec3(-0.85585845, 1.3264511, -0.23822464), vec3(-0.10886711, -0.02708402, 1.4026654)); v = (inset * max(c_5, vec3(2e-10))); vec3 _e34 = v; v = ((clamp(log2(_e34), vec3(-12.473931), vec3(4.0260687)) - vec3(-12.473931)) / vec3((4.0260687 - -12.473931))); vec3 _e44 = v; vec3 _e45 = v; vec3 x2_ = (_e44 * _e45); vec3 x4_ = (x2_ * x2_); vec3 _e48 = v; vec3 _e56 = v; vec3 _e64 = v; vec3 p_6 = ((((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_)); return (outset * pow(max(p_6, vec3(1e-10)), vec3(2.4))); } vec3 tonemap(vec3 c_in) { float _e4 = _group_0_binding_1_fs.tone.x; vec3 c_23 = max((c_in * _e4), vec3(0.0)); float white_1 = _group_0_binding_1_fs.tone.y; uint mode = _group_0_binding_1_fs.counts.z; if ((mode == TONEMAP_REINHARD)) { return (((white_1 * c_23) + c_23) / ((c_23 * white_1) + vec3(white_1))); } if ((mode == TONEMAP_FILMIC)) { vec3 _e27 = filmic_curve(c_23); vec3 _e29 = filmic_curve(vec3(white_1)); return (_e27 / _e29); } if ((mode == TONEMAP_ACES)) { vec3 _e33 = aces_curve(c_23, white_1); return _e33; } if ((mode == TONEMAP_AGX)) { vec3 _e36 = agx_curve(c_23); return _e36; } return c_23; } float emerge_hash(vec3 p) { vec3 q = vec3(0.0); q = fract((p * 0.1031)); vec3 _e5 = q; vec3 _e6 = q; vec3 _e7 = q; q = (_e5 + vec3(dot(_e6, (_e7.zyx + vec3(31.32))))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return fract(((_e16 + _e18) * _e21)); } float emerge_noise(vec3 p_1) { vec3 i_9 = floor(p_1); vec3 f_1 = fract(p_1); vec3 u = ((f_1 * f_1) * (vec3(3.0) - (2.0 * f_1))); float _e10 = emerge_hash(i_9); float _e16 = emerge_hash((i_9 + vec3(1.0, 0.0, 0.0))); float _e24 = emerge_hash((i_9 + vec3(0.0, 1.0, 0.0))); float _e30 = emerge_hash((i_9 + vec3(1.0, 1.0, 0.0))); float a_4 = mix(mix(_e10, _e16, u.x), mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash((i_9 + vec3(0.0, 0.0, 1.0))); float _e46 = emerge_hash((i_9 + vec3(1.0, 0.0, 1.0))); float _e54 = emerge_hash((i_9 + vec3(0.0, 1.0, 1.0))); float _e60 = emerge_hash((i_9 + vec3(1.0, 1.0, 1.0))); float b_2 = mix(mix(_e40, _e46, u.x), mix(_e54, _e60, u.x), u.y); return mix(a_4, b_2, u.z); } float emerge_reveal(vec3 world_2, vec2 pixel) { float n = 0.0; uint _e6 = _group_1_binding_0_fs.extra.x; if ((SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true)) { return 1.0; } float e_10 = _group_1_binding_0_fs.normal[0][3]; vec3 w_1 = (world_2 * EMERGE_SCALE); float _e21 = emerge_noise(w_1); float _e29 = emerge_noise(((w_1 * 2.7) + vec3(17.1))); n = smoothstep(0.2, 0.8, ((_e21 * 0.65) + (_e29 * 0.35))); if ((pixel.x >= 0.0)) { float ign = fract((52.982918 * fract(dot(floor(pixel), vec2(0.06711056, 0.00583715))))); float _e49 = n; n = clamp((_e49 + ((ign - 0.5) * EMERGE_DITHER)), 0.0, 1.0); } float _e60 = n; return (((e_10 * 1.8) - _e60) / EMERGE_EDGE); } vec3 emerge_tint(vec3 c_6, float r) { bool local_1 = false; uint _e6 = _group_1_binding_0_fs.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_1 = (r >= 1.0); } else { local_1 = true; } bool _e17 = local_1; if ((SPEC_EMERGE ? _e17 : true)) { return c_6; } uint _e23 = _group_1_binding_0_fs.extra.w; vec3 _e26 = srgb_to_linear((vec4(_e23 & 0xFFu, _e23 >> 8 & 0xFFu, _e23 >> 16 & 0xFFu, _e23 >> 24) / 255.0).xyz); vec3 _e27 = tonemap(_e26); return mix(_e27, c_6, smoothstep(0.0, 1.0, r)); } vec3 item_fade(vec3 c_7) { uint _e5 = _group_1_binding_0_fs.extra.x; if ((SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true)) { return c_7; } vec4 f_2 = _group_1_binding_0_fs.normal[3]; vec3 _e17 = tonemap(f_2.xyz); return mix(c_7, _e17, f_2.w); } vec3 sky_dir(vec3 d) { mat4x4 _e3 = _group_0_binding_5_fs.to_sky; return normalize((_e3 * vec4(d, 0.0)).xyz); } vec3 sh_irradiance(vec3 n_1) { vec3 c_8 = vec3(0.0); vec4 _e4 = _group_0_binding_5_fs.sh[0]; c_8 = (_e4.xyz * 0.282095); vec3 _e9 = c_8; vec4 _e13 = _group_0_binding_5_fs.sh[1]; c_8 = (_e9 + (_e13.xyz * (0.488603 * n_1.y))); vec3 _e20 = c_8; vec4 _e24 = _group_0_binding_5_fs.sh[2]; c_8 = (_e20 + (_e24.xyz * (0.488603 * n_1.z))); vec3 _e31 = c_8; vec4 _e35 = _group_0_binding_5_fs.sh[3]; c_8 = (_e31 + (_e35.xyz * (0.488603 * n_1.x))); vec3 _e42 = c_8; vec4 _e46 = _group_0_binding_5_fs.sh[4]; c_8 = (_e42 + (_e46.xyz * ((1.092548 * n_1.x) * n_1.y))); vec3 _e55 = c_8; vec4 _e59 = _group_0_binding_5_fs.sh[5]; c_8 = (_e55 + (_e59.xyz * ((1.092548 * n_1.y) * n_1.z))); vec3 _e68 = c_8; vec4 _e72 = _group_0_binding_5_fs.sh[6]; c_8 = (_e68 + (_e72.xyz * (0.315392 * (((3.0 * n_1.z) * n_1.z) - 1.0)))); vec3 _e85 = c_8; vec4 _e89 = _group_0_binding_5_fs.sh[7]; c_8 = (_e85 + (_e89.xyz * ((1.092548 * n_1.x) * n_1.z))); vec3 _e98 = c_8; vec4 _e102 = _group_0_binding_5_fs.sh[8]; c_8 = (_e98 + (_e102.xyz * (0.546274 * ((n_1.x * n_1.x) - (n_1.y * n_1.y))))); vec3 _e115 = c_8; return max(_e115, vec3(0.0)); } vec3 radiance(vec3 d_1, float roughness) { uint _e5 = _group_0_binding_5_fs.flags.y; float top_1 = float((max(_e5, 1u) - 1u)); vec4 _e14 = textureLod(_group_3_binding_0_fs, vec3(d_1), (roughness * top_1)); return _e14.xyz; } vec2 env_brdf_approx(float roughness_1, float nv_1) { vec4 r_4 = ((roughness_1 * vec4(-1.0, -0.0275, -0.572, 0.022)) + vec4(1.0, 0.0425, 1.04, -0.04)); float a004_ = ((min((r_4.x * r_4.x), exp2((-9.28 * nv_1))) * r_4.x) + r_4.y); return ((vec2(-1.04, 1.04) * a004_) + r_4.zw); } float pow8_(float x_1) { float x2_1 = (max(x_1, 0.0) * max(x_1, 0.0)); float x4_1 = (x2_1 * x2_1); return (x4_1 * x4_1); } vec3 fog_sun_scatter(vec3 fc, vec3 dir_1) { vec3 c_9 = vec3(0.0); uint k_4 = 0u; c_9 = fc; float _e6 = _group_0_binding_5_fs.fog_color.w; if ((_e6 > 0.001)) { uint _e9 = pool_sun_count(); bool loop_init_1 = true; while(true) { if (!loop_init_1) { uint _e51 = k_4; k_4 = (_e51 + 1u); } loop_init_1 = false; uint _e12 = k_4; if ((_e12 < _e9)) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14); uint _e21 = _group_0_binding_1_fs.lights[_e15].info.x; if ((_e21 == LIGHT_DIRECTIONAL)) { vec3 _e24 = c_9; vec4 _e29 = _group_0_binding_1_fs.lights[_e15].color; vec4 _e38 = _group_0_binding_1_fs.lights[_e15].direction; float _e42 = pow8_(dot(dir_1, -(_e38.xyz))); float _e47 = _group_0_binding_5_fs.fog_color.w; c_9 = (_e24 + (((_e29.xyz / vec3(3.1415927)) * _e42) * _e47)); } } } } vec3 _e53 = c_9; return _e53; } vec3 surface_fog(vec3 c_10, vec3 world_3, vec3 dir_2) { float dist = 0.0; float amount = 0.0; vec3 fc_1 = vec3(0.0); bool local_2 = false; mat4x4 _e5 = _group_0_binding_0_fs.view; float depth = -((_e5 * vec4(world_3, 1.0)).z); vec4 _e13 = _group_0_binding_0_fs.camera_pos; dist = distance(world_3, _e13.xyz); float _e20 = _group_0_binding_5_fs.fog_origin.w; if ((_e20 > 0.5)) { float _e26 = _group_0_binding_5_fs.fog_origin.x; dist = max((depth - _e26), 0.0); } uint _e34 = _group_0_binding_5_fs.flags.x; if (((_e34 & SKY_FOG_DEPTH) != 0u)) { float _e42 = _group_0_binding_5_fs.fog_depth.x; float _e46 = _group_0_binding_5_fs.fog_depth.y; float _e47 = dist; float z = smoothstep(_e42, _e46, _e47); float _e54 = _group_0_binding_5_fs.fog_depth.z; float _e63 = _group_0_binding_5_fs.fog.x; amount = (((z > 0.0) ? pow(max(z, 1e-6), _e54) : 0.0) * _e63); } else { float _e65 = dist; float _e70 = _group_0_binding_5_fs.fog.x; amount = (1.0 - exp(min(0.0, (-(_e65) * _e70)))); } float _e80 = _group_0_binding_5_fs.fog.w; if ((abs(_e80) >= 0.0001)) { vec4 _e86 = _group_0_binding_1_fs.up; float y = dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = _group_0_binding_5_fs.fog.z; float _e98 = _group_0_binding_5_fs.fog.w; amount = max(_e89, (1.0 - exp(min(0.0, ((y - _e93) * _e98))))); } float _e106 = amount; amount = clamp(_e106, 0.0, 1.0); vec4 _e112 = _group_0_binding_5_fs.fog_color; fc_1 = _e112.xyz; uint _e119 = _group_0_binding_5_fs.flags.x; if (((_e119 & SKY_IBL) != 0u)) { float _e129 = _group_0_binding_5_fs.fog_depth.w; local_2 = (_e129 > 0.0); } else { local_2 = false; } bool _e133 = local_2; if ((SPEC_AMBIENT_SKY ? _e133 : false)) { float _e139 = _group_0_binding_5_fs.fog_origin.y; float _e144 = _group_0_binding_5_fs.fog_origin.z; float _e148 = _group_0_binding_5_fs.fog_origin.y; float t_3 = clamp(((depth - _e139) / max((_e144 - _e148), 1e-6)), 0.0, 1.0); uint _e159 = _group_0_binding_5_fs.flags.y; float top_2 = float((max(_e159, 2u) - 1u)); float rough = mix((1.0 / top_2), 1.0, (1.0 - t_3)); vec3 _e171 = fc_1; vec3 _e172 = sky_dir(dir_2); vec3 _e173 = radiance(_e172, rough); float _e177 = _group_0_binding_5_fs.sun.w; float _e182 = _group_0_binding_5_fs.fog_depth.w; fc_1 = mix(_e171, (_e173 * _e177), _e182); } vec3 _e184 = fc_1; vec3 _e185 = fog_sun_scatter(_e184, dir_2); fc_1 = _e185; vec3 _e186 = fc_1; float _e187 = amount; return mix(c_10, _e186, _e187); } vec2 fog_chord(uint k_5, vec3 o, vec3 d_2, float t_end_ray) { vec2 r_1 = vec2(0.0); float a = 0.0; float b = 0.0; float c_11 = -1.0; float _e9 = _group_1_binding_5_fs.entries[k_5].albedo.w; uint shape = uint(_e9); float _e16 = _group_1_binding_5_fs.entries[k_5].emission.w; float t_end_1 = min(_e16, t_end_ray); if ((shape == FOG_SHAPE_WORLD)) { return vec2(0.0, t_end_1); } vec4 _e26 = _group_1_binding_5_fs.entries[k_5].size; vec3 h = (_e26.xyz * 0.5); vec3 dd = mix(d_2, vec3(1e-12), lessThan(abs(d_2), vec3(1e-12))); vec3 sa = ((-(h) - o) / dd); vec3 sb = ((h - o) / dd); vec3 s_in = min(sa, sb); vec3 s_out = max(sa, sb); r_1 = vec2(max(0.0, s_in.y), min(t_end_1, s_out.y)); if ((shape == FOG_SHAPE_BOX)) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = vec2(max(max(_e60, s_in.x), s_in.z), min(min(_e66, s_out.x), s_out.z)); } else { if ((shape == FOG_SHAPE_ELLIPSOID)) { a = dot((d_2 / h), (d_2 / h)); b = dot((o / h), (d_2 / h)); c_11 = (dot((o / h), (o / h)) - 1.0); } else { float rad_1 = min(h.x, h.z); float k_14 = ((shape == FOG_SHAPE_CONE) ? (rad_1 / (2.0 * h.y)) : 0.0); float w_2 = (h.y - o.y); a = (((d_2.x * d_2.x) + (d_2.z * d_2.z)) - (((k_14 * k_14) * d_2.y) * d_2.y)); b = (((o.x * d_2.x) + (o.z * d_2.z)) + (((k_14 * k_14) * w_2) * d_2.y)); c_11 = (((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_14 * k_14) * w_2) * w_2) : (rad_1 * rad_1))); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_11; float disc = ((_e139 * _e140) - (_e142 * _e143)); float _e146 = a; if ((abs(_e146) < 1e-12)) { float _e150 = b; if ((abs(_e150) < 1e-12)) { float _e156 = r_1.y; float _e157 = c_11; r_1.y = ((_e157 > 0.0) ? -1.0 : _e156); } else { float _e162 = b; if ((_e162 > 0.0)) { float _e167 = r_1.y; float _e168 = c_11; float _e170 = b; r_1.y = min(_e167, (-(_e168) / (2.0 * _e170))); } else { float _e177 = r_1.x; float _e178 = c_11; float _e180 = b; r_1.x = max(_e177, (-(_e178) / (2.0 * _e180))); } } } else { if ((disc < 0.0)) { float _e189 = r_1.y; float _e190 = a; r_1.y = ((_e190 > 0.0) ? -1.0 : _e189); } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = min(((-(_e195) - sqrt(disc)) / _e199), ((-(_e201) + sqrt(disc)) / _e205)); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = max(((-(_e208) - sqrt(disc)) / _e212), ((-(_e214) + sqrt(disc)) / _e218)); float _e221 = a; if ((_e221 > 0.0)) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = vec2(max(_e225, lo_2), min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if ((_e232 < min(_e234, lo_2))) { float _e239 = r_1.y; r_1.y = min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = max(_e243, hi_2); } } } } vec2 _e245 = r_1; return _e245; } float fog_density(uint k_6, vec3 p_2, vec3 lp) { float rho = 0.0; float sdf = 0.0; FogEntryU e_11 = _group_1_binding_5_fs.entries[k_6]; vec4 _e14 = _group_1_binding_5_fs.up; rho = (e_11.material.x * min(exp2((-(e_11.material.y) * (dot(p_2, _e14.xyz) - e_11.material.w))), 1.0)); if ((e_11.material.z > 0.0)) { uint shape_1 = uint(e_11.albedo.w); vec3 h_1 = (e_11.size.xyz * 0.5); float rad_2 = min(h_1.x, h_1.z); if ((shape_1 == FOG_SHAPE_ELLIPSOID)) { float k0_ = length((lp / h_1)); sdf = ((k0_ * (k0_ - 1.0)) / max(length((lp / (h_1 * h_1))), 1e-12)); } else { if ((shape_1 == FOG_SHAPE_BOX)) { vec3 q_3 = (abs(lp) - h_1); sdf = (length(max(q_3, vec3(0.0))) + min(max(q_3.x, max(q_3.y, q_3.z)), 0.0)); } else { if ((shape_1 == FOG_SHAPE_CYLINDER)) { vec2 q_4 = vec2((length(lp.xz) - rad_2), (abs(lp.y) - h_1.y)); sdf = (min(max(q_4.x, q_4.y), 0.0) + length(max(q_4, vec2(0.0)))); } else { vec2 n_7 = normalize(vec2((1.0 / max(0.001, (rad_2 * 0.5))), (1.0 / max(0.001, h_1.y)))); sdf = max(dot(n_7, vec2(length(lp.xz), (lp.y - h_1.y))), (-(h_1.y) - lp.y)); } } } float _e116 = rho; float _e117 = sdf; rho = (_e116 * pow(clamp(((-2.0 * _e117) / e_11.size.w), 0.0, 1.0), e_11.material.z)); } float _e130 = rho; return _e130; } float fog_falloff_depth(uint k_7, float a_1, float b_1, float t0_, float t1_) { vec4 m_1 = _group_1_binding_5_fs.entries[k_7].material; float hf = m_1.y; if (((hf * b_1) == 0.0)) { return ((m_1.x * (t1_ - t0_)) * min(exp2((-(hf) * a_1)), 1.0)); } float s_6 = clamp((-(a_1) / b_1), t0_, t1_); float lo_3 = ((b_1 > 0.0) ? s_6 : t0_); float hi_3 = ((b_1 > 0.0) ? t1_ : s_6); float x_4 = (((hf * abs(b_1)) * (hi_3 - lo_3)) * 0.6931472); float g = ((x_4 < 0.01) ? (1.0 - (x_4 * (0.5 - (x_4 * (0.16666667 - (x_4 / 24.0)))))) : ((1.0 - exp(-(x_4))) / x_4)); float top_3 = min(exp2((-(hf) * max((a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3))), 0.0))), 1.0); return (m_1.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g))); } float omni_attenuation(float d_3, float inv_range, float decay) { float nd = 0.0; nd = (d_3 * inv_range); float _e5 = nd; float _e6 = nd; nd = (_e5 * _e6); float _e8 = nd; float _e9 = nd; nd = (_e8 * _e9); float _e11 = nd; nd = max((1.0 - _e11), 0.0); float _e16 = nd; float _e17 = nd; nd = (_e16 * _e17); float _e19 = nd; return (_e19 * pow(max(d_3, 0.0001), -(decay))); } vec3 fog_light(uint n_2, vec3 p_3, vec3 dir_3) { vec3 sum = vec3(0.0); uint k_8 = 0u; vec3 l = vec3(0.0); float atten = 0.0; vec4 _e5 = _group_1_binding_5_fs.ambient; float _e10 = _group_1_binding_5_fs.params.y; sum = (_e5.xyz * _e10); float g_1 = _group_1_binding_5_fs.params.x; uvec4 lights = _group_1_binding_5_fs.entries[n_2].lights; bool loop_init_2 = true; while(true) { if (!loop_init_2) { uint _e138 = k_8; k_8 = (_e138 + 1u); } loop_init_2 = false; uint _e24 = k_8; if ((_e24 < min(lights.z, MAX_OBJECT_LIGHTS))) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_10 = min(((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u), 63u); LightU li = _group_0_binding_1_fs.lights[i_10]; l = -(li.direction.xyz); atten = 1.0; if ((li.info.x != LIGHT_DIRECTIONAL)) { vec3 rel = (li.position.xyz - p_3); l = (rel / vec3(max(length(rel), 1e-6))); float _e72 = omni_attenuation(length(rel), li.position.w, li.direction.w); atten = _e72; if ((li.info.x == LIGHT_SPOT)) { vec3 _e77 = l; float rim = max(0.0001, ((1.0 - max(dot(-(_e77), li.direction.xyz), li.spot.x)) / max((1.0 - li.spot.x), 1e-6))); float _e96 = atten; atten = (_e96 * (1.0 - pow(rim, li.spot.y))); } } vec3 _e108 = l; float q_5 = ((1.0 + (g_1 * g_1)) - ((2.0 * g_1) * dot(dir_3, _e108))); vec3 _e112 = sum; float _e115 = atten; float _e133 = _group_1_binding_5_fs.light_fog[(i_10 >> 2u)][(i_10 & 3u)]; sum = (_e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * sqrt(q_5))) * _e133))); } } vec3 _e140 = sum; return _e140; } vec4 fog_entry(uint k_9, vec3 o_1, vec3 d_4, vec2 ch) { float split = 0.0; bool local_3 = false; bool local_4 = false; vec3 q_1 = vec3(0.0); float tau = 0.0; uint i = 0u; bool local_5 = false; bool local_6 = false; FogEntryU e_12 = _group_1_binding_5_fs.entries[k_9]; vec3 lo_4 = (e_12.to_local * vec4(o_1, 1.0)).xyz; vec3 ld = (e_12.to_local * vec4(d_4, 0.0)).xyz; vec4 _e20 = _group_1_binding_5_fs.up; float a_5 = (dot(o_1, _e20.xyz) - e_12.material.w); vec4 _e28 = _group_1_binding_5_fs.up; float b_3 = dot(d_4, _e28.xyz); bool edge = (e_12.material.z > 0.0); split = ((ch.x + ch.y) * 0.5); if ((e_12.material.y > 0.0)) { local_3 = ((-(a_5) / b_3) > ch.x); } else { local_3 = false; } bool _e52 = local_3; if (_e52) { local_4 = ((-(a_5) / b_3) < ch.y); } else { local_4 = false; } bool _e60 = local_4; if (_e60) { split = (-(a_5) / b_3); } bool loop_init_3 = true; while(true) { if (!loop_init_3) { uint _e160 = i; i = (_e160 + 1u); } loop_init_3 = false; uint _e70 = i; if ((_e70 < (edge ? 12u : 4u))) { } else { break; } { uint _e75 = i; uint j = (_e75 & 3u); if (!((j == 0u))) { local_5 = (j == 3u); } else { local_5 = true; } bool _e88 = local_5; float x_5 = (_e88 ? FOG_GL_X0_ : FOG_GL_X1_); if (!((j == 0u))) { local_6 = (j == 3u); } else { local_6 = true; } bool _e100 = local_6; float w_3 = (_e100 ? FOG_GL_W0_ : FOG_GL_W1_); float _e102 = split; float _e106 = split; uint _e108 = i; uint _e112 = i; vec2 seg = ((_e112 < 4u) ? ch : ((_e108 < 8u) ? vec2(ch.x, _e106) : vec2(_e102, ch.y))); float half_len = ((seg.y - seg.x) * 0.5); float t_4 = (((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_5) : x_5))); vec3 p_7 = (o_1 + (d_4 * t_4)); float _e136 = fog_density(k_9, p_7, (lo_4 + (ld * t_4))); uint _e137 = i; if ((_e137 < 4u)) { vec3 _e140 = q_1; vec3 _e143 = fog_light(k_9, p_7, d_4); q_1 = (_e140 + (((e_12.albedo.xyz * _e143) + e_12.emission.xyz) * ((w_3 * half_len) * clamp(_e136, 0.0, 1.0)))); } else { float _e155 = tau; tau = (_e155 + ((w_3 * half_len) * _e136)); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_5, b_3, ch.x, ch.y); tau = _e165; } vec3 _e166 = q_1; float _e167 = tau; return vec4(_e166, _e167); } vec3 fog_integrate(vec3 c_12, vec3 o_2, vec3 d_5, float t_end, uint list) { uint at[4] = uint[4](0u, 0u, 0u, 0u); vec2 chords[4] = vec2[4](vec2(0.0), vec2(0.0), vec2(0.0), vec2(0.0)); uint m = 0u; uint i_1 = 0u; bool local_7 = false; vec4 parts[4] = vec4[4](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); uint i_2 = 0u; uint n_3 = 0u; float avail = 0.0; uint i_3 = 0u; uint i_4 = 0u; vec3 q_2 = vec3(0.0); float tau_1 = 0.0; uint i_5 = 0u; bool all_ = (list >= FOG_LIST_ALL); bool loop_init_4 = true; while(true) { if (!loop_init_4) { uint _e72 = i_1; i_1 = (_e72 + 1u); } loop_init_4 = false; uint _e13 = i_1; uint _e18 = _group_1_binding_5_fs.counts.x; if ((_e13 < (all_ ? min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u))) { } else { break; } { uint _e23 = i_1; uint byte = ((list >> ((_e23 & 3u) * 8u)) & 127u); if (!(all_)) { local_7 = (byte == 0u); } else { local_7 = false; } bool _e37 = local_7; if (_e37) { break; } uint _e42 = i_1; uint k_15 = (all_ ? _e42 : (min(byte, MAX_FRAME_FOG_VOLUMES) - 1u)); mat4x4 to_local = _group_1_binding_5_fs.entries[k_15].to_local; vec2 _e57 = fog_chord(k_15, (to_local * vec4(o_2, 1.0)).xyz, (to_local * vec4(d_5, 0.0)).xyz, t_end); if ((_e57.y > _e57.x)) { uint _e61 = m; at[_e61] = k_15; uint _e63 = m; chords[_e63] = _e57; uint _e66 = m; m = (_e66 + 1u); uint _e68 = m; if ((_e68 == MAX_OBJECT_FOG_VOLUMES)) { break; } } } } bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e90 = i_2; i_2 = (_e90 + 1u); } loop_init_5 = false; uint _e77 = i_2; uint _e78 = m; if ((_e77 < _e78)) { } else { break; } { uint _e80 = i_2; uint _e82 = i_2; uint _e84 = at[_e82]; uint _e85 = i_2; vec2 _e87 = chords[_e85]; vec4 _e88 = fog_entry(_e84, o_2, d_5, _e87); parts[_e80] = _e88; } } bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e221 = n_3; n_3 = (_e221 + 1u); } loop_init_6 = false; uint _e94 = n_3; uint _e95 = m; if ((_e94 < _e95)) { } else { break; } { uint _e97 = n_3; float _e100 = parts[_e97].w; if ((_e100 < 0.0)) { avail = 0.0; i_3 = 0u; bool loop_init_7 = true; while(true) { if (!loop_init_7) { uint _e153 = i_3; i_3 = (_e153 + 1u); } loop_init_7 = false; uint _e107 = i_3; uint _e108 = m; if ((_e107 < _e108)) { } else { break; } { uint _e110 = i_3; float _e113 = chords[_e110].y; uint _e114 = n_3; float _e117 = chords[_e114].y; uint _e119 = i_3; float _e122 = chords[_e119].x; uint _e123 = n_3; float _e126 = chords[_e123].x; uint _e131 = i_3; float _e134 = chords[_e131].y; uint _e135 = i_3; float _e138 = chords[_e135].x; float share = (max((min(_e113, _e117) - max(_e122, _e126)), 0.0) / max((_e134 - _e138), 1e-6)); float _e143 = avail; uint _e144 = i_3; float _e147 = parts[_e144].w; avail = (_e143 + (max(_e147, 0.0) * share)); } } uint _e155 = n_3; float _e158 = parts[_e155].w; float _e160 = avail; float f_3 = min((-(_e158) / max(_e160, 1e-12)), 1.0); i_4 = 0u; bool loop_init_8 = true; while(true) { if (!loop_init_8) { uint _e218 = i_4; i_4 = (_e218 + 1u); } loop_init_8 = false; uint _e168 = i_4; uint _e169 = m; if ((_e168 < _e169)) { } else { break; } { uint _e171 = i_4; float _e174 = parts[_e171].w; if ((_e174 > 0.0)) { uint _e177 = i_4; float _e180 = chords[_e177].y; uint _e181 = n_3; float _e184 = chords[_e181].y; uint _e186 = i_4; float _e189 = chords[_e186].x; uint _e190 = n_3; float _e193 = chords[_e190].x; uint _e198 = i_4; float _e201 = chords[_e198].y; uint _e202 = i_4; float _e205 = chords[_e202].x; float share_1 = (max((min(_e180, _e184) - max(_e189, _e193)), 0.0) / max((_e201 - _e205), 1e-6)); uint _e210 = i_4; vec4 _e212 = parts[_e210]; parts[_e210] = (_e212 * (1.0 - (share_1 * f_3))); } } } } } } bool loop_init_9 = true; while(true) { if (!loop_init_9) { uint _e252 = i_5; i_5 = (_e252 + 1u); } loop_init_9 = false; uint _e230 = i_5; uint _e231 = m; if ((_e230 < _e231)) { } else { break; } { uint _e233 = i_5; float _e236 = parts[_e233].w; if ((_e236 > 0.0)) { vec3 _e239 = q_2; uint _e240 = i_5; vec4 _e242 = parts[_e240]; q_2 = (_e239 + _e242.xyz); float _e245 = tau_1; uint _e246 = i_5; float _e249 = parts[_e246].w; tau_1 = (_e245 + _e249); } } } float _e254 = tau_1; float t_5 = exp(-(_e254)); vec3 _e258 = q_2; float _e261 = tau_1; return ((c_12 * t_5) + (_e258 * ((1.0 - t_5) / max(_e261, 1e-5)))); } vec3 fog_volumes(vec3 c_13, vec3 world_4, uint list_1) { float _e7 = _group_0_binding_0_fs.view[0][2]; float _e12 = _group_0_binding_0_fs.view[1][2]; float _e17 = _group_0_binding_0_fs.view[2][2]; vec3 back = normalize(vec3(_e7, _e12, _e17)); vec4 _e22 = _group_0_binding_0_fs.camera_pos; mat4x4 _e26 = _group_0_binding_0_fs.view; float _e36 = _group_0_binding_0_fs.camera_pos.w; vec3 o_7 = ((_e36 > 0.5) ? (world_4 - (back * (_e26 * vec4(world_4, 1.0)).z)) : _e22.xyz); float len = length((world_4 - o_7)); vec3 _e47 = fog_integrate(c_13, o_7, ((world_4 - o_7) / vec3(max(len, 1e-6))), len, list_1); return ((len > 0.0) ? _e47 : c_13); } float shadow_factor(uint i_6, vec3 world_5, vec3 n_geo_1, vec3 l_1) { uint part = 0u; uint c_14 = 0u; bool local_8 = false; bool local_9 = false; bool local_10 = false; float vis = 0.0; int dy = -1; int dx = 0; uint kind = _group_0_binding_1_fs.lights[i_6].info.x; vec4 _e14 = _group_0_binding_1_fs.lights[i_6].position; vec3 light_pos = _e14.xyz; uint _e21 = _group_0_binding_1_fs.lights[i_6].info.w; uint slot = min(_e21, 15u); vec4 params = _group_0_binding_2_fs.lights[slot].params; uint first = _group_0_binding_2_fs.lights[slot].info.x; uint _e40 = _group_0_binding_2_fs.lights[slot].info.y; uint count = max(_e40, 1u); mat4x4 _e45 = _group_0_binding_0_fs.view; float view_depth = -((_e45 * vec4(world_5, 1.0)).z); if ((kind == LIGHT_DIRECTIONAL)) { float _e60 = _group_0_binding_2_fs.lights[slot].fade.y; if ((view_depth > _e60)) { return 1.0; } part = (count - 1u); bool loop_init_10 = true; while(true) { if (!loop_init_10) { uint _e79 = c_14; c_14 = (_e79 + 1u); } loop_init_10 = false; uint _e67 = c_14; if ((_e67 < count)) { } else { break; } { uint _e73 = c_14; float _e75 = _group_0_binding_2_fs.lights[slot].splits[_e73]; if ((view_depth <= _e75)) { uint _e77 = c_14; part = _e77; break; } } } } uint _e83 = part; vec4 texel = _group_0_binding_2_fs.tiles[min((first + min(_e83, (count - 1u))), 15u)].texel; float t_6 = (texel.x + (texel.y * distance(world_5, light_pos))); vec3 p_8 = ((world_5 + (n_geo_1 * ((params.y * max(params.z, 1.0)) * t_6))) + (l_1 * (params.x * t_6))); if ((kind == LIGHT_OMNI)) { vec3 d_10 = (p_8 - light_pos); vec3 a_6 = abs(d_10); if ((a_6.x >= a_6.y)) { local_8 = (a_6.x >= a_6.z); } else { local_8 = false; } bool _e123 = local_8; if (_e123) { part = ((d_10.x >= 0.0) ? 0u : 1u); } else { if ((a_6.y >= a_6.z)) { part = ((d_10.y >= 0.0) ? 2u : 3u); } else { part = ((d_10.z >= 0.0) ? 4u : 5u); } } } uint _e145 = part; uint tile = min((first + min(_e145, (count - 1u))), 15u); mat4x4 _e156 = _group_0_binding_2_fs.tiles[tile].view_proj; vec4 clip = (_e156 * vec4(p_8, 1.0)); if ((clip.w <= 0.0)) { return 1.0; } vec3 ndc = (clip.xyz / vec3(clip.w)); if (!((abs(ndc.x) > 1.0))) { local_9 = (abs(ndc.y) > 1.0); } else { local_9 = true; } bool _e180 = local_9; if (!(_e180)) { local_10 = (ndc.z > 1.0); } else { local_10 = true; } bool _e188 = local_10; if (_e188) { return 1.0; } vec4 rect = _group_0_binding_2_fs.tiles[tile].rect; vec2 uv_3 = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); vec2 auv = (rect.xy + (uv_3 * rect.zw)); float texel_uv = _group_0_binding_2_fs.atlas.x; vec2 lo_5 = (rect.xy + vec2((0.5 * texel_uv))); vec2 hi_4 = ((rect.xy + rect.zw) - vec2((0.5 * texel_uv))); float r_5 = params.z; if ((r_5 <= 0.0)) { float _e235 = textureLod(_group_0_binding_3_fs, vec3(clamp(auv, lo_5, hi_4), ndc.z), 0.0); vis = _e235; } else { float spread = (r_5 * texel_uv); bool loop_init_11 = true; while(true) { if (!loop_init_11) { int _e265 = dy; dy = (_e265 + 1); } loop_init_11 = false; int _e239 = dy; if ((_e239 <= 1)) { } else { break; } { dx = -1; bool loop_init_12 = true; while(true) { if (!loop_init_12) { int _e262 = dx; dx = (_e262 + 1); } loop_init_12 = false; int _e244 = dx; if ((_e244 <= 1)) { } else { break; } { int _e247 = dx; int _e249 = dy; vec2 tap = clamp((auv + (vec2(float(_e247), float(_e249)) * spread)), lo_5, hi_4); float _e255 = vis; float _e259 = textureLod(_group_0_binding_3_fs, vec3(tap, ndc.z), 0.0); vis = (_e255 + _e259); } } } } float _e267 = vis; vis = (_e267 / 9.0); } if ((kind == LIGHT_DIRECTIONAL)) { vec4 fade_1 = _group_0_binding_2_fs.lights[slot].fade; float _e277 = vis; vis = mix(_e277, 1.0, smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return mix(1.0, _e283, params.w); } vec4 gi_diffuse(vec3 n_4, bool baked, vec3 baked_light) { if (baked) { return vec4(baked_light, 1.0); } return vec4(0.0); } vec3 probe_face_uv(vec3 d_6) { float face = 0.0; float ma = 0.0; float sc = 0.0; float tc = 0.0; bool local_11 = false; vec3 a_7 = abs(d_6); if ((a_7.x >= a_7.y)) { local_11 = (a_7.x >= a_7.z); } else { local_11 = false; } bool _e15 = local_11; if (_e15) { ma = a_7.x; if ((d_6.x >= 0.0)) { face = 0.0; sc = -(d_6.z); tc = -(d_6.y); } else { face = 1.0; sc = d_6.z; tc = -(d_6.y); } } else { if ((a_7.y >= a_7.z)) { ma = a_7.y; if ((d_6.y >= 0.0)) { face = 2.0; sc = d_6.x; tc = d_6.z; } else { face = 3.0; sc = d_6.x; tc = -(d_6.z); } } else { ma = a_7.z; if ((d_6.z >= 0.0)) { face = 4.0; sc = d_6.x; tc = -(d_6.y); } else { face = 5.0; sc = -(d_6.x); tc = -(d_6.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return vec3(_e56, (((_e57 / _e58) + 1.0) * 0.5), (((_e64 / _e65) + 1.0) * 0.5)); } vec3 probe_texel(uint row, vec3 fuv, uint level_1) { uint _e6 = _group_0_binding_7_fs.counts.z; float n_8 = float(max((_e6 >> level_1), 1u)); float lo_6 = (0.5 / n_8); float u_1 = clamp(fuv.y, lo_6, (1.0 - lo_6)); float v_1 = clamp(fuv.z, lo_6, (1.0 - lo_6)); vec2 uv_4 = vec2(((fuv.x + u_1) / 6.0), ((float(row) + v_1) / 8.0)); vec4 _e33 = textureLod(_group_3_binding_6_fs, vec2(uv_4), float(level_1)); return _e33.xyz; } vec3 probe_sample(uint row_1, vec3 d_7, float lod) { bool local_12 = false; uint _e6 = _group_0_binding_7_fs.counts.y; uint levels = max(_e6, 1u); float l_4 = clamp(lod, 0.0, float((levels - 1u))); uint m0_ = uint(l_4); float t_7 = (l_4 - float(m0_)); vec3 _e17 = probe_face_uv(d_7); vec3 _e18 = probe_texel(row_1, _e17, m0_); if (!((t_7 <= 0.0))) { local_12 = ((m0_ + 1u) >= levels); } else { local_12 = true; } bool _e28 = local_12; if (_e28) { return _e18; } vec3 _e34 = probe_texel(row_1, _e17, (m0_ + 1u)); return ((_e18 * (1.0 - t_7)) + (_e34 * t_7)); } float probe_weight(ProbeEntryU p_4, vec3 world_6) { vec3 l_5 = (p_4.to_local * vec4(world_6, 1.0)).xyz; vec3 e_13 = p_4.extents.xyz; float d_11 = min((e_13.x - abs(l_5.x)), min((e_13.y - abs(l_5.y)), (e_13.z - abs(l_5.z)))); if ((d_11 < 0.0)) { return 0.0; } if (!((p_4.extents.w > 0.0))) { return 1.0; } return min((d_11 / p_4.extents.w), 1.0); } float probe_exit(float o_3, float d_8, float e_1) { if ((d_8 > 0.0)) { return ((e_1 - o_3) / d_8); } if ((d_8 < 0.0)) { return ((-(e_1) - o_3) / d_8); } return 3e38; } vec3 probe_lookup(ProbeEntryU p_5, vec3 world_7, vec3 dir_4) { vec3 d_12 = (p_5.to_local * vec4(dir_4, 0.0)).xyz; if (((p_5.info.x & PROBE_BOX) == 0u)) { return d_12; } vec3 o_8 = (p_5.to_local * vec4(world_7, 1.0)).xyz; vec3 e_14 = p_5.extents.xyz; float _e24 = probe_exit(o_8.x, d_12.x, e_14.x); float _e28 = probe_exit(o_8.y, d_12.y, e_14.y); float _e32 = probe_exit(o_8.z, d_12.z, e_14.z); float t_8 = max(min(_e24, min(_e28, _e32)), 0.0); return ((o_8 + (d_12 * t_8)) - p_5.offset.xyz); } vec4 probe_reflection(vec3 world_8, vec3 r_2, float roughness_2, uint probes) { vec3 acc = vec3(0.0); float w_sum = 0.0; uint i_7 = 0u; uint _e12 = _group_0_binding_7_fs.counts.x; uint count_1 = min(_e12, MAX_PROBES); uint _e18 = _group_0_binding_7_fs.counts.y; float lod_1 = (roughness_2 * float((max(_e18, 1u) - 1u))); bool loop_init_13 = true; while(true) { if (!loop_init_13) { uint _e57 = i_7; i_7 = (_e57 + 1u); } loop_init_13 = false; uint _e27 = i_7; if ((_e27 < count_1)) { } else { break; } { uint _e31 = i_7; ProbeEntryU p_9 = _group_0_binding_7_fs.probes[_e31]; if ((((probes >> p_9.info.w) & 1u) == 0u)) { continue; } float _e41 = probe_weight(p_9, world_8); if ((_e41 <= 0.0)) { continue; } vec3 _e44 = acc; vec3 _e47 = probe_lookup(p_9, world_8, r_2); vec3 _e48 = probe_sample(p_9.info.w, _e47, lod_1); acc = (_e44 + ((_e48 * p_9.offset.w) * _e41)); float _e54 = w_sum; w_sum = (_e54 + _e41); } } float _e59 = w_sum; if ((_e59 > 1.0)) { vec3 _e62 = acc; float _e63 = w_sum; acc = (_e62 / vec3(_e63)); w_sum = 1.0; } vec3 _e67 = acc; float _e68 = w_sum; return vec4(_e67, _e68); } vec4 probe_ambient(vec3 world_9, vec3 n_5, uint probes_1) { vec3 acc_1 = vec3(0.0); float w_sum_1 = 0.0; uint i_8 = 0u; bool local_13 = false; vec3 c_15 = vec3(0.0); uint _e11 = _group_0_binding_7_fs.counts.x; uint count_2 = min(_e11, MAX_PROBES); uint _e17 = _group_0_binding_7_fs.counts.y; uint last = (max(_e17, 1u) - 1u); bool loop_init_14 = true; while(true) { if (!loop_init_14) { uint _e73 = i_8; i_8 = (_e73 + 1u); } loop_init_14 = false; uint _e24 = i_8; if ((_e24 < count_2)) { } else { break; } { uint _e28 = i_8; ProbeEntryU p_10 = _group_0_binding_7_fs.probes[_e28]; if (!((((probes_1 >> p_10.info.w) & 1u) == 0u))) { local_13 = (p_10.info.y == PROBE_AMBIENT_DISABLED); } else { local_13 = true; } bool _e46 = local_13; if (_e46) { continue; } float _e47 = probe_weight(p_10, world_9); if ((_e47 <= 0.0)) { continue; } c_15 = p_10.ambient.xyz; if ((p_10.info.y == PROBE_AMBIENT_ENVIRONMENT)) { vec3 _e64 = probe_face_uv((p_10.to_local * vec4(n_5, 0.0)).xyz); vec3 _e65 = probe_texel(p_10.info.w, _e64, last); c_15 = _e65; } vec3 _e66 = acc_1; vec3 _e67 = c_15; acc_1 = (_e66 + (_e67 * _e47)); float _e70 = w_sum_1; w_sum_1 = (_e70 + _e47); } } float _e75 = w_sum_1; if ((_e75 > 1.0)) { vec3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = (_e78 / vec3(_e79)); w_sum_1 = 1.0; } vec3 _e83 = acc_1; float _e84 = w_sum_1; return vec4(_e83, _e84); } vec4 lit_output(vec4 c_16) { uint _e4 = _group_0_binding_1_fs.counts.y; if (((_e4 & ENV_HDR) != 0u)) { return vec4(max(c_16.xyz, vec3(0.0)), clamp(c_16.w, 0.0, 1.0)); } vec4 _e18 = target_color(c_16); return _e18; } VsOutExt ext_vs_out(VsOut o_4, vec2 uv1_1) { VsOutExt e_2 = VsOutExt(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0), vec2(0.0)); e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_1; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in(VsOutExt e_3) { VsOut o_5 = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex(VsIn in_3) { VsOut out_ = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec2(0.0), 0u, vec4(0.0), 0.0, vec4(0.0)); mat4x4 _e3 = _group_1_binding_0_fs.model; vec4 world_12 = (_e3 * vec4(in_3.pos, 1.0)); mat4x4 _e12 = _group_0_binding_0_fs.view_proj; out_.clip = (_e12 * world_12); out_.world = world_12.xyz; mat4x4 _e19 = _group_1_binding_0_fs.normal; out_.normal = normalize((_e19 * vec4(in_3.normal, 0.0)).xyz); out_.uv = in_3.uv; out_.flags = in_3.flags; uint _e33 = _group_1_binding_0_fs.extra.x; float mirror = (((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0); mat4x4 _e44 = _group_1_binding_0_fs.model; out_.tangent = vec4(normalize((_e44 * vec4(in_3.tangent.xyz, 0.0)).xyz), (in_3.tangent.w * mirror)); out_.weight = in_3.weight; out_.color = vec4(1.0); VsOut _e61 = out_; return _e61; } vec2 ext_uv(uint s, vec2 uv0_, vec2 uv1_2) { vec4 r0_ = _group_2_binding_0_fs.xf[(s * 2u)]; vec4 r1_ = _group_2_binding_0_fs.xf[((s * 2u) + 1u)]; vec2 uv_5 = ((r0_.w > 0.5) ? uv1_2 : uv0_); return vec2((dot(r0_.xy, uv_5) + r0_.z), (dot(r1_.xy, uv_5) + r1_.z)); } ExtSamples sample_ext(VsOutExt in_4) { ExtSamples s_1 = ExtSamples(vec4(0.0), vec3(0.0), 0.0, 0.0, vec3(0.0), 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec3(0.0), false, vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec2(0.0), 0.0, vec3(0.0)); float thick = 1.0; vec2 _e2 = tex_uv(in_4.uv); vec2 _e4 = tex_uv(in_4.uv1_); vec4 _e9 = _group_2_binding_0_fs.base_color; s_1.base = _e9; uint _e14 = _group_2_binding_0_fs.flags.x; if ((SPEC_TEX_BASE ? ((_e14 & T_BASE) != 0u) : false)) { vec4 _e22 = s_1.base; vec2 _e26 = ext_uv(SLOT_BASE, _e2, _e4); vec4 _e27 = texture(_group_2_binding_1_fs, vec2(_e26)); vec4 _e28 = decoded_base(_e27); s_1.base = (_e22 * _e28); } s_1.normal = vec3(0.0, 0.0, 1.0); float _e39 = _group_2_binding_0_fs.factors.x; s_1.metallic = _e39; float _e44 = _group_2_binding_0_fs.factors.y; s_1.roughness = _e44; vec4 _e48 = _group_2_binding_0_fs.emission; s_1.emission = _e48.xyz; s_1.occlusion = 1.0; float _e57 = _group_2_binding_0_fs.ext[0].w; s_1.specular = _e57; vec4 _e62 = _group_2_binding_0_fs.ext[0]; s_1.specular_color = _e62.xyz; float _e69 = _group_2_binding_0_fs.ext[1].y; s_1.transmission = _e69; float _e75 = _group_2_binding_0_fs.ext[1].z; s_1.thickness = _e75; float _e81 = _group_2_binding_0_fs.ext[3].x; s_1.clearcoat = _e81; float _e87 = _group_2_binding_0_fs.ext[3].y; s_1.clearcoat_roughness = _e87; s_1.clearcoat_normal = vec3(0.0, 0.0, 1.0); s_1.clearcoat_mapped = false; vec4 _e99 = _group_2_binding_0_fs.ext[4]; s_1.sheen_color = _e99.xyz; float _e106 = _group_2_binding_0_fs.ext[4].w; s_1.sheen_roughness = _e106; float _e112 = _group_2_binding_0_fs.ext[5].x; s_1.iridescence = _e112; float _e120 = _group_2_binding_0_fs.ext[5].z; float _e125 = _group_2_binding_0_fs.ext[5].w; float _e126 = thick; s_1.iridescence_thickness = mix(_e120, _e125, _e126); float _e133 = _group_2_binding_0_fs.ext[6].x; s_1.anisotropy = _e133; vec4 _e138 = _group_2_binding_0_fs.ext[6]; s_1.anisotropy_dir = _e138.yz; float _e145 = _group_2_binding_0_fs.ext[7].w; s_1.diffuse_transmission = _e145; vec4 _e150 = _group_2_binding_0_fs.ext[7]; s_1.diffuse_transmission_color = _e150.xyz; ExtSamples _e152 = s_1; return _e152; } bool ext_cut(ExtSamples s_2) { bool local_14 = false; uint _e5 = _group_2_binding_0_fs.flags.y; if ((_e5 == ALPHA_MASK)) { float _e15 = _group_2_binding_0_fs.emission.w; local_14 = (s_2.base.w < _e15); } else { local_14 = false; } bool _e18 = local_14; return (SPEC_ALPHA_MASK ? _e18 : false); } float pow5_(float x_2) { float x2_2 = (x_2 * x_2); return ((x2_2 * x2_2) * x_2); } vec3 f_schlick90_(vec3 f0_, vec3 f90_, float vh) { float _e9 = pow5_(clamp((1.0 - vh), 0.0, 1.0)); return (f0_ + ((f90_ - f0_) * _e9)); } vec3 ext_view(vec3 world_10) { float _e5 = _group_0_binding_0_fs.view[0][2]; float _e10 = _group_0_binding_0_fs.view[1][2]; float _e15 = _group_0_binding_0_fs.view[2][2]; vec3 view_dir = vec3(_e5, _e10, _e15); vec4 _e19 = _group_0_binding_0_fs.camera_pos; float _e27 = _group_0_binding_0_fs.camera_pos.w; return ((_e27 > 0.5) ? normalize(view_dir) : normalize((_e19.xyz - world_10))); } ExtCtx ext_ctx(VsOutExt in_5, bool front, ExtSamples s_3, bool decals) { ExtCtx e_4 = ExtCtx(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0), 0.0, vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), false, 0.0, vec2(0.0), 0.0, 0.0, vec3(0.0)); vec3 t_1 = vec3(0.0); DecalSurface surf_1 = DecalSurface(vec3(0.0), 0.0, 0.0, 0.0, vec3(0.0), vec3(0.0)); vec3 n_geo_2 = (front ? normalize(in_5.normal) : -(normalize(in_5.normal))); t_1 = in_5.tangent.xyz; vec3 _e14 = t_1; vec3 _e15 = t_1; t_1 = normalize((_e14 - (n_geo_2 * dot(n_geo_2, _e15)))); vec3 _e20 = t_1; vec3 b_4 = (cross(n_geo_2, _e20) * in_5.tangent.w); e_4.n_geo = n_geo_2; e_4.n = n_geo_2; e_4.nc = n_geo_2; if (s_3.clearcoat_mapped) { vec3 _e30 = t_1; e_4.nc = normalize((((_e30 * s_3.clearcoat_normal.x) + (b_4 * s_3.clearcoat_normal.y)) + (n_geo_2 * s_3.clearcoat_normal.z))); } vec3 _e55 = e_4.n; surf_1 = DecalSurface(s_3.base.xyz, clamp(s_3.metallic, 0.0, 1.0), clamp(s_3.roughness, 0.045, 1.0), s_3.occlusion, _e55, s_3.emission); if ((SPEC_DECALS ? decals : false)) { DecalSurface _e63 = surf_1; DecalSurface _e64 = apply_decals(in_5.world, n_geo_2, _e63); surf_1 = _e64; } vec3 _e67 = surf_1.normal; e_4.n = _e67; float _e70 = surf_1.occlusion; e_4.occlusion = _e70; vec3 _e73 = surf_1.emission; e_4.emission = _e73; vec3 _e76 = ext_view(in_5.world); e_4.v = _e76; e_4.world = in_5.world; vec3 _e81 = e_4.n; vec3 _e83 = e_4.v; e_4.nv = max(dot(_e81, _e83), 0.0001); float _e89 = surf_1.metallic; e_4.metallic = _e89; float _e92 = surf_1.roughness; e_4.roughness = _e92; float _e95 = e_4.roughness; float _e97 = e_4.roughness; e_4.alpha = (_e95 * _e97); float _e101 = e_4.alpha; float _e103 = e_4.alpha; e_4.a2_ = (_e101 * _e103); vec3 _e107 = surf_1.base; e_4.base = _e107; vec3 _e110 = e_4.base; float _e112 = e_4.metallic; e_4.diffuse = (_e110 * (1.0 - _e112)); float _e121 = _group_2_binding_0_fs.ext[1].x; e_4.ior = max(_e121, 1.0); float _e125 = e_4.ior; float _e129 = e_4.ior; float r_6 = ((_e125 - 1.0) / (_e129 + 1.0)); float spec_1 = max(s_3.specular, 0.0); vec3 dielectric_f0_ = (min((vec3((r_6 * r_6)) * s_3.specular_color), vec3(1.0)) * spec_1); vec3 _e146 = e_4.base; float _e148 = e_4.metallic; e_4.f0_ = mix(dielectric_f0_, _e146, _e148); float _e155 = e_4.metallic; e_4.f90_ = mix(vec3(spec_1), vec3(1.0), _e155); e_4.iridescence = clamp(s_3.iridescence, 0.0, 1.0); vec3 _e164 = e_4.f0_; e_4.irid_f = _e164; e_4.aniso = clamp(s_3.anisotropy, 0.0, 1.0); vec3 _e171 = t_1; e_4.aniso_t = normalize(((_e171 * s_3.anisotropy_dir.x) + (b_4 * s_3.anisotropy_dir.y))); vec3 _e182 = e_4.aniso_t; e_4.aniso_b = normalize(cross(n_geo_2, _e182)); e_4.clearcoat = clamp(s_3.clearcoat, 0.0, 1.0); e_4.cc_roughness = clamp(s_3.clearcoat_roughness, 0.045, 1.0); float _e196 = e_4.cc_roughness; float _e198 = e_4.cc_roughness; float cca = (_e196 * _e198); e_4.cc_a2_ = (cca * cca); e_4.sheen = max(s_3.sheen_color, vec3(0.0)); e_4.sheen_roughness = clamp(s_3.sheen_roughness, 0.07, 1.0); float _e214 = e_4.sheen_roughness; float _e216 = e_4.sheen_roughness; e_4.sheen_alpha = (_e214 * _e216); e_4.dt = clamp(s_3.diffuse_transmission, 0.0, 1.0); e_4.dt_color = max(s_3.diffuse_transmission_color, vec3(0.0)); e_4.transmission = clamp(s_3.transmission, 0.0, 1.0); float _e235 = e_4.alpha; float _e237 = e_4.ior; e_4.trans_alpha = max((_e235 * clamp(((_e237 * 2.0) - 2.0), 0.0, 1.0)), 0.002); vec4 _e251 = _group_1_binding_0_fs.model[0]; vec4 _e257 = _group_1_binding_0_fs.model[1]; vec4 _e264 = _group_1_binding_0_fs.model[2]; float scale = (((length(_e251.xyz) + length(_e257.xyz)) + length(_e264.xyz)) / 3.0); float dist_1 = (max(s_3.thickness, 0.0) * scale); e_4.thin = (dist_1 <= 0.0); e_4.thickness = dist_1; e_4.frag = in_5.clip.xy; e_4.attenuation = vec3(1.0); float _e289 = _group_2_binding_0_fs.ext[2].w; e_4.dispersion = _e289; ExtCtx _e290 = e_4; return _e290; } vec3 ext_fresnel(ExtCtx e_5, float vh_1) { vec3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_1); return mix(_e4, e_5.irid_f, e_5.iridescence); } vec3 ext_light(ExtCtx e_6, vec3 l_2, vec3 radiance_1, float spec, bool godot) { vec3 f = vec3(0.0); vec3 specular = vec3(0.0); float dv = 0.0; vec3 diffuse = vec3(0.0); vec3 c_17 = vec3(0.0); float nl_raw = dot(e_6.n, l_2); float nl_1 = max(nl_raw, 0.0); vec3 h_2 = normalize((l_2 + e_6.v)); float nh_1 = max(dot(e_6.n, h_2), 0.0); float vh_2 = max(dot(e_6.v, h_2), 0.0); float nv_3 = e_6.nv; if ((nl_1 > 0.0)) { vec3 _e29 = ext_fresnel(e_6, vh_2); f = _e29; { float _e32 = d_ggx(nh_1, e_6.a2_); float _e34 = v_smith(nl_1, nv_3, e_6.a2_); dv = (_e32 * _e34); } vec3 _e36 = f; float _e37 = dv; specular = (((_e36 * _e37) * nl_1) * (godot ? spec : 1.0)); } vec3 _e45 = f; diffuse = ((godot ? (e_6.diffuse / vec3(3.1415927)) : (((vec3(1.0) - _e45) * e_6.diffuse) / vec3(3.1415927))) * nl_1); vec3 _e59 = diffuse; vec3 _e60 = specular; vec3 base = (_e59 + _e60); c_17 = (base * radiance_1); vec3 _e64 = c_17; return _e64; } vec3 ext_irradiance(vec3 n_6, bool lit_mode) { uint _e6 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e6 & SKY_IBL) != 0u) : false)) { float _e16 = _group_0_binding_5_fs.ibl.x; float _e20 = _group_0_binding_5_fs.sun.w; float scale_1 = (_e16 * _e20); uint _e25 = _group_0_binding_5_fs.flags.x; if (((_e25 & SKY_AMBIENT_SKY) != 0u)) { vec4 _e32 = _group_0_binding_5_fs.ambient; vec3 _e34 = sky_dir(n_6); vec3 _e35 = sh_irradiance(_e34); float _e40 = _group_0_binding_5_fs.ambient.w; return mix(_e32.xyz, (_e35 * scale_1), _e40); } vec4 _e44 = _group_0_binding_5_fs.ambient; return _e44.xyz; } uint _e50 = _group_0_binding_1_fs.counts.y; if ((SPEC_AMBIENT_GRADIENT ? ((_e50 & ENV_AMBIENT_SKY) != 0u) : false)) { vec4 _e59 = _group_0_binding_1_fs.sky_top; vec4 _e63 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg = ((_e59.xyz + _e63.xyz) * 0.5); vec4 _e70 = _group_0_binding_1_fs.ground_horizon; vec4 _e74 = _group_0_binding_1_fs.ground_bottom; vec3 ground_avg = ((_e70.xyz + _e74.xyz) * 0.5); vec4 _e81 = _group_0_binding_1_fs.up; float _e95 = _group_0_binding_1_fs.ambient.w; return (mix(ground_avg, sky_avg, clamp(((dot(n_6, _e81.xyz) * 0.5) + 0.5), 0.0, 1.0)) * _e95); } vec4 _e99 = _group_0_binding_1_fs.ambient; return _e99.xyz; } vec3 ext_radiance(vec3 dir_5, float roughness_3, bool lit_mode_1) { uint _e7 = _group_0_binding_5_fs.flags.x; if ((SPEC_AMBIENT_SKY ? ((_e7 & SKY_IBL) != 0u) : false)) { float _e17 = _group_0_binding_5_fs.ibl.x; float _e21 = _group_0_binding_5_fs.sun.w; float scale_2 = (_e17 * _e21); uint _e26 = _group_0_binding_5_fs.flags.x; if (((_e26 & SKY_REFLECT_RADIANCE) != 0u)) { vec3 _e31 = sky_dir(dir_5); vec3 _e32 = radiance(_e31, roughness_3); return (_e32 * scale_2); } uint _e37 = _group_0_binding_5_fs.flags.x; if (((_e37 & SKY_REFLECT_OFF) != 0u)) { return vec3(0.0); } vec4 _e46 = _group_0_binding_5_fs.ambient; return _e46.xyz; } uint _e52 = _group_0_binding_1_fs.counts.y; if ((SPEC_AMBIENT_GRADIENT ? ((_e52 & ENV_AMBIENT_SKY) != 0u) : false)) { vec4 _e61 = _group_0_binding_1_fs.sky_top; vec4 _e65 = _group_0_binding_1_fs.sky_horizon; vec3 sky_avg_1 = ((_e61.xyz + _e65.xyz) * 0.5); vec3 _e70 = sky(dir_5); float _e75 = _group_0_binding_1_fs.ambient.w; return (mix(_e70, sky_avg_1, roughness_3) * _e75); } vec4 _e79 = _group_0_binding_1_fs.ambient; return _e79.xyz; } vec3 ext_probe_radiance(ExtCtx e_7, vec3 dir_6, float roughness_4, bool lit_mode_2) { bool local_15 = false; vec3 _e4 = ext_radiance(dir_6, roughness_4, lit_mode_2); if (!(!(lit_mode_2))) { uint _e13 = _group_0_binding_7_fs.counts.x; local_15 = (_e13 == 0u); } else { local_15 = true; } bool _e17 = local_15; if ((SPEC_PROBES ? _e17 : true)) { return _e4; } uint _e24 = _group_1_binding_0_fs.extra.z; vec4 _e25 = probe_reflection(e_7.world, dir_6, roughness_4, _e24); return ((_e4 * (1.0 - _e25.w)) + _e25.xyz); } vec3 ext_env_weight(vec3 f0_1, vec3 f90_1, float roughness_5, float nv_2, float metallic, bool lit_mode_3) { bool local_16 = false; if (lit_mode_3) { uint _e12 = _group_0_binding_5_fs.flags.x; local_16 = ((_e12 & SKY_IBL) != 0u); } else { local_16 = false; } bool _e18 = local_16; if ((SPEC_AMBIENT_SKY ? _e18 : false)) { vec2 _e21 = env_brdf_approx(roughness_5, nv_2); return ((f0_1 * _e21.x) + ((f90_1 * _e21.y) * clamp((50.0 * f0_1.y), metallic, 1.0))); } float _e40 = pow5_((1.0 - nv_2)); vec3 f_amb = (f0_1 + ((max((f90_1 * (1.0 - roughness_5)), f0_1) - f0_1) * _e40)); return f_amb; } vec3 ext_ambient(ExtCtx e_8, bool lit_mode_4, vec4 gi) { vec3 diffuse_1 = vec3(0.0); bool local_17 = false; bool local_18 = false; bool local_19 = false; bool local_20 = false; vec3 r_3 = vec3(0.0); vec3 c_18 = vec3(0.0); float nv_4 = e_8.nv; vec3 _e6 = ext_irradiance(e_8.n, lit_mode_4); diffuse_1 = (e_8.diffuse * _e6); if (lit_mode_4) { uint _e15 = _group_0_binding_5_fs.flags.x; local_17 = ((_e15 & SKY_IBL) == 0u); } else { local_17 = false; } bool _e21 = local_17; if (_e21) { uint _e27 = _group_0_binding_1_fs.counts.y; local_18 = ((_e27 & ENV_AMBIENT_SKY) == 0u); } else { local_18 = false; } bool _e33 = local_18; if ((SPEC_AMBIENT_FLAT ? _e33 : false)) { vec4 _e38 = _group_0_binding_1_fs.ambient; diffuse_1 = (_e38.xyz * e_8.diffuse); } if (lit_mode_4) { uint _e48 = _group_0_binding_7_fs.counts.x; local_19 = (_e48 > 0u); } else { local_19 = false; } bool _e52 = local_19; if (_e52) { local_20 = (gi.w <= 0.0); } else { local_20 = false; } bool _e59 = local_20; if ((SPEC_PROBES ? _e59 : false)) { uint _e67 = _group_1_binding_0_fs.extra.z; vec4 _e68 = probe_ambient(e_8.world, e_8.n, _e67); vec3 _e69 = diffuse_1; diffuse_1 = ((_e69 * (1.0 - _e68.w)) + (e_8.diffuse * _e68.xyz)); } if ((gi.w > 0.0)) { diffuse_1 = (e_8.diffuse * gi.xyz); } r_3 = reflect(-(e_8.v), e_8.n); vec3 f0_2 = mix(e_8.f0_, e_8.irid_f, e_8.iridescence); vec3 f90_2 = mix(e_8.f90_, vec3(1.0), e_8.iridescence); vec3 _e100 = ext_env_weight(f0_2, f90_2, e_8.roughness, nv_4, e_8.metallic, lit_mode_4); vec3 _e101 = r_3; vec3 _e103 = ext_probe_radiance(e_8, _e101, e_8.roughness, lit_mode_4); vec3 specular_1 = (_e103 * _e100); vec3 _e105 = diffuse_1; c_18 = (_e105 + specular_1); vec3 _e108 = c_18; return _e108; } vec3 ext_shade_with(VsOutExt in_6, bool front_1, ExtSamples s_4, bool lit_mode_5, bool baked_1, vec3 baked_light_1) { bool local_21 = false; vec3 c_19 = vec3(0.0); uint k_10 = 0u; bool local_22 = false; vec3 l_3 = vec3(0.0); float atten_1 = 0.0; vec3 rad = vec3(0.0); bool local_23 = false; if (lit_mode_5) { uint _e12 = _group_1_binding_0_fs.decals.z; local_21 = (_e12 > 0u); } else { local_21 = false; } bool _e16 = local_21; ExtCtx _e19 = ext_ctx(in_6, front_1, s_4, (SPEC_DECALS ? _e16 : false)); uint _e23 = object_light_count(); bool loop_init_15 = true; while(true) { if (!loop_init_15) { uint _e129 = k_10; k_10 = (_e129 + 1u); } loop_init_15 = false; uint _e27 = k_10; if ((SPEC_LIGHTS ? (_e27 < _e23) : false)) { } else { break; } { uint _e31 = k_10; uint _e32 = object_light(_e31); LightU li_1 = _group_0_binding_1_fs.lights[_e32]; if (baked_1) { local_22 = (li_1.info.z == LIGHT_BAKED_STATIC); } else { local_22 = false; } bool _e44 = local_22; if (_e44) { continue; } uint kind_1 = li_1.info.x; l_3 = vec3(0.0); atten_1 = 1.0; if ((kind_1 == LIGHT_DIRECTIONAL)) { l_3 = -(li_1.direction.xyz); } else { vec3 rel_1 = (li_1.position.xyz - in_6.world); float d_13 = length(rel_1); l_3 = (rel_1 / vec3(max(d_13, 1e-6))); float _e69 = omni_attenuation(d_13, li_1.position.w, li_1.direction.w); atten_1 = _e69; if ((kind_1 == LIGHT_SPOT)) { float cone = li_1.spot.x; vec3 _e74 = l_3; float scos = max(dot(-(_e74), li_1.direction.xyz), cone); float rim_1 = max(0.0001, ((1.0 - scos) / max((1.0 - cone), 1e-6))); float _e89 = atten_1; atten_1 = (_e89 * (1.0 - pow(rim_1, li_1.spot.y))); } } float _e96 = atten_1; if ((_e96 > 0.0)) { float _e101 = atten_1; rad = (li_1.color.xyz * _e101); if ((SPEC_SHADOWS ? (li_1.info.y == LIGHT_SHADOWED) : false)) { float _e113 = atten_1; vec3 _e116 = l_3; float _e117 = shadow_factor(_e32, in_6.world, _e19.n_geo, _e116); rad = (li_1.color.xyz * (_e113 * _e117)); } vec3 _e120 = c_19; vec3 _e121 = l_3; vec3 _e122 = rad; vec3 _e126 = ext_light(_e19, _e121, _e122, li_1.spot.z, true); c_19 = (_e120 + _e126); } } } vec4 _e133 = gi_diffuse(_e19.n, baked_1, baked_light_1); vec3 _e134 = ext_ambient(_e19, true, _e133); uint _e139 = _group_0_binding_1_fs.counts.y; if (((_e139 & ENV_SSAO) != 0u)) { uint _e149 = _group_2_binding_0_fs.flags.y; local_23 = (_e149 != ALPHA_BLEND); } else { local_23 = false; } bool _e153 = local_23; if ((SPEC_SSAO ? _e153 : false)) { vec4 _e162 = texelFetch(_group_0_binding_6_fs, ivec2(floor(in_6.clip.xy)), 0); float ssao = _e162.x; vec3 _e164 = c_19; float _e170 = _group_0_binding_1_fs.tone.z; float _e174 = _group_0_binding_1_fs.tone.w; c_19 = (_e164 * mix(1.0, min(ssao, _e19.occlusion), (_e170 * _e174))); vec3 _e179 = c_19; c_19 = (_e179 + (_e134 * min(_e19.occlusion, ssao))); } else { vec3 _e184 = c_19; c_19 = (_e184 + (_e134 * _e19.occlusion)); } vec3 _e188 = c_19; c_19 = (_e188 + _e19.emission); vec3 _e191 = c_19; return _e191; } vec3 ext_shade(VsOutExt in_7, bool front_2, ExtSamples s_5, bool lit_mode_6) { vec3 _e7 = ext_shade_with(in_7, front_2, s_5, lit_mode_6, false, vec3(0.0)); return _e7; } vec3 ext_lit_finish(vec3 c_in_1, vec3 world_11) { vec3 c_20 = vec3(0.0); c_20 = c_in_1; uint _e7 = _group_0_binding_5_fs.flags.x; if ((SPEC_FOG ? ((_e7 & SKY_FOG) != 0u) : false)) { vec3 _e14 = c_20; vec3 _e15 = ext_view(world_11); vec3 _e17 = surface_fog(_e14, world_11, -(_e15)); c_20 = _e17; } uint _e22 = _group_1_binding_0_fs.decals.w; if ((SPEC_FOG_VOLUMES ? (_e22 != 0u) : false)) { vec3 _e27 = c_20; uint _e31 = _group_1_binding_0_fs.decals.w; vec3 _e32 = fog_volumes(_e27, world_11, _e31); c_20 = _e32; } vec3 _e33 = c_20; vec3 _e34 = tonemap(_e33); return _e34; } void main() { VsOutExt in_1 = VsOutExt(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7); bool facing = gl_FrontFacing; float alpha = 1.0; vec3 c = vec3(0.0); VsOut _e2 = ext_base_in(in_1); bool _e3 = mirrored(_e2); bool front_3 = (facing != _e3); ExtSamples _e5 = sample_ext(in_1); float _e9 = emerge_reveal(in_1.world, in_1.clip.xy); if ((SPEC_EMERGE ? (_e9 <= 0.0) : false)) { discard; } bool _e15 = ext_cut(_e5); if (_e15) { discard; } uint _e22 = _group_0_binding_0_fs.params.x; bool lit_mode_7 = (SPEC_LIT ? (_e22 == SHADE_LIT) : false); { uint _e32 = _group_2_binding_0_fs.flags.w; if ((SPEC_UNLIT ? ((_e32 & MAT_UNLIT) != 0u) : false)) { c = _e5.base.xyz; } else { vec3 _e41 = ext_shade(in_1, front_3, _e5, lit_mode_7); c = _e41; } if ((SPEC_LIT ? lit_mode_7 : false)) { vec3 _e45 = c; vec3 _e47 = ext_lit_finish(_e45, in_1.world); c = _e47; } } if ((SPEC_LIT ? lit_mode_7 : false)) { vec3 _e51 = c; vec3 _e52 = item_fade(_e51); vec3 _e53 = emerge_tint(_e52, _e9); float _e54 = alpha; vec4 _e56 = lit_output(vec4(_e53, _e54)); _fs2p_location0 = _e56; return; } vec3 _e57 = c; float _e58 = alpha; vec4 _e60 = target_color(vec4(_e57, _e58)); _fs2p_location0 = _e60; return; }  @Ð Ð/ ,@  P       {Ðþ—4ÌhÜ©Z„åŸþhøÁ‰xF¼Ù¸£m˜Ñƒ<°Globals_block_0VertexObjectU_block_1VertexDecalU_block_7FragmentProbeU_block_6FragmentGlobals_block_0FragmentFogU_block_8FragmentLitU_block_3FragmentObjectU_block_1FragmentSkyU_block_5FragmentShadowU_block_4Fragment MaterialU_block_2Fragment _group_3_binding_0_fs_group_0_binding_3_fs_group_2_binding_1_fs_group_0_binding_6_fs _group_3_binding_6_fs_group_1_binding_3_fsvs_surface_extvs_surface_extfs_surface_extfs_surface_ext¢š// language: metal2.2 #include #include using metal::uint; struct Globals { metal::float4x4 view; metal::float4x4 proj; metal::float4x4 view_proj; metal::float4 camera_pos; metal::float4 viewport; metal::float4 wire_color; metal::float4 select_color; metal::float4 active_color; metal::float4 grid; metal::uint4 params; metal::float4 fparams; }; struct type_5 { metal::float4 inner[3]; }; struct ObjectU { metal::float4x4 model; metal::float4x4 normal; metal::float4 color; metal::uint4 params; metal::uint4 extra; type_5 gi; metal::uint4 decals; metal::uint4 lights; }; struct type_8 { metal::float4 inner[40]; }; struct type_9 { metal::float4 inner[8]; }; struct MaterialU { metal::float4 base_color; metal::float4 emission; metal::float4 factors; metal::uint4 flags; metal::float4 uv; type_8 xf; type_9 ext; }; struct type_13 { metal::float3 inner[10]; }; struct LightU { metal::float4 color; metal::float4 position; metal::float4 direction; metal::float4 spot; metal::uint4 info; }; struct type_14 { LightU inner[64]; }; struct LitU { metal::uint4 counts; metal::float4 ambient; metal::float4 tone; metal::float4 up; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_horizon; metal::float4 ground_bottom; metal::float4x4 inv_view_proj; metal::uint4 dirs; type_14 lights; }; struct ShadowLightU { metal::float4 params; metal::float4 splits; metal::float4 fade; metal::uint4 info; }; struct ShadowTileU { metal::float4x4 view_proj; metal::float4 rect; metal::float4 texel; }; struct type_15 { ShadowLightU inner[16]; }; struct type_16 { ShadowTileU inner[16]; }; struct ShadowU { metal::float4 atlas; type_15 lights; type_16 tiles; }; struct SunU { metal::float4 direction; metal::float4 color; }; struct type_19 { SunU inner[4]; }; struct type_20 { metal::float4 inner[9]; }; struct SkyU { metal::uint4 flags; metal::float4x4 to_sky; metal::float4 sky_top; metal::float4 sky_horizon; metal::float4 ground_bottom; metal::float4 ground_horizon; metal::float4 sun; metal::float4 ambient; metal::float4 ibl; metal::float4 fog_color; metal::float4 fog; metal::float4 fog_depth; metal::float4 fog_origin; type_19 suns; type_20 sh; }; struct ProbeEntryU { metal::float4x4 to_local; metal::float4 extents; metal::float4 offset; metal::float4 ambient; metal::uint4 info; }; struct type_22 { ProbeEntryU inner[8]; }; struct ProbeU { metal::uint4 counts; type_22 probes; }; struct DecalEntryU { metal::float4x4 to_local; metal::float4 modulate; metal::float4 fades; metal::float4 axis_x; metal::float4 axis_y; metal::float4 axis_z; metal::uint4 layers; metal::uint4 flags; }; struct type_23 { DecalEntryU inner[64]; }; struct DecalU { metal::uint4 counts; metal::float4 lod; type_23 entries; }; struct DecalSurface { metal::packed_float3 base; float metallic; float roughness; float occlusion; char _pad4[8]; metal::float3 normal; metal::float3 emission; }; struct VsIn { metal::float3 pos; metal::float3 normal; metal::float2 uv; uint flags; char _pad4[4]; metal::float4 tangent; float weight; char _pad6[12]; }; struct VsOut { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; float weight; char _pad7[12]; metal::float4 color; }; struct InstIn { metal::float4 row0_; metal::float4 row1_; metal::float4 row2_; metal::float4 color; }; struct Samples { metal::float4 base; metal::float3 normal; metal::float4 mr; metal::packed_float3 emission; float occlusion; }; struct FogEntryU { metal::float4x4 to_local; metal::float4 size; metal::float4 material; metal::float4 albedo; metal::float4 emission; metal::uint4 lights; }; struct type_27 { metal::float4 inner[16]; }; struct type_28 { FogEntryU inner[16]; }; struct FogU { metal::uint4 counts; metal::float4 params; metal::float4 ambient; metal::float4 up; type_27 light_fog; type_28 entries; }; struct type_29 { uint inner[4]; }; struct type_30 { metal::float2 inner[4]; }; struct type_31 { metal::float4 inner[4]; }; struct SkyOut { metal::float4 clip; metal::float2 ndc; char _pad2[8]; }; struct IdOut { metal::float4 id; }; struct NormalDepthOut { metal::float4 normal_depth; metal::float4 surface; }; struct VsOutExt { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; float weight; char _pad7[12]; metal::float4 color; metal::float2 uv1_; char _pad9[8]; }; struct ExtSamples { metal::float4 base; metal::packed_float3 normal; float metallic; float roughness; char _pad4[12]; metal::packed_float3 emission; float occlusion; float specular; char _pad7[12]; metal::packed_float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; char _pad12[4]; metal::packed_float3 clearcoat_normal; bool clearcoat_mapped; char _pad14[3]; metal::packed_float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; char _pad19[4]; metal::float2 anisotropy_dir; float diffuse_transmission; char _pad21[4]; metal::float3 diffuse_transmission_color; }; struct ExtCtx { metal::float3 n; metal::float3 n_geo; metal::float3 nc; metal::float3 v; metal::packed_float3 world; float nv; metal::float3 base; metal::packed_float3 diffuse; float metallic; float roughness; float alpha; float a2_; char _pad12[4]; metal::float3 f0_; metal::packed_float3 f90_; float iridescence; metal::packed_float3 irid_f; float aniso; metal::float3 aniso_t; metal::packed_float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2_; char _pad22[8]; metal::packed_float3 sheen; float sheen_alpha; float sheen_roughness; float dt; char _pad26[8]; metal::packed_float3 dt_color; float transmission; float trans_alpha; float ior; char _pad30[8]; metal::packed_float3 attenuation; bool thin; char _pad32[3]; float thickness; char _pad33[4]; metal::float2 frag; float dispersion; float occlusion; char _pad36[8]; metal::float3 emission; }; struct VsOutLm { metal::float4 clip; metal::float3 world; metal::float3 normal; metal::float2 uv; uint flags; char _pad5[4]; metal::float4 tangent; float weight; char _pad7[12]; metal::float4 color; metal::float2 uv1_; metal::float2 uv_lm; }; struct type_32 { metal::float4 inner[765]; }; struct SkinU { type_32 rows; }; struct SkinIn { metal::uint4 joints; metal::float4 weights; }; struct SkinRows { metal::float4 r0_; metal::float4 r1_; metal::float4 r2_; }; constant uint OBJ_HAS_WEIGHTS = 1u; constant uint OBJ_MIRRORED = 2u; constant uint SHADE_SOLID = 0u; constant uint SHADE_MATCAP = 1u; constant uint SHADE_NORMALS = 2u; constant uint SHADE_FACE_ORIENT = 3u; constant uint SHADE_RANDOM = 4u; constant uint SHADE_MATERIAL = 5u; constant uint SHADE_UV_CHECKER = 6u; constant uint SHADE_WEIGHTS = 7u; constant uint SHADE_LIT = 8u; constant uint SHADE_LIGHTMAP = 9u; constant uint SHADE_LIGHT_COUNT = 10u; constant uint OV_SELECTION = 1u; constant uint OV_SEAMS = 2u; constant uint OV_SHARP = 4u; constant uint F_SELECTED = 1u; constant uint F_HIDDEN = 2u; constant uint F_SEAM = 4u; constant uint F_SHARP = 8u; constant uint F_MESH = 16u; constant uint F_FADE = 32u; constant uint F_NO_PULL = 64u; constant bool SPEC_TEX_BASE = true; constant bool SPEC_TEX_NORMAL = false; constant bool SPEC_TEX_MR = false; constant bool SPEC_TEX_EMISSION = false; constant bool SPEC_TEX_OCCLUSION = false; constant bool SPEC_VERTEX_COLOR = false; constant bool SPEC_EXT = true; constant bool SPEC_UNLIT = true; constant bool SPEC_ALPHA_MASK = false; constant bool SPEC_ALPHA_BLEND = false; constant bool SPEC_CLEARCOAT = false; constant bool SPEC_SHEEN = false; constant bool SPEC_TRANSMISSION = false; constant bool SPEC_IRIDESCENCE = false; constant bool SPEC_ANISOTROPY = false; constant bool SPEC_DIFFUSE_TRANSMISSION = false; constant bool SPEC_VOLUME = false; constant bool SPEC_DISPERSION = false; constant bool SPEC_EXT_LAYERS = false; constant bool SPEC_ROUGHNESS_LAYER = false; constant bool SPEC_LIT = true; constant bool SPEC_LIGHTS = true; constant bool SPEC_SHADOWS = true; constant bool SPEC_DECALS = true; constant bool SPEC_FOG = true; constant bool SPEC_FOG_VOLUMES = true; constant bool SPEC_PROBES = true; constant bool SPEC_PROBE_GI = false; constant bool SPEC_SSAO = true; constant bool SPEC_SCREEN_REFRACTION = true; constant bool SPEC_EMERGE = true; constant bool SPEC_FADE = true; constant bool SPEC_FACE_FLAGS = false; constant bool SPEC_AMBIENT_FLAT = true; constant bool SPEC_AMBIENT_GRADIENT = true; constant bool SPEC_AMBIENT_SKY = true; constant bool SPEC_MATERIAL_MODE = false; constant bool SPEC_OTHER_MODES = false; constant uint T_BASE = 1u; constant uint T_NORMAL = 2u; constant uint T_METALLIC_ROUGHNESS = 4u; constant uint T_EMISSION = 8u; constant uint T_OCCLUSION = 16u; constant uint MAT_VERTEX_COLOR = 1u; constant uint MAT_VERTEX_COLOR_SRGB = 2u; constant uint MAT_EXT = 4u; constant uint MAT_UNLIT = 8u; constant uint MAT_ROUGHNESS_LAYER = 16u; constant uint MAT_SRGB_BASE = 32u; constant uint MAT_SRGB_EMISSION = 64u; constant uint ALPHA_OPAQUE = 0u; constant uint ALPHA_MASK = 1u; constant uint ALPHA_BLEND = 2u; constant float PI = 3.1415927; constant uint MAX_FRAME_LIGHTS = 64u; constant uint MAX_OBJECT_LIGHTS = 8u; constant uint MAX_SHADOW_LIGHTS = 16u; constant uint MAX_POOL_DIRECTIONAL = 8u; constant type_13 LIGHT_COUNT_COLORS = type_13 {{metal::float3(0.352941, 0.352941, 0.352941), metal::float3(0.168627, 0.247059, 0.6), metal::float3(0.129412, 0.4, 0.67451), metal::float3(0.101961, 0.623529, 0.721569), metal::float3(0.121569, 0.631373, 0.529412), metal::float3(0.301961, 0.733333, 0.352941), metal::float3(0.65098, 0.831373, 0.227451), metal::float3(0.94902, 0.784314, 0.058824), metal::float3(0.94902, 0.556863, 0.058824), metal::float3(0.878431, 0.129412, 0.541176)}}; constant uint LIGHT_DIRECTIONAL = 0u; constant uint LIGHT_OMNI = 1u; constant uint LIGHT_SPOT = 2u; constant uint LIGHT_BAKE_DISABLED = 0u; constant uint LIGHT_BAKE_STATIC = 1u; constant uint LIGHT_BAKE_DYNAMIC = 2u; constant uint TONEMAP_LINEAR = 0u; constant uint TONEMAP_REINHARD = 1u; constant uint TONEMAP_FILMIC = 2u; constant uint TONEMAP_ACES = 3u; constant uint TONEMAP_AGX = 4u; constant uint ENV_SKY = 1u; constant uint ENV_AMBIENT_SKY = 2u; constant uint ENV_SSAO = 4u; constant uint ENV_HDR = 8u; constant uint ENV_SCREEN_REFRACTION = 16u; constant uint LIGHT_SHADOWED = 1u; constant uint LIGHT_BAKED_STATIC = 1u; constant uint SHADOW_TILES = 16u; constant uint SKY_DRAW_PROCEDURAL = 1u; constant uint SKY_DRAW_PANORAMA = 2u; constant uint SKY_PANORAMA_FILTER = 4u; constant uint SKY_IBL = 8u; constant uint SKY_AMBIENT_SKY = 16u; constant uint SKY_REFLECT_RADIANCE = 32u; constant uint SKY_REFLECT_OFF = 64u; constant uint SKY_FOG = 128u; constant uint SKY_FOG_DEPTH = 256u; constant uint SKY_SUNS = 4u; constant uint OBJ_LIGHTMAP = 4u; constant uint OBJ_PROBE_GI = 8u; constant uint PROBE_BOX = 1u; constant uint PROBE_INTERIOR = 2u; constant uint MAX_PROBES = 8u; constant uint PROBE_AMBIENT_DISABLED = 0u; constant uint PROBE_AMBIENT_ENVIRONMENT = 1u; constant uint PROBE_AMBIENT_CONSTANT_COLOR = 2u; constant uint MAX_FRAME_DECALS = 64u; constant uint MAX_OBJECT_DECALS = 8u; constant uint DECAL_LIVE_ALBEDO = 1u; constant uint DECAL_LIVE_NORMAL = 2u; constant uint DECAL_LIVE_ORM = 4u; constant uint DECAL_LIVE_EMISSION = 8u; constant uint F_INSTANCE_MIRRORED = 128u; constant uint OBJ_EMERGE = 32u; constant float EMERGE_SCALE = 1.3; constant float EMERGE_EDGE = 0.8; constant float EMERGE_DITHER = 0.12; constant uint OBJ_FADE = 64u; constant uint MAX_FRAME_FOG_VOLUMES = 16u; constant uint MAX_OBJECT_FOG_VOLUMES = 4u; constant uint FOG_SHAPE_ELLIPSOID = 0u; constant uint FOG_SHAPE_CONE = 1u; constant uint FOG_SHAPE_CYLINDER = 2u; constant uint FOG_SHAPE_BOX = 3u; constant uint FOG_SHAPE_WORLD = 4u; constant float FOG_SKY_DISTANCE = 1000000.0; constant uint FOG_LIST_ALL = 2147483648u; constant float FOG_GL_X0_ = 0.8611363; constant float FOG_GL_X1_ = 0.339981; constant float FOG_GL_W0_ = 0.3478548; constant float FOG_GL_W1_ = 0.6521452; constant uint SLOT_BASE = 0u; constant uint SLOT_METALLIC = 1u; constant uint SLOT_ROUGHNESS = 2u; constant uint SLOT_NORMAL = 3u; constant uint SLOT_OCCLUSION = 4u; constant uint SLOT_EMISSIVE = 5u; constant uint SLOT_CLEARCOAT = 6u; constant uint SLOT_CLEARCOAT_ROUGHNESS = 7u; constant uint SLOT_CLEARCOAT_NORMAL = 8u; constant uint SLOT_SHEEN_COLOR = 9u; constant uint SLOT_SHEEN_ROUGHNESS = 10u; constant uint SLOT_SPECULAR = 11u; constant uint SLOT_SPECULAR_COLOR = 12u; constant uint SLOT_TRANSMISSION = 13u; constant uint SLOT_THICKNESS = 14u; constant uint SLOT_IRIDESCENCE = 15u; constant uint SLOT_IRIDESCENCE_THICKNESS = 16u; constant uint SLOT_ANISOTROPY = 17u; constant uint SLOT_DIFFUSE_TRANSMISSION = 18u; constant uint SLOT_DIFFUSE_TRANSMISSION_COLOR = 19u; constant uint OBJ_SKINNED = 16u; constant uint SKIN_JOINTS = 255u; metal::float3 srgb_to_linear( metal::float3 c_1 ) { metal::float3 lo = c_1 / metal::float3(12.92); metal::float3 hi = metal::pow((c_1 + metal::float3(0.055)) / metal::float3(1.055), metal::float3(2.4)); return metal::select(hi, lo, c_1 <= metal::float3(0.04045)); } metal::float3 linear_to_srgb( metal::float3 c_2 ) { metal::float3 lo_1 = c_2 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(c_2, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, c_2 <= metal::float3(0.0031308)); } metal::float4 target_color( metal::float4 c_3, constant Globals& G ) { metal::float4 k_11 = metal::clamp(c_3, metal::float4(0.0), metal::float4(1.0)); float _e9 = G.fparams.w; if (_e9 > 0.5) { metal::float3 _e13 = linear_to_srgb(k_11.xyz); return metal::float4(_e13, k_11.w); } return k_11; } uint object_light_count( constant ObjectU& O ) { uint _e3 = O.lights.z; return metal::min(_e3, MAX_OBJECT_LIGHTS); } uint object_light( uint k, constant ObjectU& O ) { uint _e4 = O.lights.y; uint _e8 = O.lights.x; uint word = (k < 4u) ? _e8 : _e4; return metal::min((word >> ((k & 3u) * 8u)) & 255u, 63u); } uint pool_sun_count( constant LitU& Lit ) { uint _e3 = Lit.dirs.z; return metal::min(_e3, MAX_POOL_DIRECTIONAL); } uint pool_sun( uint k_1, constant LitU& Lit ) { uint _e4 = Lit.dirs.y; uint _e8 = Lit.dirs.x; uint word_1 = (k_1 < 4u) ? _e8 : _e4; return metal::min((word_1 >> ((k_1 & 3u) * 8u)) & 255u, 63u); } uint decal_count( constant ObjectU& O ) { uint _e3 = O.decals.z; return metal::min(_e3, MAX_OBJECT_DECALS); } uint decal_entry( uint k_2, constant ObjectU& O ) { uint _e4 = O.decals.y; uint _e8 = O.decals.x; uint word_2 = (k_2 < 4u) ? _e8 : _e4; return (word_2 >> ((k_2 & 3u) * 8u)) & 255u; } float decal_level( DecalEntryU e, metal::float3 world, constant Globals& G, constant DecalU& Decal ) { float _e5 = Decal.lod.x; metal::float4 _e8 = G.camera_pos; float _e15 = Decal.lod.y; float pixel_1 = _e5 * ((_e15 > 0.5) ? 1.0 : metal::length(world - _e8.xyz)); uint _e24 = Decal.counts.y; float top = static_cast(metal::max(_e24, 1u) - 1u); return metal::clamp(metal::log2(metal::max(pixel_1 / metal::max(e.axis_y.w, 0.000001), 1.0)), 0.0, top); } metal::float4 decal_texel( uint layer, metal::float2 uv, float level, bool live, metal::texture2d_array t_decals, metal::sampler s_decals ) { metal::float4 _e11 = t_decals.sample(s_decals, uv, static_cast(layer - 1u), metal::level(live ? 0.0 : level)); return _e11; } DecalSurface apply_decals( metal::float3 world_1, metal::float3 n_geo, DecalSurface surf, constant Globals& G, constant ObjectU& O, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { DecalSurface out_s = {}; uint k_3 = 0u; bool local = {}; float fade = {}; out_s = surf; uint _e4 = decal_count(O); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { uint _e197 = k_3; k_3 = _e197 + 1u; } loop_init = false; uint _e7 = k_3; if (_e7 < _e4) { } else { break; } { uint _e11 = k_3; uint _e12 = decal_entry(_e11, O); DecalEntryU e_9 = Decal.entries.inner[metal::min(unsigned(metal::min(_e12, 63u)), 63u)]; metal::float3 uvw = (e_9.to_local * metal::float4(world_1, 1.0)).xyz; if (metal::all(uvw >= metal::float3(0.0, -1.0, 0.0))) { local = metal::all(uvw <= metal::float3(1.0)); } else { local = false; } bool _e35 = local; if (!(_e35)) { continue; } fade = metal::pow(1.0 - metal::abs(uvw.y), (uvw.y > 0.0) ? e_9.fades.x : e_9.fades.y); if (e_9.fades.z > 0.0) { float _e55 = fade; fade = _e55 * metal::smoothstep(e_9.fades.z, 1.0, (metal::dot(n_geo, e_9.axis_y.xyz) * 0.5) + 0.5); } metal::float2 uv_2 = uvw.xz; float _e69 = decal_level(e_9, world_1, G, Decal); uint live_1 = e_9.flags.x; if (e_9.layers.x > 0u) { metal::float4 _e82 = decal_texel(e_9.layers.x, uv_2, _e69, (live_1 & DECAL_LIVE_ALBEDO) != 0u, t_decals, s_decals); metal::float3 _e84 = srgb_to_linear(_e82.xyz); metal::float4 a_2 = metal::float4(_e84, _e82.w) * e_9.modulate; float _e90 = fade; float alpha_1 = a_2.w * _e90; metal::float3 _e94 = out_s.base; out_s.base = metal::mix(_e94, a_2.xyz, alpha_1 * e_9.fades.w); if (e_9.layers.y > 0u) { metal::float4 _e110 = decal_texel(e_9.layers.y, uv_2, _e69, (live_1 & DECAL_LIVE_NORMAL) != 0u, t_decals, s_decals); float nx = (_e110.x * 2.0) - 1.0; float ny = 1.0 - (_e110.y * 2.0); float nz = metal::sqrt(metal::max(0.0, (1.0 - (nx * nx)) - (ny * ny))); metal::float3 dn = metal::normalize(((e_9.axis_x.xyz * nx) + (e_9.axis_y.xyz * nz)) + (e_9.axis_z.xyz * ny)); metal::float3 _e143 = out_s.normal; out_s.normal = metal::normalize(metal::mix(_e143, dn, alpha_1)); } if (e_9.layers.z > 0u) { metal::float4 _e156 = decal_texel(e_9.layers.z, uv_2, _e69, (live_1 & DECAL_LIVE_ORM) != 0u, t_decals, s_decals); float _e159 = out_s.occlusion; out_s.occlusion = metal::mix(_e159, _e156.x, alpha_1); float _e164 = out_s.roughness; out_s.roughness = metal::mix(_e164, _e156.y, alpha_1); float _e169 = out_s.metallic; out_s.metallic = metal::mix(_e169, _e156.z, alpha_1); } } if (e_9.layers.w > 0u) { metal::float4 _e182 = decal_texel(e_9.layers.w, uv_2, _e69, (live_1 & DECAL_LIVE_EMISSION) != 0u, t_decals, s_decals); metal::float3 _e184 = out_s.emission; metal::float3 _e186 = srgb_to_linear(_e182.xyz); float _e193 = fade; out_s.emission = _e184 + (((_e186 * e_9.modulate.xyz) * e_9.axis_x.w) * _e193); } } } float _e201 = out_s.roughness; out_s.roughness = metal::clamp(_e201, 0.045, 1.0); float _e207 = out_s.metallic; out_s.metallic = metal::clamp(_e207, 0.0, 1.0); DecalSurface _e211 = out_s; return _e211; } bool mirrored( VsOut in_2, constant ObjectU& O ) { uint _e4 = O.extra.x; return ((_e4 & OBJ_MIRRORED) != 0u) != ((in_2.flags & F_INSTANCE_MIRRORED) != 0u); } metal::float2 tex_uv( metal::float2 uv_1 ) { return metal::float2(uv_1.x, 1.0 - uv_1.y); } metal::float4 decoded_base( metal::float4 t, constant MaterialU& M ) { uint _e4 = M.flags.w; if ((_e4 & MAT_SRGB_BASE) != 0u) { metal::float3 _e10 = srgb_to_linear(t.xyz); return metal::float4(_e10, t.w); } return t; } float d_ggx( float nh, float a2_ ) { float d_9 = ((nh * nh) * (a2_ - 1.0)) + 1.0; return a2_ / ((PI * d_9) * d_9); } float v_smith( float nl, float nv, float a2_1 ) { float gv = nl * metal::sqrt(((nv * nv) * (1.0 - a2_1)) + a2_1); float g_l = nv * metal::sqrt(((nl * nl) * (1.0 - a2_1)) + a2_1); return 0.5 / metal::max(gv + g_l, 0.0001); } metal::float3 sky( metal::float3 dir, constant LitU& Lit ) { metal::float4 _e4 = Lit.up; float a_3 = metal::acos(metal::clamp(metal::dot(metal::normalize(dir), _e4.xyz), -1.0, 1.0)); if (a_3 <= 1.5707964) { float c_21 = 1.0 - (a_3 / 1.5707964); float k_12 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_21, 0.000001), 6.6666665), 0.0, 1.0); metal::float4 _e30 = Lit.sky_horizon; metal::float4 _e34 = Lit.sky_top; return metal::mix(_e30.xyz, _e34.xyz, k_12); } float c_22 = (a_3 - 1.5707964) / 1.5707964; float k_13 = metal::clamp(1.0 - metal::pow(metal::max(1.0 - c_22, 0.000001), 50.0), 0.0, 1.0); metal::float4 _e54 = Lit.ground_horizon; metal::float4 _e58 = Lit.ground_bottom; return metal::mix(_e54.xyz, _e58.xyz, k_13); } metal::float3 filmic_curve( metal::float3 x ) { return (((x * ((0.88 * x) + metal::float3(0.1 * 0.6))) + metal::float3(0.2 * 0.01)) / ((x * ((0.88 * x) + metal::float3(0.6))) + metal::float3(0.2 * 0.3))) - metal::float3(0.01 / 0.3); } metal::float3 aces_curve( metal::float3 c_4, float white ) { metal::float3 x_3 = metal::float3(1.8 * metal::dot(metal::float3(0.59719, 0.35458, 0.04823), c_4), 1.8 * metal::dot(metal::float3(0.076, 0.90834, 0.01566), c_4), 1.8 * metal::dot(metal::float3(0.0284, 0.13383, 0.83777), c_4)); metal::float3 t_2 = ((x_3 * (x_3 + metal::float3(0.0245786))) - metal::float3(0.000090537)) / ((x_3 * ((0.983729 * x_3) + metal::float3(0.432951))) + metal::float3(0.238081)); metal::float3 o_6 = metal::float3(metal::dot(metal::float3(1.60475, -0.53108, -0.07367), t_2), metal::dot(metal::float3(-0.10208, 1.10813, -0.00605), t_2), metal::dot(metal::float3(-0.00327, -0.07276, 1.07602), t_2)); float w = 1.8 * white; float wt = ((w * (w + 0.0245786)) - 0.000090537) / ((w * ((0.983729 * w) + 0.432951)) + 0.238081); return o_6 / metal::float3(wt); } metal::float3 agx_curve( metal::float3 c_5 ) { metal::float3 v = {}; metal::float3x3 inset = metal::float3x3(metal::float3(0.54490817, 0.14044006, 0.08882741), metal::float3(0.37377945, 0.7541096, 0.17887713), metal::float3(0.08138498, 0.10543358, 0.73225)); metal::float3x3 outset = metal::float3x3(metal::float3(1.964551, -0.29932243, -0.16436833), metal::float3(-0.85585845, 1.3264511, -0.23822464), metal::float3(-0.10886711, -0.02708402, 1.4026654)); v = inset * metal::max(c_5, metal::float3(0.0000000002)); metal::float3 _e34 = v; v = (metal::clamp(metal::log2(_e34), metal::float3(-12.473931), metal::float3(4.0260687)) - metal::float3(-12.473931)) / metal::float3(4.0260687 - -12.473931); metal::float3 _e44 = v; metal::float3 _e45 = v; metal::float3 x2_ = _e44 * _e45; metal::float3 x4_ = x2_ * x2_; metal::float3 _e48 = v; metal::float3 _e56 = v; metal::float3 _e64 = v; metal::float3 p_6 = (((((0.021 * _e48) + (4.0111 * x2_)) - ((25.682 * x2_) * _e56)) + (70.359 * x4_)) - ((74.778 * x4_) * _e64)) + ((27.069 * x4_) * x2_); return outset * metal::pow(metal::max(p_6, metal::float3(0.0000000001)), metal::float3(2.4)); } metal::float3 tonemap( metal::float3 c_in, constant LitU& Lit ) { float _e4 = Lit.tone.x; metal::float3 c_23 = metal::max(c_in * _e4, metal::float3(0.0)); float white_1 = Lit.tone.y; uint mode = Lit.counts.z; if (mode == TONEMAP_REINHARD) { return ((white_1 * c_23) + c_23) / ((c_23 * white_1) + metal::float3(white_1)); } if (mode == TONEMAP_FILMIC) { metal::float3 _e27 = filmic_curve(c_23); metal::float3 _e29 = filmic_curve(metal::float3(white_1)); return _e27 / _e29; } if (mode == TONEMAP_ACES) { metal::float3 _e33 = aces_curve(c_23, white_1); return _e33; } if (mode == TONEMAP_AGX) { metal::float3 _e36 = agx_curve(c_23); return _e36; } return c_23; } float emerge_hash( metal::float3 p ) { metal::float3 q = {}; q = metal::fract(p * 0.1031); metal::float3 _e5 = q; metal::float3 _e6 = q; metal::float3 _e7 = q; q = _e5 + metal::float3(metal::dot(_e6, _e7.zyx + metal::float3(31.32))); float _e16 = q.x; float _e18 = q.y; float _e21 = q.z; return metal::fract((_e16 + _e18) * _e21); } float emerge_noise( metal::float3 p_1 ) { metal::float3 i_9 = metal::floor(p_1); metal::float3 f_1 = metal::fract(p_1); metal::float3 u = (f_1 * f_1) * (metal::float3(3.0) - (2.0 * f_1)); float _e10 = emerge_hash(i_9); float _e16 = emerge_hash(i_9 + metal::float3(1.0, 0.0, 0.0)); float _e24 = emerge_hash(i_9 + metal::float3(0.0, 1.0, 0.0)); float _e30 = emerge_hash(i_9 + metal::float3(1.0, 1.0, 0.0)); float a_4 = metal::mix(metal::mix(_e10, _e16, u.x), metal::mix(_e24, _e30, u.x), u.y); float _e40 = emerge_hash(i_9 + metal::float3(0.0, 0.0, 1.0)); float _e46 = emerge_hash(i_9 + metal::float3(1.0, 0.0, 1.0)); float _e54 = emerge_hash(i_9 + metal::float3(0.0, 1.0, 1.0)); float _e60 = emerge_hash(i_9 + metal::float3(1.0, 1.0, 1.0)); float b_2 = metal::mix(metal::mix(_e40, _e46, u.x), metal::mix(_e54, _e60, u.x), u.y); return metal::mix(a_4, b_2, u.z); } float emerge_reveal( metal::float3 world_2, metal::float2 pixel, constant ObjectU& O ) { float n = {}; uint _e6 = O.extra.x; if (SPEC_EMERGE ? ((_e6 & OBJ_EMERGE) == 0u) : true) { return 1.0; } float e_10 = O.normal[0].w; metal::float3 w_1 = world_2 * EMERGE_SCALE; float _e21 = emerge_noise(w_1); float _e29 = emerge_noise((w_1 * 2.7) + metal::float3(17.1)); n = metal::smoothstep(0.2, 0.8, (_e21 * 0.65) + (_e29 * 0.35)); if (pixel.x >= 0.0) { float ign = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(pixel), metal::float2(0.06711056, 0.00583715)))); float _e49 = n; n = metal::clamp(_e49 + ((ign - 0.5) * EMERGE_DITHER), 0.0, 1.0); } float _e60 = n; return ((e_10 * 1.8) - _e60) / EMERGE_EDGE; } metal::float3 emerge_tint( metal::float3 c_6, float r, constant ObjectU& O, constant LitU& Lit ) { bool local_1 = {}; uint _e6 = O.extra.x; if (!(((_e6 & OBJ_EMERGE) == 0u))) { local_1 = r >= 1.0; } else { local_1 = true; } bool _e17 = local_1; if (SPEC_EMERGE ? _e17 : true) { return c_6; } uint _e23 = O.extra.w; metal::float3 _e26 = srgb_to_linear(metal::unpack_unorm4x8_to_float(_e23).xyz); metal::float3 _e27 = tonemap(_e26, Lit); return metal::mix(_e27, c_6, metal::smoothstep(0.0, 1.0, r)); } metal::float3 item_fade( metal::float3 c_7, constant ObjectU& O, constant LitU& Lit ) { uint _e5 = O.extra.x; if (SPEC_FADE ? ((_e5 & OBJ_FADE) == 0u) : true) { return c_7; } metal::float4 f_2 = O.normal[3]; metal::float3 _e17 = tonemap(f_2.xyz, Lit); return metal::mix(c_7, _e17, f_2.w); } metal::float3 sky_dir( metal::float3 d, constant SkyU& Sky ) { metal::float4x4 _e3 = Sky.to_sky; return metal::normalize((_e3 * metal::float4(d, 0.0)).xyz); } metal::float3 sh_irradiance( metal::float3 n_1, constant SkyU& Sky ) { metal::float3 c_8 = {}; metal::float4 _e4 = Sky.sh.inner[0]; c_8 = _e4.xyz * 0.282095; metal::float3 _e9 = c_8; metal::float4 _e13 = Sky.sh.inner[1]; c_8 = _e9 + (_e13.xyz * (0.488603 * n_1.y)); metal::float3 _e20 = c_8; metal::float4 _e24 = Sky.sh.inner[2]; c_8 = _e20 + (_e24.xyz * (0.488603 * n_1.z)); metal::float3 _e31 = c_8; metal::float4 _e35 = Sky.sh.inner[3]; c_8 = _e31 + (_e35.xyz * (0.488603 * n_1.x)); metal::float3 _e42 = c_8; metal::float4 _e46 = Sky.sh.inner[4]; c_8 = _e42 + (_e46.xyz * ((1.092548 * n_1.x) * n_1.y)); metal::float3 _e55 = c_8; metal::float4 _e59 = Sky.sh.inner[5]; c_8 = _e55 + (_e59.xyz * ((1.092548 * n_1.y) * n_1.z)); metal::float3 _e68 = c_8; metal::float4 _e72 = Sky.sh.inner[6]; c_8 = _e68 + (_e72.xyz * (0.315392 * (((3.0 * n_1.z) * n_1.z) - 1.0))); metal::float3 _e85 = c_8; metal::float4 _e89 = Sky.sh.inner[7]; c_8 = _e85 + (_e89.xyz * ((1.092548 * n_1.x) * n_1.z)); metal::float3 _e98 = c_8; metal::float4 _e102 = Sky.sh.inner[8]; c_8 = _e98 + (_e102.xyz * (0.546274 * ((n_1.x * n_1.x) - (n_1.y * n_1.y)))); metal::float3 _e115 = c_8; return metal::max(_e115, metal::float3(0.0)); } metal::float3 radiance( metal::float3 d_1, float roughness, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { uint _e5 = Sky.flags.y; float top_1 = static_cast(metal::max(_e5, 1u) - 1u); metal::float4 _e14 = t_radiance.sample(s_radiance, d_1, metal::level(roughness * top_1)); return _e14.xyz; } metal::float2 env_brdf_approx( float roughness_1, float nv_1 ) { metal::float4 r_4 = (roughness_1 * metal::float4(-1.0, -0.0275, -0.572, 0.022)) + metal::float4(1.0, 0.0425, 1.04, -0.04); float a004_ = (metal::min(r_4.x * r_4.x, metal::exp2(-9.28 * nv_1)) * r_4.x) + r_4.y; return (metal::float2(-1.04, 1.04) * a004_) + r_4.zw; } float pow8_( float x_1 ) { float x2_1 = metal::max(x_1, 0.0) * metal::max(x_1, 0.0); float x4_1 = x2_1 * x2_1; return x4_1 * x4_1; } metal::float3 fog_sun_scatter( metal::float3 fc, metal::float3 dir_1, constant LitU& Lit, constant SkyU& Sky ) { metal::float3 c_9 = {}; uint k_4 = 0u; c_9 = fc; float _e6 = Sky.fog_color.w; if (_e6 > 0.001) { uint _e9 = pool_sun_count(Lit); uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { uint _e51 = k_4; k_4 = _e51 + 1u; } loop_init_1 = false; uint _e12 = k_4; if (_e12 < _e9) { } else { break; } { uint _e14 = k_4; uint _e15 = pool_sun(_e14, Lit); uint _e21 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].info.x; if (_e21 == LIGHT_DIRECTIONAL) { metal::float3 _e24 = c_9; metal::float4 _e29 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].color; metal::float4 _e38 = Lit.lights.inner[metal::min(unsigned(_e15), 63u)].direction; float _e42 = pow8_(metal::dot(dir_1, -(_e38.xyz))); float _e47 = Sky.fog_color.w; c_9 = _e24 + (((_e29.xyz / metal::float3(3.1415927)) * _e42) * _e47); } } } } metal::float3 _e53 = c_9; return _e53; } metal::float3 surface_fog( metal::float3 c_10, metal::float3 world_3, metal::float3 dir_2, constant Globals& G, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { float dist = {}; float amount = {}; metal::float3 fc_1 = {}; bool local_2 = {}; metal::float4x4 _e5 = G.view; float depth = -((_e5 * metal::float4(world_3, 1.0)).z); metal::float4 _e13 = G.camera_pos; dist = metal::distance(world_3, _e13.xyz); float _e20 = Sky.fog_origin.w; if (_e20 > 0.5) { float _e26 = Sky.fog_origin.x; dist = metal::max(depth - _e26, 0.0); } uint _e34 = Sky.flags.x; if ((_e34 & SKY_FOG_DEPTH) != 0u) { float _e42 = Sky.fog_depth.x; float _e46 = Sky.fog_depth.y; float _e47 = dist; float z = metal::smoothstep(_e42, _e46, _e47); float _e54 = Sky.fog_depth.z; float _e63 = Sky.fog.x; amount = ((z > 0.0) ? metal::pow(metal::max(z, 0.000001), _e54) : 0.0) * _e63; } else { float _e65 = dist; float _e70 = Sky.fog.x; amount = 1.0 - metal::exp(metal::min(0.0, -(_e65) * _e70)); } float _e80 = Sky.fog.w; if (metal::abs(_e80) >= 0.0001) { metal::float4 _e86 = Lit.up; float y = metal::dot(world_3, _e86.xyz); float _e89 = amount; float _e93 = Sky.fog.z; float _e98 = Sky.fog.w; amount = metal::max(_e89, 1.0 - metal::exp(metal::min(0.0, (y - _e93) * _e98))); } float _e106 = amount; amount = metal::clamp(_e106, 0.0, 1.0); metal::float4 _e112 = Sky.fog_color; fc_1 = _e112.xyz; uint _e119 = Sky.flags.x; if ((_e119 & SKY_IBL) != 0u) { float _e129 = Sky.fog_depth.w; local_2 = _e129 > 0.0; } else { local_2 = false; } bool _e133 = local_2; if (SPEC_AMBIENT_SKY ? _e133 : false) { float _e139 = Sky.fog_origin.y; float _e144 = Sky.fog_origin.z; float _e148 = Sky.fog_origin.y; float t_3 = metal::clamp((depth - _e139) / metal::max(_e144 - _e148, 0.000001), 0.0, 1.0); uint _e159 = Sky.flags.y; float top_2 = static_cast(metal::max(_e159, 2u) - 1u); float rough = metal::mix(1.0 / top_2, 1.0, 1.0 - t_3); metal::float3 _e171 = fc_1; metal::float3 _e172 = sky_dir(dir_2, Sky); metal::float3 _e173 = radiance(_e172, rough, Sky, t_radiance, s_radiance); float _e177 = Sky.sun.w; float _e182 = Sky.fog_depth.w; fc_1 = metal::mix(_e171, _e173 * _e177, _e182); } metal::float3 _e184 = fc_1; metal::float3 _e185 = fog_sun_scatter(_e184, dir_2, Lit, Sky); fc_1 = _e185; metal::float3 _e186 = fc_1; float _e187 = amount; return metal::mix(c_10, _e186, _e187); } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } metal::float2 fog_chord( uint k_5, metal::float3 o, metal::float3 d_2, float t_end_ray, constant FogU& Fog ) { metal::float2 r_1 = {}; float a = 0.0; float b = 0.0; float c_11 = -1.0; float _e9 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].albedo.w; uint shape = naga_f2u32(_e9); float _e16 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].emission.w; float t_end_1 = metal::min(_e16, t_end_ray); if (shape == FOG_SHAPE_WORLD) { return metal::float2(0.0, t_end_1); } metal::float4 _e26 = Fog.entries.inner[metal::min(unsigned(k_5), 15u)].size; metal::float3 h = _e26.xyz * 0.5; metal::float3 dd = metal::select(d_2, metal::float3(0.000000000001), metal::abs(d_2) < metal::float3(0.000000000001)); metal::float3 sa = (-(h) - o) / dd; metal::float3 sb = (h - o) / dd; metal::float3 s_in = metal::min(sa, sb); metal::float3 s_out = metal::max(sa, sb); r_1 = metal::float2(metal::max(0.0, s_in.y), metal::min(t_end_1, s_out.y)); if (shape == FOG_SHAPE_BOX) { float _e60 = r_1.x; float _e66 = r_1.y; r_1 = metal::float2(metal::max(metal::max(_e60, s_in.x), s_in.z), metal::min(metal::min(_e66, s_out.x), s_out.z)); } else { if (shape == FOG_SHAPE_ELLIPSOID) { a = metal::dot(d_2 / h, d_2 / h); b = metal::dot(o / h, d_2 / h); c_11 = metal::dot(o / h, o / h) - 1.0; } else { float rad_1 = metal::min(h.x, h.z); float k_14 = (shape == FOG_SHAPE_CONE) ? (rad_1 / (2.0 * h.y)) : 0.0; float w_2 = h.y - o.y; a = ((d_2.x * d_2.x) + (d_2.z * d_2.z)) - (((k_14 * k_14) * d_2.y) * d_2.y); b = ((o.x * d_2.x) + (o.z * d_2.z)) + (((k_14 * k_14) * w_2) * d_2.y); c_11 = ((o.x * o.x) + (o.z * o.z)) - ((shape == FOG_SHAPE_CONE) ? (((k_14 * k_14) * w_2) * w_2) : (rad_1 * rad_1)); } } float _e139 = b; float _e140 = b; float _e142 = a; float _e143 = c_11; float disc = (_e139 * _e140) - (_e142 * _e143); float _e146 = a; if (metal::abs(_e146) < 0.000000000001) { float _e150 = b; if (metal::abs(_e150) < 0.000000000001) { float _e156 = r_1.y; float _e157 = c_11; r_1.y = (_e157 > 0.0) ? -1.0 : _e156; } else { float _e162 = b; if (_e162 > 0.0) { float _e167 = r_1.y; float _e168 = c_11; float _e170 = b; r_1.y = metal::min(_e167, -(_e168) / (2.0 * _e170)); } else { float _e177 = r_1.x; float _e178 = c_11; float _e180 = b; r_1.x = metal::max(_e177, -(_e178) / (2.0 * _e180)); } } } else { if (disc < 0.0) { float _e189 = r_1.y; float _e190 = a; r_1.y = (_e190 > 0.0) ? -1.0 : _e189; } else { float _e195 = b; float _e199 = a; float _e201 = b; float _e205 = a; float lo_2 = metal::min((-(_e195) - metal::sqrt(disc)) / _e199, (-(_e201) + metal::sqrt(disc)) / _e205); float _e208 = b; float _e212 = a; float _e214 = b; float _e218 = a; float hi_2 = metal::max((-(_e208) - metal::sqrt(disc)) / _e212, (-(_e214) + metal::sqrt(disc)) / _e218); float _e221 = a; if (_e221 > 0.0) { float _e225 = r_1.x; float _e228 = r_1.y; r_1 = metal::float2(metal::max(_e225, lo_2), metal::min(_e228, hi_2)); } else { float _e232 = r_1.x; float _e234 = r_1.y; if (_e232 < metal::min(_e234, lo_2)) { float _e239 = r_1.y; r_1.y = metal::min(_e239, lo_2); } else { float _e243 = r_1.x; r_1.x = metal::max(_e243, hi_2); } } } } metal::float2 _e245 = r_1; return _e245; } float fog_density( uint k_6, metal::float3 p_2, metal::float3 lp, constant FogU& Fog ) { float rho = {}; float sdf = 0.0; FogEntryU e_11 = Fog.entries.inner[metal::min(unsigned(k_6), 15u)]; metal::float4 _e14 = Fog.up; rho = e_11.material.x * metal::min(metal::exp2(-(e_11.material.y) * (metal::dot(p_2, _e14.xyz) - e_11.material.w)), 1.0); if (e_11.material.z > 0.0) { uint shape_1 = naga_f2u32(e_11.albedo.w); metal::float3 h_1 = e_11.size.xyz * 0.5; float rad_2 = metal::min(h_1.x, h_1.z); if (shape_1 == FOG_SHAPE_ELLIPSOID) { float k0_ = metal::length(lp / h_1); sdf = (k0_ * (k0_ - 1.0)) / metal::max(metal::length(lp / (h_1 * h_1)), 0.000000000001); } else { if (shape_1 == FOG_SHAPE_BOX) { metal::float3 q_3 = metal::abs(lp) - h_1; sdf = metal::length(metal::max(q_3, metal::float3(0.0))) + metal::min(metal::max(q_3.x, metal::max(q_3.y, q_3.z)), 0.0); } else { if (shape_1 == FOG_SHAPE_CYLINDER) { metal::float2 q_4 = metal::float2(metal::length(lp.xz) - rad_2, metal::abs(lp.y) - h_1.y); sdf = metal::min(metal::max(q_4.x, q_4.y), 0.0) + metal::length(metal::max(q_4, metal::float2(0.0))); } else { metal::float2 n_7 = metal::normalize(metal::float2(1.0 / metal::max(0.001, rad_2 * 0.5), 1.0 / metal::max(0.001, h_1.y))); sdf = metal::max(metal::dot(n_7, metal::float2(metal::length(lp.xz), lp.y - h_1.y)), -(h_1.y) - lp.y); } } } float _e116 = rho; float _e117 = sdf; rho = _e116 * metal::pow(metal::clamp((-2.0 * _e117) / e_11.size.w, 0.0, 1.0), e_11.material.z); } float _e130 = rho; return _e130; } float fog_falloff_depth( uint k_7, float a_1, float b_1, float t0_, float t1_, constant FogU& Fog ) { metal::float4 m_1 = Fog.entries.inner[metal::min(unsigned(k_7), 15u)].material; float hf = m_1.y; if ((hf * b_1) == 0.0) { return (m_1.x * (t1_ - t0_)) * metal::min(metal::exp2(-(hf) * a_1), 1.0); } float s_6 = metal::clamp(-(a_1) / b_1, t0_, t1_); float lo_3 = (b_1 > 0.0) ? s_6 : t0_; float hi_3 = (b_1 > 0.0) ? t1_ : s_6; float x_4 = ((hf * metal::abs(b_1)) * (hi_3 - lo_3)) * 0.6931472; float g = (x_4 < 0.01) ? (1.0 - (x_4 * (0.5 - (x_4 * (0.16666667 - (x_4 / 24.0)))))) : ((1.0 - metal::exp(-(x_4))) / x_4); float top_3 = metal::min(metal::exp2(-(hf) * metal::max(a_1 + (b_1 * ((b_1 > 0.0) ? lo_3 : hi_3)), 0.0)), 1.0); return m_1.x * (((t1_ - t0_) - (hi_3 - lo_3)) + ((top_3 * (hi_3 - lo_3)) * g)); } float omni_attenuation( float d_3, float inv_range, float decay ) { float nd = {}; nd = d_3 * inv_range; float _e5 = nd; float _e6 = nd; nd = _e5 * _e6; float _e8 = nd; float _e9 = nd; nd = _e8 * _e9; float _e11 = nd; nd = metal::max(1.0 - _e11, 0.0); float _e16 = nd; float _e17 = nd; nd = _e16 * _e17; float _e19 = nd; return _e19 * metal::pow(metal::max(d_3, 0.0001), -(decay)); } metal::float3 fog_light( uint n_2, metal::float3 p_3, metal::float3 dir_3, constant LitU& Lit, constant FogU& Fog ) { metal::float3 sum = {}; uint k_8 = 0u; metal::float3 l = {}; float atten = {}; metal::float4 _e5 = Fog.ambient; float _e10 = Fog.params.y; sum = _e5.xyz * _e10; float g_1 = Fog.params.x; metal::uint4 lights = Fog.entries.inner[metal::min(unsigned(n_2), 15u)].lights; uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { uint _e138 = k_8; k_8 = _e138 + 1u; } loop_init_2 = false; uint _e24 = k_8; if (_e24 < metal::min(lights.z, MAX_OBJECT_LIGHTS)) { } else { break; } { uint _e31 = k_8; uint _e35 = k_8; uint i_10 = metal::min((((_e31 < 4u) ? lights.x : lights.y) >> ((_e35 & 3u) * 8u)) & 255u, 63u); LightU li = Lit.lights.inner[metal::min(unsigned(i_10), 63u)]; l = -(li.direction.xyz); atten = 1.0; if (li.info.x != LIGHT_DIRECTIONAL) { metal::float3 rel = li.position.xyz - p_3; l = rel / metal::float3(metal::max(metal::length(rel), 0.000001)); float _e72 = omni_attenuation(metal::length(rel), li.position.w, li.direction.w); atten = _e72; if (li.info.x == LIGHT_SPOT) { metal::float3 _e77 = l; float rim = metal::max(0.0001, (1.0 - metal::max(metal::dot(-(_e77), li.direction.xyz), li.spot.x)) / metal::max(1.0 - li.spot.x, 0.000001)); float _e96 = atten; atten = _e96 * (1.0 - metal::pow(rim, li.spot.y)); } } metal::float3 _e108 = l; float q_5 = (1.0 + (g_1 * g_1)) - ((2.0 * g_1) * metal::dot(dir_3, _e108)); metal::float3 _e112 = sum; float _e115 = atten; float _e133 = Fog.light_fog.inner[metal::min(unsigned(i_10 >> 2u), 15u)][metal::min(unsigned(i_10 & 3u), 3u)]; sum = _e112 + (li.color.xyz * (((_e115 * (1.0 - (g_1 * g_1))) / ((12.566371 * q_5) * metal::sqrt(q_5))) * _e133)); } } metal::float3 _e140 = sum; return _e140; } metal::float4 fog_entry( uint k_9, metal::float3 o_1, metal::float3 d_4, metal::float2 ch, constant LitU& Lit, constant FogU& Fog ) { float split = {}; bool local_3 = {}; bool local_4 = {}; metal::float3 q_1 = metal::float3(0.0); float tau = 0.0; uint i = 0u; bool local_5 = {}; bool local_6 = {}; FogEntryU e_12 = Fog.entries.inner[metal::min(unsigned(k_9), 15u)]; metal::float3 lo_4 = (e_12.to_local * metal::float4(o_1, 1.0)).xyz; metal::float3 ld = (e_12.to_local * metal::float4(d_4, 0.0)).xyz; metal::float4 _e20 = Fog.up; float a_5 = metal::dot(o_1, _e20.xyz) - e_12.material.w; metal::float4 _e28 = Fog.up; float b_3 = metal::dot(d_4, _e28.xyz); bool edge = e_12.material.z > 0.0; split = (ch.x + ch.y) * 0.5; if (e_12.material.y > 0.0) { local_3 = (-(a_5) / b_3) > ch.x; } else { local_3 = false; } bool _e52 = local_3; if (_e52) { local_4 = (-(a_5) / b_3) < ch.y; } else { local_4 = false; } bool _e60 = local_4; if (_e60) { split = -(a_5) / b_3; } uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { uint _e160 = i; i = _e160 + 1u; } loop_init_3 = false; uint _e70 = i; if (_e70 < (edge ? 12u : 4u)) { } else { break; } { uint _e75 = i; uint j = _e75 & 3u; if (!((j == 0u))) { local_5 = j == 3u; } else { local_5 = true; } bool _e88 = local_5; float x_5 = _e88 ? FOG_GL_X0_ : FOG_GL_X1_; if (!((j == 0u))) { local_6 = j == 3u; } else { local_6 = true; } bool _e100 = local_6; float w_3 = _e100 ? FOG_GL_W0_ : FOG_GL_W1_; float _e102 = split; float _e106 = split; uint _e108 = i; uint _e112 = i; metal::float2 seg = (_e112 < 4u) ? ch : ((_e108 < 8u) ? metal::float2(ch.x, _e106) : metal::float2(_e102, ch.y)); float half_len = (seg.y - seg.x) * 0.5; float t_4 = ((seg.x + seg.y) * 0.5) + (half_len * ((j < 2u) ? -(x_5) : x_5)); metal::float3 p_7 = o_1 + (d_4 * t_4); float _e136 = fog_density(k_9, p_7, lo_4 + (ld * t_4), Fog); uint _e137 = i; if (_e137 < 4u) { metal::float3 _e140 = q_1; metal::float3 _e143 = fog_light(k_9, p_7, d_4, Lit, Fog); q_1 = _e140 + (((e_12.albedo.xyz * _e143) + e_12.emission.xyz) * ((w_3 * half_len) * metal::clamp(_e136, 0.0, 1.0))); } else { float _e155 = tau; tau = _e155 + ((w_3 * half_len) * _e136); } } } if (!(edge)) { float _e165 = fog_falloff_depth(k_9, a_5, b_3, ch.x, ch.y, Fog); tau = _e165; } metal::float3 _e166 = q_1; float _e167 = tau; return metal::float4(_e166, _e167); } metal::float3 fog_integrate( metal::float3 c_12, metal::float3 o_2, metal::float3 d_5, float t_end, uint list, constant LitU& Lit, constant FogU& Fog ) { type_29 at = {}; type_30 chords = {}; uint m = 0u; uint i_1 = 0u; bool local_7 = {}; type_31 parts = {}; uint i_2 = 0u; uint n_3 = 0u; float avail = {}; uint i_3 = {}; uint i_4 = {}; metal::float3 q_2 = metal::float3(0.0); float tau_1 = 0.0; uint i_5 = 0u; bool all = list >= FOG_LIST_ALL; uint2 loop_bound_4 = uint2(4294967295u); bool loop_init_4 = true; while(true) { if (metal::all(loop_bound_4 == uint2(0u))) { break; } loop_bound_4 -= uint2(loop_bound_4.y == 0u, 1u); if (!loop_init_4) { uint _e72 = i_1; i_1 = _e72 + 1u; } loop_init_4 = false; uint _e13 = i_1; uint _e18 = Fog.counts.x; if (_e13 < (all ? metal::min(_e18, MAX_FRAME_FOG_VOLUMES) : 4u)) { } else { break; } { uint _e23 = i_1; uint byte = (list >> ((_e23 & 3u) * 8u)) & 127u; if (!(all)) { local_7 = byte == 0u; } else { local_7 = false; } bool _e37 = local_7; if (_e37) { break; } uint _e42 = i_1; uint k_15 = all ? _e42 : (metal::min(byte, MAX_FRAME_FOG_VOLUMES) - 1u); metal::float4x4 to_local = Fog.entries.inner[metal::min(unsigned(k_15), 15u)].to_local; metal::float2 _e57 = fog_chord(k_15, (to_local * metal::float4(o_2, 1.0)).xyz, (to_local * metal::float4(d_5, 0.0)).xyz, t_end, Fog); if (_e57.y > _e57.x) { uint _e61 = m; at.inner[metal::min(unsigned(_e61), 3u)] = k_15; uint _e63 = m; chords.inner[metal::min(unsigned(_e63), 3u)] = _e57; uint _e66 = m; m = _e66 + 1u; uint _e68 = m; if (_e68 == MAX_OBJECT_FOG_VOLUMES) { break; } } } } uint2 loop_bound_5 = uint2(4294967295u); bool loop_init_5 = true; while(true) { if (metal::all(loop_bound_5 == uint2(0u))) { break; } loop_bound_5 -= uint2(loop_bound_5.y == 0u, 1u); if (!loop_init_5) { uint _e90 = i_2; i_2 = _e90 + 1u; } loop_init_5 = false; uint _e77 = i_2; uint _e78 = m; if (_e77 < _e78) { } else { break; } { uint _e80 = i_2; uint _e82 = i_2; uint _e84 = at.inner[metal::min(unsigned(_e82), 3u)]; uint _e85 = i_2; metal::float2 _e87 = chords.inner[metal::min(unsigned(_e85), 3u)]; metal::float4 _e88 = fog_entry(_e84, o_2, d_5, _e87, Lit, Fog); parts.inner[metal::min(unsigned(_e80), 3u)] = _e88; } } uint2 loop_bound_6 = uint2(4294967295u); bool loop_init_6 = true; while(true) { if (metal::all(loop_bound_6 == uint2(0u))) { break; } loop_bound_6 -= uint2(loop_bound_6.y == 0u, 1u); if (!loop_init_6) { uint _e221 = n_3; n_3 = _e221 + 1u; } loop_init_6 = false; uint _e94 = n_3; uint _e95 = m; if (_e94 < _e95) { } else { break; } { uint _e97 = n_3; float _e100 = parts.inner[metal::min(unsigned(_e97), 3u)].w; if (_e100 < 0.0) { avail = 0.0; i_3 = 0u; uint2 loop_bound_7 = uint2(4294967295u); bool loop_init_7 = true; while(true) { if (metal::all(loop_bound_7 == uint2(0u))) { break; } loop_bound_7 -= uint2(loop_bound_7.y == 0u, 1u); if (!loop_init_7) { uint _e153 = i_3; i_3 = _e153 + 1u; } loop_init_7 = false; uint _e107 = i_3; uint _e108 = m; if (_e107 < _e108) { } else { break; } { uint _e110 = i_3; float _e113 = chords.inner[metal::min(unsigned(_e110), 3u)].y; uint _e114 = n_3; float _e117 = chords.inner[metal::min(unsigned(_e114), 3u)].y; uint _e119 = i_3; float _e122 = chords.inner[metal::min(unsigned(_e119), 3u)].x; uint _e123 = n_3; float _e126 = chords.inner[metal::min(unsigned(_e123), 3u)].x; uint _e131 = i_3; float _e134 = chords.inner[metal::min(unsigned(_e131), 3u)].y; uint _e135 = i_3; float _e138 = chords.inner[metal::min(unsigned(_e135), 3u)].x; float share = metal::max(metal::min(_e113, _e117) - metal::max(_e122, _e126), 0.0) / metal::max(_e134 - _e138, 0.000001); float _e143 = avail; uint _e144 = i_3; float _e147 = parts.inner[metal::min(unsigned(_e144), 3u)].w; avail = _e143 + (metal::max(_e147, 0.0) * share); } } uint _e155 = n_3; float _e158 = parts.inner[metal::min(unsigned(_e155), 3u)].w; float _e160 = avail; float f_3 = metal::min(-(_e158) / metal::max(_e160, 0.000000000001), 1.0); i_4 = 0u; uint2 loop_bound_8 = uint2(4294967295u); bool loop_init_8 = true; while(true) { if (metal::all(loop_bound_8 == uint2(0u))) { break; } loop_bound_8 -= uint2(loop_bound_8.y == 0u, 1u); if (!loop_init_8) { uint _e218 = i_4; i_4 = _e218 + 1u; } loop_init_8 = false; uint _e168 = i_4; uint _e169 = m; if (_e168 < _e169) { } else { break; } { uint _e171 = i_4; float _e174 = parts.inner[metal::min(unsigned(_e171), 3u)].w; if (_e174 > 0.0) { uint _e177 = i_4; float _e180 = chords.inner[metal::min(unsigned(_e177), 3u)].y; uint _e181 = n_3; float _e184 = chords.inner[metal::min(unsigned(_e181), 3u)].y; uint _e186 = i_4; float _e189 = chords.inner[metal::min(unsigned(_e186), 3u)].x; uint _e190 = n_3; float _e193 = chords.inner[metal::min(unsigned(_e190), 3u)].x; uint _e198 = i_4; float _e201 = chords.inner[metal::min(unsigned(_e198), 3u)].y; uint _e202 = i_4; float _e205 = chords.inner[metal::min(unsigned(_e202), 3u)].x; float share_1 = metal::max(metal::min(_e180, _e184) - metal::max(_e189, _e193), 0.0) / metal::max(_e201 - _e205, 0.000001); uint _e210 = i_4; metal::float4 _e212 = parts.inner[metal::min(unsigned(_e210), 3u)]; parts.inner[metal::min(unsigned(_e210), 3u)] = _e212 * (1.0 - (share_1 * f_3)); } } } } } } uint2 loop_bound_9 = uint2(4294967295u); bool loop_init_9 = true; while(true) { if (metal::all(loop_bound_9 == uint2(0u))) { break; } loop_bound_9 -= uint2(loop_bound_9.y == 0u, 1u); if (!loop_init_9) { uint _e252 = i_5; i_5 = _e252 + 1u; } loop_init_9 = false; uint _e230 = i_5; uint _e231 = m; if (_e230 < _e231) { } else { break; } { uint _e233 = i_5; float _e236 = parts.inner[metal::min(unsigned(_e233), 3u)].w; if (_e236 > 0.0) { metal::float3 _e239 = q_2; uint _e240 = i_5; metal::float4 _e242 = parts.inner[metal::min(unsigned(_e240), 3u)]; q_2 = _e239 + _e242.xyz; float _e245 = tau_1; uint _e246 = i_5; float _e249 = parts.inner[metal::min(unsigned(_e246), 3u)].w; tau_1 = _e245 + _e249; } } } float _e254 = tau_1; float t_5 = metal::exp(-(_e254)); metal::float3 _e258 = q_2; float _e261 = tau_1; return (c_12 * t_5) + (_e258 * ((1.0 - t_5) / metal::max(_e261, 0.00001))); } metal::float3 fog_volumes( metal::float3 c_13, metal::float3 world_4, uint list_1, constant Globals& G, constant LitU& Lit, constant FogU& Fog ) { float _e7 = G.view[0].z; float _e12 = G.view[1].z; float _e17 = G.view[2].z; metal::float3 back = metal::normalize(metal::float3(_e7, _e12, _e17)); metal::float4 _e22 = G.camera_pos; metal::float4x4 _e26 = G.view; float _e36 = G.camera_pos.w; metal::float3 o_7 = (_e36 > 0.5) ? (world_4 - (back * (_e26 * metal::float4(world_4, 1.0)).z)) : _e22.xyz; float len = metal::length(world_4 - o_7); metal::float3 _e47 = fog_integrate(c_13, o_7, (world_4 - o_7) / metal::float3(metal::max(len, 0.000001)), len, list_1, Lit, Fog); return (len > 0.0) ? _e47 : c_13; } float shadow_factor( uint i_6, metal::float3 world_5, metal::float3 n_geo_1, metal::float3 l_1, constant Globals& G, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow ) { uint part = 0u; uint c_14 = 0u; bool local_8 = {}; bool local_9 = {}; bool local_10 = {}; float vis = 0.0; int dy = -1; int dx = {}; uint kind = Lit.lights.inner[metal::min(unsigned(i_6), 63u)].info.x; metal::float4 _e14 = Lit.lights.inner[metal::min(unsigned(i_6), 63u)].position; metal::float3 light_pos = _e14.xyz; uint _e21 = Lit.lights.inner[metal::min(unsigned(i_6), 63u)].info.w; uint slot = metal::min(_e21, 15u); metal::float4 params = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].params; uint first = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.x; uint _e40 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].info.y; uint count = metal::max(_e40, 1u); metal::float4x4 _e45 = G.view; float view_depth = -((_e45 * metal::float4(world_5, 1.0)).z); if (kind == LIGHT_DIRECTIONAL) { float _e60 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade.y; if (view_depth > _e60) { return 1.0; } part = count - 1u; uint2 loop_bound_10 = uint2(4294967295u); bool loop_init_10 = true; while(true) { if (metal::all(loop_bound_10 == uint2(0u))) { break; } loop_bound_10 -= uint2(loop_bound_10.y == 0u, 1u); if (!loop_init_10) { uint _e79 = c_14; c_14 = _e79 + 1u; } loop_init_10 = false; uint _e67 = c_14; if (_e67 < count) { } else { break; } { uint _e73 = c_14; float _e75 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].splits[metal::min(unsigned(_e73), 3u)]; if (view_depth <= _e75) { uint _e77 = c_14; part = _e77; break; } } } } uint _e83 = part; metal::float4 texel = Shadow.tiles.inner[metal::min(unsigned(metal::min(first + metal::min(_e83, count - 1u), 15u)), 15u)].texel; float t_6 = texel.x + (texel.y * metal::distance(world_5, light_pos)); metal::float3 p_8 = (world_5 + (n_geo_1 * ((params.y * metal::max(params.z, 1.0)) * t_6))) + (l_1 * (params.x * t_6)); if (kind == LIGHT_OMNI) { metal::float3 d_10 = p_8 - light_pos; metal::float3 a_6 = metal::abs(d_10); if (a_6.x >= a_6.y) { local_8 = a_6.x >= a_6.z; } else { local_8 = false; } bool _e123 = local_8; if (_e123) { part = (d_10.x >= 0.0) ? 0u : 1u; } else { if (a_6.y >= a_6.z) { part = (d_10.y >= 0.0) ? 2u : 3u; } else { part = (d_10.z >= 0.0) ? 4u : 5u; } } } uint _e145 = part; uint tile = metal::min(first + metal::min(_e145, count - 1u), 15u); metal::float4x4 _e156 = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].view_proj; metal::float4 clip = _e156 * metal::float4(p_8, 1.0); if (clip.w <= 0.0) { return 1.0; } metal::float3 ndc = clip.xyz / metal::float3(clip.w); if (!((metal::abs(ndc.x) > 1.0))) { local_9 = metal::abs(ndc.y) > 1.0; } else { local_9 = true; } bool _e180 = local_9; if (!(_e180)) { local_10 = ndc.z > 1.0; } else { local_10 = true; } bool _e188 = local_10; if (_e188) { return 1.0; } metal::float4 rect = Shadow.tiles.inner[metal::min(unsigned(tile), 15u)].rect; metal::float2 uv_3 = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); metal::float2 auv = rect.xy + (uv_3 * rect.zw); float texel_uv = Shadow.atlas.x; metal::float2 lo_5 = rect.xy + metal::float2(0.5 * texel_uv); metal::float2 hi_4 = (rect.xy + rect.zw) - metal::float2(0.5 * texel_uv); float r_5 = params.z; if (r_5 <= 0.0) { float _e235 = t_shadow.sample_compare(s_shadow, metal::clamp(auv, lo_5, hi_4), ndc.z); vis = _e235; } else { float spread = r_5 * texel_uv; uint2 loop_bound_11 = uint2(4294967295u); bool loop_init_11 = true; while(true) { if (metal::all(loop_bound_11 == uint2(0u))) { break; } loop_bound_11 -= uint2(loop_bound_11.y == 0u, 1u); if (!loop_init_11) { int _e265 = dy; dy = as_type(as_type(_e265) + as_type(1)); } loop_init_11 = false; int _e239 = dy; if (_e239 <= 1) { } else { break; } { dx = -1; uint2 loop_bound_12 = uint2(4294967295u); bool loop_init_12 = true; while(true) { if (metal::all(loop_bound_12 == uint2(0u))) { break; } loop_bound_12 -= uint2(loop_bound_12.y == 0u, 1u); if (!loop_init_12) { int _e262 = dx; dx = as_type(as_type(_e262) + as_type(1)); } loop_init_12 = false; int _e244 = dx; if (_e244 <= 1) { } else { break; } { int _e247 = dx; int _e249 = dy; metal::float2 tap = metal::clamp(auv + (metal::float2(static_cast(_e247), static_cast(_e249)) * spread), lo_5, hi_4); float _e255 = vis; float _e259 = t_shadow.sample_compare(s_shadow, tap, ndc.z); vis = _e255 + _e259; } } } } float _e267 = vis; vis = _e267 / 9.0; } if (kind == LIGHT_DIRECTIONAL) { metal::float4 fade_1 = Shadow.lights.inner[metal::min(unsigned(slot), 15u)].fade; float _e277 = vis; vis = metal::mix(_e277, 1.0, metal::smoothstep(fade_1.x, fade_1.y, view_depth)); } float _e283 = vis; return metal::mix(1.0, _e283, params.w); } metal::float4 gi_diffuse( metal::float3 n_4, bool baked, metal::float3 baked_light ) { if (baked) { return metal::float4(baked_light, 1.0); } return metal::float4(0.0); } metal::float3 probe_face_uv( metal::float3 d_6 ) { float face = {}; float ma = {}; float sc = {}; float tc = {}; bool local_11 = {}; metal::float3 a_7 = metal::abs(d_6); if (a_7.x >= a_7.y) { local_11 = a_7.x >= a_7.z; } else { local_11 = false; } bool _e15 = local_11; if (_e15) { ma = a_7.x; if (d_6.x >= 0.0) { face = 0.0; sc = -(d_6.z); tc = -(d_6.y); } else { face = 1.0; sc = d_6.z; tc = -(d_6.y); } } else { if (a_7.y >= a_7.z) { ma = a_7.y; if (d_6.y >= 0.0) { face = 2.0; sc = d_6.x; tc = d_6.z; } else { face = 3.0; sc = d_6.x; tc = -(d_6.z); } } else { ma = a_7.z; if (d_6.z >= 0.0) { face = 4.0; sc = d_6.x; tc = -(d_6.y); } else { face = 5.0; sc = -(d_6.x); tc = -(d_6.y); } } } float _e56 = face; float _e57 = sc; float _e58 = ma; float _e64 = tc; float _e65 = ma; return metal::float3(_e56, ((_e57 / _e58) + 1.0) * 0.5, ((_e64 / _e65) + 1.0) * 0.5); } metal::float3 probe_texel( uint row, metal::float3 fuv, uint level_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { uint _e6 = Probe.counts.z; float n_8 = static_cast(metal::max(_e6 >> level_1, 1u)); float lo_6 = 0.5 / n_8; float u_1 = metal::clamp(fuv.y, lo_6, 1.0 - lo_6); float v_1 = metal::clamp(fuv.z, lo_6, 1.0 - lo_6); metal::float2 uv_4 = metal::float2((fuv.x + u_1) / 6.0, (static_cast(row) + v_1) / 8.0); metal::float4 _e33 = t_probes.sample(s_probes, uv_4, metal::level(static_cast(level_1))); return _e33.xyz; } metal::float3 probe_sample( uint row_1, metal::float3 d_7, float lod, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { bool local_12 = {}; uint _e6 = Probe.counts.y; uint levels = metal::max(_e6, 1u); float l_4 = metal::clamp(lod, 0.0, static_cast(levels - 1u)); uint m0_ = naga_f2u32(l_4); float t_7 = l_4 - static_cast(m0_); metal::float3 _e17 = probe_face_uv(d_7); metal::float3 _e18 = probe_texel(row_1, _e17, m0_, Probe, t_probes, s_probes); if (!((t_7 <= 0.0))) { local_12 = (m0_ + 1u) >= levels; } else { local_12 = true; } bool _e28 = local_12; if (_e28) { return _e18; } metal::float3 _e34 = probe_texel(row_1, _e17, m0_ + 1u, Probe, t_probes, s_probes); return (_e18 * (1.0 - t_7)) + (_e34 * t_7); } float probe_weight( ProbeEntryU p_4, metal::float3 world_6 ) { metal::float3 l_5 = (p_4.to_local * metal::float4(world_6, 1.0)).xyz; metal::float3 e_13 = p_4.extents.xyz; float d_11 = metal::min(e_13.x - metal::abs(l_5.x), metal::min(e_13.y - metal::abs(l_5.y), e_13.z - metal::abs(l_5.z))); if (d_11 < 0.0) { return 0.0; } if (!((p_4.extents.w > 0.0))) { return 1.0; } return metal::min(d_11 / p_4.extents.w, 1.0); } float probe_exit( float o_3, float d_8, float e_1 ) { if (d_8 > 0.0) { return (e_1 - o_3) / d_8; } if (d_8 < 0.0) { return (-(e_1) - o_3) / d_8; } return 300000000000000000000000000000000000000.0; } metal::float3 probe_lookup( ProbeEntryU p_5, metal::float3 world_7, metal::float3 dir_4 ) { metal::float3 d_12 = (p_5.to_local * metal::float4(dir_4, 0.0)).xyz; if ((p_5.info.x & PROBE_BOX) == 0u) { return d_12; } metal::float3 o_8 = (p_5.to_local * metal::float4(world_7, 1.0)).xyz; metal::float3 e_14 = p_5.extents.xyz; float _e24 = probe_exit(o_8.x, d_12.x, e_14.x); float _e28 = probe_exit(o_8.y, d_12.y, e_14.y); float _e32 = probe_exit(o_8.z, d_12.z, e_14.z); float t_8 = metal::max(metal::min(_e24, metal::min(_e28, _e32)), 0.0); return (o_8 + (d_12 * t_8)) - p_5.offset.xyz; } metal::float4 probe_reflection( metal::float3 world_8, metal::float3 r_2, float roughness_2, uint probes, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc = metal::float3(0.0); float w_sum = 0.0; uint i_7 = 0u; uint _e12 = Probe.counts.x; uint count_1 = metal::min(_e12, MAX_PROBES); uint _e18 = Probe.counts.y; float lod_1 = roughness_2 * static_cast(metal::max(_e18, 1u) - 1u); uint2 loop_bound_13 = uint2(4294967295u); bool loop_init_13 = true; while(true) { if (metal::all(loop_bound_13 == uint2(0u))) { break; } loop_bound_13 -= uint2(loop_bound_13.y == 0u, 1u); if (!loop_init_13) { uint _e57 = i_7; i_7 = _e57 + 1u; } loop_init_13 = false; uint _e27 = i_7; if (_e27 < count_1) { } else { break; } { uint _e31 = i_7; ProbeEntryU p_9 = Probe.probes.inner[metal::min(unsigned(_e31), 7u)]; if (((probes >> p_9.info.w) & 1u) == 0u) { continue; } float _e41 = probe_weight(p_9, world_8); if (_e41 <= 0.0) { continue; } metal::float3 _e44 = acc; metal::float3 _e47 = probe_lookup(p_9, world_8, r_2); metal::float3 _e48 = probe_sample(p_9.info.w, _e47, lod_1, Probe, t_probes, s_probes); acc = _e44 + ((_e48 * p_9.offset.w) * _e41); float _e54 = w_sum; w_sum = _e54 + _e41; } } float _e59 = w_sum; if (_e59 > 1.0) { metal::float3 _e62 = acc; float _e63 = w_sum; acc = _e62 / metal::float3(_e63); w_sum = 1.0; } metal::float3 _e67 = acc; float _e68 = w_sum; return metal::float4(_e67, _e68); } metal::float4 probe_ambient( metal::float3 world_9, metal::float3 n_5, uint probes_1, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 acc_1 = metal::float3(0.0); float w_sum_1 = 0.0; uint i_8 = 0u; bool local_13 = {}; metal::float3 c_15 = {}; uint _e11 = Probe.counts.x; uint count_2 = metal::min(_e11, MAX_PROBES); uint _e17 = Probe.counts.y; uint last = metal::max(_e17, 1u) - 1u; uint2 loop_bound_14 = uint2(4294967295u); bool loop_init_14 = true; while(true) { if (metal::all(loop_bound_14 == uint2(0u))) { break; } loop_bound_14 -= uint2(loop_bound_14.y == 0u, 1u); if (!loop_init_14) { uint _e73 = i_8; i_8 = _e73 + 1u; } loop_init_14 = false; uint _e24 = i_8; if (_e24 < count_2) { } else { break; } { uint _e28 = i_8; ProbeEntryU p_10 = Probe.probes.inner[metal::min(unsigned(_e28), 7u)]; if (!((((probes_1 >> p_10.info.w) & 1u) == 0u))) { local_13 = p_10.info.y == PROBE_AMBIENT_DISABLED; } else { local_13 = true; } bool _e46 = local_13; if (_e46) { continue; } float _e47 = probe_weight(p_10, world_9); if (_e47 <= 0.0) { continue; } c_15 = p_10.ambient.xyz; if (p_10.info.y == PROBE_AMBIENT_ENVIRONMENT) { metal::float3 _e64 = probe_face_uv((p_10.to_local * metal::float4(n_5, 0.0)).xyz); metal::float3 _e65 = probe_texel(p_10.info.w, _e64, last, Probe, t_probes, s_probes); c_15 = _e65; } metal::float3 _e66 = acc_1; metal::float3 _e67 = c_15; acc_1 = _e66 + (_e67 * _e47); float _e70 = w_sum_1; w_sum_1 = _e70 + _e47; } } float _e75 = w_sum_1; if (_e75 > 1.0) { metal::float3 _e78 = acc_1; float _e79 = w_sum_1; acc_1 = _e78 / metal::float3(_e79); w_sum_1 = 1.0; } metal::float3 _e83 = acc_1; float _e84 = w_sum_1; return metal::float4(_e83, _e84); } metal::float4 lit_output( metal::float4 c_16, constant Globals& G, constant LitU& Lit ) { uint _e4 = Lit.counts.y; if ((_e4 & ENV_HDR) != 0u) { return metal::float4(metal::max(c_16.xyz, metal::float3(0.0)), metal::clamp(c_16.w, 0.0, 1.0)); } metal::float4 _e18 = target_color(c_16, G); return _e18; } VsOutExt ext_vs_out( VsOut o_4, metal::float2 uv1_1 ) { VsOutExt e_2 = {}; e_2.clip = o_4.clip; e_2.world = o_4.world; e_2.normal = o_4.normal; e_2.uv = o_4.uv; e_2.flags = o_4.flags; e_2.tangent = o_4.tangent; e_2.weight = o_4.weight; e_2.color = o_4.color; e_2.uv1_ = uv1_1; VsOutExt _e20 = e_2; return _e20; } VsOut ext_base_in( VsOutExt e_3 ) { VsOut o_5 = {}; o_5.clip = e_3.clip; o_5.world = e_3.world; o_5.normal = e_3.normal; o_5.uv = e_3.uv; o_5.flags = e_3.flags; o_5.tangent = e_3.tangent; o_5.weight = e_3.weight; o_5.color = e_3.color; VsOut _e18 = o_5; return _e18; } VsOut surface_vertex( VsIn in_3, constant Globals& G, constant ObjectU& O ) { VsOut out = {}; metal::float4x4 _e3 = O.model; metal::float4 world_12 = _e3 * metal::float4(in_3.pos, 1.0); metal::float4x4 _e12 = G.view_proj; out.clip = _e12 * world_12; out.world = world_12.xyz; metal::float4x4 _e19 = O.normal; out.normal = metal::normalize((_e19 * metal::float4(in_3.normal, 0.0)).xyz); out.uv = in_3.uv; out.flags = in_3.flags; uint _e33 = O.extra.x; float mirror = ((_e33 & OBJ_MIRRORED) != 0u) ? -1.0 : 1.0; metal::float4x4 _e44 = O.model; out.tangent = metal::float4(metal::normalize((_e44 * metal::float4(in_3.tangent.xyz, 0.0)).xyz), in_3.tangent.w * mirror); out.weight = in_3.weight; out.color = metal::float4(1.0); VsOut _e61 = out; return _e61; } metal::float2 ext_uv( uint s, metal::float2 uv0_, metal::float2 uv1_2, constant MaterialU& M ) { metal::float4 r0_ = M.xf.inner[metal::min(unsigned(s * 2u), 39u)]; metal::float4 r1_ = M.xf.inner[metal::min(unsigned((s * 2u) + 1u), 39u)]; metal::float2 uv_5 = (r0_.w > 0.5) ? uv1_2 : uv0_; return metal::float2(metal::dot(r0_.xy, uv_5) + r0_.z, metal::dot(r1_.xy, uv_5) + r1_.z); } ExtSamples sample_ext( VsOutExt in_4, constant MaterialU& M, metal::texture2d t_base, metal::sampler s_mat ) { ExtSamples s_1 = {}; float thick = 1.0; metal::float2 _e2 = tex_uv(in_4.uv); metal::float2 _e4 = tex_uv(in_4.uv1_); metal::float4 _e9 = M.base_color; s_1.base = _e9; uint _e14 = M.flags.x; if (SPEC_TEX_BASE ? ((_e14 & T_BASE) != 0u) : false) { metal::float4 _e22 = s_1.base; metal::float2 _e26 = ext_uv(SLOT_BASE, _e2, _e4, M); metal::float4 _e27 = t_base.sample(s_mat, _e26); metal::float4 _e28 = decoded_base(_e27, M); s_1.base = _e22 * _e28; } s_1.normal = metal::float3(0.0, 0.0, 1.0); float _e39 = M.factors.x; s_1.metallic = _e39; float _e44 = M.factors.y; s_1.roughness = _e44; metal::float4 _e48 = M.emission; s_1.emission = _e48.xyz; s_1.occlusion = 1.0; float _e57 = M.ext.inner[0].w; s_1.specular = _e57; metal::float4 _e62 = M.ext.inner[0]; s_1.specular_color = _e62.xyz; float _e69 = M.ext.inner[1].y; s_1.transmission = _e69; float _e75 = M.ext.inner[1].z; s_1.thickness = _e75; float _e81 = M.ext.inner[3].x; s_1.clearcoat = _e81; float _e87 = M.ext.inner[3].y; s_1.clearcoat_roughness = _e87; s_1.clearcoat_normal = metal::float3(0.0, 0.0, 1.0); s_1.clearcoat_mapped = false; metal::float4 _e99 = M.ext.inner[4]; s_1.sheen_color = _e99.xyz; float _e106 = M.ext.inner[4].w; s_1.sheen_roughness = _e106; float _e112 = M.ext.inner[5].x; s_1.iridescence = _e112; float _e120 = M.ext.inner[5].z; float _e125 = M.ext.inner[5].w; float _e126 = thick; s_1.iridescence_thickness = metal::mix(_e120, _e125, _e126); float _e133 = M.ext.inner[6].x; s_1.anisotropy = _e133; metal::float4 _e138 = M.ext.inner[6]; s_1.anisotropy_dir = _e138.yz; float _e145 = M.ext.inner[7].w; s_1.diffuse_transmission = _e145; metal::float4 _e150 = M.ext.inner[7]; s_1.diffuse_transmission_color = _e150.xyz; ExtSamples _e152 = s_1; return _e152; } bool ext_cut( ExtSamples s_2, constant MaterialU& M ) { bool local_14 = {}; uint _e5 = M.flags.y; if (_e5 == ALPHA_MASK) { float _e15 = M.emission.w; local_14 = s_2.base.w < _e15; } else { local_14 = false; } bool _e18 = local_14; return SPEC_ALPHA_MASK ? _e18 : false; } float pow5_( float x_2 ) { float x2_2 = x_2 * x_2; return (x2_2 * x2_2) * x_2; } metal::float3 f_schlick90_( metal::float3 f0_, metal::float3 f90_, float vh ) { float _e9 = pow5_(metal::clamp(1.0 - vh, 0.0, 1.0)); return f0_ + ((f90_ - f0_) * _e9); } metal::float3 ext_view( metal::float3 world_10, constant Globals& G ) { float _e5 = G.view[0].z; float _e10 = G.view[1].z; float _e15 = G.view[2].z; metal::float3 view_dir = metal::float3(_e5, _e10, _e15); metal::float4 _e19 = G.camera_pos; float _e27 = G.camera_pos.w; return (_e27 > 0.5) ? metal::normalize(view_dir) : metal::normalize(_e19.xyz - world_10); } ExtCtx ext_ctx( VsOutExt in_5, bool front, ExtSamples s_3, bool decals, constant Globals& G, constant ObjectU& O, constant MaterialU& M, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { ExtCtx e_4 = {}; metal::float3 t_1 = {}; DecalSurface surf_1 = {}; metal::float3 n_geo_2 = front ? metal::normalize(in_5.normal) : -(metal::normalize(in_5.normal)); t_1 = in_5.tangent.xyz; metal::float3 _e14 = t_1; metal::float3 _e15 = t_1; t_1 = metal::normalize(_e14 - (n_geo_2 * metal::dot(n_geo_2, _e15))); metal::float3 _e20 = t_1; metal::float3 b_4 = metal::cross(n_geo_2, _e20) * in_5.tangent.w; e_4.n_geo = n_geo_2; e_4.n = n_geo_2; e_4.nc = n_geo_2; if (s_3.clearcoat_mapped) { metal::float3 _e30 = t_1; e_4.nc = metal::normalize(((_e30 * s_3.clearcoat_normal[0]) + (b_4 * s_3.clearcoat_normal[1])) + (n_geo_2 * s_3.clearcoat_normal[2])); } metal::float3 _e55 = e_4.n; surf_1 = DecalSurface {s_3.base.xyz, metal::clamp(s_3.metallic, 0.0, 1.0), metal::clamp(s_3.roughness, 0.045, 1.0), s_3.occlusion, {}, _e55, s_3.emission}; if (SPEC_DECALS ? decals : false) { DecalSurface _e63 = surf_1; DecalSurface _e64 = apply_decals(in_5.world, n_geo_2, _e63, G, O, Decal, t_decals, s_decals); surf_1 = _e64; } metal::float3 _e67 = surf_1.normal; e_4.n = _e67; float _e70 = surf_1.occlusion; e_4.occlusion = _e70; metal::float3 _e73 = surf_1.emission; e_4.emission = _e73; metal::float3 _e76 = ext_view(in_5.world, G); e_4.v = _e76; e_4.world = in_5.world; metal::float3 _e81 = e_4.n; metal::float3 _e83 = e_4.v; e_4.nv = metal::max(metal::dot(_e81, _e83), 0.0001); float _e89 = surf_1.metallic; e_4.metallic = _e89; float _e92 = surf_1.roughness; e_4.roughness = _e92; float _e95 = e_4.roughness; float _e97 = e_4.roughness; e_4.alpha = _e95 * _e97; float _e101 = e_4.alpha; float _e103 = e_4.alpha; e_4.a2_ = _e101 * _e103; metal::float3 _e107 = surf_1.base; e_4.base = _e107; metal::float3 _e110 = e_4.base; float _e112 = e_4.metallic; e_4.diffuse = _e110 * (1.0 - _e112); float _e121 = M.ext.inner[1].x; e_4.ior = metal::max(_e121, 1.0); float _e125 = e_4.ior; float _e129 = e_4.ior; float r_6 = (_e125 - 1.0) / (_e129 + 1.0); float spec_1 = metal::max(s_3.specular, 0.0); metal::float3 dielectric_f0_ = metal::min(metal::float3(r_6 * r_6) * s_3.specular_color, metal::float3(1.0)) * spec_1; metal::float3 _e146 = e_4.base; float _e148 = e_4.metallic; e_4.f0_ = metal::mix(dielectric_f0_, _e146, _e148); float _e155 = e_4.metallic; e_4.f90_ = metal::mix(metal::float3(spec_1), metal::float3(1.0), _e155); e_4.iridescence = metal::clamp(s_3.iridescence, 0.0, 1.0); metal::float3 _e164 = e_4.f0_; e_4.irid_f = _e164; e_4.aniso = metal::clamp(s_3.anisotropy, 0.0, 1.0); metal::float3 _e171 = t_1; e_4.aniso_t = metal::normalize((_e171 * s_3.anisotropy_dir.x) + (b_4 * s_3.anisotropy_dir.y)); metal::float3 _e182 = e_4.aniso_t; e_4.aniso_b = metal::normalize(metal::cross(n_geo_2, _e182)); e_4.clearcoat = metal::clamp(s_3.clearcoat, 0.0, 1.0); e_4.cc_roughness = metal::clamp(s_3.clearcoat_roughness, 0.045, 1.0); float _e196 = e_4.cc_roughness; float _e198 = e_4.cc_roughness; float cca = _e196 * _e198; e_4.cc_a2_ = cca * cca; e_4.sheen = metal::max(s_3.sheen_color, metal::float3(0.0)); e_4.sheen_roughness = metal::clamp(s_3.sheen_roughness, 0.07, 1.0); float _e214 = e_4.sheen_roughness; float _e216 = e_4.sheen_roughness; e_4.sheen_alpha = _e214 * _e216; e_4.dt = metal::clamp(s_3.diffuse_transmission, 0.0, 1.0); e_4.dt_color = metal::max(s_3.diffuse_transmission_color, metal::float3(0.0)); e_4.transmission = metal::clamp(s_3.transmission, 0.0, 1.0); float _e235 = e_4.alpha; float _e237 = e_4.ior; e_4.trans_alpha = metal::max(_e235 * metal::clamp((_e237 * 2.0) - 2.0, 0.0, 1.0), 0.002); metal::float4 _e251 = O.model[0]; metal::float4 _e257 = O.model[1]; metal::float4 _e264 = O.model[2]; float scale = ((metal::length(_e251.xyz) + metal::length(_e257.xyz)) + metal::length(_e264.xyz)) / 3.0; float dist_1 = metal::max(s_3.thickness, 0.0) * scale; e_4.thin = dist_1 <= 0.0; e_4.thickness = dist_1; e_4.frag = in_5.clip.xy; e_4.attenuation = metal::float3(1.0); float _e289 = M.ext.inner[2].w; e_4.dispersion = _e289; ExtCtx _e290 = e_4; return _e290; } metal::float3 ext_fresnel( ExtCtx e_5, float vh_1 ) { metal::float3 _e4 = f_schlick90_(e_5.f0_, e_5.f90_, vh_1); return metal::mix(_e4, e_5.irid_f, e_5.iridescence); } metal::float3 ext_light( ExtCtx e_6, metal::float3 l_2, metal::float3 radiance_1, float spec, bool godot ) { metal::float3 f = metal::float3(0.0); metal::float3 specular = metal::float3(0.0); float dv = {}; metal::float3 diffuse = {}; metal::float3 c_17 = {}; float nl_raw = metal::dot(e_6.n, l_2); float nl_1 = metal::max(nl_raw, 0.0); metal::float3 h_2 = metal::normalize(l_2 + e_6.v); float nh_1 = metal::max(metal::dot(e_6.n, h_2), 0.0); float vh_2 = metal::max(metal::dot(e_6.v, h_2), 0.0); float nv_3 = e_6.nv; if (nl_1 > 0.0) { metal::float3 _e29 = ext_fresnel(e_6, vh_2); f = _e29; { float _e32 = d_ggx(nh_1, e_6.a2_); float _e34 = v_smith(nl_1, nv_3, e_6.a2_); dv = _e32 * _e34; } metal::float3 _e36 = f; float _e37 = dv; specular = ((_e36 * _e37) * nl_1) * (godot ? spec : 1.0); } metal::float3 _e45 = f; diffuse = (godot ? (e_6.diffuse / metal::float3(3.1415927)) : (((metal::float3(1.0) - _e45) * e_6.diffuse) / metal::float3(3.1415927))) * nl_1; metal::float3 _e59 = diffuse; metal::float3 _e60 = specular; metal::float3 base = _e59 + _e60; c_17 = base * radiance_1; metal::float3 _e64 = c_17; return _e64; } metal::float3 ext_irradiance( metal::float3 n_6, bool lit_mode, constant LitU& Lit, constant SkyU& Sky ) { uint _e6 = Sky.flags.x; if (SPEC_AMBIENT_SKY ? ((_e6 & SKY_IBL) != 0u) : false) { float _e16 = Sky.ibl.x; float _e20 = Sky.sun.w; float scale_1 = _e16 * _e20; uint _e25 = Sky.flags.x; if ((_e25 & SKY_AMBIENT_SKY) != 0u) { metal::float4 _e32 = Sky.ambient; metal::float3 _e34 = sky_dir(n_6, Sky); metal::float3 _e35 = sh_irradiance(_e34, Sky); float _e40 = Sky.ambient.w; return metal::mix(_e32.xyz, _e35 * scale_1, _e40); } metal::float4 _e44 = Sky.ambient; return _e44.xyz; } uint _e50 = Lit.counts.y; if (SPEC_AMBIENT_GRADIENT ? ((_e50 & ENV_AMBIENT_SKY) != 0u) : false) { metal::float4 _e59 = Lit.sky_top; metal::float4 _e63 = Lit.sky_horizon; metal::float3 sky_avg = (_e59.xyz + _e63.xyz) * 0.5; metal::float4 _e70 = Lit.ground_horizon; metal::float4 _e74 = Lit.ground_bottom; metal::float3 ground_avg = (_e70.xyz + _e74.xyz) * 0.5; metal::float4 _e81 = Lit.up; float _e95 = Lit.ambient.w; return metal::mix(ground_avg, sky_avg, metal::clamp((metal::dot(n_6, _e81.xyz) * 0.5) + 0.5, 0.0, 1.0)) * _e95; } metal::float4 _e99 = Lit.ambient; return _e99.xyz; } metal::float3 ext_radiance( metal::float3 dir_5, float roughness_3, bool lit_mode_1, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance ) { uint _e7 = Sky.flags.x; if (SPEC_AMBIENT_SKY ? ((_e7 & SKY_IBL) != 0u) : false) { float _e17 = Sky.ibl.x; float _e21 = Sky.sun.w; float scale_2 = _e17 * _e21; uint _e26 = Sky.flags.x; if ((_e26 & SKY_REFLECT_RADIANCE) != 0u) { metal::float3 _e31 = sky_dir(dir_5, Sky); metal::float3 _e32 = radiance(_e31, roughness_3, Sky, t_radiance, s_radiance); return _e32 * scale_2; } uint _e37 = Sky.flags.x; if ((_e37 & SKY_REFLECT_OFF) != 0u) { return metal::float3(0.0); } metal::float4 _e46 = Sky.ambient; return _e46.xyz; } uint _e52 = Lit.counts.y; if (SPEC_AMBIENT_GRADIENT ? ((_e52 & ENV_AMBIENT_SKY) != 0u) : false) { metal::float4 _e61 = Lit.sky_top; metal::float4 _e65 = Lit.sky_horizon; metal::float3 sky_avg_1 = (_e61.xyz + _e65.xyz) * 0.5; metal::float3 _e70 = sky(dir_5, Lit); float _e75 = Lit.ambient.w; return metal::mix(_e70, sky_avg_1, roughness_3) * _e75; } metal::float4 _e79 = Lit.ambient; return _e79.xyz; } metal::float3 ext_probe_radiance( ExtCtx e_7, metal::float3 dir_6, float roughness_4, bool lit_mode_2, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { bool local_15 = {}; metal::float3 _e4 = ext_radiance(dir_6, roughness_4, lit_mode_2, Lit, Sky, t_radiance, s_radiance); if (!(!(lit_mode_2))) { uint _e13 = Probe.counts.x; local_15 = _e13 == 0u; } else { local_15 = true; } bool _e17 = local_15; if (SPEC_PROBES ? _e17 : true) { return _e4; } uint _e24 = O.extra.z; metal::float4 _e25 = probe_reflection(e_7.world, dir_6, roughness_4, _e24, Probe, t_probes, s_probes); return (_e4 * (1.0 - _e25.w)) + _e25.xyz; } metal::float3 ext_env_weight( metal::float3 f0_1, metal::float3 f90_1, float roughness_5, float nv_2, float metallic, bool lit_mode_3, constant SkyU& Sky ) { bool local_16 = {}; if (lit_mode_3) { uint _e12 = Sky.flags.x; local_16 = (_e12 & SKY_IBL) != 0u; } else { local_16 = false; } bool _e18 = local_16; if (SPEC_AMBIENT_SKY ? _e18 : false) { metal::float2 _e21 = env_brdf_approx(roughness_5, nv_2); return (f0_1 * _e21.x) + ((f90_1 * _e21.y) * metal::clamp(50.0 * f0_1.y, metallic, 1.0)); } float _e40 = pow5_(1.0 - nv_2); metal::float3 f_amb = f0_1 + ((metal::max(f90_1 * (1.0 - roughness_5), f0_1) - f0_1) * _e40); return f_amb; } metal::float3 ext_ambient( ExtCtx e_8, bool lit_mode_4, metal::float4 gi, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes ) { metal::float3 diffuse_1 = {}; bool local_17 = {}; bool local_18 = {}; bool local_19 = {}; bool local_20 = {}; metal::float3 r_3 = {}; metal::float3 c_18 = {}; float nv_4 = e_8.nv; metal::float3 _e6 = ext_irradiance(e_8.n, lit_mode_4, Lit, Sky); diffuse_1 = e_8.diffuse * _e6; if (lit_mode_4) { uint _e15 = Sky.flags.x; local_17 = (_e15 & SKY_IBL) == 0u; } else { local_17 = false; } bool _e21 = local_17; if (_e21) { uint _e27 = Lit.counts.y; local_18 = (_e27 & ENV_AMBIENT_SKY) == 0u; } else { local_18 = false; } bool _e33 = local_18; if (SPEC_AMBIENT_FLAT ? _e33 : false) { metal::float4 _e38 = Lit.ambient; diffuse_1 = _e38.xyz * e_8.diffuse; } if (lit_mode_4) { uint _e48 = Probe.counts.x; local_19 = _e48 > 0u; } else { local_19 = false; } bool _e52 = local_19; if (_e52) { local_20 = gi.w <= 0.0; } else { local_20 = false; } bool _e59 = local_20; if (SPEC_PROBES ? _e59 : false) { uint _e67 = O.extra.z; metal::float4 _e68 = probe_ambient(e_8.world, e_8.n, _e67, Probe, t_probes, s_probes); metal::float3 _e69 = diffuse_1; diffuse_1 = (_e69 * (1.0 - _e68.w)) + (e_8.diffuse * _e68.xyz); } if (gi.w > 0.0) { diffuse_1 = e_8.diffuse * gi.xyz; } r_3 = metal::reflect(-(e_8.v), e_8.n); metal::float3 f0_2 = metal::mix(e_8.f0_, e_8.irid_f, e_8.iridescence); metal::float3 f90_2 = metal::mix(e_8.f90_, metal::float3(1.0), e_8.iridescence); metal::float3 _e100 = ext_env_weight(f0_2, f90_2, e_8.roughness, nv_4, e_8.metallic, lit_mode_4, Sky); metal::float3 _e101 = r_3; metal::float3 _e103 = ext_probe_radiance(e_8, _e101, e_8.roughness, lit_mode_4, O, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes); metal::float3 specular_1 = _e103 * _e100; metal::float3 _e105 = diffuse_1; c_18 = _e105 + specular_1; metal::float3 _e108 = c_18; return _e108; } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } metal::float3 ext_shade_with( VsOutExt in_6, bool front_1, ExtSamples s_4, bool lit_mode_5, bool baked_1, metal::float3 baked_light_1, constant Globals& G, constant ObjectU& O, constant MaterialU& M, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { bool local_21 = {}; metal::float3 c_19 = metal::float3(0.0); uint k_10 = 0u; bool local_22 = {}; metal::float3 l_3 = {}; float atten_1 = {}; metal::float3 rad = {}; bool local_23 = {}; if (lit_mode_5) { uint _e12 = O.decals.z; local_21 = _e12 > 0u; } else { local_21 = false; } bool _e16 = local_21; ExtCtx _e19 = ext_ctx(in_6, front_1, s_4, SPEC_DECALS ? _e16 : false, G, O, M, Decal, t_decals, s_decals); uint _e23 = object_light_count(O); uint2 loop_bound_15 = uint2(4294967295u); bool loop_init_15 = true; while(true) { if (metal::all(loop_bound_15 == uint2(0u))) { break; } loop_bound_15 -= uint2(loop_bound_15.y == 0u, 1u); if (!loop_init_15) { uint _e129 = k_10; k_10 = _e129 + 1u; } loop_init_15 = false; uint _e27 = k_10; if (SPEC_LIGHTS ? (_e27 < _e23) : false) { } else { break; } { uint _e31 = k_10; uint _e32 = object_light(_e31, O); LightU li_1 = Lit.lights.inner[metal::min(unsigned(_e32), 63u)]; if (baked_1) { local_22 = li_1.info.z == LIGHT_BAKED_STATIC; } else { local_22 = false; } bool _e44 = local_22; if (_e44) { continue; } uint kind_1 = li_1.info.x; l_3 = metal::float3 {}; atten_1 = 1.0; if (kind_1 == LIGHT_DIRECTIONAL) { l_3 = -(li_1.direction.xyz); } else { metal::float3 rel_1 = li_1.position.xyz - in_6.world; float d_13 = metal::length(rel_1); l_3 = rel_1 / metal::float3(metal::max(d_13, 0.000001)); float _e69 = omni_attenuation(d_13, li_1.position.w, li_1.direction.w); atten_1 = _e69; if (kind_1 == LIGHT_SPOT) { float cone = li_1.spot.x; metal::float3 _e74 = l_3; float scos = metal::max(metal::dot(-(_e74), li_1.direction.xyz), cone); float rim_1 = metal::max(0.0001, (1.0 - scos) / metal::max(1.0 - cone, 0.000001)); float _e89 = atten_1; atten_1 = _e89 * (1.0 - metal::pow(rim_1, li_1.spot.y)); } } float _e96 = atten_1; if (_e96 > 0.0) { float _e101 = atten_1; rad = li_1.color.xyz * _e101; if (SPEC_SHADOWS ? (li_1.info.y == LIGHT_SHADOWED) : false) { float _e113 = atten_1; metal::float3 _e116 = l_3; float _e117 = shadow_factor(_e32, in_6.world, _e19.n_geo, _e116, G, Lit, Shadow, t_shadow, s_shadow); rad = li_1.color.xyz * (_e113 * _e117); } metal::float3 _e120 = c_19; metal::float3 _e121 = l_3; metal::float3 _e122 = rad; metal::float3 _e126 = ext_light(_e19, _e121, _e122, li_1.spot.z, true); c_19 = _e120 + _e126; } } } metal::float4 _e133 = gi_diffuse(_e19.n, baked_1, baked_light_1); metal::float3 _e134 = ext_ambient(_e19, true, _e133, O, Lit, Sky, t_radiance, s_radiance, Probe, t_probes, s_probes); uint _e139 = Lit.counts.y; if ((_e139 & ENV_SSAO) != 0u) { uint _e149 = M.flags.y; local_23 = _e149 != ALPHA_BLEND; } else { local_23 = false; } bool _e153 = local_23; if (SPEC_SSAO ? _e153 : false) { uint clamped_lod_e162 = metal::min(uint(0), t_ao.get_num_mip_levels() - 1); metal::float4 _e162 = t_ao.read(metal::min(metal::uint2(naga_f2i32(metal::floor(in_6.clip.xy))), metal::uint2(t_ao.get_width(clamped_lod_e162), t_ao.get_height(clamped_lod_e162)) - 1), clamped_lod_e162); float ssao = _e162.x; metal::float3 _e164 = c_19; float _e170 = Lit.tone.z; float _e174 = Lit.tone.w; c_19 = _e164 * metal::mix(1.0, metal::min(ssao, _e19.occlusion), _e170 * _e174); metal::float3 _e179 = c_19; c_19 = _e179 + (_e134 * metal::min(_e19.occlusion, ssao)); } else { metal::float3 _e184 = c_19; c_19 = _e184 + (_e134 * _e19.occlusion); } metal::float3 _e188 = c_19; c_19 = _e188 + _e19.emission; metal::float3 _e191 = c_19; return _e191; } metal::float3 ext_shade( VsOutExt in_7, bool front_2, ExtSamples s_5, bool lit_mode_6, constant Globals& G, constant ObjectU& O, constant MaterialU& M, constant LitU& Lit, constant ShadowU& Shadow, metal::depth2d t_shadow, metal::sampler s_shadow, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, metal::texture2d t_ao, constant ProbeU& Probe, metal::texture2d t_probes, metal::sampler s_probes, constant DecalU& Decal, metal::texture2d_array t_decals, metal::sampler s_decals ) { metal::float3 _e7 = ext_shade_with(in_7, front_2, s_5, lit_mode_6, false, metal::float3(0.0), G, O, M, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals); return _e7; } metal::float3 ext_lit_finish( metal::float3 c_in_1, metal::float3 world_11, constant Globals& G, constant ObjectU& O, constant LitU& Lit, constant SkyU& Sky, metal::texturecube t_radiance, metal::sampler s_radiance, constant FogU& Fog ) { metal::float3 c_20 = {}; c_20 = c_in_1; uint _e7 = Sky.flags.x; if (SPEC_FOG ? ((_e7 & SKY_FOG) != 0u) : false) { metal::float3 _e14 = c_20; metal::float3 _e15 = ext_view(world_11, G); metal::float3 _e17 = surface_fog(_e14, world_11, -(_e15), G, Lit, Sky, t_radiance, s_radiance); c_20 = _e17; } uint _e22 = O.decals.w; if (SPEC_FOG_VOLUMES ? (_e22 != 0u) : false) { metal::float3 _e27 = c_20; uint _e31 = O.decals.w; metal::float3 _e32 = fog_volumes(_e27, world_11, _e31, G, Lit, Fog); c_20 = _e32; } metal::float3 _e33 = c_20; metal::float3 _e34 = tonemap(_e33, Lit); return _e34; } struct vs_surface_extInput { metal::float3 pos [[attribute(0)]]; metal::float3 normal [[attribute(1)]]; metal::float2 uv_2 [[attribute(2)]]; uint flags [[attribute(3)]]; metal::float4 tangent [[attribute(4)]]; float weight [[attribute(5)]]; metal::float2 uv1_ [[attribute(10)]]; }; struct vs_surface_extOutput { metal::float4 clip [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; metal::float2 uv1_ [[user(loc7), center_perspective]]; }; vertex vs_surface_extOutput vs_surface_ext( vs_surface_extInput varyings [[stage_in]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] ) { const VsIn in = { varyings.pos, varyings.normal, varyings.uv_2, varyings.flags, {}, varyings.tangent, varyings.weight }; const auto uv1_ = varyings.uv1_; VsOut _e2 = surface_vertex(in, G, O); VsOutExt _e3 = ext_vs_out(_e2, uv1_); const auto _tmp = _e3; return vs_surface_extOutput { _tmp.clip, _tmp.world, _tmp.normal, _tmp.uv, _tmp.flags, _tmp.tangent, _tmp.weight, _tmp.color, _tmp.uv1_ }; } struct fs_surface_extInput { metal::float3 world_12 [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float2 uv_2 [[user(loc2), center_perspective]]; uint flags [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), center_perspective]]; float weight [[user(loc5), center_perspective]]; metal::float4 color [[user(loc6), center_perspective]]; metal::float2 uv1_3 [[user(loc7), center_perspective]]; }; struct fs_surface_extOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_surface_extOutput fs_surface_ext( fs_surface_extInput varyings_1 [[stage_in]] , metal::float4 clip_1 [[position]] , bool facing [[front_facing]] , constant Globals& G [[buffer(0)]] , constant ObjectU& O [[buffer(5)]] , constant MaterialU& M [[buffer(9)]] , metal::texture2d t_base [[texture(4)]] , metal::sampler s_mat [[sampler(2)]] , constant LitU& Lit [[buffer(1)]] , constant ShadowU& Shadow [[buffer(2)]] , metal::depth2d t_shadow [[texture(0)]] , metal::sampler s_shadow [[sampler(0)]] , constant SkyU& Sky [[buffer(3)]] , metal::texturecube t_radiance [[texture(10)]] , metal::sampler s_radiance [[sampler(3)]] , metal::texture2d t_ao [[texture(1)]] , constant ProbeU& Probe [[buffer(4)]] , metal::texture2d t_probes [[texture(13)]] , metal::sampler s_probes [[sampler(6)]] , constant DecalU& Decal [[buffer(7)]] , metal::texture2d_array t_decals [[texture(2)]] , metal::sampler s_decals [[sampler(1)]] , constant FogU& Fog [[buffer(8)]] ) { const VsOutExt in_1 = { clip_1, varyings_1.world_12, varyings_1.normal, varyings_1.uv_2, varyings_1.flags, {}, varyings_1.tangent, varyings_1.weight, {}, varyings_1.color, varyings_1.uv1_3 }; float alpha = 1.0; metal::float3 c = {}; VsOut _e2 = ext_base_in(in_1); bool _e3 = mirrored(_e2, O); bool front_3 = facing != _e3; ExtSamples _e5 = sample_ext(in_1, M, t_base, s_mat); float _e9 = emerge_reveal(in_1.world, in_1.clip.xy, O); if (SPEC_EMERGE ? (_e9 <= 0.0) : false) { metal::discard_fragment(); } bool _e15 = ext_cut(_e5, M); if (_e15) { metal::discard_fragment(); } uint _e22 = G.params.x; bool lit_mode_7 = SPEC_LIT ? (_e22 == SHADE_LIT) : false; { uint _e32 = M.flags.w; if (SPEC_UNLIT ? ((_e32 & MAT_UNLIT) != 0u) : false) { c = _e5.base.xyz; } else { metal::float3 _e41 = ext_shade(in_1, front_3, _e5, lit_mode_7, G, O, M, Lit, Shadow, t_shadow, s_shadow, Sky, t_radiance, s_radiance, t_ao, Probe, t_probes, s_probes, Decal, t_decals, s_decals); c = _e41; } if (SPEC_LIT ? lit_mode_7 : false) { metal::float3 _e45 = c; metal::float3 _e47 = ext_lit_finish(_e45, in_1.world, G, O, Lit, Sky, t_radiance, s_radiance, Fog); c = _e47; } } if (SPEC_LIT ? lit_mode_7 : false) { metal::float3 _e51 = c; metal::float3 _e52 = item_fade(_e51, O, Lit); metal::float3 _e53 = emerge_tint(_e52, _e9, O, Lit); float _e54 = alpha; metal::float4 _e56 = lit_output(metal::float4(_e53, _e54), G, Lit); return fs_surface_extOutput { _e56 }; } metal::float3 _e57 = c; float _e58 = alpha; metal::float4 _e60 = target_color(metal::float4(_e57, _e58), G); return fs_surface_extOutput { _e60 }; }  @Ð Ð/ ,@  P     {Ðþ—4ÌhÜäF‚�SKw;žP•hÛ— REò«Wvs_surface_extmainß%struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const VsOutExt _900 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _929 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _955 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; static float4 gl_Position; static float3 pos; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float2 uv1; static float3 world; static float3 normal_1; static float2 uv_1; static uint flags_1; static float4 tangent_1; static float weight_1; static float4 color; static float2 uv1_1; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float2 uv1 : TEXCOORD10; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal_1 : TEXCOORD1; float2 uv_1 : TEXCOORD2; nointerpolation uint flags_1 : TEXCOORD3; float4 tangent_1 : TEXCOORD4; float weight_1 : TEXCOORD5; float4 color : TEXCOORD6; float2 uv1_1 : TEXCOORD7; float4 gl_Position : SV_Position; }; VsOut surface_vertex(VsIn _in) { VsOut _out = _955; float4 _961 = mul(float4(_in.pos, 1.0f), O_1_m0.model); _out.clip = mul(_961, G_1_m0.view_proj); _out.world = _961.xyz; _out.normal = normalize(mul(float4(_in.normal, 0.0f), O_1_m0.normal).xyz); _out.uv = _in.uv; _out.flags = _in.flags; _out.tangent = float4(normalize(mul(float4(_in.tangent.xyz, 0.0f), O_1_m0.model).xyz), _in.tangent.w * (((O_1_m0.extra.x & 2u) != 0u) ? (-1.0f) : 1.0f)); _out.weight = _in.weight; _out.color = float4(1.0f, 1.0f, 1.0f, 1.0f); return _out; } VsOutExt ext_vs_out(VsOut o, float2 uv1_2) { VsOutExt e = _900; e.clip = o.clip; e.world = o.world; e.normal = o.normal; e.uv = o.uv; e.flags = o.flags; e.tangent = o.tangent; e.weight = o.weight; e.color = o.color; e.uv1 = uv1_2; return e; } void vert_main() { VsIn _1124 = { pos, normal, uv, flags, tangent, weight }; VsOutExt _1164 = ext_vs_out(surface_vertex(_1124), uv1); gl_Position = _1164.clip; world = _1164.world; normal_1 = _1164.normal; uv_1 = _1164.uv; flags_1 = _1164.flags; tangent_1 = _1164.tangent; weight_1 = _1164.weight; color = _1164.color; uv1_1 = _1164.uv1; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { pos = stage_input.pos; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; uv1 = stage_input.uv1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal_1 = normal_1; stage_output.uv_1 = uv_1; stage_output.flags_1 = flags_1; stage_output.tangent_1 = tangent_1; stage_output.weight_1 = weight_1; stage_output.color = color; stage_output.uv1_1 = uv1_1; return stage_output; } fs_surface_extmain:)struct Globals { row_major float4x4 view; row_major float4x4 proj; row_major float4x4 view_proj; float4 camera_pos; float4 viewport; float4 wire_color; float4 select_color; float4 active_color; float4 grid; uint4 params; float4 fparams; }; struct ObjectU { row_major float4x4 model; row_major float4x4 normal; float4 color; uint4 params; uint4 extra; float4 gi[3]; uint4 decals; uint4 lights; }; struct MaterialU { float4 base_color; float4 emission; float4 factors; uint4 flags; float4 uv; float4 xf[40]; float4 ext[8]; }; struct LightU { float4 color; float4 position; float4 direction; float4 spot; uint4 info; }; struct LitU { uint4 counts; float4 ambient; float4 tone; float4 up; float4 sky_top; float4 sky_horizon; float4 ground_horizon; float4 ground_bottom; row_major float4x4 inv_view_proj; uint4 dirs; LightU lights[64]; }; struct ShadowLightU { float4 params; float4 splits; float4 fade; uint4 info; }; struct ShadowTileU { row_major float4x4 view_proj; float4 rect; float4 texel; }; struct ShadowU { float4 atlas; ShadowLightU lights[16]; ShadowTileU tiles[16]; }; struct SunU { float4 direction; float4 color; }; struct SkyU { uint4 flags; row_major float4x4 to_sky; float4 sky_top; float4 sky_horizon; float4 ground_bottom; float4 ground_horizon; float4 sun; float4 ambient; float4 ibl; float4 fog_color; float4 fog; float4 fog_depth; float4 fog_origin; SunU suns[4]; float4 sh[9]; }; struct ProbeEntryU { row_major float4x4 to_local; float4 extents; float4 offset; float4 ambient; uint4 info; }; struct ProbeU { uint4 counts; ProbeEntryU probes[8]; }; struct DecalEntryU { row_major float4x4 to_local; float4 modulate; float4 fades; float4 axis_x; float4 axis_y; float4 axis_z; uint4 layers; uint4 flags; }; struct DecalU { uint4 counts; float4 lod; DecalEntryU entries[64]; }; struct DecalSurface { float3 base; float metallic; float roughness; float occlusion; float3 normal; float3 emission; }; struct VsIn { float3 pos; float3 normal; float2 uv; uint flags; float4 tangent; float weight; }; struct VsOut { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; }; struct InstIn { float4 row0; float4 row1; float4 row2; float4 color; }; struct Samples { float4 base; float3 normal; float4 mr; float3 emission; float occlusion; }; struct FogEntryU { row_major float4x4 to_local; float4 size; float4 material; float4 albedo; float4 emission; uint4 lights; }; struct FogU { uint4 counts; float4 params; float4 ambient; float4 up; float4 light_fog[16]; FogEntryU entries[16]; }; struct SkyOut { float4 clip; float2 ndc; }; struct IdOut { float4 id; }; struct NormalDepthOut { float4 normal_depth; float4 surface; }; struct VsOutExt { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; }; struct ExtSamples { float4 base; float3 normal; float metallic; float roughness; float3 emission; float occlusion; float specular; float3 specular_color; float transmission; float thickness; float clearcoat; float clearcoat_roughness; float3 clearcoat_normal; bool clearcoat_mapped; float3 sheen_color; float sheen_roughness; float iridescence; float iridescence_thickness; float anisotropy; float2 anisotropy_dir; float diffuse_transmission; float3 diffuse_transmission_color; }; struct ExtCtx { float3 n; float3 n_geo; float3 nc; float3 v; float3 world; float nv; float3 base; float3 diffuse; float metallic; float roughness; float alpha; float a2; float3 f0; float3 f90; float iridescence; float3 irid_f; float aniso; float3 aniso_t; float3 aniso_b; float clearcoat; float cc_roughness; float cc_a2; float3 sheen; float sheen_alpha; float sheen_roughness; float dt; float3 dt_color; float transmission; float trans_alpha; float ior; float3 attenuation; bool thin; float thickness; float2 frag; float dispersion; float occlusion; float3 emission; }; struct VsOutLm { float4 clip; float3 world; float3 normal; float2 uv; uint flags; float4 tangent; float weight; float4 color; float2 uv1; float2 uv_lm; }; struct SkinU { float4 rows[765]; }; struct SkinIn { uint4 joints; float4 weights; }; struct SkinRows { float4 r0; float4 r1; float4 r2; }; static const float3 LIGHT_COUNT_COLORS[10] = { float3(0.3529410064220428466796875f, 0.3529410064220428466796875f, 0.3529410064220428466796875f), float3(0.1686269938945770263671875f, 0.24705900251865386962890625f, 0.60000002384185791015625f), float3(0.129411995410919189453125f, 0.4000000059604644775390625f, 0.67451000213623046875f), float3(0.10196100175380706787109375f, 0.623529016971588134765625f, 0.721569001674652099609375f), float3(0.121569000184535980224609375f, 0.631372988224029541015625f, 0.529411971569061279296875f), float3(0.301961004734039306640625f, 0.73333299160003662109375f, 0.3529410064220428466796875f), float3(0.6509799957275390625f, 0.8313729763031005859375f, 0.2274509966373443603515625f), float3(0.94902002811431884765625f, 0.784313976764678955078125f, 0.0588239990174770355224609375f), float3(0.94902002811431884765625f, 0.556863009929656982421875f, 0.0588239990174770355224609375f), float3(0.878431022167205810546875f, 0.129411995410919189453125f, 0.541176021099090576171875f) }; static const DecalSurface _388 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const uint _2324[4] = { 0u, 0u, 0u, 0u }; static const float2 _2327[4] = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f) }; static const float4 _2334[4] = { float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOutExt _3523 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static const VsOut _3549 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const VsOut _3575 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), 0u, float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; static const ExtSamples _3663 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), false, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float2(0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f) }; static const ExtCtx _3837 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), false, 0.0f, float2(0.0f, 0.0f), 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f) }; static const DecalSurface _3841 = { float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer G : register(b0) { Globals G_1_m0 : packoffset(c0); }; cbuffer O : register(b5) { ObjectU O_1_m0 : packoffset(c0); }; cbuffer M : register(b9) { MaterialU M_1_m0 : packoffset(c0); }; cbuffer Lit : register(b1) { LitU Lit_1_m0 : packoffset(c0); }; cbuffer Shadow : register(b2) { ShadowU Shadow_1_m0 : packoffset(c0); }; cbuffer Sky : register(b3) { SkyU Sky_1_m0 : packoffset(c0); }; cbuffer Probe : register(b4) { ProbeU Probe_1_m0 : packoffset(c0); }; cbuffer Decal : register(b7) { DecalU Decal_1_m0 : packoffset(c0); }; cbuffer Fog : register(b8) { FogU Fog_1_m0 : packoffset(c0); }; Texture2D t_base : register(t4); SamplerState s_mat : register(s2); Texture2D t_shadow : register(t0); SamplerComparisonState s_shadow : register(s0); TextureCube t_radiance : register(t10); SamplerState s_radiance : register(s3); Texture2D t_ao : register(t1); Texture2D t_probes : register(t13); SamplerState s_probes : register(s6); Texture2DArray t_decals : register(t2); SamplerState s_decals : register(s1); static float4 gl_FragCoord; static bool gl_FrontFacing; static float3 world; static float3 normal; static float2 uv; static uint flags; static float4 tangent; static float weight; static float4 color; static float2 uv1; static float4 _4826; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float2 uv : TEXCOORD2; nointerpolation uint flags : TEXCOORD3; float4 tangent : TEXCOORD4; float weight : TEXCOORD5; float4 color : TEXCOORD6; float2 uv1 : TEXCOORD7; float4 gl_FragCoord : SV_Position; bool gl_FrontFacing : SV_IsFrontFace; }; struct SPIRV_Cross_Output { float4 _4826 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } uint spvPackUnorm4x8(float4 value) { uint4 Packed = uint4(round(saturate(value) * 255.0)); return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); } float4 spvUnpackUnorm4x8(uint value) { uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); return float4(Packed) / 255.0; } VsOut ext_base_in(VsOutExt e) { VsOut o = _3549; o.clip = e.clip; o.world = e.world; o.normal = e.normal; o.uv = e.uv; o.flags = e.flags; o.tangent = e.tangent; o.weight = e.weight; o.color = e.color; return o; } bool mirrored(VsOut _in) { return ((O_1_m0.extra.x & 2u) != 0u) != ((_in.flags & 128u) != 0u); } float2 tex_uv(float2 uv_1) { return float2(uv_1.x, 1.0f - uv_1.y); } float2 ext_uv(uint s, float2 uv0, float2 uv1_1) { uint _3633 = min((s * 2u), 39u); uint _3638 = min(((s * 2u) + 1u), 39u); bool _3642 = M_1_m0.xf[_3633].w > 0.5f; bool2 _3644 = bool2(_3642, _3642); float2 _3643 = float2(_3644.x ? uv1_1.x : uv0.x, _3644.y ? uv1_1.y : uv0.y); return float2(dot(M_1_m0.xf[_3633].xy, _3643) + M_1_m0.xf[_3633].z, dot(M_1_m0.xf[_3638].xy, _3643) + M_1_m0.xf[_3638].z); } float3 srgb_to_linear(float3 c) { float3 _198 = c / float3(12.9200000762939453125f, 12.9200000762939453125f, 12.9200000762939453125f); float3 _201 = pow((c + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) / float3(1.05499994754791259765625f, 1.05499994754791259765625f, 1.05499994754791259765625f), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _203 = bool3(c.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, c.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, c.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_203.x ? _198.x : _201.x, _203.y ? _198.y : _201.y, _203.z ? _198.z : _201.z); } float4 decoded_base(float4 t) { if ((M_1_m0.flags.w & 32u) != 0u) { return float4(srgb_to_linear(t.xyz), t.w); } return t; } ExtSamples sample_ext(VsOutExt _in) { ExtSamples s = _3663; float thick = 1.0f; s.base = M_1_m0.base_color; if (true ? ((M_1_m0.flags.x & 1u) != 0u) : false) { s.base *= decoded_base(t_base.Sample(s_mat, ext_uv(0u, tex_uv(_in.uv), tex_uv(_in.uv1)))); } s.normal = float3(0.0f, 0.0f, 1.0f); s.metallic = M_1_m0.factors.x; s.roughness = M_1_m0.factors.y; s.emission = M_1_m0.emission.xyz; s.occlusion = 1.0f; s.specular = M_1_m0.ext[0u].w; s.specular_color = M_1_m0.ext[0u].xyz; s.transmission = M_1_m0.ext[1u].y; s.thickness = M_1_m0.ext[1u].z; s.clearcoat = M_1_m0.ext[3u].x; s.clearcoat_roughness = M_1_m0.ext[3u].y; s.clearcoat_normal = float3(0.0f, 0.0f, 1.0f); s.clearcoat_mapped = false; s.sheen_color = M_1_m0.ext[4u].xyz; s.sheen_roughness = M_1_m0.ext[4u].w; s.iridescence = M_1_m0.ext[5u].x; s.iridescence_thickness = lerp(M_1_m0.ext[5u].z, M_1_m0.ext[5u].w, thick); s.anisotropy = M_1_m0.ext[6u].x; s.anisotropy_dir = M_1_m0.ext[6u].yz; s.diffuse_transmission = M_1_m0.ext[7u].w; s.diffuse_transmission_color = M_1_m0.ext[7u].xyz; return s; } float emerge_hash(float3 p) { float3 q = float3(0.0f, 0.0f, 0.0f); q = frac(p * 0.103100001811981201171875f); float _963 = dot(q, q.zyx + float3(31.31999969482421875f, 31.31999969482421875f, 31.31999969482421875f)); q += float3(_963, _963, _963); return frac((q.x + q.y) * q.z); } float emerge_noise(float3 p) { float3 _988 = floor(p); float3 _989 = frac(p); float3 _993 = (_989 * _989) * (float3(3.0f, 3.0f, 3.0f) - (_989 * 2.0f)); return lerp(lerp(lerp(emerge_hash(_988), emerge_hash(_988 + float3(1.0f, 0.0f, 0.0f)), _993.x), lerp(emerge_hash(_988 + float3(0.0f, 1.0f, 0.0f)), emerge_hash(_988 + float3(1.0f, 1.0f, 0.0f)), _993.x), _993.y), lerp(lerp(emerge_hash(_988 + float3(0.0f, 0.0f, 1.0f)), emerge_hash(_988 + float3(1.0f, 0.0f, 1.0f)), _993.x), lerp(emerge_hash(_988 + float3(0.0f, 1.0f, 1.0f)), emerge_hash(_988 + float3(1.0f, 1.0f, 1.0f)), _993.x), _993.y), _993.z); } float emerge_reveal(float3 world_1, float2 pixel) { float n = 0.0f; if (true ? ((O_1_m0.extra.x & 32u) == 0u) : true) { return 1.0f; } float3 _1051 = world_1 * 1.2999999523162841796875f; n = smoothstep(0.20000000298023223876953125f, 0.800000011920928955078125f, (emerge_noise(_1051) * 0.64999997615814208984375f) + (emerge_noise((_1051 * 2.7000000476837158203125f) + float3(17.1000003814697265625f, 17.1000003814697265625f, 17.1000003814697265625f)) * 0.3499999940395355224609375f)); if (pixel.x >= 0.0f) { n = clamp(n + ((frac(52.98291778564453125f * frac(dot(floor(pixel), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))) - 0.5f) * 0.119999997317790985107421875f), 0.0f, 1.0f); } return ((O_1_m0.normal[0u].w * 1.7999999523162841796875f) - n) / 0.800000011920928955078125f; } bool ext_cut(ExtSamples s) { bool _3761 = false; if (M_1_m0.flags.y == 1u) { _3761 = s.base.w < M_1_m0.emission.w; } else { _3761 = false; } return false ? _3761 : false; } uint decal_count() { return min(O_1_m0.decals.z, 8u); } uint decal_entry(uint k) { return (((k < 4u) ? O_1_m0.decals.x : O_1_m0.decals.y) >> ((k & 3u) * 8u)) & 255u; } float decal_level(DecalEntryU e, float3 world_1) { return clamp(log2(max((Decal_1_m0.lod.x * ((Decal_1_m0.lod.y > 0.5f) ? 1.0f : length(world_1 - G_1_m0.camera_pos.xyz))) / max(e.axis_y.w, 9.9999999747524270787835121154785e-07f), 1.0f)), 0.0f, float(max(Decal_1_m0.counts.y, 1u) - 1u)); } float4 decal_texel(uint layer, float2 uv_1, float level, bool live) { return t_decals.SampleLevel(s_decals, float3(uv_1, float(int(layer - 1u))), live ? 0.0f : level); } DecalSurface apply_decals(float3 world_1, float3 n_geo, DecalSurface surf) { uint k = 0u; float fade = 0.0f; DecalSurface out_s = _388; bool _391 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); out_s = surf; uint _398 = decal_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _398)) { break; } uint _428 = decal_entry(k); uint _431 = min(min(_428, 63u), 63u); float3 _437 = mul(float4(world_1, 1.0f), Decal_1_m0.entries[_431].to_local).xyz; if (all(bool3(_437.x >= float3(0.0f, -1.0f, 0.0f).x, _437.y >= float3(0.0f, -1.0f, 0.0f).y, _437.z >= float3(0.0f, -1.0f, 0.0f).z))) { _391 = all(bool3(_437.x <= float3(1.0f, 1.0f, 1.0f).x, _437.y <= float3(1.0f, 1.0f, 1.0f).y, _437.z <= float3(1.0f, 1.0f, 1.0f).z)); } else { _391 = false; } if (!_391) { uint _597 = k; k = _597 + 1u; continue; } fade = pow(1.0f - abs(_437.y), (_437.y > 0.0f) ? Decal_1_m0.entries[_431].fades.x : Decal_1_m0.entries[_431].fades.y); if (Decal_1_m0.entries[_431].fades.z > 0.0f) { fade *= smoothstep(Decal_1_m0.entries[_431].fades.z, 1.0f, (dot(n_geo, Decal_1_m0.entries[_431].axis_y.xyz) * 0.5f) + 0.5f); } float2 _475 = _437.xz; float _476 = decal_level(Decal_1_m0.entries[_431], world_1); if (Decal_1_m0.entries[_431].layers.x > 0u) { float4 _488 = decal_texel(Decal_1_m0.entries[_431].layers.x, _475, _476, (Decal_1_m0.entries[_431].flags.x & 1u) != 0u); float4 _494 = float4(srgb_to_linear(_488.xyz), _488.w) * Decal_1_m0.entries[_431].modulate; float _497 = _494.w * fade; float _504 = _497 * Decal_1_m0.entries[_431].fades.w; out_s.base = lerp(out_s.base, _494.xyz, float3(_504, _504, _504)); if (Decal_1_m0.entries[_431].layers.y > 0u) { float4 _517 = decal_texel(Decal_1_m0.entries[_431].layers.y, _475, _476, (Decal_1_m0.entries[_431].flags.x & 2u) != 0u); float _520 = (_517.x * 2.0f) - 1.0f; float _523 = 1.0f - (_517.y * 2.0f); out_s.normal = normalize(lerp(out_s.normal, normalize(((Decal_1_m0.entries[_431].axis_x.xyz * _520) + (Decal_1_m0.entries[_431].axis_y.xyz * sqrt(max(0.0f, (1.0f - (_520 * _520)) - (_523 * _523))))) + (Decal_1_m0.entries[_431].axis_z.xyz * _523)), float3(_497, _497, _497))); } if (Decal_1_m0.entries[_431].layers.z > 0u) { float4 _557 = decal_texel(Decal_1_m0.entries[_431].layers.z, _475, _476, (Decal_1_m0.entries[_431].flags.x & 4u) != 0u); out_s.occlusion = lerp(out_s.occlusion, _557.x, _497); out_s.roughness = lerp(out_s.roughness, _557.y, _497); out_s.metallic = lerp(out_s.metallic, _557.z, _497); } } if (Decal_1_m0.entries[_431].layers.w > 0u) { out_s.emission += (((srgb_to_linear(decal_texel(Decal_1_m0.entries[_431].layers.w, _475, _476, (Decal_1_m0.entries[_431].flags.x & 8u) != 0u).xyz) * Decal_1_m0.entries[_431].modulate.xyz) * Decal_1_m0.entries[_431].axis_x.w) * fade); } uint _597 = k; k = _597 + 1u; continue; } out_s.roughness = clamp(out_s.roughness, 0.04500000178813934326171875f, 1.0f); out_s.metallic = clamp(out_s.metallic, 0.0f, 1.0f); return out_s; } float3 ext_view(float3 world_1) { float3 _3813 = normalize(G_1_m0.camera_pos.xyz - world_1); float3 _3814 = normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)); bool _3817 = G_1_m0.camera_pos.w > 0.5f; bool3 _3819 = bool3(_3817, _3817, _3817); return float3(_3819.x ? _3814.x : _3813.x, _3819.y ? _3814.y : _3813.y, _3819.z ? _3814.z : _3813.z); } ExtCtx ext_ctx(VsOutExt _in, bool front, ExtSamples s, bool decals) { ExtCtx e = _3837; float3 t = float3(0.0f, 0.0f, 0.0f); DecalSurface surf = _3841; float3 _3845 = -normalize(_in.normal); float3 _3847 = normalize(_in.normal); bool3 _3849 = bool3(front, front, front); float3 _3848 = float3(_3849.x ? _3847.x : _3845.x, _3849.y ? _3847.y : _3845.y, _3849.z ? _3847.z : _3845.z); t = _in.tangent.xyz; t = normalize(t - (_3848 * dot(_3848, t))); float3 _3862 = cross(_3848, t) * _in.tangent.w; e.n_geo = _3848; e.n = _3848; e.nc = _3848; if (s.clearcoat_mapped) { e.nc = normalize(((t * s.clearcoat_normal.x) + (_3862 * s.clearcoat_normal.y)) + (_3848 * s.clearcoat_normal.z)); } DecalSurface _3893 = { s.base.xyz, clamp(s.metallic, 0.0f, 1.0f), clamp(s.roughness, 0.04500000178813934326171875f, 1.0f), s.occlusion, e.n, s.emission }; surf = _3893; if (true ? decals : false) { DecalSurface _3899 = surf; surf = apply_decals(_in.world, _3848, _3899); } e.n = surf.normal; e.occlusion = surf.occlusion; e.emission = surf.emission; e.v = ext_view(_in.world); e.world = _in.world; e.nv = max(dot(e.n, e.v), 9.9999997473787516355514526367188e-05f); e.metallic = surf.metallic; e.roughness = surf.roughness; e.alpha = e.roughness * e.roughness; e.a2 = e.alpha * e.alpha; e.base = surf.base; e.diffuse = e.base * (1.0f - e.metallic); e.ior = max(M_1_m0.ext[1u].x, 1.0f); float _3964 = (e.ior - 1.0f) / (e.ior + 1.0f); float _3966 = max(s.specular, 0.0f); float _3967 = _3964 * _3964; e.f0 = lerp(min(float3(_3967, _3967, _3967) * s.specular_color, float3(1.0f, 1.0f, 1.0f)) * _3966, e.base, float3(e.metallic, e.metallic, e.metallic)); e.f90 = lerp(float3(_3966, _3966, _3966), float3(1.0f, 1.0f, 1.0f), float3(e.metallic, e.metallic, e.metallic)); e.iridescence = clamp(s.iridescence, 0.0f, 1.0f); e.irid_f = e.f0; e.aniso = clamp(s.anisotropy, 0.0f, 1.0f); e.aniso_t = normalize((t * s.anisotropy_dir.x) + (_3862 * s.anisotropy_dir.y)); e.aniso_b = normalize(cross(_3848, e.aniso_t)); e.clearcoat = clamp(s.clearcoat, 0.0f, 1.0f); e.cc_roughness = clamp(s.clearcoat_roughness, 0.04500000178813934326171875f, 1.0f); float _4020 = e.cc_roughness * e.cc_roughness; e.cc_a2 = _4020 * _4020; e.sheen = max(s.sheen_color, float3(0.0f, 0.0f, 0.0f)); e.sheen_roughness = clamp(s.sheen_roughness, 0.070000000298023223876953125f, 1.0f); e.sheen_alpha = e.sheen_roughness * e.sheen_roughness; e.dt = clamp(s.diffuse_transmission, 0.0f, 1.0f); e.dt_color = max(s.diffuse_transmission_color, float3(0.0f, 0.0f, 0.0f)); e.transmission = clamp(s.transmission, 0.0f, 1.0f); e.trans_alpha = max(e.alpha * clamp((e.ior * 2.0f) - 2.0f, 0.0f, 1.0f), 0.00200000009499490261077880859375f); float _4078 = max(s.thickness, 0.0f) * (((length(O_1_m0.model[0u].xyz) + length(O_1_m0.model[1u].xyz)) + length(O_1_m0.model[2u].xyz)) / 3.0f); e.thin = _4078 <= 0.0f; e.thickness = _4078; e.frag = _in.clip.xy; e.attenuation = float3(1.0f, 1.0f, 1.0f); e.dispersion = M_1_m0.ext[2u].w; return e; } uint object_light_count() { return min(O_1_m0.lights.z, 8u); } uint object_light(uint k) { return min(((((k < 4u) ? O_1_m0.lights.x : O_1_m0.lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float omni_attenuation(float d, float inv_range, float decay) { float nd = 0.0f; nd = d * inv_range; nd *= nd; nd *= nd; nd = max(1.0f - nd, 0.0f); nd *= nd; return nd * pow(max(d, 9.9999997473787516355514526367188e-05f), -decay); } float shadow_factor(uint i, float3 world_1, float3 n_geo, float3 l) { int dy = -1; bool _2748 = false; uint part = 0u; bool _2750 = false; uint c = 0u; float vis = 0.0f; bool _2746 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint _2758 = min(i, 63u); uint _2768 = min(Lit_1_m0.lights[min(i, 63u)].info.w, 15u); uint _2771 = min(_2768, 15u); uint _2774 = min(_2768, 15u); uint _2780 = max(Shadow_1_m0.lights[min(_2768, 15u)].info.y, 1u); float _2786 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; if (Lit_1_m0.lights[_2758].info.x == 0u) { if (_2786 > Shadow_1_m0.lights[min(_2768, 15u)].fade.y) { return 1.0f; } part = _2780 - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(c < _2780)) { break; } if (_2786 <= Shadow_1_m0.lights[min(_2768, 15u)].splits[min(c, 3u)]) { part = c; break; } c++; continue; } } uint _2830 = part; uint _2836 = min(min((Shadow_1_m0.lights[_2774].info.x + min(_2830, (_2780 - 1u))), 15u), 15u); float _2843 = Shadow_1_m0.tiles[_2836].texel.x + (Shadow_1_m0.tiles[_2836].texel.y * distance(world_1, Lit_1_m0.lights[min(i, 63u)].position.xyz)); float3 _2854 = (world_1 + (n_geo * ((Shadow_1_m0.lights[_2771].params.y * max(Shadow_1_m0.lights[_2771].params.z, 1.0f)) * _2843))) + (l * (Shadow_1_m0.lights[_2771].params.x * _2843)); if (Lit_1_m0.lights[_2758].info.x == 1u) { float3 _2858 = _2854 - Lit_1_m0.lights[min(i, 63u)].position.xyz; float3 _2859 = abs(_2858); if (_2859.x >= _2859.y) { _2746 = _2859.x >= _2859.z; } else { _2746 = false; } if (_2746) { part = (_2858.x >= 0.0f) ? 0u : 1u; } else { if (_2859.y >= _2859.z) { part = (_2858.y >= 0.0f) ? 2u : 3u; } else { part = (_2858.z >= 0.0f) ? 4u : 5u; } } } uint _2892 = min((Shadow_1_m0.lights[_2774].info.x + min(part, (_2780 - 1u))), 15u); float4 _2897 = mul(float4(_2854, 1.0f), Shadow_1_m0.tiles[min(_2892, 15u)].view_proj); if (_2897.w <= 0.0f) { return 1.0f; } float3 _2905 = _2897.xyz / float3(_2897.www); if (!(abs(_2905.x) > 1.0f)) { _2748 = abs(_2905.y) > 1.0f; } else { _2748 = true; } if (!_2748) { _2750 = _2905.z > 1.0f; } else { _2750 = true; } if (_2750) { return 1.0f; } uint _2926 = min(_2892, 15u); float2 _2939 = Shadow_1_m0.tiles[_2926].rect.xy + (float2((_2905.x * 0.5f) + 0.5f, 0.5f - (_2905.y * 0.5f)) * Shadow_1_m0.tiles[_2926].rect.zw); float _2943 = 0.5f * Shadow_1_m0.atlas.x; float2 _2945 = Shadow_1_m0.tiles[_2926].rect.xy + float2(_2943, _2943); float _2949 = 0.5f * Shadow_1_m0.atlas.x; float2 _2951 = (Shadow_1_m0.tiles[_2926].rect.xy + Shadow_1_m0.tiles[_2926].rect.zw) - float2(_2949, _2949); if (Shadow_1_m0.lights[_2771].params.z <= 0.0f) { vis = t_shadow.SampleCmpLevelZero(s_shadow, clamp(_2939, _2945, _2951), _2905.z); } else { float _2962 = Shadow_1_m0.lights[_2771].params.z * Shadow_1_m0.atlas.x; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(dy <= 1)) { break; } int dx = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(dx <= 1)) { break; } vis += t_shadow.SampleCmpLevelZero(s_shadow, clamp(_2939 + (float2(float(dx), float(dy)) * _2962), _2945, _2951), _2905.z); dx++; continue; } dy++; continue; } vis /= 9.0f; } if (Lit_1_m0.lights[_2758].info.x == 0u) { uint _3027 = min(_2768, 15u); vis = lerp(vis, 1.0f, smoothstep(Shadow_1_m0.lights[_3027].fade.x, Shadow_1_m0.lights[_3027].fade.y, _2786)); } return lerp(1.0f, vis, Shadow_1_m0.lights[_2771].params.w); } float pow5(float x) { float _3781 = x * x; return (_3781 * _3781) * x; } float3 f_schlick90(float3 f0, float3 f90, float vh) { return f0 + ((f90 - f0) * pow5(clamp(1.0f - vh, 0.0f, 1.0f))); } float3 ext_fresnel(ExtCtx e, float vh) { return lerp(f_schlick90(e.f0, e.f90, vh), e.irid_f, float3(e.iridescence, e.iridescence, e.iridescence)); } float d_ggx(float nh, float a2) { float _656 = ((nh * nh) * (a2 - 1.0f)) + 1.0f; return a2 / ((3.1415927410125732421875f * _656) * _656); } float v_smith(float nl, float nv, float a2) { return 0.5f / max((nl * sqrt(((nv * nv) * (1.0f - a2)) + a2)) + (nv * sqrt(((nl * nl) * (1.0f - a2)) + a2)), 9.9999997473787516355514526367188e-05f); } float3 ext_light(ExtCtx e, float3 l, float3 radiance, float spec, bool godot) { float3 c = float3(0.0f, 0.0f, 0.0f); float3 specular = float3(0.0f, 0.0f, 0.0f); float3 diffuse = float3(0.0f, 0.0f, 0.0f); float3 f = float3(0.0f, 0.0f, 0.0f); float dv = 0.0f; float _4126 = max(dot(e.n, l), 0.0f); float3 _4129 = normalize(l + e.v); if (_4126 > 0.0f) { f = ext_fresnel(e, max(dot(e.v, _4129), 0.0f)); dv = d_ggx(max(dot(e.n, _4129), 0.0f), e.a2) * v_smith(_4126, e.nv, e.a2); specular = ((f * dv) * _4126) * (godot ? spec : 1.0f); } float3 _4158 = ((float3(1.0f, 1.0f, 1.0f) - f) * e.diffuse) / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f); float3 _4160 = e.diffuse / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f); bool3 _4162 = bool3(godot, godot, godot); diffuse = float3(_4162.x ? _4160.x : _4158.x, _4162.y ? _4160.y : _4158.y, _4162.z ? _4160.z : _4158.z) * _4126; c = (diffuse + specular) * radiance; return c; } float4 gi_diffuse(float3 n, bool baked, float3 baked_light) { if (baked) { return float4(baked_light, 1.0f); } return float4(0.0f, 0.0f, 0.0f, 0.0f); } float3 sky_dir(float3 d) { return normalize(mul(float4(d, 0.0f), Sky_1_m0.to_sky).xyz); } float3 sh_irradiance(float3 n) { float3 c = float3(0.0f, 0.0f, 0.0f); c = Sky_1_m0.sh[0u].xyz * 0.2820949852466583251953125f; c += (Sky_1_m0.sh[1u].xyz * (0.48860299587249755859375f * n.y)); c += (Sky_1_m0.sh[2u].xyz * (0.48860299587249755859375f * n.z)); c += (Sky_1_m0.sh[3u].xyz * (0.48860299587249755859375f * n.x)); c += (Sky_1_m0.sh[4u].xyz * ((1.09254801273345947265625f * n.x) * n.y)); c += (Sky_1_m0.sh[5u].xyz * ((1.09254801273345947265625f * n.y) * n.z)); c += (Sky_1_m0.sh[6u].xyz * (0.3153919875621795654296875f * (((3.0f * n.z) * n.z) - 1.0f))); c += (Sky_1_m0.sh[7u].xyz * ((1.09254801273345947265625f * n.x) * n.z)); c += (Sky_1_m0.sh[8u].xyz * (0.546274006366729736328125f * ((n.x * n.x) - (n.y * n.y)))); return max(c, float3(0.0f, 0.0f, 0.0f)); } float3 ext_irradiance(float3 n, bool lit_mode) { if (true ? ((Sky_1_m0.flags.x & 8u) != 0u) : false) { if ((Sky_1_m0.flags.x & 16u) != 0u) { return lerp(Sky_1_m0.ambient.xyz, sh_irradiance(sky_dir(n)) * (Sky_1_m0.ibl.x * Sky_1_m0.sun.w), float3(Sky_1_m0.ambient.w, Sky_1_m0.ambient.w, Sky_1_m0.ambient.w)); } return Sky_1_m0.ambient.xyz; } if (true ? ((Lit_1_m0.counts.y & 2u) != 0u) : false) { float _4237 = clamp((dot(n, Lit_1_m0.up.xyz) * 0.5f) + 0.5f, 0.0f, 1.0f); return lerp((Lit_1_m0.ground_horizon.xyz + Lit_1_m0.ground_bottom.xyz) * 0.5f, (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f, float3(_4237, _4237, _4237)) * Lit_1_m0.ambient.w; } return Lit_1_m0.ambient.xyz; } float probe_weight(ProbeEntryU p, float3 world_1) { float3 _3219 = mul(float4(world_1, 1.0f), p.to_local).xyz; float _3235 = min(p.extents.xyz.x - abs(_3219.x), min(p.extents.xyz.y - abs(_3219.y), p.extents.xyz.z - abs(_3219.z))); if (_3235 < 0.0f) { return 0.0f; } if (!(p.extents.w > 0.0f)) { return 1.0f; } return min(_3235 / p.extents.w, 1.0f); } float3 probe_face_uv(float3 d) { bool _3061 = false; float ma = 0.0f; float tc = 0.0f; float face = 0.0f; float sc = 0.0f; float3 _3064 = abs(d); if (_3064.x >= _3064.y) { _3061 = _3064.x >= _3064.z; } else { _3061 = false; } if (_3061) { ma = _3064.x; if (d.x >= 0.0f) { face = 0.0f; sc = -d.z; tc = -d.y; } else { face = 1.0f; sc = d.z; tc = -d.y; } } else { if (_3064.y >= _3064.z) { ma = _3064.y; if (d.y >= 0.0f) { face = 2.0f; sc = d.x; tc = d.z; } else { face = 3.0f; sc = d.x; tc = -d.z; } } else { ma = _3064.z; if (d.z >= 0.0f) { face = 4.0f; sc = d.x; tc = -d.y; } else { face = 5.0f; sc = -d.x; tc = -d.y; } } } return float3(face, ((sc / ma) + 1.0f) * 0.5f, ((tc / ma) + 1.0f) * 0.5f); } float3 probe_texel(uint row, float3 fuv, uint level) { float _3151 = 0.5f / float(max((Probe_1_m0.counts.z >> level), 1u)); return t_probes.SampleLevel(s_probes, float2((fuv.x + clamp(fuv.y, _3151, 1.0f - _3151)) / 6.0f, (float(row) + clamp(fuv.z, _3151, 1.0f - _3151)) / 8.0f), float(level)).xyz; } float4 probe_ambient(float3 world_1, float3 n, uint probes) { float3 c = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; bool _3408 = false; float3 acc = float3(0.0f, 0.0f, 0.0f); uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3415 = min(Probe_1_m0.counts.x, 8u); uint _3419 = max(Probe_1_m0.counts.y, 1u) - 1u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3415)) { break; } uint _3441 = i; uint _3442 = min(_3441, 7u); if (!(((probes >> Probe_1_m0.probes[_3442].info.w) & 1u) == 0u)) { _3408 = Probe_1_m0.probes[_3442].info.y == 0u; } else { _3408 = true; } if (_3408) { uint _3485 = i; i = _3485 + 1u; continue; } float _3460 = probe_weight(Probe_1_m0.probes[_3442], world_1); if (_3460 <= 0.0f) { uint _3485 = i; i = _3485 + 1u; continue; } c = Probe_1_m0.probes[_3442].ambient.xyz; if (Probe_1_m0.probes[_3442].info.y == 1u) { c = probe_texel(Probe_1_m0.probes[_3442].info.w, probe_face_uv(mul(float4(n, 0.0f), Probe_1_m0.probes[_3442].to_local).xyz), _3419); } acc += (c * _3460); w_sum += _3460; uint _3485 = i; i = _3485 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float2 env_brdf_approx(float roughness, float nv) { float4 _1276 = (float4(-1.0f, -0.0274999998509883880615234375f, -0.572000026702880859375f, 0.02199999988079071044921875f) * roughness) + float4(1.0f, 0.0425000004470348358154296875f, 1.03999996185302734375f, -0.039999999105930328369140625f); return (float2(-1.03999996185302734375f, 1.03999996185302734375f) * ((min(_1276.x * _1276.x, exp2((-9.27999973297119140625f) * nv)) * _1276.x) + _1276.y)) + _1276.zw; } float3 ext_env_weight(float3 f0, float3 f90, float roughness, float nv, float metallic, bool lit_mode) { bool _4361 = false; if (lit_mode) { _4361 = (Sky_1_m0.flags.x & 8u) != 0u; } else { _4361 = false; } if (true ? _4361 : false) { float2 _4375 = env_brdf_approx(roughness, nv); return (f0 * _4375.x) + ((f90 * _4375.y) * clamp(50.0f * f0.y, metallic, 1.0f)); } return f0 + ((max(f90 * (1.0f - roughness), f0) - f0) * pow5(1.0f - nv)); } float3 radiance(float3 d, float roughness) { return t_radiance.SampleLevel(s_radiance, d, roughness * float(max(Sky_1_m0.flags.y, 1u) - 1u)).xyz; } float3 sky(float3 dir) { float _697 = acos(clamp(dot(normalize(dir), Lit_1_m0.up.xyz), -1.0f, 1.0f)); if (_697 <= 1.57079637050628662109375f) { float _707 = clamp(1.0f - pow(max(1.0f - (1.0f - (_697 / 1.57079637050628662109375f)), 9.9999999747524270787835121154785e-07f), 6.666666507720947265625f), 0.0f, 1.0f); return lerp(Lit_1_m0.sky_horizon.xyz, Lit_1_m0.sky_top.xyz, float3(_707, _707, _707)); } float _722 = clamp(1.0f - pow(max(1.0f - ((_697 - 1.57079637050628662109375f) / 1.57079637050628662109375f), 9.9999999747524270787835121154785e-07f), 50.0f), 0.0f, 1.0f); return lerp(Lit_1_m0.ground_horizon.xyz, Lit_1_m0.ground_bottom.xyz, float3(_722, _722, _722)); } float3 ext_radiance(float3 dir, float roughness, bool lit_mode) { if (true ? ((Sky_1_m0.flags.x & 8u) != 0u) : false) { if ((Sky_1_m0.flags.x & 32u) != 0u) { return radiance(sky_dir(dir), roughness) * (Sky_1_m0.ibl.x * Sky_1_m0.sun.w); } if ((Sky_1_m0.flags.x & 64u) != 0u) { return float3(0.0f, 0.0f, 0.0f); } return Sky_1_m0.ambient.xyz; } if (true ? ((Lit_1_m0.counts.y & 2u) != 0u) : false) { return lerp(sky(dir), (Lit_1_m0.sky_top.xyz + Lit_1_m0.sky_horizon.xyz) * 0.5f, float3(roughness, roughness, roughness)) * Lit_1_m0.ambient.w; } return Lit_1_m0.ambient.xyz; } float probe_exit(float o, float d, float e) { if (d > 0.0f) { return (e - o) / d; } if (d < 0.0f) { return ((-e) - o) / d; } return 3.0000000054977557577780399428115e+38f; } float3 probe_lookup(ProbeEntryU p, float3 world_1, float3 dir) { float3 _3277 = mul(float4(dir, 0.0f), p.to_local).xyz; if ((p.info.x & 1u) == 0u) { return _3277; } float3 _3287 = mul(float4(world_1, 1.0f), p.to_local).xyz; return (_3287 + (_3277 * max(min(probe_exit(_3287.x, _3277.x, p.extents.xyz.x), min(probe_exit(_3287.y, _3277.y, p.extents.xyz.y), probe_exit(_3287.z, _3277.z, p.extents.xyz.z))), 0.0f))) - p.offset.xyz; } float3 probe_sample(uint row, float3 d, float lod) { bool _3179 = false; uint _3184 = max(Probe_1_m0.counts.y, 1u); float _3187 = clamp(lod, 0.0f, float(_3184 - 1u)); uint _3189 = uint(clamp(_3187, 0.0f, 4294967040.0f)); float _3191 = _3187 - float(_3189); float3 _3192 = probe_face_uv(d); float3 _3193 = probe_texel(row, _3192, _3189); if (!(_3191 <= 0.0f)) { _3179 = (_3189 + 1u) >= _3184; } else { _3179 = true; } if (_3179) { return _3193; } return (_3193 * (1.0f - _3191)) + (probe_texel(row, _3192, _3189 + 1u) * _3191); } float4 probe_reflection(float3 world_1, float3 r, float roughness, uint probes) { float3 acc = float3(0.0f, 0.0f, 0.0f); float w_sum = 0.0f; uint i = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _3326 = min(Probe_1_m0.counts.x, 8u); float _3332 = roughness * float(max(Probe_1_m0.counts.y, 1u) - 1u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < _3326)) { break; } uint _3355 = i; uint _3357 = min(_3355, 7u); if (((probes >> Probe_1_m0.probes[_3357].info.w) & 1u) == 0u) { uint _3383 = i; i = _3383 + 1u; continue; } float _3367 = probe_weight(Probe_1_m0.probes[_3357], world_1); if (_3367 <= 0.0f) { uint _3383 = i; i = _3383 + 1u; continue; } acc += ((probe_sample(Probe_1_m0.probes[_3357].info.w, probe_lookup(Probe_1_m0.probes[_3357], world_1, r), _3332) * Probe_1_m0.probes[_3357].offset.w) * _3367); w_sum += _3367; uint _3383 = i; i = _3383 + 1u; continue; } if (w_sum > 1.0f) { acc /= float3(w_sum, w_sum, w_sum); w_sum = 1.0f; } return float4(acc, w_sum); } float3 ext_probe_radiance(ExtCtx e, float3 dir, float roughness, bool lit_mode) { bool _4326 = false; float3 _4329 = ext_radiance(dir, roughness, lit_mode); if (!(!lit_mode)) { _4326 = Probe_1_m0.counts.x == 0u; } else { _4326 = true; } if (true ? _4326 : true) { return _4329; } float4 _4345 = probe_reflection(e.world, dir, roughness, O_1_m0.extra.z); return (_4329 * (1.0f - _4345.w)) + _4345.xyz; } float3 ext_ambient(ExtCtx e, bool lit_mode, float4 gi) { bool _4415 = false; bool _4409 = false; float3 c = float3(0.0f, 0.0f, 0.0f); bool _4413 = false; float3 diffuse = float3(0.0f, 0.0f, 0.0f); float3 r = float3(0.0f, 0.0f, 0.0f); bool _4411 = false; diffuse = e.diffuse * ext_irradiance(e.n, lit_mode); if (lit_mode) { _4409 = (Sky_1_m0.flags.x & 8u) == 0u; } else { _4409 = false; } if (_4409) { _4411 = (Lit_1_m0.counts.y & 2u) == 0u; } else { _4411 = false; } if (true ? _4411 : false) { diffuse = Lit_1_m0.ambient.xyz * e.diffuse; } if (lit_mode) { _4413 = Probe_1_m0.counts.x > 0u; } else { _4413 = false; } if (_4413) { _4415 = gi.w <= 0.0f; } else { _4415 = false; } if (true ? _4415 : false) { float4 _4471 = probe_ambient(e.world, e.n, O_1_m0.extra.z); diffuse = (diffuse * (1.0f - _4471.w)) + (e.diffuse * _4471.xyz); } if (gi.w > 0.0f) { diffuse = e.diffuse * gi.xyz; } r = reflect(-e.v, e.n); c = diffuse + (ext_probe_radiance(e, r, e.roughness, lit_mode) * ext_env_weight(lerp(e.f0, e.irid_f, float3(e.iridescence, e.iridescence, e.iridescence)), lerp(e.f90, float3(1.0f, 1.0f, 1.0f), float3(e.iridescence, e.iridescence, e.iridescence)), e.roughness, e.nv, e.metallic, lit_mode)); return c; } float3 ext_shade_with(VsOutExt _in, bool front, ExtSamples s, bool lit_mode, bool baked, float3 baked_light) { float3 rad = float3(0.0f, 0.0f, 0.0f); bool _4542 = false; bool _4538 = false; bool _4550 = false; float3 l = float3(0.0f, 0.0f, 0.0f); float3 c = float3(0.0f, 0.0f, 0.0f); float atten = 0.0f; uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); if (lit_mode) { _4538 = O_1_m0.decals.z > 0u; } else { _4538 = false; } ExtCtx _4561 = ext_ctx(_in, front, s, true ? _4538 : false); uint _4562 = object_light_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(true ? (k < _4562) : false)) { break; } uint _4586 = object_light(k); uint _4587 = min(_4586, 63u); if (baked) { _4542 = Lit_1_m0.lights[_4587].info.z == 1u; } else { _4542 = false; } if (_4542) { uint _4673 = k; k = _4673 + 1u; continue; } l = float3(0.0f, 0.0f, 0.0f); atten = 1.0f; if (Lit_1_m0.lights[_4587].info.x == 0u) { l = -Lit_1_m0.lights[_4587].direction.xyz; } else { float3 _4611 = Lit_1_m0.lights[_4587].position.xyz - _in.world; float _4612 = length(_4611); float _4613 = max(_4612, 9.9999999747524270787835121154785e-07f); l = _4611 / float3(_4613, _4613, _4613); atten = omni_attenuation(_4612, Lit_1_m0.lights[_4587].position.w, Lit_1_m0.lights[_4587].direction.w); if (Lit_1_m0.lights[_4587].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_4587].direction.xyz), Lit_1_m0.lights[_4587].spot.x)) / max(1.0f - Lit_1_m0.lights[_4587].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_4587].spot.y)); } } if (atten > 0.0f) { rad = Lit_1_m0.lights[_4587].color.xyz * atten; if (true ? (Lit_1_m0.lights[_4587].info.y == 1u) : false) { rad = Lit_1_m0.lights[_4587].color.xyz * (atten * shadow_factor(_4586, _in.world, _4561.n_geo, l)); } c += ext_light(_4561, l, rad, Lit_1_m0.lights[_4587].spot.z, true); } uint _4673 = k; k = _4673 + 1u; continue; } float3 _4677 = ext_ambient(_4561, true, gi_diffuse(_4561.n, baked, baked_light)); if ((Lit_1_m0.counts.y & 4u) != 0u) { _4550 = M_1_m0.flags.y != 2u; } else { _4550 = false; } if (true ? _4550 : false) { int _4703; spvTextureSize(t_ao, 0u, _4703); int _4705 = int(min(uint(0), uint(int(_4703) - 1))); uint _4706_dummy_parameter; float4 _4710 = t_ao.Load(int3(int2(min(uint2(int2(clamp(floor(_in.clip.xy), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(t_ao, uint(_4705), _4706_dummy_parameter)) - int2(1, 1)))), _4705)); float _4711 = _4710.x; c *= lerp(1.0f, min(_4711, _4561.occlusion), Lit_1_m0.tone.z * Lit_1_m0.tone.w); c += (_4677 * min(_4561.occlusion, _4711)); } else { c += (_4677 * _4561.occlusion); } c += _4561.emission; return c; } float3 ext_shade(VsOutExt _in, bool front, ExtSamples s, bool lit_mode) { return ext_shade_with(_in, front, s, lit_mode, false, float3(0.0f, 0.0f, 0.0f)); } uint pool_sun_count() { return min(Lit_1_m0.dirs.z, 8u); } uint pool_sun(uint k) { return min(((((k < 4u) ? Lit_1_m0.dirs.x : Lit_1_m0.dirs.y) >> ((k & 3u) * 8u)) & 255u), 63u); } float pow8(float x) { float _1297 = max(x, 0.0f) * max(x, 0.0f); float _1298 = _1297 * _1297; return _1298 * _1298; } float3 fog_sun_scatter(float3 fc, float3 dir) { float3 c = float3(0.0f, 0.0f, 0.0f); uint k = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); c = fc; if (Sky_1_m0.fog_color.w > 0.001000000047497451305389404296875f) { uint _1318 = pool_sun_count(); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < _1318)) { break; } uint _1341 = pool_sun(k); if (Lit_1_m0.lights[min(_1341, 63u)].info.x == 0u) { c += (((Lit_1_m0.lights[min(_1341, 63u)].color.xyz / float3(3.1415927410125732421875f, 3.1415927410125732421875f, 3.1415927410125732421875f)) * pow8(dot(dir, -Lit_1_m0.lights[min(_1341, 63u)].direction.xyz))) * Sky_1_m0.fog_color.w); } k++; continue; } } return c; } float3 surface_fog(float3 c, float3 world_1, float3 dir) { float amount = 0.0f; bool _1388 = false; float dist = 0.0f; float3 fc = float3(0.0f, 0.0f, 0.0f); float _1396 = -mul(float4(world_1, 1.0f), G_1_m0.view).z; dist = distance(world_1, G_1_m0.camera_pos.xyz); if (Sky_1_m0.fog_origin.w > 0.5f) { dist = max(_1396 - Sky_1_m0.fog_origin.x, 0.0f); } if ((Sky_1_m0.flags.x & 256u) != 0u) { float _1422 = smoothstep(Sky_1_m0.fog_depth.x, Sky_1_m0.fog_depth.y, dist); amount = ((_1422 > 0.0f) ? pow(max(_1422, 9.9999999747524270787835121154785e-07f), Sky_1_m0.fog_depth.z) : 0.0f) * Sky_1_m0.fog.x; } else { amount = 1.0f - exp(min(0.0f, (-dist) * Sky_1_m0.fog.x)); } if (abs(Sky_1_m0.fog.w) >= 9.9999997473787516355514526367188e-05f) { amount = max(amount, 1.0f - exp(min(0.0f, (dot(world_1, Lit_1_m0.up.xyz) - Sky_1_m0.fog.z) * Sky_1_m0.fog.w))); } amount = clamp(amount, 0.0f, 1.0f); fc = Sky_1_m0.fog_color.xyz; if ((Sky_1_m0.flags.x & 8u) != 0u) { _1388 = Sky_1_m0.fog_depth.w > 0.0f; } else { _1388 = false; } if (true ? _1388 : false) { fc = lerp(fc, radiance(sky_dir(dir), lerp(1.0f / float(max(Sky_1_m0.flags.y, 2u) - 1u), 1.0f, 1.0f - clamp((_1396 - Sky_1_m0.fog_origin.y) / max(Sky_1_m0.fog_origin.z - Sky_1_m0.fog_origin.y, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f))) * Sky_1_m0.sun.w, float3(Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w, Sky_1_m0.fog_depth.w)); } fc = fog_sun_scatter(fc, dir); return lerp(c, fc, float3(amount, amount, amount)); } float2 fog_chord(uint k, float3 o, float3 d, float t_end_ray) { float a = 0.0f; float c = -1.0f; float2 r = float2(0.0f, 0.0f); float b = 0.0f; uint _1540 = uint(clamp(Fog_1_m0.entries[min(k, 15u)].albedo.w, 0.0f, 4294967040.0f)); float _1544 = min(Fog_1_m0.entries[min(k, 15u)].emission.w, t_end_ray); if (_1540 == 4u) { return float2(0.0f, _1544); } float3 _1553 = Fog_1_m0.entries[min(k, 15u)].size.xyz * 0.5f; float3 _1554 = abs(d); bool3 _1555 = bool3(_1554.x < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x, _1554.y < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y, _1554.z < float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z); float3 _1556 = float3(_1555.x ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).x : d.x, _1555.y ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).y : d.y, _1555.z ? float3(9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f, 9.9999999600419720025001879548654e-13f).z : d.z); float3 _1559 = ((-_1553) - o) / _1556; float3 _1561 = (_1553 - o) / _1556; float3 _1562 = min(_1559, _1561); float3 _1563 = max(_1559, _1561); r = float2(max(0.0f, _1562.y), min(_1544, _1563.y)); if (_1540 == 3u) { r = float2(max(max(r.x, _1562.x), _1562.z), min(min(r.y, _1563.x), _1563.z)); } else { if (_1540 == 0u) { a = dot(d / _1553, d / _1553); b = dot(o / _1553, d / _1553); c = dot(o / _1553, o / _1553) - 1.0f; } else { float _1602 = min(_1553.x, _1553.z); float _1607 = (_1540 == 1u) ? (_1602 / (2.0f * _1553.y)) : 0.0f; float _1610 = _1553.y - o.y; a = ((d.x * d.x) + (d.z * d.z)) - (((_1607 * _1607) * d.y) * d.y); b = ((o.x * d.x) + (o.z * d.z)) + (((_1607 * _1607) * _1610) * d.y); c = ((o.x * o.x) + (o.z * o.z)) - ((_1540 == 1u) ? (((_1607 * _1607) * _1610) * _1610) : (_1602 * _1602)); } } float _1656 = (b * b) - (a * c); if (abs(a) < 9.9999999600419720025001879548654e-13f) { if (abs(b) < 9.9999999600419720025001879548654e-13f) { r.y = (c > 0.0f) ? (-1.0f) : r.y; } else { if (b > 0.0f) { r.y = min(r.y, (-c) / (2.0f * b)); } else { r.x = max(r.x, (-c) / (2.0f * b)); } } } else { if (_1656 < 0.0f) { r.y = (a > 0.0f) ? (-1.0f) : r.y; } else { float _1720 = min(((-b) - sqrt(_1656)) / a, ((-b) + sqrt(_1656)) / a); float _1733 = max(((-b) - sqrt(_1656)) / a, ((-b) + sqrt(_1656)) / a); if (a > 0.0f) { r = float2(max(r.x, _1720), min(r.y, _1733)); } else { if (r.x < min(r.y, _1720)) { r.y = min(r.y, _1720); } else { r.x = max(r.x, _1733); } } } } return r; } float fog_density(uint k, float3 p, float3 lp) { float rho = 0.0f; float sdf = 0.0f; uint _1777 = min(k, 15u); rho = Fog_1_m0.entries[_1777].material.x * min(exp2((-Fog_1_m0.entries[_1777].material.y) * (dot(p, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_1777].material.w)), 1.0f); if (Fog_1_m0.entries[_1777].material.z > 0.0f) { uint _1804 = uint(clamp(Fog_1_m0.entries[_1777].albedo.w, 0.0f, 4294967040.0f)); float3 _1807 = Fog_1_m0.entries[_1777].size.xyz * 0.5f; float _1810 = min(_1807.x, _1807.z); if (_1804 == 0u) { float _1816 = length(lp / _1807); sdf = (_1816 * (_1816 - 1.0f)) / max(length(lp / (_1807 * _1807)), 9.9999999600419720025001879548654e-13f); } else { if (_1804 == 3u) { float3 _1829 = abs(lp) - _1807; sdf = length(max(_1829, float3(0.0f, 0.0f, 0.0f))) + min(max(_1829.x, max(_1829.y, _1829.z)), 0.0f); } else { if (_1804 == 2u) { float2 _1850 = float2(length(lp.xz) - _1810, abs(lp.y) - _1807.y); sdf = min(max(_1850.x, _1850.y), 0.0f) + length(max(_1850, float2(0.0f, 0.0f))); } else { sdf = max(dot(normalize(float2(1.0f / max(0.001000000047497451305389404296875f, _1810 * 0.5f), 1.0f / max(0.001000000047497451305389404296875f, _1807.y))), float2(length(lp.xz), lp.y - _1807.y)), (-_1807.y) - lp.y); } } } rho *= pow(clamp(((-2.0f) * sdf) / Fog_1_m0.entries[_1777].size.w, 0.0f, 1.0f), Fog_1_m0.entries[_1777].material.z); } return rho; } float3 fog_light(uint n, float3 p, float3 dir) { uint k = 0u; float atten = 0.0f; float3 sum = float3(0.0f, 0.0f, 0.0f); float3 l = float3(0.0f, 0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); sum = Fog_1_m0.ambient.xyz * Fog_1_m0.params.y; uint _2012 = min(n, 15u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < min(Fog_1_m0.entries[_2012].lights.z, 8u))) { break; } uint _2048 = min(((((k < 4u) ? Fog_1_m0.entries[_2012].lights.x : Fog_1_m0.entries[_2012].lights.y) >> ((k & 3u) * 8u)) & 255u), 63u); uint _2049 = min(_2048, 63u); l = -Lit_1_m0.lights[_2049].direction.xyz; atten = 1.0f; if (Lit_1_m0.lights[_2049].info.x != 0u) { float3 _2062 = Lit_1_m0.lights[_2049].position.xyz - p; float _2064 = max(length(_2062), 9.9999999747524270787835121154785e-07f); l = _2062 / float3(_2064, _2064, _2064); atten = omni_attenuation(length(_2062), Lit_1_m0.lights[_2049].position.w, Lit_1_m0.lights[_2049].direction.w); if (Lit_1_m0.lights[_2049].info.x == 2u) { atten *= (1.0f - pow(max(9.9999997473787516355514526367188e-05f, (1.0f - max(dot(-l, Lit_1_m0.lights[_2049].direction.xyz), Lit_1_m0.lights[_2049].spot.x)) / max(1.0f - Lit_1_m0.lights[_2049].spot.x, 9.9999999747524270787835121154785e-07f)), Lit_1_m0.lights[_2049].spot.y)); } } float _2105 = (1.0f + (Fog_1_m0.params.x * Fog_1_m0.params.x)) - ((2.0f * Fog_1_m0.params.x) * dot(dir, l)); sum += (Lit_1_m0.lights[_2049].color.xyz * (((atten * (1.0f - (Fog_1_m0.params.x * Fog_1_m0.params.x))) / ((12.56637096405029296875f * _2105) * sqrt(_2105))) * Fog_1_m0.light_fog[min((_2048 >> 2u), 15u)][min((_2048 & 3u), 3u)])); k++; continue; } return sum; } float fog_falloff_depth(uint k, float a, float b, float t0, float t1) { uint _1903 = min(k, 15u); if ((Fog_1_m0.entries[_1903].material.y * b) == 0.0f) { return (Fog_1_m0.entries[_1903].material.x * (t1 - t0)) * min(exp2((-Fog_1_m0.entries[_1903].material.y) * a), 1.0f); } float _1921 = clamp((-a) / b, t0, t1); float _1923 = (b > 0.0f) ? _1921 : t0; float _1925 = (b > 0.0f) ? t1 : _1921; float _1930 = ((Fog_1_m0.entries[_1903].material.y * abs(b)) * (_1925 - _1923)) * 0.693147182464599609375f; return Fog_1_m0.entries[_1903].material.x * (((t1 - t0) - (_1925 - _1923)) + ((min(exp2((-Fog_1_m0.entries[_1903].material.y) * max(a + (b * ((b > 0.0f) ? _1923 : _1925)), 0.0f)), 1.0f) * (_1925 - _1923)) * ((_1930 < 0.00999999977648258209228515625f) ? (1.0f - (_1930 * (0.5f - (_1930 * (0.16666667163372039794921875f - (_1930 / 24.0f)))))) : ((1.0f - exp(-_1930)) / _1930)))); } float4 fog_entry(uint k, float3 o, float3 d, float2 ch) { bool _2148 = false; float3 q = float3(0.0f, 0.0f, 0.0f); float split = 0.0f; bool _2150 = false; float tau = 0.0f; bool _2141 = false; uint i = 0u; bool _2143 = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint _2153 = min(k, 15u); float3 _2159 = mul(float4(o, 1.0f), Fog_1_m0.entries[_2153].to_local).xyz; float3 _2163 = mul(float4(d, 0.0f), Fog_1_m0.entries[_2153].to_local).xyz; float _2170 = dot(o, Fog_1_m0.up.xyz) - Fog_1_m0.entries[_2153].material.w; float _2174 = dot(d, Fog_1_m0.up.xyz); bool _2177 = Fog_1_m0.entries[_2153].material.z > 0.0f; split = (ch.x + ch.y) * 0.5f; if (Fog_1_m0.entries[_2153].material.y > 0.0f) { _2141 = ((-_2170) / _2174) > ch.x; } else { _2141 = false; } if (_2141) { _2143 = ((-_2170) / _2174) < ch.y; } else { _2143 = false; } if (_2143) { split = (-_2170) / _2174; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < (_2177 ? 12u : 4u))) { break; } uint _2228 = i & 3u; if (!(_2228 == 0u)) { _2148 = _2228 == 3u; } else { _2148 = true; } float _2236 = _2148 ? 0.86113631725311279296875f : 0.3399809896945953369140625f; if (!(_2228 == 0u)) { _2150 = _2228 == 3u; } else { _2150 = true; } float _2244 = _2150 ? 0.347854793071746826171875f : 0.652145206928253173828125f; float2 _2247 = float2(split, ch.y); float2 _2250 = float2(ch.x, split); bool _2252 = i < 8u; bool2 _2254 = bool2(_2252, _2252); float2 _2253 = float2(_2254.x ? _2250.x : _2247.x, _2254.y ? _2250.y : _2247.y); bool _2256 = i < 4u; bool2 _2258 = bool2(_2256, _2256); float2 _2257 = float2(_2258.x ? ch.x : _2253.x, _2258.y ? ch.y : _2253.y); float _2262 = (_2257.y - _2257.x) * 0.5f; float _2271 = ((_2257.x + _2257.y) * 0.5f) + (_2262 * ((_2228 < 2u) ? (-_2236) : _2236)); float3 _2273 = o + (d * _2271); float _2276 = fog_density(k, _2273, _2159 + (_2163 * _2271)); if (i < 4u) { q += (((Fog_1_m0.entries[_2153].albedo.xyz * fog_light(k, _2273, d)) + Fog_1_m0.entries[_2153].emission.xyz) * ((_2244 * _2262) * clamp(_2276, 0.0f, 1.0f))); } else { tau += ((_2244 * _2262) * _2276); } i++; continue; } if (!_2177) { tau = fog_falloff_depth(k, _2170, _2174, ch.x, ch.y); } return float4(q, tau); } float3 fog_integrate(float3 c, float3 o, float3 d, float t_end, uint list) { float tau = 0.0f; uint i_1 = 0u; uint i_2 = 0u; uint at[4] = _2324; uint i_3 = 0u; uint n = 0u; bool _2330 = false; float2 chords[4] = _2327; float3 q = float3(0.0f, 0.0f, 0.0f); float avail = 0.0f; float4 parts[4] = _2334; uint m = 0u; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); uint2 loop_bound_2 = uint2(4294967295u, 4294967295u); uint2 loop_bound_3 = uint2(4294967295u, 4294967295u); uint2 loop_bound_4 = uint2(4294967295u, 4294967295u); uint2 loop_bound_5 = uint2(4294967295u, 4294967295u); bool _2347 = list >= 2147483648u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_2 < (_2347 ? min(Fog_1_m0.counts.x, 16u) : 4u))) { break; } uint _2377 = (list >> ((i_2 & 3u) * 8u)) & 127u; if (!_2347) { _2330 = _2377 == 0u; } else { _2330 = false; } if (_2330) { break; } uint _2389 = _2347 ? i_2 : (min(_2377, 16u) - 1u); uint _2390 = min(_2389, 15u); float2 _2399 = fog_chord(_2389, mul(float4(o, 1.0f), Fog_1_m0.entries[_2390].to_local).xyz, mul(float4(d, 0.0f), Fog_1_m0.entries[_2390].to_local).xyz, t_end); if (_2399.y > _2399.x) { at[min(m, 3u)] = _2389; chords[min(m, 3u)] = _2399; m++; if (m == 4u) { break; } } i_2++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i_1 < m)) { break; } parts[min(i_1, 3u)] = fog_entry(at[min(i_1, 3u)], o, d, chords[min(i_1, 3u)]); i_1++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_2.x, uint2(0u, 0u).y == loop_bound_2.y))) { break; } loop_bound_2 -= uint2(uint(loop_bound_2.y == 0u), 1u); if (!(n < m)) { break; } if (parts[min(n, 3u)].w < 0.0f) { avail = 0.0f; uint i = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_3.x, uint2(0u, 0u).y == loop_bound_3.y))) { break; } loop_bound_3 -= uint2(uint(loop_bound_3.y == 0u), 1u); if (!(i < m)) { break; } avail += (max(parts[min(i, 3u)].w, 0.0f) * (max(min(chords[min(i, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i, 3u)].y - chords[min(i, 3u)].x, 9.9999999747524270787835121154785e-07f))); i++; continue; } float _2556 = min((-parts[min(n, 3u)].w) / max(avail, 9.9999999600419720025001879548654e-13f), 1.0f); uint i_4 = 0u; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_4.x, uint2(0u, 0u).y == loop_bound_4.y))) { break; } loop_bound_4 -= uint2(uint(loop_bound_4.y == 0u), 1u); if (!(i_4 < m)) { break; } if (parts[min(i_4, 3u)].w > 0.0f) { parts[min(i_4, 3u)] *= (1.0f - ((max(min(chords[min(i_4, 3u)].y, chords[min(n, 3u)].y) - max(chords[min(i_4, 3u)].x, chords[min(n, 3u)].x), 0.0f) / max(chords[min(i_4, 3u)].y - chords[min(i_4, 3u)].x, 9.9999999747524270787835121154785e-07f)) * _2556)); } i_4++; continue; } } n++; continue; } for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_5.x, uint2(0u, 0u).y == loop_bound_5.y))) { break; } loop_bound_5 -= uint2(uint(loop_bound_5.y == 0u), 1u); if (!(i_3 < m)) { break; } if (parts[min(i_3, 3u)].w > 0.0f) { q += parts[min(i_3, 3u)].xyz; tau += parts[min(i_3, 3u)].w; } i_3++; continue; } float _2676 = exp(-tau); return (c * _2676) + (q * ((1.0f - _2676) / max(tau, 9.9999997473787516355514526367188e-06f))); } float3 fog_volumes(float3 c, float3 world_1, uint list) { float3 _2712 = world_1 - (normalize(float3(G_1_m0.view[0u].z, G_1_m0.view[1u].z, G_1_m0.view[2u].z)) * mul(float4(world_1, 1.0f), G_1_m0.view).z); bool _2715 = G_1_m0.camera_pos.w > 0.5f; bool3 _2717 = bool3(_2715, _2715, _2715); float3 _2716 = float3(_2717.x ? _2712.x : G_1_m0.camera_pos.xyz.x, _2717.y ? _2712.y : G_1_m0.camera_pos.xyz.y, _2717.z ? _2712.z : G_1_m0.camera_pos.xyz.z); float _2719 = length(world_1 - _2716); float _2721 = max(_2719, 9.9999999747524270787835121154785e-07f); float3 _2724 = fog_integrate(c, _2716, (world_1 - _2716) / float3(_2721, _2721, _2721), _2719, list); bool _2725 = _2719 > 0.0f; bool3 _2727 = bool3(_2725, _2725, _2725); return float3(_2727.x ? _2724.x : c.x, _2727.y ? _2724.y : c.y, _2727.z ? _2724.z : c.z); } float3 filmic_curve(float3 x) { float _742 = 0.100000001490116119384765625f * 0.60000002384185791015625f; float _746 = 0.20000000298023223876953125f * 0.00999999977648258209228515625f; float _752 = 0.20000000298023223876953125f * 0.300000011920928955078125f; float _756 = 0.00999999977648258209228515625f / 0.300000011920928955078125f; return (((x * ((x * 0.87999999523162841796875f) + float3(_742, _742, _742))) + float3(_746, _746, _746)) / ((x * ((x * 0.87999999523162841796875f) + float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f))) + float3(_752, _752, _752))) - float3(_756, _756, _756); } float3 aces_curve(float3 c, float white) { float3 _805 = float3(1.7999999523162841796875f * dot(float3(0.59719002246856689453125f, 0.354579985141754150390625f, 0.048229999840259552001953125f), c), 1.7999999523162841796875f * dot(float3(0.075999997556209564208984375f, 0.908339977264404296875f, 0.0156599991023540496826171875f), c), 1.7999999523162841796875f * dot(float3(0.0284000001847743988037109375f, 0.13382999598979949951171875f, 0.837769985198974609375f), c)); float3 _813 = ((_805 * (_805 + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((_805 * ((_805 * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); float _818 = 1.7999999523162841796875f * white; float _826 = ((_818 * (_818 + 0.02457859925925731658935546875f)) - 9.0537003416102379560470581054688e-05f) / ((_818 * ((0.98372900485992431640625f * _818) + 0.4329510033130645751953125f)) + 0.23808099329471588134765625f); return float3(dot(float3(1.60475003719329833984375f, -0.5310800075531005859375f, -0.0736699998378753662109375f), _813), dot(float3(-0.10208000242710113525390625f, 1.108129978179931640625f, -0.00604999996721744537353515625f), _813), dot(float3(-0.00326999998651444911956787109375f, -0.07276000082492828369140625f, 1.0760200023651123046875f), _813)) / float3(_826, _826, _826); } float3 agx_curve(float3 c) { float3 v = float3(0.0f, 0.0f, 0.0f); v = mul(max(c, float3(2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f, 2.0000000267028639200361794792116e-10f)), float3x3(float3(0.54490816593170166015625f, 0.14044006168842315673828125f, 0.088827408850193023681640625f), float3(0.3737794458866119384765625f, 0.7541096210479736328125f, 0.17887713015079498291015625f), float3(0.081384979188442230224609375f, 0.10543358325958251953125f, 0.7322499752044677734375f))); float _881 = 4.02606868743896484375f - (-12.47393131256103515625f); v = (clamp(log2(v), float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f), float3(4.02606868743896484375f, 4.02606868743896484375f, 4.02606868743896484375f)) - float3(-12.47393131256103515625f, -12.47393131256103515625f, -12.47393131256103515625f)) / float3(_881, _881, _881); float3 _886 = v * v; float3 _887 = _886 * _886; return mul(pow(max((((((v * 0.02099999971687793731689453125f) + (_886 * 4.01109981536865234375f)) - ((_886 * 25.68199920654296875f) * v)) + (_887 * 70.35900115966796875f)) - ((_887 * 74.7779998779296875f) * v)) + ((_887 * 27.069000244140625f) * _886), float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)), float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)), float3x3(float3(1.96455097198486328125f, -0.299322426319122314453125f, -0.164368331432342529296875f), float3(-0.85585844516754150390625f, 1.3264510631561279296875f, -0.23822464048862457275390625f), float3(-0.108867108821868896484375f, -0.02708402089774608612060546875f, 1.4026653766632080078125f))); } float3 tonemap(float3 c_in) { float3 _917 = max(c_in * Lit_1_m0.tone.x, float3(0.0f, 0.0f, 0.0f)); if (Lit_1_m0.counts.z == 1u) { return ((_917 * Lit_1_m0.tone.y) + _917) / ((_917 * Lit_1_m0.tone.y) + float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 2u) { return filmic_curve(_917) / filmic_curve(float3(Lit_1_m0.tone.y, Lit_1_m0.tone.y, Lit_1_m0.tone.y)); } if (Lit_1_m0.counts.z == 3u) { return aces_curve(_917, Lit_1_m0.tone.y); } if (Lit_1_m0.counts.z == 4u) { return agx_curve(_917); } return _917; } float3 ext_lit_finish(float3 c_in, float3 world_1) { float3 c = float3(0.0f, 0.0f, 0.0f); c = c_in; if (true ? ((Sky_1_m0.flags.x & 128u) != 0u) : false) { c = surface_fog(c, world_1, -ext_view(world_1)); } if (true ? (O_1_m0.decals.w != 0u) : false) { c = fog_volumes(c, world_1, O_1_m0.decals.w); } return tonemap(c); } float3 item_fade(float3 c) { if (true ? ((O_1_m0.extra.x & 64u) == 0u) : true) { return c; } return lerp(c, tonemap(O_1_m0.normal[3u].xyz), float3(O_1_m0.normal[3u].www)); } float3 emerge_tint(float3 c, float r) { bool _1084 = false; if (!((O_1_m0.extra.x & 32u) == 0u)) { _1084 = r >= 1.0f; } else { _1084 = true; } if (true ? _1084 : true) { return c; } float _1106 = smoothstep(0.0f, 1.0f, r); return lerp(tonemap(srgb_to_linear(spvUnpackUnorm4x8(O_1_m0.extra.w).xyz)), c, float3(_1106, _1106, _1106)); } float3 linear_to_srgb(float3 c) { float3 _213 = c * 12.9200000762939453125f; float3 _216 = (pow(c, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _217 = bool3(c.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, c.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, c.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_217.x ? _213.x : _216.x, _217.y ? _213.y : _216.y, _217.z ? _213.z : _216.z); } float4 target_color(float4 c) { float4 _231 = clamp(c, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); if (G_1_m0.fparams.w > 0.5f) { return float4(linear_to_srgb(_231.xyz), _231.w); } return _231; } float4 lit_output(float4 c) { if ((Lit_1_m0.counts.y & 8u) != 0u) { return float4(max(c.xyz, float3(0.0f, 0.0f, 0.0f)), clamp(c.w, 0.0f, 1.0f)); } return target_color(c); } void frag_main() { float alpha = 1.0f; float3 c = float3(0.0f, 0.0f, 0.0f); VsOutExt _4799 = { gl_FragCoord, world, normal, uv, flags, tangent, weight, color, uv1 }; ExtSamples _4857 = sample_ext(_4799); float _4861 = emerge_reveal(_4799.world, _4799.clip.xy); if (true ? (_4861 <= 0.0f) : false) { discard; } if (ext_cut(_4857)) { discard; } bool _4872 = true ? (G_1_m0.params.x == 8u) : false; if (true ? ((M_1_m0.flags.w & 8u) != 0u) : false) { c = _4857.base.xyz; } else { c = ext_shade(_4799, gl_FrontFacing != mirrored(ext_base_in(_4799)), _4857, _4872); } if (true ? _4872 : false) { c = ext_lit_finish(c, _4799.world); } if (true ? _4872 : false) { _4826 = lit_output(float4(emerge_tint(item_fade(c), _4861), alpha)); return; } _4826 = target_color(float4(c, alpha)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; gl_FrontFacing = stage_input.gl_FrontFacing; world = stage_input.world; normal = stage_input.normal; uv = stage_input.uv; flags = stage_input.flags; tangent = stage_input.tangent; weight = stage_input.weight; color = stage_input.color; uv1 = stage_input.uv1; frag_main(); SPIRV_Cross_Output stage_output; stage_output._4826 = _4826; return stage_output; }  @Ð Ð/ ,@  P     {Ðþ—4ÌhÜäF‚�SKw;žP•hÛ— REò«WHSLTGlobals@ viewÿÿÿÿproj@ÿÿÿÿ view_proj€ÿÿÿÿ camera_posÀÿÿÿÿviewportÐÿÿÿÿ wire_coloràÿÿÿÿ select_colorðÿÿÿÿ active_colorÿÿÿÿgridÿÿÿÿparams ÿÿÿÿfparams0ÿÿÿÿG_block@ObjectUmodelÿÿÿÿnormal@ÿÿÿÿcolor€ÿÿÿÿparams�ÿÿÿÿextra ÿÿÿÿgi°ÿÿÿÿdecalsàÿÿÿÿlightsðÿÿÿÿO_block MaterialUP base_colorÿÿÿÿemissionÿÿÿÿfactors ÿÿÿÿflags0ÿÿÿÿuv@ÿÿÿÿxfP(ÿÿÿÿextÐÿÿÿÿM_blockPLightUPcolorÿÿÿÿpositionÿÿÿÿ direction ÿÿÿÿspot0ÿÿÿÿinfo@ÿÿÿÿLitUÐ countsÿÿÿÿambientÿÿÿÿtone ÿÿÿÿup0ÿÿÿÿsky_top@ÿÿÿÿ sky_horizonPÿÿÿÿground_horizon`ÿÿÿÿ ground_bottompÿÿÿÿ inv_view_proj€ÿÿÿÿdirsÀÿÿÿÿlightsÐ@P Lit_blockÐ ShadowLightU@paramsÿÿÿÿsplitsÿÿÿÿfade ÿÿÿÿinfo0ÿÿÿÿ ShadowTileU` view_projÿÿÿÿrect@ÿÿÿÿtexelPÿÿÿÿShadowU atlasÿÿÿÿlights@ tiles` Shadow_block  SunU  directionÿÿÿÿcolorÿÿÿÿSkyUflagsÿÿÿÿto_skyÿÿÿÿsky_topPÿÿÿÿ sky_horizon`ÿÿÿÿ ground_bottompÿÿÿÿground_horizon€ÿÿÿÿsun�ÿÿÿÿambient ÿÿÿÿibl°ÿÿÿÿ fog_colorÀÿÿÿÿfogÐÿÿÿÿ fog_depthàÿÿÿÿ fog_originðÿÿÿÿsuns sh€ ÿÿÿÿ Sky_block ProbeEntryU€to_localÿÿÿÿextents@ÿÿÿÿoffsetPÿÿÿÿambient`ÿÿÿÿinfopÿÿÿÿProbeUcountsÿÿÿÿprobes€ Probe_block DecalEntryU°to_localÿÿÿÿmodulate@ÿÿÿÿfadesPÿÿÿÿaxis_x`ÿÿÿÿaxis_ypÿÿÿÿaxis_z€ÿÿÿÿlayers�ÿÿÿÿflags ÿÿÿÿDecalU ,countsÿÿÿÿlodÿÿÿÿentries @° Decal_block , FogEntryU�to_localÿÿÿÿsize@ÿÿÿÿmaterialPÿÿÿÿalbedo`ÿÿÿÿemissionpÿÿÿÿlights€ÿÿÿÿFogU@ countsÿÿÿÿparamsÿÿÿÿambient ÿÿÿÿup0ÿÿÿÿ light_fog@ÿÿÿÿentries@� Fog_block@ GOMLitShadow SkyProbeDecalFogt_baseÿÿÿÿt_shadowÿÿÿÿ t_radianceÿÿÿÿt_aoÿÿÿÿt_probesÿÿÿÿt_decalsÿÿÿÿs_matÿÿÿÿs_shadowÿÿÿÿ s_radianceÿÿÿÿs_probesÿÿÿÿs_decalsÿÿÿÿvs_surface_extvs_surface_extfs_surface_extfs_surface_extĸ#~2 GLSL.std.450vs_surface_extæéëîñô÷ùûýþ2fs_surface_ext "$&(*,.12H#HHH#@HHH#€HHH#ÀH#ÐH#àH#ðH#H#H # H #0G H #H H H #@H H H #€H #�H # H #°H #àH #ðGGH#H#H# H#0H#@H#PH#ÐGH#H#H# H#0H#@GPH#H#H# H#0H#@H#PH#`H#pH#€HHH #ÀH #ÐH#H#H# H#0H#HHH#@H#PG@G `H!#H!#H!#H##H##G$ G&H(#H(#H(H(H(#PH(#`H(#pH(#€H(#�H(# H(#°H( #ÀH( #ÐH( #àH( #ðH( #H(#€H*#H*H*H*#@H*#PH*#`H*#pG+€H,#H,#H-#H-H-H-#@H-#PH-#`H-#pH-#€H-#�H-# G.°H/#H/#H/# H0#H0# H0#H0#H0# H0#0H3#H3#H3# H3#(H3#0H3#@H4#H4#H4# H4#0H4#8H4#@H4#PH4#`H5#H5#H5# H5#0H6#H6#H6# H6#0H6#<H8#H8H8H8#@H8#PH8#`H8#pH8#€G9G:�H;#H;#H;# H;#0H;#@H;#@G<G=G>H?#H?#H@#HA#HA#HB#HB#HB# HB#0HB#8HB#@HB#PHB#`HB#pHC#HC#HC#HC# HC#0HC#<HC#@HC#PHC#\HC #`HC #dHC #hHC #pHC #|HC#€HC#ŒHC#�HC#”HC#˜HC# HC#¨HC#°HD#HD#HD# HD#0HD#@HD#LHD#PHD#`HD#lHD #pHD #tHD #xHD #€HD #�HD#œHD# HD#¬HD#°HD#ÀHD#ÌHD#ÐHD#ÔHD#àHD#ìHD#ðHD#ôHD#HD# HD#HD#HD# HD#,HD #0HD!#8HD"#@HD##DHD$#PHE#HE#HE# HE#0HE#8HE#@HE#PHE#`HE#pHE #xGFHH#HI#HI#HJ#HJ#HJ# GŒ"GŒ!G�H�#G�"G�!G�H�#G’"G’!G“H“#G•"G•!G—"G—!G˜"G˜!G™"G™!Gš"Gš!G›"G›!G�"G�!GŸ"GŸ!G H #G¢"G¢!G£H£#G¥"G¥!G§"G§!G¨"G¨!G©H©#G«"G«!G­"G­!G®"G®!G¯"G¯!G°"G°!G±"G±!G²"G²!G³"G³!G´H´#G¶"G¶!G·"G·!G¸"G¸!G¹H¹#G»"G»!G¼"G¼!G½"G½!G¾"G¾!G¿H¿#GÁ"GÁ!GÂHÂ#GæGéGëGîGñGôG÷ Gù GûGýGþGGGGGGG GG G"G$G$G&G(G*G,G. G.G1   +       +(+   +  +@ + !  "#+%$#%+' &'($& )*+*,+ -.-/.0  12 3 1 4 156  7 89:8;9:<%=1%>%?1@A B 11C    1 'D        1  E 111+GýFGHFIJ+K+L+M+N+O+P+Q ) R* S+TÛI@+U¯´´>, VUUU+Wެ,>+X ý|>+Yš™?, ZWXY+[”„>+\ÍÌÌ>+]°¬,?, ^[\]+_îÐÐ=+`™Ÿ?+a¿¸8?, b_`a+c+ùø=+d©¡!?+e‹‡?, fcde+g¢šš>+h¶»;?, ighU+j ¦&?+kÜÔT?+lêèh>, mjkl+núòr?+oÍÈH?+poñp=, qnop+r“Ž?, snrp+tÛà`?+uƒŠ ?, vt[u, wVZ^bfimqsv+x€+y+zff¦?+{ÍÌL?+|�Âõ=+}$tI+~€+ns\?+€ý®>+�²>+‚ýò&?+ƒ +„ +… +†+‡+ˆ+‰+Š+‹ÿ� Ž�;ŽŒ� ‘�;‘�“ ”“;”’ –;–•;–—;–˜;–™;–š œ;œ› ž;ž�  ¡ ;¡Ÿ£! ¤£;¤¢ ¦";¦¥;œ§©( ª©;ª¨ ¬);¬«;–­;œ®;œ¯;–°;ž±;œ²´, µ´;µ³;–¶;œ·¹/ º¹;º¸;ž»;œ¼;–½¿; À¿;À¾ÂH ÃÂ;ÃÁ!È1Ï"+Ò!Ö +×R¸NA, Ø×××+Ù®Ga=, ÚÙÙÙ+Û= ‡?, ÜÛÛÛ+Ýš™@, ÞÝÝÝ+ßæ®%=, àßßßæ +ìUUÕ>, íììì+î.M;, ïîîî!ú û,ýÒÒÒÒ+þ€?,ÿþþþþ+?  !   !+? -!]- _/+a½7†5!�1 ˆ!’0 0+˜€¿, ™Ò˜Ò, šþþþ+›@+œìQ8= ž0.0Ÿ ¡ £ . ¤ ¦.§ ©-.-ª± ²±³ ,±´MM+µÿÿÿÿ,±¶µµ È. Ì-  !‚ 4!�11 ™!ª!¸+¹·Ñ8+ÎÛÉ?+ÏUUÕ@+ÐHB+ý®Ga?+þÍÌÌ=+ÿÍÌL>+ ×#<+š™™>, YYY! +ffæ?+rá?+‚‹µ>+ÒŒE=, + 㥛=+!øˆh?+"fI€<, # !"+$§è<+%» >+&xV?, '$%&+(YÉ<, )(((+*¯Þ½8, +***+,ªÕ{?+-Á«Ý>, .---+/�Ës>, 0///+1shÍ?+2Üô¿+3Là–½, 4123+5Rѽ+64×�?+7?Æ», 8567+9MV»+:2•½+;»‰?, <9:;+_ ?+`…Ï>+a%ëµ=+b`¿>+cT A?+d‘+7>+e+­¦=+f�í×=+g¼t;?, h_`a, ibcd, jefg,7khij+lhvû?+mÊ@™¾+n,P(¾+oŠ[¿+p&É©?+q)ñs¾+r¸õÞ½+sOßݼ+tŠŠ³?, ulmn, vopq, wrst,7xuvw+y9•GÁ+zŽÕ€@+{ÿæ[/, |{{{, }yyy, ~zzz+1¬<+€îZ€@+�¼tÍA+‚Ï·ŒB+ƒVŽ•B+„P�ØA+…ÿæÛ., †………. ˆ, ¯ÒÒÒ!Ô +Õ&Ó=+Ö\�úA, ×ÖÖÖ. Ù+ñ@@, òñññ, óþÒÒ, ôÒþÒ, õþþÒ, öÒÒþ, ÷þÒþ, øÒþþ, ùþþþ!" 1+$ff&?+%ÍÌ,@+&Í̈A, '&&&+(33³>+)Cq‰=+*�E¿;,1+)*+,‚îSB.. 7. \ ‹(+˜Án�>+™,*ú>+š�Ø‹?+›{¡>+œ�Ø ?. ž  &)! 1+®Gá¼+˜n¿+X9´<,˜+{.=+¸…?+ ×#½,þ+ázÁ+¸…¿,1!,!7 +:oƒ:, ;TTT. = ] ^! .†.ˆ. Š. Œ!1  ;+̼Œ+,  1.1 : 8+!ÿÿO! ,1 ÒÒ+ À. !ˆ+Šr1?+‹ÀA+Œ«ª*>.Î!ç  +êÛIA. ì. ï.ñ d9!w 1.{. }. . „. †!, +/ +0 ¬Å'7 2 <.<3 5 =.=6 . : < >.>= .A .C .E © !¡ !Í  Ð !+2Ô ÿÿÿÿ+2Õ +Ö A. Ú . Ü . Þ á 2.2ã ð  ñ  ,  2 !ÿ  + €@+  @. . . . .  !^   _ ,+c À@+d Az !ƒ  . ˆ !ª * +Ò æ±a!ä * !    *.* .* ; + = *!l  . t . v .*x !æ B41 è B.Bé !4B 4.4!43.4!Q111 T+V'!oCB tC.Cu š+Ê+Ï!Õ C. Ø!ó !DB C +)\�=+ o; "D.D#. %.0'+i#+m$+š+ß+ã+ê+î+ò+ö+++!++!"!( D!8 D  .<. >. @!s !Á  ! D  . ! -  . 0!T D . ^. `. b. d. f. h. j! Ì B C . Þ+2ß. á. å. ç.é. ë. í~2+Ï,1€+�ÿÿÿN,1‚��,~‰Õ Õ !« B C . Ë ç ;çæ;çé ì1;ìë ï;ïî ò;òñ õ;õô;ì÷ ú;úù ü ;üû;üý ÿ1;ÿþ ;;ú ;;ú;ÿ!;ò;ç;ç ;ì";ï$;ò&;õ(;ò*;ì, / ;/.;ú1. I6ÇÈ71Å7ÆøÄ="É¥=ʧùËøËQÌÅQÍÅP1ÎÌÍVÏÐÉÊZÑÐÎÆÒþÑ86 ÕÖ7 ÔøÓùáøáˆ âÔØ� ãÔÚˆ äãÜ  åäÞ¼æçÔà© èçâåþè86 ëÖ7 êøéùðøðŽ ñê×  òêíŽ óòÛƒ ôóÚ¼æõêï© öõñôþö86ùú7øø÷AûüŒMùø +øýÿAü =º ÷ú ø O 9 ë Q P   þ øþ86øA�MùøAPL= &þ867øA�MùøA PK=! A"PM=#"° $%©%$#!Ç& „'&Â(%'Ç)(‹ *&)þ*86,ø+A-.ŸMù/ø/A0.'L=10 2&1þ286574ø3A-6ŸMù7ø7A86'K=98A:6'M=;:° <4%©=<;9Ç>4 „?>Â@=?ÇA@‹ B&AþB86DøCAE�MùFøFAGEOL=HG I&HþI86L7KøJAM�MùNøNAOMOK=POAQMOM=RQ° SK%©TSRPÇUK „VUÂWTVÇXW‹þX86\]7-Z7 [øYAû^ŒMA_`¸MùbøbAc`KM=dcAe^ =feO gffƒ h[g iBhAj`KK=kjº lk©mlþi…ndmAo`MK=po q)pK‚rqKpsrQtZQut v(uaˆwnv x(wþ yx z+yÒsþz86€�7|71}7~7 ø{=‚»=ƒ¼ù„ø„‚…|K|2†…©‡Ò~o‰†P Š}‰Vˆ‹‚ƒXŒ‹Š‡þŒ860‘’7 Ž7 �70�ø�;©¨ª;¡ M;¦¥§;ž�Ÿ;£¢¤;²·¶Aû“ŒMA”�MA_•¸M=–»=—¼ù«ø«>��9¬Dù­ø­ö®°ù¸ø¸=±¹·ª³º´¹› »º÷¼ú»®¼ø¼Q½¹ª ¾½M©¿¾KMP±À¿K‚±Á¹À>·Áù¯ø¯= ° ì÷ÄúÃÄÅøÅù®øÄùÆøÆ=É 9ÊLÉ Ë&Ê Í&ËAÌΕLÍ=-ÏÎQÐÏPÑŽþ‘ÒÐÑO ÓÒÒ¾æÔÓ™› ÕÔ÷ÖúÕרø×¼æÙÓš› ÚÙ>¢ÚùÖøØ>¢SùÖøÖ= Û¢¨ ÜÛ÷ÝúÜÞÝøÞù°øÝQßÓ à߃áþàQâÏQãâQäÏQåäQæÓº çæÒ©èçåã éáè>¥éQêÏQëêº ìëÒ÷íúìîíøî=ï¥QðÏQñðQòÏO óòò”ô�ó…õô�öõ ÷1ñþö…øï÷>¥øùíøíO1ùÓÓ>¨Ï=-ú¨9û\úŽQüÏQýüQþÏQÿþ¬ ÿM÷úøQÏQÇýK« M9€ùûO 9 ÕQ P   Q Ï…   Q =¥…A�M= O   QÏQ…P   .A�M>QÏQ¬ M÷úøQ ÏQ! Ç"ýL« #"M9$€!ùû#Q%$…&%›ƒ'&þQ($…)(›ƒ*þ)…+''ƒ,þ+…-**ƒ.,- /(Ò. 0/Q1ÏO 211Ž 32'Q4ÏO 544Ž 650� 736Q8ÏO 988Ž :9*� ;7:  <E;A=�%= >=P @  ?.><@  AE?AB�%>BAùøQCÏQDC¬ EDM÷FúEGFøGQHÏQIHÇJý%« KJM9L€IùûKA¦M� =NMQOL P.NOA¦Q� >QPA¦R�L=SRQTL U.STA¦V�L>VUA¦W�K=XWQYL Z.XYA¦[�K>[ZùFøFùøQ\ÏQ]\¬ ^]M÷_ú^`_ø`QaÏQbaÇcý« dcM9e€bùûdAf�N= gfO hee9 iÕhQjÏO kjj… likQmÏQnmŽ oln=p¥Ž qop� rgqAs�N>srù_ø_ùÇøÇù°ø°=t €utK> uù­ø®A¦v�L=wv x+wœþA¦y�L>yxA¦z�K={z |+{ÒþA¦}�K>}|=0~�þ~86 �‚74€øAƒ�Mù„ø„A…ƒ%M=†…LJ†L« ˆ‡MQ‰€ÇЉx« ‹ŠM¥ Œˆ‹þŒ861��71Žø�ù‘ø‘Q’ŽQ“Žƒ”þ“P1•’”þ•86˜ú7—ø–A™š’Mù›ø›Aœš =�œÇž�Q« ŸžM÷ úŸ¡ ø¡O ¢——9 £Õ¢Q¤—P¥£¤þ¥ø þ—86©ª7§7¨ø¦ù«ø«…¬§§ƒ­¨þ…®¬­�¯®þ…°T¯…±°¯ˆ²¨±þ²86·¸7´7µ7¶ø³ùºøº…»µµƒ¼þ¶…½»¼�¾½¶ ¿¾…À´¿…Á´´ƒÂþ¶…ÃÁÂ�Äö ÅąƵÅ�ÇÀÆ È(ǹˆÉÈþÉ86 ÌÖ7 ËøÊA-ÍŸMùÑøÑ  ÒEËAÓÍ =ÔÓO ÕÔÔ”ÖÒÕ ×+Ö˜þ Ø×¼ ÙØÎ÷ÚúÙÛÚøÛˆÜØÎƒÝþ܃ÞþÝ ß(Þa àßσáþà â+áÒþAãÍN=äãO åääAæÍ%=çæO èççP êâââ  é.åèêþéøÚƒëØÎˆìë΃íþì î(ía ïîЃðþï ñ+ðÒþAòÍO=óòO ôóóAõÍP=öõO ÷ööP ùñññ  ø.ô÷ùþø86 üÖ7 ûøúùøŽ ûý…þYP � … û… ÿP    �  Ž ûý�  … û …ÿP � ˆ  ˆP ƒ þ86 7 7øù=ø=”>…?>”@#…A@”B'…CBP D?AC� ED)… FDEƒ GF+Ž HD,� IH.… JDI� KJ0ˆ LGK”M4L”N8L”O<LP PMNO…Q�RQ(…SQRƒTS*…U,Q�VU-…WQV�XW/ˆYTXP ZYYYˆ [PZþ[86 ^Ö7 ]ø\;‡ˆù‰ø‰  Š(]|‘ ‹kŠ>‡‹= Œ‡  �Œ  Ž+�}~ƒ �Ž}ƒ�zyP ‘���ˆ ’�‘>‡’= “‡= ”‡… •“”… –••= —‡Ž ˜—Ž ™•€� š˜™Ž ›•�= œ‡… �›œƒ žš�Ž Ÿ–‚�  žŸŽ ¡–ƒ= ¢‡… £¡¢ƒ ¤ £Ž ¥–„… ¦¥•� §¤¦  ¨(§†  ©¨Þ‘ ªx©þª86 ­Ö7 ¬ø«A-®ŸMù°ø°A±®LM=²±Ž ³¬²  ´(³¯Aµ®LK=¶µA·®ML=¸·ª ¹¸K÷ºú¹»ºø»Ž ¼´¶� ½¼´Ž ¾´¶P ¿¶¶¶� À¾¿ˆ Á½ÀþÁøºª ¸L÷ÃúÂÄÃøÄ9 Åü´P ƶ¶¶9 Çüƈ ÈÅÇþÈøÃª ɸ ÷ÊúÉËÊøË9 Ì´¶þÌøÊª ͸%÷ÎúÍÏÎøÏ9 Ð^´þÐøÎþ´86ÓÔ7 ÒøÑ;ØÙùÚøÚŽ ÛÒÕ  Ü Û>ØÜ= ÝØ= ÞØ= ߨO àßß� áà×”âÞáP ãâââ� äÝã>ØäA¦åØM=æåA¦çØK=èç�éæèA¦êØL=ëê…ìéë í ìþí86ðÔ7 ïøîùúøú  ûï  ü ï… ýüüŽ þü›ƒ ÿòþ… ýÿ9Óû� ûó9ÓQ .� ûô9Ó� ûõ9 ÓQ   .  Q   .  � ûö9Ó� û÷9ÓQ .� ûø9Ó� ûù9ÓQ .Q .Q . þ86!"7 71 ø;¦-.A#�Mù/ø/A0#%M=10Ç21Qª 32M© 4R3R÷5ú465ø6þþø5A8#KM =98Ž :z9;ð:…<;$Ž =:%� >='9?ð>…@?(�A<@ B1ÿ{A>-BQC ¾ DCÒ÷EúDFEøF 1G ”HG+ I H…J,I K J=L-ƒMK…NM|�OLN P+OÒþ>-PùEøE…Q9=R-ƒSQRˆTS{þT86 X7 V7WøU;£[\AY�MA-ZŸMù]ø]A^Y%M=_^Ç`_Qª a`M¨ ba÷cúbdeød¾ fWþ>[fùcøe>[Rùcøc= g[© hRgR÷iúhjiøjþVøiAkY% =lk m@lO nmm9 oÕn9 p­o q1ÒþWP sqqq  r.pVsþr86 vÖ7 uøtAw�MA-xŸMùyøyAzw%M={zÇ|{ª }|M© ~R}R÷ú~€ø€þuøA�wK =‚�O ƒ‚‚9 „­ƒQ…‚P ‡………  †.u„‡þ†86 ŠÖ7 ‰øˆA‹Œ¨Mù�ø�A7ŽŒK=�ŽP�‰Ò‘‘��O ’‘‘  “E’þ“86 –Ö7 •ø”;�žA‹—¨MùŸøŸA¡—†M=¢¡O £¢¢Ž ¤£˜>�¤= ¥�A¦—†K=§¦O ¨§§Q©•…ª™©Ž «¨ª� ¬¥«>�¬= ­�A®—†L=¯®O °¯¯Q±•…²™±Ž ³°²� ´­³>�´= µ�A¶—† =·¶O ¸··Q¹•…º™¹Ž »¸º� ¼µ»>�¼= ½�A¾—†%=¿¾O À¿¿QÁ•…šÁQÕ…ÄÂÃŽ ÅÀÄ� ƽÅ>�Æ= Ç�AÈ—†N=ÉÈO ÊÉÉQË•…ÌšËQÍ•…ÎÌÍŽ ÏÊÎ� ÐÇÏ>�Ð= Ñ�AÒ—†O=ÓÒO ÔÓÓQÕ•…ÖñÕQו…ØÖ×ƒÙØþ…Ú›ÙŽ ÛÔÚ� ÜÑÛ>�Ü= Ý�AÞ—†P=ßÞO àßßQá•…âšáQã•…äâ㎠åàä� æÝå>�æ= ç�Aè—†=éèO êééQë•Qì•…íëìQî•Qï•…ðîïƒñíð…òœñŽ óêò� ôçó>�ô= õ�  ö(õ¯þö86 ú7 ø7ùø÷A‹û¨M=)ü«=ý®ùþøþAÿûMK=ÿ )K‚Kp…ùVüýXøO þ861  7 7 ø ùøŽ �QQ……    !% Q"…#!"Q$�%#$Ž1&%O1'�1(&'þ(86+,7*ø)ù-ø- .(*Ò /(*Ò…0./…100…211þ286 677 47 5ø3;<=;¡>M;²J¶A-8ŸMA‹9¨Mù?ø?><4A@9' =A@º BA:÷CúBDCøD9E,ùFøFöGIùKøK=±LJª³M´L› NM÷OúNGOøOQPLª QPM©RQKMP±SRK‚±TLS>JTùHøH=U>° VUE÷WúVWXøXùGøWùYøY=[>9\5[ _&\A`8_%M=a`ª baM÷cúbdcød= e< f&\Ag8fM=hgO ihhˆ ji; k&\Al8kL=mlO nmm on”p5o9q+pŽ rjqAs9' =tsŽ urt� veu><vùcøcùZøZùIøI=w>€xwK>>xùFøGùCøC= y<þy86 ~7 {7 |7 }øz;¦‡ˆ;£‹Œ;¦…†;‰ŠAû€ŒMA-�ŸMA‹‚¨M=)ƒ«=„®ù�ø�A7Ž€M=�ŽP�|þ‘‘��Q’‘“’A”€ =•”O –•• —C|–>…—A˜‚„ =™˜º š™÷›úšœ›øœA�‚„M=ž�ƒŸ“ž  (ŸÒ>… ù›ø›A¡‚MM=¢¡Ç£¢y« ¤£M÷¥ú¤¦§ø¦A¨‚ƒM=©¨Aª‚ƒK=«ª=¬… ­1©«¬ ®(­aA¯‚ƒL=°¯ ±®°º ²­Ò©³²±ÒA´‚M=µ´…¶³µ>‡¶ù¥ø§=·…¸·A¹‚M=º¹…»¸º ¼%Ò» ½¼ƒ¾þ½>‡¾ù¥ø¥A¿‚ =À¿ ÁÀ¾ ÂÁ¹÷ÃúÂÄÃøÄAÅ� =ÆÅO ÇÆÆ”È|Ç=ɇAÊ‚L=ËʃÌÈËAÍ‚ =ÎÍ…ÏÌÎ Ð%ÒÏ ÑЃÒþÑ Ó(ÉÒ>‡ÓùÃøÃ=Ô‡ Õ+ÔÒþ>‡ÕAÖ‚'=×ÖO Ø××>‰ØAÙ‚MM=ÚÙÇÛÚ« ÜÛM÷ÝúÜÞßøÞAà‚ƒ =áຠâáÒ>‹âùÝøß>‹SùÝøÝ= ã‹© äRãS÷åúäæåøæAç‚„K=èçƒé“èAê‚„L=ëêAì‚„K=íìƒîëí ï(îaˆðéï ñ+ðÒþAò‚MK=óò ô)óL‚õôKpöõˆ÷þöƒøþñ ù.÷þø= ú‰9 ûŠ}9 üúûùAý‚O =þýŽ ÿüþA‚ƒ =P   .úÿ>‰ùåøå= ‰9 6}>‰= ‰=‡P   .{ þ8617 7 7 7ø ;¦Ò;¦˜;;¦ÒA¾Mùø & ‡AN =  "+ Ò!m#" $& ‡A%N$% =&% '%&ª (#%÷)ú(*)ø*P1+Ò'þ+ø) ,& ‡A-N,K=.-O /..Ž 0/  1 ¸æ21© 32  40ƒ 54 ˆ 653ƒ 70 ˆ 873  9%68  :(68Q;9 <(Ò;Q=: >%'=P1?<>>?ª @# ÷Aú@BCøBA¦DM=EDQF9 G(EFQH9 I(GHA¦JK=KJQL: M%KLQN: O%MNP1PIO>PùAøCª Q#M÷RúQSTøSˆ U 0ˆ V 0”WUV>Wˆ X 0ˆ Y 0”ZXY>Zˆ [ 0ˆ \ 0”][\ƒ^]þ>^ùRøTQ_0Q`0 a%_`Qb0…c›bˆdacª e#K©fedÒQg0Qh ƒighQj Qk …ljkQm Qn …omn�plo…qffQr …sqrQt …ustƒvpu>vQw Qx …ywxQz Q{ …|z{�}y|…~ff…~iQ€ …�€�‚}�>‚Qƒ Q„ ……ƒ„Q† Q‡ …ˆ†‡�‰…ˆ…Šaa…‹ff…Œ‹i…�Œiª Ž#K©�Ž�Šƒ�‰�>�ùRøRùAøA=‘=’…“‘’=”=•…–”•ƒ—“–=˜ ™˜¸ š™÷›úšœ�øœ=ž Ÿž¸  Ÿ÷¡ú ¢£ø¢A¦¤K=¥¤=¦º §¦Ò©¨§˜¥A¦©K>©¨ù¡ø£=ªº «ªÒ÷¬ú«­®ø­A¦¯K=°¯=±²±=³…´›³ˆµ²´ ¶%°µA¦·K>·¶ù¬ø®A¦¸M=¹¸=º»º=¼…½›¼ˆ¾»½ ¿(¹¾A¦ÀM>À¿ù¬ø¬ù¡ø¡ù›ø�¸ Á—Ò÷ÂúÁÃÄøÃA¦ÅK=ÆÅ=Ǻ ÈÇÒ©ÉȘÆA¦ÊK>ÊÉùÂøÄ=ËÌË Í—ƒÎÌÍ=ψÐÎÏ=ÑÒÑ Ó—�ÔÒÓ=ÕˆÖÔÕ ×%ÐÖ=ØÙØ Ú—ƒÛÙÚ=܈ÝÛÜ=ÞßÞ à—�áßà=âˆãáâ ä(Ýã=åº æåÒ÷çúæèéøèA¦êM=ëê ì(ë×A¦íK=îí ï%îäP1ðìï>ðùçøéA¦ñM=òñA¦óK=ôó õ%ô׸ öòõ÷÷úöøùøøA¦úK=ûú ü%û×A¦ýK>ýüù÷øùA¦þM=ÿþ (ÿäA¦M>ù÷ø÷ùçøçùÂøÂù›ø›=1þ8677 7 ø;¦  ;¦ÒA ¾Mùø &‡A N=8QQQQA  =O ”QQƒ…   !% þ…"!> "Q#Q$#º %$Ò÷&ú%'&ø'Q(Q)( *+)Ò!m+*Q,O -,,Ž .-Q/.Q0. 1%/0ª 2+M÷3ú245ø4ˆ 6. 7B6ƒ87þ…978… :..ˆ ;: <B; =(<ˆ>9=>>ù3ø5ª ?+ ÷@ú?ABøA  Cƒ DC.  E(D¯ FBEQGDQHDQID J(HI K(GJ L%KÒ�MFL>Mù@øBª N+L÷OúNPQøPO1R SBRƒTS1QU VUQW.ƒXVWP1YTXQZYQ[Y \(Z[ ]%\Ò 1^(Y  _B^�`]_>`ùOøQ…a1 b(:aˆcþbQd. e(:dˆfþeP1gcf 1hEgO1i jBiQkQl.ƒmklP1njm”ohnQp.qpQrƒsqr t(os>tùOøOù@ø@ù3ø3=u =v…w vQxQyxˆzwy {+zÒþQ|Q}| ~{}…u~> ù&ø&=€ þ€86‡ˆ7‚7ƒ7„7…7†ø�A‰¾Mù�ø� Ž&‚‡A�‰NŽL=��Q‘�…’‘„´ “’Ò÷”ú“•”ø•Q–�ƒ—†……˜–—™‘…š™ƒ ›š œ%›þ…�˜œþ�ø”žƒˆŸž„  +Ÿ…†º ¡„Ò©¢¡ …º £„Ò©¤£†  ¥„…¦‘¥ƒ§¤¢…¨¦§…©¨Šª© «ªƒ¬þ«ˆ­¬©ˆ®©‹ƒ¯Œ®…°©¯ƒ±°…²©±ƒ³þ²¸ ´©©µ´³­¶‘º ·„Ò©¸·¢¤…¹„¸�ºƒ¹ »(ºÒ…¼¶» ½¼ ¾%½þQ¿�ƒÀ†…ƒÁ¤¢ƒÂÀÁƒÃ¤¢…ľÅÅĵ�ÆÂÅ…Ç¿ÆþÇ86̸7É7Ê7ËøÈ;¦ÍÎùÏøÏ…ÐÉÊ>ÍÐ=ÑÍ=ÒÍ…ÓÑÒ>ÍÓ=ÔÍ=ÕÍ…ÖÔÕ>ÍÖ=×̓Øþ× Ù(ØÒ>ÍÙ=ÚÍ=ÛÍ…ÜÚÛ>ÍÜ=ÝÍ Þ(ɹßË àÞß…áÝàþá86 æç7ã7 ä7 åøâ;¡íM;¦ðñ;ëì;îï;²¶A-èŸMAé¾MùòøòAóéL=ôóO õôôAöéKK=÷öŽ øõ÷>ëøAùéKM=úù û&ã‡AüéNûN=ýüùþøþöÿùø=±ª³´› ÷úÿøQª M©  KMP±  K‚±  > ùø= íQý &°  ÷úøùÿøùøQýQý=í° %©=íÇ „ÂÇ‹ &  &A^!è ="!Q#"O $## %$>î%>ðþQ&"Q'&« ('M÷)ú(*)ø*Q+"O ,++ƒ -,ä .B- /(.aP 0///ˆ 1-0>î1 2B-Q3"Q43Q5"Q6597Ì246>ð7Q8"Q98ª :9L÷;ú:<;ø<= =î >=Q?"O @??”A>@QB"QCB D(ACƒEþDQF"QGFƒHþG I(HaˆJEI K(¹J=LðQM"QNM OKNƒPþO…QLP>ðQù;ø;ù)ø)…Rúú�SþR…T›ú= Uî”VåU…WTVƒXSW= YëQZ"O [ZZ=\ð…]úúƒ^þ]…_\^…`êX aX…b`aˆc_bÂeLÇf g&f h&e‡Aié%hg=ji…kcjŽ l[k� mYl>ëmùøùø=ní€onK>íoùþøÿ= pëþp86vw7r7 s7 t71uøq;£ƒ„;€¯;¦z{;£…†;¦�Ò;£|};¡‚M;£~;²À¶A-xŸMAy¾Mù‡ø‡ ˆ&r‡A‰yNˆ=8ЉQ‹ŠPŒsþ‘�‹ŒO Ž��Q�ŠP�tÒ‘‘��O ’‘‘A“y =”“O •”””–s•Q—ŠQ˜—ƒ™–˜Ašy =›šO œ››”�tœQžŠQŸžº  ŸÒQ¡uQ¢u�£¡¢…¤£>z¤Q¥ŠQ¦¥º §¦Ò÷¨ú§©ªø©«™ˆ¬«�Q­uº ®¬­>|®ù¨øª>|Sù¨ø¨= ¯|÷°ú¯±²ø±³™ˆ´³�Qµu¸ ¶´µ>~¶ù°ø²>~Sù°ø°= ·~÷¸ú·¹¸ø¹º™ˆ»º�>z»ù¸ø¸ù¼ø¼ö½¿ùÁøÁ=±ÂÀª³Ã´Â› ÄÃ÷ÅúĽŸÅQÆÂª ÇÆM©ÈÇKMP±ÉÈK‚±ÊÂÉ>ÀÊù¾ø¾=Ë‚©Ì „%° ÍËÌ÷ÎúÍÎÏøÏù½øÎùÐøÐ=Ò‚ÇÓÒ ª ÔÓM¨ ÕÔ÷ÖúÕרø×ª ÙÓ >ƒÙùÖøØ>ƒRùÖøÖ= Úƒ©ÛÚ€ª ÜÓM¨ ÝÜ÷ÞúÝßàøßª áÓ >…áùÞøà>…RùÞøÞ= â…©ãâ�‚=äzQåuP1æäåQçu=èzP1éçè=ê‚° ëêP³íëë©1ìíéæ=î‚° ïî%P³ñïï©1ðñuìQòðQóðƒôòó…õôQöðQ÷ð�øö÷…ùøúÛ° ûÓL©üûúÛ…ýõü�þùýŽ ÿtþ� sÿŽ  ’þ�  Ž 9 r  = ‚°   %÷ ú   ø = €Q ŠO 9 ær t… Q ŠO    �   … ãõ  + Òþ…   Ž    �   >€ ù ø = �… ãõ…   �   >� ù ø ùÑøÑù¿ø¿= ‚€  K>‚ ù¼ø½¨   ÷ ú   ø Q uQ u9 ! ‡r™� >�! ù ø = " €=# �P$ " # þ$ 86 + , 7 & 7 ' 7 ( 7) 7* ø% ;¦G Ò;¡B C ;¡> M;¡8 M;2 1 3 ;¡H M;¡D E ;¡? M;£9 : ;5 4 6 ;F ¯;¦@ A ;< ; = ;¡7 M;²O ¶;²– ¶;²» ¶;²Ø ¶;² ¶;²i ¶A-- ŸMA. ¾MùI øI ® J * ~ùK øK öL N ùP øP =±Q O ª³R ´Q › S R ÷T úS L T øT QU Q ª V U M©W V KMP±X W K‚±Y Q X >O Y ùM øM =Z 8 A[ . MM=\ [ ] &\ ©^ J ] %° _ Z ^ ÷` ú_ ` a øa ùL ø` ùb øb =d 8 Çe d „f e Âg * f Çh g / ¨ i J ÷j úi k l øk ª m h M>9 m ùj øl >9 Sùj øj = n 9 ÷o ún p o øp ùL øo q &h ‚r q K=s 8 ©t J s r u &t ‡A7v . Nu M=w v Px ' þ‘y w x O z y y P{ ( Ò‘| w { O } | | 91~ t z } ) Q ~ Q€ ~ º �  € ÷‚ ú� ƒ ‚ øƒ =„ 7 … &„ A¡† 1 … >† t =‡ 7 ˆ &‡ A‰ 4 ˆ >‰ ~ =Š 7 €‹ Š K>7 ‹ =Œ 7 ª � Œ %÷Ž ú� � Ž ø� ùL øŽ ù‚ ø‚ ùc øc ùN øN =� 8 €‘ � K>8 ‘ ùK øL ù’ ø’ ö“ • ù— ø— =±˜ – ª³™ ´˜ › š ™ ÷› úš “ › ø› Qœ ˜ ª � œ M©ž � KMP±Ÿ ž K‚±  ˜ Ÿ >–   ù” ø” =¡ > =¢ 7 ° £ ¡ ¢ ÷¤ ú£ ¤ ¥ ø¥ ù“ ø¤ ù¦ ø¦ =¨ > =ª > « &ª A¡¬ 1 « =­ ¬ =® > ¯ &® A° 4 ¯ =1± ° 9² v­ ' ( ± ³ &¨ A© ´ ; ³ >´ ² ù§ ø§ ù• ø• =µ > €¶ µ K>> ¶ ù’ ø“ ù· ø· ö¸ º ù¼ ø¼ =±½ » ª³¾ ´½ › ¿ ¾ ÷À ú¿ ¸ À øÀ QÁ ½ ª  Á M©à  KMP±Ä à K‚±Å ½ Ä >» Å ù¹ ø¹ =Æ ? =Ç 7 ° È Æ Ç ÷É úÈ É Ê øÊ ù¸ øÉ ùË øË =Í ? Î &Í A¦Ï ; Î =Ð Ï ¸ Ñ Ð Ò÷Ò úÑ Ó Ò øÓ >@ Ò>B MùÔ øÔ öÕ × ùÙ øÙ =±Ú Ø ª³Û ´Ú › Ü Û ÷Ý úÜ Õ Ý øÝ QÞ Ú ª ß Þ M©à ß KMP±á à K‚±â Ú á >Ø â ùÖ øÖ =ã B =ä 7 ° å ã ä ÷æ úå æ ç øç ùÕ øæ ùè øè =ê B ë &ê A¦ì 4 ë K=í ì =î ? ï &î A¦ð 4 ï K=ñ ð ò %í ñ =ó B ô &ó A¦õ 4 ô M=ö õ =÷ ? ø &÷ A¦ù 4 ø M=ú ù û (ö ú ƒü ò û ý (ü Ò=þ B ÿ &þ A¦ 4 ÿ K= = B  & A¦ 4  M=  ƒ    ( aˆ ý  = @ = B  & A¦ ; =  ( Ò…   �  >@  ùé øé ù× ø× = B €  K>B  ùÔ øÕ = ?  & A¦ ;  =    = @  ( ˆ    % þ>D Mù ø ö  ù! ø! =±" ª³# ´" › $ # ÷% ú$  % ø% Q& " ª ' & M©( ' KMP±) ( K‚±* " ) > * ù ø =+ D =, 7 ° - + , ÷. ú- . / ø/ ù ø. ù0 ø0 =2 D 3 &2 A¦4 ; 3 =5 4 º 6 5 Ò÷7 ú6 8 7 ø8 =9 D : &9 A¦; 4 : K=< ; == ? > &= A¦? 4 > K=@ ? A %< @ =B D C &B A¦D 4 C M=E D =F ? G &F A¦H 4 G M=I H J (E I ƒK A J L (K Ò=M D N &M A¦O 4 N K=P O =Q D R &Q A¦S 4 R M=T S ƒU P T V (U aˆW L V =X D Y &X A© Z ; Y =[ Z …\ W  ƒ] þ\ Ž^ [ ] _ &X A© ` ; _ >` ^ ù7 ø7 ù1 ø1 ù ø =a D €b a K>D b ù ø ùÒ øÒ ùÌ øÌ ùº øº =c ? €d c K>? d ù· ø¸ ùe øe öf h ùj øj =±k i ª³l ´k › m l ÷n úm f n øn Qo k ª p o M©q p KMP±r q K‚±s k r >i s ùg øg =t H =u 7 ° v t u ÷w úv w x øx ùf øw ùy øy ={ H | &{ A¦} ; | =~ } º  ~ Ò÷€ ú � € ø� = ‚ F =ƒ H „ &ƒ A© … ; „ =† … O ‡ † † � ˆ ‚ ‡ >F ˆ =‰ G =Š H ‹ &Š A¦Œ ; ‹ =� Œ �Ž ‰ � >G Ž ù€ ø€ ùz øz ùh øh =� H €� � K>H � ùe øf =‘ G ’ ‘ “ ’ Ž ” & “ = • F ƒ– þ“ =— G ˜ (— 0 ˆ™ – ˜ Ž š • ™ � › ” š þ› 86   ¡ 7 � 7 ž 7Ÿ øœ Aû¢ ŒMA-£ ŸMA¤ ¾Mù¥ ø¥ A¦ ¢ MML=§ ¦ A¨ ¢ MKL=© ¨ Aª ¢ MLL=« ª P ¬ § © «  ­ E¬ A® ¢ =¯ ® O ° ¯ ¯ A7± ¢ M=² ± P³ ž þ‘´ ² ³ Qµ ´ Ž ¶ ­ µ ƒ · ž ¶ A¸ ¢ =¹ ¸ º º ¹ Pæ¼ º º º © » ¼ · ° ƒ ½ ž » ¾ B½ ƒ ¿ ž » À (¾ aP Á À À À ˆ  ¿ Á 9 à + � »  ¾ Ÿ º Ä ¾ ÒPæÆ Ä Ä Ä © Å Æ Ã � þÅ 86Ì Í 7È 7 É 7 Ê 7 Ë øÇ ;á à Ô ;£Û Ü ;¡× M;á â ã ;£Ý Þ ;¡Ø M;¦ß Ò;£Ù Ú ;² ¶;²´ ¶;²É ¶AûÎ ŒMA-Ï ŸMAÐ Ñ ¢M="Ò ¥=Ó §ùä øä å &È Aæ Ï å %M=ç æ è &È Aé Ï è K=ê é O ë ê ê  ì &È Aí Ï ì % =î í ï &î ‡ ò &ï ‡Aó Ñ Kò M=ô ó õ &ï ‡Aö Ñ Kõ M=÷ ö ø &ï ‡Aù Ñ Kø K=ú ù û )ú KA7ü Î M=ý ü Pþ É þ‘ÿ ý þ Q ÿ  ª  ç M÷ ú   ø  &ï ‡A Ñ K LK=  º    ÷ ú ø þþø ‚ û K>× ù ø ö  ù ø =±  ª³ ´ ›   ÷ ú  ø Q  ª   M©  KMP±  K‚±   >  ù ø = Ø °   û ÷ ú   ø ù ø ù ø =! Ø " &! # &ï ‡A$ Ñ K# K" =% $ ¼ &  % ÷' ú& ( ' ø( =) Ø >× ) ù ø' ù ø ù ø =* Ø €+ * K>Ø + ù ø ù ø =- × ‚. û K / &- . €0 ÷ / 1 &0 ‡ 3 &1 ‡A4 Ñ L3 L=5 4 Q6 5 Q7 5  8 CÉ ë …9 7 8 �: 6 9 Q; ô Q< ô  = (< þ…> ; = …? > : Ž @ Ê ? � A É @ QB ô …C B : Ž D Ë C � E A D ª F ç K÷G úF H G øH ƒ I E ë  J I QK J QL J ¾ M K L ÷N úM O P øO QQ J QR J ¾ S Q R >Ù S ùN øP >Ù SùN øN = T Ù ÷U úT V W øV QX I ¾ Y X Ò©Z Y MK>× Z ùU øW Q[ J Q\ J ¾ ] [ \ ÷^ ú] _ ` ø_ Qa I ¾ b a Ò©c b L >× c ù^ ø` Qd I ¾ e d Ò©f e %N>× f ù^ ø^ ùU øU ùG øG =g × ‚h û K i &g h €j ÷ i k &j ‡ l &k ‡A7m Ñ Ll M=n m Po E þ‘p n o Qq p ¼ r q Ò÷s úr t s øt þþøs O u p p Qv p P w v v v ˆ x u w Qy x z y º { z þ¨ | { ÷} ú| ~  ø~ Q€ x  � € º ‚ � þ>Û ‚ ù} ø >Û Rù} ø} = ƒ Û ¨ „ ƒ ÷… ú„ † ‡ ø† Qˆ x º ‰ ˆ þ>Ý ‰ ù… ø‡ >Ý Rù… ø… = Š Ý ÷‹ úŠ Œ ‹ øŒ þþø‹ � &k ‡AŽ Ñ L� K=� Ž Q� x …‘ � �’ ‘ Q“ x …” “ ƒ• ” P1– ’ • O1— � � O1˜ � � …1™ – ˜ �1š — ™ A› Ñ MM=œ › O1� � � …ž œ P1Ÿ ž ž �1  � Ÿ O1¡ � � O1¢ � � �1£ ¡ ¢ …¤ œ P1¥ ¤ ¤ ƒ1¦ £ ¥ Q§ ô ¼ ¨ § Ò÷© ú¨ ª « øª 1¬ +š   ¦ Q­ x 9® Ǭ ­ >ß ® ù© ø« …¯ § œ ù° ø° ö± ³ ùµ øµ =±¶ ´ ª³· ´¶ › ¸ · ÷¹ ú¸ ± ¹ ø¹ Qº ¶ ª » º M©¼ » KMP±½ ¼ K‚±¾ ¶ ½ >´ ¾ ù² ø² =2¿ à ³ À ¿ Õ ÷Á úÀ Á  ø ù± øÁ ùà øà >â Ô ùÅ øÅ öÆ È ùÊ øÊ =±Ë É ª³Ì ´Ë › Í Ì ÷Î úÍ Æ Î øÎ QÏ Ë ª Ð Ï M©Ñ Ð KMP±Ò Ñ K‚±Ó Ë Ò >É Ó ùÇ øÇ =2Ô â ³ Õ Ô Õ ÷Ö úÕ Ö × ø× ùÆ øÖ ùØ øØ =2Ú â oÛ Ú =2Ü à oÝ Ü P1Þ Û Ý Ž1ß Þ ¯ �1à š ß 1á +à   ¦ =â ß Qã x 9ä Çá ã �å â ä >ß å ùÙ øÙ ùÈ øÈ =2æ â €2ç æ Õ >â ç ùÅ øÆ ùÄ øÄ ù³ ø³ =2è à €2é è Õ >à é ù° ø± =ê ß ˆë ê Ö >ß ë ù© ø© ª ì ç M÷í úì î í øî ï &ï ‡Að Ñ Kï L=ñ ð =ò ß Qó ñ Qô ñ  õ 1ó ô  ö .ò þõ >ß ö ùí øí =÷ ß Qø ô  ù .þ÷ ø þù 86þ ÿ 7 û 7 ü 7 ý øú ù ø ÷ úü   ø P ý þþ ø þý86  Ö7  ø ;£  ;¦  ;¦  ;¦  ;¦  ù ø    Q  Q  ¾    ÷ ú   ø Q  Q  ¾    >  ù ø > Sù ø =   ÷ ú ! ø Q"  > " Q#  ¾ $ # Ò÷% ú$ & ' ø& > ÒQ(  ) ( > ) Q*  + * > + ù% ø' > þQ,  > , Q-  . - > . ù% ø% ù ø! Q/  Q0  ¾ 1 / 0 ÷2 ú1 3 4 ø3 Q5  > 5 Q6  ¾ 7 6 Ò÷8 ú7 9 : ø9 > ›Q;  > ; Q<  > < ù8 ø: > ñQ=  > = Q>  ? > > ? ù8 ø8 ù2 ø4 Q@  > @ QA  ¾ B A Ò÷C úB D E øD >  QF  > F QG  H G > H ùC øE >  QI  J I > J QK  L K > L ùC øC ù2 ø2 ù ø =M =N =O ˆP N O �Q P þ…R Q =S  =T ˆU S T �V U þ…W V P X M R W þX 86 ] ^ 7Z 7 [ 7\ øY A_ ` ³M=a ¶=b ·ùe øe Af ` ML=g f Âh g \ i )h Kpj i ˆk j Ql [ ƒm þk n +l k m Qo [ ƒp þk q +o k p Qr [ �s r n ˆt s c pu Z �v u q ˆw v d P1x t w py \ Vz { a b X| { x y O } | | þ} 86 ‚ ƒ 7 7 € 7� ø~ ;£‡ ˆ A_ „ ³M=… ¶=† ·ù‰ ø‰ AŠ „ MK=‹ Š Œ )‹ K‚� Œ KpŽ � � +� ÒŽ � +� Ò!m‘ � p’ ‘ ƒ“ � ’ 9 ”  € 9 • ]  ” ‘ ¼ – “ Ò¨ — – ÷˜ ú— ™ š ø™ €› ‘ K® œ › Œ >‡ œ ù˜ øš >‡ Rù˜ ø˜ = � ‡ ÷ž ú� Ÿ ž øŸ þ• øž ƒ  þ“ Ž ¡ •   €¢ ‘ K9 £ ]  ” ¢ Ž ¤ £ “ � ¥ ¡ ¤ þ¥ 86© ª 7*§ 7 ¨ ø¦ ù« ø« Q¬ § P­ ¨ þ‘® ¬ ­ O ¯ ® ® Q° § O ± ° ° Q² ± Q³ ¯ ´ ³ ƒµ ² ´ Q¶ ± Q· ¯  ¸ · ƒ¹ ¶ ¸ Qº ± Q» ¯  ¼ » ƒ½ º ¼ ¾ %¹ ½ ¿ %µ ¾ ¸ À ¿ Ò÷Á úÀ  Á ø þÒøÁ Qà § QÄ Ã º Å Ä Ò¨ Æ Å ÷Ç úÆ È Ç øÈ þþøÇ QÉ § QÊ É ˆË ¿ Ê Ì %Ë þþÌ 86Ñ ¸7Î 7Ï 7Ð øÍ ùÓ øÓ º Ô Ï Ò÷Õ úÔ Ö Õ øÖ ƒ× Ð Î ˆØ × Ï þØ øÕ ¸ Ù Ï Ò÷Ú úÙ Û Ú øÛ Ü Ð ƒÝ Ü Î ˆÞ Ý Ï þÞ øÚ þÒ 86 ã ä 7*à 7 á 7 â øß ùå øå Qæ à Pç â Ò‘è æ ç O é è è Qê à Që ê Çì ë Kª í ì M÷î úí ï î øï þé øî Qð à Pñ á þ‘ò ð ñ O ó ò ò Qô à O õ ô ô Qö ó Q÷ é Qø õ 9ù Ñ ö ÷ ø Qú ó Qû é Qü õ 9ý Ñ ú û ü Qþ ó Qÿ é Q õ 9 Ñ þ ÿ  %ý   %ù   ( ÒŽ  é  �  ó  Q à O    ƒ   þ 86  7 7 7 7 ø ;   ;¦ Ò;   ; ¯;¡ M;²* ¶A_  ³M= ¶= ·ù ø A  MM=   & A  MK=! " )! K‚# " Kp$ # …% $ ù& ø& ö' ) ù+ ø+ =±, * ª³- ´, › . - ÷/ ú. ' / ø/ Q0 , ª 1 0 M©2 1 KMP±3 2 K‚±4 , 3 >* 4 ù( ø( =5  ° 6 5  ÷7 ú6 7 8 ø8 ù' ø7 ù9 ø9 =<  > &< PA= ?  K> =*@ ? QA @ QB A ÂC  B ÇD C Kª E D M÷F úE G F øG ù) øF > @ =*H  9I © H ¼ J I Ò÷K úJ L K øL ù) øK = M  QN @ QO N > @ =*P  9 Q ã P 9 R ‚ O Q % QS @ QT S Ž U R T Ž V U I � W M V > W =X  �Y X I > Y ù: ø: ù) ø) =Z  €[ Z K> [ ù& ø' =\  º ] \ þ÷^ ú] _ ^ ø_ = `  =a  P b a a a ˆ c ` b > c > þù^ ø^ = d  =e  Pf d e þf 86k l 7 h 7 i 7j øg ;u v ;¦q Ò;£s t ;p ¯; w x ;¡r M;²… ¶A_ m ³M=n ¶=o ·ùy øy Az m MM={ z | &{ A} m MK=~ }  )~ K‚€  Kù� ø� ö‚ „ ù† ø† =±‡ … ª³ˆ ´‡ › ‰ ˆ ÷Š ú‰ ‚ Š øŠ Q‹ ‡ ª Œ ‹ M©� Œ KMP±Ž � K‚±� ‡ Ž >… � ùƒ øƒ =� r ° ‘ � | ÷’ ú‘ ’ “ ø“ ù‚ ø’ ù” ø” =– r — &– PA= ˜ m K— =*™ ˜ Qš ™ Q› š œ j › Ç� œ Kª ž � M¨ Ÿ ž ÷  úŸ ¡ ¢ ø¡ Q£ ™ Q¤ £ ª ¥ ¤ M>s ¥ ù  ø¢ >s Rù  ø  = ¦ s ÷§ ú¦ ¨ § ø¨ ù„ ø§ >w ™ =*© w 9ª © © h ¼ « ª Ò÷¬ ú« ­ ¬ ø­ ù„ ø¬ Q® ™ O ¯ ® ® >u ¯ Q° ™ Q± ° ª ² ± K÷³ ú² ´ ³ ø´ Qµ ™ Q¶ µ Q· ™ P¸ i Ò‘¹ · ¸ O º ¹ ¹ 9 »  º 9 ¼ ] ¶ » € >u ¼ ù³ ø³ = ½ p = ¾ u Ž ¿ ¾ ª � À ½ ¿ >p À =Á q � Á ª >q  ù• ø• ù„ ø„ =à r €Ä à K>r Ä ù� ø‚ =Å q º Æ Å þ÷Ç úÆ È Ç øÈ = É p =Ê q P Ë Ê Ê Ê ˆ Ì É Ë >p Ì >q þùÇ øÇ = Í p =Î q PÏ Í Î þÏ 86Ò ú7Ñ øÐ AûÓ ŒMA-Ô ŸMùÕ øÕ AÖ Ô MK=× Ö ÇØ × « Ù Ø M÷Ú úÙ Û Ú øÛ O Ü Ñ Ñ   Ý (Ü ¯QÞ Ñ  ß +Þ ÒþPà Ý ß þà øÚ 9á ùÑ þá 86Bå æ 74ã 71ä øâ ;è ç é ùê øê Që ã A© ì ç M>ì ë Q í ã Aî ç K>î í Q ï ã Að ç L>ð ï Q1ñ ã Aò ç >ò ñ Qó ã A¡ô ç %>ô ó Qõ ã A© ö ç N>ö õ Q÷ ã A¦ø ç O>ø ÷ Qù ã A© ú ç P>ú ù Aû ç >û ä =Bü ç þü 864ÿ 7Bþ øý ;ùøQþ A© M>Q þ AK>Q þ A L>  Q1 þ A  >  Q þ A¡%> Qþ A© N>Qþ A¦O>Qþ A© P>=4þ86473ø;AûŒMA�MùøA7M= Q !P"!þ‘# "A7$L=%$‘&%#A© 'M>'&O (##A)K>)(A7*K=+*Q ,P-,Ò‘.+-O /..  0E/A1L>10Q12A3 >32Q4A¡5%>54A6%M=76Ç87L« 98M©:9˜þA7;M=<;Q=O >==P?>Ò‘@<?O A@@  BEAQCQDC…ED:PFBEA© GN>GFQHA¦IO>IHA© JP>Jÿ=4KþK861PQ7M71N71OøLA™R’MùSøS„UML W&UVAXRNW=YX„ZML€[ZK \&[VA]RN\=^]Q_Yº `_P³b``©1abONO1cYY”dcaQeY�fdeO1g^^”hgaQi^�jhiP1kfjþk86Cno7Bmøl;tsu;¦vþA™p’M=q•=r›ùwøwQ1xm91y�xQ1zm91{�zA|pM=}|A© ~sM>~}Ap M=€Ç�€K« ‚�M© ƒR‚S÷„úƒ…„ø…A© †sM=‡†91ˆPMy{Vz ‰qrWЉˆ9‹˜Š…Œ‡‹A© �sM>�Œù„ø„AŽsK>ŽöA�pLM=��A¦‘sL>‘�A’pLK=“’A¦”s >”“A•pK=–•O —––A˜s%>˜—A¦™sN>™þA›pOM =œ›A¦�sO>�œAžpOM=ŸžO  ŸŸA¡sP>¡ A¢pOKK=£¢A¦¤s>¤£A¥pOKL=¦¥A¦§s'>§¦A¨pO M=©¨A¦ªs>ª©A«pO K=¬«A¦­sƒ>­¬A®s„>®öA£¯s…>¯SA°pO%=±°O ²±±A³s†>³²A´pO% =µ´A¦¶s‡>¶µA·pONM=¸·A¦¹s>¹¸AºpONL=»ºA¼pON =½¼=¾v ¿.»½¾A¦Àsˆ>À¿AÁpOOM=ÂÁA¦Ãs‰>ÃÂAÄpOO=ÅÄO1ÆÅÅAÇsŠ>ÇÆAÈpOP =ÉÈA¦ËsÊ>ËÉAÌpOP=ÍÌO ÎÍÍAÐsÏ>ÐÎ=CÑsþÑ86 ÔÕ7CÓøÒ;£×ØA™Ö’MùÙøÙAÚÖ K=ÛÚª ÜÛK÷ÝúÜÞßøÞQàÓQáàAâÖK =ã⸠äáã>×äùÝøß>×SùÝøÝ= åש æSåSþæ86é,7èøçùêøê…ëèè…ìëë…íìèþí86 òó7 ï7 ð7ñøîùôøôƒ õðïƒöþñ ÷+öÒþ9øé÷Ž ùõø� úïùþú86 ýÖ7 üøûAûþŒMùÿøÿAþMML=AþMKL=AþMLL=P Aþ =O ƒ  ü  E   EA þ = º Pæ©   þ86D7B7 7C7 ø;"!#;$%;ž&';žaAûŒMA�MA™’MA_¸M=»=¼ù(ø(Q )  *E) +*Q ,  -E,Pæ/© ./-+Q0O 100>$1= 2$= 3$”4.3Ž 5.4ƒ 625  7E6>$7= 8$  9D.8Q:Q;:Ž <9;A=!K>=.A>!M>>.A?!L>?.Q @ ÷Aú@BAøB= C$Q D QEDŽ FCEQ G QHGŽ I<H� JFIQ K QLKŽ M.L� NJM  OENAP!L>POùAøAQQO RQQQS T+SÒþQU V+UœþQWAX!M= YXQ ZP 0[RTVWYZ>&[© \RS÷]ú\^]ø^Q _=0`&>a`=0ba90c‘_.b>&cù]ø]Ad&%= edAf!M>feA¦g& =hgA¦j!i>jhAk&N= lkAn!m>nlQ o9 pýoAq! >qpQ rAs!%>srAt!M= utAv! = wv”xuw y(x¹A¦z!N>zyA¦{&K=|{A¦}!>}|A¦~&L=~A¦€!'>€A¦�!'=‚�A¦ƒ!'=„ƒ……‚„A¦†!>†…A¦‡!=ˆ‡A¦‰!=Љ…‹ˆŠA¦Œ!ƒ>Œ‹A�&M= Ž�A�!O>�ŽA�!O= ‘�A¦’!=“’ƒ”þ“Ž •‘”A–!P>–•A—OKM=˜— ™(˜þA¦›!š>›™A¦œ!š=�œƒž�þA¦Ÿ!š= Ÿ�¡ þˆ¢ž¡Q£ ¤(£Ò…¥¢¢P ¦¥¥¥Q §… ¨¦§  ©%¨šŽ ª©¤A«!O= ¬«A¦­!=®­P °®®®  ¯.ª¬°A±!„>±¯P ²¤¤¤A¦³!=´³P ¶´´´  µ.²š¶A·!…>·µQ¸ ¹+¸ÒþA¦º!†>º¹A»!„= ¼»A½!‡>½¼Q¾ ¿+¾ÒþA¦À!>À¿= Á$Q1ÂQÃÂŽ ÄÁÃQ1ÅQÆÅŽ Ç<Æ� ÈÄÇ  ÉEÈAÊ!ˆ>ÊÉAË!ˆ= ÌË  ÍD.Ì  ÎEÍAÏ!‰>ÏÎQÐ Ñ+ÐÒþA¦Ò!Š>ÒÑQÓ Ô+ÓœþA¦Õ!Ê>ÕÔA¦Ö!Ê=×ÖA¦Ø!Ê=ÙØ…Ú×Ù…ÛÚÚA¦Ü!Ï>ÜÛQ Ý  Þ(ݯAà!ß>àÞQá â+áþA¦ä!ã>äâA¦å!ã=æåA¦ç!ã=èç…éæèA¦ë!ê>ëéQì í+ìÒþA¦ï!î>ïíQ ð  ñ(ð¯Aó!ò>óñQô õ+ôÒþA¦÷!ö>÷õA¦ø!=ùøA¦ú!š=ûú…üû›ƒýü› þ+ýÒþ…ÿùþ (ÿ A¦!>AMM=O  BAMK=O   B �  A ML=  O    B� ˆñQ (Ò…¼ ÒA£!>A¦!Q>QO1A!>A!>šAOL = A¦"!!>" =D#!þ#86 '(7D%7&ø$ù)ø)Q *% Q +% 9 ,ò*+&Q -%Q.%P 0...  /.,-0þ/86 787D27 37 4757 6ø1;?@;:¯;=>;9¯;¦;<ùAøAQ B2”CB3 D(CÒQ E2� F3E  GEFQ H2”IHG J(IÒQ K2”LKG M(LÒQN2º ODÒ÷PúOQPøQ9 R'2M>9RùSøSQU2 9V©JUQW2 9X·DNW…YVX>;YùTøT= Z9=[;Ž \Z[Ž ]\D©^65þŽ _]^>:_ùPøP= `9ƒ aš`Q b2… cabˆ dc;Q e2ˆ fe;Pæh666© ghfdŽ igD>=i= j== k:� ljk… ml4>?m= n?þn86 rs7 p7 qøoA-tŸMA‹u¨MùvøvAwuMM=xwÇyx« zyM© {RzS÷|ú{}|ø}A~uM=~A€uO =�€…‚�AƒuMM=„ƒÇ…„« †…M÷‡ú†ˆ‡øˆA‰uP=ЉO ‹ŠŠ9 ŒŠp9 �–ŒŽ Ž�‚A�uP =��P ’���  ‘.‹Ž’þ‘ø‡A“uP=”“O •””þ•ø|A–tMK=—–ǘ—L« ™˜M© šR™S÷›úšœ›øœA�t%=ž�O ŸžžA tN=¡ O ¢¡¡� £Ÿ¢Ž ¤£A¥tO=¦¥O §¦¦A¨tP=©¨O ª©©� «§ªŽ ¬«A­t =®­O ¯®®”°p¯…±°�²± ³+²ÒþP µ³³³  ´.¬¤µA¶tK =·¶Ž ¸´·þ¸ø›A¹tK=º¹O »ººþ»86 ÀÁ7 ½7¾7 ¿ø¼A-ŸMA‹Ã¨M=)Ä«=Å®ùÆøÆAÇÃMM=ÈÇÇÉÈ« ÊÉM© ËRÊS÷ÌúËÍÌøÍAÎÃM=ÏÎAÐÃO =ÑÐ…ÒÏÑAÓÃMM=ÔÓÇÕÔQ« ÖÕM÷×ú֨׸Ø9 ÙŠ½9 ÚúÙ¾Ž ÛÚÒþÛø×AÜÃMM=ÝÜÇÞÝ« ßÞM÷àúßáàøáþ¯øàAâÃP=ãâO äããþäøÌAåÂMK=æåÇçæL« èçM© éRèS÷êúéëêøëAìÂ%=íìO îííAïÂN=ðïO ñðð� òîñŽ óò9 ô̽P ö¾¾¾  õ.ôóöA÷ÂK =ø÷Ž ùõøþùøêAúÂK=ûúO üûûþü86 7Dþ7 ÿ77 øý;£  A�MA-ŸMA‹¨M=)«=®A_ ³M= ¶= ·ùø9 Àÿ¨ ¨ ÷úøA MM=ª M> ùø> Rùø=  © RR÷úøþøQ þA%L=9 ÿQ ƒ!þ Ž "!O #� $"#þ$86 ,-7 &7 '7(7)7*7 +ø%;£/0A‹.¨Mù1ø1÷2ú+34ø3A5.MM=65Ç76« 87M>/8ù2ø4>/Sù2ø2= 9/© :R9S÷;ú:<;ø<91= ()Q>=Ž ?&>Q@=Ž A'@QB&…CÐB D+C*þŽ EAD� F?EþFø;ƒGþ(Ž H'G  I(H&ƒ JI&ƒKþ)9LéKŽ MJL� N&MþN86 ST7DP7 Q7RøO;£ef;£_`;ij;£cd;]^;gh;£abAU�MA-VŸMA‹W¨M=)X«=Y®A_ Z³M=[¶=\·ùkøkQlPQ mPQ nP9 ornQ… pmo>]p÷qúQrsørAtWMM=utÇvuª wvM>_wùqøs>_Sùqøq= x_÷yúxz{øzA|VMK=}|Ç~}Lª ~M>aùyø{>aSùyøy= €a© �R€S÷‚ú�ƒ‚øƒA„VK=…„O †……Q ‡P… ˆ†‡>]ˆù‚ø‚÷‰úQŠ‹øŠAŒZMM=�Œ¬ Ž�M>cŽù‰ø‹>cSù‰ø‰= �c÷�ú�‘’ø‘Q“R¼ ”“Ò>e”ù�ø’>eSù�ø�= •e© –R•S÷—ú–˜—ø˜Q ™PQ šPA›U%L=œ›9�k ™šœ= ž]QŸ�ƒ þŸŽ ¡ž Q ¢PO £��… ¤¢£� ¥¡¤>]¥ù—ø—Q¦Rº §¦Ò÷¨ú§©¨ø©Q ªPO «RR… ¬ª«>]¬ù¨ø¨Q ­P ®­Q ¯P  °G®¯>g°Q ±P Q ²PQ³PP µ³³³  ´.±²µQ ¶P Q·PP ¹···  ¸.¶š¹QºP Q»P9 ¼,´¸ºl»Q= ½gQ¾P 9 ¿P½¾Q… À¿¼= Á]� ÂÁÀ>iÂ= ÃiþÃ86 ËÌ7BÅ7 Æ7CÇ7 È7 É7 ÊøÄ;êë;£äå;£àá;£ìí;æç;â¯;¦èé;¡ãM;²ý¶AûÍŒMAÎ�MA™Ï’MA-ПMAРѢM="Ò¥=Ó§A‹Ô¨M=)Õ«=Ö®=×°A_ سM=Ù¶=Ú·A_Û¸M=Ü»=ݼùîøî÷ïúÈðñøðAòÎOL=óò¬ ôóM>àôùïøñ>àSùïøï= õà© öRõS9D÷ÅÆÇö9øùùøùöúüùþøþ=±ÿýª³´ÿ› ÷úúøQÿª M©KMP±K‚±ÿ>ýùûøû=ã° ø© R S÷ ú   ø ùúø ù ø =ã9 &A^Ð=÷úÉøQQª K>äùø>äSùø= ä÷úøùüøQQ>æÞ>èþª M÷ ú!"ø!Q#O $## %$>æ%ù ø"Q&O '&&Q (Ń )'( *B) +(*aP ,+++ˆ -),>æ-Q.Q/.Q0Q1092Ì*/1>è2ª 3L÷4ú354ø5Q6Q76= 8æ 98Q:O ;::”<9; =(<7ƒ>þ=ƒ?þ7 @(?aˆA>@ B(¹A=CèQDQED FBEƒGþF…HCG>èHù4ø4ù ø =Ièº JIÒ÷KúJLKøLQMO NMM=OèŽ PNO>êPQQQRQª SRK© TRSS÷UúTVUøVQWO XWW=YèQ ZÅQ [÷= \æ9]Ì Z[\…^Y]Ž _X^>ê_ùUøU= `â= aæ= bêQcQdc9 e7÷abdR� f`e>âfùKøKùøùüøü=gã€hgK>ãhùùøúQ i÷9jþ iÉÊ9 kS÷RjAlÐMK=mlÇnm%« onM÷púoqrøqAsÏ K=ts« utL>ìuùpør>ìSùpøp= vì© wRvS÷xúwyzøyQ{ÅO1|{{ 1}| 1ƒ+}€‚n~„ƒj2…ׂ2†…Õ 2‡&߆g~ˆ×‡‚~Šˆ‰ ~‹&„Š_Œ×‹‡Q�Œ= ŽâQ�÷# �%��A‘ÐLL=’‘A“ÐL =”“…•’” –.þ�•Ž —Ž–>â—= ˜âQ™÷# š%™�Ž ›kš� œ˜›>âœùxøz= �âQž÷#Ž Ÿkž�  �Ÿ>â ùxøx= ¡âQ ¢÷$� £¡¢>â£= ¤âþ¤86 ª«7B¦7 §7C¨7 ©ø¥Aû¬ŒMA­�MA™®’MA-¯ŸMAÐ °¢M="±¥=²§A‹³¨M=)´«=µ®=¶°A_ ·³M=¸¶=¹·A_º¸M=»»=¼¼ù½ø½9 ¾Ë¦§¨©S¯þ¾86 Â77 À7 Áø¿;ÊËAûÃŒMAÄ�MA-ÅŸMA‹Æ¨M=)Ç«=È®AɾMùÌøÌ>ÊÀAÍÆMM=ÎÍÇÏÎx« ÐÏM© ÑRÐS÷ÒúÑÓÒøÓ= ÔÊ9 ÕýÁ ÖÕ9 ×~ÔÁÖ>Ê×ùÒøÒAØÄO =ÙØ« ÚÙM© ÛRÚS÷ÜúÛÝÜøÝ= ÞÊAßÄO =àß9 á  ÞÁà>ÊáùÜøÜ= âÊ9 ã­âþã86øä= èæ= êé=1íë=ðî=óñ=öôP 3åèêíðóö=1ø÷Aû ŒMA �Mù ø 94 å9B å øQ >ùAùK=>Q  >ûQ  >ýQ1 >þQ >Q >Q >Q >Q1 >ý862ø;¦Gþ;HI== = ! =1#"=%$='&=)(=+*=1-,P B!#%')+-= 0.Aû3ŒMA4�MA™5’M=6•=7›A-8ŸMAÐ 9¢M=":¥=;§A‹<¨M=)=«=>®=?°A_ @³M=A¶=B·A_C¸M=D»=E¼AF¾MùJøJ94Kÿ 9 L�K¥ M0L9CNnQ OQPO1QPP9R!OQ¼ SRÒ© TRSS÷UúTVUøVüøU9 WÔN÷XúWYXøYüøXAZ3'M=[Zª \[© ]R\Sù^ø^A`5 =a`Çba« cbM© dRcS÷eúdfgøfQhNO ihh>Hiùeøg9 jªMN]>Hjùeøe© kR]S÷lúkmløm= nHQ o9 pÂno>Hpùlølù_ø_© qR]S÷rúqsrøs= tH9 uvt9 vXuR=wGPxvw9yÒ x>1yýør= zH={GP|z{9}ù|>1}ý8 @Ð Ð/ ,@ P˜J£&ѰA¬ËÎ-”ÒÑ'�gQoCî¶_7hh'·�@Ù‹H˜iå„wøDLWé|è4¤Î Ãàp˜„]s†“61ö—ŒvtH…K„‰‹Áý¤Nm'jšf™ v12Cˆ‰Ë+hedra:build/hedra/world/course/course.rscnbjÔÀº[RSCNB  @ÝyôdñSTRSÀyBVALS@C‹XEXTRЛäSUBR¸�ÄNODE€¢D ITEMȤ2BINDpõCONNxõEMBD€õORDRˆõ0SRCS¸ü`ANIMýbcASST€`À|m                                                                                                           1_surfaceShaderres://psx/psx_surface.wgsl2_cutoutres://psx/psx_cutout.wgsl3_chromeres://psx/psx_chrome.wgsl4_skyres://psx/psx_sky.wgsl5_terrainPackedSceneres://course/terrain.rmdlcmd6_dressingres://course/dressing.rmdlcmd7_daylightScriptres://scripts/daylight.astex_archesTexture2Dres://textures/arches.pngtex_bannersres://textures/banners.pngtex_barkres://textures/bark.pngtex_boxres://textures/box.pngtex_buildingres://textures/building.pngtex_chrome_matcapres://textures/chrome_matcap.pngtex_crowdres://textures/crowd.pngtex_fenceres://textures/fence.pngtex_iceres://textures/ice.pngtex_liftres://textures/lift.pngtex_mountainsres://textures/mountains.pngtex_pine_ares://textures/pine_a.pngtex_pine_bres://textures/pine_b.pngtex_pine_coneres://textures/pine_cone.pngtex_rockres://textures/rock.pngtex_snow_groomedres://textures/snow_groomed.pngtex_snow_packedres://textures/snow_packed.pngtex_snow_powderres://textures/snow_powder.png8_fxres://scripts/fx_course.as9_spriteres://psx/psx_sprite.wgsltex_fx_flakeres://textures/fx_flake.pngtex_fx_confettires://textures/fx_confetti.pngtex_fx_flareres://textures/fx_flare.pngCourseNode3DEnvironmentWorldEnvironmentSkyMeshInstance3DTerrainT00_groomedT00_powderT00_rockT01_groomedT01_powderT01_rockT02_groomedT02_powderT02_rockT03_groomedT03_powderT03_rockT04_groomedT04_powderT04_rockT05_groomedT05_powderT05_rockT06_groomedT06_powderT06_rockT07_groomedT07_powderT07_rockT08_groomedT08_packedT08_powderT08_rockT09_groomedT09_packedT09_powderT09_rockT10_groomedT10_packedT10_powderT10_rockT11_groomedT11_packedT11_powderT11_rockT12_groomedT12_packedT12_powderT12_rockT13_groomedT13_packedT13_powderT13_rockT14_groomedT14_packedT14_powderT14_rockT15_groomedT15_packedT15_powderT15_rockT16_groomedT16_packedT16_powderT16_rockT17_groomedT17_packedT17_powderT17_rockT18_groomedT18_packedT18_powderT18_rockT19_groomedT19_packedT19_powderT19_rockT20_groomedT20_powderT20_rockT21_groomedT21_iceT21_packedT21_powderT21_rockT22_groomedT22_iceT22_packedT22_powderT22_rockT23_groomedT23_powderT23_rockT24_groomedT24_powderT24_rockT25_groomedT25_packedT25_powderT25_rockT26_groomedT26_packedT26_powderT26_rockT27_groomedT27_packedT27_powderT27_rockT28_groomedT28_packedT28_powderT28_rockT29_groomedT29_packedT29_powderT29_rockT30_groomedT30_packedT30_powderT30_rockT31_groomedT31_packedT31_powderT31_rockT32_groomedT32_packedT32_powderT32_rockT33_groomedT33_packedT33_powderT33_rockT34_groomedT34_powderT34_rockT35_groomedT35_packedT35_powderT35_rockT36_groomedT36_packedT36_powderT36_rockT37_groomedT37_powderT37_rockT38_groomedT38_powderT38_rockT39_groomedT39_powderT39_rockT40_groomedT40_powderT40_rockT41_groomedT41_powderT41_rockT42_groomedT42_powderT42_rockT00_farT01_farT02_farT03_farT04_farT05_farT06_farT07_farT08_farT09_farT10_farT11_farT12_farT13_farT14_farT15_farT16_farT17_farT18_farT19_farT20_farT21_farT22_farT23_farT24_farT25_farT26_farT27_farT28_farT29_farT30_farT31_farT32_farT33_farT34_farT35_farT36_farT37_farT38_farT39_farT40_farT41_farT42_farDressingD00_archD00_bannerD00_buildingD00_fenceD00_liftD01_bannerD01_fenceD01_liftD02_accentD02_bannerD02_fenceD02_liftD03_accentD03_bannerD03_liftD04_accentD04_bannerD04_barkD04_boxD04_crowdD04_fenceD04_liftD04_railD05_bannerD05_boxD05_liftD05_railD06_accentD06_archD06_bannerD06_liftD06_pine_coneD07_accentD07_bannerD07_boxD07_buildingD07_liftD07_packedD07_pine_coneD07_railD08_accentD08_bannerD08_liftD08_pine_coneD09_accentD09_archD09_bannerD09_buildingD09_crowdD09_fenceD09_liftD09_neonD10_buildingGD_liftGU_liftL1D_liftL1U_liftL2D_liftL2U_liftTreesPines_00_aMultiMeshInstance3DPines_00_bPines_01_aPines_01_bPines_02_aPines_02_bPines_03_aPines_03_bPines_04_aPines_04_bPines_05_aPines_05_bPines_06_aPines_06_bPines_07_aPines_07_bPines_08_aPines_08_bPines_09_aPines_09_bPines_10_aPines_10_bLinePath3DHighLineRailsFB1LG1DR1KR1RR1FD1LR1LG2FR1DB1HR1LB1Keysaccentarchbannerbarkboxbuildingcrowdfarfencegroomediceliftneonpackedpine_apine_bpine_conepowderrockFxSnowCPUParticles3DConfettiLConfettiRFlare0Flare1Flare2Flare3Flare4ReviewCamsStartCamera3DWarmupKickersRailGardenSplitLowLineMegaInrunFinishHighDropMegaLipMegaSideOverviewMat_accentShaderMaterialMat_archMat_bannerMat_barkMat_boxMat_buildingMat_crowdMat_farMat_fenceMat_groomedMat_iceMat_liftMat_neonMat_packedMat_pine_aMat_pine_bMat_pine_coneMat_powderMat_railMat_rockMat_skyMesh_skySphereMeshEnv_gameMesh_keyQuadMeshMesh_pine_aMesh_pine_bTrees_00_aMultiMeshTrees_00_bTrees_01_aTrees_01_bTrees_02_aTrees_02_bTrees_03_aTrees_03_bTrees_04_aTrees_04_bTrees_05_aTrees_05_bTrees_06_aTrees_06_bTrees_07_aTrees_07_bTrees_08_aTrees_08_bTrees_09_aTrees_09_bTrees_10_aTrees_10_bCurve_lineCurve3DCurve_highCurve_FB1Curve_LG1Curve_DR1Curve_KR1Curve_RR1Curve_FD1Curve_LR1Curve_LG2Curve_FR1Curve_DB1Curve_HR1Curve_LB1Mat_flare0Mesh_flare0Mat_flare1Mesh_flare1Mat_flare2Mesh_flare2Mat_flare3Mesh_flare3Ramp_ageGradientMat_flakeMesh_flakeMat_confettiMesh_confettiRamp_confettishadershader_parameter/albedoshader_parameter/overbrightshader_parameter/sun_directionshader_parameter/sun_colorshader_parameter/sky_ambientshader_parameter/ground_ambientshader_parameter/albedo_textureshader_parameter/uv_scaleshader_parameter/emissionshader_parameter/matcapshader_parameter/tintshader_parameter/reflectivityshader_parameter/zenithshader_parameter/horizonshader_parameter/belowshader_parameter/bandsshader_parameter/sun_sizeshader_parameter/horizon_textureshader_parameter/horizon_repeatshader_parameter/horizon_bandshader_parameter/horizon_tintradiusheightradial_segmentsringsmaterialbackground_modebackground_colortonemap_modefog_enabledfog_modefog_light_colorfog_depth_beginfog_depth_endfog_densityglow_enabledglow_levels/1glow_levels/2glow_levels/3glow_levels/5glow_hdr_thresholdglow_intensitysizecenter_offsettransform_formatinstance_countmeshbufferbake_interval_datapointstiltspoint_countshader_parameter/uv_offsetshader_parameter/snap_resolutionoffsetscolorsshader_parameter/sprite_sheetshader_parameter/frames_xshader_parameter/frames_yinterpolation_modescriptenvironmentmaterial_overridevisibility_range_endmultimeshcurvevisibleemittingamountlifetimelocal_coordsemission_shapeemission_box_extentsdirectionspreadgravityinitial_velocity_mininitial_velocity_maxcolor_ramppositionone_shotexplosivenessdamping_mindamping_maxcolor_initial_rampscaletransformfovnearcourse/dressing.rmdlcmdcourse/terrain.rmdlcmdcourse/dressing.rmdlcmd#0course/dressing.rmdlcmd#1course/dressing.rmdlcmd#10course/dressing.rmdlcmd#11course/dressing.rmdlcmd#12course/dressing.rmdlcmd#13course/dressing.rmdlcmd#14course/dressing.rmdlcmd#15course/dressing.rmdlcmd#16course/dressing.rmdlcmd#17course/dressing.rmdlcmd#18course/dressing.rmdlcmd#19course/dressing.rmdlcmd#2course/dressing.rmdlcmd#20course/dressing.rmdlcmd#21course/dressing.rmdlcmd#22course/dressing.rmdlcmd#23course/dressing.rmdlcmd#24course/dressing.rmdlcmd#25course/dressing.rmdlcmd#26course/dressing.rmdlcmd#27course/dressing.rmdlcmd#28course/dressing.rmdlcmd#29course/dressing.rmdlcmd#3course/dressing.rmdlcmd#30course/dressing.rmdlcmd#31course/dressing.rmdlcmd#32course/dressing.rmdlcmd#33course/dressing.rmdlcmd#34course/dressing.rmdlcmd#35course/dressing.rmdlcmd#36course/dressing.rmdlcmd#37course/dressing.rmdlcmd#38course/dressing.rmdlcmd#39course/dressing.rmdlcmd#4course/dressing.rmdlcmd#40course/dressing.rmdlcmd#41course/dressing.rmdlcmd#42course/dressing.rmdlcmd#43course/dressing.rmdlcmd#44course/dressing.rmdlcmd#45course/dressing.rmdlcmd#46course/dressing.rmdlcmd#47course/dressing.rmdlcmd#48course/dressing.rmdlcmd#49course/dressing.rmdlcmd#5course/dressing.rmdlcmd#50course/dressing.rmdlcmd#51course/dressing.rmdlcmd#52course/dressing.rmdlcmd#53course/dressing.rmdlcmd#54course/dressing.rmdlcmd#55course/dressing.rmdlcmd#56course/dressing.rmdlcmd#57course/dressing.rmdlcmd#58course/dressing.rmdlcmd#6course/dressing.rmdlcmd#7course/dressing.rmdlcmd#8course/dressing.rmdlcmd#9course/terrain.rmdlcmd#0course/terrain.rmdlcmd#1course/terrain.rmdlcmd#10course/terrain.rmdlcmd#100course/terrain.rmdlcmd#101course/terrain.rmdlcmd#102course/terrain.rmdlcmd#103course/terrain.rmdlcmd#104course/terrain.rmdlcmd#105course/terrain.rmdlcmd#106course/terrain.rmdlcmd#107course/terrain.rmdlcmd#108course/terrain.rmdlcmd#109course/terrain.rmdlcmd#11course/terrain.rmdlcmd#110course/terrain.rmdlcmd#111course/terrain.rmdlcmd#112course/terrain.rmdlcmd#113course/terrain.rmdlcmd#114course/terrain.rmdlcmd#115course/terrain.rmdlcmd#116course/terrain.rmdlcmd#117course/terrain.rmdlcmd#118course/terrain.rmdlcmd#119course/terrain.rmdlcmd#12course/terrain.rmdlcmd#120course/terrain.rmdlcmd#121course/terrain.rmdlcmd#122course/terrain.rmdlcmd#123course/terrain.rmdlcmd#124course/terrain.rmdlcmd#125course/terrain.rmdlcmd#126course/terrain.rmdlcmd#127course/terrain.rmdlcmd#128course/terrain.rmdlcmd#129course/terrain.rmdlcmd#13course/terrain.rmdlcmd#130course/terrain.rmdlcmd#131course/terrain.rmdlcmd#132course/terrain.rmdlcmd#133course/terrain.rmdlcmd#134course/terrain.rmdlcmd#135course/terrain.rmdlcmd#136course/terrain.rmdlcmd#137course/terrain.rmdlcmd#138course/terrain.rmdlcmd#139course/terrain.rmdlcmd#14course/terrain.rmdlcmd#140course/terrain.rmdlcmd#141course/terrain.rmdlcmd#142course/terrain.rmdlcmd#143course/terrain.rmdlcmd#144course/terrain.rmdlcmd#145course/terrain.rmdlcmd#146course/terrain.rmdlcmd#147course/terrain.rmdlcmd#148course/terrain.rmdlcmd#149course/terrain.rmdlcmd#15course/terrain.rmdlcmd#150course/terrain.rmdlcmd#151course/terrain.rmdlcmd#152course/terrain.rmdlcmd#153course/terrain.rmdlcmd#154course/terrain.rmdlcmd#155course/terrain.rmdlcmd#156course/terrain.rmdlcmd#157course/terrain.rmdlcmd#158course/terrain.rmdlcmd#159course/terrain.rmdlcmd#16course/terrain.rmdlcmd#160course/terrain.rmdlcmd#161course/terrain.rmdlcmd#162course/terrain.rmdlcmd#163course/terrain.rmdlcmd#164course/terrain.rmdlcmd#165course/terrain.rmdlcmd#166course/terrain.rmdlcmd#167course/terrain.rmdlcmd#168course/terrain.rmdlcmd#169course/terrain.rmdlcmd#17course/terrain.rmdlcmd#170course/terrain.rmdlcmd#171course/terrain.rmdlcmd#172course/terrain.rmdlcmd#173course/terrain.rmdlcmd#174course/terrain.rmdlcmd#175course/terrain.rmdlcmd#176course/terrain.rmdlcmd#177course/terrain.rmdlcmd#178course/terrain.rmdlcmd#179course/terrain.rmdlcmd#18course/terrain.rmdlcmd#180course/terrain.rmdlcmd#181course/terrain.rmdlcmd#182course/terrain.rmdlcmd#183course/terrain.rmdlcmd#184course/terrain.rmdlcmd#185course/terrain.rmdlcmd#186course/terrain.rmdlcmd#187course/terrain.rmdlcmd#188course/terrain.rmdlcmd#189course/terrain.rmdlcmd#19course/terrain.rmdlcmd#190course/terrain.rmdlcmd#191course/terrain.rmdlcmd#192course/terrain.rmdlcmd#193course/terrain.rmdlcmd#194course/terrain.rmdlcmd#195course/terrain.rmdlcmd#196course/terrain.rmdlcmd#197course/terrain.rmdlcmd#198course/terrain.rmdlcmd#2course/terrain.rmdlcmd#20course/terrain.rmdlcmd#21course/terrain.rmdlcmd#22course/terrain.rmdlcmd#23course/terrain.rmdlcmd#24course/terrain.rmdlcmd#25course/terrain.rmdlcmd#26course/terrain.rmdlcmd#27course/terrain.rmdlcmd#28course/terrain.rmdlcmd#29course/terrain.rmdlcmd#3course/terrain.rmdlcmd#30course/terrain.rmdlcmd#31course/terrain.rmdlcmd#32course/terrain.rmdlcmd#33course/terrain.rmdlcmd#34course/terrain.rmdlcmd#35course/terrain.rmdlcmd#36course/terrain.rmdlcmd#37course/terrain.rmdlcmd#38course/terrain.rmdlcmd#39course/terrain.rmdlcmd#4course/terrain.rmdlcmd#40course/terrain.rmdlcmd#41course/terrain.rmdlcmd#42course/terrain.rmdlcmd#43course/terrain.rmdlcmd#44course/terrain.rmdlcmd#45course/terrain.rmdlcmd#46course/terrain.rmdlcmd#47course/terrain.rmdlcmd#48course/terrain.rmdlcmd#49course/terrain.rmdlcmd#5course/terrain.rmdlcmd#50course/terrain.rmdlcmd#51course/terrain.rmdlcmd#52course/terrain.rmdlcmd#53course/terrain.rmdlcmd#54course/terrain.rmdlcmd#55course/terrain.rmdlcmd#56course/terrain.rmdlcmd#57course/terrain.rmdlcmd#58course/terrain.rmdlcmd#59course/terrain.rmdlcmd#6course/terrain.rmdlcmd#60course/terrain.rmdlcmd#61course/terrain.rmdlcmd#62course/terrain.rmdlcmd#63course/terrain.rmdlcmd#64course/terrain.rmdlcmd#65course/terrain.rmdlcmd#66course/terrain.rmdlcmd#67course/terrain.rmdlcmd#68course/terrain.rmdlcmd#69course/terrain.rmdlcmd#7course/terrain.rmdlcmd#70course/terrain.rmdlcmd#71course/terrain.rmdlcmd#72course/terrain.rmdlcmd#73course/terrain.rmdlcmd#74course/terrain.rmdlcmd#75course/terrain.rmdlcmd#76course/terrain.rmdlcmd#77course/terrain.rmdlcmd#78course/terrain.rmdlcmd#79course/terrain.rmdlcmd#8course/terrain.rmdlcmd#80course/terrain.rmdlcmd#81course/terrain.rmdlcmd#82course/terrain.rmdlcmd#83course/terrain.rmdlcmd#84course/terrain.rmdlcmd#85course/terrain.rmdlcmd#86course/terrain.rmdlcmd#87course/terrain.rmdlcmd#88course/terrain.rmdlcmd#89course/terrain.rmdlcmd#9course/terrain.rmdlcmd#90course/terrain.rmdlcmd#91course/terrain.rmdlcmd#92course/terrain.rmdlcmd#93course/terrain.rmdlcmd#94course/terrain.rmdlcmd#95course/terrain.rmdlcmd#96course/terrain.rmdlcmd#97course/terrain.rmdlcmd#98course/terrain.rmdlcmd#99textures/arches.pngtextures/banners.pngtextures/bark.pngtextures/box.pngtextures/building.pngtextures/chrome_matcap.pngtextures/crowd.pngtextures/fence.pngtextures/fx_confetti.pngtextures/fx_flake.pngtextures/fx_flare.pngtextures/ice.pngtextures/lift.pngtextures/mountains.pngtextures/pine_a.pngtextures/pine_b.pngtextures/pine_cone.pngtextures/rock.pngtextures/snow_groomed.pngtextures/snow_packed.pngtextures/snow_powder.pngscripts/daylight.asscripts/fx_course.as391a35106a61bffbpsx/psx_chrome.wgslpsx/psx_cutout.wgslpsx/psx_sky.wgslpsx/psx_sprite.wgslpsx/psx_surface.wgslƒX   …ëQ¸å? ×£p= ï?R¸…ëQÈ?ð?333333ó? †8ÖÅm4à¿?5^ºI Þ?0L¦ F%ç¿ L7‰A`åè??ÆÜµ„|æ?Y·ÑÞà?ð? ž^)Ëá?Á¨¤N@ã?ðHPüé?ð? Ù_vOæ?,eâXç?Cëâ6ê?ð?ÍÌÌÌÌÌô?5 ÍÌÌÌÌÌì?q= ×£pí?ð?ð?ð?ð?!1¾¤1ZGUÕ?¾¤1ZGUÕ?#À?À?% ÍÌÌÌÌÌÜ?š™™™™™É?ffffffÖ?ð?š™™™™™ù?3š™™™™™ñ?)+-Ð?Ð?  ×£p= ï?ÍÌÌÌÌÌÜ?è?ð?333333ë?/ Püs×Ò?ÎQÚÜ?ðHPüé?ð? ðHPüé?–!Žuqë?®Ø_vOî?ð? …ëQ¸ï?ÎQÚì?†ZÓ¼ãå?ð?@'À@ …ëQ¸…ë?ÍÌÌÌÌÌì?ð?ð?´h ´#Œð?333333ã?{®Gáz„?{®Gáz„? à?®¯`º€ªñÒMb @¬Zd;ßß?–C‹lçkFÀš™™™™@´Èv¾Ÿ@bX9´Èü¿X9´Èv¾ë?d;ßO�÷9ÀbX9´Èü¿X9´Èv¾ë?–C‹lçkFÀš™™™™@´Èv¾Ÿ@ªñÒMb À¬Zd;ßß¿d;ßO�÷9À‘í|?5^º?ð?'1¬Ú3@š™™™™™@V-²Ý4À'1¬Z À¸…ëQ¸ž?j¼t“˜TÀ'1¬Z À¸…ëQ¸ž?'1¬Ú3@š™™™™™@V-²Ý4À‘í|?5^º¿ð¿j¼t“˜TÀ-²�ï§Æç? ×£p= ï?ü©ñÒMÒFÀZd;ßÏ@®Gáz @Ãõ(\�ÂÀ´Èv¾ŸÏ?Év¾ŸO1@Ãõ(\�ÂÀ´Èv¾ŸÏ?ü©ñÒMÒFÀZd;ßÏ@®Gáz @-²�ï§Æç¿ ×£p= ï¿Év¾ŸO1@j¼t“À�•C‹lçë?š™™™™Y@@fffff&&@9´Èv¾3À33333³À\�Âõ(\ß¿L7‰A`}UÀ33333³À\�Âõ(\ß¿š™™™™Y@@fffff&&@9´Èv¾3Àj¼t“@�•C‹lçë¿L7‰A`}UÀžï§ÆK·@ÇK7‰A`á?øS㥛D=@ôýÔxé&)@u“Vn4À°rh‘í| Àáz®Gáê?{®GáBVÀ°rh‘í| Àáz®Gáê?øS㥛D=@ôýÔxé&)@u“Vn4Àžï§ÆK·ÀÇK7‰A`á¿{®GáBVÀV-²�ï@D‹lçû©±?Ý$�•#8@9´Èv¾@^ºI +׿D‹lçû©Ñ¿V-²�ïï?`6ÀD‹lçû©Ñ¿V-²�ïï?Ý$�•#8@9´Èv¾@^ºI +׿V-²�ïÀD‹lçû©±¿`6ÀºI +‡ @V-²�×?yé&1|@@NbX9´@Év¾Ÿ/6À¨ÆK7‰Aô¿Ãõ(\�Âí?ö(\�•YÀ¨ÆK7‰Aô¿Ãõ(\�Âí?yé&1|@@NbX9´@Év¾Ÿ/6ÀºI +‡ ÀV-²�׿ö(\�•YÀ¤p= ×£ ÀÁÊ¡E¶óÕ?w¾Ÿ/};À´Èv¾Ÿš@j¼t“@þÔxé&1ô¿?5^ºI î¿‘í|?5*@þÔxé&1ô¿?5^ºI î¿w¾Ÿ/};À´Èv¾Ÿš@j¼t“@¤p= ×£ @ÁÊ¡E¶óÕ¿‘í|?5*@-²�ï§Æ ÀƒÀÊ¡Eâ?ã¥›Ä 0HÀh‘í|?µ@Zd;ßO�—¿V-²�ÀƒÀÊ¡Eê¿;ßO�—AÀV-²�ÀƒÀÊ¡Eê¿ã¥›Ä 0HÀh‘í|?µ@Zd;ßO�—¿-²�ï§Æ @ƒÀÊ¡Eâ¿;ßO�—AÀð§ÆK7‰û?Ház®Gí?+‡ÙŽ%ÀÇK7‰A  @yé&1¬Ì?çû©ñÒMÀ˜nƒÀÊÙ?u“VŽ@çû©ñÒMÀ˜nƒÀÊÙ?+‡ÙŽ%ÀÇK7‰A  @yé&1¬Ì?ð§ÆK7‰û¿Ház®Gí¿u“VŽ@V-²�ïÀáz®Gáº?= ×£p½EÀôýÔxéf$@ÓMbX9%À¬Zd;ß߿ףp= ×￾Ÿ/Ý|QÀ¬Zd;ß߿ףp= ×ï¿= ×£p½EÀôýÔxéf$@ÓMbX9%ÀV-²�ï@áz®Gế¾Ÿ/Ý|QÀu“V Àú~j¼t“ä?Ë¡E¶óý+@ªñÒMb�!@ÁÊ¡E¶óÀ¬Zd;ßÀP�—nƒè¿\�Âõ(6À¬Zd;ßÀP�—nƒè¿Ë¡E¶óý+@ªñÒMb�!@ÁÊ¡E¶óÀu“V @ú~j¼t“ä¿\�Âõ(6À-²�ï§@w¾Ÿ/ÝÜ?Ãõ(\�2@Ë¡E¶óý)@ßO�—n-À¬Zd;ßÀú~j¼t“ì?Ûù~j¼´KÀ¬Zd;ßÀú~j¼t“ì?Ãõ(\�2@Ë¡E¶óý)@ßO�—n-À-²�ï§Àw¾Ÿ/ÝÜ¿Ûù~j¼´KÀºI +‡–¿ð?J +‡V'Àš™™™™$@¦›Ä °rà¿X9´ÈvÀü©ñÒMbp¿øS㥛Ä#ÀX9´ÈvÀü©ñÒMbp¿J +‡V'Àš™™™™$@¦›Ä °r࿺I +‡–?ð¿øS㥛Ä#À…ëQ¸…÷?¸…ëQ¸î?ºI +ç5@Ï÷S㥛%@“VÍ2À/Ý$�À–C‹lçûÑ?òÒMbðRÀ/Ý$�À–C‹lçûÑ?ºI +ç5@Ï÷S㥛%@“VÍ2À…ëQ¸…÷¿¸…ëQ¸î¿òÒMbðRÀffffffÀD‹lçû©í?“VME@ÓMbX9*@®Gáz!@Év¾Ÿ¯ÀªñÒMbØ¿NbX9´@Év¾Ÿ¯ÀªñÒMbØ¿“VME@ÓMbX9*@®Gáz!@ffffff@D‹lçû©í¿NbX9´@X9´Èv¾@Zd;ßOÍ?ÙÎ÷S#B@u“VN @´Èv¾Ÿ@ö(\�Âõ쿉A`åÐ"ï?�•C‹lý?ö(\�Âõ쿉A`åÐ"ï?ÙÎ÷S#B@u“VN @´Èv¾Ÿ@X9´Èv¾ÀZd;ßOÍ¿�•C‹lý?…ëQ¸…ÀøS㥛Äà?5^ºI "E@X9´Èv>%@j¼t“Àú~j¼t“ÀÝ$�•Cë¿7‰A`å@FÀú~j¼t“ÀÝ$�•Cë¿5^ºI "E@X9´Èv>%@j¼t“À…ëQ¸…@øS㥛Äà¿7‰A`å@FÀ/Ý$À333333ç?/Ý$�Õ@@žï§ÆKw*@/Ý$1ÀìQ¸…ëÀj¼t“æ¿�•C‹lçRÀìQ¸…ëÀj¼t“æ¿/Ý$�Õ@@žï§ÆKw*@/Ý$1À/Ý$@333333ç¿�•C‹lçRÀ-²�ï§Æý?øS㥛Äì?ƒÀÊ¡E5À/Ý$� @¬ZdÛ6ÀP�—nƒÀÕxé&1Ü?+‡Ù6WÀP�—nƒÀÕxé&1Ü?ƒÀÊ¡E5À/Ý$� @¬ZdÛ6À-²�ï§Æý¿øS㥛Äì¿+‡Ù6WÀÍÌÌÌÌLÀ‡ÙÎ÷SÃ?bX9´¨N@²�ï§ÆK'@ƒÀÊ¡Ev&À333333ë¿ÙÎ÷Sã¥ï¿d;ßO�ÏSÀ333333ë¿ÙÎ÷Sã¥ï¿bX9´¨N@²�ï§ÆK'@ƒÀÊ¡Ev&ÀÍÌÌÌÌL@‡ÙÎ÷Sÿd;ßO�ÏSÀ)\�Âõ( @ÙÎ÷Sã¥Ë?Zd;ß/5@%�•C @33333Ó;À+‡ÙÎ÷ç¿Ý$�•Cï?œÄ °rX[À+‡ÙÎ÷ç¿Ý$�•Cï?Zd;ß/5@%�•C @33333Ó;À)\�Âõ( ÀÙÎ÷Sã¥Ë¿œÄ °rX[ÀP�—nƒä¿/Ý$�•ï?#Ûù~jìMÀyé&1l @ +‡!À1¬ZdÀÏ÷S㥛Ŀ´Èv¾Ÿ"RÀ1¬ZdÀÏ÷S㥛Ŀ#Ûù~jìMÀyé&1l @ +‡!ÀP�—nƒä?/Ý$�•ï¿´Èv¾Ÿ"RÀP�—nƒÀ�•C‹lã?Ûù~j¼”8@¢E¶óýÔ#@…ëQ¸÷?‡ÙÎ÷SÀœÄ °rhé¿–C‹lç2À‡ÙÎ÷SÀœÄ °rhé¿Ûù~j¼”8@¢E¶óýÔ#@…ëQ¸÷?P�—nƒ@�•C‹lã¿–C‹lç2Àú~j¼t“À+‡ÙÎß?Ház®g4À“V-@X9´Èvð¿NbX9´ø¿-²�ï§Æë¿¬Zd;?6ÀNbX9´ø¿-²�ï§Æë¿Ház®g4À“V-@X9´Èvð¿ú~j¼t“@+‡ÙÎß¿¬Zd;?6Àžï§ÆK7À¬Zd;ç?¬Zd;¿3@�•C‹l!@ /Ý$@åÐ"Ûù~Àj¼t“æ¿ +‡™%@åÐ"Ûù~Àj¼t“濬Zd;¿3@�•C‹l!@ /Ý$@žï§ÆK7@¬Zd;ç¿ +‡™%@¨ÆK7‰A@D‹lçû©±?X9´È¦@À/Ý$Á%@ÍÌÌÌÌŒ#ÀffffffÖ¿V-²�ïï?ð§ÆK7JÀffffffÖ¿V-²�ïï?X9´È¦@À/Ý$Á%@ÍÌÌÌÌŒ#À¨ÆK7‰AÀD‹lçû©±¿ð§ÆK7JÀ‹lçû©ñÀð§ÆK7‰Á?j¼t“x?@�Âõ(\,@-²�ï‡8ÀÏ÷S㥛쿃ÀÊ¡E¶ï¿Ûù~j¼d[ÀÏ÷S㥛쿃ÀÊ¡E¶ï¿j¼t“x?@�Âõ(\,@-²�ï‡8À‹lçû©ñ@ð§ÆK7‰Á¿Ûù~j¼d[À{®Gáz @´Èv¾ŸÏ?V-²�Ï5@ð§ÆK7‰@¶óýÔx©.ÀX9´Èvê¿ ×£p= ï?u“VÎNÀX9´Èvê¿ ×£p= ï?V-²�Ï5@ð§ÆK7‰@¶óýÔx©.À{®Gáz À´Èv¾ŸÏ¿u“VÎNÀ +‡Y@´Èv¾Ÿã?}?5^ºi9ÀJ +‡V&@¨ÆK7‰A:À×£p= × ÀD‹lçû©é?{®GáR[À×£p= × ÀD‹lçû©é?}?5^ºi9ÀJ +‡V&@¨ÆK7‰A:À +‡YÀ´Èv¾Ÿã¿{®GáR[À¶óýÔxé@u“Ví?Év¾ŸOKÀ1¬Zä$@‹lçû©ñÀáz®GaÀ�—nƒÀÚ?¾Ÿ/ÝÄMÀáz®GaÀ�—nƒÀÚ?Év¾ŸOKÀ1¬Zä$@‹lçû©ñÀ¶óýÔxéÀu“Ví¿¾Ÿ/ÝÄMÀÙÎ÷Sãû?NbX9´ì?oƒÀÊa/@D‹lçû©@‰A`åÐ"ý?²�ï§ÆK À}?5^ºIÜ?D‹lçûI9@²�ï§ÆK À}?5^ºIÜ?oƒÀÊa/@D‹lçû©@‰A`åÐ"ý?ÙÎ÷Sãû¿NbX9´ì¿D‹lçûI9@/Ý$�@¶óýÔxéÆ?œÄ °rKÀ¬Zdû"@�—nƒÀÀ‘í|?5^ê¿°rh‘í|ï?òÒMbøHÀ‘í|?5^ê¿°rh‘í|ï?œÄ °rKÀ¬Zdû"@�—nƒÀÀ/Ý$�À¶óýÔxéÆ¿òÒMbøHÀJ +‡–À\�Âõ(\ã?×£p= —5Àu“V-@¤p= ×ã1À¶óýÔxiÀF¶óýÔxé¿‘í|?5¶RÀ¶óýÔxiÀF¶óýÔxé¿×£p= —5Àu“V-@¤p= ×ã1ÀJ +‡–@\�Âõ(\ã¿‘í|?5¶RÀHáz®GÀœÄ °rhÑ?= ×£p½@ÀìQ¸…ë)@+‡ÙÎ×9Àçû©ñÒMú¿bX9´Èî¿çû©ñÒ\Àçû©ñÒMú¿bX9´Èî¿= ×£p½@ÀìQ¸…ë)@+‡ÙÎ×9ÀHáz®G@œÄ °rhÑ¿çû©ñÒ\ÀZd;ßO ÀìQ¸…ëÑ?®Gázô>@Év¾Ÿ¯@L7‰A`e/ÀßO�—nñ¿¸…ëQ¸î¿¢E¶óýìPÀßO�—nñ¿¸…ëQ¸î¿®Gázô>@Év¾Ÿ¯@L7‰A`e/ÀZd;ßO @ìQ¸…ëÑ¿¢E¶óýìPÀZd;ßO@ÙÎ÷SãÝ?…ëQ¸ÎF@î|?5^ú$@î|?5^z"@Ház®GÀ}?5^ºIì?š™™™™¹4@Ház®GÀ}?5^ºIì?…ëQ¸ÎF@î|?5^ú$@î|?5^z"@Zd;ßOÀÙÎ÷SãÝ¿š™™™™¹4@'1¬Z À!°rh‘íÌ?�•C‹lÇ3À˜nƒÀJ@œÄ °rh'ÀÝ$�•Cë¿^ºI +ï¿°rh‘íŒGÀÝ$�•Cë¿^ºI +ï¿�•C‹lÇ3À˜nƒÀJ@œÄ °rh'À'1¬Z @!°rh‘íÌ¿°rh‘íŒGÀq= ×£p@= ×£p=ê?Ûù~j¼ÔMÀºI +&@D‹lçûé$À–C‹lç{À¼t“Vâ?{®Gá TÀ–C‹lç{À¼t“Vâ?Ûù~j¼ÔMÀºI +&@D‹lçûé$Àq= ×£pÀ= ×£p=ê¿{®Gá TÀš™™™™™©¿ð?NbX9ÄF@ã¥›Ä ð'@mçû©ñR)À×£p= WÀ;ßO�—n‚¿1¬ZQÀ×£p= WÀ;ßO�—n‚¿NbX9ÄF@ã¥›Ä ð'@mçû©ñR)Àš™™™™™©?ð¿1¬ZQÀÓMbX9ÀÛù~j¼tÃ?…ëQ¸E9À�Âõ(\O @sh‘í|Ÿ4À333333ã¿V-²�ï¿Zd;ßOVÀ333333ã¿V-²�ï¿…ëQ¸E9À�Âõ(\O @sh‘í|Ÿ4ÀÓMbX9@Ûù~j¼tÿZd;ßOVÀffffff À^ºI +×?mçû©ñRC@^ºI «@/Ý$�•@w¾Ÿ/Ýö¿mçû©ñÒí¿®Gáz®#Àw¾Ÿ/Ýö¿mçû©ñÒí¿mçû©ñRC@^ºI «@/Ý$�•@ffffff @^ºI +׿®Gáz®#À¼t“VÀ/Ý$�•ã?²�ï§Æë=Àžï§ÆKw$@¬Zd;ßë¿Ház®GÀHáz®Gé¿ÍÌÌÌÌÌ<ÀHáz®GÀHáz®G鿲�ï§Æë=Àžï§ÆKw$@¬Zd;ß뿼t“V@/Ý$�•ã¿ÍÌÌÌÌÌ<ÀþÔxé&1À¬Zd;ë?‡ÙÎ÷s4@ôýÔxéæ!@×£p= *À…ëQ¸… ÀÍÌÌÌÌÌà¿9´Èv¾ŸIÀ…ëQ¸… ÀÍÌÌÌÌÌ࿇ÙÎ÷s4@ôýÔxéæ!@×£p= *ÀþÔxé&1@¬Zd;ë¿9´Èv¾ŸIÀ!°rh‘í ÀÑ"Ûù~jÌ??5^ºIÜ@@ +‡Ù@9´Èv¾Àq= ×£pé¿333333ï¿®GázŽEÀq= ×£pé¿333333ï¿?5^ºIÜ@@ +‡Ù@9´Èv¾À!°rh‘í @Ñ"Ûù~jÌ¿®GázŽEÀX9´Èvê?V-²�ï? ×£p=Ê#À?5^ºIÌ%@J +‡À +‡ÙÀj¼t“Ä?ã¥›Ä p6À +‡ÙÀj¼t“Ä? ×£p=Ê#À?5^ºIÌ%@J +‡ÀX9´Èvê¿V-²�ï¿ã¥›Ä p6À^ºI +ÀV-²�ïÇ?X9´È6F@@&@œÄ °rè"Àj¼t“ð¿�•C‹lï¿î|?5^ªLÀj¼t“ð¿�•C‹lï¿X9´È6F@@&@œÄ °rè"À^ºI +@V-²�ïÇ¿î|?5^ªLÀ“V-þ?w¾Ÿ/Ýì?š™™™™‰C@-²�ï§"@Ãõ(\�Â@{®GázÀÙÎ÷Sã¥Û?˜nƒÀJ3À{®GázÀÙÎ÷Sã¥Û?š™™™™‰C@-²�ï§"@Ãõ(\�Â@“V-þ¿w¾Ÿ/Ý쿘nƒÀJ3À»€åÐ"Ûù~@L7‰A`åà?V-²�¯'@ƒÀÊ¡E%@®Gáz®À�—nƒÀÀ^ºI +ë?7‰A`åP?À�—nƒÀÀ^ºI +ë?V-²�¯'@ƒÀÊ¡E%@®Gáz®ÀåÐ"Ûù~ÀL7‰A`åà¿7‰A`åP?Àú~j¼t“¸¿ð?¦›Ä °²FÀsh‘í|?!@®GázT1À#Ûù~j¼ÀºI +‡–¿‡ÙÎ÷“WÀ#Ûù~j¼ÀºI +‡–¿¦›Ä °²FÀsh‘í|?!@®GázT1Àú~j¼t“¸?ð¿‡ÙÎ÷“WÀ ×£p=Š@ôýÔxé&±?}?5^º‰8@‘í|?5!@®Gáz.À˜nƒÀÊÑ¿V-²�ïï?mçû©ñbCÀ˜nƒÀÊÑ¿V-²�ïï?}?5^º‰8@‘í|?5!@®Gáz.À ×£p=ŠÀôýÔxé&±¿mçû©ñbCÀáz®GáÀHáz®Gé?0JÀƒÀÊ¡E#@çû©ñÒM/À°rh‘í| ÀV-²�ã¿B`åÐ"ÃWÀ°rh‘í| ÀV-²�ã¿0JÀƒÀÊ¡E#@çû©ñÒM/Àáz®Gá@Ház®Gé¿B`åÐ"ÃWÀ+‡ÙÎ@´Èv¾ŸÏ?‡ÙÎ÷cCÀ×£p= %@L7‰A`å@¬Zd;ßó¿ ×£p= ï?¶óýÔx)-À¬Zd;ßó¿ ×£p= ï?‡ÙÎ÷cCÀ×£p= %@L7‰A`å@+‡ÙÎÀ´Èv¾ŸÏ¿¶óýÔx)-À-²�ï§Æý¿B`åÐ"Ûí?‘í|?5^L@\�Âõ(&@ÙÎ÷Sã%Àsh‘í|?À´Èv¾Ÿ׿¢E¶óý$JÀsh‘í|?À´Èv¾Ÿ׿‘í|?5^L@\�Âõ(&@ÙÎ÷Sã%À-²�ï§Æý?B`åÐ"Ûí¿¢E¶óý$JÀ'1¬Z@d;ßO�—ê?ÇK7‰A 4À/Ý$�•@î|?5^º0À;ßO�—nÀ˜nƒÀÊá?òÒMbøPÀ;ßO�—nÀ˜nƒÀÊá?ÇK7‰A 4À/Ý$�•@î|?5^º0À'1¬ZÀd;ßO�—ê¿òÒMbøPÀj¼t“À‰A`åÐ"ë?X9´È6K@%�•CK(@j¼t“83À¬Zd;Àö(\�Âõà¿+‡ÙÎ/[À¬Zd;Àö(\�Âõà¿X9´È6K@%�•CK(@j¼t“83Àj¼t“@‰A`åÐ"ë¿+‡ÙÎ/[À-²�ï§ Àü©ñÒMbP?î|?5^z>@ìQ¸…ë@Év¾Ÿ¯@{®Gázt¿ð¿ /Ý$5@{®Gázt¿ð¿î|?5^z>@ìQ¸…ë@Év¾Ÿ¯@-²�ï§ @ü©ñÒMbP¿ /Ý$5@ÇK7‰A`À¢E¶óýÔà?\�Âõ(:À1¬Zä%@®Gáz®À/Ý$�À333333ë¿œÄ °rEÀ/Ý$�À333333ë¿\�Âõ(:À1¬Zä%@®Gáz®ÀÇK7‰A`@¢E¶óýÔà¿œÄ °rEÀ¤p= ×£Àà?ã¥›Ä €K@ÍÌÌÌÌL@F¶óýÔø/À5^ºI ù¿ƒÀÊ¡E¶ë¿ ×£p=‚WÀ5^ºI ù¿ƒÀÊ¡E¶ë¿ã¥›Ä €K@ÍÌÌÌÌL@F¶óýÔø/À¤p= ×£@à¿ ×£p=‚WÀ°rh‘í|À^ºI +ß?¾Ÿ/Ý„2ÀøS㥛"@u“VN,À`åÐ"ÛùÀ+‡ÙÎ÷ë¿7‰A`å`KÀ`åÐ"ÛùÀ+‡ÙÎ÷뿾Ÿ/Ý„2ÀøS㥛"@u“VN,À°rh‘í|@^ºI +ß¿7‰A`å`KÀ¶óýÔxéÀÏ÷S㥛ì? /Ý$F/À¼t“–,@V-²�ï À'1¬ÚÀyé&1¬Ü¿L7‰A`E9À'1¬ÚÀyé&1¬Ü¿ /Ý$F/À¼t“–,@V-²�ï À¶óýÔxé@Ï÷S㥛ì¿L7‰A`E9À‡ÙÎ÷SÀ¦›Ä °rÈ? /Ý$f<À{®Gá:"@7‰A`åÐê?`åÐ"Ûùê¿�•C‹lï¿‘í|?5~6À`åÐ"Ûùê¿�•C‹lï¿ /Ý$f<À{®Gá:"@7‰A`åÐê?‡ÙÎ÷S@¦›Ä °rÈ¿‘í|?5~6À¦›Ä °r@9´Èv¾Ÿæ?V-²]0ÀÁÊ¡E¶s-@ÙÎ÷SãE:À!°rh‘mÀ-²�ï§æ?ªñÒMb YÀ!°rh‘mÀ-²�ï§æ?V-²]0ÀÁÊ¡E¶s-@ÙÎ÷SãE:À¦›Ä °rÀ9´Èv¾Ÿæ¿ªñÒMb YÀ%�•C‹ì?�—nƒÀî?¤p= ×C8@ºI +@¦›Ä °R3Àî|?5^ºÀî|?5^ºÑ?V-²ýSÀî|?5^ºÀî|?5^ºÑ?¤p= ×C8@ºI +@¦›Ä °R3À%�•C‹ì¿�—nƒÀî¿V-²ýSÀ+‡ÙÎ÷À×£p= ×ç?Zd;ßÏ1ÀÀ @u“VN6Àã¥›Ä ° ÀòÒMbXå¿�Âõ(\·UÀã¥›Ä ° ÀòÒMbXå¿Zd;ßÏ1ÀÀ @u“VN6À+‡ÙÎ÷@×£p= ×ç¿�Âõ(\·UÀq= ×£p@oƒÀÊ¡é?w¾Ÿ/íD@ÁÊ¡E¶ó@sh‘í|?@®Gáz®À^ºI +ã?¬Zd;À®Gáz®À^ºI +ã?w¾Ÿ/íD@ÁÊ¡E¶ó@sh‘í|?@q= ×£pÀoƒÀʡ鿬Zd;ÀßO�—nù¿òÒMbXí?´Èv¾ŸÚ:ÀÝ$�•C @�Âõ(\�@L7‰A`å ÀF¶óýÔxÙ¿áz®Ga@L7‰A`å ÀF¶óýÔxÙ¿´Èv¾ŸÚ:ÀÝ$�•C @�Âõ(\�@ßO�—nù?òÒMbXí¿áz®Ga@oƒÀÊ!@9´Èv¾ŸŠ?J +‡69@œÄ °r¨ @?5^ºI @)\�Âõ(¬¿ð?î|?5^:À)\�Âõ(¬¿ð?J +‡69@œÄ °r¨ @?5^ºI @oƒÀÊ!À9´Èv¾ŸŠ¿î|?5^:À\�Âõ(\ÀÍÌÌÌÌÌä?D‹lçûé5@‰A`åÐâ)@Ñ"Ûù~ê%ÀœÄ °rhÀR¸…ëQ迾Ÿ/Ý”FÀœÄ °rhÀR¸…ëQè¿D‹lçûé5@‰A`åÐâ)@Ñ"Ûù~ê%À\�Âõ(\@ÍÌÌÌÌÌ俾Ÿ/Ý”FÀÓMbX9þ¿F¶óýÔxí?Zd;ßH@Å °rh$@�•C‹ì,À�•C‹lçÀL7‰A`åØ¿×£p= ‡SÀ�•C‹lçÀL7‰A`åØ¿Zd;ßH@Å °rh$@�•C‹ì,ÀÓMbX9þ?F¶óýÔxí¿×£p= ‡SÀNbX94@j¼t“æ?çû©ñÒ�1@…ëQ¸Þ*@= ×£p=@sh‘í|?À¬Zd;ç?1¬Zdû¿sh‘í|?À¬Zd;ç?çû©ñÒ�1@…ëQ¸Þ*@= ×£p=@NbX94Àj¼t“æ¿1¬Zdû¿Ë¡E¶óýú¿ffffffî?j¼t“4@ÇK7‰A '@Ý$�•Ã:À/Ý$�ÀÕxé&1Ô¿ÍÌÌÌÌ$ZÀ/Ý$�ÀÕxé&1Ô¿j¼t“4@ÇK7‰A '@Ý$�•Ã:ÀË¡E¶óýú?ffffffî¿ÍÌÌÌÌ$ZÀffffffæ?…ëQ¸…ï?ƒÀÊ¡%0Àé&1¬œ @\�Âõ(\÷¿®Gáz®ÀƒÀÊ¡EÆ?¶óýÔx)4À®Gáz®ÀƒÀÊ¡EÆ?ƒÀÊ¡%0Àé&1¬œ @\�Âõ(\÷¿ffffffæ¿…ëQ¸…ï¿¶óýÔx)4ÀºI +‡@#Ûù~j¼ì?j¼t“ÄF@ã¥›Ä ð&@333333@ÁÊ¡E¶óÀ)\�Âõ(Ü?%�•CK;ÀÁÊ¡E¶óÀ)\�Âõ(Ü?j¼t“ÄF@ã¥›Ä ð&@333333@ºI +‡À#Ûù~j¼ì¿%�•CK;ÀË¡E¶óý¤¿ð?‘í|?5žCÀþÔxé&1@áz®G!8ÀË¡E¶óý ÀºI +‡†¿V-Â[ÀË¡E¶óý ÀºI +‡†¿‘í|?5žCÀþÔxé&1@áz®G!8ÀË¡E¶óý¤?ð¿V-Â[À`åÐ"Ûù@ƒÀÊ¡EÖ?F¶óýÔIÀ²�ï§ÆË#@%�•CK Àyé&1¬ú¿j¼t“î?¢E¶óýCÀçû©ñÒM!@R¸…ë1MÀd;ßO�—ê¿\�Âõ(\ᅢÀÊ¡EpÀd;ßO�—ê¿\�Âõ(\ï¿+‡Ù>CÀçû©ñÒM!@R¸…ë1MÀ�•C‹l@òÒMbXÉ¿ƒÀÊ¡EpÀ)\�Âõ(Ô¿¬Zd;ßï?= ×£pÍD@V-²�ï@øS㥛ÔJÀ-²�ï§ ÀÃõ(\�µ¿°rh‘ídmÀ-²�ï§ ÀÃõ(\�µ¿= ×£pÍD@V-²�ï@øS㥛ÔJÀ)\�Âõ(Ô?¬Zd;ßï¿°rh‘ídmÀ ×£p= @…ëQ¸á?\�Âõ(¬H@ÙÎ÷S#!@%�•CkIÀøS㥛ÄÀ ×£p= ë?é&1¬„lÀøS㥛ÄÀ ×£p= ë?\�Âõ(¬H@ÙÎ÷S#!@%�•CkIÀ ×£p= À…ëQ¸á¿é&1¬„lÀX9´ÈvÖ¿�•C‹lçï?-²�ï:@V-²�ï#@òÒMbXAÀ¨ÆK7‰AÀã¥›Ä °²¿33333{aÀ¨ÆK7‰AÀã¥›Ä °²¿-²�ï:@V-²�ï#@òÒMbXAÀX9´ÈvÖ?�•C‹lçï¿33333{aÀV-²�ïÀj¼t“ì?)\�Âõˆ:ÀìQ¸…+!@°rh‘íÜ?ÀË¡E¶óýÀ-²�ï§Þ¿D‹lçû©aÀË¡E¶óýÀ-²�ï§Þ¿)\�Âõˆ:ÀìQ¸…+!@°rh‘íÜ?ÀV-²�ï@j¼t“ì¿D‹lçû©aÀ333333@u“VÍ?¾Ÿ/ÝäAÀ¾Ÿ/Ý$@ªñÒMb@JÀu“Ví¿^ºI +ï?ÙÎ÷Sã-mÀu“Ví¿^ºI +ï?¾Ÿ/ÝäAÀ¾Ÿ/Ý$@ªñÒMb@JÀ333333Àu“VÍ¿ÙÎ÷Sã-mÀÑ"Ûù~j @‹lçû©ñÚ?D‹lçûi1ÀX9´Èv>@= ×£pýKÀ/Ý$�•÷¿ /Ý$í?+‡ÙÎclÀ/Ý$�•÷¿ /Ý$í?D‹lçûi1ÀX9´Èv>@= ×£pýKÀÑ"Ûù~j À‹lçû©ñÚ¿+‡ÙÎclÀTã¥›Ä À‘í|?5^æ?w¾Ÿ/½4À^ºI ++@ôýÔxévMÀî|?5^ºÀáz®Gáæ¿+‡ÙÎnÀî|?5^ºÀáz®Gáæ¿w¾Ÿ/½4À^ºI ++@ôýÔxévMÀTã¥›Ä @‘í|?5^æ¿+‡ÙÎnÀ¼t“V@ö(\�Âõà?F¶óýÔØB@žï§ÆKw"@\�Âõ(|<ÀV-²�ïÀ‰A`åÐ"ë?¾Ÿ/Ý `ÀV-²�ïÀ‰A`åÐ"ë?F¶óýÔØB@žï§ÆKw"@\�Âõ(|<À¼t“VÀö(\�Âõ࿾Ÿ/Ý `À®Gáz濲�ï§ÆKï?{®Gáº:@V-²�ï@ ×£p=Ê<Àj¼t“ ÀåÐ"Ûù~Ê¿é&1¬´]Àj¼t“ ÀåÐ"Ûù~Ê¿{®Gáº:@V-²�ï@ ×£p=Ê<À®Gázæ?²�ï§ÆKï¿é&1¬´]À®Gáz@7‰A`åÐÚ?øS㥛„EÀyé&1l#@é&1¬|:À/Ý$�ÿ¿u“Ví?sh‘í|O`À/Ý$�ÿ¿u“Ví?øS㥛„EÀyé&1l#@é&1¬|:À®GázÀ7‰A`åÐÚ¿sh‘í|O`À-²�ï§Æë?´Èv¾Ÿï?Év¾Ÿo>@®Gáz®@= ×£p]HÀyé&1¬ À®GázÎ?�—nƒ iÀyé&1¬ À®GázÎ?Év¾Ÿo>@®Gáz®@= ×£p]HÀ-²�ï§Æë¿´Èv¾Ÿï¿�—nƒ iÀÛù~j¼ô@°rh‘í|ç?®Gázn1À°rh‘í¼*@5^ºI âOÀZd;ßOÀî|?5^ºå?ìQ¸…£oÀZd;ßOÀî|?5^ºå?®Gázn1À°rh‘í¼*@5^ºI âOÀÛù~j¼ôÀ°rh‘í|ç¿ìQ¸…£oÀ¦›Ä °r@?5^ºI ê?ÙÎ÷SãÕK@u“VŽ@¾Ÿ/Ý´DÀJ +‡À�Âõ(\�â?Ház®ChÀJ +‡À�Âõ(\�â?ÙÎ÷SãÕK@u“VŽ@¾Ÿ/Ý´DÀ¦›Ä °rÀ?5^ºI ê¿Ház®ChÀÙÎ÷SãÀü©ñÒMb�?þÔxé&ñA@ ×£p=Š$@-²�ïDÀ{®Gáz´¿ð¿ÁÊ¡E¶›eÀ{®Gáz´¿ð¿þÔxé&ñA@ ×£p=Š$@-²�ïDÀÙÎ÷Sã@ü©ñÒMb�¿ÁÊ¡E¶›eÀ1¬Zd ÀªñÒMb¨?ÇK7‰A@J@ã¥›Ä °@–C‹lç+JÀ×£p= ×ÿ+‡ÙÎ÷ï¿Év¾Ÿ›mÀ×£p= ×ÿ+‡ÙÎ÷ï¿ÇK7‰A@J@ã¥›Ä °@–C‹lç+JÀ1¬Zd @ªñÒMb¨¿Év¾Ÿ›mÀ333333 @ú~j¼t“Ø?h‘í|?UC@¢E¶óýT @NbX9ÔHÀR¸…ëQø¿ð§ÆK7‰í?9´Èv¾ÃjÀR¸…ëQø¿ð§ÆK7‰í?h‘í|?UC@¢E¶óýT @NbX9ÔHÀ333333 Àú~j¼t“Ø¿9´Èv¾ÃjÀ?5^ºI À¼t“Vâ?V-rL@+‡ÙÎ7$@;ßO�—nBÀq= ×£pÀ= ×£p=ê¿ÍÌÌÌÌøeÀq= ×£pÀ= ×£p=ê¿V-rL@+‡ÙÎ7$@;ßO�—nBÀ?5^ºI @¼t“Vâ¿ÍÌÌÌÌøeÀ®Gáz.@¤p= ×£ä?ßO�—n²HÀ33333³&@-²�阮8À'1¬Z À¦›Ä °rè?´Èv¾ŸB_À'1¬Z À¦›Ä °rè?ßO�—n²HÀ33333³&@-²�阮8À®Gáz.À¤p= ף俴Èv¾ŸB_Àd;ßO�—î?‡ÙÎ÷Sï?mçû©ñ²:ÀÓMbX9#@mçû©ñBGÀ¸…ëQ8À= ×£p=Ê?L7‰A`‘hÀ¸…ëQ8À= ×£p=Ê?mçû©ñ²:ÀÓMbX9#@mçû©ñBGÀd;ßO�—ÙÎ÷Sï¿L7‰A`‘hÀ333333ý¿= ×£p=ê?V-²��GÀHáz®Ç@�—nƒ CÀL7‰A`åÀ¼t“Vâ¿\�Âõ(DgÀL7‰A`åÀ¼t“Vâ¿V-²��GÀHáz®Ç@�—nƒ CÀ333333ý?= ×£p=ê¿\�Âõ(DgÀX9´Èv¾÷?–C‹lçûí?Ï÷S㥛E@\�Âõ(œ!@ìQ¸…‹LÀ`åÐ"ÛùÀƒÀÊ¡EÖ?}?5^º5oÀ`åÐ"ÛùÀƒÀÊ¡EÖ?Ï÷S㥛E@\�Âõ(œ!@ìQ¸…‹LÀX9´Èv¾÷¿–C‹lçûí¿}?5^º5oÀ…ëQ¸…û?ºI +‡ê?“VýC@¶óýÔxé@ôýÔxé&JÀü©ñÒMbÀÙÎ÷Sãá?#Ûù~jplÀü©ñÒMbÀÙÎ÷Sãá?“VýC@¶óýÔxé@ôýÔxé&JÀ…ëQ¸…û¿ºI +‡ê¿#Ûù~jplÀð§ÆK7‰ù?ì?¦›Ä °2-À´Èv¾Ÿš@-²�ï×AÀÕxé&1À ×£p= ß?´Èv¾Ÿ¢aÀÕxé&1À ×£p= ß?¦›Ä °2-À´Èv¾Ÿš@-²�ï×AÀð§ÆK7‰ù¿ì¿´Èv¾Ÿ¢aÀþÔxé&±@/Ý$�•?òÒMbx7À�•C‹lg&@Ñ"Ûù~ÚGÀ!°rh‘í¼¿ð? /Ý$òhÀ!°rh‘í¼¿ð?òÒMbx7À�•C‹lg&@Ñ"Ûù~ÚGÀþÔxé&±À/Ý$�•¿ /Ý$òhÀ^ºI +À9´Èv¾ŸÊ?åÐ"ÛùNP@j¼t“X&@Ãõ(\�EÀ–C‹lçûñ¿²�ï§ÆKï¿ßO�—njiÀ–C‹lçûñ¿²�ï§ÆKï¿åÐ"ÛùNP@j¼t“X&@Ãõ(\�EÀ^ºI +@9´Èv¾ŸÊ¿ßO�—njiÀ}?5^ºI@ƒÀÊ¡E¶ë?Zd;ßOíH@B`åÐ"Û!@˜nƒÀê=ÀÁÊ¡E¶ó Àà?¼t“ÊaÀÁÊ¡E¶ó Àà?Zd;ßOíH@B`åÐ"Û!@˜nƒÀê=À}?5^ºIÀƒÀÊ¡E¶ë¿¼t“ÊaÀ¦›Ä °ò@¶óýÔxéÆ?ü©ñÒMB:À#Ûù~jü%@9´Èv¾ÏJÀX9´Èvî¿°rh‘í|ï?þÔxé&™lÀX9´Èvî¿°rh‘í|ï?ü©ñÒMB:À#Ûù~jü%@9´Èv¾ÏJÀ¦›Ä °òÀ¶óýÔxéÆ¿þÔxé&™lÀÙÎ÷Sã¥@¾Ÿ/Ý$Æ?sh‘í|ÿEÀ‹lçû©±&@ßO�—nbGÀ¼t“Vî¿…ëQ¸…ï?Ûù~j¼kÀ¼t“Vî¿…ëQ¸…ï?sh‘í|ÿEÀ‹lçû©±&@ßO�—nbGÀÙÎ÷Sã¥À¾Ÿ/Ý$Æ¿Ûù~j¼kÀÑ"Ûù~j Àu“Vå?Å °rh±D@#Ûù~j|#@yé&1¼AÀ×£p= ×Àj¼t“è¿°rh‘í¤cÀ×£p= ×Àj¼t“è¿Å °rh±D@#Ûù~j|#@yé&1¼AÀÑ"Ûù~j @u“Vå¿°rh‘í¤cÀ¼t“VI +‡î?}?5^º‰:@V-²@/Ý$áEÀ= ×£p=À‰A`åÐ"Ó¿bX9´ôeÀ= ×£p=À‰A`åÐ"Ó¿}?5^º‰:@V-²@/Ý$áEÀ¼t“Vî?ºI +‡î¿bX9´ôeÀ?5^ºI @X9´Èvê?7‰A`åp2À/Ý$�•-@ªñÒMbPBÀ¼t“ÖÀ–C‹lçûá?5^ºI úbÀ¼t“ÖÀ–C‹lçûá?7‰A`åp2À/Ý$�•-@ªñÒMbPBÀ?5^ºI ÀX9´Èvê¿5^ºI úbÀ²�ï§ÆKÀ}?5^ºIÌ?�•C‹L@@NbX94@-²�ï§æAÀ°rh‘í|ë¿333333↓ZdûbÀ°rh‘í|ë¿333333ï¿�•C‹L@@NbX94@-²�ï§æAÀ²�ï§ÆK@}?5^ºIÌ¿¬ZdûbÀ®Gáz À¶óýÔxéÞ?é&1¬,FÀªñÒMb@j¼t“(FÀB`åÐ"Ûý¿Õxé&1ì¿#Ûù~j°iÀB`åÐ"Ûý¿Õxé&1ì¿é&1¬,FÀªñÒMb@j¼t“(FÀ®Gáz @¶óýÔxéÞ¿#Ûù~j°iÀú~j¼t“è?Ûù~j¼tï?ÙÎ÷SãÅC@�•C‹l'!@X9´ÈvCÀmçû©ñRÀ®Gáz®Ç?/Ý$ñdÀmçû©ñRÀ®Gáz®Ç?ÙÎ÷SãÅC@�•C‹l'!@X9´ÈvCÀú~j¼t“è¿Ûù~j¼tï¿/Ý$ñdÀ}?5^ºÉÀd;ßO�—Î?ÍÌÌÌÌÀT㥛ĠÀh‘í|?5®?Ãõ(\�r^ÀT㥛ĠÀh‘í|?5®??5^ºIL7@¤p= ×#&@9´Èv¾Ÿ>À/Ý$�•Ó¿V-²�ïï¿Ãõ(\�r^À\�Âõ(\À +‡Ùæ?Zd;ßO/À9´Èv¾_&@�•C‹l'DÀ!°rh‘íÀ;ßO�—næ¿®GázzdÀ!°rh‘íÀ;ßO�—næ¿Zd;ßO/À9´Èv¾_&@�•C‹l'DÀ\�Âõ(\@ +‡Ùæ¿®GázzdÀÙÎ÷Sã%@ú~j¼t“x?¬Zd›?@î|?5^º'@‡ÙÎ÷ƒJÀìQ¸…ë¡¿ð?�Âõ(\ŸkÀìQ¸…ë¡¿ð?¬Zd›?@î|?5^º'@‡ÙÎ÷ƒJÀÙÎ÷Sã%Àú~j¼t“x¿�Âõ(\ŸkÀ!°rh‘íÀ`åÐ"Ûù¾? +‡=@mçû©ñÒ)@Zd;ßNÀÝ$�•Cç¿-²�ï§Æï¿žï§ÆKÃoÀÝ$�•Cç¿-²�ï§Æï¿ +‡=@mçû©ñÒ)@Zd;ßNÀ!°rh‘í@`åÐ"Ûù¾¿žï§ÆKÃoÀR¸…ëQä¿-²�ï§Æï?ü©ñÒMb-ÀÙÎ÷S£&@X9´Èv®JÀ-²�ï§ÆÀV-²½¿¨ÆK7‰ÉjÀ-²�ï§ÆÀV-²½¿ü©ñÒMb-ÀÙÎ÷S£&@X9´Èv®JÀR¸…ëQä?-²�ï§Æï¿¨ÆK7‰ÉjÀX9´ÈvÀd;ßO�—æ?áz®Gá9ÀƒÀÊ¡E6&@V-²�OHÀü©ñÒMbÀ-²�ï§æ¿P�—niÀü©ñÒMbÀ-²�ï§æ¿áz®Gá9ÀƒÀÊ¡E6&@V-²�OHÀX9´Èv@d;ßO�—æ¿P�—niÀ¾Ÿ/Ý$î?…ëQ¸…ï?ð§ÆK7 :ÀÙÎ÷Sc&@ ×£p=*IÀ'1¬ZÀƒÀÊ¡EÆ?%�•C«jÀ'1¬ZÀƒÀÊ¡EÆ?ð§ÆK7 :ÀÙÎ÷Sc&@ ×£p=*IÀ¾Ÿ/Ý$î¿…ëQ¸…ï¿%�•C«jÀ7‰A`åPÀffffffæ?}?5^º):@š™™™™™'@¬Zd;/NÀ5^ºI À +‡Ùæ¿�Âõ(\ÓnÀ5^ºI À +‡Ùæ¿}?5^º):@š™™™™™'@¬Zd;/NÀ7‰A`åP@ffffffæ¿�Âõ(\ÓnÀNbX9´ Àmçû©ñÒÕ?B`åÐ"»@@ÓMbX¹@/Ý$ÁMÀÅ °rh‘õ¿®Gázî¿®Gáz€oÀÅ °rh‘õ¿®Gázî¿B`åÐ"»@@ÓMbX¹@/Ý$ÁMÀNbX9´ @mçû©ñÒÕ¿®Gáz€oÀ?5^ºI À /Ý$å?¾Ÿ/ÝDF@F¶óýÔø%@ã¥›Ä PMÀV-²�ï ÀTã¥›Ä è¿/Ý$ pÀV-²�ï ÀTã¥›Ä è¿¾Ÿ/ÝDF@F¶óýÔø%@ã¥›Ä PMÀ?5^ºI @ /Ý$å¿/Ý$ pÀffffffÀÏ÷S㥛ì?T㥛ÄÐEÀ ×£p= ,@1¬Z„EÀœÄ °rhÀÏ÷S㥛ܿ¨ÆK7‰¹hÀœÄ °rhÀÏ÷S㥛ܿT㥛ÄÐEÀ ×£p= ,@1¬Z„EÀffffff@Ï÷S㥛쿨ÆK7‰¹hÀ´Èv¾Ÿ׿V-²�ïï?w¾Ÿ/=B@X9´Èv+@Ãõ(\�’DÀd;ßO�—Àyé&1¬¬¿NbX94fÀd;ßO�—Àyé&1¬¬¿w¾Ÿ/=B@X9´Èv+@Ãõ(\�’DÀ´Èv¾Ÿ×?V-²�ïï¿NbX94fÀyé&1¬ @˜nƒÀÊå?;ßO�—þ@Àžï§ÆK7$@š™™™™IHÀD‹lçû© À�•C‹lç?#Ûù~j¬jÀD‹lçû© À�•C‹lç?;ßO�—þ@Àžï§ÆK7$@š™™™™IHÀyé&1¬ À˜nƒÀÊå¿#Ûù~j¬jÀé&1¬ @Ãõ(\�Âå?Å °rh¡E@-²�阮$@-²�ï§ÖGÀ ×£p= À°rh‘í|ç?ÍÌÌÌÌ jÀ ×£p= À°rh‘í|ç?Å °rh¡E@-²�阮$@-²�ï§ÖGÀé&1¬ ÀÃõ(\�Âå¿ÍÌÌÌÌ jÀ´Èv¾ŸÀ‡ÙÎ÷Së?‡ÙÎ÷S&À7‰A`åÐ'@Ý$�•#GÀË¡E¶óýÀ¤p= ×£à¿sh‘í|ÛfÀË¡E¶óýÀ¤p= ף࿇ÙÎ÷S&À7‰A`åÐ'@Ý$�•#GÀ´Èv¾Ÿ@‡ÙÎ÷Së¿sh‘í|ÛfÀ¬Zd;_À{®Gázà?‹lçû©9@¢E¶óýT'@V-òJÀÝ$�•CÀ�•C‹lë¿yé&1ÔjÀÝ$�•CÀ�•C‹lë¿‹lçû©9@¢E¶óýT'@V-òJÀ¬Zd;_@{®Gázà¿yé&1ÔjÀTã¥›Ä @= ×£p=î?ü©ñÒMRL@{®Gáz*@R¸…ëQCÀw¾Ÿ/]Àw¾Ÿ/ÝÔ?˜nƒÀgÀw¾Ÿ/]Àw¾Ÿ/ÝÔ?ü©ñÒMRL@{®Gáz*@R¸…ëQCÀTã¥›Ä À= ×£p=nƒÀgÀ‰A`åÐ"@–C‹lçûé?œÄ °rL@\�Âõ(\%@œÄ °rÈ9ÀÍÌÌÌÌÌÀ-²�ï§â?é&1¬¸`ÀÍÌÌÌÌÌÀ-²�ï§â?œÄ °rL@\�Âõ(\%@œÄ °rÈ9À‰A`åÐ"À–C‹lçûé¿é&1¬¸`ÀË¡E¶óý@¤p= ×£Ø?š™™™™Y2ÀV-²]&@¢E¶óýtIÀD‹lçû©Àð§ÆK7‰í?D‹lçûjÀD‹lçû©Àð§ÆK7‰í?š™™™™Y2ÀV-²]&@¢E¶óýtIÀË¡E¶óýÀ¤p= ףؿD‹lçûjÀ#Ûù~j¼@áz®Gáê?Õxé&1H6À‹lçû©±$@R¸…ëOÀ¼t“ÖÀòÒMbXá??5^ºIÄoÀ¼t“ÖÀòÒMbXá?Õxé&1H6À‹lçû©±$@R¸…ëOÀ#Ûù~j¼Àáz®Gáê¿?5^ºIÄoÀ+‡ÙÎÀL7‰A`åè?¦›Ä °òC@ +‡!@²�ï§ÆË8ÀøSã¥›Ä Àj¼t“ä¿�—nƒ ]ÀøSã¥›Ä Àj¼t“俦›Ä °òC@ +‡!@²�ï§ÆË8À+‡ÙÎ@L7‰A`åè¿�—nƒ ]ÀÕxé&1 @ÓMbX9Ä?fffff†?@oƒÀÊ¡@Év¾Ÿ/FÀyé&1¬à¿/Ý$�•ï? ×£p=gÀyé&1¬à¿/Ý$�•ï?fffff†?@oƒÀÊ¡@Év¾Ÿ/FÀÕxé&1 ÀÓMbX9Ä¿ ×£p=gÀ#Ûù~j¼@w¾Ÿ/Ýì?×£p= A@�—nƒ$@Ãõ(\�¢IÀ+‡ÙÎwÀÙÎ÷Sã¥Û?Év¾ŸkÀ+‡ÙÎwÀÙÎ÷Sã¥Û?×£p= A@�—nƒ$@Ãõ(\�¢IÀ#Ûù~j¼Àw¾Ÿ/Ýì¿Év¾ŸkÀáz®GáÀºI +‡Þ?'1¬º6À`åÐ"Û¹"@/Ý$�=À²�ï§ÆKÀTã¥›Ä ì¿bX9´0^À²�ï§ÆKÀTã¥›Ä ì¿'1¬º6À`åÐ"Û¹"@/Ý$�=Àáz®Gá@ºI +‡Þ¿bX9´0^Àq= ×£på¿V-²�ï?×£p= §N@ü©ñÒMâ!@¨ÆK7‰qHÀé&1¬À×£p= ×ÿ“V¹lÀé&1¬À×£p= ×ÿףp= §N@ü©ñÒMâ!@¨ÆK7‰qHÀq= ×£på?V-²�ï¿“V¹lÀ¢E¶óýÔ@�Âõ(\�æ?'1¬:K@mçû©ñR @P�—ncIÀ-²�ï§À¸…ëQ¸æ?9´Èv¾ólÀ-²�ï§À¸…ëQ¸æ?'1¬:K@mçû©ñR @P�—ncIÀ¢E¶óýÔÀ�Âõ(\�æ¿9´Èv¾ólÀZd;ßO@ü©ñÒMbà?j¼t“¤DÀé&1¬@bX9´èAÀÇK7‰A`ù¿°rh‘í|ë?ªñÒMb0eÀÇK7‰A`ù¿°rh‘í|ë?j¼t“¤DÀé&1¬@bX9´èAÀZd;ßOÀü©ñÒMb࿪ñÒMb0eÀš™™™™™ñ?X9´Èvî?ÙÎ÷Sã¥2Àj¼t“@X9´Èv>@Àq= ×£p À…ëQ¸…Ó?ú~j¼tƒ`Àq= ×£p À…ëQ¸…Ó?ÙÎ÷Sã¥2Àj¼t“@X9´Èv>@Àš™™™™™ñ¿X9´Èvî¿ú~j¼tƒ`À\�Âõ(\ @‹lçû©ñ¢?ã¥›Ä ð6À…ëQ¸ž@5^ºI ¢>ÀÀ¿+‡ÙÎ÷ï?sh‘í|`ÀÀ¿+‡ÙÎ÷ï?ã¥›Ä ð6À…ëQ¸ž@5^ºI ¢>À\�Âõ(\ À‹lçû©ñ¢¿sh‘í|`ÀbX9´ÈÀÕxé&1è?î|?5^z6ÀZd;ßO @×£p= ç@À7‰A`åÐÀ…ëQ¸å¿Ë¡E¶óbÀ7‰A`åÐÀ…ëQ¸å¿î|?5^z6ÀZd;ßO @×£p= ç@ÀbX9´È@Õxé&1è¿Ë¡E¶óbÀ^ºI +×?¬Zd;ßï?u“V~F@¶óýÔxi @+‡Ù9ÀR¸…ëÑÀj¼t“¶?ÙÎ÷Sc^ÀR¸…ëÑÀj¼t“¶?u“V~F@¶óýÔxi @+‡Ù9À^ºI +׿¬Zd;ßï¿ÙÎ÷Sc^Àb˜´Èv¾Ÿ @‹lçû©ñ²?9´Èv¾?9@¬Zd;_@é&1¬4SÀHáz®GÑ¿�•C‹lçï?oƒÀʵsÀHáz®GÑ¿�•C‹lçï?9´Èv¾?9@¬Zd;_@é&1¬4SÀ´Èv¾Ÿ À‹lçû©ñ²¿oƒÀʵsÀôýÔxé&û¿ö(\�Âõì?R¸…ë±CÀÕxé&1@ÓMbXñRÀÙÎ÷Sã À333333Û¿)\�ÂõpsÀÙÎ÷Sã À333333Û¿R¸…ë±CÀÕxé&1@ÓMbXñRÀôýÔxé&û?ö(\�Âõì¿)\�ÂõpsÀ°rh‘í|@R¸…ëQØ?ÙÎ÷Sã%AÀ²�ï§Æ‹ @øS㥛lXÀ×£p= ×ù¿š™™™™™í?¸…ëQxÀ×£p= ×ù¿š™™™™™í?ÙÎ÷Sã%AÀ²�ï§Æ‹ @øS㥛lXÀ°rh‘í|ÀR¸…ëQØ¿¸…ëQxÀÃõ(\�BÀ˜nƒÀÊá?9´Èv¾ÿ6@¦›Ä °2$@œÄ °rSÀ�—nƒÀÀd;ßO�—ê¿ð§ÆK7ssÀ�—nƒÀÀd;ßO�—ê¿9´Èv¾ÿ6@¦›Ä °2$@œÄ °rSÀÃõ(\�B@˜nƒÀÊá¿ð§ÆK7ssÀF¶óýÔxù¿/Ý$�í?sh‘í|HÀq= ×£ð@²�ï§ÆûTÀHáz®GÀ¢E¶óýÔØ¿%�•CãuÀHáz®GÀ¢E¶óýÔØ¿sh‘í|HÀq= ×£ð@²�ï§ÆûTÀF¶óýÔxù?/Ý$�í¿%�•CãuÀ¦›Ä °r@Ñ"Ûù~jè?°rh‘íÌJÀL7‰A`å @ÇK7‰A°MÀð§ÆK7‰ Àyé&1¬ä?çû©ñÒëpÀð§ÆK7‰ Àyé&1¬ä?°rh‘íÌJÀL7‰A`å @ÇK7‰A°MÀ¦›Ä °rÀÑ"Ûù~jè¿çû©ñÒëpÀ333333 @-²�ï§Ö?#Ûù~jlB@Ház®G@�•C‹l§XÀd;ßO�—ô¿ìQ¸…ëí?!°rh‘™xÀd;ßO�—ô¿ìQ¸…ëí?#Ûù~jlB@Ház®G@�•C‹l§XÀ333333 À-²�ï§Ö¿!°rh‘™xÀh‘í|?5ö?D‹lçû©í?!°rh‘­6@Ý$�•Ã@\�Âõ(„VÀ�•C‹l ÀØ?j¼t“BvÀ�•C‹l ÀØ?!°rh‘­6@Ý$�•Ã@\�Âõ(„VÀh‘í|?5ö¿D‹lçû©í¿j¼t“BvÀyé&1¬Ü?�•C‹lçï?ð§ÆK7é2@ÁÊ¡E¶³&@˜nƒÀZUÀ¶óýÔxéÀ#Ûù~j¼´?¢E¶óý$uÀ¶óýÔxéÀ#Ûù~j¼´?ð§ÆK7é2@ÁÊ¡E¶³&@˜nƒÀZUÀyé&1¬Ü¿�•C‹lçï¿¢E¶óý$uÀã¥›Ä ° À…ëQ¸…ç?V-ò:@Å °rh%@ÙÎ÷SãYÀ`åÐ"Ûù ÀV-²å¿Ë¡E¶ó{xÀ`åÐ"Ûù ÀV-²å¿V-ò:@Å °rh%@ÙÎ÷SãYÀã¥›Ä ° @…ëQ¸…ç¿Ë¡E¶ó{xÀ^ºI +Àú~j¼t“˜?= ×£pF@ÍÌÌÌÌÌ#@øS㥛DRÀÁÊ¡E¶ó½¿ð¿'1¬ÊsÀÁÊ¡E¶ó½¿ð¿= ×£pF@ÍÌÌÌÌÌ#@øS㥛DRÀ^ºI +@ú~j¼t“˜¿'1¬ÊsÀ¤p= ×£@ +‡Ùê?\�Âõ(DÀ ×£p=Š@®Gáz4PÀÓMbX9 ÀœÄ °rhá?®Gáz`qÀÓMbX9 ÀœÄ °rhá?\�Âõ(DÀ ×£p=Š@®Gáz4PÀ¤p= ×£À +‡Ùê¿®Gáz`qÀ1¬ZäÀ{®Gáz¤?ð§ÆK7™H@J +‡Ö,@àVÀòÒMbXÑ¿+‡ÙÎ÷ï¿h‘í|?³wÀòÒMbXÑ¿+‡ÙÎ÷ï¿ð§ÆK7™H@J +‡Ö,@àVÀ1¬Zä@{®Gáz¤¿h‘í|?³wÀ-²�ï§ò?¶óýÔxéî?+‡ÙÎWLÀ/Ý$Á"@˜nƒÀjSÀZd;ßO�À¦›Ä °rÐ?®GázútÀZd;ßO�À¦›Ä °rÐ?+‡ÙÎWLÀ/Ý$Á"@˜nƒÀjSÀ-²�ï§ò¿¶óýÔxéî¿®GázútÀÝ$�•Cý?é&1¬î?ºI +wI@Zd;ßOM&@;ßO�—ÞOÀR¸…ëQÀV-²Õ?¨ÆK7‰ÉqÀR¸…ëQÀV-²Õ?ºI +wI@Zd;ßOM&@;ßO�—ÞOÀÝ$�•Cý¿é&1¬ÆK7‰ÉqÀ /Ý$í¿‡ÙÎ÷Sï?NbX9A@Ãõ(\�B!@�•C‹ìNÀáz®GaÀé&1¬Ê¿9´Èv¾mpÀáz®GaÀé&1¬Ê¿NbX9A@Ãõ(\�B!@�•C‹ìNÀ /Ý$í?‡ÙÎ÷Sï¿9´Èv¾mpÀq= ×£ðÀ…ëQ¸á?1¬Z„8Àî|?5^z%@ÙÎ÷SëQÀ;ßO�—nÀ ×£p= ë¿d;ßO�çqÀ;ßO�—nÀ ×£p= ë¿1¬Z„8Àî|?5^z%@ÙÎ÷SëQÀq= ×£ð@…ëQ¸á¿d;ßO�çqÀçû©ñÒM @�Âõ(\�Ú??5^ºI 8@X9´Èv>@¾Ÿ/ݬSÀ+‡ÙÎù¿…ëQ¸í?D‹lçûtÀ+‡ÙÎù¿…ëQ¸í??5^ºI 8@X9´Èv>@¾Ÿ/ݬSÀçû©ñÒM À�Âõ(\�Ú¿D‹lçûtÀj¼t“À®Gázî?V-²}7À¬Zd;)@X9´Èv¦PÀÙÎ÷Sã%ÀÃõ(\�ÂÕ¿\�Âõ(ÜpÀÙÎ÷Sã%ÀÃõ(\�ÂÕ¿V-²}7À¬Zd;)@X9´Èv¦PÀj¼t“@®Gázî¿\�Âõ(ÜpÀoƒÀÊ¡À!°rh‘íä?‰A`åÐB6@ÇK7‰A`@h‘í|?uRÀ¦›Ä °rÀþÔxé&1è¿×£p= »rÀ¦›Ä °rÀþÔxé&1迉A`åÐB6@ÇK7‰A`@h‘í|?uRÀoƒÀÊ¡@!°rh‘íä¿×£p= »rÀh‘í|?5¾?ð?–C‹lçKBÀ‹lçû©q@+‡ÙÎïWÀƒÀÊ¡EÀX9´Èv¾Ÿ?ÍÌÌÌÌ®wÀƒÀÊ¡EÀX9´Èv¾Ÿ?–C‹lçKBÀ‹lçû©q@+‡ÙÎïWÀh‘í|?5¾¿ð¿ÍÌÌÌÌ®wÀ/Ý$@‡ÙÎ÷SÃ?J +‡öDÀ+‡ÙÎ"@j¼t“¨QÀÁÊ¡E¶óå¿ÙÎ÷Sã¥ï?)\�ÂõvrÀÁÊ¡E¶óå¿ÙÎ÷Sã¥ï?J +‡öDÀ+‡ÙÎ"@j¼t“¨QÀ/Ý$À‡ÙÎ÷Sÿ)\�ÂõvrÀZd;ßO�Àj¼t“â?ã¥›Ä L@ ×£p=Š@j¼t“XNÀ�—nƒÀþ¿;ßO�—nê¿ÍÌÌÌÌLqÀ�—nƒÀþ¿;ßO�—nê¿ã¥›Ä L@ ×£p=Š@j¼t“XNÀZd;ßO�@j¼t“â¿ÍÌÌÌÌLqÀ¤p= ×£è?…ëQ¸…ï?Év¾Ÿ3@yé&1l!@�Âõ(\ÏQÀôýÔxé¦Àj¼t“Æ?+‡ÙÎ×qÀôýÔxé¦Àj¼t“Æ?Év¾Ÿ3@yé&1l!@�Âõ(\ÏQÀ¤p= ף迅ëQ¸…ï¿+‡ÙÎ×qÀ}?5^ºI@w¾Ÿ/Ýì?P�—nA@ /Ý$†#@P�—nXÀªñÒMbÀ/Ý$�•Û?X9´È xÀªñÒMbÀ/Ý$�•Û?P�—nA@ /Ý$†#@P�—nXÀ}?5^ºIÀw¾Ÿ/Ýì¿X9´È xÀš™™™™™ÀôýÔxé&é?‰A`åÐÂB@7‰A`åÐ@}?5^ºùVÀ¶óýÔxéÀ-²�ï§Æã¿!°rh‘uwÀ¶óýÔxéÀ-²�ï§Æã¿‰A`åÐÂB@7‰A`åÐ@}?5^ºùVÀš™™™™™@ôýÔxé&é¿!°rh‘uwÀªñÒMbà?-²�ï§Æï?�Âõ(\¯BÀ‘í|?5!@®Gáz¼TÀÛù~j¼tÀ`åÐ"Ûù¾?˜nƒÀJuÀÛù~j¼tÀ`åÐ"Ûù¾?�Âõ(\¯BÀ‘í|?5!@®Gáz¼TÀªñÒMbà¿-²�ï§Æï¿˜nƒÀJuÀ/Ý$�Àd;ßO�—Þ?…ëQ¸uLÀj¼t“D%@%�•C#WÀƒÀÊ¡E¶Àj¼t“쿃ÀÊ¡E xÀƒÀÊ¡E¶Àj¼t“ì¿…ëQ¸uLÀj¼t“D%@%�•C#WÀ/Ý$�@d;ßO�—Þ¿ƒÀÊ¡E xÀìQ¸…ë÷?ã¥›Ä °î?/Ý$Á@@V-²�¯%@ßO�—njRÀoƒÀÊ!À= ×£p=Ò?Év¾Ÿ7sÀoƒÀÊ!À= ×£p=Ò?/Ý$Á@@V-²�¯%@ßO�—njRÀìQ¸…ë÷¿ã¥›Ä °î¿Év¾Ÿ7sÀÛù~j¼t @^ºI +ã?ö(\�ÂAÀÛù~j¼´!@ ×£p=jTÀZd;ßO�ÀoƒÀÊ¡é?´Èv¾ŸÆtÀZd;ßO�ÀoƒÀÊ¡é?ö(\�ÂAÀÛù~j¼´!@ ×£p=jTÀÛù~j¼t À^ºI +ã¿´Èv¾ŸÆtÀžï§ÆK7À�•C‹lçë?F¶óýÔX:ÀV-²]&@�•C‹l'QÀü©ñÒMâÀ\�Âõ(\ß¿%�•CmqÀü©ñÒMâÀ\�Âõ(\ß¿F¶óýÔX:ÀV-²]&@�•C‹l'QÀžï§ÆK7@�•C‹lçë¿%�•CmqÀ+‡ÙNÀð§ÆK7‰Ñ? ×£p=*@@î|?5^º$@òÒMbQÀ+‡ÙÎ÷õ¿bX9´Èî¿P�—nåqÀ+‡ÙÎ÷õ¿bX9´Èî¿ ×£p=*@@î|?5^º$@òÒMbQÀ+‡ÙN@ð§ÆK7‰Ñ¿P�—nåqÀ�•C‹lçñ¿‹lçû©ñî?¤p= ×CA@-²�ï§F"@7‰A`åÐSÀ9´Èv¾ÀþÔxé&1пB`åÐ"»tÀ9´Èv¾ÀþÔxé&1п¤p= ×CA@-²�ï§F"@7‰A`åÐSÀ�•C‹lçñ?‹lçû©ñî¿B`åÐ"»tÀ +‡Ùæ?²�ï§ÆKï?mçû©ñrF@²�ï§ÆË@33333{QÀ+‡ÙÎ÷ ÀåÐ"Ûù~Ê?'1¬þrÀ+‡ÙÎ÷ ÀåÐ"Ûù~Ê?mçû©ñrF@²�ï§ÆË@33333{QÀ +‡Ù濲�ï§ÆKï¿'1¬þrÀd;ßO�—@Ø?åÐ"Ûù>MÀòÒMb˜!@Õxé&1àQÀÅ °rh‘ù¿D‹lçû©í?j¼t“bsÀÅ °rh‘ù¿D‹lçû©í?åÐ"Ûù>MÀòÒMb˜!@Õxé&1àQÀd;ßO�—ÀØ¿j¼t“bsÀö(\�Âõð¿´Èv¾Ÿï?j¼t“èJ@sh‘í|¿"@î|?5^ÒVÀôýÔxé¦ÀÁÊ¡E¶óÍ¿33333ÇwÀôýÔxé¦ÀÁÊ¡E¶óÍ¿j¼t“èJ@sh‘í|¿"@î|?5^ÒVÀö(\�Âõð?´Èv¾Ÿï¿33333ÇwÀú~j¼t“ˆ¿ð?¬Zd;¿F@R¸…ëQ @Ý$�•SPÀÏ÷S㥛Àú~j¼t“h¿F¶óýÔâqÀÏ÷S㥛Àú~j¼t“h¿¬Zd;¿F@R¸…ëQ @Ý$�•SPÀú~j¼t“ˆ?ð¿F¶óýÔâqÀV-2Àmçû©ñÒÕ?`åÐ"Û9NÀÍÌÌÌÌL)@´Èv¾ŸšMÀ…ëQ¸À®GáznƒÀ0qÀ…ëQ¸À®Gázî¿`åÐ"Û9NÀÍÌÌÌÌL)@´Èv¾ŸšMÀV-2@mçû©ñÒÕ¿˜nƒÀ0qÀ/Ý$�•@5^ºI Ó?ºI +'7ÀÓMbXù%@Ház®çYÀ‘í|?5^ø¿�Âõ(\�î?ƒÀÊ¡EÒxÀ‘í|?5^ø¿�Âõ(\�î?ºI +'7ÀÓMbXù%@Ház®çYÀ/Ý$�•À5^ºI Ó¿ƒÀÊ¡EÒxÀ333333À7‰A`åÐæ?V-²�¯DÀ¬Zd;&@¼t“~UÀã¥›Ä °À;ßO�—næ¿= ×£pvÀã¥›Ä °À;ßO�—næ¿V-²�¯DÀ¬Zd;&@¼t“~UÀ333333@7‰A`åÐæ¿= ×£pvÀd;ßO�— ÀoƒÀÊ¡Õ?D‹lçû‰JÀ°rh‘í< @Ház®×UÀ²�ï§ÆKõ¿é&1¬î¿}?5^ºÁvÀ²�ï§ÆKõ¿é&1¬î¿D‹lçû‰JÀ°rh‘í< @Ház®×UÀd;ßO�— @oƒÀʡտ}?5^ºÁvÀÁÊ¡E¶óÀj¼t“â?X9´È†GÀìQ¸…++@°rh‘íLVÀú~j¼t“ À;ßO�—nê¿F¶óýÔÔvÀú~j¼t“ À;ßO�—nê¿X9´È†GÀìQ¸…++@°rh‘íLVÀÁÊ¡E¶ó@j¼t“â¿F¶óýÔÔvÀV-²�×?¬Zd;ßï?Ñ"Ûù~J6À…ëQ¸^ @X9´Èv6YÀÅ °rh‘À+‡Ùη?Év¾Ÿ!xÀÅ °rh‘À+‡Ùη?Ñ"Ûù~J6À…ëQ¸^ @X9´Èv6YÀV-²�׿¬Zd;ßï¿Év¾Ÿ!xÀ-²�ï§Æ@-²�ï§ÆÓ?B`åÐ"[JÀbX9´È*@žï§ÆKOXÀáz®Gáþ¿;ßO�—nî?�•C‹lëxÀáz®Gáþ¿;ßO�—nî?B`åÐ"[JÀbX9´È*@žï§ÆKOXÀ-²�ï§ÆÀ-²�ï§ÆÓ¿�•C‹lëxÀ1¬Zdÿ¿åÐ"Ûù~ê?ÙÎ÷Sãe8ÀÓMbX9@¬Zd;wYÀþÔxé&1ÀÁÊ¡E¶óá¿ÙÎ÷S{xÀþÔxé&1ÀÁÊ¡E¶óá¿ÙÎ÷Sãe8ÀÓMbX9@¬Zd;wYÀ1¬Zdÿ?åÐ"Ûù~ê¿ÙÎ÷S{xÀ¸…ëQ8@j¼t“è?d;ßO�÷;@²�ï§Æ ,@áz®GyVÀžï§ÆK·Àu“Vå?Zd;ßO™vÀžï§ÆK·Àu“Vå?d;ßO�÷;@²�ï§Æ ,@áz®GyVÀ¸…ëQ8Àj¼t“è¿Zd;ßO™vÀR¸…ëQ @žï§ÆK7é?sh‘í|:@¤p= ×£(@oƒÀÊñSÀ…ëQ¸ÀƒÀÊ¡E¶ã?+‡ÙÎmtÀ…ëQ¸ÀƒÀÊ¡E¶ã?sh‘í|:@¤p= ×£(@oƒÀÊñSÀR¸…ëQ Àžï§ÆK7é¿+‡ÙÎmtÀ–C‹lçû @¨ÆK7‰Aè?¶óýÔx 8À¾Ÿ/Ý$&@T㥛Ä�RÀ�—nƒ@ÀL7‰A`åä?�Âõ(\qrÀ�—nƒ@ÀL7‰A`åä?¶óýÔx 8À¾Ÿ/Ý$&@T㥛Ä�RÀ–C‹lçû À¨ÆK7‰Aè¿�Âõ(\qrÀÅ °rh‘ÀƒÀÊ¡Eæ?¬Zd›:@ÁÊ¡E¶³&@P�—n“UÀÏ÷S㥛À`åÐ"Ûùæ¿}?5^ºÓuÀÏ÷S㥛À`åÐ"Ûù濬Zd›:@ÁÊ¡E¶³&@P�—n“UÀÅ °rh‘@ƒÀÊ¡Eæ¿}?5^ºÓuÀRØZd;ßO @ú~j¼t“ˆ?œÄ °r(F@u“VŽ&@bX9´(NÀ¬Zd;¯¿ð?-²�ï‹pÀ¬Zd;¯¿ð?œÄ °r(F@u“VŽ&@bX9´(NÀZd;ßO Àú~j¼t“ˆ¿-²�ï‹pÀ^ºI +û¿V-²í?Ý$�•ã=@¢E¶óýÔ"@ôýÔxéfPÀ�•C‹ìÀ+‡ÙÎ׿‰A`åÐ>qÀ�•C‹ìÀ+‡ÙÎ׿Ý$�•ã=@¢E¶óýÔ"@ôýÔxéfPÀ^ºI +û?V-²í¿‰A`åÐ>qÀmçû©ñÒ@j¼t“ì?Õxé&1ˆFÀ�Âõ(\O$@-²�ïwXÀƒÀÊ¡EÀd;ßO�—Þ?¤p= שxÀƒÀÊ¡EÀd;ßO�—Þ?Õxé&1ˆFÀ�Âõ(\O$@-²�ïwXÀmçû©ñÒÀj¼t“쿤p= שxÀ…ëQ¸ @‹lçû©ñâ?5^ºI B7@L7‰A`¥"@)\�ÂõøXÀ‘í|?5^À˜nƒÀÊé?×£p= )xÀ‘í|?5^À˜nƒÀÊé?5^ºI B7@L7‰A`¥"@)\�ÂõøXÀ…ëQ¸ À‹lçû©ñâ¿×£p= )xÀ!°rh‘í À\�Âõ(\ë? +‡ù>@%�•CË*@˜nƒÀÒUÀü©ñÒMbÀú~j¼t“࿇ÙÎ÷GvÀü©ñÒMbÀú~j¼t“à¿ +‡ù>@%�•CË*@˜nƒÀÒUÀ!°rh‘í @\�Âõ(\뿇ÙÎ÷GvÀTã¥›Ä À�—nƒÀæ?¼t“61@B`åÐ"Û&@ÇK7‰AUÀ{®GázÀåÐ"Ûù~濬ZdÓtÀ{®GázÀåÐ"Ûù~濼t“61@B`åÐ"Û&@ÇK7‰AUÀTã¥›Ä @�—nƒÀ濬ZdÓtÀôýÔxé&÷?‹lçû©ñî?¨ÆK7‰BÀ'1¬š'@¨ÆK7‰±NÀé&1¬ÀþÔxé&1Ð?ú~j¼t�pÀé&1¬ÀþÔxé&1Ð?¨ÆK7‰BÀ'1¬š'@¨ÆK7‰±NÀôýÔxé&÷¿‹lçû©ñî¿ú~j¼t�pÀœÄ °rhÀßO�—nÓ?çû©ñÒÍ-@)\�Âõè#@bX9´�RÀö(\�Âõö¿�Âõ(\�î¿‘í|?5hrÀö(\�Âõö¿�Âõ(\�î¿çû©ñÒÍ-@)\�Âõè#@bX9´�RÀœÄ °rh@ßO�—nÓ¿‘í|?5hrÀ;ßO�—nÀ�Âõ(\�â?œÄ °r(:ÀV-²�/,@D‹lçû‰WÀP�—nƒÀ®Gázê¿�Âõ(\ávÀP�—nƒÀ®Gázê¿œÄ °r(:ÀV-²�/,@D‹lçû‰WÀ;ßO�—n@�Âõ(\�â¿�Âõ(\ávÀ‹lçû©ñ@çû©ñÒMæ?Ñ"Ûù~Š4@Tã¥›Ä '@Ñ"Ûù~QÀ´Èv¾ŸÀ‹lçû©ñæ?L7‰A`-qÀ´Èv¾ŸÀ‹lçû©ñæ?Ñ"Ûù~Š4@Tã¥›Ä '@Ñ"Ûù~QÀ‹lçû©ñÀçû©ñÒMæ¿L7‰A`-qÀžï§ÆK7@×£p= ×Û?åÐ"Ûù.MÀ¾Ÿ/Ýä$@…ëQ¸FPÀÏ÷S㥛ÀÍÌÌÌÌÌì?5^ºI rÀÏ÷S㥛ÀÍÌÌÌÌÌì?åÐ"Ûù.MÀ¾Ÿ/Ýä$@…ëQ¸FPÀžï§ÆK7À×£p= ×Û¿5^ºI rÀ7‰A`åÐ À!°rh‘íä?é&1¬ìNÀyé&1¬#@V-²�÷QÀ!°rh‘íÀþÔxé&1迬Zd»sÀ!°rh‘íÀþÔxé&1è¿é&1¬ìNÀyé&1¬#@V-²�÷QÀ7‰A`åÐ @!°rh‘í俬Zd»sÀw¾Ÿ/Ý@¬Zd;Ï?�•C‹lgBÀ¼t“$@¶óýÔx‰WÀö(\�Âõò¿ ×£p= ï?-²�ï§\wÀö(\�Âõò¿ ×£p= ï?�•C‹lgBÀ¼t“$@¶óýÔx‰WÀw¾Ÿ/ÝÀ¬Zd;Ï¿-²�ï§\wÀffffff@òÒMbXá?¶óýÔxD@Év¾Ÿ/&@ßO�—nSÀ¦›Ä °rÀáz®Gáê?çû©ñÒUtÀ¦›Ä °rÀáz®Gáê?¶óýÔxD@Év¾Ÿ/&@ßO�—nSÀffffffÀòÒMbXá¿çû©ñÒUtÀ5^ºI @ßO�—në?…ëQ¸^A@NbX94@Ház®çRÀÑ"Ûù~j Àu“Vá?`åÐ"ÛÑsÀÑ"Ûù~j Àu“Vá?…ëQ¸^A@NbX94@Ház®çRÀ5^ºI ÀßO�—në¿`åÐ"ÛÑsÀð§ÆK7‰À…ëQ¸…ç?sh‘í|OJÀ!°rh‘m@¸…ëQTÀ¬Zd;Àî|?5^ºå¿h‘í|?auÀ¬Zd;Àî|?5^ºå¿sh‘í|OJÀ!°rh‘m@¸…ëQTÀð§ÆK7‰@…ëQ¸…ç¿h‘í|?auÀ= ×£p=â?+‡ÙÎï?Ûù~j¼$B@“Ví&@#Ûù~j UÀ-²�ï§FÀ1¬Zd»?oƒÀÊïuÀ-²�ï§FÀ1¬Zd»?Ûù~j¼$B@“Ví&@#Ûù~j UÀ= ×£p=â¿+‡ÙÎï¿oƒÀÊïuÀ¸…ëQ8ÀF¶óýÔxÙ?q= ×£ÀI@V-r&@Õxé&1èMÀ®Gáz®ÀòÒMbXí¿oƒÀÊÍpÀ®Gáz®ÀòÒMbXí¿q= ×£ÀI@V-r&@Õxé&1èMÀ¸…ëQ8@F¶óýÔxÙ¿oƒÀÊÍpÀáz®GáÀ®Gázî?T㥛ĠIÀffffff*@ÙÎ÷SãMPÀôýÔxé&ÀÙÎ÷SãÕ¿J +‡èqÀôýÔxé&ÀÙÎ÷SãÕ¿T㥛ĠIÀffffff*@ÙÎ÷SãMPÀáz®Gá@®Gázî¿J +‡èqÀ²�ï§ÆË@‘í|?5^º?X9´ÈvnGÀßO�—nR%@é&1¬tWÀ¦›Ä °rà¿×£p= ×ï?ö(\�¹wÀ¦›Ä °rà¿×£p= ×ï?X9´ÈvnGÀßO�—nR%@é&1¬tWÀ²�ï§ÆËÀ‘í|?5^º¿ö(\�¹wÀ7‰A`åP@-²�ï§Æ?ôýÔxéf7@yé&1,"@w¾Ÿ/½WÀË¡E¶óýè¿°rh‘í|ï?žï§ÆKOwÀË¡E¶óýè¿°rh‘í|ï?ôýÔxéf7@yé&1,"@w¾Ÿ/½WÀ7‰A`åPÀ-²�ï§Æ¿žï§ÆKOwÀ´Èv¾Ÿ@ƒÀÊ¡Eê?j¼t“4EÀR¸…ë#@“VeTÀZd;ßOÀƒÀÊ¡Eâ?V-²�5uÀZd;ßOÀƒÀÊ¡Eâ?j¼t“4EÀR¸…ë#@“VeTÀ´Èv¾ŸÀƒÀÊ¡Eê¿V-²�5uÀé&1¬@D‹lçû©å?…ëQ¸¾7@mçû©ñÒ%@ìQ¸…3QÀV-²� ÀZd;ßO�ç?NbX9žqÀV-²� ÀZd;ßO�ç?…ëQ¸¾7@mçû©ñÒ%@ìQ¸…3QÀé&1¬ÀD‹lçû©å¿NbX9žqÀªñÒMb�@P�—nƒÀ?Év¾Ÿ¯6@NbX9t&@!°rh‘-UÀ‘í|?5^æ¿X9´Èv¾ï?'1¬JuÀ‘í|?5^æ¿X9´Èv¾ï?Év¾Ÿ¯6@NbX9t&@!°rh‘-UÀªñÒMb�ÀP�—nƒÀ¿'1¬JuÀ¸…ëQ¸@mçû©ñÒå?^ºI ‹;@q= ×£p!@ö(\�Â…RÀ /Ý$À�•C‹lç?ü©ñÒMsÀ /Ý$À�•C‹lç?^ºI ‹;@q= ×£p!@ö(\�Â…RÀ¸…ëQ¸Àmçû©ñÒå¿ü©ñÒMsÀ…ëQ¸@¼t“Vâ?;ßO�—ÞIÀ^ºI +*@{®GáŠQÀ+‡ÙÎ÷ À= ×£p=ê?L7‰A`ÉrÀ+‡ÙÎ÷ À= ×£p=ê?;ßO�—ÞIÀ^ºI +*@{®GáŠQÀ…ëQ¸À¼t“Vâ¿L7‰A`ÉrÀË¡E¶ó}@¢E¶óýÔÈ?òÒMb(O@ƒÀÊ¡Ev#@òÒMbHLÀÉv¾Ÿ/í¿1¬Zdï?\�Âõ(tpÀÉv¾Ÿ/í¿1¬Zdï?òÒMb(O@ƒÀÊ¡Ev#@òÒMbHLÀË¡E¶ó}À¢E¶óýÔÈ¿\�Âõ(tpÀ-²�ï§Æ @J +‡©?mçû©ñNÀÅ °rh@Zd;ßOíUÀw¾Ÿ/ÝÄ¿+‡ÙÎ÷ï?‰A`åÐ*wÀw¾Ÿ/ÝÄ¿+‡ÙÎ÷ï?mçû©ñNÀÅ °rh@Zd;ßOíUÀ-²�ï§Æ ÀJ +‡©¿‰A`åÐ*wÀË¡E¶ó}@ÍÌÌÌÌÌà?Õxé&1H:Àj¼t“Ä$@fffff†OÀ\�Âõ(\À¬Zd;ë?oƒÀÊ[pÀ\�Âõ(\À¬Zd;ë?Õxé&1H:Àj¼t“Ä$@fffff†OÀË¡E¶ó}ÀÍÌÌÌÌÌà¿oƒÀÊ[pÀ+‡ÙÎã?Ûù~j¼tï?1¬Zd8@�—nƒ@@øS㥛ÜQÀ%�•C‹ À�•C‹lÇ?Ë¡E¶ó1rÀ%�•C‹ À�•C‹lÇ?1¬Zd8@�—nƒ@@øS㥛ÜQÀ+‡ÙÎã¿Ûù~j¼tï¿Ë¡E¶ó1rÀ+‡ÙNÀL7‰A`åÐ?‡ÙÎ÷35ÀÛù~j¼t!@ƒÀÊ¡eQÀ×£p= ×ñ¿áz®Gáî¿^ºI GqÀ×£p= ×ñ¿áz®GáÙÎ÷35ÀÛù~j¼t!@ƒÀÊ¡eQÀ+‡ÙN@L7‰A`åп^ºI GqÀºI +‡À ×£p= Ç?'1¬zHÀ�•C‹lg"@‘í|?5ÖSÀî|?5^ºé¿°rh‘í|ï¿`åÐ"ÛuÀî|?5^ºé¿°rh‘í|ï¿'1¬zHÀ�•C‹lg"@‘í|?5ÖSÀºI +‡@ ×£p= Ç¿`åÐ"ÛuÀú~j¼t“@åÐ"Ûù~Ò?Õxé&1h1@ö(\�Âõ"@žï§ÆKßSÀ¬Zd;õ¿9´Èv¾Ÿî?Ï÷Sã¥çsÀ¬Zd;õ¿9´Èv¾Ÿî?Õxé&1h1@ö(\�Âõ"@žï§ÆKßSÀú~j¼t“ÀåÐ"Ûù~Ò¿Ï÷Sã¥çsÀ˜nƒÀÊ@oƒÀÊ¡é?®Gáz¾NÀÑ"Ûù~ê!@Év¾ŸïVÀbX9´È À^ºI +ã?®GázxÀbX9´È À^ºI +ã?®Gáz¾NÀÑ"Ûù~ê!@Év¾ŸïVÀ˜nƒÀÊÀoƒÀʡ鿮GázxÀ7‰A`åPÀ“V-Ú?T㥛Ä@<@š™™™™Ù'@5^ºI ÚQÀ333333Àžï§ÆK7í¿brÀ333333Àžï§ÆK7í¿T㥛Ä@<@š™™™™Ù'@5^ºI ÚQÀ7‰A`åP@“V-Ú¿brÀyé&1,@é&1¬â?Ñ"Ûù~ŠC@Ãõ(\�Â&@çû©ñÒ�WÀ‹lçû©ñÀffffffê?¢E¶óýìwÀ‹lçû©ñÀffffffê?Ñ"Ûù~ŠC@Ãõ(\�Â&@çû©ñÒ�WÀyé&1,Àé&1¬â¿¢E¶óýìwÀªñÒMb @ö(\�Âõà?R¸…ëCÀ¶óýÔx© @�•C‹\OÀ^ºI +À‰A`åÐ"ë?…ëQ¸çpÀ^ºI +À‰A`åÐ"ë?R¸…ëCÀ¶óýÔx© @�•C‹\OÀªñÒMb Àö(\�Âõà¿…ëQ¸çpÀj¼t“@w¾Ÿ/Ýè?+‡ÙÎ8ÀÙÎ÷Sã@}?5^ºaVÀyé&1¬À)\�Âõ(ä?Ûù~j¼ÖuÀyé&1¬À)\�Âõ(ä?+‡ÙÎ8ÀÙÎ÷Sã@}?5^ºaVÀj¼t“Àw¾Ÿ/Ýè¿Ûù~j¼ÖuÀ�Âõ(\Àü©ñÒMb€?Õxé&1h:@ƒÀÊ¡E¶$@�•C‹lÿVÀÛù~j¼t£¿ð¿ ×£p=êvÀÛù~j¼t£¿ð¿Õxé&1h:@ƒÀÊ¡E¶$@�•C‹lÿVÀ�Âõ(\@ü©ñÒMb€¿ ×£p=êvÀÁÊ¡E¶ó @yé&1¬Œ?T㥛Ä`;@Tã¥›Ä @Zd;ßOEQÀ9´Èv¾Ÿª¿ð?�•C‹l×qÀ9´Èv¾Ÿª¿ð?T㥛Ä`;@Tã¥›Ä @Zd;ßOEQÀÁÊ¡E¶ó Àyé&1¬Œ¿�•C‹l×qÀ´Èv¾Ÿš@D‹lçû©±?…ëQ¸uM@�•C‹l*@?5^ºI$UÀ‰A`åÐ"Û¿V-²�ïï?d;ßO�¿vÀ‰A`åÐ"Û¿V-²�ïï?…ëQ¸uM@�•C‹l*@?5^ºI$UÀ´Èv¾ŸšÀD‹lçû©±¿d;ßO�¿vÀd°¼t“VÀ+‡ÙÎ÷³?V-²I@yé&1ì @ÁÊ¡E¶aÀ{®GázÔ¿�•C‹lçᅢÀÊ¡K€À{®GázÔ¿�•C‹lçï¿V-²I@yé&1ì @ÁÊ¡E¶aÀ¼t“V@+‡ÙÎ÷³¿ƒÀÊ¡K€Àð§ÆK7‰ @à?h‘í|?­P@øS㥛!@V-²}^ÀåÐ"Ûù~ÀƒÀÊ¡E¶ë?7‰A`å„~ÀåÐ"Ûù~ÀƒÀÊ¡E¶ë?h‘í|?­P@øS㥛!@V-²}^Àð§ÆK7‰ Àà¿7‰A`å„~À¬Zd;_@Ð?7‰A`å9@)\�Âõ¨$@¤p= ×3\À–C‹lçûó¿`åÐ"Ûùî?}?5^º§zÀ–C‹lçûó¿`åÐ"Ûùî?7‰A`å9@)\�Âõ¨$@¤p= ×3\À¬Zd;_Àп}?5^º§zÀ1¬Zd@¨ÆK7‰Aè?òÒMb(F@¨ÆK7‰�"@33333«^À)\�Âõ( ÀL7‰A`åä?ßO�—n˜}À)\�Âõ( ÀL7‰A`åä?òÒMb(F@¨ÆK7‰�"@33333«^À1¬ZdÀ¨ÆK7‰Aè¿ßO�—n˜}À�—nƒÀö¿¼t“Vî?Zd;ß/2À-²�ïg"@ú~j¼tƒ]À1¬ZäÀÑ"Ûù~jÔ¿–C‹lç­{À1¬ZäÀÑ"Ûù~jÔ¿Zd;ß/2À-²�ïg"@ú~j¼tƒ]À�—nƒÀö?¼t“Vî¿–C‹lç­{ÀbX9´È À¶óýÔxéæ?…ëQ¸µGÀ²�ï§Æ‹$@Ï÷Sã¥+`À¦›Ä °r À¼t“Væ¿Ï÷Sã¥)À¦›Ä °r À¼t“Væ¿…ëQ¸µGÀ²�ï§Æ‹$@Ï÷Sã¥+`ÀbX9´È @¶óýÔxéæ¿Ï÷Sã¥)À°rh‘íü@¦›Ä °rØ?}?5^º©?@ÙÎ÷Sã¥*@þÔxé&bÀË¡E¶óýÀÅ °rh‘í?ã¥›Ä Ã€ÀË¡E¶óýÀÅ °rh‘í?}?5^º©?@ÙÎ÷Sã¥*@þÔxé&bÀ°rh‘íüÀ¦›Ä °rØ¿ã¥›Ä Ã€ÀÝ$�•Cû¿¾Ÿ/Ý$î?®GáznBÀ�•C‹¬%@%�•CÛ^À?5^ºI ÀÅ °rh‘Õ¿F¶óýÔ¤}À?5^ºI ÀÅ °rh‘Õ¿®GáznBÀ�•C‹¬%@%�•CÛ^ÀÝ$�•Cû?¾Ÿ/Ý$î¿F¶óýÔ¤}À-²�ï§Æ @‰A`åÐ"Û?!°rh‘]NÀX9´Èv¾@7‰A`åà_ÀßO�—nù¿Ë¡E¶óýì?P�—nÓÀßO�—nù¿Ë¡E¶óýì?!°rh‘]NÀX9´Èv¾@7‰A`åà_À-²�ï§Æ À‰A`åÐ"Û¿P�—nÓÀ¬Zd;Àj¼t“Ô?%�•C[CÀq= ×£p @¢E¶óýtYÀô¿‘í|?5^î¿žï§ÆKUyÀô¿‘í|?5^î¿%�•C[CÀq= ×£p @¢E¶óýtYÀ¬Zd;@j¼t“Ô¿žï§ÆKUyÀøS㥛ÄÀÑ"Ûù~jÌ?ÍÌÌÌÌüA@“V­@ÁÊ¡E¶c`À!°rh‘íì¿333333ï¿V-Ä~À!°rh‘íì¿333333ï¿ÍÌÌÌÌüA@“V­@ÁÊ¡E¶c`ÀøS㥛Ä@Ñ"Ûù~jÌ¿V-Ä~À¬Zd;À¦›Ä °rè?‰A`åТA@�•C‹ì)@®GázÆ`À{®GázÀ¤p= ×£ä¿ßO�—nZÀ{®GázÀ¤p= ף俉A`åТA@�•C‹ì)@®GázÆ`À¬Zd;@¦›Ä °rè¿ßO�—nZÀœÄ °rh@�•C‹lã?žï§ÆK·6À¶óýÔxi$@\�Âõ(D_À5^ºI ÀœÄ °rhé?…ëQ¸p}À5^ºI ÀœÄ °rhé?žï§ÆK·6À¶óýÔxi$@\�Âõ(D_ÀœÄ °rhÀ�•C‹lã¿…ëQ¸p}ÀÝ$�•C÷¿ã¥›Ä °î?žï§ÆKÇKÀœÄ °r(%@)\�Âõ�XÀÙÎ÷Sã¥À“V-Ò¿w¾Ÿ/AyÀÙÎ÷Sã¥À“V-Ò¿žï§ÆKÇKÀœÄ °r(%@)\�Âõ�XÀÝ$�•C÷?ã¥›Ä °î¿w¾Ÿ/AyÀþÔxé&1À¬Zd;ã?V-²�8À¶óýÔxé$@ +‡©]ÀF¶óýÔxÀÅ °rh‘é¿= ×£pE|ÀF¶óýÔxÀÅ °rh‘é¿V-²�8À¶óýÔxé$@ +‡©]ÀþÔxé&1@¬Zd;ã¿= ×£pE|À +‡Y@X9´Èv¾Ï?q= ×£Ð3ÀôýÔxéf%@oƒÀÊQ[ÀB`åÐ"Ûó¿5^ºI ï?ð§ÆK7ñyÀB`åÐ"Ûó¿5^ºI ï?q= ×£Ð3ÀôýÔxéf%@oƒÀÊQ[À +‡YÀX9´Èv¾Ï¿ð§ÆK7ñyÀV-²�Ï¿+‡ÙÎ÷ï?sh‘í|ŸAÀôýÔxé&$@¤p= ×Ç`ÀË¡E¶ó}Àé&1¬ª¿¤p= ןÀË¡E¶ó}Àé&1¬ª¿sh‘í|ŸAÀôýÔxé&$@¤p= ×Ç`ÀV-²�Ï?+‡ÙÎ÷¦p= ןÀªñÒMbô¿5^ºI ï?{®Gáš4ÀJ +‡Ö$@#Ûù~jHbÀ?5^ºIŒÀ¬Zd;ßÏ¿¤p= ×Ì€À?5^ºIŒÀ¬Zd;ßÏ¿{®Gáš4ÀJ +‡Ö$@#Ûù~jHbÀªñÒMbô?5^ºI ¦p= ×Ì€Àö(\�Âu@Év¾Ÿ/Í?mçû©ñ¢N@¤p= ×£$@bX9´laÀ= ×£p=ò¿^ºI +ï?Ház®ÿ€À= ×£p=ò¿^ºI +ï?mçû©ñ¢N@¤p= ×£$@bX9´laÀö(\�ÂuÀÉv¾Ÿ/Í¿Ház®ÿ€À /Ý$À¤p= ×£°?�•C‹l·M@˜nƒÀÊ&@d;ßO�Ÿ_ÀbX9´ÈÖ¿V-²�ïï¿áz®GÀbX9´ÈÖ¿V-²�ïï¿�•C‹l·M@˜nƒÀÊ&@d;ßO�Ÿ_À /Ý$@¤p= ×£°¿áz®GÀ\�Âõ(\ @j¼t“Ö?ÁÊ¡E¶Ó0ÀÃõ(\�B@�•C‹@`ÀÏ÷S㥛ò¿?5^ºI î?…ëQ¸~ÀÏ÷S㥛ò¿?5^ºI î?ÁÊ¡E¶Ó0ÀÃõ(\�B@�•C‹@`À\�Âõ(\ Àj¼t“Ö¿…ëQ¸~ÀßO�—nÓ?V-²�ïï?ßO�—n1Àã¥›Ä ð!@V-²�Ë`À¢E¶óýTÀD‹lçû©±?yé&1ò~À¢E¶óýTÀD‹lçû©±?ßO�—n1Àã¥›Ä ð!@V-²�Ë`ÀßO�—nÓ¿V-²�ïï¿yé&1ò~ÀÃõ(\� @q= ×£pé?ßO�—n23À�•C‹lg)@ªñÒMb,aÀ'1¬ÚÀ�•C‹lã?Ãõ(\�¢À'1¬ÚÀ�•C‹lã?ßO�—n23À�•C‹lg)@ªñÒMb,aÀÃõ(\� Àq= ×£pé¿Ãõ(\�¢À¬Zd;ß÷?ºI +‡î?ü©ñÒM3ÀòÒMb˜$@çû©ñÒaÀÕxé&1À‰A`åÐ"Ó?u“VZÀÕxé&1À‰A`åÐ"Ó?ü©ñÒM3ÀòÒMb˜$@çû©ñÒaÀ¬Zd;ß÷¿ºI +‡î¿u“VZÀHáz®G@w¾Ÿ/Ýä?q= ×£0@@w¾Ÿ/Ý@´Èv¾Ÿ:^À ×£p= À¨ÆK7‰Aè?ƒÀÊ¡E¶|À ×£p= À¨ÆK7‰Aè?q= ×£0@@w¾Ÿ/Ý@´Èv¾Ÿ:^ÀHáz®GÀw¾Ÿ/Ý促ÀÊ¡E¶|ÀV-2@;ßO�—nÚ?¨ÆK7‰8@ÇK7‰A $@ßO�—n aÀ°rh‘í|ÀôýÔxé&í?î|?5^XÀ°rh‘í|ÀôýÔxé&í?¨ÆK7‰8@ÇK7‰A $@ßO�—n aÀV-2À;ßO�—nÚ¿î|?5^XÀ9´Èv¾ÀÑ"Ûù~jÜ?7‰A`åpEÀ–C‹lç»#@;ßO�—V]À+‡ÙÎ÷Àyé&1¬ì¿Ï÷Sã¥ï|À+‡ÙÎ÷Àyé&1¬ì¿7‰A`åpEÀ–C‹lç»#@;ßO�—V]À9´Èv¾@Ñ"Ûù~jÜ¿Ï÷Sã¥ï|À¢E¶óýTÀ´Èv¾Ÿ×?ÇK7‰A A@-²�ï§)@š™™™™A]ÀƒÀÊ¡EÀB`åÐ"Ûí¿yé&1 |ÀƒÀÊ¡EÀB`åÐ"Ûí¿ÇK7‰A A@-²�ï§)@š™™™™A]À¢E¶óýT@´Èv¾Ÿ׿yé&1 |Àé&1¬ÀR¸…ëQÐ?-²�ï§vL@-²�ï§F@×£p= /`À-²�ï§Æï¿‹lçû©ñî¿X9´È†À-²�ï§Æï¿‹lçû©ñî¿-²�ï§vL@-²�ï§F@×£p= /`Àé&1¬@R¸…ëQпX9´È†À®Gáz®À�•C‹lç?øS㥛Ä:@¸…ëQ8*@T㥛Ä�`ÀœÄ °rèÀmçû©ñÒå¿ßO�—n°~ÀœÄ °rèÀmçû©ñÒå¿øS㥛Ä:@¸…ëQ8*@T㥛Ä�`À®Gáz®@�•C‹lç¿ßO�—n°~À'1¬Z @…ëQ¸Ý?ú~j¼tóE@Év¾Ÿ¯@Év¾ŸïYÀV-²�ïù¿{®Gázì?é&1¬®yÀV-²�ïù¿{®Gázì?ú~j¼tóE@Év¾Ÿ¯@Év¾ŸïYÀ'1¬Z À…ëQ¸Ý¿é&1¬®yÀD‹lçû)À�—nƒÀÒ?�—nƒðH@V-²$@5^ºI :_ÀÛù~j¼t÷¿d;ßO�—î¿+‡ÙÎ7~ÀÛù~j¼t÷¿d;ßO�—î¿�—nƒðH@V-²$@5^ºI :_ÀD‹lçû)@�—nƒÀÒ¿+‡ÙÎ7~À5^ºI @²�ï§ÆK·?R¸…ë¡DÀš™™™™™ @²�ï§Æ_`À°rh‘í|׿¬Zd;ßï?°rh‘í2À°rh‘í|׿¬Zd;ßï?R¸…ë¡DÀš™™™™™ @²�ï§Æ_`À5^ºI À²�ï§ÆK·¿°rh‘í2ÀÇK7‰AàÀ°rh‘í|¿?T㥛Ä@EÀ‘í|?5ž'@%�•CÃ`ÀoƒÀÊ¡å¿X9´Èv¾ï¿¼t“€ÀoƒÀÊ¡å¿X9´Èv¾ï¿T㥛Ä@EÀ‘í|?5ž'@%�•CÃ`ÀÇK7‰Aà@°rh‘í|¿¿¼t“€ÀÅ °rh‘ÀR¸…ëQÈ?-²�ï—P@B`åÐ"[%@F¶óýÔ8`À¼t“Vî¿�•C‹lï¿+‡Ù€À¼t“Vî¿�•C‹lï¿-²�ï—P@B`åÐ"[%@F¶óýÔ8`ÀÅ °rh‘@R¸…ëQÈ¿+‡Ù€ÀÅ °rh‘À�•C‹lß?î|?5^êAÀÅ °rhÑ$@åÐ"Ûù^ZÀbX9´ÈÀ¬Zd;ß뿤p= ×zÀbX9´ÈÀ¬Zd;ßë¿î|?5^êAÀÅ °rhÑ$@åÐ"Ûù^ZÀÅ °rh‘@�•C‹lß¿¤p= ×zÀî|?5^ºÀìQ¸…ëá?ü©ñÒMBF@‡ÙÎ÷S@-²�ï?`ÀÕxé&1ü¿åÐ"Ûù~ê¿;ßO�—þ~ÀÕxé&1ü¿åÐ"Ûù~ê¿ü©ñÒMBF@‡ÙÎ÷S@-²�ï?`Àî|?5^º@ìQ¸…ëá¿;ßO�—þ~À\�Âõ(Ü@yé&1¬Ü?ìQ¸… <@òÒMb˜,@/Ý$�õ_À�•C‹lçÀÏ÷S㥛ì?�Âõ(\Û}À�•C‹lçÀÏ÷S㥛ì?ìQ¸… <@òÒMb˜,@/Ý$�õ_À\�Âõ(ÜÀyé&1¬Ü¿�Âõ(\Û}ÀÝ$�•C@ã¥›Ä °ê?¶óýÔx©3ÀX9´Èö"@ +‡ÅaÀoƒÀÊ¡ÀD‹lçû©á?°rh‘íW€ÀoƒÀÊ¡ÀD‹lçû©á?¶óýÔx©3ÀX9´Èö"@ +‡ÅaÀÝ$�•CÀã¥›Ä °ê¿°rh‘íW€À9´Èv¾Ÿ@yé&1¬à?'1¬z4ÀTã¥›Ä #@T㥛Ä|bÀ²�ï§ÆKÀ‡ÙÎ÷Së?�—nƒð€À²�ï§ÆKÀ‡ÙÎ÷Së?'1¬z4ÀTã¥›Ä #@T㥛Ä|bÀ9´Èv¾ŸÀyé&1¬à¿�—nƒð€À¶óýÔxiÀºI +‡â?žï§ÆK‡HÀZd;ßO &@åÐ"Ûùf`À#Ûù~j¼À®Gázê¿+‡ÙöÀ#Ûù~j¼À®Gázê¿žï§ÆK‡HÀZd;ßO &@åÐ"Ûùf`À¶óýÔxi@ºI +‡â¿+‡ÙöÀ¦›Ä °rÀþÔxé&1è?/Ý$�C@¨ÆK7‰�"@ /Ý$[Àé&1¬ À!°rh‘íä¿V-hzÀé&1¬ À!°rh‘íä¿/Ý$�C@¨ÆK7‰�"@ /Ý$[À¦›Ä °r@þÔxé&1è¿V-hzÀ¢E¶óýÔ@Ë¡E¶óýè?sh‘í|Ÿ:À333333 @NbX9È`Àj¼t“ Àä?ú~j¼tGÀj¼t“ Àä?sh‘í|Ÿ:À333333 @NbX9È`À¢E¶óýÔÀË¡E¶óýè¿ú~j¼tGÀî|?5^ºÀyé&1¬Ô?mçû©ñBJÀö(\�µ'@ +‡[ÀD‹lçû©ý¿ƒÀÊ¡Eî¿“V_{ÀD‹lçû©ý¿ƒÀÊ¡Eî¿mçû©ñBJÀö(\�µ'@ +‡[Àî|?5^º@yé&1¬Ô¿“V_{À×£p= W@Å °rh‘Ý?Tã¥›Ä JÀP�—nƒ&@d;ßO��[À…ëQ¸Àü©ñÒMbì?�•C‹lÁ{À…ëQ¸Àü©ñÒMbì?Tã¥›Ä JÀP�—nƒ&@d;ßO��[À×£p= WÀÅ °rh‘Ý¿�•C‹lÁ{À‘í|?5^@B`åÐ"Ûå?R¸…ë¡IÀq= ×£p@òÒMbPZÀ)\�Âõ(À1¬Zdç?\�Âõ(ºzÀ)\�Âõ(À1¬Zdç?R¸…ë¡IÀq= ×£p@òÒMbPZÀ‘í|?5^ÀB`åÐ"Ûå¿\�Âõ(ºzÀV-²�ÿ?ÙÎ÷Sãí?u“Vî>@×£p= ×&@é&1¬ ZÀ)\�Âõ¨À +‡ÙÖ?ªñÒMbPyÀ)\�Âõ¨À +‡ÙÖ?u“Vî>@×£p= ×&@é&1¬ ZÀV-²�ÿ¿ÙÎ÷Sãí¿ªñÒMbPyÀ}?5^ºI@ÙÎ÷S㥻?œÄ °r¨3À…ëQ¸ž@NbX9„aÀ;ßO�—nÚ¿+‡ÙÎï?L7‰A`€À;ßO�—nÚ¿+‡ÙÎï?œÄ °r¨3À…ëQ¸ž@NbX9„aÀ}?5^ºIÀÙÎ÷S㥻¿L7‰A`€À¸…ëQ¸þ?é&1¬î?\�Âõ(œ>@°rh‘í|'@7‰A`åÄaÀ¶óýÔxiÀoƒÀÊ¡Õ?Å °rhj€À¶óýÔxiÀoƒÀÊ¡Õ?\�Âõ(œ>@°rh‘í|'@7‰A`åÄaÀ¸…ëQ¸þ¿é&1¬î¿Å °rhj€ÀôýÔxé&õ¿‘í|?5^î?R¸…ëñA@�—nƒ@!@ÙÎ÷SK^ÀV-²ÀÓMbX9Ô¿ÍÌÌÌÌì|ÀV-²ÀÓMbX9Ô¿R¸…ëñA@�—nƒ@!@ÙÎ÷SK^ÀôýÔxé&õ?‘í|?5^î¿ÍÌÌÌÌì|À€sh‘í|? À¦›Ä °rä?…ëQ¸…KÀoƒÀÊ¡#@ö(\�½\Àçû©ñÒMÀÏ÷S㥛è¿þÔxé&û|Àçû©ñÒMÀÏ÷S㥛迅ëQ¸…KÀoƒÀÊ¡#@ö(\�½\Àsh‘í|? @¦›Ä °rä¿þÔxé&û|ÀÙÎ÷Sã¥ÀÇK7‰A`Ý?Ý$�•ÃD@'1¬Z#@�—nƒ`\Àžï§ÆK7ÀÑ"Ûù~jì¿`åÐ"ÛÁ{Àžï§ÆK7ÀÑ"Ûù~jì¿Ý$�•ÃD@'1¬Z#@�—nƒ`\ÀÙÎ÷Sã¥@ÇK7‰A`Ý¿`åÐ"ÛÁ{ÀÉv¾Ÿ/Í¿+‡ÙÎ÷ï??5^ºIl9@¦›Ä °ò @?5^ºI4^ÀœÄ °rhÀ9´Èv¾Ÿª¿“VE|ÀœÄ °rhÀ9´Èv¾Ÿª¿?5^ºIl9@¦›Ä °ò @?5^ºI4^ÀÉv¾Ÿ/Í?+‡ÙÎ÷ï¿“VE|ÀNbX9´ø¿�—nƒÀî?oƒÀÊ!J@w¾Ÿ/'@¦›Ä °Ž`Àj¼t“„ÀD‹lçû©Ñ¿ú~j¼t×Àj¼t“„ÀD‹lçû©Ñ¿oƒÀÊ!J@w¾Ÿ/'@¦›Ä °Ž`ÀNbX9´ø?�—nƒÀî¿ú~j¼t×Àú~j¼t“ @;ßO�—n‚?F¶óýÔ¸EÀ+‡ÙÎ@h‘í|?[À¸…ëQ¸ž¿ð?= ×£p{À¸…ëQ¸ž¿ð?F¶óýÔ¸EÀ+‡ÙÎ@h‘í|?[Àú~j¼t“ À;ßO�—n‚¿= ×£p{ÀX9´Èv¾@ì?ð§ÆK7)5À¶óýÔxi+@= ×£pMaÀ1¬ZdÀ`åÐ"ÛùÞ?oƒÀÊóÀ1¬ZdÀ`åÐ"ÛùÞ?ð§ÆK7)5À¶óýÔxi+@= ×£pMaÀX9´Èv¾Àì¿oƒÀÊóÀáz®Gáê?°rh‘í|ï?ƒÀÊ¡EI@¤p= ×c#@ôýÔxé†ZÀ`åÐ"ÛyÀ¶óýÔxéÆ?1¬ZŽzÀ`åÐ"ÛyÀ¶óýÔxéÆ?ƒÀÊ¡EI@¤p= ×c#@ôýÔxé†ZÀáz®Gáê¿°rh‘í|ï¿1¬ZŽzÀ À¸…ëQ¸æ?R¸…ë±4À+‡Ù#@X9´Èvî[À333333 ÀºI +‡æ¿sh‘í|�zÀ333333 ÀºI +‡æ¿R¸…ë±4À+‡Ù#@X9´Èvî[À @¸…ëQ¸æ¿sh‘í|�zÀ%�•C ÀÙÎ÷S㥫?u“VÎ9À9´Èv¾Ÿ!@ÍÌÌÌÌô[ÀÅ °rh‘Í¿+‡ÙÎ÷ï¿1¬ZözÀÅ °rh‘Í¿+‡ÙÎ÷ï¿u“VÎ9À9´Èv¾Ÿ!@ÍÌÌÌÌô[À%�•C @ÙÎ÷S㥫¿1¬ZözÀ¨ÆK7‰Aþ?Ház®Gí? J@¢E¶óýT#@R¸…ë•aÀTã¥›Ä ÀB`åÐ"ÛÙ?#Ûù~jÕ€ÀTã¥›Ä ÀB`åÐ"ÛÙ? J@¢E¶óýT#@R¸…ë•aÀ¨ÆK7‰Aþ¿Ház®Gí¿#Ûù~jÕ€À´Èv¾Ÿ@%�•C‹Ô?ƒÀÊ¡EVF@ú~j¼tÓ$@ÍÌÌÌÌì]À¬Zd;ßù¿çû©ñÒMî?)\�Âõ}À¬Zd;ßù¿çû©ñÒMî?ƒÀÊ¡EVF@ú~j¼tÓ$@ÍÌÌÌÌì]À´Èv¾ŸÀ%�•C‹Ô¿)\�Âõ}Àžï§ÆK7@ßO�—në?ö(\�ÂJÀJ +‡–@u“Vn\À�—nƒÀ Àu“Vá? +‡•|À�—nƒÀ Àu“Vá?ö(\�ÂJÀJ +‡–@u“Vn\Àžï§ÆK7ÀßO�—në¿ +‡•|ÀD‹lçû©Àú~j¼t“¸?yé&1LL@-²�ï§Æ-@�•C‹lï^ÀœÄ °rhå¿×£p= ×ï¿5^ºI V~ÀœÄ °rhå¿×£p= ×ï¿yé&1LL@-²�ï§Æ-@�•C‹lï^ÀD‹lçû©@ú~j¼t“¸¿5^ºI V~À?5^ºI @%�•C‹Ü?‹lçû©1GÀV-²�o!@Zd;ßO\À5^ºI À¤p= ×£ì?…ëQ¸*|À5^ºI À¤p= ×£ì?‹lçû©1GÀV-²�o!@Zd;ßO\À?5^ºI À%�•C‹Ü¿…ëQ¸*|À¦›Ä °r@‡ÙÎ÷SÛ??5^ºIì3À7‰A`å%@Év¾ŸwZÀ�•C‹lÀ!°rh‘íì?ßO�—n0yÀ�•C‹lÀ!°rh‘íì??5^ºIì3À7‰A`å%@Év¾ŸwZÀ¦›Ä °rÀ‡ÙÎ÷SÛ¿ßO�—n0yÀã¥›Ä °Ú?X9´Èv¾ï?/Ý$!EÀj¼t“@j¼t“|YÀoƒÀÊ¡ ÀX9´Èv¾¿?Ë¡E¶ó�yÀoƒÀÊ¡ ÀX9´Èv¾¿?/Ý$!EÀj¼t“@j¼t“|YÀã¥›Ä °Ú¿X9´Èv¾ï¿Ë¡E¶ó�yÀÙÎ÷Sãå?ƒÀÊ¡E¶ï?ö(\�µHÀ¶óýÔx)&@h‘í|?Ù`À/Ý$�ÀL7‰A`åÀ?š™™™™o€À/Ý$�ÀL7‰A`åÀ?ö(\�µHÀ¶óýÔx)&@h‘í|?Ù`ÀÙÎ÷Sã心ÀÊ¡E¶ï¿š™™™™o€À9´Èv¾Ÿ À)\�Âõ(à?–C‹lç+M@–C‹lçû@š™™™™AYÀôýÔxé&ÿ¿V-²�ë¿w¾Ÿ/ÏyÀôýÔxé&ÿ¿V-²�ë¿–C‹lç+M@–C‹lçû@š™™™™AYÀ9´Èv¾Ÿ @)\�Âõ(à¿w¾Ÿ/ÏyÀ×£p= ×ù?òÒMbXí?ÍÌÌÌÌ,AÀåÐ"Ûù~@fffffn]ÀNbX9´ Àð§ÆK7‰Ù?¢|ÀNbX9´ Àð§ÆK7‰Ù?ÍÌÌÌÌ,AÀåÐ"Ûù~@fffffn]À×£p= ×ù¿òÒMbXí¿¢|À!°rh‘m@žï§ÆK7Ù?Ñ"Ûù~ÊI@Zd;ßÏ'@Zd;ßÇ`ÀP�—nƒÀœÄ °rhí?'1¬€ÀP�—nƒÀœÄ °rhí?Ñ"Ûù~ÊI@Zd;ßÏ'@Zd;ßÇ`À!°rh‘mÀžï§ÆK7Ù¿'1¬€À!°rh‘í@J +‡á?òÒMbèFÀÙÎ÷Sã"@7‰A`å°`À%�•C‹À ×£p= ë?/Ý$*€À%�•C‹À ×£p= ë?òÒMbèFÀÙÎ÷Sã"@7‰A`å°`À!°rh‘íÀJ +‡á¿/Ý$*€Àq= ×£pÀ{®GázÄ?ú~j¼ts;@Å °rh@Ãõ(\�>bÀ®Gáz®ß¿/Ý$�•ï¿ÓMbXÉ€À®Gáz®ß¿/Ý$�•ï¿ú~j¼ts;@Å °rh@Ãõ(\�>bÀq= ×£p@{®GázÄ¿ÓMbXÉ€À+‡ÙNÀªñÒMbä?bX9´(:@ÇK7‰A %@¢E¶óý\aÀHáz®G À!°rh‘íè¿w¾Ÿ/ùÀHáz®G À!°rh‘íè¿bX9´(:@ÇK7‰A %@¢E¶óý\aÀ+‡ÙN@ªñÒMbä¿w¾Ÿ/ùÀX9´Èv¾ @ /Ý$Á?NbX9dE@žï§ÆK7@çû©ñÒé`ÀÃõ(\�ÂÝ¿ƒÀÊ¡E¶ï?Ház®éÀÃõ(\�ÂÝ¿ƒÀÊ¡E¶ï?NbX9dE@žï§ÆK7@çû©ñÒé`ÀX9´Èv¾ À /Ý$Á¿Ház®éÀã¥›Ä 0À�Âõ(\�â?V-âH@\�Âõ(Ü+@�—nƒ(ZÀôýÔxé&À®Gázê¿¶óýÔx'zÀôýÔxé&À®Gázê¿V-âH@\�Âõ(Ü+@�—nƒ(ZÀã¥›Ä 0@�Âõ(\�â¿¶óýÔx'zÀ /Ý$@¢E¶óýÔ¸?-²�ï§–E@u“VŽ%@þÔxé&YZÀ^ºI +߿ףp= ×ï?‡ÙÎ÷ýyÀ^ºI +߿ףp= ×ï?-²�ï§–E@u“VŽ%@þÔxé&YZÀ /Ý$À¢E¶óýÔ¸¿‡ÙÎ÷ýyÀP�—nÀ^ºI +Ç?^ºI »@ÀôýÔxé¦@ü©ñÒM*^À…ëQ¸…ç¿°rh‘í|ï¿ÓMbX#}À…ëQ¸…ç¿°rh‘í|ï¿^ºI »@ÀôýÔxé¦@ü©ñÒM*^ÀP�—n@^ºI +Ç¿ÓMbX#}À®GázÀ-²�ï§ê?'1¬ú5@%�•C‹%@ ×£p= [Àü©ñÒMbÀV-²á¿ ×£p=œyÀü©ñÒMbÀV-²á¿'1¬ú5@%�•C‹%@ ×£p= [À®Gáz@-²�ï§ê¿ ×£p=œyÀ¤p= ×£è¿5^ºI ï?áz®GL@mçû©ñR@!°rh‘UaÀsh‘í|?À°rh‘í|Ï¿= ×£p¶€Àsh‘í|?À°rh‘í|Ï¿áz®GL@mçû©ñR@!°rh‘UaÀ¤p= ×£è?5^ºI ï¿= ×£p¶€ÀTã¥›Ä @‡ÙÎ÷SÓ?}?5^º9G@´Èv¾Ÿš@!°rh‘%[À�Âõ(\�î¿åÐ"Ûù~î?-²�ï§äzÀ�Âõ(\�î¿åÐ"Ûù~î?}?5^º9G@´Èv¾Ÿš@!°rh‘%[ÀTã¥›Ä À‡ÙÎ÷SÓ¿-²�ï§äzÀ�•C‹lçù¿mçû©ñÒí?ÁÊ¡E¶#G@ffffff!@®Gáz¬aÀÉv¾Ÿ¯À^ºI +׿Zd;ß²€ÀÉv¾Ÿ¯À^ºI +׿ÁÊ¡E¶#G@ffffff!@®Gáz¬aÀ�•C‹lçù?mçû©ñÒí¿Zd;ß²€Àh‘í|?5Àyé&1¬ä?åÐ"Ûùþ@@bX9´H'@j¼t“ˆ_À‰A`åÐ" ÀÑ"Ûù~jè¿)\�ÂõÖ}À‰A`åÐ" ÀÑ"Ûù~jè¿åÐ"Ûùþ@@bX9´H'@j¼t“ˆ_Àh‘í|?5@yé&1¬ä¿)\�ÂõÖ}À¾Ÿ/Ý$Æ?+‡ÙÎ÷ï?q= ×£ðB@33333³ @‹lçû©‰ZÀ)\�Âõ(Àj¼t“¦?Ï÷Sã¥åyÀ)\�Âõ(Àj¼t“¦?q= ×£ðB@33333³ @‹lçû©‰ZÀ¾Ÿ/Ý$Æ¿+‡ÙÎ÷ï¿Ï÷Sã¥åyÀ'1¬ZÀ;ßO�—nÂ?-²�ï§æF@°rh‘í<%@u“VžZÀƒÀÊ¡E¶ç¿®Gáz®ï¿ªñÒMbdzÀƒÀÊ¡E¶ç¿®Gáz®ï¿-²�ï§æF@°rh‘í<%@u“VžZÀ'1¬Z@;ßO�—n¿ªñÒMbdzÀd;ßO�@¦›Ä °rÈ?NbX943À;ßO�—î%@ƒÀÊ¡Ež^À²�ï§ÆKï¿�•C‹lï?j¼t“²|À²�ï§ÆKï¿�•C‹lï?NbX943À;ßO�—î%@ƒÀÊ¡Ež^Àd;ßO�À¦›Ä °rÈ¿j¼t“²|À×£p= ×@øS㥛Ää?´Èv¾ŸZMÀÅ °rh@q= ×£À\Àu“VÀ'1¬Zè?¾Ÿ/Ý$}Àu“VÀ'1¬Zè?´Èv¾ŸZMÀÅ °rh@q= ×£À\À×£p= ×ÀøS㥛Ä俾Ÿ/Ý$}À°rh‘í| @Ház®Gá?ö(\�ÂÕH@Ház®!@ÙÎ÷Sã%]À¶óýÔxéÀ‹lçû©ñê?®Gáz¸|À¶óýÔxéÀ‹lçû©ñê?ö(\�ÂÕH@Ház®!@ÙÎ÷Sã%]À°rh‘í| ÀHáz®Gá¿®Gáz¸|ÀffffffÀÇK7‰A`Ý?%�•C‹DÀu“VÎ)@Tã¥›ÄØ_Àj¼t“À¦›Ä °rì¿L7‰A`~Àj¼t“À¦›Ä °rì¿%�•C‹DÀu“VÎ)@Tã¥›ÄØ_Àffffff@ÇK7‰A`Ý¿L7‰A`~Àj¼t“@ã¥›Ä °ê?9´Èv¾?=@ã¥›Ä °$@¢E¶óýœ\ÀƒÀÊ¡E¶ÀoƒÀÊ¡á?ö(\�ÂK{ÀƒÀÊ¡E¶ÀoƒÀÊ¡á?9´Èv¾?=@ã¥›Ä °$@¢E¶óýœ\Àj¼t“Àã¥›Ä °ê¿ö(\�ÂK{À¶óýÔxéò?¸…ëQ¸î?u“V@@q= ×£p @/Ý$AbÀ#Ûù~j<ÀìQ¸…ëÑ?Å °rhô€À#Ûù~j<ÀìQ¸…ëÑ?u“V@@q= ×£p @/Ý$AbÀ¶óýÔxéò¿¸…ëQ¸î¿Å °rhô€À;ßO�—n @¶óýÔxéÞ?`åÐ"ÛY<@ìQ¸…+ @²�ï§ÆaÀÓMbX9þ¿Õxé&1ì?Zd;ß«ÀÓMbX9þ¿Õxé&1ì?`åÐ"ÛY<@ìQ¸…+ @²�ï§ÆaÀ;ßO�—n À¶óýÔxéÞ¿Zd;ß«À5^ºI ù¿;ßO�—nî?–C‹lç+Q@ ×£p=Ê$@!°rh‘…]À¤p= ×#À�•C‹lçÓ¿‰A`åÐÞ}À¤p= ×#À�•C‹lçÓ¿–C‹lç+Q@ ×£p=Ê$@!°rh‘…]À5^ºI ù?;ßO�—nA`åÐÞ}ÀƒÀÊ¡E¶@X9´Èv¾ß?Ý$�•ãHÀ¬Zd;ß#@R¸…ë©`À®GázÀ-²�ï§Æë?¤p= ×F€À®GázÀ-²�ï§Æë?Ý$�•ãHÀ¬Zd;ß#@R¸…ë©`ÀƒÀÊ¡E¶ÀX9´Èv¾ß¿¤p= ×F€ÀþÔxé&1ð?1¬Zdï?®GázîO@u“VN%@ƒÀÊ¡]\À¬Zd;ÀJ +‡É?u“V¦|À¬Zd;ÀJ +‡É?®GázîO@u“VN%@ƒÀÊ¡]\ÀþÔxé&1ð¿1¬Zdï¿u“V¦|À¢E¶óýÔÀ¤p= ×£À?Ãõ(\�b4À +‡Y@Zd;ßßZÀ–C‹lçûÙ¿X9´Èv¾ï¿–C‹lç•yÀ–C‹lçûÙ¿X9´Èv¾ï¿Ãõ(\�b4À +‡Y@Zd;ßßZÀ¢E¶óýÔ@¤p= ×£À¿–C‹lç•yÀã¥›Ä °@�—nƒÀÊ?D‹lçûE@ÁÊ¡E¶3 @Å °rh)[ÀƒÀÊ¡E꿲�ï§ÆKï?P�—n³zÀƒÀÊ¡E꿲�ï§ÆKï?D‹lçûE@ÁÊ¡E¶3 @Å °rh)[Àã¥›Ä °À�—nƒÀÊ¿P�—n³zÀ–C‹lçûÀq= ×£pÍ?î|?5^z9@¢E¶óý#@‘í|?5®_À`åÐ"Ûùð¿‰A`åÐ"ï¿ÇK7‰Ax}À`åÐ"Ûùð¿‰A`åÐ"ï¿î|?5^z9@¢E¶óý#@‘í|?5®_À–C‹lçû@q= ×£pÍ¿ÇK7‰Ax}À¬Zd;ÀX9´Èv¾¯?ºI +‡7ÀÙÎ÷Sãå#@ƒÀÊ¡u`ÀßO�—nÓ¿V-²�ï₩~ÀßO�—nÓ¿V-²�ïI +‡7ÀÙÎ÷Sãå#@ƒÀÊ¡u`À¬Zd;@X9´Èv¾¯¿¦~ÀX Å °rh‘ÀTã¥›Ä ì?yé&1Œ@ÀƒÀÊ¡#@\�Âõ(ÌfÀþÔxé&1ÀºI +‡Þ¿øS㥛/…ÀþÔxé&1ÀºI +‡Þ¿yé&1Œ@ÀƒÀÊ¡#@\�Âõ(ÌfÀÅ °rh‘@Tã¥›Ä ì¿øS㥛/…À\�Âõ(Ü@Ï÷S㥛Ä?Ûù~j¼ÄDÀHáz®Ç$@¾Ÿ/Ý8cÀìQ¸…ëé¿/Ý$�•ï?+‡Ùþ�ÀìQ¸…ëé¿/Ý$�•ï?Ûù~j¼ÄDÀHáz®Ç$@¾Ÿ/Ý8cÀ\�Âõ(ÜÀÏ÷S㥛Ŀ+‡Ùþ�À¨ÆK7‰A @ºI +‡†?çû©ñÒ­HÀ¦›Ä °r@ã¥›Ä hdÀ+‡ÙÎ÷£¿ð?P�—nƒÀ+‡ÙÎ÷£¿ð?çû©ñÒ­HÀ¦›Ä °r@ã¥›Ä hdÀ¨ÆK7‰A ÀºI +‡†¿P�—nƒÀ¢E¶óýÔ@333333ç?�Âõ(\oKÀ!°rh‘m@9´Èv¾_eÀö(\�ÂõÀj¼t“æ?+‡ÙÎ|„Àö(\�ÂõÀj¼t“æ?�Âõ(\oKÀ!°rh‘m@9´Èv¾_eÀ¢E¶óýÔÀ333333ç¿+‡ÙÎ|„ÀÅ °rh‘@Zd;ßOÕ?d;ßO�CÀ‘í|?5ž'@ÓMbXÁfÀX9´Èvþ¿“V-î?Év¾Ÿ>…ÀX9´Èvþ¿“V-î?d;ßO�CÀ‘í|?5ž'@ÓMbXÁfÀÅ °rh‘ÀZd;ßOÕ¿Év¾Ÿ>…Àš™™™™ÀË¡E¶óýÔ?-²�ï§Æ6À‹lçû©±"@dÀ-²�ï§Æ÷¿= ×£p=î¿ÇK7‰A5‚À-²�ï§Æ÷¿= ×£p=î¿-²�ï§Æ6À‹lçû©±"@dÀš™™™™@Ë¡E¶óýÔ¿ÇK7‰A5‚ÀÓMbX9Àð§ÆK7‰á?NbX9ôK@‡ÙÎ÷Ó@ã¥›Ä ˆeÀ´Èv¾Ÿý¿bX9´Èê¿Ház®Ê„À´Èv¾Ÿý¿bX9´Èê¿NbX9ôK@‡ÙÎ÷Ó@ã¥›Ä ˆeÀÓMbX9@ð§ÆK7‰á¿Ház®Ê„Àð§ÆK7‰@ƒÀÊ¡E¶Ó?Év¾Ÿ?DÀT㥛Ä`'@F¶óýÔDbÀìQ¸…ëû¿;ßO�—nî?¾Ÿ/ÝC�ÀìQ¸…ëû¿;ßO�—nî?Év¾Ÿ?DÀT㥛Ä`'@F¶óýÔDbÀð§ÆK7‰ÀƒÀÊ¡E¶Ó¿¾Ÿ/ÝC�À¬Zd»À/Ý$�µ?j¼t“XEÀÍÌÌÌÌL!@øS㥛€eÀ+‡ÙÎ׿¬Zd;ßï¿/Ý$�.„À+‡ÙÎ׿¬Zd;ßï¿j¼t“XEÀÍÌÌÌÌL!@øS㥛€eÀ¬Zd»@/Ý$�µ¿/Ý$�.„À€À5^ºI Û?Ház®wL@7‰A`å%@�•C‹„cÀh‘í|?5À /Ý$í¿Ï÷S㥱‚Àh‘í|?5À /Ý$í¿Ház®wL@7‰A`å%@�•C‹„cÀ€@5^ºI Û¿Ï÷S㥱‚ÀD‹lçû©À/Ý$�•ë?ÍÌÌÌÌ FÀð§ÆK7 &@ð§ÆK7ÁfÀÙÎ÷ScÀ¨ÆK7‰Aà¿P�—nr…ÀÙÎ÷ScÀ¨ÆK7‰Aà¿ÍÌÌÌÌ FÀð§ÆK7 &@ð§ÆK7ÁfÀD‹lçû©@/Ý$�•ë¿P�—nr…ÀƒÀÊ¡E¶Àš™™™™™í?%�•Cë9@h‘í|?õ(@Ý$�•WeÀ%�•C‹ÀR¸…ëQØ¿}?5^ºSƒÀ%�•C‹ÀR¸…ëQØ¿%�•Cë9@h‘í|?õ(@Ý$�•WeÀƒÀÊ¡E¶@š™™™™™í¿}?5^ºSƒÀ‘í|?5^À¢E¶óýÔà?V-²J@˜nƒÀ #@j¼t“pcÀ1¬ZdÀ¬Zd;ë¿¢E¶óý‡‚À1¬ZdÀ¬Zd;ë¿V-²J@˜nƒÀ #@j¼t“pcÀ‘í|?5^@¢E¶óýÔà¿¢E¶óý‡‚À`åÐ"Ûùô?‡ÙÎ÷Sï?d;ßO�×=@bX9´H+@ö(\�ÂÍeÀìQ¸…ëÀ‘í|?5^Ê? /Ý$!„ÀìQ¸…ëÀ‘í|?5^Ê?d;ßO�×=@bX9´H+@ö(\�ÂÍeÀ`åÐ"Ûùô¿‡ÙÎ÷Sï¿ /Ý$!„ÀD‹lçû©@ƒÀÊ¡E¶?}?5^ºiDÀ�•C‹lç@øS㥛bÀh‘í|?5Ö¿¬Zd;ßï?Ï÷Sã¥�Àh‘í|?5Ö¿¬Zd;ßï?}?5^ºiDÀ�•C‹lç@øS㥛bÀD‹lçû©ÀƒÀÊ¡E¶¿Ï÷Sã¥�À/Ý$�Õ¿+‡ÙÎï?¼t“¦D@R¸…ëÑ@Ý$�•7eÀ'1¬ZÀ)\�Âõ(¼¿ôýÔxéЃÀ'1¬ZÀ)\�Âõ(¼¿¼t“¦D@R¸…ëÑ@Ý$�•7eÀ/Ý$�Õ?+‡ÙÎï¿ôýÔxéЃÀøS㥛Äð¿‡ÙÎ÷Sï?/Ý$�µ7@L7‰A`%&@¦›Ä °6cÀ= ×£p=À–C‹lçûÉ¿ÁÊ¡E¶�À= ×£p=À–C‹lçûÉ¿/Ý$�µ7@L7‰A`%&@¦›Ä °6cÀøS㥛Äð?‡ÙÎ÷Sï¿ÁÊ¡E¶�ÀZd;ßO�׿�•C‹lçï?X9´ÈöL@u“V$@¬Zd;ÿeÀ‘í|?5^ÀÛù~j¼t³¿¸…ëQ`…À‘í|?5^ÀÛù~j¼t³¿X9´ÈöL@u“V$@¬Zd;ÿeÀZd;ßO�×?�•C‹lç￸…ëQ`…Àé&1¬Ê¿+‡ÙÎ÷ï?yé&1LP@ÙÎ÷Sãe!@P�—nÿaÀÇK7‰AàÀZd;ßO�§¿Ë¡E¶ó…�ÀÇK7‰AàÀZd;ßO�§¿yé&1LP@ÙÎ÷Sãe!@P�—nÿaÀé&1¬Ê?+‡ÙÎ÷ï¿Ë¡E¶ó…�À…ëQ¸@¦›Ä °rä?–C‹lçÛ@@¨ÆK7‰�%@‹lçû©ÙeÀV-²� ÀÏ÷S㥛è?ìQ¸…U„ÀV-²� ÀÏ÷S㥛è?–C‹lçÛ@@¨ÆK7‰�%@‹lçû©ÙeÀ…ëQ¸À¦›Ä °rä¿ìQ¸…U„À…ëQ¸…À-²�ï§ê?\�Âõ(Ü@À¨ÆK7‰Á@ /Ý$þeÀòÒMbX Àî|?5^ºá¿�•C‹d„ÀòÒMbX Àî|?5^ºá¿\�Âõ(Ü@À¨ÆK7‰Á@ /Ý$þeÀ…ëQ¸…@-²�ï§ê¿�•C‹d„ÀÕxé&1ˆ@Å °rh‘á?¦›Ä °ÂA@yé&1l$@R¸…ë!fÀƒÀÊ¡E¶À�—nƒÀê?j¼t“©„ÀƒÀÊ¡E¶À�—nƒÀê?¦›Ä °ÂA@yé&1l$@R¸…ë!fÀÕxé&1ˆÀÅ °rh‘á¿j¼t“©„Àj¼t“@¬Zd;ßë?–C‹lç[:Àu“V$@‡ÙÎ÷÷bÀ¶óýÔxéÀ°rh‘í|ß?�—nƒt�À¶óýÔxéÀ°rh‘í|ß?–C‹lç[:Àu“V$@‡ÙÎ÷÷bÀj¼t“À¬Zd;ßë¿�—nƒt�ÀÉv¾Ÿ/ À!°rh‘íè?´Èv¾ŸC@%�•C‹%@áz®G]dÀX9´Èv>Àj¼t“俘nƒÀÜ‚ÀX9´Èv>Àj¼t“ä¿´Èv¾ŸC@%�•C‹%@áz®G]dÀÉv¾Ÿ/ @!°rh‘í还nƒÀÜ‚À/Ý$�•ó¿oƒÀÊ¡í?P�—n£?@®Gáz.@‘í|?5‚fÀ`åÐ"ÛùÀþÔxé&1Ø¿–C‹lçó„À`åÐ"ÛùÀþÔxé&1Ø¿P�—n£?@®Gáz.@‘í|?5‚fÀ/Ý$�•ó?oƒÀÊ¡í¿–C‹lçó„À�•C‹lç@P�—nƒè?+‡ÙnE@¨ÆK7‰$@F¶óýÔ@bÀã¥›Ä ° Àú~j¼t“ä?Év¾Ÿ<�Àã¥›Ä ° Àú~j¼t“ä?+‡ÙnE@¨ÆK7‰$@F¶óýÔ@bÀ�•C‹lçÀP�—nƒè¿Év¾Ÿ<�ÀTã¥›Ä ÀJ +‡í?j¼t“$AÀsh‘í|ÿ#@‘í|?5ÆeÀÏ÷S㥛À9´Èv¾ŸÚ¿ú~j¼t%„ÀÏ÷S㥛À9´Èv¾ŸÚ¿j¼t“$AÀsh‘í|ÿ#@‘í|?5ÆeÀTã¥›Ä @J +‡í¿ú~j¼t%„ÀÏ÷S㥛À˜nƒÀÊá?ƒÀÊ¡EFJ@)\�Âõh%@`åÐ"Û©bÀžï§ÆK7Àd;ßO�—ê¿;ßO�—Ó�Àžï§ÆK7Àd;ßO�—꿃ÀÊ¡EFJ@)\�Âõh%@`åÐ"Û©bÀÏ÷S㥛@˜nƒÀÊá¿;ßO�—Ó�À}?5^ºI @h‘í|?5â?ü©ñÒMâ?@j¼t“Ä!@¬Zd;·dÀd;ßO�—Àçû©ñÒMê?q= ×£û‚Àd;ßO�—Àçû©ñÒMê?ü©ñÒMâ?@j¼t“Ä!@¬Zd;·dÀ}?5^ºI Àh‘í|?5â¿q= ×£û‚ÀÍÌÌÌÌÌ @ƒÀÊ¡E¶ç?Ñ"Ûù~ŠD@j¼t“˜$@+‡ÙöeÀ%�•C‹ À/Ý$�å?ƒÀÊ¡°„À%�•C‹ À/Ý$�å?Ñ"Ûù~ŠD@j¼t“˜$@+‡ÙöeÀÍÌÌÌÌÌ ÀƒÀÊ¡E¶ç¿ƒÀÊ¡°„ÀÛù~j¼tÀ%�•C‹ì?`åÐ"Û)A@/Ý$A&@#Ûù~jÀfÀ¬Zd;Àw¾Ÿ/ÝÜ¿�Âõ(\s…À¬Zd;Àw¾Ÿ/ÝÜ¿`åÐ"Û)A@/Ý$A&@#Ûù~jÀfÀÛù~j¼t@%�•C‹ì¿�Âõ(\s…ÀbX9´ÈÀ7‰A`åÐê?š™™™™ÙKÀ¤p= ×£$@bX9´´dÀÃõ(\�ÂÀq= ×£pá¿j¼t“®ƒÀÃõ(\�ÂÀq= ×£pῚ™™™™ÙKÀ¤p= ×£$@bX9´´dÀbX9´È@7‰A`åÐê¿j¼t“®ƒÀ'1¬ZÀw¾Ÿ/Ýè?d;ßO�‡FÀq= ×£° @9´Èv¾ïaÀé&1¬ À)\�Âõ(ä¿NbX9%�Àé&1¬ À)\�Âõ(ä¿d;ßO�‡FÀq= ×£° @9´Èv¾ïaÀ'1¬Z@w¾Ÿ/Ýè¿NbX9%�À°rh‘í|@Ë¡E¶óý¤?�•C‹Ì:À= ×£p='@)\�Âõ eÀÅ °rh‘Í¿+‡ÙÎ÷ï?= ×£p§ƒÀÅ °rh‘Í¿+‡ÙÎ÷ï?�•C‹Ì:À= ×£p='@)\�Âõ eÀ°rh‘í|ÀË¡E¶óý¤¿= ×£p§ƒÀ%�•C‹ö¿5^ºI ï?¤p= ×sAÀNbX9t'@^ºI eÀ/Ý$ÀX9´Èv¾Ï¿NbX9¿ƒÀ/Ý$ÀX9´Èv¾Ï¿¤p= ×sAÀNbX9t'@^ºI eÀ%�•C‹ö?5^ºI ï¿NbX9¿ƒÀä¿®Gáz®ï?ð§ÆK7i@@‡ÙÎ÷S"@…ëQ¸‚dÀßO�—n’À?5^ºI ¿…ëQ¸Ö‚ÀßO�—n’À?5^ºI ¿ð§ÆK7i@@‡ÙÎ÷S"@…ëQ¸‚dÀä?®Gáz®ï¿…ëQ¸Ö‚ÀV-²�ã¿®Gáz®ï?%�•Ck@@+‡Ù"@j¼t“eÀ7‰A`åPÀìQ¸…ëÁ¿ÓMbXCƒÀ7‰A`åPÀìQ¸…ëÁ¿%�•Ck@@+‡Ù"@j¼t“eÀV-²�ã?®Gáz®ï¿ÓMbXCƒÀÅ °rhÀP�—nƒÐ?¶óýÔx DÀË¡E¶ó="@NbX9äbÀ= ×£p=ò¿¶óýÔxéî¿áz®G»�À= ×£p=ò¿¶óýÔxéî¿¶óýÔx DÀË¡E¶ó="@NbX9äbÀÅ °rh@P�—nƒÐ¿áz®G»�À�•C‹ìÀÏ÷S㥛Ä?¼t“–JÀ1¬Zä%@ã¥›Ä eÀÝ$�•Cë¿/Ý$�•₩›Ä °„ÀÝ$�•Cë¿/Ý$�•t“–JÀ1¬Zä%@ã¥›Ä eÀ�•C‹ì@Ï÷S㥛Ŀ¦›Ä °„À/Ý$�@ü©ñÒMbì?#Ûù~jLDÀƒÀÊ¡Eö(@Ház®çcÀ^ºI «ÀÅ °rh‘Ý?¼t“v‚À^ºI «ÀÅ °rh‘Ý?#Ûù~jLDÀƒÀÊ¡Eö(@Ház®çcÀ/Ý$�Àü©ñÒMb쿼t“v‚ÀþÔxé&1ÀB`åÐ"Ûé?ÁÊ¡E¶³?@œÄ °r¨ @‡ÙÎ÷÷cÀã¥›Ä ° À +‡Ùâ¿5^ºI c‚Àã¥›Ä ° À +‡Ùâ¿ÁÊ¡E¶³?@œÄ °r¨ @‡ÙÎ÷÷cÀþÔxé&1@B`åÐ"Ûé¿5^ºI c‚À�•C‹lç @5^ºI ã?^ºI  7@Ý$�•C @u“V²eÀÙÎ÷SãÀî|?5^ºé?ü©ñÒM ƒÀÙÎ÷SãÀî|?5^ºé?^ºI  7@Ý$�•C @u“V²eÀ�•C‹lç À5^ºI ã¿ü©ñÒM ƒÀé&1¬ ÀÃõ(\�ÂÕ?áz®GÁ@ÀË¡E¶óý@ºI +gdÀ +‡Ùò¿é&1¬î¿¢E¶óý¬‚À +‡Ùò¿é&1¬î¿áz®GÁ@ÀË¡E¶óý@ºI +gdÀé&1¬ @Ãõ(\�ÂÕ¿¢E¶óý¬‚À/Ý$�á¿+‡ÙÎï?w¾Ÿ/mF@X9´Èv~$@fffffêcÀÓMbX¹À)\�Âõ(¼¿^ºI ´‚ÀÓMbX¹À)\�Âõ(¼¿w¾Ÿ/mF@X9´Èv~$@fffffêcÀ/Ý$�á?+‡ÙÎï¿^ºI ´‚Àx+‡ÙÎ÷ÀÝ$�•Cç?�Âõ(\ÿA@ã¥›Ä °@w¾Ÿ/MeÀ333333À–C‹lçûå¿+‡Ù©ƒÀ333333À–C‹lçûå¿�Âõ(\ÿA@ã¥›Ä °@w¾Ÿ/MeÀ+‡ÙÎ÷@Ý$�•Cç¿+‡Ù©ƒÀX9´Èv>@¦›Ä °rÐ?/Ý$�åK@#Ûù~jü+@\�Âõ(0fÀ¢E¶óýÔú¿¶óýÔxéî?X9´Èv‡…À¢E¶óýÔú¿¶óýÔxéî?/Ý$�åK@#Ûù~jü+@\�Âõ(0fÀX9´Èv>À¦›Ä °rпX9´Èv‡…ÀB`åÐ"Û@áz®Gáº?˜nƒÀJ>@Ûù~j¼t!@'1¬¶cÀh‘í|?5Þ¿+‡ÙÎï?Zd;ß%‚Àh‘í|?5Þ¿+‡ÙÎï?˜nƒÀJ>@Ûù~j¼t!@'1¬¶cÀB`åÐ"ÛÀáz®GếZd;ß%‚À7‰A`åPÀƒÀÊ¡Eæ?–C‹lçKB@'1¬Z(@DfÀ¤p= ×£À`åÐ"Ûùæ¿J +‡Ñ„À¤p= ×£À`åÐ"Ûùæ¿–C‹lçKB@'1¬Z(@DfÀ7‰A`åP@ƒÀÊ¡Eæ¿J +‡Ñ„ÀòÒMbX ÀÙÎ÷Sã¥ç?¸…ëQ¸@@€&@-²�ï§FcÀé&1¬Àð§ÆK7‰å¿åÐ"ÛùÛ�Àé&1¬Àð§ÆK7‰å¿¸…ëQ¸@@€&@-²�ï§FcÀòÒMbX @ÙÎ÷Sã¥ç¿åÐ"ÛùÛ�ÀoƒÀÊ¡ÀÍÌÌÌÌÌä?'1¬:;@R¸…ëÑ$@¢E¶óýøcÀ¬Zd; ÀR¸…ëQè¿sh‘í|A‚À¬Zd; ÀR¸…ëQè¿'1¬:;@R¸…ëÑ$@¢E¶óýøcÀoƒÀÊ¡@ÍÌÌÌÌÌä¿sh‘í|A‚À‘í|?5^@X9´Èvê?ð§ÆK7ICÀV-r%@ÓMbX©bÀyé&1,Àj¼t“â?T㥛Ċ�Àyé&1,Àj¼t“â?ð§ÆK7ICÀV-r%@ÓMbX©bÀ‘í|?5^ÀX9´Èvê¿T㥛Ċ�À\�Âõ(\ó?-²�ï§î?0B@X9´Èv~ @!°rh‘‘fÀÃõ(\�BÀ= ×£p=Ò? ×£p=F…ÀÃõ(\�BÀ= ×£p=Ò?0B@X9´Èv~ @!°rh‘‘fÀ\�Âõ(\ó¿-²�ï§î¿ ×£p=F…À%�•C‹ ÀƒÀÊ¡Eâ?^ºI k?@V-²�o@�•C‹(cÀF¶óýÔxÀƒÀÊ¡Eê¿Ý$�•²�ÀF¶óýÔxÀƒÀÊ¡Eê¿^ºI k?@V-²�o@�•C‹(cÀ%�•C‹ @ƒÀÊ¡Eâ¿Ý$�•²�ÀÅ °rh‘ÀœÄ °rhé?œÄ °rÈ9Àã¥›Ä ð*@V-²�geÀX9´ÈöÀÛù~j¼tã¿ÙÎ÷SãYƒÀX9´ÈöÀÛù~j¼tã¿œÄ °rÈ9Àã¥›Ä ð*@V-²�geÀÅ °rh‘@œÄ °rhé¿ÙÎ÷SãYƒÀ¢E¶óýÔÀ`åÐ"Ûùâ?Zd;ß?KÀq= ×£ð@´Èv¾Ÿ’dÀ333333ý¿Ãõ(\�Âé¿1¬ZlƒÀ333333ý¿Ãõ(\�Âé¿Zd;ß?KÀq= ×£ð@´Èv¾Ÿ’dÀ¢E¶óýÔ@`åÐ"Ûùâ¿1¬ZlƒÀ�•C‹lÀî|?5^ºé?ö(\�ÂUNÀj¼t“„@Ház®SeÀd;ßO�—À5^ºI ã¿’„Àd;ßO�—À5^ºI ã¿ö(\�ÂUNÀj¼t“„@Ház®SeÀ�•C‹l@î|?5^ºé¿’„ÀÕxé&1ˆ@ü©ñÒMbÐ?Ñ"Ûù~:OÀ;ßO�—î%@oƒÀÊádÀî|?5^ºõ¿‹lçû©ñî?ÇK7‰A!„Àî|?5^ºõ¿‹lçû©ñî?Ñ"Ûù~:OÀ;ßO�—î%@oƒÀÊádÀÕxé&1ˆÀü©ñÒMbпÇK7‰A!„ÀX9´Èv¾ý¿š™™™™™í?¶óýÔx)9@ /Ý$%@V-úeÀ-²�ï'À¨ÆK7‰AØ¿Ház®„À-²�ï'À¨ÆK7‰AØ¿¶óýÔx)9@ /Ý$%@V-úeÀX9´Èv¾ý?š™™™™™í¿Ház®„Àyé&1¬À{®Gázà?'1¬:M@²�ï§ÆK%@+‡ÙöcÀ¨ÆK7‰AÀ�•C‹lë¿þÔxé&ƒÀ¨ÆK7‰AÀ�•C‹lë¿'1¬:M@²�ï§ÆK%@+‡ÙöcÀyé&1¬@{®Gázà¿þÔxé&ƒÀ +‡Ù@1¬Zdç?˜nƒÀê:ÀZd;ßÏ"@‹lçû©ÁeÀÙÎ÷S㥠Àmçû©ñÒå?j¼t“ÓƒÀÙÎ÷S㥠Àmçû©ñÒå?˜nƒÀê:ÀZd;ßÏ"@‹lçû©ÁeÀ +‡ÙÀ1¬Zdç¿j¼t“ÓƒÀ®Gáz®ã?ÙÎ÷Sã¥ï?V-²]?À¨ÆK7‰A!@sh‘í|gÀºI +‡À7‰A`åÐÂ?T㥛Ď…ÀºI +‡À7‰A`åÐÂ?V-²]?À¨ÆK7‰A!@sh‘í|gÀ®Gáz®ã¿ÙÎ÷Sã¥ï¿T㥛Ď…ÀÉv¾Ÿ/@®Gáz®×?'1¬ÚA@V-²�o&@Å °rhufÀJ +‡Àî|?5^ºí?ÁÊ¡E¶…ÀJ +‡Àî|?5^ºí?'1¬ÚA@V-²�o&@Å °rhufÀÉv¾Ÿ/À®Gáz®×¿ÁÊ¡E¶…ÀHáz®G@òÒMbXå?ü©ñÒMêP@ßO�—nÒ @˜nƒÀîdÀ¸…ëQ¸À×£p= ×ç?‘í|?5‡„À¸…ëQ¸À×£p= ×ç?ü©ñÒMêP@ßO�—nÒ @˜nƒÀîdÀHáz®GÀòÒMbXå¿‘í|?5‡„À +‡ÙÀÍÌÌÌÌÌè?ÍÌÌÌÌì=@-²�ï§ @¼t“feÀð§ÆK7‰ ÀÓMbX9俪ñÒMb’ƒÀð§ÆK7‰ ÀÓMbX9ä¿ÍÌÌÌÌì=@-²�ï§ @¼t“feÀ +‡Ù@ÍÌÌÌÌÌ迪ñÒMb’ƒÀF¶óýÔx@Å °rh‘Í?)\�Âõø@@D‹lçû©$@Ház®‡eÀ{®Gázò¿‰A`åÐ"ï?…ëQ¸çƒÀ{®Gázò¿‰A`åÐ"ï?)\�Âõø@@D‹lçû©$@Ház®‡eÀF¶óýÔxÀÅ °rh‘Í¿…ëQ¸çƒÀZd;ßÏ@/Ý$�¥?çû©ñÒmD@œÄ °rh"@¼bÀªñÒMbÈ¿+‡ÙÎ÷ï?yé&1˜�ÀªñÒMbÈ¿+‡ÙÎ÷ï?çû©ñÒmD@œÄ °rh"@¼bÀZd;ßÏÀ/Ý$�¥¿yé&1˜�À+‡ÙÎ÷@Ë¡E¶óý¤?çû©ñÒ-GÀoƒÀÊ!@‰A`åÐBeÀ{®GázÄ¿+‡ÙÎ÷ï?�Âõ(\ „À{®GázÄ¿+‡ÙÎ÷ï?çû©ñÒ-GÀoƒÀÊ!@‰A`åÐBeÀ+‡ÙÎ÷ÀË¡E¶óý¤¿�Âõ(\ „Àd;ßO�—@�Âõ(\�æ?^ºI ‹L@{®Gáú@)\�ÂõÈcÀF¶óýÔxÀã¥›Ä °æ?/Ý$�é‚ÀF¶óýÔxÀã¥›Ä °æ?^ºI ‹L@{®Gáú@)\�ÂõÈcÀd;ßO�—À�Âõ(\�æ¿/Ý$�é‚ÀZd;ßO�÷¿‹lçû©ñî?¦›Ä °R?ÀV-²Ý(@�Âõ(\—fÀ¦›Ä °rÀ¨ÆK7‰AпœÄ °ró„À¦›Ä °rÀ¨ÆK7‰Aп¦›Ä °R?ÀV-²Ý(@�Âõ(\—fÀZd;ßO�÷?‹lçû©ñî¿œÄ °ró„ÀºI +‡À-²�ï§æ?Ãõ(\�BCÀ¾Ÿ/Ýä @fffffâfÀV-²�Àd;ßO�—æ¿!°rh‘f…ÀV-²�Àd;ßO�—æ¿Ãõ(\�BCÀ¾Ÿ/Ýä @fffffâfÀºI +‡@-²�ï§æ¿!°rh‘f…À;ßO�—n @žï§ÆK7á? ×£p=zGÀmçû©ñR@R¸…ë]eÀÓMbX9À`åÐ"Ûùê?²�ï§Æ7„ÀÓMbX9À`åÐ"Ûùê? ×£p=zGÀmçû©ñR@R¸…ë]eÀ;ßO�—n Àžï§ÆK7ῲ�ï§Æ7„Àð§ÆK7‰@Å °rh‘í?u“V®9@w¾Ÿ/�(@š™™™™qdÀ¬Zd;À¦›Ä °rØ?é&1¬—‚À¬Zd;À¦›Ä °rØ?u“V®9@w¾Ÿ/�(@š™™™™qdÀð§ÆK7‰ÀÅ °rh‘í¿é&1¬—‚À{®Gázö¿œÄ °rhí?#Ûù~jüB@h‘í|?µ@ÙÎ÷SãibÀþÔxé&1 Àžï§ÆK7Ù¿ôýÔxéB�ÀþÔxé&1 Àžï§ÆK7Ù¿#Ûù~jüB@h‘í|?µ@ÙÎ÷SãibÀ{®Gázö?œÄ °rhí¿ôýÔxéB�Àj¼t“ À®Gáz®ã?´Èv¾Ÿz@ÀV-²�¯!@ìQ¸…+fÀªñÒMbÀsh‘í|?鿇ÙÎ÷Ž„ÀªñÒMbÀsh‘í|?é¿´Èv¾Ÿz@ÀV-²�¯!@ìQ¸…+fÀj¼t“ @®Gáz®ã¿‡ÙÎ÷Ž„À‘í|?5^ @®Gáz®ë?/Ý$M@ú~j¼t+@é&1¬ôdÀB`åÐ"ÛÀªñÒMbà?žï§ÆK6„ÀB`åÐ"ÛÀªñÒMbà?/Ý$M@ú~j¼t+@é&1¬ôdÀ‘í|?5^ À®Gáz®ë¿žï§ÆK6„Àyé&1¬À333333ã?áz®GÁ7@�Âõ(\�@}?5^º%gÀj¼t“Àš™™™™™é¿/Ý$�Ž…Àj¼t“Àš™™™™™é¿áz®GÁ7@�Âõ(\�@}?5^º%gÀyé&1¬@333333ã¿/Ý$�Ž…ÀÇK7‰Aà@ºI +‡Æ?X9´È6E@�—nƒÀ"@Ý$�•‡fÀÅ °rh‘é¿°rh‘í|ï?Ë¡E¶ón…ÀÅ °rh‘é¿°rh‘í|ï?X9´È6E@�—nƒÀ"@Ý$�•‡fÀÇK7‰AàÀºI +‡Æ¿Ë¡E¶ón…ÀF¶óýÔxù?�•C‹lë?áz®GáH@…ëQ¸@Év¾ŸeÀ^ºI +ÀP�—nƒà?¸…ëQ„À^ºI +ÀP�—nƒà?áz®GáH@…ëQ¸@Év¾ŸeÀF¶óýÔxù¿�•C‹l뿸…ëQ„À¦›Ä °r@L7‰A`åÐ?Zd;ßßD@ã¥›Ä ð(@ìQ¸…bÀÏ÷S㥛ø¿ +‡Ùî?= ×£pj�ÀÏ÷S㥛ø¿ +‡Ùî?Zd;ßßD@ã¥›Ä ð(@ìQ¸…bÀ¦›Ä °rÀL7‰A`åп= ×£pj�À}?5^ºIÀü©ñÒMbä?ÓMbXéDÀ ×£p=J$@ªñÒMb¬dÀ ×£p= Àyé&1¬è¿Év¾ŸƒÀ ×£p= Àyé&1¬è¿ÓMbXéDÀ ×£p=J$@ªñÒMb¬dÀ}?5^ºI@ü©ñÒMbä¿Év¾ŸƒÀƒÀÊ¡Eþ¿ÍÌÌÌÌÌì?é&1¬LMÀ¦›Ä °ò!@}?5^ºídÀ²�ï§ÆKÀ×£p= ×Û¿ªñÒMb„À²�ï§ÆKÀ×£p= ×Û¿é&1¬LMÀ¦›Ä °ò!@}?5^ºídÀƒÀÊ¡Eþ?ÍÌÌÌÌÌ쿪ñÒMb„À:¸Tã¥›Ä Ø¿�•C‹lçï?´Èv¾ŸZ@@ÇK7‰A %@D‹lçûmjÀ�•C‹lgÀ‹lçû©ñ²¿�•C‹lý‰À�•C‹lgÀ‹lçû©ñ²¿´Èv¾ŸZ@@ÇK7‰A %@D‹lçûmjÀTã¥›Ä Ø?�•C‹lçï¿�•C‹lý‰À}?5^ºI ÀƒÀÊ¡E¶ç?/Ý$�ÅB@ƒÀÊ¡Eö$@²�ï§Æ‡hÀ–C‹lçû À/Ý$�å¿h‘í|?ö‡À–C‹lçû À/Ý$�å¿/Ý$�ÅB@ƒÀÊ¡Eö$@²�ï§Æ‡hÀ}?5^ºI @ƒÀÊ¡E¶ç¿h‘í|?ö‡À= ×£p=@®Gáz®ç?¶óýÔxiB@33333³@+‡ÙîiÀ‘í|?5^Àð§ÆK7‰å?Ï÷S㥌‰À‘í|?5^Àð§ÆK7‰å?¶óýÔxiB@33333³@+‡ÙîiÀ= ×£p=À®Gáz®ç¿Ï÷S㥌‰Àî|?5^:Àsh‘í|?é?ÙÎ÷SãÅ;ÀZd;ßOM,@1¬Z¬iÀ×£p= ×ÀÙÎ÷Sã¥ã¿¢E¶óýÛˆÀ×£p= ×ÀÙÎ÷Sã¥ã¿ÙÎ÷SãÅ;ÀZd;ßOM,@1¬Z¬iÀî|?5^:@sh‘í|?é¿¢E¶óýÛˆÀ¬Zd;¯¿ð?–C‹lç{B@‰A`åÐ"@h‘í|?ågÀË¡E¶óýÀü©ñÒMb�¿´Èv¾Ÿ6‡ÀË¡E¶óýÀü©ñÒMb�¿–C‹lç{B@‰A`åÐ"@h‘í|?ågÀ¬Zd;¯?ð¿´Èv¾Ÿ6‡ÀôýÔxé&Ù?×£p= ×ï?‘í|?5þ>@bX9´H@î|?5^RgÀË¡E¶óýÀB`åÐ"Û¹?)\�ÂõZ†ÀË¡E¶óýÀB`åÐ"Û¹?‘í|?5þ>@bX9´H@î|?5^RgÀôýÔxé&Ù¿×£p= ×ï¿)\�ÂõZ†ÀƒÀÊ¡EÀ1¬Zdã?ú~j¼tSG@L7‰A`¥#@Ãõ(\�ÂfÀu“VÀq= ×£pé¿fffff†Àu“VÀq= ×£pé¿ú~j¼tSG@L7‰A`¥#@Ãõ(\�ÂfÀƒÀÊ¡E@1¬Zdã¿fffff†ÀƒÀÊ¡E À+‡ÙÎ÷ç?Tã¥›Ä 8@¸…ëQx$@`åÐ"ÛagÀã¥›Ä ° Àžï§ÆK7忾Ÿ/Ýì…Àã¥›Ä ° Àžï§ÆK7å¿Tã¥›Ä 8@¸…ëQx$@`åÐ"ÛagÀƒÀÊ¡E @+‡ÙÎ÷翾Ÿ/Ýì…Àü©ñÒMb @h‘í|?5ê?\�Âõ(lC@òÒMbØ&@/Ý$�qiÀ…ëQ¸À‘í|?5^â?Zd;ßOëˆÀ…ëQ¸À‘í|?5^â?\�Âõ(lC@òÒMbØ&@/Ý$�qiÀü©ñÒMb Àh‘í|?5ê¿Zd;ßOëˆÀ/Ý$�•ý?Ë¡E¶óýì?Zd;ßOÝGÀË¡E¶óý @ü©ñÒMæhÀD‹lçû©ÀßO�—nÛ?oƒÀʆˆÀD‹lçû©ÀßO�—nÛ?Zd;ßOÝGÀË¡E¶óý @ü©ñÒMæhÀ/Ý$�•ý¿Ë¡E¶óýì¿oƒÀʆˆÀD‹lçû©@/Ý$�•ë?¢E¶óýÔ>@X9´Èvþ!@?5^ºI´gÀ ×£p= ÀÓMbX9à?/Ý$�Ú†À ×£p= ÀÓMbX9à?¢E¶óýÔ>@X9´Èvþ!@?5^ºI´gÀD‹lçû©À/Ý$�•ë¿/Ý$�Ú†ÀÙÎ÷SãÕ?¬Zd;ßï?áz®G±K@= ×£p} @…ëQ¸ hÀmçû©ñÒÀj¼t“¶?¤p= ×ë‡Àmçû©ñÒÀj¼t“¶?áz®G±K@= ×£p} @…ëQ¸ hÀÙÎ÷SãÕ¿¬Zd;ߦp= ×ë‡ÀºI +‡ À�•C‹lß?NbX9´AÀ°rh‘í|@33333iÀøS㥛Äü¿¬Zd;ßë¿Ház®dˆÀøS㥛Äü¿¬Zd;ßë¿NbX9´AÀ°rh‘í|@33333iÀºI +‡ @�•C‹lß¿Ház®dˆÀØ?¬Zd;ßï?mçû©ñ’4@´Èv¾Ÿ!@+‡ÙjhÀºI +‡ÀÃõ(\�µ?#‡ÀºI +‡ÀÃõ(\�µ?mçû©ñ’4@´Èv¾Ÿ!@+‡ÙjhÀØ¿¬Zd;ßï¿#‡ÀìQ¸…ëÀZd;ßO�ß?ìQ¸…k9@×£p= ×@Å °rh�gÀh‘í|?5ü¿×£p= ×ë¿®Gázd†Àh‘í|?5ü¿×£p= ×ë¿ìQ¸…k9@×£p= ×@Å °rh�gÀìQ¸…ë@Zd;ßO�ß¿®Gázd†Àj¼t“˜ÀTã¥›Ä °?J +‡–=À¤p= ×#!@ö(\�ÂùgÀB`åÐ"ÛÑ¿V-²�ïï¿ã¥›Ä ª†ÀB`åÐ"ÛÑ¿V-²�ïï¿J +‡–=À¤p= ×#!@ö(\�ÂùgÀj¼t“˜@Tã¥›Ä °¿ã¥›Ä ª†À9´Èv¾@ÁÊ¡E¶óÕ?ÇK7‰AÀEÀ /Ý$%@ð§ÆK7IgÀV-²�ïû¿?5^ºI î?fffffC†ÀV-²�ïû¿?5^ºI î?ÇK7‰AÀEÀ /Ý$%@ð§ÆK7IgÀ9´Èv¾ÀÁÊ¡E¶óÕ¿fffffC†ÀD‹lçû© @Ûù~j¼t“?`åÐ"Ûù7@¬Zd;ß@+‡Ù¢jÀôýÔxé&±¿ð?áz®Gý‰ÀôýÔxé&±¿ð?`åÐ"Ûù7@¬Zd;ß@+‡Ù¢jÀD‹lçû© ÀÛù~j¼t“¿áz®Gý‰Àáz®Gá À +‡ÙÎ?`åÐ"ÛYL@ìQ¸…ë@sh‘í|ËiÀD‹lçû©é¿ßO�—n↓Zdú‰ÀD‹lçû©é¿ßO�—nï¿`åÐ"ÛYL@ìQ¸…ë@sh‘í|ËiÀáz®Gá @ +‡Ùο¬Zdú‰À¤p= ×£ÀìQ¸…ëÁ?33333ÓOÀåÐ"Ûù¾+@ð§ÆK7efÀu“Ví¿®Gáz®ï¿oƒÀÊÕ…Àu“Ví¿®Gáz®ï¿33333ÓOÀåÐ"Ûù¾+@ð§ÆK7efÀ¤p= ×£@ìQ¸…ëÁ¿oƒÀÊÕ…ÀåÐ"Ûù~ÀÇK7‰A`é?¶óýÔx9I@D‹lçû)!@ ×£p=6iÀj¼t“ À°rh‘í|ã¿òÒMbøˆÀj¼t“ À°rh‘í|ã¿¶óýÔx9I@D‹lçû)!@ ×£p=6iÀåÐ"Ûù~@ÇK7‰A`é¿òÒMbøˆÀj¼t“Ü?�•C‹lçï?w¾Ÿ/Ý=@bX9´ˆ'@�•C‹l§iÀÓMbX¹ÀƒÀÊ¡E¶³?ÙÎ÷SãïˆÀÓMbX¹ÀƒÀÊ¡E¶³?w¾Ÿ/Ý=@bX9´ˆ'@�•C‹l§iÀj¼t“Ü¿�•C‹lçï¿ÙÎ÷SãïˆÀoƒÀÊ¡ ÀL7‰A`åÀ?J +‡ÆB@ªñÒMb@)\�ÂõÄiÀV-²�ß¿ƒÀÊ¡E¶ï¿ßO�—nY‰ÀV-²�ß¿ƒÀÊ¡E¶ï¿J +‡ÆB@ªñÒMb@)\�ÂõÄiÀoƒÀÊ¡ @L7‰A`åÀ¿ßO�—nY‰ÀTã¥›Ä À¿ð?/Ý$ÁC@²�ï§Æ‹,@#Ûù~jDhÀ¤p= ×£ÀÛù~j¼t“¿‰A`åШ‡À¤p= ×£ÀÛù~j¼t“¿/Ý$ÁC@²�ï§Æ‹,@#Ûù~jDhÀTã¥›Ä À?ð¿‰A`åШ‡Àü©ñÒMbð?V-²�ï?T㥛ÄF@+‡ÙN,@`åÐ"ÛågÀš™™™™À×£p= ×Ã?V-²d‡Àš™™™™À×£p= ×Ã?T㥛ÄF@+‡ÙN,@`åÐ"ÛågÀü©ñÒMbð¿V-²�ï¿V-²d‡ÀP�—nƒö¿ìQ¸…ëí? +‡99@J +‡V @“VhÀú~j¼t“ ÀbX9´ÈÖ¿¤p= ×ç†Àú~j¼t“ ÀbX9´ÈÖ¿ +‡99@J +‡V @“VhÀP�—nƒö?ìQ¸…ëí¿¤p= ×ç†Àw¾Ÿ/Ý@!°rh‘íÜ?u“VNDÀ;ßO�—®$@�Âõ(\iÀé&1¬À%�•C‹ì?ÁÊ¡E¶�ˆÀé&1¬À%�•C‹ì?u“VNDÀ;ßO�—®$@�Âõ(\iÀw¾Ÿ/ÝÀ!°rh‘íÜ¿ÁÊ¡E¶�ˆÀL7‰A`å@ffffffâ?Zd;ß_CÀË¡E¶ó½(@V-²�gÀ%�•C‹ À“V-ê? /Ý$¸…À%�•C‹ À“V-ê?Zd;ß_CÀË¡E¶ó½(@V-²�gÀL7‰A`åÀffffffâ¿ /Ý$¸…À}?5^ºIð?^ºI +ï?u“VfPÀ¸…ëQx!@/Ý$áhÀ€Àu“VÍ?¼t“÷ˆÀ€Àu“VÍ?u“VfPÀ¸…ëQx!@/Ý$áhÀ}?5^ºIð¿^ºI +t“÷ˆÀ¸çû©ñÒM@‘í|?5^æ?Év¾ŸoL@Ñ"Ûù~ê)@…ëQ¸gÀ�•C‹lçÀáz®Gáæ?®Gázî†À�•C‹lçÀáz®Gáæ?Év¾ŸoL@Ñ"Ûù~ê)@…ëQ¸gÀçû©ñÒMÀ‘í|?5^æ¿®Gázî†Àš™™™™™õ¿ +‡Ùî?¢E¶óýÔM@î|?5^º%@åÐ"ÛùšiÀ?5^ºIŒÀ /Ý$Ñ¿}?5^ºÒ‰À?5^ºIŒÀ /Ý$Ñ¿¢E¶óýÔM@î|?5^º%@åÐ"ÛùšiÀš™™™™™õ? +‡Ùî¿}?5^ºÒ‰ÀÕxé&1 ÀƒÀÊ¡E¶ã?ìQ¸…‹9@Å °rh @j¼t“ iÀ‘í|?5^Àžï§ÆK7é¿\�Âõ(2ˆÀ‘í|?5^Àžï§ÆK7é¿ìQ¸…‹9@Å °rh @j¼t“ iÀÕxé&1 @ƒÀÊ¡E¶ã¿\�Âõ(2ˆÀT㥛Ġ@-²�ï§â?ÍÌÌÌÌ@@ºI +‡,@X9´ÈvÆiÀªñÒMbÀ–C‹lçûé?®Gáz3‰ÀªñÒMbÀ–C‹lçûé?ÍÌÌÌÌ@@ºI +‡,@X9´ÈvÆiÀT㥛ĠÀ-²�ï§â¿®Gáz3‰À–C‹lçû @/Ý$�Ý?ÙÎ÷S£A@!°rh‘m @þÔxé&jÀ^ºI +ÿ¿ü©ñÒMbì?¾Ÿ/ݵ‰À^ºI +ÿ¿ü©ñÒMbì?ÙÎ÷S£A@!°rh‘m @þÔxé&jÀ–C‹lçû À/Ý$�Ý¿¾Ÿ/ݵ‰À®Gáz.@/Ý$�¥?L7‰A`e:@ÙÎ÷Sã%@9´Èv¾ËiÀÑ"Ûù~jÌ¿+‡ÙÎ÷ï?1¬Z‰ÀÑ"Ûù~jÌ¿+‡ÙÎ÷ï?L7‰A`e:@ÙÎ÷Sã%@9´Èv¾ËiÀ®Gáz.À/Ý$�¥¿1¬Z‰À^ºI +ù?D‹lçû©í??5^ºILO@ ×£p=J @¦›Ä °šfÀu“VÀªñÒMbØ?ÙÎ÷Sã†Àu“VÀªñÒMbØ??5^ºILO@ ×£p=J @¦›Ä °šfÀ^ºI +ù¿D‹lçû©í¿ÙÎ÷Sã†À`åÐ"Ûù@ /Ý$Ñ?–C‹lçû?@J +‡%@ÍÌÌÌÌ4gÀ¶óýÔxéô¿ +‡Ùî?-²�ï†À¶óýÔxéô¿ +‡Ùî?–C‹lçû?@J +‡%@ÍÌÌÌÌ4gÀ`åÐ"ÛùÀ /Ý$Ñ¿-²�ï†À-²�ï§Æ@®Gázæ?`åÐ"Û)EÀ33333ó%@�Âõ(\ggÀ¼t“V À^ºI +ç?}?5^ºd†À¼t“V À^ºI +ç?`åÐ"Û)EÀ33333ó%@�Âõ(\ggÀ-²�ï§ÆÀ®Gázæ¿}?5^ºd†Àmçû©ñÒ@sh‘í|?å?øS㥛$A@D‹lçû©@u“VRhÀsh‘í|?ÀV-²�ïç?ö(\�ЇÀsh‘í|?ÀV-²�ïç?øS㥛$A@D‹lçû©@u“VRhÀmçû©ñÒÀsh‘í|?å¿ö(\�ЇÀ;ßO�—n À`åÐ"Ûùâ?øS㥛TMÀ9´Èv¾ß"@ð§ÆK7UiÀã¥›Ä °ÀÃõ(\�Â鿃‰Àã¥›Ä °ÀÃõ(\�Âé¿øS㥛TMÀ9´Èv¾ß"@ð§ÆK7UiÀ;ßO�—n @`åÐ"Ûù⿃‰Àj¼t“@q= ×£pá?ü©ñÒM¢A@…ëQ¸…'@D‹lçû¹hÀmçû©ñÒÀ7‰A`åÐê?ÍÌÌÌ̈Àmçû©ñÒÀ7‰A`åÐê?ü©ñÒM¢A@…ëQ¸…'@D‹lçû¹hÀj¼t“Àq= ×£pá¿ÍÌÌÌ̈ÀÇK7‰A`@�•C‹lç?ð§ÆK7©?@‰A`åÐâ'@}?5^ºùiÀ7‰A`åPÀ˜nƒÀÊå?)\�Âõp‰À7‰A`åPÀ˜nƒÀÊå?ð§ÆK7©?@‰A`åÐâ'@}?5^ºùiÀÇK7‰A`À�•C‹lç¿)\�Âõp‰À!°rh‘mÀÙÎ÷SãÅ?+‡Ùî=À`åÐ"Ûy)@= ×£piÀ= ×£p=ð¿…ëQ¸…ï¿yé&1RˆÀ= ×£p=ð¿…ëQ¸…ï¿+‡Ùî=À`åÐ"Ûy)@= ×£piÀ!°rh‘m@ÙÎ÷SãÅ¿yé&1RˆÀD‹lçû)ÀÙÎ÷S㥻?5^ºI rFÀð§ÆK7É @®GáziÀÁÊ¡E¶óÝ¿+‡ÙÎï¿Ï÷S㥣ˆÀÁÊ¡E¶óÝ¿+‡ÙÎï¿5^ºI rFÀð§ÆK7É @®GáziÀD‹lçû)@ÙÎ÷S㥻¿Ï÷S㥣ˆÀÁÊ¡E¶ó @Zd;ßO�ç?‹lçû©aD@R¸…ë&@‰A`åÐâfÀ¦›Ä °rÀD‹lçû©å?“VÝ…À¦›Ä °rÀD‹lçû©å?‹lçû©aD@R¸…ë&@‰A`åÐâfÀÁÊ¡E¶ó ÀZd;ßO�ç¿“VÝ…ÀT㥛Ġ@ÙÎ÷Sã¥Ó?Å °rhAFÀžï§ÆKw'@w¾Ÿ/¥gÀÙÎ÷Sãû¿X9´Èvî?w¾Ÿ/®†ÀÙÎ÷Sãû¿X9´Èvî?Å °rhAFÀžï§ÆKw'@w¾Ÿ/¥gÀT㥛ĠÀÙÎ÷Sã¥Ó¿w¾Ÿ/®†Àáz®Gá@ÁÊ¡E¶óÝ?ªñÒMbP;À¬Zd;Ÿ"@áz®G¡gÀw¾Ÿ/ÝÀ}?5^ºIì?L7‰A`$†Àw¾Ÿ/ÝÀ}?5^ºIì?ªñÒMbP;À¬Zd;Ÿ"@áz®G¡gÀáz®GáÀÁÊ¡E¶óÝ¿L7‰A`$†ÀoƒÀÊ!À#Ûù~j¼Ô?1¬Z„K@ú~j¼t“ @þÔxé&]fÀj¼t“ö¿ƒÀÊ¡Eî¿R¸…ëÄ…Àj¼t“ö¿ƒÀÊ¡Eî¿1¬Z„K@ú~j¼t“ @þÔxé&]fÀoƒÀÊ!@#Ûù~j¼Ô¿R¸…ëÄ…Àáz®Gáú¿‡ÙÎ÷Së?{®Gá EÀÏ÷Sã¥@Zd;ßOIiÀu“VÀ¤p= ×£à¿/Ý$ÕˆÀu“VÀ¤p= ×£à¿{®Gá EÀÏ÷Sã¥@Zd;ßOIiÀáz®Gáú?‡ÙÎ÷Së¿/Ý$ÕˆÀö(\�Âõü? +‡Ùî?‹lçû©±I@5^ºI -@{®GáÂiÀJ +‡ÀJ +‡Ñ?+‡Ùλ‰ÀJ +‡ÀJ +‡Ñ?‹lçû©±I@5^ºI -@{®GáÂiÀö(\�Âõü¿ +‡Ùî¿+‡Ùλ‰ÀÛù~j¼t ÀÁÊ¡E¶óå?j¼t“øAÀƒÀÊ¡Eö$@�—nƒŒgÀB`åÐ"Û ÀÝ$�•Cç¿;ßO�—]†ÀB`åÐ"Û ÀÝ$�•Cç¿j¼t“øAÀƒÀÊ¡Eö$@�—nƒŒgÀÛù~j¼t @ÁÊ¡E¶óå¿;ßO�—]†ÀÝ$�•CÀ‘í|?5^ê?NbX9DCÀš™™™™Y#@oƒÀÊ�iÀw¾Ÿ/ÝÀ¾Ÿ/Ý$â¿u“V‰Àw¾Ÿ/ÝÀ¾Ÿ/Ý$â¿NbX9DCÀš™™™™Y#@oƒÀÊ�iÀÝ$�•C@‘í|?5^ê¿u“V‰ÀR¸…ëÑÀX9´Èv¾¿?+‡Ù·CÀÑ"Ûù~ª%@!°rh‘ÕiÀw¾Ÿ/Ýä¿X9´Èv¾ï¿ÙÎ÷S”‰Àw¾Ÿ/Ýä¿X9´Èv¾ï¿+‡Ù·CÀÑ"Ûù~ª%@!°rh‘ÕiÀR¸…ëÑ@X9´Èv¾¿¿ÙÎ÷S”‰Àð§ÆK7‰À`åÐ"ÛùÖ?h‘í|?U?@�Âõ(\�@mçû©ñ¶hÀL7‰A`åò¿B`åÐ"Ûí¿j¼t“÷‡ÀL7‰A`åò¿B`åÐ"Ûí¿h‘í|?U?@�Âõ(\�@mçû©ñ¶hÀð§ÆK7‰@`åÐ"ÛùÖ¿j¼t“÷‡À‘í|?5^@åÐ"Ûù~ê?¬Zd›=À¢E¶óýÔ@´Èv¾ŸniÀ´Èv¾Ÿ ÀÁÊ¡E¶óá?øS㥛žˆÀ´Èv¾Ÿ ÀÁÊ¡E¶óá?¬Zd›=À¢E¶óýÔ@´Èv¾ŸniÀ‘í|?5^ÀåÐ"Ûù~ê¿øS㥛žˆÀòÒMbX÷¿mçû©ñÒí?mçû©ñÒ?@ü©ñÒM¢ @d;ßO�siÀÕxé&1À^ºI +׿Ï÷S㥭ˆÀÕxé&1À^ºI +׿mçû©ñÒ?@ü©ñÒM¢ @d;ßO�siÀòÒMbX÷?mçû©ñÒí¿Ï÷S㥭ˆÀÛù~j¼t @\�Âõ(\ç?yé&1 >À#Ûù~j|%@?5^ºIøiÀ‘í|?5^ÀÙÎ÷Sãå?)\�Âõ^‰À‘í|?5^ÀÙÎ÷Sãå?yé&1 >À#Ûù~j|%@?5^ºIøiÀÛù~j¼t À\�Âõ(\ç¿)\�Âõ^‰ÀÕxé&1Ô?V-²�ïï?ö(\�Â%HÀ+‡Ùη%@#Ûù~jtiÀåÐ"ÛùþÀ¸…ëQ¸®?ßO�—nI‰ÀåÐ"ÛùþÀ¸…ëQ¸®?ö(\�Â%HÀ+‡Ùη%@#Ûù~jtiÀÕxé&1Ô¿V-²�ïï¿ßO�—nI‰ÀlZd;ßO� Àé&1¬â?ƒÀÊ¡¥I@ü©ñÒM¢ @X9´ÈRoÀsh‘í|?À‘í|?5^ê¿…ëQ¸‚ŽÀsh‘í|?À‘í|?5^꿃ÀÊ¡¥I@ü©ñÒM¢ @X9´ÈRoÀZd;ßO� @é&1¬â¿…ëQ¸‚ŽÀNbX9´Àî|?5^ºå?)\�Âõ R@V-²�o@j¼t“TmÀ^ºI +À°rh‘í|ç¿þÔxé&¦�À^ºI +À°rh‘í|ç¿)\�Âõ R@V-²�o@j¼t“TmÀNbX9´@î|?5^ºå¿þÔxé&¦�Àq= ×£p @Zd;ßO�ß?é&1¬ìAÀbX9´H @ð§ÆK7éjÀJ +‡ÿ¿×£p= ×ë?B`åÐ"æŠÀJ +‡ÿ¿×£p= ×ë?é&1¬ìAÀbX9´H @ð§ÆK7éjÀq= ×£p ÀZd;ßO�ß¿B`åÐ"æŠÀ‡ÙÎ÷SÀ%�•C‹Ü?d;ßO�>Àçû©ñÒM&@P�—nKkÀHáz®GÀ¤p= ×£ì¿�—nƒ0‹ÀHáz®GÀ¤p= ×£ì¿d;ßO�>Àçû©ñÒM&@P�—nKkÀ‡ÙÎ÷S@%�•C‹Ü¿�—nƒ0‹À\�Âõ(\@°rh‘í|Ï?®GázNGÀ‰A`åÐ"-@V-~jÀ#Ûù~j¼ú¿5^ºI ï?ã¥›Ä ­ŠÀ#Ûù~j¼ú¿5^ºI ï?®GázNGÀ‰A`åÐ"-@V-~jÀ\�Âõ(\À°rh‘í|Ï¿ã¥›Ä ­ŠÀÏ÷S㥛@333333ã?-²�ï§VL@!°rh‘m%@{®Gá*mÀÙÎ÷SãÀš™™™™™é?q= ×£O�ÀÙÎ÷SãÀš™™™™™é?-²�ï§VL@!°rh‘m%@{®Gá*mÀÏ÷S㥛À333333ã¿q= ×£O�ÀV-²�oÀð§ÆK7‰Ù?V-²CÀÙÎ÷Sã%@Zd;ßmÀ�•C‹lçÀòÒMbXí¿#Ûù~j�À�•C‹lçÀòÒMbXí¿V-²CÀÙÎ÷Sã%@Zd;ßmÀV-²�o@ð§ÆK7‰Ù¿#Ûù~j�À+‡ÙÎw@ºI +‡¦?fffffJ@ /Ý$'@åÐ"ÛùònÀX9´Èvο+‡ÙÎ÷ï?ºI +HŽÀX9´Èvο+‡ÙÎ÷ï?fffffJ@ /Ý$'@åÐ"ÛùònÀ+‡ÙÎwÀºI +‡¦¿ºI +HŽÀÉv¾Ÿ¯À%�•C‹à?¬ZdÛA@bX9´ˆ&@ÙÎ÷SãÝlÀ%�•C‹À1¬Zdë¿�Âõ(\´ŒÀ%�•C‹À1¬Zd뿬ZdÛA@bX9´ˆ&@ÙÎ÷SãÝlÀÉv¾Ÿ¯@%�•C‹à¿�Âõ(\´ŒÀP�—nƒ ÀìQ¸…ëÑ?ÍÌÌÌÌl>ÀÙÎ÷Sã@J +‡âjÀ333333ñ¿¸…ëQ¸î¿�Âõ(\¯ŠÀ333333ñ¿¸…ëQ¸î¿ÍÌÌÌÌl>ÀÙÎ÷Sã@J +‡âjÀP�—nƒ @ìQ¸…ëÑ¿�Âõ(\¯ŠÀP�—nƒö¿�—nƒÀî?q= ×£�>@ /Ý$Æ%@X9´ÈþmÀºI +‡Àî|?5^ºÑ¿Å °rhA�ÀºI +‡Àî|?5^ºÑ¿q= ×£�>@ /Ý$Æ%@X9´ÈþmÀP�—nƒö?�—nƒÀî¿Å °rhA�Àã¥›Ä 0@š™™™™™á?ü©ñÒM¢%ÀåÐ"Ûù¾-@yé&1œnÀð§ÆK7‰À¸…ëQ¸ê? /Ý$Ï�Àð§ÆK7‰À¸…ëQ¸ê?ü©ñÒM¢%ÀåÐ"Ûù¾-@yé&1œnÀã¥›Ä 0Àš™™™™™á¿ /Ý$Ï�À‘í|?5^@´Èv¾Ÿß?d;ßO�;@/Ý$�U#@sh‘í|#mÀÉv¾Ÿ/À+‡ÙÎ÷ë?Å °rh¥ŒÀÉv¾Ÿ/À+‡ÙÎ÷ë?d;ßO�;@/Ý$�U#@sh‘í|#mÀ‘í|?5^À´Èv¾Ÿ߿аrh¥ŒÀ‹lçû©ñÀš™™™™™Ñ? +‡™N@²�ï§ÆK@ÍÌÌÌÌ@jÀî|?5^ºñ¿�—nƒÀî¿mçû©ñéŠÀî|?5^ºñ¿�—nƒÀî¿ +‡™N@²�ï§ÆK@ÍÌÌÌÌ@jÀ‹lçû©ñ@š™™™™™Ñ¿mçû©ñéŠÀ!°rh‘m@NbX9´Ø?�•C‹lWH@¬Zd;ß&@�—nƒØnÀ…ëQ¸À/Ý$�í?�—nƒ+ŽÀ…ëQ¸À/Ý$�í?�•C‹lWH@¬Zd;ß&@�—nƒØnÀ!°rh‘mÀNbX9´Ø¿�—nƒ+ŽÀX9´Èv¾À;ßO�—næ?Ház®IÀ–C‹lçû&@Ï÷Sã¥ËjÀh‘í|?5À7‰A`åÐæ¿ +‡+‹Àh‘í|?5À7‰A`åÐæ¿Ház®IÀ–C‹lçû&@Ï÷Sã¥ËjÀX9´Èv¾@;ßO�—næ¿ +‡+‹ÀV-2@ºI +‡â?¾Ÿ/ÝäB@^ºI ë'@Zd;ßójÀw¾Ÿ/Ý À®Gázê?ö(\�ÂóŠÀw¾Ÿ/Ý À®Gázê?¾Ÿ/ÝäB@^ºI ë'@Zd;ßójÀV-2ÀºI +‡â¿ö(\�ÂóŠÀ#Ûù~j¼ ÀD‹lçû©á?áz®GLÀ^ºI +!@Ý$�•'oÀòÒMbXÀã¥›Ä °ê¿oƒÀÊHŽÀòÒMbXÀã¥›Ä °ê¿áz®GLÀ^ºI +!@Ý$�•'oÀ#Ûù~j¼ @D‹lçû©á¿oƒÀÊHŽÀÏ÷S㥛@øS㥛Ää?‡ÙÎ÷CCÀßO�—n@X9´ÈvlÀX9´Èv¾ÀR¸…ëQè?bX9´ŒÀX9´Èv¾ÀR¸…ëQè?‡ÙÎ÷CCÀßO�—n@X9´ÈvlÀÏ÷S㥛ÀøS㥛Ää¿bX9´ŒÀ+‡ÙÎw@ªñÒMb¨?yé&1|A@œÄ °r(%@œÄ °r,kÀ´Èv¾ŸÏ¿+‡ÙÎ÷ï?®GázX‹À´Èv¾ŸÏ¿+‡ÙÎ÷ï?yé&1|A@œÄ °r(%@œÄ °r,kÀ+‡ÙÎwÀªñÒMb¨¿®GázX‹À¸…ëQ¸ø¿333333ï?!°rh‘ýGÀÓMbXù-@¤p= ×ËlÀbX9´HÀ}?5^ºIÌ¿�—nƒÃŒÀbX9´HÀ}?5^ºIÌ¿!°rh‘ýGÀÓMbXù-@¤p= ×ËlÀ¸…ëQ¸ø?333333ï¿�—nƒÃŒÀ˜nƒÀÊí?¬Zd;ï?¶óýÔx‰?À ×£p=Š!@;ßO�—†kÀßO�—n’ÀÕxé&1Ì?®Gázs‹ÀßO�—n’ÀÕxé&1Ì?¶óýÔx‰?À ×£p=Š!@;ßO�—†kÀ˜nƒÀÊí¿¬Zd;ï¿®Gázs‹ÀªñÒMb�ÀƒÀÊ¡E¶Ã?‡ÙÎ÷óI@®Gáz”'@Ãõ(\�*nÀ)\�Âõ(ì¿V-²�ï¿ +‡Í�À)\�Âõ(ì¿V-²�ᅦÙÎ÷óI@®Gáz”'@Ãõ(\�*nÀªñÒMb�@ƒÀÊ¡E¶Ã¿ +‡Í�Àsh‘í|? ÀÍÌÌÌÌÌä?J +‡ÖHÀ!°rh‘m!@q= ×£@jÀ²�ï§ÆKÀR¸…ëQè¿w¾Ÿ/{ŠÀ²�ï§ÆKÀR¸…ëQè¿J +‡ÖHÀ!°rh‘m!@q= ×£@jÀsh‘í|? @ÍÌÌÌÌÌä¿w¾Ÿ/{ŠÀ¤p= ×£@…ëQ¸Ý?åÐ"Ûù^RÀfffffæ@Év¾ŸãlÀÉv¾Ÿ/ù¿{®Gázì?…ëQ¸B�ÀÉv¾Ÿ/ù¿{®Gázì?åÐ"Ûù^RÀfffffæ@Év¾ŸãlÀ¤p= ×£À…ëQ¸Ý¿…ëQ¸B�À/Ý$�@�•C‹lç?´Èv¾Ÿz@@u“VN @Év¾ŸkÀTã¥›Ä À˜nƒÀÊå?9´Èv¾‹ÀTã¥›Ä À˜nƒÀÊå?´Èv¾Ÿz@@u“VN @Év¾ŸkÀ/Ý$�À�•C‹lç¿9´Èv¾‹ÀHáz®G À�•C‹lç?ìQ¸…+>ÀìQ¸…+#@d;ßO�‡oÀþÔxé&1 À˜nƒÀÊå¿X9´ÈvƒŽÀþÔxé&1 À˜nƒÀÊå¿ìQ¸…+>ÀìQ¸…+#@d;ßO�‡oÀHáz®G @�•C‹lç¿X9´ÈvƒŽÀ¶óýÔxé@¬Zd;¯?ªñÒMbP8@ÁÊ¡E¶³'@ú~j¼t§lÀffffffÖ¿V-²�ïï?`åÐ"Û>ŒÀffffffÖ¿V-²�ïï?ªñÒMbP8@ÁÊ¡E¶³'@ú~j¼t§lÀ¶óýÔxéÀ¬Zd;¯¿`åÐ"Û>ŒÀZd;ßO@ /Ý$Ñ?ƒÀÊ¡Õ@ÀË¡E¶ó=-@…ëQ¸ lÀ5^ºI ý¿ +‡Ùî?yé&1ï‹À5^ºI ý¿ +‡Ùî?ƒÀÊ¡Õ@ÀË¡E¶ó=-@…ëQ¸ lÀZd;ßOÀ /Ý$Ñ¿yé&1ï‹ÀV-²�õ?Ãõ(\�Âí?J +‡ÖMÀ¾Ÿ/ݤ@-²�ï§lÀœÄ °rh À°rh‘í|×?…ëQ¸‰ŒÀœÄ °rh À°rh‘í|×?J +‡ÖMÀ¾Ÿ/ݤ@-²�ï§lÀV-²�õ¿Ãõ(\�Âí¿…ëQ¸‰ŒÀú~j¼tÀÉv¾Ÿ/é?ÓMbX¹F@1¬Zä+@`åÐ"ÛikÀ`åÐ"ÛyÀ-²�ï§Æã¿sh‘í|Û‹À`åÐ"ÛyÀ-²�ï§Æã¿ÓMbX¹F@1¬Zä+@`åÐ"ÛikÀú~j¼t@Év¾Ÿ/é¿sh‘í|Û‹Àü©ñÒMb@…ëQ¸í?š™™™™ÉI@q= ×£0%@¤p= ×/lÀÀåÐ"Ûù~Ú?ú~j¼t�ŒÀÀåÐ"Ûù~Ú?š™™™™ÉI@q= ×£0%@¤p= ×/lÀü©ñÒMbÀ…ëQ¸í¿ú~j¼t�ŒÀ+‡ÙNÀoƒÀÊ¡Å?“V�4À9´Èv¾_'@¤p= ×wlÀã¥›Ä °î¿Zd;ßO�ï¿Ház®ŒÀã¥›Ä °î¿Zd;ßO�ï¿“V�4À9´Èv¾_'@¤p= ×wlÀ+‡ÙN@oƒÀʡſHáz®ŒÀö(\�Âõ @Tã¥›Ä Ð?oƒÀÊ1D@/Ý$�@}?5^º™jÀ ×£p= ë¿`åÐ"Ûùî?NbX9lŠÀ ×£p= ë¿`åÐ"Ûùî?oƒÀÊ1D@/Ý$�@}?5^º™jÀö(\�Âõ ÀTã¥›Ä Ð¿NbX9lŠÀ¾Ÿ/Ý$Ö?×£p= ×ï?Ûù~j¼äB@+‡ÙÎw@�•C‹l{mÀJ +‡ Àé&1¬º?®Gáz%�ÀJ +‡ Àé&1¬º?Ûù~j¼äB@+‡ÙÎw@�•C‹l{mÀ¾Ÿ/Ý$Ö¿×£p= ×ï¿®Gáz%�À+‡ÙÎ÷Ó¿V-²�ïï?d;ßO�Ç@@¬Zd;Ÿ%@Ház®7nÀfffffæÀ¸…ëQ¸®¿q= ×£{�ÀfffffæÀ¸…ëQ¸®¿d;ßO�Ç@@¬Zd;Ÿ%@Ház®7nÀ+‡ÙÎ÷Ó?V-²�ïï¿q= ×£{�À¶óýÔxé@åÐ"Ûù~î?j¼t“(C@Év¾Ÿï-@Zd;ßÛmÀT㥛ĠÀ1¬ZdÓ?ÍÌÌÌÌd�ÀT㥛ĠÀ1¬ZdÓ?j¼t“(C@Év¾Ÿï-@Zd;ßÛmÀ¶óýÔxéÀåÐ"Ûù~î¿ÍÌÌÌÌd�À˜nƒÀJÀþÔxé&1È?+‡ÙÎC@J +‡V%@P�—nsoÀ‡ÙÎ÷Sï¿�•C‹lï¿]ŽÀ‡ÙÎ÷Sï¿�•C‹lï¿+‡ÙÎC@J +‡V%@P�—nsoÀ˜nƒÀJ@þÔxé&1È¿]ŽÀTã¥›Ä ä?-²�ï§Æï?¾Ÿ/Ý4DÀªñÒMb�&@J +‡âkÀh‘í|?µÀq= ×£p½?°rh‘íõ‹Àh‘í|?µÀq= ×£p½?¾Ÿ/Ý4DÀªñÒMb�&@J +‡âkÀTã¥›Ä ä¿-²�ï§Æï¿°rh‘íõ‹À= ×£p=ô¿ã¥›Ä °î?-²�ï§æIÀ¢E¶óýT!@w¾Ÿ/ÉmÀd;ßO�À“V-Ò¿×£p= e�Àd;ßO�À“V-Ò¿-²�ï§æIÀ¢E¶óýT!@w¾Ÿ/ÉmÀ= ×£p=ô?ã¥›Ä °î¿×£p= e�À¸…ëQ¸ð¿ +‡Ùî?R¸…ë±IÀî|?5^: @Ház®ÏnÀçû©ñÒMÀ /Ý$Ñ¿sh‘í|û�Àçû©ñÒMÀ /Ý$Ñ¿R¸…ë±IÀî|?5^: @Ház®ÏnÀ¸…ëQ¸ð? +‡Ùî¿sh‘í|û�À‡ÙÎ÷S @F¶óýÔxå?°rh‘íPÀyé&1l$@î|?5^ÆiÀ%�•C‹ ÀƒÀÊ¡E¶ç?‰A`åÐwŠÀ%�•C‹ ÀƒÀÊ¡E¶ç?°rh‘íPÀyé&1l$@î|?5^ÆiÀ‡ÙÎ÷S ÀF¶óýÔx忉A`åÐwŠÀ+‡ÙÎ÷@ƒÀÊ¡Eæ?-²�ïWF@R¸…ëQ@ö(\�ÂÑjÀffffffÀ`åÐ"Ûùæ??5^ºI'‹ÀffffffÀ`åÐ"Ûùæ?-²�ïWF@R¸…ëQ@ö(\�ÂÑjÀ+‡ÙÎ÷ÀƒÀÊ¡Eæ¿?5^ºI'‹À�Âõ(\�î?°rh‘í|ï?ÇK7‰A@:@ßO�—nR&@yé&1 lÀ-²�ï§FÀ-²�ï§Æ?¬Zd;ë‹À-²�ï§FÀ-²�ï§Æ?ÇK7‰A@:@ßO�—nR&@yé&1 lÀ�Âõ(\�î¿°rh‘í|↓Zd;ë‹Àu“Vå¿ÙÎ÷Sã¥ï?j¼t“8B@V-²!@ /Ý$¢nÀœÄ °rhÀßO�—nÿ/Ý$Ð�ÀœÄ °rhÀßO�—nÿj¼t“8B@V-²!@ /Ý$¢nÀu“Vå?ÙÎ÷Sã¥ï¿/Ý$Ð�ÀÏ÷S㥛ð?1¬Zdï?¬ZdL@ºI +&@Zd;ßO1lÀ�•C‹ìÀö(\�ÂõÈ?ã¥›Ä ³ŒÀ�•C‹ìÀö(\�ÂõÈ?¬ZdL@ºI +&@Zd;ßO1lÀÏ÷S㥛ð¿1¬Zdï¿ã¥›Ä ³ŒÀ1¬Zd@R¸…ëQä?q= ×£ð+ÀbX9´H,@ÙÎ÷Sã)oÀøS㥛ÄÀNbX9´è?+‡ÙTŽÀøS㥛ÄÀNbX9´è?q= ×£ð+ÀbX9´H,@ÙÎ÷Sã)oÀ1¬ZdÀR¸…ëQä¿+‡ÙTŽÀ-²�ï§F@ÁÊ¡E¶óá?ú~j¼tsOÀ+‡ÙÎ&@h‘í|?‘nÀÍÌÌÌÌÌÀåÐ"Ûù~ê?¶óýÔx ŽÀÍÌÌÌÌÌÀåÐ"Ûù~ê?ú~j¼tsOÀ+‡ÙÎ&@h‘í|?‘nÀ-²�ï§FÀÁÊ¡E¶óá¿¶óýÔx ŽÀßO�—n’À�•C‹lß?˜nƒÀjS@‹lçû©1'@Ãõ(\�ÖmÀ?5^ºI À¬Zd;ßë¿Ñ"Ûù~ŽÀ?5^ºI À¬Zd;ß뿘nƒÀjS@‹lçû©1'@Ãõ(\�ÖmÀßO�—n’@�•C‹lß¿Ñ"Ûù~ŽÀßO�—ný¿B`åÐ"Ûí?åÐ"ÛùG@Å °rhÑ$@ºI +¯lÀçû©ñÒÍÀ´Èv¾Ÿ׿ƒÀÊ¡EÕŒÀçû©ñÒÍÀ´Èv¾Ÿ׿åÐ"ÛùG@Å °rhÑ$@ºI +¯lÀßO�—ný?B`åÐ"Ûí¿ƒÀÊ¡EÕŒÀ +‡Ù@Ñ"Ûù~jì?¸…ëQØ0ÀÃõ(\�$@˜nƒÀoÀ333333À/Ý$�Ý?×£p= *ŽÀ333333À/Ý$�Ý?¸…ëQØ0ÀÃõ(\�$@˜nƒÀoÀ +‡ÙÀÑ"Ûù~jì¿×£p= *ŽÀ{®Gáz @^ºI +Ç?mçû©ñòI@ÙÎ÷Sã%@X9´ÈvÂjÀÃõ(\�Âå¿Ûù~j¼tï? /Ý$Y‹ÀÃõ(\�Âå¿Ûù~j¼tï?mçû©ñòI@ÙÎ÷Sã%@X9´ÈvÂjÀ{®Gáz À^ºI +Ç¿ /Ý$Y‹ÀƒÀÊ¡E¶ÿ?V-²�ë?À‹lçû©1 @ºI +?oÀªñÒMb ÀþÔxé&1à?oƒÀÊQŽÀªñÒMb ÀþÔxé&1à?À‹lçû©1 @ºI +?oÀƒÀÊ¡E¶ÿ¿V-²�ë¿oƒÀÊQŽÀÇK7‰A`@1¬Zdã?#Ûù~j CÀ�Âõ(\�&@\lÀåÐ"Ûù~ Àq= ×£pé?òÒMbXŒÀåÐ"Ûù~ Àq= ×£pé?#Ûù~j CÀ�Âõ(\�&@\lÀÇK7‰A`À1¬Zdã¿òÒMbXŒÀPÀð§ÆK7‰ù¿V-²í?–C‹lçÛ4@q= ×£°!@‹lçû©µkÀÍÌÌÌÌÌÀ¬Zd;ß׿+‡ÙÎV‹ÀÍÌÌÌÌÌÀ¬Zd;ß׿–C‹lçÛ4@q= ×£°!@‹lçû©µkÀð§ÆK7‰ù?V-²í¿+‡ÙÎV‹ÀÇK7‰A`@u“Vé?‡ÙÎ÷ÓJÀD‹lçûé @T㥛ÄPlÀ-²�ï§ À�•C‹lçã?w¾Ÿ/�ŒÀ-²�ï§ À�•C‹lçã?‡ÙÎ÷ÓJÀD‹lçûé @T㥛ÄPlÀÇK7‰A`Àu“Vé¿w¾Ÿ/�ŒÀTã¥›Ä À333333ë?‰A`åÐÂIÀÙÎ÷Sã¥-@˜nƒÀ‚mÀºI +‡À¢E¶óýÔà¿Å °rh=�ÀºI +‡À¢E¶óýÔ࿉A`åÐÂIÀÙÎ÷Sã¥-@˜nƒÀ‚mÀTã¥›Ä @333333ë¿Å °rh=�ÀÏ÷S㥛 @}?5^ºIÜ?¼t“nQ@%�•C !@+‡ÙNnÀ333333ý¿NbX9´ì?j¼t“.ŽÀ333333ý¿NbX9´ì?¼t“nQ@%�•C !@+‡ÙNnÀÏ÷S㥛 À}?5^ºIÜ¿j¼t“.ŽÀôýÔxé¦@ºI +‡Þ?áz®GF@×£p= ×,@œÄ °r8oÀV-² ÀTã¥›Ä ì?ÓMbXYŽÀV-² ÀTã¥›Ä ì?áz®GF@×£p= ×,@œÄ °r8oÀôýÔxé¦ÀºI +‡Þ¿ÓMbXYŽÀé&1¬Ú?×£p= ×ï?×£p= ÇLÀj¼t“D @oƒÀÊ=jÀôýÔxé¦À¢E¶óýÔ¸?²�ï§ÆÄŠÀôýÔxé¦À¢E¶óýÔ¸?×£p= ÇLÀj¼t“D @oƒÀÊ=jÀé&1¬Ú¿×£p= ×￲�ï§ÆÄŠÀZd;ßO�À\�Âõ(\ß?¬Zd;:@òÒMb"@L7‰A`•kÀ^ºI +À�•C‹lçë¿®Gázx‹À^ºI +À�•C‹lç뿬Zd;:@òÒMb"@L7‰A`•kÀZd;ßO�@\�Âõ(\ß¿®Gázx‹ÀÙÎ÷S㥛¿ð?‰A`åÐÒBÀ�—nƒ@%@ºI +CkÀ®Gáz”À{®Gázt¿ ×£p=[‹À®Gáz”À{®Gázt¿‰A`åÐÒBÀ�—nƒ@%@ºI +CkÀÙÎ÷S㥛?ð¿ ×£p=[‹À‡ÙÎ÷S@+‡ÙÎ÷Ã?ã¥›Ä �I@¼t“Ö@¬Zd÷lÀX9´Èv¾ã¿V-²�ï?P�—n�ÀX9´Èv¾ã¿V-²�ï?ã¥›Ä �I@¼t“Ö@¬Zd÷lÀ‡ÙÎ÷SÀ+‡ÙÎ÷ÿP�—n�À˜nƒÀÊ@¬Zd;ß?V-²5SÀ¸…ëQ8"@q= ×£0nÀ¬Zd;ÀV-²�ïë?P�—nŽÀ¬Zd;ÀV-²�ïë?V-²5SÀ¸…ëQ8"@q= ×£0nÀ˜nƒÀÊÀ¬Zd;ß¿P�—nŽÀ¦›Ä °r@yé&1¬¼?mçû©ñ"L@Ház®G)@5^ºI ^jÀ…ëQ¸å¿+‡ÙÎï?�•C‹lÉŠÀ…ëQ¸å¿+‡ÙÎï?mçû©ñ"L@Ház®G)@5^ºI ^jÀ¦›Ä °rÀyé&1¬¼¿�•C‹lÉŠÀ#Ûù~j¼Àçû©ñÒMÒ?®GázTAÀ'1¬ @%�•C_jÀ‹lçû©ñò¿-²�ï§î¿q= ×£?ŠÀ‹lçû©ñò¿-²�ï§î¿®GázTAÀ'1¬ @%�•C_jÀ#Ûù~j¼@çû©ñÒMÒ¿q= ×£?ŠÀP�—nƒÀj¼t“Ö?'1¬jD@mçû©ñR!@òÒMb¼jÀßO�—n÷¿?5^ºI î¿ÇK7‰AœŠÀßO�—n÷¿?5^ºI î¿'1¬jD@mçû©ñR!@òÒMb¼jÀP�—nƒ@j¼t“Ö¿ÇK7‰AœŠÀ‰A`åÐ"@-²�ï§Ö?ú~j¼tó8À-²�ï§+@Zd;ßOioÀ²�ï§ÆKÀìQ¸…ëí?ÇK7‰A‹ŽÀ²�ï§ÆKÀìQ¸…ëí?ú~j¼tó8À-²�ï§+@Zd;ßOioÀ‰A`åÐ"À-²�ï§Ö¿ÇK7‰A‹ŽÀÏ÷S㥛Àw¾Ÿ/Ýè?¦›Ä °"B@-²�ï§*@;ßO�—ŠjÀw¾Ÿ/ÝÀ)\�Âõ(ä¿oƒÀÊ6ŠÀw¾Ÿ/ÝÀ)\�Âõ(俦›Ä °"B@-²�ï§*@;ßO�—ŠjÀÏ÷S㥛@w¾Ÿ/Ýè¿oƒÀÊ6ŠÀ®Gáz.Àyé&1¬Ü?Év¾ŸÏK@�—nƒ%@Ý$�•�jÀ¬Zd;ÀÏ÷S㥛ì¿+‡ÙÎ;‹À¬Zd;ÀÏ÷S㥛ì¿Év¾ŸÏK@�—nƒ%@Ý$�•�jÀ®Gáz.@yé&1¬Ü¿+‡ÙÎ;‹Àq= ×£pé?/Ý$�•ï?�—nƒðDÀ?5^ºI $@h‘í|?QjÀôýÔxé&ÀË¡E¶óýÄ?5^ºI ^ŠÀôýÔxé&ÀË¡E¶óýÄ?�—nƒðDÀ?5^ºI $@h‘í|?QjÀq= ×£pé¿/Ý$�•ï¿5^ºI ^ŠÀÙÎ÷S㥠Àé&1¬ê?V-²�ïO@5^ºI Â'@Ï÷Sã¥ÓkÀJ +‡ÀåÐ"Ûù~â¿“V“ŒÀJ +‡ÀåÐ"Ûù~â¿V-²�ïO@5^ºI Â'@Ï÷Sã¥ÓkÀÙÎ÷S㥠@é&1¬ê¿“V“ŒÀ‰A`åÐ"@ú~j¼t“Ð?5^ºI *SÀ= ×£pý,@þÔxé&±nÀü¿¶óýÔxéî?¬Zd;KŽÀü¿¶óýÔxéî?5^ºI *SÀ= ×£pý,@þÔxé&±nÀ‰A`åÐ"Àú~j¼t“п¬Zd;KŽÀ…ëQ¸…û?åÐ"Ûù~î?ºI +I@¤p= ×c(@ôýÔxé>kÀ33333³À‡ÙÎ÷SÓ?ÙÎ÷SãÊ‹À33333³À‡ÙÎ÷SÓ?ºI +I@¤p= ×c(@ôýÔxé>kÀ…ëQ¸…û¿åÐ"Ûù~î¿ÙÎ÷SãÊ‹À33333³@ÙÎ÷Sã¥Ë?oƒÀÊLÀ¶óýÔx©!@`åÐ"ÛYnÀÅ °rh‘í¿¬Zd;ï?Ê�ÀÅ °rh‘í¿¬Zd;ï?oƒÀÊLÀ¶óýÔx©!@`åÐ"ÛYnÀ33333³ÀÙÎ÷Sã¥Ë¿Ê�ÀbX9´È@;ßO�—nÚ?sh‘í|¿NÀžï§ÆK÷ @V-²�3oÀ +‡Ùü¿ôýÔxé&í?�•C‹ZŽÀ +‡Ùü¿ôýÔxé&í?sh‘í|¿NÀžï§ÆK÷ @V-²�3oÀbX9´ÈÀ;ßO�—nÚ¿�•C‹ZŽÀX9´Èv¾ñ?‹lçû©ñî?°rh‘íÌI@ÙÎ÷Sãå @é&1¬jÀçû©ñÒÍÀR¸…ëQÐ?Õxé&1ŠÀçû©ñÒÍÀR¸…ëQÐ?°rh‘íÌI@ÙÎ÷Sãå @é&1¬jÀX9´Èv¾ñ¿‹lçû©ñî¿Õxé&1ŠÀÅ °rh‘@þÔxé&1ì?×£p= ×HÀT㥛Ä`%@R¸…ëikÀX9´Èv>ÀƒÀÊ¡EÞ?9´Èv¾Î‹ÀX9´Èv>ÀƒÀÊ¡EÞ?×£p= ×HÀT㥛Ä`%@R¸…ëikÀÅ °rh‘ÀþÔxé&1ì¿9´Èv¾Î‹À¼t“Vð¿�•C‹lï?ö(\�ÂíVÀ;ßO�—n&@L7‰A`…nÀ¼t“VÀªñÒMbÈ¿…ëQ¸vŽÀ¼t“VÀªñÒMbÈ¿ö(\�ÂíVÀ;ßO�—n&@L7‰A`…nÀ¼t“Vð?�•C‹lï¿…ëQ¸vŽÀáz®Gáú¿žï§ÆK7í?°rh‘íœ@À-²�ï§!@Ý$�•‡lÀé&1¬À?5^ºI Ú¿V-cŒÀé&1¬À?5^ºI Ú¿°rh‘íœ@À-²�ï§!@Ý$�•‡lÀáz®Gáú?žï§ÆK7í¿V-cŒÀ‹lçû©ñÀÑ"Ûù~jÌ?�—nƒ`DÀP�—nƒ,@d;ßO�ïlÀÙÎ÷Sã¥÷¿333333ï¿7‰A`弌ÀÙÎ÷Sã¥÷¿333333ï¿�—nƒ`DÀP�—nƒ,@d;ßO�ïlÀ‹lçû©ñ@Ñ"Ûù~jÌ¿7‰A`弌Àw¾Ÿ/Ý@´Èv¾Ÿã?Å °rh7@‘í|?5Þ#@NbX9plÀ`åÐ"ÛùÀD‹lçû©é?Zd;ߌÀ`åÐ"ÛùÀD‹lçû©é?Å °rh7@‘í|?5Þ#@NbX9plÀw¾Ÿ/ÝÀ´Èv¾Ÿã¿Zd;ߌÀôýÔxé¦@B`åÐ"ÛÑ?š™™™™y:À#Ûù~j¼-@w¾Ÿ/½jÀ!°rh‘íþ¿¸…ëQ¸î?L7‰A`HŠÀ!°rh‘íþ¿¸…ëQ¸î?š™™™™y:À#Ûù~j¼-@w¾Ÿ/½jÀôýÔxé¦ÀB`åÐ"ÛÑ¿L7‰A`HŠÀÑ"Ûù~jú?“V-î?bX9´X@@X9´Èv$@Zd;ß�nÀÉv¾Ÿ¯ÀZd;ßOÕ?`åÐ"Û¨�ÀÉv¾Ÿ¯ÀZd;ßOÕ?bX9´X@@X9´Èv$@Zd;ß�nÀÑ"Ûù~jú¿“V-î¿`åÐ"Û¨�ÀD‹lçû©ÀÃõ(\�Âé?ƒÀÊ¡EÖ6Àq= ×£p$@L7‰A`IoÀV-²À5^ºI ã¿Év¾ŸfŽÀV-²À5^ºI 㿃ÀÊ¡EÖ6Àq= ×£p$@L7‰A`IoÀD‹lçû©@Ãõ(\�Âé¿Év¾ŸfŽÀV-²Àð§ÆK7‰Á?%�•C‹@ÀoƒÀÊá"@7‰A`åìkÀ促ÀÊ¡E¶ï¿åÐ"ÛùË‹À促ÀÊ¡E¶ï¿%�•C‹@ÀoƒÀÊá"@7‰A`åìkÀV-²@ð§ÆK7‰Á¿åÐ"ÛùË‹ÀZd;ßO� @9´Èv¾Ÿâ?Ház®ÇL@sh‘í|¿@Ý$�•‹nÀ5^ºI Àj¼t“ê?B`åÐ"ŽÀ5^ºI Àj¼t“ê?Ház®ÇL@sh‘í|¿@Ý$�•‹nÀZd;ßO� À9´Èv¾Ÿâ¿B`åÐ"ŽÀ'1¬ÚÀ¸…ëQ¸¾?¶óýÔxA@ºI +‡!@ªñÒMb(lÀR¸…ëQà¿-²�ï§Æï¿“V3ŒÀR¸…ëQà¿-²�ï§Æï¿¶óýÔxA@ºI +‡!@ªñÒMb(lÀ'1¬Ú@¸…ëQ¸¾¿“V3ŒÀ²�ï§ÆKÀÃõ(\�Âå?NbX9ÔA@‘í|?5!@33333ûjÀZd;ßO�ÀÛù~j¼t翬Zd;ÒŠÀZd;ßO�ÀÛù~j¼tç¿NbX9ÔA@‘í|?5!@33333ûjÀ²�ï§ÆK@Ãõ(\�Â忬Zd;ÒŠÀ¸…ëQ¸ À`åÐ"Ûùê?/Ý$1QÀÏ÷S㥛)@…ëQ¸:mÀ¾Ÿ/Ý$Àžï§ÆK7á¿�Âõ(\`�À¾Ÿ/Ý$Àžï§ÆK7á¿/Ý$1QÀÏ÷S㥛)@…ëQ¸:mÀ¸…ëQ¸ @`åÐ"Ûùê¿�Âõ(\`�À®Gáz@J +‡é?mçû©ñ¢B@²�ï§Æ $@V-FkÀÛù~j¼tÀ×£p= ×ã?ÙÎ÷S�‹ÀÛù~j¼tÀ×£p= ×ã?mçû©ñ¢B@²�ï§Æ $@V-FkÀ®GázÀJ +‡é¿ÙÎ÷S�‹ÀÀƒÀÊ¡EÞ?¤p= ×3L@u“VŽ @‰A`åЦkÀTã¥›Ä ÀþÔxé&1ì¿ü©ñÒMSŒÀTã¥›Ä ÀþÔxé&1쿤p= ×3L@u“VŽ @‰A`åЦkÀ@ƒÀÊ¡EÞ¿ü©ñÒMSŒÀßO�—nñ? ×£p= ï?×£p= Q@®Gáz."@–C‹lçÇnÀ®GázÀ`åÐ"ÛùÎ?ôýÔxélŽÀ®GázÀ`åÐ"ÛùÎ?×£p= Q@®Gáz."@–C‹lçÇnÀßO�—nñ¿ ×£p= ï¿ôýÔxélŽÀ–C‹lçû@h‘í|?5æ?+‡ÙÎ'HÀT㥛Ġ@çû©ñÒ lÀ}?5^ºIÀ ×£p= ç?áz®GAŒÀ}?5^ºIÀ ×£p= ç?+‡ÙÎ'HÀT㥛Ġ@çû©ñÒ lÀ–C‹lçûÀh‘í|?5æ¿áz®GAŒÀ~èºI +‡À?5^ºI æ?ú~j¼tãI@/Ý$Á @V-²�«pÀ'1¬ZÀ333333ç¿é&1¬�À'1¬ZÀ333333ç¿ú~j¼tãI@/Ý$Á @V-²�«pÀºI +‡@?5^ºI æ¿é&1¬�À‹lçû©ñâ¿…ëQ¸…ï?œÄ °rˆTÀ²�ï§ÆK@òÒMb¾pÀoƒÀÊ¡ ÀffffffÆ¿–C‹lg �ÀoƒÀÊ¡ ÀffffffÆ¿œÄ °rˆTÀ²�ï§ÆK@òÒMb¾pÀ‹lçû©ñâ?…ëQ¸…ï¿–C‹lg �Àsh‘í|?é?/Ý$�•ï?œÄ °rxG@V-²]%@é&1¬BqÀã¥›Ä °ÀÓMbX9Ä?-²�ï'w�Àã¥›Ä °ÀÓMbX9Ä?œÄ °rxG@V-²]%@é&1¬BqÀsh‘í|?é¿/Ý$�•ï¿-²�ï'w�À333333 À¸…ëQ¸æ?ã¥›Ä ð4ÀÑ"Ûù~j%@yé&1špÀX9´Èv ÀºI +‡æ¿š™™™!�ÀX9´Èv ÀºI +‡æ¿ã¥›Ä ð4ÀÑ"Ûù~j%@yé&1špÀ333333 @¸…ëQ¸æ¿š™™™!�ÀJ +‡À;ßO�—nî?-²�ïR@–C‹lç»+@j¼t“ÐoÀ´Èv¾ŸšÀ�•C‹lçÓ¿�—nƒL�À´Èv¾ŸšÀ�•C‹lçÓ¿-²�ïR@–C‹lç»+@j¼t“ÐoÀJ +‡@;ßO�—nî¿�—nƒL�ÀB`åÐ"Û@–C‹lçûÙ?ƒÀÊ¡…!ÀV-r(@‘í|?5ÀpÀP�—nƒÀsh‘í|?í?#Ûù~ê*�ÀP�—nƒÀsh‘í|?í?ƒÀÊ¡…!ÀV-r(@‘í|?5ÀpÀB`åÐ"ÛÀ–C‹lçûÙ¿#Ûù~ê*�ÀÏ÷S㥛Àh‘í|?5â?Zd;ßOMI@%�•C‹@u“VÚqÀÙÎ÷Sãý¿¼t“Vê¿;ßO�‘ÀÙÎ÷Sãý¿¼t“Vê¿Zd;ßOMI@%�•C‹@u“VÚqÀÏ÷S㥛@h‘í|?5â¿;ßO�‘ÀB`åÐ"Û@Tã¥›Ä à?X9´Èv⿘nƒÀŠ&@ƒÀÊ¡gqÀÀÙÎ÷Sã¥ë?-²�ož�ÀÀÙÎ÷Sã¥ë?X9´Èv⿘nƒÀŠ&@ƒÀÊ¡gqÀB`åÐ"ÛÀTã¥›Ä à¿-²�ož�Àmçû©ñÒÀX9´Èv¾ã?!°rh‘TÀh‘í|?µ-@ö(\�ÂkpÀ´Èv¾ŸÀÉv¾Ÿ/é¿#Ûù~j¨�À´Èv¾ŸÀÉv¾Ÿ/é¿!°rh‘TÀh‘í|?µ-@ö(\�ÂkpÀmçû©ñÒ@X9´Èv¾ã¿#Ûù~j¨�À…ëQ¸…@ºI +‡ê? +‡"À#Ûù~j¼@1¬Z6pÀP�—nƒÀÙÎ÷Sãá?ÓMbXj�ÀP�—nƒÀÙÎ÷Sãá? +‡"À#Ûù~j¼@1¬Z6pÀ…ëQ¸…ÀºI +‡ê¿ÓMbXj�À#Ûù~j¼@ /Ý$å?ö(\�Â�R@V-²�ï @‡ÙÎ÷ßpÀ%�•C‹ÀTã¥›Ä è?é&1¬z�À%�•C‹ÀTã¥›Ä è?ö(\�Â�R@V-²�ï @‡ÙÎ÷ßpÀ#Ûù~j¼À /Ý$å¿é&1¬z�À�•C‹lç@˜nƒÀÊÑ?oƒÀÊaI@ßO�—nR$@‹lçû©OrÀÙÎ÷Sãõ¿�—nƒÀî?5^ºI |‘ÀÙÎ÷Sãõ¿�—nƒÀî?oƒÀÊaI@ßO�—nR$@‹lçû©OrÀ�•C‹lçÀ˜nƒÀÊÑ¿5^ºI |‘ÀåÐ"Ûù~À¨ÆK7‰Aä?–C‹lçKG@J +‡–)@ªñÒMbpÀžï§ÆK7ÀÍÌÌÌÌÌè¿ /Ý$�Àžï§ÆK7ÀÍÌÌÌÌÌè¿–C‹lçKG@J +‡–)@ªñÒMbpÀåÐ"Ûù~@¨ÆK7‰Aä¿ /Ý$�À°rh‘í|Àq= ×£pí?1¬Z4C@= ×£p½%@\�Âõ(~rÀ¬Zd;_ÀJ +‡Ù¿#Ûù~jz‘À¬Zd;_ÀJ +‡Ù¿1¬Z4C@= ×£p½%@\�Âõ(~rÀ°rh‘í|@q= ×£pí¿#Ûù~jz‘À¶óýÔxé@;ßO�—n’?F¶óýÔðP@žï§ÆKw!@Ý$�•ÓqÀ+‡ÙÎ÷³¿ð?%�•C?‘À+‡ÙÎ÷³¿ð?F¶óýÔðP@žï§ÆKw!@Ý$�•ÓqÀ¶óýÔxéÀ;ßO�—n’¿%�•C?‘À#Ûù~j<@œÄ °rhá?î|?5^úRÀ�Âõ(\�(@¾Ÿ/Ý€oÀV-²�ïÀ +‡Ùê?ð§ÆK7¿ŽÀV-²�ïÀ +‡Ùê?î|?5^úRÀ�Âõ(\�(@¾Ÿ/Ý€oÀ#Ûù~j<ÀœÄ °rhá¿ð§ÆK7¿ŽÀh‘í|?µ@d;ßO�—Ö?+‡Ùη;ÀÙÎ÷Sã¥$@h‘í|?ÛpÀ= ×£p=ü¿ÁÊ¡E¶óí?Zd;ßOY�À= ×£p=ü¿ÁÊ¡E¶óí?+‡Ùη;ÀÙÎ÷Sã¥$@h‘í|?ÛpÀh‘í|?µÀd;ßO�—Ö¿Zd;ßOY�ÀòÒMbXÉ?+‡ÙÎ÷ï?ÓMbX¹@¬Zd;Ÿ'@ƒÀÊ¡EFqÀw¾Ÿ/ÝÀìQ¸…ë¡?J +n�Àw¾Ÿ/ÝÀìQ¸…ë¡?ÓMbX¹@¬Zd;Ÿ'@ƒÀÊ¡EFqÀòÒMbXÉ¿+‡ÙÎ÷ï¿J +n�À¨ÆK7‰A @;ßO�—næ?ªñÒMb俬Zd{$@Ãõ(\�ÞpÀ7‰A`åÐ À7‰A`åÐæ?T㥛D.�À7‰A`åÐ À7‰A`åÐæ?ªñÒMb俬Zd{$@Ãõ(\�ÞpÀ¨ÆK7‰A À;ßO�—næ¿T㥛D.�ÀÉv¾Ÿ/á¿×£p= ×ï?¢E¶óýœXÀbX9´H'@ü©ñÒM¼pÀ¦›Ä °rÀR¸…ëQ¸¿�•C k�À¦›Ä °rÀR¸…ëQ¸¿¢E¶óýœXÀbX9´H'@ü©ñÒM¼pÀÉv¾Ÿ/á?×£p= ×ï¿�•C k�À?5^ºI Àmçû©ñÒÍ?^ºI CXÀð§ÆK7 @fffffÞpÀ+‡ÙÎ뿉A`åÐ"ᅳ™™™��À+‡ÙÎ뿉A`åÐ"ï¿^ºI CXÀð§ÆK7 @fffffÞpÀ?5^ºI @mçû©ñÒÍ¿š™™™��À¬Zd;_À333333Ã?�•C‹lgKÀD‹lçûi*@oƒÀÊrÀD‹lçû©í¿ÙÎ÷Sã¥ï¿Å °rh,‘ÀD‹lçû©í¿ÙÎ÷Sã¥ï¿�•C‹lgKÀD‹lçûi*@oƒÀÊrÀ¬Zd;_@333333ÿаrh,‘ÀªñÒMb À^ºI +ß?= ×£pÝ:À×£p= — @pÀZd;ßOÿ¿V-²�ïë¿ÇK7‰A9�ÀZd;ßOÿ¿V-²�ïë¿= ×£pÝ:À×£p= — @pÀªñÒMb @^ºI +ß¿ÇK7‰A9�À!°rh‘í@×£p= ×ë?òÒMbØ@ôýÔxéæ%@Zd;ß_qÀ¦›Ä °rÀZd;ßO�ß?�•C‹ì��À¦›Ä °rÀZd;ßO�ß?òÒMbØ@ôýÔxéæ%@Zd;ß_qÀ!°rh‘íÀ×£p= ×ë¿�•C‹ì��ÀHáz®G@= ×£p=Ê?/Ý$A)ÀNbX9t&@¨ÆK7‰/rÀ×£p= ×ñ¿‡ÙÎ÷Sï?Zd;ßÏK‘À×£p= ×ñ¿‡ÙÎ÷Sï?/Ý$A)ÀNbX9t&@¨ÆK7‰/rÀHáz®GÀ= ×£p=Ê¿Zd;ßÏK‘ÀÑ"Ûù~êÀw¾Ÿ/Ýà?V-²�F@š™™™™Ù'@¬Zd;yqÀF¶óýÔxÀ333333ë¿ú~j¼ôš�ÀF¶óýÔxÀ333333ë¿V-²�F@š™™™™Ù'@¬Zd;yqÀÑ"Ûù~ê@w¾Ÿ/Ýà¿ú~j¼ôš�À ×£p= ÿ?F¶óýÔxí?åÐ"Ûùþ@¬Zd;_%@ªñÒMbØpÀÇK7‰A`ÀL7‰A`åØ?Õxé&1�ÀÇK7‰A`ÀL7‰A`åØ?åÐ"Ûùþ@¬Zd;_%@ªñÒMbØpÀ ×£p= ÿ¿F¶óýÔxí¿Õxé&1�À/Ý$�õ?ð§ÆK7‰í?Ë¡E¶ó}&Àî|?5^:@`åÐ"ÛpÀw¾Ÿ/Ý Àú~j¼t“Ø?ƒÀÊ¡ �Àw¾Ÿ/Ý Àú~j¼t“Ø?Ë¡E¶ó}&Àî|?5^:@`åÐ"ÛpÀ/Ý$�õ¿ð§ÆK7‰í¿ƒÀÊ¡ �ÀÙÎ÷Sc@= ×£p=Ê?‘í|?5~3ÀNbX9t$@J +‡dqÀ¨ÆK7‰Að¿‡ÙÎ÷Sï?²�ï§ÆÊ�À¨ÆK7‰Að¿‡ÙÎ÷Sï?‘í|?5~3ÀNbX9t$@J +‡dqÀÙÎ÷ScÀ= ×£p=Ê¿²�ï§ÆÊ�À“V-ò¿ffffffî?�Âõ(\'R@X9´Èv>@œÄ °rZpÀd;ßO�— ÀÕxé&1Ô¿®Gáú�Àd;ßO�— ÀÕxé&1Ô¿�Âõ(\'R@X9´Èv>@œÄ °rZpÀ“V-ò?ffffffî¿®Gáú�À}?5^ºIÀÃõ(\�Âå?ÙÎ÷SãµN@j¼t“!@L7‰A`'rÀP�—nƒÀÛù~j¼tç¿î|?5Þ|‘ÀP�—nƒÀÛù~j¼tç¿ÙÎ÷SãµN@j¼t“!@L7‰A`'rÀ}?5^ºI@Ãõ(\�Âå¿î|?5Þ|‘ÀJ +‡Ù?V-²�ïï?Zd;ßO K@Å °rh*@X9´ÈrÀHáz®GÀ¤p= ×£°?¬Zd»;‘ÀHáz®GÀ¤p= ×£°?Zd;ßO K@Å °rh*@X9´ÈrÀJ +‡Ù¿V-²�ï↓Zd»;‘À ×£p= ÿ¿áz®Gáê?¶óýÔxI8À+‡ÙÎ@-²�ï§žqÀ /Ý$ÀÇK7‰A`á¿/Ý$ë�À /Ý$ÀÇK7‰A`á¿¶óýÔxI8À+‡ÙÎ@-²�ï§žqÀ ×£p= ÿ?áz®Gáê¿/Ý$ë�À`åÐ"Ûùâ?®Gáz®ï?Ï÷Sã¥[L@òÒMb!@®Gáz˜qÀü©ñÒMbÀçû©ñÒMÂ?sh‘íüÛ�Àü©ñÒMbÀçû©ñÒMÂ?Ï÷Sã¥[L@òÒMb!@®Gáz˜qÀ`åÐ"Ûùâ¿®Gáz®ï¿sh‘íüÛ�ÀB`åÐ"Û@²�ï§ÆKß?–C‹lç[>À‹lçû©1!@= ×£ppÀ²�ï§ÆKÀ�•C‹lçë?+‡ÙÎR�À²�ï§ÆKÀ�•C‹lçë?–C‹lç[>À‹lçû©1!@= ×£ppÀB`åÐ"ÛÀ²�ï§ÆKß¿+‡ÙÎR�Àh‘í|?5ÀNbX9´ä?çû©ñÒM @9´Èv¾%@‹lçû©GpÀÛù~j¼t ÀÑ"Ûù~jè¿ôýÔxé8�ÀÛù~j¼t ÀÑ"Ûù~jè¿çû©ñÒM @9´Èv¾%@‹lçû©GpÀh‘í|?5@NbX9´ä¿ôýÔxé8�Àö(\�Âõ @\�Âõ(\ß?ìQ¸…«5ÀÙÎ÷Sã%!@�•C‹~pÀ¨ÆK7‰AÀ�•C‹lçë?Ház®�À¨ÆK7‰AÀ�•C‹lçë?ìQ¸…«5ÀÙÎ÷Sã%!@�•C‹~pÀö(\�Âõ À\�Âõ(\ß¿Ház®�ÀþÔxé&1ð?Ý$�•Cï?´Èv¾ŸÀ…ëQ¸…#@5^ºI BqÀX9´ÈvÀ1¬ZdË?®Gáz”Ž�ÀX9´ÈvÀ1¬ZdË?´Èv¾ŸÀ…ëQ¸…#@5^ºI BqÀþÔxé&1ð¿Ý$�•Cï¿®Gáz”Ž�ÀôýÔxé&ý¿ÙÎ÷Sãí?�—nƒÀ3Àd;ßO�%@mçû©ñqÀ/Ý$�À +‡ÙÖ¿ƒÀÊ¡ž�À/Ý$�À +‡ÙÖ¿�—nƒÀ3Àd;ßO�%@mçû©ñqÀôýÔxé&ý?ÙÎ÷Sãí¿ƒÀÊ¡ž�À1¬ZdÀj¼t“ê?= ×£pmF@ÙÎ÷Sã¥%@B`åÐ")qÀZd;ßO À9´Èv¾Ÿâ¿NbX¹Y�ÀZd;ßO À9´Èv¾Ÿâ¿= ×£pmF@ÙÎ÷Sã¥%@B`åÐ")qÀ1¬Zd@j¼t“ê¿NbX¹Y�Àw¾Ÿ/]@¼t“VÎ?¬Zd[EÀ9´Èv¾_ @1¬ZqÀ�•C‹lçï¿´Èv¾Ÿï?åÐ"ÛyZ�À�•C‹lçï¿´Èv¾Ÿï?¬Zd[EÀ9´Èv¾_ @1¬ZqÀw¾Ÿ/]À¼t“VοåÐ"ÛyZ�ÀÃõ(\� @= ×£p=â?w¾Ÿ/Ýþ¿¦›Ä °r!@9´Èv¾³pÀƒÀÊ¡EÀƒÀÊ¡Eê??5^ºI �ÀƒÀÊ¡EÀƒÀÊ¡Eê?w¾Ÿ/Ýþ¿¦›Ä °r!@9´Èv¾³pÀÃõ(\� À= ×£p=â¿?5^ºI �Àyé&1¬œ¿ð?J +‡fTÀ+‡ÙÎ÷#@#Ûù~j pÀ¼t“VÀú~j¼t“x¿oƒÀÊ8�À¼t“VÀú~j¼t“x¿J +‡fTÀ+‡ÙÎ÷#@#Ûù~j pÀyé&1¬œ?ð¿oƒÀÊ8�ÀƒÀÊ¡E¶ã¿X9´Èv¾ï?ÓMbX¡XÀÙÎ÷Sã#@ÙÎ÷SqÀ´Èv¾ŸÀü©ñÒMbÀ¿9´Èv¾Ï�À´Èv¾ŸÀü©ñÒMbÀ¿ÓMbX¡XÀÙÎ÷Sã#@ÙÎ÷SqÀƒÀÊ¡E¶ã?X9´Èv¾ï¿9´Èv¾Ï�À!°rh‘íò¿‡ÙÎ÷Sï?h‘í|?5Þ¿°rh‘í¼(@‹lçû©±qÀš™™™™™À= ×£p=Ê¿ü©ñÒMÐ�Àš™™™™™À= ×£p=Ê¿h‘í|?5Þ¿°rh‘í¼(@‹lçû©±qÀ!°rh‘íò?‡ÙÎ÷Sï¿ü©ñÒMÐ�ÀHáz®G@Tã¥›Ä °?{®GáG@åÐ"Ûù~@j¼t“pÀX9´ÈvοV-²�ïï?žï§ÆKïŽÀX9´ÈvοV-²�ïï?{®GáG@åÐ"Ûù~@j¼t“pÀHáz®GÀTã¥›Ä °¿žï§ÆKïŽÀÕxé&1ˆÀ#Ûù~j¼Ô?#Ûù~jü<À�—nƒ@'@¤p= ×+pÀTã¥›Ä ü¿ƒÀÊ¡Eî¿�•C‹x�ÀTã¥›Ä ü¿ƒÀÊ¡Eî¿#Ûù~jü<À�—nƒ@'@¤p= ×+pÀÕxé&1ˆ@#Ûù~j¼Ô¿�•C‹x�À×£p= ×û¿9´Èv¾Ÿî?F¶óýÔØJ@?5^ºIÌ)@é&1¬èpÀZd;ßO ÀåÐ"Ûù~Ò¿åÐ"ÛyE�ÀZd;ßO ÀåÐ"Ûù~Ò¿F¶óýÔØJ@?5^ºIÌ)@é&1¬èpÀ×£p= ×û?9´Èv¾Ÿî¿åÐ"ÛyE�À¬Zd;ß@¤p= ×£à?Zd;ßOM7ÀºI +@Ý$�•YpÀmçû©ñÒû¿‡ÙÎ÷Së? /Ý$Ô�Àmçû©ñÒû¿‡ÙÎ÷Së?Zd;ßOM7ÀºI +@Ý$�•YpÀ¬Zd;ßÀ¤p= ף࿠/Ý$Ô�Àw¾Ÿ/]@-²�ï§Ö?¬ZdƒXÀoƒÀÊa%@1¬ZVpÀòÒMbXý¿ìQ¸…ëí?¬Zd�ÀòÒMbXý¿ìQ¸…ëí?¬ZdƒXÀoƒÀÊa%@1¬ZVpÀw¾Ÿ/]À-²�ï§Ö¿¬Zd�À}?5^ºIÀX9´Èvâ?Év¾ŸON@¬Zdû'@`åÐ"ÛApÀ7‰A`åÐ À¾Ÿ/Ý$ê¿Ñ"Ûù~“�À7‰A`åÐ À¾Ÿ/Ý$ê¿Év¾ŸON@¬Zdû'@`åÐ"ÛApÀ}?5^ºI@X9´Èvâ¿Ñ"Ûù~“�ÀÏ÷S㥛 ÀªñÒMbä?;ßO�—n @´Èv¾Ÿš @ +‡qÀÑ"Ûù~jÀ!°rh‘íè¿Év¾ŸšJ�ÀÑ"Ûù~jÀ!°rh‘íè¿;ßO�—n @´Èv¾Ÿš @ +‡qÀÏ÷S㥛 @ªñÒMbä¿Év¾ŸšJ�À9´Èv¾Ÿ ÀÇK7‰A`é?þÔxé&WÀÑ"Ûù~j'@ /Ý$ pÀ–C‹lçûÀ°rh‘í|ã¿u“Vl�À–C‹lçûÀ°rh‘í|ã¿þÔxé&WÀÑ"Ûù~j'@ /Ý$ pÀ9´Èv¾Ÿ @ÇK7‰A`é¿u“Vl�Àáz®Gá@yé&1¬ì?V-²�O7Àj¼t“(@ÙÎ÷SíqÀd;ßO�ÀÑ"Ûù~jÜ?ÁÊ¡E6‘Àd;ßO�ÀÑ"Ûù~jÜ?V-²�O7Àj¼t“(@ÙÎ÷SíqÀáz®GáÀyé&1¬ì¿ÁÊ¡E6‘Àè?‡ÙÎ÷Sï?V-BZÀ^ºI «@sh‘í|oÀ¬Zd;ß Àé&1¬Ê?ƒÀÊ¡#�À¬Zd;ß Àé&1¬Ê?V-BZÀ^ºI «@sh‘í|oÀ过ÙÎ÷SᅢÀÊ¡#�À333333ó¿Å °rh‘í?D‹lçû)G@w¾Ÿ/]@5^ºI ZrÀôýÔxé&ÀP�—nƒØ¿é&1¬r‘ÀôýÔxé&ÀP�—nƒØ¿D‹lçû)G@w¾Ÿ/]@5^ºI ZrÀ333333ó?Å °rh‘í¿é&1¬r‘À'1¬Ú@ªñÒMbà?#Ûù~j¼Q@¬Zd;$@øS㥛xpÀú~j¼t“À®Gáz®ë?V-�Àú~j¼t“À®Gáz®ë?#Ûù~j¼Q@¬Zd;$@øS㥛xpÀ'1¬ÚÀªñÒMbà¿V-�ÀþÔxé&1 ÀòÒMbXá?ú~j¼t“1ÀªñÒMbP!@/Ý$eoÀ)\�Âõ(À¶óýÔxéê¿×£p= �ŽÀ)\�Âõ(À¶óýÔxéê¿ú~j¼t“1ÀªñÒMbP!@/Ý$eoÀþÔxé&1 @òÒMbXá¿×£p= �ŽÀôýÔxé&Ù¿×£p= ×ï?T㥛Ä@E@ÙÎ÷Sã@‰A`åÐrÀú~j¼t“Àé&1¬º¿V­$‘Àú~j¼t“Àé&1¬º¿T㥛Ä@E@ÙÎ÷Sã@‰A`åÐrÀôýÔxé&Ù?×£p= ×ï¿V­$‘ÀÙÎ÷Sãý?®Gázî?ôýÔxé†S@'1¬š&@ ×£p=¸pÀßO�—n’Àmçû©ñÒÕ?ffffæh�ÀßO�—n’Àmçû©ñÒÕ?ôýÔxé†S@'1¬š&@ ×£p=¸pÀÙÎ÷Sãý¿®Gázî¿ffffæh�ÀÍÌÌÌÌÌ@¢E¶óýÔÐ?oƒÀÊiVÀþÔxé&1%@-²�ï½pÀ/Ý$�•õ¿áz®Gáî?‰A`åP>�À/Ý$�•õ¿áz®Gáî?oƒÀÊiVÀþÔxé&1%@-²�ï½pÀÍÌÌÌÌÌÀ¢E¶óýÔп‰A`åP>�ÀV-²@ú~j¼t“Ø?= ×£p}/ÀD‹lçû)!@X9´ÈFqÀð§ÆK7‰ù¿ð§ÆK7‰í?¬Zd»¶�Àð§ÆK7‰ù¿ð§ÆK7‰í?= ×£p}/ÀD‹lçû)!@X9´ÈFqÀV-²Àú~j¼t“Ø¿¬Zd»¶�ÀV-² À¶óýÔxéÖ?…ëQ¸žK@ÇK7‰Aà@NbX9`oÀö¿ÙÎ÷Sãí¿‰A`åКŽÀö¿ÙÎ÷Sãí¿…ëQ¸žK@ÇK7‰Aà@NbX9`oÀV-² @¶óýÔxéÖ¿‰A`åКŽÀjøÍÌÌÌÌL@ƒÀÊ¡E¶³?j¼t“ @…ëQ¸Þ @¼t“ŒqÀZd;ßOÕ¿�•C‹lçï?^ºI ‚©�ÀZd;ßOÕ¿�•C‹lçï?j¼t“ @…ëQ¸Þ @¼t“ŒqÀÍÌÌÌÌLÀƒÀÊ¡E¶³¿^ºI ‚©�À}?5^ºIÀX9´Èvæ?…ëQ¸NÀ'1¬š!@¬Zd;rÀìQ¸…ëÀbX9´Èæ¿D‹lçû€‘ÀìQ¸…ëÀbX9´Èæ¿…ëQ¸NÀ'1¬š!@¬Zd;rÀ}?5^ºI@X9´Èvæ¿D‹lçû€‘ÀX9´Èv¾ë¿‡ÙÎ÷Sï?mçû©ñ’Q@P�—nƒ @ ×£p=ÄpÀ9´Èv¾ŸÀé&1¬Ê¿`åÐ"Û\�À9´Èv¾ŸÀé&1¬Ê¿mçû©ñ’Q@P�—nƒ @ ×£p=ÄpÀX9´Èv¾ë?‡ÙÎ÷Sï¿`åÐ"Û\�Àü©ñÒMbÀ}?5^ºIà?¦›Ä °2PÀìQ¸…k@¦›Ä ° rÀ®Gáz®û¿Zd;ßO�ë¿ÙÎ÷ÓU‘À®Gáz®û¿Zd;ßO�뿦›Ä °2PÀìQ¸…k@¦›Ä ° rÀü©ñÒMb@}?5^ºIà¿ÙÎ÷ÓU‘À¬Zd;ÀHáz®Gí?¬Zd;×PÀš™™™™Y'@#Ûù~jrÀV-²À˜nƒÀÊÙ¿R¸…ko‘ÀV-²À˜nƒÀÊÙ¿¬Zd;×PÀš™™™™Y'@#Ûù~jrÀ¬Zd;@Ház®Gí¿R¸…ko‘Àð§ÆK7‰ Àú~j¼t“¸?�•C‹LEÀ�•C‹ì@sh‘í|åpÀ%�•C‹Ô¿×£p= ×ï¿mçû©ñ/�À%�•C‹Ô¿×£p= ×ï¿�•C‹LEÀ�•C‹ì@sh‘í|åpÀð§ÆK7‰ @ú~j¼t“¸¿mçû©ñ/�ÀÏ÷Sã¥@Zd;ßO�ß?+‡ÙÎ5À…ëQ¸#@)\�Âõ˜oÀ¨ÆK7‰AÀ×£p= ×ë?}?5^º×ŽÀ¨ÆK7‰AÀ×£p= ×ë?+‡ÙÎ5À…ëQ¸#@)\�Âõ˜oÀÏ÷Sã¥ÀZd;ßO�ß¿}?5^º×ŽÀj¼t“ Àáz®Gáæ?/Ý$á2Àã¥›Ä °$@#Ûù~j@pÀ¤p= ×£ À‘í|?5^濚™™™™¨�À¤p= ×£ À‘í|?5^æ¿/Ý$á2Àã¥›Ä °$@#Ûù~j@pÀj¼t“ @áz®Gáæ¿š™™™™¨�ÀƒÀÊ¡E¶@®Gázâ?Ûù~j¼„K@Ãõ(\�Â@‹lçû©QqÀJ +‡ÿ¿ffffffê?V-²›�ÀJ +‡ÿ¿ffffffê?Ûù~j¼„K@Ãõ(\�Â@‹lçû©QqÀƒÀÊ¡E¶À®Gázâ¿V-²›�ÀL7‰A`åØ?V-²�ïï?¬ZdYÀ/Ý$�Õ&@Zd;ß_oÀ�Âõ(\ÀìQ¸…ë±?ÙÎ÷Sã1�À�Âõ(\ÀìQ¸…ë±?¬ZdYÀ/Ý$�Õ&@Zd;ß_oÀL7‰A`åØ¿V-²�ïï¿ÙÎ÷Sã1�ÀþÔxé&1ä?X9´Èv¾ï?˜nƒÀšE@ºI +‡$@33333 qÀ¸…ëQ¸À¨ÆK7‰AÀ?5^ºI 8�À¸…ëQ¸À¨ÆK7‰AÀ?˜nƒÀšE@ºI +‡$@33333 qÀþÔxé&1ä¿X9´Èv¾ï¿5^ºI 8�À°rh‘í| Àmçû©ñÒÍ?ffffffö¿°rh‘í|@^ºI “pÀR¸…ëQì¿´Èv¾Ÿï¿ð§ÆK7Ú�ÀR¸…ëQì¿´Èv¾Ÿï¿ffffffö¿°rh‘í|@^ºI “pÀ°rh‘í| @mçû©ñÒÍ¿ð§ÆK7Ú�À�—nƒÀæ?ÙÎ÷Sã¥ï?{®Gáú5ÀÃõ(\�$@V-JqÀ^ºI +À7‰A`åÐÂ?!°rhº�À^ºI +À7‰A`åÐÂ?{®Gáú5ÀÃõ(\�$@V-JqÀ�—nƒÀæ¿ÙÎ÷Sã¥ï¿!°rhº�Àyé&1¬@B`åÐ"ÛÉ?R¸…ëyUÀìQ¸…+ @²�ï§ÆOqÀZd;ßO鿇ÙÎ÷Sï?5^ºIŒÒ�ÀZd;ßO鿇ÙÎ÷Sï?R¸…ëyUÀìQ¸…+ @²�ï§ÆOqÀyé&1¬ÀB`åÐ"ÛÉ¿5^ºIŒÒ�ÀÛù~j¼ô@B`åÐ"ÛÑ?q= ×£XRÀoƒÀÊa$@Ë¡E¶óopÀÕxé&1ö¿¸…ëQ¸î?Ï÷S㥔�ÀÕxé&1ö¿¸…ëQ¸î?q= ×£XRÀoƒÀÊa$@Ë¡E¶óopÀÛù~j¼ôÀB`åÐ"ÛÑ¿Ï÷S㥔�ÀåÐ"Ûù~ @�—nƒÀæ?D‹lçûÁUÀžï§ÆKw#@˜nƒÀöpÀmçû©ñÒ ÀåÐ"Ûù~æ?ÁÊ¡E¶�Àmçû©ñÒ ÀåÐ"Ûù~æ?D‹lçûÁUÀžï§ÆKw#@˜nƒÀöpÀåÐ"Ûù~ À�—nƒÀæ¿ÁÊ¡E¶�À?5^ºI @ÇK7‰A`é?œÄ °rhÙ¿ƒÀÊ¡…#@-²�ï5pÀ`åÐ"Ûù À…ëQ¸…ã?Å °rh.�À`åÐ"Ûù À…ëQ¸…ã?œÄ °rhÙ¿ƒÀÊ¡…#@-²�ï5pÀ?5^ºI ÀÇK7‰A`é¿Å °rh.�À'1¬Z@+‡ÙÎ÷³?´Èv¾Ÿ"RÀã¥›Ä ð @ã¥›Ä DpÀÑ"Ûù~jÔ¿�•C‹lçï?q= ×£T�ÀÑ"Ûù~jÔ¿�•C‹lçï?´Èv¾Ÿ"RÀã¥›Ä ð @ã¥›Ä DpÀ'1¬ZÀ+‡ÙÎ÷³¿q= ×£T�ÀV-² À7‰A`åÐæ?Ý$�•›UÀ“Ví"@}?5^º‘pÀ¾Ÿ/Ý$ À;ßO�—næ¿bX9´ �À¾Ÿ/Ý$ À;ßO�—næ¿Ý$�•›UÀ“Ví"@}?5^º‘pÀV-² @7‰A`åÐæ¿bX9´ �ÀøS㥛D@+‡ÙÎ÷Ã?/Ý$�ýR@ÙÎ÷Sãå$@%�•CqÀR¸…ëQè¿V-²�ï?×£p=Š®�ÀR¸…ëQè¿V-²�ï?/Ý$�ýR@ÙÎ÷Sãå$@%�•CqÀøS㥛DÀ+‡ÙÎ÷ÿףp=Š®�À+‡ÙÎÀôýÔxé&å?sh‘í|?"À“V­@!°rh‘rÀF¶óýÔxÀè¿?5^ºÉ(‘ÀF¶óýÔxÀè¿sh‘í|?"À“V­@!°rh‘rÀ+‡ÙÎ@ôýÔxé&å¿?5^ºÉ(‘ÀÅ °rh@¬Zd;ß×?J +‡ÆAÀ¾Ÿ/ݤ*@¼t“øpÀÅ °rh‘ÀV-²í?ÓMbXW�ÀÅ °rh‘ÀV-²í?J +‡ÆAÀ¾Ÿ/ݤ*@¼t“øpÀÅ °rhÀ¬Zd;ß׿ÓMbXW�ÀòÒMbX@Év¾Ÿ/Õ?Ãõ(\�êVÀ\�Âõ(\'@X9´Èv qÀþ¿“V-î??5^ºÉ§�Àþ¿“V-î?Ãõ(\�êVÀ\�Âõ(\'@X9´Èv qÀòÒMbXÀÉv¾Ÿ/Õ¿?5^ºÉ§�ÀL7‰A`å@ìQ¸…ë¡?NbX9´ò?h‘í|?u!@Ñ"Ûù~pÀßO�—nÿ+‡ÙÎ÷ï?#Ûù~jèŽÀßO�—nÿ+‡ÙÎ÷ï?NbX9´ò?h‘í|?u!@Ñ"Ûù~pÀL7‰A`åÀìQ¸…ë¡¿#Ûù~jèŽÀÕxé&1 @yé&1¬Ì?^ºI 3PÀX9´Èö@)\�ÂõôqÀmçû©ñÒé¿^ºI +ï?u“Ö=‘Àmçû©ñÒé¿^ºI +ï?^ºI 3PÀX9´Èö@)\�ÂõôqÀÕxé&1 Àyé&1¬Ì¿u“Ö=‘ÀÏ÷S㥛À�Âõ(\�æ?F¶óýÔ¸PÀJ +‡)@ßO�—nÞoÀ/Ý$�Àã¥›Ä °æ¿þÔxé&ÒŽÀ/Ý$�Àã¥›Ä °æ¿F¶óýÔ¸PÀJ +‡)@ßO�—nÞoÀÏ÷S㥛@�Âõ(\�æ¿þÔxé&ÒŽÀ¾Ÿ/Ý$@“V-â?ÍÌÌÌÌlP@5^ºI B$@¸…ëQÈqÀ²�ï§ÆKÀ¼t“Vê?…ëQ8,‘À²�ï§ÆKÀ¼t“Vê?ÍÌÌÌÌlP@5^ºI B$@¸…ëQÈqÀ¾Ÿ/Ý$À“V-â¿…ëQ8,‘À®Gáz®@ìQ¸…ëé? ×£p=ªD@333333"@}?5^º/rÀ%�•C‹ ÀbX9´Èâ?œÄ °ò7‘À%�•C‹ ÀbX9´Èâ? ×£p=ªD@333333"@}?5^º/rÀ®Gáz®ÀìQ¸…ëé¿œÄ °ò7‘À‹lçû©ñÀƒÀÊ¡E¶³?–C‹lçû?Àyé&1,@X9´Èv`qÀßO�—nÓ¿�•C‹lçᅢÀÊ¡E·�ÀßO�—nÓ¿�•C‹lçï¿–C‹lçû?Àyé&1,@X9´Èv`qÀ‹lçû©ñ@ƒÀÊ¡E¶³¿ƒÀÊ¡E·�ÀƒÀÊ¡E¶ ÀR¸…ëQØ?1¬Z´L@¬Zd;@= ×£p½pÀ;ßO�—nø¿š™™™™™í¿…ëQ¸)�À;ßO�—nø¿š™™™™™í¿1¬Z´L@¬Zd;@= ×£p½pÀƒÀÊ¡E¶ @R¸…ëQØ¿…ëQ¸)�ÀÑ"Ûù~j@¾Ÿ/Ý$î?ƒÀÊ¡å1Àd;ßO�×+@²�ï§ÆÏoÀ–C‹lç{Àq= ×£pÕ?‰A`åÐ�À–C‹lç{Àq= ×£pÕ?ƒÀÊ¡å1Àd;ßO�×+@²�ï§ÆÏoÀÑ"Ûù~jÀ¾Ÿ/Ý$A`åÐ�Àü©ñÒMb@bX9´Èê?ƒÀÊ¡EV1À\�Âõ(Ü@V-²�§oÀ�Âõ(\� Àð§ÆK7‰á?Ház®ìŽÀ�Âõ(\� Àð§ÆK7‰á?ƒÀÊ¡EV1À\�Âõ(Ü@V-²�§oÀü©ñÒMbÀbX9´Èê¿Ház®ìŽÀbX9´È@œÄ °rhá?áz®GÉWÀ“Vm%@u“V¢pÀ#Ûù~j¼À +‡Ùê?Ház®;�À#Ûù~j¼À +‡Ùê?áz®GÉWÀ“Vm%@u“V¢pÀbX9´ÈÀœÄ °rhá¿Ház®;�À /Ý$@X9´Èv¾×?d;ßO�—J@ ×£p= $@^ºI ñqÀ7‰A`åÐü¿î|?5^ºí?çû©ñR#‘À7‰A`åÐü¿î|?5^ºí?d;ßO�—J@ ×£p= $@^ºI ñqÀ /Ý$ÀX9´Èv¾×¿çû©ñR#‘ÀƒÀÊ¡E6@9´Èv¾ß8À /Ý$Æ!@¸oÀü©ñÒMbP¿ð?/Ý$�îŽÀü©ñÒMbP¿ð?9´Èv¾ß8À /Ý$Æ!@¸oÀƒÀÊ¡E6À/Ý$�îŽÀš™™™™™ÿ?�—nƒÀê?P�—n³MÀj¼t“@-²�ï)rÀ´Èv¾ŸÀð§ÆK7‰á?`åÐ"Ûe‘À´Èv¾ŸÀð§ÆK7‰á?P�—n³MÀj¼t“@-²�ï)rÀš™™™™™ÿ¿�—nƒÀê¿`åÐ"Ûe‘À;ßO�—n@×£p= ×ë?Ûù~j¼äF@h‘í|?5!@×£p= ÕqÀ+‡ÙÎÀZd;ßO�ß?V-ò�À+‡ÙÎÀZd;ßO�ß?Ûù~j¼äF@h‘í|?5!@×£p= ÕqÀ;ßO�—nÀ×£p= ×ë¿V-ò�ÀÉv¾Ÿ/í¿1¬Zdï?ü©ñÒMzP@ ×£p=J#@Ûù~j¼�oÀR¸…ëQÀö(\�ÂõÈ¿Zd;ßïŽÀR¸…ëQÀö(\�ÂõÈ¿ü©ñÒMzP@ ×£p=J#@Ûù~j¼�oÀÉv¾Ÿ/í?1¬Zdï¿Zd;ßïŽÀ–C‹lçû @¸…ëQ¸®?ÙÎ÷SãeK@NbX94@ìQ¸…!pÀÍÌÌÌÌÌÌ¿V-²�ïï?ü©ñÒMF�ÀÍÌÌÌÌÌÌ¿V-²�ïï?ÙÎ÷SãeK@NbX94@ìQ¸…!pÀ–C‹lçû À¸…ëQ¸®¿ü©ñÒMF�À)\�Âõ(ÀåÐ"Ûù~â?D‹lçûé5À…ëQ¸@X9´ÈvÂpÀ%�•C‹ü¿é&1¬ê¿yé&1ˆK�À%�•C‹ü¿é&1¬ê¿D‹lçûé5À…ëQ¸@X9´ÈvÂpÀ)\�Âõ(@åÐ"Ûù~â¿yé&1ˆK�ÀJ +‡@ôýÔxé&é?²�ï§Æ»B@d;ßO�—@!°rh‘QrÀ%�•C‹ À-²�ï§Æã?áz®GK‘À%�•C‹ À-²�ï§Æã?²�ï§Æ»B@d;ßO�—@!°rh‘QrÀJ +‡ÀôýÔxé&é¿áz®GK‘À)\�Âõ(ÀÍÌÌÌÌÌè?\�Âõ(ŒJ@5^ºI @²�ï§Æ‹qÀƒÀÊ¡E¶ÀÓMbX9ä¿…ëQ¸Å�ÀƒÀÊ¡E¶ÀÓMbX9ä¿\�Âõ(ŒJ@5^ºI @²�ï§Æ‹qÀ)\�Âõ(@ÍÌÌÌÌÌè¿…ëQ¸Å�Àü©ñÒMâ@‰A`åÐ"ç?`åÐ"ÛÑUÀã¥›Ä 0*@ÙÎ÷S/qÀyé&1¬Àé&1¬æ?!°rhº�Àyé&1¬Àé&1¬æ?`åÐ"ÛÑUÀã¥›Ä 0*@ÙÎ÷S/qÀü©ñÒMâÀ‰A`åÐ"ç¿!°rhº�ÀßO�—n’@)\�Âõ(à?¼t“^P@u“V'@ÓMbXrÀ#Ûù~j¼ÀV-²�ë?Ãõ(\w‘À#Ûù~j¼ÀV-²�ë?¼t“^P@u“V'@ÓMbXrÀßO�—n’À)\�Âõ(à¿Ãõ(\w‘ÀV-²ÀD‹lçû©å?ßO�—nÂN@+‡ÙÎ7+@�•C‹l rÀ333333ÀZd;ßO�ç¿j¼t“_‘À333333ÀZd;ßO�ç¿ßO�—nÂN@+‡ÙÎ7+@�•C‹l rÀV-²@D‹lçû©å¿j¼t“_‘À+‡ÙÎ÷@R¸…ëQä?T㥛ÄÐVÀœÄ °rh@B`åÐ"÷nÀ/Ý$�À#Ûù~j¼è?»ŽÀ/Ý$�À#Ûù~j¼è?T㥛ÄÐVÀœÄ °rh@B`åÐ"÷nÀ+‡ÙÎ÷ÀR¸…ëQä¿»ŽÀáz®Gá À\�Âõ(\×?D‹lçû©TÀßO�—n’ @bX9´(qÀq= ×£p÷¿˜nƒÀÊí¿‰A`åФ�Àq= ×£p÷¿˜nƒÀÊí¿D‹lçû©TÀßO�—n’ @bX9´(qÀáz®Gá @\�Âõ(\׿‰A`åФ�À#Ûù~j<À²�ï§ÆKç?sh‘í|?À9´Èv¾_)@ÙÎ÷SpÀ= ×£p=ÀÁÊ¡E¶óå¿ +‡�À= ×£p=ÀÁÊ¡E¶óå¿sh‘í|?À9´Èv¾_)@ÙÎ÷SpÀ#Ûù~j<@²�ï§ÆKç¿ +‡�À{®Gáz ÀøS㥛Ää?åÐ"ÛùÞ0À+‡ÙÎ÷!@ÙÎ÷SãqpÀú~j¼t“À'1¬Zè¿X9´Èvñ�Àú~j¼t“À'1¬Zè¿åÐ"ÛùÞ0À+‡ÙÎ÷!@ÙÎ÷SãqpÀ{®Gáz @øS㥛Ää¿X9´Èvñ�ÀÍÌÌÌÌÌ @L7‰A`åè?`åÐ"Û™O@w¾Ÿ/Ý&@ÁÊ¡E¶ûoÀ#Ûù~j<Àj¼t“ä?T㥛Ä1�À#Ûù~j<Àj¼t“ä?`åÐ"Û™O@w¾Ÿ/Ý&@ÁÊ¡E¶ûoÀÍÌÌÌÌÌ ÀL7‰A`åè¿T㥛Ä1�À= ×£p= À`åÐ"Ûùâ?“V =ÀÏ÷Sã¥"@¤p= ×£pÀÍÌÌÌÌÌÀÃõ(\�Âé¿°rh‘í �ÀÍÌÌÌÌÌÀÃõ(\�Âé¿“V =ÀÏ÷Sã¥"@¤p= ×£pÀ= ×£p= @`åÐ"Ûùâ¿°rh‘í �ÀƒÀÊ¡E¶@“V-Â?V-²ýL@¶óýÔxi @X9´ÈvfqÀ‰A`åÐ"ã¿®Gáz®ï?D‹lçû´�À‰A`åÐ"ã¿®Gáz®ï?V-²ýL@¶óýÔxi @X9´ÈvfqÀƒÀÊ¡E¶À“V-¿D‹lçû´�ÀÓMbX9À!°rh‘íà?^ºI  SÀ^ºI +&@ ×£p=ÞoÀV-²À^ºI +ë¿ôýÔxéúŽÀV-²À^ºI +ë¿^ºI  SÀ^ºI +&@ ×£p=ÞoÀÓMbX9@!°rh‘íà¿ôýÔxéúŽÀ˜9´Èv¾Ÿ@ /Ý$Á?#Ûù~j GÀ\�Âõ(\"@^ºI ytÀáz®Gá⿃ÀÊ¡E¶ï?ÇK7‰Á “Àáz®Gá⿃ÀÊ¡E¶ï?#Ûù~j GÀ\�Âõ(\"@^ºI ytÀ9´Èv¾ŸÀ /Ý$Á¿ÇK7‰Á “ÀffffffÆ¿+‡ÙÎ÷ï?V-²�ŸI@ÍÌÌÌÌŒ'@ +‡™tÀ+‡ÙÎ÷Àü©ñÒMb ¿9´Èv>*“À+‡ÙÎ÷Àü©ñÒMb ¿V-²�ŸI@ÍÌÌÌÌŒ'@ +‡™tÀffffffÆ?+‡ÙÎ÷ï¿9´Èv>*“À¾Ÿ/Ý$Ö?+‡ÙÎï?ÙÎ÷Sc.@åÐ"Ûùþ@�—nƒÌtÀ�Âõ(\� ÀÙÎ÷S㥻?�—nƒ“À�Âõ(\� ÀÙÎ÷S㥻?ÙÎ÷Sc.@åÐ"Ûùþ@�—nƒÌtÀ¾Ÿ/Ý$Ö¿+‡ÙÎï¿�—nƒ“ÀV-2@{®GázÄ?+‡ÙNC@¼t“Ö$@‘í|?5ôrÀL7‰A`åè¿/Ý$�•ï?sh‘íüø‘ÀL7‰A`åè¿/Ý$�•ï?+‡ÙNC@¼t“Ö$@‘í|?5ôrÀV-2À{®GázÄ¿sh‘íüø‘Àj¼t“À/Ý$�Ý?X9´ÈvnFÀh‘í|?5@F¶óýÔÚtÀ`åÐ"Ûùö¿ü©ñÒMbì¿Ý$�;“À`åÐ"Ûùö¿ü©ñÒMbì¿X9´ÈvnFÀh‘í|?5@F¶óýÔÚtÀj¼t“@/Ý$�Ý¿Ý$�;“ÀòÒMbX@w¾Ÿ/Ýè?ö(\�ÂÕD@øS㥛Ä@R¸…ëñtÀü©ñÒMbÀ)\�Âõ(ä?L7‰AàE“Àü©ñÒMbÀ)\�Âõ(ä?ö(\�ÂÕD@øS㥛Ä@R¸…ëñtÀòÒMbXÀw¾Ÿ/Ýè¿L7‰AàE“À#Ûù~j<@¢E¶óýÔØ?‰A`åÐb3ÀÇK7‰A !@Õxé&1xuÀ\�Âõ(\û¿/Ý$�í?¤p= ×b“À\�Âõ(\û¿/Ý$�í?‰A`åÐb3ÀÇK7‰A !@Õxé&1xuÀ#Ûù~j<À¢E¶óýÔØ¿¤p= ×b“ÀX9´Èv>@Év¾Ÿ/­?^ºI «FÀZd;ßOÍ @Év¾ŸsÀÅ °rh‘Í¿V-²�ïï?)\�Âõ<’ÀÅ °rh‘Í¿V-²�ïï?^ºI «FÀZd;ßOÍ @Év¾ŸsÀX9´Èv>ÀÉv¾Ÿ/­¿)\�Âõ<’ÀNbX9´ü?j¼t“ê?®Gáz4;À°rh‘íü@zsÀßO�—nÀ9´Èv¾Ÿâ?+‡ÙNY’ÀßO�—nÀ9´Èv¾Ÿâ?®Gáz4;À°rh‘íü@zsÀNbX9´ü¿j¼t“ê¿+‡ÙNY’À'1¬Zò?°rh‘í|ï?-²�ï§6JÀ5^ºI Â+@¼t“–uÀ€À-²�ï§Æ??5^ºÉ§“À€À-²�ï§Æ?-²�ï§6JÀ5^ºI Â+@¼t“–uÀ'1¬Zò¿°rh‘í|ï¿?5^ºÉ§“Àmçû©ñÒÀþÔxé&1ä?u“VÞBÀÉv¾Ÿ/%@/Ý$…tÀ�•C‹lç À¢E¶óýÔè¿T㥛D“À�•C‹lç À¢E¶óýÔè¿u“VÞBÀÉv¾Ÿ/%@/Ý$…tÀmçû©ñÒ@þÔxé&1ä¿T㥛D“ÀÉv¾Ÿ/é¿-²�ï§Æï?ÁÊ¡E¶S3@{®Gáº,@®GázªuÀT㥛ĠÀÁÊ¡E¶ó½¿–C‹lg�“ÀT㥛ĠÀÁÊ¡E¶ó½¿ÁÊ¡E¶S3@{®Gáº,@®GázªuÀÉv¾Ÿ/é?-²�ï§Æï¿–C‹lg�“À²�ï§ÆKë?¬Zd;ï?NbX9ôJ@Ï÷S㥛@žï§ÆKrÀ#Ûù~j¼À-²�ï§ÆË?´Èv¾Ÿº‘À#Ûù~j¼À-²�ï§ÆË?NbX9ôJ@Ï÷S㥛@žï§ÆKrÀ²�ï§ÆK뿬Zd;ï¿´Èv¾Ÿº‘Àš™™™™™ÀÑ"Ûù~jè?ªñÒMb7@q= ×£p @¦›Ä °²tÀHáz®GÀNbX9´ä¿ÇK7‰A“ÀHáz®GÀNbX9´ä¿ªñÒMb7@q= ×£p @¦›Ä °²tÀš™™™™™@Ñ"Ûù~jè¿ÇK7‰A“À‡ÙÎ÷Sÿ¿h‘í|?5î?B`åÐ"»=@-²�ïg)@V-²�ãsÀáz®GaÀ…ëQ¸Õ¿33333¨’Àáz®GaÀ…ëQ¸Õ¿B`åÐ"»=@-²�ïg)@V-²�ãsÀ‡ÙÎ÷Sÿ?h‘í|?5î¿33333¨’À¼t“V@L7‰A`åè?¢E¶óýT?@L7‰A`e@7‰A`åÄuÀ#Ûù~j¼Àj¼t“ä?ºI «¥“À#Ûù~j¼Àj¼t“ä?¢E¶óýT?@L7‰A`e@7‰A`åÄuÀ¼t“VÀL7‰A`å迺I «¥“ÀL7‰A`åÀ +‡Ùê?B`åÐ"{@@¨ÆK7‰ @w¾Ÿ/“sÀ¤p= ×£ ÀœÄ °rhá¿-²�ï'}’À¤p= ×£ ÀœÄ °rhá¿B`åÐ"{@@¨ÆK7‰ @w¾Ÿ/“sÀL7‰A`å@ +‡Ùê¿-²�ï'}’Àé&1¬æ¿Zd;ßO�ï?¢E¶óýÔ.@¤p= ×# @}?5^º…uÀ‘í|?5^ÀÇK7‰A`Å¿…ëQ¸že“À‘í|?5^ÀÇK7‰A`Å¿¢E¶óýÔ.@¤p= ×# @}?5^º…uÀé&1¬æ?Zd;ßO�ï¿…ëQ¸že“À¤p= ×£ü¿“V-î?{®GášB@®Gáz.&@�•C‹°sÀsh‘í|?ÀZd;ßOÕ¿oƒÀÊ•’Àsh‘í|?ÀZd;ßOÕ¿{®GášB@®Gáz.&@�•C‹°sÀ¤p= ×£ü?“V-î¿oƒÀÊ•’Àj¼t“„ÀœÄ °rhÙ?ÇK7‰APH@bX9´È-@B`åÐ"�rÀu“VÀÇK7‰A`í¿1¬Úµ‘Àu“VÀÇK7‰A`í¿ÇK7‰APH@bX9´È-@B`åÐ"�rÀj¼t“„@œÄ °rhÙ¿1¬Úµ‘À˜nƒÀÊõ¿áz®Gáî?î|?5^êE@33333s%@…ëQ¸ƒrÀ?5^ºI ÀøS㥛Äпçû©ñÒ–‘À?5^ºI ÀøS㥛Äпî|?5^êE@33333s%@…ëQ¸ƒrÀ˜nƒÀÊõ?áz®Gáî¿çû©ñÒ–‘À À¸…ëQ¸ê?ÇK7‰A€I@P�—nC*@áz®G‘sÀö(\�ÂuÀoƒÀÊ¡á¿Ë¡E¶s¢’Àö(\�ÂuÀoƒÀÊ¡á¿ÇK7‰A€I@P�—nC*@áz®G‘sÀ @¸…ëQ¸ê¿Ë¡E¶s¢’ÀoƒÀÊ¡À/Ý$�å?é&1¬Ì@@ìQ¸…+ @)\�ÂõÌrÀ\�Âõ(\À®Gáz®ç¿‹lçû©¶‘À\�Âõ(\À®Gáz®ç¿é&1¬Ì@@ìQ¸…+ @)\�ÂõÌrÀoƒÀÊ¡@/Ý$�å¿‹lçû©¶‘À\�Âõ(\@þÔxé&1ì?X9´Èv^<@Å °rh‘+@Zd;ßmsÀD‹lçû©ÀƒÀÊ¡EÞ?þÔxé&U’ÀD‹lçû©ÀƒÀÊ¡EÞ?X9´Èv^<@Å °rh‘+@Zd;ßmsÀ\�Âõ(\ÀþÔxé&1ì¿þÔxé&U’ÀßO�—n À;ßO�—næ?X9´Èv7Àmçû©ñR$@oƒÀÊgsÀd;ßO�— À7‰A`åÐæ¿#Ûù~ê;’Àd;ßO�— À7‰A`åÐæ¿X9´Èv7Àmçû©ñR$@oƒÀÊgsÀßO�—n @;ßO�—næ¿#Ûù~ê;’ÀZd;ßO�@/Ý$�é?-²�ïg;@/Ý$�•!@ÓMbXsÀ)\�Âõ( À‡ÙÎ÷Sã?ƒÀÊ¡Eå‘À)\�Âõ( À‡ÙÎ÷Sã?-²�ïg;@/Ý$�•!@ÓMbXsÀZd;ßO�À/Ý$�鿃ÀÊ¡Eå‘ÀÅ °rhÀD‹lçû©Á?ð§ÆK7ÉDÀJ +‡Ö"@ +‡uÀþÔxé&1ä¿®Gáz®ï¿ ×£p=W“ÀþÔxé&1ä¿®Gáz®ï¿ð§ÆK7ÉDÀJ +‡Ö"@ +‡uÀÅ °rh@D‹lçû©Á¿ ×£p=W“ÀÓMbX9ÀþÔxé&1Ð?Zd;ßO�PÀ/Ý$�•%@oƒÀÊcrÀôýÔxé&õ¿‹lçû©ñ›Ä °Î‘ÀôýÔxé&õ¿‹lçû©ñî¿Zd;ßO�PÀ/Ý$�•%@oƒÀÊcrÀÓMbX9@þÔxé&1п¦›Ä °Î‘À`åÐ"ÛùÎ?V-²�ïï?q= ×£0G@#Ûù~j< @þÔxé&ïsÀyé&1¬ÀV-²­?d;ßO Ì’Àyé&1¬ÀV-²­?q= ×£0G@#Ûù~j< @þÔxé&ïsÀ`åÐ"ÛùοV-²�ïï¿d;ßO Ì’ÀÁÊ¡E¶ó@ì?¸…ëQøEÀoƒÀÊ!#@;ßO�—tÀƒÀÊ¡E6À`åÐ"ÛùÞ?‹lçû©Ñ’ÀƒÀÊ¡E6À`åÐ"ÛùÞ?¸…ëQøEÀoƒÀÊ!#@;ßO�—tÀÁÊ¡E¶óÀì¿‹lçû©Ñ’À33333³Àyé&1¬¼?¶óýÔx¹@ÀL7‰A`e'@‘í|?56sÀ°rh‘í|ã¿+‡ÙÎï¿V-4’À°rh‘í|ã¿+‡ÙÎï¿¶óýÔx¹@ÀL7‰A`e'@‘í|?56sÀ33333³@yé&1¬¼¿V-4’À×£p= ×À-²�ï§ê?u“V®L@+‡ÙN%@Ûù~j¼ærÀã¥›Ä 0ÀV-²á¿ /ݤ&’Àã¥›Ä 0ÀV-²á¿u“V®L@+‡ÙN%@Ûù~j¼ærÀ×£p= ×@-²�ï§ê¿ /ݤ&’ÀB`åÐ"Û¹?ð?ÍÌÌÌÌÜC@1¬Z¤ @)\�ÂõŽrÀé&1¬Àú~j¼t“˜?ÙÎ÷Ó�‘Àé&1¬Àú~j¼t“˜?ÍÌÌÌÌÜC@1¬Z¤ @)\�ÂõŽrÀB`åÐ"Û¹¿ð¿ÙÎ÷Ó�‘À¶óýÔxiÀD‹lçû©å?¦›Ä °‚BÀ}?5^ºÉ*@ú~j¼tÍsÀ¶óýÔxéÀZd;ßO�ç¿ü©ñÒM­’À¶óýÔxéÀZd;ßO�翦›Ä °‚BÀ}?5^ºÉ*@ú~j¼tÍsÀ¶óýÔxi@D‹lçû©å¿ü©ñÒM­’ÀoƒÀÊ!À +‡ÙÎ?�Âõ(\/9À–C‹lç{&@�•C‹ØuÀ5^ºI õ¿ ×£p= ï¿¶óýÔø›“À5^ºI õ¿ ×£p= ï¿�Âõ(\/9À–C‹lç{&@�•C‹ØuÀoƒÀÊ!@ +‡Ùο¶óýÔø›“ÀV-²ÀX9´Èvâ?…ëQ¸…G@)\�Âõ(+@×£p= tÀƒÀÊ¡E Àé&1¬ê¿�•C‹à’ÀƒÀÊ¡E Àé&1¬ê¿…ëQ¸…G@)\�Âõ(+@×£p= tÀV-²@X9´Èvâ¿�•C‹à’ÀƒÀÊ¡E6@¶óýÔxéÆ?¨ÆK7‰QQÀªñÒMb"@¾Ÿ/Ý.rÀ /Ý$é¿°rh‘í|ï?ºI +—‘À /Ý$é¿°rh‘í|ï?¨ÆK7‰QQÀªñÒMb"@¾Ÿ/Ý.rÀƒÀÊ¡E6À¶óýÔxéÆ¿ºI +—‘À×£p= ×@w¾Ÿ/ÝÔ?^ºI KGÀÙÎ÷Sãe"@¢E¶óýèrÀÝ$�•C÷¿= ×£p=î?㥛Ġ’ÀÝ$�•C÷¿= ×£p=î?^ºI KGÀÙÎ÷Sãe"@¢E¶óýèrÀ×£p= ×Àw¾Ÿ/ÝԿ㥛Ġ’ÀÀ¬Zd;Ï?d;ßO�‡A@+‡ÙN(@+‡ÙÎ×rÀþÔxé&1ö¿ ×£p= ï¿J +‡É‘ÀþÔxé&1ö¿ ×£p= ï¿d;ßO�‡A@+‡ÙN(@+‡ÙÎ×rÀ@¬Zd;Ï¿J +‡É‘À+‡ÙÎ@+‡ÙÎç?;ßO�—þGÀƒÀÊ¡E¶@“V»rÀ¨ÆK7‰AÀœÄ °rhå?¢E¶ó}ß‘À¨ÆK7‰AÀœÄ °rhå?;ßO�—þGÀƒÀÊ¡E¶@“V»rÀ+‡ÙÎÀ+‡ÙÎç¿¢E¶ó}ß‘ÀTã¥›Ä Ø¿¬Zd;ßï?òÒMb8BÀƒÀÊ¡E6!@²�ï§ÆSsÀ¤p= ×£ÀÃõ(\�µ¿¬Zd;V’À¤p= ×£ÀÃõ(\�µ¿òÒMb8BÀƒÀÊ¡E6!@²�ï§ÆSsÀTã¥›Ä Ø?¬Zd;ß↓Zd;V’ÀB`åÐ"Û @ºI +‡Ö?{®GáQ@žï§ÆKw @ÙÎ÷SãrÀ;ßO�—nö¿ÁÊ¡E¶óí?¬Zd»Œ‘À;ßO�—nö¿ÁÊ¡E¶óí?{®GáQ@žï§ÆKw @ÙÎ÷SãrÀB`åÐ"Û ÀºI +‡Ö¿¬Zd»Œ‘ÀßO�—n’@¢E¶óýÔà?ú~j¼t“?À¬Zd;ß$@/Ý$�itÀ{®GázÀ¬Zd;ë?ÍÌÌÌÌì’À{®GázÀ¬Zd;ë?ú~j¼t“?À¬Zd;ß$@/Ý$�itÀßO�—n’À¢E¶óýÔà¿ÍÌÌÌÌì’À–C‹lçûó¿‹lçû©ñî?¾Ÿ/ÝÄI@ ×£p=J$@˜nƒÀºrÀ/Ý$À¨ÆK7‰AÐ¿š™™™™æ‘À/Ý$À¨ÆK7‰Aп¾Ÿ/ÝÄI@ ×£p=J$@˜nƒÀºrÀ–C‹lçûó?‹lçû©ñ™™™™æ‘Àçû©ñÒMÀ¬Zd;ç?ÓMbXÙ8@!°rh‘-!@¾Ÿ/ÝZuÀ-²�ï§ Àj¼t“æ¿é&1¬b“À-²�ï§ Àj¼t“æ¿ÓMbXÙ8@!°rh‘-!@¾Ÿ/ÝZuÀçû©ñÒM@¬Zd;ç¿é&1¬b“ÀV-²�ïÀ�•C‹l×?-²�ï§?À{®Gá:'@¸…ëQfsÀF¶óýÔxÀ˜nƒÀÊí¿¬ZdW’ÀF¶óýÔxÀ˜nƒÀÊí¿-²�ï§?À{®Gá:'@¸…ëQfsÀV-²�ï@�•C‹l׿¬ZdW’À7‰A`åÐÀsh‘í|?µ?Ë¡E¶ó}MÀð§ÆK7‰$@°rh‘ísÀ�Âõ(\�Ú¿�•C‹lçï¿P�—n’K’À�Âõ(\�Ú¿�•C‹lçï¿Ë¡E¶ó}MÀð§ÆK7‰$@°rh‘ísÀ7‰A`åÐ@sh‘í|?µ¿P�—n’K’À /Ý$ @NbX9´è?B`åÐ"ÛB@d;ßO�W$@R¸…ëuÀ�•C‹lÀR¸…ëQä?Év¾ŸšO“À�•C‹lÀR¸…ëQä?B`åÐ"ÛB@d;ßO�W$@R¸…ëuÀ /Ý$ ÀNbX9´è¿Év¾ŸšO“À#Ûù~j¼@J +‡¹?ºI +ç0ÀD‹lçû)@ÙÎ÷SãQuÀÛù~j¼tÓ¿×£p= ×ï?;ßO�—K“ÀÛù~j¼tÓ¿×£p= ×ï?ºI +ç0ÀD‹lçû)@ÙÎ÷SãQuÀ#Ûù~j¼ÀJ +‡¹¿;ßO�—K“Àn(h‘í|?µ@øS㥛ÄÀ?–C‹lç;=ÀbX9´È+@×£p= uÀ‰A`åÐ"뿃ÀÊ¡E¶ï?1¬Ú:“À‰A`åÐ"뿃ÀÊ¡E¶ï?–C‹lç;=ÀbX9´È+@×£p= uÀh‘í|?µÀøS㥛ÄÀ¿1¬Ú:“ÀÓMbX9ÀV-²�ïë?B`åÐ"û?@¸…ëQ8&@¬ZdÿtÀÏ÷Sã¥À¬Zd;ß¿u“V;“ÀÏ÷Sã¥À¬Zd;ß¿B`åÐ"û?@¸…ëQ8&@¬ZdÿtÀÓMbX9@V-²�ïë¿u“V;“À¤p= ×#@j¼t“Þ?sh‘í|H@+‡ÙÎ7'@°rh‘íìrÀR¸…ëQÀ¨ÆK7‰Aì?yé&1ˆ’ÀR¸…ëQÀ¨ÆK7‰Aì?sh‘í|H@+‡ÙÎ7'@°rh‘íìrÀ¤p= ×#Àj¼t“Þ¿yé&1ˆ’À1¬Zdù?¾Ÿ/Ý$î?�Âõ(\o6À¬Zd{#@–C‹lçãtÀøS㥛ÄÀ/Ý$�Õ?áz®G“ÀøS㥛ÄÀ/Ý$�Õ?�Âõ(\o6À¬Zd{#@–C‹lçãtÀ1¬Zdù¿¾Ÿ/Ý$î¿áz®G“Àé&1¬þ?u“Ví?mçû©ñò=@;ßO�—n!@‹lçû©ÇrÀƒÀÊ¡EÀáz®GáÚ?Ë¡E¶s¥‘ÀƒÀÊ¡EÀáz®GáÚ?mçû©ñò=@;ßO�—n!@‹lçû©ÇrÀé&1¬þ¿u“Ví¿Ë¡E¶s¥‘À‰A`åÐ"Û¿×£p= ×ï?Ûù~j¼”4Àyé&1,!@ÙÎ÷SãtÀ%�•C‹Àé&1¬º¿é&1,­’À%�•C‹Àé&1¬º¿Ûù~j¼”4Àyé&1,!@ÙÎ÷SãtÀ‰A`åÐ"Û?×£p= ×ï¿é&1,­’À®Gáz®@j¼t“à?ú~j¼t6@‡ÙÎ÷S"@¶óýÔx+uÀB`åÐ"ÛÀÙÎ÷Sã¥ë?ú~j¼tB“ÀB`åÐ"ÛÀÙÎ÷Sã¥ë?ú~j¼t6@‡ÙÎ÷S"@¶óýÔx+uÀ®Gáz®Àj¼t“à¿ú~j¼tB“Àî|?5^ºÀV-²é?®Gáz”GÀ‰A`åТ+@ÓMbX'uÀ¸…ëQ¸ÀßO�—nã¿Õxé&±c“À¸…ëQ¸ÀßO�—nã¿®Gáz”GÀ‰A`åТ+@ÓMbX'uÀî|?5^º@V-²é¿Õxé&±c“À®Gáz® @¼t“Vâ?\�Âõ(ìGÀR¸…ë"@'1¬ tÀªñÒMbÀh‘í|?5ê?‰A`åP!“ÀªñÒMbÀh‘í|?5ê?\�Âõ(ìGÀR¸…ë"@'1¬ tÀ®Gáz® À¼t“V⿉A`åP!“À°rh‘í|@Ý$�•Cë?\�Âõ(ìB@þÔxé&1#@ÁÊ¡E¶{uÀ-²�ï§ÀøS㥛Äà?‰A`åP�“À-²�ï§ÀøS㥛Äà?\�Âõ(ìB@þÔxé&1#@ÁÊ¡E¶{uÀ°rh‘í|ÀÝ$�•C뿉A`åP�“À-²�ï§Æ@¨ÆK7‰AØ?q= ×£pAÀfffffæ&@‰A`åЬuÀh‘í|?5Àš™™™™™í?j¼t“’“Àh‘í|?5Àš™™™™™í?q= ×£pAÀfffffæ&@‰A`åЬuÀ-²�ï§ÆÀ¨ÆK7‰AØ¿j¼t“’“ÀP�—nƒ Àyé&1¬Ì?®Gáz®;À‹lçû©q@= ×£pWtÀ= ×£p=ê¿333333↑ñÒMâß’À= ×£p=ê¿333333ï¿®Gáz®;À‹lçû©q@= ×£pWtÀP�—nƒ @yé&1¬Ì¿ªñÒMâß’À/Ý$�•÷?Ház®Gí?Év¾ŸßG@ÙÎ÷Sc@š™™™™QuÀƒÀÊ¡E¶ ÀB`åÐ"ÛÙ?î|?5Þ€“ÀƒÀÊ¡E¶ ÀB`åÐ"ÛÙ?Év¾ŸßG@ÙÎ÷Sc@š™™™™QuÀ/Ý$�•÷¿Ház®Gí¿î|?5Þ€“ÀìQ¸…ëÀ;ßO�—n‚?¶óýÔxéFÀ´Èv¾Ÿš%@5^ºI tuÀJ +‡©¿ð¿ð§ÆK·‡“ÀJ +‡©¿ð¿¶óýÔxéFÀ´Èv¾Ÿš%@5^ºI tuÀìQ¸…ë@;ßO�—n‚¿ð§ÆK·‡“Àh‘í|?5À¬Zd;ßë?ƒÀÊ¡õD@áz®G!#@d;ßO�?sÀoƒÀÊ!À�•C‹lß¿Ý$�•S’ÀoƒÀÊ!À�•C‹lß¿ƒÀÊ¡õD@áz®G!#@d;ßO�?sÀh‘í|?5@¬Zd;ßë¿Ý$�•S’ÀÉv¾Ÿ/@–C‹lçûÉ?bX9´¨0@¾Ÿ/Ýd'@q= ×£vÀ;ßO�—nò¿‡ÙÎ÷Sï?w¾Ÿ¯§“À;ßO�—nò¿‡ÙÎ÷Sï?bX9´¨0@¾Ÿ/Ýd'@q= ×£vÀÉv¾Ÿ/À–C‹lçûÉ¿w¾Ÿ¯§“À¶óýÔxé @˜nƒÀÊå??5^ºI¬BÀ)\�Âõh$@¤p= ×gsÀV-²�ï ÀÛù~j¼tç?P�—nh’ÀV-²�ï ÀÛù~j¼tç??5^ºI¬BÀ)\�Âõh$@¤p= ×gsÀ¶óýÔxé À˜nƒÀÊå¿P�—nh’À¨ÆK7‰A@¼t“Vê?øS㥛D:@×£p= W!@V-²�uuÀ\�Âõ(\ À“V-â?5^ºI u“À\�Âõ(\ À“V-â?øS㥛D:@×£p= W!@V-²�uuÀ¨ÆK7‰AÀ¼t“Vê¿5^ºI u“ÀÝ$�•Cý¿yé&1¬ì?ƒÀÊ¡eHÀ–C‹lçû @Ãõ(\�xrÀX9´Èv À{®GázÜ¿'1¬œ¢‘ÀX9´Èv À{®GázÜ¿ƒÀÊ¡eHÀ–C‹lçû @Ãõ(\�xrÀÝ$�•Cý?yé&1¬ì¿'1¬œ¢‘À{®Gáz¤¿ð?/Ý$L@‰A`åÐ"@X9´ÈvªsÀP�—nÀ{®Gáz„¿%�•C¼’ÀP�—nÀ{®Gáz„¿/Ý$L@‰A`åÐ"@X9´ÈvªsÀ{®Gáz¤?ð¿%�•C¼’ÀÝ$�•CÓ?�•C‹lçï?ã¥›Ä ð5@çû©ñÒÍ@çû©ñÒ'vÀ�Âõ(\�ÀÓMbX9´?®GázÄ“À�Âõ(\�ÀÓMbX9´?ã¥›Ä ð5@çû©ñÒÍ@çû©ñÒ'vÀÝ$�•CÓ¿�•C‹lçï¿®GázÄ“À^ºI +ÀV-²½?Ûù~j¼„EÀË¡E¶óý(@‡ÙÎ÷�rÀš™™™™™å¿-²�ï§Æï¿X9´Èö›‘Àš™™™™™å¿-²�ï§Æï¿Ûù~j¼„EÀË¡E¶óý(@‡ÙÎ÷�rÀ^ºI +@V-²½¿X9´Èö›‘ÀB`åÐ"Û@ÁÊ¡E¶óÝ??5^ºI¬8@^ºI ë,@7‰A`åBtÀ= ×£p= À}?5^ºIì?ôýÔxéÑ’À= ×£p= À}?5^ºIì??5^ºI¬8@^ºI ë,@7‰A`åBtÀB`åÐ"ÛÀÁÊ¡E¶óÝ¿ôýÔxéÑ’À}?5^ºIÀþÔxé&1à?/Ý$�eC@ÇK7‰A "@q= ×£sÀ�—nƒÀÀV-²�ë¿¶óýÔx ’À�—nƒÀÀV-²�ë¿/Ý$�eC@ÇK7‰A "@q= ×£sÀ}?5^ºI@þÔxé&1à¿¶óýÔx ’À“V- À{®Gáz´?9´Èv¾N@ö(\�Âu@+‡ÙΛrÀ9´Èv¾ŸÒ¿�•C‹lçï¿ ×£p=ê‘À9´Èv¾ŸÒ¿�•C‹lçï¿9´Èv¾N@ö(\�Âu@+‡ÙΛrÀ“V- @{®Gáz´¿ ×£p=ê‘Àáz®GáÚ?+‡ÙÎï?;ßO�—ÎEÀÑ"Ûù~ê@5^ºI žuÀ/Ý$�•À�•C‹lç»?ƒÀÊ¡š“À/Ý$�•À�•C‹lç»?;ßO�—ÎEÀÑ"Ûù~ê@5^ºI žuÀáz®GáÚ¿+‡ÙÎᅢÀÊ¡š“ÀNbX9´ ÀÃõ(\�ÂÝ?ú~j¼tÓ>@mçû©ñR@ /Ý$NsÀ?5^ºI ü¿R¸…ëQì¿;ßO�A’À?5^ºI ü¿R¸…ëQì¿ú~j¼tÓ>@mçû©ñR@ /Ý$NsÀNbX9´ @Ãõ(\�ÂÝ¿;ßO�A’ÀX9´Èv¾û?®Gázî?w¾Ÿ/�@@{®Gáú$@Ë¡E¶ó sÀj¼t“Àmçû©ñÒÕ?㥛Ġû‘Àj¼t“Àmçû©ñÒÕ?w¾Ÿ/�@@{®Gáú$@Ë¡E¶ó sÀX9´Èv¾û¿®Gázî¿ã¥›Ä û‘ÀL7‰A`å À´Èv¾Ÿß?bX9´h<@ßO�—n!@åÐ"Ûù&sÀßO�—nÀ+‡ÙÎ÷ë¿+‡ÙN’ÀßO�—nÀ+‡ÙÎ÷ë¿bX9´h<@ßO�—n!@åÐ"Ûù&sÀL7‰A`å @´Èv¾Ÿß¿+‡ÙN’ÀJ +‡–@¸…ëQ¸Î?w¾Ÿ/}BÀƒÀÊ¡Eö&@…ëQ¸ÇrÀZd;ßOõ¿ßO�—nï?®Gáz”Ä‘ÀZd;ßOõ¿ßO�—nï?w¾Ÿ/}BÀƒÀÊ¡Eö&@…ëQ¸ÇrÀJ +‡–À¸…ëQ¸Î¿®Gáz”Ä‘À…ëQ¸… Àé&1¬æ?V-²�KÀV-²]$@= ×£parÀsh‘í|? À‰A`åÐ"ç¿Ãõ(\�Ÿ‘Àsh‘í|? À‰A`åÐ"ç¿V-²�KÀV-²]$@= ×£parÀ…ëQ¸… @é&1¬æ¿Ãõ(\�Ÿ‘À7‰A`åÐü?Ház®Gí?NbX9ôO@ffffff!@¢E¶óývrÀü©ñÒMbÀ˜nƒÀÊÙ?Ház®Ö‘Àü©ñÒMbÀ˜nƒÀÊÙ?NbX9ôO@ffffff!@¢E¶óývrÀ7‰A`åÐü¿Ház®Gí¿Ház®Ö‘Àáz®GaÀžï§ÆK7Ù?Ûù~j¼t;@ôýÔxé¦$@Ï÷Sã¥otÀð§ÆK7‰ÿ¿œÄ °rhí¿®Gáz”ì’Àð§ÆK7‰ÿ¿œÄ °rhí¿Ûù~j¼t;@ôýÔxé¦$@Ï÷Sã¥otÀáz®Ga@žï§ÆK7Ù¿®Gáz”ì’Àé&1¬Ò?V-²�ïï?sh‘í|ÏK@áz®G¡ @ /Ý$&sÀªñÒMbÀìQ¸…ë±?òÒMb�Z’ÀªñÒMbÀìQ¸…ë±?sh‘í|ÏK@áz®G¡ @ /Ý$&sÀé&1¬Ò¿V-²�ïï¿òÒMb�Z’Àu“V ÀÍÌÌÌÌÌÔ?áz®Gá>@Ãõ(\�Â@mçû©ñFtÀžï§ÆK7ñ¿ƒÀÊ¡Eî¿œÄ °rÜ’Àžï§ÆK7ñ¿ƒÀÊ¡Eî¿áz®Gá>@Ãõ(\�Â@mçû©ñFtÀu“V @ÍÌÌÌÌÌÔ¿œÄ °rÜ’À�•C‹lý¿é&1¬î?¨ÆK7‰‘KÀôýÔxéf&@�•C‹lYsÀœÄ °rhÀV-²Õ¿Ï÷S㥄’ÀœÄ °rhÀV-²Õ¿¨ÆK7‰‘KÀôýÔxéf&@�•C‹lYsÀ�•C‹lý?é&1¬î¿Ï÷S㥄’Àj¼t“ø?h‘í|?5î?¤p= ×ã.À‘í|?5Þ"@ƒÀÊ¡EötÀ¨ÆK7‰AÀu“VÕ?B`åТ“À¨ÆK7‰AÀu“VÕ?¤p= ×ã.À‘í|?5Þ"@ƒÀÊ¡EötÀj¼t“ø¿h‘í|?5î¿B`åТ“À¼t“V꿬Zd;ï?¢E¶óý”?@Év¾Ÿ/@žï§ÆKórÀ}?5^ºI ÀÕxé&1Ì¿ßO�—îÚ‘À}?5^ºI ÀÕxé&1Ì¿¢E¶óý”?@Év¾Ÿ/@žï§ÆKórÀ¼t“Vê?¬Zd;ï¿ßO�—îÚ‘ÀL7‰A`åÀ¬Zd;ã?+‡ÙÎwG@-²�ï§&@ÍÌÌÌÌÎrÀ�•C‹l ÀÅ °rh‘é¿3333³ë‘À�•C‹l ÀÅ °rh‘é¿+‡ÙÎwG@-²�ï§&@ÍÌÌÌÌÎrÀL7‰A`å@¬Zd;ã¿3333³ë‘ÀÃõ(\�BÀsh‘í|?µ?…ëQ¸>BÀºI +&@²�ï§ÆÓrÀ{®GázÜ¿�•C‹lçï¿yé&1Ö‘À{®GázÜ¿�•C‹lçï¿…ëQ¸>BÀºI +&@²�ï§ÆÓrÀÃõ(\�B@sh‘í|?µ¿yé&1Ö‘Àd;ßO�—Àî|?5^ºé?é&1¬L@ÀTã¥›Ä @�—nƒÖrÀ;ßO�—nÀ ×£p= ã¿j¼t“ÑÀ;ßO�—nÀ ×£p= ã¿é&1¬L@ÀTã¥›Ä @�—nƒÖrÀd;ßO�—@î|?5^ºé¿j¼t“ÑÀ¬Zd;ßû¿!°rh‘íì?–C‹lç[6@V-²�@¤p= ×UsÀü©ñÒMb ÀÛù~j¼tÛ¿²�ï§Æ’Àü©ñÒMb ÀÛù~j¼tÛ¿–C‹lç[6@V-²�@¤p= ×UsÀ¬Zd;ßû?!°rh‘í쿲�ï§Æ’Àú~j¼t“À�•C‹lçë?þÔxé&q,À“V­$@Õxé&10uÀ+‡ÙÎwÀ²�ï§ÆKß¿ö(\�B6“À+‡ÙÎwÀ²�ï§ÆKß¿þÔxé&q,À“V­$@Õxé&10uÀú~j¼t“@�•C‹lçë¿ö(\�B6“ÀbX9´È @ßO�—nã?‘í|?5NL@5^ºI ‚"@‘í|?5ÎsÀ‘í|?5^ÀV-²é?˜nƒ@Ï’À‘í|?5^ÀV-²é?‘í|?5NL@5^ºI ‚"@‘í|?5ÎsÀbX9´È ÀßO�—n㿘nƒ@Ï’Àö(\�ÂõÀV-²å?333338@R¸…ë‘&@Ï÷Sã¥=sÀÅ °rh‘ À…ëQ¸…ç¿ +‡–’ÀÅ °rh‘ À…ëQ¸…ç¿333338@R¸…ë‘&@Ï÷Sã¥=sÀö(\�Âõ@V-²å¿ +‡–’À�•C‹lçë?�•C‹lï?ƒÀÊ¡%8ÀôýÔxéæ"@V-²�½sÀF¶óýÔøÀ¦›Ä °rÈ?¤p= ×}’ÀF¶óýÔøÀ¦›Ä °rÈ?ƒÀÊ¡%8ÀôýÔxéæ"@V-²�½sÀ�•C‹lçë¿�•C‹l¦p= ×}’Àu“VÀffffffâ?%�•C+6Àd;ßO�—@-²�ï·tÀìQ¸…ëÀ“V-ê¿5^ºI “ÀìQ¸…ëÀ“V-ê¿%�•C+6Àd;ßO�—@-²�ï·tÀu“V@ffffffâ¿5^ºI “ÀHáz®GÀ°rh‘í|×?ƒÀÊ¡E¦E@øS㥛!@Õxé&1¬rÀƒÀÊ¡E¶ù¿Ãõ(\�Âí¿ffff漑ÀƒÀÊ¡E¶ù¿Ãõ(\�Âí¿ƒÀÊ¡E¦E@øS㥛!@Õxé&1¬rÀHáz®G@°rh‘í|׿ffff漑À‰A`åÐ"@‡ÙÎ÷Së?ƒÀÊ¡E6HÀq= ×£ð @V-²ÅsÀ�—nƒÀ À¤p= ×£à?B`åÐ"º’À�—nƒÀ À¤p= ×£à?ƒÀÊ¡E6HÀq= ×£ð @V-²ÅsÀ‰A`åÐ"À‡ÙÎ÷Së¿B`åÐ"º’À¾Ÿ/ݤÀj¼t“Ö?¶óýÔxé/@çû©ñÒ�'@¦›Ä °4tÀh‘í|?5þ¿?5^ºI î¿°rh‘í¹’Àh‘í|?5þ¿?5^ºI î¿¶óýÔxé/@çû©ñÒ�'@¦›Ä °4tÀ¾Ÿ/ݤ@j¼t“Ö¿°rh‘í¹’À‰A`åТ@ÇK7‰A`å?{®GáÚD@‡ÙÎ÷'@R¸…ë!sÀB`åÐ"Û À+‡ÙÎç?ìQ¸8’ÀB`åÐ"Û À+‡ÙÎç?{®GáÚD@‡ÙÎ÷'@R¸…ë!sÀ‰A`åТÀÇK7‰A`å¿ìQ¸8’Àu“V÷?�—nƒÀî?Ý$�•£H@1¬Z¤%@Zd;ßwuÀôýÔxé&Àš™™™™™Ñ?ƒÀÊ!š“ÀôýÔxé&Àš™™™™™Ñ?Ý$�•£H@1¬Z¤%@Zd;ßwuÀu“V÷¿�—nƒÀÀÊ!š“À…ëQ¸… À�•C‹lç»?ö(\�µDÀìQ¸…ë@}?5^º-sÀTã¥›Ä Ø¿+‡ÙÎï¿^ºI ‚F’ÀTã¥›Ä Ø¿+‡ÙÎï¿ö(\�µDÀìQ¸…ë@}?5^º-sÀ…ëQ¸… @�•C‹l绿^ºI ‚F’ÀÍÌÌÌÌÌÀw¾Ÿ/ÝÄ?%�•C C@'1¬Z@;ßO�—\sÀR¸…ëQä¿/Ý$�•ï¿ÍÌÌÌLc’ÀR¸…ëQä¿/Ý$�•ï¿%�•C C@'1¬Z@;ßO�—\sÀÍÌÌÌÌÌ@w¾Ÿ/ÝÄ¿ÍÌÌÌLc’Àáz®GáÀ%�•C‹ì?`åÐ"Û™2@ÇK7‰A +@}?5^º�tÀJ +‡–À!°rh‘íÜ¿þÔxé&ô’ÀJ +‡–À!°rh‘íÜ¿`åÐ"Û™2@ÇK7‰A +@}?5^º�tÀáz®Gá@%�•C‹ì¿þÔxé&ô’À €ÍÌÌÌÌLÀ-²�ï§â?ü©ñÒMrD@‡ÙÎ÷,@'1¬ÈyÀºI +‡Àj¼t“ê¿X9´È–ÀºI +‡Àj¼t“ê¿ü©ñÒMrD@‡ÙÎ÷,@'1¬ÈyÀÍÌÌÌÌL@-²�ï§â¿X9´È–À“V-ø¿q= ×£pí? +‡y5À¦›Ä °ò@Zd;ßOzÀ¼t“V ÀJ +‡Ù¿Zd;ß­•À¼t“V ÀJ +‡Ù¿ +‡y5À¦›Ä °ò@Zd;ßOzÀ“V-ø?q= ×£pí¿Zd;ß­•À¤p= ×£ü¿/Ý$�•ë?ÍÌÌÌÌŒ@@°rh‘í|@…ëQ¸çyÀü©ñÒMbÀþÔxé&1à¿ÙÎ÷Sc–Àü©ñÒMbÀþÔxé&1à¿ÍÌÌÌÌŒ@@°rh‘í|@…ëQ¸çyÀ¤p= ×£ü?/Ý$�•ë¿ÙÎ÷Sc–À“V- ÀÛù~j¼tç?×£p= ·CÀfffff&&@Ý$�•ÅyÀ¦›Ä °rÀÃõ(\�Âå¿Õxé&1­•À¦›Ä °rÀÃõ(\�Âå¿×£p= ·CÀfffff&&@Ý$�•ÅyÀ“V- @Ûù~j¼tç¿Õxé&1­•ÀÛù~j¼ô@²�ï§ÆKß?h‘í|?A@¢E¶óýÔ$@š™™™™ÁyÀÕxé&1À�•C‹lçë?…ëQ¸ž••ÀÕxé&1À�•C‹lçë?h‘í|?A@¢E¶óýÔ$@š™™™™ÁyÀÛù~j¼ôÀ²�ï§ÆKß¿…ëQ¸ž••ÀþÔxé&1ÀË¡E¶óýä?¬Zd;ß?@j¼t“˜@!°rh‘ÙyÀçû©ñÒMÀTã¥›Ä è¿+‡Y¬•Àçû©ñÒMÀTã¥›Ä è¿¬Zd;ß?@j¼t“˜@!°rh‘ÙyÀþÔxé&1@Ë¡E¶óýä¿+‡Y¬•ÀV-²�@J +‡é?ƒÀÊ¡EFJ@ÙÎ÷Sã%@°rh‘í€yÀåÐ"Ûù~À¬Zd;ßã?…ëQ8œ•ÀåÐ"Ûù~À¬Zd;ßã?ƒÀÊ¡EFJ@ÙÎ÷Sã%@°rh‘í€yÀV-²�ÀJ +‡é¿…ëQ8œ•ÀìQ¸…ëÀ)\�Âõ(è?ÍÌÌÌÌÜA@¼t“*@q= ×£fyÀü©ñÒMbÀË¡E¶óýä¿ôýÔxéc•Àü©ñÒMbÀË¡E¶óýä¿ÍÌÌÌÌÜA@¼t“*@q= ×£fyÀìQ¸…ë@)\�Âõ(è¿ôýÔxéc•ÀÓMbX9 À–C‹lçûá?Ûù~j¼äG@V-²] @‘í|?5ŠyÀÍÌÌÌÌÌÀX9´Èvê¿?5^ºI‘•ÀÍÌÌÌÌÌÀX9´Èvê¿Ûù~j¼äG@V-²] @‘í|?5ŠyÀÓMbX9 @–C‹lçûá¿?5^ºI‘•À^ºI +@ºI +‡æ?sh‘í|<@q= ×£ð%@¨ÆK7‰ÑyÀ!°rh‘í À¸…ëQ¸æ?q= ףޕÀ!°rh‘í À¸…ëQ¸æ?sh‘í|<@q= ×£ð%@¨ÆK7‰ÑyÀ^ºI +ÀºI +‡æ¿q= ףޕÀÅ °rh‘Àã¥›Ä °ê?é&1¬ŒGÀV-r @Ház®—yÀÅ °rh‘ ÀD‹lçû©á¿R¸…뙕ÀÅ °rh‘ ÀD‹lçû©á¿é&1¬ŒGÀV-r @Ház®—yÀÅ °rh‘@ã¥›Ä °ê¿R¸…뙕À'1¬Z @‹lçû©ñæ?¶óýÔx‰9ÀƒÀÊ¡Å"@F¶óýÔžyÀªñÒMb Àçû©ñÒMæ?‰A`åÐe•ÀªñÒMb Àçû©ñÒMæ?¶óýÔx‰9ÀƒÀÊ¡Å"@F¶óýÔžyÀ'1¬Z À‹lçû©ñ濉A`åÐe•ÀHáz®G @'1¬Zì?fffff¦EÀP�—nC-@= ×£p±yÀƒÀÊ¡E6ÀoƒÀÊ¡Ý?ö(\�B¦•ÀƒÀÊ¡E6ÀoƒÀÊ¡Ý?fffff¦EÀP�—nC-@= ×£p±yÀHáz®G À'1¬Zì¿ö(\�B¦•À#Ûù~j¼ú??5^ºI î?)\�ÂõÈ:@‡ÙÎ÷Ó$@P�—nûyÀ¨ÆK7‰AÀj¼t“Ö?V­ó•À¨ÆK7‰AÀj¼t“Ö?)\�ÂõÈ:@‡ÙÎ÷Ó$@P�—nûyÀ#Ûù~j¼ú¿?5^ºI î¿V­ó•ÀR¸…ëQÀªñÒMbä?V-²A@V-²@33333ÕyÀ´Èv¾Ÿÿ¿!°rh‘í迃ÀÊ¡¼•À´Èv¾Ÿÿ¿!°rh‘íè¿V-²A@V-²@33333ÕyÀR¸…ëQ@ªñÒMb促ÀÊ¡¼•ÀœÄ °rh@ ×£p= ·?×£p= wO@mçû©ñÒ@ /Ý$ yÀD‹lçû©Ñ¿¬Zd;ßï?+‡ÙNo•ÀD‹lçû©Ñ¿¬Zd;ßï?×£p= wO@mçû©ñÒ@ /Ý$ yÀœÄ °rhÀ ×£p= ·¿+‡ÙNo•À R¸…ëÑ@…ëQ¸…Û?ÙÎ÷SãGÀoƒÀÊa$@oƒÀÊyyÀ`åÐ"ÛùÀL7‰A`åì?…ëQ8~•À`åÐ"ÛùÀL7‰A`åì?ÙÎ÷SãGÀoƒÀÊa$@oƒÀÊyyÀR¸…ëÑÀ…ëQ¸…Û¿…ëQ8~•À¢E¶óýÔò¿š™™™™™í?š™™™™:ÀÕxé&1@´Èv¾ŸäyÀB`åÐ"ÛÀü©ñÒMbØ¿ßO�—î“•ÀB`åÐ"ÛÀü©ñÒMbØ¿š™™™™:ÀÕxé&1@´Èv¾ŸäyÀ¢E¶óýÔò?š™™™™™í¿ßO�—î“•ÀþÔxé&1@h‘í|?5ê?R¸…ëqDÀÙÎ÷Sã%"@“VÃyÀøSã¥›Ä À‘í|?5^â?¼t“Û•ÀøSã¥›Ä À‘í|?5^â?R¸…ëqDÀÙÎ÷Sã%"@“VÃyÀþÔxé&1Àh‘í|?5꿼t“Û•À¬Zd;@¬Zd;×?¬Zd;¯JÀ7‰A`åP%@mçû©ñŠyÀþ¿mçû©ñÒí?�—nµ•Àþ¿mçû©ñÒí?¬Zd;¯JÀ7‰A`åP%@mçû©ñŠyÀ¬Zd;À¬Zd;׿�—nµ•ÀÝ$�•C@®Gázæ?‰A`åÐbKÀ/Ý$�•%@ÍÌÌÌÌŽyÀ×£p= × À^ºI +ç?øS㥛ޕÀ×£p= × À^ºI +ç?‰A`åÐbKÀ/Ý$�•%@ÍÌÌÌÌŽyÀÝ$�•CÀ®Gázæ¿øS㥛ޕÀ¢E¶óýÔÀD‹lçû©á?ßO�—n²9À/Ý$�#@š™™™™ÏyÀü©ñÒMbÀã¥›Ä °ê¿7‰A`e•Àü©ñÒMbÀã¥›Ä °ê¿ßO�—n²9À/Ý$�#@š™™™™ÏyÀ¢E¶óýÔ@D‹lçû©á¿7‰A`e•À¼t“V@j¼t“æ?¦›Ä °’6ÀÅ °rh‘@+‡ÙzÀü©ñÒMbÀ¬Zd;ç?Ý$�•Å•Àü©ñÒMbÀ¬Zd;ç?¦›Ä °’6ÀÅ °rh‘@+‡ÙzÀ¼t“VÀj¼t“æ¿Ý$�•Å•ÀÉv¾Ÿ¯@333333Ã?ã¥›Ä ð=@j¼t“„#@)\�ÂõèyÀ¸…ëQ¸æ¿ÙÎ÷Sã¥ï?çû©ñR½•À¸…ëQ¸æ¿ÙÎ÷Sã¥ï?ã¥›Ä ð=@j¼t“„#@)\�ÂõèyÀÉv¾Ÿ¯À333333ÿçû©ñR½•À1¬Zd Àžï§ÆK7é?áz®GF@‘í|?5&@Õxé&1¬yÀ¬Zd;ßÀƒÀÊ¡E¶ã¿-²�o®•À¬Zd;ßÀƒÀÊ¡E¶ã¿áz®GF@‘í|?5&@Õxé&1¬yÀ1¬Zd @žï§ÆK7é¿-²�o®•ÀË¡E¶ó}À;ßO�—nÂ?‡ÙÎ÷ó>À¸…ëQx'@h‘í|?çyÀh‘í|?5ê¿®Gáz®ï¿‰A`åP³•Àh‘í|?5ê¿®Gáz®ï¿‡ÙÎ÷ó>À¸…ëQx'@h‘í|?çyÀË¡E¶ó}@;ßO�—n¿‰A`åP³•À�•C‹l@sh‘í|?á?j¼t“8@ü©ñÒMâ$@q= ×£öyÀË¡E¶óýÀ`åÐ"Ûùê?/Ý$­•ÀË¡E¶óýÀ`åÐ"Ûùê?j¼t“8@ü©ñÒMâ$@q= ×£öyÀ�•C‹lÀsh‘í|?á¿/Ý$­•À7‰A`åÐÀZd;ßO�×?\�Âõ(œAÀ‹lçû©ñ@+‡ÙÖyÀoƒÀÊ¡ó¿Ãõ(\�Âí¿Õxé&±ä•ÀoƒÀÊ¡ó¿Ãõ(\�Âí¿\�Âõ(œAÀ‹lçû©ñ@+‡ÙÖyÀ7‰A`åÐ@Zd;ßO�׿Õxé&±ä•À4pòÒMbØ@D‹lçû©á?òÒMbxK@j¼t“&@B`åÐ"•yÀ9´Èv¾ŸÀã¥›Ä °ê?%�•ã–À9´Èv¾ŸÀã¥›Ä °ê?òÒMbxK@j¼t“&@B`åÐ"•yÀòÒMbØÀD‹lçû©á¿%�•ã–À¾Ÿ/Ý$ê?°rh‘í|ï?D‹lçûÙA@–C‹lç»"@'1¬æyÀ +‡ÙÀ ×£p= Ç?Å °rèå–À +‡ÙÀ ×£p= Ç?D‹lçûÙA@–C‹lç»"@'1¬æyÀ¾Ÿ/Ý$ê¿°rh‘í|ï¿Å °rèå–À-²�ï§ê¿ßO�—nï?X9´Èvî@@ü©ñÒMâ@V-ðyÀ×£p= × À +‡Ùοףp= —À×£p= × À +‡ÙοX9´Èvî@@ü©ñÒMâ@V-ðyÀ-²�ï§ê?ßO�—nï¿×£p= —À‹lçû©ñ@žï§ÆK7å?�Âõ(\D@V-²@ƒÀÊ¡ÇyÀ¬Zd;ÀV-²�ïç?Zd;ßO¤–À¬Zd;ÀV-²�ïç?�Âõ(\D@V-²@ƒÀÊ¡ÇyÀ‹lçû©ñÀžï§ÆK7å¿Zd;ßO¤–À?5^ºI ð¿ÙÎ÷Sã¥ï?Ñ"Ûù~Š6@Ë¡E¶óý,@V-² zÀÃõ(\�ÂÀ‹lçû©ñ¿ÍÌÌÌLm–ÀÃõ(\�ÂÀ‹lçû©ñ¿Ñ"Ûù~Š6@Ë¡E¶óý,@V-² zÀ?5^ºI ð?ÙÎ÷Sã¥ï¿ÍÌÌÌLm–ÀåÐ"Ûù~ @ffffffæ?ü©ñÒMb4À +‡Y!@D‹lçûzÀ`åÐ"ÛùÀ +‡Ùæ?w¾Ÿ/H–À`åÐ"ÛùÀ +‡Ùæ?ü©ñÒMb4À +‡Y!@D‹lçûzÀåÐ"Ûù~ Àffffffæ¿w¾Ÿ/H–ÀÙÎ÷Sã@`åÐ"ÛùÖ?V-’9À®GázÔ&@^ºI ýyÀd;ßO�—þ¿B`åÐ"Ûí?Ý$�X—Àd;ßO�—þ¿B`åÐ"Ûí?V-’9À®GázÔ&@^ºI ýyÀÙÎ÷SãÀ`åÐ"ÛùÖ¿Ý$�X—Àú~j¼t“ ÀX9´ÈvÎ?{®Gáú8@Ï÷S㥛@ìQ¸…zÀßO�—në¿ßO�—nï¿�Âõ(ܹ–ÀßO�—në¿ßO�—nï¿{®Gáú8@Ï÷S㥛@ìQ¸…zÀú~j¼t“ @X9´Èvο�Âõ(ܹ–Àq= ×£pÀ‰A`åÐ"»?¬Zd;8@Ý$�•C&@¬Zd; zÀçû©ñÒMâ¿+‡ÙÎï¿/Ý$†P—Àçû©ñÒMâ¿+‡ÙÎ↓Zd;8@Ý$�•C&@¬Zd; zÀq= ×£p@‰A`åÐ"»¿/Ý$†P—ÀoƒÀÊ¡ @ ×£p= Ç?¦›Ä °6@+‡ÙN@Ë¡E¶ózÀþÔxé&1ä¿°rh‘í|ï?ºI « —ÀþÔxé&1ä¿°rh‘í|ï?¦›Ä °6@+‡ÙN@Ë¡E¶ózÀoƒÀÊ¡ À ×£p= Ç¿ºI « —ÀffffffÀD‹lçû©í?33333Ó5À®Gázn'@`åÐ"ÛzÀƒÀÊ¡EÀØ¿ºI +––ÀƒÀÊ¡EÀØ¿33333Ó5À®Gázn'@`åÐ"ÛzÀffffff@D‹lçû©í¿ºI +––ÀÛù~j¼t@Õxé&1è?mçû©ñbKÀ¬Zd;#@–C‹lç‹yÀ7‰A`åÐ À…ëQ¸å?ffffæ4–À7‰A`åÐ À…ëQ¸å?mçû©ñbKÀ¬Zd;#@–C‹lç‹yÀÛù~j¼tÀÕxé&1è¿ffffæ4–ÀƒÀÊ¡E¶ Àw¾Ÿ/Ýà?R¸…ëqI@u“V"@´Èv¾Ÿ¢yÀ¦›Ä °rÀ333333뿲�ï§Æ—–À¦›Ä °rÀ333333ë¿R¸…ëqI@u“V"@´Èv¾Ÿ¢yÀƒÀÊ¡E¶ @w¾Ÿ/Ý࿲�ï§Æ—–Àq= ×£p@Ë¡E¶óýÄ?œÄ °røC@ð§ÆK7I'@Ý$�•ÛyÀ{®Gázì¿Zd;ßO�ï?bX94 —À{®Gázì¿Zd;ßO�ï?œÄ °røC@ð§ÆK7I'@Ý$�•ÛyÀq= ×£pÀË¡E¶óýÄ¿bX94 —ÀR¸…ëQ@'1¬Zì?òÒMbØ=@Év¾Ÿo$@²�ï§ÆëyÀ ×£p=ŠÀoƒÀÊ¡Ý?é&1¬b–À ×£p=ŠÀoƒÀÊ¡Ý?òÒMbØ=@Év¾Ÿo$@²�ï§ÆëyÀR¸…ëQÀ'1¬Zì¿é&1¬b–ÀZd;ßO @×£p= ×Û?´Èv¾Ÿ:2@!°rh‘m+@/Ý$�!zÀÝ$�•CÀÍÌÌÌÌÌì?X9´H3–ÀÝ$�•CÀÍÌÌÌÌÌì?´Èv¾Ÿ:2@!°rh‘m+@/Ý$�!zÀZd;ßO À×£p= ×Û¿X9´H3–À#Ûù~j¼ À…ëQ¸…ç?ü©ñÒMâ@À‰A`åÐâ%@X9´ÈÚyÀ^ºI +ÀV-²å¿w¾Ÿ¯†–À^ºI +ÀV-²å¿ü©ñÒMâ@À‰A`åÐâ%@X9´ÈÚyÀ#Ûù~j¼ @…ëQ¸…ç¿w¾Ÿ¯†–À?5^ºIŒ@òÒMbXÙ?w¾Ÿ/íG@çû©ñÒÍ-@ßO�—n´yÀj¼t“ÀÇK7‰A`í?u“ÖÞ–Àj¼t“ÀÇK7‰A`í?w¾Ÿ/íG@çû©ñÒÍ-@ßO�—n´yÀ?5^ºIŒÀòÒMbXÙ¿u“ÖÞ–ÀþÔxé&1À-²�ï§Ö?®GáznFÀT㥛Äà!@j¼t“ÂyÀºI +‡ø¿ìQ¸…ëí¿ /Ý$Q—ÀºI +‡ø¿ìQ¸…ëí¿®GáznFÀT㥛Äà!@j¼t“ÂyÀþÔxé&1@-²�ï§Ö¿ /Ý$Q—À�—nƒÀ@-²�ï§Æç?Ház®'>À®GázT"@ƒÀÊ¡ùyÀü©ñÒMb ÀœÄ °rhå?²�ï§Æ —Àü©ñÒMb ÀœÄ °rhå?Ház®'>À®GázT"@ƒÀÊ¡ùyÀ�—nƒÀÀ-²�ï§Æç¿²�ï§Æ —ÀË¡E¶óýò¿V-²í?¬Zd;ïDÀøS㥛Ä@V-ÄyÀ¤p= ×£À¬Zd;ß׿V-¬–À¤p= ×£À¬Zd;ß׿¬Zd;ïDÀøS㥛Ä@V-ÄyÀË¡E¶óýò?V-²í¿V-¬–ÀªñÒMb@Ï÷S㥛Ü??5^ºIL6À-²�ï''@fffffzÀ /Ý$À¤p= ×£ì?‹lçû©Ò–À /Ý$À¤p= ×£ì??5^ºIL6À-²�ï''@fffffzÀªñÒMbÀÏ÷S㥛ܿ‹lçû©Ò–ÀR¸…ëQ À)\�Âõ(è?9´Èv¾¿<@}?5^ºI&@/Ý$�ÿyÀ˜nƒÀJÀË¡E¶óýä¿ÁÊ¡E¶—À˜nƒÀJÀË¡E¶óýä¿9´Èv¾¿<@}?5^ºI&@/Ý$�ÿyÀR¸…ëQ @)\�Âõ(è¿ÁÊ¡E¶—ÀR¸…ëQø¿ºI +‡î?ÁÊ¡E¶cAÀòÒMbØ$@ÓMbXëyÀsh‘í|?ÀÝ$�•CÓ¿ð§ÆK·ü–Àsh‘í|?ÀÝ$�•CÓ¿ÁÊ¡E¶cAÀòÒMbØ$@ÓMbXëyÀR¸…ëQø?ºI +‡î¿ð§ÆK·ü–ÀÙÎ÷SãÝ¿X9´Èv¾ï?X9´Èv^=@ÇK7‰Aà@çû©ñÒùyÀX9´Èv ÀTã¥›Ä À¿w¾Ÿ/>—ÀX9´Èv ÀTã¥›Ä À¿X9´Èv^=@ÇK7‰Aà@çû©ñÒùyÀÙÎ÷SãÝ?X9´Èv¾ï¿w¾Ÿ/>—ÀþÔxé&1 @B`åÐ"Ûá?-²�ïç>@ã¥›Ä °@ÙÎ÷SãéyÀV-²�À�Âõ(\�ê?˜nƒÀ –ÀV-²�À�Âõ(\�ê?-²�ïç>@ã¥›Ä °@ÙÎ÷SãéyÀþÔxé&1 ÀB`åÐ"ÛῘnƒÀ –À2XB`åÐ"Û@ffffffÆ?^ºI kEÀmçû©ñÒ$@Ë¡E¶óËyÀþÔxé&1ì¿…ëQ¸…ï?þÔx馗ÀþÔxé&1ì¿…ëQ¸…ï?^ºI kEÀmçû©ñÒ$@Ë¡E¶óËyÀB`åÐ"ÛÀffffffÆ¿þÔx馗À�—nƒ@À}?5^ºIÌ?ð§ÆK7GÀq= ×£p%@;ßO�—®yÀR¸…ëQò¿333333ï¿`åÐ"Û.–ÀR¸…ëQò¿333333ï¿ð§ÆK7GÀq= ×£p%@;ßO�—®yÀ�—nƒ@@}?5^ºIÌ¿`åÐ"Û.–À}?5^ºI@-²�ï§ÆË? +‡ÙAÀD‹lçû)@w¾Ÿ/ãyÀ¶óýÔxé꿬Zd;ï? ×£p=—À¶óýÔxé꿬Zd;ï? +‡ÙAÀD‹lçû)@w¾Ÿ/ãyÀ}?5^ºIÀ-²�ï§ÆË¿ ×£p=—À‰A`åÐ"@V-²�ã?B`åÐ"{F@7‰A`åP+@ƒÀÊ¡EÈyÀƒÀÊ¡EÀHáz®Gé?�•C‹l —ÀƒÀÊ¡EÀHáz®Gé?B`åÐ"{F@7‰A`åP+@ƒÀÊ¡EÈyÀ‰A`åÐ"ÀV-²�ã¿�•C‹l —À\�Âõ(\À¼t“Vâ?¦›Ä °‚D@NbX9´@%�•CÇyÀ‡ÙÎ÷SÀ= ×£p=꿉A`åÐ'–À‡ÙÎ÷SÀ= ×£p=꿦›Ä °‚D@NbX9´@%�•CÇyÀ\�Âõ(\@¼t“V⿉A`åÐ'–À¨ÆK7‰A @ƒÀÊ¡E¶Ó?^ºI k8À‡ÙÎ÷Ó@ ×£p=zÀ`åÐ"Ûùð¿X9´Èvî?¬Zd;x–À`åÐ"Ûùð¿X9´Èvî?^ºI k8À‡ÙÎ÷Ó@ ×£p=zÀ¨ÆK7‰A ÀƒÀÊ¡E¶Ó¿¬Zd;x–ÀôýÔxé&Àj¼t“à?œÄ °rh;Àj¼t“"@Ãõ(\�øyÀÅ °rh‘ÀÙÎ÷Sã¥ë¿ÁÊ¡E6@–ÀÅ °rh‘ÀÙÎ÷Sã¥ë¿œÄ °rh;Àj¼t“"@Ãõ(\�øyÀôýÔxé&@j¼t“à¿ÁÊ¡E6@–ÀZd;ßO�@sh‘í|?á?ü©ñÒMbE@`åÐ"Û¹"@Ë¡E¶óÍyÀZd;ßO�À‹lçû©ñê?ð§ÆK·4—ÀZd;ßO�À‹lçû©ñê?ü©ñÒMbE@`åÐ"Û¹"@Ë¡E¶óÍyÀZd;ßO�Àsh‘í|?á¿ð§ÆK·4—À°rh‘í|@Ý$�•CË?Å °rh±8@)\�Âõh @�•C‹ zÀ¢E¶óýÔì¿Ý$�•Cï?{®Gá÷–À¢E¶óýÔì¿Ý$�•Cï?Å °rh±8@)\�Âõh @�•C‹ zÀ°rh‘í|ÀÝ$�•CË¿{®Gá÷–À9´Èv¾Ÿ ÀƒÀÊ¡E¶?ôýÔxéVBÀœÄ °rè@d;ßO�ÕyÀ#Ûù~j¼Ô¿¬Zd;ßï¿´Èv¾ –À#Ûù~j¼Ô¿¬Zd;ßï¿ôýÔxéVBÀœÄ °rè@d;ßO�ÕyÀ9´Èv¾Ÿ @ƒÀÊ¡E¶¿´Èv¾ –ÀÇK7‰A`ñ¿¬Zd;ï?î|?5^:L@¬Zd{$@Å °rh‡yÀ'1¬ZÀÕxé&1Ì¿®Gáz0–À'1¬ZÀÕxé&1Ì¿î|?5^:L@¬Zd{$@Å °rh‡yÀÇK7‰A`ñ?¬Zd;ï¿®Gáz0–ÀƒÀÊ¡E¶ÀV-²å?ð§ÆK7©3ÀªñÒMbÐ)@ßO�—nzÀ¼t“VÀ…ëQ¸…ç¿×£p=Š —À¼t“VÀ…ëQ¸…ç¿ð§ÆK7©3ÀªñÒMbÐ)@ßO�—nzÀƒÀÊ¡E¶@V-²å¿×£p=Š —ÀV-²�@�Âõ(\�ê?°rh‘í\:@…ëQ¸Å&@Ûù~j¼þyÀ²�ï§ÆKÀB`åÐ"Ûá?{®Ga–À²�ï§ÆKÀB`åÐ"Ûá?°rh‘í\:@…ëQ¸Å&@Ûù~j¼þyÀV-²�À�Âõ(\�ê¿{®Ga–À‹lçû©ñÀ´Èv¾Ÿã? +‡‰FÀÍÌÌÌÌŒ$@î|?5^´yÀ�—nƒÀÀV-²é¿ü©ñÒÍ”–À�—nƒÀÀV-²é¿ +‡‰FÀÍÌÌÌÌŒ$@î|?5^´yÀ‹lçû©ñ@´Èv¾Ÿã¿ü©ñÒÍ”–ÀªñÒMbü¿bX9´Èî?%�•CK>À\�Âõ(œ+@ð§ÆK7çyÀ²�ï§ÆËÀœÄ °rhÑ¿ƒÀÊ¡Åv–À²�ï§ÆËÀœÄ °rhÑ¿%�•CK>À\�Âõ(œ+@ð§ÆK7çyÀªñÒMbü?bX9´ÈÀÊ¡Åv–À%�•C‹À%�•C‹ä?ÓMbX9I@Õxé&1ˆ @oƒÀÊ©yÀ�Âõ(\�À%�•C‹è¿1¬Zt–À�Âõ(\�À%�•C‹è¿ÓMbX9I@Õxé&1ˆ @oƒÀÊ©yÀ%�•C‹@%�•C‹ä¿1¬Zt–À5^ºI  ÀÙÎ÷Sã¥ç?;ßO�—Ž6À“Ví#@P�—n zÀP�—nƒ ÀÅ °rh‘心ÀÊ¡Å9—ÀP�—nƒ ÀÅ °rh‘å¿;ßO�—Ž6À“Ví#@P�—n zÀ5^ºI  @ÙÎ÷Sã¥ç¿ƒÀÊ¡Å9—ÀÕxé&1ˆÀ+‡ÙÎ÷³?NbX9;À{®Gá:$@Ë¡E¶ó÷yÀR¸…ëQØ¿�•C‹lçï¿…ëQ¸Z–ÀR¸…ëQØ¿�•C‹lçï¿NbX9;À{®Gá:$@Ë¡E¶ó÷yÀÕxé&1ˆ@+‡ÙÎ÷³¿…ëQ¸Z–Àyé&1¬ð?Ûù~j¼tï?Ház®·GÀš™™™™™'@;ßO�—¼yÀF¶óýÔxÀ²�ï§ÆKÇ?Ï÷Sã¥=—ÀF¶óýÔxÀ²�ï§ÆKÇ?Ház®·GÀš™™™™™'@;ßO�—¼yÀyé&1¬ð¿Ûù~j¼tï¿Ï÷Sã¥=—À¶óýÔxé@{®GázÜ?oƒÀÊa3@ú~j¼tÓ!@J +‡zÀ�—nƒÀþ¿¤p= ×£ì?Õxé&1½–À�—nƒÀþ¿¤p= ×£ì?oƒÀÊa3@ú~j¼tÓ!@J +‡zÀ¶óýÔxéÀ{®GázÜ¿Õxé&1½–Àžï§ÆK7 Àçû©ñÒMÂ?¨ÆK7‰A=@#Ûù~j¼@þÔxé&ÿyÀZd;ßO�ß¿®Gáz®ï¿R¸…k—ÀZd;ßO�ß¿®Gáz®ï¿¨ÆK7‰A=@#Ûù~j¼@þÔxé&ÿyÀžï§ÆK7 @çû©ñÒM¿R¸…k—ÀX9´Èv¾@š™™™™™í?ÓMbXyO@Ûù~j¼´&@²�ï§ÆsyÀ¢E¶óýTÀü©ñÒMbØ?Ý$�M—À¢E¶óýTÀü©ñÒMbØ?ÓMbXyO@Ûù~j¼´&@²�ï§ÆsyÀX9´Èv¾Àš™™™™™í¿Ý$�M—ÀåÐ"Ûù~ü?{®Gázì?š™™™™™H@ôýÔxé& @}?5^ºµyÀB`åÐ"Û À…ëQ¸Ý?j¼t“ÿ–ÀB`åÐ"Û À…ëQ¸Ý?š™™™™™H@ôýÔxé& @}?5^ºµyÀåÐ"Ûù~ü¿{®Gázì¿j¼t“ÿ–À“V-@yé&1¬à?œÄ °r¨4ÀÅ °rh(@X9´ÈzÀœÄ °rhÀ‡ÙÎ÷Së?u“V)–ÀœÄ °rhÀ‡ÙÎ÷Së?œÄ °r¨4ÀÅ °rh(@X9´ÈzÀ“V-Àyé&1¬à¿u“V)–À{®GázÀ…ëQ¸é?¢E¶óýG@ôýÔxéf$@NbX9¶yÀj¼t“À+‡ÙÎã¿-²�ïÊ–Àj¼t“À+‡ÙÎã¿¢E¶óýG@ôýÔxéf$@NbX9¶yÀ{®Gáz@…ëQ¸é¿-²�ïÊ–Àà?$ ¾Ÿ/Ý$Æ¿ºI +‡ú¿ƒÀÊ¡EÆ?ºI +‡ú?ƒÀÊ¡EÆ¿ºI +‡ú¿¤p= ×£à¿1¬ZäÀ¦›Ä °rÈ?{®Gázú?¦›Ä °rÈ¿{®Gázú¿¸…ëQ¸ð¿¤p= ×ã#À+‡ÙÎ×?mçû©ñÒù?+‡ÙÎ׿mçû©ñÒù¿9´Èv¾Ÿú¿�Âõ(\Ï-ÀÃõ(\�Âá?‰A`åÐ"ù?Ãõ(\�ÂΈA`åÐ"ù¿ÓMbX9 À¨ÆK7‰¡3ÀƒÀÊ¡Eâ?u“Vù?ƒÀÊ¡Eâ¿u“Vù¿X9´ÈöÀ®GázT8À“V-â?ßO�—nù?“V-â¿ßO�—nù¿7‰A`åÐÀºI +=ÀœÄ °rhá?333333ù?œÄ °rhá¿333333ù¿²�ï§ÆË À= ×£pÝ@À¬Zd;ß?°rh‘í|ù?¬Zd;ß¿°rh‘í|ù¿ã¥›Ä ð#À°rh‘íÀ\�Âõ(4^ÀøS㥛ÄÀ¿Õxé&1Ü?˜nƒÀÊù?øS㥛ÄÀ?Õxé&1Ü¿˜nƒÀÊù¿ @ôýÔxéæ?À‹lçû©i_À¤p= ×£À¿˜nƒÀÊÙ?˜nƒÀÊù?¤p= ×£À?˜nƒÀÊÙ¿˜nƒÀÊù¿‰A`åÐ"@V-²�@ÀÝ$�•O`À¨ÆK7‰AÀ¿˜nƒÀÊÙ?˜nƒÀÊù?¨ÆK7‰AÀ?˜nƒÀÊÙ¿˜nƒÀÊù¿V-²@)\�Âõ(AÀu“Vê`À°rh‘í|¿¿˜nƒÀÊÙ?˜nƒÀÊù?°rh‘í|¿?˜nƒÀÊÙ¿˜nƒÀÊù¿9´Èv¾Ÿ@ú~j¼tÃAÀ…ëQ¸…aÀh‘í|?5¾¿®Gáz®×?+‡ÙÎù?h‘í|?5¾?®Gáz®×¿+‡ÙÎù¿ú~j¼t@‘í|?5^BÀ–C‹lçbÀÑ"Ûù~j¼¿‘í|?5^Ê?+‡ÙÎù?Ñ"Ûù~j¼?‘í|?5^Ê¿+‡ÙÎù¿¦›Ä °r@àBÀX9´ÈºbÀé&1¬º¿î|?5^ºÙ?mçû©ñÒù?é&1¬º?î|?5^ºÙ¿mçû©ñÒù¿î|?5^º@?5^ºIüBÀV-²UcÀZd;ßO�·¿333333ã?×£p= ×ù?Zd;ßO�·?333333ã¿×£p= ×ù¿fffffæ@øS㥛DÀq= ×£ðcÀ#Ûù~j¼´¿Õxé&1Ü?×£p= ×ù?#Ûù~j¼´?Õxé&1ܿףp= ×ù¿‹lçû©ñ@ÓMbXÉDÀHáz®‹dÀD‹lçû©±¿B`åÐ"ÛÙ?B`åÐ"Ûù?D‹lçû©±?B`åÐ"ÛÙ¿B`åÐ"Ûù¿B`åÐ"Û@Ûù~j¼dEÀ˜nƒÀ&eÀÉv¾Ÿ/­¿˜nƒÀÊÙ?B`åÐ"Ûù?Év¾Ÿ/­?˜nƒÀÊÙ¿B`åÐ"Ûù¿é&1¬œ@¬Zd;ÿEÀÙÎ÷SãÁeÀj¼t“¦¿˜nƒÀÊÙ?¬Zd;ßù?j¼t“¦?˜nƒÀÊÙ¿¬Zd;ßù¿žï§ÆK7@D‹lçû™FÀ“V]fÀV-²�¿˜nƒÀÊÙ?¬Zd;ßù?V-²�?˜nƒÀÊÙ¿¬Zd;ßù¿ÙÎ÷Sã¥@Ûù~j¼4GÀÇK7‰AøfÀ¸…ëQ¸Ž¿®Gáz®×?¬Zd;ßù?¸…ëQ¸Ž?®Gáz®×¿¬Zd;ßù¿¶óýÔxé@Zd;ßÏGÀsh‘í|“gÀü©ñÒMbp?¢E¶óýÔÈ?¬Zd;ßù?ü©ñÒMbp¿¢E¶óýÔÈ¿¬Zd;ßù¿@þÔxé&QHÀ…ëQ¸.hÀV-²�?Ház®GÙ?¬Zd;ßù?V-²�¿Ház®GÙ¿¬Zd;ßù¿mçû©ñÒ@¢E¶óýdHÀD‹lçûÉhÀV-²­?/Ý$�•ã?B`åÐ"Ûù?V-²­¿/Ý$�•ã¿B`åÐ"Ûù¿çû©ñÒM@ÇK7‰A€IÀþÔxé&eiÀÃõ(\�µ?{®GázÜ?×£p= ×ù?Ãõ(\�µ¿{®Gázܿףp= ×ù¿q= ×£p@˜nƒÀ:JÀÇK7‰AjÀyé&1¬¼?˜nƒÀÊÙ?+‡ÙÎù?yé&1¬¼¿˜nƒÀÊÙ¿+‡ÙÎù¿�—nƒ@@¼t“ÖJÀ33333›jÀð§ÆK7‰Á?˜nƒÀÊÙ?-²�ï§Æù?ð§ÆK7‰Á¿˜nƒÀÊÙ¿-²�ï§Æù¿�—nƒÀ@ÇK7‰ApKÀD‹lçû5kÀ{®GázÄ?˜nƒÀÊÙ?X9´Èv¾ù?{®GázÄ¿˜nƒÀÊÙ¿X9´Èv¾ù¿X9´Èö@Ï÷S㥠LÀj¼t“ÐkÀ ×£p= Ç?î|?5^ºÙ?ƒÀÊ¡E¶ù? ×£p= Ç¿î|?5^ºÙ¿ƒÀÊ¡E¶ù¿Ñ"Ûù~ê@ /Ý$¦LÀmçû©ñjlÀòÒMbXÉ?d;ßO�—Ö?®Gáz®ù?òÒMbXÉ¿d;ßO�—Ö¿®Gáz®ù¿oƒÀÊ¡@T㥛Ä@MÀ…ëQ¸mÀÝ$�•CË?¾Ÿ/Ý$Æ?ÙÎ÷Sã¥ù?Ý$�•CË¿¾Ÿ/Ý$Æ¿ÙÎ÷Sã¥ù¿çû©ñÒM@…ëQ¸µMÀÉv¾ŸŸmÀÍÌÌÌÌÌÌ?D‹lçû©Ù?V-²�ù?ÍÌÌÌÌÌÌ¿D‹lçû©Ù¿V-²�ù¿ /Ý$ @ÙÎ÷SãÅMÀ7‰A`å8nÀÁÊ¡E¶óÍ?¨ÆK7‰Aä?š™™™™™ù?ÁÊ¡E¶óÍ¿¨ÆK7‰A俚™™™™™ù¿°rh‘í|@F¶óýÔèNÀÃõ(\�ÒnÀd;ßO�—Î?sh‘í|?Ý?/Ý$�•ù?d;ßO�—οsh‘í|?Ý¿/Ý$�•ù¿Å °rh‘û?#Ûù~j¬OÀã¥›Ä loÀ +‡ÙÎ?˜nƒÀÊÙ?/Ý$�•ù? +‡Ùο˜nƒÀÊÙ¿/Ý$�•ù¿ð?ÁÊ¡E¶#PÀ‰A`åÐpÀd;ßO�—Î?B`åÐ"ÛÙ?/Ý$�•ù?d;ßO�—οB`åÐ"ÛÙ¿/Ý$�•ù¿î|?5^ºÑ?F¶óýÔpPÀ!°rh‘OpÀÁÊ¡E¶óÍ?B`åÐ"ÛÙ?š™™™™™ù?ÁÊ¡E¶óÍ¿B`åÐ"ÛÙ¿š™™™™™ù¿�•C‹lçÛ¿-²�ï§¾PÀ1¬ZœpÀÍÌÌÌÌÌÌ?î|?5^ºÙ?V-²�ù?ÍÌÌÌÌÌÌ¿î|?5^ºÙ¿V-²�ù¿?5^ºI ò¿¤p= × QÀw¾Ÿ/épÀÝ$�•CË?œÄ °rhá?ÙÎ÷Sã¥ù?Ý$�•CË¿œÄ °rhá¿ÙÎ÷Sã¥ù¿Ï÷S㥛ü¿þÔxé&YQÀ®Gáz6qÀòÒMbXÉ?9´Èv¾ŸÊ?®Gáz®ù?òÒMbXÉ¿9´Èv¾ŸÊ¿®Gáz®ù¿Ý$�•CÀÍÌÌÌÌÜQÀP�—nƒqÀ ×£p= Ç?ìQ¸…ëÁ¿ƒÀÊ¡E¶ù? ×£p= Ç¿ìQ¸…ëÁ?ƒÀÊ¡E¶ù¿¢E¶óýÔÀ)\�Âõ¨QÀ\�Âõ(ÐqÀ{®GázÄ?ú~j¼t“h¿X9´Èv¾ù?{®GázÄ¿ú~j¼t“h?X9´Èv¾ù¿!°rh‘í À×£p= §QÀÓMbXrÀð§ÆK7‰Á?¤p= ×£Ð?-²�ï§Æù?ð§ÆK7‰Á¿¤p= ףп-²�ï§Æù¿/Ý$�ÀZd;ß§QÀq= ×£jrÀyé&1¬¼?ƒÀÊ¡E¶ã?+‡ÙÎù?yé&1¬¼¿ƒÀÊ¡E¶ã¿+‡ÙÎù¿�—nƒ@À˜nƒÀ RÀyé&1¸rÀÃõ(\�µ?`åÐ"Ûùæ?×£p= ×ù?Ãõ(\�µ¿`åÐ"Ûùæ¿×£p= ×ù¿q= ×£pÀ®Gáz”RÀ/Ý$�sÀV-²­?5^ºI ç?B`åÐ"Ûù?V-²­¿5^ºI ç¿B`åÐ"Ûù¿çû©ñÒMÀfffffSÀ“VSsÀV-²�?F¶óýÔxå?mçû©ñÒù?V-²�¿F¶óýÔxå¿mçû©ñÒù¿mçû©ñÒÀT㥛ĨSÀ´Èv¾Ÿ sÀú~j¼t“h?¤p= ×£à?V-²ù?ú~j¼t“h¿¤p= ×£à¿V-²ù¿À TÀË¡E¶óísÀü©ñÒMb�¿w¾Ÿ/ÝÜ?Zd;ßO�ù?ü©ñÒMb�?w¾Ÿ/ÝÜ¿Zd;ßO�ù¿fffffæÀj¼t“pTÀX9´È:tÀL7‰A`å ¿´Èv¾Ÿß?/Ý$�ù?L7‰A`å ?´Èv¾Ÿß¿/Ý$�ù¿Ï÷S㥛Àh‘í|?ÍTÀZd;ßO‡tÀú~j¼t“¨¿^ºI +ß?°rh‘í|ù?ú~j¼t“¨?^ºI +ß¿°rh‘í|ù¿…ëQ¸ÀP�—n+UÀoƒÀÊÓtÀü©ñÒMb°¿¦›Ä °rä?°rh‘í|ù?ü©ñÒMb°?¦›Ä °rä¿°rh‘í|ù¿‹lçû©qÀÕxé&1ˆUÀ ×£p= uÀ+‡ÙÎ÷³¿´Èv¾ŸÏ?F¶óýÔxù?+‡ÙÎ÷³?´Èv¾ŸÏ¿F¶óýÔxù¿J +‡–ÀÇK7‰A VÀé&1¬luÀZd;ßO�·¿+‡ÙÎÇ¿Ûù~j¼tù?Zd;ßO�·?+‡ÙÎÇ?Ûù~j¼tù¿ªñÒMb�ÀL7‰A`åUÀP�—n¹uÀáz®Gếü©ñÒMb ¿q= ×£pù?áz®Gáº?ü©ñÒMb ?q= ×£pù¿�—nƒÀÀ)\�ÂõØUÀ�•C‹lvÀÁÊ¡E¶ó½¿ú~j¼t“ˆ?q= ×£pù?ÁÊ¡E¶ó½?ú~j¼t“ˆ¿q= ×£pù¿J +‡ À)\�ÂõØUÀ9´Èv¾QvÀ¨ÆK7‰AÀ¿ºI +‡Ö?�•C‹lù?¨ÆK7‰AÀ?ºI +‡Ö¿�•C‹lù¿)\�Âõ( ÀƒÀÊ¡ÝUÀ¼t“žvÀœÄ °rhÁ¿+‡ÙÎç?œÄ °rhù?œÄ °rhÁ?+‡ÙÎç¿œÄ °rhù¿À-²�ï_VÀÇK7‰AêvÀçû©ñÒM¿ÙÎ÷Sãé?1¬Zdù?çû©ñÒMÂ?ÙÎ÷Sãé¿1¬Zdù¿¤p= ×£À¬ZdûVÀ®Gáz6wÀßO�—nÿÙÎ÷Sãé?1¬Zdù?ßO�—nÃ?ÙÎ÷Sãé¿1¬Zdù¿¨ÆK7‰Aþ¿X9´Èv–WÀ-²�ï§‚wÀ/Ý$�•ÿÙÎ÷Sãé?ÇK7‰A`ù?/Ý$�•Ã?ÙÎ÷Sãé¿ÇK7‰A`ù¿`åÐ"Ûùö¿5^ºI 2XÀ‰A`åÐÎwÀ+‡ÙÎ÷ÿé&1¬ê?ÇK7‰A`ù?+‡ÙÎ÷Ã?é&1¬ê¿ÇK7‰A`ù¿ ×£p= ï¿w¾Ÿ/ÍXÀmçû©ñxÀj¼t“Ä¿-²�ï§Æç?ÇK7‰A`ù?j¼t“Ä?-²�ï§Æç¿ÇK7‰A`ù¿à¿¬ZdkYÀ +‡gxÀ+‡ÙÎ÷ÿð§ÆK7‰å?ÇK7‰A`ù?+‡ÙÎ÷Ã?ð§ÆK7‰å¿ÇK7‰A`ù¿¸…ëQ¸ž¿Ñ"Ûù~êYÀð§ÆK7³xÀ/Ý$�•ÿøSã¥›ÄØ?ÇK7‰A`ù?/Ý$�•Ã?øSã¥›ÄØ¿ÇK7‰A`ù¿�•C‹lçÛ?ö(\�ÂmZÀ�Âõ(\ÿxÀßO�—nÿJ +‡¹?1¬Zdù?ßO�—nÃ?J +‡¹¿1¬Zdù¿P�—nƒì?åÐ"Ûù~ZÀìQ¸…KyÀçû©ñÒM¿°rh‘í|¿?1¬Zdù?çû©ñÒMÂ?°rh‘í|¿¿1¬Zdù¿Ház®Gõ?33333“ZÀV-²—yÀœÄ °rhÁ¿œÄ °rhÁ?œÄ °rhù?œÄ °rhÁ?œÄ °rhÁ¿œÄ °rhù¿ü?®Gáz®ZÀ–C‹lçãyÀ¨ÆK7‰AÀ¿)\�Âõ(Ô?�•C‹lù?¨ÆK7‰AÀ?)\�Âõ(Ô¿�•C‹lù¿)\�Âõ(@�Âõ(\ÇZÀ /Ý$0zÀÁÊ¡E¶ó½¿V-²å?q= ×£pù?ÁÊ¡E¶ó½?V-²å¿q= ×£pù¿J +‡@åÐ"Ûù&[ÀßO�—n|zÀáz®Gế²�ï§ÆKë?q= ×£pù?áz®Gáº?²�ï§ÆKë¿q= ×£pù¿�—nƒÀ@ÁÊ¡E¶Ë[À˜nƒÀÈzÀZd;ßO�·¿¾Ÿ/Ý$ê?Ûù~j¼tù?Zd;ßO�·?¾Ÿ/Ý$ê¿Ûù~j¼tù¿Tã¥›Ä @X9´Èvn\ÀÉv¾Ÿ{À+‡ÙÎ÷³¿…ëQ¸…ç?F¶óýÔxù?+‡ÙÎ÷³?…ëQ¸…ç¿F¶óýÔxù¿“V- @/Ý$�]À/Ý$�a{Àü©ñÒMb°¿…ëQ¸…ã?°rh‘í|ù?ü©ñÒMb°?…ëQ¸…ã¿°rh‘í|ù¿ÙÎ÷Sã @j¼t“ˆ]ÀR¸…ë­{Àú~j¼t“¨¿¦›Ä °rà?°rh‘í|ù?ú~j¼t“¨?¦›Ä °rà¿°rh‘í|ù¿= ×£p=@-²�ïï]ÀªñÒMbú{ÀL7‰A`å ¿²�ï§ÆKß?°rh‘í|ù?L7‰A`å ?²�ï§ÆKß¿°rh‘í|ù¿žï§ÆK7@ö(\�ÂM^À¾Ÿ/ÝF|Àü©ñÒMb�¿u“Vá?/Ý$�ù?ü©ñÒMb�?u“Vá¿/Ý$�ù¿ÍÌÌÌÌÌ@Ý$�•«^À�Âõ(\“|Àú~j¼t“h¿çû©ñÒMâ?/Ý$�ù?ú~j¼t“h?çû©ñÒMâ¿/Ý$�ù¿@´Èv¾Ÿ_À`åÐ"Ûß|Àú~j¼t“x?Ûù~j¼t“¿/Ý$�ù?ú~j¼t“x¿Ûù~j¼t“?/Ý$�ù¿ìQ¸…ë@�Âõ(\‡_Àî|?5^,}À9´Èv¾ŸŠ?Ûù~j¼tÓ¿/Ý$�ù?9´Èv¾ŸŠ¿Ûù~j¼tÓ?/Ý$�ù¿V-²@¬Zd_À¾Ÿ/Ýx}ÀÛù~j¼t“?ü©ñÒMb`¿/Ý$�ù?Ûù~j¼t“¿ü©ñÒMb`?/Ý$�ù¿Zd;ßO@Ãõ(\�_À�Âõ(\Å}Àš™™™™™™?/Ý$�ù?š™™™™™™¿/Ý$�ù¿bX9´È@Ãõ(\�_À`åÐ"Û~ÀX9´Èv¾Ÿ?ºI +‡¶?/Ý$�ù?X9´Èv¾Ÿ¿ºI +‡¶¿/Ý$�ù¿é&1¬@Ãõ(\�_À1¬Z^~À;ßO�—n¢?F¶óýÔxá?°rh‘í|ù?;ßO�—n¢¿F¶óýÔxá¿°rh‘í|ù¿çû©ñÒM @�•C‹4_À+‡Ùª~ÀË¡E¶óý¤?ÇK7‰A`í?°rh‘í|ù?Ë¡E¶óý¤¿ÇK7‰A`í¿°rh‘í|ù¿‘í|?5^ @NbX9ä_ÀÙÎ÷S÷~ÀZd;ßO�§?q= ×£pí?°rh‘í|ù?Zd;ßO�§¿q= ×£pí¿°rh‘í|ù¿Zd;ßO @Ñ"Ûù~J`ÀoƒÀÊCÀé&1¬ª?œÄ °rhí?°rh‘í|ù?é&1¬ª¿œÄ °rhí¿°rh‘í|ù¿ôýÔxé& @-²�ï§¢`ÀƒÀÊ¡E�ÀÙÎ÷S㥫?q= ×£pí?°rh‘í|ù?ÙÎ÷S㥫¿q= ×£pí¿°rh‘í|ù¿ÙÎ÷Sã@åÐ"Ûùú`ÀÛù~j¼ÜÀV-²­?œÄ °rhí?°rh‘í|ù?V-²­¿œÄ °rhí¿°rh‘í|ù¿%�•C‹@žï§ÆKSaÀ;ßO�—€À¸…ëQ¸®?J +‡é?°rh‘í|ù?¸…ëQ¸®¿J +‡é¿°rh‘í|ù¿…ëQ¸@�•C‹l«aÀ‰A`åÐ:€ÀTã¥›Ä °?òÒMbXá?°rh‘í|ù?Tã¥›Ä °¿òÒMbXá¿°rh‘í|ù¿ÙÎ÷Sã¥@`åÐ"ÛéaÀ×£p= a€Àü©ñÒMb°?w¾Ÿ/ÝÜ?°rh‘í|ù?ü©ñÒMb°¿w¾Ÿ/ÝÜ¿°rh‘í|ù¿…ëQ¸@sh‘í|bÀ%�•C‡€À¤p= ×£°?Zd;ßO�—¿°rh‘í|ù?¤p= ×£°¿Zd;ßO�—?°rh‘í|ù¿Å °rh‘@1¬Z@bÀsh‘í|­€À¤p= ×£°?D‹lçû©Ù¿°rh‘í|ù?¤p= ×£°¿D‹lçû©Ù?°rh‘í|ù¿@Év¾ŸbÀbX9´Ó€À¤p= ×£°?R¸…ëQ¸?°rh‘í|ù?¤p= ×£°¿R¸…ëQ¸¿°rh‘í|ù¿w¾Ÿ/Ýü?�•C‹lóaÀ°rh‘íù€Àü©ñÒMb°?Év¾Ÿ/å?°rh‘í|ù?ü©ñÒMb°¿Év¾Ÿ/å¿°rh‘í|ù¿Ãõ(\�Âù?Zd;ßO!bÀ /Ý$ �ÀTã¥›Ä °?ßO�—në?°rh‘í|ù?Tã¥›Ä °¿ßO�—në¿°rh‘í|ù¿NbX9´ö?J +‡rbÀî|?5^F�À¸…ëQ¸®?�•C‹lñ?°rh‘í|ù?¸…ëQ¸®¿�•C‹lñ¿°rh‘í|ù¿Ãõ(\�Âó?9´Èv¾ÃbÀ;ßO�—l�ÀV-²­?{®Gázð?°rh‘í|ù?V-²­¿{®Gázð¿°rh‘í|ù¿¶óýÔxéð?V-²�CcÀ‰A`åÐ’�ÀÙÎ÷S㥫?°rh‘í|ã?°rh‘í|ù?ÙÎ÷S㥫¿°rh‘í|ã¿°rh‘í|ù¿¦›Ä °rì?š™™™™‰cÀ5^ºI ¹�Àé&1¬ª?^ºI +ß?°rh‘í|ù?é&1¬ª¿^ºI +ß¿°rh‘í|ù¿1¬Zdç?�—nƒ¸cÀáz®Gß�ÀZd;ßO�§?ôýÔxé&á?°rh‘í|ù?Zd;ßO�§¿ôýÔxé&á¿°rh‘í|ù¿�—nƒÀâ?P�—nçcÀ�—nƒ‚ÀË¡E¶óý¤?ºI +‡â?°rh‘í|ù?Ë¡E¶óý¤¿ºI +‡â¿°rh‘í|ù¿u“VÝ?¬ZddÀ˜nƒÀ+‚À;ßO�—n¢?X9´Èv¾¯¿°rh‘í|ù?;ßO�—n¢¿X9´Èv¾¯?°rh‘í|ù¿Å °rh‘Õ? ×£p=VdÀ¢E¶óýQ‚ÀX9´Èv¾Ÿ?¼t“VÖ¿/Ý$�ù?X9´Èv¾Ÿ¿¼t“VÖ?/Ý$�ù¿h‘í|?5Î?ìQ¸…dÀ¬Zd;x‚Àš™™™™™™?ü©ñÒMb`¿/Ý$�ù?š™™™™™™¿ü©ñÒMb`?/Ý$�ù¿Ûù~j¼tÃ?33333dÀ®Gázž‚ÀÛù~j¼t“?/Ý$�ù?Ûù~j¼t“¿/Ý$�ù¿j¼t“¶?33333dÀ}?5^ºÄ‚À9´Èv¾ŸŠ?/Ý$�ù?9´Èv¾ŸŠ¿/Ý$�ù¿Ûù~j¼t£?33333dÀåÐ"Ûùê‚Àú~j¼t“x?/Ý$�Õ?V-²�ù?ú~j¼t“x¿/Ý$�Õ¿V-²�ù¿{®Gáz„?33333dÀÇK7‰AƒÀü©ñÒMbp?‘í|?5^ê?¬Zd;ßù?ü©ñÒMbp¿‘í|?5^꿬Zd;ßù¿9´Èv¾SdÀF¶óýÔ7ƒÀ;ßO�—n‚?\�Âõ(\ï?j¼t“ú?;ßO�—n‚¿\�Âõ(\ï¿j¼t“ú¿9´Èv¾ŸŠ¿Å °rh±dÀ+‡Ù^ƒÀœÄ °rh‘?Ûù~j¼tï?“V-ú?œÄ °rh‘¿Ûù~j¼tï¿“V-ú¿é&1¬ª¿–C‹lçeÀj¼t“†ƒÀš™™™™™™?�•C‹lï?“V-ú?š™™™™™™¿�•C‹lï¿“V-ú¿Év¾Ÿ/½¿ /Ý$neÀ�Âõ(\­ƒÀL7‰A`å ?Ûù~j¼tï?“V-ú?L7‰A`å ¿Ûù~j¼tï¿“V-ú¿î|?5^ºÉ¿ªñÒMbÌeÀ´Èv¾ŸÔƒÀ{®Gáz¤?w¾Ÿ/Ýì?“V-ú?{®Gáz¤¿w¾Ÿ/Ýì¿“V-ú¿×£p= ×Ó¿X9´È*fÀZd;ßûƒÀZd;ßO�§?mçû©ñÒé?)\�Âõ(ú?Zd;ßO�§¿mçû©ñÒé¿)\�Âõ(ú¿j¼t“Ü¿/Ý$�yfÀã¥›Ä #„À9´Èv¾Ÿª?ƒÀÊ¡E¶Ã?)\�Âõ(ú?9´Èv¾Ÿª¿ƒÀÊ¡E¶Ã¿)\�Âõ(ú¿bX9´Èâ¿}?5^ºÅfÀL7‰A`J„ÀÉv¾Ÿ/­?ÙÎ÷Sã¥Û¿)\�Âõ(ú?Év¾Ÿ/­¿ÙÎ÷Sã¥Û?)\�Âõ(ú¿è¿^ºI —fÀV-²�q„À¸…ëQ¸®?j¼t“¦¿)\�Âõ(ú?¸…ëQ¸®¿j¼t“¦?)\�Âõ(ú¿oƒÀÊ¡í¿…ëQ¸rfÀ`åÐ"Û˜„ÀTã¥›Ä °?…ëQ¸…Ó?)\�Âõ(ú?Tã¥›Ä °¿…ëQ¸…Ó¿)\�Âõ(ú¿˜nƒÀÊñ¿X9´ÈŽfÀj¼t“À„À¤p= ×£°?'1¬ZÔ?)\�Âõ(ú?¤p= ×£°¿'1¬ZÔ¿)\�Âõ(ú¿w¾Ÿ/Ýô¿h‘í|?­fÀÙÎ÷Sç„À¤p= ×£°?'1¬ZÔ?)\�Âõ(ú?¤p= ×£°¿'1¬ZÔ¿)\�Âõ(ú¿ø¿–C‹lçËfÀÃõ(\�…À¤p= ×£°?'1¬ZÔ?)\�Âõ(ú?¤p= ×£°¿'1¬ZÔ¿)\�Âõ(ú¿‰A`åÐ"û¿ ×£p=êfÀÍÌÌÌÌ5…ÀTã¥›Ä °?Ñ"Ûù~jÔ?)\�Âõ(ú?Tã¥›Ä °¿Ñ"Ûù~jÔ¿)\�Âõ(ú¿h‘í|?5þ¿7‰A`ågÀyé&1]…À¸…ëQ¸®?'1¬ZÔ?)\�Âõ(ú?¸…ëQ¸®¿'1¬ZÔ¿)\�Âõ(ú¿d;ßO�—Àd;ßO�'gÀƒÀÊ¡E„…ÀÉv¾Ÿ/­?'1¬ZÔ?)\�Âõ(ú?Év¾Ÿ/­¿'1¬ZÔ¿)\�Âõ(ú¿ÀR¸…ëEgÀ�—nƒ«…À9´Èv¾Ÿª?×£p= ×Ó?)\�Âõ(ú?9´Èv¾Ÿª¿×£p= ×Ó¿)\�Âõ(ú¿çû©ñÒMÀj¼t“dgÀ˜nƒÀÒ…ÀZd;ßO�§?'1¬ZÔ?)\�Âõ(ú?Zd;ßO�§¿'1¬ZÔ¿)\�Âõ(ú¿°rh‘í|ÀL7‰A`�gÀú…À{®Gáz¤?w¾Ÿ/ÝÔ?“V-ú?{®Gáz¤¿w¾Ÿ/ÝÔ¿“V-ú¿…ëQ¸…Àš™™™™¡gÀh‘í|?!†ÀL7‰A`å ?'1¬ZÔ?“V-ú?L7‰A`å ¿'1¬ZÔ¿“V-ú¿1¬ZdÀ‡ÙÎ÷¿gÀ/Ý$�H†Àš™™™™™™?'1¬ZÔ?“V-ú?š™™™™™™¿'1¬ZÔ¿“V-ú¿J +‡À-²�ï§ÞgÀT㥛Äo†ÀœÄ °rh‘?'1¬ZÔ?“V-ú?œÄ °rh‘¿'1¬ZÔ¿“V-ú¿d;ßO�—À¢E¶óýügÀ/Ý$—†À;ßO�—n‚?'1¬ZÔ?“V-ú?;ßO�—n‚¿'1¬ZÔ¿“V-ú¿L7‰A`åÀHáz®hÀ?5^ºI¾†Àü©ñÒMbP?'1¬ZÔ?“V-ú?ü©ñÒMbP¿'1¬ZÔ¿“V-ú¿À5^ºI :hÀd;ßO�å†Àú~j¼t“x¿'1¬ZÔ?“V-ú?ú~j¼t“x?'1¬ZÔ¿“V-ú¿!°rh‘íÀÛù~j¼XhÀçû©ñÒ ‡Àú~j¼t“ˆ¿'1¬ZÔ?“V-ú?ú~j¼t“ˆ?'1¬ZÔ¿“V-ú¿V-²ÀÉv¾ŸwhÀ +‡4‡À;ßO�—n’¿Ñ"Ûù~jÔ?“V-ú?;ßO�—n’?Ñ"Ûù~jÔ¿“V-ú¿‡ÙÎ÷SÀoƒÀÊ•hÀ1¬Z[‡Àú~j¼t“˜¿'1¬ZÔ?“V-ú?ú~j¼t“˜?'1¬ZÔ¿“V-ú¿+‡ÙÎÀ¸…ëQ´hÀøS㥛‚‡À¸…ëQ¸ž¿Ñ"Ûù~jÔ?“V-ú?¸…ëQ¸ž?Ñ"Ûù~jÔ¿“V-ú¿)\�Âõ(À+‡ÙÒhÀZd;ß©‡ÀìQ¸…ë¡¿'1¬ZÔ?“V-ú?ìQ¸…ë¡?'1¬ZÔ¿“V-ú¿ü©ñÒMbÀ/Ý$�ñhÀã¥›Ä Ñ‡À{®Gáz¤¿¤p= ×£Ð?“V-ú?{®Gáz¤?¤p= ףп“V-ú¿°rh‘í|ÀZd;ßiÀªñÒMbø‡ÀºI +‡¦¿'1¬ZÔ?)\�Âõ(ú?ºI +‡¦?'1¬ZÔ¿)\�Âõ(ú¿{®GázÀ�Âõ(\#iÀƒÀÊ¡ˆÀªñÒMb¨¿ªñÒMbØ?)\�Âõ(ú?ªñÒMb¨?ªñÒMbØ¿)\�Âõ(ú¿ü©ñÒMbÀ7‰A`åLiÀ{®GáFˆÀš™™™™™©¿'1¬ZÔ?)\�Âõ(ú?š™™™™™©?'1¬ZÔ¿)\�Âõ(ú¿h‘í|?5ÀÝ$�•kiÀã¥›Ä nˆÀ‰A`åÐ"«¿'1¬ZÔ?)\�Âõ(ú?‰A`åÐ"«?'1¬ZÔ¿)\�Âõ(ú¿ìQ¸…ëÿ¿R¸…ë‰iÀL7‰A`•ˆÀ)\�Âõ(¬¿'1¬ZÔ?)\�Âõ(ú?)\�Âõ(¬?'1¬ZÔ¿)\�Âõ(ú¿òÒMbXý¿j¼t“¨iÀ´Èv¾Ÿ¼ˆÀyé&1¬¬¿'1¬ZÔ?)\�Âõ(ú?yé&1¬¬?'1¬ZÔ¿)\�Âõ(ú¿ã¥›Ä °ú¿mçû©ñÆiÀ¾Ÿ/ÝãˆÀyé&1¬¬¿Ñ"Ûù~jÔ?)\�Âõ(ú?yé&1¬¬?Ñ"Ûù~jÔ¿)\�Âõ(ú¿ø¿š™™™™åiÀÉv¾Ÿ ‰Àyé&1¬¬¿'1¬ZÔ?)\�Âõ(ú?yé&1¬¬?'1¬ZÔ¿)\�Âõ(ú¿Zd;ßOõ¿ã¥›Ä jÀÓMbX2‰À)\�Âõ(¬¿'1¬ZÔ?)\�Âõ(ú?)\�Âõ(¬?'1¬ZÔ¿)\�Âõ(ú¿-²�ï§ò¿´Èv¾Ÿ"jÀ;ßO�—Y‰À‰A`åÐ"«¿žï§ÆK7Ñ?)\�Âõ(ú?‰A`åÐ"«?žï§ÆK7Ñ¿)\�Âõ(ú¿®Gázð¿ð§ÆK7AjÀF¶óýÔ€‰Àš™™™™™©¿'1¬ZÔ?)\�Âõ(ú?š™™™™™©?'1¬ZÔ¿)\�Âõ(ú¿^ºI +ë¿u“VVjÀ®Gáz¨‰ÀªñÒMb¨¿�•C‹l×?)\�Âõ(ú?ªñÒMb¨?�•C‹l׿)\�Âõ(ú¿X9´Èvæ¿ü©ñÒM~jÀÙÎ÷SωÀºI +‡¦¿'1¬ZÔ?)\�Âõ(ú?ºI +‡¦?'1¬ZÔ¿)\�Âõ(ú¿®Gázâ¿é&1¬œjÀj¼t“ö‰À{®Gáz¤¿Ñ"Ûù~jÔ?“V-ú?{®Gáz¤?Ñ"Ûù~jÔ¿“V-ú¿j¼t“Ü¿ÙÎ÷S»jÀF¶óýÔŠÀìQ¸…ë¡¿'1¬ZÔ?“V-ú?ìQ¸…ë¡?'1¬ZÔ¿“V-ú¿!°rh‘íÔ¿çû©ñÒÙjÀ®GázEŠÀ¸…ëQ¸ž¿Ñ"Ûù~jÔ?“V-ú?¸…ëQ¸ž?Ñ"Ûù~jÔ¿“V-ú¿q= ×£pÍ¿ªñÒMbøjÀÓMbXlŠÀú~j¼t“˜¿'1¬ZÔ?“V-ú?ú~j¼t“˜?'1¬ZÔ¿“V-ú¿ßO�—nÿףp= kÀš™™™™“ŠÀ;ßO�—n’¿}?5^ºIÔ?“V-ú?;ßO�—n’?}?5^ºIÔ¿“V-ú¿/Ý$�µ¿Å °rh5kÀ¾Ÿ/ݺŠÀú~j¼t“ˆ¿Ñ"Ûù~jÔ?“V-ú?ú~j¼t“ˆ?Ñ"Ûù~jÔ¿“V-ú¿Ûù~j¼t£¿-²�ïSkÀã¥›Ä âŠÀú~j¼t“x¿ÁÊ¡E¶óÕ?j¼t“ú?ú~j¼t“x?ÁÊ¡E¶óÕ¿j¼t“ú¿;ßO�—n‚¿¦›Ä °rkÀL7‰A` ‹ÀºI +‡†¿Ház®GÙ?¬Zd;ßù?ºI +‡†?Ház®GÙ¿¬Zd;ßù¿`åÐ"Û•kÀ¬Zd0‹À‹lçû©ñ¢¿j¼t“Ü?V-²�ù?‹lçû©ñ¢?j¼t“Ü¿V-²�ù¿)\�Âõ(¬?J +‡¾kÀ‡ÙÎ÷V‹Àã¥›Ä °²¿/Ý$�Ý?F¶óýÔxù?ã¥›Ä °²?/Ý$�Ý¿F¶óýÔxù¿}?5^ºIÌ? /Ý$êkÀð§ÆK7}‹À�•C‹l绿ÍÌÌÌÌÌÜ?q= ×£pù?�•C‹lç»?ÍÌÌÌÌÌÜ¿q= ×£pù¿X9´Èv¾ß?Év¾ŸlÀÅ °rh£‹À;ßO�—n¿^ºI +×?1¬Zdù?;ßO�—nÂ?^ºI +׿1¬Zdù¿j¼t“ì?�—nƒ@lÀ¨ÆK7‰É‹ÀbX9´ÈÆ¿333333Ó?òÒMbXù?bX9´ÈÆ?333333Ó¿òÒMbXù¿+‡ÙÎõ?é&1¬\lÀ;ßO�—ï‹Àáz®GáÊ¿w¾Ÿ/Ýä?Ház®Gù?áz®GáÊ?w¾Ÿ/Ýä¿Ház®Gù¿ôýÔxé&ÿ?5^ºI zlÀd;ßO�ŒÀ +‡ÙοZd;ßO�ç?333333ù? +‡ÙÎ?Zd;ßO�ç¿333333ù¿5^ºI @ÙÎ÷SãÙlÀ�•C‹l;ŒÀžï§ÆK7Ñ¿¸…ëQ¸Þ?‰A`åÐ"ù?žï§ÆK7Ñ?¸…ëQ¸Þ¿‰A`åÐ"ù¿¾Ÿ/Ý$ @žï§ÆKmÀV-aŒÀáz®GáÒ¿^ºI +ß?u“Vù?áz®GáÒ?^ºI +ß¿u“Vù¿+‡ÙÎ÷@®Gáz6mÀçû©ñÒ†ŒÀÑ"Ûù~jÔ¿^ºI +ß?Ë¡E¶óýø?Ñ"Ûù~jÔ?^ºI +߿ˡE¶óýø¿D‹lçû©@ÍÌÌÌÌdmÀ1¬Z¬ŒÀÃõ(\�ÂÕ¿ÓMbX9Ü?¶óýÔxéø?Ãõ(\�ÂÕ?ÓMbX9Ü¿¶óýÔxéø¿9´Èv¾Ÿ@V-²�“mÀ²�ï§ÆÑŒÀ¶óýÔxéÖ¿åÐ"Ûù~Ò? +‡Ùø?¶óýÔxéÖ?åÐ"Ûù~Ò¿ +‡Ùø¿R¸…ëÑ@¶óýÔx¹mÀj¼t“÷ŒÀ¬Zd;ß׿´Èv¾Ÿß?ÍÌÌÌÌÌø?¬Zd;ß×?´Èv¾Ÿß¿ÍÌÌÌÌÌø¿Ï÷S㥛 @P�—nËmÀ¸…ëQ�À¤p= ףؿÁÊ¡E¶óå?�—nƒÀø?¤p= ×£Ø?ÁÊ¡E¶óå¿�—nƒÀø¿ü©ñÒMâ"@˜nƒÀnÀ¶óýÔxA�ÀôýÔxé&Ù¿…ëQ¸á?¸…ëQ¸ø?ôýÔxé&Ù?…ëQ¸Ὸ…ëQ¸ø¿F¶óýÔ8%@…ëQ¸NnÀ!°rh‘f�ÀF¶óýÔxÙ¿¬Zd;ß?ã¥›Ä °ø?F¶óýÔxÙ?¬Zd;ß¿ã¥›Ä °ø¿'1¬š'@/Ý$�}nÀV-²�‹�Àš™™™™™Ù¿¬Zd;ß?ã¥›Ä °ø?š™™™™™Ù?¬Zd;ß¿ã¥›Ä °ø¿*@1¬Z¬nÀÏ÷S㥰�ÀF¶óýÔxÙ¿Õxé&1Ü?ã¥›Ä °ø?F¶óýÔxÙ?Õxé&1Ü¿ã¥›Ä °ø¿ÙÎ÷Sãe,@Év¾ŸÛnÀé&1¬Õ�ÀôýÔxé&Ù¿ã¥›Ä °Ò?¸…ëQ¸ø?ôýÔxé&Ù?ã¥›Ä °Ò¿¸…ëQ¸ø¿ºI +Ç.@ªñÒMboÀ}?5^ºú�À¤p= ףؿ²�ï§ÆKß?�—nƒÀø?¤p= ×£Ø?²�ï§ÆKß¿�—nƒÀø¿+‡ÙŽ0@¬Zd;oÀ‰A`åÐŽÀ¬Zd;ß׿B`åÐ"Ûå?ÍÌÌÌÌÌø?¬Zd;ß×?B`åÐ"Ûå¿ÍÌÌÌÌÌø¿V-²1@ ×£p=^oÀ‡ÙÎ÷DŽÀ¶óýÔxéÖ¿ôýÔxé&á? +‡Ùø?¶óýÔxéÖ?ôýÔxé&á¿ +‡Ùø¿ìQ¸…Ë2@î|?5^–oÀ33333jŽÀÃõ(\�ÂÕ¿´Èv¾Ÿß?¶óýÔxéø?Ãõ(\�ÂÕ?´Èv¾Ÿß¿¶óýÔxéø¿òÒMbØ3@þÔxé&ÅoÀìQ¸…�ŽÀÑ"Ûù~jÔ¿´Èv¾Ÿß?Ë¡E¶óýø?Ñ"Ûù~jÔ?´Èv¾Ÿ߿ˡE¶óýø¿/Ý$�Õ4@9´Èv¾óoÀ-²�ï´ŽÀáz®GáÒ¿^ºI +ß?u“Vù?áz®GáÒ?^ºI +ß¿u“Vù¿5^ºI Â5@¬Zd;pÀ¶óýÔxÚŽÀžï§ÆK7Ñ¿j¼t“Ü?‰A`åÐ"ù?žï§ÆK7Ñ?j¼t“Ü¿‰A`åÐ"ù¿¬Zd›6@-²�ï§(pÀ'1¬�À +‡Ùο�—nƒÀÒ?333333ù? +‡ÙÎ?�—nƒÀÒ¿333333ù¿9´Èv¾_7@�Âõ(\;pÀZd;ß%�Àáz®GáÊ¿²�ï§ÆKß?Ház®Gù?áz®GáÊ?²�ï§ÆKß¿Ház®Gù¿!°rh‘ 8@˜nƒÀDpÀÛù~j¼K�ÀbX9´ÈÆ¿mçû©ñÒå?òÒMbXù?bX9´ÈÆ?mçû©ñÒå¿òÒMbXù¿P�—n£8@u“VjpÀV-²q�À;ßO�—n¿J +‡á?1¬Zdù?;ßO�—nÂ?J +‡á¿1¬Zdù¿¬Zd;9@ÇK7‰A†pÀ˜nƒÀ—�À�•C‹l绿¬Zd;ß?q= ×£pù?�•C‹lç»?¬Zd;ß¿q= ×£pù¿/Ý$�9@ƒÀÊ¡�pÀ{®Gá½�Àã¥›Ä °²¿^ºI +ß?F¶óýÔxù?ã¥›Ä °²?^ºI +ß¿F¶óýÔxù¿�•C‹lÇ9@“VµpÀP�—nä�À‹lçû©ñ¢¿^ºI +ß?°rh‘í|ù?‹lçû©ñ¢?^ºI +ß¿°rh‘í|ù¿R¸…ëñ9@u“VÌpÀÏ÷Sã%�À²�ï§ÆKß?/Ý$�ù?²�ï§ÆKß¿/Ý$�ù¿:@+‡ÙÎãpÀƒÀÊ¡E�À‹lçû©ñ¢?øS㥛Ää?°rh‘í|ù?‹lçû©ñ¢¿øS㥛Ää¿°rh‘í|ù¿R¸…ëñ9@%�•CûpÀfffff+�Àã¥›Ä °²?ÇK7‰A`Å?F¶óýÔxù?ã¥›Ä °²¿ÇK7‰A`Å¿F¶óýÔxù¿�•C‹lÇ9@j¼t“"qÀ�—nƒ>�À�•C‹lç»?X9´Èvοq= ×£pù?�•C‹l绿X9´ÈvÎ?q= ×£pù¿/Ý$�9@Zd;ßO qÀøS㥛Q�À;ßO�—nÂ?ü©ñÒMbP¿1¬Zdù?;ßO�—n¿ü©ñÒMbP?1¬Zdù¿¬Zd;9@33333 qÀé&1¬d�ÀbX9´ÈÆ?òÒMbXù?bX9´ÈÆ¿òÒMbXù¿P�—n£8@33333 qÀ3333³w�Àáz®GáÊ?¼t“VÎ?Ház®Gù?áz®GáÊ¿¼t“VοHáz®Gù¿!°rh‘ 8@33333 qÀHáz®Š�À +‡ÙÎ?Ûù~j¼tã?333333ù? +‡ÙοÛù~j¼tã¿333333ù¿9´Èv¾_7@D‹lçû!qÀ'1¬œ��Àžï§ÆK7Ñ?®Gáz®ç?‰A`åÐ"ù?žï§ÆK7Ñ¿®Gáz®ç¿‰A`åÐ"ù¿¬Zd›6@d;ßO�EqÀ¢E¶ó}°�Àáz®GáÒ?V-²�ç?u“Vù?áz®GáÒ¿V-²�ç¿u“Vù¿5^ºI Â5@^ºI iqÀZd;ßOÃ�ÀÑ"Ûù~jÔ?X9´Èv¾ç?Ë¡E¶óýø?Ñ"Ûù~jÔ¿X9´Èv¾ç¿Ë¡E¶óýø¿/Ý$�Õ4@#Ûù~jŒqÀ®GázÖ�ÀÃõ(\�ÂÕ?\�Âõ(\ñ?¶óýÔxéø?Ãõ(\�ÂÕ¿\�Âõ(\ñ¿¶óýÔxéø¿òÒMbØ3@‘í|?5°qÀ?5^ºÉè�À¶óýÔxéÖ?yé&1¬è? +‡Ùø?¶óýÔxéÖ¿yé&1¬è¿ +‡Ùø¿ìQ¸…Ë2@Ãõ(\�ôqÀœÄ °rû�À¬Zd;ß×?œÄ °rh‘?ÍÌÌÌÌÌø?¬Zd;ß׿œÄ °rh‘¿ÍÌÌÌÌÌø¿V-²1@V-úqÀòÒMb‘À¤p= ×£Ø?Ë¡E¶óý¤¿�—nƒÀø?¤p= ףؿˡE¶óý¤?�—nƒÀø¿+‡ÙŽ0@ ×£p=öqÀq= ×£ ‘ÀôýÔxé&Ù?¸…ëQ¸ø?ôýÔxé&Ù¿¸…ëQ¸ø¿ºI +Ç.@ ×£p=öqÀw¾Ÿ/3‘ÀF¶óýÔxÙ?;ßO�—n¢?ã¥›Ä °ø?F¶óýÔxÙ¿;ßO�—n¢¿ã¥›Ä °ø¿ÙÎ÷Sãe,@ ×£p=öqÀÁÊ¡E¶E‘Àš™™™™™Ù?/Ý$�•Û?ã¥›Ä °ø?š™™™™™Ù¿/Ý$�•Û¿ã¥›Ä °ø¿*@‹lçû©ùqÀNbX9X‘ÀF¶óýÔxÙ? +‡Ùî?ã¥›Ä °ø?F¶óýÔxÙ¿ +‡Ùî¿ã¥›Ä °ø¿'1¬š'@Ï÷Sã¥rÀ ×£p½j‘ÀôýÔxé&Ù?“V-ò?¸…ëQ¸ø?ôýÔxé&Ù¿“V-ò¿¸…ëQ¸ø¿F¶óýÔ8%@ÇK7‰AVrÀ%�•C}‘À¤p= ×£Ø?ªñÒMbò?�—nƒÀø?¤p= ףؿªñÒMbò¿�—nƒÀø¿ü©ñÒMâ"@…ëQ¸ŒrÀZd;ßÏ�‘À¬Zd;ß×?B`åÐ"Ûí?ÍÌÌÌÌÌø?¬Zd;ß׿B`åÐ"Ûí¿ÍÌÌÌÌÌø¿Ï÷S㥛 @øS㥛ÂrÀÙÎ÷Sc¢‘À¶óýÔxéÖ?ƒÀÊ¡E¶ã? +‡Ùø?¶óýÔxéÖ¿ƒÀÊ¡E¶ã¿ +‡Ùø¿R¸…ëÑ@¸…ëQærÀµ‘ÀÃõ(\�ÂÕ?¬Zd;ß?¶óýÔxéø?Ãõ(\�ÂÕ¿¬Zd;ß¿¶óýÔxéø¿9´Èv¾Ÿ@ÁÊ¡E¶ýrÀ\�Âõ¨Ç‘ÀÑ"Ûù~jÔ?¬Zd;ß?Ë¡E¶óýø?Ñ"Ûù~jÔ¿¬Zd;߿ˡE¶óýø¿D‹lçû©@þÔxé&sÀZd;_Ú‘Àáz®GáÒ?ÙÎ÷SãÝ?u“Vù?áz®GáÒ¿ÙÎ÷SãÝ¿u“Vù¿+‡ÙÎ÷@�—nƒ,sÀB`åÐ"í‘Àžï§ÆK7Ñ?‘í|?5^º¿‰A`åÐ"ù?žï§ÆK7Ñ¿‘í|?5^º?‰A`åÐ"ù¿¾Ÿ/Ý$ @Ë¡E¶óAsÀ)\�Âõÿ‘À +‡ÙÎ?Ý$�•Cã¿333333ù? +‡ÙοÝ$�•Cã?333333ù¿5^ºI @-²�ï§"sÀu“Ö’Àáz®GáÊ?{®Gáz”¿Ház®Gù?áz®GáÊ¿{®Gáz”?Ház®Gù¿ôýÔxé&ÿ?ã¥›Ä sÀT㥛Ä%’ÀbX9´ÈÆ?òÒMbXá?òÒMbXù?bX9´ÈÆ¿òÒMbXá¿òÒMbXù¿+‡ÙÎõ?bX9´ sÀ˜nƒÀ8’À;ßO�—nÂ?çû©ñÒMâ?1¬Zdù?;ßO�—n¿çû©ñÒMâ¿1¬Zdù¿j¼t“ì? /Ý$lÀ-²�ïÉ‹À ×£p= ×? /Ý$Ñ?`åÐ"Ûùø? ×£p= ׿ /Ý$Ñ¿`åÐ"Ûùø¿Ë¡E¶óýÀ�•C‹lWlÀÝ$�•ï‹ÀÝ$�•CÛ?X9´Èv¾ë?NbX9´ø?Ý$�•CÛ¿X9´Èv¾ë¿NbX9´ø¿q= ×£pÀ`åÐ"ÛqlÀ`åÐ"ÛŒÀ²�ï§ÆKß?¬Zd;ç?Ñ"Ûù~jø?²�ï§ÆKß¿¬Zd;ç¿Ñ"Ûù~jø¿¸…ëQ8ÀoƒÀÊýlÀbX9´9ŒÀð§ÆK7‰á?‡ÙÎ÷SÓ?®Gázø?ð§ÆK7‰á¿‡ÙÎ÷SÓ¿®Gázø¿ÁÊ¡E¶sÀh‘í|?ýlÀ®Gáz^ŒÀ²�ï§ÆKã?/Ý$�•ç?X9´Èv¾÷?²�ï§ÆKã¿/Ý$�•ç¿X9´Èv¾÷¿V-²�/!À9´Èv¾7mÀ)\�Âõ�ŒÀL7‰A`åä?çû©ñÒMî?œÄ °rh÷?L7‰A`åä¿çû©ñÒMî¿œÄ °rh÷¿h‘í|?õ$À-²�ï§ŠmÀu“V¥ŒÀ¼t“Væ?ð§ÆK7‰å?ßO�—n÷?¼t“Væ¿ð§ÆK7‰å¿ßO�—n÷¿…ëQ¸)À‹lçû©ímÀÕxé&1ÈŒÀV-²�ç?œÄ °rh‘¿�—nƒÀö?V-²�ç¿œÄ °rh‘?�—nƒÀö¿¼t“V-À¤p= × nÀd;ßO�êŒÀNbX9´è?V-²½¿X9´Èvö?NbX9´è¿V-²½?X9´Èvö¿ã¥›Ä ð0Àî|?5^êmÀœÄ °r �ÀoƒÀÊ¡é?‘í|?5^Ò?h‘í|?5ö?oƒÀʡ鿑í|?5^Ò¿h‘í|?5ö¿!°rh‘M3À/Ý$�õmÀ°rh‘í-�À¼t“Vê?ÇK7‰A`Ý?ö?¼t“Vê¿ÇK7‰A`Ý¿ö¿X9´Èv¾5À¨ÆK7‰!nÀòÒMbO�À +‡Ùê?åÐ"Ûù~â?×£p= ×õ? +‡Ùê¿åÐ"Ûù~â¿×£p= ×õ¿Ë¡E¶ó=8ÀƒÀÊ¡MnÀR¸…ëo�À^ºI +ë?…ëQ¸Õ?X9´Èv¾õ?^ºI +ë¿…ëQ¸Õ¿X9´Èv¾õ¿Ház®Ç:À�•C‹�nÀÝ$�•��ÀÝ$�•Cë?�•C‹lÇ¿ƒÀÊ¡E¶õ?Ý$�•Cë¿�•C‹lÇ?ƒÀÊ¡E¶õ¿ƒÀÊ¡EV=À°rh‘íŒnÀ /Ý$±�À^ºI +ë?#Ûù~j¼Ä¿X9´Èv¾õ?^ºI +ë¿#Ûù~j¼Ä?X9´Èv¾õ¿¾Ÿ/Ýä?À¶óýÔxmnÀÁÊ¡E¶Ñ�À +‡Ùê?ú~j¼t“h?×£p= ×õ? +‡Ùê¿ú~j¼t“h¿×£p= ×õ¿ºI +7AÀö(\�ÂmnÀL7‰A`ò�À¼t“Vê?ú~j¼t“x?ö?¼t“Vê¿ú~j¼t“x¿ö¿×£p= wBÀ /Ý$nnÀ¬Zd;ŽÀoƒÀÊ¡é?9´Èv¾Ÿš?h‘í|?5ö?oƒÀÊ¡é¿9´Èv¾Ÿš¿h‘í|?5ö¿�Âõ(\¯CÀ+‡ÙnnÀ�Âõ(\4ŽÀNbX9´è?×£p= ×Û?X9´Èvö?NbX9´è¿×£p= ×Û¿X9´Èvö¿®GázÞDÀÉv¾ŸsnÀ+‡ÙUŽÀV-²�ç?/Ý$�•ë?�—nƒÀö?V-²�ç¿/Ý$�•ë¿�—nƒÀö¿q= ×£FÀu“VÂnÀ9´Èv¾wŽÀ¼t“Væ?¢E¶óýÔì?ßO�—n÷?¼t“Væ¿¢E¶óýÔì¿ßO�—n÷¿¢E¶óýGÀq= ×£oÀÉv¾ŸšŽÀL7‰A`åä?!°rh‘íì?œÄ °rh÷?L7‰A`åä¿!°rh‘íì¿œÄ °rh÷¿F¶óýÔHÀ�Âõ(\ooÀ)\�Âõ¼ŽÀ²�ï§ÆKã?u“Ví?X9´Èv¾÷?²�ï§ÆKã¿u“Ví¿X9´Èv¾÷¿î|?5^ IÀ ×£p=ÆoÀÙÎ÷SàŽÀð§ÆK7‰á?d;ßO�—î?®Gázø?ð§ÆK7‰á¿d;ßO�—î¿®Gázø¿Ház®çIÀÍÌÌÌÌpÀð§ÆK7�À²�ï§ÆKß?Å °rh‘é?Ñ"Ûù~jø?²�ï§ÆK߿аrh‘é¿Ñ"Ûù~jø¿Év¾Ÿ¯JÀ7‰A`å>pÀ;ßO�—(�ÀÝ$�•CÛ?{®Gázä?NbX9´ø?Ý$�•CÛ¿{®Gázä¿NbX9´ø¿Év¾Ÿ_KÀ/Ý$�[pÀ= ×£pM�À ×£p= ×?Ý$�•CË?`åÐ"Ûùø? ×£p= ׿Ý$�•CË¿`åÐ"Ûùø¿ffffföKÀ¸…ëQ|pÀÁÊ¡E¶r�À9´Èv¾ŸÒ?!°rh‘íà¿333333ù?9´Èv¾ŸÒ¿!°rh‘íà?333333ù¿ÁÊ¡E¶sLÀppÀ�Âõ(\˜�À}?5^ºIÌ?Zd;ßOå¿1¬Zdù?}?5^ºIÌ¿Zd;ßOå?1¬Zdù¿ƒÀÊ¡EÖLÀ!°rh‘IpÀ¸…ëQ¾�À‹lçû©ñÂ?NbX9´Ø¿…ëQ¸…ù?‹lçû©ñ¿NbX9´Ø?…ëQ¸…ù¿w¾Ÿ/MÀ®Gáz0pÀìQ¸…ä�À‹lçû©ñ²?¢E¶óýÔ¸¿š™™™™™ù?‹lçû©ñ²¿¢E¶óýÔ¸?š™™™™™ù¿-²�ïGMÀ�•C‹$pÀ= ×£p�ÀªñÒMbÈ?oƒÀÊ¡ù?ªñÒMbÈ¿oƒÀÊ¡ù¿ /Ý$VMÀ‰A`åÐ&pÀ\�Âõ¨�À‹lçû©ñ²¿mçû©ñÒÝ?š™™™™™ù?‹lçû©ñ²?mçû©ñÒÝ¿š™™™™™ù¿-²�ïGMÀ;ßO�—6pÀªñÒMâ+�À‹lçû©ñ¿°rh‘í|ç?…ëQ¸…ù?‹lçû©ñÂ?°rh‘í|ç¿…ëQ¸…ù¿w¾Ÿ/MÀìQ¸…SpÀòÒMb?�À}?5^ºIÌ¿ƒÀÊ¡E¶ï?1¬Zdù?}?5^ºIÌ?ƒÀÊ¡E¶ï¿1¬Zdù¿ƒÀÊ¡EÖLÀP�—n}pÀ‹lçû)R�À9´Èv¾ŸÒ¿Ãõ(\�Âó?333333ù?9´Èv¾ŸÒ?Ãõ(\�Âó¿333333ù¿ÁÊ¡E¶sLÀé&1¬²pÀq= ×#e�À ×£p= ׿q= ×£p÷?`åÐ"Ûùø? ×£p= ×?q= ×£p÷¿`åÐ"Ûùø¿ffffföKÀ‹lçû©ópÀX9´Èöw�ÀÝ$�•CÛ¿“V-ö?NbX9´ø?Ý$�•CÛ?“V-ö¿NbX9´ø¿Év¾Ÿ_KÀÙÎ÷S?qÀÉv¾ŸšŠ�À²�ï§ÆKß¿ºI +‡ê?Ñ"Ûù~jø?²�ï§ÆKß?ºI +‡ê¿Ñ"Ûù~jø¿Év¾Ÿ¯JÀ˜nƒÀxqÀJ +��Àð§ÆK7‰á¿ÇK7‰A`Ý?®Gázø?ð§ÆK7‰á?ÇK7‰A`Ý¿®Gázø¿Ház®çIÀ{®GáŽqÀð§ÆK7¯�À²�ï§ÆKã¿Zd;ßOÝ?X9´Èv¾÷?²�ï§ÆKã?Zd;ßOÝ¿X9´Èv¾÷¿î|?5^ IÀ¾Ÿ/ݤqÀ-²�ï'Á�ÀL7‰A`åä¿Zd;ßOÝ?œÄ °rh÷?L7‰A`åä?Zd;ßOÝ¿œÄ °rh÷¿F¶óýÔHÀ¾Ÿ/ݺqÀ¤p= ×Ò�À¼t“Væ¿Zd;ßOÝ?ßO�—n÷?¼t“Væ?Zd;ßOÝ¿ßO�—n÷¿¢E¶óýGÀF¶óýÔÐqÀT㥛Dä�ÀV-²�ç¿5^ºI Û?�—nƒÀö?V-²�ç?5^ºI Û¿�—nƒÀö¿q= ×£FÀ‰A`åÐæqÀË¡E¶sõ�ÀNbX9´è¿ªñÒMbÐ?X9´Èvö?NbX9´è?ªñÒMbпX9´Èvö¿®GázÞDÀÙÎ÷SùqÀfffff‘ÀoƒÀʡ鿘nƒÀÊÁ?h‘í|?5ö?oƒÀÊ¡é?˜nƒÀÊÁ¿h‘í|?5ö¿�Âõ(\¯CÀ°rh‘íþqÀq= ×#‘À¼t“Vê¿+‡ÙÎ÷ñ?ö?¼t“Vê?+‡ÙÎ÷ñ¿ö¿×£p= wBÀé&1¬rÀ‘í|?µ'‘À +‡Ùê¿F¶óýÔxñ?×£p= ×õ? +‡Ùê?F¶óýÔxñ¿×£p= ×õ¿ºI +7AÀÛù~j¼jrÀƒÀÊ!8‘À^ºI +ë¿ú~j¼t“¨?X9´Èv¾õ?^ºI +ë?ú~j¼t“¨¿X9´Èv¾õ¿¾Ÿ/Ýä?Àsh‘í|orÀX9´ÈvH‘ÀÝ$�•C뿦›Ä °rÐ?ƒÀÊ¡E¶õ?Ý$�•Cë?¦›Ä °rпƒÀÊ¡E¶õ¿ƒÀÊ¡EV=ÀL7‰A`orÀh‘í|¿X‘À^ºI +ë¿+‡ÙÎ÷ç?X9´Èv¾õ?^ºI +ë?+‡ÙÎ÷ç¿X9´Èv¾õ¿Ház®Ç:À\�Âõ(ˆrÀyé&1i‘À +‡Ùê¿�•C‹lï?×£p= ×õ? +‡Ùê?�•C‹lï¿×£p= ×õ¿Ë¡E¶ó=8À%�•C·rÀ¾Ÿ/]y‘À¼t“Vê¿-²�ï§Æë?ö?¼t“Vê?-²�ï§Æë¿ö¿X9´Èv¾5ÀX9´ÈværÀoƒÀʉ‘ÀoƒÀʡ鿬Zd;ßÏ?h‘í|?5ö?oƒÀÊ¡é?¬Zd;ßÏ¿h‘í|?5ö¿!°rh‘M3ÀÃõ(\� sÀ`åÐ"[š‘ÀNbX9´è¿ú~j¼t“пX9´Èvö?NbX9´è?ú~j¼t“Ð?X9´Èvö¿ã¥›Ä ð0Àu“VþrÀš™™™«‘ÀV-²�ç¿;ßO�—nÂ?�—nƒÀö?V-²�ç?;ßO�—n¿�—nƒÀö¿¼t“V-ÀÏ÷Sã¥ñrÀ5^ºI ¼‘À¼t“Væ¿Ház®GÙ?ßO�—n÷?¼t“Væ?Ház®GÙ¿ßO�—n÷¿…ëQ¸)Àã¥›Ä sÀ}?5^:Í‘ÀL7‰A`åä¿Zd;ßO�—¿œÄ °rh÷?L7‰A`åä?Zd;ßO�—?œÄ °rh÷¿h‘í|?õ$Àš™™™™sÀ-²�ï§Þ‘À²�ï§ÆKã¿D‹lçû©Á¿X9´Èv¾÷?²�ï§ÆKã?D‹lçû©Á?X9´Èv¾÷¿V-²�/!À-²�ï sÀ¤p= Wð‘Àð§ÆK7‰á¿ºI +‡†?®Gázø?ð§ÆK7‰á?ºI +‡†¿®Gázø¿ÁÊ¡E¶sÀü©ñÒM sÀáz®G’À²�ï§ÆKß¿/Ý$�•?Ñ"Ûù~jø?²�ï§ÆKß?/Ý$�•¿Ñ"Ûù~jø¿¸…ëQ8À×£p= sÀ¶óýÔx’ÀÝ$�•CÛ¿Õxé&1Ì?NbX9´ø?Ý$�•CÛ?Õxé&1Ì¿NbX9´ø¿q= ×£pÀü©ñÒM sÀ7‰A`å&’À ×£p= ׿V-²�ß?`åÐ"Ûùø? ×£p= ×?V-²�ß¿`åÐ"Ûùø¿Ë¡E¶óýÀ®Gáz sÀyé&1ˆ9’À9´Èv¾ŸÒ¿¸…ëQ¸â?333333ù?9´Èv¾ŸÒ?¸…ëQ¸â¿333333ù¿çû©ñÒMü¿ö(\�Â;sÀ`åÐ"[L’À}?5^ºIÌ¿/Ý$�•ç?‡ÙÎ÷Sù?}?5^ºIÌ?/Ý$�•翇ÙÎ÷Sù¿ð¿ÇK7‰AXsÀu“V_’À‹lçû©ñ¿B`åÐ"Ûñ?Ý$�•Cù?‹lçû©ñÂ?B`åÐ"Ûñ¿Ý$�•Cù¿%�•C‹Ü¿�—nƒ‚sÀ�Âõ(\r’À‹lçû©ñ²¿\�Âõ(\õ?5^ºI ù?‹lçû©ñ²?\�Âõ(\õ¿5^ºI ù¿yé&1¬¼¿�Âõ(\ÃsÀ…ëQ8…’À‹lçû©ñ¢¿´Èv¾Ÿõ?áz®Gáø?¦›Ä °tÀ{®Gá—’ÀIkqmrIQyé&1¬|¿ü©ñÒMb°¿Zd;ßOÕ¿ÙÎ÷Sãe(À5^ºI ÆeÀV-²ÒƒÀyé&1¬|?¤p= ×£°?Zd;ßOÕ?yé&1¬|¿¤p= ×£°¿Zd;ßOÕ¿ã¥›Ä p(ÀNbX9ÌeÀV-²ÚƒÀyé&1¬|?L7‰A`å°?Zd;ßOÕ?yé&1¬|¿L7‰A`å°¿Zd;ßOÕ¿î|?5^z(ÀX9´ÈvÒeÀV-²âƒÀyé&1¬|?L7‰A`å°?Zd;ßOÕ?yé&1¬|¿L7‰A`å°¿Zd;ßOÕ¿øS㥛„(À¾Ÿ/ÝØeÀV-²êƒÀyé&1¬|?¤p= ×£°?Zd;ßOÕ?yé&1¬|¿¤p= ×£°¿Zd;ßOÕ¿+‡ÙŽ(ÀÉv¾ŸßeÀV-²òƒÀyé&1¬|?ü©ñÒMb°?Zd;ßOÕ?yé&1¬|¿ü©ñÒMb°¿Zd;ßOÕ¿ +‡™(Àáz®GåeÀ¦›Ä °úƒÀyé&1¬|?ü©ñÒMb°?Zd;ßOÕ?yé&1¬|¿ü©ñÒMb°¿Zd;ßOÕ¿ÙÎ÷S£(Àú~j¼tëeÀ¦›Ä °„Àyé&1¬|?ü©ñÒMb°?Zd;ßOÕ?yé&1¬|¿ü©ñÒMb°¿Zd;ßOÕ¿!°rh‘­(À‹lçû©ñeÀ¦›Ä ° „Àyé&1¬|?ü©ñÒMb°?Zd;ßOÕ?+‡Ùη(À¤p= ×÷eÀ¦›Ä °„À kumv c9´Èv¾ŸŠ¿+‡ÙÎ÷³¿Zd;ßOÕ¿{®Gáú*À®Gáz´fÀ…ëQ¸ …À9´Èv¾ŸŠ?“V-²?Zd;ßOÕ?9´Èv¾ŸŠ¿“V-²¿Zd;ßOÕ¿�Âõ(\+À–C‹lç»fÀ…ëQ¸…À9´Èv¾ŸŠ?ü©ñÒMb°?Zd;ßOÕ?9´Èv¾ŸŠ¿ü©ñÒMb°¿Zd;ßOÕ¿¤p= ×#+À®GázÂfÀÁÊ¡E¶…À9´Èv¾ŸŠ?ü©ñÒMb°?Zd;ßOÕ?9´Èv¾ŸŠ¿ü©ñÒMb°¿Zd;ßOÕ¿¸…ëQ8+À?5^ºIÈfÀbX9´"…À9´Èv¾ŸŠ?ü©ñÒMb°?Zd;ßOÕ?9´Èv¾ŸŠ¿ü©ñÒMb°¿Zd;ßOÕ¿ÍÌÌÌÌL+ÀX9´ÈvÎfÀV-²*…À9´Èv¾ŸŠ?ü©ñÒMb°?Zd;ßOÕ?9´Èv¾ŸŠ¿ü©ñÒMb°¿Zd;ßOÕ¿áz®Ga+Àq= ×£ÔfÀ¦›Ä °2…À9´Èv¾ŸŠ?¤p= ×£°?Zd;ßOÕ?9´Èv¾ŸŠ¿¤p= ×£°¿Zd;ßOÕ¿ö(\�Âu+À‰A`åÐÚfÀ¦›Ä °:…À9´Èv¾ŸŠ?L7‰A`å°?Zd;ßOÕ?9´Èv¾ŸŠ¿L7‰A`å°¿Zd;ßOÕ¿ ×£p=Š+Àw¾Ÿ/áfÀHáz®B…À9´Èv¾ŸŠ?¤p= ×£°?Zd;ßOÕ?9´Èv¾ŸŠ¿¤p= ×£°¿Zd;ßOÕ¿…ëQ¸ž+ÀìQ¸…çfÀé&1¬J…À9´Èv¾ŸŠ?ü©ñÒMb°?Zd;ßOÕ?9´Èv¾ŸŠ¿ü©ñÒMb°¿Zd;ßOÕ¿33333³+ÀV-²ífÀ‹lçû©R…À9´Èv¾ŸŠ?ü©ñÒMb°?Zd;ßOÕ?Ház®Ç+ÀZd;ßófÀ-²�ï§Z…À kymz ubX9´È¶¿Zd;ßOÕ¿.ÀL7‰A`ýgÀd;ßO�å†ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀË¡E¶óhÀd;ßO�í†ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀJ +‡hÀd;ßO�õ†ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀÉv¾ŸhÀd;ßO�ý†ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀHáz®hÀd;ßO�‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀÇK7‰A(hÀd;ßO� ‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀÍÌÌÌÌ0hÀd;ßO�‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀL7‰A`9hÀd;ßO�‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀË¡E¶óAhÀd;ßO�%‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀJ +‡JhÀd;ßO�-‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀÉv¾ŸShÀd;ßO�5‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀHáz®[hÀd;ßO�=‡ÀbX9´È¶?Zd;ßOÕ?.ÀÇK7‰AdhÀd;ßO�E‡À k}m~ ‡;ßO�—n‚¿^ºI +׿Zd;ßOÕ¿j¼t“Ü¿/Ý$�IfÀã¥›Ä #„À;ßO�—n‚?–C‹lçûÑ?Zd;ßOÕ?;ßO�—n‚¿–C‹lçûÑ¿Zd;ßOÕ¿ÁÊ¡E¶óÝ¿?5^ºIlfÀ…ëQ¸+„À;ßO�—n‚?sh‘í|?Å?Zd;ßOÕ?;ßO�—n‚¿sh‘í|?Å¿Zd;ßOÕ¿X9´Èv¾ß¿sh‘í|fÀ…ëQ¸3„À;ßO�—n‚?ÙÎ÷S㥻?Zd;ßOÕ?;ßO�—n‚¿ÙÎ÷S㥻¿Zd;ßOÕ¿øS㥛Äà¿NbX9ŒfÀ…ëQ¸;„À;ßO�—n‚?ƒÀÊ¡E¶?Zd;ßOÕ?;ßO�—n‚¿ƒÀÊ¡E¶¿Zd;ßOÕ¿D‹lçû©á¿Õxé&1”fÀ'1¬C„À;ßO�—n‚?‰A`åÐ"»?Zd;ßOÕ?;ßO�—n‚¿‰A`åÐ"»¿Zd;ßOÕ¿d;ßO�—â¿°rh‘íœfÀ'1¬K„À;ßO�—n‚?`åÐ"Ûù¾?Zd;ßOÕ?;ßO�—n‚¿`åÐ"Ûù¾¿Zd;ßOÕ¿°rh‘í|ã¿j¼t“¨fÀÉv¾ŸS„À;ßO�—n‚?`åÐ"Ûù¾?Zd;ßOÕ?;ßO�—n‚¿`åÐ"Ûù¾¿Zd;ßOÕ¿ü©ñÒMbä¿NbX9´fÀÉv¾Ÿ[„À;ßO�—n‚?`åÐ"Ûù¾?Zd;ßOÕ?;ßO�—n‚¿`åÐ"Ûù¾¿Zd;ßOÕ¿Zd;ßOå¿Zd;ß¿fÀÉv¾Ÿc„À;ßO�—n‚?`åÐ"Ûù¾?Zd;ßOÕ?;ßO�—n‚¿`åÐ"Ûù¾¿Zd;ßOÕ¿h‘í|?5æ¿ìQ¸…ËfÀj¼t“k„À;ßO�—n‚?ú~j¼t“x¿Zd;ßOÕ?;ßO�—n‚¿ú~j¼t“x?Zd;ßOÕ¿´Èv¾Ÿ翺I +×fÀj¼t“s„À;ßO�—n‚?¸…ëQ¸¾¿Zd;ßOÕ?;ßO�—n‚¿¸…ëQ¸¾?Zd;ßOÕ¿è¿î|?5^ÊfÀ +‡{„À;ßO�—n‚?R¸…ëQ¸¿Zd;ßOÕ?;ßO�—n‚¿R¸…ëQ¸?Zd;ßOÕ¿!°rh‘íè¿yé&1ÀfÀ +‡ƒ„À;ßO�—n‚?ü©ñÒMb°¿Zd;ßOÕ?;ßO�—n‚¿ü©ñÒMb°?Zd;ßOÕ¿mçû©ñÒé¿ã¥›Ä ¸fÀ +‡‹„À;ßO�—n‚?ªñÒMb¨¿Zd;ßOÕ?¸…ëQ¸ê¿Ï÷S㥳fÀ®Gáz“„Àk�m‚c;ßO�—n‚¿j¼t“¦?Zd;ßOÕ¿°rh‘í|ÀL7‰A`qgÀú…À;ßO�—n‚? ×£p= §¿Zd;ßOÕ?;ßO�—n‚¿ ×£p= §?Zd;ßOÕ¿ƒÀÊ¡E¶Àh‘í|?mgÀ†À;ßO�—n‚?œÄ °rh¡¿Zd;ßOÕ?;ßO�—n‚¿œÄ °rh¡?Zd;ßOÕ¿V-²�ïÀT㥛ÄhgÀ¢E¶óý †À;ßO�—n‚?yé&1¬|¿Zd;ßOÕ?;ßO�—n‚¿yé&1¬|?Zd;ßOÕ¿^ºI +À¦›Ä °fgÀ¢E¶óý†À;ßO�—n‚?ÙÎ÷S㥛?Zd;ßOÕ?;ßO�—n‚¿ÙÎ÷S㥛¿Zd;ßOÕ¿1¬ZdÀú~j¼tggÀD‹lçû†À;ßO�—n‚?ü©ñÒMb°?Zd;ßOÕ?;ßO�—n‚¿ü©ñÒMb°¿Zd;ßOÕ¿V-²�À²�ï§ÆkgÀD‹lçû!†À;ßO�—n‚?‘í|?5^º?Zd;ßOÕ?;ßO�—n‚¿‘í|?5^º¿Zd;ßOÕ¿×£p= ×À¤p= ×sgÀD‹lçû)†À;ßO�—n‚?ð§ÆK7‰Á?Zd;ßOÕ?;ßO�—n‚¿ð§ÆK7‰Á¿Zd;ßOÕ¿ßO�—nÀsh‘í|gÀåÐ"Ûù1†À;ßO�—n‚?Ë¡E¶óýÄ?Zd;ßOÕ?;ßO�—n‚¿Ë¡E¶óýÄ¿Zd;ßOÕ¿²�ï§ÆKÀ /Ý$ŽgÀåÐ"Ûù9†À;ßO�—n‚?²�ï§ÆKÇ?Zd;ßOÕ?;ßO�—n‚¿²�ï§ÆKÇ¿Zd;ßOÕ¿…ëQ¸…À×£p= ŸgÀ‡ÙÎ÷A†À;ßO�—n‚?ªñÒMbÈ?Zd;ßOÕ?�—nƒÀÀ +‡±gÀ‡ÙÎ÷I†Àk…mzc;ßO�—n‚?^ºI +Ç¿Zd;ßOÕ¿{®GázÀ)\�ÂõühÀƒÀÊ¡ˆÀ;ßO�—n‚¿°rh‘í|¿?Zd;ßOÕ?;ßO�—n‚?°rh‘í|¿¿Zd;ßOÕ¿Ý$�•CÀu“ViÀƒÀÊ¡'ˆÀ;ßO�—n‚¿ü©ñÒMb°?Zd;ßOÕ?;ßO�—n‚?ü©ñÒMb°¿Zd;ßOÕ¿u“VÀ�—nƒiÀƒÀÊ¡/ˆÀ;ßO�—n‚¿ü©ñÒMb°?Zd;ßOÕ?;ßO�—n‚?ü©ñÒMb°¿Zd;ßOÕ¿×£p= ×À¦›Ä °iÀ´Èv¾Ÿ7ˆÀ;ßO�—n‚¿ã¥›Ä °²?Zd;ßOÕ?;ßO�—n‚?ã¥›Ä °²¿Zd;ßOÕ¿9´Èv¾ŸÀ7‰A`å iÀ´Èv¾Ÿ?ˆÀ;ßO�—n‚¿R¸…ëQ¸?Zd;ßOÕ?;ßO�—n‚?R¸…ëQ¸¿Zd;ßOÕ¿œÄ °rhÀé&1¬(iÀV-²�GˆÀ;ßO�—n‚¿ÙÎ÷S㥻?Zd;ßOÕ?;ßO�—n‚?ÙÎ÷S㥻¿Zd;ßOÕ¿þÔxé&1ÀP�—n3iÀV-²�OˆÀ;ßO�—n‚¿ÙÎ÷S㥻?Zd;ßOÕ?;ßO�—n‚?ÙÎ÷S㥻¿Zd;ßOÕ¿–C‹lçûÀ¶óýÔx=iÀV-²�WˆÀ;ßO�—n‚¿ÙÎ÷S㥻?Zd;ßOÕ?;ßO�—n‚?ÙÎ÷S㥻¿Zd;ßOÕ¿øS㥛ÄÀZd;ßGiÀøS㥛_ˆÀ;ßO�—n‚¿ÙÎ÷S㥻?Zd;ßOÕ?;ßO�—n‚?ÙÎ÷S㥻¿Zd;ßOÕ¿Zd;ßO�ÀƒÀÊ¡ERiÀøS㥛gˆÀ;ßO�—n‚¿ÙÎ÷S㥻?Zd;ßOÕ?¼t“VÀé&1¬\iÀøS㥛oˆÀk‡mz™{®Gáz„?Ï÷S㥛ĿZd;ßOÕ¿^ºI +ë¿B`åÐ"CjÀ®Gáz¨‰À{®Gáz„¿Év¾Ÿ/½?Zd;ßOÕ?{®Gáz„?Év¾Ÿ/½¿Zd;ßOÕ¿“V-ê¿´Èv¾ŸRjÀP�—n°‰À{®Gáz„¿L7‰A`å°?Zd;ßOÕ?{®Gáz„?L7‰A`å°¿Zd;ßOÕ¿Év¾Ÿ/é¿/Ý$YjÀP�—n¸‰À{®Gáz„¿¤p= ×£°?Zd;ßOÕ?{®Gáz„?¤p= ×£°¿Zd;ßOÕ¿þÔxé&1è¿žï§ÆK_jÀòÒMbÀ‰À{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿¬Zd;ç¿/Ý$�ejÀòÒMbȉÀ{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿= ×£p=æ¿Ház®kjÀ“VЉÀ{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿sh‘í|?å¿`åÐ"ÛqjÀ“V؉À{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿¨ÆK7‰Aä¿yé&1xjÀ“Và‰À{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿Ý$�•Cã¿ ×£p=~jÀ5^ºI è‰À{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿ƒÀÊ¡Eâ¿#Ûù~j„jÀ5^ºI ð‰À{®Gáz„¿L7‰A`å°?Zd;ßOÕ?{®Gáz„?L7‰A`å°¿Zd;ßOÕ¿Ház®Gá¿;ßO�—ŠjÀ×£p= ø‰À{®Gáz„¿L7‰A`å°?Zd;ßOÕ?{®Gáz„?L7‰A`å°¿Zd;ßOÕ¿}?5^ºIà¿¢E¶óý�jÀ×£p= ŠÀ{®Gáz„¿¤p= ×£°?Zd;ßOÕ?{®Gáz„?¤p= ×£°¿Zd;ßOÕ¿d;ßO�—Þ¿%�•C—jÀyé&1ŠÀ{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿yé&1¬Ü¿¶óýÔx�jÀyé&1ŠÀ{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿ã¥›Ä °Ú¿Ï÷S㥣jÀ/Ý$ŠÀ{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿NbX9´Ø¿çû©ñÒ©jÀ/Ý$ ŠÀ{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?¸…ëQ¸Ö¿°jÀ¼t“(ŠÀk‰mŠuü©ñÒMb€¿¸…ëQ¸¾¿Zd;ßOÕ¿¬Zd;_'@ìQ¸…ßeÀð§ÆK7þƒÀü©ñÒMb€?Zd;ßO�·?Zd;ßOÕ?ü©ñÒMb€¿Zd;ßO�·¿Zd;ßOÕ¿mçû©ñR'@åÐ"ÛùêeÀ‘í|?5„Àü©ñÒMb€?ü©ñÒMb°?Zd;ßOÕ?ü©ñÒMb€¿ü©ñÒMb°¿Zd;ßOÕ¿-²�ï§F'@w¾Ÿ/ñeÀ‘í|?5„Àü©ñÒMb€?¤p= ×£°?Zd;ßOÕ?ü©ñÒMb€¿¤p= ×£°¿Zd;ßOÕ¿`åÐ"Û9'@�Âõ(\÷eÀ‘í|?5„Àü©ñÒMb€?{®Gáz´?Zd;ßOÕ?ü©ñÒMb€¿{®Gáz´¿Zd;ßOÕ¿!°rh‘-'@}?5^ºýeÀ33333„Àü©ñÒMb€?¢E¶óýÔ¸?Zd;ßOÕ?ü©ñÒMb€¿¢E¶óýÔ¸¿Zd;ßOÕ¿áz®G!'@-²�ï§fÀ33333&„Àü©ñÒMb€?ÁÊ¡E¶ó½?Zd;ßOÕ?ü©ñÒMb€¿ÁÊ¡E¶ó½¿Zd;ßOÕ¿®Gáz'@ÇK7‰AfÀ33333.„Àü©ñÒMb€?Ñ"Ûù~j¼?Zd;ßOÕ?ü©ñÒMb€¿Ñ"Ûù~j¼¿Zd;ßOÕ¿Õxé&1'@…ëQ¸fÀ333336„Àü©ñÒMb€?j¼t“¶?Zd;ßOÕ?ü©ñÒMb€¿j¼t“¶¿Zd;ßOÕ¿–C‹lçû&@/Ý$�%fÀÕxé&1>„Àü©ñÒMb€?ôýÔxé&±?Zd;ßOÕ?ü©ñÒMb€¿ôýÔxé&±¿Zd;ßOÕ¿Év¾Ÿï&@}?5^º-fÀÕxé&1F„Àü©ñÒMb€?‹lçû©ñ¢?Zd;ßOÕ?ü©ñÒMb€¿‹lçû©ñ¢¿Zd;ßOÕ¿‰A`åÐâ&@ü©ñÒM2fÀÕxé&1N„Àü©ñÒMb€?L7‰A`å ?Zd;ßOÕ?ü©ñÒMb€¿L7‰A`å ¿Zd;ßOÕ¿J +‡Ö&@F¶óýÔ4fÀw¾Ÿ/V„Àü©ñÒMb€?{®Gáz¤?Zd;ßOÕ?}?5^ºÉ&@q= ×£8fÀw¾Ÿ/^„Àk�m~cú~j¼t“ˆ¿À¿Zd;ßOÕ¿#Ûù~j|#@sh‘í|/gÀF¶óýÔ®…Àú~j¼t“ˆ?R¸…ëQ¸?Zd;ßOÕ?ú~j¼t“ˆ¿R¸…ëQ¸¿Zd;ßOÕ¿Ñ"Ûù~j#@ú~j¼t;gÀF¶óýÔ¶…Àú~j¼t“ˆ?¤p= ×£°?Zd;ßOÕ?ú~j¼t“ˆ¿¤p= ×£°¿Zd;ßOÕ¿ +‡Y#@‹lçû©AgÀçû©ñÒ¾…Àú~j¼t“ˆ?L7‰A`å°?Zd;ßOÕ?ú~j¼t“ˆ¿L7‰A`å°¿Zd;ßOÕ¿ºI +G#@yé&1HgÀçû©ñÒÆ…Àú~j¼t“ˆ?¤p= ×£°?Zd;ßOÕ?ú~j¼t“ˆ¿¤p= ×£°¿Zd;ßOÕ¿h‘í|?5#@u“VNgÀ‰A`åÐÎ…Àú~j¼t“ˆ?ü©ñÒMb°?Zd;ßOÕ?ú~j¼t“ˆ¿ü©ñÒMb°¿Zd;ßOÕ¿¤p= ×##@�—nƒTgÀ+‡ÙÎÖ…Àú~j¼t“ˆ?ü©ñÒMb°?Zd;ßOÕ?ú~j¼t“ˆ¿ü©ñÒMb°¿Zd;ßOÕ¿R¸…ë#@¦›Ä °ZgÀ+‡ÙÎÞ…Àú~j¼t“ˆ?ü©ñÒMb°?Zd;ßOÕ?ú~j¼t“ˆ¿ü©ñÒMb°¿Zd;ßOÕ¿#@7‰A`å`gÀÍÌÌÌÌæ…Àú~j¼t“ˆ?ü©ñÒMb°?Zd;ßOÕ?ú~j¼t“ˆ¿ü©ñÒMb°¿Zd;ßOÕ¿;ßO�—î"@P�—nggÀÍÌÌÌÌî…Àú~j¼t“ˆ?ü©ñÒMb°?Zd;ßOÕ?ú~j¼t“ˆ¿ü©ñÒMb°¿Zd;ßOÕ¿é&1¬Ü"@h‘í|?mgÀoƒÀÊö…Àú~j¼t“ˆ?ü©ñÒMb°?Zd;ßOÕ?˜nƒÀÊ"@�•C‹lsgÀX9´Èþ…Àk�mzuyé&1¬|?bX9´È¶¿Zd;ßOÕ¿fffff¦"@òÒMbÄhÀP�—nχÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿þÔxé&±"@q= ×£ÌhÀP�—nׇÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿–C‹lç»"@ð§ÆK7ÕhÀP�—n߇Àyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿ºI +Ç"@oƒÀÊÝhÀP�—nç‡Àyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿R¸…ëÑ"@î|?5^æhÀòÒMbï‡Àyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿é&1¬Ü"@mçû©ñîhÀòÒMb÷‡Àyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿-²�ïç"@ìQ¸…÷hÀòÒMbÿ‡Àyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿¦›Ä °ò"@j¼t“iÀòÒMbˆÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿Ë¡E¶óý"@é&1¬iÀ“VˆÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿bX9´#@h‘í|?iÀ“VˆÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿ú~j¼t#@çû©ñÒiÀ“VˆÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿…ëQ¸#@fffff"iÀ“V'ˆÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?¶óýÔx)#@åÐ"Ûù*iÀ“V/ˆÀk‘m~‡°rh‘í|¿?×£p= ×ÿףp= ×Ó¿fffffÆKÀT㥛ĈqÀ}?5^ºÅ�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿×£p= —KÀNbX9�qÀmçû©qÉ�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿Ház®gKÀHáz®—qÀ\�Âõ(Í�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿¸…ëQ8KÀþÔxé&ŸqÀL7‰AàÐ�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿)\�ÂõKÀøS㥛¦qÀ;ßO�—Ô�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿š™™™™ÙJÀòÒMb®qÀ+‡ÙNØ�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿ ×£p=ªJÀ¨ÆK7‰µqÀ/Ý$Ü�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿{®GázJÀ¢E¶óý¼qÀ ×£p½ß�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿ìQ¸…KJÀœÄ °rÄqÀú~j¼tã�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿\�Âõ(JÀ–C‹lçËqÀé&1,ç�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿ÍÌÌÌÌìIÀL7‰A`ÓqÀ¬Zäê�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿= ×£p½IÀF¶óýÔÚqÀøS㥛î�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿®GázŽIÀ?5^ºIâqÀçû©ñRò�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿…ëQ¸^IÀö(\�ÂéqÀ×£p= ö�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?�Âõ(\/IÀð§ÆK7ñqÀÇK7‰Áù�Àk“m‚cÙÎ÷S㥛?ƒÀÊ¡E¶Ã¿sh‘í|?Õ¿çû©ñÒM4@ +‡‡pÀáz®Gª�ÀÙÎ÷S㥛¿ü©ñÒMbÀ?sh‘í|?Õ?ÙÎ÷S㥛?ü©ñÒMbÀ¿sh‘í|?Õ¿‰A`åÐb4@Ñ"Ûù~ŽpÀh‘í|?²�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿+‡ÙÎw4@¬Zd“pÀNbX9º�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿ÍÌÌÌÌŒ4@?5^ºI˜pÀ33333Â�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿oƒÀÊ¡4@ºI +�pÀºI +Ê�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿X9´È¶4@òÒMb¢pÀ /Ý$Ò�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿²�ï§ÆË4@mçû©ñ¦pÀ…ëQ¸Ú�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿T㥛Äà4@¤p= ׫pÀ +‡â�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿ö(\�Âõ4@Ûù~j¼°pÀòÒMbê�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿^ºI  5@V-²�µpÀyé&1ò�ÀÙÎ÷S㥛¿B`åÐ"Û¹?sh‘í|?Õ? 5@®GázºpÀ^ºI ú�Àk•mz? ð?ÍÌÌÌÌÌì?š™™™™™é?ð?Ð?ð? ð? ð?ð?ð?ð?ffffffö?âÐ?äà?æè?èð?ð?ð?ð?ð?ð?ð?ð?9;à?à?ì=ÍÌÌÌÌÌì?ÍÌÌÌÌÌì?îÐ?à?è? ×£p= ï?)\�Âõ(Ì?ìQ¸…ëá?ð?…ëQ¸å? ×£p= ï?R¸…ëQÈ?ð? ×£p= ï?ö(\�Âõà? ×£p= ·?ð?R¸…ëQÈ?333333ë? ×£p= ï?ð?·µ©ª±³­ª§¡¢¥¨«Ÿ£¤¦²°¬¼¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÕÖרÙÚÛÜÝÞßàá¸7–@í :@@:@ 333333Ó?𿚙™™™™É?4@ 333333㿚™™™™™@ê 2À+‡ÙùyÀÅ °r(¢•Àxï à?ð?9@ À$@.@@@ð 2@+‡ÙùyÀÅ °r(¢•À à¿ð?ã ü©ñÒMbP?ü©ñÒMbP?ü©ñÒMbP?éåç ð?F%ušï?€H¿}8Ï?€H¿}8Ï¿F%ušï?Cëâ6@¥½Á&Ó@Bš™™™™™¹?ô W[±¿Ø?×£p= ×Ó¿˜nƒÀÊë?:ÀpΈÒÞzuÀ‚“À Òo_Îï?8øÂdª`¤¿‘í|?5^º?}®¶bÙí?ßO�—n×?lxz¥,C¼¿ ŠcîÖ¿D‹lçû©í?N@N@D@ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ!"ÿÿÿÿ#$ÿÿÿÿ%&ÿÿÿÿ'(ÿÿÿÿ)*ÿÿÿÿ+,ÿÿÿÿ-.ÿÿÿÿ/0ÿÿÿÿ12ÿÿÿÿ34ÿÿÿÿ56ÿÿÿÿ78ÿÿÿÿ9:ÿÿÿÿ;<ÿÿÿÿ=>ÿÿÿÿ?@ÿÿÿÿLŸ ¡ ¢ £ ¤ ¥  ¦ &§ ,¨ 4© :ª A« H¬ N­ V® ^¯ d° j± p² w³ {´ ‚ µ¶Ž·C“¸¹£º¹¤»¹¦¼½¨¾½¬¿½°À½´Á½¸Â½¼Ã½ÀĽÄÅ½ÈÆ½ÌǽÐȽÔɽØÊ½Ü˽à̽äͽèνìϽðнôѽøÒ½üÓÔÕÔÖÔ×Ô ØÔ ÙÔÚÔÛÔÜÔÝÔÞÔßÔ!àÔ$áÔ'â * ã¹4ä 5 å¹?æ @ ç¹Jè K é¹UêëVì Xí¹\î ^ï¹bðëdXÿÿÿÿABÿÿÿÿgCDÿÿÿÿhEFÿÿÿÿiGÿÿÿÿkHÿÿÿÿÿÿÿÿkIÿÿÿÿÿÿÿÿmJÿÿÿÿÿÿÿÿoKÿÿÿÿÿÿÿÿqLÿÿÿÿÿÿÿÿsMÿÿÿÿÿÿÿÿuNÿÿÿÿÿÿÿÿwOÿÿÿÿÿÿÿÿyPÿÿÿÿÿÿÿÿ{Qÿÿÿÿÿÿÿÿ}RÿÿÿÿÿÿÿÿSÿÿÿÿÿÿÿÿ�TÿÿÿÿÿÿÿÿƒUÿÿÿÿÿÿÿÿ…Vÿÿÿÿÿÿÿÿ‡Wÿÿÿÿÿÿÿÿ‰Xÿÿÿÿÿÿÿÿ‹Yÿÿÿÿÿÿÿÿ�Zÿÿÿÿÿÿÿÿ�[ÿÿÿÿÿÿÿÿ‘\ÿÿÿÿÿÿÿÿ“]ÿÿÿÿÿÿÿÿ•^ÿÿÿÿÿÿÿÿ—_ÿÿÿÿÿÿÿÿ™`ÿÿÿÿÿÿÿÿ›aÿÿÿÿÿÿÿÿ�bÿÿÿÿÿÿÿÿŸcÿÿÿÿÿÿÿÿ¡dÿÿÿÿÿÿÿÿ£eÿÿÿÿÿÿÿÿ¥fÿÿÿÿÿÿÿÿ§gÿÿÿÿÿÿÿÿ©hÿÿÿÿÿÿÿÿ«iÿÿÿÿÿÿÿÿ­jÿÿÿÿÿÿÿÿ¯kÿÿÿÿÿÿÿÿ±lÿÿÿÿÿÿÿÿ³mÿÿÿÿÿÿÿÿµnÿÿÿÿÿÿÿÿ·oÿÿÿÿÿÿÿÿ¹pÿÿÿÿÿÿÿÿ»qÿÿÿÿÿÿÿÿ½rÿÿÿÿÿÿÿÿ¿sÿÿÿÿÿÿÿÿÁtÿÿÿÿÿÿÿÿÃuÿÿÿÿÿÿÿÿÅvÿÿÿÿÿÿÿÿÇwÿÿÿÿÿÿÿÿÉxÿÿÿÿÿÿÿÿËyÿÿÿÿÿÿÿÿÍzÿÿÿÿÿÿÿÿÏ{ÿÿÿÿÿÿÿÿÑ|ÿÿÿÿÿÿÿÿÓ}ÿÿÿÿÿÿÿÿÕ~ÿÿÿÿÿÿÿÿ×ÿÿÿÿÿÿÿÿÙ€ÿÿÿÿÿÿÿÿÛ�ÿÿÿÿÿÿÿÿÝ‚ÿÿÿÿÿÿÿÿ߃ÿÿÿÿÿÿÿÿá„ÿÿÿÿÿÿÿÿã…ÿÿÿÿÿÿÿÿå†ÿÿÿÿÿÿÿÿç‡ÿÿÿÿÿÿÿÿéˆÿÿÿÿÿÿÿÿë‰ÿÿÿÿÿÿÿÿíŠÿÿÿÿÿÿÿÿï‹ÿÿÿÿÿÿÿÿñŒÿÿÿÿÿÿÿÿó�ÿÿÿÿÿÿÿÿõŽÿÿÿÿÿÿÿÿ÷�ÿÿÿÿÿÿÿÿù�ÿÿÿÿÿÿÿÿû‘ÿÿÿÿÿÿÿÿý’ÿÿÿÿÿÿÿÿÿ“ÿÿÿÿÿÿÿÿ”ÿÿÿÿÿÿÿÿ•ÿÿÿÿÿÿÿÿ–ÿÿÿÿÿÿÿÿ—ÿÿÿÿÿÿÿÿ ˜ÿÿÿÿÿÿÿÿ ™ÿÿÿÿÿÿÿÿ šÿÿÿÿÿÿÿÿ›ÿÿÿÿÿÿÿÿœÿÿÿÿÿÿÿÿ�ÿÿÿÿÿÿÿÿžÿÿÿÿÿÿÿÿŸÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿ¡ÿÿÿÿÿÿÿÿ¢ÿÿÿÿÿÿÿÿ£ÿÿÿÿÿÿÿÿ!¤ÿÿÿÿÿÿÿÿ#¥ÿÿÿÿÿÿÿÿ%¦ÿÿÿÿÿÿÿÿ'§ÿÿÿÿÿÿÿÿ)¨ÿÿÿÿÿÿÿÿ+©ÿÿÿÿÿÿÿÿ-ªÿÿÿÿÿÿÿÿ/«ÿÿÿÿÿÿÿÿ1¬ÿÿÿÿÿÿÿÿ3­ÿÿÿÿÿÿÿÿ5®ÿÿÿÿÿÿÿÿ7¯ÿÿÿÿÿÿÿÿ9°ÿÿÿÿÿÿÿÿ;±ÿÿÿÿÿÿÿÿ=²ÿÿÿÿÿÿÿÿ?³ÿÿÿÿÿÿÿÿA´ÿÿÿÿÿÿÿÿCµÿÿÿÿÿÿÿÿE¶ÿÿÿÿÿÿÿÿG·ÿÿÿÿÿÿÿÿI¸ÿÿÿÿÿÿÿÿK¹ÿÿÿÿÿÿÿÿMºÿÿÿÿÿÿÿÿO»ÿÿÿÿÿÿÿÿQ¼ÿÿÿÿÿÿÿÿS½ÿÿÿÿÿÿÿÿU¾ÿÿÿÿÿÿÿÿW¿ÿÿÿÿÿÿÿÿYÀÿÿÿÿÿÿÿÿ[Áÿÿÿÿÿÿÿÿ]Âÿÿÿÿÿÿÿÿ_ÃÿÿÿÿÿÿÿÿaÄÿÿÿÿÿÿÿÿcÅÿÿÿÿÿÿÿÿeÆÿÿÿÿÿÿÿÿgÇÿÿÿÿÿÿÿÿiÈÿÿÿÿÿÿÿÿkÉÿÿÿÿÿÿÿÿmÊÿÿÿÿÿÿÿÿoËÿÿÿÿÿÿÿÿqÌÿÿÿÿÿÿÿÿsÍÿÿÿÿÿÿÿÿuÎÿÿÿÿÿÿÿÿwÏÿÿÿÿÿÿÿÿyÐÿÿÿÿÿÿÿÿ{Ñÿÿÿÿÿÿÿÿ}ÒÿÿÿÿÿÿÿÿÓÿÿÿÿÿÿÿÿ�ÔÿÿÿÿÿÿÿÿƒÕÿÿÿÿÿÿÿÿ…Öÿÿÿÿÿÿÿÿ‡×ÿÿÿÿÿÿÿÿ‰Øÿÿÿÿÿÿÿÿ‹Ùÿÿÿÿÿÿÿÿ�Úÿÿÿÿÿÿÿÿ�Ûÿÿÿÿÿÿÿÿ‘Üÿÿÿÿÿÿÿÿ“Ýÿÿÿÿÿÿÿÿ•Þÿÿÿÿÿÿÿÿ—ßÿÿÿÿÿÿÿÿ™àÿÿÿÿÿÿÿÿ›áÿÿÿÿÿÿÿÿ�âÿÿÿÿÿÿÿÿŸãÿÿÿÿÿÿÿÿ¡äÿÿÿÿÿÿÿÿ£åÿÿÿÿÿÿÿÿ¥æÿÿÿÿÿÿÿÿ§çÿÿÿÿÿÿÿÿ©èÿÿÿÿÿÿÿÿ«éÿÿÿÿÿÿÿÿ­êÿÿÿÿÿÿÿÿ¯ëÿÿÿÿÿÿÿÿ±ìÿÿÿÿÿÿÿÿ³íÿÿÿÿÿÿÿÿµîÿÿÿÿÿÿÿÿ·ïÿÿÿÿÿÿÿÿ¹ðÿÿÿÿÿÿÿÿ»ñÿÿÿÿÿÿÿÿ½òÿÿÿÿÿÿÿÿ¿óÿÿÿÿÿÿÿÿÁôÿÿÿÿÿÿÿÿÃõÿÿÿÿÿÿÿÿÅöÿÿÿÿÿÿÿÿÇ÷ÿÿÿÿÿÿÿÿÉøÿÿÿÿÿÿÿÿËùÿÿÿÿÿÿÿÿÍúÿÿÿÿÿÿÿÿÏûÿÿÿÿÿÿÿÿÑüÿÿÿÿÿÿÿÿÓýÿÿÿÿÿÿÿÿÕþÿÿÿÿÿÿÿÿ×ÿÿÿÿÿÿÿÿÿÙÿÿÿÿÿÿÿÿÛÿÿÿÿÿÿÿÿÝÿÿÿÿÿÿÿÿßÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿåÿÿÿÿÿÿÿÿçÿÿÿÿÿÿÿÿéÿÿÿÿÿÿÿÿë ÿÿÿÿÿÿÿÿí ÿÿÿÿÿÿÿÿï ÿÿÿÿÿÿÿÿñ ÿÿÿÿÿÿÿÿó ÿÿÿÿÿÿÿÿõÿÿÿÿÿÿÿÿ÷ÿÿÿÿùËÿÿÿÿÿÿÿÿùËÿÿÿÿÿÿÿÿûËÿÿÿÿÿÿÿÿýËÿÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿ Ëÿÿÿÿÿÿÿÿ Ëÿÿÿÿÿÿÿÿ ËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿË ÿÿÿÿÿÿÿÿË!ÿÿÿÿÿÿÿÿË"ÿÿÿÿÿÿÿÿË#ÿÿÿÿÿÿÿÿË$ÿÿÿÿÿÿÿÿ!Ë%ÿÿÿÿÿÿÿÿ#Ë&ÿÿÿÿÿÿÿÿ%Ë'ÿÿÿÿÿÿÿÿ'Ë(ÿÿÿÿÿÿÿÿ)Ë)ÿÿÿÿÿÿÿÿ+Ë*ÿÿÿÿÿÿÿÿ-Ë+ÿÿÿÿÿÿÿÿ/Ë,ÿÿÿÿÿÿÿÿ1Ë-ÿÿÿÿÿÿÿÿ3Ë.ÿÿÿÿÿÿÿÿ5Ë/ÿÿÿÿÿÿÿÿ7Ë0ÿÿÿÿÿÿÿÿ9Ë1ÿÿÿÿÿÿÿÿ;Ë2ÿÿÿÿÿÿÿÿ=Ë3ÿÿÿÿÿÿÿÿ?Ë4ÿÿÿÿÿÿÿÿAË5ÿÿÿÿÿÿÿÿCË6ÿÿÿÿÿÿÿÿEË7ÿÿÿÿÿÿÿÿGË8ÿÿÿÿÿÿÿÿIË9ÿÿÿÿÿÿÿÿKË:ÿÿÿÿÿÿÿÿMË;ÿÿÿÿÿÿÿÿOË<ÿÿÿÿÿÿÿÿQË=ÿÿÿÿÿÿÿÿSË>ÿÿÿÿÿÿÿÿUË?ÿÿÿÿÿÿÿÿWË@ÿÿÿÿÿÿÿÿYËAÿÿÿÿÿÿÿÿ[ËBÿÿÿÿÿÿÿÿ]ËCÿÿÿÿÿÿÿÿ_ËDÿÿÿÿÿÿÿÿaËEÿÿÿÿÿÿÿÿcËFÿÿÿÿÿÿÿÿdËGÿÿÿÿÿÿÿÿeËHÿÿÿÿÿÿÿÿfËIÿÿÿÿÿÿÿÿgËJÿÿÿÿÿÿÿÿhKBÿÿÿÿiLMÿÿÿÿiNMÿÿÿÿkOMÿÿÿÿmPMÿÿÿÿoQMÿÿÿÿqRMÿÿÿÿsSMÿÿÿÿuTMÿÿÿÿwUMÿÿÿÿyVMÿÿÿÿ{WMÿÿÿÿ}XMÿÿÿÿYMÿÿÿÿ�ZMÿÿÿÿƒ[Mÿÿÿÿ…\Mÿÿÿÿ‡]Mÿÿÿÿ‰^Mÿÿÿÿ‹_Mÿÿÿÿ�`Mÿÿÿÿ�aMÿÿÿÿ‘bMÿÿÿÿ“cdÿÿÿÿ•edÿÿÿÿ–fBÿÿÿÿ— gdÿÿÿÿ— hdÿÿÿÿ˜ idÿÿÿÿ™ jdÿÿÿÿš kdÿÿÿÿ› ldÿÿÿÿœ mdÿÿÿÿ� ndÿÿÿÿž odÿÿÿÿŸ pdÿÿÿÿ  qdÿÿÿÿ¡ rdÿÿÿÿ¢sBÿÿÿÿ£-tFÿÿÿÿ¤-uFÿÿÿÿ¦-vFÿÿÿÿ¨-wFÿÿÿÿª-xFÿÿÿÿ¬-yFÿÿÿÿ®-zFÿÿÿÿ°-{Fÿÿÿÿ²-|Fÿÿÿÿ´-}Fÿÿÿÿ¶-~Fÿÿÿÿ¸-Fÿÿÿÿº-€Fÿÿÿÿ¼-�Fÿÿÿÿ¾-‚FÿÿÿÿÀ-ƒFÿÿÿÿÂ-„FÿÿÿÿÄ-…FÿÿÿÿÆ-†FÿÿÿÿȇBÿÿÿÿÊAˆ‰ÿÿÿÿË AЉÿÿÿÿØA‹‰ÿÿÿÿéAŒFÿÿÿÿúA�FÿÿÿÿüAŽFÿÿÿÿþA�FÿÿÿÿA�Fÿÿÿÿ‘BÿÿÿÿJ’“ÿÿÿÿJ”“ÿÿÿÿJ•“ÿÿÿÿ J–“ÿÿÿÿJ—“ÿÿÿÿJ˜“ÿÿÿÿJ™“ÿÿÿÿJš“ÿÿÿÿ Je“ÿÿÿÿ$J›“ÿÿÿÿ(Jœ“ÿÿÿÿ,J�“ÿÿÿÿ0Jž“ÿÿÿÿ48ñòóôõö÷ñø ó ôõö÷ñø ôõö÷ñø ôõö÷ñø ôõö÷ñøôõö÷ñøôõö÷ñøòùôõö÷ñøôõö÷ñøùôõö÷ñøùôõö÷ñøôõö÷ñø úóôõö÷ñøóùôõö÷ñøôõö÷ñøôõö÷ñø ôõö÷ñøù!ôõö÷ñ"û#ü$ý%ñø&ù!ôõö÷ñ'þ(ÿ))*ôõ+,-./012 3 4 5 6 )786)9:;8;;<<;=>? @? A6B C!D6B E!F6G C!H6I E!J6K C!L6M E!N6O C!P6B E!Q6R C!S6I E!T6U C!V6U E!W6X C!Y6Z E![6\ C!]6^ E!_6K C!`6a E!b6c C!d63 E!e6f C!g6h E!i"j#o&p"j#s&t"j#w&x"j#{&|"j#&€"j#ƒ&„"j#†&|"j#ˆ&|"j#‹&Œ"j#Ž&€"j#�&|"j#’&€"j#”&„"j#–&|ñø—ò˜ù™'šõ›öœ÷œó�(š žñø—ò˜ù™'Ÿõ›öœ÷œó�(š  ñø—ò˜ù™'¡õ›öœ÷œó�(š ¢ñø—ò˜ù™'£õ›öœ÷œó�(š ¤)¥*¦ñ§+¨,©-6ª «ñ§+¬,©-6­ ®.6)¯*°/±0² ³151´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¹2µ1¸2µ1¶2µ1·2µ1´2µ1¹2µ1¸2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1»2µ1¼2µ1½2µ1¾2µ1¿2µ1¼2µ1¾2µ1¿2µ1À2µ1¼2µ1¾2µ1¿2µ1À2µ1¼2µ1¿2µ1À2µ1¼2µ1Á2µ1Â2µ1Ã2µ1¾2µ1¿2µ1Ä2µ1¼2µ1Â2µ1¿2µ1Ä2µ1À2µ1»2µ1¼2µ1¿2µ1Å2µ1À2µ1¼2µ1Â2µ1½2µ1¿2µ1¸2µ1Å2µ1Ä2µ1À2µ1¼2µ1¿2µ1Å2µ1À2µ1»2µ1¼2µ1½2µ1Ã2µ1¾2µ1¿2µ1Æ2µ1½2µ1¿1¿1¿1¿1¿1¿3Ç2µ3È2µ3É2µ3Ê2µ3Ë2µ3Ì2µ3Í2µ3Î2µ3Ï2µ3Ð2µ3Ñ2µ3Ò2µ3Ó2µ3Ô2µ3Õ2µ3Ö2µ3×2µ3Ø2µ3Ù2µ3Ú2µ3Û2µ3Ü2µ4Ý4Þ4ß4à4á4â4ã4ä4å4æ4ç4è4é4ê5ë ì1À ì1» ì1¼ ì1Á ì1 ì1½ ì1à ì1º ì1¾ ì1´ ì1¹ ì1¿ ì1Æ ì1¸ ì1@ ì1A ì1Å ì1¶ ì1·/í6ë7î8ï9ë ð:.;ñ<ò=ó>ô?@õAöB÷6ë7ø8,C8D%9ë ù<ú=û>ü?ý@þEÿFGAöB6ë7ø8,C8D%9ë ù<=û>ü?ý@þEÿFGAö H H H H HI J K { I J K { IJ K { IJ K { IJ K { IJ K { IJ K { IJ K { IJ K { IJ K { IJ K { IJ K { IJ K { ÿÿÿÿÊ       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW        +T¯EèEÿ//LRØaÏ$#!˜ë¦Ìà×OüSááRjHit¾(/9*8Á³MÁÜèÀh‹ŒÐƒ9ÏÔFŽsÌworld/course/course.rscnDaylightèèð?ÿÿÿÿÿÿÿÿ Keys/accent2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/arch2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/banner2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/bark2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKeys/box2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/building2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/crowd2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKeys/far2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/fence2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/groomed2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKeys/ice2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/lift2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/neon2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/packed2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/pine_a2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/pine_b2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKeys/pine_cone2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/powder2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/rock2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿSky)material_override:shader_parameter/zenith¶­�èÈpHÿ¸`@ÿ˜H8ÿh((ÿX ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ*material_override:shader_parameter/horizon¶­�èðØÈÿèÐØÿȸàÿ Xxÿ Phÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(material_override:shader_parameter/below¶­�èðØÈÿèÐØÿȸàÿ Xxÿ Phÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�è¨àøÿ€Èøÿ` øÿPxøÿH`èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ/material_override:shader_parameter/horizon_tint¶­�èÿòàÿÿéòÿàÎûÿ³c†ÿ³Ztÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Environmentenvironment:fog_light_color¶­�èðØÈÿèÐØÿȸàÿ Xxÿ Phÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿenvironment:background_color¶­�èðØÈÿèÐØÿȸàÿ Xxÿ Phÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿenvironment:fog_depth_begin¶­�è€A@€@@>@:@9@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿenvironment:fog_depth_end¶­�è€a@€`@_@\@€[@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿFx/Snowemitting­ÿÿÿÿÿÿÿÿConfetti<Zð?ÿÿÿÿÿÿÿÿ Fx/ConfettiLemittingÿÿÿÿÿÿÿÿ Fx/ConfettiRemittingÿÿÿÿÿÿÿÿ Lift_GD_liftâð?ÿÿÿÿÿÿÿÿDressing/GD_lift position:xâ AñcÌ]Ë?ÿÿÿÿÿÿÿÿ position:yâ�¥½ÁW7Àÿÿÿÿÿÿÿÿ position:zâ à-� 4SÀÿÿÿÿÿÿÿÿ Lift_GU_liftâð?ÿÿÿÿÿÿÿÿDressing/GU_lift position:xâ AñcÌ]Ë¿ÿÿÿÿÿÿÿÿ position:yâ�¥½ÁW7@ÿÿÿÿÿÿÿÿ position:zâ à-� 4S@ÿÿÿÿÿÿÿÿ Lift_L1D_lifthð?ÿÿÿÿÿÿÿÿDressing/L1D_lift position:xhÿÿÿÿÿÿÿÿ position:yhé·¯g Àÿÿÿÿÿÿÿÿ position:zh¥½Á&Ó<Àÿÿÿÿÿÿÿÿ Lift_L1U_lifthð?ÿÿÿÿÿÿÿÿDressing/L1U_lift position:xhÿÿÿÿÿÿÿÿ position:yhé·¯g @ÿÿÿÿÿÿÿÿ position:zh¥½Á&Ó<@ÿÿÿÿÿÿÿÿ Lift_L2D_lift*ð?ÿÿÿÿÿÿÿÿDressing/L2D_lift position:x*ºk ù ‡1@ÿÿÿÿÿÿÿÿ position:y*J +‡– Àÿÿÿÿÿÿÿÿ position:z*íž<,Ô:1Àÿÿÿÿÿÿÿÿ Lift_L2U_lift*ð?ÿÿÿÿÿÿÿÿDressing/L2U_lift position:x*ºk ù ‡1Àÿÿÿÿÿÿÿÿ position:y*J +‡– @ÿÿÿÿÿÿÿÿ position:z*íž<,Ô:1@ÿÿÿÿÿÿÿÿ"Є]sny@L0…Â]´WR—Mã ¥¸>vpNˆ! àAÞ\O@•IYcòfP�–Ý+Ü3Q°�Õ %äR�§%–è³?SÀ¬µŒÔôT€°� ޽7U »�ËKŠ£V°½­ �„W`Áµäè.zX ß-ûÄѨYPæí̈�>Z@ù'‘—"[p ÁgÇû\@a ?<5]° ið.9Ç^ 1I”]6#_p2ÕµÁ`PDi0+�·aÀY0úésïbà‰YÐ/îc@ŒY À<%d ™M ¨žeðš½ò¬Tf°£Q o^Ãg°ßUG ßãhð °pi I¡B ÍjP …ýœÞkàI Ûl0õø7Ψm0‰Î5 ÁnÀ1)�é»òoð¾�kèQìp€Ïå àvB8qpÚQF¿`šrÐÜÙŠy:Ás°ß}_ÚÆt0ä·.ë ‡7uð šãË~v=¯BЉw@-)ŽUHxp.a¨ó²Fyà6� >“gàzpA… vŽ�{G…!~gw|�J )yÖ:} Ly Pü‡~ OáÚ]ÈT­¯ÅŸé€ÀY™¿‡_0�`_é*à\I^‚PŠé*ex±çƒ@µ…7Ó(„Ðʉíìc…`à÷µñë†`ï© à.‡ù'áæŸ)ˆ@ü‰Á½Q}‰Ðý néΊà =@C‹ð mà]èwŒ`7 §ü9ÀÍ�P g.»j‘DŽ€~ Ù¥Íï4�`„ -&ï®Ñ��ª `¤ˆ+Ú‘ð¸ -Òob†’æ – «Ò7J“ ï âÉ$””� G�åÌ•à n)_T–PJ ‡#ªÜC—àL Ô ™U—Ÿ˜ÀV dàES¡™0p …)‘^)ôšÀ™ F2±:å�›Ì Æ�¥ÓœàÔ ‹»{UŒ�pë …),ЉÌž X0ß‚&Ÿ`E ] �&Q ÀN ±×qj¡Ðg »)hs¢�‡ ™ °Ïü£0¨ ïÒ�6¤ Å £?m7–¥ÐÉ «K3·é¦€Ü >/†Y§Àó $±ý·Ø¨ð ‘\�#©� ɲ.™Iª`+ 90-œ« > *¡Ì¬°A ìK7–Ê­ [ Š„ku®Ào ¡™Öéè¯ps B'B¶°Àƒ ›”Fv±`† â7žg²P— „fŒ1x³àš R["@í´@ö ugã¶XµÀ c²Lú¶0 d4¤Ñ°U· O ñ†É¸ R ã%=Û¸Z¹�x �—óº ” •%y·»À§ !`x¼Ъ YåÅv½0Æ �tæŠ*¾ÀÙ éŸ{<ö¿°Ü ÍžA¿À€ô ÑrŽCÁ`�-üŽÂð  "A¿,Ã*ùŸ ñÄBÍVK:ÅàT­Ĩ$ Æ�W½ RM.“ÇPdú ÷›šÈPn“¸6#uÉðoÔ±× Êv�Ý+¡‰Ë ~QưCiÌ…=1è©Í@‹/ç^ðlÎpŸýŽS6AÏp¦A¥�[¢ÐÀ¬Mtlíѳ•öžhîÒ°ºÝ!D¸Ó�Áú9…YÔ È9amØÕàÎÕ:”îGÖÀÕ=w%ë…×Ü=Ñàa Ø@âñÊiþÙ@å1‡&z(Ú€ëe‡„¯cÛðñé]îY¼Üàø]^¶Ÿ°Ý@-‰àŸ Þp)Ü~•]ß  ):0ZùàÐ9`Õáñæ,4ˆâ -Æ„f8ã@&!lï®ä@G!\൱åpM9$šÜÇæ°SåÉÚ#;ç [Å’WÙeèpcÝÁ¯sjéPj9”:tJê�pÁ¸¬^Þë`x>‘r�^ì €¹Èð¶ní`ˆaàÖÄ{îÐŽ»—Ñ©ï�£m>I/�ðªa/§?ñp°mËš=äòà¶…ìäYóp½uPº gôðÃUתk¹õPÊY:n ö°ÐEÛ·ž÷×½cŸäšøÀÛ}¯%ÑÄù@Þ 9è9ÔúPá+!;w¨ñû€ÒƒSUü`º_BãýpsÄÃø#þð<ÁÓÿC¥^3áʰ[Y�3žÐ^–¬ù•Np{O ŒH× À„"Ä¿Ñãð’€+Ûíp«§iÁ"} ®Õù1ΰËü ‘ïRØZ�Ü�ó `î©U˜ pñÔAîâ P¢öÆ‚ž ˘ÍS¿ Ð8Ÿ�ìWŠp;FF\E¼ÀVøÎ)àPÀl0rTð<ð‚ºØï¼’°™8¤†М"eÜÝþ¼2 Õ«ÆN@ÉÛB=eb ßýHV€ âS‘Ñg€ö‘@/”ê «ú¾ûе¡y­�)õ+ih�,úVœ¬°Ki‹þ  \£Š ‘vÐrHö~q  v¬}jª!@’øÒŒ3"@¢9�b€#€¹j¬´°Y$ð¾¢È“ÊÈ% ÝáI_@&°ñKN°žŸ' �¯gTé(�(õêuÞ)°+˜H6*PIiT:Ö&+À`—–½i",`w�rZøx-ðzô%+Ø&<.ð Ê¹†Ñ±/À£Ô”;’™0 ·#¡â1ÐÍùSÕ¥2ÐÐå%7 ¿r3Àö²Ç‘Wî4€%ç訷5°&+{ve6à@Ê5Ç}7°[dX`ý8À\@�–ý!9{Eø J:PጂáV;@‚L&ûÕ§<�¨ \ݨ = ³ÃãB>À´…òØæ?PÒ¬^/(p@ÖÍ%2UzAÐûùŽÃ{3BÐ <%b/Cà?$ª‘OID 9�}ÃÙFE°P† *0‹`F@q%wÕûœGptÙ㩽HP’D zX*}I ›òÕÝ>ŠJ ´î«E_K�¹á$LóHML€Þܹ­›kM`íõ¾ÐÜN` И4�+O0¦#.š¹ÙPà4Ö ¿©ÁQÀ>|lÕnR@QD²êrNS�TÜ!hZÖTpV[ËxšãUÐ]F-Kà V `³3†JWàaáPÕ¶ÈXÐb]3¯LqY0chQEZ có5`[ d–9Iïz\@hý7™ñA]@kà‰Ç�5^ n pi(_Àq}Î ð`@v?†Ñú„a€{%ðd%qb°ÛJÔä'c��Å5~§Ud`„€¬à’ eà‡;Õà fˆO†¬ g ˆàŸÆ’hŒé8„qi ”"¸ Ôj0¬å ŽL§¾k º– ÜI^ÅlÀÃrÍCÉ¡course/course.rscnscripts/daylight.asscripts/fx_course.asx                                D00_archMeshInstance3Dcourse/dressing.rmdlcmd#0D00_bannercourse/dressing.rmdlcmd#1D00_buildingcourse/dressing.rmdlcmd#2D00_fencecourse/dressing.rmdlcmd#3D00_liftcourse/dressing.rmdlcmd#4D01_bannercourse/dressing.rmdlcmd#5D01_fencecourse/dressing.rmdlcmd#6D01_liftcourse/dressing.rmdlcmd#7D02_accentcourse/dressing.rmdlcmd#8D02_bannercourse/dressing.rmdlcmd#9D02_fencecourse/dressing.rmdlcmd#10D02_liftcourse/dressing.rmdlcmd#11D03_accentcourse/dressing.rmdlcmd#12D03_bannercourse/dressing.rmdlcmd#13D03_liftcourse/dressing.rmdlcmd#14D04_accentcourse/dressing.rmdlcmd#15D04_bannercourse/dressing.rmdlcmd#16D04_barkcourse/dressing.rmdlcmd#17D04_boxcourse/dressing.rmdlcmd#18D04_crowdcourse/dressing.rmdlcmd#19D04_fencecourse/dressing.rmdlcmd#20D04_liftcourse/dressing.rmdlcmd#21D04_railcourse/dressing.rmdlcmd#22D05_bannercourse/dressing.rmdlcmd#23D05_boxcourse/dressing.rmdlcmd#24D05_liftcourse/dressing.rmdlcmd#25D05_railcourse/dressing.rmdlcmd#26D06_accentcourse/dressing.rmdlcmd#27D06_archcourse/dressing.rmdlcmd#28D06_bannercourse/dressing.rmdlcmd#29D06_liftcourse/dressing.rmdlcmd#30D06_pine_conecourse/dressing.rmdlcmd#31D07_accentcourse/dressing.rmdlcmd#32D07_bannercourse/dressing.rmdlcmd#33D07_boxcourse/dressing.rmdlcmd#34D07_buildingcourse/dressing.rmdlcmd#35D07_liftcourse/dressing.rmdlcmd#36D07_packedcourse/dressing.rmdlcmd#37D07_pine_conecourse/dressing.rmdlcmd#38D07_railcourse/dressing.rmdlcmd#39D08_accentcourse/dressing.rmdlcmd#40D08_bannercourse/dressing.rmdlcmd#41D08_liftcourse/dressing.rmdlcmd#42D08_pine_conecourse/dressing.rmdlcmd#43D09_accentcourse/dressing.rmdlcmd#44D09_archcourse/dressing.rmdlcmd#45D09_bannercourse/dressing.rmdlcmd#46D09_buildingcourse/dressing.rmdlcmd#47D09_crowdcourse/dressing.rmdlcmd#48D09_fencecourse/dressing.rmdlcmd#49D09_liftcourse/dressing.rmdlcmd#50D09_neoncourse/dressing.rmdlcmd#51D10_buildingcourse/dressing.rmdlcmd#52GD_liftcourse/dressing.rmdlcmd#53GU_liftcourse/dressing.rmdlcmd#54L1D_liftcourse/dressing.rmdlcmd#55L1U_liftcourse/dressing.rmdlcmd#56L2D_liftcourse/dressing.rmdlcmd#57L2U_liftcourse/dressing.rmdlcmd#58accentÃõ(?ìQx?\�B>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?archìQx?®Ga>)\?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?bannerfff?ÍÌL>?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?bark?33³>€>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?boxìQx?®?ìQ¸=€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?buildingš™?ffæ>š™™>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?crowd??š™?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?farš™Y?®Ga?33s?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?fenceìQx?®?ìQ¸=€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?groomed…k?×£p?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?iceš™?@?fff?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?liftÍÌÌ>ÍÌÌ>ffæ>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?neonìQx?š™™>333?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?packedš™Y?®Ga?33s?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?pine_aÍÌL>33³>€>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?pine_bÍÌL>33³>€>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€? pine_cone ×#>š™™>®Ga>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?powderfff?…k?Ház?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?railìQx?®Ga>)\?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?rock\�Â>{®>ÍÌÌ>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?;ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€?!"ÿÿÿÿ€?€€?€€€€?€€€?#$ÿÿÿÿ€?€€?€€€€?€€€?%&ÿÿÿÿ€?€€?€€€€?€€€?'(ÿÿÿÿ€?€€?€€€€?€€€?)*ÿÿÿÿ€?€€?€€€€?€€€?+,ÿÿÿÿ€?€€?€€€€?€€€?-.ÿÿÿÿ€?€€?€€€€?€€€?/0ÿÿÿÿ€?€€?€€€€?€€€?12ÿÿÿÿ€?€€?€€€€?€€€?34ÿÿÿÿ€?€€?€€€€?€€€?56ÿÿÿÿ€?€€?€€€€?€€€?78ÿÿÿÿ€?€€?€€€€?€€€?9:ÿÿÿÿ€?€€?€€€€?€€€?;<ÿÿÿÿ€?€€?€€€€?€€€?=>ÿÿÿÿ€?€€?€€€€?€€€??@ÿÿÿÿ€?€€?€€€€?€€€?ABÿÿÿÿ€?€€?€€€€?€€€?CDÿÿÿÿ€?€€?€€€€?€€€?EFÿÿÿÿ€?€€?€€€€?€€€?GHÿÿÿÿ€?€€?€€€€?€€€?IJÿÿÿÿ€?€€?€€€€?€€€?KLÿÿÿÿ€?€€?€€€€?€€€?MNÿÿÿÿ€?€€?€€€€?€€€?OPÿÿÿÿ€?€€?€€€€?€€€?QRÿÿÿÿ€?€€?€€€€?€€€?STÿÿÿÿ€?€€?€€€€?€€€?UVÿÿÿÿ€?€€?€€€€?€€€?WXÿÿÿÿ€?€€?€€€€?€€€?YZÿÿÿÿ€?€€?€€€€?€€€?[\ÿÿÿÿ€?€€?€€€€?€€€?]^ÿÿÿÿ€?€€?€€€€?€€€?_`ÿÿÿÿ€?€€?€€€€?€€€?abÿÿÿÿ€?€€?€€€€?€€€?cdÿÿÿÿ€?€€?€€€€?€€€?efÿÿÿÿ€?€€?€€€€?€€€?ghÿÿÿÿ€?€€?€€€€?€€€?ijÿÿÿÿ€?€€?€€€€?€€€?klÿÿÿÿ€?€€?€€€€?€€€?mnÿÿÿÿ€?€€?€€€€?€€€?opÿÿÿÿ€?€€?€€€€?€€€?qrÿÿÿÿ€?€€?€€€€?€€€?stÿÿÿÿ€?€€?€€€€?€€€?uvÿÿÿÿ€?€€?€€€€?€€€?w�                                                                                                               T00_groomedMeshInstance3Dcourse/terrain.rmdlcmd#0T00_powdercourse/terrain.rmdlcmd#1T00_rockcourse/terrain.rmdlcmd#2T01_groomedcourse/terrain.rmdlcmd#3T01_powdercourse/terrain.rmdlcmd#4T01_rockcourse/terrain.rmdlcmd#5T02_groomedcourse/terrain.rmdlcmd#6T02_powdercourse/terrain.rmdlcmd#7T02_rockcourse/terrain.rmdlcmd#8T03_groomedcourse/terrain.rmdlcmd#9T03_powdercourse/terrain.rmdlcmd#10T03_rockcourse/terrain.rmdlcmd#11T04_groomedcourse/terrain.rmdlcmd#12T04_powdercourse/terrain.rmdlcmd#13T04_rockcourse/terrain.rmdlcmd#14T05_groomedcourse/terrain.rmdlcmd#15T05_powdercourse/terrain.rmdlcmd#16T05_rockcourse/terrain.rmdlcmd#17T06_groomedcourse/terrain.rmdlcmd#18T06_powdercourse/terrain.rmdlcmd#19T06_rockcourse/terrain.rmdlcmd#20T07_groomedcourse/terrain.rmdlcmd#21T07_powdercourse/terrain.rmdlcmd#22T07_rockcourse/terrain.rmdlcmd#23T08_groomedcourse/terrain.rmdlcmd#24T08_packedcourse/terrain.rmdlcmd#25T08_powdercourse/terrain.rmdlcmd#26T08_rockcourse/terrain.rmdlcmd#27T09_groomedcourse/terrain.rmdlcmd#28T09_packedcourse/terrain.rmdlcmd#29T09_powdercourse/terrain.rmdlcmd#30T09_rockcourse/terrain.rmdlcmd#31T10_groomedcourse/terrain.rmdlcmd#32T10_packedcourse/terrain.rmdlcmd#33T10_powdercourse/terrain.rmdlcmd#34T10_rockcourse/terrain.rmdlcmd#35T11_groomedcourse/terrain.rmdlcmd#36T11_packedcourse/terrain.rmdlcmd#37T11_powdercourse/terrain.rmdlcmd#38T11_rockcourse/terrain.rmdlcmd#39T12_groomedcourse/terrain.rmdlcmd#40T12_packedcourse/terrain.rmdlcmd#41T12_powdercourse/terrain.rmdlcmd#42T12_rockcourse/terrain.rmdlcmd#43T13_groomedcourse/terrain.rmdlcmd#44T13_packedcourse/terrain.rmdlcmd#45T13_powdercourse/terrain.rmdlcmd#46T13_rockcourse/terrain.rmdlcmd#47T14_groomedcourse/terrain.rmdlcmd#48T14_packedcourse/terrain.rmdlcmd#49T14_powdercourse/terrain.rmdlcmd#50T14_rockcourse/terrain.rmdlcmd#51T15_groomedcourse/terrain.rmdlcmd#52T15_packedcourse/terrain.rmdlcmd#53T15_powdercourse/terrain.rmdlcmd#54T15_rockcourse/terrain.rmdlcmd#55T16_groomedcourse/terrain.rmdlcmd#56T16_packedcourse/terrain.rmdlcmd#57T16_powdercourse/terrain.rmdlcmd#58T16_rockcourse/terrain.rmdlcmd#59T17_groomedcourse/terrain.rmdlcmd#60T17_packedcourse/terrain.rmdlcmd#61T17_powdercourse/terrain.rmdlcmd#62T17_rockcourse/terrain.rmdlcmd#63T18_groomedcourse/terrain.rmdlcmd#64T18_packedcourse/terrain.rmdlcmd#65T18_powdercourse/terrain.rmdlcmd#66T18_rockcourse/terrain.rmdlcmd#67T19_groomedcourse/terrain.rmdlcmd#68T19_packedcourse/terrain.rmdlcmd#69T19_powdercourse/terrain.rmdlcmd#70T19_rockcourse/terrain.rmdlcmd#71T20_groomedcourse/terrain.rmdlcmd#72T20_powdercourse/terrain.rmdlcmd#73T20_rockcourse/terrain.rmdlcmd#74T21_groomedcourse/terrain.rmdlcmd#75T21_icecourse/terrain.rmdlcmd#76T21_packedcourse/terrain.rmdlcmd#77T21_powdercourse/terrain.rmdlcmd#78T21_rockcourse/terrain.rmdlcmd#79T22_groomedcourse/terrain.rmdlcmd#80T22_icecourse/terrain.rmdlcmd#81T22_packedcourse/terrain.rmdlcmd#82T22_powdercourse/terrain.rmdlcmd#83T22_rockcourse/terrain.rmdlcmd#84T23_groomedcourse/terrain.rmdlcmd#85T23_powdercourse/terrain.rmdlcmd#86T23_rockcourse/terrain.rmdlcmd#87T24_groomedcourse/terrain.rmdlcmd#88T24_powdercourse/terrain.rmdlcmd#89T24_rockcourse/terrain.rmdlcmd#90T25_groomedcourse/terrain.rmdlcmd#91T25_packedcourse/terrain.rmdlcmd#92T25_powdercourse/terrain.rmdlcmd#93T25_rockcourse/terrain.rmdlcmd#94T26_groomedcourse/terrain.rmdlcmd#95T26_packedcourse/terrain.rmdlcmd#96T26_powdercourse/terrain.rmdlcmd#97T26_rockcourse/terrain.rmdlcmd#98T27_groomedcourse/terrain.rmdlcmd#99T27_packedcourse/terrain.rmdlcmd#100T27_powdercourse/terrain.rmdlcmd#101T27_rockcourse/terrain.rmdlcmd#102T28_groomedcourse/terrain.rmdlcmd#103T28_packedcourse/terrain.rmdlcmd#104T28_powdercourse/terrain.rmdlcmd#105T28_rockcourse/terrain.rmdlcmd#106T29_groomedcourse/terrain.rmdlcmd#107T29_packedcourse/terrain.rmdlcmd#108T29_powdercourse/terrain.rmdlcmd#109T29_rockcourse/terrain.rmdlcmd#110T30_groomedcourse/terrain.rmdlcmd#111T30_packedcourse/terrain.rmdlcmd#112T30_powdercourse/terrain.rmdlcmd#113T30_rockcourse/terrain.rmdlcmd#114T31_groomedcourse/terrain.rmdlcmd#115T31_packedcourse/terrain.rmdlcmd#116T31_powdercourse/terrain.rmdlcmd#117T31_rockcourse/terrain.rmdlcmd#118T32_groomedcourse/terrain.rmdlcmd#119T32_packedcourse/terrain.rmdlcmd#120T32_powdercourse/terrain.rmdlcmd#121T32_rockcourse/terrain.rmdlcmd#122T33_groomedcourse/terrain.rmdlcmd#123T33_packedcourse/terrain.rmdlcmd#124T33_powdercourse/terrain.rmdlcmd#125T33_rockcourse/terrain.rmdlcmd#126T34_groomedcourse/terrain.rmdlcmd#127T34_powdercourse/terrain.rmdlcmd#128T34_rockcourse/terrain.rmdlcmd#129T35_groomedcourse/terrain.rmdlcmd#130T35_packedcourse/terrain.rmdlcmd#131T35_powdercourse/terrain.rmdlcmd#132T35_rockcourse/terrain.rmdlcmd#133T36_groomedcourse/terrain.rmdlcmd#134T36_packedcourse/terrain.rmdlcmd#135T36_powdercourse/terrain.rmdlcmd#136T36_rockcourse/terrain.rmdlcmd#137T37_groomedcourse/terrain.rmdlcmd#138T37_powdercourse/terrain.rmdlcmd#139T37_rockcourse/terrain.rmdlcmd#140T38_groomedcourse/terrain.rmdlcmd#141T38_powdercourse/terrain.rmdlcmd#142T38_rockcourse/terrain.rmdlcmd#143T39_groomedcourse/terrain.rmdlcmd#144T39_powdercourse/terrain.rmdlcmd#145T39_rockcourse/terrain.rmdlcmd#146T40_groomedcourse/terrain.rmdlcmd#147T40_powdercourse/terrain.rmdlcmd#148T40_rockcourse/terrain.rmdlcmd#149T41_groomedcourse/terrain.rmdlcmd#150T41_powdercourse/terrain.rmdlcmd#151T41_rockcourse/terrain.rmdlcmd#152T42_groomedcourse/terrain.rmdlcmd#153T42_powdercourse/terrain.rmdlcmd#154T42_rockcourse/terrain.rmdlcmd#155T00_farcourse/terrain.rmdlcmd#156T01_farcourse/terrain.rmdlcmd#157T02_farcourse/terrain.rmdlcmd#158T03_farcourse/terrain.rmdlcmd#159T04_farcourse/terrain.rmdlcmd#160T05_farcourse/terrain.rmdlcmd#161T06_farcourse/terrain.rmdlcmd#162T07_farcourse/terrain.rmdlcmd#163T08_farcourse/terrain.rmdlcmd#164T09_farcourse/terrain.rmdlcmd#165T10_farcourse/terrain.rmdlcmd#166T11_farcourse/terrain.rmdlcmd#167T12_farcourse/terrain.rmdlcmd#168T13_farcourse/terrain.rmdlcmd#169T14_farcourse/terrain.rmdlcmd#170T15_farcourse/terrain.rmdlcmd#171T16_farcourse/terrain.rmdlcmd#172T17_farcourse/terrain.rmdlcmd#173T18_farcourse/terrain.rmdlcmd#174T19_farcourse/terrain.rmdlcmd#175T20_farcourse/terrain.rmdlcmd#176T21_farcourse/terrain.rmdlcmd#177T22_farcourse/terrain.rmdlcmd#178T23_farcourse/terrain.rmdlcmd#179T24_farcourse/terrain.rmdlcmd#180T25_farcourse/terrain.rmdlcmd#181T26_farcourse/terrain.rmdlcmd#182T27_farcourse/terrain.rmdlcmd#183T28_farcourse/terrain.rmdlcmd#184T29_farcourse/terrain.rmdlcmd#185T30_farcourse/terrain.rmdlcmd#186T31_farcourse/terrain.rmdlcmd#187T32_farcourse/terrain.rmdlcmd#188T33_farcourse/terrain.rmdlcmd#189T34_farcourse/terrain.rmdlcmd#190T35_farcourse/terrain.rmdlcmd#191T36_farcourse/terrain.rmdlcmd#192T37_farcourse/terrain.rmdlcmd#193T38_farcourse/terrain.rmdlcmd#194T39_farcourse/terrain.rmdlcmd#195T40_farcourse/terrain.rmdlcmd#196T41_farcourse/terrain.rmdlcmd#197T42_farcourse/terrain.rmdlcmd#198accentÃõ(?ìQx?\�B>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?archìQx?®Ga>)\?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?bannerfff?ÍÌL>?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?bark?33³>€>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?boxìQx?®?ìQ¸=€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?buildingš™?ffæ>š™™>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?crowd??š™?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?farš™Y?®Ga?33s?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?fenceìQx?®?ìQ¸=€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?groomed…k?×£p?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?iceš™?@?fff?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?liftÍÌÌ>ÍÌÌ>ffæ>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?neonìQx?š™™>333?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?packedš™Y?®Ga?33s?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?pine_aÍÌL>33³>€>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?pine_bÍÌL>33³>€>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€? pine_cone ×#>š™™>®Ga>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?powderfff?…k?Ház?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?railìQx?®Ga>)\?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?rock\�Â>{®>ÍÌÌ>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?Çÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€?!"ÿÿÿÿ€?€€?€€€€?€€€?#$ÿÿÿÿ€?€€?€€€€?€€€?%&ÿÿÿÿ€?€€?€€€€?€€€?'(ÿÿÿÿ€?€€?€€€€?€€€?)*ÿÿÿÿ€?€€?€€€€?€€€?+,ÿÿÿÿ€?€€?€€€€?€€€?-.ÿÿÿÿ€?€€?€€€€?€€€?/0ÿÿÿÿ€?€€?€€€€?€€€?12ÿÿÿÿ€?€€?€€€€?€€€?34ÿÿÿÿ€?€€?€€€€?€€€?56ÿÿÿÿ€?€€?€€€€?€€€?78ÿÿÿÿ€?€€?€€€€?€€€?9:ÿÿÿÿ€?€€?€€€€?€€€?;<ÿÿÿÿ€?€€?€€€€?€€€?=>ÿÿÿÿ€?€€?€€€€?€€€??@ÿÿÿÿ€?€€?€€€€?€€€?ABÿÿÿÿ€?€€?€€€€?€€€?CDÿÿÿÿ€?€€?€€€€?€€€?EFÿÿÿÿ€?€€?€€€€?€€€?GHÿÿÿÿ€?€€?€€€€?€€€?IJÿÿÿÿ€?€€?€€€€?€€€?KLÿÿÿÿ€?€€?€€€€?€€€?MNÿÿÿÿ€?€€?€€€€?€€€?OPÿÿÿÿ€?€€?€€€€?€€€?QRÿÿÿÿ€?€€?€€€€?€€€?STÿÿÿÿ€?€€?€€€€?€€€?UVÿÿÿÿ€?€€?€€€€?€€€?WXÿÿÿÿ€?€€?€€€€?€€€?YZÿÿÿÿ€?€€?€€€€?€€€?[\ÿÿÿÿ€?€€?€€€€?€€€?]^ÿÿÿÿ€?€€?€€€€?€€€?_`ÿÿÿÿ€?€€?€€€€?€€€?abÿÿÿÿ€?€€?€€€€?€€€?cdÿÿÿÿ€?€€?€€€€?€€€?efÿÿÿÿ€?€€?€€€€?€€€?ghÿÿÿÿ€?€€?€€€€?€€€?ijÿÿÿÿ€?€€?€€€€?€€€?klÿÿÿÿ€?€€?€€€€?€€€?mnÿÿÿÿ€?€€?€€€€?€€€?opÿÿÿÿ€?€€?€€€€?€€€?qrÿÿÿÿ€?€€?€€€€?€€€?stÿÿÿÿ€?€€?€€€€?€€€?uvÿÿÿÿ€?€€?€€€€?€€€?wxÿÿÿÿ€?€€?€€€€?€€€?yzÿÿÿÿ€?€€?€€€€?€€€?{|ÿÿÿÿ€?€€?€€€€?€€€?}~ÿÿÿÿ€?€€?€€€€?€€€?€ÿÿÿÿ€?€€?€€€€?€€€?�‚ÿÿÿÿ€?€€?€€€€?€€€?ƒ„ÿÿÿÿ€?€€?€€€€?€€€?…†ÿÿÿÿ€?€€?€€€€?€€€?‡ˆÿÿÿÿ€?€€?€€€€?€€€?‰Šÿÿÿÿ€?€€?€€€€?€€€?‹Œÿÿÿÿ€?€€?€€€€?€€€?�Žÿÿÿÿ€?€€?€€€€?€€€?��ÿÿÿÿ€?€€?€€€€?€€€?‘’ÿÿÿÿ€?€€?€€€€?€€€?“”ÿÿÿÿ€?€€?€€€€?€€€?•–ÿÿÿÿ€?€€?€€€€?€€€?—˜ÿÿÿÿ€?€€?€€€€?€€€?™šÿÿÿÿ€?€€?€€€€?€€€?›œÿÿÿÿ€?€€?€€€€?€€€?�žÿÿÿÿ€?€€?€€€€?€€€?Ÿ ÿÿÿÿ€?€€?€€€€?€€€?¡¢ÿÿÿÿ€?€€?€€€€?€€€?£¤ÿÿÿÿ€?€€?€€€€?€€€?¥¦ÿÿÿÿ€?€€?€€€€?€€€?§¨ÿÿÿÿ€?€€?€€€€?€€€?©ªÿÿÿÿ€?€€?€€€€?€€€?«¬ÿÿÿÿ€?€€?€€€€?€€€?­®ÿÿÿÿ€?€€?€€€€?€€€?¯°ÿÿÿÿ€?€€?€€€€?€€€?±²ÿÿÿÿ€?€€?€€€€?€€€?³´ÿÿÿÿ€?€€?€€€€?€€€?µ¶ÿÿÿÿ€?€€?€€€€?€€€?·¸ÿÿÿÿ€?€€?€€€€?€€€?¹ºÿÿÿÿ€?€€?€€€€?€€€?»¼ÿÿÿÿ€?€€?€€€€?€€€?½¾ÿÿÿÿ€?€€?€€€€?€€€?¿Àÿÿÿÿ€?€€?€€€€?€€€?ÁÂÿÿÿÿ€?€€?€€€€?€€€?ÃÄÿÿÿÿ€?€€?€€€€?€€€?ÅÆÿÿÿÿ€?€€?€€€€?€€€?ÇÈÿÿÿÿ€?€€?€€€€?€€€?ÉÊÿÿÿÿ€?€€?€€€€?€€€?ËÌÿÿÿÿ€?€€?€€€€?€€€?ÍÎÿÿÿÿ€?€€?€€€€?€€€?ÏÐÿÿÿÿ€?€€?€€€€?€€€?ÑÒÿÿÿÿ€?€€?€€€€?€€€?ÓÔÿÿÿÿ€?€€?€€€€?€€€?ÕÖÿÿÿÿ€?€€?€€€€?€€€?רÿÿÿÿ€?€€?€€€€?€€€?ÙÚÿÿÿÿ€?€€?€€€€?€€€?ÛÜÿÿÿÿ€?€€?€€€€?€€€?ÝÞÿÿÿÿ€?€€?€€€€?€€€?ßàÿÿÿÿ€?€€?€€€€?€€€?áâÿÿÿÿ€?€€?€€€€?€€€?ãäÿÿÿÿ€?€€?€€€€?€€€?åæÿÿÿÿ€?€€?€€€€?€€€?çèÿÿÿÿ€?€€?€€€€?€€€?éêÿÿÿÿ€?€€?€€€€?€€€?ëìÿÿÿÿ€?€€?€€€€?€€€?íîÿÿÿÿ€?€€?€€€€?€€€?ïðÿÿÿÿ€?€€?€€€€?€€€?ñòÿÿÿÿ€?€€?€€€€?€€€?óôÿÿÿÿ€?€€?€€€€?€€€?õöÿÿÿÿ€?€€?€€€€?€€€?÷øÿÿÿÿ€?€€?€€€€?€€€?ùúÿÿÿÿ€?€€?€€€€?€€€?ûüÿÿÿÿ€?€€?€€€€?€€€?ýþÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?  ÿÿÿÿ€?€€?€€€€?€€€?  ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€?!"ÿÿÿÿ€?€€?€€€€?€€€?#$ÿÿÿÿ€?€€?€€€€?€€€?%&ÿÿÿÿ€?€€?€€€€?€€€?'(ÿÿÿÿ€?€€?€€€€?€€€?)*ÿÿÿÿ€?€€?€€€€?€€€?+,ÿÿÿÿ€?€€?€€€€?€€€?-.ÿÿÿÿ€?€€?€€€€?€€€?/0ÿÿÿÿ€?€€?€€€€?€€€?12ÿÿÿÿ€?€€?€€€€?€€€?34ÿÿÿÿ€?€€?€€€€?€€€?56ÿÿÿÿ€?€€?€€€€?€€€?78ÿÿÿÿ€?€€?€€€€?€€€?9:ÿÿÿÿ€?€€?€€€€?€€€?;<ÿÿÿÿ€?€€?€€€€?€€€?=>ÿÿÿÿ€?€€?€€€€?€€€??@ÿÿÿÿ€?€€?€€€€?€€€?ABÿÿÿÿ€?€€?€€€€?€€€?CDÿÿÿÿ€?€€?€€€€?€€€?EFÿÿÿÿ€?€€?€€€€?€€€?GHÿÿÿÿ€?€€?€€€€?€€€?IJÿÿÿÿ€?€€?€€€€?€€€?KLÿÿÿÿ€?€€?€€€€?€€€?MNÿÿÿÿ€?€€?€€€€?€€€?OPÿÿÿÿ€?€€?€€€€?€€€?QRÿÿÿÿ€?€€?€€€€?€€€?STÿÿÿÿ€?€€?€€€€?€€€?UVÿÿÿÿ€?€€?€€€€?€€€?WXÿÿÿÿ€?€€?€€€€?€€€?YZÿÿÿÿ€?€€?€€€€?€€€?[\ÿÿÿÿ€?€€?€€€€?€€€?]^ÿÿÿÿ€?€€?€€€€?€€€?_`ÿÿÿÿ€?€€?€€€€?€€€?abÿÿÿÿ€?€€?€€€€?€€€?cdÿÿÿÿ€?€€?€€€€?€€€?efÿÿÿÿ€?€€?€€€€?€€€?ghÿÿÿÿ€?€€?€€€€?€€€?ijÿÿÿÿ€?€€?€€€€?€€€?klÿÿÿÿ€?€€?€€€€?€€€?mnÿÿÿÿ€?€€?€€€€?€€€?opÿÿÿÿ€?€€?€€€€?€€€?qrÿÿÿÿ€?€€?€€€€?€€€?stÿÿÿÿ€?€€?€€€€?€€€?uvÿÿÿÿ€?€€?€€€€?€€€?wxÿÿÿÿ€?€€?€€€€?€€€?yzÿÿÿÿ€?€€?€€€€?€€€?{|ÿÿÿÿ€?€€?€€€€?€€€?}~ÿÿÿÿ€?€€?€€€€?€€€?€ÿÿÿÿ€?€€?€€€€?€€€?�‚ÿÿÿÿ€?€€?€€€€?€€€?ƒ„ÿÿÿÿ€?€€?€€€€?€€€?…†ÿÿÿÿ€?€€?€€€€?€€€?‡ˆÿÿÿÿ€?€€?€€€€?€€€?‰Šÿÿÿÿ€?€€?€€€€?€€€?‹Œÿÿÿÿ€?€€?€€€€?€€€?�Žÿÿÿÿ€?€€?€€€€?€€€?�D00_archD00_arch—�Á¾Á7¿Æm˜À—�Acîî@ÖVLÀÌ—�ÁÖVL@¾Á7¿—�AÆm˜@cîî@† Ì~  õÿ3ÌÌ 878756ÌÌÌÀQ56578¶�ž‹Ú‹°µ‰äãö(ôѶ  Ա汲ŸÄóŸçS±²ŸçŸÂóæ  ±ÔªäãöÑÑô(Z�ž‹°µ°ÿóó‹ÚÖÀ33öÿ àÐðÐàÌÌÌÀ#   ":9:7:3:5878;:?::9:5:5:7:9:;:=::9:7:7:7:9:;:;::9:9:7:9:9:9:;::9:9:;:9:9:9:7::7:;:;:;:9:7:7::5:=:=:;:9:7:5::7:;:?:;878ÿóó5:3:ŠéêéêéÀ33êéêéꪪj �À°ð°À°�À°ð°�À °ÀðÀ°À °ÀðÀ°À °ÀðÀ  °ÀðÀ°À °ÀðÀ   °ÀðÀ  °ÀðÀ  °ÀðÀÀÀó ØæåæåóÌ æåæåæåUUU3Ì Ì“”–“”Ö” ÌÀÌ“”–“”ÖÀÌÌ ”–“•”“Ì ÌÀÕ“”“•”ÌÀÌ̓Փ”“•” Ì<“Õ“”“•ÀÌÀÌ”“Õ“”“Ì Ì•”“Õ“”<ÀÌÀ“•”“Õ“3Ì Ì”“•”“Õ“<ÀÌ”“•”“ÕÀÀÀó“(0/0/óÌ 0/0/0/ÿÿ%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%I¼» ¼­¼C¼¯¼»¼Ç¼Ì¼TZ+Y,Z…Z3Z‡\[\-ZZ¼F�E‚FÇF“FÇFEF¿ÂŒÛŸAX¹¯Á‰Ò¾Â  eªŒA‰Ò¾BòR¹ÁŒÛŸAú>¿BX¹¯Á¥�  ÌÒÐÑ ÌÍÌÎ Ì‘�’ÀˆÀÀ‹ÀÀŒÀÀˆÀ Ì}~}33ÿÿÿÿ!!—ÿ^ø£‡]x^ø?€>€¿Ð D02_fence D02_fenceÐU²Á¶Ó¡Âo ÃöƒA\à€Â•D‚ú|ºÐU²Á•D‚C¶Ó¡ÂöƒAo C\à€ÂÄ|¼ ý_3óóójij���ÌËÌçè燈‡hghø÷øiji>=>ôóôQRQOPO¦¥¦popš™šÖÕÖÝÞÝ�‚�\[\ÞÝÞ“”À3óó“ Ÿ »¼»óó󡢡!"!34ªªuWuWuS5S3317uuWwuUUUUS331&fý}3óóóýþýÉÊÉ—˜—cdc343*)*RQRxwx–•–´³´ÊÉÊÌËÌÎÍÎXWVUóÒsóV*)*'('KLKmnm‰Š‰¥¦¥»¼»ÏÐÏáâáíîí÷øóóó÷÷ø÷ìëìëìý3óóó  "!"  "!""!""!""!""!""!"$#$"!"$#$"!""!""!*"!"            óóó   ÿÿŵÆCµDrèµçaƵŃ›µœ¦µ¥£BµAøÔ³Õu€µ}ËZ³[ï³¶³ÈD³Cø©µ¬ þµýòjµißfµeãdµcåгÑy¦³¥¥ÈµÅƒ¹µº©µª ݳÜ'}µ€6iµjLc³bRmµpFCµDr^³_ë�³�ÿÿ&C&C$ C&C&C& E& E$ C&C& E& E& E& E& E!$$u&C$A$A&A&C$A&A&A$A&A&A&A$A$?&A& UUÀÀÀÄó¯ÀÀÀÀo-RÀÀÀÀŠÊüÓÀÀÀÀYPO‰ÀÀÀÀ|Ä÷±ÀÀÀÀi-RÀÀÀÀŠÊüÓÀÀÀ‡¿NUU€€€€À€€À€ÀÀ@ €€€€À€€À€ÀÀÀUUÀÀÀÃô°ÀÀÀÀp.QÀÀÀÀ‰ÉûÔÀÀÀÀZOPŠÀÀÀÀ{Ãø²ÀÀÀÀj.QÀÀÀÀ‰ÉûÔÀÀÀ|¿NUU@@@@À@@À@ÀÀ€ @@@@À@@À@ÀÀÀUUÀ€À½îÀÀÀÀ–ßZÀÀÀÀ‹1U>ÀÀÀÀÆÃ[±ÀÀÀÀXûˆÀÀÀÀíS£ÍÀÀÀÀ # ÀÀÀy‘êUU€€€€€€€ÀÀÀÀ €€€€€€€ÀÀÀrUUÀÀÀŠüéÀÀÀÀÍg9'ÀÀÀÀLx’ÀÀÀÀÙhzýÀÀÀÀn¬ÒÛÀÀÀÀ«‰? ÀÀÀÀLr˜ÀÀÀÎÛ!UU€€€€€€€€€ÀÀ@ €€€€€€€€€ÀÀÀUU3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€333€€€UU ÌÌÌÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÿÿÿÿÿÿUU ÌÌÌ~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌ}~}~}~»*ZíŒosLÛˆr€¿¿ÐD02_liftD02_liftÍÌÂ*ÉÌ‹ÇÃÕgœA”62— fà    ¬ ÍÌ— fC*ÉÌÂÕgœA‹ÇC”62¬ õ] ÌóóšÌš™ËÌ®™šÌóÌóÌš™ËÌ†š™—˜—ÍÎÚ—˜—™š™ÍÎŽÉÐfeÅfÊÊfÆe”x?0 wxwxwxwxw™ÉÐfeÅfÊÿóóÊfÆe”xwxwxÀ33ÌwxwxwžãóÀ3óäãäãäãäãäÀÌóÀã¯ãäãäã3óÀäãäãäãUU@!ÀÀXÀÄH�U)?0 *)*)*)3<@D*)*ˆóó)*)*)À33*)*)*’@!’@Ä’@%!’@ÕU? ÀóRQRçQR ÀÌóQRJRQRQÀóóÀRŸOPOPOPØ¢6P656¢Ø565H ?<.-.-.-.-ÀÌÿü.-¢6P656¢ÿÀÀóØ565H.-.-óÌ ÿ.-.-.-n­ ® ­ ¸­®— ­ ¤ ­ ¸­®º­ ® ­ ¸­®— ­ ¤ ­ ¸­®UT’€À³a€À\ Ù@’a„ó`Á óÌÌÁÂÁÂÁÁÂÁóó óÂÁÂÂÁÂÁÂÁÂÌÌóÁÁÂÁÂÁÂÕU?33 Ì"!"!"!"ó ó !"!"7  ÌÌÌÌ    ïcdcdcdcdcdc5ÌÌÌÀlklklkl 3ÿkabababaÿÌÌÌbaba5lklklÌÀ¿klk«p¬oq«rã«á¬6o­r?€¿%Ð            D03_accent D03_accent�&EÁìPÃåÄTtA–²ÑÂ3SÊÄX„�&EÁ3SÊCìPÃTtAåD–²Ñ X õ óóóÑÒÐÏÐÒÑÒÐÏóóóÌÐÒÑÒÒÑÒÐÏtuvtstvuvvuvtstvuvtstvuä5k6Ö3k6Ö5i4Ø5k6Ø5k6ÿÿØ5k6lj3kõ óóó!"   "!óóóÌ"  "!" !""!""!"$#$"!""!""!""!@888:ýÿ:U3 ÌÌ·¸·¸·¸·ÌÌÌó¸·¸·¸·õ·¸ ÌÌÌ·¸·¸·¸·ÌÌÌÿ¸·¸·¸·‚ãÆätãÆätãÆätãÆätãÆäÿÿráÆäÇÅãÈDÀÿÈüR PAR R!ÍzÝ?ÌÌÌ)**))*)*)*)*)*õ'ô2QÌÌÌÌTQP.ŠØ*Eµ‰ÛRå¶NáÄQs¾»âÿÿÑ©©½o·~UÀíõÈHHHHH{Ìüb@€0`ìˆUÀâÀÀëÕÀ=ÀÀIÒÀÀÀÀ¯†iÎÀÀ¡cUÀ"ÀÀ)À"ÀÀ gÀÀÀ@" ÀÀUÀ ÀÀÄŸÀÀÀÀÁsÀÀÀÀöüÀÀ•dUÀ ÀÀ ÀÀ <ÀÀÀ ÀÀUÀÔÀ~À}À›ÀÀÀÀžÊoÀÀþUÀ,À-À.À{ÀÀ€ ÀÀE@ÀÀàßÀÀŽiÀÀÀÀ“dBÀÀDÎDÀÀ ÀÀ/ÀÀ@€ @À U 333ÿÿÿÿÿÿÿ333Ìÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ333ÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌ3ÿÿÿÿU 333}~}~}~}333Ì~}~}~}~}3333~}~}~}~}333Ì~}~}~}~}ÌÌÌÌ~}~}~}~}Ì3~}~}U3 ÌÌÿÿÿÿÿÿÿÌÌÌóÿÿÿÿÿÿÿÿÿ ÌÌÌÿÿÿÿÿÿÿÌÌÌóÿÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3 ÿÿÿU3 ÌÌ}~}~}~}ÌÌÌó~}~}~}~}~ ÌÌÌ}~}~}~}ÌÌÌó~}~}~}~}~3333}~}~}~}~3 }~} *ÿ�ïëÝ•i€?€?€¿‰Ð D03_banner D03_banner^�Á6[ à ¬Ä÷u¾A‡vá‚ ØÃ`@`^�Á‚ ØC6[ Ã÷u¾A ¬D‡vá½@µ U ó³óËÊËÌÌËÊËÌÌó³LÎËÊËÌÌË̳óÌóÌËÊËÌÎËÊËÌÌóóÌëš�š™ “”‘U ó3óGHGHHGHGHÌó3 JIJIJHGH3óÌóJIJIJHGHGHÌó³ U óóóGÂGHyHGÂGHÌóóÌ1GÂGHyHGzHóóÌóyHGÂGH1GÂGHÌóóÌgÒwÔÓÀЉZŠP’@€À@éU3 ÌÌíîíîíîíó Ìóîíîíîíîíî Ìó íîíîíîíó Œó)>=>>=>=U3 ÌÌ$#$#$#$ó Ìó#$#$#$#$# Ìó $#$#$#$ó Œó`UÀÀÀÀÀÀÀÀÀÀÀÀÀÀ­³UÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ UÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ™·UÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀUÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀš¸UÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀUÀÀÀÀÀÀÀÀÀÀÀÀÀÀ­³UÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ U 3ÿÿÿÌ3ÿÿÿÿ33ÿÿÿÿÌ3ÿÿÿÿUó3}~}~}ÀóÌ~}~}~}À 3~}~}ÀóÌ~}~}~}U3 ÌÌ€€ÿ€€3 Ìó€€ÿ€€ÌÌó €€€ÿ€€3 ó€€ÿÿÿÿ@Has=Ctl²�û~€?@?€¿eÐD03_liftD03_liftÍÌÂ@¤ÃoÍÄcî¾A±¢Âc^³Ã   PÀPÍÌÂc^³C@¤Ãcî¾AoÍD±¢Â¸À° Õ×UÀÌ 21¾0 Ìóó/Œ‹�Ž�åæÌÌóÌnŽäŽ�ãäyŽ��Ž�ãäý�Ž��Ž�ãä»»è^]�\,¼¼\ÿ?0 �]þ-.-.-.3?ÿ-.-.Ÿ‰»è^]�\,¼¼\�]þ-.-.-À33.-.-.ó ÀÌÒÑÒÑÒÑóÀó ÒÑÒÑ…ÒÑÒÀÌóÀÑÒÑÒÑÒÑUUU@Œ·È@!ÀÀ„aÀaÄH�?0 '('('(3>'('(Dˆóó'('('À33('('(@á%@„’@UUý3Ì<�Ž�ŽÌ‹Œ‹ÀÌóÀŒJIJIJÌ ÀÌ«JIJ[JóÀóóIJIJ@IJIJIÀÏÿÏJÉ”2v212’Æ1ü ?21BVUVUVU<ÀÏ?VUVUÔ¨0üÿÀÀ/0”Ä/0/BTóóÌ STSTSTSTSY 8 K8 7 87B8 7 8 -87# 8 K8 7 87B8 7 8 -87TÈa€m@ÀðÀD ÇÌó3ó,±²±²±²±¯° óÌó¯°¯°²±²±²3ó ó±²±¯°¯°¯°UÛþ ÿüÏ\[\[\[\[\[\ÿó Ì[\[\!12121ó3 ó212121ä12 ÌÌÌ121212121)CDCDCDCDCÿ`� � � DCÀ Ï ¼YZYZYZYZYZY  � � ácZfÚ\dYd\É[À\f[ec\d \É[ncZfÚ\dYd\É[À\f[ec\d \É[U[V ÿüÏ,+,+,+,+,+,ÿó Ì+,+,ó3 óã ÌÌÌ3bababababÿ@0@0@0abÀ ÏNXWXÿÿLÌWXWXWXWX0@0@0Ìó3ó%��������� óÌó���������3ó ó���������UUU@€ÀÀÀK”IÀÀÀÀI”IIÀÀÀÀ”II”ÀŒ ÌIsästÌ ãr0‹��ÌÌÀã��䎀À€@ÀÀÀÀ¨+{¨ÀÀÀÀ+{¨+ÀÀÀÀ{¨+{UUUÀÀ ÿÿÿ ÀÀÀÿ#¹¡ÀÀÀÀ£¹¡£ÀÀÀÀ¹¡£¹ÀÌ Ì¡ÿ ¾ ŸÌ ½`ÿ 0ýþ¢Ÿ ÌÌÀ¾ Ÿ½`À@ÀÀÿýþÀÀÀÀ(ˆ¯(ÀÀÀÀˆ¯(ˆÀÀÀÀ¯(ˆ¯UUUH$€ÀÀMNÀÀÀMNMÀÀNMÀÌÀÌNcW‹äW ¸<Ǥ£k ÀÀÀï£È@@ÀÀÀÀuã£wÀÀÀÀã£wãÀÀÀÀ£wã£UUU3Ì<ÿÿÿÿÿÿÿÀÀÀÿܤÀÀÀ£¤£ÀÀ¤£ÀÌÀ̤ÿ£¹¡£  ]ÿ <þ^¤£¹ ÀÀ€¡£]ÀÀÿþÀÀÀÀRÖ%¯ÀÀÀÀÖ%¯ÖÀÀÀÀ%¯Ö%UUU!„@ÀÀLMÀÀÀNMNÀÀMNÀŒÀÌML—LL IABBAÌì¶òÑÒnáÔ½lÌ3ÌÌaPÑÒpáÔ»ÌÍÍÍlaPÑÔpßÔÜÌ3̹naPÓÔnßÌÍÃ<Ò»naRÓÔnÌÌÌÌßÒ»ncR•ÀÌÌÌϘgÇEŽ[¬ ½<ÌÌ̾Šws_†W”ÜîîÌïÔfÝλn_Ã>ÌÎPÓÔhÝйnÜÀÀ@aRp@À@@óÌÌGHù‡' ÌÏ>ìÌ„ƒ§ ÀUUUU ÌÌÌl¥GOgÇ<ÌÌ�kl§=QÌ3ÌÌe…kl§=ÌÌÌÌQe…kl§=ÌÌ3ÌQe…kl§ÌÌÃ<=Qe…kl§ÌÌÌÌ=Qe…klÌÌÌÃ¥ =Qe…k<ÌÌÌl¥ =Qe…ÌÌÌÌkl§=QeÃ<ÌÌ…kl§=QÌÀ€Àe…»ÿÀþ€ÀÀÿþóÌÌÂkl¥eÌÏ<ÌGg{kl«=UUUU ÌÌÌ ä]ƒvŒ Ï=ÌÌõ¼®­ƒWÉФÌ3ÌÌÏû®­…WÉÐÌÍÎ̤Ïû®«…YÉÎÌ3ÌФÑû¬­�YÌÎÓ<ÉЦÑý®«ƒÌÌÎÌYÉЦÏÿåUÌÌÌφ_»ÊÉwñ5z<ÌÌÌyÌaÁÊß‘ÿÌÜÌÞ¯{[ÉάÓÃ<Ìíþ°­[ÉΨÎÀ@ÏþÀ@@À@óÌÌo øÆ¢PÌÏ=ÌÜ›ïs`_Vt UUUU ÌÌÌyglhÏ<ÌÌuelbÌ3ÌÌuelÌÌÌÌbueÌÌ3ÌlbueÌÌÃ<lbuÌÌÌÌelbÌÌÌÃueld <ÌÌÌueld ÌÌÌÌuelbÃ<ÌÌuelbÌÀÀþ€ÀÿÀ€ÀþÿóÌŒ0‹glÌÏ<ÈpsgUUUUÌÌÌÿ€€@@@Ì ÌÌ@ÿÿ€€@@ÌÀÌÌ@@ÿÿ€€@ÌÌ Ì@@@ÿÿ€€ÌÌÀÌ@@@@ÿÿ€ÌÌÌ €@@@@ÿÿÌÌÌÀ€€@@@@ÿÌÌÌÌÿ€€@@@@ÿ ÌÌÌÿ€€@@@@ÀÌÌÌÿÿ€€@@@Ì ÌÌ@ÿÿ€€@@Ìó33@@ÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3ÌÌÿÿÿ€€@ÌÌ Ì@@@ÿÿ€€UUUU À€{|<}|{|óÀ€}|{|Ì{|óÀ}|{|€<}|{|L{À€|}|<{|LÀ€{|<}|{|ó33}~}~}~}3333~}~}~}~}3333~}~}~}~}33À€~}|{|<}|{|ÿÿÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ÌÌÌ}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~Ì}~ÿÿÿÒw5wÌwtwYwZxTw$y~yÔw5wÌwtwYwZxTw"w|wÔw5yÎwtw[w\xRw$w~wÔw7wÎwrw]w^Êw$w~wÔw7uÌwrw]w^Êw$w€wÖw5wÊwpwYw\xRw$w|uÔw7wÌwtw[w\Êw$w~yÔw5wÌwtwYwZÎy"w|wÒw5yÐwtwYwXÎw"wxwÒw5wÎwxyYwZÎw w|wÒw7wÎwvw»¼óÀ3»¼»¼»¼3óó»¼^»¼»¼»À33¼»¼»¼UUUÜ€HÄÈŒ@Œ€\ÄÜ-ÜÙÄÈŒ@Œ€ÄÜ-ÈÙÔ È,@Œ€óóÀ33óóÀ33ÿÿÿS`S¢S¶SS=T2SSSS`S¤S¸SlSWTLSS5US`SÀUàS`S_¨SS?S S`SÆSèS~S}ÆS;SkS)UbSäSëS4SSVFSS-SSbS¸SØUPSO˜S U)SS`S¸SÔS*S)rSS S*S`S’UžSSZS0S*S@S`QxS~S "S!hS"US2S`SˆS’SÀóóÌ€€€€ ÀÀó€€€óÌ €€€ªªª¼¼¼¼ ¼¼¼¼¼¼ ¼¼ºšœ¼ ¼º¼¼šœÀ¼¼Ü¼¼¼œÁœº¼¼¼¼š* *¼¼¼¼¼¼À¼¼¼¼¼¼¼À¼¼¼¼¼¼¼À¼¼ºššœ¼Áœº¼¼¼ššð‹€a’HÀ€aŒ’HÿÿÿijiØe}gpgohpgg±ighgÚi{gl³m´n³F³cµF³´³Ûµ1³<öO÷Rö¸øö¸ø÷ø¥öøJ)Gr)'·))*)r)õ'#ZCZoZóZoZYZCZ@ZˆW X7Ù7 vçZ0[,0‰.Ö.‡0/0*.Î.~J}4JÇJˆJÇHGH6JäJˆE‡ÎEAE÷GAEFEÐGyE„eƒêeeÏeghgêeceïZÌÌÌYZYZYZÀÌÌÌYZYZYZÌÀYZYª¯ªI©ùùi|iK)I©ùû‹Z‹I)KËùùm^m�o�íÿý   ÿm^m�M�íýýÕý�M�íýýuç''‡ç÷5£SC£ãUÅ5eÅõððl$ÌÌÌ#$#$#$ÀÌÌÌ#•$#$#$ÌÀ#$#UUUÌÌÌÌpJ„Ъ©—cÌÌÌÌîpJ„ЗðLŒÌÌÌãr¢Žô‹—ÌÌÌÏø¡g ËÛåÍ<ÌÌÌÁ¤@ª:³QóÌÌ̃;‰äÌÌÌÌ\BþY”RñÌóÌÌ”R%úù‡áÌÏ<Ìà”¦('GÐûÌÌóÌ/‘`Ök?@/¥ÌÌÏ<ÎjiVMqôÌÌÌÀÀr/¾TøRÀ@@À@@UUUÌÌÌÌMgƒkl«ÌÌÌÌ=Mgƒkl«ÌÌÌÌ=MgƒilÌÌÌçSIgi<ÌÌÌj§WGg³ÌÌÌij£o"GeÌÌÌÌ{ml©OKÌsÌÌgij§MÌÇ<ÌKg�kl« -ÌÌsÌMg‡mn¯ÌÌÃ< Og�kl«ÌÌÌÀ'Mg‹¹€ÀÀÿþ€ÀÿÀþUUUÎÌÌ܇,¬ò`_TvÌìÌÌ ‡.ªòÄ�ÄÌÌÌr‡¬õÿåŸÌÌÌÏNžPÔD¢õ‚¡<ÌÌ̢Ţd² ùóÌÌÌ£EF­èÌ3ÌÌÌÌëMRî”>ü¼ÌóÌÌ÷¿%�:ûÌÏ<ÌBãúd65}ZCÌÌóÌ'ÿÊÆ[\?€¿µÐ                                                                                                                                                D04_boxD04_box7‰JÁ‹0Ã╠Ī`>ÁH0.Ã7•Äœfœ7‰JÁ7•D‹0ê`>Áâ• DH0.Ãùfñ U?3Ìÿ†/…†…0†/0†/óÌ?3…†…0††/…†…Ì?3Ì0†ˆ1…†…0ˆ?3Ìÿ†1…†…2†12†/óÌÿ<‡ˆ‡2††/…†…0†/0†/…†…0†1/<À02/ª ü ð°ÿßlklklíðÐ þ klðÐ þ ð°kjk ü ðÐÿßlilklíðÐßíðklkÐÿ¿Ë ð°ÿlklkjl<ÀkilU?3ÌÿÃÄÃÄÃóÌ?3ÄÃÌ?3ÌÄÅÄ?3ÌÿÃÆÃÄÃóÌÿ<ÄÃÄÃÄÃÄÆÃ<ÀÄÅÃU73 m@=>=@@óŒ73?@?@@?@?Œ73Œ@@?@?@73Œm@?@?@@óŒß8?@?@@?@?ÆÏ8È@>?@?>}ÌóÌ,+,+,+y¦{)z,+y*)Љ*Œ+‰*)Š,+=>,=+>,+=,ÀÌóÌ+,+,+,+(-,+.-.-.-< Ï<.-.+.-,*Ë0++,ÿ)*«)¬*«¬)«¬)�+®*«¬)­®)*­)®*­®)­®+,­+®,­®+­®)*­)®*­®)­®)ƒ'¬*­®)«‚�)¬*«¬)«¬)�)¬*«¬)«­Ë0¬¬«U@€@€@€@€@€@„UÀÀÀ3$ÀÀÀÀ3 /ÀÀÀÀ$3ÀÀÀÀ$3$ÀÀÌ 3$3 $3 UÀÀÀü úÀÀÀÀü úüÀÀÀÀ úü ÀÀÀÀúü úÀÀÌ ü úü úü ö UÀÀÀK ÂÀÀÀÀµ y†ÀÀÀÀ Œ ÀÀÀÀXK XÀÀÌ K XK XK UÀÀÀ# .ÀÀÀÀ# 0%ÀÀÀÀ .# ÀÀÀÀ.# .ÀÀÌ # .# .# ÿ UÀÀÀÅÂÀÀÀÀ]eÄÚÀÀÀÀ^Ä)“ÀÀÀÀ¾ÅÀÀÀÌ ÉÀà ¾ÅÐ UÀÀÀØ2öÀÀÀÀØ2öÖÀÀÀÀ4öØ2ÀÀÀÀöØ2öÀÀÌ Ø2öØ2 öØ2ÿ UÀÀ€¾ÁÀÀÀÀÂa_ÆÀÀÀÀbÚ¾�ÀÀÀ-¾ÁÀÀÌ ÂÅÂÁ ¾Á UÀÀÀö2ØÀÀÀÀö2ØöÀÀÀÀ4Öö2ÀÀÀÀØö2ØÀÀÌ ö2Øö2 Øö2Î U 3Ì3ÿÿÿÿÿÿÿ3ÌÌ3ÿÿÿÿÿÿÿÿÌÌ3ÌÿÿÿÿÿÿÿÿÌ3Ì3ÿÿÿÿÿÿÿÿ3Ìó<ÿÿÿÿÿÿÿÿÿÃ3<Ãÿÿÿÿÿÿÿÿ<ÀÿÿÿU 3Ì3}~}~}~}3ÌÌ3~}~}~}~}ÌÌ3Ì~}~}~}~}Ì3Ì3~}~}~}~}3Ìó<~}~}~}~}~Ã3<Ã}~}~}~}~<À}~}UÌóÀefefefÌóÀÌefefefefóÀÌóefefefefeÀÌóÀfefefefÌóÌÏefefefefef< Ï0efefefeÏ0fefeUÌóÀghghghÌóÀÌghghghghóÀÌóghghghghgÀÌóÀhghghghÌóÌÏghghghghgh< Ï0ghghghgÏ0hghgU3ÌóÀÿÿghghg—ÌóÀ̘hghg—˜hóóÌóghg—ÿÿ˜hghgóÌóÌh€ghghgè€ÌóÌϘhghgWXhgh<ÌÏ0gW@hghgÏ0hghgUÈaÌ}ÈaóÈzy�‚zaÀÈaûüÀÈaÈûüûÈăúùú †ùú†ÿÿbÿÿ–ÿ©{}„€?€?€¿¡Ð("$ D04_crowd D04_crowd}ЫÁ  *Ã]Ä}ЫARÉà O Ĭ°¬}ЫÁ O D  *Ã}ЫA]DRÉê°¢ UUUÖ óÌÌdccdÅbÆ`óÌÌÌ__`¿`g\·\óóóÌ[[\ÉWXWWX±ZóóÌó STSST§T³OPóóÌóOOPOOPSJIKLóóóÌKIJ�EFEEF‹FóÌÏ<AB�?@…9:sÀÏ?<;6534356™Ï?<Ì.-/0/-.+*SÌóÌÌ'(K#$E"E$ÌÌÌó79/ÌÌÌÌ++;ðð÷ð€y `ÒÁ/<†8dcÈ3ÌÌÌba_À`€]^\[\\['XWXZYUETU@@@@@@„HH@@ÀÀ @€@UUUÕ óÌÌ[\ZY¶[ƒ[óÌÌÌ\\[¸[k[¸[óóóÌ\\[Ñ\[\\[¸[óóÌó¿\[\\[¸[Ã\[óóÌó\\[\\[][\\[óóóÌ\\[µ\[\^]º[óÌÏ<µ\[º\[«\[¸ÌÏ?<^¯]^\[\\[EÏ?<Ì[\^]^\[O]ºÌóÌÌ^]™\[¸[º]ÌÌÌóK[¸[º]•^]ÌÌÌ̺[º]I[¸[ÌóÌóº]c\[º]^\[óÃ?WX óó3WXWX“WXWX ÌÌóWDUVUVUVÌÌóÌ«WXWXWX’WÌÌó XWXW«WXWÌÌÌóXWxUVUVUVÌÿ<ÏõUVUVUVUVUÿ0ÌÏVU—UVUVU†U0ÌÏ3VUVU£UVUóÌó3VUV3UVUVUVó33ÌîUVUVUV…Uó3ó3VUVUVÌUVUV3Ìó UVÂWXWXWÌüÌÏPUVUVUUVUÌó?óVUÎUVUVUEWX ÌÌÌWXWWXWUUUU3 óó212121!43 óó343434343 ÌÌó4U434343ÌÌóÌ434343'4ÌÌó 3434C434ÌÌÌó34U434343Ìÿ<Ï434343!434ÿ0ÌÏ34C43434U40ÌÏ33434C212óÌó3121!212121ó33Ì434343!4ó3ó33434343433Ìó 4321212ÌüÌÏ?21212w434Ìó?ó34U43434C43 ÌÌÌ434W434UUUUÀJÀPÀ\ÀÀ^hÀjÀvÀ v~ „Œ ŒÀ’ÀÀ”šÀœÀšÀ žÓÀÀIOÀ[A€€€ UUUUÀIÀOÀ[ÀÀ]gÀiÀuÀ u} ƒ‹ ‹À‘ÀÀ“™À›À™À �ØÀÀJPÀ\AD@@@ €UUUUÀJÀPÀ\ÀÀ^hÀjÀvÀ v~ „Œ ŒÀ’ÀÀ”šÀœÀšÀ ž×ÀÀIOÀ[AD€€€ @UUUUÀHÀPÀ\ÀÀ^hÀjÀvÀ v~ „Œ ŒÀ’ÀÀ”šÀœÀšÀ žÓÀÀIOÀ[A€€€ UUUÕ óÌ ÿÿÿÿÿóÌ Ìÿ€ÿÿóóó ÿÿ€€ÿÿÿóóÌóÿÿÿÿÿÿÿÿÿóó óÿ€€€€€óóó ÿÿ€€ÿÿÿó Ï<ÿÿÿ€ÿÿÿÌÏ?<€€€ÿÿÿÏ?0ÀÿÿÿÿÿÿÌóÌÌ€ÿÿÿÿ ÌÌóÿ€ÿ€€Ì €ÿÿÿÿÌóÌóÿÿÿ€€óÏ30€ÿÿÿÿÿÿ3 ÌÌ€ÿ€€€ÿÿ€€ÿÿUUUU á€{|€óÀóÄ}|{~}|{~óá€a{|{|€óÀóÄ}|{~}|{~óÀ{|{~<}|{~>Ì}|{|{~a€LÀ{~LÄ Ä{~{~€a€3<}|{|{~€óÀó}|{~}|{UUUU3 ó3ÿÿÿÿÿÿÿÿ ó33ÿÿÿÿÿÿÿÿ ÌÌóÿÿÿÿÿÿÿÿ Ìó ÿÿÿÿÿÿÿÌÌó ÿÿÿÿÿÿÿÿÌÌÌóÿÿÿÿÿÿÿÿÿ ÿ0Ïÿÿÿÿÿÿÿÿÿÿ0ÌÏÿÿÿÿÿÿÿÿÿÿ0ÌÏ3ÿÿÿÿÿÿÿÿó ó3ÿÿÿÿÿÿÿÿÿ333 ÿÿÿÿÿÿÿó333ÿÿÿÿÿÿÿÿÿ3 ó ÿÿÿÿÿÿÿÌüÌÏÿÿÿÿÿÿÿÿÿÿÌó?óÿÿÿÿÿÿÿÿÿÿÿ ÌÌÌÿÿÿÿÿÿÿUUUU3 ó3~}~}~}~} ó33~}~}~}~} ÌÌó~}~}~}~} Ìó ~}~}~}~ÌÌó }~}~}~}~ÌÌÌó}~}~}~}~} ÿ0Ï~}~}~}~}~ÿ0ÌÏ}~}~}~}~}~0ÌÏ3}~}~}~}~ó ó3}~}~}~}~}333 ~}~}~}~ó333}~}~}~}~}3 ó ~}~}~}~ÌüÌÏ}~}~}~}~}~Ìó?ó}~}~}~}~}~} ÌÌÌ~}~}~}~UUóÌÌóZXWøS¨STTSÌÌÌó`O OžMÊJIÌÌÌÌ–K–I’EŒEóóóÌFFEö@?@@?‚AÌÌÌÌÌ9v:9§5lÌÌÏ<5j3÷/0.-^Ï<ÌÌ/©('R)Rß#ÌÌÌÌF!F#Y:óóÌÌ‹,,óÌÌÏ ± <Î!�€@a€@@@@€  UUóÌÌó[[\\·\[[\ÌÌÌó‰\·\·\B[\ÌÌÌÌ·\·\•\·\óóóÌ[[\>[\[[\·\ÌÌÌÌ�\¹[\!\·ÌÌÏ<\¹^¥\[]^¹Ï<ÌÌ\6[\·\¹M\ÌÌÌ̹^¹\'^¹\óóÌÌ[]^S[\¹^¹\óÌÌÏ8]^¹\¹%\[]<Ï<3^¹\t[\¹[\ši*—ð ð€wð€ð€ð€÷,"ÌÌÌÌ ,w÷wð€"ÌÌÌÌ* €ð€ð€wð, ù ð€ðð€"4ÌÌÌÌ —÷ð€ð€4÷ð€ðð —"2ð€÷ð"UUÌó3 XW`UVUVUó33Ì%UVUVUV�Uó3ó3VUVUVûUVUV ÌÌóU'WXWXWXó??3þWXWXWXqUVU3?0ÏVUVãWXWXW<Ï3óX�UVUVUŸWX33ó3WXWXiWXWX Ìó3WþWXWXWXÌó?0�UVUVUUVÏ<ÏÌUVUVÒUVUVUUUÌó3 34C43434ó33ÌQ2121214ó3ó3343434343 ÌÌó4C212121ó??3!4343434343?0Ï343!43434<Ï3ó343434S4333ó343432121 Ìó32S434343Ìó?021212S43Ï<ÏÌ4343 43434UUÀ]ÀÀgiÀuÀuÀ }ƒ ‹ À‹‘À“À™À ›™ �A@@@UUÀ^ÀÀhjÀvÀvÀ ~„ Œ ÀŒ’À”ÀšÀ œš ž@€€UUÀ]ÀÀgiÀuÀuÀ }ƒ ‹ À‹‘À“À™À ›™ �@@@UUÀ]ÀÀgiÀuÀuÀ }ƒ ‹ À‹‘À“À™À ›™ �A@@@UUó óÿÿÿÿÿÿ€ ÌÌóÿÿ€ÌÌÌÌÿ€ÿÿ€ÿóóóÌÿÿÿÿÿÿÿÿÿ ÌÀÌÿ€ÿÌÌÏ0€ÿÿÿÿÏ0ÌÌÿÿÿÿÿÿÌÌ ÌÿÿóóÌ ÿÿ€€€ÿÿó ÌÏÿÿÿÿÿÿ€<Ï<óÿ€ÿÿÿÿUUá Ä€|{~€LÀL{~{áóá€|{|{|€Ì<{~}|{~O€¿±Ð                    D00_building D00_building0̈…Ú=ÉåÁ×4ÕA,A[1ÉA¶,¶0ÌÂ[1ÉÁˆ…Ú=×4ÕAÉåA,AÌ,Ä ýwÿÝ óó?>  /> ?@?ÕÖÓWÓÔÓÔ&�‚Q�RQR0RQR�Q‚’�ž�ûœ›üžým@.=%&L??3ü%&%'(%    ÿ?0Ï ¸'(¨('ÏøÏÐÏ'Ð(‘’‘z’‘y’zUôÍóàÕÖ`ÊbaÖ`ÓabÔÓe³¦´¥¦³¥±¤´³£²¦:KLÌóÌÿ;M>=>L;=><;Q>POPɛ̘ʙÉɛʜ›ÿ?0ÏÉœÛ>+-.-,íÜÛÜéÛÜêÛé–OךRÖ’LKЃÐÏKÐLÏÐKL 8473483:278194éîíÌóÌÿðíîï† À¿À ¿KÙ üÏ<ÏLÚ1I‰Š‰JŠI‰JŠÓJ­c,dc+d,Ue­¶öÞ óó?/0/12/B ABA B Aíþô€@xB)GtƒÿÏ=ûþ¿úö<3??3üefeTefex wx w v w úòÁ�‰x7 ’¡ÿÏûaóÿó n gc~cdcdctststst5 š  ‘¢Y    VüÏ<Ï ÏF?@?E@F?E@EL)KL*K)TJUUUU3 ÌÀíîíîíî Ì3 íøš™š™óÌó š™šÇõöõöõÌÌöõÀÏ<ÌH¥¦¥k+ûÌÌÌ<Ã0Ïý~}~}~}<ÌÏ0~vÀ À Ì óÌó»‹Œ‹ö À óm€ 3ÌÌ€€öó óÀóÀÀÏʹ‹Œ?0Ï0‹s<Ã0ý~}~UUUU3 ÌÀ|{|{|{ Ì3 |N[\[\óÌó [\[,LKLKLÌÌKL¡ ÀÏ<Ì 8DCD¿h ÌÌÌš™š™š™š<Ã0ϙ鉊‰Š‰Š<ÌÏ0‰@hghghgÀ À hß óÌóFtstµš™š™ À 󚙚 Œ‹ 3ÌÌŒ‹Œ‹ŒKhó óÀghghghghóÀÀÏß Fts?0Ï0tõš™š™š™<Ã0š™é‹Œ‹UUUU@ÀÀ$ÀÀÀÀRà\ÀÀÀ@ß­ÀÀÀÀ$@à  Ê PÖ× Ï¦®¥  "KP ØÙÚ 0ÀÀ×K_õÀÀÀÀø}wZÀÀÀÀ=~>×ÀÀÀÀôõø{ÀÀ@Ãyzwô  ̇½ ¼ÛZUUUUÀÀÀÿšMÀÀÀÀ±§Ë}ÀÀÀÀÌÙ™ÿÀÀÀÀš´LKÀà þ±™šw ÿV+Ó ‘­ƒ® éUÿV Ö*)þ 0ÀÀÓUh†ÀÀÀÀz=Ä%ÀÀÀÀ»}¼¤ÀÀÀÀz†zÄÀÀÀÃ=>þÄz Ëÿá� oËòwUUUUÀÀÀ"ÀÀÀÀÍã\ÀÀÀÀär#"ÀÀÀÀ@à #$Æ NKÛÕ )©®ª ƒONK Ùר 0À€ÕO¬ÀÀÀÀô{~ÀÀÀÀ9}:žÀ€ÀÀ÷ôyÀÀ@Ã|{~÷ ?‰Œ¸ ¾�]UUUUÀÀÀe™³ÀÀÀÀNŒÌ}ÀÀÀÀË ™eÀÀÀÀ™N³´Àà þN™šw ©UÕ, À®ƒ­ ;U©U ,ÕÖþ 0ÀÀ,UÿÀÀÀÀzÂ>âÀÀÀÀ»~¼ ÀÀÀÀyÿz;ÀÀÀÃÃÄþ>y Qâq �&ñwUUUUÀÀÀ! #€ÀÀÀdÀÀÀÀ?#$!ÀÀÀ@ %ƒ $#Å MLM ×Út' MPML K0À@P«À@ÀóIÀÀÀ½{{À@ÀÀøó€ø @ЋР¼¹;UUUUÀÀÀfšfÀÀÀ±MŠÀÀÀÀfšfÀÀšf š™x ªVª Ó+N ªVªV ª0ÀÀVÿÀÀÀyÿ‘ÀÀÀÀ ;=ÿÀÀÀÀzÿyÿz Rá o�òUUUU@À$@ÀÀÀc@ÀÀÀ@À€À€$C  Ê P u*Û×  KP 0ÀÀK_õÀÀÀøõxÀÀÀÀy¿GõÀÀÀÀôõø÷€ô  ̇ :PºUUUUÀÀÀÿšÿÀÀÀvLÀÀÀÀNÿ™ÿÀÀšÿ ™šw ÿVÿ ²*, ÿUÿV ÿ0ÀÀUh†ÀÀÀz†ÃÀÀÀÀ; n†ÀÀÀÀz†z†z Ëÿáÿ +Ž 333ÌËÌËÌËÌ30âáâáÌâá3âá<Àâáâá 333ÎÍÎÍÎÍÎ30ª©ª©Ìª©3ª©<Àª©ª©UUUU 33312121213ÿÿóÌ3€€€€33À€€?3ÿÿÿÿ€ÿ333<ÿÕÖÕÖÿÿÿÀÿ3<À€€€€3<€óóÌÿÿÿÿÿÿÕÖ3Ì3ÕÖÿÿÿÿó€€Ì3Ì3€€€€Àÿÿ0Ã<ÌÿÿÕÖÕÖÿÌÀÿÿÿUUUT 333}~}~}~}À ÌÌ~}~}~}ÌÀ~}~ó3}~}~}Ì7Ø~}~{~}~333<}~}~}~}~ÌÌÌ}~}~}~Ì}~3<}~}~}~Ã}óÌ}~{~{~}~}3ÌÀó~}~}~}~}333À~}~}~}~ Ì37}~}~}~{ØÃ<Ì~}~}~}~ÌÌÌ}~}~}~P3 ÌÌ‘’‘’‘ef ¾ÌÌÌÀ½¾½¾½ëìÌó¾½¾½¾ óÀ½ëìëì0Ï?¾½¾½¾½¾Vì<ëìP3 ÌÌ!"!"!gh !ÌÌÌÀ"!"!"©ªÌó!"!"! óÀ"©ª©ª0Ï?!"!"!"!‡ª<©ªUUUU3 ÌÌÞÝÞÝÞ˜—ÌÌ3Ìÿÿÿÿÿÿÿÿ3Ìó ÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿó< ÿÿÿÿÿÿÿ#ÌÌÌÏÛÜÛÜÛ«¬ÿÿ0Ã<Ãÿÿÿÿÿÿÿ<ÌÏ0ÿÿÿÿÿÿÿÿÌÌÌÏÿÿÿÿÿÿÿÿÿ0óÌóÿÿÿÿÜÛÜÛÜ óÌ3Û«¬«Sÿÿÿ ó ÿÿÿÿÿÿó ó ÿÿÿÿÿÿÿÿó3 Ïÿÿÿÿÿÿÿÿÿ?0Ï?ÿÜÛÜÛÜÛÜx¬?0Ã<«SÿÿÿÿÿÿUUUUH!„!Ìó {|{|{|ÌÌÌÌ{|{|{|{|ó<Ä{|{|{|{~„„ŒÀþýBBÌÏ0{|{|{|{ÌÌÌÏ|{|{|{|{|0óa{|{|óÀaþýþýaÌ}|ó ó {|{|{|{|ó3 Ï{|{|{|{|{2†|ÿý<BþýÿüÌÀð¸ïð·ïñJ«I¬a¬«b«J¬¡~Ïÿñ9Ó:ÿüÌÀ65 @tƒ4Ï"!"ÿóÿ!"! =ÿüÌÀ,d)*c+}!t"sRstQt!sÁ^]^L]^K]LTIÙ›JÜÿüÌÀ'K*)L(3P&uÿ_JIJÿûÿIJIF!bE$Ï?33}~}~v0À ÀÌ ó»‹Œ‹Ï?33Œ‹Œ‹Bfefef0À ÀefÝ ó Frqr YòŒ ‡»º¹ 0¼Œ ñ»âÿ árŽ� 0þoâ ^˜ˆ‰ Œº¼» 0¾ˆ òRâ â�qr 0þ�â OЇР‹ˆ0‡ ,á á0á  ¾Œ ‡0Œ �ÿâÿ áÿ0â ÌÌÿ€€Ã<Ì€€óÿÿÿÌÌ}~}~3}~}~<Ã}}~}~{~Ã?33ÿÿÿÿÿÿÿÿÿ0Ï0ÌÿÿÿÿÿÿÿÏ0óÿÿÿÿÿÿÿB33{|{|{|0Ï0Ì{|{|{|{Ï0ó|{|{|{|£¨H†øÙ÷Y ¦øÙš™?I?€¿»Ð D04_fence D04_fenceï8¢ÁY7+ÃÞ=Ät5¢Aã•Âj Ää˜äï8¢Á‚j DY7+Ãt5¢AÞ=Dã•ÃF˜> ýý3óóó²±²¾½¾ÌËÌØ×Øèçèø÷øõöõåæåÓÔÓ¿À¿«¬«•–•�‚�mnmUVU?@óó3ó�'( õ¸·¸ÄÃÄÒÑÒÞÝÞðïðüûüïðïßàßÍÎ͹º¹§¨§‘’‘}~}ijiSTS=>'(óóE%UUR@@@@@RÒÀÒ@@@@@@€ÀÀýÿ3óóóÂÁÂÆÅÆÌËÌÔÓÔÖÕÖÜÛÜàßàæåæèçèîíîðïðòñòöõöø÷øø÷øüûøñòõÇÈǼ»FTSTPOPLKLFEFBAB<;<:9:6562120/0.-.*)*('(&%&&%&$#&21óó4XWZÅÆýÿ3óóó(óóÿÿˆõ‡�àõß)²õ±W°õ¯Y\õ[­ìóí4õ1×DõCÅ>õ=Ëõ÷.õ-Û(õ'áBõAÇõíõñ!õ"ó õS]õ^/€õ%ºõ¹O”õ“u˜õ—q½õ¾8 õ ÿËóÊ*öõóÖõÕ3üóý ÔõÑ7øõ÷ÿõÿ ÊõÉ?÷õøàõß)ªõ©#êõéÿÿ–fõez&õ%ÿÿ555757777775555553[7510M  '+55555557555ÿÿ33UUÀÀÀJV\ÀÀÀÀbjpvÀÀÀÀ~„„ŒÀÀÀÀ’’”œÀÀÀÀšžN™ÀÀÀÀJV\bÀÀÀÀjpv~ÀÀÀÀ„„Œ’ÀÀÀÀ’”œšÀÀžNQU€€€€À€€€€UUÀÀÀIU[ÀÀÀÀaiouÀÀÀÀ}ƒƒ‹ÀÀÀÀ‘‘“›ÀÀÀÀ™�MšÀÀÀÀIU[aÀÀÀÀiou}ÀÀÀÀƒƒ‹‘ÀÀÀÀ‘“›™ÀÀ�MQU@@@@À@@@@UUÀÀÀÎ:ÀÀÀÀI'plÀÀÀÀF†NÀÀÀÀ„R ÀÀÀÀî§ÂËÀÀÀÀ(�ÜÀÀÀÀ£1Š@ÀÀÀŽZÀÀÀÀÈæÀÀ£æE€@@À€ÀÀÀ ÀÀÀ!@ À€ÀÀUUÀÀÀ4FHÀÀÀÀRbHZÀÀÀÀbfflÀÀÀÀprrxÀÀÀÀvv<¡ÀÀÀÀ<�<°ÀÀÀÀÔZ\`ÀÀÀÀhflrÀÀÀÀprxvÀÀv=>=>=3?0>=>=Â|{Ì?<|{|{|{|{0Ìh|{|{|0Ìÿ{|{Þo¥87~8êpn8}7Ö¥¦õ¦¥POPVPOP¥O¦¥P¦OÀÀÌ Zabua ÀÀÌbsabu ÀÀabuaÀbUUU ÄÀÀÀ ûÀaÆH#Ÿ?0 36„$  ÓFóó’á·íÀ‡@„UÕÿ3Ì<‹Œ‹Œ‹Œ‹ÀÌóÀŒ’JIJIJóóÀÌ8IJIJIJ˜JóÀÌóIJIJJIJIÀÏÿÏJd”0z0/0’Ä/ü ?0/@ZYZYZY<ÀÏÿZYZYÉ + + , + + " + "+l + + , + + + , +³Á’ª212’Â/0/M Ÿ‡¡¢×Ø×6ÕÖÕ Ø¡¢×ŸÖóÌ<=1212>121ÀóÌ2@12122<ÀóÌ121@0/0/U¥À?ÀßÀ@€� &@€Ï¯°¯0ÀḬ̀¯¯°¯°ÌÏ0À¯Ÿ¯°¯°¯Ï0̯°¯°¯ 8‰ ’(  qÀ CÀ@À UÛ ÿüÏ$#$#$#$#$#$ÿó Ì#$#$úKLKLKÌÌÌóLKLKLKQKL Ìó KLKLKLKLK)רררר×ÿ€ÐàÐàÐàØ×À ÿ ÉcYfqWdZeÊWÉÊeWd cYf ÊYɃcYfqWdZeÊWÉÊeWdoYfXcÊYÉŒQRQRQRQRQRQÌÌÀÄ565656575656565é?[\[\[\[ÁijijiðjiU[•j ÿüÏ,+,+,+,+,+,ÿó Ì+,+, ÌÌÌóÝ Ìó R|{|{|{|{|ÿ@0@0@0{|À �6ÙÌÎ������Ìï6َ⎑���Ï2ÌÏ����ŽTfefÿÿLÌefefefef0@0@0ðàÞÞÞðàÞ£ÞÞЀxxxp‡‡‡ðÐííð UUUU@€ÀÀÀK”IÀÀÀÀI”IIÀÀÀÀ”II”ÀŒ ÌIM˜MNÌ —L ¨+ {¨+{ ¨+{¨ 0+{mrqÌÌÀÀàqrßu3ÀÀÀ@67ãÀ@€@€@€UUUUÀÀ ÿÿÿ ÀÀÀÿ#¹¡ÀÀÀÀ£¹¡£ÀÀÀÀ¹¡£¹ÀÌ Ì¡ÿ ¾ ŸÌ ½`ÿ ýþ(ˆ ¯(ˆ¯ (ˆ¯( 0ˆ¯¢Ÿ ÌÌÀÀ¾ Ÿ½àþ€ÀÀÀþ}þÀÀÀ ‚ÿÿÿ ÀÀÿÿÿ ÀÿÿÿÀÿUUUH$€ÀÀMNÀÀÀMNMÀÀNMÀÌÀÌNµ·¨ ¢ uã £w㣠wã£w <㣷NM� ÀÀÀÞMc8@ÀÀ@3åÒH$€H@!„UUU3Ì<ÿÿÿÿÿÿÿÀÀÀÿܤÀÀÀ£¤£ÀÀ¤£ÀÌÀ̤ÿ£¹¡£  ]ÿ þRÖ %¯Ö% ¯Ö%¯ <Ö%£¤£¹ ÀÀÀ¡£ÝýÀÀÀÀÿþ‚þóÌ<‚ÿÿÿÿÿÿÿÀ3Ìÿÿÿÿÿÿÿ<À3ÌÿÿÿÿÿÿÿUUU!„@ÀÀLMÀÀÀNMNÀÀMNÀŒÀÌML—LL I n½ Nd½Z p½Nd <½ZLKL— ÀÀÀLLÐ7€À€4á„ä@!„@!„UUU3Ì<ÿÿÿÿÿÿÿÀÀÀÿÝ£ÀÀÀ¤£¤ÀÀ£¤ÀÌÀÌ£ý¢º¤¢  ^ý ÿ. êè.ê è.êè <.ꢡ¢º ÀÀÀ¤¢ÞþÀÀÀÿýÿóÌ<ÿÿÿÿÿÿÿÿÀ3Ìÿÿÿÿÿÿ<À3ÌÿÿÿÿÿÿÿUUUU@€ÀÀÀK”IÀÀÀÀI”IIÀÀÀÀ”II”ÀŒ ÌIL›LKÌ œM � §²« ¶ §² 0«mKLÌÌÀÀ›LKœÌ3ÀÀÀ676À@€è@„€@UUUUÀÀ ÿÿÿ ÀÀÀÿ#¹¡ÀÀÀÀ£¹¡£ÀÀÀÀ¹¡£¹ÀÌ Ì¡ÿ¢º¢¡Ì ¹^ÿ ýk ¤£¤ £¤£ 0¤•¡¢ÌÌÀÀº¢¡¹Þþ€À€þÀÀÀ ÿÿÿÿ ÀÌÿÿÿÿ ÀÿÿÿÀÿTÕÌóóëìë�ž�uvóóóÌuëìë�ž�uvžìóóÌóë�ž�uvžìë�žóÌÌÌ�uvŸ*ëìvëÀv<ëìvž�uvuëìë�ž�u?<Ï?vuëìvž�uvuë<Ï?<ìvž�uvu)*ëÌÌìvëvTUÌÒs©ª©¬«óÒsŒ¬©ª©¬«ªÒsŒÒ©¬«ª©sÌÌ̬«°©ª«©À©<©ª«‡?='¬«¬©ª©¬?<‡?«¬©ª«¬«¬©<‡?<ª«¬«¬¯°©Ì̪«©©UÕUÌÀ ÿ€€ÿÌÌóó€€TSTÿÿÿ¬«óóó̬TSTÿÿÿ¬«ÿSóóÌóTÿÿÿ¬«ÿSTÿÿó ÌÌÿ¬«¬T¬TVÀVn p·päpOnR‹pnn£põp3n6‹p!n9pÿ‡n»p÷ÿÿ$#$%$#$#$!$$3ÿÿ #$%$#$#$!$$#$#$%&#$#$$#$#$#$#$#$&%&%$#$#$#&$#$%$#$#$!$$#$%&%$#&#$$#$#$%&#$#$&#$#$#$#$#$$%&%$#$#$#&$%$!$#$#$%&&#$#$#$#$#$$#$#$#$#$#$$#$#$#$ÿ#$#$ÿÿÿLüO÷øpø¼ø«ø_øwçúÎG<×ðØïðÂðð8ð¡ð&³#´$#u#Ú#‘#¾#¿ç¼æåXå]ç,å‹ååÎÐËÌÐÎÌdÎiÌÏÌÐËÌÒÌÌfÌiÌÏÎÎËÌÒÎÐbÎkÌÍÎÐÏÐÐÌÌdÌkÐÏÌÐËÌÐÎÌdÎiÌã»Ø¾½p½i½½ó½Å’Ä��ú’4�ª’�±¶{Е¶¡)¢*)‘%Ê'ÿ{%â)ÿÿÿyzyvyx{~y~yCDC>CBCFCJC-,+&+*-0+2+ $ $&)('")(),)0''*)"'&),'0))*)$)&',)0))('"'&),'.''*)$)&',)0),-.3./,).'.$#$)$'$$$!ÿ  UUU3ÌÌ̯°Dt@=¹CÌÌÌóæÃâÁõeüÆÅÌÌO78ÌÌÏ<ã¶.'(ÏÌÌÌȲ'*ÑÌÌÌÌ´ )4ß¶ÌÌÌÌ*34ß¶*ÌÌÌÌ34ß¶*ÌÌÌÌ34ß¶*3ÌÌÌÌ4ß¶*3-ÌÌÏ<ä«7&%ÚÌÌóÌ©/ÐÌÏ<Œ§'À£ÌUUU3ÌÌÌëìvu9t9ëÌÌÌ3ìvu9t9ëìÌÌÀ¿ÐD05_boxD05_boxá /Àu²KÃ[}CÄ“A¤ FÃ0x>Ĥ¤á /À0x>Du²KÓA[}CD¤ FÛ“ Õu_W?3Ì?éWêéêXééWê3Ì?3éêXééUèçèÌ?3ÌXéçWêéêVçWXéWêéêXéWXéWóÌ?3êéêXééWêéêÌÿóÌXéWXéUèçèXéUVçWêéêVçéUè3ÌÌÌçèXéÈXàU²ÞUßàßXÞUVÞWÛÜÛVÞWXàYÝÞÝÌÿóÌXàYZÞWßàßZÞ?3ÌÿÜUÝÞÝXÜUVàWÝÞÝVàWXÞYÛÜÛÌ?3ÌXÞÞWßàßZÞ?3ÌÿÞWÝÞÝXÞWXÞWóÌÿ<ÝÞÝXÞÞWÝÞÝXUUUU À-!È À-!ÈóÀûaÈ ÀûaÈûÈ !ÀÌÌ! í!ÈóÀûÈóaÀ ÀûaÈóÀ-!È ÀûÈ6Õu]W?3Ì?ƒh„ƒ„gƒƒj‚3Ì?3�‚gƒ�h„ƒ„Ì?3Ìi�ƒj‚�‚gƒji�h„ƒ„i�hgƒhóÌ?3„ƒ„gƒƒj‚�‚ÌÿóÌgƒji�h„ƒ„i�hgƒj‚�‚gƒ�h„3ÌÌ̃„i�wgàh¿3Ìÿ�T‚�‚S�TS�T‚�‚S�TSƒT„ƒ„ÌÿóÌSƒTS�T‚�‚S�?3Ìÿ�T‚�‚S�TS�T‚�‚S�TS�R„ƒ„Ì?3ÌS��R‚�‚Q�?3Ìÿ�R‚�‚Q�RQƒTóÌÿ<‚�‚Qƒ�T‚�‚SUUUU33 ;3 33L33  ó ó 33L ó  ó 33 ÀÀýþ³3 ó ó ó 33L ó ó ;3 33L ó Ï0ÿÿÿÿ>=>=>:9:9:>=>=>e‚<½fe¾½ :Ù¾½ÚÙ"!Ú¯!ÚÙ"°¯"Žc)!°¯"*)"4;!*)"<;$#<>U#<;$V°¯UVŸ ì7¬ ì럫¬£<3¤«¬£43ŸÔ:ò 43Ÿñò¡O<¢ñò¡¡¢:Ç¢¡ÈÇ¡•=NUVUUUU@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@„UUUUÀÀÀê›jÀÀÀÀ2›j2ÀÀÀÀ›j2›ÀÀÀÀ¢›úÀÀÀÀ]›ú]ÀÀÀÀ›ú]›ÀÀÀÀú]›úÀÀ@À]› ÀÀÀÀ+ƒÀ;ÀÀÀÀƒÀ;ƒÀÀÀÀÀ;ƒÀÀÀÀÀ;ƒÀ;ÀÀÀÀƒÀ;ƒÀÀÀÀÀ;ƒÀÀÀÀÀ;ƒÀ;ÀÀÌ ƒÀ;ƒÀUUUUÀÀÀöúÀÀÀÀøúøÀÀÀÀúøÀÀÀÀúøúÀÀÀÀøúøÀÀÀÀúøÀÀÀÀúøúÀÀÀÀøÿ ÀÀÀÀú üÀÀÀÀú üúÀÀÀÀ üú ÀÀÀÀüú üÀÀÀÀú üúÀÀÀÀ üú ÀÀÀÀüú üÀÀÌ ú üú UUUUÀÀÀ$Ÿ–ÀÀÀÀ Ÿ– ÀÀÀÀŸ– ŸÀÀÀÀË“ŸUÀÀÀÀöŸUöÀÀÀÀŸUöŸÀÀÀÀUöŸUÀÀÀÀöŸž›ÀÀÀÀ×ȼ|ÀÀÀÀȼ|ÈÀÀÀÀ¼|ȼÀÀÀÀ|ȼ|ÀÀÀÀȼ|ÈÀÀÀÀ¼|ȼÀÀÀÀ|ȼ|ÀÀÌ È¼|ȼUUUUÀÀÀ_"ÀÀÀÀ/"/ÀÀÀÀ"/ÀÀÀÀ*78ÀÀÀÀE8EÀÀÀÀ8EÀÀÀÀ8E8ÀÀÀÀEòÀÀÀÀÑ9 0ÀÀÀÀ9 09ÀÀÀÀ 09 ÀÀÀÀ09 0ÀÀÀÀ9 09ÀÀÀÀ 09 ÀÀÀÀ09 0ÀÀÌ 9 09 UUUUÀÀÀmºMÀÀÀÀÚ4îäÀÀÀÀ.òÚ4ÀÀÀÀìÛÔÀÀÀÀ_Gª+ÀÀÀÀ{¢&ÅÀÀÀÀžWI¤ÀÀÀÀaAœÀÀÀÀ§t¤äÀÀÀÀèþìÀÀÀÀýêÀÀÀÀùâþÀÀÀÀìþìÀÀÀÀýãÀÀÀÀù‘qÿÀÀÌ øýèUUUUÀÀÀ›aþÀÀÀÀÉ3þÉÀÀÀÀ3þÉ3ÀÀÀÀþÅ7þÀÀÀÀ¿=þ¿ÀÀÀÀ=þ¿=ÀÀÀÀþ¿=þÀÀÀÀ¿=ó €ÀÀÀÁ=ÿÀÀÀÀÇ7ÿÇÀÀÀÀ7ÿÇ7ÀÀÀÀÿÇ7ÿÀÀÀÀÇ7ÿÇÀÀÀÀ7ÿÇ7ÀÀÀÀÿÅ9ÿÀÀÌ Ç7ÿÇ7UUUUÀÀÀLµjÀÀÀÀó-ßñÀÀÀÀ)áó/ÀÀÀÀÛÕÞÀÀÀÀ©Jb©ÀÀÀÀ€&£ÊÀÀÀÀ'¥NZÀÀÀÀ§F= ÀÀÀÀ§ëŸuÀÀÀÀøéüÀÀÀÀåøÀÀÀÀãöéÀÀÀÀüëüÀÀÀÀåø"ÀÀÀÀèøv�À@Ì øõøUUUUÀÀÀýbœÀÀÀÀý4ÊýÀÀÀÀ4Êý4ÀÀÀÀÊý8ÆÀÀÀÀý>ÀýÀÀÀÀ>Àý>ÀÀÀÀÀý>ÀÀÀÀÀý>Î €ÀÀÀÿ>ÂÀÀÀÀÿ8ÈÿÀÀÀÀ8Èÿ8ÀÀÀÀÈÿ8ÈÀÀÀÀÿ8ÈÿÀÀÀÀ8Èÿ8ÀÀÀÀÈÿ:ÆÀÀÌ ÿ8Èÿ8UUUU 3ÌÌÿÿÿÿÿÿÿ3ÌÌ3ÿÿÿÿÿÿÿÿÌÌ3Ìÿÿÿÿÿÿÿÿ33Ì3ÿÿÿÿÿÿÿÿ3ÌÌ3ÿÿÿÿÿÿÿÿÌ33Ìÿÿÿÿÿÿÿÿ33ÌÌÿÿÿÿÿÿÿÿ3ÌÌÌÿÿÿÿÿÿÿÿÌ3Ì3ÿÿÿÿÿÿÿÿ3Ì33ÿÿÿÿÿÿÿÿÌ33ÌÿÿÿÿÿÿÿÿÌ3Ì3ÿÿÿÿÿÿÿÿ3Ì33ÿÿÿÿÿÿÿÿÌÌ3ÌÿÿÿÿÿÿÿÿÌ3Ì3ÿÿÿÿÿÿÿÿ3Ìó<ÿÿÿÿÿÿÿÿÿUUUU 3ÌÌ}~}~}~}3ÌÌ3~}~}~}~}ÌÌ3Ì~}~}~}~}33Ì3~}~}~}~}3ÌÌ3~}~}~}~}Ì33Ì~}~}~}~}33ÌÌ~}~}~}~}3ÌÌÌ~}~}~}~}Ì3Ì3~}~}~}~}3Ì33~}~}~}~}Ì33Ì~}~}~}~}Ì3Ì3~}~}~}~}3Ì33~}~}~}~}ÌÌ3Ì~}~}~}~}Ì3Ì3~}~}~}~}3Ìó<~}~}~}~}~UUUUÌóÀefefefÌóÀÌefefefefóÀÌóefefefefeÀÌóÀfefefefÌóÀÌefefefefóÀÌóefefefefeÀÌóÀfefefefÌó33efefefefeÀÌóÀfefefefÌóÀÌefefefefóÀÌóefefefefeÀÌóÀfefefefÌóÀÌefefefefóÀÌóefefefefeÀÌóÀfefefefÌóÌÏefefefefefUUUUÌóÀghghghÌóÀÌghghghghóÀÌóghghghghgÀÌóÀhghghghÌóÀÌghghghghóÀÌóghghghghgÀÌóÀhghghghÌó33ghghghghgÀÌóÀhghghghÌóÀÌghghghghóÀÌóghghghghgÀÌóÀhghghghÌóÀÌghghghghóÀÌóghghghghgÀÌóÀhghghghÌóÌÏghghghghghUUUU3ÌóÀÿÿghghg—ÌóÀ̘hghg—˜hóóÌóghg—ÿÿ˜hghgÌÌóÌh€çhghgè€Ìóó̘hghg—@?˜hóÌÌóghgW@hghgÌÌóó@'hghg(@?Ìó33'hghghghgóÌóÀhÿÿghghg—ÌóÀ̘hghg—˜hóÌÌóghg—ÿghghgóÌóÌh€ghghgè€ÌóÌ̘hghg—@XhóóÌóghgW@?XhghgóÌóÌ@?hghg(@ÌóÌÏghghgˆ‡hghUUUUÈaó}~ÈaóÈy�‚zaÀÈaûüÀÈaÈûüûÈaÀÈúùúaÀÈaùúÀÈaÀùúùÈa!!úÀÈaÌ}ÈaÌÈzy�üaÀÈaûüÀÈaÈûüûÈaÀÈúùúaÀÈaùúÀÈaÀùúùÈăúùúÃó<ÏÞÞWÝÞÝXÞiW<ÀXjWÀ  <À Ãó<Ï��T‚�‚S�T<ÀSTó0ÌÐ €ÏŸóôŸ ó: óôŸ˜Ï0ëTMNMHMNGÜÏ0’’HG ;ƒÀ » üú ÿ  |ȼ½ À 09 ö  ùâ? ¿ ÿÇ7õ  áö- » Èÿ8Ò ÌÃ<Ãÿÿÿÿÿÿÿÿ<ÀÿÿÿÌÃ<Ã}~}~}~}~<À}~}< Ï0efefefeÏ0fefe< Ï0ghghghgÏ0hghg?<Ï0gˆ ‡hghgÏ0hghg †ùú†, [€J®2–,ª|©ü€?€?€¿©Ð("$D05_liftD05_liftj¾‘ 5VÃpQÄ�B’;ÃDc'Ä   0�0j¾‘ÂDc'D 5VÃ�BpQD’;ã�› ý÷ÿW3Ìóó78o87poÿ78m65nm\’Im&%ÿ&·JH&ÿ%Öý‰ýþwxw…wxwþxýþwýxwIm&%ÿ&·JH&ÿ%ÖýÌ óÿxþw…wx†xýwxþwý‘’Im&%ÿ&·JH&ÿ%'þýxþwxw…wxwþxýþwýx 4ß3Öß>à3ß àÕ4ß3ë=ß>¬ß àÕ4ß3ë=ß>¬ß à74ß3Öß>à3ß àÕ4ß3Öß>à3ß àÕ4ß3ë=ß>¬ßü à'?@ÀÀ ?@ABÀÀ ABA¥•UÀ HaÀª P ¼ !  ² ð«€Ì LáÞ  {À « k °!¢~Üß ±¥¨§³>ÍϦ§¨§§¨¥¦¥<ÌÏ<¦¥¥¦¥¦¥¦»Ï3<ϧ¨§¨§¨§¥¦¥3<ÌϦ¥¦¥¥¦¥¦¥<¦(õ÷ÿW3 ÀóQRQR=ST ÀóÿSTRÙ¤‚656¤Ú565ÖX\ZY³´³ñµ¶µW´ZY³X¶,¤6L656¤Ú565ÖXÌ óÿ¶Y³ñµ¶ò´Zµ¶Y³XCÙ¤‚656¤Ú565ÑWX¶Y³´³ñµ¶µW´ZY³X¶=5´6»´-³6´³¼5´6é.´-}´³¼5´6é.´-}´³™5´6»´-³6´³¼5´6»´-³6´³¼5´6é.´-}´ÿ<Àó³ 7878Å78Ì<À78Å7878óÌ<Å7878Å787¤•UUÀ@8 @p‰ ’(  qð‡Ì LáÞ {Ò@ ‡Z €!�~ÍÏ  ㋎�;<ÌÏŒ�Ž��Ž�Ž�<ÌÏ<Ž�‹Œ‹Œ‹ŒÛÏ3<Ï�Ž�Ž�Ž�‹Œ‹3<ÌÏŒ‹Œ‹�Ž�Ž�<ÀŽ, À  UWý× ó Ì·¸·¸·¸·ó Ìÿ¸·¸·¤$#$#$ÿÿ0Ì#$#$#$S¨§¨§ÌÀ ¨§¨§y§¨§¨§¨§¨§¨§S¨§33 ¨§¨§¨ÀÌÿÿ§Vˆ‡ˆ‡ˆ‡ˆ‡ˆüÏ0̇ˆS¨§¨§¨§À ÿ¨§yŠz€Œz‰zŠó‹yŠ|úyŠzŒõ‰{ŒzúyŠ|Šõ‰yŠz€Œz‰zŠó‹yŠ|€Šz‰zŒõ‰{ŒzúyŠ|ŠüÏÿÀõ‰2popopop‚ Ïÿ¦!"!"!"!%ª©ª©ª©ªüwxwU›U¹ ó Ìó Ìÿ(xwxwxÿ÷0ÌwxwxwxÌÀ �Ø×Ø×Ø×Ø×Ø×Ø`ÀÌÿÿƒÚÙÚÙÚÙÚÙÚÿ@4@0ÙÚÀ Ï¥TSR»|ÍÏSRQTRQTQR<ÌÏ=STRQRQRQ£Ï»|ÏTSRSRQTRST3<ÌÏQRSTRQRQRðàÞÞÞððQëðÀ¼¼¼ð€xUUUUÀÀÀ”IIÀÀó ”IorqàÌÌ qrßu36  7ãÀÌÌÀ87ÉÀÀÀÀ367ã@ó Ì8Ì 7É367  ãüË ¶˶ ˶ ˶Ë ¶˶ á@€@€UUUUÀÀÀ¹¡£ÀÀó ¹¡_Ÿ ¾ÌÌ  Ÿ½àþ þ}þÀÌÌÀ ¾ Ÿ½àÀ€ÀÀþþ}Àó Ìþ¢Ÿ ¾ ŸÌ  ½àþþ }þ.¨ ª®¨ª ®¨ª® ¨ª®¨ ª®¨ª ýÿÿÀÀ ÿÿÿÿÀÀ ÿÿÿUUUUÀÀNMÀóÀN¹NM�Ì ÞMc8  3åäÌ ÀÀ–ïZ–“À@ÀÀ83å@óÀÌ…•–ïZ–  “83  åÉ| ÉN|É N|ÉN |ÉN| ÉN|É $€ãH$€H$UUUUÀÀ¤£ÀóÀ¤\¤£¹Ì ¡£Ýýÿ þ‚þýÌ ÀÀ£¹¡£ÝÀÀÀÀýÿþ‚ÀóÀÌþ^¤£¹¡£ Ýýÿþ ‚þEq ÇÅqÇ ÅqÇÅ qÇÅq ÇÅqÇ <À3ÿÿÿÿÿÿÌ<Àÿÿÿÿÿÿ3Ì<ÿÿÿÿÿÿÿUUUUÀÀMNÀóÀMNKL—Ì LLÐ7  4äÌ ÀÀL—LLÐÀ€À€74óÀÌÏKL—LL  Ð74 7 !V%= d!Gr 1=t7 ?h?@!«„@!„UUUUÀÀ£¤ÀóÀ£[¡¢ºÌ ¤¢Þþÿ ýÿ€Ì ÀÀ¢º¤¢ÞÀÀÀÀþÿýÿóÀÌÝ¡¢º¤¢ Þþÿý ÿ㸠Àˆ¸À ˆ¸Àˆ ¸Àˆ¸ Àˆ¸À<À3lÿÿÿÿÿÿÌ<Àÿÿÿÿÿÿ3Ì<ÿÿÿÿÿÿÿUUUUÀÀÀ”IIÀÀó ”INKL›ÌÌ LKœÌ36 76èÀÌÌÀL›LKœÌÀÀÀÀ3676ó ÌËKL›LKÌ œÌ367 66à +ì¯K þ­Uõ ½Gõà Iÿ«K O@€@€UUUUÀÀÀ¹¡£ÀÀó ¹¡]¡¢ºÌÌ ¢¡¹Þþ  þ€ÀÌÌÀ¢º¢¡¹ÞÀ€À€þþó ÌÝ¡¢º¢¡Ì  ¹Þþþ Ò³ ‰Á³‰ Á³‰Á ³‰Á³ ‰Á³‰ “ÿÿÀÀ ÿÿÿÿÀÀ ÿÿÿUQU3Ìóóëìvž�uvuëìÌóóÌvž�uvu)*ëìÌÀvëv )ÌÌÌ*ëìvëv3ÌÌ)*ëìvëÀv<ëìvÌÏ?<žìvuëìë�žìÏ?<Ïvuëìë�žìvuë<ÌÏ<ìvžìvuëìvÌÏ?<žìvuëìë�žìÌvuUQU3Ès󩪫¬«¬©ªÈsóÌ«¬«¬¯°©ªÌÀ«©© ¯ÌḬ̀©ª«©©3Ì̯°©ª«©À©<©ª«ŒÏ=,ª«¬©ª©ªÏ=,Ï«¬©ª©ª«¬©<ŒÏ<ª«ª«¬©ª«ŒÏ=,ª«¬©ª©ªÌ«¬UQUU3ÌóóTS«ÿÿ¬«¬TSÌóóÌ«ÿÿ¬«¬«¬T¬ÌÀTVV «ÌÌ̬T¬TVV3ÌÌ«¬T¬TVÀVË ¶ÍÌÉÌÍÎÌ ¶ËÊÇÌÜÌÌ ¶ÉÊÅ ÌÌÌ̶ÉÊÅ ¶ÌÌÌÌÉÊÅ ¶ÌÌÌÌÉÊÅ ¶ÉÌÌÌÌÊÅ ¶ÉÊÌÌÌÌÅ ¶ÉÊÅÌÌÌÌ ¶T¿Ÿ`ÌÌÌÌÖ ‰®ÉjtÌÌÌL‚•j£$£ÌÌ ÌÙi`)MuîóÌÌÌBרvÑݳ©ÌÌÌóSbÜ©IILUUUU3ÀÌ #$Ñ®$#Ì ÀÌ$Ñ®$#$ÀÌ<Ñ®$#$Ñ ÀÌÀ®$#$ÑÌ Ì ®$#$Ñ®ÀÌÀÌ$#$Ñ®$ Ì À#$Ñ®$ÌÀÌ #$Ñ®$#Ì ÀÌ$Ñ®$#$ÀÌ ÌÑ®$#$Ñ ÀÌÌ®$+ ¼ÌÌÌŒ£À£ÌÌÈ̲Ÿ ÌÌŒ ¥ªóÌÌÌ»®ÌŒÌó(Ï´ 34UUUU3ÌÌÌëìvu9t9ëÌÌÌÌìvu9t9ëìÌÌÃÍ}ÎÍ-ÍPͳÍ5Í”^‰[\’\å^,\¶\Šl‰kl‚lõnl¦lŠ|‰{|r|üz|–|Š|‰{|r|ú||–|Šz‡{|r|ú||–|ˆ|‡{|rzü|z˜|ˆ|‰yzr|ü| |˜zŠ|‰{|r|üz|–|Š|‰{|r|ú||–|ˆ^‰[\’\å^,\¶\Šl‡mn€lóll¦nˆ|‰yzr|üz|˜zŠ|‰{|r|ú||–|Šz‡{|r|ªªªªeEee…q‡‡‡‡‡)‰©©§  ©©©Ë÷‰©©Š§!#ACCC#cC1CC!CC##CCA0C#CCc0C!#ACCC!CC##CCA#CCc!#ACC!CC0!#CCA0C#CCc!UUUUÌÌÏ<eSª9QRFÌÌÌÌ�ƒ~P’(ÌÌÌÌxîHiÈsäÌÌÌÌ€HhO“'þÌÌÌÌ)V]å+Á2óÌÌÏC§¨(úSÛEõ<ÌÌÌö®Ü{÷õöÌÌÃ<®Ü{÷õö®ÌÌ3ÌÜ{÷õö®ÜÌÃ<Ì{÷õö®Ü{ÌÌÌÌ÷õö®Ü{÷ÌÌÌÌõö®Ü{÷ÌÌÌÌ4V]å+Á2ëÏÌÌó¨( ÚSÛEõöüÌÃ<Ž Ü{÷õö®ÌÌÌÌÜ{÷õö®ÜUUUUÌÌÏ<9U‘“IuvEÌÌÌÌQ‘�E}‚MOÌÌÌÌ��A…ˆQM�ÌÌÌÌ�?&1IC��ÌÌÌÌQ !O™•]3ÌÌÃ!O™•]<ÌÌÌ!O™•]ÌÌÃÌÌLÌ5ɦ"3ÄÌÃɦ _•›M³ÌÌÌAB#]•™M?ÌÌÌÌ>!]•™O=>ÌÌÃ<_•›M=>ÌÌÌÌ_•›M=>_ÌÌÌÌ•›M=>_•ÌÌÌÌ›M=>_•›ÌÌÌÌM=>_•›MUUÌÌÌÌõ#¨{| ~õÌÌÌÈ#¨¤Ù¶ÄÌÌÌ̈È…grKóÏÏÌ9\[È$ 6 íVÌüüÌEÆ  Ï@ÌÌÃ<È…grKÈÌÌÌÌ…grKÈ…ÌÌÌÌgrKÈ…gÌÌÌÌrKÈ…grÌÌÌÌKÈ…grKUUÌÌÌÌy™šxÌÌÌÌy—ŒŒ"+ÌÌÌ̉�”xu3ÍÌÌ“”|w“ÌÌÌÌ”zw“”ÌÌÃ<xu“”ÌÌÌÌxu“”xÌÌÌÌu“”xÌÌÌÌu“”xÌÌÌÌu“”xuWUœ sýÄ Ïj |Ž íÌÌÌeÿW(+ð%ÌÌÌÌ…'© Z„�ïóÏÏÌ&„ƒ÷÷&áÅ ™†ÌüüÍ�ê©&ü½ ¯Ž¯ýÌã?Žr€‹ù°«�üßÍüb„‹õ¬©žXÌìÏü„�ñª©¢\€ìÏÿÎ�ñª­žhx‹üÏüÌó®­štt‰÷UUÌÌÌÌ£§¥¦“7ÌÌÌÌ£§£¦{_$©ÌÌÌÌ�¥ ‰7£©³ÌÌÌ¡¢‹7£§¡ÌÌÌÌ¢‹7£§¡ ÌÌÃ<‰7£©Ÿ ‰ÌÌÌÌ7£©Ÿ ‰7ÌÌÌÌ£©Ÿ ‰7ÌÌÌÌ£©Ÿ ‰7£ÌÌÌÌ©Ÿ ‰7£©WU©ý Öq b7á¯ÿÌÈÌþ ܵ"I±ÌÌÌÌô!O?Ã| –óÏÏÌ’EFýË ¦²%ŽAÌüüÏÉÍžŒ#ŠaÝÏó?Ç|€bS5ÌÿÏÜÅ|„TM9ÃÌüþÌ| ’NQAÅ|Óóðøòòð÷œRY;Çz Z_1ÇxœUUÌÌÌL¦ ɦÌÌÌÌ '6߸*ÌÌÌÌ5"Ų3ÈÌÌ!"Å´!ÌŒÌÌ"Å´!"ÌÌÃ<Ų!"ÅÌÌÌ̲!"ÅÌÌÌ̲!"ŲÌÌÌÌ!"ŲÌÌÌÌ!"ŲUUÌÌÌÌ9t9ëìvu9ÌÌÌÌt9ëìvu9tÌÌÌÌ9ëìvu9t93ÌÌÌëìvu9t9ëÌÌÌÌìvu9t9ëìÌÌÃ=>=>=>=>=>=><=<;>=>=>=>=>=><=<;>=>=>=>=>=><;<;>=>=>=>=<;<<=<;<;<=>=>=>=><=<=>=>=>=>=>=><=<=>=>=>=>=>=>>;<=>=>=>=>ÿóó=>=>ÖfefefÀÌ3efefeõÿ ÄÌ’— ÌÀÌ{–›ãìŽòþòðöôòYöáòÏèòõ…òûìúòôòQðãð×ö ðï‰ìóòúðùòYðåòãðò ñ‘îïôùòýôOðíòñòòç£òçòéòõðOðùòñèðí¥ðÝðßîéôOðþðþîòï«öãòÓðéöQòôòúð ìdðÙô×òáöUöÿóó ôòìò«€„ƒióÿÿîmníj„mnƒi€¥ªj Ì Ì|Ö{|®| ÌÀÌÓ|Ö{|®ðÿ¿ûù©ù|²|{džqûûËùúûûË£o|{Óˆûùù©ûüùùo£q|{Õ†©ùûûËùúûq£o|{ÓûËûùù©ûüˆo£q|{ùù©ùûûËùÕ†q£o|úûûËûùù©{Óˆo£qûüùù©ùûû|{Õ†q£oË¿ûûËûù|yɈo£ÿóó q V'óÿÿ:'(9('('ÿÿ/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/F¬¸© ¸œº¼¸šº¹º ¸-º¸Z³Y´ZòZíZòXWX\Z:ZÆF½E¾FüFéDþDCDzD`FÊGÅJÄG{IeI{GHGñIúIÆHÃIÆHòJùJòHGH|JfJ¸E½F¾EwE_CyCDCýCêE¬Y³Z´YYY9Y[WXWñYîYª·«›·¹.· ¹º¹ÿÌÌó™·»¹Ü Àÿï}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}7E9 3?5-7- ööô4ööóö!-!"!".  .86@8 ÿÌÌó:Fdcdcdc ÀdcZUU � ° �À� � ° ÌóÌÌ áÏмŸ6tÌÌÌÌõÝñžÊ§EÌÌÌÌ[ó yÂÖ½ÌÌÌ̘íK QÀäÌÌÌÌÁj÷á–¸‹ÂÌÌÌÌ⿸–á÷jEÌÌÌ̾ÚÁ Kí˜ÌÌÌÌ0¨äÉy ó[Ï<ÌÌE™Ÿ ìÏñÝõÌÀÀÀt6R#"ÀÀ@UUU ÌÌ jij–jiÌÌÌÀ•ijij–jÌóÌÌi•œhghiU ÌÌÌ VhijkSÈÌÌÌRhghiÌŒÌÌQRhihÌÌÌÿHLþÿÌÌÌþjLHþÌÌÈÌjihRQÌÌÌŒklkjRÇ<ÌÀSijihV ÌÀ€ÀUNþ€ÀÀÿþZUU� �À� � �ÀÀóÌÌ ‡tseÞÅÏÌÌÌÌ7 ¶Ž\” mÌÌÌÌÉì¨ù_ÜLÌÌÌÌ,Áã¾k­øáÌÌÌÌ]¸¿0®j&^ÌÌÌÌG÷j®0¿¸.ÌÌÌÌKÁk¾ãÁ,ÌÌÌÌJ ú[ù¨ìÉÏ<ÌÌmïÞÝt¶ 7ÌÀÀ€ÏÅÜ ÀÀ@#UUU Ì Ìiÿji•i ÌÀÌjiÿji•ÀóÌÌiQ LhÌÌÌÌŽjHLÌÌLÌjŽlF ÌÌÈ Lh’jHLÌÌLj”jHÀÌÌÌHj”jLÌÌÌÌ Hj’hLÌÌÌÌFlŽjÇ<ÌÌL HjŽÌÀ@ÀhLÿ€ÀþZUU  � ° �  � °ÀóÌÌ îÙÚ2ÏsŸÌÌÌÌ6t÷ ƒËoÌÌÌÌ­A[óGLRÃÌÌÌÌg¿žé•¯ÌÌÌÌÁ[Ãj÷ßãøÌÌÌÌ�Ã[Áº–ß±ÌÌÌÌ„ÁeÞIëÌÌÌÌa\�­oË{Ï<ÌÌóvuªŸsÍõÌÀÀ@Ù÷úÀÀ$UUU Ì Ìjÿij–j ÌÀÌijÿij–ÀóÌ jà `hiÌ ÌÀU ZjÌÈÌÌkSVh ÌŒÌiQPÄÌÀjÿHÌLÌHÿjLÌÀÌÈUihRLÌ ÌYkjR‹<ÀÌ]ihVÀÀ€À ðÿ@ÀÿZUU � ° �À� � ° ÌóÌÌ  Ÿ«xÛÞÌÌÌÌÇË9Á­O[ðÌÌÌÌ mËì)¿RÌÌÌÌòL.Ãß.«éÌÌÌÌ÷]ºÁ0âÂÌÌÌÌ]÷j¬0QÌÌÌÌÄ•JômÂáÌÌÌÌÌÆ ð[ý®Ï<ÌÌì•ËÌlÜÙx´ÌÀÀÀ 9•#"ÀÀ UUU ÌÌ jij–jiÌÌÌÀ•ijij–jÌóÌÌi•’ji² ÌÌÌÌLhŽlk²ÌÌÌÌLjŽli²ÌÌÌÌLh’li² LÌÌLj”hiÄÀÌ̶Hj”hÌÌÌÌg´Hj’ÌÌÌÌhi¶FlÃ<ÌÌŽhg´ HÌÀ€ÀjŽGþ€ÀþUUU ÌÌÌ@ ÌÌÌÌ ß@ ÌóÌÌ ÿ @ ÌÌÌÌ ß@ ÌÌÌÌ ß@ ÌÌÌÌ ß@ÌÌÌÌ ßÌÌÌÌ@ ßÌÌÌÌ@ ÌÌÌÌß@ Ï<ÌÌ ÿ @ Ìó3Ì ÿÿÿÿÿÿÿ3Ì3ÿÿÿÿÿÿÿÿ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ÿ Ìó€€€€ÿ€ ó €€€ öÁ~¥ƒÚ}%~¥??€¿ Ð                                                                 D06_banner D06_bannerœÄ ÁŸ|oÃ[¹hÄ¢EöÀlInÓhÄ  œÄ Á“hDŸ|oâEöÀ[¹hDlIn룠3Ìñòðñ3Œ3È 3Ì2104’’ÀÀbÀÀaÀÀbÀÀb3Ìÿÿÿÿ óÿÿÿÿaçÿç˜þgÿç?€>€¿Ð D00_fence D00_fence€ÁÊCîÁõ{êÂÓ^•AÀì ÁÕçÂð ð€ÁÕçBÊCîÁÓ^•Aõ{êBÀì Á6 . õ×3óóÀBABýþýHGH3óó656¤£¤ïðï…†… @?@ Ÿ öõö¹º¹opo/0/ :9:dcd‚�óóóÀQABAüûüEFE3óó434š™šÿÿÿ›œ›9:9$#$~}~ÒÑÒÛÜÛ“”“OPOLKLpo‘V 3óÒ@%&%!¡¡³B$B$DFdDóóóÀ�$#$!€!¡³B$B$DDDDùÿ3óóóÿÿÿÍÎÍÅÆÅÅÆÿù •Y Å¿À¿  )*)787CDCQRQabaqrq�‚�“”“¥¦£ÿÿÿÍÎÍÅÆÅÅÆÅËÌË€€zyz~}~€€†…†Š‰Š”“”š™š¦¥¦®­®¼»¼ÈÇÈÔÓÔäãäôóýÿ3óóóÿÿÓÉÒCËF†lËkÇPÉQãŠË‡«SËTx7Ë8”Ë ¬?Ë@Œ!Ë"ª;Ë<�)Ë*¢/Ë0œ'Ë(¤0Ë/üËÐËâËàËæ\Ë[uŸË ,'Ë(¤„˃¯PÉQã–Ë“Ÿ÷Ëø+ÃËÄíËî!ëËì÷Ëø+áËâÓËÔ÷Éö+ôÉóAêËçKîËíEœÉ�—ÐËÍeÔËÓ_ ËŸÿÿ7533353335555555555Q7533333333333333333UUÀÀÀh0cÀÀÀë*<ÀÀÀÀHZr‚ÀÀÀÀžÀÚôÀÀÀÀçÃ¥}ÀÀÀÀ`h0cÀÀÀë*<ÀÀÀÀHZr‚ÀÀÀÀžÀÚôÀÀÀÀçÃ¥}UUÀÀÀ>@@@@@@@@@ÀÀÀÀS>@@@@@@@@@UUÀÀÀg/dÀÀÀë*<ÀÀÀÀHZr‚ÀÀÀÀžÀÚôÀÀÀÀçÃ¥}ÀÀÀÀ`h0cÀÀÀë*<ÀÀÀÀHZr‚ÀÀÀÀžÀÚôÀÀÀÀçÃ¥}UUÀÀÀ= @@@@@@@@@@ÀÀÀÀS>@@@@@@@@@@UUÀÀÀe”ÀÀÀÀkðúýÀÀÀÀ§ìÃìÀÀÀÀþÚLóÀÀÀÀ”š~ÀÀÀÀyZ6ÀÀÀÀköÚ•ÀÀÀÀíãÖÖÀÀÀÀëäÄ”ÀÀÀÀùRŽUUÀÀÀ,p€€€€€€ÀÀÀÀ>+ €€€€€€UUÀÀÀÉ«¦ÀÀÀ»„”ÀÀÀÀžª¾ÊÀÀÀÀâú÷ÕÀÀÀÀ½�‡kÀÀÀÀ1½¡¨ÀÀÀ»„–ÀÀÀÀœ¬ºÈÀÀÀÀâüïÝÀÀÀÀµ§‰cUUÀÀÀ4 @@@@@@@ÀÀÀÀG6 @@@@@@@UU3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€UU ÌÌÌÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿUU ÌÌÌ~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~:!eñåL3›ÁgT€¿õÐD06_liftD06_lift�¨„Âa2wë³qÄŒôÀ�å;Ã4hFÄ   hÒh�¨„Â4hFDa2wÃŒôÀ«³qD�å;ÃT ÒL  ½ûÿ óó󈇇ˆ‡ïð‰‡ˆò†…ñò ³ôZYoXB²´XrY×abôóô?Oÿefaba.™³ôZYoXB²´XrYÆbaÿCôóô^abefabak³ôZYoXB²´XrYÆba^abababaŒÈšÇ™šÈ™ÇšÈšÇ™šÈ™Çš™šÈšÇ™˜Ê™Çš— šÉ™ÊɚʜšÊšÉ™šÊ™ÉšÊšÉ™šÊ™ÉÀšUUUÀÄ`ŒÀÀ,+ Ã<,+,+,@ ó+,óÀÌ+,+,+,3ÐH+,�?0 +,+,+,<Ê@+,+,$I!$�-' H@€B@$Õ¿ÿ óÀóPOPOPfMN ÀÏÿMNØœ6\434ÏüÌÏžÒ565L : 9:909:/: 9: 9 cÑž�656œÒ343@ D 787.9:-8 9: 7 Ìœ6\434žÒ5ÿú ù ÿ�65BD9:9:9 : 9 :c U @U V W W @W X UX? U @U V WVÄU V W LU W @U X W U @W V ðUEUU€Àj ©`@’a’HÀ@€© HBÏ©©ª©0ÀÏ3ª©©ª©ª©<Ï3?ª©©ª©ª©ª«©0ÌÀϪ©ª©©ª©0ÀÏ0ª©©ª©ªÀ©UWý3 ÌÌijijijió ó?jiji6…†…†…ÿÿ30†…†…†…'POPOÌÀ POPO;…†…†…†…†…†…)RÌÌÌQRQRQRÀó?ÿQq…†…†…†…†…üÌÌφ…'POPOPOP< ÷OPO½m×l×nØmÜÙÙÚkÙnÙnÚl×ÛÚm×n×nØn×ÛØ ×lÚmm×njÜÙÙÚkÙnÙnÚmÚ×ÛÜm×n×nØmÜð×ÛU›U3 ÌÌó ó?KTSTSTÿ÷30STSTSTÌÀ ‚VUVUVUVUVUV0@0@0@Àó?ÿ.VUVUVUVUVÿ@0@0@4UV< Ï�–—˜6Àϳ•–˜—–—˜|Ï3?•˜–—˜•–—Ô–1ÎÀÏ•˜—–˜—–°ØÏ6—˜–—˜•À–UUUÀÀÀ”IIÀÀŒ ”I©¯ÌÌ ©ª°¡”‘ �¸¥ª0ÌÌÀ©¯©ª°¡ÀÀÀÀ”‘�¸@Ì Ì©¯©ªÌ °¡”‘�  ¸˜’ ±’ ±’ ± ’ ±’ ±’ UUUÀÀÀ¹¡£ÀÀÌ ¹¡ÿ ¾ÌÌ  Ÿ½`ý ýþ¢Ÿ0ÌÌÀ ¾ Ÿ½`@À@ÀýýÀŒ Ìþ ¾ ŸÌ ½`ý ýþ*† ¯*†¯ *†¯* †¯*† ¯*†¯UUUÀÀNMÀÌÀN åOÌ Éå � ”¶Õæ< ÀÀåOÉå À@ÀÀ�”¶@ÌÀÌåOÉå  �”  ¶×' L#'L #'L# 'L#' L#'LUUUÀÀ¤£ÀÌÀ¤ý¥¹Ì  Ÿ¥]ÿ þ^¦< ÀÀ¥¹Ÿ¥]€À@€ÿÀÌÀÌþû¥¹Ÿ¥  ]ÿ þRØ )­Ø) ­Ø)­ Ø)­Ø )­Ø)UUUÀÀMNÀŒÀML—Ì LLl� “kK< ÀÀL—LLlÀ€ÀÀ�“ÌÀ̹L—LL  l�“  •š• š•^ in „UUUÀÀ£¤ÀÌÀ£ý¢ºÌ  ¤¢^ÿ ÿ]¡< ÀÀ¢º¤¢^@À€ÀÿÿÌÀÌÿ¢º¤¢  ^ÿ ÿ2 èæ2è æ2èæ 2èæ2 èæ2èUUUÀÀÀ”IIÀÀŒ ”IL›ÌÌ LKœh”‘ �‘gK0ÌÌÀL›LKœhÀÀÀÀ”‘��Ì ÌµL›LKÌ œh”‘� ‘!r ®ælœ ølœÞ ššÔˆ ªÖ€’UUUÀÀÀ¹¡£ÀÀÌ ¹¡ÿ¢ºÌÌ ¢¡¹^ý ý]¡0ÌÌÀ¢º¢¡¹^@À@ÀýýÌ Ìÿ¢º¢¡Ì ¹^ý ýk ¦¥¦ ¥¦¥ ¦¥ ¦¥¦UQU óóóìë�ž�uvuëìÌóÌÌvž�uvŸ*ëìÌÀvëv)<ÌÌ*ëìvëvÌÌÌ)*ëìvëÀv<ëìvÏ?<Ìž�uvuëìvžìÏ<ÌÌvuëìvžìvžÏ??<ìë�ž�uvuëìvÏ?<Ïž�uvuëìvž�u0vUQU Òs󪩬«¬©ªÈsÌÌ«¬«°©ªÌÀ«©©¯<Ḭ̀©ª«©©ÌÌ̯°©ª«©À©<©ª«‡?<Œ¬«¬©ª«ªÏ<ŒÈ«¬©ª«ª«Í'?<ª©¬«¬©ª«‡?<‡¬«¬©ª«¬0«UQU óóóSTÿÿÿ¬«¬TSÌó Ì«ÿÿ¬«¬T¬ÌÀTVV«<Ì̬T¬TVVÌÌÌ«¬T¬TVÀV?€¿mÐ                   D06_pine_cone D06_pine_conex )­xÃçÈpÄÙß—A•ÕXÃ3d[Ä’s’x )Â3d[D­xÃÙß—AçÈpD•ÕXÃ¥Ms�M _wÝÕŸ ž�ž�Ÿ Ÿ Ÿ ž�6556566565Ï3ÿÃ6556$##$#$$ÿ<ð0#$#$##$ï!"Ž~}{|{|~}~}Ï3ÿÃ~}{|}~~}~}}~}~}~~}STTSTSüóÀSTSTSTTSïÀÏÿà =efhghgefefefhgÎÍËÌËÌüó?ÎÍÎÍÎÍËÌËÌÎÍÎÍËÌËÌËÌÎÍí?ÿ!">ˆ‡…†…†üó?ˆ‡ˆ‡ˆ‡…†ßààü?óÌßàßßàßàßààßÀ¿¿À¿ÀÀ¿À¿À¿¿«ªª¥  Ðàí¼¼ííàÛ —‡€ šš p‚íÞÞííÙàÝ »ËÀ ¼¼ °À‡xx‡‡€w  ü½íà î¼¼ Ð੼¼©© › W‡€VVp€?ÿ üó? ËÀÞÞ °À©xx©© —ÿþÿýZ\[\ZY´³ZY[\ZµYZ¶ZËóóôóõöõöôóõôóóÑ¡¡¢¡£¤º¹£¤¢¡£¹¢¡º¡zyzyC4V4CÌ„ÀÂÁÂÂÁ}~ÂÁÁÂÂ|¿À{À(ÕÓÔÓÓÔXWÓÔÔÓÓWÖÕXÓlzyzyßaabaabÁÂabbaaÄbaÃ_)vvuvvuìëvuuvvëuvìvÝøúùúúù úùùúú ÷ø úÐÏ0?ÿzyzyªÔÔÓÔÔÓWXÔÓÓÔÔXÓÔWÔ““”““”Ø×“””““×”“Ø“aabaabÅÆabbaaÄbaªªªªef\¶UfµloFVC©CVI4¦ôCD6T3DsH%! fVeËeVkVÆôed8t5d“JOD4!e!4%4dQ ôef\¶fUf³LoD4C©C4G4†ô!$6T1$SF#!hxeíexmVèöed:”5d•joD4CeC4G4_§W×0/0/0/0/0/0/&%&%&%&%&%&À ÿÿ%*)*)*)*)ÿ3?*)*)æêéêéêéê+=>=>=>=>=>=À ÿÿ>¸0/0/0/0/ÿÿee0/0/îeee`ðð~=>=>=>=Z±²±²±²±²ÿ3ÿ±²±²­43434ÿüÏ3434343;?@ÿÿð?@?@?@?@?@˜—˜—˜—˜�§¨§¨§ÿüϨ§¨§¨§¨´³ÿÿð´³´³´³´³´³i÷ø÷ø÷ø÷ø÷ø÷ø_WW×*)*)*)*)*)*)"!"!"!"!"!"À ÿÿ!&%&%&%&%ÿ3?&%&%A('('('('('(À ÿÿ'    ÿ3ÿ  $#$#$ÿüÌ#$#$#$#?[&%&%&%&%ÿ3ÿ&%&%ÿüÏ"!ÿÿð"!"!"!"!"!;,+,+,ÿüÏ+,+,+,+&%ÿÿð&%&%&%&%&%*)*)*)*)*)*)UUUUff@@™™ffd!™™�ffd!™™�€!™™�†ff@™™UUUU?ü?Ðÿðÿ¢¡¡¢¡¢¢¡¢¡@ ÿÂ��‚�‚‚ý0�‚�!ÿðÿ@ ÿâ¡¡¢¡¢¢ý/ÿ¡¢¡‚��‚�‚ôÀ‚�‚�@‡ÿÃý/ÿ¢¡¡¢¡¢ô¿¢¡¢¡‚��ü?Ђ�‚‚�‚�ÿô¿¢¡¡ü?Т¡¢¢¡¢¡ÿðÿ@‚��‚�‚‚�‚�UWUU?ü?ðdcefefdcdcþÿðÿýfeghghfefeÀÿÃþýxwyzyzxÿ00wxwþ‚ÿÿ€dcefefdcdcÀÿÃþýfeghghfÿ?ÿefeþýxwyzyzüÀxwxwþ‚ÀÏÿÃÿÿ€dcefefdÿ?ÿcdcþýfeghghüÿfefeþýxwyü?ðzyzxwxwþ‚?ÿÿÿ€dcefefüÿdcdcþýfegü?ðhghfefeþýÿðÿÀxwyzyzxwxwþ_WUÕ¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿@ÿÿL$mnmmnIJmý4’nnm„¤ÖÕÖÖÕ…†ÖÕÕÖ@ÿÿ«‘¿À¿¿À®­¿ý?ÿÀÀ¿L$mnmmnÿôÒIJmnnmHÿÿ„¤ÖÕÖÖÕ…†Öý?ÿÕÕÖ«‘¿À¿¿Àÿôÿ®­¿ÀÀ¿L$mnÿÿÐmmnIJmnnmI ?ÿ„¤ÖÕÖÖÕÿôÿ…†ÖÕÕÖ«‘¿Àÿÿп¿À®­¿ÀÀ¿L$mnmmnIJmnnm_WWÕR<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<ÀÿÿþThFEFDC¬«Dÿ<óCEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<ÀÿÿþrT<;<:9Ž�:ÿ?ÿ9;<þThFEFDCÿüó¬«DCEFþ‚ÿÿÿÿ R<;<:9Œ‹:ÿ?ÿ9;<þrT<;<:9ÿüÿŽ�:9;<þThFEÿÿðFDC¬«DCEFþ‚Ï0?ÿÿÿÿÿ R<;<:9ÿüÿŒ‹:9;<þrT<;ÿÿð<:9Ž�:9;<þThFEFDC¬«DCEFþWWUUHKLKKLKLLKÿöÿJKLKKLKLLK ÿÿL\[\÷ø«¬õÿ@ö[\©H^]^õö­®õö]^À ÿÛ©JKLKKLKü/ÿLLKLMNMMNoð!KLNMÿÿHKLKKLKü/ÿLLKJKLKKLoð¿KLLKLOPü?àOKLKLPOÏ?ÿHKLKKLÿð¿KLLKJKLý¿ÀKKLKLLKÿöÿLMNMMNMNNM_WWÕ¢^]^\[þý\[]^ÿ¢ÞÝÞ#$~}#$ÝÞÀÿÿÿ¢÷ø÷MNTSMÿ<óNø÷©€ÿÿÿÿ€¢÷ø÷MNTSMNø÷Àÿÿ©ÿ¢ÞÝÞ#$~}#ÿ?ÿ$ÝÞÿ¢^]^\[ÿðóþý\[]^€ÿÿÿÿ€¢^]^\[þý\ü?ÿ[]^ÿ¢^]^\[ÿðÿþý\[]^ÿ¢£¤ü?𣡢¡¢¤£ý~Ï1?ÿýþýÿ‚¢ÞÝÞ#$ÿüÿ~}#$ÝÞÿ¢ÞÝÿÿðÞ#$~}#$ÝÞÿ¢^]^\[þý\[]^UWUU?þðIHLKLKGHGHÿöÿILHGJIKLKLÿÿIö_`_`«¬÷ÿøõö©Iöab_`«¬õöõöÀÿÛ©KNHGHGKüÿLMNIHNMNMŸüIJGH@‡ÿçIHLKLKGÿÿHGHKJLKNMŸüGHIJKLLü?àKLKKLKLÿKNHGHGoðKLMNKNHý¿ÀGJIKLMNÿùÿÀKJNMNMIJIJ_WWÕ£][\[\ýþ^]^]ÿ£$ÝÞÝÞ€#$#$Àÿÿÿ£Nø÷ø÷VUMÿ00NMN©€ÿÿ€£Nø÷ø÷VUMNMNÀÿÿ©ÿ£$ÝÞÝÞ€#ÿ?ÿ$#$ÿ£][\[\ÿøÀýþ^]^]€ÿÿ€£][\[\ýþ^þ?ÿ]^]ÿ£][\[\ÿøÿýþ^]^]ÿ£¤¢ü?𡢡£¤£¤ÿ€?ÿÿý€£$ÝÞÝÞÿüÿ€#$#$ÿ£$ÝÿÿðÞÝÞ€#$#$ÿ£][\[\ýþ^]^]UUUU?ÏÌðì) uu&{zø˜{zâ`{z<ò}zyzø˜{zâ`{z‰{z€ó}zyÈâ`z{z‰{z€~{z&}Ï ‰zyz{z€~{z&ø˜{z@A?ËÌËÌÿËÌËÌ ËÿüÌËÌËÌËÌ3ÿðËÌËÌËÌËÌ@A?ÍÎÍÎÿÍÎÍÎ ÍÿüÎÍÎÍÎÍÎ3ÿðÍÎÍÎÍÎÍÎWWW×ÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]WWWÿÿÀ~}~}~}~}~}~}~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3?~}~}|{|{|{|{~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3ÿ~}~}~}~}~ÿðÌ}~}~}~}|{|{|{|{~}~}~}~}ü3ÿ~}~}~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}|{|{|{|{~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~õyÝõ< ÿÀï d·¸¸ü?óÌ·¸··¸·¸·¸¸·¯°°¯°¯¯°¯°¯°°¯65343465656<ð03534ï f¼©©¼¼°Ê ¬««¬«¬¬«¬«¬<Ïÿ««¬rqststrqüóÀÀrqrqstï!"wxvuvuwxwxw<ÏÿxvuVUUVUVVUVUVUUV879:9:?óÏ8787879:ï?ÿ Í„ƒ�‚�‚„ƒ„ƒ„ƒ�‚ãääãäããäãäãääã¾½½¾µ­ª¦8ÿ'ü?óÌ ™©  šš<à#  ½íà ¼¼ Ðà‡xx‡‡€w ŸýíàÿÿÐàí¼¼ííàÛ w‡€xxp‚?ÿ%ÿðÿÛËÀÞÞ °À©xùýÿÿÿ<ÀÿÃcwzyzy’ —�÷Š—ø•TRQRTS¨§TSQRT¥ST¦Tê865687po87568ÿüóm78n8TzyzyÔ–˜—˜˜—ÏИ——˜˜Ð•–ϘXÃÃÄÃÁÂzyÁÂÄÃÁyÄÃzÃŒ�ƒ„ƒ�‚üû�‚„ƒ�ù‚�ú�7zyzyGjlkljiÖÕjikljÕijÖløçåæåçè21çèæåç1èç2åý™™š™™šÌË™šš™™Ëš™Ì™ zyzy½ÔÒÑÒÒÑ[\ÒÑÑÒÒ\ÓÔ[Òy•“”“•–ÖÕ•–”“•Õ–•Ö“acdcªªªª‚Q ø‡ˆøwˆ÷��fV‡í‡V�VæôCD:”3DsHg! hxeËexmVæôed:”5d“JoD4!e!4%4dQ öeh~ØuhÕnod4eËe4iV¦ô!$8t1$SFE!†V‡í‡V�xæöCF\¶SF•jo$4õ~]] ÏÿÏ@jijijijAèçÿÿðèçèçèçèçèç<ÒÑÒÑÒÑÒÑÒÑÒÑÏ!"!"!"!"!"!"eeoë8787878787878û�Ž�Ž�Ž�Ž�Ž�Ž3ÿÿÚcdcdcdcdcüÌÿdcdŒSTSTSTS¶ž�ž�ž�ž�ž�ž�3ÿÿZ€€€€€üÏÿ€L������ÿð3������Dáâáâáâá­³´³´³´³´³üÏÿ´³´¬«¬«¬«ÿð?¬«¬«¬«müûüõ}]] ÏÿÏG65ÿÿð6565656565 *)*)*)*)*)*)0/0/0/0/0/0/3?ÿQ,+,+,+,+,+,+$#$#$#$#$#$#3ÿÿ('('('('(üÌÿ'('E%,+,+,+,+,+,+3ÿÿ$#$#$#$#$üÏÿ#$#&%&%&%ÿð3&%&%&%C.-.-.-.-.üÏÿ-.-$#$#$#ÿð?$#$#$#('(UUUU€™™ffd™™ffd!™™�!™™�†ff@ €UUUU ü?Ðÿðÿ@¢¡¡¢¡¢¢¡¢¡ ÿÃý‚��‚�‚‚�‚�0!ÿðÿ@ ÿÃý¢¡¡¢¡¢¢¡¢¡/ÿ‚��‚�‚‚�ôÀ@‚�‡ÿÃý/ÿ¢¡¡¢¡¢¢¡ô¿ü¢¡‚��‚�‚?Ђ�‚�ÿô¿ü¢¡¡¢¡¢?Ðÿ¢¡¢¡‚��‚Õu]U ÿ‚ÿÿ€dceü?ðfefdcdcþýÿðÿÀfeghghfefeþýxwyzyzxwxwþ003‚ÿÿ€ÿðÿÀdcefefdcdcþýfeghghfefeþ?ÿýxwyzyzxwüÀÀxwþ‚ÿÿ€dcefefdcdcþ?ÿýfeghghfeüÿüfeþýxwyzyz?ðxwxwþ‚ÿ?ÿÿ€dcefefdcüÿüdcþýfeghgh?ðÿfefeþýxwyzõ}]U $€ÿ„¤ÖÕÿÿÐÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnm4’„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿?ÿÿL$mnmmnIJmnôÒHnm„¤ÖÕÖÖÕ…†ÖÕÕÖ?ÿÿ«‘¿À¿¿À®­¿ÀôÿÿÀ¿L$mnmmnIÿÐIJmnnm ?ÿÿ„¤ÖÕÖÖÕ…†ÖÕôÿÿÕÖ«‘¿À¿¿À®ÿÐÿ­¿ÀÀ¿L$mnmõ}]]<Àÿ‚ÿÿÿÿ R<;ÿÿð<:9Œ‹:9;<þrT<;<:9Ž�:9;<þThFEFDC¬«DCEFþ<ó‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<þ?ÿÿThFEFDC¬«DCüóÌEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þ?ÿÿrT<;<:9Ž�:9üÿÿ;<þThFEFDC¬ÿðÏ«DCEFþ‚ÿÿÿÿ R<;<:9Œ‹:9üÿÿ;<þrT<;<:9Žÿðÿ�:9;<þThFEFU]]U@ÿHKLÿÿÀKKLKLLKÿöÿJKLKKLKLLK ÿÛüLMNMMNKLNMñHKLKKLKLLK ÿÛüJKLKKLMNLK/ÿÿL\]^÷ø«¬÷øü![\©H^]^õö­®÷ø]^©/ÿoJKLKKLKLð¿ÿLKL\]^÷ø«ÿðϬ÷ø[\©?ÿoHMNMIJIJø¿ÿNMJ€€èçÍÿðÿÎèç€ËLMLKõ}]]<Àÿ€ÿÿÿÿ€¢ÞÝÿÿðÞ#$~}#$ÝÞÿ¢^]^\[þý\[]^ÿ¢^]^\[þý\[]^<ó~ýþýÿ‚¢ÞÝÞ#$~}#$ÝÞÿ¢^]^\[þý\[]^?ÿÿÿ¢÷ø÷MNTSMNüóÌø÷©€ÿÿÿÿ€¢÷ø÷MNTSMNø÷©?ÿÿÿ¢^]^\[þý\[ðÿÿ]^ÿ¢÷ø÷MNTÿðÏSMNø÷©~ýþýÿ‚¢ãäãab@?abüÿÿäã½ÿ¢ÕÖÕop2ÿðÿ1opÖÕËÿ¢^]^UU]U?ILHý¿ÀGJIKLKLÿùÿÀIHLKLKGHGHÿçÿKJNMNMIJIJ2!ÿöÿILHGHGKLKLÿçÿKJLKLKGHIJÿÿKø_`_`«¬÷øüD÷ø©Køabab«¬õö÷ø©ÿŸKJLKLKGHüÿIJKø_`ab«ÿð¬÷ø÷ø©ÿKLJIJIIJøÿKLK僄�‚ÍÿðÿÎèçæåËKJNMõ}]] ÿ€ÿÿ€£$ÝÿÿðÞÝÞ€#$#$ÿ£][\[\ýþ^]^]ÿ£][\[\ýþ^]^]023€þÿ€£$ÝÞÝÞ€#$#$ÿ£][\[\ýþ^]^]?ÿÿÿ£Nø÷ø÷VUMNüÀÄMN©€ÿý€£Nø÷ø÷VUMNMN©?ÿÿÿ£][\[\ýþ^]øÿÿ^]ÿ£Nø÷ø÷VÿðUMNMN©€ÿÿ€£dâáâá@?cdüÿÿcd¿ÿ£pÖÕÖÕ4ÿðÿ3opopËÿ£][\UU]U<Ìÿefeef…ì) ÏÌðuu}zyz{z&ø˜{zâ`{z<ò}zyzø˜{zâ`{z‰€{zóÈ}zyzâ`{z‰€{z~&{zÏ}zyz ‰€{z~&{zø{zÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿËÌËÌËüÌËÌ3ËÌÿðËÌËÌËÌÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿÍÎÍÎÍüÎÍÎ3ÍÎÿðÍÎÍÎÍÎõ}]]ÏÿÏ21212121ÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð3ÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÕu]] ÏÿÏ}|{|{|{|{~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3?ÿ}|{|{|{|{?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÌÿ}~}|{|{|{|{~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ3~}~}~}|{|{|{|{~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ?~}~}~}~}~u×÷÷ðÿÏ<½¾¾½¾½¾½½¾ï ÿü dЉ‰Š‰ŠŠ‰Š‰Š‰‰ŠÝÞÞÝðÿÏ3ÞÝÝÞÝÞÝÞÞÝÂÁÁÂÁÂÂÁÂÁÂÁÁð03ÿÂï -€~}ðÿÏ3~}€€€~}»¼¼»¼»»¼»¼»óÀÀϼ¼»ï a���Ž�Ž�������ŽÙÚÚÙÚÙÙÚÙÚÙÚÚÙÄÃÃÄÃÄÄÃÄóÏÃÄÃÃÄï èÙÚÚÙÚÙÙÚÙÚÙÚÚÙÉÊÌËÌËÉÊɶ–¶úx©© — ÿü– ¼ííàÛ —‡€ šš pà#ÿ£ðÿÏ3ÝíàÞÞ Ðà‡šš‡‡€ó@� tðíÞÞííàÝw‡€xxp‚¥÷÷÷ÿcdÇÈcddccÈbaÇcuz<Àÿÿyzy'ÖÔÓÔÖÕSTÖÕÓÔÖVÕÖUÖ…‘“”“‘’ÚÙ‘’”“‘Ù’‘Ú“aabaabÃÄabbaaÄbaÃüóÿawzyzy&ÃÃÄÃÅÆvuÅÆÄÃÅuÄÃvà A?@?ABƒ„AB@?A‚BA�AÚ+)*)+,WX+,*)+VÿóÌ,+U+åzyzyàØØ×ØØ×OPØ×רØPרOØ�‘���‘’ÞÝ‘’��‘Ý’‘Þ�a_`__`ÁÂ_``__Àba¿a{zyzy-.,+aHHGHHG��HGGªªªªC‡C4G„Q öeh~2ØuhÕnod4eËe4iV¦ô!$8t1$SFE!hx+‡í‡x�Vööef\¶UfµloD4C‡C4G4„pö&‡†^ÖW†Õn�fVC©CVIV¦ôCD6T3DsH%!ˆx‡ÿ‡x�1xøöef\¶U]ï÷uÿÿÀ ûüûüûüûüûNfefefeft¡¢¡¢¡¢ÿð?¡¢¡¢¡¢¼»¼ÿÿÀ »¼»¼»¼»¼»cóôóôóôóôóôóô2nmnmnmn_VVVVPð�àßàßàßàßàßàßÞ‹Œ‹Œ‹Œ‹Œ‹Œ‹ŒÌÿüJMNMNMNM������������ ÈÇÈÇÈÇÈÇÈÇÈÇÏÿÿ[åæåæåæåæåæð3ÿåætstststˆ‡ˆ‡ˆ‡ˆ‡ˆ‡ˆ‡Ïÿÿ†…†…†…†…†…]ß÷uÿÿÀ '('('('('G9.-.-.-ÿð?.-.-.-&%&ÿÿÀ %&%&%&%&%*)*)*)*)*)*)G0/0ÿÿÀ /0/0/0/0/&%&%&%&%&%&%,+,+,+,+,+,+ÌÿüK1.-.-.-.-.-.-&%&%&%&%&%&%Ïÿÿ*)*)*)*)*)ð3ÿ*)G*656565656565Ïÿÿ,+,+,+,+,+UUUU™™†ff@@ffd™™ffd!™™�!™™�†ff@ €UUUUðÿ@ �‚‚�‚�ü?Ðÿ¢¡¡¢ðÿ@ ¡¢¢¡¢¡‚ÿÃý��‚�‚‚�‚�0!ÿðÿ@ ¢ÿÃý¡¡¢¡¢¢¡¢¡/ÿô‚��‚�‚‚�‚�À@‡ÿÃý/ÿô¢¡¡¢¡¢¢¡¢¡¿ü?‚��‚�‚‚�‚Ð�ÿô¿ü?¢¡¡¢¡¢¢¡¢UU×uðÿÀ yzxwxwþ‚ ÿüÿÿ€dcefef?ðÿdcdcþýfeghðÿÀghfefeþýxÿÃÿwyzyzxwxwþ003ÿ‚ÿÿ€dcefðÿÀefdcdcþýfÿÃÿeghghfefeþýxwyzyzxwxwþÀÀÏ‚ÿÿ€dÿÃÿcefefdcdcþýfeghghfefeþÿü?ýxwyzyzxwxðwþ‚ÿÿ€dcefefdcdcþÿü?ýfeghghfefUU×÷ÿÿ@ mnIJmnnm$€ÿÿ„¤ÖÕÖÖÕ…ÿÐÿ†ÖÕÕÖ«‘¿À¿ÿÿ@¿À®­¿ÀÀ¿L$ÿÿýmnmmnIJmnnm4’ÿ„¤ÖÕÖÿÿ@ÖÕ…†ÖÕÕÖ«‘ÿÿý¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnmÒH„¤ÿÿýÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnÐI m„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀU×÷÷ÿÿÀDC¬«DCEFþ‚ÿ<Àÿÿÿÿÿ R<;<:9Œÿðÿ‹:9;<þrT<;<ÿÿÀ:9Ž�:9;<þThFEFDC¬«DCEFþ<óÿ‚ÿÿÿÿ R<;<ÿÿÀ:9Œ‹:9;<þrT<;<:9Ž�:9;<þThFEFDC¬«DCEFþóÌ‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<þThFEFDC¬«DCEðÏ0Fþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;UUUuöÿMNKLNM@ÿÿHKLKKLÿÀÿKLLKJKNMöÿ KLKLLKLÿÛüMLKMNKLNMaÿHMNMöÿ€ IJIJNMJÿÃþMNMIJIJNM/ÿoðLMNMMNKLNM!HÿÿüKLKKLKLLK/ÿøJMNMIJIJNM¿ü?LONMKLIJPà„OH³´³dc´³h¿ü?JMNMIJIJNUÕ÷wÿÿ\[þý\[]^€ÿ<Àÿÿÿÿÿ€¢ÞÝÞ#$~ÿðÿ}#$ÝÞÿ¢ÞÝÞÿÿÀ#$~}#$ÝÞÿ¢ÿÿü^]^\[þý\[]^<óÿ€ÿÿÿÿ€¢£¤£ðÿÀ¡¢¡¢¤£ýÿ¢ãäãab@?abäã½ÿ¢^]^\[þý\[]^óÌ€ÿÿÿÿ€¢ÞÝÞ#$~}#$ÝÞÿ¢£¤£¡¢¡¢¤£ýÿ¢ãäãab@?abäðÏ0ã½€ÿÿÿÿ€¢öõö;&yz{zø{z˜{â`z<òø}zyz{z˜{â`z‰€{zóÈ}zyz{â`z‰€{z~&{zÏ }zyz‰€{z~&{zÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿüËÌËÌËÌËÌ3ÿËÌËÌËÌðËÌÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿüÍÎÍÎÍÎÍÎ3ÿÍÎÍÎÍÎðÍÎ]×÷uÿÿÀÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ?21212121ÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿü21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð3ÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]]×uÿÿ }~}~}~}~}|{|{|{|{~}~}~}ÿÀ?~}~}~}~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~}|{|{|{|{~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~}~}~}~}~}~}~Ìÿü}|{|{|{|{ÿÿü~}~}~}~}~}~}~}~}~}~}~}~Ïÿÿ}~}~}~}~}~}À3ÿ~}|{|{|{|{~}~}~}~}~}~Ïÿÿ}~}~}~}~}~}U§­ßóÌÿðÊÉÊÌË$#!"!"ÿÏ< $#$#$#!"í! ÿü?":433434434óÌÿð34334·¸¸·¸··¸·¸·¸¸·yz|{|Ãÿ<ð{yzyzyz|{ïVee ?VVPfÿÿ°¯¯°¯Ãÿ<ϰ°¯°¯°¯¯°vuuvuvvuvuvuuvððð÷ˆxï #p‡‡€pÿçèèçèççèçèçèè癚œ›œ›™š™š™šÏ?œ›ï >ÃÄÂÁÂÁÃÄÃÄÃÄÂÁªÚªÚÿð𩚚©© ™  þÝíàÞœÞ Ð੼¼©© › W‡€VVp€#ÿð¥ À ¼¼ °À‡xx‡‡€w 0@þÝívàÞÞ ÐàËššËËÀ¹ ue`xxÎ?‹ÿÿߟHH�GH�Hï00/00/`_0//00_/0`0dzyzyå!"!!"CD!""!!D C!ò¨ª©ª¨§­®¨§©ª¨®§¨­ªvããäãåæ65åæäãå5äã6ãŒzyzyˆšš™šš™ÉÊš™™ššÌ™šËœNÁÁÂÁÁÂ~}ÁÂÂÁÁ{ÂÁ|¿„�‚�€þý€‚�ý€þ�óÌÿ9zyzy99:9;¬«¬«¬«¬«¬«¬«3ÿóœíîíîíîí,ÊÿÿüÉÊÉÊÉÊÉÊÉÊÉuuu]ð?ÿ,+0/0/0/0ÿÀ Ï/0/0/QK&%&%&%&%&%ð?ÿ&%    ÿÀ ÿ  $#$#ÿÿ3$#$#$#$#=*)*)*)*ÿÀ ÿ)*)*)$#$#ÿÿ3$#$#$#$#&ÿÿü%&%&%&%&%&%E7&%&%ÿÿ3&%&%&%&%ÿÿü"!"!"!"!"!"!3ÿó="4ÿÿü34343434343UUUU™™†ff@@ffd™™ffd!™™� †ff@!™™�UUUUÐÿð¡‚��‚�‚ÿ@ ‚�‚�ü?Ðÿ𢡡¢¡¢ÿ@ ÿ¢¡¢¡‚��‚�Ãý0‚‚�‚�!ÿðÿ@ ÿ¢¡¡¢¡Ãý/¢¢¡¢¡‚�ÿô�‚�‚‚�‚�À@‡ÿÃý/¢¡ÿô¡¢¡¢¢¡¢¡¿ü?Ђ��‚�‚‚�‚�ÿôUUU]ðÿðeþýxwyzyzÿÀ xwxwþ‚ÿ ÿü?ÿ€dcefefdcdðÿðcþýfeghghÿÀÿfefeþýxwyzyÃÿ0zxwxwþ‚03ÿðÿÿ€dcefefÿÀÿdcdcþýfeghgÃÿ?hfefeþýxwÿüyzyzxwxwþÀÀÏÿ‚ÿÿ€dcefeÃÿ?fdcdcþýfeÿüghghfefeþýxwyzyzxwxwþ?‚ÿÿ€dcÿüefefdcdcþuUU]Ðÿÿ¿L$mnmmnIJÿ@ $mnnm„¤ÖÕÖÖÕ…†ÖÕÕÐÿÿÖ«‘¿À¿¿À®­ÿ@ÿ¿ÀÀ¿L$mnmmÿý4nIJmnnm’ÿÿ„¤ÖÕÖÖÕ…†ÿ@ÿÖÕÕÖ«‘¿À¿¿ÿý?À®­¿ÀÀ¿L$mÿÿônmmnIJmnnmÒHÿ„¤ÖÕÖÖÿý?Õ…†ÖÕÕÖ«‘¿ÿÿôÀ¿¿À®­¿ÀÀ¿L$mnmmnIJmnnmI ?„¤ÖÿÿôÕÖÖÕ…†ÖÕÕÖuuU]ðÿÿ<þThFEFDC¬«ÿÀ&{zø˜{zâ{z`<}zòø˜yz{zâ{z`{z‰€óÈâ}zyz{z`{z‰€~&{zÏ }zyz{z‰€ÏËÌËÿÀÌËÌËÌË?ÿÌËÌËÌËÌ ÿüËÌËÌËÌËÌ3ÿðËÌËÌËÌËÌÏÍÎÍÿÀÎÍÎÍÎÍ?ÿÎÍÎÍÎÍÎ ÿüÍÎÍÎÍÎÍÎ3ÿðÍÎÍÎÍÎÍÎuuu]ð?ÿÿÿÿÿÿÿÿÿÿÿÀÏÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3ÿó21212121ÿÿÿüÿÿÿÿÿÿÿÿÿÿÿuuu]À?ÿ~}~}~}~}~ÿ Ï}~}~}|{|{|{|{~}~}~}~}~}À?ÿ~}~}~}~}~ÿ ÿ}~}~}~}~}ÿü3~}~}~}~}|{|{|{|{~}~}~}~ÿ ÿ}~}~}~}~}ÿü3~}~}~}~}~ÿÿð}~}~}~}~}~}|{|{|{|{~}~}ÿü3~}~}~}~}~ÿÿð}~}~}~}~}~}~}~}~}~}~}~3ÿó}|{|{|{|{~ÿÿð}~}~}~}~}~ßW¹º¸·¸·¹º¹º¹º¸·.-/0/0.-.-Ï< .-/0ï!"OÂÁÃÄÃÄÂÁÂÁÂÁÃÄGHFEFEGHGHÏ3ÿÃGHFE/0.-.-/ÿ<ð00/0/0.-ï!0"Ûjð𩚚©©Ï8 €  ÐàËššËËÀ¹ ue`xxPb ß?‡PPOPRQ¢¡RQOPR¡OP¢Pô643465lk6534ÿÿ<À6i56j6Xzyzy­2112ØØ×ØØ×OPØ×רØPרOØ%ÅÃÄÃÅÆtsÅÆÄÃÅuÆÅvÅNzyzyª*öef^ÖUfµl�D4C‡C4G4„Q öef\¶Ufµ,loD4e©e4i4¤ô!$8t1$SFE!ïW*º¹º¹º¹º¹º¹º¹Ý=>=>=>=>=>=ðð�©©©>½“~}~}~}~}~}~}ÛÈÇÈÇÈÇÈÇÈÇÈÀ ÿÿÇ·¤£¤£¤£¤£ÿ3?¤£¤£™üßW*)*)*)*)*)*)0/0/0/0/0/0À Ïÿ/Q;('('('('('('"!"!"!"!"!"À ÿÿ!$#$#$#$#ÿ3?$#$#?üE†ff@™™†ff@™™ffdUU¿ü?Т¡¡¢¡¢¢¡¢¡ÿðÿ‚��‚�‚‚�‚�@ ü?Ðÿðÿ¢¡¡¢¡¢¢¡¢¡@ ÿÂ��‚�‚‚ý0�‚� ×UýfeghghfefeþÿðÿýxwyzyzxwxwÀ þ‚ÿÿ€dcefefdcdcþÿðÿýfeghghfefeÀÿÃþýxwyzyzxÿ00wxwþ‚ÿ0ÿß«‘¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnm@ $€„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿@ÿÿL$mnmmnIJmý4’nnmßrT<;<:9Ž�:9;<þThFEFDC¬«DCEFÀ<Àþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<ÀÿÿþThFEFDC¬«Dÿ<óCEFþ‚ÿÿÿÿ]¿ý¿ÀJKLKKLKLLKLùø÷^]ª©^]úùÀ&{zø˜{zâ`{z<ò}zyzPPÏÿËÌËÌËÌËÀÌ?ËÌËÌüËÌËPPÏÿÍÎÍÎÍÎÍÀÎ?ÍÎÍÎüÍÎÍ×Uÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÏÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿ2121ü212ßW}~}~}~}~}~}~}~}~}~}~}~}~ Ïÿ}|{|{|{|{~}~}~}~}~}~}~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3?~}~}|{|{ü|{|ñdÑÖC¹€Š«*>€¿—Ð                                                                                                                                                                                                                                                                                                                                                                                                       D07_accent D07_accentªxÂïð�Ã\ˆÄ}?üA‰ ƒÃUñ|Ä„X„ªxÂUñ|Dïð�Ã}?üA\ˆD‰ ƒÃîXæ Ý óóó1221221221243421221221Ìóóór2112112112112a0/12ùKKLMKNMKLL™KNL™KLLÿKMKNKKLª pˆˆˆˆˆˆˆðpˆ†hUˆðpˆø:†ðpðpðpˆˆU3 ÌÌÌÌÌÌó ÌÌHÌó ¿€“€ì€ÿ€ÿ€ÿÿ}€‘~U!HHHHHHáHHÏHaˆi¥å¡))Õ?ÌÌÌà“á–àßàßàÌÌÌÿßàßàßàß™â˜ÿÌÌÌ¿ìðëïìëìëìëìÓÖë‚Ö�:cÖãñ;«8°ò?ëu78–ìÿÿžÇõT¢Q+wU!HHHHHHíÈHHÚHaó â) ™ª»JÑUÀ‘ÀyÀÀÚ_ÀÀÀO¥˜ÀÀÀÀ?iššÀÀ¶«UÀ€ÀÀ'&@ÀÀ QÀÀ€À4ÀÀ UÀôÀëÀÀIfÀÀÀꉀÀÀÀÀHK¨ÀÀ‹U@€ÀÀ ÀÀrÀÀÀÀ^"ÀÀ=QÀêÀÀìëÀÀÀstYÀÀÀÀV‚‡åÀÀ¥€QÀÀÀ12ÀaÀÀ€À0À€U@ÀôÀó@ÀÀÁíÀÀÀÀºÜ ÀÀuhTÀÀ@ÀÀ (ÀÀÀÀ ÀU 333ÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿÌ333ÿÿÿÿÿÿÿÿ3Ì33ÿÿÿÿÿÿÿÿ3ÌÌÌÿÿÿÿÿÿÿÿ33ÿÿÿÿU 333}~}~}~}3333~}~}~}~}Ì333~}~}~}~}3Ì33~}~}~}~}3ÌÌÌ~}~}~}~}33~}~}U3 ÌÌÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿó ÌÌÿÿÿÿÿÿÿÿÌó ÌÿÿÿÿÿÿÿÿÌó33ÿÿÿÿÿÿÿÿÿ ÌÿÿÿU3 ÌÌ}~}~}~}ÌÌÌÌ~}~}~}~}ó ÌÌ~}~}~}~}Ìó Ì~}~}~}~}Ìó33~}~}~}~}~ Ì}~}Oã¿ex•IþjÙŠ}€?€?€¿‰Ð D07_banner D07_banner§¹B یüä…ÄD: B†AŒÃØÕ…Ä  §¹BØÕ…D ÛŒÃD: B¼ä…D†AŒÃ¥�  ó4e43 ó sÙûü sBBAÀüÀIÀøÀIÀ÷ÀJÀüÀI 3}~}3 €€ÿÿmßÁÂ’>mÁ?@?€¿ÐD07_boxD07_boxÛ  AG:†Ã£ÑÄTc«A»8„Ã¥P}ÄÀxÀÛ  A¥P}DG:†ÃTc«A£ÑD»8„Ã-x% WW%[fef%[eóÌ?3fefeedcdÌÿ<Ïe[\[\[eóÌÿ='f(ef'e@?%f&ef%e>='f(ef'ef%?%f&ef%e>='f(ef'ef%&e%f&ef%ef%&e%f&ef%eóógfehfeU@€@€@„@„@€@€@UUÀÀÀ ð£ÀÀÀÀKð£KÀÌ ð£Kð£ÀÀÌ Kð£Kð £Kð£ÀÀÀÀKð£KÀÀÀÀð§Gð@ÀëUUÀÀÀæ&òÀÀÀÀè&òèÀÌ &òè&òÀÀÌ è&òè& òè&òÀÀÀÀè&òèÀÀÀÀ&òè&ÀÀÿ%UUÀÀÀ?ìÑÀÀÀÀìÑÀÌ ìÑìÑÀÀÌ ìÑì ÑìÑÀÀÀÀìÑÀÀÀÀìî&ìÀÀíðUUÀÀÀa&(ÀÀÀÀM&(MÀÌ &(M&(ÀÀÌ M&(M& (M&(ÀÀÀÀM&(MÀÀÀÀ&(M&ÀÀÚ&UU€ÀÀ$ÀÀÀÀ××MÕÀÌ ÛMÙ×MÀÀÌ Ù×MÕÛ SÓ×SÀÀÀÀÓ×MÕÀÀÀÀÛMì£ÀÀ¨ïUUÀÀÀ‘gúÀÀÀÀ¥Uü¥ÀÌ Uü¥UüÀÀÌ ¥Uü¥U ü¥UüÀÀÀÀ¥Uü¥ÀÀÀÀUü¥UÀÀÝ%UUÀÀ€!$ÀÀÀÀNÜØLÀÌ àÔLÜØÀÀÌ LÜØLà ÐPÜÔÀÀÀÀPÜØLÀÀÀÀàÒH¨ÀëUUÀÀÀùh’ÀÀÀÀûV¦ûÀÌ V¦ûV¦ÀÀÌ ûV¦ûV ¦ûV¦ÀÀÀÀûV¦ûÀÀÀÀV¦ûVÀÀÌ%UU33Ì3ÿÿÿÿÿÿÿÿ3ÌÌ3ÿÿÿÿÿÿÿÿÌó<Ïÿÿÿÿÿÿÿÿÿÿ3Ìó<ÿÿÿÿÿÿÿÿÿÃ3<Ïÿÿÿÿÿÿÿÿÿ3ÌÌ3ÿÿÿÿÿÿÿÿÌÌ3ÌÿÿÿÿÿÿÿÿÌÌÿÿÿÿUU33Ì3~}~}~}~}3ÌÌ3~}~}~}~}Ìó<Ï~}~}~}~}~}3Ìó<~}~}~}~}~Ã3<Ï}~}~}~}~}3ÌÌ3~}~}~}~}ÌÌ3Ì~}~}~}~}ÌÌ~}~}UUÌóÀefefefÌóÀÌefefefefóÌÏ ­/ú» ÀÆ@ÀÅÀ¶ÀÀÿµ@À€ÅÀÿÀÀµÿÀÀÀ3<9ÀÀÀÀïIÀÁÀÀÀúÀ@À@¸ýÀÀÀ½,šÀÀÀÀHI=‡ÀÀÀ”"ÀÀÀÀò± óóóÀÿÿ€ßàÿÿÌóóó?Àÿÿ€ßàÿÿ3 ÌÌÿÿÿÿÿÿÿó ÌÌÿÿÿÿÿÿÿÿ3ÀÌ€|{~}|óÀÌ€}|{~}|ÿ(þšO’²íh®�à?€¿5ÐD07_liftD07_liftG²ƒÂŸ<�ö“‡Äs BîjpÜžqÄ   ÀbÀG²ƒÂœžqDŸ<�Ãs B¶“‡Dîjpàb˜ }3ÌóóIJ•LK–•IJ•LK–• ÅoÈnmÇpXÇñÅoÆpoÅpVÅÆÀÀÌ ×UV¡W ÀÀÌX£UV¡ ÀÀWX£WÀXUHaÀ ÀÀÀ 0À Àu3 Àóstst;st ÀÿÿstLKL["L!+LML;N!KóÌ<MNMNOPOÀóÌPMNMNM<ÀóÌNMNMNMNU€ó Ë÷ø÷Ìó óø÷ø÷ø÷ø÷øÀ Ö À À ý ó Ì56565656565‘ ŽŸ�‹žŽÔå ä ŽŸ�‹žŽ ä�~�������VUVUVUV |{|{|{|SÆÅÆÅÆÅÆ©áâáâáðâáÕ ó Ìó ó úÂÁÂÌó óÁÂÁÂÁÂÁÂÁð# šššð `UÀÀÀ”IIÀÀÀÀ”I–’ÀÀÀÀ ±’ À@€º@€@€UÀÀÀ¹¡£ÀÀÀÀ¹¡×†ÀÀÀÀ¯*†¯ÀÀÀ ‚ÿÿÿ ÀÀÿÿÿ ÀÿÿÿÀÿUÀÀNMÀÀÀNÛ'ÀÀÀÀL#'LÒH$¸€H$€HUÀÀ¤£ÀÀÀ¤PØÀÀÀÀ)­Ø)óÌ<}ÿÿÿÿÿÿÿÀ3Ìÿÿÿÿÿÿ<À3ÌÿÿÿÿÿÿÿUÀÀMNÀÀÀM¦ÀÀÀÀunSá„)@!„@!„UÀÀ£¤ÀÀÀ£2ÀÀÀÀèæ2èóÌ<€ÿÿÿÿÿÿÿÀ3Ìÿÿÿÿÿÿ<À3ÌÿÿÿÿÿÿÿUÀÀÀ”IIÀÀÀÀ”IŒˆÀÀÀÀŽæšhÀ@€x@€@€UÀÀÀ¹¡£ÀÀÀ¹¡kÀÀÀ¦¥¦ÀÀÀ ¹ÿÿÿ ÀÀÿÿÿ ÀÿÿÿÀÿU3Ìóóëìvž�uvuëìÌóÌóvž�uvžìë�žóÌóÌ�uvžìë�žìvÀuU3Ès󩪫¬«¬©ªÈsŒÒ«¬«ª©sŒÒ̬«ª©ª«À¬U3ÌóóTS«ÿÿ¬«¬TSÌóÌó«ÿÿ¬«ÿSTÿÿóÌóÌÿ¬«ÿSTÿÿS«ÀÌÀ ¬ÿ€€ÿÌÌÀ€€ÿ€€ ÌÌÿ€€ÿ€À€U3À!ó|{|{|{À! À|{|! À„{|óÀ�<{|{|}|{|óÀ�}|{|}|<óÀ{|}|{|€Õ ó Ìÿÿÿÿÿÿÿó ó ÿÿÿÿÀ@?@Ìó ó?@?@?@?@?@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿTaHaa€HúñáÌÛ®Ú.&ÑÛ®?€¿ÅÐ                         D07_packed D07_packedç݆ÂÀüƒÃ/:�ÄýöKÂÀüƒÃàî}Ä   ”¸”ç݆Âàî}DÀüƒÃýöKÂ/:�DÀüƒÃ^¸V ÿÿÿÿÿ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒÿÿ‹ÿsÿ‹ÿsÿ‹ÿŒ‹ÿŒŒ‹ÿŒ‹ÿŒ‰ÿŒ‹ÿŠýÿ‹ÿsÿ‹ÿsÿ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒŠ‰ÿŠÿý‹ÿsÿ�ýŒ‹þŽ‹ÿŒ‹ÿŒ‹ÿŒ‰ÿŒ‰ÿŠÿý‹ÿÿ�ÿŽ‹þމÿŒ‰ÿЉÿЉÿЉÿŠÿý�ýsÿ�ÿqÿ‹þç‰ÿЉÿŠÿÿ‹ýŠ‹ÿŒ‹ÿŒÿý�ÿqÿ�ÿqþ‰þŒ‰ÿŠÿÿ‰ÿé‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿsÿ‹ÿsÿ‰þŒ‰ÿŠ‹ýŠ‹ÿŒÿÿ‹ÿÿ‹ÿsÿ‹ÿŒ‹ÿŒÿÿ‹ÿÿÿÿÿ*+P)V+V)V+V),*+$,)$*+P)¢)V+V)V+*,)$*+$,)N+V)V+ +,*)",+N)V+V)V+V)V+,*)n*+P)V+V)V+V)V+*,)$*+$,)˜)V+,*)N+V)*,+$*)",+N)*,+š),*+P),*+$,)$*+P)V+V),*+n,+$*)N+,*)ÿÿÿÿ†�…W›…žõ�ƒœó�…žó�…žó�…ž††�…Û†�…Û†�…W›…žn›…œó�ƒœó�…žó�…ž††�…Û†�…Û„›…W›…œó›…œó�ƒœp�…ž††�…Û†�…U�…žõ›…žõ›…œó�ƒœó�…žó�…ž††�…ˆ†�…U�…žõ›…žõ›…œó�ƒœó�…žó�…ž††�…Û†�…Û†�…ñ�…žó�…ž††ŸƒW�… õ�…ž††�…Û†�…Û†�…W›…ž„†›…ó›…ž„†›…W›…œ††�ƒÝ†�…Û†�…U�…žõ›…žõ�ƒœ††�…ˆ†�ƒÝ†�…U�…ž††�…»ÿ»ÿ'4'()('*Ï_Ï_hõö÷'('()0'0'4'( '()(ïÏ_fõøõ'*'('.)0'6'( '()( )('0'4'()('* '()()*''6'()()* '* '(ï_†÷öõöõ)('0'.''()('6'(Ï_hõö÷öõ'()0'0'4'())('6'('.)0'6'( '()(''0'4'()UUUE@@ÀÀÀÀÀ@€@@ÀÀÀ@€ÀÀÀÀÀÀ@€ÀÀÀ€@ÀÀ€€@@ÀÀ€€ÀÀÀUUUE€€ÀÀÀÀÀ€@€€ÀÀÀ€@ÀÀÀÀÀÀ€@ÀÀÀ@€ÀÀ@@€€ÀÀ@@ÀÀÀÿÿÿÿ’Ò‘\Ò›ÑÇÒ›ÑÑÒ‘ÑÑÒ›ÑÑÒ‘Ñ’žÒ�3œÒ›5’Ò‘\Ò›ÑÒ‘ÑÑÒ›ÑÇÒ›ÑÑÒ‘Ñ’œÒ›5’Ò‘?žÒ�hÒ›ÑÑÒ‘ÑÑÒ›ÑܛђœÒ‘?œÒ›\Ò‘ÑÑÒ›ÑÑÜ›ÑÏБÛÅÒ�ÏÑÒ‘Ñ’œÒ›ªœÒ�^Ò‘ÑÑÒ›ÑÑÒ‘ÑÑÒ›ÑÇÒ›ÑÑÒ‘Ñ’žÒ�3’Ò‘?œÒ›¹Ò�ÑÏÒ‘Ñ’œÒ›\Ò‘ÑÑқќœÒ›5’Ò‘?žÒ�^Ò‘Ñ’œÒ›¹Ò�Ñž’Ò‘\қќ’Ü›?œÒ‘?œÒ›\Ò‘ÑÏЛÑÏБϒœÒ�ªžÒ�3’Ò‘\қќœÒ›ÿÿÿÿ¢¹¡·£º»·¡¸¹¹¡¸¹¹¡º»·£º¢¤¹¡£¢¹¡£¢·£¹¡¸2·£º¹¹¡¸¹¹¡º»·£º¢¢·¡¥¤¹¡£¢¹¡·£º¹¹¡¸¹¹¡º2¹¡¸¤¢¹¡£¢·£¹¡¸¹¹¡º»·£º»·¡¸¹¹¡¸¹¹¡º¢¢·£J¢¹¡·£º¹¹¡¸¹¹¡º»·£º¹¹¡¸¹¹¡º¢¢·££¢·¡¥¤¹¡ê·¡¸¹¹¡¸¤¢¹¡·£º¹¹¡¸¤¢¹¡£¢·££¤¹¡¹¡º¢¢·£ì¹¡º¢¢·£·¡¸¢¤¹¡£¢¹¡£¢·£¹¡¸¹¹¡º»·£º¢¤¹¡H¢·££¤¹¡¹¡º¢¢·£ªªªªò`ò�Ð�Ò`ò�uww&ò�ò�Ð�<Ò`ò�uww&ò�Ð�Ò`ò`w(•ð€<ò`ò�Ð�Ò`ò�uõð€Bò`ò�Ð�Ò`ò�uw&w(ò`ò�uò`:ò�uw&w(ð�W&ð�W&<ò�uw&w(ð�Ò`ò�u÷(•ò`w(BÿÿÿÿWnXânXm­nVm«nVm­nXm­nVmUWnXÅUnVÃWnXänVmÙnVk¯nXm­nVm«lXmUWnVÃUlXÃWnVælXm­nVk­nVmÙnVmUWnXÅUnVänXm­nVm­nXm­nVm­nXm­nVmUUnVñUnVänXm­nVm­nXm­nVm­nXm­nVmUWnXÅUnVÃUlX¸nVm­nXmWUlXänVk­nVmUWnXÅUnVÃWnXänVmUWnX¸lXmUWnVänXmWUnVÃUnVÃWnXälXm­nVk­nVmUWnXñWnXÅUnVänXmWUnVÿÿÿÿzSzy(zy(zy(zy&|yzgzezQzy#|y&|{(z{(zyzeze|Sz{(zy(zy!zyze|Sz{(zy(zy(zy&|y&|{z±zQzy(zy&|y&z{(zy(zyzeze|�zy(zyzQzy&|yzgzezQzyz�|{zSzyzeze|S|{(z{(zyz¯ze|Sz{zTa!!!�€$HHd!a!`€ÿÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒÿÿ‹ÿÿ‹ÿŒ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒ‹ÿŒsÿ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿsÿ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒÿÿ‹ÿÿÿsÿ‹ÿsÿ‹ÿÿÿN+,*)N+V)V+,*)n*+P)V+*,)N+*,)N+*,)N+V)v*)N+V)V+V)*,+N)*,+N)*,+n,)N+*,)$*+P),*+P),*+P),*+p*+P),*+P)V+V)V+*,)ÿÿ$*+$,)ÿÿU�…ž††�…W›…žõ�ƒœó�…ž††�…ˆ†�…U�…žõ›…ž„ˆ�…W›…ž„†›…W�ƒœ††�…U�…žó�…ž†�…W›…žóŸƒœó›‡ õ�ƒœ††�…U�…ž††�…U�…ž††�…††›…W�ƒœ††›‡Û†�ƒW�…ž††�…W›…ž„ˆ�…W›…ž„†›…††�…U�…ž††�…U�…žó�…žõ›…žõ�ƒœ††›‡ÿÿÛ†�ƒÝ†�…ï»o6'*'4'()('*''4'(ï_†÷ÿ_hõ)('6'()6)*'6'()()6)* '* '(ï_†÷ÿ_fõ)('6'('6)(''6'(fõøõÿfõ'.)6'*'4'()6'*''4'()6'*Ï_Ï_ï_†÷'('()('ÿÿ0'.'UUUÀ€À€€ÀÀÀÀÀÀ@ÀÀÀÀÀÀ€€À€ÀÀÀÀÀÀ€ÀÀÀ@ÀÀÀÀUUUÀ@À@@ÀÀÀÀÀÀ€ÀÀÀÀÀÀ@@À@ÀÀÀÀÀÀ@ÀÀÀ€ÀÀÀÀÿÿ\Ò‘Ñ’œÒ›\Ò‘ÑÑÒ›ÑÑÞ�Ñ’žÒ‘žžÐ›^БÏÑÒ�ÏœœÒ›\Ò‘Ñ’œÒ›\Ò‘Ñ’œÒ›hÒ�ÑÏÒ‘Ñ�œÒ›\Ò‘ÑÏÒ�ÑÅÒ›ÑÑÒ‘Ñ’œÒ›\Ò‘Ñ’œÒ›hÒ�Ñž’Ò‘žœÒ›\Þ�Ñ’žÒ‘?œÒ›\Ò‘Ñ’œÒ›\ܛђœÒ‘^Лў’Б œÒ›hÒ�Ñž’Ò‘\Ò›ÑÑÒ‘ÑÑÒ›ÑÇқќ’Ò‘ÿÿ?œÒ›5’Ò‘ÿÿ·¡¸¢¤¹¡¹¡º»·£º¹¹¡¸¤¢¹¡H¤¹¡¹¡º»·£º¢¤¹¡¹¡º¢¢·£·¡¸¢¤¹¡·£º»·¡¸o¢·£·¡¸¹¹¡¸¹¹¡º»·£º¢¤¹¡¹¡º¢¢·£¹¡¸¤¢¹¡H¤¹¡¹¡º¢¢·££¢·¡¹¡¸¤¢¹¡·£º¢¤¹¡¹¡º¢¢·£J¢¹¡·£º¢¤¹¡¹¡º»·£º»·¡¸¹¹¡¸¤¢¹¡ÿÿ£¢·££¤¹¡ªªªð�W&ò�Ð�Ò`w(÷&ò�BÐ�W&ò�uò`w(ð�Ò`õò`ò�Ð�BÒ`w(ð�W&ò�u÷(ð�BW&w(ð�W&ò�uò`w(÷&ò�uò`Bò�Ð�Ò`w(•wÿÿænVmUWnXânXm­nVm«nVmUWnXñWnXänVm­nXmWUnVælXmUWnVänXmWUnVænVm­nXmƒWnXänVm­nXm­nVm­nXmWUnVänXmWUnVælXmUWnVïWnXälXmUWnVÃUnVänXmWUnVänXmWUnVänXmWUnVïWnVänXmWUnVænVm­nXm­nVm­nXmWUnVÿÿÃWnXÅUnVÿÿQzyzQzy&|y&z{z¯zQzy&|yzSzyzQzyzS|y&z{5zQzy(zy&|y&z{zQzyzQzy|±zSzyzezS|y|Sz{zQzyz¯|Sz{zQzy(zy(zy&|yzÿÿgzez@U !!$!!!a H€E%OÿÿK_´ ͬÁëɨÀ¿™Ð D07_pine_cone D07_pine_conehӊ¢”Ã+'ŒÄÜF‚Á wà ?tÄx Tx hÓŠÂ ?tD¢”ÃÜF‚Á+'ŒD wà €T€ _wÝÕÓÔÖÕÖÕÓÔÓÔÓÔÖÕÇÈÈÇÈÇÇÈÇÈÏ3ÿÃÇÈÈÇ&%%&%&&ÿ<ð0%&%&%%&Åst�õöø÷ø÷õöõöÏ3ÿÃõöø÷áââáâááâáâáââáüóÀÅÀÏÿÃst‡'(*)*)'('('(*),+)*)*üó?,+,+,+)*‹ŒŽ�Ž�‹Œ‹Œ‹ŒŽ�Å?ÿst­ÑÒÒÑÒÑüó?ÑÒÑÒÑÒÒÑYZ\ü?óÌ[\[YZYZYZ\[åæèçèçåæåæåæè«¥©¥ððíÿÿííàß ™©  šš � #ÿðÿÂÏ3ÿÃÿÿð𩚚©© ™ ÀÏÿÃåÿÿððíÞÞííàÝ —‡€ šš p‚?ÿÄüó? íà ¼¼ Ðà‡šš‡‡€yÿþ¿ý&%%&ŸÃÁÂÁÃÄxwÃÄÂÁÃyÄÃzÃÉ(*)*('PO(')*(Q'(R("åæåæ̼Ëÿ˼�  ‡ÇÉÊÉÇÈnmÇÈÊÉÇmÈÇnɵ$$#$&%JI&%#$&I#$J$*çèçèi356534gh34653j43i3bûýþýûüûüþýûüûû "R"1$OnÏ0?ÿåæåæŸYWXWWX±²WXXWW°ZY¯Yäèæåæèç12èçåæè2çè1æT!""ªªjjCD8t3DsHOD4!e!4%4d²CB2BQ&#!D4C‡C4G4„ôCBRBSFK$4!C!4%b1 ’CD8t3Dq(MBCeCE4b’!§å­¹!D4C‡C4G4„ÒCBRBQ&I¦Ÿ–¶_§W×ìëìëìëìëìëì놕–•–•–•–•–•À ÿÿ–9*)*)*)*)ÿ3?*)*)@ÔÓÔÓÔÓÔ º¹º¹º¹º¹º¹ºÀ ÿÿ¹j¿À¿À¿À¿ÀÿÿCC¿À¿ÀQCCC@ððŒº¹º¹º¹º®ìëìëìëìëÿ3ÿìëìë�56565ÿüÏ6565656ÒZYÿÿðZYZYZYZYZYË   nÿüÏÎüûÿÿðüûüûüûüûüûX‹Œ‹Œ‹Œ‹Œ‹Œ‹Œ_WW×À ÿÿ ÿ3?+À ÿÿÿ3ÿÿüÌ-ÿ3ÿÿüÏ ÿÿð)ÿüÏÿÿð UUUUff@™™ffd™™!™™�ffd!™™�†ff@ †ff@™™UUUU?ü?Ðÿðÿ¢¡¡¢¡¢¢¡¢¡@ ÿÂ��‚�‚‚ý0�‚�!ÿðÿ@ ÿâ¡¡¢¡¢¢ý/ÿ¡¢¡‚��‚�‚ôÀ‚�‚�@‡ÿÃý/ÿ¢¡¡¢¡¢ô¿¢¡¢¡‚��ü?Ђ�‚‚�‚�ÿô¿¢¡¡ü?Т¡¢¢¡¢¡ÿðÿ@‚��‚�‚‚�‚�UWUU?ü?ðdcefefdcdcþÿðÿýfeghghfefeÀÿÃþýxwyzyzxÿ00wxwþ‚ÿÿ€dcefefdcdcÀÿÃþýfeghghfÿ?ÿefeþýxwyzyzüÀxwxwþ‚ÀÏÿÃÿÿ€dcefefdÿ?ÿcdcþýfeghghüÿfefeþýxwyü?ðzyzxwxwþ‚?ÿÿÿ€dcefefüÿdcdcþýfegü?ðhghfefeþýÿðÿÀxwyzyzxwxwþ_WUÕ¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿@ÿÿL$mnmmnIJmý4’nnm„¤ÖÕÖÖÕ…†ÖÕÕÖ@ÿÿ«‘¿À¿¿À®­¿ý?ÿÀÀ¿L$mnmmnÿôÒIJmnnmHÿÿ„¤ÖÕÖÖÕ…†Öý?ÿÕÕÖ«‘¿À¿¿Àÿôÿ®­¿ÀÀ¿L$mnÿÿÐmmnIJmnnmI ?ÿ„¤ÖÕÖÖÕÿôÿ…†ÖÕÕÖ«‘¿Àÿÿп¿À®­¿ÀÀ¿L$mnmmnIJmnnm_WWÕR<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<ÀÿÿþThFEFDC¬«Dÿ<óCEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<ÀÿÿþrT<;<:9Ž�:ÿ?ÿ9;<þThFEFDCÿüó¬«DCEFþ‚ÿÿÿÿ R<;<:9Œ‹:ÿ?ÿ9;<þrT<;<:9ÿüÿŽ�:9;<þThFEÿÿðFDC¬«DCEFþ‚Ï0?ÿÿÿÿÿ R<;<:9ÿüÿŒ‹:9;<þrT<;ÿÿð<:9Ž�:9;<þThFEFDC¬«DCEFþUUUU?ý¿àHMNMIJIJNMÿöÿJKLKKLKLLK ÿÛLMLKMNMü@NNMÿöÿHMNMIJIJNM€ ÿÿJ^]^õö«¬õÿ/ÿö]^©LMNMMNoð!MNNMÿÿHKLKKLKü/ÿLLKJMNMIJø¿IJNMLMLý¿ÀKMNKLNM†?ÿH^]^õöÿü¿­®õö]^©JMNü?àMIJIJNMÿöÿLMLKMNKLNM]UWÕ?ü?𢣤£¡¢¡¢¤£ýÿ¢^]^\[þý\[]^ÿÿÿ¢^]^\[þý\ü<ó[]^€ÿÿÿÿÿðÿ€¢£¤£¡¢¡¢¤£Àÿÿýÿ¢÷ø÷MNTSMÿ?ÿNø÷©ÿ¢^]^\[ÿðóþý\[]^€ÿÿÿÿ€¢ÞÝÞ#$~}#ÿ?ÿ$ÝÞÿ¢£¤£¡¢üÿ¡¢¤£ýÿ¢^]ÿÿÀ^\[þý\[]^€Ï0?ÿÿÿÿÿ€¢÷ø÷MNÿüÿTSMNø÷©ÿ¢£¤ü?𣡢¡¢¤£ýÿ¢^]^\[þý\[]^UUUU?ü?àIJJIJIIJIJÿùÿIHLKNMGHGHÀÿçKJNMNMIÿJIJ!ÿðÿIJJILKIJIJ€ÿÿIöab_`«¬õÿÿöõö©KJNMNMŸüIJIJDÇÿÛKNHGJIKüÿLMNIJJILKøIJIJKJNþðMNMIJIJÿIöab_`ÿü«¬õöõö©IJJü?àILKIJIJÿùÿÀKJNMNMIJIJ]WWÕ?ü?𣤢¡¢¡£¤£¤ÿÿ£][\[\ýþ^]^]€ÿÿÿ£][\[\ýþ^þ00]^]€ÿÿ€£¤¢¡¢¡£¤£¤Àÿÿÿÿ£Nø÷ø÷VUMÿ?ÿNMN©ÿ£][\[\ÿøÀýþ^]^]€ÿý€£$ÝÞÝÞ€#ÿ?ÿ$#$ÿ£¤¢¡¢¡üÿ£¤£¤ÿÿ£][ÿÿà\[\ýþ^]^]€?ÿÿÿ€£Nø÷ø÷ÿüÿVUMNMN©ÿ£¤¢ü?𡢡£¤£¤ÿÿ£][\[\ýþ^]^]UUUU?ÏÌðì) uu&{zø˜{zâ`{z<ò}zyzø˜{zâ`{z‰{z€ó}zyÈâ`z{z‰{z€~{z&}Ï ‰zyz{z€~{z&ø˜{z@A?ËÌËÌÿËÌËÌ ËÿüÌËÌËÌËÌ3ÿðËÌËÌËÌËÌ@A?ÍÎÍÎÿÍÎÍÎ ÍÿüÎÍÎÍÎÍÎ3ÿðÍÎÍÎÍÎÍÎWWW×ÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]WWWÿÿÀ~}~}~}~}~}~}~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3?~}~}|{|{|{|{~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3ÿ~}~}~}~}~ÿðÌ}~}~}~}|{|{|{|{~}~}~}~}ü3ÿ~}~}~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}|{|{|{|{~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~õ}Ýõ< ÿçÅst¿ÑÒÒü?óÌÑÒÑÑÒÑÒÑÒÒÑÐÏÑÒÑÒÐÏÐÏÐÏÑÒÉÊÈÇÈÇÉÊÉÊÉ<ð03ÊÈÇÅst"—˜˜—˜——˜—˜—<Ïÿ˜˜—effefeefüóÀÀefeffeÅst�®­­®­®®­®­®<Ïÿ­­®ÖÕÕÖÕÖÖÕÖÕÖÕÕÖ?óÏÅs?ÿtuvxwxwuvuvuvxwOPPOµ¾žö0ÿ 'ü?óÌ »ËÀ ¼¼ °Â³ð𩼼©© › ž<Ïÿ  íàß ™©  šš �¢?ÿ¿ ýýûÿÿ<Àÿ!–çèçèØ€‚�‚€ýþ€�‚€þ€ý‚)kklkklרkllkkØlk×kbbabbaÄÃbaabbÿüóÃabÄbOçèç貪¨§¨ª©«¬ª©§¨ª®©ª­ª¹KMNMKL—˜KLNMKšLK™KUxvuvxwðïxwuvxíwxîx{åæåæõxumåhu› ?×ÙÚÙרPOרÚÙ×MØ×N׃6556>åæåæT²²±²²±›œ²±±²²œ±²›²×EEFEEF‰ŠEFFEEŒFE‹Cm||{|ª©©©B0¤CD:”3DsHo$4C‡C4G„²!"2"Û°D4e©e4i4¤òCD8t3Dq(K"CeConÒHDCD8t3DsHMBCeCE4b’!"å­»D4e©e4i4¤òCD8t3Dq(K"ù}]] ÏÿÏ®—˜—˜—˜—œ ¼¼¼¼¼B!"!"!"!"!"!"Éêéêéêéêéêéêé3?ÿ9FEFEFEF™ïðïðïðïðïðïðäÄÃÄÃÄÃÄÃÄÃÄÃ3ÿÿAüÌÿ$ÌËÌËÌËÌ,0/0/0/0/0/0/3ÿÿÐÏÐÏÐÏÐÏÐüÏÿÏÐÏ•€€€ÿð3€€€§zyzyzyz¯°¯°¯°¯°¯üÏÿ°¯°õöõöõöõÿð?öõöõöõ#$#$ö}]]ðàÞÞÞðÿ' ÿÿð     3?ÿ1 "!"!"!"!"!"!3ÿÿüÌÿ3 3ÿÿüÏÿÿð3-     üÏÿ ÿð?UUUU†ff@™™ffd@!™™� †ff@!™™�†ff@UUUU ü?Ðÿðÿ@¢¡¡¢¡¢¢¡¢¡ ÿÃý‚��‚�‚‚�‚�0!ÿðÿ@ ÿÃý¢¡¡¢¡¢¢¡¢¡/ÿ‚��‚�‚‚�ôÀ@‚�‡ÿÃý/ÿ¢¡¡¢¡¢¢¡ô¿ü¢¡‚��‚�‚?Ђ�‚�ÿô¿ü¢¡¡¢¡¢?Ðÿ¢¡¢¡‚��‚Õu]U ÿ‚ÿÿ€dceü?ðfefdcdcþýÿðÿÀfeghghfefeþýxwyzyzxwxwþ003‚ÿÿ€ÿðÿÀdcefefdcdcþýfeghghfefeþ?ÿýxwyzyzxwüÀÀxwþ‚ÿÿ€dcefefdcdcþ?ÿýfeghghfeüÿüfeþýxwyzyz?ðxwxwþ‚ÿ?ÿÿ€dcefefdcüÿüdcþýfeghgh?ðÿfefeþýxwyzõ}]U $€ÿ„¤ÖÕÿÿÐÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnm4’„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿?ÿÿL$mnmmnIJmnôÒHnm„¤ÖÕÖÖÕ…†ÖÕÕÖ?ÿÿ«‘¿À¿¿À®­¿ÀôÿÿÀ¿L$mnmmnIÿÐIJmnnm ?ÿÿ„¤ÖÕÖÖÕ…†ÖÕôÿÿÕÖ«‘¿À¿¿À®ÿÐÿ­¿ÀÀ¿L$mnmõ}]]<Àÿ‚ÿÿÿÿ R<;ÿÿð<:9Œ‹:9;<þrT<;<:9Ž�:9;<þThFEFDC¬«DCEFþ<ó‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<þ?ÿÿThFEFDC¬«DCüóÌEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þ?ÿÿrT<;<:9Ž�:9üÿÿ;<þThFEFDC¬ÿðÏ«DCEFþ‚ÿÿÿÿ R<;<:9Œ‹:9üÿÿ;<þrT<;<:9Žÿðÿ�:9;<þThFEFU]]U}zyz{z&ø˜{zâ`{z<ò}zyzø˜{zâ`{z‰€{zóÈ}zyzâ`{z‰€{z~&{zÏ}zyz ‰€{z~&{zø{zÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿËÌËÌËüÌËÌ3ËÌÿðËÌËÌËÌÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿÍÎÍÎÍüÎÍÎ3ÍÎÿðÍÎÍÎÍÎõ}]]ÏÿÏ21212121ÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð3ÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÕu]] ÏÿÏ}|{|{|{|{~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3?ÿ}|{|{|{|{?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÌÿ}~}|{|{|{|{~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ3~}~}~}|{|{|{|{~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ?~}~}~}~}~u×÷÷ðÿÏ&yz{zø{z˜{â`z<òø}zyz{z˜{â`z‰€{zóÈ}zyz{â`z‰€{z~&{zÏ }zyz‰€{z~&{zÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿüËÌËÌËÌËÌ3ÿËÌËÌËÌðËÌÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿüÍÎÍÎÍÎÍÎ3ÿÍÎÍÎÍÎðÍÎ]×÷uÿÿÀÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ?21212121ÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿü21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð3ÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]]×uÿÿ }~}~}~}~}|{|{|{|{~}~}~}ÿÀ?~}~}~}~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~}|{|{|{|{~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~}~}~}~}~}~}~Ìÿü}|{|{|{|{ÿÿü~}~}~}~}~}~}~}~}~}~}~}~Ïÿÿ}~}~}~}~}~}À3ÿ~}|{|{|{|{~}~}~}~}~}~Ïÿÿ}~}~}~}~}~}U×]ßóÌÿð€€€ÿÿÿÿÿÿÿÏ< ÿÿÿÿÿÿÿÿÅs ÿü?tþËÌÌËÌËËÌËóÌÿðÌËÌÌË¿ÀÀ¿À¿¿À¿À¿ÀÀ¿*))*)Ãÿ<ð**)*)*))*Å03ÿðstbRQQRQRRQRQRQQR"!#$#Ãÿ<Ï$"!"!"!#$ÂÁÁÂÁÂÂÁÂÁÂÁÁÂÀÀÏÿÅuvŠáââáâÃÿ<ÏááâáâáââághhghgghghghhgïððïðïïðïðïðÏ?ðïÅstýUVTSTSUVUVUVTSZÛYÚÞ Ðà‡šš‡‡€y ÿü?óÌÿð   šš �¢03ÿð…Ãÿ<Ï ¼¼©© › @�ÿ¨Ãÿ<Ï ÞÞËËÀ½y© xxÌ? �ÿÿßßÞàBßàAÞn+,,+ çèçè�*))*¥ÁÁÂÁÁÂ|{ÁÂÂÁÁ{ÂÁ|ÁÏ**)*('RQ(')*(Q)*R*"çèçèdRRQRRQ¦¥RQQRR£QR¤T~‘‘’‘��ÞÝ��’‘�Ý’‘Þ‘�HJIJJI”“JIIJJ“GH”JóÌÿçèçèI[[\[[\·¸[\\[[¸\[·[ðääãääã78äããää8ãä7ä^%&$ÿÏ0?#šçèçè˜0.-..-^].--..[/0\0¦ªš–$SF)"!C–¶å$ ¤CD8t3DsHM$4!e!4%d’!"2"1$#FVC‡&CVI4¤ôCBRBSFK$4!C!4%bÒH›8t1$SFMBCeCE4bé§å­ ¹I ?(4C‡C4G4„uuu]ð?ÿÄÃ6ÉÊÉÊÉÊÉÿÀ ÏÊÉÊÉÊ빺¹º¹º¹�úùúùúùúùúùð?ÿúùŽ‹Œ‹Œ‹Œ‹ÿÀ ÿŒ‹Œ‹Œ36565ÿÿ365656565.ÚÙÚÙÚÙÚòª©ª©ª©ªÿÀ ÿ©ª©ª©yÒÑÒÑÿÿ3ÒÑÒÑÒÑÒјAÿÿüBABABABABABOWXWXWXWQ+,+,ÿÿ3+,+,+,+,ÂêÿÿüéêéêéêéêéêéN¡¢¡¢¡¢¡¢¡¢¡¢3ÿÓУ¤£¤£¤£SÿÿüTSTSTSTSTSTuuu]ð?ÿ ÿÀ Ï'ð?ÿÿÀ ÿÿÿ3-)ÿÀ ÿÿÿ3ÿÿü1ÿÿ3ÿÿü3ÿó)/ÿÿüUUUU™™€@™™ffd  €!™™�UUUUÐÿð¡‚��‚�‚ÿ@ ‚�‚�ü?Ðÿ𢡡¢¡¢ÿ@ ÿ¢¡¢¡‚��‚�Ãý0‚‚�‚�!ÿðÿ@ ÿ¢¡¡¢¡Ãý/¢¢¡¢¡‚�ÿô�‚�‚‚�‚�À@‡ÿÃý/¢¡ÿô¡¢¡¢¢¡¢¡¿ü?Ђ��‚�‚‚�‚�ÿôUUU]ðÿðeþýxwyzyzÿÀ xwxwþ‚ÿ ÿü?ÿ€dcefefdcdðÿðcþýfeghghÿÀÿfefeþýxwyzyÃÿ0zxwxwþ‚03ÿðÿÿ€dcefefÿÀÿdcdcþýfeghgÃÿ?hfefeþýxwÿüyzyzxwxwþÀÀÏÿ‚ÿÿ€dcefeÃÿ?fdcdcþýfeÿüghghfefeþýxwyzyzxwxwþ?‚ÿÿ€dcÿüefefdcdcþuUU]Ðÿÿ¿L$mnmmnIJÿ@ $mnnm„¤ÖÕÖÖÕ…†ÖÕÕÐÿÿÖ«‘¿À¿¿À®­ÿ@ÿ¿ÀÀ¿L$mnmmÿý4nIJmnnm’ÿÿ„¤ÖÕÖÖÕ…†ÿ@ÿÖÕÕÖ«‘¿À¿¿ÿý?À®­¿ÀÀ¿L$mÿÿônmmnIJmnnmÒHÿ„¤ÖÕÖÖÿý?Õ…†ÖÕÕÖ«‘¿ÿÿôÀ¿¿À®­¿ÀÀ¿L$mnmmnIJmnnmI ?„¤ÖÿÿôÕÖÖÕ…†ÖÕÕÖuuU]ðÿÿ<þThFEFDC¬«ÿÀ&{zø˜{zâ{z`<}zòø˜yz{zâ{z`{z‰€óÈâ}zyz{z`{z‰€~&{zÏ }zyz{z‰€ÏËÌËÿÀÌËÌËÌË?ÿÌËÌËÌËÌ ÿüËÌËÌËÌËÌ3ÿðËÌËÌËÌËÌÏÍÎÍÿÀÎÍÎÍÎÍ?ÿÎÍÎÍÎÍÎ ÿüÍÎÍÎÍÎÍÎ3ÿðÍÎÍÎÍÎÍÎuuu]ð?ÿÿÿÿÿÿÿÿÿÿÿÀÏÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3ÿó21212121ÿÿÿüÿÿÿÿÿÿÿÿÿÿÿuuu]À?ÿ~}~}~}~}~ÿ Ï}~}~}|{|{|{|{~}~}~}~}~}À?ÿ~}~}~}~}~ÿ ÿ}~}~}~}~}ÿü3~}~}~}~}|{|{|{|{~}~}~}~ÿ ÿ}~}~}~}~}ÿü3~}~}~}~}~ÿÿð}~}~}~}~}~}|{|{|{|{~}~}ÿü3~}~}~}~}~ÿÿð}~}~}~}~}~}~}~}~}~}~}~3ÿó}|{|{|{|{~ÿÿð}~}~}~}~}~ß×UwabbabaabababbahgijijhghgÏ< hgijÅstêGHFEFEGHGHGHFE¿ÀÀ¿À¿¿À¿ÀÏ3ÿÿÀÀ¿€€€ÿ<ð0€€€€Åst-*))*)**)*)Ï2Â*))*fÏÿ¬«­®­®üóÀ¬«¬«¬«­®ÅÀÏÿÃstQZYWXWXZYZYZYWX’‘����üó?’‘’‘’‘��GHJIJIGHGHGHJIÃ?ÿstýñòòñòñÛkijð𩚚©©Ï0 ²ðÿ »ËÀ ¼¼ °À#ÿðÿ“Ï3ÿÃÿÿððËššËËÀ¹ @�ÿÚÿÿððíÞÞííàÝ ™©  šš � ?ÿ}ßÿÿ¿þ­­®­­®¤£­®®­­£®­¤­î687865nm6578ÿÿ<À6m56n8çèçèZž Ÿ ž�ÃÄž�Ÿ žÂ�žÁž‘USTSUV©ªUVTSUªVU©S9rrqrrqäãrqqrrãqräroçèçèSJHGHJI”“JIGHJ‘IJ’Jž—™š™—˜ÐÏ—˜š™—͘—Η¦FDCDFEŒ‹FECDF‰EFŠFåæåæ*3421ååæåçè21çèæåç1æå2åS !"Rðÿì¼íåæåæÇ–šªªÒCD6T3Dq»¦Ÿ– ¶ìöCD:”3Du'hoD4C‡C4G4„²!"RZÛðD4e©e42i4¤ô!$8t1$SFK"CeCEb1 ôCD8t%3DsHM$4!e!4%d’!"2"1$#!FVC*Þ×ÕÕðeeeeeeô"Ø×Ø×Ø×Ø×Ø×ØÀ Ïÿ×ÛÏÐÏÐÏÐÏäÆÅÆÅÆÅÆÅÆÅÆÅºˆ‡ˆ‡ˆ‡ˆ‡ˆ‡ˆÀ ÿÿ‡cYZYZYZYZÿ3?YZYZ�ª©ª©ª©ªAlklklklklklÀ ÿÿk� Ÿ Ÿ Ÿ Ÿÿ3ÿ Ÿ Ÿ|yzyzyÿüÌzyzyzyz stststsFQRQRQRQRÿ3ÿQRQR-hghghÿüÏghghghgÑõöÿÿðõöõöõöõöõö<;<;<;&{zø˜{zâ`{z<ò}zyzø˜{zâ`{z‰{z€ó}zyÈâ`z{z‰{z€~{z&}Ï ‰zyz{zPPP@ÏÿËÌËÌËÌËÀÌ?ËÌËÌÿËÌËÌ ËÿüÌËÌËÌËÌ3ÿðËÌËÌËÌËÌPPP@ÏÿÍÎÍÎÍÎÍÀÎ?ÍÎÍÎÿÍÎÍÎ ÍÿüÎÍÎÍÎÍÎ3ÿðÍÎÍÎÍÎÍÎ×ÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÏÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿß×ÕÕ}~}~}~}~}~}~}~}~}~}~}~}~ Ïÿ}|{|{|{|{~}~}~}~}~}~}~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3?~}~}|{|{|{|{~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3ÿ~}~}~}~}~ÿðÌ}~}~}~}|{|{|{|{~}~}~}~}ü3ÿ~}~}~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}|{|{|{|{~}~}~u}_wüó?ñòñòñòòñÝÞÞü?óÌÝÞÝÝÞÝÞÝÞÞÝ< ÿÅstá122ü?óÌ12112121221$##$#$$#$#$##$‘’”“”“‘’‘’‘<ð03’”“Åst/<;=>=><;<;<;=>|{}~}~|{|{|<Ïÿ{}~WXVUVUWXüóÀÀWXWXVUÅuvElkijijlklkl<Ïÿkij¢¡Ÿ Ÿ ¢¡¢¡¢¡Ÿ ?@@?@??óÏ?@?@?@@?Åsi©««üó? ÿðÞÞ ð𩚚©© ™8 ÿ ¦ü?óÌíÞÞííàÝ ™©  šš �¢…ßÿðÞÞ ðð‡šš‡‡€y ®ððíÞÞííàÝ ™©  šš �¢_¿ÿ  ‰ÇÉÊÉÇÈpoÇÈÊÉÇmÈÇnǹ&$#$&%LK&%#$&I%&ÿ<ÀÿJ&(åæåæÉ756556mn56655l87k7jýýþýýþýþþýýþýþfBýZ<órçèçè => > =éëìëëì('ëììëë'êé(ëC   ÞïÞþÿððXçèçè¹)**) ããäãáâ:9áâäãá9äã:ã]&%%&NåæåªZjj‡CVI4¤ôCBRBSFK$4!C!4%b1 ôC+D8t3DsHMBCeCE4îš~Z Û°2D4C‡C4G4„ÒCD6T3Dq()"!C!knÀôCD8t3D-sHM$4!e!4%d’!"å­»U}_WÿüÏ¿À¿À¿À¿l¹ºÿÿ𹺹º¹º¹º¹ºM&ff@ ÏÿÏ€À¿À¿À¿ÀkÜÛÿÿðÜÛÜÛÜÛÜÛÜÛ¥ABABABABABABÊNMNMNMNMNMNM3?ÿµ%&%&%&%µ{|{|{|{|{|{|EFEFEFEFEFEFE3ÿÿåæåæåæåæåæüÌÿåæåR*)*)*)*5656565656563ÿÿ~}~}~}~}~üÏÿ}~}ÃÛÜÛÜÛÜÿð3ÛÜÛÜÛÜJIu}_WÿüÏÿÿð ÏÿÏ+ ÿÿð3?ÿ+73ÿÿ üÌÿ)*3ÿÿüÏÿ ÿð3+UUUU€™™†ff@™™ffd@ffd ffd!™™�†ff@UUUUô¿¢¡¡ü?Т¡¢¢¡¢¡ÿðÿ@‚��‚�‚‚�‚� ü?Ðÿðÿ@¢¡¡¢¡¢¢¡¢¡ ÿÃý‚��‚�‚‚�‚�0!ÿðÿ@ ÿÃý¢¡¡¢¡¢¢¡¢¡/ÿ‚��‚�‚‚�ôÀ@‚�‡ÿÃý/ÿ¢¡¡¢¡¢¢¡ô¿ü¢¡‚��‚�‚?Ђ�‚�Uu]Wüÿdcdcþýfegü?ðhghfefeþýÿðÿÀxwyzyzxwxwþ ÿ‚ÿÿ€dceü?ðfefdcdcþýÿðÿÀfeghghfefeþýxwyzyzxwxwþ003‚ÿÿ€ÿðÿÀdcefefdcdcþýfeghghfefeþ?ÿýxwyzyzxwüÀÀxwþ‚ÿÿ€dcefefdcdcþ?ÿýfeghghfeüÿüfeþýxwyzyz?ðxwxwþ‚ÿu}_Wÿôÿ…†ÖÕÕÖ«‘¿Àÿÿп¿À®­¿ÀÀ¿L$mnmmnIJmnnm $€ÿ„¤ÖÕÿÿÐÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnm4’„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿?ÿÿL$mnmmnIJmnôÒHnm„¤ÖÕÖÖÕ…†ÖÕÕÖ?ÿÿ«‘¿À¿¿À®­¿ÀôÿÿÀ¿L$mnmmnIÿÐIJmnnmu}_WÿüÿŒ‹:9;<þrT<;ÿÿð<:9Ž�:9;<þThFEFDC¬«DCEFþ<Àÿ‚ÿÿÿÿ R<;ÿÿð<:9Œ‹:9;<þrT<;<:9Ž�:9;<þThFEFDC¬«DCEFþ<ó‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<þ?ÿÿThFEFDC¬«DCüóÌEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þ?ÿÿrT<;<:9Ž�:9üÿÿ;<þThFEFDC¬ÿðÏ«DCEFþ‚ÿÿÿUUUUoø¿IJNMJKLý¿ÀKKLKLLKÿöÿLMLKMNKLNM@ÿHMNý¿àMIJKLNMÿöÿJKLKKLKLLK ÿÃþLONMKLIJPO@ÿöÿ€HMNMIJIJNM ÿÃþJMNMIJIJNM/ÿÿL\[\÷ø«¬õöü![\©ÿÛþHMNMIJIJNM/ÿoJKLKKLKLð¿ýLKLMLKMN¿ÀÏMNNMu}_Wÿüÿ@?abäã½ÿ¢ÞÝÿÿðÞ#$~}#$ÝÞÿ¢^]^\[þý\[]^<Àÿ€ÿÿÿÿ€¢£¤ü?𣡢¡¢¤£ýÿ¢ÞÝÞ#$~}#$ÝÞÿ¢£¤£¡¢¡¢¤£ý<ó€ÿÿÿÿ€¢ãäãab@?abäã½ÿ¢£¤£¡¢¡¢¤£ý?ÿÿÿ¢÷ø÷MNTSMNüóÌø÷©€ÿÿÿÿ€¢ãäãab@?abäã½?ÿÿÿ¢ÞÝÞ#$~}#$üÿÿÝÞÿ¢^]^\[þÿÀÏý\[]^~ýþýUUUUøIJIJILHý¿ÀGHGKLKLÿùÿÀKJNMNMIJIJKLJü?àILKIJKLÿöÿILHGJIKLKLÿÃþKLLKLKKLKL1ÿðÿ€IJJIJIIJIJÿÃþKLJILKIJKLÿÿKø_`ab«¬÷øüD÷ø©ÇÿÃþIJJIJIIJIJÿoILHGHGKLðþKLKJNMLKðIJIJu}_Wÿüÿ@?cdcd¿ÿ£$ÝÿÿðÞÝÞ€#$#$ÿ£][\[\ýþ^]^] ÿ€ÿÿ€£¤¢ü?𡢡£¤£¤ÿÿ£$ÝÞÝÞ€#$#$ÿ£¤¢¡¢¡£¤£¤ÿ013€ÿý€£dâáâá@?cdcd¿ÿ£¤¢¡¢¡£¤£¤ÿ?ÿÿÿ£Nø÷ø÷VUMNüÀÄMN©€ÿý€£dâáâá@?cdcd¿?ÿÿÿ£$ÝÞÝÞ€#$üÿÿ#$ÿ£][\[\ýÿàþ^]^]€ÿUUUWó<ÿ}zyz{z&ø˜{zâ`{z<ò}zyzø˜{zâ`{z‰€{zóÈ}zyzâ`{z‰€{z~&{zÏ}zyz@@@AÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿËÌËÌËüÌËÌ3ËÌ@@@AÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿÍÎÍÎÍüÎÍÎ3ÍÎu}_WÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÿÏ21212121ÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð3ÿÿÿÿÿÿ21Uu]WÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~ ÏÿÏ}|{|{|{|{~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3?ÿ}|{|{|{|{?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÌÿ}~}|{|{|{|{~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ3~}~}~}|{}�õý?ÿtõ‚��‚�‚‚�‚�‚��‚ãääãäããäãäãääã¾½½¾ðÿÏ<½¾¾½¾½¾½½¾Å ÿüstΖ••–•––•–•–••–ðÿÏ3 Êš� ËË  ð03ÿ Åst·ÏÐÒÑðÿÏ3ÒÑÏÐÏÐÏÐÒÑYZ\[\[YZYZYZ\[åæèçèçåæåæåóÀÀÏæèçÅst§baababbababaabš™—˜—˜š™š™š™—˜CDDCDCCDC©�¥­?ÿ…ÿðÿÛËÀÞÞ °À©xx©© — ÿü¨ðÿÏ3 »ËÀ ¼¼ °à#ÿ �ðÿÏ3ÛËÀÞÞ °À©xx©© ó€@� ðíÿÿííàß ™©  šÿýýýæR}{|{}~ûü}~|{}ú~}ù}—ÊÊÉÊÈÇmnÈÇÉÊÈnÉÊmʶ##$#%&IJ%&$#%J$#I#¼å<ÀÿÿæåæüÌÎÍÎÎÍcdÎÍÍÎÎdËÌcÎÄ//0//0]^/00//`0/_-·ŒŠ‰ŠŒ‹éꌋ‰ŠŒê‹ŒéüóÿŠ¡çèçè&yz{zø{z˜{â`z<òø}zyz{z˜{â`z‰€{zóÈ}zyz{â`z‰€{z~&{zÿðËÌËÌËÌÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿüËÌËÌËÌËÌÿðÍÎÍÎÍÎÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿüÍÎÍÎÍÎÍÎW×õ}212121ÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ?21212121ÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿü21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWW×u|{|{|{~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ?~}~}~}~}~ÿÿ }~}~}~}~}|{|{|{|{~}~}~}ÿÀ?~}~}~}~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~}|{|{|{|{~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~}~}~}~}~}~}~Ìÿü}|{|{|{|{ÿÿü~}~}~}~}~}~}~}~}~}~}~}~Ïÿÿ}~}~}~}~}~}}óÏDCDDCÅstNMOPOPNMNMNMOP !"!"  óÌÿð !"À¿ÁÂÁÂÿÏ< À¿À¿À¿ÁÂÅs t¾š � ¨ÿððËššËËÀ¹ ÿ#$Pçèçè%PRQRRQ¤£RQQRR£OP¤R€‘‘’‘‘’ÜÛ‘’’‘‘Û’‘Ü‘’JHGHJI”“JIGHJ‘IJ’JçèçÀè©­»I D4C‡C4G/4„ÒCD6T3Dq()"!C–¶ì]ð3ÿçèDCDCDCD�¢¡¢¡¢¡¢¡¢¡¢¡Ïÿÿ}ÌËÌËÌËÌËÌËð?ÿÌË–GHGHGHGÿÀ ÏHGHGHIYZYÿZYZY]ð3ÿ+&      Ïÿÿð?ÿÿÀ Ï/ÿU@!™™�†ff@@UÐ�ÿô¿ü?¢¡¡¢¡¢¢¡¢Ðÿð¡‚��‚�‚ÿ@ ‚�‚�]ðwþ‚ÿÿ€dcefefdcdcþÿü?ýfeghghfefðÿðeþýxwyzyzÿÀ xwxwþ‚ÿ ÿ}ÐI m„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀÐÿÿ¿L$mnmmnIJÿ@ $mnnm€}ðÏ0Fþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;ðÿÿ<þThFEFDC¬«ÿÀ€¿} Ð                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   D07_railD07_railöh^±��ÃχÄEIÂ$?ŒÃÕ,†ÄøÄøöh^ÂÕ,†D±��ÃEIÂχD$?ŒÃô Äì  ÿÿÿ)8(¨+½'b+±)ï'7+:Î'½)`'³+ë)9':(¦)½)b)µ'í'9):*¤'¿)b'µ)ë)9':(¦)¿)d)µ'í'9)8Ð)¿'b'µ)ë+7'6*¦)½)d)µ'ï)5+:Î)½'b+±)ï'9):*¤'½)`'³+ë)9':(¦)½+d)µ'í'9):Î'Á'b'µ)ë)9'6,¦)¿)d)µ'í+5)8(¨+½'b)³)ï'7+:*¤'½)b'ÿµ'ï)ÿÿÿ"# $#"$$!$$+$%$"$!"$#$%$$$#$$#$%$$$#$$#$%$$$#$$+"#$$$#$$# $#$$$#$$-$#$$$#$$# $#$$"!$$# $#$$$!$$-$#$$$!$$# $#$$$!$"# $#"$$!$$! $%$"ÿ$!"ÿÿÿhÈe}d°fbf¯dˆfÇdÊåf°ddf±h†fÉfÊef®fdf¯dˆfÉfÈcf®fdf±fˆdÇfÈe}f®fdf±f†fÇfÈãf®fdd¯f†fÇdÊe}f®fbf¯f†fÉfÊãf®fbh±f†fÉfÊe}f®fdd¯f†fÉfÊe}f®fbf¯f†fÉfÈáf®ddf¯f†dÇfÊg{d®fdf¯d†hÉfÈcf®fdd¯h†dÇfÈe}f®fbfÿ­d†fýÿý7¿ÿò$#$%$#$#$#$$!$%&%$#$#$$%$#$%$#$#&$#&%$%$#$!$&#$%$%&%$!$$!$%$#$%&#$$#$%&%$#$#$$#$#$%$#$#&$#&%$%$#$!$&{ÿÿ-#$%$%&%$!$$!$%$#$%&#$$#$%&%$#$#$$%$#$%$#$#&$#$#$%$ÿ#$!$ªªª÷øøøø9!*oVøøøöø÷7!*øøøøøõ7!(öøööø÷ö5*7ööøoxøö*9øøø÷öøö*9ø�Vøöøö,9,ø÷øøøøö9!*÷øøøø�9!*Vöøööø÷7,øöøøø÷ø9*9øøøô÷öø!*9ÿ,ÿÿý!$# #"#&#(##$# #"#&#(##$# #"#&#(##"!#"#&#(!#$##"#&#*##$##"#&#*##$##"#&#*##$##"#&#*##$##"#&#*##sÿÿ-$##"#&#*##$#! #&!(##$# # #(#(##$# # #(#(##$# # !ÿ&#(#UUU ÌÌìDÆ¶àŸ«<ÌÌ̬DÆ¶àŸ«¬ÌÌÌÌDÆ¶àŸ«¬DÌÌÌÌÆ¶àŸ«¬DÆÌÃ<Ì¶àŸ«¬DƶÌÌÌÌàŸ«¬DƶàÃ<ÌÌŸ«¬DƶàŸÌÌÌÌ«¬DÆ¶àŸ«ÌÌÌ3¬DÆ¶àŸ«¬ÌÌÌÌDÆ¶àŸ«¬DÌÌÌÌÆ¶àŸ«¬DÆÌÌÌÌ¶àŸ«¬DƶÌàŸUUU ÌÌÃ/a‡}0<ÌÌÌ/a‡}0/ÌÌÌÌa‡}0/aÌÌÌ̇}0/aÌÃ<̇}0/aÌÌÌ̇}0/a‡Ã<ÌÌ}0/a‡}ÌÌÌÌ0/a‡}0ÌÌÌ3/a‡}0/ÌÌÌÌa‡}0/aÌÌÌ̇}0/aÌÌÌ̇}0/ȧ}UUU ÌÌÃMn ÐèÅN<ÌÌÌMn ÐèÅNMÌÌÌÌn ÐèÅNMnÌÌÌÌ ÐèÅNMn ÌÃ<ÌÐèÅNMn ÐÌÌÌÌèÅNMn ÐèÃ<ÌÌÅNMn ÐèÅÌÌÌÌNMn ÐèÅNÌÌÌ3Mn ÐèÅNMÌÌÌÌn ÐèÅNMnÌÌÌÌ ÐèÅNMn ÌÌÌÌÐèÅNMn ÐÌèÅUUU ÌÌõ÷~Z¶<ÌÌ̵÷~Z¶µÌÌÌÌ÷~Z¶µ÷ÌÌÌÌ~Z¶µ÷~ÌÃ<ÌZ¶µ÷~ZÌÌÌ̶µ÷~ZÃ<Ì̶µ÷~ZÌÌÌ̶µ÷~Z¶ÌÌÌ3µ÷~Z¶µÌÌÌÌ÷~Z¶µ÷ÌÌÌÌ~Z¶µ÷~ÌÌÌÌZ¶µ÷~ZÌýÿÿ ÿüãEÝPìºÜFMÕ @ ý¢ÞNOÉ, ÙžÜPGÅ$Û´ÞH?Í*÷´â@ QÅ, é ”âR aÁ.Ë”Úb SÍBá#¸ÔTOßPú¸ÖP _ÛNý¨Ü`aÕNõ ²Øb OÝNö²ØPSÙ LþœÚT[ËDã Í”ÖUUU ÌÌijiS•ƒ<ÌÌÌ„³iS•ƒ„ÍÌÌ̳i S•ƒ„³ÌÌÌÎk S•ƒ„³kÌÃ<ÜS•ƒ„³i ÌÌÌÌS•ƒ„³k SÃ<ìÌ•ƒ„³kS•ÌÌÌ̃„³iS•ƒÌÌÌ3„³iS•ƒ„ÌÌÌ̳iS•ƒ„³ÌÌÌÌiS•ƒ„³iÌÌÌÌS•ƒ„³iÌS•ýßìÿóÏEKi´<Ð ÝCK] ¬:Þ åCQK°2æ Ï EWK À2 Ð ÁQU[Â:Âé=QU´<êö=WC² 4õë5U Mº*ÏÌÌÿìã7Ka´2äþ?K] ªBýú7OWª Dùå7ìÿßíKa <æë?K_ œ :ì û5MOÏ 2UUU ÌÌà ï/„b: <ÌÌÌ ï/„b: ÌÌÌÌï/„b: ïÌÌÌÌ/„b: ï/ÌÃ<Ì„b: í/„ÍÌÌÌb:í/„bÃ<ÌÌ8í/„b8ÌÌÌÌí/„b8ÌÌÌ3í/„b8ÌÌÌÌí/„b8íÌÌÌÌ/„b8í/ÌÌÌÌ„b8í/„Ìb8UUU ÌÌÃìvu9t9ë<ÌÌÌìvu9t9ëìÌÌÌÌvu9t9ëìvÌÌÌÌu9t9ëìvuÌÃ<Ì9t9ëìvu9ÌÌÌÌt9ëìvu9tÃ<ÌÌ9ëìvu9t9ÌÌÌÌëìvu9t9ëÌÌÌ3ìvu9t9ëìÌÌÌÌvu9t9ëìvÌÌÌÌu9t9ëìvuÌÌÌÌ9t9ëìvu9Ìt9UUU ÌÌꫬ«©©©<ÌÌ̪«¬«©©©ªÌÌÌÌ«¬«©©©ª«ÌÌÌ̬«©©©ª«¬ÌÃ<Ì«©©©ª«¬«ÌÌÌÌ©©©ª«¬«©Ã<ÌÌ©©ª«¬«©©ÌÌÌÌ©ª«¬«©©©ÌÌÌ3ª«¬«©©©ªÌÌÌÌ«¬«©©©ª«ÌÌÌ̬«©©©ª«¬ÌÌÌÌ«©©©ª«¬«Ì©©UUU ÌÌÏS«¬TVVÿT<ÌÌÌS«¬TVV«SÌÌÌÌ«¬TVV«S«ÌÌÌ̬TVV«S«¬ÌÏ<ÌTVVÿTS«¬TÌÌÌÌVV«S«¬TVÏ<ÌÌVÿTS«¬TVVÌÌÌÌ«S«¬TVV«ÌÌÌóS«¬TVVÿTSÌÌÌÌ«¬TVV«S«ÌÌÌ̬TVV«S«¬ÌÌÌÌTVV«S«¬TÌVVUUU È{|}|<€L{|{ÈÌ|{|€LÈ{|<€}|{|LÈ{|<€}|{|LÈ{|Ì€ó{|}|{ÈÌ|{|€LÈ{|Ì€{|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~ÿ}~}~ÿÿŠ¢Á�p¤k$Š«*>€¿ýÐ                                                         D00_liftD00_liftÍÌÂ1ÒÁ6­ÝÂÃS AŒ+Aš™>   hÜhÍÌš™¾1ÒÁÃS A6­ÝBŒ+AèÜà UÕw3óÀðïðïðï33óóðïðïcðïðïðÀ33ïðïðïóóÀ#cdcdcd33óócdcdòEFEFEÀ33FEFEFóóóÌÌ—˜——˜—ÏИ——˜—ÏÐÇÒfe½d ÊÈdÀedàßàßà 3?ßàßàßmÇÒfe½d ÊÈdÀedàßóÀ3àßàßàß3ó ÀàßAâáâáó ÀÌâáâáVUUC033á’v@!!óóÀsvuvuvu33³óvuvupopopÀ33opopoÒ@!ÀæÐB�?0)*)*) 3=*)*)*ä(ó)*óÀ3)*)*)*3@)*á@'UUuÀóó�ž�ž�ž�Ì Àž�ž�óóÌ ž�ž�ž�ž�žÀÀóó$åæåæåæåÌ ÀÀæåæRvóóÌ uvuvuvuvuóóÀÌ¡{|{|{|Ð|óÀÏÿ{|{|ƒöP�RQRÏü ö¹OPOlÃÄÃ?<ÀÌÄÃÄÃÄÃÄ2ôR�RQRö¹QRQnÀóóÌÅÆÅÆÅÆÅÆÅÆ*„£‚ƒ„!� „£‚ƒ„!�PUÀGÀ@F€ &@Œ´@’a„Ìó3ÙÚÙÚÙÚÙ ó3ÚÙÚÙÚÙUUu„„„€„„„€ÌÌÌÌÅ('('('(ÀÌÌ'×›œ›ÌÌÀœ›œ›œÌÌÌóPœ›œ›œ›œ› Ìó?œ›œÝ²±²±²ÿüÌ̱²±²±²ŠìëìëÌÀ ìëìë‡+,+,+,+,+,+ŠìÌÌÌëìëìëìëP¯L²PN°K°NžM�¯L²PN°K°NžM•U¶ ÌÌÌ$#$#$#$À Ì#$#$ÌÌÀ#$#$#ð@0@0@0@"ÀÈHHH@ÌÌÌó¦"!"!"!"! Ìó?"!";àßàßàÿÿÿ0€p€pßàßàßàÌÀ DÜÛÜÛÜÛÜÛÜÛÜP`P`P`ÀÌó3ýüûüûüû ó3üûüûüûUUU@À@@€@À@@€@À@@€@À@@ÀÀÀÀG”IIÀÀŒ ”IK”ÌÌKL“J  ÀÌÌÀM˜MN—L€À€@ÀÀÀ¨+{ÀÀÀ¨+{UUUÀ€þÀÀÀÿþýÀ€ÀÀþÿþÀÀ€ýþÀÀÀÿþýÀ€ÀÀþÿþÀÀÀÀ^¹¡£ÀÀÌ ¹¡ÿ ¾ÌÌ  Ÿ½`ÿ ýþÀÌÌÀ ¾ Ÿ½`À@ÀÿýÀÀÀÀþ(ˆ¯ÀÀÀ(ˆ¯UUUÀ€@ÀÀ€@ÀÀ€@ÀÀ€@ÀÀÀINMÀÌÀN½»Ì ¢  ±Ì ÀÀ·¨¢À@@ÀÀÀuã£ÀÀÀwã£UUU@ÀýÀ€@þÀÀýþ€@ÀýÀ€@þÀÀýþÀÀÀ¡¤£ÀÌÀ¤ÿ£¹Ì  ¡£]ÿ þýÌ ÀÀ£¹¡£]€ÀÿÀÀÀÀþRÖ%ÀÀÀ¯Ö%UUUÀ@@À@@À@@À@@ÀÀÀNMNÀŒÀML—Ì LLIÌ ÀÀL—LLIÀ€€ÀÀÀjÅZÀÀÀlÅZUUU€ÀÿÀ€þÀÀÿþ€ÀÿÀ€þÀÀÿþÀÀÀ¤£¤ÀÌÀ£ý¢ºÌ  ¤¢^ý ÿÿÌ ÀÀ¢º¤¢^@ÀÀýÿÀÀÀ.êÀÀÀè.êUUU@À@@À@@À@@À@ÀÀÀÀI”IIÀÀŒ ”IL›ÌÌLKœM ÀÌÌÀL›LKœM€À€ÀÀÀ� µÀÀÀÀ µUUUÀ€þÀÿÀ€ÀþÿÀ€þÀÿÀ€ÀþÿÀÀÀÀ£¹¡£ÀÀÌ ¹¡ÿ¢ºÌÌ ¢¡¹^ÿ ýÿÀÌÌÀ¢º¢¡¹^À@ÀÿýÀÀk¤ÀÀ£¤P3óóÌëìë�ž�uvžìóóÌÌë�ž�uvŸ*ëìÌÀvëv )ÌÌÌ*ëìvëv3ÌÌëìvžìvóÌÌuëìvžìvP3ÒsŒ©ª©¬«ªÒsÌÌ©¬«°©ªÌÀ«©© ¯ÌḬ̀©ª«©©3ÈÌ©ª«ª«óÈ̬©ª«ª«U33ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3óóÌTSTÿÿÿ¬«ÿSóó ÌTÿÿÿ¬«¬T¬ÌÀTVV «ÌÌ̬T¬TVV3ÌÌTS«ÿS«óÌ̬TS«ÿS«UUU3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3À! |{|{À!LÀ|y|�33}~}~}~333<}~}~}~}zÌóy|}~}3333~}~}~}~}33À„~}|{|óÀ„{|{|UUU ÌÌÌÀ¿À¿À¿ÀÌÌÌÌ¿À¿À¿À¿ÀÌÌÌÌ¿À¿À¿À¿ÀÌÌÌÌ¿À¿À¿À¿ÀÌÌÌÌ¿À¿À@ÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌóÿÿÿÿÿÿÿÿÿ Ìó?ÿÿÿÿÿÿÿÿÿÿðÌÌÿÿÿÿÿÿÀ¿À¿ÌÌÌÏÀ¿À¿À¿À@ÿ3ÿÿ ÿÿÿÿÿÿÿÿÿÿÀÌÌÌÌ¿À¿À¿À¿ÀÌ ó3¿À@?@?@? ó3@?@?@?ÌÌ{|{|ÌÌÌÌ{|{|{|{|€@a!a!§ȵ€ÿ€>€¿mÐ              D08_accent D08_accent©¤_Á)ŘÃÿe�Äíž²À.'˜ÃQêŽÄ$$©¤_ÁQêŽD)ŘÃíž²Àÿe�D.'˜Ã–Ž )I'3= õöõöõöõS¨S¨S¨Sÿÿ¨STTS&¤%¸(¢%º"¨'¶(¢!ÿÿº"¤'�§&¤(N'›(N'�*N'�(P)ÿÿ›(N'MM(Nï*É¡Óð¶Ò�Ôýx@ÑÿÿAÚwhpæq7ì:{„&9²i%ÿÿ¸0W0  ÀÀÀ§m`ÀÀŽÀÀÀÀÀ ÀÀÀÂú2ÀÀº†ÀÀÀ$ÀÀ ÀÀ _ÀÀÇÈÀÀÀÀÀ ÀÀÀHñÀÀ -@ÀÀÀÀ ÌÌÌÿÿÿÿÿÿÿÌ3ÿÿÿÿ ÌÌÌ}~}~}~}Ì3~}~}3333ÿÿÿÿÿÿÿÿ3 ÿÿÿ3333}~}~}~}~3 }~}*šÄÈI“å)ð!MÄÞ€?€?€¿)Ð D08_banner D08_banner33[ÁІ«Ã"�›Ä33[Aj\¥Ã ˜ÄT8T33[Á ˜DІ«Ã33[A"�›Dj\¥Ãí8å U3ó3󺹺¹º¸·¸·¸3ó3󺹺¹º¸·¸·¸3óó󺹺¹º2Ø×Ø×ØóóNØ×Ø×ØU3ó3óPOPOPPOPOP3ó3óRQRQRPOPOP3óóóPOPOP8,+,+,óóY,+,+,UÀÀÀ{|{ÀÀÀÀ|{|{ÀÀ€À|{ÛÀÀ±ÝP€À«U ÌÌÌñòñòñòñÌÌÌÌòñòñòñòñÌÌÌÌòñòñå)*)ÌÌ¥)*)U ÌÌÌRQRQRQRÌÌÌÌQRQRQRQRÌÌÌÌQRQRƒ0/0ÌÌb212UÀÀÀÀÀÀÀÀÀÀÀÀÀU@€@€@€@€@€@€@UÀÀÀÀÀÀÀÀÀÀÀÀÀU€@€@€@€@€@€@€U33ÿÿÿÿ33ÿÿÿÿ33ÿÿÿÿ33ÿÿÿÿ33À~}~}~ó3À}~}~}~ó3À}~}~}~U Ì Ì€€€€ÌÌ Ìÿ€€€€ÌÌÌÌÿ€€€€ Ì€€=ÿ€ÿ?€¿YÐD08_liftD08_liftk+\Á¾9­Ãƒ›Äk+\AžO¥ÃÅ˜Ä   xDxk+\ÁŘD¾9­Ãk+\Aƒ›DžO¥ÃpDh UÀÌ RQ·R óÌóQ7ÞÝAßàBAóÌóóèÞÝAßàBA²àßÌóóÌAÝÞBAèàßAÝóÞBAUÀÌ e Ò@!4Ò@!À.YHaÀH.a¥3Ì==+«©ª©©ªª©©ªª©©«¬«¬«ä:87887rq87788o9:p:ºÏ0?ÿWXWXÃèèçèèç/0èççèè0çè/è ííîíëì&%ëìîíë%îí&íl¸¶µ¶¸·‘’¸·µ¶¸’·¸ªªªª ‡ŠŸú—Šù¯¯†V‡ÿ‡V!�xèöCF\¶SF•ji!̼Ëÿ˼>ϼüø©ªŸú)™ª÷�¯fVeíeVkVȱ úËÌ¿üw»Ìù¯Ï¨x©)ÿ©x¯šúöef\¶Ufµli!¨x©‚ÿ©x¯šøøeh~Øuh׎oD4e©e4i4_W—×      �����������À ÿÿ�ºÊÉÊÉÊÉÊÉÿ3?ÊÉÊÉ¢ÁÂÁÂÁÂÁ†>=>=>=>=>=>À ÿÿ=$ÜÛÜÛÜÛÜÛÿ3ÿÜÛÜÛ�qrqrqÿüÌrqrqrqr3 ]|{|{|{|{ÿ3ÿ|{|{Ý�����ÿüÏ�������œ šššššfßàßàßà߈ÿüÀW¶òñòñòñòñòñòñ_WW×878787878787 ,+,+,+,+,+,À ÿÿ+21212121ÿ3?2121Y"!"!"!"AFEFEFEFEFEFÀ ÿÿE(:9:9:9:9ÿ3ÿ:9:9"@?@?@ÿüÌ?@?@?@?m('('('(8DCDCDCDCÿ3ÿDCDC&87878ÿüÏ7878787"<;ÿÿð<;<;<;<;<;k&%&%&%&y21212ÿüÏ1212121*)ÿÿð*)*)*)*)*).-.-.-.-.-.-UUUUff@™™ffd@ !™™�€!™™�†ff@™™UUUU?ü?Ðÿðÿ¢¡¡¢¡¢¢¡¢¡@ ÿÂ��‚�‚‚ý0�‚�!ÿðÿ@ ÿâ¡¡¢¡¢¢ý/ÿ¡¢¡‚��‚�‚ôÀ‚�‚�@‡ÿÃý/ÿ¢¡¡¢¡¢ô¿¢¡¢¡‚��ü?Ђ�‚‚�‚�ÿô¿¢¡¡ü?Т¡¢¢¡¢¡ÿðÿ@‚��‚�‚‚�‚�UWUU?ü?ðdcefefdcdcþÿðÿýfeghghfefeÀÿÃþýxwyzyzxÿ00wxwþ‚ÿÿ€dcefefdcdcÀÿÃþýfeghghfÿ?ÿefeþýxwyzyzüÀxwxwþ‚ÀÏÿÃÿÿ€dcefefdÿ?ÿcdcþýfeghghüÿfefeþýxwyü?ðzyzxwxwþ‚?ÿÿÿ€dcefefüÿdcdcþýfegü?ðhghfefeþýÿðÿÀxwyzyzxwxwþ_WUÕ¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿@ÿÿL$mnmmnIJmý4’nnm„¤ÖÕÖÖÕ…†ÖÕÕÖ@ÿÿ«‘¿À¿¿À®­¿ý?ÿÀÀ¿L$mnmmnÿôÒIJmnnmHÿÿ„¤ÖÕÖÖÕ…†Öý?ÿÕÕÖ«‘¿À¿¿Àÿôÿ®­¿ÀÀ¿L$mnÿÿÐmmnIJmnnmI ?ÿ„¤ÖÕÖÖÕÿôÿ…†ÖÕÕÖ«‘¿Àÿÿп¿À®­¿ÀÀ¿L$mnmmnIJmnnm_WWÕR<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<ÀÿÿþThFEFDC¬«Dÿ<óCEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<ÀÿÿþrT<;<:9Ž�:ÿ?ÿ9;<þThFEFDCÿüó¬«DCEFþ‚ÿÿÿÿ R<;<:9Œ‹:ÿ?ÿ9;<þrT<;<:9ÿüÿŽ�:9;<þThFEÿÿðFDC¬«DCEFþ‚Ï0?ÿÿÿÿÿ R<;<:9ÿüÿŒ‹:9;<þrT<;ÿÿð<:9Ž�:9;<þThFEFDC¬«DCEFþ]WUÕ?ý¿àHMNMIJIJNMJ³´³fe´³À ÿÛhLMNMMNKüñLNMH€€èçÏÐèç€À ÿÛËJKLKKLKü/ÿLLKLùø÷^]ÿü!ª©^]úù¬ÿÿHKNMKLKü/ÿLLKJKLKKLoð¿KLLKLùøÿÿð÷^]ª©`_úù¬†?ÿHKNMKLÿð¿KLLKJ÷úÿÿðù`_ª©`_ø÷¬L\[\÷ø«¬õö[\©]WWÕ?ü?𢣤£¡¢¡¢¤£ýÿ¢öõö;&{zø˜{zâ`{z<ò}zyzø˜{zâ`{z‰{z€ó}zyÈâ`z{z‰{z€~{z&}Ï ‰zyz{z€~{z&ø˜{z@A?ËÌËÌÿËÌËÌ ËÿüÌËÌËÌËÌ3ÿðËÌËÌËÌËÌ@A?ÍÎÍÎÿÍÎÍÎ ÍÿüÎÍÎÍÎÍÎ3ÿðÍÎÍÎÍÎÍÎWWW×ÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]WWWÿÿÀ~}~}~}~}~}~}~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3?~}~}|{|{|{|{~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3ÿ~}~}~}~}~ÿðÌ}~}~}~}|{|{|{|{~}~}~}~}ü3ÿ~}~}~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}|{|{|{|{~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~õ}ݵ< ÿ!F‹Œ;<:ü?óÌ9:9;<;<;<:9ÒÑÑÒÑÒÒÑÒÑÒÑÑÒ   <ð03 F�Ž��“”“”������“”õöôóôóõöõöõ<Ïÿöô󣤢¡¢¡£¤üóÀÀ£¤£¤¢¡F�Ž¡±²´³´³±²±²±<Ïÿ²´³ÎÍËÌËÌÎÍÎÍÎÍËÌ!""!"!?óÏ!"!"!""!H�?ÿŽLKIJIJLKLKLKIJ  ÿÿÐà©xõ}Ýõ< ÿ !ü?óÌ"!"   !"<à03<$#%&%&$#$#$#%&<Ïÿüó€À&*)'('(*)*)*<Ïÿ)'("!  "!"!"! ?óÏ?ÿ   éýÿ÷ÿ<Àÿ‘¶AWXWXí ªŸú™ª÷�ƒW‡xÞx‡e‘¯¯°¯¯° Ÿ¯°°¯¯ÿü󟰯 ¯ŒWXWXxÞÞÝÞàßABàßÝÞàBÝÞAÞÿ¢ Ÿ ¢¡»¼¢¡Ÿ ¢¾¡¢½¢Å=?@?=>{|=>@?=~>=}=WWXWXãFHGHFEŒ‹FEGHF�EFŽF ??@?AB�‚AB@?A‚@?�?}€€€~}þý~}€~ý€þ€.YZY0?ÿŸZ‰ÿýþýÿÿÿÿþýÿÿÿýMÙÙÚÙÙÚLKÙÚÚÙÙKÚÙLÙ,ÄÄÃĪªªª¤q ü© ªŸú™ªûϯ#ˆx‡í‡x�xööed:”5d•ji!ÊšËÿ˚ϼúø‡ŠŸú—Š%÷��fVeËeVkVÆ‘ üíì¿ü½ìûÏϪš‡ÿ‡+š�šúö‡†\¶W†Õnk!Šš‡ÿ‡4š�xúö‡ˆ~Øwˆõood4õ}]] ÏÿÏâÅÆÅÆÅÆÅT|{ÿÿð|{|{|{|{|{“§¨§¨§¨§¨§¨§¨'êéêéêéêéêéêé3?ÿ×^]^]^]^&«¬«¬«¬«¬«¬«¬0»¼»¼»¼»¼»¼»¼3ÿÿ(³´³´³´³´³üLÿ´³´¬«¬«¬«¬Ãyzyzyzyzyzyz3ÿÿàüÏÿ¶µ¶µ¶µÿð3¶µ¶µ¶µ”“”“”“”tststststüÏÿstsvuvuvuÿð?vuvuvuú‡ˆ‡õ}]] ÏÿÏS    :9ÿÿð:9:9:9:9:9".-.-.-.-.-.-4343434343433?ÿ]"!"!"!"'@?@?@?@?@?@?&2121212121213ÿÿ878787878üÌÿ787c$#$#$#$+FEFEFEFEFEFE3ÿÿ(:9:9:9:9:üÏÿ9:9"@?@?@?ÿð3@?@?@?o('('('(A434343434üÏÿ343*)*)*)ÿð?*)*)*).-.UUUU†ff@@ffd@ ffd!™™�€ €UUUU ü?Ðÿðÿ@¢¡¡¢¡¢¢¡¢¡ ÿÃý‚��‚�‚‚�‚�0!ÿðÿ@ ÿÃý¢¡¡¢¡¢¢¡¢¡/ÿ‚��‚�‚‚�ôÀ@‚�‡ÿÃý/ÿ¢¡¡¢¡¢¢¡ô¿ü¢¡‚��‚�‚?Ђ�‚�ÿô¿ü¢¡¡¢¡¢?Ðÿ¢¡¢¡‚��‚Õu]U ÿ‚ÿÿ€dceü?ðfefdcdcþýÿðÿÀfeghghfefeþýxwyzyzxwxwþ003‚ÿÿ€ÿðÿÀdcefefdcdcþýfeghghfefeþ?ÿýxwyzyzxwüÀÀxwþ‚ÿÿ€dcefefdcdcþ?ÿýfeghghfeüÿüfeþýxwyzyz?ðxwxwþ‚ÿ?ÿÿ€dcefefdcüÿüdcþýfeghgh?ðÿfefeþýxwyzõ}]U $€ÿ„¤ÖÕÿÿÐÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnm4’„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿?ÿÿL$mnmmnIJmnôÒHnm„¤ÖÕÖÖÕ…†ÖÕÕÖ?ÿÿ«‘¿À¿¿À®­¿ÀôÿÿÀ¿L$mnmmnIÿÐIJmnnm ?ÿÿ„¤ÖÕÖÖÕ…†ÖÕôÿÿÕÖ«‘¿À¿¿À®ÿÐÿ­¿ÀÀ¿L$mnmõ}]]<Àÿ‚ÿÿÿÿ R<;ÿÿð<:9Œ‹:9;<þrT<;<:9Ž�:9;<þThFEFDC¬«DCEFþ<ó‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<þ?ÿÿThFEFDC¬«DCüóÌEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þ?ÿÿrT<;<:9Ž�:9üÿÿ;<þThFEFDC¬ÿðÏ«DCEFþ‚ÿÿÿÿ R<;<:9Œ‹:9üÿÿ;<þrT<;<:9Žÿðÿ�:9;<þThFEFu]UU}zyz{z&ø˜{zâ`{z<ò}zyzø˜{zâ`{z‰€{zóÈ}zyzâ`{z‰€{z~&{zÏ}zyz ‰€{z~&{zø{zÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿËÌËÌËüÌËÌ3ËÌÿðËÌËÌËÌÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿÍÎÍÎÍüÎÍÎ3ÍÎÿðÍÎÍÎÍÎõ}]]ÏÿÏ21212121ÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð3ÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÕu]] ÏÿÏ}|{|{|{|{~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3?ÿ}|{|{|{|{?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÌÿ}~}|{|{|{|{~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ3~}~}~}|{|{|{|{~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ?~}~}~}~}~vx©© —ðH ÿü�ŽßbaababbababaabIJJIðÿÏ3JIIJIJIJJIÛÜÜÛÜÛÛÜÛÜÛÜÜð00ÛF‹ŒuðÿÏ8 ÿü      ðÿÏ3à00÷ÄÃwxÄÃÃÄÄxÃÄwÄ[W<ÀÿÿXWX‘__`__`¿À_``__À`_¿_‡[[\[[\µ¶[\\[[¸\[·Y†ççèççè21çèèçç/èç0üóåúWXWXªC©C4GV†s0@ú©ªŸLú™ªù¯�ˆx!‡ÿ‡x�xøôed:”5d“Jô’ ]ÿÿÀ ˆ‡ˆ‡ˆ‡ˆ‡ˆ �‚�‚�‚�–ÿð? ™š™ÿÿÀ š™š™š™š™š´¼»¼»¼»¼»¼»¼»3?ü¶ÇÈÇÈÇÈÇ]ÿÿÀ -.-.-.-.-SC878787ÿð?878787 ,+,ÿÿÀ +,+,+,+,+4343434343433?üW    U™™†ff@@ffdUðÿ@ �‚‚�‚�ü?Ðÿ¢¡¡¢ðÿ@ ¡¢¢¡¢¡‚ÿÃý��‚�‚‚�‚�0 UðÿÀ yzxwxwþ‚ ÿüÿÿ€dcefef?ðÿdcdcþýfeghðÿÀghfefeþýxÿÃÿwyzyzxwxwþ000‚ÿÿUÿÿ@ mnIJmnnm$€ÿÿ„¤ÖÕÖÖÕ…ÿÐÿ†ÖÕÕÖ«‘¿À¿ÿÿ@¿À®­¿ÀÀ¿L$ÿÿýmnmmnIJmnnm4’UÿÿÀDC¬«DCEFþ‚ÿ<Àÿÿÿÿÿ R<;<:9Œÿðÿ‹:9;<þrT<;<ÿÿÀ:9Ž�:9;<þThFEFDC¬«DCEFþ<ó‚ÿÿÿÿUöÿMNKLNM&yz{zø{z˜{â`z<ò}zyzÏÿÀËÌËÌËÌËÌ?üËÌËÌËÌËÏÿÀÍÎÍÎÍÎÍÎ?üÍÎÍÎÍÎÍ]ÿÿÀÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ü2121212]ÿÿ }~}~}~}~}|{|{|{|{~}~}~}ÿÀ?~}~}~}~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~3?ü}|{|{|{|5M¿C¹€Š«*>€¿Ð                                                                                                                                                                                                               D09_accent D09_accent Á² ²Ã\ÏžÄ AÔ±ÃÍÄžÄT8T ÁÍÄžD² ²Ã A\ÏžDÔ±Ã#8 } óóó‘’’‘’’‘’’‘’’‘’’‘’”“”’‘’’‘’’‘’’‘’’‘óó’’‘’’‘} óóó#$$#$$#$&%&$#$$#$&%&$#$$#$$#$&%&$#óó$$#$$#U„„„„„„„„„„„„U„„„„„„„„„„„„U?ÌÌÌ´Ð3°´³´³´ÌÌÌ̳´³´³´³´ÌÌÌ̳´³´³´³´Ìÿ³´³¶´µU?ÌÌÌ„†�‡„ƒ„ƒ„ÌÌÌ̃„ƒ„ƒ„ƒ„ÌÌÌ̃„ƒ„ƒ„ƒ„Ìÿƒ„ƒ†„…AÀeÀYAÀ&À$AÀ3À-AÀ À AÀH@À0@Àp@À0U 333ÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33ÿÿÿÿU 333}~}~}~}3333~}~}~}~}3333~}~}~}~}33~}~}U3 ÌÌÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÿÿÿÿU3 ÌÌ}~}~}~}ÌÌÌÌ~}~}~}~}ÌÌÌÌ~}~}~}~}ÌÌ~}~}I¥½3í°ãÛg€?€?€¿YÐD09_archD09_archKHŠÁ/uÐÃe*­ÄKHŠAâ®ÃßvžÄÀhÀKHŠÁßvžD/uÐÃKHŠAe*­Dâ®Ãèhà õÿõ3ÌÌ ÐÏÐÏ^ÏÐÏ<ÌÀ]¼ÐÏÐÏ^ÏÐ]¿çÀ(çWççWçèç(ç)ç�ç¤è£çsç/çsçèçDççGçnèmç©ç{ç©éêé|çLç2%ç&ÂçñçáçïéêéÂç²ç\ç%è&çÂç²çÂéêéïçáç2nçm©çzçLç|éêé©ç{ç&¤ç£sçDççDçèçsç/çÔç¿èÀç(ç)ç(çèçÿóÌÌWçç�ÐÏÐÏ^Ï Ï<ÌÐ]ïÐÏÐÏ^ÀÌÿÿÏÐ]�ó"ôê"Ò"Ç"Ò"!"ê"„"³ Ð!Í ®"û"®"!"ñ"¸"0‰"Šúÿ¿ö`P�P` ö`P�P <=<;>;<;>=>=<=>>;>;<;>=>=>=>=<>=>=>;<;<;<;<=><;<;<;>=>=>=>=<<;<;<=>=>=>=>;<>=>=>=<;<;<;<;>>;>=<=>=>=>=>;<<=<=>=<=>=>ÿÿö`P�p;<;>P€ ø€p�ÀÌÞÿ z010-0-0/0/0/0100/0/0-0/0/0/0100UUUUÀÀÕÖ ÕÖÀÀÕÖÀ ÕÖ ÀÕÖÀ ÕÖ ÕÀÀÖÕ ÖÕÀÀÖÕ ÖÕÀÀQÕÀ ÖÕ ÀÀÖÕÖÀ ÕÖ ÕUUUUĈ,@ˆ€áÈDL€D@„ÈD€D@„ÈD€D@!ÈDL€D@ÒĈ,@ˆ€áÈDL€D@!ÿÿÿÿ2121212121212121212121212121212h—“˜“Ó“=“Ó“”““™“•æ–啿OæHæOæåæ„ææ‘”“¤Å¤ƒæ“°’¾°®z®®­®À®*®‘¯”®‘¯½­)­¿­®­­y­“”£„儣ƕå–PåƒååƒåæåPåGå—”˜“—””š””“”Ô”>”ЉЉЉЉЉЉЉЉЉЉЉЉЉЉЉŠf™•œ•Ï“7“Ñ“”““Ÿ“•æ˜å—æMæJæMèçè€ææ“–¯ªé¯.-.-.-.-.-.-.-.-.-.-.-.-.-.ÿÿ$!T”R-.-.$$1$Rtt4"B1BRRR""@000@@@0@000@@}UYÝ1cCƒ�!4!! ƒDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDtt4B1BRRR""#ZU•V � ° �À � ° ÌóÌÌ «-.-.e— ÌÌ̘fß  uÀÌÌÌÞÝv‚ Ì Ï<ÉGHÊÌÀÌÌ6IJ5IÌÌ Ï5JI6 <ÌÀÌ ÊHGÉóÌÌ Ž  vÝÞÌÌÌÀu‘-.-f˜ððù � ° —eŸ�À � °ÀÌóÌ šKLKLÌ ÌÌFêéEâ65ÌÀÌó6¦°¯¥<UUUU3ÌÌ ijij–jiÃ<ÌÀ•ijij–jÌóÌÌi•œjijiY ÌÌÌ ZhijiUÀÌÌÌVjijiÌ Ç#$UUUU3Ì Ìijÿij–j<ÀÌijÿij–ÀóÌ jÇ djiÌ ÌÀY ^jÌÀÌÌiU Zj ÌiSPÀÌ@ÈjiMÌ ÈOijN<ÀÌÀYijTóÌ Ì _ijV ÌÀÌ cijZÀóÌ ¢ijÿijÌ<À–jijÿiÌÀóÌj–jË hj Ì Ìi[  dÀÌÀójiY ZU•V � ° �À � ° ÌóÌÌ Ì-. ›­™ÌÌÌÌN-[’ žÜÌÌÌÌܾ÷« ƒKÌÌÏ<#Ky ; ‚ÌÌÌÌKK|SÌÌÌÏ‚KK|S <ÌÌÌ ƒK#Ky ;óÌÌÌ¢ žÜܾÌÌÌÌ÷ß. ›­™Nððù � ° -[Ë�À � °ÀÌóÌ [KLÇêÌÌÌÌhê{K«œ6ÌÌÌó®®5ø[UUUU3ÌÌ ijij–jiÃ<ÌÀ•ijij–jÌóÌÌi•�ji² & ÌÌÌÌHjŠli² "ÌÌÌÌ HjŽji´ÌÌË<JjŽji¶LLÌÌLj’jiÄÄÌǶLj’j<ÌÌÌi´JjŽ3ÌÌÌji² " HjÌÌÌÌŽhi² & HÌóÌÌjŠ�ijij–j Ã<Ìi•ijij–ÀÌóÌji•�ji° ÌÌÌÌ. FjŠji²ÌÌ̳ & HjŠjiUUUU3 ÌÌÿÿ€€@@@Ã0ÌÌ@ÿÿ€€@@Ì3 Ì@@ÿÿ€€@ÌÌÀÌ@@@ÿÿ€€ÌÌÌ @@@@ÿÿ€ÌÌÃ0€@@@@ÿÿÌÌÌÌ€€@@@@ÿÿ ÌÌÀ€@@@@ÿ0ÌÌÌÿ€€@@@@3 ÌÌÿÿ€€@@@ÌÀÌÌ@ÿÿ€€@@Ì3ÌÌ@@ @ ÌÏ<Ì ÿ @ ÌÌóÌ ÿ @ ÌÌÌÌ ß@ÌÌÌó ÿ UUU3Àzy|�<}zy|óÀ}zy|ŒÌy|ÌÀy|�<}zy|ÌyÀ�|}z<y|óÀ}zy|ŒÌy|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|ÿ«"h"¤"h"!"«"ç"@/"0Q""$""!"Q"g"v"/!0"Q"g"Q"!""$"Ê"‰!Š"«"ç"«"!"h"¤"0Ð Í® ï"¸"ñ"!"®"û"ñ"ó!ô"ê"„"ÿÿê"!"Ò"Ç"ÿ/0/0-0/0/0/0100/0/0-0/0/0/0100/0/010/0/0/0-00/0/010/0/0/0-00/0/010/0/0/0-00/01010ÿÿ/0/0/0-0UÀÀÖÕ ÖÕÀÀÖÕ ÖÕÀÖÀ ÕÖ ÕUÈD€D@„ÈDL€D@!ÈDL€D@ÿ…¤ Ŧ…ä ‘®’À®®z®®­®¾®*®‘­’®‘­¿­)­½­®­­y­•” •†ã†¥Æ—å˜Nå�ååçèçNåIå�–š“›–” ”ÿÿ”“”Ò”8”U*®îj£ì掎…ÅœÝíUYaaa!aaC4CCƒƒUÌÌ ÏÍ&%΃<ÌÀÌ‡åæˆÌÌÌ ãˆæåÌÌÌÀ‡mÎ%ÌóÌÌ&Í<6565¥¯ ÌḬ̀¦›KLKEÀÌéêFUÌÌ ÇjiSTj<Ì@ŒijiOPÌÌÈüjijPÌÌÌÀOkjijTÌsÌÌSijijZ ÌÌÌ Yijij\ÀÌ [UÌÌÌÏm&å@å=å<ÌÌÌæååXëXÌÌÌÌåæååXëÌÌÌÌXd%m&å@ÌóÌÌåǰ¯˜°5ÌÌÌÌø5�é±êyÌÌK«KyUÌÌÌÉJjŽjJ,LÌÌJj’jJHÄÌÌJj’jÌÌÌÌJ JjŽÌóÌÌjJ  HjÌÌÌÌŠjH " FÌÌjŠjFUÌ Ì¨Ë$ºâ<€LÀá‘‹áÌÄÌéâ’Œâ ÌÀÌÞ#§ÌÀóÌ #>®­«65Ì ÌÀ¥­(éÑLÌÀKCéUÌ Ì\jiSÀÌ@RjiOÈÌ ÈQijPÌÀÌ[ijTÀóÌ  cijÌ ÌÀZ  giÌÀj\ UÌÌÌÎû$�$ç@jÌÌŒZááXë„ÌÌÈZááXÌÌÌÌë}û$�$çÌóÌÌ@\56®®ÌÌÌÌ5øâLÇêhÌÌê{K«UÌÌÌË´JjŽj€¿Ð D09_building D09_buildingffÂÉöÏÃÑѰľâArÁËÃMð­ÄØ”ØffÂMð­DÉöÏþâAÑѰDrÁËÃâ”Ú U3À3ÏÐÏÐÏ3ó 3ÐÏö�Ž�‹ŒÌóó‹Œ&À3ó3;.-.-.-QÐghÏhË™RQRHRQ™RšQR™š[O\PO[P[O\[P\OÇ=<ÀÌÏ>Õ;Ô>Õ˜Ó<Ö>´³´±~}²€³×™ÿ³bš´ei3À3cdcdc3ó 3dc65687ððöe87À3ó3Ehghg3¿üÏhgd12c2m2 û ûü¿_%2121ïÞýÏûþ&8ÀLŽß>Û+6565652ÿ&1U}óó Ìó ¬–•–•–3ÀÀó•–ÛqrqróÌÀqrqrq  ϲyghgâghygzhgyzgˆ…†‡ˆ‡ˆËê<ÀÌÏéÁêÂéÁSÁéÂ%=>=g>hg=h>¶yÿÁÕzÄU}óó ÇÈÇÈÇÈÇÌó âáâáâ3ÀÀóáâWóÌÀ Ÿ à ÏÈÔ—˜—²—˜—˜— ²±²±²±²M<@ÌÏ [ÿ Œ UU ÌÌÀƒ„ƒ„ƒ„ ó 3ƒ?èçèçèÌÌÌÌçè˳´³´³ÌÌ´³ÉÀÏ?0Êø~}~¬¨§ÌÌϨ§¨§¨?j0Ã<ÌijijijåÏ33<›œ›œ›œ›œ› À ?ÉÊgaUU ÌÌÀÿÿÿÿÿÿ ó 3ÿÔÓÔÓÔÌÌÌÌÓÔs˜—˜—˜ÌÌ—˜¦ÀÏ?0t¶µ¶2ÂÁÌÌÏÂÁÂÁ°0Ã<̯°¯°¯°_Ï33<„ƒ„ƒ„ƒ„ƒ„ À æXó’‘’UU@ÀÀ€ÀÀÀµ´¸À@@³À@@€ ÙM PÖ܃ ¦®¥) LMPØ  ÚÙÜ0LUUÀ€@þÀÀÀÀýY§¥ÀÀÀ¨ÿþ€ÀÿÀÀ þý*ª V+Ö; ­ƒ®À VªVÖ +,þÖ0VUU€@À@ÀÀ·¸ÀÀÀ€·º€@@à Ú LØÕ% ª­©Ô  OLÚ  רÕ0OUUÀÀýþ€ÀÀÀÿ¦¥ÀÀ@À¦ZýÀÀÿÿÀ� þ)ÿ VÔ,ê ­„®’ UÿV) ÕÖþ,0UUU@@€@À@@ Ù  Kv )ÜÜ  PK0PUUÀÀÿþÀýÀ€ÀþÿÀþ *ÿ Uÿ± )+ÿ VÿUÿ0VUU@À@@À@@À@ ÙM PMÛ Ú'xM LMPM0LUUÀ€ÀþÿÀþ€ÀÀÿþ€Àÿ *ª VªÕ )Nª VªVª0Vâ30áâáª30©ª©UU33€€3ÿÿó33€€€€33À€€0ÃÿÿÿÿÕ3<Ã0ÖÕÖÿÿÿÿ€€<ÌÌÌ€€€€ÌóÿÿÿU3333€~}~}€Àó33~}~}~}~}3À~}~ó3}~}~}37ØÃ~}~{~}~3<Ì}~}~}~}~333<}~}~}~}~<Ã3}~}~}~}~}{~ ÌÌÌËÌËÌ0¾½¾ÌÏ<½¾½ëìëì ÌÌÎÍÎÍÎ0!"!ÌÏ<"!"©ª©ªUU ÌÌÌ12121ÿÿÌ3 óÿÿÿÿÿÿÿÿ ÌÌÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÏ?0ÿÿÿÿÿÿÜÛÜÌÏ<ÃÛÜÛ«¬«Sÿÿ0Ï0ÀÿÿÿÿÿÿÏ333ÿÿÿÿÿÿÿÿÿ0Ï0ÌÿÿÿÿÿÿÿóÿÿÿUUHHÌÿÿaaÌÌÌ}|{|{|ÌÌÌÌ{|{|{|{|ÌÏ2{|{|{|„�<þýþý†Œ}Ï333|{|{|{|{|0Ï0Ì{|{|{|{ó|{|í4Uù­ ÿ€š™™>€¿ÝÐ D09_crowd D09_crowdš™‘Á‘æÐÃÒù®Äš™‘A6#Éà өÄ š™‘Á Ó©D‘æÐÚ™‘AÒù®D6#ÉÃÚ Ò UUUU3ÌóÌÑÒ\ÏÑÒ\ÏóÃ??aÑÒ\ÑÒ«ÑÒÑÏ<óÌóÐ^×ÑÒ\Ñ7ÏÐÌóÃ?^ÑÁÑÒ\ÏÐüÑ?<óÌÒÑÑÒ\vÑÒ\ÑóÌóÃàÑÒ\ÑcÑÒ\Ï??<óÐ>ÏÐÏÑÒ\?ÑÒÌóÌó\ÑÉÑÒ\ÏÑÒÃ?<Ï\ÑÒ¼ÐÏ]ÒßÐ<Ï<3Ï]Ò´ÒÑ[ÒÑóóÏ<ÒÑÒÐÏ]>ÒÑ[Ï<Ï<ÒÞÒÑ[ÐVÐÏ]3óóÏÒÑKÒÑÒÒÑ[uÒ<Ï<ÏÑ[Ò ÒÑ[Ò²Ð<3óóÏ]ÒÑøÒÑÒÒÑÏ<Ï<]ÖÒÑ[ÒLÐÏ]ªªªª ð Ü ðÀj ð  ¬ ðŒ ðÀº ðÀ¬ ð * ¬ ðê ðÀœ ðÀú ð  * ¬ ðú ð z ðÀú ð ù ð�û,4 ð°û ð Jù › ðû ð*J°û ð�û ð8N û » ðû.R ð�û ð°ù:R ð û » 0ðù ð�û ðR:UÕUÝ ÿÌÿ£¤£¤££¤£¤£ÌüÌÌÚ£¤£¤£�£¤ÏÌÿÌ£¤£ £¤£¤£J£ÿ ṳ̈£¤£¥¦¥¦¥ÒÌÏÌÿ£¤£¤£Ô¥¦¥¦¥ÌÿÌü1£¤£¤££¥¦¥¦ÌÌÏÌ¥£¤£¤£D£¤£¤£„£¤£¤£¯£üÌÏü¤£¤£¹£¤£¤£ÏüÏÌ¥¦¥¦¥â¥¦¥¦¥ÌÌüÏž¥¦¥¦¥D¥¦¥üÏôϦ¥@£¤£¤££¤£ÌÌÌü¤£Ò¥¦¥¦¥¨£¤£¤£'¥¦¥¦¥ÏÏÌÌÌ£¤£¤££¤£¤£l¥¦¥¦¥¨£¤£UÕÕÝ ÿÌÿ:9:9:c<;<;<ÌüÌÌ‹<;<;Š ‡|Ð ÏÄ d cXà ßÔ ÿÿ'  ÿ9 :Y; <[9 :Y9 :Y1 2Q- .M% &E ; 5 / - + " + % C9 :Y; <[9 :Y9 :Y1 2Q/ 0O# $C ; 5 / - + ÿÞ) % UUÀÀÀg§ ÀÀÀÀe²¬äÀÀÀÀ Ä‹æÀÀÀÀ/O·¬ÀÀÀÀ�''¸ÀÀÀÀÕ²îÀÀÀÀ_ÃúÀÀfˆUU@@ÀÀÀÀ ÀÀÀ@ ÀÀÀÀ l@@À ÀÀÀÀ ÀÀ@À ÀÀ UU3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33ÿÿÿÿUU3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}33~}~}UU ÌÌÌÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÿÿÿÿUU ÌÌÌ~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌ}~}~ùïÿB8ÿ€¿¹Ð D01_banner D01_bannerÞ“@Áð',Â̾.ÃøB AñôèÁ7 ÃT8TÞ“@Á7 Cð',ÂøB A̾.CñôèÁš8’ U ÌóÌ,--.-óóóÌ-..-+,-óÌóó-.+-..-ÌÌNKLU 3 STTST3ó3 TSTSTTST3 3óTSTRQRQRÌ (%&U ÌóÌÅýÆþÆÅýÆóóóÌþÆÅ7ÅÆþÆÅýÆóÌóóþÆÅýÆþÆÅ9ÃÄÌÌÑñÂðj@ PP4 P06@U33 óopopopop ÌÌóopopopop ó Ìopopopo³3$#$#U33 óHGHGHGHG ÌÌóHGHGHGHG ó ÌHGHGHGH³3,+,+UÀÀÀstsÀÀÀÀtstsÀÀÀÀtstsÀÀŠŸUÀÀÀ&%&ÀÀÀÀ%&%&ÀÀÀÀ%&%&ÀÀUÀÀÀpopÀÀÀÀopopÀÀÀÀopopÀÀ…œUÀÀÀ%&%ÀÀÀÀ&%&%ÀÀÀÀ&%&%ÀÀUÀÀÀopoÀÀÀÀpopoÀÀÀÀpopoÀÀ†›UÀÀÀ&%&ÀÀÀÀ%&%&ÀÀÀÀ%&%&ÀÀUÀÀÀstsÀÀÀÀtstsÀÀÀÀtstsÀÀŠŸUÀÀÀ&%&ÀÀÀÀ%&%&ÀÀÀÀ%&%&ÀÀU3Ìÿÿÿÿ3Ìÿÿÿÿ33ÿÿÿÿÌÌÿÿÿÿ ÌÀ}~}~ó3À}~}~}~óÌÀ}~}~}~U33 ó€€€€ ÌÌó€€€€ ó Ì€€€€33ÿÿÿÿ@a!d. 7Û�öd‰œv�ö?@?€¿YÐD09_liftD09_liftµ–Á"ýÍÃsM«ÄKê�Á"½ÌÃJ«Ä   $$µ–ÁJ«D"ýÍÃKê�ÁsM«D"½ÌÃME  óóÌNMMNMœ›ONÌó›NMœ›À» ¿ÐÀÌó ’@„@’@„@„’„’ÀÀÀ”IIÀÀ”IÀÀÀ¹¡£ÀÀ¹¡ÀÀNMÀNÀÀ¤£À¤ÀÀMNÀMÀÀ£¤À£ÀÀÀ”IIÀÀ”IÀÀÀ¹¡£ÀÀ¹¡ óóÌìë�ž�uvžìÌóvž�uv ÒsŒª©¬«ªÈs«¬« óóÌSTÿÿÿ¬«ÿSÌó«ÿÿ¬« À! {|{À!|3 Ìóÿÿÿÿÿÿÿÿ3 ÿÿÿ'Û®Ú.&ÑÛ®Š«*>?€¿)ÐD09_neonD09_neon�À/UÍÃò­Ä�@ÃC®ÃázžÄ   H0H�ÀázžD/UÍÃ�@ò­DÃC®Ãœ0” a€a€a€a€Àó󪩪©ª©ªÌ ÀÀ©ª©¬ªóóÌ ©ª©ª©ª©ª©€ ÌÌÌÏÐÏÐÏÐÏÀÌÌÐÎÏÐÏÌÌÀÐÏÐÏÐ*À°À°À°À°ÐÀ°À°À°À°@À@@€@À@@À€þÀÀÀÿþýÀ€ÀÀþÿþÀ€@ÀÀ€@@ÀýÀ€@þÀÀýþÀ@@À@@€ÀÿÀ€þÀÀÿþ@À@@À@À€þÀÿÀ€Àþÿ33ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333~}~}~}~}33À~}~}~ Ì ÌÿÿÿÿÿÿÌÌ Ìÿÿÿÿÿÿÿ ÌÌÌÿÿÿÿÿÿÿHÌÌ}|{|ÌÌH{|{|ÌÌÌÌ}|{|{|{|ªÿ€ÿ€>€¿MÐ D10_building D10_building)˪AÏÏî²Ä×4õAë›ÌÃÙi±ÄlJl)˪AÙi±DÏÏÃ×4õA®²Dë›ÌÃÍJÅ Ý3 Ì?~}#~$}#~}~{ž²�ž±�²œž²�ÿÌó ±²ž±eÏ‘ÏÐ�1�ž2žÏ�Œ‹Œ£‹ÿÿðŒ¤‹£„}@~?Ý3 Ì?ÄÃrÄqÃrÄÃĨ…»„ƒ¼†½…ƒ½†ÿÌó ¼»…¾'%#$ / 0 # �¯°¯ °ÿÿ𯰠Ã�,ÄžÝ3À3`_`_`_`'< ;:u :ÿÌó ;<9¦uBst4§21¨3s2-iji‰hÿÿðgŠj‹ü_ÏÐ`ÐÝ3 Ì?YZ®Y­Z®YZYs5ts6t5lu3tÿÌó 65s4½ , ! " Ê^]^,_ÿÿð`+]*Z-Y,TH’ó óÍÌËÌËÌË ÀÌÎÆËU ó3ÿÿÿÿÿÿ Ì3 ÿÎåæåæóó óåæåj¬«¬«¬« ̬ŽÀÏ0t¾½¾U@ÀÀø}ÀÀÀÀ|™=~ÀÀÀ@>óÀÀÀÀø{zy@Ã|óUÀÀÀÿz=ÀÀÀÀÁŸ»}ÀÀÀÀ¼áyÿÀÀÀÀzÄ<;ÀÃþÁyUÀÀÀöóxÀÀÀÀ~×:~ÀÀÀÀ9Z÷öÀÀÀÀóz|{@Ã~÷UÀÀÀ…yÃÀÀÀÀ>¤¼}ÀÀÀÀ»%y…ÀÀÀÀy>ÃÄÀÃþ>yUÀÀÀõô÷€ÀÀÀ|yKÀÀÀÀ¿õøõÀÀôõøUÀÀÀ†z†ÀÀÀÁ=nÀÀÀÀ †z†ÀÀz†zU@Àø@ÀÀÀJ¾|ÀÀÀ@€óÀ@øóUÀÀÀÿzÿÀÀÀ’ <ÀÀÀÀ>ÿyÿÀÀzÿyÌÌâáâáÌ̪©ª©U3ÌÌ3ÿÿÕÖÕÖÿÿ3ÿÿÌ3Ìÿ€€3ÌÀ€€0ÿÿÿU3ÌÌ3~}~}~}~}À ÌÌ~}~}~}ÌÀ~}~ó3}~}~}Ì7Ð~}~{~ ó3̽¾½¾½¾Vì ó3Ì"!"!"!‡ªU ó3ÌÛÜÛÜÛÜx¬ÌÌ3Ìÿÿÿÿÿÿÿÿ3ó óÿÿÿÿÿÿÿÿÿ ó Ìÿÿÿÿÿÿÿó0ÿÿÿÿÿÿUa!Ìÿý!„!ó ó{|{|{|{ ó Ì|{|{|{|ó0{|{|{|i²íÃáÂa>žÃá_ïî>€¿qÐGD_liftGD_lift‘xÂõ‰Ãz{Ä�Õn tMÃv�TÄ   ´f´‘xÂv�TDõ‰Ã�ÕnÂz{D tMÃdf\ UÀÏ?"!ÛÜÜ0ÌÏÿÛ×ÜØ×ÛØÜÛ×ü óÜØ"!ÓÔÌ óÿØÙÑSר×ÓÒÚÿÀÀÏÙÑÔØ('Ù??<ÏÚÜÛÑÒÑÚÔRÒÿðÜÓÔÛÑÚUÀÏ?Ê\[ZY0Œ~Z[\YZÌ ó[õÊ\[Lá·\]\[íÀÀÏ\[õÌZ?0 LYZ[\Y\ç0[\YY3Ì?HGHG“�ð0ðôóO”“”“”ÿ<Àó“vFEFE•Ì óÿ“”™”“”“ÿóÌ”“vHGHG“??<Ï�”“”“˜“ÿ𔓔™ `P`P>@ÀùP`V`P3À ùPePe<ÀU ÿüÌCDCDCDC}~}Ï3< ~}~}~}~} ÏÿÌŸCDCDCDC}~ó3 }~}~}~ÀÌÿü}ŸCDCDCDC}ÌÌÏ<~}~}~}~}~ }f°ËËËðððÏ3< ð°ËËËððïó3 ðð°ËËËðïÌÌÏ< U@Œ ´” ‘�¸ À´ÀÀÀÀ”‘�¸@À@Œ´ ”‘�¸UÀÌÿÿ€  ýýþ À‚ÿÿ€@À@ÀýýÀÀÀÌþ‚ÿÿ€  ýý þU!„ ·� ”¶ @À·À@ÀÀ�”¶@¡„ ·  �”¶U3Ì ÿÿÿÿ~  ÿþ<ÀÀ}ÿÿÿÿ~€À@€ÿÀóÌ þ}ÿÿÿÿ~ ÿ þU!„ ¸� “@À¹¸À€ÀÀ�“á„ ¹¸  �“U3Ì ÿÿÿÿ€  ÿÿ<ÀÀÿÿÿÿ€@À€ÀÿÿóÌ ÿÿÿÿ€  ÿÿU€L ¶” ‘�� À·¶ÀÀÀÀ”‘��À€L·¶ ”‘�‘UÀÌÿÿ  ýý À€ÿÿ@À@ÀýýÀÀÌ€ÿÿ  ýýUÌÃ3ÿ€€ÿÿÿ<ÌÃ<ÿÿÿÿÿÿÿÿÀ Ì3ÿÿ€€ÿÿÌÌ33ÿÿÿÿÿÿÿÿÌÌÃÿÿÿ€€ÿ33<ÌÿÿÿÿÿÿÿÿÃ0ÿÿÿ3À€|{|<}|{|óÀ€}|{|U ÿüÌ@?@?@?@ÿ€Ï30Ï€€€€<ÏÿÌ€À@?@?@?@ÿó3 Ì€€€€€€À@?@?@?@ÿÌÌÏ3€€€€0À€Ufd„†††fHa!Hafd„„†€öšGþaÀ@@@à>€¿¹Ð               GU_liftGU_lift;†ÂÞsÃ¥àqÄo¡�Â+ÈAà ÷JÄ   ´f´;†Â ÷JDÞsÃo¡�Â¥àqD+ÈAÃOfG UÀÌÌ('¿ÖÒÀÌÏÿÕÑÖÒXÒÖÑÒÕü ÌÑÖì('¿ØÌ ÌÿÒ×ÑØÒÑ×ÒØÿÀÀÌ×ÑØÒ "!ÅÌÀÌÏÖÒÕÑÖÒXÒÿðÖÑÒÕÑÖUÀÌÀÙ[ÀŒ ÃZ[\YZ¼ Ì[õÙ[LÄ·\[\[íÀÀÌ\[õÙÄÀ LY\Y\ç0[\YU3Ì ÌHGHG�“ÀÌÏÿ”“˜“”“ÿ<ÀÌ”FEFE�Ì Ìÿ“”“”“ÿóÌ ”“vHGHG�ÌÀÌÏ“”“˜“ÿ𔓔™ `PePÎ@ÀÿP`P`P3À ùP`Pe<ÀU ÿÿ3CDCDCDC}~}~33< }~}~}~} ÏÿóŸCDCDCDC}~}333À~}~}~}~ÀÌÿÿ}ŸCDCDCDC}~333<}~}~}~}~ }f°ËËËÿ33< ð°ËËËÿï333Àðð°ËËËÿï333< U@Œ ´” ‘�¸ À´ÀÀÀÀ”‘�¸@À@Œ´ ”‘�¸UÀÌÿÿ€  ýýþ À‚ÿÿ€@À@ÀýýÀÀÀÌþ‚ÿÿ€  ýý þU!„ ·� ”¶ @À·À@ÀÀ�”¶@¡„ ·  �”¶U3Ì ÿÿÿÿ~  ÿþ<ÀÀ}ÿÿÿÿ~€À@€ÿÀóÌ þ}ÿÿÿÿ~ ÿ þU!„ ¸� “@À·¸À€ÀÀ�“á„ ¹¸  �“U3Ì ÿÿÿÿ€  ÿÿ<ÀÀÿÿÿÿ€@À€ÀÿÿóÌ ÿÿÿÿ€  ÿÿU€L ¶” ‘�‘ Àµ¶ÀÀÀÀ”‘��À€L·¶ ”‘�‘UÀÌÿÿ  ýý À€ÿÿ@À@ÀýýÀÀÌ€ÿÿ  ýýUÌÌÌÿ€€ÿÿÿÌÌÌÃÿÿÿÿÿÿÿÿ0 ÌÌÿÿ€€ÿÿÌÌÌ3ÿÿÿÿÿÿÿÿÌÌÌÿÿÿ€€ÿÌÌÌÌÿÿÿÿÿÿÿÿÃ0ÿÿÿ3À€|{|<}|{|óÀ€}|{|u ÿÿ3@?@?@?@ÿ€3330€€€€¿@?@?@?@ÿ€333 €€€€€À@?@?@?@ÿ3333€€€€0À€Uff„†fa!!!aff€ôšGþaÀ@@@à>€¿¹Ð               L1D_liftL1D_lift33çÁØ@ÆÖÄÍÌØÁ‹lï?÷æ…   €ˆ€33çÁ÷æ…BØ@ÃÍÌØÁ†ÖD‹lï?Ó"ˆË" UUUUÀÎ!"   ! á’"@!!!’@!!ÀÀÎ!"   á’!"@!!!’@!!ÀÀ!Î "UUUUÀÎô   ó á’ô@!!!’@!!ÀÀÎóô  ó á’ô@!!!’@!!ÀÀóÎ ôUUUU3Ì \¥?<À¦¥¦¥¦¥¦¥Ì ?¦<ÀÏ<´ÀÀÀó\§¨§¨óÌ À§¨§¨§¨ÀóóÌ óÌ ´\ ?<¥¦¥¦¥¦¥¦ÀÌ ¥¦?<ÀÏ´<ÀÀÀ\§óóÌ ¨§¨§¨§¨§¨ÀÀóóÌ óÌ´ ?\§¨§¨§¨@@P À &@€ á„ &UUUU ÿüÌ%&%&%&%´|{ÌÌÀ |{|{|{ ÌÌÌ|787878À Ï78{%&%ÿÌÌÌ&%&%´|{|{|ÌÀÌ{|{|7ÌÌÌ878787ÀÌÿü8{%&%&%&%´ÌÌÌÀ|{|{|{| ÌÌ{|7878ÌÀ 7878{ÏÿÌÌ%&%&%&%´|{|ÌÌÀ{|{|{ÌÌÌÌ|7878787ÀÌÿ8{%&%&%üÌÌÌ&%´|{|{|{R•”ePeee„„„€ Ï"ÿHHHðPeee"„„„€ "Peee  HH@€ðPee ðUUUU@„   @€À€@€€À€@À@„   @€À€@€€À€@À@„ UUUUÀÌÿÿ€  ÿýþ ýÿ ýþ‚ÿ ÀÀÿ€ÿ@ÀÀÀýþýÀ@ÀÿýÀÀÀÌþ‚ÿÿ€  ÿý þýÿ ýþ‚ Àÿÿ€À@ÀÀÿýþÀÀ@ýÿÀÀÀÀýþ‚ÿÌ ÿ€ÿUUUU!„   @@À@@À@@¡„   @@À@@À@@¡„ UUUU3Ì ÿÿÿÿ~ ÿþ ÿ <þ}ÿÿÿÀÀ€Àÿ~ÿÀþ€ÀÿÀóÌ þ}ÿÿÿÿ~ ÿ  þÿ þ}ÿ<ÀÀ€ÿÿÿ~ÀÀÿþ€ÀÿÀóÌþ}ÿÿÿÿ  ~ÿUUUU!„  @€À€€À€€a„  @€À€€À€€a„ UUUU3Ì ÿÿÿÿ€ ýÿ ý <ÿÿÿÿÀÀ@Àÿ€ýÀÿ@ÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý ÿÿ<ÀÀ@ÿÿÿ€ÀÀýÿ@ÀýÀóÌÿÿÿÿÿ  €ýUUUU€@  €À€€À€€@  €À€€À€€@ UUUUÀÌÿÿ  ÿý ÿ ý€ÿ ÀÀÿÿ@ÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ ÀÿÿÀ@ÀÿýÀ@ÿÀÀÀý€ÿÌ ÿÿUUUUÌÃ3ÿ€€ÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ330 ÿÿÿÿÿÿÌ333€€ÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3ÌÃÿÿÿ€€ÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3330ÿÿÿÿÿÿÿ Ì33ÿ€€ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33Ìÿÿÿÿÿ€Ã333€ÿÿÿÿÿÿÿAAPP3À€|{|<}|{|óÀ€}|{|}|<{|óÀ}|{|€UUUU ÿüÌ@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÏ€€€À@?@ÿÌÌÌ?@?@€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÿü€À@?@?@?@€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÀÏÿÌÌ@?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÿ€€À@?@?@üÌÌÌ?@€€€€AAPPf`†fHf`†fHf`UUUU  á!"’@!!!’@!!ÀÀÎ !"  !"á’@!!!’@!!ÀÀÎ!"  UUUU  áóô’@!!!’@!!ÀóÀÎ ô  óá’@ô!!!’@!!ÀÀÎóô  UUUU<ÀÌ §¨§¨?<ÀÏ<ÀÀ²\ÀóóÌ¥¦¥¦¥¦¥¦¥ ÀÀó¦óÌ ó´Ì \§¨§?<Ą̀§¨§¨§¨ ?<ÀÏ<À´ÀÀóó\§¨§¨§¨§Ì ÀÀ¨§¨óóÌ óÌ ²\¥?<À¦¥¦¥¦¥¦¥Ì ?¦T@€ À &@€ ÀUUUUÀ Ì|{|78ÌÌÀ 787878 ÏÿÌ{%&%&%&%´|ÌÌÌ{|{|{|ÀÌÌÌ{|78787ÌÀÌ878{%ÿüÌÌ&%&%&%´|{|{ÌÀ |{|{|ÌÌÌÀ7878787 Ïÿ8y'('('('ÌÌÌÌ´|{|{|{|ÀÌÌ{|787ÌÌÀ87878ÌÿüÌy'('('('´|{ÌÌÀ |{|{|{ ÌÌÌ|787878%%YI„„„€ðPeee"HHH@Ì"eee„„„€ðPeee"HHHH@ˆHHH@ðPeee „„„UUUU  @€À€@€€À€@À@„   @€À€@€€À€@À@„  UUUU ýþý  ÿýþ À‚ÿÿ€À@ÀÿýÀÀÀþýÿ@ÀÀÀýþ‚ÀÌ ÿÿ€ÿ ýþý  ÿý þ‚ÿÿÀÀ@€ÿÀÀÀýþýÀ@ÀÀÿýþÀÀÌ‚ÿÿ€  ÿýþ ýÿUUUU  @@À@@À@@¡„   @@À@@À@@¡„  UUUU þ ÿþ<ÀÀ}ÿÿÿÿ~€ÀÿÀ€ÀþÿÀóþ}ÿÿÌ  ÿÿ~ÿ þ ÿ <Àþ}ÿÿÿÿÀ€À~ÿÀ€þÀÀÿþóÌ }ÿÿÿÿ~ ÿþ ÿUUUU @€À€€À€€a„  @€À€€À€€a„  UUUU ÿ ýÿ<ÀÀÿÿÿÿ€@ÀÀýÿ@ÀýÀóÿÿÿÌ  ÿÿ€ý ÿ ýÿ<ÀÿÿÿÿÀ@À€ýÀ@ÿÀÀýÿóÌ ÿÿÿÿ€ ýÿ ýUUUU €À€€À€€@  €À€€À€€@  UUUU ý  ÿý À€ÿÿÀ@ÀÿýÀÿ@ÀÀý€ÀÌ ÿÿÿ ý  ÿý €ÿÿÀÀ@ÿÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿUUUU3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ0 Ì3ÿÿ€€ÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ333ÿÿÿÿÿÿÌÃ33ÿ€€ÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ30 Ìÿÿÿÿ€€3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿÌÃ3ÿ€€ÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ<}|{|ó}|{À€|<}|{|óÀ€}|{|UUUUÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÏÿÌ€À@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€À@ÿüÌÌ?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÏÿ€€À@?@?@?@ÌÌÌÌ€€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÿüÌÀ@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€†fHf`†fHf`UUUU ! á’"@!!!’@!!ÀÀÎ!"   á’!"@!!!’@!!ÀÀ!Î "  á!"UUUU ó á’ô@!!!’@!!ÀÀÎóô  ó á’ô@!!!’@!!ÀÀóÎ ô  áóôUUUU<ÀÏ<´ÀÀÀó\§¨§¨óÌ À§¨§¨§¨ÀóóÌ óÌ ´\ ?<¥¦¥¦¥¦¥¦ÀÌ ¥¦?<ÀÏ´<ÀÀÀ\§óóÌ ¨§¨§¨§¨§¨ÀÀóóÌ óÌ´ ?\§¨§¨§¨<ÀÌ §¨§¨?<ÀÏ<ÀÀ²\A@@ À À €UUUUÀ Ï78y'('ÿÌÌÌ('('´~}~}~ÌÀÌ}~}~9ÌÌÌ:9:9:9ÀÌÿü:{'('('('´ÌÌÌÀ~}~}~}~ ÌÌ}~7878ÌÀ 7878{ÏÿÌÌ'('('('´~}~ÌÌÀ}~}~}ÌÌÌÌ~7878787ÀÌÿ8{'('('üÌÌÌ('´~}~}~}À Ì~}~78ÌÌÀ 787878 ÏÿÌ{'('('('¶|UV’•€ Ï"ÿ@HHHðPeee"„„„€ PeeeHHHðp‡‡"ð„„„€ðPeee"UUUU @€À€@€€À€@À@„   @€À€@€€À€@À@„   @UUUU ýþ‚ÿ ÀÀÿ€ÿ@ÀÀÀýþýÀ@ÀÿýÀÀÀÌþ‚ÿÿ€  ÿý þýÿ ýþ‚ Àÿÿ€À@ÀÀÿýþÀÀ@ýÿÀÀÀÀýþ‚ÿÌ ÿ€ÿ ýþý  ÿýþ À‚ÿÿ€UUUU @@À@@À@@¡„   @@À@@À@@¡„   @@UUUU <þ}ÿÿÿÀÀ€Àÿ~ÿÀþ€ÀÿÀóÌ þ}ÿÿÿÿ~ ÿ  þÿ þ}ÿ<ÀÀ€ÿÿÿ~ÀÀÿþ€ÀÿÀóÌþ}ÿÿÿÿ  ~ÿ þ ÿþ<ÀÀ}ÿÿÿÿ~UUUU@€À€€À€€a„  @€À€€À€€a„  @€UUUU <ÿÿÿÿÀÀ@Àÿ€ýÀÿ@ÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý ÿÿ<ÀÀ@ÿÿÿ€ÀÀýÿ@ÀýÀóÌÿÿÿÿÿ  €ý ÿ ýÿ<ÀÀÿÿÿÿ€UUUU€À€€À€€@  €À€€À€€@  UUUU ý€ÿ ÀÀÿÿ@ÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ ÀÿÿÀ@ÀÿýÀ@ÿÀÀÀý€ÿÌ ÿÿ ý  ÿý À€ÿÿUUUU330 ÿÿÿÿÿÿÌ333€€ÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3ÌÃÿÿÿ€€ÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3330ÿÿÿÿÿÿÿ Ì33ÿ€€ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33Ìÿÿÿÿÿ€Ã333€ÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ0 Ì3ÿÿ€€ÿÿAAA<}|{|óÀ€}|{|}|<{|óÀ}|{|€<}|{|UUUUÌÌÌÏ€€€À@?@ÿÌÌÌ?@?@€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÿü€À@?@?@?@€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÀÏÿÌÌ@?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÿ€€À@?@?@üÌÌÌ?@€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÏÿÌ€À@?@?@?@€€AAA†fHf`†fHf`†fUUUU’@!!!’@!!ÀÀÎ !"  !"á’@!!!’@!!ÀÀÎ!"   ! á’"@!!!UUUU’@!!!’@!!ÀóÀÎ ô  óá’@ô!!!’@!!ÀÀÎóô   ó á’ô@!!!UUUUÀóóÌ¥¦¥¦¥¦¥¦¥ ÀÀó¦óÌ ó´Ì \§¨§?<Ą̀§¨§¨§¨ ?<ÀÏ<À´ÀÀóó\§¨§¨§¨§Ì ÀÀ¨§¨óóÌ óÌ ²^§?<À¨§¨§¨§¨§Ì ?¨<ÀÏ<´ÀÀÀó\§¨§¨óÌ À§¨§¨§¨PT@’a„À@€@’a„À @’a„UUUUÌÌÌ{|{|{|ÀÌÌÌ{|78787ÌÀÌ878{'ÿüÌÌ('('('¶|{|{ÌÀ |{|{|ÌÌÌÀ7878787 Ïÿ8{'('('('ÌÌÌ̶|{|{|{|ÀÌÌ{|787ÌÌÀ87878ÌÿüÌ{'('('('¶|{ÌÌÀ |{|{|{ ÌÌÌ|787878À Ï78{'('ÿÌÌÌ('('¶|{|{|ÌÀÌ{|{|7”%%UHHH@Ì"eee  „€„„„€ðPeee HHH@ðPeee"„„„€ Ï"ÿ@UUUU€À€@€€À€@À@„   @€À€@€€À€@À@„   @€À€@€UUUUÀ@ÀÿýÀÀÀþýÿ@ÀÀÀýþ‚ÀÌ ÿÿ€ÿ ýþý  ÿý þ‚ÿÿÀÀ@€ÿÀÀÀýþýÀ@ÀÀÿýþÀÀÌ‚ÿÿ€  ÿýþ ýÿ ýþ‚ÿ ÀÀÿ€ÿ@ÀÀÀýþýUUUUÀ@@À@@¡„   @@À@@À@@¡„   @@À@@UUUU€ÀÿÀ€ÀþÿÀóþ}ÿÿÌ  ÿÿ~ÿ þ ÿ <Àþ}ÿÿÿÿÀ€À~ÿÀ€þÀÀÿþóÌ }ÿÿÿÿ~ ÿþ ÿ <þ}ÿÿÿÀÀ€Àÿ~ÿÀþUUUUÀ€€À€€a„  @€À€€À€€a„  @€À€€UUUU@ÀÀýÿ@ÀýÀóÿÿÿÌ  ÿÿ€ý ÿ ýÿ<ÀÿÿÿÿÀ@À€ýÀ@ÿÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý <ÿÿÿÿÀÀ@Àÿ€ýÀÿUUUU€À€€À€€@  €À€€À€€@  €À€UUUUÀ@ÀÿýÀÿ@ÀÀý€ÀÌ ÿÿÿ ý  ÿý €ÿÿÀÀ@ÿÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ÿ ÀÀÿÿ@ÀýUUUU3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ333ÿÿÿÿÿÿÌÃ33ÿ€€ÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ30 Ìÿÿÿÿ€€3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿÌÃ3ÿ€€ÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ330 ÿÿÿÿÿÿÌ333€€ÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿPó}|{À€|<}|{|óÀ€}|{|<}|{|UUUUÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€À@ÿüÌÌ?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÏÿ€€À@?@?@?@ÌÌÌÌ€€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÿüÌÀ@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÏ€€€À@?@ÿÌÌÌ?@?@€€€€ÌÌÌÌ€€€€PHf`†fHf`†fUU’@!!ÀÀÎ!"   á’!"@!!!’@!!UU’@!!ÀÀÎóô  ó á’ô@!!!’@!!UUÀóóÌ óÌ ´\ ?<¥¦¥¦¥¦¥¦ÀÌ ¥¦?<ÀÏ´<ÀÀÀ\§óóÌ ¨§¨§¨§¨§¨ÀÀóóÌ À UUÌÌÌ878787ÀÌÿü8{'('('('¶ÌÌÌÀ|{|{|{| ÌÌ{|7878ÌÀ 7878{ÏÿÌÌ%&%&%&%´|{|ÌÌÀ{|{|{ÌÌÌÌ|7878787À8YIHHHðPeee"„„„€„„„€ PeeeHHH@UU€À€@À@„   @€À€@€€À€@UUÀ@ÀÿýÀÀÀÌþ‚ÿÿ€  ÿý þýÿ ýþ‚ Àÿÿ€À@ÀÀÿýþÀÀ@ýÿÀÀýþUUÀ@@¡„   @@À@@À@@UU€ÀÿÀóÌ þ}ÿÿÿÿ~ ÿ  þÿ þ}ÿ<ÀÀ€ÿÿÿ~ÀÀÿþ€ÀÿÀþUUÀ€€a„  @€À€€À€€UU@ÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý ÿÿ<ÀÀ@ÿÿÿ€ÀÀýÿ@ÀýÀÿUU€À€€@  €À€€À€UUÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ ÀÿÿÀ@ÀÿýÀ@ÿÀýUU3333ÿÿÿÿÿÿÿÿ3ÌÃÿÿÿ€€ÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3330ÿÿÿÿÿÿÿ Ì33ÿ€€ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33ÿÿÿÿóÀ€}|{|}|<{|UUÌÌÌÌ€€€€ÌÌÿü€À@?@?@?@€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÀÏÿÌÌ@?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌ€€Hf`†f…Íÿ¹À@@@à>€¿…Ð                                                                                                    L1U_liftL1U_liftš™Â'Ã!<ÄÍÌøÁ@¿@¡'R   €ˆ€š™¡'RB'ÃÍÌøÁ!<D@¿@Ó"ˆË" UUUUÀÎ!"   ! á’"@!!!’@!!ÀÀÎ!"   á’!"@!!!’@!!ÀÀ!Î "UUUUÀÎô   ó á’ô@!!!’@!!ÀÀÎóô  ó á’ô@!!!’@!!ÀÀóÎ ôUUUU3Ì \¥?<À¦¥¦¥¦¥¦¥Ì ?¦<ÀÏ<´ÀÀÀó\§¨§¨óÌ À§¨§¨§¨ÀóóÌ óÌ ´\ ?<¥¦¥¦¥¦¥¦ÀÌ ¥¦?<ÀÏ´<ÀÀÀ\§óóÌ ¨§¨§¨§¨§¨ÀÀóóÌ óÌ´ ?\§¨§¨§¨@@P À &@€ á„ &UUUU ÿüÌ%&%&%&%´|{ÌÌÀ |{|{|{ ÌÌÌ|787878À Ï78{%&%ÿÌÌÌ&%&%´|{|{|ÌÀÌ{|{|7ÌÌÌ878787ÀÌÿü8{%&%&%&%´ÌÌÌÀ|{|{|{| ÌÌ{|7878ÌÀ 7878{ÏÿÌÌ%&%&%&%´|{|ÌÌÀ{|{|{ÌÌÌÌ|7878787ÀÌÿ8{%&%&%üÌÌÌ&%´|{|{|{R•”ePeee„„„€ Ï"ÿHHHðPeee"„„„€ "Peee  HH@€ðPee ðUUUU@„   @€À€@€€À€@À@„   @€À€@€€À€@À@„ UUUUÀÌÿÿ€  ÿýþ ýÿ ýþ‚ÿ ÀÀÿ€ÿ@ÀÀÀýþýÀ@ÀÿýÀÀÀÌþ‚ÿÿ€  ÿý þýÿ ýþ‚ Àÿÿ€À@ÀÀÿýþÀÀ@ýÿÀÀÀÀýþ‚ÿÌ ÿ€ÿUUUU!„   @@À@@À@@¡„   @@À@@À@@¡„ UUUU3Ì ÿÿÿÿ~ ÿþ ÿ <þ}ÿÿÿÀÀ€Àÿ~ÿÀþ€ÀÿÀóÌ þ}ÿÿÿÿ~ ÿ  þÿ þ}ÿ<ÀÀ€ÿÿÿ~ÀÀÿþ€ÀÿÀóÌþ}ÿÿÿÿ  ~ÿUUUU!„  @€À€€À€€a„  @€À€€À€€a„ UUUU3Ì ÿÿÿÿ€ ýÿ ý <ÿÿÿÿÀÀ@Àÿ€ýÀÿ@ÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý ÿÿ<ÀÀ@ÿÿÿ€ÀÀýÿ@ÀýÀóÌÿÿÿÿÿ  €ýUUUU€@  €À€€À€€@  €À€€À€€@ UUUUÀÌÿÿ  ÿý ÿ ý€ÿ ÀÀÿÿ@ÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ ÀÿÿÀ@ÀÿýÀ@ÿÀÀÀý€ÿÌ ÿÿUUUUÌÃ3ÿ€€ÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ330 ÿÿÿÿÿÿÌ333€€ÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3ÌÃÿÿÿ€€ÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3330ÿÿÿÿÿÿÿ Ì33ÿ€€ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33Ìÿÿÿÿÿ€Ã333€ÿÿÿÿÿÿÿAAPP3À€|{|<}|{|óÀ€}|{|}|<{|óÀ}|{|€UUUU ÿüÌ@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÏ€€€À@?@ÿÌÌÌ?@?@€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÿü€À@?@?@?@€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÀÏÿÌÌ@?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÿ€€À@?@?@üÌÌÌ?@€€€€AAPPf`†fHf`†fHf`UUUU  á!"’@!!!’@!!ÀÀÎ !"  !"á’@!!!’@!!ÀÀÎ!"  UUUU  áóô’@!!!’@!!ÀóÀÎ ô  óá’@ô!!!’@!!ÀÀÎóô  UUUU<ÀÌ §¨§¨?<ÀÏ<ÀÀ²\ÀóóÌ¥¦¥¦¥¦¥¦¥ ÀÀó¦óÌ ó´Ì \§¨§?<Ą̀§¨§¨§¨ ?<ÀÏ<À´ÀÀóó\§¨§¨§¨§Ì ÀÀ¨§¨óóÌ óÌ ²\¥?<À¦¥¦¥¦¥¦¥Ì ?¦T@€ À &@€ ÀUUUUÀ Ì|{|78ÌÌÀ 787878 ÏÿÌ{%&%&%&%´|ÌÌÌ{|{|{|ÀÌÌÌ{|78787ÌÀÌ878{%ÿüÌÌ&%&%&%´|{|{ÌÀ |{|{|ÌÌÌÀ7878787 Ïÿ8y'('('('ÌÌÌÌ´|{|{|{|ÀÌÌ{|787ÌÌÀ87878ÌÿüÌy'('('('´|{ÌÌÀ |{|{|{ ÌÌÌ|787878%%YI„„„€ðPeee"HHH@Ì"eee„„„€ðPeee"HHHH@ˆHHH@ðPeee „„„UUUU  @€À€@€€À€@À@„   @€À€@€€À€@À@„  UUUU ýþý  ÿýþ À‚ÿÿ€À@ÀÿýÀÀÀþýÿ@ÀÀÀýþ‚ÀÌ ÿÿ€ÿ ýþý  ÿý þ‚ÿÿÀÀ@€ÿÀÀÀýþýÀ@ÀÀÿýþÀÀÌ‚ÿÿ€  ÿýþ ýÿUUUU  @@À@@À@@¡„   @@À@@À@@¡„  UUUU þ ÿþ<ÀÀ}ÿÿÿÿ~€ÀÿÀ€ÀþÿÀóþ}ÿÿÌ  ÿÿ~ÿ þ ÿ <Àþ}ÿÿÿÿÀ€À~ÿÀ€þÀÀÿþóÌ }ÿÿÿÿ~ ÿþ ÿUUUU @€À€€À€€a„  @€À€€À€€a„  UUUU ÿ ýÿ<ÀÀÿÿÿÿ€@ÀÀýÿ@ÀýÀóÿÿÿÌ  ÿÿ€ý ÿ ýÿ<ÀÿÿÿÿÀ@À€ýÀ@ÿÀÀýÿóÌ ÿÿÿÿ€ ýÿ ýUUUU €À€€À€€@  €À€€À€€@  UUUU ý  ÿý À€ÿÿÀ@ÀÿýÀÿ@ÀÀý€ÀÌ ÿÿÿ ý  ÿý €ÿÿÀÀ@ÿÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿUUUU3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ0 Ì3ÿÿ€€ÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ333ÿÿÿÿÿÿÌÃ33ÿ€€ÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ30 Ìÿÿÿÿ€€3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿÌÃ3ÿ€€ÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ<}|{|ó}|{À€|<}|{|óÀ€}|{|UUUUÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÏÿÌ€À@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€À@ÿüÌÌ?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÏÿ€€À@?@?@?@ÌÌÌÌ€€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÿüÌÀ@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€†fHf`†fHf`UUUU ! á’"@!!!’@!!ÀÀÎ!"   á’!"@!!!’@!!ÀÀ!Î "  á!"UUUU ó á’ô@!!!’@!!ÀÀÎóô  ó á’ô@!!!’@!!ÀÀóÎ ô  áóôUUUU<ÀÏ<´ÀÀÀó\§¨§¨óÌ À§¨§¨§¨ÀóóÌ óÌ ´\ ?<¥¦¥¦¥¦¥¦ÀÌ ¥¦?<ÀÏ´<ÀÀÀ\§óóÌ ¨§¨§¨§¨§¨ÀÀóóÌ óÌ´ ?\§¨§¨§¨<ÀÌ §¨§¨?<ÀÏ<ÀÀ²\A@@ À À €UUUUÀ Ï78y'('ÿÌÌÌ('('´~}~}~ÌÀÌ}~}~9ÌÌÌ:9:9:9ÀÌÿü:{'('('('´ÌÌÌÀ~}~}~}~ ÌÌ}~9:9:ÌÀ 9:9:{ÏÿÌÌ'('('('´~}~ÌÌÀ}~}~}ÌÌÌÌ~7878787ÀÌÿ8{'('('üÌÌÌ('´~}~}~}À Ì~}~78ÌÌÀ 787878 ÏÿÌ{'('('('¶|UV’•€ Ï"ÿ@HHHðPeee"„„„€ PeeeHHHðp‡‡"ð„„„€ðPeee"UUUU @€À€@€€À€@À@„   @€À€@€€À€@À@„   @UUUU ýþ‚ÿ ÀÀÿ€ÿ@ÀÀÀýþýÀ@ÀÿýÀÀÀÌþ‚ÿÿ€  ÿý þýÿ ýþ‚ Àÿÿ€À@ÀÀÿýþÀÀ@ýÿÀÀÀÀýþ‚ÿÌ ÿ€ÿ ýþý  ÿýþ À‚ÿÿ€UUUU @@À@@À@@¡„   @@À@@À@@¡„   @@UUUU <þ}ÿÿÿÀÀ€Àÿ~ÿÀþ€ÀÿÀóÌ þ}ÿÿÿÿ~ ÿ  þÿ þ}ÿ<ÀÀ€ÿÿÿ~ÀÀÿþ€ÀÿÀóÌþ}ÿÿÿÿ  ~ÿ þ ÿþ<ÀÀ}ÿÿÿÿ~UUUU@€À€€À€€a„  @€À€€À€€a„  @€UUUU <ÿÿÿÿÀÀ@Àÿ€ýÀÿ@ÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý ÿÿ<ÀÀ@ÿÿÿ€ÀÀýÿ@ÀýÀóÌÿÿÿÿÿ  €ý ÿ ýÿ<ÀÀÿÿÿÿ€UUUU€À€€À€€@  €À€€À€€@  UUUU ý€ÿ ÀÀÿÿ@ÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ ÀÿÿÀ@ÀÿýÀ@ÿÀÀÀý€ÿÌ ÿÿ ý  ÿý À€ÿÿUUUU330 ÿÿÿÿÿÿÌ333€€ÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3ÌÃÿÿÿ€€ÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3330ÿÿÿÿÿÿÿ Ì33ÿ€€ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33Ìÿÿÿÿÿ€Ã333€ÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ0 Ì3ÿÿ€€ÿÿAAA<}|{|óÀ€}|{|}|<{|óÀ}|{|€<}|{|UUUUÌÌÌÏ€€€À@?@ÿÌÌÌ?@?@€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÿü€À@?@?@?@€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÀÏÿÌÌ@?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÿ€€À@?@?@üÌÌÌ?@€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÏÿÌ€À@?@?@?@€€AAA†fHf`†fHf`†fUUUU’@!!!’@!!ÀÀÎ !"  !"á’@!!!’@!!ÀÀÎ!"   ! á’"@!!!UUUU’@!!!’@!!ÀóÀÎ ô  óá’@ô!!!’@!!ÀÀÎóô   ó á’ô@!!!UUUUÀóóÌ¥¦¥¦¥¦¥¦¥ ÀÀó¦óÌ ó´Ì \§¨§?<Ą̀§¨§¨§¨ ?<ÀÏ<À´ÀÀóó\§¨§¨§¨§Ì ÀÀ¨§¨óóÌ óÌ ²^§?<À¨§¨§¨§¨§Ì ?¨<ÀÏ<´ÀÀÀó\§¨§¨óÌ À§¨§¨§¨PT@’a„À@€@’a„À @’a„UUUUÌÌÌ{|{|{|ÀÌÌÌ{|78787ÌÀÌ878{'ÿüÌÌ('('('¶|{|{ÌÀ |{|{|ÌÌÌÀ7878787 Ïÿ8{'('('('ÌÌÌ̶|{|{|{|ÀÌÌ{|787ÌÌÀ87878ÌÿüÌ{'('('('¶|{ÌÌÀ |{|{|{ ÌÌÌ|787878À Ï78{'('ÿÌÌÌ('('¶|{|{|ÌÀÌ{|{|7”%%UHHH@Ì"eee  „€„„„€ðPeee HHH@ðPeee"„„„€ Ï"ÿ@UUUU€À€@€€À€@À@„   @€À€@€€À€@À@„   @€À€@€UUUUÀ@ÀÿýÀÀÀþýÿ@ÀÀÀýþ‚ÀÌ ÿÿ€ÿ ýþý  ÿý þ‚ÿÿÀÀ@€ÿÀÀÀýþýÀ@ÀÀÿýþÀÀÌ‚ÿÿ€  ÿýþ ýÿ ýþ‚ÿ ÀÀÿ€ÿ@ÀÀÀýþýUUUUÀ@@À@@¡„   @@À@@À@@¡„   @@À@@UUUU€ÀÿÀ€ÀþÿÀóþ}ÿÿÌ  ÿÿ~ÿ þ ÿ <Àþ}ÿÿÿÿÀ€À~ÿÀ€þÀÀÿþóÌ }ÿÿÿÿ~ ÿþ ÿ <þ}ÿÿÿÀÀ€Àÿ~ÿÀþUUUUÀ€€À€€a„  @€À€€À€€a„  @€À€€UUUU@ÀÀýÿ@ÀýÀóÿÿÿÌ  ÿÿ€ý ÿ ýÿ<ÀÿÿÿÿÀ@À€ýÀ@ÿÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý <ÿÿÿÿÀÀ@Àÿ€ýÀÿUUUU€À€€À€€@  €À€€À€€@  €À€UUUUÀ@ÀÿýÀÿ@ÀÀý€ÀÌ ÿÿÿ ý  ÿý €ÿÿÀÀ@ÿÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ÿ ÀÀÿÿ@ÀýUUUU3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ333ÿÿÿÿÿÿÌÃ33ÿ€€ÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ30 Ìÿÿÿÿ€€3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿÌÃ3ÿ€€ÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ330 ÿÿÿÿÿÿÌ333€€ÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿPó}|{À€|<}|{|óÀ€}|{|<}|{|UUUUÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€À@ÿüÌÌ?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÏÿ€€À@?@?@?@ÌÌÌÌ€€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÿüÌÀ@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÏ€€€À@?@ÿÌÌÌ?@?@€€€€ÌÌÌÌ€€€€PHf`†fHf`†fUU’@!!ÀÀÎ!"   á’!"@!!!’@!!UU’@!!ÀÀÎóô  ó á’ô@!!!’@!!UUÀóóÌ óÌ ´\ ?<¥¦¥¦¥¦¥¦ÀÌ ¥¦?<ÀÏ´<ÀÀÀ\§óóÌ ¨§¨§¨§¨§¨ÀÀóóÌ À UUÌÌÌ878787ÀÌÿü8{'('('('¶ÌÌÌÀ|{|{|{| ÌÌ{|7878ÌÀ 7878{ÏÿÌÌ%&%&%&%´|{|ÌÌÀ{|{|{ÌÌÌÌ|7878787À8YIHHHðPeee"„„„€„„„€ PeeeHHH@UU€À€@À@„   @€À€@€€À€@UUÀ@ÀÿýÀÀÀÌþ‚ÿÿ€  ÿý þýÿ ýþ‚ Àÿÿ€À@ÀÀÿýþÀÀ@ýÿÀÀýþUUÀ@@¡„   @@À@@À@@UU€ÀÿÀóÌ þ}ÿÿÿÿ~ ÿ  þÿ þ}ÿ<ÀÀ€ÿÿÿ~ÀÀÿþ€ÀÿÀþUUÀ€€a„  @€À€€À€€UU@ÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý ÿÿ<ÀÀ@ÿÿÿ€ÀÀýÿ@ÀýÀÿUU€À€€@  €À€€À€UUÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ ÀÿÿÀ@ÀÿýÀ@ÿÀýUU3333ÿÿÿÿÿÿÿÿ3ÌÃÿÿÿ€€ÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3330ÿÿÿÿÿÿÿ Ì33ÿ€€ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33ÿÿÿÿóÀ€}|{|}|<{|UUÌÌÌÌ€€€€ÌÌÿü€À@?@?@?@€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÀÏÿÌÌ@?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌ€€Hf`†f…Íÿ¹À@@@à>€¿…Ð                                                                                                    L2D_liftL2D_lift ’UÂ",<ÃËJÄo2ŽB’›"Ãî{+Ä   Ð ’UÂî{+D",<Ão2ŽBËJD’›"ÃíÐå Y]}VÀÌÌIJHÍ ðË ðÐï¿üÐÍÎÏÐüÌÏ<Í ôÏ;Ð<;<ÏÏÿü ;<Ð;ÏÐ<Ï;”K Ìó LHÍÂÏÐ Û Î ÏÐ Í $ÐÏó óÿ”ÏÐ<ô<;<Ð;ÏÿÀÀÏÐ<Ï;”KL…Î?0ÌÏÍÂÏÐ Í Ü Ï Ð ÍæÏ;Ð<;<Ï;<Ð;ÏÐ<Ï;” óóKL‡ÐÏÂÍÎíð°ÏßþûÏÐÍÎÏóÌóó$ÐÏ;Î>=>ô<;ÿÿÀÀ<Ð=ÍÎ>Ï;’IÏ<ÀÏJ…ÐÏ ÎÛ YiªVÄ0!@#2ÔÀÀ <ÌILó"#2A#4@ÌÀ@‹IT @B$0@0@0@ðI #T!@#2A³ À3ÌÀ@I‹4ÀŠÙ]}v3Ì ÌLKLK#  ðíð°Ïßþ¡ Ÿ¢¡üÌÏ<  }¢;¡<;<¢;<¡;¢¡<¢;iLKLÀÌó K#¢¯¢¡” ¡ ¢¡¢ $¡¢ó óÿÝ¢¡=ó;Ï>=Ð<ÍVÀÏ<ÏIJ…ÐÏ Ð þ ïßþýÿÝÐÏÐÏ$Ð?0Ï?Ï”ÏÐ<ô<;ó;ÿü Ï<;Ð<ÏXIJÿÐðíðÐ…ÐÏÐÏÐ ÏÐÏ $ÐÏ;Ð<;<ô<;<Ð;ÏÐ<Ï;šš¦B$0@4@0ÌóKT @#2A#0@0@ðK4É"#2A#4@0Ã<KC0!@#2A#P!@R@W�å “   Ÿ ¢‰ Û 0ÌÏÿŸ< ;<Ÿ; Ÿ<ÿ<Àó ;gLKLK|Ÿ ó Ìÿ­¢¡  Ÿ ¢ÿóÌ ¡  $¡¢;¡€¿Ð                                        L2U_liftL2U_liftJì�½‚:Ã¥HÄjnB'ò Ã& *Ä   ÐJì�Â& *D½‚:ÃjnB¥HD'ò ÃôÐì y}vVÀÏ?IJ…ÎÍÂÏË ðÐûþßÐÍÜÏÐ ÍÐÏ”ÏÐ<;<ÏÏÿü ;<Ð;ÏÐ<Ï;”K ÌóóLHÍÂÏÐ Û Î ÏÐ Í $ÐÏ;Ð<;<ô<;ó;Ï<ÿÀÀÏ;Ð<ÏXKL…ÎÐðàþ ïÍÎÛÎÿÿ<À ÍÎÍ $ÐÏ;Ð<ô<;<Ð;ÏÐ<Ï;” óÌKL‡ÐÏ Îàð°ÏßþûÏÐÍÎÏóó ó$ÎÍ’ÍÎ<ö<;ÿÿÀÀ<Î;ÍÎ<Í;’IÏ??€¿Ð                                         D01_fence D01_fencež^}Á±ÁƒÂ.¸‚øAê•ßÁoåÂÂ,ž^}ÁoåB±ÁƒÂ¸A.¸‚Cê•ßÁž ,–  ùÿÿ÷3óóó"!"$#$ü É Ÿÿ)*)QRQ€µ¶µïðïÌË̆…†878klk¿À¿äã䊉Š.-.WXWöõöFEFcdcôóôRQREFEרע¡¢&%&IJI«¬«ýþý¾½¾Š‰ŠjijXWX\[· $#$$#$787cdc—˜—ÑÒÑìë줣¤XWá³óóXSTS­®­òñò”“”0/0cdcÔÓÔ­®­š™šj¥ª…DDDDDDDB$DB¡¡¡¡¡€!’@R3335UUUWuWwwuôD?DDDDDDDDá³á¡¡¡¡€1ýÿÿï3óóómnmuvu€‰Š‰‘’‘›œ›¡¢¡«¬«±²±¹º¹¿À¿ÃÄÃÉÊÉÏÐÏÑÒÑÕÖÕÙÚÙÙÚÙÛÜÛßàßÀ¿À¾½¾À¿ÀÄÃÄÊÉÊÐÏÐÖÕÖàßàêéêôóôûüûïðïßàßÏÐϽ¾½©ª©•–•�‚¦‘’‘‰Š‰€uvumnmcdcYZYQRQGHG=>=787-.-)*) ýÙ ŸÿVUVXWXPOPJIJ@?@21ªªªª ì Î î î ì Î î ì Î î ì Î ì Î î ì Î ì Î ì Î ì Ì Î ì Î ì Î ì Ì Î î ì Î ì Î î ü Î î ì Î î î î î ì Î î î î î î î î î î î î î ïþ î ÿÿÿÿâ4ã°ø4÷Äê4é¶à2ݬû2üÒé4èäç2êäç4ææ÷2úÔ¹2ºëÑ2Òü·2¸é»2¼í½4¼ï½4¾ñ½4¾ñ¹2¼í¹4¸ë¡2¤Õ½4¼ï%2(Y[2\�=2>o;22= r2q@ˆ2‡Vr2q@Š4‹X¾2»Š¤2£rÒ4Ó ê2ç¶Ü2Û/          ûüýþûüÀÀÀÀ«s1 ÀÀÀÀL’ÒãÀÀÀŸ[ @@@@@@@ÀÀÀÀ¬t2 ÀÀÀÀK‘ÑäÀÀÀ \€€€€€€€ÀÀÀÀ'æºÀÀÀÀvéöÀÀÀ)9Y@@@@@ÀÀÀ+$\ÀÀÀÀ¢Êú¯ÀÀ�M@@@@@@3333€€€€3333€€€€333€€€ÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÿÿÿÿÿÿÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌ}~}~}~/h�óˆv‰öºOx€¿ÇÐD01_liftD01_liftÍÌÂ4ÀoÂSö~ÊŸ¢A§ÁÎÍ   ,¨,ÍÌÂÎÍB4ÀoŠŸ¢ASö~C§Áç¨ß õ]ÀÌ î ÌÌóŽ˜Ò–•ÑÒŽ•–Ò˜—ÑÒÅÇÔdc¹dÆÈdºcHãäãä0 3ãäãäãäoÇÔdc¹dÆÈdºcóóÀHãäãäãä33óóãäãä=àßàßàÀ3óÀßàßàßàßóóÀ3ýàßàßàßàßóÀàßàßUU@ŒÉÀHaÆÒ@!ÐÁB�?)*)*0 3)*)*)>@ä(*óóÀ)*)*)*33@)*)*á’@!'’@U®3Ì<©ª©ªy©ª©ÀÌ ÀªZYZó ÀÏGYZYZ¬²<ÿÏü $<;<²î;<;PC4@0í²`<;<²î;<;ð0C4P@0@ûüûüdÞéÞÑÞÝö Þ é Þ ÑÞÝÅ Þ é Þ ÑÞÝö Þ ÿÿé Þ ÑÞÝUU $€Àˆ€Àó &@Œñ@’a„ÌÌ¢×Ø×óÌÌóØ×Ø×ÕÖÕÖÕÖÌÌóÌØ×Ø×Ø×Ø×ÕÌóÖÕÖÕÖÕ] ÿüÏ­®­®­®­®­®­ÿó3 ®­®­®²±²±²Ìó ó±²±²±²>wðïÌÌÀ ðïðïðïŠtstststststÌÌÌÌwðïðïðïðÀ?ÿï}~�€zýý}~�~zûú}~�€zýý}~ÿÿ�~zûUn ÿüÏ87878787878ÿó3 7878—Ìó ó±VU?ÿôÌVUVUVUVUV`P`P`PVxwxwxwxwxwx0`P`P`P`ÀÌ̇´³´óÌÌó³´³´´³´³´³ÌÌó̳´³´³´³´´Ìó³´³´³UU@€ÀÀÀK”IÀÀÀŒI”Ià ÌÌ{ÃÄ| 0ÌÌ{€ü€ûÀ€À~€@ÀÀ¨+ÀÀÀÀ{¨+{ÀÀÀÀ¨+{¨ÀÀ+{UUÀÀ ÿÿÿ ÀÀÀÿ#¹¡ÀÀÀÌ£¹¡ÿ  Ì̾ Ÿ½`  ÿýþ0ÌÌ¢Ÿ ¾ Ÿ½ÀÀ@`ÿÀÀÀÀýþ(ˆÀÀÀÀ¯(ˆ¯ÀÀÀÀ(ˆ¯(ÀÀˆ¯UUH$€ÀÀMNÀÀÌMNFÐÀÌ /ŸÐæ< À½tsôsÀÀ@¾@ÀÀuãÀÀÀÀ£wã£ÀÀÀÀwã£wÀÀã£UU3Ì<ÿÿÿÿÿÿÿÀÀÀÿܤÀÀÌ£¤ý¥ÀÌ ¹Ÿ¥] ÿþ< À^¤£¹¡£À€À]ÿÀÀÀþRÖÀÀÀÀ%¯Ö%ÀÀÀÀ¯Ö%¯ÀÀÖ%UU!„@ÀÀLMÀÀŒNMLÀÌ —LLI< ÀJKL—LLÀÀ€I€ÀÀjÙÀÀÀÀnn×jÀÀÀÀlÙnnÀÀ×jUU3Ì<ÿÿÿÿÿÿÿÀÀÀÿÝ£ÀÀ̤£ý¢ÀÌ º¤¢^ ýÿ< À]¡¢º¤¢À@À^ýÀÀÀÿ.ÀÀÀÀêè.êÀÀÀÀè.êèÀÀ.êUU@€ÀÀÀK”IÀÀÀŒI”IL ÌÌ›LKœM 0ÌÌNKL›LKœÀ€ÀM€À�ÀÀ@ÀÓÔÏÀÀÀÒÓÔ@ÀÏUUÀÀ ÿÿÿ ÀÀÀÿ#¹¡ÀÀÀÌ£¹¡ÿ¢ Ì̺¢¡¹^  ÿý0ÌÌ]¡¢º¢¡¹ÀÀ@^ÿÀÀýkÀÀÀ¤£¤ÀÀÀ£¤£À¤TDÌÌóëìvž�uvóÌóÌuëìvž�uvŸ*ÌÌÀëìvëv<ÌÌ)*ëìvëv3óëìë�žÌóóÌìvuëìë�žìvóóÌóuëìë�žìvuëìóÌë�žìvTDÌÈs©ª«¬«óÈs̬©ª«¬«°ÌÌÀ©ª«©©<Ì̯°©ª«©©3Ò©ª©ÌóÒ̪«¬©ª©ª«óÒÌ󬩪©ª«¬©ªÒÌ©ª«UDÌÀ ÿ€€ÿÌÌÌó€€TS«ÿÿ¬«óÌó ¬TS«ÿÿ¬«¬ÌÌÀT¬TVV<ÌÌ«¬T¬TVV3óTSTÿÿÌóóÌS«¬TSTÿÿS«óóÌó¬TSTÿÿS«¬TSóÌTÿÿS«UU3À�<|{|}|{|LÀ!{|óÀ!L{|{|yÀ�3|}~}~3333}~}~}~}~3<}zy|ó333}~}~}~}~}333À~}~}|{|„óÀ„{|{|óÀ„ó{|{|{|{À„|U] ÿüÏÿÿÿÿÿÿÿÿÿÿÿÿó3 ÿÿÿÿÿÿÿÿÿÿÌó óÿÿÿÿÿÿÿÿÿ?ÿðÌÿÿÿÿÿÿÿÿÿÀ¿ÌÌÌÌÀ¿À¿À¿À¿À@ÿÿÿÿÿÿÿÿÿÿÿ ÌÌÌÀ¿À¿À¿ÀÌÌ Ì¿À¿À@?@ó Ìó?@?@?@?@? Ìó @?@?@?@Ìó?@?@?@T@HaHaHaHaˆd`9ˆ}ÀÀ@À?€¿1Ð                         D02_accent D02_accentEØÁX¹¯Âqý­ÃÞÂ?�1�Â3SŽÃN4NEØÁ3SŽCX¹¯ÂÞÂ?qý­C�1�ÂC4; u óóó1221221221óóÌó221221öÁÂÂÁÂÂÁÂÂÁÂÂÁÂÂÁóÂÀ¿u óóóGHHGHHGHHGóóÌóHHGHHGŽCDDCDFEFDCDDCDFEóFDCU3 Ì̬«¬«¬«¬ÌÌó «¬«¬¦¬«¬ÌÌÌÌ«¬«¬«¬«¬Ì«¬U!HHHHáHHHHH]?ÌÌÌ›•œ–›œ›œ›œ›œ…™„Ú`áüy`ÌÌÌÌ_`_`_`_`ÿ_×`Øe!HHHH÷Œ 0@0@0@0@ÿ  EÀxÀÀÀ2~¯À~EÀ€ÀÀ À&EÀ¡ÀÀÀ�C�ÀD@À À À­ÀÀ§¨€ÀÀ DÀÀñòÀ-DÀÀÀ5U 333ÿÿÿÿÿÿÿ33Ì3ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3ÿÿU 333}~}~}~}33Ì3~}~}~}~}3333~}~}~}~}3~}U3 ÌÌÿÿÿÿÿÿÿÌÌó ÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÿÿU3 ÌÌ}~}~}~}ÌÌó ~}~}~}~}ÌÌÌÌ~}~}~}~}Ì~}‚KMþÄþ_ßV~€?€?€¿SÐ D02_banner D02_banner»Ám¥¼Â8¸Ã¼ô›AKY{‚J�ûÁ‚J�Cm¥¼Â¼ô›A8¸CKY{ÂÛÓ  óÌóU:UV¬�ž�Ž óÌó óÌóT TSÐô«ôó@3 ³ {|{{|{3 ³ ÀÀÀÌ•`ÀÀÀA *ÀÀÀÈ1cÀÀÀA6)ÀÀÀÇ2dÀÀÀB5*ÀÀÀÌ•`ÀÀÀA *Ì3ÿÿÿÿ 3À}~}~3 ó €€ÿ€€ÿÿÖ=öÍÎ�2oÍ?@?€¿Ð T00_groomed T00_groomedÀÀ®G!¿ÀÀÀ@ðA   €á€ÀÀðÁ®G!¿À@À@ÜáÔ UU     ýÿÿ3ÌÏÿ@?€@@¿?€@@¿?€@@¿?€@@>@@@¿@@@¿@@@¿@@@B?€@@¿?€@@¿?€@@¿?€@@>@@@¿@@@¿@@@¿@@@B?€@@¿?€@@¿?€@@¿?€@@>@@@¿@@@¿@@@¿@@@B?€@@¿?€@@¿?€@@¿?€@@>@@@¿@@@¿@@@¿@@@B?€@@¿?€@@¿?€@@¿?€@@>@@@¿@@@¿@@@¿@@@B?€@@¿?€@@¿?€@@¿?€@@>@@@¿@@@¿@@@¿@@À@UUU ÿü©ª©ª©ª©«©À?ÿ©ª©ª©ª©ªð000©«©©« À©«©000©«©0 ©«©À00©«©00 ©«©«À0©©000 «©©«À©©0000«©©« À©«©000©«©UUU ÿüÀ?ÿSð000 À0000?0 À000?00 À00?000 À0?0000 À0000?@0 À0000 @0� À�w�0000ƒ�w�Pü0î í0ðî+ÀðÀ³;<<;´0ðð³<;;ðPü0  0ð �€� ýÿÿ3ÌÏÿ_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ À`UUUÌ‚‚Áò‚‚~0ÿ|Á‚‚‚ø‚~0|ÿ‚‚‚Áø‚~0|ÿ‚‚Áø‚‚~0|ÿ‚Áø‚‚‚~0ÿ|Á‚‚‚ø‚~UUU ÿüÀ?ÿ`ð000 À0000H0 /À000/x/00 ////À00O°/000 /O__À0¿À`0000_¿ÀÿÀÀ€000ÀÀ€U@ @ 0ÿ ÿÿÿÀÀøA€¿ŽÐ     " &(   :DFHB@   RD^`J0 RLZ\F8  NHVXB4  Vd^`fdjlZdfh^dfh   aEaš?ace[ace[aceGAOQ;-  C=KM7)  ?9GI3%  GUOQW U[]KUWYOUWY       4`‹>`bdZ`bdZ`bdF@NP:,  B<JL6(  >8FH2$  FTNPVTZ\JTVXNTVX   ‘5aŠ?ace[ace[aceGAOQ;-  C=KM7)  ?9GI3%  GUOQW U[]KUWYOUWY      �4`‹>`bdZ`bdZ`bdF@NP:,  B<JL6(  >8FH2$  FTNPVTZ\JTVXNTVX   ‘5aŠ?ace[ace[aceGAOQ;-  C=KM7)  ?9GI3%   T00_powder T00_powderX®G!¿ÀÀXBÍÌ4AðAÀbÀXÂðÁ®G!¿XBÀ@ÍÌ4A«b£ õýÿÿ3ÌÌÏrqärprröƒÌÌÿãããáªããáªããáªããáâáâ:ãã¬â:ãã¬â:ãã¬â:ãó333ãrrrrprrtqärprröƒãããáªããáªããáªããáâ:ãã¬â:ãã¬â:ãã¬â:ããrrrrprrtqärprröƒãããáªããáªããáªããáâ:ãã¬â:ãã¬â:ãã¬â:ããrrrrprrtqärprröƒãããáªããáªããáªããáâ:ãã¬â:ãã¬â:ãã¬â:ããrrrrprrtqärprröƒ©­ëê3ÌÌÏ8 €`€`ö†ö†ö†öà`:€õæ�^hõæó3338 hohoho^h@õæ�^hõæ�8 ††ö†ö†ö†õæ�^hõæ@8ÿÿúhohohoho^hõ@æ�^hõæ�ÿ8 _WUU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©«ÀÀÌÿ©©ª©ª©ª©üÀª©«©©ª©ª©ª©ª©ª©ª©ª©«üãä©«©©«©À0 ©«© ?©ãä«ð ©©«©©À«©00©«ÿÀ0ãä©«©©00 «©©À«©Àÿ©ãä«©©_WUUTSTSTSTSTST7SÀÀÌÿSüÀSTSTSTSTSTSTSTVÿ9??À0  ?V9ü ? À?00Tÿð07?000 ?ÀÀÿV9õýÿÿ3ÌÌÏðïpí�ÉÊ™ÌÌÿ°qlÛâqlÛâqlÛâqlÛÜÛpà,ŸÛpà,ŸÛpà,ŸÛpàó333,O^ 3W%ïpí�ÉÊ™°qlÛâqlÛâqlÛâqlÛÜÛpà,ŸÛpà,ŸÛpà,ŸÛpà,O^ 3W%ïpí�ÉÊ™°qlÛâqlÛâqlÛâqlÛÜÛpà,ŸÛpà,ŸÛpà,ŸÛpà,O^ 3W%ïpí�ÉÊ™°qlÛâqlÛâqlÛâqlÛÜÛpà,ŸÛpà,ŸÛpà,ŸÛpà,O^ 3W%ïpí�ÉÊ™¥­ëû3ÌÌÏ-.]55731ÌÀü  ûPûP`àððnÿïðn'''ó333T@@<><2k.]55731 µµµïðnÿïðnÿ'''T@@<><2k.]55731ûPûPûPûPnÿïðn'''T@@<><2k.]55731  µµïð'''T@@<><2k.]55731ÿÿÿÿ]gÆù£L í4[]_û4s9ö»s ÞÍÑÐÐÍÑÐÐÍÑÐÐÍ·dÎÎIYÐ÷8ÞèΣ'éèΣ'éèΣ'¦XÇî 3i€0`;$ÝžRÆb2(¹¹_Çs¼ÐÐÍÑÐÐÍÑÐÐÍÑÐÐÍzΣ'éèΣ'éèΣ'éèΣ'¦oâ�°$¹žRÆb2(¹¹_Çs¼ÐÐÍÑÐÐÍÑÐÐÍÑÐÐÍzΣ'éèΣ'éèΣ'éèΣ'¦oâ�°$¹žRÆb2(¹¹_Çs¼ÐÐÍÑÐÐÍÑÐÐÍÑÐÐÍzΣ'éèΣ'éèΣ'éèΣ'¦oâ�°$¹žLdîœ@ɼkÇ£ùù¾½ÈÞ”ôô�ÿù00 0   0 0 0 ó #R bÿŸ0 0 0  0 0 0 BBðBf R 0 0 0  0 0 ¯÷d /0Rƒàÿ 0 0 0  0 0 0 Bñbh P@ÿÿœ4dß(†A¿q€¤P)ÐÓñtÿÿ¤dÎÎIYÐ÷8ÞèΣ'éèΣ'éèΣ'¦XÇî 3i€0`;$Ýžöÿ)Σ'éèΣ'éèΣ'éèΣ'¦oÿüâ�°$¹žö)Σ'éèΣ'éèΣ'éèΣ'¦oâ�°$¹žö?ÿ)Σ'éèΣ'éèΣ'éèΣ'¦oâ�ÿÀ°$¹žöÐѱt{î 0 0 0 ó #*ÿ 0 0 0 àì* 0 0 ¯÷d /0*?ÿ 0 0 0 À*=]G]gÆù£L í4[]_û4s9ö»s ÞÍÑÐÐÍÿÿÀÑÐÐÍÑÐÐͤ£Æb2(¹¹_Çs¼ÐÐÍÑÐÐÍÑÐÐÍÑÐÐͤÿü£Æb2(¹¹_Çs¼ÐÐÍÑÐÐÍÑÐÐÍÑÐüÐͤ?£Æb2(¹¹_Çs¼ÐÐÍÑÐÐÿÿðÍÑÐÐÍÑÐÐͤÿÿÃòÝŒJ¹¥—Ç{]EÈÞ”ôô�ÿù0ÿÿ@0 0 & bÿŸ0ÿÿý 0 0 àø& 0 0 0ô 3&ƒàÿ 0ÿÿÐ 0 0 þ�&KPõýÿÿ3ÌÌÏ/0_/?___?ÌÌÿ//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 0ó3330 ``@000/0_/?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@000/0_/?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@000/0_/?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@000/0_/?___?UUUU@@„„„À€ÿ� Hÿ ÿH€ ÿHHHL� Hÿ 0ÿ!!!2ÿ� H€À@ÿ_WUU_`_`_`_`_`_@ `ÀÀÌÿ`üÀ`_`_`_`_`_`_`__ÿ@HHÀ0  ?�pü //x// Àx/00/ßÿð0 //O°/000 /O°/À/OÀÿ¿@ _¿À@U€` @@ÿãããáªããáªããáªããáâ:ãã¬â:ãã¬â:ãã¬â:ããrrrrprrtqärprröƒãããáªããáªããáªããáâ:ãã¬â:ãã¬â:ãã¬â:ããrrrrpðrrº††ö†ö†ö†õæ�^hõæ�@8ÿúhohohoho^hõæ@�^hõæ�ÿÿðUÀÀÀ«©©0 «©©«üãä©«©©«À©©0 «©UÀÀÀÀ?À0 ?Tÿ7?À?0 ÿ°qlÛâqlÛâqlÛâqlÛÜÛpà,ŸÛpà,ŸÛpà,ŸÛpà,O^ 3Wb4¼îí6UOÝoonßlÛrßlÛrqlÛrßlÛ÷ÛpàšÛp±šÛpà÷YÛp±÷3ÅððÅʺûPûPûPûPnÿïðnÿ'''T@@<><2…,Y17ÿÿuPµ Ó75!µ µÏñn--- X><:>ð<4ÿìÐÐÍÑÐÐÍÑÐÐÍŸÃ_W–Σ'éèΣ'éèΣ'é�n’Tиź$ù boÿA«cGµèV¢§ý fC A(‰3³‘qΗ4§ˆ}šƒ0Ñ;›ØEC‚íÚ=ð0û¯ 0 0 . 0 0 2�÷d /BL€ ÿÿ,,0 .�ùöÿ¶b.2°õÀÿr¥èLÀ¥Vn–Êt“QåVF,2=r}‰Ï¢˜ŸL·7… Æo»Gü[‰†Çz6ùÅÆÃ5û‚†¨êüë(Ïy†=³~OOl­Œðœ UÀË À ñ˜«££©´Å1Nu¨€}H)Σ'éèΣ'éèΣ'éæÌŸUÖúñ²߸ö#£¡#ÿÿ/ÎÙwúsÎîËÑÌ×Ô²›®ŠÝ¶˜¦¦_ðD·, 0 0 0¯÷d /*ÿÿ 0 Ÿ¯ùöÿ¶€26°×ÄÐÐÍÑÐÐÍÑÐÐÍ�¢ÎÏÀ¢ÿ”O¾&ó\‚ÃΰbnPé*p|ÿÿ|˜rºA_�Áp]€× 0 0 0 @ý$INSZ66ÿÿ:� I€ÿ//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@000/0_/?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@0ð00U„„„È�ÿ ÿ Hÿ€UÀÀÀÀ`_¿ÀÀ0 `_¿À@??ÿÀ€ÀÀ€À0 À€U€@€ý�€tàÿXÂøA€¿ÅÐ            ".0* 2,:<6(  >8FHB4       " &(   :D                ECE    "*,&  .(682$  ]                 535    "*,&  .(682$  I           535    "*,&  .(682$  I           535    "*,&  .(682$  I           535    "*,&  .(682$  I       T03_powder T03_powder„ ×çÁä„B ×ÁœÂèG脜B ×çÁ„BäB ×ÁïGç uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/0/0/-^/-Œ/0].-^/-^/-ÌÌÌ̹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-Œ/-^/-^/-^/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-Œ/-.-.-.ç|M0.º¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-..-.-.-.[-/-Œ-/-Œ-/-Œ-/-¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/--\.-.-.---/-Œ-/-Œ-/-i»®®3ÌÌÌ.ø`@44iFô V”iFpÌÌÌÌ.”iF”oF”ip .ÿÿÿ€diF”iFô`VV_p *.ÿÿ€diF”iFõeeeÆfzöföföfÿÿ.diF”iFoVtVVfföföfßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©© Ïà ª©ª©«©©ª©ª©ª©ª©ª©ª©ª©ª©ÀÿÀ«ãä©«©Ã <0©«©¬«©Ã0«©©?ð0ãä«©©«Ã30©©ª©«©©ðqr«ÿ ãä©«©©«0 Ì©©«©ÀÀÀ©«©ÿ©ãä«©© 0«©©«3ÀÀ©©«©ßUUUTSTSTSTSTSTST7S Ïà SSTSTSTSTSTSTSTSTÀÿðV9?à <0UÃ0V?ü09?Ã30UðTÿà 7?0ÌÌÀ??ÀÀÀÿV9à 03??3ÀÀÀ?ÿÿÿÿ{ûü‚F¾9�9ù@Æ?”ìÂÀ‚Â…Â@À}ÿ?ÿ=Àƒ@€?A‚Â?À?@ 98Äx{¸û¸{G„‰Ä8û„CÊ»ÄÆû;¬VýÿƒÂ@€?‚@€@?ƒÂ�‚À¿€Â¿ÀÀÿ|CƒƒÃƒ9Ãwûy†D;À}¿ýÿ~@?À?¿??½??ÅÂÿ€½¿¿½ƒ¬ë=?Ç…Á¼C…ÃyCHùƆϬ¿½ýÃ?=¿?ý@ÿ|½ýÿ?ƒ@A�ùAA»�;�Áºzü>:|†úµFÆ9ûýêV½¿½À¿ÿ€¿½@ÿ?BÀî»THZYý�™ƒŸÔ•cçàó�â“p™ð’¥~tà#Ná×!QbZk¢ ”^–³ÁJêA ¯ý~�:¡GÛ9"‚9æêa&­ÑU)᪪ªªBt Aƒ¥�0òp‡‰‘$þAƒ:[Ó 22R0ñ"OOsTÇ>“çQ1…1ƒÿ"%N`Wf°÷_³ù_µÐíÿÿ'AB˜#"¢L›J�û?Õû_Õ¶V46û‘ýõý×ÿ׊A$&eB}(2P»ÕûŸÙceCß×ÿõÿõ&(ÿÿÿÿ=&ô«$Ûy–ý·šÁ±:¹Ø*oôÚ\ˆ6‘B—G¶ ¼t£¶KÆ]YyœªÝl,´ù( òâ(=ŠQ4…kÃð©ñzÉ;\»„ÚêXxÍd7 Gôéà1‚5{}÷D ¶£Ó$×íetsSsa•G¢U”…¼B†4·ïQ–Ï~˜¹ºÍÙÜ›´a’TØW:ëÛ𥂜£Z¥ùú›ŽÆ)ƒˆ=åöòu¦ùß¹{çèÅÝy�½ì2©ØUÐK¬™¿ïµþ~ ±ò|=ãê(${r#ð €Ï“ðÿ,[`m` ÿÿà H?*SX¢wÿðÿoöYfÿøI™ ’Hþ*U\ K Z  ÿæ@BBHžûÂ4 OV &BBBuÿÿÿ3ÌÌÌ'(W///?_ð Ïÿ?'('('/X'/0('@?(?(ÌÌÌÌ``@0000('(W///?_?'/X'/X'/X'/0(?(?(?(``@0000('(W///?_?'/X'/X'/X'/0(x?(¨@0000('(W///?_?'/X'/X'/X'/p0GGG`@0000('(W///?_?'/X'/X'/X'// GGQUU@ ÿ€Àÿ0ÿ0ÿ ÿ ÿÀÿ ÿ0ÿëYfU÷fföV``ð`V``Àßð```Ã07ü0`öðfð`0ÌÌÀÀÀÀà 033ÀÀÀÿŒ-/-¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/--Œ/--Œ/--Œ/--Š-.-.-.---/-Œ-/-Œ-/-Œ-/-ÿü¹¹¹»¹¹¹«.ÿÿ€dfôfôfôföVVVnfföföföfÿüUÀ©«ÿÀãä©«©©ÀÀó3«©¬«©«©ÀÀÀ©«©UÀTÿÀÀ7?ÀÀó3SÀÀÀÀ?ß„ÿ¿�GCÃ<<F…3†¹û{‚Ué=?=Á?€ÿ½€ÿðó3ÿ@?B€ƒ€Â€ÂƒÿþÁ¹~¿¾@þÀD@~¾ÿü:¼­€²}ŸÅÿüC ÖÁ`Ÿ&áÿý#. *CCA004 ø0 ž:˜ÿÿã‰Ö¨aIšPÕÍ—›^Òë TôzäQÿÿû%«á*®A&ñ€YBBñ<}|"³ÿµ$ÿÿ& ,BBBBa€ÿG`@0000('(W///?_?'//ˆ'//ˆ'//ˆ'//ˆGGGÿü`@0000( ÿÀÿ eÀÀÀ``öÀÀÀÀÿÿÖ;ÿÐꄚ€¿íÐ             "$  " *,&        (                  )')    "$ " *,& 9                  )')    "$  " *,&  1   0     )')     "$  " *,&  )$ & .0&  .(68.   60>@6(       )')     "$  " *,&  %979 "*,"  *$24*  2,:<2$       )')    "*,&  .(682$  !535 "*,"  *$24*  2,:<2$   T27_packed T27_packed^ÂÍL|ÀtÄ´ÁH¡rÃàkÄ   6<6^ÂàkDÍL|ôÁ€tDH¡rÃÚ<Ò ýÿÿÿ3Ìÿ?¹º¹¹»¼»¹¹0»¹¹¹¹¹º‰¹ºŠ¹¹¹ºŒ.¹¹¹¹.¹¹¹.¹¹¹Š¹¹0»¹‰»¹¼¹ºº¹ºŒ.¹ºŒ¹¹¹»¹0¹»¹0¹»¹0¹»¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹‰»¹‰»¼»ê¹º¼»¼Š0¹ºŠ¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹»¹0¹»¹0¹»¹0¹»¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¼êºŠ¹ê¹ºŒ»¹0ºŒ»¹0ºŒ»¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹»¹0¹»¹0¹»¹0¹»¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹ç¹º¹ºýÿÿÿ3Ìÿ?Eç-.0EEE0E-ê.E0EEEEEE--¢0E.EEEEEEEEE¢.].E.E.EEEEEEEEE^UUUU ó3ÌDBÇBDCDB003†BBöBÀÀDCDBBÃüÃ0ÇDBABBDBÀÀð0BDôDB0000BDÇB000ÃBDÇBB30ÀÀDBDBBð000öBDBB0000ÇDBB0000ÇDBB3üÇDBBDBÀ0 BDÇB BDÇB BDÇB ÌBDÇÈBBUUUU ó3ÌA003,WÀÀÃüÃ0AÀÀð0Y0000A000ÃA30ÀÀð000W0000A0000A3üAÀ0 A A A ÌABÿÿÿÿ–Ã<¶Yy˜àÄþYáyˆZˆòŠáÂÓLñâzÔ-ãÆ-<,ÿ£+--˜Z--,Óà z*z-îˆáLKyÏXšmƒv^ˆ?ˆ9ZÅg•-LZ-˜--Z˜--Z˜-+-˜Z--˜-ZJ Z”W[ãß*á… ¥:¨‡äZ‡lî.¶…ïî£ï>åßZï³Z–Z+Z-Z-˜-Z-˜-Z+–-Zz-ÒãÖKá]$ãJ.§ÿxáÁJ¡l�ˆ)£>Ì9g)Ü”¯>•ÔZZ³LàiYwiÂYYYÑZZ+ZZZ-Z-¥;ã£ã´ô[§ÂùÅî§WX 9ú¢üÌù»û!C&  /6OFMMG²MIC¬ME= G?7. 7.;ÿÿÿÿ¢Ø<èƒuŸ™£Æ¯‹•€Qƒ!(à ¯üLµ 'ÿˆEâ-’{oÆ)âB@˜G¦Íïþ� B­ß_ ]uîÄœ¾@Ý�Ü6BÛÌH{Þs!Ëvœnl?A+®ŒÆ]ÓÙè0,‹sÀY¾  ŸQë´UZ,Rü)lMÓØ‹µ›Çê…Sñg%þ®ßFBmÏÐnmBAB7Ð׌3ÂeôÏIé“#]óªµú°b€e×R0­ëŠnÆ:½ùù‚ôusÞò†€›º7¾•þ€òÇ+B:4Û7¿?Ægÿ�P�é“éi’D¿)¥+d_ô¤�gÐ�í\^¶·¿úÏ?·%ý?2 /$ *ÿüûÀ#B….@ +?üÿJ> .³6\°ÿÿÿ 8e"8ÿ?U$2C< ! ñ/1bWOr*£ "7"8a*ü<(73öò÷ovÅ #& (>e6" O #0 - U, CcOóôƒ-ÿÿÿÿ>ðD’§k”¤�CH܈œ¢x,l–6Gª<ù�×ò3L"ª_Èd®-`oo£úYkžTên)«>âQ§¡$ç%…r"á §KP™egA,—ê?=pp/¯Ñ}ª¨~þ䯱uuåÇð3 ‘™ñ€ã0¸N3|¢„)5ò“Ø™·~X}$Ž7¿Eªq@$#?@opoŽ›à൛!c<­£?{÷d¿að\·¦+m/}±*9ׄÐ\½œ+ÒZÝð†ØÊM8#Ü ˆ±/â1o+€ß¡2ZfkæFƒË‰ê…"O½Ók"c2[]�“’ sie¦ª?û¿O#R 7øo÷ÿø*YƒÏ�öþð0¿ÿÿHs?bo[ÿ$9 ÿ?@=,% Ë­ ÿõ? " AN(o@&i0.1aq£S�Byùºúê3Ìÿ?Hÿÿ°Ï°Ï»°Ä ( 4 4 /H0Ä ¼ÿ¼û »¿»$$¿»¿»»¿ÿ¿$$44 4 00ÿÿ°Ì¼ÿ¼ûÜ$ »¿»¿»¿»$$$»»¿»¿»¿»$$$ 4 4 4 Ð  0  üû¿Ï»»»û$$$»û»û»»»û$$$»û»û»»ÿû$$44 4 ô TTPP„„!!!!!!HHHBUUUU ó3ÌÀÀ?ÀÀ¿ÀÀ003ÀÀÿÀÀÀÀ¿ÀÀÀÃüÃ0?ÀÀ¿ÀÀÀÀÀÀð0ÀÀÿÀÀ0000ÀÀ?À000ÃÀÀ?ÀÀ30ÀÀÀÀÀÀÀð000ÿÀÀÀÀ0000?ÀÀÀ0000?ÀÀÀ3ü?ÀÀÀÀÀÀ0 ÀÀ?À ÀÀ?À ÀÀ?À ÌÀÀ?@ÀÀUUUU 2€@€ @  €€à    €ÿ¹º¹ºŒ¹»¹0¹»¹0¹»¹0¹»¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹»¹0¹»‰¹ºé¹¹‹ºŒ¹‹ºŒ¹‹ºŒÿ.EEEEEEE-\/././.UÌÀÀÀDBÇBDÀÀÀÀBÇBDÀÀÃ0  9*4.024"  *$24"     )28  :4BD>0  F@NP:,  B<JL6(  A?2A8:4BD2$  :4BD2$  :4BD2$  %#2%864 >@.$  20 :<*  *,24"    128  :4BD>0  F@NP:,  B<JL6(  97298:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%824:<*,.0 "$1       97B9HJDRT:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28Y $ & .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$ 64 >@.$ .068&5,35  &(   T27_powder T27_powderÌÂ.~ÀtĨBH¡fÀkÄv qv Ì€kD.~èB€tDH¡fÃ["qS" õ÷ýÿ3ÌÌÏ„ƒ÷„„„„ûÌÌÿ" " a " a " a " " "A "A µ !"!B!B" " a " a " ÿÿÀ3a " ûá" " "!"!" A" R"!B"A "c" "!B„üâ!ÌÌÌÏè„„„„„„q„ƒ÷„„„„„ûþâ!„ " a " a "A„Æ B B AB ƒ"!B" a " ûû} " A" A" "c" "rB!"A "!B" "c" "c" "c" "„„„„„„„ƒ÷„„„„©ª©ê3ÌÌÏ" @@@@´D´D´D@@`”iCô483€*@@@@´D´D´DÇd@44GDô€@JtKDC8ð–3ÌÌÌÏ2ÿÿÿú`–3"ôD´D´GÿC„8G8OC„KDLL`DGDtD´DóƒGDN„D´D´D´B"_UWU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©«ÀÀÿü©©ª©ª©ª©«3 0é©«©©ª?ÿÀÀ©ª©ª©ª©«©Àð?ü©ãq©«©©ª©Ì0Ìÿ«©©ª©ª©ª©ÀÃð«©©ª©qrª©ª©ª©ª©ª©ª©ª©«ÿðãä©«©qrÀÃ<©«©ª©ð0 ¬«©«©ÿð0ãäãä©«©©ÀÀ «©©«À ©©«©0©_UWUTSTSTSTSTST7SÀÀÿüS3Ì0Ã?S?ÿÀÀÀð?ü7SÌ0ÌÿSÀÃðSTSTSTSTSTSTSTSTVÿð9ÀÀÃü??*ð0 Uÿü09:9?ÀÀà ?Ì ?0VÿÿÿÿȳœÝÈZÉdM… †,yǽ½…»z õêõ´ÉC½WdóÈô¥ Nza¼8Bàêo§A›7.§oÝyBÝ…pp7 yMó�"Cÿzݲ¾oÝ O\ÈÈʳ±é±f§¦Ý±z -7¯n¥7"zÝ+6y!œ7à��oƒó_-+£„C6ÑC½.�ßÔè†�é¦��ô."e››'Ÿ��{W§ ê±yd°¨d7ö¼½pZzo.ÇÒê"¼’ ¥Ô c»Y+IüJS,, ôm�!ÝNÿz +é5,c±z7Þ¥o¥Þ"Ç›7…ÇozÔÿ ™CÊ,.ÇÞy|ÞèaÒ{y„W¯ª¿ê9 757;9: '31û«©‘0øð° ±O( ÇçõôŠøŠøˆ5Wy� �‘ð�ëý*ðe²Oÿô»f3‚5V9V;X9T7R7L1Y-!#! " 3.3áO�P$�Fo�wwó0(3ð+!��üîúîøîø&31/ *  e-!!ÿÿÿÿEç]G½"tú…å>­Ýƒ„Í&±·ö¢m‘fðrzÝó$À.k–¹�³Á¥¥¥ª\sñÀ¨3.¢“âýz5yþ�ähäøØp{ƹ9uk?sºêJå:oª¨;¾ðóHÛ†ëMÊŒ€gãøš«<¿Ðþ"Ðã�‰ÇåEV‚fí/3âhŠ&Ø4®f2L& ÎVnµ±Ä붚f <�Àª1ü.ßFNŃRÎwVK–ù(¯ÁÎ,¿ï`OØ~Œ°sú¡*ê·«;Él›¢™% –oÓAu9ĺ‡,qÊ8™[Q¸»¶ÍÚ¯©ZÛýA\Ɔ$™Çv㪪º®0�`rv 11¡Yó÷ÿñpc!66_õgodÿ%$Q³‘ÿÿsýP.1£ðRBoI$&íÿ?õFöøýÿ;ÿo±0"&*!À`ACa󢣕æTÕ©yƦ”ÇáÉ—A€ºx¯Ÿjn–Ø»›9û6?o 5£n<âB8SÖAò¬#«�±ãí]<T ¾Î;îÞ¬êµÌ #,Û5–�­ùÈjzg�r¼œ”¹|%f-ÝL´fþräw¤:5cÁIÎìk0hút ÄébcQÐÙœ�NÓêÏÅ‹gZb²i[{£‡-½ƒU ú�Åk²Å¦ÎçE¢¢§ô¦j¹–$’! eÁáÕ@7¡ÿò<ßñ;LÿÏñ#KdÞ8CSRP�pÏùqee@!<4V)‚!0ÆüLA  3%˜ÿð"3L/ H5.Abÿ6XIV`5>$w‰!ˆM†þþ\ b8#é÷ûù€û`÷vgõÿõ�ý¤Œ5I"µûóÇ«“T:õ4î#<\Ä~eßbOp|é·ÿÀ`2‚ÝB‡q¥Je7/È �1yá�¥Zìe}ÉLÙÀºu}# „‘(? ‚]¥@2#’øÿÿËÌ¿4~Ñx‘´_um½lî“·NÀ¿¢RW»P—�%DX·"Ü¿îÿñ<Å£ø5 v v öÿßÿHÉ~\éïØ[-ÛR°WíùªQJTžkrûnùrqöˆ�æ²eÀ$÷go†ÿ'(sÓ±ÿÿ‘ýQ03ÿÀ ,høú%#24 $ -ðBAcƒð&3R9fK<+Vo_*ÿýÀ 2ÿÿ hýrÿ±ÿÓÿ5(.Ïø0.½½k.‹Ö�Œ"îãÏã0†öä)'J6eU±O.Ò ½¹\² Œ…vùíd¸›ä+MùÿÀïå\ÎØK l¯~\áä Ó«¹FP*wP|"F¢YT¼ãrI ÷ÿÿ/ô‹,"',ODü€nŸt9úi“ÈõLÂêy‚ÇÙÖ•¤Ðš’à„¯Æ+™&?¸*É%A1M¤%`$ñFò/®c÷-÷©ÿðÿñšVeaúƒó…"ÿiV¢ÑÄÑ-&ó€ÿƒÿ�ὕ}U]•ü÷ÿNU\gjeXON[hefa\S`  .  ÿ& dBHHÀ÷ÿ"?J ÿÿ’@ ! �’@€dŸ)RQL _h?>8ðð'd74Ð$˜]HóŸÿ:1(ÿÿa42#$$$ :úE'Jé÷ýÿ3ÌÌÏ/'//°°°°û»$û»û»°°ðû$$ Û//'//ˆ'//ˆ'//ÿÿÀ3ˆ'//P/?__Ÿ Ÿ Ÿÿ_Ÿÿ0/G0@ ÌÌÌÏX000(0/'//  / $ $ /{//0/`/H_?_Ÿÿ_Ÿÿ_Ÿÿ€ßŸÿ€70/0 ' ' ' 0000(/'/PTUH`@aÀû€ ÿa‡ÇÀ‚‚‚0ÿ_UWUÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿À¿À¿ÀÀÀÀÿüÀÀÿÀ¿À¿ÀÀ3Ì0ÃÀÀ?ÀÀÀÿ?ÿÀÀÀ¿À¿À¿ÀÀÀÀ0?üÀÿÀÀÀÀÿÀÌ0ÌÿÀÀÀÿÀ¿À¿ÀÀÃðÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÀÀÀÿÿÀÀÃü?ÀÀÀ?Àð0 ÿÀÀÀÀü0?ÀÀÀ?ÀÀÀà ÀÀ?ÀÀÌ À?ÀÀÀ0ÿUUUUffd @€@H€@€@€fffc`@Hà�$€@„ ÿÿÿÿûþâ!„ " a "A  !"!B!B" " a " a " a " „û} " "c" "c" "c" " t!"!" " "c" "c" "cB "„„„„„„„õ„ƒ÷„„„„û" " a "A R!Ba B AB AB û„û} " "c" "c" "c" " "!"rB "c" "ƒ " "A!B"„„„„„„„„õƒ÷„„„„ûþâ!„0B ƒ"!B" a!B" a!B" „„†ý} "!"!" A" t!B"A ªºª«¦ ƒ?DKDt?43Cƒ8D>D´D´D´Dü`DD´D´D´D@óCDDKNDKDK8Dÿÿ"  DD´GCó‹CJ„s„s„¦ü`DD´D´D´D@4ó„KDNODDs„ÿÿÿ"   …?ó„ô8D³F„K8Dÿú`D44GDó„tNUUUUÿü0ãä«©©qr«Ì0é©«©© «©©ãÿÀÀä«©©«©ÀðÏ©ª©«©©«©©Àÿ«ãä©«©Ã0 ©«©© ?«©ãäãä©ð «©©«©Ì0©«©© «©?ÿ¬«©ãä«©©qÀ0 r«©ÿ©ãä«©© à «©©«UUUUÿü009?Ï0à ?? 9ÿÀÀÀ?ÀüÏ?)ÀÿT7ÀÃ< ?? ?787ü ?ÌÀ0?? ?ÿSTV9Ã0 ?ÿ9Ìà ??ÿÿÿÿ8Ò²z²Í�ǽAN§¾cB!Ñ…‘+œ›.z±C+pê’¼ê±+ÝoÓ²´n - H1œœdyõöod NßÊéɲÑn" 8mé77éy5N¦ZeÿmMÞBÔXÔÓyé’ÞAÝÔöÜì*MÈ ±<;XZX™zé�8yóßê½5›½é¥CÝ f�oÓéÑÝÏð¥A d7…ÓA¥š†MÝCWcÞéÞ´7777AAo঱ÿMoÞ²¾o»›cƒ+ê7¾m§ÉÝ8¼-,Ç(IMƒO êÞ¨c-7mz²ó„™èAê7¦¨p²ÿ�ß›ºû¦ÞÞÊo¨ßé²A 5é7.¼Þ±®úêkõ»Ÿöbvÿ� !  3  jöŠö¨øˆôwWÇG1i1‰Q©ñ’jï )hïHÏ¥lÿÿ%#.  O7 &   "/úÿúüù¨W"wÉSÉséu÷—ù�‘ü–¯  0$Z3g;! ðð¨�ý¨ü&)'o ¤ñðyyÝÓL¾ÿÿÿÿ Í$} ™ª–>jû×Ê“}’«+?[2{´_YC©ëô>§‘[Ú_â,@hïMºnr …Š;é~ )ÁT¥Bw ÃN ³Ø–&3Ù[Ý ÌEzÔuØ_}ŠQ¥žvÌꙌ ÷.ÜV˜8ý*)\. Íoôsn‘Ö‹3C]¾ï£ÌO>�Õ7£¹lÚEF«PÑôÈãyæ¥h/`Z�í²¨§‚ ~›šAÉwn’¿œ¼¯êÝ…BÙÚ sm vaÍ>·b‘XXä fz £ÚSˆZ`‡«]ÿ¨²cÛK'R‘žYÃ_'/ÊëC«U…Y3(§Ô–HLdMï'+>;VU B+8-(k8c ³ùsç1�ÿ20 2 ýÿ0T&ÿý_2+,4 H(O!?-þL/$# V$S‚-*mP&o BQ  .* "K F#ŸÿûöýJ1`%"ç'ÏP/0eF$Aˆ7.y8] &G õ‡É?³Tûýÿÿÿÿ4>~ß~,µwä_:ÔSƆ}À·•‰0bnÒU@O³¦ýìŽÕážÁµ€ü(íòÑDÊÙcåU'W9I^€¿UÑoÊ:M¬RØ�yñçÅW«™Sþ—…ñÊUÙAXĶóÁû¹ô*ò�Ç·GtZX‰ÌÏšòm‡wâ�s£žU“á©DFyxÀßQ“ ¸±$V8‹LÐÆðäþeÐF:å=J}'Ѹ–ΩÂHBw‹å©Ý Ê4¦‘Äû.‹oZgT—C×í R* Qö‹|”b„jc­pâúÆ›lÇ·Ï›Øúá‹›t]óVqé�§|“ôÒ0NFõ@ç«æjª  & 1"%ÿÿ€ëχ 4QÇ1CCË&„ødö¤ö† 9_@“ôà!F@˜…/$-HK 3 $(úqÿ-￯òõ/R¯G%ôBÿhæ@#'¤24%B!¿ÞÛ}QXA÷çñ±Ãò‰%Ò³Ë=óù¸�®¶M>Îe1øÚ—)9 ædpH–Q¢@P`1B1BöøÿÿJW9yoh¸—»Òé·C÷£ ¬Ý`W1Ÿÿ&?l¶¬Û/o$d²éP�¶ÈY�Q±ÐÅûaF%‡9¼ÒTù?qXLbC$@<ÿÿ ABou ªô;,™+‹uÍTØ5|ô)ñÿ?ÏÇÄʼn À¿%&#E×µ}³¹!©dÉàófª´*–ÝI{XaF Àÿ HW÷©±%Ý‘e? (%ÿÿ¿DE*% ³ûSç1�ð*ÿ8 D H 4 '# V%(þüËÀ2- 83ÿ @ßýøÿl3<,ç8?üÛ|aN1410úoÿÌú97ÿ (ßû¿ÿœà@ï9(í¼šõ�¶ðÞ:;.ÏŒp_·0Ö§Mä$$�?¾�»{¶›@Œª1ð/�KfÌö ¨>çEJKÑ’Ãü �ý%ÿÿ>ÿVZ¹K{>’>qÛnÁm§)ïa ™† %,i3\8¥1¾.má¹ êã &ý�ÕUìåÿWDé\ÂÉЦÓσ3›JШ2¿º ÿÿ¾³ÿ:'$)nE,úY‘·•ŸhžžìûÊï«�ùw¢£ƒ]¸f ν|nôĶTŽGI ßU]•a|Y >/.}f&»Æ.s2$W$$†D 8 :ÿÐ? F!$ ð&,? ü-XW n]$öaŸÿ%(2CyÀ.ßïÙýq0.]-  +L 0 &~ÿü¼! ""C¿Ba=L'sÿÿ2a Z97r[*?<ÿ/nG8_ &Øòë1þÉí?ö 9þÿÿÿÿüÏ»¿» /$ ó//HHHŸ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€` ' ' '( 0000(H/' $  ô/H/0/0/?Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿ‡( ' ?  0000(/'  /ó/`/H/H/_Ÿÿ€ÿÿÿÿÿ `ÿ è  DUUU@ÇÇ‚‚‚ÇÌ�‚~�� ÿ|||‚‚‚|&ˆ‚~€ÿ@À€æa�€~UUUU?ü00?ÀÀÀÿÿ?ÀÏ0à ÀÀ?ÀÀÀ? ÀÀÀÿÀÀÀ?ÀÀÀ?ÀÀÀüÏÀ¿À?ÀÀ€ÀÀÀÀÿÿ?ÀÀÀÀÃ< ?ÀÀÀ?À ÀÀ?Àü ÀÀ?ÀÀÀÌÀ0?ÀÀÀ?À ÀÀ?ÿÿÿÿ?ÀÀÀÿÃ0 ÿ?ÀÀÿÀ?ÀÀÀÌà ?ÀÀÀ?ÀUQUUH   @€�À@$$@>€  Hÿ"c" "!B„„„„„„„„„ƒ÷„„„„û" "A "A "A "   !"!B" " a " a " a " „„†ý} " A" A" "c" "rB!"A "A "„üâ!è„„„„„À„«j /ÿÿÿÄF ”iF”oCCCBVZDD´D´D´Dÿú`DGDtD´DóƒGNDtO¸5ÿÿÿÀU 0©©0ÿÀ«ãä©«©Ã <Ì©«©¬«©«0ÀÀ©©«Àÿ©ãä©«©© 0«©©Ã«©qrU 00ÿðT7?à <ÌS0ÀÀÀ?ÀÿÃ7? 0?ÃÿÒ7àXÿ¥M"8dÊ8¨dÊ©fY�ÿ¼M¥ôZXXö !oD¼êœM+½ÿ±X.!yôW²È²¨ô†§ÇMݛȽ†n7œ¶òé³ç{cm…ÓÝX¾ê7�LD7émõö +±z7Þ"/I±y¥ ZW8éÀ»¿j ,(*Q ?!!&  ,# ÿ„údødøD!öh©ôyyñ0SSð+!� p—ÿÿÿ"2(À,ÿ—Ç€1bùäÍãLµ'§ÇTƒá2¿Û†=ckSÒêWÈÌX�(#PÊw‚^Tg¬Qv•wþ%ë–M™ƒ™ÔÇ\S?ª55ý®ž|=m»²mAÆkõÕ—Í%¥‹©d?5?A¼ƒ1€¾#fÒ+«XÀÌúZ¿9¾�:5P ò 1: 2ýT)>=+`E5v;E¸92C$9(? øDÿú’"û_·ûsû³–ÿÿýô-_@ÿkk³»õýߘoÿãò$Ké¯FƱsÀ‡â’M�Â…ç�xw\ÿg˜dí¯õ0¾wý™P�â5Q>gÀѵj à'ˆÑ¿,  $ê�ó„Öd6;DE dIbt@”b44@2P!Á@÷uM¬™ªÈMþª˜“püN™‘=À=ÿ…då¢%IFCƒœ��•7QfÒþ›Î:‚»Fõ³¹uå4/Ïÿþê!4£Ø1ùî †ÿá{÷�tºG:�}%Y+ˆ ¨×¾_ºÀ´¶eÿ;ÿ�~37P(#À</H+7d'ClÑøþæþÆ#ÿðÿ  ?óÿñw@½Ã˰\ ! —TÏa3vÀùé„ *gîžzCt9\»øÌ¨Cÿoú$1Bt"Y†w„ÌõÒä=‹‰cÐ. ´ÛÁffY+ÄŸK>ü u� HËúü0ch]V i:>?0/,+fE:Q,5 ÿBBSd5@?ëÿab ÿÿòf &Hÿ ' 0000(H/    Ã'HHH_Ÿÿ€ÿ `ÿ `ÿ `ÿ `”    0 T00(ÀUÀÿ™Àá€~† U 0ÀÀ0?ðÿ?ÀÀÀ?à <ÌÀÀÀÿÀÀÀ0ÀÀÀÀ?ÀÀÀÿÃÀ?ÀÀÀ?À 0ÀÀ?ÀÃÀÀÿÿT0@�8 @€@Æ&ùHÓ#ÿ+ì¨Â@kÄ€¿{ Ð            ".0* 2,:<6(  >8FHB4  .8:<64  >8JL:(  B< FH6, 68>@.4    .,   >0JLF, NHVXB4  JDRTF8  6<  VH     &("            "064  (& 420               "E(CE$& .0*  2,:<6( :8 BD>1D/"(Y    B0   ISU% #%%#%     "$  & .0*  I     $ & .0&  .(68*  2,:<6(             "%(#%$ & .0* ., 682( 24:<6I<   E C*E02,:<2$  :4BD.   60>@2$    -+-    "*,&  .(682$  $- 979"$   "*,"  *$24     %#%     &(" "$*,&Y,      5?A 535    "*,&  .(682$   2468&(*,"$ U             ")('a$        5 ?A     "$ E               %#%     "$  " *,&  M  & , .(68.   60>@6(  >8FH2$   !!     "$  & .0*  9          (&8T27_rockT27_rock"ÂH!|ÀtÄ(Bq½qÀkÄØMØ"€kDH!|Ã(B€tDq½qÃiMa U?üiÁÂÑiÃÄuið?ðÃĵÒÄuÒÄ?ÀüiÃÄÆÒÄÒÀü?ÄÆÒÄ#¯°²±ÿÿ𲞯°ž¯âÒÄU?ü &% &%£ ð?ð$#¾%£#?Àü˜ $##˜Àü?##8 ÿÿð X#㩪ª¬â᫪¬ªq᫪¬ªärªª¬qrªª¬â᫪¬ªqrª¬ªär?óüꪬqrªª¬«©«ÏÀ©qrª¬ª7Tz9V$9Vx"x7T$z?óüÃ$TÏÀÿ5£±±Ð¯VûôBÂÀHq…fñuбÐwž? “³RRR¨\ooÙOûZX#ÛdågålØIAn¿t·nAYUZ+P+ÿ:}J …?<4_ ™#  g �5  kC # C cöC964ƒ4c–�4e- ×eH\]tsù˜8ˆwéÞL˜%kÀBu«NªÕ�Ôr6ovuvÉ€õRW#|{U S0#0ðÉ ÐÀñ‚ 3M×0)‘)*¥–†c‡=ó©= UHU&œ00`Æ ”Àø  'AÕÿü)”‘¾Ò$¸Ï<?< œ+)‚XÐÏÐ0ðÿÿ¦ _ Z:ë+EœZƒR\<:Ø?ÿÀ®^]-Œ‹UŸ,- 4#$'0ðÉ,(ðÀ %@Q?ÿhE!ÎÊh©`ÿdF:u®Ñ÷ÿ`À—˜*3¢Qófe4`ýsîëÒ˜?Çd•?ü@ÿÿ€ Ÿ ïð?ð0/à ï /?Àü¿ _`° /¿?ðÿðË Ë`° /ÿÿð $  ¿?`U ý0þý0À þýþÀ ýÿ} ÿ3üÿ¿¿¿@ÿ¿¿¿¿ÿ¿¿¿@ÿ¿¿¿¿ÿ¿¿¿@ÿ¿¿¿¿ÿ¿¿¿@ÿ?óüÿ¿¿¿ÿ¿¿¿ÿÀÀÏÀÀÿÿ¿¿¿UqÄ0w! €„¤^râwùÿUæ Á@lÄ€¿ÝÐ   *0 >D&, :@ *0 >D&, :@&, :@   Z` n T28_groomed T28_groomed|Âö¨„À}ÄB.~ÀtÄ    ` |€tDö¨„ÃB€}D.~Ãm`e ýÿÿÿ3ÌÏÿyzñww—zñww—wwwywwwywww—www—www—wwwywww—www—www—wwwywww—www—www—wwwywwðwwðwww—www•ywwwðxïwðxïwðwwywww—www—www—wwwywww—www—www—wwwywww—www—www—wwwywww—www—www—wwwYwxYww—wxïwywxzyñwww—wwwxxïxxïywww—www—www—wwwywww—www—www—wwwywww—wwªªªªà€€õè�ˆ�hˆ`€€€øˆøˆøˆ€`€€öˆöˆöˆ€`€€öˆöˆöˆ€`€Ö�h�h�hˆ÷ø÷•øø†ˆ�ˆ�ˆ�ˆˆh�h�h�hˆh�h�h�hˆh�h�h�h�‡ö€&&~ˆ€w€ˆ�ñˆ‡wöˆ�ˆ�ˆ�ˆˆh�h�h�hˆh�hUUUU ÿü©ª©ª©ª©«©Àÿÿ©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©Àÿü0©ª©ª©ª©«©0 ©«©« 00©©«000©©«000©©«000©©«0 Ïé©«©ª©©0ÿÀª©«©©ª©Ã 0«©©«000©©«000©©«UUUU ÿüÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÀÿü0S0  000?0000?0000?0000?0<ÏÃ@+0ÿÀUUà 00?0000?0000?UUÕW ÿüfefefefÜfÀÿÿf fefefefÀÀÀÿÜff fefÿÀÀÀefefÜffÿÿÀÀ fefefefÜfÀÿü0f fefefÜf0 ffÜf 000fXÜf0000fXÜf0000fXÜf0000fXÜffB«i£®­X[ÞzyåA Q3�­¯8Üà 00fÜfXf03ð0ÜÜvê‚f0?ð0Üןì)‹fUUÕW ÿüÀÿÿTÀÀÀÿTÿÀÀÀÿÿÀÀTÀÿü0T0  000@0000@0000@0000@1x-A@="!Ž/.G`à 00@00°0>08°0:@×?ÿÿW.ÿt[/X)<>LPOò’³§¨<ð78?ð77ííµù©8s6× ……ž77ç€Uû÷yN ÿùö0&% ð00UUU×ÿð})¨}~}~}~?ÿ}~}~}~}À?~}~}ÿÀ~}~}~?ÿÀ}~}~}~}~?ü0}~}~S)~ Ì}*)~0—~00}~00}~0ð})¨0;óÿ}q¿ZÍò›s0MÝŽOP˜JfƒZ¨˜~Àÿð}*a8)¶‹?ÿð7·üÇ9eJ¨z +óçñ}7·7€U÷u?Wÿüò%&ð5p4uð @W?ÿÿk|‡x…À»MÎ; ÈYZ3¯ŽÙÚ<ðIJÿÿ3ðIGÜàÕS?óð?ÙH‘H¤‹‰±IG’@T8Æð 00@Uÿÿû=Æ@fãP¢ÿÿðDÃBäKLgÍb`$Ù@Eÿÿhµ€ enÿóðcJI t-`ýÿ¿þ3ÌÏÿ`_ 00Ÿ_ 00Ÿ@00ÿ`@0000(o0(o0(o0(GGGGGG   ' Ÿ`@00_?p0_?p0_0000(o0(o0(o0(GGGGGG ' ' Ïüϼû °'´;$Ï»°Ì°ÿÿ“@00Ÿ@00//`//`00(o0(o0(o0(GGGGTP€�� 2�€0ÿ�ü€UUUU ÿüÀ¿À¿À¿ÀÀÀÀÿÿÀÿÀ¿À¿À¿ÀÀÀÀÿÀÀÀÿÀ¿ÀÿÀÀÀ¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿü0ÀÿÀ¿À¿ÀÀÀ0 ÀÀÀÀ 000À?ÀÀ0000À?ÀÀ0000À?ÀÀ0000À?ÀÀ0<ÏÃÀ@À€À¿ÀÀ0ÿÀÿÀÀÀÀÿÀà 00ÀÀÀ?À0000ÀÀ?À0000ÀÀ?ÀUUUU@€@€@€@    �€   ÿÿÿÿw—www—wwwywww—www—www—wwwyWxï•yzñww—zñww—zñwwywww—www—www—wwÓxïxwðwwðwwywww—www—www—wwwywww—www—www—wwwywww—www—www—wwwywww—www—www—wwwywxwuwxwxwxwxñwwwywwðwwxlb×µãÜÚ,÷ë VÞK*�ÁMq-ž v (*ÀMKK+K*K  ëuIKMK+KKKË *žÑuððÀÀ{`9 ÜÚfvfÚšÏM(vÓßUe}U0:ð0 <00?ÿ@òÿ$Ü $)¼ z90ÃÿêF 4úúøê ’BÒ ðô#"éÀÄð 0üôü@+3) 2!$+\ñõýõj +3'ÕÕÕÔnÕõÕÀjðÐÀÀPÌÌÿó@ #HI;>uÿÿÿÿÿð§ ØëÀ;ø6û¾<?QRI¶ý¥ª0,vspju_ÙÿÏ Ï ìTOkl78q=/à°�iåžaâ`žMô½ep°z£+zDx+K2E}ŠÊ}û„˜³hÁYÝð+ø�xzÉ}ú °1>ˆÆE»áwàˆ!ºSö³ï¬þyõO;L“HTH o-Y<'B]=Ñ¥Í ¤!'Ùׄ˜N�…îªò%5ˆˆ$Û�X.¯' Ü[÷-œ„*;X)FœU ™31 „ìôM¥ABoÛ³op§¿u!ì¥Weesð<>  #�õ!$TRU°‡ 1 *# &øüüÀ#%   Ï(ÏÃãô/&%  üÿÿ860Œíû *õÓÊO,üüüÌ''!DÃÃÂÀ ûðýp©"d˜üÃ-%B÷ÿÿÿ×UEf¡í?>ð E€400".+ .ýýüÀ'$+$`‚€ÌÌ`.õõî/,%3&3$' <À%1XuUõãóðÚ`›:õ™o<ÂÁÄ¡VUèå¿Ï[.©ÚÒÑÃÿÿà &piððð@¼ÏÎ�žCÃóü—š§×›�lA~üÿÿŠÌª w NšTçÿÿÆóUºÆ µQ 3P ¯WòðÎrÍráEEÒÒFŸÌ‡EBìE‹žG ÐF TGû뉶BÕGGß’ “ž6Óž<Ù‰Šü¨Ç ]UU•eƒ3ð<�?eµ?Ï'. � ```*ÃÃÃü)&%$! +üÿÿ>!B3 ?h! Ïÿ]xmT +B@ "P€p¡p`áÀDÃÏÂÐ'ÿòÿ�í4.ð«ÿú¿GG ' ÏüÏüÌÏ''œûϻϻüû$$$°»»û»û»û$$$ ;/`/0_00_0000(o0(o0(o0(GGGGGG ÿÌÿÌÿÌÀ '''¼ûËËËÏ»°´  /0/0/0/`0(o0(o0(o0(GGGGGG ' ' ' ̼¼¼üËËϨ#AP0ÿ0þ ``` ÿÀþ ```ÀÿUUUU0000ÀÀ?À00?ðÀÀ?ÀÀÀÀ0?ÀÀ¿ÀÀÀ< ÿÀÀÀÀ0à À?ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀüÀÀÀ?ÀÀÃ33ÀÀÀÀÀ?Àà ÌÌ¿ÀÀ€ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÌÌÃó?ÀÀÀÀÀÀÀÿUUUU  €8@€@€@€@€@€ BH@€@€@€@€H€#ýÏ3üÏwxïwðwwywxw�‹O™òÁÿ2#%ó3ÀÀ>ÀÀÀì> ÌÀÀÀ>ÀÀÀÀ>ÀÀÌÌ>W«€úp¥wéC4±ÀŽð?ÃrîŽÒ�ÞÃÀÿÿÝÉÊ247«¬ÿÿÌ ¹2–}/�87ª'gdÿøö+&5RÿC@ Mà à0uÿOºëWŽ8âǺjù‡šý'çdãð?ÃÀ|vO¡ ÃÀÿÿ IJJ%o—ŒðØ�ÿÿü¸AÂÈmù �ž§(,#J I&ð;C Z`0@ðÆEXîõV)À¼šÿÿÿ{Dbµ:À?Ã<©ª˜—­ÃÀ|ÿ®âázƒÿÿtÌ¢‚Uü)"=ƒÃÀðððWÕr ýÙrtÂÁ´Ïð?Cíõ âÕÃÀÿÿ34D:IKÞ7¡ÿÿÌ àÏ?@34IJVG|—ÿðò=ðZ�€< oH(þ °Ï »°°Ë/0/0/000(o0(o0(o0(GGGGGG ' ÿÌÿÌ̼¼¼''0þ ```U3ÿüÀ¿À¿ÀÀ€À¿ÀÀó3ÀÀÀ€ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÌÌÀÀ?ÀÀÀU!˜`@€@€@€@€@-­ÿÿ‰ÿÀ@@tÄ€¿ Ð     " &(   6@BD><   N@Z\F, NHVXF8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64  >8JL:(  >< FH6,  >8FH6(  Q    EC.E460>@.   60>@.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  97298:4BD2$  :4BD2$  :4BD2$      24682468$=       5 3*502,:<*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28&,      )28  :4BD>0  F@NP:,  B<JL6( Y       53"5(*$24*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*,"$ U $ 979     -535$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, )          U979 "*,"  *$24*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T28_packed T28_packed|š„À}Ä ÂÃuwÀtÄ   !»!|€tDš„à €}DÃuwç »Ÿ  ÿÿòñññññÕòñòòôòò×ôòò×ôòò×ôòòòôòò×ôòò×ôòôòòñòñóôóØ3ñòñòñò6ôóòòòôòò×ôòò×ôòò×ôòòòôóôóˆòôóòòÕòòòÕòòòòòòôòò×ôòôóò»òôóòòÕòòòÕòòòòôóô¡òññòñôòñó üòòòòôóôÿÿ666O6OOOOO566Pl65656k6OOOò6OO5O55…6OO»4ó üUUU ü00©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«0Ãó0©©ª©ª©«ÃÀÀÀ©©«©«0 ©©« Ì<©©«©©«©© 3Àë©©«©«?Ì ¬«¬«©©«©üÌ0󪩩«©«©©«?ÿ0¬«¬«©©«©UUU ü00?ÿð0S0?ÿðS0Ãó0SÏÀÀÀ?V0 ? Ï<?@) ? 3Ìó€??Ì +üÌ0ó+?ÿ0)ÿÿÓG°W#nŒ§Ó ©×»ºÑžlœž¼º÷-÷ºõ/õ÷¼Džœœbªº÷ÒõfƒÆ2’&Œxõx•Ç{x^Âû%õÚ–$÷Ú€<÷-œe„©õâ¼÷º ÷¼÷-÷÷¡ƒ¼÷ËjœD0DàNÂ"•­÷õ}÷õ©nõ÷°}º”÷k2÷ãx3B›–“Ý#yæ›ÁJÁÅYMMNq#*Fnå’fƒI#wö’ Ë¿ÿÿüsVs2$sÚ )ÿ»w"#P+'R+)µ£zh’§$+ˆE”RQ“JI IJ“”I )�N `šË\Ày—ËÆ%`ÄM¥kVÿ·rÔZ×0xŒ´6zEu¸{úBjv ij#�x¬l×…­3ŒÉIÕR0¸&_0ìHu¢sÎ訬¢Ç˜Ì·,7“èïÉ¿V¥Õ'õç&yAvÎv¦÷¤¬.~Î{Yi�¾'væ5¶F,j£ÿÿü¨;–•žOL�æ‡V¦›.¹ýÿÿÿ.<;4ûð<  ?ÿ - ÿÿÎ(?$$ ÿþóðUÀu< ÿ@<¼! $%ÿøúßß´Ö#&&5P0@""E*5 :#!aÃÓûÇÿã01; R"`CŸôÿðP$QT×ÿ´wÈ.ÅÌ´~çOd]5¼¸ÿý>æ³@¸ïð++Ÿ°ÿÿT+ç„3Î5Àú \ôC•ö¶‘&GÆ÷éYÿ`o.é8䨹ûC6'EÙžUû+(,äá-/> ,gê ^ÿÿI¢F©bNÛ{Ý÷'8,éýÛã ¢{ŸÉÙÿÑ ¼'-Ó6Eš‘%±­½êV*ý7B(FJBfÌþÈt|U¬<‘´ÔºÿÿüÄšš™ëåÔkQ–jjBýßøŸ"03,÷p< 7  Uª–Ô!2ýþÿòsÀ;*&ÿp*°äö†P�'/7 …6R§òÿÿE1h>V1ödÿˆý=«{öõÿûu,F_ïÿü$#Hh£^9ÿÿwÃ8ñ¬iñ[µ¢®-—UkUäÅ87mÞ¹ºÝnm88opÝÞoÞ7Ë:kj”ÄÍCú‘§Çh52 –Ë„ì�¤Øê’Õ£{ñ_A'8¤7=/¦hê@7ðkÔö¢á¹ódáMHÁ€n÷Ñ£Ÿ�+}¬ kZ8µM¥ B¥µ,¦·ÿü|Ì›¸s¥®—ìåší²¾êc©n:€+Àÿü,= ¹çŽ™Z•V,•÷ÿüÿ 2/(ÿOf à&' ÿüýS:#ÿH>½% ÿæÿ q11a¿"ÿI³ð¹, óÃÿÀ!G j>! ×wK84>ü¼°¥ST¢ÿ°<ݼ¯¿À?ïe}ö9²qñò!Ämv|L¦×™ï±}îsäÒÀl]�üÿ<üÿ~~#$hcdO å¾o�û‚¬ €oï¼x¿}pu*Æž‚�;‘©’åS¦ ˜ï´ù. 9Å!Þf Öÿÿü¹qXWe�x¹Ã¸9ÕUWB@™ ÷.' SH"I.w ²«®µ?ÂBH¶©LB|=ÿÿ(_Z]p6»R€d ‡\YN*9&DŽ® dÿIó ;83Àÿü4 Q)^Oªªª ðÌüÏûÏ$» »¿»$$¿»» »$$¿»û¿°ËÌ$¼ðüûüûüû#´ûÏ»»»û»û0$$»û»»Ëϰ¼$xû¿»¿»¿»»$$»û¿¼ûû°$<Ï û»û»°$$°Ëû Ëϰ¼T» °¼°UUU ü00À¿ÀÀÀÀ?ÿð0ÿÀ¿À¿À¿ÀÀÀ0?ÿðÀÿÀ¿À¿À¿ÀÀ0Ãó0ÀÀÿÀ¿ÀÀÏÀÀÀÀ?ÀÿÀÀ0 À?ÀÀ Ï<À?ÀÀ@À€ ÀÀÀ? 3ÌóÀÀÀÀ€À?À?Ì ¿À¿ÀÀÀ€ÀüÌ0ó¿ÀÀÀÀÀ€ÀÀ?ÿ0¿À¿ÀÀ€ÀÀUUU   À Œ€€$ å5_¨øÊÑ„GdÂ@tÄ€¿(Ð        *46820   B4NPB( JDRTF8  NHVXB4  .8:<64   F8RTB( JDRTB4 FD NP>4  &024.4 "$9$       EC:E@B<JL:,  B<JL:,  B<JL2$  A?2A824:<*$ *,24"(jtnpu uvkuou   #+-'     4p›.>prtjprtjprt60>@.  20 :<*  *,24&0.024   *   2,:<6(  $&(  "$ r8HÝ "$        T28_powder T28_powderäÂö¨„À}Ä´B —rÀtÄy qy ä€tDö¨„ôB€}D —rÃý qõ  õýýÿ3ÌÌÏïðïñïñ ùÌÿü=;<;<;<¶;<<;y;;´>y;;´>y;;ïñïñïñïñ òñïñª©©ê ðàðàð¤@@44? 6Cd@8DD´D´D¥D ÌÏŒ @@´D´D´D@ôCCDD $I$I$O333?ÿïï¤ a>ô48D8-&DB”B”B¦ïþ¦DKDKDKDDôB@D“dI6D“d _wWU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©«© 3?Ì©ª©ª©ª©« ©©ãq©ª©ª©ª©ãq©«©©ª©ª©ÿÀÀÀª©ª©«©©ª©ª©«©©ª©ª©ªÿ©ª©«©©ª©ª©ª©ª©ª©ª©ª©«ÿÀãä©«©qrü髬«©¬«ÀÀÀð©«©ãäüãä©«©©«üð©©«©¬« À©«©ü¬«©_wWUTSTSTSTSTST7S) 3?ÌS 7TSTSTST7SÿÀÀÀSSÿSTSTSTSTSTSTSTVÿÃ9?üÃUÀÀÀð9:ÿ9?üð?U ÀüUVVÿÿÿÿps)}–__U�. ^ÖbŠ.ée¤2�›âyõ¾õ©åFEÝZ²ä'i[(xóΘ{¹»û[‘íõ×Ýâé#†ª¦�ÑYç»Ã òì‰0Ö¸VÚâL{ç–¨… ¦w,ß0½Y Ð8íl ¯ªK°�B©–ßþ ‡¤üGޏNV‚>5R¢ÔբЋkËÐòH“ ¯u��wŽñ¥º½Ùùç`¾¿ˆæõðBÕß·^PlµE Hí(\e×Ñßk¯qSÊ?šòU�qUÝ\B¼=ëÉ1£[ è½Ýݼ€L¸ y÷d°Q«×ÈQñâ#Gtà9¯¢¹ÉäY�Q;ª|od¹…ýK7VÏ ìÎÜ÷IJÛZ½šBâéGPâŽá"'Â!p§�³ÈNÁæ†þιg¢„ËB¢º™fR�úrðÛѹzÈÖU¸«€ K`sl†ÐÐh¨ûÔJ‰ÙR}ùî¨Hbè�d%*Qf;™“"®v ¤’®¯½aw·ÖÒ·(Lzƒbùïd÷‡Íî!ÄíoŸeT�iÁÓš”ÇÄs~˜?$‘ ¢´;¸+�BÔv~ ,¼wŒ‘ºj©Z1�A! 'ËFúÏïÿ»'<  ): CN%´ù&A0"@c`2 @@!rD’D’$ 0špBBBdl &ñFÎðŸADûTÏÏÿoß@'0+DÿñÏi  D!4 "G"+$g2„ ^SÅ@  ýõ÷õ€‹ 2;Þzªhä®xÃDOùÎOþ(ø@ȵ!CÌ·!Ò×]CÞö®»!¶ÕÿÙH```Hüã@ØÔJñ¤¯jp% ŸÒg¦q^øÇA®iHoÁ_ù0`‚í@»ý|ÀÍÑO2o�›ÿÿ¬¡ðòÔöVÄȹ=íî�‹‰0I8†˜V-ßÉb 9?&cF$%7&9<!ÀòÿC´ôY\ò”û×û›ûŸ""$Á&�  ?1holS8:M|!$}bIN(+MòBI“X ðp›ÿ™ÿ$..ÿ¿5"+< &I’˜ Ï6or饭í3ÌÌÏ/°°ËËϰ§Ì¼û°Ï»@4 4 ?(ÌÌÌ_Ÿÿ€ÿÌ??? `ÿ `ÿ `ÿ `ðü ËËÌ `4 ÌÏÌÏÌÏ###0333?00(`/  -û ËϻϿw0»»û»û»ÿÿ$$__üüüŸÿ€ÿ `ÿ `ÿ `ÿ ``@ ÌûüÏ¿Ìûü### 000(0/PAE HH@CÈ€~``` 0ÿ��€~�€€ ÿ_wWUÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿ÀÀÀÀ€À 3?ÌÀÿÀ¿À¿ÀÀ ÀÀÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿ÀÿÀÀÀ¿À¿ÀÀÀÀ¿ÀÿÀÀÀÀÿÀ¿À¿ÿÀ¿ÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ?ÀÀÀÿÿ?üÃÀÀ¿ÀÀÿÀÀÀÀÀÀÀÿ?ÀÀÀ?ÀÀüðÀ?ÀÀÀÿÀ ÀÀÀÀüÿÿÿUUUUffd @€fd @€™™™Œ �€` à€øÿÿÿÿï û;;;;´;;;´;;;´;;;=Yy;;´>y;;´;;;´;;;ïñïñïñï û;;<;;x;;x;;y“vùöùûŸ9ùÀ9RI0d719/ôP Œÿÿik?ðD(/û?ù?×Q"¯ÿ! -•ùÿÿÿÿ(ºµp“†ì¯æ¢2Ýä/Õ†ù»EÙÈO£ŸB‡�ίOu·Ô‹Ãoæ hî¶9ïx9c$·l·n�-ÎvÃßýع5"ýN…˜¤ÁC¡u~$0~XuÙ<óBüñˆ v†X"¦>b׈}èDz\Ðm-#åÔN„¹Qן2Dçj¡”Jöâ]Úó›,s„Y OÄ"˜Óì?ÆÑ{‡û�ðíãã”UîîŽmõÒd_RšÆ <¥ù™lUúq¢ëÇÓÔK Z�%#ÅÃÿÿ1q»mC¯K‚Ö#¸~g³5IﮑŸŠÿø?¨SWB©I p�Pƒ0cCªjtÜ&ä¾.g%¶u@AÿÿðxV`N›®KØ‚A/ÿÿ|™Úl¹mÂÑzÚv/(S…Ùí Û°äIÚw 9(4E!I‚0Êø÷]ïe¤%âiL~ñ•uYW}ßï i^'>8ïñ“Ä#2 / †d�ó"Y� o‡gŒÔ2!� I�„ƒÿ?7ryrY^. &'ÿø +��ÿ%ÿo|“ÿM>ÿ†f$›üB‰„ QZ3,SZ72ÿðQD%( $û�ÿYJ ú®þêÿpY»ù»ù""»ù»°üÿ¼û"w$    ?__Ÿÿ€ÿ€`@?@?@?@ ÏÌÌüÌÏ¿Ï//000(`/÷›¿›¿›""¿›»û »Ï»"Güû¿»¿»¿ÿ$$$/?__Ÿÿ€ÿ€`@?@0o@0o@0     # 000(H/ÿÿpY»ù¿"›ù¿ËË̼ûk»¿»¿»¿»¿$$$/?__Ÿÿ€ÿ€`@0o@PU@€À ™ €ÿÀ †€€€ÿ@|†€€UUUUü ?ÀÀÀ?ÀÀ ÀÀÀ¿À?ÀÀÀÀÀ?ó30?ÀÀÀ?ÀÀÀ? ÀÀÀÀÿ?ð00?ÀÀÀ?ÀÀ0<ÏÀ?ÀÿÀÀ00ÀÀÀ?ó ?ÀÀÀ?ÀÀ0ÀÀÀÀ?ÀÀÀÀÿÿÀÃ?ÀÀÀ?ÀÀ 30ÃÀ?ÀÀÀ?ÀÀÀÿ ?ÀÀÀ?ÀUUUU@€`HÀ@� Ž @� @€ @€�ÿ;x;;x;;=;;;´;;;<§‚£æÑ~*²lm0Ï]†©lr0<º}˜­éŪ к]YŽ«¹ÐJܯ— ˆY[‡#{ã†\é–óŽ“ÌÅS™±_æîáÈšjünÞ´H®å.-�ÀÖZ%BT"pÒ)Š8ÿ'BC3‚  +8/L0$@1 D%B'B)D!€1ò€Õu`ÿÿ[(T81‰Îÿíÿy²ÐId )k1ð‡Í/ÿ„rŸ,»ËkÅ>àXNPCPÏù$ÿü†ŒÍ˜�?˜˜%�GJ2 #_ˆè¯vÙîÀëÚe=Ÿ¾�Èÿæ{R/8 >Gb1   Çð ? ¨úm¤¿È;P+Àõ_ÿÿø@­D Rü†óé¿#qÁÚñÀä"s9«zÈ®ü�¬A#]ù�9:Š™ PÈÎ�,ñìÚB¥ž (º/²¤kQÕÄâÏ8 €fY_Õýs !†BI¿B‡„P9ðò@MJ%ï ÿÿu`HÅ~?|¯WT Ÿßoßoß�   €¯0o@0o@0# #  000(H/ÿÿÿpY¿›ù©üüÏÌüÏk/?__Ÿÿ€ÿ€`@0o@00Ÿ@00Ÿ@00;    000(Àb0ÿð€€ U0ÃÀÃÀÀÿÀÀÀ 0Àÿü0?ÀÀÀ?ÀÌà 0ÀÀ?ÀÀÀü?ÀÀÀ?0000ÀÀÀ?à ÀÀÀU€0$@ `$ ÿÿÚ7ÿAåÌÂ@tÄ€¿~ Ð            "$  &("(      >(  "$F@NPJ<  RLZ\F8  :@ NL         ".0* 2,:<6(  >8FHB4  $  "$   . :<2 :4BD:,  B<JLB4  .8               "%(# "$ "$$  A  2$:4BD>0  F@NP:,   ISU     ECE    "*,&  .(682$  2468&(*,  -ECE                  %#%     "*,&  .(682$   1       =GI  5 ?A    M       535    "*,&  .(682$   28A   6$  >8FHB4           &(" E            535    &("  &$ .0*    E C&E,.(68.   60>@6(  >8FH2$   %#%     "$  " *,&  9             -+-    "$  &(" )        5?A )')    &("  *$24.   9         T28_rockT28_rock|Â×£„À}Ä@B)xÀtÄ€†€|€tD×£„Ã@B€}D)xÆw Wìëìë)ìë)¿êìê*ìëì¼ÆQR«ÈST´ìë'ÁêììÁêé)ÁìÿüÀë)ÂÆSTÿtT ìëéêéÂÈST¬ð?ðtT;tT¬tT?ð<;tT¬tTQìÌÌÿÀêìêììæÆQRüZtTj–‡èàö†Øx÷ÿð2«ö^öhö\ønÿüÀ�öxùÿZsð?ð†s?ð<†s`€`€oŸð&üW]ý ÌÏ0©©ª©ª©«©©q㩪ª¬q㩪󪬫©«©óÿ?q᫪¬ªqrª¬ªÌ3üÿ©«©©q㩪ª¬qrªª¬ârª¬ªqrª¬ªärªª¬qrªª¬©ª©ª©ª©ª©q᫪¬ªóðqrª¬ªÝý ÌÏ0S7T$7Tÿ@?$9V$Ì3üÿV)"7V"x$z$€7Tóð$ÿÿÈ™±b¯Ë°MûàÏÁbi‰¦ëÉÕ[AL.‰×‹YÍz�gg³dd±Qíò°i¼b¯Q©®ýQAç–DDŽQM²²´ëüâ-¦ k<øqs)sì¯'Yò¦ò”góË}ɰ�c¼¼p‚~󜜞0V�œ›êéòñ°ò‰My8:ÿðÖ±¶PPÿÿ1 O ‚/ /\OZ )"'2M=XI^O=^O =6/ //I = 557  71 #7=*O`_`_ZYTI$ + ÿð3ÿÿ:<麦Üã1l2õ˜i~ _B,k3ÒQ6ò­&W%+}tRkv21'x-¡X7%%!\>�ìëÀ?µ/'Rœzy¼9ÿ©SVI:R™&$ Y'Ü<ô<ÄHµ›,VöT6$Y#Ïð>C4tUUa“ÃÂo[ ï˜d g oäÃÂCjw 2C $= Ͼð #D€ÿÿÈ‘Ýý NYœÌd>P Õ¾8s*i„(WßÙù3Ø4=> ?b '%„ º¹¿yzÁ êmâ«mŠ‚�Ger £ýÕ[m$$mê/0&7þдH•s—«d:$WjÏð¢C0tKU•$�ÀELŸ@&Œ`I ƒÀ(?3Ã0? HódtöÿKÀ]ýað¹)P*yO kJr)üûÀHmÕ ÿüð>dA!!Cd§Àÿÿl8=v“\<Ú~}}A€[^½`>Ï!""BcR Ÿ­”­®6omGn K^{!D$iEÏð*A!"¤TUÀ#  .d`3ÀÂã6?@0'$??0Ì?ð8 55@ÀwUuÏœçİGÏ)œÿÀƒ„cNãK»)¹­tÒ«&%K&ÿ%˜€ÿÃÀbÎÍmØÏHé«ÿÿÀ{‹ ’ozj¨äUQ0ÏÐÏÌÅÛÀÈÉd O¼h ÑÒÏhÛÃÀgÎ gô€ n– ¼û ðû»$ w _`€0/ûÏû»ûÏû$$$ÿüÀ #3?@@ /û ËÏÿÿ<#3/0ð?ð /0 /?ð<0 /¨ °°°°¿ÿð?/0ü /T@ý ÿ ÿÀÿÿ0ÿÿ00ÿÿÿÀÿUý ÌÏ0ÀÀÿÀ¿ÀÀÌÌÿ3ÀÀÿÿ¿¿¿¿ÿ¿ÿ¿¿@ÀÀÀÀ3ÿ??¿ÿ¿¿¿¿ÿ¿¿¿Ì3ÌÿÿÀÀ€¿ÿ¿¿¿¿ÿ¿¿¿@ÿ¿¿¿¿ÿ¿¿¿@ÿ¿¿¿¿ÿ¿¿¿€À¿À¿À¿À¿Àÿÿ¿¿¿óð¿ÿ¿¿¿UU `qˆ˜x@„0rff!ù,UÎí�«1ÿWÌ.ÂuÄ€¿†Ð   .  20 :<6, 68>@60   r�      8 639  ou  h Wa[]  KQ  _e'-  ;A'-  ;A'-  ;A'-  ;A            [a  o T29_groomed T29_groomed�Â…+ŠÃ@ƒÄ"Bìq„À}Ä   + <+ �€}D…+ŠÃ"B@ƒDìq„Ã< ßÿÿÿ¯°¢®°¢®°¢¯¯­¯¯¯­¯¯­¯¯­ÿÏ̯¯­¯Í¯°¯¯¯­¯¯­¯° ­¯° ­¯¯¯¯­¯¯­¯¯­¯¯­¯¯¯­¯¯­¯¯­¯¯­¯¯¯¯¯¯¯¯¯¯¯¯¯­¯¯Ÿ¯¯Ÿ¯¯Ÿ¯¯¯¯­¯¯­¯° ­¡° ­¯¯¯­¯¯­¯¯­¯¯­¯-° ­¯° ­¯° ­¯° ­¯¯¯¯­¯¯­¯¯­¯¯­¯¯¯­¯¯­¯¯­¯¯­¯¯¯¯¯¯¯¯¯¯¯¯¯­¯¯Ÿ¯¯Ÿ¯¯Ÿ¯ªªªªàWå~ö†€€`�†�†�†ˆ€x€`Í€€öˆ÷è�~ˆ`€€`ø†ø†ø†€€`€øhøhøh€`€€öˆöˆöˆ`€m†Øm†&†ö†ö^m^h†�†�†�†ˆ~ˆ÷è�~ˆ½÷膈oˆoˆoˆh†�†�†�†ˆh�h�h�h††Øm†ØUUUU ü00©ª©«©©ÿ󪩪©ª©«©©ÿ3ÿ«©©ª©«©©ª©ÿÀÀ0ª©ª©«©©ÿü ª©ª©ª©ª©«© ÿü©ª©ª©ª©ª©« ÿ©©ª©ª©ª©ü ª©«©©ª©ó 00ª©«©©«000©«©000©«©©«À ©©«À00©©«000©©«000©©«0à ©©«©UUUU ü00ÿóSÿ3ÿ?S)ÿÀÀ0ÿü S ÿüS ÿSü Só 000000?000??ð ?À000?0000?0000?00à ?uUUU ü00TSTÄÆÆÿó£TSTãäÄÆÆOÄÆÆm‘rüÛ‘’‘ÿÀÀ0’‘’‘‘‘�ÿü F‘’‘’‘’‘‘‘ ÿü�F‘’‘’‘’‘‘ ÿ‘�F‘’‘’‘ü ’‘‘‘�F‘ÿ 0ð’‘rü‘�´Æ0000ÆÆÄO000?ÆÆÄOÆÆð Ä[‘À000‘»‘0000‘»‘0000‘»‘00Ï ‘»‘r‘‘UUUU ü00ÿóN$#ÿ3ÿ:L*ÿÀÀ0ÿü R ÿüR ÿRü Ró 0ð00008000?8ð 0À000<0000<0000<00à <@üvPÅ?ÀDõùSÿ§dö±?CDCö±@ü BAUü�+®�ƒÿÿù�65®ùðØ?Àõ;8ÿÀ%;Lö0Àðõ+,*)À0€00€00€0ÿü€ *3gýAU�Ÿó fÀ0€   @@übaªÕ,ÿÙ‚¤K?WXW¤Kü üƒ„'H?ÀW¤¹nH€Ú¿ê¿ ðÌüÏù»"°°°¿»¿»¿$$$ÿÏÌ S0/000(o0(o/`(o/`(GGGGGG ÀÿÌÿÌÿÌÀ'''ÀÏÌüÏÌù»¾ù»ù¯¿¯»»""¿»¿»¿»»$$$ /`(o/`(o/`(o/`(GGGGGG ' ' ÏüÌÌüÏÌü'PAPþ€Àÿ0þUUUU ü00À¿ÀÀÀÀÿóÿÀ¿À¿ÀÀÀÀÿ3ÿ?ÀÀÀÿÀÀ€À¿ÀÿÀÀ0¿À¿ÀÀÀÀÿü ÿÀ¿À¿À¿ÀÀÀ ÿüÀÿÀ¿À¿À¿ÀÀ ÿÀÀÿÀ¿À¿Àü ¿ÀÀÀÀÿÀó 00¿ÀÀÀÀÀ000ÀÀ€000ÀÀ€ÀÀÀ €ÀÀÀ00€ÀÀ000€ÀÀ000€ÀÀ0à €ÀÀ€UUUU@�@€  �€   ÿÿÿÿ¯­° ­¡° ­¡° ­¡° ­¯¯¯­¯¯­¯¯­¯¯­¯-° ­¯° ­¯° ­¯° ­¯¯¯¯­¯¯­¯¯­¯¯­¯¯¯­¯¯­¯¯­¯¯­¯¯¯¯¯¯¯¯¯¯¯¯¯­¯¯Ÿ¯¯Ÿ¯¯Ÿ¯¯­° ­¯¯¯­¯¯­¯-° ­¯° ­¯° ­¯° ­¯¯¯¯­¯¯­¯¯­¯¯­¯¯¯­¯¯­¯¯­¯¯­¯¯¯¯¯¯¯¯¯¯¯¯¯­¯¯Ÿ¯¯Ÿ¯¯Ÿ¯¯X° ­¯° ­¯° ­¯° ­¯¯+° ¯Ÿ° ¯Ÿ° ¯Ÿ¯¯­¯ªªªªh^m^m^m^h†�†�†�†ˆ~ˆ÷è�½~ˆ÷膈oˆoˆoˆh†�†�†�†ˆh�h�h�h††Øm†Øh^`ˆhøh~ˆ÷è½�~ˆ÷膈oˆoˆoˆh†�†�†�†ˆh�h�h�h††Øm†Øo~ˆ÷è��~ˆ÷è†B^�^�^�ˆhUUUU0000©«©©000«©©À «©©«©À0©«000©©«000©©«00é©«© 0< ©«©ª©üÀ«©©«©©0 «©©«©©«©© «©©0ÃÀ«©©«0 ü©©«©©«©©UUUU00000000??ð ??À00?0000?0000?000Ã? 0< ÿÀ)?0 ??? ?0ÃÀ0 ÿ?? ?UUUU0000fÆÆÆ0000QÆÆÆ?ð QÆÆÆ¶�‘À00‘K�0000‘‘K�0000‘‘K�000Ñ‘K�‘ ?ü‘NÙlçè!UÿÿÀÅþ<ÆÆ‘0 ‘½‘Ãô¨¨–‘£ –‘Ãà £†«½‘ðÃÀt‘‘‘‘0 ÿ‘‘]/êÔ{ýóóóÌdc‘ ‘ 0ÁIUUUU00000000:?ð :.À00>0000>0000>000Ã> ?|FE4ÿÿÀ!*0 <C)`+`Ãà  7$<0ÃÀ0 ÿ óóóÌ+, <@Uu?ÈÿÀ4?ÿÿH‘qY~íñh¬`ÿ?ªbØï._2ð<ÃÄÞÝOP˜Ãóð—¤tèn_ ”Ãóðó“'íé%¸‘CDCðÀö±HGÿÿn:§TS©©Q !eóóóðÔ¤„"¥¬.ÙÀÇ€Uu? ÏX˜wü Ï? =F=ð<('ÃÐ *'Ãóða / À*)+25¤ iE<óóóð!P#,Eóóóðóp¡fÿZ1'-¦3CûuZç>_$}dÆÉµÿÀ¶%&ÿ5TAÿÿ0f9)z3-~uÿ RAô­ðߣXö´V'/Þ³caÆg‚^C®ÿÀ­ˆ-û¢U ÿ}î½R ��’?ÿ*8aB6wZÿÀ&‹t?'¾ÏÌüÏÌûËÏ`S0/0/0/0/`0(o0(o0(o0(Ü   ¿¼Ì¼¼¼ ÿþ U0Ã3```À``€ÌÌÀÀ````à`ÀÀÀÃ``à`` ÌÌ`à```U !@€@@¨G÷ÿ|Â@}Ä€¿2 Ð        &024.,  >0FH:$ B<JL>0  F@NP>0  *468&(*,      *," *$24  6@BD><   N@Z\J0 RLZ\F8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 >8FH6( :8 BD2( 64 >@.$ 5     A?6A<>8FH6(  >8FH2$  :4BD2$  2468&(*, q      EC>EDF@NP:,  B<JL6(  >8FH2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  1/21864 >@.$ 20 :<*  ., 68& A      53258:4BD2$  :4BD2$  :4BD2$  28&, U      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$ 20 :<*  ., 68& =   535     U      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$ 20 :<*  ., 68& ‘      53>@BD.024 "$µ     )'.)420 :<*  ., 68& *( 24& I $ & .0&  .(68.   60>@6(  2E8     )'")("$*,  &( "$  T29_packed T29_packed–ÂÃÕ‰Ã@ƒÄ BffƒÃ��Ä   zíz–Â��DÃՉà B@ƒDffƒÃ8 í0  ýÿÿ?3ÌÏ?ûüûûöýþýþýþûûýöûûýöûûýöûûýûûûýöûûýöûûýöûûýûûüûûýöûûýöûûýûûûûûûû ýþûþûþûþûûýûûöýûûöýûûöýûûûýóþýþýþýþûûýöûûýöûûýöûûýûûûýöûûýöûûýöûûýûûûýöûûýöûûýöûûýûûüûüUþû ûüûûöüûûöüûûûýûûöýûûöýûûöýûûûýþýþýþýûªªª*à`€ø‡‡è`€øhøhøh`€`€øhøhøh`‡†øhøhØm†øà€×è½×è×è`€`€øhøhøh`÷‡‡‡èhøhøhøhhhøhøhøhhhøhøhøhhxp÷èö^hõæ�§^hhhøhøhøhhxxx`UUU ÿüÌäãäãäãäâääÌÿÀÀâ©áâáâääÀÿÿÀâtâáâáâáâäÀÀó<äâtâäãäÀÀÿüäâ©äãäãää0ÌÿÀâtâáâáâäÀÀÿÿäâtâáâáâáâÀÀÀÿääâtâääÌÌÌ âääâä©ä âä©ä âä©ä Ïâä©äâäÀ0 ©äâäÀÀÀ©äâÀÌÌä©äâäUUU ÿüÌ87878788:8ÌÿÀÀ:«7878:8ÀÿÿÀ:ã8787878:ÀÀó<8:ã8:9:ÀÀÿü8:«:9:9:80ÌÿÀ:ã87878:ÀÀÿÿ8:ã8787878ÀÀÀÿ:8:ã8:8ÌÌÌ :8:88©: 88©: 88©: Ï88©:88À0 ©:88ÀÀÀ©:8ÀÌÌ8©:88ÿÿŽ»Pï\¸8Øæ„ G¤…)…{©Ï"Þ5ò†´ $C ëôîňƱ…<Ž÷ÊÈÊ‘dÑÊ‘dÈÊüÅϚʵ–ÒÎP^½N¦v>5ä´HÜNWÎŽÍ@Ž�Ž`ÍÎBÎÍBÎÍŽŽ�Ž�Ž�ŽÀÀÀÿ`BBŽŽ`BB‘“F‘F(2 öñpt;{¿Ä”`»BÈÑ)ÊÈ5ÿÎÿä3>73 ÀÀÿÿÀÀÀÿ9¢1 1 1/–,&_*Q*C( b)¾¼ïÿ))l77b77l'77v177L7 7 +ØÿÁX=<;>;>ð;>?ÿÀ;<;<;<;9ÿ_ÿKR¯¿q5*ì�MÃTÂêr\9»õ²Gt x…Žuý[%íC üÊ›d(U|%UV®+×VîËó<u2ÑàüÔÀè.Åù烳g=ý†ÞvMôz—µ¦üü™ïuWhd˜äf%`AèçVØ.[W9w€nÚ¿´€îÐy'øUO¤ƒqM»WlõSèáTé�.@'²+yz‰ˆwz‰ˆ˜ü• ¡ÿÿÀb1|{΋¨Þ½W^#ÿÿ&->=8 9*C(*M,2&#CCýÿÿ6É9ÆÚ/•lQiœ5.4_Óoa/ú=‹T¹P¤ÒŠO0Œk ³r& )P¼ÀvwÚÀÀÙÚü£ZJuw©?ÿþAQ>cJa^2ÝÏï  %)'&gT‹l�j^��ÿÿÙd:> $  -E8]F>ïÿü)<)*)Y" ~)*)*)*)ÀÀÀÿY"~_ý™ÿ" @/úúôøö¡!--!7pÅP§ËÀ€G@€HÿUÃi$Ù¯›·20Ùô¶oš~øJâÔká;¢›Õðl|?‚+ ›Ìþ÷nB…êc…†Ço²†×?¹Ã þüƒ ENMý±Æ\üüÝ'ù�ƒùT™Fê8T'œCûü³�Ý|^ºÂ$](À‡-”Ïj?$,Wpn…°Å.Ò9ƒõ¼&@�ßÏÀÏ÷t†n•(‡žyz‰ˆwz‰ˆ˜ü• ¡ð žQnÕÿÿÿ”!  !@=2I(8Ïð[.@ee D<<\óCCCˆÿÿo,8i2(i<iD  §Å0¡ |ÿ�ã'*}21|K1|]ø|~_Ö �ÿÿ2V8WŽke¨�Ðf§FeVëÖwD*Ì¥«¶ÿÿŠ6Ã(ë}ãÉ,•± ‡Ò›ãrp̹Ʈ6ÎPz©4‚ü’Í<`�ÿøššxðÿ´iK)>wÿÿü•Rºñ¶¹öôù\SooÿâáÍÎC@6(  >8FH>0  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<6468>@.(  :0BD2  :4BD2$  &, .(:<*  ., 68&          .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<68:<*,.0 "$EA?A$& .0&  .(68.   60>@6(  EC2E8:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)824:<*$ *,24"$&(Q       ECBEHJDRT:,  B<JL6(  >8FH2$  2824:<*$ *,24" "$*,   T29_powder T29_powderäÂ…+ŠÃ@ƒÄ´BÃu|À}ĉ L‰ ä€}D…+ŠÃ´B@ƒDÃu|ÃMLE u}ÿÿ3ÌÌÌïðïñïñïð Ïÿ û;;<;<;<;;;´;O>lM)oy! ??> @;³ ù“ûuù•øQ¥:[òCCà,‡Z±Oo44o_o>�_9µQoü@'™?¹?›_¹1Q…1ƒ¿3 \W3Cð /òð5{_W ³õ{?W™Oÿÿÿÿ=¥èÜçËeü:ýÃìÁW&FlN=ûW¥€“ÿà¿ #ÆÅŒ1h§™OÉ%ÌTÀOÈ1ÒÿåLps^(A¼éÚ½TE¢7"ERâþ‹K:¨#æçÕØÁš¯|åØm÷:NäˆxÅaÿƒ{ì€`VߵČžƒ•j¦¬.¦\b'Få€fµÅŠYj óçèë;?ã2â ž¼„Êß9Ù.SMûÂ!£zà †_g‚¶µ¡ÜšíOfعc¢:‘Ö”[Æ[�_«‡ç°ZYppMâÅøÙtQ]ªÂˆÎ÷IM ÐO‡Ü+qúÈô/™æðôiÐŒôPtÉû{eYYU:À˜€ œÿC&%%´'51#hR@R@R@¤’Pþ B‚€[##5`«³³ª@ŸD!`,éÃ%ýCÕ5$  M3Eõu]×è²Lœ¶_¯ ­­Îh«j¼Do?ÊfL®¥æÕz````ÿLêÚïð:9�r¥¸Ö‘&·ËeÿÿüT ¬d8ÎêÞlŠl C? ³ÛÔlV«ý^/Œäü¹üG`}ÿ!¦aà!! ÿT+'¦�éXéFúØ·% mÞû}Gà ½€?ó‘’¨¥‹¶+}dãþ»¢w’}žÕhàÒ• dY¢ï’o_�_!��! ?Z$;úUÅ:]ò#…žæ 6? _o_¯_9÷Q"ü ÿ83ƒß3"4Ÿ_Y$Õõ�_Y»1O$$__÷]»¹¿"—�a½»œóVfQ–ó{¾ «i¥=‚æ¥ÿÀ é îcÿjßjE¬8~4Á>“ùÜxâ÷nö߃µÔgJ\¶ÒK-À<ü.‚ÿ²pµFÄNÆ8/É9™ñ¦¥Ð)¥���n´‰=ÕüMž“ú"½ÂZ±Jl0Þó¥ÐfÜbÍÎÎüµK?aî‰ÿÆÁ€f"‚Ð&¥`H�YY¦U�¼äur ÿ0ò°©É…MFÿ€}¨ÿARÏÃ?óWVUTQFýöûöýø ""$€$w:sv±O�VWå���þO÷½¿UT&½_½¿½´ &f:÷sà EB  ÿÀÁ€3P!`H�imú¯3ÌÌÌ/÷P�©©©û °Ï¿Ï¿_$ÿ333  //?__Ÿÿ3À33€ÿ€`@00Ÿ@00Ÿ@00Ÿ@00G ÌüÏÌððð000ÌÌÏÿ(H/ÿ÷ššÏi¿Ï¿Ï¿»»ÿ0//?__Ÿÿ€ÿ€`@00Ÿ@00Ÿ@00Ÿ@00G    000(H/ !ùfðû»¿»Q0»û»¿»»ÿÿ00//?_@EPA3€€```€ ÿ@|�€€��‚ÿßWUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿ÀÀÀÀÏÃÿÀ¿ÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿À¿ÀÀÀÀÏÀÀÀÿÀ¿Ì0ÏÿÀÀÀÀÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÀü3À@?ÀÀ€ÀÀ€00 ÀÀ€ü@?ÀÀ€ÀÃÀ€¿ÀÀ 0À€Ãÿ€ÿ```ðÿð €à```€``À``UUUfffB@™™™™€@fffl � € ÿÿÿÿñïñï û;;;;´;;;´;;;´;;;=;;x;;x;;x;;ïñïñïñïñíðïñï û;;;;´;;;´;;;´;µ;;;´;;wZ;;;;ð;;;;ð;;;;xyç¿( ($  7(K!!ÿÿÿÿÈÄŽ”AÐ�¡üj—c’’‘_`¸‹‹`“"�`"�`"�`"„L.ëUnM­Ÿ¹yñô³=CÞž€qtÛ7Zå„Ûéóv ¼·h0Ó“"[k%qq‰ ¥}ã‚ Yú„ŠNµ4z#M”R»æRèXæÕâò‹`{p…”¨��æÚR² �bCéÏA`È4õË@ÁÅɲøˆ?p€÷{•À5€¿¶5£ÃðÌ—ÒÐ캸g‚{¢¦IyfW{¥²È”¹°ñÒâClÄ›¼f&6G<œ¼ŽIÌðñÐÆ£ú䮋²�•Ëß½aœðt'„Œ)¾= ã�Þ§²b0…Z㲪›¶jü$0'›?™ _™_™Q3ƒ83ƒ¿!\3PÑ�߯- 29RF y7·ÿùŸÿ )6DmøFþð "¹•û•ûµûµ8Qc[ðˆSy^O%‚S-ˆQ3†I5N.ÿÿÿ,öbÒ4/&7O‡A/ÿH&oÙ_Ù_û?û  0Q…S¥ÿ" qG\ÿÿÿÿ:v*(2êžöÑ£ž–�‡ –­k z­šç—ç—ç—ç…“K0o­éຠœ+Óú£Úc}‹´/y°^(L³¹QN Z|Ý¡çqŒÒº·Éz ˜=ß²:FQ$/$¬¡ýhÄUr‰ÐWlêh4FŽa”W¾z­Oàåþ†ÈM¿(©L€SÒ[Ç%«‡ÖK]^fS«êäQéVp÷òGôŸfîYè.OK+(k¯L�Ìd©†©È‹b ·~‚AZi1d)ws0vÆÓ{ðC"üÁˆë½�*ÍÙA.îg³ž~LìïªÅ&Ç_õfSmÅûàd*å™3!¯:A)–§¥Y1@$$;;$’Iü¢  �9Oÿ1R'e 7P[I (nWý! Sr%#2&B@T T T‰‚} ( ä?DqCŽñ3ÿA �BVJ BBBB$—Xò ;Tu÷{ð’Ñ��ÿúÀFúÀFúÀFú… \vež£ôñÏ@,ÿlÎâ �lëîøß=øÛEôw TQÿY§ü7²_ê°ÔíÞ»·+[A•Ü„rá‚..ŽúÂD¦çŽXéF¦ÇoUÿüa€ ÷n;ÚóAxláÂßñÿ LdØù‹7r1Žë/Í—.˜»@ofè�ìÀ 1BBBb°¯S|'ùæby¼ßð® Ø�xi¶aÀ 3ƒ83ƒß"4< / RGH !V�Ÿ9ÙðÛ¿&&&òWð83ƒ8?ò(L2Q'zG1z;9v/=\@Nö€ô-ñÛÀ Q…S¥ÿB p2××õ]ÔÇÏolI Áî’yÏôÜÿÿðÿ™øä¾cþ¨¾¤ð?_0ö„àÆ ¨`ƒˆ`uT²cÇÕÕ¸SM%êia¿²½?ÒÑÍ‚J¡‘ÿÿÁq=¼†hà=è`¨¾¢C¢ýÁáilO)ü>3ÁKÿÿ~Ô,'Éy ­fló�'ß÷{z- {;O*é ME+.ÀCÿÿ ñ�ýÁ p8øþÿ9TÍŽ†¿Y”„½sðø®K?ÿÿmågæCS‰XûÀš•U]ÿ$ÿÝ_ÛYVUR"ÛÛq""`==zSPÓ¯ï�AÂOá¼ ½?"!“x!�?þc\ÿÝ·ý·ÿÛÿ]b"$*ø Óÿ<a\YZ?ÿï'?!$'&%"ÿð ™N=.K,?€@ÿò oj ***àH?÷:utmj¿ú¯ÿ_Ÿÿ€ÿ€`@00Ÿ@00Ÿ@00Ÿ@00G    000(H/ÿÿpUUõUõUõõUõ[ûQ»¿»»û»¿Ï00 /  S?__Ÿÿ€ÿ€`@00Ÿ@00Ÿ@00Ÿ@00G    000(H/UÅ\UÅ_°™ËËÏ»¿»¿»$$ $ /?__Ÿÿ€ÿ€`@00Ÿ@00Ÿ@00Ÿ@00G    000(H/PUÀ€€ 0ÿð€€ ÿÀ€€ 0ÿUUUUÿð0ÿ```à`00<0``€``Ã0``ÿÀÀÿ```à`ÀÌ ?``à`__`À00```?€ÿ`ü ``à``` 0À€```` ÿÿ``ðà 3`à```à`3000``à``0ÿ`ÿ``ð000`à```<0À````0ÿÿ```UU H€ H  ÿ;;;x;;x;;x;;x;0         ",                  %#% I                A?A    "*,&  .(682$  9                    2(&8 "$ "$ "$$Q 535    "*,&  .(682$  1                "*,&  .(682$53*50 2,:<* !e  ,*@>P 535    "*,&  .(682$  1           535     "$  " *,&  a   "*,&  .(68.   60>@6(   535    "*,&  .(682$  1           )')     "$  " *,&  %        9CE 535    "*,&  .(682$ 1       T03_rockT03_rock�A¤pßÁäÂðA33ŸÁœÂZ Z�AœB¤pßÁðAäB33ŸÁ˜ � 0À=ª©ª«¬€ø€«ª«ª?ð?SÿÿT¬ÿ«SþÀüÀýTªýTªý㩪ª¬ârª¬ª8᫪¬ªärªª¬ârª¬ª7TzÎ7Tzx8BÔ::<±è0::<¬ü^$}\%/ÞÞ:9›ò$}$"[iYk&‹]>�e0y Ã? =+¹²L˜±øMŠ$Q0O  Ã? ¦Åúcª[¢g½"Ufa  Ã?#$GÉ9Ÿ„V:À“Ð:WÔ"]=0 ?ð?`_ @_€`ÀüÀ_ @_ @_ ðU_€U_ÿ":UøUøU""«*rãî�ë½]g A¢Â€¿_Ð  "(  "( "T29_rockT29_rock“ÂáŠÃ@ƒÄ@BffƒÃ€}Άª“€}DáŠÃ@B@ƒDffƒÃ“†‹ Uw33ÿRRRRÀmµ¶QüÀük·¸ÓܶQܸÀüÓܶQܸµR<ÌÏÿ¤RRõRRRQQ¤RTRR÷TRR÷TRRRÌÿÿÀRRRõRRRR¤Ü¸ÒRRRRR£RRRIk·¸ð?ÀdܸÓmµ¶üQܸ–jçÿ{üÀüŒ{ÀüŒ{ ``ð`fUÆøføf```�f†ÿðiö€f¶f÷ÿ^"ð?À•Œü{Õ©ª©ª©q㩪ª¬q㩪ª¬ârª¬ªqrª¬ªärªª¬qrªª¬ªóóðÀ«©©ª©«¬«©ÿÌ ©ª©ª©«©©«ÿ0?¬«¬«©qrª¬ªÃüÀü©«¬ª©«:㩪ª¬qrªª¬â᫪¬ªóðqrª¬ªÕ$7T$7Tz$x"jóóðÃ)?ÿÌ )ÿ0?ÃüÀüV9V$x7Tóð$ÿÿ2‡ˆ±ëñµØt¹¹ä]yÒ5 o¨ݹ¹Y“$ªoooûFljjM ðqmo*AÑØ’if¨è®Ÿ!µÕ^Ûè­—•{k€³V&ˆœ`x„9²€êÇÈqOE…ooÏÀ*…5Ÿœ³îÀ0†.™¨ää¹PPüÑÑoP‹“Ì ÿð?ÑÌÏÿÿ.MfeHG37=1/7 /% 5 `k Z9\YlQj41TêRaPYJŒ˜ÅVcRoHIâ1KI?Ï/I A‰@Gž5/-$ /WE-Aÿð#EßM/e©>ˆ"©W:ëË(]mS4$$(Y †Ï)^21 ϹÝlk´ WÏÏkTï3ôˆÄKÏ#PfeÓÔ®Õ#ŸÉáU*¦�~ÊÐVzL1¿y׊e@ S?{;̱?áý‡ñ²¥[\;#ÿÏð%)`ÆCRŽÿðE"OÕu3ÿÂ@($! †Ï:)  "342‰‰„Îÿü`=�^( . o @ßðáä³Öù‹ v)k>@ aþ±lj±kl ÏÉ ãäÿD¡ àI“›¹¶ckJ;ç�d‡óƒ ÃÀø]ÞÞtÛ/�åJßtïö›àa �»w›e’1¢1¢ #ÿÿð!j3`-ÿð["Sd•v?üÀ _ À€Ç€ô@o_ÿñ0160P1 aýÿÌ - ”­*Xa @†@ß}¬E³QkHÉëFkiF WHiO&\§In­+* OK?@&«‰Ë7(ëcÿÄ8Ëqœá��þÿ/G)KR?a¶”Ÿ¥¨»ž>Bc›|Be*m®³´rK%ÿÿð%Irµ OA`¢üð! _=ÕT;óÂA(D" ! �Ï0 = B)@O>8 i7Àá8+ H@Õw?ÿ¸mÇ¿T}—((| HuƒÔý¢¿LSBS£ÝZ:½Ù*Ôº£¤Ìûÿü@ ÏÛ­ŽNÚGµJÉÓô#”ˆ+#¼¯9 @Uÿ 2S$+,<g#$/vXSR EcÿÿüП! ŒüÿßÀ_äêÝìçîr•j33ÿ /0üÀü0/ 0 /Àü 0 /Ö PPðPUfµ ù»ù»°""°°¿»»ÿð$C /û°» û»ÿÿx?/0ð?À / /0ü /Tÿ Àÿÿ À ÿÿÿ ÿÀÿ0ÿÿÀÿ}ÕüÌÿÀ¿À¿À¿ÿ¿¿¿¿ÿ¿¿¿@À¿¿¿À¿¿ÿ€___ €___óóðÃ`¿`_``_``àÿÌ `_`_```¿`ÿ0?_`_``€___ÃüÀü`__``@ÿ___ €___ ÿ___óð €___P˜`!@€b!í%Ødßø6ØF^Â@}Ä€¿°Ð    *0 >D&, :@&, :@&, :@       ,.0*(  :,BD* 2,:<.   $&(  &.0  © &(&(*,"(*,*,.0"024   Z` nt *0 > T30_groomed T30_groomedpÂ.�ÃÀ‡ÄBÀˆÃ@ƒÄ   ÿ‘ÿpÂ@ƒD.�ÃBÀ‡DÀˆÃ¾‘¶ ÿÿÿÿ=>==>{>>{>==|==L=>=>=>=>{==|==|==|=Ø=>=>===>=>=>>{õ>>=>{º=>{=|>{====|===º===º===L>=>>==|=>{==>=>>{>=====ø====|>{=|======º===º===º=====ù>{>>{>>{>>{==>=>=š=>=>=>·===>>{>=====º===º===º=====>=>==|==?===º=>{=|>{=|>{===>=>=>==é=>{>Ì=>=====º==ªªªªˆðw÷ˆø�€xxxÉ hÖ�o€xfx€`VVWïw ‡ÿ‡ø÷øˆ�ˆ�ˆ�ˆ�xwɈø†VP÷å|bhˆöˆ��ˆˆˆøˆøˆøˆ`÷÷w÷߀eeo€xxnˆ‡ˆˆ�ˆ�ˆ�ˆ†‡‡ˆø�ˆ�‡ø÷÷ø÷ø†VVV�^€‡ˆˆ�ˆ&UUUU Ìü0©ª©ª©«©Ã33?©ª©«©©ª©ªÿ 33©ª©«©©ª©«3üÌ0©©ª©«©©«ÀÀÀ©«©©0«©©ÃÏ«©©«©©<ª©«©© «©©À0ë©©«©©33«©©«©© 0Ì«©«©©3«©©« < ©¬«©« Ìé©«©ª0 ð0©©«¬«UUUU Ìü0SÃ33?SSÿ 33S?üÌ0?ÀÀÀÃ?0?à ÏÃ??<* ?Ì0Ã+?333?? 0Ï?3? < S ÌÃ?3<ð0?@÷wuU=Æ×à“—–ÍØÖ0/ØÃ33?Ö.(&&1A('(ܵ÷Q�âQÁë?ê(îRQR˜('(&&1ÙÍ˵[\wø–•Ö,~0Z&Ö&&1ìRQÙüòþý±üØï¡9`€& Ë&€&ü0Ã¥€&XŠ&1(:uQfƒ¬ÞãPOsœü?ÿîl&íe1ܵ(31&(1 < &d11& ÿÿ/<˜É¬…?"Q0ÿüð0RQZýÌ1/0/÷WuU/l/%0! Ã33?&@$34C4S 6&343"! 0?DS(' .0 Ãÿý0034721ü 4E' 0ì0à :4E.=$L34G0?ü?ÿ& .=030 <   ÿÿ0+# 4ÿüð034 -÷wõP#w,D«GeéÚ 2îòA𯰥 �”«É@/S3 ÂX“Z {wÞÝSTjú RõC>;q$P˜à:ðÖST?üCô¯ EF4-�ÖÓ¸ÑíTµÿÏÀ•¯ÑÞը؀DÀCüóÀSö±ÕÖ#$QÝs膭ûWó0¤ÙÍ€Ð=Q¿�ÇŸj ÿÿM=dŠ[ž^½“?0xíýSuuÔP<÷þü- .'-9P9-P=Jª=·Q›T"VKêUUTAÿÿR?)N7>X``ü !"1n )*ÿÿ//<):9HO'~÷uõPZ#¤ëOç<iÊð'#ðLK±ÆdQƒŽTsƒÊÝІ�9:ôó½¾½lR´]ÿÿüT¥šƒxrÿ\«Pü?@“”az-óõ5,NÞÞèÿÏÀùD™b§šWÀXð!"7ò¹›�`q>6 ¨áI÷ö=>8úíšÝÿüñÐST*êãÝÞ×UUP9 y¼+"Ãz}B`$“ÿ`=8,#[>0m8ÿÿü/It-K $7˜$ÿ\$}^ÿÏÀ™¶G9Qj€` ø0]‚ûÿÿ g9: ¹œ!€0Ý`¾º¾¾ » ðÌü» ;0/0/0/0/`0(W0(W0(W0Ë ¼ÀÀ¼¼»ÿÌx¼ÿ¼ûüû»¿$»¿»¿»°ÿÿ$$/0//00_0/`00/0/ƒ  Ï»»û»¿Ï¿¨0»»»û»û»û$$$ /`//`//`//`00/0/0¿ ¿»¼Ï »»¿´$»¿»¿»»¼¼$$  {@00Ÿ@?p0_?p0_?p000/0/0/0(óÀ¿¿¼»»¿»œ$TTTTþ0ÿþ€0ÿ þ 0ÿ8�ü�€0ÿUUUU Ìü0`€`_```Ã33?`€````€`_ÿ 33`_````€``?üÌ0`à`_`````ÀÀÀÃ```à`0``à`à ÏÃ``à```à`<À```` à```Ì0ÿ``à```333à```à``` 0Ï````à`3``à`` < `€``` ÌÃ`à```_3<ð0`àß``_`@@UU   �! ÿÿ=º===ø=======?¼==?¼==?¼==?=>{=ø====ø=>{==º>{=====|==|==|==Ø>=>+>{=|==>>{>====?¼==?¼==?¼==?==>=>==|==É=>=>{>{==º===º===º======|===º===º¹>«=>=À>ªª�ˆ�ˆˆhˆøˆøˆøˆ€÷øÿøˆ�‡ø�ˆ†�hÖ�h÷‡f÷øø‡xhˆFøˆøˆøˆˆxx�ˆø‡÷øØ�ˆ�ˆ�ˆˆhÖˆöˆÿ€xVÀUU0 ©©« ©©ª©0 «©© 0 «©©«Ã ©«©ÀÀÀ ©«©©Ã Ì«©©«©000©«©ÀÀÀ3©«©©«UU0 ? À?0 à 0Ì??Àà À@?ÀÀÀÌ?à ÌÀ)?0000?ÀÀÃ3?ÕU0 11”/ À1121Šð X11/<sšðÞû̼aˆÿÀà À9‰‰‡cÀÀÀ̉‰‡c‰ÏüÌÀ‰Xß°hø1/”000ó11/²x¦4Q{Ëj nRuQ}ÀaÕU0 2 À0 0.=&5-0?(Àà À92ÀÀÀÌ2äÌÀ0000ó :4U.M ’32KÀ2ÔÕÊúÎÿ$ÀPI1|=3r3/d'+Tü 9ÿÏóRG-~G1z_`ÔÁ@6,   "$"$ "$        97:9@>< FH2(  :4BD.   60>@.   -  9 7*90*,24*$ *,24"$&(I =     1/218:4BD.   60>@.   60>@2$  *4"$&( -         &(*, &( "$ i    535 "*,  & .0*  2,:<2$    2 824:<*$ *,24"  &$ .0 1      6<68>@*$ *,24" "$*,  %)53 5     !6!<>8FH6(  >8FH6(  >8FH2$  $=      BHFD NP:0  >< FH.$  20 :<&  Q       53"5(*$24&  .(68*  2,:<2$   2 824:<*$ *,24"  &$ .0 E   &  .(682$  :4BD:,  )'2)864 >@.$  60>@.   60>@.(  T30_packed T30_packed–Â.�ÃÀ‡ÄB¥†Ã@ƒÄ   è Yè –Â@ƒD.�ÃBÀ‡D¥†ÃYÿ }ÿÿ3ó3?ÔÓÔÒÔÔÔ{ÔÔÔ{ÑYÔÔ{ÑYÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔ33üóÔÒÔyYÑÓ«ÔÓÔÓÔÓÓÔÓWÒÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔÔÒZÔÒZÔÒÔyÔÒÔ¯ÑYÔÔ{ÑYÔÔ{ÔÔÔXÓWÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔ«ÓWÓÓW{ÔÓWÔXÓWÔÒÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔÔÒÔyÔÒÔyÔÒÔyÔÒÔÔ¯ÓWÔ²ÒÑÌÏÿÌYÔÔÔÒÔÔXÔZÒªªªªhho~†÷èf†�†�††çPö©eex~€``€öhöhöh`€``øføføf€`€Ö�hoho~†÷èohm^f†�†�†�††÷å~ö^©m^hf�f�f�f††o†o†o†hhohohohfõæøà€`hhÖЀÕUUU ÿÿð©«©©ª©ª©ª©«0 ÿ©©ª©ª©ªÿ©ª©«©©ª©ª©ª©ª©«©©ª©Ì0ÿÿ«©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿü00ª©ª©ª©«©©0 «©«©©«©ü00©«©©«000©©«000©©«000©©«0?ÀÌ©©«©©ª©ÿð ÿª©ª©ª©«©©ª©ÕUUÕ ÿÿð)0 ÿSÿSSÌ0ÿÿSÀÀÀÿSÿÀÀÀÿü00S0 ?ü00?)0000?0000?0000?0?ÀÌ)*?ÿEõq�ú"‚ŸØÊ O YVŒ4™N½œWÅ9¸ê_`}`¦œ‡&âîc&“%©&íO8|6²Òg¶–3DCÿÿÌDCDCEFEŠFÎðððÍÎÍÎÍÎ ÏÿïŠECŠECŠEEŠEEÄÈÃã/ÿöNÝ�ÃLU)Ãø„íjÄ�Dj‰‰ð| zßp¡zEŠCEŠÏ>EŒÿü<\4545454¹d$ Q'j-&>?ûýùýõø..çü)ù0 Ñ0???JIFA>>;:><000 M &004<MÐÿòq?u ',¢r0h ñ�[•m¸:�stÜç„âšNt§ö¿üÐÇjrAo’ uF)Z LÈâÞ—zÿÌÀg[ÿÀžèÆÕˆüüüwˆwˆwˆx‘•®>\¨;#d#ô_ߎ0ÿ"Ýð¢Ÿ?8E*???yˆú|Š«’?$¯Œ<<“”ËÌ<ñÿ+,)òR@ôô7.cB"?Ïà;[XSj`7À   ¡ À}ý€HLøøøKJKJKJ?ÃÀI!l=)h >;  }>>>2JKJML>ON<À_Õd#‘ó©æò`ŽÈ`ç|جè2ÿXoêé‘}W“êÙ!¿CŠ­ÿóÏÀŽÛè“/X‰R™´ež§5¦8ݦ8ݦ8ݦz{—.¨!ß|œE›"B¯~ÚX4øTº4º™�.––ÿüßXöŒˆñ§<=¥¦£¦<???8ݦ¦´¦´¦¦?ÿÿ“¦y¤ÿUTÐâ^ªÊ¤, ÷B�x�ï—aŠY@_Õ@?ó!4¿!ýòß\'<->5ïïï)$?2(ø#ÏÀ+J™˜µŠMü�¾>\4545454�0 7 "=0q‚g†a@3 H?$ÿüM:;~åx<<>>>J45432>ÿÿ10Kq†…n…Z …xUBW\;T ªÿú¯UU_kUöµU  ›¿›¿›»""" üÀÿ$4'('@GGGGGG   ' ÏkUöµ_U\úkU›¿›¿›¿""" 4'@'@o0/X?/XGGGGGG ' ' ÏüÌöµõ'è°PPY»ûð�@@Àþ0ÿ þÀÿÕUUÕ ÿÿð``¿`_`_`_``0 ÿ``€`_`_ÿ`_````€`_`_`_````€`Ì0ÿÿ```€`_`_`_`ÀÀÀÿ```€`_`ÿÀÀÀ_`_````ÿü00€`_`_````0 ````à```ü00à``¿``0000`à``0000`à``0000`à``0?ÀÌ`¿```À`_`_`_`à```_`P €ÿÿÿÿÔ(ÓWÔXÔÔÓÓWÓÓWÒÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔÔÒÔyÔÒÔyÔÒÔyÔÒÔÔÖÔÓYÑYÔÔ{ÑYÔÔ{ÔÔÔ{ÔÔÔÔÒÔZÒÔÔyÒÔÔyÒÔÔWÒÑ€ÓWÓÓWÓÓWÓÔÒÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔÔÒÔyÔÒÔyÔÒÔyÔÒ­ÓÔÓÓÔÔÓYÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔ(ÓÔÓÔÓÔÓYÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔÔÒZÔÒZÔÒZÔªªªªo^m†Wå~†£höhöhöhhføføføf††ö†ö†ö†h`^~†÷èohohf†ØhøhøhÈ÷å~W¯åhf�f�f�f††o†o†o†hhohohohõeV`^hohohohf†�†�†�††V£VV^f�f�f�f††o†o†o†hhÖ�hÖUUUU0ë©© «©© «©© «©©0À0©©«0ÀÀ©©«ÀÌà ©©«©©«0©©«©©«©©«© Ã0©«©©«©©«ó©©«©©«300©©«©000©«©0à ©«©©UUUU00à ?? ? ? ?~3À0?00ÀÀ?ÀÌà ))3??? Ã3??ó+)3000?0000?00à ?×ý×Q‡EŒFdFFîCŠªCŠÍÎ "ÎfÎ"Îì ðËðìˆEEôÌCEòˆCEòˆCE¤P$OÙÅðQYŠ¡0 ½‡-8š¯\ÂS”ûI; ùDÅÅàÃÜ»ÄT\ CŠðEŒªEÿÃÃÃŒîFìë Ð"ÎfÃÎìððËìˆEEôˆEEôˆEELjC¿}Dò{Ã(rx\¢µ =|QÞòÞV»æw½t‹9÷WT òPÆtÒç´Óð^�EÉÿü<''<''>'Õý_ð0?› # $æàÏÏÏÀE­ôE³úE¿ùE´P í0Ð ß ¦©.  ùeìŒXÔ©'$+ ›œ_Äò½E†–Ñ®Âù+ê “HuôÑ0KLLÚ óóó¶Ò³È­ôE³ðúEÐ4  ñ" ©.ޝ4¬’=Àí*!Œ(í{Œ¸ â‚’GÛ"|ŽÆ?mC®A‰¦�])/~´îY # æàE­ôE³úE?™àE?ÿÿ¾" ©.”Ç4¬ûPU^µWðƒ,:���€;:;:;:8.-.-.-.þÿlõ†Ïd-)  #4E-ŠC%ÿÿÀ†%A6Kóãã,8;:;:;à:ÃÃÃ8.-.-.-.1 ,- H%"Iÿÿ/;‚;= ˆIA~?- >>>,:;:;:>;:<óÏ8.-.-.-.Õýßð0?»åGHnDÏÏÏÌŒÖ:Œ¿4Œ— Œd cú3$üÉUó‹!²Å30=Ëì«�ì}18– –�)Ñ÷63£Ó�r΋DÙÄ(#`ãŒB Pµ‚LKMïóóóf2Š¿f¾Ö:Œ¿ð4Œdc+Á3›Ñ3²Å$®ÁI'2ï®áO»‚¸äK+› r‡‹IÃþuaµ]öçOW‹F_L˰ËÿÀ è†G0nDŒÖ:Œ¿4Œ?0kDŒcd7Ñ3²ÅÞÁI¯ú•j¥–0'� íííÃ?e7äs\1\1FØßøûúùøuðUZÃãÃÀÃÃà  Ðõó½Ÿ v#dOfoDO¯X=3dO³ÿö�~/L><<>ðíÐíUUuWà #gÏÏÏÀŠqˆkˆ?GˆÿöèHÛ"®=D `oÿÿ/Py=�©¡0ÿÿÀ‚�§\õ`‹óóócµç³ÐqˆðmŠÃÃÃPiW{î96 Cÿ‹Žþ‚;ºê;£¶f™u???#gŠqˆkˆ?!gŠ<óÏ•UY—0},P���€QPQPQP444HÏÏ ?1rE)ÏÿÀpKH_ããã,PQPQPQàP@@@ÀÿMjE hA`#3>>>,PQPQP>QP@4@4U_õUð{%  /uÏÏÏæQyÌ—¸‰¦ú[úG:ÃÞñû•{ðG/fÒ´…[Þp?q‹yáøþ�ÿ€|¸_ÑÃÃà Àóó󅦑¦‰¦…¦ÑFÁ—©Tn{ãJ ™(=!îð«?úåK:�›}„qÿðð`c` ŒªÎ<<<  < ?ÿÿ‘¦‰¦…¦/uYŸuYð],VVVN0���ƒ101010 95g\ CV[D U\ur1?h'B'ü€B5 ```ÀãããN01010107íà“~ï_Ã`ix=:ÃçÀ`943%(```<>ûïN0101010¿ú¯þ /X?('@'@GGGGGGÌÿÌÿÌÿÌÏ'''úPkkUöµ_U_UU›ù»ù»""  @'@'@'@GGGGGG ' ' 'üöVePkU_óU_U_UU›¿"›¿›¿›»ÿ""L0GGGGGG   QA0þÿÀþ���Œÿ0þa†UUUU00à à```à ```à ```à ```à@3À0`à``00ÀÀ`à``ÀÌà `¿`¿``3`à```à```à``` Ã3````à```à`ó``¿`¿`3000``à``0000`à``00à `à```UU ! €@!ÿÒUÔÓWÓÓWÓÓWÓÔÒÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔZÒщÓÔ{ÔÓWYÔÔÔ{ÔÔÔXÓWÔXÓWÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÿÿÀÔÔÒZÔÓÔÓÔª ŽeÅ\UÅhhohohohf†�†ØVöà‡æhöhÕÈÕÈhføføføf†�ee`U 0ë©«©000©«©0Ì<Ï©«©©«©ª©ÀÀÀ©«©ÀÀÀ©«©3©«©U 0Ã0?0000?0Ï<Ï?ÀÀÀÀ?ÀÀÀÀ?Ã3?ÿE$Å}ñ4p3!Þ½þºߺ0Uþvt3þ»¥&H!Ü__ìŸE¬œÄÃÄ€ÎgÎΖÍÎzzÍÎÒÀÀÀÀpËï³ÿÿÀpÌC¬ˆˆˆÄˆ{'L%,5&/' 1 ¿›¿»Ÿ¹Ÿ/02.9 )CÀÂÃÛ˜ -ÀÀÀÀ@ÿÿÀ@%)>'%'ß”þ•€p @çs`Ë7të5ïaã÷) ÝjÔÚÇÄ1çS-ÿÿ<ͤƒà@ÆYŸFòs¼Û”¾YR(C°9ÃÝІÀ³ÿÿÀ¤#·Z�¸Ø9)—1*I"=5¸¸9?ÿ J+\CZ“hÿÿVúÁû;:/.À"óÿÀ8.-,-,=<ßEk³ÃûP­0({´=5•J,heÒÌR•‹D+´ÿÿ<¤´r')3·Ž„…^™v’S�›ýõdkÐeÀÀÀÀ² ÒÿÿÀ„Á£‹¨,üi¿›A )xû?,h0ÿUòÛð!ÀÀÀÀ óÿÀ!  Õÿ÷ÁC8 4EþýÃÆ ? Aðÿÿµ3‚ÖªÆ9OOÚW?°6Ýs 0Zt À„óÿÀ=>yz}~U 5!¿ÿ V3'\;<}~øÿ_ßQPGF !# À64CC@ߦI÷Ç5Ch\h8¬ÑCòßF¢!ÌY.>Ýv~'˜Yë”ÿÿDl¯ûè!"^Wkf¹JpôÝÀÿÿÀQÝÏ€6KLWß'L'®‹Â¡ üñu<to<ÿ9<ðö„€ûÿÀN0/.-.ABúÏV¶kf¶UUç_U_U_UU› "  o0/X0G/0/0GGGÿÿÀ 0ÿþ!™€U 0Ã0````à0000```à0Ï<Ï```à```_`ÀÀÀÀà```ÀÀÀÀà```Ã3à```j�ÑgÎfF“ ƒÄ€¿í Ð     *," *$24  6@BD><   N@Z\J0 RLZ\F8  NHVXB4  .8:<64   F8RTB0JD NP>@BD28 ,.0*(   :,FH>$ F@NPF8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64  >8JL:(  >< FH6,  >8FH6(  ]       EC6E<>8FH2$  :4BD2$  :4BD2$  532468&(*,a        EC2E8:4BD6(  >8FH2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  97298:4BD2$  :4BD2$  :4BD2$  *4"$&( E       5 3*50   "$ E          5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$    28-     2   :4BD>0   !6! < :8 BD.$  60>@.   60>@.   5       53"5(*$24&  .(68*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  A?"A(*$24*  2,:<*  2,:<6(  1/218:4BD2$  :4BD2$  :4BD2$  *4"$&(=535$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  5325864 >@.$  20 :<*   ., 68&  )     97"9(*$24&  .(68*  2,:<2$  53258:4BD2$ 64 >@.$ .068&-,  97"9(*$24*    53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$ .068&  &(.0  T30_powder T30_powderäÂHÁ�ÃÀ‡Ä´B¤pƒÃ@ƒÄ½ ¹½ äÂ@ƒDHÁ�ôBÀ‡D¤pƒÃó$¹ë$ u}ÿß3ÌÌðïðïñï û Ìÿÿ;;;x;;;´;;;´;;;´;y;;ïñïñïñï û;;;x;;x;;x;y;;;´;;;´;y;ªªªª ðàðà¦@ @RD’D’Dò`1cE6$ð–3ððàððàð¤@@@tGDtO@8F83ƒ8ðàðàðàðàýþþú@@óCDD8KDKDK8Dïïþú@DGDtGO$I$I!Hdqdþþþþÿ ÿï¤ c DD$T$4ó„×WUU©ª©ª©ª©ª©ãq©«ÿÿÀÀ©©ª©ª©ª©«©ÀÌü0©ª©ª©«©©ª©qrª©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ü0Ã3ª©«©©ª©ªðÃÿ©«©©ª©ª©ª©ÿÿüª©ª©ª©ª©ª©«?ÿ ðãä©«©ª©©«©000©«©?ð0ãä©«©©Ã< «©¬«©« ©©ÿüãä«©©qr«¬ÿð<Ì«¬«¬«©©«¬«ÀÏü©©ª©«©©×WUUTSTSTSTST7ÿÿÀÀSÀÌü0SSTSTSTSTSTSTSTST7Sü0Ã3SðÃÿSTSTSTÿÿüSTSTSTSTSTV?ÿÌð9?)000?ü09?Ã< U Vÿü?9?ÿð<Ì)ÀÏüÀU?ÿÿÿÿ`¤L±Û:ýú²ö”œ]‘]]Å]X“o¦Uqý£¥î•Š$j¦5z:\3!üÁÂÚ Ññ Oÿ_˜+—¸$uÃVì¹X6Õc™ce¸p<ðp;éi¥iºkvjpiDÚ Ÿ«CŸAyÓ(óu‘›ŒŽ6G3{Ó±6{Öåµn;|¯°yu \&&úž65Ü5¦Ë<;[,üòûÞ OÐ75è¨0œ¤ØoúÓì$‡™™eh 3Œ…öñÓtrÁAûp‹(w³iH^hDcÈs9°Eå°{$°Xù›ý‘!#!‹�çäbÂý˜'º)þü$“ß’‚ï»ÎU�]›p¤¦5|WËëꪫ#"+   3£©%_÷_qðqé°+!+L) `%F#>$Oo™›ùi%)$©S0Q (›±KÿÿÿJ%F+J+J+J-J+J+J- ?ö+»ÿðqj 9ÏhÏH¯jÿ%#*"úÿð™›ñ )'qpC’Bÿ&  ")ÿÿ5ÝßþÎþ;.!úøöW¿÷ùü—0ÿÿ™�ðF)ÿÿÿÿ0{ýÃ$tGØŸ#-І‡:qt¾·0içaRÕùÂÎ[gRP?l5 $óÄ£G÷ãü(A®zßµÜÒ‰û3Ÿ­RÌ ’±•ÅñËO‹_r;ŸÙÏê \-›ÏÒÚI“nÄùöh)�Ó¼à ùØòÿpqs©:]Q{%v†ýF›oŽ{@K5¥u!41¶}[ò0NA Ø„n–ƒ™+¯rõ›½‰ÖR-ª¼[£4›2ÒÚ–Y!Ï.L5÷ýf£l {÷i(rH0ð[NC¶.'¢bÓ†SXûʧþ0�•§ˆ °Å+O²röœõ¡Ï;ñU@|°…è8xÿŸ}jª©‘ð #5LS1ˆ;El) # ü Aÿ4òAGòòPýÕý5roô�f´�Ð" ROÿúö4·#!$C<ý?ý_�û„(*ïøÐý_³(郅dwÿñ�¿þìòKãϪ«†T ïÿÍ0p¡TCé–¶ñöVÛuÔ0}´Šº"WÊoöU"¢ÿ£´X+9¡5âìt'šØM]U•y7Ì0PrmlgdIV-,+&O(ÿ’Hf&%BOãßÇî |ïÿý& €a�€Ó4ih_ó f+ @�™?-ÿ& ý_ø g/ÿH!wïÂP&A2AŸÿúåßÏ/LE._Ji|e~ UÿÌ÷$l-OTimº«3ÌÌð/PPPÅUõUõUû ðÌü¿‡üÿÌÌ /  S?__ÌÏÌŸÿ€ÿ€`@0o@0o@0o@0  ¿»û¿ððð000ÌÌÏÿ(H/ÿpPü¼»»™¿»¿»¿Ï»ÿ$$$/?__Ÿÿ€ÿ€`@0o@0ÿÿüÌÏÌÏËo@0o@##   000(0ÿÿ÷–o/UU » ù»Ë üûS@ETÌ€€b ÿð€€a  ÿ×WUU€€€€ÿ``ÿÿÀÀ``€`_`_```ÀÌü0`€`_````€€€€€€€€€ÿ````€`_`ü0Ã3_````€`_ðÃÿ````€€€ÿÿü€€€€€?ÿÌðÿ```_`à``¿000```?ü0ÿ```à`Ã< ``€``` `ÿü?ÿ```€à`_ÿð<Ì`_`_``¿`_`ÀÏüÀ``€````à@@UH™€H€@ÿÿÿý;´;;;xy<>y;–;;;<y;;´>y;;´>y;;ïñïñïñïñ òñï ÀÀÿÿû;Ó>y;;´;;;xy;;;Z<;;;;;´;;;´;;;ð;;;;ñ F<<\ñïñ ù=ªªêªKDG8GDéƒ?ïþú@–3ô444ñdqdJqdqdþþþþÿÿê`BD’ E!óDCC83(„ôD3ƒGDDB”B”B”Bþÿê`$D´D´D´DD0BHDÔ6D“dI6  `@ó„KD,G8OC„D4DB”B”BÔD/–3ÿþ¦UUUU000<«©©qrÿðãä«©©qr ÌÀ«©©«ÀÀ©©À?ð «ãä©«©©33 «©©ª©«© 0À¬«©«© ©«©ÿÀãä©«©©ÀÀü«©©«©¬«À0©«© ©ãÿ?0ä«©©«©©«0 驪©«ÀÀÀ0¬«©©üqrãä«©©UUUU000<ÿð9ÌÌÀÀ??ÀÀÀ?ü T7?3Ï3 ? 0ÌS? ÿÀÀ7?ÀÀÏü?SÀ0 V9ÿÿÀ0??0 ó?ÀÀÀ0ÿ9?ÿÿÿÿoÔA† i´íà¿üN}­­i¼rìɽ‹™c/eÕÒ0IŸ¦5p3p±íÇÍôÖc Ó <³ö’r¢òYz¯$Ģݼ¿ˆ¦…QO¶�V~�KùðÖ›9Ž5ïÜhw¶Wµi>¦j«²!\ÖÕr4%Â{Èš"GÞð玣Ü'�q8è 3p&&\_…[±&B[’¸çoÏqGäE{\’ƒ‚P.þ»áicÅòhÅEg: ‰Þ*òã`t:’¬Jö‡`ö…õ"kšàiÓªa ®ûVo:¯:ÐÈoŒ¸~ƒç¾ÁÈÐÕ:j€¹ô#W!<zF½­­yRê¯êª¯��$ÿK4¿öÿò¹™ÿªJ%'(p��ö4ò""'9 #: !&7  "ð÷°+�ü&(üúîúÏøÎÿ3314Oð›»ûsËq©q‰Qð™Ÿò@!FoëHúT�  $)5!Ww{2ÿñ!90ÿà ĮòŒòj÷%!�òÝöß½¿8BÿÿÿÿØqrÊׯð?ѫǢ¤ù¤JÛÞ{MBÒ“8ölÊÑI>ÿ÷öÚùeq�#’ÂDÿÜLãoy Òë[Þ´áöÈ"äãÕUDJè4د¡¤ŠŽ)¸=ÁaÛÌ‹cs »Æ®dMj‚™Ø·OË“ñ ïºiÛ_Ð mRC–w{ôFµ<”;Oöo˜Í¸hea†´ F¼wwé´y”à)Ž“+2O{Lgk„vŸÛëKiÍòB�3+ÈCîWz"-˜ø.Í…©v}/ãO4ôÀ¨‹¶‹G[Žbaû埙f™’L®}¨µ™¯J4Rý<ÉÎ ðå L}ܨI…‡ëˆÉ7^¢øŒ�kn¾{ 0 *( Oÿü ðÅ$õEEeú÷ôõ%/ ÿÿu$3õ¡0®¿û÷Rk)$4'1÷Ÿöÿžù\'oïßß $ÿð€ »ûÿ&, . \93 j#G < 5 0!³B÷ÁPT*. Ÿ-j #,TÿŸÿõÓA#,_:!^ 4 4 6Îoû@ $ÿÿÿÿö$Œ˜Ý(G¿§,Ê­nÛ¤ëï!�8œ½=ûÌAdïp@Âu×fJàÒñifÆq¥ªº¦à#7ý›D•_>BﲪuŒ5b¡uÄåxY2V‡h4O?¼ùFvGzúáÚ¯gæ\u[æ)Ï2„Ij¸ÙÄ?§šåtvÌZ'LÄ`L" êaë+šèNÚø;T%†I®õ&Rž|a2k››2]þS)e ùêHº-ź^ÃØ0ÒáРIÖs@ÔYÔâL¥Þ*¼ þ�N4¶!£‚Qq±Ä|l$<ö(÷Èmų{²½š»ÆJ”M~/@¹&ÛöÝX æzOÕ!´’í”!”PÐ:½kƲãhªñ‡©Z¦ªBBÎ)¦µ@c0ÑÆó¤±`1 R‡y/ŸφpM²ÿe#&þ$DB'PF%r"èê>QbE3浯1@$P#WÏÙñ&!4IÿOïÿ‚E<"T RBp"@sAÛýz÷σ¾>v¼ÚÕA½éªÿÿÀ6õó¶SSm)2¶fÿÿYVžS[½„ÿ'AŽ¥2½�tú¯P `ÿÿ]¸k¯,éÑL W¾a––²n?Û]Âóo"Xil¥I¢?ÇåÞ§û 4ÿÎ +ñÅ‹ [Âìmð¾°¯øý[N{Ž ÿ@ Ù”¡ýü%öÊtš3”äýÿþ˜íáQ�аÍmTÜ®N@‘!¶) ¿à?ÁÀl··ýYZASÖLô#u¬Ë÷–O?�¾áGå,ä‘‹: Wåuu> 66! ¿Ï"ÿÿe! À4ÿ?ÿ?3.F-9ðŸöÿßýd 5  0"À,02þ\\ 6Hü<95p-.?À=!"_<'L FJHÌ/ 2~¯ïˆ=./¿Ÿÿ5,�ƒ_0v¢tùo‰^Iƒ¹è4˜@Kµ%èÍ~p­¬nd0%ðÃ…’‘ˆà¾Vtî«‘öDQZáŽãºœ\éÿð;â¼xÿ$65!Böàôäùêÿ544 *�÷M’”úaìVëµÔ?øÇ™fï]?G1¼?OLÕ]§%”ÌœE¸u6ÿÑÕf0ðGÛ\ºÖïq›èb÷F² a1FºI<ñ?îNM�?¿)ÿð?"!/ZŽ�®•íx ^åeW_Z$ $$“ø×ÿ$ w~ÿýë©ÿò&’1;$| 0Y^YX%ÿô$±´&UôBf „$ �†. 8 : oš-/òü¿V+GG, &ß0U\Uòüôþa´ˆ!>ucmÄÿø5@�„gÿA.ƒŒþªíê¿»¿Ï¿»ÿü$/  c__Ÿÿ€ÿ€€ßŸÿ`@?@?@?@        000(ÿÿÿpUUõ0/\Vü»¼¼ÏÌQûû»Ìü¿»»G»û»û»û»ÿ$$$?_ÿÿ?_Ÿÿ€ÿ `ÿ `ÿ `ÿ ``@?@ Ìü¿ÌûüÏ¿/## 000(0/pPüû¿»]$¿Ï¿¼û»Ë0S»»û»û»û»$$0 ?0 “_Ÿÿ€AE@€€¦f€ÀÿÀà`€~``$0 ÿ„€~UUUU000<```€ÿðÿ```€ÌÌÀÀà```à`ÀÀ``À?ü ÿ```à`3Ï3 ``à`_``` 0Ì€````à ```ÿÀÀÿ```à`ÀÀÏü``à```€`À0``` ÿÿÿÀ0```à```à`0 ó``_`à`ÀÀÀ0_```ÿ€ÿ```àU  H@€€$@„@€@� ÿÿ;;;´;;;´;;;´;;;;;;<;y;;´;;;´;;;´;;;ïñïñïñï>ðï û;;<;<;;;<<;L:$ïGd𠼄€ð f?ÿÿª¾Ã£AnÉ Ü�沉Q™¯©S§Ò`O[ĵËÖ$  “’1ÚÕ¯ÔHJdIµçPZ‡Š@ÚÿÿÀLÛèë¬ÆeÙ$ãeƒ¿ÿ $ ÿÓÿ° "4K61-F+FS%R ÿñ_õÇ.C $ :ÿ(ù/?“ý‘ûSóÝU ×o•)P£)#ÍcD\4ËîQ8^ÿÿ{SI‚m}N☤SYÀvý E^ê‰oš|h0c]a=} 0±ÁÛRŽ�B®¯$èöJHîºëîÖs0á¤?¿/«=Em ~»?ÿ'& 7 $uئ¿§Êûü�l’ê³Q7úB�˜·¾6gÿÀ"0@š×å<×]_:8B ¿ÿBjI$/IB@€4 QT2ɰ*�lÍÀÿ[21@G</HC` $5ÿÄ„˜ @’�$…Ž0 .6$)&Nð$„&·d»êmÿ `ÿ `ÿ `ÿ ``À¼¿¿ÌüÌ4## # 000(0ÿÿpPVVU/û ËÏù¯»»9"¿»¿»¿»» $$$ËË¿»û»ËûS$ 4 4 4 ÿðó__Ÿÿ€ÿ `ÿ `ÿ `ÿ ÿ ¿ÌÌüÌüÌü###ÿÿÀ 000(@���€0ÿ!!!L€~ÀUU```àÃ3À```à`ÀÀ``ÿó0ÿ```à```Ì000à```à000<```à`Ì00Ã``à```0000à```?ü ÿ```à` 0ÌÃ``à``` à```ÿÿ†nÿZã䠃Ā¿Â Ð          &("  *$24.   60>@:,         (.,    ,*(           &("  &$ .0*   ., 682(          ,               = G  }  "$   "*,"  *$24         535     "$ " *,& =                   " ( "$   . :<6 *.0  &,&(*,U          $"42D  ")(')$ &(" "$*,&  &(.0*$ A           %#%    " &(" "$*,&i,        =      "( *$24&  .(68.   60>@2$   %#%     "*,&  .(682$  -+2-824:<*,.0 "$=         )'Y        ", - 53 5      ,*<:L 535    "*,&  .(682$  28&,]   &  .(682$  :4BD:,              Q. 4 60>@:,  B<JL6(  >8FH2$   2468&$&(.0  &(  M     &, .(68&  .(68.   60>@2$   535    "*,& *( 24.$  % = ;&=,.(68.   60>@6(  >8FH2$  T30_rockT30_rockœÂ ·�ÃÀ‡Ä@B33‡Ã@ƒÄ\\œÂ@ƒD ·�Ã@BÀ‡D33‡ÃÔÌ ß]22/2P!baE2¹üÀü!ba‰@a"@a”2I2òÌÿÀü»baë@a”2I022üÿð‹@a”2ü`_<ü?òq@ašYÆUƵÏkðõÅU`_nRüÀü£öV`UÏeÏ&<ÌÿÀüR»õÏeÆUÅ\&üÿð#& ¾<ü?¼bu÷ ÌÀ묫©©qóü33㩪ª¬«©«©q᫪¬ªqrª¬ªärªÿ3Àꬫ©ª©«©ª©ª©q᫪¬ªqrªü 0¬ª©«©©qrªª¬«©8᫪¬ª©«©©«©qrª¬ªu÷ ÌÀÃóü337TV9V$xÿ3ÀÃT7T$ü 0VT7T)ÿÿc3cd{-ý-M)MçÅÅwI5ùc5´‚Ïq�^VX¤Žõ˜ìîîQÔΠTRsîeÊ:~S*4µ‡�õó§±nœEGîIƒìñ{¬Êæ­U“8oßÉT‘““2ÒÌcš £££ÛçCÎKÜE‚ñÖ“EEÿÿ)!*1)!**S)0*S3 *Q*)'* =A1  7- ^G2 1% 2[ŠQ2c /65j I[ ' 4e–?6k506m:8o ! ,:i:14-?w,!'x!) ÿßR£#Èg—.nÒ5¢�N1\¡VYâÖWNMM D+JaÇÈÞÌu5y”}FS&!¶ª>{'õij)Q<'DŽd3‡Y¸ß礣 ¡RÎ>÷8{ÏüÚ<;[AÌ|4m$“XK�|K4˜•UK‡ †…„ �Éù#0$?˜¡üðÉ:9ù~Ñ’  É ü¥¦±3Þð-:ßßOÆ(í&€à(_‹=Žè}8bæ-ÂMNL:üðïRÎAB§"}XßÙThQGçô#NÃ2L¥J[(X”áú|RQ=á¥tçSHÏüÔ’‘êÕ$’§­œÄš™ÄUM8„[•™B‡c  O@0oüðÀ(M§ï4Lõ�!%À ü:? da’�!uW/ÿüb?’Õ?`2²Z;;ZŠopQ•úÿÀûk#© — 'ÀùP57Råì}þ`#µJÏ Eœ›Fð3ü3üíá®ó×^O'(ÊUU9™ :? �Ï 4iüðÉZI.Ï '(A0Ô0`;\Õ]?ÃËÿ9^s:›šÕ&lóÿý;<±èç;1z×Ô³ºòUR1¬üÉSTQ¶| ¶µ(O'®Øm®ÀügÅ«¬¹|UUBÃÃöõöy ózõöy ðôñòˆd€ °ÿ‰íêëæÀ Ž�á�HšY û Ìûüÿ[ÿðüṵ̈Ï0/xŸüÀü/0 / /õePf¿V¿ÜQÌÿÀü Ÿ?@@ /ö¿Vµf¶kÜüÿðÅ /Ü ” _`<ü?×× /UUÿ ÿ ÿ ÿ€Àÿ ÿÀ ÿÿ0 ÿu÷ ÌÀÃ`_```óü33ÿ___```ÿ___ €___ €_ÿ3ÀÃ__`_```_`_`ÿ___ €_ü 0__```€___`@ÿ___```¿``€___T`€�&!€ž'« ÿÿƒ,ö#ÿÂjÂPƒÄ€¿bÐ      ("$*(.0  NT bh "(     ¹ =YSU[ Y_a        GM  [A%!' %     [a  o T31_groomed T31_groomedFÂn•Ã@ŒÄBf�ÃÀ‡Ä   d@dFÂÀ‡Dn•ÃB@ŒDf�Ã~@v ýÿÿÿ3ó3?¯°¯±¯±¯¯±¯²ž±¯¯±¯±¯±¯¯±¯¯ ±²±²°¯±�¯°ž¯±¯±±¯±±¯±±¯±¯ž¯K¯°¯°¿±°ž²°ž±¯±±²ž±¯±¯±±¯�±¯�±¯7±²ž±¯²ž±¯¯±¯�°ž¯±Ý²ž±�²ž±Ä¯±¯±Ä¯°ž¯±¯±²±²±²±I°ž¯�±¯°²ž°²žm±²°¯°žÄ¯°ž¯±¯R¯°¯° °ž¯±±¯±±¯±±¯±¯RV¯°ž¯° ±�¯±²±¯±¯±±¯±±¯�±ªªªªŠ НŸªøª€  �ª�¯ š™ªñúŸ€  €ú¨ú¨ú¨ úø‡úùùŸøp$Õªø¨ª�ªú¯ªøð €÷Tú�ª�ŸŠ÷ú÷úúН©±%%ú¨©©©¯Ÿ�p¨y÷Ÿú™©ÿ¨% Ÿª� šŸŸ‚ªøªøªøª€øÿ©úø©„‚ªŠ¯Š¯ŠøðUUUU ÿÿð©«©©ª©ª©ª©«0 ÿ©©ª©ª©ª©003 «©©«©0ÿÿÀ©ª©ª©ª©ª©«ÀÀüÿ©©ª©ª©«©© Ì«©ª©« ©©«0Ìÿü©¬«¬«¬«¬«©ÿ«©¬«©«©ÀÀ0 ©«©©30«©©« 0ðÀ©©«©«03©©«© ©«©©ðÀÀë©©«©©00ë©©«UUUU ÿÿð)0 ÿS033 ?0ÿÿÀSÀÀüÿSÌÌ?* ?0ÌÿüUÿUÀÀ0 33?? 0ðÀ030)? ?üÀÀÃ)@000Ï??_ÝåõjjÓjijijiÐfËÍÒÌegÍ_Ìgd ÉicÏcÿÿ3 gÅÍdÌÅdÎÉÇÉ0ÿ÷ÀÇÛÉÊÉÊÉËÁÃÿÿÉÅqcÓÖÎÈ¿ÔÂtaÊYÇfÐ?<ÇZ ·ÄrqUd ÏÅÎÅÆÅÆÅ ÃÃóÿÚÍÇÄÃyÅÒÉÇÀÀð ÐÉhÐÐÿü¼¿¼Âk]^lÉÇmnÐÂ[ÔeÎÎeËÿÿ30ÌfÉÌeÎkÒÉ <<ÉÒÑmZlàÊÎÎÇÍÉÌÐfÉÇc¼fÎhhÎcceaÅi×Õ¦ ÿÿø(OFôfÿýû8Ofoað0ÿÿ@J 8&-ÿÿÃ69#6I"9?<8<]"56G <&  <ÀÃóÿ;&%\ÀÀ0 ÿÿñ8 12;<;<:9"!65 #…`: <<<+,<ø9ÿ'ôð!UŸ#—yµ™ùÿRP%__Õýõö56£6DißE A› OZ½äLß›Yvà‰ÿÿ2ÆÎ¢�é[ÿϱ£nø¬xÜzu]äFœGeŒ¾Ñµ|‹,Œ¹˜þTS³öÀÿÿA†5ÛŒ[ ?ÈÿÿÀ[îìÛTTÖ5vuóóð»¼â÷�,»?üðTSé6öAìëÿ}ó™ë¶Ã'ÄÃ��T9}Ã3‚CVVHÿÿË0¨Lùr XÆKy·Þ%¤¤ð7bÙ«p¶ä".\¿üÀkÝ" ÛÞÈÀ§– 6Ô7’!AºUYWõ®fDw4EQeãwsýÏ+ ! . 7ŠylIó}À’ SÿÿA~3F7ÿÿÀ+PA²3DeF:ÃóðVA*ø,‹A)*M>€*)ã`ûÿ]¥"e} Ã{Ð×$’nmnmn=ú{ÊÐ{pr?{ü2ñ€)*êÈØ š})*ž‡©…ÇdŒpð w•*42ðKÄw·¯•—п™Áÿÿzëƒ?=)U´¯|�˜ŸÚ›bÆ÷¼¤¿å…1´Md¯Í‘øcEšÕkÔ¶~i79b »äZ×õ­065Z'qeó1•Ï+27R7Ts ÿýÀ€)ÿÿ :&"",)F1ãóóü@5$ . Àô   :-$ .8)?û@  (0 z€!Ë…ÿ¿¨ú‹¤!'_Uõ}º¹GHÙJA‰j°Ùå:½Ð��ÐÐî6ÿb;ÈÍÿÿM¡ÌlÉ4µ�ÿÏ×Ö�þÌ? ¥§³b<ïÿÀŸA*�–ÿÿ÷7_o.LßÿÿÀ~>ñV$>׸"°¯óðM2߯ÀðQR½¾ín5I—%�j²³eZ £ŠíîPW¤áØ:vÿüÛä‡`¢D+Ρ˜�üM­¸7ž îœ80¹ÁE>=®j@ß"ÿÿ$›\*;4YUTn÷VG1Cõc÷ÿÌ?' 2 ?\_`%À ÀFÿÿ%;|;HAÿÀ%P?|Àðïÿ5!)()~Âß!:èAF9P1NA?ð!eCÏœ~< EWuÝ’IdÿÏú)¾‚RIÔ³<’¬ž´½ ÿüÿ|8þi�—mnJ¡ÀüÿXqcÖ�¯ÿÿÀ#?Áå 6x„ÄŒ‹óÓðLKòÀ?üðmnP¡XEFú3ç*#ûé_b]0.WÿÿoDBd¥èµ1 ÿ$ž1� 7Þ¥Ó^,J Qüoÿ21.í£¶Ä™B}A‚-~ñ4l·@UU•ÿÇ (3 ÆÌ>FE/.ïüd| [€H@ÿÀF;&>kP0ãóð�Z?48k` óL0{Tÿÿ`?80g\y? %HHB@¼`?zyÿO¯ï40!A$=úÿÿÿ » »$¿Ï»û»°°°$$ $ $ è`_`_Ÿ `ÿ Ÿÿ`@00Ÿ@00Ÿ@00Ÿ@000Xo·p ÄŸÿ_Ÿÿÿ `ÿÿ_``@00Ÿ@0o@0o@0Ï0G0G/0ˆÿ_`ÿÿ_`€ÿ `€€€ ``@?@?@?@o0/00G/`/€€€€ `ÿ `ÿ `ÿ ``@'4 (HH0GPUTü```!œÀýü`�†Xø?~~}À™˜€ÀÿÏÿ‚�‚�ÿ}€-&�ýUUUU ÿÿð``¿`_`_`_``0 ÿ``€`_`_`033 ``à```0ÿÿÀ`€`_`_`_``ÀÀüÿ``€`_````ÌÌà``À`` `à``0Ìÿü`€`_`_`_``ÿ``€````ÀÀ0 ````33à```à` 0ðÀ`````030`¿``à ```à`üÀÀÃ`¿ß````000Ïà```à`UUAP�  @€@ H @€€ ÿ]°¯°²±²ž°²ž¯±¯±±¯±±¯±±¯±¯±Þ²ž°²ž¯°ž¯�°ž¯¯±¯±±¯±±¯±±¯±¯ªù©x—úНŒНННŠ÷ñ°ùúŸ¯ŸªŠ¯Š¯Š¯Š¨UÌ0À¬«©©«À©©«000©«©000?©«©©«©UÌ0Ã?À0000?000?)UÌðÃÏÆÐfÒÐ×e×ü¿ØbËÃcÊ0?00ÉÐhgÇÂðð0?bÔfjÇRÇÅUÌ0Ã&:2Eü*; 3- 00008ðð0? d]Ãü?]TRm7pB&×81wr×&²'“¶nnÕÿ<¦5nÝpo¬óððÿœ¸‰¹»�žê#�æUÀ?5+b???Œ-+Z%%LR óððÿ+:;@78#C_Ç*)S,Db})*E“êa1\81ó‰')Í?ÿ?€>='`EÄýpóððÿ¾­XCü„]ØP™À ? <ð VxsU€?èœ|7??`ZW ¡°e`HóÀð/±j¤£¨§•­U?C-r???91l/-^!)Lñððÿ;LQTEF-O ]Ãü?Ëmm’J‘hI¬yá¾$gBmŸŸ+ÿ<ÛJ‘Û‘’#ñððÿ 2º·¥¦TS UÁ&B #&Bqpðd˜€ÿÿÿÿÿ `ÿ `ÿ `ÿ `ˆ_ÿÿߟ `€€ `€ÿ ÏÏÏð`ÿ `ÿ `ÿ ``Uÿ›ï�~�‚�€�€~��ƒNûûÁñø€�€‚‚~UÌ0Ã_```à`À```0000```à000?```¿``QH  hô„ÿF ‡Ä€¿kÐ     *," *$24   2<>@:8  J<RTB, JDRT>0  "024.,   >0JLB( JDRTB4  JDRTB4  .8:<6<BH68:<*,.0$Ym        EC2VÕ  ;5CE7) ;9 CE3)  75 ?A+!         !# ') !     3=?A;=?A+-/1%x      , *?,E?A GI71 79 ?A+% +- 35 \                ! #%!   X  '   /)793%  ;5CE;-   3579')+-P! 4         +1  3-;='  /)79+ /- 79/%  ')+-!      < :+<1  3-;=3%  ;5CE/!  71?A3%   LKYSU[ Y_a        l4Xƒ2"XZ\RXZ\RXZ\:4BD6(  >8FH2$  :4BD2$  *4"$&(  T31_packed T31_packed�š™—Ã@ŒÄB�b�ÃÀ‡Ä   v Xv �ÂÀ‡Dš™—ÃB@ŒD�b�ÃwXo ýÿÿÿ33<ó““•“$“”ØR“”Ö““““”“•œ“”Ö“R““•“Õ”Ö“Õ”Ö“““”Ø•A““•A““•A““•“““•A““•A““•A““•““”þ“”Õ•–֓ז֓ד““•““A•““A•““A•““““•“A“•“A“•“A“•Øì“”“”“”“““•“A“•“A“•“A“•““““•A““•A““•A““•“¬”Ø””Ø”“”Ø•““A•““A•DÖ“”Õ“”Ö“R“”Ø•“““”“•Õ“•Õ“•ª“”Ø””Ø””Ø””Ø““•“A“ªªªª€~€~ˆV�€Þöˆmmh€ˆoˆoˆh†�†�†ˆø}€~�~�hŒ†ˆöˆöˆöˆ†ˆöˆöˆöŽø‡‡†ˆoˆÂoˆoˆhˆoˆoˆoˆh^uªç€h�h�oèÖèø~ˆx�ˆø�‡ª÷w÷h†øUUUUÿó<©ª©ª©ª©«©ª©0Ì3©«©©ª©<000ª©«©©3?ð0ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«00?ÿ©©ª©ª©«©©0000«©«©ÀÀÀ©«©ÀÀé«©©ÌÌð0ª©«©¬«©000«©©00? «©ª©©«303©©«©© «©©Ìà <ª©«©©ª©0à «©©«UUUUÿó<0Ì3?S<0003?ð0S0?ÿðS00?ÿS0000ÀÀÀÀ?ÀÀÀÃ?)ÌÌð0U0000?00? 3003?) Ìà ¹{M~¹{;׿CpD©Û=Jr=;ÓghÿÿüÏhhÏhhÏhhψj¥Vyoo�ïC^?U#8Fà14¿ ÚI3?ðð&2!0ÿÿð#`00?ÿb  ñ7E8mßKDöDôbô$ô"ôOÂ'2"ò óÿð$#$#$#$ð#$ððóÿ#$#$#% ÿòºû&!H  ö5ïÄò\f‹@'&/H&%ÿÿüJ#%J#%J#%Jßõß ó¢«/¡vu£�è‚´U{ X ïLW®�=ãq§Iÿüð]jf-G-2†…>=ã±fÝ\»àDà 8J Îb‘±ts{`; JLÉ}&˜_3;8'B . SóÏ?<*)*ÿ÷W?Ty#̸8ãY² ½ ¿Uš•3|c¯Ø\”Í8]�ºÃd‰,*ˆ„*hg‰ÅÆwÔÒyY‹mˆqjŸ³¿Ç/ÍÀÑÝêéêéêéêM0]A"³<·j£ Çnè=@66Ìy4øþ(œ!¨$Íì´Ì–áüü0¤åæZwiˆ3ð‡ž,AÿW~×_'!£ÞQ{亯„göu´ð²ªmñL²xw-;9½Pq‡8÷’¤”˜˜QÙÚ¥W6%)ooN0#A=ÿÿ!d)ýüù?@5!*A"œ'w$$óð6‰ @J0(‘­:­7å`a;Füð£™Ù ÊÉø©ÍèñhxŽ2£±öÿðxÔ‹^à± MóÏ?<('(ÕÕ6?ÿð*�+‹L0ä“’?ðÕØ™eÿßüð%Öæzš™íß²…ÿ¾?› è/ûð@ XKƒCƒ>ƒCƒµ^ûµ<#$<<<ÿ#$#$#%%&%&%a ,+ 1nôöfôföföföJöooÿ2&%L$I%L$I%L$•&%L$&À@ƒÃÃÃ#$#$#"!%%%L%%L%%L%%;Göokõö»>ˆ%L&&ƒ#J&&ƒ#J&&ƒ#J&&DÀÀÀÃ6#ÃÃÃÿ###%##\#%8##6##+ ÿõõWU5W>õ_}ýü?@?@ê«=üüüê«=ê«=ê«=Ì�g>þÈù&Ì…Ç‹�Ø‹__`_`_`_`_$!/5<ð."ððð:2ÏÏÏÜk6.c6.c6. À3Ï K þ8YðW}ý­XHnÚ3#²Ÿ5\BñTl…..-.-.-.-.ic3“ÿól65P·mnúÀððäº é×ÀÏÏèÚE%ªå Àÿÿ=l#G"ý›KA4e6D ƒ?^½é5‹Gç6Ó©ê@?ºH0/<ð¤ i_ðððÏ:³‘¥¦¥MÌÔÓ�óîó�E­ãEZ'{¦8b@Üå+AB56A )pU¥^G I2ÿE*0’ Àð ÀÏÀ0ÿ )  <J õöP†?p‡ªššðù."  À1Ï&ü3RñWUU?@?@"奛��©„úÕœH ýymmnmnmnmnm68‰ŠÛÜm+§Ôˆõn6™<<<õöõö÷ø¢ððððã@?@AB}~ ìëÿM9‚¢>Io¤¾%$¿/Àðåá96€³wx<ðãäçèç)ïðððöõöõöõ¸¹���†&'&'&'aƒÏ —ñ��€¬QU'('(7L3  ó �Æ0 ]<<<ðððð<('('('(<Àð=>G!<ð>(ððð'('('(UU]ýüê«=üüüê«=ê«=ê«=<ÿ?#fÜV¬Ø©/¿�ÔE<sÀ`ðt ÏÏÏê«=ê«=ð±=A€ÀÏÿ=7æÉCBÌ6ïj643 Èö9¾ÿ?ði·ç)l7ÿÒÑ<ðlkhgh¡:ðððopstst*;D?\A\A\6ýlË5îØ¥gf¨.Ò‡OyÇ2mk34ij356ŸUUU]üH6}üüøH6}H6}H68ÿ?�tÙZ s(J¿g@(€``ÏÏÏH6}H6}H6}H6€„ÿÃF ß%FC"!?` #" ```L2}N0}N0}N0ÿþÐóÏûVzü(—ïÿÿÿ(o0(o0(GGGÿ°ÏûË»¿»ˆ0$  4 4 4 H00@?p0_?p0_?p0ÿ`_ 0000(o0(o0(o0(GGG///d {//0HØ_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 0000(o0(o0(o0(GGGG//@HHPU0ý„„„9þ��„ ÀýÈþ� 4ýUUUU ``à` 3``à```<0``_``0ÀÀÀ`à``ÀÀÃ<`à``à` ```ÀÀÀÀà```ÀÀÀÀà```à 0Ïà`````_0à Ã```à``À0`à` À``àÀÀÀÀ```àÀÀÀÀ```àà 3ü`````_``ÌÀÀÀ`€```UU €@ @€@€@€„ÿA“•““““•A““•A““•A““•““”“”““”Ö““A•““×–Ö“×–Ö“““•“A“•“A“•“A“•““““•A““•A““•A““•“““ÿÿד“ד“דª øˆh†ø†ø†ø†€‡‡†õèh�ˆ��†ˆoˆoˆoˆhˆoˆoˆoˆh†Øm†ØUÀÀÀ©©«À30©©«©000©«©000©«©000©«©Ã ©«©UÀÀÀÀ?Àó0À??0000?0000?0000?à <ƒCƒèƒCƒ>ƒƒCCƒƒF% °#J&&ƒ&&&]%L&]%L&D00006ðððÿ######ÿÿ6#!4#!4!_WI’K+¿žšwM,NL™RI’G‹je®g_N‚ ðððüŒ‹Œ‹Œ‹@&Ô<<<ÓÔÓÔ¦¥‘t‘t‰ž„J §ÿÿF%’ðæ[³ÄUÀ ÿÿÀ)/B);ðððü:<<<%&6óóóä.c6.c6.c&>–okˆ76Dkz6C55lO7ç­+&d8ûyšššÿð»Ü¥<<<¦¥¦¥óîóîѸ}ö •ÿÿvDy"Êw© ƒØâueoð‡‡‡o      ÀóóóÐ    UCä!%&€ÿÿÀÅWyg56ÎÝðððüçèçèçè>¶õ<<<öõöõ&ãããï'&'=&TÿÀCD;?ðððüF(<<<'('(34��ƒÀ_hlÕj6h3Ñžj5igÒilÕj¼úK¬Æ*$@ðððühghghg¸Ôt<<<stst_`\A\AxI-7-GÔÿÿç«41XÇ‚,UÀ ÿþ$"#"!```HNóóóä0}N0}N0}8D—}õøÿHHHH'('('/Ï_ 00Ÿ@00_?p0_?p000(o0(o0(o0(GGGÿÿ///ÈþUÀÀÀÀ`à``Àó0À`à```à0000```à0000```à0000```àà ```U€@€@ @   ÿÿ»sðÿß� ‡Ä€¿} Ð       $  &(&(*,&$&(.0            JDVXB0  JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2468&(*, I     : @ B<JL.   60>@.   60>@2$  28:4BD2$  :4BD2$  :4BD2$ &0$I$  & .0*  2,:<2$  :4BD:,  EC2E8:4BD2$  :4BD2$  :4BD2$  $©    535$& .0"  *$24*53     BDJLF@  JH RT6,  :8 BD*   a      = ;&=,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$   2468&$&(.0  &( ‘    "$       : @ B<JL.   60>@.   60>@2$  -+2-8:4BD2$ 64 >@.$ 1      53:5@B<JL:,  B<JL:,  B<JL2$  53258:4BD2$  :4BD2$  :4BD2$  2864 >@.$  20 :<*   ., 68&  E535     "(.0*$   2,:<&   q      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)8:4BD2$ 64 >@.$  20 :<*     5 & .0*  2,:<6(  >8FH>0   )'2)8:4BD2$  :4BD2$  :4BD2$  2468&$&(.0  &(  I       53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  -+2-864 >@.$  20 :<*   ., 68&  T31_powder T31_powderÌÂẕÃ@ŒÄ¨B¥‰ÃÀ‡Äc �c ÌÂÀ‡DẕèB@ŒD¥‰Ã^#�V# ýß}ÿ3Ì𠄃÷„ý}" " a " a " a " "  " a " a " " B a " a " a " ûá " " "A " a " a ÿÏÌÌ" "Æ  " " a " A"  „þâ!æ3<3„†ý} " A" A" A"” B!B!Bc"!B"ýá" "ÌÌÌÏ„„„„„„„õƒ÷„ý}ûûû" " a " a " a " "  µ" " a " ƒ" "  „„†ý}üâ!„©ªjª3Ìð   @@@´D´D´D@CD DKDD@8 DKDKDLtd@@@tD´D´DO@4@@`@Ôd–CO ƒ? `DtGO@8R83‹C„Çd@ÌÌÌÏ"ÿ¦¦ÄÆD KDKDKDDCODD´DôD*COÿ¦ ƒ?WU×U©ª©ª©ãq©«©©ª©ÿü ª©ª©ª©«©©3ÿª©«¬«¬«©©3ÿª©ª©ª©«©Àÿ©ãq©«©©ÿü ª©ª©ª©«©©3ÿÿª©«©©ª©ª©ª©ÀÃ?ë©©ª©qrª©ª©ª©ãq©«©©ª©ª©ªðÃ3?©«©©ª©ª©« ©©ãq©ª©ª©ª©ª©ª©ª©ª©«ÿÿÀãäãäãäãä©«©000©«©©ðÀ0«©©«0ÿÀ©ãä©«©qrWU×WTSTST7Sÿü 3ÿS3ÿSÀÿ7ÿü S3ÿÿS)ÀÃ?ÃSTSTSTST7SðÃ3?S 7TSTSTSTSTSTSTSTV9:9:9:9?0003?óÀ0?0ÿÃ9?ÿÿÿÿ42ܸB£5„wywyïÑ`BTxews;§ë;;=ª;'¨ÌéHýl Mû´H~x¶´´êÚõßf´h´Y €ê~Î*ê´ì]ZXZ§©©§qAÆBA_fê„5Ú–Ò¡�x~kƒv~÷„z—¼gÊññÖT±NøTð†�,!6!>!@><@@Q"ÿoOo]1µ;Ù_ÙŸ»ßG ¿ÿºÎõÎ/?%-ϯoM¹¿úÃ410#ÿÿÿÿFLm8?:0ӣס¬r꯼ÆùŠö]ß—§¨¡'kƒ)h8™Æ6ÌcdH�é ^ŒweŸ¡‘„L�nÎŸÉ „U ¸¥g\`2Óz#>`6'šÇÕpÒur¶ÅÐã_Z¾ïc¬Æ¹22«@ —cê`ÍÙ,]o%¿¾«3 £Šgó¢ÕÅ—™–£L À]¬`N´ã ¢¾Ó¢f`9sÓ�PÈo'è‘Ë^Oy<Ï$øÓ!U¾�9Ø5¸½G\k6�·1`‚´ôÑ�­‹ø“4ÓLϦ¸ 6¼Ÿb þ¬UMÆ6�{"® (:ü´q*^©îj¾!nÐ ÿù1Ñ@0ð+hU" ø¯_o]0($�Ï d@-  * 6 >ÿPòðoüô1!(?rM ‚)Q€K+ .ÿ_:³o/%8õû<ŸñOú:!;OÿöùÐ!`#L/,AZu4 öšß+V9V '4K -¦I1`G€Goÿ¯jPO@#ÿÿÿÿòÎ Ž;%újm"S3ľNØ¿íÛE b7…¡Ò˜…5fiºn¤92 j€‡–»¿Pß~ÞHŠs{‚ë,Ñ�c²€f],\£>Ô+§ †Öƒµ2Ê<ÒúñÁK6U‘Ðâ«’ÔTæD„8>övî6 r~SlKB&ÿ‰¥nÚã/D;nsÈš¸z™T¡ïZÓ®Ò4¢C¦�[kÌ ºª[{°Ê‰WKXy7e^�<--´oËòh¢üV†ˆ—݉ä�ÜìX;•mÙ*5‹p£ˆÈ-$0H¾ŠÃrªa»€:†QºÅ{9~]û!æzT�Øp/’„ Ë?ã–êfª4%c""ÿüü9 '. ¿ÿWE&!!ùÿOô:?2%6%\•0÷óaþ¢þÄú!!òy¯Àÿó@$#*m28s>6iP ME#"/ÿ  �":óR FFNa 4ñÇ®¯lÿ ÿ2Î%)!ó/ÿº,OID!qÖ hUùÿõ[ÀÿÀ)* ÿè`uc¶àA ˜ v# 72ut. ß°BÜ�wú¿Fš;ÊYVñ —¶‚{'4 )L €Té9VøÜÌ�5éÃÆ¬ÁÛ’�”©TsÃ�½Øj¯ô gY€ �öõóðÿ*)ÝâOT OU‘B†œ+Ô1seŸ”�R|ŽçêŒÅÞPjg n @`etüC4ràðOÿöQ3#ÏÏ?kH1F=>3 Bð?% =OÿýÐ`-L6ðð; 7tAL)N'!À *ÿÿ_ÿÒkBq™FÃô1øÞœ}�¯ÐTE’pß÷íQâ8ÜÏ�‰ŒÁ,Ï?È)$F\ÞÞ�v€€Ñ ÕlŠ òT•ubDjúæ«û‚;˜þ¯O,Ó´‰>šúò÷€•3ò¿2¿?ç�²+ 1Ì×<ùw¥OQ|,  9Ñ÷£•ää‚>›/È'4m¾Œ²T²�¥ à óÿü +,˜R­=ˆðNåD‚ŠêÇ&Ê¡ ¿í±$zýJ‚'‡��)Dc-€^¯àÜ0°Fù ÐõSN*cZc3sa"oQ0k”ÍLIm^^ž3îÃid IDA^cpaX?BE>=:ôSFñÿQJGLOÿ#.yZD�Ï f ]>+0I<1BøÌ| üÿò@It+]ˆ)_X_?ó3�/0 “�   WvK(ÿÈKl + 0ôOôÿzßI>IHgŠ#L3N S3” =ùòüQL<;hIÿ�®õÿ.y‚5©ê}û3Ìð /PPPõUõUõUPVUU_UU�¯ ›¿""›¿›¿û»"°°°û»û»û$$»¿°Ë°°ððG4 (_@'§303Ÿÿ€ÿ `ÿ `ÿ `ÿw   '  ÌÌÌÏ000(/ ¿»¿»¿»»¼$$$ ‡H`_Ÿÿ€ÿ€ÿ `PUP@„�  €~a°€ ÿc€þWU×W€€ÿ````€`ÿü _`_`_````3ÿ€``_`_```3ÿ€`_`_```Àÿ`ÿ````ÿü €`_`_````3ÿÿ€``¿`_`_`_`ÀÃ?Ã```€€€€€ÿ````€`_`_ðÃ3?````€`_`` ``ÿ€€€€€€€ÿÿÿÿÿÿÿ```à0003```à`óÀ0``à``0ÿÃ`ÿ```€àUUUUfB!˜ @@€™�� fffhf@� !  �ÿÿÿÿ"!"!"!¶!B"A!B"A!B"ƒ " "„„„„„„„„õƒ÷„„„„„û"   "A "S   ¤þâ!æû} " "c" "c" "c" " R" B "cB "c" "c" "„„„„„„„„qƒ÷„„„„û" " a " a " a " " µ  " " a " a " a " „þâ!™} " "c" "c" A" ”"!"!"!"!B" "c" "c" "c" "„„„„„„„–ƒ÷„„„„û" "A " a " a "®êªºCCCó„s„sV"ÿÿÿú`D4 4GDóCCCù6c?ÆDKDKDKDDôJC„K8D´D´2"ú`DD´D´D´D@O44D*D´D´D´Dùc?`DD´D´GDô4448RDKDKDKDOT" DGDKDKDUUUU30 ©«©©«©©ÿ ãä«©©«ÃÌé©«©©qÀÿÀ0rãä«©©«00©©«©©ªÀ0 ©«©© «?ð ãä©«©©« <©ª©©«© ©«©qÃÿÀrãä©«©©Ã30«©¬«©«©©«© ?©ãä«ð000©©«©©UUUU3< ?VÿÌ9?à ÌÃ?Àÿð09?00??UÀ0  T?ü 7? 3<?) ÃÿÀÀ7?Ã33S? ?V9ü000?ÿÿÿÿk@5 L6ཡ›}4ò<$_ ƒ/’�ªÃ99QŸi\K%ÊFßèñx;;=ø†©À*åVTa/o4M[DÄÝýñäüü%$ÿÞ`‹A$‘†ÆüÝð/x0¡ BkTtÆß¡ÓàË%ö³•Ì�G'È«o í G¼pCäEŒ�ßßÝ›Ž®=a"ËvšZXBD_+_Îо–ßt’˜ž±< 9ô‹}ÅX¤ÓË.6$��ì rprz Á5†ÇN0´ð€.¡ @þ…†CDIJÝ/$)ä<�'@¨È_+³Æ_¬€‚Ý¥Ö-J³®â¯F$Ç÷ÒÔN 4c �g?�å´&Í•þꪺ òðFñ  $C/    F9¿ÝßÕ:µ>³“™Ÿ(�$�Hòfô "$&O3ò³SKŸûŸû(.™ù›üÿrRö$®ôŽólðFó+.[¿ÝÝ÷0&30ù�ÿÿõ( F�F�H�f� "(?= ÿ•ß¹?¹ÿÿÿÿF Ãi~‡�ÿ3@£Ó-ò»Éƒº"8óŽÔZNM`3g­äm8§Ÿdš#mtìˆrP�Ã[Ÿ4扄AùÐêV]ßÞöm$C¶ófë.ÇÌ{¡Ú¢h£¾ÎMÂÓ¡Tò”ïí6š�bèø[ÌRl¾ÇÇ–³ß›ÆÐ§¾û£®ÉŸ£eqÂH¸¼Œn?fýOn89úîHxÿSgãUŠ¢ž`áàí°þƒsÕ!‰±ÈȤˆ‘Ķ›ù ?ãË>ì°LäYSª½î2ÿrNdé”0�c-©Ýh=Š­iœ)x´_=Vxc퇵%ÒR}v#>µ8¨¶DÖˆNZÆüe»WŠÏÄ® ªê¥º›vvTõòõøõõ�r"V4¯T%ÿÿCCnOhO3ˆ'- *+ñ_ÿF  .ÿÿÔ74 2Tû_Oµû³ù± 1õ�0ZCåoòÿö5ò#ùoê*ò"� . 2 47/?õÿ×n,(  0>'B-0‡™?™—õDý9:` oßÿ_ŸÿÿÿÿÁihe¥³;J•ØcùÈ™±�ÏÙ] ÄHߟ;¥g¨{¥(Š+J^yûŒ|ùÛfÔÃ0…žt_ë?WÎg{ý؇Œ3 Ñé |«N‡+›•Ž"EÇÌí÷­–9ôý8O5‰"ñóCø"Ëy-|…MGq"½d¥ zûÔ í¢ßVª°:ªÅÂÄÉlÐ…[Àf÷œOr+ÛfâŸKþ<�4²¯ÊÉ)ðvÍÓÌÖ@VpÞ#»³©ˆ’3GÔ\·5Ä^ÙÌ î0\�¼�#PªjyuhÌßßÂ)[ÅJO/|Õ>žûùïzàG"F¼ÒWlÆÎü6ÏduBÚ.ÈŪ¦nY !(ó¤±dsá5 ­hD_!öÿÿ�ÿ’Q§õ'$-(¢5‘‚—":Rs%3Å1£0#1‘F"O@röðŸõ(%*C$\ #ÿ"øbù²…Ë` `a�ÿÿ ,Q13@„¹wÿûv 2  Ýý_Øÿÿp»D´ÚTÏZpDbMpÛ+k_EbO�†aÿ|Ý^QT49973 çgó‰¥ì�I•h+)6 %" +"òÌ�`™¬ñm.Ta#³/Ê–+(ÿÿþ…ª)„”Ïv^Q—öúòïC@_b  Y>*UF:…§/ ÊÝì„ÃÌ}Í›!s0œÿô‰ë±ÿûvóôð Ùetÿÿ ÷õ¿�%(6ÿYb=>Cb ?2ÿ<7vÿ_oÕýÕý  ÐSL 8?ÿI  !$ B!D#:%,} !$€o÷ú2cbUVßÜÿ]¿ÿƒškp�€ÿÿþ¿ÿÿÿÿÿÿˆ   ? 0000(/'/  Ûw@'ç_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€H( '( ' ' 0000(/'ÿð»»û»û/$$ $ ·HHHŸ€O0(ø_Ÿÿ€ßŸÿ€ßŸÿ_ŸÿH0 ' ' ' 0000(/'//»¿»¿»¿»$$EUD™���„€ÿñ‚ññðÀ‚‚‚~ ÿ@Ç‚‚Æû���€ ÿUUUU3< ```à```ÿÌÿ```à`à ÌÃ``à```Àÿð0€ÿ```à`00?``à```€À0 ```` ?ü ÿ```à`` 3<`_`à``¿ ```ÃÿÀÀ€ÿ```à`Ã33``€````à``` ?ÿ`ü000``à```@Q$ ÿÿ "  "æB " " a " a " A" û}üâ!„" A" A"!"Ö!"!"!"!B" "c" "c" "c" "„„„„„„„–ƒ÷„„„„„û" "A "A "A "S"" "c" "A!B"A!B" "!"!ø!"!"! Bý}„„„„„„„ª«D4o8@DD´D´DtL`¸5ôGDt4óZCCC„D´D´ T"ÿÿü@DiF”iFôdMdG4ZGZDCC4^43CŒOÿÿÿUU<ÀÀ«©©«¬ÀÀÃÿ«©©ãä«©©ð Àqr«©©ÌÀ «©©«© 0©«?ð0ãä©«©©Ã«©©«3é©«©©0ÃÀ«©ãäUU<ÃÀ+?ÀÀÃÿ9ðà Ì??ÌÌ ? 0T?ü07?à ?3ó??0ÃÀ78ÿÿ—æÁer»¶ø³ þözÎqAãJû¿E�ï¨}IŽ·)r¿5CN5åò®ÙCW\ÃÉ Û>°GË•ú&•üü�_\@�\�“‚¶¸o9Œ+||®�ñYH~H åHËÇ#J`%eë–¨x~"*GëÂ[ kêWk )ÜNý˜îªÎÉ.¬?ÁÖ3¸JLWžê«˜Ò_h�üêúêÿÌÿÏÛ½3;3ÿˆc��ÿ.%*+)#  &5 AÿÿûµU§Xõÿ_ö}~[vFÔRÿ_ Ÿÿ$ )( $  ÿÿ=[!š�%ˆ�ümPkYD&?ùNÄ—@6Ä”xûEç\¤¿¡,û~Q‰bc Z}í¼ûƒp¯Ë\šo/nן[~�O „ø/¾ýEp"£ é{tjš á5ñØÀ´R;è\E]‘¾UkÅ«›R"áµiÚf û�4UwƒþÌFÑC~�›}áV"XãVëù? %"7"ñ/ñ�úÿ‘S#&+"1,FcŸ_÷ý‰ÿ6(-.529,U hMñ^P lt òÿü#3 0�2"#.Ed;)v  F õOÿÿ3:U-ÿÿVÿsÉù=gpªj©!�YþDë`j}†�÷…«„ÖP<Üi†T¹±u=”§ÈAOãn8ÖÛv€´CÖRÚsÉóG¨ö�pw1`ÖI¢Îî2Sy”€ËRÚ¸ÏϬ›#•¬†ÞqP‹«8?6âè)ÌݤùV’ÍC$7ór_ª˜þ~ÐI˜~…D«A!¼DŽý«e* S,'|K/ &ï“¢ ô©EA#©E��·¾™ó 1u"/ûô�÷<$3ð? Åk…ÏQÿ» ¡Þ]4ëêänz`¹Ä¢3}…oÒ�ë|# :%$!  QR0/ ³²h¢N„ƒDaðÌõP�Ö[œ¦;E„k42 7 ÿñôæýÇÀÞÂL ^Uÿ�ÿHA aZ[ïS· u|­®%šìþF øVQæ@ÿY ¯/.Ëïÿ32C.MBfoßO%  yM‡ð:Á-. óðUX97rc÷)ý57* ÏÏÊ’$[V#ÇúO0ø^oŒFÌïE .ä-ª"ÿ^}Dø^¹lÿÿ‹Ž8¢?Eä‹f &¿ž.ÍAi)�ç+¦pRiã�þÞz|¦ÛÀÍ4¶‘~WŸm§wÙ +ç î8±d�Ó‡hhbÿÿ\na”@”¶®ûuùöÿð /%#$ÿL cl    DÅÿü�„Ä0;6?0c&³3fq"�ö öÚÿux ³–" ;.uT+:36!2 f ÿÿH B‡ÿÿ §/'//ˆ'//ˆ'//`//À_@0Пÿ_Ÿÿ_Ÿ ŸŸ0 ' ' ' 0000(/'///    ˆ//?_Ð/?_ 0o_ 0o__Ÿ Ÿ À000000(UU@˜F ý0ÿa†0ýUU<ÃÀ¿``à`_ÀÀÃÿ```ÿ```ðà Ì€à```àÌÌ ```à`` 0`?ü0ÿ```à`à ``à``3ó`à```à`0ÃÀ``ÿÿUU@€ B€ $��€ÿÿqÿÍÌ ‡Ä€¿h Ð         ".0* 2,:<6(  >8FHB4  .8:<6468>@.(   :0FH6 >8FH6(     :4FHB0  JDRTB4  JDRTB4  6<  VH  &("  *$24.   60>@:,             ",20   0.,       &("  &$ .0*  ., 682(         28 FD           EO Q9C EEO Q% #%=;=    "*,&  .(682$  2824:<*,.0 "$U          "5(35$ &(" "$*,& &(.0*A0                    5 ?A     "$  A  $"4 %#%     "*,&  .(682$  -+2468&, e  2   :4BD>0      !!    "*,&  .(682$  $! "$   "*,"  *$   (&86H "5(35    "*,& *( 24.$  A?A$& .0&  .(68.   60>@6(     5 ?A      &("  *$24.   $&(   I          % # " $"42DB%1T/1$" *,&  *( 24.$ .0682, )979$& .0&  .(68.   60>@6(      1 ;=    "$  " *,&  Q%#%      5325824:<*$ *,24"$&(%  9CET31_rockT31_rockpÂ)\—Ã@ŒÄ(B\ŽÃÀ‡Äw}wpÂÀ‡D)\—Ã(B@ŒD\ŽÃP}H Õw?Ïü ywxd ?3ÿÑwxwwwym ð<óÉuyzñwxïywwwxñwwwyòwy¾òwwwxü3?ywwwòwwywòyw•wyÿðwxww« ™¦?Ïü yd øˆùÿ®ð<óɈ`^ˆ†èøhßhÿ†‡Árü3?uâõðøhø�hò‡ˆùÿÔuU<ÿ3ó㩪ª¬ª©q㩪ôÏüüª¬©©«©ª©q᫪¬ªqrª¬ªª©ª©0 À0©ª©«ðüüé©«:rªª¬«©óüÌÏ8rª¬ª©«©©qr?3Ì ªª¬«¬«©«3ÿÏÀ©©«©q᫪¬ª}U<ÿ3ó7T$7T€)9V$j0 À0UðüÿÃ)@óüÌÏV?óÌ @3ÿÏÀ)7Tÿÿ�ǽàââ9µä¶ �~¶o)oY4ð³ðÒ1ørqDðæ�€8€ãÔAýýû?gÝ-‡YÏ ¸ùž¨ökT*„ëV=4níŒ"ø3¼ý¼.�}ð ÞŒýµýò§+庯¥7Ryø¼ûýúò|ÚO±Ã�3Wv“Çøõ«¸*yýýµÿÿ$S:S*)' qd;c^/0F*CM % i^‰–E,‰ÄM@™’‹ . 3AD S1 1"1$@! �"R+${"(Y (Q*~)#8  ýÿÿ`ý/hò¸ZYè½àéd‰+V¨w&AxlkxÒz”À÷³Ò%µÍ¦1F^·|û³pîÛ3B±P`_©7ëÒn‡d0‰*Õ«çÝTI4޳x+ÑNF&’®æbµT} 7“O^;%%+`Õ•a—4ŸÿÀ‚ Fe=!.$?ÿ|/0 #,$10ü2Cÿ]WD€2Æq¼¥ $üO?  &vŸ›ð<ýÿÿ)Ë.þî�Ú’'”³ah ;>efeöN›²ºÝ` /Ћ®âZ?2õe:²‘µ•šœ*t‡Šf¶ Ý¢Ùïi¿Lijµ_Þ·I6‚Yo·¿å ´ðëòÂj"¿ØMÁ�J ##jÕ¥*¯ÿB6yx() C?ÿ6>= *'=<30Aü°ÿOZ+ …ÀpTD5 ó@c?×>P\yðýÿÿ†Eˆ›6jgÁ�gŸ~E†  8Q7#ÜÛ'ìÙ |-I䜒hÝÂ~ç±Ë²¾šqȰß&çNL} rq}qÐ3Œ•%>gxNh厜�óKP×I'&ÀîŠh12Yóœ—.Jål5tr~6rK%%Kr•¥ }L ]ÿÀ0C!B<9ô. '`A}8gÒe^EpÆõ¼%# Jý´RÏÿ16šž—ò\ÕUÿÿ‹8ïrx@9´m?ÿb0B@ JLFf±,  cigqkmk msu #)  7=    /5  CI%#%'))+-        )!    T32_groomed T32_groomedœÁ›ÃÀ�ÄœAå”Ã@ŒÄ   #n#œÁ@ŒD›ÃœAÀ�Då”ÃAn9 ÿÿÿOP�MœP�MÅMN�MMìN�MMOMOMìMOMìMOMìMOMOüðÏÏMîOP�OMMOìMMOP�N�MMìOMMìOMMìOMMOMOMìMOMìMOMìMOMOMNMNMNM%MNMNMOMOMìMOMìMOMìMOMOMMOìMMOìMMOìëP�OMMìOMMìOMMìOMMOMOMìMOMìMOMìMOMOMNMMœMMœMMuP�NMN�MžOMÄPìOP�MOìMM�OMMìOMMìOMMœMMOMOMìMOMìMOMìMOMOMMOìMMOÿÿÿ('(O(;(;;;üðÏÏÄ(9((;;;;;;Š;;;999:(;;;;;;%%ž(('N9&9(;;';;;9UUUU ÿÀ0©ª©ª©«© ÿÿ©ª©ª©ª©ª©«ÿ©©ª©«©©?3<©ª©©«¬«©ðÀÀª©©«ÀÀÀ©©«À ÌÌ©©«©©«Ï000©©ª©«©000©«©0ÀÀ©«©ÀÀÀ©«©À 0é«©©« Ï0©«¬«©Ï 00©ª©«©©00À«©©ÀÀÀ«©©UUUU ÿÀ0 ÿÿSÿS3?3<@)óÀÀ?ÀÀÀÀ?ÀÌÌÌ?Ï000U0000?0ÀÀÀ?ÀÀÀÀ?ÀÌ0Ã? Ï0À?Ï 00)00ÀÀ?ÀÀÀÀ?ÕõWW ÿÀÿxwxwxxj[ji ÿÿxŠxwxwxwxxÿxýUVŒ}rO…G‘’´kxGóÀÀHx˜xxÀÀÀÀx˜xxx˜ÜcxdO‹"B¹0V UŸiƒ­jÎÖé¥õ†pÜýiiÇ0ï¥pêÿÀÀÀ;üïÈÿÿþ7+4)4%0 ñÿ,ªg„Cf;@/T ¿ÿ_5ÿÀ(=!N` )87'`!-P +d*#>a  ×åð0ûTS21>/>)& ñoJª‹¤+Ã?ÿÀ$7X9JI1|+=j =Lÿü%  ÿü0 :78Ï=/n5UQG_<ÿlkOÕHÞ?IJ’†èÇgh%&'îÆMóÿÃJ·ZŽÀ�ÿÿÙ¡”`oÏÊIF(ÿLcÿ�‚6ÙŠufˆó…|/(šxkçÀÝùÁœkÿÀ[&ëñ¦ÿÏÿ-&´³nôž'†º#¿´®Ó“b1/ïð•Å£ÿ9Ñóÿl”ef©9TPEUDÆHaà™�HÿÇ~<¿1  <€_Ä“:ü_vq*@C<cÃÄÏð×\|;ŠRŸ ÿ2ã²2•�Àðü+ÇÈ›uí@U��cüa”ƒR&%ÏðJcOÂ{ ÿo°?eš‰ÀðüV('BWÿ?Ÿ@00Ÿ@0000(‡0/0/Ѐÿ `ÿ `ÿ `ÿÿ_``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(Ÿ `_``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(W0(U`` Îÿ‚~‚ ```UÀÀÿÿ``_`_`_`_`üÏ< _````¿`_` ``à` ``à` 3`````ÀÀÀÀ¿```ÀÀÃà```€ff`vbÃé‰ÿ�À ŒÄ€¿+Ð         :DFHB@   RD^`N4 VP^`F8  NHVXB4  .8:<68:<*,.0 "$   "$  M   .  60>@:,  B<JL:,  EC2E8:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,   & .0*  2,:<2$  :4BD:,   !2!8 :4BD2$  :4BD2$  :4BD2, =;.=460>@.   60>@.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$  ., 68&  *( 24"  !=;=     I  $  97298:4BD  &      53.5460>@.   60>@.   60>@2$  %#2%8:4BD2$  :4BD2$  :4BD2$  $    - q535      532bÑ  ;5CE3%  ;5CE3%  ;5CE3%   39  ;5CE3%  ;5CE3%  ;5CE3%  h    4h—Vhjlbhjlbhjl   &("  *$  A5i’33ikmcikmcikm;5CE3%  ;5CE3% 75 ?A/%   T04_groomed T04_groomed@ÁÃõÂèAÃõÞÁä   F F @ÁäBÃõ¨ACÃõÞÁÎÆ ýÿÿÿ3ÌÏÿ¹ºŒ¹»0ºŒ¹»0ºŒ¹»0ºŒ¹»¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹»¹0¹»¹0¹»¹0¹»¹+ºŒ¹»0ºŒ¹»0ºŒ¹»0ºŒ¹»¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹»¹0¹»¹0¹»¹0¹»¹¹Ž¹¹»ê¹¹¹»ê¹¹¹»ê¹¹¹»¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹¹¹.¹¹¹.¹¹¹.¹¹ýÿÿÿ3ÌÏÿ.E.E.E.EEEEEEEEEEEEF.E.E.E.EEEEEEEEEEEE.[[[EEEEEEEEEUUUU ÿü©ª©ª©ª©«©À?ÿ©ª©ª©ª©ªð00?©«©©ª©ªÿð00©ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«000 ©©«©À«©000©«©000©«©000©«©000 ©«©©À0«©©000«©©000«©©000«©©UUUU ÿüÀ?ÿSð00?Sÿð00?ÿð0S0?ÿðS000 À0?0000?0000?0000?000 À00000?0000?0000?Õ_UU ÿüÆÅÆÅÆÅÆ·ÆÀ?ÿ·ÆÅÆÅ±fóðð?j‚3xÕ“™Ýêš™a䮎üþóo|zúi||PŸ]^¦¥WX2þü|||é|þzÒ™)^PãÆ\CÏ?<0 c;™d䯷ü0ÈÆ‚�Õ000?·ÈÆÕsüð00?�½Èư��0000ÆÈÆÕ000<·ÈÆ‚ÆÀ0Æ‚ÆÆ0000ÓÆ·Æ0000ÓÆ·Æ0000ÓÆ·Æ•ZUU ÿüÀ?ÿL"òðð?/- z XzŸAa�'-œ¼¾ßp×Ûøÿÿ!x?<0  ä0:000=:0004<0000:000,À00000:0000:0000:ô_UÿC1ŠYÉNÂs7ʱà-ÏÚòða�L</Â"±b³^K´í„4N `%=�5û�ŒM‹-h±a¢ÍàEôPÿÿÀÿ4×�”`˜Ê>ðütstê¢?”bäýð?gŽt79‹ŸðÀ?6Õ9Üã<ðÿ:9WXEê]EÃð!@ %0 &)¿??)&)$˜;d]U?88ñ ÿôQTAN"™¿ÿ#(ñÄ.ºŒ„&„yŸóÿuBAŒˆÔEWÑÒ•ÑGŽdûX^œW˜¬ÿÿÀí øB/F™kÀðü‘’‘ÞK? Ž÷ð;� ’GG ×üÀ?Hà‘Jßü<IJWXÃðÈ          @”$ @         ¸   0 0 00 0 00 0 00  ¹0¹»¹0¹»¹0¹»¹¹¹ºÿÀ¹º¹º¹EEEÿÀ000©«©©3«©0003?30003Æ·ÆÓÆó‚ÆÆ00038³<EDF@NP:,  B<JL6(  >8FH2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$   I  53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28&, E   53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, M      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, I        53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T32_packed T32_packedüÁáÚšÃÀ�ÄØAáZ’Ã@ŒÄ   jµjüÁ@ŒDáÚšÃØAÀ�DáZ’Óµ‹ ýÿÿÿ3ó3?ßàßÝßÝßžßÝßžÞBÝßžÞBÝßßÝßßžÝßßžÝßßžÝßßÝßÝßžßÝßžßÝßžßÝßßußàBßAàBßAàBßAÝßÝßßÝžßßÝžßßÝžßßÝßßÝßžßÝßžßÝßžßÝßÝßàßàßàßDÞBÝßAàBßAàBßAÝßßÝßßžÝßßžÝßßžÝßßÝßÝßžßÝßžßÝßžß�ÝÞ3ÞBàÞBàÞBàÞBÝßßÝžßßÝžßßÝžßßÝßßÝßžßÝßžßÝßžßÝßÝßàÆßÝßß?ßÄÝÞBuÞBàßÝßߪªªª Î  Î%ÏßìýþÎ %%ÎïÎïÎì''' þÎþÎþ'''ÎÀþ ðàýþžýþüì 'îÏîÏîÎ '' ÎÏÎÏÎÎ%%% ËËÏßìûüûüþÎÎïÎ'ïÎïÎììïì'''ïìïïíûý¿''&¸Ûý¿Îìþìþ''ìþìììüìü'%%ìüìì°ìî%Nþþ ðûýìîNœUUUU ÿÿð©«©©ª©ª©ª©«0 ÿ©©ª©ª©ªÿ©ª©«©©ªÿÌ ©ª©ª©«©©ÌÿÀª©ª©ª©ª©«ÀÃÿÿ©©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©ªÿ30 ©ª©«©©«© 0«©©000«©©00<0«©©ª©Ã «©©« ©©« ÿ©©«©©ÌÏ0«©©ª©«¬UUUU ÿÿð)0 ÿSÿSÿÌ ÌÿÀSÀÃÿÿSÿSÿSÿ30  00?0000?03<0?à ? ? ÿ?ÌÏÃ0?ÿ[ÿõ¦s˵)JL.JLb»x,¬17!,Óc3r°kJ..JÍ”x7Kr2áììõ�V´=ÆTn9#A¿…Zsq-ð>ÓÒXÕ ÔZÓÿŸÿCCCOÒZÑÑÓ‚PÿRPõÿêRëÃéÃëwožìÇȼ|§>-c³…hÆÞ”!mo¬vü‚nŠ üA¦qàsq%àq¿¦!q%¿à%¦?úZмä[²VÔZÝÔZÿü ÛÒZÛÔZ„RP <:¼<í´¯äšÔZÇÑíï_ïõ% 45 4Q.4g bÿõs oH�.(9#   Š.-pDo-Z.o-Z.o.,hÿVÿ++)*'''a4e*.SF*Mb#  ïîïîÇìïÎ!!   p-ZA-\ÿü C+ZC+ZR <<@)'''%G  €+ZG.,ÿ×ÿõò¹’[ôue$&%ní=¾w\¼Ûý$ÿRÅÏÏH0� Ã¤yÆ>4æ6R­Ë±á³ÿÑ»çʪÐý°¹æ"Íõ˜# 0#ñ…«ŒÃÏð‹Œ‹ŒøôÂÓÃÃÀÔÓÔÓÔ¯ ’Ïä‘É£›Æ)׆ó$›©¶²\÷)ó«R5ËéKÓH‰‰fW… Ïê–¡5QÚ™r‘9˜ÏÎø-ÇyëÎí`Ö=ðEÌ©�¡�Œ‹ŒÏÿ‹Œg zCÔÓÔÓÔüÿÇÈâJÔhm16�ŒÃµ iÿþÒ�ôh[œ×P¢…±gTX¿0›*åUYÕ?ÿ<1$"i 21þÿ^Uv1A0XY¿½¿ÛŸ< 9 !J #0 ÀÃ3 ÃÏð< ÃÃÀFó??>.c6.c6.c6,@þ ?Cxÿôßùÿ³13:[%¼š"!üó "5Ï?2üý6,a6,aýù“ü8*_6,/=  >  a(ÿßÿõ]¼™áj )KµÓ‡�5ÇU¨§"Š]°ä,Yãj”‚z¦™8­«�^¦®®p…yñÄ  ÁB¼d»f:ó=}G^GñîA )²=ababaBÃÃÃÿ¥¦¥¦¥ÆabaàålXÞãÞ Óâé“ s`%'6ƒÊ�ëy’™1Œiœë»|y¸â‘gRãůþ‡²¡ÕwÇkk ‹_'‡Œô _<ÜÏð Ïÿ P%¥¦¥¦¥ üÿûŸcýø.Úø14ë±aFàiƒóP=z±u;%Ž�˜–jKõj™–?¿>$R '(ýÿdEBO ( N    0ÿð!Ãp28pp�      û??=    ?þ; "M/ôš•û|•3\d>”û"«…ð‡@p‡úššüü  üôþ  "òøÿpƒè dõUþÕ?<�$†îí?üÿ˜+,kjå®2 +,! $!y�á”Uº/¹-³gšó+“Ð]a®4$yÿÀÃ釣œzêçÃÏðèçèç7÷öÃÃÀõöõöõéø<('('(``'(``~' üÏü . y8(¿ÕWõq+zň+•556ŸþYÖüÚÌžgˆ2Õ?Ž3žS¯éÜxe¯ `S ñÿÿõEòpéǶtotCÀÃlehÃÏðghghÕvqÃÃÀrqrqr^(Í@\zÕ>Ï’ö$ø™Î½e«�r¹§˜Š ¸¯ÿÿú•ŒÊŠË9Ò…d>@˜›œfgÀóhghÏ?ghghÙrqrqrüüqr‹-ºÆkYãÔò÷4¸˜¿ë¤‹/’Û– dc`½^]UUu?ÿ>+ ùó«^[„…¢ C!l#E+HGÿÿÆD=4  ù!��„ ��€`÷??>0{NË~NË~L.ÿ?ý÷öóòÿíú´7{ÿÿø"\wFMVa†üüL.yL.yL,wJ,ñðÝF"ý†H ýÿÿÿ3ó3?HH/H/HHH'//ˆ'//ˆ'//ˆ'///o@?p0_?p0_?p0_0000(o0(o0(o0(GGG/0/0/0HHH'//ˆ'//ˆ'//ˆ'�/0/`//`//`//`00(o0(o0(o0(GGG0ç/0op/`/000(APá€þ0ÿ ÿÿÀýUUUU ÿÿð``¿`_`_`_``0 ÿ``€`_`_ÿ`_````€ÿÌ `_`_````ÌÿÀ_`€`_`_``ÀÃÿÿ``€`_`_`_``ÿ``€`_`_ÿ`_````€ÿ30 `_`````` 00``à`0000``à`03<0``à`_`à ``à`` `à`` ÿ`à````ÌÏÃ0```_`à`_@ €BßÿÝžßßÝžÞBßÝžÞBßÝßßÝßžßÝßžßÝßžßÝßÝ<óüüuÝÞBžßÝßßÝßÝœ›ÞAàBßÝßßjÞBßÝžÞBßÝžßßÝßßÝßžßÝAßÝîßàßàßàßà@ÝßÝœÝßÝœÝßÝœÝßÝßßÝAßÝßžßÝßžßÝßß%àßàßàßà@ÝßÝœÝßÝœÝßÝœÝßÝßßÝßžßÝßžßÝßžßÝßßÝÞÝßAÝßÝÿÀœÝßÝߪªjÏîÏ¿ìûþÎ'''ÎÏÎÏÎÏÎÎ%%%À¿ìàÎàž'ÏûûðìàÏ¿'(�ìûþÏîÎÎÏ''%ÎüïííííþÄìþìþìþìì'''ïÎÏÎÏÎÎ%%uÞÞÞßîÏîÏ''îÏîÎÎÏÎÏ'%%ÎÏÎÎËÎüî%ÿÀ'  UUU00 «©©«©©ó<Ã묫¬«©«©©0Ï«©ª©ª© ©«©© <ÌÀ«©©«©© «©©000?«©©ª©«30©«©©«©©«0À©©«À©UUU00 ??ó<ÃÃ,)0Ï0? ) <ÌÌ? ?000?33??0À?Àýý0?Ã0ˆ‡‡ˆ‡@šŒòNæÙ)j¨96<íáD6mFýp @î DòÐùàñ<ßáá U# ˆ‡Ãÿ…ˆ‡¤NýoššaUË„ÜUàûÔïïÎa%“á߈áá߈áÒáÖÒáá?-##q–áqáÒ*oWf2:eÒ²ßRßáß:“áß(�ßв½ßÐ�ßá`·áá'/áÒ6AÒááÛoqo>qoqÿÀüo½qµé{0?Ã!Z.?'%%%.C!  ÏóÙ¦F¿ÿÿ#>Ã.@#òIõOïÿö#!-@FöFöFöFÏ#6##H#6%3--++†#öOöLdÿdÒ3(A#4#%X###ÿÀ|##%#ýý¹|lçèk b?:’[¦JËLŸÀ‘DÛÙS�5Ñ…ä¦Ì=ªD¨¨@þPÞ+N ere?Y­‹kÏ*æ¹@n ´).!.ÐÿÀÖ64À_íÙU¢> –]_¤¢ð߃wÄvNõ¿¢Š]mŒbzؼG÷bó=J ÃÃÿHý…Ëh¿›˜P°–Œò6õ0ÛUÕ.âŒd>»~´5EF6M?†˜»ZîÚ.qz�³U-»ó4` €%€HR °ü=J@ÛXvyr?J•6:tm¥w¦ðwúµ >!?F44ÿÀ`ÌrbjýÚUà  *,($'5%‚;-  1ŠÙð Àÿ"1!?þ¯¿8öy'.! 44 #RÂÃà óð??$ 2 !0#$/ð€ ýý_Yóð33Be,: }ÙU<<UV_`kl+Ê›Íî ²¡*�ƒ¼áÚÂJt’Ñæ .ÿñOü æï ¼É)AzÀ¿‡ˆuv³9îE ¿ÿÿy|Ö£ñÔ +6DM„EM亰ÁÀÃÃtcd`_Áóð??~D çòÒ]sƒqöüÿ('ÄI-XAˆÿÀ3æò\N]ÕUJ.uJ.uH»vH.ëÿÿøHì“&+ (øQ²q€? Rqa QØoMÀq%EÞqWæs€��! ??3;pYb?@båÿ@ æåßÿo0(o/`(o/`(GGG<óüü·/0_ˆ'////?_ÐÏ`p0_?__Ÿ0/`(o/`(o0(G/·/0/0/0/0_/?_Ð/?_Ð/?_Ð/?__Ÿÿ_Ÿÿ€ßŸÿ€ßŸÿ€ÿ0/0/0/0_/?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿ `ÿ `?Àÿ ``PTU0ÿ$€@0ý0ÿHHH@aññó‚‚‚~û‚‚˜`‚‚~`UUU00 ```à```àó<ÃÃ`À`_```¿`0Ï0``_`_`à ``¿` <ÌÌ``````à ```à000?```_``33```à```à``0À`à``À`UD €† Zšß9€ ñ?üÁ ŒÄ€¿uÐ     *," *$24  6@BD><   N@Z\J0 RLZ\F8  NHVXB4  .8:<64  F8NP>( F@NP>0  F@NP>0  $          *46820   B4NP>$ F@NP>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" ]        EC.E460>@.   60>@.   60>@2$  A?2A8:4BD2$  :4BD2$  :4BD2$ * 0*,24"E(      E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2%824:<*,.0 "$A535    u   53 5   "$  53:5@B<JL:,  B<JL6(  >8FH2$  2468&,    A    "$  ( "$]      53&5,.(68" &$ .0  a $  & .0&  .(68.   60>@6(   2 864 >@.$  60>@.   60>@.   $… 9u¦Su8ouou'!/1'  /)79/!  71?A7)  0 .3C¬r�s€:4BD2$  :4BD2$  :4BD2$   2n±35 ;=+%  /- 79'  /)79'    T32_powder T32_powderœÂ›ÃÀ�Ä�BáÚ�Ã@ŒÄù„ùœÂ@ŒD›Ã�BÀ�DáÚ�Ã_„W õ×ÿ3ÌÌÏzyöz|zzWÔÌÏÿáßá=ßáá¤ßáá¤ßáá�ááߤááßàâ>¤áâ<ßáyáâ<ââ<ââ<ââ<|zz33?ÿ|z|zø{ö|zz|ð0ÿÿYÔßáŽâ>¤áâ<ß=áߤááââ<¤ßà>á;à>á;à>á|zz|z|zø{ö|zz|YÔßááߤááߤááߤááßááâáß=áßá)âá;à>á;à>áyáâ>áá¤â>áá|zz|z|z�yözz|zWÔááßá¤áßá¤áßá¤áßáá Ïüÿßßàßà;áâ<ßᩦ«®3ÌÌÏ(`@`”dÔdÔdô FDCZÔ:Fôl S¥:S¯33?ÿ*(æoZÔ:BIdÔo:öZiz   *ÿÿþ`f@o(dododdV@–FõoZiZ$voC¤o:Fÿÿ>(dodododdo`VY@:d€_UUU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© ÿÌ©ª©ª©ª©«00?Ì©©ª©«©©ü0Ãÿª©«©©ª©ª©ªÿÿ𩪩ª©ª©ª©«ÿÿ0ãä©«©©«©©00«©©« ©©?ðóãä«©©ª©«Ì©©«©üð0ª©©«¬« ©©ü«ãä©«©©«©©ð3«©©«©_UUUTSTSTSTSTST7S ÿÌS00?ÌS)ü0ÃÿSTSTSÿÿðTSTSTSTSTVÿÿ009)?03? V?üó9?Ì?ü ð0? ÿT7?)ó3??ÿÿÿÿW¢ƒƒƒÙ;Üeêf°IX„ŸÛŸÛ+ ®½s  s: ¯JVŸŸ¡Ÿe½‘éÌ¢I‘½ÜH;+¢ Ë½½ëeŸ½H­Úv9t¯­HGƒ‘° Í øGHfŸ sƒvX,JΠ’9 ÚŸ ÌËe9+H9 ¯,9¯é’êŨÛhW’Û ½‘Û+ ƒsêt÷ÛÛ»I¯’ êúøø½,+ XÛƒhêÚ΃¯9 GH¯­;Îù‘ ;v:÷Ü„¡÷ùÎÛ¢fW„Û„¢ø¾Ÿv WWZ9êøËt€0„„Hs’ÜW°‘ ;­H’é9½¾Is¾X9ø¯Uêù¢½Húëo¯¯#$)#WWõðù¿ù'8ýýÿÔ¸¿ó%,*#%&, @   >%HF>>>>K";!%!Ÿêÿ4øZ!4s¿ÿ 0+   ($ " ="C!  ™_›™�ÿƒ#ð¿õ¯d" 1 %  $$[$G Ss•w~Yÿÿc//J$ÿÿÿÿ©“±IæÌbZ’·°8âžfrW+μ#qÁ(皬yêlh�:ZDÎì9*èq¹ß¥Ì< ŸäÄR„X¯FªÌ!l Šw¦g_#ù5‰sôâyû¹’oiJu£vïá.mx é3/kY”¨½¯<13)v—jÂɨ¾1Jc2 í…�™;gÇ&k�Ó"Êÿ‹…”¦=g¯ô†>Ÿ·YàH[sR?>�õIË]æÀ 7á·¸Aª„id7µÈð¿±^J9—„³N«õy#_Hß)ÉêñÓqÅ®zúíÞ/ÙÃ\gìd¾àS0öþ—œÞeøhnvA;È?ßähY¶÷é©$Òa€A`ïþý052$Y:C¯R>yZ&PTÿÿCÿïNMz`E4q<*q>"a2K0 »9P">O*A   *Kˆ10uRÿúè¬4L*uP0A�F÷9 &C¼ _¿’?"$  ]*"K¿ûóÙ„3,q @WOsh� WPÛÛ›ÿ²"""û/úÿ�p�XJ; 7ÿÿÿÿ9´ÊUJ‹þE÷(ŸŒÒ×d¤$]@ r0sUfÚPø‹ ª®„èèp°ºS6o²ZË\mn�ñ2 c$§bÖVôÏ^EL‘§.½•}—êÈ!có0O4l“Íi~bùu“åZÓ ì E»KǰMhˆ5¶i.ÓDGA6’»Ý�ÒbÒ²žwƒÞyd¡ä£»¾IåRE¾ &wgàÈ}åb„J±kúX¾™6¾ìæÍ�½Ú°MP’Qè‰,dù&E¹š^U��: ”]�—,ÙÚ ƒ&ô5Þ½o­”�ñ!Ž ‘ªB#ô?Ä §T$ ?ÏRàLÀ­^ILÿ-wõoººªª@VPIatöóùø0# gÿÿ1 ¼W&P6KÄðCCcCA'AU +f'.)HToŠ’ž�8D!“„q 9ÿÿU.P&Ø…Oõÿk2PVÊb �ÿ!#»ÿb!'!10dˆOˆ/Lï4ᢟ©%øöy÷W× S‚ÿÿñÿÓQ,&%&]`Ž{Á„±‡ }ŸãÇÿÀ?Ý>=ÚJA~Ùn%à³y†°½ÔÁÿÿñ$Bz TRžØ°}ì96uj£¸4;D°·;všð‚°Î yntuŸ/�¥¹ìI� 2 ¬H#·ÁËlÆ_ÿ +auñ€ÿw=Ô#ü?ÿ¬½6ðó9YþÃÁâ>_»VÊ]ü[íšœóÿHu•[s��„—­OÆ¥Î)³`VSÜP•A†ð?q^.ƒd ÿ…NM†þóÏ7+,-.+p!°.?ó%.?÷Dþ'oñ/ÿ-02¿ºø¬-23,ü?'$5034ýO/�6)27* �¯:ÿ÷ýýW©B6 ƒD¿‡y� ¤ˆR—.ÄW¡ß a½T´›§³üý4Ü÷¯$œ¢}ñÁФ-¤�cèÿÆ?äÿ�™Ôcùè}MQ `‰KÔ`?óøLxòSBCÜ‘µ€Ïp,OS?h LŸ¢üé´ÃawÞãÿüˆÜ E1xˆµ  N ò}Œz6O¥ `bo' øq9~>+1Ús‘¯ýà8Ë¿ûðUD�HÎê?óð�g÷ã&2;•LD €žüR œVÎi¡ºÏ%IôMur%(&-(—åÖ P¶uey$Ò0`bA`hLÿßü*¥t0 O ,=‘¦[, �õõeó¸ÿÿtM8Ïÿüq02_,I $1`;».È· TÖÿû0/t56u2ûô :m&4Y2 ¼/ÿY`£ŒC¼ _ÿð‘ HÏþ?&= *?,+?ãð�r=2gS8!/sLaA94 -&;N MBc` G÷ÿðBlM *Kõ×ÿÿ3ÌÌÏ/'///ÌÏÿ  4 4 p/?_Ð/?_`@ŸÐ/0o__�0000@0033?ÿ00(?////ð0ÿÿ0@ŸÐ/0o_ ?_Ð/?0G0/0/0@0000(?////HHH0À@?/0/0_0G0@0000(?(W///??HHH'ˆ/0TUEEHHH@! �Àý0ÿ�$‡ý ÿpý€ÿÿ_UUU€€€€€ÿ````€`_`_``` ÿÌ`€`_`_``00?Ì``€``¿`ü0Ãÿ_````€€€ÿÿð€€€€ÿÿ00ÿ```¿``à`03``à`` `?üóÿ```à_``Ì``à``ü ð0_``à`_` ``ÿÿ```à```¿ó3``à```àUT €�  !ÿÿßáá¤ßáá¤ßáá¤ßáá|zz|z|z�yözz|z|YÔáßàßá=ßá=ßá{ßà>áߤà>áߤà>áߤà>áßYÔ|zz|z|z�yözz|z|YÔáßá=ßá=ßá=ßáfáâáâáâ>ááߤááߤááߤááßz|zÿz|z|®«dodododo>( ef¶kföjZfõ¦oZfõ  >(ÿÿÈf¶kf¶o@44:FfoFoFoFoÿÿUU©«© ©ãäü0ë©©«©©ª©À0 «©©ÀÀãä«ÿÀÃãä©«©©« 3©©«©000©«©UU V9ÿ0Ã?UÀ0 ÀÀ9:TÿðÃ7? 330??000ÿÿHøêŸ¾ËtÙ“útŸJeùeÌ½Îø9:„<:ÛúH9:‘ƒŸeø„ÌeÛUVŸÛ9’9ésø½ÛίW ¾ÜÌÜ„=‚;ËHJËêg÷ø„ÛXô@usuJ¾ÜIŸ‘¡X<Û¯‘ƒ9I9 ¯¡XW ½Û’Ë,½°éË +ÿ½Ûfh¾¯ª¯Ê¯Ê¯ªÏ''' &$U=%$-"% HñF�jð 2""$M1#  |×� H ÏhïjïŠïÿ!%'."ÿÿÿK²Ç&°&Ø÷dŸOДñ‹òpötÚ¼ó­ŸD±TYtáÃÓ-·§ÇZ�ÙTºªBð;ÞS“\<½¨3Ê866~ñ„ûZ1„ô¤›dGåÝïC[lØÆNèRÆx¿Xg·Z8òa¿+»ö£5 Bƒêú’OõŠ™DÐ3èn#aÿDi& úªòD´ee(!"SdóC2„WL)+'Sä•P"""V³FA1Ãz! %u?u?Wu1$«÷÷ǹ´¾�!_!ŸÿbXãÿü#öW_gI^@C/ò»Gi²#¢ªÊ3€ ºúÐB£>I‡K2`–1‹÷ºŽ2QŸËi8ÿà(ú�ÚK"¿ÆAó}©s}J ý¢•îËM|\:ª¾€8ºNÿ&pÐËöæôB”e2…J'�ü*9:I5€G5~9;v&(ÿ’H`S&ð*ÿ+=j;Zßðÿp‰…Oÿ;J78&&, ¼¶�ñ/óCC@Gfoÿÿ;¤í_Ÿ¡ÌŒGI>¦~™Pð�J(qø|xV_ðbZüHfÿ ÜÞ<{ÑÊu®ãߨAͰoÍÒ¼ÿððV¹>l,£0…2…4aUU™˜ffoþÿ.[\ iXïÿè1 #$'„!&HHfü*SÏ3üóXghk^'*).Ïà-2?���’ÿÿGGG@0000(?(W///?_?'('/X'/X'/p0G0G0G0@ @0000(?(W///?_?'/X'/X'/X'/X0GGG`@0ÿ000(U @ÿ ÿ Àÿ0ÿUU``` ÿÿ0Ã```à```€`À0 ```ÀÀÿÿÿðÃÿ```à`` 330`à```à000```€ÿÿÃöÿÚäœÂ ŒÄ€¿ÿÐ           &("  *$24.   60>@:,         .8:<68:<*0        ,            = G   ‰      I                   "$  & .0*  2,:<6(  *468&$&(.0  " .0  59          9 CE!!    "*,&  .(682$  *4"$&(   Q* 0 2,:<6(  >8FH>0  F@NP2$      5 ?A          &("  -     5?A     %#%     "$  " *,&  M  "*,&  .(68.   60>@6(   T32_rockT32_rockðÁEšÃÀ�ÄB=*•Ã@ŒÄ¢>¢ðÁ@ŒDEšÃBÀ�D=*•Ãj>b W][]^\¹^]|Œ‹ÏüŽ][]÷‹¼]?üð^]^È÷‹^Ù÷‹?Àüø~Љ}÷‰V »ûÀÿÿÁ.-Ïü0 Œ Á-• ?üð ¦-‹œ-?Àü.--ýÌ3ü©ª©«©©q㩪ª¬«©©«qrª¬ªª©©qrªª¬«qrª¬ªä㩪ª¬ârª¬ªýÌ3ü7TV+$jT$z9Vxÿº§¥¼ÙCÙ=èçBð§ñŽñ"¾ óÙ±© q¸Ç%ÈïÈæNñóq¬rÃJ qË: q/$Ës sÿP7Ž1Pw[´yZV 5}Y207aL1KI|Am$G�_=.cÿHµ ]¾UêP,¬^Ÿ<·Îa-ìÁç!=Œ.cK¢ ÜûE'`·÷ "[#xK0P Q”8G TSV46Ð#ðP Ï ¢ïN=Æ6520i@ ÿ¬K¿“8‹iCEûÂrÈ÷Ú‹s‰½½I:V¡t€&]r Pk7 G: VT6ð ƒ F AB(À`ÀßšÇµÉøˆÏïIk%N¯ÖsM Ûp%uÄLsnÿÿ÷"w0Gnƒ$"gEÅ[>š[>]Å<=\[VQAðbƒ Æœ&…^UîPOL6`À  b@ ëì&€ ‹ŒW///00_0/@?Ïüˆ/ ?p0?üð/0/O ?  ??Àü?`_ @_ÙýÄÿý„ýÌ3ü`_````ÿ___`¿` €___``€___ €___ ÿ___ €___T„ €@푱ω!Š>XÁ ŒÄ€¿§Ð    *0"( 6<&, :$  &,  " T33_groomed T33_groomed„Á3ó Ã@•Ä„A¸¾šÃÀ�Ä   qq„ÁÀ�D3ó Ã„A@•D¸¾šÃ� …  ÿÿÿÿ¹ºŒ»‰ºŒ»‰¹»¼ºŠ¹¹¹‹¹¹‹¹¹‹¹¹Ž¹º¹º¹ºŠ-ºŠ¼»¼»¼Š¹¹‹¹º¹º¹åº¹º¹º¹ºŠ¹º¹º¹¹‹¹¹Š¹¹ººŒº¹º`ºº¹ºŒººŒººŒ»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹Šº¹º¹º¹ºŽ¹ºŒ¹‹ºŒ¹‹ºŒ¹‹ºŒ¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹º¹º¹¹‹¹¹¹¸ºŒººŒººŒººŒ·ºŒ¹‹¹¹»¹¹¹.¹¹¹.¹¹¹ê»¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹‹¹¹¹.¹¹¹Œ¹ºŠê¹¹¹»0¹¹»¹¹¹‹ÿÿÿÿ././0---0.¹0.-\.-Ï.t...EEEÑ0.-.-.-.EEE-è.....-EE]EEE-E.0]E-UUUU ÿÀ骩ª©«©©ÿà ª©ª©ª©«©©33< «©«©ª©©Ì33«©©«©©«30À©©«©© 30ë©©«©« 00©©«0<30©ª©©«©ÀÀÀÀ©«©©ÀÀÀ«©© à «©©«0à ©©«©ª ©«©©«©üÀÀ ©ª©«©©ðÀÃê©«©¬«©UUUU ÿÀÃÿà S33? ?ÌÃ33?330Ã?? 30à 000?0?30?ÀÀÀÀÀÀÀÀ?Ìà ??0à  ??üÀÀÌ?ðÀÃÃSÿßõÕùèùúù–všù ŸTùúùúùûœjœj�–lûg�yÙø¨–Õáù}¦–ÉjœùùÛ´ÙJÙXé·[6À°m#{•:ùfe‰o�ïC ¯9:œÿððð0/œ£¤§{�ÕœW$.}k•�]F3žÌÏÏÃö‰BÑ7iÄ"ÓÀÀÀÀÏŸ"±Ï4ÓíïPþ¿fG¨§æ˜—|ˆ‡WüZÀ ¿g É¿g ÉÿÃÀÿ¿=>ÀØp}Â}šÅdz‚ç‰ãÑ\iÍ"wßuU, :=ÿÿà .-L(L-":A ÿÃ3729:  66G)4E<43 "/ÿððð82C)B/"0AåMbÒ)»æùð<ÿÛ)78…!¨…Çg]|.âõùlOvêiÈ£XŽÈ˜üSù±yz½<ð8S,¢à<à5禩=þÁ· Qݵ‰pÃ=óypÑÿÃóð(ª‚Юi¬A»î1€š�ÄZíZ×5?»‹efQRHG/õoiç’VùlÀŽUÄìÆäý‡´åº¼I—ÿü&UÅãoZjiþý¥¦N¤»5š™\*m�öŸÑœu§ÙÒÙUÝiì$M½ƒ·ßrd; >kL.u\A4ðId¡›óùt2Ö˜ TýÃÃðAVÛÞþý›Ñ‘ÝÞ…†Šõ7ÊøÒI~)ˆ‡èçDšM�3 B”�À¬«¡¸96“RFdRÿüµØ<ìf⸑’•–³š,®Üv_2›iÍÙ—­ï}áEÊëZ?ºW]VT;"8mTÑv`?>ð4q¸‡ÿZÕrp?ÿÀÀ2×~=/j?'F»vN+,a  ÿÃÁ ! ðg÷ÿhñèix©4v R@€õÒÿH_8"ÿüY4"U2sBÖ„�î2þ÷«ÿ123.H#ÿÿÿÿ@?p0_?p0_00//`00(W0(W0(W0(W/0/0/0_/`/0/0/`0(W0/0/0_0/0/0/0_/0/0/?p/? 00//`/0//00/0_00_00_//?_Ð/?_Ð/?_Ð/?__?/0/0/0/X'(W/`(W/`(W/`(W///?_Ð/?_Ð/?_Ð/?__Ÿ Ÿ Ÿÿ_Ÿÿ€à/X'/X'/X'/X'(W/`////?_Ð/?_Ð/?_ÿ//?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ ` 0/`ÿ`@00Ÿ@0000(WQUTU!€0ÿÿ0ÿ‡ý0ÿ!!!ýÿ„„„‚‚ÿHHH‚‚‚‚~ ``€ `UUUU ÿÀÃ`_`_````ÿà €`_`_````33? ````_`à`ÌÃ33``à`````330Ã``à```à 30Ã`````` 000`à``0?30`_`à```ÀÀÀÀ````ÀÀÀÀà```Ìà à```à`0à ````_ ```à```àüÀÀÌ`_```à`ðÀÃÃ_```€``UU€€@ €@€H€@�ð¹¹ððšAððä_ð!ðqLð)3€ð˜…ð *ð0(.ºuûø%­åÎ(ð@ �Ä€¿{Ð           "024.,  60BD2   64 >@2(  64 >@2(  Zpjlrp=  5Y†;Y[]S] ') ! ')# #% +-# KYSU   s mXKq! ') ! ')  #! +-#  gus%U,OUWY     OYSU        D$d{.2dfh^dfh^h60>@*  2,:<.   60>@2$  $nÑou,       4 23G´:4BD2$  :4BD2$  :4BD2$   2rµ35 ;=+% +- 35#  '% /1            @    424  !      7gÄ>8FH6(  >8FH6(  >8FH2$  2468&$ .(68&  .(68&    20  "$:4BD2$ -.4 20    T33_packed T33_packedXÁ\o Ã•ÄXAì˜ÃÀ�Ä   ý'ýXÁÀ�D\o ÃXA•Dì˜Ã¨'  ýÿÿÿ333ÿrrrpr¬qäpr¬qäpr¬qäprrrrrªrrrªrrrªrrrprrrªrrrªrrrªrrrrrqr:qäpr¬qäpráqâráqârrrrrªrrrªrrrªrrrprrrªrrrªrrrªrrrrrqrpárpárpnÿ4#õ%•Yƒj棧5ß>±÷Òv#õ#§#§qÜæËHÓ):MÆÈ>†r³¡‰}5¥çŒØÔ:­ÚëÆÔ>U}ÅÅŠ`ÚY÷Ùýf_�ýýç³Iý—üIûZÈÆÆÙÆÈÆÙÆxÆO<ÈÆªÆj´kÆzŠä5>óý´hþý㳚ÆÈôýnÆÉ´ÊÆØý´ž¨ÆÈÆÙÆÆx‹zÆÆÙÆÆÈª>…ŒöŒ5ÛªÚ�™ùŒ_ wÅý²ûø ³I´©=ý´ýÊþ´RÈÆÆÙÆÈƈÈ#TIãmWÆÚý¢&D›.;@ ‘�̯@[ÜY¸)¨Aï_×÷,D> Y/^&k1`0 }1`0aôdô ±Ï531x++h ++V'+3),+/\,*�+T*(s)R*s)R(j GÓ  0-2_ÿ) 1),++Z++\/)*(K'RK(!)ôýüüº ?(O(c*(ÑÅÑÑ2 +-+ˆ+-+‚%+-n++/*(*‡'R(&™((*ÿÄÅ×u'R(R  @)-H/8 1& % ($&ÿÿÿÿo€×.JNÈÆ8Ãßèñ®ô ¹w£Ä{é²978+¬¿h¨&¨[Q3¿`LÂÑ3öwo=xwѾ™…z £~/ªPïÄt4~"'ñȣ]·ÜD>#Sp#¦–±è5%ŽgâÊŠ5²«#h?€§w¸?cBli쯀-® 6GÀNhœÄXû¶¹ÿý ¤g2ÝëghÃÄg6961/—�Íñ¿ÙÊ® ¦HkFq)� ÿDº8ÇXr‰³‰�ºˆg2dê¡D}ýy휂e_Ä$ƒ4 TË ¥ò_Nì?ÃÑ 8A&%ËÀûR+,@6sD e8$Ïüëó] 0Å.. ÿÿÿÿ—!õ²+¾à‹ÜÚ,«`aã õ¡Ÿ[„»¶I’·�#n(È}+ª 0A$#$pØLý¤ZG@œË)Zs{B®?ýpÎ{càÚª6¶ë«°F LM’#$#§™â?ˆQŠH¶Ö,†r°@*ƒ@?$#@YÎY‡Í­CÈÍvÕ®{‘JB“ %hñ^3–A-$X«C!Ø/é@v0=Õ'Âý@èyz� /%Ó÷�Á˜E.|%á©iˆi  sÈ.æfYù)oeý"Ã÷<"!ÿ$ŠZªzDÿo $8'F!ð°À„ #6à‚0ß1H???'H->'ó<L0`a`CÃÀ ú÷þü? &#' &]]÷ s`ŸãÄÈ:ýèëqQ‚È@~¢4lÁ’e³99:;´¬o"gc‚f{ám]ÒÿÏÃÊqf->ýÁ€?ÿþBߥÂv(õ“ÐQx9=>=ÊHÃÃðüG`¿`?0=>*R¥î‹‰ý‹{ÀHµ*°#ÃÀÁÂ`ððüIJåæ7"‹XÅXR'3öõ *ÿÀÿT­o*﨧 ÖÕ ³tJ¢� úè(è¼û…)^% Uÿó?4Ti6.ËòüiBa Dû²&6f47¿},)Ï xÃÃð?@_P w<6w Rw F(w,L ? ÃwP]45ËÀðn ð-.ëÃu<6 Õ÷ýýÿð? ¦Jï+™Æýü˜¡‹kúð'›ÿÚÙ”³Ü&ó¤x&ÚÃ7ë�ÎKïÄà¸+BÊûÉH%_ç iõ$'Xƒ »ÍjÇóu㸶I Fúÿü+@+³DóïÃ%D (/$ÇÄÿÿ# NKq,Ãýn³º‚ijU"Ž:ü¹m^’ót�ó×kQPÇè<ÿü1µ�,=ã­‘‘…R_ð$ð Àüÿÿã3à| ûïûã†á�� ©¨ðÄ?ÿï}oÜ›˜,üóÀ=HÃ/0!0"qi18ßaõi~³6çâ¨ç„jM¥‘/©wÜFsüñå„8h*+*UF.9YZ0‰XghX«D,-qü(GFEÿ_`ÿ `_``@00Ÿ@00Ÿ@00Ÿ@000/ `_ÿü``@00Ÿ@` ``` ÀÀ``à`ÀÀüÌ``¿````ð0`¿`@€­äËo6@XÁ �Ä€¿Ð    "$"$   :DFHB@   RD^`J0 RLZ\F8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<68:<*,.0 &( Y       EC6E<>8FH2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  2824:<*$  ., 68&  *( 24"  E      535$& .0"  *$24*  2,:<6(  532nÝ  ;5CE3%  ;5CE3%  ;5CE3%  $ "3$9  ;5CE3%  ;5CE3%  ;5CE3%  %( 868         4 27gØ>8FH2$  :4BD2$  :4BD2$  532jÙ  ;5CE3%  ;5CE3%  ;5CE3%   3579')+-!H 4ljlnpflnpflnp    W5aŠ'7ace[ace[ace/)79'  /)79+  3-;=3%  +5#%') SYWY[]  c55gi#579/579/579!  T33_powder T33_powder„Â3ó Ã@•Ä„B®G•ÃÀ�Ä/„/„ÂÀ�D3ó Ã„B@•D®G•Ã]„U õÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ìÿ{=-/--Œ/--Œ/--Œ/--Š-.-.-.0/---/-Œ-/-Œ-/-Œ-/-¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/--Œ/--Œ/--Œ/-Œ/-^/0].0].0]{=¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-\0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=|M.0¹/-^/0/0/.0]Œ-/-Œ-/-Œ-/-¹|M0.º¹¹»¹¹¹·ºŒ¹»¹¹{=-/--Œ/--Œ/©®ëº3ÌÌÌ.ø`@`oFoFoFo`VVnSF````öföföfðððð.FoFoFoFôiC¥:S¯p.øF”iF”o:S¥:S¯ÿt.úUôiCCOz:öFöFöFÿ *.ÿ€fföfö_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«0033©©ª©«© ÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÿüª©ª©ª©«ãäü©«©©«© 0ì«©«©ãÀÀä©ÿÀà ãä«©©«©©Ã «©©0?«ãä©ÿ30«©qr©«©©«©qÀ r©?ð ãä«©©«©_UUUTSTSTSTSTSTST7S0033S ÿÿÀSÀÀÿÿSTSTSTSTÿüSTSTSTV9ÿ? 0ÃU9ÀÀ:Vÿðà 9?0à ?0?T7ÿ 33??À V?ü 9?ÿÿÿÿ‘›ïͧQ¯Ô8ƒ>$i2¡RQ‡O…Ox}M«ëèôËèá“¶í•ÙUBª§ýæÅ°7 =ÈUéŠØÍ�Æ‚z‡‘�êÄ_——³\RKébjGàLx¶|£A›Àµ*8r=¿÷½Ð#Û·øie4Li8Ù¼/$ ¢ÙZoEÖ§œ.ß…nµ&~¬Ñc»y+_ÚÒªú÷÷Ð�ÑF+c¶æL/æ„°ÌÞ>/‘«¡ˆÄ¨žÛáo“fÏMÚóD&B˜˜–´Ù'Ëá/ú8O:¿#î!t®¢K½ôàd¿î7}Gäí. ‘“Ø5pâ¹’ëW‹Ôb ,AyyÓA÷LtfÓ Ö«¯ë¾%!!!!%%™›ù)ÿÿQ""'ÿSÿqþ !’ù÷õõúÎ*++ ) H<628>#@#5%! ›ŸQÿQÍS#3ù#qKÑo*:(?%!{›Ÿ13Qñ�óÏÿ<" "I'% ›ÿÌp 0# !'#8 N"$Q1ø}Ýý•ý“íÿÿÿÿÔáÃðœj¦”7té±ÔN¶iq^Ö$²Á)¬7³££`Ð�Ê$)=‘ºoØ.Ê,¿¬ÃÞ›S�»\a‚ô™gdkö­ 1=~5b &÷Ù˜Ô�Lÿ*¨0ò@,@GM÷ý_óë?¯løÏ¬ñÊ#`•D$ŠñD6å$÷˜šŸ#,A’7Až??’?1 @/f Pô0BH` Ýõÿ÷"(ÿÿÿÿ¬1 Œ-öZäžFƒL¡Ò7J3ϯŠHL§ì~‘LËâ,Ìׇ½ßÿól.ˆ>c¢Ã=EÆI×{Ús¾Yýx x«²5£•¢ÞU�Q(9Æ�9‡�T4wˆËz}:DPšÂ€øƒº­Ý:;nœP¬pË´¶ÂïÚ"xåSeÎëæÃZ¥‰ @ As$)ú¡ÿ¡ÿÁè—CÅ  0-ä#0"0õ÷yÞÀ ÿ÷ÍÌ’!g²©‹l MÄŽwÿ`pâkŽô#3:[^š#D�q(pU-Ʀúˆ59 ÕÚx%xÿü¼ôÏnÿ#HÊ 2ð,ïoöÿÎñê+Ï0 27:62) óÌ 4Ÿvíßjë¡Ì¶¢ú.èd�\ÇH†ø†xwý�¾Qt…·¡×<¢ÿÿñ›©5{©*iPðó�$°„% r$Ü% ÿÿüE-]Úž0ÜÄ�©-¹‘"õÖ:°ZÅÖäñOüÿŽ>}'(ê\ÿÿ±Ï,Àe’–"`x¶#Ä®Á˜Ä-RÙ¨$úÿ`x ÀÞÿð}E+®O½�kõMC£4Àr¡�y–Ç™Sß—˜¯�ð·-ο9å,ôUJ}[Ïÿ a1±'=rþÛt8§íÐË ‡¨ÍUu�–,ݬÎ]bp~üÿot 10!ÿ¿¡™0#2#�BBI€ |µ!N 2. ,üf BHÏÏ!D '6#2( øa†H !fªó$8ö?ÿüš‘wŠ1ÿÏÏÂr97{º=xA5H@�þ)PdÀEÿ÷ÿù,6õÿÿÿ3ÌÌÌ'(W///?_ð Ìÿ?'//ˆ'//ˆ'//ˆ'//ˆ'(GGG`@0000('(W///?_?'//ˆ'//ˆ'//ˆ'/0(?('@'@'@@ `@0000('(W///?_?'/X'/X'/X'/X'@'@'@'@``@0000('(W///?_?@'_'/X'('('('@o0(o0(o0(`?(¨@0000('(W///??HHEQQ@0ÿ @ÿ ÿÀÿ0ÿ0ÿÿ€ ÿ@_UUU€€€€€€ÿ````€`_`_``0033``€``` ÿÿÀ`€`_`_`_``ÀÀÿÿ``€€€€ÿü€€€ÿÿ```à``` 0À````ÿÀÀÿÿðà ÿ```à```0à à```0?ÿ`ÿ 33``€à```à```À €?ü ÿ```à``UUAPfffB  @€fffh �€ ýÿÿüü--Œ/----^/-.-.[-/-Œ-/-Œ-/-Œ-/-¹¹¹»¹¹¹·ºŒ¹»¹¹{=-/--Œ/--Œ/--Œ/---/--Œ/--Œ/--/‰/0é.Œ-.--/-Œ-/-Œ-/---/-Œ-/-Œ-/-Œ-/-¹¹¹ÿ»¹¹¹ºªföf`ö”`~V\fofofo.ÿ€fföföföf`@`oFoFf`__eRfododffofofofoÿÿUU ð3©«©©«©0©«©© «?ð ãä©«©©« ?𩩪©ª©«0?0 ©ª©ª©©ÿ00ª©ª©«©000©«©UU ü3??3? T?ü 7? ?ð?0?3 ?ÿ000?000ÿÿ’ ¹�F2&G¢2i^u·æo¸òê!¥ê_ÀzÛ/Weê}ËüýocÆ!V$ç„„„“U¶´XÖAÊÅ Ü"É7UŽGHÖjZ¼vÔ¿[i²é¥o±7ŽoHçäy¯-ËøzÐÃJÝÆÇðMÝ þ—HQ|ªÉþÉ|X°ÿ@L᧺ªsÍsû»ò+$$ïïÏïÎï.975 &""G9ðµ5[‘ù½÷0½ù™¡zÞÒ“•Þ  ð*ý€ïjïnêŽ'+ÿê¿È?Š�ÿ ÿ ""ÿÿÝ´›âºáàVÄ"‡ÑÖ rªC0„ýéôg߃ýuGÛf=ôˆk³/„ÎˆÕ‡Ðæ™Ó×"'ýë×Êsµ¸¯´Ø(Ð{aJÞ:öqWŽÉRúÞ�¾âŸ#®Ñ•ض´?÷-"f:n^7 bLhôº¾„± /†žºÕ�†ˆ ú‡‹ÃµÌÿ©NÖ?êúÿùÿŸõ´,§¯qó/õ-ýoBPò3"P7  /¦úJÿù•ÿ' 2¿¿õt/ü2& 4*  03 4OÿÿêP�£ψ/ ¥/ìçÂP‚ 0¥ q À0Ò�]öa Ü_Í3ë`%::xë:Ø›²pÐÔ NA™ÝJ”q×X"+æ¸Ï§XTgœ$5YÝÜXv[×”�ÿÑ–ræêBPD2"Q@ „BH#S3¤(; PuÌ=ÿðòOŠoˆ‚"2/oø]hõÿ¹™#HO$=Vô�úû|ÿá—9�DÝ6¥H  Aép©Ð#«‰ÿÿü‘X²îóôË�“èÿbþtFÿYb X_ðV#6ÿÿÿi�ÜWÕ§CÚg�ŒôISº{ÄŸ‹çk½Fj8a´öÍ„S¬ÿÁá8gøÿ éïÑ/õ/÷=$ÿ»Ì4tO_Þ  .0  6C ?"ÍÛï|r ž ê_Ofµ{ …oô/úî-&ÿÉÿ)Ð4-~$2؆묾6)ùWúÞiöœçg ¤Ÿ>+÷à,á*O_ôeµ¯CfLÔÞB'køyÅü8¾ßòRR;;$$ªaU{@*ò÷hÕWÿÿ\„8 ™!!€ï,YRUl7‹JeŒ‰V(ƒ’sdƒ4F[B)FEÿô <L ) �&Hð&%ýÿÿüüH?(0GGG`@0000('(W///??HHH'//ˆ'//ˆ'///0/Ї0/00(o0(o0(GGG`@0ÿ000(QD ÿ€ ÿ@ÿUU ü3`à```à``3`à``` ?ü ÿ```à`` ?ð`à`_`_``0?3 `_`_`à`ÿ000_`_```à000```UU $ !  ÿÿý†ÿè„ �Ä€¿4Ð            "*,& .(682$  :4BD>0   (*,&$   6(BD:  B<JLB4  JDRTB4  .8                 A?A    "*,&  .(682$ -      EOQ           535     "$  " *,&  5              ")(')$" *,& &(.0*$ *,24.( 1         (&86H     %#%     "*,&  .(682$  1/2468&(*, i  $ & .0"  *$24.   60>@6(       535    "*,&  .(682$  2468&$ 2(>@.60>@.   $ 5 $ 2   :4BD>0  97F9LNHVX2$  :4BD2$  :4BD2$  T33_rockT33_rock@ÁqýŸÃ@•ÄðAq}™ÃÀ�ÄÀHÀ@ÁÀ�DqýŸÃðA@•Dq}™Ã<H4 Õ?ÌÏaÛÜÙJHJÛJÿð?IJ3_ÛÜ`ÄÜÌÿóJH‘JI’GHJHGHJ‘HGHbaÛÜGHÏÀJÂÜÕ?ÌÏHGJ5ÿð?‹JI0IÿÌÿó%&\˜HGîÏÀù0G_㩪ª¬«©ª©ª©«©q᫪¬ªärªª¬«?0Ì󩪩«©©«©© Ïóüª©«:㩪ª¬«??©8rª¬ª_7TV9Vx”?0Ïó? ÏóüU9VT??ÿnu_646d:ú†@·§šÜ>Ä!ŠŠŠ¼Eè?=?,Æ`ru©y((­Û—$-¥7�h§¨! ¾¨ÀÀZ}ÿ¿1°ù¢ù¤ÿO  e>%`)`+¡ 5 $ "c74k=61f5a/\o,GúAE*s*bAD]<6/A·þÿ&CP õÿÏ”)ûš.]^ÛÌ<0ßéabÁ¸Ë:9„Æjçµ>0½‰V4zTðñÅ©–Lq9I0î±"M‹Óÿÿ£ð–%) t@eíÆ- <0 $ dÇü ˆ™&õÿχ'G" ³ªÌ<0¬'´³—Ñ6• h#,¹~sœCû5[œÊƒ·n¥cD§èDcûÞÏÏÞ´++„ZU�€CŒ0.'2"‹ï ü .07' Je`€¸z4 ÿ}Zóó?b^}?`OP À(U`€`,C‡Š€U?ÌÏ`_ÿ//? /ÿð?0/ð`_ @_ŸÌÿóÿ€€ÿÿ€ÿÿÿ?üÿ Ÿ0/0ð`_ÿÏÀ €@_UHÿ ÿþLÛó ‚€�‚~ˆ_ÿ___`_`_```ÿ___ €___ ?0Ïó`_````à``` Ïóü€``@ÿ___??`@€___U$„  €`žçrÞhä2`ÐA ‘Ä€¿ÅÐ   "(  $ "$     6<:<>@6@$ 2 T34_groomed T34_groomed(Á ·©ÃÀ™Ä(Aìñ Ã@•Ä   àwà(Á@•D ·©Ã(AÀ™Dìñ ÃC w;  ÿÿÿÿ’‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”ÿÿÿÿ$#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&UUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ü0ê©«©©«©«©©«©© «©©0ë©©«©©«©©«© 0©«©Ã©«©«©©«©©«© 0é«©©UUUU ÿÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSü0Ã?? ?0Ã?? 0?Ã?? 0Ã?UUUU ÿÀÀopopo²°ÀÿÿÀ²\opopopo²ÀÀÿÿ°²\opopopoÀÀÀÿ²°²¦¹poü0Ãpo²°²f°²°°²°° ²°°0ò°²°fóLK²8°f²8°f 3²8°fLÃf°²°²²°²²°² 0ò°²fUUUU ÿÀÀÀÿÿÀTÀÀÿÿTÀÀÀÿTü0Ã@@ @0Ã@@ 0@Ã@@ 0Ã@PEEab?1”/À1óbabóÀbÃ0/Ï/0aaÏÄabðba?/0bP@A„†]UUUÿÀÑdnÑÒÑÕb"!¹ÑÒÑÒÑÒÑÕÀÿÿb¹ÑÒÑÒÑöõÀÀÿÕb3Ú€¡üÏóÂÈob  ababa8JL:(  >< FH6,  :8 BD2(  E      EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  5325864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&   T34_powder T34_powderp ·©ÃÀ™ÄpB€›Ã@•ÄŒŒpÂ@•D ·©ÃpBÀ™D€›Ã  õ×ww3ÌÌÏefËgeeeï©ü33ffffhffÌhffÌhffÌhfffefefefefeÌfhfÌfhfÌfhfÌfhfï©üÌÌÌffhgeeegeÿÿð0cfËgeeegíˆfefefefe‡ˆegeeegecfËgeeegíˆfÿüÿefefefeegeeegecfËgeeegíˆÀ?ÿ?fefefefeegeeegecfËgeeegíˆ0ÿÏfefefefeegeeegecfËgeeegíˆ ÿófefefefee©–»»3ÌÌÏ2 f`†o†o†föeeeÀ`€Z`ö†ö†ö†ùüÌÌÌÿÿð02VVV_�ÿÿ`2VVV_ÿÿ` 2`õeeeÿÿ` 2VVV_ÿ` 2`õeeeÿ` _]UU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©«ÿ©©ª©«©©ÌÌÏÿª©«©©ª©ª©ª©ü ª©«©©ãq©ª©ª©ª©ª©ª©ª©ÀÿÏ«ãä©«©©«Ã3<©©«©ãä ü©ãä«©©ü30«©©«©©ÿ«ãä©«©? Ì©«©©«©Àÿ©ãä«©ÏÃ3©«©©«©©0?«ãä©óðÌÀ«©©«©©«©_]UUTSTSTSTSTST7SÿSÌÌÏÿSSü 7TSTSTSTSTSTSTÀÿÿV9?ó3<?9: ÿV9?ÿ30?ÿT7ÿÌÌ??ÀÿV9ÿó3??0?T7ÿüÌÀ??ÿÿÿÿOcÖ ‹¼êç Ý�°9IG·Ÿ3û;kLv{ðªt×”sppn«›ÜÚÚ .k]k·m·m·6JYŸ¶C²UoüEáoþBºHxv+o�oŠ¥‹�Z ‚¸ÜVZq•µ+‡,¯cLÚÚÚŠÜÚÚXç=å?å?åèÓ‚+íCJ•îq„‡ŒŽ•Yƒš¬ÚÚ¸ÜÚ¬†çk·m·må¨Å ²~¦L0‹t¿…Œ^„^’šÚ¬Ú¸ÜÚÚXç=åm·m·V °"z¦¼T]µ^î2éæÚÚÚ¸®ÚÚX¹kå?å?å?ä3 ?JaÙ¼µ`UÆ�8¬ÚÚ¸ÜÚ¬†çk·m·måm¶«þ»»59&9$7"7 5w{»¿’”º¶$w•:w_½½2ð°±°±ùùù46ûøÊø¬øŠö))%07D7L9T7R3L3N1[3 ( (  8_5  &½¿ ÿÿ(_7  ý½ð±°±ÿÿ&([7 ßÝ¿ ÿ((W 9 ½ûÛñ°±°ÿ&(ÿÿÿÿ¶Tdùÿ›^®@)¹L#‚abTSeÇïHÝe&�HRw,ÏòØÃ±u‹—ĺ?kHÖÌC\[ü¨u»ƒk·ö�ue7–ÃÈëæÏ÷wæ#\ ¼Vb©ÑÕIëã Tê1_”ƒÏzhj7�ÏbÝ]ø÷>Ôá–›ïƒH{ÏÚ š&AR!E¿]¼Ù^^\[{?)síŒÿï¹×§Hí+W!†ÈbŠSAƒ’¿[#^^\)*:¦)+%”Ÿ\÷M+pÖ$TÄh‡¥¼b#[]]JI<ƒÙÅ– 4zï8 �¼Ò½ARöÏ¿]Œ©^^\[-‰!€š¦fV"PA!¥ÀAZ OoO(ÿŸ(& Y&˜Þÿðò’‰ÿ0ÿ0Å  ìÉ$  òSHO�H ¯h%0%AòS OoF?% /%00†ñBÀÀà 0Dòs�Bð0ù ûÉ|D<   ÿÿÿÿê™§?‚Š|¦ü;±L• amŽxh–ž�¯ƒ:¹£^¸dìéèú4¥H°F@]…—™21�m’å Ÿ¥ßð&|Áû N&ý\ókî£ü0?1Dyµ{<€6{$AÓõ±Õ�ÉŒ¸ˆSc_`?‰Ÿ¬P}â ½>Y¡ º¸úž=§Å€= !"«ljÐV‘JK GL�h |6d�Ø€!]@ !•–[¿Ú.uôˆÌœµ™&™[¸rG®Œ=_^"?op×èP+.ò¾Œu(¥½ g=9 € O !"2÷îªfeU "42t�i$(oÍPè"xVô²0ÉÅ0#"%* “F€"3!ºò¡à7€?# "3`ÈHè HÊ-ð1 ¸€2ƒ¼ å_UU`feó6rcvB¾‹D?Àíìë7Q›ó)øG�MÝáY¬\Õfy!L=A†€h¸HÛD¹öÌAêØ=0ñŽ%$=ÿÿF‡À¿�ú3f¨19üa¿kß($%$üÿ?CˆŠŠ‰Q¿”p÷Æžè'#ØËÿÿ$EˆŠŠ"!ÁšqGïÆ0ïŸi}ñ?Óÿ¥‰‰‡ÖÕ$/”ÿñ��Ô· Æ'í¼óÿCˆŠŠ‰CÍM³€šUU ºÿÿðòÔiÿRÿrã6!" àbÒQAÀ4 ϨgP3Ü0€?§ %&ÂÀ %ßÀ$0Cø #Vð(#¿uwWöÜjCKÃ!~%™€ïJ{íÍj!}î‹Úo$ãi& ¾Î47�FDßaêðÿÿ·¬¨KLþÃÿˆ  '$ ä€% N³ägÕ ¤Iz‰0#߈F+,ä¦yð¶¶:U5=Whª(ÿ ?øëŠìCwTOtf LiJ!gW*ÏÀ`»ëЍ‚?‡~¨fH™h|Šÿ4#øu“ì‰H?ÿÿX^hR�…Ä>`�[ÿü$lf ëŠÍ‰vUUU1¡ðð˜ðTSh�?ÿszN7Ri>KrÆfd@$$€ßßðô3bURO\ -0„ Oûÿ4gbUJGV /ƒ�“þ¿Ã4idUH eT ÈÀ`/ÿø4 O`ñ0˜) ?þü8ohWRSP>  -u×ÿ3ÌÌÏ/0_//?_?(ü33'//ˆ'//ˆ'//ˆ'///3ÿüÌ0/0/0/0/`0(o0(o0(o0(@'üÌÌÌ`@0000ÿÿð0/0_//?___?/0/0/0/0/° ``@0000/0_//?___?/0/0/0/0/Ð``@0000/0_//?___?/0/0/0/0/Ð``@0000/0_//?___?/0/0/0/0/Ð``@0000/0_//?___? ÿÿ/0/0/0/0/Ð`ATUUÀÿÀÿ0 ÿ ÿÿ@ÿÀÿÀÿ0ÿ€0ÿ ÿ_]UU€€€€€ÿ````€`_`_`_``ÿ``€````ÌÌÏÿ€````€`_`_`ü _````ÿ€€€€€€Àÿÿÿ```à``ó3<`à```ÿÿ ÿÿ```àÿ30```à```ÿÿ```ÿÌÌà```à```Àÿÿ``ÿó3`à```à```0?ÿ`ÿüÌÀ``à```à```U€�� B@ ÿðgeeegeÿðÿð¶&•¬mñÿðÿð×Þ<š”íE ÿðv'QXôž ÿð¶ni�8U0ÿð`@0000 íý‡i$ÿ€çp •Ä€¿•Ð          &("   ".0* 2,:<6(  >8FHB4  .8:<68:<*,.0 "$$&("    2$>@6 >8FH>0  F@NPF8  6< JH               %#%E OQ=ISU          r¡Wqkm   ,               tr  oœRlfh-     us n�Smgi   ,              tr  oœRlfh- T34_rockT34_rock@A¤°©ÃÀ™ÄÀAš Ã@•Äl&l@A@•D¤°©ÃÀAÀ™Dš Ã&û 6À¬©ª©ªð©ª©ªð©ª?üSþý«SÿÿT¬ÀüÀÿT¬ÿT¬ÿüT¬ÿ㩪ª¬â᫪¬ªärªª¬ârª¬ªärªª¬óðârª¬ª7Tz9Vxxzóðxd\às±À�ƒƒ Ÿ+ƒƒ=iØ¢ƒ?�i”×�ƒƒÿðiP‘ƒ�?$#!�&#)a%a#a#ßða#©Z™#PÒ"5R&:9ÿð$%R º¹‹GJ8Gÿð8 !HN°¯û$|ÁGjá#6YlHHGÿð$"!#Gl  `!?ü`__? Ÿ@`ÀüÀŸ@`Ÿ@`Ÿü@`Ÿÿ___ ÿ___ €___ €___ €___óð €___`¡€ªªrÍí©ïy"¢i A •Ä€¿qÐ   "( "( "( " T04_powder T04_powder„ÂÃõÂÃ�BR¸‚Áä“b“„ÂäBÃõÂ�BCR¸‚ÁÂbº õõÿÿ3ÌÌÌBA†BBDBBð ÌÏØ“oomo±omo±omo±omo±opÝoo±pÝoo±pÝoo±pÿ333ÝooDBBDBBD3ÿÿBˆC†BDBBØ“oomo±omo±omo±omoÞpÝoo±pÝoo±pÝoo±mooDBBDBBDBˆC†BDBBØ“oomo±omo±omo±omooAomooAomooAomooAomooDBBDBBDBˆC†BDBBØ“oomo±omo±omo±omooànÝoànÝoànÝoànÝoDBBDBBDBˆC©¥«ë3ÌÌÌ,ø@```öföföföÀn`@õÆO\dõÿ333 3ÿÿ.,fofofofot\dõÆO\dö.,ÿ€Fföföföf@öfOjfdöfOfdÿ.,Fföföföf@õĕĕv   ._WUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©« Ï©©ª©ª©ÿÀ0 ª©ª©«©©ª©ª©ª©ª©ª©ª©ªÿü©ª©«ãä©«©©«©À0 ©«© ©?ð ãä«©©«© ÿ©«©©ª©À0 «©© ?«ãä©ð «©©«©ð ©«©©« ©©_WUUTSTSTSTSTSTST7S ÏSÿÀ0 STSTSTSTSTSTSÿÿTSTV9??À0  V?ü 9? ÿ?UÀ0  ?T7ü ?ü ?? Vÿÿÿÿ·l(y¾8]¨X¬BÙÙQÊp22n¡Lè†óè¢FÈ5on¶ûa,25«Ab›ÇD.?É5pÌð�©/¨Ûêø>6RÂxÝSϲ¥mÑ".IÂD(-L%¡¢¡¹®uÅIgÿÕÓíú=J»WQù7s›9_[A#éÆð‚³ß7AÈôzˆQ½ šK.˜Å‹#Èä~ÇUÃꢖ�bzý�!+ß¸Ò ×�¼†twêö©ª"”p0Rôab"tôòPÿ&ÕÿÕÿõyHô(&**(ÿx—}Ë%^(*(  ((& ó› V`ùýùý**ûûùP¿**YùóŸWÝX((A1@ñ HC@L]ýýÝýýý,,.ýpÖ÷ø÷öùöý¼cSdðFÿÿÿÿrl \dhËÛƒj³"REeH“b B1ô˜úŽé{Î u«Ä?¡´–½p´øQìü¼mY�ÉÀ ¯ßò‚ ‘ËçÂ/r­\Ì¿H<#tÇâÏe¨qBú¦¡n°ß³Tƒ1Bhÿ`)¡¬ 1ƒ‚�Öý>ÃhÖ]©pùÙ»ˆBiŒ|¶û¦ÃÀ¾¥x(\¾zì 8Ô…'çÙk2´7á(ÿòo ÔR¢¡¢éüÂ#÷Ž5ÖfÞì—X ‡ðãÿC&öV‚¾ ·ÔùyûÖï›" O. Ó4` © o^†×�Ì[.]+ÁÀ‹ç¼ÐýÕïô¿ùß°å ®šdËe»b)�ŠªjjZ1ɇEEƒ@Aaa ”B”B¶B0!B1#`1XT2‹0laD+d F+D@Å1]0B¶³ª$D´B”B”B Å1T$tp&BD”$´D´øZÊ\r¡œ ÕçÙÕ}€/Ð@ˆŒÌÏÿú8BBTÇ ñ¼i›¬o/ãÈZ»5ìËvu,&‡¶F�×äÌH‰Ç­ÿÈ?ÿ™/à/lp¢$þ›•0¤¼Éw/ «ÿÿþ‡Ï½å\G¯q”#60B1B0¬ ÿLñTH¨ÛÅ‘'ZÞ0>”O=ö‡™ÿü$i²–>è\9¬­ì ÿÿòŒ“\:CUS ,EåsÍ®ŒÜ8&}k àÖ‘¡=Jö#2 2 2 ÿv020 0ûŒ .ÿ  2=ùó¿¿9ÿZ00Ýü,¸ùøùøùøÿ܃sdð,¿½½� ÌpBH(ž’2íþAè&3¤0¸Ù c–ÌBTûÜÞÂv¥Ùí't‚“h6¤€Pa%Ï01mÏ .«šÐe6Ôb�ZýŒ_LKLKX`5d„/ÿÿM¹I3\¶LÆ”"²‰­ºÑQ*U/÷1ü>ðöòþQ„Ñ4?âAÿ¹tZuU]òp1Pöa‹„d !”ôüQÿ.ÿÿõ$#0.d™ I =ë…: 00<�!?2YZ¼ÿÿ 2 0ÿý˜H@�„-¿þ*SX B44 ü>`f `@’l)õõÿÿ3ÌÌÌ'(W///?_ð ÌÏ?'//ˆ'//ˆ'//ˆ'// 0G0G0Gÿ3330`@0000(3ÿÿo0_//?_?'//ˆ'//ˆ'//ˆ'//¸0G0G0G`@0000(o0_//?_?'//ˆ'//ˆ'//ˆ'///Ð___`@0000(o0_//?_?'//ˆ'//ˆ'//ˆ'///ÿ0/0/0/0`@0000(o0QQ@ ÿ @ÿÿ ÿ ÿ ÿ ÿ ÿTUð ÿÿÿ ðÿÿÿ0 ÿÿÿÿü ÿÿÿÿÿÿü ÿÿÿÿÿÿÿ ÿ«Wie÷fföVVV```ð`VVV``ÿ ÿÀ0   $°` @¶$öÀ  7 ¼   ”$�@  U€ÿ†BDBBØ“oomo±omo±omo±omooànÝoànÝoànÝoànÝoDBBDBBDBˆC†BDBBDÖ“omnmnmnm±oo±moo±moo±mooDBBDBBðDBêÿÿÿ€Ffö,föföf@õvĕĕĕÄÿ.,eeeodöpðU?ð ãä«©©« ð©©«©© «©© «ãäü30©«©©«©©«©U?ü 9? ü??  T7ÿ33??ÿŽ·Ù†«˜ìªèè„+aÕ-£ÛîÿäètÙÈŠÈ9û¿ûô;š¼;š��; Ë; ø“ ÖY€ŒP‚~öR�ÈÁYxƒ¿¿íý¿¿;ºYø�¿•¼c¿“~ûÑ~ÍÃð·1gð'(Úÿÿû×W«QË5!)SëSù—ùyð¼¼¼¿0$&& A3##- wŸ $Y&w$Wÿÿÿ2$$ð& ÿ‡`a!m&ØÊ¢жúpþ«NžSnФ“ýärQÌ [ÿƒýr¢T¿fã^ÏÜÚÊ\e¸alŒ½†-8¡zÆ'ŒÅÄNMçè3m÷eìŽasŽê3¤€‡†Ô×B*è𠔪F‚"Mÿû.ýùÿð?ð!–0(÷ö÷ô÷ôýÚƒq&ð$fŸFÿ445·õ#·ó—ó™ú¡s°ÿ~ÌÄ:y#*nšŽ¾lhÅÊ«ƒlÞít/!ñòìÉŽsüºãá§Ï¶éç*‹Õö«Õî{“RêAqwlq8[n‘ý6£CûØâ3~àã]ö{Œ*¯Ä.ò´—?�gðýzª16DÔdò®õ/€@@@@± Qd/˜\ \\Ná€yac·$0"4àÿ°cÅ Ò˜8�?:NƒÕÉuÆÿücÛƒ2E¸�ÿ÷Ûb�Q+ÜKVnÃ18Ï p–}^7ð(c´    ƒ“Fð,ÿ Ùõ¹ó�üÃwðo˜r‚5s࿸¯uõÍ1þ³ð”Œ.Ry�ãŒ`œ44äÒoÿÿw©´Q�z@»^ðä!ºž¨§RQÏãK``oÒ`ZòF�ðMÿýR{‚6ÿûßñ?ò `4*```@’o/ÿ)RsP ÿ5fVr'``d’`ÿ_//?_?'//ˆ'//ˆ'//ˆ'///ÿ0/0/0/0`@0000(o0_//?___?//0/0/0/ÏGGG`@0000ð(U ÿ ÿÿUü ÿÿÿÿÿÿ üÿÿÿÿÿÿÿ ÿÿÿÿÿ33ÿÿÿÿÿÿÿÿÿÿÿZ$�@ @”$�   BI ÿÿ]Ÿÿ "„Â‿˜Ð             ".0* 2,:<6(  >8FHB4       " &(   :D               ECE    "*,&  .(682$  ]                   535    "*,&  .(682$  28&, A     535    "*,&  .(682$  2468&(*, U         535    "*,&  .(682$  2468&(*, I          5 ?A    9         T35_groomed T35_groomed(Á…²Ã@žÄ(A ·©ÃÀ™Ä   a(ÁÀ™D…²Ã(A@žD ·©Ãa aY  ÿÿÿÿ’‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”ÿÿÿÿ$#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&UUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ü0ê©«©©«©«©©«©© «©©0ë©©«©©«©©«© 0©«©Ã©«©«©©«©©«© 0é«©©UUUU ÿÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSü0Ã?? ?0Ã?? 0?Ã?? 0Ã?UUUU ÿÀÀÆÅÆÅÆÈÆÀÿÿÀÆæÆÅÆÅÆÅÆÈÀÀÿÿÆÆæÆÅÆÅÆÅÆÀÀÀÿÈÆÆæÆÅÆü0ÃÅÆÈÆÆÈ|ÆÆ|ÆÆ| ÆÆ|0ÃÆÆÈÆÆó~JI ÆÆ~ ÆÆ 0~ ÆÆÏ~J|ÆÈÆSÆÈÆSÆÈÆ 0ÃSÆÈÆÆUUUU ÿÀÀÀÿÿÀTÀÀÿÿTÀÀÀÿTü0Ã@@ @0Ã@@ 0@Ã@@ 0Ã@DAóðbabbÃ/0?Àaaô/<ab@AUUAðb"!ó ababJ>´Ó&1àÓ&1àÓ‘“³ŠrÒx†Lƒ�¬l(<ÿ´ ·WÿóÛUÉt]YÀ&–Vß Ÿƒwù‘5_ÿ  +ñ0 ÀÂx h ¤ÙÚÝ}£x4«m´IMüLüóøfRP´³¢À2@ìÿ'0@ñ=$À#ÁóóóðLKN m¶£„Œð!)ÅMQOAÿñ± #€ðqrÀuAaóóð  ('d;$“Ã=€ÿ% €`@ÿ0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@0o@0o@0o@0/0/0/ÿ3330/0o__Ÿÿ€33ÿóÿ `Ð/0/0/?@À0U‚‚‚‚~���€†cÿ3‚~ U```à```à```à 0Ã3```````_`_`_`_`_`_`_ÿÿ3 `_`_`_`à```U!™™™™™ÿÿæ)ÿ(Á ™Ä€¿Ð        .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64  >8JL:(  >< FH6,  :8 BD2(  E      EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  5325864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =           jtµ "$  T35_packed T35_packedÁ…k²ÃžÄAHA±Ã€�Ä   Ø4ØÁ€�D…k²ÃAžDHA±Ã14) U3Ïÿ̪©©«©©«©©ªªÌ??̪¬ªª¬ªª¬ªªÌ??̪¬ªª¬ªª¬ªªÿ©ª©ª}3ÏÿÌ*)T))T))T,**,**,**,***,**,**,**ÿ)*)*U ü0¿ª©ªªªª©ªÿÀÀ¿©ª©ªªªª©ªÿÀÀ¿©ª©ªªªª©ªÌªªU ü0¿ª©ªªªª©ªÿÀÀ¿©ª©ªªªª©ªÿÀÀ¿©ª©ªªªª©ªÌªªU ø0ñòñòñòñÿ€Àòñòñòñòñÿ€ÀòñòñòñòñŒòU ü0ÑÒѱyÑÒÑÿÀÀÒÑÒѱyÑÒÑÿÀÀÒÑÒѱyÑÒṈ̃yWúLºúñž�UNúùúÿÀÀÿùúùúñUNúùúÿÀÀÿùúùúñUNúù¨üŸ«Vj1cñ)óCCCð�óCCCð�óAü ]3ÏÿÌ?@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ÿÌ??Ì `ÿ `ÿ ``@ÿ?@?@UBILÇÇÈ‚‚‚~``fU ü0ÿ`_```à`_`ÿÀÀÿ_`_```à`_`ÿÀÀÿ_`_```à`_`Ì``ÿÿô1ÿÁ`�Ä€¿ÝÐ       "$   . :<. 60>@2$  (*,&$   6(BD2 :4BD2$  (*,&$ &( 24""$*,  T35_powder T35_powderpÂq}²Ã@žÄpBޤÃÀ™ÄÃÞÃpÂÀ™Dq}²ÃpB@žDޤÃâ ÞÚ  ÕÝÝ 3ÌÌÌefËgeeegð ÏíˆfefefÿÃ33efefeegeeegecfËgeeegíˆ ÿófefefefeegeeegecfËgeeegíˆÿüfefefefeegeeegecfËgeeegíÀÀ?ÿˆfefefefeegeeegecfËgeeegð0ÿíˆfefefefeegeeegecfËgeeeü ÿgíˆfefefefeî¬geÎgeeegeéîî3ÌÌÌ2ø``VZVV_ 2`õeeeÿ` 2VVV_` 2€`õeee` 2øVVV` 2ÿ€`õee`  .UU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©«©©ª©«©©ª©ª©ª©ª©ª©ªÿð?©ª©ª©«ãä©óðÌÀ«©©«©©«© ©ãäüü30«©©«©©«©©«ãÿ? Ìä©«©©«©©«©À©ÿÏÃ3ãä«©©«©©«©©0«?óðÌãä©«©©«©©«ÃÀ©qrUwTSTSTSTSTSTST7SSSTSTSTSTSTSÿð?TSTSTV9ÿüÌÀ?? V9ÿÿ30??T7??ÀV9??0T7??ÃÀÿÿÿ8®¶†Z(-“3e´´`_#¨––h˜è–˜–˜[ì–ë}é­»«»E¹%%¹OêÙ r~cú»ÒŽÖmm¤@n= @öûîî75"7$7 7"7$5úÛÝýÛß 66 P5J1H/F/H1L5P7N5[5 Ýý½ñ±°Ðÿ(*Y3 Ý¿½ß &*  W3ÛûÝñ°Ð±&*W/ñÝ¿Ýß (*a/ÿ=½ý¹ó“s$( ,ÿÿÿ¾,mló ¶Ñ\|FCŸÚ$ZSCgÈ¿[#üû^^\qrR§2ÛýrÁò)8ÏV†‚]ð;wz'�¤Ž9j—‹¼b#[]]ÏÐÍ, AÖF—Êý¨@Y*9ŸSA ¿]!^^\|×õ+‘Ò‰þœ–aÿ�|^ê UA0b¿[>]^^\ðïDÓۇ|D±‚ º®šÀáÔ2j衼@[]]z‡ºQïHw[ÇÖ—³?þh™¶öŽˆ?«¤©Hï-yÌñBtM/Zsñ×*ß‹³pe™V2ì I¼<ð  �!EÒ3U¬D < þ !&c0ò04-B? !†5"DÐð�xîÜÑ!D2ð0 ò`1` B"Px¼{ðV!ü”À ÿÿÿxù`XØœ©šô<|VPãQÆfà€!]¤£@ !°¯¹^d :¸¹\W¥fôUŽ Ä5u&€½ÖÐIàžøG4[@=GF"Êï�+™!–¥D�ýDgØ?üS±é2u^6Œ!˜ß›…8îǜOcJK9ið¢ð!UU©"nd(!òôr   ÌHm o�‚“! ? ªÁØ’ 52@B&C‹"Q!$!!Ë"Q„uUU``\0nò Eº¹ˆŠŠ)* ¼1soí&x+ÿø¬ÆÀ<Ò”l Oôÿ ¥‰‰‡±²aƒÿþcÛý‘G*%è c/ÿ EˆŠŠ£ÿÿ˜žºË:z‚;QÀÀóÿ D‡ˆŠŠ¼»ÿÿÀúÓôµ§/åðèpÿ ¥‰‰‡ÿÿð‡¼xÔ‡“*¡†4öÿòÿ´ÑŽ€çÙ2E'��ðÅ�ÎîÌ¢d•Uð Ï#E%˜0, ÿ +¿Ì,? /&Š9,Ò ÏÝÀ-,0újp!, ÷!üŸÀ)_ÕUkŒh·OZ˲±ªÁ.AYZb¨€k[A+늪ÒB ?ýÿŸ£0Ã-öÍfm�?ÍüÏì‰H›Ï?ÿ ø0=F¾á·Hÿ?=k[©ª«ª«à>ª«ª«6à>©ª«ª«à>ª«ª«Cffhfï"fhfï"fhfï"fhfï"fhfCf’"�"�"�"Q} ssö=sss%ôssÚ6—ssQwcsss2315}7}511¦¹R&÷µ¶~ÂÿÿðÏP"ÕÑÂN"�f  ‘¸Iù/0Q*ÿÿðGŒ DI°� ?ÿð?¢“ üñú< üõýÿÿ3ÌÌÌ/0o__Ÿÿ€ÌÌÌÃÿ ``@0/0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ÌÃóüÿ `ÿ `ÿ ``@0o@0o@0/0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@0o@0o@0o@0/0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@0o@0o@0o@0/0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿUUUU@L‚È ~ÿH@Ì||‚‚‚~€€aŒHÿHH@|‚||~‚‚‚~aŒHHÿH@||‚‚|~‚‚~aŒHHHÿ@|||‚‚‚~‚~_UUU`_`_`_`_`_`_`_`_`_`_`_`_`_`Ïü `_`_```à`ÿü _`_`_```à`ÿü _`_`_```à`ÿà _`_````` ``à` ``à` 0``à`à ````` `à`` `à`` 0Ã`à``` ```` à``` à```TQ ÿ’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’ÿÿð’Ü’’Ü’’Ü’’ÿ$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$ÿÿð$G$$G$$G$$U0à «©©« ©«© ©«© ©«©0é«©U 0à ? ? ? ?0ÃU 0à @ @ @ @0ÃVÀ00    0Ãÿ ``@0o@0o@0o@0/0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@ÿÿð0o@0o@0o@0UaŒÿHHH@|||~‚‚‚‚~a€U 0à à```` ```à ```à ```à0Ã```Åþ"ð3p(Á žÄ€¿–Ð                      (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$  .(:<*  ., 68&  ­      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&   T36_packed T36_packed(Á3Ó²ÃОÄ@AšÙ±ÃpžÄ   «.«(ÁpžD3Ó²Ã@AОDšÙ±ÃC.; 3ÌÿÌ"!D"C!D"""ÌÿÌÌ""e"""""""ÿÌÏðe""""""C"""3ÌÿÌ"!D"C!D"""ÌÿÌÌ""e"""""""ÿÌÏðe""""""C"""@€@€@€ ÿÀ¿ÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÀ¿üþÿÿÿÿÿþ·7§à787׸·ï7878787×ï7878787Àÿüð×ï787ðh/¸µ„Ž Ž�ŽŠ�‚èŽ�Ž�Ž�ŽŠèŽ�Ž�Ž�ŽÀÿüðŠèŽ�Žî’õ�„?ÀüãKç –Êÿðãï¦ÙÜÝú?Àü2#4ÿð"?2&"zHFvuv‚ívuvuvuvxívuvuvuvÀÿÿðxív’²Òé³ì9;"&°¤Ð�döÊ?ÀðR‡^£.-ÿð9@²±?Ì‹?Àü& >+@?ð@C65ÿð0=$%ÒQ©ÿð- d‘R=Ô3ÌÿÌ/0o_ 0o__ŸÌÿÌÌÿ€ßŸÿ€ÿ `?ÌÏðÿ ``@0o@00@„LÇÈ‚‚~` ÿÀÿ`_`_``¿`_`_`_``¿`_`_`_`Àÿü`¿`_`_``ã1çŠä=`(ÁPžÄ€¿°Ð         &24"    &24"   *,   T36_powder T36_powderpÂ3SÈÃÀ¢ÄpB¤ð±Ã@žÄ¬f¬pÂ@žD3SÈÃpBÀ¢D¤ð±Ã=f= ýÿßÿ3ÏüÌfefefefffhÍfhÍfhefeÌhfÌeÌhfÌeÌhffffhÌffhÌffhffffÎfffÎffffhffÌhffÌhffffhfÌfhfÌfhffffhÌffhÌffhffffÎfffÎffffhffÌhffÌhfffef?üÌÏefefeÌfhfÌfhfÌfhffffhÌffhÌffhffffÎfffÎffffhffÌhffÌhffffhfÌfhfÌfhffffhÌfªªªª`VV``€ZÖ�höÀ``ºõÆo\f€```öföf`€``øføf``€`ö†ö†```€öhöh````öföf€```öföf`€``øføf`öZeeÀ`€`ö†ö†```€öhöh````öföf€```öföf`€``øføf``€`öUUUU33ÿ©ª©«©©ª©ª©Ã Ïÿ«©ª©ª©ª©ª©À0ÿ«©©ª©ª©ü ÿª©«©©ª©ª©ü ÿª©«©©ª©ª©ü ÿª©«©©ª©ª©ü ÿª©«©©ª©ª©ü ÿª©«©©ª©ª©ü ÿª©«©©ª©ª©ü 𪩫©©«©ÌÃÿü©«©©ª©ª©ª©« ÿü©©ª©ª©ª©« ÿü©©ª©ª©ª©« ÿü©©ª©ª©ª©« ÿü©©ª©ª©ª©« ÿü©©ª©ª©ª©«UUuU3?ÿ?à Ïÿ*À0ÿ?ü ÿ?ü ÿ?ü ÿ?ü ÿ?ü ÿ?ü ÿ?ü ü??? ÿü? ÿü? ÿü? ÿü? ÿü?ÿÿ÷ÿs®­tW’g²¡<ƒ†ûü*ö9½žeô¿ÚÛøÛé÷÷÷Î�Þ3:Q@¼(캺êé8ï-!ñ2ñŒŒ^`Žî0RޤZðÏ- ÿü:3< Jššôò�!ÿ#�ÿ�óà@ þdþf2A@022a_4@  $ýÿŸÿÿù@(ÄV¥æÔ/*"+ !/�ŽÓñ9éÓí��š×‹WÀ£H—6cdÅÆ256ba^”eÁÅÆ^65õ?ƒ1Á:Âr-ïÄÃö‘ 6ÆJ/_ÚÇ�Á|”2ºÚº+iëëÖAŠù¾Gð¢¤H$Ü!ƒpeÝnç9­ZÓÒÉÜaAKÿ‡»k» „9CLSJGDCcÒÍßB?>àöþúüôô!%ôùÿùÿ�q68&d€„€­úׯ0ÏüÌ/0/0/000(W0(W0('  üû¿Ï»°°°$$°û»û»°°°$$°û»û»°°°$$°û»û»°°ð$$4 4 HHHH'/Ïÿü/ˆ'//ˆ'///0?üÌÏ/0/0/`0(o0(o0(GGGG 'ÌÿÌÀÀÀÀü'#ÌüÌÀÀÀÀü##ÿ ýH@ ÿ€UUuU3?ÿ`_```à`_`_`à Ïÿ``À`_`_`_`À0ÿ``à`_`_`ü ÿ_```à`_`_`ü ÿ_```à`_`_`ü ÿ_```à`_`_`ü ÿ_```à`_`_`ü ÿ_```à`_`_`ü ÿ_```à`_`_`ü ü_```à```à```à`_`_`_`` ÿü`à`_`_`_`` ÿü`à`_`_`_`` ÿü`à`_`_`_`` ÿü`à`_`_`_`` ÿü`à`_`_`_``ÿÿÿÿfhÌffhffffÎfffÎffffhffÌhffÌhffheÌhfÌeÌhfÌeÌhfÌeÌhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffffhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhfffefefefeÌfhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffffhfÌfhfÌfªªªª†ö†```€öhöh````öföf…Æo\fõÆo\f†föföföfhføføføff†ö†ö†ö†fhöhöhöhfföföföf†föföföfhføføføf`õ`eeeƆö†ö†ö†fhöhöhöhfföföföf†föföföfhføføUUUU ÿü©©ª©ª©ª©« ÿü©©ª©ª©ª©« ©©«À0 ©©« ©©« ©©« ©©« ©©« ©©« ©©« ð©©«©©ÌÀ «©©«© ©«© ©«© ©«© ©«©UUUU ÿü? ÿü? À0 ? ? ? ? ? ? ? ü??ÌÌ ? ? ? ? ?ÿÿÿÿY9 ¯xÍXËXÍtWsWrUsW'ÍvÍZ¯X¯VuU9TUWUwÛdu*¡G/>r†Â¥VAB>5¢ö~gLy‰"ÕŒQc $y*kCi±e¾–nÌ+J|O9ÇÑÑ]^Ðè«^¬2:*2ƒ ªEŽ TîþŒ¶W”„Û{{•Þ9=³/°¯ÉX·dÜÕº’ï0€­í @WÑf ÜÁ%4€ézÿlj*/BU_ÜÂøE•—q? JÒnf^yÄm-Á½5l+ÿ¿ó3Úò¦Þ¦ nˆ8ÅP%O5�ñ:-Iñ6I·e1æ³KŠ€|”­2JJUU©U.˜ $ ¤ ˜DH„… „,(La`D´D’D’D S0ƒƒMN&†¯Œ $€éÿßò~^ÝÄuÆ/“0¦¥?;ÿLcÃו22cbadÿüÅcÆ21a™ù ÞÜ ÜG)'':@ÿ_    ŸçÁØìïú¬„“áÝRµ™’ô+È3É8:H?¦÷6m¸ˆB¥ì‚°£!ß´LvÑ+BoÙ÷B;sÒ¡=Ëñ’ÂÁ1Âba�j„€‰ , ¼¼¼ÿ²ÿ�ÿ#²ÿ²ï„ÿ†ÿ †ÿ†@AA1aƒ]TÐÿ¿ ÿÿ§¼QÕl¯ÁSÕÌ-¼ˆ£/ãÀúõ.�y¬1A�“AM•ÕwÛÀ”_ÃÛ_»(ô�_nïï/2.ðú¥.áh^¸ ׊ìÇMaWnNBg[LbQ'×ø»:â84¬ã5ã;oã©äiD|^âØŒ’apÀC&€Æº‰+Á¸˜QMãáÓ,ŽC444²€´€´€´€š º º�€ P•} �û3`afe`Ër7çaba`YZY75¢Ï\Y\a`_ ÜÝý`ab_bEL?ó3Ãôÿ/ENM@=<ÝÒ?ÿ9>9<%''  8 : :  fd„„„€ªêÿ¿ÌüÌÀÀÀÀü##ÌüÌÀÀÀÀü##Ìü̼û¿Ï»#$üû¿Ï»»»û$$$»û»û»»»û$$$»û»û»»»û$$$»û»û»»ÿû$$44 4 HHHHHH'//ˆ'//ˆ'//ˆ'///0/0/0/0/`0(o0(o0(o0(GGGGGG ' 'ÌÿÌÌÌüÌü'##PP ÿHHH@ ÿUUUU ÿü`à`_`_`_`` ÿü`à`_`_`_`` ```À0 ``à` ``à` ``à` ``à` ``à` ``à` ``à` ü``à```àÌÌ ```à`` `à`` `à`` `à`` `à``PUUU€ÿÿÿÿhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffheÌhfÌeÌhfÌeÌhfÌeÌhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffffhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhfffefefefeÌfhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhªªªªføff†ö†ö†ö†fhöhöhöhfföföföf…Æo\fõÆo\f†föföföfhføføføff†ö†ö†ö†fhöhöhöhfföföföf†föföföfhføføføf`õ`eeeƆö†ö†ö†fhöhöhöhfföföföf†föföUUUU ©«© ©«© ©«© ©«©À0 «©© «©© «©© «©© «©© «©© «©© ð«©©«©ÌÀ ©«©©« ©©« ©©« ©©«UUUU ? ? ? À0 ? ? ? ? ? ? ? ü??ÌÌ ? ? ? ?ÿÿÿÿ89x989Ur9Ur99U²WsW®WsUæUsWÊUuU²WUW�WU9¬UW9�U9Wf;:‘:Xç9tVX’tXÜ’tv¢�’t†’®t­X:V::svVXeìД:::Î’ù½J’êÛ¢tÌùÞ’®Ì¢IGIWƒeƒ:½¡ŸÎùùÛì°uùÜ’‘ùúX“Ûú:¯Û’ÌÚeÀÌÚe¢Ìøghùøe�”‘’“’‘’‘ú÷çêús�Ì¢�û°hé´X¯Àæ<‘Ü�<¯ú�‘éî„„¾Y¢¾ÜëÜúø‚ééËÉ˯s˯s˪ªªªDôDôDôDôDôBô$ôDôDôDôBÔ$ÒDôDTs8G3„s8G3�3a3ƒ3ƒ3ƒ3ƒ1ƒ3ƒ3c3£3ƒ3�3Cca1caCA1c£7Ã7ÃUÃUEQ¥Q¥Q¥QÃ3À000æhôˆô†ôhö$ôBÔ$ôBò$²$Ô$ÒDä$Ô$Ôÿÿÿÿg~hMHßHÄàz2┼ü€çÆb1²?€€ˆ21,9)”11¡Óc ɃãôË5Í­ë%ƒ¯‹œ§2Qk'I¾'c§¾øÜÖö<ŸÍ<Ò5˜Ô²ý²°´pﲎXïì.?T‰Vm .à24®“’2Sªn¤@¼éô0ƒf¹ ^´t]R!å¨%1‰Ž˜î“ wìŠD$r6q5.¸�=’5ÕÄ Ü4z<é4lñŽÜÎW® ‚ .-��Ö¿–�¹ ÔQüýO­s{•£¥á-ìÚ-ÞÇœÈ3XUÈr\îñ˜=àñ¿ÎÍïo³B�ÂÆÞcZEUåj$$„€ Nd$%�,.,ŒÏ]]]))(Cÿ  !ìöÌöÌ)ÿù22 0  šššÿ’ÿ’ÿ’ÿrŒ„þbüDúB@!!I]ÿÿÿÿdaJ®{¬Ä|M0~”ßJ2HzÆb1N�y0E/ ¶W11cGQõnOsò|¤Í«ÌÎŒ§‰àñ ácEwÜb uÓ)Ó_A+]÷Í—÷äüäââD¨âºÌ¨‚ôfå™t­¯eðì)Ƕìÿ;¶õÎ6Æ©¥::[CfŠðšyéqÓLcµŠV˜½’8VÝQ]{} ɇ‡Û_ ÿiµ }·±hªæPO65BÕ¹¡Jii�e(vLT{ŸÏ~Ó�¯=´{õ+ø‹¢íäÎÈâ~‚4˜ß :f¡>Re³{4–³c®ËUUªe„$ @ Ä)DHIM H,"0"0 BTR@RB```2DpDr$r$ fmi+)"‡ 40aa]PI W¤ÿ��”a10ñ0Âô¬0ô”¨/þÿ;3Ù”ÖÄb/Æ•”“–?ððÿ•220•/2“1Æ1ÿÌ/Åöa0™ñ œ¼š:':)'@ÿ_  ˜—ÿ†ÉÝMɧ³¸\©­&Ìèò¯všpàïÆÀ3F·P‚än7¶PðÙŠ½ôÓŸ›Ï5];5­qõžjÛ@w( /»Ü6Îõ7Y4'Cú3£†çK5g\6õZ`Ù‚`qÁtÀ”‹õîC44²�r£RaTAœ þ Ü� @Uå 21`�;¬[ZWV$ OY`]ÿÏ?^]\Y\WZ]b8òï]\MPÿü}GNURKPOHA>>çÿDGFIJ % üøîøì+ÿû#!:8 8  fd�„„†ªªÿÿÌüÌÌÌüÌü###ÌüÌÌÌüÌü###ÌüÌÌÌüÌü###Ìü̼û¿Ï»#$üû¿Ï»»»û$$$»û»û»»»û$$$»û»û»»»û$$$»û»û»»ÿû$$44 4 HHHHHH'//ˆ'//ˆ'//ˆ'///0/0/0/0/`0(o0(o0(o0(GGGGGG ' '@@A@ ÿHHH@ ÿUUUU `à`` `à`` `à`` ```À0 ``à` ``à` ``à` ``à` ``à` ``à` ``à` ü``à```àÌÌ ```à`` `à`` `à`` `à``UUU $„ÿÿÿÿffÌhffffhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffheÌhfÌeÌhfÌeÌhfÌeÌhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffffhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhfffefefefeÌfhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfªªªªföfhføføføff†ö†ö†ö†fhöhöhöhfföföföf…Æo\fõÆo\f†föföföfhføføføff†ö†ö†ö†fhöhöhöhfföföföf†föföföfhføføføf`õ`eeeƆö†ö†ö†fhöhöhöhfföföUUUU ©©« ©©« ©©« ©©« ©©«À0 ©©« ©©« ©©« ©©« ©©« ©©« ©©« ð©©«©©ÌÀ «©©«© ©«© ©«©UUUU ? ? ? ? À0 ? ? ? ? ? ? ? ü??ÌÌ ? ? ?ÿÿÿÿ‘�­‘‘q999�9Wsûss‘…‘­¯õ9UutussÊ­‘‘ÝË˯ÂsWU6ssWsWU�W9ü99W99w7Ï’U®tthsèt’J�ù’�.‘Û®’²®’®’°®’®Ì)’®Ì”’’t¢°®’.ÌÌ®GêêÌéXXVU’Vv¯’t’À®°t v�°­t’t�tVv‘tX:ÜÌÌê’’�ÀXVvé:::Ù¯¿ü¯½é9“¡ü;“ƒ�Ýée ¿Ëgc…ËIŸg¯G‘–“’‘’‘’“ÞvÜ€< h•cJŸ ‘¯VWs‘VWssrsu7)­¯‘ÝsWs®9ªªªª$ÔBôDôBÔBÔ$òDôDô$ÒBô$ôDô$ôDôDô$ôDôDs8%3dS6E3£1c1c1c1ƒ1cccƒ3ƒƒ3ƒ1c3ƒƒ3ƒ3ƒca3a3ƒ5£7Ã7ÃUg1§1§1…1Ã3À000ähôfôfôdòDôBÒDôDôBÔBÔÿÿÿÿç¡$ý·4egx^0UúŽEÂÜÙࢾ.*Æ�ZÛ:C S8ww£KaÿL{÷³‘Ûâ꾿‘8�A«¢MC�dT×£4(q@�,3�€kkV�€ �HU `"§#N€áIqù%øo'_øöÜPìŽÜаŒ¿N°P!t°Hë 13ÅR ËÇØIíÝÖœWéÛ¬®;w-ž„-¼÷ÊŒ÷SµZ W{.NCŸ`à :µÏšR&ÖzÙa€KÀ†(¦‚ZõÔó^= ë²%z›�«ÇÓÔ�ž9:Ï$pÃí‰9±\¸ôSŒö¹ úø1æß^…þ�o5àUí£UQ¥k €,HM@a dL,„ ‰B LA ¬ôªôªòª)ÿ÷.. .  xxxÿrÿrýrýpˆ@ºxÿÿÿÿ}6àýI2±dÞ×�âú§€·o½µ!q£îÆxž�ẽ•·ºŸ“éíœva 9¥l‘{›'½¨‘‹SèKs½Ž£�W1yþ‡o´Žƒûlöaeânô¡DU;& #ÝõTCgð!4g<42ÜႺ¶Àâ¼záâã#�½â�¢¯×Æç±’ÈýKb±û™8Pý9`dÂï�ñ«Ž-2’¨JDËyE} iá¡à'¹ïƒU~Dý¨féÈý /Ǥʥ½Âº}†·l]5nmTSŒ‹rq{DVníÊ0ï† wG£Nó×´$Ðo~E–…}ÀÙ3Tžn%0UU•V..ަ.„LLG@H ]M LLL¤ ®¬® \1B1@$P$PBP$ fm!!!/]\ÿ�þûÉ`ýÉ2à“b2Æ“øbd1˜Ê3Êh˜…Æúc21—1˜ÍË‘acÆd•ØVù•õ± tÃÄ“bÄõÁôó/÷ü‘’ï�^ð z˜ v'%8% ÿ–Õ­®op ª™Pž¹Y”Êõô�]ïV¼Éß›'8o2•É2÷þ÷HÍ13Òûd_UiHE€ ˜  �$L0 šššÿpÿpÿ�ÿpl"Ú ˜%ýÿk3ÿýcÅ2—f••d˜ðewí4ïþfšš2Ëš1fÏÇ"ÞÉcêhtef3› Ug› ÷6c„ÔF1JÎÇd”މ™±ûɪê1cäHÛc£Ö6ÄŸ"άݖ=`b_u‘ƒ¹OdäSÈù^ßÏûƒÀµ)ß²Í?¯zQ;‡A".£ËÞV–ArA2c@2Aœ¼xU•W C,UÃ?ÏîVUVUVUVUTU„¯ RUTÈ<ÍSROZWÍ Í‘…ªõû‡J_Ë€L�â^�½½-³âÿL]-µ¶¨ðv T T û3 ·¸´{�VïY¹€^!òT1¸[b,YOJ0[OsòØe¤%,$., †† 4P@@\]]]_ÁI 2 ššVÿpÿ’ÿ�ÿ°È06ôÿŸÿûEÌA1½ð#ˆªEPƒ¶da²üÊËÉh–g•6¶ÜcnOÍ4g4j�44ühhÑ2s»Ífu1DÊÛ2Ȍʨ¥ÂìÕ§Û= rW?oÇéò/`00/.]^-0¿¾]5êS Wº§k¾ÉvÅ2³akÈê'ëç%YûƒâízÕÿAfnÔÔA@xVVTU^Ïó+TUVSTUüð0¬VUVUVU¯ÇèVSVUýRSÍÍïŽTQTQRUXŽþð [^[^?ÿab ŠôŠòŒ+ÿù44 6  fd���†«ªúÿG ' 'ÌÿÌÌÌüÌü'##ÌüÌÌÌüÌü###ÌüÌÌÌüÌü###ÌüÌÌÌüÌü###Ìü̼û¿Ï»#$üû¿Ï»»»û$$$»û»û»»»û$$$»û»û»»»û$$$»û»û»»ÿû$$44 4 HHHHHH'//ˆ'//ˆ'//ˆ'///0/0/0/0/`0(o0(o0(o0(GG ÿHHH@ ÿUUUU `à`` `à`` `à`` `à`` `à`` ```À0 ``à` ``à` ``à` ``à` ``à` ``à` ``à` ü``à```àÌÌ ```à`` `à``ÿfhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffffhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhÿðffÌhffª*höhfföföföf†föföföfhføføføff†ö†ö†ö†fhöhöhöhfföföföfU ©©« ©©« ©©« ©©« ©©« ©©« ©U ? ? ? ? ? ? ÿ7ÝW9É:[<:;:<<X<À9‘­KuË-9s¯9WËcÜ¢ftÜ„f®¾¢J辄h»f„¾tfh ùJf„ÛHh„h­sÝËU…ËU9KéW7X<ë:VÞ©°º“Ñn1ëówffþ `ýÊpÆG”¤¤SJà” ›æ'püêE>§@4g<¿I~r1�ôC[é]KÜ&`á±+<…64�f’’ ª¤óyzL­ÃÏ÷ÿð{s"´Q£eO@$®î$r"B 2 2®¤M@1a1ƒ_Å  ÿ÷¥K6ŸG:ðì�•Kmn1N#Ï»dfßs@®î\+@tptFKÐÕ´÷î´~š†ÇÐbh3`ø†ž²02nRlW¦3Sçm±cy-Ë[u 6G;n/gGT0-ÿð=; U@L@ j,ŽŒŒ$D ÿ?<_‹^ì„‹0…„--µí]^`Î~¾8J­Ò îý7ºÍxL$ytÊép–ymˆG voÕ©´ÇöqèÇÄq®%È–äw1ké]míx�拌ê»é+æÿð�‹’ˆ]¹e_P$ $*î¾$r$""R"R®¡L\@3£ƒ_Õ  ¯*GGGG ' 'ÌÿÌÌÌüÌü'##ÌüÌÌÌüÌü###ÌüÌÌÌüÌü###ÌüÌÌÌüÌü###ÌüÌ#U `à`` `à`` `à`` `à`` `à`` `à`` `ffïùÍIÿ¬ü@Á žÄ€¿²Ð  *,"  &$ .0&       " &(  &024.,   >0JL6 >8FH2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&(*,     *68. 60>@6(  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  ™      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, 1979$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  I      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, 1979$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  I      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, 1979$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  I      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, 1979$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  T36_rockT36_rockpÂÅÃ0ŸÄpB ׬Ã@žÄÌáÌpÂ@žDÅÃpB0ŸD ׬Ã á  õÿeî¬geeËîªeeÌðªeeÌðªegÎî¬geÎîªeeÌðªeeDˆü ÌðªegefhfÌÌÌÌfffhffffÌÌóÿfhffËfefefeÍfhfeîªeeÌðªeeÌðªegÎî¬geÎîªeeÌðªeeÌðªegceÌhffffhfffffhffffhffffhfffffhffffhffffhfffffhffffhffffhfffffhffffhffffhfffffhfÀfªªª¥UðúUð2,üWðüuðúU..ðúUðúUø,,$üWð`€````€`````€``öeeÐ`†ðúUðú,UðúUðúWð,,.üuðúUðúU.,õÆhff†fhff†fhff†fhff†ff†fhff†fhff†fhff†fÀõ_Àÿg‡ˆhg‡ˆhgðÿð‡ˆhg‡ˆhg‡ˆhg‡ˆhg‡ˆð‡ffff‡ˆÎfffefefefefefefefefefefefefefefefhfff?ðÿfefhg‡ˆhg‡ˆðÿhg‡ˆhg‡ˆhgðÿð‡ˆhg‡ˆhg‡ˆÀfõ_Àÿg‡ˆhg‡ˆhgðÿð‡ˆhg‡ˆhg‡ˆhg‡ˆhg‡ˆð‡ffff‡ˆÎfffefefefefefefefefefefefefefefefhfff?ðÿfefhg‡ˆhg‡ˆðÿhg‡ˆhg‡ˆhgðÿð‡ˆhg‡ˆhg‡ˆÀfÿÿp®TÓ�e9®¯·›eaigÑÑú�ÉÑÑúà&ìÑÑG èAÀÂ<±ÚÀeßÂèæèæ�ûrts+}ÃÄÙÝ_/�[5ÊŠ&Éê°Ý³ ä(‘Ü0Jíté'ìîÚGò;œœyµ°!²Kc^!zƒi윜gÈœœ·eÌf€‚œœ¶¸¶¸¸œ¶œœ¸¶÷Û¥‰‹o¥Û€~uF!p‡ˆa@{eÑöÞöøøíÑ›/"/e·µ››·À›ÿÿk ¦|wÁ¦|w»¦|y»¤|w¹¤|w¹¦zw»¦|yÐpWUWU~y³š•–•–•–•–•–•–•–•–•–•–•–•–•–™š©¬™UJŸ˜ïê ¼·¼•¦hk‹¤jm‹¤jm‡¤hk…¢jm‡¢jm‰¢lmôs3113+1111US@FdD$$$$DDDDBD$BÀÿüCŽ/U<«’‹$[„E�PJƒ;)°÷2 »µç°2'tcµ_H›O/CHȈX�© JÐïØ¨ˆËÌ®øàŸ0îRHwíù–9ûñw~bMµ�Ieè`nÔÛ<ÃfH�o²ÿ·+ qG I!�›Ž ,(I%G%II'qM…ƒó ÛSŸªÆ‘ü9~Ápoð»×OüиèƒcqŠW!F –í„F;"ÀZhU!@44422Fõ1;ú�ü€8F±)^ZE‰ÿÿÿõfkFjEfU÷Iñ#@#i �¿ °Ù °À@#Çð5U"DÿÿDŒé£; ·rŒûk!§¶ö=ÈÛ~ %Ú‰(díw(Fì2˜ÃèÐt>Sè…Ì>q|§q²¾ ý"VUVUVUVUVUVUVUVUVUVUVvuâÊö•ïÁ‘WœÌ¬�Óù3ýÄbѵ…Ú‡ù°Y „éû' »ú,9Q¡xf1}v` —1$L$J&J >$" : .„`D& +)A=Rùìeaü­ûå��É´FßÌcá©ç -!7yý<8¨ÊB> Àê¿VÞðûÏýÏýÏýïûïýïÿù96{%l:6            ]\3aH[Pl#"%  ýïýïûÏûÏ÷�À€ o0x‚ùüg/EÉc áI§Oû@  knWVVš$ÔSJ#é±Àfó ú#,¥&/¶§¸B¥ž ÷~‹#{mÛµPg<Åc_5ìÌÿHFo4’B5n¾[oVxëm];>À†ŒFpϯ§(<,öxofegjnÖÚè]^º‡ýuÆÅbÀ2PXE?�+0ÿÀÚÕ &¨ %OðVv-0¾üáè / &ÀÂh àÀÀ,ÿ~   p`¨ÿ¼~ÑÍÙžúP^£÷ßs›˜\?íµ±av5æ|m¶«—X—¾�§™�±L®rH‡)ºUF¹ ¨eúàŒdc «•¸¶_ýõൠÈ�œMÅv %   Hvuƒ@¯÷ ƒG&"Vïa%ap`ÈOddcÑÊeEçKˆ¤Ã™“ÈÙWü°Ím=p†U\UðÿÍ^]VWZY� ûRQTUüýõXkfab7ÿý½€8q< MXgvË´ : Bü<��ýª«˜I�™!†Ã009/^[XW"ß÷ÿPIHE`sjüO †~õûüÌðÿÌð/ _ S  S  c0 “@'§@'§?ü Ì€O0(·/?_ÌÌÌÌ_Ÿÿ€ÿ `ÌÌóÿ`@00ˆW0(`?(¨?(ˆ X T T T üû»»»»»» '////?__Ÿÿ€ÿ ``@0000( ÌÌÌÌÌÌÌÌÀ TET˜@@LÈ‚~€Àÿø‚~õ_Àÿ€€€€ðÿð€€€€€€€€€ÿ````€à```_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`€```?ðÿ`_`€€€€ðÿ€€€€€ðÿð€€€€€À`€Øø8„hþép žÄ€¿ÑÐ  "  *  & & & & &0 *0., 6,*$ "$ "$ "$                "(*,&$  *4:8  (&0.864 & & & & & &0  -+- )') )') )') )') )') 979 !!                )')   )') )') )') )') )') )')  T37_groomed T37_groomedpÁfÉÃ@§ÄpA®ç¸ÃÀ¢Ä   =–=pÁÀ¢DfÉÃpA@§D®ç¸Ã} –u  ÿÿÿÿefËeÌfËeÌfËeÌfËegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeÌeeÌeeÌeehefeffefËgeeeÍeeeÍeeegeeeÍeeeÍeeegeeeÍeeeÍeeegeeeÍeeeÍeeegefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeÿÿÿÿ4141414MMMMMM333f2KKMMMMMM2222KKKMMMMMMMMM2222KUUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ü0Ã3ª©«©©ª«© ÿ𩫬«¬«¬«©0ÿ𩫬«¬«¬«©0ÿ𩫬«¬«¬«©0ÿ𩫬«¬«¬«©0<Ì0©«©©«©Ã «©©« ©©« ©©« ©©« ÌÌ©©«©©0à «©©«UUUU ÿÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSü0Ã3l ?ÿð?0?ÿð?0?ÿð?0?ÿð?0<Ì0+à ? ? ? ? ÌÌ?0à ?UUUU ÿÀÀpopoprpÀÿÿÀr8JL:(  >< FH6,  :8 BD2(   $&("    2$>@6 >8FH2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  ("$&(  Í        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T37_powder T37_powder„ÂfÉÃ@§Ä„BšÙ²ÃÀ¢Äaýa„ÂÀ¢DfÉÄB@§DšÙ²Ãi%ýa% ýÿßÿ3ÌÏÿ-.]--Œ.]--Œ.]--Œ.]--/---Š---Š---Š---/--/Œ--/Œ--/Œ--/---/Œ--/Œ--/Œ--/--/-Œ-/-Œ-/-Œ-/---/-Œ-/-Œ-/-Œ-/--/--Œ/--Œ/--Œ/---/--Œ/--Œ/-ÿð?-Œ/--/‰/0/0/0/0]-/-Œ-/-Œ-/-Œ-/---/-Œ-/-Œ-/-Œ-/--/--Œ/--Œ/--Œ/---/--Œ/--Œ/--ªªªªÀ``õÆo\fõÆffOfOfFfofofffofoffdododffofofffofoffFoFoFföeReeÀ`@`öFöFöF````öföföf````öföföf`@``ôfôfUUUU ÿü©ª©ª©ª©«©À?ÿ©ª©ª©ª©ªð00?©«©©ª©ªÿð00©ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«00?ÿ©©ª©ª©ª©ªð00?©«©©ª©ªÿð00©ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?üÌ©ª©«©©ª©«ÌÿÿÀ©©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©UUUU ÿüÀ?ÿSð00?Sÿð00?ÿð0S0?ÿðS00?ÿSð00?Sÿð00?ÿð0S0?üÌSSÌÿÿÀSÀÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÿÿÿÿlNkŠ0<X¹M€N0›D2› ó X ”'ÎE²2NвNŠx2lŠCõE×E×cÍÄÆâëÄÄÆØŠÄÄ£c×ÙõauĨˆ‘¦¨¦ø¦¨¦ßcÐc”Eva²ŠN0ZllN9ˆlP2aXE<': }20õ20NxNNlÐ ;“m Í%�uø'�“ž ×± O “ C ¥u�OýYO2;C&- *” ‘ˆ“luNWÒ ¥0Ml`(WZQ(”à 9ЪˆÕÄõĹââ ˆF (�¼D( â}Ä›Ä}¦j(((j(( N ­¦×Æì¨”¦&/kÃ1Mꪪª41‚S8G3‚q<02R63383>2R061631?02R4663002X3663RRR63383>101<5\SZ3z102:sSS33ð0000󃣣ôfôfôfñcƒƒÔDôDöDñaaƒôDöDôDóaacÔDÔ$ÿÿÿÿH^?I˜ô¼s$Ýl_‹ÅŒê ëS9�DbVîž#®'°'qhÄqoÈQD0\�>I_†Î]—&³²7&xÃØ+ÀFv+òo,¨º‚>H&¸b¬VFc7�[�&Ü�ð–~ÚðñÄ´¦Ñ3¶Ÿ(Uã§ïgr¼N‹”Ø*)~nsÔ«ñ+µ©HÛÓ>§ÆÛ q™$né2d ‹�íüó«j¶}áä“?Å(áæˆÛjrÉÅ%‡Ö •h9¥7I©\ßÌÃí¹ žR¸£æ<­º ñÚ$¶9ç1µJE2Xˆ!ˆ*¢;™fš1fæe32¸u'bùlþ:ZÍåSçÏUÍ«Ãs%†“q ÏÕ †{a·hÏ“!íÛüÊýHÂ'¤—j°Z­Éª|ø×ù1Ê—§D•4kõk[¿KÇ¥¦‹Šdí H9Üg�¡n \� ²o˜Xõï¥yOž ‚bqÛH©þ&_ä3îEn ñU4IŸ—©¯éÑcÌŒTfšR¤d|e¢ùtI“Ž;�ÃÅ—PpL ˜’nlUU™U J0€€’°0 p 1�4140 t4q1pp$#"º% P0£1ÝÕÙ  ÄÔ@ ` X ` Úÿ ‚ ¢ ¡p`pìðÿ?äê2­ËgQ—cØimãQ<é–yÝoÄ–4í9lãó®`€-ê4¿-_Ž0Ž(Œ^†¾]^^^_/^�/_`ð__¾Â_¬a{cag=­Åwî š{*œšXòò�!ÿ�#ÿ‘ÿ³ó¡"xšü@€ A@r$r$ÿÿ_ bdaw•øÅd1-d¢¡a©�Z1·òa™`adÖÆã«aÎNa> F_ BɉÐghh›ühœ3u4¼h͉Vý4˜1ücÎ̘hh2ÌhÎfmc •÷¶ÂüÂõ“µù÷ìÉÇ¿¬aÂÁaù£‘‘b…/o’¢hdñŽâ�ˆqëáô”nV\rÀò6Íû¨É—MêÚ±Œÿðý&¯!º÷!ð¦*fØÀÎpbPB0@4VVUUZ É òYZYZ3 1½]^]\WV11sÞ[XQ<4PQT<�QR�"<3[^W}!âCZUZ_À733`[\YZ]ü*¯L¯JhÁ /OOŸÿŸ44ÿð]&6  f@€BBBH```ªúß¿ ð°°üû¿$$Ï»üû» $»¿»¿»» $$$ »¿»¿»$$$» »¿»$$¿»» ¿$44 4 HHHHHH'//ˆ'//ˆ'/ÿð?/ˆ'///0/0/0/0/`0(o0(o0(o0(GGGGGGððÀÀÿÌÿÌ''@!!! ÿ``UUUU ÿü`_`_`_```À?ÿ`€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?ÿð`€`_`_`_``00?ÿ``€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?üÌ`€````€``ÌÿÿÀ``€`_`_`_``ÀÀÿÿ``€`_`_`_`ÀÀÀÿ```€`_`ÿÀÀÀ_`_````ÿÿÀÀ€`_`_`_```UUUU       @€@€@€@€ÿÿÿÿŒ/--/---Š---Š---Š---/--/Œ--/Œ--/Œ--/---/Œ--/Œ--/Œ--/--/-Œ-/-Œ-/-Œ-/-·-.]--Œ.]--Œ.]---/--Œ/--Œ/--/---Š---Š---/--/Œ--/Œ--/---/Œ--/Œ--/--/-Œ-/-Œ-/---/-Œ-/-Œ-/--/--Œ/--Œ/---/-^/-^/º--/-^/-Œ-/---/-Œ-/-Œªªªªôf````öföföf````öföföf@```öföföf````öföföfô ``ó¦o:f````öföf```@ödöd````öföf````öföf``@`öFöF````öföf````öföf`@`”iO``@`”ojdffoUUUUÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©ÀÌÿü©ª«¬«¬«¬«©?ÿ©«¬«¬«¬«ÀÀ?ÿ©©«¬«¬«¬«ÀÀ?ÿ©©«¬«¬«¬«ÀÀ?ÿ©©«¬«¬«¬«ÀÀ?ÿ©©«¬«¬«¬«ÀÀ?ÿ©©«¬«¬«¬«ÀÀ?ÿ©©«¬«¬«¬«ÀÀ?ü©©«¬«¬«©0?ÿÀ©«¬«¬«¬«©Àÿÿ©«¬«¬«¬«©©UUUUÀÿÿÀSÀÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÀÌÿülÿÿ?ÀÀÿÿ?ÀÀÿÿ?ÀÀÿÿ?ÀÀÿÿ?ÀÀÿÿ?ÀÀÿÿ?ÀÀÿü?3?ÿÀ?Ãÿÿ?ÿÿÿÿO1k¨¦¦9ŠÙÄn2½¨P2Û¨2 Š;lN=Q2î]ªªªªÔBñcca²B´"’"ñccc’"’"’"ñcƒƒÒDÒDôD󃃃ôFôFôFó”+‹‹w“PGSùk‹‹$S3ûk‹‹&S3û­«‹&Q333û­«‹(Q333ý«‹­*3331û‹­­(31Sý�m�(GS%Uû©«°&  ÉËûðC&Ð/ßß¿¿h�4%#ÿÿÿÿ´¥,qq°=.,�à�‘éf“Õöá½�lêUŠ·æÆ+ôŽ­øE¹Óe°{üzO,ž{º#V§u-T¶�Tù/Õ‘j¾õ“ÌzÜkQ ŸO8º³#æ¹Þe’ REL(d§rèýþbÙÆÀÉØ= sKÁ /yßæ½›ÑÅ¥¦Ûç )kU…û*ÏGËÔ¦_ë�Òº…æªßàÚÙÚÙöâ%B NIœŒÏéÑŒÏÜòA¼%%[ÚI¬Ô°4 È:Û¼ê7&-ÇP9W÷·ú7Hñ¢j ÷“Þ¼¤äÕ =-F;ýÇ�€ÙvóTOŠJ·™ÝÎ]°ÿK({�¹…’¥UUªëˆˆìúú@D`@ar00£1Ã3Ã1À@„„ÔÄ™–P�™€…Á��@!Ù™@�‰Œp&Pa�!QD9¢ 3‘ÇZS2Øøøùÿ "7ÿCRƒÿÿÿÿ7:õô½—öcï%ß-7þÝôÒŇò†¿»(ø1¤ cŒªR¿†j€ú2Ä| O%Óv_wu[Qe­ìƒk©Ò-1M)8Ûõ“¼ÁÜ®¶_áߌ¯\ê÷»éæ— ƒÊJAb(�¸ô-ÚwÙõÁµ>¢nƒB$ìû¢D°&È'ŠÈ¯&dÁ?îiÊ)ô܀̞þt¦x¼èçãäãäÝÚ61Ø/•e¡¾íÒ¡¾÷å2ªðÙr¥ˆÎü;‹Á–Ë|P‰ØAûÞ‘q²ù”h’;*ÖÔùRÍί 3múiÙ-ƒs&4‰¨åÊ—bÓ»æ‰LÀÖt'˜“ƒkF,­›U©ªªXHhbÀ€`€ Á€€�À@„Ä@ð‚vVXa. ¸VVV`0 ¸VVX@0–XxxB0–VVV€¶VVV€–xxv –VxxcQxz˜‚#-X˜˜ÁZyg‡‡‚GÿWUú{yXäiø7b:w±ÍÖq½�¤o&‘w§2¬ãÛ¨ÆïI«e?6²sårËԾͳ–/ç}ÛíSô¥÷],$^æ/ç·\¸å‰,^ì+ÿÄ Ø¿/’…l˜��€„€`€€;ð ¡!ÿñ#¾!4_óooW÷ÿ( u8ŒÀíƒEß@�1›®ÅËë Iss|v(¡Èª�r$ @ t"RBrB22@``rRR£3å3ãS„�‘À6ïÿÿ # 66=ÿC_9rÅ#üÿ¿@[’[5À+ˆ..‹Y.¿#$€I¹�í”äå\¶‡’Ú‡’HNM¿À¶íÆZÿ PãºÇÓ¥mþdrE²˜Þ2úÅËxd4RæÏGO•'–a`~`Û;º;œ9¸9Þ;aã;aþ9Eþ9EÃ¥–s–¥Mªê¶©f�¿ž¿¿dO0dO¿¿¾ŸBO.DO¾¾¾¿"/,"/¼œ¾¿"/,"/¿¾¿¿$O*$/¿¿¿¿FO,dO¿¿¿¿DO.++++- +ÿóÛß  +&(,²Ëÿ 44!2!0!**,.=)ÛŸÛðаÐ&Ë,2ÿ( üªÿÿý¹ñÝ;'¿ ð-&(Ð/ïÿÊ ÿÿÿÿ_0;©D~›ê­™ºm’̆|ÌŸ‘ÓýÌDžV‚³§k5”ö'œž*�jÖz0 x€h–@.ÍÈEÁ+‰e½º† ÇN�" ¬þ•ÎÕ«ËÌbµ-E+F÷µMwK ï Y§mzÃ¥“Ðìý2‚’%Fø¶ýч1 ­)X/ô“AÑ× ¤ÁÑ EŸ ;/ÔÎþ±ùS{›ç(ö(TÄaòzrßmw‡¿ûw]î@¨ÐpñTÃhê�žuvuvßëóî ¯¤šÂ¤&YKZëˆñüÐ*Ùzž,ÖZ°5 ªvÅÆ�ž÷øo¤âVÈâéPF•Y @ÕIÅÁ›VVªªd "%ˆ£/j2#«ƒ³1%%%,6¹›BK‚ )®ÌA@&­OVVv[�ˆúm†ÿ„DZQ c/B3ˆÐõeeev”iF”oôFñ#3Í:�VVXwiF”idŸ@4‚ÿÿÿÿ·x"A8B äÀ�QcêgÛON,´Å!ÙNR§0\4‡ «5�sÛ‹¾®cP€W’’o0s@Å,䛽!«›�`¨üeòIÚ Ô‘„[³X„=”ë˜ý°ÅÂͳ¤÷8%ŽU"ùŸ­OË�Ø+ìÜtÕú˜T²ºJÔð“Oâù¶2q¤ä:D.vÌ­¾�”/0×ì&Û¢ºöP¡f<ËÎç_º ›^:’d%‚%pNCS“…¨=1]$[ŠÉnmn R�f/Ùó®‘oµ»SüZè¥Ç3{¦2 °7n[мèHY$?’a�#Ï|¹ò5PªjYVm‡©§ˆ§‡…†……e†‡‡gˆ5gg‡h ‡eef#+‡…ef #ƒMÜ€ß'™™%B2#"WDEX£ ¯Ñæf 2#"2%T(ä©ðù™›® ºùl€ÿ~×Óø¢¿þ5 Ñ/’1­fWÒÌóï„ö/§goѱÝÄ$‹ÖwîÍ^­sس}bA¶·eI–ÈÈS’·?@›òxÝÜ<Ô²t¢Ààj[ÎÓî8º�N¿Âkq¸Î´@ZøXáb˜ß%mÕŠ&ÁÜcã¶�Ç5—?&¤ÿeCOsOCcA&%(}X¢ ÷ß'²|Ò]‡hi˜dÅsCáY(X›þµÂÆf !"/Ðô~�ðû  Ík³‰çÿăðÏQZø¿ÿ – d±LfÊÒ“  ò¡cß÷êªV)¦Ê D'Dgf$I ($TQ''%5\SK"#) 2Ïüÿ¯ÊÿÆF'Ÿ‘©o.ºú�¨ø�öñÀ$ �ˆö¯¦ÿa6¦jæë]‰Ÿ PC$v!!C¼eCEAA¯&o246Z5`b@B6C!C!lÃeMÃ^êòÁ£¤Bgȹ0À°ýìÏ­T*Ý©ªœ`V@ÿÿ4;<vVV¿ÿÿ8jdžîU |ÌÒVhghà$“ÿ  ãü*Þ6Õ¤>móÿÿòIbœhëì©Þ¢.<º@UU—e� `I&`„&f@&`Bƒ¾ÜÁ6sr_VQ^sl †ffffg?9tUìðúÿù©;à $Ãÿð<ONc`ïššÿ±%’@¯êÿÿGG ' 'üÌ ÌÏ##ÌÌ ÌÏ##ÌÌ ÌÏ##ÌÌ ÌÏ##ÌÌ Êo (G??'('('('('@'@'@'@@ @ 0     '(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000(@UU �€ÿÿÿÀÿÀÿ0ÿUÕwUÿÿà`_`_`_```ÿÿà`_`_`_```ÿÿà`_`_`_```ÿÿà`_`_`_```ÿÿà`_`_`_```ÿÿà`_`_`_```ÿÿà`_`_`_```€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ```à```à 0Ãÿ```ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌÌÿ```à```à 0à```Àÿÿ``ó30Ã`à```à`` `@PU HB€@�£ ‰F¡;ÿìp ¢Ä€¿hÐ     " &(   :DFHB@   RD^`J0 RLZ\F8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<68:<*,.0 "$$&("    2$>@6 >8FH>0  F@NPF8  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4       " &(  &024.,   >0JL6 >8FH2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$  .(:<*  ., 68&        $&("    2$>@2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  ‘    5? A5? A5? A5? A5? A5? A5 ?A)')     =       5?A5? A5? A5? A5? A5? A5? A5?M               1                        r­                T04_rockT04_rockÀAÂÃðAÃõÞÁäÂl%lÀAäBÂðACÃõÞÁî%æ 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ(ã¯;;HøÛ€;;H]‘–;;Á9åÁ¼ÁLêM6ºº^ÿÀê6666YY$cU.oS.mO,kOÿÀ,iN3.oV@�ZP½LM+ž‘Ké96h5ƒ4�$  �>döÅ„dZO’c§q> düUFvUu $bA)AbA ï°=`Ä.:WàÁW9a[– 0?ð?`_ @_ @_ð? @_ @_ ð@_ððÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿðU_€U_@" 1_@1?@1?ÍÀ UUr]ð8èçcÐAꀿqÐ  "( "( "( "( "T37_rockT37_rock„ÂfÉÃ@§Ä„BšÙ²Ã€£Ä† )† „€£DfÉÄB@§DšÙ²ÃÇ)¿ ýÿÿÿ3ÌÏÿ-.]--Œ.]--Œ.]--Œ.]---/--Œ/--Œ/--Œ/--/---Š---Š---Š---/--/Œ--/Œ--/Œ--/---/Œ--/Œ--/Œ--/--/-Œ-/-Œ-/-Œ-/---/-Œ-/-Œ-/-Œ-/--/--Œ/--Œ/--Œ/---/--Œ/--Œ/--Œ/--/---Š---Š---Š---/---Š---Š---Š---/--/Œ--/Œ--/Œ--/---/Œ--ªªªª ``ó¦o:fó¦ffofofffOfOfFfofofffofoffdododffofofffofoffFoFoFffofofffofofdfofofffUUUU ÿüefefefeegÀ?ÿeeefefefð00?eegeeefÿð00efefeege?ÿð0eefefefeeg0?ÿðeeefefefee00?ÿgeeefefefð00?eegeeefÿð00efefeege?ÿð0eefefefeeg0?ÿðeeefefefee00?ÿgeeefefefð00?eegeeefÿð00efefeege?ÿð0eefefefeeg0?ÿðeeefefefeeUUUU ÿüÀ?ÿeð00?eÿð00?ÿð0e0?ÿðe00?ÿeð00?eÿð00?ÿð0e0?ÿðe00?ÿeð00?eÿð00?ÿð0e0?ÿðeÿÿÿU]„{r™¬µ@(1'' &k'E£F‰ca­ÓÊÓæñùÒ'''cEEEÝacEò´¡¶ƒ–)zÜ'N�C 2E'2ÈzzJ\h^ûˆ¨¦œl¦¨lˆ¨I\J\L\J\覨¦B¨¦¦q¨¦¨g\,^^ z…ˆlŠÖŠˆlŠŠ¦è–G˜I¶IÒIŠˆlô¦Šl¦¨N#ÔÝÔT\òg'º�“ºÎíö4"]|¿ñç{ƒ°ÿÏå1WpNº\?@?@?@ð00??x£\?@ÿð00?@?@?x£?ÿð0\?@?@?@?x0?ÿð£\?@?@?˜{\ï¿U ' # # n„j ¦# !!ÿ3?S?S?ÿn„l¨!!!n‚j¨! !!l€hª!!j€hª!! !ÿ?3??ÿj‚hª!!! j‚h¨ # #%rˆp¨#!l==?ÿ~d¨ð00?dx^¨ÿð00dx^?ÿð0¨dx0?ÿð^¨dÿÿÿA0É,ýݼ›z£� &"<7 *`D: ×ÜÁ鍊‹v 볈·K�/ü?[_¿}gq½ñg u)ø5°99�[=ÂU„GHG¦y ö"¥iÆ›ô¿âÃq ë Jר©F…sØ‘Zw HnR/ÒßþX#¨#‰!ƒ¢ìÏtR7NÝJÙ4ècÑb …W>xM÷[5ç�YeRy< ?ðͨ]€ªªª@1cCCP‚44454423 4445444546VUVT6U8\|""bp5:3uðÿÿÿi02$$ ¾æÛ"¢§´*ZÜ�:8©)>fEŒQh â ½*u[ReIKÓ+GMieSh1eq_k(GUVgê+Û-+K=/ƒ¢sts®�&– × ~¼›Â�~ � åÒ‡Xi 7¾“HN> :`X!ŽÔ(kÔÒoàrGdÖF<7aV[¥kÀC(4["DœÌ¯¯FhøâÒ Yqü00?ü Œù…CCOðŒùCCCO…ðŒ0?ÿðù…¢ƒ†—äUUõUÿý€ $!�ü?ÿ* ð0?#,ÿð0!,?ÿð #0?ÿð*# 0?ÿ*ð 0?#*ÿð€0#*¿ÿú>  +(2ð0?&ÿð0&?ÿð0?ÿð&!YZýAÿþ!öO¯ÿ˜ßô7ÿ o¿ ššx!!+ ¡x˜ ÿ ð·ÿ ÿð`  *…„£¦   ­'âÁÀyzéêè奔  Ê/ˆÀ& ?ðAO”@ðÿ÷ÿA_39мäð«ýSŒ‰½_6-0.¼GX(t"ij“”Çרì\åW‹1-QY#;˜ùbQûîÇJ¯šSZnÈtò&¢*ÖÕ‹û«—YºÒÎ?ÿüý>›hf0•Ë.É—e×2óרeŠÌ»}‰Q´½ec¶xec ‹þ8 ±­ïðw%$èTfÝß4u$Nž÷Ðk Û™.%"Lެîè#nþ·º�ÆoêE^Ø¥™[ªµ¹�Ý´Ií°Íj<JIð,'UUy@ÿ“Çbababaf`0c@à?b_`?3~¾[\Y`c`eãŸÝñTQRQVQT?À WVS3ð0÷RQRQTUXWððÌZWVUVUZYÓ°ã»ZYXWVWTO ™ÿÊ_Ž�~ ‹Š{nWD4ÿÿàC3 €ªêÿ_ð°°öû¿""o»öû» "»¿»¿»» $$$ »¿»¿»$$$» »¿»$$¿»» »$$¿»¿»» $$4 4 4 HHHHHH'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿó3Ï€ÿ `ÿ `ÿ Ïó3?`ÿ ``@00Ÿ@0P@U!!!!!!1ññ‚‚‚ò‚~UUUU ÿü`_`_`_```À?ÿ`€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?ÿð`€`_`_`_``00?ÿ``€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?ÿð`€`_`_`_``00?ÿ``€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?ÿð`€`_`_`_``TUUU€           ÿÿÿÿ/Œ--/Œ--/--/-Œ-/-Œ-/-Œ-/---/-Œ-/-Œ-/-Œ-/--/--Œ/--Œ/--Œ/---/--Œ/--Œ/--Œ/--/---Š---Š---Š---/--/Œ--/Œ--/Œ--/---/Œ--/Œ--/Œ--/--/-Œ-/-Œ-/-Œ-/---/-Œ-/-Œ-/-Œ-/-+.]---/--/---/--/---/--/---/--/---/--/---/---/--/---/--/---/--/---/ªªªªofoffdododffofofffofoffFoFoFffofofffofofdfofofffofofffOfOfF:ffffdfffffFffffdfffffFffffFffffdUUU00?ÿgeeefefefð00?eegeeefÿð00efefeege?ÿð0eefefefeeg0?ÿðeeefefefee00?ÿgeeefefefð00?eegeeefÿð00efefeege?ÿð0eefefefeeg0?ÿðeeefefefee00?ÿgeeefefefð000eegeeUUU00?ÿeð00?eÿð00?ÿð0e0?ÿðe00?ÿeð00?eÿð00?ÿð0e0?ÿðe00?ÿeð000ýÿÿß00?ÿ£Žñü˜ÑzV–_ÿÍìz2ž”C¹/rñQA†,ý<¼b¢×¯žEC ö«#.!v /*/1Ã1/«A?+?ƒ?CMMÅü1kÃ*1kÃf?è]�]r{sŠ%Ýl%nl Cf—�·ÊÓùÓ%'gCC ßaE%zñ ðˆðüð¹ä‰/Üä§ ƉŽñ«Ó‹Õoµk‚ØÚ´¼¼ø;¼Úö—Ç{ü{Â{b¼žd{ÚžbxöždbÅccca' NNŠˆ¨¦¨¦¨ˆ¨Š¦¦¨N Ø“õÅÀ±²â¯×õ¯¼(1O/ù_¿Š00?ÿx^ªÿD�$�$oÿRhP´   RfL¬    VlR¬   XnT¬  ú¾º¿ \pXª ÿúº²   \pZ¬ XlT°  ThP®   ÿDOdOdOGVjP3S3531313135uQ&ˆfDDDÿÿÿß³´IJ)pÜ^htãìc.+Y{]鋆í¼è¹šFœÓÜE¢yn„öÐÞWЛ÷ßÔú푨x$_N $æŸD„Â@×'?�I6|ÜHN‚ÖЂÝi²ÁbÈ€ª!®®¦`X´œló]½Æã²æòJå•SéE™Ý'3·S©êr$QºÙß­ÑoïùݼÿüÕc91|µ‹GG~±`]Qz]G#7óaK‹ŸÕÕQû­©18` üdj‚úŽßÄ„(f8 ‡¿¶½‘•]/`-5˜7D™œ™¸üJn7n\Ïè§Ý1Ä”ž:,.ª–j™o�‡oQ<3(òu£KÑh3Uæ’[[dWß/'\PNJ.F0#YiC'A  /5Zó°[Í{•¯ü–Ç7ßm…lú5:›9 ‰KYUU•°?ÿ$$"ÿD)D/hnÿ-ÿõ5w6ÿÿð!0?ÿð*!!1?ÿ,ô$1?*ÿð°!&¿ÿð’%:¿ÿð&# 2?ÿ*ð�4ð+. *€Ÿ ð$¨`S1ÿÿÿÕúù‘ã�§®*�>0×zçìl£‡*5´4�z¶Ù—C ëÓ}èjŸ«.–dˆ'a°r7_À.°{1Ä mŽ�Nc›;µ^�8ÛŒ¨‰uŠrSãì:�W@qm»Ž‰)N˜_Ž+”Võ¦nãëèq¹žubbãïÖ×ñDÆ›Å%Ý*èMüÊÖ]ÕŽ¦/M!2?9li¦bãù8lWÙ<ž±#ƒçÑÿ‰c·„“³Ñó7½ÞA éÞ›¢áC@��.’€ 3ž{Có5êÊÝbbbnªV€4oM%2: B 6È/ªOlù@!"i"i"b)DID)D!##8%%5?UÿÑ$u5" 2ºº°2ÿ‘ÊF ¥fi_`ÿ`]TSNMù4ÿÿ.' #! ,¥˜Où#,|šÿx�Íÿ|ÿÿ!"*¿ÿÿ +-.ÿË/º !ðò™ó !ÿøs&#$!™ÿÿÿíe /ùª‡v) †šsÿ ›\]º“ð[(燢oÛÑÊfËŠ#?cÏ�i•›¢)üSÀ’lðUUUY`Hf™&a &d f@ `a � †02¼0¯ ijg\Wÿð$ûVïVSReTø'`ÿ«ªþ0Ÿ@00Ÿ@0000(o0(o0(o0(GGGGGG ' ÏüÏüÌ ''ÌÏÌÏÌÌ ### ÌÏÌÏÌ###Ì ÌÏÌ##ÏÌÌ Ì##ÏÌÏÌÌ ##ÊoÊoÊeo»»»»»»»» '////?__Ÿÿ€ÿ ``@0000(@T0ÿ@@~‚~UUU00?ÿ``€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?ÿð`€`_`_`_``00?ÿ``€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?ÿð`€`_`_`_``00?ÿ``€`_`_`_ð000`````UUU          --/---/--/---/--/---/-k>¹º={ºð={ºfffffFffffd÷ÿÿ±ðÏüïCffhfï"ÿÏÀfhfï"fhfÏü�Cf�"ÿÏÀ�"kÃÆl Ca 2Ä¥F¼ÚöëÚ¼b­ñÌC#%ÍwmÿÿÀ}a_�}}}*BB" "$$FFFDÿÿìï?ÃEÎï?ÎàE¡ 4 ½ ;èÂMÛÊYN��<ˆ­öqPO?$^["ÿe$d6ª Gt@®d ÏаÆÂ½3f쪋7ƒÝýTTM;ݧRmJ´J!@"¨ 꼚\ŠÎ�y]Åëo•RÎöøVõv7{|{ó˜šm@ÿ¡¤d$FB 5U1BÒ0$$ >@ÌÌÌÌÌÌÌÌÌ̦ÿÿÿ8`_ @_ð @_Ïü ÿ___ €ÿÏÀ___ €___ € „âF€ m³ÿYè„Â`£Ä€¿‹ Ð     " &(   :DFHB@   RD^`J0 RLZ\F8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  U   ECEECEECEECEECEECEECEECEECEECEECEECEECEECEECEECEECEECEECEECEECE  "( " T38_groomed T38_groomedpÁîÎÃÀ«ÄpA\�ÁÃ@§Ä   @ @ pÁ@§DîÎÃpAÀ«D\�ÁÃ¥ � ÿÿÿÿefËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeÿÿÿÿ2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMUUUU ü0骩«©©ªÿÿ©ª©ª©ª©«©©ÿÿª©ª©ª©ª©«©ÿÿ©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©ªÿ30骩«©©«©« 00©©«000©©«000©©«000©©«030©©«©©Ã 0«©©«000©©«000©©«000©©«UUUU ü0ÃSÿÿÿÿSÿÿSÿSÿSÿ30à 000?0000?0000?0000?0330?à 00?0000?0000?0000?UUUU ü0Ãefegegcÿÿefefefegegÿÿcefefefegeÿÿgcefefefegÿegcefefÿefegegcÿ30Ãefegeg—eg 000eËeg0000eËeg0000eËeg0000eËeg0330eËegegà 00—eg™—0000eg™—0000eg™—0000eg™—UUUU ü0ÃXÿÿÿÿXÿÿXÿXÿXÿ30à 000B0000B0000B0000B0330Bà 00D0000D0000D0000DUUUUÿFEFEFEFEFEÿÀFE00FE00FE00FE00FE??F[F?0EF00EF00EF00EFÿÿÿ/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßÿÿ30Ÿÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@0TUUU3‚‚ ‚‚~��€ ��€0ÿ!!!ññ‚‚ñø‚‚~0ÿ!!!ñ‚ññø‚‚‚~UUUU ü0Ã`_````€ÿÿ`_`_`_````ÿÿ€`_`_`_```ÿÿ`€`_`_`_``ÿ``€`_`_ÿ`_````€ÿ30Ã`_``````` 000`à``0000`à``0000`à``0000`à``0330`à````à 00```à`0000``à`0000``à`0000``à`U €    ÿÿÿÿeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeÿÿÿÿMM2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMMUUUU003©©«©©0à «©«©000©«©000©«©000©«©000©«©©30à «©©«©©000«©©000«©©000«©©000«©©30ë©©«©« 00©©«000©©«000©©«000©©«UUUU0033?0à 0?0000?0000?0000?0003?30à 0000?0000?0000?0000?330Ã? 000?0000?0000?0000?UUUU0033eg™—eg0à 0ee™e™0000e™e™0000e™e™0000e™e™0003e™e™e30à ™eeg­0000åg­0000åg­0000åg­0000åg­330Ãåg­¨Æ~ 000˜$Æ~0000˜$Æ~0000˜$Æ~0000˜$Æ~UUUU0033D0à 0D0000D0000D0000D0003D30à 0000B0000B0000B0000B330ÃB 000 .0000 .0000 .0000 .UuÕU0?ðEF[üüFE00FE00FE00FE00FEF[‰-.§¨ ¯ð000°é‰ 0000é‰ 0000é‰ 0000é‰ é‰.­¦±²AÔÓŸôóÀü000œ›1ŸÀ00001ŸÀ00001ŸÀ00001ŸÀP•UA 00000000Q' 000000000000000ÿÿÿÿ0Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@0UUUU0ÿ!!!ñññø‚‚‚‚~0ÿ!!!ñññ‚‚‚ø‚~0ÿ!!!ññ‚‚ñø‚‚~UUUU0033``à```0à 0````à0000```à0000```à0000```à0003```à`30à ``````0000à```0000à```0000à```0000à```330Ãà`````` 000`à``0000`à``0000`à``0000`à``U@     eÍeeegefefefeM03©©«©033?033˜$Æ~˜033 . 0?ÿ1Õ6õIŸn0;;0Ÿ@0000/0/0/0033`à```ÿÿ8ÿpÁ §Ä€¿E Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" 5        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2%824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T38_powder T38_powder„ÂîÎÃÀ«Ä„B¤°»Ã@§ÄÈ È„Â@§DîÎÄBÀ«D¤°»Ã2 * uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/0/0/0/^/0].0].0].0]¹3333¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0i»îº3ÌÌÌ.ø`@444ô S¥:S¯v3333.44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿ.444ó¥:S¥z .ÿøCCCOz:S¥:S¯ÿÿ.d444ó¥:SzßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©Ìü0ꩪ©«©©ª©ª©ª©ª©ª©ª©ª©ª©«ÿ ãä©«©©Ì 0«©©«©À©ÿÃ3ãä«©©«©©Ã «©©0?ð«ãä©«©ÌÀ0é«©©«© ©ü30ãä«©©«©© 0À«©©ÿ«ãä©«© Ì ©«©©«ßUUUTSTSTSTSTSTST7SÌü0ÃSSTSTSTSTSTSTSTSTVÿÌ9?Ìà 0?ÀVÿó309??à 0?üT7?ÌÌ0Ã? Vÿ339?? 0ÀÿT7ÌÌà ??ÿÿÿÿ–Í: f‰7dãÊ´Íå"¹èpLnp¬n±n´E´C²CFDnCop´E!ÖC#ÖC!q¨èÊèÌ Ê‘ÌIÌí©§PøL´´CnpLÁC²C²C´CøC´C´C!ÖC#Z+ “\Ä%„j‘à´N’­8Nnp¡C�C´C²CåC!²C!ÖC#ÖC!ž×æùZÓ'@?o¾’.¡}ÿÎLpnŸC²C�C´CåCEøCEÖC!ÖCEù Z‘K)¡MœpØ.Ã,x‡²²ÖC´EøCCC"’Ef’Cd}Cg\•Â+ä Éoš. Á�t”�°Ž¾ELCƒCôCVEE’CBÅCßwݵA=(;*;*9,;0? > ìü²Ë> V=P=P=R;P;L=H=JAE# . ÌÛ,²0 E!ßós2 , .Û,¿ÿ G#  ,Í̲Û .O!üÿ3s , .,·ËÿC#  ð°°pð-ð ÿÿÿÿIæ.šhYÏ3ôOöV¡� §5ДQèÈǤ£¢¡4½1ð�–©¤šÂ¤âVÈýÇ­tît=<˜ð; e“OWÑdÁׂFÈrez‹Ÿ¤£¤£TSáéPÀ𩤚¤[{?4˜Üˆ-‘7mpq]JëT’"6+*).-.-k äz¢èt¤â¤z–ñâÐÖ ò‹ ¥O°’˜›9; t}A-#$.-.�.T9=xË$¨�)Ðß3ýZvþ–CIéöE}²±ä.+’‰ÚÍD% it je¡ ŠáâDõÂ$2æ¤9™ùßÕ<2e¾ý'¤¸šy�·Ð�²ÍhœŸŒ[Kiªfš,ÔVí‹òPeee&þF”iFû#“r» .&Ðõeeev”iF”oôJ@ð0,MOVVVWiF”iFÿ „0…¸’±†¾¹’.‹ÓNÇ¡Ñý†mKtðV9§ª5ÂÏö�¾OeU•šÀ ’ø†f–"2#"W!2#%ÁæfnºëÁ¸À‰ðy™›®ºñ(P(Nfë®%p SA"¤#EE$#RT—"¦ ¦¶¶PÄqGõ]WÞ(ýñ<† ¢`ï�Ò ý  d±LÊf¬×#Ú¹-s¡-EQ¾Â‰æŒ†fæÀ/Ò“�òý  ¶?ÿÀ�¾«Ö5›gƒ4±™¿– fqdo d+77�ú”$C®ÀöŽ~OWoÿÿ¡»�ç{T5äïÿÿýH �<ó� z« Íš%¤'‡�ˆôá]Êi²¦¦÷ਿ“'ÿ<É ï™Õ‡jÁXLÕŠ hfYHÿ¨ø�ˆÿ% #/ºø�¨ø�ö1n€ð? ˆø�ˆÿa¨°˜Ö�høþ�ì" ¯lú¯¬ÿË(ÿÿ%_w]ûHÕ§S¨S‘%Þ_ùe; «=Q }÷ÞÑNM ÉÊÆô’O¢pc"'-Òk6K&ì_èc‘ÿKÉÊ ÿË€“ yz¢)$[T^ ¥Ý”Žÿðoò¬0"Lؼ»¼¢I.ü7B–KC¹Ìw½¨�Ÿ¼ÿ¾¾½ÿB¼ =—ÿxçJ©/õåÀ¦·oœ›ã(ÄáAcÿ4pG"K|Ònr… ³Õ¬ïQ©ª�²› Y–eVÕÏÿngjWVO\ÿ0ô�‡‡Þid#F` a.óFðýç_bÿA€&Hÿý/\aZY_oÞÞxqVH2»©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ2ãÍ``’Š�ÿ`’`G9�``’Ò07�b`P¼1œÿÀ6rBt05!q!su s c?À@'%DÕÆBÞìF>’K%eÞA&hKÿÀ3:KL ƒ .!t]/ô x­.üu–Mö¡‚NÌÿÀ: &` Ã`?/?`K,`@¬ Á€?d·ë«#©Ag$®ÊÿÀED$ef"C `@`?ð?`_ @_ @_ð? @_ @_ ð@_ÿ___ €___ €___ €___ €___ ÏÀ€___ „ UUræçVíø/%b A §Ä€¿qÐ  "( "( "( "( " T39_groomed T39_groomedpÁHÑÃ@°ÄpAîÎÃÀ«Ä   @ @ pÁÀ«DHÑÃpA@°DîÎÃr j ÿÿÿÿefËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeÿÿÿÿ2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMUUUU ü0骩«©©ªÿÿ©ª©ª©ª©«©©ÿÿª©ª©ª©ª©«©ÿÿ©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©ªÿ30骩«©©«©« 00©©«000©©«000©©«000©©«030©©«©©Ã 0«©©«000©©«000©©«000©©«UUUU ü0ÃSÿÿÿÿSÿÿSÿSÿSÿ30à 000?0000?0000?0000?0330?à 00?0000?0000?0000?UUUU ü0þ½¾%I\©ÿÿ¾½¾½¾½¾%I\ÿÿ©¾½¾½¾½¾%Iÿÿ\©¾½¾½¾½¾%ÿI\©¾½¾½ÿ¾½¾%I\©ÿ30þ½¾%I\?°_ 000g°_0000g°_0000g°_0000g°_0330g°_à 003000030000300003UUUU ü0ÃIJI?5-îÿÿIJIJIJI?5-ÿÿîIJIJIJI?5ÿÿ-îIJIJIJI?ÿ5-îIJIJÿIJI?5-îÿ30ÃIJI?5-%! 000X!0000X!0000X!0000X!0330X!à 00J0000J0000J0000JWuUU¤¡²±bÂÁâÜÛ¸fgbâfg¸bfgâ¸fbâ¸gb⸩®±ëÅWÝñÍÎçÕÖ,ü000op° ç,0000° ç,0000° ç,0000° ç,0?ÿ° ÊNÖ©p@ÿ𫬯° 00 00 00ªjUU1cq'p444744474447444747'1#000 000 000 000 ;1  0000000ÿÿÿ/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßÿÿ30Ÿÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@0TUUU3‚‚ ‚‚~��€ ��€0ÿ!!!ññ‚‚ñø‚‚~0ÿ!!!ñ‚ññø‚‚‚~UUUU ü0Ã`_````€ÿÿ`_`_`_````ÿÿ€`_`_`_```ÿÿ`€`_`_`_``ÿ``€`_`_ÿ`_````€ÿ30Ã`_``````` 000`à``0000`à``0000`à``0000`à``0330`à````à 00```à`0000``à`0000``à`0000``à`UUU    ÿÿÿÿeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeÿÿÿÿMM2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMMUUUU003©©«©©0à «©«©000©«©000©«©000©«©000©«©©30à «©©«©©000«©©000«©©000«©©000«©©30ë©©«©« 00©©«000©©«000©©«000©©«UUUU0033?0à 0?0000?0000?0000?0003?30à 0000?0000?0000?0000?330Ã? 000?0000?0000?0000?U0033330à 0�n¡ïÛ0000n¡ïÛ0000n¡ïÛ0000n¡ïÛ0003n¡ïÛn30¡ïÄU0033J0à 0 0000 0000 0000 0003  3]UU 00/¬¿°\÷øüû’ÉÊÙÓÔ40000’Ù40000’Ù40000’Ù4000?’Ù4öáÿÿÀýoÊ\Ô-GHÙ00ÚÙ00ÚÙ00ÚÙ00ÚÙ?ÚJÜU00¶Û °000000000000000330ÿÿÿÿ0Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@0UUUU0ÿ!!!ñññø‚‚‚‚~0ÿ!!!ñññ‚‚‚ø‚~0ÿ!!!ññ‚‚ñø‚‚~UUUU0033``à```0à 0````à0000```à0000```à0000```à0003```à`30à ``````0000à```0000à```0000à```0000à```330Ãà`````` 000`à``0000`à``0000`à``0000`à``PUU €       eÍeeegefefefeM03©©«©033?0Ÿ@0000/0/0/0033`à``` ÿÿ%ÿpÁ «Ä€¿E Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" 5        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2%824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T39_powder T39_powder„ÂHÑÃ@°Ä„B%ÉÃÀ«ÄÈ È„ÂÀ«DHÑÄB@°D%ÉÃ, $ uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/0/0/0/^/0].0].0].0]¹3333¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0i»îº3ÌÌÌ.ø`@444ô S¥:S¯v3333.44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿ.444ó¥:S¥z .ÿøCCCOz:S¥:S¯ÿÿ.d444ó¥:SzßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©Ìü0ꩪ©«©©ª©ª©ª©ª©ª©ª©ª©ª©«ÿ ãä©«©©Ì 0«©©«©À©ÿÃ3ãä«©©«©©Ã «©©0?ð«ãä©«©ÌÀ0é«©©«© ©ü30ãä«©©«©© 0À«©©ÿ«ãä©«© Ì ©«©©«ßUUUTSTSTSTSTSTST7SÌü0ÃSSTSTSTSTSTSTSTSTVÿÌ9?Ìà 0?ÀVÿó309??à 0?üT7?ÌÌ0Ã? Vÿ339?? 0ÀÿT7ÌÌà ??ÿÿÿÿý«þ Y-®krÀÜØbñò^^ ^e"Ç"I¥R¥š§Ï¦"¥9^m¥�à¥/ʧ<?¤aôìN N=”ãÿèþ¡*?¢–R-Š#w#É¥#§Õ¥1¥9¥0S§ØR¥# ¥�ò æsôÝÝg•Ñ…ôÍN˜ƒ ƒƒ�±¥1¥/¥Ê§2¥âì¥Éš¥w½§ä ¯@4Åéé5?r�hôB2ïí¾½¥í§`¥§¥/¥Ö<§�⥂֥âò»ѸC–ä6ý?º‰ÉQ¥¦¥¦¥¦¥¦¥É�¥â;¥â;¥âèO¹Ñ)¶•A4 3ý3™®R;¥¦¥¦¥¦¥¦¥â;¥â;¥ß»î¹+7*77; A=7 : Ìüóß@r=tAtEtCtEnCl;f7Q,U1;7' QPñ�±k8.,.0.24Q&M/71)'ÿW_°k�Oÿÿÿ:,,.0046K"C-/+-7�‰q‡<.*,0266C"A--+ÿ-9'0C0Oÿÿ<,*.0286=(O-5/)/)0C0ÿÿÿÿBŠdgxÞFˆ«Œâ“bõ�ª–»Ê:“¬J1ÚÈ@è<®Ó/“bÅ¡±@ Üò¬P¸qß|ób”ÉNkëF>í%/É�,ú0ÕÇØpaK€Ú8ÜÂbÒ>h©�§Å[þšz± ºvŽ)²šëKK´jßp>=ûÿ|oÁ´ ·¼²/�Eœþ©*•‰ˆL÷×k –_ÑU:¨Ÿ^®‘úç´¡•¦ÄÒ®¹T¸âßìÔæU�€‹¢k‰^TÚ�áûsU×׉ÒÍHG¹á΄®Îô>Î7 \¬ØLû ÓlãgüEQ0V¯…ЉÎÍcdzÎô>Îô>Ϊªªš B6’’B7@6ø�íˇYøNÿ¯øÿ24?Rb[d°÷Ë©‡úö¯èü�ô!ñ†#2VO�xxx}�hø�Šÿa`@ðùXíË©üøïìþ¯öðfZf¯z˜x!¯Šø¯Šÿa0¬îÃ^  ÷‡©Ëúø¯Š%ÿÿÿw!õNÇÍnP¹äOçwÝÙÃ’óÌO˜ZŽ¥¸¯ã½ ¸—íØÀzBµPëá/«#²´]d&L#b ¬©¦¸sÆ`RFÙ*ày'^N¡\ЬÛ$$!·7Í ð1ûûåÕñ.‘Lµ‘íd³€°žN&˜¢b·4 ÝÊÉÊèë"Ï�¥»Ã:Mªk V!ð”W>JøGá‰/"(·É¿­j!Ï¡ò2O¼+•C‚œt÷æe\V¿g¹­…|BOÝ÷Û§ÙωvhÜ\ S”© –àDCëüðÿƒxø„ƒ¢ÍÕÑhÑeAôª[O î_y�8?”­Ï®CDª¥ie“ëËëëÉ‹æ0÷�Ö´põ¶3�:¿¾¼¼º¸˜_µ«‘î äì¹2 02S3H¢Z!##!$ú10ŠÂrP0à0PI&$èX�&/<&`‘!†ù]W]¼!3 šš4žò5¹“Sø ÇÒ|°ÐYx]¥YÀr9_by*£ã:Û(oÅÆ D^³˜�l¯dLtÿÿÀCß³ÌÖ¶gæ°°? m).)�çVUòå�ÎKU~̱ÿ×.Ì�ÿÿ)Îô>Îô>ÎpXV™! ˜‚0ÜøÏêÿ�àÀ2? jø¯ªÿ@06ÿÿ  ÿL 6 ¯Šø¯Šÿ@0S6ºø¯Šo×]sJ1Uô*t!øÇÌé S幜î³Åáìç�³ ÷Bú� ˜¤’ Ó-·V��Ü~(]µkêi×ÿá†'•1ð  Àÿÿ ´�…_;7!pIÂ6þ�­ Э®¢ð¢àæÃ²®ŽEU=nÇ3ŒÿþPnëìon¢ÿ+Ý_ñÊì�œò_Uc¦‹ÎÍJI¤¾„÷² Éï¡ï1U­¥ÿÿÀ�¼»ÎÍcd¤Y¦e’¼ÜÜahmjòTùàÿÿ©OJ-RB„’ƒ,b[�ðÿýaXÿᆠ  ñf#T*ÿ �zÿš‘gZ!`7óü&alobýí©2  ñ'\oÿÿz˜xqotO8ÿßÏ)TUfajsJW÷Þ©Ë>uÿÿÿ3ÌÌÌ'(W///?_ð Ïÿ?'('('('('@'@'@'@`3333`@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'QUUU@ÀÿÿÀÿÀÿ0ÿ0ÿ ÿ€ ÿ@ÿ ÿÀÿßUUU€€€€€€ÿ````€`_````Ìü0À`_````€€€€€€€€ÿÌÿ```à`Ìà 0``à```Àÿó30ÿ```à```àà ```0?üÿ```àÌÌ0Ã```à``` ÿ33ÿ```à```à 0À```ÿÿ```ÌÌà à```à``UDUfffB@™™™š@@ � @@].0]¹¹¹¹»¹¹¹  0©0â;¥â ¸£X}­ªóÿÿ:*(4:0,*ôãô,9[”3õ’üoøÿÿX\·£Ð='i"SŠôãôO“£Æ]�’Äÿ÷) @'@``@0000(0` Lú¥•ÿ„ «Ä€¿ÑÐ             "$  &("         ,                  %#%     =                        r­                                ! s¬                   r­                                ! s¬         T39_rockT39_rock�AîÐÃ@°ÄÀA¸ÞÎÃÀ«Äl%l�AÀ«DîÐÃÀA@°D¸ÞÎÃè%à 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀqËôYäW�¨BïPïûTÌÜÚÚýã§ÑnÏ)‚aÁ­ðßPZ!Ë:><ÁfÕ"Ur݈ã (œçJð”Ý3øúV Ÿš©\î%`m^ Àì`G£ƒ2B½î]*ëÓ {rÃ?óóQX•í?¦¥ Ã3 ` ` "EÙ¼fB7Õ´bB £¤œ!M.b@¢ Ðð?`�B?ð?`_ @_ @_ð? @_ @_ ð@_ÿ___ €___ €___ €___ €___ ÏÀ€___„  „UUr8ÒêÍtd A ¬Ä€¿qÐ  "( "( "( "( " T40_groomed T40_groomedpÁHÑÃÀ´ÄpAHÑÃ@°Ä   @ @ pÁ@°DHÑÃpAÀ´DHÑÃç ß  ÿÿÿÿefËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeÿÿÿÿ2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMUUUU ü0骩«©©ªÿÿ©ª©ª©ª©«©©ÿÿª©ª©ª©ª©«©ÿÿ©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©ªÿ30骩«©©«©« 00©©«000©©«000©©«000©©«030©©«©©Ã 0«©©«000©©«000©©«000©©«UUUU ü0ÃSÿÿÿÿSÿÿSÿSÿSÿ30à 000?0000?0000?0000?0330?à 00?0000?0000?0000?ÿÿÿ/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßÿÿ30Ÿÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@0TUUU3‚‚ ‚‚~��€ ��€0ÿ!!!ññ‚‚ñø‚‚~0ÿ!!!ñ‚ññø‚‚‚~UUUU ü0Ã`_````€ÿÿ`_`_`_````ÿÿ€`_`_`_```ÿÿ`€`_`_`_``ÿ``€`_`_ÿ`_````€ÿ30Ã`_``````` 000`à``0000`à``0000`à``0000`à``0330`à````à 00```à`0000``à`0000``à`0000``à`U €    ÿÿÿÿeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeÿÿÿÿMM2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMMUUUU003©©«©©0à «©«©000©«©000©«©000©«©000©«©©30à «©©«©©000«©©000«©©000«©©000«©©30ë©©«©« 00©©«000©©«000©©«000©©«UUUU0033?0à 0?0000?0000?0000?0003?30à 0000?0000?0000?0000?330Ã? 000?0000?0000?0000?ÿÿÿÿ0Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@0UUUU0ÿ!!!ñññø‚‚‚‚~0ÿ!!!ñññ‚‚‚ø‚~0ÿ!!!ññ‚‚ñø‚‚~UUUU0033``à```0à 0````à0000```à0000```à0000```à0003```à`30à ``````0000à```0000à```0000à```0000à```330Ãà`````` 000`à``0000`à``0000`à``0000`à``U@     eÍeeegefefefeM03©©«©033?0Ÿ@0000/0/0/0033`à```ÿpÁ °Ä€¿E Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" 5        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2%824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T40_powder T40_powder„ÂHÑÃÀ´Ä„B�âÊÃ@°ÄÈ È„Â@°DHÑÄBÀ´D�âÊÃm e  uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/0/0/0/^/0].0].0].0]¹3333¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0i»îº3ÌÌÌ.ø`@444ô S¥:S¯v3333.44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿ.444ó¥:S¥z .ÿøCCCOz:S¥:S¯ÿÿ.d444ó¥:SzßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©Ìü0ꩪ©«©©ª©ª©ª©ª©ª©ª©ª©ª©«ÿ ãä©«©©Ì 0«©©«©À©ÿÃ3ãä«©©«©©Ã «©©0?ð«ãä©«©ÌÀ0é«©©«© ©ü30ãä«©©«©© 0À«©©ÿ«ãä©«© Ì ©«©©«ßUUUTSTSTSTSTSTST7SÌü0ÃSSTSTSTSTSTSTSTSTVÿÌ9?Ìà 0?ÀVÿó309??à 0?üT7?ÌÌ0Ã? Vÿ339?? 0ÀÿT7ÌÌà ??÷ÿÿÿøà™FlÖ<±Ê£‘ "0ð ÏÿÈ|�ÕÖÕÖÕÖÕÖÕF�ÕF�ÕF�ÕF³¦]z¦±_‚#öžàÂ]ÕÅ”EŒ0Ì$"…<òl$ÕÖÕÖÕÖÕÖÕF�ÕF�ÕF�ÕF^2`"º&¡66»v½Ö^§š¬k�ÕÖÕÖÕÖÕÖÕF�ÕF�ÕF�ÕF…]ÌT æA«Y Rà^.‘çiúÕÖÕÖÕÖÕÖÕF�ÕF�ÕF�ÕF?�ÌÑ¥ÚOÏÐÇŒ^¥Ì¾¡úÕÖÕÖÕÖÕÖÕF�ÕF�ÕF�ÕF?ÕÉòV»ÂgóÈù�ÕS¡úÕÖÕÖÕÖÕÖÕF�ÕF�Õçyî¹3 :w?C7 ' 3ð 7`PePoJ6<HF 2 ,@ÿÿÀÀ8q;IE3/7ePeH26LR: .]5=?5=ð03PePoÿÿÿN88>>6&()$I-57;G3ePeV<80,2.0#$G-37ÿ;I3PePoÿÿV>80,0,.0]/79;?10ePÿÿÿþVÐÖ.r‘>[xV—óÆóðO;ÞÍÎÍÎÍÎÍ·dÎÎ~v>Îô>Îô>ÎÜ仪$¹ôôçL?PùûŒsœït@ÔHxHT¯‘ÍÎͱ²klzÎô>Îô>Îô>ÎögžeÓûë,ÝËÆ{ÃO«RŸ2S4ýŒlóôÎÍÎÍzÎô>Îô>Îô>ÎYl›¸íñtQï�Áù±�ºIZsUk®ÍÎÍHGzÎô>Îô>Îô>Î^qΣEk :]âßÛ:ÿÿÿxxxǯ,q"zÎô>Îô>Îô>Î~`_VdŒ|þ?µÕb� Qš™zÎô>Îô>Ϊªªª `6´3ñO0 ô�©©©%[*ÿŠø¯Šÿ% :<"i�PbUÈð ù©#©©úø¯Šø¯öwn ñfAB�¯šššŸ¯#Šø¯Šÿ�T†/d„ðù@!©‡‡úø¯Šø¯øBòBFf/¯xxx#¯Šø¯Šÿ„B!D"fðL÷‡‡©úø¯Š'×wÝu�a…î5Ô׬zàù¥¢·À<\wx𙚬•}‘¾Gã¤ÞîFþ’Ì?GpÊIR‘\6ðCDtí€u*/åe#åÛÂ�”´óóÀª@‘BADCÿü¨Ñìù/aûÑ0"Ö’÷S”[7DC?¡ä]Çl�â0û‚¾ZüxEƒÿú«³( ŧa³ >ý,z¦Qÿw˜À—–fŠ%"!A…§!0€2G`_u‹3@! `0bfµs&€¬C23B1„u P]"I_B 3ð\W]¤dÎÎD°>Îô>Îô>ÎÚ*CîîV<%»�te—pØõ)Îô>Îô>Îô>ÎÆÿÿÀÉ�ÀÏu:8?)Îô>Îô>Îô>Î…«ûÜBÌ<¬ðWïÿÿ)Îô>Îô>Îô>ÿßüÎ^ïd±àjð)Îô>Îô>Îô>Î^6O}ÿœ�®#ÿÿ)Îô>Îô>Πhf™*ÿŠø¯Šÿ%) i�$ºø¯Šø¯öwO€ð? Šø¯Šÿ�2†° ºø¯ŠøÿæŒ & ¯Šø¯Šÿ„B&ºø¯Š_×]’¬‘¬ø§›ûð@"ϜǿÌOí°ÞÍÎÍÎÍÎÍÀ¤Ò¬¨ñ–h3IÃS¼ðÍÎÍÿÀ kl¤Hÿÿh-û†š‹Éô—6Uñ€lïðÎÍÎͤç¢^á]Uu¢ÍÿüÎÍJI¤ÿP%­TÿïÿxxxúÜq"¤ÿÿóºt3Ij’ô ÷‡‡ÿðoš™¤Z–i¢?ðÿô’1ôbahmleÿ0ô�©©©rS8@.óh·ÿ ù©efM>ÿ@ HßË(aÿ¯ššš‘x#oSðù"Yf!©‡‡ ú!Hf/¯xxxq#óddð'P÷‡‡©'uÿÿÿ3ÌÌÌ'(W///?_ð Ïÿ?'('('('('@'@'@'@`3333`@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'QUUU@ÀÿÿÀÿÀÿ0ÿ0ÿ ÿ€ ÿ@ÿ ÿÀÿßUUU€€€€€€ÿ````€`_````Ìü0À`_````€€€€€€€€ÿÌÿ```à`Ìà 0``à```Àÿó30ÿ```à```àà ```0?üÿ```àÌÌ0Ã```à``` ÿ33ÿ```à```à 0À```ÿÿ```ÌÌà à```à``@P€H€ $„].0]¹¹¹¹»¹¹¹  0©0F�ÕFÙTx±b­óÿÿP>:862&&ôãôþhÆ�€e8üoø"D!#ÿÿm˜có6ÄÅ~"sDôãô,jæ¿ÅÌ´üoú"BA%@'@``@0000(0``öÿúÿìè„ °Ä€¿ÑÐ             "$  &("         ,                  %#%     =                        r­                                ! s¬                   r­                                ! s¬         T40_rockT40_rock�AîÐÃÀ´ÄÀA®çÏÃ@°Äl%l�A@°DîÐÃÀAÀ´D®çÏÉ%� 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ?ð?Òmn *^‡à>¨©¨©{ðÿƒ?ð?�ST�ßPžÃ&à>ª«ª« ð»Ã<3 =)*I.ÃÃ-b¯°¢1ƒBÃ<3 =)*I.ÃÃ-b¯°¢1ƒB?ð?`_ @_ @_ð? @_ @_ ð@_ÿ___ €___ €___ €___ €___ ÏÀ€___ „ UUr—G{ãzc A °Ä€¿qÐ  "( "( "( "( " T05_groomed T05_groomed(ÁHá;Â:ôAázÂà   C C (ÁCHá;´A:CázÂ.& ÿÿÿÿ¹¹¹.¹¹¹ººŒººŒ»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹º¹º¹º¹+ºŒººŒººŒººŒ»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹º¹º¹º¹+ºŒººŒººŒººŒ»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹ÿÿÿÿC..EEEEEEEEEEEEF....EEEEEEEEEEEEF....EEEEEEEEEEUUUUüà ©ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«00?ÿ©©ª©ª©ª©ªð00?©«©©ª©ªÿð00©ª©ª©«©©<ÌÌ0ª©«©©«©Ã «©©« ©©« ©©« ©©« ÌÌ©©«©©0à «©©« ©©« ©©« ©©«UUUUüà ?ÿð0S0?ÿðS00?ÿSð00?Sÿð00<ÌÌ0Sà ? ? ? ? ÌÌ?0à ? ? ? ?ý__U?üà ‹CDCDCÍCÍ$CDC�‹[¸ž¼ýùù+Ä`ù猎ç[»çç瀌Œ£è‹è°[‹0‹2è¼açåŒ=‹‹æèÖ0/CDCDCt¬múÏGg<ÌÌ0$CÍCÍAÏÃüüAC©˜ŸîJ©’)b¥Û\Zè”Zè\˜‹‹‹á\æ\ßèæ\©Ì ‹ÏóJC‹A ÌÌC©ÏACÍ0à AÏA«A ÏA«A ÏA«A ÏA«A]]UUüà R/EÿòS°±8‰ $¸°q9   <ÌÌ0RÃüü< A)< Mh'! Lb'  P ÌÌ<0à > > > >ý_?<ç/EÞÝÜÛ43ríYóÚk�°í¤à‡8ŠçøX ‰��ß‘ä;Hl9<P7`.}Ðû=ÊC8rÖ„3”¹j:²±wükÅŸù`ÒæÀBÿüiœ;žèúßÒ4«Í6Õ9:9\�d/òå Ò—Ï9:9]•%< "ÿÀf  1$ðòòÿ 3ð7ûÿ2# ,&À ¿�O`ü << óóÃpCÿÿ.²™Œ‹ŒŒ‹ÚÙ.¡t/Œç¨ù¹…ìô“%Uty'ÍfäR“•{Ò‰èç/8s; :aI­éÃp€7MßÝÀL4üYÕ°„(%£,+Œ‹Œ¯4ø{£ž8 =‹Œ.-/0.-.-/0‹Œ.-ù¨ÿ‘rÀËñ˜ÂÍzš"¤`d·Ç{Òýþ¸µ¥…‡<’{âÓ2íëï²ú#e!%kXOD­Ïüÿ!®!/0.¹Œ/0/Ï<ð0.-/0.-¨‰%ye?ù’,"N&�,"E/"/"#CeMú:xÿ; 4ÿo…lU!J¨øøðü,  L0} pý1é0!}U<–•?@Ú´# n�(ÀX³ ¦K[J¬ë‰�Ž�ã�ÒEÿp3F€EH–�x¿ÿððÏGÔ>GF`:¿ÿ10Àÿü´b6åeIlp‘ü>Péš=<<ÏÀGN]� $!ÿàf&& €¿�O¿`%&ü Y_}?Ý:X¿oxÂÏÿ92ÿð$KJ#*¾ð‚EŒËÊ®ˆ� ŠçâEÔ¨4)*å(GùÞïhUU¨�À>ÿü)21"üß¿cŽHoGœIEFšG¿Ž4°Hã¨HNJIJŸGc³q¾KcÏJIJUUe&�™€ ðððÿW6ð7óÿ6% 62À!Hƒ¼<ÿöõ�g%D#†_ÿÿÿ/?_Ð/?_`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿÿó3€ßŸÿ€ÿ `ÿ ÏÏó3`ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(�@Ÿ`@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(�@Ÿ`@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0UQUU’@1ñ‚‚ñò‚‚~Iþ$�||‚‚|~‚‚~þI$�|‚||~‚‚‚~UUUUüà ÿÿÿÿÿÿÿÿÿð0ÿÿÿÿÿÿÿÿÿ0ÿðÿÿÿÿÿÿÿÿÿ00ÿÿÿÿÿÿÿÿÿð00ÿÿÿÿÿÿÿð00ÿÿÿÿÿÿÿÿ ÌÌ0ÿÿÿÿÿÿà ÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÌÌÿÿÿÿÿÿ0à ÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿUUUU ˜Â 9™° 09™°  09™ ° 09 ™° 08ÈÈ0 ƒ         ÈÈ 0ƒ        ÿÿÿÿ¹»0¹¹»0¹¹»¹¹º¹º¹º¹+ºŒº¹‹¹¹‹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹º¹¹‹¹¹‹¹¹·¹¹‹¹¹‹¹¹‹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹¹‹¹¹‹¹¹‹¹¹·¹¹‹¹¹‹¹¹‹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»ÿÿÿÿEEF.--EEEEEEEEEEEE-----EEEEEEEEEEEE------EEEEEEEEEUUUU Ì©©«©Ì0é«©«©000©«©000©«©000©«©000©«©© 00ë©©«© ÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©À 0©«©©0à «©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©UUUU Ì?Ì0Ã0?0000?0000?0000?0003? 00à ÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?Àà 0?0à À?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?UUUU ÌÏA«AÏÌ0Ï0AÏA͌ϫ0000AÍC«0000AÍC«0000AÍC«0003AÍC«A ð0ÃÍŒÏAÏA ÀÀÀÍÏAÀÀÀÀÍÏAÀÀÀÀÍÏAÀÀÀÀÍÏAÀà 3ÍÏAÍŒ0Ã<ÀÏAόͫÀÀÀÀAÏA«ÀÀÀÀAÏA«ÀÀÀÀAÏA«UUUU Ì>Ì0Ë0>0000>0000>0000>0003> °0à ÀÀÀ>ÀÀÀÀ>ÀÀÀÀ>ÀÀÀÀ>Àà 2>0à À<ÀÀÀÀ<ÀÀÀÀ<ÀÀÀÀ<P@ÿÀFE¡èEóðEFEê£FEÏEFEêüÿºèEFE¡­¯@a „€]u@Uÿ.-/0.-/0Œµ*Ñ8Œ00‹Œ00‹Œ00‹Œ00‹Œ)aŒ6ϨŒ§‹¨ÿŒµ*?ÿÿoŒp‹)aŒ6üÿÿê8¨Œµ*Ñ"$ÀÀŒ‹ÀÀŒ‹ÀÀŒ‹@óðWXW¤KÏWXW¤ÀK@ÿÀWXL£XWXüÿL£XWXLÚÚ@d€H’ÿÿÿÿ(o0(o0(�@Ÿ`_ ?_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(//¸?_ ?_ ?_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(///¸?_ ?_ ?_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(TQUBIþñññø‚‚‚‚~ÒIÿ$ÇÇ‚‚‚Çà``‚~` ```ÒI$ÿ‚ÇÇÇà‚‚‚~``` ```UUUU ÌÿÿÿÿÿÌ0Ã0ÿÿÿÿÿÿ0000ÿÿÿÿ0000ÿÿÿÿ0000ÿÿÿÿ0003ÿÿÿÿÿ 00Ãÿÿÿÿÿ ÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀà 0ÿÿÿÿÿ0à ÀÿÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿUUUU È È0ƒ0 0 00 0 00 0 00 0 03 0  ÀÀ€ ÀÀÀ€ ÀÀÀ€ ÀÀÀ€ ÀÃ0   À À€ÀÀ À€ÀÀ À€ÀÀ 0¹¹»0¹¹»0¹¹»¹¹¹‹ÿÿ¹¹‹¹¹‹¹¹EEE-ÿÿ--ÀÀÀ©«©© 0«©ÀÀÀÃ? 0ÀÀÀÃAÏA«A 0ÏAÀÀÀÃ< 0ÀÀŒ‹ŒÿðoŒpèo0(o0(o0(/ÿÿ//ÀÀÀÃÿÿÿÿÿ 0ÿÿÀ€Àà 0$ö¯1ÿ&ÿ(ÁÀ¿H Ð        "024.,   >0JL:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<6468>@.( .068&  &(.0 =        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  !2!824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1       53"5(*$24*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$  ., 68& *( 24" -      53&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%864 >@.$ 20 :<*  ., 68& 1      53&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$ 20 :<*  ., 68&  T41_groomed T41_groomedpÁHÑÃ@¹ÄpAHÑÃÀ´Ä   @ @ pÁÀ´DHÑÃpA@¹DHÑà   ÿÿÿÿefËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeÿÿÿÿ2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMUUUU ü0骩«©©ªÿÿ©ª©ª©ª©«©©ÿÿª©ª©ª©ª©«©ÿÿ©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©ªÿ30骩«©©«©« 00©©«000©©«000©©«000©©«030©©«©©Ã 0«©©«000©©«000©©«000©©«UUUU ü0ÃSÿÿÿÿSÿÿSÿSÿSÿ30à 000?0000?0000?0000?0330?à 00?0000?0000?0000?ÿÿÿ/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßÿÿ30Ÿÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@0TUUU3‚‚ ‚‚~��€ ��€0ÿ!!!ññ‚‚ñø‚‚~0ÿ!!!ñ‚ññø‚‚‚~UUUU ü0Ã`_````€ÿÿ`_`_`_````ÿÿ€`_`_`_```ÿÿ`€`_`_`_``ÿ``€`_`_ÿ`_````€ÿ30Ã`_``````` 000`à``0000`à``0000`à``0000`à``0330`à````à 00```à`0000``à`0000``à`0000``à`UUU    ÿÿÿÿeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeÿÿÿÿMM2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMMUUUU003©©«©©0à «©«©000©«©000©«©000©«©000©«©©30à «©©«©©000«©©000«©©000«©©000«©©30ë©©«©« 00©©«000©©«000©©«000©©«UUUU0033?0à 0?0000?0000?0000?0003?30à 0000?0000?0000?0000?330Ã? 000?0000?0000?0000?ÿÿÿÿ0Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@0UUUU0ÿ!!!ñññø‚‚‚‚~0ÿ!!!ñññ‚‚‚ø‚~0ÿ!!!ññ‚‚ñø‚‚~UUUU0033``à```0à 0````à0000```à0000```à0000```à0003```à`30à ``````0000à```0000à```0000à```0000à```330Ãà`````` 000`à``0000`à``0000`à``0000`à``PUU €       eÍeeegefefefeM03©©«©033?0Ÿ@0000/0/0/0033`à``` ÿpÁ ´Ä€¿E Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" 5        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2%824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T41_powder T41_powder„ÂHÑÃ@¹Ä„BRËÃÀ´ÄÈ È„ÂÀ´DHÑÄB@¹DRËÃl d  uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/0/0/0/^/0].0].0].0]¹3333¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0i»îº3ÌÌÌ.ø`@444ô S¥:S¯v3333.44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿ.444ó¥:S¥z .ÿøCCCOz:S¥:S¯ÿÿ.d444ó¥:SzßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©Ìü0ꩪ©«©©ª©ª©ª©ª©ª©ª©ª©ª©«ÿ ãä©«©©Ì 0«©©«©À©ÿÃ3ãä«©©«©©Ã «©©0?ð«ãä©«©ÌÀ0é«©©«© ©ü30ãä«©©«©© 0À«©©ÿ«ãä©«© Ì ©«©©«ßUUUTSTSTSTSTSTST7SÌü0ÃSSTSTSTSTSTSTSTSTVÿÌ9?Ìà 0?ÀVÿó309??à 0?üT7?ÌÌ0Ã? Vÿ339?? 0ÀÿT7ÌÌà ??÷ÿÿÿ09/íá Ê’Zu-¹iÃð Ïÿ]‘ÎÝÞÝÞÝÞÝÞÝ€^Ý€^ÝÎÝx퇼AÓ,ø§~­yî5‰¦Á “ìÂdº`ûÎÝÞÝÞÝÞÝÞÝÎÝÎÝÎÝV”Ѷݾà°±›O¨£½MvÎÝÞÝÞÝÞÝÞÝÎÝÎÝÎÝF„�ÎF¤uJ[J y¨þ@º2mÃÝÞÝÞÝÞÝÞÝÎÝÎÝÎݤI¤)—7èç¡Ô J““Ð¥nÎÝÞÝÞÝÞÝÞÝÎÝÎÝÎÝê¶Ú©'àmF²<çO›HÔ� p^ÝÞÝÞÝÞÝÞÝÎÝÎÝçyî¹/:o+ - /+ 5ð /`PePoTH F F<, "!ÿÿÀÀ@}7;?93-ePeH6:BD8**)D‰7;;9/ð0)PePoÿÿÿB08>B>425J“99;5+'ePe<*6»�u«Ð1‡Mìÿÿxxx�hOªX¿hohoho#^:’|°­ÞOÐóKÕƒ¹ÒW4R”}~½¾½¾¿hohohot›¦.XŸQT‚!®Sž„¯Ø RX_ž½¾;<¿hohohoà0q§˜¥šš_<ª­o8‚�V –£ЉÎÍcd¿hoho©ªªªâ† �0òp‡‡‡#[*ÿ¨ú�ˆÿ'$</R%hð÷‡‡‡Øø�ˆø�òF`òq!6X�oxxx}�ˆø�ˆÿ#0D%RFð÷`‡‡‡Øø�ˆø�ÒS"ð9f/�xxx}�ˆø�ˆý%3/•"Fðj÷‡©ËØø�ˆ#×uÝuÈKznx%Èuiƒ§§×-À<^zyÿóÏÀ¿DC„ƒ†…ç½õÏ[*®ÒëõÎ *#Û¸ÿÿÀ‘'ã‹áÎF÷po·"ñÍ_þj0,…rQ«¤ @À𚈇ÿÿËr£Ky<µ“{2’ >i‡·@—~}ðFE`†~wòë`§ÚÚ10^WÿÏÀb&ÜX—ˆCDÿÊ:GÔ/Ì�+ÇÔmó˳P‡¥?–ôÏóCD–aEe¡AACr@�)‹‰c pMD Sab@>�÷ �ØŸ>B€ 5qN#Æð\W]¤dÎÎJª€Œôû ­“(lðÉyàf§IfŠHGöœhohoho@ÿÿÀ0Ï´¨Øˇâ?œhohoho¡ÿ'=vÒ1ð'\ÿÿœhohohoÿÿüj‡û@Nx#Sœhohoho¾'wW¬ÿä§ vÿÿœhoho h¦™*ÿ¨ú�ˆÿ'$</ ˜ø�ˆø�ô3HBð"? ˆø�ˆÿ#0D°(˜ø�ˆø�ÐSBð, �ˆø�ˆý%3 2˜ø�ˆ[—\s} f.ÚÞJò�ï`Œ“õeÿðÿp‡‡‡òø'#žÀ`¤HåiÃâÍJ�«N�PÿÀ¤ÿÿ=‡ý?ͱZÿÿxxx5OÀB¤dx~жŸñ“›˜W f€ÿü{|½¾½¾¤ÿjGnhT_:™W`¾½¾}~¤ ·KíÈ’ ‘Uû ÿÿÀ¼»ÎÍcd¤Z–h’1ô@£Z�0òp‡‡‡#@`2Hð÷‡ÿ@ýŸ4kh�oxxxq0Oð÷8_T‡‡‡ ó9n_Xóðx}èqWP=2Ï9 V]dSBO÷Þ©Ë:uÿÿÿ3ÌÌÌ'(W///?_ð Ïÿ?'('('('('@'@'@'@`3333`@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'QUUU@ÀÿÿÀÿÀÿ0ÿ0ÿ ÿ€ ÿ@ÿ ÿÀÿßUUU€€€€€€ÿ````€`_````Ìü0À`_````€€€€€€€€ÿÌÿ```à`Ìà 0``à```Àÿó30ÿ```à```àà ```0?üÿ```àÌÌ0Ã```à``` ÿ33ÿ```à```à 0À```ÿÿ```ÌÌà à```à``UDUfffB@™™™š@@ � @@].0]¹¹¹¹»¹¹¹  0©0ÎÝŠƒ·Î,1óÿÿ@.48@FNJh.•hìHÕ>ÑLTØúoöS3ÿÿ‡Ÿº9†2¤&Ö¯h.•h* ÌvkFÝYúoôQQ@'@``@0000(0` øï«üÿ¹é„ ´Ä€¿ÑÐ             "$  &("         ,                  %#%     =                        r­                                ! s¬                   r­                                ! s¬         T41_rockT41_rock�A\ïÐÃ@¹ÄÀA= ÐÃÀ´Äl%l�AÀ´D\ïÐÃÀA@¹D= Ðé%¡ 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ>3ð?ÁÝÜ`nV?`ð?�òoW©ýð->#ð?§œÁ$�ÛLð?„óp€û|ŽðãV?ÿ<37“ˆ`–'(I7Ã<3Ã8i��ß.-bC$"C$!ƒ?Ì)*=’§?ÿ<3 ?…f`B–'(I7Ã<3Ã8i��ß.-bC$"C$!ƒ?ð?`_ @_ @_ð? @_ @_ ð@_ÿ___ €___ €___ €___ €___ ÏÀ€___„  „UUrÏU±â*¦b A µÄ€¿qÐ  "( "( "( "( " T42_groomed T42_groomedpÁHÑÀ»ÄpAHÑÃ@¹Ä     pÁ@¹DHÑÃpA€»DHÑÃvn ÿÿÿÿefËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeÿÿÿÿ2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMUUUU ü0ꩪ¬ªª©ÿÿª©ª©ª©ª¬ªªÿÿ©ª©ª©ª©ª¬ªÿÿª©ª©ª©ª©ª¬ÿªª©ª©ª©ÿª©ª¬ªª©ÿ30ꩪ¬ªªª¬ª 00ª¬ª000ª¬ª000ª¬ª000ª¬ª030ª¬ªªªÃ 0¬ªª¬000ªª¬000ªª¬000ªª¬UUUU ü0Ã*)**,*©ÿÿ*)*)*)**,*ÿÿ©*)*)*)**,ÿÿ*©*)*)*)**ÿ,*©*)*)ÿ*)**,*©ÿ30Ã*)**,**,* 000*,*0000*,*0000*,*0000*,*0330*,***à 00,**,0000**,0000**,0000**,ÿÿÿ/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßÿÿ30Ÿÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@0TUUU3‚‚ ‚‚~��€ ��€0ÿ!!!ññ‚‚ñø‚‚~0ÿ!!!ñ‚ññø‚‚‚~UUUU ü0Ã`_````€ÿÿ`_`_`_````ÿÿ€`_`_`_```ÿÿ`€`_`_`_``ÿ``€`_`_ÿ`_````€ÿ30Ã`_``````` 000`à``0000`à``0000`à``0000`à``0330`à````à 00```à`0000``à`0000``à`0000``à`U €    eÍeeeÍeeegefefefÀeMMÀ003ªª¬ªª0033**,**0Ÿ@00Ÿ@0000/0/0/À00033``à```ÿpÁ ¹Ä€¿¥Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" 5        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2%824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T42_powder T42_powder„ÂHÑÀ»Ä„BHËÃ@¹Äd‘d„Â@¹DHÑÄB€»DHËÃÿ‘÷ uÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/0/0/0/^/0].0].0].0]¹3333¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹À¹i»3ÌÌÌ.ø`@444ô S¥:S¯v3333.44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿÀßUª©ª©ª©ª©ª©ª©ª:㪬ªª©ª©ª¬ªªÌü0骩ª¬ªª©ª©ª©ª©ª©ª©ª©ª©ªªÿ :9¬ªª¬Ì 0ªª¬ªªÀªÿÃ3:9¬ªª¬ªªÃ ¬ªªßUª©ª©ª©ª©ª©ª©ªq7**,*©*)**,*Ìü0é*)**,*©ª©ª©ª©ª©ª©ª©ª©ªªÿÌq ,**,Ìà 0**,**Àªÿó30o,**,**à ,**÷ÿèKy½¹½"z›K›Luð Ïÿ)OtÙÚÙÚÙÚÙÚÙàÙàÙàÙm�<‚í°Óþ"ü/ásQ–yˆ›t‡ç)O)tÙÚÙÚÙÚÙÚÙàÙàÙàÙ"6z=*áîÅ–yˆ›t‡ç)O)tÙÚÙÚÙÚÙÚÙàÙàÙàÙ"6z=*áîÀÅçyIL™9+1= Að 9@0C0O@*.08BJFaÿÿÀÀL—5%)3;7C0CD046©ª«ª«6à>©ª«ª«:ª©©«9ä©©«9äü©©«oª)+)ò8))+ò8ü))+6à>«¬­¬­6à>©ª«ª«?ð?`_ @_ @_ÿ___ €___ €ü___ UUã8VU¹å¸e A ¹Ä€¿;Ð  "( "T00_farT00_farvÃÓ¼÷@ÀÀvCV½®BðADPDvÃðÁÓ¼÷@vCÀ@V½®B,P$ õ3ÌÌÌ>=ùùùùù÷ÌóÌÌùù >=Çúúúúøúú=ùùùùù÷ùù0=Çúúúúøúú=ùùùùù÷ùù0=Çúúúúøúúõ3ÌÌÌÌóÌÌÏ ÐÇ ÐÇ _ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÕ3ÀÌÌ»¼…ÛÊ�ðÌóÌÌĘŒ9:DHìÌÌüÿÙ"x^¼…ÛÊ�ðĘR:DHìÙ"xB Žä�[&¡ÙüÔÍ“�†‡¦õ3ÌÌÌ&PN,FFÌóÌÌ:>248&PN,FF:>248 &PL.HD:<24:ÿ¿T‰äšJiS@˜ÔŒ_Ç] R\¾~Pc�¸B¬&ܪ—¨ aWÈ`³’èt˜‚úí�¸ÎÑInþ§ãIœJ5 l¸à ¯ªöð•TÀ12÷&ôò1¡s@a öÿñÅjøýXD!øúwhúEôÿVb!qÐÿÿ//˜ ªt‰³³rxøÌ£ì’´Ò)B…ò¡„Ù=l'BÜ} ¨°� ”$2 €47¤Sìç] R\¾~Pc�¸Bÿÿÿ ðVT ¬&ܪ—¨–¬:ÉøåšåÇ@– p¼”§x-9˜÷&ôò1¡)Í„ÀDöÿ6D!ð/DôÿvbA-W¿T‰äšJiS@˜üÀÔŒ_ ÿÿ %ã oæ¤üHÿ·|‡9˜ufÿüHÂôWÕÛ¬¥Vöð•TÀ1àÀGÿß&›ž |Hÿ‘J$  ÿlHGõ3ÌÌÌ/0ˆ``400ÌóÌÌ00k0/¸``40000k0ˆ``40000;/¸``40000k0ˆ``40000;/¸``40000UÀþÀ þ Àþþ þ_¯°¯°¯°¯°¯°¯°¯°¯°¯°¯°¯°¯°¯°¯ÿÿÀ°¯°¯°¯°¯àÀ?U™™™™„™™™™ÀþçclÿXÁA€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT01_farT01_far�Ã^Kп(Â�CÚ¬BÀÀDtD�ÃÀ@^Kп�C(BÚ¬BÁt¹ UU3ÌÌÌ 0000.0ÌóÌÌ00G ;///ÌÌÿ3-///` 000333<0.000k ;ÌÌÌÏ///-///x ó333 0000.0003ÌÌ̃ ;///-/Ì//UU3ÌÌÌÌóÌÌÛÌÌÿ3Ð333<ÉÌÌÌÏÄó3333ÌÌÌ¿Ìÿª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿ©ª©ªÿª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿ©ª©ªÿ’_ª^ú ¨ž’®qÐí@ób¡Û¢-„0ÔÃ’Ô=èªç]–9º€=MKB~Bô i t–š]æŽ�†(#UXw�ê+dë¿7¡.ÅÞS�üÒÕÙÆ°1R“¬b/Í¥÷Bm›—›õ\ŒÎ²’ŠøÒ¿ÿ1B±dþ¶ùýÿõõù.RT:HD>FN <@N LH D <<D@`\NXRFX^LN\XXRJL@#F`dZ^!T#T\!j RX\Z\ZÿRTÿnïD£xÕ2wWÃ1»»Gî~´vÚ�I`Îðy~ƒiÌ»Ìð`¢`)Tzëj†²ÚºxѪkía 9““œŒåÍÒ]ž8¶(d·¦†*‘°W^\ÑY>�¹/Úî¥ù�ö•a°¡’)wr]1Tÿ‚ŽLTªYø�s*!50!÷`ôò€aAAõŽf!b 5PfOA²mõÀ˜O Z®f 1"2ü a  Äÿ Žß„$_ß~§Ýü…n¥²kfÑNµ�ÌyIVǺÜ4FÛA¤ã�y,úä ¶�Qû&+hn3ØFs}Üã…¤ÎMÇ/ 3s­\Ò»}Á�å‚å߀S©.&ÐÁ˜_ o¼t²:_ñF0Œš× g§ÅÿÛ°°Îªf°&!w(F3ÅÔP…Á2”0ò#$QBBTaPc@4”0ðuªT RP 0@I}{ ìþÄÚ™ÍÉ8ÀKͤï]rpái3Ë '*0;ÿœ^q÷£x\nDÎLÖàÊt� ¿%"ÙGШÓ:¤ð +"ÊSIÿ]zâXRõ@ôô0@-Í€ÀDŸ5 Ô1`a"ðF:þ@�7 Ä×nùÆ“l´R2]Aá"OÞÿóÊØ€òãß’ÿÿæÛIU&é_ñP»~œ¨J/ÖÁµT@4€ÿÂ]VñÏîk$Ã�7Ás«|ú³â4uVUú¡UA5QnÒ@E’ÿó,™ Hü÷$“N†*Mÿ•;T‰ŠöB@™NUU3ÌÌÌ/0ˆ``400ÌóÌÌ00k0/¸``4ÌÌÿ30000 /0p`X333<00000/ ÌÌÌÏ`X00000'ó333(``L0000.3ÌÌÌ'ˆ`L000Ì0.UÀþÀþþ þ 0€þÿÀ¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿Ààßàßàßàßàßàßàßàßàßàßàßàßàßàßàßàßàßà�������������������������������ÿ����UffffHffff™™™˜ffff5e<<»þÌXÁ¿€¿IÐ            M          Q I         T02_farT02_far�Ã;p6ÁœÂ�C¼”›B(ÂDPD�Ã(B;p6Á�CœB¼”›BuPm õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÁ`Î�¦ã8Ým%«šv,Áø÷ˆØì®·Í™cæ…:¼D£ï¨¶°TB>Jœ¾xƒTŠD6§Ã9¦y%{�ž‰{ ÀtÂåwkfùnjæ}–h£ÿ<PZJPLJLX HPPPRLNJ2$>F<*>86D6:8:8:62:$:F:.<<:<4:::6:82ÿwQ,@*XN–¶¸YYwÕÞƒ³Ê좗g« Ü(IwDŠg¨�D®†È7Ä¢©¹Q÷dŠÉ4Û$…ªŸZ[¤?Ÿ’\5B&ÔËúóåv¿–_ò¢!QP4óìcˆ‚ÿsL ôÕ$üüoT‚ ô·!$qÿDb`»¶ÏI¡”7]ãÞí€ï."(Ø~I�±Ž{¤¿¢"ÆÌês6„´Iù.‡Y•îÄ×xkT‡õî*ä2wÀr·=·aÀ«n»+ƒDjK–!@ÃM½ÞÄ)/Õ« #ð0As¬ü”„ý7ý\B ¥¹87v¼—³oôYÐãÇ�ê8 ó°°K>³øÈ»©  „ŠÃżևTûì„/ˆÒÀDð+À7BðŸ5 Wd®$¦u°MD#î§ûÿÏÌBB,p’ <ÿÿ•ò%LÈòåAÿðBÿü–«‹çËiÿþð¦vq¸Ju� U?îÿC6 �Ї?ÂH”•”I ÿw ~`Bÿ“H þ~` •Jõ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ Àþþ€ þ_`_`_`_`_`_`_`_`_`_`_`_`_`_`ÿÿÀ_`_`_`_``À8A_oê]öv„ÁÁ€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT03_farT03_far�ÉœÁäÂ�C³ª‰BœÂDPD�ÜB‰œÁ�CäB³ª‰BbPZ õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿê7Iªš9­ýu»Ítn]V=ã0ñ^­(>²Äª<7éùüé+�ZTÊl¹BÌNïÔyÿUTñ@yã8Ÿg˦$¾.é£;êä@×:‹¤"ÿ4 H VL@ JLJ@ DLLJHLLD4.:@<24:8B2>:82<668 (<>:2:46D2@<426::ÿØçòæ§ú0Ç3¾+G]—y×P—%µ=4}Ÿ­BØ’ÀjÇJ°«”ƒ­yÜRRðlÆÉMîCεG‘¦¡çCý8‡çµNðÙ�µ2î_ Wð—"ªdÆÀpC ó&òp @iAAüè4^øõ$"úhgh$1ôûD#!cÿU´ß¤nô¸`´"-/'¯8»T èwŒšÙäî:ú'd3%/¬�¥3ŒûÇ¿úEy‘S¡&Q߈<ì¯é.ÎæGiÏqÕ$䲂Ҁ7¦p@C$'Àˆ TGP@AD0S$BSA$3¢S4FÝ!ü.)  44Í6ž»QÉ8T¸ÿÿ÷ I�ßf[É•®Fâé±ô&ůÿÿ„mîÃÓù4;1Tûüˆ3dÝÀDþZÀ3 Fþ¸/ W$Ea`Çl¼êcÛÎLÿÐüq55Þð ÿÿB '<Ý%‰Úÿñêÿ)%­áxÿÿòèÄ÷ÚföfdäÂ#paŒÐ—L!üê*>aÿG4 {þB‘ŽGõ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ Àþþ€ þ_0/0/0/0/0/0/0/0/0/0/0/0/0/0ÿÿÀ/0/0/0/00À0A_ëoLþ„Á”Á€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSU T05_powder T05_powderpÂHá;Â:Ã�B×£ÒÁÃÅÅpÂCHá;Â�B:C×£ÒÁÑÉ uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð ÿÿ{=-/0/0/0/Œ-/-.0].0].0]¹3333¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/-^/-^/-\0].-^/-^/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-Œ/-^/-^/-^/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^i»îº3ÌÌÌ.ø`CCCOp`@`S¥:S¯3333.44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿ.4iF”o:V”t .ÿÿøF”iF”oF”iF”p.ÿ€diF”ißUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©«©©ª?ü0骩ª©«©©ª©ª©ª©ª©ª©ª©ª©ª©«ÿ ãä©«©©Ì 0«©©«©À©ÿÃ3ãä«©©«©©Ã «©©0?ð«ãä©«©Ã é«©©« À©©ÿÀÃãä«©©«© <0骩«©©0«?ð0Ããä©«©©«©ßUUUTSTSTSTSTSTST7SS?ü0ÃSTSTSTSTSTSTSTSTVÿÌ9?Ìà 0?ÀVÿó309??à 0?üT7?à 0Ã? ÀVÿðÃ9? <0ÃU0T?ü0Ã7?ÿÿÿÿGujõòŒ¶ �Ê}†Ú=AÜÒíÒí¼’Ò?í=íÉÒl’$TýÉ\½¶š½xJÎ(q‚ÎyNòPÝPŸ/�;GDÉúyF©•†ÒííP?í}¯}­H¥½§}G¥?Åå.”é¿ I‡iê–°Oý{qÂííí­½o½oý/ý=ú?º?ºX?<'Õk˜¶xv!¢ tCú=ÚcíííTÂÂÂ?P„?<–ÒAÔC'Ùk~ɶöàÞŠ âî³ôíí¯Ö„PB�DŽD?ÉÒƒ„’�‚Ôƒ„ÒÃ\$ñ³öx6�X`RÑñ …sííí'ÎÐ?Îë»íº###%%# !‘——ù "& ÉéÐM±oZ'L%>%<'H'P'P)J%A"?#!+   qpðM±K4( $&$I*I!!%½yß,¿ÿ  4, $$$M.O  Qp²4. &$$M(O#ÿÿý—Ÿq!q’!p &2."&$$O"K/)ÿùyñqÿÿÿÿîTÚª;Ì Ñ¶ç„ªê«RlH`àÞgd1oÜÛ}�AVm ™Ÿf£¿B]ð *fíe">y&¡D÷ðßs+ü˜ïÙwó£Û^Î¥7ÈSÄQ×ÖÚ¯õ#¨œÓsEÓÚŽ�‘½/Øû3Sñc�¾ŠåáÀ¢¢ŠØ¬(JÂ"¬=ðXÖÁ‚ƒvè¢G&-ø°+›*¾ òg%QéVÔΞžH ˆéMHíYs� êr">D=‘ý�– 7,$¨³J6¬�¾2¢’çžÑ¡¦ çÈ�¢ÏvZÑæ� I½6Ÿ]€ˆ7yÜÇ?mäZn ”¸{!Ê©µ£¸äªªªê"@AAƒ€0*ð46V1!P²ÿ¨ø�¨ÿ)"Lk$B¢ð(õ…!eeØø�†Ø�ü£‘øñDLR/¯xXx{m!†¶k„ÿêW/+P"öð(ùX©?³û5ICÅ8?þÅqó%Zw/��Óý?Óÿ0S¥Q…ÿÊ5ZóX !ÿÿÿÿË7~ ex(èSJô v0 Åó÷7kñÇÛ¼çq.bó—ÕWɱG¯ï)äêY8e„–íÓ›8Oé96 Sü¹“QPVÊ‹uc ‘’5 ·橯5Ð,¹çIV·q dãr!ÉÕò8,Ü;N(µAèj–¡gƒŽ¼†ã%Ù_ÔWtØ\ûñµ’Vf5f…VÚÔÀ&ºímÈð(fe÷…±¶ŸÑ(ç[—FsðÁgƒËê“cD“ /ÁˆŸEÈôÓWexFO£ `UÞ¯‰Å5Õhyky-Š–²<Íg q¦µ ðD7:£­G›žÿU¦Y¦ |dä°=™˜ êI/"830a‚fdºcR  E¢15!#C !&ø‚5p@bkϘcáÀ£ €™@4®�†H31ejE³@¢%B2%õ]×–H2,!üÏ^ÆÎ—`iµ4ì?øß^Ÿ�¹6Ú23Éf•Â=‘!ÃÀ# ñ÷i]:k¶¡f5ìáÿÿÆõAýVlôæøø¿!lGî¥ËÒKŒ?’),ì3¤üÈaþ.° a†?ÿŒ?Àûüô´¡:¼qúÅ;åu.!¾�ÿ@4Ï Ïÿ_^('T+'¨ÿÿñ¶&�ílÍñJ~Ebÿð(¦`x', X¦0ôÿªü¯ªÿ+#.ºú�Šú¯ÿÒÀ  0?ˆø�¦ÿüW002keÅ:_ÿå‘ð#25¥3ƒÿô0% 2_×]×óæÓÓÒxð…Õàx‘´È@OVrŒúЃ“”:JÏöo ' Q‚+=®°7MnÜÆ—*à2ÿá†T8ÒÑ¢ý ÿóö¸ÈÅCýȼº7àýЏ&Ø¥ÿ`%$ ï¿2|N¡JUýñ¸´«ˆ!ÿÿÀܨ¨SSô’ÎTý€ÿ)( ¿Äq¹9nre£ˆ¼Õõ`KKY¦fÿðN³9îgKÿ`?ÿ)* ¥ñÈ•]*ˆK•¦Üôˆ|b1tAx5 YšeÖþÿTSVY^_ls|ÿ0,û‡hzQ{b)&d ,‹ó?¢ð ûçQf)‡©2  ÿÿ2mdMNW` ÿ ¯zšÿ•}j'B`?Êü¿6gTp% í?Õÿ0 €Ó6y¯�õÿ�#ÿàf`??5h 1D ' $uÿÿÿ3ÌÌÌ/0_//?__ð ÿÿ_?//0/0/0/ç000`3333@0000(o0_//?___?//0/0/0/·0000`@0000(o0_//?___?//0/0/0/·0000`@0000(o0_//?___?//0/?p/?p/?w0//`@0000(o0_//?___?//?p/?p/?p/?�///`@0000(o0_//?___?//?p/?p/?pEUUUÿ ÿ@Àÿ Àÿ0ÿ0ÿpý Àÿ†pý0ÿa†EUEó30ÿÿÿÿÿÿÿÿ?ü0ÀÿÿÿÿÿÿÿÿÿÌÿÿÿÿÿÿÌà 0ÿÿÿÿÿÿ?ó30ÿÿÿÿÿÿÿÿÿà ÿÿÿüÿÿÿÿÿà 0Ãÿÿÿÿÿÿ ÿ?ðÃÿÿÿÿÿÿÿ 0Ãÿÿÿÿÿü0Ãÿÿÿÿÿÿÿÿš–Y–À¼¼¼¼¼¼s$$² &l à ËËËËËËËÌ$�@ŒÃ0 À qBI   $� 0  À qBI@ 80ƒ 0 $� /-Œ/-^/-^/-^/-¹¹ÿð¹¹»¹¹¹FôiF”iFÿpÿð 0À¬«©«© 0ÀSöÒÁÂÒÁ”ƒ„ÒÁÞ¢ÿðwÈúvÅœ9Ï$  2.ÿð$$$"Ìò¤ïW¤I]¨‹ñ� ²uÿðbÖ²ªJõQ…3ø-Ý î�GÄ/œkåj¦ƒÆ«=:½ÿðÌV×;˜´À†N¼ L\éB¨ç@VZ¯1Ù$ªÿðÊèY†¤.83ƒ83ø5ý€ðhÇ Ø ð˜/?�///`@ÿð0000(ý 0Àÿÿÿÿ À ÿÿxUÿ ëpÂÀ¿ËÐ             "$         ,                  !!     A                        r­                               !  ')# 0                         $"$     #% #! +-'  ,                          (&(     #% #! +-'  0                T04_farT04_far�ÃçâÁÄCø‚kBäÂDYD�ÃäBçâÁ„CCø‚kB$Y U3ÌÌÌvvvtvvÌóÌÌvv5“uusÌÌÏ3uuuuvvv333ÿvvtvv5“uusuuuuvvvvvtvv5ÿÿÀ“uusuuuuU3ÌÌÌÌóÌÌÃÌÌÏ3Ê333ÿÁÊÁÿÿÀª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª0ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª0ªÿ�àL=ùŠ�gsv�õÐUxÃLÅ*~îë{vH Ëu wêèæKÆ‘äCråIyÖ–ÚQÕŠI©¼Pf ·êÊ`o¶ÝË(LaÉÏÿÀÎí¿wÁ@âÿ  :L N JB JFFNHTPDFJLL. :TN DH JH BH,>H284::(&F@4<64:@ÿÿÀ4:J48466ÿÌÛkHÒ]óË«%‹‹¢4]`M6Æ}ëË•âŠpl@¬ŠÝ =ˆÿQSîêPÆ÷\¶³ôsx TÀͦŸˆv’†ÄŠô“©%ã}¿6ìj(oÿÿÀ÷6ß(§,i ª0Fb1"!÷Dôq` cý JCxS!OÔc@�‰@1obiýØ ÿ¸2”)9í#füô.�wÚÕÓr]f„çžÅ‰Õòg*Ý»«ÉçOüãùÃÀóßH±Î$ËÏÑ2ó„5¨~„¾²fpým¼à«ÈîÑ9 _n:ôÿÿÀ_°ó„UCÊK¥*V À/àA úBdV2!(E$!4s„ŸµCÀ }ÌH çD†£4'ÿ#<ù¤êš(¡`¢ ðÿƒ{$i‘%äÏûÈ éïýÀ‘pŽð’&X÷Fôq¡@/N@ÀJÿ1ÑpJ1üý@ Ûè%¼Â²PIäcq5ßÑ’ÿÿõ¹ð`ƒÂt3™ÿÿÁ¶„Å—SÏj¼Bo{Ú›z¢sxâKts˜&b¿ë)ûÀ VPfÿ1"!•žðÒ@�ŽEû»?p ÿÑ[�Š�”E&?øï)\ �ŽI�€U3ÌÌÌ'(``L000ÌóÌÌ0.x`@0ÌÌÏ3000(W0p`X333ÿ00000(x`@0000(W0p`X00000(ÿÿÀx`@0000(U€À€þÀþþ0 þþ0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0$#$#$#ÿÿü$#$#$#$#$#$0P!™™™˜)^Ú!ˆ;ÿ9„ÁÜÁ€¿IÐ           U        rt bpjlfpfhblbd^h^`ZdZ\V`VXR\RTNXNPJTJLFPJLRPVXFPRTJPRTJPRTJPRTJPRTJPRTJPRTT05_farT05_far|ÃarÂ:ÄC}EBÃDPD|ÃCar„C:C}EBgP_ õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ½œ~ô´Ô?˜/Ô?(/ö„,u»k©Q—d÷„øÐüÍL�áÉ)ìÞ:÷¨[GÊ/@Ç¿óâQú›:£(/ší’9gö�-¿ðÿ8VP BNHDHFFN\FHHFH$ ,DB28884@ 4B@:64<4&,BF6226>@2>>:>.<:ÿqæÖÃ^Ò¸rRv°d¸W{ëðª±@È£�ŒÏ³Á  Õj}>�¹*Ä~ q éÚ3ŠN¡"&ôדÑkWnª‹uMΞ¿&þðZfÆ¡10 #÷$ò²A€a�ïñloû–ïijqHôùBRoÿeÞJ 0†6†Ž9kË}7'¸ïE¡ì*´*:l(é._Ò…¼—Ž1Ü\O£ ¯}ZjÉEK ᪬yA/ø©$iOdbÞŽÆžùJ*>ÔýЩ#Ôˆ†2A00`!0!a0D!0@4S‚11È[@br%ý$ü}ÁU['ã8£¬ârÂð‘n.Æ© ¯f øÄŽ}÷œ•ø   æ©Çå`0]Mâ˜÷&ð²A€/ÀFô÷Cð5Dúî3 [æ9—?F¡¶8ŒxúÞ·tÿÿósDøàxB6dÿÿ´è§Û°Ÿzþþÿù@êøÔÿaÿòšr�’z?B.Vh¨ Q0AÒ@�HÏû8 �>dïŽG6ðþd �–Mõ3ÌÌÌ/0p`X000ÌóÌÌ00x`@0000(W0p`X00000(x`@0000(W0p`X00000(x`@0000(U€À€þÀ€þ Àþþ€ þ_ÿÿÀÀA_cà!þpÁ€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT06_farT06_far|ÃK™8Â^ÄCæ?#B:ÃDPD|Ã:CK™8„C^Cæ?#BqPi õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÈ9ÂþüfÃ'žû­ß 5ÏŸb)Iæ]M¥P’„öä#$“dYÝ/ì˜(‡†pÉÿ‚ ´ ?«ÿÔÎà·þ%§Ü•˜}È…?=þƒ»³²ÿ < PZJFFHRLFPNLPB JN&,6B8844@>6@88::6@" ,0D8:4::B2>>42@<>ÿ÷×êð”®‹Í‘u½@Ìâç2ºCÃáü¯oL*TÌËW»Yc6U ©è¸_T¤1� …d _rÂ894Д¨‘ˆ@” 5;»éþÄæªƒP@B÷&òP i! Pú„#jdøõB3ö*or`ø÷DiÿHʨãʼn´©<ÙîäóTg¥ÙA�Ç ¢eáw&)ÀR,h�²|pžÁÃ7½Zž?ŒaÊÊ6æ´~pÊí ²yƒIz^2ŸšÆVxÛ©!k¯ä!a"’0@4r!4A&11aGRƒbT�‘þP¡0� áZ÷É‘^­Zœ·ñ3 �7²ØuSÑS7@²¶—©ç  À¡ƒuëå ßTûì†/þÉÀLügÀ5 Núûd3#/—<ö•@=n_/å~z vó×Üa«Ñ�î ÷ÿýí06FTLRHJRXDN JF B JPPN:NRJPFFPL.@<:80:>(&>@2F,44V >RR @ H >> ðN ÿxÒìf1ÄÁF(òýÙTyxç¹ç�®.¹ëùQô_­oÝ$U°!ç+¢ü!Éé«�j>eõ*FÀL- 30L-úð¥B`–Ð×@ºUCWò(ô4POZŽÿóý)÷})ß_ õÀÿÿɧyWü“°ÂI»[;V�Ãþ ’?ÿÿ�„E—äÀhÁ‡ ãÀ ÀV1d†!�ìÒ@ Ž•N$€Ûù0  Z7§ I!ÿ¥e_+\‰H€U3ÌÌÌ/0p`X000ÌóÌÌ00x`@0ÌÌ?3000('(``L333ÿ0000.x`@0000('(``L0000.!üÌÌÌ('ˆ`L0000À.U€À€þÀþþ0 þþÿÿü0ðaS"ÌdþÙpÁZ€¿IÐ            Q        rt bpjlfpfhblbd^h^`ZdZ\V`VXR\RTNXNPJTJLJPRXZ\        T08_farT08_far„Ã÷Ղ“Ã�CÁ¹¸A�ÃDYD„Ã�C÷Õ‚Â�C“CÁ¹¸AYû õ3ÌÌÌvvvvvtÌóÌÌvv“uusuuuuvvvvvtvv5“uusuuuuTv3333vvtvvvvSÿÿÀ“uusuuuuõ3ÌÌÌÌóÌÌÇÊÁ¾3333½ÿÿÀ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªª3ª©ª©ª©ª©ª©ª©ª©ª©ª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªª3ª©ª©ª©ª©ª©ª©ª©ª©ªÿ‡¬_Uõ¾zð~)Øö…vÉ” iäÜ+ÌîœUÄ_mzgÓW4š­°-bƒ­6/B€ktê~¿g¡f}%x÷j=)h¾ºõJþ½›tÿÿÀ:f`Ò¦´yÿ4 LVDXDDJT : JZH F BDR "(:B2B626N.AÀ…ñ¸Lï…G›îM+î–ÞÞd—Û JîÎð"…Ć{üLù5]²Ï³ÄÿÿÀ²b|îl¹*kêª Bº2AeG#`tE@º…ðµAB5%8ð5s 11"HufY€þôÁp4VÀXꞺ_<I®.l»rb‘½…æ<+bÜã(êåMY00¡ÿÿÀ9ÛHŽ‘+2tTûþ�+ÈìÀRû£À/ L/¼Â€WPÒt?l–âÇ LáÃ’[ÿ×üù2ç+H  Ìÿÿ Ai«ÄP ,þóDÿüˆí)8 A?%Ø…wN’yÜD9j¿çÀe?îVŸWV]p �ˆÒ@�’G öüt*ŽB@ÿG2 òÉpË—š�D�$õ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.`3330`@0000(ÿÿÀ'ˆ`L0000.U€À€þÀ€þ ÀþþþjàÞÞÞÞÞÞÞÞÐàÞÞÞÞÞÞÞÞÀ3 ËËËËËËËÀaÖ ¿þ‘„Á~€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWY KQ         kuoqptwjt ntntntntntntT09_farT09_far„ÃcΔ¥Ã�C¶„[A“ÃDYD„ÓCcΔÂ�C¥C¶„[A%Y õ3ÌÌÌvvvtvvÌóÌÌvv“uuuusuuvvvtvvvv5“uuuusuuvvvtvvvvS“uus33uuuuõ3ÌÌÌÌóÌÌÉÈÃȽ33_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª?ÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©ª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª?ÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©ªÿvÃÂÏÓY‹f]3çìY#�ƒ§o1±}3 �¡ó¿ˆK´Õ¨�"í8zS‘DÛYRç.f˜ÎD §I©_+—hÁ…�FæýþHV  hÉ<ÿÿÀ™o}©óªÈæÿDT JPRLLB B<PVH @JP>,,D88>6::80:F<08>4(,B:2:88@TBLbPÿÿÀJPXNÿt®†Ž$Žƒ ¾o ¸97‚´åkL,›®WÏ‘…�jtØ2²€z³WÔ¸È}5›ýd–='BÅD ~ó;ºŠaV;ISjG­=�5ËÝËAÑ'ÿÿÀäðàXÇ“Ê=4ªH¦`1 2ûNôò €[#Ra€öô1^ôýEøñ_^0FöoO`\ma@ÿâý<¼¨r…ku9nóìr~2)Ísuj´ÝcKL'(_éM/Éi‰ rØU/ª¸€1ƘŸi=YÀío€IdF®µºŠ´€§uÿÿÀ'%]²€<©/ô¢©0VAP4V 4e$B’DC&@5 6'_Àþ á@ K{AƒD½Ã³·V’„ØìÌ›¼ ¢ùœq¡jD®wüð 5i¦>ÖDäÃFÿÿÀ¨pA©TÊå˜ ýoôðCá%'lþÀ>ôÿe ð%@ø�O�^3'@:0{fD•sšvœ$qìë,ÚÛÿÿöœòðV²Âª¨ ϲ’OÔ3 ÿñÅÿ•åÜ‚N©�—*¤ˆ+½�  üÀ U7ýÈah oÂ@I� ÿÃ-f“î@ü”M+fäü�•žQH@õ3ÌÌÌ``@000ÌóÌÌ0(W0/ `X00000``@0000('/ `X00000``ÿðó3@0000('ˆ`L033000.U€À€þÀ€þ Àþþ€ þj À¼¼¼¼¼¼¼¼°À¼¼¼¼¼¼¼¼ÀÀ ¼ ËËËËËËËÀ)^߸ü �Á‘€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQSU               T10_farT10_far„ÃÜHªÂ·Ã�CVŸŸ@¥ÃDPD„Ã¥CÜHªÂ�C·CVŸŸ@_PW õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvvS“uusuuuuõ3ÌÌÌÌóÌÌÃĽĽ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÄ/í9&[ÓùD)Øà2]燲±ÌH†c'ÌÙ[ÀÌ[èÄ›ü]ºqaoмI[Ú]÷Î~Œª)”¸B\™lw³_!òˆ:á†Lôœ^òÿ@RPFLNPTZBD`NFLRR*,<:628::R 02J6264<.*:<62>64P.8H66664ÿ«¥Ö?OÝ6+šPpKöþÒÃÍ—0Ù‚¨ÆñeTªëƒ<-޹”ë_4±rìÃÂÈËÈð¡,c _u­€P?K«\lO„É$ÎãÍËÆ@N1Ò³²ªÀ` ûDòòáa!0øÈ1dð�#øÄefD3ô½ZaÿØ÷¹ŒÂùK37OGu—A»º?»¾u9¯‡*ìûöä‹Åõçº77�K©@ÙôêÃÖéšxÐ<™a¢º$‡ŽéæiË.b“¬]_¿XGâ«£òªT@E%AA"TA gc #!&„W1F3j�Qþ 4‚0@ ¢Ömnè«b›Sª¥“aí¢!{dÚÎÍÌ¢ fÿÿºFœš]¹{ƒ ¼˜ÿFòö1á#.ÁÀNð½A3ð3NôÝ| 3Û¨á\þái Í£¿6ÐâÿÿùT óƇ¶IF+™ùÀÿÿ ,�hªS°r¯®V  Á†$iÿþÃcÇÓ&%ßèU?ìÌÿ_Z “˜�Ž�”¯ÐŸ¢O�€ÿó-d‘˜œ&ÿK1j|þBa•Fõ3ÌÌÌ``@000ÌóÌÌ0('('ˆ`L0000.``@0000('ˆ`L0000.``@0000('ˆ`L0000.U€À€þÀ€þ Àþþ€ þjÀ¼¼¼¼¼¼¼¼°À¼¼¼¼¼¼¼¼ÀÀ )^"\³û?�Á£Â€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT11_farT11_far„ÃÅ�ÂÂÉÃ�CÇàÀ·ÃDYD„÷CÅ�ÂÂ�CÉCÇàÀûYó õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuuv3333vvvvtvv5ÿÿÀ“uusuuuuõ3ÌÌÌÌóÌÌÃĽÊ3333ÁÿÿÀ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªª3ª©ª©ª©ª©ª©ª©ª©ª©ª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªª3ª©ª©ª©ª©ª©ª©ª©ª©ªÿikãQþxaiUÖö•�iàV/k¬B…NÑÊBW•‡[æh'÷ßm¨“]ºLÏïãÑ�9ÌÜX—¨ZùUýS¦ØöE1ÜÿÿÀ[×ýÉÚszABÿ :JTHFRFH`HP\PNJLD4.8>64<44D.@D84:40DDRNLHHHB HÿÿÀ*@@<6802ÿ ƒ¡ü®�J ôxÙ%HÿyœŽõJ�ÙsêS€Ý#!%ÄP“cPhÜ�ÌÚìv_©|�%c¬åó ï4IvU¾-˜à,[Zb3ÆeÅ׺{%ÿÿÀ\ó¿Ké»*(ª$€€R!QùJò°C`Y "öÈ1e`òù&DñÊaVù2�[c~Ë€ ÿA]Büª7%x`Ö'[±C툸¾�jQî$ìO^•ºÕ/3³¢õ’ù t�îœÇƒ›7ÔÚe:°µÿ©›ð7hêE¯öF¨Ö€öiGqÿÿÀ ˆ²`�#gJj T#cI BEóRS…"V!@u#üTŒÀ11$0 ›{€Ý!í ØâæTjè)7¨|©ÿÿð.Ù<ðé¡–]‚ï ^¡KQôb‰�68<>0:B><,820*@<6@686D.8D:>.8:ÿZ®~“È^†×ïGÁÖ&Lˆ~Ø&›~�f<(áBXË—ï�o·v�kh5ª%9Ú§è¤ @kÄ«L�œL¥¾[˜cÇ/ìÈoˆ&�¿dô0Žfò¢12@’úý�_ `!CAþöRN�òÄþe TTôû4Fp_ÿªSè3ŠŽ½¾D”ÛÊá4TÄMtDmÜÕ’h0Ò âpnž¹nb?¥&GBKATï¾´ë¦ïaý|«¥4åÚÕŠyËû%§–Jˆ�™™™Ôã©]yS4T‚CC!#ƒgƒPAa1 3ÅHp!UþEñCA â»þé ,ˇ�)\µ´ì…-%± êNëç C�šéߪ ÀJÊÜ÷ìž²Tûü )ÆÀBòÆÀ1 Döþ/×v Ø({©yceÃgÚ�]Îÿÿü@£x€ *=€ÿÿa�“µ¸ýþ„P¯• 4̪9J1U,r%T  Vô 1 ð—ÇÒH@”I €ÿËÌBÿ“Jõþ@ “’Gõ3ÌÌÌ'(``L000ÌóÌÌ0.x`@0000('(``L0000.x`@0000('(``L0000.x`@0000(U€À€þÀ€þ Àþþ€ þjÀ¼¼¼¼¼¼¼¼°À¼¼¼¼¼¼¼¼ÀÀ )^r Œ÷„ÁÇ€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT13_farT13_far�ÃÿaëÂíÄC*)ãÁÛÃDPD�ÃÛCÿaë„CíC*)ãÁcP[ õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvvS“uusuuuuõ3ÌÌÌÌóÌÌÃĽĽ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÆKŽ(InÂ"üÑõþƒíf]5ýßwóÙEå^ʦ†Š|ÖÒêŒ_CpüIÃ;é…ï�Êœ„¿êxÆÝGH| ¥�xÏÑîê÷ÿ:TVNXNLHXBNZPTDNN*:@8<<:.H,8F8<26@((4D6<:42L,©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ´z¦wî¦ [˜©¨Xò§ ,ÿ†gÿÀïMgikO.mO0oM0oM.kMÿÀ,gÃ?ó=>Y¬7gO>7e0‚�ç~qOi?ÀD7kBÃ?û'(s$wX(wVa ([h?ÀD3yZÀó=›„$ ?ð?`_ @_ @_ð? @_ @_ ð@_ÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÀ1?@1?@1?@1?@1?ÍÀUUrhé˜äÂI_ÐAÀ¿qÐ  "( "( "( "( "T14_farT14_far�Ã&³ÃÿÄCår!ÂíÃDPD�ÃíC&³Ã„CÿCår!ÂVPN õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvvS“uusuuuuõ3ÌÌÌÌóÌÌÃĽĽ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÊŒ¿C0Âs­¨(ø-Ÿ“v°uc×[»—l2„  1K{ºâÍ�â,m‘bÐÌ6qÓeÌ5ýW¶»�=á;Î Áu�â&×.›ºaÿ >JXLPRJHPBNTJLNJL. $:B:8:88@2B>288644&2F6>68:B0B@08846ÿô3 _Á©®5Þ(£”ìè¶]ÒοdqÃïOu2TÍ)Ô"Ût$³�žü3P&Ý4q¤+ܬVRß)ïÁLj¤ó¢!”ì.[»ÏÙšf"Â!0!óò²@ac†ÿ9l òùd0"óÈgj# ð½f0"gÿ(ø‚aÚ†"@‹¥ÉB÷¦æ~'ôØ£ˆ÷éÅÜÚ¶û:ª=Y;h�ÞÆ,�¿ô¬CÜ©¿åGÏjÀ’1wîÞ¥šRZnðùß êÒV™7 f"£BÖ”"a–¿Á¦ `RÚRMõ úN€ÿßÿ2àapŽ X t'Òt˜<¯K @'ÓçÀ8›R²0 qŒ™ì%Â�Ëz Xõò²@@-I¯ÀFþJÀ3 DÿÊ3 W˜¢f/¹CžCø¶ùÿ×þÍ*·òøÏ #ÿÿ¥7ìtvÁ)•þÿ†ÿA± ¨-À7jâ†Ó:M VöBÄ!0!]^óÒBI‹�G !ÿ7;v—”>d†ÿ‘H:ox sŽd€—”Kõ3ÌÌÌ'(``L000ÌóÌÌ0.x`@0000('(``L0000.x`@0000('(``L0000.x`@0000(U€À€þÀ€þ Àþþ€ þjÀ¼¼¼¼¼¼¼¼°À¼¼¼¼¼¼¼¼ÀÀ )^C$µßþõ„Á뀿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT15_farT15_far�Ã- ÀÄ„CôýHÂÿÃDPD�ÃÿC- ÄC€DôýHŠP‚ õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvvS“uusuuuuõ3ÌÌÌÌóÌÌÃĽĽ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿòéc¶=•R�±(ZØÆH­ÏãÇÈ´|ú²ÊÚ{ÿä…vÌì¦w_0€¾4ûÁ’‰±„í¦a­^"§½ú‡¹K�øªÓÖkŠT©2RÆ ÿ<H\HNLPLP DRVFNJLL .&2H<44<§—C¾¿Ó'Ï^Oó¦åq®ú7§t°ÅfUûeÜ “. å �ˆdí߆³@eÀÅŠGÛÁ®¬¯© E]#+÷£Zó Ž®ÿ¸ 1¦R Â@0 òüØi  1ø¯'4`!ò›"3öïidWò™V1cÿükéÀlÚüÃyäV!MM�Aïö‚\‹£zÏ5�øÛ‚ý ™`^·Æb\l�MuwUê¢ïŠ÷Æq jÃÃGkŒ�1hþ›p05Âu½}¥ÅN¸VMŽc4ØáA$0Á;H„�!31ý%MÜ èA�·0OÏŬŽû¨OFKá‚€²Ô©ÙCé HÏmr¹0ÿÿÕT‚×PÖ”Ðüú3 ßÀLô½$"Uð7Pô½855—”GäF@eSÔ& Sà4åÿÀýìrþr�M  ‰Oÿÿ„?“N"rÿð”TÿŸ› Tþ�áÿüã æ¸ºžT<ì fR¤Â@P¯ÀI—˜K!!øÏ'6*Ì@$ÿ—N* ó<@ •’•Lõ3ÌÌÌ'(``L000ÌóÌÌ0.x`@0000('(``L0000.x`@0000('(``L0000.x`@0000(U€À€þÀ€þ Àþþ€ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿj€xxxxxxxxp€xxxxxxxx`ÀffffHffff)^µ$>„þJ„Áý€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT16_farT16_far�Ã�ÀÄ„ClÉu€ÄDYD�ÀD�ÄC€DlÉuÂY õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvv“uuu33usuuõ3ÌÌÌÌóÌÌÃĽÄÉ33_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª?ÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©ª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª?ÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©ªÿÙ®Žh Ðmû¡ݱ šù(p\Dg€žÕX§O2Ù �΋HÎÍž¼ >jÉk¤jÚ<H‹vÉ›SóUy•#¸äû÷ÞØEþK–{`#ÿÿÀœ›nf­£ì…8ÿ <PZLHHHLbHNXJNHFL0*<@88646P.:F6682.2*>>86486ZDL\LÿÿÀJJJ@ÿÜíL ô±Ë·‡$½býU0»øçuǶ3ïˆùD\zôW䡊‹ëhÉÄ’»®#ÎÝ�_UŽ¢ËÇ#øm†1)ÑP;rÑq÷ÎIì¢RR‰ÿÿÀSë…é½8[¹šD†¢P !õ&òÐA@a˜€ïÕb  ð½`öèa^10!÷¯O@6Q"w@ÿ£zC™EGKx‘öž¸8«[ߣ.aìàíÒÕª1£ƒac�»ù³ FÊn÷bÁÞ“§ÞU¶4eï:ýÏäâ×ûql´&`HÉ›róP6wÿÿÀÛR»µAçG~ÿª 330 !R4ÀR”A Rc£A3 aa1@Aa)%#E Ýìî I9B|æ D ´Ëÿÿß`%LáÓ¶½ÆË”vá u^Ábé0>À `ÿÿ� br*´<�lÿÿÀË�P¹S±¨°BXõ(òÐAB/.ÀF ólÀ/ Bùïo@8' 7@—<©£X¥3a÷á…®DÿÒüü(Vg£  õ‰ÿÿ80ú1ú¦‚ÿõZ\!úÿWûkK[œ@,øß   �"@VSôàrÿÿ[t��‘�ˆÒ@Id ÿu1j ¼ÿ‘H2™ø<�ž—�G@õ3ÌÌÌ'(``L000ÌóÌÌ0.x`@0000('(``L0000.x`@0000('(``L0000.!('ˆ`L033000.U€À€þÀ€þ Àþþ€ þj `VVVVVVVVP`VVVVVVVV`ÀVeeeeeee`)^é'¯wÿ…„Á€À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQSY[]              T17_farT17_far„ÃYG!ÀÄ„C õ’€ÄDbD„ÀDYG!ÄC€D õ’„b| õ3ÌÌÌ/0ººººººÌóÌ̼º\/0é¹¹¹¹¹»¹[0ºººººº¼º,0é¹¹¹¹¹»¹-.º3333ººº¼ººº/<ÌÌÌ.ç¹¹¹»¹¹À¹õ3ÌÌÌÌóÌÌÉÊÅÀ3333»<ÌÌÌÀ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªª3ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªð©ª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªª3ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªð©ªÿèõؘΔµ�iÑ‘èYåä0l�¼WT8 Fl·júñü™'Ùæ£a ·Sþt›ÿÎ~ Ÿ½Kpì"¡½o³Çáfò ¢á�w÷€ÿo§]1ËŽ 2"½Ã€Þ)f%wðVwÿ :RVPJHPPJ @H^PNNNL( &8F>8.4BB04F>4468R!@N^PLBPTXBL^PLFTðLÿïNÝ oÒ+PÕS °Q|(Wß^×8ÄC« U@#k6ß¶íIw‘�Ü[¨HñÍ,ØD‹CÚh>»PFv\ðÊíFo;AâÏT¾üò¡j7Õ]–`ÕœQ^É„ð@Tª ‚` 2"&ûBôô€a !AóÊ%ph†ð»X@ð&kdj@Fgöò��4P€ÿ)¾9±ÂÆ+œ�SülÿÁ(b¡tÝŽŒÕf¤q �r>Ó¹R|³zÉi—¬†YÍIñŠŸ?$ø—º·€(wݾZ‰(f„×Z£åmK@Ï‚³¬ô–²¬òO),Ên¿È¦§·ðép©6rU>CPD0AAa !4PRbÁ1  Ô"+Ž!ÎÝ/Ý ‡‘�]`â-¥7­Q¦¾ÿÿÏ�—Åï ôì¾ío ýG²„ Ú|ÕÙJ3#€‚mÑŒççfJ$†1œ€0EðbòXû"ôô # ÀDÿÁÀ/ H1øö¡�41€[j +fw0yðî��æ‰A&ÿÿý¨5t€ïx¾ÁqÿÿæÄÝ­Ž‚a]þþ™ÿÌ\j*Kïç¬AÀÌ>zFëÛgûKÞÙ %ø!` õÀU>ì.Ñgh ÿÂ@�’“šO!ÿ>;~ þ@™ÓŸR3vj@2F O$„ €õ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.`3333`@0000(<ÌÌÌx`@0000À(U€À€þÀ€þ Àþþþj`VVVVVVVVP`VVVVVVVV`3eeeeeeee`VVVVVVVð`»&Yþ1„Á€À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWY KQ         oup               T18_farT18_far„ê¢(À#Ä„Cå¤Â€ÄDPD„ÀDª¢(ÄC€#Då¤ÂQPI Õ3ÌÌÌ-.ºººº¼ºÌsÌ̺º-.ç¹¹¹ÌÌ¿ÿ»¹¹¹.ºººº¼ººº/.ç¹¹¹»¹¹¹.ºººº¼ººº/.ç¹¹¹»¹¹¹õ3ÌÌÌÌóÌÌÁ»»_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿt«O}@¤�¤pR]«&F`<5†ÓWˆðšizåxõ€›ƒ—ˆ£‡œ|7_™ÁhmØ6×\hÃY”‘™QºdªwZ0_¤¦“ÈjS_ÿ 8NZTPD J LB : DNLLB LF &:B>>6<4D2<<8868D(8D>>6:6D2:>:668DÿÁ�Ñô+I-‡WÈš.v†~áôwd3åñÿÎ÷¶Þ`Ó>÷¨í¶ ŒÆõYê±F®LSÈ#[´-^•èä‹~þ¾~è.uô˜¡ûLØ5m$R¦0„à2Tƒúî�i cQAòú!jôùQöúgl!RôÛ 5gÿ1EBt€F´j[O–@Q`AÀ¨Ó<Ç‹€²É@‘w«Q<‘ñ±œh+a$ýæ‹B?9ê�ÇÿÏ­÷±Þµ¼…vÅ@ïù¶mñv·è³‘W&�jD!`gI' B’rTÇçAR¶À0¶Ù‰ÜB*Åí!þ¦à ÿjëв�ÐÁåïÿÿüÿQÜ@tÊ’k~¿Ñê4ç§¿wº£¹»õ¤/óÿ'�¿oá8‡Óqdúþ / cQƒðJû À3 PôÛ 73{º3­s� ;õIˆnf×ÿÿðw¤2A*¤7«ñ óËÔVx¿žêþðÿ¬¥¯ õPaÿ¾ðÄ¢ÿ‰ÁVðÄð0RkhÿÀ@ •˜—–G$ ÿœ. >`ÿ�D)^ ^`EÕ3ÌÌÌ``@000Ì3ÌÌ0(x`@0ÌÌ?ÿ000(``@0000(x`@0000(``@0000(x`@0000(U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`À] Öþ˜�Á€À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT19_farT19_far„ç 1À,Ä„C•E³Â€#ÄDPD„À#D§ 1ÄC€,D•E³ÂOPG Õ3ÌÌÌ-.ºººº¼ºÌsÌ̺º-.ç¹¹¹ÌÌ¿ÿ»¹¹¹.ºººº¼ººº/.ç¹¹¹»¹¹¹.ºººº¼ººº/.ç¹¹¹»¹¹¹õ3ÌÌÌÌóÌÌÁ»»_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ¬‰ºÂ$v­ÿ†¿ o\Hn]ýëD«,.JuÝ�r{½«Tô Ì¢Ô)ñ){ =.e²ºÆª~ærMEñ:eâ#zúîEÈ& « )ÿ8H NLNHJ @JBJ F HF B BH (4D0<>88>66"(:D:8><4F0<>:6@64ÿaBc�(su{Hf²jQÆüñ¶ˆì!•£ãä¹:-)8ÔAî6�¬UR;‰ UÔ:_òU(>på™>Ý@°�’Ûv"+6‘ êµpžY}‰5º�•Õ¦&fÀ!2lûìˆg24ôª#n3ô÷"0Bòêij1òÛbgÿ9‰å<Ö G R–qJ{¥¹¦rú™ ›ÉìfÜp"šÞí‰ÃÍs\Jއà­}„>o6zR $ÝȧŸöP—ÚœFƒÈ«Àd^“ãsB‹@`jt aÁ4– 2tV…¡2 ;”`¬³õ!þ Hÿÿ¿Rt‚9,¥ª¤µ;?V=»0‹?œûck2ɰ"E 0oÿó$Opz’Tûíˆ-�ÿÀ LúhÀ1 Fó^/ Wñy¶þ�³êò– ?±Ë\Äÿ×ý†H^�ã° óÿÿ0ú�΄vÃþöHÿ÷òp ½ •ÿüöHãˆñôhÅ U?üó[d ›”‘–LÒI†Eaÿ>1j ™–~fHÿ‘F3j ÿüfH•”—–�HÕ3ÌÌÌ``@000Ì3ÌÌ0(x`@0ÌÌ?ÿ000(``@0000(x`@0000(``@0000(x`@0000(U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`À]FO þ‹�Á€"À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT20_farT20_far„Ã×7À5Ä�Cà­Ã€,ÄDPD„À,D×7Ã�C€5Dà­ÃÂNPF õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvvS“uusuuuuõ3ÌÌÌÌóÌÌÃĽĽ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ´Á§»'´%eÞrʹt íÁE‹ÞgJ×­ôð[‰l@Í÷MãÏðXÊïçýŸô2<õiy èñ£ëfÜàX„çÆ¹zWèÓ€Km�뽿1« Œþ ºýûýùýÿ6HTHDLNH< < N NF D J D> (6L<@286:2@08682ÿ޼ º¾„z"ûˆ~0ËT9*Æý´^ý”r¨À¯vB¶ñà…ê-gEÜØX¢PlTœê(2sÂ�—Þ  zGÄ š¹×Q&¹Fðc�U&Mùiü¬a 2òô°AAm "ðŽelú ïi n Qüù4aÿFþr¾<�ä/ÛÂÉavøÛâ==Ï?–-;'¶8ÕNÏ/Ã’;J×ýÎWÿúv÷�Úš}Éÿÿâ%œ–*ZÕ‚U3îŒkkl ´Ä`C˜ï÷2 žBïE4 |žBEõ3ÌÌÌ``@000ÌóÌÌ0('('ˆ`L0000.``@0000('ˆ`L0000.``@0000('ˆ`L0000.U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`À)^š¸¤ÿ�Á€+À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT21_farT21_far„Ã8¨?À>Ä�CTcЀ5ÄDPD„À5D8¨?Ã�C€>DTcÐÂ]PU õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvvS“uusuuuuõ3ÌÌÌÌóÌÌÃĽĽ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÛé*¡Þö*N¬ŸêVXuã‰ÖX¾pNä¶üÓïå˜F–µL@ÔIéä'qaFhw<†Ü��S �—/š1Uóovò÷õRBDä%ðæ¬fâXÙ�ÿ:F XL L > D B HDL PJLHHL$*>>@@04<<.B@:468:(,@@>B02>60DB42:86ÿVÖ C?¹ˆ{ù¡Hà'ÔÂß§‘Т@fø5z¥a}L$ó’ùP•“žÑÔµ@½-ÔSàìÒlK]<½ËÕràž8‹ï�”—× sۮ馆¦212‚ÿÌŠW ! R2öüUfFöùFúömb sdöÿHkÿïÂ3xÆL÷ÃÓôRI½Þc»un9ëp_tY*,¢#È…“<7³Ú©ElL)°A¸üPÌk žÓš”–fûá ¸|ñ"i,_Ϙ5©·ÙTóv’"@vTSA%¢S$ACsÀ78CýW¨ÜÞÒWn<œlB�©ÁW2V–Æ8Í2ÃAj Ñç�껋 îèQT±2 »ÞTÿÌŠ %ÄÀLÿeÀ- Jÿ-Wíð%O’–á¨ØúÉÓ¢ÿÇÿÿ< b �ù( ÿÿ#œ'…­àç ÿþ&ÿr�`a¬÷ÿÿþ!Z"ÜÜýèšVò¤â!21Red‚Ð Gÿ-` ü$&ÿM+b?þd!Ÿ˜™Nõ3ÌÌÌ``@000ÌóÌÌ0('('ˆ`L0000.``@0000('ˆ`L0000.``@0000('ˆ`L0000.U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`À)^¼ ÿ°�Á€4À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT22_farT22_far„ÃêFÀGÄ„C§È߀>ÄDYD„À>DêFÄC€GD§ÈßÂY õ3ÌÌÌ-.ºººº¼ºÌóÌ̺º./0é¹¹¹¹¹»¹+.ºººº¼ººº0é¹¹¹¹¹»¹+.ºººº¼ººº/.ç¹¹¹33»¹¹¹õ3ÌÌÌÌóÌÌÅÆÁÆ»33_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª?ÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©ª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª?ÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©ªÿê,ƒÉž,Ðt5qN튗å¼%›ÿ0¹3(çòº/«d>­ÀæÿŽõM|‘aµ�û¡BNóõÃûéºop¿ÍÜS´õ¹%Å =ñ#w÷ÿÿÀ�·%p8‘8þ øýý÷ûýû:PLHN>> J@ > TP B @ H B> (*HF6@.84@ 2>F64@86".BH8<480V : L R Fß¿Ÿ¿ÐBJD@ÿIE² úß¡œ½¿)�žùóØK¤`³ OÄÉ ˆT%Ô�Óˆç?žë¾9(¨S_áØ`ÍH0ÉCé¨ñ°½O¯i@ÅjÓJyí š2ÿÿÀ±ûöè’…7xNªä„11`Cû ö°�`_0@øüS3bcù*5DúöibpTò�$8g;7ÿW²}îÝG4~çK:™{ú^êAÔ‡hl½¿ \´Z÷ƒÜf®~²H?¾´GŠ—Æ; ¬<ðÖ̤äÖ½ö�|ŸîÚðL³ Ú0Ê’ûEªÿÿÀ÷V\í@ïÞ9R¥-Û¢bœ'ñT… S"@TZ3ãTID"'!»7@þsð!0`n õu•o»âÛ˼"ì\AN‹‹nZzåZ°˜_Œ> ߀ÊwI, D @N R HFPHB ,BF6:88<. 4BF46>86**>D>4:6B&.DF84><4ÿuy³Ðæ%xôF’+ô¥Òÿ�:°“&Íy€º±%L¦Œ«“§~g㈊åøÂ8|î<áYxJ ¨” 38tf0sÀì3/Q×›3Ëùª(â Pñò°@`kT` øè3dôûF@öæsj2Hòý("wÿ‘£ç�DgІ8;[…–7l!ö‡Â=M²øa0ÞéAŒ!‰°Û(�+Ä{]?û§pƒ‡\o Œ´4�¦,}õà†o[i�º~Œ�ÍÑÈzôëiX”™Ü„1ñDÔP "bdÊÀó%2 ðfSaðA1îp¢R@î…ÁËîÆBù·?öÿÿ¿ñœV {ÅŽ¤ñwµÑúd“‘£jŽÝ% poÿÿÍp5(Ô3óÌi”×ìÌ1 àÜÀBöûh1Bð5Dû|1 WüËEš°—>‘ÝO³½4ïÿÆüÜÐ6cw6È ÿÿj>2ã53x`üÿHÿˆÊH %sÏØÿþÿ KZ¢=´¯V*âÀ1ÆHHE@ ÿð/f <&HÿM1hö¾d ›PÕ3ÌÌÌ``@000Ì3ÌÌ0(x`@0ÌÌ?ÿ000(``@0000(x`@0000(``@0000(x`@0000(U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`À]Ì~2üO�Á€FÀ¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSU T06_groomed T06_groomedÁ ×_Â^ôAHá;Â:à   C C Á:C ×_´A^CHá; ÿÿÿÿb`Áb`Áb`Áb`bbb`Übb`Übb`Übb`bb`bÜb`bÜb`bÜb`bbb`bÜb`bÜb`bÜb`bb`bbÜ`bbÜ`bbÜ`bbb`bÁ`bÁ`bÁ`bb`Áb`Áb`Áb`bbb`Übb`Übb`Übb`bb`bÜb`bÜb`bÜb`bbb`bÜb`bÜb`bÜb`bb`bbÜ`bbÜ`bbÜ`bbb`bÁ`bÁ`bÁ`bb`Áb`Áb`Áb`bbb`Übb`Übb`Übb`bb`bÜb`bÜb`bÜb`bbb`bÜb`bÜb`bÜb`bÿÿÿÿ///IIIGGGGGGIII//////IIIGGGGGGIII//////IIIGGGGGGUUUUÌ0Ï©ª©«©©ª©ÿü ª©ª©ª©«©©ÿü ª©ª©ª©ª©«© ÿü©ª©ª©ª©ª©« ÿ©©ª©ª©ª©ü ª©«©©ª©ó 00ª©«©©«Ã À©«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀ «©©«00à ©©«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©UUUUÌ0ÏSÿü ÿü S ÿüS ÿSü Só 00à ÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀà ?00à ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?UÕU_üðÏ\[\’\’Z\‘\ÿü [\[\[\îì7‘ÿü ”\[\[\[\îìÿüÉ‘Ù\[\[\[\î ÿì\‘\[\[\ü [\îì\‘\ó 0ÿ[\îì\’\’‘\©Ã‘aŠ0|‘�‘D‘‘‘ÌÀóؑё‘‘M‘‘ÏÀðü“‘‘âÓ‹ /–üÿÀÀ/û-b‰7\ÀÀà îî7\îî�Û0÷0\DN\�&’’’ù’’%’’ÌóÿÌq’µ’’û’’’¸’þüðÀ¼bdëb‡NîUUYUÌ0ÏTÿü ÿü R ÿüR ÿTü Tó 09ýÿÐÄ1 ÄÀÄÁ @pYÏ0üÿÀÀ$0 @ÀÀà @0�ÿü3ÀÈàÀˆ+1)ÈÂàÈ„+1+ÿüðÀx UÑ÷?ÿñõq!ÀàÀÀ - ÁÁüþ$9ÏßÀ)  zñïæ¦vøÁƒÁ w0ù‘ýqé0EÑõ A0CJ�< ? õÿ6Öÿÿ'.1&ððð„‹ñÿ?4"ðððð UÑÕ?ü  GG�×OGHðÿóÃHÕÔIJÛ�ŸÏY\G”DJIQ2„tJŸ÷ÿÀ~JżäH1Jÿÿ�Žg¸£T ððð !"ÃÃÛœKLrq’•'Ì™C_µÓq&LUQåH <Ba$ @&Cà Ãçüÿ% 1\-ÿÿÀ0#0sn3 I ```ÐÐ à6mf!& _ÿÿÿ?_ ?_ ?_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸüÌÃóÿ€ÿ `ÿ `ÿóüÌÏ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(///¸?_ ?_ ?_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(///¸?_ ?_ ?_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@00UQU$’@Ì||‚‚‚|€‚~€ÒÿI$Ç‚‚ÇÇà`‚‚~`` ```ÒI$ÿÇÇÇ‚‚‚‚à```~ ```UUUUÌ0Ãÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿÿÿ ÿüÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿó 00ÿÿÿÿÿÿà ÀÀÿÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀÀà ÿÿÿÿÿ00à ÿÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿUUUU Œ Î fl fl  fl  f l  c0  ÀÀ €ÀÀÀ €ÀÀÀ €ÀÀÀ €Àà 0  ÀÀ€À ÀÀ€À ÀÀ€À ÿÿÿÿb`bbÜ`bbÜ`bbÜ`bbb`bÁ`bÁ`bÁ`bb`Áb`Áb`ÁbaÂbbb`Übb`Übb`Übb`bb`bÜb`bÜb`bÜb`bbb`bÜb`bÜb`bÜb`bb`bbÜ`bbÜ`bbÜ`bbb`bÁ`bÁ`bÁ`bdaÂ_aÂ_aÂ_aÂbbb`Übb`Übb`Übb`bb`bÜb`bÜb`bÜb`bbb`bÜb`bÜb`bÜb`bb`bbÜ`bbÜ`bbÜ`bbb`_`_`_`ÆaÂ_aÂ_aÂ_aÂbbb`Übb`Übb`Übb`bb`bÜb`bÜb`bÜb`bbb`bÜb`bÜb`ÿÿÿÿIII//////0IIIGGGGGGIII///0000IIIGGGGGGIII20000IIIGGGGGUUUUÀÀÀ«©© 00«©©«Ã 0©«©©000«©©000«©©000«©©00ë©©« 0à ©©«©©000«©©000«©©000«©©000«©©30ë©©«©« 00©©«000©©«000©©«UUUUÀÀÀÀ?à 00?à 00?0000?0000?0000?000Ã? 0à 0000?0000?0000?0000?330Ã? 000?0000?0000?UUUUÀÀÀÀ7î\îà 037î\î\’à 00\ì\5î0000ì\5î0000ì\5î0000ì\5î003Ãì\5’\ì ðà \’\\î\0000Z\î\0000Z\î\0000Z\î\0000Z\î\330ÃZ\î\ì\î 000\Z\î0000\Z\î0000\Z\îUUUUÀÀÀÀ@à 00@à 00@0000@0000@0000@000Ã@ 0à 0000@0000@0000@0000@330Ã@ 000@0000@0000@TQ?EFFE¡ð?ðèE0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 >8FH6( :8 BD2( 64 >@.$ 1      EC&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  1/21864 >@.$ 20 :<*  ., 68& 1      53&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$ 20 :<*  ., 68& 1     5 3*502,:<.   60>@2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$ 20 :<*  ., 68& 5        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)824:<*$ *,24" "$*, 5        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, T24_farT24_far„ÃHÐQÀYÄ„Cƒï÷€PÄDPD„ÀPDHÐQÄC€YDƒï÷ÂGP? Õ3ÌÌÌ-.ºººº¼ºÌsÌ̺º-.ç¹¹¹ÌÌ¿ÿ»¹¹¹.ºººº¼ººº/.ç¹¹¹»¹¹¹.ºººº¼ººº/.ç¹¹¹»¹¹¹õ3ÌÌÌÌóÌÌÁ»»_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ-•vv“ì~F9ºÔgÐ>dYü8&¤©ÇÈ�Ì"ÅpúéÛ¾ ‡öÎû†Vñ7Ž Äì™ÿÛºèÌÛº@(ƒ¯¼†ì6/x˲AHþ¸ýûÿýùû6LRLDDB P. : P R F B J H D ( &B>>>66<22D@4>2::*(@><:<8@04B>8<24>ÿD¸Z‰†ЧfóéÏŠDnˆ[}*ÌÕÞþMB²÷³¦˜Ñ&mB–ð¡Æ´oÅ7"³z“¸W$¤·—…e Ýs…wµŸ�Ú*Ôùš$¢À0 cõô°�akˆïUj $ôùb"òöunbòûD1yÿô:Au@ùz©EtÑvñ�âày­¶rbKCÛUð¦Cû-Ðožß^ºý€DZŠ:sØ pï‘Z{Áëñ"X/ETÂ_,ó'(OaŸ  Dó€™ D Æ 0C£A\À30@a0D'u€0C�Ý!þd€ 9CÎÁ|z@É;ÓZ8ÿÿÏÇ$[äİٛ¢üF¾G°”zJ©Ò ÿÿ×÷Á’±RÉV×Xõ$ôÐ`a-,ØÀFþŽÀ3 HòýDQ3[ª(ê¸ø„ð& 7‹½ÊÐÿÿ@ôàP`ÜÈÉ8HÿÿƒC>ügKíþôÿ¦p ÖA� ÿòðn£ßåÀÁ\U?îña` ‘�¯ÆHH›žKHÿý3h ›š¾dß•L3~ì¾`d›”™NÕ3ÌÌÌ``@000Ì3ÌÌ0(x`@0ÌÌ?ÿ000(``@0000(x`@0000(``@0000(x`@0000(U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`À]¼µ‹þÙ�Á€OÀ¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT25_farT25_far�ðB^ÀbÄ�C‡ÆÀYÄDPD�ÀYD°B^Ã�C€bD‡ÆÃ`PX õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿêØ¦r¥fÓ[~è�ë„ìÖjóà‘"…3/Á–�®ûáÿÙió‚6¿*–¬ þu^œI/._Ó$˜.€W˜V°.˳ª4R\À*‡uK+”I�ÿ <PNJLJHLP DL J D DD@ J 0(<<68:86T,@@424840(8:8::6*b,:B42:8(ÿSºG(˜ÍÝH>¥ë °Àór[ÓE qå C0ä—©b%á´8çÇN"žÍ%_îÇr’ÊI K”IÊãÅæ–×ó�дn 'Ò(dUG]ªq¤€ @#õBô’"i !TröÈ hôûFAöÆ_b2yôÝ(FSÿC�ÿÎ Ûëc@¶åv¢Xè?Gâ“­ÌFÞ½lÜ×wºÿÓ³ap�;Ê`ƒ@¦óTà>´nQ½%�®ÏûL´F¼¨©k—¶˜]l•šb2TV44T4Z’"4¸–"®öÕÅJÐ cÔü 7  ý$Ì gŒ£{»ÄîÔ5B¹ÿ.®ƒÿlaw   ßd.8I’LÒ­¡  þ–º«ÛM”ûíÊ1 nÀLôýhCð3Höÿ*f1÷iÊý;i®‘J¾û`ÿûý˜Ýä8(ü —y›•æ=»3³§r#Zp�BÀ…QzÒ   U=üÄwv ‘š+ÒI˜›NHÿO.•–üBdÿ•F2wþB@•˜�<õ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`ÀA_¶#¡žþ³„Á€XÀ¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT26_farT26_far‡Ã‘jÀkćCºÀbÄDkD‡Ã€bD‘jÇC€kDºà k U3ÌÌÌOPÁÁ¿ÁÁ¿ÌóÌÌÁÁÍMNrÂÂÀÌÌÿ3ÂÂÀ‘OPÁÁ¿333ÿÁÁ¿ÁÁ”NrÂÂÀÂÂÀÂCMN¿ÁÁ¿ÌÌÏ3ÁÁ¿Á PpÂÂ330ÀÂÂÀÂU3ÌÌÌÌóÌÌËÌÌÿ3À333ÿ¿¼ÌÌÏ3·330ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª ÿÿª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ÿÿüª©ª©ª©ª©ª©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª ÿÿª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ÿÿüª©ª©ª©ª©ª©ªÿ¥SØ´è +Mwéùj(éeâ® Û·‹ d³ãÊ9©ƒc¼mó·MýÛí²˜÷è×Aðìïô·©ýF›Õãýê뻈÷*Y]ÅGu ÚÏý¤…^#�®¢¸>ÿÿüo4^/jILüVËëÿBVXRTZ!XJzHR`LLRRDV#>T\TPX!T!Td06H44062X#BP^TPT'Z!V€LT^ÿÿüJNNPNÿ=p³k½PPÎ\þnžGúŠ¿‰m†úk70>Yϒ䨇BÆéÊ“\õ8Þù#8õ™ûÈFhòÞu¹AÔ*XbÃ�.c¶�ئrŒÏ¢uGàìa�ú­4üŠ(l\íx†ñþÏüÐŒU˜äU)ªiþ…0÷&òÒCbU2�að h RP¯?Y   O:†b#0R0Bö�ODcø$ ÿÒI ®Âq¹Wœ6_‡“ýzà™´•_UMö#+Ô¢9vpX¿Æ^ô´êÚA|/PL¤fÜ5 ç«#¢¿· ŸYëŽNªòÅ>œâO¤žVÖM~ãÄÑÕh™ÿÿü“„MÚ ÙÇVóð•#%R²úÅ,$ãD@TQ®{Òhb5@)I"wa¼]ü\—_Ï!ý V/L%ÿÿǰ»>ÌÁ²4ö¾z1¼KýïK·ÿøÙÌ-)knj ;ÿÿ %'Ûa×V2;ÿÿü|JɾÁëÒ¼“¢X÷(òòc€+nýÀ <¿+Àð @øÏOD5#ð4 û©!¾Ë5Ùèü £ÒBúÿÿóöGðu²áÀ ‹–csIr‡]­{b4f‘iÌ ’ÝÀ™qnqç$ü¿£F×1ÓS0A7  °ÌU<ÿÇ>gt—š•–•ßÒ@Ž�DdÏø.]j |?�•’‘މ�I ùö„#_.Up� QÉJ „U3ÌÌÌ'(``L000ÌóÌÌ0.x`@0ÌÌÿ3000(``@333ÿ0000(x`@0000(0``40ÌÌÏ3000"*x`43300000"U€À€þÀþþ0€þÀþª*`VVVVVVVVP`VVVVVVVVeeeeeee``VVVVVVVVVeeeeeee`¶`ç%Bíÿ1„Á€aÀ¿IÐ            Q        rt jp ntY         T27_farT27_far“ÃrJuÀtÄŠC¤ ÀkÄDkD“ÀkDrJuÊC€tD¤ Ãëkã U3ÌÌÌ�žprrprpÌóÌÌrr›œôqqoÌÌÿ3qqoq¿›œprr333Ĺ™÷“îÚ ò—Y"ì)hÝØžA�ÚÔwIÿC…M›4Æ û94êK×ÑZ”+aVšp͔ȳQÞþ†ò^ÇýÜ�ÿÿüyv˜g'†íf:´sÿ!DT`!ZPP!^RnLVXFFLJHN#FT^VJJRNv RZZJFNRFD!@RZPJJDHÿÿüR <<@44:@8ÿ~§±XÉ´ÏõX ŸU©Òœ¥P»à›Ä‚ }ë«ëÑQÅÊ­­ó?wP¾~Y|iÓÇs5ò²MÒŒ¹Þrå™ZÆ šuêÊ!0:;”›õh!Gj0Ù±•ØÉPG��Í}ÿÿün£Rì€dÖ¬J˜ª*¦€1&!1ù"öÒc Q20ñJ&Bb5DPÔcp�`0P!@ñbfH@3"A0?raQ cÿ.rô«#.z¤F.3þîqüý¼(ÒÅogÊ£%„,$Ë꯿ì¯H(çõÀ¿v*zõ­FZÞî«PëÌnæ"Kó ê0ðV©bÄUÓZ#âüòüMºao÷p=/ç]ÿÿü¯˜Ã©wh X£ú%š%SB$Dô’!AßáÅ $q$`CrLììBþ.F30~qBa0`”I…öÈØ=#È*’D6­¥43¾ºOò)˜ÿ=�Õ­ã¶¿èÏhŠšk8ýèŒ;™  ?ÿüLÙÀ¶=4ó‚X"ù"öÒ…À)lÀF; p�¡0PAaðFr�P@=Ûfºö¦üÑÓÎ#fµÿÿó,õðÔ¢BЯb¼ÿÿx{ÚÖtÛô»ÑȈ„‰‘Oë�ØàÐà0@2 ÿe½‡-,ï­×XŒuä$\]Jˆûý„ÚîVøÆ‚Q0d[XŸÂ@‘ŒE˜ÿü2ad wûˇ�•D„„„�2hhAññð�”‡ù „„AU3ÌÌÌ`L0000ÌóÌÌ.x`40ÌÌÿ3000"r`@0333<000(0xÌÌÌÏX00000„ó333`40000"?ÿü*xX00000UÀ€þÀ þþ€ þ0€þª`VVVVVVVVP`VVVVVVVVeeeeeeee`VVVVVVVVeeeeeeeÀŸ[Ë*ÇG$þk´Á€jÀ¿IÐ            M          Q M        rt T28_farT28_far™Ã{3À}Ä�CV_"ÀtÄDYD™Ã€tD{3Ã�C€}DV_"ÃYü U3ÌÌÌÅÆåååååãÌóÌÌåå\ÅÆ ææäÌÌÿ3ææææÏÅÆååå333ÿãååååÐÆ ææäææææjÆåååãååååÐÿÿÀÆ ææäææææU3ÌÌÌÌóÌ̱ÌÌÿ3¨333ÿ§®§ÿÿÀª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª0ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª0ªÿ6¯3¼Å|Ãð›`OÒdv¤fIëoKð�H¼Ü¿0¾Úä­ÑYGвi��rÃó§��M;2Ö*ÆZo¥\§úšÓé'‰é@°Ýa€¡ÿÿÀîo<;õd!ÿ8PRPNFD >l  PNVFFFPD J! :PPLHD D : P 8<@2:4@8" (:B:6:8.HÿÿÀ6<>2@4<8ÿêz›ùŠBGl]ij�3Í(D&ŒX›÷§¹9ä%í°"üʲ%sÉ‚�>>ˆ² ö’}(õUè‘´«MŸÜ Zð¶›cʃ_ŸãqGW´^öFóÿÿÀ‹ôÞ*OwÿG© ü0 3ó"�pA ar@òDH@h!#/Mti·Ì·r kK’C#@ÿŠQ{>2õíZÖžs_KØ&0böì�§÷À# b¶¢î±ä«ÉܨÁ|`�®&ÉBÜØ§*Øã²(Áan‹¡Îéu»’^‘�I‡j»æ€ ûÿÿÀ] :ð=Ä¢iô±S0&¡vr42ðQÊ3#*51@s ·€}ìH»z©¤ÂÜ™>˜ŠGä  sE]0`3ÿ/©—qÚÿÿÈ_òß7cƒ ®ÿÿÀ@LŽSpÓ�yX õ$Ò’Cƒ9Ž�ÀJþ=%ðJ9O’CC ë Õ=V©èžó²DöòC´ÿÿó"00£Ð)5æŠ@1 @¿ÿÿõù *ùXÑ#ؚʹG·ÁîB“ ôY!¶ß9ëRŠMç@ e?ÿ7Ücban �œ—˜�ÞÒ@ Ž…@  ôDj2— ��@/<¡_÷ÿ@•˜‡B™€U3ÌÌÌX00000ÌóÌÌ$xL00ÌÌÿ300.®L00333ÿ00.6xL0000.–L0000.6ÿÿÀxL0000.U€ÀþÂþþ2þþª`VVVVVVVVP`VVVVVVVVeeeeeee`04V”%¤ˆÿØÁ€sÀ¿IÐ            Q        rt bpjlfpfhblbd^h^`ZdZ\V`VXR\RTNXNPJTJLFPJLRPVXFPRTJPRTJPRTJPRTJPRTJPRTJPRTT29_farT29_far™Ãv…Ã@ƒÄ�C)û+À}ÄDPD™Ã€}Dv…Ã�C@ƒD)û+Ã^PV õ3ÌÌÌÅÆåååãååÌóÌÌååiÅÆ ææäææææjÆåååãååååÐÆ ææäææææjÆåååãååååÐÆ ææäææææõ3ÌÌÌÌóÌÌ­®§®§_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿDÑ¥+l©1‰fq BìoJåyò ­é»“y)Óܵ`·Ç”‚ï„VˆUF¤YEà©ö%\ßu±˜4Á)êõÒ¶ÏóÀa Âx¬:tÿ >LRLHPJ <T  JPVFRDLH( (@@48<40J0>B2>866, &>>2:<2.N.@D86668ÿ÷È`MÀ³›PÓBú.…Qi*Jl /z¦lz¢‰2Äébîè5x<…Â6 ï{£¤1÷úê£*Óy^BC‘ÊØQå~ä;óïä1ªPd P11õ$òpca" òŒS@p‘ôù"ñæappCqôÿ ]ÿóàŒ†b·#€ý“{ÄLãù÷V¶³ã³Jó4Þ®çða}·žJVͧJ–ù¯sÚ]m: H¡�™©ð•bÉArÕ¹™¯­0ÀŸ–!RA#%/�Ÿ” F #´b20bR€b03Hþ4•â  oöØKÜgž¾ìá¡©Û+3²Gãüÿ #›Bß “Š KðÄT1Á ¦÷‰Ð˜õ&ô²c5HÀJöùD4ð7Jû`3[VÔ]™^¢³.ì¬mÒºÚÿóÒÁPOr¿œ€ÿÿ/ªv¶…·þÿ ÿe}Rlc×E²1”ë&»e<þ\#�‚ ›ÜÒIšA ò¬3@:þ@ ßC<�ÏÞB`žCõ3ÌÌÌL0000.ÌóÌÌxL0000.–L0000.6xL0000.–L0000.6xL0000.U€ÀþÈþ Èþþ þPÀÀÿj`VVVVVVVVP`VVVVVVVV@€—S${²þ¢äÁ€|À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT30_farT30_far™Ã·)‹ÃÀ‡Ä�C›õ6Ã@ƒÄDbD™Ã@ƒD·)‹Ã�CÀ‡D›õ6ÃæbÞ U3ÌÌÌÅÆåååãååÌóÌÌååiÅÆ ææäÌÌÏ3ææææ[Æååå333ÿååãååiÆ ææäææææ[ÆåååååãååÝüÌÌÌÅÆ ææææäæÀæU3ÌÌÌÌóÌÌ­ÌÌÏ3²333ÿ«²µüÌÌÌÀª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª0ª©ª©ª©ª©ª©ª©ª©ª©ªð©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª0ª©ª©ª©ª©ª©ª©ª©ª©ªð©ªÿL;\".�”ù‘)p Çyb5„8~ÃLà :qßÚ\ÑæÜýcbW9õ»7¸ÉÈ¡BÌz!´áŒuͨ†0+#9.â°ê–N¤Hd£vìJÕÃFñ~RûQÒð•¼ÿ 4NNHRVHFfFRVH DLNJF8LPDNRHDd6@>:4262:&6:,684,lH JTLLJJðPÿÏ�™èÂÜXË39O¹3´m>¼Ç0M±Í•È)È2Í¢:øÏ”#Hfð0LSøùýq†è$tàW¸þYÉ�‘›ÎˆªÒ¡Ñ(SÒ@/ˆÖ«òµ¤gOú¾[7‚Vð#fš Rˆa5B1õò°A¡Y¤ÿ3h#$ 5W²a„O¯eS\_VòPA` ÿ}gN`@”™í›jŒá~ï�™ªÕG}IrM¨5�ò lê1þzÇ/ Ó»FlB=Ì!ÀJü9 õ°H3Tô’@A@@׆TÌ<+Ö@h½�>ÿÖýéà:f¢‡ý˜¿ÿ]ó~…Gë5íVž³§ÊíhG€?ÿÿàÄ’iÓ6822.N ,B N@ : > DJnJPTFLJLFÿ?AÈÊ· âÏ• Þ*W—* äà¼dØ*»Bµ¬S“\ñ ]2&¬PqKk¥Å�TÐ1#)ø£†»/ý*G> L® V·to”Eýìv[¦· �¦âÈäøÀ_'“îüÆÊM÷ܺ28ÃöÎöª¨�3 ÷$ÒR!aa a ûOdf$01kB$(ŠQ` ükÚœ�ÿ?«N*=ô…dF$8O¼ óïx·Quž|±Z£ð'f¥žgœŸëZ]_ L%ÅÓ¿FNK,óóPëã/` å|Í —@ßúvFŸËõœ�Pn#À3m¡¶¡z|Ë~Bu’*’¿�zšM8ß ÏüêDÔ9¥&tâ ªØ-ýAA…ƒöAB@#  'aCB@3d!Æì‘Ø2¥�t}ìÊåÏ×ò|<Ê5�Øû3òè�˜aƒtg 30ÿ¨­Y…Öÿð;;¿heU)± €?ÿ·ß¯lœ¸÷ÿÿîlKÅÄ '}T%ûî 5 -,ÀFý;ëpB7ü7 cB@!a×-ÀqÁª‚ÕÑ“²à”:ž–ÿó %xp©—Ýÿÿì)ùÑåá†kŸU ¯û÷_²Š­€?ÿÿ�~k½Ñ Îcw©;ƒá* ¿Ùa0@4VôÈ`3@ edwÐ ƒB� ÿõ3`tÿs‘–‡B6ÿ2cn  "òI“HHaU3ÌÌÌ`40000ÌóÌÌ"xX00ÌÌÏ3000T`@0333ÿ000(0xX00000<`X0033?Ì000 x`ÌÌÌ40000"UÀþÀ þþ0þ0þ€=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥ffffHffCCCCCCC@™™™˜ffff;VM$V¯ÿïÌÁ@‡Ã€¿JÐ           U        rt  rÕ              T32_farT32_far‡Ãk –ÃÀ�Ä„CšˆUÃ@ŒÄDbD‡Ã@ŒDk –ÄCÀ�DšˆUÃßb× U3ÌÌÌ?@þüþþüþÌóÌÌüþ(?@ÂûýýÌÌÏ3ûýûýe>þþü333ÿþþüþü(@ÂûýÿóÌÌýûýûý¥@üþþüþüþþf@ÂûýýûýðûýU3ÌÌÌÌóÌ̽ÌÌÏ3Ä333ÿ½ÿóÌÌÊÃ𪩪©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª ÿÿª©ª©ª©ª©ªÿÿ©ª©ª©ª©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª ÿÿª©ª©ª©ª©ªÿÿ©ª©ª©ª©ªÿŽÇy“-‰ódiÙ¼aû�‚‘Ñé«@HKzÝòêÀšµ§}‘�Å>ç/jÙxHa¢B-&¨ÊÒ×®9j,WL‹-È(ûèy�¾ð}¶þ ºùûÿû÷ù2FJFB:@ FXJTXHJJLH<<LJ D F < @>J4NVD JJBBB2:N64:ð8<ÿuõÿÓl-+«ò€�F¶6už²Y5®&0y¦–$H‘õ�E�SŒ3§�—5’d è�ªßn÷#îa`!Cú7>Z\(9;f—Ò*ÜÖÒcûŠ@©kA—½h‡¿·ç½�ðÔ¼™ýÂD ùHò‘a`c™™ïðd1D!�´k�V¤Bl$ôý0iPÿ.¨çÁ;^\¦º¤j¢�"~ ŒB&çn�ölïw¯¡Å‚#é`iòsf_åZs{×>©JÑIJ”“Cán¹AÉY9?Aÿ{ƼÿuáW[,NvzN莯øè$ú�‚ðàĦE@3$"àÌ CEE!0Q@30# 3:@B7Uò10}ì� ŠNس(-Ô(’ jB·Èï€GD &ÿ igØÏ÷ îàøywúd€ÿÿuÍÌ™rkÒðRHXûLô°a`-!ŸÀFÿ1 Ô°Fÿu/`Ûwá|ŠXû<ö�ÉS ݲÿÿ÷pc)ª&ÜÝíÿÿû……û£ŠJ22 I‡“°òî;› á¿ûÿþ-Ë;P:åŽØ¤Ä/?†.ò° @U3ü~Vlkv�Ž€Ò@Eïý0 ‘–ßÃ�“’‹ŽG/X¦b4Ì3ä�Ž�’I@U3ÌÌÌ``4000ÌóÌÌ0"x`@0ÌÌ3000(``@333ÿ0000(x`@ÿóÌÌ0000('(``L0000.x`@000ð0(U€À€þÀþþ0€þÀ€þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿj @444444440@44444444!!™™˜@44444444 \m#ÇØÿÝäœÁÀ‹Ã€¿IÐ           U        rt fprtjtnpI uvkuououououououT33_farT33_far�ÃÑ›Ã@•Ä�C³ ^ÃÀ�ÄDPD�ÃÀ�DÑ›Ã�C@•D³ ^ÆP~ õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿgÕá¶nr°¢éì'cþ¼½c—¿óaJ’5M†¸ˆÙùÖ'µÇ©)tÊîK ¶ê}Þiþ|þ´ðAI0Íûò„ÿ³l«´—,%‘ pÿ@NVFDN F D PBN`NDLFJ*(>B4.D88F .6F>28<0.*>>44:84P *Ù?Qnª©ÍGV|@"!22VvãUDRD$Ep�$�I8C@þ£ p 5�þ¾<` ‘uf³3ÁñÍ9õHBÁ  HÀŽ”òoÇèË�� ºeýmOwnª—n˜÷Bôô#ã-%®ÀJñ½:$ð1DðŸ:#$1Ûû¥_ÑHXÁûbR>ÀÜäNÿÿó ’ d�GMbz¦˜ÿÿlIÃÿ™ÏËè§æ)~�ÿüó ÝÜ%`ª^%f\ò¤QbÏГ’G ÿü9„!Rþ@ÿ‘H*ýü@“�Eõ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ Àþþ€ þ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÀÿUffffHffffÀ€A_6$ïr÷£„Á@�À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSU T06_powder T06_powderp ×_Â^Ã�B33 Â:ÃÅÅpÂ:C ×_Â�B^C33 Â]U uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/-^/-^/-^/-Œ/-^/-^/-^üÌÌÌ/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-Œ/-^/-^/-^/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-Œ/-^/-^/-^/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/^/-^/-^/-^/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/^/0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-iû®ë3ÌÌÌ.ø`@iF”iFô F”ipüÌÌÌ.F”iF”oF”p  . F”iFôiF”p .ÿÿøF”iF”ôiF”iFv.øCCCOCv¥:S¥:ÿÿÿ.ßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©0ÏÌ0©ª©ª©«©©ª©ª©ª©ª©ª©ª©ª©üüª©«ãä©«© 0Ãé«©¬«© 0«©©ÿãä«©©« 0ð驪©«© À©«ÿÀÃãä©«©©« ðà ©¬«©«©À©ÿÃ3<ãä«©©«©©ª©0ë©© ü«ãä©«©ßUUUTSTSTSTSTSTST7S0ÏÌ0SSTSTSTSTSTSTSTüÿSTV9? 0ÃÃU 0VÿÃ9? 0ðÃU ÀTÿðÃ7? ðà SÀVÿó3<9?U0à ÿT7?ÿÿÿÿt…ñT¾@ù)o¯)Ò}q]'ð²ðò¦ðåð=Û ?Ù3æ =º²ˆ²ÆðÅÆòÇÈ²ÇøŠ� ÝŠ!ùùøŠøJzJyRÔò ’ =‘t²tñ3Ù5=Ù Ð'H¼}ðúù²ÅÆòÇÈðú½“ñ³Ð†ªç9¥Ãž~tïò44tÆH3žH¼J?¨Jº²ÅÆðÅÆ²‡ˆò‡z+‘2œ_³Ís÷èe’ï…rttˆ=hˆ*ÆQû¼ð‡JðIJð ò U�U‡(häçŠ×Q[ò @Ûttr¼»‘»‘}Ï}ºòr~=²~?ð@}‘)�‰°œ§äyýEüüG1¾^{4tt ëÛ®Û!! %# #%% '%Ùyyù‰Qðšq’& T#R%B%B#F#H#H%H#I"I3- qñÏp žsÿÿ 0, " $7 I3-   qù!p $2* "+ G-ÿÿ9—Ÿq+qù!’!’&4,/*O!!%y™  p$²Ë?ÿ 6, ;.Q!%/ ÿÿÿÿ“¯�³ÆõºªœÚè•–²²Ûë=PËšŒ•èrûD¸ùÈÔŒZx¢unRí¤ �¨Ÿ¦žÞþ`Q¨À¿äPi�?À"/8I]¨Ñ¯}Õ ¿‹É‚(�ðl‘ñ¶FÑuÀZ¡sTÅ ƒÏ½¨µz<¦™˜Ç«ÐeNÔKÒA%YKwP´,ÒÕ(eÍO £¥TË\š‚ªäž-jHÜ ZØ\ ¢ˆ™G�°Í1äIÆŸ²šZTxï}mª­ªªÀôö1ù&û$ôð_õÿ_õøQ…?ðàR0ïÿKV %>%%83ƒÿ¨!R>)µ¯Ðÿÿ'@Ùý?³Q…_ø¡òDP7mo³é>“Ç5Q§<ú ö�@"P�vVvSV¶kH´oú öóFBOïT!ÿÿÿÿöà.�à©nÚØ³Ý ö4}ÿ{º®®ßJ?ùC‡Šƒâ‰köCt�zT¼™zlÂ?®¹Ïù÷ t–xPè两áx%aŠƒâkåj`™ÝõT71îC&+ÇV§”(–|šiž"HŠ#k&BK—Yºˆ¾Ñ¡óf.¿=¼êZÊyn‰ýp¢M <mœ„_Ñ‘¯á""5ÑéèÑÉúûë8–·¯öuüÝ3�cW½ßLó":ªø"ö¶Œð·ªÖj2Eqšše–0Ccƒ�$Öra@#"2ºĆP@4²2F�´"4@| a�¢« %f# $tĘgêª× Tf" †I'rCI�fðy™†K®¾�cc‘($ù½m·Hß% ÿ$ð   š2 pŒF|BüÄ@üÄ@¯Ž|n]’)(®³—Êð˜ÎoOHúu~º={º™[ÓÏü³G¯p@[ýú”è Þ×Ì!azó6ïÿúÙÿ?üúýü³G¨ç@°¯vꪜ‘@Lm;$ ­ †?ÿÿ¥Î$ºäƒrãDøó‹1éK‹yiôù™¿ÛV k¥K'»i JÌý±Qÿò42/1ÏaAö! e†eø3ƒ8!?ðã R0# 0�ÿß0+@3ƒÿª%0?-4@3…ýEÀ# .S¥\üÁÀ ,Ö�hÖ�üÀ1Œ*_×uÝ6†² BíðÔf–Û³AÆENÖ‘‹ßG�x ±ÿÃÀæŽEK-.<Ì!" �0«æÄTÙ±Á]Á2ÿÿü±æBS^Ô°08k4ð dµ­²ò5O[¬r¤[`bbÿÿµTˆ,gÐg³üÿ âüŽQ $½}ø ¾Y¤ñ‡ÿÀÑ¥zVÏ#üÿÿ$Th¬îcôs|§ÁÁMîò ‚:¶BϤ?À#"Tc•·+üå„£áê¥Û^Õe•àöö1ù,ˆ%  %ÿ�€  Hïÿ 2 ÿ>ø% `2 [Porÿÿ˜ï0Yÿo·ý?ibÿÀ ˜ü+4 4ÿÿÐ  €ÿõFdOÿ8wl'uÿÿÿ3ÌÌÌ/0_//?__ð Ïÿ_?//?p/?p/?p/?�///üÌÌÌ`@0000(o0_//?___?//?p/?p/?p/?�///`@0000(o0_//?___?//?p/?p/?p/?�///`@0000(o0_//?___?//?p/?p/?p/Ï///`@0000(o0_//?___?//0/0/0/Ï0000`@0000(o0_//?___?/UUUUaÀý€ ÿa‡ý€ÿ@aÀý Àÿ†Àÿ Àÿ0ÿ ÿTUUTóó ÿÿÿÿÿÿÿÿÿ0Ì0ÿÿÿÿÿÿÀÿÿÿÿÿÿÿ 0ÀÃÿÿÿÿÿ 0ÿÿÿÃÿÿÿÿÿÿ 00Ãÿÿÿÿÿ ÿ?ðÃÿÿÿÿÿÿÿ 0à ÿÿÿÿÿ?ó3 ÿÿÿÿÿÿÿÿÿ0Ãÿÿÿÿÿÿÿÿÿš–e™À¼¼¼¼¼¼s$$² 0ÉŒ  @¼¼¼¼¼¼¼¼ÀqBI à 0 $�0à  À qBI@ à  À qBI 0ƒÀqBI/0/0/0/.0].0].0]ÿÿü.0]¹¹¹¹»¹¹¹CCCO:S¥:zÿÿü 30 0©«©©«À©33 0?À=ð=ð²({S=»h»»æÿÿüÆù›ÎØIÅiRÑ °KÏÿü :*"ñSÒDûˆIÙÒ^O׸/ÿÿü7sŸ‹ö’çeåt vVV[�fÖ�¦ÿªC2 !à�´ož³Õ„ E‹6@�ÿÿü³/ÛL>=&zßÇøºïï Hÿÿ¯ÆËI²ªnÿÿüOιYïq‰¸ ¯JöÏÆÿ¬C2 #ÿý†Ümü“I°c1€ܘzq  a!€/0/0/0/·000ÿÿü0`@0000(ÿ€33 0ÿÿÿÿÿÿÀÿ23  ÀcùÔ³ÿ§pÂ9À¿ËÐ           "$ " *,& *( 24.$        ",                  1/1    "$ " *,& 9                  )')    "$ " *,& 1           )')    "$ " *,& 1           )')     1                 r±                T34_farT34_far|ÃЫ¥ÃÀ™Ä|CáëjÃ@•ÄDPD|Ã@•DЫ¥Ã|CÀ™DáëjÑP‰ õ3ÌÌÌaa_aaaÌóÌÌ_aÚzb`bbb`bÙaa_aaa_aòzb`bbb`bÙaa_aaa_aòzb`bbb`bõ3ÌÌÌÌóÌÌÉÊÃÊÃ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÚ£ôË?lË­�dT‡Ø5n• ®á‡0ÿü™•o£†êTSÜ<^Äk`N�å{±,<:40..6l,0D6.080@,8:406,2j20@4008,ÿ£Â-Ïù5 èD%ÂzD”cxkËæ�Ô9Yeq~—^uDÉ�O= üçÉ£}{™åD�ã!\@ÒD !ø™ó©©O#ò²Äa¬¾©fQ¦&¤`0!Óþ Y  öÆ3Zøû#"ö„]\3"ô÷Z!Wÿ�$r`»§Zc¦åÝ%d´&õ\/‹ i`•›wo&ú-®ôHméT=#ÌöGFÅF¤Wt¾|¸&%ŽM…Õ;–êà8b5·9ˆi%Üfs@A"”R@ 2c0#Ú  7D‚µHý!ÌÝ$ ‹@RòÝ:1!ס¿ý|ìò¯ÉmýA ¸öjM)ÁâðØŠ ã!]€Ù#�˜ó(ôðA€/%ÒÀFúý:E"ð1FôùzC/›‘Ù¦Ú£H®É’6"lËÿÿðþû¥À˜6Ä{!˜ÿÿÛòe;J‹ ÿúì'&óÿ(.¸2«48KØÛVFÄ€0Pñ��ýÀ���J˜ÿý5r ™ž‹ü’ÿŽ‘J7v ÿ>@��Ž�Hõ3ÌÌÌ/0p`X000ÌóÌÌ00G0/ `X00000G0p`X00000/ `X00000G0p`X00000/ `X00000U€À€þÀ€þ Àþþ€ þ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÀÿj@444444440@44444444 À†aT4¦”%þhpÁÀ”À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT35_farT35_far|ÃxZ®Ã@žÄ|C}ÃÀ™ÄDPD|ÃÀ™DxZ®Ã|C@žD}ÇP õ3ÌÌÌaa_aaaÌóÌÌ_aÚzb`bbb`bÙaa_aaa_aòzb`bbb`bÙaa_aaa_aòzb`bbb`bõ3ÌÌÌÌóÌÌÉÊÃÊÃ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÀÜn«6º½‚cà2‚É}Ž©Ð�í—|Nõ/Ñ3Í[SÞ_z ŹÝ3 {´£RŠc×…çI'…|$ϳØÖ¬=qø=ÇrµB– :å¹$xÿ ! L%^#`!VPV#PRxT!RZPNPTH>&8>822.>`0:>2028,@&8B408(8l*>:24.44ÿ¿]¹]á3øùšË%À¹:óà‚ܾ±ïm4@Dfǯî*Åïk9Î ¥EÇgk]Xö©¦ÇmP�S}Å‘º¶èÏͧ†Ðid»Í ©înBù&ðp `[0@@òÊV$ö÷&&öÊaR$ôû&]ÿ…4nu1<¸³Ü+¥hÒ‘§ª{‘'¦úÿð"Ùy} •ébPñ‰òa áàäuþÃNE¨Ùò ÝeNw�{ÒØ¸Yé7õ¹í%‚Èž…ëòtßä"Y‘m%0áP” Ž Íi€8 Ÿ‚’$0aþ™ð0" Þ²/¥@›'L*âý4:$Ÿ˜­X€ ²‹+Œ©í˜ëU;|. WŸrf#˜þV˜ýJðp!€+ ÞÀ@ø÷F(ð3@ôý& 6/çH)vØ{ éÙ©šÑ™kÿû×Û0Nñ}03ÁÿóÿÿßÄì>éKúØ£ô  vò±X4›¨Ò´ë+, U>îL;sp ‘ŒÿÒ@‰Ž•žO ï?4 “�¾@ÿ™P/f óþf@—�Oõ3ÌÌÌ/0p`X000ÌóÌÌ00G0/ `X00000G0p`X00000/ `X00000G0p`X00000/ `X00000U€À€þÀ€þ Àþþ€ þ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÀÿUffffHffffÀ€†a3Îã$ý=pÁ@™Ã€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT36_farT36_far|Ã9.³ÃÀ¢Ä|CR‡Ã@žÄDPD|Ã@žD9.³Ã|CÀ¢DR‡Ã“P‹ õ3ÌÌÌaa_aaaÌóÌÌ_aÚzb`bbb`bÙaa_aaa_aòzb`bbb`bÙaa_aaa_aòzb`bbb`bõ3ÌÌÌÌóÌÌÉÊÃÊÃ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ’BDﺠ°ò $ÅŽ^±ñy–yú·�¿„'5x›½íyw½ê–o…?ƒ·œ-Rþ½ûžâ s²åÀÍôq©§„nDȇ˲xŠ¿a7¢ÿ<PZLJTDTXH\VNJFLL*&DD8080640<($DD<080<@0DF:640>ÿjïš¾5»ç\Žª ÒÐf ‰ŠMIpQÇòsž¼ †§A~E,ò„R˜À\"™m:~ ÿ}@‡Ätè:íhzD€õ flùgýŹÌ¡ª&„ÂrbóðScaeA !ôþ7d&ôûDBöømf5BòÿFBkÿJgdW•méé³lƒ†ˆ…­\ïÒ¶°µàâ)2Ý{°ÊÀV# ÷V@žÍÝ—Ù¼,€Û ö‰5åŸ}¾¿hñnúáèN©è�û. ou)Àc#j1Ec…¥§gGñp%g#C……A2!"LޙŠ  P2Aþ—ð0` £÷‰6¶GÓF‹2lCq‡.E(ØÝå³÷�7‰Éð©  O{=®c…ưð˜õô‘a`+‚ÀÀHòýdDQð1Jÿã3[Kè_—Á&ˆüšÂÙ ÿÿó@÷ó³7ѳa!*†ÿÿË߾߼&b þù�ÿTÕÿ'&»s‡(f\…GÞç[U7î_‘_d —�/ØI!•žM†ÿô/b—¢¾I†ÿM-`�ùþd’¢ Mõ3ÌÌÌ/0p`X000ÌóÌÌ00G0/ `X00000G0p`X00000/ `X00000G0p`X00000/ `X00000U€À€þÀ€þ Àþþ€ þ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÀÿj@444444440@44444444 À†a¿ý©pÁÀ�À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT37_farT37_far�çù¼Ã@§Ä�CDÙŠÃÀ¢ÄDPD�ÃÀ¢D§ù¼Ã�C@§DDيêP¢ õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ[òW9K—CÕÕî|ïúi:yt>í†y[aá)ÈÖ.(—ŸU0�a¬ŠÁeú/¨y+𤏯­ …`©ð‚öKÃøÅ íeODô&>KïÂ~k™ =ÿ0 HND< @ < @€ :PPHFBDHF"2@202,4r&8:202.:@"2@2.4,6p$8:4.20:ÿ œWDi´u› #t&$Sñ7º.…õ�™‘3n�°þ*z”‘=‘ ŒøB²õ üä8�ŸcÓ”&'txD]’¤$I¦5ŽLóÑÚáC—i¤ªõ÷§c‡g©ðdúöa6¶tðl^øù$3ðŒOX5!"öý$IÿåËÍ€kì’þˆŽæÐïŸLöÄ7]KÞÖÑ¡¼9º‚ÚßµéÉâZ,Šp~×¶Bö}S›´BRkûFØçÞÜXe2믥Ž¥E'‰ðË‚³¯Ÿ ÿÿÃt$Âs"Â5 \øþÚúçOÿõi ³pð´d‡œÿôÿ2!TDÿœ¦„+.oºÌaôa"üw#$U?ÿÌ}_^ ‡–¡¢ �’7ÒH`�’Ga ï?8‘’ü$�ÿ�’Kë#˜ _ %šRqŽœ¨.X 9Ë—OžD1ø‡ï*@À�]ܪ0„¡RýJòp ; 4ôª Nô÷`DôÈIJ1"QòùB2$KÿÜq�ÝCøh{œ{°â×e!‘KNQ—-ãQFÚØ:r‰JÀ‰ªMl¾¦c{bFæð’šËSíºËØ9:Ì^#¼RK ¿•„'ùð„eG¼ª R@c#©Ò0 "2Aa3""sB$1€*úJþ0wàž2Nz§èõ‚Z½t�—?C3¹°±  ˆÀ‘%ƒyˆç´„i 8z^öó�†xTÿî�) „/ÀJý À-BòûDR&-ÿ»¬’Þô£=ŽE••6up¡£"*‹)^©k½ÄЗ„�ƒÝ   ]#ZŸB-™(¥ VðÄàôÿl¡–‘”ÃÂI“D ÿ0 “’—þ@ÿŒC-d þþd„“”Cõ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ Àþþ€ þ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÀÿj@444444440@44444444 ÀA_7E ë2þ_å„ÁÀ¦Ã€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT39_farT39_far�Ã�ÌÃ@°Ä�C!£ÃÀ«ÄDPD�ÃÀ«D�ÌÃ�C@°D!£ÃyPq õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿC@Ú�PéT1ðã”~’„î#CcV:kkD£^31NäX ÛO6JG„«åÌB�…Z]°˜>ŒÁCý•w]Œ~a²oÓù 5Þo• Ÿ`Íñÿ<PZPLRRF ,  FTVL PPRR .<>& 2>F@@48B*>L8>:<<&2>F@>66DÿÖñµ¥Whˆ -æ ßVDcº„i5¡xý�Câ¬fý—~{­0jÊj¼š+—?]‘ÀÇ *6û�Kh8ÃY‰¤�äÉËHÕ¾`·†�Í}Œ×ª"¦d6t4rVõ²Sc!i!�#Eúü'Chò»&3þî{pS öÿF5yÿŠZƒlBF¤tZt_©çrr�ǘ²½qæCVzÅ9+Ì S�&´ ¨¥öß*`EÿŠZg˜®¸ž¯™_«ñþR¥é"´b—B‹lŒgHà^“ªQ‹ÍÿÿÿíÇ‹ñ“çë‰Iëýùõ#!""ôcC£²]#ü(Öù†%}Û@XïÔ’ ÿÿØ@3/‹©U( ûÿÿ€ÍxŸò™’6ña×ÿÿÁÊ [®ÉÝ)»˜õ ö°c / OÀJò½b5ð5NøýF73{f•´×Åv¹/f&”ù€6ÿÿñ@ú�64ð:ÌÿÞÍ<>6BFBB<6F.BL:F>6H6>N@>6>D (FF>H<:D4@P>6<@Bÿ\¿‰Ù•¨$¨fiDI°>LWó¹¡�ÖÒ§[nzk>éHÓyìýæÈ|H@8jquüI5‹B½_WÅ¡.¯‚yC¯+7•ü¸6Q8f øï¦ âôR0˜ÿþ m% aARPøþQ#tøû@Sþú{ttdúÿAQ{ÿ[?–}tEø¸{¢ž�0Nòм[ù8Q×MXJ²w7a€Ë8ðìrë{ø½IßÓ׌¼9� ðC¶\ôGû$wñÞNÈqªh2C!T #àTv1…�TPÇ1`pá 2 0R`i0A�tÁq]\`PÝ(—›%Ím}S�ìÿÿØ`"AépN“]ÿÿÆôF÷‰©wˆQêÃñÿÿídÉN‹SÕ•zÛ”ÿìˆ## �ìÀNúý& 3ð/N÷ +  W iñ¢"rœ}eGãŠë5¿ïD @ûÿÿ:e±¡J&Æ�þÿVˆÖ'´ÿüiÍ{´´üƒVðäâPð@Z“ÿæ���“Jÿß&“ž—~ÿN% z ûÜ`—Põ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ Àþþ€ þ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÀÿj@444444440@44444444 ÀA_F'dýÿXç„ÁÀ¯Ã€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT41_farT41_far�ÃÓlÌÃ@¹Ä�C)£¤ÃÀ´ÄDPD�ÃÀ´DÓlÌÃ�C@¹D)£¤ÃiPa õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ •±¸ÂÅÆã¥gm¶¢êÙd¾ðOð Ç�v×»é MðÍörô4÷áÄ”2՞öÝ)_]R†¼«aS7‡l/Û”L´N'V ½ûØõ3ÎÜÝ(FD@H>ì³Îì>> .FF8@D><8@HD6D<8 0HD6@B>> 4BJ<>D@6ÿá.•ÇÚ¨ÑG>£¤¨½ÔÏÎ49Ƈæ™6[2P.ªÎHÑØ.§ÏI;F?‚5ÿþ§¶aG’^�Á¡Øþ"HÁäáÝËân(�fðï:77zš±ªf†Á!##ÿHôòCàk0òÈ1@€òùAòäy~Pcõ_$„{ÿa'ç쌖WÅ^›GÙ»ÓûL§aBŽ]eÃ.k;žs¾žé*·´¹kÞÎ8x@”„JC®•wB¬ÿ¾S~öfnwy9!Jáˆ[9NÙÅâªccd0R4"'‡A£1 C"‘A€•(!0D1´d:Ur]\¼¾ñißÇ„&ˆ1 ÿÿÏÏÞ�ÙÿàÿÿÆÈ<êèkge£šŠÿÿêÛ§+¤�ÝàGXÿHôòCÀ!L/ÀH ó^À1 Dó_#d3W�F ¥Ã@¹ÄØ<Ø�Ã@¹DëcÌÃ�C€»D>¥ÃP<H õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«ÿÿÀ¬«¬«¬«¬«ª«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«ÿÿÀ¬«¬«¬«¬«ªÿŠJ}'|^6T7A�´S8s?2Ü‘Û8$ƒÝ)Ÿl<¶»–¿Nlæ’æá}TfŠy$q; ‘8_ø3ò%q­‡õ3ìÌÌ 0HD6BBÌóÌí@< 4DJ<@F@6 2HD6BB@< 4DL:@F@6ÿÉ(×aà_jù5ë.m©róR·-ï ûÙn4[D åé#•-ݼ–žîÇÞ€fešeGIgÞj „€Q@ô”ða@ƒ0£`ðô” |Msß�6 �†a‚c L5Ëvbvˆ¯sCæ6¤eÿb �3³ÿÿÀ×δL­¦º‹ `’df€\¡ ã*8îÛ$fÿþÀs–3¯¤6é»ÿÿéešeGIgÞXô”ða@9ÀÜÀ@ sß7WúEÚC‚þЇ4Ìj° ŽˆÿÀ—2òç¯ÿÿ<¼–žîÇÞü€¯Vðs’Dÿ1 vuŒ‹ƒÀ’GÏø: LGõ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿ*@444444440@44444444 A_»Z™ÿÿŽâ„ÁÀ¸Ã€¿ÝÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYT00_rockT00_rock@A ×£>ÀÀ�A®7@ðAl%l@AðÁ ×£>�AÀ@®7@{%s 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ?ð?�yz‚ûz‚ûzð?‚ûz‚ûzâÿÀ@f?ð?�yz‚ûz‚ûzð?‚ûz‚ûz8ÿÀêfÃåæ BÃÉÊ=ÃÃÎÍe?ð?? Ÿ@`Ÿ@`Ÿð?@`Ÿ@`Ÿ@ð`Ÿ@_‡—?00÷_P00€¿À`ßÏÀ¿Hƒÿ@UUr}}šà™``AØA€¿qÐ  "( "( "( "( "T06_rockT06_rockÀAÃõ^Â^ÃðA…ë9Â:Ãl%lÀA:CÃõ^ÂðA^C…ë9Â% 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀwT¼ûtvZ�µûtvI†vtv«°©tvv¼/v&ÿÀ§E¥¥iQ,kO.mK2sI8yEÿÀ<_`F7mŠuÈ7mÛ€çïüQ�ÏL]?ÀB 7_ƒ�$#<){Z1D{Z™YZËe2jü‹Hh²?ÀB3wZ��{|^›œ{Ú�×TSÌûå[;|³9V[?À8‹ ƒ�?ð?`_ @_ @_ð? @_ @_ ð@_ÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÀ1?@1?@1?@1?@1?ÍÀUUrê²åV¹`ÐA=À¿qÐ  "( "( "( "( " T07_groomed T07_groomedpÁ= ‚Â�èA ×_Â^à   ^ ^ pÁ^C= ‚¨A�C ×_Â(  Uõÿÿ30üÿ©«©©«©©ªª©ÿÌÌ?©ªª©«©©«©©«??ÌÌ©©«©©«©©«©???Ì©«©©«©©«©«©Ì???©«©©«©©«©©«ÌÌ??©©«©©«©©«©©«©«©ª©ª©ª©§ªª©©ªª©©ªª©©ªª©«©©«©©«©©«©©«©©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©©«©©«©«®ªª©ª©©«©ª©ª¬«©ª¬«©«©©«©©«©©«©©«©©«©©«©©«©©«©«©©«©©«©ÿÿÿÿ??*+*????????????V*+*+*+*????????????j*UU*?*????????UUUUüÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©ÀÿÌÌ©ª©ª©«©©« ©«© ©«© ©«© ©«© ©«©©üÀ«©©«©0 ©«© ©«© ©«©UUUUüÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÀÿÌÌS ? ? ? ? ?üÀ0 ? ? ?UUUõÿÀÀ†…†…†’††ÀÿÿÀçĆ…†…†…†çÀÀÿÿ†çĆ…†…†…†ÀÀÀÿç†çĆ…†ÿÀÀÀ…†…†ç†çÿÿÀÀĆ…†…†…†ç†ÀÿÌÌçĆ…†ç†ç† †ç†# †ç†# †ç†# †ç†# †ç†#†üÀ熈†�ˆ0 †#†çèaOÒàÞêBÑÓ!Aœ !AÓœD½AAN§œUUU•üÀÀÀÿÿÀTÀÀÿÿTÀÀÀÿTÿÀÀÀÿÿÀÀTÀÿÌÌT @ @ @ @ @üÀ0 @<þÝ) 3Á1 ±ƒõðFE¡èE<Þg;9ÃðFE°u9<ÿ­®3&à+�¼ëŒ™qÍ™…ôÁý|¡*D×öbþ{=ß—•¿³t<ÿ 0 4ïŒ '$WUUõµ¶‹Œ‹Ñà Œ‹/0<ÿÿ.-Œ‹Œ‹Œ‹Œ‹ÿÿŒ‹Œ‹Œ‹Œ‹ÿŒ‹Œ‹ÿŒ‹Œ‹ÿÿŒ‹Œ‹Œ‹Œ‹üÿüŒop§o¨pÑEçÃÌ‹/0.-Œ ‹Œ ü‹™ªãöj ‹Œ ‹Œ]ðÃü]¼µ*#Fj‹0<ÿŒñf™.l”lfÙÖ»�8�¥›pqèÍÙF~ˆXLj¬2Gãp€^“{¤€<ÿÿõûð"óDð. ð3ò@ôFò&!#t–•<ÿ!"¡Š£.Þg&Ü…kSD­®åæ9:T<ÿÿþ.6ùðWXL£X<‘HJÃðWXÛ’J  Ö‰ VŽå×Ü$GAVY CÐ’HΈŒî‘• � I ÈÏP¥€P _ÿÿÿ/?_Ð/?_Ð/0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `???Ìÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(Ð0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(è0o_ÿ//?_ÿ/0_?_Ð0_?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@UQU„LÇ‚‚ÇÇÈ‚‚~`````` ÿHHH@|||~‚‚‚‚~ Hÿ @||‚‚|~‚‚~UUUUüÀÀÿÿÿÿÿÿÿÀ?ÿÀÿÿÿÿÿÿÿÿÿÀÀ?ÿÿÿÿÿÿÿÿÿÿÀÀÀ?ÿÿÿÿÿÿÿÀÀÀÿÿÿÿÿÿÿ?ÿÀÀÿÿÿÿÿÿÿÿÿÀ?ÌÌÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿüÀÿÿÿÿÿ0 ÿÿÿÿ ÿÿÿÿ ÿÿÿÿUUUU ˜À€ÀæfÀ €Àæf À€Àæ fÀ€ÀæfÀ€ ÀæÈÈ            ¸€0      ÷ÿÿÿ©«©©«©©«©©«©©óüü«©©«©«§ª¬«©ª¬«©ª¬«©ª¬«©«©©«©©«©©«©©«©©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©©«©©«©«¬«¬«¬«¬ª©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©©«©©«¬¬«¬«¬ª©«©©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©©«©©«©«ÿÿÿÿ????V*?*?*?*????????????@,???????????????l?????????UUUU ©«© ü©«©©«©À0«© ©«© ©«© ©«© ©«©©30«©©«©©«©©«©©«©©«© Ì0©«©«©©«©©«©©«©UUUU ? ü?À0 ? ? ? ? 33????? Ì3????UUUÿüœœ²œœ +¥ÓNÊÏüšÅ²#†ç†††À0 ç†#øü<<� ¦8:Yà,Î�ÞPBMM™ ››\› ›SNAN��´ÔÒDP› ›7ìš +þPP… dˆ33††ç#††ç#††ÿçòMBBÅ� ÿüçÔ››�MÝÃç}Z†† Ì3’†††ˆ†l†ˆ†l†ˆ†l†ˆ†lUzUU| Ïü! @À0 @üü<<M G 5 †ò"ôDôBñ19jÒô"ôDÿ%5N0 ( 33@@«Fû+N+ÃF Ì3@@@@×?ÕR%}n.ñºÜc¨CÑoÏð½!Ë!ïðÁwJ¦VöÏ:–R±h´ËÿÓŠÀp{ª$‘74' ±VšjœÜÏ |æ‘-=sà�þ'Þ¯!g½€ß; 6×v‚�ÿÿš‡µ!Ì­¡iKÿÿ9:¼KË�†~o:p‡�_y%b�F3ÿ4Wü£V5•°§û Ïð*)Ïìüû4 !. *// <<?ØH=Ì“-[ž¹¿á0ÑËA–Mzúõ–Âÿ‹/0.^‹Œ ‹ÿûzŽ@Ú)ÿÿPO�9u²²h��LŠÛ»4†�‘®ž¤‚ÿ<ò4C/¼•*•©N�6+Ïð3 SÂb�ªð.ð5ô1äõ"73ó5ñÀñ. CÿU÷qû“û« ‡³#w8Q@Õ?U‡àÐåàÉæùQlBG’�dÔå sñD¢ BCØÝ~RÎÎ@C /0307> C(*DCÿÿÛ­êEbS×�>ÿÿIJLÏ…øqäÑlA?sü�H�'*WX?mºKÐ:+:%8/�œ  =0 Ó† M×6UDçA⹓�?Ðð5¬žì1$ ) •| 92ÕÿôÞ ïšæŸ ü=Ï "9Ïð-dA  H@H�<<@:8   J<VXF, NHVXB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" E      EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2468&(*, a     53B5HJDRT>0  F@NP6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&, U      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  Y $ & .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$ ) 97"9(*$24*  2,:<2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  5325864 >@.$  20 :<*   ., 68&   T07_powder T07_powder„Â= ‚Â�Ã�BìQ/Â^Ã�`�„Â^C= ‚Â�B�CìQ/»`³ uýÿÿ3ÌÌÌDC†BDBBDðüÿÖ“Õ¹npBmnmnàopß±moo±moo±ÿ333mooDBBDBBD3ÿÿBˆC†BDBBØ“oomo±omo±omo±omoo±mnÝoànÝoànÝoànÝoDBBDBBDBˆC†BDBBØ“oomo±omo±omo±omooànÝoànÝoAomooAomooDBBDBBDBBA†BBDBBØ“oomo±omo±omo±omo±opÝoo±pÝoo±pÝoo±pÝooDBBDBBDBDA†BBDBBØ“oomoiéêú3ÌÌÌ,èúUðee`ZfOfOvÿ3333ÿÿ.,fofofofdeĕĕÄp  .,ÿÿ€Fföföföf@õÄ•vÄöfOfdÿÿ,Fföföföfö\dõÆO\n ,ßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©qrª©«©ó<ÀÀ©ª©ª©«©©ª©ª©ª©ª©ª©ª©ªÿü©ª©«ãä©«©©«©ÿÀÀÀ©«©¬«©«ÀÀ©©ÿÀãä«©©«ÀÀ< ©©«¬«À©©0?«ãä©ð «©©«©À0¬«©« ©©ÿãä«©©ßUUUTSTSTSTSTSTST7Só<ÀÀSSTSTSTSTSTSTSÿÿTSTV9??ÿÀÀÀUÀÀVÿÀÀ9?ÀÀü ?À0?T7ü ?À0S VÿÀ9?ÿÿÿÿc=Ä®>ó÷BåÉ— 7Îù’”Ò”×À3ï=ïÐï>øïÊ€7Gï�oþÐM Dïˆ×ÁõH�q/!ù¨„,GOÝö�>jUöYÃôäââ („ž)¦þ©dÝIi´%2ïÒñÒ|ï=¨¿›yÛ60{_ðü¹˜“±�±Q•”=`ÁòÑËÕâßßÚV®P җʘ±÷�5`¹±Ò$õqd̆ã^ñ‹ )¬ÒýT%|V}$žÒ¡…rãÔà&4(Èßâ݈„Ü{ºþky{G-P2P|ï=¨Có#y�t9{Ñ€=¹í&¾mÜV?¤bÜÒ„džó)j‚{�¡¡Ý:ìÌëëêú-#,)#%%%'+™yÿªi *wrE’g$ZH<8:!@!B!>#?$E!) ·<—•:•y�Fð(ðH$ >( G ?ÿùÙ¹÷Qi0!)I0G1ù jñŠ÷&Ï’Œÿÿ>$ O;!)  ¹õ00÷ŒðHï$!% 8  A7!+  ÿÿÿÿ²RôÉœÌý´~1¼ÎJ‡*ÊI‘˜]qÍðk9 ®¤BåI‘Uºøêvók ¬KÍî?œ“ ÂÈ‘ ¡ñ�N†¶ �"‰ÿ©ç�Ñ›u{|ñv„~¿e‚Óñûr.öoãq Ÿ}”64¼¿4¡ÂNµTÙ®#—ëS|衎på £°üÉÉÎÎ Ð 5Ù”bDÎ’ †´Ò¦:°—‹ïöNqüÒ¦çyëWëgc¯!\£j‹ºîëíÍg¥Eà6¹&¬¨èü%'öcç@œg›~¼ä�ܯ×E_…z�øI�¶ížâ2´¯ÝÛÍØ×:ˆîfmµ B�µ“ac)$·QþVXwæ\ª®®«ÒP�€b/PÅñ46#ÒÏÿ]_%ûTŠJ ( .. Vùöûøûøÿ>¢S$ñHFÂ_ûÿù*,*   ûõÿŸýn‚!46S$ðHÄ1D ( & $µoùöÿŸ�22÷úÿ^È2O0BjÄ�ÿ³ÿÿÿÿ·š„½�š&ÏõÂÏy2}2ˉo=¶èîP=·FæÙ¯õ€çwëÊÓ!Dfdœ¸qDiˆÙÎE jå` &úY»ê(³ èCI^šSåЯ JÙ€‘1ɺk–̽ñ÷0ÏÍ$Z%lÞ%¢­Z¿¹CMZ= ŠÆýaî i©iidšt (a²+h82 bøbw"## s¢s¢s„“"„0R¢â2 2 !4“¢“ñ5?qD @ÁEH ŽŽ„ 'SòwISô—B(”T�àöùz¾2 0AAñ=L)&Š×Q¡ÕQmmÑ´rßE“�šbæñn† ä??ßVkÿ™¿ É–ž§ßê6im&`Û1Ì5þ˜yUÔ÷ƒâ/,%¸E½�0@Ýø‹‹œ²fÒ„Ò¢Ô‚ÿøÿ¯{îw í¥V:“T¶#…akÿÀdõƒÐÁu# 36‚øbø€ØÙwï¶²è�˜àN᎓Dõãc›ÕAc׉âk‰|ñ5ø`°¡d(+  "ý #s&vùøûúû !úÿ>ÂS$ð"!&ÿ # "ûõÿ¿ýn¢':>ÿÀ&oùøÿŸÏ86#ùúÿÈ%Ro8#&_oïÛŠ7Xõy‰ `Ã"Rê ‡›Ûe·2¦D…Ú{«X£Bô¼<<]#$?ó ˜S=ÒÓØÌre³áç¬"ªÖx‰Ðâú¸GæœÞ4ÿÿxš¼�bŽKo<`ÿ  ¾Õ�hÌž²ìáÛææÈøå§/¤ Ÿ¤8qåàI¶×M ÿYðXÿ Œß¬�€BDi L�–hÁ÷ Ö逻<¯Ð•ƒ³ÿ >•ñ+Mdvïრ¤0 tösNˆÂ"ô¦­6òZ^—— Òÿ� €rMHPï?ðxXgn1ô˜ ÿVŠÿ2c^ˆ 088:fd`Ï/Z ‰ˆ6 ÿÿÂf4 2`Hð/?úä1-XOR  2..ð™&I!ƒ+/?üïñÿÕTKP�Šuýÿÿ3ÌÌÌ/0_//?__ðüÿ_?€O0(·/0/0ÿ0GGGÿ333`@0000(3ÿÿo0_//?_?'//ˆ'//ˆ'//ˆ'///è0/0/0/0`@0000(o0_//?_?'//ˆ'//ˆ'//ˆ'///ÿ0/0__`@0000('(W///?_?'//ˆ'//ˆ'//ˆ'// 0G0G0G0`@0000(?(W///?_?'//QQUT0ÿ @ÿÿ Àÿ ÿ Àÿ ÿ€ÿTUUUð3ÿÿÿÿÿÿÿÃ<ÀÀÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿüÀÀÀÿÿÿÿÿÿÀÿÿÀÀÿÿÿÿÿÿÀÀü ÿÿÿÿÿÿÀÿÿÿÿü ÿÿÿÿÿÿÀ0ÿÿÿ ÿÿÀÿÿÿÿÿšVZUÀ¼¼¼¼¼¼s$$4²òÀ€ @ ËËËËËËËÌqBI ï€À€ ÀÀ $�@ @”0@À07 ¼   À   {À ÿ±omÞomÞom±opopopßmoo±moo±moo±mooDBBDBBD†A†BBDBBØ“oomÞomÞomÞomÞpopopopßmoo±moo±moo±mooDBBDBBDºökf¶o@44p:fOfOfOf.,øf¶kf¶o444:fOftUà 3«©©«©©000«©©À«ÿÀà ãä©«©©«©30©«©©00«©Uà 33?0000?ÀTÿðà 7?3300??00ÿ"Y÷Ó`¹rÜ=±Ðï=±=‚ëà‰ eK ÿT Dó0àGV:Ý`åÒï]Eæ%Ó¡cci=þ=„NÊ5=³{5÷ÊÓ²9nâUB¬‘dü¬‚RTRj„Vxcܧº513 jÿlïŒÿŽ')+. "-7-¿™Ÿ0QpŽÿ®// +  &""ÿÊ_§®¡¨ï¶AT3Ì)ÍÎBB2H�ÈbáG4i¸¾½Kœªx9-¹ÅºLpš¾«ép‹zÙ‡¢.Ï jÜ/Ò°}°üÃ0_Wƒ*l —t™•t7³ --q£ôO�?ݲi® ÿŸõÿQPgg ..*¤%0ñ!ªH¯Ïõý_Óÿ  $ ?÷?Ó¤%0ÿêy¾OHXšxP[ô$iz@ÆÆ¡Õ†0¶„@¹æÖÔ ©—/làPñõ-¿'�¯ù%›nHyÌF‹F~�¼hÔ`Ôr8ïp….µôsbË-B¦?ü]{Ĩë0¤~[Y a†™%UuUs<Ä  pxa¤#I£ISs4iöÏ"žÚMÂÜ ÿÿÿò=³åÍefØà8 ¤§€l׃?þÿÿÁŸN/ø§ÖiÙI�¯•ïÀš`4'󲆻îZo¡-2³¡Úwö%ÓÑ¿"n#Ÿ>õ ^ k Pg‰ 20,¼À .  & ?ù_u?Ä%P$Ù ÿÿðŠ—Á€÷Ø�5»Ò’Ô§V‰8<ÿÿ û¶ä÷¥¿pÒ†¸5 •˜Õvõb”'Ù%jçð/ÿù:K¥-.G@Màq  Õÿÿð(   ���Ãÿ)PIL # Á™���˜Hÿˆ'/X'/X'/X0GGG`@0000('(W///?_?'/X'/X'/X'/p0GGG`@0000(0ÿÀÿ0ÿUà 33ÿÿÿÿÿÿÿ0000ÿÿÿÿÀÿÿÃÿÿÿÿÿÿ00ÿÿÿ0ÿV@@ 00 0 À Þ°Â3"00 ! ÿÿfÿåápÂ]À¿†Ð            & $&(" "$*,& &(.0*,.0*0        .8                  )')     "*,&  .(682$  -+2468&(*, m                535    "*,&  .(682$  28&M,         535    "*,&  .(682$  I        535    &("  &$ .0*   M  "*,&  .(68.   60>@6(      -+-     "$  " *,& %979$& .0&  .(68.   60>@6(  T07_rockT07_rockÀAR¸{Â�ÃðA¤pZÂ^Ãl%lÀA^CR¸{ÂðA�C¤pZÂ%ù 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀìu(ìuì%ÅÆOMO12xvvëÄv%Å'?ùžžÅÃÅÿÀë(žœžD—=R¡7P�7F‹98u=ÿÀ*_'zƒJÈji’8y H´&MK100?ÿ>.ABSTST-21FEV[>ÀÀÀTWUðFEüÿ°u9MÉÏÿÿðè|ŠdzÝ‚™¬¥Ûú>[ö&äðð9:EF¯°?ÿ9:ÔÀµß¥ÿýúŒ°[Ž*óóÿëGË«ña¿¿ƒ+ðŠ]ÿFçèEÞÝdcHßAZDïxHn¨ºœîÞ4†r@ÈEFsçPUðüÿð ,G/>??? %'%N)"``îíîíîíîðóóÿî4 ±5ètïNºìð<< kô.-/¼‹?ÿ0.^Eo§à~‹ÚÙžjY›]¶ ÁÖjkÏp¼,çrZxw}M/ÏÏÏ0p‹)aç/PAó?ïð0' ;d==?  ;H??Mv7ÿÿ)l  CóóûNO8!2'ð šÿø– $&*!0/ PUøüû𽨳²GD???>",Mꔂ�Å›íìððIJWXÛÜ?ÿüÂB‘×Ë’ÿý�J37mÓWóóÛ÷�w´\ðÑÒ?ð(ÿ©�ô¿ÿ–•–jâÍsÿÿÛÀ�‹|ÎÑÛÜ WX‘ÞA0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 >8FH6( 68>@.( .068&  5        EC6E<>8FH6(  >8FH6(  >8FH2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  )'2)824:<*$ *,24" "$*, =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, Y   53B5HJDRT>0  F@NP6( :8 BD.$  53*502,:<*  535"$    53258:4BD2$  :4BD2$  :4BD2$  2468&,Y       1/>1DF@RT>,F@NP:, >< FH2(  &024.,   >0JL:  Y  "$     53.5460>@.   60>@.   60>@2$  U  &("  *$24*  2,:<2$  5325824:<*$ *,24" "$*, m     53"5(*$24&  .(68*  2,:<2$   T08_packed T08_packedÁ.““Ã�@R8�€‹Ã   VQVÁ€‹C.“Â�@“CR8�Â$Q õ3üÌÏâáâá9äâä©äü<ÿ3âää¬âáâá9äâä©äâääâæäã9áã9áã9áã9ääâä©äâä©äâä©äâääâáâáâáâÀäõ3üÌÏ8787r8:8©8ü<ÿ3:8:ª8787r8:8©8:8:8:87p77p77p77p:8:8©8:8©8:8©8:8:8787878À8U ÏÿüËÍeËÌËÌËÌËÍó3ÿeËÍfËÍeËÌËÌÿðÃËÌËÍeËÍËÍ 0ÀÀËÍhÍÀÀÌÌËÍhÍËÍU Ïÿü24e21212124ó3ÿe24f42e4343ÿðÃ4342e4242 0ÀÀ42—2ÀÀÌÌ42—242_�™�Ò�虚™š™š™BX™B®�ררררüÏÿרר×G•IJÞØÿÿJÞØJÞØJÞ?ÿGHGHGHGÀJk�˜�Ž�Ž�Ž� ÿßD40CCœ�²C@@÷ÿóýýþùÿÿþùþùþù?ÿýþýþýþýÀÿU?üŒŽ}§ñÎ?ÿûàÃx¢ÿÿ^ªàyz‰ÿÿÀz‰z‰ß• ¡ÿÿxª©ª©â±ÄÀ”U=o',ÿÿ("4ý21|IÿÿÀ1|I1|[|ÿÿJ43434IJ€„'lS b   :,eèßÄßãú~}~}ÿð~}~ˆúºL! N!"!"!"!+ò£™N7›°U&?ÿ1ïàÃ~¢òÿ yz‰ÿÿÀz‰z‰ß• ¡T=o'*ÿ}21|Iÿÿ€1|I1|[|?ü@Îöaá¢ÿׯªÞÿÿxª©ª©â±ÄÀ”+Äÿ)t4}ÿÿJ43434IJ€õ3üÌÏ_`_`¿Ÿÿ€ßŸü<ÿ3ÿ€`_`_`¿Ÿÿ€ßŸÿ€ÿ_?@Ÿ`@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿÿÿÿÿÀ UÌ‚|0‚~ý3 d‚‚~ý’IÇ‚‚ÇÇæf‚‚~U Ïÿüÿ€€€ó3ÿÿÿÿ€€ÿðÀÿ 0ÀÀÀÀÌÌU„°! ‚ À€€Èr@ò5-þOþðÀ‹Ã€¿\Ð   ".0&      ".0&   BHJTNP      n(Te&*TVXNTVXNTVX.(68*  2,:<.   60>@2$  5  2F�35 ;=+% +- 35# #% +-   T08_powder T08_powder�Â×#”“ÄB®VÂ�Ã<V<�Â�C×#”„B“C®VÂÓVË uýÿÿ3ÌÌÌDC†BDBBDð ÏÿÖ“omnmnmnm±ooàopßppßppߨÿ333ºoomBBDBBD3ÿÿÀBˆC†BDBBDÖ“Õ¹npBmnmnmnppßppßppß±mooDBBDBBDBˆC†BDBBØ“oomo±omo±omo±omoo±mnÝoànÝoànÝoànÝoDBBDBBDBˆC†BDBBØ“oomo±omo±omo±omooànÝoànÝoAomooAopÝooDBBDBBDBBA†BBDBBØ“oomo±omo±omo±omoiùºº3ÌÌÌ,è@`VVVö e£Z5¯pÿ333 3ÿÿÀ.,úUöVV_Z5|  .,öföföf@ö\I\I\I\p.,øfofofofd\I\Ovfdö\dÿÿÿ,FföföföfßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©ÏÌ0ꩪ©«©©ãq©ª©ª©ª©ª©ª©ªÿÿ©ª©«ãä©«©ð Ì qr©«©©00«©Àÿ©ãä«©©ÀÀÀ?«©©«©©ð000ª©«©©0«ÿÀ00ãä©«©©«0©©ª©À0«©ÿ©ãä«©©ÀÀÀ«©©ßUUUTSTSTSTSTSTST7SÏÌ0ÃS7TSTSTSTSTSTSÿÿTSTV9ðÌÏ ??00ÀÿÀV9?ÀÀÀÿ?ð000U0Tÿð007?0??À0ÿV9ÀÀÀÀ?ÿÿÿÿa†ãVÐuTC¯Ûñ‰II‰d6ˆvǶ?¶?¶ŒÉ¸‚4?»M!ÌÎÌf}â¼Ý8$Ë›É[~ à ca³lÆ 6 ®œóõ|A¸?¶váÁ¹rÀ†�¾wxvÈŸáÚ^ÞŸ�Ÿ\aÔž‹KMT´‡|q�züs4øAµÉG^v¶v¸?‚7¬»HUÊjÁÆuº]a!ã#ÞßÕÞF_Zš!ÚÞKKKÖ ¼>yöƒ¾{þº|¿\vŠÿ9wª¾†uO¶=y5î¸?B9 ‘�`^!  Ê ¹WZØ ËÊtvtEü¿:Ã?>ü�AÁCA?ëûºº!#%)- -1W™™ù‰p��$ðœ‘p+ÐO&<  D<:48>@-"A!#!3  ÿÊPp�ŸÐ.#  >$ ="C##!  ËqËq«Q÷™÷���&<" U9%%!m»¿•usqz¯¯’jùjÿÿÿ0"  ] 9'% ÷0ÿÿÿÿ—MÁ‹æ�Þô(GDn\†‚?ÐÐôe�hÝ 9˜]J»¤ž¸Æ�=ŸÜ¤ÿýëi—˜Ið7ëZRüPOEífüŸ2׌5]9÷.òíþ¶ò/•_ 87 ®âíÝM(jq[�âß§v‡Šœol׋Q�¡äSŸüÿM\*ÔèƒÁYR™XQe‚¿JU”)ˆoãà¢3éÌ•�VsÆ‹7»ŸITRð}þ ¿o]E2É/p‹Àç*é˜Åø²>ºÆ}�÷s¡k»*3Ù¬ýÓxÇ ?KxÜIé^/m‚¼îšFÛãÝ ’¾ ¾)7†• @çâ*£wTëb1¾ª©[ª 4T ÁïPòqg‰‡øV’�Hÿ!  ›?ÓL ÅõCCO¯J%öÏ÷ÿœ$ð !ˆ` ùH( . .  oŸo¿�¿�Î…2ç Dåoÿÿ  ( (ßS¯Ÿ¯$*[÷õoù(,ñGH# FÓýµûµû•ÿÿÿÿkN]¹¯‡À!ì^¼ÛÙט{cû”ë38V0vyÍïªÏ6vl1}>…J­kÔ̽3N²gé^×9ÁD×.â,Ï i±àè>ñ®}+4ë¢gí#�Ìmn‰ÒKs÷M°·øÈÊ3÷ñ$ yïän¥›õ»þ>L$ÆVÄÁßܫޗZ ‹Î‚Ö8Ÿ.áì û\PÆ’@>Á´Gœ@*÷rLª¹»ì�ŒÐ“xlçæƒõ™`EK.þËŸeçkSµØn)€‚ìâÊH¨KzÉï+bº´f©YZ` a"2Tø  Ä2#™6cƒ›Â Fa°GBRE�5ô01HÊÊB%8':'8Gx;KÐ�’''QÁ%2€]åHHHùvžžÿ3Xð@;>¥d‰n{1zc FF3D°r;œõpçý0Ñ£šÿÿ+fó …S«Š=ðÀÿ8Èㄼœ"p:’âA£šŸ 6ôwɹ¡ØøTň“ˆÐhÛVDã5ºÁu& ,õÿÿðaNB3l†}&A  OHMf+d ÿÿÿÌq»ÿn¡îW­á¶cÝ;,B2¿Ä½_ÄÿÁ˜LNVýX@–@v T  eúxÔ�Jÿ'& %“.ÿ  øÿ÷ÿœD"À,o¿�¿¯¿¯   !Ï¥0 *ÿÿ ! ! 2_ùõoû 4L,_ßÛúeO�yðEÒ‡Ó1 bIœ©Œ'>üC íÐ×ó^2ÃÀoK%&òƒ”þôb2žðØÎf�É,Nô鬫X£<𠘬è—ùï­ë–°Ù‘9sK y[!uψ|”~S�b™ð€ ¡)¡)Üü?ÿÓ_Õ¾P•€[ÒéŽ÷G¥Û§ªí©Ä÷Õ”ÿõÿÿ'ƒE`öþ6mLM64¿ÞiX-´¢þ$«‡›(É�Ìdä'ëŠgüô]Ÿ Z™×Õ/ò4T ñåUT¯Qòòÿÿë%�€f˜?Ç,  ï?ù‡…v ov3 ð Š`-ÿ-\288��™™3ç(U^u„ƒ€4 0ÿô™˜ ,ÿÿu,URed]j0 * $ uýÿÿ3ÌÌÌ'(W///?_ð Ïÿ?'('('('(?('@'@'@@ÿ333'`@00003ÿÿÀ('(W///?_?@'_'('('('@'@'@o0(``@0000('(W///??HHHW0/X?/X?/X?/X``@0000('(W///??HHH'/X?/XŸ00(Ÿ0/`(``@0000(?////??HHHQU@ÀÿÿÿÀÿÀÿ0ÿÿ€ ÿUEUóüÌ€Ì0À€ÿÌÏ 00ÿÀÀÀÀÿ0000?ð000?€À0ÿÀÀÀÀ–VUU`VVVVVVÚ.hɈƒeeeeeeef`È  À"À€€âà 0Ȱ  9 "À€€ÿÞpÝoo±pÝoo±pÝoo±pÝooDBBDBBDBDA†BBDBBØ“oomo±omo±omo±omoAopoopÝoo±moo±moo±mooDÿðBBDBBD®õÆO\dõÆOt ,ÿÿøfofofofo@4ejÆOfOfOfOÿðU0 «©©À«ÿÀ0ãä©«©©0030«©©«©©«©UÀ0 ?ÀTÿð07?003<)?ÿœ?Âu¤?ûwf�{Fõd¿F÷›Ûß"�"ã ÷˜åÛ´±‹‰‰˜<€Aƒ¾~ú¾¾Ò¸¶áþDFµ{†µ[=ˆwäDƵ¡ÿð_bÝ[Ÿ]®ð&¯jðF¯ $"""" $e 7ÿÿÉ™¿11'%10 ðF¯(�F¯f¯ÿð" $$ "ÿá&d–V\)9Ø":ÿ;%/ÿ»ñ � UòeÔ%§Ö‚«X¶Óƒ¼Ìš uf/34Ê9K›XÍ_[aá¤†Ö ä£³TE‡xâX:̰�&ÿðòR’~ÖÕ«$"  oÓòrH„…'·_·?—?—0PeVý_»_»_¹t$�ÿjÇéZÖ'3¤é롈ÿãÞ•ÉbƒeŠpÈ„ÿ\Ù¾¦{•ÊD_–åšìiý¾~õÜúÓÓû¤èîöÍ äÃÂîÄô¤Ïd›ê@PŠÄ�ÿðéô­z˜…VQ%‚Q4äTØYÈ–313$@_®a$Ý\'u­WV�ÒÀiÝ÷ã„ k#Ú$p&1Š:?¥¦ü³ˆ6ÓyõŸ…CS<™+û�‰ÿðè0dô«ç‡ *(&ÿp„À .Pcvýß_Ý_Ýt$"$�uÍÁpHKðÿ*<ÅåõÅ\ÄE’Pö½7!”g>ÿ¿À«:ö‚É·c\\]¥„� H`ÿ*WP�ÿ÷)ÙŸÙcf[^ Ù?¹PHHIÿo/`(o/`(o/`(o/`(``@0000(?////??HHHÏ0/00/`(o0(o0(o0(`ÿð`@0000UÀÿÀÿ0ÿ QÀ0 ?ð0003<ÿUÀ ÀȰ  ,! ÿÿ} ÿ¼„€€Ã€¿AÐ             "$  &("        .4 B@                   "%(#%$ &(" "$*,& &(.0*=0                   %#%     "*,&  .(682$  -+2468&(*, Y         535    "*,&  .(682$  28&M,         535    "*,&  .(682$  M          535    "*,&  .(682$  I   "  *$24.   60>@6(  T08_rockT08_rock�AHa’“ÃÀA\€Â�Ãl%l�A�CHa’ÂÀA“C\€Â% 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ’ŠÉooo$� rrr0ÕËrRé\ýÿýڧϰëÿÀKšoýo4�;B‰;@ƒE.iUO[ÿÀ?À½ÿÿyJ0j^nÇmnÿüŸgšklÜÛÏϨvâ,Àë«@t4Tü<#&tÖ´ñÝóÿ3’Pk}w×~ÀÒÿÿwpŒ¥—ŠÞNt~ñ�ŒÁ0’±wÕ •¢©¨p“$Éœåê’Áÿÿ?ZÕú€£«º QBÿÃQ%x"èûüõ m¬äÞÏ˃ç“!´‘Ót4THL3‡Ž'$4+*gÀàN*q@"e8Q*$M\é$ÿ€)*eÿÿ?L,qD$g8Q$ƒ‹ðÏÃ*-*ýÿÿÿ3ÿüÌ/'//ˆ'//ˆ'//ˆ'////ÿ`_`_`_Ÿ Ÿÿ`@00Ÿ@0o@0o@0Ð/'//ˆ'//ˆ'//ˆ'////0/0/0/ÿŸÿ_Ÿÿ_Ÿÿ_Ÿÿ`@0o@0o@0o@0Ð/'//ˆ'//ˆ'//ˆ'////?p/?p/?p/?_ÿÿ_`ÿÿ_`ÿÿ_`ÿÿ_``@0o@0o@0o@0ÿ00//'//ˆ'//ˆ'//ˆ'////?p/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€€ÿ_`ÿ `ÿPQTTÀþ†ÀÿÀ!þ†Àÿaæþa†0ÿaH@Ì‚|}†‚‚€UUUU ÌÃÿ€€ü €ü Ì0?ó 0€€ÌÌÀÀÀÀÌÌà 0à 0ÌÌÀÀÀÀà 000000à 0à  0ü€ ÿü€€€ UUUU€ŽfhˆÈ€ æb ˆÀ€€È Â ˆÀ€€ à 0€   `f` ÿÿÿBDÇBBDBBD…BD…BD…BDÊC†AC†AC†ÇBDBBDBBÇDBBÇDBBÇDBBDBBDÇBBDÇBBDÇBBDBDBBÇDBBÇDBBÇDBBDBBDÇBBDÇBBDÇBBDBBDBÇBDBÇBDBÇBDBBDBÇBDBÇBDBÇBDBBDBBÇDBBÇDBBÇDBBDBBDÇBBDÇBBDÇBBDBDBBÇDBBÇDBBÇDBBDBBDÇBBDÇBBDÇBBDBBDBÇBDBÇBDBÇBDBÿÿÿA+++D,,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUUU 0é©«© 0ÀÀ©«©©«©©«©©«©©«©©«©©ÀÀÀÀ«©«©©«©©«©©«©©«©©«©UUU 0Ã? 0ÀÃ?????ÀÀÀÃ?????UUU 0ÃZY�tv 0ÃÃþ‚|w|þ‚|???YùRù›}ùƒ×�ƒ×ÃÃëâõ‡|þ‚|ÀÀÀÃwywy“ywy“ywy“ywy“ywy“ywyUUU 0Ã: 0ÀÃ@@33 ::ÃÃ@ÀÀÀÃBBBBBÅUÏÀl‘ÿm?ðTS¯É…¡ªE Q¦p¨@¨88o—óóðð•Ñìqyª%ƒ§¨¯ðôCAÏÀ ì¼$ 3qp` ÝUUÏÌ3ÃòI1û­ë[‘ˆmZYq*)û,+2. îqû€îu�“ûd[ETraç¢Ê$2óóÓóâQ•cˆ üøà¨î??3Õ˜iw€MóÚ €€€€€+¬•UUÏ €0"£ãá�A�ÀÒ ÛßóóððÇW[ÈkNÅxÙÚ À  4ÅUËÀÒ?ðmnLù®­V NÁT N‘¢]NGI’!€Lð£X…UÁ€ ‚�^p@!€ ÿÿÿ `ÿ ``@0o@0o@0o@0è///H'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@00èHHH'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@00ETaŒÿ‚‚‚‚~���€���ƒÿ‚‚‚‚~���€���€UUU 0à 0ÀÃÀÀÀÃUUU  ƒ€€ƒC¿êTÿœÁ€’À¿b Ð$&("    2$>@6 >8FH>0  F@NPF8  .8:<68:<*,.0 "$ ,.0*(  :,BD:$>< FH>4  B@ JL6,  %IGI$& .0&  .(68.   60>@6(  2824:<*$ *,24" "$*, 1        9 7&9,*( 24&  *( 24&  *( 24&  %979$& .0&  .(68.   60>@6(  2864 >@.$  20 :<*   ., 68&  -     )'2)864 >@.$  20 :<*   ., 68&  %     9 7*902,:<.   60>@.   60>@2$  )'2)864 >@.$  60BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  A   ., 682( :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  5        53*502,:<.   60>@2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)8:4BD2$  :4BD2$  :4BD2$  -      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$   T09_packed T09_packed(Á לÂÀœÃ�@R8�“à   ^|^(Á“C לÂ�@ÀœCR8�ÂW|O ÿËÌfËeÌfËeÌfËeÍËÍËÍËfËÍËfËÍËfËÍËÍËÍeËÍeËÍeËeÎfÌÎfÌÎfÌÎfÍËÍËfËÍËfËÍËfËÍËÍËÌËÌËÌËeËÌËÌËÌfËÍËfËÍËfËÍËfËÍð/ÿËÍÌfËÍËÍÿ21f2e1f2e1f2e424424™424™424™424242e42e42e4š3f13f13f13f4424™424™424™42424343434š212121f424™424™424™42ð?ÿ42ÿ1f4242UU ÿÀÀ�ž�ž���Ãÿÿ›v�ž�ž�ž���ÿð›v�ž�ž��Ã0à �›����0000%���3333%����›��0000'›��?ð'›���UU ÿÀÀ&%&%&((Ãÿÿ&›&%&%&%&((ÿð&›&%&%&(Ã0à (&((&(0000u(&(3333u(&((&((0000u&((?ðu&((&Û]V°U°·…Sª¯nSª¯ÿÿ‡‡‡�nV¯°ßÿÿ°ò] zúU�úU�]ÝUNÄU[ÆU[ÄSð000[99úçüçúå]ݰ›°›ð000°ë?ÿ;°¯Õ]3ØþþbaÆaÄ�aÄû�bt+7+t__¨_c˜_c˜_4cf-ad-ad-að000d„+++„a6a6a6a4+))p000†+++?ð„++++×]Y`Ðù_É­}p¤ICÿŽqÑÿÿÂížt)øB&==tŒò Ýn¿ŽJ¥vJ�rð�ÑC$+Dˆ¯sÙ2÷ÕÖÕðÖX?nÅXÕUüïÏ> Dk.=ÂüHšSTSðTŸ?AâŸÕYüÏÏHL}.P}.Pü}.PO-|M-~O-~O-À~CCA/ò/.`ÕüO3|G„�<ÿ? 7%pŠùp-w¦MÙá ?ÿüáð˰¯×¢µ5•H<ò>^410ÿ/ÿ`V`V1010ƒ?ÿüN0/0/0OP�ÿ/0o_ 0o_ 0o_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿŸ@Ÿ`@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿÿÿÿÿŸ_`_`_`¿Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿðÿ€`¿Ÿÿ€UU@„„�3‚‚ ‚‚~a¹$’ÿAñññ‚‚‚ù™°‚~ÿñññ‚‚‚ð0‚~ý‚~UU ÿÀÀ€€Àÿÿ€€€ÿð€€Ã0à 000033330000?ðUUf€ƒ™š™  €0 2"0 8 ®œmÀØ@(Á€’À¿gÐ         *46820   B4NP>$ F@NP>0  F@NPB4  .8:<64  >8JL:(  >< FH6,  :8 BD2( A      E C&NÁs€r�/)79+  3-;=/!  71?A3%  4 23C°24:<*$ *,24" "$*, ^ljhnp55Q~3QSUKQSUKQSU#+-'  /)79/!  71?A7)  @h{2468&(*, >XRTZ8(^`(*,"(*,"(*,"*, T01_groomed T01_groomed@Á®/Á(ÂXA®G!¿ÀÀ   = =@ÁÀ@®/ÁXA(B®G!¿4 , ýÿÿÿ3ÌÏÿ<Y<Y<Y<YYYÑ<Y<Y<Y<YYYÑ<Y<Y<Y<YYYÑ<Y<Y<Y<YYYò<<YYYYYY¶ 0 À000P00 À00R00<à NNó4À0 @ @ 0@UUUUÀ³;<ðÀ<;´0ðð?³<;;ð¼,+ÃðüWXñ‘’5'(0ðððÏ5.>Ð�Åÿ ð&%&%vu'(<ð0&%'žuðÿÃ&%'('(&%vüðu'(&%ð0ÿÿ'žu&P´rOP ;u˜;u˜ÿÿñ±˜Q½¾„ÿWXü0 §,rš{ �rš{ ó�ršLÓ WUTU�€� 9ÃÀ0pðp%A Q@   °ýÿÿÿ3ÌÏÿ_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ ``_`_`@?@Ÿ_`ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@?@ŸÐ/0o_ÿ/0_?_Ð0_?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@0o@0UUUUÌ‚‚Áò‚‚~0ÿ|Á‚‚‚ø‚~0|ÿ‚‚‚Áø‚~0|ÿ‚‚Áø‚‚~0 ÿ�‚‚‚���‚~€ ˜þ @|‚||~‚‚‚~UUUU ÿü`_`_`_``0À?ÿ0à`_`_`_ð000``000 À00 000000 0 À000G00 À00G00<à / / ó À0 # # 0 # T ÿÿÀ;YÿÿÀ;YÀÀ«©ÀÀÀÀ`bdZ`bdZ`bdF@NP:,  B<JL6(  >8FH2$  FTNPVTZ\JTVXNTVX   ‘5aŠ?ace[ace[aceGAOQ;-  C=KM7)  ?9GI3%     gørt n…s€2   :4BD:,  B<JL6(  532B±s€r�;5CE3%  ;5CE3%  ;5CE3%  +5#%') $      !  8 6CgèJDRT>0  F@NP6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$    2 864 >@.$ 20 :<*   2,:<*    T09_powder T09_powder�Â)\§Â¥Ã„BHá~“Ã?Q?�“C)\§Â„B¥CHá~¬Q¤ õýÿÿ3ÌÌÌBA†BBDBBð ÌÿØ“oomÞomÞomÞom±opopopopßmoo±moo±moo±ÿ333mooDBBDBBD†A†BBDBBØ“oomÞomÞomÞomÞpopopopßmoo±moo±moo±mooDBBDBBD†A†BBDBBØ“oomÞomÞomÞomÞpopopopf“Õ¹pnöBBDBBD†A†BBDBBØ“oomÞomÞopoppopopopßmoo±moo±moo±mooDBBDBBD†A†BBDBBØ“oopopo©­ëº3ÌÌÌ,ø@``¶kf¶o@444:pfOfOÿ333.,kf¶kfóCCtC¦dödödö.,ÿ€Fkf¶kfóCCCöÚUt(.,€Fkf¶VózCCC¦dödö.,ÿÿÿ€FVV_WUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© 333©ª©«©©ªÿÿ©ª©ª©ª©«©©ª©ª©ª©ª©ª©ª©ªð?ð©«ãä©«©0ÃÌ©«©©«À ©©«©0©?ð0Ããä«©©«©©ÌÏð«©©ãäqr«ãÿ Àä©«©©«©ÌÀ ©«©©« 0©©?ðÌãä«©©«©_WUUTSTSTSTSTSTST7S 333SSÿÿSTSTSTSTSTSTSð?üTV9?0à Ì?Ì ?0V?ü0Ã9? ÌÏð?9:T7ÿà Ì??ÌÌ ? 0V?üÌ9?ÿÿÿÿ¨" \VõHâŒÑÚ›Õ© iAACAW¬@x‚Ñø'�Åg‘ÃzB@‚AÄA„AFÄgùu N2ß6÷f[¸sÜ(�3ˆp‡_èÿ>0š}á½QõW7“šš¶©[BY�ƒíMƒëOAÒ �ÁAăùƒùÃRªD7Ñ÷’Mu§+���xÁx`?þÛ"7“šš‘ýT@B@› AÒOAÒ AN6�÷ø·Å·Ã2hg@}D1! DË#S ÕÜÜû¯ÊƒCƒ84w¸Äú‚Ã÷ÃăBƒ? 6P©M3é¦Ñµë“jÆ%*eÈFÛ#ÌÔ² ‘ÚÜ€·u2vtRAÅ?øA«¯ëº5"59975/ä›™ùg‰Q$Q &(žŸh¯JÏ# <B'J+P'L#F!D)U"?#! qð��qø¬öÌøÌú %'# *,"O$?##ö™ñqð��qû²™4<*,"E"=!!#;™ñqqñ qq�úÌøÎø"++ + $(*$C"=ÿÿò››ð‘�#!' ÿÿÿÿ†ÜF%Ezšœ]½H-”Ÿ‚¥×kÚ¼YùãõýyˆäIr‘Oœ´ ¬¦FEÉÊ+àØ˜PÏ6Ó´Ý|tív�Ç;b’À#1$(™XV%0O!¥ÏÑ¥1!àÜiÅÆ£“¨}òòaîÿ Õ³B9©$ÖS®Û@k‡j5�0ýï¥Ò 9¥¿«Yêä�"s“rÔ <{6…¤ý-üYîŒ¡ŽØD”誛‡|y}õ…3¬Q2wÁíô.\!ô@aÁ`$íHÑ×hP¯`/{ÏÈÃÖ¬7ö÷Ey'ke²‡ÃY‚÷;Ïz®7n<¬ïÈk#ƒ£óÓ»˜MæÔ¸g{ªêºª$’ �AP…p’1éuÅ\% µJ�#$>�÷:SƒCøVV6ûPÿqÿ±ÿ±ðu(�# >$ðó#Cÿÿÿÿh·ë-ʾ9!1™ ¦ø‹¾\"^J.ÀPmä¸ÐŒ€§T0Ç®è8³f·°QJ§íùµrÁX†ót7m›œ©-4hçUÌ:…Ó°b½R«±nMY÷ŒR�Þ’Á ó<]#¥¡šJÃ’3¡ûCã´* 7üìN}ŽÓaVŒ¿9%9ß³i�KF3ÞwRÏ“ÃÃàkU�[hù�L(sç*~Ç�Ÿ*ºbâ}J“]Þ—fñ)Ⅎ¤ª�Jy>™™Õ¯8­Ü‡™9'-! +×·0Ûz‘¾Œœ–ß,íp¸‚bÃâ�‹³/ÂXxñIzöÒ�·ýQ™µ«›‡äWü×)1Y‚E(äVXX––¥U1ƒC!À I„„™›#!S334O€ a&oVU1Å1B¼ö ð a 442’`±0  †„‚H ‡u Èú<€Õ×u}ý �`a€<ÿÿL�—›=êéefVø²¤õG‡„ˆÎú/=µ¼O¯NÅúLVs« I®høÀ`Oõÿá ÒÄ®B¤¬ðœ5 ÜSf®a¾aBÿÿø°8ºyŠï6* 0@ñhQ—[Z`OÄåÔ�ÿÿ²ˆ(¥Â1oÃÀŠüŽŽ»µÔLÉA„Œ#$ÐgOá•Õîÿ©û¥¦™V:´Ø} Ö’)p…g‰¯ _Ý?û_ ûGG%ð(ÿ     2ñÕLo ÿþÓ-â·.¯ Xx6ÿrÿ±ÿ%$ÑÿÑðwJ�( _½þëØÌV~u׸UÄZÌ…ƒžß¢:ÅösÉð¿µóîìx‘ÿðÐuv…œùiMMo&`B�ž_¢‘v53ñ£S9£Pg†Dz�Ï ÿ1B1B˜%@(ÿñ÷éù"oí®`‹F6žüJ|7Jð8Øð#Ä!"  ¥Þ �†ƒ™½!XÎ.…÷öòr\ÜÄoþ‰AbQb3#b/ÿ¶`ËE ¢n�{CNgäûcD>¹©YiY–?ÌßÏVSNafQJÿ’Ò1ù_MPÿð   &`BGõ÷p1{,O`_•ÿo•d$$$�$;ó.UR?ð›ŸöùC8òfa’ BKÿ*WR�÷\UÏÿB`�$$$¿*Wòÿ/ðû¥gR[beNõýÿÿ3ÌÌÌ?////?ð Ìÿ?000ç0/0/0/0/`0(o0(o0(oÿ3330(``@0000(?////??000·/0/0/0/`0(o0(o0(o0(``@0000(?////??000·/0/0/0/° _H'/Ð`@0000(?////??00Ï/0/0/0/`0(o0(o0(o0(``@0000(?////??UQ0ÿ0@ÿ ÿ€0ÿ@ ÿÿ ÿ€0ÿ@TTUóÿÀ€ 30ÿÿ€€€ü0à ÌÌ ü0à ÌÀÿà ÌÌÌ  üÌVVUU`VVVVVVÚ.f€2 #™šeeeeeeð2,  €Œ02,  €�`"ÂŒ€Œ02,€ÿpoppopoomoo±moo±moo±pÝooDBBDBBD†A†BBDBBØ“oopopopopÝoo±pÝoo±pÝoo±pÝooDBBDBBDB¾VóCFfOfOz .,VVõÆO\dõ€  UÀÏ©«©©«©©«ÿ ãä©«©©Ì0 «©©«©¬À«UÌÏ?)TÿÌ7?ÌÀ0 ?SÀTÿ¶A#ú¶YBëCÞ�Ôý\º’ŒÅž6¥�Öþõl~’ô7Q$V¡424#424ƒ'MPÜ�iÏP_ƒ©îfƒ©ìµ}Ô¢ =î•À»¾°ð°ŸjÏhï"'' % , (($C =!!- " °�ðHÏŒñ"!! ! 2 $&($BÀ'ÿmnË%&nÖóþƒ;ªF#ÝO³o\jD•ùL-�åòGÇí§s%_Vßã�ž�ž�áâ”Ö{ô¶ÎõZ�u_#º¼è9ð׎ª‹z:A"ªCVV=û_ý_&&ý�õÄSO(B#$ ðóCCC–ÿ_o÷ö((ÿŸOùf3`*ÿ’lÚ“ò:ŽÆ7d4´¯é B�öôà�;9½GÙ©Ð¢ÉØ:t?ä€ëìëìëÎÍ5¹f½Vé½är¡­mÂÖ â †3 †›åsî)•Ž#SGSµ\‚[Ãæ21€301"ß÷ø¨§›P†-xÅZyggu<ÛA#ȉ¶&Wõ‹TýÃÀ-Ыð¡˜7µ>9�½fÄÊÕâD�"Ðß�»ŠV4?ÿ_ÿ.0ÿ¯÷ôU(o0$ºÿ�ûø24ÿŸoýˆ3€4šÿðVCTa¡ KP�'/¿ÿÿÃÀ‡•õ*Eÿôð+JÿS¡%~¦¥UÁ%2  eø  �&K*/ôÿ@ðõeSP[b%ÿd™&I’HÿÏ/0/000(o0(o0(o/`(``@0000(?////??Ÿ/`(o/`(o/`(o/`(``@0000(U ÿÿÀÿUÌÏÿÿÌÌÀ0 UŒ�"ÈÀ Àÿÿ AÿÙè�€’À¿DÐ            &("  &$ .0*   ., 682(  $&("    2$>@6 >8FH>0  F@NPF8  .8                 535     "$  " *,&  -IGI$& .0&  .(68.   60>@6(             )')     "$  " *,&  %9C  (&E8     )')    "$  &(" %$ & .0&  .(68.   60>@6(       %#%     %979"$   "*,"  *$24          Q      T09_rockT09_rock�A®¥Â¥ÃÀAHa’“ÃZ Z�A“C®¥ÂÀA¥CHa’¶ ® 6à=©ª«ª©€ø€ª«ª«6à=©ª«ª©€ø€ª«ª«㩪ª¬ârª¬ª8᫪¬ªärªª¬ârª¬ª7TzÎ7Tzxv=㛬dã›�‘@Íf‚ÓVigñ’ee9E9¡(KqYu"ea@1€0g#N7“©/lÿÿüãŠ\YÃÃù"SN„!0`ÆœF{N?�l,ÿÿü+FYœ°�Æ uN9ˆNu'N&'¿‘EŽÿÿüUliþÿ¿Da-€pðÆœð@`?ð?`_ @_ `ÀüÀ_ @_ @_ÿð€€€€€€€€?Ãü?€€€€€€€€€€€` 6áUUrÄôôî]l A€”À¿_Ð  "(  "( " T10_groomed T10_groomed´Á…k½Â·ÃpA)\§Â¥Ã    Ì ´Á¥C…k½ÂpA·C)\§ÂÌ ÿÿÿÿz|z�z|z�z|z�z|z|zz|�zz|�zz|�zz|z|zz�|zz�|zz�|zz|z|z�z|z�z|z�z|zz|z|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|zøz|z�z|z�z|z�z|z|zz|�zz|�zz|�zz|z|zz�|zz�|zz�|zz|z|z�z|z�z|z�z|zz|z|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|z|�{öy{öy{öy{ö|zz|�zz|�zz|�zz|z|{|{|{|¥|zÿÿÿÿ;;;===============*;;;===============>((((===ŽUUUUüÀÀ©ª©ª©«©Ãÿÿ©ª©ª©ª©ª©«©ÿÿ©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©ªÿÿ©ª©ª©ª©«©©ÿÿª©ª©ª©ª©«©ÀÀ©«©ÀÀ«©©«©©«©©«©©«©©«ð骩©«© 00©«©03©«©©UUUUüÀÀÃÿÿSÿÿSÿSÿSÿÿÿÿSÀÀÀÃ?????ðà 000?0330??UUUUüÃæ¥¦¥¦¦v0vÃÿÿ¦ò¦¥¦¥¦¥¦¦¦ÿÿãò¦¥¦¥¦¥¦¦ÿ¦ãò¦¥¦¥ÿ¦¥¦¦¦ãòÿÿ¦¥¦¥¦¥¦¦¦ãÿÿò¦¥¦¥¦¥¦¦¦ÀÀ㦦À榦¦¦¦¦ÃÃÿY«º¦Yúº¦¦Ã¦¦ð楦¦¤¦ 000¦¤¦0=ÿü¦¦áw唆’UUUUüÀÂÃÿÿTÿÿTÿTÿTÿÿÿÿTÀÀÀÃ@@Ãà #d#+dÃ@ðà 000@0?ßü@/ !@%TÁóóDC±Ç…¯ðôCÃ/0>óð!ʸ~˜—^]úù$Ãð#ÿü£¤#iÙùÈÛœpâ3´TÁÃó0 *) Ãð% !L,QD{.UUTÁóóKm:ÏóÚ €€€€€*)+¬Ãà3XóójÓ>Åbs¬duóÎ|ïAÃðBu�ûÔÓíÏ­ “]"%ãàZåUUTÁà óó''  ÃÀ  154/JTÁƒ�óÀxÆÅ€¤£HGçÃðè×cÃ忀Œò áÃOëü‘ŠPA)*Ãð1*ðð?ÿ %&5%2TÁóóWXLù®Lð£XÃIJ€óðHÇÅ¥“!"ab341Ãð2{p s‰1‚üé¿þ±2TAa! à óð/6;� `ù’6.iCJÿ÷ÿÿHHH'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€30üüÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@00èHHH'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@000ˆ////'//ˆ'//ˆ'//ˆ'////0/0/0/Ÿÿ PUTE3‚‚‚‚~ ��€ ��ƒÿ‚‚��‚‚~�€���€0ÿ8üUUUUüÀÀ€€Àÿÿ€€€ÿÿ€€€ÿ€€ÿ€ÿÿ€€€ÿÿ€€€ÀÀÀÃðÀ 0000330UUUU ˜€ƒ™š™š™š™š™š€€ƒ €0  20ÿÿÿ|zyöz|Žyöz|Ž|z|zz|z�z|z�z|z�z|z|�{öy{öy{öy{ö|zz|�zz|�zz|�zz|zR{ö|õz|{yö{yözz|z�z|z�z|z�z|z|�{öy{öyzõ|z|zz|�zz|�zz|�zz=|{|{|zz|z�z|z�z|z�z|z|ö|zõ|zõ|zyözzózzózzózz¸yô|z�yô|z�yô|zÿóÿ�yô|z|zyzyzÿÿÿQ*=*====>((((===º*'((===>(('===ö===*''()))á*=*=*ÿóÿ=*UUU À«©©ÀÀÀ«©©?à 0«©©«©«©ÀÀÀ©«©?à ©«©©«©000©«©ðà ©«©©«©©ÀÀÀ«©©30 «©©«© ó ©«©©«©3à «©©«© ©«À Ì©©«©UUU ÀÀÀÀÀ?ÿà 0?ÀÀÀÀ?ÿÀà ??0000??ðà ?ÀÀÀÃ??3< ? ó ?30à ?0 ?À<Ì?UUU7Ãðð¦áâ�Pæ“ÅÀÀÀÀ¤¦¦ÿà 0¤¦¦¦¦¦¦ÀÀÃæ¦º¹Àüóÿ]]—öO¦UV _ð000ü¦¦¦?ÿà ¦¦¦¦vu㦦ÃÏÏÏg |_ÝÁ_7˜Aÿü ½ã]ûü`â㦠ó ¦g㦦¦¦3?ÿ<¦.†R_´6_бàÿÃð�Û¦ ¦•–ü<Ï.�‚†¦¦.vUUU?Ãðð/"5ÀÀÀÀ@ÿà 0@ÀÀÃÃ@#$ÀüóÿD!FK0/Dð000E@?ðà @ÃÏÏÏ@:MFcFy4$ÿü ,ABE. ó @3;ÿ<@F] FeDWÿÃð4 &%.-"!ü<Ì@S×UKñIçp‹ê>›ÖÅpoÏÏÏÁÂe€�† •Ù$Ôí—"[´{öù§ž ´³ð±²?ðppß87Røà)Xºõd2“èͱÿü›Ãõ¬1�íÕÖ?ÿÿ×¼cak“µñWÉÿÃðU¦�ÀÔll¬èüÿª±ABoÛAÇU?óôüC$ (5`3+ÏÏÏ347@5R/#Ð.w\A.{L�0½Ž]ÿÃð#„àãäñðÿ‡ˆWX‘ÜAÁP?ðA  ÏÏÏ=>AJ3T7ýÀ ~Ch7)z1/~C`?ÿÿE)nI)~K1~/ðEvQ×Uóüô#*tu¢Ÿ-0‘’ÏÏÏ’‘ O‰ÚäÈ6ijMNÜbÂC(‹ŒðNM?ð‘�ÝIJ'3úÉÏbn/ÿüq%-@2$  5325824:<*$ *,24" "$*, M5   53>5DF@NP6(  >8FH2$  :4BD2$  28&, 5        5 3&5,.(68*  2,:<.   60>@2$  2468&(*, a        5 3&5,.(68*  2,:<.   60>@2$  2468&(*, =       53"5(*$24&  .(68.   60>@2$ E  535&("  *$24*  2,:<2$  2468&(*, 9    53"5(&$ .0"  &$ .0"  &$ .0*   !535    >@BD.,.068" "$*,  T10_packed T10_packedXÁ{”¼Â·ÃÀ@®Ç®Â«Ã   «¹«XÁ«C{”¼ÂÀ@·C®Ç®Â·¹¯ ÿÿ›œÆžœÆžœÆžœÆ����%���%���%���›ì�žÆ�ÅžÆ�ÅžÆ�ÅžÆ�����%���%���%���›�ž�ž�Æ�ž��žÄ›�'žÄ›�'�›�'�›�����%���%���%���›��Ã��Ã��Ã���›ž�ž�ž�žÄ�›�'�›�'�›�'�›�����%���%���%���›���%��ÿÿÀ�%���%���ÿÿ&%N'%N'%N'%N(&((u&((u&((u&((&Æ('N(M'N(M'N(M'N((&((u&((u&((u&((&('('(P&%&('P&(u'P&(u(&(u(&((&((u&((u&((u&((&((O((O((O((&(%&%&%&%N(&(u(&(u(&(u(&((&((u&((u&((u&((&((&u((ÿÿÀ&u((&u((&$UUU ü0à  ÿÿ    Ì _` _ 33 _ ^ <À} ÀÀÀÀ _ Àà 0 _ 3300 _ 0000 _ 0000 _ 00 UÕW ü0ÃÌËÌ*øGZÿÿÌËÌËÌËÌ*øGÿÃÃ×ÖÞÛefefeÃÀfef ÿü¼´³´³´o³ÿÃðð´³±²Ke²Kefðef¼´²š´²š´²š´²²‡´7²Ý´*²‘ff<<00‘fxÛ|00?ÿ+cд²²d²²ÿÿÀ´A²²²Æ²´²UÕW ü0Ã343205ÿÿ343434320ÿÃÃ;7fefefeÃÀfef ÿü+opopo§pÿÃððopnmÔemÔefðef+omÞomÞomÞomo¦oZo:o6m�fyf<<00�hŸf„00?ÿ59XomoÇomÿÿÀoçomoëmomuUW<ÁÂ?Ñ•—LKF¿©vÎ¥†*Õ¬*ÕÏ<<¬*)  ;²??û 4Dk00ð('ððü<*)*)H<<!"ÿÿ?@Ÿ`@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€Ð/0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿÿÿ0/0//0_?_Ð0_?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ `ÿ0/0/0/0_/?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ ÏÏÀ`ÿ `ÿ `UUUBI$3‚‚‚0HH‚~ûH@||‚‚||™°‚‚~ý„„ÇÇ‚‚‚Çᆂ~0!ý!!ñ‚ññø‚‚‚~UUU ü0À€ÿÿ€€€Ì €  33€ ÀÀÀÀÀÀà 033000000000000UUUhƒ™šÈ 28€À€€Â "0  0  0  ;,äT(ÿÁ€ªÃ€¿´Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .82  ^dfpjlflrt   9E]–3']_aW]_aW]_a;5CE3%  ;5CE3%  ;5CE3%  P 3579'% ') /1 ! ')   D    7%   ?9GIC5  4 27OÀ>8FH2$  :4BD2$  :4BD2$  2nÁ 75 ?A/%  31 ;=+!  /- 79'      DBD%  '!/1'  /)79/!  71?A7)  4 23oÜ:4BD2$  :4BD2$  :4BD2$  )'2)8:4BD2$  :4BD2$  :4BD2$   T10_powder T10_powder�Â…k½Â·Ã„B…�¥Å6…�Â¥C…k½Â„B·C…�Â@68 õÿÿÿ3ÌÌÌBA†BBDBBð ÿÿØ“oopopopopopÝoo±pÝoo±pÝoo±pÝooDBBDBBDBDA†BBDBBØ“oopopopopÝoo±pÝoo±mooAomooDBBDBBDBDA†BBDBBØ“oopopopopomooAomooAomooAomooDBBDBBDBDA†BBDBBØ“oopopopopomooànÝoànÝoànÝoDBBDBBDBDA†BBDBBØ“oopopomÞomnÝoànÝoànÝoànÝoDB©ëº®3ÌÌÌ,ø@eeeoz`\\dõÆO\dðððð,øeeeo\€dõÆOfOfd,øeeeofzdöfOfdöf,ÿ€FVVVözfI\I\I\O,€FVVkfõ€Ä•ĕĕÄÿ_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©«©©ª3ÿ𠩪©ª©ª©«©ÿÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©«ÿÃ3ãä©«©©«© À©«©À©ÿÃ3<ãä«©©«©©ª©À0«©©0«?ðÌÏãä©«©©«©¬«©«©©ãÿ Ãä«©©«©© «©©_UUUTSTSTSTSTSTST7SS3ÿð ÿÿSTSTSTSTÿÿÀSTSTSTSTVÿó309?? ÀÀVÿó3<9?UÀ00T?üÌÏ7?SV9ÿÌà ?? ÿÿÿÿSôd¼º¼×Ñ¡@P„JÒAC C�C 7 9 ÔrCqÕ{‚{L{Sq¬1/qt1gV9ž?ë뺮' '' ' #!#™™û (* ŸŸŸhð  T#B<<B!@!:#:!]5+9™Ÿ hð&�$¯�h4&"_3)›Ÿ ²*hù$�’HÙ$2*"a7ð¹™ð���ù!("�oOo..$$$c 9¹™ð‘qñ FñDð&ð$ÿ.2ÿÿÿÿEd‚`߀ˆÞ/‰ìèO Fwûߢ®¯®¯�“øû½¥X -p£ÎÙè'MÔ¹Ò AñøÀÍ+2>`²Á�ž¬ñ Å ©Ž+)V}R‡mŸ›ÁF, &à `_=sôpyØ7‘lHÂàO$ ‰W�¹ºà.ÎãpiM¬æ"Ò…ŸD*õ#Ûƒ„PŒ) –#©gä‹T+[Qº£˜"†æØÅ…üÊ©Yµ ñ’#ÅÎ:úOÂvxóX®.fš—"{¡vl$*I9´Ðu‚Έ<¥ì¡ÙîÖˆÁõ¤ â+Ž´G½ý�J¶Øæ¿\dË5´·Ã| •Ó‡É'ƒMnŠà©ºªê͉Û ?0 ò4443ROO)/O÷ô((ÿoûC€4(`@ò2¨@¯46T5O(& ,  8DBôR!j>/¯VVV1[÷õŸYÙóŸ*((»ŠA2/E D†ðõee‡}oooߌ£‘E †Nð÷‡©‘– ÿÿÿÿ^ŠfèÀ_W©¼á§t>]bÒ'»¡u„,üÇ뙬&ÑoV; Ýù–ø^T>Ìd\Z>ÜRVÏ’ï´�ëbVÕL}‰mæ5>°Þ_ÅL9¹6™nm*÷‰ó‚pbó x\Ÿ¦h¬ÒgìFPñˆ^5p¨Ê�â2âEhaŠËL7M¯Œ‹JI‘Ö¾‹Úûÿ ·êÚÓR¡˜ŒçhEΘ÷GœÍŸõ*o9ºé50"¾@|Ý/7Q¬o/%ÁÏ`K«­ä÷å½÷ÍŸzÒ½Ä;:ýu7~,§öä+1àfMUìp7t mȺÚójàÜü£à¯ýäßú‘äÝœdˆ ¥eU™ oéø<� *0€3RT4"&Ø 0y™‚31¥œ'pp¥]WUÕãÇ(üžfiR³b5"3Ðæk¤@@"3Rõu]×ü 0œ!"¤ìšzé6ß¶$~8ùJù>ælÝŒQ̵L¸_üšé–ÿÿÀTÔ§ªéZsh— 9°?'&Œ?`Ú"ä?±°jõŒÆòdš‘æÿÁ�s{jwmÃÈ0ð)&ù›9§x¥~ZyHTºÆŸÌú3êÿÿð`…ÞOÞ×)óÔ·»¼c'*'8×]T÷(£°ÆxÕc…rÿÿ+.z´Ë>àËæa�˜ƒk\fÐGbérB¾áïÑB§¤µi×”oOK/oùö22ÿŸ�ûeÃ"40MÀÀ$? 2 .  6:bBð$ ûõß¿=ùó¿420ûŒCO(    ÿÛ  2  ¯mÛ~¿˜!'–cˆˆÐ.ó•êû!X ±QNMNK:Q€XRa €ÿ¿6i#5Á9ûd.ݦab@?‹ØKS 5 Qøÿÿ�Ôà2õö}1í]d,Î*J~}ûüs§Ð8€Xù„Ÿÿ ­­½nBÒ#û” xʺ’Š:Rr{ùa#@A#ÿnÞ”wz[ˆž Îäëý} Ý:üR²```YY–e:ÏÙÞSRSVÿ0 òWehPu\%a H €€îÿ*ST sÿ φXvr|5 HHî* ÿ¯jšš´{d5 H?þ,WTWZ¦ð÷…‡�`#˜’@ºO0ð&ÿù¯oö!```@õýÿÿ3ÌÌÌ?////?ð ÿÿ?Ï0/`(o/`(o/`(o/`(``@0ÌÌ?ÿ000(?////??Ÿ/`(o/`(o0(Ÿ00(``@0000(?////??Ï00(Ÿ00(Ÿ00(Ÿ00(``@0000(?////??Ï00(?/X?/X?/X``@0000(?////??0W/X?/X?/X?/X``EEQÿ€Àÿ0ÿÀÿ0ÿ0ÿ@ ÿ ÿ ÿTEQó303ÿð €€€?ó30 À?ó3 À0üÌÃÿÌà  –VUU`VVVVVVÚ. #!™ VVVVVVVV`Ȳ0€ÀȲ8 02,€Ž"È BDBBDBDA†BBDBBØ“oomÞomÞomÞomnÝoàoo±moo±mooDBÿðBDBBDBk,f¶kf¶o€\Idödödÿÿð «ãäü 0À©«©©«©©«© T7ÿ 0Ã??ºÉK…þÁ?ŒËæh 0.¨±py6?9ý>�7>ColA© .ÿð\%ôNÃQk$$&U ?™ŸqqO$Y$Yÿ0.ÿð$ Ù!`êýŸÅ5}j÷m(šZÆO"_ýàßâ°îõaEùv¨‰|äYM;$å­&zÿð51FµjìPòP!�T�“é>“ûUo_µõ•ó—òóÀ �ýň¡9‰Hƒ.´qeÓ+‡¸>ïÅM虯ƒK{tÌÜò¬ËBÚÿ(ôçŒ>c¸ÿ𥸭�ù:jDÑd TBT%BRA#AA”ôðuÿüœÝqͽ‡/† Œ‹(ïÓ|XÈ¥º üˆóœ,ÿð7çtŸ®¾eÿÌ 6o×õ·ó¹ò%óÐ _ Ó?1Âõ[ûcâlÜQÍ(¦hò¦CjþÜ``c4]$ŽÉÿ0[^ ``a$@0000(?////??000W/X?(o0(o0(``ÿð@0000(E€ ÿÿ€ÿ 0à ‹ƒ-õàúÿ6�€¤Ã€¿ŠÐ             "$      " &(   :D                  !!    ]                       E          I             "$ A           !!    "$ " *,&  =         T10_rockT10_rock�A…ë¼Â·ÃÀAš¥Â¥Ãl%l�A¥C…ë¼ÂÀA·Cš¥Â%ü 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀìxJ4¢4÷²²¢¢¢àã’�ï�Gy¼���ÞU¢ï¢PÿÀˆk4¢6 [Q&cU"]]U[UUÿÀ$[+¼ÇL½þýI087\dqRzÿÀN�"Cƒ>[ôó+¢Ñ\󫬼ßñ[ŽÿÀN]†H$9v“X:šæå@#W9âzyÔJg^>óÀZ<$#"C$#?ð?`_ @_ @_ð? @_ @_ ð@_ÿð€€€€€€€€€€€€€€€€€€€€À€€€===â***===*===(Ì**=()(==='''>(=(=(=(¤()()(Q(===UUUU ÌÏÿ©«©©ª©ª©ª©Ã3«©©ª©«3?ÿ𩩪©ª©ª©ª©«00<Ì©©ª©«©ÌÌÀ0©«©«©©000«©©Ã «©©« Ìé©«©©3ÀÀÀ«©©«©ÀÀÀ©«©©«ÀÀÀ©©«ÀÀ ©©«©0À0 ©«©« Ì©©«©ÀÀ0©«© ©«©UUUU ÌÏÿSÃ3S3?ÿðS00<ÌSÌÌð0?00 0?à ? ÌÃ?3ÀÀÀ)À?ðÀ??ÀÀÀÀ?ÀÀà ?0À0 ÌÌ?ÀÀÀ0? ?}]]u ÌÏÿ|~~| |{|µí"ŽÝå@ÒPæíåÒ! r ÷û|{|{|{|~00?ü~| |bbÌÌðð|~~|~ˆû…gä3²`åñÅååçÿü |ãä~OPˆ~| ÌÃ~ˆ~|~~?ÀÀÀ|bù|~~4íí°|xwmüüÀÀå%~XWˆ|ÀÀÏ ~~ˆ`~0À0 ~|~~ðÿÿ`_†ˆX ˆûçe±îí~\[~34ûçef è~~}]]u ÌÏÿF>1%:S6X7:O2A&7,00<ìFÌÌðð4,= /%: 8U:=ÿü 0/&%4 ÌÃ4;ÀÀÀ"j"HüüÀÀU:;0/4ÀÀà 40À0 ÿÿ<4M0?"3&% "3 4]]]}ÿÄ‹‹tYœAb©( ‘Wõ‹�ÿÿ<œÜÁ¢Y´`ì��?ÿ§"ÇÞݱoÀópÉÂýDº¢¨¶á‡“‹µŸúCßÿðÒ#Eb?QQQ==========''')()()(==>===(=(===;;ÿ;UUU0à ©«©©À0«©©?ð0«¬«¬«©©ÿð0«¬«¬«¬«©©000«©©000«©©Ã «©©«©«©À ©«©© ª©«©ÀÀ©«ÀÀÀ©©«À©UUU 0à ?À03?ð0??ÿð0?0000?0000?0à ??Ì ? ÀÀÀ?ÀÀÀÀ?ÀUUU 0à è~~|Àð~b`?ÿü0ˆòsò}~}~sÂE?ÿð0…~}~}~}~NE0000ˆ~~|0000ˆ~~|0à 3ˆ~~|b|~~ˆÃƒì<§ïE1›“Y< Ñ(|~87~ðÀÀÀˆ|~ÀÀÀÀ~ˆ|~À~UUU 0à 4À°?ÿø04 ?ÿð0@00004000040à 44ÃÃü,  <'< Ã,!"ðÀÀÀ 4ÀÀÀÀ4ÀUQDCÃðüDC±Ç…±Ç…?ð??´§DiÝ©w/9jðó(�hØ×>ü<<< =cdnm<ÿSTCöœùÏSwxñòÈÇEGª¤‰ÇãæÆ¿IõÿÃîIc?€u‰ÿ‡ð°'`Q¿\Rð|<$ HY_–ð_ð83ÿÃ)&+J1°0õQ Ï?€)**¹ÃðüK.K.©ø’787™�  Jn£78787”.‡@ü<<<L7RQêé<;<ó;8ÏWX£¤…†gîèÓåÝa_ƒQ£FQÿÃÊŒ³ê/0îçvðÁL¤Q H§Š4=$ 445#ø óóü|  Ij |à ð-LPQ?ð?ß•95Þj¸“–°{ü<·äP <ümnW¤KKL78Oóqpü< ’’ÜÿÃüâBõöÛû'jðî¨P?ðpüÿÃ;6 #$5R5ð2UQWXÃðüWXLû°Lû°?ð=#'H ILðól37ÞÝü<<</>¾½’‘L¹Ïn¤£dcAùóóðüÇpýŽCÒ� �š?ÃQDéêÂÈv…À†UQ� H <ða%<<<  � óóüH')$> 7�€ÿÿÿ0000(W0(W0(W0('// '// '// '////0/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(W0(W0(W0('//`(W/`(W/`(W///?_Ð/?_Ð/ÿŸÿ€ßŸÿ€ÿ `ÿ `€€ `€€ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(ÿo0(QU ÿ!!1ñ‚‚ø‚~ ÿ|‚~Á‚~}€ð ``}€`UUU 0à À03?ð0€€?ÿð0€€€000000000à Ì  €ÀÀÀÀÀÀÀÀUUU  2€ 9™€ 0 0 0€ŒÀ€€À€€tÛ ÿœÁ€¶Ã€¿äÐ$&("   *$68.  20 :<2(  :4BD:,  $&("    2$>@6 >8FH>0  F@NPF8  .8:<6468>@.( .068&  &(.0 %=;= "*,"  *$24*  2,:<2$   -     I G.I460>@*  2,:<.   60>@2$  !2!824:<*$ *,24" "$*, !535"$   "*,"  *$24 68:<*,.0 "$1       53258:4BD6(  >8FH2$  :4BD2$  2864 >@.$ 20 :<*  ., 68& Q      >D>@FH2, 24:<&  &(.0 5       53:5@B<JL:,  B<JL:,  B<JL2$  )'2)864 >@.$  20 :<*   ., 68&  I  >D>@FH2,   >4JL6 >8FH2$  (*,&$   6(BD2 :4BD2$  A& , .(682$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  E   53258:4BD2$  :4BD2468&$535$& .0  535"$  "$  53:5@B<JL:,  B<JL6(  >8FH2$  )'2)8:4BD2$  :4BD2$  :4BD2$   T11_packed T11_packedXÁ×£ÔÂÉÃ�@ W²Â·Ã   ðÎðXÁ·C×£ÔÂ�@ÉC W²Â Î  Ýÿß3ÿ32ª©ª©ª¬ªªªªªªªªª«©ªª¬ªÌ¿¿¿ªªªªªªªªªªª¬ªª¬ªª¬ªª¬ªª§«©ªª«©ªª«©ªªªªª¬ªªªªªªªªªªªª¬ªª¬ª©ª©ª¬©«ª¬©«ª¬©«ª¬©«ª¬ªªªªªªªªªªªª¬ª©ª©©ªª©©«©©«©©«¬ªªïïï𪪪ªªªªªªª¬©«¬ªªª§ª©«ª¬üÌË𪪬ªªªªªªýÿÿ3ÿ33*)*)**,**,**,**)V**,***}***}***}***,**S**S**S**V)V**)V**)V**,**,***}***}***}***,**S*)*)*¬+V*S+V*S+V*S+V*,***}***}***}***,*)*)Ö**))T))T))T,***}***}***}***,ÿ)T,***Ö,+V*SüÌÏð**,***}***UUU Ìÿÿ©«©©ª©ª©ª©«ÿ©©ª©ª©ÿÀÀÀª©ª©«©©ÿü0ꩪ©ª©«©©«À0 ©«© ©«©33©«©©«©©«3©©«©ðà ©«©«©000©«©©«À3ÿ¬ª«¬«¬«©ÿü©«¬«¬«¬«©WUU?ÿSÿÀÀÀÿü0ÃSÀ0  ? 33??3?ðà 0?000??À3ÿ,jÿü)×uUƯÇ3ÇÛ¯0ûüûüû/ÃÃðÿ�-ÍÅ¥ûüûÿÀÀÀüûüû±û¯Ø¯¯¯’ÇÇàÇÇàÇÇiðü?ÇH/Ç-ÇF/Ë ªý¯û&ÅÇÞÇ3ÇÇN€ýóóóÎͯÎͯ€^ýÿ¯¯%ÇÇðà 0û{¸ý(000?¸ý ljÀÿÿÝ$‰™Š™š™üÿü0a™š™š™µå˜°×uU,+-r@?ÃÃðÿ*?(?+VZÿÀÀÀHB++B+-D-+,ðü?-V?+V?+V?( D2+-D-++()*óóó'()*)*Dÿ2-+ðà 0F000?4ÀÿþY  ÿð ÕwUÏÿ" !«ÅJ�'róóüQjA'n_ -ÃÃÆÛV)*opIÝ'�!"Øá Ü­~Ÿ jy(n_'ro[„À<<<')*UV)*UÉóÖ§Øí¾§¶Õ(óóðÌó.¶ã ¨Ç)*ÿopIJ)õíÜ­8üv¸zððð?uvst»¼dEÀÿÏÇ ëÉÀüðÊq|Ÿ°µ)UuU?>6cóó|.6c.6c06ÃÃÃ& ý�<û:Éüß7Ï26c06c06c.À<<<62›+b5óóð+b5+b5+bÿ2!$/<Sððð0 6Àÿ5( /ðrPÀWßw]FE·C�¨]^]r‹"kJJ§¾]^]ÿÃÃÃ^]çþ12c®é9FE./Hk(þýrJ§JråZ¨ñÀ<<=]]^=_`}ðððÿ ïO ½€b~È’Àÿÿ¢ã:SÆPÏÐÏ.¦ÏÐÏõ'wZ™J1¥if?!óó<!!Ô      òr…p…|Ï3Ï!!!ð       õxVÿ"óóð" "" ššŸZ¿|� œ˜2/À÷ÿ'0)*)5ÿü`)*)('(CUwUÿŸÏF=™~óóüu¦ ™’�º»ÃÃÃoˆ‰Šƒ„‰ü<ó§Q{€~}xw~{tu’�˜™~{tuºÀ<<<™‰Š‡ˆ‰Š‡÷|{€|{v’øšóó𼪼tÐvj߉Šüƒ„‰Š‰õ´³<º¹ððð‹Œ‹ŒstÜ+. Àüð °DŽ÷‰ü·EU?DL{óó|0L{0L{2L{|ß7Ï2L{2L{2L{0ÀLóK-zKóóð-zK-zK-z<+,rrÀ7UvU($EóóüFALELKÃÃÃ’lýÑÒÐÏüü<óQ‡!<; OðVÿOð?BAFEBAJÀ<<ƒ@@@ÿ*)ÿ*)*)*>%&5<Mððð?*)*)J•–ÀÿI6! 7À ýÿÿ3ÿ33/0/0///?_Ð/?_Ð/?_Ð0_?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ Ï0_?_Ð0_?_Ð0_?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿÿÿÿÿ_0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿÿ ?_`@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€`@Ÿ_Ÿÿ€P/0o_ üÌÏð?__Ÿÿ€ßŸÿ€UUULÇÇÇ‚‚‚‚Èc~ý� H@|||‚‚‚~›‚~ý‚™‚‚‚~4$’Aûñññð‚‚‚‚~äý‚}@Ìp‚‚WUU€€€?€ÿÀÀÀ€€?ü0À€À0   333ðà 0000?À3ÿÿ€€ÿüÿ€€€UUUƒ™šæf€€æh‚€  "  €0 8Àx¾ðÌß@XÁ€¶Ã€¿úÐ   &24* 2,:<2$  :4BD 2<>@:8   J<VXF, NHVXF8  NHVXB4  .8:<64  >8JL:(  >< FH6,  :8 BD2(  a       EC:Zá  C=KM7)  ?9GI3%  ;5CE3%  4 23cÐ64 >@.$ .068&  &(.0 jprtrtIjt   5už3?u4ouou;5CE3%  ;5CE3%  ;5CE3%   3S¬24:<*$ *,24"$&(Fhfdjl^dfh       E5Y~'/Y[]SY[]SY[]/)79+  3-;=/!  71?A3%  @tƒ2468&(*,2XRTZX^`N4(Z\"(*,"(*,"(*,          ".0"  T11_powder T11_powder�Â…ÓÂÉÄB W¦Â·Ã–b–�·C…Ó„BÉC W¦Â b˜ uÿÿÿ3ÌÌÌBA†BBDBBð ÌÿØ“oomÞomÞomÞomnmoo±mooÿüÌÌppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomo±omopßppßppßppßDBBDBBDBDA†BBDBBØ“oomo±omo±omo±omooàooàooàooD×¹ppôBDBBDBDA†BBDBBØ“oomo±omo±omo±omopoopopopÝoom±oom±oom±oomBBDBBDBˆC†BDBBØ“oomo±omo±omo±o©ëºº3ÌÌÌ,ø@``¶kf¶o``@ödz5£Zððððð,f¶kfofoZ5£Z5¯ÿ€,Fföföföfô–Id–Oú€(,ÿ€Fföföföfö@44:zfofofofo.,FföföfößUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© 3ÿ0©ª©ª©ª©«©©ª©ª©ª©ª©ª©ÿüª©ª©ª©«ãäü 00©«©©«©Ã ©«©0?©ãä«ð ©©«©©0ë©©qr0«?ð ãä©«©©« 30©¬«©«©©«© ?©ãä«ð ©©«©©ßUUUTSTSTSTSTSTST7S 3ÿ0SSTSTSTSTSTÿüSTSTSTV9ÿ 00?0à ?0?V9ü ? 0Ã?0T?ü 7? 33S? ?V9ü ?ÿÿÿÿ:2kº‘œ¬éŠ8ÅBÏðïñ1/3*3mLCs„}sÀ}­K:m5§¼áÊ1è_GçˆE­ËIk«¯Ü1�'Ò¥`T#?rD‡2üI UBz·ç‘ñçÒÞÔ¤ ­_hsÓ 9¸é9DѦCmÅÐäÔDCq¤ üZg˜@||p˜jû`j9M09`‡ 9/ k/0m£¤kÝb­k§{C@½ª1MrS êFXqÒðîð�Á9 Ê·sÞVó­Wš­Km襭s1sDœ²—.(ö…q‚kÌã«óîGÚ×'Ñ,ŠgD ¬›Õ�RË^Þ€„Þ™‡¢Ä�ë뺺#"'- --+)B™™ù‰©q$0q Ëû;$*  \'V+P/D+<+B+L3T9-$I%#™Ÿq±MÐ/ÿ 2, #$E#!™ñQSò!²/Ô * N '$=!!ôY—õù *$¬ÿŒïŒïlï/-+.?/ w÷'0GPGÿÿÿÿ¢<VÏlÿÁhEb¿çúb@Zgx~�#Nܬ�ÑÒÖX“í^½2ÿsó\„©Ûcü‘‰…8ß÷f‡Û‡_3½—™øOœQsUUغ¿ 5ÈnhbÀÖ}tÍ·ÀGd'ÒI_4^Ø/ ãS“EÚÆR22Œüy›0ß›léAÊcºIÆÀåà œÊ‰[“ߟC=ŒjÛU]‹å¾[P f‡Ý³Ñ!=ÙýÙýùû((*ÿÿÿÿºÒyz²ÖhÚ�3òoYóÈ×\DLÈI“ÅC+‰ƒ‰µáí/‚×3Ø“j�“ù/TÊ_³Ó«õ$ ·w´ïêãˆjãØ©ø$¹z©Ùy% ÷¤€YÝ€�wØc ɲóõÍŠÅVÏ-qî2æÈšjü �ãˆ_6‘µÌI óðêü+�Y…ÁÖYl%eR¨l§Õ𠝩¥L¸o÷Ó7ó¥\i$½@- ª½i ‡ý¡Þè]B=a›ŽL Ę8†á<-h²êî2•´6Íç�¤÷ì÷€—oº Oˆaz{݆Þ[BT%B'B‘€Ú„³ÞbB”@t@t@a6a:`r %S !DB”B¶ïé’ C1$@5dDÖDÔdöÕu]]8,€a †?ÿLñ³ZœÐFÍç—]•xËæM“ý°éF?ÿü”§$Ùm‘†±:瘣GJ*M>ÿðB»2Èö †‘2ª¡>TLŸ±Âš˜ ÿÿý€8çîŠÇaTû M„„„ƒËÿ›"ykILfôâ»ôhM –Í7³^6’jÿülHSùâ‚ H¬¥¥ b,.Rôÿó·¨ú¯ð€ñã ”–vð* �¨ú�¦ÿ¬'çp &"" $.„1$²§§�) $ , .ÆC2ð&__ßÙýnåáäîú#•dú6lÐ^l69áÊIÁäÆa7±óðOºPÌw!$a¼çÆ/.+Ù‡ÓlŸÎÊ.æŒÌÁ—]¿<²&Ø`ÿQ32€?ÿÿ«%CE¤·ñ¥õàÐÏé›7úk¤(ˬ¤ƒâŸ‹JK%&'(+,A@ÿ€?ÿ \�>}³ž²ú §ã?gÅ??vè9•*ÿüI›;pºÚ³8+øÿ$ig6 àÿÿÙµu“‹ÉÜ´×—ÒøzÒ�(ùXȆŠ}¼i]fÕgíŸgd‹ôÿ‘ý_×ýSa�†@Ÿ�?3j[Za\ "  Ø`@€9Ÿþ2aXýøýöýöý $&ù†I GD.‚Ÿÿÿ !, 0ÿôI™* ù>&QZ]d :<@ uÿÿÿ3ÌÌÌ?////?ð Ìÿ?000‡0(o0(ÿüÌÌ'@'@``@0000(?////??00H'@'@'@'@``@0000(?////??HHH?(?(?(`?(¨@0000(?////??HHH?(0GGG`@0000('(W///??HHHQQT0ÿ ÿ0ÿ0@ÿ ÿ0ÿ@ ÿ€ @ÿTUEUóÿÀ€ ÿ0€€Ãÿ 000à ü  0Ãü  33ü –VUU`VVVVVVÚ.f€2f VVVVVVVV`0‹ 0€02, 02, # 2,ÿmoopopopomoom±oom±oom±oomBBDBBDBˆC†BDBBØ“oomo±omo±omo±omoopopopomoom±oom±oom±nÝomBBDBBðDBºf@óCCFf€ofofofoÿ.,Fföföföf@ô44ffö|föfõÆoÿÿðUðÌÀ«©©«©©000«©©Àÿ«ãä©«©ÀÀÀ©«©?ó< ©«©¬«©«©© «©UüÌð???000ÀÿT7ÀÀÀÀ?ÿó< ?S+ ÿûjókmkEs19391X¦+L4-ÉUAŸ�Éy°2c±ä�P.(�#èu)'aÛ¶� I@}{kË}]Õ�›ÒkmkKmkm8üﲚˆØv{Nœj­ˆd7ɾË@ðé­ºQù›ð��¿Š "ïjïJïjÏÿ)'',?- éQ‰Q©qùwù™ù ô¬ö(%Œô¬ðHÏÿÿ##&ð "ÿ•^¯¸+™�9:I´– ¶Bº©cne£F0‰7ïx¯Yˆ¶i†F¥ à.|)®æâϘ¶˜oùacŽÃŒÜj ²šfexÖHâ?Š¨Ç‰)”ŸÕgtCZk%ðê%êû0t64?ý?ý_ýÿ>„&((%ð@‚B 0  2 ,ð 3cCßÕÿ(õÿ×öÿ|‚#*.ÀÿI‚MûíñäÕÖ;ö—;Ýóñ ÷Eqú‹¦n¤LlHa@¨‹u�¼òðÑ<3ØEÖ�“nÊ@ ]—‰<µÒ~¥¦•6Ú¯î¢Ú¯í¿ÌùþYÌjøŒ/ªD&ðº&©ù11& P3$födòÎûOÀ™•Í 0a0€1@ð� ÿÿ[s넃hHåGèz$Ä®~aE^†ž/ÿÀÛ爻½B$R"4JI±²›÷1a�‡¥#÷×·„£¡�Ãør�𴶘XV_ÿ022 ¾À*cCÿõÿ2÷ÿ÷øÿž¢#46àù ÿ?&±LMƒr¥0£t‰¡T†›êÿìÍÈhºµê”§�Ê�®YdH%éðÿð5 5lä,¤ 5(’�àåý���™ ðó?¢7&M^ F #H W.0KÇ@$$&I�ÿGGG`@0000('(W///??HHHGGG0`@000ð0( ÿÀÿÀÿ€UüÌð000ÿÀÀÀÀÿ3< ÿ U,€° À"À€€ââÿÿ—¼ÿ�€¶Ã€¿›Ð            &("  &$ .0*   ., 682(          "0                  535     "$  & .0*  E                   -+-    "*,&  .(682$  1            ,*<     535    "*,&  .(682$  -  "*,&  .(68.   60>@6(      535    "*,&  .(682$  28&, %979 "*,"  *$24*  2,:<2$       535    "*,&  .(682$  2468&(*, -535"$   "*,"  *$24 T11_rockT11_rock�A WÑÂÉÃðAR8¼Â·ÃZ Z�A·C WÑÂðAÉCR8¼Â¯ § 0À=ª©ª«¬€ø€«ª«ª?ð?SÿÿT¬ÿ«SþÀüÀýTªýTªý㩪ª¬ârª¬ª8᫪¬ªärªª¬ârª¬ª7TzÎ7TzxÉøn»Ê¹Qãʹ¹¹ã-÷ªª×Ôî‹MMÇ•ò ºººk_(im( as]qQ?ÿ?*úíK*ÐH-ÿÿü[N¬2M>B9‰ ?ÿ? b�\ˆª ÿÿüå¦V$ PYH0@?ÿ?:ëõW7|\;ÿÿþ@l©;\�Ê‹>[Ÿ8‰ @@?ð?`_ @_€`ÀüÀ_ @_ @_ÿð€€€€€€€€?Ãü?€€€€€€€€€€€` 6á«*rèêƒãì\ A€¸Ã€¿_Ð  "(  "( " T01_powder T01_powder„®/Á(„B…ë)AÀÀt„ÂÀ@®/Á„B(B…ë)Ažt– õýÿÿ3ÌÌϹºŠ¹¹¹¹{=ÌÌÿ/---Š---Š---Š---Š-.[-/Œ.[-/Œ.[-/Œ.[-ó333/¹¹¹¹¹»¹`ºŠ¹¹¹¹{=/---Š---Š---Š---\.[-/Œ.[-/Œ.[-/Œ.[-/¹¹¹¹¹»¹`ºŠ¹¹¹¹{=/---Š---Š---Š---\.[-/Œ.[-/Œ.[-/Œ.[-/¹¹¹¹¹»¹+¹ºŒ»¹¹¹¹{=/---Š---Š---Š---\.[-/Œ.[-/Œ.[-/Œ.[-/¹¹¹¹¹»¹¹+ºŒ»¹¹¹¹©©ëê3ÌÌÏ.````öföföföÀ`.`õÆo\fõÆó333tÿÿÿèfo.fofofo\f4õÆo\fõÆot.fföföföfõÆo\fõÆ4 Fÿÿÿèfo.fofofo\f4õÆo\fõÆoF._WUU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©«ÀÀÌÿ©©ª©ª©ª©üÀª©«©©ª©ª©ª©ª©ª©ª©ª©«üãä©«©©«©À0 ©«© ?©ãä«ð ©©«©©À«©0 ©«üãä©«©©«©À0 ©«©À¬«©_WUUTSTSTSTSTST7SÀÀÌÿSüÀSTSTSTSTSTSTSTVÿ9??À0  ?V9ü ? À?0 Tÿ7??À0 ÀSTVÿÿÿÿi±KÜîK ‡GH%ž‚®rrrr­4®6¶4­6ã¦ìyáâìyã¨êwîz4w§6ÛrÓ®Oy3i%Oyqi�wq-TVm�ºvî7¹b�&ÎZ8ŠÂm¶Òµ„SIK‰~¦ìy¾¨êy¨êwjìy”yq+i§yo-Éúwq-->y3kTöìÈ!ò`“rHKýr×Ä´ööøE¨êw!¦ìy!¦ìy!äìy§wqi6yqi%ryqi�×yqã�Õr!z5¾y©e˜nó'ûtŒ¸ºº°âìy]äÙw×ß×yì£×y¥yqáæw­ÞèXy­ànÐy­fna›XVyFk&Ëß±[2Ðeë«ëê !     3C3#‡‡gàƒÃáñHÏŒð(> , .2640Wÿÿÿ{—S)!SqShðFoˆðFï2 $ c)#! Û÷00ñHÏlñH(#! # 0 $$Iÿÿÿ+½ßq-!%#SqSŠ(ðFÏŠðF¯!!!, $(T-}/%)ÿÿÿÿWä¤TþKVã&Õö\¾ŸäŠ$n`¡c‡Õžyͯ[Òo$|¡‘R@Ï©­œBù9z*£r*yÃëÍêDåLN ƒåþh–çNI˾¤P¸;Õ9M–Y<²¡æÐK̳ùi‘Ì1´�w¡É¢è 7æhŒÉìòÜ8¢xÆ)ŸK�ò^þ)(ª)F¹X!Q‘Ê…H�¬W>‘X_œ‘|’õ SŽÅù Ç’q³´’.qB¦sI/ð=I…OU(²[#¬°J]Ç×iö‘›#î+º(éŸ088°^n.–Òï*”8[`æqØÕb5·Góì^€K£â½ÅE–úª¾ºc£A!Ã`#tôòpÿ÷...  00 2¸DCC! B„mi¿?__ß]�u$öõOo´öÿV$ 1ò`d@&&& **o÷¦(FPˆ$aÿ_$ý_ý_Ý[o×$"&&&@1Að0hbDÿÿÿÿ Å ÁGî¸ç`*§4S6Cf/ãºU?ÆÚC ü�y†>Æúù ôÊ2veX+EÖéü£KÒ/ƵkÑÆf¼ñ�ˆc­A7˜÷¯_c‡ër€'R[Æ7>Ä�¹S¿MBÈ:nbãzÈ'Õù‹æú±\>#,o} õâÆ&y˜^ñ€ÃÍ]LÑ2e2p6=2efe"Î=ORep fy `·€EöljŽáyHµ“ú ؾR@¨Æ"Cª A¥›?#e�ŽP›N™ò^ÃAŒh~½eÐNR;š¥:�ªlþ·Ñ’ ëìO&tÉÊ–ªiªÄþþ¼œœ�݈èèêÄ2`b2mûéÉËËËo#�@O4Dd/%&#Æ‘GUòS2\P�$B–B´B”BS'1¢S;^nrCb'DD'B1‚3%1 "–‚#Õëùú|€èèèÿÿždŽñzaž†pü­Wºþ-ÌU6ÞtΉ¹Zliÿ8Sïüû;þTKÖ´ -í #6/ÿÿ+΋H©&ʉà†ñ]/Ý©g#Pÿüðÿ_œÑ]k ´b´b´bÖ-Ð-T éÐÐ4$Òtí߈ЭµF!W%·�Ä{T+à F+F+F+F/ÿÿ�w$ò© jଠí@¯`sL†}ÿã%äyŒ§åï ÐÒ±´{þ ! 2  4  4 Þ!#!,ÿ  (   Í, .  4  4 Ÿ¯ùª3/22ÿ  2 20 `Pcð4Ÿ½mo®m¢SV÷ëxÙÃɧµý~4f!.‡=µànCpÿÿÀPy r ÍAn�@0@3ßê0é%k¶˜¤C`ªmÀÝÐ5Nïk‰éoë®ïÏ¢ „¸K"wxÀOÿü�½_u[¿iÏßz,a¹Ñ—ƒÏAiƒÏ�{ÿò“á)�Ñ¢Ûÿ  rÁÕܼõm¨È?cr0�ZÏPIFMit |qA8  S¡'uéÁ ÿÿ ŠÔðœòŽUY]^ ÿ¦ÌLKX�ÿüÿ 8ÿÿÀ@88€H’!ð„(M�¿¯D-*ÿÿý-&-0 $ @€Oþð AD  2 2 2þI’d ™&(KLÿª(A)ÿŸE>00.d™&I� Ïÿ&EB[lõýÿÿ3ÌÌÏ/0_/?___?ÌÌÿ//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 0ó3330 ``@000/0_/?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@000/0_/?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@0000/0_//?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@0000/0_//?__UUUU@@„„„À€ÿ� Hÿ ÿH€ ÿHHHL� Hÿ 0ÿ ÿH€Àÿ_WUUßàßàßàßàßàߟ``00à`_`_`_``ÀÀÌÿ00à`_`_`üÀ_``00àßàßàßàßàßàßàß°ÿo00 00 À0 00 ?`?ü G ÀG0 `ÿ?GGÀ0 À_`HU@ffd @€@™™˜€ÿ{=|M.0»---Š---Š--\--..[-/Œ--/^.[/^-/¹|M0.º¹¹¹»¹¹·¹ºŒ¹»¹¹¹{=-/--Œ/--Œ/--Œ/--/-.‰/^-/--/-Œ-/-Œ-/-Œ-/-¹¹¹¹»ü¹¹¹êjè¥?fofof¶o\föf:µÆ¶oØ5ÿÿ(.FoFoFoFfekfdoRdododoÿÿüUUÿü0ãä«©©qr«0ÀÀ©©«ÀÀð©©qrÀÿ«ãä©«À000©©«©ðÏ©«©©«©©«©¬«UUÿü009?0ÃÀ?ÀÀðÀÿT7ð000?3ðÏ?++STÿf½Ó—ÓÖ¿T¾P;.ñ1!;žµO;"‹ÄÚò5+ã;^*Ÿ¶­ (•m©×óXyúýGSŠS)ýÇòôx¹äTT%º„»§åg!Ï.ryrùÐñçm©“”ç<©½Û¹ïÇÄ? ë*aòÏ5à=ñW¥ÿýO÷‡êjÉÿÿüÄ116) °JòF&ð&ðOS¹ÿÿ*> &(* W%ÿ¹6•qP* ¿!�¿ŒÏ-Jï&Ïoÿÿ'$ "&ÿ*&lGÿØ�[5j“b7ÝjpÜ}ʶâ]•Då#_4O²kü Œ<¤[ÓMï q}‡W£Ê¤¶‚ž5;;™¨F GÎÆQÎ…s¿Å˜Ä?ÃpNîž {¨/8ßûQû�bíVµv‹QÃ/ŒöÂQ'›sè#ÿÑsÇ•ªjG,R Û_Õ_•ƒUOÙ÷û&ôÿõ÷0"`" 0BHB{ŸÝ¿ýý""vRŸ/wÝ_¿Ÿ}¶3**&ÿ 7@‚=¡1o5 ^‹ÊWºÎ{Xb‘Ñ Q ¤ÒG µÎ€/ÏWó¶ò²t»�·._‡ÚeJxp×”ØJqw%¿ÂÁÁ}¸ÀÜ ¯ŽC@w¢ßŒ‰™ö”o%×lœ`Õ:¸Ö¼úÊ V‰¥-óÿÑb‘å•jàO0$ $ HêùD"�fc"t5:6#?aB-F-$f-~wûŸÿSmŠª!H £ðxœŸñú«'š?*�¼o_Q¡¨¯W·ÿ†KÿÍBŠ$ !+ I&1$?ÿÿª0ÙÜ�âZ·™G ŒÜä¼9{ á0Í·yF×ÿß—ýÂ$  Bÿ_?€O0(·/?_Ð/?_Ð/?p/?_ 00Ÿ@00_?p0_00 _H'/Ð`@0000('(W///?_?'//ˆ'//ˆ'//ˆ'////00_0000(o0(o0(o0(``@00ü00(U!!‡ `ÿÿ0ÿ UYÿü00' /0ÃÀ /ÀÀð Àÿ0 ð000 #  ÏÀÏ # /0H €FÐîü  ÿ{íX À€¿Ð            ".0* 2,:<6(  >8FHB4       " &(   :D                ECE    "*,&  .(682$  ]                 535    "*,&  .(682$  I          535    "*,&  .(682$  I             "5(35$& .0*  6,:<6( :8 BD>4  I          $"42D    %#%     "*,&  .(682$  A?2A824:<*,A   "$  &("  *$   T12_groomed T12_groomed„Áš™éÂÛèA®ÇÑÂÉà   “T“„ÁÉCš™é¨AÛC®ÇѸT° ÿÿÿÿzyözõyözõyözõ|z|zyzy¥|{ö|z�{ö|z�z|zõyözz|z|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|zøz|z�z|z�z|zy{=yözõ|zy{öy{öz|z|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|z|�{|{>zyzyzz|z|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|z|Ëzyzyôyöz|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|z|Qyzyzyzyô|z|Ž|zÿÿÿÿ('('('�*=*='*======*;;ö*'((======>õ======Ë(*======·(=UUUU ÿÀÀ©ª©ª©«©Ãÿ0Ï©ª©ª©«©©ª©ÿÀ00ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«00 ©©«© 0 «©©«0ÀÀ©©«ÀÀÀ©©«Àÿ33©©«©©«¬«©0 ©«©© «©©üÌ«©©ª«©000©«©000©«©©«ó30©©«©©«UUUU ÿÀÀÃÿ<ÏS?ÿÀ00?ÿð0S0?ÿðS00  3 ?0ÀÀÀ?ÀÀÀÀ?Àÿ33)< ? ?üÌÀ?*?0000?000??ó300?}u]W ÿÀÃ:9:9:8:žcdþ°½ÌR`R:£j:9:9:¿||÷Í:”“?ÿð0å:9:9:9:8:0?ÿð:å:9:9:9:800 ÿ:::*):‹|3W|{’a|Y!\3'ÿÀÀÀ(:ab?:3ÀÀÀÀ:?:3:::ÿyzy.é:°uü vyo::: ­:::?3::m{…|%¹}~0000:8:«000?:8:«:8ÿÿð0::±¥ŽS/jï+¨}u]W ÿÀÃ!",  # @I 21?ÿð0P0?ÿðP00 ÿ65 @I@?1@BE,ÿÀÀÀ+@?<ÀÀÀÀ<(0?@?&9ü :?. <<.A@]@0000<000?<ÿÿð06G*= 3$t]EÏÏþm�ÆjЕ9L'(A C|ÿA!j1ÿÿ)|I+tÃy~&tEÏÏøã*Y�øÊç�ÂEñÇ$=k6Pÿ??FEˆ‡Ü×·Ðÿ'EÑé©Fd´�ôó9G‚ÖØÿRú(ÞÃÿû_¤aŒüÒìÐþýÿüžË‘€8<<< `_?ÿðß:²NÒ¶F“lTE„„�¾ü89u^ÿ??R.‹ b=#<8s$$“ÿÿV,…\?68ÿmN0}ƒÿV?8üÁÄIÿü€3 (/,SoJ<<<$#?ÿðH&- +#$Kÿÿÿÿ'(W/`(W/`(W/`////0/0O€€ `€€ `ÿ `ÿÿ_``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0('//ˆ'//ˆ'//00_ÿ_`ÿ `_Ÿÿ_Ÿÿ`@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(‡0/0@`_`_``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(`_`_À_ 00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(H_`_`_`_À@00Ÿ@0TUE<~~}€|}€0ÿ`þ ```ÿþUUUU ÿÀÀ€€Àÿ<Ï€€ÿÀ00€€ÿð0€€€0ÿð€€€00  3 0ÀÀÀÀÀÀÀÀÿ33ÿ€<  üÌÀÿ0000000?ó300UUUUf€ƒš †f€ 9™  9™  # À€€À€€J! , ,À 0 8¢0 ÿ|Ž|z|Ž|z|zz|z�z|z�z|z�z|z|zyz>|{öy{öy{öy{öz|z|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|z|zyzÿyzyzÿ=====ó((((======ÿU000©©«000©©«©©Ã 0«©«©ÀÀÀ©«©ÀÀÀ ©«©©Ì«©U0000?00?0?à 0À?ÀÀÀÀ?ÀÀÀÌ?Ìu0000::ä¨00?3::ä¨::s“|Æ8|{:CD:“”«ÀÀÀÀ8::«ÀÀÀÌ8::«8Ì::u0000:00?3:V]@KBA65*):ÀÀÀÀ:ÀÀÀÌ:Ì47ë¼u`°ù=+Íýu‹4f%&S(,a4"Y@O500€0?€U)€\M¬B�Ø©Äõg aB%   ©£ŸÐÉFÿÿü”“) ÿð('cÆ0ÅÆïz²®–’”jý4€)*g6.uB(oR¹hÿ0Ÿ@00Ÿ@0000(o0(o0(o0(Ï Ÿÿ_Ÿÿ_Ÿÿ_Ÿÿ`@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(ÿU ```U000000?0à 0ÀÀÀÀÀÀÀÀÌÌU 0  8 ‚ À€€À€€ÈLí ÿ„Á€ÈÀ¿ Ð         *46820 24 >@.$.068&,     " &(    2<>@:8   J<VXB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  A     u          E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  *4"( =1  53nÁ  ')#  +%35+  3-;=3%  4 23SÀ:4BD2$  :4BD2$  :4BD2$  28&(*, 9535r… '   /)793%  ;5CE;-  4 23G´:4BD2$  :4BD2$  :4BD2$  2468&(*, )=;^Á  '!/1'  /)79/!  71?A7)  4 23K¸:4BD2$  :4BD2$  :4BD2$  2468&(*,"$ 1      9 7&rÙ  /)79+  3-;=/!  71?A3%  4 23gÔ:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T12_packed T12_packedpÁ�BèÂÛÃÀ@�ÂÑÂÉà   E0EpÁÉC�BèÂÀ@ÛC�ÂÑÂP0H ÿÿÿÿ’‘Û‘‘ÛJ’‘Û’G’‘Û’’”’’’J’’’J’’’J’’’’J’‘Û‘Û’’J‘Û’’J’’’J’’’”’’’J’’’J’’’J’’’’’‘’‘’J‘’‘‘’‘Û‘‘Û’’’’J’’’J’’’J’’’”’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’’”‘Û‘‘Û‘‘Û‘‘Û’’’’J’’’J’’’J’’’”’’’J’’’J’’’J’’’’’’’J’’’J’’Ü’’Ù‘Û‘‘Û‘‘Û‘’’’’’J’’’J’’’J’’’”’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’ÿÿÿÿ$#H##Hm&%J$‘$#J$$&$$$k$$$k$$$k$$$&’$#H#J$$m#J$$m&$$m&$$&$$$k$$$k$$$k$$$&$#$#$’#$##$#H##H$&$$m&$$m&$$m&$$&$$$k$$$k$$$k$$$&$$G$$G$$G$$$&#H##H##H##H$&$$m&$$m&$$m&$$&$$$k$$$k$$$k$$$&$$$k$$$k$$G$$J#H##H##H#$$&$$m&$$m&$$m&$$&$$$k$$$k$$$k$$$&$$G$$G$$G$$UUUU ü ©ª©«©©ÿÿÀª©ª©ª©ª©«ÀÀôÀ©©ª©©ÀÀ©«©ÀÀÀ©«©330é«©©«©© «©© «©©0ë©©« 0À©«©©«©©«©© 0ë©©«© ÀÀ©«©ÀÀÀ©«©À 0©«©©UUUU ü ÿÿÀSÀÀüÌ@?ÀÀÀÀÀÀ?ó30Ã? ? ? 0Ã? 0Ã??? 0à ÀÀÀ?ÀÀÀÀ?Àà 0?]]_× ü?Ï~}~ âmâážDC�û~}~}~eÂQ\ÃÃÏ?C¶DCˆCÃððð�âC�âáâáÃÃÃCCDCDCÁCDCCDCˆCÿCˆDáâáâáâá<<<CCCˆCCˆCCˆCCC°CˆCˆ“Cˆ“0¨ãßÃÃè÷á’áb\“ÿ\55\CCC”CCC|CC®CCîCˆ“2ÿðððCˆ“D¾á’á÷¨ðÃÃÃ÷ã|7\«\78CC¬CC8CC8CC]ž_× ü?ÏUDCV;"ÃÃÏ?CQDCˆCÃðððVCV@@@CCDCDC6CDCCDCˆCÿCˆD@@@CCCˆCCˆCCˆCCCrCˆ_CŠeCˆcCˆ¢-ÃÃÃ33\ÿCCC°CCC¬CChCCCˆcCˆcÿðððCˆcD¤33ðÃÃÃ3`CChCChCEjECÕu]WÿËæåJäÿ-wüÿÏxëê‰ÑXW£-rÏÏÈC‘=Ћ”wxëêuxëêusêusêÏÏÏ‹”‹”‹”‹À”ãýþlsêusêusê†'Àüüü]‹”‹”‹”üÚ:ìëÓŠ‰Ôzy“ "9a[óóð?:"žc9‚o¹Š0???Ò„ªî ÷¾þ¾F¤¨o Ê/"9ü<üü#$q ª�´YYüÏÏžc9î ÷Œ:ž)ÏÏÀüüüHMHMHMüF4íœ ó8Kóóð?4I4I4>AÿÿÿK8;8;84 0Íüüü4I4I4üÏÏI48;8;8ÏÀ;8*T}_h$‹hu“”;”l‡ÚÿÿÏøhghžÎ  É>ÏÀȘ<<ü;4žÌ §)*ü“ x)¨éêWôóØ#$S û¤ú(-Þ|VÖ€~ýðPg???¨È8Liž „�¶´Þ4# *GHŸvû¨¶ù|õüÏÏÔVÖLŒC«žRÏÏ<   N@Z\N4 VP^`J<  RLZ\B4  $ r¹sˆ 2   :4BD>0  Eqª77qsukqsukqsu?9GI3%  ;5CE3%  ;5CE3%  P 3579'% ') /1 ! ')        @ >+kÜ2,:<2$  :4BD.   60>@2$  532bÑ  ;5CE3%  ;5CE3%  ;5CE3%   39 75 ?A/%  31 ;=+!  /- 79'  (          4 2'4-  /)79+  3-;=/!  71?A3%  4 2349  ;5CE3%  ;5CE3%  ;5CE3%  ( &3(9  ;5CE3%  ;5CE3% 75 ?A/%  0        4 2#4)  +%35'  /)79+  3-;=3%  4 2349  ;5CE3%  ;5CE3%  ;5CE3%  0 .309 75 ?A/%  31 ;=+!  /- 79'  ,    424%  '!/1'  /)79/!  71?A7)  4 23kØ:4BD2$  :4BD2$  :4BD2$  )'2)824:<*$ *,24" "$*,  T12_powder T12_powder„š™éÂÛÃ�B=мÂÉÃy2y„ÂÉCš™éÂ�BÛC=Š¼Â«2£ õÿÿÿ3ÌÌÌBA†BBDBBÿÀ0غoomoopopÝoo±pÝoo±pÝoo±pÝooDBBDBBDBDA†BBDBBØ“oopopopopÝoo±mooAomooAomooDBBDBBDBDA†BBDBBØ“oopopopopomooAomooànÝoànÝoDBBDBBDBDA†BBDBBØ“oopopopomnÝoànÝoànÝoànÝoDBBDBBDBDA†BBDBBØ“oopopopomnÝoànÝoàoo±mooDBBDBBD©ëºî3ÌÌÌ,ùf`oz`\\dõÆO\dðððð,øeeeo\€dödöfOfd,øeeeofzdöfI\I\O,€FVVVõĆ•ĕĕÄÿÿ,eeefõÄ•€  _UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©«©©ª3ÿ𠩪©ª©ª©«©ÿÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©«ÿÃ3ãä©«©©«© À©«©À©ÿÃ3<ãä«©©«©©ª©«©©«ãÿ Ìä©«©©«©ÀÀÀ©«©Àÿ©ãä«©Ã3 ©«©©« ©©_UUUTSTSTSTSTSTST7SS3ÿð ÿÿSTSTSTSTÿÿÀSTSTSTSTVÿó309?? ÀÀVÿó3<9?UT7ÿÌÌÀ??ÀÀÀÀÿV9ó3 ?? ÿ÷ÿÿèÆt°—!}FçºÞÆc@Û¡£9s99®ssss/®­sÿ篤Ñh^s]¡¹9ôèj9ºÒ®Ss»$Ýа�Ï0ǼӕT ñs˜g¡Fòó?óüÊ9Üss999iF–:v/$:-siO;¼9£Å­"~sÜ, E·EOtOèêHB„¹ €¹ºÒÑ 9ÝÆéÈsÝRÜ$éÿ0ó¯R èÿ£ÝuèèÜls9R7:öØ<~ÑöÑÏ®çþO¯!Eju[õ­sÏÐsô^Çh€~¤Šs¤EO¼­ÃÂ>:Ré°—^F-#]9€^è "¡-FsgQ ¬-®GÆÿëëúî% % #!?yy™Ÿ›™(* ŸŸŸŒð!!  V1L5R3L/J-P)L%>#_)#›™Ÿ  jðŠû&¯’J$&&]!%½™Ÿ+Ïÿø�!"hÙ¯��*  Q%  " - -'ð(ñFðFÿÿ, G!!  ŸÿÏo/P&ð" 0 ÿÿÿÿ‡?%¶¸zÙVC6c/¼•Þ%(� zbÐûÜlOdÊŽQf—@ èÐp�‘À—¨Ùâ…âꪀà~n v@¸/AD؃Ï,C�w3Ûÿ¹!v¢Æàd·Æ_%_–¸ Š"­ˆ’GçEô¢fK‰€pmAaþ+žv`Fkã«® ðpHQ†óÈÚ)¶jå§ÐØ‹òÂëE‚R"DÄž ŒpGžJ¦ð8ÉîïÜâmØ#Eõ×Ô z¼¸îå^Õ9°½Â‹øÓ5ɪhè ž+ûWÀsm#öŒCŠ_³iÔLêÐ.núk–ñ";HóBz°A¢DÁi. \ÙJ1ˆ•jfºéºca aFÁÐð ´�OC?o÷ø,*ÿÿÈ™, P0a`ðbL< Ï46T7�#*0 , ‚0Fð$bN8¸óïÿ1'5n ÷óŸŸ�Ÿ�²*C /"F$æ8% o3:-83>5P öùö÷ôý4@òBÏ:M1>->;JO%`ùÿŸ]ù`$ ÿÿÿÿˆm‘w¸è{æöUUT`Û�ë‰<+óC@©åœþV)á×·YõëøÛ(ñ¿Ékµ�ˆGxÝ(Ù1ô ¸�9‚<–�ÅýôQ§.@`Å:9"m²w·Ê ¶°ÌS½²qðQ×öø¥÷!*È!Hú%†eãŒ/`‡}QiÛc�[ˆÛ´Ÿ##þ|5ìÿ´”¿9¤FÑúé¸mâ—“µ‘ÿ±.YL��¦�·4]mŸ.ûƒ¡N4u¨ªñˆ6½0¾rñ ‚n™ñ†ápŒ1\$ä¸dÍK®Ö‹-­ù7uÑO\¯lvœ¤2ZÚfBª©>e¾—~(s�ÖR8¥iª¦ NäÀàð 8€1%ƒc!^æ­F:!!#0a0�,í%&T¸ÿÿÿ*�#f'0¡1?ù¥EÀ1 `0@0@10ª\'ô X1 @0A5 õyß÷_ÀÀð 1¿ºÜ×µ8q‰jÖa7_éMìšê…ÝplRÙ­›…ç€;<(ÿÿà™?Í|(�™‡¯D_$?+*Ôf÷"êÇhí÷’Õ{Ÿ ×ÿÿÁ/ÅL,b]îœßÄ 5`Žžm‰þL´uÄߊ‰q} ãßVS QÿÿŸIÔa#�< [#ëìèlE€þ¿�§þ«>!7R´sÏx»ÍBÿÅ£û–‰ÆJ³ 1šz ì~On„jvЋž%e9<ù”³§ÓmSúdd¶Ù¶ÔÏoC?¯ùú'46ÿÿÊ6P1£€ð(?4 : 8 Â05fð*3ÿÿ 1vûõ¿¿¯¿¯Ô6$$øK,M/21@;J?d úûøûøÿ62"" ÅÀ,!=N;NKLS)v "ûÿ¿_ù€"  &Ÿ®Û¾�Mhf¾ÐžI#€¶ïï-€Qzö��ãŒg²²K'›6  ’€Q 0@@ýùÿÿt'Õñe U.�úK(Qba†9œ›K:S :V2ÿÿ_ÿÕ�žÒóãdZÝÍø€Ñ*½¤ ‰ŠZÁ)¡)ƒá ÿÿ°öXëF 5ýê¸ø�RöFE˜�/ xxS& ÿµ±¹¾Ö.àúî£<émn"®µV`– VY•UAa afÃøøM-|C1v9-l)5F ¹õ·ó›ú"äZc‹ŸÏñx?H+ó®oZIzénäžÕ[1@ÿ•V¿ìqœêÓY4úÁfLÖë 9ðîj 9@�4b2E¡aaaq#À}ñ þ?Þý # 0êæâ‹UÖ›9î‹[¥Yâ.¦ÓTÎü3COÂ1¯½bPðL¨mð,E5|97r-5dAV "Ûóùó½üB oDËëùË%s<€H^açvÁ•`"b`Éø’b4444v €WB[^ �€ #¾óÈ` $#``d�€?(W///?_?'/X'/X'/X'/ˆGGG`@0000ð(0ÿ ÿü0Ã02, ®ñ«Üÿr„€ÈÀ¿~Ð           &("     " &(   :D                 % #%    ]                      E            E                 =                  "$  " *,&  9      T12_rockT12_rockÀAšéÂÛÃðA WÑÂÉÃl%lÀAÉCšéÂðAÛC WÑÂ% 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀXâË”„…sšØlssêà<áás¡õï°°°ÿÀ¦à°B®$AeCaM]UW YSÿÀ&aÃÿÿ‘’Ó+t"U�ÿÿðP ©’ÕP§ÿÀ"IqƒƒÃÿÿ12i¿û]¤ÿÏ]@á \2‰ŠÜÿÀM\�$€Ãÿÿ«¬ï#�ÔDeŒ!K.`@² €Á9\¹MNqûÀU;<1ƒ±ƒ€€?ð?`_ @_ @_ð? @_ @_ ð@_ÿð€€€€€€€€€€€€€€€€€€€€À€€€GÃ21::33:33þÿJ#!  Àÿ?\%  : : : ÌÌÌ:Ì :URä:þ³I J;mªÿÿÀ7! ”+Þaiÿ1eÙw½¾Š6Í~möÞ,ºß�ÏðY¡‡.ü4ÀÿÀ3e]Ø}L<ÿÀüV��€×iqÜ?•¦ÝÞ/0U¿ÿ?¤+;9ÿÿÀf%&Q:*]¿O"8#$]†Q*=`#"GÏð4I ÀïÀ- ÿÀ¬ (']uPú 4‰Ði·9æ¦�ýÿÀ\‰è·ÆNÇKÿÀÍý–]Ô12PfY— 9qxöq“Ïó|¨ûÖ�€€ÿ*)+¬+Àÿÿ,ÀM¸�ì@š™šQtÛœôµ¡š™šcÙ·?¤·GBAàßü+,*V € YiP46 DB¸z% Ô 4!”@=>=H! Ãð,+>=ÌÌ:UpSÃónmœ4Ï8ð”ËÃómn;¡Þôð!Ñv9;íâ Í!Dùªü[|UÒÙ}Lš LèÒ™ÃÃÃÿšùúÉ�ÅÿðÜïÀ‡ÙW?_žÃðTS¶Ðz÷ÞUPQÃð ƒãð³ÿÿ$%(E="ÿÿ7À!+ ÃÃÃÿ'(# (ÿðüI5.R( $OÃð,!Ež‰ž 9��ÿúÿ@+@.( .068&  &(.0  A       EC>EDF@NP>0  F@NP6(  >8FH2$  EC2E8:4BD2$  :4BD2$  :4BD2$  !2!824:<*$ *,24" "$*, %   "$"$   &24*"(*,&$  2(:<*  M2 8 :4BD>0  F@NP2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, %-+-$& .0&  .(68.   60>@6(  -+2-8:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, %979$& .0&  .(68.   60>@6(  53258:4BD2$ 64 >@.$  20 :<*   5 3.54   5 3"5(  "024., 53.5460>@6(  >8FH6(  >8FH2$  2824:<*$ *,24" "$*, %979$& .0&  .(68.   60>@6(  -+2-8 :4BD2$24:<*$ *,24" (    1/1535   "$  :@:<BD2, 24:<&  &(.0  T13_packed T13_packedXÁ…ýÂíÃ@A…káÂÛà    ¯ XÁÛC…ýÂ@AíC…káÂ� ¯ˆ  ý?3ó3?YY<Y<YYYï<Y<Y;<YYYÑ<;Y<33ÿ3Y;ï<�µ¼sþ Ž—ûü()B‡–S-ÛÀJpÂÎuU3?ð?( :I4?ÏðIRIRF ;8;8;8*üÿ­NEL??ó5"&69óó·ó!^u&À¼? #4M0)\91l6J". o$>}>(ÿÝ5FHºšá¡‘cdcÔVÖ€H6ýÂÄ×Mcdcv(‹ÞïLižF[Š#$]‡€j©ƒ^Þ5C??3ó4Õ-gòÖ®‚€?.GµfëfÜTØ8™5Ìü3Ók¢„ò`-‘Â-.-.-.-“Â-9…•ÏûÿÂ>_œ»þÐ’OÿÿÀÀ¬»¼»¼»¼»`O¬»(38}XZ<¶.�UÚ7v ?Ïñd  ? üÿ  È^ ÿ¿O^ +È3ó && ÏÿÂc$="2ÿÿÀ€U"!"!"!"2ÿÿU" UU?ð?á#§Üи@÷?ÏðÀ½ÀÁŒ‰²³¿ëõ*)$# üÿ&#¤¥),¢£??óÀ¥åg±-2ñ�ƒãFAìí°À`¯? %¡ÔVÞ–9¶{ûü()ü|M:@ÎùUU?ð?* L _B?Ïð_`_`üÿ_`a`??ðM06`ó8À?%-Ba8)d9/j}6HuU?p?=.=0?Ïð=>12=>%&È"_Y/ÏÃkê›MÑ—•üÿKL]^!"?<ó%.34è*îÑóóóÓº¦Òˆ©_õ=@/Àü0£Sø?Y`ððaaÄüüü‡ÝÐz È»pÂÎyU02 :A 4^SNSNSN,Øöƒ:óNSóóó�05 t�€¼1 =æ';ä>(ý73ó3?/0///?_Ð/?_Ð0_?_Ð0_?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿÿÐ0_?_Ð0_?_Ð/?_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ 0o_ ?__Ÿÿ€ßŸÿ€€30ÿ3ÿ `ÿ ``@0o@`ÿÿÿߟ `€ÌÌ??ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00UU! H3‚‚‚‚~!“�û!!ñ‚ññó‚‚‚~û@|Lÿ‚‚�‚�ÿ € m,ïþ€�€‚È``~�€UÕ ÿÿðÿ€€€0 ÿ€€ÿ€ÿ?À€000000?€ 33€€ÿ€€€ÿ€ÌÏÀÀÿ€ÿÿÀÀ€€€ÿó€€UU¹™ ™šš € 0  ;2 ™˜˜ †€æf€æ`¯ÁÌ8@XÁ€ÚÀ¿Ð     *," *$24  6@BD><   N@Z\J0 RLZ\F8  NHVXB4  .8:<64 68 BD2(24:<*,.0ZÝ        D B7?Àr�s€>8FH2$  :4BD2$  :4BD2$  !2468&&XRTZX^`NXZ\  ^44fh"468.468.468     ".0&   &(       (*,&$   6(BD6 >8FH2$  (*,&$  6(>@. 60>@.    T13_powder T13_powder„¸žÿÂíÃ�B¸žÒÂÛÃ^'^„ÂÛC¸žÿÂ�BíC¸žÒÂå'Ý uÿÿÿ3ÌÌÌBA†BBDBBð ÌÿØ“oomÞomÞomÞomnmoo±mooÿüÌÌppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBD©ë¾ë3ÌÌÌ,ø@``¶kf¶o``@ödz5£Zððððð,f¶kf¶o†Z5£Z5¯ÿÿ,Fkf¶kfõ£†   ,¶kf¶oZ5£†  ,ÿÿÿ€Fkf¶kfõ£Z5£† ,ßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© 3ÿ0©ª©ª©ª©«©©ª©ª©ª©ª©ª©ÿüª©ª©ª©«ãäü 0À©«©©«© 0À©«©ÿ©ãä«©© 0«©©« 0©©ÀÿÀ«ãä©«©Ã é«©©« 0©©?ð0ãä«©©«Ã0é©«©© «ßUUUTSTSTSTSTSTST7S 3ÿ0SSTSTSTSTSTÿüSTSTSTV9ÿ 0Ã?? 0ÀÿV9à 0Ã?? 0ÀÿðT7?à 0Ã? 0V?ü09?à 0Ã? Tÿÿÿÿ³¢�S³™û¥Êrypb~ûá=;=={=½Õõ[ëõ­™Ò¯!uewù±ŠwèTËçý�éÈáGFf:d¹k"Š¢€èÚÒ «^&}óQ ==É–¯#–­_–­%\­éŽ­RUss!ÊHæ,ƒ¥iIî¬â¦å¦ÒÏÙ!6'\éP"éŠéÆÞ%s! u! uYXs[7j\*Ú±á~¿j>7Ô-e-==;'SÞÇ‹éþ‹éÿ�é]s[’s•”u•”u•MÇç ±fëUž/b$Ã^CÔݱ±±üSÞþSÞþQÜÄÜ#s•’s•’s•’s•OQÅPpºò*í6á—tëë¾ë%)--//+›™ù‰ÿñ)"0S ©û;$* `'L#@%@'D)F'F%@%C3 ™Ÿ0SS ÑoÐOÿÿ4(59! ó0S1ðM   0$" -;# S13Ð+  , &$19ÿÿñù›óP!S1ðM°+ ,"  ;7!)%ÿÿÿÿ´è_PƒÓÙ­¹'O‚§¹¦‰'Z>Èý•ÍÞú‹¼U",€!“$I°)ïÐúê$CcÛ@³õU;ÁPa ÒŒ?Ñžc$\üJ�½®6TSX�Î ä05?Îw%  ¯¢ÿüEKóSŽ$œ§ž £òÎØLN52/ÎýÄ<àG’Ю)äÆâêD)FP¢#}—S;• `3+h&�×™�g Þø ê#9SCåîú•ä„�"†.çÍéçü0ýbòâ,õÁy_ÜBèØ¦‚صju,gmyT0©`£,ÇI\9ƒa/x‡ýõC]n]�V:2ئ‚ئ‚ئ²¤½D;¸-œˆÕ¡ß¹\$Ä­m«¦&O  9/ J4ÝÿqRÒÿó·¨ø�ðÁ€0H *{F �ˆø�ˆÿ¦!k¬ËF  �ˆÖ�ôD!"ðNio÷DÿŸùÿ�m†Økfÿ@D/B”ý/ÿ   ÿ÷ö¶kf¶oö"ñDDÿÿÿÿ¨·¼W»“‹Ê€ý ¯Œ”Œi s£€€2'º¶K‰$Õ°`Kèþ\Êàà©Æçv—7®Q[èIµí{)¤GûJ.φª�Ç"!—î2lâøM20|µŠ©8^?q”\EçŽZ…ß1M˜sûåÓ:~›‡¹`£hu~€r {¸ï8‰+®Jl �â’öx°´ÁVQ¦e?Ò‘?ÅâÞdþþ¢UY‰Ó  øÙ,"³ŠÔ#u¸ ošDêt¢’£½¯=ÌeÞwe¬Æž¯jöÚ¤yÍ4,Ç-ØþëHB2Ö $ ZO xI�_eÞweÞweÞ¿ÇóÆ&Iï…,ÈîÓí&õ¸ªZ¦™Q¥cCec2TaD!xKH´"va"2%t4 4s`""BT%BT!ºé-”+)BÑ „%Bv'b2’Kw 0 2bv%Bv!!2’ú9$@— D%BûæI$%2D1 fýyž{` tg?íÝ �…ž£nà'¸þÅúÒ“q’Æ™+¸òöª~ާUç¼ÿü?6òŸÓ÷Èx  BT'bv"úWý56á¬úZ „ñ“ÿáø>ë'b˜)‚ÿÿJZ+Vi÷�iÚå‘65œ‚Àcð.ò ˜)‚º/ÿÿÿ±«}QÐx¸Òð>ÒÕ&9ËÐ$Ì Vð +¢  -Òð>Òð>Òð€ÿÿüŽ×Ž®�ýÍË*¤e™bÿÏ)?>!"@0ôÿóÙ!Êú¯óñ€R]Œ* �ªúÏÊÿª!!k(ÿ  ¯ªú¯öF!"À& ¯Šø¯Šÿ@dO$ºø¯Šúÿ ¼(_Ýw]ÓÉší÷ípÕ_ÓÚHLY$ƒRH›!:?`F'2Õ ÜÿðODôYqü'*a¾ü5,ÿïÞñ>¹V$Z²—FêÀ-À[#€FÅŠ·ð7ú†oè7.áùd`îÉZòäc,Ú BÜrO!�‘G†ð€) ‘�«ë»#À: 4šê³Ü·ÿÿøaD²mŽh“j*¦†þH?7“žDð¸ªZ�+™eJØù鱡Èÿþaï(ÈvwB¾$/ÿ·ÞÁe|ÙU]WUÌÜïN[`]jü¯Éû}~"#"ÿðB "a�èÿ(SV]jyt((  †dã,Y`x .0†€ýðÿ.]^‡„ÿÿøa422†BH2,Þý/ÿ_hƒˆ0ÿþa22�$.ÿ-Zkuÿÿÿ3ÌÌÌ'(W///?_ð Ìÿ?'/X'/X'/X'/ˆGÿüÌÌ00`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///QUUU@0ÿ€ @ÿÿ€ÿÀÿ Àÿ0ÿ0ÿ ÿ ÿTUUóÿÀ€ ÿ0€€Ãÿ 0à 0Àÿà 0à 0?ðà 0à ü0à 0ÖVUU`VVVVVVÚ.f€2f VVVVVVVV`0‹ƒ€" Â ÀȰ€0€02,   BBØ“oomÞomÞomÞomopßppßppßppßDÿüBBDBBDBÿøf¶kf¶oZ5£Z5¯†ÿüü 0ãä©«©©«À 0À©©«©ÿ 07?à 0À?«�u—ëë±éŠçN"çP"é#uÏÎs•’s•’s•šÿüõÚ,1Þ¢/ÿk¹Ÿ1S0SÐM°/.ÿü"&$ÊÆ¼ç÷7£{ îåsXI Ä_c-x�7Øý&ئÀš¦�ÿü©R,ËVùO÷ÿ÷ÿ�kf¶k„¿ñìP߸o¿ÿqï�Þ™Cqrn+¾e¢;eÞëÞ3ÿüÒxUpõú±%ÒBT%BùºI‡<ô+`‚˜'bVL¹Ò“=Òðá ð×ÿüÚÝÛTÀa �jö¯Æÿ#ól:ýSmýaˆyO§=æ[^ÿcàM‘¨€\ .,ÿa0?_?'/X'/X'/X'/¸0000`ÿü@0000(@ÿ€ÿ 0à 0À ‹ƒ€ù_¾ÿ/î„€ÚÀ¿cÐ            &("  &$ .0*   ., 682(          "0                  535     "$  " *,&  E                   )')     "$  " *,&  1              )')     "$  " *,&  1              )')     "$  " *,&  1              )')     "$  " *,&  1         T13_rockT13_rockÀAìQÿÂíÃðA= èÂÛÃl%lÀAÛCìQÿÂðAíC= èÂü%ô 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ3¯¬®¬Õœ ¬¬<öt]<¬<ñ«s<:<�«s<<<`ÿÀ¤5<<5iS(eS"[USWSUÿÀ UÃÿÿÀ¿;BIP=ÿÃ2N±‡ˆÅÿÀ "Q&vbÃÿÿ :X]ÔDÿÃ]È-.cÿÀ "a Ãÿÿàߨq:SùÿÃ/Z<+™šÕÿÀ @]$2J?ð?`_ @_ @_ð? @_ @_ ð@_ÿð€€€€€€€€€€€€€€€€€€€€À€€€;&%8Ï?ó37 L33?<8>] 34E> 21 >E83333:>k.?0C ,;U2ÌÌÌÌ8!=,+8ÌÌü<8 >Y6I&7"Za>G8ÏÌÎÌ7('8ÌÌ< 8 ÿÏz###*Ta}Ý]×<ppßo0W*nÃB‚a¿ÝÀ "WœÐH''HG(”»k¿ÏÀÓÉbh8Àÿÿ7¥óŠòSAoCÕ~±4¨§.ÞõŽò‚À¿&?ÁÙŸJ×èê Ïÿóõö21^]o�±v<@Ôì¶–ÿ8]é,ÿðˆbkóç üüb4¥:Fä¬pâ„�ÑÜÅ<û …ž/ÿÀÿÀÍ`¿ø7CDCö±ü<�8ÏÀuF9 ÿÿA|1B7)P5+œ8Y8:qR.wVA+#/J#*-<'z<+43&/ÉùQ->;'d+-Z/x4ÿð)(Y.Küü ;d7)b'+T/l=b#$K8"ÿÀd€U0Cü<;B12!"SZ5b%}ÝÝßüoUàoL�¢¼ß$oQBbWÏÍIÜs ’‘F�ÕþõÏð?hžz€* Àÿÿb |‡R'ôЗ3º°\ h ŒŸü½Çðÿ+¬+,*_aûüúø,;;µäæòÕªÏÿÀ[™D!<ˆÃXK ÒSNdsÿðVáeP–·+,*V«‡jÊøàWE⛊(Ÿèy‡2ŽKÆ×^˱pB€u*Mgýü<ªÓ*™šóôVÝÁ7HZc»ô‚]ÝY– $0, ÏüÏ . .Ïà6'€ÿÿ 8&" &,4)6)"  . Æé€1Pa%¥«¿à <Ü2 "z3g`1ÿH<@B:P4]Ý]W‘Kõ^‰±® SbÖ/|‹âßüÏŠý¢\³œº¹ƒ„ÿÿÈë”o»Œ"åÝ Há'ZÈËÁÂ1FÈ<þô¾3´ˆ³Úí êóØùÀ,÷2ƸýFœ`û=³Åc{5Îÿð[2"Á *ôüÇô)íIÇ®�+Ü]SNSY`0]ïÀÿÀ,?&WXW¤Kü<öã~}6%4-(1"ð4x4iKÄ“ÿ<)<ÿð/*m:apèHOÿÿ6"U€'$_L&ÿÀk@W\<Ï. K€+Ýÿÿÿ3ÿüÌ/0/0/0/0_/?_Ð/?_Ð/?_Ð/?__<ÌÏÿŸ00(?/X?/X?(Ï0/0/0/0_/?_Ð/?p/?p/?×'@'@'@Ï0/0/0/0_/?p/0/0/ÿ0Ï0/0/0/0_/0/?p/?p/?¿'('@'@Ï0/0/0/0_/?_Ð/?_Ð/?_Ð/?_w'@o0/X?/X?/XÏ0/0/0/0_/?_Ð/?_Ð/?_Ð/?__?/XŸ0UUUUHH@0ýÿaÀýÿÀÿÀÿa‡ý ÿHHHLý ÿHHH@ ýUUUU ÌÃÿ€€ü €óÿü ÿ€€€ ó3€33 0à 33333 ÌÌÌÌÌÌÌÌ0Ã0à ÌÌÌÌ   ÌÌÌÌ  üUUUU€Žfh²fh9 " # Â# " #ÈȈȃ  €ˆ€Œ  €ˆ€Œ,A†BBÇA†BBÇA†BBDBÿðABABAB,A,A,ÿðÀ0«©ÌÀ©«©À0 ?ÌÀðü? ƒÆÙjiÛab’ÌÀÛÙÛðü? >C21 8ÌÀüÿ?Ø8õÊ×û½Œ2üý?$Q 6O:?üÿ?rÈaßzŸ^BzR@ç¼ü<0®Û.À`üÿ?UãòŸV\ƒ|üÿ?&eH"mL§\/`(o/`(o/`(ÿðÀ0 ÌÀ €€©á ÿXÁ€ìÀ¿÷Ð$&("    2$>@6 >8FH>0  F@NPF8  .8:<68:<*0       *46820 24 >@.$.068&  &(.0" %IGI$& .0& *( 24*   ., 68.$  Y     %#"b±#% +- ! ')  #% $    0.W¬r�#! +-# #% +-# #% +-# cikm   0lƒJlnp &(  &(  &( ^lfh=%i†Gikm! ')  #! +-#  '% /1'  guoq      D +S¤*,24*$ *,24  &( r¡   (&W¤r�s€& .0&  .(68.   60>@6(  )      6nÉ79 ?A+% +- 35# #% +- $    86oÌ& .0&  .(68.   60>@6(  2468&(*, 9       BHBDJL2, 24:<& &(.0  T14_packed T14_packedÁn ÃÿÄA{”øÂíà   òzòÁíCn ÄAÿC{”øÂzý ÿÿÿÿ<;<w<Y<YYYYYY><YYYYYYYYY><<<YYYYYYYYY;;; <<YYYYYYYYÿÿÿÿ<;<w<Y<YYYYYY><YYYYYYYYY><<<YYYYYYYYY;;; <<YYYYYYYYUUUU ÿÀ0©ª©ª©«© ÿÿ©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©üÌÌ«©©«©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ ©«©©Ì0à «©©«©©000«©©000«©©000«©©Ã 0«©©«ÌÀ ©«©©« ©©« ©©«UUUU ÿÀ0 ÿÿSÿSÿ?üÌÌÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÌ?Ì0à 0000?0000?0000?0à 0?ÌÌ ? ? ?UÕ__3ÀüÿPO�àO�@PO Ïðß�O ßr3???O!rO!rO!rOOóÿüOnPOPOPO Pßüüü�Pß�Pß�PßrO!rO!rO!rOOOPOPOPOOñOO O ØQ¢ŒO ¨Pß4PßGPÂ5Pß0000X[ÊÅ3óóóXrO}ÎOLÐOºÎOSOO OO•OO%OOÁO 0PÜOÐQÆP‘Pá‘PÏÌ Â‘Pá7Ü€ üüÜ7ÐO\tO\UÕ__3Àüÿ65X!5X�65lÏð"W5l"3???5H5H5H57óÿü5878787n6"üüüW6"W6"W6"5H5H5H5756565655^7565lC5lU5lf6"W6"g6$w6"000. 3óóó.5H5:5*5 55l55^57N555lU675Ê6$y6$w6ÏÌ "w6$^ üü^5*5*UUÝ]?üÿƒ,™næÂVknWVmøüVmV?¸¯Ëðüüü&ž¥ž¥ž¥ž€?mV¿¿¿mVmVmV?¥ž???¥ž¥ž¥ž?ÿü8rq#*)ZMk0PK×Ô,ò膎À÷9cž«LN¡;®0³œðÏ<ðk„Mª‹oë �⦎%ò¦�ÿðâÆj!òÿÿ™P{Æo€µ¦™×ÝÝU V<s D< üü8< 8<?0 F &<&<&<À?ÿ 8< 8< 8< 8<?&<&<&<&<0çœÿ 8 :u4g0ðÏ,0 Åÿÿ .*c .*c ÿð.*c .*ÿÿ0a2aÝ]?ÿül68=äãCRQ°›2,=6æ!ÂÖ-ª¾ð000Øm¼_m]{iM±ž!„ÆêÆFðÏ<ð´ø˜®ç7â+n,A†ÄñW¬ÊâW†ÿðÄñ�¤âÿÿÐx¢ŒHÔXК™ô?CÀ&nNÏO7ð000[,7_[:0ðÏ< 7"þôþô##ÿð#ù÷ù÷$$UU?üÿƒ,™næÂVknWVmøüVmV€?mV¿¿¿mVmVmVïÏÏmZƒÍ¯Ë¸÷=ÀÉÏÏ-{ª‹¾1avÀ ûûß-ñù?Çáûð-ñî'Çóó]t_~]  V:q D:} üü8:} 8:À?} 8:} 8:} 8:} 8:8 8:} 8:6<6À<0}ÿÿ6<} 6<} ÿð6<} 6$>$@&>À0!!! ÿÿ&>&>&÷ÿÿÿŸ `€€ `€_`ÿÿÿ30ÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000ÿ_`_`_`¿Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0(x`@?@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(W0(W0(W0(Ø@Ÿ`_`_`¿Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@UUUULÇÀ‚‚| ‚‚~��€ ��€Àþ‚ÇÇÇà‚‚‚~``` ```2d’þAñññ‚‚‚ø‚~9þ||‚‚|~‚‚~UUUU ÿÀ0€€ ÿÿ€€€ÿ€€ÿ€üÌÌÀÀÀÀÀÀÀÀÀÀÀÀÌÌ0à 0000000000000à 0ÌÌ   UUUUf€™š™šˆˆÀ€€À€€À€€È €0 0 0 0€ €Œ  ÿY;;\Y<Y<Y<YYYYYY˜;<;<;<YYYYÿÿðYYÿY;;\Y<Y<Y<YYYYYY˜;<;<;<YYYYÿÿðYYUU 0Ì©©«©À0 ©«©©ÀÀ«©ÀÀÀ©«©Àð0©«©©«©000«©©000«©©00«©UU 0Ì?À0 ÀÀÀ?ÀÀÀÀ?ÀÏð0?0000?0000?000?_WÐO\tO+OOßQO�OÎOÁPRá‘Q¢Â“O ß“üÀÀÀO¢Â$€ÜÀÏÏ€$ÐOÐQ^rO^ÎO)O΀ÜÁPߟO�??00COëCO�$€003ó€Ü$rO^ÎãóðOÎO^rO+_W5*5(57N55L5766$w7n"w5l$yüÀÀÀ5l$^ÀÏÏÏ^5*7,5*5(56"A5Z??00C5ZA5X^003ó^7,óóð5*5*5(_W~‰¦o€µ  ©Ž5ý¦ †⦠˜%ò¦?�â?ÿÿŪ‰¦™P{Æo€µ¦™~‰?�j!òË—bÿÿÀýÉ…nâóEzÀÿo€Å¶ÅªÿÿÀœ™P{Æao ]Uÿð0a2Å .*c .*c .*c? .*?ÿÿ0a0a2ÿ?ÿa0Å .*W :ÿÿÀ*W :*[.6ÿ2a0ÿÿÀa0a0"ßW>šXŒHÔBA "A¬öó­pÄñWÂÊâW?ÀÀ†ÄñVUV¾šXÐx¢ŒHÔXÐ>š!„++X�¤âTÁGÿÿð0ó'oËñôö²óXV00?ÿUWXŒHô޾ÿÿÀ„nÐx¢AkþO™–ÿð $ OïþðOï###?ù÷ù÷ù$$÷ùoï?$ÿÿÀÿ $ŸŸ_°$$UUóðx_~�ãøþùi�á-ñù?Ç?á-ñ???]x]t_~?/ÿ]xî'Ç÷úœÿÿÀ�ßâðñ|y()Ï_~]xÏÏÀ]t[~!} 6<} 6<} 6<}? 6<?ÿ} 6&>Ä� H?ÿÿ&>&>&>ÿ4™&>™™€ÿ&>&>ÿÿÀ&>@&ÿ00Ÿ@0000(W0(W0/0 _Ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/pŸÿ€€ `€€ `€€ `€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@0ÿÿð0Ÿ@00Ÿ@000UUÁð|þ‚‚‚à``‚~` ```1ñþ‚ññø‚‚‚~UU 0ÌÀ0 ÀÀÀÀÀÀÀÀÏð000000000000UU € À€€À€€È   0  0  0--GÓÀ@�À€ìÀ¿ùÐ         :DFHB@   RD^`N4 VP^`F8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .82468&(*,  M  "*,&  .(68.   60>@6(  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  %     9 7.9460>@*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2864 >@.$  20 :<*   ., 68&  1   535 "*,"  *$24.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*  *,24" )979    53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%824:<*,.0 "$I     532nÝ  ;5CE3%  ;5CE3%  ;5CE3%  4 23oÜ:4BD2$  :4BD2$  :4BD2$  2T01_rockT01_rock@A®'Á(ÂÀA= ÷?ÀÀZ Z@AÀ@®'ÁÀA(B= ÷?» ³ 0À<ª©ª©ªÀ=€©ª«¬?ð?SÿÿT¬ÿT¬ÿð?ÀT¬ÿ«Sþý㩪ª¬ârª¬ªärªª¬ârª¬ª8᫪¬ª7TzxxÎ7T)lY902‡³ÜpÚ©5å{åÙ›{{ã×6õµ•“• BY(WMQiKµDE= ""\]ߎBh M*“ÿÿðˆNè "M^200 =<ìñ�ÃÃŽ l”ÿÿðgU§ S9Ã=° 0vw<�’t W;\Yÿÿð>\<« >]4$$p`0$@?ð?? Ÿ@`Ÿ@`Ÿð?À@`ŸÀ`_ßß//_¿0//À ˆ °0  «*rÞå àwÅ]`AÁ€¿_Ð  "( "( "(  T14_powder T14_powder„ÂìÑ ÃÿÃ�B{”çÂíÃp-p„ÂíCìÑ Ã�BÿC{”ç°-¨ uÿÿÿ3ÌÌÌBA†BBDBBð ÌÿØ“oomÞomÞomÞomopßppßppÿÌÌÌßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomnmoo±moo±moo±mooDBBDBBDBDA†Bië®ë3ÌÌÌ,ø@``¶kf¶o`ZZ5€ÿÌÌÌ  ,f¶kf¶oZ†5£Z5¯ÿÿÿ,kf¶kfõ£Z†  ÿÿÿøf¶,kf¶oZ5£Z† ,ÿÿ€Fkf¶kfödödödz,ßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© 3? ©ª©ª©«©©ª©ª©ª©ª©ª©ª©ÿÀÿª©ª©«ãä©«Àà ©©«©Ã ©«©0?ð©ãä«©©0Ã0«©©«Ã ©©«ü ãä©«©©0À 0«©©«À©©ÿ ãä«©©«©0ð00©ª©«©0À©«ßUUUTSTSTSTSTSTST7S 3? SSTSTSTSTSTSTÿÀÿSTSTV9ðà 0??à 0?üV9?0à 0?à Tÿ 7?0à 0?ÀVÿà 9?0ð00U0ÀTÿÿÿÿn;¬q¦o2:lælm±3¯ÐÏq««sèqª9©9:pãªãª©®r9qo9ã«oâ«oâ©qBÞ¡çÛçxÛ4//uk¤m06¦uàªõ¾s««5ª©qâ©qâ©«ã©ßq©å©qâ©qâ©qß5vm¥®>0ߢuç«nå8s«qtã©ã«©ã«©âqqß©qãã7â㪫7om®è<5mj>0=6n6p:ä99stqqªqqªqqr9ooã7âã¨ã:ªä8ßæ®¥æ®¥2<Ü=à­6;oâq99t9op9qr9o87°9ãã7;©ásã©©ã©v:vm§®vÞß±nëë®ë+ - /355/‚›™ùi©S"0S »°( T)L+H/H/N-R)N%B#K"E%'!  ŸQS ±KÐOÿÿÿ" &$ M*W%  0qðM  "&" I,ÿÿÿ¥™ŸqY%QÐM $&"  =(O'%ÿö9¹óq!ù"9"9"(  $$"$ 5$G#ÿÿÿÿ {?é_Ë3pš.ÑΑÁ¢ÿ==çž,ˆNü¶¹•¯Ò·ñÛô.n¨h,˜Ö¤9«ë6mðG¯ Í÷£ÿä…û[å(O¡r«î�Ôˆ}d¢Jªó��ÃN[|¢í,,ä�O{mv2nÐÔ�绺ÂÊËÿ‰±©Å’+ñ´>½¢�Ùžî;V³w݆Z)„KvùŸäÊõ=úóB'82;÷øU2Uµ`,‹` S`oYÊÄwÆêPdçM4ÖNĆ«‚' Z‰…W¹{Ò1CXo¡—üÉ1üÔÏÒÕÓBBÄç]±ÛÆŒîiámÐB!pÛè*·åmªªªª"`r�¥åÔòpýõýWroökH´�ð€@0pAaò2’ƒR×ý·û{kf´‹Hý!/#Q1™Xµù_•Ö”iF¶o“1 ð\S0%)•ù_•û=kf¶kfù Zw P»>“é>•UõsõsóysQ ñDXÿÿÿÿàäpüÆFî�OTp·ÙdÖb¾qî?Å=Ye§òIgÔ¿i±³¼Wô“EŠ�Ó�ÉÆ¢¦­Õ¿zšÝžæûC8a—å½ÚêhnQSiî Ìð˜EOÖ…ZgPZ©w­“EŠ�Ó��¬ðHƺ\£¬üÃ�P”‡¬üZúNXs•<�tZÍÔ?éÏ@Æ2·ë7‚ËÍ¿­€¡ÛÓlè:ä¬Rß�’ªŠxìå[ž¿H\­4z­�­Î"ï_7¼aY¤}“Ý�QBò+}ÄÝÆH• f�Ð`yA¶Á|Ñ”>ÑÔö×h¤¼ÖðT”n [@ 2ë-1^@.çËŒœçK ÿVfY•#$!cATÂiÈ뮄¼ºKh‘N42eÀ1 0*ë®™2!2#1$7”’ºI†K"2#"Òn fÏaºë­C³ ò„±†•ÕÅ@1t‘ùu]×|•Ø#@ T%¤`ÎBfåEQš‰˜‡|àRyóŽÑ?J'8µRÿöè‘cŽ· 뮿o„EQš‰˜‡sÛY&(×*øÜ„™sa/ÿó�Ù²í>^¾W$òyÔOMŽFÔ»`a$’KÿÿHï=*·d3b/¾cUà˽œ^ Ì@!†?ÿÿ¦›%TQ&'¦ã�åOìïâä} ‰B­[ eŠ¢²¯ø�ˆ'ø�ò�`0pýÀ.? ˆø�ˆÿ ð0¸ømhØ�ÓP ð0 mhÖ�ˆû9 0•ó•óµó�±‘"ð0_ßu^&&✥5³/ír1ö� •`ðeÍmÆã�×¥8ÿñ¼S•Fqép)*Ü™h!|^‡sÅ!£€�Ç¥°ª›ÚŠCÇó¢³µæ/úüõž�Æy¤OvŸÑeëuÿÿüII”’XóQ:õ<Øo‘Þ 1c‘)5…% Q¦Ël¾š¨ÿÿ¾^ä¾ؽ¤T6 ýÿ�IrOGˆøSdDv”y‘óyô»ÿÀ5ô4ÉDÜÿoë"¹V™¦Y/ð`ÿ´±ç_dqtñüÿcl*(ÿñ˜ ™Hä<ñ6 W\+ùÿ÷ÿu @/ÿS5ñ½>}zST×ýÿטl>_ð%+×û]T·ûq !ƒc:w/ðý_ÕýQLÿÀ ÿ6knuÿÿÿ3ÌÌÌ'(W///?_ð Ìÿ?'/X'/X'/X'/ 00ÿÌÌÌ00`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///?_?'/X'/X'/X'/ˆGGG`@0000(?(W/QUUU@0ÿÀÿ0ÿ0ÿ ÿ ÿ@ÿ€ÿÀÿ ÀÿTUUUóÿÀ€ ? €0?ðà 0à ü0à 0Ãÿ 0à 0Àÿà 00000–VUU`VVVVVVÚ.f€2VVVVVVVV`0 °€0€02,    ‹ƒ€"Â à  À?BDBBØ“oomÞomÞomÞomnmoo±moo±moo±mooDBBDBBDB:ÿÿøf¶kf¶ofOfOfzÿÀÃãä©«©©« < ©¬«©« ©ÿðÃ7? < S ?ç;p%999<777987è9©©«9©qã9qqä9q7momv>ß:ÿÿE™Ÿq/)q’#�C�( "$(&"?~NÌê Ì.CüÀðPÀðøðNG²�iÂFß¿žý ÕΗ}Qæ/ˆLív­R*±Eo•ù_•ûPW_W_Y?W]'1 ?«ß±O$›í¦Í(¦Í†HÍPˆ×LìsNŪU˜ë¾‹T…ò!e�ƒMlJJ`"@4†%uuuP�@5‘ðˆa†ÿÿ»‡»SÚ¹4ùÂqª*§ÝöŽNuñ´½(Y_Y[_;)3@ã¨OµB°­ÏŽBÏŽÿñ��‘ŽÔ¸tK��„€)±goøÿ�ÿá�� ��„€?//?_?'/X'/X'/X'/ˆGGG`@0000(0ÿ?ðà  Ȱ€8ÿÿ‹@ÿI„€ìÀ¿uÐ            &("  &$ .0*   ., 682(          ,                  535     "$  " *,&  =                   )')     "$  " *,&  1              )')     "$  " *,&  1              )')     "$  " *,&  1             )')     "$  " *,&  =      T14_rockT14_rockÀA{” ÃÿÃðA®GÿÂíÃl%lÀAíC{” ÃðAÿC®GÿÂó%ë 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ<ð“ywï�¾wwñ*EÒyïï|°wïñuuyïïwÿÀœïñïU_Ia =c =c ;cÿÀ 9K0ì¥Qz5"UÅf 3�¯H3ƒë–73…¿C$0 Ê…ac¢]cÅL7yPNJ1yN@{N!! a@�à@aüê§De6n%³mJ&'µ³ºI%·i�ç$0`€€?ð?`_ @_ @_ð? @_ @_ ð@_ÿð€€€€€€€€€€€€€€€€€€€€À€€€O,?- (T;#>Q.?PÌóL 0Ì : ó: 3!"!ð6 6uÕ×w?ÿÀ7.Km:€À—˜ú¤ñK޶ޮÃCŠb .ÿðÃÂ$ƒ‚Åa)*ÃÿÿZ-87LUùÚð €€Ïÿ�Òžðåv…,Z|dòÞ¯+vuÞÝÞÝÞÝÞg£üɇVÃòÞºÿð0´HÄ|x€<ÿ«¬h$‹tÀ¬l³ïK‚uUÈÇüðu9¤AýoˆÜïsÿ>ø+âò™³ÿÀÀÀ=Qt{|=ñ´|ŒÜ$66bÍ»T'�Ï×ॕ–f�€@‡ABœ•>wb � ³Òî_oVVV]2ø­õ? {€B¸9Ä�bÏ1B5*5ôÀ0`pDpDBtQ•U`_wÞ³”1iç½µN@·´ÿðÀÊ« Õ6¤ ÿÀÙ*ü¹ºKÃÿ˜—ÿ±MxßÀ‡kn ÿ�QRe\ÛÎÏÀ4?8Tÿxÿð%(»î1|\_ÃòïÆÅtð‰???NÁt9 .?j)ÞÝ4PE%_-D7N5L=bÿ1)\Ï, À ðü  <Ã;<ð6 <uUÕ?ÿmºû°Lù®‡ˆ{ï“2ƒeTDÏðk¼U4^ÿðÃþ­:ªñÍ'(IÀJL£ÀXÿ”“âïQ7ÿÀŠÛ ?R_BU2:+ÿü "- + 8 üó8 3Ãð³!N#@1ÿð00&%6580?À8}puÿÿ"ìKÒe€ˆ€cÄH†%'Pó˜ÁÖ¡4PŸrOýì²æÕ-{èðüýþµ½‹OÒɰp�È^ÛyÜ$<éQÿüçèã>ÒWXÀÛê ÿ('àZÆ:9¸· –Aã*‹b2ÿÀð Q~E7CDðÀCD²±ypußÿ;*5 /üU÷R¸$8!/r3JUðü B7 I$9$S66[42]´7 ÿüV9NUÀD=ÿ!"K<=>;<#?À'7T?*ÿÀ`8aF0u`€}uuÿÿpëý*š‹õŠhÝŒ:Ú,{RG^·Êã\³b«ÆÛQ‰8¢Ëë}8ÀðüÕÖ—ŒŒÀÀ€ÀÀ?€UU¬@—äU_F­·Ðš¶ÜQš&ÿø7M¢‰@,‚�À{¸;ÿóô~�<»+ÜÎ)*ôʵ®/}Fûðð§Ú¢ýoð3À ‹ýKµ}ueÏÿO *O(    "4o ,Bc&%p@ðü G> @€@€7: 32i&> ÿüo&@e&#n ÀEBwPgÿðÿïS4,1$ÿà*6!}puÿœ›}Ý�Îñ“§"& <;ð3�Y§÷|÷ÊÉ“ŒsvðüqjQ6*^ÛÞW|}¡¢oh?ðmfkl€MLÿ±²@!}~Â*ø�’$Çÿð²ÚÙWXðÀWXLK0ÿ  oÿ±÷’Ô#!|<.9:Q$1 ,O&Js>@uvÿ+,_NSÏ?ÀTOP+Q tYpuÿÿ¹”Ùó˸?õí:‡T‡0?ÏÿÀß#ç¶ê�Ë�NðübaÂ$åÂÇ$…8"òç78)xž<ØÿüMoj¢áFN ÀH ;ÿþý_N¤£`_c©j¤¤“-ÿÀ%T6MUPUßøA.ÏÿÀ(+Y4[$%nðü G:K†½ÿn³:ÿüm&:z³%n ÀG@I�üÿo®;V;2ÿÀ6gR&wýÿÿÿÀóüo0(‡0/0//00_Ÿ_`p/0o_Ð/?p/ÿŸÿ€ßŸÿ€€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(‡0_00_00_00_ÿÿ `ÿ `_``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(‡0_00_00_00_/o@00_00//`//`00(o0(o0(ÿðo0(UQÀÿ†ñüà‚‚�‚~``` ```Ààÿü ÿàþUUUÀÿÏ3À?ÀÀÀÀÀÀ¿ÀÃÀÀÃÀÿÀÀÀÀ003À?ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÿÀÀÀ?ÀÀÀà 0ÀÀÀÀÀ?Ã< ÀÀÀ?ÀÀ À?ÀÀ ü0À?ÀÀÀÀÀÃÀÃÀÀ¿À?ÀÀ 000À?ÀÀ0?ÀÀ?ÀÀÀUUU`€ƒ€@€@€@€B@€@ €« â ÿXÁ€þÀ¿ëÐ   ",.0*(   :,FH>$ F@NP>0  F@NPB4  .8:<6468>@.( .068&  &(.0  "    2$>@:  B<JLB4  JDRTJ<  .8:<6468>@.( .068&(*, )      EC&E,.(68*  2,:<.   60>@2$  !2!864 >@.$  20 :<*   2,>@.   &24" %  &46820 :4BD2$  MK2M8:4BD6(  >8FH2$  :4BD2$  2468&(*, I     5 3*502,:<.   60>@.   :0>@218/&1,.(68&  .(68&  .(68 %#6%<>8FH6(  >8FH6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, A  q  2, 682(64 >@2( 2 8 :4BD&  535$& .0  & .0&  .(682$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, 9      m5     535 "*,  & .0&  .(682$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, =       15         5 3&bÅ  /)79+  3-;=/!  71?A3%   39'-! T15_packed T15_packedpÁ�ÂÀÄ@AÃõÃÿà   ÞÕÞpÁÿC�ÂÃ@A€DÃõÃð Õè  ÿÿÿrrpoqâoqâoprrrrªrrrªrrrªrrrrprr¬práprápräopoârrrªrrrrpopárqápoâr7rqqrqäqäpráârqqrqärrqrrãrrptrqârr¬qârr¬qârr¬qârrrrrp¬rrp¬rrp¬rrprrqrrãrrráqârr¬qârr¬prrãoârrrrp¬rrp¬rrp¬rrprrrrªrrrªrrrªrrrrÿÀpopopÿÿÿ::UUUS77Å8UÈ9:�889::9ã8U8U8U8UUU7Æ8U8U9:UUUUUUÿÀUUUÿ 3©ª©ª©«©©ªÿÿ©ª©ª©ª©«©©ÿÿ ª©ª©ª©ª©«©0ÌÀÀ©«©ª©Ìð0ª©«©©« <0é«©©«©0À ©«©©À0«©© «©©0ÀÀ«©©«0 ©«© ©«© ©«©©3«©UUUÿ 3Sÿÿÿÿ S0ÌÀÀÌð0T <0Ã)0À ?À0 ?0ÀÀ?0 ? ? ?3WWUeÍËÌËeÍÎÍËÌËÌÿÿËÌËÌËÌËeÍËÿÿ<ÌËÌËÍefeÎfÌóÌÀÀÎfÌÎÍÎÍÎÍÌËgeÎÌeËÍee?üðÀgËeÌÎÍeffÿóÌÃhghÌÌhÍfÎefóðÿ3ÌeeÍÎeÍÎgÎÌ <ü eËfeÍfeÏ0ÀüeËÍeËefÌùÌü <2o P[,-,<ðßp#$·"&3üüüG ,G,G,�„¬¿JuJ0 yV2:ôWÿN¾ÿ›Uáòµ;·AVÿüUVUVUVUVUßóÿVUÒªTgšŒ=¾ÿüÀÀ5Ý¥/Ö:UVUt”§Ö®ã^¥è6ÄçtÀ.P¬ |¿…sßLK4Æ cªÕ—1•ZöÁÅqcÙƒùŒÕ«W ¶;ž„¬2xºŠ2<=³¶1hc.<`›1Ôÿ�ª§Œ ¤öС&AàLÔ¿oÿ¸¢'ðÌüÿ1212´ˆÍ.Æ×ì=ÕZ¤*Ñm”LqÿÀxK~çgbªU/> ¿Û÷€ O�w÷$ÿÀ óWinWduÿÿòç#,Qò�ýõûˆò=(@-¯gû ÿð¯##Àüü<#B+2<ðÏAl3üü¼(((! <# */ú Sýw?~‡ÅñÈ®ŠžØŠ›œ?ðóMà%[_`]Ï^MNï¿Ûò*Üר¿ÀJ�â�ÌW¹Ãüxd¬L7ÉrŽ(Ú|®cv¢û�¨7ÙúRqVÞ¯q8�Brºæ8A r<<ðó¶öklòñ‡Ò ?-¶oHÁÌQIQ|ðÌüÿrqrqªÍ$§‘©³´ »\J%ÞãïðÀiU><;'d;'d!"Ïð%xßóa?)ðßðÿ`øg$*=ïùü $#-TGTÒÎþ> ,ß{203üüüa@a(:a@�„¬¼QyU?3Ï<}ºKJIFEzy?ðÿú•Ø´˜ÜŒ2ÿÀòÜ’DÕïÿ+!½|Ža“ròÿÿOý ¸Å©¨¸¢  fq ÂÍyÆM yðü?ÇÊí”ZŽ�Àü<<à’Ž�‚<óÿMœ/0‚�0“Ž�ððüúÊ<�uø¶€¤B¿øy uÔ”1IâþÿÀ©‘Ö–QYU!†?óÿ0 H,&A&ÿÀA.Aÿoðx3! ïÏÀ8+=jUÂk H€ü<<#ChIJ<ðæmÚÍΧ¨m ðHYp1=vRÝ|P4íóþý÷ÿÿŸÿ€ÿÿ€30üüÿ `ÿ `ÿ `ÿ ``@00Ÿ@0o@0o@0O€ÿ `ÿ ``@?@?_`p/0o_Ï/00/0_0_/?po_`@?@Ÿ_Ÿ Ÿÿ_Ÿÿ€€/0_?_Ð0_?_Ð0_?_Ð0_?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿ `ÿ `Ð0_?_Ð0_?_Ð/?_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``ÿÀ@?@?@UUU3¾ÿ‚�€�€�‚~ ��€ †ÿà`��‚�ÿ& þd �‡À‚}� @|||‚‚‚|˜`Á‚~ý HH@|||~‚‚‚‚~™€UUUÿ 3€€ÀÀÿÿ€€€ÀÀÿÿ €€€À0ÌÀÀÀÀÀ¿ÀÌð0¿ÀÿÀÀÀ <0ÃÀÀ€ÀÀÀ0À ?ÀÀÀÀÀ0ÀÀÀ ?ÀÀÀ0ÀÀ?ÀÀÀÀ0 ÀÀÀ? ÀÀÀ? ÀÀÀ?À3ÀÀUUU š™š™š€À€€Žc™ÎC΄@�À€þÀ¿éÐ       (*,&$   6(BD6 >8FH:,  B<JLB4  .8:<64   F8RTB( FD NP>4  B@ JL:0  5Ee¢Segi_egi_egi!   o==P'=?A            1!9353 5;= ')       #%')#!  '% /1    3A 7ICEC EKM      üh{>&hjlbhjlbhjlF@NP:,  B<JL6(  >8FH2$  )2468&$&(.0  " *,  nÅsˆ    536F¹  ?9GI3%  ;5CE3%  ;5CE3%   3c¸:4BD2$  :4BD2$  :4BD2$  2468&$&(.0  &(  T15_powder T15_powder„Â{ÔÀÄ�B= üÂÿÂ4‚„ÂÿC{ÔÃ�B€D= ü‰4� õýÿÿ3ÌÌÌBA†BBDBBð ÌÿØ“oomÞomÞomÞomnmoo±moo±mnÝoànÝoDBBD33?ÿBBDBDA†BBDBBØ“oomÞomÞomÞomnÝoànÝoànÝoànÝoDBBDBBDBDA†BBDBBØ“oomÞomÞopomnÝoànÝoànÝoànÝoDBBDBBDBDA†BBDBBØ“oopopopomnÝoànÝoànÝoànÝoDBBDBBDBDA†BBDBBØ“oopopopomnÝoànÝoànÝoànÝoDBBDB©éº®3ÌÌÌ,ø@``¶kf¶o``@ödzö\I\O33?ÿ,ÿ€Fkf¶kfõĕĕĕ€ ,ÿøf¶keo\I\I\I\†,ÿ€FVVVõ†Ä•ĕĕÄÿ,eeeo\I†\I\I\Oÿÿ_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© 3ÿ0©ª©ª©ª©«00?ÿ©©ª©ª©ª©ªÿÿ𩪩ª©ª©ª©«?ð0Ããä©«©©«© ©«© ©ü 3ãä«©©«©©000«©©0«?ðÌÀãä©«©©«© ©«© ©ãäü30«©©«©©«©©_UUUTSTSTSTSTSTST7S 3ÿ0S00?ÿSTSTSTSÿÿðTSTSTSTSTV?ü0Ã9? ? Vÿ 39?0000?0T?üÌÌ7??  V9ÿ33??ÿÿÿÿgÀ¿ÒØÀ ¯ ¦+Á [”ñ,Q F5+~5+~5oRÏR©R R}hR5„5&!Ÿ}¥µCë›é. ú�fÓC1³t⇄™¯v@Õ~™¶™¶™¶SL5&5&N!5\NrÜšæÆ&· èý2DB Š#^,×îÑì϶QXhm”LUo–„�mÌ„�¥û„1bæ]Ç^M.ýxÏÏTÆQWS×Qµ2Mm¥ûòÌ¥ÅÕ”¥ÅÕ^¥�Ÿ ”,x•ÊGƒô×Ï„�É<QçmŠmŠmŠmˆÛ1µÛtnÛ„â5ìò¯]iàRƒëÛº®#   ™™ù‰©q$q ÉÇY$( B%:%D'H%J%L#J!B!93!!û™™ñqL¼¼½ &*($C-ÿý™Ÿp )?OOO$"&**$G-ùù™ùe0ð)&ð&ðDðDÿ &**$K1!#%™Ÿ oo�oÿÿ& "ÿÿÿÿ…€KvÀÖª Ä£{AñFh.n�¢z¬‰oDzºÍLQ²Zà=úÇÑÀ$§¨y&»�Z¥žqhAž 1>-#ÓÖ÷F_w Ǻ°pßýpï?0 ¡�ÛÍ“�Ð1�w§Ä(Þ”$¹[@j»U�ƒdáoåa‡}“™]ã}רñ ¼Î�M¤*ͦPÍÖcÒ&œÅ5LBÇ+LBÆ\g†‘çàW_‘.œU Sçª�G‹­ÑÂgB “Nç{ÓËPäkxW3K)©w°Dë»L9ícÒ÷Û#Yxççݺ!þ:9ÅÆnm*"^ŒãrÁ4OèØoãÀY|?²“8ªª®ª1££`´Ô$ò°0ù_•û0P²ØõuóM^ou'#dNƒÐ û?³û?³Tõöõöõö÷1U1BðB LŒϳû?¿#sS4O@LêñSoÿðö+%õöõö÷ö÷0SP$ð&*ÿNoxvV]o_�_�_¯�ASÿÿÿÿîÒB‰1ö]£¬™Ûj!5)/^$Gqd•ÝWóˆ8¿†Šð*Ðùµ ¬Øº�'�ªq|³¾½/~€ô2Y~.ãrd&À R*±'ËÛ–�/•Öý( P+„½<ÒòÎë^Žë ·L¢…apŠ—O‚›GÁ¡‚º(J›KHÓ5ùŠ©QxWƒùq Ä@ÜäÊM%3/‹Wr„�C„Ÿ;ˆd�ß<{¤ß¶Á†qè…t­nK¿tHaV¿HþŠìƒ–eŠŸ�®Ý9ÌSñd¾Gl~a!O`‚W–¿›{‘ %áI384£3:9 Ÿ¦¥ƒG¹û�»ÂáÍùØd<�’FS&Vjššd²R1g¥ÃàÀa�ÆÅÃ3YGWRŠ"‚#"2#"0@1`1BÑ w DZ"2 Eí##ÄD0¯UB,õï÷‚1B1BPBUP"€F”‡˜¿%8'GW"õyÞ× Ï ø<€c Fn,ÇZ=D´¹u¼Óá±�—Q×¼ãÿÿðF—?mŠJ \‰Žÿðô@4 F׺{VJ_±@ÒÙâžÌÿÿü×tAÐzgbTG»ÿ(@4!1,n8!¡¾™ö`´�þJ"ÿÿñÆÐD0.Ÿ@&õM  078^¨ÀçüÕ'Jr“›R[–`Ëÿü~cà 8ƒ-“³[™›ÿL{+…ô|éç~5³Uo®~€ªJû ¡hšPÒøõ·õo_�—)%°w04V÷öõøõöùQuQFð4o��_o“UO6 õø÷ø÷øùuQDð6ÿ �¯ŸÏ²C5_]×µõZ!¸ð„a¸ßZóã¿Úm>Ä@|K}áûØFGÿðG]\>*gK�t B?ÿ5<Û,�¾§Ì¢ K]lºúJQ iÀ```j@†oÿ‹1}íÎ�{OÛ ©ÒŽ>¨§h@y5cñ™��ã’¿ÿËŽhÇ`™3f�µ»ÎÚƒ¶üŸr¥®```toÿÿ­òa+|K`6®!ìþ,%d𙫬NM¤%a%a%a Z]×eòtó@²Ôder&ôòpýŸÿàB�$ B?ü*Sb yh ð``` @†oð&MRYf�|+"/ñ™��<’³Ã&—ˆ ih�0V)````n?ÿ(ihs€�ºš˜q!'™™™€õýÿÿ3ÌÌÌ'(W///?_ð Ìÿ?'/X'/X'/X'/ˆGG0/0`@0033?ÿ00(?(W///?_?'/X'/X'/X'/ 0/0/0/0`@0000(?(W///?_?'/X'/X'('p0/0/0/0`@0000(?(W///?_?'('('('p0/0/0/0`@0000(?(W///?_?'('('('p0/0/0/0`@000QQUU@0ÿ0ÿ ÿ ÿ@0ÿ0ÿ ÿ @ÿÿ€_UUU€€€€€€€ÀÀ€€À 3ÿ0À€€00?ÿÀÀ€€€ÿÿð€€€€€ÿü0Ã?ÀÀÀ?ÀÀÀ ?ÀÀÀ ÿÿ 3?ÀÀÀ?ÀÀÀ0000?ÀÀÀ0ÿüÌÌ?ÀÀÀ?ÀÀÀ? ÀÀÀ ÿ?ÿ33ÀÀÀ?ÀÀÀ?ÀÀÀ–VU@444444Zf€2f CCCCCCCD$� 0$„� UfffB€ ™™™€BDBDA†BBDBBØ“oopopopopomooAomooAomooAomooDBBDÿBBDBk,FVVVöfOfzdöfOfdÿÿÿÿ«ãä©«© Ìð ©«©¬«©À«©ÿT7ÌÌð ?SÀÝ=Ù< Té‰âçeAmŠmŠmR¥µAⵄb/Rµ¼ÐôRµÕÁ3À5S‘¿u?ÛÞ<3;æó&ÍÎ¦ÄØAQ;JŠ!ê¼2^c§ÿþUhio4¿]0÷õÿŸ=û*26Ók�.µ#I¤kyÞa)†ÿÿ¾ÿð€œz¾½y—KZ7À:YÿÿÓ*UXmri n÷‡e‹  + H`0(?(W///?_?'('('('@___`@00ÿ00(ÿÀÿ ÿÿ?ÀÀÀÌÌð ?ÀÀÀÿÀÀÀÀÀ@à€ÿÿüZÿ«„€þÀ¿‡Ð            &("  &$ .0*  ., 682(       2<                  535    "$ " *,& M                  )')    "$  &(" =           %#%     =                =                =  T15_rockT15_rockXÁšÀÄðA{” ÃÿÃo(oXÁÿCšÃðA€D{” ÃA(9 ?ð?vž�uë�uë�ð<üuë� W½ë�Àuë�?ð?FE.E.Eð<ü.EH?.EÀ.E㩪ª¬ârª¬ªärªª¬ârª¬ªª©ärªÿ?ª¬ârª¬ª7Tzxxjÿ?x ÃÕ'¶$¡Cg ‡º••€!&¤yÔrÿÿpr¡¬£pr &;i ;i 9e?kN)UÿÿQ,gÃ<3>=|`_ÀÔÃÿðÏÓqt‡^,Îghÿo""M<0ÏA8 €Ã<3*¥Ãÿð�¦ÊEzg=üûÿ " cpÀ Ã<3LK–rqä®ÃÿðÏ­Ç%S0pLÞTìëÿd:WB<0ÏWL ?ð?`_ @_ @_ð<ü @_Ï/ß@_À @_0Àÿÿ€€¿¿€ÿÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿?À?ÿ¿ÿ?¿¿@ÿ¿¿¿<„0„0uèrïìRîuíiÐA@Ä€¿tÐ  "( "( "(  .4 " T16_groomed T16_groomed„Á@!ÀÄœA€ÀÄ   ¸½¸„Á€D@!ÜA€D€÷½¯ Wÿÿÿ«¬ªª¬ªª¬ª©«©Ãÿ3Ï©«¬«¬««¬ªª©?ÌÌ¿ª©ª¬«©««©«¿¿Âü«©««©«©©«©©«©©«©©«©©«©©«©««©««©«©©«©«©«ªª©«ªª©«ªª©«§©«©©«©©«©©ªª©©«©««©««©««©«©©«©©«©©«©©«©©«©«©«©¬ª«©¬ª«¬©ªª©«®ªª©©ªª©©ªª©©ªª©©«©««©««©««©«©©«©©«©©«©©«©©«©©«©««©««©«¬«¬ªª©©«©ßÿÿÿ,,,?ÿ*?ÌÌÿ,??????+??Ô?*?*?*???*???)??–+*+*U***+*+*+*??????)==,*UUUUU ü00©ª©«©©üÌÌüª©«©©ª©ª©«ÌÿÿÀ©©ª©ª©ª©ª©«ÀÀ?À©©«©©«ÀÀÀ ©«©© «©ª© À©«© ©«©© «©©000«©©<ÀÀª©«©0 ©«©« ©©« ©©« 00©©«03À©¬«©UUUU ü00üÌÌüSSÌÿÿÀSÀÀÿÀ?ÀÀà ? 0? À  ? 000?<ÀÀÀ?0  ? ? 00?03ÀS}UU• ü00yzywwy܉ï<Ü6¯­˜Ä<ÿyÃLw=;+yzyzyzywÀÀÿÀwy•wwywÀÃÃü<ÿ#>#$=†9 Ãðý"4U2#>#$=Ž;&CÃð  óð#6ðÐUuPüðFN“•–öj/=%MYö"ɉ%ïÿÀþ{â¼äóðüK.ɉ«ü<ÿžISž�@\="FÅÃðÿ$òê×5ñª%c??0Km:ÏÚ € €óððàÏð/?œ›^\IÇ€§*qD+(yþÿðˆW+% ,óð¸ ÃÈ{KðóüÃ>=FmX,+XW,UePèC Jÿý÷ÿ;8#À6 üü<ÿ G Ãðþ *.#6 óðð!Þÿ Ñð° K Ãð óð##ðòTPüðöa“<;“Ìé´¤1ªÚpÆÌAÿËú¢�üž«ü<ÿXT«XWrg “�ÃððkT´¿ ¾½óððP94>q üüø9\�ˆ¯®ð dSóðkî�e¼Uðò]^TüðC $ ÿÿÀi83X?bü3)^ü<ð5'^56]()`óðð7%^5'^56?À_('`ð óð7T' UTPüðZìºä| ýözþ¼²Ä^ŽÿÀÈò£*žóððWXLû°rqð<ÿ’qÃðÿœ‡ÌdÐóô Ÿ??Lù®L£XÃÀð üüüÝ@ž·¤7æ­Ãð�×*óð)/Zƒ¯ËðòþýYXPH`àÿÿ~?& n;ÿÀ6!0{a ðV`oÿN;Ãðÿ*4]>6sR.ƒ``VüüüV=.�T&U0Ãà ã ðÀ×ÿÿÿ/0_00_00_ˆ'//Ãÿ3Ï//0/0/0/`/0?ÌÌÿ/0/`0(o0(o0(o0(/'//ˆ'//ˆ'//ˆ'////?p/?_Ð/?_Ð/?__Ÿ00(o/`(o/`(o/`('//ˆ'//ˆ'//ˆ'(W///?_Ð/?_Ð/?_Ð/?__Ÿÿ_Ÿÿ€ßŸÿ€ßŸÿ€ÿ00(?/X?/XŸ0/`(?(W/`(W/`(W/`(W///?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ` 0/`ÿ`@00DEUUÀÿÿHH@0ý0ÿHHH@aññ‚‚ò€‚~ ÿHHH@||‚‚|~‚‚~  UUUU ü00À¿ÀÀÀÀüÌÌüÿÀÀÀÀÿÀ¿ÀÀÌÿÿÀÀÀÿÀ¿À¿À¿ÀÀÀÀÿÀÀÀ?ÀÀÀÀÀÀà ÀÀÀ?À 0ÀÀ¿À? ÀÀÀÀ ÀÀÀÀ ?ÀÀÀ 000?ÀÀÀ<ÀÀÀ¿À?ÀÀ0 ÀÀÀÀ À?ÀÀ À?ÀÀ 00À?ÀÀ03ÀÀÿÀÀUUUUH@@€`€�€ @€ 2ÿÿ©«©©«©««ª¬«®ªª©©ªª©©ªª©©ªª©©«©««©««©««©«©©«©©«©©«©©«©©«©««©««©««©«©©ª©ª©«©«¬ªª©©ªª©©ªª©©ªª©©«©««©««©««©«©©«©©«©©«©©«©©«©««©««©««©«©©«©©«©©«©©«©©«¬ªïïïÀ««©««©««©«ÿÿÿ??@?,**+*+*+*??????===V@*+*+*+*??????===???*???UUUÀÀ «©©«¬«©©«©©«©©«©©ÌÃ3«©©ª©«©«©©«©©«©©«©©0«©¬«000©«©UUUÀÌ ?,????ÌÃ3????0S000W]Uméj õz�HÚwwýwwýwwýww�þðH¿�ÓÊwyw•wys…w}ƒ…w}ƒ…ånÃÿy_ø`ÆÚþð0ɶjeywVYewww÷L÷ÿþJ)888,_ÿ ÿ…S5$'6 FFF`…\*þ00MTÀµv mn\Ìרå<¯sCrfÝZðaá<7?$# ®©?¿Àž�«$ˆÃóÿz¦à?ŽM¹0_¶ÿÿð› {HF<á §E¨4Ëöðõ/'*?0 0  F@NPF8  .828&, 5      2864 >@.$  60>@.   60>@.   $1IGI    I      1/61<>8FH6(  >8FH6(  >8FH2$   2 864 >@.$  60>@.   60>@.   $E      A      53258:4BD2$  :4BD2$  :4BD2$  1/218:4BD2$  :4BD2$  :4BD2$   2 864 >@.$  60>@.   60>@.   =  ><  F@NP>0  F@NP>02 8 :4BD* =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  1/218:4BD2$  :4BD2$  :4BD2$  A?2468&$&(.0  &(  ¡      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28:4BD2$  :4BD2$  :4BD2$    B@ JL:0 B<JL:,  B<JL:,   T16_packed T16_packed(Á  Ã`ÄœA®ÀÄ   ÃÌÃ(Á€D  ÜA`D®Ú Ì’  ÿÿ÷efËgÎeghfÍhfÍeeegËeegËeegÎegeeegËeegËeegËeegeefeeÌeeÌeeeeghghgeeegËeegËeegËeegeeegËeegËeegËeegÎfËegËeegÎegËeegeeegËeegËeegËeege<ó<óhgeeefÍËefÌeeegËeegeËefËgÎeghfÍhgeeegËeegÿÿËeegËeeÍeÿÿ÷2344KK1KKK33ÿKKKKKK±4K1KKKK<ó<ó—243MË412MÿÿMM2UUU ÿà babab`bb?ÿð0zbababab`b0ÿÿÀbzbababab`ÀÀÿÃbbzbab`b 3ýÑ??Ï®OU&%Y$H³¾"+‰˜ ¾fNB:ô–�ÑtÞºžÀ)ØÜW*cŒýdpþ �dŸ¸�¿ÿÿŽfnHú/äúÌ�ZwåCÿò¡…,¯ ÀÏøOÿ.1.C6<òÿÃ%& $^!AÀÀóh 12U@»,! %2.6g < g"4U&Q#ÃóÏðL7*'(S,<@'ÿÀaÿ ŸõÿŸõ#*!!p-!4[*+ ÕƒÏ  ÷ý.IÿɽïD¾p½ Põâ4t_½”ÒŸAŒ¦è�Ïv�.;�&]2Ú 5$ÃÀÿÿ#9:8"l5"3H€ë$à:†fGýgé™äßéê]sÓY?þA{’u*ª†�ËZù�94^‘Š|ËX??ÏDÕ:+,,,ÎÍ¯Ô Š–°—X�'³$Öóò9‚Ý4;ùë…ú²î÷{Ïœ+™ {߈›?üÿÚ) ª‘4ÏÙG Zµ©xÿÂb…ïÅòú(`…C<=ÿà G0ÀÀóM$Ïòÿ\#@/X  #'N-N%B.Ð ÐÀ-<1úP0 ø×ƒ•Aïõÿ¿ÿôû¹ës",ýÓÀ_Wõ5$H{" ž­‰„¤v¡‡ =·Ém°öohÈç <î÷Ãã䩨¯´qÀórôó;@p”öýþ†Ù<ÑãðüÐox“‚s’PÃóÏðk^ÓvÐÏØÏÎÕ<[\)þHÿ(!"ýÅFãì bƒ0 ;<Ä×,»œ?J¿õßàߨ}ÿÿÏʈ�Ç9q!'¼Q”‡ÿð£AB#÷Ì<<P 56IJ<??ü_D 705ÃÃÏàV56!"cF<< a(,SCtQÃóÍ0(!" <B'ÿÀcÿ, # ÅÿÛÿ<  ;j 7ÿÿð")eL€ßÿ÷/0o_ ?_`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿÿÌÌ?€€ÿ€ÿ `ÿ `ÿ `ÿ ``@?@0o@0o@0Пÿ€€€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@00ÿ€€ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@000<ó<óp``@0/``('_00(o0(¨@?p0_00//`/000(o0(ÿÿo0(o0(0·0UU@�’@1ñ‚‚÷È`‚‚~``a†1üþþ‚�‚�‚~}Á€€ ˜UUU ÿà À¿À¿ÀÀÀÀ?ÿð0ÿÀ¿À¿À¿ÀÀÀ0ÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÃÀÀÿÀ¿ÀÀÀ 3<ÀÀÀÀÀ? ÀÀÀ? ÀÀÀÀ ÀÀÀ? ÀÀÀ?ÀóÌÏÌÀÀ¿À¿À?À ÀÀÀÀà ÀÀÀÀÀ?ÀÀÃüÀÀ?ÀÀUUU€ @€@€$ †@€@€ˆš´mί@(Á@Ä€¿ÌÐ        ,.0*(   :,FH:  B<JL>0     *46820   B4NP>$ F@NP>0  F@NPB4  .8:<64 68 BD2( 64 >@.$  20 :<*   … Ei¦Oikmcikmcikm')  '!/1+  3-;=3%  P,p“2:prtjprtjt:4BD2$  :4BD2$  :4BD2$  Y5QzSUWYKUWYOUWY        @4P{.PRTJPRTJPRT60>@.   60>@2$  :4BD2$  A2468&(*,6TRTVXV4(Z\(*,   & .0*   FLNXRTN PZ\      j,Hrt""HJLBHJLBHJL*$24&  .(68*  2,:<2$ ntñ.024"$&(2LJ4NP T16_powder T16_powder„š٠ÀÄ�BîÀÄ»?»„€DšÙ Ã�B€DîÃã?Û õýß3ÌÌÌBA†BBDBBð ÏÿØ“oopopopopomooAomooAomooAopÝooDBBD33?ÿBBDBDA†BBDBBØ“oopopopopÝoo±pÝoo±pÝoo±pÝooDBBDBBDBDA†BBDBBØ“oopopopopÝoo±pÝoo±pÝoo±pÝooDBBDBBDBDA†BBDÿÿBBØ“oopÝoo±pÝoo±mooAomooDBBDBBD†A†BBDBBØ“üÿ×¹ppBÝnÝoànÝoànÝoAopÝooDBBD©éº®3ÌÌÌ,ø@`VVVöfdözfOeÆO33?ÿ,ÿ€FVVVõ€ÆO\dõÆO\,ÿøeeeõ†ÆO\dõÆO\,ÿø\d†õÆOfOfdÿ.,úUðõÄ•ŒÄ•Äö\dÿÿ_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©Ïÿ̪©ª©ª©ª©«©À?ÿ©ª©ª©ª©ªÿÿ𩪩ª©ª©ª©«?ðÌÀãä©«©©«©À0©«© ©ü30ãä«©©«©©À0«©© «üüãä©«©©«©À0 ©«©0?©ãä«ÿð ©©qr«©©« ©©_UUUTSTSTSTSTSTST7SÏÿÌSÀ?ÿSTSTSTSÿÿðTSTSTSTSTV?üÌÌ9??À0 Vÿ3<9??À0 Tÿÿ7??À0 0?V9ÿü ?? ÿÿÿÿX™”ØaX'»è´+ËÚ((S('((&(�(Ý^Ä^Ö– (I¥ËC&ImË{^5o• T Y­€uÉϹs~§hœR£RyÓœ°ìp(B&`7^5?5$¥•‰7$mˉ7Z¥þm’Ýþ˜õ÷‡®Tx ¯¡ùiuj�Ù((®5^&(?k�¥È5�ÛþS7’¥ÆmÈ¥�tRcÓÏæ©™äŠî>àU—�(((®(&(mþ¥È‹×•oþ÷Èmü ìD7þ ööŒÞælÓ gQø¦((@ j6&^(öe.Ëö±æËwi “-6”"4]Á›Òëëºî131 +) )+b·™÷‡���$ðzŸŸ�jù&   T%B#>!>!D%H'J+J+a ?öY™ð���ð)&�hð&�, c$Eÿ…™Ÿ ð!-&�JñD¯( ""c"Aÿ¥™Ÿ™Ÿh!+÷¦�&¯Ojÿ-* " C9!#  ™ÿf©™ÿøÿ "   , ÿÿÿ¥Ÿ{�”Ñ,"+�u¤²-B�=ŽSABÜÛ\[t Èÿ¼$è@Ïœ!IUætõ„Я|éyïuv~x‹¹Ã϶ËÅØtç¯ôm{ÕpG �±°Tïà$£Z¹†Øi¥»çÓÒ="…£¥–£ýÁ¦ J% ùÜݰK&RMÏ ¦#$ßíY¡.è€N«0ò jWüè×]K­G\ ýn„¯ÞPÿÿ;£I n©›ðÜb$ÝèšC*Ç–ÅöÆ©ô-j_¯ÆP}þÅ"ìå”˗Ŭ:7뀺NÙbÚOéc­5Äêü'šÉz¾<ÚÕY©¹®ªða  o0ð0Cee/MO{ù÷00ß4ÿ”.€;ïN 1ðõCCCv( (&ù&"ðYPå?o2´&&$÷bñ8LÃ?o 9×ý­pÿ_Ï')""„QhðB£ðÿ÷Ó=0÷±ð�•$$ÿÿÿÉ}1ºatnð$¬à°!’°YzÉy;æ¥dc´³^y¦¤°l��Rã Æ›¯ÒuÆf~“Æú pJ[Õ@ò,ûС'C®dPmFbÈ’�nmXXl˜ÎÍó'f±—á",À›·„ŽT‹Û`’Fh¥"[9ñ›hæÚpi¹ °eæØ¬I–çèÎÉÙY ó£¿LDŒuÅXjT-ž`i2Ò¹Pl¯yJ­D&¾5!ÿÿC�>ØRß‘ÿÕhp44Ý(pÂA'㩽¨ÆÑM…f úb5Á‚Ô CR^|^PÕ »Sº2jΕãÌ î8‹øðÙ ð[¨3ÒÌ�¦¦©ª#$t’A ùœ†f#1Á33CC! qÌd31‚31"1$@$ã �31‚3#1$24@1i1¤s³WqD%$#"a0™Á?ñ_óü@ õ÷}׸˜2<΋¡q ¬GœJWŸ8Â0™?‘ a\‡>é¾åÕbã†oʃæ½<AŽOð WXYdglOPòPe‡‡#� Ha� 7ï3b _ðõev4 iRH�,ÿ7f ALãÿ�F5g€gJ%I’� ÿ2  å_�%d¸„&1ß}. ô?þ0ET1$ !õýß3ÌÌÌ'(W///?_ð Ïÿ?'('('('@___0`@0033?ÿ00(?(W///?_?'('('('X0G0G0G0`@0000(?(W///?_?'('('(00G0G0G0`@0000(?(W///ÿÿ?_?00G0G_`@0000('(W///?_?üÿ@'_H0/0/0_0`@00QEQU@Àÿ0ÿ ÿ ÿ@ ÿ ÿ@ÿ0ÿ ÿ _UUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿ÀÀÀÀÏÿÌÿÀ¿À¿À¿ÀÀÀÀ?ÿÀÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿüÌÌ?ÀÀÀ?ÀÀÀ?À0ÀÀÀ ÿÿ3¹»Ÿ»¿›µ "$R¸ý�÷$ý×ýÙ"ˆ$&ÿpâpN1�¤/E”>‹T71b»CÇŠ>×.ªB£;PošÞ`ç°„ ž»+F<çH bÒµÍ4ó®ðo,ÌšB%$!P$b9"G$'""L= £1¡Q" ùÿ``…†!ub ? û©¤�=̲¡óVœóœô9¨óîè—á�¡ó RÚÿ�ù,ÿùÿû&$¨.0¯äjX{_L;DsÃ"§¿†Øh0´Š$xÞœ�S¡#Z¤:4Y'ýÿ-^]Zktiû¿ßßß¿Ý÷Z(*,I’Ba ß00('(W///??HHHÏÿÿ0G0GG`@0000(Qÿÿ Uÿÿ?ÀÀÀ?ÀÀÀ?ÿ<ÀÀÀ¿À?ÀÀÀÀÀU  $€AùŹÿ„Â@Ä€¿ÅÐ             "$  &("      "$ >H                  %#%    ]                     ^É                         _Ôrt n…s€        "( "$ "$ "$ZÑ       !               $"$  !   #+-'  /)793%   3579')+-!\    /   71?A;-        T16_rockT16_rockÁHáÀÄðAîÀÄÕGÕÁ€DHáÃðA€DîÃþGö ]3Ï?ðOžMOMO¶?ÄÃÆMOMOPOMžOMNMOü3ü«„ÃÃOMM„ÃÿðÅMNù„Ã@„Ã?@„Ã]3Ï?ð%ƒNMP'ü3ü«4M²Ñ4MÿðMh4M4M?4MÕ 3ÏÏ©©ª©q㩪ªÌó 0¬«©ª©«©óüÌóqrª¬ª©«©ärªª¬ª«ärª¬ªärªªüü¬ârª¬ªÕ 3ÏÏ7Tüó 0@óüÌóVjzüüxÿ°_´i¨`_¾"9ýP\&„„tÙ`¾]¾`^``¼``+øâ¿â€`¾`ãB%¤ââ„PܵN&„(–9#&&ÿü„˜$ß&„„ÿ6'e6/*`7"mM1 (7`(_((‰(*a((%G?*9(7$ E{/jGCIÿüCIÿ[SÏÀºZ»+ZWI6d¿ÿ} #ÔáPG 1àД»ÿQþ»™ŽPF3óüPOA 6hVùHF@2>À "Æ 1�ÿ{©e¿¿‘œBKûîpO}_Ð2- <Z0a!ÒX‘;Çñaß‹;na/3bóüA0tOVùh$ð7x’@0À bÆ-01 0&'÷nài"ÙZïvsqÿ?ð’c!02a¬÷Ú\>øPÑW «êB]%n«Œ^@ -;óü\[;˜V©HFò0º -À 3Æ.-( 098·ð  7 ]3Ï?ð_ ?__Ÿß`_ ?__Ÿ Ÿÿ_Ÿÿÿÿ€ü3ü_@_€ÿß@_ÿð_€@_ @_? @_@ ý4gÿ‚À2€‚ü‚~Õ 3ÌÏÀÀ¿Àÿÿ¿¿üó 0¿@ÀÀ¿ÀÀÀóüÌóÿÿ¿¿¿ÿÀÀ?ÿ¿¿¿?À?ÿ¿¿¿@ÿ¿¿üü¿@ÿ¿¿¿U€h a€Cx@Ù U^ã_Ñl"6@ðÀ Ä€¿ÚÐ .4246864:<*8        JP ^@  "$&, :@  .4 "( " T02_groomed T02_groomedpÁ…ëŸÁœÂpA®/Á(   % % pÁ(B…ëŸÁpAœB®/ÁÖΠÿÿÿÿefeffefËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÿÿÿÿ22KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMMUUUU à ?©«©©ª©ªÿð00©ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«00?ÿ©©ª©ª©ª©ªð00 ©«©©«Ìà 0©©«©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«© Ìà ©«©©«©0ÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©UUUU à ?Sÿð00?ÿð0S0?ÿðS00?ÿSð00<?Ìà 0ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÌÌà ?0ÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?UUuU à ?¹hhøò¹ºÿð33¹º¹º¹hhÝ)Ì?ÿð0&¹º¹º¹º¹hu0?ÿð¢&¹º¹º¹º¹h00?ÿu¢&¹º¹º¹ºð<<<¹huÞ;Ë8hÌà 0høúhúhü|üü6†¶ ²sÀÀÀÀ¤˜¢"ÀÀÀÀ¤˜¢"¤…ýµÃ?dt‹ÌÌà 6húhúúh0üüÌøYùKÐ@ÀÀÀÀ¸�WïÀÀÀÀ¸�WïÀüüð¸�ú’L¨?UÕuU à ?Vÿð03 ?ÿð0L0?ÿð L00?ÿ Lð0<< @Ìà 0B1=GÀÀÀÀ( ÀÀÀÀ( (" ÌÌà B0üìÌ@=)ÀÀÀÀh'#ÀÀÀÀh'#Àü4ðh ÔpÅÿstÒ:ôšú À3sŒ¢†ÀŽzz~Û\˜4 û¨ !3:ÿÿ?^¡eªNÑšá3éðïÿÿ|%"38+& ÐVØÀ ó ! ) %ÿ??ÔpÅÀ?!aBBB /  1" !ÀBÿÿþEJ!0 ýÿÿ/0/00/0_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿÿó3€ßŸÿ€ÿ `ÿ ÏÏó3`ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00TUUU!!!1ñ‚‚ñò‚‚~Àÿ„„„ÇÇÇ‚‚‚‚à```~ ```Àÿ„„„ÇÇ‚‚‚Çà``‚~` ``ªj•UÀÀ ÀË/ËËÌ ËËËÌ / ËËËÌ/ ËËË/Ì À#ÀÀÀ À ÀÀÀÀ# ÀÀÀÀ# ÀÀÀÀ# ÀÀÀÀ# ðÀÀÀÀ À#0ÀÀÀ # ÀÀÀÀ # ÀÀÀÀ # ÀÀÀÀ # ÿÿÿÿÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeeÿÿÿÿM2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMMMUUUUÀ Ìé«©©«© 0À«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀ Ì«©©«©Ã 0©«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ «©©«Ìà 0©©«©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©UUUUÀÌÌÃ? 0ÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÌÌ?à 0À?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÌ?Ìà 0ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?UUUUÀÌÌÃøYúhøhú 0ÀÀúh[úÀÀÀÀúh[úÀÀÀÀúh[úÀÀÀÀúh[úÀÀÌÌúh[úúhà 0ÀúhúøYÀÀÀÀhúøYÀÀÀÀhúøYÀÀÀÀhúøYÀÀÀÌhúøYhÌà 0úøhúhúÀÀÃÿ[úh’h†’’ÀÀÀÿúú¢Û�ÛÀÀðü’úsÜžLÀÀÀÀ[úhúUUUUÀÌÌÃ@ 0ÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÌÌ@à 0À@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÌ@Ìà 0ÀÀÀð>ÀÀÀÂ6 ÀÀÐð2 ÀÀÀÀ><vuüÿ9:œÙy½d}Àÿ÷ƒ9A>==ÃÀðüÿwvu—2f™’— $àÌ€€ðì WUUU5WŽ‹Œ/0.-/0/0‹ÏÀŒ.-/0‹ÀÀŒ‹ÀÀŒ‹ÀÀŒ‹À<ÿŒ.¹Œ/0.üü?-.-/0‹Œ.-ÀÀ‹ŒÀÀ‹ŒÀÀ‹ŒÀÀ?‹Œ/0.Ïüóð¹Œ/0/0.-/0‹ÀÿÿŒ;Oé–{•~}ÀÃÿÿ ‹;#ÿÝÝÖ72KÀðüÿÛÑÒåã5Çy©ŸÀÀŒ‹ô3‹PÀÑÕ Àøþ  þÿIJ-‘žuo�ÀÿÈMIGHGG×À`\OðÌ<èç`|ðüÿ‘’kpP_\K<`H`øþ ÿÿÿÿŸ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@00UUUU`Àÿ„„„Ç‚‚ÇÇà`‚‚~`` ```Àÿ„„„‚ÇÇÇà‚‚‚~``` ```Àÿ„„„ÇÇÇ‚‚‚‚à```~ ```VY•UÀðÀÀÀÀ # 0ÀÀ  ÀÀÀÀ  ÀÀÀÀ  ÀÀÀÀ  À€ðÀÀ€à 0ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÌ````ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÿÿgefefefeÿÿ Ì©«©ÌÌ?ÌÌ[úhúÌÌ>ÿüŒ.-/0.¹ÿÿ00/0/0/0ÌÌÍ ÿÿóÿXÁ$€¿* Ð   "024.,   >0JLB( JDRT>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .82468&$&(.0  &( -        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T17_groomed T17_groomedœÁRx+ÀÄœAšÙ ÀÄ   °°œÁ€DRx+ÜA€DšÙ ô¬ ÿÿÿÿMN�MžN�MžN�MžN�MOMMOìMMOìMMOìMMOuOMMOžN›OÃOP�MOìP�MOMOMOîOMOîOMOîOMOÈN�MžN�MžN�MžN�MOMMOìMMœMNMœMMOžMOPN�POMOMOîOMOîOMOîOMOÈN�MžN�MžN�MžN�MOMN�POPOMOMOîOMOîOMOîN�MOÈN�MžN�MžN�MžN�vN�MOîOMOžP�OžP�OÈN�îOMOîOP�OžP�)P�OžMOPN�PN�KMNMN�P�NMOžMOÿÿÿÿ('('('(999ž%&M(9(;;;N('('('(9%Ú%&;;;N('('('(Ù;;;(N('('('(�(;'('(N(;;('(u('((&('UUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÏÿ©©ª©ª©ª©ªð ©«©©ÿ󪩪©ª©«©©«©«© À©«© 0À ©«©© «©©« ü©©«©©3ÀÀÀ«©©«©À000©«©«000©©«0000©©«©0à ©«©©30 0ª«©©«UUUU ÿÀÀÀÿÿÀSÀÀÏÿSð ÿóS Ì?? 0Ì ?  ÿ??3ÀÀÀ)À0000À00?00000Àà ?33 0*?}uU ÿÀÀ-.-.-+N-:-.-.-æ£mãRà@²ˆ£›-.-.ÿ?Ãð-+‘±‰ñû?ÿó:-.-.-+|--+--+ˆÂQ�(R§ÒOP�?ü ¤Ñ‡P Y.ˆ- < -+|©N cn!1'|12SÿÀ)P.WXÿÿUVK/|+;ttÝÿÿN½b ÁÞžÜöo®–¼—ª%=BEH?óüM",é!ç 5%4Ò±ðË)'âËVÏÛüIó{�ónÈA<ÏÐ#xS•l ‚ÿÀððÇXxw21cn Nk-SjĘ̈§=..Øl¼9«ææß d‘©î§¨‘’èç€i«†&N¯bo«ÀÿÏãUVlkñòäxTTUußÿ2G2�ÏØ T6E#¸)&$„eÏÿüJy®3X(‹n=#HBK<ÿÀðð6.#[ü 4:m™ü??N0{T?.8e?™F4y`"“f7->4qF*À›Äoÿÿÿÿ'(W/`(W/`(W/`(W///?_Ð/?_Ð/?_Ð/?_`@00_?p0ÿ`_ 00Ÿ_ 0000(o0(o0(o0(?(W/`(W/`(W/`(W///?_Ð/?p/0/?@00_00//`/000(o0(o0(o0(?(W/`(W/`(W/`(W///00/0/000(o0(o0(o/`(?(W/`(W/`(W/`(W/`(o0(?/X?/X?(Wp'/p?/X?/X?('@'@/?('/X'/TEU@„„„Âÿ� ÿþ ÿÿ0ÿÀÿ0ÿÀÿ0ÿUUUU ÿÀÀÀ¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÏÿÀÀÿÀ¿À¿À¿ð ÀÀÀÀÿóÿÀ¿À¿ÀÀÀÀÀÀÀÀ Ì?ÀÀÀ? 0Ì ÀÀÀ?À ÀÀÀÀ ÿÀÀ?ÀÀÀ?3ÀÀÀÀÀ€ÀÀÀ000ÀÀÀÀ0À00À?ÀÀ0000ÀÀÀÀ0Àà À?ÀÀÀ33 0ÀÀ?ÀÀUUUU€@€@ @„„� @€ @ @€ !žMO'N�PN�îOP�OžPü�OM'u((;('ü(À ©©«©À©«©à ?À)&vc�žQRQ¢š™ceÏÀf?¤c7&*)\k@?$ÏÀ# ñöC2NÎÛ óOçÀÇR 'f=/`'M<À=ygJÇÝ-¤hx±Àƒ¶wíºÏÀÚr1?qÇÇ Ö2Í@4$%7,±²h·L €ÿ†h 5D¤ æ›á¤l¨ìxÙÅ�G€íÀn@Q&A|1$c NÀUX'/X'@'@o0/X?/üXÿà À?ÀÀÀÀ€ÀÀ�€±ÿÿ ÿ„Á@Ä€¿ºÐ        .8:<64   F8RTB( JDRTB4  JDRTB4         :DFHB@  RDZ\J4 RLZ\B4  JDRT>0  E      EC2E8:4BD2$ 64 >@.$ .068&  Y         A?"A(*$24&  .(68*  2,:<2$  =      )'2)824:<*,.0 "$153b±s€r�#%   #+-#  +%35 o´ r‰      ?QKMS QWYGQSUKU      CQKMS QWY       ;MGIO MSUCQ        OYSU[ Y_a    #! +-'  +) 35+!  GUOQW U[]        +5'-  T17_packed T17_packedpÁ…++ÀÄpAš™ ÀÄ   @Š@pÁ€D…++ÃpA€Dš™ ÃsŠk ýÿÿÿ3ÌÏÿghÍeeÍhÍeeÍhÍeeÍhÍeegeeeÍeeeÍeeeÍeeegeffefËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefeeÎfËÍefËeÌfËeÌfËegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeÌeeÌeeeÍeeeÎefeghÍeeÍhÍeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegÐfefeffefËgeeeÍeeeÍeeeýÿÿÿ3ÌÏÿ4M4M4M4MMMý22MMMMMMÎ2K41414MMMMMM33ML4K4KKMMMMMMMMML2KKUUUU ÿü©ª©ª©ª©«©À?ÿ©ª©ª©ª©ªð00 ©«©©«0à ©«©© «©© 3«©©«© ©«©© «©© «©©0ÀÀ«©©L𠩬«©«©©«©©«©©«üÌ©©«©©«©0ÀÀ©«©UUUU ÿüÀ?ÿSð00??@0à ? ? 3?  ? ? 0ÀÀ?Ìð >S???üÌ)0ÀÀÀ?Õu|ô ÿüÏÐÏÐÏÐÏà¼À?ÿHìÏÐÏÐÏÐð00?Ïà¼H´àÈ'G(§Û§€(§€3G |3G ÿ|Ëç_§¨§§§€Ø¨§¯'§¯'§ð¯'—§§¯§§¯§§§§§§ª©ª¨§¯¨'ا¯¨'Øÿü¨¨'ب¨'ÿÿ—§§§§§§§§§§§§©•©ª©ª©§ç§­8¨¨'ب¨'ب¨'Õu|ô ÿü%&%&%&%À?ÿ2%&%&%&ð00?%$(#GJIl!Il'( '(ÿ3(IJGHGGzIl³HG’"kG’"kGð’" GG�GG�GGIÚGGI_JIJHG�J"³G�J"³ÿüHJ"³HJ"ÿÿ GGIÚGGIÚGGIÚGGIG2IJIJIG:G’VHJ"³HJ"³HJ"TUUÕ(ððÿ¹’ Ó³ÖÈÿÿü 6óöæÒo•âkj````UUÏÀ<Í\rÃÃHGHG>Ãðð=$³���ðÏÏÜXÌÖPÚÜBÏÀâí4ºÃÃ^]babÃððða BABAðרUU„€ÃÃÃðððB*)*'(ð%&„„„€ÃÃÃððð P$#$#$ð34ÿÿÐ/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0_0/0/0_/?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00ÿÿÀŸ@0000/0/UU„ÇÇ‚‚‚Çà``‚~` ```ÿ„„„ÇÇ‚‚‚Çà``‚~` ```UUÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀó3 À?ÀÀÀÀÀÌÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÌðÀ?ÀÀÀUU@€@€@€`@€@€@€@€@ ÍLAð +ÿÀÀ@Ä€¿GÐ     " &(   :DFHB@   RD^`J0 RLZ\F8  NHVXB4  .82468&,   U &n™  /)793%  ;5CE/!  71?A3%  D B3OÌ:4BD2$  :4BD2$  :4BD2$  2468&$&(.0  &(  1      5365<>8FH2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2864 >@.$  20 :<*   2,:<*  =   6$  >8FHB4  5365<>8FH2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  -+2-8:4BD2$  :4BD2$  :4BD2$  *4"$&(  E C&E,.(68.   60>@6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$    2468&$&(.0  &( 1   535 "*,"  *$24.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24"$&( T17_powder T17_powder�ÂRx+ÀÄ�B WÀÄ\Š\�€DRx+Ã�B€D WÃ�Šˆ UÕßß3ÌÌÏ«¬ª©«©«:ãÌÌ?©«©©«©©??À<«©©«©©«©«ÿüÌ쫬«¬«©©«©©óóüÌ«©©«©©«©©«©ÌÌ¿ÿ©«©«¬ª©«©«:Àÿ??ã©«©©«©©«©©«©©«©«¬«¬«¬«©©«©©«©©«©©«©©«©©«©«¬ª©«©«:ãüüü©«©©«©©«©©«©©«©«¬«¬«¬«©©«©©«©©«©©«©©«©©«©«¬ª©«©«:ãóóó©«©©«©©«©©«©©«©«¬«¬«¬«©©©®®®3ÌÌÏ,`@``ôfôfôf@@v444``@`öFöFöFððð@,€dfôfôfôf@ô444vfFöFöFöF@,FoFoFoFdCCCFvdodododo@,dfôfôfôf@ô444fvßUUU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©«ÀÀÿ󩩪©«©©ª©«©©ª©ª©ª©ª©« ÿ©©ª©ª©ª©ÿÿÀª©ª©ª©ª©«ãÿÀÀä©«©©«À?ó3©©«©¬«©«©ÀÀÀ©«©©ãäü«©©«©©ÿÌÌ«©©ª©«©©«©© ?«ãä©ð «©©«©ÿ30©«©¬«©«©ßUUUTSTSTSTSTST7SÀÀÿóSSS ÿSTSTSTÿÿÀSTSTSTSTV9ÿÀÀÀ?Àÿó3?UÀÀÀÀ?V9ÿ?ÿÌÏ?U? ?T7ü ?ÿ3]Ü^<] šz]ÍŸ¡h JŸö 7ÜÓyqžœœ<=¬-š;ª-\;ê/ êôçÚÜXç=çÚÜäØ|_$ÚzWظ•éº!½äŸ¯#ÍÍÆ¯*TÞ®(°œœ^ö×›@××>™ªº™ÍÚÜÚ–Úç=å=çÝØ«¯®®#&!+ /151 ›¹ûK‹‰GQ"G1GQù¹¿ ,, ûûùùô.! ! ! ^/V/R+P)F%8!4A.]'%!y¹÷1GQGQgQù¹û ,ôŒôŒôŒôŒ"!#!*"*,"Q2e)'#¹¿u“us›Ÿ°�°Ÿ ,"J¯HÏJÏhÏ!#%(",.$ "_.[+)# »÷1GP'1%Qû›û  ô".$ÿÿÿÿ&Àæ}&Û³�%ŽÚ2<¶ž�1â¶X[j=Y‚acZf‡¡P¡ÝÏg×o²µX^Òî`�.—¯Æ.Ç(Œ–º³ÍþO÷“ЏÅá—ãÑñBAC+%¹`B7«mkVÙ„­ýœí¦0îbä3¹.ê]ð²�žßàÞÝß iiò'Î#“©ßA!æÞ¡”oÈã©ÀdºøîGÂÀPàg­¾Æ‘‚íþý˜óÊ5 âºZ§Ýoà-Q_ Ÿ`OŽXhRžf„®p(†b”D*kÉ}Ÿ"�ì…E4û·|UÖØ†«ÎÓ²ü¢µç®+ƒo² ^T‘’‘ÊhªªªªD”t0!Cd°²Òý¹$ùÙùÙ0P""eCe’òòrý$÷ÿ×ý×`A!&$cÃCòS36PaIÙù»ù»""ù»Peee"�×ýõÿÕÿÓ$$$`4DS7 X8›¿›ß›ß"$$�³46VYý_Ý_Ý_û8"""& óA5U V‡Ûù»ù»÷"" »0eCC¿ÿÿÿÿÕ@¶Öûï øûÒ¢ïë¿vqýl�ÈÀqàc ï¨ -¶Ã€U|‡b÷U4pL’j[íëÇì¾ÎS¢ašúóy(LÇHD±8ŒÑòö¼Ò¢™ÚÛJàIÇÁ‹„Ô9^Û. š•b7죈ÏZmÆ{@Çû³”ÇèÍLì목h–‡ „ùv&Õ rºö\Õ‚K Š2ÒÈXÙ¨{:GD5²ãÊ -Äó–)ªŠÑC®hç2p‰>Ø×ú­¾½|±�”Ò�`û’„˜6Rù°<ßZž½¹T•G…[ùô›U–8RAЊû=’¨ÁW²hr½$(óL:ij•ìëìæ8–jjf3áaaR1&Üîëî$!200£1£1£0"200A„B4B”$r$û™� 1£1¥£1B1XA$  "G"G"G¬$g13_ÂÄ 2BrBrBR  ÕWWW!@‚ÞÞZpS¦YQuEŸŸ¼Rf5{šyŸ@5fÏP"Æ¢´�½ÿÿàz$–çß�ñÉšZZZÿST¥¦QŸ6ê;ãÑÅ|`IíØ¡uŽÿÿHKõ«œbæ³ÁiiihÿÿLº¹h³ùú´æþ1sÓí!Á§Û»�Æ.KÙÿý$ŒYÆ!²|p ¥¥¥ ÿÿba´g5Ô�Ї‡CCE²ôò’ÿ,÷ÿ÷ÿ÷@@!,*ƒå£cð eee  ,,*×û(VVV]*** ÿŒ.eeeßv~vþÎmîK«*è¬@]Zϼ‘]d~^‹å`v˜ÛÇÊR’€N¿.DN^�KÁç::0@�€ÿÿ“�Å�Œgd{ž_F†ç±Ë_|azÿÀÀP5ŽK&¤�ýý!ë¼q~›àI ÔÉÿÓ_z\ÿÿîwÑ’Ý’ÜÛ0a1�0a0@&ÿÿàñ‘€•Ó-(ÔI£·ÞS�yÎaÙŽ44xü Â’ØKfeuebóô2ÿ‚g`]^~îÿ, ýÝûýP"**$$$$��€ïÿ<e^�%Kýûÿûÿ*<ÿÀ€< BBBBI“ÿóB~wn  , , ,ÿ&  &ÿü>wxwp ‰ÿûýûýù**(ü Õÿÿÿ3ÌÌÏ'(W///??ÌÌÿHÿÿÀ HHGGG`@0000('(W///??HHHGGG`@0000('(W///??HHHGGG`@0000('(W///??HHHEDD@0ÿ€ÀÿÀÿ ÿÿ€ @ÿ ÿßUUUÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿À¿À¿ÀÀÀÀÿóÀÀÿÀÀÀÀÿÀÀÀÀÿÀ¿À¿À¿ÀÀ ÿÀÀÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÀÀÀ?ÀÀÀ?ÀÀÀÿó3À?ÀÀÀÿÀÀÀÀÀÀÀÀ?ÀÀÀÿ?ÿÀÀÀ?ÀÀÀÿÌÏ?ÀÀÀÿÀÀÀÀ?ÀÀÀ ÿ?Àü ÀÀ?ÀÀÀÿ3]å¹ ?›Sôx*ŸxZ3ýÔãóñ`$/¬ç©åA×k{é[^ Êœ¹¨{ÙÈ]ÅÛÜ·ÉØly=ºÿÿð>¯ô*a¶xÐ)®¯¬öŽô¬ö¬ÿ%%%&"*,$" e&K))#  ¿SSSQ¿�°ŸJÏJ % % ! * **$ W&G#')! 1100ð(¯&Ïpj÷ÿÿð. (*$ "L)ÿÿ„ª`¹_΀¹¹ÑÎ]Mâ“�I��Ëý¤3\K”iQ³7xXœëffRoºüÏø¾óˆ²²OP® 3•5ŸÏþ¾×JQ:Ð÷ö7ZMÅ=pÖeûßdëÁ×]"/ä.ʵ�ÅîÏÓ­]—¸~ƒ¶€ @Ïš­§9 8–Fùvk¶bÞénÿÿÀÌÜé �dªêÕÿÕÿÕÿ³¡$$$4BSzP›Ÿ›_›?»346[û_ý$?ý_�õ€2B$&4AS6P»?Ù_õ_Ù´*  2  0Ë9 ÿÿ~2Õ9‚¦§Gœ;~¥ï0 "/C¶•YîYQ^¹™rWD?eÚÇe‡€Î¹ÑªÔªZúŠÖr-LKÑÒÒxˆ×ý‡7 êðníæËgŽ9¯ƒtý²FBBÝc«+§ðµr•Ÿ8FHB4  .8:<68:<*,.0 "$ "$   . :<2 :4BD:,  B<JLB4  .8                ECE    "*,&  .(682$  2468&(*, 9ECE "*,"  *$24*  2,:<2$             535    "*,&  .(682$  2468&(*, 1535 "*,"  *$24*  2,:<2$       535    "*,&  .(682$  2468&(*, 1535 "*,"  *$24*  2,:<2$       535    "*,&  .(682$  28&,1535"$   "*,"  *$24     535    "*,&  .(682$ ]     T17_rockT17_rockÀAî*ÀÄðAÀÀÄl%lÀA€Dî*ÃðA€DÀÃ%  6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀõ þ&œ&²¼&&œ&Ó"/œš(û+º(š(¡yã¥æ ÿÀ\yUWM[I[G_OcÿÀS/R3:¬þTSHX$WfåÖV$@2S ÿÀ OJ†vƒšga¹4G¼#hcvAcén+[ÚÿÀ"Q^`$1ƒ$€ ?0O`@LBÈÖbaœ#x1De†!<]fDt!>@c ÷À ]?C$"f1ƒ€€?ð?`_ @_ @_ð? @_ @_ ð@_ ÿÏüÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÏÀÿ¿¿¿„0„0„UUr€ðèæqFaÐA@Ä€¿qÐ  "( "( "( "( " T18_groomed T18_groomed¨Áf&4À#ÄœA¤0)ÀÄ   —¾—¨Á€Df&4ÜA€#D¤0)Ã\¾T ]ÿÿ3ÿüÌöõöõöõöõöööáöööáöööáöööø…ÏÏ3?öõööõøöãõÿÿüøöãöøöãöøööööööööööøöööáöööáöööáöööøöõöõöõöö„õ÷ø÷õ÷õ÷ööøöãöøöãöøöãöøööööööööööøöööáöööáöööáöööøöööööáöööáöööö3333øöööøööööõöõö&ööøöãöøöööøöãöøöãöøöãöøööööööööööøöööáöööáöööáöö]ÿÿ3ÿüÌ&777õÏÏ3?&7&ÿÿü77###777ö&&&777###777%773333&%&K7777###777UUÕU ÌÏÿ©«©©ª©ª©ª©000?«©©ª©ª33ÿ𩪩ª©ª©ª©« ü©©ª©«©©Ã 0«©«©©3«©©«0 0©©«©ÀÀÀ©«©?0à ©«©©«©©ÀÀÀ«©©«©©ª©ª©ª©ª©ª©ª©ª©ª©ªÀÀ00©«©©000«©©Ì0ë©©«©«©000©«©UUÕU ÌÏÿS000?33ÿðS üSà 3?3?0à 0?ÀÀÀÀ?ÿ0à ?ÀÀÀÀ?Ã?UÀÀ000000??Ì0Ã?0000?uuÕU ÌÏÿóytt†óôóø÷ððð<þˆ‘ùîyŽ ov’ƒóôóôóy�ž ütt†óyttà Óttvãtÿtá^áÞ磪rv{|tûüÀÀÀÀãttÿÐà ãttvtttÃÃÀÀ¤C¸ëŸtÏ?¤,HS’6?´È„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ€üüü0£ t]^>§Þt0000¤ttt?ÌÐätttvtt0000¤ttt¶vÖeÐÐÐÐýíÿ8ðð0?8E) T)@E#@bE)F?   21ÐÐýÝÐ8Ð Ð- (ÿ 6Fa8E'D$FoFM 21 ÀÀÀÀ( ýÛ Ð °(ÃÃÀÀ( Ï?((5 "; *)*)*)*)*)*)*)*)œüüü0g>= "!.5 0000( ݰРР(0000* }5uÿ eñ}) ›’óv~´Ø+ík`M ¨ø~]ºè¶ÏWÐÏ|{üHG•בר?ÿ)�Ñž�Qx«ïã½MÙYÚÝf“(¼ü•ÞGÏÃÀ/þÍŽw5±e~Wî¤O�%´VýÑ…?Ì’‘²v7DA­ðü'µÒA€ð äüHG•ÞGu5xÿ Aóñðÿ%Z5N=@%= º+  A6CÏ$#  ÿI0'D3L=#�"# I"C 1¿PÜ `%)\% D ?n'K,) ð }uõWüÿ“/neËw“pocP¡ôúÞö@ØèÐÎ?ševd.&‰1�“”“}M)ÏðË9÷¤£warhÿü¸˜Ã,Ó$Õ�?ÿ™^0Ç%YZïńȥŒl¤�æ»&R¹›ÀÀš™?üffË9. ¸ÏÏÃÀ™bÿžü±IñsÍìhªìÈh4c5Ëuã¸ÅUVUVUVUVUVUVU�ƒ¹dÛe1õ+ÝÒœ¹³|/¿ð0[К0ÿü™fÌÃ,Ó. 00š™jeiV@‡ÅKÏËN2k&?£ËK P@ ¿  Ϩÿ13>Ðÿ€@ UÀA p6ﯯ?ÿú%$? !Tu/ðÿ÷õ.ð &@ }5tÿ|{ ÏÒ-Q€ÞweGJòõ_¸·bEg(j¡HZûüTS?ÿ?@;>#.0 EöVùaE-!*Xåpv�ÃÀ"#·Æ ‚�ºÆ|Âè7�¼Ühil?_´W†åVt‹+NÀ¿8À7Xÿ Qóððÿ/rEdOP-OpH ÿ_>3ZÿÁ†E`M/~šÞ`?ÿ?)9d 5T*`?Àu5uÿ12h�Ãððÿ§µ¡àßÜÛÁ"Ô"SrÀ¢">3É$ϸopÿÿüVUOþ­ÿCJCYã�öõ~ܦ8î{‰†-÷ÈGüO¦UÎÃÀOTy�V[ÿåöMNoZÐÆb?ÂÉFè$¼`á‚óÿ¥šÙ=éð&#üVUO¦Uu5deÁ ðg~3$'$UDYÏ,+  Ð:*+$]*W&EÄ�€Tð&Q/ö!? ~ÿìÿ1"_ 89& ðÝÿÿ3ÿüÌ/'//ˆ'//ˆ'//ˆ'///ÏÏ3?0/00/`(o/`(o0(o0(000'//ˆ'//ˆ'//ˆ'////0/0/0/? //0/`//`//`00(o0(o0(o0(000'//ˆ'//ˆ'//ˆ'////?p/?_Ð/?_Ð/?__3333Ÿÿ€ÿ ``@?p0_?p0ÿ`@00Ÿ@0000(o0(o0(o0(000'//ˆ'//ˆ'//ˆ'/DQÿÿÀýÀÿ3 ‚~˜H0ÿUUÕU ÌÏÿÀÀÀÀÿÀ¿À¿À000?ÀÀÀ¿À¿33ÿðÀÿÀ¿À¿À¿ÀÀ üÀÀÿÀÀÀÀà 3ÀÀÀÀ?À3ÀÀ?ÀÀ0à 0À?ÀÀÀÀÀÀÀ?ÀÀÀÿ0à ?ÀÀÀÀÀÀÀÀÀÀÀ?ÀÀÀÃ?ÀÀÀ¿À¿À¿À¿À¿À¿À¿À¿ÀÿÀÀ00ÀÀÀÀ0000?ÀÀÀ?Ì0Ã?ÀÀÀÀÀÀÀ0000?ÀÀÀUUUU€  €€! @ @€B€@€B€  ÿÿöøöööáöööáööööøöööøööööøöõöõöøöööøöãöøöãöøöãöøöööööööõõõøöööáöööáöööáöööøöõöõöõ…÷õöõöõöøöãöøöãöøöãöøööøõõõõõõõøöööáöööáöööáöööøöõöõöö„õöõ÷ø÷õ÷ööøöãöÿÿüøöãöøöãöøööÿÿ77%&%&%&%777##$$777õ&&777$$$$777ö&&7ÿÿü77UUU00À©«©©« ©©« ó ©©«©©«0À©©«©30©«©©30«©©«©ÿ ©«©©«©0À«©©«ÌÀ©©«©0à ©«©© ð«©©«©UUU000Ã?? ? ó ?0Ã?3<??33?ÿ ?0Ã?ÌÃ??0à ? ð?WUu¤«‘MÔ‘2VoÏÿœ¢1¦hV§ZóÌ „¤tt ó t¤tttrtÃvurãtÿÿrãô€+ýÿÿù‘Šf¶tß rãtrtt0Ãtt¤ttÿÿtΞ4_ÔUóA¶^(ËÌtIJ¤t ðtt¤ttt—•µ*!!!6=0E\Ïÿ 7B /óÌ ET7** ÐýÝ °*0à ( ÿÿ (/EE,XEÿÿF) 9,En ½ÝÐ(0à ( ÿß GF- Ep;.EZCD ( °Ðý½(7"ê£g�óû$ ΄Yçé�¯�ÏÞCg1 Ì˸ÿü)Zo@:<>@*,.0 "$%      EC&E,.(68*  2,:<.   60>@2$   2 824:<*$ *,24" "$*,       U S.U460>@*  2,:<.   60>@2$  2468&(*, A      53&5,.(68*  2,:<.   60>@2$  2864 >@.$  60>@.   60>@.            1   . 60>@:,   5365<>8FH6(  >8FH2$  :4BD2$  2468&(*, =      53&5,.(68*  2,:<.   60>@2$  1/218:4BD2$  :4BD2$ 64 >@.$   * 0       =;=    53.5460>@.   60>@.   60>@2$  2468&(*, =     5 3*502,:<.   60>@.   60>@2$  1/21824:<*$ *,24" "$*,]  535 "*,"  *$24.   60>@6(  2468&(*, A        5 3&5,.(68*  2,:<.   60>@2$  2468&$&(.0  &(  A   9 7*902,:<2$  :4BD.   60>@2$  2468&(*,  T18_packed T18_packedXÁ¤06À#Ä@An$ÀÄ   KAKXÁ€D¤06Ã@A€#Dn$Ã�Ay ýÿÿý333ÿY<Y;<YYYYYYYYYz<<YYYYYY;ÔYY<YYÔYYÌÿÿÀYY˜<<+++ 4,K-:ÿÀÎÿ @ÿÀÀÿT,E,?,?,?l;,WÎÃÀD"=ðÀÀÀLEOÕßÿÉ_ðI„Ö¦ÏÏÀ„ø�xÛ °ÃÃÉrqr�žïšj" 434stÇü¼åÝoÍÕƒðïø<< "!"!"!"Å.-B-B%&" ° ° ° ÿ2$?ÿü#$#$56ƒ, ?ÿ$+$C NŸ�ð8ôà ÿ °ÿ&#ÆA.A2EH5ÿÀ'#`'ÿ�ù=àð.#UOÕßÿ�c¥$‹ñ�ÏÏÀ‹ÏSÛÓSÀÀTSÃÃÃW½éê•ÜÛé® �?@?@)~ÑÒÑýþ>í¡¤Øˆ\òŒ^<<aœ;abÛÜõMAUÿJK:ÏÏÀK:K<0H``}<;N;L-.2›ü1!:>? -ÃÃÏð!~?@ÃÃÃEMUÝÿè JâÜBÏÏÀâÚFàÔNÞÃÃÃò(æåæÞÝdüððïí… Ÿ ŸfeÖPIÛáAÛáâ<<!ÀUÿ<ñ?´DCDPOFE1*ÿÿ­(]ä³AN¨?@?@Ï?‰Šm| ²±ab À Qÿ<óG!"!$#&%~Ï? G'&%$#4À3Uÿ<ð?ÊÍÎÍÃÄ\[ñ@²ÿÿ¨ZÛ%”{™‚Ï? t°¯ÐÀÏF44@ÿ€ë:²ÿÿë:9ì±9,@ &@ÿ`@?@0o@0o@0/0o_ ?_`@Ÿ`__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@0o@0o@?À@U&cÿB@‚‚��‚‚~�€†€UÌ0Ã?ÀÀÀÀÀ 3ÀÀ?ÀÀÀ?ÀÀ 3À?ÀÀÀUH!ØžÆÎ‹@XÁ@Ä€¿UÐ    "$"$    2<>@:8   J<VXB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4 U        EC"E(*$24&  .(68*  2,:<2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E864 >@.$ .068&  &(.0 -53 r¹     #% 4tŸ&Jt5ntnt.(68&  .(68"  !"$&(   *682 :4BD:,  (*,&$   6(BD2 :4BD2$  (*,&(*,  µ      =;.ná  71?A3% 75 ?A3)  ;5GI3! 4 23kØ:4  .(682$  :4BD2$  2824:<*$  ., 68&  *( 24"  9         53"5(*$24&  .(68*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%864 >@.$  20 :<*  *,24"  T18_powder T18_powder�Â�‚2À#Ä�BR¸ÀÄš8š�€D�‚2Ã�B€#DR¸Ãf8^ õýÿÿ3ÌÌÌ©ªª©©«©«ð Ìÿ:ã©«©©«©©«©©«©ª©ªª©©ªª©©ªª©©ªª©©«©©33?ÿ«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«¬«©ªª©©ªª©©ªª©©©éº®3ÌÌÌ*è`@`”iF”o`Z ZŠiZiZo33?ÿ*þ€diF”iFõ¦•¦•¦•� *ÿèF”iF”oZiZiZi� *ÿþ€diF”iFõ¦•¦•¦�  *ÿÿèF”iCOZiZiZi–_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© 3?𩪩ª©ª©«00?ÿ©©ª©ª©ª©ªÿÿ𩪩ª©ª©ª©«?ð0Ããä©«©©«© ©«© ©ü 0ãä«©©«©À©«©©«ÿ ãä©«©©«0ÀÀ©©«ÀÀ©©ÿÀÃãä«©©«©0©«©©_UUUTSTSTSTSTSTST7S 3?ðS00?ÿSTSTSTSÿÿðTSTSTSTSTV?ü0Ã9? ? Vÿ 09?Ã?Tÿà 7?0ÀÀÀ?ÀÀVÿðÃ9?3?ÿÿÿÿXCŒÁ@~‚93z.57x%WXËËË˸°O‡=GÔSƒÔA�±Æ‡…‹n^ò±ƒ£ÌšA–&ATºšŽ¢ ¦'Óô·›c�¥UÑá ÜÈÓç4Ü<€€%N0P0A’0AÄTº�VüÑA–üÏA–üS]P•)«zx¡{âÍêùî‚€>~%0P0N2 rÄAÚüìAØ¿ªAØÁªAÚ¶5×à\'zÇYEyO—®™<€<`rA rr5¶ùƒå;&…¡&ƒ¡=]A£õÑò)«z„-òù ¨xÐË\>>Û´uöwø¹ö÷C_ãA_F܃HÜëÛº®'(- #!yyùg‰1QŸŸ V#F#P!NFB@>S$G#'3-ówwñ1L¼ü¼0".2((($a"A!%1ÿyWQ/Q�o�2".2(((&i =#ÿù—uñQ//ð(ðHñH6",.((($g =ÿÿ{wQ#/+#���ÿÿÿÿd o©íT‰ˆ&TÐЃ¿Z3ùFÚ•àºëÛ›õY¾ 'í~çf0Vô|šÃi{°Î�u¦Å¯ª@]¬Î… ÔÛ×AæxCÏ[!D)”80,Mzü­»Ûg¯åÿ%ܵ|»6@1׆±;^; L•ÛvX�¤/YΕ`¢\aw–”(¯Ž"¦Ç"rÛjb4�B4ì*¶4¶íCœŠ&¿Á2"nC³²ÂÖm¬´·Kâ2-çšýú-Çö›å}K‡§÷�"áqþÎá2xèÇÊ}•|y‹û“•]–\D•Ÿ yM~d‰7OÞ�ñˆ»¸Ð4•\C› @‰DQªªªªA`4Ò#4ÒÐ1ÿ?ÕûS¶oMOo ßo¿oó"6H+T2�ù_•ù_•xùöùöùöÿPrBñ$„R“ o³û?³û7oŸoŸoŸoõ'DJPE2°û?³é>“–ûöûöùøÿ20@"òL„PO�“Ç<x}�Ÿ�Ÿ�Ÿÿÿÿÿ  Ôö�­�J Y‘`¢B_¸Õ¥5.5h™U`(¢ïtM§,¥ÞûvL‰Õõ戫ÌPâ,„è‚~äZÕ[E³¿»’¡õíü7ÏÉÌ-¡j.š�=o'Ä—ë;�ÌË=ÐILm¨Tœ« ØïXß±>p¸­qÂÊžµ(Ìz}e¤y:‚U�'ô!ÑôGaªÄý1»ýD¬ý 8º«[loP~eÊ2éôh{ÝšÒ!T©>Ö�(2³žŸÐ�~¨µm>Êÿ=(�áw#»å‰Øc߬W° 0Ë<�ÈbÛdeY¼'²gÙ®Šùp¦Øÿ�’«×_Yµ êcæ†ÞV¥Y–#!#ƒƒ!À˜á1¡oDdF{ÓÈ a 1`1`0@1Â31º®= j�á® 1`1`1ÏJ‚ (!###Õu}ß\ØóÆ?üÿ/ºsŠÕ�²µ=ÿ1�VZ·˜æ–#³ÃÜîïÃÿÿð?n2ãFíS›2ëì aHG¯Þ^ä˸¨LTPˆÔÿÿüT,Òzü®®+ûÎφö¥Yþ¥úØÔ¥ÀªÃʨ¬#£,’~ I¶—Àá†(xouY¿©*þ¦ß‹’¼S5ómf[U¶t´8a šIùÐtÙò®rÎL a†¶�Oo�%&ÿ�ÿoõ(&w@00Vùöûöûø üîŒ0�Ÿ�Ÿ�¿ ÿ»+0výøùøû ÿþŠÀ 0 ¯Ÿ�¿¯¿   ¯mÛ¶/QQ‹42=A00H)ïfÉdfǶÿð444ædPúØÿö%:˸%JúÌo.7’÷f úS¥úÿð@@@“Å¥0æÿÜ›Q3­ÒŒSG-¤ÆÝ¡¿ï²³/ÿVVV4Û¨ ¹€ÿFÑÑQ˜OŘ “a©Âsü:Ë’ƒÿÿ%```!•§UY–e=ïôafon ´nÎÿ ÿÄ����! 0û/b ?ðý_Õý_[Tð``` @˜ ÿ,Y^“+oÕÿ�øü &Ï*UX Eðû_µýeXÿ  €Ë+V¯ñÿ�³û>qpi^ÿ˜õýÿÿ3ÌÌÌ?////?ð Ìÿ?0000/0/0/0`@0033?ÿ00(?////??0000/0/0/0`@0000(?////??0000/0/0/0`@0000(?////??0000/0/0/0`@0000(?////??000/0/0/QUUU0ÿ0ÿ@ ÿ ÿÿ€ÿÀÿ Àÿÿ_UUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿À¿ÀÀÀ 3?ðÀÿÀ¿À¿ÀÀ00?ÿÀÀÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿü0Ã?ÀÀÀ?ÀÀÀ ?ÀÀÀ ÿÿ 0?ÀÀÀ?ÀÀÃÀ?ÀÀÀÿÿà ?ÀÀÀ?ÀÀ0ÀÀÀÀ?ÀÀÀÀÀÿ?ðÃ?ÀÀÀ?ÀÀ3À?ÀÀÀUUUUfffB€ ™™™°$�@ @€€H€ªª©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«©ªª©©ªª©©ªª©©ªª©ÿÿ©«©©«©«©k *ÿþ€d444õ¦•¦•¦•¦–ÿÿ«ÿ Ìãä©«©©«©ÀÀÀ©«©TÿÌÌ7?ÀÀÀÀ?…$HT8žÉ­ïмöXò·y"6âN'>~>™øwø¹Ç¹Åùƒ$H˜ƒfFšÇfŠVŨHÿÿ0ÏÝ>'ÎŒzk6$(,(&($i"=%ÿõ·uðQQP/+!ðHðHñJðHÿÿ2$(,((&$Õ4ÊvVÇÛ£“†Œ>ýo@³/× =¯Ö´ VM@�e²�—† ™´ÿÿ‚¢#‘¶zܯz�ÓC /#HLe8ð ÷ee‡    ü¢ ¯•Lt_üüŠœhn—Ðͺ§ÃYåþ19MÛìef�åŒÝ¬sËžh±iâ7«˜ËàEÿÿL/½á'dpe´ € 1B1B1B1¤{k]éžMª¢F·ÁæC@ðÀÌ+•ôqw«gµ²nÐb`†êÿÿf¡±oËŠì‘b¯óC/0ºûúùøùöý  "ü m>Àÿ�³Nà…útª¼Ÿ!Ƴœ`_nùðVVV4üð Y€û*WV e?ð ÿÿ÷©i^Æff`0`@0000(?////??0/0/0/0ÿÿ`@0000(U€ÿÀÿ ÿÿÌÌ?ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀ@@€âø˜ïÿG�Â@Ä€¿ŸÐ            &("  &$ .0*   ., 682(          .8                  535    "$ " *,& M                  )')    "$ " *,& =           )')    "$ " *,& =           )')    "$  &(" =           %#%     =      T18_rockT18_rock@Àf¦4À#ÄðAn*ÀÄx+x@À€Df¦4ÃðA€#Dn*Ãs+k ?ð?úéêùêùêð<Ïùêç¹¹¹ð?êùê?ð?\[>[>[ð<Ï>[^ƒð?>[>[㩪ª¬ârª¬ªärªª¬ârª¬ª©«¬«:Ïüürªª¬ârª¬ª7TzxxVÏüüx÷óÐuwwñì/ˆ†–/ˆg±ˆ†á3IJ±ÿÿü»ÌˆA=І/]9,_/.a-2góR?*”JÎ_#ÿóü{rRÍH ;mA�?ë& ;& Ãÿÿ÷ø I’scC~s%3t ÐÊ3[�ÿóül1súH9�hÄ?ËPw Ãÿÿ]^]OŽ>]ùúè^>à ‰L;\˜Ò‘ AÿûücHX<£>›H�?ë/:DA$ ü¬;o˜?ð?`_ @_ @_ð<Ï @_ÿÿ€ ð?@_ @_4Ïþ‚~ ÿÏüÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿ÿÀ¿À€Ïüüÿ¿¿¿@ÿ¿¿¿„0„"`x@÷àrõëÙåD6aÐA@Ä€¿}Ð  "( "( "( &, :@ " T19_groomed T19_groomed´Á…9À,ÄœA�‚2À#Ä   ‹«‹´Á€#D…9ÜA€,D�‚2Ãë» ÿýÿÿHG’IG’IG’IG’HJHJÛJHJÛJHJÛJHJHJH‘JHJÛJHJÛJHJHJJHÛJJó3?üHJHJHÙHJHJHG’H‘G’HÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJ”G’IG’IG’IG’HJHJÛJHJÛJHJÛJHJHJHJÛJHJÛJHJÛJHJHJJHÛJJHÛJJHÛJJHJHJHÙHJHÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJ”G’IG’IG’IG’HJHJÛJHJÛJÿýÿÿ$$$$777#557ó3?ü5&%&77555&$$$$777555777555777555&$$$$77UUUU ü0骩«©©ªÿÿ©ª©ª©ª©«©©ÿð0ª©ª©ª©«©0?ÿð©«©ª©ª©ª©©?ÿð3«©ª©ª©ª©©ª©?ð00ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ü0©ª©«©©«©Ã «©©« ©©« ©©« ©©« ©©« ©©« ü0©©«©©«Ã ©©«©UUUU ü0ÃSÿÿÿð0S0?ÿð)?ÿð3)S?ð00?ÿð0S0?ü0Sà ? ? ? ? ? ? ü0?à ?UWUU ü0ÃÒÒÒ‹ÿÿÒÒÒÿðð‹DC´+JÖð?ÿð‚PX§¨§¨§¨§PX§¨§¨§¨§Poÿÿ004IÒúùÒÒ?ÿð0‹ÒÒ0?ü0Ò‹ÒÒÒÒÒà ÒFÒ ÒFÒ ÒFÒ ÒFÒ ÒFÒ ÒFÒ ü0ÒFÒÒÒÒà ÐFÒÐUWUU ü0ÃTÿÿÿððT[,-ð?ÿð   =nÿÿ00Qf?ÿð0T0?ü0Tà @ @ @ @ @ @ ü0@à @P @ÿóóbaÈ/ât'+T"ððÍ¬×Øð?{£ßxÆ}ºÈ/ö~Œ¼ªšêéó_ÌküP @óóL/NO,#ð�ð? g ÿ¬/ J@>%$Ó Õ_UUü—3Ì—™Íÿÿ—˜—˜—˜—™ÿóóÐ5èü¡4äî.l¥:2è±²±²±²±‰Ã±²±²±\Ñ‹ämÈý�ï—Eø´Óîàß?ÿðÍ—˜—˜—˜—™??ÍeËš21? 34™š ™š ™š ™š ™š <™š <ð·ÍÎüüÿš2134™e ršŠÕWUU„¿óó'AB'H A&?"Aÿ??@ 4 ! �€d{P @?ðð% 4��KLð ð?aÁÛö訯Pf‹áº( ^]ÃÍÎê @ð?u.ÿÌO H D'$ƒ P@ÿóóÓÔíö•–þåÌðð¡)TS@?-ÿ?f�kr óÓÔP@ÿóóL+`Û\,W,ððñÿ}ÿÿ////'//ˆ'//ˆ'//ˆ'////?p/?_Ð/?_Ð/?__Ÿÿ€ßŸÿó3ü€ÿ `ÿ ``@?p0_?p0Ÿ@00Ÿ@0000(o0(o0(ÿðÿo0(////'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(////'//ˆ'//ˆ'PET!!!1‚ò‚~` ÿHHH@||‚‚|~‚‚~ ÿUUUU ü0ÃÀ¿ÀÀÀÀÿÿÿÀ¿À¿À¿ÀÀÀÀÿð0ÿÀ¿À¿ÀÀÀ0?ÿðÀ€À¿À¿À¿ÀÀ?ÿð3€À¿À¿À¿ÀÀÿÀ?ð00¿À¿ÀÀÀÀ?ÿð0ÿÀ¿À¿À¿ÀÀÀ0?ü0ÀÿÀÀÀÀÀÀà ÀÀ?ÀÀ À?ÀÀ À?ÀÀ À?ÀÀ À?ÀÀ À?ÀÀ ü0À?ÀÀÀÀÀà ÀÀ?ÀÀUUU    ÿÿÿÿHJÛJHJHJHJÛJHJÛJHJÛJHJHJJHÛJJHÛJJHÛJJHJHJHÙHJHÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJ”G’ÛJHJÛJHJÛJHJHJHJÛJHJÛJHJÛJHJHJHJÛJHJÛJHJÛJHJHJJHÛJJHÛJJHÛJJHJHJHÙHJHÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJJHJÛJHJÛJHJÛJHJHJHJÛJHJÛJHJÛJHJHJHJÛJHJÛJHJÛJHJHJJHÛJÿÿÿÿ7555777555777555&$5557775557775557775555557775557UUUU ©«© ©«© ©«© ©«© ©«© ü ©«©©«© 0«©©000«©©000«©©000«©©000«©©000«©©00«©©« ©©« ©©« ©©«UUUU ? ? ? ? ? ü ? 00?0000?0000?0000?0000?0000?00??@ ? ? ?UUUUüü ±²ùúFÒÐ FÒÐ FÒÐ FÒÐ FÒÐ ü<FÒÐÒº< 00¼ÒsÐ0000ÒÒsÐ0000ÒÒsÐ0000ÒÒsÐ0000ÒÒsÐ0000ÒÒsÐ00?ÒÒFEÒ ¼ÒF ÒÒF ÒÒFUUUUüü @ @ @ @ @ ü @, 00@0000@0000@0000@0000@0000@00?@?  @ @ @@ÿü=· [‚Å<=wö{� UU ™š ™š <™š34<2ËšóóðGHGZGàΚ™š™š™š™šÿÿ=[*p­ËeÌzš342ËUUa!� Ã0GH��óóÀ����à��<3IJ‘’ÿÿÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(HH/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(oÿÿü0(o0(o0(UT||~‚‚‚~ ÿ‚�‚‚‚~��€���€UU ÀÀ?À ÀÀ?À ÀÀ?À ÀÀÀÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀUU% ÿÿUÿ¨Á@#Ä€¿�Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64  >8JL:(  B<JL:,  B<JL:,  $&(   &24"    &24"       >< FHB8 JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<68:<*,.0 "$5        E C&E,.(68*  2,:<.   60>@2$  =;2=8:4BD2$  :4BD2$  :4BD2$  %#2%8:4BD2$  :4BD2$  :4BD2$  %#2%8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  28&, A        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28&, =        53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28E      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  A    5365<>8FH2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$   T19_packed T19_packedðÀÍÌ4Ã@$Äð@Ãu3À#Ä   u uðÀ€#DÍÌ4Ãð@@$DÃu3ÃÀ ¸ 3ó3?ËÌËÍËÍËfËÍó3?ðËÍËÍËfËÍËÍ3ó3?2124244™24ó3?ð42424™4242` ! ïÿðÿþÿÿÿÿÿÿÿþ/ÿð/ÿÿÿÿÿÿÿþÿþ½¿¾ØÕ¿À¿À¿À¿iÕ¿À¿À¿À¿iT¿=æäåehäãäãäãä´häãäãäãä´Îæ°?ð²>¦zÁðÿdE±u™©?ð) %ðñ 4¢ …°&+pŒG{ ˆeeef ee`B%H?ðà б²ðó¢~àÜœðð  ?ð�=Îë s©?ð2 #$23ó3?_`__Ÿÿ€ßŸÿó3ð€ÿ `ÿ ``1‚ò‚~ ÿÿðÀÀ€À¿À¿À¿ÀÀ€À¿À¿À¿ÀÀ€ÀÀ�  _�Y!ôäÿ·ÕðÀ@#Ä€¿zÐ     *,"    &24"   T02_powder T02_powder„Â…ëŸÁœÂ„B×£Ð?(Âãã„Â(B…ëŸÁ„BœB×£Ð?UM uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ìÿ{=-/-^/-^/0/º--/-^/-ŒÿüÌÌ-/-.0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.©û®»3ÌÌÌ.ø`@`”iCO``@`”ojde:ððððð.CCCO:Sz   .44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿ.444ó¥:S¥z .ÿøCCCOzßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«©3?ÿÀ©ª©ª©ª©ª©«©©ª©ª©ª©ª©ª©ÿüª©ª©ª©«ãäü30 ©«©©«©©0À«©©ÿ ãä«©©«Ì 0©©«©©À«ÿÃ3ãä©«©©«©Ã ©«©0?ð©ãä«©©ÌÀ0ë©©«©© «ü30ãä©«©©«©ßUUUTSTSTSTSTSTST7S3?ÿÀSSTSTSTSTSTÿüSTSTSTV9ÿ33 ??0ÀVÿÌ9?Ìà 0?ÀTÿó307??à 0?üV9?ÌÌ0Ã? Tÿ337??ÿÿÿÿX'P¡ôwIÉ;�jt Œ‚Q˜‹kkÈ0ÐIµIw:ˆ¨k6(¶¢ñÏdlÿ¶¼DwÖÅ‘NÒ4a`ðüF�ÒYc eÝ÷Û(ÁAXÃÿÁ�y…yIw‡wÃyØ¢yØÞwšÞwÖJÿ4<�7ÊPf®icÏX;X0ÿÁÃÉyIw‡wIyÿyØÞwšÞwÖày؇WeV¯ë#×$=UãqÆCýÃÿÁøyIwIy…yÿyë¢wëf=Ø¢yëlŒÿêòšò�YciD¶i­WÁÃüwIµ µIwÂ;Ø¢yëf=Ø¢;š ÿyÑ:³å¾làq³ÿæÿÃÁ¼µ µ ñ.ñÂë»®») ! # 1;93»»û‰‰Q& Éëûòg$  R3T7V5X3\1Z/V5Z;O )) wŸ °   &(( AïÿÿýÙwðp###�pð)°)$&(" 3!!!+ÿy°)°/Ïÿÿ"$($$)%#-   �p�ð+°+  $&$$#1!ÿy#+ÿÿÿÿÍ!ûý„sA k Â;¾Ú>¥Å8a��¢ŠÑæ)`2Ü£Ah€*�èF±7ž&�ËÅί ’’î÷ÔšSî÷Jµ™0Y!d('³æªqr©ªqrŸÃG»û;“Њ:ðŠ-7.vbŒ,ÊÑŽ°*A…œ A:«ªqr=>kùE‡ÐŠ:Ã"j‹} ‡5DñðÂ#­�{ëK/à]áI-he .-¼èÅN V[+~uk6yµLcÔ¤tÿmY>Bå,3·›õ%ˆU�¶V[+D�ÇÜFkq[9ÚÍæºšÿmUsð�ÎmI*¦YÃŒT�OÂoªªªª0ä¶Pó£TÐñÿ_ø‘2¶ô´ÿß"9ßoò0@"ðo£z�6¯xxxyId–Idý1D8$È!„ð ÷‡!‡‡”–Id”osS4"ò&dh͆™Ïüã?Ì‹�6Àÿ_ÎàÂŽ^’ˆOîLÁ‚ 8¦Ÿ¨^™eªðãâ&”1õ0}„$ ý €`@Ÿÿÿ'2 af ¯ššš‘%†c$ê¦ð*ù©'ÿ@ ˜ëß Wh Oïššš‘+`B „H¨ð ù+É©« ô6D"h¯ïššÿø-uÿÿÿ3ÌÌÌ'(W///?_ð Ìÿ?'/X'/X'('_00(?(oÿüÌÌ0('@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('(QUUU@ÿ @ÿÿ ÿÀÿÀÿ0ÿ0ÿ ÿ€ ÿ@ÿë™f™0/0/0/0/0/0/0ÿÌÌü¼¼À /  ¼¼¼À/ /0/0/0/0/0ÿü/0/0/00ÌÏ À##0À 0<ÌðÀ#ÀÀð À #À,óÌ� à 07ü```ð` ñfo0].0].0].0]¹¹¹¹»ü¹¹¹:S¥:S¯ÿÿü 0À©«© 0À;šà=`Þ;^å;"PóI¨üÑð-òËÿ   ü&&$KpH·ÃKïUÇáDG›ù~ümDžkf¶idŸI3HÈd¾Ã)Ù¦¤bžštß!kÜüÛ-q’a'z�éKAŽ´ýJËð#Æâ44ÉüÔ\Ú�ˆØm¤¿I5@  '@'@'@'@``@00ü00(  0Àöç Áþ ó„Â$€¿ìÐ            &("  &$ .0*  *,24.(           "0                  1/1     M                        r­                                ! s¬                   r­                                ! s¬          T19_powder T19_powder�Â…9À,Ä�BRx%À#Ĉ6ˆ�€#D…9Ã�B€,DRx%Ã6ú uÿÿÿ3ÌÌÌ©ªª©©«©«ð Ïÿ:ã©«¬«¬«¬«©ªª©©ªª©©ªª©ÿÌÌÌ©ªª©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«©ªª©ª©©«©ª©©«©ª©©«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«ª©©«©ª©©«©ª©©«©ª©©«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«ª©©«©ª©ª¬«©ª¬«©ª¬«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«ª¬«©ª¬«©ª¬«©ª¬«©i뺮3ÌÌÌ*è`@444ö `•¦•¦�ÿÌÌÌ  *CCCOZof–FödofFÿÿ*CCCOfFöŠdofFödoÿ*d444ödoŠeÄo\FõÄo*€d444õÄ�o\FõÄo\FßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©ÌÿÀÀª©ª©ª©«©©ª©ª©ª©ª©ª©ª©ÿÀÿª©ª©«ãä©«Ã3 ©©«©©À«©Àÿ©ãä«©Ã3<©«©©ª©«À0©©0?«ãä©ðÌÏ«©©«©¬«À0 ©«©©ãÿ Ìä«©©«©©0 «©©ßUUUTSTSTSTSTSTST7SÌÿÀÀSSTSTSTSTSTSTÿÀÿSTSTV9ó30 ??ÀÀÿV9ó3<?UÀ00?T7üÌÏ?SÀ0 V9ÿÌÌÀ??0 ÿÿÿÿÛ‹ï¬üvwMï*¤™‚x®V˜XVíVæV£Ããƒã�ĘúB˜kVÚúÚUåúÚ—£üÚÙ.lN¢Ky3Œ= ¹¼”¼Ç 6 »7ŽÐVVX,�Ø?ÚƒÚA�üÚäB˜û)¤‚Vwkb‚˜wk ×—Nã3ù%B¥£Ï@-b ˜X˜VnAÚ?˜˜A˜wk"šwm"Ę7­"Ę5m¡$xákx”�`¬lÛ Åšx˜VXðAÚA˜šaÚ5m"@ÚA +b˜ANm¤V?L+¤z‹„‹nz¾iÀm¬¸¹ ù+˜˜X͘A˜˜º?L¤-�ŽÙ­ƒÐ—΃ÐV—ë뺮' ' %% ')#uwõgQPpðQÅåñhðHP'L)R%R#JF!H!F#q";%1/ _kPF—"‹rFÿÿ .2*&$"q$A'/+rFµirF·$oÿ *.((($s&M%')% wñPppõ"kP$oFñB�$""$(.,"u&Q+'%! 5wðpppð$oHðDoHÿÿÿÿZÆ*þñTúì¶î¹LÄ|ît×/]:—8µ€} ÷ŒþH&íÃáCßµµ©µ'+õµh1p‹¼ÈöüN -Üd­JÊKžëòF Ç1I¾5}9 W™bÃJŪgÔ1Á¢©ºøƒ[öþTEmV]ºƒ ‰Èäè!éWÔ�a2Rö@ÖÕØ6vñöþHD¬ÌHD"Jo?D# * °ˆ9@zvèH`F\ÉÓìÝ –3alʾ¶µn(¯°–ÿkÈ¢ghÊÜŽðÜ�à;ÜA…Ü9Ã0á×VÀetüe×ÎÃZ‡96|iÃ|î§Á~}Ed1òrC ¶%"‚Ìá̵J¸ªªªª$Q� "°E­0òPegey(ôöø÷ø÷øùRP @ ö–¤Õ¯LOVxT]�_9"Õõ{_W·Sr" B"ôr‚·�NOVVVPWµõ {_Wµ÷yW5 / ˜‘VµeCCy_4Ù_m—öÛuO1–X�³CCCvù_MµôÛ_M¹ÿÿÿÿþƒ~¾Îßþf\õýòüp>D UñMcŠ®iô¼ò@/ˆ¥ad(Þ™Ñ~åÅÑ–ÑñѬË/RK�]›b¡–ùY ŽBœñç96¬Q 5Œ-L8j%éÂÆ©¾+—Š¥Èed‘1v>[nÏ 6…Ãæ?L çkÔÄý¹†½ìV39Â�¼343Ùnå?Ï 6ëæèŽ�ëæó0Tuæý²#ÀÀû�ð�ñ'¦ßHÛƒŠtr¯q@J øžKL�. 9Ï„7ÐKçèƒ@‹È½ ûèÈ}kí“üé÷wB¾F¨#b#\oA<0ɈA�P~þ寃jmíâ\KÆÏq’Æ‘ÅÕeUe•$@/à 0#B0"0®ÀÄ€œYð 1MSÀ5à LSÅÓ@`3 @Wq\_>Ò(H€$`0õu]×\ü 8 ,Z€TäG3ý”w+”,œ¤”Ò+Q[¾Þb~YßuçR÷ã0�Hò= °?ÿÄ6)C‹±ItL<€pþÅãˆô#ßÇÏ0Yhoº°ÿÅ‹¯Q”ú‹¯ùúƯ´Œª6'=ÿñ‡Ìÿз†Ô(ÏP ËÆÅtÛ´;4Óè ;Çÿÿ|}êµbÔ‚ù @€ÿŒËµ«/oâj‡hQOVHQº¨� iZš;(ôúøùø÷øýPQA`‚À. ¯9&÷ó�9×u’&$êÀ.9Õõ"}_Yµõ›uW""+°.ÿ "Vý_oÕöû•#3O.ÿ _oÕöýo» o×Uu=ؾdëT4¼Ò©n œ["Ý̨-cò±˜QRÕiöñ0Z4ŸMÙ€òìh fû„}¦E‡óÿñ€j€‡(iú:É?`]ïÂ}Çz—#tâ4#ÿÿð`ÒÓ=>;ãÙ•à„ ?ÿÿ$OS«]�'“:Ê5ÿÿðmàd=cd·÷RQ€`ÿÿT8U;ÌÙÔ@ :ô«T§XT§¨€`ZZ–iðñÁOòUVwl�0òp‡�íÒB™€ôvÄÿÿ*QToÞvVQ `I€ïÿð.IHOvVVP„ 4#ü4=< õeee€`/1¶6°óCCC€`uÿÿÿ3ÌÌÌ?////?ð Ïÿ?0/0/0ÿÌÌÌ/0`@0000(?////??0___`@0000(?////??/___`@0000(?////??/_0G0G0`@0000(?////??0G0G0G0QUUÀÿÀÿ0ÿ Àÿ0ÿ0@ÿ ÿ€ÿÀÿßUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿ÀÀÀÀÌÿÀÀÿÀ¿À¿ÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÀ?ÿÿÿÿÿ?ÀÀó30 À?ÀÀÀ?ÀÀÀÀÀ?ÿ?ÀÀó3<À?ÀÀÀÿÀÀÀ0ÀÀ0ÿ?ÀüÌÏÀÀ?ÀÀÀÿÀÀ0 ÀÀÀÿÿÌÌÀ?ÀÀÀ?ÀÀÀ?0 ÀÀÀUUQUfffB@€ffffÀ@�€€H0$Ž H@ w©«©©«©«©§ªª©©«©«ð?ü:ã©«¬«ª¬«©ª¬«©ª¬«©ª¬«©©«ÿð©©«©«©k*èCõÄo”\FõÄo\FÿÿðÀ«ÿÃðãä©«©©«©©À0«©ÀTÿóü7??À0ššækÁzêk9˜Ï»+KL‚˜˜X�˜šVüƒÐ˜U ƒí˜wíÚ,ûÃkå, ÿðn¼kÁ zk($ (0."y(Q+'! cWuð$�HñD�hÿ$"ÿð "(0."-s“¹çýoíóu»1wfyÍV]^1�e–÷Ö_Qdý®…›ÈÂÄuáð]èZµÿð(ðif3ª4%SfñA1}XIm4´Ý_oµôÛ-·4 #sHÏÙS°à >Œ*ÂÙ„lR­…q¼�RpådÆFýü�PTË�µtbÕf¯–¸˜úóBÿð†kU'A]e�Â`w€1Bt€uÿÿÀ¥DMlĸVù ÿ® @%ýlC¨Ôc:'T±LY„)î‹ÿð‚vx÷Ž”f4%s†ð.ÿ "oõöýOÙT $ŸðU�/ÿÿ_ìã]ÓÖñ ÿÿ¼Àa—«’§µ£€f`Y�&Ïÿ4mpK�7P €f`w`@0000(?////?ð?ÿ?/0G0G0G0`@ÿð0000( Àÿ ÿÀÿ?óü?ÀÀÀ?ÀÀÀ?ÀÀ0ÀÀÀ@�$ —샵ÿ��Â@#Ä€¿�Ð             "$  &("         .8                  %#%     M                     E         I           M           ^Ásˆ   T19_rockT19_rockÀA)Ü8À,ÄðA¸ž1À#Äl%lÀA€#D)Ü8ÃðA€,D¸ž1Ãø%ð 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀçkoÉÇÉŒÅGÇÇÉÆà¬‚‚‚�PJ31çîùo3ççVÿÀûJççço[U[OQ(aI2oKÿÀ(a Ã<3ЉÇÔÓUbaÑe°(_‹L;{°Ã# ÃrC Ã<3ÂÁw_`¿Ø×YMž{³:+‡l6 Ã<3éê`õö˜!¯ôHiò’+#§­Ã# Ã2G€€€€?ð?`_ @_ @_ð? @_ @_ ð@_ ÿÏüÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÏÀÿ¿¿¿„0„0„UUr©èÙèy/eÐA@$Ä€¿qÐ  "( "( "( "( " T20_groomed T20_groomed´Á…@À5Ä�A�‚9À,Ä   ¼´Á€,D…@Ã�A€5D�‚9Ã@¼8 ÿÿÿÿöõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøÿÿÿÿ$%$%$%$999999999999999777$%$%$%$999999999999999777$UUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÀ«©©«ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀÀ©«©©UUUU ÿÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÀÿÿÀSÀÀÿÿSÀÀÀÀÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀUuUU ÿÀÀÒÑÒÑÒÒÒÀÿÿÀÒ¸ÒÑÒÑÒÑÒÒÀÀÿÿÒÒ¸ÒÑÒÑÒÑÒÀÀÀÿÒÒÒ¸ÒÑÒÿÀÀÀÑÒÑÒÒÒÒÿÿÀÀ¸ÒÑÒÑÒÑÒÒÒÒ¸ÒÃÒÒ®­ÀÀÿÿÒÒ¸ÒÑÒÑÒÑÒÀÀÀÀÒÒÒÀÀÀÀÒÒÒuÀÀÀÀÒÒÒuÀÀÀÀÒÒÒuÀÿÿÀÒÒ±»‘ÒÑ/ýuÀÀÀÀÒÒÒuÀÀÀÀÒÒÒuÀÀÀÀÒÒÒÒUuUU ÿÀÀÀÿÿÀTÀÀÿÿTÀÀÀÿTÿÀÀÀÿÿÀÀTTÀÀÿÿTÀÀÀÀÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@Àó÷À@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀp–{¬¦%³2.B_YÿÀ_OPר_ž+¶wÖÏ»ÝÆ|`—ùúøóô(ÿÀ 4!¸åðð°TuUWüÀš21™ÀÀš™ÀÀš™ÀšÀ™šž‹)½²‘­äÆÍ'ÿÀÀÐà(™Ãüš3434ÀÀ™šÀÀ™šÀÀ™šÿdnó$ojg› ÀÀ™šÀÙš2ÀËTeUV€@€@€@€@ ’ð‡ó†µÿÀ@�˜@€@€@€3$Y,bs€@€@€@Pý¼ÿÏ´Ü÷ ÿÀÕÖ ðþþ€ÍÎÚú*ÎÒ\`™ù õð< `üÜ  Pýÿÿ `F«( ÿÀ4;<·¸IAŒf’ð6 5PIÿÏ  0ÛÀ oÏÀ  ÿ×ÿÿ/0/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÌÌ??ÿ `ÿ `ÿ `?ÌÌÿÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0/0/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0/PUQU@„„„LÇÇÇ‚‚‚‚È``~````Àÿ„„„‚ÇÇÇà‚‚‚~``` ```ÀÿUUUU ÿÀÀÀ¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÀÀÀÿÀ¿ÀÿÀÀÀ¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀÀUUUU€@€@€@€@€@€@€€€@€@€@€@€@€@€ÿÿÿÿõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööÿÿÿÿ%$%$%$999999999999999777$%$%$%$999999999999999777$%$%$%$999UUUUÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀÀ«©©«ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀÀ©«©©ÀÀÀ«©©ÀÀÀ«©©UUUUÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀÀÀÀÀ?ÀÀÀÀ?UUUUÀÀÀÀÒÒFÀÀÀÀÒÒFÀÀÀÀÒÒFÀÀÀÀÒÒFÀÀÀÀÒÒFÀÀÀÀÒÒFÀÃÀÀÒºÒÀÀÀÀÐÒÒsÀÀÀÀÐÒÒsÀÀÀÀÐÒÒsÀÀÀÀÐÒÒsÀÀÀÀÐÒÒsÀÀÀÀÐÒÒsÀÀÀÀÐÒÒÀÀÀÀÐÒÒsÀÀÀÀÐÒÒsUUUUÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀÀÀÀÀ@ÀÀÀÀ@P?ÄÁÀÀGHGà—GHP?À€UUUUü<Àš2134™ÀÀš™ÀÀ?š™§Å»ÀÀÄ™ÀÀš™ÀÀš™ÏÏÀš+mšJõüÀš21™ÀÀš™ÀÀš™ÀÀš™ÀÀš™ÀÀš™Ïüš+mš34ÀÀ™šÀÀ™šUUUU€@€@€@?  @@€@€@„€@€@€@€@€@€@€@„˜@€@€P!,,À0CEeßõÿõ.02 &_]Ÿ¯-áD¢ÖFY“­_*XŒ²ú™a‡'ÌÉ2i÷8‹ïpH``ÿÿ˜ðCR÷ç*ó-î�¸’ô©/óÔ4ó  4ŠõÿÌH:Y¢cŒŸlÛ €_LÁ³�Ø~{¾Ž´3 ²Ù„„¥aÁ7¨˜«]r3Ë�ðÞ�ŸA2A0B‹¥Äcð;8nÙ¬ÜwµºACXI \0»Wˆ�ð3&3P3 VCZYZYðP1tvilÿ0ôðÀt?09F+ H`` <5lGL!ÿ™ù½ù½ùUN $&ÿ H d™ €rÿ�4SZÿ¿ß¿ß¿Õ***0��� üóá?6gjW^  ýýýýýÿ1,,,BBBB`8õýÿÿ3ÌÌÌ?////?ðü?@'_G0G0G0G0`@00ÌÃÿü00(?////HHH/0G0G0G0`@0000(?////HHH_GGG`@0000(?////HHH_GGG`@0000(EQQQÿ ÿ ÿ0ÿ0ÿÀ@ÿÀÿ ÿ_UUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÿÿÀÀÀÀÿ3ÿð À¿À¿À¿ÀÀÀÿÿÀÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿ?Àü ÀÀ?ÀÀÀü?ÀÀÀ?ÀÀ0ÀÀ0?ðÿ?ÀÀÀ?000?ÀÀÀ?ÀÀüÌð0ÀÿÀÀÀÀ?À00ÀÀÀÿÀÿ?ÀÀÀ?ÀÀÀÿÀÀÀ?ÀÀÀó3ÀÀÿÀÀÀÀ?ÀÀÀÀÀÿUUUfffB� fffl$$ H € À@€Bà@€ÿÿA†BBDBØ•moom±oom±oom±oomo²opopopomoom±oom±oom±oomBBDBBDBDA†BBDBØ•moom±oom±oom±oomo²opopopomoom±oom±oom±oomBBDBBDBëê,fofofd’CCCFfofoÿÿÿ`ffö,föföf@ô’444fföföUUüãä«©©«ÿ©©«©©ªÌÌ©«©©«© ©«?ð ãä©«©© ÿ«©©«©¬«30 ©«©©« ©UUÿ9?ÿ?UÌÏ? T?ü 7? ÿ?S3< ? ÿÿ"¿ˆ qäÝDkm#Z¼b…»tª‡ü¼b=ütª?(%#%Ü#G"G$G%®v삼ìBùˈåûƒçÂí”÷! ˜ñÈÔ*í¡ûý³š¼ª?&ûª?&µª?!³ò?p%k%Ü#%%E"®±…å³ ç•i �Úk W±ø­LÈïêêÿÿÿYw|“:,Y/-'!•••w pppŒÿŒÿ-- / L,&& _@ÿÿô·—çQ‡+Q‡Q‰1÷w÷ øÏøïø///J,&& ÿÿÂFšÕŒƒ@ubîÃHqîÃ_rZk�,õÏ—(Ý–#ºÿÿÀ½xø²ñf½®ä~q*øXFº6¼Ó´ïÅ€²yüz'_#]*½¡Î¿™&…pšÚ®Xö=Àoñzx–­®­®óuÛ".ç€]ËxTKý¨rq W#õ€Ì埪ºC&½¿&½¿½¿½µ&&vVV[ÿ_ÿ.0ÿÿ¤(Aú0P÷0&@Kùû$ÛûÙùÛP&$00õÿùî"†4ÿÿ ã@ÁLK/થʅKh3\­p6A/4CmÉ:ýÄÏÐckbÁ:6qC`Š…  ž”h8Ø^‘úÓ­ÊZ�lqÑREŸÕ:?ûç$.œû[­›…qõòwy:ìëìëâäÇ‘3<èØ>>k¨>U\Âeö„=ó®¦f81"%««ª@3151 BËôYw2"R®®¢@30ƒ0ƒ_Þ‚€ öõHT  #)ih´c?@�Ê=¯ ݀ç¢�ÜQjšù¯'´R×{¥¥¤ ?�<‹©��a¬k"ÓÀÇR ^'ÿˆ­“öC ý ´VVV}ÿÿ44ÿ_ÿÄ(að4 44÷ÿùïBˆ:¯ol^,}›*¹ü]Föe*�Ìe‹j. ÉæoÑ<P’£P£r£pÏðÿ ÐÇ0úÍ®ÉͲÉDÙ‘¾;3jË–VÐV¨`à��P7*7*7¿¿  YZûËFÿq^ .ß¿ßßßÕ,. €@ÿ@-ýý�nSZ,ýûýûýp*,$$$&ÿÿ?////HHH_GGG`@0000(?////HHH_GGG`@0000(EEÿ€ ÿ ÿUUÿ?ÀÀÀ?ÀÿÀÀ?ÀÀÀÿÌÏÀÀÀÀ?ÀÀ Àÿü ?ÀÀÀ?À ÿÀÀ?ÀÀÀÿÀ3< ÀÀÀ?ÀÀ ÀUU�� $.$Ãô»ÿÿ6�Â@,Ä€¿:Ð            & $&("$&("$&("$&("(     " &(   :D                 )')     "*,&  .(682$  %#2468&(*, }                 535    "*,&  .(682$  2468&(*, U  "*,"  *$24*  2,:<2$       535    "*,&  .(682$  2468&(*, 1535 "*,"  *$24*  2,:<2$       535    "*,&  .(682$  2468&(*, 1535 "*,"  *$24*  2,:<2$       535    "*,&  .(682$  2468&(*, 1535 "*,"  *$24*  2,:<2$  T20_rockT20_rockÀAÃõ>À5ÄðAR¸8À,Äl%lÀA€,DÃõ>ÃðA€5DR¸8Ã!% 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ3ƒ[„«„ ùB‚MMÒù¬O„OÃ(„O„ yY«©(dÿÀ®%ú&( ]Q*e?J•-lÉ+xÝ5ÿÀrÕ?h�h2ôæƒ7�äñZ# M 3èÔ HJ?ÀD=W` Ã0 �Ð�÷òã‘v1Áÿ {¾d� v†Àür Á?ÀD7yb�B(MJqtP¸*D#»Ô!8WbBˆw”Q5ãÄ÷1L&?À6…�Ä�A…@À5Ä   å»å´Á€5D…GÃ�A€>D…@Ú»’ ÿÿÿÿöõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøÿÿÿÿ$%$%$%$999999999999999777$%$%$%$999999999999999777$%UUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿ󩩪©ª©ª©«©©«©«©©«©©«©©«©©«©©«©©«©©«UUUU ÿÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÀÿÿÀSÀÀÿóS??????}U]U ÿÀÀÊÉÊÉÊÊÊÊØÊÉÊÉÊÉÊʉŠr’‘X—’‘�ØÊÉÊÉÊÉÊÀÀÀÿÊÊÊØÊÉÊÿÀÀÀÉÊÉÊÊÊÊÿÿÀÀØÊÉÊÉÊÉÊÊÊÀÿÿÀÊØÊÉÊÉÊÉÊÊÀÀÿÿÊÊØÊÉÊÉʼó¼ÊÊìë Ö»X#(ùäoRÃÊ@Š^ÊÊ^ÊÊ^ÊÊ^ÊÊ^ÿ¼¼¼�—¨IFuUYU ÿÀÀÀÿÿäT$#&%+TÀÀÀÿTÿÀÀÀÿÿÀÀTÀÿÿÀTÀÀÿóT ó‹ï^ÿß!8C@@@@@  ÿ&-0@ÐÃÐÏðïyzzy‹º'ÿÿÀ,Ñà&Šý‘)Ðÿµ$ו?ÿGÞ•gkï;ïøGË¿—ÆÎ&‰…”2±ŠI™Ãð‘’%§Î?HEè’N�ÕxöÀxwá{F&ŒM„xçø98†ÿ|;) .!@ŠòÃ’0÷rÐÝ � å!:µ' û?ß¿¿õ,4{<:%G^IYÿ( & ( ÿÿÿÿ/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0/0/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0/0/0/0/'//ˆ'//ˆ'//ˆ'////?_ÐTUE‚�‚‚‚~��€���€ÿ‚�‚‚‚~��€���€ÿUUUUÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀ?ÀUUUUÿÿöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãÿÿüøööãøööãøööÿÿ99999999999777$%$%$%$9999999999999997ÿÿü77UUU©©«©©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©UUU??????????U}UÃÃÃ1ü1{¹\ÊÊ\ÊÊ\ÊÊ\ÿºº6CJè¾i ·�1„*µ=5‚D_IÂt/ôk«©æo^ÊÊ^ÊÊ^ÊÊ^ÊÿÿHÑŠ„^Ê Ê¼U}UCCC@@@@ÿ¹2m?b8wCb<�C\B‰E:;1!n9/`9)J3! @@@@÷ÿ : 3@A}tóóðÂÊ©ª„Ò( F@NP>0  F@NP>0  E      EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  A?2A8:4BD2$  :4BD2$  :4BD2$  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  T21_iceT21_ice� ×@À>ÄÀÁÍL@Ã`7Ä   � K� �Â`7D ×@ÃÀÁ€>DÍL@Ã¥ K�  @ ÿÿÿÿ? ///////’ / / / ////////////////B / / / //////UUUU3?0òñòñòô×òüÿñòñòñòòô×ÿÿòñòñòñòòô×ÿÿòñòñòñòòô×ÏÃð<òñòòñòôòÏ0 ôóôòòòÀ00òÕò0000òòÕò0000òòÕò0000òòÕò0000òòÕò00<Ïòò8òòñòÃð?òñòòñòôÀ0 òòòÕòòòÕòòòÕUUUU3?0OüÿOÿÿOÿÿOÏÃð<5Ï0 À00Q0000Q0000Q0000Q0000Q00<ÏkÃð?À0 QQQE@#ððÐ]q™šÿÀ¾½^q<rqÏ<äãrq<rqôóÀ<rqôóE@#ðð¡AäÑÒÿÀ{|½Ü<ãäÛÏ<ÜÇÈÛÜãä<ãäíîÀ<ãäíîE@ÿü Ü€v�¢š_ÿ%Ò{##ÿ·¸F,q³ðÀrBÞÝ>âÏðâzªä?Ïzú”N Ãð?í“}íN°ýF@¥Ï£ýp ÿ ÿ  À?Ïð   ?Ï  #Ãð?%# G@ËtlÿÿöX%·Y$#ÿ¸·Â~ÀEÿÃÀ?9bJôàÝÞl¹ ÏàQ•)¾?Ï•)rNMŸÃð?î”~îM¯þF@ó[ý�ÿ'B%ÿÿÿ ( *óÿ°Ðø!(Ïð&?Ï&"Ãð?$" E@€ÿZY[P ×ðÀ?�H0{XÏð àë ?Ïàëxk†×Ãð?R«ZR† {@@ÿ À=Ïp  =Ï 'Ãð?)' … @ÿÜðÍl—'Z„©ÿ‰ŽÔ�"iid€ ƒ€–8=à €x4E@ÿü   ÿ ’€„ �€`ªªª«ePPõkU ›¿›»"" »¿»»$$ »¿»»$$ û»»» $˰¿kUöµ_úkUöµU›¿›"¿›¿›»»¿»""$¿»¿»»»¿»$$$¿»¿»»»¿»$$$¿»¿»»»¿»$$$¿»¿»» Ëð$$ 4 ­ öµ_kUöµU›¿›¿›¿›»"""»¿»¿»¿»»$$$@„!UUUU3?0À¿À¿ÀÀ?Àüÿ¿À¿À¿ÀÀÀ?ÿÿÀ¿À¿À¿ÀÀÀ?ÿÿÀ¿À¿À¿ÀÀÀ?ÏÃð<À¿ÀÀ¿ÀÀ€ÀÏ0 À¿ÀÀÀÀÀ00À?À0000ÀÀ?À0000ÀÀ?À0000ÀÀ?À0000ÀÀ?À00<ÏÀÀÿÀÀ¿ÀÃð?À¿ÀÀ¿ÀÀÀ0 ÀÀÀ?ÀÀÀ?ÀÀÀ?UUUU  †     † ÿÿÿÿ////////////" / / / /////////////////////" / / / //////UUUUòòòÕòòòÕòòòÕòòòÕ0à òòòôòÀ0 òòÕ òòòÕ òòòÕ òòòÕ òòòÕ òòòÕ òòòÕ 0òòòò Àôòò0000×ôòò0000×ôòòUUUUQQQQ0à À0 Q Q Q Q Q Q Q 0 À0000O0000OÏ…†rq<<<õö„ƒstÏ÷øãä<<<ìëöõâáÿÿ<ÕÖ À“+OPüüÿÀ+e’ ->r¯ÿÿ<*(üüÿÀ&& $ÿ<ƒé‘qð}ôóð1&k �ðÿÿ<ÕÖ#!FH%!ÄÃüüÿÀ+e’ ->r¯'(ÿÿ< ( (üüÿÀ$ $"<ê«ê«»¿»¿»¿»»$$$»¿»¿»¿»»$$$»¿»¿»¿»»$$$ 4 4 4 00} kUöµ_kUY»ù»ù»ù»»"""»û»û»û»»$$$»û»û»û»»$$$»û»û»û»»$$$»û»û»û»»$$$4 4 4 HHH} Uöµ_kUöµU›¿›¿›¿›"""»»¿»¿»¿»$$$@@HHH@ UUUUÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?0à ÀÀÀÀÀÀ0 ÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ? 0ÀÀÀÀ ÀÀÀÀ0000?ÀÀÀ0000?ÀÀÀUUUU €  ÿ////////////ÿÿüU0000×ôòò0000×ôòò0000×ôòò0000×ôòò0Ã0×ôòòU0000O0000O0000O0000O0Ã0OÏürq„ƒrqåÏüãäöõãäÆÿü ™À1Hó%kåÿüÿüùކPl‰o$\ càÜ`ÿü# iP³ÚÆ,ßü ê»»¿»¿»¿»$$$»»¿»¿»¿»$$$»»¿»¿»¿»$$$ 4 4 4 ÿÿü00@!!!U0000?ÀÀÀ0000?ÀÀÀ0000?ÀÀÀ0000?ÀÀÀ0Ã0?ÀÀÀU     y ÿÿá!ÿ�€7Ä€¿’ Ð   ("$*, "(   6$ BD> "$  F@NP6(  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$*(68&  .(:<*   )      97>9DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  -+2-8:4BD2$  :4BD2$  :4BD2$  28  :4BD2$  :4BD2$  :4BD2$  6468>@.(  20>@.   60BD2  E       53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$   2 824:<*$  ., 68&  *( 24"  E      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%8:4BD2$  :4BD2$  :4BD2$ E      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  5325864 >@.$  20 :<*  *,24"  T21_packed T21_packedpÁìAÃ7ÄXÁì‘@à6Ä   pÁ 6DìAÃXÁ7Dì‘@Ãnf 4x4é</00ÀÄu1ÇðÿàpÁ`6Ä€¿Ð T21_powder T21_powder�Â�‚GÀ>Ä„Bn5À5ÄGŸG�€5D�‚GÄB€>Dn5Ã`ŸX ×ÝÿÿDB×·npôÕ¹pnö?óÿÀ×¹ppôÕ¹npu•?ó3?Õ¹pnDoom±oom±oom±oomo²o?ÿ33popopomoom±oom±oom±oomBBD33<ÌBBDBmmooAopÝoo±pݲoom±o²omoomoomoomÞomoomo±omoÞmoomoo±moo±moo±moomoom±oom±oom±oomo²opopopomoom±oom±oom±oomBBDBBDB´oopÝoom±oom±nÝomÞpßmo²opopªšª®¥? …?&& ƒ_ ¥_`& ¥_fofofdô’CCFfofofo33<Ìô¦o:ð``ooFfFfdiFfdöd–@fdödödödfföföföf@ô444ffö’ÿd¦föfõ’Æk\dCC’}wUUü?骩qrª©qrª©qrª©qrãq©«©©qrª©ª©ª©ª©«00?ü©©ª©«©©ª©«©©ª©ª©ª©ª©«ÿ©©ª©ª©ª©ª©ª©ª©ª©«¬«¬«  ÿ©««¬«¬«3©ª© 0ª©«© ©«© ©«©©ÿ30 «©¬«©«©© «©0Ì ©«¬«©ÿÌ©«©©ª©«}wUUü?ÃTSTSTSTST7S00?üSSSÿSTSTSTSTSTSTST ÿ?3 <? ? ?ÿ3< U? 0Ì ÿÌ?UÿÿõÿÝ~nðz••·êÌG�1µDšÙ×^z:XH’€5}5怙™,}I5á5 5ëž[5VC259šH5755ÚH5GI55™5#?5*p½*r½(r½Â¹¢ý�¾‚9Ñ`Þu¡kþL¤¦á.m@ï }ïð U-2kkÀÿÇ~J�’ØÁ???cH×CHGÇ~}”ä €–� §ÙC‡6GNâ5ìÏ}9ê5}ZRZð}š?–Ýc55GIè6(úr(°û[*hmYghGÆ€ÊG °j6N}DËÇ`âž`Ë5ç˨²ZÔ5åÐ�U55¥þ©®?þ¿Ã?·Š�@?lo0/Vý?Ã?Q"!65ôL�tvvuuu?wwò qppŸ$/11l%P'P%L%F%<)>+·/%, &À ƒ Àx¡�¡€·sùu÷•÷—Çøïø1// >*(& ÿ�'%™õy÷íEŸrFopp)ÿÿÿÿÒµÁ »2¡Û´§P£ºj÷ŒlÕ>�Ü£;ÑÏJy$™åÉ2®%geõîùN" ?j¾�bùñ‹ªo¢1UAÊ\sJ±õà@BÅfÜÛeZ½l(vîÔU?@Ÿêºñ‡UKë¤Àò’árC!œo¥Á "EoÖÊëš  �kvª€h%›ì¬7̺f�þˆÙ„¾z²&pÀ€ö�þˆžt†�U" ìu„VjÔS™¦ ~=Û^£`­®óu21WÝÕl…{§é=ƒ ç=|1és ó’.- I#Ì·½k=ž œG‹%qÇM~æ˜ ‰­®¦®ª®rq‘xö?á $½A /+/�"¿›ß9Ù$"VXOOE00. !/3e<ÀPt& 3Eõw  x-â"ô¢øKôªô¬öŒöúñ%{ò9†8!øÆ÷‡eeÿõÿ!..,"oÿøbú†ÿ@3ü�ÿ¡B/Xx<3B1ÿÿÿÿ7 "È©Áp^�„Âôáÿ]—ÅJÍlŠ“-í2_¼óó«Œ (ï"[AP1¨èe%ž4i&ü0Œö~öðƒK@Êí:ðÜû€N;�PØÚ2ÝèDip‹à‘ÚÜ•é—WD¯È°ˆÊØYA™¿v[𢠘U #‹S¸øä`0¼ G·‰}^J-«ºúý‚a~S.ÐŒ2~-gËÐTs€BåèGœ˜è*<¾0·V/S›Áñ½^)þ&;çzƒìëâäïðƒ‘Œ}�Düo­ï çýh>$IˆÀ^›®½ßŒînP„6q»þhA:²…’L÷�ÑÍ/ˆ‚ìë–©ªUöò#Ÿø %"%|?ËA!½â":)oh C1/$ ! ­gB«2 ù”(_31!óB6Aó§ÑÿŸõ"21#ùóð"HðFð$±$ý.ü] 6]_n�ÿ/O7$÷ÿÛ@5&5BW_½ÀI^fI ÿúBB 0*þ§­@&8™€P`¾âÌË|Ë‘Í×uíÕâžm,¾RP ˜¾i¿�K_ßG‚›ÁøÊlQ ÌH*ÉÂSÿîßBC`  Áƒÿÿ�‘¾'ÄçÏS!'5¥Ü*ÃmßÀ]ÃÝA’áâÌÞþ¯h0FI¦-¼éÏÇmðdìëË*??ÿü‘uÞØõJ¬.Vãöÿ…+ßóPÌäE®ò00xxOO%662 w{°3 /ðÖ€üOð€ g‡‡ÿ÷ÿ442  $ŒŸð_*!ðÿxV(&ÿÙýú ç//TEc69«U÷—,�íTµ4a'Û‘Õ£F4W¯±ŽF0™^‡ã> Þj^¶.î«_àÑBv3 Tƒt…T�/ ?ÿ�Ò«w¦^Ó©âNæ€Ôò�7¸…ÿ›?a›*˜Ò As¨‹ìca¨0ðBÅÂUÐúøŠ•ñÿ“06d²ÚRxD¥ïd \äÿðS(U¦ð�H7f5(ÿ4 st’7óŸ~¤Þ«íßK£Ìañ·¶Ñ•Õ©e?Ô=>/$Ñ?óá-Z÷s¿¿Q( ( ß�ÿYü@($%!  ?óF…nkj_p  A.+(3¿0 8P ¦¨óÿüûð¹ñ' 5@{ðOÿöù;@?PS ü$ &$$&òùQý“ò0ÿ¾ó 0# f3×�úÿ'/  S  S?óÿÀ  S  C?ó3?0 KHHH_?ÿ33GGG`@033<Ì000(õµ_kð�°¿Ÿ»»»»»¿"#»»»û»û°»$4 4 4 HHH_GGG`@0000(ÿ/HH/0/_TU@& ÿ 0ÿHHH@ ÿ4ÿÿuwUUü?Ãÿÿÿÿÿÿÿÿÿÿü?ÀÿÿÿÿÿÿÿÿÿÀÀÀÀÿÿÿÀ¿À¿À¿ÀÀ00?üÀÀÿÀÀÀÀÿÀÀÀÀÿÀ¿À¿À¿ÀÀÿÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ¿À¿À ÿÀÀ?À¿À¿À3À¿À <¿ÀÀÀ? ÀÀÀ? ÀÀÀ?Àÿ3< ÀÀÿÀÀÀÀ?À ÀÀ0Ì ÀÀ¿ÀÀÿÌÀ?ÀÀÀÿÀÀUUTU €€ ™™™‚ff$.$„�ÿÿopomoom±oom±oom±oomBBDBBDBöomnmnmnݲopopopomoom±oom±oom±oomBBDBBDBnmnmnmnݲopopopomoom±oom±oom±oomBBDBBDBnmnpopÝnpÝo²opopopomoom±oom±oom±oomBBDBBDB®ºCFfofofo¨VZCCCF’fofofofoÿÿÿõeee ´ô444ffö’ÿVUeÅ\@´ô444fföf’UUÌ©©«©© 3«©«0ÿÌÌ©©«©¬«©«©©«© Ìé«©©«ÿ30 ©©ª©«©©« ©©3 0?«©«©©«©ó3À¬«©«©©ÀÀ«©UUÏ? 33ÿÌÏ?S? ÌÏ?ÿ3< U? 3 0ÿ?ó3ÀÀS?ÀÀÿÿ55Ñ¡±'þ£÷¹ ëv´sÊ.$ôë8:Úž‡ú:ìÈžŒ™ƒd>áDGG55æÌc#y„­ûð:ĸ5 xU6@P¥k¸Ãy'xØƒÎ‹ë© ,,*ÿ>`D"?ÿó*þÿVVX_-P+ *( &  Êÿü01216104$õeCCßÕÿ-&ÕÿµÿÓ‚!&$?ÿðý/¶fL#*õeecßÕÿÕE$ýõÿ÷¢@$(ÿÿìë×îT+ÊyŠEcÎ2-s¨<(¢ô»n¯âmëafãÇWüCñ�ÏÐck¨bó6_æ ÍÜ Gwù§C2¶ ŒüZS²`xK "¶@)Sóôµ|?�̉2Ïÿg|aj yˆ¥|R?¼ÂÁG¦­ >~öW@aÉu‹Ó´c™¡ÏÐÏЇˆ‘Xs «Ô4÷ÑCúE‹ŠDË>[U ZÖ 100* !5ÿÚ4ÿÿA '0SSSS ð@C�„'ü•MMMP‹ !""  ÀTÔAc$@ÿÿ ‡~w*Fò~�­j‚80‚­=0À›ù\Ú“ÞP?@=ùóžÿlæÖ]ÄÂhkÎQ†„ËÀ2á±6ñ?‘’./¹²àÕùú÷·º¹¸�.l_@¶»¦dŽI©•Œ_ÑОJ ¿®+¦ÿÿTS1/gl³Yõ\c…i§»»�¨@/@zæQ6˜ëi 220ÿ^b&B"ÿVVV_!".,,  Ê/ÿü(#$#$ eeeßõÿ*õÿõÿó¢!*(p<,CCCÿõÿõ*ÿõÿùÂ@*.šÕTc2c2c2IÀ/öÿ�ÂWÿÿË(È�xÅ'a2A2AÀÿÿÕØ‘’ËÌkh$$ü5¼[£7µ(p'–ùpÏ5¬¨^Y&yÀSSNSSUÖ � ÿ 781ÿÿ" 5`Y, ¾Ëÿïÿ'T¼$1$$(K^!($g€ ÀBBSBBÿÿGGG`@0000(¨/_GGG`@0000(x/_GGG`@0000(x//_GGG`@0000(U€ þÿ€ þ ÿ0þÀÿ UUÏÀÀ?ÀÀÀ 3ÀÀÀ3ÿÌÏÀ?ÀÀÀÿÀÀÀÀ?ÀÀÀ ÌÏÀÀÀÀ?Àÿ3< ÀÀÿÀÀÀÀ?À ÀÀ3 0ÿÀÀÀÀ?ÀÀÀó3ÀÀÿÀÀÀÀ?ÀÀÀÀÀUE! € €  Bà@€! ãUl8ÿnÝ„Â@5Ä€¿PÐ    & & &0 *0., 6,*$&("    2$>@:  B<JLF8  NHVXRD  .8:<68:<*,.0 "$ "$   . :<2 :4BD:,  B<JLB4  .8          $  &("$*024.,   >0  )') )')    )')       97"9( *$24"  *$24&  .(682$  US2U8:4BD2$  :4BD2$  :4BD2$  2468&(*, 9ECE "*,"  *$24*  2,:<2$         ‘53 5   &(   68:<*,.0 1535 "*,"  *$24*  2,:<2$  U    153b¹  #+-#  +%35+  3-;=3%        (    !#%!4   42_´"*,"  *$24*  2,:<2$  %    *,.0&(*,553jÁ  #+-#  +%35+  3-;=3%        T21_rockT21_rock�ÂázFÀ>ÄðA…+5À5Äœ5œ�€5DázFÃðA€>D…+5Ã5  WŒzxx(xzxD Àÿð?WxïÚ ð?   ðVÇuÿwŸ(9Àÿð?&# ð?   ðuÀð?©qrqrqã©?ÃÏüªª¬«qrª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ªuÀð?T7T?ÃÏüV$xxzxÏÀÿØœ�׋¸�‚‚Îñêm ””’×)ë&�ÓÕÓ´;°=;·ñ¾;=^Ü:Ó‰ÓçÿÀgGààÕoCåzg]$E A  #5Нÿª¯ÿª�'-'+!ÿÀ1 w;Š,K¢qV‰ðÿ©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀµ <sóS¦¨cõô¨à|Ȧ5™!¦¨²ÿÀØn¨¦¨.%?o;_?]?]?]ÿÀC:Ʊ[)™¯L6’* w,+bÍ/`*D!Ô‡.a‘ k:bäm\„[›7rg@ qÄ \q Ã! `#JFqIk¿L(Ä&…:Mrã#7pJ*%˜KLqèC�$ƒ€€?ð?`_ @_ @_ð? @_ @_ ð@_ð»¿ð»¿ð0DD»¿À{¿€U_D0"ÏÀUUrZèõîÊqj A4€¿qÐ  "( "( "( "( " T22_groomed T22_groomed´Á…NÀGÄ�A¤pBÀ>Ä   º´Á€>D…NÃ�A€GD¤pB亜 ÿÿÿÿöõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöõöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøÿÿÿÿ$%$%$%$999999999999999777$%$%$%$9999999&%9999999777$%UUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿ󩩪©ª©ª©«©©«©«©©«©©«©©«©©«©©«©©«©©«UUUU ÿÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÀÿÿÀSÀÀÿóS??????UUUý¡ãj„Ì7Ð ¥sáiï¯GêáðÀו>2šK�¥êœå"kÕKLKLKLKÀÀÀÿIIIÕKLKÿÀÀÀLKLKIIIÿÿÀÀÕKLKLKLKIIÀÿÿÀIÕKLKLKLKIÀÀÿóIIÕKLKLKIÿIIâ„šŽ‹ÿóÄï×KÉÊI³µKI³µÿKI³ˆlóµÿ°¯ã˜I³µKI³µKI³µl·III¯ªYU%(1**Q#"(M&C` 9°ûËËË2°Ð°ûË2Ë˰аûËË˰Ð2°ûËË˰2аûËË 2ÿ 5 ÿ e  & & ï & ÿ('(3 &  &  &  ]QÁBš kh ÚyŽú.ºI¬ù`Ñ’i¦Px+¹´|¾ÿüàéËë.¾ûôÆDÿܬîù+¼Bž¡ç ó‹òµ;zÀyÿÄÔÓ¹Žÿýá¢ÜÌyN.<;åÿ–°�*ÿžÝˆ_¢A„ïYFy”.'PÃO™šÿ™h³}Ô¯ÿû÷/K¯Kúš™š?™š=[š?£RQ*YU@42‚1¢UÄ™2r”r÷qùQÇ0ÿÿ$ ¯šoT%0Ï&ÿÿ)" EQÏÿ !"/1,6kj%0&Y D üømP54ÿcDÿt�VaÿøÀŽ-D3$ÿzRçÃÿÿ˜U;ÌD‡a¦�€�‚‚~��€���€ÿUUUU ÿÀÀÀ¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÀÀÀÿÀ¿ÀÿÀÀÀ¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿóÀÀÿÀ¿À¿ÀÀÀÀÀÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀÀÀUUUU€@€@€@€@€@€@ÿÿÿÿõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøöøãööøãööøãööøöööøãööøãööøãööøööööáöÿÿÿÿ$%$%$999999999999999777$%$%$%$9999999999999997777779999UUUU©©«©©«©©«©©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©©« ©©« ©©«UUUU???????????? ? ?UUUUKµ³IKµ³IKµ³IKµ³IKµ³IKµ³IKµIKIIàKIIàKIIàKIIàKIIàKIIàKIIKµ lµK³µ IK³µUUUU $  $  $  $  $  $   &  &  &  &  &  &   & & HÏÀG•ÞGUTðóš2134™š™š™š™š™š™š342Ëϸ˜ÃÏÀ ,Ó. š ™šUTa„VÏÀUO¦Uÿÿÿÿ/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0/0/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0HHH'//ˆ'//ˆ'//ˆ'////?_Ð/TUE‚�‚‚‚~��€���€ÿ‚�‚‚‚~��€���€ÿHUUUUÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀÀÀ ÀÀ?À ÀÀ?ÀUUUUÿÿööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööööøãööøãööøãööøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøÿÿðööãøööãøööÿÿ999999999997777779999999999999997ÿÿð77UUU ©©« ©©« ©©« ©©« ©©«© «©© «©© «©© «©© «©© «©© «©UUU ? ? ? ?  ? ? ? ? ? ? UUU IK³µ IK³µ IK³µ IK³µ IKII I·³I I·³I I·³I I·³I I·³I I·³I I·UUU & & & &   $ $ $ $ $ $ UUU ™š ™š ™š <™š34<2ËÌ ¸˜Î š˜Î š˜Î š˜Î š˜Î š˜Î <š3ÌUUUÿÿ?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(HHHH'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0ÿÿð(o0(o0(UQHH@|‚||~‚‚‚~ ÿHHH@|‚||~‚‚‚~UUU ÀÀ?À ÀÀ?À ÀÀ?À ÀÀ?À ÀÀÀÀ ÀÀ?À ÀÀ?À ÀÀ?À ÀÀ?À ÀÀ?À ÀÀ?À ÀÀUUUÿÿë%åÿx1´Á@>Ä€¿Ð        .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64  F8NP>( F@NP>0  F@NP>0  E      EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$ >4BD2$  :4BD2$  EC2E8:4BD6(  >8FH2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  A?2A8:4BD2$  :4BD2$  :4BD2$  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  =        53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  9      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  T22_iceT22_ice� ×@ÀAÄäÁ=Š@À>Ä   üÒü�€>D ×@ÃäÁ€AD=Š@ÃuÒm ýÿÿ3ÌÏÿWX¯YWõX¯YWõX¯YWõX¯YWWWWW÷WWW÷WWW÷WWWYWWW÷WWW÷WWW÷WWWWWYWõWYWõWYWõWYWWWWW÷WWW÷WWW÷WWWYWWW÷WWW÷WWW÷WWWWWYWõWYWõWY²žUX¯YWõWYWWWWW÷WWW÷WWWYWWW÷WWW÷WWW°WWWWYWõWYWõWYWõžWWW÷WWW÷WW±WWWð÷Wýÿÿ3ÌÏÿ"5"5"5"33333355533333355#F"53333!555H33$ð3UUU ÿü@?@?@?@@@À?ÿ@ÿ@?@?@?ð00?@@@@ÿ@?ÿð00@?@?@@@@?ÿð0ÿ@?@?@?@@@0?ÿð@ÿ@?@?@?@@00?ÿ@@ÿ@?@?@?ð00?@@@@ÿ@?ÿð0ÿ@?@?@@@@ÿ@þÀð0@@@0000@@@0ÀÀÀ@¿@@ð00À@¿@@À@UóÿIJ„d稧Hðèç0À‰ŠðÇÑÒGc®‡ðdjUóÿEFwfUVHð0À‰ŠðÇÍÎCe¬‡ðf—@WÿðXW ¬·í.ú9-¹è[©J¼GHÄ€¿Ð     " &(   :DFHB@   RD^`J0 RLZ\F8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4 FD NP>(*,&U,    ECE&(    EC"E(*$24"  *$24"     EC.E460>@.   60>@.   60EC&E,.(68&  .(68& ECE$& .0 T22_packed T22_packed@À{”HÃÀ@ÄÀ¿ÍLHÃ`@Ä   @À`@D{”HÃÀ¿À@DÍLHÃvn ?FGE?3ÿÿ ÀGÿ—ì%@À @Ä€¿ Ð T22_powder T22_powder�Â…NÀGÄ�B{”=À>ÄP–P�€>D…NÃ�B€GD{”=à–˜ ]]ÿß3óÿ<«¬«©ª¬«©©ªª©ª©©«©©«©©«©©óÿ󪫬«¬«¬«©©3ÏÏ«©©«©©«©©«ó333©©«©©«©«§©ª©«¬ªª©©ªª©©ÌÌÌÌ«©©«©©«©ÌÌÿÀ©«©©ª«¬«©©«©©«¬«©©«©©«©©«©©«©©«©©«©ª©©«©©«©ª¬ª©«©©ª«©©«©ª¬«©ª¬«©ª¬«©©«©©«©«oáªqã:ã8á8ã:ãÿÀÀÿ87«:ã©«ª¬«©ª¬«©ª¬«©ª¬«©ª©ªª¶Äf `ödododfôCCFŠdododó333CFS¦ó¦@``@``@``@``@Ä4`ðdfCFFoF`Fdödödö¦dodo£¯dfFdo\ŠFõÄo\Fÿÿÿÿoøèæèè$"âN€`õÄ”o\FõÄo\Fu÷U] Ï©©ª©ª©óª©«©©ª©«©©ª©«©©ª©ªÿð00©ª©ª©«©©ª©ª©ª©ª©ª©ª©ª©«ÏÃÌ©ª©«¬«©©«©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©©«¬«©Ìÿ©ª©ª©«©ÀÀÀ¬«©«À©©«©ÿÀ0©«©¬«© «©räãäãäãäãäãäÿÿ?ãq©ãä«©©«©©0 «©©u÷U} ÏSóSSSÿð00STSTSTSTSTSTSTÏÃÌ))Ìÿ?ÀÀÀUÃ?ÿÀ0?U :9:9:9:9:9:9V9??0 ÿÿÿÿ#¢vóÖýH Z)¡c3Õ½ž™QºÌ,÷2±g�àÅ>å�sûLðÃÃÃàÃ4îóî¹¢ÛS†ÖŸg‘ŠïeÕðÄtZsŠÁèsi-˜àíšTí›É~)vN0è0çç;í;<`Ž ¦¥¦¥¦¥¦¥�Ž<;¸·{| /$l¦±ÕÕÜpA¸uíu 3Ör±cccœ“HhÙ~t‹ÉÓXœyÊUÀ…s¥€ëˆ¯ìëžêê¸ÂK£ÃɈí²ðÊ�ÄfuÌ�(ÀÌÝ#ƒÙ—4ü…vteK¶ˆÎŒç¤Kf�Ù\"™S¢¢î›ÃÃî1ÌÖ¿âÓçˆôFbç†Ä½Úfò´ƒ\ç{#nö§IæûÏPŸ¬ï°2+l¹a`¼•µÎ 3¬‘!ÜD’V®XÄŸ}ÿÿÀ=Ïíͯ› ¦ÓyKq^ѼùÑ£)FpY^Î Žd€áDØšBsÝ,‚IâH€¥¢ÑOð…­ ß=@`Œ�Áðë™�+mÕé·Ò}„ …yÇT89¡®#«È¤†I ›fSuî;Ô¦ãÊõˆ r.hq N¸•œEqKÓ…^í°™€â5±ã{5úux ESÛ«€Uã™Peÿ뙪š - €ÿøM„%@A&"óVV=/E& && ó"6":P?·fpþ@ ¿61ßü€«¯Üøo¦©ïþÊø¨ô¦5"rD!Vxÿ@ÿ[ÿWý_�$ÕöýoÕB $$/üÿßß~D&#ÏÆÕÿ  ' _oµôû_M³  ÿÿÿÿÓŸL”fÇžqS!Šñ @W£¢Lb>ãnÔþ“™ô ä]rì­®­®eÊÕŠ‡Ž®jñ"NË XN«x|Ír21ص¿šô¹ÅtVŸ[Ö™ý:óGÃ`ÑG¨¸8rÍS„� ?k¬«¬Yé¾äßÏGaˆ;%Çne8LŠÜ±Új'j‹¥Ø¸>ÿ ,Dº(«2T„=>6iÐ]=,?£‚µ¡µ~3-c t|«Õ0/·üì‘c¬qþRÀ$½¢àã2ÔiSàž¤�Ô3�sâp9µÙTœbÁ¾Ô=îÄ?§Rj„µéc7ˆþ²UÊ[þª] C$A( BÿøG†!D9(?Ð%4tt‡ceA ?Q- & ].*+,K:=RQ<IJIfeTK:388kLC  ¦oòÿIñÆ$ƒH(bŸþ¦6BaS.Pÿ" 5�•/ß"LR—á * Ïã !Bÿ[ÿÿ]Zƒ˜?D2 *e 4&u2>oF(Põ¦üûüû±-èAG�¤~fð3ê°g#Ât‘nÈ=?楅XKyê=ÔOæ?L)` §�!/P?ÏÀ¨÷¯ªÿøÿ…BJd�¢Û<#<;>90A!"Qn àä!% .7d)< A62 /CV%,Û¼µ¼ ú51JŽ+Ò�çëm )pÈЉj:ÓÃêÐ4³Ö ¯=<14 mn“.tóÚ´ÆXÕÀ_–¦d^tl^dy7mà–E–44?O,,,x#O"€V44 Àÿÿ *õøÿo÷$(*/&ÿ �×öý_o·&&"_Ý}0Ê:rk•·²Çâd#ýS3�¡Go}¥¸GU¬ ¶ÿÀ¤¹¸>¡ÔÌÒ¤U,yp¡¿vœ5¦_«2 ÿÀ¾¿Ó£…��É�®³Žº)( ˜±ü¿7ìí¿ Ñ‘¶“7JÍÁºÅ¥P"U3CXfzC$® ñ ½_�‰*‹·ž"ñÐ|5ûûR,aÝÿÿ ÃQÝp›ZŠï0\`û+¨€ìëo�Œa±Ïê&Ħ³�Ü“Ôî¥� H[©n] )&$A(¤ÿþoø)¢W.ÿÀËf�„’&;aoøWñïØ‚�Ôx_˜?�ü¢ÿ¯aøÏèÿ{F" ñü@x%ß¶ÿ½²ÿ�" # H`>#:A lÿÒÜÄ&µš)#� HÝ©þß3óÿ< /`HHóÿó_GGGó333`@0000(VUfµöµPP�°°°°°°°°°°û˰ð$»»¼» »¿$$ 4 4 4 'HH//H_G0G0G0`@0000(/ÿÀÀÿ?/0G0G0G0T€@Àÿÿ„„„ÿ ÿÀÿu÷UU ÏÀÀÿÀ¿Àó¿ÀÀÀÀÿÀÀÀÀÿÀÀÀÀÿÀ¿ÿð00À¿À¿ÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÏÃÌÀ¿ÀÀ¿ÀÀ€ÀÀ¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À€À¿ÀÀÌÿ?À¿À¿ÀÀÀÀÀÀÿÀÀÀÃÀ?ÀÀÀÿÀ0?ÀÀÀÿÀÀ ÀÀÿ<ÿÿÀÿÿ?ÀÀÀ?ÀÀÀ?0 ÀÀÀUUUU @€ ™™š&fa™’f@€� €†ffI `@ ÷ÿ©«©©«©«®ªª©©«©«:ÀÀÿÏã©«ª¬«©ª¬«©ª¬«©ª¬«©©«©©«©«®ªª©©«©«:ã©«¬«¬«¬«ª¬«©ª¬«©ª¬«©ª¬«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«ª¬«©ª¬«©ª¬«©ª¬«©©«ÿð©©«©«©ëº**€`õÄo\”FõÄo\Fÿÿ**d444õÄo\�FõÄo\Fÿÿ*d444õÄo�\FõÄo\FÿÿðUU«ãÿ?0ä©«©©«©© «©ÿ©ãä«©© Ì0«©©« ©©ð?ª©«ãä©ðÌÀ«©©«©©À0«©UUT7ÿÿÀ0?? ÿV9ÌÌÀ0?? ð?UVT7üÌÌ??À0ÿÿ&°2€P»À Êññg .ïÃÃÃéÃÁÃÍç<�*PéÖ*ê™_Ö¿ ™­Š¦mU2R>ó&ö’ÊU&ñ1½lÃwÃÊÃMÃÃæK­<¦©›«:¦[›«ô«Mù<¦m(ോ’âðùÓšb'£¤C!¸wÃÃ.ÁÃÃMæMù<ô«K¸Ö¿ºK¸Öq M¸Û#ò&ÿðû†Úi`©ëº"&(**20c$E!+¹y÷—ðF�HñD�Fÿÿ$(*.>P#�$C!!!% wð�ppð$�Hð&�Hÿ""ÿð .B@.ÿÿÊ�“ØÛ̸ÄX)—�¬²ÖT Ÿ bÑw ÚØÏL„¾�/.ë…Rfü ¯ŒÄÙ—@4ÛôËo}�ðžÐÅ·VW=ë}õöfGVi~’“uTÁ£O¢{?…HlÅØLýp÷ã:–“�îa ½P'ðäöef$#ôv³oc«¤Üײ‡'ØÙ=›vÁ¬�µ€œÿðõ§Ýmæqªª 3/E@NððÔÙ?m•ö×_MqSuo#!bòTñ!CCv×?Ksô·_ms3•ˆ%"BðN óCeevÙ?ouöù?M•%—Jÿÿ‰�z¹�:ï îp5³å¾}Ô#:§¨’A wªP-$ÓNÿ¥4ùä iÞ Éc¤²Ô±ßÒÒ1ÒÌUQY»T–COÐ¥¾ê�tò ÷éÕªÒ³ÓŠL&ÐH$hÚR‹iÁÔ_¹yÙ-)1GØ vL¦ÐÜÛýþàæ©ª%Eæ¾È=4#þÑ5º(Œ9w¨gÿðú�¶'e˜–Y‚9|BP€À!¨36 0 À$!@2Dp0ZX Wb1!1pù`u]ÿÿ úÿµêÓŒ:ÂÀÿÿÜ ðF Ã(-ÌÎÉvɂ翀%¢?q̽Òÿ©È& Àÿÿ ôÌuïæ •×”äK<ëT1éÔ‰ÐÕ�«;ÿð i<²Ñ ¬ÿLúd¸&;~¯þ�=~6Ôš!6/vJÿðR¡ëÆ3üiZ Pß2–ù_o—ö÷o“Uÿ8v÷_ouöÙ_�u3ÿp  0ÿ o•öû_O·# ×jÕu`ÃÿÿNFH•ë§Úr¡ÃÁ€ÂÁ]ù``ˆ¤�áî�27¦ú°æVÿö&\\«W¨`íŸÀÃeûQÜ©\þÿü!‚8¦¥³´B‘PWðU–`Có¿%ROJcÃÂÁ€N)``C°ã*_JöCCC'`f?¿ü(SPMNOV]L óee‡!B`÷ÿ`@0000(?////??ÀÀÿÿ/0G0G0G0`@0000(?////??0G0G0G0`@0000(?////??0G0G0G0`@ÿð0000(UU ÿÀÿ ÿÀÿ 0@ÿ ÿUUÿÿÿÀ0?ÀÀÀ?ÀÀÀ?À ÀÀÿÿ?ÀÀÀÌÌÀ0?ÀÀÀ?À ÀÀðÿÿÿ?ÀüÌÌÀÀ?ÀÀÀ?ÀÀ0ÀÀUQB@ H@ °$„ HU»Îå;ÿÿüÁ?Ä€¿UÐ      F0  "$NHVXRD  ZTbdF8  2<>@:<>@*,.0 "$ "$   . :<2 :4BD:,  B<JLB4  .8                         "$ "$  .$:<6  "$>8FH2$  *0  2,:<6(  >8FH6(  >8FH6( IG.I460>@.   60>@.$ 20>@2$ 2468&(*, 9ECE           =      # %        # %!+ -5? A9? A5 ?AY                ZtnpQ uvkuou                           ! D                              ! H                T22_rockT22_rockÂNÀGÄðAf&CÀ>Ä{.{€>DNÃðA€GDf&CÚ.’ ?Ïó?ÂÁÄ0/b00/üÀüê‚Á@‚Á@‚ÁÀü@‚Á@‚ÁÿÀ¿Ì 0/2üÀüE / / /Àü / /=<ý0Ì㩪ª¬©©«ärª¬ªärªª¬ârª¬ªärªª¬ârª¬ª=<ÿ0Ì7T€)xxzx?Õƒw¢å ;±é]Ë6„­+xdmmåïP® m™Ímkç˜-Í(Q(:Ö�Éɾ/ Uª%K(OR5A4[GG3M#ïöþîÿüìG#;1?3¦³X cX°ÇCPOO«ø"[ú!”G0c…#=Ž$ F@NP>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  $A         E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  28&, 5        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28&, =        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, =        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, =       53"5(*$24&  .(68*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*,  T23_powder T23_powder�Â…UÀPÄ�BÃuBÀGÄ|1|�€GD…UÃ�B€PDÃuBÃå1Ý Õÿÿÿ3ÌÌÌ©ªª©©«©«ð ÿÿ:ã©«¬«¬«¬«ªÏ3󩪬«©ª¬«©©«©ª©©«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«ª©©«©ª©©«©ª©©«©ª©©«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«ª©©«©ª©©«©ª©©«©ª©©«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«©ªª©©ªª©©ªª©©ªª©©«©©«©ëº®3ÌÌÌ*è`CCCOŠ`\\FöFödo*€d444ödŠofFödofF*èCCCOfŠFödofFöd*þ€d444õ–¦•¦•¦•¦ÿ*CCCOZi–ZiZiZoÿÿ_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©«©©ª3ÿ𠩪©ª©ª©«©ÿÿ©ª©ª©ª©ª©ªÿÿ©ª©ª©ª©«ãÿ Ìðä©«©©«©¬« À©«©À©ÿÃ3<ãä«©©«©©ª©À0«©©0«?ðÌÀãä©«©©«© ©«© ©ãäü30«©©«©©«©©_UUUTSTSTSTSTSTST7SS3ÿð ÿÿSTSTSTSTSÿÿTSTSTSTV9ÿÌÌð?U ÀÀVÿó3<9?UÀ00T?üÌÌ7??  V9ÿ33??ÿÿÿÿöü¯Ö3šõì¸%%¸t46|4û6E|EzC6×F6E66Z6Æ6„E&Öü>&’{;6�5,|À÷þ$ö®a¬aghaH¨µÀNã;ÐÇK|46°6E|E|E‘6L{N6cLyL6aL¿Ö6cü“å[ô±€LvÌ ûL;I‰¢46|$CzCz‰À‰‘6§¶6§=rt6í;rr6§�.cĸúÎJ��Ãe &;ÀØ4|6‰À‰À‰À‰rì’,ŒìL.ŠÍëÍ[$¯{{Íìêµen;뽸àÝÛ6zzíÍû͵ì·îrì[§Í=ŸÍ=ÖlÍ�Ö-/Íé뺮?ûów! 1ww÷  |Hò <828!L#^!Z!J!}$=!! —Wðppp÷$ �rH×$�rH$&42(e&='»wrF·$kPFµ& $*&*E&?!ÿÕwðpppð+FðFðFðFÿ& $"$(+&E!-uooMOÿÿ" $ÿÿÿÿ�pIåSîËg¾óã&ŠñÞf†‡Òÿÿÿfežpo/ ÜQAK%å¬f€_!:gì")»¢˜£ü5� Gk\�ˆ›^”@¾ÏSGÁ¤êEZÿL)DŽ}—u¬343–j0©³Ä´Z¯Åÿć‘[âaÒOTž^§à†W?õK®™�ÿ~©çès™ñ•Ó7¸"ƒé82pE"ª,Á†òOcöŒ�SõÙN”DEZ÷ƒddL©ÂËÌË¿ÀUVeZ>5xMzFLM*›Ý¢L~gu­xj�•�ˆ‰¹`ï.\v<^bÞuê^ì<.ÞaR€ÑéíáÏíQbÓɇªªªª$pA"@ 0&òVT6QPo+%O³ù³õ»r-O"G(IBAPðõeee�_Y·ó›_Y·$""E³Fö´@FN�xxVQWµó›_9µó[ •dW/k"P¡ð õe‡‡Öõöõö÷öùtC0òp®V¯xXxo_!M_M_oy ÿÿÿÿŽœ;Õ­!™±Ð8xS³PÕ�š’"¸€!ÐÏÐ…†[è‹ö|ŽÃ¤]H8ö¶ê”Ãx x�óêžxyy.‘¦¤¨\9�š÷èòê"Li\œž5=’ t-ƒ¿6[„ýþý:©¼F™B%¬>õרÊt•E‡ÐŽì>Ÿbì4¢ÝòÏx´.‰Rÿlƒk¹õ£`‡D»t­ïÂ�¡eâlqu)ÂÀÏníÊHÞ4${v¼YÙf pš ¶œÊ—y åæå¢¡ò‹Âf6órÄ'³¤%UEí“1’6i#lŽH’�ÔƒûÄohO=A_Ê+_©ü© Ð;�Mˆ^ë¨"E ª:@4„—²VVUYA#CcC   ñ]\Gš$ CO D�À1GA¾Üðx�GÑPo·„½f`\HH@"ñ„#0D™˜¼õu]׸  P`"�' ƒÆèżß~[V‰ùÕY w±zÃ’‹ÿÿwÒÅ0,ùÁÀ? ¥nµB¬QšÅ8–¡ç�d‹TðXÿÿ࢚¶—°k—Jç°0 üùâþ±‰@¿C±8 Ç_�šÿÿðawü~¦™CÿÑ·�~FíÁŸéÚŸ°e“Ë¢½^4þÖ¯ÿüH߈Þƒ[gãÿ-‹É9¦yð• v:K(d0£ ¥ ¥i–ro/%/oÓûÕõ½’-O&ós 2? Y÷õ�;Ù((&GÕFð2 ×ó�_9Õõ{$""µfw/2 ÷ö÷ø÷öûtý\2ÿ oo_o{__×uVဿ«Oò 1³¯o…–hh †+øÅÆ���`1&÷uA1ûþ°ûV!µVHÈX¦¥¦P� H'ÿÿç÷ü€27{)”jið� …Ÿ` eÿÿÃTÉ­ÁÈÖš‚`Th@ÇÈdz´/0Ÿ```\ÿÿºßäZE%äq¨,^q_ýó‡—ç\¨YY–e3ÿüLRS FINORQZÿ0(ðVVVP]N`!#ÿ?( OVcòõ‡‡‡N� HÿÏ(W JQZÿ¯zšÞÔkV!` d¿ÿ*[VSV¯ð ýííÿ@s^#```HÅÿ._\ }f¯xzÿø %õÿÿÿ3ÌÌÌ?////?ð ÿÿ?/0G0G_`@0000(?////??/___`@0000(?////??/___`@0000(?////??0/0/0/0`@0000(?////??0/0/0/0`@000EEQUÿ ÿÀÿ Àÿ0ÿ0ÿ@ ÿ ÿÿ€WUUUÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ33ÿÀÀÀÀÿÀÀÀÀÿ3ÿð À¿À¿À¿ÀÀÀÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌÌð?ÀÀÀ?ÀÀÀÿÀ ÀÀÀÀÀÿ?ó3m'K?@ÖìÅù°8õ;#¨rUhn�vu‚N¶…ç-ˆtOËú w¶ {/ÍÓÐçõLÝf°Àí „5@æf‘!! qøuÿ·Ëˆ 䉯f>ÿº%W?’㻉X6ÄY¢aß[ßÀ¹e0?ÿ ?M?M_!@¶àƳ¿Ä^CT¸¶áÿÿÀçcÛÜ }ÜÑü`CÿÃ0KNƒrÿÿÀ-`0(?////??0/0/0/0`@0000(Àÿ0ÿÿÿ?ÀÀÀÌÌ00?ÀÀÀ?À00ÀÀ@ Ú�ÿ&ê�Â@GÄ€¿�Ð             "$      " &(   6@                  !!     Y                 I          I              =                 =      T23_rockT23_rockÀA�BUÀPÄðA)ÜMÀGÄl%lÀA€GD�BUÃðA€PD)ÜMà % 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ³OÀŸ¬�µ��Â4Û�Â�µg?Â�Âr ‹�ÀÿÀÇÂ�‹WU"]W$_W&aY W_ÿÀI<}’a)MÉç(aL 0_'!!`(¡´ê8ŽÞ¿ÀO6˜Hf#Ëñ²~KPw Cx¿H wï2CŠgÒ¿ÀO<Œg `@#JÉîmIµ#íÉJm$6kG$#VylHIãt&ºu¿ÀO'&Æ�$3Ã?ð?`_ @_ @_ð? @_ @_ ð@_ ÿÏüÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÏÀÿ¿¿¿„0„0„UUr�ï_ìnFiÐA@HÄ€¿qÐ  "( "( "( "( " T24_groomed T24_groomed¨Á…«\ÀYÄœA…UÀPÄ   ²¯²¨Á€PD…«\ÜA€YD…UÃæ¯Þ ÿÿýÿööööööööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööööøöãöøöãöøöãöøöööøöãöøöãöÿüÿøöãöøööööööööööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööööøöãöøöãöøöãöøöööøöãöøöãöøöãöøöööööÿÿýÿ###77777777777777777ÿüÿ7###777777777777777777#UUUUÌ0Ï©ª©«©©ª©ÿü ª©ª©ª©«©©ÿü ª©ª©ª©ª©«© ÿü©ª©ª©ª©ª©« ÿ©©ª©ª©ª©ü ª©«©©ª©ÿü ª©ª©ª©«©©ÿü ª©ª©ª©ª©«© ü骩«©©«© 0«©©«©©«©©«©©«©©«©©«üé©«©©«UUUUÌ0ÏSÿü ÿü S ÿüS ÿSü Sÿü ÿü S üÃS 3??????üÃ?UUUUÌ0ÏÃÄÃÃÃÃïÃÿü ÄÃÄÃÄÃÃÃÃÿü ïÃÄÃÄÃÄÃÃà ÿüÃïÃÄÃÄÃÄÃà ÿÃÃïÃÄÃÄÃü ÄÃÃÃÃïÃÿü ÄÃÄÃÄÃÃÃÃÿü ïÃÄÃÄÃÄÃÃà üÏÃïÃÃÃĸ„<3¸„ÃLÃÃÃLÃÃÃLÃÃÃLÃÃÃLÃÃÃLÃÃüÃÃLÃÃÃÃÃUUUUÌ0ÏRÿü ÿü R ÿüR ÿRü Rÿü ÿü R üËR 3>>>>>>üÃ>ÿHG•×ÿ‘•ÞGUUUUü¸™ š ™ š™ š™ š™ š ™ ÿš™fÌÃ,Ó$ÿ9. š™š™š™š™š™š™ÀÌ˸UUUU„d@ÿVUOþÿ­O¦Uÿ÷ÿÿ000'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ Ãóóü`ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(000'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0PQUHH@Ì‚|||€‚‚‚~€ÿ‚‚��‚‚~�€���€ÿUUUUÌ0ÏÀ¿ÀÀÀÀÿÀÿü ¿À¿À¿ÀÀÀÀÿü ÿÀ¿À¿À¿ÀÀÀ ÿüÀÿÀ¿À¿À¿ÀÀ ÿÀÀÿÀ¿À¿Àü ¿ÀÀÀÀÿÀÿü ¿À¿À¿ÀÀÀÀÿü ÿÀ¿À¿À¿ÀÀÀ üÃÀÿÀÀÀÀÀÀ 3ÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀüÃÀ?ÀÀÀÀÀUUUU€€!ÿÿÿÿöööööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööööøöãöøöãöøöãöøöööøöãöøöãöøöãöøööööööööööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööööøöãöøöãöøöãöøöööøöãöøöãöøöãöøööööööööõöööáöööáöööáöööøöööáöööáöÿÿÿÿ##777777777777777777###777777777777777777##&77777UUUU 0©©«©©«©©«©©«©©«©©«©üé«©©«© 0«©©«©©«©©«©©«©©«©©«üé©«©©« À ©©«© ©«©UUUU 3??????üÃ? 3??????üÃ? Ì ? ?UUUU 󄸄ûÄÃûÄÃûÄÃûÄÃûÄÃûÄÿÏÃûÄø„¸„ 3ÃÃLÃÃÃLÃÃÃLÃÃÃLÃÃÃLÃÃÃLÃÃüÃÃLÃÃÃÄ<Ì ¸„Ãû„à Ãû„ÃUUUU 3@@@@@@þÃ@ 3>>>>>>üÃ> Ì > >PüHG•בÿ•ב•ÞÀGHÿG•ðYUUTÿü˜Ã,Ó$š™š™š™š™š™šÿÿ™ffË9$9.À ÿ¸˜ÃÿÀ ,Ó,š™ š™UT@$��€PüVUOþ­ÿOþ­O¦ÀUVÿUO¼kÿÿÿÿ00'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(000'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(00/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/TUE‚‚��‚‚~�€���€ÿ‚‚��‚‚~�€���€ÿHHUUUU 3ÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀüÃÀ?ÀÀÀÀÀ 3ÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀüÃÀ?ÀÀÀÀÀ Ì ÀÀ?ÀÀ À?ÀÀUUUU€€!ÿÿ?ööáööööøööãøööãøööãøöööøööãøööãøööãøööööøöãöøöãöøöãöøöööøöãöøöãöøöãöøööõöøöööáöööá÷ööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööööøöãöøöãöøöãöøöööøöãöøöãöøöãöøööÿÿ?7777777777777&77&7777777777777777UU ©«© ©«© ©«© ©«© üð©«©©«©ª00 ©«© ©«© ©«© ©«© ©«© ©«©UU ? ? ? ? üð?00 ? ? ? ? ? ?UU Ãû„à Ãû„à Ãû„à Ãû„à üðÃû„ÃÄéê00 éW8õ éW8õ éW8õ éW8õ éW8õ éW8õUU > > > > üð>00 H H H H H HUU š™ š™ š™ š™ ÿðš3fËf4îÕS00 TFáH TFáH TFáH TFáH TFáH<<< •êcª_�ãUUL°0           ÿÿ??_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0('//ˆ'//ˆ?//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(UQH@||‚‚|~‚‚~ ÿHHH@|||~‚‚‚‚~UU À?ÀÀ À?ÀÀ À?ÀÀ À?ÀÀ üðÀ?ÀÀÀÀÀ¿00 ÀÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ?UUÿÿ¼ÿ¨Á@PÄ€¿·Ð       ",.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<68:<*,.0 "$1      EC&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  2468&(*, A      53&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, =      53&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, =    53"5(*$24&  .(68*  2,:<6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, =97 9   "$   5365<>8FH6(  >8FH2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2 T24_powder T24_powder�Â…«\ÀYÄ�B=ÊIÀPÄÖFÖ�€PD…«\Ã�B€YD=ÊIÃ$F õÿÿÿ3ÌÌÌ©ªª©©«©«ð Ïÿ:ã©«©©«©©«©©«©ª©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ëº®3ÌÌÌ*è`@iF”iFö `•¦Š•¦•¦ðððð*èF”iF”oZiZiZiZ�*þ€diF”iFõ¦•¦•¦•� *ÿèF”iF”oZiZiZi� *ÿþ€diF”iFõ¦•¦•¦�_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©0ÌÿÀ©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©«ÿÀà ãä©«©©«©000©«©0©?ð0Ããä«©©«©© «©© «ü 0ãä©«©©«À©©«©©ÿ ãä«©©«©0ÀÀ©«©_UUUTSTSTSTSTSTST7S0ÌÿÀSÀÀÿÿSTSTSTSTÿÿÀSTSTSTSTVÿðà 9?0000?0V?ü0Ã9? ? Tÿ 07?Ã?Vÿà 9?0ÀÀÀ?ÿÿÿÿÚ¿×¥ñÏûÏòŒÈ_pR´hh"h�$‚"�¤�¦�¤‰Š"‰Ø$!‹¶3C¶3E¶yµê‰+M‰àéy]E,Ñr¥,"‚`œ™"gð¨h""£¤C=¦E "‰¶3,‹¶_E¸V£E¶V’XOM«Æ3¶$á¶ Æ„ ‡�"$"_ ENC"E¶X¥CpâÐE¶×ŠC¶Ù+j5âȵ¾‚®òÐÅMB(Q+#+ÿWQQMMM$&$(("(U+%ÿ÷wñQ)L¼¼¼ $$(,.$)(U/%ÿÿwQ'Ó///&$$&..$/(Y3'ÿý÷Wá3#ð(ð(ðFÿÿÿÿBN©“}ÑÜç�…�ï1˜>XðË™õ²7åá7µî7IÈ}Ó[5’ …àa?Σ€©?jv+Ôâ�ðzç‚?1 lÈ+7�5§Š©®¶e¯ÚšŸŸE®Þ¦§Eî ®Ûº"¹eíþΰ8J?î'Mw¶¾ÒÃÅÅ`©]°o*-~œkE§Ÿ5èͺ"Ûÿ#Û¹ÿE¹ÿ³P�ëOëI{é¹wÞ·½hL‚Bsuѵî'n�I6k÷òX̵V¦e?î­?î­µ³zTVÜË]u5F¢@[óÈòÛ"‡•Z£CgÜyÏÑÜŒŒ¤ ó» 2ÎÉác]¢ßTkç”3²rFMªªªª 2²1óóoôÒ?³û%?³5$ҸijÆÓÆÕ°R0!AñCw¯V��³ý?Óý!7KoW5/9XXúðý?µû_µvóæõöõö÷QQ1BñCwZo¯oµû_µûWo_oo�—%O69^tÌò$ý_õÿ_ùT÷öùøùÿÿÿÿN�wÀÖûñ4ç°èD¡žòn^ bØ»H®óF®Ë®òTºsø|Œnø¤qÈ5�Š.•Aü%Æ?¿"„kCõ,aé¤Äîßêd­®BÜÝÚÓ9´ä¿ ŒÒÙ¸â-I$ôãÖ7«.È»Ôߊ?Ęäy8Vù((^­]-éͼ(ÚüV¹Éª$ôèþèÐÝЩªYÎáǦ�¶ñ~ÕäÅ¢Ö%FñÁÛçGå¼ÒàTÜyåë;jLõ =aëÐëãª¥Š«È…†mè¨Àl¶EÙï¼±†Ó¼ƒ~صqµjF�Ûæ}gkÔáöðä£?¿ýéÇ·ñ•õ>/¢VU¥©AA TP"�†@„„„@fä £bxcî!qqX2©üa€^Ü\P0¡B$4 # `y B Q Ä@T'b1`1BQõu]ïHÙø,�†# |•�Iüè1Ië©Ô C„dÅ{Ól©�³ÿÿÀlè0ëÖaV²2ð¼ñ†!ž™šÚIXSHÔ>à �ÿÿðSFhïzFÄÎ|>aLyƒöÎ\F�½�ÿÿþ%<¥ qB�QX_†L�y«;ê6ؘ–ç�,7u¢GYúmàù ôB@4¥�áÕûrdkäR a(Š&ð¸æÓÈóä×ÐR0�À,M�_�ÿB0 .Vóöõø÷øùSQ1Dð.o_oooµ3O.V÷öûöû_]×µ. ãð�s-D'Áï›tëh,,Zb! ÆÒü$àü`¤ÿüÚ~¨�€ÿÿ¡.B¦CÌÞÄV‹œ–\³XíêT†€Àú?ÿò8Zri&eåY-?è€ú†.³†çÖü`çPa€ÿ€²N›¿}ôTy„ˆdsbbôüôÿ:ø³éª|CÉŸ¿€$/a?ۑᔆÿÿð444æýÃ0Y]×u9þìý`ch o0 ôÐ?óÿ+ÿ�€Ýÿ2 IL‰|%À?ÿ4gj KN !ð`a€ÿ6 MLv!üÿ8   wvÿF õÿÿÿ3ÌÌÌ?////?ð Ïÿ?0000/0/0/0`@0000(?////??0000/0/0/0`@0000(?////??0000/0/0/0`@0000(?////??0000/0/0/0`@0000(?////??0000/0/0QQUUÀÿÀÿ0ÿ0ÿ@ ÿ ÿÿ€ÿÀÿWUUUÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿó ÿÀÀÀÀÿÀ¿ÀÀÀ0ÌÿÀÀÿÀ¿À¿ÀÀÀÀÿÿÀÀÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿ?ðà ?ÀÀÀ?ÀÀÀ0000?ÀÀÀ0ÿü0Ã?ÀÀÀ?ÀÀÀ ?ÀÀÀ ÿÿ 0?ÀÀÀ?ÀÀÃÀ?ÀÀÀÿÿà ?ÀÀÀ?ÀÀ0ÀÀÀÀ?ÀÀUUUUfffB@€ffffÀ@�    � B@€ÿ©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©©«©ªª©ª©ª¬«©ª¬«©ª¬«©©«ÿð©©«©«©«  *ÿÿèFoFoFoFdõ¦ö†\FõÄo\FÿÿðUÀÀ©«ÿÀ0ãä©«©©00«©©À0«©UÀÀTÿð07?00 ?À0ÿ^‰ó_׊£<”­4®,‚¶X¤´.444éáìŠ�qCV­ÏÇ“;+û¦OÅéiCpØXÏVgz+óÅqÇNÿð)^“­ñÇ«2$" &,*&3*]5ÿÿ¿01q)!s•ñj÷lñfï¬ÿ:*ÿð&(&*ÿ嚉ô·ÅÃŒ^­Þ§8!Bö±ÚnÿƒË`íièïÞJÓb”q€öLœºÿó¶™Â�gÌ?wA/ÛqG9pLÐ:¤ö€ÿð1a]˜>|úöû˜"ó£`·ó"ûý*04($( ÜÿÎØõÑDþäsü–Jolÿ�«šÚÀA½�ÛžY›„S>2’8 |ÁËeųÐËÞ�Ân Äz}¿~ �f/fÿðXŸu¢«ªD•³"$ B!òF¦¨/¬OŠ¢´µñ)uô™?Ku“:À×ZQ„‚ÆH)�eÚíú <<ÿˆ^à£TGà< ÊÎ�†º§ØQkÿððßs€Òøûx1ð0ÿ ,&,  ݽ Àÿ¿ å¾TŽßûœ>èÉŠÐKe=ÑתJ峪|_ X3�#]€ÿ6  kvuz.ÿÿö`61 > C™ ÿ/0`@0000(?////??HHHH0_0G0G0`@ÿð0000(U Àÿ ÿUÀÀÀÿ?ð0?ÀÀÀ?À00 ÀÀ?ÀÀ0ÀÀUÀ@�  ÿÿÎÿ5è�Â@PÄ€¿ÛÐ           "$ " *,& *( 24.$         .8                  1/1    "$ " *,& M                  )')    "$ " *,& =           )')    "$ " *,& =           )')    "$ " *,&  =           )')    "*,&  .(682$   9        T03_groomed T03_groomedpÁ ×çÁäÂ�AžÁœÂ   I I pÁœB ×çÁ�AäBžÁ—� ÿÿÿÿ¹ºŒººŒº¹‹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹º¹¹‹¹¹‹¹¹·¹¹‹¹¹‹¹¹‹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹‹¹¹‹¹¹‹¹¹·¹¹‹¹¹º¹ºŒ»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹ÿÿÿÿ..-EEEEEECCCEEE-----EEEEEECCCEEE----.EEEEEECCCUUUU ü0Ï©ª©«©©ª©ÿü ª©ª©ª©«©©ÿü ª©ª©ª©ª©«© ÿü©ª©ª©ª©ª©« ÿ©©ª©ª©ª©ü ª©«©©ª©ü0Àê©«©©«© 0«©©«©©«©©«©©« 0©©«ÀÃ3©©«©©000«©©000«©©000«©©UUUU ü0ÏSÿü ÿü S ÿüS ÿSü Sü0Àà 3???? 0?ÀÃ30?0000?0000?0000?ý×UUü?Ï쎆셅stìËZäUäU�½•ãŽc†�¢ëä�Ùã�ããýŽŽŽ£��ä�¿ZU¬ìëìï’×°)ßšë< oËìëìëìü ëì……ìËìüðÏÃëì…ŽììŽ�…êŽììÊ]ä�ØR��DÿÿìYää�����|óÃì;§k¥o…ì°ê… ðì°êŽìÌÏ30ìŽìŽ^…… 0000ì…… 0000ì…… 0000ì…… UWUUü?ÏT ØŸ!/ ,0 Lïÿ4   "Tü Tü0ÉÃ,3ÓÓD/ CV#óÃT > °>ÀË30>0000>0000>0000>ÿñU¯tv‹S ßaÅ;¯-e§ƒ°ÚU–ÖX:c>å\‘NQ€9ðD?B»65¦Œb1.2‘`™fŠ·$ÿÿü:ëïŠÍ)Ùà´}hWXEè¡EFEê£ÑÒFE¡èEFEÏ…ó-#% 1ÿó¯È�7//S1Íÿÿ7Ù[+ÑN]\8ðk4óÿEFEê£EF?ÿÀEêºÑ‹£üWVQIyäÿÿ"üÏÏ +/+Ì`ÿÏ+ ·¿¼!&<óð  ð¤ô0a&ÿ÷_W°ÑåAæ ÁZï§2�¬ðœÒ{Â_â‚™L£Áð¹7läñ}õ)²±úºðãeÃÕ›àh–Ä„(TùaÚ‘‹7¯œòÞJ“¶Ï’ú‹Œ‹Œ‹ü Œ‹‹ŒŒ‹Œ�y 7Ò)aŒ6ϨÖeµ*Ñà Œµ*¦a�ê(‡„äç«*Ýá�Ÿ��㔛ϷGÛÌ`ð°ðÿÿ)aŒ6C)aŒ6êÒDU‹Œ.-00‹Œ00‹Œ00‹Œj’q‚¾Tð!öPó"ô`¦`ò44òðI¬/ÿÏO 0OÇûs$ æÆD  74P}rEÿÏ?ÂO÷†ŸCäÁ1Ãlþ � mýgçðßA�FEŽGÖHEF—i˜KÇÈŸü/ÿ€-$?NmnW¤KWXW¤KóòÇÖ ò{wð #$|ø38óÿWXW¤KWX?W¤KPþÿ? #!(üÏÏ /9 9 Ä<óð%  ðÛÑÚ‘‘á+*9<WRA ”`5ÿýPJ�ÌDCÖÜŽEF·$¨˜å¢ßÏþü¹gÓórÞ­¢?WXL£XWXU,²É8-G˜ó¿NGÑFH æMÿÿGcï%ǰÃ}ÔHð‰BÿÀLû°L¹nUQ$B˜„�€oÿÏ  - "ÿÿ|?" ’> `ýÌ 2 ð$€ýÿÿ/0_00_0/`////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿüÌÃÿ€ßŸÿ€ÿ `ÿóóüÌ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0(W0(W0('//`//`//`////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(W0(W0(W0('//`//0/0_/?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@0TUUUHH@Ì|‚‚||€‚‚~€ÿ‚‚��‚‚~�€���€ÿ!!!ñññø‚‚‚‚~ªjUV`V``öVVV```öVVV```öVVV```öVVV```öV``` 3 0``000000000000ÿÿÿÿ¹.¹¹¹.¹¹¹.¹¹¹»¹¹‹¹¹‹¹¹‹¹¹+º¹º¹º¹ºŒ»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹‹¹¹‹¹¹‹¹¹+º¹º¹º¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹‹¹¹‹¹¹¹.¹¹¹·¹º¹º¹º¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹ÿÿÿÿEEE---F.EEEEEECCCEEE---FEEEEEECCCEEE--CEEEEEECCCEUUUU000«©©Ã 33«©©«©«©000©«©000©«©000©«©000©«©Ã 3©«©©«3ÀÀ©©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©À ©«©©30 «©«©© «©© «©© «©©UUUU0000?à 330000?0000?0000?0000?0à 3?3ÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?Àà ?3< ? ? ? ?UUUÕ0000ì…… Ï 33ìŽì…ì…ì…0000 …ì…0000 …ì…0000 …ì…0000 …ì…0à 3 …ì…ì‡3ÀÀÀì…"‡ìÀÀÀÀ…"‡ìÀÀÀÀ…"‡ìÀÀÀÀ…"‡ìÀà <…"‡ìŽì3ü ì…ìŽì … ì… … à 330000>0000>0000>0000>0à 3>3ÀÀÀ>ÀÀÀÀ>ÀÀÀÀ>ÀÀÀÀ>Àà ,>3< > > <, 2"T €’PÕ9:?<suêst9:ÃÀ<ü9ÛéWXEê£üFç­¯<ÖÕ<üüßñò80gË1„¹xiI잪J‹C5ï‚‘»‰ÀIPTBH<<üü"& ,+,PÐõ00‹Œ;OŒ‹FF/0/0.-/0ð.-Ï<ÿ.-/0.-/0/0óÀ.-À;OŒÇ‹�>Y.-6Cÿÿüoç§o¨pµ§"° <‹ŒÆÅ!<¥í,Êʪ(Ô«y4ï‰F{c„¤'.*@d€<  ð?ñóÏ -] (PÔIJ?<‘‘Û‘’IJË<üIHmnW¤K<<üþßKL˜�CF•Ù(Eæ{F‹a'鎫×ZET<üü$(Œ+*@UÀÞÝüW¤ÚÚ<üÜ <@U€HHÿÿÿÿ0Ÿ@00Ÿ@00Ÿ@0000(W0(W0(W0(‡0/0/0/0_/?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(W0(W0(W0(‡0/0/0///?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(W0(W0(o0(o/0/0/0///?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@UUUU0ÿ!!!ñññ‚‚‚ø‚~0ÿ„„„ÇÇ‚‚‚Çà``‚~` ``` HÿHH@|‚||~‚‚‚~YeUV0000``0000000000000000``3ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀà ð`   ¹¹.¹¹¹.¹¹¹»¹¹¹.¹ÿÿð¹¹.¹¹¹.¹¹¹EECÿÿðCC «©© «© ? UUÅUU8ýãããU¬ÎÏð]ÒxóIÊ&>(Ïð(Ó°´ÒÓˆAí�wà–ÏÿðƒW_±•Ç·óB0ç÷Ïÿð *fë0ÖŒÕWO¼ïHp �ÿÿð#o#}-Ü{­—\†¯"/Ïýð5 - ÿÿ>ÑÆ¬ÔÑŒGã�v@24š|©ªùeÏÿðŸש]_™,` 3Ïÿð#XI*?00Ÿ@00Ÿ@0000(o0ÿÿð(o0(o0(  WùXˆÿ“ÿpÁšÂ€¿N Ð       (*,&$   6(BD6 >8FH>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2( 64 >@.$ 20 :<*  1      EC&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  -+2-864 >@.$ 20 :<*  ., 68& 1  535$& .0"  *$24.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  -979$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  %979 "*,"  *$24*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   2,:<*  !535 "*,"  *$24*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  -+2-8:4BD2$  :4BD2$  :4BD2$  T24_rockT24_rockÀAì‘[ÀYÄðA�BUÀPÄl%lÀA€PDì‘[ÃðA€YD�BUÃ"% 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ>+aXyXânw¸¸áªÀw¸¸&sww¸`R{åÿÀçÌü,ú$ SiScW],oMF“)ÿÀ`© B#:g/”ô‰5›‚` 7—µ�G(_¦»f>tnÿÀ&S @` @y:|Œ�n=AR�pÑVy@ˆk!ÿÀ$g †3à 'P÷|眩ü Û=;© Û=;© Û=;© Û=;©Û-- LÇNl>çêÿ?©kÊ ©ê>º ?ÿšZ©÷×ÙkMÿNººL©êœU•UUÿð91?ÿð B00?ÿBð00?Bÿð00?ÿð0B0?ÿ B/ õõõü 6 6 6 6ýÜó6 ÿ7 @7G 0 G6ÐA??®­æªpkt?À.ѳ§ðßst6®à1H*ØÒZCD®6)¹àðPÐ< ŸÌÚ/ÅâŽ�É%ŠÇ>£í.dÿ-Ü;qpsÉ&&¼3r77¶?uäjÿÏ}·±šr97´�Z +>@`A!ã0£Qãxð³gå€%Í%–¿4–cÿ _ÕUfeëìëìë†b*-Úb<¥Z_Ãëìëìëìëí00?ÿñoÃëìëìëìð00?ëíñoÃëìÿð00ëìëìëíño?ÿð0Ãëìëìëìëíñ0?óÿoÃëì Ÿ&»îAZEÿÐɳÞܱc:¬t½"üü x„û x„û x„û ÷‹lÇ!¹ø‹Ç¼œ?Ç..N\‹šNº×çÚ‹-kk^ç-lnÚMM-Œ ö~-ª©ÉÊ /šèÚê«÷‰l{0ºk�MKØÚl×Ù×MN«[Nš ¹N¬l~·-<ØØ÷ا{=ÙÕ‰Šj‹×NÿÌüNº>km~}›šÃ~•jWC8  333÷ < >ßõD!-&!¡qÜõ0yÒ ’"Bðð·�_KõDµ¯üß"-6#GWÿD E H*I?Ï]E2-.TM üJ Ãÿÿ±­6v“r"ùÉ;pfç5›k›ÁÂÞÝ*vŬ9ú! 7b–ËE\Ó;�âVó}.AÏ¢}'nK2unt*±øÞñõâ‚\­ Ÿ¼Ê8E=vozy ±ÐKºÌÛs¡¸w ² É Ú½Êys¹œ@ìÆ”ŽsTVw(¥–Nµ9ÿŒã_Wu­@ट‚卸óC“\_{ˆYõ8µUZe›1oùªYÚ;üÆëJºjgE D'`6”0 0¯9* &1 X#@£Pð?õ¢ÔETI€eóïÿÿû1KPYOM0OŸù"€ ‚ï#'# *5ÿÿü3$kNÆ�CÀÿÿFGSG7PF�UDDƪWƒ>lŒË s€) G3SvW ¾0êú˜óBªZA@zÒ(ûû;÷×ã ÿ¥¸á¥ªfª+®¥ð ï�¢�?O%% bFò ðsøUuðšÿôÿ”.%0€ªŒGåïN;DLB*yù;*Ÿ“û¿öÿ(Qjsü +Q6q1ùœs°¶nV$D|ÿ'—•�Ç ?èµ k&¾Eн7ÀV˜2�ÿÿòIR,·ŽAb�‚�Å�ÿ A3@Oðÿò1»/¥¾#ÏBß�-(oøú$¿ðÿ+$,ùæÿÿðJH6ÉN:*Á Ï À4Uï $A0 "5 ! Ró,ÿST[ 0J| ?ÿðI,iNÿ_ÖØI{h2Úô)dÁ}H²²‰èçÞÝ ]óý2ÞºfMBfŽ)hE£…ŒoV @›bIóÐD@îŸï¾R;_�Kvd|{‘’BÆ&W$ÅyèÅ$?ÿÿ§CoÊÐm/ý�ƒÏóÿ:ÔÖxŒŠânB¹¯°î @ñCª„‹£òîBAQÑà`Dê‹}�×GÞ’´õh³aÛü¤æB–jW\üOÿÏý� �<; â6?¯oð!?ÿù¿óZ!šÿÿôx18;ÿDO¯õ''D%ÿ {\ % `InwV5RKôÐLÀDA/ÿ. üÿÿÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0_0/0/0///?_Ð/?p/0/ÿŸÿ€€ÿ€ÿ `ÿ `ÿ `_À@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0//0//Ï_`_`_Ÿ Ÿÿ`@00Ÿ@00Ÿ@00Ÿ@0000(W0(W0(W0(‡/0 Ÿÿÿ `ÿ `ÿÿ_``@00Ÿ@00Ÿ@00Ÿ@0000(W0(ÿüW0(W0(UU€���€ÿH`÷à``‚‚~ ÿ0�þ��€ ÿþ‚UUU?ÀÀÀ333?ÀÀÀÀÀÀ< 30À?ÀÀÀ?0ÀÀÀÀ¿ÀÀÌ À?ÀÀÀ ÌÃ??ÀÀÀÀÀ¿Àó0ÃÀ€ÀÀÀ?À ÀÀ?À0ÃÌ ÀÀ@À?À ÀÀ?À 0ÀÀ?ÀÃÀÀUU $„€&„ÿÿàÿ�Á@YÄ€¿ÝÐ      .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64  >8JL:(  >< FH6,  :8 BD2(  I         E C.E460>@.   60>@.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  5325824:<*$ *,24" "$*, =    535$& .0"  *$24.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, )979 "*," &$ .0& &(.0&  535$   535     53*502,:<*  2,:<*  2,:<6(  2824:<*$ *,24" "$*, !)' � 9už'Ku8ouou/)79/!  71?A7)  ?9GI3%   3W¬64 >@.$ 20 :<*  ., 68&  A        536RÅ  ?9GI7)  ?9GI7)  ?9GI3%  ( &3cÄ64 >@.$  20 :<*   ., 68&   T25_packed T25_packed@Áq½hÀbÄ�@\ÏaÃ`^Ä   ørø@Á`^Dq½hÃ�@€bD\Ïaór« ÷Œ‹‹Œ‹ç‹‹çŒŠ‰ŠÌÿÌÏŒŒ^ŠŒŒŒŠŒŽŠ‰éŒè‰éŒè‰éŒ‹ŒŒŠŒŒ^ŠŒŒ^ŠŒŒ^ŠŒŒŒŠŒêŠŒêŠŒêŠŽŒ‹éŒê‹éŒŒ^‹éŒŒ^ŠŒŒéŒŒ^Š‰ŠŒŒ^ŠŒŒŒŠÀ‰÷0/-.-^/-^..-.ÌÿÌÏ.0‹..0...0.-\0]-\0]-\0/0...0‹..0‹..0‹..0...[..[..[.0.-\.[-\.0‹-\.0‹..0\.0‹.-..0‹..0..À-]U 0ÃÌŒŠŒ^ŒŠ‰Š‰ŠŒ‹Œ‹Œ‹ŒŒ0ŒŠŒ^0000ŒŠŒ^à 󌊌Œ‹ŒŒð ‹ŒŠŒ^ Ïü ŒŠ‰Š‰ŠŒ^ðéŒ]U 0ÃÌ...‰..-.-..-.-.-.00...‰0000...‰Ã ó...0/0.ð -...‰ Ïü ..-.-..‰ð\.ÿmyp8 pÝ nÛúÊm o wÆÌomom³FÌÆÊ†°ì NAöóýôõ3�ûmomNõm.óNó óõóåmóê†ý7?fô™Å 5.X!Ý{mmdõ߯aÝfáÛdÝ”^‰âùÔ6Û;¡ÆÝf—îðŽe®zô/iÔóÕ2¸?E?%ÿ3u^@73;1?Q<°ñùOýÿ~Ó\Y3•ÿyù—ÿ°<"Ý3 !"' Ë-ðöÿy¸Âù©´l¿ÌÅ{|:€u€¿‚v7|ûL*¨*ek~<‚3>娇†MJ4D|7zB€ °7زòñPˆ^kgå0Æ‹Õ\oÉ«LA¼Ì‰ƒ„W»ßÊ|a`ÿzƒO� Eªð (Uj=€7óÀ¢“ß &ahÿÿÿý .ð©eÿïõõÿógþðÿxéS O�ÄÉ0àß!ÐDéê‚C+œß(`¤¡gަ‘YkWÄ”Ž+øÝ+/ÙþŒÕ¯'“ÙŠ¸G€Ñ÷Ðv˸*ýÖÜÝíÈ.µõùÀXڠᄃ ú ýëÕÍÀzøî‚ÙºöøðI •uf†@ ŸôóÿñZWKÛ¡Âþÿ  R3#óÿ  €/ #%2 ) ð%Uu<Љµmñ€Áà‹Šïü MD¿Ì"™ŠcÀÿÿ…ø ¯{Ȩ·)EBðU< /ð À?ü)8À ÿÏ  ÿ‡ÊŽÌeʆÉ43…†D†5רæ£O6Pæ’3H‡ÎγDC´ID†CŽCó�Ϧ(8Ý®ÌÛÌ.�Ë}TµÞ éKzÊmÕ-‹"ùmø¹{|¸ó™€ÕÕõ‚x‚"þÚK¹ðIÔ¥k b| ÿð?Ì^ Ñÿ ÁO+0-> /ÿûe·%2õÕ÷p�ÿ*-¯ÿìðÀ ^Ä€¿Ð   (*,&$&(.0   &24&   RXZd^`Z`fh  ))e†+7egi_egi_egi3-;=+  3-;=+  3-;=3%  4 3[ œ 64 >@.$  20 :<*   ., 68&        y.8:<6468>@*$   6,BD2)'6fÍ!! T25_powder T25_powder„¸žgÀbÄ„Bq=QÀYÄ-O-„€YD¸žgÄB€bDq=QÃ0O( Õÿÿÿ3ÌÌϹºŒ¹»¹¹{=ÌÌÿ-/--Œ/--ÿÿÀsŒ/--Œ/----.-.-.-.[-/-Œ-/-Œ-/-Œ-/-¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/^/0].0].0]Œ-/-{=¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-º-/-Œ-/-.0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/--Œ/--Š0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/--Œ/--Œ/--Œ/--Š©®ëº3ÌÌÏ.````öföföf`ö~eeeÀ```öföföfððð.øCCCOCv¥:S¯do�ÿ.F”iF”odjode:S¯ÿÿ.diF”fôfón¥:S¥:ÿÿÿ.FoFoFoFonßUUU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©«ÀÀ?Ì©©«©©ª©«©©ª©ª©ª©ª©« ÿ©©ª©ª©ª©ÿÿÀª©ª©ª©ª©«ÿÃ3<ãä©«©©«©¬«0ÀÃÀ©«©ãäÀÿ©ãä«©Àà <©«©©ª© 0À«©©ÿ«ãä©«© ©«©0é«© ü©ãä«©©«©©ßUUUTSTSTSTSTST7SÀÀÿÌ?SS ÿSTSTSTÿÿÀSTSTSTSTVÿó3<9?U0ÀÃÀ9:ÀÿV9ðà <?U 0ÀÿT7à ??0à ÿV9??ÿÿÿÿÕý‘!Ý#‘kçAA=£¡¡¡å-¿Ûe8 wKè÷�¿tVa뱯›±±ëýw9;u¯:ÚÖ ®åg'H^�cõ%¢LEÔÙ×Ù°y,ïšûM‡KM¿/ÿuÿ¨Œ‡b�ëë±Õ :*:yëŸÊHö øöú )R!™lC¨ÆP‰˜”ŨMhw ž oéIÝIéê�GYWùÈú,Ú¿„hœ <Øf9:bÓ}SAÅý^·ú^PÔ‡àïÚžÚÍÌ,‚Ìé-’;e¯| ÞwëGr¯”£X¢¿ŽŒÕà{#™@ò4‰ÖÃ&øÛØÚÚ'èÜøtW’ 8ÍÜ’øms«¯ë¾+,;UWõ5'g©Sésùw÷yðq$ppq÷Ç÷õô& # ! F<248<<U$E#!)y p& ÑcÔoÿ6*  ""_7#%#  Ÿq13?²,g²�ð�ÿÿ>, $"g;#! õQ00ñ  <2"""k A ssAsuÿ%Fÿÿÿÿã¨Ì¸¼Þŵ@´Sbö�vEþä—cÅÒu~y݇ì˜ü3™½ý¸xâ«[´tE\N¸w‘u'c’•f —Ó'+‹/x·–¤G'8 òû™A2FºÐ0,Ítø3àð3"oºc½•™œ¹ì7¿”s ž�}ï™�¬‘+§Û·ÃH<éIJ@1s~ç‰Ëç¡]A ‹aÙ‡Wó²F¾ýÄØ¢ƒºA©K¼4iG©:˜=¶ü¨vØOF‡;ŽˆGɈZèð£:Oq&ÀÉnnao “¼¦sR¹â—dV²MŽÕî¡•‘þXçé~ý;u /Nåt£ñ2È£`}ÃJoÿA9'–•©< îØa©ÜedѵªªYªf²$˜±pa�`ôfðŽõ.€xœ’rr0åQ$ `"2æ°d%V !EGf¼ŸbB„Í(ñ `VKd¶"uk¯a'ìd'btB¶B'…ßPe€U F L/Aÿ'ŸÕ×u]ƒ,ˆ3Àÿ Ùý†ï˜?"Q±©»gjˆ.*•-αÁ(R8ŽŠîž«Ž5ÓÿÿænÍ%*�i˜-GºðÿPONMPó¦¬Ãßüi�:Ê'™ŠTETlÿÀú *˜¼€ÇzW¦‘ò=ZMà^yÜÐúìó¯ŠÙA!$./¿ 8—ñ¡yÓ,-ûm#† ’ùþ=Hµ�¾!©Ð#ÏÔЖe]3 $õÿÙñ5@À`$ìÀ0qgz¿Ÿ÷vÈôÀ2 ¿œïîÿ΃&'Ó 2 / Ì2 ¿¶ïûî“s6³Õ¾\=gÐÁ!É–5X?÷4T5/zÙ!½ðø�$NO®kkÀ c„¸%ž¼¼1!€6x ÿÿŠêbª@ذ�>Æ ÅÝù§¨FE·|<6óÿT¦£-?×ù7À¼c_Glš'œ'´+ÀÆ£:´Nýc¥@e`xÿ€A;0k’lK¡[à™‰»�ØXœéÊt[0èuu²òö`?ÿÿób˜“ÉmìF­:j�8�¤n…oÁ&œ‰FÌÔmš£QÇ´ØiiZÖ7Ïðÿ~wt WPUZ‚öøòùÿ4õßÿÿôp`2(mja„$& ó@5V4¯"¯g‡�ñ/CÒBÿ?´ÿB,YfYZ/¸¯OöÿOp#&109�˜d #üû),[^ ›ÿÛýÿýÝR/@0ð  wë0ST/* +4 76 4ã Õÿÿÿ3ÌÌÏ'(W///??ÌÌÿHÿÿÀ3HH0GGG`@0000('(W///?_?'('('('('@'@'@o0(@ `@0000('(W///?_?'/X'/X'/X'/0(o0('@'@``@0000('(W///?_?'/X'/X'//ˆ'//ˆ'@'@'@'@``@0000('(W///?_?'//ˆ'//ˆ'//ˆ'//ˆUUU@Àÿ€Àÿ0ÿÀÿ0ÿ ÿ ÿ€ @ÿÿßUUUÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿À¿À¿ÀÀÀÀÿÌÀÀ?ÀÀÀÿÀÀÀÀÿÀ¿À¿À¿ÀÀ ÿÀÀÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿ?ó3ˆÕAd‘0Û ¸ä.ÌÈ< ï!+b_kqK¤÷ëæ€¤ ì"X•kZ|·/P1D! 1Á;î¤N *2U :S 23 ÿ¥…cÿ�ÿÕ"= ÿÿò€, 0ÿIóZzï;±±ÇÙƒÈYY¾4þ<™z:"òçó±Eð’n�Ï6d}ëíK–ªJ²'ø�»pùÀ�ê‰ÞòzS’FÄI~q¢3r‘Ôw@SpQ³J°ú¥Z�ô 0I\`�35 ó÷ó . !4ù™çÔ!0Ac@ ׳Ä!nK-ô¦—|Ã67›dÿóÁ˜ˆÈÚ¿@×ïÏÑÒ!& V36¨©BŸ]u_A°7¤ÖõºÃF íӅ¶bG‡!"? äp0 ǧ…ÿ°ÿõ),ÿÿó¤6<  ·\è¤~¥6f'H?ïÿ‹B÷“2Xû—U&p·ß¸?©t±…‘zÊ� úA! ÿÿõ¬ìE0!»Ì›Žÿ uÿü &@)?ZH?Þ´0e`MP .0U $0K ‡ˆ 1ù˜@F3BBd€ÿ?(?(x?(¨@0000(W0_//?_?'//ˆ'//ˆ'//ˆ'// GGG`@0000(E0ÿ0ÿ U 3ÀÀÀÿÿ0?ÿ?ÀÀð000À?ÀÀÀ33ÀÀ?ÀÀÀ?ÀÀÀÀÀU0@� @€ÿÿƒ¤ÿøà„Â@YÄ€¿2Ð            ".0* 2,:<6(  >8FHB4  .82468&(*, $&("    2$>@6 >8FH>0  F@NPF8  .8               E OQ    )      ISU               "$  " *,&  1             )')     "$  & .0*  9              -+-    "*,&  .(682$  1          (&8    535    "*,&  .(682$  -  "*,"  *$24*  2,:<2$  T25_rockT25_rockXÁq½hÀbÄðA®‡ZÀYÄ¥<¥XÁ€YDq½hÃðA€bD®‡Zó<« U?üvž�êv ŸuéÀü Ÿu響WWÌÿ3üYWWXWWWWXWYÏÿÀWWXW¶vž�U?üFE-FE.Àü E.EŽÌÿ3üÏÿÀñFE㩪ª¬â᫪¬ªärªª¬ârª¬ª©«©©ª©ª©«¬«¬«©ª©ó??ª©«ä᫪¬ª7Tz9Vxx€+ó??7Tÿ·‡Çý¦¦ÃÐÜ%jj �&³Wµ#G®```¥2$¸ë£Ëü|é÷áQ=©ñ,Jå@ W²ý¶!#eËaaþÿ¨�¯þîÿ$G]Q7*aE&]kGb(‘’k.< ‹�}@<u |{tUW(x[w_`J =kÂE,ö±K1ÿÀÿ�†F¶�£çØ‘Û8às8(:•Ú¨}¼t¬ìüÿÿˆyóö?MP:1We �€ÿB/6}<)ø‹•ÿm$ûð÷0/J=…n‘ ¬eeŸÿÀÿ±ÜYÚ¤-™ð‡iîΧìÌá¬^XðÛ…9ü  ¿<'c<u&C €ÿ`cR %2 & »ð/÷yz>—vU8“Î:U ÿØÿ¹¢N2DÑüû­+ž ‡™Þw& €©Ã³=5û¼{‚äÖFil6‡u €ÿL[\‹  %6ûö$-"uÿCº€õž2l;èš«‚JÀœ³¨?øÿÀôp#%&eó  €4#@2a€U?ü`_?`_ @Àü _ @_o//Ìÿ3ü/?_`__Ÿÿÿÿ€ÏÿÀÿÿÿß`_T ÿœ‚É ~} ÿ3ÿÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿€À€ÀÀ¿À¿ÀÀ¿À¿ÀÀ¿Àó3?¿ÀÀ?ÿ¿¿¿Uq á !†uèrŸíFãð Â_ÐA@ZÄ€¿ªÐ   "( "(           T26_groomed T26_groomedðÁ{ÔrÀkÄÌA×#gÀbÄ   4 .4 ðÁ€bD{ÔrÃÌA€kD×#gÃ.ý ýÿÿÿ3ÿ33'('('))))~)))~)))~)))')))~)))~)))'(Q))~)))~)))~))))'))|'))|'))|'))))')|)')|)')|)')˜')))*)*)*Q)))~)))~)))~))))'))|'))|'))|'))))')|)')|)')|)'))*)*)*)*Q)))~)))~)))~))))'))|'))|'))|'))))')|)')|)')|)')))*)*)¶)*Q(*Q*)**)*S~)*S)')))~)ªªªª íì)îïîïîî))þîþî ð))ààþîþîþî)))Ààààþîþî))þîàààïîï)))îïîïîî í)Ýíþîþîþîþ)))îÎîþîþîþ)))îîîþîþîþ)))îàýíííþ³îþîþîþîÎ)))îþîþîþîî)))îþîþîþîà)))ííïàßÝÿÞn´Ýíÿíþîîþ))UUUU Àÿÿ«©©ª©ª©ª©«ÿ©©«¬«¬Ì Ï«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©Àÿ󩪩ª©ª©«©Ì©«©«À ©©«© ©«© ©«©üÌÀ©«©©«©© «©© «©© «©©«33 ©©ª«©© «©©UUUU Ìÿÿ?ÿ?Ì ÏSÿÀÀÀÿÿÀÀSÀÿóSÌÌ ? ? ?üÌÌ?? ? ? ?33 3*? ?UuÕoXP)¾ôÕ@€>°@?o€i MÒm_"MÑ@@€>#»pCMÁ¾jï4!“ÿÀÀÌ”“”“%•%oÿÿÀÀ“”“”“”“%•Àÿó•“”“”“%•ÿÿ•ÆMp~t•—ü ”¼•“% ¯•“%Ì o?•“•?•“•%ÝHКïZ? •••= •••= •••=•3?<ÿ••±ŽÂ7Ç-¿õöp– àßÓ,Æ õàÕ?jUuÕõõÿ!F ?&O6o-6ðÙ¶“òÿÿ 6ÿÀÀÄÿÿÀÀRÀÿóRÏÿ#!%ü 'd <L >>-7$9$9x > > >3?<ÿ 1:5"!;P7N»ìº5­a좀w7n‡ŠÈªÑ6…_ÅÈ d+»»³ø}~}ˆÐ¨8ba_DÿÿÀ~}~}~}~}~Àÿÿ}~}~}~ef}~ÿÿ}7‡M’² êüü ësa~} Ï~}b}C0< D˜}þSàÝUM6‹…ümÆWüüa~`ŸÒ¸8 ~}~?ÿÿÙ& Š�¨_TÌ.y39kì2”ÇIB[�².¤¯z``Ñöaðÿ©A$U>}ÿ#tÁË«8S,4M $ ÀüðÿS5 ü“Gi‹ð ì?ÿÿ=2 1 /6= ,(uPPÑ?ýðG%Ýö ýÿÿPU óõ‡xŒ¬Ú96JS9F ¨Ð�×IÀüðQ¢m3âáÿÿkÝïNØâ[ü*êmÿüFUǯ�Â:þü‘GÚ ü”“?Ïÿ kaÜ ?¶¼sª· uô€Â•Ã瑘`¨ePQ3üÏû  4Þûÿü)Àüð ÿÿ /$'ü&)bÿü;1*/,-.-v`?G!.ÿÿüU%.Lc*JPQN·|­¬�ŸÐ9L0Ê>>Bl|­ù» &OŠÇð¬‰pê„ÆðfJ�ZkjêÀüüó°5JIG’?ÿUÁïúûüðæõIJÃIJ‘0’ÿøXgO`‹Œ«ªð¼IJ54?ÿÿ÷Æ6-æ·ŠÙ §ÿÿð€µqý3Û‚e+ePQ?O¿% 7Z#$'üÃãÿ !"?o‡õŸ°+€HHB&H`� è`<?ÿøj=qŽ <ÃX 000 >×°Ã4 -X=`+45 1 ÿ«_ F3??3?\ßóðóf à , > ð000B03¿ÿB@ÎÀÃÿ+PGSBý_õ6¦Ø_€ žªhö®Lˆê[1hç±W« ´€ÇLÏÿü|éB6rÕ +Ý?óðð°ß¾žÔôë56!„� �� íðpêMÈV¿Éû5Þ3IûªfTÁÃNþS]ƒ*� {+÷ÿþø@x&S; _T¦ý¥nö;ª)Ks›Ë�|œÎc®³‘Ò¿€†ü<ü™k€STAö³ð3FÿæŸW?óÿ56QQ¤’T6·ÝøÛ@œ¼u›÷Éô¶ïœ/i5m§ºxÃz]UDB }<¾¿ (Îÿð,! &ä}!|žZ_0[ 0A$- /ª¨ˆ¨‚  °H Ð? #ÿ ÿz _ý_ý´ûéù„±›ƒÍj…þ’-èÿMsý]›¹Ð§Ïÿü'FÎô½Ei› ?ü€l“(>>õzÿóðð*èÇ4èšDSF6Ê­TP5ARf=³—ÒQx*IˆP*Öë ޵Äs…{H×Sž¼¿À ælô[ó/ô³†z�>Õº>£ÓoãÆ^ç�p1d™h™ÿ<ütìÅ€k=N ðìöŒÁCÿ00 C–2õ|{öÔ>�R£àÓRK84 ,¿O]®K´Uví©•kc^î·ÉØ«_þZ­Ze53 DóSQ"B„d?ÿ/Ïüð-  óð#* +!#@w÷ÿ«ÿd„dV 4F/fffDB"3dF$"’o·/µð  ý `}  õôôGuT×u]U(²úAxu‚‚xò¬«oú?IŠùrf­ &  ίð )(#&pð GH`Á½zg¶ïÙÍ�P‚0¤/‚9ÿÿÐ8Èót$j_~˛Њ�6;MTMN/:IH ð<ümnW¢Iàüýÿùú?óÿGHkmÚ!Nk×çÿ¿Äôóýü"ùØ(€  t@�< ° p&s .2E,= ( 9 ÿª&€ÿÿ }_õ@|<>?12˜—l‹iáÏÿü³’lù8ŒÕðÝ?óð#�¿ì†‘ÞKà«°_Àܱ¼ü“Vç^a=>78=6'ïŠÿÿ Æ„¾]eio„ÆH„Æ<³çeÊs?Œ8ƒÅø®õ¿�~Kƒ Jkü¡,üðøóÿžƒû)J7C|ÇÇön¬b¢G�G‘~î/æU]U< °Pÿÿ*AÏÿø.E.!<ó0'?ÿóÀ "',/�½,¨ 3,¢< %& > øð~C çÒ  UTÿÿÿÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(//0//HHH'//ˆ'/X'/Ð_`ÿÿ€ß`ÿÿ€ßŸÿ€_Ÿÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(/GG/H/`/H/HHH'('(x_Ÿÿ€€ `€€ÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00ŸETET0ÿð||‚‚‚���‚~€���€ ÿ‚Çß�‚‚‚~��€�UUUU ÀÀ?À ÀÀ?À ÃÀÀ?ÀÀ <ÃÀÀÀÀÀÿÀð00¿ÀÀÀÀ?ÿðÃ?À¿À¿À¿ÀÀÀÿÀ0 ÀÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ ?ÀÀÀ ÀÀÀÀ000À?ÀÀ03?ÀÀ?ÀÀÀÿÀÀÀÃÀÀÀ?ÀÀÀ?ÀUUUU ™€ €  €�?'))|'))|'))))')|)')|)')|)')))')|)')|)')|)'))*îïîïîîîï)))îïîïîîîï)))îïîïîì))«©©«©©ð«©©«©??ð)••2ú••2úð••cú•>>ð(ÿÀð™1k57ï‹QRÀABº¹�€ïÀðÒ™¼ó¸€À ‰°¯TЀ€klÀUVPOÿÀðÕE�ÛJOðŸA€ð?@00Ÿ@00Ÿ@0000(o0(o0(o0(GGG��€ÀÀ?ÀÀÀ?ÀðÀÀ€ÀÀ L« ÿˆüò# {÷ÿXÁ bÄ€¿9 Ð   *682 :4BD:,  B<  .82468&$  6(>@. 60>@.        J, "$RLZ\J<  RLZ\J<  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64  F8NP>( F@NP>0  F@NP>0  e1/1MKM "*,&  .(68.   60>@6(  EC2E8:4BD2$  :4BD2$  :4BD2$  A?2A8:4BD2$  :4BD2$  :4BD2$  28&, -979$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&$&(.0  &(    1    97298:4BD:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$  ., 68& *( 24"   !  :$B<JLB4  JDRT>0  .82468&$   6(BD2 64 >@.$  -     53:5@B<JL6(  >8FH6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%864 >@.$  60>@.   60>@.   %      A?BAHJDRT>0  F@NP6(  >8FH2$  1/21824:<*$ *,24"$M     53.5460>@.   60>@2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  1/218:4BD2$  :4BD2$  :4BD2$  *4"(  T26_packed T26_packed¨Á×ãqÃ@iĤðgÀbÄ   ~¶~¨Á€bD×ãqÃ@iD¤ðgÃÅ ¶½  ýÿ3ÏÌÌ’‘Û”I’’’’Ü‘ÛJ’‘ےܑےG’‘Û’’”’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ù’‘‘’‘Û‘‘Û’’’’J’’’J’’’J’’’”’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’Ù‘Û‘‘Û‘’‘Û’’’J’’’J’’’J’’’”’’’J’’’J’’’J’’’’’’Ü’’Ü’‘‘’’’”ÿð’’’J’’ýÿ3ÏÌÌ$#H&l&$$$¸#Hm&%J$G%J$‘$#J$$&$$$k$$$k$$$k$$$&$$G$$G$$J$##$#H##H$&$$m&$$m&$$m&$$&$$$k$$$k$$$k$$$&$$G$$G$$G$$J#H##H#$#H&$$m&$$m&$$m&$$&$$$k$$$k$$$k$$$&$$G$$G$#Ú&$$&ÿð$$$k$$UUU ó?ÿpop:rqrqrqrð00 r«rrrÿ00ªqrqrrr0?ÿ rªrqrqrrr3 0Àrprr¬ÀÀÀÀprr¬ÀÀÀÃprr¬p 0à rrrrrÌ p¬rrp ¬rrp 0ϬrrprrUUU ó?ÿoð00 Vÿ00S0?ÿ S3 0ÀSÀÀÀÀSÀÀÀÃS 0à Ì U U 0ÏUÿÿHѱMÓ÷/¯t¡ ¡vûXèüÌŸEJf²Þ¯�J2*§#²Ëm˜Óª°ñ:˰¿°²¦¼7ÜÔÓ§&µI²à’§µó3œ¼Ê-Æ#b81˰°2U°`‘ƒ„êÌV¡LƒêGŠeHŸ‰e¾8* =¡2ÍL¾PI8;Q,®®,**%IÍ*ȦÚ{Íä: �ôž± ë�k[ipÌ€4Ì¿¾8ð[økgÁþë~õÿ/Q11ó-:-PWU I *u0'¢&-6/1 3? š/074/) K0)E;LNqR“0T…@ôfóSð8?%tôsô™±óøÿ3#”JƒR‘&R¥²ýÿ#œ) * /&5/#ÿù1óQÿÒ_m_mO_Ÿÿ-%D1#@)8) Ò I,[|\+M6WD3?10)4!hßðÿÿëöà¢ög"„ƒ÷#¬ZóZ\„~ØÝôp®q™<ú”7à-™Mýûh[‚Ã*-¯ßAZˆ&�øiÛ¨`F>ç�JÝ�¥ÙHÂÑ~Vßó­ÐŸuaL±É©±?stÜt-Ñ[üåº ¶êÙ £‰üÈÿe`£Þ–‰½à•MóÝòm.É�Ul°Ì>ëÔÍ÷Í#àãÂÇkª¯OÁ‹9ª|بmêàé5À‚ì™ÿð+ E¹5s©êj8ß W !*ïÐ ôføúÿÿ3&  Á6jò$Qõ1úÈøAö&7y÷o®ò?50F/# ð&ýÿt?üH‰Z;tôi‰vOp €§sç !¬µ×óïÆ´·ä|8§p®º<~i°Í>8 aû—Zat¿çÁ´ÕGBX qýg„v3&\H1—Ê Œ}óóÿ#2 %øË#©>%Ö. aàÕÿð#2–iw¡À?ÿö Çü3;lOúx4ýÿ&%ñ€2'Vû1ð@šP~X_ÿE!PÿÿÀ?!D+6' ‚<<#$?ÿÿE/.'(#^ÿÿÜ í£{|÷*œ:Ö¨wvz KÓ .îö–aÙ°íò£¦�äU ›˜9 (BGÓõ5‰PJ™"Ò‰‰—gL•Þ•Â+«/ ÿžT ­<·À~ÅŠ(jXß }™dZ·Ã2'Þ�L¹Úògƒ=%dþÑÅáòAØco€Æ¤¨­e7“nÄpvê�+©ù>¸¼´�nR›‰ÄôÃÉ“–æåˆ¯GŒ—ÿð¦7^î¸Ò­g]6Odß Yhq< =R! !k¨ñ � ”U!V!e á|/* 7$Íl#ðüþü*! Ÿÿ??S )2`ºÿÿb$Á+\þ¼$í89 B?8 1>'@)ô S: Ïð$ ýÿ3ÏÌÌ/0_/Ï_Ÿÿ€°0_ˆ'(W/`(W/ ?////?_Ð/?_Ð/?_Ð/?__Ÿÿ_Ÿÿ_ŸÿG//'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ_Ÿÿ_Ÿÿ_ŸÿG///'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ_Ÿÿ_Ÿ '///ÿð/?_Ð/?UUTL‚0}!!!p„„„aÀHHH@a‚UUU ó?ÿÀ¿ÀÿÀ¿À¿À¿Àð00 À@ÀÀÀÿ00?¿À¿ÀÀÀ0?ÿ À?À¿À¿ÀÀÀ3 0ÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÃÀÀÀ?À 0à ÀÀÀÀÀÌ À?ÀÀÀ ?ÀÀÀ 0Ï?ÀÀÀÀÀUUU f @€@€B€„$I«*ÂîÎ24Á’þpÁ`cÄ€¿„Ð     2<68> 8BD     nt>2}   OAWYC-   KESUC5  KESU;-  +579'%    /);=+  /- 79'         d '-  /)793%  ;5CE/!  71?A3%  < :3<9  ;5CE3%  ;5CE3%  ;5CE3%  ( &3(9 ;5 ?A/%  31 ;=+!  /- 79'  (      424%  '!/1#  +%35+  3-;=7)  4 23sà:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*  *,24")9usuJououo5E?EGI?EGI?EGI   T26_powder T26_powderœÂ{ÔrÀkÄœBÃuYÀbÄԲԜ€bD{ÔrÜB€kDÃuYÃŒ²„ õõÿÿ3ÌÌÌMN�MOMMOðüÌÝ�Þ6íëMìììÃìì(ìì(ì�ìëììîììÅîììÅë%ììÿó33Åë%ììOMMOMO3?ÿðMOÈN�MOMMß�ììîìÅìîìÅìîìÅìî'ìë&îììNìîììNìîìì(í%ìOMMOMOMO™OP�OMOMMß�à4ëëOìëìëìëì%í%ì(ììÅîììëë'OMMOMOMOéP�OMOMß’ììììÃìììÃìììÃìììììëìëMë'ëì(ìì(ììOà4ëëvMOMOMOKMN�MOMOMß©¥ëê3ÌÌÌ(æÚSð`@`öId–ôDhdo:Fÿó33 3?ÿðN(FMFMFMF†_doFFôdv  &ÿÿÿæ …?(CCCOZiFöŠ :(ÿÿæFMFMFMFFCC’:V”iFýƒ_$&_WUU©ª©ª©ª©ª©ª©ª©ãq©«©©qrª©ª©ª©ü0ÌϪ©«©©ª©«©ÿÿ©ª©ª©ª©«©©ª©ª©ª©ª©ª©ªÿðÿ©ª©ª©«ãä©«À000©©«©À0©ª©«0 ©©ÿÀãä«©©qr30«©©«© 0©«ÿÀ0ãä©«©©00<«©©«© 0ÃÀ©«©qr©ã_WUUTSTSTSTSTSTST7Sü0ÌÏS)ÿÿSTSTSTSTSTSÿðÿTSTSTV9ð000?ÏÀ0?0 VÿÃ9?33? 0Tÿð07?003??? 0ÃÀV9ÿÿÿÿ­h®)œÀj“ÿ�iË5üe€õãææå9µï»Û„¤­ï’Îþ„ÓÊ?áú/ÍË„¸bAå3L<ó ·­Qg]F¶Le »�ÿäéÇDnÐncÐû™+Í]ƒÖ&be™ ÆFz|çˆ?¥ØÛÀÞ ꧬ×,ªUé/±Ô‚Éó~¿„Ѓ̛‘HHêÁg›Å0\+åÛ,Ÿ-&qµµ·r8¨v¿¤Ÿ­`†Ðá38‡Ô•BT„ÎØ»e)õ݆yõ79Å{Ø…¾úš6¼Ž^luoŸŒ’dŸok›! u’X1ù�87‚ÉÊ„hÝõQ¸¶Á{¤5g ×{/VE«¼™ô«¯ïê+ +++--+¦¹¹ÿ†ùiƒ"‘s/ð�,ŸŸŸ¿JÏŒ'# d+L+N+J'D)D+F+D+� ? ßUVsþYÿ? ÿß&¯’Jù$" 6$"$G9! $ ôþþÿ�&y$ 0&$$c;ÿÿñÝßuU"QQÔqŸ²!pù)Ÿ$H$"K1ÿÿÿÿ<&ÄòóÂë‰ìfèÓϬ½ Å×â¿ýJA_üKvTÜ¡"}¿ŽÿNI)‘å2nY”.ÄBø>E»CqJÕ.¯Ö»?¸ÿõôRÆW˜Ä•bzŽÇ‘+L z[‰«_ób™Â—þ~½áØo½ÂÀ§9‰z]ÏÁ[ N|5Ý´æD ¡«“ª“Ù'|ª¤ø<'èÅ–—O5œñÕ’eçŠ>dA㎕®—ã%{o;ƒÎ³²?±ïæãvæ* ©Íá&ïÕi„xÅëI¢ˆ›áyã‰=ÅÔq ~9ä4òÔË4¡Œtaøíº†piêþx=­nàE¢jþÊ{cSò¬[ìíV_ú溺2”r!aaA1QðO . &E44 ôÿš6€4÷qJ2ÿoäÿo# O 8  6 ßoñ�fA#(D�3 0/ $-,g $ $½øÿ€hC6!F2V"5Yy™?ÿÿ ,A(3Ddô 1>ÿÿÿÿ7�À Ã¦Èk�È w„#Ébœ�z#èÙ– ¿5Lݵ`…Pг'ûÃ%"|TA 6À²Ø oÒÀ�³¶ì™TïF·ß]«Çùº¨ðÒg‡(©x’ö`U†ls¸C é.úKpÌb«Á‡A8N¯1ã’��p ¥Þ“Øß‚—­šÑŒ:(�Ë¢ä0¤­5 °ÐÔKÿR³€Cï®'¸K­‚žš ®ùI˜,:ÜõʉE¥"aþö’ucÌm6X9šwþ>Š9/$GJ‡ÉŸ:éÀŠÃþ–X!–´¼ÏC|»ÜÚó�Þwÿí -Ah {Ò:ö¢ä+iÇ{Ûºù‹ðt`j¥Ue@"4VQ T ²~ÿ)úúOøóp'.S±Å`¹‚˜8¸€G"­('Ço@q`*:H¬$³ ûÿH ô¨;Öðäuqñ "C@Æ©L@ õ÷÷z�‡ý-ÿ(›œ®r¶(p‰$J²û¢àAxgéŽ]�0X#Òrst¼ù@¶MùIÇUb´z—Æÿð/HŠW2 0Øñì»7¶É*…!…rȨ­üÛ›ªqO=ùþ2‹mÇcÖ \Kìô„q��ãÚ½ék5ˆ]&/£žÁ(ª9{– N߆8"!%" W RCG$Oþ_E.X œm�ô­ä5‡«Dò;Ê=.ÿý€ÿ˜£>ÖÒsÔ†’t À`· #@ B % øÿ¾:B™°*ÿß?ýó¿FBÿ¯ó hC2#,ÿÿ!..ÿüÿ jc?-, %$ ÿ\*¿õ}ÿE rËügbÑŒáb&3}š$¶¥¯þC¯SEuM1GþhÃ;g wBv  M<:eöóOoÿ ?ÿÿóHÅšl7L '�˾ÿ>M4b¤šãjUâ¼d½+lœÉ/ ËÌñ¾²Êrær0¿®Ýê�ž¥�ZºÉ$°Ãð’b‚ ÷üé¿ 5&½Õ¾H­ý ©s&žÊ]æ ­câöÚ“ª×ì㛜ƒÛ!$),QH #¢OXšþÚ±^}YuYZÏýÿf KDOTY^Aô‘ñc`+ÿÿý� :9X] ’d 4ûp4UR_b_x ' µ  ŸÿB„°³l a¿-^�?/ 5(ñÿYTW\ÿÿ™—¢$1*mBHI¿0TxõùŸ{U\¿�Ÿ½ÿÿ**E.=�’I’ÿ'TcfWX[õõÿÿ3ÌÌÌ'(W///?_ðüÌ?@'_'//ˆ'/X'/X'(GG0ÿó33G0`@00003?ÿð(?(W///??HHH/'(0__/0`@0000(?////??@'_0/G0`@0000(?////HHH0//`?(ˆ0000(/'////EUU@ ÿ0ÿÿ0ÿÿ0ÿÿ ÿ_WUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÿÿÀ¿À¿Àü0ÌÏ¿ÀÀÀÀÿÀÀ€ÿÿÀ¿À¿À¿ÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿ?ÀÀð000À?ÀÀÀÏÀ0?À¿ÀÀ0 ÀÿÿÃ?ÀÀÀÿÿ?33ÀÀÀ?ÀÀ 0Àÿ?ð0?ÀÀÀ?À003?ÀÀ?ÀÀÀ? 0ÃÀÀÀÀÿÿÿUUUUfffB ™™™°@� @ € 0@�  �€ÿÿ’Þ4ëëMìììÃìììÃìì(ìNìëìëìì%ìë&îììÅîìììuëìëìëìììììÃìììÃìììÃìììMMOMOMO™N�MOMOÝ�à4ëëOììîÅììîÅììîÅììîììëNìë'ëë'Ãìë'ìPìë'ìììîììÅîììÅîììÅîììììëìuë'ììÃìììPììììPììììMMOMOMOÀMª«z`¸SôdÔdÔiO`VVJ`,Y`FöF@õe^eddododo&&ü`¸5ôdÔdÔdÔdd0ô,:S¯e¦ô:FFFöFöFöF@Vó¤odo\ÀUUUÿðÀä«©©qr«Ã30ó©©«©©«¬«?  ©ª©©ª©«Ì©©«©© «?ÿ ãä©«©qr© û«©©«« ©«©ÀÀÀ©«©<À©«©©À0«©ð¬«UUUÿðÀÀ?Ã33ó+?? Ì?Ï? T?ÿ 7? ÿ?? ÀÀÀÀ?üÌ??À0ðSTÿÿ×âéé‹ËÞ¨„Ä–Š™áþ3À£áÊE–œgET*êapkV^*!lg¸3„„ëÞ²G:YO­¿>®‚°ùS³õê<žÔ/üùRy¼nq7ªÜÞS‰‡ Û×keX’Ê*euÓÍ3zD„™ù€–Y&„™]%„gØïÿÑE£ë’êZo§%×××P„¸3Ü3lv²ð•Á¿„Î>zz„hùïD]‘_að“?ª«j[Ûÿ†Áq$�  ~0pcSýð��ŠïjÏHï)%# 0$ [5ÿýÿhåQ&03qð™ù‘e�DyHñ“£“Å•cSù�pð&Ï$¯’H×�ÿÿÿ2$ðF1ÿÿ¹õs‚„ÑÛ.éŠÞö@Ꚏe? ëý¦¶¡["d—dî ÅÇžîÕ‹!ÿ}GlºûFKm?�l…FÄ$…u#(lS§(Kø~~2ËrO¾ÃƒqÌ¢×�…h©¨ÐÄ’1t&ÊßIuÚg=�£¾ÒÇÉ-ÂËU'̇FE&¾HÙó,Ž4´îÆ6­ùÉ0²ùôi_µ_7ˈ›á *]vjÜÿж–ÂÚœæ ŽzàðX¤úªk0£{Uû3çV4mO�ÿ1+* ?"!5 $.0ÿv„@"ð">�€u÷µûsùuC!kÿ˜öóKÜ"&  ò%‡vÿŸßŸ00ûñ»†@.€ÿÿXlˆàÌÃï²réÈmðˆje›ý[âžoQ¯|Z/ˆË[½ûtc�eÞ·µj†YªÁ �ˆO÷ž��ag�sѽë?`'¢?ÕnØeyP[#©ïfJGœ _‘C0L¶\sÏl•×Òi7Ÿf€$n®BnuXfI¥ávÛhÆL8¼ÂF ±¿ÉJduæ|#Ú¥ ßòg~½Ñ“W‡TpM�eÀ¦ %›´ðcU™V>ÑÔ †?ÏÿA ;Bÿ?À$! ßBB@¨L0p €A]ÍPK(ÿvÒñ'³ƒ(‘(ÉtúùÒ蚀€þëw}ó¶BÚ@ ^Léh'tuRú¶èß Ž4eÿ°ó/xj¬e&»1£Õ$_ÿ¥è ÇÏ1òv#@=¿Húd–@ÿ‡ÌŒ­ëœô#ላ÷!ãäìZ›t*C.+$7@Àÿÿ²cÎýßo,˜ ÈøobNN–Œ+´æÆÈKðÆòÔ’e? )ð<ÿ!"9# 0<>ÿ˜†B"ð& mÿÚøõoÿÀÿÿ < @ÿðŸýÆ@$: _¾/#Œ¨²ÙÿÙÛEó 3Ð_¢ËÝ…a«øõÂÖ©ÿÿü`€´K÷ ÿïÍ?, Ô§¡ ÿÿÿÿÖ‘5L[mw»(Èø‹Œ†fËë 3WÎPI,"8-̆39ïP 7À %’9v«Åb—\>\)šõÅ�D>M  œ@‡  ZióPö?Ý™ÿ5\Q\ù¾Õ<ÿ.?÷ü` 'd #*- ˜ ï,e`óðð›ýSZY^ÙÿµÿüE4€H(** -P ïòI „€ÿÿ0 KHH0ÿ/0/0//o_`p/?_Ð/?__`GGG@0000(/'///  / 4 4 4 ç/0_00_ˆ'(W/ ?////?_Ð/?_Ð/?_Ð/?__Ÿ Ÿç0G__@0000(À@˜@ H@Àý ÿHHH@„„„ ý UUUÿðÀÀ?ÀÀÀÿÿ?ÀÃ33óÀÀ€ÀÀ?À¿À? ÌÀ¿ÀÀ¿À?ÀÏÀÀ?ÀÀÀ ÿÿ ?ÀÀÀÿÿ?À ÿÀÀ?ÀÀ?À ÀÀÀÀÀÀÀ?ÀÀÀüÌ?ÀÀÀ?ÀÀ0ÀÀðÿÿUUU @€’H &@€@„ ð±ðâ�ÿ æ„Â@bÄ€¿ÙÐ            & $&("    2$>@:  >< FHB8  FD NPJ@      *," *$24  6@                  )')     "*,&  .(682$ MK.M4.068&e,               "5(35$ &(" "$*,&  &(.0*$ U               %#%     "*,&  .(682$  -+2-824:<*$ *,24"$&(9          (&8     "5(35$& .0*  6,:<6( :8 BD>4 &*,& 2(:<2   ",E   "*,"  *$24*  2,:<2$       "%(#%$ & .0*  2,:<6(  >8FHB4  A?2A824:<*,     53:5@B<JL>0  F@NP:,  B<JL2$  2468&(*,"$ %535   T26_rockT26_rock¨Á\OrÀkÄB×£eÀbÄ{0{¨Á€bD\OrÃB€kD×£eÃÀ0¸ ?ÏϹ‡ˆ‡…?3…†òˆ†Q…†~üÀ#  ?ÏÏ65x �$ðü¿Ûþßÿ5l ù$5üÀH43"35<ý3?㩪ª¬©©«är?0Ï<ª¬ª©«©©qrªª¬8㩪ª¬ârª¬ª5<ÿ3?7T€)?ðÏ<@)"Î9Vx?ŽGä@>¨âž¤£1°,Îj³>''ž‚ÿÚ¯+Ÿ¯6æù1¢÷÷´1¬¬D¸¹7ñ‰ó? k•956<1=ž(k9k 9t"as&aq"c?<%3Dƒlw‚�°D1SÄ™KÌÿ<Úw= 4\=?&«êCjFgl’‹ÔÏì0” ¹�?A NqQ!ù7�‚�_taD&,.824 28 FL  " T27_groomed T27_groomed Â.~ÀtÄ B…krÀkÄ   © ?© €kD.~à B€tD…krÃW?O ÷ÿÿÿÝÞàßàBÞàÞÝÞBÝÝ33ó3ßÝÝCÝÝßÝÝßœÝÝCÝÝCÝnÝÝÝÞÞDÞÝCÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßÝÝœßÝÝœßÝÝœßÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝÞÝÞÝÝÝßàßÝÝÞÝßÝÞ²ÝÝÞÝÞÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßÝÝœßÝÝœßÝÝœßÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝÞÝßAÝßAÝßWàBÝßœàBݪªªª ¼¿›šŸ¬ Ê  Êü¯Ï À!zÀ»ûÏÌ À Àü¬ü¬ü¬ !!!À Àü¬ü¬ü!!!¬À À úÊúÊúÊÀ ÀÀú!ÌúÌúÌ  ¼!!¼úÀ©¬  N ËüÀ¼¼¬¬�ü¬ü¬ü¬¬¬!!!ü¬ü¬ü¬ÊÊ!!!úÊúÊúÊÊÌúÌúÌú̬¼!!!¯Êü¯Ÿ¬ùúÇ!]UUU 0é«©©ª©ª©ª©ª©«©©ª©ªÿ 3?©ª©«©©ª©ª©ü0Ïÿª©«©©ª©ª©ª©ü ª©«©©ª©ÿü ª©ª©ª©«©©ÿü ª©ª©ª©ª©«© ÿü©ª©ª©ª©ª©« Ì©©ª©«©Ìó?󩫬«©ª©ª©«©óó3¬«©©«©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ ©«©©0ÃÀ«©©«]UUU 0ÃS?ÿ 3?Sü0ÏÿSü Sÿü ÿü S ÿüS ÌSÌó?óóó3ÀU+?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÌ?0ÃÀU]UoÁþpÊ’Oމ®K¼Ñ ~}<¸kFLæ<;<;<;<£p8{Høoåæåü0Ïÿæåuuå¸åæåæåü æåuuå¸åÿü æåæåæåuuåÿü ¸åæåæåæåuu ÿüå¸åæåæåæåu Ìuå¸åuuåØ"ÿkìØ’f,¶¸8<ÿó3Àj­à£8ååuu-ÀÀÀÀåuu-ÀÀÀÀåuu-ÀÀÀÀåuu-ÀÀÀÌåuu-åðÃÀpåuåuU]U/;$%  d!&+ #T 'Hü0ÏÿTü Tÿü ÿü T ÿüT ÌT.% . ûó3À8  >ÀÀÀÀ>ÀÀÀÀ>ÀÀÀÀ>ÀÀÀÌ>0ÃÀPZ+v|I}PÕ‘°L:sB�¿2ïœ*`<,ú56ÿ~‚·î5YÎÒ×QðBA+—8¢‘3«ÄQª°ãGÏÿüp†oX÷S7ÿ5¥ÞQRAðüü¹pnÝP#").O4MrATœ?$_ïû '&ðv6ÿÿþ<-a.TÿÀƒ@™ ÿU]UW¼QŽx!y{e+ $Í…8©wÒ°Åò™Y¾½|{>=ˆtÚÁ| 4w’}~}˜~§*~}~}~}ü ~}€~}ÿü ~}~}~}€ÿü ~}~}~}~}€ÿü~}~}~}~} Ì€~}€*ÿ%/<Í+-­ejiúÿü3ûà·"”º€ÀÀ€ÀÀ€ÀÀ€Àÿÿ€7}Ø! ðÿðÀ&¯EÁ¡*)*kUP4[ (+|o�‹O/!!!P‡b!�I™� ™� ™� ™� m * "ÿÀ %.€`PTS%öñäÿñ¥>ÆAª‚¤ßß¾ÕWl�’GHÿÿ�®£’m¡ï÷ïÿE�ó514ïÀ÷ø7ÿG×ÝklUð¦O<ó12 ˜ß¾?FÏó ! /0ð92ÿÀG BW@ê’ö´•�Ð3EtsÿN²ûÿ})ÏÏü;à#kðWX�&3ŒÇ,ÕÆã~Ø;iÿüÍŠE�·nü‘‘ÛW@.% ‡€‰< KFBfH„†`L—  8.QŒ�ÉRH÷ýÿÿ' 33ó30H00/Ÿÿ€ÿ€€ÿ€ÿ Ãóóü`ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(GGGHçÿ€€€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(GGG//G€€ `€€ QTA™ Îÿ|€‚�€�‚‚~€ ÿ\ÿà‚�‚�‚~``` ```ð|}€}€]UUU 0ÃÀÀÀÀÿÀ¿À¿À¿ÀÀÀ?À¿À¿ÿ 3?À¿ÀÀÀÀÿÀ¿Àü0Ïÿ¿ÀÀÀÀÿÀ¿À¿Àü ¿ÀÀÀÀÿÀÿü ¿À¿À¿ÀÀÀÀÿü ÿÀ¿À¿À¿ÀÀÀ ÿüÀÿÀ¿À¿À¿ÀÀ ÌÀÀÿÀÀÀÌó?óÀÀ¿ÀÀ¿À¿ÀÀÀóó3ÀÿÀÀ€ÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÌÀÀÀ?À0ÃÀÀÀÀÀUUUU €`à`@€@€@€@€@€€ÿÿÿÿßœÝÝ߃ßÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßÝÝœßÝÝœßÝÝœßÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝßAÝßÝœÝßÝœÝßÝWÞDßAÞDßAÝßœÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßÝÝœßÝÝœßÝÝœßÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝWÞBàÞBàßAÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßÝÝœßÝÝœßÝÝœßÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßàßàßWàßàßàßÝÝßÝœÝßÝœÝßݪªªªÏÊϬ¬¬¬ü!+!¬ü¬ü¬ÊÊú!!ÊúÊúÊÊÌú!ÌúÌú̬¯Ê!!ÏÊÏÊϿϿ!!ÇϬü¬¬¬ü¬!!ü¬ü¬ÊÊúÊ!!úÊúÊÊÌúÌ!úÌú̬¬ü¬!!!ü¬ü¬ Ÿ¹!!ÇûϬ¬¬ü¬ü!!¬ü¬ÊÊúÊú!ÊúÊÊÌúÌú!!Ìú̬¬ü¬ü!!!¬ü¬ ËËϼ!Ǽ¼¬¬ü¬ü¬!!UUUU0 ©©« ©©« ©©« 0©©«0000©©«©00À«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÿ «©©«©©«0À ©©«© ©«© ©«© ©«© 33©«©©«©3ÀÀ«©©«UUUU0 ? ? ? 0?000000ÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÿ )0Ì ? ? ? ? 33?3ÀÀÀ?õõ_W0 wå+u << wà:tŸuÞØ.œóùZKnpØ.œóùZƒ¤ÝB÷Âÿÿð0+kG¸œ…w¤u0ðÏÏåpå-. •ïOZg}pSæEƒ–œ.±hm²£�›„óž,Ao²3�ô„_YYþ„|ž�ô¡ÆYGsY„®£åuuu0Ìü uå-±¸{u ÿÿåéY”°ôKœBÝ劄„웲²u ü åó-B²uu 33å-uuåwu?ÀÀÀupå�uu¥VšU0 > ,<  4òBôDðô$"ôDôDñOIÿGÿ)00ÏÏ</ÏÏþê;=8Á÷êÁDñ1ó3ð?!\3?“9ÿÿð(0̼ >'ðó3ð3òbLÿR \ D 33>3ÀÀÀ<üý_Gm9¨+ì,�‡m9q=Ú`T„¬hàê‘}^­³`R„vܢꑽ¾’Øâ__U:Vuÿÿð*|_²·VᙤBA³÷SwßYMÙ1�q/&]Rû’éß~ª °Þ'EŽœ}èozA_y‹kÈÈnv~�—ðgçòmO/°H/Í÷s#´ÐÛ»“üü¶§öü£Ú5ÿÿëP_.ئ«|xÚT7¼küØڗʼÜhìÿü�¥uò<¤/13¥?ÀBõ¥¥TUYHÍü@QQ Q E�ÿÿÿð&?$5<þ $ÿÿÈ:,,øòê¨ ¢ÿï  /ðèðbÿ×#ü|&Ÿ ÕŒD ,ýýW<< ˜~}mÆ(Þ÷èªâsoÈwÙ².oßœÊ;ÿ$}â2ûßü¦wÿ$½¾#Â/r;¦äûÿÿð0îÏŸ¯1Ÿ÷02€)*Í:9‰Ó¨Á�¸{íQÃÍUMÖ#ÿ<<˜#0”#°bŠÅþATa $ó¾cÙé<ì0,ÕX�ˆáß—É“ ´=Ò¥ôÝ?˜~}.]8Ô�.ÿÿ'aòMÍ#È)³ Þ!mc5ÒÞÍIcŠþ«©p»üÿ¼HŒS¶†úÍZ]p* 0ð€*©?À=(&¥¥Z$üü  33U1ñ1S(U1"$ðïx!ó;ð % &?ÿ $óP¢$ò$ff1fDbBöffF3$B ô“òYðYñ[x@ü<  ß Þ]u PýPüuY‘GÚVœñ–•0/‘G‘I˜h°púú�ï×Ùhnô¸ú�Á‚ÄÄFUµ´¼¿Àed?ÿÏòNo�WÎìãÿø¸žþO‚ùù Í ,ôòÿôv}}€&ki(÷�" ÿï079@;8‚¿ñ_ðx/þ &ÿÿÂ{24%(œÞp"@ü<6 TU_Gôü€@€@ ÿ»¹‹ jÿÏð¡DÃ�«´]ñœ<ü?þWXJ·n'ÿÿÀ"$1" ;6 ?ÿâ¿€„|~·ïX±Æ<6,f­±ÆÆ¹º ª_Ïf0÷p„3<Åmß,£ùuø<™˜µ¶ÿÿ#`?=V1Y*D/»îÛ�U4A*ò"\5Ìÿü‹Ú~Íd°ìGEÚ?ÀW¢ÚÜDUUE`Hÿ 5ÿÿð (g8* 9H���€ úÀ  ªÿï (9 ÏÏÿ- !,&) HÏ Õ�TH ,€ÿÿÿÿ`ÿ `€ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(GGG/GG ÿ_`ÿÿ_`ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(GGGGGGןÿ_Ÿÿ_`ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(GGGGGG‡_`_`_``@00Ÿ@00Ÿ@00TP>~` ```™° ``UUUU0 ÀÀ?À ÀÀ?À ÀÀ?À 0ÀÀ?À0000ÀÀÀÀ00ÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÿ ÀÀ€ÀÀÀÀ0Ì ÀÀ?ÀÀ À?ÀÀ À?ÀÀ À?ÀÀ 33À?ÀÀÀÀÀ3ÀÀÀÀÀ?ÀÀUUUU @€@€@€@€H @ÿœÝßÝÝßÝÝœßÝÝœßÝÝœßÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßàßÝAßÝAßݪü¬ÊÊúÊúÊ!úÊÊÌúÌúÌ!!ú̬¬ü¬ü¬!!!ü¬¬¼¯Êü !UÀÀÀ©©«ÀÀÀ©©«ÀÀÀ©©«À 0À©©«©UÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÌ0À?UÀÀÀÀu�uuÀÀÀÀu�uuÀÀÀÀu�uuÀÌóÀu�upåpåUÀÀÀÀ<ÀÀÀÀ<ÀÀÀÀ<ÀÌ0À<@?ÿÀST…ųAö³@$€@?ÿÀ/N=N@?ÿÀmn¯úIW¢IÿŸ@0000(o0(o0(o0(GGGGGG   A`&`UÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÌ0ÀÀ?ÀÀÀU€@€@€@€@€! ÿÿ õ&—ËèüÁ@kÄ€¿® Ð    .8:<64        &24&  *( 24.$  60         (*,&$   6(BD6 >8FH>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<68:<*(*,24" "$*, -     m  9ECE&("  *$24*  2,:<2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  2824:<*$  ., 68& *( 24"  m535    53:5@B<JL6(  >8FH6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%864 >@.$  60>@.   60>@.   E      53.5460>@.   60>@2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  1/218:4BD2$  :4BD2$  :4BD2$  *4"( 9     53"5(*$24&  .(68.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$    2468&$&(.0  &( 5535 "*,"  *$24*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$  ., 68& *( 24" ‰PNG  IHDR\r¨f ™IDATxÚíÝ=nÛX…áo )SºœÒe–�Òå,+ËH9ËÉ2\²s0)þ]þˆç)09÷\1z_X¤Ä¯^u’›ŸÝ«§@@,€îÛ�ÉÍ? !!!!!!!!!!€cÒuÝŸl½ÎýãŸÿ?–¡uÆ~~î~@€@®/€¾UýÉÚõúÖyôøÿÿýùøçc÷y´ß±ŸŸ» �k  5ô-àoñxëý€€<¿–žhÛbý–ð��ø[º �ë¼;Áv›µ¿ú÷�ˆZ¿•�ø›³ �ë�¼}ñ·>¡xĉ¿ûÇÏxâ�„€ä\—÷¾ì·åG~Ÿ~ €_pøß¬ù»CëÌ]s‹ç²õózÒ�·‚`l�¾�ü.99õçç€ Kr5$7?»W €$ `í]~§¾ÐZß]Xo£Þ•ûšúBk}<ô¶é-0„÷‚!º·ÀÞ †èÞCx/¢{ á½`ˆî-0„÷‚!º·À  ¹½½`Èí-0€ ¹½†ì^0d÷²{Á�Ý[`ÈîCvo�!» Ù½†ì^0d÷²{Á�Ý[`ÈîCvo�!» Ù½†ì^0d÷²{Á�Ý[`ÈîCvo�!» Ù½†ì^0d÷²{Á�Ý[`ÈîCvo�!» Ù½†ì^0d÷ô‚!··À  ¹½ðƒ!··ÀÞ †è^Ó�MƒéÀ`0 ¦ƒÐt`š BÓ�Ah:0M¡éÀ 4„¦ƒÐŒ@š BðƒÐt`‚„¦ƒÐt`š BÓ�Ah:0M¡éÀ 4„¦ƒÐt`š BÓ�Ah:0M¡éÀ 4„¦ƒÐt`½¦ë5X¯éÀzMÖk:°^Ó�õš¬×t`½¦ë5X¯éÀzMÖk:°^Ó�õš¬×t`½¦ë5#Po›éÀ_¾~ÿËËËˤLYkNôîÓëxäö–ƒ~Ç#··Œì^Ç#»·Œì^Ç#»·Œì^Ç#»·Œì^Ç#»·Œì^Ç#»·š]'–§ÌÛ{'Á!�dì}]YΕª’䀀„„„„„„„„„„¦{û¯7C?7¶ÎVëŸmÿ÷??wý±u'€À"hnÿìvÝÏÇ?;n¾¯ûþñÖë·ÚÿýŸ/Ýÿ}ÖŸUÿÖ  !€Eð/}±îùó­÷?&Ÿ½÷³ê­€@`Õ ³¾Ok`nµþVû?z?‹Nø€€,À؉§Û_�·8±5wý½öä~Vÿ»‚€€„šž¨ºÿU¹ï„Ùíå±³Ÿø;û~œ �öX ߯Ê÷ŠYÃ’�ØnÿЉÁÖûi~�„`ñ‹§{ÿwq¶^gîþ·ØÏš5·x^kOŽý�½Ÿ+¹¥ëÏÝïÖûizi—€€@Üdük_H}/ÈÛõ'½Oiðëƒý·ÞϪkï÷9÷y€€€„ÁßâÒT«ý�¶†ªÕñÙ£@ @ ÐøÒßQð¿'Ì{^6\ºO€€À†—þŽ~ÏûèRÞÖç:Æ.ñM=G1e�%K½Ræú˜û%ž¦_Æ!   €ÐOô1tC’9ƒ;¦® <Ë¥¿³]Ê›û|÷Þ'Àeà_sÃ’­' x^lñɶ–ß�oñIÁ=ïg0á’ºê ¿¡ÁKážrâï)�)À%~õ4Xcí¯ö�NÆ|°Õ{áÖ÷Xòžwëý¬¹4Úêy\NG�Ø{ÚË}@@ƒÈÓ à,ƒD.!€ÀÓålƒD@€@@@@@@@@@@@@@@@@@@@@@@@@¶K÷íLJäæí½“àô¤ë¦¥õ‹Rï¾½+]N}¡Í½)‡Þ�zÁÞ †ì^0„÷‚!» á½`ÈîCx/²{ÁÞ †ì^0d÷‚!¼ Ù½`ïCv/²{ Ù½`Èî-0d÷‚!»·À�Ý †ìÞCv/²{ Ù½`Èî-0d÷‚!»·À�Ý †ìÞCv/²{ Ù½`Èî-0d÷‚!»·À�Ý †ìÞCv/²{ Ù½`Èî-0d÷‚!»·À�Ý †ìÞCv/²{ Ù½`Èî-0„÷‚!º·ÀÞ †èÞCx/²{ÁÞ †ì^0˜ Ó�Á`:0L¡éÀ 4„¦ƒÐt`š BÓ�Ah:0M¡éÀ 4„¦ƒÐt`š BÓ�Ah:0M¡éÀ 4„¦ƒÐt`š BÓ�Ah:0M¡éÀ 4„¦ƒÐt`š BÓ�Ah:°^Ó�õš¬×t`½¦ë5X¯éÀzMÖk:°^Ó�õš¬×t`½¦ë5X¯éÀzMÖk:°^Ó�õš¬·Étà/_¿ŒåååeR¦¬5'z÷é•ÜÀ/†Ð^‚{A@`î€!¸†à^dç7[xAXrižcIEND®B`‚‰PNG  IHDR\r¨f?IDATxÚí�1’ä¸Eë2÷cê2×Ô‘dê2uœ=ÆšåíÆŒTl.A ‘™ˆÿ DÌ4Ñ(°šï™d¾^¯×4M¶½þøÛ/ÿ  ¶ÏEðëïoš`û"€o¿½iBí,„¨Õ¾ ôà? ôàGâð#mø€8ü@~ ÿ÷Ÿ!]ø@~  ?‡hÃ�ÄáGÚð‡àýnk­ý­¯Ó;¯Qóo�gÖ|>­´ÎÃ+€÷¯ÿýÑZ�þ_k¥qZûõηõ|½óq¾ß�ÿ/­ó@"(½>ØSŸOüÚùºp¼¸ZÖ×úŽæsuñzú_µc¿ãxÑó?¿^íxÄ|îÎ7Bç‹ó<Îñâû1ßÓÿ«×ËÅÅ{uüóºÖùXÏ»6ÿÒ|²Ï÷|>ÇOýS´ °³J·ýá¨]ÜÖþçãÑý½çÓ{Ü")ïëÕ~‘�%¸K§¾ZÿÚø­Ÿ–ø­²q¾‹|Z6ƒ!€ÝÐzÞ`O´¾n—za-ý{à?ÃÕ³ÂÖ:ÿÒïŸoñKï{ä|2P»õ,]œ=�-l¥ùôžoËü=çÛò{Wã·s[Ï €^)�¿»[õÖþÖ[ãZ 0âÖ?rüèùÜü"P‚ÿsÛy¼(­�¿Œ[íó|¢-ó÷ô¯½Ÿ¥€gºZNì+€ã§Í1ÚŒ6Àüw§ÖÀXT nT`o¥ùz39Y h…V lÄ×~#û·œïñÑ«Gnô\Ð g¾3°R$\Q络4DÁk äo½½�¹ìÀ_4ü‘@‹záÏX»2ü­ç›ù¨ƒ@q¸Zšh½À¬Ç­KY{a­óË?z>½¯gÌ!WM3~µ”µ+-�mé×:ŸÞ´éÖþ­çÛû~Ï÷eÎ!‡4PÈ!‡г¶œö¬vwÁÔ’Iж) ó~üøðK øµüÂ~m¿°€_[À�€¿º€B[@!,€Ð+rµ«�¦S4„Ê@⃨ ¤]1h;X qX �ôŽ¿j¹°U0»àFT�ŽìùG— Cbˆ^+�ž%€ÂÞŽ×vð[S‰[ �ŒJØ‘](tÌ.¸‘Q ã®ik³e³TT¡P "€Ò: !€Ò:�m�]xÄ[ècÕá³0»àÆì´dÞÄ%Þá`sÔVx"€½P[á¹…j·ö¥ã-éµ" }¬ ÿldÜð”ÚŽH{V ¶Î†l,€Ö½`O´îíx¼j·ö-·þ¥À_©`É]RÓ'Á?Sw." nÔÒuY‹‡ZŠ‘¶ÌgøÀ†°îêD{ Àº«óÑ8ß²—Š„F”¿ºÕ_M=[ºgÀZà"o Ï[ cøC0c3ð§q‹üžÌ@o>‡ÌØJ|w+†Ó ÿê‹~<É\".@ËEg-pÑ[pØ‹.H2òÖß“ÌÅ-€Y‰D@LGïEh½ð@¬¼™œ\X!�˜µðHvÿ™È.šðÉ“V`$"P˜Y�$ãÓ?½<øŠ©Ã€ïýc>y@� ƒ<~š?øÚs!’@t­Ä)•�€ŸÒ`À/\ øð#àGÀ¯.à×ð øµüÂ~m¿°€_[À/,à×ð øµüT¦é]Ÿ¦Ñ~ €F£É6Þ ÐdÛûïÿ¦ ¶/à ‘üãÿüÛóL¬Õ¾ tá'¨ ?~ ?~ ?‡ÿø3àЃÿË:уhÃ�ÄáGÚð#qø€6ü±(•Ù.õ«�“5þjó?÷·ŽßXê¼ô7Ž€5}umëf¤Öñk¯çíoÝT忹Za�@íì-€êf ô¥ÕeçOŸCÿË[ÒÓñðñ£æ_úT5οTš¼çýé]òëÀÕÅÕRŒãد4ÞùxKÑ�Úøwó�è>^{Žçã¿õï�@¸X‡öžM>£çÓ»Á§WÙðDŸ ÿ¨þµ€_ì#XZÖo À^0' ˜]ž\0G�Ÿ5ÿÙó1ü¢Pºøz„Oƒÿ.ðh-³æ�ßðC §j·ž‡[ãŒÀ–yüAóŸ9Ÿ‘1€»[ÏÖþµrÞO�¿åÿµóÍ ü¥  ÉF{ à|~àÀSP€¿Ⱥ ˜/ÄÕ+ÎÇ»ˆËr±DÀÿÄÀ_éë:ï­üy¼«¯¯¾m}ô"€¦ Œ™Ï(DþW@XZð4ø/~ÿ|ñ¹`èXb›10=ŸÀ Ußû÷,É�lE-öÌ¿­w‘Ó•J’ˆ "Ð,€O (K€iôqëØÞñ­óÍžOTšïÜd’© jã—ú[ÇÏîo�kÿÞãÀ&X/0°—*™dÀΠx„NÂ�žd´�j?~üø•üÚ~a¿¶€_XÀ¯-àGÀ�€_]@¡- @è ~Í¢!T~* W ÚWÖBÖMÞÛ•Í?ÑóÏA] À�æ è{fðH,?m޼ðÓÖoe¿´€_YÀ/-àWðK ø•üÒ~e¿´€?~y…´€BY!W4ä(€Ð+Be ñŠATÒ®4MÖÂQ@¬ãߥ‹8Oï|¼Y„V€uIlö’Ûè&Þùg• Cj8}Ûƒ´pþ¶g¨,:Z¶ðz €XÇ·&±¦1ë��7“Ó èÝ*kI,âMÓUÀ$"‘Id¹0 "€Â: !€Ò:�a•Ö+jüÕûGåpœ-€È¤›i·F¥õ²Š «P(Ø]•ž`oÔVx@-]wDŽˆñ{ç3ºtyd×™èMÊaAVÉoK:óV ŒxæG*hÜÛ�ö€1uûkÚ­oPÏZ°#ºlxT“6vMNGí*b-»YZ¼g>#"ý�Ù›À60îêD{  3{ók*ü#Ky¯X O‰Þ±¥{†V Ì�(`²"ü±¸‰0#€èÌçùÌ‰æ  7ŸCŒ¢ÌÖBž­Å8¢Æ÷.Ú‰îoJ9îHæùUSö’ߌ‚Ö&–€áêðÇ ñk&�$g&'ïEØyˉ}ÏŸ+€ŽhóS7ÿ¬ ‚g ¢bÐj›¬›s¼›†"?ýÇ•wD›@’–�¬„¾ {üŠ D×Jì1°<8Ùƒ×Kì1®<8ðK•~åÒ`À�€?~u¿´€_YÀ/-àWðK ø•üÒ~e¿´€_YÀ/-à§:0M¨•ʃÓ4ÚOÐh4ÙÆ›@£!�¦+ž‰$Ÿÿ~¶o¿½iBí‹øi’ð#uø€4ü@~ ?P…ÿø3àЃÿð3 ?ІˆÃ�´áGâð#møŸ!€÷û-{œóñÏÿk­4N­¿u> ð?AŸ÷¡÷÷ÎÍ:~ïëg� ?ØX-ð#€}Ðú-Ïš¸¸ø]«ã]ŽssüÇ¿ÿ¼X¼ãf¾µþÖùD¿ºŽÐ´Ìó ²«÷ý3Nm|ëë·žOöûmùŠl& ü`?X×w¬#€hèà9=Ÿ@øW€þ˜GÃ?B=‹»Â *°  þHD_Ð þ0tƒÚhK?þZà¯w>ÁðG ú.b4üçG/ü­ç¨÷̳¬Û-€Þ ÄÀ„2ö €1ð»à½øŽP4•ÔvÞú—B™�w�?Ó|2ì@Ɔ¢™ð·<ô¾?w×y”¿ÿš?€÷nøÀøÇ¯.„ÁKô7 S§ãÙ‘ÿˆø�ü¥¯³¾öËŒ— ä5~à^ø3R™yÀ´½¯yðGK ΄%¿«ÃoÀøk­gÉoéÖþxW·è»Bß%€TøÀòÈÎ „@:üÑ‹Æ)%ư"[û[ç³’F¦ký;´þž5h¹0ê Û¬« ?XO£s"€…0~Ú/K €Ä¡2 C^À�€?~i¿¶€_XÀ¯-àð“5øð#ÀPPP%˜&*€~šdÑà~€®ô@XÓ…Y7ýŒ*$Âsÿ�BÖÍFÖ‚!½›™)ŽT°KÔ„îµx=þ® :­…>J[”¶ü†¦7K,úDxwôþý­)Æ­›™f• C"¨íRD{  ôúÏ€7�FgÂ�¿¤ünMø±x‰ð§ *e·5�X©œXV‘QECÀæhÍg€ö@c~„ð }4¥[þ§ `4üµ¤¡O ø=§:0?ØW­1‡ç`ü�…>V ø=Y³à¿*êi ü­ ?ØPÖ×F{ ÀúÚÏÀ"ð¯øëϰ ü«þzÄ&€T@Z݆È,¸àYð‡ ‚Þ%¼K~S ‰,”2!è]Â۳䷧¼Ø @Ï#‡[éϺ µhKd\0^ÞxƒK3*Y qdîXeɯ÷µjË/Y1¨·ë]Î*K~½¯Õ-€™:ˆ{ür~r,[1HMÃʃ“=x½uþ#˃“=x½uþÃʃ¿Vi0à. üøð#àWðk ø…üÚ~a¿¶€_XÀ¯-àðk ø…üÚ~ªÓh4­Æ›@£©¶?^zHIcjjöIEND®B`‚‰PNG  IHDR@@ªiqÞIDATxÚí™1V1†9Š¥G°´´´ô––Á#Xzo¶¾Ù‡à‡�ÙUS¤™$Cøz{~8ñvw{szº¿;É_·6îåñþGã}¯�ßú¬9è:ä\.ÚË×Ý¿Q@ÓšTP�m€6¶ @ˆ)bðÀHYQm3ø+,y0ñFú¼ê³~ ¾Ð¾³È…*psqŠgžÐÙ#OÉ꣕´ÛÍ _m QˆÈDcÍ(_ÅÛõ K´ PÕîG]ÙõˆbW ê"+¿¹V/àÒdõ¹-`Ç€} ì<`g‚»ØÕà¾Ø7BûNpß ïw�ý2´ßÿaû±™P¯Å…ÊèIEND®B`‚‰PNG  IHDR@@ªiqÞŸIDATxÚíš;à †sÆ!c��±Ç蘱ÇèÑz¤l©2DBäð{°T©!À‡Ãol†åûX}›¦WÔæù“ô7ÛÆÎw€Èé�TWPB0˜ ŠHrý«±FŒãóÖ¶ŸýNy>§]++€i-@± Â(Ù2 P-ƒÔ`“H�öÔz@5Ô;vëþDÅhüSGí®Ùw’ô4‰ j‘Ú¦……O¢” ö€^â5ù€jq@Ï2¸-(ˆÒÔP'ó€Z «AcØa¨ÊàZ9l‚½æÔäR0,�‘ªÅ†>cÃ(…Î çTs$›É! X)}¨Ž@÷jH#'y�ªÀÕ {ˆÐoˆøà¸$? Qo®UUÀdPÈE ÿÿhVsÅ)Ênlã¬M’€?ɳërݸ›h „œ¶û³,*C­>…”¶*³Âûçfiq(éåò,,q/ ©´€ßÛ­šíàÚÌ€eYÏÌ9—eRßc €0À¨`‘ 0šíßh¿Kw¬¼ÏIEND®B`‚‰PNG  IHDR€€Ã>aËIDATxÚí�¹q1 @QŽC… :T¨P%(T :t¨\†Kpè~&ÏÿjÖ4€ÄÅ%Ì—öàù\ ž>ß½¿½<šˆ‡¼W©?w9Szpýãõé Iò{FÒ˜¹�CRÞÊÀu?%½t-p4À Ô{[×�4ÀÈ=^àÈ<=šeÁ ]®ôg´8XªBn¸ê`Ùöàu Ôzú,µgziχ^ PK{•§Oªœ–CÌ?|¹û4,‰¦Ñ{gò¦æ‘ÿ]*{ú?ÿ•.›fúÇzƒõœžc~k9—÷dÓ9/÷ïI®ÿ§Hºw&�Öý­tgóäË2äy·ú"?\‰÷`¤c-Mk´þùc:ºÖgÀÕx˜t¤žézÒ®Œ¹€¢1$àÃæÏ5ô-@¯¤ŸÈô›ÿmÙ¨[j­1næi�)æ^éilO¦°œÓr̓5ì ^eÆSµ¬# QVJš©!/ß?“…ãÞÙv(ú,ÌÂ\®#6zkfÛ¼Øè=xçFê¿"GŒçÈÂMK…{¦nÀbC€å°ñщ?ŸÉÂq¯:ÒñC@o¸Ù€w°‡w€–ZæN¸ýÿÖÌöHÌ«{÷—Îkøß%í V̶XÍé¥m Zñ Ö`ëQ«p;]Î`§¤ça˜©?ht‚†£È >kfëÜ�nÑÙRPœAÛÀ1d¬˜·o û!À⩜ïΆÉ9r-&_ÃÇß²5Hˆ¥SÿZÝá qï–eðj@Ǭ´”Ùƒ‹8/‹_ÀhÁlh:o<ÆœÒÈí¦µ\.½�u{fܼž\Ä;h€’ö†:AbØáÚšfZu%iîh ø´×ò/?¬{Ï+ ±†Á»`(À:æ^#ï¤ÙFÓ\% v ¼,úÔHGÂ<ìÕŒ­?ìà°ÑÀ›3 €vc{� .÷ˆ G]­Ë©ê9×ò_.WB Ø9ÖΩ£½CÉjԖʃfÃ�®×·|q<›Û`%{‚åÚ|oõ‡æôǹ:fŸ­õ–k¸¾5V^:•¼”³fôÚõ@ñÔaœ2Z�²Ú>š›iSÊÖ^9�¼žBîUÕ\õ7$ԷžöQ˜�« €ö~>Ò;‰x�x²„o*"H¢âœ1³OÇ™e«/�qÿ˜{0׎®9°š{íÚó{®üë—œójÇ`}å;|ï¸Ì¤ß�6õrl9ïa_bNOnZ‹2Pò^m»ûå°, ·ôú­�êC< + áÊ®]ËYVðcûýÛ}òFlXås+»¿�•Ÿºô ?{îc×Õ{\ï0’>x‹lÑ–ÚœËßÞºþúûüòÕTõ‘€C4¿%, €”¸–§ÕYçÅ! [h€EÐЀ!—ûWU p[¡« @šŸÆ’ææÚ¤|_¿½™Êö|,õR å@ðW®åiu–Äù 4@À®ò±S—�à¶Ñc°· AÆ’ìò¦à«N°r Î(-(¥,2¥Âcðöã×{’_¿/EIçŽ×”î;^W;Nù¥¤[*éúü˜ÕWPÜh€c£”·Ôp¥ÊÏ׎a;,O£j©\½:1Ÿ°?5­F¬=eØ'¶t Méx­“{š¦UŸíßZ*@ ‚VçcÕtë‰Ç>ù=�2óÍAŽ5.‡€Vã÷Tu¯ã{Ú‚ò>ÐëàÞv;Öù—Ôò17QÞ(�Ø£7–c‡„°-x“hí^[†f@ïE¬×á˜7uªZÇŒ÷­r`5ÁUzwؑ޶î.ÈiÝéXmq¨4)?óx€ 4@`@I¡‹c˜½f¨ÙÌèUøìçóõýéonfíÉp3ÚÑUCÐîÔL´ÜTÍÁ@ !yÇÇ`Ày¡0*¾v>?NM'¨ÄhpË3Ø[ô:¶'10žÇ\ÏeÈãC;@+€Û�ç9;�êúÚõÛ i >æIõ' äv¦³ÓÀ rJ Œpùù|*ÜÝÂ,¤€`€Ñ—ÀZÇb� ;€r<@~ìñáÉTÂPÙ÷ßK<ÖLB,â6ó`Çv¬Á§»4,€Âçà­½�ÔŽ5 à˜oà €tŒ€*l“ΪÛ8†C;@)¿À‰ · HØJñT0õe°N˜‚�V×|ÀfÌx°/�@ày�Zø Þêµ8æ„ê8êËa„…wÎ×l’v€ëÿÖñnѰu©½{IEND®B`‚‰PNG  IHDR@@ªiqÞ IDATxÚí›-rÃ0F÷9‚�aXXXXØ#ø…�…9F`aŽh–NÚqG‘µÒ®´ú³>àyß[9‰m †a¼§Èørd%U]P p.!P:xl�ú|¹Y“ZÄ„wÁRS” žBHÂÇ§Šˆ. 7x Ÿ œ"BT@Éð¡À~:]S üR��ð…7åz›Ÿ Ô®–*¸Já’à ?Ï©EHÁ/àzr  Jp  \ó¼>rK �ì~ ³|àkà’Ð`ï§U|¾r0Õî [2 ¢‡ó+ )€R›M€*¨ÝçJÐÿø-T€O÷1 ¦”�Íé¾KB)à¶Y & –tº€Ðë¿f�t-Á›$têÁn74‘.@p÷÷%­P™»õ`¾|5‘.Ђ�· xܨ|N›ŽÊú7Øtû&$èœOE[°z*¬Û97S÷W/FZ€¾Úê,Àºß˜^�oM‚ ] ±Uä"[™®î[IÕ.�ï\&§2½¾U*<[@ L5-•­Iž¼Xº >ð¬åò%Kð…go˜0�(§¬žè[fr‹�Þ4…S„íœÙ¶Í¥\t㤭@®ÎXEn�åø¤šÍÓ¥ƒG*$U]?Ÿž˜IEND®B`‚‰PNG  IHDR€@ÒÖvIDATxÚíÚ±mÃ0PŽ‘R#¸ô!c¤ô.=BÊŒ’2†Kv Ü J¤P Ž ”wÀ¯ ùÌ»K0œ’RJ}«üñVÆé}½ó€ó€óï7€ó­ŒÓûú½ë=ŸÊ8½¯ÿ³òý¥,%Àô}£úÌ-ðô™ËR¢äœËR Àäévîi7 @eÿ(µýÃt:?̆áÇôPÓ?@MÿH=ÎnnОµýûÁemZ´fõü¯OeË@ßo„Ö~{hÑüÇ*HÈ‚€$AaµIžax¬C0Ü�‘±éIEND®B`‚‰PNG  IHDR@¦çy)¶IDATxÚí—1€ E9–GpôŽŽÉ£pG7 C UÛ~ŒmÒÅ”à{…”Øã”K†?Å<,™’ÔϬñë³–Ÿ�—h,xDB™O×µoð)²´$ €V�ßU‚®‰xoÕR·!šKx°%ž€t>Iº…$ f Z @W킜x´zf p5ÛB �tc©ÞÙøð� ÿý äGa¿ áñ‡ëð—\qi›@ƒ IEND®B`‚‰PNG  IHDR@@ªiqÞYIDATxÚÝ[=R¬1 óñ9Æ;%G |%G ¤Ü&Å7BœÈ²œ�¡H»ÙX‘ÿ$öÿýñùòöÌwvãßëû�ñôü掶†ÕÿÛ¸æYý®1‹UÐæ‹€€ÑÏ`g  €kq�Gˆ0¯zj#t�0 ­c5ím ?�=»¤ 2|52†7£gnÐþ>º¯eÅKaìŒÌÖm•»È�¥~/†ãïüp�•o3FxŠ~‚ú+-hâ9ÁXƒúíÎæq>$¸aµàÂ*vf5lž„kXõQô›Fï —½vBˆØX ~ÐÀÈc‚ýµGÜh ³3w,^9Gû¬U Ñ Ì(e«·“JÌVÍHc~¬j³Æ2ß·*´£LŠü¶÷Y†½ÖOx§Þ5lDu�“‚Çnžyb'¼SDËD5* šÒåØ$$‚+ P�Ô…P¹0Tß7KGûü|Ì×OE›mÝ–õ_¤&_]ÉèDª»Õ °ÂK€,<[;© I^ÕÞY‘òW€ª÷¤�Æ�=J-[SÛ�h—é4 Ê@ŒE+åõ$fÏî:ÚeŠ HŸC @�¹L}öG\@oxmu¤£<~wvœVìþÅzC>5\ÝIVd©€†Ò¹p Ä;Jû¨OUk°]„¹ìš±Ÿ?sƒ~ÍQ0zFm!…Â3DÄ0âcÞ`HøÛ/¦Úx/Ò¼ÒåÒªðÎ÷Oì>ÚªWeˆ†?—#wÚ¡Èw¬€¨¾)ª¼–ã1aÆ CÕè(Ž?/hÊ€€y-ºûÞ¢+Yá ⮑Ҁ~¢ê{Äl­©F¥X1Y´šLõ© €H¬¸f»aU©:Kw†%ÊÂêq²îÁT¡Ã4:£á¯âDÁ`+Ïa2EÍÌÙ¯¼¶KÀd, V;�QÝ`±LÞŸ—›í(�ö!"ýŠo(+»Õg¾º÷è^•=ýd.êï«T— "jw°Jw½—"+6YeÔ¦ÎþØ's3ã·Off;­Ü}o.å{…™®Q�¦*h?c€ºE>ŠfúÙœÒ=N4F‘=ýpòTª«À[·ewžaEä½a¦ „„ô¦¤>Ê µÿ{�±Ãl-_ôÙ…5t#ìIIEND®B`‚‰PNG  IHDR€€Ã>aËÀIDATxÚíÝ»qÛ@`– Ð!JpÈTC‡]‚C•¢P%8tÈÐe8d�dilÃÝáÅ!ùÁ<´wûÍñˆÅŒv÷÷}r|ïºèØ=};öŸ¾|­Æýás1®ýúÓ~a<°X€$ÞðÀ à+@/À€Û�þ>€f�n üœ×~=¹¼`°� àðð4+®ýzn@×u}r¿&æXŽ[;€àâP�T|âŠ`]|~ˆ->ý.ºø”Dý4 ¸øü ñ¡ÁÅà@òã`?õÐ @/½½€À‡Bñÿ82½ ½@x/€ð^á½Â{„÷âì�½È 0 €@ð_œN§—h=þö¹c÷i=on¾­ã]š÷¥�¦OÆÝ݇Ñ?þ|lø¹¥äKÇßþîÔ|†Ç§`/ßa>[�w8ž÷îë+îXrS'¿v~íþ­“µ¤øS±Ÿc¼KŠmjKÏXrs66K&{,Ÿ¹ÅoÉÉx[®+Ýÿïñ,):Ô´§´±©m‚¶Xj‡ù¬½ñkÉÉùµùÛðÀú.}#tŽŸ}ç<êWÝš`�d·xzÉÅoï–_u°Ý&°6Ãã-�@K÷›zÞÜ|k1õú©ã�;Ÿ[�¼"À$`"D^üÄRϧÝõàIEND®B`‚‰PNG  IHDR@õ]©¾£IDATxÚíÜ=n1EáYvÊ,Áe–á2e–�ÒËP™N(PŒÑDâðçññ;ÀÜX"†¼g8”­m€µ¸\~]o™a¼??.×[ÌP¡ø3Hà¾ø{1£ÀÉòGÁm<ÿA÷cyEd€´¥íUþ‘ØG©ÈžÕ Ëß[Gc¨!"À²ÛôÒòGIM�R”ÿY Ì^þ– L[üg$�¡ü½@˜²ü�D�¥ü£@‹Ózd*hf”®™¼ø­î }N_¾¾ÿI$ôÜQØ� *ÿÙ ¯Èçp+ÿçDØ!ôÚQxTXü’ ®Àçó¨ød0rm.q�Vûâ>{±g(ÖÛ·y|¯`ö�AêÌZaùi¶âG•Àý¸J@ãeðOçG|Ž]zÁJάå�"‚½ñÔÀ#)ìý¼Š8zdo3|„tö.’A#$p4–V(ÙAd“ÂÑ ¹ö‡@�íd†ò÷’À³ãˆ €¬;ƒžë/¬jN~Ë¢ô,m ”¾Td‘ÂÒh1Ù{ ïÄý¨\{¿s¦”gÊ÷êûÖz¯0£º `Ä3f‹òMvË"D)dïÌ&€™dÐó1oñœÙ¢ôGé]Žìå'€x(�Ç­çaÓ¨Å3¢ @µp¿žjÏãÖòÀ)ÊâY”ŒåÏ €È"è¹^¶Ws�gÝ•�5YQ=o[­»\äÅ£°ÐRµd2b½n+,…%€¨õz#×+¼Xܯyô¿@°pº àýûÇUDÖ ˆ€ˆ€ˆ€ˆ€ˆdÀê_Ì(²ô“º" " " "Kä7¨)> Ý‘;#IEND®B`‚‰PNG  IHDR@€»�ojcIDATxÚíœ=N1 …÷”””””[r„-)9%G⇒#Ð ’¥‡ïÆIf’ØŽdí Ú÷ÙIfžg8�bĈ#FŒ1Œ¯ïŸ-Åãåys'>‰NáVÀÇç׿R8e?…+$¸™ç·Ë–‚‹w!'Ü €kâÍ òO!¸??mÀ3€»Ç‡¿0-Þ%÷�Äi˜ƒP:Ò"HaR¸€ %¢€e\\ô¤+‹¿& Ms’øäòH! ŸÑszmÚ#¡®,1Ì~ïÊC; !¸©·(ûé·B´ÆÍ"(^€G‚&”þkjO‡Ã° áÖ"h÷k, AïfAt €µZbËBp àZé×N�e ”ˆ7  T¼v\À­/^ã/e�Rv4ÐY‚6û虨úr%Âù…’Ú*˜.ûèåsÁØ@|À>@®�Àß_²_€âÝ].‹¥Ï#¸˜€+?Ͼék„xéKG‚8ÇÍ™¢š#A3°àÒè=2!¾À’rBÝ�„¶úá…#´€#´w˜±ÅLÐx�xþ?5Mé÷0 /mw½¦@Æûýž†‚  5$¡’/¨±×‡ÐV€)­+Î+ݧXk¾$ÏnK_`˜U^›!©+„öX»ƒhžûÿ8L�²\Öñ~Z¦„À;>¼s“{/€/€ÜæGêñuƒ~:kÍQn‘K ÍõðŠñ\ö9SÝ ~ƒÄ5[Ü©\ÒY–½æd(·ƒ,3Þ€IW¸¤56¥Ðë$©ÀÔz¸ÂKØ`=|ÁZTK¶ÃzZbSgþSL‰Wè–=Vr9íëBM/À€šÕ¾Wkl¸/È-qwH¼¶²€Cí°Òìš )û–)P²ð•,í 5ÓGè¡6ó=Ôl‰Ý!Ôd}&M4÷Õ65�ˆ¡Í�ц÷oA: B1 œ3V¨*¢æþ¿–ép4¶¤r=ÀÜ�`ü‘žsøû¹˜Ôß˽æýÀÜfRoq'éýõ²¥xy>ÿ‹“—@ €@ €À8¿=Î MÝÇ«IEND®B`‚‰PNG  IHDR@€»�oj@IDATxÚíœ=n1 …÷)S¦t™rKaK—9BÊ)GÈq\úÛm … <¤ÄÑü‰k¬¼†ß'R3zÔìå’-[¶lÙ²eËvB{ÿ¸?Jÿûïý1-€—Ûë³O;ûÓF0O)0 œyS@˜€aº¸þ¾=óžÖðýúó~æ €ÔÃF §Ž¢Ë¬SÿöòãÙÃ@ñ  ’ à@8EÀ° Å-â’XÄÞï_¯˜eL[˘{’xÀÅ#€2" ¤K\éE Ǭ/àâÝ@á<¯Ë+Ý—ŸËí¯&Þ=Üèà†GÛ ¢hn_@»Á´Ä`;<�‚[àð^@Zb< §½€´„Miæ¥ @ {möC¦‚–÷Ü  ä;Ïÿš#ÄïC̼¶Ö`ç.à‚Ut €[ÓÐD[LQ €+ `áÂgà æŽ0 •a€ž¡+E$½jv8�iP?¼5Æ�Ïš)ªYåš)ŠcCCà"4ñ|7h?,mµ™ç¬â‡„` {À]ak‘džOB¤z l"”X+ÀŸiÌõ‘V}0ÅiQò¸GÀ ‘Ц(ÏS€Ò'$I¼¶„ŠŽf(÷Ú¢t Ì‹¢Z]Wüpn0?+ŒWî »vƒ´:®-[ܵ;\«µKã��{š#d9)êöª U€z-17‘À«?[{‚î,±Z·¤€KKloÃB°]Zs S¨ Ý¢8ÊûpÖØ”4¿¿V °IxØ·¼ÆÓ@¬_{`B:Rß2ZO�€ÖìJPøVXz`ÂZ\9eA¬ý3ÖD=¢Ã­rËLXÇp{Œ»À5âwO‡­ÄkÇå{*D‡•Î(Ï´JÏñØi·‡¶Øñ»@À-©V±Ñœ]|BDò5W˜þ6 Ä÷¸x|ÿÏá-2ÉvïöXdZ…³Äµê_Â@¨Íºd‹‡1Dk™T“f^w-�מà øÊî.ì5ÁR�°¶¸ªò…_9€Ú¥°ÖÝ„¾vÂzRSÀMh¥°ž£²ÒaÈ$úBDmÕßÊ: 0Ì÷öq�1LÎ/í[Øâ§(â—Vƒöpˆ^á[”Ɔ€0€C…·,-‡õ,‚§€è™Ý£ì�ÏüÒBëyZÄ:6¼x YåkÅï¢%B›Ý¥µÁ-k›@è)�i`z¾LíÔ”À² · ѵU ëØ&U íÚ¼v–Žß�>d�A‹ø=ZƺS ö–Çã8€£ÅwÕ ·\€ZstT4‹Ÿ¼þ‡{oCsB2+øgð+óðÿ&“j�Ò9bíw†®þùu{”þözýÒ/³´�@H $€�@H $€�ÎðWQi"øCÌ:IEND®B`‚‰PNG  IHDR@@ªiqÞIDATxÚíšÍq1…!päè#!l„@(„A„ã#!p35®ê©·�÷º[šñza9¨v¼ÖJ­¯%Íøðôéåù篗§¯—½mÿñüú‰ÿÛúâ÷/Ÿ÷gü~æyŸqÌË·/ò™e‹ï²ñclžkð�DGp„ßo°¸ ¿Y…Ê ã1C¹8/·� ´Ž²  ¨=æ ‹aM‡Œ,w®Ñ5µ85ùÊBC ÕøA)ÿ¿É€ ¬v€!AÔ»Iµ8435¦ûm­5â‚S ‚ó£üÙPFÍÊ΂ÃPÖ†- Ž#\—eà (] ÁÑR5G_p“»àèúd.À`ÂÔ˜è6Cù�ÒûS@ tÒQe%ì&Îep¾•”ëÎŒ�/²©o‚dÖ ²Z•úŸÊÙ•  {ºl¥,æ à|êÄÂÙpòʤ٭ÔsÈÁA -À)Áñ2T)ƒ ›â&(Ç’*ò;Á;¿Í”ÀT *ŠªÊQAЕªÝWi cP�]ϸ桢ztĉ­òû­» åÒ¯«E¸V@ùQæx¾Pi‘ Võyª>g: 9[ñ8­R8K;�ZÇ"ªì ò=ÏÅfçäÜúJ.ªW4ÑäT•‡�¨B(³7>Ñ칿’ù @åÓ<@Ö]@5\<¦]—ï¹èrÛ[L•ÊR\(vT%fhÁi]}�ÛãY*Ëp€vã€n™¾è–•JØ0Stpà ª|×�é�£}È6U��ÖÀ‹�ÉÏóDPS�¹Eßj¿€ãçßM¹aٌ䫅«Å£ àb: Vý;5 ZÇp‹ì¨4ªtšP21רrK<°ÒtDTŽæ*Z3×lÀ)L�Á¾7Àî’-^YÖͨÁÐ$q�YAÃÔâªÒ¾ŠÊ”+@yñû%è£Gp\¹kΪÈiÊ™±JiUŠìÈ[õ] /X-Êù0���û&œ‰(ÓR­ZWHUWdi°åÇ`½P>Ýɯ€Y«R}3˜gˆ±›Xe¦nò*ͨ*Á3À¾^ŽVyú^̺Øo‡«<íÖu•UPݸâ”Åó¸ýÊCX²€£¾×ݼ¬è€UçȈº]Ùß @�;º9�÷ÿGßé[m‹Ý¾bF†W•�pm �s�3ì'BXe';�Ô£Nf:GàM`­ðÏp¾WiuKÏ#þ¯\aö¨¬’á?€Õžþì 0cþ|PÒuÁ¡]™¼ê» @m‡OP~ž±øY3åcwµ[uGt³h¬ìÓÏ:Ñ}«ûéìüõL¯sÿ§ ¥•tw²jôM¬–©G.?³ ˜ À™Ge‡TµÂ{XÙ®�#yz€3Uw°² `ö¨lœU¨Ü @u÷0{¸;ܵq'J«µ{SÔ½‚«n›3Ð�d €Ê×o€A  ŒÙcêêZë(õJgÜÕlñ�Â8ëB_RÎLµ¥;7ÅUêØ_”|hÝcê.€Î‹€,¥eÙ€ƒ°Û,ñ¸cöhVSGÞÊÎÿ»²ìp ºë ÙÉÛ�ËO÷æjê¶Õ£sÒÕR¥ùì­2÷¢df)+ØÇì©NvQ1¨:¦:{T^Hœ*—ÌìW¬–ÎØ>�P€³•ÐæIEND®B`‚‰PNG  IHDR@@ªiqÞèIDATxÚÝ[;r[1 Ä‘R¦t™2¥Ë”)u—9‚�”2Çpé2]2O3œ¡!`¹øðIãcËÖ£ˆ%.�¼þzý7ìåòòÁ.?.%ûúåÉýß·§gh¿ÿ¼_ííýïÕÆëñ7ýzüMû mö÷0A¬@@®lvB;¤ß»r*b„Žh¨ØC�¡8Æ™ „ ÿ*ˆÖØ+ç# @ªQÀ®B% <çSX¸’ "áy/f_edàñSƒ�8š$3³µXæç¼cöØ�¢a Ý+´+æyë£ö07x€¬ÈËÙ6æÉ�©PôVËcfšÐè÷Xï×[¡Ã<æ‡Æõ’3›ÍÇG�¨]¤ˆy®t F™V§ó]dªD„˜D”Ix:ûwRñ1¶5©‰ªóÏßÒ¡^½”-èržàp~³ÏÑóÚ€y²«ð_=�˜ÇþT0ƒÇ¬¾ C};ö†ñe"`5®öW,�@é`Œ}¬`dŒä¦É—xäF3¹G£Áx žÍòU¢D‡¥³UeÍ£»3ŵVßâþÈ$²ß;µ¹hžAÛ`•ì Ù íÉ�ÎëÏGäÇË›·°Ú[…švÑëŠ ãÍ]²Þ%oGÕfõÃt(»»"Á›Í]<Q‘Å» ™«z4�J×™¼³ÊÃÒïHÔÎ_™ bSH®òhèLP:Ë\Yç½s–—žÃŸáâVtt‘Ld®P,'Vû;z�pýU!•Ð-!Ö;>!«@xà1Eö3ëú‘Ð æyTgðîÕ<`8عP"dº:º˜ç+g¢áßÅ:�@ /:*«_¡Ãy³¿w;鉨R§³á© DnŒ¬+‘ðÏÐâUQÄËÑ„¹¼™èðGôqòÞy_•ų@+Éîw½‚L£Å£ˆªÂ8Ìp&„gºj�V‘(k™�’upG Gøk5ûFéîÎ*3;�·>sÌ;$‰eKÐÌù|–ä~™#èŒ^¾Ó`dqVÌ›÷A2……løï C‹?§FÛÄøÈ·°ÔOA¾«ËV³\�ºªÙÜ\–ö:D­ßÏê;@§– ¥ÕëµÍ–ÇP+¬w‡XÑã(i»¡ÂÙòr„•nP)Ìf4 ÉVX½É0“XÝ0YÒaeÁƒU—¼–Ö�‘'€U3[ +É•[dЊT4Æ &�¤¢Û.Û@ºM.3+üÏü¶(ì‹2«ß#>³UÖ"•N�.nÐí°öv‹[_‚ÊPÏJtt8>/ªNìÿ+j«P¶1ÒIEND®B`‚‰PNG  IHDR@@ªiqÞžIDATxÚ훽Â0 „óþOÇÈÈØ±c·"TE jÓÇv.É  (à/‰}±Û0ÍËú™¶Çë=¯wíø¼,Ûëœ-ßË–Îøýñ§ä}_2þ™�ŽS  d+[˜úèÅ&hÜ�\Ðí@tôJw=Ïãî�–fÿ?×m6«H:3µcFÐh[¢JEhx5³LYœ€T’ /(^Bh˜,ptè4(R‚‘hëB¨zo9êï”Î8Šö¯Òn±VÀpwŽ"^yêÀû¦(·,À›§•ÔÞ"ݬi ï o0]|÷·`IEND®B`‚‰PNG  IHDR@@ªiqÞˆIDATxÚíÛ=sà `þÿ/똱cÇŒ½µGsäT*Ð+!câhàš6¬'øC@Ó¾ïߥ|Ýå¾=Êís{¾Î¥¼ß*·í·ÔíÐRÚ¤ýÒþë>‘RêäŸ\}®¯RÒYÜ�@øô‚€6@_KÁ[êìÕÓHA78Áò»‡P#k¨ñ´õŸ­!4 ÿ}:íœ;0 ^ `¾€¦Nî°|û+Ð~@/„3ê~@È… l€CX pa€Þù�´‚GhÿG?€@B°´²¸Ñá/!¨�Qààqþ/ Ic­I�€}–¤‡!+=è™!¡31Þô`Ïø3@è W�L�^è–à:׌í·ï‘ÇKõ5í¥Ö £à² €«ÔÜüàY½ÇèS4Á[Z3IÜíÕ€; f´.ÌÜb Úfh“ àuþ[ÒXi5i3æ’4Ï8€fˆ`È4R:Ý[g�#ô(-‡sç,º,ÞËb%„.2‘A´kúuÖ�€t &«<:‘² @+OGlJZ€¾ŸFÜ+x @þ¼túI8S¤,Y}Bg¢K�´SÙèð“6Wqh€^›¥~’а$@o“ÃÛpÈbJÀE�Û õàG6c ´~@@ŒÜ¥½E–F6e!mª¬yüËxçñÃ׺!«÷¶&qÔÖ<^“D!y¼×,Öá––ÐÎäX˜  ™ Ö&1#ô<¬s‘õíûß¿ÍIW¨W¢’fQä•ZKq§ »Q<zk‘?Œ�¥î$GIEND®B`‚‰PNG  IHDR@@ªiqÞCIDATxÚí›1s\! „õÿYJ—)Sºty�3oÞdT=äw±E€ŒŒaÊyF<íêLœ1áE|Y^·fë1+R v��X¿«ÇV?ެ¯ŠaJÝÌèu#Á�_F S DëG'SC&¥¨q,€*ñ³Ý�GÅ«þ©Ô�ìþÚ > @F½ß"²¢0@V½×ÿh»Iƒ -ï¿Ú¿x�jUûl€*°ÓdÙa. ">  é²ÑWØíè©(…Êf‘l·µÍLI�ÀB0t�_á.½>[ew<»ÏO@PŒ¶Û.¿‡–Ó.¡˜Ù] @u™S½Oð*¹ òôQ™£Ò÷CsÀX)#AÑœ¢03ŒíIFxt2]�$¤Ã¬Â·±»sâJ¡8à”xï”w!ÀjÖÏΜ,©#€� í‰ á„ÈD8®8+ñmÅ‚W�*ñGk襊4ÌðF¬,ñ«´ØÌCÎùñÈÕ™]Œ‘qÊÄ釠‘–•vc®ô„(â‘I/ºCdlt¬¢¿§õ~ €*@ÃÞ„c.�`¶~g�d$ÛSY«@Öm�(„åÐï÷W9‚ºó«‚`Jàâ�xï–Ëh«)Œ:'DsˆR¨)OX¹Ã2'¨NŒÿÕ ž ·W0‹•„LJ(ÿ`–3u5ˆ¦º*üÉ)¢£"©®,m³�VR^J£@ߎ±‘SVª+rÉ1‚±ÛÉ ê õŠcuS¶“ÙâQYúöLM*Ü`uõ])ÝO£âw†{³tÕ½Åí‹5ù¡ô¾úP##`26vfžÎ2>»ºñ™u·àÈ»ÁÙÛa{¥ºGúÓYöñ4sç=[Dâ�ö÷í¯Ç™k/¯Ç5 -«BÄ IEND®B`‚DaylightCourseFx^mî=¨¨¸Ðd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`^d^`Z\VXfhbd^`Z\ fhbd^`Z\ fhbd^`Z\ fhbd^`Z\ fhbd^`Z\p­Vfhbd^`Z\^dRT ^`fhZ\ fhZ\ fhZ\ fhZ\ fhVXpiZjlbd npbdZ\bdVXp-^fhZ á _gi[] gi_aq_[] _eWYm$[_ai_giZm[]t`l¿ ^^`h^fhham¾__ei_K]m __am$`l¯b^`h ^^`h ^^`^d^`bd^íhV`l·^_^`bd^`lamª_ e_ace[ace_a_e_[aè_^ ^bdh^Né__ai [i_e(  _a gi_a __a[]À[mZfh_^Z\p  bdZpfh^`fhZ\ fh1 Z\ fhVX bdZpbdjl-VpfhZ\ fhZ\ fhZ\ fhZ\ fhMRT^dZ\^`bdfh%Z\^`bdfhZ\^`bdfhZ\^`bdfhZ\^`bdfhZ\^`bdfhVXZ\^`^d^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`// psx_chrome.wgsl: the era's chrome and metal, a reflection map looked up // per VERTEX from the view-space normal (a sphere map, the PlayStation's // "environment mapping" of title logos, cars and sunglasses), so it swims // across large faces as the original did. Pair it with a matcap texture: a // sky band above, a dark horizon line, warm ground below, a hot highlight. // // Notes for Hedra: see psx_surface.wgsl (view-space snapping under // skip_vertex_transform; no noperspective varying, hence uv * w). shader_type spatial; render_mode skip_vertex_transform, unshaded, cull_back, specular_disabled, shadows_disabled; uniform matcap: texture_2d : source_color, filter_nearest, repeat_disable, hint_default_white; uniform tint: vec3 : source_color = vec3(1.0, 1.0, 1.0); // The base texture under the reflection (paint under clear coat, letters). uniform albedo_texture: texture_2d : source_color, filter_nearest, repeat_enable, hint_default_white; uniform reflectivity: f32 : hint_range(0.0, 1.0, 0.01) = 1.0; uniform snap_resolution: vec2 = vec2(320.0, 240.0); varying env_uv: vec4; varying base_uv: vec3; fn vertex() { var view_pos = MODELVIEW_MATRIX * vec4(VERTEX, 1.0); let clip = PROJECTION_MATRIX * view_pos; if (snap_resolution.x > 0.0 && clip.w > 0.0001) { let half_res = snap_resolution * 0.5; let snapped = round(clip.xy / clip.w * half_res) / half_res; let back = INV_PROJECTION_MATRIX * vec4(snapped * clip.w, clip.z, clip.w); view_pos = vec4(back.xyz / back.w, 1.0); } VERTEX = view_pos.xyz; NORMAL = normalize(MODELVIEW_NORMAL_MATRIX * NORMAL); let w = max((PROJECTION_MATRIX * view_pos).w, 0.0001); let m = NORMAL.xy * vec2(0.5, -0.5) + vec2(0.5); env_uv = vec4(m * w, w, 0.0); base_uv = vec3(UV * w, w); } fn fragment() { let env = texture(matcap, env_uv.xy / env_uv.z).rgb * tint; let base = texture(albedo_texture, base_uv.xy / base_uv.z).rgb; ALBEDO = mix(base, env, reflectivity); } // psx_cutout.wgsl: psx_surface with 1-bit transparency, the PlayStation's // "texel colour 0 is transparent" rule, for crossed-quad trees, fences, // railings, banner fringes and anything whose holes are in the texture. // Everything else is psx_surface's (read its notes first). // // What it reproduces, each as a knob (psx-style SKILL.md, "The signature"): // - vertex snapping: every vertex lands on a grid of `snap_resolution` // screen pixels (the GTE had no sub-pixel precision), so the geometry // jitters as the camera moves; // - affine texture mapping: the UV is interpolated in screen space, not in // perspective, so textures swim on large polygons near the camera; // - nearest texels: no filtering, no mipmaps (import the texture with // compress/mode=lossless and mipmaps/generate=false); // - Gouraud shading: the light is worked out per vertex, from one sun, a // hemisphere ambient and an optional baked tint, and interpolated. // // Notes for Hedra (verified with hedra 0.1.0): // - `skip_vertex_transform`: VERTEX arrives in MODEL space and must be left // in VIEW space; NORMAL likewise. Snapping in view space (project, snap, // unproject) keeps the shadow, depth and SSR passes consistent, which // writing POSITION would not. // - The shader's world frame is Z up: a scene vector (x, y, z) is // (x, -z, y) here. `sun_direction` is given in the scene's Y-up frame and // turned by `scene_to_frame` below. // - There is no `noperspective` varying: the affine UV is carried as // (uv * w, w) and divided in fragment(), which undoes the perspective // correction the rasteriser applies; its 4th lane is the affine weight, // faded out near the camera (`affine_near`). // - `unshaded` takes no Decal: a blob shadow is a mesh (psx_blob_shadow). // The engine's depth fog still applies (fog_disabled is not set). shader_type spatial; render_mode skip_vertex_transform, unshaded, cull_disabled, specular_disabled, shadows_disabled; group_uniforms Texture; uniform albedo_texture: texture_2d : source_color, filter_nearest, repeat_enable, hint_default_white; uniform albedo: vec4 : source_color = vec4(1.0, 1.0, 1.0, 1.0); uniform uv_scale: vec2 = vec2(1.0, 1.0); uniform uv_offset: vec2 = vec2(0.0, 0.0); // UV scroll in UV units a second (conveyor belts, flags, water). uniform uv_scroll: vec2 = vec2(0.0, 0.0); // Texels below this alpha are not drawn; there is no partial alpha. uniform alpha_cut: f32 : hint_range(0.0, 1.0, 0.01) = 0.5; group_uniforms Geometry; // The grid vertices snap to, in screen pixels: the internal resolution for // the authentic jitter, half of it for an exaggerated one, 0 to switch off. uniform snap_resolution: vec2 = vec2(320.0, 240.0); // 1 is the PlayStation's screen-linear UV, 0 perspective-correct. Keep 1 // and subdivide large polygons near the camera instead (references/models.md). uniform affine_strength: f32 : hint_range(0.0, 1.0, 0.05) = 1.0; // Vertices nearer the camera than this (metres) fade to perspective-correct // UVs: a triangle crossing the camera's plane has no meaningful affine UV // (the PlayStation culled or subdivided those). uniform affine_near: f32 : hint_range(0.0, 10.0, 0.1) = 1.0; group_uniforms Light; // Towards the sun, in the scene's Y-up frame (normalised here). uniform sun_direction: vec3 = vec3(0.4, 0.6, 0.5); uniform sun_color: vec3 : source_color = vec3(1.0, 0.86, 0.66); // Hemisphere ambient: the sky's colour on faces turned up, the ground's // bounce on faces turned down (on snow the bounce is bright). uniform sky_ambient: vec3 : source_color = vec3(0.42, 0.50, 0.66); uniform ground_ambient: vec3 : source_color = vec3(0.30, 0.30, 0.34); // 0: smooth Gouraud. 2 to 8: the light in that many flat bands. uniform light_bands: f32 : hint_range(0.0, 8.0, 1.0) = 0.0; // Light added regardless of the sun (lit windows, neon, signs). uniform emission: vec3 : source_color = vec3(0.0, 0.0, 0.0); // 1 lets the colour pass 1.0, as the PlayStation's 2x colour modulation did // (a texel at 128 was "white"): bright highlights for the glow to catch. uniform overbright: f32 : hint_range(1.0, 2.0, 0.05) = 1.0; varying affine_uv: vec4; varying gouraud: vec3; fn scene_to_frame(v: vec3) -> vec3 { return vec3(v.x, -v.z, v.y); } fn snap_view(view_pos: vec4) -> vec4 { if (snap_resolution.x <= 0.0) { return view_pos; } let clip = PROJECTION_MATRIX * view_pos; if (clip.w <= 0.0001) { return view_pos; } let half_res = snap_resolution * 0.5; let ndc = clip.xy / clip.w; let snapped = round(ndc * half_res) / half_res; let back = INV_PROJECTION_MATRIX * vec4(snapped * clip.w, clip.z, clip.w); return vec4(back.xyz / back.w, 1.0); } fn vertex() { // Gouraud, in the shader's world frame, from the model's normal. let n = normalize(MODEL_NORMAL_MATRIX * NORMAL); let sun = normalize(scene_to_frame(sun_direction)); var diffuse = max(dot(n, sun), 0.0); if (light_bands >= 2.0) { diffuse = floor(diffuse * light_bands + 0.5) / light_bands; } let ambient = mix(ground_ambient, sky_ambient, n.z * 0.5 + 0.5); gouraud = (ambient + sun_color * diffuse) * COLOR.rgb * overbright + emission; // Snap in view space, then hand the view-space position back. let view_pos = snap_view(MODELVIEW_MATRIX * vec4(VERTEX, 1.0)); VERTEX = view_pos.xyz; NORMAL = normalize(MODELVIEW_NORMAL_MATRIX * NORMAL); let uv = UV * uv_scale + uv_offset + uv_scroll * TIME; UV = uv; let w = (PROJECTION_MATRIX * view_pos).w; let weight = affine_strength * clamp((w - 0.25) / max(affine_near, 0.001), 0.0, 1.0); affine_uv = vec4(uv * w, w, weight); } fn fragment() { let affine = affine_uv.xy / max(affine_uv.z, 0.0001); let uv = mix(UV, affine, clamp(affine_uv.w, 0.0, 1.0)); let texel = texture(albedo_texture, uv); ALBEDO = texel.rgb * albedo.rgb * gouraud; ALPHA = texel.a * albedo.a; ALPHA_SCISSOR_THRESHOLD = alpha_cut; } // psx_sky.wgsl: a PlayStation sky, the material of a large inverted sphere // (or a SphereMesh with flip_faces) centred on the camera each frame. A // vertical gradient in a few hard bands, a sun disc with a halo, and an // optional horizon strip (mountains, a skyline) sampled by azimuth with // nearest texels and 1-bit alpha, as the era's skies were: a painted // backdrop, not a physical sky. // // Notes for Hedra (verified with hedra 0.1.0): // - world_vertex_coords puts VERTEX in the shader's world frame, which is // Z up (scene (x, y, z) is (x, -z, y) here); `sun_direction` is given in // the scene's Y-up frame and turned by scene_to_frame. // - Draw it unshaded, unfogged, without depth writes: the Environment's // depth fog colour should equal `horizon` so far geometry melts into it. shader_type spatial; render_mode world_vertex_coords, unshaded, cull_front, depth_draw_never, fog_disabled, shadows_disabled, specular_disabled; group_uniforms Gradient; uniform zenith: vec3 : source_color = vec3(0.24, 0.40, 0.78); uniform horizon: vec3 : source_color = vec3(0.80, 0.86, 0.96); uniform below: vec3 : source_color = vec3(0.80, 0.86, 0.96); // The gradient in this many flat bands (0: smooth; the present pass // dithers it either way). uniform bands: f32 : hint_range(0.0, 32.0, 1.0) = 12.0; // Bends the gradient towards the horizon (1 linear, above 1 a thinner haze). uniform curve: f32 : hint_range(0.2, 4.0, 0.05) = 1.6; group_uniforms Sun; uniform sun_direction: vec3 = vec3(0.4, 0.25, 0.5); uniform sun_color: vec3 : source_color = vec3(1.0, 0.92, 0.70); // Angular radius of the disc and of the halo, in degrees. uniform sun_size: f32 : hint_range(0.1, 10.0, 0.1) = 2.2; uniform halo_size: f32 : hint_range(0.0, 60.0, 0.5) = 18.0; uniform halo_strength: f32 : hint_range(0.0, 2.0, 0.05) = 0.6; group_uniforms Horizon; // A strip wrapped round the horizon (u: azimuth, v: up), alpha cut out. uniform horizon_texture: texture_2d : source_color, filter_nearest, repeat_enable, hint_default_transparent; // How many times the strip wraps round, and the band of elevation it // covers, in degrees (bottom, top). uniform horizon_repeat: f32 = 2.0; uniform horizon_band: vec2 = vec2(-2.0, 14.0); uniform horizon_tint: vec3 : source_color = vec3(1.0, 1.0, 1.0); varying dir: vec3; fn scene_to_frame(v: vec3) -> vec3 { return vec3(v.x, -v.z, v.y); } fn vertex() { dir = VERTEX - NODE_POSITION_WORLD; } fn fragment() { let d = normalize(dir); let up = d.z; var t = pow(clamp(up, 0.0, 1.0), 1.0 / curve); if (bands >= 2.0) { t = floor(t * bands) / bands; } var col = mix(horizon, zenith, t); if (up < 0.0) { col = mix(horizon, below, clamp(-up * 8.0, 0.0, 1.0)); } let sun = normalize(scene_to_frame(sun_direction)); let angle = degrees(acos(clamp(dot(d, sun), -1.0, 1.0))); let halo = halo_strength * pow(clamp(1.0 - angle / max(halo_size, 0.001), 0.0, 1.0), 2.0); col = col + sun_color * halo; if (angle < sun_size) { col = sun_color * 1.4; } let elevation = degrees(asin(clamp(up, -1.0, 1.0))); let v = (elevation - horizon_band.x) / max(horizon_band.y - horizon_band.x, 0.001); let u = (atan2(d.y, d.x) / TAU + 0.5) * horizon_repeat; let strip = texture(horizon_texture, vec2(u, 1.0 - clamp(v, 0.0, 1.0))); if (v >= 0.0 && v <= 1.0 && strip.a >= 0.5) { col = strip.rgb * horizon_tint; } ALBEDO = col; } // psx_sprite.wgsl: camera-facing sprites for CPUParticles3D (snow spray, // powder puffs, sparks, confetti), turned in the vertex stage, with a // flipbook and 1-bit alpha. The mesh is the emitter's QuadMesh (1 x 1); // the particle's scale is its transform's. // // Notes for Hedra (verified with hedra 0.1.0): // - A ShaderMaterial is not turned by billboard_mode (only a // StandardMaterial3D's is), so the quad is turned here: its corners are // laid out in view space around the particle's centre. // - There is no flipbook (anim_speed / hframes are not in the format) and // no particle age in a shader. The age rides in COLOR.a: give the // emitter a color_ramp whose alpha falls from 1 at birth to 0 at death; // the frame is chosen from it and the sprite's own alpha is the // texture's (cut at 0.5). shader_type spatial; render_mode skip_vertex_transform, unshaded, cull_disabled, specular_disabled, shadows_disabled; uniform sprite_sheet: texture_2d : source_color, filter_nearest, repeat_disable, hint_default_white; // Frames in the sheet, left to right then top to bottom. uniform frames_x: f32 = 4.0; uniform frames_y: f32 = 1.0; uniform tint: vec3 : source_color = vec3(1.0, 1.0, 1.0); uniform alpha_cut: f32 : hint_range(0.0, 1.0, 0.01) = 0.5; uniform snap_resolution: vec2 = vec2(320.0, 240.0); varying frame_uv: vec2; fn vertex() { let scale = length(MODEL_MATRIX[0].xyz); var view_pos = MODELVIEW_MATRIX * vec4(0.0, 0.0, 0.0, 1.0); view_pos = vec4(view_pos.xyz + vec3(VERTEX.xy * scale, 0.0), 1.0); let clip = PROJECTION_MATRIX * view_pos; if (snap_resolution.x > 0.0 && clip.w > 0.0001) { let half_res = snap_resolution * 0.5; let snapped = round(clip.xy / clip.w * half_res) / half_res; let back = INV_PROJECTION_MATRIX * vec4(snapped * clip.w, clip.z, clip.w); view_pos = vec4(back.xyz / back.w, 1.0); } VERTEX = view_pos.xyz; NORMAL = vec3(0.0, 0.0, 1.0); let count = max(frames_x * frames_y, 1.0); let frame = min(floor((1.0 - clamp(COLOR.a, 0.0, 1.0)) * count), count - 1.0); let cell = vec2(frame % frames_x, floor(frame / frames_x)); frame_uv = (cell + UV) / vec2(frames_x, frames_y); } fn fragment() { let texel = texture(sprite_sheet, frame_uv); ALBEDO = texel.rgb * tint * COLOR.rgb; ALPHA = texel.a; ALPHA_SCISSOR_THRESHOLD = alpha_cut; } // psx_surface.wgsl: the PlayStation surface, for every opaque mesh of a PSX // scene (terrain, props, buildings, the characters' parts). // // What it reproduces, each as a knob (psx-style SKILL.md, "The signature"): // - vertex snapping: every vertex lands on a grid of `snap_resolution` // screen pixels (the GTE had no sub-pixel precision), so the geometry // jitters as the camera moves; // - affine texture mapping: the UV is interpolated in screen space, not in // perspective, so textures swim on large polygons near the camera; // - nearest texels: no filtering, no mipmaps (import the texture with // compress/mode=lossless and mipmaps/generate=false); // - Gouraud shading: the light is worked out per vertex, from one sun, a // hemisphere ambient and an optional baked tint, and interpolated. // // Notes for Hedra (verified with hedra 0.1.0): // - `skip_vertex_transform`: VERTEX arrives in MODEL space and must be left // in VIEW space; NORMAL likewise. Snapping in view space (project, snap, // unproject) keeps the shadow, depth and SSR passes consistent, which // writing POSITION would not. // - The shader's world frame is Z up: a scene vector (x, y, z) is // (x, -z, y) here. `sun_direction` is given in the scene's Y-up frame and // turned by `scene_to_frame` below. // - There is no `noperspective` varying: the affine UV is carried as // (uv * w, w) and divided in fragment(), which undoes the perspective // correction the rasteriser applies; its 4th lane is the affine weight, // faded out near the camera (`affine_near`). // - `unshaded` takes no Decal: a blob shadow is a mesh (psx_blob_shadow). // The engine's depth fog still applies (fog_disabled is not set). shader_type spatial; render_mode skip_vertex_transform, unshaded, cull_back, specular_disabled, shadows_disabled; group_uniforms Texture; uniform albedo_texture: texture_2d : source_color, filter_nearest, repeat_enable, hint_default_white; uniform albedo: vec4 : source_color = vec4(1.0, 1.0, 1.0, 1.0); uniform uv_scale: vec2 = vec2(1.0, 1.0); uniform uv_offset: vec2 = vec2(0.0, 0.0); // UV scroll in UV units a second (conveyor belts, flags, water). uniform uv_scroll: vec2 = vec2(0.0, 0.0); group_uniforms Geometry; // The grid vertices snap to, in screen pixels: the internal resolution for // the authentic jitter, half of it for an exaggerated one, 0 to switch off. uniform snap_resolution: vec2 = vec2(320.0, 240.0); // 1 is the PlayStation's screen-linear UV, 0 perspective-correct. Keep 1 // and subdivide large polygons near the camera instead (references/models.md). uniform affine_strength: f32 : hint_range(0.0, 1.0, 0.05) = 1.0; // Vertices nearer the camera than this (metres) fade to perspective-correct // UVs: a triangle crossing the camera's plane has no meaningful affine UV // (the PlayStation culled or subdivided those). uniform affine_near: f32 : hint_range(0.0, 10.0, 0.1) = 1.0; group_uniforms Light; // Towards the sun, in the scene's Y-up frame (normalised here). uniform sun_direction: vec3 = vec3(0.4, 0.6, 0.5); uniform sun_color: vec3 : source_color = vec3(1.0, 0.86, 0.66); // Hemisphere ambient: the sky's colour on faces turned up, the ground's // bounce on faces turned down (on snow the bounce is bright). uniform sky_ambient: vec3 : source_color = vec3(0.42, 0.50, 0.66); uniform ground_ambient: vec3 : source_color = vec3(0.30, 0.30, 0.34); // 0: smooth Gouraud. 2 to 8: the light in that many flat bands. uniform light_bands: f32 : hint_range(0.0, 8.0, 1.0) = 0.0; // Light added regardless of the sun (lit windows, neon, signs). uniform emission: vec3 : source_color = vec3(0.0, 0.0, 0.0); // 1 lets the colour pass 1.0, as the PlayStation's 2x colour modulation did // (a texel at 128 was "white"): bright highlights for the glow to catch. uniform overbright: f32 : hint_range(1.0, 2.0, 0.05) = 1.0; group_uniforms Transparency; // The era's translucency for a solid object (a ghost, a respawn blink): a // screen-door pattern of whole low-resolution pixels left out. 0 draws // everything, 0.25, 0.5 and 0.75 leave out that share of a 2 x 2 pattern, // 1 draws nothing. The object stays opaque (no blending, no sorting). uniform screen_door: f32 : hint_range(0.0, 1.0, 0.25) = 0.0; varying affine_uv: vec4; varying gouraud: vec3; fn scene_to_frame(v: vec3) -> vec3 { return vec3(v.x, -v.z, v.y); } fn snap_view(view_pos: vec4) -> vec4 { if (snap_resolution.x <= 0.0) { return view_pos; } let clip = PROJECTION_MATRIX * view_pos; if (clip.w <= 0.0001) { return view_pos; } let half_res = snap_resolution * 0.5; let ndc = clip.xy / clip.w; let snapped = round(ndc * half_res) / half_res; let back = INV_PROJECTION_MATRIX * vec4(snapped * clip.w, clip.z, clip.w); return vec4(back.xyz / back.w, 1.0); } fn vertex() { // Gouraud, in the shader's world frame, from the model's normal. let n = normalize(MODEL_NORMAL_MATRIX * NORMAL); let sun = normalize(scene_to_frame(sun_direction)); var diffuse = max(dot(n, sun), 0.0); if (light_bands >= 2.0) { diffuse = floor(diffuse * light_bands + 0.5) / light_bands; } let ambient = mix(ground_ambient, sky_ambient, n.z * 0.5 + 0.5); gouraud = (ambient + sun_color * diffuse) * COLOR.rgb * overbright + emission; // Snap in view space, then hand the view-space position back. let view_pos = snap_view(MODELVIEW_MATRIX * vec4(VERTEX, 1.0)); VERTEX = view_pos.xyz; NORMAL = normalize(MODELVIEW_NORMAL_MATRIX * NORMAL); let uv = UV * uv_scale + uv_offset + uv_scroll * TIME; UV = uv; let w = (PROJECTION_MATRIX * view_pos).w; let weight = affine_strength * clamp((w - 0.25) / max(affine_near, 0.001), 0.0, 1.0); affine_uv = vec4(uv * w, w, weight); } fn fragment() { if (screen_door > 0.0) { // A 2 x 2 Bayer order: the cells are left out in the order 0 to 3. var order = array(0.0, 2.0, 3.0, 1.0); let cell = vec2(FRAGCOORD.xy) % vec2(2u, 2u); if (order[cell.y * 2u + cell.x] < screen_door * 4.0 - 0.001) { discard; } } let affine = affine_uv.xy / max(affine_uv.z, 0.0001); let uv = mix(UV, affine, clamp(affine_uv.w, 0.0, 1.0)); let texel = texture(albedo_texture, uv); ALBEDO = texel.rgb * albedo.rgb * gouraud; } ‰Ë"hedra:build/hedra/world/remap.jsonjÔ€ž{ "schema": 1, "major": 0, "project": "world", "scenes": [ {"scene": "world/course/course.rscn", "built": "build/hedra/world/course/course.rscnb", "text_sha256": "02486974be1d282f392a38c1b34dc1dc02e8c0688b8cd08339cfd4468e7f73cc"}, {"scene": "world/rider/rider.rscn", "built": "build/hedra/world/rider/rider.rscnb", "text_sha256": "f34e24ac7bf9ac70af9fc1dda3017d12dbe06ebea4ddd7c6bd6000596eb54f43"}, {"scene": "world/run.rscn", "built": "build/hedra/world/run.rscnb", "text_sha256": "1716bb8ef1383296edc3d777304e9760deba442079bb0086641aa380592ab6c7"} ], "resources": [ {"path": "world/course/course.rscn", "kind": "scene", "entry": "course/course.rscn", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "02486974be1d282f392a38c1b34dc1dc02e8c0688b8cd08339cfd4468e7f73cc", "bytes": 349220, "import_sha256": ""}, {"path": "world/course/dressing.rmdlcmd", "kind": "model", "entry": "course/dressing.rmdlcmd", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "aaa00af305eea590f5ccd8ad8d5e1928cbf7aa6273effca95334fb2b98e61c9a", "bytes": 783887, "import_sha256": "6814f3fda50746559df803df917656045912404b4f447d0e6a7a601be25aa06d"}, {"path": "world/course/terrain.rmdlcmd", "kind": "model", "entry": "course/terrain.rmdlcmd", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "d245bb7fec08b8fa1304265b8b3bacab10be2c674e8b7e855cc2f3cd67172afa", "bytes": 9731714, "import_sha256": "d4235e7ad2980553e656488de6edf579bb69d4fcc0df5ce1c76780d8480618a5"}, {"path": "world/psx/psx_blob_shadow.wgsl", "kind": "shader", "entry": "psx/psx_blob_shadow.wgsl", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "b768126626422a2b0fd7c6ed8a965db04f5d250886d0326a25804546afd365ce", "bytes": 1878, "import_sha256": ""}, {"path": "world/psx/psx_chrome.wgsl", "kind": "shader", "entry": "psx/psx_chrome.wgsl", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "9e4d21cdf1310405b2af37677f9001b09c45edf4aabd4e29c9ba0a1381c800d1", "bytes": 2076, "import_sha256": ""}, {"path": "world/psx/psx_cutout.wgsl", "kind": "shader", "entry": "psx/psx_cutout.wgsl", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "d7497308fcdf87bc2290c7bff60aa55af4fee97fb496dd902318860c7c341142", "bytes": 6146, "import_sha256": ""}, {"path": "world/psx/psx_present.wgsl", "kind": "shader", "entry": "psx/psx_present.wgsl", "built": ["build/hedra/world/run.rscnb"], "sha256": "cbaca40c731c4af5a5186a074e119be5f6c75628af36b87752cb125c2289ba3a", "bytes": 3910, "import_sha256": ""}, {"path": "world/psx/psx_sky.wgsl", "kind": "shader", "entry": "psx/psx_sky.wgsl", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "61cffb0a77b1a3dae8501b84fcc614206c10ce68992e6df25452d441ea02c473", "bytes": 3557, "import_sha256": ""}, {"path": "world/psx/psx_sprite.wgsl", "kind": "shader", "entry": "psx/psx_sprite.wgsl", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "c0dd1f82a9070abe5519e91aa32f82a9cc7fd24a3589d55e30f68524ce0f3b57", "bytes": 2454, "import_sha256": ""}, {"path": "world/psx/psx_surface.wgsl", "kind": "shader", "entry": "psx/psx_surface.wgsl", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "5543174aac7480a3dd1ae92635907f72178a169c61cf8d65c1bda391e14cf1d6", "bytes": 6514, "import_sha256": ""}, {"path": "world/rider/parts/Beanie.gltf", "kind": "model", "entry": "rider/parts/Beanie.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "fb8ce1da9fb302b3aa17f685137c8ddd4c4a764e24b19bd58ebf09d10cbfe641", "bytes": 4166, "import_sha256": "e8aba0ed38dddc8d6059dc7ab0e261ba6ee12760204100cbc9e0be0bc8fbd685"}, {"path": "world/rider/parts/Board.gltf", "kind": "model", "entry": "rider/parts/Board.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "b4f4b8704cebe37727790d6bac9a05217642b2706c671a4a01b0de68d45f59e8", "bytes": 3227, "import_sha256": "a55be6abea57269af981f7f788055617f7f631159b9f0a25d87f67c8950c4baa"}, {"path": "world/rider/parts/BootL.gltf", "kind": "model", "entry": "rider/parts/BootL.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "5fd178ed83f31bedc084fe4a4ca8cabcccbcedf8e865336c433a42096c6f0743", "bytes": 2072, "import_sha256": "f1124a264689653139189c087769b63cb430169148275512b908b5efd06fb821"}, {"path": "world/rider/parts/BootR.gltf", "kind": "model", "entry": "rider/parts/BootR.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "1ccecb516cf1d5b6551b77dc6ceaf2fa51fb0b07525081b2e63089dcb2f3a392", "bytes": 2072, "import_sha256": "f032b4f9132464c590ab87f61bba4acc44a71b9055e396f862510af376d79249"}, {"path": "world/rider/parts/HandL.gltf", "kind": "model", "entry": "rider/parts/HandL.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "ccd2828ac69b435152df0cb0f047d8bb3a614f531bf1dcc829054b05c59f039f", "bytes": 2103, "import_sha256": "d90c35b9cc9636af0df0b19b07e8c32af03ff7858eba6b6cbe5dbb46f0fed5c1"}, {"path": "world/rider/parts/HandR.gltf", "kind": "model", "entry": "rider/parts/HandR.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "0a853986dd2aea4b43f0396d70cf11da7f9f9e1597fef74ba3a310fbcf6c6bb7", "bytes": 2103, "import_sha256": "f1e717c3b146ac858f9b731d97781abdacf7e3f834ea1730a39cd881e7047fe7"}, {"path": "world/rider/parts/Head.gltf", "kind": "model", "entry": "rider/parts/Head.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "4454c71d03796218e526989e2a33ed458f43c0e3983b067e5ab8b7e41bf2bcdc", "bytes": 3147, "import_sha256": "50cbf6b8c26d827e741bfe9ec4ce81fc581f5a44fd346c2b581de9f4e1ebe04d"}, {"path": "world/rider/parts/LowerArmL.gltf", "kind": "model", "entry": "rider/parts/LowerArmL.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "31e740b6eb0605077e9ed311fdb398e58b58aded14067ed8f5c547021288836b", "bytes": 2362, "import_sha256": "5b9228974803d2e59322ed93f78d0bdf8014accdb4508a21ad2b0e30f31655ef"}, {"path": "world/rider/parts/LowerArmR.gltf", "kind": "model", "entry": "rider/parts/LowerArmR.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "62612b4494614e432fcde53d620a20dd4b5624e5809930f3143ae6a10e4bc8ed", "bytes": 2362, "import_sha256": "5f5db3eea53c3e36cecb45c6579bbe14affd7b16e82cb5b6589c137ef8472e2e"}, {"path": "world/rider/parts/LowerLegL.gltf", "kind": "model", "entry": "rider/parts/LowerLegL.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "1f1851e9ad4dd30143163198ad1a600c0de6be1b09db4191d4d67aee2030322a", "bytes": 2359, "import_sha256": "a19873c6f1fc8406f1800509963852cb8e0fdec0c28906beaf61957bbb9ee53c"}, {"path": "world/rider/parts/LowerLegR.gltf", "kind": "model", "entry": "rider/parts/LowerLegR.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "163dc666149f95af9573583b66ea03ff5c1eb43fcd0f0b8313411b4a29660925", "bytes": 2359, "import_sha256": "27443bfb9748d10ae045ba736d34d4218041a700d59dbf158884d8c2ba80d6e3"}, {"path": "world/rider/parts/Pelvis.gltf", "kind": "model", "entry": "rider/parts/Pelvis.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "78cd186ed8c11903314ddc6dd85abf9ea2c57e965eb473122716aad54b283139", "bytes": 2355, "import_sha256": "85728d91fb66ed302008ff8a487116eac76f3c2d79b83924fdb08ed53f24733a"}, {"path": "world/rider/parts/Torso.gltf", "kind": "model", "entry": "rider/parts/Torso.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "88333d0bfc8c296b15d60d4d0ba62f71a40961d318e63f0959efcfa2106a2983", "bytes": 3655, "import_sha256": "a99db13863e20ee5e38f15d8952d19c761a76825a4995a9ba179620fe27b891f"}, {"path": "world/rider/parts/UpperArmL.gltf", "kind": "model", "entry": "rider/parts/UpperArmL.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "faca48a18cb8aee330e86591bae8793a305c033ba90411b9fb9a7763bad12e27", "bytes": 2075, "import_sha256": "6f683c40c0571a64f56ce58b8c1c9e21827f5d1d76eb6bf3430927d6da705667"}, {"path": "world/rider/parts/UpperArmR.gltf", "kind": "model", "entry": "rider/parts/UpperArmR.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "19c27177f0e5a92361fc348be655a479d3124af2de768900cd1c6cc41fc183de", "bytes": 2075, "import_sha256": "95ae22e0a349965f95b300f057eb4f5d7b07e204819617cea62c132ef20dd696"}, {"path": "world/rider/parts/UpperLegL.gltf", "kind": "model", "entry": "rider/parts/UpperLegL.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "d2de1965fe227ddce98f4ab432e38a33b5c1edbfeef28c988565301c08a86b3b", "bytes": 2070, "import_sha256": "c78ad9c3adbe8a5d68d83c976d411f05c2f052771ba59a34b83bcccd63c05d85"}, {"path": "world/rider/parts/UpperLegR.gltf", "kind": "model", "entry": "rider/parts/UpperLegR.gltf", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "7f283030be227edc0ffde7bcf9fc5fea89de99d43e503d4fd8e4f165e3fa1588", "bytes": 2070, "import_sha256": "112bf46ad30212cba22915b3ce1e70f54028b3da0f49a91f4dad89272e7e323b"}, {"path": "world/rider/rider.rscn", "kind": "scene", "entry": "rider/rider.rscn", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "f34e24ac7bf9ac70af9fc1dda3017d12dbe06ebea4ddd7c6bd6000596eb54f43", "bytes": 16068, "import_sha256": ""}, {"path": "world/rider/textures/puff.png", "kind": "texture", "entry": "rider/textures/puff.png", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "1070ba25275b7f09c87aecf0c2f5a46be8ac96e70c09dac1548a5e7639739082", "bytes": 264, "import_sha256": "c89d861c56fad35042e81bcb32bdbe0f757dc13412afc6cdca388a5b28b8a440"}, {"path": "world/rider/textures/rider_page.png", "kind": "texture", "entry": "rider/textures/rider_page.png", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "1320812d9b4623179acc5ce9c3443dd3c83ab0f098ff2222ebbc74d050ad78bb", "bytes": 3023, "import_sha256": "e4361d1d4ce30de8b27512f5dd303197d08d5356a30515a8d60aa7707f5ec9a9"}, {"path": "world/rider/textures/star.png", "kind": "texture", "entry": "rider/textures/star.png", "built": ["build/hedra/world/rider/rider.rscnb", "build/hedra/world/run.rscnb"], "sha256": "3852ba3a739979a1b4d9a516ccaf26018f0d33c83bffc197240de6acc0785497", "bytes": 119, "import_sha256": "649c4c0300a136826a4a443c3c84ffdee1d5378227992f769eb4ec1e504f9d2c"}, {"path": "world/run.rscn", "kind": "scene", "entry": "run.rscn", "built": ["build/hedra/world/run.rscnb"], "sha256": "1716bb8ef1383296edc3d777304e9760deba442079bb0086641aa380592ab6c7", "bytes": 17089, "import_sha256": ""}, {"path": "world/scripts/camera.as", "kind": "script", "entry": "scripts/camera.as", "built": ["build/hedra/world/run.rscnb"], "sha256": "568215c7c7461c3b8a78768119a583119c7583c4ba80a52e1bb95f3c7dd7e427", "bytes": 9741, "import_sha256": ""}, {"path": "world/scripts/daylight.as", "kind": "script", "entry": "scripts/daylight.as", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "d301caa5c9b9087341f566f9b2e717b377a6bc6d299821c0a0edc14d21ad1336", "bytes": 2098, "import_sha256": ""}, {"path": "world/scripts/fx_course.as", "kind": "script", "entry": "scripts/fx_course.as", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "4279b0cb9b9a34214c78fda305e50f8437f6fa0d8d880754de3b76c47cd0e380", "bytes": 5361, "import_sha256": ""}, {"path": "world/scripts/run.as", "kind": "script", "entry": "scripts/run.as", "built": ["build/hedra/world/run.rscnb"], "sha256": "a7b0bebf2566294cbf7f3a72a7a05140cc58508a5c28f6c15b22f6176f46ead6", "bytes": 31813, "import_sha256": ""}, {"path": "world/scripts/sound.as", "kind": "script", "entry": "scripts/sound.as", "built": ["build/hedra/world/run.rscnb"], "sha256": "d1404097d3b61332f00a454d162acfa785c8f7521f19fb42294773bfbf1076e9", "bytes": 1089, "import_sha256": ""}, {"path": "world/textures/arches.png", "kind": "texture", "entry": "textures/arches.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "0a17d224df9e9c9a89cedf01ceade5696746e529e6a61dd840bc15ccd20c0a9f", "bytes": 2514, "import_sha256": "3c92fe9c115a6b8c2d09bb8000f599f7308e1fae90fb24130b0e19d2908562c4"}, {"path": "world/textures/banners.png", "kind": "texture", "entry": "textures/banners.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "9fa53b8004a06e4f38cd7234e2cf361146a4de098679046a1f012a9b32ef8ca0", "bytes": 4728, "import_sha256": "52588b4baaa8f3b5e3780a7425cbd92699c7f5e8dff448b48496af19dda5de2a"}, {"path": "world/textures/bark.png", "kind": "texture", "entry": "textures/bark.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "5c4a0e251aa45756074c5b781df3922fcfbd9f4539a75504f3b0f5548fbac962", "bytes": 832, "import_sha256": "2846047b0172961b0e2981ec74055a583b2fada967431f302eda80997305e87f"}, {"path": "world/textures/box.png", "kind": "texture", "entry": "textures/box.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "9c013a2ed7df727502c5c5c6d0c80683b4c963c6004fe93ae513d6bb9ac64354", "bytes": 472, "import_sha256": "de6bbbe5b318d2a693b06f7110c2c2d3cba2a4b19c7656cbff480cc713cdfee9"}, {"path": "world/textures/building.png", "kind": "texture", "entry": "textures/building.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "da3c80a2ad89dfc512b0606daacef3dbfbe1763928176afb8764e7202d3795dc", "bytes": 1879, "import_sha256": "e4931ff8b26dfaeaef7a522e44b061025d938bb057807656de84e7111745fb7a"}, {"path": "world/textures/chrome_matcap.png", "kind": "texture", "entry": "textures/chrome_matcap.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "a2360f732e702683e7d6d528dbb8db5b694cbb5148d1f0ed87dd574630187aa7", "bytes": 578, "import_sha256": "9aa38fb1a6722dc3fc5b6a87eebf1bf7ab68b3502c4b57fc6f8d1637d386ac81"}, {"path": "world/textures/crowd.png", "kind": "texture", "entry": "textures/crowd.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "1bf460d1e04b1f3652936af2f91d26adb41170f7193e5a03496e757baebd4820", "bytes": 431, "import_sha256": "9329eede332e8de7ab6265ef752523405e8602503daf52b66762d3f31542e714"}, {"path": "world/textures/fence.png", "kind": "texture", "entry": "textures/fence.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "aacd29062e3f931547c8c5073ff495faaf418e496bd2083c6f81d939ef3f43e0", "bytes": 221, "import_sha256": "24bb89e4668b33ecdb9c05d23dba889a90a9c53ebe48a143b56281c0d4c2aef6"}, {"path": "world/textures/fx_confetti.png", "kind": "texture", "entry": "textures/fx_confetti.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "ec1c0b34f7fde5cf972006be545a895f0c3a8df9c0077b510c3f8f28878bd5f6", "bytes": 89, "import_sha256": "a0017edc6527340e56fd8145f2dd5ff01c8bfdbb88d94a79235908bc4a35eb24"}, {"path": "world/textures/fx_flake.png", "kind": "texture", "entry": "textures/fx_flake.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "8ba5a96c13432362fc6358ceb661d4e362e4fd3e5fc4f8f6bb76c315feab5709", "bytes": 100, "import_sha256": "74770d45f692fe974fefcd9ef1b85fea2fe8e437b835c87ccb149d1bc6201f78"}, {"path": "world/textures/fx_flare.png", "kind": "texture", "entry": "textures/fx_flare.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "4c835bd441f2e2ca6eea5a5262ecc437955efb75bf2477d7162ea0e4fb4e6049", "bytes": 239, "import_sha256": "30629106f075465010fbda3768d2a95b1d7bc8fc3f58220aba3ab570f2d0d22d"}, {"path": "world/textures/ice.png", "kind": "texture", "entry": "textures/ice.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "28279dbe4e0598dfcc88dd35f1861c7a7106d9f20320e5331690158bd5091a53", "bytes": 914, "import_sha256": "bd5bd08cd4b6d8d4e77017567d4eba38a8cf7511639fec8dc5460b0166276a08"}, {"path": "world/textures/lift.png", "kind": "texture", "entry": "textures/lift.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "cbb69f085198757a0728a6c13de9a1b7ef94b4161e52bae9f8cdbef7e2340d40", "bytes": 761, "import_sha256": "2d1078241ec3eef105c079474c0ec0cfda2dfc6e38c76edc4d91b1d557c27303"}, {"path": "world/textures/mountains.png", "kind": "texture", "entry": "textures/mountains.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "6ff45597112ec9f2c40ec5a50fcd18c7a9591d523c8263b2f2ca30385f381dd9", "bytes": 732, "import_sha256": "91f79c898313d066dc95586142ce41e8cc90b74bbf6034e86f76e805253a589c"}, {"path": "world/textures/pine_a.png", "kind": "texture", "entry": "textures/pine_a.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "415e075044c5519a12ee3da731c02d8c7bc3347ced88c6640318fda2c0cbe321", "bytes": 924, "import_sha256": "6c58f7a9be2391ca201edf6835951dabec11b8b690102a6bfab415c7b5e9375a"}, {"path": "world/textures/pine_b.png", "kind": "texture", "entry": "textures/pine_b.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "aef3a726f0064887b0dcd3075cd887887aa0e2d76a4a7e050529e912be93c4bc", "bytes": 1145, "import_sha256": "1172b9f190de41607a1181f04eb8f8c14832aca06f21105ed440bc38e920584d"}, {"path": "world/textures/pine_cone.png", "kind": "texture", "entry": "textures/pine_cone.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "a669e75bc465a0d8e2b2b5db94cd9cc78c4ca4a083e55515c35d780fa4ef5f81", "bytes": 1339, "import_sha256": "b536707e5f43bca38745653468ef69770cff594a9f29694cf2d87814750ada52"}, {"path": "world/textures/rock.png", "kind": "texture", "entry": "textures/rock.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "4bb64b537780f1b1ebfd88158b88ca525f60c8b79c08e002e18992acc106d948", "bytes": 1057, "import_sha256": "e5b600df4b0677f2a0ec45a8564bbf0c6e6d5d7b106bd1a03b2925259847116b"}, {"path": "world/textures/snow_groomed.png", "kind": "texture", "entry": "textures/snow_groomed.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "a8c8075336220d5261a7ae28f5902d30e1d2b54b5c622f37c1cfccc5c349562a", "bytes": 471, "import_sha256": "3813b5c5b4d3a1f65166262ec0361c40f201d0846e2e3adf62a6e748bab04da2"}, {"path": "world/textures/snow_packed.png", "kind": "texture", "entry": "textures/snow_packed.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "1ade4d5e1e9ac16672d539025f7e74e02897baaf2efd058c0263072e1db5af6d", "bytes": 705, "import_sha256": "497dee5e19510035ea9ad799112643a1e9c03eda706fde87265c0db2af7436c0"}, {"path": "world/textures/snow_powder.png", "kind": "texture", "entry": "textures/snow_powder.png", "built": ["build/hedra/world/course/course.rscnb", "build/hedra/world/run.rscnb"], "sha256": "762cbae12ae79ad94e24e7411ccee80f33c6f52e737325b138ea5a15bb1d3b1a", "bytes": 892, "import_sha256": "46e7bd31d6b7089a220282a0e77e3158fc8b803a6f5b6098875f99fb081492f5"} ] } ‰Ë)hedra:build/hedra/world/rider/rider.rscnbjÔÀ’RSCNB  @ɧŠA<STRSÀò VALS¸EXTRÐtSUBRH”NODEà,ITEM BIND0CONN8EMBD@ORDRHpSRCS¸ ^ANIM!íASST$0¥³  #                     1_surfaceShaderres://psx/psx_surface.wgsl2_shadowres://psx/psx_blob_shadow.wgsl3_spriteres://psx/psx_sprite.wgsl4_pageTexture2Dres://rider/textures/rider_page.png5_puffres://rider/textures/puff.png6_starres://rider/textures/star.pngp0_PelvisPackedSceneres://rider/parts/Pelvis.gltfp1_Torsores://rider/parts/Torso.gltfp2_Headres://rider/parts/Head.gltfp3_Beanieres://rider/parts/Beanie.gltfp4_UpperArmLres://rider/parts/UpperArmL.gltfp5_LowerArmLres://rider/parts/LowerArmL.gltfp6_HandLres://rider/parts/HandL.gltfp7_UpperLegLres://rider/parts/UpperLegL.gltfp8_LowerLegLres://rider/parts/LowerLegL.gltfp9_BootLres://rider/parts/BootL.gltfp10_UpperArmRres://rider/parts/UpperArmR.gltfp11_LowerArmRres://rider/parts/LowerArmR.gltfp12_HandRres://rider/parts/HandR.gltfp13_UpperLegRres://rider/parts/UpperLegR.gltfp14_LowerLegRres://rider/parts/LowerLegR.gltfp15_BootRres://rider/parts/BootR.gltfp16_Boardres://rider/parts/Board.gltfRiderNode3DBodyBoardmeshHipsChestNeckShoulderLElbowLWristLShoulderRElbowRWristRHipLKneeLAnkleLHipRKneeRAnkleRPelvisTorsoHeadBeanieUpperArmLLowerArmLHandLUpperLegLLowerLegLBootLUpperArmRLowerArmRHandRUpperLegRLowerLegRBootRShadowMeshInstance3DSprayCPUParticles3DBurstSparkleMat_riderShaderMaterialMat_boardMat_shadowMesh_shadowPlaneMeshMat_puffQuad_puffQuadMeshMat_starQuad_starRamp_ageGradientshadershader_parameter/albedo_textureshader_parameter/sun_directionshader_parameter/sky_ambientshader_parameter/ground_ambientshader_parameter/overbrightshader_parameter/affine_nearrender_priorityshader_parameter/shadow_colorsizematerialshader_parameter/sprite_sheetshader_parameter/frames_xoffsetscolorsmaterial_overridepositioncast_shadowemittingamountlifetimeemission_shapeemission_box_extentsdirectionspreadinitial_velocity_mininitial_velocity_maxgravityscale_amount_minscale_amount_maxcolor_rampone_shotexplosivenessemission_sphere_radiusrider/parts/Beanie.gltfrider/parts/Board.gltfrider/parts/BootL.gltfrider/parts/BootR.gltfrider/parts/HandL.gltfrider/parts/HandR.gltfrider/parts/Head.gltfrider/parts/LowerArmL.gltfrider/parts/LowerArmR.gltfrider/parts/LowerLegL.gltfrider/parts/LowerLegR.gltfrider/parts/Pelvis.gltfrider/parts/Torso.gltfrider/parts/UpperArmL.gltfrider/parts/UpperArmR.gltfrider/parts/UpperLegL.gltfrider/parts/UpperLegR.gltfrider/parts/Beanie.gltf#0rider/parts/Board.gltf#0rider/parts/BootL.gltf#0rider/parts/BootR.gltf#0rider/parts/HandL.gltf#0rider/parts/HandR.gltf#0rider/parts/Head.gltf#0rider/parts/LowerArmL.gltf#0rider/parts/LowerArmR.gltf#0rider/parts/LowerLegL.gltf#0rider/parts/LowerLegR.gltf#0rider/parts/Pelvis.gltf#0rider/parts/Torso.gltf#0rider/parts/UpperArmL.gltf#0rider/parts/UpperArmR.gltf#0rider/parts/UpperLegL.gltf#0rider/parts/UpperLegR.gltf#0rider/textures/puff.pngrider/textures/rider_page.pngrider/textures/star.pngpsx/psx_blob_shadow.wgslpsx/psx_sprite.wgslpsx/psx_surface.wgslP0 "$&(*,. ÍÌÌÌÌÌÜ¿®GázÞ?R¸…ëQè¿ ö(\�Âõà?333333ã?ö(\�Âõè?ð? ×£p= ×ã?{®Gázä?®Gáz®ç?ð?333333ó?ø?ffffffö?ffffffö?_ @b eð?ð?ð?ð?ð?ð?ð?ð?^ …ëQ¸…ë? {®Gáz´? à? )\�Âõ(Ü?R¸…ëQÈ¿ Ház®GÑ¿ п )\�Âõ(Ü?R¸…ëQÈ? ¸…ëQ¸®¿)\�Âõ(¼¿ š™™™™™Ù¿ ¸…ëQ¸®¿)\�Âõ(¼?\`0333333ã?c š™™™™™É?š™™™™™©?333333Ó? ð?< @ ÀÐ?ÍÌÌÌÌÌÜ?gÍÌÌÌÌÌì?ffffffæ?š™™™™™Ù?P@ À333333Ó?š™™™™™é?fà?Z ffffffÖ?ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !ÿÿÿÿ"#ÿÿÿÿ$%ÿÿÿÿ&'ÿÿÿÿ()ÿÿÿÿ*+ÿÿÿÿ,-ÿÿÿÿ./ÿÿÿÿ01ÿÿÿÿ \]^]_]`ab]cde]fdgh7ÿÿÿÿ23ÿÿÿÿ43ÿÿÿÿ5ÿÿÿÿ6ÿÿÿÿÿÿÿÿ73ÿÿÿÿ83ÿÿÿÿ93ÿÿÿÿ :3ÿÿÿÿ!;3ÿÿÿÿ"<3ÿÿÿÿ#=3ÿÿÿÿ$ >3ÿÿÿÿ% ?3ÿÿÿÿ&@3ÿÿÿÿ' A3ÿÿÿÿ(B3ÿÿÿÿ)C3ÿÿÿÿ*D3ÿÿÿÿ+E3ÿÿÿÿ,Fÿÿÿÿ-6ÿÿÿÿÿÿÿÿ-Gÿÿÿÿ.6ÿÿÿÿÿÿÿÿ.Hÿÿÿÿ/6ÿÿÿÿÿÿÿÿ/Iÿÿÿÿ06ÿÿÿÿÿÿÿÿ0Jÿÿÿÿ16ÿÿÿÿÿÿÿÿ1Kÿÿÿÿ26ÿÿÿÿÿÿÿÿ2 Lÿÿÿÿ36ÿÿÿÿÿÿÿÿ3 Mÿÿÿÿ4!6ÿÿÿÿÿÿÿÿ4Nÿÿÿÿ 5#6ÿÿÿÿÿÿÿÿ5Oÿÿÿÿ 6%6ÿÿÿÿÿÿÿÿ6 Pÿÿÿÿ 7'6ÿÿÿÿÿÿÿÿ7 Qÿÿÿÿ 8)6ÿÿÿÿÿÿÿÿ8 Rÿÿÿÿ 9+6ÿÿÿÿÿÿÿÿ9Sÿÿÿÿ:-6ÿÿÿÿÿÿÿÿ:Tÿÿÿÿ;/6ÿÿÿÿÿÿÿÿ;Uÿÿÿÿ<16ÿÿÿÿÿÿÿÿ<VWÿÿÿÿ=XYÿÿÿÿ?ZYÿÿÿÿM[Yÿÿÿÿ]mijklmnoijklmnoipqrsitusit us!v"w#x$y%y&y'y(y)y*y+y)y*y,y-y-y.y-y-x/x/x/x/x/x/x/x/x/x/x/x/x/x/x/x/60z1{2|3}465~67€8�9‚ƒ:„;…<†=‡>{2ˆ?‰@|A}B65~ŠC€8�D‚EƒF„G…H†4‡>{2ˆ?‰I|J}C6K~ŠL€8�M‚Lƒ„N…<†O‡>ÿÿÿÿZ       !"#$%&'()*+,-./0123456   }v¢^+rçɱ‰­Ú¯£… óutâHNæýW0ÇóN$¬{ù¬p¯ŸÁÝ£}Ûàn¾¤Ýׯ½`YnµOCworld/rider/rider.rscnDoor<<ð?ÿÿÿÿÿÿÿÿBody/Hips/Chest/Torso/mesh.material_override:shader_parameter/screen_door<ð?ÿÿÿÿÿÿÿÿBody/Board/mesh.material_override:shader_parameter/screen_door<ð?ÿÿÿÿÿÿÿÿLift<<ð?ÿÿÿÿÿÿÿÿShadow'material_override:shader_parameter/lift<ð?ÿÿÿÿÿÿÿÿScheme<ð?ÿÿÿÿÿÿÿÿBody/Hips/Chest/Torso/mesh.material_override:shader_parameter/uv_offset:yè?ÿÿÿÿÿÿÿÿ)@),®Zçõ‹p)ÚP'5eŒP-Ùa¢�01ÙþEÅCŽ5Ù#_k�ð8Ùð­¡ü�Ð<Ù-· ‘°@Ø(¼ò·’�DÝg¨}H“pHݺ²Ó”PLÝðÛf •0PÝ-ÁÈQ–TÚ …7—ðWÙäv(³˜Ð[ÝôKïÛ™°_Ý)QA‡š�cÝc8ôž›pgݾ"ZœPkÉ”�­� qÑí¹Ø|žu�LJåŸu�LJå �wu‡–‹b¡�wu‡–‹b¢zÑükû¦£ð}õ¢4·¤ð}õ¢4·¥�rJÐÖ¦�rJÐÖ§„é¦ý½¨‡�œðZ©�‹Ñd•ª�‹Ñd•«pŽÑÝŸÃ.¬pŽÑÝŸÃ.­P‘ Èëļ®`’Ó ìIy÷¯@ž{ÛÀ‚°ÀžVÚ=â± ¦– ÜI^ŲÀ¯rÍCÉ¡rider/rider.rscnmeshMeshInstance3Drider/parts/Beanie.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/Board.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/BootL.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/BootR.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/HandL.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/HandR.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/Head.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/LowerArmL.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/LowerArmR.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/LowerLegL.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/LowerLegR.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/Pelvis.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/Torso.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/UpperArmL.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/UpperArmR.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/UpperLegL.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/UpperLegR.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshmesh…ë½\�B>$ý…ë=ö(Ü>$Ã=¨F¨…ë½$ý\�B>…ë=$Ã=ö(Ü>‹Fƒ ×´õYpZ°´BZoY¯³ÊBÿÉ›Ê-óödŸ.›œÉ™Ê·¸·Ù¸·¸"!·mnmÙÿð·ÚÙÚ¸ÙÿoZ8z7’o7y8‘p»€þ€ý€þ€ý¼"Bcd"!AÝ�ý��€‚þ;kRQ†…†kÿðlklkÕüÿÀ‹º¹º-йº¹0€3.-ó0O.-/0 ý?þýþ@ý¾½¾½?ÁÂÁÂ@ÿð?@þ?@?ÕüÿïjijF®ijiCÿ<Ìó3ÿþýÿÿþýEFó<ÏÏEFDCÿÿþýþ­�‚�‚ �baba¢¡¢¡ ÿð ‚ U ©0À©«0¬«ªÿ𠩪©ª©ª©ªÿ𩪩ª©ªW?@?@?@?@?@?@é0À©k0lkjÿð ijijijijÿðijijijWùò`ÅÁù_ÆÂú5íÿýûÀ5›î6œý$#á0Ì[ÌÌÑqÒÐÒ`ÿðÑ»q_Ò¼_)PXL)%WK*y„ ‚ƒŸ�`¶”_µ“Ö0 LþuÌÌ CÍDFþ¹‰ÿðCíÍŠDî_@©“»å@j”¼æ?[€YZ& $% #ßÒ`ÿü Ñ»q_Ò¼]`ÌÀÒrÑW _ J T I �½ÿÿÀŽŽ�,µ3”¶4“)0þ¹‰ÿü CíÍŠDîŠþxÌÀDÎC_ÆL•»t¾Æö+PÎÙÅ„ð?m�ч% #& $à2ÿü¢å1¡æ ÜÍÿð>îÎ=_'š)‹'q.Š(7¤££¢+¶4“µ3”,Z±ÿü S§ø²T¨SVþðRýQWèéåÿ:šèeæØ<çø7ÿýûÀB%O~+$#ã0ØÍÿü>îÎ=81ÿð¡æ2¢å_+––l+k“k,A¢¸ ¡·Ÿ(`¶”_µ“+ TþüRýQU[²ÿðT¨÷±S§ ÌÌé«©©«©©ÿÏÿ«©©«©©«©©«© ÌÌë©©«©©«ÿÏÿ©©«©©«©©«©©] ÌÌÏ{{½À3333    30  ”@30»¼»¼»¼»¼»¼»¼¢0¡ÖxxxxxðÃ0À;€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿ•ffl0À3VVVVVVVVVVV›^€ªÊ Ó�ö’ ¢A?Àg?€¿­Ð.4682468.024*,.0&(*,"$&(                    meshmesh)\¾ffF¿)\>)\=ffF?TJT)\¾ffF¿)\>ffF?)\=åJÝ WÚÜJIÛÙÚÙÚÙIÛÙÿ3ÃóÚÜJIJÜÛÜÛÜÛÏ?3ÜÛIJIÛÜÛ33?3ÜÛÜJIJÜÛÜ30ÛÜÛWIG’‘HJIJIJ‘HJÿ3ÃóIG’‘’GHGHGHÏ?3GH‘’‘HGH33?3GHG’‘’GHG30HGHW\[\[Y¶[\µZ[ZðÛÿY\Y\[Z\µZü33Y¶[\[\µ¶ó03µ\[\[\[3ó0¶µ¶[\[W%&%&(M&%N'&'ðÛÿ(%(%&'%N'ü33(M&%&%NMó03N%&%&%&3ó0MNM&%&U B„ B™„™˜I™„™˜@U B„ B™„™˜I™„™˜@ B„ BU�H�U 0Ãþýþýþ Ì0Ãýþýþýþ Àý¾@À ?½¿ÀÀ?@U�H�U 0Ãþýþýþ Ì0Ãýþýþýþ À½?À ?¿ÀÀÀ@@PP ý þPP þý þØ#V„H*Ø2Ì*´$2ÌGr´Úƒö#$õ/Ù#ÑÀ/ˆ8ƒ @€Ì7878?87@?@ðÃÿ?@?@?@7@ü?8ª©ª©  ©ª Ÿ ŸðÃÿ Ÿ Ÿ Ÿª Ÿü  ©'('(Ls('tKJKðÛÿLILIJK'tKüLsÕ@GD3ƒ8t@4ð’$ÿÿÿÿÿ?>€¿YÐBH>D        meshmeshìQ¸½®Gὸ…½š™>�Âu=¸…=$$ìQ¸½¸…½®G὚™>¸…=�Âu=Ž ?ÿ3ÒÎÍÎËËÌËghÌÿÉÌÌËÌÍÉ?ÿ3Ò1214212ef1ÿ4134324ËÎÌËÌÍËefefοÿÍÎÍÌÎÍÎ4134324efef1¿ÿ2123121™€™™€™ ÌÀ@¹Žº£ÿÿ¡·¹,ޏº+ ÌÀÀKåLNþÿÿ±™KÍåšLÎ?ÿÀ@ØÈg_×Çh3ÌÌ6Ç`È?ÿÀÀ™MÉçšNÊœþÌÌfNèM?ÿÀ8_"á7`!“ÿÿ±¹ß÷ºà?ÿÀ±S©ö²TªSÿÿXPþO7ûÀÅévÆìÿÿÖ¿LvRÂMu?ÿÀRùQWÿÿS¬T®ø«S­3333…†…†…†…†33…†…†!!!!!!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ LJ&º.Ï©‚>@@?€¿)Ð           meshmeshœÄ ½�Âõ½ƒÀJ½?5^=ƒÀJ=$$œÄ ½ƒÀJ½�Âõ½?5^=ƒÀJ=¹± ?ÿ󹺹·º¹º¹�Žÿÿ�·¹¸·¸º·?ÿó-.ÿÿ-?ÿfÿ·¹¸·¸º·¹�Ž�ÿÿŽº¹º¸¹º¹?ÿfÿ-.-ÿÿ.™€™™€™ ÌÀ@?ø@›ÿÿ™Ç?·øÈ@¸ ÌÀÀQøR\þÿÿ£µQ¥ø¶R¦?ÿÀ@‹iŸõŒj OÌÌRjöi?ÿÀÀµQ¥ø¶R¦®þÌÌTR÷Q?ÿÀß®—Uà­˜ÄÿÿŸ#É@ $Ê??ÿÀ©U©ÿªVªUÌÌVVÿU?ÿÀ*¯Il)°Jbÿÿ¬òÏŽñÐ� ÌÀVÿUSÿÿUªVªÿ©U©3333ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÞÞÞÞÞÞÞÞÞÞÞ\ô\ôÒV£-È*™ª€;@H?€¿)Ð           meshmeshÍÌ̽ ×£¼p~¨½ÍÌÌ=š™™>p~¨=œ,œÍÌ̽p~¨½ ×£¼ÍÌÌ=p~¨=š™™> ,˜ ËfgefËÌehfeÌËB#ÿÏÌeÍËÌefÎK€&Ø%¦K3%×&¥LK€þ€ý€@~@?}?@~@ÿÿÏ?}?3Z²ôóZY±üᢡ¢¢¡¢Ÿ…<Ìó3†„ƒ½¾¼»½¾ÌÏ̼»¡¢¡¢ üÿÃÿBAB¾þABA»ó<Ìó3ôòñ‡ˆ†…‡ˆÌÏ̆…½¾½¾¼?@?@?@?@?@?@Â0À__Žv6s¡u5tžMéÔNêÓq˶–̵•mªÒÿ ©Ñ®7txn7;wm8u~ø€}÷„ø‚ƒ÷�(`¸–ÿ_·•Ø’¼Rÿ<²’²Qÿ;±‘]1ñ2ò2ºO¹P ŒñÒÿ€òѰ�(dl'cdýpþo�søt÷n±5–ÿ²6•'þWª^vŽþ=½Bý.B¶\äC H‘;mQ¾Ðí€òÑÿñÒ¯%ž�%wŽ&3¨Ÿ© ¢�¡ž'²6•ÿ±5–*SÛÞ+ˆS¤®ñ�TV^ñK?6êpÍáæ4¦�ªÒÿ ©Ñ¬)žœ„)u›ƒ*'š´ ™³Ÿ ¶œŸµ›"`¸–ÿ_·•) ÌÌÏ<@ ù<@ ù<@ ù<@ ÿ B€€H€€€€€€€0Àÿ 0@3f&€ÿÿʽxò”�˜Â>Àg?€¿¡Ð.4682468.024*,.0&(*,"$&(             meshmesh)\�½€¾‹Nx½)\�= ×£<‹Nx=TT)\�½‹Nx½€¾)\�=‹Nx= ×£< GÚÛ’ÜG‘Ü‘ÛH‘Bd�v ä €c ã #€þ€ý�ý��€‚þüÿÀJHGH‘KGHG”€@üÿÃíÜìÙÿ<ÌÏÀÿþýÿÿþýþÒÑÒÑÒÑÒÑÒÑÒÑ`_`_`_`_`_`_w•þ\­.wñý[®-x˜ÿÿð6îÿ5혚|y™{ Xÿð¬ŠW«‰9 ¢nƒRö ¾m„QõŸ¨_ÿð?d`@c*› †*r …)P§ÿð/Ѝ0‰Ø Nòè Õ úퟑxÿðÈ·_­†»)¤‡)yˆ*Q²ÿð4“±3”*ô‰Íäôõ.šÈéóMÿðª´0�½Š'¢žˆ'y�‡(`ÿð¸–_·•' ÌÌꬪª¬ªªÿÀ¬ªª¬ª ÌÌꪬªª¬ªÿÀª¬ªª¬ ÌÌÏ(*,***û(ÿð*,***ý0787878787878ðïðïðïðïðïðïÿ00CI€ÿÿ«–»ë§¯”?Às?€¿YÐ.4682468.024*,.0&(*,"$&($  meshmeshÍÌ̽\�¾p~¨½ÍÌÌ= ×£� €Ý“Rÿð¾Q½x�˜ty—sPÿð¦€O¥EäxObÿwPaíÐÿðEâÏFáK(—!"ˆ(p"!‡'N¡ÿð/ˆ¢0‡Ú‰• ¬^‰Ã‹ŠÕ;ÿðÎz`­½y'¢‰'yŠ(Q´ÿð4•³3–*ï1À òB« ÂvÿðÃ¥ º'¢žˆ'y�‡(`ÿð¶”_µ“) ÌÌꬪª¬ªªÿÀ¬ªª¬ª ÌÌꪬªª¬ªÿÀª¬ªª¬ ÌÌÏ(*,***û(ÿð*,***‚0fefefefefefeæåæåæåæåæåæåÿ00š€ÿÿ –œë¨¬”?À_?€¿YÐ.4682468.024*,.0&(*,"$&($  meshmesh¸¾)\¾5 ¾¸>ÍÌÌ=5 >T T¸¾5 ¾)\¾¸>5 >ÍÌÌ= ø N'&('NM(%'(MONžNM�Mì�MÅMëìN란öˆmõ‡lÚlkÙk¹ÙkMkº¹lºÚüÃ8787787:ª<ÌÏü©«¬ª©ª©«¬«þÞðýíðÿòþïÕ<ÌÏüÖÔÓÕÖÕÖÔÓÔ©ª©ª©ª©ª©ª©ªÖÕÖÕÖÕÖÕÖÕÖÕlAWå÷lWBXæøk¬+ÿðí, î‡)Ž,´‚)c+³ �*Pÿðþ|Oý{µ:żãüµ|Æ»äû¶¸&ÿðQg%Rh´ �(ˆ ‚'‡ ^Ñÿð3„Ò4ƒ¾éíÕY2Ÿéi×,„êysÿðú Hçµ–"}w!~=šÿð>™™=š ßí;%ûß$ÒäàÄ^ÿð�'‘Θ°|y¯{^ÿðÊ–]Ë“ÌÌÌÿ€€@<{ÿðÿ€€@< €€ª©ª©ª©ª©ª©ª©ÕÖÕÖÕÖÕÖÕÖÕÖÿ0xxxxxÐ03Ù €ÿÿí•Iñ˜£�€;Àg?€¿YÐ.4682468.024*,.0&(*,"$&($$meshmesh ×#¾ ×£¼�Âu¾ ×#>)\?�Âu>´:´ ×#¾�Âu¾ ×£¼ ×#>�Âu>)\?8:0 }ÏÏÏc„b ƒd �c„úùûúùüúùcdbcdacdƒ„‚�‚ƒ„�ƒ„?¾ðcÆcbcbÅ_@D\žC„_ CYŸDƒ`J¶´JI³µI @ ž@?�Ÿ?`$\ZÙÚ$#Y[ƒÿÿðàŸÁ@B�@ÝžÂúg‘«Yg‘ûh’¬Zh”¹ºº¹°¦¥¯±¥¦²’ÂÁ‘’‘“Á”ó?À©¥¯±²¨¦µj³”IjL´i´“JiI¥EF¦¤FE£�;<�Ž<;�K LKLJ Ió?ÀË<�Ž�Ê;�ž�ž�ž�ž�ž�ž�žü�žÑÔ@EFEFEFEFEFEFEFüEFøõ@d“¤~H/‘ðd0£}G0’ïcä“Ýâ””Þá“ôû ›ëÿÀüŸœì/D.N \V/-M [U0ulx®hkw­gFjÀfÿÀEi¿eìþº,ü d3Áºåû c4¹e�ÝyÞŽÞzÝ,þÄ ¾ÿÀýýP Q[D4 H\C3 o‡†xpˆ…w(�qPfÿÀŽrOe#þnR:LùsrÏn‡É úé=mr3Ù$.à3"$¥à6LÿÀ–ÏI7¡jt1] UUs2^TnŠ‹qm‰ŒrvxSkÿÀwuTl]G|9îî]‡¤lÐÝ^"ìÍÀó³õ¯fßÿÀÆ{1ütdŽ,` TM‹+] SnŠ–lm‰•kJv¦lÿÀIu¥kÌÌÌÿ€€@@@<ûÿ€€@@@<ûÿ€€ÿÀ@@@< €€à@åæåæåæåæåæåæåæüåæ$#       ü S«ÀVVVVVVüÀC@€ÿÿ ¼õú 6Ž€;À?€¿¹Ð>DFHBDFH>@BD:<>@68:<2468.024*,.0&$&("$&("$&("$&("$&("$&("$&("$&("( "$  "(meshmeshš™™½)\�¾�…½š™™=�Âõ<�…=HHš™™½�…½)\�¾š™™=�…=�Âõ<óë ‡ˆðˆ‡íïîÿÀ!îí"í€öˆoõ‡nÿÀÞnmÝmüÃïðïððïðí"<À!#$üÿÃÿðþíÝ<ÀÞÜÛÅÆÅÆÅÆÅÆÅÆÅÆèçèçèçèçèçèçq79ˆJwqª:‡Ixr~IÿÀåÇJæÈ-ž ¢Š-o¡‰.\ÿÀÈŽ[Ç�aû7.³Ýa¡8-´Þb;AÿÀÁ BÂ.§‚.z�-^ÃÿÀ1ŒÄ2‹¨B*Þà¨ó*9Íé§—BÿÀü©WüÈ)¤‡)yˆ*Q²ÿÀ4“±5–¸8-sá߸ë$tðØ·47ÿÀn¦H‹—'¢žˆ'y�‡(`ÿÀ¸–_·• ÌÌꬪª¬ªªÿÀ¬ªª¬ª ÌÌꪬªª¬ªÿÀª¬ªª¬ ÌÌÏ(*,***û(ÿÀ*,***¶µ¶µ¶µ¶µ¶µ¶µ©ª©ª©ª©ª©ª©ªÿ ¼¼¼¼¼ð‰€ÿÿ?—×맯”?À?€¿MÐ.4682468.024*,.0&(*,"$&(meshmeshÍÌ̽…ëѾp~¨½ÍÌÌ= ×#=p~¨=HHÍÌ̽p~¨½…ëѾÍÌÌ=p~¨= ×#=óë ËfgefËÌehfeÌhfÿÀÌfeËe €ø† s÷… &fÿÀÎfeÍe@ƒl<Àkmn ÀÃÿÿþý×<ÀØÖÕðïðïðïðïðïðïðïðïðïðïðïðï8‹ÊèKý8TÉçLþ7 àÿÀaßb+ž ¢Š+q¡‰,\ÿÀÊŒ[É‹�µ'[À�¹(\¿�—ÿÀò˜ñ4­€4z3dÉÿÀ/ˆÊ0‡ß³èÛò%ßy×Êß$àj¾ÿÀêÕË+¤‰+wŠ,U´ÿÀ4‘µ1’—ÝÆjÇ—ƒÍqÔ˜pËÿÀÁõܤû)¢žŠ)w�‰*`ÿÀ¶”_µ“ Ì骩«©©?Àª©«© Ì묫©©«?À¬«©© ÌÌÏTÿ¬TVRûTÿÀÿ¬TVR €€ðïðïðïðïðïðï‘’‘’‘’‘’‘’‘’ÿf€ÿÿí–çêgi•€;À_?€¿MÐ.4682468.024*,.0&(*,"$&(‰PNG  IHDR@¦çy)ÏIDATxœíV1à Ô�±Ïèúÿ©cÆŒ}BGo��º`;. U9)‹Åù|87ñßð¨HDoT�1Âõ¿ /1^by’»ß®lu¯Qà šÅɼÄ8 2Õë‹ XÒ«KÄ•æµFj¾Öø‘ð>ºáð{!~3¼r–üµ4Cq ¿±wxÁB¶Š�ÀgŠ#äÛñ%·�Vÿb!£áÓnñ%&¬áKuà;@"ÞjÎ�SÍ_̽4-<ä ¨îÕÓ„÷‚ÕÄÄ„;Œ à³F2�óIEND®B`‚‰PNG  IHDR€Åsóm –IDATxœí�-xêÊF‡>$2‰D"‘Hä–‘H$rK$YY‰DV"‘ÈHdäyÎÝûöP˜¤IÈäÍLÖr i Yý~f&ƒÃä—±GsS•QTaç,­zø$ý|ÞOVÆgÞÔ ï @ÌÐxNrý(³[�Œú2ÖœÙvDç�ë·ðR�ˆA€ˆA@HmhÞà¶ú ·?b b b žŽNIÉSSnçElú bài (�¯£Ë.�nk¾K Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä òÖŠð…ør1>CˆA€ˆŒÇUùqÏñw·jR<ß9=> Ƴåjfó™‹Ãž?ÏFÄp4šÜÿ<޾ýø‡[zµn¯JÞqnéÕôR�ÏRP1ÑÒ~|zt[H_!(éq-·÷§ûáÇ|N�SBKAé÷ÓÝåÿý#ÀsÇSMoÁ×€(§0t„k€yÚèèíÊ—‡‚0 J€qpºÓeþèz†Ùòü°1[ž T êÏJŠA€ˆ ­´L¶|uoÙVµÎ›zûš5kdn®ÆñKNÛyôùIAbHAU¼2˜ÝšY •ƒ1ƒ1ƒ1Ã8 á¾¾*D€ˆA€ˆA€ˆA€ˆA€ˆA€ˆA€ˆA€ˆA€ˆ ó’äí§{x]7¿üñ‰13È2'ë�|1«~øéÔáGº\ÎN÷¯  b†5Rô½ M’ƒu{¯�ox) öðDçA ƒ1^¦ „ %¦@SPÄPÄx) ¦@SPÄ 7™}í¿ß™ý¢ÚxœY·'ë…u{|8ŸÇÙ|o\B C ƒ1^¦ „¹ -1ãh j€˜al[7ôß07öí¹¼7ó�ú bú8 M+¯D•¦GÓÆnOˆA€ˆ¬öUÃqåç GfT~çÔØ¯+pJ,åäWìäI­AˆA€/§£ïyOJ}±FF}kÎl;VQÖ\R�ˆA€ˆA@@mhÞà¶Æ ·?b b b ~ŽVû²÷:¬¶Æ”Ûùc#˜1–CˆA€øYÊçëu”Ò>&÷’b b b b b b b b b è7D@W׊ð…ýÍx  b f0w«ÿ2]böîv=""@ŒgËÕÌæNž¾{þtûØì†ãñ·uƢȒ‘Ò4µn¯JÞqÒêK[)HŒg)¨˜h¹µnO�;ÓU‚�wÑr{º~¬AvtûðèÐRPúýtwù?ÀpÁhifYS¼_¢œÂЬæi££·+_ Â((ÆÁéŽ.¹¼šõèø80Ì–ç‡�Ùò\p� RPxVR Ä @Lh5 e²å«³xƒÉÄ2ß�7õö5kÖÈÜ\�ã—œ¶óèó“‚Ä�‚þ2W{\ÒíÖÌíD€ˆA€ˆA€ˆA€Æ ÷õU!Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @L˜—$ÓŸîáuýÝüòÇ'Ä @Ì Û¹]/h–T>þtêdI”?\.g§ûW…ƒ1Ã)úÞ†&‰ý‹çqìvex) öðDçA ƒ1^¦ „ %¦@SPÄPÄx) ¦@SPÄ ûųãîÛ¢Þ_ŒFöUE’õº=>œŒÏã€÷ÌáÅ j€R�ˆñ² M˜ Ò3€¦ ˆ.bûEùE\í@W“Óï»]~ß{ˆ1ƒ€ÐÇ5nOÓ£éno\#Ä ýfpXÙçýãyµÕÄ+gËêßJ>- ƫꟳK�‚Ä @Œ—ÓÑ÷$¥\­“Q_Æš3ÛŽ€hãúü†$b bRš7¸u»0†ßb b b ~Žf‹kÉ=£…)ù“óÉòlïà!Ä @ ü¬åóu´3é¶Þ›ô"@ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä  «kEøÂ~[ê‹Ú�…ƒ13�»õ0Ïãï_¦KÌÖ;§Ç'Äx¶\ÍlîäyçO·�Í.`h¢oÒxbù o׳u{UòŽs»Êþ~9¤ 1ž¥ b¢¥ýFøôè¶�¾BPÒã.ZnïO÷Ã�5È2ã”ÐRPúýtwù?ÀpÁÈñTÙ[ð5 Ê) !À`ž6:z»òå¡ Œ‚`œî(Êý:âõz‡5Ùòü°1[ž T êÏJŠA€ˆ ­´L¶|uk0ž.Ÿ·æM½}Íš527Wãø%§í<úü¤ 1¤ ¿Œ¢©©B–^Lb b b b4Ü×W…ƒ1ƒ1ƒ1ƒ1ƒ1ƒ1ƒ1ƒ1ƒ1a^’¼ýt¯ëïæ—?> bÓOÇ_�çUc:uróþ.—³Óý«BˆA€˜a�}oC“ä`ÝÇkã^ ˆ=<ÑyPÄ @Œ—)(¡h‰©ÐÔ1Ô1^ ˆ©ÐÔ1ÃÍÔþíÀíeaݙԺ=YÛ÷�'ãó8 Û¹}¾5@ )H Äx™‚æ‚´ÄŒ )¨b†ñ|l}!žW¼&{Ïy¡[Ï)ëD€ˆA@èã€4M«ÿÊÑô"@ Ä @Ì`2©¶j84Ë0Ù/¤øBš5Á§MHAb b b b b b b b b b b æí4æ¾ uà@Ÿ‚p ¯8Ða´]PÇúÀ�>á@_p /Â8h/—«¹ç­CnC ý8ú�ô#aè§"pà‚7³Ú990¸˜Œ#ܨ8p8Ч èkôE˜¦È£K’d7HD-2È}BÄÇ6÷—N�3À‹Ù¦äû�ÎûÚ¿Û³›ˆƒVx[$«ÜqàžÁ|úo>9Ź»|墯̳xz†Îÿ_ÊË'_™çy‡SþK=JAEqíÔ€\$¢Ö.Ê/’•=­vßš¢§.èžÓxº¸]ÊwA=§ô@Œ8hç¶”Ü ¨Hq4Èb±üïMOGï¶[î úÙA~ô#]P?±§ Fš"fŠ^ª8ÐaÓOGÓµ# ©™"Èc¸Ùo÷›¢Sù_S´ŸäОû¢Ç£òºÒÅkÓÑ!DÀfŸ?õÿ?(ÈÎSP}ƒ¦jôEøG¹uy+®ÀpùÌÕ±ûÿý•”º|öMMÕ¥a\»?é4EšÐŒŠÁ+EÝšŠ ) )ÒG@c™ÙºÚ)ˆ¦¨íq€•f¥G¦ÖàÀ÷ ŸEE˜¦¨[WÄhŠhŠô@S¤OA4Eú@AÖatëkª4E4Eú )Ò§ š"}   ë‹0ºõü𢿧£ËÐþý,æû¬u ·¥Ô†¦HŸ‚hŠô5€‚¬/Â8èÖS”hŠ$3E¾ÓpÐéSPûM‘×8©ídqU„qЭgI¶ÓùˆC4Eú )Ò§ š"}   ë‹0ºõDmš"�š"}ÐéSM‘¾P�õEblzIDATxœc`@?~tügÀÉ“˜¨i9`b`ÀˆÏÕåA46509bä©–†d €�ȨW2®Œ³£IEND®B`‚// psx_blob_shadow.wgsl: the era's shadow, a dark disc under a character or a // vehicle, on a PlaneMesh a few centimetres above the ground (a script // places it on the ground under its owner and tilts it to the ground's // normal). Multiplied over what is below it, in a few hard rings, its // vertices snapped like everything else. // // Notes for Hedra: a Decal does not paint unshaded surfaces, and every // psx_surface is unshaded, hence a mesh; `render_priority` 1 on the // material keeps it after the opaque ground it darkens. shader_type spatial; render_mode skip_vertex_transform, blend_mul, unshaded, depth_draw_never, cull_disabled, fog_disabled, shadows_disabled, specular_disabled; uniform shadow_color: vec3 : source_color = vec3(0.45, 0.48, 0.62); // 0 when the owner is on the ground, towards 1 as it rises (a script or a // binding writes it): the disc fades and shrinks. uniform lift: f32 : hint_range(0.0, 1.0, 0.01) = 0.0; uniform rings: f32 : hint_range(1.0, 8.0, 1.0) = 3.0; uniform snap_resolution: vec2 = vec2(320.0, 240.0); fn vertex() { let shrink = 1.0 - 0.5 * lift; var view_pos = MODELVIEW_MATRIX * vec4(VERTEX * shrink, 1.0); let clip = PROJECTION_MATRIX * view_pos; if (snap_resolution.x > 0.0 && clip.w > 0.0001) { let half_res = snap_resolution * 0.5; let snapped = round(clip.xy / clip.w * half_res) / half_res; let back = INV_PROJECTION_MATRIX * vec4(snapped * clip.w, clip.z, clip.w); view_pos = vec4(back.xyz / back.w, 1.0); } VERTEX = view_pos.xyz; NORMAL = normalize(MODELVIEW_NORMAL_MATRIX * NORMAL); } fn fragment() { let r = length(UV - vec2(0.5)) * 2.0; let ring = floor(clamp(1.0 - r, 0.0, 1.0) * rings + 0.999) / rings; let strength = ring * (1.0 - lift); ALBEDO = mix(vec3(1.0), shadow_color, strength); } // psx_sprite.wgsl: camera-facing sprites for CPUParticles3D (snow spray, // powder puffs, sparks, confetti), turned in the vertex stage, with a // flipbook and 1-bit alpha. The mesh is the emitter's QuadMesh (1 x 1); // the particle's scale is its transform's. // // Notes for Hedra (verified with hedra 0.1.0): // - A ShaderMaterial is not turned by billboard_mode (only a // StandardMaterial3D's is), so the quad is turned here: its corners are // laid out in view space around the particle's centre. // - There is no flipbook (anim_speed / hframes are not in the format) and // no particle age in a shader. The age rides in COLOR.a: give the // emitter a color_ramp whose alpha falls from 1 at birth to 0 at death; // the frame is chosen from it and the sprite's own alpha is the // texture's (cut at 0.5). shader_type spatial; render_mode skip_vertex_transform, unshaded, cull_disabled, specular_disabled, shadows_disabled; uniform sprite_sheet: texture_2d : source_color, filter_nearest, repeat_disable, hint_default_white; // Frames in the sheet, left to right then top to bottom. uniform frames_x: f32 = 4.0; uniform frames_y: f32 = 1.0; uniform tint: vec3 : source_color = vec3(1.0, 1.0, 1.0); uniform alpha_cut: f32 : hint_range(0.0, 1.0, 0.01) = 0.5; uniform snap_resolution: vec2 = vec2(320.0, 240.0); varying frame_uv: vec2; fn vertex() { let scale = length(MODEL_MATRIX[0].xyz); var view_pos = MODELVIEW_MATRIX * vec4(0.0, 0.0, 0.0, 1.0); view_pos = vec4(view_pos.xyz + vec3(VERTEX.xy * scale, 0.0), 1.0); let clip = PROJECTION_MATRIX * view_pos; if (snap_resolution.x > 0.0 && clip.w > 0.0001) { let half_res = snap_resolution * 0.5; let snapped = round(clip.xy / clip.w * half_res) / half_res; let back = INV_PROJECTION_MATRIX * vec4(snapped * clip.w, clip.z, clip.w); view_pos = vec4(back.xyz / back.w, 1.0); } VERTEX = view_pos.xyz; NORMAL = vec3(0.0, 0.0, 1.0); let count = max(frames_x * frames_y, 1.0); let frame = min(floor((1.0 - clamp(COLOR.a, 0.0, 1.0)) * count), count - 1.0); let cell = vec2(frame % frames_x, floor(frame / frames_x)); frame_uv = (cell + UV) / vec2(frames_x, frames_y); } fn fragment() { let texel = texture(sprite_sheet, frame_uv); ALBEDO = texel.rgb * tint * COLOR.rgb; ALPHA = texel.a; ALPHA_SCISSOR_THRESHOLD = alpha_cut; } // psx_surface.wgsl: the PlayStation surface, for every opaque mesh of a PSX // scene (terrain, props, buildings, the characters' parts). // // What it reproduces, each as a knob (psx-style SKILL.md, "The signature"): // - vertex snapping: every vertex lands on a grid of `snap_resolution` // screen pixels (the GTE had no sub-pixel precision), so the geometry // jitters as the camera moves; // - affine texture mapping: the UV is interpolated in screen space, not in // perspective, so textures swim on large polygons near the camera; // - nearest texels: no filtering, no mipmaps (import the texture with // compress/mode=lossless and mipmaps/generate=false); // - Gouraud shading: the light is worked out per vertex, from one sun, a // hemisphere ambient and an optional baked tint, and interpolated. // // Notes for Hedra (verified with hedra 0.1.0): // - `skip_vertex_transform`: VERTEX arrives in MODEL space and must be left // in VIEW space; NORMAL likewise. Snapping in view space (project, snap, // unproject) keeps the shadow, depth and SSR passes consistent, which // writing POSITION would not. // - The shader's world frame is Z up: a scene vector (x, y, z) is // (x, -z, y) here. `sun_direction` is given in the scene's Y-up frame and // turned by `scene_to_frame` below. // - There is no `noperspective` varying: the affine UV is carried as // (uv * w, w) and divided in fragment(), which undoes the perspective // correction the rasteriser applies; its 4th lane is the affine weight, // faded out near the camera (`affine_near`). // - `unshaded` takes no Decal: a blob shadow is a mesh (psx_blob_shadow). // The engine's depth fog still applies (fog_disabled is not set). shader_type spatial; render_mode skip_vertex_transform, unshaded, cull_back, specular_disabled, shadows_disabled; group_uniforms Texture; uniform albedo_texture: texture_2d : source_color, filter_nearest, repeat_enable, hint_default_white; uniform albedo: vec4 : source_color = vec4(1.0, 1.0, 1.0, 1.0); uniform uv_scale: vec2 = vec2(1.0, 1.0); uniform uv_offset: vec2 = vec2(0.0, 0.0); // UV scroll in UV units a second (conveyor belts, flags, water). uniform uv_scroll: vec2 = vec2(0.0, 0.0); group_uniforms Geometry; // The grid vertices snap to, in screen pixels: the internal resolution for // the authentic jitter, half of it for an exaggerated one, 0 to switch off. uniform snap_resolution: vec2 = vec2(320.0, 240.0); // 1 is the PlayStation's screen-linear UV, 0 perspective-correct. Keep 1 // and subdivide large polygons near the camera instead (references/models.md). uniform affine_strength: f32 : hint_range(0.0, 1.0, 0.05) = 1.0; // Vertices nearer the camera than this (metres) fade to perspective-correct // UVs: a triangle crossing the camera's plane has no meaningful affine UV // (the PlayStation culled or subdivided those). uniform affine_near: f32 : hint_range(0.0, 10.0, 0.1) = 1.0; group_uniforms Light; // Towards the sun, in the scene's Y-up frame (normalised here). uniform sun_direction: vec3 = vec3(0.4, 0.6, 0.5); uniform sun_color: vec3 : source_color = vec3(1.0, 0.86, 0.66); // Hemisphere ambient: the sky's colour on faces turned up, the ground's // bounce on faces turned down (on snow the bounce is bright). uniform sky_ambient: vec3 : source_color = vec3(0.42, 0.50, 0.66); uniform ground_ambient: vec3 : source_color = vec3(0.30, 0.30, 0.34); // 0: smooth Gouraud. 2 to 8: the light in that many flat bands. uniform light_bands: f32 : hint_range(0.0, 8.0, 1.0) = 0.0; // Light added regardless of the sun (lit windows, neon, signs). uniform emission: vec3 : source_color = vec3(0.0, 0.0, 0.0); // 1 lets the colour pass 1.0, as the PlayStation's 2x colour modulation did // (a texel at 128 was "white"): bright highlights for the glow to catch. uniform overbright: f32 : hint_range(1.0, 2.0, 0.05) = 1.0; group_uniforms Transparency; // The era's translucency for a solid object (a ghost, a respawn blink): a // screen-door pattern of whole low-resolution pixels left out. 0 draws // everything, 0.25, 0.5 and 0.75 leave out that share of a 2 x 2 pattern, // 1 draws nothing. The object stays opaque (no blending, no sorting). uniform screen_door: f32 : hint_range(0.0, 1.0, 0.25) = 0.0; varying affine_uv: vec4; varying gouraud: vec3; fn scene_to_frame(v: vec3) -> vec3 { return vec3(v.x, -v.z, v.y); } fn snap_view(view_pos: vec4) -> vec4 { if (snap_resolution.x <= 0.0) { return view_pos; } let clip = PROJECTION_MATRIX * view_pos; if (clip.w <= 0.0001) { return view_pos; } let half_res = snap_resolution * 0.5; let ndc = clip.xy / clip.w; let snapped = round(ndc * half_res) / half_res; let back = INV_PROJECTION_MATRIX * vec4(snapped * clip.w, clip.z, clip.w); return vec4(back.xyz / back.w, 1.0); } fn vertex() { // Gouraud, in the shader's world frame, from the model's normal. let n = normalize(MODEL_NORMAL_MATRIX * NORMAL); let sun = normalize(scene_to_frame(sun_direction)); var diffuse = max(dot(n, sun), 0.0); if (light_bands >= 2.0) { diffuse = floor(diffuse * light_bands + 0.5) / light_bands; } let ambient = mix(ground_ambient, sky_ambient, n.z * 0.5 + 0.5); gouraud = (ambient + sun_color * diffuse) * COLOR.rgb * overbright + emission; // Snap in view space, then hand the view-space position back. let view_pos = snap_view(MODELVIEW_MATRIX * vec4(VERTEX, 1.0)); VERTEX = view_pos.xyz; NORMAL = normalize(MODELVIEW_NORMAL_MATRIX * NORMAL); let uv = UV * uv_scale + uv_offset + uv_scroll * TIME; UV = uv; let w = (PROJECTION_MATRIX * view_pos).w; let weight = affine_strength * clamp((w - 0.25) / max(affine_near, 0.001), 0.0, 1.0); affine_uv = vec4(uv * w, w, weight); } fn fragment() { if (screen_door > 0.0) { // A 2 x 2 Bayer order: the cells are left out in the order 0 to 3. var order = array(0.0, 2.0, 3.0, 1.0); let cell = vec2(FRAGCOORD.xy) % vec2(2u, 2u); if (order[cell.y * 2u + cell.x] < screen_door * 4.0 - 0.001) { discard; } } let affine = affine_uv.xy / max(affine_uv.z, 0.0001); let uv = mix(UV, affine, clamp(affine_uv.w, 0.0, 1.0)); let texel = texture(albedo_texture, uv); ALBEDO = texel.rgb * albedo.rgb * gouraud; } ‰Ë!hedra:build/hedra/world/run.rscnbjÔ�ý^RSCNB  �¾jU?STRS°ï2VALS 3eEXTR5dSUBRp5tNODEè5ô ITEMà?@BIND FìCONNOEMBDOORDR OäSRCSQVASST`Q0mV                                             1_presentShaderres://psx/psx_present.wgsl3_runScriptres://scripts/run.as4_soundres://scripts/sound.as5_camerares://scripts/camera.as6_coursePackedSceneres://course/course.rscn7_riderres://rider/rider.rscnRunNode3DFrameEnvironmentWorldEnvironmentScreenCamera3DPresentMeshInstance3DAnchorLowResSubViewportCourseRiderRiderAnchorLensSoundNodePinsInPhaseScoreComboSumComboMultComboActiveTrickSpinTrickDirTrickFlipTrickGrab1TrickGrab2TrickSwitchTrickGrindTrickLiveTrickPointsTrickSeqBankSeqPerfectSeqCrashSeqBailSeqPraiseTimeCountdownProgressSectionSpeedKmhBalanceGrindingLineHighResTricksResGrindsResComboBonusResLandingsResTimeBonusResTotalResBestComboResLongestAirResPerfectsResCrashesResStepResGradeResRankInitialsCodeInitialsCursorHs1ScoreHs2ScoreHs3ScoreHs4ScoreHs5ScoreHs6ScoreHs7ScoreHs8ScoreHs9ScoreHs10ScoreHs1TagHs2TagHs3TagHs4TagHs5TagHs6TagHs7TagHs8TagHs9TagHs10TagCaptionLineCaptionSeqBeatDeviceGhostDeltaOllieChargeStartSeqRestartSeqQuitSeqPausedSchemeMusicVolumeSfxVolumeVoiceVolumeMuteReducedMotionLandingAssistGrindAssistGhostPadXPadYPadButtonsUiMoveSeqUiSelectSeqUiBackSeqInitialsInInitialsDoneSeqDemoAutopilotSeedVM_gameViewModelEnv_frameEnvironmentTex_lowViewportTextureMat_presentShaderMaterialMesh_presentQuadMeshMat_anchorStandardMaterial3DMesh_anchorview_modelGameDatabackground_modebackground_colortonemap_modeviewport_pathshadershader_parameter/screenshader_parameter/low_resmaterialshading_modealbedo_texturesizescriptenvironmentcurrentmeshpositionrender_target_update_modeown_world_3dscreen_position:xriderXto_sourcescreen_position:yriderYrotation_degreesfovnearfarvisibleposition:xphasescorecomboSumcomboMultcomboActivetrickSpintrickDirtrickFliptrickGrab1trickGrab2trickSwitchtrickGrindtrickLivetrickPointstrickSeqbankSeqperfectSeqcrashSeqbailSeqpraisetimecountdownprogresssectionspeedKmhbalancegrindinglineHighresTricksresGrindsresComboBonusresLandingsresTimeBonusresTotalresBestComboresLongestAirresPerfectsresCrashesresStepresGraderesRankinitialsCodeinitialsCursorhs1Scorehs2Scorehs3Scorehs4Scorehs5Scorehs6Scorehs7Scorehs8Scorehs9Scorehs10Scorehs1Taghs2Taghs3Taghs4Taghs5Taghs6Taghs7Taghs8Taghs9Taghs10TagcaptionLinecaptionSeqbeatdeviceghostDeltaollieChargestartSeqrestartSeqquitSeqpausedschememusicVolumesfxVolumevoiceVolumemutereducedMotionlandingAssistgrindAssistghostpadXpadYpadButtonsuiMoveSequiSelectSequiBackSeqinitialsIninitialsDoneSeqdemoautopilotseedcourse/course.rscnrider/rider.rscncourse/dressing.rmdlcmdcourse/terrain.rmdlcmdrider/parts/Beanie.gltfrider/parts/Board.gltfrider/parts/BootL.gltfrider/parts/BootR.gltfrider/parts/HandL.gltfrider/parts/HandR.gltfrider/parts/Head.gltfrider/parts/LowerArmL.gltfrider/parts/LowerArmR.gltfrider/parts/LowerLegL.gltfrider/parts/LowerLegR.gltfrider/parts/Pelvis.gltfrider/parts/Torso.gltfrider/parts/UpperArmL.gltfrider/parts/UpperArmR.gltfrider/parts/UpperLegL.gltfrider/parts/UpperLegR.gltfcourse/dressing.rmdlcmd#0course/dressing.rmdlcmd#1course/dressing.rmdlcmd#10course/dressing.rmdlcmd#11course/dressing.rmdlcmd#12course/dressing.rmdlcmd#13course/dressing.rmdlcmd#14course/dressing.rmdlcmd#15course/dressing.rmdlcmd#16course/dressing.rmdlcmd#17course/dressing.rmdlcmd#18course/dressing.rmdlcmd#19course/dressing.rmdlcmd#2course/dressing.rmdlcmd#20course/dressing.rmdlcmd#21course/dressing.rmdlcmd#22course/dressing.rmdlcmd#23course/dressing.rmdlcmd#24course/dressing.rmdlcmd#25course/dressing.rmdlcmd#26course/dressing.rmdlcmd#27course/dressing.rmdlcmd#28course/dressing.rmdlcmd#29course/dressing.rmdlcmd#3course/dressing.rmdlcmd#30course/dressing.rmdlcmd#31course/dressing.rmdlcmd#32course/dressing.rmdlcmd#33course/dressing.rmdlcmd#34course/dressing.rmdlcmd#35course/dressing.rmdlcmd#36course/dressing.rmdlcmd#37course/dressing.rmdlcmd#38course/dressing.rmdlcmd#39course/dressing.rmdlcmd#4course/dressing.rmdlcmd#40course/dressing.rmdlcmd#41course/dressing.rmdlcmd#42course/dressing.rmdlcmd#43course/dressing.rmdlcmd#44course/dressing.rmdlcmd#45course/dressing.rmdlcmd#46course/dressing.rmdlcmd#47course/dressing.rmdlcmd#48course/dressing.rmdlcmd#49course/dressing.rmdlcmd#5course/dressing.rmdlcmd#50course/dressing.rmdlcmd#51course/dressing.rmdlcmd#52course/dressing.rmdlcmd#53course/dressing.rmdlcmd#54course/dressing.rmdlcmd#55course/dressing.rmdlcmd#56course/dressing.rmdlcmd#57course/dressing.rmdlcmd#58course/dressing.rmdlcmd#6course/dressing.rmdlcmd#7course/dressing.rmdlcmd#8course/dressing.rmdlcmd#9course/terrain.rmdlcmd#0course/terrain.rmdlcmd#1course/terrain.rmdlcmd#10course/terrain.rmdlcmd#100course/terrain.rmdlcmd#101course/terrain.rmdlcmd#102course/terrain.rmdlcmd#103course/terrain.rmdlcmd#104course/terrain.rmdlcmd#105course/terrain.rmdlcmd#106course/terrain.rmdlcmd#107course/terrain.rmdlcmd#108course/terrain.rmdlcmd#109course/terrain.rmdlcmd#11course/terrain.rmdlcmd#110course/terrain.rmdlcmd#111course/terrain.rmdlcmd#112course/terrain.rmdlcmd#113course/terrain.rmdlcmd#114course/terrain.rmdlcmd#115course/terrain.rmdlcmd#116course/terrain.rmdlcmd#117course/terrain.rmdlcmd#118course/terrain.rmdlcmd#119course/terrain.rmdlcmd#12course/terrain.rmdlcmd#120course/terrain.rmdlcmd#121course/terrain.rmdlcmd#122course/terrain.rmdlcmd#123course/terrain.rmdlcmd#124course/terrain.rmdlcmd#125course/terrain.rmdlcmd#126course/terrain.rmdlcmd#127course/terrain.rmdlcmd#128course/terrain.rmdlcmd#129course/terrain.rmdlcmd#13course/terrain.rmdlcmd#130course/terrain.rmdlcmd#131course/terrain.rmdlcmd#132course/terrain.rmdlcmd#133course/terrain.rmdlcmd#134course/terrain.rmdlcmd#135course/terrain.rmdlcmd#136course/terrain.rmdlcmd#137course/terrain.rmdlcmd#138course/terrain.rmdlcmd#139course/terrain.rmdlcmd#14course/terrain.rmdlcmd#140course/terrain.rmdlcmd#141course/terrain.rmdlcmd#142course/terrain.rmdlcmd#143course/terrain.rmdlcmd#144course/terrain.rmdlcmd#145course/terrain.rmdlcmd#146course/terrain.rmdlcmd#147course/terrain.rmdlcmd#148course/terrain.rmdlcmd#149course/terrain.rmdlcmd#15course/terrain.rmdlcmd#150course/terrain.rmdlcmd#151course/terrain.rmdlcmd#152course/terrain.rmdlcmd#153course/terrain.rmdlcmd#154course/terrain.rmdlcmd#155course/terrain.rmdlcmd#156course/terrain.rmdlcmd#157course/terrain.rmdlcmd#158course/terrain.rmdlcmd#159course/terrain.rmdlcmd#16course/terrain.rmdlcmd#160course/terrain.rmdlcmd#161course/terrain.rmdlcmd#162course/terrain.rmdlcmd#163course/terrain.rmdlcmd#164course/terrain.rmdlcmd#165course/terrain.rmdlcmd#166course/terrain.rmdlcmd#167course/terrain.rmdlcmd#168course/terrain.rmdlcmd#169course/terrain.rmdlcmd#17course/terrain.rmdlcmd#170course/terrain.rmdlcmd#171course/terrain.rmdlcmd#172course/terrain.rmdlcmd#173course/terrain.rmdlcmd#174course/terrain.rmdlcmd#175course/terrain.rmdlcmd#176course/terrain.rmdlcmd#177course/terrain.rmdlcmd#178course/terrain.rmdlcmd#179course/terrain.rmdlcmd#18course/terrain.rmdlcmd#180course/terrain.rmdlcmd#181course/terrain.rmdlcmd#182course/terrain.rmdlcmd#183course/terrain.rmdlcmd#184course/terrain.rmdlcmd#185course/terrain.rmdlcmd#186course/terrain.rmdlcmd#187course/terrain.rmdlcmd#188course/terrain.rmdlcmd#189course/terrain.rmdlcmd#19course/terrain.rmdlcmd#190course/terrain.rmdlcmd#191course/terrain.rmdlcmd#192course/terrain.rmdlcmd#193course/terrain.rmdlcmd#194course/terrain.rmdlcmd#195course/terrain.rmdlcmd#196course/terrain.rmdlcmd#197course/terrain.rmdlcmd#198course/terrain.rmdlcmd#2course/terrain.rmdlcmd#20course/terrain.rmdlcmd#21course/terrain.rmdlcmd#22course/terrain.rmdlcmd#23course/terrain.rmdlcmd#24course/terrain.rmdlcmd#25course/terrain.rmdlcmd#26course/terrain.rmdlcmd#27course/terrain.rmdlcmd#28course/terrain.rmdlcmd#29course/terrain.rmdlcmd#3course/terrain.rmdlcmd#30course/terrain.rmdlcmd#31course/terrain.rmdlcmd#32course/terrain.rmdlcmd#33course/terrain.rmdlcmd#34course/terrain.rmdlcmd#35course/terrain.rmdlcmd#36course/terrain.rmdlcmd#37course/terrain.rmdlcmd#38course/terrain.rmdlcmd#39course/terrain.rmdlcmd#4course/terrain.rmdlcmd#40course/terrain.rmdlcmd#41course/terrain.rmdlcmd#42course/terrain.rmdlcmd#43course/terrain.rmdlcmd#44course/terrain.rmdlcmd#45course/terrain.rmdlcmd#46course/terrain.rmdlcmd#47course/terrain.rmdlcmd#48course/terrain.rmdlcmd#49course/terrain.rmdlcmd#5course/terrain.rmdlcmd#50course/terrain.rmdlcmd#51course/terrain.rmdlcmd#52course/terrain.rmdlcmd#53course/terrain.rmdlcmd#54course/terrain.rmdlcmd#55course/terrain.rmdlcmd#56course/terrain.rmdlcmd#57course/terrain.rmdlcmd#58course/terrain.rmdlcmd#59course/terrain.rmdlcmd#6course/terrain.rmdlcmd#60course/terrain.rmdlcmd#61course/terrain.rmdlcmd#62course/terrain.rmdlcmd#63course/terrain.rmdlcmd#64course/terrain.rmdlcmd#65course/terrain.rmdlcmd#66course/terrain.rmdlcmd#67course/terrain.rmdlcmd#68course/terrain.rmdlcmd#69course/terrain.rmdlcmd#7course/terrain.rmdlcmd#70course/terrain.rmdlcmd#71course/terrain.rmdlcmd#72course/terrain.rmdlcmd#73course/terrain.rmdlcmd#74course/terrain.rmdlcmd#75course/terrain.rmdlcmd#76course/terrain.rmdlcmd#77course/terrain.rmdlcmd#78course/terrain.rmdlcmd#79course/terrain.rmdlcmd#8course/terrain.rmdlcmd#80course/terrain.rmdlcmd#81course/terrain.rmdlcmd#82course/terrain.rmdlcmd#83course/terrain.rmdlcmd#84course/terrain.rmdlcmd#85course/terrain.rmdlcmd#86course/terrain.rmdlcmd#87course/terrain.rmdlcmd#88course/terrain.rmdlcmd#89course/terrain.rmdlcmd#9course/terrain.rmdlcmd#90course/terrain.rmdlcmd#91course/terrain.rmdlcmd#92course/terrain.rmdlcmd#93course/terrain.rmdlcmd#94course/terrain.rmdlcmd#95course/terrain.rmdlcmd#96course/terrain.rmdlcmd#97course/terrain.rmdlcmd#98course/terrain.rmdlcmd#99rider/parts/Beanie.gltf#0rider/parts/Board.gltf#0rider/parts/BootL.gltf#0rider/parts/BootR.gltf#0rider/parts/HandL.gltf#0rider/parts/HandR.gltf#0rider/parts/Head.gltf#0rider/parts/LowerArmL.gltf#0rider/parts/LowerArmR.gltf#0rider/parts/LowerLegL.gltf#0rider/parts/LowerLegR.gltf#0rider/parts/Pelvis.gltf#0rider/parts/Torso.gltf#0rider/parts/UpperArmL.gltf#0rider/parts/UpperArmR.gltf#0rider/parts/UpperLegL.gltf#0rider/parts/UpperLegR.gltf#0rider/textures/puff.pngrider/textures/rider_page.pngrider/textures/star.pngtextures/arches.pngtextures/banners.pngtextures/bark.pngtextures/box.pngtextures/building.pngtextures/chrome_matcap.pngtextures/crowd.pngtextures/fence.pngtextures/fx_confetti.pngtextures/fx_flake.pngtextures/fx_flare.pngtextures/ice.pngtextures/lift.pngtextures/mountains.pngtextures/pine_a.pngtextures/pine_b.pngtextures/pine_cone.pngtextures/rock.pngtextures/snow_groomed.pngtextures/snow_packed.pngtextures/snow_powder.pngscripts/camera.asscripts/daylight.asscripts/fx_course.asscripts/run.asscripts/sound.as391a35106a61bffbpsx/psx_blob_shadow.wgslpsx/psx_chrome.wgslpsx/psx_cutout.wgslpsx/psx_present.wgslpsx/psx_sky.wgslpsx/psx_sprite.wgslpsx/psx_surface.wgsl] Ž ð?„t@n@†ü©ñÒMbP?ü©ñÒMbP?Š€‚ˆ 𿌠Àt@n@ @@ (ÀBš™™™™™¹?Èÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ€�‚ƒ„…†‡ˆ‰Š‹ Œ‰ jÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ!!ÿÿÿÿ" "ÿÿÿÿ# #ÿÿÿÿ# $ÿÿÿÿ$ %ÿÿÿÿ% &ÿÿÿÿ& 'ÿÿÿÿ' (ÿÿÿÿ) )ÿÿÿÿ* *ÿÿÿÿ+ +ÿÿÿÿ, ,ÿÿÿÿ- -ÿÿÿÿ. .ÿÿÿÿ0 /ÿÿÿÿ1 0ÿÿÿÿ3 1ÿÿÿÿ4 2ÿÿÿÿ5 3ÿÿÿÿ6 4ÿÿÿÿ7 5ÿÿÿÿ8 6ÿÿÿÿ9 7ÿÿÿÿ: 8ÿÿÿÿ; 9ÿÿÿÿ< :ÿÿÿÿ= ;ÿÿÿÿ> <ÿÿÿÿ? =ÿÿÿÿ@ >ÿÿÿÿB ?ÿÿÿÿD @ÿÿÿÿE AÿÿÿÿF BÿÿÿÿG CÿÿÿÿH DÿÿÿÿI EÿÿÿÿJ FÿÿÿÿK GÿÿÿÿL HÿÿÿÿM IÿÿÿÿN JÿÿÿÿO KÿÿÿÿP LÿÿÿÿQ MÿÿÿÿR NÿÿÿÿS OÿÿÿÿT PÿÿÿÿU QÿÿÿÿV RÿÿÿÿW SÿÿÿÿX TÿÿÿÿY UÿÿÿÿZ Vÿÿÿÿ[ Wÿÿÿÿ\ Xÿÿÿÿ] Yÿÿÿÿ^ Zÿÿÿÿ_ [ÿÿÿÿ` \ÿÿÿÿa ]ÿÿÿÿb ^ÿÿÿÿc _ÿÿÿÿd `ÿÿÿÿe aÿÿÿÿf bÿÿÿÿg cÿÿÿÿh dÿÿÿÿi eÿÿÿÿj fÿÿÿÿk gÿÿÿÿl hÿÿÿÿm iÿÿÿÿn jÿÿÿÿo kÿÿÿÿp lÿÿÿÿq mÿÿÿÿr nÿÿÿÿs oÿÿÿÿt pÿÿÿÿu qÿÿÿÿv rÿÿÿÿw sÿÿÿÿx tÿÿÿÿy uÿÿÿÿz vÿÿÿÿ{ wÿÿÿÿ| xÿÿÿÿ} yÿÿÿÿ~ zÿÿÿÿ {ÿÿÿÿ€ |ÿÿÿÿ� }ÿÿÿÿ‚ ~ÿÿÿÿƒ ÿÿÿÿ„…���‘’“”• – —˜™ – š �›œ�ž�ž™Ÿ šž¦§¨©œšªª   ª  ªªª !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_¡¢£¤¥£«¬£«­£«®£«¯£ª°£«±£«²£«³£«´£«µ£ª¶£«·£ª¸£«¹£«º£«»£«¼£«½£«¾£«¿£«À£«Á£«Â£«Ã£«Ä£«Å£ªÆ£ªÇ£«È£«É£«Ê£«Ë£«Ì£«Í£«Î£«Ï£«Ð£«Ñ£«Ò£«Ó£«Ô£«Õ£«Ö£«×£«Ø£«Ù£«Ú£«Û£«Ü£«Ý£«Þ£«ß£«à£«á£«â£«ã£«ä£«å£«æ£«ç£«è£«é£«ê£«ë£«ì£«í£«î£«ï£«ð£«ñ«ò«óªô«õ«ö«÷«øªùªúªûªüªý«þ«ÿ««««««ª««ÿÿÿÿw      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiŒlwÀÆAÉ�õÊÁ6îý$Sô%{€£nÿcjÐÁ»Žñ82–íÃ×w0N—`ÞºD y»†d£€Y*¶Çworld/run.rscnN0{ŽË3q À{X?YýsÀ  »Ý–^ó 0ÚÂ]´WR— 8 ¥¸>vp ÝÚP'5eðàÙa¢ÐäÙþEÅC°èÙ#_k�ìÙð­¡üpðÙ-· PôØ(¼ò·0øÝg¨}Hüݺ²ÓðÿÝðÛf ÐÝ-ÁÈQ°Ú …7Â� Ùäv(³pÝôKïÛPÝ)QA‡0Ýc8ôžÝ¾"ZÂð! àAÞ\ ,IYcòf p-Ý+Ü3!�4Õ %ä"p>%–è³?# CµŒÔô$`G� ޽7%R�ËKŠ£&�T­ �„'@Xµäè.z(v-ûÄѨ)0}í̈�>* �'‘—"+P¡ÁgÇû, ªa ?<5-�·ið.9Ç.ÈI”]6#/PÉÕµÁ00Ûi0+�·1 ð0úésï2À YÐ/î3 #Y À<%4€0M ¨ž5Ð1½ò¬T6�:Q o^Ã7ðFßUG ßã8М °p9à¡I¡B Í:0£…ýœÞ;À«I Û<®õø7Ψ=´‰Î5 Á> È)�é»ò?ÐU�kèQì@`få àvB8APqQF¿`šB°sÙŠy:ÁC�v}_ÚÆD{·.ë ‡7EЩ šãË~Fà¬=¯BЉG Ä)ŽUHHPÅa¨ó²FIÀÍ� >“gàJPØ… vŽ�KàÝ…!~gwLpá )yÖ:M€ãy Pü‡NæáÚ]ÈOð꭯şéP ð™¿‡_0Q@öé*à\I^R0! é*ex±çS L …7Ó(T°a ‰íìcU@w ÷µñëV@† © à.Wð� 'áæŸ)X “ ‰Á½Q}Y°” néÎZÀž =@C[ж mà]èw\@Î §ü9ÀÍ]ðæ g.»j‘D^` Ù¥Íï4_@ -&ï®Ñ`pA `¤ˆ+ÚaÐO -Òob†bà| – «Ò7Jc€† âÉ$”dp¦ G�åÌeÀ· n)_Tf0á ‡#ªÜCgÀã Ô ™U—Ÿh í dàES¡i …)‘^)ôj 0 F2±:å�kðb Æ�¥ÓlÀk ‹»{UŒmP‚ …),ЉÌnà« X0ß‚&o@Ü ] �&Qp å ±×qjq°þ »)hsrp ™ °Ïüs? ïÒ�6t\ £?m7–u°` «K3·év`s >/†Yw Š $±ý·ØxЧ ‘\�#yp­ ɲ.™Iz@ 90-œ{€Õ *¡Ì|�Ø ìK7–Ê}€ò Š„ku~  ¡™ÖéèP B'B¶€  ›”Fv�@ â7žg‚0. „fŒ1xƒÀ1 R["@í„ � ugã¶X… œ c²Lú†² d4¤Ñ°U‡€æ ñ†Éˆ€é ã%=Û¸Z‰p�—óŠ+•%y·‹ > !`xŒ°AYåÅv�]�tæŠ*Ž péŸ{<ö��sÍžA¿�`‹ÑrŽC‘@ž�-üŽ’Р "A¿,“ðÀùŸ ñ”ðØÍVK:•Àë­Ĩ$ –pî½ RM.“—0ûú ÷›š˜0“¸6#u™ÐÔ±× šà �Ý+¡‰›€QưCiœà=1è©� "/ç^ðlžP6ýŽS6AŸP=A¥�[¢  CMtlí¡ðI•öžhî¢�QÝ!D¸£pXú9…Y¤€_9amØ¥ÀeÕ:”îG¦ l=w%ë…§àr=Ñàa ¨ yñÊiþ© |1‡&z(ª`‚e‡„¯c«Јé]îY¼¬À�]^¶Ÿ°­ —-‰àŸ ®P�)Ü~•]¯€£):0Zù°°©9`Õ±ð¯ñæ,4ˆ²ð¶-Æ„f8³ ½!lï®´ Þ!\൱µPä9$šÜǶ�êåÉÚ#;·€òÅ’WÙe¸PúÝÁ¯sj¹09”:tJºpÁ¸¬^Þ»@>‘r�^¼€¹Èð¶n½@aàÖÄ{¾°%»—Ñ©¿p:m>I/�Àà@a/§?ÁPGmËš=äÂÀM…ìäYÃPTuPº gÄÐZUתk¹Å0aY:n Æ�gEÛ·žÇàm½cŸäšÈ r}¯%ÑÄÉ u 9è9ÔÊ0x+!;w¨ñË`™ÒƒSUÌ@³º_BãÍP¶sÄÃø#ÎÐÓÁÓÏàÙ¥^3áÊÐ�òY�3žÑ°õ–¬ù•NÒPO ŒH× Ó "Ä¿ÑãÔÐ)€+ÛíÕPB§iÁ"}ÖEÕù1ΰ×àaü ‘ïRØànZ�Ü�óÙ@…©U˜ÚPˆÔAîâÛ0¦¢öÆ‚žÜàµË˜ÍS¿Ý°ÏŸ�ìWŠÞPÒFF\E¼ß íøÎ)àPà 0rTð<áкØï¼’â�08¤†ã°3"eÜÝþäàR2 Õ«ÆNå `ÛB=ebævýHV€çyS‘Ñgè`�‘@/”ê騫ú¾ûê°ªµ¡y­ëpÀõ+ihìpÃúVœ¬í�âi‹þ îó£Š ‘vï° Hö~qð ¬}jªñ )øÒŒ3ò 99�b€ó`Pj¬´°YôÐU¢È“ÊÈõ€táI_@ö�ˆKN°žŸ÷à¢�¯gTéøp¿õêuÞù�˜H6ú0àiT:Ö&û ÷—–½i"ü@�rZøxýÐô%+Ø&<þÐ7ʹ†Ñ±ÿ :Ô”;’™€N#¡â°dùSÕ¥°gå%7 ¿r �²Ç‘Wî`©%ç訷�¬&+{veÀ×Ê5Ç}�òdX`ý ó@�–ý! àEø J 0ጂáV  L&ûÕ§ p? \ݨ  €JÃãB K…òØæ0i¬^/(pàlÍ%2Uz°’ùŽÃ{3°¨ <%b/À«?$ª‘OIÐ�}ÃÙF�ç† *0‹` %wÕûœP Ù㩽0)D zX*}€2òÕÝ>Š€Kî«E_pPá$LóHM`uܹ­›k@„õ¾ÐÜ@¤Ð˜4�+¨¦#.š¹Ù ÀËÉ”�­!�ÑÑí¹Ø|"pÕ�LJå#pÕ�LJå$Øu‡–‹b%Øu‡–‹b&€ÚÑükû¦'`Þõ¢4·(`Þõ¢4·)párJÐÖ*párJÐÖ+€äé¦ý½,pç�œðZ-ìÑd•.ìÑd•/àîÑÝŸÃ.0àîÑÝŸÃ.1Àñ Èëļ2ÐòÓ ìIy÷3°þ{ÛÀ‚40ÿÖ ¿©Á5 |lÕn6�D²êrN7àÜ!hZÖ8À [Ëxšã9 (F-Kà :p*³3†J;0,áPÕ¶È< -]3¯Lq=€-hQE>ð-ó5`?ð.–9Iïz@�2ý7™ñAA�5à‰Ç�5Bp8 pi(C<}Î ðD�@?†Ñú„EÐE%ðd%qFJÛJÔä'GàKÅ5~§UH°N€¬à’ I0RùdP JPR;Õà KpRO†¬ L�R`&4 M R©½%& NÀRàŸÆ’O VVÚ=âP^é8„qQ f"¸ ÔR0~F?‡ô,S€�å ŽL§¾Tp›– ÜI^ÅU¥rÍCÉ¡run.rscnscripts/camera.asscripts/daylight.asscripts/fx_course.asscripts/run.asscripts/sound.asRSCNB  X?HH$1STRS¨Î!VALSx"‹XEXTR{äSUBRð|ÄNODE¸�D ITEM¢¤2BIND¨ÔCONN°ÔEMBD¸ÔORDRÀÔ0ANIMðÛbcL                                                                                                           1_surfaceShaderres://psx/psx_surface.wgsl2_cutoutres://psx/psx_cutout.wgsl3_chromeres://psx/psx_chrome.wgsl4_skyres://psx/psx_sky.wgsl5_terrainPackedSceneres://course/terrain.rmdlcmd6_dressingres://course/dressing.rmdlcmd7_daylightScriptres://scripts/daylight.astex_archesTexture2Dres://textures/arches.pngtex_bannersres://textures/banners.pngtex_barkres://textures/bark.pngtex_boxres://textures/box.pngtex_buildingres://textures/building.pngtex_chrome_matcapres://textures/chrome_matcap.pngtex_crowdres://textures/crowd.pngtex_fenceres://textures/fence.pngtex_iceres://textures/ice.pngtex_liftres://textures/lift.pngtex_mountainsres://textures/mountains.pngtex_pine_ares://textures/pine_a.pngtex_pine_bres://textures/pine_b.pngtex_pine_coneres://textures/pine_cone.pngtex_rockres://textures/rock.pngtex_snow_groomedres://textures/snow_groomed.pngtex_snow_packedres://textures/snow_packed.pngtex_snow_powderres://textures/snow_powder.png8_fxres://scripts/fx_course.as9_spriteres://psx/psx_sprite.wgsltex_fx_flakeres://textures/fx_flake.pngtex_fx_confettires://textures/fx_confetti.pngtex_fx_flareres://textures/fx_flare.pngCourseNode3DEnvironmentWorldEnvironmentSkyMeshInstance3DTerrainT00_groomedT00_powderT00_rockT01_groomedT01_powderT01_rockT02_groomedT02_powderT02_rockT03_groomedT03_powderT03_rockT04_groomedT04_powderT04_rockT05_groomedT05_powderT05_rockT06_groomedT06_powderT06_rockT07_groomedT07_powderT07_rockT08_groomedT08_packedT08_powderT08_rockT09_groomedT09_packedT09_powderT09_rockT10_groomedT10_packedT10_powderT10_rockT11_groomedT11_packedT11_powderT11_rockT12_groomedT12_packedT12_powderT12_rockT13_groomedT13_packedT13_powderT13_rockT14_groomedT14_packedT14_powderT14_rockT15_groomedT15_packedT15_powderT15_rockT16_groomedT16_packedT16_powderT16_rockT17_groomedT17_packedT17_powderT17_rockT18_groomedT18_packedT18_powderT18_rockT19_groomedT19_packedT19_powderT19_rockT20_groomedT20_powderT20_rockT21_groomedT21_iceT21_packedT21_powderT21_rockT22_groomedT22_iceT22_packedT22_powderT22_rockT23_groomedT23_powderT23_rockT24_groomedT24_powderT24_rockT25_groomedT25_packedT25_powderT25_rockT26_groomedT26_packedT26_powderT26_rockT27_groomedT27_packedT27_powderT27_rockT28_groomedT28_packedT28_powderT28_rockT29_groomedT29_packedT29_powderT29_rockT30_groomedT30_packedT30_powderT30_rockT31_groomedT31_packedT31_powderT31_rockT32_groomedT32_packedT32_powderT32_rockT33_groomedT33_packedT33_powderT33_rockT34_groomedT34_powderT34_rockT35_groomedT35_packedT35_powderT35_rockT36_groomedT36_packedT36_powderT36_rockT37_groomedT37_powderT37_rockT38_groomedT38_powderT38_rockT39_groomedT39_powderT39_rockT40_groomedT40_powderT40_rockT41_groomedT41_powderT41_rockT42_groomedT42_powderT42_rockT00_farT01_farT02_farT03_farT04_farT05_farT06_farT07_farT08_farT09_farT10_farT11_farT12_farT13_farT14_farT15_farT16_farT17_farT18_farT19_farT20_farT21_farT22_farT23_farT24_farT25_farT26_farT27_farT28_farT29_farT30_farT31_farT32_farT33_farT34_farT35_farT36_farT37_farT38_farT39_farT40_farT41_farT42_farDressingD00_archD00_bannerD00_buildingD00_fenceD00_liftD01_bannerD01_fenceD01_liftD02_accentD02_bannerD02_fenceD02_liftD03_accentD03_bannerD03_liftD04_accentD04_bannerD04_barkD04_boxD04_crowdD04_fenceD04_liftD04_railD05_bannerD05_boxD05_liftD05_railD06_accentD06_archD06_bannerD06_liftD06_pine_coneD07_accentD07_bannerD07_boxD07_buildingD07_liftD07_packedD07_pine_coneD07_railD08_accentD08_bannerD08_liftD08_pine_coneD09_accentD09_archD09_bannerD09_buildingD09_crowdD09_fenceD09_liftD09_neonD10_buildingGD_liftGU_liftL1D_liftL1U_liftL2D_liftL2U_liftTreesPines_00_aMultiMeshInstance3DPines_00_bPines_01_aPines_01_bPines_02_aPines_02_bPines_03_aPines_03_bPines_04_aPines_04_bPines_05_aPines_05_bPines_06_aPines_06_bPines_07_aPines_07_bPines_08_aPines_08_bPines_09_aPines_09_bPines_10_aPines_10_bLinePath3DHighLineRailsFB1LG1DR1KR1RR1FD1LR1LG2FR1DB1HR1LB1Keysaccentarchbannerbarkboxbuildingcrowdfarfencegroomediceliftneonpackedpine_apine_bpine_conepowderrockFxSnowCPUParticles3DConfettiLConfettiRFlare0Flare1Flare2Flare3Flare4ReviewCamsStartCamera3DWarmupKickersRailGardenSplitLowLineMegaInrunFinishHighDropMegaLipMegaSideOverviewMat_accentShaderMaterialMat_archMat_bannerMat_barkMat_boxMat_buildingMat_crowdMat_farMat_fenceMat_groomedMat_iceMat_liftMat_neonMat_packedMat_pine_aMat_pine_bMat_pine_coneMat_powderMat_railMat_rockMat_skyMesh_skySphereMeshEnv_gameMesh_keyQuadMeshMesh_pine_aMesh_pine_bTrees_00_aMultiMeshTrees_00_bTrees_01_aTrees_01_bTrees_02_aTrees_02_bTrees_03_aTrees_03_bTrees_04_aTrees_04_bTrees_05_aTrees_05_bTrees_06_aTrees_06_bTrees_07_aTrees_07_bTrees_08_aTrees_08_bTrees_09_aTrees_09_bTrees_10_aTrees_10_bCurve_lineCurve3DCurve_highCurve_FB1Curve_LG1Curve_DR1Curve_KR1Curve_RR1Curve_FD1Curve_LR1Curve_LG2Curve_FR1Curve_DB1Curve_HR1Curve_LB1Mat_flare0Mesh_flare0Mat_flare1Mesh_flare1Mat_flare2Mesh_flare2Mat_flare3Mesh_flare3Ramp_ageGradientMat_flakeMesh_flakeMat_confettiMesh_confettiRamp_confettishadershader_parameter/albedoshader_parameter/overbrightshader_parameter/sun_directionshader_parameter/sun_colorshader_parameter/sky_ambientshader_parameter/ground_ambientshader_parameter/albedo_textureshader_parameter/uv_scaleshader_parameter/emissionshader_parameter/matcapshader_parameter/tintshader_parameter/reflectivityshader_parameter/zenithshader_parameter/horizonshader_parameter/belowshader_parameter/bandsshader_parameter/sun_sizeshader_parameter/horizon_textureshader_parameter/horizon_repeatshader_parameter/horizon_bandshader_parameter/horizon_tintradiusheightradial_segmentsringsmaterialbackground_modebackground_colortonemap_modefog_enabledfog_modefog_light_colorfog_depth_beginfog_depth_endfog_densityglow_enabledglow_levels/1glow_levels/2glow_levels/3glow_levels/5glow_hdr_thresholdglow_intensitysizecenter_offsettransform_formatinstance_countmeshbufferbake_interval_datapointstiltspoint_countshader_parameter/uv_offsetshader_parameter/snap_resolutionoffsetscolorsshader_parameter/sprite_sheetshader_parameter/frames_xshader_parameter/frames_yinterpolation_modescriptenvironmentmaterial_overridevisibility_range_endmultimeshcurvevisibleemittingamountlifetimelocal_coordsemission_shapeemission_box_extentsdirectionspreadgravityinitial_velocity_mininitial_velocity_maxcolor_ramppositionone_shotexplosivenessdamping_mindamping_maxcolor_initial_rampscaletransformfovnearƒX   …ëQ¸å? ×£p= ï?R¸…ëQÈ?ð?333333ó? †8ÖÅm4à¿?5^ºI Þ?0L¦ F%ç¿ L7‰A`åè??ÆÜµ„|æ?Y·ÑÞà?ð? ž^)Ëá?Á¨¤N@ã?ðHPüé?ð? Ù_vOæ?,eâXç?Cëâ6ê?ð?ÍÌÌÌÌÌô?5 ÍÌÌÌÌÌì?q= ×£pí?ð?ð?ð?ð?!1¾¤1ZGUÕ?¾¤1ZGUÕ?#À?À?% ÍÌÌÌÌÌÜ?š™™™™™É?ffffffÖ?ð?š™™™™™ù?3š™™™™™ñ?)+-Ð?Ð?  ×£p= ï?ÍÌÌÌÌÌÜ?è?ð?333333ë?/ Püs×Ò?ÎQÚÜ?ðHPüé?ð? ðHPüé?–!Žuqë?®Ø_vOî?ð? …ëQ¸ï?ÎQÚì?†ZÓ¼ãå?ð?@'À@ …ëQ¸…ë?ÍÌÌÌÌÌì?ð?ð?´h ´#Œð?333333ã?{®Gáz„?{®Gáz„? à?®¯`º€ªñÒMb @¬Zd;ßß?–C‹lçkFÀš™™™™@´Èv¾Ÿ@bX9´Èü¿X9´Èv¾ë?d;ßO�÷9ÀbX9´Èü¿X9´Èv¾ë?–C‹lçkFÀš™™™™@´Èv¾Ÿ@ªñÒMb À¬Zd;ßß¿d;ßO�÷9À‘í|?5^º?ð?'1¬Ú3@š™™™™™@V-²Ý4À'1¬Z À¸…ëQ¸ž?j¼t“˜TÀ'1¬Z À¸…ëQ¸ž?'1¬Ú3@š™™™™™@V-²Ý4À‘í|?5^º¿ð¿j¼t“˜TÀ-²�ï§Æç? ×£p= ï?ü©ñÒMÒFÀZd;ßÏ@®Gáz @Ãõ(\�ÂÀ´Èv¾ŸÏ?Év¾ŸO1@Ãõ(\�ÂÀ´Èv¾ŸÏ?ü©ñÒMÒFÀZd;ßÏ@®Gáz @-²�ï§Æç¿ ×£p= ï¿Év¾ŸO1@j¼t“À�•C‹lçë?š™™™™Y@@fffff&&@9´Èv¾3À33333³À\�Âõ(\ß¿L7‰A`}UÀ33333³À\�Âõ(\ß¿š™™™™Y@@fffff&&@9´Èv¾3Àj¼t“@�•C‹lçë¿L7‰A`}UÀžï§ÆK·@ÇK7‰A`á?øS㥛D=@ôýÔxé&)@u“Vn4À°rh‘í| Àáz®Gáê?{®GáBVÀ°rh‘í| Àáz®Gáê?øS㥛D=@ôýÔxé&)@u“Vn4Àžï§ÆK·ÀÇK7‰A`á¿{®GáBVÀV-²�ï@D‹lçû©±?Ý$�•#8@9´Èv¾@^ºI +׿D‹lçû©Ñ¿V-²�ïï?`6ÀD‹lçû©Ñ¿V-²�ïï?Ý$�•#8@9´Èv¾@^ºI +׿V-²�ïÀD‹lçû©±¿`6ÀºI +‡ @V-²�×?yé&1|@@NbX9´@Év¾Ÿ/6À¨ÆK7‰Aô¿Ãõ(\�Âí?ö(\�•YÀ¨ÆK7‰Aô¿Ãõ(\�Âí?yé&1|@@NbX9´@Év¾Ÿ/6ÀºI +‡ ÀV-²�׿ö(\�•YÀ¤p= ×£ ÀÁÊ¡E¶óÕ?w¾Ÿ/};À´Èv¾Ÿš@j¼t“@þÔxé&1ô¿?5^ºI î¿‘í|?5*@þÔxé&1ô¿?5^ºI î¿w¾Ÿ/};À´Èv¾Ÿš@j¼t“@¤p= ×£ @ÁÊ¡E¶óÕ¿‘í|?5*@-²�ï§Æ ÀƒÀÊ¡Eâ?ã¥›Ä 0HÀh‘í|?µ@Zd;ßO�—¿V-²�ÀƒÀÊ¡Eê¿;ßO�—AÀV-²�ÀƒÀÊ¡Eê¿ã¥›Ä 0HÀh‘í|?µ@Zd;ßO�—¿-²�ï§Æ @ƒÀÊ¡Eâ¿;ßO�—AÀð§ÆK7‰û?Ház®Gí?+‡ÙŽ%ÀÇK7‰A  @yé&1¬Ì?çû©ñÒMÀ˜nƒÀÊÙ?u“VŽ@çû©ñÒMÀ˜nƒÀÊÙ?+‡ÙŽ%ÀÇK7‰A  @yé&1¬Ì?ð§ÆK7‰û¿Ház®Gí¿u“VŽ@V-²�ïÀáz®Gáº?= ×£p½EÀôýÔxéf$@ÓMbX9%À¬Zd;ß߿ףp= ×￾Ÿ/Ý|QÀ¬Zd;ß߿ףp= ×ï¿= ×£p½EÀôýÔxéf$@ÓMbX9%ÀV-²�ï@áz®Gế¾Ÿ/Ý|QÀu“V Àú~j¼t“ä?Ë¡E¶óý+@ªñÒMb�!@ÁÊ¡E¶óÀ¬Zd;ßÀP�—nƒè¿\�Âõ(6À¬Zd;ßÀP�—nƒè¿Ë¡E¶óý+@ªñÒMb�!@ÁÊ¡E¶óÀu“V @ú~j¼t“ä¿\�Âõ(6À-²�ï§@w¾Ÿ/ÝÜ?Ãõ(\�2@Ë¡E¶óý)@ßO�—n-À¬Zd;ßÀú~j¼t“ì?Ûù~j¼´KÀ¬Zd;ßÀú~j¼t“ì?Ãõ(\�2@Ë¡E¶óý)@ßO�—n-À-²�ï§Àw¾Ÿ/ÝÜ¿Ûù~j¼´KÀºI +‡–¿ð?J +‡V'Àš™™™™$@¦›Ä °rà¿X9´ÈvÀü©ñÒMbp¿øS㥛Ä#ÀX9´ÈvÀü©ñÒMbp¿J +‡V'Àš™™™™$@¦›Ä °r࿺I +‡–?ð¿øS㥛Ä#À…ëQ¸…÷?¸…ëQ¸î?ºI +ç5@Ï÷S㥛%@“VÍ2À/Ý$�À–C‹lçûÑ?òÒMbðRÀ/Ý$�À–C‹lçûÑ?ºI +ç5@Ï÷S㥛%@“VÍ2À…ëQ¸…÷¿¸…ëQ¸î¿òÒMbðRÀffffffÀD‹lçû©í?“VME@ÓMbX9*@®Gáz!@Év¾Ÿ¯ÀªñÒMbØ¿NbX9´@Év¾Ÿ¯ÀªñÒMbØ¿“VME@ÓMbX9*@®Gáz!@ffffff@D‹lçû©í¿NbX9´@X9´Èv¾@Zd;ßOÍ?ÙÎ÷S#B@u“VN @´Èv¾Ÿ@ö(\�Âõ쿉A`åÐ"ï?�•C‹lý?ö(\�Âõ쿉A`åÐ"ï?ÙÎ÷S#B@u“VN @´Èv¾Ÿ@X9´Èv¾ÀZd;ßOÍ¿�•C‹lý?…ëQ¸…ÀøS㥛Äà?5^ºI "E@X9´Èv>%@j¼t“Àú~j¼t“ÀÝ$�•Cë¿7‰A`å@FÀú~j¼t“ÀÝ$�•Cë¿5^ºI "E@X9´Èv>%@j¼t“À…ëQ¸…@øS㥛Äà¿7‰A`å@FÀ/Ý$À333333ç?/Ý$�Õ@@žï§ÆKw*@/Ý$1ÀìQ¸…ëÀj¼t“æ¿�•C‹lçRÀìQ¸…ëÀj¼t“æ¿/Ý$�Õ@@žï§ÆKw*@/Ý$1À/Ý$@333333ç¿�•C‹lçRÀ-²�ï§Æý?øS㥛Äì?ƒÀÊ¡E5À/Ý$� @¬ZdÛ6ÀP�—nƒÀÕxé&1Ü?+‡Ù6WÀP�—nƒÀÕxé&1Ü?ƒÀÊ¡E5À/Ý$� @¬ZdÛ6À-²�ï§Æý¿øS㥛Äì¿+‡Ù6WÀÍÌÌÌÌLÀ‡ÙÎ÷SÃ?bX9´¨N@²�ï§ÆK'@ƒÀÊ¡Ev&À333333ë¿ÙÎ÷Sã¥ï¿d;ßO�ÏSÀ333333ë¿ÙÎ÷Sã¥ï¿bX9´¨N@²�ï§ÆK'@ƒÀÊ¡Ev&ÀÍÌÌÌÌL@‡ÙÎ÷Sÿd;ßO�ÏSÀ)\�Âõ( @ÙÎ÷Sã¥Ë?Zd;ß/5@%�•C @33333Ó;À+‡ÙÎ÷ç¿Ý$�•Cï?œÄ °rX[À+‡ÙÎ÷ç¿Ý$�•Cï?Zd;ß/5@%�•C @33333Ó;À)\�Âõ( ÀÙÎ÷Sã¥Ë¿œÄ °rX[ÀP�—nƒä¿/Ý$�•ï?#Ûù~jìMÀyé&1l @ +‡!À1¬ZdÀÏ÷S㥛Ŀ´Èv¾Ÿ"RÀ1¬ZdÀÏ÷S㥛Ŀ#Ûù~jìMÀyé&1l @ +‡!ÀP�—nƒä?/Ý$�•ï¿´Èv¾Ÿ"RÀP�—nƒÀ�•C‹lã?Ûù~j¼”8@¢E¶óýÔ#@…ëQ¸÷?‡ÙÎ÷SÀœÄ °rhé¿–C‹lç2À‡ÙÎ÷SÀœÄ °rhé¿Ûù~j¼”8@¢E¶óýÔ#@…ëQ¸÷?P�—nƒ@�•C‹lã¿–C‹lç2Àú~j¼t“À+‡ÙÎß?Ház®g4À“V-@X9´Èvð¿NbX9´ø¿-²�ï§Æë¿¬Zd;?6ÀNbX9´ø¿-²�ï§Æë¿Ház®g4À“V-@X9´Èvð¿ú~j¼t“@+‡ÙÎß¿¬Zd;?6Àžï§ÆK7À¬Zd;ç?¬Zd;¿3@�•C‹l!@ /Ý$@åÐ"Ûù~Àj¼t“æ¿ +‡™%@åÐ"Ûù~Àj¼t“濬Zd;¿3@�•C‹l!@ /Ý$@žï§ÆK7@¬Zd;ç¿ +‡™%@¨ÆK7‰A@D‹lçû©±?X9´È¦@À/Ý$Á%@ÍÌÌÌÌŒ#ÀffffffÖ¿V-²�ïï?ð§ÆK7JÀffffffÖ¿V-²�ïï?X9´È¦@À/Ý$Á%@ÍÌÌÌÌŒ#À¨ÆK7‰AÀD‹lçû©±¿ð§ÆK7JÀ‹lçû©ñÀð§ÆK7‰Á?j¼t“x?@�Âõ(\,@-²�ï‡8ÀÏ÷S㥛쿃ÀÊ¡E¶ï¿Ûù~j¼d[ÀÏ÷S㥛쿃ÀÊ¡E¶ï¿j¼t“x?@�Âõ(\,@-²�ï‡8À‹lçû©ñ@ð§ÆK7‰Á¿Ûù~j¼d[À{®Gáz @´Èv¾ŸÏ?V-²�Ï5@ð§ÆK7‰@¶óýÔx©.ÀX9´Èvê¿ ×£p= ï?u“VÎNÀX9´Èvê¿ ×£p= ï?V-²�Ï5@ð§ÆK7‰@¶óýÔx©.À{®Gáz À´Èv¾ŸÏ¿u“VÎNÀ +‡Y@´Èv¾Ÿã?}?5^ºi9ÀJ +‡V&@¨ÆK7‰A:À×£p= × ÀD‹lçû©é?{®GáR[À×£p= × ÀD‹lçû©é?}?5^ºi9ÀJ +‡V&@¨ÆK7‰A:À +‡YÀ´Èv¾Ÿã¿{®GáR[À¶óýÔxé@u“Ví?Év¾ŸOKÀ1¬Zä$@‹lçû©ñÀáz®GaÀ�—nƒÀÚ?¾Ÿ/ÝÄMÀáz®GaÀ�—nƒÀÚ?Év¾ŸOKÀ1¬Zä$@‹lçû©ñÀ¶óýÔxéÀu“Ví¿¾Ÿ/ÝÄMÀÙÎ÷Sãû?NbX9´ì?oƒÀÊa/@D‹lçû©@‰A`åÐ"ý?²�ï§ÆK À}?5^ºIÜ?D‹lçûI9@²�ï§ÆK À}?5^ºIÜ?oƒÀÊa/@D‹lçû©@‰A`åÐ"ý?ÙÎ÷Sãû¿NbX9´ì¿D‹lçûI9@/Ý$�@¶óýÔxéÆ?œÄ °rKÀ¬Zdû"@�—nƒÀÀ‘í|?5^ê¿°rh‘í|ï?òÒMbøHÀ‘í|?5^ê¿°rh‘í|ï?œÄ °rKÀ¬Zdû"@�—nƒÀÀ/Ý$�À¶óýÔxéÆ¿òÒMbøHÀJ +‡–À\�Âõ(\ã?×£p= —5Àu“V-@¤p= ×ã1À¶óýÔxiÀF¶óýÔxé¿‘í|?5¶RÀ¶óýÔxiÀF¶óýÔxé¿×£p= —5Àu“V-@¤p= ×ã1ÀJ +‡–@\�Âõ(\ã¿‘í|?5¶RÀHáz®GÀœÄ °rhÑ?= ×£p½@ÀìQ¸…ë)@+‡ÙÎ×9Àçû©ñÒMú¿bX9´Èî¿çû©ñÒ\Àçû©ñÒMú¿bX9´Èî¿= ×£p½@ÀìQ¸…ë)@+‡ÙÎ×9ÀHáz®G@œÄ °rhÑ¿çû©ñÒ\ÀZd;ßO ÀìQ¸…ëÑ?®Gázô>@Év¾Ÿ¯@L7‰A`e/ÀßO�—nñ¿¸…ëQ¸î¿¢E¶óýìPÀßO�—nñ¿¸…ëQ¸î¿®Gázô>@Év¾Ÿ¯@L7‰A`e/ÀZd;ßO @ìQ¸…ëÑ¿¢E¶óýìPÀZd;ßO@ÙÎ÷SãÝ?…ëQ¸ÎF@î|?5^ú$@î|?5^z"@Ház®GÀ}?5^ºIì?š™™™™¹4@Ház®GÀ}?5^ºIì?…ëQ¸ÎF@î|?5^ú$@î|?5^z"@Zd;ßOÀÙÎ÷SãÝ¿š™™™™¹4@'1¬Z À!°rh‘íÌ?�•C‹lÇ3À˜nƒÀJ@œÄ °rh'ÀÝ$�•Cë¿^ºI +ï¿°rh‘íŒGÀÝ$�•Cë¿^ºI +ï¿�•C‹lÇ3À˜nƒÀJ@œÄ °rh'À'1¬Z @!°rh‘íÌ¿°rh‘íŒGÀq= ×£p@= ×£p=ê?Ûù~j¼ÔMÀºI +&@D‹lçûé$À–C‹lç{À¼t“Vâ?{®Gá TÀ–C‹lç{À¼t“Vâ?Ûù~j¼ÔMÀºI +&@D‹lçûé$Àq= ×£pÀ= ×£p=ê¿{®Gá TÀš™™™™™©¿ð?NbX9ÄF@ã¥›Ä ð'@mçû©ñR)À×£p= WÀ;ßO�—n‚¿1¬ZQÀ×£p= WÀ;ßO�—n‚¿NbX9ÄF@ã¥›Ä ð'@mçû©ñR)Àš™™™™™©?ð¿1¬ZQÀÓMbX9ÀÛù~j¼tÃ?…ëQ¸E9À�Âõ(\O @sh‘í|Ÿ4À333333ã¿V-²�ï¿Zd;ßOVÀ333333ã¿V-²�ï¿…ëQ¸E9À�Âõ(\O @sh‘í|Ÿ4ÀÓMbX9@Ûù~j¼tÿZd;ßOVÀffffff À^ºI +×?mçû©ñRC@^ºI «@/Ý$�•@w¾Ÿ/Ýö¿mçû©ñÒí¿®Gáz®#Àw¾Ÿ/Ýö¿mçû©ñÒí¿mçû©ñRC@^ºI «@/Ý$�•@ffffff @^ºI +׿®Gáz®#À¼t“VÀ/Ý$�•ã?²�ï§Æë=Àžï§ÆKw$@¬Zd;ßë¿Ház®GÀHáz®Gé¿ÍÌÌÌÌÌ<ÀHáz®GÀHáz®G鿲�ï§Æë=Àžï§ÆKw$@¬Zd;ß뿼t“V@/Ý$�•ã¿ÍÌÌÌÌÌ<ÀþÔxé&1À¬Zd;ë?‡ÙÎ÷s4@ôýÔxéæ!@×£p= *À…ëQ¸… ÀÍÌÌÌÌÌà¿9´Èv¾ŸIÀ…ëQ¸… ÀÍÌÌÌÌÌ࿇ÙÎ÷s4@ôýÔxéæ!@×£p= *ÀþÔxé&1@¬Zd;ë¿9´Èv¾ŸIÀ!°rh‘í ÀÑ"Ûù~jÌ??5^ºIÜ@@ +‡Ù@9´Èv¾Àq= ×£pé¿333333ï¿®GázŽEÀq= ×£pé¿333333ï¿?5^ºIÜ@@ +‡Ù@9´Èv¾À!°rh‘í @Ñ"Ûù~jÌ¿®GázŽEÀX9´Èvê?V-²�ï? ×£p=Ê#À?5^ºIÌ%@J +‡À +‡ÙÀj¼t“Ä?ã¥›Ä p6À +‡ÙÀj¼t“Ä? ×£p=Ê#À?5^ºIÌ%@J +‡ÀX9´Èvê¿V-²�ï¿ã¥›Ä p6À^ºI +ÀV-²�ïÇ?X9´È6F@@&@œÄ °rè"Àj¼t“ð¿�•C‹lï¿î|?5^ªLÀj¼t“ð¿�•C‹lï¿X9´È6F@@&@œÄ °rè"À^ºI +@V-²�ïÇ¿î|?5^ªLÀ“V-þ?w¾Ÿ/Ýì?š™™™™‰C@-²�ï§"@Ãõ(\�Â@{®GázÀÙÎ÷Sã¥Û?˜nƒÀJ3À{®GázÀÙÎ÷Sã¥Û?š™™™™‰C@-²�ï§"@Ãõ(\�Â@“V-þ¿w¾Ÿ/Ý쿘nƒÀJ3À»€åÐ"Ûù~@L7‰A`åà?V-²�¯'@ƒÀÊ¡E%@®Gáz®À�—nƒÀÀ^ºI +ë?7‰A`åP?À�—nƒÀÀ^ºI +ë?V-²�¯'@ƒÀÊ¡E%@®Gáz®ÀåÐ"Ûù~ÀL7‰A`åà¿7‰A`åP?Àú~j¼t“¸¿ð?¦›Ä °²FÀsh‘í|?!@®GázT1À#Ûù~j¼ÀºI +‡–¿‡ÙÎ÷“WÀ#Ûù~j¼ÀºI +‡–¿¦›Ä °²FÀsh‘í|?!@®GázT1Àú~j¼t“¸?ð¿‡ÙÎ÷“WÀ ×£p=Š@ôýÔxé&±?}?5^º‰8@‘í|?5!@®Gáz.À˜nƒÀÊÑ¿V-²�ïï?mçû©ñbCÀ˜nƒÀÊÑ¿V-²�ïï?}?5^º‰8@‘í|?5!@®Gáz.À ×£p=ŠÀôýÔxé&±¿mçû©ñbCÀáz®GáÀHáz®Gé?0JÀƒÀÊ¡E#@çû©ñÒM/À°rh‘í| ÀV-²�ã¿B`åÐ"ÃWÀ°rh‘í| ÀV-²�ã¿0JÀƒÀÊ¡E#@çû©ñÒM/Àáz®Gá@Ház®Gé¿B`åÐ"ÃWÀ+‡ÙÎ@´Èv¾ŸÏ?‡ÙÎ÷cCÀ×£p= %@L7‰A`å@¬Zd;ßó¿ ×£p= ï?¶óýÔx)-À¬Zd;ßó¿ ×£p= ï?‡ÙÎ÷cCÀ×£p= %@L7‰A`å@+‡ÙÎÀ´Èv¾ŸÏ¿¶óýÔx)-À-²�ï§Æý¿B`åÐ"Ûí?‘í|?5^L@\�Âõ(&@ÙÎ÷Sã%Àsh‘í|?À´Èv¾Ÿ׿¢E¶óý$JÀsh‘í|?À´Èv¾Ÿ׿‘í|?5^L@\�Âõ(&@ÙÎ÷Sã%À-²�ï§Æý?B`åÐ"Ûí¿¢E¶óý$JÀ'1¬Z@d;ßO�—ê?ÇK7‰A 4À/Ý$�•@î|?5^º0À;ßO�—nÀ˜nƒÀÊá?òÒMbøPÀ;ßO�—nÀ˜nƒÀÊá?ÇK7‰A 4À/Ý$�•@î|?5^º0À'1¬ZÀd;ßO�—ê¿òÒMbøPÀj¼t“À‰A`åÐ"ë?X9´È6K@%�•CK(@j¼t“83À¬Zd;Àö(\�Âõà¿+‡ÙÎ/[À¬Zd;Àö(\�Âõà¿X9´È6K@%�•CK(@j¼t“83Àj¼t“@‰A`åÐ"ë¿+‡ÙÎ/[À-²�ï§ Àü©ñÒMbP?î|?5^z>@ìQ¸…ë@Év¾Ÿ¯@{®Gázt¿ð¿ /Ý$5@{®Gázt¿ð¿î|?5^z>@ìQ¸…ë@Év¾Ÿ¯@-²�ï§ @ü©ñÒMbP¿ /Ý$5@ÇK7‰A`À¢E¶óýÔà?\�Âõ(:À1¬Zä%@®Gáz®À/Ý$�À333333ë¿œÄ °rEÀ/Ý$�À333333ë¿\�Âõ(:À1¬Zä%@®Gáz®ÀÇK7‰A`@¢E¶óýÔà¿œÄ °rEÀ¤p= ×£Àà?ã¥›Ä €K@ÍÌÌÌÌL@F¶óýÔø/À5^ºI ù¿ƒÀÊ¡E¶ë¿ ×£p=‚WÀ5^ºI ù¿ƒÀÊ¡E¶ë¿ã¥›Ä €K@ÍÌÌÌÌL@F¶óýÔø/À¤p= ×£@à¿ ×£p=‚WÀ°rh‘í|À^ºI +ß?¾Ÿ/Ý„2ÀøS㥛"@u“VN,À`åÐ"ÛùÀ+‡ÙÎ÷ë¿7‰A`å`KÀ`åÐ"ÛùÀ+‡ÙÎ÷뿾Ÿ/Ý„2ÀøS㥛"@u“VN,À°rh‘í|@^ºI +ß¿7‰A`å`KÀ¶óýÔxéÀÏ÷S㥛ì? /Ý$F/À¼t“–,@V-²�ï À'1¬ÚÀyé&1¬Ü¿L7‰A`E9À'1¬ÚÀyé&1¬Ü¿ /Ý$F/À¼t“–,@V-²�ï À¶óýÔxé@Ï÷S㥛ì¿L7‰A`E9À‡ÙÎ÷SÀ¦›Ä °rÈ? /Ý$f<À{®Gá:"@7‰A`åÐê?`åÐ"Ûùê¿�•C‹lï¿‘í|?5~6À`åÐ"Ûùê¿�•C‹lï¿ /Ý$f<À{®Gá:"@7‰A`åÐê?‡ÙÎ÷S@¦›Ä °rÈ¿‘í|?5~6À¦›Ä °r@9´Èv¾Ÿæ?V-²]0ÀÁÊ¡E¶s-@ÙÎ÷SãE:À!°rh‘mÀ-²�ï§æ?ªñÒMb YÀ!°rh‘mÀ-²�ï§æ?V-²]0ÀÁÊ¡E¶s-@ÙÎ÷SãE:À¦›Ä °rÀ9´Èv¾Ÿæ¿ªñÒMb YÀ%�•C‹ì?�—nƒÀî?¤p= ×C8@ºI +@¦›Ä °R3Àî|?5^ºÀî|?5^ºÑ?V-²ýSÀî|?5^ºÀî|?5^ºÑ?¤p= ×C8@ºI +@¦›Ä °R3À%�•C‹ì¿�—nƒÀî¿V-²ýSÀ+‡ÙÎ÷À×£p= ×ç?Zd;ßÏ1ÀÀ @u“VN6Àã¥›Ä ° ÀòÒMbXå¿�Âõ(\·UÀã¥›Ä ° ÀòÒMbXå¿Zd;ßÏ1ÀÀ @u“VN6À+‡ÙÎ÷@×£p= ×ç¿�Âõ(\·UÀq= ×£p@oƒÀÊ¡é?w¾Ÿ/íD@ÁÊ¡E¶ó@sh‘í|?@®Gáz®À^ºI +ã?¬Zd;À®Gáz®À^ºI +ã?w¾Ÿ/íD@ÁÊ¡E¶ó@sh‘í|?@q= ×£pÀoƒÀʡ鿬Zd;ÀßO�—nù¿òÒMbXí?´Èv¾ŸÚ:ÀÝ$�•C @�Âõ(\�@L7‰A`å ÀF¶óýÔxÙ¿áz®Ga@L7‰A`å ÀF¶óýÔxÙ¿´Èv¾ŸÚ:ÀÝ$�•C @�Âõ(\�@ßO�—nù?òÒMbXí¿áz®Ga@oƒÀÊ!@9´Èv¾ŸŠ?J +‡69@œÄ °r¨ @?5^ºI @)\�Âõ(¬¿ð?î|?5^:À)\�Âõ(¬¿ð?J +‡69@œÄ °r¨ @?5^ºI @oƒÀÊ!À9´Èv¾ŸŠ¿î|?5^:À\�Âõ(\ÀÍÌÌÌÌÌä?D‹lçûé5@‰A`åÐâ)@Ñ"Ûù~ê%ÀœÄ °rhÀR¸…ëQ迾Ÿ/Ý”FÀœÄ °rhÀR¸…ëQè¿D‹lçûé5@‰A`åÐâ)@Ñ"Ûù~ê%À\�Âõ(\@ÍÌÌÌÌÌ俾Ÿ/Ý”FÀÓMbX9þ¿F¶óýÔxí?Zd;ßH@Å °rh$@�•C‹ì,À�•C‹lçÀL7‰A`åØ¿×£p= ‡SÀ�•C‹lçÀL7‰A`åØ¿Zd;ßH@Å °rh$@�•C‹ì,ÀÓMbX9þ?F¶óýÔxí¿×£p= ‡SÀNbX94@j¼t“æ?çû©ñÒ�1@…ëQ¸Þ*@= ×£p=@sh‘í|?À¬Zd;ç?1¬Zdû¿sh‘í|?À¬Zd;ç?çû©ñÒ�1@…ëQ¸Þ*@= ×£p=@NbX94Àj¼t“æ¿1¬Zdû¿Ë¡E¶óýú¿ffffffî?j¼t“4@ÇK7‰A '@Ý$�•Ã:À/Ý$�ÀÕxé&1Ô¿ÍÌÌÌÌ$ZÀ/Ý$�ÀÕxé&1Ô¿j¼t“4@ÇK7‰A '@Ý$�•Ã:ÀË¡E¶óýú?ffffffî¿ÍÌÌÌÌ$ZÀffffffæ?…ëQ¸…ï?ƒÀÊ¡%0Àé&1¬œ @\�Âõ(\÷¿®Gáz®ÀƒÀÊ¡EÆ?¶óýÔx)4À®Gáz®ÀƒÀÊ¡EÆ?ƒÀÊ¡%0Àé&1¬œ @\�Âõ(\÷¿ffffffæ¿…ëQ¸…ï¿¶óýÔx)4ÀºI +‡@#Ûù~j¼ì?j¼t“ÄF@ã¥›Ä ð&@333333@ÁÊ¡E¶óÀ)\�Âõ(Ü?%�•CK;ÀÁÊ¡E¶óÀ)\�Âõ(Ü?j¼t“ÄF@ã¥›Ä ð&@333333@ºI +‡À#Ûù~j¼ì¿%�•CK;ÀË¡E¶óý¤¿ð?‘í|?5žCÀþÔxé&1@áz®G!8ÀË¡E¶óý ÀºI +‡†¿V-Â[ÀË¡E¶óý ÀºI +‡†¿‘í|?5žCÀþÔxé&1@áz®G!8ÀË¡E¶óý¤?ð¿V-Â[À`åÐ"Ûù@ƒÀÊ¡EÖ?F¶óýÔIÀ²�ï§ÆË#@%�•CK Àyé&1¬ú¿j¼t“î?¢E¶óýCÀçû©ñÒM!@R¸…ë1MÀd;ßO�—ê¿\�Âõ(\ᅢÀÊ¡EpÀd;ßO�—ê¿\�Âõ(\ï¿+‡Ù>CÀçû©ñÒM!@R¸…ë1MÀ�•C‹l@òÒMbXÉ¿ƒÀÊ¡EpÀ)\�Âõ(Ô¿¬Zd;ßï?= ×£pÍD@V-²�ï@øS㥛ÔJÀ-²�ï§ ÀÃõ(\�µ¿°rh‘ídmÀ-²�ï§ ÀÃõ(\�µ¿= ×£pÍD@V-²�ï@øS㥛ÔJÀ)\�Âõ(Ô?¬Zd;ßï¿°rh‘ídmÀ ×£p= @…ëQ¸á?\�Âõ(¬H@ÙÎ÷S#!@%�•CkIÀøS㥛ÄÀ ×£p= ë?é&1¬„lÀøS㥛ÄÀ ×£p= ë?\�Âõ(¬H@ÙÎ÷S#!@%�•CkIÀ ×£p= À…ëQ¸á¿é&1¬„lÀX9´ÈvÖ¿�•C‹lçï?-²�ï:@V-²�ï#@òÒMbXAÀ¨ÆK7‰AÀã¥›Ä °²¿33333{aÀ¨ÆK7‰AÀã¥›Ä °²¿-²�ï:@V-²�ï#@òÒMbXAÀX9´ÈvÖ?�•C‹lçï¿33333{aÀV-²�ïÀj¼t“ì?)\�Âõˆ:ÀìQ¸…+!@°rh‘íÜ?ÀË¡E¶óýÀ-²�ï§Þ¿D‹lçû©aÀË¡E¶óýÀ-²�ï§Þ¿)\�Âõˆ:ÀìQ¸…+!@°rh‘íÜ?ÀV-²�ï@j¼t“ì¿D‹lçû©aÀ333333@u“VÍ?¾Ÿ/ÝäAÀ¾Ÿ/Ý$@ªñÒMb@JÀu“Ví¿^ºI +ï?ÙÎ÷Sã-mÀu“Ví¿^ºI +ï?¾Ÿ/ÝäAÀ¾Ÿ/Ý$@ªñÒMb@JÀ333333Àu“VÍ¿ÙÎ÷Sã-mÀÑ"Ûù~j @‹lçû©ñÚ?D‹lçûi1ÀX9´Èv>@= ×£pýKÀ/Ý$�•÷¿ /Ý$í?+‡ÙÎclÀ/Ý$�•÷¿ /Ý$í?D‹lçûi1ÀX9´Èv>@= ×£pýKÀÑ"Ûù~j À‹lçû©ñÚ¿+‡ÙÎclÀTã¥›Ä À‘í|?5^æ?w¾Ÿ/½4À^ºI ++@ôýÔxévMÀî|?5^ºÀáz®Gáæ¿+‡ÙÎnÀî|?5^ºÀáz®Gáæ¿w¾Ÿ/½4À^ºI ++@ôýÔxévMÀTã¥›Ä @‘í|?5^æ¿+‡ÙÎnÀ¼t“V@ö(\�Âõà?F¶óýÔØB@žï§ÆKw"@\�Âõ(|<ÀV-²�ïÀ‰A`åÐ"ë?¾Ÿ/Ý `ÀV-²�ïÀ‰A`åÐ"ë?F¶óýÔØB@žï§ÆKw"@\�Âõ(|<À¼t“VÀö(\�Âõ࿾Ÿ/Ý `À®Gáz濲�ï§ÆKï?{®Gáº:@V-²�ï@ ×£p=Ê<Àj¼t“ ÀåÐ"Ûù~Ê¿é&1¬´]Àj¼t“ ÀåÐ"Ûù~Ê¿{®Gáº:@V-²�ï@ ×£p=Ê<À®Gázæ?²�ï§ÆKï¿é&1¬´]À®Gáz@7‰A`åÐÚ?øS㥛„EÀyé&1l#@é&1¬|:À/Ý$�ÿ¿u“Ví?sh‘í|O`À/Ý$�ÿ¿u“Ví?øS㥛„EÀyé&1l#@é&1¬|:À®GázÀ7‰A`åÐÚ¿sh‘í|O`À-²�ï§Æë?´Èv¾Ÿï?Év¾Ÿo>@®Gáz®@= ×£p]HÀyé&1¬ À®GázÎ?�—nƒ iÀyé&1¬ À®GázÎ?Év¾Ÿo>@®Gáz®@= ×£p]HÀ-²�ï§Æë¿´Èv¾Ÿï¿�—nƒ iÀÛù~j¼ô@°rh‘í|ç?®Gázn1À°rh‘í¼*@5^ºI âOÀZd;ßOÀî|?5^ºå?ìQ¸…£oÀZd;ßOÀî|?5^ºå?®Gázn1À°rh‘í¼*@5^ºI âOÀÛù~j¼ôÀ°rh‘í|ç¿ìQ¸…£oÀ¦›Ä °r@?5^ºI ê?ÙÎ÷SãÕK@u“VŽ@¾Ÿ/Ý´DÀJ +‡À�Âõ(\�â?Ház®ChÀJ +‡À�Âõ(\�â?ÙÎ÷SãÕK@u“VŽ@¾Ÿ/Ý´DÀ¦›Ä °rÀ?5^ºI ê¿Ház®ChÀÙÎ÷SãÀü©ñÒMb�?þÔxé&ñA@ ×£p=Š$@-²�ïDÀ{®Gáz´¿ð¿ÁÊ¡E¶›eÀ{®Gáz´¿ð¿þÔxé&ñA@ ×£p=Š$@-²�ïDÀÙÎ÷Sã@ü©ñÒMb�¿ÁÊ¡E¶›eÀ1¬Zd ÀªñÒMb¨?ÇK7‰A@J@ã¥›Ä °@–C‹lç+JÀ×£p= ×ÿ+‡ÙÎ÷ï¿Év¾Ÿ›mÀ×£p= ×ÿ+‡ÙÎ÷ï¿ÇK7‰A@J@ã¥›Ä °@–C‹lç+JÀ1¬Zd @ªñÒMb¨¿Év¾Ÿ›mÀ333333 @ú~j¼t“Ø?h‘í|?UC@¢E¶óýT @NbX9ÔHÀR¸…ëQø¿ð§ÆK7‰í?9´Èv¾ÃjÀR¸…ëQø¿ð§ÆK7‰í?h‘í|?UC@¢E¶óýT @NbX9ÔHÀ333333 Àú~j¼t“Ø¿9´Èv¾ÃjÀ?5^ºI À¼t“Vâ?V-rL@+‡ÙÎ7$@;ßO�—nBÀq= ×£pÀ= ×£p=ê¿ÍÌÌÌÌøeÀq= ×£pÀ= ×£p=ê¿V-rL@+‡ÙÎ7$@;ßO�—nBÀ?5^ºI @¼t“Vâ¿ÍÌÌÌÌøeÀ®Gáz.@¤p= ×£ä?ßO�—n²HÀ33333³&@-²�阮8À'1¬Z À¦›Ä °rè?´Èv¾ŸB_À'1¬Z À¦›Ä °rè?ßO�—n²HÀ33333³&@-²�阮8À®Gáz.À¤p= ף俴Èv¾ŸB_Àd;ßO�—î?‡ÙÎ÷Sï?mçû©ñ²:ÀÓMbX9#@mçû©ñBGÀ¸…ëQ8À= ×£p=Ê?L7‰A`‘hÀ¸…ëQ8À= ×£p=Ê?mçû©ñ²:ÀÓMbX9#@mçû©ñBGÀd;ßO�—ÙÎ÷Sï¿L7‰A`‘hÀ333333ý¿= ×£p=ê?V-²��GÀHáz®Ç@�—nƒ CÀL7‰A`åÀ¼t“Vâ¿\�Âõ(DgÀL7‰A`åÀ¼t“Vâ¿V-²��GÀHáz®Ç@�—nƒ CÀ333333ý?= ×£p=ê¿\�Âõ(DgÀX9´Èv¾÷?–C‹lçûí?Ï÷S㥛E@\�Âõ(œ!@ìQ¸…‹LÀ`åÐ"ÛùÀƒÀÊ¡EÖ?}?5^º5oÀ`åÐ"ÛùÀƒÀÊ¡EÖ?Ï÷S㥛E@\�Âõ(œ!@ìQ¸…‹LÀX9´Èv¾÷¿–C‹lçûí¿}?5^º5oÀ…ëQ¸…û?ºI +‡ê?“VýC@¶óýÔxé@ôýÔxé&JÀü©ñÒMbÀÙÎ÷Sãá?#Ûù~jplÀü©ñÒMbÀÙÎ÷Sãá?“VýC@¶óýÔxé@ôýÔxé&JÀ…ëQ¸…û¿ºI +‡ê¿#Ûù~jplÀð§ÆK7‰ù?ì?¦›Ä °2-À´Èv¾Ÿš@-²�ï×AÀÕxé&1À ×£p= ß?´Èv¾Ÿ¢aÀÕxé&1À ×£p= ß?¦›Ä °2-À´Èv¾Ÿš@-²�ï×AÀð§ÆK7‰ù¿ì¿´Èv¾Ÿ¢aÀþÔxé&±@/Ý$�•?òÒMbx7À�•C‹lg&@Ñ"Ûù~ÚGÀ!°rh‘í¼¿ð? /Ý$òhÀ!°rh‘í¼¿ð?òÒMbx7À�•C‹lg&@Ñ"Ûù~ÚGÀþÔxé&±À/Ý$�•¿ /Ý$òhÀ^ºI +À9´Èv¾ŸÊ?åÐ"ÛùNP@j¼t“X&@Ãõ(\�EÀ–C‹lçûñ¿²�ï§ÆKï¿ßO�—njiÀ–C‹lçûñ¿²�ï§ÆKï¿åÐ"ÛùNP@j¼t“X&@Ãõ(\�EÀ^ºI +@9´Èv¾ŸÊ¿ßO�—njiÀ}?5^ºI@ƒÀÊ¡E¶ë?Zd;ßOíH@B`åÐ"Û!@˜nƒÀê=ÀÁÊ¡E¶ó Àà?¼t“ÊaÀÁÊ¡E¶ó Àà?Zd;ßOíH@B`åÐ"Û!@˜nƒÀê=À}?5^ºIÀƒÀÊ¡E¶ë¿¼t“ÊaÀ¦›Ä °ò@¶óýÔxéÆ?ü©ñÒMB:À#Ûù~jü%@9´Èv¾ÏJÀX9´Èvî¿°rh‘í|ï?þÔxé&™lÀX9´Èvî¿°rh‘í|ï?ü©ñÒMB:À#Ûù~jü%@9´Èv¾ÏJÀ¦›Ä °òÀ¶óýÔxéÆ¿þÔxé&™lÀÙÎ÷Sã¥@¾Ÿ/Ý$Æ?sh‘í|ÿEÀ‹lçû©±&@ßO�—nbGÀ¼t“Vî¿…ëQ¸…ï?Ûù~j¼kÀ¼t“Vî¿…ëQ¸…ï?sh‘í|ÿEÀ‹lçû©±&@ßO�—nbGÀÙÎ÷Sã¥À¾Ÿ/Ý$Æ¿Ûù~j¼kÀÑ"Ûù~j Àu“Vå?Å °rh±D@#Ûù~j|#@yé&1¼AÀ×£p= ×Àj¼t“è¿°rh‘í¤cÀ×£p= ×Àj¼t“è¿Å °rh±D@#Ûù~j|#@yé&1¼AÀÑ"Ûù~j @u“Vå¿°rh‘í¤cÀ¼t“VI +‡î?}?5^º‰:@V-²@/Ý$áEÀ= ×£p=À‰A`åÐ"Ó¿bX9´ôeÀ= ×£p=À‰A`åÐ"Ó¿}?5^º‰:@V-²@/Ý$áEÀ¼t“Vî?ºI +‡î¿bX9´ôeÀ?5^ºI @X9´Èvê?7‰A`åp2À/Ý$�•-@ªñÒMbPBÀ¼t“ÖÀ–C‹lçûá?5^ºI úbÀ¼t“ÖÀ–C‹lçûá?7‰A`åp2À/Ý$�•-@ªñÒMbPBÀ?5^ºI ÀX9´Èvê¿5^ºI úbÀ²�ï§ÆKÀ}?5^ºIÌ?�•C‹L@@NbX94@-²�ï§æAÀ°rh‘í|ë¿333333↓ZdûbÀ°rh‘í|ë¿333333ï¿�•C‹L@@NbX94@-²�ï§æAÀ²�ï§ÆK@}?5^ºIÌ¿¬ZdûbÀ®Gáz À¶óýÔxéÞ?é&1¬,FÀªñÒMb@j¼t“(FÀB`åÐ"Ûý¿Õxé&1ì¿#Ûù~j°iÀB`åÐ"Ûý¿Õxé&1ì¿é&1¬,FÀªñÒMb@j¼t“(FÀ®Gáz @¶óýÔxéÞ¿#Ûù~j°iÀú~j¼t“è?Ûù~j¼tï?ÙÎ÷SãÅC@�•C‹l'!@X9´ÈvCÀmçû©ñRÀ®Gáz®Ç?/Ý$ñdÀmçû©ñRÀ®Gáz®Ç?ÙÎ÷SãÅC@�•C‹l'!@X9´ÈvCÀú~j¼t“è¿Ûù~j¼tï¿/Ý$ñdÀ}?5^ºÉÀd;ßO�—Î?ÍÌÌÌÌÀT㥛ĠÀh‘í|?5®?Ãõ(\�r^ÀT㥛ĠÀh‘í|?5®??5^ºIL7@¤p= ×#&@9´Èv¾Ÿ>À/Ý$�•Ó¿V-²�ïï¿Ãõ(\�r^À\�Âõ(\À +‡Ùæ?Zd;ßO/À9´Èv¾_&@�•C‹l'DÀ!°rh‘íÀ;ßO�—næ¿®GázzdÀ!°rh‘íÀ;ßO�—næ¿Zd;ßO/À9´Èv¾_&@�•C‹l'DÀ\�Âõ(\@ +‡Ùæ¿®GázzdÀÙÎ÷Sã%@ú~j¼t“x?¬Zd›?@î|?5^º'@‡ÙÎ÷ƒJÀìQ¸…ë¡¿ð?�Âõ(\ŸkÀìQ¸…ë¡¿ð?¬Zd›?@î|?5^º'@‡ÙÎ÷ƒJÀÙÎ÷Sã%Àú~j¼t“x¿�Âõ(\ŸkÀ!°rh‘íÀ`åÐ"Ûù¾? +‡=@mçû©ñÒ)@Zd;ßNÀÝ$�•Cç¿-²�ï§Æï¿žï§ÆKÃoÀÝ$�•Cç¿-²�ï§Æï¿ +‡=@mçû©ñÒ)@Zd;ßNÀ!°rh‘í@`åÐ"Ûù¾¿žï§ÆKÃoÀR¸…ëQä¿-²�ï§Æï?ü©ñÒMb-ÀÙÎ÷S£&@X9´Èv®JÀ-²�ï§ÆÀV-²½¿¨ÆK7‰ÉjÀ-²�ï§ÆÀV-²½¿ü©ñÒMb-ÀÙÎ÷S£&@X9´Èv®JÀR¸…ëQä?-²�ï§Æï¿¨ÆK7‰ÉjÀX9´ÈvÀd;ßO�—æ?áz®Gá9ÀƒÀÊ¡E6&@V-²�OHÀü©ñÒMbÀ-²�ï§æ¿P�—niÀü©ñÒMbÀ-²�ï§æ¿áz®Gá9ÀƒÀÊ¡E6&@V-²�OHÀX9´Èv@d;ßO�—æ¿P�—niÀ¾Ÿ/Ý$î?…ëQ¸…ï?ð§ÆK7 :ÀÙÎ÷Sc&@ ×£p=*IÀ'1¬ZÀƒÀÊ¡EÆ?%�•C«jÀ'1¬ZÀƒÀÊ¡EÆ?ð§ÆK7 :ÀÙÎ÷Sc&@ ×£p=*IÀ¾Ÿ/Ý$î¿…ëQ¸…ï¿%�•C«jÀ7‰A`åPÀffffffæ?}?5^º):@š™™™™™'@¬Zd;/NÀ5^ºI À +‡Ùæ¿�Âõ(\ÓnÀ5^ºI À +‡Ùæ¿}?5^º):@š™™™™™'@¬Zd;/NÀ7‰A`åP@ffffffæ¿�Âõ(\ÓnÀNbX9´ Àmçû©ñÒÕ?B`åÐ"»@@ÓMbX¹@/Ý$ÁMÀÅ °rh‘õ¿®Gázî¿®Gáz€oÀÅ °rh‘õ¿®Gázî¿B`åÐ"»@@ÓMbX¹@/Ý$ÁMÀNbX9´ @mçû©ñÒÕ¿®Gáz€oÀ?5^ºI À /Ý$å?¾Ÿ/ÝDF@F¶óýÔø%@ã¥›Ä PMÀV-²�ï ÀTã¥›Ä è¿/Ý$ pÀV-²�ï ÀTã¥›Ä è¿¾Ÿ/ÝDF@F¶óýÔø%@ã¥›Ä PMÀ?5^ºI @ /Ý$å¿/Ý$ pÀffffffÀÏ÷S㥛ì?T㥛ÄÐEÀ ×£p= ,@1¬Z„EÀœÄ °rhÀÏ÷S㥛ܿ¨ÆK7‰¹hÀœÄ °rhÀÏ÷S㥛ܿT㥛ÄÐEÀ ×£p= ,@1¬Z„EÀffffff@Ï÷S㥛쿨ÆK7‰¹hÀ´Èv¾Ÿ׿V-²�ïï?w¾Ÿ/=B@X9´Èv+@Ãõ(\�’DÀd;ßO�—Àyé&1¬¬¿NbX94fÀd;ßO�—Àyé&1¬¬¿w¾Ÿ/=B@X9´Èv+@Ãõ(\�’DÀ´Èv¾Ÿ×?V-²�ïï¿NbX94fÀyé&1¬ @˜nƒÀÊå?;ßO�—þ@Àžï§ÆK7$@š™™™™IHÀD‹lçû© À�•C‹lç?#Ûù~j¬jÀD‹lçû© À�•C‹lç?;ßO�—þ@Àžï§ÆK7$@š™™™™IHÀyé&1¬ À˜nƒÀÊå¿#Ûù~j¬jÀé&1¬ @Ãõ(\�Âå?Å °rh¡E@-²�阮$@-²�ï§ÖGÀ ×£p= À°rh‘í|ç?ÍÌÌÌÌ jÀ ×£p= À°rh‘í|ç?Å °rh¡E@-²�阮$@-²�ï§ÖGÀé&1¬ ÀÃõ(\�Âå¿ÍÌÌÌÌ jÀ´Èv¾ŸÀ‡ÙÎ÷Së?‡ÙÎ÷S&À7‰A`åÐ'@Ý$�•#GÀË¡E¶óýÀ¤p= ×£à¿sh‘í|ÛfÀË¡E¶óýÀ¤p= ף࿇ÙÎ÷S&À7‰A`åÐ'@Ý$�•#GÀ´Èv¾Ÿ@‡ÙÎ÷Së¿sh‘í|ÛfÀ¬Zd;_À{®Gázà?‹lçû©9@¢E¶óýT'@V-òJÀÝ$�•CÀ�•C‹lë¿yé&1ÔjÀÝ$�•CÀ�•C‹lë¿‹lçû©9@¢E¶óýT'@V-òJÀ¬Zd;_@{®Gázà¿yé&1ÔjÀTã¥›Ä @= ×£p=î?ü©ñÒMRL@{®Gáz*@R¸…ëQCÀw¾Ÿ/]Àw¾Ÿ/ÝÔ?˜nƒÀgÀw¾Ÿ/]Àw¾Ÿ/ÝÔ?ü©ñÒMRL@{®Gáz*@R¸…ëQCÀTã¥›Ä À= ×£p=nƒÀgÀ‰A`åÐ"@–C‹lçûé?œÄ °rL@\�Âõ(\%@œÄ °rÈ9ÀÍÌÌÌÌÌÀ-²�ï§â?é&1¬¸`ÀÍÌÌÌÌÌÀ-²�ï§â?œÄ °rL@\�Âõ(\%@œÄ °rÈ9À‰A`åÐ"À–C‹lçûé¿é&1¬¸`ÀË¡E¶óý@¤p= ×£Ø?š™™™™Y2ÀV-²]&@¢E¶óýtIÀD‹lçû©Àð§ÆK7‰í?D‹lçûjÀD‹lçû©Àð§ÆK7‰í?š™™™™Y2ÀV-²]&@¢E¶óýtIÀË¡E¶óýÀ¤p= ףؿD‹lçûjÀ#Ûù~j¼@áz®Gáê?Õxé&1H6À‹lçû©±$@R¸…ëOÀ¼t“ÖÀòÒMbXá??5^ºIÄoÀ¼t“ÖÀòÒMbXá?Õxé&1H6À‹lçû©±$@R¸…ëOÀ#Ûù~j¼Àáz®Gáê¿?5^ºIÄoÀ+‡ÙÎÀL7‰A`åè?¦›Ä °òC@ +‡!@²�ï§ÆË8ÀøSã¥›Ä Àj¼t“ä¿�—nƒ ]ÀøSã¥›Ä Àj¼t“俦›Ä °òC@ +‡!@²�ï§ÆË8À+‡ÙÎ@L7‰A`åè¿�—nƒ ]ÀÕxé&1 @ÓMbX9Ä?fffff†?@oƒÀÊ¡@Év¾Ÿ/FÀyé&1¬à¿/Ý$�•ï? ×£p=gÀyé&1¬à¿/Ý$�•ï?fffff†?@oƒÀÊ¡@Év¾Ÿ/FÀÕxé&1 ÀÓMbX9Ä¿ ×£p=gÀ#Ûù~j¼@w¾Ÿ/Ýì?×£p= A@�—nƒ$@Ãõ(\�¢IÀ+‡ÙÎwÀÙÎ÷Sã¥Û?Év¾ŸkÀ+‡ÙÎwÀÙÎ÷Sã¥Û?×£p= A@�—nƒ$@Ãõ(\�¢IÀ#Ûù~j¼Àw¾Ÿ/Ýì¿Év¾ŸkÀáz®GáÀºI +‡Þ?'1¬º6À`åÐ"Û¹"@/Ý$�=À²�ï§ÆKÀTã¥›Ä ì¿bX9´0^À²�ï§ÆKÀTã¥›Ä ì¿'1¬º6À`åÐ"Û¹"@/Ý$�=Àáz®Gá@ºI +‡Þ¿bX9´0^Àq= ×£på¿V-²�ï?×£p= §N@ü©ñÒMâ!@¨ÆK7‰qHÀé&1¬À×£p= ×ÿ“V¹lÀé&1¬À×£p= ×ÿףp= §N@ü©ñÒMâ!@¨ÆK7‰qHÀq= ×£på?V-²�ï¿“V¹lÀ¢E¶óýÔ@�Âõ(\�æ?'1¬:K@mçû©ñR @P�—ncIÀ-²�ï§À¸…ëQ¸æ?9´Èv¾ólÀ-²�ï§À¸…ëQ¸æ?'1¬:K@mçû©ñR @P�—ncIÀ¢E¶óýÔÀ�Âõ(\�æ¿9´Èv¾ólÀZd;ßO@ü©ñÒMbà?j¼t“¤DÀé&1¬@bX9´èAÀÇK7‰A`ù¿°rh‘í|ë?ªñÒMb0eÀÇK7‰A`ù¿°rh‘í|ë?j¼t“¤DÀé&1¬@bX9´èAÀZd;ßOÀü©ñÒMb࿪ñÒMb0eÀš™™™™™ñ?X9´Èvî?ÙÎ÷Sã¥2Àj¼t“@X9´Èv>@Àq= ×£p À…ëQ¸…Ó?ú~j¼tƒ`Àq= ×£p À…ëQ¸…Ó?ÙÎ÷Sã¥2Àj¼t“@X9´Èv>@Àš™™™™™ñ¿X9´Èvî¿ú~j¼tƒ`À\�Âõ(\ @‹lçû©ñ¢?ã¥›Ä ð6À…ëQ¸ž@5^ºI ¢>ÀÀ¿+‡ÙÎ÷ï?sh‘í|`ÀÀ¿+‡ÙÎ÷ï?ã¥›Ä ð6À…ëQ¸ž@5^ºI ¢>À\�Âõ(\ À‹lçû©ñ¢¿sh‘í|`ÀbX9´ÈÀÕxé&1è?î|?5^z6ÀZd;ßO @×£p= ç@À7‰A`åÐÀ…ëQ¸å¿Ë¡E¶óbÀ7‰A`åÐÀ…ëQ¸å¿î|?5^z6ÀZd;ßO @×£p= ç@ÀbX9´È@Õxé&1è¿Ë¡E¶óbÀ^ºI +×?¬Zd;ßï?u“V~F@¶óýÔxi @+‡Ù9ÀR¸…ëÑÀj¼t“¶?ÙÎ÷Sc^ÀR¸…ëÑÀj¼t“¶?u“V~F@¶óýÔxi @+‡Ù9À^ºI +׿¬Zd;ßï¿ÙÎ÷Sc^Àb˜´Èv¾Ÿ @‹lçû©ñ²?9´Èv¾?9@¬Zd;_@é&1¬4SÀHáz®GÑ¿�•C‹lçï?oƒÀʵsÀHáz®GÑ¿�•C‹lçï?9´Èv¾?9@¬Zd;_@é&1¬4SÀ´Èv¾Ÿ À‹lçû©ñ²¿oƒÀʵsÀôýÔxé&û¿ö(\�Âõì?R¸…ë±CÀÕxé&1@ÓMbXñRÀÙÎ÷Sã À333333Û¿)\�ÂõpsÀÙÎ÷Sã À333333Û¿R¸…ë±CÀÕxé&1@ÓMbXñRÀôýÔxé&û?ö(\�Âõì¿)\�ÂõpsÀ°rh‘í|@R¸…ëQØ?ÙÎ÷Sã%AÀ²�ï§Æ‹ @øS㥛lXÀ×£p= ×ù¿š™™™™™í?¸…ëQxÀ×£p= ×ù¿š™™™™™í?ÙÎ÷Sã%AÀ²�ï§Æ‹ @øS㥛lXÀ°rh‘í|ÀR¸…ëQØ¿¸…ëQxÀÃõ(\�BÀ˜nƒÀÊá?9´Èv¾ÿ6@¦›Ä °2$@œÄ °rSÀ�—nƒÀÀd;ßO�—ê¿ð§ÆK7ssÀ�—nƒÀÀd;ßO�—ê¿9´Èv¾ÿ6@¦›Ä °2$@œÄ °rSÀÃõ(\�B@˜nƒÀÊá¿ð§ÆK7ssÀF¶óýÔxù¿/Ý$�í?sh‘í|HÀq= ×£ð@²�ï§ÆûTÀHáz®GÀ¢E¶óýÔØ¿%�•CãuÀHáz®GÀ¢E¶óýÔØ¿sh‘í|HÀq= ×£ð@²�ï§ÆûTÀF¶óýÔxù?/Ý$�í¿%�•CãuÀ¦›Ä °r@Ñ"Ûù~jè?°rh‘íÌJÀL7‰A`å @ÇK7‰A°MÀð§ÆK7‰ Àyé&1¬ä?çû©ñÒëpÀð§ÆK7‰ Àyé&1¬ä?°rh‘íÌJÀL7‰A`å @ÇK7‰A°MÀ¦›Ä °rÀÑ"Ûù~jè¿çû©ñÒëpÀ333333 @-²�ï§Ö?#Ûù~jlB@Ház®G@�•C‹l§XÀd;ßO�—ô¿ìQ¸…ëí?!°rh‘™xÀd;ßO�—ô¿ìQ¸…ëí?#Ûù~jlB@Ház®G@�•C‹l§XÀ333333 À-²�ï§Ö¿!°rh‘™xÀh‘í|?5ö?D‹lçû©í?!°rh‘­6@Ý$�•Ã@\�Âõ(„VÀ�•C‹l ÀØ?j¼t“BvÀ�•C‹l ÀØ?!°rh‘­6@Ý$�•Ã@\�Âõ(„VÀh‘í|?5ö¿D‹lçû©í¿j¼t“BvÀyé&1¬Ü?�•C‹lçï?ð§ÆK7é2@ÁÊ¡E¶³&@˜nƒÀZUÀ¶óýÔxéÀ#Ûù~j¼´?¢E¶óý$uÀ¶óýÔxéÀ#Ûù~j¼´?ð§ÆK7é2@ÁÊ¡E¶³&@˜nƒÀZUÀyé&1¬Ü¿�•C‹lçï¿¢E¶óý$uÀã¥›Ä ° À…ëQ¸…ç?V-ò:@Å °rh%@ÙÎ÷SãYÀ`åÐ"Ûù ÀV-²å¿Ë¡E¶ó{xÀ`åÐ"Ûù ÀV-²å¿V-ò:@Å °rh%@ÙÎ÷SãYÀã¥›Ä ° @…ëQ¸…ç¿Ë¡E¶ó{xÀ^ºI +Àú~j¼t“˜?= ×£pF@ÍÌÌÌÌÌ#@øS㥛DRÀÁÊ¡E¶ó½¿ð¿'1¬ÊsÀÁÊ¡E¶ó½¿ð¿= ×£pF@ÍÌÌÌÌÌ#@øS㥛DRÀ^ºI +@ú~j¼t“˜¿'1¬ÊsÀ¤p= ×£@ +‡Ùê?\�Âõ(DÀ ×£p=Š@®Gáz4PÀÓMbX9 ÀœÄ °rhá?®Gáz`qÀÓMbX9 ÀœÄ °rhá?\�Âõ(DÀ ×£p=Š@®Gáz4PÀ¤p= ×£À +‡Ùê¿®Gáz`qÀ1¬ZäÀ{®Gáz¤?ð§ÆK7™H@J +‡Ö,@àVÀòÒMbXÑ¿+‡ÙÎ÷ï¿h‘í|?³wÀòÒMbXÑ¿+‡ÙÎ÷ï¿ð§ÆK7™H@J +‡Ö,@àVÀ1¬Zä@{®Gáz¤¿h‘í|?³wÀ-²�ï§ò?¶óýÔxéî?+‡ÙÎWLÀ/Ý$Á"@˜nƒÀjSÀZd;ßO�À¦›Ä °rÐ?®GázútÀZd;ßO�À¦›Ä °rÐ?+‡ÙÎWLÀ/Ý$Á"@˜nƒÀjSÀ-²�ï§ò¿¶óýÔxéî¿®GázútÀÝ$�•Cý?é&1¬î?ºI +wI@Zd;ßOM&@;ßO�—ÞOÀR¸…ëQÀV-²Õ?¨ÆK7‰ÉqÀR¸…ëQÀV-²Õ?ºI +wI@Zd;ßOM&@;ßO�—ÞOÀÝ$�•Cý¿é&1¬ÆK7‰ÉqÀ /Ý$í¿‡ÙÎ÷Sï?NbX9A@Ãõ(\�B!@�•C‹ìNÀáz®GaÀé&1¬Ê¿9´Èv¾mpÀáz®GaÀé&1¬Ê¿NbX9A@Ãõ(\�B!@�•C‹ìNÀ /Ý$í?‡ÙÎ÷Sï¿9´Èv¾mpÀq= ×£ðÀ…ëQ¸á?1¬Z„8Àî|?5^z%@ÙÎ÷SëQÀ;ßO�—nÀ ×£p= ë¿d;ßO�çqÀ;ßO�—nÀ ×£p= ë¿1¬Z„8Àî|?5^z%@ÙÎ÷SëQÀq= ×£ð@…ëQ¸á¿d;ßO�çqÀçû©ñÒM @�Âõ(\�Ú??5^ºI 8@X9´Èv>@¾Ÿ/ݬSÀ+‡ÙÎù¿…ëQ¸í?D‹lçûtÀ+‡ÙÎù¿…ëQ¸í??5^ºI 8@X9´Èv>@¾Ÿ/ݬSÀçû©ñÒM À�Âõ(\�Ú¿D‹lçûtÀj¼t“À®Gázî?V-²}7À¬Zd;)@X9´Èv¦PÀÙÎ÷Sã%ÀÃõ(\�ÂÕ¿\�Âõ(ÜpÀÙÎ÷Sã%ÀÃõ(\�ÂÕ¿V-²}7À¬Zd;)@X9´Èv¦PÀj¼t“@®Gázî¿\�Âõ(ÜpÀoƒÀÊ¡À!°rh‘íä?‰A`åÐB6@ÇK7‰A`@h‘í|?uRÀ¦›Ä °rÀþÔxé&1è¿×£p= »rÀ¦›Ä °rÀþÔxé&1迉A`åÐB6@ÇK7‰A`@h‘í|?uRÀoƒÀÊ¡@!°rh‘íä¿×£p= »rÀh‘í|?5¾?ð?–C‹lçKBÀ‹lçû©q@+‡ÙÎïWÀƒÀÊ¡EÀX9´Èv¾Ÿ?ÍÌÌÌÌ®wÀƒÀÊ¡EÀX9´Èv¾Ÿ?–C‹lçKBÀ‹lçû©q@+‡ÙÎïWÀh‘í|?5¾¿ð¿ÍÌÌÌÌ®wÀ/Ý$@‡ÙÎ÷SÃ?J +‡öDÀ+‡ÙÎ"@j¼t“¨QÀÁÊ¡E¶óå¿ÙÎ÷Sã¥ï?)\�ÂõvrÀÁÊ¡E¶óå¿ÙÎ÷Sã¥ï?J +‡öDÀ+‡ÙÎ"@j¼t“¨QÀ/Ý$À‡ÙÎ÷Sÿ)\�ÂõvrÀZd;ßO�Àj¼t“â?ã¥›Ä L@ ×£p=Š@j¼t“XNÀ�—nƒÀþ¿;ßO�—nê¿ÍÌÌÌÌLqÀ�—nƒÀþ¿;ßO�—nê¿ã¥›Ä L@ ×£p=Š@j¼t“XNÀZd;ßO�@j¼t“â¿ÍÌÌÌÌLqÀ¤p= ×£è?…ëQ¸…ï?Év¾Ÿ3@yé&1l!@�Âõ(\ÏQÀôýÔxé¦Àj¼t“Æ?+‡ÙÎ×qÀôýÔxé¦Àj¼t“Æ?Év¾Ÿ3@yé&1l!@�Âõ(\ÏQÀ¤p= ף迅ëQ¸…ï¿+‡ÙÎ×qÀ}?5^ºI@w¾Ÿ/Ýì?P�—nA@ /Ý$†#@P�—nXÀªñÒMbÀ/Ý$�•Û?X9´È xÀªñÒMbÀ/Ý$�•Û?P�—nA@ /Ý$†#@P�—nXÀ}?5^ºIÀw¾Ÿ/Ýì¿X9´È xÀš™™™™™ÀôýÔxé&é?‰A`åÐÂB@7‰A`åÐ@}?5^ºùVÀ¶óýÔxéÀ-²�ï§Æã¿!°rh‘uwÀ¶óýÔxéÀ-²�ï§Æã¿‰A`åÐÂB@7‰A`åÐ@}?5^ºùVÀš™™™™™@ôýÔxé&é¿!°rh‘uwÀªñÒMbà?-²�ï§Æï?�Âõ(\¯BÀ‘í|?5!@®Gáz¼TÀÛù~j¼tÀ`åÐ"Ûù¾?˜nƒÀJuÀÛù~j¼tÀ`åÐ"Ûù¾?�Âõ(\¯BÀ‘í|?5!@®Gáz¼TÀªñÒMbà¿-²�ï§Æï¿˜nƒÀJuÀ/Ý$�Àd;ßO�—Þ?…ëQ¸uLÀj¼t“D%@%�•C#WÀƒÀÊ¡E¶Àj¼t“쿃ÀÊ¡E xÀƒÀÊ¡E¶Àj¼t“ì¿…ëQ¸uLÀj¼t“D%@%�•C#WÀ/Ý$�@d;ßO�—Þ¿ƒÀÊ¡E xÀìQ¸…ë÷?ã¥›Ä °î?/Ý$Á@@V-²�¯%@ßO�—njRÀoƒÀÊ!À= ×£p=Ò?Év¾Ÿ7sÀoƒÀÊ!À= ×£p=Ò?/Ý$Á@@V-²�¯%@ßO�—njRÀìQ¸…ë÷¿ã¥›Ä °î¿Év¾Ÿ7sÀÛù~j¼t @^ºI +ã?ö(\�ÂAÀÛù~j¼´!@ ×£p=jTÀZd;ßO�ÀoƒÀÊ¡é?´Èv¾ŸÆtÀZd;ßO�ÀoƒÀÊ¡é?ö(\�ÂAÀÛù~j¼´!@ ×£p=jTÀÛù~j¼t À^ºI +ã¿´Èv¾ŸÆtÀžï§ÆK7À�•C‹lçë?F¶óýÔX:ÀV-²]&@�•C‹l'QÀü©ñÒMâÀ\�Âõ(\ß¿%�•CmqÀü©ñÒMâÀ\�Âõ(\ß¿F¶óýÔX:ÀV-²]&@�•C‹l'QÀžï§ÆK7@�•C‹lçë¿%�•CmqÀ+‡ÙNÀð§ÆK7‰Ñ? ×£p=*@@î|?5^º$@òÒMbQÀ+‡ÙÎ÷õ¿bX9´Èî¿P�—nåqÀ+‡ÙÎ÷õ¿bX9´Èî¿ ×£p=*@@î|?5^º$@òÒMbQÀ+‡ÙN@ð§ÆK7‰Ñ¿P�—nåqÀ�•C‹lçñ¿‹lçû©ñî?¤p= ×CA@-²�ï§F"@7‰A`åÐSÀ9´Èv¾ÀþÔxé&1пB`åÐ"»tÀ9´Èv¾ÀþÔxé&1п¤p= ×CA@-²�ï§F"@7‰A`åÐSÀ�•C‹lçñ?‹lçû©ñî¿B`åÐ"»tÀ +‡Ùæ?²�ï§ÆKï?mçû©ñrF@²�ï§ÆË@33333{QÀ+‡ÙÎ÷ ÀåÐ"Ûù~Ê?'1¬þrÀ+‡ÙÎ÷ ÀåÐ"Ûù~Ê?mçû©ñrF@²�ï§ÆË@33333{QÀ +‡Ù濲�ï§ÆKï¿'1¬þrÀd;ßO�—@Ø?åÐ"Ûù>MÀòÒMb˜!@Õxé&1àQÀÅ °rh‘ù¿D‹lçû©í?j¼t“bsÀÅ °rh‘ù¿D‹lçû©í?åÐ"Ûù>MÀòÒMb˜!@Õxé&1àQÀd;ßO�—ÀØ¿j¼t“bsÀö(\�Âõð¿´Èv¾Ÿï?j¼t“èJ@sh‘í|¿"@î|?5^ÒVÀôýÔxé¦ÀÁÊ¡E¶óÍ¿33333ÇwÀôýÔxé¦ÀÁÊ¡E¶óÍ¿j¼t“èJ@sh‘í|¿"@î|?5^ÒVÀö(\�Âõð?´Èv¾Ÿï¿33333ÇwÀú~j¼t“ˆ¿ð?¬Zd;¿F@R¸…ëQ @Ý$�•SPÀÏ÷S㥛Àú~j¼t“h¿F¶óýÔâqÀÏ÷S㥛Àú~j¼t“h¿¬Zd;¿F@R¸…ëQ @Ý$�•SPÀú~j¼t“ˆ?ð¿F¶óýÔâqÀV-2Àmçû©ñÒÕ?`åÐ"Û9NÀÍÌÌÌÌL)@´Èv¾ŸšMÀ…ëQ¸À®GáznƒÀ0qÀ…ëQ¸À®Gázî¿`åÐ"Û9NÀÍÌÌÌÌL)@´Èv¾ŸšMÀV-2@mçû©ñÒÕ¿˜nƒÀ0qÀ/Ý$�•@5^ºI Ó?ºI +'7ÀÓMbXù%@Ház®çYÀ‘í|?5^ø¿�Âõ(\�î?ƒÀÊ¡EÒxÀ‘í|?5^ø¿�Âõ(\�î?ºI +'7ÀÓMbXù%@Ház®çYÀ/Ý$�•À5^ºI Ó¿ƒÀÊ¡EÒxÀ333333À7‰A`åÐæ?V-²�¯DÀ¬Zd;&@¼t“~UÀã¥›Ä °À;ßO�—næ¿= ×£pvÀã¥›Ä °À;ßO�—næ¿V-²�¯DÀ¬Zd;&@¼t“~UÀ333333@7‰A`åÐæ¿= ×£pvÀd;ßO�— ÀoƒÀÊ¡Õ?D‹lçû‰JÀ°rh‘í< @Ház®×UÀ²�ï§ÆKõ¿é&1¬î¿}?5^ºÁvÀ²�ï§ÆKõ¿é&1¬î¿D‹lçû‰JÀ°rh‘í< @Ház®×UÀd;ßO�— @oƒÀʡտ}?5^ºÁvÀÁÊ¡E¶óÀj¼t“â?X9´È†GÀìQ¸…++@°rh‘íLVÀú~j¼t“ À;ßO�—nê¿F¶óýÔÔvÀú~j¼t“ À;ßO�—nê¿X9´È†GÀìQ¸…++@°rh‘íLVÀÁÊ¡E¶ó@j¼t“â¿F¶óýÔÔvÀV-²�×?¬Zd;ßï?Ñ"Ûù~J6À…ëQ¸^ @X9´Èv6YÀÅ °rh‘À+‡Ùη?Év¾Ÿ!xÀÅ °rh‘À+‡Ùη?Ñ"Ûù~J6À…ëQ¸^ @X9´Èv6YÀV-²�׿¬Zd;ßï¿Év¾Ÿ!xÀ-²�ï§Æ@-²�ï§ÆÓ?B`åÐ"[JÀbX9´È*@žï§ÆKOXÀáz®Gáþ¿;ßO�—nî?�•C‹lëxÀáz®Gáþ¿;ßO�—nî?B`åÐ"[JÀbX9´È*@žï§ÆKOXÀ-²�ï§ÆÀ-²�ï§ÆÓ¿�•C‹lëxÀ1¬Zdÿ¿åÐ"Ûù~ê?ÙÎ÷Sãe8ÀÓMbX9@¬Zd;wYÀþÔxé&1ÀÁÊ¡E¶óá¿ÙÎ÷S{xÀþÔxé&1ÀÁÊ¡E¶óá¿ÙÎ÷Sãe8ÀÓMbX9@¬Zd;wYÀ1¬Zdÿ?åÐ"Ûù~ê¿ÙÎ÷S{xÀ¸…ëQ8@j¼t“è?d;ßO�÷;@²�ï§Æ ,@áz®GyVÀžï§ÆK·Àu“Vå?Zd;ßO™vÀžï§ÆK·Àu“Vå?d;ßO�÷;@²�ï§Æ ,@áz®GyVÀ¸…ëQ8Àj¼t“è¿Zd;ßO™vÀR¸…ëQ @žï§ÆK7é?sh‘í|:@¤p= ×£(@oƒÀÊñSÀ…ëQ¸ÀƒÀÊ¡E¶ã?+‡ÙÎmtÀ…ëQ¸ÀƒÀÊ¡E¶ã?sh‘í|:@¤p= ×£(@oƒÀÊñSÀR¸…ëQ Àžï§ÆK7é¿+‡ÙÎmtÀ–C‹lçû @¨ÆK7‰Aè?¶óýÔx 8À¾Ÿ/Ý$&@T㥛Ä�RÀ�—nƒ@ÀL7‰A`åä?�Âõ(\qrÀ�—nƒ@ÀL7‰A`åä?¶óýÔx 8À¾Ÿ/Ý$&@T㥛Ä�RÀ–C‹lçû À¨ÆK7‰Aè¿�Âõ(\qrÀÅ °rh‘ÀƒÀÊ¡Eæ?¬Zd›:@ÁÊ¡E¶³&@P�—n“UÀÏ÷S㥛À`åÐ"Ûùæ¿}?5^ºÓuÀÏ÷S㥛À`åÐ"Ûù濬Zd›:@ÁÊ¡E¶³&@P�—n“UÀÅ °rh‘@ƒÀÊ¡Eæ¿}?5^ºÓuÀRØZd;ßO @ú~j¼t“ˆ?œÄ °r(F@u“VŽ&@bX9´(NÀ¬Zd;¯¿ð?-²�ï‹pÀ¬Zd;¯¿ð?œÄ °r(F@u“VŽ&@bX9´(NÀZd;ßO Àú~j¼t“ˆ¿-²�ï‹pÀ^ºI +û¿V-²í?Ý$�•ã=@¢E¶óýÔ"@ôýÔxéfPÀ�•C‹ìÀ+‡ÙÎ׿‰A`åÐ>qÀ�•C‹ìÀ+‡ÙÎ׿Ý$�•ã=@¢E¶óýÔ"@ôýÔxéfPÀ^ºI +û?V-²í¿‰A`åÐ>qÀmçû©ñÒ@j¼t“ì?Õxé&1ˆFÀ�Âõ(\O$@-²�ïwXÀƒÀÊ¡EÀd;ßO�—Þ?¤p= שxÀƒÀÊ¡EÀd;ßO�—Þ?Õxé&1ˆFÀ�Âõ(\O$@-²�ïwXÀmçû©ñÒÀj¼t“쿤p= שxÀ…ëQ¸ @‹lçû©ñâ?5^ºI B7@L7‰A`¥"@)\�ÂõøXÀ‘í|?5^À˜nƒÀÊé?×£p= )xÀ‘í|?5^À˜nƒÀÊé?5^ºI B7@L7‰A`¥"@)\�ÂõøXÀ…ëQ¸ À‹lçû©ñâ¿×£p= )xÀ!°rh‘í À\�Âõ(\ë? +‡ù>@%�•CË*@˜nƒÀÒUÀü©ñÒMbÀú~j¼t“࿇ÙÎ÷GvÀü©ñÒMbÀú~j¼t“à¿ +‡ù>@%�•CË*@˜nƒÀÒUÀ!°rh‘í @\�Âõ(\뿇ÙÎ÷GvÀTã¥›Ä À�—nƒÀæ?¼t“61@B`åÐ"Û&@ÇK7‰AUÀ{®GázÀåÐ"Ûù~濬ZdÓtÀ{®GázÀåÐ"Ûù~濼t“61@B`åÐ"Û&@ÇK7‰AUÀTã¥›Ä @�—nƒÀ濬ZdÓtÀôýÔxé&÷?‹lçû©ñî?¨ÆK7‰BÀ'1¬š'@¨ÆK7‰±NÀé&1¬ÀþÔxé&1Ð?ú~j¼t�pÀé&1¬ÀþÔxé&1Ð?¨ÆK7‰BÀ'1¬š'@¨ÆK7‰±NÀôýÔxé&÷¿‹lçû©ñî¿ú~j¼t�pÀœÄ °rhÀßO�—nÓ?çû©ñÒÍ-@)\�Âõè#@bX9´�RÀö(\�Âõö¿�Âõ(\�î¿‘í|?5hrÀö(\�Âõö¿�Âõ(\�î¿çû©ñÒÍ-@)\�Âõè#@bX9´�RÀœÄ °rh@ßO�—nÓ¿‘í|?5hrÀ;ßO�—nÀ�Âõ(\�â?œÄ °r(:ÀV-²�/,@D‹lçû‰WÀP�—nƒÀ®Gázê¿�Âõ(\ávÀP�—nƒÀ®Gázê¿œÄ °r(:ÀV-²�/,@D‹lçû‰WÀ;ßO�—n@�Âõ(\�â¿�Âõ(\ávÀ‹lçû©ñ@çû©ñÒMæ?Ñ"Ûù~Š4@Tã¥›Ä '@Ñ"Ûù~QÀ´Èv¾ŸÀ‹lçû©ñæ?L7‰A`-qÀ´Èv¾ŸÀ‹lçû©ñæ?Ñ"Ûù~Š4@Tã¥›Ä '@Ñ"Ûù~QÀ‹lçû©ñÀçû©ñÒMæ¿L7‰A`-qÀžï§ÆK7@×£p= ×Û?åÐ"Ûù.MÀ¾Ÿ/Ýä$@…ëQ¸FPÀÏ÷S㥛ÀÍÌÌÌÌÌì?5^ºI rÀÏ÷S㥛ÀÍÌÌÌÌÌì?åÐ"Ûù.MÀ¾Ÿ/Ýä$@…ëQ¸FPÀžï§ÆK7À×£p= ×Û¿5^ºI rÀ7‰A`åÐ À!°rh‘íä?é&1¬ìNÀyé&1¬#@V-²�÷QÀ!°rh‘íÀþÔxé&1迬Zd»sÀ!°rh‘íÀþÔxé&1è¿é&1¬ìNÀyé&1¬#@V-²�÷QÀ7‰A`åÐ @!°rh‘í俬Zd»sÀw¾Ÿ/Ý@¬Zd;Ï?�•C‹lgBÀ¼t“$@¶óýÔx‰WÀö(\�Âõò¿ ×£p= ï?-²�ï§\wÀö(\�Âõò¿ ×£p= ï?�•C‹lgBÀ¼t“$@¶óýÔx‰WÀw¾Ÿ/ÝÀ¬Zd;Ï¿-²�ï§\wÀffffff@òÒMbXá?¶óýÔxD@Év¾Ÿ/&@ßO�—nSÀ¦›Ä °rÀáz®Gáê?çû©ñÒUtÀ¦›Ä °rÀáz®Gáê?¶óýÔxD@Év¾Ÿ/&@ßO�—nSÀffffffÀòÒMbXá¿çû©ñÒUtÀ5^ºI @ßO�—në?…ëQ¸^A@NbX94@Ház®çRÀÑ"Ûù~j Àu“Vá?`åÐ"ÛÑsÀÑ"Ûù~j Àu“Vá?…ëQ¸^A@NbX94@Ház®çRÀ5^ºI ÀßO�—në¿`åÐ"ÛÑsÀð§ÆK7‰À…ëQ¸…ç?sh‘í|OJÀ!°rh‘m@¸…ëQTÀ¬Zd;Àî|?5^ºå¿h‘í|?auÀ¬Zd;Àî|?5^ºå¿sh‘í|OJÀ!°rh‘m@¸…ëQTÀð§ÆK7‰@…ëQ¸…ç¿h‘í|?auÀ= ×£p=â?+‡ÙÎï?Ûù~j¼$B@“Ví&@#Ûù~j UÀ-²�ï§FÀ1¬Zd»?oƒÀÊïuÀ-²�ï§FÀ1¬Zd»?Ûù~j¼$B@“Ví&@#Ûù~j UÀ= ×£p=â¿+‡ÙÎï¿oƒÀÊïuÀ¸…ëQ8ÀF¶óýÔxÙ?q= ×£ÀI@V-r&@Õxé&1èMÀ®Gáz®ÀòÒMbXí¿oƒÀÊÍpÀ®Gáz®ÀòÒMbXí¿q= ×£ÀI@V-r&@Õxé&1èMÀ¸…ëQ8@F¶óýÔxÙ¿oƒÀÊÍpÀáz®GáÀ®Gázî?T㥛ĠIÀffffff*@ÙÎ÷SãMPÀôýÔxé&ÀÙÎ÷SãÕ¿J +‡èqÀôýÔxé&ÀÙÎ÷SãÕ¿T㥛ĠIÀffffff*@ÙÎ÷SãMPÀáz®Gá@®Gázî¿J +‡èqÀ²�ï§ÆË@‘í|?5^º?X9´ÈvnGÀßO�—nR%@é&1¬tWÀ¦›Ä °rà¿×£p= ×ï?ö(\�¹wÀ¦›Ä °rà¿×£p= ×ï?X9´ÈvnGÀßO�—nR%@é&1¬tWÀ²�ï§ÆËÀ‘í|?5^º¿ö(\�¹wÀ7‰A`åP@-²�ï§Æ?ôýÔxéf7@yé&1,"@w¾Ÿ/½WÀË¡E¶óýè¿°rh‘í|ï?žï§ÆKOwÀË¡E¶óýè¿°rh‘í|ï?ôýÔxéf7@yé&1,"@w¾Ÿ/½WÀ7‰A`åPÀ-²�ï§Æ¿žï§ÆKOwÀ´Èv¾Ÿ@ƒÀÊ¡Eê?j¼t“4EÀR¸…ë#@“VeTÀZd;ßOÀƒÀÊ¡Eâ?V-²�5uÀZd;ßOÀƒÀÊ¡Eâ?j¼t“4EÀR¸…ë#@“VeTÀ´Èv¾ŸÀƒÀÊ¡Eê¿V-²�5uÀé&1¬@D‹lçû©å?…ëQ¸¾7@mçû©ñÒ%@ìQ¸…3QÀV-²� ÀZd;ßO�ç?NbX9žqÀV-²� ÀZd;ßO�ç?…ëQ¸¾7@mçû©ñÒ%@ìQ¸…3QÀé&1¬ÀD‹lçû©å¿NbX9žqÀªñÒMb�@P�—nƒÀ?Év¾Ÿ¯6@NbX9t&@!°rh‘-UÀ‘í|?5^æ¿X9´Èv¾ï?'1¬JuÀ‘í|?5^æ¿X9´Èv¾ï?Év¾Ÿ¯6@NbX9t&@!°rh‘-UÀªñÒMb�ÀP�—nƒÀ¿'1¬JuÀ¸…ëQ¸@mçû©ñÒå?^ºI ‹;@q= ×£p!@ö(\�Â…RÀ /Ý$À�•C‹lç?ü©ñÒMsÀ /Ý$À�•C‹lç?^ºI ‹;@q= ×£p!@ö(\�Â…RÀ¸…ëQ¸Àmçû©ñÒå¿ü©ñÒMsÀ…ëQ¸@¼t“Vâ?;ßO�—ÞIÀ^ºI +*@{®GáŠQÀ+‡ÙÎ÷ À= ×£p=ê?L7‰A`ÉrÀ+‡ÙÎ÷ À= ×£p=ê?;ßO�—ÞIÀ^ºI +*@{®GáŠQÀ…ëQ¸À¼t“Vâ¿L7‰A`ÉrÀË¡E¶ó}@¢E¶óýÔÈ?òÒMb(O@ƒÀÊ¡Ev#@òÒMbHLÀÉv¾Ÿ/í¿1¬Zdï?\�Âõ(tpÀÉv¾Ÿ/í¿1¬Zdï?òÒMb(O@ƒÀÊ¡Ev#@òÒMbHLÀË¡E¶ó}À¢E¶óýÔÈ¿\�Âõ(tpÀ-²�ï§Æ @J +‡©?mçû©ñNÀÅ °rh@Zd;ßOíUÀw¾Ÿ/ÝÄ¿+‡ÙÎ÷ï?‰A`åÐ*wÀw¾Ÿ/ÝÄ¿+‡ÙÎ÷ï?mçû©ñNÀÅ °rh@Zd;ßOíUÀ-²�ï§Æ ÀJ +‡©¿‰A`åÐ*wÀË¡E¶ó}@ÍÌÌÌÌÌà?Õxé&1H:Àj¼t“Ä$@fffff†OÀ\�Âõ(\À¬Zd;ë?oƒÀÊ[pÀ\�Âõ(\À¬Zd;ë?Õxé&1H:Àj¼t“Ä$@fffff†OÀË¡E¶ó}ÀÍÌÌÌÌÌà¿oƒÀÊ[pÀ+‡ÙÎã?Ûù~j¼tï?1¬Zd8@�—nƒ@@øS㥛ÜQÀ%�•C‹ À�•C‹lÇ?Ë¡E¶ó1rÀ%�•C‹ À�•C‹lÇ?1¬Zd8@�—nƒ@@øS㥛ÜQÀ+‡ÙÎã¿Ûù~j¼tï¿Ë¡E¶ó1rÀ+‡ÙNÀL7‰A`åÐ?‡ÙÎ÷35ÀÛù~j¼t!@ƒÀÊ¡eQÀ×£p= ×ñ¿áz®Gáî¿^ºI GqÀ×£p= ×ñ¿áz®GáÙÎ÷35ÀÛù~j¼t!@ƒÀÊ¡eQÀ+‡ÙN@L7‰A`åп^ºI GqÀºI +‡À ×£p= Ç?'1¬zHÀ�•C‹lg"@‘í|?5ÖSÀî|?5^ºé¿°rh‘í|ï¿`åÐ"ÛuÀî|?5^ºé¿°rh‘í|ï¿'1¬zHÀ�•C‹lg"@‘í|?5ÖSÀºI +‡@ ×£p= Ç¿`åÐ"ÛuÀú~j¼t“@åÐ"Ûù~Ò?Õxé&1h1@ö(\�Âõ"@žï§ÆKßSÀ¬Zd;õ¿9´Èv¾Ÿî?Ï÷Sã¥çsÀ¬Zd;õ¿9´Èv¾Ÿî?Õxé&1h1@ö(\�Âõ"@žï§ÆKßSÀú~j¼t“ÀåÐ"Ûù~Ò¿Ï÷Sã¥çsÀ˜nƒÀÊ@oƒÀÊ¡é?®Gáz¾NÀÑ"Ûù~ê!@Év¾ŸïVÀbX9´È À^ºI +ã?®GázxÀbX9´È À^ºI +ã?®Gáz¾NÀÑ"Ûù~ê!@Év¾ŸïVÀ˜nƒÀÊÀoƒÀʡ鿮GázxÀ7‰A`åPÀ“V-Ú?T㥛Ä@<@š™™™™Ù'@5^ºI ÚQÀ333333Àžï§ÆK7í¿brÀ333333Àžï§ÆK7í¿T㥛Ä@<@š™™™™Ù'@5^ºI ÚQÀ7‰A`åP@“V-Ú¿brÀyé&1,@é&1¬â?Ñ"Ûù~ŠC@Ãõ(\�Â&@çû©ñÒ�WÀ‹lçû©ñÀffffffê?¢E¶óýìwÀ‹lçû©ñÀffffffê?Ñ"Ûù~ŠC@Ãõ(\�Â&@çû©ñÒ�WÀyé&1,Àé&1¬â¿¢E¶óýìwÀªñÒMb @ö(\�Âõà?R¸…ëCÀ¶óýÔx© @�•C‹\OÀ^ºI +À‰A`åÐ"ë?…ëQ¸çpÀ^ºI +À‰A`åÐ"ë?R¸…ëCÀ¶óýÔx© @�•C‹\OÀªñÒMb Àö(\�Âõà¿…ëQ¸çpÀj¼t“@w¾Ÿ/Ýè?+‡ÙÎ8ÀÙÎ÷Sã@}?5^ºaVÀyé&1¬À)\�Âõ(ä?Ûù~j¼ÖuÀyé&1¬À)\�Âõ(ä?+‡ÙÎ8ÀÙÎ÷Sã@}?5^ºaVÀj¼t“Àw¾Ÿ/Ýè¿Ûù~j¼ÖuÀ�Âõ(\Àü©ñÒMb€?Õxé&1h:@ƒÀÊ¡E¶$@�•C‹lÿVÀÛù~j¼t£¿ð¿ ×£p=êvÀÛù~j¼t£¿ð¿Õxé&1h:@ƒÀÊ¡E¶$@�•C‹lÿVÀ�Âõ(\@ü©ñÒMb€¿ ×£p=êvÀÁÊ¡E¶ó @yé&1¬Œ?T㥛Ä`;@Tã¥›Ä @Zd;ßOEQÀ9´Èv¾Ÿª¿ð?�•C‹l×qÀ9´Èv¾Ÿª¿ð?T㥛Ä`;@Tã¥›Ä @Zd;ßOEQÀÁÊ¡E¶ó Àyé&1¬Œ¿�•C‹l×qÀ´Èv¾Ÿš@D‹lçû©±?…ëQ¸uM@�•C‹l*@?5^ºI$UÀ‰A`åÐ"Û¿V-²�ïï?d;ßO�¿vÀ‰A`åÐ"Û¿V-²�ïï?…ëQ¸uM@�•C‹l*@?5^ºI$UÀ´Èv¾ŸšÀD‹lçû©±¿d;ßO�¿vÀd°¼t“VÀ+‡ÙÎ÷³?V-²I@yé&1ì @ÁÊ¡E¶aÀ{®GázÔ¿�•C‹lçᅢÀÊ¡K€À{®GázÔ¿�•C‹lçï¿V-²I@yé&1ì @ÁÊ¡E¶aÀ¼t“V@+‡ÙÎ÷³¿ƒÀÊ¡K€Àð§ÆK7‰ @à?h‘í|?­P@øS㥛!@V-²}^ÀåÐ"Ûù~ÀƒÀÊ¡E¶ë?7‰A`å„~ÀåÐ"Ûù~ÀƒÀÊ¡E¶ë?h‘í|?­P@øS㥛!@V-²}^Àð§ÆK7‰ Àà¿7‰A`å„~À¬Zd;_@Ð?7‰A`å9@)\�Âõ¨$@¤p= ×3\À–C‹lçûó¿`åÐ"Ûùî?}?5^º§zÀ–C‹lçûó¿`åÐ"Ûùî?7‰A`å9@)\�Âõ¨$@¤p= ×3\À¬Zd;_Àп}?5^º§zÀ1¬Zd@¨ÆK7‰Aè?òÒMb(F@¨ÆK7‰�"@33333«^À)\�Âõ( ÀL7‰A`åä?ßO�—n˜}À)\�Âõ( ÀL7‰A`åä?òÒMb(F@¨ÆK7‰�"@33333«^À1¬ZdÀ¨ÆK7‰Aè¿ßO�—n˜}À�—nƒÀö¿¼t“Vî?Zd;ß/2À-²�ïg"@ú~j¼tƒ]À1¬ZäÀÑ"Ûù~jÔ¿–C‹lç­{À1¬ZäÀÑ"Ûù~jÔ¿Zd;ß/2À-²�ïg"@ú~j¼tƒ]À�—nƒÀö?¼t“Vî¿–C‹lç­{ÀbX9´È À¶óýÔxéæ?…ëQ¸µGÀ²�ï§Æ‹$@Ï÷Sã¥+`À¦›Ä °r À¼t“Væ¿Ï÷Sã¥)À¦›Ä °r À¼t“Væ¿…ëQ¸µGÀ²�ï§Æ‹$@Ï÷Sã¥+`ÀbX9´È @¶óýÔxéæ¿Ï÷Sã¥)À°rh‘íü@¦›Ä °rØ?}?5^º©?@ÙÎ÷Sã¥*@þÔxé&bÀË¡E¶óýÀÅ °rh‘í?ã¥›Ä Ã€ÀË¡E¶óýÀÅ °rh‘í?}?5^º©?@ÙÎ÷Sã¥*@þÔxé&bÀ°rh‘íüÀ¦›Ä °rØ¿ã¥›Ä Ã€ÀÝ$�•Cû¿¾Ÿ/Ý$î?®GáznBÀ�•C‹¬%@%�•CÛ^À?5^ºI ÀÅ °rh‘Õ¿F¶óýÔ¤}À?5^ºI ÀÅ °rh‘Õ¿®GáznBÀ�•C‹¬%@%�•CÛ^ÀÝ$�•Cû?¾Ÿ/Ý$î¿F¶óýÔ¤}À-²�ï§Æ @‰A`åÐ"Û?!°rh‘]NÀX9´Èv¾@7‰A`åà_ÀßO�—nù¿Ë¡E¶óýì?P�—nÓÀßO�—nù¿Ë¡E¶óýì?!°rh‘]NÀX9´Èv¾@7‰A`åà_À-²�ï§Æ À‰A`åÐ"Û¿P�—nÓÀ¬Zd;Àj¼t“Ô?%�•C[CÀq= ×£p @¢E¶óýtYÀô¿‘í|?5^î¿žï§ÆKUyÀô¿‘í|?5^î¿%�•C[CÀq= ×£p @¢E¶óýtYÀ¬Zd;@j¼t“Ô¿žï§ÆKUyÀøS㥛ÄÀÑ"Ûù~jÌ?ÍÌÌÌÌüA@“V­@ÁÊ¡E¶c`À!°rh‘íì¿333333ï¿V-Ä~À!°rh‘íì¿333333ï¿ÍÌÌÌÌüA@“V­@ÁÊ¡E¶c`ÀøS㥛Ä@Ñ"Ûù~jÌ¿V-Ä~À¬Zd;À¦›Ä °rè?‰A`åТA@�•C‹ì)@®GázÆ`À{®GázÀ¤p= ×£ä¿ßO�—nZÀ{®GázÀ¤p= ף俉A`åТA@�•C‹ì)@®GázÆ`À¬Zd;@¦›Ä °rè¿ßO�—nZÀœÄ °rh@�•C‹lã?žï§ÆK·6À¶óýÔxi$@\�Âõ(D_À5^ºI ÀœÄ °rhé?…ëQ¸p}À5^ºI ÀœÄ °rhé?žï§ÆK·6À¶óýÔxi$@\�Âõ(D_ÀœÄ °rhÀ�•C‹lã¿…ëQ¸p}ÀÝ$�•C÷¿ã¥›Ä °î?žï§ÆKÇKÀœÄ °r(%@)\�Âõ�XÀÙÎ÷Sã¥À“V-Ò¿w¾Ÿ/AyÀÙÎ÷Sã¥À“V-Ò¿žï§ÆKÇKÀœÄ °r(%@)\�Âõ�XÀÝ$�•C÷?ã¥›Ä °î¿w¾Ÿ/AyÀþÔxé&1À¬Zd;ã?V-²�8À¶óýÔxé$@ +‡©]ÀF¶óýÔxÀÅ °rh‘é¿= ×£pE|ÀF¶óýÔxÀÅ °rh‘é¿V-²�8À¶óýÔxé$@ +‡©]ÀþÔxé&1@¬Zd;ã¿= ×£pE|À +‡Y@X9´Èv¾Ï?q= ×£Ð3ÀôýÔxéf%@oƒÀÊQ[ÀB`åÐ"Ûó¿5^ºI ï?ð§ÆK7ñyÀB`åÐ"Ûó¿5^ºI ï?q= ×£Ð3ÀôýÔxéf%@oƒÀÊQ[À +‡YÀX9´Èv¾Ï¿ð§ÆK7ñyÀV-²�Ï¿+‡ÙÎ÷ï?sh‘í|ŸAÀôýÔxé&$@¤p= ×Ç`ÀË¡E¶ó}Àé&1¬ª¿¤p= ןÀË¡E¶ó}Àé&1¬ª¿sh‘í|ŸAÀôýÔxé&$@¤p= ×Ç`ÀV-²�Ï?+‡ÙÎ÷¦p= ןÀªñÒMbô¿5^ºI ï?{®Gáš4ÀJ +‡Ö$@#Ûù~jHbÀ?5^ºIŒÀ¬Zd;ßÏ¿¤p= ×Ì€À?5^ºIŒÀ¬Zd;ßÏ¿{®Gáš4ÀJ +‡Ö$@#Ûù~jHbÀªñÒMbô?5^ºI ¦p= ×Ì€Àö(\�Âu@Év¾Ÿ/Í?mçû©ñ¢N@¤p= ×£$@bX9´laÀ= ×£p=ò¿^ºI +ï?Ház®ÿ€À= ×£p=ò¿^ºI +ï?mçû©ñ¢N@¤p= ×£$@bX9´laÀö(\�ÂuÀÉv¾Ÿ/Í¿Ház®ÿ€À /Ý$À¤p= ×£°?�•C‹l·M@˜nƒÀÊ&@d;ßO�Ÿ_ÀbX9´ÈÖ¿V-²�ïï¿áz®GÀbX9´ÈÖ¿V-²�ïï¿�•C‹l·M@˜nƒÀÊ&@d;ßO�Ÿ_À /Ý$@¤p= ×£°¿áz®GÀ\�Âõ(\ @j¼t“Ö?ÁÊ¡E¶Ó0ÀÃõ(\�B@�•C‹@`ÀÏ÷S㥛ò¿?5^ºI î?…ëQ¸~ÀÏ÷S㥛ò¿?5^ºI î?ÁÊ¡E¶Ó0ÀÃõ(\�B@�•C‹@`À\�Âõ(\ Àj¼t“Ö¿…ëQ¸~ÀßO�—nÓ?V-²�ïï?ßO�—n1Àã¥›Ä ð!@V-²�Ë`À¢E¶óýTÀD‹lçû©±?yé&1ò~À¢E¶óýTÀD‹lçû©±?ßO�—n1Àã¥›Ä ð!@V-²�Ë`ÀßO�—nÓ¿V-²�ïï¿yé&1ò~ÀÃõ(\� @q= ×£pé?ßO�—n23À�•C‹lg)@ªñÒMb,aÀ'1¬ÚÀ�•C‹lã?Ãõ(\�¢À'1¬ÚÀ�•C‹lã?ßO�—n23À�•C‹lg)@ªñÒMb,aÀÃõ(\� Àq= ×£pé¿Ãõ(\�¢À¬Zd;ß÷?ºI +‡î?ü©ñÒM3ÀòÒMb˜$@çû©ñÒaÀÕxé&1À‰A`åÐ"Ó?u“VZÀÕxé&1À‰A`åÐ"Ó?ü©ñÒM3ÀòÒMb˜$@çû©ñÒaÀ¬Zd;ß÷¿ºI +‡î¿u“VZÀHáz®G@w¾Ÿ/Ýä?q= ×£0@@w¾Ÿ/Ý@´Èv¾Ÿ:^À ×£p= À¨ÆK7‰Aè?ƒÀÊ¡E¶|À ×£p= À¨ÆK7‰Aè?q= ×£0@@w¾Ÿ/Ý@´Èv¾Ÿ:^ÀHáz®GÀw¾Ÿ/Ý促ÀÊ¡E¶|ÀV-2@;ßO�—nÚ?¨ÆK7‰8@ÇK7‰A $@ßO�—n aÀ°rh‘í|ÀôýÔxé&í?î|?5^XÀ°rh‘í|ÀôýÔxé&í?¨ÆK7‰8@ÇK7‰A $@ßO�—n aÀV-2À;ßO�—nÚ¿î|?5^XÀ9´Èv¾ÀÑ"Ûù~jÜ?7‰A`åpEÀ–C‹lç»#@;ßO�—V]À+‡ÙÎ÷Àyé&1¬ì¿Ï÷Sã¥ï|À+‡ÙÎ÷Àyé&1¬ì¿7‰A`åpEÀ–C‹lç»#@;ßO�—V]À9´Èv¾@Ñ"Ûù~jÜ¿Ï÷Sã¥ï|À¢E¶óýTÀ´Èv¾Ÿ×?ÇK7‰A A@-²�ï§)@š™™™™A]ÀƒÀÊ¡EÀB`åÐ"Ûí¿yé&1 |ÀƒÀÊ¡EÀB`åÐ"Ûí¿ÇK7‰A A@-²�ï§)@š™™™™A]À¢E¶óýT@´Èv¾Ÿ׿yé&1 |Àé&1¬ÀR¸…ëQÐ?-²�ï§vL@-²�ï§F@×£p= /`À-²�ï§Æï¿‹lçû©ñî¿X9´È†À-²�ï§Æï¿‹lçû©ñî¿-²�ï§vL@-²�ï§F@×£p= /`Àé&1¬@R¸…ëQпX9´È†À®Gáz®À�•C‹lç?øS㥛Ä:@¸…ëQ8*@T㥛Ä�`ÀœÄ °rèÀmçû©ñÒå¿ßO�—n°~ÀœÄ °rèÀmçû©ñÒå¿øS㥛Ä:@¸…ëQ8*@T㥛Ä�`À®Gáz®@�•C‹lç¿ßO�—n°~À'1¬Z @…ëQ¸Ý?ú~j¼tóE@Év¾Ÿ¯@Év¾ŸïYÀV-²�ïù¿{®Gázì?é&1¬®yÀV-²�ïù¿{®Gázì?ú~j¼tóE@Év¾Ÿ¯@Év¾ŸïYÀ'1¬Z À…ëQ¸Ý¿é&1¬®yÀD‹lçû)À�—nƒÀÒ?�—nƒðH@V-²$@5^ºI :_ÀÛù~j¼t÷¿d;ßO�—î¿+‡ÙÎ7~ÀÛù~j¼t÷¿d;ßO�—î¿�—nƒðH@V-²$@5^ºI :_ÀD‹lçû)@�—nƒÀÒ¿+‡ÙÎ7~À5^ºI @²�ï§ÆK·?R¸…ë¡DÀš™™™™™ @²�ï§Æ_`À°rh‘í|׿¬Zd;ßï?°rh‘í2À°rh‘í|׿¬Zd;ßï?R¸…ë¡DÀš™™™™™ @²�ï§Æ_`À5^ºI À²�ï§ÆK·¿°rh‘í2ÀÇK7‰AàÀ°rh‘í|¿?T㥛Ä@EÀ‘í|?5ž'@%�•CÃ`ÀoƒÀÊ¡å¿X9´Èv¾ï¿¼t“€ÀoƒÀÊ¡å¿X9´Èv¾ï¿T㥛Ä@EÀ‘í|?5ž'@%�•CÃ`ÀÇK7‰Aà@°rh‘í|¿¿¼t“€ÀÅ °rh‘ÀR¸…ëQÈ?-²�ï—P@B`åÐ"[%@F¶óýÔ8`À¼t“Vî¿�•C‹lï¿+‡Ù€À¼t“Vî¿�•C‹lï¿-²�ï—P@B`åÐ"[%@F¶óýÔ8`ÀÅ °rh‘@R¸…ëQÈ¿+‡Ù€ÀÅ °rh‘À�•C‹lß?î|?5^êAÀÅ °rhÑ$@åÐ"Ûù^ZÀbX9´ÈÀ¬Zd;ß뿤p= ×zÀbX9´ÈÀ¬Zd;ßë¿î|?5^êAÀÅ °rhÑ$@åÐ"Ûù^ZÀÅ °rh‘@�•C‹lß¿¤p= ×zÀî|?5^ºÀìQ¸…ëá?ü©ñÒMBF@‡ÙÎ÷S@-²�ï?`ÀÕxé&1ü¿åÐ"Ûù~ê¿;ßO�—þ~ÀÕxé&1ü¿åÐ"Ûù~ê¿ü©ñÒMBF@‡ÙÎ÷S@-²�ï?`Àî|?5^º@ìQ¸…ëá¿;ßO�—þ~À\�Âõ(Ü@yé&1¬Ü?ìQ¸… <@òÒMb˜,@/Ý$�õ_À�•C‹lçÀÏ÷S㥛ì?�Âõ(\Û}À�•C‹lçÀÏ÷S㥛ì?ìQ¸… <@òÒMb˜,@/Ý$�õ_À\�Âõ(ÜÀyé&1¬Ü¿�Âõ(\Û}ÀÝ$�•C@ã¥›Ä °ê?¶óýÔx©3ÀX9´Èö"@ +‡ÅaÀoƒÀÊ¡ÀD‹lçû©á?°rh‘íW€ÀoƒÀÊ¡ÀD‹lçû©á?¶óýÔx©3ÀX9´Èö"@ +‡ÅaÀÝ$�•CÀã¥›Ä °ê¿°rh‘íW€À9´Èv¾Ÿ@yé&1¬à?'1¬z4ÀTã¥›Ä #@T㥛Ä|bÀ²�ï§ÆKÀ‡ÙÎ÷Së?�—nƒð€À²�ï§ÆKÀ‡ÙÎ÷Së?'1¬z4ÀTã¥›Ä #@T㥛Ä|bÀ9´Èv¾ŸÀyé&1¬à¿�—nƒð€À¶óýÔxiÀºI +‡â?žï§ÆK‡HÀZd;ßO &@åÐ"Ûùf`À#Ûù~j¼À®Gázê¿+‡ÙöÀ#Ûù~j¼À®Gázê¿žï§ÆK‡HÀZd;ßO &@åÐ"Ûùf`À¶óýÔxi@ºI +‡â¿+‡ÙöÀ¦›Ä °rÀþÔxé&1è?/Ý$�C@¨ÆK7‰�"@ /Ý$[Àé&1¬ À!°rh‘íä¿V-hzÀé&1¬ À!°rh‘íä¿/Ý$�C@¨ÆK7‰�"@ /Ý$[À¦›Ä °r@þÔxé&1è¿V-hzÀ¢E¶óýÔ@Ë¡E¶óýè?sh‘í|Ÿ:À333333 @NbX9È`Àj¼t“ Àä?ú~j¼tGÀj¼t“ Àä?sh‘í|Ÿ:À333333 @NbX9È`À¢E¶óýÔÀË¡E¶óýè¿ú~j¼tGÀî|?5^ºÀyé&1¬Ô?mçû©ñBJÀö(\�µ'@ +‡[ÀD‹lçû©ý¿ƒÀÊ¡Eî¿“V_{ÀD‹lçû©ý¿ƒÀÊ¡Eî¿mçû©ñBJÀö(\�µ'@ +‡[Àî|?5^º@yé&1¬Ô¿“V_{À×£p= W@Å °rh‘Ý?Tã¥›Ä JÀP�—nƒ&@d;ßO��[À…ëQ¸Àü©ñÒMbì?�•C‹lÁ{À…ëQ¸Àü©ñÒMbì?Tã¥›Ä JÀP�—nƒ&@d;ßO��[À×£p= WÀÅ °rh‘Ý¿�•C‹lÁ{À‘í|?5^@B`åÐ"Ûå?R¸…ë¡IÀq= ×£p@òÒMbPZÀ)\�Âõ(À1¬Zdç?\�Âõ(ºzÀ)\�Âõ(À1¬Zdç?R¸…ë¡IÀq= ×£p@òÒMbPZÀ‘í|?5^ÀB`åÐ"Ûå¿\�Âõ(ºzÀV-²�ÿ?ÙÎ÷Sãí?u“Vî>@×£p= ×&@é&1¬ ZÀ)\�Âõ¨À +‡ÙÖ?ªñÒMbPyÀ)\�Âõ¨À +‡ÙÖ?u“Vî>@×£p= ×&@é&1¬ ZÀV-²�ÿ¿ÙÎ÷Sãí¿ªñÒMbPyÀ}?5^ºI@ÙÎ÷S㥻?œÄ °r¨3À…ëQ¸ž@NbX9„aÀ;ßO�—nÚ¿+‡ÙÎï?L7‰A`€À;ßO�—nÚ¿+‡ÙÎï?œÄ °r¨3À…ëQ¸ž@NbX9„aÀ}?5^ºIÀÙÎ÷S㥻¿L7‰A`€À¸…ëQ¸þ?é&1¬î?\�Âõ(œ>@°rh‘í|'@7‰A`åÄaÀ¶óýÔxiÀoƒÀÊ¡Õ?Å °rhj€À¶óýÔxiÀoƒÀÊ¡Õ?\�Âõ(œ>@°rh‘í|'@7‰A`åÄaÀ¸…ëQ¸þ¿é&1¬î¿Å °rhj€ÀôýÔxé&õ¿‘í|?5^î?R¸…ëñA@�—nƒ@!@ÙÎ÷SK^ÀV-²ÀÓMbX9Ô¿ÍÌÌÌÌì|ÀV-²ÀÓMbX9Ô¿R¸…ëñA@�—nƒ@!@ÙÎ÷SK^ÀôýÔxé&õ?‘í|?5^î¿ÍÌÌÌÌì|À€sh‘í|? À¦›Ä °rä?…ëQ¸…KÀoƒÀÊ¡#@ö(\�½\Àçû©ñÒMÀÏ÷S㥛è¿þÔxé&û|Àçû©ñÒMÀÏ÷S㥛迅ëQ¸…KÀoƒÀÊ¡#@ö(\�½\Àsh‘í|? @¦›Ä °rä¿þÔxé&û|ÀÙÎ÷Sã¥ÀÇK7‰A`Ý?Ý$�•ÃD@'1¬Z#@�—nƒ`\Àžï§ÆK7ÀÑ"Ûù~jì¿`åÐ"ÛÁ{Àžï§ÆK7ÀÑ"Ûù~jì¿Ý$�•ÃD@'1¬Z#@�—nƒ`\ÀÙÎ÷Sã¥@ÇK7‰A`Ý¿`åÐ"ÛÁ{ÀÉv¾Ÿ/Í¿+‡ÙÎ÷ï??5^ºIl9@¦›Ä °ò @?5^ºI4^ÀœÄ °rhÀ9´Èv¾Ÿª¿“VE|ÀœÄ °rhÀ9´Èv¾Ÿª¿?5^ºIl9@¦›Ä °ò @?5^ºI4^ÀÉv¾Ÿ/Í?+‡ÙÎ÷ï¿“VE|ÀNbX9´ø¿�—nƒÀî?oƒÀÊ!J@w¾Ÿ/'@¦›Ä °Ž`Àj¼t“„ÀD‹lçû©Ñ¿ú~j¼t×Àj¼t“„ÀD‹lçû©Ñ¿oƒÀÊ!J@w¾Ÿ/'@¦›Ä °Ž`ÀNbX9´ø?�—nƒÀî¿ú~j¼t×Àú~j¼t“ @;ßO�—n‚?F¶óýÔ¸EÀ+‡ÙÎ@h‘í|?[À¸…ëQ¸ž¿ð?= ×£p{À¸…ëQ¸ž¿ð?F¶óýÔ¸EÀ+‡ÙÎ@h‘í|?[Àú~j¼t“ À;ßO�—n‚¿= ×£p{ÀX9´Èv¾@ì?ð§ÆK7)5À¶óýÔxi+@= ×£pMaÀ1¬ZdÀ`åÐ"ÛùÞ?oƒÀÊóÀ1¬ZdÀ`åÐ"ÛùÞ?ð§ÆK7)5À¶óýÔxi+@= ×£pMaÀX9´Èv¾Àì¿oƒÀÊóÀáz®Gáê?°rh‘í|ï?ƒÀÊ¡EI@¤p= ×c#@ôýÔxé†ZÀ`åÐ"ÛyÀ¶óýÔxéÆ?1¬ZŽzÀ`åÐ"ÛyÀ¶óýÔxéÆ?ƒÀÊ¡EI@¤p= ×c#@ôýÔxé†ZÀáz®Gáê¿°rh‘í|ï¿1¬ZŽzÀ À¸…ëQ¸æ?R¸…ë±4À+‡Ù#@X9´Èvî[À333333 ÀºI +‡æ¿sh‘í|�zÀ333333 ÀºI +‡æ¿R¸…ë±4À+‡Ù#@X9´Èvî[À @¸…ëQ¸æ¿sh‘í|�zÀ%�•C ÀÙÎ÷S㥫?u“VÎ9À9´Èv¾Ÿ!@ÍÌÌÌÌô[ÀÅ °rh‘Í¿+‡ÙÎ÷ï¿1¬ZözÀÅ °rh‘Í¿+‡ÙÎ÷ï¿u“VÎ9À9´Èv¾Ÿ!@ÍÌÌÌÌô[À%�•C @ÙÎ÷S㥫¿1¬ZözÀ¨ÆK7‰Aþ?Ház®Gí? J@¢E¶óýT#@R¸…ë•aÀTã¥›Ä ÀB`åÐ"ÛÙ?#Ûù~jÕ€ÀTã¥›Ä ÀB`åÐ"ÛÙ? J@¢E¶óýT#@R¸…ë•aÀ¨ÆK7‰Aþ¿Ház®Gí¿#Ûù~jÕ€À´Èv¾Ÿ@%�•C‹Ô?ƒÀÊ¡EVF@ú~j¼tÓ$@ÍÌÌÌÌì]À¬Zd;ßù¿çû©ñÒMî?)\�Âõ}À¬Zd;ßù¿çû©ñÒMî?ƒÀÊ¡EVF@ú~j¼tÓ$@ÍÌÌÌÌì]À´Èv¾ŸÀ%�•C‹Ô¿)\�Âõ}Àžï§ÆK7@ßO�—në?ö(\�ÂJÀJ +‡–@u“Vn\À�—nƒÀ Àu“Vá? +‡•|À�—nƒÀ Àu“Vá?ö(\�ÂJÀJ +‡–@u“Vn\Àžï§ÆK7ÀßO�—në¿ +‡•|ÀD‹lçû©Àú~j¼t“¸?yé&1LL@-²�ï§Æ-@�•C‹lï^ÀœÄ °rhå¿×£p= ×ï¿5^ºI V~ÀœÄ °rhå¿×£p= ×ï¿yé&1LL@-²�ï§Æ-@�•C‹lï^ÀD‹lçû©@ú~j¼t“¸¿5^ºI V~À?5^ºI @%�•C‹Ü?‹lçû©1GÀV-²�o!@Zd;ßO\À5^ºI À¤p= ×£ì?…ëQ¸*|À5^ºI À¤p= ×£ì?‹lçû©1GÀV-²�o!@Zd;ßO\À?5^ºI À%�•C‹Ü¿…ëQ¸*|À¦›Ä °r@‡ÙÎ÷SÛ??5^ºIì3À7‰A`å%@Év¾ŸwZÀ�•C‹lÀ!°rh‘íì?ßO�—n0yÀ�•C‹lÀ!°rh‘íì??5^ºIì3À7‰A`å%@Év¾ŸwZÀ¦›Ä °rÀ‡ÙÎ÷SÛ¿ßO�—n0yÀã¥›Ä °Ú?X9´Èv¾ï?/Ý$!EÀj¼t“@j¼t“|YÀoƒÀÊ¡ ÀX9´Èv¾¿?Ë¡E¶ó�yÀoƒÀÊ¡ ÀX9´Èv¾¿?/Ý$!EÀj¼t“@j¼t“|YÀã¥›Ä °Ú¿X9´Èv¾ï¿Ë¡E¶ó�yÀÙÎ÷Sãå?ƒÀÊ¡E¶ï?ö(\�µHÀ¶óýÔx)&@h‘í|?Ù`À/Ý$�ÀL7‰A`åÀ?š™™™™o€À/Ý$�ÀL7‰A`åÀ?ö(\�µHÀ¶óýÔx)&@h‘í|?Ù`ÀÙÎ÷Sã心ÀÊ¡E¶ï¿š™™™™o€À9´Èv¾Ÿ À)\�Âõ(à?–C‹lç+M@–C‹lçû@š™™™™AYÀôýÔxé&ÿ¿V-²�ë¿w¾Ÿ/ÏyÀôýÔxé&ÿ¿V-²�ë¿–C‹lç+M@–C‹lçû@š™™™™AYÀ9´Èv¾Ÿ @)\�Âõ(à¿w¾Ÿ/ÏyÀ×£p= ×ù?òÒMbXí?ÍÌÌÌÌ,AÀåÐ"Ûù~@fffffn]ÀNbX9´ Àð§ÆK7‰Ù?¢|ÀNbX9´ Àð§ÆK7‰Ù?ÍÌÌÌÌ,AÀåÐ"Ûù~@fffffn]À×£p= ×ù¿òÒMbXí¿¢|À!°rh‘m@žï§ÆK7Ù?Ñ"Ûù~ÊI@Zd;ßÏ'@Zd;ßÇ`ÀP�—nƒÀœÄ °rhí?'1¬€ÀP�—nƒÀœÄ °rhí?Ñ"Ûù~ÊI@Zd;ßÏ'@Zd;ßÇ`À!°rh‘mÀžï§ÆK7Ù¿'1¬€À!°rh‘í@J +‡á?òÒMbèFÀÙÎ÷Sã"@7‰A`å°`À%�•C‹À ×£p= ë?/Ý$*€À%�•C‹À ×£p= ë?òÒMbèFÀÙÎ÷Sã"@7‰A`å°`À!°rh‘íÀJ +‡á¿/Ý$*€Àq= ×£pÀ{®GázÄ?ú~j¼ts;@Å °rh@Ãõ(\�>bÀ®Gáz®ß¿/Ý$�•ï¿ÓMbXÉ€À®Gáz®ß¿/Ý$�•ï¿ú~j¼ts;@Å °rh@Ãõ(\�>bÀq= ×£p@{®GázÄ¿ÓMbXÉ€À+‡ÙNÀªñÒMbä?bX9´(:@ÇK7‰A %@¢E¶óý\aÀHáz®G À!°rh‘íè¿w¾Ÿ/ùÀHáz®G À!°rh‘íè¿bX9´(:@ÇK7‰A %@¢E¶óý\aÀ+‡ÙN@ªñÒMbä¿w¾Ÿ/ùÀX9´Èv¾ @ /Ý$Á?NbX9dE@žï§ÆK7@çû©ñÒé`ÀÃõ(\�ÂÝ¿ƒÀÊ¡E¶ï?Ház®éÀÃõ(\�ÂÝ¿ƒÀÊ¡E¶ï?NbX9dE@žï§ÆK7@çû©ñÒé`ÀX9´Èv¾ À /Ý$Á¿Ház®éÀã¥›Ä 0À�Âõ(\�â?V-âH@\�Âõ(Ü+@�—nƒ(ZÀôýÔxé&À®Gázê¿¶óýÔx'zÀôýÔxé&À®Gázê¿V-âH@\�Âõ(Ü+@�—nƒ(ZÀã¥›Ä 0@�Âõ(\�â¿¶óýÔx'zÀ /Ý$@¢E¶óýÔ¸?-²�ï§–E@u“VŽ%@þÔxé&YZÀ^ºI +߿ףp= ×ï?‡ÙÎ÷ýyÀ^ºI +߿ףp= ×ï?-²�ï§–E@u“VŽ%@þÔxé&YZÀ /Ý$À¢E¶óýÔ¸¿‡ÙÎ÷ýyÀP�—nÀ^ºI +Ç?^ºI »@ÀôýÔxé¦@ü©ñÒM*^À…ëQ¸…ç¿°rh‘í|ï¿ÓMbX#}À…ëQ¸…ç¿°rh‘í|ï¿^ºI »@ÀôýÔxé¦@ü©ñÒM*^ÀP�—n@^ºI +Ç¿ÓMbX#}À®GázÀ-²�ï§ê?'1¬ú5@%�•C‹%@ ×£p= [Àü©ñÒMbÀV-²á¿ ×£p=œyÀü©ñÒMbÀV-²á¿'1¬ú5@%�•C‹%@ ×£p= [À®Gáz@-²�ï§ê¿ ×£p=œyÀ¤p= ×£è¿5^ºI ï?áz®GL@mçû©ñR@!°rh‘UaÀsh‘í|?À°rh‘í|Ï¿= ×£p¶€Àsh‘í|?À°rh‘í|Ï¿áz®GL@mçû©ñR@!°rh‘UaÀ¤p= ×£è?5^ºI ï¿= ×£p¶€ÀTã¥›Ä @‡ÙÎ÷SÓ?}?5^º9G@´Èv¾Ÿš@!°rh‘%[À�Âõ(\�î¿åÐ"Ûù~î?-²�ï§äzÀ�Âõ(\�î¿åÐ"Ûù~î?}?5^º9G@´Èv¾Ÿš@!°rh‘%[ÀTã¥›Ä À‡ÙÎ÷SÓ¿-²�ï§äzÀ�•C‹lçù¿mçû©ñÒí?ÁÊ¡E¶#G@ffffff!@®Gáz¬aÀÉv¾Ÿ¯À^ºI +׿Zd;ß²€ÀÉv¾Ÿ¯À^ºI +׿ÁÊ¡E¶#G@ffffff!@®Gáz¬aÀ�•C‹lçù?mçû©ñÒí¿Zd;ß²€Àh‘í|?5Àyé&1¬ä?åÐ"Ûùþ@@bX9´H'@j¼t“ˆ_À‰A`åÐ" ÀÑ"Ûù~jè¿)\�ÂõÖ}À‰A`åÐ" ÀÑ"Ûù~jè¿åÐ"Ûùþ@@bX9´H'@j¼t“ˆ_Àh‘í|?5@yé&1¬ä¿)\�ÂõÖ}À¾Ÿ/Ý$Æ?+‡ÙÎ÷ï?q= ×£ðB@33333³ @‹lçû©‰ZÀ)\�Âõ(Àj¼t“¦?Ï÷Sã¥åyÀ)\�Âõ(Àj¼t“¦?q= ×£ðB@33333³ @‹lçû©‰ZÀ¾Ÿ/Ý$Æ¿+‡ÙÎ÷ï¿Ï÷Sã¥åyÀ'1¬ZÀ;ßO�—nÂ?-²�ï§æF@°rh‘í<%@u“VžZÀƒÀÊ¡E¶ç¿®Gáz®ï¿ªñÒMbdzÀƒÀÊ¡E¶ç¿®Gáz®ï¿-²�ï§æF@°rh‘í<%@u“VžZÀ'1¬Z@;ßO�—n¿ªñÒMbdzÀd;ßO�@¦›Ä °rÈ?NbX943À;ßO�—î%@ƒÀÊ¡Ež^À²�ï§ÆKï¿�•C‹lï?j¼t“²|À²�ï§ÆKï¿�•C‹lï?NbX943À;ßO�—î%@ƒÀÊ¡Ež^Àd;ßO�À¦›Ä °rÈ¿j¼t“²|À×£p= ×@øS㥛Ää?´Èv¾ŸZMÀÅ °rh@q= ×£À\Àu“VÀ'1¬Zè?¾Ÿ/Ý$}Àu“VÀ'1¬Zè?´Èv¾ŸZMÀÅ °rh@q= ×£À\À×£p= ×ÀøS㥛Ä俾Ÿ/Ý$}À°rh‘í| @Ház®Gá?ö(\�ÂÕH@Ház®!@ÙÎ÷Sã%]À¶óýÔxéÀ‹lçû©ñê?®Gáz¸|À¶óýÔxéÀ‹lçû©ñê?ö(\�ÂÕH@Ház®!@ÙÎ÷Sã%]À°rh‘í| ÀHáz®Gá¿®Gáz¸|ÀffffffÀÇK7‰A`Ý?%�•C‹DÀu“VÎ)@Tã¥›ÄØ_Àj¼t“À¦›Ä °rì¿L7‰A`~Àj¼t“À¦›Ä °rì¿%�•C‹DÀu“VÎ)@Tã¥›ÄØ_Àffffff@ÇK7‰A`Ý¿L7‰A`~Àj¼t“@ã¥›Ä °ê?9´Èv¾?=@ã¥›Ä °$@¢E¶óýœ\ÀƒÀÊ¡E¶ÀoƒÀÊ¡á?ö(\�ÂK{ÀƒÀÊ¡E¶ÀoƒÀÊ¡á?9´Èv¾?=@ã¥›Ä °$@¢E¶óýœ\Àj¼t“Àã¥›Ä °ê¿ö(\�ÂK{À¶óýÔxéò?¸…ëQ¸î?u“V@@q= ×£p @/Ý$AbÀ#Ûù~j<ÀìQ¸…ëÑ?Å °rhô€À#Ûù~j<ÀìQ¸…ëÑ?u“V@@q= ×£p @/Ý$AbÀ¶óýÔxéò¿¸…ëQ¸î¿Å °rhô€À;ßO�—n @¶óýÔxéÞ?`åÐ"ÛY<@ìQ¸…+ @²�ï§ÆaÀÓMbX9þ¿Õxé&1ì?Zd;ß«ÀÓMbX9þ¿Õxé&1ì?`åÐ"ÛY<@ìQ¸…+ @²�ï§ÆaÀ;ßO�—n À¶óýÔxéÞ¿Zd;ß«À5^ºI ù¿;ßO�—nî?–C‹lç+Q@ ×£p=Ê$@!°rh‘…]À¤p= ×#À�•C‹lçÓ¿‰A`åÐÞ}À¤p= ×#À�•C‹lçÓ¿–C‹lç+Q@ ×£p=Ê$@!°rh‘…]À5^ºI ù?;ßO�—nA`åÐÞ}ÀƒÀÊ¡E¶@X9´Èv¾ß?Ý$�•ãHÀ¬Zd;ß#@R¸…ë©`À®GázÀ-²�ï§Æë?¤p= ×F€À®GázÀ-²�ï§Æë?Ý$�•ãHÀ¬Zd;ß#@R¸…ë©`ÀƒÀÊ¡E¶ÀX9´Èv¾ß¿¤p= ×F€ÀþÔxé&1ð?1¬Zdï?®GázîO@u“VN%@ƒÀÊ¡]\À¬Zd;ÀJ +‡É?u“V¦|À¬Zd;ÀJ +‡É?®GázîO@u“VN%@ƒÀÊ¡]\ÀþÔxé&1ð¿1¬Zdï¿u“V¦|À¢E¶óýÔÀ¤p= ×£À?Ãõ(\�b4À +‡Y@Zd;ßßZÀ–C‹lçûÙ¿X9´Èv¾ï¿–C‹lç•yÀ–C‹lçûÙ¿X9´Èv¾ï¿Ãõ(\�b4À +‡Y@Zd;ßßZÀ¢E¶óýÔ@¤p= ×£À¿–C‹lç•yÀã¥›Ä °@�—nƒÀÊ?D‹lçûE@ÁÊ¡E¶3 @Å °rh)[ÀƒÀÊ¡E꿲�ï§ÆKï?P�—n³zÀƒÀÊ¡E꿲�ï§ÆKï?D‹lçûE@ÁÊ¡E¶3 @Å °rh)[Àã¥›Ä °À�—nƒÀÊ¿P�—n³zÀ–C‹lçûÀq= ×£pÍ?î|?5^z9@¢E¶óý#@‘í|?5®_À`åÐ"Ûùð¿‰A`åÐ"ï¿ÇK7‰Ax}À`åÐ"Ûùð¿‰A`åÐ"ï¿î|?5^z9@¢E¶óý#@‘í|?5®_À–C‹lçû@q= ×£pÍ¿ÇK7‰Ax}À¬Zd;ÀX9´Èv¾¯?ºI +‡7ÀÙÎ÷Sãå#@ƒÀÊ¡u`ÀßO�—nÓ¿V-²�ï₩~ÀßO�—nÓ¿V-²�ïI +‡7ÀÙÎ÷Sãå#@ƒÀÊ¡u`À¬Zd;@X9´Èv¾¯¿¦~ÀX Å °rh‘ÀTã¥›Ä ì?yé&1Œ@ÀƒÀÊ¡#@\�Âõ(ÌfÀþÔxé&1ÀºI +‡Þ¿øS㥛/…ÀþÔxé&1ÀºI +‡Þ¿yé&1Œ@ÀƒÀÊ¡#@\�Âõ(ÌfÀÅ °rh‘@Tã¥›Ä ì¿øS㥛/…À\�Âõ(Ü@Ï÷S㥛Ä?Ûù~j¼ÄDÀHáz®Ç$@¾Ÿ/Ý8cÀìQ¸…ëé¿/Ý$�•ï?+‡Ùþ�ÀìQ¸…ëé¿/Ý$�•ï?Ûù~j¼ÄDÀHáz®Ç$@¾Ÿ/Ý8cÀ\�Âõ(ÜÀÏ÷S㥛Ŀ+‡Ùþ�À¨ÆK7‰A @ºI +‡†?çû©ñÒ­HÀ¦›Ä °r@ã¥›Ä hdÀ+‡ÙÎ÷£¿ð?P�—nƒÀ+‡ÙÎ÷£¿ð?çû©ñÒ­HÀ¦›Ä °r@ã¥›Ä hdÀ¨ÆK7‰A ÀºI +‡†¿P�—nƒÀ¢E¶óýÔ@333333ç?�Âõ(\oKÀ!°rh‘m@9´Èv¾_eÀö(\�ÂõÀj¼t“æ?+‡ÙÎ|„Àö(\�ÂõÀj¼t“æ?�Âõ(\oKÀ!°rh‘m@9´Èv¾_eÀ¢E¶óýÔÀ333333ç¿+‡ÙÎ|„ÀÅ °rh‘@Zd;ßOÕ?d;ßO�CÀ‘í|?5ž'@ÓMbXÁfÀX9´Èvþ¿“V-î?Év¾Ÿ>…ÀX9´Èvþ¿“V-î?d;ßO�CÀ‘í|?5ž'@ÓMbXÁfÀÅ °rh‘ÀZd;ßOÕ¿Év¾Ÿ>…Àš™™™™ÀË¡E¶óýÔ?-²�ï§Æ6À‹lçû©±"@dÀ-²�ï§Æ÷¿= ×£p=î¿ÇK7‰A5‚À-²�ï§Æ÷¿= ×£p=î¿-²�ï§Æ6À‹lçû©±"@dÀš™™™™@Ë¡E¶óýÔ¿ÇK7‰A5‚ÀÓMbX9Àð§ÆK7‰á?NbX9ôK@‡ÙÎ÷Ó@ã¥›Ä ˆeÀ´Èv¾Ÿý¿bX9´Èê¿Ház®Ê„À´Èv¾Ÿý¿bX9´Èê¿NbX9ôK@‡ÙÎ÷Ó@ã¥›Ä ˆeÀÓMbX9@ð§ÆK7‰á¿Ház®Ê„Àð§ÆK7‰@ƒÀÊ¡E¶Ó?Év¾Ÿ?DÀT㥛Ä`'@F¶óýÔDbÀìQ¸…ëû¿;ßO�—nî?¾Ÿ/ÝC�ÀìQ¸…ëû¿;ßO�—nî?Év¾Ÿ?DÀT㥛Ä`'@F¶óýÔDbÀð§ÆK7‰ÀƒÀÊ¡E¶Ó¿¾Ÿ/ÝC�À¬Zd»À/Ý$�µ?j¼t“XEÀÍÌÌÌÌL!@øS㥛€eÀ+‡ÙÎ׿¬Zd;ßï¿/Ý$�.„À+‡ÙÎ׿¬Zd;ßï¿j¼t“XEÀÍÌÌÌÌL!@øS㥛€eÀ¬Zd»@/Ý$�µ¿/Ý$�.„À€À5^ºI Û?Ház®wL@7‰A`å%@�•C‹„cÀh‘í|?5À /Ý$í¿Ï÷S㥱‚Àh‘í|?5À /Ý$í¿Ház®wL@7‰A`å%@�•C‹„cÀ€@5^ºI Û¿Ï÷S㥱‚ÀD‹lçû©À/Ý$�•ë?ÍÌÌÌÌ FÀð§ÆK7 &@ð§ÆK7ÁfÀÙÎ÷ScÀ¨ÆK7‰Aà¿P�—nr…ÀÙÎ÷ScÀ¨ÆK7‰Aà¿ÍÌÌÌÌ FÀð§ÆK7 &@ð§ÆK7ÁfÀD‹lçû©@/Ý$�•ë¿P�—nr…ÀƒÀÊ¡E¶Àš™™™™™í?%�•Cë9@h‘í|?õ(@Ý$�•WeÀ%�•C‹ÀR¸…ëQØ¿}?5^ºSƒÀ%�•C‹ÀR¸…ëQØ¿%�•Cë9@h‘í|?õ(@Ý$�•WeÀƒÀÊ¡E¶@š™™™™™í¿}?5^ºSƒÀ‘í|?5^À¢E¶óýÔà?V-²J@˜nƒÀ #@j¼t“pcÀ1¬ZdÀ¬Zd;ë¿¢E¶óý‡‚À1¬ZdÀ¬Zd;ë¿V-²J@˜nƒÀ #@j¼t“pcÀ‘í|?5^@¢E¶óýÔà¿¢E¶óý‡‚À`åÐ"Ûùô?‡ÙÎ÷Sï?d;ßO�×=@bX9´H+@ö(\�ÂÍeÀìQ¸…ëÀ‘í|?5^Ê? /Ý$!„ÀìQ¸…ëÀ‘í|?5^Ê?d;ßO�×=@bX9´H+@ö(\�ÂÍeÀ`åÐ"Ûùô¿‡ÙÎ÷Sï¿ /Ý$!„ÀD‹lçû©@ƒÀÊ¡E¶?}?5^ºiDÀ�•C‹lç@øS㥛bÀh‘í|?5Ö¿¬Zd;ßï?Ï÷Sã¥�Àh‘í|?5Ö¿¬Zd;ßï?}?5^ºiDÀ�•C‹lç@øS㥛bÀD‹lçû©ÀƒÀÊ¡E¶¿Ï÷Sã¥�À/Ý$�Õ¿+‡ÙÎï?¼t“¦D@R¸…ëÑ@Ý$�•7eÀ'1¬ZÀ)\�Âõ(¼¿ôýÔxéЃÀ'1¬ZÀ)\�Âõ(¼¿¼t“¦D@R¸…ëÑ@Ý$�•7eÀ/Ý$�Õ?+‡ÙÎï¿ôýÔxéЃÀøS㥛Äð¿‡ÙÎ÷Sï?/Ý$�µ7@L7‰A`%&@¦›Ä °6cÀ= ×£p=À–C‹lçûÉ¿ÁÊ¡E¶�À= ×£p=À–C‹lçûÉ¿/Ý$�µ7@L7‰A`%&@¦›Ä °6cÀøS㥛Äð?‡ÙÎ÷Sï¿ÁÊ¡E¶�ÀZd;ßO�׿�•C‹lçï?X9´ÈöL@u“V$@¬Zd;ÿeÀ‘í|?5^ÀÛù~j¼t³¿¸…ëQ`…À‘í|?5^ÀÛù~j¼t³¿X9´ÈöL@u“V$@¬Zd;ÿeÀZd;ßO�×?�•C‹lç￸…ëQ`…Àé&1¬Ê¿+‡ÙÎ÷ï?yé&1LP@ÙÎ÷Sãe!@P�—nÿaÀÇK7‰AàÀZd;ßO�§¿Ë¡E¶ó…�ÀÇK7‰AàÀZd;ßO�§¿yé&1LP@ÙÎ÷Sãe!@P�—nÿaÀé&1¬Ê?+‡ÙÎ÷ï¿Ë¡E¶ó…�À…ëQ¸@¦›Ä °rä?–C‹lçÛ@@¨ÆK7‰�%@‹lçû©ÙeÀV-²� ÀÏ÷S㥛è?ìQ¸…U„ÀV-²� ÀÏ÷S㥛è?–C‹lçÛ@@¨ÆK7‰�%@‹lçû©ÙeÀ…ëQ¸À¦›Ä °rä¿ìQ¸…U„À…ëQ¸…À-²�ï§ê?\�Âõ(Ü@À¨ÆK7‰Á@ /Ý$þeÀòÒMbX Àî|?5^ºá¿�•C‹d„ÀòÒMbX Àî|?5^ºá¿\�Âõ(Ü@À¨ÆK7‰Á@ /Ý$þeÀ…ëQ¸…@-²�ï§ê¿�•C‹d„ÀÕxé&1ˆ@Å °rh‘á?¦›Ä °ÂA@yé&1l$@R¸…ë!fÀƒÀÊ¡E¶À�—nƒÀê?j¼t“©„ÀƒÀÊ¡E¶À�—nƒÀê?¦›Ä °ÂA@yé&1l$@R¸…ë!fÀÕxé&1ˆÀÅ °rh‘á¿j¼t“©„Àj¼t“@¬Zd;ßë?–C‹lç[:Àu“V$@‡ÙÎ÷÷bÀ¶óýÔxéÀ°rh‘í|ß?�—nƒt�À¶óýÔxéÀ°rh‘í|ß?–C‹lç[:Àu“V$@‡ÙÎ÷÷bÀj¼t“À¬Zd;ßë¿�—nƒt�ÀÉv¾Ÿ/ À!°rh‘íè?´Èv¾ŸC@%�•C‹%@áz®G]dÀX9´Èv>Àj¼t“俘nƒÀÜ‚ÀX9´Èv>Àj¼t“ä¿´Èv¾ŸC@%�•C‹%@áz®G]dÀÉv¾Ÿ/ @!°rh‘í还nƒÀÜ‚À/Ý$�•ó¿oƒÀÊ¡í?P�—n£?@®Gáz.@‘í|?5‚fÀ`åÐ"ÛùÀþÔxé&1Ø¿–C‹lçó„À`åÐ"ÛùÀþÔxé&1Ø¿P�—n£?@®Gáz.@‘í|?5‚fÀ/Ý$�•ó?oƒÀÊ¡í¿–C‹lçó„À�•C‹lç@P�—nƒè?+‡ÙnE@¨ÆK7‰$@F¶óýÔ@bÀã¥›Ä ° Àú~j¼t“ä?Év¾Ÿ<�Àã¥›Ä ° Àú~j¼t“ä?+‡ÙnE@¨ÆK7‰$@F¶óýÔ@bÀ�•C‹lçÀP�—nƒè¿Év¾Ÿ<�ÀTã¥›Ä ÀJ +‡í?j¼t“$AÀsh‘í|ÿ#@‘í|?5ÆeÀÏ÷S㥛À9´Èv¾ŸÚ¿ú~j¼t%„ÀÏ÷S㥛À9´Èv¾ŸÚ¿j¼t“$AÀsh‘í|ÿ#@‘í|?5ÆeÀTã¥›Ä @J +‡í¿ú~j¼t%„ÀÏ÷S㥛À˜nƒÀÊá?ƒÀÊ¡EFJ@)\�Âõh%@`åÐ"Û©bÀžï§ÆK7Àd;ßO�—ê¿;ßO�—Ó�Àžï§ÆK7Àd;ßO�—꿃ÀÊ¡EFJ@)\�Âõh%@`åÐ"Û©bÀÏ÷S㥛@˜nƒÀÊá¿;ßO�—Ó�À}?5^ºI @h‘í|?5â?ü©ñÒMâ?@j¼t“Ä!@¬Zd;·dÀd;ßO�—Àçû©ñÒMê?q= ×£û‚Àd;ßO�—Àçû©ñÒMê?ü©ñÒMâ?@j¼t“Ä!@¬Zd;·dÀ}?5^ºI Àh‘í|?5â¿q= ×£û‚ÀÍÌÌÌÌÌ @ƒÀÊ¡E¶ç?Ñ"Ûù~ŠD@j¼t“˜$@+‡ÙöeÀ%�•C‹ À/Ý$�å?ƒÀÊ¡°„À%�•C‹ À/Ý$�å?Ñ"Ûù~ŠD@j¼t“˜$@+‡ÙöeÀÍÌÌÌÌÌ ÀƒÀÊ¡E¶ç¿ƒÀÊ¡°„ÀÛù~j¼tÀ%�•C‹ì?`åÐ"Û)A@/Ý$A&@#Ûù~jÀfÀ¬Zd;Àw¾Ÿ/ÝÜ¿�Âõ(\s…À¬Zd;Àw¾Ÿ/ÝÜ¿`åÐ"Û)A@/Ý$A&@#Ûù~jÀfÀÛù~j¼t@%�•C‹ì¿�Âõ(\s…ÀbX9´ÈÀ7‰A`åÐê?š™™™™ÙKÀ¤p= ×£$@bX9´´dÀÃõ(\�ÂÀq= ×£pá¿j¼t“®ƒÀÃõ(\�ÂÀq= ×£pῚ™™™™ÙKÀ¤p= ×£$@bX9´´dÀbX9´È@7‰A`åÐê¿j¼t“®ƒÀ'1¬ZÀw¾Ÿ/Ýè?d;ßO�‡FÀq= ×£° @9´Èv¾ïaÀé&1¬ À)\�Âõ(ä¿NbX9%�Àé&1¬ À)\�Âõ(ä¿d;ßO�‡FÀq= ×£° @9´Èv¾ïaÀ'1¬Z@w¾Ÿ/Ýè¿NbX9%�À°rh‘í|@Ë¡E¶óý¤?�•C‹Ì:À= ×£p='@)\�Âõ eÀÅ °rh‘Í¿+‡ÙÎ÷ï?= ×£p§ƒÀÅ °rh‘Í¿+‡ÙÎ÷ï?�•C‹Ì:À= ×£p='@)\�Âõ eÀ°rh‘í|ÀË¡E¶óý¤¿= ×£p§ƒÀ%�•C‹ö¿5^ºI ï?¤p= ×sAÀNbX9t'@^ºI eÀ/Ý$ÀX9´Èv¾Ï¿NbX9¿ƒÀ/Ý$ÀX9´Èv¾Ï¿¤p= ×sAÀNbX9t'@^ºI eÀ%�•C‹ö?5^ºI ï¿NbX9¿ƒÀä¿®Gáz®ï?ð§ÆK7i@@‡ÙÎ÷S"@…ëQ¸‚dÀßO�—n’À?5^ºI ¿…ëQ¸Ö‚ÀßO�—n’À?5^ºI ¿ð§ÆK7i@@‡ÙÎ÷S"@…ëQ¸‚dÀä?®Gáz®ï¿…ëQ¸Ö‚ÀV-²�ã¿®Gáz®ï?%�•Ck@@+‡Ù"@j¼t“eÀ7‰A`åPÀìQ¸…ëÁ¿ÓMbXCƒÀ7‰A`åPÀìQ¸…ëÁ¿%�•Ck@@+‡Ù"@j¼t“eÀV-²�ã?®Gáz®ï¿ÓMbXCƒÀÅ °rhÀP�—nƒÐ?¶óýÔx DÀË¡E¶ó="@NbX9äbÀ= ×£p=ò¿¶óýÔxéî¿áz®G»�À= ×£p=ò¿¶óýÔxéî¿¶óýÔx DÀË¡E¶ó="@NbX9äbÀÅ °rh@P�—nƒÐ¿áz®G»�À�•C‹ìÀÏ÷S㥛Ä?¼t“–JÀ1¬Zä%@ã¥›Ä eÀÝ$�•Cë¿/Ý$�•₩›Ä °„ÀÝ$�•Cë¿/Ý$�•t“–JÀ1¬Zä%@ã¥›Ä eÀ�•C‹ì@Ï÷S㥛Ŀ¦›Ä °„À/Ý$�@ü©ñÒMbì?#Ûù~jLDÀƒÀÊ¡Eö(@Ház®çcÀ^ºI «ÀÅ °rh‘Ý?¼t“v‚À^ºI «ÀÅ °rh‘Ý?#Ûù~jLDÀƒÀÊ¡Eö(@Ház®çcÀ/Ý$�Àü©ñÒMb쿼t“v‚ÀþÔxé&1ÀB`åÐ"Ûé?ÁÊ¡E¶³?@œÄ °r¨ @‡ÙÎ÷÷cÀã¥›Ä ° À +‡Ùâ¿5^ºI c‚Àã¥›Ä ° À +‡Ùâ¿ÁÊ¡E¶³?@œÄ °r¨ @‡ÙÎ÷÷cÀþÔxé&1@B`åÐ"Ûé¿5^ºI c‚À�•C‹lç @5^ºI ã?^ºI  7@Ý$�•C @u“V²eÀÙÎ÷SãÀî|?5^ºé?ü©ñÒM ƒÀÙÎ÷SãÀî|?5^ºé?^ºI  7@Ý$�•C @u“V²eÀ�•C‹lç À5^ºI ã¿ü©ñÒM ƒÀé&1¬ ÀÃõ(\�ÂÕ?áz®GÁ@ÀË¡E¶óý@ºI +gdÀ +‡Ùò¿é&1¬î¿¢E¶óý¬‚À +‡Ùò¿é&1¬î¿áz®GÁ@ÀË¡E¶óý@ºI +gdÀé&1¬ @Ãõ(\�ÂÕ¿¢E¶óý¬‚À/Ý$�á¿+‡ÙÎï?w¾Ÿ/mF@X9´Èv~$@fffffêcÀÓMbX¹À)\�Âõ(¼¿^ºI ´‚ÀÓMbX¹À)\�Âõ(¼¿w¾Ÿ/mF@X9´Èv~$@fffffêcÀ/Ý$�á?+‡ÙÎï¿^ºI ´‚Àx+‡ÙÎ÷ÀÝ$�•Cç?�Âõ(\ÿA@ã¥›Ä °@w¾Ÿ/MeÀ333333À–C‹lçûå¿+‡Ù©ƒÀ333333À–C‹lçûå¿�Âõ(\ÿA@ã¥›Ä °@w¾Ÿ/MeÀ+‡ÙÎ÷@Ý$�•Cç¿+‡Ù©ƒÀX9´Èv>@¦›Ä °rÐ?/Ý$�åK@#Ûù~jü+@\�Âõ(0fÀ¢E¶óýÔú¿¶óýÔxéî?X9´Èv‡…À¢E¶óýÔú¿¶óýÔxéî?/Ý$�åK@#Ûù~jü+@\�Âõ(0fÀX9´Èv>À¦›Ä °rпX9´Èv‡…ÀB`åÐ"Û@áz®Gáº?˜nƒÀJ>@Ûù~j¼t!@'1¬¶cÀh‘í|?5Þ¿+‡ÙÎï?Zd;ß%‚Àh‘í|?5Þ¿+‡ÙÎï?˜nƒÀJ>@Ûù~j¼t!@'1¬¶cÀB`åÐ"ÛÀáz®GếZd;ß%‚À7‰A`åPÀƒÀÊ¡Eæ?–C‹lçKB@'1¬Z(@DfÀ¤p= ×£À`åÐ"Ûùæ¿J +‡Ñ„À¤p= ×£À`åÐ"Ûùæ¿–C‹lçKB@'1¬Z(@DfÀ7‰A`åP@ƒÀÊ¡Eæ¿J +‡Ñ„ÀòÒMbX ÀÙÎ÷Sã¥ç?¸…ëQ¸@@€&@-²�ï§FcÀé&1¬Àð§ÆK7‰å¿åÐ"ÛùÛ�Àé&1¬Àð§ÆK7‰å¿¸…ëQ¸@@€&@-²�ï§FcÀòÒMbX @ÙÎ÷Sã¥ç¿åÐ"ÛùÛ�ÀoƒÀÊ¡ÀÍÌÌÌÌÌä?'1¬:;@R¸…ëÑ$@¢E¶óýøcÀ¬Zd; ÀR¸…ëQè¿sh‘í|A‚À¬Zd; ÀR¸…ëQè¿'1¬:;@R¸…ëÑ$@¢E¶óýøcÀoƒÀÊ¡@ÍÌÌÌÌÌä¿sh‘í|A‚À‘í|?5^@X9´Èvê?ð§ÆK7ICÀV-r%@ÓMbX©bÀyé&1,Àj¼t“â?T㥛Ċ�Àyé&1,Àj¼t“â?ð§ÆK7ICÀV-r%@ÓMbX©bÀ‘í|?5^ÀX9´Èvê¿T㥛Ċ�À\�Âõ(\ó?-²�ï§î?0B@X9´Èv~ @!°rh‘‘fÀÃõ(\�BÀ= ×£p=Ò? ×£p=F…ÀÃõ(\�BÀ= ×£p=Ò?0B@X9´Èv~ @!°rh‘‘fÀ\�Âõ(\ó¿-²�ï§î¿ ×£p=F…À%�•C‹ ÀƒÀÊ¡Eâ?^ºI k?@V-²�o@�•C‹(cÀF¶óýÔxÀƒÀÊ¡Eê¿Ý$�•²�ÀF¶óýÔxÀƒÀÊ¡Eê¿^ºI k?@V-²�o@�•C‹(cÀ%�•C‹ @ƒÀÊ¡Eâ¿Ý$�•²�ÀÅ °rh‘ÀœÄ °rhé?œÄ °rÈ9Àã¥›Ä ð*@V-²�geÀX9´ÈöÀÛù~j¼tã¿ÙÎ÷SãYƒÀX9´ÈöÀÛù~j¼tã¿œÄ °rÈ9Àã¥›Ä ð*@V-²�geÀÅ °rh‘@œÄ °rhé¿ÙÎ÷SãYƒÀ¢E¶óýÔÀ`åÐ"Ûùâ?Zd;ß?KÀq= ×£ð@´Èv¾Ÿ’dÀ333333ý¿Ãõ(\�Âé¿1¬ZlƒÀ333333ý¿Ãõ(\�Âé¿Zd;ß?KÀq= ×£ð@´Èv¾Ÿ’dÀ¢E¶óýÔ@`åÐ"Ûùâ¿1¬ZlƒÀ�•C‹lÀî|?5^ºé?ö(\�ÂUNÀj¼t“„@Ház®SeÀd;ßO�—À5^ºI ã¿’„Àd;ßO�—À5^ºI ã¿ö(\�ÂUNÀj¼t“„@Ház®SeÀ�•C‹l@î|?5^ºé¿’„ÀÕxé&1ˆ@ü©ñÒMbÐ?Ñ"Ûù~:OÀ;ßO�—î%@oƒÀÊádÀî|?5^ºõ¿‹lçû©ñî?ÇK7‰A!„Àî|?5^ºõ¿‹lçû©ñî?Ñ"Ûù~:OÀ;ßO�—î%@oƒÀÊádÀÕxé&1ˆÀü©ñÒMbпÇK7‰A!„ÀX9´Èv¾ý¿š™™™™™í?¶óýÔx)9@ /Ý$%@V-úeÀ-²�ï'À¨ÆK7‰AØ¿Ház®„À-²�ï'À¨ÆK7‰AØ¿¶óýÔx)9@ /Ý$%@V-úeÀX9´Èv¾ý?š™™™™™í¿Ház®„Àyé&1¬À{®Gázà?'1¬:M@²�ï§ÆK%@+‡ÙöcÀ¨ÆK7‰AÀ�•C‹lë¿þÔxé&ƒÀ¨ÆK7‰AÀ�•C‹lë¿'1¬:M@²�ï§ÆK%@+‡ÙöcÀyé&1¬@{®Gázà¿þÔxé&ƒÀ +‡Ù@1¬Zdç?˜nƒÀê:ÀZd;ßÏ"@‹lçû©ÁeÀÙÎ÷S㥠Àmçû©ñÒå?j¼t“ÓƒÀÙÎ÷S㥠Àmçû©ñÒå?˜nƒÀê:ÀZd;ßÏ"@‹lçû©ÁeÀ +‡ÙÀ1¬Zdç¿j¼t“ÓƒÀ®Gáz®ã?ÙÎ÷Sã¥ï?V-²]?À¨ÆK7‰A!@sh‘í|gÀºI +‡À7‰A`åÐÂ?T㥛Ď…ÀºI +‡À7‰A`åÐÂ?V-²]?À¨ÆK7‰A!@sh‘í|gÀ®Gáz®ã¿ÙÎ÷Sã¥ï¿T㥛Ď…ÀÉv¾Ÿ/@®Gáz®×?'1¬ÚA@V-²�o&@Å °rhufÀJ +‡Àî|?5^ºí?ÁÊ¡E¶…ÀJ +‡Àî|?5^ºí?'1¬ÚA@V-²�o&@Å °rhufÀÉv¾Ÿ/À®Gáz®×¿ÁÊ¡E¶…ÀHáz®G@òÒMbXå?ü©ñÒMêP@ßO�—nÒ @˜nƒÀîdÀ¸…ëQ¸À×£p= ×ç?‘í|?5‡„À¸…ëQ¸À×£p= ×ç?ü©ñÒMêP@ßO�—nÒ @˜nƒÀîdÀHáz®GÀòÒMbXå¿‘í|?5‡„À +‡ÙÀÍÌÌÌÌÌè?ÍÌÌÌÌì=@-²�ï§ @¼t“feÀð§ÆK7‰ ÀÓMbX9俪ñÒMb’ƒÀð§ÆK7‰ ÀÓMbX9ä¿ÍÌÌÌÌì=@-²�ï§ @¼t“feÀ +‡Ù@ÍÌÌÌÌÌ迪ñÒMb’ƒÀF¶óýÔx@Å °rh‘Í?)\�Âõø@@D‹lçû©$@Ház®‡eÀ{®Gázò¿‰A`åÐ"ï?…ëQ¸çƒÀ{®Gázò¿‰A`åÐ"ï?)\�Âõø@@D‹lçû©$@Ház®‡eÀF¶óýÔxÀÅ °rh‘Í¿…ëQ¸çƒÀZd;ßÏ@/Ý$�¥?çû©ñÒmD@œÄ °rh"@¼bÀªñÒMbÈ¿+‡ÙÎ÷ï?yé&1˜�ÀªñÒMbÈ¿+‡ÙÎ÷ï?çû©ñÒmD@œÄ °rh"@¼bÀZd;ßÏÀ/Ý$�¥¿yé&1˜�À+‡ÙÎ÷@Ë¡E¶óý¤?çû©ñÒ-GÀoƒÀÊ!@‰A`åÐBeÀ{®GázÄ¿+‡ÙÎ÷ï?�Âõ(\ „À{®GázÄ¿+‡ÙÎ÷ï?çû©ñÒ-GÀoƒÀÊ!@‰A`åÐBeÀ+‡ÙÎ÷ÀË¡E¶óý¤¿�Âõ(\ „Àd;ßO�—@�Âõ(\�æ?^ºI ‹L@{®Gáú@)\�ÂõÈcÀF¶óýÔxÀã¥›Ä °æ?/Ý$�é‚ÀF¶óýÔxÀã¥›Ä °æ?^ºI ‹L@{®Gáú@)\�ÂõÈcÀd;ßO�—À�Âõ(\�æ¿/Ý$�é‚ÀZd;ßO�÷¿‹lçû©ñî?¦›Ä °R?ÀV-²Ý(@�Âõ(\—fÀ¦›Ä °rÀ¨ÆK7‰AпœÄ °ró„À¦›Ä °rÀ¨ÆK7‰Aп¦›Ä °R?ÀV-²Ý(@�Âõ(\—fÀZd;ßO�÷?‹lçû©ñî¿œÄ °ró„ÀºI +‡À-²�ï§æ?Ãõ(\�BCÀ¾Ÿ/Ýä @fffffâfÀV-²�Àd;ßO�—æ¿!°rh‘f…ÀV-²�Àd;ßO�—æ¿Ãõ(\�BCÀ¾Ÿ/Ýä @fffffâfÀºI +‡@-²�ï§æ¿!°rh‘f…À;ßO�—n @žï§ÆK7á? ×£p=zGÀmçû©ñR@R¸…ë]eÀÓMbX9À`åÐ"Ûùê?²�ï§Æ7„ÀÓMbX9À`åÐ"Ûùê? ×£p=zGÀmçû©ñR@R¸…ë]eÀ;ßO�—n Àžï§ÆK7ῲ�ï§Æ7„Àð§ÆK7‰@Å °rh‘í?u“V®9@w¾Ÿ/�(@š™™™™qdÀ¬Zd;À¦›Ä °rØ?é&1¬—‚À¬Zd;À¦›Ä °rØ?u“V®9@w¾Ÿ/�(@š™™™™qdÀð§ÆK7‰ÀÅ °rh‘í¿é&1¬—‚À{®Gázö¿œÄ °rhí?#Ûù~jüB@h‘í|?µ@ÙÎ÷SãibÀþÔxé&1 Àžï§ÆK7Ù¿ôýÔxéB�ÀþÔxé&1 Àžï§ÆK7Ù¿#Ûù~jüB@h‘í|?µ@ÙÎ÷SãibÀ{®Gázö?œÄ °rhí¿ôýÔxéB�Àj¼t“ À®Gáz®ã?´Èv¾Ÿz@ÀV-²�¯!@ìQ¸…+fÀªñÒMbÀsh‘í|?鿇ÙÎ÷Ž„ÀªñÒMbÀsh‘í|?é¿´Èv¾Ÿz@ÀV-²�¯!@ìQ¸…+fÀj¼t“ @®Gáz®ã¿‡ÙÎ÷Ž„À‘í|?5^ @®Gáz®ë?/Ý$M@ú~j¼t+@é&1¬ôdÀB`åÐ"ÛÀªñÒMbà?žï§ÆK6„ÀB`åÐ"ÛÀªñÒMbà?/Ý$M@ú~j¼t+@é&1¬ôdÀ‘í|?5^ À®Gáz®ë¿žï§ÆK6„Àyé&1¬À333333ã?áz®GÁ7@�Âõ(\�@}?5^º%gÀj¼t“Àš™™™™™é¿/Ý$�Ž…Àj¼t“Àš™™™™™é¿áz®GÁ7@�Âõ(\�@}?5^º%gÀyé&1¬@333333ã¿/Ý$�Ž…ÀÇK7‰Aà@ºI +‡Æ?X9´È6E@�—nƒÀ"@Ý$�•‡fÀÅ °rh‘é¿°rh‘í|ï?Ë¡E¶ón…ÀÅ °rh‘é¿°rh‘í|ï?X9´È6E@�—nƒÀ"@Ý$�•‡fÀÇK7‰AàÀºI +‡Æ¿Ë¡E¶ón…ÀF¶óýÔxù?�•C‹lë?áz®GáH@…ëQ¸@Év¾ŸeÀ^ºI +ÀP�—nƒà?¸…ëQ„À^ºI +ÀP�—nƒà?áz®GáH@…ëQ¸@Év¾ŸeÀF¶óýÔxù¿�•C‹l뿸…ëQ„À¦›Ä °r@L7‰A`åÐ?Zd;ßßD@ã¥›Ä ð(@ìQ¸…bÀÏ÷S㥛ø¿ +‡Ùî?= ×£pj�ÀÏ÷S㥛ø¿ +‡Ùî?Zd;ßßD@ã¥›Ä ð(@ìQ¸…bÀ¦›Ä °rÀL7‰A`åп= ×£pj�À}?5^ºIÀü©ñÒMbä?ÓMbXéDÀ ×£p=J$@ªñÒMb¬dÀ ×£p= Àyé&1¬è¿Év¾ŸƒÀ ×£p= Àyé&1¬è¿ÓMbXéDÀ ×£p=J$@ªñÒMb¬dÀ}?5^ºI@ü©ñÒMbä¿Év¾ŸƒÀƒÀÊ¡Eþ¿ÍÌÌÌÌÌì?é&1¬LMÀ¦›Ä °ò!@}?5^ºídÀ²�ï§ÆKÀ×£p= ×Û¿ªñÒMb„À²�ï§ÆKÀ×£p= ×Û¿é&1¬LMÀ¦›Ä °ò!@}?5^ºídÀƒÀÊ¡Eþ?ÍÌÌÌÌÌ쿪ñÒMb„À:¸Tã¥›Ä Ø¿�•C‹lçï?´Èv¾ŸZ@@ÇK7‰A %@D‹lçûmjÀ�•C‹lgÀ‹lçû©ñ²¿�•C‹lý‰À�•C‹lgÀ‹lçû©ñ²¿´Èv¾ŸZ@@ÇK7‰A %@D‹lçûmjÀTã¥›Ä Ø?�•C‹lçï¿�•C‹lý‰À}?5^ºI ÀƒÀÊ¡E¶ç?/Ý$�ÅB@ƒÀÊ¡Eö$@²�ï§Æ‡hÀ–C‹lçû À/Ý$�å¿h‘í|?ö‡À–C‹lçû À/Ý$�å¿/Ý$�ÅB@ƒÀÊ¡Eö$@²�ï§Æ‡hÀ}?5^ºI @ƒÀÊ¡E¶ç¿h‘í|?ö‡À= ×£p=@®Gáz®ç?¶óýÔxiB@33333³@+‡ÙîiÀ‘í|?5^Àð§ÆK7‰å?Ï÷S㥌‰À‘í|?5^Àð§ÆK7‰å?¶óýÔxiB@33333³@+‡ÙîiÀ= ×£p=À®Gáz®ç¿Ï÷S㥌‰Àî|?5^:Àsh‘í|?é?ÙÎ÷SãÅ;ÀZd;ßOM,@1¬Z¬iÀ×£p= ×ÀÙÎ÷Sã¥ã¿¢E¶óýÛˆÀ×£p= ×ÀÙÎ÷Sã¥ã¿ÙÎ÷SãÅ;ÀZd;ßOM,@1¬Z¬iÀî|?5^:@sh‘í|?é¿¢E¶óýÛˆÀ¬Zd;¯¿ð?–C‹lç{B@‰A`åÐ"@h‘í|?ågÀË¡E¶óýÀü©ñÒMb�¿´Èv¾Ÿ6‡ÀË¡E¶óýÀü©ñÒMb�¿–C‹lç{B@‰A`åÐ"@h‘í|?ågÀ¬Zd;¯?ð¿´Èv¾Ÿ6‡ÀôýÔxé&Ù?×£p= ×ï?‘í|?5þ>@bX9´H@î|?5^RgÀË¡E¶óýÀB`åÐ"Û¹?)\�ÂõZ†ÀË¡E¶óýÀB`åÐ"Û¹?‘í|?5þ>@bX9´H@î|?5^RgÀôýÔxé&Ù¿×£p= ×ï¿)\�ÂõZ†ÀƒÀÊ¡EÀ1¬Zdã?ú~j¼tSG@L7‰A`¥#@Ãõ(\�ÂfÀu“VÀq= ×£pé¿fffff†Àu“VÀq= ×£pé¿ú~j¼tSG@L7‰A`¥#@Ãõ(\�ÂfÀƒÀÊ¡E@1¬Zdã¿fffff†ÀƒÀÊ¡E À+‡ÙÎ÷ç?Tã¥›Ä 8@¸…ëQx$@`åÐ"ÛagÀã¥›Ä ° Àžï§ÆK7忾Ÿ/Ýì…Àã¥›Ä ° Àžï§ÆK7å¿Tã¥›Ä 8@¸…ëQx$@`åÐ"ÛagÀƒÀÊ¡E @+‡ÙÎ÷翾Ÿ/Ýì…Àü©ñÒMb @h‘í|?5ê?\�Âõ(lC@òÒMbØ&@/Ý$�qiÀ…ëQ¸À‘í|?5^â?Zd;ßOëˆÀ…ëQ¸À‘í|?5^â?\�Âõ(lC@òÒMbØ&@/Ý$�qiÀü©ñÒMb Àh‘í|?5ê¿Zd;ßOëˆÀ/Ý$�•ý?Ë¡E¶óýì?Zd;ßOÝGÀË¡E¶óý @ü©ñÒMæhÀD‹lçû©ÀßO�—nÛ?oƒÀʆˆÀD‹lçû©ÀßO�—nÛ?Zd;ßOÝGÀË¡E¶óý @ü©ñÒMæhÀ/Ý$�•ý¿Ë¡E¶óýì¿oƒÀʆˆÀD‹lçû©@/Ý$�•ë?¢E¶óýÔ>@X9´Èvþ!@?5^ºI´gÀ ×£p= ÀÓMbX9à?/Ý$�Ú†À ×£p= ÀÓMbX9à?¢E¶óýÔ>@X9´Èvþ!@?5^ºI´gÀD‹lçû©À/Ý$�•ë¿/Ý$�Ú†ÀÙÎ÷SãÕ?¬Zd;ßï?áz®G±K@= ×£p} @…ëQ¸ hÀmçû©ñÒÀj¼t“¶?¤p= ×ë‡Àmçû©ñÒÀj¼t“¶?áz®G±K@= ×£p} @…ëQ¸ hÀÙÎ÷SãÕ¿¬Zd;ߦp= ×ë‡ÀºI +‡ À�•C‹lß?NbX9´AÀ°rh‘í|@33333iÀøS㥛Äü¿¬Zd;ßë¿Ház®dˆÀøS㥛Äü¿¬Zd;ßë¿NbX9´AÀ°rh‘í|@33333iÀºI +‡ @�•C‹lß¿Ház®dˆÀØ?¬Zd;ßï?mçû©ñ’4@´Èv¾Ÿ!@+‡ÙjhÀºI +‡ÀÃõ(\�µ?#‡ÀºI +‡ÀÃõ(\�µ?mçû©ñ’4@´Èv¾Ÿ!@+‡ÙjhÀØ¿¬Zd;ßï¿#‡ÀìQ¸…ëÀZd;ßO�ß?ìQ¸…k9@×£p= ×@Å °rh�gÀh‘í|?5ü¿×£p= ×ë¿®Gázd†Àh‘í|?5ü¿×£p= ×ë¿ìQ¸…k9@×£p= ×@Å °rh�gÀìQ¸…ë@Zd;ßO�ß¿®Gázd†Àj¼t“˜ÀTã¥›Ä °?J +‡–=À¤p= ×#!@ö(\�ÂùgÀB`åÐ"ÛÑ¿V-²�ïï¿ã¥›Ä ª†ÀB`åÐ"ÛÑ¿V-²�ïï¿J +‡–=À¤p= ×#!@ö(\�ÂùgÀj¼t“˜@Tã¥›Ä °¿ã¥›Ä ª†À9´Èv¾@ÁÊ¡E¶óÕ?ÇK7‰AÀEÀ /Ý$%@ð§ÆK7IgÀV-²�ïû¿?5^ºI î?fffffC†ÀV-²�ïû¿?5^ºI î?ÇK7‰AÀEÀ /Ý$%@ð§ÆK7IgÀ9´Èv¾ÀÁÊ¡E¶óÕ¿fffffC†ÀD‹lçû© @Ûù~j¼t“?`åÐ"Ûù7@¬Zd;ß@+‡Ù¢jÀôýÔxé&±¿ð?áz®Gý‰ÀôýÔxé&±¿ð?`åÐ"Ûù7@¬Zd;ß@+‡Ù¢jÀD‹lçû© ÀÛù~j¼t“¿áz®Gý‰Àáz®Gá À +‡ÙÎ?`åÐ"ÛYL@ìQ¸…ë@sh‘í|ËiÀD‹lçû©é¿ßO�—n↓Zdú‰ÀD‹lçû©é¿ßO�—nï¿`åÐ"ÛYL@ìQ¸…ë@sh‘í|ËiÀáz®Gá @ +‡Ùο¬Zdú‰À¤p= ×£ÀìQ¸…ëÁ?33333ÓOÀåÐ"Ûù¾+@ð§ÆK7efÀu“Ví¿®Gáz®ï¿oƒÀÊÕ…Àu“Ví¿®Gáz®ï¿33333ÓOÀåÐ"Ûù¾+@ð§ÆK7efÀ¤p= ×£@ìQ¸…ëÁ¿oƒÀÊÕ…ÀåÐ"Ûù~ÀÇK7‰A`é?¶óýÔx9I@D‹lçû)!@ ×£p=6iÀj¼t“ À°rh‘í|ã¿òÒMbøˆÀj¼t“ À°rh‘í|ã¿¶óýÔx9I@D‹lçû)!@ ×£p=6iÀåÐ"Ûù~@ÇK7‰A`é¿òÒMbøˆÀj¼t“Ü?�•C‹lçï?w¾Ÿ/Ý=@bX9´ˆ'@�•C‹l§iÀÓMbX¹ÀƒÀÊ¡E¶³?ÙÎ÷SãïˆÀÓMbX¹ÀƒÀÊ¡E¶³?w¾Ÿ/Ý=@bX9´ˆ'@�•C‹l§iÀj¼t“Ü¿�•C‹lçï¿ÙÎ÷SãïˆÀoƒÀÊ¡ ÀL7‰A`åÀ?J +‡ÆB@ªñÒMb@)\�ÂõÄiÀV-²�ß¿ƒÀÊ¡E¶ï¿ßO�—nY‰ÀV-²�ß¿ƒÀÊ¡E¶ï¿J +‡ÆB@ªñÒMb@)\�ÂõÄiÀoƒÀÊ¡ @L7‰A`åÀ¿ßO�—nY‰ÀTã¥›Ä À¿ð?/Ý$ÁC@²�ï§Æ‹,@#Ûù~jDhÀ¤p= ×£ÀÛù~j¼t“¿‰A`åШ‡À¤p= ×£ÀÛù~j¼t“¿/Ý$ÁC@²�ï§Æ‹,@#Ûù~jDhÀTã¥›Ä À?ð¿‰A`åШ‡Àü©ñÒMbð?V-²�ï?T㥛ÄF@+‡ÙN,@`åÐ"ÛågÀš™™™™À×£p= ×Ã?V-²d‡Àš™™™™À×£p= ×Ã?T㥛ÄF@+‡ÙN,@`åÐ"ÛågÀü©ñÒMbð¿V-²�ï¿V-²d‡ÀP�—nƒö¿ìQ¸…ëí? +‡99@J +‡V @“VhÀú~j¼t“ ÀbX9´ÈÖ¿¤p= ×ç†Àú~j¼t“ ÀbX9´ÈÖ¿ +‡99@J +‡V @“VhÀP�—nƒö?ìQ¸…ëí¿¤p= ×ç†Àw¾Ÿ/Ý@!°rh‘íÜ?u“VNDÀ;ßO�—®$@�Âõ(\iÀé&1¬À%�•C‹ì?ÁÊ¡E¶�ˆÀé&1¬À%�•C‹ì?u“VNDÀ;ßO�—®$@�Âõ(\iÀw¾Ÿ/ÝÀ!°rh‘íÜ¿ÁÊ¡E¶�ˆÀL7‰A`å@ffffffâ?Zd;ß_CÀË¡E¶ó½(@V-²�gÀ%�•C‹ À“V-ê? /Ý$¸…À%�•C‹ À“V-ê?Zd;ß_CÀË¡E¶ó½(@V-²�gÀL7‰A`åÀffffffâ¿ /Ý$¸…À}?5^ºIð?^ºI +ï?u“VfPÀ¸…ëQx!@/Ý$áhÀ€Àu“VÍ?¼t“÷ˆÀ€Àu“VÍ?u“VfPÀ¸…ëQx!@/Ý$áhÀ}?5^ºIð¿^ºI +t“÷ˆÀ¸çû©ñÒM@‘í|?5^æ?Év¾ŸoL@Ñ"Ûù~ê)@…ëQ¸gÀ�•C‹lçÀáz®Gáæ?®Gázî†À�•C‹lçÀáz®Gáæ?Év¾ŸoL@Ñ"Ûù~ê)@…ëQ¸gÀçû©ñÒMÀ‘í|?5^æ¿®Gázî†Àš™™™™™õ¿ +‡Ùî?¢E¶óýÔM@î|?5^º%@åÐ"ÛùšiÀ?5^ºIŒÀ /Ý$Ñ¿}?5^ºÒ‰À?5^ºIŒÀ /Ý$Ñ¿¢E¶óýÔM@î|?5^º%@åÐ"ÛùšiÀš™™™™™õ? +‡Ùî¿}?5^ºÒ‰ÀÕxé&1 ÀƒÀÊ¡E¶ã?ìQ¸…‹9@Å °rh @j¼t“ iÀ‘í|?5^Àžï§ÆK7é¿\�Âõ(2ˆÀ‘í|?5^Àžï§ÆK7é¿ìQ¸…‹9@Å °rh @j¼t“ iÀÕxé&1 @ƒÀÊ¡E¶ã¿\�Âõ(2ˆÀT㥛Ġ@-²�ï§â?ÍÌÌÌÌ@@ºI +‡,@X9´ÈvÆiÀªñÒMbÀ–C‹lçûé?®Gáz3‰ÀªñÒMbÀ–C‹lçûé?ÍÌÌÌÌ@@ºI +‡,@X9´ÈvÆiÀT㥛ĠÀ-²�ï§â¿®Gáz3‰À–C‹lçû @/Ý$�Ý?ÙÎ÷S£A@!°rh‘m @þÔxé&jÀ^ºI +ÿ¿ü©ñÒMbì?¾Ÿ/ݵ‰À^ºI +ÿ¿ü©ñÒMbì?ÙÎ÷S£A@!°rh‘m @þÔxé&jÀ–C‹lçû À/Ý$�Ý¿¾Ÿ/ݵ‰À®Gáz.@/Ý$�¥?L7‰A`e:@ÙÎ÷Sã%@9´Èv¾ËiÀÑ"Ûù~jÌ¿+‡ÙÎ÷ï?1¬Z‰ÀÑ"Ûù~jÌ¿+‡ÙÎ÷ï?L7‰A`e:@ÙÎ÷Sã%@9´Èv¾ËiÀ®Gáz.À/Ý$�¥¿1¬Z‰À^ºI +ù?D‹lçû©í??5^ºILO@ ×£p=J @¦›Ä °šfÀu“VÀªñÒMbØ?ÙÎ÷Sã†Àu“VÀªñÒMbØ??5^ºILO@ ×£p=J @¦›Ä °šfÀ^ºI +ù¿D‹lçû©í¿ÙÎ÷Sã†À`åÐ"Ûù@ /Ý$Ñ?–C‹lçû?@J +‡%@ÍÌÌÌÌ4gÀ¶óýÔxéô¿ +‡Ùî?-²�ï†À¶óýÔxéô¿ +‡Ùî?–C‹lçû?@J +‡%@ÍÌÌÌÌ4gÀ`åÐ"ÛùÀ /Ý$Ñ¿-²�ï†À-²�ï§Æ@®Gázæ?`åÐ"Û)EÀ33333ó%@�Âõ(\ggÀ¼t“V À^ºI +ç?}?5^ºd†À¼t“V À^ºI +ç?`åÐ"Û)EÀ33333ó%@�Âõ(\ggÀ-²�ï§ÆÀ®Gázæ¿}?5^ºd†Àmçû©ñÒ@sh‘í|?å?øS㥛$A@D‹lçû©@u“VRhÀsh‘í|?ÀV-²�ïç?ö(\�ЇÀsh‘í|?ÀV-²�ïç?øS㥛$A@D‹lçû©@u“VRhÀmçû©ñÒÀsh‘í|?å¿ö(\�ЇÀ;ßO�—n À`åÐ"Ûùâ?øS㥛TMÀ9´Èv¾ß"@ð§ÆK7UiÀã¥›Ä °ÀÃõ(\�Â鿃‰Àã¥›Ä °ÀÃõ(\�Âé¿øS㥛TMÀ9´Èv¾ß"@ð§ÆK7UiÀ;ßO�—n @`åÐ"Ûù⿃‰Àj¼t“@q= ×£pá?ü©ñÒM¢A@…ëQ¸…'@D‹lçû¹hÀmçû©ñÒÀ7‰A`åÐê?ÍÌÌÌ̈Àmçû©ñÒÀ7‰A`åÐê?ü©ñÒM¢A@…ëQ¸…'@D‹lçû¹hÀj¼t“Àq= ×£pá¿ÍÌÌÌ̈ÀÇK7‰A`@�•C‹lç?ð§ÆK7©?@‰A`åÐâ'@}?5^ºùiÀ7‰A`åPÀ˜nƒÀÊå?)\�Âõp‰À7‰A`åPÀ˜nƒÀÊå?ð§ÆK7©?@‰A`åÐâ'@}?5^ºùiÀÇK7‰A`À�•C‹lç¿)\�Âõp‰À!°rh‘mÀÙÎ÷SãÅ?+‡Ùî=À`åÐ"Ûy)@= ×£piÀ= ×£p=ð¿…ëQ¸…ï¿yé&1RˆÀ= ×£p=ð¿…ëQ¸…ï¿+‡Ùî=À`åÐ"Ûy)@= ×£piÀ!°rh‘m@ÙÎ÷SãÅ¿yé&1RˆÀD‹lçû)ÀÙÎ÷S㥻?5^ºI rFÀð§ÆK7É @®GáziÀÁÊ¡E¶óÝ¿+‡ÙÎï¿Ï÷S㥣ˆÀÁÊ¡E¶óÝ¿+‡ÙÎï¿5^ºI rFÀð§ÆK7É @®GáziÀD‹lçû)@ÙÎ÷S㥻¿Ï÷S㥣ˆÀÁÊ¡E¶ó @Zd;ßO�ç?‹lçû©aD@R¸…ë&@‰A`åÐâfÀ¦›Ä °rÀD‹lçû©å?“VÝ…À¦›Ä °rÀD‹lçû©å?‹lçû©aD@R¸…ë&@‰A`åÐâfÀÁÊ¡E¶ó ÀZd;ßO�ç¿“VÝ…ÀT㥛Ġ@ÙÎ÷Sã¥Ó?Å °rhAFÀžï§ÆKw'@w¾Ÿ/¥gÀÙÎ÷Sãû¿X9´Èvî?w¾Ÿ/®†ÀÙÎ÷Sãû¿X9´Èvî?Å °rhAFÀžï§ÆKw'@w¾Ÿ/¥gÀT㥛ĠÀÙÎ÷Sã¥Ó¿w¾Ÿ/®†Àáz®Gá@ÁÊ¡E¶óÝ?ªñÒMbP;À¬Zd;Ÿ"@áz®G¡gÀw¾Ÿ/ÝÀ}?5^ºIì?L7‰A`$†Àw¾Ÿ/ÝÀ}?5^ºIì?ªñÒMbP;À¬Zd;Ÿ"@áz®G¡gÀáz®GáÀÁÊ¡E¶óÝ¿L7‰A`$†ÀoƒÀÊ!À#Ûù~j¼Ô?1¬Z„K@ú~j¼t“ @þÔxé&]fÀj¼t“ö¿ƒÀÊ¡Eî¿R¸…ëÄ…Àj¼t“ö¿ƒÀÊ¡Eî¿1¬Z„K@ú~j¼t“ @þÔxé&]fÀoƒÀÊ!@#Ûù~j¼Ô¿R¸…ëÄ…Àáz®Gáú¿‡ÙÎ÷Së?{®Gá EÀÏ÷Sã¥@Zd;ßOIiÀu“VÀ¤p= ×£à¿/Ý$ÕˆÀu“VÀ¤p= ×£à¿{®Gá EÀÏ÷Sã¥@Zd;ßOIiÀáz®Gáú?‡ÙÎ÷Së¿/Ý$ÕˆÀö(\�Âõü? +‡Ùî?‹lçû©±I@5^ºI -@{®GáÂiÀJ +‡ÀJ +‡Ñ?+‡Ùλ‰ÀJ +‡ÀJ +‡Ñ?‹lçû©±I@5^ºI -@{®GáÂiÀö(\�Âõü¿ +‡Ùî¿+‡Ùλ‰ÀÛù~j¼t ÀÁÊ¡E¶óå?j¼t“øAÀƒÀÊ¡Eö$@�—nƒŒgÀB`åÐ"Û ÀÝ$�•Cç¿;ßO�—]†ÀB`åÐ"Û ÀÝ$�•Cç¿j¼t“øAÀƒÀÊ¡Eö$@�—nƒŒgÀÛù~j¼t @ÁÊ¡E¶óå¿;ßO�—]†ÀÝ$�•CÀ‘í|?5^ê?NbX9DCÀš™™™™Y#@oƒÀÊ�iÀw¾Ÿ/ÝÀ¾Ÿ/Ý$â¿u“V‰Àw¾Ÿ/ÝÀ¾Ÿ/Ý$â¿NbX9DCÀš™™™™Y#@oƒÀÊ�iÀÝ$�•C@‘í|?5^ê¿u“V‰ÀR¸…ëÑÀX9´Èv¾¿?+‡Ù·CÀÑ"Ûù~ª%@!°rh‘ÕiÀw¾Ÿ/Ýä¿X9´Èv¾ï¿ÙÎ÷S”‰Àw¾Ÿ/Ýä¿X9´Èv¾ï¿+‡Ù·CÀÑ"Ûù~ª%@!°rh‘ÕiÀR¸…ëÑ@X9´Èv¾¿¿ÙÎ÷S”‰Àð§ÆK7‰À`åÐ"ÛùÖ?h‘í|?U?@�Âõ(\�@mçû©ñ¶hÀL7‰A`åò¿B`åÐ"Ûí¿j¼t“÷‡ÀL7‰A`åò¿B`åÐ"Ûí¿h‘í|?U?@�Âõ(\�@mçû©ñ¶hÀð§ÆK7‰@`åÐ"ÛùÖ¿j¼t“÷‡À‘í|?5^@åÐ"Ûù~ê?¬Zd›=À¢E¶óýÔ@´Èv¾ŸniÀ´Èv¾Ÿ ÀÁÊ¡E¶óá?øS㥛žˆÀ´Èv¾Ÿ ÀÁÊ¡E¶óá?¬Zd›=À¢E¶óýÔ@´Èv¾ŸniÀ‘í|?5^ÀåÐ"Ûù~ê¿øS㥛žˆÀòÒMbX÷¿mçû©ñÒí?mçû©ñÒ?@ü©ñÒM¢ @d;ßO�siÀÕxé&1À^ºI +׿Ï÷S㥭ˆÀÕxé&1À^ºI +׿mçû©ñÒ?@ü©ñÒM¢ @d;ßO�siÀòÒMbX÷?mçû©ñÒí¿Ï÷S㥭ˆÀÛù~j¼t @\�Âõ(\ç?yé&1 >À#Ûù~j|%@?5^ºIøiÀ‘í|?5^ÀÙÎ÷Sãå?)\�Âõ^‰À‘í|?5^ÀÙÎ÷Sãå?yé&1 >À#Ûù~j|%@?5^ºIøiÀÛù~j¼t À\�Âõ(\ç¿)\�Âõ^‰ÀÕxé&1Ô?V-²�ïï?ö(\�Â%HÀ+‡Ùη%@#Ûù~jtiÀåÐ"ÛùþÀ¸…ëQ¸®?ßO�—nI‰ÀåÐ"ÛùþÀ¸…ëQ¸®?ö(\�Â%HÀ+‡Ùη%@#Ûù~jtiÀÕxé&1Ô¿V-²�ïï¿ßO�—nI‰ÀlZd;ßO� Àé&1¬â?ƒÀÊ¡¥I@ü©ñÒM¢ @X9´ÈRoÀsh‘í|?À‘í|?5^ê¿…ëQ¸‚ŽÀsh‘í|?À‘í|?5^꿃ÀÊ¡¥I@ü©ñÒM¢ @X9´ÈRoÀZd;ßO� @é&1¬â¿…ëQ¸‚ŽÀNbX9´Àî|?5^ºå?)\�Âõ R@V-²�o@j¼t“TmÀ^ºI +À°rh‘í|ç¿þÔxé&¦�À^ºI +À°rh‘í|ç¿)\�Âõ R@V-²�o@j¼t“TmÀNbX9´@î|?5^ºå¿þÔxé&¦�Àq= ×£p @Zd;ßO�ß?é&1¬ìAÀbX9´H @ð§ÆK7éjÀJ +‡ÿ¿×£p= ×ë?B`åÐ"æŠÀJ +‡ÿ¿×£p= ×ë?é&1¬ìAÀbX9´H @ð§ÆK7éjÀq= ×£p ÀZd;ßO�ß¿B`åÐ"æŠÀ‡ÙÎ÷SÀ%�•C‹Ü?d;ßO�>Àçû©ñÒM&@P�—nKkÀHáz®GÀ¤p= ×£ì¿�—nƒ0‹ÀHáz®GÀ¤p= ×£ì¿d;ßO�>Àçû©ñÒM&@P�—nKkÀ‡ÙÎ÷S@%�•C‹Ü¿�—nƒ0‹À\�Âõ(\@°rh‘í|Ï?®GázNGÀ‰A`åÐ"-@V-~jÀ#Ûù~j¼ú¿5^ºI ï?ã¥›Ä ­ŠÀ#Ûù~j¼ú¿5^ºI ï?®GázNGÀ‰A`åÐ"-@V-~jÀ\�Âõ(\À°rh‘í|Ï¿ã¥›Ä ­ŠÀÏ÷S㥛@333333ã?-²�ï§VL@!°rh‘m%@{®Gá*mÀÙÎ÷SãÀš™™™™™é?q= ×£O�ÀÙÎ÷SãÀš™™™™™é?-²�ï§VL@!°rh‘m%@{®Gá*mÀÏ÷S㥛À333333ã¿q= ×£O�ÀV-²�oÀð§ÆK7‰Ù?V-²CÀÙÎ÷Sã%@Zd;ßmÀ�•C‹lçÀòÒMbXí¿#Ûù~j�À�•C‹lçÀòÒMbXí¿V-²CÀÙÎ÷Sã%@Zd;ßmÀV-²�o@ð§ÆK7‰Ù¿#Ûù~j�À+‡ÙÎw@ºI +‡¦?fffffJ@ /Ý$'@åÐ"ÛùònÀX9´Èvο+‡ÙÎ÷ï?ºI +HŽÀX9´Èvο+‡ÙÎ÷ï?fffffJ@ /Ý$'@åÐ"ÛùònÀ+‡ÙÎwÀºI +‡¦¿ºI +HŽÀÉv¾Ÿ¯À%�•C‹à?¬ZdÛA@bX9´ˆ&@ÙÎ÷SãÝlÀ%�•C‹À1¬Zdë¿�Âõ(\´ŒÀ%�•C‹À1¬Zd뿬ZdÛA@bX9´ˆ&@ÙÎ÷SãÝlÀÉv¾Ÿ¯@%�•C‹à¿�Âõ(\´ŒÀP�—nƒ ÀìQ¸…ëÑ?ÍÌÌÌÌl>ÀÙÎ÷Sã@J +‡âjÀ333333ñ¿¸…ëQ¸î¿�Âõ(\¯ŠÀ333333ñ¿¸…ëQ¸î¿ÍÌÌÌÌl>ÀÙÎ÷Sã@J +‡âjÀP�—nƒ @ìQ¸…ëÑ¿�Âõ(\¯ŠÀP�—nƒö¿�—nƒÀî?q= ×£�>@ /Ý$Æ%@X9´ÈþmÀºI +‡Àî|?5^ºÑ¿Å °rhA�ÀºI +‡Àî|?5^ºÑ¿q= ×£�>@ /Ý$Æ%@X9´ÈþmÀP�—nƒö?�—nƒÀî¿Å °rhA�Àã¥›Ä 0@š™™™™™á?ü©ñÒM¢%ÀåÐ"Ûù¾-@yé&1œnÀð§ÆK7‰À¸…ëQ¸ê? /Ý$Ï�Àð§ÆK7‰À¸…ëQ¸ê?ü©ñÒM¢%ÀåÐ"Ûù¾-@yé&1œnÀã¥›Ä 0Àš™™™™™á¿ /Ý$Ï�À‘í|?5^@´Èv¾Ÿß?d;ßO�;@/Ý$�U#@sh‘í|#mÀÉv¾Ÿ/À+‡ÙÎ÷ë?Å °rh¥ŒÀÉv¾Ÿ/À+‡ÙÎ÷ë?d;ßO�;@/Ý$�U#@sh‘í|#mÀ‘í|?5^À´Èv¾Ÿ߿аrh¥ŒÀ‹lçû©ñÀš™™™™™Ñ? +‡™N@²�ï§ÆK@ÍÌÌÌÌ@jÀî|?5^ºñ¿�—nƒÀî¿mçû©ñéŠÀî|?5^ºñ¿�—nƒÀî¿ +‡™N@²�ï§ÆK@ÍÌÌÌÌ@jÀ‹lçû©ñ@š™™™™™Ñ¿mçû©ñéŠÀ!°rh‘m@NbX9´Ø?�•C‹lWH@¬Zd;ß&@�—nƒØnÀ…ëQ¸À/Ý$�í?�—nƒ+ŽÀ…ëQ¸À/Ý$�í?�•C‹lWH@¬Zd;ß&@�—nƒØnÀ!°rh‘mÀNbX9´Ø¿�—nƒ+ŽÀX9´Èv¾À;ßO�—næ?Ház®IÀ–C‹lçû&@Ï÷Sã¥ËjÀh‘í|?5À7‰A`åÐæ¿ +‡+‹Àh‘í|?5À7‰A`åÐæ¿Ház®IÀ–C‹lçû&@Ï÷Sã¥ËjÀX9´Èv¾@;ßO�—næ¿ +‡+‹ÀV-2@ºI +‡â?¾Ÿ/ÝäB@^ºI ë'@Zd;ßójÀw¾Ÿ/Ý À®Gázê?ö(\�ÂóŠÀw¾Ÿ/Ý À®Gázê?¾Ÿ/ÝäB@^ºI ë'@Zd;ßójÀV-2ÀºI +‡â¿ö(\�ÂóŠÀ#Ûù~j¼ ÀD‹lçû©á?áz®GLÀ^ºI +!@Ý$�•'oÀòÒMbXÀã¥›Ä °ê¿oƒÀÊHŽÀòÒMbXÀã¥›Ä °ê¿áz®GLÀ^ºI +!@Ý$�•'oÀ#Ûù~j¼ @D‹lçû©á¿oƒÀÊHŽÀÏ÷S㥛@øS㥛Ää?‡ÙÎ÷CCÀßO�—n@X9´ÈvlÀX9´Èv¾ÀR¸…ëQè?bX9´ŒÀX9´Èv¾ÀR¸…ëQè?‡ÙÎ÷CCÀßO�—n@X9´ÈvlÀÏ÷S㥛ÀøS㥛Ää¿bX9´ŒÀ+‡ÙÎw@ªñÒMb¨?yé&1|A@œÄ °r(%@œÄ °r,kÀ´Èv¾ŸÏ¿+‡ÙÎ÷ï?®GázX‹À´Èv¾ŸÏ¿+‡ÙÎ÷ï?yé&1|A@œÄ °r(%@œÄ °r,kÀ+‡ÙÎwÀªñÒMb¨¿®GázX‹À¸…ëQ¸ø¿333333ï?!°rh‘ýGÀÓMbXù-@¤p= ×ËlÀbX9´HÀ}?5^ºIÌ¿�—nƒÃŒÀbX9´HÀ}?5^ºIÌ¿!°rh‘ýGÀÓMbXù-@¤p= ×ËlÀ¸…ëQ¸ø?333333ï¿�—nƒÃŒÀ˜nƒÀÊí?¬Zd;ï?¶óýÔx‰?À ×£p=Š!@;ßO�—†kÀßO�—n’ÀÕxé&1Ì?®Gázs‹ÀßO�—n’ÀÕxé&1Ì?¶óýÔx‰?À ×£p=Š!@;ßO�—†kÀ˜nƒÀÊí¿¬Zd;ï¿®Gázs‹ÀªñÒMb�ÀƒÀÊ¡E¶Ã?‡ÙÎ÷óI@®Gáz”'@Ãõ(\�*nÀ)\�Âõ(ì¿V-²�ï¿ +‡Í�À)\�Âõ(ì¿V-²�ᅦÙÎ÷óI@®Gáz”'@Ãõ(\�*nÀªñÒMb�@ƒÀÊ¡E¶Ã¿ +‡Í�Àsh‘í|? ÀÍÌÌÌÌÌä?J +‡ÖHÀ!°rh‘m!@q= ×£@jÀ²�ï§ÆKÀR¸…ëQè¿w¾Ÿ/{ŠÀ²�ï§ÆKÀR¸…ëQè¿J +‡ÖHÀ!°rh‘m!@q= ×£@jÀsh‘í|? @ÍÌÌÌÌÌä¿w¾Ÿ/{ŠÀ¤p= ×£@…ëQ¸Ý?åÐ"Ûù^RÀfffffæ@Év¾ŸãlÀÉv¾Ÿ/ù¿{®Gázì?…ëQ¸B�ÀÉv¾Ÿ/ù¿{®Gázì?åÐ"Ûù^RÀfffffæ@Év¾ŸãlÀ¤p= ×£À…ëQ¸Ý¿…ëQ¸B�À/Ý$�@�•C‹lç?´Èv¾Ÿz@@u“VN @Év¾ŸkÀTã¥›Ä À˜nƒÀÊå?9´Èv¾‹ÀTã¥›Ä À˜nƒÀÊå?´Èv¾Ÿz@@u“VN @Év¾ŸkÀ/Ý$�À�•C‹lç¿9´Èv¾‹ÀHáz®G À�•C‹lç?ìQ¸…+>ÀìQ¸…+#@d;ßO�‡oÀþÔxé&1 À˜nƒÀÊå¿X9´ÈvƒŽÀþÔxé&1 À˜nƒÀÊå¿ìQ¸…+>ÀìQ¸…+#@d;ßO�‡oÀHáz®G @�•C‹lç¿X9´ÈvƒŽÀ¶óýÔxé@¬Zd;¯?ªñÒMbP8@ÁÊ¡E¶³'@ú~j¼t§lÀffffffÖ¿V-²�ïï?`åÐ"Û>ŒÀffffffÖ¿V-²�ïï?ªñÒMbP8@ÁÊ¡E¶³'@ú~j¼t§lÀ¶óýÔxéÀ¬Zd;¯¿`åÐ"Û>ŒÀZd;ßO@ /Ý$Ñ?ƒÀÊ¡Õ@ÀË¡E¶ó=-@…ëQ¸ lÀ5^ºI ý¿ +‡Ùî?yé&1ï‹À5^ºI ý¿ +‡Ùî?ƒÀÊ¡Õ@ÀË¡E¶ó=-@…ëQ¸ lÀZd;ßOÀ /Ý$Ñ¿yé&1ï‹ÀV-²�õ?Ãõ(\�Âí?J +‡ÖMÀ¾Ÿ/ݤ@-²�ï§lÀœÄ °rh À°rh‘í|×?…ëQ¸‰ŒÀœÄ °rh À°rh‘í|×?J +‡ÖMÀ¾Ÿ/ݤ@-²�ï§lÀV-²�õ¿Ãõ(\�Âí¿…ëQ¸‰ŒÀú~j¼tÀÉv¾Ÿ/é?ÓMbX¹F@1¬Zä+@`åÐ"ÛikÀ`åÐ"ÛyÀ-²�ï§Æã¿sh‘í|Û‹À`åÐ"ÛyÀ-²�ï§Æã¿ÓMbX¹F@1¬Zä+@`åÐ"ÛikÀú~j¼t@Év¾Ÿ/é¿sh‘í|Û‹Àü©ñÒMb@…ëQ¸í?š™™™™ÉI@q= ×£0%@¤p= ×/lÀÀåÐ"Ûù~Ú?ú~j¼t�ŒÀÀåÐ"Ûù~Ú?š™™™™ÉI@q= ×£0%@¤p= ×/lÀü©ñÒMbÀ…ëQ¸í¿ú~j¼t�ŒÀ+‡ÙNÀoƒÀÊ¡Å?“V�4À9´Èv¾_'@¤p= ×wlÀã¥›Ä °î¿Zd;ßO�ï¿Ház®ŒÀã¥›Ä °î¿Zd;ßO�ï¿“V�4À9´Èv¾_'@¤p= ×wlÀ+‡ÙN@oƒÀʡſHáz®ŒÀö(\�Âõ @Tã¥›Ä Ð?oƒÀÊ1D@/Ý$�@}?5^º™jÀ ×£p= ë¿`åÐ"Ûùî?NbX9lŠÀ ×£p= ë¿`åÐ"Ûùî?oƒÀÊ1D@/Ý$�@}?5^º™jÀö(\�Âõ ÀTã¥›Ä Ð¿NbX9lŠÀ¾Ÿ/Ý$Ö?×£p= ×ï?Ûù~j¼äB@+‡ÙÎw@�•C‹l{mÀJ +‡ Àé&1¬º?®Gáz%�ÀJ +‡ Àé&1¬º?Ûù~j¼äB@+‡ÙÎw@�•C‹l{mÀ¾Ÿ/Ý$Ö¿×£p= ×ï¿®Gáz%�À+‡ÙÎ÷Ó¿V-²�ïï?d;ßO�Ç@@¬Zd;Ÿ%@Ház®7nÀfffffæÀ¸…ëQ¸®¿q= ×£{�ÀfffffæÀ¸…ëQ¸®¿d;ßO�Ç@@¬Zd;Ÿ%@Ház®7nÀ+‡ÙÎ÷Ó?V-²�ïï¿q= ×£{�À¶óýÔxé@åÐ"Ûù~î?j¼t“(C@Év¾Ÿï-@Zd;ßÛmÀT㥛ĠÀ1¬ZdÓ?ÍÌÌÌÌd�ÀT㥛ĠÀ1¬ZdÓ?j¼t“(C@Év¾Ÿï-@Zd;ßÛmÀ¶óýÔxéÀåÐ"Ûù~î¿ÍÌÌÌÌd�À˜nƒÀJÀþÔxé&1È?+‡ÙÎC@J +‡V%@P�—nsoÀ‡ÙÎ÷Sï¿�•C‹lï¿]ŽÀ‡ÙÎ÷Sï¿�•C‹lï¿+‡ÙÎC@J +‡V%@P�—nsoÀ˜nƒÀJ@þÔxé&1È¿]ŽÀTã¥›Ä ä?-²�ï§Æï?¾Ÿ/Ý4DÀªñÒMb�&@J +‡âkÀh‘í|?µÀq= ×£p½?°rh‘íõ‹Àh‘í|?µÀq= ×£p½?¾Ÿ/Ý4DÀªñÒMb�&@J +‡âkÀTã¥›Ä ä¿-²�ï§Æï¿°rh‘íõ‹À= ×£p=ô¿ã¥›Ä °î?-²�ï§æIÀ¢E¶óýT!@w¾Ÿ/ÉmÀd;ßO�À“V-Ò¿×£p= e�Àd;ßO�À“V-Ò¿-²�ï§æIÀ¢E¶óýT!@w¾Ÿ/ÉmÀ= ×£p=ô?ã¥›Ä °î¿×£p= e�À¸…ëQ¸ð¿ +‡Ùî?R¸…ë±IÀî|?5^: @Ház®ÏnÀçû©ñÒMÀ /Ý$Ñ¿sh‘í|û�Àçû©ñÒMÀ /Ý$Ñ¿R¸…ë±IÀî|?5^: @Ház®ÏnÀ¸…ëQ¸ð? +‡Ùî¿sh‘í|û�À‡ÙÎ÷S @F¶óýÔxå?°rh‘íPÀyé&1l$@î|?5^ÆiÀ%�•C‹ ÀƒÀÊ¡E¶ç?‰A`åÐwŠÀ%�•C‹ ÀƒÀÊ¡E¶ç?°rh‘íPÀyé&1l$@î|?5^ÆiÀ‡ÙÎ÷S ÀF¶óýÔx忉A`åÐwŠÀ+‡ÙÎ÷@ƒÀÊ¡Eæ?-²�ïWF@R¸…ëQ@ö(\�ÂÑjÀffffffÀ`åÐ"Ûùæ??5^ºI'‹ÀffffffÀ`åÐ"Ûùæ?-²�ïWF@R¸…ëQ@ö(\�ÂÑjÀ+‡ÙÎ÷ÀƒÀÊ¡Eæ¿?5^ºI'‹À�Âõ(\�î?°rh‘í|ï?ÇK7‰A@:@ßO�—nR&@yé&1 lÀ-²�ï§FÀ-²�ï§Æ?¬Zd;ë‹À-²�ï§FÀ-²�ï§Æ?ÇK7‰A@:@ßO�—nR&@yé&1 lÀ�Âõ(\�î¿°rh‘í|↓Zd;ë‹Àu“Vå¿ÙÎ÷Sã¥ï?j¼t“8B@V-²!@ /Ý$¢nÀœÄ °rhÀßO�—nÿ/Ý$Ð�ÀœÄ °rhÀßO�—nÿj¼t“8B@V-²!@ /Ý$¢nÀu“Vå?ÙÎ÷Sã¥ï¿/Ý$Ð�ÀÏ÷S㥛ð?1¬Zdï?¬ZdL@ºI +&@Zd;ßO1lÀ�•C‹ìÀö(\�ÂõÈ?ã¥›Ä ³ŒÀ�•C‹ìÀö(\�ÂõÈ?¬ZdL@ºI +&@Zd;ßO1lÀÏ÷S㥛ð¿1¬Zdï¿ã¥›Ä ³ŒÀ1¬Zd@R¸…ëQä?q= ×£ð+ÀbX9´H,@ÙÎ÷Sã)oÀøS㥛ÄÀNbX9´è?+‡ÙTŽÀøS㥛ÄÀNbX9´è?q= ×£ð+ÀbX9´H,@ÙÎ÷Sã)oÀ1¬ZdÀR¸…ëQä¿+‡ÙTŽÀ-²�ï§F@ÁÊ¡E¶óá?ú~j¼tsOÀ+‡ÙÎ&@h‘í|?‘nÀÍÌÌÌÌÌÀåÐ"Ûù~ê?¶óýÔx ŽÀÍÌÌÌÌÌÀåÐ"Ûù~ê?ú~j¼tsOÀ+‡ÙÎ&@h‘í|?‘nÀ-²�ï§FÀÁÊ¡E¶óá¿¶óýÔx ŽÀßO�—n’À�•C‹lß?˜nƒÀjS@‹lçû©1'@Ãõ(\�ÖmÀ?5^ºI À¬Zd;ßë¿Ñ"Ûù~ŽÀ?5^ºI À¬Zd;ß뿘nƒÀjS@‹lçû©1'@Ãõ(\�ÖmÀßO�—n’@�•C‹lß¿Ñ"Ûù~ŽÀßO�—ný¿B`åÐ"Ûí?åÐ"ÛùG@Å °rhÑ$@ºI +¯lÀçû©ñÒÍÀ´Èv¾Ÿ׿ƒÀÊ¡EÕŒÀçû©ñÒÍÀ´Èv¾Ÿ׿åÐ"ÛùG@Å °rhÑ$@ºI +¯lÀßO�—ný?B`åÐ"Ûí¿ƒÀÊ¡EÕŒÀ +‡Ù@Ñ"Ûù~jì?¸…ëQØ0ÀÃõ(\�$@˜nƒÀoÀ333333À/Ý$�Ý?×£p= *ŽÀ333333À/Ý$�Ý?¸…ëQØ0ÀÃõ(\�$@˜nƒÀoÀ +‡ÙÀÑ"Ûù~jì¿×£p= *ŽÀ{®Gáz @^ºI +Ç?mçû©ñòI@ÙÎ÷Sã%@X9´ÈvÂjÀÃõ(\�Âå¿Ûù~j¼tï? /Ý$Y‹ÀÃõ(\�Âå¿Ûù~j¼tï?mçû©ñòI@ÙÎ÷Sã%@X9´ÈvÂjÀ{®Gáz À^ºI +Ç¿ /Ý$Y‹ÀƒÀÊ¡E¶ÿ?V-²�ë?À‹lçû©1 @ºI +?oÀªñÒMb ÀþÔxé&1à?oƒÀÊQŽÀªñÒMb ÀþÔxé&1à?À‹lçû©1 @ºI +?oÀƒÀÊ¡E¶ÿ¿V-²�ë¿oƒÀÊQŽÀÇK7‰A`@1¬Zdã?#Ûù~j CÀ�Âõ(\�&@\lÀåÐ"Ûù~ Àq= ×£pé?òÒMbXŒÀåÐ"Ûù~ Àq= ×£pé?#Ûù~j CÀ�Âõ(\�&@\lÀÇK7‰A`À1¬Zdã¿òÒMbXŒÀPÀð§ÆK7‰ù¿V-²í?–C‹lçÛ4@q= ×£°!@‹lçû©µkÀÍÌÌÌÌÌÀ¬Zd;ß׿+‡ÙÎV‹ÀÍÌÌÌÌÌÀ¬Zd;ß׿–C‹lçÛ4@q= ×£°!@‹lçû©µkÀð§ÆK7‰ù?V-²í¿+‡ÙÎV‹ÀÇK7‰A`@u“Vé?‡ÙÎ÷ÓJÀD‹lçûé @T㥛ÄPlÀ-²�ï§ À�•C‹lçã?w¾Ÿ/�ŒÀ-²�ï§ À�•C‹lçã?‡ÙÎ÷ÓJÀD‹lçûé @T㥛ÄPlÀÇK7‰A`Àu“Vé¿w¾Ÿ/�ŒÀTã¥›Ä À333333ë?‰A`åÐÂIÀÙÎ÷Sã¥-@˜nƒÀ‚mÀºI +‡À¢E¶óýÔà¿Å °rh=�ÀºI +‡À¢E¶óýÔ࿉A`åÐÂIÀÙÎ÷Sã¥-@˜nƒÀ‚mÀTã¥›Ä @333333ë¿Å °rh=�ÀÏ÷S㥛 @}?5^ºIÜ?¼t“nQ@%�•C !@+‡ÙNnÀ333333ý¿NbX9´ì?j¼t“.ŽÀ333333ý¿NbX9´ì?¼t“nQ@%�•C !@+‡ÙNnÀÏ÷S㥛 À}?5^ºIÜ¿j¼t“.ŽÀôýÔxé¦@ºI +‡Þ?áz®GF@×£p= ×,@œÄ °r8oÀV-² ÀTã¥›Ä ì?ÓMbXYŽÀV-² ÀTã¥›Ä ì?áz®GF@×£p= ×,@œÄ °r8oÀôýÔxé¦ÀºI +‡Þ¿ÓMbXYŽÀé&1¬Ú?×£p= ×ï?×£p= ÇLÀj¼t“D @oƒÀÊ=jÀôýÔxé¦À¢E¶óýÔ¸?²�ï§ÆÄŠÀôýÔxé¦À¢E¶óýÔ¸?×£p= ÇLÀj¼t“D @oƒÀÊ=jÀé&1¬Ú¿×£p= ×￲�ï§ÆÄŠÀZd;ßO�À\�Âõ(\ß?¬Zd;:@òÒMb"@L7‰A`•kÀ^ºI +À�•C‹lçë¿®Gázx‹À^ºI +À�•C‹lç뿬Zd;:@òÒMb"@L7‰A`•kÀZd;ßO�@\�Âõ(\ß¿®Gázx‹ÀÙÎ÷S㥛¿ð?‰A`åÐÒBÀ�—nƒ@%@ºI +CkÀ®Gáz”À{®Gázt¿ ×£p=[‹À®Gáz”À{®Gázt¿‰A`åÐÒBÀ�—nƒ@%@ºI +CkÀÙÎ÷S㥛?ð¿ ×£p=[‹À‡ÙÎ÷S@+‡ÙÎ÷Ã?ã¥›Ä �I@¼t“Ö@¬Zd÷lÀX9´Èv¾ã¿V-²�ï?P�—n�ÀX9´Èv¾ã¿V-²�ï?ã¥›Ä �I@¼t“Ö@¬Zd÷lÀ‡ÙÎ÷SÀ+‡ÙÎ÷ÿP�—n�À˜nƒÀÊ@¬Zd;ß?V-²5SÀ¸…ëQ8"@q= ×£0nÀ¬Zd;ÀV-²�ïë?P�—nŽÀ¬Zd;ÀV-²�ïë?V-²5SÀ¸…ëQ8"@q= ×£0nÀ˜nƒÀÊÀ¬Zd;ß¿P�—nŽÀ¦›Ä °r@yé&1¬¼?mçû©ñ"L@Ház®G)@5^ºI ^jÀ…ëQ¸å¿+‡ÙÎï?�•C‹lÉŠÀ…ëQ¸å¿+‡ÙÎï?mçû©ñ"L@Ház®G)@5^ºI ^jÀ¦›Ä °rÀyé&1¬¼¿�•C‹lÉŠÀ#Ûù~j¼Àçû©ñÒMÒ?®GázTAÀ'1¬ @%�•C_jÀ‹lçû©ñò¿-²�ï§î¿q= ×£?ŠÀ‹lçû©ñò¿-²�ï§î¿®GázTAÀ'1¬ @%�•C_jÀ#Ûù~j¼@çû©ñÒMÒ¿q= ×£?ŠÀP�—nƒÀj¼t“Ö?'1¬jD@mçû©ñR!@òÒMb¼jÀßO�—n÷¿?5^ºI î¿ÇK7‰AœŠÀßO�—n÷¿?5^ºI î¿'1¬jD@mçû©ñR!@òÒMb¼jÀP�—nƒ@j¼t“Ö¿ÇK7‰AœŠÀ‰A`åÐ"@-²�ï§Ö?ú~j¼tó8À-²�ï§+@Zd;ßOioÀ²�ï§ÆKÀìQ¸…ëí?ÇK7‰A‹ŽÀ²�ï§ÆKÀìQ¸…ëí?ú~j¼tó8À-²�ï§+@Zd;ßOioÀ‰A`åÐ"À-²�ï§Ö¿ÇK7‰A‹ŽÀÏ÷S㥛Àw¾Ÿ/Ýè?¦›Ä °"B@-²�ï§*@;ßO�—ŠjÀw¾Ÿ/ÝÀ)\�Âõ(ä¿oƒÀÊ6ŠÀw¾Ÿ/ÝÀ)\�Âõ(俦›Ä °"B@-²�ï§*@;ßO�—ŠjÀÏ÷S㥛@w¾Ÿ/Ýè¿oƒÀÊ6ŠÀ®Gáz.Àyé&1¬Ü?Év¾ŸÏK@�—nƒ%@Ý$�•�jÀ¬Zd;ÀÏ÷S㥛ì¿+‡ÙÎ;‹À¬Zd;ÀÏ÷S㥛ì¿Év¾ŸÏK@�—nƒ%@Ý$�•�jÀ®Gáz.@yé&1¬Ü¿+‡ÙÎ;‹Àq= ×£pé?/Ý$�•ï?�—nƒðDÀ?5^ºI $@h‘í|?QjÀôýÔxé&ÀË¡E¶óýÄ?5^ºI ^ŠÀôýÔxé&ÀË¡E¶óýÄ?�—nƒðDÀ?5^ºI $@h‘í|?QjÀq= ×£pé¿/Ý$�•ï¿5^ºI ^ŠÀÙÎ÷S㥠Àé&1¬ê?V-²�ïO@5^ºI Â'@Ï÷Sã¥ÓkÀJ +‡ÀåÐ"Ûù~â¿“V“ŒÀJ +‡ÀåÐ"Ûù~â¿V-²�ïO@5^ºI Â'@Ï÷Sã¥ÓkÀÙÎ÷S㥠@é&1¬ê¿“V“ŒÀ‰A`åÐ"@ú~j¼t“Ð?5^ºI *SÀ= ×£pý,@þÔxé&±nÀü¿¶óýÔxéî?¬Zd;KŽÀü¿¶óýÔxéî?5^ºI *SÀ= ×£pý,@þÔxé&±nÀ‰A`åÐ"Àú~j¼t“п¬Zd;KŽÀ…ëQ¸…û?åÐ"Ûù~î?ºI +I@¤p= ×c(@ôýÔxé>kÀ33333³À‡ÙÎ÷SÓ?ÙÎ÷SãÊ‹À33333³À‡ÙÎ÷SÓ?ºI +I@¤p= ×c(@ôýÔxé>kÀ…ëQ¸…û¿åÐ"Ûù~î¿ÙÎ÷SãÊ‹À33333³@ÙÎ÷Sã¥Ë?oƒÀÊLÀ¶óýÔx©!@`åÐ"ÛYnÀÅ °rh‘í¿¬Zd;ï?Ê�ÀÅ °rh‘í¿¬Zd;ï?oƒÀÊLÀ¶óýÔx©!@`åÐ"ÛYnÀ33333³ÀÙÎ÷Sã¥Ë¿Ê�ÀbX9´È@;ßO�—nÚ?sh‘í|¿NÀžï§ÆK÷ @V-²�3oÀ +‡Ùü¿ôýÔxé&í?�•C‹ZŽÀ +‡Ùü¿ôýÔxé&í?sh‘í|¿NÀžï§ÆK÷ @V-²�3oÀbX9´ÈÀ;ßO�—nÚ¿�•C‹ZŽÀX9´Èv¾ñ?‹lçû©ñî?°rh‘íÌI@ÙÎ÷Sãå @é&1¬jÀçû©ñÒÍÀR¸…ëQÐ?Õxé&1ŠÀçû©ñÒÍÀR¸…ëQÐ?°rh‘íÌI@ÙÎ÷Sãå @é&1¬jÀX9´Èv¾ñ¿‹lçû©ñî¿Õxé&1ŠÀÅ °rh‘@þÔxé&1ì?×£p= ×HÀT㥛Ä`%@R¸…ëikÀX9´Èv>ÀƒÀÊ¡EÞ?9´Èv¾Î‹ÀX9´Èv>ÀƒÀÊ¡EÞ?×£p= ×HÀT㥛Ä`%@R¸…ëikÀÅ °rh‘ÀþÔxé&1ì¿9´Èv¾Î‹À¼t“Vð¿�•C‹lï?ö(\�ÂíVÀ;ßO�—n&@L7‰A`…nÀ¼t“VÀªñÒMbÈ¿…ëQ¸vŽÀ¼t“VÀªñÒMbÈ¿ö(\�ÂíVÀ;ßO�—n&@L7‰A`…nÀ¼t“Vð?�•C‹lï¿…ëQ¸vŽÀáz®Gáú¿žï§ÆK7í?°rh‘íœ@À-²�ï§!@Ý$�•‡lÀé&1¬À?5^ºI Ú¿V-cŒÀé&1¬À?5^ºI Ú¿°rh‘íœ@À-²�ï§!@Ý$�•‡lÀáz®Gáú?žï§ÆK7í¿V-cŒÀ‹lçû©ñÀÑ"Ûù~jÌ?�—nƒ`DÀP�—nƒ,@d;ßO�ïlÀÙÎ÷Sã¥÷¿333333ï¿7‰A`弌ÀÙÎ÷Sã¥÷¿333333ï¿�—nƒ`DÀP�—nƒ,@d;ßO�ïlÀ‹lçû©ñ@Ñ"Ûù~jÌ¿7‰A`弌Àw¾Ÿ/Ý@´Èv¾Ÿã?Å °rh7@‘í|?5Þ#@NbX9plÀ`åÐ"ÛùÀD‹lçû©é?Zd;ߌÀ`åÐ"ÛùÀD‹lçû©é?Å °rh7@‘í|?5Þ#@NbX9plÀw¾Ÿ/ÝÀ´Èv¾Ÿã¿Zd;ߌÀôýÔxé¦@B`åÐ"ÛÑ?š™™™™y:À#Ûù~j¼-@w¾Ÿ/½jÀ!°rh‘íþ¿¸…ëQ¸î?L7‰A`HŠÀ!°rh‘íþ¿¸…ëQ¸î?š™™™™y:À#Ûù~j¼-@w¾Ÿ/½jÀôýÔxé¦ÀB`åÐ"ÛÑ¿L7‰A`HŠÀÑ"Ûù~jú?“V-î?bX9´X@@X9´Èv$@Zd;ß�nÀÉv¾Ÿ¯ÀZd;ßOÕ?`åÐ"Û¨�ÀÉv¾Ÿ¯ÀZd;ßOÕ?bX9´X@@X9´Èv$@Zd;ß�nÀÑ"Ûù~jú¿“V-î¿`åÐ"Û¨�ÀD‹lçû©ÀÃõ(\�Âé?ƒÀÊ¡EÖ6Àq= ×£p$@L7‰A`IoÀV-²À5^ºI ã¿Év¾ŸfŽÀV-²À5^ºI 㿃ÀÊ¡EÖ6Àq= ×£p$@L7‰A`IoÀD‹lçû©@Ãõ(\�Âé¿Év¾ŸfŽÀV-²Àð§ÆK7‰Á?%�•C‹@ÀoƒÀÊá"@7‰A`åìkÀ促ÀÊ¡E¶ï¿åÐ"ÛùË‹À促ÀÊ¡E¶ï¿%�•C‹@ÀoƒÀÊá"@7‰A`åìkÀV-²@ð§ÆK7‰Á¿åÐ"ÛùË‹ÀZd;ßO� @9´Èv¾Ÿâ?Ház®ÇL@sh‘í|¿@Ý$�•‹nÀ5^ºI Àj¼t“ê?B`åÐ"ŽÀ5^ºI Àj¼t“ê?Ház®ÇL@sh‘í|¿@Ý$�•‹nÀZd;ßO� À9´Èv¾Ÿâ¿B`åÐ"ŽÀ'1¬ÚÀ¸…ëQ¸¾?¶óýÔxA@ºI +‡!@ªñÒMb(lÀR¸…ëQà¿-²�ï§Æï¿“V3ŒÀR¸…ëQà¿-²�ï§Æï¿¶óýÔxA@ºI +‡!@ªñÒMb(lÀ'1¬Ú@¸…ëQ¸¾¿“V3ŒÀ²�ï§ÆKÀÃõ(\�Âå?NbX9ÔA@‘í|?5!@33333ûjÀZd;ßO�ÀÛù~j¼t翬Zd;ÒŠÀZd;ßO�ÀÛù~j¼tç¿NbX9ÔA@‘í|?5!@33333ûjÀ²�ï§ÆK@Ãõ(\�Â忬Zd;ÒŠÀ¸…ëQ¸ À`åÐ"Ûùê?/Ý$1QÀÏ÷S㥛)@…ëQ¸:mÀ¾Ÿ/Ý$Àžï§ÆK7á¿�Âõ(\`�À¾Ÿ/Ý$Àžï§ÆK7á¿/Ý$1QÀÏ÷S㥛)@…ëQ¸:mÀ¸…ëQ¸ @`åÐ"Ûùê¿�Âõ(\`�À®Gáz@J +‡é?mçû©ñ¢B@²�ï§Æ $@V-FkÀÛù~j¼tÀ×£p= ×ã?ÙÎ÷S�‹ÀÛù~j¼tÀ×£p= ×ã?mçû©ñ¢B@²�ï§Æ $@V-FkÀ®GázÀJ +‡é¿ÙÎ÷S�‹ÀÀƒÀÊ¡EÞ?¤p= ×3L@u“VŽ @‰A`åЦkÀTã¥›Ä ÀþÔxé&1ì¿ü©ñÒMSŒÀTã¥›Ä ÀþÔxé&1쿤p= ×3L@u“VŽ @‰A`åЦkÀ@ƒÀÊ¡EÞ¿ü©ñÒMSŒÀßO�—nñ? ×£p= ï?×£p= Q@®Gáz."@–C‹lçÇnÀ®GázÀ`åÐ"ÛùÎ?ôýÔxélŽÀ®GázÀ`åÐ"ÛùÎ?×£p= Q@®Gáz."@–C‹lçÇnÀßO�—nñ¿ ×£p= ï¿ôýÔxélŽÀ–C‹lçû@h‘í|?5æ?+‡ÙÎ'HÀT㥛Ġ@çû©ñÒ lÀ}?5^ºIÀ ×£p= ç?áz®GAŒÀ}?5^ºIÀ ×£p= ç?+‡ÙÎ'HÀT㥛Ġ@çû©ñÒ lÀ–C‹lçûÀh‘í|?5æ¿áz®GAŒÀ~èºI +‡À?5^ºI æ?ú~j¼tãI@/Ý$Á @V-²�«pÀ'1¬ZÀ333333ç¿é&1¬�À'1¬ZÀ333333ç¿ú~j¼tãI@/Ý$Á @V-²�«pÀºI +‡@?5^ºI æ¿é&1¬�À‹lçû©ñâ¿…ëQ¸…ï?œÄ °rˆTÀ²�ï§ÆK@òÒMb¾pÀoƒÀÊ¡ ÀffffffÆ¿–C‹lg �ÀoƒÀÊ¡ ÀffffffÆ¿œÄ °rˆTÀ²�ï§ÆK@òÒMb¾pÀ‹lçû©ñâ?…ëQ¸…ï¿–C‹lg �Àsh‘í|?é?/Ý$�•ï?œÄ °rxG@V-²]%@é&1¬BqÀã¥›Ä °ÀÓMbX9Ä?-²�ï'w�Àã¥›Ä °ÀÓMbX9Ä?œÄ °rxG@V-²]%@é&1¬BqÀsh‘í|?é¿/Ý$�•ï¿-²�ï'w�À333333 À¸…ëQ¸æ?ã¥›Ä ð4ÀÑ"Ûù~j%@yé&1špÀX9´Èv ÀºI +‡æ¿š™™™!�ÀX9´Èv ÀºI +‡æ¿ã¥›Ä ð4ÀÑ"Ûù~j%@yé&1špÀ333333 @¸…ëQ¸æ¿š™™™!�ÀJ +‡À;ßO�—nî?-²�ïR@–C‹lç»+@j¼t“ÐoÀ´Èv¾ŸšÀ�•C‹lçÓ¿�—nƒL�À´Èv¾ŸšÀ�•C‹lçÓ¿-²�ïR@–C‹lç»+@j¼t“ÐoÀJ +‡@;ßO�—nî¿�—nƒL�ÀB`åÐ"Û@–C‹lçûÙ?ƒÀÊ¡…!ÀV-r(@‘í|?5ÀpÀP�—nƒÀsh‘í|?í?#Ûù~ê*�ÀP�—nƒÀsh‘í|?í?ƒÀÊ¡…!ÀV-r(@‘í|?5ÀpÀB`åÐ"ÛÀ–C‹lçûÙ¿#Ûù~ê*�ÀÏ÷S㥛Àh‘í|?5â?Zd;ßOMI@%�•C‹@u“VÚqÀÙÎ÷Sãý¿¼t“Vê¿;ßO�‘ÀÙÎ÷Sãý¿¼t“Vê¿Zd;ßOMI@%�•C‹@u“VÚqÀÏ÷S㥛@h‘í|?5â¿;ßO�‘ÀB`åÐ"Û@Tã¥›Ä à?X9´Èv⿘nƒÀŠ&@ƒÀÊ¡gqÀÀÙÎ÷Sã¥ë?-²�ož�ÀÀÙÎ÷Sã¥ë?X9´Èv⿘nƒÀŠ&@ƒÀÊ¡gqÀB`åÐ"ÛÀTã¥›Ä à¿-²�ož�Àmçû©ñÒÀX9´Èv¾ã?!°rh‘TÀh‘í|?µ-@ö(\�ÂkpÀ´Èv¾ŸÀÉv¾Ÿ/é¿#Ûù~j¨�À´Èv¾ŸÀÉv¾Ÿ/é¿!°rh‘TÀh‘í|?µ-@ö(\�ÂkpÀmçû©ñÒ@X9´Èv¾ã¿#Ûù~j¨�À…ëQ¸…@ºI +‡ê? +‡"À#Ûù~j¼@1¬Z6pÀP�—nƒÀÙÎ÷Sãá?ÓMbXj�ÀP�—nƒÀÙÎ÷Sãá? +‡"À#Ûù~j¼@1¬Z6pÀ…ëQ¸…ÀºI +‡ê¿ÓMbXj�À#Ûù~j¼@ /Ý$å?ö(\�Â�R@V-²�ï @‡ÙÎ÷ßpÀ%�•C‹ÀTã¥›Ä è?é&1¬z�À%�•C‹ÀTã¥›Ä è?ö(\�Â�R@V-²�ï @‡ÙÎ÷ßpÀ#Ûù~j¼À /Ý$å¿é&1¬z�À�•C‹lç@˜nƒÀÊÑ?oƒÀÊaI@ßO�—nR$@‹lçû©OrÀÙÎ÷Sãõ¿�—nƒÀî?5^ºI |‘ÀÙÎ÷Sãõ¿�—nƒÀî?oƒÀÊaI@ßO�—nR$@‹lçû©OrÀ�•C‹lçÀ˜nƒÀÊÑ¿5^ºI |‘ÀåÐ"Ûù~À¨ÆK7‰Aä?–C‹lçKG@J +‡–)@ªñÒMbpÀžï§ÆK7ÀÍÌÌÌÌÌè¿ /Ý$�Àžï§ÆK7ÀÍÌÌÌÌÌè¿–C‹lçKG@J +‡–)@ªñÒMbpÀåÐ"Ûù~@¨ÆK7‰Aä¿ /Ý$�À°rh‘í|Àq= ×£pí?1¬Z4C@= ×£p½%@\�Âõ(~rÀ¬Zd;_ÀJ +‡Ù¿#Ûù~jz‘À¬Zd;_ÀJ +‡Ù¿1¬Z4C@= ×£p½%@\�Âõ(~rÀ°rh‘í|@q= ×£pí¿#Ûù~jz‘À¶óýÔxé@;ßO�—n’?F¶óýÔðP@žï§ÆKw!@Ý$�•ÓqÀ+‡ÙÎ÷³¿ð?%�•C?‘À+‡ÙÎ÷³¿ð?F¶óýÔðP@žï§ÆKw!@Ý$�•ÓqÀ¶óýÔxéÀ;ßO�—n’¿%�•C?‘À#Ûù~j<@œÄ °rhá?î|?5^úRÀ�Âõ(\�(@¾Ÿ/Ý€oÀV-²�ïÀ +‡Ùê?ð§ÆK7¿ŽÀV-²�ïÀ +‡Ùê?î|?5^úRÀ�Âõ(\�(@¾Ÿ/Ý€oÀ#Ûù~j<ÀœÄ °rhá¿ð§ÆK7¿ŽÀh‘í|?µ@d;ßO�—Ö?+‡Ùη;ÀÙÎ÷Sã¥$@h‘í|?ÛpÀ= ×£p=ü¿ÁÊ¡E¶óí?Zd;ßOY�À= ×£p=ü¿ÁÊ¡E¶óí?+‡Ùη;ÀÙÎ÷Sã¥$@h‘í|?ÛpÀh‘í|?µÀd;ßO�—Ö¿Zd;ßOY�ÀòÒMbXÉ?+‡ÙÎ÷ï?ÓMbX¹@¬Zd;Ÿ'@ƒÀÊ¡EFqÀw¾Ÿ/ÝÀìQ¸…ë¡?J +n�Àw¾Ÿ/ÝÀìQ¸…ë¡?ÓMbX¹@¬Zd;Ÿ'@ƒÀÊ¡EFqÀòÒMbXÉ¿+‡ÙÎ÷ï¿J +n�À¨ÆK7‰A @;ßO�—næ?ªñÒMb俬Zd{$@Ãõ(\�ÞpÀ7‰A`åÐ À7‰A`åÐæ?T㥛D.�À7‰A`åÐ À7‰A`åÐæ?ªñÒMb俬Zd{$@Ãõ(\�ÞpÀ¨ÆK7‰A À;ßO�—næ¿T㥛D.�ÀÉv¾Ÿ/á¿×£p= ×ï?¢E¶óýœXÀbX9´H'@ü©ñÒM¼pÀ¦›Ä °rÀR¸…ëQ¸¿�•C k�À¦›Ä °rÀR¸…ëQ¸¿¢E¶óýœXÀbX9´H'@ü©ñÒM¼pÀÉv¾Ÿ/á?×£p= ×ï¿�•C k�À?5^ºI Àmçû©ñÒÍ?^ºI CXÀð§ÆK7 @fffffÞpÀ+‡ÙÎ뿉A`åÐ"ᅳ™™™��À+‡ÙÎ뿉A`åÐ"ï¿^ºI CXÀð§ÆK7 @fffffÞpÀ?5^ºI @mçû©ñÒÍ¿š™™™��À¬Zd;_À333333Ã?�•C‹lgKÀD‹lçûi*@oƒÀÊrÀD‹lçû©í¿ÙÎ÷Sã¥ï¿Å °rh,‘ÀD‹lçû©í¿ÙÎ÷Sã¥ï¿�•C‹lgKÀD‹lçûi*@oƒÀÊrÀ¬Zd;_@333333ÿаrh,‘ÀªñÒMb À^ºI +ß?= ×£pÝ:À×£p= — @pÀZd;ßOÿ¿V-²�ïë¿ÇK7‰A9�ÀZd;ßOÿ¿V-²�ïë¿= ×£pÝ:À×£p= — @pÀªñÒMb @^ºI +ß¿ÇK7‰A9�À!°rh‘í@×£p= ×ë?òÒMbØ@ôýÔxéæ%@Zd;ß_qÀ¦›Ä °rÀZd;ßO�ß?�•C‹ì��À¦›Ä °rÀZd;ßO�ß?òÒMbØ@ôýÔxéæ%@Zd;ß_qÀ!°rh‘íÀ×£p= ×ë¿�•C‹ì��ÀHáz®G@= ×£p=Ê?/Ý$A)ÀNbX9t&@¨ÆK7‰/rÀ×£p= ×ñ¿‡ÙÎ÷Sï?Zd;ßÏK‘À×£p= ×ñ¿‡ÙÎ÷Sï?/Ý$A)ÀNbX9t&@¨ÆK7‰/rÀHáz®GÀ= ×£p=Ê¿Zd;ßÏK‘ÀÑ"Ûù~êÀw¾Ÿ/Ýà?V-²�F@š™™™™Ù'@¬Zd;yqÀF¶óýÔxÀ333333ë¿ú~j¼ôš�ÀF¶óýÔxÀ333333ë¿V-²�F@š™™™™Ù'@¬Zd;yqÀÑ"Ûù~ê@w¾Ÿ/Ýà¿ú~j¼ôš�À ×£p= ÿ?F¶óýÔxí?åÐ"Ûùþ@¬Zd;_%@ªñÒMbØpÀÇK7‰A`ÀL7‰A`åØ?Õxé&1�ÀÇK7‰A`ÀL7‰A`åØ?åÐ"Ûùþ@¬Zd;_%@ªñÒMbØpÀ ×£p= ÿ¿F¶óýÔxí¿Õxé&1�À/Ý$�õ?ð§ÆK7‰í?Ë¡E¶ó}&Àî|?5^:@`åÐ"ÛpÀw¾Ÿ/Ý Àú~j¼t“Ø?ƒÀÊ¡ �Àw¾Ÿ/Ý Àú~j¼t“Ø?Ë¡E¶ó}&Àî|?5^:@`åÐ"ÛpÀ/Ý$�õ¿ð§ÆK7‰í¿ƒÀÊ¡ �ÀÙÎ÷Sc@= ×£p=Ê?‘í|?5~3ÀNbX9t$@J +‡dqÀ¨ÆK7‰Að¿‡ÙÎ÷Sï?²�ï§ÆÊ�À¨ÆK7‰Að¿‡ÙÎ÷Sï?‘í|?5~3ÀNbX9t$@J +‡dqÀÙÎ÷ScÀ= ×£p=Ê¿²�ï§ÆÊ�À“V-ò¿ffffffî?�Âõ(\'R@X9´Èv>@œÄ °rZpÀd;ßO�— ÀÕxé&1Ô¿®Gáú�Àd;ßO�— ÀÕxé&1Ô¿�Âõ(\'R@X9´Èv>@œÄ °rZpÀ“V-ò?ffffffî¿®Gáú�À}?5^ºIÀÃõ(\�Âå?ÙÎ÷SãµN@j¼t“!@L7‰A`'rÀP�—nƒÀÛù~j¼tç¿î|?5Þ|‘ÀP�—nƒÀÛù~j¼tç¿ÙÎ÷SãµN@j¼t“!@L7‰A`'rÀ}?5^ºI@Ãõ(\�Âå¿î|?5Þ|‘ÀJ +‡Ù?V-²�ïï?Zd;ßO K@Å °rh*@X9´ÈrÀHáz®GÀ¤p= ×£°?¬Zd»;‘ÀHáz®GÀ¤p= ×£°?Zd;ßO K@Å °rh*@X9´ÈrÀJ +‡Ù¿V-²�ï↓Zd»;‘À ×£p= ÿ¿áz®Gáê?¶óýÔxI8À+‡ÙÎ@-²�ï§žqÀ /Ý$ÀÇK7‰A`á¿/Ý$ë�À /Ý$ÀÇK7‰A`á¿¶óýÔxI8À+‡ÙÎ@-²�ï§žqÀ ×£p= ÿ?áz®Gáê¿/Ý$ë�À`åÐ"Ûùâ?®Gáz®ï?Ï÷Sã¥[L@òÒMb!@®Gáz˜qÀü©ñÒMbÀçû©ñÒMÂ?sh‘íüÛ�Àü©ñÒMbÀçû©ñÒMÂ?Ï÷Sã¥[L@òÒMb!@®Gáz˜qÀ`åÐ"Ûùâ¿®Gáz®ï¿sh‘íüÛ�ÀB`åÐ"Û@²�ï§ÆKß?–C‹lç[>À‹lçû©1!@= ×£ppÀ²�ï§ÆKÀ�•C‹lçë?+‡ÙÎR�À²�ï§ÆKÀ�•C‹lçë?–C‹lç[>À‹lçû©1!@= ×£ppÀB`åÐ"ÛÀ²�ï§ÆKß¿+‡ÙÎR�Àh‘í|?5ÀNbX9´ä?çû©ñÒM @9´Èv¾%@‹lçû©GpÀÛù~j¼t ÀÑ"Ûù~jè¿ôýÔxé8�ÀÛù~j¼t ÀÑ"Ûù~jè¿çû©ñÒM @9´Èv¾%@‹lçû©GpÀh‘í|?5@NbX9´ä¿ôýÔxé8�Àö(\�Âõ @\�Âõ(\ß?ìQ¸…«5ÀÙÎ÷Sã%!@�•C‹~pÀ¨ÆK7‰AÀ�•C‹lçë?Ház®�À¨ÆK7‰AÀ�•C‹lçë?ìQ¸…«5ÀÙÎ÷Sã%!@�•C‹~pÀö(\�Âõ À\�Âõ(\ß¿Ház®�ÀþÔxé&1ð?Ý$�•Cï?´Èv¾ŸÀ…ëQ¸…#@5^ºI BqÀX9´ÈvÀ1¬ZdË?®Gáz”Ž�ÀX9´ÈvÀ1¬ZdË?´Èv¾ŸÀ…ëQ¸…#@5^ºI BqÀþÔxé&1ð¿Ý$�•Cï¿®Gáz”Ž�ÀôýÔxé&ý¿ÙÎ÷Sãí?�—nƒÀ3Àd;ßO�%@mçû©ñqÀ/Ý$�À +‡ÙÖ¿ƒÀÊ¡ž�À/Ý$�À +‡ÙÖ¿�—nƒÀ3Àd;ßO�%@mçû©ñqÀôýÔxé&ý?ÙÎ÷Sãí¿ƒÀÊ¡ž�À1¬ZdÀj¼t“ê?= ×£pmF@ÙÎ÷Sã¥%@B`åÐ")qÀZd;ßO À9´Èv¾Ÿâ¿NbX¹Y�ÀZd;ßO À9´Èv¾Ÿâ¿= ×£pmF@ÙÎ÷Sã¥%@B`åÐ")qÀ1¬Zd@j¼t“ê¿NbX¹Y�Àw¾Ÿ/]@¼t“VÎ?¬Zd[EÀ9´Èv¾_ @1¬ZqÀ�•C‹lçï¿´Èv¾Ÿï?åÐ"ÛyZ�À�•C‹lçï¿´Èv¾Ÿï?¬Zd[EÀ9´Èv¾_ @1¬ZqÀw¾Ÿ/]À¼t“VοåÐ"ÛyZ�ÀÃõ(\� @= ×£p=â?w¾Ÿ/Ýþ¿¦›Ä °r!@9´Èv¾³pÀƒÀÊ¡EÀƒÀÊ¡Eê??5^ºI �ÀƒÀÊ¡EÀƒÀÊ¡Eê?w¾Ÿ/Ýþ¿¦›Ä °r!@9´Èv¾³pÀÃõ(\� À= ×£p=â¿?5^ºI �Àyé&1¬œ¿ð?J +‡fTÀ+‡ÙÎ÷#@#Ûù~j pÀ¼t“VÀú~j¼t“x¿oƒÀÊ8�À¼t“VÀú~j¼t“x¿J +‡fTÀ+‡ÙÎ÷#@#Ûù~j pÀyé&1¬œ?ð¿oƒÀÊ8�ÀƒÀÊ¡E¶ã¿X9´Èv¾ï?ÓMbX¡XÀÙÎ÷Sã#@ÙÎ÷SqÀ´Èv¾ŸÀü©ñÒMbÀ¿9´Èv¾Ï�À´Èv¾ŸÀü©ñÒMbÀ¿ÓMbX¡XÀÙÎ÷Sã#@ÙÎ÷SqÀƒÀÊ¡E¶ã?X9´Èv¾ï¿9´Èv¾Ï�À!°rh‘íò¿‡ÙÎ÷Sï?h‘í|?5Þ¿°rh‘í¼(@‹lçû©±qÀš™™™™™À= ×£p=Ê¿ü©ñÒMÐ�Àš™™™™™À= ×£p=Ê¿h‘í|?5Þ¿°rh‘í¼(@‹lçû©±qÀ!°rh‘íò?‡ÙÎ÷Sï¿ü©ñÒMÐ�ÀHáz®G@Tã¥›Ä °?{®GáG@åÐ"Ûù~@j¼t“pÀX9´ÈvοV-²�ïï?žï§ÆKïŽÀX9´ÈvοV-²�ïï?{®GáG@åÐ"Ûù~@j¼t“pÀHáz®GÀTã¥›Ä °¿žï§ÆKïŽÀÕxé&1ˆÀ#Ûù~j¼Ô?#Ûù~jü<À�—nƒ@'@¤p= ×+pÀTã¥›Ä ü¿ƒÀÊ¡Eî¿�•C‹x�ÀTã¥›Ä ü¿ƒÀÊ¡Eî¿#Ûù~jü<À�—nƒ@'@¤p= ×+pÀÕxé&1ˆ@#Ûù~j¼Ô¿�•C‹x�À×£p= ×û¿9´Èv¾Ÿî?F¶óýÔØJ@?5^ºIÌ)@é&1¬èpÀZd;ßO ÀåÐ"Ûù~Ò¿åÐ"ÛyE�ÀZd;ßO ÀåÐ"Ûù~Ò¿F¶óýÔØJ@?5^ºIÌ)@é&1¬èpÀ×£p= ×û?9´Èv¾Ÿî¿åÐ"ÛyE�À¬Zd;ß@¤p= ×£à?Zd;ßOM7ÀºI +@Ý$�•YpÀmçû©ñÒû¿‡ÙÎ÷Së? /Ý$Ô�Àmçû©ñÒû¿‡ÙÎ÷Së?Zd;ßOM7ÀºI +@Ý$�•YpÀ¬Zd;ßÀ¤p= ף࿠/Ý$Ô�Àw¾Ÿ/]@-²�ï§Ö?¬ZdƒXÀoƒÀÊa%@1¬ZVpÀòÒMbXý¿ìQ¸…ëí?¬Zd�ÀòÒMbXý¿ìQ¸…ëí?¬ZdƒXÀoƒÀÊa%@1¬ZVpÀw¾Ÿ/]À-²�ï§Ö¿¬Zd�À}?5^ºIÀX9´Èvâ?Év¾ŸON@¬Zdû'@`åÐ"ÛApÀ7‰A`åÐ À¾Ÿ/Ý$ê¿Ñ"Ûù~“�À7‰A`åÐ À¾Ÿ/Ý$ê¿Év¾ŸON@¬Zdû'@`åÐ"ÛApÀ}?5^ºI@X9´Èvâ¿Ñ"Ûù~“�ÀÏ÷S㥛 ÀªñÒMbä?;ßO�—n @´Èv¾Ÿš @ +‡qÀÑ"Ûù~jÀ!°rh‘íè¿Év¾ŸšJ�ÀÑ"Ûù~jÀ!°rh‘íè¿;ßO�—n @´Èv¾Ÿš @ +‡qÀÏ÷S㥛 @ªñÒMbä¿Év¾ŸšJ�À9´Èv¾Ÿ ÀÇK7‰A`é?þÔxé&WÀÑ"Ûù~j'@ /Ý$ pÀ–C‹lçûÀ°rh‘í|ã¿u“Vl�À–C‹lçûÀ°rh‘í|ã¿þÔxé&WÀÑ"Ûù~j'@ /Ý$ pÀ9´Èv¾Ÿ @ÇK7‰A`é¿u“Vl�Àáz®Gá@yé&1¬ì?V-²�O7Àj¼t“(@ÙÎ÷SíqÀd;ßO�ÀÑ"Ûù~jÜ?ÁÊ¡E6‘Àd;ßO�ÀÑ"Ûù~jÜ?V-²�O7Àj¼t“(@ÙÎ÷SíqÀáz®GáÀyé&1¬ì¿ÁÊ¡E6‘Àè?‡ÙÎ÷Sï?V-BZÀ^ºI «@sh‘í|oÀ¬Zd;ß Àé&1¬Ê?ƒÀÊ¡#�À¬Zd;ß Àé&1¬Ê?V-BZÀ^ºI «@sh‘í|oÀ过ÙÎ÷SᅢÀÊ¡#�À333333ó¿Å °rh‘í?D‹lçû)G@w¾Ÿ/]@5^ºI ZrÀôýÔxé&ÀP�—nƒØ¿é&1¬r‘ÀôýÔxé&ÀP�—nƒØ¿D‹lçû)G@w¾Ÿ/]@5^ºI ZrÀ333333ó?Å °rh‘í¿é&1¬r‘À'1¬Ú@ªñÒMbà?#Ûù~j¼Q@¬Zd;$@øS㥛xpÀú~j¼t“À®Gáz®ë?V-�Àú~j¼t“À®Gáz®ë?#Ûù~j¼Q@¬Zd;$@øS㥛xpÀ'1¬ÚÀªñÒMbà¿V-�ÀþÔxé&1 ÀòÒMbXá?ú~j¼t“1ÀªñÒMbP!@/Ý$eoÀ)\�Âõ(À¶óýÔxéê¿×£p= �ŽÀ)\�Âõ(À¶óýÔxéê¿ú~j¼t“1ÀªñÒMbP!@/Ý$eoÀþÔxé&1 @òÒMbXá¿×£p= �ŽÀôýÔxé&Ù¿×£p= ×ï?T㥛Ä@E@ÙÎ÷Sã@‰A`åÐrÀú~j¼t“Àé&1¬º¿V­$‘Àú~j¼t“Àé&1¬º¿T㥛Ä@E@ÙÎ÷Sã@‰A`åÐrÀôýÔxé&Ù?×£p= ×ï¿V­$‘ÀÙÎ÷Sãý?®Gázî?ôýÔxé†S@'1¬š&@ ×£p=¸pÀßO�—n’Àmçû©ñÒÕ?ffffæh�ÀßO�—n’Àmçû©ñÒÕ?ôýÔxé†S@'1¬š&@ ×£p=¸pÀÙÎ÷Sãý¿®Gázî¿ffffæh�ÀÍÌÌÌÌÌ@¢E¶óýÔÐ?oƒÀÊiVÀþÔxé&1%@-²�ï½pÀ/Ý$�•õ¿áz®Gáî?‰A`åP>�À/Ý$�•õ¿áz®Gáî?oƒÀÊiVÀþÔxé&1%@-²�ï½pÀÍÌÌÌÌÌÀ¢E¶óýÔп‰A`åP>�ÀV-²@ú~j¼t“Ø?= ×£p}/ÀD‹lçû)!@X9´ÈFqÀð§ÆK7‰ù¿ð§ÆK7‰í?¬Zd»¶�Àð§ÆK7‰ù¿ð§ÆK7‰í?= ×£p}/ÀD‹lçû)!@X9´ÈFqÀV-²Àú~j¼t“Ø¿¬Zd»¶�ÀV-² À¶óýÔxéÖ?…ëQ¸žK@ÇK7‰Aà@NbX9`oÀö¿ÙÎ÷Sãí¿‰A`åКŽÀö¿ÙÎ÷Sãí¿…ëQ¸žK@ÇK7‰Aà@NbX9`oÀV-² @¶óýÔxéÖ¿‰A`åКŽÀjøÍÌÌÌÌL@ƒÀÊ¡E¶³?j¼t“ @…ëQ¸Þ @¼t“ŒqÀZd;ßOÕ¿�•C‹lçï?^ºI ‚©�ÀZd;ßOÕ¿�•C‹lçï?j¼t“ @…ëQ¸Þ @¼t“ŒqÀÍÌÌÌÌLÀƒÀÊ¡E¶³¿^ºI ‚©�À}?5^ºIÀX9´Èvæ?…ëQ¸NÀ'1¬š!@¬Zd;rÀìQ¸…ëÀbX9´Èæ¿D‹lçû€‘ÀìQ¸…ëÀbX9´Èæ¿…ëQ¸NÀ'1¬š!@¬Zd;rÀ}?5^ºI@X9´Èvæ¿D‹lçû€‘ÀX9´Èv¾ë¿‡ÙÎ÷Sï?mçû©ñ’Q@P�—nƒ @ ×£p=ÄpÀ9´Èv¾ŸÀé&1¬Ê¿`åÐ"Û\�À9´Èv¾ŸÀé&1¬Ê¿mçû©ñ’Q@P�—nƒ @ ×£p=ÄpÀX9´Èv¾ë?‡ÙÎ÷Sï¿`åÐ"Û\�Àü©ñÒMbÀ}?5^ºIà?¦›Ä °2PÀìQ¸…k@¦›Ä ° rÀ®Gáz®û¿Zd;ßO�ë¿ÙÎ÷ÓU‘À®Gáz®û¿Zd;ßO�뿦›Ä °2PÀìQ¸…k@¦›Ä ° rÀü©ñÒMb@}?5^ºIà¿ÙÎ÷ÓU‘À¬Zd;ÀHáz®Gí?¬Zd;×PÀš™™™™Y'@#Ûù~jrÀV-²À˜nƒÀÊÙ¿R¸…ko‘ÀV-²À˜nƒÀÊÙ¿¬Zd;×PÀš™™™™Y'@#Ûù~jrÀ¬Zd;@Ház®Gí¿R¸…ko‘Àð§ÆK7‰ Àú~j¼t“¸?�•C‹LEÀ�•C‹ì@sh‘í|åpÀ%�•C‹Ô¿×£p= ×ï¿mçû©ñ/�À%�•C‹Ô¿×£p= ×ï¿�•C‹LEÀ�•C‹ì@sh‘í|åpÀð§ÆK7‰ @ú~j¼t“¸¿mçû©ñ/�ÀÏ÷Sã¥@Zd;ßO�ß?+‡ÙÎ5À…ëQ¸#@)\�Âõ˜oÀ¨ÆK7‰AÀ×£p= ×ë?}?5^º×ŽÀ¨ÆK7‰AÀ×£p= ×ë?+‡ÙÎ5À…ëQ¸#@)\�Âõ˜oÀÏ÷Sã¥ÀZd;ßO�ß¿}?5^º×ŽÀj¼t“ Àáz®Gáæ?/Ý$á2Àã¥›Ä °$@#Ûù~j@pÀ¤p= ×£ À‘í|?5^濚™™™™¨�À¤p= ×£ À‘í|?5^æ¿/Ý$á2Àã¥›Ä °$@#Ûù~j@pÀj¼t“ @áz®Gáæ¿š™™™™¨�ÀƒÀÊ¡E¶@®Gázâ?Ûù~j¼„K@Ãõ(\�Â@‹lçû©QqÀJ +‡ÿ¿ffffffê?V-²›�ÀJ +‡ÿ¿ffffffê?Ûù~j¼„K@Ãõ(\�Â@‹lçû©QqÀƒÀÊ¡E¶À®Gázâ¿V-²›�ÀL7‰A`åØ?V-²�ïï?¬ZdYÀ/Ý$�Õ&@Zd;ß_oÀ�Âõ(\ÀìQ¸…ë±?ÙÎ÷Sã1�À�Âõ(\ÀìQ¸…ë±?¬ZdYÀ/Ý$�Õ&@Zd;ß_oÀL7‰A`åØ¿V-²�ïï¿ÙÎ÷Sã1�ÀþÔxé&1ä?X9´Èv¾ï?˜nƒÀšE@ºI +‡$@33333 qÀ¸…ëQ¸À¨ÆK7‰AÀ?5^ºI 8�À¸…ëQ¸À¨ÆK7‰AÀ?˜nƒÀšE@ºI +‡$@33333 qÀþÔxé&1ä¿X9´Èv¾ï¿5^ºI 8�À°rh‘í| Àmçû©ñÒÍ?ffffffö¿°rh‘í|@^ºI “pÀR¸…ëQì¿´Èv¾Ÿï¿ð§ÆK7Ú�ÀR¸…ëQì¿´Èv¾Ÿï¿ffffffö¿°rh‘í|@^ºI “pÀ°rh‘í| @mçû©ñÒÍ¿ð§ÆK7Ú�À�—nƒÀæ?ÙÎ÷Sã¥ï?{®Gáú5ÀÃõ(\�$@V-JqÀ^ºI +À7‰A`åÐÂ?!°rhº�À^ºI +À7‰A`åÐÂ?{®Gáú5ÀÃõ(\�$@V-JqÀ�—nƒÀæ¿ÙÎ÷Sã¥ï¿!°rhº�Àyé&1¬@B`åÐ"ÛÉ?R¸…ëyUÀìQ¸…+ @²�ï§ÆOqÀZd;ßO鿇ÙÎ÷Sï?5^ºIŒÒ�ÀZd;ßO鿇ÙÎ÷Sï?R¸…ëyUÀìQ¸…+ @²�ï§ÆOqÀyé&1¬ÀB`åÐ"ÛÉ¿5^ºIŒÒ�ÀÛù~j¼ô@B`åÐ"ÛÑ?q= ×£XRÀoƒÀÊa$@Ë¡E¶óopÀÕxé&1ö¿¸…ëQ¸î?Ï÷S㥔�ÀÕxé&1ö¿¸…ëQ¸î?q= ×£XRÀoƒÀÊa$@Ë¡E¶óopÀÛù~j¼ôÀB`åÐ"ÛÑ¿Ï÷S㥔�ÀåÐ"Ûù~ @�—nƒÀæ?D‹lçûÁUÀžï§ÆKw#@˜nƒÀöpÀmçû©ñÒ ÀåÐ"Ûù~æ?ÁÊ¡E¶�Àmçû©ñÒ ÀåÐ"Ûù~æ?D‹lçûÁUÀžï§ÆKw#@˜nƒÀöpÀåÐ"Ûù~ À�—nƒÀæ¿ÁÊ¡E¶�À?5^ºI @ÇK7‰A`é?œÄ °rhÙ¿ƒÀÊ¡…#@-²�ï5pÀ`åÐ"Ûù À…ëQ¸…ã?Å °rh.�À`åÐ"Ûù À…ëQ¸…ã?œÄ °rhÙ¿ƒÀÊ¡…#@-²�ï5pÀ?5^ºI ÀÇK7‰A`é¿Å °rh.�À'1¬Z@+‡ÙÎ÷³?´Èv¾Ÿ"RÀã¥›Ä ð @ã¥›Ä DpÀÑ"Ûù~jÔ¿�•C‹lçï?q= ×£T�ÀÑ"Ûù~jÔ¿�•C‹lçï?´Èv¾Ÿ"RÀã¥›Ä ð @ã¥›Ä DpÀ'1¬ZÀ+‡ÙÎ÷³¿q= ×£T�ÀV-² À7‰A`åÐæ?Ý$�•›UÀ“Ví"@}?5^º‘pÀ¾Ÿ/Ý$ À;ßO�—næ¿bX9´ �À¾Ÿ/Ý$ À;ßO�—næ¿Ý$�•›UÀ“Ví"@}?5^º‘pÀV-² @7‰A`åÐæ¿bX9´ �ÀøS㥛D@+‡ÙÎ÷Ã?/Ý$�ýR@ÙÎ÷Sãå$@%�•CqÀR¸…ëQè¿V-²�ï?×£p=Š®�ÀR¸…ëQè¿V-²�ï?/Ý$�ýR@ÙÎ÷Sãå$@%�•CqÀøS㥛DÀ+‡ÙÎ÷ÿףp=Š®�À+‡ÙÎÀôýÔxé&å?sh‘í|?"À“V­@!°rh‘rÀF¶óýÔxÀè¿?5^ºÉ(‘ÀF¶óýÔxÀè¿sh‘í|?"À“V­@!°rh‘rÀ+‡ÙÎ@ôýÔxé&å¿?5^ºÉ(‘ÀÅ °rh@¬Zd;ß×?J +‡ÆAÀ¾Ÿ/ݤ*@¼t“øpÀÅ °rh‘ÀV-²í?ÓMbXW�ÀÅ °rh‘ÀV-²í?J +‡ÆAÀ¾Ÿ/ݤ*@¼t“øpÀÅ °rhÀ¬Zd;ß׿ÓMbXW�ÀòÒMbX@Év¾Ÿ/Õ?Ãõ(\�êVÀ\�Âõ(\'@X9´Èv qÀþ¿“V-î??5^ºÉ§�Àþ¿“V-î?Ãõ(\�êVÀ\�Âõ(\'@X9´Èv qÀòÒMbXÀÉv¾Ÿ/Õ¿?5^ºÉ§�ÀL7‰A`å@ìQ¸…ë¡?NbX9´ò?h‘í|?u!@Ñ"Ûù~pÀßO�—nÿ+‡ÙÎ÷ï?#Ûù~jèŽÀßO�—nÿ+‡ÙÎ÷ï?NbX9´ò?h‘í|?u!@Ñ"Ûù~pÀL7‰A`åÀìQ¸…ë¡¿#Ûù~jèŽÀÕxé&1 @yé&1¬Ì?^ºI 3PÀX9´Èö@)\�ÂõôqÀmçû©ñÒé¿^ºI +ï?u“Ö=‘Àmçû©ñÒé¿^ºI +ï?^ºI 3PÀX9´Èö@)\�ÂõôqÀÕxé&1 Àyé&1¬Ì¿u“Ö=‘ÀÏ÷S㥛À�Âõ(\�æ?F¶óýÔ¸PÀJ +‡)@ßO�—nÞoÀ/Ý$�Àã¥›Ä °æ¿þÔxé&ÒŽÀ/Ý$�Àã¥›Ä °æ¿F¶óýÔ¸PÀJ +‡)@ßO�—nÞoÀÏ÷S㥛@�Âõ(\�æ¿þÔxé&ÒŽÀ¾Ÿ/Ý$@“V-â?ÍÌÌÌÌlP@5^ºI B$@¸…ëQÈqÀ²�ï§ÆKÀ¼t“Vê?…ëQ8,‘À²�ï§ÆKÀ¼t“Vê?ÍÌÌÌÌlP@5^ºI B$@¸…ëQÈqÀ¾Ÿ/Ý$À“V-â¿…ëQ8,‘À®Gáz®@ìQ¸…ëé? ×£p=ªD@333333"@}?5^º/rÀ%�•C‹ ÀbX9´Èâ?œÄ °ò7‘À%�•C‹ ÀbX9´Èâ? ×£p=ªD@333333"@}?5^º/rÀ®Gáz®ÀìQ¸…ëé¿œÄ °ò7‘À‹lçû©ñÀƒÀÊ¡E¶³?–C‹lçû?Àyé&1,@X9´Èv`qÀßO�—nÓ¿�•C‹lçᅢÀÊ¡E·�ÀßO�—nÓ¿�•C‹lçï¿–C‹lçû?Àyé&1,@X9´Èv`qÀ‹lçû©ñ@ƒÀÊ¡E¶³¿ƒÀÊ¡E·�ÀƒÀÊ¡E¶ ÀR¸…ëQØ?1¬Z´L@¬Zd;@= ×£p½pÀ;ßO�—nø¿š™™™™™í¿…ëQ¸)�À;ßO�—nø¿š™™™™™í¿1¬Z´L@¬Zd;@= ×£p½pÀƒÀÊ¡E¶ @R¸…ëQØ¿…ëQ¸)�ÀÑ"Ûù~j@¾Ÿ/Ý$î?ƒÀÊ¡å1Àd;ßO�×+@²�ï§ÆÏoÀ–C‹lç{Àq= ×£pÕ?‰A`åÐ�À–C‹lç{Àq= ×£pÕ?ƒÀÊ¡å1Àd;ßO�×+@²�ï§ÆÏoÀÑ"Ûù~jÀ¾Ÿ/Ý$A`åÐ�Àü©ñÒMb@bX9´Èê?ƒÀÊ¡EV1À\�Âõ(Ü@V-²�§oÀ�Âõ(\� Àð§ÆK7‰á?Ház®ìŽÀ�Âõ(\� Àð§ÆK7‰á?ƒÀÊ¡EV1À\�Âõ(Ü@V-²�§oÀü©ñÒMbÀbX9´Èê¿Ház®ìŽÀbX9´È@œÄ °rhá?áz®GÉWÀ“Vm%@u“V¢pÀ#Ûù~j¼À +‡Ùê?Ház®;�À#Ûù~j¼À +‡Ùê?áz®GÉWÀ“Vm%@u“V¢pÀbX9´ÈÀœÄ °rhá¿Ház®;�À /Ý$@X9´Èv¾×?d;ßO�—J@ ×£p= $@^ºI ñqÀ7‰A`åÐü¿î|?5^ºí?çû©ñR#‘À7‰A`åÐü¿î|?5^ºí?d;ßO�—J@ ×£p= $@^ºI ñqÀ /Ý$ÀX9´Èv¾×¿çû©ñR#‘ÀƒÀÊ¡E6@9´Èv¾ß8À /Ý$Æ!@¸oÀü©ñÒMbP¿ð?/Ý$�îŽÀü©ñÒMbP¿ð?9´Èv¾ß8À /Ý$Æ!@¸oÀƒÀÊ¡E6À/Ý$�îŽÀš™™™™™ÿ?�—nƒÀê?P�—n³MÀj¼t“@-²�ï)rÀ´Èv¾ŸÀð§ÆK7‰á?`åÐ"Ûe‘À´Èv¾ŸÀð§ÆK7‰á?P�—n³MÀj¼t“@-²�ï)rÀš™™™™™ÿ¿�—nƒÀê¿`åÐ"Ûe‘À;ßO�—n@×£p= ×ë?Ûù~j¼äF@h‘í|?5!@×£p= ÕqÀ+‡ÙÎÀZd;ßO�ß?V-ò�À+‡ÙÎÀZd;ßO�ß?Ûù~j¼äF@h‘í|?5!@×£p= ÕqÀ;ßO�—nÀ×£p= ×ë¿V-ò�ÀÉv¾Ÿ/í¿1¬Zdï?ü©ñÒMzP@ ×£p=J#@Ûù~j¼�oÀR¸…ëQÀö(\�ÂõÈ¿Zd;ßïŽÀR¸…ëQÀö(\�ÂõÈ¿ü©ñÒMzP@ ×£p=J#@Ûù~j¼�oÀÉv¾Ÿ/í?1¬Zdï¿Zd;ßïŽÀ–C‹lçû @¸…ëQ¸®?ÙÎ÷SãeK@NbX94@ìQ¸…!pÀÍÌÌÌÌÌÌ¿V-²�ïï?ü©ñÒMF�ÀÍÌÌÌÌÌÌ¿V-²�ïï?ÙÎ÷SãeK@NbX94@ìQ¸…!pÀ–C‹lçû À¸…ëQ¸®¿ü©ñÒMF�À)\�Âõ(ÀåÐ"Ûù~â?D‹lçûé5À…ëQ¸@X9´ÈvÂpÀ%�•C‹ü¿é&1¬ê¿yé&1ˆK�À%�•C‹ü¿é&1¬ê¿D‹lçûé5À…ëQ¸@X9´ÈvÂpÀ)\�Âõ(@åÐ"Ûù~â¿yé&1ˆK�ÀJ +‡@ôýÔxé&é?²�ï§Æ»B@d;ßO�—@!°rh‘QrÀ%�•C‹ À-²�ï§Æã?áz®GK‘À%�•C‹ À-²�ï§Æã?²�ï§Æ»B@d;ßO�—@!°rh‘QrÀJ +‡ÀôýÔxé&é¿áz®GK‘À)\�Âõ(ÀÍÌÌÌÌÌè?\�Âõ(ŒJ@5^ºI @²�ï§Æ‹qÀƒÀÊ¡E¶ÀÓMbX9ä¿…ëQ¸Å�ÀƒÀÊ¡E¶ÀÓMbX9ä¿\�Âõ(ŒJ@5^ºI @²�ï§Æ‹qÀ)\�Âõ(@ÍÌÌÌÌÌè¿…ëQ¸Å�Àü©ñÒMâ@‰A`åÐ"ç?`åÐ"ÛÑUÀã¥›Ä 0*@ÙÎ÷S/qÀyé&1¬Àé&1¬æ?!°rhº�Àyé&1¬Àé&1¬æ?`åÐ"ÛÑUÀã¥›Ä 0*@ÙÎ÷S/qÀü©ñÒMâÀ‰A`åÐ"ç¿!°rhº�ÀßO�—n’@)\�Âõ(à?¼t“^P@u“V'@ÓMbXrÀ#Ûù~j¼ÀV-²�ë?Ãõ(\w‘À#Ûù~j¼ÀV-²�ë?¼t“^P@u“V'@ÓMbXrÀßO�—n’À)\�Âõ(à¿Ãõ(\w‘ÀV-²ÀD‹lçû©å?ßO�—nÂN@+‡ÙÎ7+@�•C‹l rÀ333333ÀZd;ßO�ç¿j¼t“_‘À333333ÀZd;ßO�ç¿ßO�—nÂN@+‡ÙÎ7+@�•C‹l rÀV-²@D‹lçû©å¿j¼t“_‘À+‡ÙÎ÷@R¸…ëQä?T㥛ÄÐVÀœÄ °rh@B`åÐ"÷nÀ/Ý$�À#Ûù~j¼è?»ŽÀ/Ý$�À#Ûù~j¼è?T㥛ÄÐVÀœÄ °rh@B`åÐ"÷nÀ+‡ÙÎ÷ÀR¸…ëQä¿»ŽÀáz®Gá À\�Âõ(\×?D‹lçû©TÀßO�—n’ @bX9´(qÀq= ×£p÷¿˜nƒÀÊí¿‰A`åФ�Àq= ×£p÷¿˜nƒÀÊí¿D‹lçû©TÀßO�—n’ @bX9´(qÀáz®Gá @\�Âõ(\׿‰A`åФ�À#Ûù~j<À²�ï§ÆKç?sh‘í|?À9´Èv¾_)@ÙÎ÷SpÀ= ×£p=ÀÁÊ¡E¶óå¿ +‡�À= ×£p=ÀÁÊ¡E¶óå¿sh‘í|?À9´Èv¾_)@ÙÎ÷SpÀ#Ûù~j<@²�ï§ÆKç¿ +‡�À{®Gáz ÀøS㥛Ää?åÐ"ÛùÞ0À+‡ÙÎ÷!@ÙÎ÷SãqpÀú~j¼t“À'1¬Zè¿X9´Èvñ�Àú~j¼t“À'1¬Zè¿åÐ"ÛùÞ0À+‡ÙÎ÷!@ÙÎ÷SãqpÀ{®Gáz @øS㥛Ää¿X9´Èvñ�ÀÍÌÌÌÌÌ @L7‰A`åè?`åÐ"Û™O@w¾Ÿ/Ý&@ÁÊ¡E¶ûoÀ#Ûù~j<Àj¼t“ä?T㥛Ä1�À#Ûù~j<Àj¼t“ä?`åÐ"Û™O@w¾Ÿ/Ý&@ÁÊ¡E¶ûoÀÍÌÌÌÌÌ ÀL7‰A`åè¿T㥛Ä1�À= ×£p= À`åÐ"Ûùâ?“V =ÀÏ÷Sã¥"@¤p= ×£pÀÍÌÌÌÌÌÀÃõ(\�Âé¿°rh‘í �ÀÍÌÌÌÌÌÀÃõ(\�Âé¿“V =ÀÏ÷Sã¥"@¤p= ×£pÀ= ×£p= @`åÐ"Ûùâ¿°rh‘í �ÀƒÀÊ¡E¶@“V-Â?V-²ýL@¶óýÔxi @X9´ÈvfqÀ‰A`åÐ"ã¿®Gáz®ï?D‹lçû´�À‰A`åÐ"ã¿®Gáz®ï?V-²ýL@¶óýÔxi @X9´ÈvfqÀƒÀÊ¡E¶À“V-¿D‹lçû´�ÀÓMbX9À!°rh‘íà?^ºI  SÀ^ºI +&@ ×£p=ÞoÀV-²À^ºI +ë¿ôýÔxéúŽÀV-²À^ºI +ë¿^ºI  SÀ^ºI +&@ ×£p=ÞoÀÓMbX9@!°rh‘íà¿ôýÔxéúŽÀ˜9´Èv¾Ÿ@ /Ý$Á?#Ûù~j GÀ\�Âõ(\"@^ºI ytÀáz®Gá⿃ÀÊ¡E¶ï?ÇK7‰Á “Àáz®Gá⿃ÀÊ¡E¶ï?#Ûù~j GÀ\�Âõ(\"@^ºI ytÀ9´Èv¾ŸÀ /Ý$Á¿ÇK7‰Á “ÀffffffÆ¿+‡ÙÎ÷ï?V-²�ŸI@ÍÌÌÌÌŒ'@ +‡™tÀ+‡ÙÎ÷Àü©ñÒMb ¿9´Èv>*“À+‡ÙÎ÷Àü©ñÒMb ¿V-²�ŸI@ÍÌÌÌÌŒ'@ +‡™tÀffffffÆ?+‡ÙÎ÷ï¿9´Èv>*“À¾Ÿ/Ý$Ö?+‡ÙÎï?ÙÎ÷Sc.@åÐ"Ûùþ@�—nƒÌtÀ�Âõ(\� ÀÙÎ÷S㥻?�—nƒ“À�Âõ(\� ÀÙÎ÷S㥻?ÙÎ÷Sc.@åÐ"Ûùþ@�—nƒÌtÀ¾Ÿ/Ý$Ö¿+‡ÙÎï¿�—nƒ“ÀV-2@{®GázÄ?+‡ÙNC@¼t“Ö$@‘í|?5ôrÀL7‰A`åè¿/Ý$�•ï?sh‘íüø‘ÀL7‰A`åè¿/Ý$�•ï?+‡ÙNC@¼t“Ö$@‘í|?5ôrÀV-2À{®GázÄ¿sh‘íüø‘Àj¼t“À/Ý$�Ý?X9´ÈvnFÀh‘í|?5@F¶óýÔÚtÀ`åÐ"Ûùö¿ü©ñÒMbì¿Ý$�;“À`åÐ"Ûùö¿ü©ñÒMbì¿X9´ÈvnFÀh‘í|?5@F¶óýÔÚtÀj¼t“@/Ý$�Ý¿Ý$�;“ÀòÒMbX@w¾Ÿ/Ýè?ö(\�ÂÕD@øS㥛Ä@R¸…ëñtÀü©ñÒMbÀ)\�Âõ(ä?L7‰AàE“Àü©ñÒMbÀ)\�Âõ(ä?ö(\�ÂÕD@øS㥛Ä@R¸…ëñtÀòÒMbXÀw¾Ÿ/Ýè¿L7‰AàE“À#Ûù~j<@¢E¶óýÔØ?‰A`åÐb3ÀÇK7‰A !@Õxé&1xuÀ\�Âõ(\û¿/Ý$�í?¤p= ×b“À\�Âõ(\û¿/Ý$�í?‰A`åÐb3ÀÇK7‰A !@Õxé&1xuÀ#Ûù~j<À¢E¶óýÔØ¿¤p= ×b“ÀX9´Èv>@Év¾Ÿ/­?^ºI «FÀZd;ßOÍ @Év¾ŸsÀÅ °rh‘Í¿V-²�ïï?)\�Âõ<’ÀÅ °rh‘Í¿V-²�ïï?^ºI «FÀZd;ßOÍ @Év¾ŸsÀX9´Èv>ÀÉv¾Ÿ/­¿)\�Âõ<’ÀNbX9´ü?j¼t“ê?®Gáz4;À°rh‘íü@zsÀßO�—nÀ9´Èv¾Ÿâ?+‡ÙNY’ÀßO�—nÀ9´Èv¾Ÿâ?®Gáz4;À°rh‘íü@zsÀNbX9´ü¿j¼t“ê¿+‡ÙNY’À'1¬Zò?°rh‘í|ï?-²�ï§6JÀ5^ºI Â+@¼t“–uÀ€À-²�ï§Æ??5^ºÉ§“À€À-²�ï§Æ?-²�ï§6JÀ5^ºI Â+@¼t“–uÀ'1¬Zò¿°rh‘í|ï¿?5^ºÉ§“Àmçû©ñÒÀþÔxé&1ä?u“VÞBÀÉv¾Ÿ/%@/Ý$…tÀ�•C‹lç À¢E¶óýÔè¿T㥛D“À�•C‹lç À¢E¶óýÔè¿u“VÞBÀÉv¾Ÿ/%@/Ý$…tÀmçû©ñÒ@þÔxé&1ä¿T㥛D“ÀÉv¾Ÿ/é¿-²�ï§Æï?ÁÊ¡E¶S3@{®Gáº,@®GázªuÀT㥛ĠÀÁÊ¡E¶ó½¿–C‹lg�“ÀT㥛ĠÀÁÊ¡E¶ó½¿ÁÊ¡E¶S3@{®Gáº,@®GázªuÀÉv¾Ÿ/é?-²�ï§Æï¿–C‹lg�“À²�ï§ÆKë?¬Zd;ï?NbX9ôJ@Ï÷S㥛@žï§ÆKrÀ#Ûù~j¼À-²�ï§ÆË?´Èv¾Ÿº‘À#Ûù~j¼À-²�ï§ÆË?NbX9ôJ@Ï÷S㥛@žï§ÆKrÀ²�ï§ÆK뿬Zd;ï¿´Èv¾Ÿº‘Àš™™™™™ÀÑ"Ûù~jè?ªñÒMb7@q= ×£p @¦›Ä °²tÀHáz®GÀNbX9´ä¿ÇK7‰A“ÀHáz®GÀNbX9´ä¿ªñÒMb7@q= ×£p @¦›Ä °²tÀš™™™™™@Ñ"Ûù~jè¿ÇK7‰A“À‡ÙÎ÷Sÿ¿h‘í|?5î?B`åÐ"»=@-²�ïg)@V-²�ãsÀáz®GaÀ…ëQ¸Õ¿33333¨’Àáz®GaÀ…ëQ¸Õ¿B`åÐ"»=@-²�ïg)@V-²�ãsÀ‡ÙÎ÷Sÿ?h‘í|?5î¿33333¨’À¼t“V@L7‰A`åè?¢E¶óýT?@L7‰A`e@7‰A`åÄuÀ#Ûù~j¼Àj¼t“ä?ºI «¥“À#Ûù~j¼Àj¼t“ä?¢E¶óýT?@L7‰A`e@7‰A`åÄuÀ¼t“VÀL7‰A`å迺I «¥“ÀL7‰A`åÀ +‡Ùê?B`åÐ"{@@¨ÆK7‰ @w¾Ÿ/“sÀ¤p= ×£ ÀœÄ °rhá¿-²�ï'}’À¤p= ×£ ÀœÄ °rhá¿B`åÐ"{@@¨ÆK7‰ @w¾Ÿ/“sÀL7‰A`å@ +‡Ùê¿-²�ï'}’Àé&1¬æ¿Zd;ßO�ï?¢E¶óýÔ.@¤p= ×# @}?5^º…uÀ‘í|?5^ÀÇK7‰A`Å¿…ëQ¸že“À‘í|?5^ÀÇK7‰A`Å¿¢E¶óýÔ.@¤p= ×# @}?5^º…uÀé&1¬æ?Zd;ßO�ï¿…ëQ¸že“À¤p= ×£ü¿“V-î?{®GášB@®Gáz.&@�•C‹°sÀsh‘í|?ÀZd;ßOÕ¿oƒÀÊ•’Àsh‘í|?ÀZd;ßOÕ¿{®GášB@®Gáz.&@�•C‹°sÀ¤p= ×£ü?“V-î¿oƒÀÊ•’Àj¼t“„ÀœÄ °rhÙ?ÇK7‰APH@bX9´È-@B`åÐ"�rÀu“VÀÇK7‰A`í¿1¬Úµ‘Àu“VÀÇK7‰A`í¿ÇK7‰APH@bX9´È-@B`åÐ"�rÀj¼t“„@œÄ °rhÙ¿1¬Úµ‘À˜nƒÀÊõ¿áz®Gáî?î|?5^êE@33333s%@…ëQ¸ƒrÀ?5^ºI ÀøS㥛Äпçû©ñÒ–‘À?5^ºI ÀøS㥛Äпî|?5^êE@33333s%@…ëQ¸ƒrÀ˜nƒÀÊõ?áz®Gáî¿çû©ñÒ–‘À À¸…ëQ¸ê?ÇK7‰A€I@P�—nC*@áz®G‘sÀö(\�ÂuÀoƒÀÊ¡á¿Ë¡E¶s¢’Àö(\�ÂuÀoƒÀÊ¡á¿ÇK7‰A€I@P�—nC*@áz®G‘sÀ @¸…ëQ¸ê¿Ë¡E¶s¢’ÀoƒÀÊ¡À/Ý$�å?é&1¬Ì@@ìQ¸…+ @)\�ÂõÌrÀ\�Âõ(\À®Gáz®ç¿‹lçû©¶‘À\�Âõ(\À®Gáz®ç¿é&1¬Ì@@ìQ¸…+ @)\�ÂõÌrÀoƒÀÊ¡@/Ý$�å¿‹lçû©¶‘À\�Âõ(\@þÔxé&1ì?X9´Èv^<@Å °rh‘+@Zd;ßmsÀD‹lçû©ÀƒÀÊ¡EÞ?þÔxé&U’ÀD‹lçû©ÀƒÀÊ¡EÞ?X9´Èv^<@Å °rh‘+@Zd;ßmsÀ\�Âõ(\ÀþÔxé&1ì¿þÔxé&U’ÀßO�—n À;ßO�—næ?X9´Èv7Àmçû©ñR$@oƒÀÊgsÀd;ßO�— À7‰A`åÐæ¿#Ûù~ê;’Àd;ßO�— À7‰A`åÐæ¿X9´Èv7Àmçû©ñR$@oƒÀÊgsÀßO�—n @;ßO�—næ¿#Ûù~ê;’ÀZd;ßO�@/Ý$�é?-²�ïg;@/Ý$�•!@ÓMbXsÀ)\�Âõ( À‡ÙÎ÷Sã?ƒÀÊ¡Eå‘À)\�Âõ( À‡ÙÎ÷Sã?-²�ïg;@/Ý$�•!@ÓMbXsÀZd;ßO�À/Ý$�鿃ÀÊ¡Eå‘ÀÅ °rhÀD‹lçû©Á?ð§ÆK7ÉDÀJ +‡Ö"@ +‡uÀþÔxé&1ä¿®Gáz®ï¿ ×£p=W“ÀþÔxé&1ä¿®Gáz®ï¿ð§ÆK7ÉDÀJ +‡Ö"@ +‡uÀÅ °rh@D‹lçû©Á¿ ×£p=W“ÀÓMbX9ÀþÔxé&1Ð?Zd;ßO�PÀ/Ý$�•%@oƒÀÊcrÀôýÔxé&õ¿‹lçû©ñ›Ä °Î‘ÀôýÔxé&õ¿‹lçû©ñî¿Zd;ßO�PÀ/Ý$�•%@oƒÀÊcrÀÓMbX9@þÔxé&1п¦›Ä °Î‘À`åÐ"ÛùÎ?V-²�ïï?q= ×£0G@#Ûù~j< @þÔxé&ïsÀyé&1¬ÀV-²­?d;ßO Ì’Àyé&1¬ÀV-²­?q= ×£0G@#Ûù~j< @þÔxé&ïsÀ`åÐ"ÛùοV-²�ïï¿d;ßO Ì’ÀÁÊ¡E¶ó@ì?¸…ëQøEÀoƒÀÊ!#@;ßO�—tÀƒÀÊ¡E6À`åÐ"ÛùÞ?‹lçû©Ñ’ÀƒÀÊ¡E6À`åÐ"ÛùÞ?¸…ëQøEÀoƒÀÊ!#@;ßO�—tÀÁÊ¡E¶óÀì¿‹lçû©Ñ’À33333³Àyé&1¬¼?¶óýÔx¹@ÀL7‰A`e'@‘í|?56sÀ°rh‘í|ã¿+‡ÙÎï¿V-4’À°rh‘í|ã¿+‡ÙÎï¿¶óýÔx¹@ÀL7‰A`e'@‘í|?56sÀ33333³@yé&1¬¼¿V-4’À×£p= ×À-²�ï§ê?u“V®L@+‡ÙN%@Ûù~j¼ærÀã¥›Ä 0ÀV-²á¿ /ݤ&’Àã¥›Ä 0ÀV-²á¿u“V®L@+‡ÙN%@Ûù~j¼ærÀ×£p= ×@-²�ï§ê¿ /ݤ&’ÀB`åÐ"Û¹?ð?ÍÌÌÌÌÜC@1¬Z¤ @)\�ÂõŽrÀé&1¬Àú~j¼t“˜?ÙÎ÷Ó�‘Àé&1¬Àú~j¼t“˜?ÍÌÌÌÌÜC@1¬Z¤ @)\�ÂõŽrÀB`åÐ"Û¹¿ð¿ÙÎ÷Ó�‘À¶óýÔxiÀD‹lçû©å?¦›Ä °‚BÀ}?5^ºÉ*@ú~j¼tÍsÀ¶óýÔxéÀZd;ßO�ç¿ü©ñÒM­’À¶óýÔxéÀZd;ßO�翦›Ä °‚BÀ}?5^ºÉ*@ú~j¼tÍsÀ¶óýÔxi@D‹lçû©å¿ü©ñÒM­’ÀoƒÀÊ!À +‡ÙÎ?�Âõ(\/9À–C‹lç{&@�•C‹ØuÀ5^ºI õ¿ ×£p= ï¿¶óýÔø›“À5^ºI õ¿ ×£p= ï¿�Âõ(\/9À–C‹lç{&@�•C‹ØuÀoƒÀÊ!@ +‡Ùο¶óýÔø›“ÀV-²ÀX9´Èvâ?…ëQ¸…G@)\�Âõ(+@×£p= tÀƒÀÊ¡E Àé&1¬ê¿�•C‹à’ÀƒÀÊ¡E Àé&1¬ê¿…ëQ¸…G@)\�Âõ(+@×£p= tÀV-²@X9´Èvâ¿�•C‹à’ÀƒÀÊ¡E6@¶óýÔxéÆ?¨ÆK7‰QQÀªñÒMb"@¾Ÿ/Ý.rÀ /Ý$é¿°rh‘í|ï?ºI +—‘À /Ý$é¿°rh‘í|ï?¨ÆK7‰QQÀªñÒMb"@¾Ÿ/Ý.rÀƒÀÊ¡E6À¶óýÔxéÆ¿ºI +—‘À×£p= ×@w¾Ÿ/ÝÔ?^ºI KGÀÙÎ÷Sãe"@¢E¶óýèrÀÝ$�•C÷¿= ×£p=î?㥛Ġ’ÀÝ$�•C÷¿= ×£p=î?^ºI KGÀÙÎ÷Sãe"@¢E¶óýèrÀ×£p= ×Àw¾Ÿ/ÝԿ㥛Ġ’ÀÀ¬Zd;Ï?d;ßO�‡A@+‡ÙN(@+‡ÙÎ×rÀþÔxé&1ö¿ ×£p= ï¿J +‡É‘ÀþÔxé&1ö¿ ×£p= ï¿d;ßO�‡A@+‡ÙN(@+‡ÙÎ×rÀ@¬Zd;Ï¿J +‡É‘À+‡ÙÎ@+‡ÙÎç?;ßO�—þGÀƒÀÊ¡E¶@“V»rÀ¨ÆK7‰AÀœÄ °rhå?¢E¶ó}ß‘À¨ÆK7‰AÀœÄ °rhå?;ßO�—þGÀƒÀÊ¡E¶@“V»rÀ+‡ÙÎÀ+‡ÙÎç¿¢E¶ó}ß‘ÀTã¥›Ä Ø¿¬Zd;ßï?òÒMb8BÀƒÀÊ¡E6!@²�ï§ÆSsÀ¤p= ×£ÀÃõ(\�µ¿¬Zd;V’À¤p= ×£ÀÃõ(\�µ¿òÒMb8BÀƒÀÊ¡E6!@²�ï§ÆSsÀTã¥›Ä Ø?¬Zd;ß↓Zd;V’ÀB`åÐ"Û @ºI +‡Ö?{®GáQ@žï§ÆKw @ÙÎ÷SãrÀ;ßO�—nö¿ÁÊ¡E¶óí?¬Zd»Œ‘À;ßO�—nö¿ÁÊ¡E¶óí?{®GáQ@žï§ÆKw @ÙÎ÷SãrÀB`åÐ"Û ÀºI +‡Ö¿¬Zd»Œ‘ÀßO�—n’@¢E¶óýÔà?ú~j¼t“?À¬Zd;ß$@/Ý$�itÀ{®GázÀ¬Zd;ë?ÍÌÌÌÌì’À{®GázÀ¬Zd;ë?ú~j¼t“?À¬Zd;ß$@/Ý$�itÀßO�—n’À¢E¶óýÔà¿ÍÌÌÌÌì’À–C‹lçûó¿‹lçû©ñî?¾Ÿ/ÝÄI@ ×£p=J$@˜nƒÀºrÀ/Ý$À¨ÆK7‰AÐ¿š™™™™æ‘À/Ý$À¨ÆK7‰Aп¾Ÿ/ÝÄI@ ×£p=J$@˜nƒÀºrÀ–C‹lçûó?‹lçû©ñ™™™™æ‘Àçû©ñÒMÀ¬Zd;ç?ÓMbXÙ8@!°rh‘-!@¾Ÿ/ÝZuÀ-²�ï§ Àj¼t“æ¿é&1¬b“À-²�ï§ Àj¼t“æ¿ÓMbXÙ8@!°rh‘-!@¾Ÿ/ÝZuÀçû©ñÒM@¬Zd;ç¿é&1¬b“ÀV-²�ïÀ�•C‹l×?-²�ï§?À{®Gá:'@¸…ëQfsÀF¶óýÔxÀ˜nƒÀÊí¿¬ZdW’ÀF¶óýÔxÀ˜nƒÀÊí¿-²�ï§?À{®Gá:'@¸…ëQfsÀV-²�ï@�•C‹l׿¬ZdW’À7‰A`åÐÀsh‘í|?µ?Ë¡E¶ó}MÀð§ÆK7‰$@°rh‘ísÀ�Âõ(\�Ú¿�•C‹lçï¿P�—n’K’À�Âõ(\�Ú¿�•C‹lçï¿Ë¡E¶ó}MÀð§ÆK7‰$@°rh‘ísÀ7‰A`åÐ@sh‘í|?µ¿P�—n’K’À /Ý$ @NbX9´è?B`åÐ"ÛB@d;ßO�W$@R¸…ëuÀ�•C‹lÀR¸…ëQä?Év¾ŸšO“À�•C‹lÀR¸…ëQä?B`åÐ"ÛB@d;ßO�W$@R¸…ëuÀ /Ý$ ÀNbX9´è¿Év¾ŸšO“À#Ûù~j¼@J +‡¹?ºI +ç0ÀD‹lçû)@ÙÎ÷SãQuÀÛù~j¼tÓ¿×£p= ×ï?;ßO�—K“ÀÛù~j¼tÓ¿×£p= ×ï?ºI +ç0ÀD‹lçû)@ÙÎ÷SãQuÀ#Ûù~j¼ÀJ +‡¹¿;ßO�—K“Àn(h‘í|?µ@øS㥛ÄÀ?–C‹lç;=ÀbX9´È+@×£p= uÀ‰A`åÐ"뿃ÀÊ¡E¶ï?1¬Ú:“À‰A`åÐ"뿃ÀÊ¡E¶ï?–C‹lç;=ÀbX9´È+@×£p= uÀh‘í|?µÀøS㥛ÄÀ¿1¬Ú:“ÀÓMbX9ÀV-²�ïë?B`åÐ"û?@¸…ëQ8&@¬ZdÿtÀÏ÷Sã¥À¬Zd;ß¿u“V;“ÀÏ÷Sã¥À¬Zd;ß¿B`åÐ"û?@¸…ëQ8&@¬ZdÿtÀÓMbX9@V-²�ïë¿u“V;“À¤p= ×#@j¼t“Þ?sh‘í|H@+‡ÙÎ7'@°rh‘íìrÀR¸…ëQÀ¨ÆK7‰Aì?yé&1ˆ’ÀR¸…ëQÀ¨ÆK7‰Aì?sh‘í|H@+‡ÙÎ7'@°rh‘íìrÀ¤p= ×#Àj¼t“Þ¿yé&1ˆ’À1¬Zdù?¾Ÿ/Ý$î?�Âõ(\o6À¬Zd{#@–C‹lçãtÀøS㥛ÄÀ/Ý$�Õ?áz®G“ÀøS㥛ÄÀ/Ý$�Õ?�Âõ(\o6À¬Zd{#@–C‹lçãtÀ1¬Zdù¿¾Ÿ/Ý$î¿áz®G“Àé&1¬þ?u“Ví?mçû©ñò=@;ßO�—n!@‹lçû©ÇrÀƒÀÊ¡EÀáz®GáÚ?Ë¡E¶s¥‘ÀƒÀÊ¡EÀáz®GáÚ?mçû©ñò=@;ßO�—n!@‹lçû©ÇrÀé&1¬þ¿u“Ví¿Ë¡E¶s¥‘À‰A`åÐ"Û¿×£p= ×ï?Ûù~j¼”4Àyé&1,!@ÙÎ÷SãtÀ%�•C‹Àé&1¬º¿é&1,­’À%�•C‹Àé&1¬º¿Ûù~j¼”4Àyé&1,!@ÙÎ÷SãtÀ‰A`åÐ"Û?×£p= ×ï¿é&1,­’À®Gáz®@j¼t“à?ú~j¼t6@‡ÙÎ÷S"@¶óýÔx+uÀB`åÐ"ÛÀÙÎ÷Sã¥ë?ú~j¼tB“ÀB`åÐ"ÛÀÙÎ÷Sã¥ë?ú~j¼t6@‡ÙÎ÷S"@¶óýÔx+uÀ®Gáz®Àj¼t“à¿ú~j¼tB“Àî|?5^ºÀV-²é?®Gáz”GÀ‰A`åТ+@ÓMbX'uÀ¸…ëQ¸ÀßO�—nã¿Õxé&±c“À¸…ëQ¸ÀßO�—nã¿®Gáz”GÀ‰A`åТ+@ÓMbX'uÀî|?5^º@V-²é¿Õxé&±c“À®Gáz® @¼t“Vâ?\�Âõ(ìGÀR¸…ë"@'1¬ tÀªñÒMbÀh‘í|?5ê?‰A`åP!“ÀªñÒMbÀh‘í|?5ê?\�Âõ(ìGÀR¸…ë"@'1¬ tÀ®Gáz® À¼t“V⿉A`åP!“À°rh‘í|@Ý$�•Cë?\�Âõ(ìB@þÔxé&1#@ÁÊ¡E¶{uÀ-²�ï§ÀøS㥛Äà?‰A`åP�“À-²�ï§ÀøS㥛Äà?\�Âõ(ìB@þÔxé&1#@ÁÊ¡E¶{uÀ°rh‘í|ÀÝ$�•C뿉A`åP�“À-²�ï§Æ@¨ÆK7‰AØ?q= ×£pAÀfffffæ&@‰A`åЬuÀh‘í|?5Àš™™™™™í?j¼t“’“Àh‘í|?5Àš™™™™™í?q= ×£pAÀfffffæ&@‰A`åЬuÀ-²�ï§ÆÀ¨ÆK7‰AØ¿j¼t“’“ÀP�—nƒ Àyé&1¬Ì?®Gáz®;À‹lçû©q@= ×£pWtÀ= ×£p=ê¿333333↑ñÒMâß’À= ×£p=ê¿333333ï¿®Gáz®;À‹lçû©q@= ×£pWtÀP�—nƒ @yé&1¬Ì¿ªñÒMâß’À/Ý$�•÷?Ház®Gí?Év¾ŸßG@ÙÎ÷Sc@š™™™™QuÀƒÀÊ¡E¶ ÀB`åÐ"ÛÙ?î|?5Þ€“ÀƒÀÊ¡E¶ ÀB`åÐ"ÛÙ?Év¾ŸßG@ÙÎ÷Sc@š™™™™QuÀ/Ý$�•÷¿Ház®Gí¿î|?5Þ€“ÀìQ¸…ëÀ;ßO�—n‚?¶óýÔxéFÀ´Èv¾Ÿš%@5^ºI tuÀJ +‡©¿ð¿ð§ÆK·‡“ÀJ +‡©¿ð¿¶óýÔxéFÀ´Èv¾Ÿš%@5^ºI tuÀìQ¸…ë@;ßO�—n‚¿ð§ÆK·‡“Àh‘í|?5À¬Zd;ßë?ƒÀÊ¡õD@áz®G!#@d;ßO�?sÀoƒÀÊ!À�•C‹lß¿Ý$�•S’ÀoƒÀÊ!À�•C‹lß¿ƒÀÊ¡õD@áz®G!#@d;ßO�?sÀh‘í|?5@¬Zd;ßë¿Ý$�•S’ÀÉv¾Ÿ/@–C‹lçûÉ?bX9´¨0@¾Ÿ/Ýd'@q= ×£vÀ;ßO�—nò¿‡ÙÎ÷Sï?w¾Ÿ¯§“À;ßO�—nò¿‡ÙÎ÷Sï?bX9´¨0@¾Ÿ/Ýd'@q= ×£vÀÉv¾Ÿ/À–C‹lçûÉ¿w¾Ÿ¯§“À¶óýÔxé @˜nƒÀÊå??5^ºI¬BÀ)\�Âõh$@¤p= ×gsÀV-²�ï ÀÛù~j¼tç?P�—nh’ÀV-²�ï ÀÛù~j¼tç??5^ºI¬BÀ)\�Âõh$@¤p= ×gsÀ¶óýÔxé À˜nƒÀÊå¿P�—nh’À¨ÆK7‰A@¼t“Vê?øS㥛D:@×£p= W!@V-²�uuÀ\�Âõ(\ À“V-â?5^ºI u“À\�Âõ(\ À“V-â?øS㥛D:@×£p= W!@V-²�uuÀ¨ÆK7‰AÀ¼t“Vê¿5^ºI u“ÀÝ$�•Cý¿yé&1¬ì?ƒÀÊ¡eHÀ–C‹lçû @Ãõ(\�xrÀX9´Èv À{®GázÜ¿'1¬œ¢‘ÀX9´Èv À{®GázÜ¿ƒÀÊ¡eHÀ–C‹lçû @Ãõ(\�xrÀÝ$�•Cý?yé&1¬ì¿'1¬œ¢‘À{®Gáz¤¿ð?/Ý$L@‰A`åÐ"@X9´ÈvªsÀP�—nÀ{®Gáz„¿%�•C¼’ÀP�—nÀ{®Gáz„¿/Ý$L@‰A`åÐ"@X9´ÈvªsÀ{®Gáz¤?ð¿%�•C¼’ÀÝ$�•CÓ?�•C‹lçï?ã¥›Ä ð5@çû©ñÒÍ@çû©ñÒ'vÀ�Âõ(\�ÀÓMbX9´?®GázÄ“À�Âõ(\�ÀÓMbX9´?ã¥›Ä ð5@çû©ñÒÍ@çû©ñÒ'vÀÝ$�•CÓ¿�•C‹lçï¿®GázÄ“À^ºI +ÀV-²½?Ûù~j¼„EÀË¡E¶óý(@‡ÙÎ÷�rÀš™™™™™å¿-²�ï§Æï¿X9´Èö›‘Àš™™™™™å¿-²�ï§Æï¿Ûù~j¼„EÀË¡E¶óý(@‡ÙÎ÷�rÀ^ºI +@V-²½¿X9´Èö›‘ÀB`åÐ"Û@ÁÊ¡E¶óÝ??5^ºI¬8@^ºI ë,@7‰A`åBtÀ= ×£p= À}?5^ºIì?ôýÔxéÑ’À= ×£p= À}?5^ºIì??5^ºI¬8@^ºI ë,@7‰A`åBtÀB`åÐ"ÛÀÁÊ¡E¶óÝ¿ôýÔxéÑ’À}?5^ºIÀþÔxé&1à?/Ý$�eC@ÇK7‰A "@q= ×£sÀ�—nƒÀÀV-²�ë¿¶óýÔx ’À�—nƒÀÀV-²�ë¿/Ý$�eC@ÇK7‰A "@q= ×£sÀ}?5^ºI@þÔxé&1à¿¶óýÔx ’À“V- À{®Gáz´?9´Èv¾N@ö(\�Âu@+‡ÙΛrÀ9´Èv¾ŸÒ¿�•C‹lçï¿ ×£p=ê‘À9´Èv¾ŸÒ¿�•C‹lçï¿9´Èv¾N@ö(\�Âu@+‡ÙΛrÀ“V- @{®Gáz´¿ ×£p=ê‘Àáz®GáÚ?+‡ÙÎï?;ßO�—ÎEÀÑ"Ûù~ê@5^ºI žuÀ/Ý$�•À�•C‹lç»?ƒÀÊ¡š“À/Ý$�•À�•C‹lç»?;ßO�—ÎEÀÑ"Ûù~ê@5^ºI žuÀáz®GáÚ¿+‡ÙÎᅢÀÊ¡š“ÀNbX9´ ÀÃõ(\�ÂÝ?ú~j¼tÓ>@mçû©ñR@ /Ý$NsÀ?5^ºI ü¿R¸…ëQì¿;ßO�A’À?5^ºI ü¿R¸…ëQì¿ú~j¼tÓ>@mçû©ñR@ /Ý$NsÀNbX9´ @Ãõ(\�ÂÝ¿;ßO�A’ÀX9´Èv¾û?®Gázî?w¾Ÿ/�@@{®Gáú$@Ë¡E¶ó sÀj¼t“Àmçû©ñÒÕ?㥛Ġû‘Àj¼t“Àmçû©ñÒÕ?w¾Ÿ/�@@{®Gáú$@Ë¡E¶ó sÀX9´Èv¾û¿®Gázî¿ã¥›Ä û‘ÀL7‰A`å À´Èv¾Ÿß?bX9´h<@ßO�—n!@åÐ"Ûù&sÀßO�—nÀ+‡ÙÎ÷ë¿+‡ÙN’ÀßO�—nÀ+‡ÙÎ÷ë¿bX9´h<@ßO�—n!@åÐ"Ûù&sÀL7‰A`å @´Èv¾Ÿß¿+‡ÙN’ÀJ +‡–@¸…ëQ¸Î?w¾Ÿ/}BÀƒÀÊ¡Eö&@…ëQ¸ÇrÀZd;ßOõ¿ßO�—nï?®Gáz”Ä‘ÀZd;ßOõ¿ßO�—nï?w¾Ÿ/}BÀƒÀÊ¡Eö&@…ëQ¸ÇrÀJ +‡–À¸…ëQ¸Î¿®Gáz”Ä‘À…ëQ¸… Àé&1¬æ?V-²�KÀV-²]$@= ×£parÀsh‘í|? À‰A`åÐ"ç¿Ãõ(\�Ÿ‘Àsh‘í|? À‰A`åÐ"ç¿V-²�KÀV-²]$@= ×£parÀ…ëQ¸… @é&1¬æ¿Ãõ(\�Ÿ‘À7‰A`åÐü?Ház®Gí?NbX9ôO@ffffff!@¢E¶óývrÀü©ñÒMbÀ˜nƒÀÊÙ?Ház®Ö‘Àü©ñÒMbÀ˜nƒÀÊÙ?NbX9ôO@ffffff!@¢E¶óývrÀ7‰A`åÐü¿Ház®Gí¿Ház®Ö‘Àáz®GaÀžï§ÆK7Ù?Ûù~j¼t;@ôýÔxé¦$@Ï÷Sã¥otÀð§ÆK7‰ÿ¿œÄ °rhí¿®Gáz”ì’Àð§ÆK7‰ÿ¿œÄ °rhí¿Ûù~j¼t;@ôýÔxé¦$@Ï÷Sã¥otÀáz®Ga@žï§ÆK7Ù¿®Gáz”ì’Àé&1¬Ò?V-²�ïï?sh‘í|ÏK@áz®G¡ @ /Ý$&sÀªñÒMbÀìQ¸…ë±?òÒMb�Z’ÀªñÒMbÀìQ¸…ë±?sh‘í|ÏK@áz®G¡ @ /Ý$&sÀé&1¬Ò¿V-²�ïï¿òÒMb�Z’Àu“V ÀÍÌÌÌÌÌÔ?áz®Gá>@Ãõ(\�Â@mçû©ñFtÀžï§ÆK7ñ¿ƒÀÊ¡Eî¿œÄ °rÜ’Àžï§ÆK7ñ¿ƒÀÊ¡Eî¿áz®Gá>@Ãõ(\�Â@mçû©ñFtÀu“V @ÍÌÌÌÌÌÔ¿œÄ °rÜ’À�•C‹lý¿é&1¬î?¨ÆK7‰‘KÀôýÔxéf&@�•C‹lYsÀœÄ °rhÀV-²Õ¿Ï÷S㥄’ÀœÄ °rhÀV-²Õ¿¨ÆK7‰‘KÀôýÔxéf&@�•C‹lYsÀ�•C‹lý?é&1¬î¿Ï÷S㥄’Àj¼t“ø?h‘í|?5î?¤p= ×ã.À‘í|?5Þ"@ƒÀÊ¡EötÀ¨ÆK7‰AÀu“VÕ?B`åТ“À¨ÆK7‰AÀu“VÕ?¤p= ×ã.À‘í|?5Þ"@ƒÀÊ¡EötÀj¼t“ø¿h‘í|?5î¿B`åТ“À¼t“V꿬Zd;ï?¢E¶óý”?@Év¾Ÿ/@žï§ÆKórÀ}?5^ºI ÀÕxé&1Ì¿ßO�—îÚ‘À}?5^ºI ÀÕxé&1Ì¿¢E¶óý”?@Év¾Ÿ/@žï§ÆKórÀ¼t“Vê?¬Zd;ï¿ßO�—îÚ‘ÀL7‰A`åÀ¬Zd;ã?+‡ÙÎwG@-²�ï§&@ÍÌÌÌÌÎrÀ�•C‹l ÀÅ °rh‘é¿3333³ë‘À�•C‹l ÀÅ °rh‘é¿+‡ÙÎwG@-²�ï§&@ÍÌÌÌÌÎrÀL7‰A`å@¬Zd;ã¿3333³ë‘ÀÃõ(\�BÀsh‘í|?µ?…ëQ¸>BÀºI +&@²�ï§ÆÓrÀ{®GázÜ¿�•C‹lçï¿yé&1Ö‘À{®GázÜ¿�•C‹lçï¿…ëQ¸>BÀºI +&@²�ï§ÆÓrÀÃõ(\�B@sh‘í|?µ¿yé&1Ö‘Àd;ßO�—Àî|?5^ºé?é&1¬L@ÀTã¥›Ä @�—nƒÖrÀ;ßO�—nÀ ×£p= ã¿j¼t“ÑÀ;ßO�—nÀ ×£p= ã¿é&1¬L@ÀTã¥›Ä @�—nƒÖrÀd;ßO�—@î|?5^ºé¿j¼t“ÑÀ¬Zd;ßû¿!°rh‘íì?–C‹lç[6@V-²�@¤p= ×UsÀü©ñÒMb ÀÛù~j¼tÛ¿²�ï§Æ’Àü©ñÒMb ÀÛù~j¼tÛ¿–C‹lç[6@V-²�@¤p= ×UsÀ¬Zd;ßû?!°rh‘í쿲�ï§Æ’Àú~j¼t“À�•C‹lçë?þÔxé&q,À“V­$@Õxé&10uÀ+‡ÙÎwÀ²�ï§ÆKß¿ö(\�B6“À+‡ÙÎwÀ²�ï§ÆKß¿þÔxé&q,À“V­$@Õxé&10uÀú~j¼t“@�•C‹lçë¿ö(\�B6“ÀbX9´È @ßO�—nã?‘í|?5NL@5^ºI ‚"@‘í|?5ÎsÀ‘í|?5^ÀV-²é?˜nƒ@Ï’À‘í|?5^ÀV-²é?‘í|?5NL@5^ºI ‚"@‘í|?5ÎsÀbX9´È ÀßO�—n㿘nƒ@Ï’Àö(\�ÂõÀV-²å?333338@R¸…ë‘&@Ï÷Sã¥=sÀÅ °rh‘ À…ëQ¸…ç¿ +‡–’ÀÅ °rh‘ À…ëQ¸…ç¿333338@R¸…ë‘&@Ï÷Sã¥=sÀö(\�Âõ@V-²å¿ +‡–’À�•C‹lçë?�•C‹lï?ƒÀÊ¡%8ÀôýÔxéæ"@V-²�½sÀF¶óýÔøÀ¦›Ä °rÈ?¤p= ×}’ÀF¶óýÔøÀ¦›Ä °rÈ?ƒÀÊ¡%8ÀôýÔxéæ"@V-²�½sÀ�•C‹lçë¿�•C‹l¦p= ×}’Àu“VÀffffffâ?%�•C+6Àd;ßO�—@-²�ï·tÀìQ¸…ëÀ“V-ê¿5^ºI “ÀìQ¸…ëÀ“V-ê¿%�•C+6Àd;ßO�—@-²�ï·tÀu“V@ffffffâ¿5^ºI “ÀHáz®GÀ°rh‘í|×?ƒÀÊ¡E¦E@øS㥛!@Õxé&1¬rÀƒÀÊ¡E¶ù¿Ãõ(\�Âí¿ffff漑ÀƒÀÊ¡E¶ù¿Ãõ(\�Âí¿ƒÀÊ¡E¦E@øS㥛!@Õxé&1¬rÀHáz®G@°rh‘í|׿ffff漑À‰A`åÐ"@‡ÙÎ÷Së?ƒÀÊ¡E6HÀq= ×£ð @V-²ÅsÀ�—nƒÀ À¤p= ×£à?B`åÐ"º’À�—nƒÀ À¤p= ×£à?ƒÀÊ¡E6HÀq= ×£ð @V-²ÅsÀ‰A`åÐ"À‡ÙÎ÷Së¿B`åÐ"º’À¾Ÿ/ݤÀj¼t“Ö?¶óýÔxé/@çû©ñÒ�'@¦›Ä °4tÀh‘í|?5þ¿?5^ºI î¿°rh‘í¹’Àh‘í|?5þ¿?5^ºI î¿¶óýÔxé/@çû©ñÒ�'@¦›Ä °4tÀ¾Ÿ/ݤ@j¼t“Ö¿°rh‘í¹’À‰A`åТ@ÇK7‰A`å?{®GáÚD@‡ÙÎ÷'@R¸…ë!sÀB`åÐ"Û À+‡ÙÎç?ìQ¸8’ÀB`åÐ"Û À+‡ÙÎç?{®GáÚD@‡ÙÎ÷'@R¸…ë!sÀ‰A`åТÀÇK7‰A`å¿ìQ¸8’Àu“V÷?�—nƒÀî?Ý$�•£H@1¬Z¤%@Zd;ßwuÀôýÔxé&Àš™™™™™Ñ?ƒÀÊ!š“ÀôýÔxé&Àš™™™™™Ñ?Ý$�•£H@1¬Z¤%@Zd;ßwuÀu“V÷¿�—nƒÀÀÊ!š“À…ëQ¸… À�•C‹lç»?ö(\�µDÀìQ¸…ë@}?5^º-sÀTã¥›Ä Ø¿+‡ÙÎï¿^ºI ‚F’ÀTã¥›Ä Ø¿+‡ÙÎï¿ö(\�µDÀìQ¸…ë@}?5^º-sÀ…ëQ¸… @�•C‹l绿^ºI ‚F’ÀÍÌÌÌÌÌÀw¾Ÿ/ÝÄ?%�•C C@'1¬Z@;ßO�—\sÀR¸…ëQä¿/Ý$�•ï¿ÍÌÌÌLc’ÀR¸…ëQä¿/Ý$�•ï¿%�•C C@'1¬Z@;ßO�—\sÀÍÌÌÌÌÌ@w¾Ÿ/ÝÄ¿ÍÌÌÌLc’Àáz®GáÀ%�•C‹ì?`åÐ"Û™2@ÇK7‰A +@}?5^º�tÀJ +‡–À!°rh‘íÜ¿þÔxé&ô’ÀJ +‡–À!°rh‘íÜ¿`åÐ"Û™2@ÇK7‰A +@}?5^º�tÀáz®Gá@%�•C‹ì¿þÔxé&ô’À €ÍÌÌÌÌLÀ-²�ï§â?ü©ñÒMrD@‡ÙÎ÷,@'1¬ÈyÀºI +‡Àj¼t“ê¿X9´È–ÀºI +‡Àj¼t“ê¿ü©ñÒMrD@‡ÙÎ÷,@'1¬ÈyÀÍÌÌÌÌL@-²�ï§â¿X9´È–À“V-ø¿q= ×£pí? +‡y5À¦›Ä °ò@Zd;ßOzÀ¼t“V ÀJ +‡Ù¿Zd;ß­•À¼t“V ÀJ +‡Ù¿ +‡y5À¦›Ä °ò@Zd;ßOzÀ“V-ø?q= ×£pí¿Zd;ß­•À¤p= ×£ü¿/Ý$�•ë?ÍÌÌÌÌŒ@@°rh‘í|@…ëQ¸çyÀü©ñÒMbÀþÔxé&1à¿ÙÎ÷Sc–Àü©ñÒMbÀþÔxé&1à¿ÍÌÌÌÌŒ@@°rh‘í|@…ëQ¸çyÀ¤p= ×£ü?/Ý$�•ë¿ÙÎ÷Sc–À“V- ÀÛù~j¼tç?×£p= ·CÀfffff&&@Ý$�•ÅyÀ¦›Ä °rÀÃõ(\�Âå¿Õxé&1­•À¦›Ä °rÀÃõ(\�Âå¿×£p= ·CÀfffff&&@Ý$�•ÅyÀ“V- @Ûù~j¼tç¿Õxé&1­•ÀÛù~j¼ô@²�ï§ÆKß?h‘í|?A@¢E¶óýÔ$@š™™™™ÁyÀÕxé&1À�•C‹lçë?…ëQ¸ž••ÀÕxé&1À�•C‹lçë?h‘í|?A@¢E¶óýÔ$@š™™™™ÁyÀÛù~j¼ôÀ²�ï§ÆKß¿…ëQ¸ž••ÀþÔxé&1ÀË¡E¶óýä?¬Zd;ß?@j¼t“˜@!°rh‘ÙyÀçû©ñÒMÀTã¥›Ä è¿+‡Y¬•Àçû©ñÒMÀTã¥›Ä è¿¬Zd;ß?@j¼t“˜@!°rh‘ÙyÀþÔxé&1@Ë¡E¶óýä¿+‡Y¬•ÀV-²�@J +‡é?ƒÀÊ¡EFJ@ÙÎ÷Sã%@°rh‘í€yÀåÐ"Ûù~À¬Zd;ßã?…ëQ8œ•ÀåÐ"Ûù~À¬Zd;ßã?ƒÀÊ¡EFJ@ÙÎ÷Sã%@°rh‘í€yÀV-²�ÀJ +‡é¿…ëQ8œ•ÀìQ¸…ëÀ)\�Âõ(è?ÍÌÌÌÌÜA@¼t“*@q= ×£fyÀü©ñÒMbÀË¡E¶óýä¿ôýÔxéc•Àü©ñÒMbÀË¡E¶óýä¿ÍÌÌÌÌÜA@¼t“*@q= ×£fyÀìQ¸…ë@)\�Âõ(è¿ôýÔxéc•ÀÓMbX9 À–C‹lçûá?Ûù~j¼äG@V-²] @‘í|?5ŠyÀÍÌÌÌÌÌÀX9´Èvê¿?5^ºI‘•ÀÍÌÌÌÌÌÀX9´Èvê¿Ûù~j¼äG@V-²] @‘í|?5ŠyÀÓMbX9 @–C‹lçûá¿?5^ºI‘•À^ºI +@ºI +‡æ?sh‘í|<@q= ×£ð%@¨ÆK7‰ÑyÀ!°rh‘í À¸…ëQ¸æ?q= ףޕÀ!°rh‘í À¸…ëQ¸æ?sh‘í|<@q= ×£ð%@¨ÆK7‰ÑyÀ^ºI +ÀºI +‡æ¿q= ףޕÀÅ °rh‘Àã¥›Ä °ê?é&1¬ŒGÀV-r @Ház®—yÀÅ °rh‘ ÀD‹lçû©á¿R¸…뙕ÀÅ °rh‘ ÀD‹lçû©á¿é&1¬ŒGÀV-r @Ház®—yÀÅ °rh‘@ã¥›Ä °ê¿R¸…뙕À'1¬Z @‹lçû©ñæ?¶óýÔx‰9ÀƒÀÊ¡Å"@F¶óýÔžyÀªñÒMb Àçû©ñÒMæ?‰A`åÐe•ÀªñÒMb Àçû©ñÒMæ?¶óýÔx‰9ÀƒÀÊ¡Å"@F¶óýÔžyÀ'1¬Z À‹lçû©ñ濉A`åÐe•ÀHáz®G @'1¬Zì?fffff¦EÀP�—nC-@= ×£p±yÀƒÀÊ¡E6ÀoƒÀÊ¡Ý?ö(\�B¦•ÀƒÀÊ¡E6ÀoƒÀÊ¡Ý?fffff¦EÀP�—nC-@= ×£p±yÀHáz®G À'1¬Zì¿ö(\�B¦•À#Ûù~j¼ú??5^ºI î?)\�ÂõÈ:@‡ÙÎ÷Ó$@P�—nûyÀ¨ÆK7‰AÀj¼t“Ö?V­ó•À¨ÆK7‰AÀj¼t“Ö?)\�ÂõÈ:@‡ÙÎ÷Ó$@P�—nûyÀ#Ûù~j¼ú¿?5^ºI î¿V­ó•ÀR¸…ëQÀªñÒMbä?V-²A@V-²@33333ÕyÀ´Èv¾Ÿÿ¿!°rh‘í迃ÀÊ¡¼•À´Èv¾Ÿÿ¿!°rh‘íè¿V-²A@V-²@33333ÕyÀR¸…ëQ@ªñÒMb促ÀÊ¡¼•ÀœÄ °rh@ ×£p= ·?×£p= wO@mçû©ñÒ@ /Ý$ yÀD‹lçû©Ñ¿¬Zd;ßï?+‡ÙNo•ÀD‹lçû©Ñ¿¬Zd;ßï?×£p= wO@mçû©ñÒ@ /Ý$ yÀœÄ °rhÀ ×£p= ·¿+‡ÙNo•À R¸…ëÑ@…ëQ¸…Û?ÙÎ÷SãGÀoƒÀÊa$@oƒÀÊyyÀ`åÐ"ÛùÀL7‰A`åì?…ëQ8~•À`åÐ"ÛùÀL7‰A`åì?ÙÎ÷SãGÀoƒÀÊa$@oƒÀÊyyÀR¸…ëÑÀ…ëQ¸…Û¿…ëQ8~•À¢E¶óýÔò¿š™™™™™í?š™™™™:ÀÕxé&1@´Èv¾ŸäyÀB`åÐ"ÛÀü©ñÒMbØ¿ßO�—î“•ÀB`åÐ"ÛÀü©ñÒMbØ¿š™™™™:ÀÕxé&1@´Èv¾ŸäyÀ¢E¶óýÔò?š™™™™™í¿ßO�—î“•ÀþÔxé&1@h‘í|?5ê?R¸…ëqDÀÙÎ÷Sã%"@“VÃyÀøSã¥›Ä À‘í|?5^â?¼t“Û•ÀøSã¥›Ä À‘í|?5^â?R¸…ëqDÀÙÎ÷Sã%"@“VÃyÀþÔxé&1Àh‘í|?5꿼t“Û•À¬Zd;@¬Zd;×?¬Zd;¯JÀ7‰A`åP%@mçû©ñŠyÀþ¿mçû©ñÒí?�—nµ•Àþ¿mçû©ñÒí?¬Zd;¯JÀ7‰A`åP%@mçû©ñŠyÀ¬Zd;À¬Zd;׿�—nµ•ÀÝ$�•C@®Gázæ?‰A`åÐbKÀ/Ý$�•%@ÍÌÌÌÌŽyÀ×£p= × À^ºI +ç?øS㥛ޕÀ×£p= × À^ºI +ç?‰A`åÐbKÀ/Ý$�•%@ÍÌÌÌÌŽyÀÝ$�•CÀ®Gázæ¿øS㥛ޕÀ¢E¶óýÔÀD‹lçû©á?ßO�—n²9À/Ý$�#@š™™™™ÏyÀü©ñÒMbÀã¥›Ä °ê¿7‰A`e•Àü©ñÒMbÀã¥›Ä °ê¿ßO�—n²9À/Ý$�#@š™™™™ÏyÀ¢E¶óýÔ@D‹lçû©á¿7‰A`e•À¼t“V@j¼t“æ?¦›Ä °’6ÀÅ °rh‘@+‡ÙzÀü©ñÒMbÀ¬Zd;ç?Ý$�•Å•Àü©ñÒMbÀ¬Zd;ç?¦›Ä °’6ÀÅ °rh‘@+‡ÙzÀ¼t“VÀj¼t“æ¿Ý$�•Å•ÀÉv¾Ÿ¯@333333Ã?ã¥›Ä ð=@j¼t“„#@)\�ÂõèyÀ¸…ëQ¸æ¿ÙÎ÷Sã¥ï?çû©ñR½•À¸…ëQ¸æ¿ÙÎ÷Sã¥ï?ã¥›Ä ð=@j¼t“„#@)\�ÂõèyÀÉv¾Ÿ¯À333333ÿçû©ñR½•À1¬Zd Àžï§ÆK7é?áz®GF@‘í|?5&@Õxé&1¬yÀ¬Zd;ßÀƒÀÊ¡E¶ã¿-²�o®•À¬Zd;ßÀƒÀÊ¡E¶ã¿áz®GF@‘í|?5&@Õxé&1¬yÀ1¬Zd @žï§ÆK7é¿-²�o®•ÀË¡E¶ó}À;ßO�—nÂ?‡ÙÎ÷ó>À¸…ëQx'@h‘í|?çyÀh‘í|?5ê¿®Gáz®ï¿‰A`åP³•Àh‘í|?5ê¿®Gáz®ï¿‡ÙÎ÷ó>À¸…ëQx'@h‘í|?çyÀË¡E¶ó}@;ßO�—n¿‰A`åP³•À�•C‹l@sh‘í|?á?j¼t“8@ü©ñÒMâ$@q= ×£öyÀË¡E¶óýÀ`åÐ"Ûùê?/Ý$­•ÀË¡E¶óýÀ`åÐ"Ûùê?j¼t“8@ü©ñÒMâ$@q= ×£öyÀ�•C‹lÀsh‘í|?á¿/Ý$­•À7‰A`åÐÀZd;ßO�×?\�Âõ(œAÀ‹lçû©ñ@+‡ÙÖyÀoƒÀÊ¡ó¿Ãõ(\�Âí¿Õxé&±ä•ÀoƒÀÊ¡ó¿Ãõ(\�Âí¿\�Âõ(œAÀ‹lçû©ñ@+‡ÙÖyÀ7‰A`åÐ@Zd;ßO�׿Õxé&±ä•À4pòÒMbØ@D‹lçû©á?òÒMbxK@j¼t“&@B`åÐ"•yÀ9´Èv¾ŸÀã¥›Ä °ê?%�•ã–À9´Èv¾ŸÀã¥›Ä °ê?òÒMbxK@j¼t“&@B`åÐ"•yÀòÒMbØÀD‹lçû©á¿%�•ã–À¾Ÿ/Ý$ê?°rh‘í|ï?D‹lçûÙA@–C‹lç»"@'1¬æyÀ +‡ÙÀ ×£p= Ç?Å °rèå–À +‡ÙÀ ×£p= Ç?D‹lçûÙA@–C‹lç»"@'1¬æyÀ¾Ÿ/Ý$ê¿°rh‘í|ï¿Å °rèå–À-²�ï§ê¿ßO�—nï?X9´Èvî@@ü©ñÒMâ@V-ðyÀ×£p= × À +‡Ùοףp= —À×£p= × À +‡ÙοX9´Èvî@@ü©ñÒMâ@V-ðyÀ-²�ï§ê?ßO�—nï¿×£p= —À‹lçû©ñ@žï§ÆK7å?�Âõ(\D@V-²@ƒÀÊ¡ÇyÀ¬Zd;ÀV-²�ïç?Zd;ßO¤–À¬Zd;ÀV-²�ïç?�Âõ(\D@V-²@ƒÀÊ¡ÇyÀ‹lçû©ñÀžï§ÆK7å¿Zd;ßO¤–À?5^ºI ð¿ÙÎ÷Sã¥ï?Ñ"Ûù~Š6@Ë¡E¶óý,@V-² zÀÃõ(\�ÂÀ‹lçû©ñ¿ÍÌÌÌLm–ÀÃõ(\�ÂÀ‹lçû©ñ¿Ñ"Ûù~Š6@Ë¡E¶óý,@V-² zÀ?5^ºI ð?ÙÎ÷Sã¥ï¿ÍÌÌÌLm–ÀåÐ"Ûù~ @ffffffæ?ü©ñÒMb4À +‡Y!@D‹lçûzÀ`åÐ"ÛùÀ +‡Ùæ?w¾Ÿ/H–À`åÐ"ÛùÀ +‡Ùæ?ü©ñÒMb4À +‡Y!@D‹lçûzÀåÐ"Ûù~ Àffffffæ¿w¾Ÿ/H–ÀÙÎ÷Sã@`åÐ"ÛùÖ?V-’9À®GázÔ&@^ºI ýyÀd;ßO�—þ¿B`åÐ"Ûí?Ý$�X—Àd;ßO�—þ¿B`åÐ"Ûí?V-’9À®GázÔ&@^ºI ýyÀÙÎ÷SãÀ`åÐ"ÛùÖ¿Ý$�X—Àú~j¼t“ ÀX9´ÈvÎ?{®Gáú8@Ï÷S㥛@ìQ¸…zÀßO�—në¿ßO�—nï¿�Âõ(ܹ–ÀßO�—në¿ßO�—nï¿{®Gáú8@Ï÷S㥛@ìQ¸…zÀú~j¼t“ @X9´Èvο�Âõ(ܹ–Àq= ×£pÀ‰A`åÐ"»?¬Zd;8@Ý$�•C&@¬Zd; zÀçû©ñÒMâ¿+‡ÙÎï¿/Ý$†P—Àçû©ñÒMâ¿+‡ÙÎ↓Zd;8@Ý$�•C&@¬Zd; zÀq= ×£p@‰A`åÐ"»¿/Ý$†P—ÀoƒÀÊ¡ @ ×£p= Ç?¦›Ä °6@+‡ÙN@Ë¡E¶ózÀþÔxé&1ä¿°rh‘í|ï?ºI « —ÀþÔxé&1ä¿°rh‘í|ï?¦›Ä °6@+‡ÙN@Ë¡E¶ózÀoƒÀÊ¡ À ×£p= Ç¿ºI « —ÀffffffÀD‹lçû©í?33333Ó5À®Gázn'@`åÐ"ÛzÀƒÀÊ¡EÀØ¿ºI +––ÀƒÀÊ¡EÀØ¿33333Ó5À®Gázn'@`åÐ"ÛzÀffffff@D‹lçû©í¿ºI +––ÀÛù~j¼t@Õxé&1è?mçû©ñbKÀ¬Zd;#@–C‹lç‹yÀ7‰A`åÐ À…ëQ¸å?ffffæ4–À7‰A`åÐ À…ëQ¸å?mçû©ñbKÀ¬Zd;#@–C‹lç‹yÀÛù~j¼tÀÕxé&1è¿ffffæ4–ÀƒÀÊ¡E¶ Àw¾Ÿ/Ýà?R¸…ëqI@u“V"@´Èv¾Ÿ¢yÀ¦›Ä °rÀ333333뿲�ï§Æ—–À¦›Ä °rÀ333333ë¿R¸…ëqI@u“V"@´Èv¾Ÿ¢yÀƒÀÊ¡E¶ @w¾Ÿ/Ý࿲�ï§Æ—–Àq= ×£p@Ë¡E¶óýÄ?œÄ °røC@ð§ÆK7I'@Ý$�•ÛyÀ{®Gázì¿Zd;ßO�ï?bX94 —À{®Gázì¿Zd;ßO�ï?œÄ °røC@ð§ÆK7I'@Ý$�•ÛyÀq= ×£pÀË¡E¶óýÄ¿bX94 —ÀR¸…ëQ@'1¬Zì?òÒMbØ=@Év¾Ÿo$@²�ï§ÆëyÀ ×£p=ŠÀoƒÀÊ¡Ý?é&1¬b–À ×£p=ŠÀoƒÀÊ¡Ý?òÒMbØ=@Év¾Ÿo$@²�ï§ÆëyÀR¸…ëQÀ'1¬Zì¿é&1¬b–ÀZd;ßO @×£p= ×Û?´Èv¾Ÿ:2@!°rh‘m+@/Ý$�!zÀÝ$�•CÀÍÌÌÌÌÌì?X9´H3–ÀÝ$�•CÀÍÌÌÌÌÌì?´Èv¾Ÿ:2@!°rh‘m+@/Ý$�!zÀZd;ßO À×£p= ×Û¿X9´H3–À#Ûù~j¼ À…ëQ¸…ç?ü©ñÒMâ@À‰A`åÐâ%@X9´ÈÚyÀ^ºI +ÀV-²å¿w¾Ÿ¯†–À^ºI +ÀV-²å¿ü©ñÒMâ@À‰A`åÐâ%@X9´ÈÚyÀ#Ûù~j¼ @…ëQ¸…ç¿w¾Ÿ¯†–À?5^ºIŒ@òÒMbXÙ?w¾Ÿ/íG@çû©ñÒÍ-@ßO�—n´yÀj¼t“ÀÇK7‰A`í?u“ÖÞ–Àj¼t“ÀÇK7‰A`í?w¾Ÿ/íG@çû©ñÒÍ-@ßO�—n´yÀ?5^ºIŒÀòÒMbXÙ¿u“ÖÞ–ÀþÔxé&1À-²�ï§Ö?®GáznFÀT㥛Äà!@j¼t“ÂyÀºI +‡ø¿ìQ¸…ëí¿ /Ý$Q—ÀºI +‡ø¿ìQ¸…ëí¿®GáznFÀT㥛Äà!@j¼t“ÂyÀþÔxé&1@-²�ï§Ö¿ /Ý$Q—À�—nƒÀ@-²�ï§Æç?Ház®'>À®GázT"@ƒÀÊ¡ùyÀü©ñÒMb ÀœÄ °rhå?²�ï§Æ —Àü©ñÒMb ÀœÄ °rhå?Ház®'>À®GázT"@ƒÀÊ¡ùyÀ�—nƒÀÀ-²�ï§Æç¿²�ï§Æ —ÀË¡E¶óýò¿V-²í?¬Zd;ïDÀøS㥛Ä@V-ÄyÀ¤p= ×£À¬Zd;ß׿V-¬–À¤p= ×£À¬Zd;ß׿¬Zd;ïDÀøS㥛Ä@V-ÄyÀË¡E¶óýò?V-²í¿V-¬–ÀªñÒMb@Ï÷S㥛Ü??5^ºIL6À-²�ï''@fffffzÀ /Ý$À¤p= ×£ì?‹lçû©Ò–À /Ý$À¤p= ×£ì??5^ºIL6À-²�ï''@fffffzÀªñÒMbÀÏ÷S㥛ܿ‹lçû©Ò–ÀR¸…ëQ À)\�Âõ(è?9´Èv¾¿<@}?5^ºI&@/Ý$�ÿyÀ˜nƒÀJÀË¡E¶óýä¿ÁÊ¡E¶—À˜nƒÀJÀË¡E¶óýä¿9´Èv¾¿<@}?5^ºI&@/Ý$�ÿyÀR¸…ëQ @)\�Âõ(è¿ÁÊ¡E¶—ÀR¸…ëQø¿ºI +‡î?ÁÊ¡E¶cAÀòÒMbØ$@ÓMbXëyÀsh‘í|?ÀÝ$�•CÓ¿ð§ÆK·ü–Àsh‘í|?ÀÝ$�•CÓ¿ÁÊ¡E¶cAÀòÒMbØ$@ÓMbXëyÀR¸…ëQø?ºI +‡î¿ð§ÆK·ü–ÀÙÎ÷SãÝ¿X9´Èv¾ï?X9´Èv^=@ÇK7‰Aà@çû©ñÒùyÀX9´Èv ÀTã¥›Ä À¿w¾Ÿ/>—ÀX9´Èv ÀTã¥›Ä À¿X9´Èv^=@ÇK7‰Aà@çû©ñÒùyÀÙÎ÷SãÝ?X9´Èv¾ï¿w¾Ÿ/>—ÀþÔxé&1 @B`åÐ"Ûá?-²�ïç>@ã¥›Ä °@ÙÎ÷SãéyÀV-²�À�Âõ(\�ê?˜nƒÀ –ÀV-²�À�Âõ(\�ê?-²�ïç>@ã¥›Ä °@ÙÎ÷SãéyÀþÔxé&1 ÀB`åÐ"ÛῘnƒÀ –À2XB`åÐ"Û@ffffffÆ?^ºI kEÀmçû©ñÒ$@Ë¡E¶óËyÀþÔxé&1ì¿…ëQ¸…ï?þÔx馗ÀþÔxé&1ì¿…ëQ¸…ï?^ºI kEÀmçû©ñÒ$@Ë¡E¶óËyÀB`åÐ"ÛÀffffffÆ¿þÔx馗À�—nƒ@À}?5^ºIÌ?ð§ÆK7GÀq= ×£p%@;ßO�—®yÀR¸…ëQò¿333333ï¿`åÐ"Û.–ÀR¸…ëQò¿333333ï¿ð§ÆK7GÀq= ×£p%@;ßO�—®yÀ�—nƒ@@}?5^ºIÌ¿`åÐ"Û.–À}?5^ºI@-²�ï§ÆË? +‡ÙAÀD‹lçû)@w¾Ÿ/ãyÀ¶óýÔxé꿬Zd;ï? ×£p=—À¶óýÔxé꿬Zd;ï? +‡ÙAÀD‹lçû)@w¾Ÿ/ãyÀ}?5^ºIÀ-²�ï§ÆË¿ ×£p=—À‰A`åÐ"@V-²�ã?B`åÐ"{F@7‰A`åP+@ƒÀÊ¡EÈyÀƒÀÊ¡EÀHáz®Gé?�•C‹l —ÀƒÀÊ¡EÀHáz®Gé?B`åÐ"{F@7‰A`åP+@ƒÀÊ¡EÈyÀ‰A`åÐ"ÀV-²�ã¿�•C‹l —À\�Âõ(\À¼t“Vâ?¦›Ä °‚D@NbX9´@%�•CÇyÀ‡ÙÎ÷SÀ= ×£p=꿉A`åÐ'–À‡ÙÎ÷SÀ= ×£p=꿦›Ä °‚D@NbX9´@%�•CÇyÀ\�Âõ(\@¼t“V⿉A`åÐ'–À¨ÆK7‰A @ƒÀÊ¡E¶Ó?^ºI k8À‡ÙÎ÷Ó@ ×£p=zÀ`åÐ"Ûùð¿X9´Èvî?¬Zd;x–À`åÐ"Ûùð¿X9´Èvî?^ºI k8À‡ÙÎ÷Ó@ ×£p=zÀ¨ÆK7‰A ÀƒÀÊ¡E¶Ó¿¬Zd;x–ÀôýÔxé&Àj¼t“à?œÄ °rh;Àj¼t“"@Ãõ(\�øyÀÅ °rh‘ÀÙÎ÷Sã¥ë¿ÁÊ¡E6@–ÀÅ °rh‘ÀÙÎ÷Sã¥ë¿œÄ °rh;Àj¼t“"@Ãõ(\�øyÀôýÔxé&@j¼t“à¿ÁÊ¡E6@–ÀZd;ßO�@sh‘í|?á?ü©ñÒMbE@`åÐ"Û¹"@Ë¡E¶óÍyÀZd;ßO�À‹lçû©ñê?ð§ÆK·4—ÀZd;ßO�À‹lçû©ñê?ü©ñÒMbE@`åÐ"Û¹"@Ë¡E¶óÍyÀZd;ßO�Àsh‘í|?á¿ð§ÆK·4—À°rh‘í|@Ý$�•CË?Å °rh±8@)\�Âõh @�•C‹ zÀ¢E¶óýÔì¿Ý$�•Cï?{®Gá÷–À¢E¶óýÔì¿Ý$�•Cï?Å °rh±8@)\�Âõh @�•C‹ zÀ°rh‘í|ÀÝ$�•CË¿{®Gá÷–À9´Èv¾Ÿ ÀƒÀÊ¡E¶?ôýÔxéVBÀœÄ °rè@d;ßO�ÕyÀ#Ûù~j¼Ô¿¬Zd;ßï¿´Èv¾ –À#Ûù~j¼Ô¿¬Zd;ßï¿ôýÔxéVBÀœÄ °rè@d;ßO�ÕyÀ9´Èv¾Ÿ @ƒÀÊ¡E¶¿´Èv¾ –ÀÇK7‰A`ñ¿¬Zd;ï?î|?5^:L@¬Zd{$@Å °rh‡yÀ'1¬ZÀÕxé&1Ì¿®Gáz0–À'1¬ZÀÕxé&1Ì¿î|?5^:L@¬Zd{$@Å °rh‡yÀÇK7‰A`ñ?¬Zd;ï¿®Gáz0–ÀƒÀÊ¡E¶ÀV-²å?ð§ÆK7©3ÀªñÒMbÐ)@ßO�—nzÀ¼t“VÀ…ëQ¸…ç¿×£p=Š —À¼t“VÀ…ëQ¸…ç¿ð§ÆK7©3ÀªñÒMbÐ)@ßO�—nzÀƒÀÊ¡E¶@V-²å¿×£p=Š —ÀV-²�@�Âõ(\�ê?°rh‘í\:@…ëQ¸Å&@Ûù~j¼þyÀ²�ï§ÆKÀB`åÐ"Ûá?{®Ga–À²�ï§ÆKÀB`åÐ"Ûá?°rh‘í\:@…ëQ¸Å&@Ûù~j¼þyÀV-²�À�Âõ(\�ê¿{®Ga–À‹lçû©ñÀ´Èv¾Ÿã? +‡‰FÀÍÌÌÌÌŒ$@î|?5^´yÀ�—nƒÀÀV-²é¿ü©ñÒÍ”–À�—nƒÀÀV-²é¿ +‡‰FÀÍÌÌÌÌŒ$@î|?5^´yÀ‹lçû©ñ@´Èv¾Ÿã¿ü©ñÒÍ”–ÀªñÒMbü¿bX9´Èî?%�•CK>À\�Âõ(œ+@ð§ÆK7çyÀ²�ï§ÆËÀœÄ °rhÑ¿ƒÀÊ¡Åv–À²�ï§ÆËÀœÄ °rhÑ¿%�•CK>À\�Âõ(œ+@ð§ÆK7çyÀªñÒMbü?bX9´ÈÀÊ¡Åv–À%�•C‹À%�•C‹ä?ÓMbX9I@Õxé&1ˆ @oƒÀÊ©yÀ�Âõ(\�À%�•C‹è¿1¬Zt–À�Âõ(\�À%�•C‹è¿ÓMbX9I@Õxé&1ˆ @oƒÀÊ©yÀ%�•C‹@%�•C‹ä¿1¬Zt–À5^ºI  ÀÙÎ÷Sã¥ç?;ßO�—Ž6À“Ví#@P�—n zÀP�—nƒ ÀÅ °rh‘心ÀÊ¡Å9—ÀP�—nƒ ÀÅ °rh‘å¿;ßO�—Ž6À“Ví#@P�—n zÀ5^ºI  @ÙÎ÷Sã¥ç¿ƒÀÊ¡Å9—ÀÕxé&1ˆÀ+‡ÙÎ÷³?NbX9;À{®Gá:$@Ë¡E¶ó÷yÀR¸…ëQØ¿�•C‹lçï¿…ëQ¸Z–ÀR¸…ëQØ¿�•C‹lçï¿NbX9;À{®Gá:$@Ë¡E¶ó÷yÀÕxé&1ˆ@+‡ÙÎ÷³¿…ëQ¸Z–Àyé&1¬ð?Ûù~j¼tï?Ház®·GÀš™™™™™'@;ßO�—¼yÀF¶óýÔxÀ²�ï§ÆKÇ?Ï÷Sã¥=—ÀF¶óýÔxÀ²�ï§ÆKÇ?Ház®·GÀš™™™™™'@;ßO�—¼yÀyé&1¬ð¿Ûù~j¼tï¿Ï÷Sã¥=—À¶óýÔxé@{®GázÜ?oƒÀÊa3@ú~j¼tÓ!@J +‡zÀ�—nƒÀþ¿¤p= ×£ì?Õxé&1½–À�—nƒÀþ¿¤p= ×£ì?oƒÀÊa3@ú~j¼tÓ!@J +‡zÀ¶óýÔxéÀ{®GázÜ¿Õxé&1½–Àžï§ÆK7 Àçû©ñÒMÂ?¨ÆK7‰A=@#Ûù~j¼@þÔxé&ÿyÀZd;ßO�ß¿®Gáz®ï¿R¸…k—ÀZd;ßO�ß¿®Gáz®ï¿¨ÆK7‰A=@#Ûù~j¼@þÔxé&ÿyÀžï§ÆK7 @çû©ñÒM¿R¸…k—ÀX9´Èv¾@š™™™™™í?ÓMbXyO@Ûù~j¼´&@²�ï§ÆsyÀ¢E¶óýTÀü©ñÒMbØ?Ý$�M—À¢E¶óýTÀü©ñÒMbØ?ÓMbXyO@Ûù~j¼´&@²�ï§ÆsyÀX9´Èv¾Àš™™™™™í¿Ý$�M—ÀåÐ"Ûù~ü?{®Gázì?š™™™™™H@ôýÔxé& @}?5^ºµyÀB`åÐ"Û À…ëQ¸Ý?j¼t“ÿ–ÀB`åÐ"Û À…ëQ¸Ý?š™™™™™H@ôýÔxé& @}?5^ºµyÀåÐ"Ûù~ü¿{®Gázì¿j¼t“ÿ–À“V-@yé&1¬à?œÄ °r¨4ÀÅ °rh(@X9´ÈzÀœÄ °rhÀ‡ÙÎ÷Së?u“V)–ÀœÄ °rhÀ‡ÙÎ÷Së?œÄ °r¨4ÀÅ °rh(@X9´ÈzÀ“V-Àyé&1¬à¿u“V)–À{®GázÀ…ëQ¸é?¢E¶óýG@ôýÔxéf$@NbX9¶yÀj¼t“À+‡ÙÎã¿-²�ïÊ–Àj¼t“À+‡ÙÎã¿¢E¶óýG@ôýÔxéf$@NbX9¶yÀ{®Gáz@…ëQ¸é¿-²�ïÊ–Àà?$ ¾Ÿ/Ý$Æ¿ºI +‡ú¿ƒÀÊ¡EÆ?ºI +‡ú?ƒÀÊ¡EÆ¿ºI +‡ú¿¤p= ×£à¿1¬ZäÀ¦›Ä °rÈ?{®Gázú?¦›Ä °rÈ¿{®Gázú¿¸…ëQ¸ð¿¤p= ×ã#À+‡ÙÎ×?mçû©ñÒù?+‡ÙÎ׿mçû©ñÒù¿9´Èv¾Ÿú¿�Âõ(\Ï-ÀÃõ(\�Âá?‰A`åÐ"ù?Ãõ(\�ÂΈA`åÐ"ù¿ÓMbX9 À¨ÆK7‰¡3ÀƒÀÊ¡Eâ?u“Vù?ƒÀÊ¡Eâ¿u“Vù¿X9´ÈöÀ®GázT8À“V-â?ßO�—nù?“V-â¿ßO�—nù¿7‰A`åÐÀºI +=ÀœÄ °rhá?333333ù?œÄ °rhá¿333333ù¿²�ï§ÆË À= ×£pÝ@À¬Zd;ß?°rh‘í|ù?¬Zd;ß¿°rh‘í|ù¿ã¥›Ä ð#À°rh‘íÀ\�Âõ(4^ÀøS㥛ÄÀ¿Õxé&1Ü?˜nƒÀÊù?øS㥛ÄÀ?Õxé&1Ü¿˜nƒÀÊù¿ @ôýÔxéæ?À‹lçû©i_À¤p= ×£À¿˜nƒÀÊÙ?˜nƒÀÊù?¤p= ×£À?˜nƒÀÊÙ¿˜nƒÀÊù¿‰A`åÐ"@V-²�@ÀÝ$�•O`À¨ÆK7‰AÀ¿˜nƒÀÊÙ?˜nƒÀÊù?¨ÆK7‰AÀ?˜nƒÀÊÙ¿˜nƒÀÊù¿V-²@)\�Âõ(AÀu“Vê`À°rh‘í|¿¿˜nƒÀÊÙ?˜nƒÀÊù?°rh‘í|¿?˜nƒÀÊÙ¿˜nƒÀÊù¿9´Èv¾Ÿ@ú~j¼tÃAÀ…ëQ¸…aÀh‘í|?5¾¿®Gáz®×?+‡ÙÎù?h‘í|?5¾?®Gáz®×¿+‡ÙÎù¿ú~j¼t@‘í|?5^BÀ–C‹lçbÀÑ"Ûù~j¼¿‘í|?5^Ê?+‡ÙÎù?Ñ"Ûù~j¼?‘í|?5^Ê¿+‡ÙÎù¿¦›Ä °r@àBÀX9´ÈºbÀé&1¬º¿î|?5^ºÙ?mçû©ñÒù?é&1¬º?î|?5^ºÙ¿mçû©ñÒù¿î|?5^º@?5^ºIüBÀV-²UcÀZd;ßO�·¿333333ã?×£p= ×ù?Zd;ßO�·?333333ã¿×£p= ×ù¿fffffæ@øS㥛DÀq= ×£ðcÀ#Ûù~j¼´¿Õxé&1Ü?×£p= ×ù?#Ûù~j¼´?Õxé&1ܿףp= ×ù¿‹lçû©ñ@ÓMbXÉDÀHáz®‹dÀD‹lçû©±¿B`åÐ"ÛÙ?B`åÐ"Ûù?D‹lçû©±?B`åÐ"ÛÙ¿B`åÐ"Ûù¿B`åÐ"Û@Ûù~j¼dEÀ˜nƒÀ&eÀÉv¾Ÿ/­¿˜nƒÀÊÙ?B`åÐ"Ûù?Év¾Ÿ/­?˜nƒÀÊÙ¿B`åÐ"Ûù¿é&1¬œ@¬Zd;ÿEÀÙÎ÷SãÁeÀj¼t“¦¿˜nƒÀÊÙ?¬Zd;ßù?j¼t“¦?˜nƒÀÊÙ¿¬Zd;ßù¿žï§ÆK7@D‹lçû™FÀ“V]fÀV-²�¿˜nƒÀÊÙ?¬Zd;ßù?V-²�?˜nƒÀÊÙ¿¬Zd;ßù¿ÙÎ÷Sã¥@Ûù~j¼4GÀÇK7‰AøfÀ¸…ëQ¸Ž¿®Gáz®×?¬Zd;ßù?¸…ëQ¸Ž?®Gáz®×¿¬Zd;ßù¿¶óýÔxé@Zd;ßÏGÀsh‘í|“gÀü©ñÒMbp?¢E¶óýÔÈ?¬Zd;ßù?ü©ñÒMbp¿¢E¶óýÔÈ¿¬Zd;ßù¿@þÔxé&QHÀ…ëQ¸.hÀV-²�?Ház®GÙ?¬Zd;ßù?V-²�¿Ház®GÙ¿¬Zd;ßù¿mçû©ñÒ@¢E¶óýdHÀD‹lçûÉhÀV-²­?/Ý$�•ã?B`åÐ"Ûù?V-²­¿/Ý$�•ã¿B`åÐ"Ûù¿çû©ñÒM@ÇK7‰A€IÀþÔxé&eiÀÃõ(\�µ?{®GázÜ?×£p= ×ù?Ãõ(\�µ¿{®Gázܿףp= ×ù¿q= ×£p@˜nƒÀ:JÀÇK7‰AjÀyé&1¬¼?˜nƒÀÊÙ?+‡ÙÎù?yé&1¬¼¿˜nƒÀÊÙ¿+‡ÙÎù¿�—nƒ@@¼t“ÖJÀ33333›jÀð§ÆK7‰Á?˜nƒÀÊÙ?-²�ï§Æù?ð§ÆK7‰Á¿˜nƒÀÊÙ¿-²�ï§Æù¿�—nƒÀ@ÇK7‰ApKÀD‹lçû5kÀ{®GázÄ?˜nƒÀÊÙ?X9´Èv¾ù?{®GázÄ¿˜nƒÀÊÙ¿X9´Èv¾ù¿X9´Èö@Ï÷S㥠LÀj¼t“ÐkÀ ×£p= Ç?î|?5^ºÙ?ƒÀÊ¡E¶ù? ×£p= Ç¿î|?5^ºÙ¿ƒÀÊ¡E¶ù¿Ñ"Ûù~ê@ /Ý$¦LÀmçû©ñjlÀòÒMbXÉ?d;ßO�—Ö?®Gáz®ù?òÒMbXÉ¿d;ßO�—Ö¿®Gáz®ù¿oƒÀÊ¡@T㥛Ä@MÀ…ëQ¸mÀÝ$�•CË?¾Ÿ/Ý$Æ?ÙÎ÷Sã¥ù?Ý$�•CË¿¾Ÿ/Ý$Æ¿ÙÎ÷Sã¥ù¿çû©ñÒM@…ëQ¸µMÀÉv¾ŸŸmÀÍÌÌÌÌÌÌ?D‹lçû©Ù?V-²�ù?ÍÌÌÌÌÌÌ¿D‹lçû©Ù¿V-²�ù¿ /Ý$ @ÙÎ÷SãÅMÀ7‰A`å8nÀÁÊ¡E¶óÍ?¨ÆK7‰Aä?š™™™™™ù?ÁÊ¡E¶óÍ¿¨ÆK7‰A俚™™™™™ù¿°rh‘í|@F¶óýÔèNÀÃõ(\�ÒnÀd;ßO�—Î?sh‘í|?Ý?/Ý$�•ù?d;ßO�—οsh‘í|?Ý¿/Ý$�•ù¿Å °rh‘û?#Ûù~j¬OÀã¥›Ä loÀ +‡ÙÎ?˜nƒÀÊÙ?/Ý$�•ù? +‡Ùο˜nƒÀÊÙ¿/Ý$�•ù¿ð?ÁÊ¡E¶#PÀ‰A`åÐpÀd;ßO�—Î?B`åÐ"ÛÙ?/Ý$�•ù?d;ßO�—οB`åÐ"ÛÙ¿/Ý$�•ù¿î|?5^ºÑ?F¶óýÔpPÀ!°rh‘OpÀÁÊ¡E¶óÍ?B`åÐ"ÛÙ?š™™™™™ù?ÁÊ¡E¶óÍ¿B`åÐ"ÛÙ¿š™™™™™ù¿�•C‹lçÛ¿-²�ï§¾PÀ1¬ZœpÀÍÌÌÌÌÌÌ?î|?5^ºÙ?V-²�ù?ÍÌÌÌÌÌÌ¿î|?5^ºÙ¿V-²�ù¿?5^ºI ò¿¤p= × QÀw¾Ÿ/épÀÝ$�•CË?œÄ °rhá?ÙÎ÷Sã¥ù?Ý$�•CË¿œÄ °rhá¿ÙÎ÷Sã¥ù¿Ï÷S㥛ü¿þÔxé&YQÀ®Gáz6qÀòÒMbXÉ?9´Èv¾ŸÊ?®Gáz®ù?òÒMbXÉ¿9´Èv¾ŸÊ¿®Gáz®ù¿Ý$�•CÀÍÌÌÌÌÜQÀP�—nƒqÀ ×£p= Ç?ìQ¸…ëÁ¿ƒÀÊ¡E¶ù? ×£p= Ç¿ìQ¸…ëÁ?ƒÀÊ¡E¶ù¿¢E¶óýÔÀ)\�Âõ¨QÀ\�Âõ(ÐqÀ{®GázÄ?ú~j¼t“h¿X9´Èv¾ù?{®GázÄ¿ú~j¼t“h?X9´Èv¾ù¿!°rh‘í À×£p= §QÀÓMbXrÀð§ÆK7‰Á?¤p= ×£Ð?-²�ï§Æù?ð§ÆK7‰Á¿¤p= ףп-²�ï§Æù¿/Ý$�ÀZd;ß§QÀq= ×£jrÀyé&1¬¼?ƒÀÊ¡E¶ã?+‡ÙÎù?yé&1¬¼¿ƒÀÊ¡E¶ã¿+‡ÙÎù¿�—nƒ@À˜nƒÀ RÀyé&1¸rÀÃõ(\�µ?`åÐ"Ûùæ?×£p= ×ù?Ãõ(\�µ¿`åÐ"Ûùæ¿×£p= ×ù¿q= ×£pÀ®Gáz”RÀ/Ý$�sÀV-²­?5^ºI ç?B`åÐ"Ûù?V-²­¿5^ºI ç¿B`åÐ"Ûù¿çû©ñÒMÀfffffSÀ“VSsÀV-²�?F¶óýÔxå?mçû©ñÒù?V-²�¿F¶óýÔxå¿mçû©ñÒù¿mçû©ñÒÀT㥛ĨSÀ´Èv¾Ÿ sÀú~j¼t“h?¤p= ×£à?V-²ù?ú~j¼t“h¿¤p= ×£à¿V-²ù¿À TÀË¡E¶óísÀü©ñÒMb�¿w¾Ÿ/ÝÜ?Zd;ßO�ù?ü©ñÒMb�?w¾Ÿ/ÝÜ¿Zd;ßO�ù¿fffffæÀj¼t“pTÀX9´È:tÀL7‰A`å ¿´Èv¾Ÿß?/Ý$�ù?L7‰A`å ?´Èv¾Ÿß¿/Ý$�ù¿Ï÷S㥛Àh‘í|?ÍTÀZd;ßO‡tÀú~j¼t“¨¿^ºI +ß?°rh‘í|ù?ú~j¼t“¨?^ºI +ß¿°rh‘í|ù¿…ëQ¸ÀP�—n+UÀoƒÀÊÓtÀü©ñÒMb°¿¦›Ä °rä?°rh‘í|ù?ü©ñÒMb°?¦›Ä °rä¿°rh‘í|ù¿‹lçû©qÀÕxé&1ˆUÀ ×£p= uÀ+‡ÙÎ÷³¿´Èv¾ŸÏ?F¶óýÔxù?+‡ÙÎ÷³?´Èv¾ŸÏ¿F¶óýÔxù¿J +‡–ÀÇK7‰A VÀé&1¬luÀZd;ßO�·¿+‡ÙÎÇ¿Ûù~j¼tù?Zd;ßO�·?+‡ÙÎÇ?Ûù~j¼tù¿ªñÒMb�ÀL7‰A`åUÀP�—n¹uÀáz®Gếü©ñÒMb ¿q= ×£pù?áz®Gáº?ü©ñÒMb ?q= ×£pù¿�—nƒÀÀ)\�ÂõØUÀ�•C‹lvÀÁÊ¡E¶ó½¿ú~j¼t“ˆ?q= ×£pù?ÁÊ¡E¶ó½?ú~j¼t“ˆ¿q= ×£pù¿J +‡ À)\�ÂõØUÀ9´Èv¾QvÀ¨ÆK7‰AÀ¿ºI +‡Ö?�•C‹lù?¨ÆK7‰AÀ?ºI +‡Ö¿�•C‹lù¿)\�Âõ( ÀƒÀÊ¡ÝUÀ¼t“žvÀœÄ °rhÁ¿+‡ÙÎç?œÄ °rhù?œÄ °rhÁ?+‡ÙÎç¿œÄ °rhù¿À-²�ï_VÀÇK7‰AêvÀçû©ñÒM¿ÙÎ÷Sãé?1¬Zdù?çû©ñÒMÂ?ÙÎ÷Sãé¿1¬Zdù¿¤p= ×£À¬ZdûVÀ®Gáz6wÀßO�—nÿÙÎ÷Sãé?1¬Zdù?ßO�—nÃ?ÙÎ÷Sãé¿1¬Zdù¿¨ÆK7‰Aþ¿X9´Èv–WÀ-²�ï§‚wÀ/Ý$�•ÿÙÎ÷Sãé?ÇK7‰A`ù?/Ý$�•Ã?ÙÎ÷Sãé¿ÇK7‰A`ù¿`åÐ"Ûùö¿5^ºI 2XÀ‰A`åÐÎwÀ+‡ÙÎ÷ÿé&1¬ê?ÇK7‰A`ù?+‡ÙÎ÷Ã?é&1¬ê¿ÇK7‰A`ù¿ ×£p= ï¿w¾Ÿ/ÍXÀmçû©ñxÀj¼t“Ä¿-²�ï§Æç?ÇK7‰A`ù?j¼t“Ä?-²�ï§Æç¿ÇK7‰A`ù¿à¿¬ZdkYÀ +‡gxÀ+‡ÙÎ÷ÿð§ÆK7‰å?ÇK7‰A`ù?+‡ÙÎ÷Ã?ð§ÆK7‰å¿ÇK7‰A`ù¿¸…ëQ¸ž¿Ñ"Ûù~êYÀð§ÆK7³xÀ/Ý$�•ÿøSã¥›ÄØ?ÇK7‰A`ù?/Ý$�•Ã?øSã¥›ÄØ¿ÇK7‰A`ù¿�•C‹lçÛ?ö(\�ÂmZÀ�Âõ(\ÿxÀßO�—nÿJ +‡¹?1¬Zdù?ßO�—nÃ?J +‡¹¿1¬Zdù¿P�—nƒì?åÐ"Ûù~ZÀìQ¸…KyÀçû©ñÒM¿°rh‘í|¿?1¬Zdù?çû©ñÒMÂ?°rh‘í|¿¿1¬Zdù¿Ház®Gõ?33333“ZÀV-²—yÀœÄ °rhÁ¿œÄ °rhÁ?œÄ °rhù?œÄ °rhÁ?œÄ °rhÁ¿œÄ °rhù¿ü?®Gáz®ZÀ–C‹lçãyÀ¨ÆK7‰AÀ¿)\�Âõ(Ô?�•C‹lù?¨ÆK7‰AÀ?)\�Âõ(Ô¿�•C‹lù¿)\�Âõ(@�Âõ(\ÇZÀ /Ý$0zÀÁÊ¡E¶ó½¿V-²å?q= ×£pù?ÁÊ¡E¶ó½?V-²å¿q= ×£pù¿J +‡@åÐ"Ûù&[ÀßO�—n|zÀáz®Gế²�ï§ÆKë?q= ×£pù?áz®Gáº?²�ï§ÆKë¿q= ×£pù¿�—nƒÀ@ÁÊ¡E¶Ë[À˜nƒÀÈzÀZd;ßO�·¿¾Ÿ/Ý$ê?Ûù~j¼tù?Zd;ßO�·?¾Ÿ/Ý$ê¿Ûù~j¼tù¿Tã¥›Ä @X9´Èvn\ÀÉv¾Ÿ{À+‡ÙÎ÷³¿…ëQ¸…ç?F¶óýÔxù?+‡ÙÎ÷³?…ëQ¸…ç¿F¶óýÔxù¿“V- @/Ý$�]À/Ý$�a{Àü©ñÒMb°¿…ëQ¸…ã?°rh‘í|ù?ü©ñÒMb°?…ëQ¸…ã¿°rh‘í|ù¿ÙÎ÷Sã @j¼t“ˆ]ÀR¸…ë­{Àú~j¼t“¨¿¦›Ä °rà?°rh‘í|ù?ú~j¼t“¨?¦›Ä °rà¿°rh‘í|ù¿= ×£p=@-²�ïï]ÀªñÒMbú{ÀL7‰A`å ¿²�ï§ÆKß?°rh‘í|ù?L7‰A`å ?²�ï§ÆKß¿°rh‘í|ù¿žï§ÆK7@ö(\�ÂM^À¾Ÿ/ÝF|Àü©ñÒMb�¿u“Vá?/Ý$�ù?ü©ñÒMb�?u“Vá¿/Ý$�ù¿ÍÌÌÌÌÌ@Ý$�•«^À�Âõ(\“|Àú~j¼t“h¿çû©ñÒMâ?/Ý$�ù?ú~j¼t“h?çû©ñÒMâ¿/Ý$�ù¿@´Èv¾Ÿ_À`åÐ"Ûß|Àú~j¼t“x?Ûù~j¼t“¿/Ý$�ù?ú~j¼t“x¿Ûù~j¼t“?/Ý$�ù¿ìQ¸…ë@�Âõ(\‡_Àî|?5^,}À9´Èv¾ŸŠ?Ûù~j¼tÓ¿/Ý$�ù?9´Èv¾ŸŠ¿Ûù~j¼tÓ?/Ý$�ù¿V-²@¬Zd_À¾Ÿ/Ýx}ÀÛù~j¼t“?ü©ñÒMb`¿/Ý$�ù?Ûù~j¼t“¿ü©ñÒMb`?/Ý$�ù¿Zd;ßO@Ãõ(\�_À�Âõ(\Å}Àš™™™™™™?/Ý$�ù?š™™™™™™¿/Ý$�ù¿bX9´È@Ãõ(\�_À`åÐ"Û~ÀX9´Èv¾Ÿ?ºI +‡¶?/Ý$�ù?X9´Èv¾Ÿ¿ºI +‡¶¿/Ý$�ù¿é&1¬@Ãõ(\�_À1¬Z^~À;ßO�—n¢?F¶óýÔxá?°rh‘í|ù?;ßO�—n¢¿F¶óýÔxá¿°rh‘í|ù¿çû©ñÒM @�•C‹4_À+‡Ùª~ÀË¡E¶óý¤?ÇK7‰A`í?°rh‘í|ù?Ë¡E¶óý¤¿ÇK7‰A`í¿°rh‘í|ù¿‘í|?5^ @NbX9ä_ÀÙÎ÷S÷~ÀZd;ßO�§?q= ×£pí?°rh‘í|ù?Zd;ßO�§¿q= ×£pí¿°rh‘í|ù¿Zd;ßO @Ñ"Ûù~J`ÀoƒÀÊCÀé&1¬ª?œÄ °rhí?°rh‘í|ù?é&1¬ª¿œÄ °rhí¿°rh‘í|ù¿ôýÔxé& @-²�ï§¢`ÀƒÀÊ¡E�ÀÙÎ÷S㥫?q= ×£pí?°rh‘í|ù?ÙÎ÷S㥫¿q= ×£pí¿°rh‘í|ù¿ÙÎ÷Sã@åÐ"Ûùú`ÀÛù~j¼ÜÀV-²­?œÄ °rhí?°rh‘í|ù?V-²­¿œÄ °rhí¿°rh‘í|ù¿%�•C‹@žï§ÆKSaÀ;ßO�—€À¸…ëQ¸®?J +‡é?°rh‘í|ù?¸…ëQ¸®¿J +‡é¿°rh‘í|ù¿…ëQ¸@�•C‹l«aÀ‰A`åÐ:€ÀTã¥›Ä °?òÒMbXá?°rh‘í|ù?Tã¥›Ä °¿òÒMbXá¿°rh‘í|ù¿ÙÎ÷Sã¥@`åÐ"ÛéaÀ×£p= a€Àü©ñÒMb°?w¾Ÿ/ÝÜ?°rh‘í|ù?ü©ñÒMb°¿w¾Ÿ/ÝÜ¿°rh‘í|ù¿…ëQ¸@sh‘í|bÀ%�•C‡€À¤p= ×£°?Zd;ßO�—¿°rh‘í|ù?¤p= ×£°¿Zd;ßO�—?°rh‘í|ù¿Å °rh‘@1¬Z@bÀsh‘í|­€À¤p= ×£°?D‹lçû©Ù¿°rh‘í|ù?¤p= ×£°¿D‹lçû©Ù?°rh‘í|ù¿@Év¾ŸbÀbX9´Ó€À¤p= ×£°?R¸…ëQ¸?°rh‘í|ù?¤p= ×£°¿R¸…ëQ¸¿°rh‘í|ù¿w¾Ÿ/Ýü?�•C‹lóaÀ°rh‘íù€Àü©ñÒMb°?Év¾Ÿ/å?°rh‘í|ù?ü©ñÒMb°¿Év¾Ÿ/å¿°rh‘í|ù¿Ãõ(\�Âù?Zd;ßO!bÀ /Ý$ �ÀTã¥›Ä °?ßO�—në?°rh‘í|ù?Tã¥›Ä °¿ßO�—në¿°rh‘í|ù¿NbX9´ö?J +‡rbÀî|?5^F�À¸…ëQ¸®?�•C‹lñ?°rh‘í|ù?¸…ëQ¸®¿�•C‹lñ¿°rh‘í|ù¿Ãõ(\�Âó?9´Èv¾ÃbÀ;ßO�—l�ÀV-²­?{®Gázð?°rh‘í|ù?V-²­¿{®Gázð¿°rh‘í|ù¿¶óýÔxéð?V-²�CcÀ‰A`åÐ’�ÀÙÎ÷S㥫?°rh‘í|ã?°rh‘í|ù?ÙÎ÷S㥫¿°rh‘í|ã¿°rh‘í|ù¿¦›Ä °rì?š™™™™‰cÀ5^ºI ¹�Àé&1¬ª?^ºI +ß?°rh‘í|ù?é&1¬ª¿^ºI +ß¿°rh‘í|ù¿1¬Zdç?�—nƒ¸cÀáz®Gß�ÀZd;ßO�§?ôýÔxé&á?°rh‘í|ù?Zd;ßO�§¿ôýÔxé&á¿°rh‘í|ù¿�—nƒÀâ?P�—nçcÀ�—nƒ‚ÀË¡E¶óý¤?ºI +‡â?°rh‘í|ù?Ë¡E¶óý¤¿ºI +‡â¿°rh‘í|ù¿u“VÝ?¬ZddÀ˜nƒÀ+‚À;ßO�—n¢?X9´Èv¾¯¿°rh‘í|ù?;ßO�—n¢¿X9´Èv¾¯?°rh‘í|ù¿Å °rh‘Õ? ×£p=VdÀ¢E¶óýQ‚ÀX9´Èv¾Ÿ?¼t“VÖ¿/Ý$�ù?X9´Èv¾Ÿ¿¼t“VÖ?/Ý$�ù¿h‘í|?5Î?ìQ¸…dÀ¬Zd;x‚Àš™™™™™™?ü©ñÒMb`¿/Ý$�ù?š™™™™™™¿ü©ñÒMb`?/Ý$�ù¿Ûù~j¼tÃ?33333dÀ®Gázž‚ÀÛù~j¼t“?/Ý$�ù?Ûù~j¼t“¿/Ý$�ù¿j¼t“¶?33333dÀ}?5^ºÄ‚À9´Èv¾ŸŠ?/Ý$�ù?9´Èv¾ŸŠ¿/Ý$�ù¿Ûù~j¼t£?33333dÀåÐ"Ûùê‚Àú~j¼t“x?/Ý$�Õ?V-²�ù?ú~j¼t“x¿/Ý$�Õ¿V-²�ù¿{®Gáz„?33333dÀÇK7‰AƒÀü©ñÒMbp?‘í|?5^ê?¬Zd;ßù?ü©ñÒMbp¿‘í|?5^꿬Zd;ßù¿9´Èv¾SdÀF¶óýÔ7ƒÀ;ßO�—n‚?\�Âõ(\ï?j¼t“ú?;ßO�—n‚¿\�Âõ(\ï¿j¼t“ú¿9´Èv¾ŸŠ¿Å °rh±dÀ+‡Ù^ƒÀœÄ °rh‘?Ûù~j¼tï?“V-ú?œÄ °rh‘¿Ûù~j¼tï¿“V-ú¿é&1¬ª¿–C‹lçeÀj¼t“†ƒÀš™™™™™™?�•C‹lï?“V-ú?š™™™™™™¿�•C‹lï¿“V-ú¿Év¾Ÿ/½¿ /Ý$neÀ�Âõ(\­ƒÀL7‰A`å ?Ûù~j¼tï?“V-ú?L7‰A`å ¿Ûù~j¼tï¿“V-ú¿î|?5^ºÉ¿ªñÒMbÌeÀ´Èv¾ŸÔƒÀ{®Gáz¤?w¾Ÿ/Ýì?“V-ú?{®Gáz¤¿w¾Ÿ/Ýì¿“V-ú¿×£p= ×Ó¿X9´È*fÀZd;ßûƒÀZd;ßO�§?mçû©ñÒé?)\�Âõ(ú?Zd;ßO�§¿mçû©ñÒé¿)\�Âõ(ú¿j¼t“Ü¿/Ý$�yfÀã¥›Ä #„À9´Èv¾Ÿª?ƒÀÊ¡E¶Ã?)\�Âõ(ú?9´Èv¾Ÿª¿ƒÀÊ¡E¶Ã¿)\�Âõ(ú¿bX9´Èâ¿}?5^ºÅfÀL7‰A`J„ÀÉv¾Ÿ/­?ÙÎ÷Sã¥Û¿)\�Âõ(ú?Év¾Ÿ/­¿ÙÎ÷Sã¥Û?)\�Âõ(ú¿è¿^ºI —fÀV-²�q„À¸…ëQ¸®?j¼t“¦¿)\�Âõ(ú?¸…ëQ¸®¿j¼t“¦?)\�Âõ(ú¿oƒÀÊ¡í¿…ëQ¸rfÀ`åÐ"Û˜„ÀTã¥›Ä °?…ëQ¸…Ó?)\�Âõ(ú?Tã¥›Ä °¿…ëQ¸…Ó¿)\�Âõ(ú¿˜nƒÀÊñ¿X9´ÈŽfÀj¼t“À„À¤p= ×£°?'1¬ZÔ?)\�Âõ(ú?¤p= ×£°¿'1¬ZÔ¿)\�Âõ(ú¿w¾Ÿ/Ýô¿h‘í|?­fÀÙÎ÷Sç„À¤p= ×£°?'1¬ZÔ?)\�Âõ(ú?¤p= ×£°¿'1¬ZÔ¿)\�Âõ(ú¿ø¿–C‹lçËfÀÃõ(\�…À¤p= ×£°?'1¬ZÔ?)\�Âõ(ú?¤p= ×£°¿'1¬ZÔ¿)\�Âõ(ú¿‰A`åÐ"û¿ ×£p=êfÀÍÌÌÌÌ5…ÀTã¥›Ä °?Ñ"Ûù~jÔ?)\�Âõ(ú?Tã¥›Ä °¿Ñ"Ûù~jÔ¿)\�Âõ(ú¿h‘í|?5þ¿7‰A`ågÀyé&1]…À¸…ëQ¸®?'1¬ZÔ?)\�Âõ(ú?¸…ëQ¸®¿'1¬ZÔ¿)\�Âõ(ú¿d;ßO�—Àd;ßO�'gÀƒÀÊ¡E„…ÀÉv¾Ÿ/­?'1¬ZÔ?)\�Âõ(ú?Év¾Ÿ/­¿'1¬ZÔ¿)\�Âõ(ú¿ÀR¸…ëEgÀ�—nƒ«…À9´Èv¾Ÿª?×£p= ×Ó?)\�Âõ(ú?9´Èv¾Ÿª¿×£p= ×Ó¿)\�Âõ(ú¿çû©ñÒMÀj¼t“dgÀ˜nƒÀÒ…ÀZd;ßO�§?'1¬ZÔ?)\�Âõ(ú?Zd;ßO�§¿'1¬ZÔ¿)\�Âõ(ú¿°rh‘í|ÀL7‰A`�gÀú…À{®Gáz¤?w¾Ÿ/ÝÔ?“V-ú?{®Gáz¤¿w¾Ÿ/ÝÔ¿“V-ú¿…ëQ¸…Àš™™™™¡gÀh‘í|?!†ÀL7‰A`å ?'1¬ZÔ?“V-ú?L7‰A`å ¿'1¬ZÔ¿“V-ú¿1¬ZdÀ‡ÙÎ÷¿gÀ/Ý$�H†Àš™™™™™™?'1¬ZÔ?“V-ú?š™™™™™™¿'1¬ZÔ¿“V-ú¿J +‡À-²�ï§ÞgÀT㥛Äo†ÀœÄ °rh‘?'1¬ZÔ?“V-ú?œÄ °rh‘¿'1¬ZÔ¿“V-ú¿d;ßO�—À¢E¶óýügÀ/Ý$—†À;ßO�—n‚?'1¬ZÔ?“V-ú?;ßO�—n‚¿'1¬ZÔ¿“V-ú¿L7‰A`åÀHáz®hÀ?5^ºI¾†Àü©ñÒMbP?'1¬ZÔ?“V-ú?ü©ñÒMbP¿'1¬ZÔ¿“V-ú¿À5^ºI :hÀd;ßO�å†Àú~j¼t“x¿'1¬ZÔ?“V-ú?ú~j¼t“x?'1¬ZÔ¿“V-ú¿!°rh‘íÀÛù~j¼XhÀçû©ñÒ ‡Àú~j¼t“ˆ¿'1¬ZÔ?“V-ú?ú~j¼t“ˆ?'1¬ZÔ¿“V-ú¿V-²ÀÉv¾ŸwhÀ +‡4‡À;ßO�—n’¿Ñ"Ûù~jÔ?“V-ú?;ßO�—n’?Ñ"Ûù~jÔ¿“V-ú¿‡ÙÎ÷SÀoƒÀÊ•hÀ1¬Z[‡Àú~j¼t“˜¿'1¬ZÔ?“V-ú?ú~j¼t“˜?'1¬ZÔ¿“V-ú¿+‡ÙÎÀ¸…ëQ´hÀøS㥛‚‡À¸…ëQ¸ž¿Ñ"Ûù~jÔ?“V-ú?¸…ëQ¸ž?Ñ"Ûù~jÔ¿“V-ú¿)\�Âõ(À+‡ÙÒhÀZd;ß©‡ÀìQ¸…ë¡¿'1¬ZÔ?“V-ú?ìQ¸…ë¡?'1¬ZÔ¿“V-ú¿ü©ñÒMbÀ/Ý$�ñhÀã¥›Ä Ñ‡À{®Gáz¤¿¤p= ×£Ð?“V-ú?{®Gáz¤?¤p= ףп“V-ú¿°rh‘í|ÀZd;ßiÀªñÒMbø‡ÀºI +‡¦¿'1¬ZÔ?)\�Âõ(ú?ºI +‡¦?'1¬ZÔ¿)\�Âõ(ú¿{®GázÀ�Âõ(\#iÀƒÀÊ¡ˆÀªñÒMb¨¿ªñÒMbØ?)\�Âõ(ú?ªñÒMb¨?ªñÒMbØ¿)\�Âõ(ú¿ü©ñÒMbÀ7‰A`åLiÀ{®GáFˆÀš™™™™™©¿'1¬ZÔ?)\�Âõ(ú?š™™™™™©?'1¬ZÔ¿)\�Âõ(ú¿h‘í|?5ÀÝ$�•kiÀã¥›Ä nˆÀ‰A`åÐ"«¿'1¬ZÔ?)\�Âõ(ú?‰A`åÐ"«?'1¬ZÔ¿)\�Âõ(ú¿ìQ¸…ëÿ¿R¸…ë‰iÀL7‰A`•ˆÀ)\�Âõ(¬¿'1¬ZÔ?)\�Âõ(ú?)\�Âõ(¬?'1¬ZÔ¿)\�Âõ(ú¿òÒMbXý¿j¼t“¨iÀ´Èv¾Ÿ¼ˆÀyé&1¬¬¿'1¬ZÔ?)\�Âõ(ú?yé&1¬¬?'1¬ZÔ¿)\�Âõ(ú¿ã¥›Ä °ú¿mçû©ñÆiÀ¾Ÿ/ÝãˆÀyé&1¬¬¿Ñ"Ûù~jÔ?)\�Âõ(ú?yé&1¬¬?Ñ"Ûù~jÔ¿)\�Âõ(ú¿ø¿š™™™™åiÀÉv¾Ÿ ‰Àyé&1¬¬¿'1¬ZÔ?)\�Âõ(ú?yé&1¬¬?'1¬ZÔ¿)\�Âõ(ú¿Zd;ßOõ¿ã¥›Ä jÀÓMbX2‰À)\�Âõ(¬¿'1¬ZÔ?)\�Âõ(ú?)\�Âõ(¬?'1¬ZÔ¿)\�Âõ(ú¿-²�ï§ò¿´Èv¾Ÿ"jÀ;ßO�—Y‰À‰A`åÐ"«¿žï§ÆK7Ñ?)\�Âõ(ú?‰A`åÐ"«?žï§ÆK7Ñ¿)\�Âõ(ú¿®Gázð¿ð§ÆK7AjÀF¶óýÔ€‰Àš™™™™™©¿'1¬ZÔ?)\�Âõ(ú?š™™™™™©?'1¬ZÔ¿)\�Âõ(ú¿^ºI +ë¿u“VVjÀ®Gáz¨‰ÀªñÒMb¨¿�•C‹l×?)\�Âõ(ú?ªñÒMb¨?�•C‹l׿)\�Âõ(ú¿X9´Èvæ¿ü©ñÒM~jÀÙÎ÷SωÀºI +‡¦¿'1¬ZÔ?)\�Âõ(ú?ºI +‡¦?'1¬ZÔ¿)\�Âõ(ú¿®Gázâ¿é&1¬œjÀj¼t“ö‰À{®Gáz¤¿Ñ"Ûù~jÔ?“V-ú?{®Gáz¤?Ñ"Ûù~jÔ¿“V-ú¿j¼t“Ü¿ÙÎ÷S»jÀF¶óýÔŠÀìQ¸…ë¡¿'1¬ZÔ?“V-ú?ìQ¸…ë¡?'1¬ZÔ¿“V-ú¿!°rh‘íÔ¿çû©ñÒÙjÀ®GázEŠÀ¸…ëQ¸ž¿Ñ"Ûù~jÔ?“V-ú?¸…ëQ¸ž?Ñ"Ûù~jÔ¿“V-ú¿q= ×£pÍ¿ªñÒMbøjÀÓMbXlŠÀú~j¼t“˜¿'1¬ZÔ?“V-ú?ú~j¼t“˜?'1¬ZÔ¿“V-ú¿ßO�—nÿףp= kÀš™™™™“ŠÀ;ßO�—n’¿}?5^ºIÔ?“V-ú?;ßO�—n’?}?5^ºIÔ¿“V-ú¿/Ý$�µ¿Å °rh5kÀ¾Ÿ/ݺŠÀú~j¼t“ˆ¿Ñ"Ûù~jÔ?“V-ú?ú~j¼t“ˆ?Ñ"Ûù~jÔ¿“V-ú¿Ûù~j¼t£¿-²�ïSkÀã¥›Ä âŠÀú~j¼t“x¿ÁÊ¡E¶óÕ?j¼t“ú?ú~j¼t“x?ÁÊ¡E¶óÕ¿j¼t“ú¿;ßO�—n‚¿¦›Ä °rkÀL7‰A` ‹ÀºI +‡†¿Ház®GÙ?¬Zd;ßù?ºI +‡†?Ház®GÙ¿¬Zd;ßù¿`åÐ"Û•kÀ¬Zd0‹À‹lçû©ñ¢¿j¼t“Ü?V-²�ù?‹lçû©ñ¢?j¼t“Ü¿V-²�ù¿)\�Âõ(¬?J +‡¾kÀ‡ÙÎ÷V‹Àã¥›Ä °²¿/Ý$�Ý?F¶óýÔxù?ã¥›Ä °²?/Ý$�Ý¿F¶óýÔxù¿}?5^ºIÌ? /Ý$êkÀð§ÆK7}‹À�•C‹l绿ÍÌÌÌÌÌÜ?q= ×£pù?�•C‹lç»?ÍÌÌÌÌÌÜ¿q= ×£pù¿X9´Èv¾ß?Év¾ŸlÀÅ °rh£‹À;ßO�—n¿^ºI +×?1¬Zdù?;ßO�—nÂ?^ºI +׿1¬Zdù¿j¼t“ì?�—nƒ@lÀ¨ÆK7‰É‹ÀbX9´ÈÆ¿333333Ó?òÒMbXù?bX9´ÈÆ?333333Ó¿òÒMbXù¿+‡ÙÎõ?é&1¬\lÀ;ßO�—ï‹Àáz®GáÊ¿w¾Ÿ/Ýä?Ház®Gù?áz®GáÊ?w¾Ÿ/Ýä¿Ház®Gù¿ôýÔxé&ÿ?5^ºI zlÀd;ßO�ŒÀ +‡ÙοZd;ßO�ç?333333ù? +‡ÙÎ?Zd;ßO�ç¿333333ù¿5^ºI @ÙÎ÷SãÙlÀ�•C‹l;ŒÀžï§ÆK7Ñ¿¸…ëQ¸Þ?‰A`åÐ"ù?žï§ÆK7Ñ?¸…ëQ¸Þ¿‰A`åÐ"ù¿¾Ÿ/Ý$ @žï§ÆKmÀV-aŒÀáz®GáÒ¿^ºI +ß?u“Vù?áz®GáÒ?^ºI +ß¿u“Vù¿+‡ÙÎ÷@®Gáz6mÀçû©ñÒ†ŒÀÑ"Ûù~jÔ¿^ºI +ß?Ë¡E¶óýø?Ñ"Ûù~jÔ?^ºI +߿ˡE¶óýø¿D‹lçû©@ÍÌÌÌÌdmÀ1¬Z¬ŒÀÃõ(\�ÂÕ¿ÓMbX9Ü?¶óýÔxéø?Ãõ(\�ÂÕ?ÓMbX9Ü¿¶óýÔxéø¿9´Èv¾Ÿ@V-²�“mÀ²�ï§ÆÑŒÀ¶óýÔxéÖ¿åÐ"Ûù~Ò? +‡Ùø?¶óýÔxéÖ?åÐ"Ûù~Ò¿ +‡Ùø¿R¸…ëÑ@¶óýÔx¹mÀj¼t“÷ŒÀ¬Zd;ß׿´Èv¾Ÿß?ÍÌÌÌÌÌø?¬Zd;ß×?´Èv¾Ÿß¿ÍÌÌÌÌÌø¿Ï÷S㥛 @P�—nËmÀ¸…ëQ�À¤p= ףؿÁÊ¡E¶óå?�—nƒÀø?¤p= ×£Ø?ÁÊ¡E¶óå¿�—nƒÀø¿ü©ñÒMâ"@˜nƒÀnÀ¶óýÔxA�ÀôýÔxé&Ù¿…ëQ¸á?¸…ëQ¸ø?ôýÔxé&Ù?…ëQ¸Ὸ…ëQ¸ø¿F¶óýÔ8%@…ëQ¸NnÀ!°rh‘f�ÀF¶óýÔxÙ¿¬Zd;ß?ã¥›Ä °ø?F¶óýÔxÙ?¬Zd;ß¿ã¥›Ä °ø¿'1¬š'@/Ý$�}nÀV-²�‹�Àš™™™™™Ù¿¬Zd;ß?ã¥›Ä °ø?š™™™™™Ù?¬Zd;ß¿ã¥›Ä °ø¿*@1¬Z¬nÀÏ÷S㥰�ÀF¶óýÔxÙ¿Õxé&1Ü?ã¥›Ä °ø?F¶óýÔxÙ?Õxé&1Ü¿ã¥›Ä °ø¿ÙÎ÷Sãe,@Év¾ŸÛnÀé&1¬Õ�ÀôýÔxé&Ù¿ã¥›Ä °Ò?¸…ëQ¸ø?ôýÔxé&Ù?ã¥›Ä °Ò¿¸…ëQ¸ø¿ºI +Ç.@ªñÒMboÀ}?5^ºú�À¤p= ףؿ²�ï§ÆKß?�—nƒÀø?¤p= ×£Ø?²�ï§ÆKß¿�—nƒÀø¿+‡ÙŽ0@¬Zd;oÀ‰A`åÐŽÀ¬Zd;ß׿B`åÐ"Ûå?ÍÌÌÌÌÌø?¬Zd;ß×?B`åÐ"Ûå¿ÍÌÌÌÌÌø¿V-²1@ ×£p=^oÀ‡ÙÎ÷DŽÀ¶óýÔxéÖ¿ôýÔxé&á? +‡Ùø?¶óýÔxéÖ?ôýÔxé&á¿ +‡Ùø¿ìQ¸…Ë2@î|?5^–oÀ33333jŽÀÃõ(\�ÂÕ¿´Èv¾Ÿß?¶óýÔxéø?Ãõ(\�ÂÕ?´Èv¾Ÿß¿¶óýÔxéø¿òÒMbØ3@þÔxé&ÅoÀìQ¸…�ŽÀÑ"Ûù~jÔ¿´Èv¾Ÿß?Ë¡E¶óýø?Ñ"Ûù~jÔ?´Èv¾Ÿ߿ˡE¶óýø¿/Ý$�Õ4@9´Èv¾óoÀ-²�ï´ŽÀáz®GáÒ¿^ºI +ß?u“Vù?áz®GáÒ?^ºI +ß¿u“Vù¿5^ºI Â5@¬Zd;pÀ¶óýÔxÚŽÀžï§ÆK7Ñ¿j¼t“Ü?‰A`åÐ"ù?žï§ÆK7Ñ?j¼t“Ü¿‰A`åÐ"ù¿¬Zd›6@-²�ï§(pÀ'1¬�À +‡Ùο�—nƒÀÒ?333333ù? +‡ÙÎ?�—nƒÀÒ¿333333ù¿9´Èv¾_7@�Âõ(\;pÀZd;ß%�Àáz®GáÊ¿²�ï§ÆKß?Ház®Gù?áz®GáÊ?²�ï§ÆKß¿Ház®Gù¿!°rh‘ 8@˜nƒÀDpÀÛù~j¼K�ÀbX9´ÈÆ¿mçû©ñÒå?òÒMbXù?bX9´ÈÆ?mçû©ñÒå¿òÒMbXù¿P�—n£8@u“VjpÀV-²q�À;ßO�—n¿J +‡á?1¬Zdù?;ßO�—nÂ?J +‡á¿1¬Zdù¿¬Zd;9@ÇK7‰A†pÀ˜nƒÀ—�À�•C‹l绿¬Zd;ß?q= ×£pù?�•C‹lç»?¬Zd;ß¿q= ×£pù¿/Ý$�9@ƒÀÊ¡�pÀ{®Gá½�Àã¥›Ä °²¿^ºI +ß?F¶óýÔxù?ã¥›Ä °²?^ºI +ß¿F¶óýÔxù¿�•C‹lÇ9@“VµpÀP�—nä�À‹lçû©ñ¢¿^ºI +ß?°rh‘í|ù?‹lçû©ñ¢?^ºI +ß¿°rh‘í|ù¿R¸…ëñ9@u“VÌpÀÏ÷Sã%�À²�ï§ÆKß?/Ý$�ù?²�ï§ÆKß¿/Ý$�ù¿:@+‡ÙÎãpÀƒÀÊ¡E�À‹lçû©ñ¢?øS㥛Ää?°rh‘í|ù?‹lçû©ñ¢¿øS㥛Ää¿°rh‘í|ù¿R¸…ëñ9@%�•CûpÀfffff+�Àã¥›Ä °²?ÇK7‰A`Å?F¶óýÔxù?ã¥›Ä °²¿ÇK7‰A`Å¿F¶óýÔxù¿�•C‹lÇ9@j¼t“"qÀ�—nƒ>�À�•C‹lç»?X9´Èvοq= ×£pù?�•C‹l绿X9´ÈvÎ?q= ×£pù¿/Ý$�9@Zd;ßO qÀøS㥛Q�À;ßO�—nÂ?ü©ñÒMbP¿1¬Zdù?;ßO�—n¿ü©ñÒMbP?1¬Zdù¿¬Zd;9@33333 qÀé&1¬d�ÀbX9´ÈÆ?òÒMbXù?bX9´ÈÆ¿òÒMbXù¿P�—n£8@33333 qÀ3333³w�Àáz®GáÊ?¼t“VÎ?Ház®Gù?áz®GáÊ¿¼t“VοHáz®Gù¿!°rh‘ 8@33333 qÀHáz®Š�À +‡ÙÎ?Ûù~j¼tã?333333ù? +‡ÙοÛù~j¼tã¿333333ù¿9´Èv¾_7@D‹lçû!qÀ'1¬œ��Àžï§ÆK7Ñ?®Gáz®ç?‰A`åÐ"ù?žï§ÆK7Ñ¿®Gáz®ç¿‰A`åÐ"ù¿¬Zd›6@d;ßO�EqÀ¢E¶ó}°�Àáz®GáÒ?V-²�ç?u“Vù?áz®GáÒ¿V-²�ç¿u“Vù¿5^ºI Â5@^ºI iqÀZd;ßOÃ�ÀÑ"Ûù~jÔ?X9´Èv¾ç?Ë¡E¶óýø?Ñ"Ûù~jÔ¿X9´Èv¾ç¿Ë¡E¶óýø¿/Ý$�Õ4@#Ûù~jŒqÀ®GázÖ�ÀÃõ(\�ÂÕ?\�Âõ(\ñ?¶óýÔxéø?Ãõ(\�ÂÕ¿\�Âõ(\ñ¿¶óýÔxéø¿òÒMbØ3@‘í|?5°qÀ?5^ºÉè�À¶óýÔxéÖ?yé&1¬è? +‡Ùø?¶óýÔxéÖ¿yé&1¬è¿ +‡Ùø¿ìQ¸…Ë2@Ãõ(\�ôqÀœÄ °rû�À¬Zd;ß×?œÄ °rh‘?ÍÌÌÌÌÌø?¬Zd;ß׿œÄ °rh‘¿ÍÌÌÌÌÌø¿V-²1@V-úqÀòÒMb‘À¤p= ×£Ø?Ë¡E¶óý¤¿�—nƒÀø?¤p= ףؿˡE¶óý¤?�—nƒÀø¿+‡ÙŽ0@ ×£p=öqÀq= ×£ ‘ÀôýÔxé&Ù?¸…ëQ¸ø?ôýÔxé&Ù¿¸…ëQ¸ø¿ºI +Ç.@ ×£p=öqÀw¾Ÿ/3‘ÀF¶óýÔxÙ?;ßO�—n¢?ã¥›Ä °ø?F¶óýÔxÙ¿;ßO�—n¢¿ã¥›Ä °ø¿ÙÎ÷Sãe,@ ×£p=öqÀÁÊ¡E¶E‘Àš™™™™™Ù?/Ý$�•Û?ã¥›Ä °ø?š™™™™™Ù¿/Ý$�•Û¿ã¥›Ä °ø¿*@‹lçû©ùqÀNbX9X‘ÀF¶óýÔxÙ? +‡Ùî?ã¥›Ä °ø?F¶óýÔxÙ¿ +‡Ùî¿ã¥›Ä °ø¿'1¬š'@Ï÷Sã¥rÀ ×£p½j‘ÀôýÔxé&Ù?“V-ò?¸…ëQ¸ø?ôýÔxé&Ù¿“V-ò¿¸…ëQ¸ø¿F¶óýÔ8%@ÇK7‰AVrÀ%�•C}‘À¤p= ×£Ø?ªñÒMbò?�—nƒÀø?¤p= ףؿªñÒMbò¿�—nƒÀø¿ü©ñÒMâ"@…ëQ¸ŒrÀZd;ßÏ�‘À¬Zd;ß×?B`åÐ"Ûí?ÍÌÌÌÌÌø?¬Zd;ß׿B`åÐ"Ûí¿ÍÌÌÌÌÌø¿Ï÷S㥛 @øS㥛ÂrÀÙÎ÷Sc¢‘À¶óýÔxéÖ?ƒÀÊ¡E¶ã? +‡Ùø?¶óýÔxéÖ¿ƒÀÊ¡E¶ã¿ +‡Ùø¿R¸…ëÑ@¸…ëQærÀµ‘ÀÃõ(\�ÂÕ?¬Zd;ß?¶óýÔxéø?Ãõ(\�ÂÕ¿¬Zd;ß¿¶óýÔxéø¿9´Èv¾Ÿ@ÁÊ¡E¶ýrÀ\�Âõ¨Ç‘ÀÑ"Ûù~jÔ?¬Zd;ß?Ë¡E¶óýø?Ñ"Ûù~jÔ¿¬Zd;߿ˡE¶óýø¿D‹lçû©@þÔxé&sÀZd;_Ú‘Àáz®GáÒ?ÙÎ÷SãÝ?u“Vù?áz®GáÒ¿ÙÎ÷SãÝ¿u“Vù¿+‡ÙÎ÷@�—nƒ,sÀB`åÐ"í‘Àžï§ÆK7Ñ?‘í|?5^º¿‰A`åÐ"ù?žï§ÆK7Ñ¿‘í|?5^º?‰A`åÐ"ù¿¾Ÿ/Ý$ @Ë¡E¶óAsÀ)\�Âõÿ‘À +‡ÙÎ?Ý$�•Cã¿333333ù? +‡ÙοÝ$�•Cã?333333ù¿5^ºI @-²�ï§"sÀu“Ö’Àáz®GáÊ?{®Gáz”¿Ház®Gù?áz®GáÊ¿{®Gáz”?Ház®Gù¿ôýÔxé&ÿ?ã¥›Ä sÀT㥛Ä%’ÀbX9´ÈÆ?òÒMbXá?òÒMbXù?bX9´ÈÆ¿òÒMbXá¿òÒMbXù¿+‡ÙÎõ?bX9´ sÀ˜nƒÀ8’À;ßO�—nÂ?çû©ñÒMâ?1¬Zdù?;ßO�—n¿çû©ñÒMâ¿1¬Zdù¿j¼t“ì? /Ý$lÀ-²�ïÉ‹À ×£p= ×? /Ý$Ñ?`åÐ"Ûùø? ×£p= ׿ /Ý$Ñ¿`åÐ"Ûùø¿Ë¡E¶óýÀ�•C‹lWlÀÝ$�•ï‹ÀÝ$�•CÛ?X9´Èv¾ë?NbX9´ø?Ý$�•CÛ¿X9´Èv¾ë¿NbX9´ø¿q= ×£pÀ`åÐ"ÛqlÀ`åÐ"ÛŒÀ²�ï§ÆKß?¬Zd;ç?Ñ"Ûù~jø?²�ï§ÆKß¿¬Zd;ç¿Ñ"Ûù~jø¿¸…ëQ8ÀoƒÀÊýlÀbX9´9ŒÀð§ÆK7‰á?‡ÙÎ÷SÓ?®Gázø?ð§ÆK7‰á¿‡ÙÎ÷SÓ¿®Gázø¿ÁÊ¡E¶sÀh‘í|?ýlÀ®Gáz^ŒÀ²�ï§ÆKã?/Ý$�•ç?X9´Èv¾÷?²�ï§ÆKã¿/Ý$�•ç¿X9´Èv¾÷¿V-²�/!À9´Èv¾7mÀ)\�Âõ�ŒÀL7‰A`åä?çû©ñÒMî?œÄ °rh÷?L7‰A`åä¿çû©ñÒMî¿œÄ °rh÷¿h‘í|?õ$À-²�ï§ŠmÀu“V¥ŒÀ¼t“Væ?ð§ÆK7‰å?ßO�—n÷?¼t“Væ¿ð§ÆK7‰å¿ßO�—n÷¿…ëQ¸)À‹lçû©ímÀÕxé&1ÈŒÀV-²�ç?œÄ °rh‘¿�—nƒÀö?V-²�ç¿œÄ °rh‘?�—nƒÀö¿¼t“V-À¤p= × nÀd;ßO�êŒÀNbX9´è?V-²½¿X9´Èvö?NbX9´è¿V-²½?X9´Èvö¿ã¥›Ä ð0Àî|?5^êmÀœÄ °r �ÀoƒÀÊ¡é?‘í|?5^Ò?h‘í|?5ö?oƒÀʡ鿑í|?5^Ò¿h‘í|?5ö¿!°rh‘M3À/Ý$�õmÀ°rh‘í-�À¼t“Vê?ÇK7‰A`Ý?ö?¼t“Vê¿ÇK7‰A`Ý¿ö¿X9´Èv¾5À¨ÆK7‰!nÀòÒMbO�À +‡Ùê?åÐ"Ûù~â?×£p= ×õ? +‡Ùê¿åÐ"Ûù~â¿×£p= ×õ¿Ë¡E¶ó=8ÀƒÀÊ¡MnÀR¸…ëo�À^ºI +ë?…ëQ¸Õ?X9´Èv¾õ?^ºI +ë¿…ëQ¸Õ¿X9´Èv¾õ¿Ház®Ç:À�•C‹�nÀÝ$�•��ÀÝ$�•Cë?�•C‹lÇ¿ƒÀÊ¡E¶õ?Ý$�•Cë¿�•C‹lÇ?ƒÀÊ¡E¶õ¿ƒÀÊ¡EV=À°rh‘íŒnÀ /Ý$±�À^ºI +ë?#Ûù~j¼Ä¿X9´Èv¾õ?^ºI +ë¿#Ûù~j¼Ä?X9´Èv¾õ¿¾Ÿ/Ýä?À¶óýÔxmnÀÁÊ¡E¶Ñ�À +‡Ùê?ú~j¼t“h?×£p= ×õ? +‡Ùê¿ú~j¼t“h¿×£p= ×õ¿ºI +7AÀö(\�ÂmnÀL7‰A`ò�À¼t“Vê?ú~j¼t“x?ö?¼t“Vê¿ú~j¼t“x¿ö¿×£p= wBÀ /Ý$nnÀ¬Zd;ŽÀoƒÀÊ¡é?9´Èv¾Ÿš?h‘í|?5ö?oƒÀÊ¡é¿9´Èv¾Ÿš¿h‘í|?5ö¿�Âõ(\¯CÀ+‡ÙnnÀ�Âõ(\4ŽÀNbX9´è?×£p= ×Û?X9´Èvö?NbX9´è¿×£p= ×Û¿X9´Èvö¿®GázÞDÀÉv¾ŸsnÀ+‡ÙUŽÀV-²�ç?/Ý$�•ë?�—nƒÀö?V-²�ç¿/Ý$�•ë¿�—nƒÀö¿q= ×£FÀu“VÂnÀ9´Èv¾wŽÀ¼t“Væ?¢E¶óýÔì?ßO�—n÷?¼t“Væ¿¢E¶óýÔì¿ßO�—n÷¿¢E¶óýGÀq= ×£oÀÉv¾ŸšŽÀL7‰A`åä?!°rh‘íì?œÄ °rh÷?L7‰A`åä¿!°rh‘íì¿œÄ °rh÷¿F¶óýÔHÀ�Âõ(\ooÀ)\�Âõ¼ŽÀ²�ï§ÆKã?u“Ví?X9´Èv¾÷?²�ï§ÆKã¿u“Ví¿X9´Èv¾÷¿î|?5^ IÀ ×£p=ÆoÀÙÎ÷SàŽÀð§ÆK7‰á?d;ßO�—î?®Gázø?ð§ÆK7‰á¿d;ßO�—î¿®Gázø¿Ház®çIÀÍÌÌÌÌpÀð§ÆK7�À²�ï§ÆKß?Å °rh‘é?Ñ"Ûù~jø?²�ï§ÆK߿аrh‘é¿Ñ"Ûù~jø¿Év¾Ÿ¯JÀ7‰A`å>pÀ;ßO�—(�ÀÝ$�•CÛ?{®Gázä?NbX9´ø?Ý$�•CÛ¿{®Gázä¿NbX9´ø¿Év¾Ÿ_KÀ/Ý$�[pÀ= ×£pM�À ×£p= ×?Ý$�•CË?`åÐ"Ûùø? ×£p= ׿Ý$�•CË¿`åÐ"Ûùø¿ffffföKÀ¸…ëQ|pÀÁÊ¡E¶r�À9´Èv¾ŸÒ?!°rh‘íà¿333333ù?9´Èv¾ŸÒ¿!°rh‘íà?333333ù¿ÁÊ¡E¶sLÀppÀ�Âõ(\˜�À}?5^ºIÌ?Zd;ßOå¿1¬Zdù?}?5^ºIÌ¿Zd;ßOå?1¬Zdù¿ƒÀÊ¡EÖLÀ!°rh‘IpÀ¸…ëQ¾�À‹lçû©ñÂ?NbX9´Ø¿…ëQ¸…ù?‹lçû©ñ¿NbX9´Ø?…ëQ¸…ù¿w¾Ÿ/MÀ®Gáz0pÀìQ¸…ä�À‹lçû©ñ²?¢E¶óýÔ¸¿š™™™™™ù?‹lçû©ñ²¿¢E¶óýÔ¸?š™™™™™ù¿-²�ïGMÀ�•C‹$pÀ= ×£p�ÀªñÒMbÈ?oƒÀÊ¡ù?ªñÒMbÈ¿oƒÀÊ¡ù¿ /Ý$VMÀ‰A`åÐ&pÀ\�Âõ¨�À‹lçû©ñ²¿mçû©ñÒÝ?š™™™™™ù?‹lçû©ñ²?mçû©ñÒÝ¿š™™™™™ù¿-²�ïGMÀ;ßO�—6pÀªñÒMâ+�À‹lçû©ñ¿°rh‘í|ç?…ëQ¸…ù?‹lçû©ñÂ?°rh‘í|ç¿…ëQ¸…ù¿w¾Ÿ/MÀìQ¸…SpÀòÒMb?�À}?5^ºIÌ¿ƒÀÊ¡E¶ï?1¬Zdù?}?5^ºIÌ?ƒÀÊ¡E¶ï¿1¬Zdù¿ƒÀÊ¡EÖLÀP�—n}pÀ‹lçû)R�À9´Èv¾ŸÒ¿Ãõ(\�Âó?333333ù?9´Èv¾ŸÒ?Ãõ(\�Âó¿333333ù¿ÁÊ¡E¶sLÀé&1¬²pÀq= ×#e�À ×£p= ׿q= ×£p÷?`åÐ"Ûùø? ×£p= ×?q= ×£p÷¿`åÐ"Ûùø¿ffffföKÀ‹lçû©ópÀX9´Èöw�ÀÝ$�•CÛ¿“V-ö?NbX9´ø?Ý$�•CÛ?“V-ö¿NbX9´ø¿Év¾Ÿ_KÀÙÎ÷S?qÀÉv¾ŸšŠ�À²�ï§ÆKß¿ºI +‡ê?Ñ"Ûù~jø?²�ï§ÆKß?ºI +‡ê¿Ñ"Ûù~jø¿Év¾Ÿ¯JÀ˜nƒÀxqÀJ +��Àð§ÆK7‰á¿ÇK7‰A`Ý?®Gázø?ð§ÆK7‰á?ÇK7‰A`Ý¿®Gázø¿Ház®çIÀ{®GáŽqÀð§ÆK7¯�À²�ï§ÆKã¿Zd;ßOÝ?X9´Èv¾÷?²�ï§ÆKã?Zd;ßOÝ¿X9´Èv¾÷¿î|?5^ IÀ¾Ÿ/ݤqÀ-²�ï'Á�ÀL7‰A`åä¿Zd;ßOÝ?œÄ °rh÷?L7‰A`åä?Zd;ßOÝ¿œÄ °rh÷¿F¶óýÔHÀ¾Ÿ/ݺqÀ¤p= ×Ò�À¼t“Væ¿Zd;ßOÝ?ßO�—n÷?¼t“Væ?Zd;ßOÝ¿ßO�—n÷¿¢E¶óýGÀF¶óýÔÐqÀT㥛Dä�ÀV-²�ç¿5^ºI Û?�—nƒÀö?V-²�ç?5^ºI Û¿�—nƒÀö¿q= ×£FÀ‰A`åÐæqÀË¡E¶sõ�ÀNbX9´è¿ªñÒMbÐ?X9´Èvö?NbX9´è?ªñÒMbпX9´Èvö¿®GázÞDÀÙÎ÷SùqÀfffff‘ÀoƒÀʡ鿘nƒÀÊÁ?h‘í|?5ö?oƒÀÊ¡é?˜nƒÀÊÁ¿h‘í|?5ö¿�Âõ(\¯CÀ°rh‘íþqÀq= ×#‘À¼t“Vê¿+‡ÙÎ÷ñ?ö?¼t“Vê?+‡ÙÎ÷ñ¿ö¿×£p= wBÀé&1¬rÀ‘í|?µ'‘À +‡Ùê¿F¶óýÔxñ?×£p= ×õ? +‡Ùê?F¶óýÔxñ¿×£p= ×õ¿ºI +7AÀÛù~j¼jrÀƒÀÊ!8‘À^ºI +ë¿ú~j¼t“¨?X9´Èv¾õ?^ºI +ë?ú~j¼t“¨¿X9´Èv¾õ¿¾Ÿ/Ýä?Àsh‘í|orÀX9´ÈvH‘ÀÝ$�•C뿦›Ä °rÐ?ƒÀÊ¡E¶õ?Ý$�•Cë?¦›Ä °rпƒÀÊ¡E¶õ¿ƒÀÊ¡EV=ÀL7‰A`orÀh‘í|¿X‘À^ºI +ë¿+‡ÙÎ÷ç?X9´Èv¾õ?^ºI +ë?+‡ÙÎ÷ç¿X9´Èv¾õ¿Ház®Ç:À\�Âõ(ˆrÀyé&1i‘À +‡Ùê¿�•C‹lï?×£p= ×õ? +‡Ùê?�•C‹lï¿×£p= ×õ¿Ë¡E¶ó=8À%�•C·rÀ¾Ÿ/]y‘À¼t“Vê¿-²�ï§Æë?ö?¼t“Vê?-²�ï§Æë¿ö¿X9´Èv¾5ÀX9´ÈværÀoƒÀʉ‘ÀoƒÀʡ鿬Zd;ßÏ?h‘í|?5ö?oƒÀÊ¡é?¬Zd;ßÏ¿h‘í|?5ö¿!°rh‘M3ÀÃõ(\� sÀ`åÐ"[š‘ÀNbX9´è¿ú~j¼t“пX9´Èvö?NbX9´è?ú~j¼t“Ð?X9´Èvö¿ã¥›Ä ð0Àu“VþrÀš™™™«‘ÀV-²�ç¿;ßO�—nÂ?�—nƒÀö?V-²�ç?;ßO�—n¿�—nƒÀö¿¼t“V-ÀÏ÷Sã¥ñrÀ5^ºI ¼‘À¼t“Væ¿Ház®GÙ?ßO�—n÷?¼t“Væ?Ház®GÙ¿ßO�—n÷¿…ëQ¸)Àã¥›Ä sÀ}?5^:Í‘ÀL7‰A`åä¿Zd;ßO�—¿œÄ °rh÷?L7‰A`åä?Zd;ßO�—?œÄ °rh÷¿h‘í|?õ$Àš™™™™sÀ-²�ï§Þ‘À²�ï§ÆKã¿D‹lçû©Á¿X9´Èv¾÷?²�ï§ÆKã?D‹lçû©Á?X9´Èv¾÷¿V-²�/!À-²�ï sÀ¤p= Wð‘Àð§ÆK7‰á¿ºI +‡†?®Gázø?ð§ÆK7‰á?ºI +‡†¿®Gázø¿ÁÊ¡E¶sÀü©ñÒM sÀáz®G’À²�ï§ÆKß¿/Ý$�•?Ñ"Ûù~jø?²�ï§ÆKß?/Ý$�•¿Ñ"Ûù~jø¿¸…ëQ8À×£p= sÀ¶óýÔx’ÀÝ$�•CÛ¿Õxé&1Ì?NbX9´ø?Ý$�•CÛ?Õxé&1Ì¿NbX9´ø¿q= ×£pÀü©ñÒM sÀ7‰A`å&’À ×£p= ׿V-²�ß?`åÐ"Ûùø? ×£p= ×?V-²�ß¿`åÐ"Ûùø¿Ë¡E¶óýÀ®Gáz sÀyé&1ˆ9’À9´Èv¾ŸÒ¿¸…ëQ¸â?333333ù?9´Èv¾ŸÒ?¸…ëQ¸â¿333333ù¿çû©ñÒMü¿ö(\�Â;sÀ`åÐ"[L’À}?5^ºIÌ¿/Ý$�•ç?‡ÙÎ÷Sù?}?5^ºIÌ?/Ý$�•翇ÙÎ÷Sù¿ð¿ÇK7‰AXsÀu“V_’À‹lçû©ñ¿B`åÐ"Ûñ?Ý$�•Cù?‹lçû©ñÂ?B`åÐ"Ûñ¿Ý$�•Cù¿%�•C‹Ü¿�—nƒ‚sÀ�Âõ(\r’À‹lçû©ñ²¿\�Âõ(\õ?5^ºI ù?‹lçû©ñ²?\�Âõ(\õ¿5^ºI ù¿yé&1¬¼¿�Âõ(\ÃsÀ…ëQ8…’À‹lçû©ñ¢¿´Èv¾Ÿõ?áz®Gáø?¦›Ä °tÀ{®Gá—’ÀIkqmrIQyé&1¬|¿ü©ñÒMb°¿Zd;ßOÕ¿ÙÎ÷Sãe(À5^ºI ÆeÀV-²ÒƒÀyé&1¬|?¤p= ×£°?Zd;ßOÕ?yé&1¬|¿¤p= ×£°¿Zd;ßOÕ¿ã¥›Ä p(ÀNbX9ÌeÀV-²ÚƒÀyé&1¬|?L7‰A`å°?Zd;ßOÕ?yé&1¬|¿L7‰A`å°¿Zd;ßOÕ¿î|?5^z(ÀX9´ÈvÒeÀV-²âƒÀyé&1¬|?L7‰A`å°?Zd;ßOÕ?yé&1¬|¿L7‰A`å°¿Zd;ßOÕ¿øS㥛„(À¾Ÿ/ÝØeÀV-²êƒÀyé&1¬|?¤p= ×£°?Zd;ßOÕ?yé&1¬|¿¤p= ×£°¿Zd;ßOÕ¿+‡ÙŽ(ÀÉv¾ŸßeÀV-²òƒÀyé&1¬|?ü©ñÒMb°?Zd;ßOÕ?yé&1¬|¿ü©ñÒMb°¿Zd;ßOÕ¿ +‡™(Àáz®GåeÀ¦›Ä °úƒÀyé&1¬|?ü©ñÒMb°?Zd;ßOÕ?yé&1¬|¿ü©ñÒMb°¿Zd;ßOÕ¿ÙÎ÷S£(Àú~j¼tëeÀ¦›Ä °„Àyé&1¬|?ü©ñÒMb°?Zd;ßOÕ?yé&1¬|¿ü©ñÒMb°¿Zd;ßOÕ¿!°rh‘­(À‹lçû©ñeÀ¦›Ä ° „Àyé&1¬|?ü©ñÒMb°?Zd;ßOÕ?+‡Ùη(À¤p= ×÷eÀ¦›Ä °„À kumv c9´Èv¾ŸŠ¿+‡ÙÎ÷³¿Zd;ßOÕ¿{®Gáú*À®Gáz´fÀ…ëQ¸ …À9´Èv¾ŸŠ?“V-²?Zd;ßOÕ?9´Èv¾ŸŠ¿“V-²¿Zd;ßOÕ¿�Âõ(\+À–C‹lç»fÀ…ëQ¸…À9´Èv¾ŸŠ?ü©ñÒMb°?Zd;ßOÕ?9´Èv¾ŸŠ¿ü©ñÒMb°¿Zd;ßOÕ¿¤p= ×#+À®GázÂfÀÁÊ¡E¶…À9´Èv¾ŸŠ?ü©ñÒMb°?Zd;ßOÕ?9´Èv¾ŸŠ¿ü©ñÒMb°¿Zd;ßOÕ¿¸…ëQ8+À?5^ºIÈfÀbX9´"…À9´Èv¾ŸŠ?ü©ñÒMb°?Zd;ßOÕ?9´Èv¾ŸŠ¿ü©ñÒMb°¿Zd;ßOÕ¿ÍÌÌÌÌL+ÀX9´ÈvÎfÀV-²*…À9´Èv¾ŸŠ?ü©ñÒMb°?Zd;ßOÕ?9´Èv¾ŸŠ¿ü©ñÒMb°¿Zd;ßOÕ¿áz®Ga+Àq= ×£ÔfÀ¦›Ä °2…À9´Èv¾ŸŠ?¤p= ×£°?Zd;ßOÕ?9´Èv¾ŸŠ¿¤p= ×£°¿Zd;ßOÕ¿ö(\�Âu+À‰A`åÐÚfÀ¦›Ä °:…À9´Èv¾ŸŠ?L7‰A`å°?Zd;ßOÕ?9´Èv¾ŸŠ¿L7‰A`å°¿Zd;ßOÕ¿ ×£p=Š+Àw¾Ÿ/áfÀHáz®B…À9´Èv¾ŸŠ?¤p= ×£°?Zd;ßOÕ?9´Èv¾ŸŠ¿¤p= ×£°¿Zd;ßOÕ¿…ëQ¸ž+ÀìQ¸…çfÀé&1¬J…À9´Èv¾ŸŠ?ü©ñÒMb°?Zd;ßOÕ?9´Èv¾ŸŠ¿ü©ñÒMb°¿Zd;ßOÕ¿33333³+ÀV-²ífÀ‹lçû©R…À9´Èv¾ŸŠ?ü©ñÒMb°?Zd;ßOÕ?Ház®Ç+ÀZd;ßófÀ-²�ï§Z…À kymz ubX9´È¶¿Zd;ßOÕ¿.ÀL7‰A`ýgÀd;ßO�å†ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀË¡E¶óhÀd;ßO�í†ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀJ +‡hÀd;ßO�õ†ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀÉv¾ŸhÀd;ßO�ý†ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀHáz®hÀd;ßO�‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀÇK7‰A(hÀd;ßO� ‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀÍÌÌÌÌ0hÀd;ßO�‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀL7‰A`9hÀd;ßO�‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀË¡E¶óAhÀd;ßO�%‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀJ +‡JhÀd;ßO�-‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀÉv¾ŸShÀd;ßO�5‡ÀbX9´È¶?Zd;ßOÕ?bX9´È¶¿Zd;ßOÕ¿.ÀHáz®[hÀd;ßO�=‡ÀbX9´È¶?Zd;ßOÕ?.ÀÇK7‰AdhÀd;ßO�E‡À k}m~ ‡;ßO�—n‚¿^ºI +׿Zd;ßOÕ¿j¼t“Ü¿/Ý$�IfÀã¥›Ä #„À;ßO�—n‚?–C‹lçûÑ?Zd;ßOÕ?;ßO�—n‚¿–C‹lçûÑ¿Zd;ßOÕ¿ÁÊ¡E¶óÝ¿?5^ºIlfÀ…ëQ¸+„À;ßO�—n‚?sh‘í|?Å?Zd;ßOÕ?;ßO�—n‚¿sh‘í|?Å¿Zd;ßOÕ¿X9´Èv¾ß¿sh‘í|fÀ…ëQ¸3„À;ßO�—n‚?ÙÎ÷S㥻?Zd;ßOÕ?;ßO�—n‚¿ÙÎ÷S㥻¿Zd;ßOÕ¿øS㥛Äà¿NbX9ŒfÀ…ëQ¸;„À;ßO�—n‚?ƒÀÊ¡E¶?Zd;ßOÕ?;ßO�—n‚¿ƒÀÊ¡E¶¿Zd;ßOÕ¿D‹lçû©á¿Õxé&1”fÀ'1¬C„À;ßO�—n‚?‰A`åÐ"»?Zd;ßOÕ?;ßO�—n‚¿‰A`åÐ"»¿Zd;ßOÕ¿d;ßO�—â¿°rh‘íœfÀ'1¬K„À;ßO�—n‚?`åÐ"Ûù¾?Zd;ßOÕ?;ßO�—n‚¿`åÐ"Ûù¾¿Zd;ßOÕ¿°rh‘í|ã¿j¼t“¨fÀÉv¾ŸS„À;ßO�—n‚?`åÐ"Ûù¾?Zd;ßOÕ?;ßO�—n‚¿`åÐ"Ûù¾¿Zd;ßOÕ¿ü©ñÒMbä¿NbX9´fÀÉv¾Ÿ[„À;ßO�—n‚?`åÐ"Ûù¾?Zd;ßOÕ?;ßO�—n‚¿`åÐ"Ûù¾¿Zd;ßOÕ¿Zd;ßOå¿Zd;ß¿fÀÉv¾Ÿc„À;ßO�—n‚?`åÐ"Ûù¾?Zd;ßOÕ?;ßO�—n‚¿`åÐ"Ûù¾¿Zd;ßOÕ¿h‘í|?5æ¿ìQ¸…ËfÀj¼t“k„À;ßO�—n‚?ú~j¼t“x¿Zd;ßOÕ?;ßO�—n‚¿ú~j¼t“x?Zd;ßOÕ¿´Èv¾Ÿ翺I +×fÀj¼t“s„À;ßO�—n‚?¸…ëQ¸¾¿Zd;ßOÕ?;ßO�—n‚¿¸…ëQ¸¾?Zd;ßOÕ¿è¿î|?5^ÊfÀ +‡{„À;ßO�—n‚?R¸…ëQ¸¿Zd;ßOÕ?;ßO�—n‚¿R¸…ëQ¸?Zd;ßOÕ¿!°rh‘íè¿yé&1ÀfÀ +‡ƒ„À;ßO�—n‚?ü©ñÒMb°¿Zd;ßOÕ?;ßO�—n‚¿ü©ñÒMb°?Zd;ßOÕ¿mçû©ñÒé¿ã¥›Ä ¸fÀ +‡‹„À;ßO�—n‚?ªñÒMb¨¿Zd;ßOÕ?¸…ëQ¸ê¿Ï÷S㥳fÀ®Gáz“„Àk�m‚c;ßO�—n‚¿j¼t“¦?Zd;ßOÕ¿°rh‘í|ÀL7‰A`qgÀú…À;ßO�—n‚? ×£p= §¿Zd;ßOÕ?;ßO�—n‚¿ ×£p= §?Zd;ßOÕ¿ƒÀÊ¡E¶Àh‘í|?mgÀ†À;ßO�—n‚?œÄ °rh¡¿Zd;ßOÕ?;ßO�—n‚¿œÄ °rh¡?Zd;ßOÕ¿V-²�ïÀT㥛ÄhgÀ¢E¶óý †À;ßO�—n‚?yé&1¬|¿Zd;ßOÕ?;ßO�—n‚¿yé&1¬|?Zd;ßOÕ¿^ºI +À¦›Ä °fgÀ¢E¶óý†À;ßO�—n‚?ÙÎ÷S㥛?Zd;ßOÕ?;ßO�—n‚¿ÙÎ÷S㥛¿Zd;ßOÕ¿1¬ZdÀú~j¼tggÀD‹lçû†À;ßO�—n‚?ü©ñÒMb°?Zd;ßOÕ?;ßO�—n‚¿ü©ñÒMb°¿Zd;ßOÕ¿V-²�À²�ï§ÆkgÀD‹lçû!†À;ßO�—n‚?‘í|?5^º?Zd;ßOÕ?;ßO�—n‚¿‘í|?5^º¿Zd;ßOÕ¿×£p= ×À¤p= ×sgÀD‹lçû)†À;ßO�—n‚?ð§ÆK7‰Á?Zd;ßOÕ?;ßO�—n‚¿ð§ÆK7‰Á¿Zd;ßOÕ¿ßO�—nÀsh‘í|gÀåÐ"Ûù1†À;ßO�—n‚?Ë¡E¶óýÄ?Zd;ßOÕ?;ßO�—n‚¿Ë¡E¶óýÄ¿Zd;ßOÕ¿²�ï§ÆKÀ /Ý$ŽgÀåÐ"Ûù9†À;ßO�—n‚?²�ï§ÆKÇ?Zd;ßOÕ?;ßO�—n‚¿²�ï§ÆKÇ¿Zd;ßOÕ¿…ëQ¸…À×£p= ŸgÀ‡ÙÎ÷A†À;ßO�—n‚?ªñÒMbÈ?Zd;ßOÕ?�—nƒÀÀ +‡±gÀ‡ÙÎ÷I†Àk…mzc;ßO�—n‚?^ºI +Ç¿Zd;ßOÕ¿{®GázÀ)\�ÂõühÀƒÀÊ¡ˆÀ;ßO�—n‚¿°rh‘í|¿?Zd;ßOÕ?;ßO�—n‚?°rh‘í|¿¿Zd;ßOÕ¿Ý$�•CÀu“ViÀƒÀÊ¡'ˆÀ;ßO�—n‚¿ü©ñÒMb°?Zd;ßOÕ?;ßO�—n‚?ü©ñÒMb°¿Zd;ßOÕ¿u“VÀ�—nƒiÀƒÀÊ¡/ˆÀ;ßO�—n‚¿ü©ñÒMb°?Zd;ßOÕ?;ßO�—n‚?ü©ñÒMb°¿Zd;ßOÕ¿×£p= ×À¦›Ä °iÀ´Èv¾Ÿ7ˆÀ;ßO�—n‚¿ã¥›Ä °²?Zd;ßOÕ?;ßO�—n‚?ã¥›Ä °²¿Zd;ßOÕ¿9´Èv¾ŸÀ7‰A`å iÀ´Èv¾Ÿ?ˆÀ;ßO�—n‚¿R¸…ëQ¸?Zd;ßOÕ?;ßO�—n‚?R¸…ëQ¸¿Zd;ßOÕ¿œÄ °rhÀé&1¬(iÀV-²�GˆÀ;ßO�—n‚¿ÙÎ÷S㥻?Zd;ßOÕ?;ßO�—n‚?ÙÎ÷S㥻¿Zd;ßOÕ¿þÔxé&1ÀP�—n3iÀV-²�OˆÀ;ßO�—n‚¿ÙÎ÷S㥻?Zd;ßOÕ?;ßO�—n‚?ÙÎ÷S㥻¿Zd;ßOÕ¿–C‹lçûÀ¶óýÔx=iÀV-²�WˆÀ;ßO�—n‚¿ÙÎ÷S㥻?Zd;ßOÕ?;ßO�—n‚?ÙÎ÷S㥻¿Zd;ßOÕ¿øS㥛ÄÀZd;ßGiÀøS㥛_ˆÀ;ßO�—n‚¿ÙÎ÷S㥻?Zd;ßOÕ?;ßO�—n‚?ÙÎ÷S㥻¿Zd;ßOÕ¿Zd;ßO�ÀƒÀÊ¡ERiÀøS㥛gˆÀ;ßO�—n‚¿ÙÎ÷S㥻?Zd;ßOÕ?¼t“VÀé&1¬\iÀøS㥛oˆÀk‡mz™{®Gáz„?Ï÷S㥛ĿZd;ßOÕ¿^ºI +ë¿B`åÐ"CjÀ®Gáz¨‰À{®Gáz„¿Év¾Ÿ/½?Zd;ßOÕ?{®Gáz„?Év¾Ÿ/½¿Zd;ßOÕ¿“V-ê¿´Èv¾ŸRjÀP�—n°‰À{®Gáz„¿L7‰A`å°?Zd;ßOÕ?{®Gáz„?L7‰A`å°¿Zd;ßOÕ¿Év¾Ÿ/é¿/Ý$YjÀP�—n¸‰À{®Gáz„¿¤p= ×£°?Zd;ßOÕ?{®Gáz„?¤p= ×£°¿Zd;ßOÕ¿þÔxé&1è¿žï§ÆK_jÀòÒMbÀ‰À{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿¬Zd;ç¿/Ý$�ejÀòÒMbȉÀ{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿= ×£p=æ¿Ház®kjÀ“VЉÀ{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿sh‘í|?å¿`åÐ"ÛqjÀ“V؉À{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿¨ÆK7‰Aä¿yé&1xjÀ“Và‰À{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿Ý$�•Cã¿ ×£p=~jÀ5^ºI è‰À{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿ƒÀÊ¡Eâ¿#Ûù~j„jÀ5^ºI ð‰À{®Gáz„¿L7‰A`å°?Zd;ßOÕ?{®Gáz„?L7‰A`å°¿Zd;ßOÕ¿Ház®Gá¿;ßO�—ŠjÀ×£p= ø‰À{®Gáz„¿L7‰A`å°?Zd;ßOÕ?{®Gáz„?L7‰A`å°¿Zd;ßOÕ¿}?5^ºIà¿¢E¶óý�jÀ×£p= ŠÀ{®Gáz„¿¤p= ×£°?Zd;ßOÕ?{®Gáz„?¤p= ×£°¿Zd;ßOÕ¿d;ßO�—Þ¿%�•C—jÀyé&1ŠÀ{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿yé&1¬Ü¿¶óýÔx�jÀyé&1ŠÀ{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿ã¥›Ä °Ú¿Ï÷S㥣jÀ/Ý$ŠÀ{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?{®Gáz„?ü©ñÒMb°¿Zd;ßOÕ¿NbX9´Ø¿çû©ñÒ©jÀ/Ý$ ŠÀ{®Gáz„¿ü©ñÒMb°?Zd;ßOÕ?¸…ëQ¸Ö¿°jÀ¼t“(ŠÀk‰mŠuü©ñÒMb€¿¸…ëQ¸¾¿Zd;ßOÕ¿¬Zd;_'@ìQ¸…ßeÀð§ÆK7þƒÀü©ñÒMb€?Zd;ßO�·?Zd;ßOÕ?ü©ñÒMb€¿Zd;ßO�·¿Zd;ßOÕ¿mçû©ñR'@åÐ"ÛùêeÀ‘í|?5„Àü©ñÒMb€?ü©ñÒMb°?Zd;ßOÕ?ü©ñÒMb€¿ü©ñÒMb°¿Zd;ßOÕ¿-²�ï§F'@w¾Ÿ/ñeÀ‘í|?5„Àü©ñÒMb€?¤p= ×£°?Zd;ßOÕ?ü©ñÒMb€¿¤p= ×£°¿Zd;ßOÕ¿`åÐ"Û9'@�Âõ(\÷eÀ‘í|?5„Àü©ñÒMb€?{®Gáz´?Zd;ßOÕ?ü©ñÒMb€¿{®Gáz´¿Zd;ßOÕ¿!°rh‘-'@}?5^ºýeÀ33333„Àü©ñÒMb€?¢E¶óýÔ¸?Zd;ßOÕ?ü©ñÒMb€¿¢E¶óýÔ¸¿Zd;ßOÕ¿áz®G!'@-²�ï§fÀ33333&„Àü©ñÒMb€?ÁÊ¡E¶ó½?Zd;ßOÕ?ü©ñÒMb€¿ÁÊ¡E¶ó½¿Zd;ßOÕ¿®Gáz'@ÇK7‰AfÀ33333.„Àü©ñÒMb€?Ñ"Ûù~j¼?Zd;ßOÕ?ü©ñÒMb€¿Ñ"Ûù~j¼¿Zd;ßOÕ¿Õxé&1'@…ëQ¸fÀ333336„Àü©ñÒMb€?j¼t“¶?Zd;ßOÕ?ü©ñÒMb€¿j¼t“¶¿Zd;ßOÕ¿–C‹lçû&@/Ý$�%fÀÕxé&1>„Àü©ñÒMb€?ôýÔxé&±?Zd;ßOÕ?ü©ñÒMb€¿ôýÔxé&±¿Zd;ßOÕ¿Év¾Ÿï&@}?5^º-fÀÕxé&1F„Àü©ñÒMb€?‹lçû©ñ¢?Zd;ßOÕ?ü©ñÒMb€¿‹lçû©ñ¢¿Zd;ßOÕ¿‰A`åÐâ&@ü©ñÒM2fÀÕxé&1N„Àü©ñÒMb€?L7‰A`å ?Zd;ßOÕ?ü©ñÒMb€¿L7‰A`å ¿Zd;ßOÕ¿J +‡Ö&@F¶óýÔ4fÀw¾Ÿ/V„Àü©ñÒMb€?{®Gáz¤?Zd;ßOÕ?}?5^ºÉ&@q= ×£8fÀw¾Ÿ/^„Àk�m~cú~j¼t“ˆ¿À¿Zd;ßOÕ¿#Ûù~j|#@sh‘í|/gÀF¶óýÔ®…Àú~j¼t“ˆ?R¸…ëQ¸?Zd;ßOÕ?ú~j¼t“ˆ¿R¸…ëQ¸¿Zd;ßOÕ¿Ñ"Ûù~j#@ú~j¼t;gÀF¶óýÔ¶…Àú~j¼t“ˆ?¤p= ×£°?Zd;ßOÕ?ú~j¼t“ˆ¿¤p= ×£°¿Zd;ßOÕ¿ +‡Y#@‹lçû©AgÀçû©ñÒ¾…Àú~j¼t“ˆ?L7‰A`å°?Zd;ßOÕ?ú~j¼t“ˆ¿L7‰A`å°¿Zd;ßOÕ¿ºI +G#@yé&1HgÀçû©ñÒÆ…Àú~j¼t“ˆ?¤p= ×£°?Zd;ßOÕ?ú~j¼t“ˆ¿¤p= ×£°¿Zd;ßOÕ¿h‘í|?5#@u“VNgÀ‰A`åÐÎ…Àú~j¼t“ˆ?ü©ñÒMb°?Zd;ßOÕ?ú~j¼t“ˆ¿ü©ñÒMb°¿Zd;ßOÕ¿¤p= ×##@�—nƒTgÀ+‡ÙÎÖ…Àú~j¼t“ˆ?ü©ñÒMb°?Zd;ßOÕ?ú~j¼t“ˆ¿ü©ñÒMb°¿Zd;ßOÕ¿R¸…ë#@¦›Ä °ZgÀ+‡ÙÎÞ…Àú~j¼t“ˆ?ü©ñÒMb°?Zd;ßOÕ?ú~j¼t“ˆ¿ü©ñÒMb°¿Zd;ßOÕ¿#@7‰A`å`gÀÍÌÌÌÌæ…Àú~j¼t“ˆ?ü©ñÒMb°?Zd;ßOÕ?ú~j¼t“ˆ¿ü©ñÒMb°¿Zd;ßOÕ¿;ßO�—î"@P�—nggÀÍÌÌÌÌî…Àú~j¼t“ˆ?ü©ñÒMb°?Zd;ßOÕ?ú~j¼t“ˆ¿ü©ñÒMb°¿Zd;ßOÕ¿é&1¬Ü"@h‘í|?mgÀoƒÀÊö…Àú~j¼t“ˆ?ü©ñÒMb°?Zd;ßOÕ?˜nƒÀÊ"@�•C‹lsgÀX9´Èþ…Àk�mzuyé&1¬|?bX9´È¶¿Zd;ßOÕ¿fffff¦"@òÒMbÄhÀP�—nχÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿þÔxé&±"@q= ×£ÌhÀP�—nׇÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿–C‹lç»"@ð§ÆK7ÕhÀP�—n߇Àyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿ºI +Ç"@oƒÀÊÝhÀP�—nç‡Àyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿R¸…ëÑ"@î|?5^æhÀòÒMbï‡Àyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿é&1¬Ü"@mçû©ñîhÀòÒMb÷‡Àyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿-²�ïç"@ìQ¸…÷hÀòÒMbÿ‡Àyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿¦›Ä °ò"@j¼t“iÀòÒMbˆÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿Ë¡E¶óý"@é&1¬iÀ“VˆÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿bX9´#@h‘í|?iÀ“VˆÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿ú~j¼t#@çû©ñÒiÀ“VˆÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?yé&1¬|?bX9´È¶¿Zd;ßOÕ¿…ëQ¸#@fffff"iÀ“V'ˆÀyé&1¬|¿bX9´È¶?Zd;ßOÕ?¶óýÔx)#@åÐ"Ûù*iÀ“V/ˆÀk‘m~‡°rh‘í|¿?×£p= ×ÿףp= ×Ó¿fffffÆKÀT㥛ĈqÀ}?5^ºÅ�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿×£p= —KÀNbX9�qÀmçû©qÉ�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿Ház®gKÀHáz®—qÀ\�Âõ(Í�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿¸…ëQ8KÀþÔxé&ŸqÀL7‰AàÐ�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿)\�ÂõKÀøS㥛¦qÀ;ßO�—Ô�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿š™™™™ÙJÀòÒMb®qÀ+‡ÙNØ�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿ ×£p=ªJÀ¨ÆK7‰µqÀ/Ý$Ü�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿{®GázJÀ¢E¶óý¼qÀ ×£p½ß�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿ìQ¸…KJÀœÄ °rÄqÀú~j¼tã�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿\�Âõ(JÀ–C‹lçËqÀé&1,ç�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿ÍÌÌÌÌìIÀL7‰A`ÓqÀ¬Zäê�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿= ×£p½IÀF¶óýÔÚqÀøS㥛î�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿®GázŽIÀ?5^ºIâqÀçû©ñRò�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?°rh‘í|¿?×£p= ×ÿףp= ×Ó¿…ëQ¸^IÀö(\�ÂéqÀ×£p= ö�À°rh‘í|¿¿×£p= ×Ã?×£p= ×Ó?�Âõ(\/IÀð§ÆK7ñqÀÇK7‰Áù�Àk“m‚cÙÎ÷S㥛?ƒÀÊ¡E¶Ã¿sh‘í|?Õ¿çû©ñÒM4@ +‡‡pÀáz®Gª�ÀÙÎ÷S㥛¿ü©ñÒMbÀ?sh‘í|?Õ?ÙÎ÷S㥛?ü©ñÒMbÀ¿sh‘í|?Õ¿‰A`åÐb4@Ñ"Ûù~ŽpÀh‘í|?²�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿+‡ÙÎw4@¬Zd“pÀNbX9º�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿ÍÌÌÌÌŒ4@?5^ºI˜pÀ33333Â�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿oƒÀÊ¡4@ºI +�pÀºI +Ê�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿X9´È¶4@òÒMb¢pÀ /Ý$Ò�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿²�ï§ÆË4@mçû©ñ¦pÀ…ëQ¸Ú�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿T㥛Äà4@¤p= ׫pÀ +‡â�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿ö(\�Âõ4@Ûù~j¼°pÀòÒMbê�ÀÙÎ÷S㥛¿é&1¬º?sh‘í|?Õ?ÙÎ÷S㥛?é&1¬º¿sh‘í|?Õ¿^ºI  5@V-²�µpÀyé&1ò�ÀÙÎ÷S㥛¿B`åÐ"Û¹?sh‘í|?Õ? 5@®GázºpÀ^ºI ú�Àk•mz? ð?ÍÌÌÌÌÌì?š™™™™™é?ð?Ð?ð? ð? ð?ð?ð?ð?ffffffö?âÐ?äà?æè?èð?ð?ð?ð?ð?ð?ð?ð?9;à?à?ì=ÍÌÌÌÌÌì?ÍÌÌÌÌÌì?îÐ?à?è? ×£p= ï?)\�Âõ(Ì?ìQ¸…ëá?ð?…ëQ¸å? ×£p= ï?R¸…ëQÈ?ð? ×£p= ï?ö(\�Âõà? ×£p= ·?ð?R¸…ëQÈ?333333ë? ×£p= ï?ð?·µ©ª±³­ª§¡¢¥¨«Ÿ£¤¦²°¬¼¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÕÖרÙÚÛÜÝÞßàá¸7–@í :@@:@ 333333Ó?𿚙™™™™É?4@ 333333㿚™™™™™@ê 2À+‡ÙùyÀÅ °r(¢•Àxï à?ð?9@ À$@.@@@ð 2@+‡ÙùyÀÅ °r(¢•À à¿ð?ã ü©ñÒMbP?ü©ñÒMbP?ü©ñÒMbP?éåç ð?F%ušï?€H¿}8Ï?€H¿}8Ï¿F%ušï?Cëâ6@¥½Á&Ó@Bš™™™™™¹?ô W[±¿Ø?×£p= ×Ó¿˜nƒÀÊë?:ÀpΈÒÞzuÀ‚“À Òo_Îï?8øÂdª`¤¿‘í|?5^º?}®¶bÙí?ßO�—n×?lxz¥,C¼¿ ŠcîÖ¿D‹lçû©í?N@N@D@ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ!"ÿÿÿÿ#$ÿÿÿÿ%&ÿÿÿÿ'(ÿÿÿÿ)*ÿÿÿÿ+,ÿÿÿÿ-.ÿÿÿÿ/0ÿÿÿÿ12ÿÿÿÿ34ÿÿÿÿ56ÿÿÿÿ78ÿÿÿÿ9:ÿÿÿÿ;<ÿÿÿÿ=>ÿÿÿÿ?@ÿÿÿÿLŸ ¡ ¢ £ ¤ ¥  ¦ &§ ,¨ 4© :ª A« H¬ N­ V® ^¯ d° j± p² w³ {´ ‚ µ¶Ž·C“¸¹£º¹¤»¹¦¼½¨¾½¬¿½°À½´Á½¸Â½¼Ã½ÀĽÄÅ½ÈÆ½ÌǽÐȽÔɽØÊ½Ü˽à̽äͽèνìϽðнôѽøÒ½üÓÔÕÔÖÔ×Ô ØÔ ÙÔÚÔÛÔÜÔÝÔÞÔßÔ!àÔ$áÔ'â * ã¹4ä 5 å¹?æ @ ç¹Jè K é¹UêëVì Xí¹\î ^ï¹bðëdXÿÿÿÿABÿÿÿÿgCDÿÿÿÿhEFÿÿÿÿiGÿÿÿÿkHÿÿÿÿÿÿÿÿkIÿÿÿÿÿÿÿÿmJÿÿÿÿÿÿÿÿoKÿÿÿÿÿÿÿÿqLÿÿÿÿÿÿÿÿsMÿÿÿÿÿÿÿÿuNÿÿÿÿÿÿÿÿwOÿÿÿÿÿÿÿÿyPÿÿÿÿÿÿÿÿ{Qÿÿÿÿÿÿÿÿ}RÿÿÿÿÿÿÿÿSÿÿÿÿÿÿÿÿ�TÿÿÿÿÿÿÿÿƒUÿÿÿÿÿÿÿÿ…Vÿÿÿÿÿÿÿÿ‡Wÿÿÿÿÿÿÿÿ‰Xÿÿÿÿÿÿÿÿ‹Yÿÿÿÿÿÿÿÿ�Zÿÿÿÿÿÿÿÿ�[ÿÿÿÿÿÿÿÿ‘\ÿÿÿÿÿÿÿÿ“]ÿÿÿÿÿÿÿÿ•^ÿÿÿÿÿÿÿÿ—_ÿÿÿÿÿÿÿÿ™`ÿÿÿÿÿÿÿÿ›aÿÿÿÿÿÿÿÿ�bÿÿÿÿÿÿÿÿŸcÿÿÿÿÿÿÿÿ¡dÿÿÿÿÿÿÿÿ£eÿÿÿÿÿÿÿÿ¥fÿÿÿÿÿÿÿÿ§gÿÿÿÿÿÿÿÿ©hÿÿÿÿÿÿÿÿ«iÿÿÿÿÿÿÿÿ­jÿÿÿÿÿÿÿÿ¯kÿÿÿÿÿÿÿÿ±lÿÿÿÿÿÿÿÿ³mÿÿÿÿÿÿÿÿµnÿÿÿÿÿÿÿÿ·oÿÿÿÿÿÿÿÿ¹pÿÿÿÿÿÿÿÿ»qÿÿÿÿÿÿÿÿ½rÿÿÿÿÿÿÿÿ¿sÿÿÿÿÿÿÿÿÁtÿÿÿÿÿÿÿÿÃuÿÿÿÿÿÿÿÿÅvÿÿÿÿÿÿÿÿÇwÿÿÿÿÿÿÿÿÉxÿÿÿÿÿÿÿÿËyÿÿÿÿÿÿÿÿÍzÿÿÿÿÿÿÿÿÏ{ÿÿÿÿÿÿÿÿÑ|ÿÿÿÿÿÿÿÿÓ}ÿÿÿÿÿÿÿÿÕ~ÿÿÿÿÿÿÿÿ×ÿÿÿÿÿÿÿÿÙ€ÿÿÿÿÿÿÿÿÛ�ÿÿÿÿÿÿÿÿÝ‚ÿÿÿÿÿÿÿÿ߃ÿÿÿÿÿÿÿÿá„ÿÿÿÿÿÿÿÿã…ÿÿÿÿÿÿÿÿå†ÿÿÿÿÿÿÿÿç‡ÿÿÿÿÿÿÿÿéˆÿÿÿÿÿÿÿÿë‰ÿÿÿÿÿÿÿÿíŠÿÿÿÿÿÿÿÿï‹ÿÿÿÿÿÿÿÿñŒÿÿÿÿÿÿÿÿó�ÿÿÿÿÿÿÿÿõŽÿÿÿÿÿÿÿÿ÷�ÿÿÿÿÿÿÿÿù�ÿÿÿÿÿÿÿÿû‘ÿÿÿÿÿÿÿÿý’ÿÿÿÿÿÿÿÿÿ“ÿÿÿÿÿÿÿÿ”ÿÿÿÿÿÿÿÿ•ÿÿÿÿÿÿÿÿ–ÿÿÿÿÿÿÿÿ—ÿÿÿÿÿÿÿÿ ˜ÿÿÿÿÿÿÿÿ ™ÿÿÿÿÿÿÿÿ šÿÿÿÿÿÿÿÿ›ÿÿÿÿÿÿÿÿœÿÿÿÿÿÿÿÿ�ÿÿÿÿÿÿÿÿžÿÿÿÿÿÿÿÿŸÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿ¡ÿÿÿÿÿÿÿÿ¢ÿÿÿÿÿÿÿÿ£ÿÿÿÿÿÿÿÿ!¤ÿÿÿÿÿÿÿÿ#¥ÿÿÿÿÿÿÿÿ%¦ÿÿÿÿÿÿÿÿ'§ÿÿÿÿÿÿÿÿ)¨ÿÿÿÿÿÿÿÿ+©ÿÿÿÿÿÿÿÿ-ªÿÿÿÿÿÿÿÿ/«ÿÿÿÿÿÿÿÿ1¬ÿÿÿÿÿÿÿÿ3­ÿÿÿÿÿÿÿÿ5®ÿÿÿÿÿÿÿÿ7¯ÿÿÿÿÿÿÿÿ9°ÿÿÿÿÿÿÿÿ;±ÿÿÿÿÿÿÿÿ=²ÿÿÿÿÿÿÿÿ?³ÿÿÿÿÿÿÿÿA´ÿÿÿÿÿÿÿÿCµÿÿÿÿÿÿÿÿE¶ÿÿÿÿÿÿÿÿG·ÿÿÿÿÿÿÿÿI¸ÿÿÿÿÿÿÿÿK¹ÿÿÿÿÿÿÿÿMºÿÿÿÿÿÿÿÿO»ÿÿÿÿÿÿÿÿQ¼ÿÿÿÿÿÿÿÿS½ÿÿÿÿÿÿÿÿU¾ÿÿÿÿÿÿÿÿW¿ÿÿÿÿÿÿÿÿYÀÿÿÿÿÿÿÿÿ[Áÿÿÿÿÿÿÿÿ]Âÿÿÿÿÿÿÿÿ_ÃÿÿÿÿÿÿÿÿaÄÿÿÿÿÿÿÿÿcÅÿÿÿÿÿÿÿÿeÆÿÿÿÿÿÿÿÿgÇÿÿÿÿÿÿÿÿiÈÿÿÿÿÿÿÿÿkÉÿÿÿÿÿÿÿÿmÊÿÿÿÿÿÿÿÿoËÿÿÿÿÿÿÿÿqÌÿÿÿÿÿÿÿÿsÍÿÿÿÿÿÿÿÿuÎÿÿÿÿÿÿÿÿwÏÿÿÿÿÿÿÿÿyÐÿÿÿÿÿÿÿÿ{Ñÿÿÿÿÿÿÿÿ}ÒÿÿÿÿÿÿÿÿÓÿÿÿÿÿÿÿÿ�ÔÿÿÿÿÿÿÿÿƒÕÿÿÿÿÿÿÿÿ…Öÿÿÿÿÿÿÿÿ‡×ÿÿÿÿÿÿÿÿ‰Øÿÿÿÿÿÿÿÿ‹Ùÿÿÿÿÿÿÿÿ�Úÿÿÿÿÿÿÿÿ�Ûÿÿÿÿÿÿÿÿ‘Üÿÿÿÿÿÿÿÿ“Ýÿÿÿÿÿÿÿÿ•Þÿÿÿÿÿÿÿÿ—ßÿÿÿÿÿÿÿÿ™àÿÿÿÿÿÿÿÿ›áÿÿÿÿÿÿÿÿ�âÿÿÿÿÿÿÿÿŸãÿÿÿÿÿÿÿÿ¡äÿÿÿÿÿÿÿÿ£åÿÿÿÿÿÿÿÿ¥æÿÿÿÿÿÿÿÿ§çÿÿÿÿÿÿÿÿ©èÿÿÿÿÿÿÿÿ«éÿÿÿÿÿÿÿÿ­êÿÿÿÿÿÿÿÿ¯ëÿÿÿÿÿÿÿÿ±ìÿÿÿÿÿÿÿÿ³íÿÿÿÿÿÿÿÿµîÿÿÿÿÿÿÿÿ·ïÿÿÿÿÿÿÿÿ¹ðÿÿÿÿÿÿÿÿ»ñÿÿÿÿÿÿÿÿ½òÿÿÿÿÿÿÿÿ¿óÿÿÿÿÿÿÿÿÁôÿÿÿÿÿÿÿÿÃõÿÿÿÿÿÿÿÿÅöÿÿÿÿÿÿÿÿÇ÷ÿÿÿÿÿÿÿÿÉøÿÿÿÿÿÿÿÿËùÿÿÿÿÿÿÿÿÍúÿÿÿÿÿÿÿÿÏûÿÿÿÿÿÿÿÿÑüÿÿÿÿÿÿÿÿÓýÿÿÿÿÿÿÿÿÕþÿÿÿÿÿÿÿÿ×ÿÿÿÿÿÿÿÿÿÙÿÿÿÿÿÿÿÿÛÿÿÿÿÿÿÿÿÝÿÿÿÿÿÿÿÿßÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿåÿÿÿÿÿÿÿÿçÿÿÿÿÿÿÿÿéÿÿÿÿÿÿÿÿë ÿÿÿÿÿÿÿÿí ÿÿÿÿÿÿÿÿï ÿÿÿÿÿÿÿÿñ ÿÿÿÿÿÿÿÿó ÿÿÿÿÿÿÿÿõÿÿÿÿÿÿÿÿ÷ÿÿÿÿùËÿÿÿÿÿÿÿÿùËÿÿÿÿÿÿÿÿûËÿÿÿÿÿÿÿÿýËÿÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿ Ëÿÿÿÿÿÿÿÿ Ëÿÿÿÿÿÿÿÿ ËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿËÿÿÿÿÿÿÿÿË ÿÿÿÿÿÿÿÿË!ÿÿÿÿÿÿÿÿË"ÿÿÿÿÿÿÿÿË#ÿÿÿÿÿÿÿÿË$ÿÿÿÿÿÿÿÿ!Ë%ÿÿÿÿÿÿÿÿ#Ë&ÿÿÿÿÿÿÿÿ%Ë'ÿÿÿÿÿÿÿÿ'Ë(ÿÿÿÿÿÿÿÿ)Ë)ÿÿÿÿÿÿÿÿ+Ë*ÿÿÿÿÿÿÿÿ-Ë+ÿÿÿÿÿÿÿÿ/Ë,ÿÿÿÿÿÿÿÿ1Ë-ÿÿÿÿÿÿÿÿ3Ë.ÿÿÿÿÿÿÿÿ5Ë/ÿÿÿÿÿÿÿÿ7Ë0ÿÿÿÿÿÿÿÿ9Ë1ÿÿÿÿÿÿÿÿ;Ë2ÿÿÿÿÿÿÿÿ=Ë3ÿÿÿÿÿÿÿÿ?Ë4ÿÿÿÿÿÿÿÿAË5ÿÿÿÿÿÿÿÿCË6ÿÿÿÿÿÿÿÿEË7ÿÿÿÿÿÿÿÿGË8ÿÿÿÿÿÿÿÿIË9ÿÿÿÿÿÿÿÿKË:ÿÿÿÿÿÿÿÿMË;ÿÿÿÿÿÿÿÿOË<ÿÿÿÿÿÿÿÿQË=ÿÿÿÿÿÿÿÿSË>ÿÿÿÿÿÿÿÿUË?ÿÿÿÿÿÿÿÿWË@ÿÿÿÿÿÿÿÿYËAÿÿÿÿÿÿÿÿ[ËBÿÿÿÿÿÿÿÿ]ËCÿÿÿÿÿÿÿÿ_ËDÿÿÿÿÿÿÿÿaËEÿÿÿÿÿÿÿÿcËFÿÿÿÿÿÿÿÿdËGÿÿÿÿÿÿÿÿeËHÿÿÿÿÿÿÿÿfËIÿÿÿÿÿÿÿÿgËJÿÿÿÿÿÿÿÿhKBÿÿÿÿiLMÿÿÿÿiNMÿÿÿÿkOMÿÿÿÿmPMÿÿÿÿoQMÿÿÿÿqRMÿÿÿÿsSMÿÿÿÿuTMÿÿÿÿwUMÿÿÿÿyVMÿÿÿÿ{WMÿÿÿÿ}XMÿÿÿÿYMÿÿÿÿ�ZMÿÿÿÿƒ[Mÿÿÿÿ…\Mÿÿÿÿ‡]Mÿÿÿÿ‰^Mÿÿÿÿ‹_Mÿÿÿÿ�`Mÿÿÿÿ�aMÿÿÿÿ‘bMÿÿÿÿ“cdÿÿÿÿ•edÿÿÿÿ–fBÿÿÿÿ— gdÿÿÿÿ— hdÿÿÿÿ˜ idÿÿÿÿ™ jdÿÿÿÿš kdÿÿÿÿ› ldÿÿÿÿœ mdÿÿÿÿ� ndÿÿÿÿž odÿÿÿÿŸ pdÿÿÿÿ  qdÿÿÿÿ¡ rdÿÿÿÿ¢sBÿÿÿÿ£-tFÿÿÿÿ¤-uFÿÿÿÿ¦-vFÿÿÿÿ¨-wFÿÿÿÿª-xFÿÿÿÿ¬-yFÿÿÿÿ®-zFÿÿÿÿ°-{Fÿÿÿÿ²-|Fÿÿÿÿ´-}Fÿÿÿÿ¶-~Fÿÿÿÿ¸-Fÿÿÿÿº-€Fÿÿÿÿ¼-�Fÿÿÿÿ¾-‚FÿÿÿÿÀ-ƒFÿÿÿÿÂ-„FÿÿÿÿÄ-…FÿÿÿÿÆ-†FÿÿÿÿȇBÿÿÿÿÊAˆ‰ÿÿÿÿË AЉÿÿÿÿØA‹‰ÿÿÿÿéAŒFÿÿÿÿúA�FÿÿÿÿüAŽFÿÿÿÿþA�FÿÿÿÿA�Fÿÿÿÿ‘BÿÿÿÿJ’“ÿÿÿÿJ”“ÿÿÿÿJ•“ÿÿÿÿ J–“ÿÿÿÿJ—“ÿÿÿÿJ˜“ÿÿÿÿJ™“ÿÿÿÿJš“ÿÿÿÿ Je“ÿÿÿÿ$J›“ÿÿÿÿ(Jœ“ÿÿÿÿ,J�“ÿÿÿÿ0Jž“ÿÿÿÿ48ñòóôõö÷ñø ó ôõö÷ñø ôõö÷ñø ôõö÷ñø ôõö÷ñøôõö÷ñøôõö÷ñøòùôõö÷ñøôõö÷ñøùôõö÷ñøùôõö÷ñøôõö÷ñø úóôõö÷ñøóùôõö÷ñøôõö÷ñøôõö÷ñø ôõö÷ñøù!ôõö÷ñ"û#ü$ý%ñø&ù!ôõö÷ñ'þ(ÿ))*ôõ+,-./012 3 4 5 6 )786)9:;8;;<<;=>? @? A6B C!D6B E!F6G C!H6I E!J6K C!L6M E!N6O C!P6B E!Q6R C!S6I E!T6U C!V6U E!W6X C!Y6Z E![6\ C!]6^ E!_6K C!`6a E!b6c C!d63 E!e6f C!g6h E!i"j#o&p"j#s&t"j#w&x"j#{&|"j#&€"j#ƒ&„"j#†&|"j#ˆ&|"j#‹&Œ"j#Ž&€"j#�&|"j#’&€"j#”&„"j#–&|ñø—ò˜ù™'šõ›öœ÷œó�(š žñø—ò˜ù™'Ÿõ›öœ÷œó�(š  ñø—ò˜ù™'¡õ›öœ÷œó�(š ¢ñø—ò˜ù™'£õ›öœ÷œó�(š ¤)¥*¦ñ§+¨,©-6ª «ñ§+¬,©-6­ ®.6)¯*°/±0² ³151´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¹2µ1¸2µ1¶2µ1·2µ1´2µ1¹2µ1¸2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¸2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1´2µ1¶2µ1·2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1º2µ1»2µ1¼2µ1½2µ1¾2µ1¿2µ1¼2µ1¾2µ1¿2µ1À2µ1¼2µ1¾2µ1¿2µ1À2µ1¼2µ1¿2µ1À2µ1¼2µ1Á2µ1Â2µ1Ã2µ1¾2µ1¿2µ1Ä2µ1¼2µ1Â2µ1¿2µ1Ä2µ1À2µ1»2µ1¼2µ1¿2µ1Å2µ1À2µ1¼2µ1Â2µ1½2µ1¿2µ1¸2µ1Å2µ1Ä2µ1À2µ1¼2µ1¿2µ1Å2µ1À2µ1»2µ1¼2µ1½2µ1Ã2µ1¾2µ1¿2µ1Æ2µ1½2µ1¿1¿1¿1¿1¿1¿3Ç2µ3È2µ3É2µ3Ê2µ3Ë2µ3Ì2µ3Í2µ3Î2µ3Ï2µ3Ð2µ3Ñ2µ3Ò2µ3Ó2µ3Ô2µ3Õ2µ3Ö2µ3×2µ3Ø2µ3Ù2µ3Ú2µ3Û2µ3Ü2µ4Ý4Þ4ß4à4á4â4ã4ä4å4æ4ç4è4é4ê5ë ì1À ì1» ì1¼ ì1Á ì1 ì1½ ì1à ì1º ì1¾ ì1´ ì1¹ ì1¿ ì1Æ ì1¸ ì1@ ì1A ì1Å ì1¶ ì1·/í6ë7î8ï9ë ð:.;ñ<ò=ó>ô?@õAöB÷6ë7ø8,C8D%9ë ù<ú=û>ü?ý@þEÿFGAöB6ë7ø8,C8D%9ë ù<=û>ü?ý@þEÿFGAö H H H H HI J K { I J K { IJ K { IJ K { IJ K { IJ K { IJ K { IJ K { IJ K { IJ K { IJ K { IJ K { IJ K { ÿÿÿÿÊ       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW        Daylightèèð?ÿÿÿÿÿÿÿÿ Keys/accent2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/arch2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/banner2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/bark2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKeys/box2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/building2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/crowd2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKeys/far2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/fence2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/groomed2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKeys/ice2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/lift2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/neon2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/packed2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/pine_a2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/pine_b2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKeys/pine_cone2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/powder2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Keys/rock2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�膳Æÿf ÆÿM€Æÿ@`Æÿ:Mºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.material_override:shader_parameter/sky_ambient¶­�èȘˆÿÀ�ˆÿ°xˆÿ�X`ÿˆPXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1material_override:shader_parameter/ground_ambient¶­�èи°ÿȰ¸ÿ¸ °ÿ xˆÿ˜p€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿSky)material_override:shader_parameter/zenith¶­�èÈpHÿ¸`@ÿ˜H8ÿh((ÿX ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ*material_override:shader_parameter/horizon¶­�èðØÈÿèÐØÿȸàÿ Xxÿ Phÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(material_override:shader_parameter/below¶­�èðØÈÿèÐØÿȸàÿ Xxÿ Phÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,material_override:shader_parameter/sun_color¶­�è¨àøÿ€Èøÿ` øÿPxøÿH`èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ/material_override:shader_parameter/horizon_tint¶­�èÿòàÿÿéòÿàÎûÿ³c†ÿ³Ztÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:x¶­�è†8ÖÅm4à¿Ûù~j¼tá¿2U0*©â¿øÂdª`Tâ¿'1¬Zâ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:y¶­�è?5^ºI Þ?-²�ï§ÆÓ?ñôJY†8Æ?ž^)ËǪ?ìQ¸…ë‘?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2material_override:shader_parameter/sun_direction:z¶­�è0L¦ F%ç¿ Šcîè¿ÆÜµ„|Ðé¿“V-ê¿h‘í|?5ê¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Environmentenvironment:fog_light_color¶­�èðØÈÿèÐØÿȸàÿ Xxÿ Phÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿenvironment:background_color¶­�èðØÈÿèÐØÿȸàÿ Xxÿ Phÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿenvironment:fog_depth_begin¶­�è€A@€@@>@:@9@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿenvironment:fog_depth_end¶­�è€a@€`@_@\@€[@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿFx/Snowemitting­ÿÿÿÿÿÿÿÿConfetti<Zð?ÿÿÿÿÿÿÿÿ Fx/ConfettiLemittingÿÿÿÿÿÿÿÿ Fx/ConfettiRemittingÿÿÿÿÿÿÿÿ Lift_GD_liftâð?ÿÿÿÿÿÿÿÿDressing/GD_lift position:xâ AñcÌ]Ë?ÿÿÿÿÿÿÿÿ position:yâ�¥½ÁW7Àÿÿÿÿÿÿÿÿ position:zâ à-� 4SÀÿÿÿÿÿÿÿÿ Lift_GU_liftâð?ÿÿÿÿÿÿÿÿDressing/GU_lift position:xâ AñcÌ]Ë¿ÿÿÿÿÿÿÿÿ position:yâ�¥½ÁW7@ÿÿÿÿÿÿÿÿ position:zâ à-� 4S@ÿÿÿÿÿÿÿÿ Lift_L1D_lifthð?ÿÿÿÿÿÿÿÿDressing/L1D_lift position:xhÿÿÿÿÿÿÿÿ position:yhé·¯g Àÿÿÿÿÿÿÿÿ position:zh¥½Á&Ó<Àÿÿÿÿÿÿÿÿ Lift_L1U_lifthð?ÿÿÿÿÿÿÿÿDressing/L1U_lift position:xhÿÿÿÿÿÿÿÿ position:yhé·¯g @ÿÿÿÿÿÿÿÿ position:zh¥½Á&Ó<@ÿÿÿÿÿÿÿÿ Lift_L2D_lift*ð?ÿÿÿÿÿÿÿÿDressing/L2D_lift position:x*ºk ù ‡1@ÿÿÿÿÿÿÿÿ position:y*J +‡– Àÿÿÿÿÿÿÿÿ position:z*íž<,Ô:1Àÿÿÿÿÿÿÿÿ Lift_L2U_lift*ð?ÿÿÿÿÿÿÿÿDressing/L2U_lift position:x*ºk ù ‡1Àÿÿÿÿÿÿÿÿ position:y*J +‡– @ÿÿÿÿÿÿÿÿ position:z*íž<,Ô:1@ÿÿÿÿÿÿÿÿRSCNB  » óSTRS¨x VALS EXTR8tSUBR°”NODEH,ITEMx BIND˜CONN EMBD¨ORDR°pANIM í‹  #                     1_surfaceShaderres://psx/psx_surface.wgsl2_shadowres://psx/psx_blob_shadow.wgsl3_spriteres://psx/psx_sprite.wgsl4_pageTexture2Dres://rider/textures/rider_page.png5_puffres://rider/textures/puff.png6_starres://rider/textures/star.pngp0_PelvisPackedSceneres://rider/parts/Pelvis.gltfp1_Torsores://rider/parts/Torso.gltfp2_Headres://rider/parts/Head.gltfp3_Beanieres://rider/parts/Beanie.gltfp4_UpperArmLres://rider/parts/UpperArmL.gltfp5_LowerArmLres://rider/parts/LowerArmL.gltfp6_HandLres://rider/parts/HandL.gltfp7_UpperLegLres://rider/parts/UpperLegL.gltfp8_LowerLegLres://rider/parts/LowerLegL.gltfp9_BootLres://rider/parts/BootL.gltfp10_UpperArmRres://rider/parts/UpperArmR.gltfp11_LowerArmRres://rider/parts/LowerArmR.gltfp12_HandRres://rider/parts/HandR.gltfp13_UpperLegRres://rider/parts/UpperLegR.gltfp14_LowerLegRres://rider/parts/LowerLegR.gltfp15_BootRres://rider/parts/BootR.gltfp16_Boardres://rider/parts/Board.gltfRiderNode3DBodyBoardmeshHipsChestNeckShoulderLElbowLWristLShoulderRElbowRWristRHipLKneeLAnkleLHipRKneeRAnkleRPelvisTorsoHeadBeanieUpperArmLLowerArmLHandLUpperLegLLowerLegLBootLUpperArmRLowerArmRHandRUpperLegRLowerLegRBootRShadowMeshInstance3DSprayCPUParticles3DBurstSparkleMat_riderShaderMaterialMat_boardMat_shadowMesh_shadowPlaneMeshMat_puffQuad_puffQuadMeshMat_starQuad_starRamp_ageGradientshadershader_parameter/albedo_textureshader_parameter/sun_directionshader_parameter/sky_ambientshader_parameter/ground_ambientshader_parameter/overbrightshader_parameter/affine_nearrender_priorityshader_parameter/shadow_colorsizematerialshader_parameter/sprite_sheetshader_parameter/frames_xoffsetscolorsmaterial_overridepositioncast_shadowemittingamountlifetimeemission_shapeemission_box_extentsdirectionspreadinitial_velocity_mininitial_velocity_maxgravityscale_amount_minscale_amount_maxcolor_rampone_shotexplosivenessemission_sphere_radiusP0 "$&(*,. ÍÌÌÌÌÌÜ¿®GázÞ?R¸…ëQè¿ ö(\�Âõà?333333ã?ö(\�Âõè?ð? ×£p= ×ã?{®Gázä?®Gáz®ç?ð?333333ó?ø?ffffffö?ffffffö?_ @b eð?ð?ð?ð?ð?ð?ð?ð?^ …ëQ¸…ë? {®Gáz´? à? )\�Âõ(Ü?R¸…ëQÈ¿ Ház®GÑ¿ п )\�Âõ(Ü?R¸…ëQÈ? ¸…ëQ¸®¿)\�Âõ(¼¿ š™™™™™Ù¿ ¸…ëQ¸®¿)\�Âõ(¼?\`0333333ã?c š™™™™™É?š™™™™™©?333333Ó? ð?< @ ÀÐ?ÍÌÌÌÌÌÜ?gÍÌÌÌÌÌì?ffffffæ?š™™™™™Ù?P@ À333333Ó?š™™™™™é?fà?Z ffffffÖ?ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !ÿÿÿÿ"#ÿÿÿÿ$%ÿÿÿÿ&'ÿÿÿÿ()ÿÿÿÿ*+ÿÿÿÿ,-ÿÿÿÿ./ÿÿÿÿ01ÿÿÿÿ \]^]_]`ab]cde]fdgh7ÿÿÿÿ23ÿÿÿÿ43ÿÿÿÿ5ÿÿÿÿ6ÿÿÿÿÿÿÿÿ73ÿÿÿÿ83ÿÿÿÿ93ÿÿÿÿ :3ÿÿÿÿ!;3ÿÿÿÿ"<3ÿÿÿÿ#=3ÿÿÿÿ$ >3ÿÿÿÿ% ?3ÿÿÿÿ&@3ÿÿÿÿ' A3ÿÿÿÿ(B3ÿÿÿÿ)C3ÿÿÿÿ*D3ÿÿÿÿ+E3ÿÿÿÿ,Fÿÿÿÿ-6ÿÿÿÿÿÿÿÿ-Gÿÿÿÿ.6ÿÿÿÿÿÿÿÿ.Hÿÿÿÿ/6ÿÿÿÿÿÿÿÿ/Iÿÿÿÿ06ÿÿÿÿÿÿÿÿ0Jÿÿÿÿ16ÿÿÿÿÿÿÿÿ1Kÿÿÿÿ26ÿÿÿÿÿÿÿÿ2 Lÿÿÿÿ36ÿÿÿÿÿÿÿÿ3 Mÿÿÿÿ4!6ÿÿÿÿÿÿÿÿ4Nÿÿÿÿ 5#6ÿÿÿÿÿÿÿÿ5Oÿÿÿÿ 6%6ÿÿÿÿÿÿÿÿ6 Pÿÿÿÿ 7'6ÿÿÿÿÿÿÿÿ7 Qÿÿÿÿ 8)6ÿÿÿÿÿÿÿÿ8 Rÿÿÿÿ 9+6ÿÿÿÿÿÿÿÿ9Sÿÿÿÿ:-6ÿÿÿÿÿÿÿÿ:Tÿÿÿÿ;/6ÿÿÿÿÿÿÿÿ;Uÿÿÿÿ<16ÿÿÿÿÿÿÿÿ<VWÿÿÿÿ=XYÿÿÿÿ?ZYÿÿÿÿM[Yÿÿÿÿ]mijklmnoijklmnoipqrsitusit us!v"w#x$y%y&y'y(y)y*y+y)y*y,y-y-y.y-y-x/x/x/x/x/x/x/x/x/x/x/x/x/x/x/x/60z1{2|3}465~67€8�9‚ƒ:„;…<†=‡>{2ˆ?‰@|A}B65~ŠC€8�D‚EƒF„G…H†4‡>{2ˆ?‰I|J}C6K~ŠL€8�M‚Lƒ„N…<†O‡>ÿÿÿÿZ       !"#$%&'()*+,-./0123456   Door<<ð?ÿÿÿÿÿÿÿÿBody/Hips/Chest/Torso/mesh.material_override:shader_parameter/screen_door<ð?ÿÿÿÿÿÿÿÿBody/Board/mesh.material_override:shader_parameter/screen_door<ð?ÿÿÿÿÿÿÿÿLift<<ð?ÿÿÿÿÿÿÿÿShadow'material_override:shader_parameter/lift<ð?ÿÿÿÿÿÿÿÿScheme<ð?ÿÿÿÿÿÿÿÿBody/Hips/Chest/Torso/mesh.material_override:shader_parameter/uv_offset:yè?ÿÿÿÿÿÿÿÿx                                D00_archMeshInstance3Dcourse/dressing.rmdlcmd#0D00_bannercourse/dressing.rmdlcmd#1D00_buildingcourse/dressing.rmdlcmd#2D00_fencecourse/dressing.rmdlcmd#3D00_liftcourse/dressing.rmdlcmd#4D01_bannercourse/dressing.rmdlcmd#5D01_fencecourse/dressing.rmdlcmd#6D01_liftcourse/dressing.rmdlcmd#7D02_accentcourse/dressing.rmdlcmd#8D02_bannercourse/dressing.rmdlcmd#9D02_fencecourse/dressing.rmdlcmd#10D02_liftcourse/dressing.rmdlcmd#11D03_accentcourse/dressing.rmdlcmd#12D03_bannercourse/dressing.rmdlcmd#13D03_liftcourse/dressing.rmdlcmd#14D04_accentcourse/dressing.rmdlcmd#15D04_bannercourse/dressing.rmdlcmd#16D04_barkcourse/dressing.rmdlcmd#17D04_boxcourse/dressing.rmdlcmd#18D04_crowdcourse/dressing.rmdlcmd#19D04_fencecourse/dressing.rmdlcmd#20D04_liftcourse/dressing.rmdlcmd#21D04_railcourse/dressing.rmdlcmd#22D05_bannercourse/dressing.rmdlcmd#23D05_boxcourse/dressing.rmdlcmd#24D05_liftcourse/dressing.rmdlcmd#25D05_railcourse/dressing.rmdlcmd#26D06_accentcourse/dressing.rmdlcmd#27D06_archcourse/dressing.rmdlcmd#28D06_bannercourse/dressing.rmdlcmd#29D06_liftcourse/dressing.rmdlcmd#30D06_pine_conecourse/dressing.rmdlcmd#31D07_accentcourse/dressing.rmdlcmd#32D07_bannercourse/dressing.rmdlcmd#33D07_boxcourse/dressing.rmdlcmd#34D07_buildingcourse/dressing.rmdlcmd#35D07_liftcourse/dressing.rmdlcmd#36D07_packedcourse/dressing.rmdlcmd#37D07_pine_conecourse/dressing.rmdlcmd#38D07_railcourse/dressing.rmdlcmd#39D08_accentcourse/dressing.rmdlcmd#40D08_bannercourse/dressing.rmdlcmd#41D08_liftcourse/dressing.rmdlcmd#42D08_pine_conecourse/dressing.rmdlcmd#43D09_accentcourse/dressing.rmdlcmd#44D09_archcourse/dressing.rmdlcmd#45D09_bannercourse/dressing.rmdlcmd#46D09_buildingcourse/dressing.rmdlcmd#47D09_crowdcourse/dressing.rmdlcmd#48D09_fencecourse/dressing.rmdlcmd#49D09_liftcourse/dressing.rmdlcmd#50D09_neoncourse/dressing.rmdlcmd#51D10_buildingcourse/dressing.rmdlcmd#52GD_liftcourse/dressing.rmdlcmd#53GU_liftcourse/dressing.rmdlcmd#54L1D_liftcourse/dressing.rmdlcmd#55L1U_liftcourse/dressing.rmdlcmd#56L2D_liftcourse/dressing.rmdlcmd#57L2U_liftcourse/dressing.rmdlcmd#58accentÃõ(?ìQx?\�B>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?archìQx?®Ga>)\?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?bannerfff?ÍÌL>?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?bark?33³>€>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?boxìQx?®?ìQ¸=€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?buildingš™?ffæ>š™™>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?crowd??š™?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?farš™Y?®Ga?33s?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?fenceìQx?®?ìQ¸=€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?groomed…k?×£p?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?iceš™?@?fff?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?liftÍÌÌ>ÍÌÌ>ffæ>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?neonìQx?š™™>333?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?packedš™Y?®Ga?33s?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?pine_aÍÌL>33³>€>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?pine_bÍÌL>33³>€>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€? pine_cone ×#>š™™>®Ga>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?powderfff?…k?Ház?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?railìQx?®Ga>)\?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?rock\�Â>{®>ÍÌÌ>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?;ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€?!"ÿÿÿÿ€?€€?€€€€?€€€?#$ÿÿÿÿ€?€€?€€€€?€€€?%&ÿÿÿÿ€?€€?€€€€?€€€?'(ÿÿÿÿ€?€€?€€€€?€€€?)*ÿÿÿÿ€?€€?€€€€?€€€?+,ÿÿÿÿ€?€€?€€€€?€€€?-.ÿÿÿÿ€?€€?€€€€?€€€?/0ÿÿÿÿ€?€€?€€€€?€€€?12ÿÿÿÿ€?€€?€€€€?€€€?34ÿÿÿÿ€?€€?€€€€?€€€?56ÿÿÿÿ€?€€?€€€€?€€€?78ÿÿÿÿ€?€€?€€€€?€€€?9:ÿÿÿÿ€?€€?€€€€?€€€?;<ÿÿÿÿ€?€€?€€€€?€€€?=>ÿÿÿÿ€?€€?€€€€?€€€??@ÿÿÿÿ€?€€?€€€€?€€€?ABÿÿÿÿ€?€€?€€€€?€€€?CDÿÿÿÿ€?€€?€€€€?€€€?EFÿÿÿÿ€?€€?€€€€?€€€?GHÿÿÿÿ€?€€?€€€€?€€€?IJÿÿÿÿ€?€€?€€€€?€€€?KLÿÿÿÿ€?€€?€€€€?€€€?MNÿÿÿÿ€?€€?€€€€?€€€?OPÿÿÿÿ€?€€?€€€€?€€€?QRÿÿÿÿ€?€€?€€€€?€€€?STÿÿÿÿ€?€€?€€€€?€€€?UVÿÿÿÿ€?€€?€€€€?€€€?WXÿÿÿÿ€?€€?€€€€?€€€?YZÿÿÿÿ€?€€?€€€€?€€€?[\ÿÿÿÿ€?€€?€€€€?€€€?]^ÿÿÿÿ€?€€?€€€€?€€€?_`ÿÿÿÿ€?€€?€€€€?€€€?abÿÿÿÿ€?€€?€€€€?€€€?cdÿÿÿÿ€?€€?€€€€?€€€?efÿÿÿÿ€?€€?€€€€?€€€?ghÿÿÿÿ€?€€?€€€€?€€€?ijÿÿÿÿ€?€€?€€€€?€€€?klÿÿÿÿ€?€€?€€€€?€€€?mnÿÿÿÿ€?€€?€€€€?€€€?opÿÿÿÿ€?€€?€€€€?€€€?qrÿÿÿÿ€?€€?€€€€?€€€?stÿÿÿÿ€?€€?€€€€?€€€?uvÿÿÿÿ€?€€?€€€€?€€€?w�                                                                                                               T00_groomedMeshInstance3Dcourse/terrain.rmdlcmd#0T00_powdercourse/terrain.rmdlcmd#1T00_rockcourse/terrain.rmdlcmd#2T01_groomedcourse/terrain.rmdlcmd#3T01_powdercourse/terrain.rmdlcmd#4T01_rockcourse/terrain.rmdlcmd#5T02_groomedcourse/terrain.rmdlcmd#6T02_powdercourse/terrain.rmdlcmd#7T02_rockcourse/terrain.rmdlcmd#8T03_groomedcourse/terrain.rmdlcmd#9T03_powdercourse/terrain.rmdlcmd#10T03_rockcourse/terrain.rmdlcmd#11T04_groomedcourse/terrain.rmdlcmd#12T04_powdercourse/terrain.rmdlcmd#13T04_rockcourse/terrain.rmdlcmd#14T05_groomedcourse/terrain.rmdlcmd#15T05_powdercourse/terrain.rmdlcmd#16T05_rockcourse/terrain.rmdlcmd#17T06_groomedcourse/terrain.rmdlcmd#18T06_powdercourse/terrain.rmdlcmd#19T06_rockcourse/terrain.rmdlcmd#20T07_groomedcourse/terrain.rmdlcmd#21T07_powdercourse/terrain.rmdlcmd#22T07_rockcourse/terrain.rmdlcmd#23T08_groomedcourse/terrain.rmdlcmd#24T08_packedcourse/terrain.rmdlcmd#25T08_powdercourse/terrain.rmdlcmd#26T08_rockcourse/terrain.rmdlcmd#27T09_groomedcourse/terrain.rmdlcmd#28T09_packedcourse/terrain.rmdlcmd#29T09_powdercourse/terrain.rmdlcmd#30T09_rockcourse/terrain.rmdlcmd#31T10_groomedcourse/terrain.rmdlcmd#32T10_packedcourse/terrain.rmdlcmd#33T10_powdercourse/terrain.rmdlcmd#34T10_rockcourse/terrain.rmdlcmd#35T11_groomedcourse/terrain.rmdlcmd#36T11_packedcourse/terrain.rmdlcmd#37T11_powdercourse/terrain.rmdlcmd#38T11_rockcourse/terrain.rmdlcmd#39T12_groomedcourse/terrain.rmdlcmd#40T12_packedcourse/terrain.rmdlcmd#41T12_powdercourse/terrain.rmdlcmd#42T12_rockcourse/terrain.rmdlcmd#43T13_groomedcourse/terrain.rmdlcmd#44T13_packedcourse/terrain.rmdlcmd#45T13_powdercourse/terrain.rmdlcmd#46T13_rockcourse/terrain.rmdlcmd#47T14_groomedcourse/terrain.rmdlcmd#48T14_packedcourse/terrain.rmdlcmd#49T14_powdercourse/terrain.rmdlcmd#50T14_rockcourse/terrain.rmdlcmd#51T15_groomedcourse/terrain.rmdlcmd#52T15_packedcourse/terrain.rmdlcmd#53T15_powdercourse/terrain.rmdlcmd#54T15_rockcourse/terrain.rmdlcmd#55T16_groomedcourse/terrain.rmdlcmd#56T16_packedcourse/terrain.rmdlcmd#57T16_powdercourse/terrain.rmdlcmd#58T16_rockcourse/terrain.rmdlcmd#59T17_groomedcourse/terrain.rmdlcmd#60T17_packedcourse/terrain.rmdlcmd#61T17_powdercourse/terrain.rmdlcmd#62T17_rockcourse/terrain.rmdlcmd#63T18_groomedcourse/terrain.rmdlcmd#64T18_packedcourse/terrain.rmdlcmd#65T18_powdercourse/terrain.rmdlcmd#66T18_rockcourse/terrain.rmdlcmd#67T19_groomedcourse/terrain.rmdlcmd#68T19_packedcourse/terrain.rmdlcmd#69T19_powdercourse/terrain.rmdlcmd#70T19_rockcourse/terrain.rmdlcmd#71T20_groomedcourse/terrain.rmdlcmd#72T20_powdercourse/terrain.rmdlcmd#73T20_rockcourse/terrain.rmdlcmd#74T21_groomedcourse/terrain.rmdlcmd#75T21_icecourse/terrain.rmdlcmd#76T21_packedcourse/terrain.rmdlcmd#77T21_powdercourse/terrain.rmdlcmd#78T21_rockcourse/terrain.rmdlcmd#79T22_groomedcourse/terrain.rmdlcmd#80T22_icecourse/terrain.rmdlcmd#81T22_packedcourse/terrain.rmdlcmd#82T22_powdercourse/terrain.rmdlcmd#83T22_rockcourse/terrain.rmdlcmd#84T23_groomedcourse/terrain.rmdlcmd#85T23_powdercourse/terrain.rmdlcmd#86T23_rockcourse/terrain.rmdlcmd#87T24_groomedcourse/terrain.rmdlcmd#88T24_powdercourse/terrain.rmdlcmd#89T24_rockcourse/terrain.rmdlcmd#90T25_groomedcourse/terrain.rmdlcmd#91T25_packedcourse/terrain.rmdlcmd#92T25_powdercourse/terrain.rmdlcmd#93T25_rockcourse/terrain.rmdlcmd#94T26_groomedcourse/terrain.rmdlcmd#95T26_packedcourse/terrain.rmdlcmd#96T26_powdercourse/terrain.rmdlcmd#97T26_rockcourse/terrain.rmdlcmd#98T27_groomedcourse/terrain.rmdlcmd#99T27_packedcourse/terrain.rmdlcmd#100T27_powdercourse/terrain.rmdlcmd#101T27_rockcourse/terrain.rmdlcmd#102T28_groomedcourse/terrain.rmdlcmd#103T28_packedcourse/terrain.rmdlcmd#104T28_powdercourse/terrain.rmdlcmd#105T28_rockcourse/terrain.rmdlcmd#106T29_groomedcourse/terrain.rmdlcmd#107T29_packedcourse/terrain.rmdlcmd#108T29_powdercourse/terrain.rmdlcmd#109T29_rockcourse/terrain.rmdlcmd#110T30_groomedcourse/terrain.rmdlcmd#111T30_packedcourse/terrain.rmdlcmd#112T30_powdercourse/terrain.rmdlcmd#113T30_rockcourse/terrain.rmdlcmd#114T31_groomedcourse/terrain.rmdlcmd#115T31_packedcourse/terrain.rmdlcmd#116T31_powdercourse/terrain.rmdlcmd#117T31_rockcourse/terrain.rmdlcmd#118T32_groomedcourse/terrain.rmdlcmd#119T32_packedcourse/terrain.rmdlcmd#120T32_powdercourse/terrain.rmdlcmd#121T32_rockcourse/terrain.rmdlcmd#122T33_groomedcourse/terrain.rmdlcmd#123T33_packedcourse/terrain.rmdlcmd#124T33_powdercourse/terrain.rmdlcmd#125T33_rockcourse/terrain.rmdlcmd#126T34_groomedcourse/terrain.rmdlcmd#127T34_powdercourse/terrain.rmdlcmd#128T34_rockcourse/terrain.rmdlcmd#129T35_groomedcourse/terrain.rmdlcmd#130T35_packedcourse/terrain.rmdlcmd#131T35_powdercourse/terrain.rmdlcmd#132T35_rockcourse/terrain.rmdlcmd#133T36_groomedcourse/terrain.rmdlcmd#134T36_packedcourse/terrain.rmdlcmd#135T36_powdercourse/terrain.rmdlcmd#136T36_rockcourse/terrain.rmdlcmd#137T37_groomedcourse/terrain.rmdlcmd#138T37_powdercourse/terrain.rmdlcmd#139T37_rockcourse/terrain.rmdlcmd#140T38_groomedcourse/terrain.rmdlcmd#141T38_powdercourse/terrain.rmdlcmd#142T38_rockcourse/terrain.rmdlcmd#143T39_groomedcourse/terrain.rmdlcmd#144T39_powdercourse/terrain.rmdlcmd#145T39_rockcourse/terrain.rmdlcmd#146T40_groomedcourse/terrain.rmdlcmd#147T40_powdercourse/terrain.rmdlcmd#148T40_rockcourse/terrain.rmdlcmd#149T41_groomedcourse/terrain.rmdlcmd#150T41_powdercourse/terrain.rmdlcmd#151T41_rockcourse/terrain.rmdlcmd#152T42_groomedcourse/terrain.rmdlcmd#153T42_powdercourse/terrain.rmdlcmd#154T42_rockcourse/terrain.rmdlcmd#155T00_farcourse/terrain.rmdlcmd#156T01_farcourse/terrain.rmdlcmd#157T02_farcourse/terrain.rmdlcmd#158T03_farcourse/terrain.rmdlcmd#159T04_farcourse/terrain.rmdlcmd#160T05_farcourse/terrain.rmdlcmd#161T06_farcourse/terrain.rmdlcmd#162T07_farcourse/terrain.rmdlcmd#163T08_farcourse/terrain.rmdlcmd#164T09_farcourse/terrain.rmdlcmd#165T10_farcourse/terrain.rmdlcmd#166T11_farcourse/terrain.rmdlcmd#167T12_farcourse/terrain.rmdlcmd#168T13_farcourse/terrain.rmdlcmd#169T14_farcourse/terrain.rmdlcmd#170T15_farcourse/terrain.rmdlcmd#171T16_farcourse/terrain.rmdlcmd#172T17_farcourse/terrain.rmdlcmd#173T18_farcourse/terrain.rmdlcmd#174T19_farcourse/terrain.rmdlcmd#175T20_farcourse/terrain.rmdlcmd#176T21_farcourse/terrain.rmdlcmd#177T22_farcourse/terrain.rmdlcmd#178T23_farcourse/terrain.rmdlcmd#179T24_farcourse/terrain.rmdlcmd#180T25_farcourse/terrain.rmdlcmd#181T26_farcourse/terrain.rmdlcmd#182T27_farcourse/terrain.rmdlcmd#183T28_farcourse/terrain.rmdlcmd#184T29_farcourse/terrain.rmdlcmd#185T30_farcourse/terrain.rmdlcmd#186T31_farcourse/terrain.rmdlcmd#187T32_farcourse/terrain.rmdlcmd#188T33_farcourse/terrain.rmdlcmd#189T34_farcourse/terrain.rmdlcmd#190T35_farcourse/terrain.rmdlcmd#191T36_farcourse/terrain.rmdlcmd#192T37_farcourse/terrain.rmdlcmd#193T38_farcourse/terrain.rmdlcmd#194T39_farcourse/terrain.rmdlcmd#195T40_farcourse/terrain.rmdlcmd#196T41_farcourse/terrain.rmdlcmd#197T42_farcourse/terrain.rmdlcmd#198accentÃõ(?ìQx?\�B>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?archìQx?®Ga>)\?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?bannerfff?ÍÌL>?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?bark?33³>€>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?boxìQx?®?ìQ¸=€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?buildingš™?ffæ>š™™>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?crowd??š™?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?farš™Y?®Ga?33s?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?fenceìQx?®?ìQ¸=€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?groomed…k?×£p?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?iceš™?@?fff?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?liftÍÌÌ>ÍÌÌ>ffæ>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?neonìQx?š™™>333?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?packedš™Y?®Ga?33s?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?pine_aÍÌL>33³>€>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?pine_bÍÌL>33³>€>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€? pine_cone ×#>š™™>®Ga>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?powderfff?…k?Ház?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?railìQx?®Ga>)\?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?rock\�Â>{®>ÍÌÌ>€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?Çÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€?!"ÿÿÿÿ€?€€?€€€€?€€€?#$ÿÿÿÿ€?€€?€€€€?€€€?%&ÿÿÿÿ€?€€?€€€€?€€€?'(ÿÿÿÿ€?€€?€€€€?€€€?)*ÿÿÿÿ€?€€?€€€€?€€€?+,ÿÿÿÿ€?€€?€€€€?€€€?-.ÿÿÿÿ€?€€?€€€€?€€€?/0ÿÿÿÿ€?€€?€€€€?€€€?12ÿÿÿÿ€?€€?€€€€?€€€?34ÿÿÿÿ€?€€?€€€€?€€€?56ÿÿÿÿ€?€€?€€€€?€€€?78ÿÿÿÿ€?€€?€€€€?€€€?9:ÿÿÿÿ€?€€?€€€€?€€€?;<ÿÿÿÿ€?€€?€€€€?€€€?=>ÿÿÿÿ€?€€?€€€€?€€€??@ÿÿÿÿ€?€€?€€€€?€€€?ABÿÿÿÿ€?€€?€€€€?€€€?CDÿÿÿÿ€?€€?€€€€?€€€?EFÿÿÿÿ€?€€?€€€€?€€€?GHÿÿÿÿ€?€€?€€€€?€€€?IJÿÿÿÿ€?€€?€€€€?€€€?KLÿÿÿÿ€?€€?€€€€?€€€?MNÿÿÿÿ€?€€?€€€€?€€€?OPÿÿÿÿ€?€€?€€€€?€€€?QRÿÿÿÿ€?€€?€€€€?€€€?STÿÿÿÿ€?€€?€€€€?€€€?UVÿÿÿÿ€?€€?€€€€?€€€?WXÿÿÿÿ€?€€?€€€€?€€€?YZÿÿÿÿ€?€€?€€€€?€€€?[\ÿÿÿÿ€?€€?€€€€?€€€?]^ÿÿÿÿ€?€€?€€€€?€€€?_`ÿÿÿÿ€?€€?€€€€?€€€?abÿÿÿÿ€?€€?€€€€?€€€?cdÿÿÿÿ€?€€?€€€€?€€€?efÿÿÿÿ€?€€?€€€€?€€€?ghÿÿÿÿ€?€€?€€€€?€€€?ijÿÿÿÿ€?€€?€€€€?€€€?klÿÿÿÿ€?€€?€€€€?€€€?mnÿÿÿÿ€?€€?€€€€?€€€?opÿÿÿÿ€?€€?€€€€?€€€?qrÿÿÿÿ€?€€?€€€€?€€€?stÿÿÿÿ€?€€?€€€€?€€€?uvÿÿÿÿ€?€€?€€€€?€€€?wxÿÿÿÿ€?€€?€€€€?€€€?yzÿÿÿÿ€?€€?€€€€?€€€?{|ÿÿÿÿ€?€€?€€€€?€€€?}~ÿÿÿÿ€?€€?€€€€?€€€?€ÿÿÿÿ€?€€?€€€€?€€€?�‚ÿÿÿÿ€?€€?€€€€?€€€?ƒ„ÿÿÿÿ€?€€?€€€€?€€€?…†ÿÿÿÿ€?€€?€€€€?€€€?‡ˆÿÿÿÿ€?€€?€€€€?€€€?‰Šÿÿÿÿ€?€€?€€€€?€€€?‹Œÿÿÿÿ€?€€?€€€€?€€€?�Žÿÿÿÿ€?€€?€€€€?€€€?��ÿÿÿÿ€?€€?€€€€?€€€?‘’ÿÿÿÿ€?€€?€€€€?€€€?“”ÿÿÿÿ€?€€?€€€€?€€€?•–ÿÿÿÿ€?€€?€€€€?€€€?—˜ÿÿÿÿ€?€€?€€€€?€€€?™šÿÿÿÿ€?€€?€€€€?€€€?›œÿÿÿÿ€?€€?€€€€?€€€?�žÿÿÿÿ€?€€?€€€€?€€€?Ÿ ÿÿÿÿ€?€€?€€€€?€€€?¡¢ÿÿÿÿ€?€€?€€€€?€€€?£¤ÿÿÿÿ€?€€?€€€€?€€€?¥¦ÿÿÿÿ€?€€?€€€€?€€€?§¨ÿÿÿÿ€?€€?€€€€?€€€?©ªÿÿÿÿ€?€€?€€€€?€€€?«¬ÿÿÿÿ€?€€?€€€€?€€€?­®ÿÿÿÿ€?€€?€€€€?€€€?¯°ÿÿÿÿ€?€€?€€€€?€€€?±²ÿÿÿÿ€?€€?€€€€?€€€?³´ÿÿÿÿ€?€€?€€€€?€€€?µ¶ÿÿÿÿ€?€€?€€€€?€€€?·¸ÿÿÿÿ€?€€?€€€€?€€€?¹ºÿÿÿÿ€?€€?€€€€?€€€?»¼ÿÿÿÿ€?€€?€€€€?€€€?½¾ÿÿÿÿ€?€€?€€€€?€€€?¿Àÿÿÿÿ€?€€?€€€€?€€€?ÁÂÿÿÿÿ€?€€?€€€€?€€€?ÃÄÿÿÿÿ€?€€?€€€€?€€€?ÅÆÿÿÿÿ€?€€?€€€€?€€€?ÇÈÿÿÿÿ€?€€?€€€€?€€€?ÉÊÿÿÿÿ€?€€?€€€€?€€€?ËÌÿÿÿÿ€?€€?€€€€?€€€?ÍÎÿÿÿÿ€?€€?€€€€?€€€?ÏÐÿÿÿÿ€?€€?€€€€?€€€?ÑÒÿÿÿÿ€?€€?€€€€?€€€?ÓÔÿÿÿÿ€?€€?€€€€?€€€?ÕÖÿÿÿÿ€?€€?€€€€?€€€?רÿÿÿÿ€?€€?€€€€?€€€?ÙÚÿÿÿÿ€?€€?€€€€?€€€?ÛÜÿÿÿÿ€?€€?€€€€?€€€?ÝÞÿÿÿÿ€?€€?€€€€?€€€?ßàÿÿÿÿ€?€€?€€€€?€€€?áâÿÿÿÿ€?€€?€€€€?€€€?ãäÿÿÿÿ€?€€?€€€€?€€€?åæÿÿÿÿ€?€€?€€€€?€€€?çèÿÿÿÿ€?€€?€€€€?€€€?éêÿÿÿÿ€?€€?€€€€?€€€?ëìÿÿÿÿ€?€€?€€€€?€€€?íîÿÿÿÿ€?€€?€€€€?€€€?ïðÿÿÿÿ€?€€?€€€€?€€€?ñòÿÿÿÿ€?€€?€€€€?€€€?óôÿÿÿÿ€?€€?€€€€?€€€?õöÿÿÿÿ€?€€?€€€€?€€€?÷øÿÿÿÿ€?€€?€€€€?€€€?ùúÿÿÿÿ€?€€?€€€€?€€€?ûüÿÿÿÿ€?€€?€€€€?€€€?ýþÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?  ÿÿÿÿ€?€€?€€€€?€€€?  ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€?ÿÿÿÿ€?€€?€€€€?€€€? ÿÿÿÿ€?€€?€€€€?€€€?!"ÿÿÿÿ€?€€?€€€€?€€€?#$ÿÿÿÿ€?€€?€€€€?€€€?%&ÿÿÿÿ€?€€?€€€€?€€€?'(ÿÿÿÿ€?€€?€€€€?€€€?)*ÿÿÿÿ€?€€?€€€€?€€€?+,ÿÿÿÿ€?€€?€€€€?€€€?-.ÿÿÿÿ€?€€?€€€€?€€€?/0ÿÿÿÿ€?€€?€€€€?€€€?12ÿÿÿÿ€?€€?€€€€?€€€?34ÿÿÿÿ€?€€?€€€€?€€€?56ÿÿÿÿ€?€€?€€€€?€€€?78ÿÿÿÿ€?€€?€€€€?€€€?9:ÿÿÿÿ€?€€?€€€€?€€€?;<ÿÿÿÿ€?€€?€€€€?€€€?=>ÿÿÿÿ€?€€?€€€€?€€€??@ÿÿÿÿ€?€€?€€€€?€€€?ABÿÿÿÿ€?€€?€€€€?€€€?CDÿÿÿÿ€?€€?€€€€?€€€?EFÿÿÿÿ€?€€?€€€€?€€€?GHÿÿÿÿ€?€€?€€€€?€€€?IJÿÿÿÿ€?€€?€€€€?€€€?KLÿÿÿÿ€?€€?€€€€?€€€?MNÿÿÿÿ€?€€?€€€€?€€€?OPÿÿÿÿ€?€€?€€€€?€€€?QRÿÿÿÿ€?€€?€€€€?€€€?STÿÿÿÿ€?€€?€€€€?€€€?UVÿÿÿÿ€?€€?€€€€?€€€?WXÿÿÿÿ€?€€?€€€€?€€€?YZÿÿÿÿ€?€€?€€€€?€€€?[\ÿÿÿÿ€?€€?€€€€?€€€?]^ÿÿÿÿ€?€€?€€€€?€€€?_`ÿÿÿÿ€?€€?€€€€?€€€?abÿÿÿÿ€?€€?€€€€?€€€?cdÿÿÿÿ€?€€?€€€€?€€€?efÿÿÿÿ€?€€?€€€€?€€€?ghÿÿÿÿ€?€€?€€€€?€€€?ijÿÿÿÿ€?€€?€€€€?€€€?klÿÿÿÿ€?€€?€€€€?€€€?mnÿÿÿÿ€?€€?€€€€?€€€?opÿÿÿÿ€?€€?€€€€?€€€?qrÿÿÿÿ€?€€?€€€€?€€€?stÿÿÿÿ€?€€?€€€€?€€€?uvÿÿÿÿ€?€€?€€€€?€€€?wxÿÿÿÿ€?€€?€€€€?€€€?yzÿÿÿÿ€?€€?€€€€?€€€?{|ÿÿÿÿ€?€€?€€€€?€€€?}~ÿÿÿÿ€?€€?€€€€?€€€?€ÿÿÿÿ€?€€?€€€€?€€€?�‚ÿÿÿÿ€?€€?€€€€?€€€?ƒ„ÿÿÿÿ€?€€?€€€€?€€€?…†ÿÿÿÿ€?€€?€€€€?€€€?‡ˆÿÿÿÿ€?€€?€€€€?€€€?‰Šÿÿÿÿ€?€€?€€€€?€€€?‹Œÿÿÿÿ€?€€?€€€€?€€€?�Žÿÿÿÿ€?€€?€€€€?€€€?�meshMeshInstance3Drider/parts/Beanie.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/Board.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/BootL.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/BootR.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/HandL.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/HandR.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/Head.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/LowerArmL.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/LowerArmR.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/LowerLegL.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/LowerLegR.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/Pelvis.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/Torso.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/UpperArmL.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/UpperArmR.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/UpperLegL.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?meshMeshInstance3Drider/parts/UpperLegR.gltf#0rider€?€?€?€?€?€?€?€??€?€?€?€?À?€?€?€?€?€?€??€?€?€?€?€?€?€?ff¦?ÈBÈC€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?ÿÿÿÿ€?€€?€€€€?€€€?D00_archD00_arch—�Á¾Á7¿Æm˜À—�Acîî@ÖVLÀÌ—�ÁÖVL@¾Á7¿—�AÆm˜@cîî@† Ì~  õÿ3ÌÌ 878756ÌÌÌÀQ56578¶�ž‹Ú‹°µ‰äãö(ôѶ  Ա汲ŸÄóŸçS±²ŸçŸÂóæ  ±ÔªäãöÑÑô(Z�ž‹°µ°ÿóó‹ÚÖÀ33öÿ àÐðÐàÌÌÌÀ#   ":9:7:3:5878;:?::9:5:5:7:9:;:=::9:7:7:7:9:;:;::9:9:7:9:9:9:;::9:9:;:9:9:9:7::7:;:;:;:9:7:7::5:=:=:;:9:7:5::7:;:?:;878ÿóó5:3:ŠéêéêéÀ33êéêéꪪj �À°ð°À°�À°ð°�À °ÀðÀ°À °ÀðÀ°À °ÀðÀ  °ÀðÀ°À °ÀðÀ   °ÀðÀ  °ÀðÀ  °ÀðÀÀÀó ØæåæåóÌ æåæåæåUUU3Ì Ì“”–“”Ö” ÌÀÌ“”–“”ÖÀÌÌ ”–“•”“Ì ÌÀÕ“”“•”ÌÀÌ̓Փ”“•” Ì<“Õ“”“•ÀÌÀÌ”“Õ“”“Ì Ì•”“Õ“”<ÀÌÀ“•”“Õ“3Ì Ì”“•”“Õ“<ÀÌ”“•”“ÕÀÀÀó“(0/0/óÌ 0/0/0/ÿÿ%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%I¼» ¼­¼C¼¯¼»¼Ç¼Ì¼TZ+Y,Z…Z3Z‡\[\-ZZ¼F�E‚FÇF“FÇFEF¿ÂŒÛŸAX¹¯Á‰Ò¾Â  eªŒA‰Ò¾BòR¹ÁŒÛŸAú>¿BX¹¯Á¥�  ÌÒÐÑ ÌÍÌÎ Ì‘�’ÀˆÀÀ‹ÀÀŒÀÀˆÀ Ì}~}33ÿÿÿÿ!!—ÿ^ø£‡]x^ø?€>€¿Ð D02_fence D02_fenceÐU²Á¶Ó¡Âo ÃöƒA\à€Â•D‚ú|ºÐU²Á•D‚C¶Ó¡ÂöƒAo C\à€ÂÄ|¼ ý_3óóójij���ÌËÌçè燈‡hghø÷øiji>=>ôóôQRQOPO¦¥¦popš™šÖÕÖÝÞÝ�‚�\[\ÞÝÞ“”À3óó“ Ÿ »¼»óó󡢡!"!34ªªuWuWuS5S3317uuWwuUUUUS331&fý}3óóóýþýÉÊÉ—˜—cdc343*)*RQRxwx–•–´³´ÊÉÊÌËÌÎÍÎXWVUóÒsóV*)*'('KLKmnm‰Š‰¥¦¥»¼»ÏÐÏáâáíîí÷øóóó÷÷ø÷ìëìëìý3óóó  "!"  "!""!""!""!""!""!"$#$"!"$#$"!""!""!*"!"            óóó   ÿÿŵÆCµDrèµçaƵŃ›µœ¦µ¥£BµAøÔ³Õu€µ}ËZ³[ï³¶³ÈD³Cø©µ¬ þµýòjµißfµeãdµcåгÑy¦³¥¥ÈµÅƒ¹µº©µª ݳÜ'}µ€6iµjLc³bRmµpFCµDr^³_ë�³�ÿÿ&C&C$ C&C&C& E& E$ C&C& E& E& E& E& E!$$u&C$A$A&A&C$A&A&A$A&A&A&A$A$?&A& UUÀÀÀÄó¯ÀÀÀÀo-RÀÀÀÀŠÊüÓÀÀÀÀYPO‰ÀÀÀÀ|Ä÷±ÀÀÀÀi-RÀÀÀÀŠÊüÓÀÀÀ‡¿NUU€€€€À€€À€ÀÀ@ €€€€À€€À€ÀÀÀUUÀÀÀÃô°ÀÀÀÀp.QÀÀÀÀ‰ÉûÔÀÀÀÀZOPŠÀÀÀÀ{Ãø²ÀÀÀÀj.QÀÀÀÀ‰ÉûÔÀÀÀ|¿NUU@@@@À@@À@ÀÀ€ @@@@À@@À@ÀÀÀUUÀ€À½îÀÀÀÀ–ßZÀÀÀÀ‹1U>ÀÀÀÀÆÃ[±ÀÀÀÀXûˆÀÀÀÀíS£ÍÀÀÀÀ # ÀÀÀy‘êUU€€€€€€€ÀÀÀÀ €€€€€€€ÀÀÀrUUÀÀÀŠüéÀÀÀÀÍg9'ÀÀÀÀLx’ÀÀÀÀÙhzýÀÀÀÀn¬ÒÛÀÀÀÀ«‰? ÀÀÀÀLr˜ÀÀÀÎÛ!UU€€€€€€€€€ÀÀ@ €€€€€€€€€ÀÀÀUU3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€333€€€UU ÌÌÌÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÿÿÿÿÿÿUU ÌÌÌ~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌ}~}~}~»*ZíŒosLÛˆr€¿¿ÐD02_liftD02_liftÍÌÂ*ÉÌ‹ÇÃÕgœA”62— fà    ¬ ÍÌ— fC*ÉÌÂÕgœA‹ÇC”62¬ õ] ÌóóšÌš™ËÌ®™šÌóÌóÌš™ËÌ†š™—˜—ÍÎÚ—˜—™š™ÍÎŽÉÐfeÅfÊÊfÆe”x?0 wxwxwxwxw™ÉÐfeÅfÊÿóóÊfÆe”xwxwxÀ33ÌwxwxwžãóÀ3óäãäãäãäãäÀÌóÀã¯ãäãäã3óÀäãäãäãUU@!ÀÀXÀÄH�U)?0 *)*)*)3<@D*)*ˆóó)*)*)À33*)*)*’@!’@Ä’@%!’@ÕU? ÀóRQRçQR ÀÌóQRJRQRQÀóóÀRŸOPOPOPØ¢6P656¢Ø565H ?<.-.-.-.-ÀÌÿü.-¢6P656¢ÿÀÀóØ565H.-.-óÌ ÿ.-.-.-n­ ® ­ ¸­®— ­ ¤ ­ ¸­®º­ ® ­ ¸­®— ­ ¤ ­ ¸­®UT’€À³a€À\ Ù@’a„ó`Á óÌÌÁÂÁÂÁÁÂÁóó óÂÁÂÂÁÂÁÂÁÂÌÌóÁÁÂÁÂÁÂÕU?33 Ì"!"!"!"ó ó !"!"7  ÌÌÌÌ    ïcdcdcdcdcdc5ÌÌÌÀlklklkl 3ÿkabababaÿÌÌÌbaba5lklklÌÀ¿klk«p¬oq«rã«á¬6o­r?€¿%Ð            D03_accent D03_accent�&EÁìPÃåÄTtA–²ÑÂ3SÊÄX„�&EÁ3SÊCìPÃTtAåD–²Ñ X õ óóóÑÒÐÏÐÒÑÒÐÏóóóÌÐÒÑÒÒÑÒÐÏtuvtstvuvvuvtstvuvtstvuä5k6Ö3k6Ö5i4Ø5k6Ø5k6ÿÿØ5k6lj3kõ óóó!"   "!óóóÌ"  "!" !""!""!"$#$"!""!""!""!@888:ýÿ:U3 ÌÌ·¸·¸·¸·ÌÌÌó¸·¸·¸·õ·¸ ÌÌÌ·¸·¸·¸·ÌÌÌÿ¸·¸·¸·‚ãÆätãÆätãÆätãÆätãÆäÿÿráÆäÇÅãÈDÀÿÈüR PAR R!ÍzÝ?ÌÌÌ)**))*)*)*)*)*õ'ô2QÌÌÌÌTQP.ŠØ*Eµ‰ÛRå¶NáÄQs¾»âÿÿÑ©©½o·~UÀíõÈHHHHH{Ìüb@€0`ìˆUÀâÀÀëÕÀ=ÀÀIÒÀÀÀÀ¯†iÎÀÀ¡cUÀ"ÀÀ)À"ÀÀ gÀÀÀ@" ÀÀUÀ ÀÀÄŸÀÀÀÀÁsÀÀÀÀöüÀÀ•dUÀ ÀÀ ÀÀ <ÀÀÀ ÀÀUÀÔÀ~À}À›ÀÀÀÀžÊoÀÀþUÀ,À-À.À{ÀÀ€ ÀÀE@ÀÀàßÀÀŽiÀÀÀÀ“dBÀÀDÎDÀÀ ÀÀ/ÀÀ@€ @À U 333ÿÿÿÿÿÿÿ333Ìÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ333ÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌ3ÿÿÿÿU 333}~}~}~}333Ì~}~}~}~}3333~}~}~}~}333Ì~}~}~}~}ÌÌÌÌ~}~}~}~}Ì3~}~}U3 ÌÌÿÿÿÿÿÿÿÌÌÌóÿÿÿÿÿÿÿÿÿ ÌÌÌÿÿÿÿÿÿÿÌÌÌóÿÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3 ÿÿÿU3 ÌÌ}~}~}~}ÌÌÌó~}~}~}~}~ ÌÌÌ}~}~}~}ÌÌÌó~}~}~}~}~3333}~}~}~}~3 }~} *ÿ�ïëÝ•i€?€?€¿‰Ð D03_banner D03_banner^�Á6[ à ¬Ä÷u¾A‡vá‚ ØÃ`@`^�Á‚ ØC6[ Ã÷u¾A ¬D‡vá½@µ U ó³óËÊËÌÌËÊËÌÌó³LÎËÊËÌÌË̳óÌóÌËÊËÌÎËÊËÌÌóóÌëš�š™ “”‘U ó3óGHGHHGHGHÌó3 JIJIJHGH3óÌóJIJIJHGHGHÌó³ U óóóGÂGHyHGÂGHÌóóÌ1GÂGHyHGzHóóÌóyHGÂGH1GÂGHÌóóÌgÒwÔÓÀЉZŠP’@€À@éU3 ÌÌíîíîíîíó Ìóîíîíîíîíî Ìó íîíîíîíó Œó)>=>>=>=U3 ÌÌ$#$#$#$ó Ìó#$#$#$#$# Ìó $#$#$#$ó Œó`UÀÀÀÀÀÀÀÀÀÀÀÀÀÀ­³UÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ UÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ™·UÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀUÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀš¸UÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀUÀÀÀÀÀÀÀÀÀÀÀÀÀÀ­³UÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ U 3ÿÿÿÌ3ÿÿÿÿ33ÿÿÿÿÌ3ÿÿÿÿUó3}~}~}ÀóÌ~}~}~}À 3~}~}ÀóÌ~}~}~}U3 ÌÌ€€ÿ€€3 Ìó€€ÿ€€ÌÌó €€€ÿ€€3 ó€€ÿÿÿÿ@Has=Ctl²�û~€?@?€¿eÐD03_liftD03_liftÍÌÂ@¤ÃoÍÄcî¾A±¢Âc^³Ã   PÀPÍÌÂc^³C@¤Ãcî¾AoÍD±¢Â¸À° Õ×UÀÌ 21¾0 Ìóó/Œ‹�Ž�åæÌÌóÌnŽäŽ�ãäyŽ��Ž�ãäý�Ž��Ž�ãä»»è^]�\,¼¼\ÿ?0 �]þ-.-.-.3?ÿ-.-.Ÿ‰»è^]�\,¼¼\�]þ-.-.-À33.-.-.ó ÀÌÒÑÒÑÒÑóÀó ÒÑÒÑ…ÒÑÒÀÌóÀÑÒÑÒÑÒÑUUU@Œ·È@!ÀÀ„aÀaÄH�?0 '('('(3>'('(Dˆóó'('('À33('('(@á%@„’@UUý3Ì<�Ž�ŽÌ‹Œ‹ÀÌóÀŒJIJIJÌ ÀÌ«JIJ[JóÀóóIJIJ@IJIJIÀÏÿÏJÉ”2v212’Æ1ü ?21BVUVUVU<ÀÏ?VUVUÔ¨0üÿÀÀ/0”Ä/0/BTóóÌ STSTSTSTSY 8 K8 7 87B8 7 8 -87# 8 K8 7 87B8 7 8 -87TÈa€m@ÀðÀD ÇÌó3ó,±²±²±²±¯° óÌó¯°¯°²±²±²3ó ó±²±¯°¯°¯°UÛþ ÿüÏ\[\[\[\[\[\ÿó Ì[\[\!12121ó3 ó212121ä12 ÌÌÌ121212121)CDCDCDCDCÿ`� � � DCÀ Ï ¼YZYZYZYZYZY  � � ácZfÚ\dYd\É[À\f[ec\d \É[ncZfÚ\dYd\É[À\f[ec\d \É[U[V ÿüÏ,+,+,+,+,+,ÿó Ì+,+,ó3 óã ÌÌÌ3bababababÿ@0@0@0abÀ ÏNXWXÿÿLÌWXWXWXWX0@0@0Ìó3ó%��������� óÌó���������3ó ó���������UUU@€ÀÀÀK”IÀÀÀÀI”IIÀÀÀÀ”II”ÀŒ ÌIsästÌ ãr0‹��ÌÌÀã��䎀À€@ÀÀÀÀ¨+{¨ÀÀÀÀ+{¨+ÀÀÀÀ{¨+{UUUÀÀ ÿÿÿ ÀÀÀÿ#¹¡ÀÀÀÀ£¹¡£ÀÀÀÀ¹¡£¹ÀÌ Ì¡ÿ ¾ ŸÌ ½`ÿ 0ýþ¢Ÿ ÌÌÀ¾ Ÿ½`À@ÀÀÿýþÀÀÀÀ(ˆ¯(ÀÀÀÀˆ¯(ˆÀÀÀÀ¯(ˆ¯UUUH$€ÀÀMNÀÀÀMNMÀÀNMÀÌÀÌNcW‹äW ¸<Ǥ£k ÀÀÀï£È@@ÀÀÀÀuã£wÀÀÀÀã£wãÀÀÀÀ£wã£UUU3Ì<ÿÿÿÿÿÿÿÀÀÀÿܤÀÀÀ£¤£ÀÀ¤£ÀÌÀ̤ÿ£¹¡£  ]ÿ <þ^¤£¹ ÀÀ€¡£]ÀÀÿþÀÀÀÀRÖ%¯ÀÀÀÀÖ%¯ÖÀÀÀÀ%¯Ö%UUU!„@ÀÀLMÀÀÀNMNÀÀMNÀŒÀÌML—LL IABBAÌì¶òÑÒnáÔ½lÌ3ÌÌaPÑÒpáÔ»ÌÍÍÍlaPÑÔpßÔÜÌ3̹naPÓÔnßÌÍÃ<Ò»naRÓÔnÌÌÌÌßÒ»ncR•ÀÌÌÌϘgÇEŽ[¬ ½<ÌÌ̾Šws_†W”ÜîîÌïÔfÝλn_Ã>ÌÎPÓÔhÝйnÜÀÀ@aRp@À@@óÌÌGHù‡' ÌÏ>ìÌ„ƒ§ ÀUUUU ÌÌÌl¥GOgÇ<ÌÌ�kl§=QÌ3ÌÌe…kl§=ÌÌÌÌQe…kl§=ÌÌ3ÌQe…kl§ÌÌÃ<=Qe…kl§ÌÌÌÌ=Qe…klÌÌÌÃ¥ =Qe…k<ÌÌÌl¥ =Qe…ÌÌÌÌkl§=QeÃ<ÌÌ…kl§=QÌÀ€Àe…»ÿÀþ€ÀÀÿþóÌÌÂkl¥eÌÏ<ÌGg{kl«=UUUU ÌÌÌ ä]ƒvŒ Ï=ÌÌõ¼®­ƒWÉФÌ3ÌÌÏû®­…WÉÐÌÍÎ̤Ïû®«…YÉÎÌ3ÌФÑû¬­�YÌÎÓ<ÉЦÑý®«ƒÌÌÎÌYÉЦÏÿåUÌÌÌφ_»ÊÉwñ5z<ÌÌÌyÌaÁÊß‘ÿÌÜÌÞ¯{[ÉάÓÃ<Ìíþ°­[ÉΨÎÀ@ÏþÀ@@À@óÌÌo øÆ¢PÌÏ=ÌÜ›ïs`_Vt UUUU ÌÌÌyglhÏ<ÌÌuelbÌ3ÌÌuelÌÌÌÌbueÌÌ3ÌlbueÌÌÃ<lbuÌÌÌÌelbÌÌÌÃueld <ÌÌÌueld ÌÌÌÌuelbÃ<ÌÌuelbÌÀÀþ€ÀÿÀ€ÀþÿóÌŒ0‹glÌÏ<ÈpsgUUUUÌÌÌÿ€€@@@Ì ÌÌ@ÿÿ€€@@ÌÀÌÌ@@ÿÿ€€@ÌÌ Ì@@@ÿÿ€€ÌÌÀÌ@@@@ÿÿ€ÌÌÌ €@@@@ÿÿÌÌÌÀ€€@@@@ÿÌÌÌÌÿ€€@@@@ÿ ÌÌÌÿ€€@@@@ÀÌÌÌÿÿ€€@@@Ì ÌÌ@ÿÿ€€@@Ìó33@@ÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3ÌÌÿÿÿ€€@ÌÌ Ì@@@ÿÿ€€UUUU À€{|<}|{|óÀ€}|{|Ì{|óÀ}|{|€<}|{|L{À€|}|<{|LÀ€{|<}|{|ó33}~}~}~}3333~}~}~}~}3333~}~}~}~}33À€~}|{|<}|{|ÿÿÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ÌÌÌ}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~Ì}~ÿÿÿÒw5wÌwtwYwZxTw$y~yÔw5wÌwtwYwZxTw"w|wÔw5yÎwtw[w\xRw$w~wÔw7wÎwrw]w^Êw$w~wÔw7uÌwrw]w^Êw$w€wÖw5wÊwpwYw\xRw$w|uÔw7wÌwtw[w\Êw$w~yÔw5wÌwtwYwZÎy"w|wÒw5yÐwtwYwXÎw"wxwÒw5wÎwxyYwZÎw w|wÒw7wÎwvw»¼óÀ3»¼»¼»¼3óó»¼^»¼»¼»À33¼»¼»¼UUUÜ€HÄÈŒ@Œ€\ÄÜ-ÜÙÄÈŒ@Œ€ÄÜ-ÈÙÔ È,@Œ€óóÀ33óóÀ33ÿÿÿS`S¢S¶SS=T2SSSS`S¤S¸SlSWTLSS5US`SÀUàS`S_¨SS?S S`SÆSèS~S}ÆS;SkS)UbSäSëS4SSVFSS-SSbS¸SØUPSO˜S U)SS`S¸SÔS*S)rSS S*S`S’UžSSZS0S*S@S`QxS~S "S!hS"US2S`SˆS’SÀóóÌ€€€€ ÀÀó€€€óÌ €€€ªªª¼¼¼¼ ¼¼¼¼¼¼ ¼¼ºšœ¼ ¼º¼¼šœÀ¼¼Ü¼¼¼œÁœº¼¼¼¼š* *¼¼¼¼¼¼À¼¼¼¼¼¼¼À¼¼¼¼¼¼¼À¼¼ºššœ¼Áœº¼¼¼ššð‹€a’HÀ€aŒ’HÿÿÿijiØe}gpgohpgg±ighgÚi{gl³m´n³F³cµF³´³Ûµ1³<öO÷Rö¸øö¸ø÷ø¥öøJ)Gr)'·))*)r)õ'#ZCZoZóZoZYZCZ@ZˆW X7Ù7 vçZ0[,0‰.Ö.‡0/0*.Î.~J}4JÇJˆJÇHGH6JäJˆE‡ÎEAE÷GAEFEÐGyE„eƒêeeÏeghgêeceïZÌÌÌYZYZYZÀÌÌÌYZYZYZÌÀYZYª¯ªI©ùùi|iK)I©ùû‹Z‹I)KËùùm^m�o�íÿý   ÿm^m�M�íýýÕý�M�íýýuç''‡ç÷5£SC£ãUÅ5eÅõððl$ÌÌÌ#$#$#$ÀÌÌÌ#•$#$#$ÌÀ#$#UUUÌÌÌÌpJ„Ъ©—cÌÌÌÌîpJ„ЗðLŒÌÌÌãr¢Žô‹—ÌÌÌÏø¡g ËÛåÍ<ÌÌÌÁ¤@ª:³QóÌÌ̃;‰äÌÌÌÌ\BþY”RñÌóÌÌ”R%úù‡áÌÏ<Ìà”¦('GÐûÌÌóÌ/‘`Ök?@/¥ÌÌÏ<ÎjiVMqôÌÌÌÀÀr/¾TøRÀ@@À@@UUUÌÌÌÌMgƒkl«ÌÌÌÌ=Mgƒkl«ÌÌÌÌ=MgƒilÌÌÌçSIgi<ÌÌÌj§WGg³ÌÌÌij£o"GeÌÌÌÌ{ml©OKÌsÌÌgij§MÌÇ<ÌKg�kl« -ÌÌsÌMg‡mn¯ÌÌÃ< Og�kl«ÌÌÌÀ'Mg‹¹€ÀÀÿþ€ÀÿÀþUUUÎÌÌ܇,¬ò`_TvÌìÌÌ ‡.ªòÄ�ÄÌÌÌr‡¬õÿåŸÌÌÌÏNžPÔD¢õ‚¡<ÌÌ̢Ţd² ùóÌÌÌ£EF­èÌ3ÌÌÌÌëMRî”>ü¼ÌóÌÌ÷¿%�:ûÌÏ<ÌBãúd65}ZCÌÌóÌ'ÿÊÆ[\?€¿µÐ                                                                                                                                                D04_boxD04_box7‰JÁ‹0Ã╠Ī`>ÁH0.Ã7•Äœfœ7‰JÁ7•D‹0ê`>Áâ• DH0.Ãùfñ U?3Ìÿ†/…†…0†/0†/óÌ?3…†…0††/…†…Ì?3Ì0†ˆ1…†…0ˆ?3Ìÿ†1…†…2†12†/óÌÿ<‡ˆ‡2††/…†…0†/0†/…†…0†1/<À02/ª ü ð°ÿßlklklíðÐ þ klðÐ þ ð°kjk ü ðÐÿßlilklíðÐßíðklkÐÿ¿Ë ð°ÿlklkjl<ÀkilU?3ÌÿÃÄÃÄÃóÌ?3ÄÃÌ?3ÌÄÅÄ?3ÌÿÃÆÃÄÃóÌÿ<ÄÃÄÃÄÃÄÆÃ<ÀÄÅÃU73 m@=>=@@óŒ73?@?@@?@?Œ73Œ@@?@?@73Œm@?@?@@óŒß8?@?@@?@?ÆÏ8È@>?@?>}ÌóÌ,+,+,+y¦{)z,+y*)Љ*Œ+‰*)Š,+=>,=+>,+=,ÀÌóÌ+,+,+,+(-,+.-.-.-< Ï<.-.+.-,*Ë0++,ÿ)*«)¬*«¬)«¬)�+®*«¬)­®)*­)®*­®)­®+,­+®,­®+­®)*­)®*­®)­®)ƒ'¬*­®)«‚�)¬*«¬)«¬)�)¬*«¬)«­Ë0¬¬«U@€@€@€@€@€@„UÀÀÀ3$ÀÀÀÀ3 /ÀÀÀÀ$3ÀÀÀÀ$3$ÀÀÌ 3$3 $3 UÀÀÀü úÀÀÀÀü úüÀÀÀÀ úü ÀÀÀÀúü úÀÀÌ ü úü úü ö UÀÀÀK ÂÀÀÀÀµ y†ÀÀÀÀ Œ ÀÀÀÀXK XÀÀÌ K XK XK UÀÀÀ# .ÀÀÀÀ# 0%ÀÀÀÀ .# ÀÀÀÀ.# .ÀÀÌ # .# .# ÿ UÀÀÀÅÂÀÀÀÀ]eÄÚÀÀÀÀ^Ä)“ÀÀÀÀ¾ÅÀÀÀÌ ÉÀà ¾ÅÐ UÀÀÀØ2öÀÀÀÀØ2öÖÀÀÀÀ4öØ2ÀÀÀÀöØ2öÀÀÌ Ø2öØ2 öØ2ÿ UÀÀ€¾ÁÀÀÀÀÂa_ÆÀÀÀÀbÚ¾�ÀÀÀ-¾ÁÀÀÌ ÂÅÂÁ ¾Á UÀÀÀö2ØÀÀÀÀö2ØöÀÀÀÀ4Öö2ÀÀÀÀØö2ØÀÀÌ ö2Øö2 Øö2Î U 3Ì3ÿÿÿÿÿÿÿ3ÌÌ3ÿÿÿÿÿÿÿÿÌÌ3ÌÿÿÿÿÿÿÿÿÌ3Ì3ÿÿÿÿÿÿÿÿ3Ìó<ÿÿÿÿÿÿÿÿÿÃ3<Ãÿÿÿÿÿÿÿÿ<ÀÿÿÿU 3Ì3}~}~}~}3ÌÌ3~}~}~}~}ÌÌ3Ì~}~}~}~}Ì3Ì3~}~}~}~}3Ìó<~}~}~}~}~Ã3<Ã}~}~}~}~<À}~}UÌóÀefefefÌóÀÌefefefefóÀÌóefefefefeÀÌóÀfefefefÌóÌÏefefefefef< Ï0efefefeÏ0fefeUÌóÀghghghÌóÀÌghghghghóÀÌóghghghghgÀÌóÀhghghghÌóÌÏghghghghgh< Ï0ghghghgÏ0hghgU3ÌóÀÿÿghghg—ÌóÀ̘hghg—˜hóóÌóghg—ÿÿ˜hghgóÌóÌh€ghghgè€ÌóÌϘhghgWXhgh<ÌÏ0gW@hghgÏ0hghgUÈaÌ}ÈaóÈzy�‚zaÀÈaûüÀÈaÈûüûÈăúùú †ùú†ÿÿbÿÿ–ÿ©{}„€?€?€¿¡Ð("$ D04_crowd D04_crowd}ЫÁ  *Ã]Ä}ЫARÉà O Ĭ°¬}ЫÁ O D  *Ã}ЫA]DRÉê°¢ UUUÖ óÌÌdccdÅbÆ`óÌÌÌ__`¿`g\·\óóóÌ[[\ÉWXWWX±ZóóÌó STSST§T³OPóóÌóOOPOOPSJIKLóóóÌKIJ�EFEEF‹FóÌÏ<AB�?@…9:sÀÏ?<;6534356™Ï?<Ì.-/0/-.+*SÌóÌÌ'(K#$E"E$ÌÌÌó79/ÌÌÌÌ++;ðð÷ð€y `ÒÁ/<†8dcÈ3ÌÌÌba_À`€]^\[\\['XWXZYUETU@@@@@@„HH@@ÀÀ @€@UUUÕ óÌÌ[\ZY¶[ƒ[óÌÌÌ\\[¸[k[¸[óóóÌ\\[Ñ\[\\[¸[óóÌó¿\[\\[¸[Ã\[óóÌó\\[\\[][\\[óóóÌ\\[µ\[\^]º[óÌÏ<µ\[º\[«\[¸ÌÏ?<^¯]^\[\\[EÏ?<Ì[\^]^\[O]ºÌóÌÌ^]™\[¸[º]ÌÌÌóK[¸[º]•^]ÌÌÌ̺[º]I[¸[ÌóÌóº]c\[º]^\[óÃ?WX óó3WXWX“WXWX ÌÌóWDUVUVUVÌÌóÌ«WXWXWX’WÌÌó XWXW«WXWÌÌÌóXWxUVUVUVÌÿ<ÏõUVUVUVUVUÿ0ÌÏVU—UVUVU†U0ÌÏ3VUVU£UVUóÌó3VUV3UVUVUVó33ÌîUVUVUV…Uó3ó3VUVUVÌUVUV3Ìó UVÂWXWXWÌüÌÏPUVUVUUVUÌó?óVUÎUVUVUEWX ÌÌÌWXWWXWUUUU3 óó212121!43 óó343434343 ÌÌó4U434343ÌÌóÌ434343'4ÌÌó 3434C434ÌÌÌó34U434343Ìÿ<Ï434343!434ÿ0ÌÏ34C43434U40ÌÏ33434C212óÌó3121!212121ó33Ì434343!4ó3ó33434343433Ìó 4321212ÌüÌÏ?21212w434Ìó?ó34U43434C43 ÌÌÌ434W434UUUUÀJÀPÀ\ÀÀ^hÀjÀvÀ v~ „Œ ŒÀ’ÀÀ”šÀœÀšÀ žÓÀÀIOÀ[A€€€ UUUUÀIÀOÀ[ÀÀ]gÀiÀuÀ u} ƒ‹ ‹À‘ÀÀ“™À›À™À �ØÀÀJPÀ\AD@@@ €UUUUÀJÀPÀ\ÀÀ^hÀjÀvÀ v~ „Œ ŒÀ’ÀÀ”šÀœÀšÀ ž×ÀÀIOÀ[AD€€€ @UUUUÀHÀPÀ\ÀÀ^hÀjÀvÀ v~ „Œ ŒÀ’ÀÀ”šÀœÀšÀ žÓÀÀIOÀ[A€€€ UUUÕ óÌ ÿÿÿÿÿóÌ Ìÿ€ÿÿóóó ÿÿ€€ÿÿÿóóÌóÿÿÿÿÿÿÿÿÿóó óÿ€€€€€óóó ÿÿ€€ÿÿÿó Ï<ÿÿÿ€ÿÿÿÌÏ?<€€€ÿÿÿÏ?0ÀÿÿÿÿÿÿÌóÌÌ€ÿÿÿÿ ÌÌóÿ€ÿ€€Ì €ÿÿÿÿÌóÌóÿÿÿ€€óÏ30€ÿÿÿÿÿÿ3 ÌÌ€ÿ€€€ÿÿ€€ÿÿUUUU á€{|€óÀóÄ}|{~}|{~óá€a{|{|€óÀóÄ}|{~}|{~óÀ{|{~<}|{~>Ì}|{|{~a€LÀ{~LÄ Ä{~{~€a€3<}|{|{~€óÀó}|{~}|{UUUU3 ó3ÿÿÿÿÿÿÿÿ ó33ÿÿÿÿÿÿÿÿ ÌÌóÿÿÿÿÿÿÿÿ Ìó ÿÿÿÿÿÿÿÌÌó ÿÿÿÿÿÿÿÿÌÌÌóÿÿÿÿÿÿÿÿÿ ÿ0Ïÿÿÿÿÿÿÿÿÿÿ0ÌÏÿÿÿÿÿÿÿÿÿÿ0ÌÏ3ÿÿÿÿÿÿÿÿó ó3ÿÿÿÿÿÿÿÿÿ333 ÿÿÿÿÿÿÿó333ÿÿÿÿÿÿÿÿÿ3 ó ÿÿÿÿÿÿÿÌüÌÏÿÿÿÿÿÿÿÿÿÿÌó?óÿÿÿÿÿÿÿÿÿÿÿ ÌÌÌÿÿÿÿÿÿÿUUUU3 ó3~}~}~}~} ó33~}~}~}~} ÌÌó~}~}~}~} Ìó ~}~}~}~ÌÌó }~}~}~}~ÌÌÌó}~}~}~}~} ÿ0Ï~}~}~}~}~ÿ0ÌÏ}~}~}~}~}~0ÌÏ3}~}~}~}~ó ó3}~}~}~}~}333 ~}~}~}~ó333}~}~}~}~}3 ó ~}~}~}~ÌüÌÏ}~}~}~}~}~Ìó?ó}~}~}~}~}~} ÌÌÌ~}~}~}~UUóÌÌóZXWøS¨STTSÌÌÌó`O OžMÊJIÌÌÌÌ–K–I’EŒEóóóÌFFEö@?@@?‚AÌÌÌÌÌ9v:9§5lÌÌÏ<5j3÷/0.-^Ï<ÌÌ/©('R)Rß#ÌÌÌÌF!F#Y:óóÌÌ‹,,óÌÌÏ ± <Î!�€@a€@@@@€  UUóÌÌó[[\\·\[[\ÌÌÌó‰\·\·\B[\ÌÌÌÌ·\·\•\·\óóóÌ[[\>[\[[\·\ÌÌÌÌ�\¹[\!\·ÌÌÏ<\¹^¥\[]^¹Ï<ÌÌ\6[\·\¹M\ÌÌÌ̹^¹\'^¹\óóÌÌ[]^S[\¹^¹\óÌÌÏ8]^¹\¹%\[]<Ï<3^¹\t[\¹[\ši*—ð ð€wð€ð€ð€÷,"ÌÌÌÌ ,w÷wð€"ÌÌÌÌ* €ð€ð€wð, ù ð€ðð€"4ÌÌÌÌ —÷ð€ð€4÷ð€ðð —"2ð€÷ð"UUÌó3 XW`UVUVUó33Ì%UVUVUV�Uó3ó3VUVUVûUVUV ÌÌóU'WXWXWXó??3þWXWXWXqUVU3?0ÏVUVãWXWXW<Ï3óX�UVUVUŸWX33ó3WXWXiWXWX Ìó3WþWXWXWXÌó?0�UVUVUUVÏ<ÏÌUVUVÒUVUVUUUÌó3 34C43434ó33ÌQ2121214ó3ó3343434343 ÌÌó4C212121ó??3!4343434343?0Ï343!43434<Ï3ó343434S4333ó343432121 Ìó32S434343Ìó?021212S43Ï<ÏÌ4343 43434UUÀ]ÀÀgiÀuÀuÀ }ƒ ‹ À‹‘À“À™À ›™ �A@@@UUÀ^ÀÀhjÀvÀvÀ ~„ Œ ÀŒ’À”ÀšÀ œš ž@€€UUÀ]ÀÀgiÀuÀuÀ }ƒ ‹ À‹‘À“À™À ›™ �@@@UUÀ]ÀÀgiÀuÀuÀ }ƒ ‹ À‹‘À“À™À ›™ �A@@@UUó óÿÿÿÿÿÿ€ ÌÌóÿÿ€ÌÌÌÌÿ€ÿÿ€ÿóóóÌÿÿÿÿÿÿÿÿÿ ÌÀÌÿ€ÿÌÌÏ0€ÿÿÿÿÏ0ÌÌÿÿÿÿÿÿÌÌ ÌÿÿóóÌ ÿÿ€€€ÿÿó ÌÏÿÿÿÿÿÿ€<Ï<óÿ€ÿÿÿÿUUá Ä€|{~€LÀL{~{áóá€|{|{|€Ì<{~}|{~O€¿±Ð                    D00_building D00_building0̈…Ú=ÉåÁ×4ÕA,A[1ÉA¶,¶0ÌÂ[1ÉÁˆ…Ú=×4ÕAÉåA,AÌ,Ä ýwÿÝ óó?>  /> ?@?ÕÖÓWÓÔÓÔ&�‚Q�RQR0RQR�Q‚’�ž�ûœ›üžým@.=%&L??3ü%&%'(%    ÿ?0Ï ¸'(¨('ÏøÏÐÏ'Ð(‘’‘z’‘y’zUôÍóàÕÖ`ÊbaÖ`ÓabÔÓe³¦´¥¦³¥±¤´³£²¦:KLÌóÌÿ;M>=>L;=><;Q>POPɛ̘ʙÉɛʜ›ÿ?0ÏÉœÛ>+-.-,íÜÛÜéÛÜêÛé–OךRÖ’LKЃÐÏKÐLÏÐKL 8473483:278194éîíÌóÌÿðíîï† À¿À ¿KÙ üÏ<ÏLÚ1I‰Š‰JŠI‰JŠÓJ­c,dc+d,Ue­¶öÞ óó?/0/12/B ABA B Aíþô€@xB)GtƒÿÏ=ûþ¿úö<3??3üefeTefex wx w v w úòÁ�‰x7 ’¡ÿÏûaóÿó n gc~cdcdctststst5 š  ‘¢Y    VüÏ<Ï ÏF?@?E@F?E@EL)KL*K)TJUUUU3 ÌÀíîíîíî Ì3 íøš™š™óÌó š™šÇõöõöõÌÌöõÀÏ<ÌH¥¦¥k+ûÌÌÌ<Ã0Ïý~}~}~}<ÌÏ0~vÀ À Ì óÌó»‹Œ‹ö À óm€ 3ÌÌ€€öó óÀóÀÀÏʹ‹Œ?0Ï0‹s<Ã0ý~}~UUUU3 ÌÀ|{|{|{ Ì3 |N[\[\óÌó [\[,LKLKLÌÌKL¡ ÀÏ<Ì 8DCD¿h ÌÌÌš™š™š™š<Ã0ϙ鉊‰Š‰Š<ÌÏ0‰@hghghgÀ À hß óÌóFtstµš™š™ À 󚙚 Œ‹ 3ÌÌŒ‹Œ‹ŒKhó óÀghghghghóÀÀÏß Fts?0Ï0tõš™š™š™<Ã0š™é‹Œ‹UUUU@ÀÀ$ÀÀÀÀRà\ÀÀÀ@ß­ÀÀÀÀ$@à  Ê PÖ× Ï¦®¥  "KP ØÙÚ 0ÀÀ×K_õÀÀÀÀø}wZÀÀÀÀ=~>×ÀÀÀÀôõø{ÀÀ@Ãyzwô  ̇½ ¼ÛZUUUUÀÀÀÿšMÀÀÀÀ±§Ë}ÀÀÀÀÌÙ™ÿÀÀÀÀš´LKÀà þ±™šw ÿV+Ó ‘­ƒ® éUÿV Ö*)þ 0ÀÀÓUh†ÀÀÀÀz=Ä%ÀÀÀÀ»}¼¤ÀÀÀÀz†zÄÀÀÀÃ=>þÄz Ëÿá� oËòwUUUUÀÀÀ"ÀÀÀÀÍã\ÀÀÀÀär#"ÀÀÀÀ@à #$Æ NKÛÕ )©®ª ƒONK Ùר 0À€ÕO¬ÀÀÀÀô{~ÀÀÀÀ9}:žÀ€ÀÀ÷ôyÀÀ@Ã|{~÷ ?‰Œ¸ ¾�]UUUUÀÀÀe™³ÀÀÀÀNŒÌ}ÀÀÀÀË ™eÀÀÀÀ™N³´Àà þN™šw ©UÕ, À®ƒ­ ;U©U ,ÕÖþ 0ÀÀ,UÿÀÀÀÀzÂ>âÀÀÀÀ»~¼ ÀÀÀÀyÿz;ÀÀÀÃÃÄþ>y Qâq �&ñwUUUUÀÀÀ! #€ÀÀÀdÀÀÀÀ?#$!ÀÀÀ@ %ƒ $#Å MLM ×Út' MPML K0À@P«À@ÀóIÀÀÀ½{{À@ÀÀøó€ø @ЋР¼¹;UUUUÀÀÀfšfÀÀÀ±MŠÀÀÀÀfšfÀÀšf š™x ªVª Ó+N ªVªV ª0ÀÀVÿÀÀÀyÿ‘ÀÀÀÀ ;=ÿÀÀÀÀzÿyÿz Rá o�òUUUU@À$@ÀÀÀc@ÀÀÀ@À€À€$C  Ê P u*Û×  KP 0ÀÀK_õÀÀÀøõxÀÀÀÀy¿GõÀÀÀÀôõø÷€ô  ̇ :PºUUUUÀÀÀÿšÿÀÀÀvLÀÀÀÀNÿ™ÿÀÀšÿ ™šw ÿVÿ ²*, ÿUÿV ÿ0ÀÀUh†ÀÀÀz†ÃÀÀÀÀ; n†ÀÀÀÀz†z†z Ëÿáÿ +Ž 333ÌËÌËÌËÌ30âáâáÌâá3âá<Àâáâá 333ÎÍÎÍÎÍÎ30ª©ª©Ìª©3ª©<Àª©ª©UUUU 33312121213ÿÿóÌ3€€€€33À€€?3ÿÿÿÿ€ÿ333<ÿÕÖÕÖÿÿÿÀÿ3<À€€€€3<€óóÌÿÿÿÿÿÿÕÖ3Ì3ÕÖÿÿÿÿó€€Ì3Ì3€€€€Àÿÿ0Ã<ÌÿÿÕÖÕÖÿÌÀÿÿÿUUUT 333}~}~}~}À ÌÌ~}~}~}ÌÀ~}~ó3}~}~}Ì7Ø~}~{~}~333<}~}~}~}~ÌÌÌ}~}~}~Ì}~3<}~}~}~Ã}óÌ}~{~{~}~}3ÌÀó~}~}~}~}333À~}~}~}~ Ì37}~}~}~{ØÃ<Ì~}~}~}~ÌÌÌ}~}~}~P3 ÌÌ‘’‘’‘ef ¾ÌÌÌÀ½¾½¾½ëìÌó¾½¾½¾ óÀ½ëìëì0Ï?¾½¾½¾½¾Vì<ëìP3 ÌÌ!"!"!gh !ÌÌÌÀ"!"!"©ªÌó!"!"! óÀ"©ª©ª0Ï?!"!"!"!‡ª<©ªUUUU3 ÌÌÞÝÞÝÞ˜—ÌÌ3Ìÿÿÿÿÿÿÿÿ3Ìó ÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿó< ÿÿÿÿÿÿÿ#ÌÌÌÏÛÜÛÜÛ«¬ÿÿ0Ã<Ãÿÿÿÿÿÿÿ<ÌÏ0ÿÿÿÿÿÿÿÿÌÌÌÏÿÿÿÿÿÿÿÿÿ0óÌóÿÿÿÿÜÛÜÛÜ óÌ3Û«¬«Sÿÿÿ ó ÿÿÿÿÿÿó ó ÿÿÿÿÿÿÿÿó3 Ïÿÿÿÿÿÿÿÿÿ?0Ï?ÿÜÛÜÛÜÛÜx¬?0Ã<«SÿÿÿÿÿÿUUUUH!„!Ìó {|{|{|ÌÌÌÌ{|{|{|{|ó<Ä{|{|{|{~„„ŒÀþýBBÌÏ0{|{|{|{ÌÌÌÏ|{|{|{|{|0óa{|{|óÀaþýþýaÌ}|ó ó {|{|{|{|ó3 Ï{|{|{|{|{2†|ÿý<BþýÿüÌÀð¸ïð·ïñJ«I¬a¬«b«J¬¡~Ïÿñ9Ó:ÿüÌÀ65 @tƒ4Ï"!"ÿóÿ!"! =ÿüÌÀ,d)*c+}!t"sRstQt!sÁ^]^L]^K]LTIÙ›JÜÿüÌÀ'K*)L(3P&uÿ_JIJÿûÿIJIF!bE$Ï?33}~}~v0À ÀÌ ó»‹Œ‹Ï?33Œ‹Œ‹Bfefef0À ÀefÝ ó Frqr YòŒ ‡»º¹ 0¼Œ ñ»âÿ árŽ� 0þoâ ^˜ˆ‰ Œº¼» 0¾ˆ òRâ â�qr 0þ�â OЇР‹ˆ0‡ ,á á0á  ¾Œ ‡0Œ �ÿâÿ áÿ0â ÌÌÿ€€Ã<Ì€€óÿÿÿÌÌ}~}~3}~}~<Ã}}~}~{~Ã?33ÿÿÿÿÿÿÿÿÿ0Ï0ÌÿÿÿÿÿÿÿÏ0óÿÿÿÿÿÿÿB33{|{|{|0Ï0Ì{|{|{|{Ï0ó|{|{|{|£¨H†øÙ÷Y ¦øÙš™?I?€¿»Ð D04_fence D04_fenceï8¢ÁY7+ÃÞ=Ät5¢Aã•Âj Ää˜äï8¢Á‚j DY7+Ãt5¢AÞ=Dã•ÃF˜> ýý3óóó²±²¾½¾ÌËÌØ×Øèçèø÷øõöõåæåÓÔÓ¿À¿«¬«•–•�‚�mnmUVU?@óó3ó�'( õ¸·¸ÄÃÄÒÑÒÞÝÞðïðüûüïðïßàßÍÎ͹º¹§¨§‘’‘}~}ijiSTS=>'(óóE%UUR@@@@@RÒÀÒ@@@@@@€ÀÀýÿ3óóóÂÁÂÆÅÆÌËÌÔÓÔÖÕÖÜÛÜàßàæåæèçèîíîðïðòñòöõöø÷øø÷øüûøñòõÇÈǼ»FTSTPOPLKLFEFBAB<;<:9:6562120/0.-.*)*('(&%&&%&$#&21óó4XWZÅÆýÿ3óóó(óóÿÿˆõ‡�àõß)²õ±W°õ¯Y\õ[­ìóí4õ1×DõCÅ>õ=Ëõ÷.õ-Û(õ'áBõAÇõíõñ!õ"ó õS]õ^/€õ%ºõ¹O”õ“u˜õ—q½õ¾8 õ ÿËóÊ*öõóÖõÕ3üóý ÔõÑ7øõ÷ÿõÿ ÊõÉ?÷õøàõß)ªõ©#êõéÿÿ–fõez&õ%ÿÿ555757777775555553[7510M  '+55555557555ÿÿ33UUÀÀÀJV\ÀÀÀÀbjpvÀÀÀÀ~„„ŒÀÀÀÀ’’”œÀÀÀÀšžN™ÀÀÀÀJV\bÀÀÀÀjpv~ÀÀÀÀ„„Œ’ÀÀÀÀ’”œšÀÀžNQU€€€€À€€€€UUÀÀÀIU[ÀÀÀÀaiouÀÀÀÀ}ƒƒ‹ÀÀÀÀ‘‘“›ÀÀÀÀ™�MšÀÀÀÀIU[aÀÀÀÀiou}ÀÀÀÀƒƒ‹‘ÀÀÀÀ‘“›™ÀÀ�MQU@@@@À@@@@UUÀÀÀÎ:ÀÀÀÀI'plÀÀÀÀF†NÀÀÀÀ„R ÀÀÀÀî§ÂËÀÀÀÀ(�ÜÀÀÀÀ£1Š@ÀÀÀŽZÀÀÀÀÈæÀÀ£æE€@@À€ÀÀÀ ÀÀÀ!@ À€ÀÀUUÀÀÀ4FHÀÀÀÀRbHZÀÀÀÀbfflÀÀÀÀprrxÀÀÀÀvv<¡ÀÀÀÀ<�<°ÀÀÀÀÔZ\`ÀÀÀÀhflrÀÀÀÀprxvÀÀv=>=>=3?0>=>=Â|{Ì?<|{|{|{|{0Ìh|{|{|0Ìÿ{|{Þo¥87~8êpn8}7Ö¥¦õ¦¥POPVPOP¥O¦¥P¦OÀÀÌ Zabua ÀÀÌbsabu ÀÀabuaÀbUUU ÄÀÀÀ ûÀaÆH#Ÿ?0 36„$  ÓFóó’á·íÀ‡@„UÕÿ3Ì<‹Œ‹Œ‹Œ‹ÀÌóÀŒ’JIJIJóóÀÌ8IJIJIJ˜JóÀÌóIJIJJIJIÀÏÿÏJd”0z0/0’Ä/ü ?0/@ZYZYZY<ÀÏÿZYZYÉ + + , + + " + "+l + + , + + + , +³Á’ª212’Â/0/M Ÿ‡¡¢×Ø×6ÕÖÕ Ø¡¢×ŸÖóÌ<=1212>121ÀóÌ2@12122<ÀóÌ121@0/0/U¥À?ÀßÀ@€� &@€Ï¯°¯0ÀḬ̀¯¯°¯°ÌÏ0À¯Ÿ¯°¯°¯Ï0̯°¯°¯ 8‰ ’(  qÀ CÀ@À UÛ ÿüÏ$#$#$#$#$#$ÿó Ì#$#$úKLKLKÌÌÌóLKLKLKQKL Ìó KLKLKLKLK)רררר×ÿ€ÐàÐàÐàØ×À ÿ ÉcYfqWdZeÊWÉÊeWd cYf ÊYɃcYfqWdZeÊWÉÊeWdoYfXcÊYÉŒQRQRQRQRQRQÌÌÀÄ565656575656565é?[\[\[\[ÁijijiðjiU[•j ÿüÏ,+,+,+,+,+,ÿó Ì+,+, ÌÌÌóÝ Ìó R|{|{|{|{|ÿ@0@0@0{|À �6ÙÌÎ������Ìï6َ⎑���Ï2ÌÏ����ŽTfefÿÿLÌefefefef0@0@0ðàÞÞÞðàÞ£ÞÞЀxxxp‡‡‡ðÐííð UUUU@€ÀÀÀK”IÀÀÀÀI”IIÀÀÀÀ”II”ÀŒ ÌIM˜MNÌ —L ¨+ {¨+{ ¨+{¨ 0+{mrqÌÌÀÀàqrßu3ÀÀÀ@67ãÀ@€@€@€UUUUÀÀ ÿÿÿ ÀÀÀÿ#¹¡ÀÀÀÀ£¹¡£ÀÀÀÀ¹¡£¹ÀÌ Ì¡ÿ ¾ ŸÌ ½`ÿ ýþ(ˆ ¯(ˆ¯ (ˆ¯( 0ˆ¯¢Ÿ ÌÌÀÀ¾ Ÿ½àþ€ÀÀÀþ}þÀÀÀ ‚ÿÿÿ ÀÀÿÿÿ ÀÿÿÿÀÿUUUH$€ÀÀMNÀÀÀMNMÀÀNMÀÌÀÌNµ·¨ ¢ uã £w㣠wã£w <㣷NM� ÀÀÀÞMc8@ÀÀ@3åÒH$€H@!„UUU3Ì<ÿÿÿÿÿÿÿÀÀÀÿܤÀÀÀ£¤£ÀÀ¤£ÀÌÀ̤ÿ£¹¡£  ]ÿ þRÖ %¯Ö% ¯Ö%¯ <Ö%£¤£¹ ÀÀÀ¡£ÝýÀÀÀÀÿþ‚þóÌ<‚ÿÿÿÿÿÿÿÀ3Ìÿÿÿÿÿÿÿ<À3ÌÿÿÿÿÿÿÿUUU!„@ÀÀLMÀÀÀNMNÀÀMNÀŒÀÌML—LL I n½ Nd½Z p½Nd <½ZLKL— ÀÀÀLLÐ7€À€4á„ä@!„@!„UUU3Ì<ÿÿÿÿÿÿÿÀÀÀÿÝ£ÀÀÀ¤£¤ÀÀ£¤ÀÌÀÌ£ý¢º¤¢  ^ý ÿ. êè.ê è.êè <.ꢡ¢º ÀÀÀ¤¢ÞþÀÀÀÿýÿóÌ<ÿÿÿÿÿÿÿÿÀ3Ìÿÿÿÿÿÿ<À3ÌÿÿÿÿÿÿÿUUUU@€ÀÀÀK”IÀÀÀÀI”IIÀÀÀÀ”II”ÀŒ ÌIL›LKÌ œM � §²« ¶ §² 0«mKLÌÌÀÀ›LKœÌ3ÀÀÀ676À@€è@„€@UUUUÀÀ ÿÿÿ ÀÀÀÿ#¹¡ÀÀÀÀ£¹¡£ÀÀÀÀ¹¡£¹ÀÌ Ì¡ÿ¢º¢¡Ì ¹^ÿ ýk ¤£¤ £¤£ 0¤•¡¢ÌÌÀÀº¢¡¹Þþ€À€þÀÀÀ ÿÿÿÿ ÀÌÿÿÿÿ ÀÿÿÿÀÿTÕÌóóëìë�ž�uvóóóÌuëìë�ž�uvžìóóÌóë�ž�uvžìë�žóÌÌÌ�uvŸ*ëìvëÀv<ëìvž�uvuëìë�ž�u?<Ï?vuëìvž�uvuë<Ï?<ìvž�uvu)*ëÌÌìvëvTUÌÒs©ª©¬«óÒsŒ¬©ª©¬«ªÒsŒÒ©¬«ª©sÌÌ̬«°©ª«©À©<©ª«‡?='¬«¬©ª©¬?<‡?«¬©ª«¬«¬©<‡?<ª«¬«¬¯°©Ì̪«©©UÕUÌÀ ÿ€€ÿÌÌóó€€TSTÿÿÿ¬«óóó̬TSTÿÿÿ¬«ÿSóóÌóTÿÿÿ¬«ÿSTÿÿó ÌÌÿ¬«¬T¬TVÀVn p·päpOnR‹pnn£põp3n6‹p!n9pÿ‡n»p÷ÿÿ$#$%$#$#$!$$3ÿÿ #$%$#$#$!$$#$#$%&#$#$$#$#$#$#$#$&%&%$#$#$#&$#$%$#$#$!$$#$%&%$#&#$$#$#$%&#$#$&#$#$#$#$#$$%&%$#$#$#&$%$!$#$#$%&&#$#$#$#$#$$#$#$#$#$#$$#$#$#$ÿ#$#$ÿÿÿLüO÷øpø¼ø«ø_øwçúÎG<×ðØïðÂðð8ð¡ð&³#´$#u#Ú#‘#¾#¿ç¼æåXå]ç,å‹ååÎÐËÌÐÎÌdÎiÌÏÌÐËÌÒÌÌfÌiÌÏÎÎËÌÒÎÐbÎkÌÍÎÐÏÐÐÌÌdÌkÐÏÌÐËÌÐÎÌdÎiÌã»Ø¾½p½i½½ó½Å’Ä��ú’4�ª’�±¶{Е¶¡)¢*)‘%Ê'ÿ{%â)ÿÿÿyzyvyx{~y~yCDC>CBCFCJC-,+&+*-0+2+ $ $&)('")(),)0''*)"'&),'0))*)$)&',)0))('"'&),'.''*)$)&',)0),-.3./,).'.$#$)$'$$$!ÿ  UUU3ÌÌ̯°Dt@=¹CÌÌÌóæÃâÁõeüÆÅÌÌO78ÌÌÏ<ã¶.'(ÏÌÌÌȲ'*ÑÌÌÌÌ´ )4ß¶ÌÌÌÌ*34ß¶*ÌÌÌÌ34ß¶*ÌÌÌÌ34ß¶*3ÌÌÌÌ4ß¶*3-ÌÌÏ<ä«7&%ÚÌÌóÌ©/ÐÌÏ<Œ§'À£ÌUUU3ÌÌÌëìvu9t9ëÌÌÌ3ìvu9t9ëìÌÌÀ¿ÐD05_boxD05_boxá /Àu²KÃ[}CÄ“A¤ FÃ0x>Ĥ¤á /À0x>Du²KÓA[}CD¤ FÛ“ Õu_W?3Ì?éWêéêXééWê3Ì?3éêXééUèçèÌ?3ÌXéçWêéêVçWXéWêéêXéWXéWóÌ?3êéêXééWêéêÌÿóÌXéWXéUèçèXéUVçWêéêVçéUè3ÌÌÌçèXéÈXàU²ÞUßàßXÞUVÞWÛÜÛVÞWXàYÝÞÝÌÿóÌXàYZÞWßàßZÞ?3ÌÿÜUÝÞÝXÜUVàWÝÞÝVàWXÞYÛÜÛÌ?3ÌXÞÞWßàßZÞ?3ÌÿÞWÝÞÝXÞWXÞWóÌÿ<ÝÞÝXÞÞWÝÞÝXUUUU À-!È À-!ÈóÀûaÈ ÀûaÈûÈ !ÀÌÌ! í!ÈóÀûÈóaÀ ÀûaÈóÀ-!È ÀûÈ6Õu]W?3Ì?ƒh„ƒ„gƒƒj‚3Ì?3�‚gƒ�h„ƒ„Ì?3Ìi�ƒj‚�‚gƒji�h„ƒ„i�hgƒhóÌ?3„ƒ„gƒƒj‚�‚ÌÿóÌgƒji�h„ƒ„i�hgƒj‚�‚gƒ�h„3ÌÌ̃„i�wgàh¿3Ìÿ�T‚�‚S�TS�T‚�‚S�TSƒT„ƒ„ÌÿóÌSƒTS�T‚�‚S�?3Ìÿ�T‚�‚S�TS�T‚�‚S�TS�R„ƒ„Ì?3ÌS��R‚�‚Q�?3Ìÿ�R‚�‚Q�RQƒTóÌÿ<‚�‚Qƒ�T‚�‚SUUUU33 ;3 33L33  ó ó 33L ó  ó 33 ÀÀýþ³3 ó ó ó 33L ó ó ;3 33L ó Ï0ÿÿÿÿ>=>=>:9:9:>=>=>e‚<½fe¾½ :Ù¾½ÚÙ"!Ú¯!ÚÙ"°¯"Žc)!°¯"*)"4;!*)"<;$#<>U#<;$V°¯UVŸ ì7¬ ì럫¬£<3¤«¬£43ŸÔ:ò 43Ÿñò¡O<¢ñò¡¡¢:Ç¢¡ÈÇ¡•=NUVUUUU@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@„UUUUÀÀÀê›jÀÀÀÀ2›j2ÀÀÀÀ›j2›ÀÀÀÀ¢›úÀÀÀÀ]›ú]ÀÀÀÀ›ú]›ÀÀÀÀú]›úÀÀ@À]› ÀÀÀÀ+ƒÀ;ÀÀÀÀƒÀ;ƒÀÀÀÀÀ;ƒÀÀÀÀÀ;ƒÀ;ÀÀÀÀƒÀ;ƒÀÀÀÀÀ;ƒÀÀÀÀÀ;ƒÀ;ÀÀÌ ƒÀ;ƒÀUUUUÀÀÀöúÀÀÀÀøúøÀÀÀÀúøÀÀÀÀúøúÀÀÀÀøúøÀÀÀÀúøÀÀÀÀúøúÀÀÀÀøÿ ÀÀÀÀú üÀÀÀÀú üúÀÀÀÀ üú ÀÀÀÀüú üÀÀÀÀú üúÀÀÀÀ üú ÀÀÀÀüú üÀÀÌ ú üú UUUUÀÀÀ$Ÿ–ÀÀÀÀ Ÿ– ÀÀÀÀŸ– ŸÀÀÀÀË“ŸUÀÀÀÀöŸUöÀÀÀÀŸUöŸÀÀÀÀUöŸUÀÀÀÀöŸž›ÀÀÀÀ×ȼ|ÀÀÀÀȼ|ÈÀÀÀÀ¼|ȼÀÀÀÀ|ȼ|ÀÀÀÀȼ|ÈÀÀÀÀ¼|ȼÀÀÀÀ|ȼ|ÀÀÌ È¼|ȼUUUUÀÀÀ_"ÀÀÀÀ/"/ÀÀÀÀ"/ÀÀÀÀ*78ÀÀÀÀE8EÀÀÀÀ8EÀÀÀÀ8E8ÀÀÀÀEòÀÀÀÀÑ9 0ÀÀÀÀ9 09ÀÀÀÀ 09 ÀÀÀÀ09 0ÀÀÀÀ9 09ÀÀÀÀ 09 ÀÀÀÀ09 0ÀÀÌ 9 09 UUUUÀÀÀmºMÀÀÀÀÚ4îäÀÀÀÀ.òÚ4ÀÀÀÀìÛÔÀÀÀÀ_Gª+ÀÀÀÀ{¢&ÅÀÀÀÀžWI¤ÀÀÀÀaAœÀÀÀÀ§t¤äÀÀÀÀèþìÀÀÀÀýêÀÀÀÀùâþÀÀÀÀìþìÀÀÀÀýãÀÀÀÀù‘qÿÀÀÌ øýèUUUUÀÀÀ›aþÀÀÀÀÉ3þÉÀÀÀÀ3þÉ3ÀÀÀÀþÅ7þÀÀÀÀ¿=þ¿ÀÀÀÀ=þ¿=ÀÀÀÀþ¿=þÀÀÀÀ¿=ó €ÀÀÀÁ=ÿÀÀÀÀÇ7ÿÇÀÀÀÀ7ÿÇ7ÀÀÀÀÿÇ7ÿÀÀÀÀÇ7ÿÇÀÀÀÀ7ÿÇ7ÀÀÀÀÿÅ9ÿÀÀÌ Ç7ÿÇ7UUUUÀÀÀLµjÀÀÀÀó-ßñÀÀÀÀ)áó/ÀÀÀÀÛÕÞÀÀÀÀ©Jb©ÀÀÀÀ€&£ÊÀÀÀÀ'¥NZÀÀÀÀ§F= ÀÀÀÀ§ëŸuÀÀÀÀøéüÀÀÀÀåøÀÀÀÀãöéÀÀÀÀüëüÀÀÀÀåø"ÀÀÀÀèøv�À@Ì øõøUUUUÀÀÀýbœÀÀÀÀý4ÊýÀÀÀÀ4Êý4ÀÀÀÀÊý8ÆÀÀÀÀý>ÀýÀÀÀÀ>Àý>ÀÀÀÀÀý>ÀÀÀÀÀý>Î €ÀÀÀÿ>ÂÀÀÀÀÿ8ÈÿÀÀÀÀ8Èÿ8ÀÀÀÀÈÿ8ÈÀÀÀÀÿ8ÈÿÀÀÀÀ8Èÿ8ÀÀÀÀÈÿ:ÆÀÀÌ ÿ8Èÿ8UUUU 3ÌÌÿÿÿÿÿÿÿ3ÌÌ3ÿÿÿÿÿÿÿÿÌÌ3Ìÿÿÿÿÿÿÿÿ33Ì3ÿÿÿÿÿÿÿÿ3ÌÌ3ÿÿÿÿÿÿÿÿÌ33Ìÿÿÿÿÿÿÿÿ33ÌÌÿÿÿÿÿÿÿÿ3ÌÌÌÿÿÿÿÿÿÿÿÌ3Ì3ÿÿÿÿÿÿÿÿ3Ì33ÿÿÿÿÿÿÿÿÌ33ÌÿÿÿÿÿÿÿÿÌ3Ì3ÿÿÿÿÿÿÿÿ3Ì33ÿÿÿÿÿÿÿÿÌÌ3ÌÿÿÿÿÿÿÿÿÌ3Ì3ÿÿÿÿÿÿÿÿ3Ìó<ÿÿÿÿÿÿÿÿÿUUUU 3ÌÌ}~}~}~}3ÌÌ3~}~}~}~}ÌÌ3Ì~}~}~}~}33Ì3~}~}~}~}3ÌÌ3~}~}~}~}Ì33Ì~}~}~}~}33ÌÌ~}~}~}~}3ÌÌÌ~}~}~}~}Ì3Ì3~}~}~}~}3Ì33~}~}~}~}Ì33Ì~}~}~}~}Ì3Ì3~}~}~}~}3Ì33~}~}~}~}ÌÌ3Ì~}~}~}~}Ì3Ì3~}~}~}~}3Ìó<~}~}~}~}~UUUUÌóÀefefefÌóÀÌefefefefóÀÌóefefefefeÀÌóÀfefefefÌóÀÌefefefefóÀÌóefefefefeÀÌóÀfefefefÌó33efefefefeÀÌóÀfefefefÌóÀÌefefefefóÀÌóefefefefeÀÌóÀfefefefÌóÀÌefefefefóÀÌóefefefefeÀÌóÀfefefefÌóÌÏefefefefefUUUUÌóÀghghghÌóÀÌghghghghóÀÌóghghghghgÀÌóÀhghghghÌóÀÌghghghghóÀÌóghghghghgÀÌóÀhghghghÌó33ghghghghgÀÌóÀhghghghÌóÀÌghghghghóÀÌóghghghghgÀÌóÀhghghghÌóÀÌghghghghóÀÌóghghghghgÀÌóÀhghghghÌóÌÏghghghghghUUUU3ÌóÀÿÿghghg—ÌóÀ̘hghg—˜hóóÌóghg—ÿÿ˜hghgÌÌóÌh€çhghgè€Ìóó̘hghg—@?˜hóÌÌóghgW@hghgÌÌóó@'hghg(@?Ìó33'hghghghgóÌóÀhÿÿghghg—ÌóÀ̘hghg—˜hóÌÌóghg—ÿghghgóÌóÌh€ghghgè€ÌóÌ̘hghg—@XhóóÌóghgW@?XhghgóÌóÌ@?hghg(@ÌóÌÏghghgˆ‡hghUUUUÈaó}~ÈaóÈy�‚zaÀÈaûüÀÈaÈûüûÈaÀÈúùúaÀÈaùúÀÈaÀùúùÈa!!úÀÈaÌ}ÈaÌÈzy�üaÀÈaûüÀÈaÈûüûÈaÀÈúùúaÀÈaùúÀÈaÀùúùÈăúùúÃó<ÏÞÞWÝÞÝXÞiW<ÀXjWÀ  <À Ãó<Ï��T‚�‚S�T<ÀSTó0ÌÐ €ÏŸóôŸ ó: óôŸ˜Ï0ëTMNMHMNGÜÏ0’’HG ;ƒÀ » üú ÿ  |ȼ½ À 09 ö  ùâ? ¿ ÿÇ7õ  áö- » Èÿ8Ò ÌÃ<Ãÿÿÿÿÿÿÿÿ<ÀÿÿÿÌÃ<Ã}~}~}~}~<À}~}< Ï0efefefeÏ0fefe< Ï0ghghghgÏ0hghg?<Ï0gˆ ‡hghgÏ0hghg †ùú†, [€J®2–,ª|©ü€?€?€¿©Ð("$D05_liftD05_liftj¾‘ 5VÃpQÄ�B’;ÃDc'Ä   0�0j¾‘ÂDc'D 5VÃ�BpQD’;ã�› ý÷ÿW3Ìóó78o87poÿ78m65nm\’Im&%ÿ&·JH&ÿ%Öý‰ýþwxw…wxwþxýþwýxwIm&%ÿ&·JH&ÿ%ÖýÌ óÿxþw…wx†xýwxþwý‘’Im&%ÿ&·JH&ÿ%'þýxþwxw…wxwþxýþwýx 4ß3Öß>à3ß àÕ4ß3ë=ß>¬ß àÕ4ß3ë=ß>¬ß à74ß3Öß>à3ß àÕ4ß3Öß>à3ß àÕ4ß3ë=ß>¬ßü à'?@ÀÀ ?@ABÀÀ ABA¥•UÀ HaÀª P ¼ !  ² ð«€Ì LáÞ  {À « k °!¢~Üß ±¥¨§³>ÍϦ§¨§§¨¥¦¥<ÌÏ<¦¥¥¦¥¦¥¦»Ï3<ϧ¨§¨§¨§¥¦¥3<ÌϦ¥¦¥¥¦¥¦¥<¦(õ÷ÿW3 ÀóQRQR=ST ÀóÿSTRÙ¤‚656¤Ú565ÖX\ZY³´³ñµ¶µW´ZY³X¶,¤6L656¤Ú565ÖXÌ óÿ¶Y³ñµ¶ò´Zµ¶Y³XCÙ¤‚656¤Ú565ÑWX¶Y³´³ñµ¶µW´ZY³X¶=5´6»´-³6´³¼5´6é.´-}´³¼5´6é.´-}´³™5´6»´-³6´³¼5´6»´-³6´³¼5´6é.´-}´ÿ<Àó³ 7878Å78Ì<À78Å7878óÌ<Å7878Å787¤•UUÀ@8 @p‰ ’(  qð‡Ì LáÞ {Ò@ ‡Z €!�~ÍÏ  ㋎�;<ÌÏŒ�Ž��Ž�Ž�<ÌÏ<Ž�‹Œ‹Œ‹ŒÛÏ3<Ï�Ž�Ž�Ž�‹Œ‹3<ÌÏŒ‹Œ‹�Ž�Ž�<ÀŽ, À  UWý× ó Ì·¸·¸·¸·ó Ìÿ¸·¸·¤$#$#$ÿÿ0Ì#$#$#$S¨§¨§ÌÀ ¨§¨§y§¨§¨§¨§¨§¨§S¨§33 ¨§¨§¨ÀÌÿÿ§Vˆ‡ˆ‡ˆ‡ˆ‡ˆüÏ0̇ˆS¨§¨§¨§À ÿ¨§yŠz€Œz‰zŠó‹yŠ|úyŠzŒõ‰{ŒzúyŠ|Šõ‰yŠz€Œz‰zŠó‹yŠ|€Šz‰zŒõ‰{ŒzúyŠ|ŠüÏÿÀõ‰2popopop‚ Ïÿ¦!"!"!"!%ª©ª©ª©ªüwxwU›U¹ ó Ìó Ìÿ(xwxwxÿ÷0ÌwxwxwxÌÀ �Ø×Ø×Ø×Ø×Ø×Ø`ÀÌÿÿƒÚÙÚÙÚÙÚÙÚÿ@4@0ÙÚÀ Ï¥TSR»|ÍÏSRQTRQTQR<ÌÏ=STRQRQRQ£Ï»|ÏTSRSRQTRST3<ÌÏQRSTRQRQRðàÞÞÞððQëðÀ¼¼¼ð€xUUUUÀÀÀ”IIÀÀó ”IorqàÌÌ qrßu36  7ãÀÌÌÀ87ÉÀÀÀÀ367ã@ó Ì8Ì 7É367  ãüË ¶˶ ˶ ˶Ë ¶˶ á@€@€UUUUÀÀÀ¹¡£ÀÀó ¹¡_Ÿ ¾ÌÌ  Ÿ½àþ þ}þÀÌÌÀ ¾ Ÿ½àÀ€ÀÀþþ}Àó Ìþ¢Ÿ ¾ ŸÌ  ½àþþ }þ.¨ ª®¨ª ®¨ª® ¨ª®¨ ª®¨ª ýÿÿÀÀ ÿÿÿÿÀÀ ÿÿÿUUUUÀÀNMÀóÀN¹NM�Ì ÞMc8  3åäÌ ÀÀ–ïZ–“À@ÀÀ83å@óÀÌ…•–ïZ–  “83  åÉ| ÉN|É N|ÉN |ÉN| ÉN|É $€ãH$€H$UUUUÀÀ¤£ÀóÀ¤\¤£¹Ì ¡£Ýýÿ þ‚þýÌ ÀÀ£¹¡£ÝÀÀÀÀýÿþ‚ÀóÀÌþ^¤£¹¡£ Ýýÿþ ‚þEq ÇÅqÇ ÅqÇÅ qÇÅq ÇÅqÇ <À3ÿÿÿÿÿÿÌ<Àÿÿÿÿÿÿ3Ì<ÿÿÿÿÿÿÿUUUUÀÀMNÀóÀMNKL—Ì LLÐ7  4äÌ ÀÀL—LLÐÀ€À€74óÀÌÏKL—LL  Ð74 7 !V%= d!Gr 1=t7 ?h?@!«„@!„UUUUÀÀ£¤ÀóÀ£[¡¢ºÌ ¤¢Þþÿ ýÿ€Ì ÀÀ¢º¤¢ÞÀÀÀÀþÿýÿóÀÌÝ¡¢º¤¢ Þþÿý ÿ㸠Àˆ¸À ˆ¸Àˆ ¸Àˆ¸ Àˆ¸À<À3lÿÿÿÿÿÿÌ<Àÿÿÿÿÿÿ3Ì<ÿÿÿÿÿÿÿUUUUÀÀÀ”IIÀÀó ”INKL›ÌÌ LKœÌ36 76èÀÌÌÀL›LKœÌÀÀÀÀ3676ó ÌËKL›LKÌ œÌ367 66à +ì¯K þ­Uõ ½Gõà Iÿ«K O@€@€UUUUÀÀÀ¹¡£ÀÀó ¹¡]¡¢ºÌÌ ¢¡¹Þþ  þ€ÀÌÌÀ¢º¢¡¹ÞÀ€À€þþó ÌÝ¡¢º¢¡Ì  ¹Þþþ Ò³ ‰Á³‰ Á³‰Á ³‰Á³ ‰Á³‰ “ÿÿÀÀ ÿÿÿÿÀÀ ÿÿÿUQU3Ìóóëìvž�uvuëìÌóóÌvž�uvu)*ëìÌÀvëv )ÌÌÌ*ëìvëv3ÌÌ)*ëìvëÀv<ëìvÌÏ?<žìvuëìë�žìÏ?<Ïvuëìë�žìvuë<ÌÏ<ìvžìvuëìvÌÏ?<žìvuëìë�žìÌvuUQU3Ès󩪫¬«¬©ªÈsóÌ«¬«¬¯°©ªÌÀ«©© ¯ÌḬ̀©ª«©©3Ì̯°©ª«©À©<©ª«ŒÏ=,ª«¬©ª©ªÏ=,Ï«¬©ª©ª«¬©<ŒÏ<ª«ª«¬©ª«ŒÏ=,ª«¬©ª©ªÌ«¬UQUU3ÌóóTS«ÿÿ¬«¬TSÌóóÌ«ÿÿ¬«¬«¬T¬ÌÀTVV «ÌÌ̬T¬TVV3ÌÌ«¬T¬TVÀVË ¶ÍÌÉÌÍÎÌ ¶ËÊÇÌÜÌÌ ¶ÉÊÅ ÌÌÌ̶ÉÊÅ ¶ÌÌÌÌÉÊÅ ¶ÌÌÌÌÉÊÅ ¶ÉÌÌÌÌÊÅ ¶ÉÊÌÌÌÌÅ ¶ÉÊÅÌÌÌÌ ¶T¿Ÿ`ÌÌÌÌÖ ‰®ÉjtÌÌÌL‚•j£$£ÌÌ ÌÙi`)MuîóÌÌÌBרvÑݳ©ÌÌÌóSbÜ©IILUUUU3ÀÌ #$Ñ®$#Ì ÀÌ$Ñ®$#$ÀÌ<Ñ®$#$Ñ ÀÌÀ®$#$ÑÌ Ì ®$#$Ñ®ÀÌÀÌ$#$Ñ®$ Ì À#$Ñ®$ÌÀÌ #$Ñ®$#Ì ÀÌ$Ñ®$#$ÀÌ ÌÑ®$#$Ñ ÀÌÌ®$+ ¼ÌÌÌŒ£À£ÌÌÈ̲Ÿ ÌÌŒ ¥ªóÌÌÌ»®ÌŒÌó(Ï´ 34UUUU3ÌÌÌëìvu9t9ëÌÌÌÌìvu9t9ëìÌÌÃÍ}ÎÍ-ÍPͳÍ5Í”^‰[\’\å^,\¶\Šl‰kl‚lõnl¦lŠ|‰{|r|üz|–|Š|‰{|r|ú||–|Šz‡{|r|ú||–|ˆ|‡{|rzü|z˜|ˆ|‰yzr|ü| |˜zŠ|‰{|r|üz|–|Š|‰{|r|ú||–|ˆ^‰[\’\å^,\¶\Šl‡mn€lóll¦nˆ|‰yzr|üz|˜zŠ|‰{|r|ú||–|Šz‡{|r|ªªªªeEee…q‡‡‡‡‡)‰©©§  ©©©Ë÷‰©©Š§!#ACCC#cC1CC!CC##CCA0C#CCc0C!#ACCC!CC##CCA#CCc!#ACC!CC0!#CCA0C#CCc!UUUUÌÌÏ<eSª9QRFÌÌÌÌ�ƒ~P’(ÌÌÌÌxîHiÈsäÌÌÌÌ€HhO“'þÌÌÌÌ)V]å+Á2óÌÌÏC§¨(úSÛEõ<ÌÌÌö®Ü{÷õöÌÌÃ<®Ü{÷õö®ÌÌ3ÌÜ{÷õö®ÜÌÃ<Ì{÷õö®Ü{ÌÌÌÌ÷õö®Ü{÷ÌÌÌÌõö®Ü{÷ÌÌÌÌ4V]å+Á2ëÏÌÌó¨( ÚSÛEõöüÌÃ<Ž Ü{÷õö®ÌÌÌÌÜ{÷õö®ÜUUUUÌÌÏ<9U‘“IuvEÌÌÌÌQ‘�E}‚MOÌÌÌÌ��A…ˆQM�ÌÌÌÌ�?&1IC��ÌÌÌÌQ !O™•]3ÌÌÃ!O™•]<ÌÌÌ!O™•]ÌÌÃÌÌLÌ5ɦ"3ÄÌÃɦ _•›M³ÌÌÌAB#]•™M?ÌÌÌÌ>!]•™O=>ÌÌÃ<_•›M=>ÌÌÌÌ_•›M=>_ÌÌÌÌ•›M=>_•ÌÌÌÌ›M=>_•›ÌÌÌÌM=>_•›MUUÌÌÌÌõ#¨{| ~õÌÌÌÈ#¨¤Ù¶ÄÌÌÌ̈È…grKóÏÏÌ9\[È$ 6 íVÌüüÌEÆ  Ï@ÌÌÃ<È…grKÈÌÌÌÌ…grKÈ…ÌÌÌÌgrKÈ…gÌÌÌÌrKÈ…grÌÌÌÌKÈ…grKUUÌÌÌÌy™šxÌÌÌÌy—ŒŒ"+ÌÌÌ̉�”xu3ÍÌÌ“”|w“ÌÌÌÌ”zw“”ÌÌÃ<xu“”ÌÌÌÌxu“”xÌÌÌÌu“”xÌÌÌÌu“”xÌÌÌÌu“”xuWUœ sýÄ Ïj |Ž íÌÌÌeÿW(+ð%ÌÌÌÌ…'© Z„�ïóÏÏÌ&„ƒ÷÷&áÅ ™†ÌüüÍ�ê©&ü½ ¯Ž¯ýÌã?Žr€‹ù°«�üßÍüb„‹õ¬©žXÌìÏü„�ñª©¢\€ìÏÿÎ�ñª­žhx‹üÏüÌó®­štt‰÷UUÌÌÌÌ£§¥¦“7ÌÌÌÌ£§£¦{_$©ÌÌÌÌ�¥ ‰7£©³ÌÌÌ¡¢‹7£§¡ÌÌÌÌ¢‹7£§¡ ÌÌÃ<‰7£©Ÿ ‰ÌÌÌÌ7£©Ÿ ‰7ÌÌÌÌ£©Ÿ ‰7ÌÌÌÌ£©Ÿ ‰7£ÌÌÌÌ©Ÿ ‰7£©WU©ý Öq b7á¯ÿÌÈÌþ ܵ"I±ÌÌÌÌô!O?Ã| –óÏÏÌ’EFýË ¦²%ŽAÌüüÏÉÍžŒ#ŠaÝÏó?Ç|€bS5ÌÿÏÜÅ|„TM9ÃÌüþÌ| ’NQAÅ|Óóðøòòð÷œRY;Çz Z_1ÇxœUUÌÌÌL¦ ɦÌÌÌÌ '6߸*ÌÌÌÌ5"Ų3ÈÌÌ!"Å´!ÌŒÌÌ"Å´!"ÌÌÃ<Ų!"ÅÌÌÌ̲!"ÅÌÌÌ̲!"ŲÌÌÌÌ!"ŲÌÌÌÌ!"ŲUUÌÌÌÌ9t9ëìvu9ÌÌÌÌt9ëìvu9tÌÌÌÌ9ëìvu9t93ÌÌÌëìvu9t9ëÌÌÌÌìvu9t9ëìÌÌÃ=>=>=>=>=>=><=<;>=>=>=>=>=><=<;>=>=>=>=>=><;<;>=>=>=>=<;<<=<;<;<=>=>=>=><=<=>=>=>=>=>=><=<=>=>=>=>=>=>>;<=>=>=>=>ÿóó=>=>ÖfefefÀÌ3efefeõÿ ÄÌ’— ÌÀÌ{–›ãìŽòþòðöôòYöáòÏèòõ…òûìúòôòQðãð×ö ðï‰ìóòúðùòYðåòãðò ñ‘îïôùòýôOðíòñòòç£òçòéòõðOðùòñèðí¥ðÝðßîéôOðþðþîòï«öãòÓðéöQòôòúð ìdðÙô×òáöUöÿóó ôòìò«€„ƒióÿÿîmníj„mnƒi€¥ªj Ì Ì|Ö{|®| ÌÀÌÓ|Ö{|®ðÿ¿ûù©ù|²|{džqûûËùúûûË£o|{Óˆûùù©ûüùùo£q|{Õ†©ùûûËùúûq£o|{ÓûËûùù©ûüˆo£q|{ùù©ùûûËùÕ†q£o|úûûËûùù©{Óˆo£qûüùù©ùûû|{Õ†q£oË¿ûûËûù|yɈo£ÿóó q V'óÿÿ:'(9('('ÿÿ/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/F¬¸© ¸œº¼¸šº¹º ¸-º¸Z³Y´ZòZíZòXWX\Z:ZÆF½E¾FüFéDþDCDzD`FÊGÅJÄG{IeI{GHGñIúIÆHÃIÆHòJùJòHGH|JfJ¸E½F¾EwE_CyCDCýCêE¬Y³Z´YYY9Y[WXWñYîYª·«›·¹.· ¹º¹ÿÌÌó™·»¹Ü Àÿï}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}7E9 3?5-7- ööô4ööóö!-!"!".  .86@8 ÿÌÌó:Fdcdcdc ÀdcZUU � ° �À� � ° ÌóÌÌ áÏмŸ6tÌÌÌÌõÝñžÊ§EÌÌÌÌ[ó yÂÖ½ÌÌÌ̘íK QÀäÌÌÌÌÁj÷á–¸‹ÂÌÌÌÌ⿸–á÷jEÌÌÌ̾ÚÁ Kí˜ÌÌÌÌ0¨äÉy ó[Ï<ÌÌE™Ÿ ìÏñÝõÌÀÀÀt6R#"ÀÀ@UUU ÌÌ jij–jiÌÌÌÀ•ijij–jÌóÌÌi•œhghiU ÌÌÌ VhijkSÈÌÌÌRhghiÌŒÌÌQRhihÌÌÌÿHLþÿÌÌÌþjLHþÌÌÈÌjihRQÌÌÌŒklkjRÇ<ÌÀSijihV ÌÀ€ÀUNþ€ÀÀÿþZUU� �À� � �ÀÀóÌÌ ‡tseÞÅÏÌÌÌÌ7 ¶Ž\” mÌÌÌÌÉì¨ù_ÜLÌÌÌÌ,Áã¾k­øáÌÌÌÌ]¸¿0®j&^ÌÌÌÌG÷j®0¿¸.ÌÌÌÌKÁk¾ãÁ,ÌÌÌÌJ ú[ù¨ìÉÏ<ÌÌmïÞÝt¶ 7ÌÀÀ€ÏÅÜ ÀÀ@#UUU Ì Ìiÿji•i ÌÀÌjiÿji•ÀóÌÌiQ LhÌÌÌÌŽjHLÌÌLÌjŽlF ÌÌÈ Lh’jHLÌÌLj”jHÀÌÌÌHj”jLÌÌÌÌ Hj’hLÌÌÌÌFlŽjÇ<ÌÌL HjŽÌÀ@ÀhLÿ€ÀþZUU  � ° �  � °ÀóÌÌ îÙÚ2ÏsŸÌÌÌÌ6t÷ ƒËoÌÌÌÌ­A[óGLRÃÌÌÌÌg¿žé•¯ÌÌÌÌÁ[Ãj÷ßãøÌÌÌÌ�Ã[Áº–ß±ÌÌÌÌ„ÁeÞIëÌÌÌÌa\�­oË{Ï<ÌÌóvuªŸsÍõÌÀÀ@Ù÷úÀÀ$UUU Ì Ìjÿij–j ÌÀÌijÿij–ÀóÌ jà `hiÌ ÌÀU ZjÌÈÌÌkSVh ÌŒÌiQPÄÌÀjÿHÌLÌHÿjLÌÀÌÈUihRLÌ ÌYkjR‹<ÀÌ]ihVÀÀ€À ðÿ@ÀÿZUU � ° �À� � ° ÌóÌÌ  Ÿ«xÛÞÌÌÌÌÇË9Á­O[ðÌÌÌÌ mËì)¿RÌÌÌÌòL.Ãß.«éÌÌÌÌ÷]ºÁ0âÂÌÌÌÌ]÷j¬0QÌÌÌÌÄ•JômÂáÌÌÌÌÌÆ ð[ý®Ï<ÌÌì•ËÌlÜÙx´ÌÀÀÀ 9•#"ÀÀ UUU ÌÌ jij–jiÌÌÌÀ•ijij–jÌóÌÌi•’ji² ÌÌÌÌLhŽlk²ÌÌÌÌLjŽli²ÌÌÌÌLh’li² LÌÌLj”hiÄÀÌ̶Hj”hÌÌÌÌg´Hj’ÌÌÌÌhi¶FlÃ<ÌÌŽhg´ HÌÀ€ÀjŽGþ€ÀþUUU ÌÌÌ@ ÌÌÌÌ ß@ ÌóÌÌ ÿ @ ÌÌÌÌ ß@ ÌÌÌÌ ß@ ÌÌÌÌ ß@ÌÌÌÌ ßÌÌÌÌ@ ßÌÌÌÌ@ ÌÌÌÌß@ Ï<ÌÌ ÿ @ Ìó3Ì ÿÿÿÿÿÿÿ3Ì3ÿÿÿÿÿÿÿÿ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ÿ Ìó€€€€ÿ€ ó €€€ öÁ~¥ƒÚ}%~¥??€¿ Ð                                                                 D06_banner D06_bannerœÄ ÁŸ|oÃ[¹hÄ¢EöÀlInÓhÄ  œÄ Á“hDŸ|oâEöÀ[¹hDlIn룠3Ìñòðñ3Œ3È 3Ì2104’’ÀÀbÀÀaÀÀbÀÀb3Ìÿÿÿÿ óÿÿÿÿaçÿç˜þgÿç?€>€¿Ð D00_fence D00_fence€ÁÊCîÁõ{êÂÓ^•AÀì ÁÕçÂð ð€ÁÕçBÊCîÁÓ^•Aõ{êBÀì Á6 . õ×3óóÀBABýþýHGH3óó656¤£¤ïðï…†… @?@ Ÿ öõö¹º¹opo/0/ :9:dcd‚�óóóÀQABAüûüEFE3óó434š™šÿÿÿ›œ›9:9$#$~}~ÒÑÒÛÜÛ“”“OPOLKLpo‘V 3óÒ@%&%!¡¡³B$B$DFdDóóóÀ�$#$!€!¡³B$B$DDDDùÿ3óóóÿÿÿÍÎÍÅÆÅÅÆÿù •Y Å¿À¿  )*)787CDCQRQabaqrq�‚�“”“¥¦£ÿÿÿÍÎÍÅÆÅÅÆÅËÌË€€zyz~}~€€†…†Š‰Š”“”š™š¦¥¦®­®¼»¼ÈÇÈÔÓÔäãäôóýÿ3óóóÿÿÓÉÒCËF†lËkÇPÉQãŠË‡«SËTx7Ë8”Ë ¬?Ë@Œ!Ë"ª;Ë<�)Ë*¢/Ë0œ'Ë(¤0Ë/üËÐËâËàËæ\Ë[uŸË ,'Ë(¤„˃¯PÉQã–Ë“Ÿ÷Ëø+ÃËÄíËî!ëËì÷Ëø+áËâÓËÔ÷Éö+ôÉóAêËçKîËíEœÉ�—ÐËÍeÔËÓ_ ËŸÿÿ7533353335555555555Q7533333333333333333UUÀÀÀh0cÀÀÀë*<ÀÀÀÀHZr‚ÀÀÀÀžÀÚôÀÀÀÀçÃ¥}ÀÀÀÀ`h0cÀÀÀë*<ÀÀÀÀHZr‚ÀÀÀÀžÀÚôÀÀÀÀçÃ¥}UUÀÀÀ>@@@@@@@@@ÀÀÀÀS>@@@@@@@@@UUÀÀÀg/dÀÀÀë*<ÀÀÀÀHZr‚ÀÀÀÀžÀÚôÀÀÀÀçÃ¥}ÀÀÀÀ`h0cÀÀÀë*<ÀÀÀÀHZr‚ÀÀÀÀžÀÚôÀÀÀÀçÃ¥}UUÀÀÀ= @@@@@@@@@@ÀÀÀÀS>@@@@@@@@@@UUÀÀÀe”ÀÀÀÀkðúýÀÀÀÀ§ìÃìÀÀÀÀþÚLóÀÀÀÀ”š~ÀÀÀÀyZ6ÀÀÀÀköÚ•ÀÀÀÀíãÖÖÀÀÀÀëäÄ”ÀÀÀÀùRŽUUÀÀÀ,p€€€€€€ÀÀÀÀ>+ €€€€€€UUÀÀÀÉ«¦ÀÀÀ»„”ÀÀÀÀžª¾ÊÀÀÀÀâú÷ÕÀÀÀÀ½�‡kÀÀÀÀ1½¡¨ÀÀÀ»„–ÀÀÀÀœ¬ºÈÀÀÀÀâüïÝÀÀÀÀµ§‰cUUÀÀÀ4 @@@@@@@ÀÀÀÀG6 @@@@@@@UU3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€3333€€€€UU ÌÌÌÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿUU ÌÌÌ~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~:!eñåL3›ÁgT€¿õÐD06_liftD06_lift�¨„Âa2wë³qÄŒôÀ�å;Ã4hFÄ   hÒh�¨„Â4hFDa2wÃŒôÀ«³qD�å;ÃT ÒL  ½ûÿ óó󈇇ˆ‡ïð‰‡ˆò†…ñò ³ôZYoXB²´XrY×abôóô?Oÿefaba.™³ôZYoXB²´XrYÆbaÿCôóô^abefabak³ôZYoXB²´XrYÆba^abababaŒÈšÇ™šÈ™ÇšÈšÇ™šÈ™Çš™šÈšÇ™˜Ê™Çš— šÉ™ÊɚʜšÊšÉ™šÊ™ÉšÊšÉ™šÊ™ÉÀšUUUÀÄ`ŒÀÀ,+ Ã<,+,+,@ ó+,óÀÌ+,+,+,3ÐH+,�?0 +,+,+,<Ê@+,+,$I!$�-' H@€B@$Õ¿ÿ óÀóPOPOPfMN ÀÏÿMNØœ6\434ÏüÌÏžÒ565L : 9:909:/: 9: 9 cÑž�656œÒ343@ D 787.9:-8 9: 7 Ìœ6\434žÒ5ÿú ù ÿ�65BD9:9:9 : 9 :c U @U V W W @W X UX? U @U V WVÄU V W LU W @U X W U @W V ðUEUU€Àj ©`@’a’HÀ@€© HBÏ©©ª©0ÀÏ3ª©©ª©ª©<Ï3?ª©©ª©ª©ª«©0ÌÀϪ©ª©©ª©0ÀÏ0ª©©ª©ªÀ©UWý3 ÌÌijijijió ó?jiji6…†…†…ÿÿ30†…†…†…'POPOÌÀ POPO;…†…†…†…†…†…)RÌÌÌQRQRQRÀó?ÿQq…†…†…†…†…üÌÌφ…'POPOPOP< ÷OPO½m×l×nØmÜÙÙÚkÙnÙnÚl×ÛÚm×n×nØn×ÛØ ×lÚmm×njÜÙÙÚkÙnÙnÚmÚ×ÛÜm×n×nØmÜð×ÛU›U3 ÌÌó ó?KTSTSTÿ÷30STSTSTÌÀ ‚VUVUVUVUVUV0@0@0@Àó?ÿ.VUVUVUVUVÿ@0@0@4UV< Ï�–—˜6Àϳ•–˜—–—˜|Ï3?•˜–—˜•–—Ô–1ÎÀÏ•˜—–˜—–°ØÏ6—˜–—˜•À–UUUÀÀÀ”IIÀÀŒ ”I©¯ÌÌ ©ª°¡”‘ �¸¥ª0ÌÌÀ©¯©ª°¡ÀÀÀÀ”‘�¸@Ì Ì©¯©ªÌ °¡”‘�  ¸˜’ ±’ ±’ ± ’ ±’ ±’ UUUÀÀÀ¹¡£ÀÀÌ ¹¡ÿ ¾ÌÌ  Ÿ½`ý ýþ¢Ÿ0ÌÌÀ ¾ Ÿ½`@À@ÀýýÀŒ Ìþ ¾ ŸÌ ½`ý ýþ*† ¯*†¯ *†¯* †¯*† ¯*†¯UUUÀÀNMÀÌÀN åOÌ Éå � ”¶Õæ< ÀÀåOÉå À@ÀÀ�”¶@ÌÀÌåOÉå  �”  ¶×' L#'L #'L# 'L#' L#'LUUUÀÀ¤£ÀÌÀ¤ý¥¹Ì  Ÿ¥]ÿ þ^¦< ÀÀ¥¹Ÿ¥]€À@€ÿÀÌÀÌþû¥¹Ÿ¥  ]ÿ þRØ )­Ø) ­Ø)­ Ø)­Ø )­Ø)UUUÀÀMNÀŒÀML—Ì LLl� “kK< ÀÀL—LLlÀ€ÀÀ�“ÌÀ̹L—LL  l�“  •š• š•^ in „UUUÀÀ£¤ÀÌÀ£ý¢ºÌ  ¤¢^ÿ ÿ]¡< ÀÀ¢º¤¢^@À€ÀÿÿÌÀÌÿ¢º¤¢  ^ÿ ÿ2 èæ2è æ2èæ 2èæ2 èæ2èUUUÀÀÀ”IIÀÀŒ ”IL›ÌÌ LKœh”‘ �‘gK0ÌÌÀL›LKœhÀÀÀÀ”‘��Ì ÌµL›LKÌ œh”‘� ‘!r ®ælœ ølœÞ ššÔˆ ªÖ€’UUUÀÀÀ¹¡£ÀÀÌ ¹¡ÿ¢ºÌÌ ¢¡¹^ý ý]¡0ÌÌÀ¢º¢¡¹^@À@ÀýýÌ Ìÿ¢º¢¡Ì ¹^ý ýk ¦¥¦ ¥¦¥ ¦¥ ¦¥¦UQU óóóìë�ž�uvuëìÌóÌÌvž�uvŸ*ëìÌÀvëv)<ÌÌ*ëìvëvÌÌÌ)*ëìvëÀv<ëìvÏ?<Ìž�uvuëìvžìÏ<ÌÌvuëìvžìvžÏ??<ìë�ž�uvuëìvÏ?<Ïž�uvuëìvž�u0vUQU Òs󪩬«¬©ªÈsÌÌ«¬«°©ªÌÀ«©©¯<Ḭ̀©ª«©©ÌÌ̯°©ª«©À©<©ª«‡?<Œ¬«¬©ª«ªÏ<ŒÈ«¬©ª«ª«Í'?<ª©¬«¬©ª«‡?<‡¬«¬©ª«¬0«UQU óóóSTÿÿÿ¬«¬TSÌó Ì«ÿÿ¬«¬T¬ÌÀTVV«<Ì̬T¬TVVÌÌÌ«¬T¬TVÀV?€¿mÐ                   D06_pine_cone D06_pine_conex )­xÃçÈpÄÙß—A•ÕXÃ3d[Ä’s’x )Â3d[D­xÃÙß—AçÈpD•ÕXÃ¥Ms�M _wÝÕŸ ž�ž�Ÿ Ÿ Ÿ ž�6556566565Ï3ÿÃ6556$##$#$$ÿ<ð0#$#$##$ï!"Ž~}{|{|~}~}Ï3ÿÃ~}{|}~~}~}}~}~}~~}STTSTSüóÀSTSTSTTSïÀÏÿà =efhghgefefefhgÎÍËÌËÌüó?ÎÍÎÍÎÍËÌËÌÎÍÎÍËÌËÌËÌÎÍí?ÿ!">ˆ‡…†…†üó?ˆ‡ˆ‡ˆ‡…†ßààü?óÌßàßßàßàßààßÀ¿¿À¿ÀÀ¿À¿À¿¿«ªª¥  Ðàí¼¼ííàÛ —‡€ šš p‚íÞÞííÙàÝ »ËÀ ¼¼ °À‡xx‡‡€w  ü½íà î¼¼ Ð੼¼©© › W‡€VVp€?ÿ üó? ËÀÞÞ °À©xx©© —ÿþÿýZ\[\ZY´³ZY[\ZµYZ¶ZËóóôóõöõöôóõôóóÑ¡¡¢¡£¤º¹£¤¢¡£¹¢¡º¡zyzyC4V4CÌ„ÀÂÁÂÂÁ}~ÂÁÁÂÂ|¿À{À(ÕÓÔÓÓÔXWÓÔÔÓÓWÖÕXÓlzyzyßaabaabÁÂabbaaÄbaÃ_)vvuvvuìëvuuvvëuvìvÝøúùúúù úùùúú ÷ø úÐÏ0?ÿzyzyªÔÔÓÔÔÓWXÔÓÓÔÔXÓÔWÔ““”““”Ø×“””““×”“Ø“aabaabÅÆabbaaÄbaªªªªef\¶UfµloFVC©CVI4¦ôCD6T3DsH%! fVeËeVkVÆôed8t5d“JOD4!e!4%4dQ ôef\¶fUf³LoD4C©C4G4†ô!$6T1$SF#!hxeíexmVèöed:”5d•joD4CeC4G4_§W×0/0/0/0/0/0/&%&%&%&%&%&À ÿÿ%*)*)*)*)ÿ3?*)*)æêéêéêéê+=>=>=>=>=>=À ÿÿ>¸0/0/0/0/ÿÿee0/0/îeee`ðð~=>=>=>=Z±²±²±²±²ÿ3ÿ±²±²­43434ÿüÏ3434343;?@ÿÿð?@?@?@?@?@˜—˜—˜—˜�§¨§¨§ÿüϨ§¨§¨§¨´³ÿÿð´³´³´³´³´³i÷ø÷ø÷ø÷ø÷ø÷ø_WW×*)*)*)*)*)*)"!"!"!"!"!"À ÿÿ!&%&%&%&%ÿ3?&%&%A('('('('('(À ÿÿ'    ÿ3ÿ  $#$#$ÿüÌ#$#$#$#?[&%&%&%&%ÿ3ÿ&%&%ÿüÏ"!ÿÿð"!"!"!"!"!;,+,+,ÿüÏ+,+,+,+&%ÿÿð&%&%&%&%&%*)*)*)*)*)*)UUUUff@@™™ffd!™™�ffd!™™�€!™™�†ff@™™UUUU?ü?Ðÿðÿ¢¡¡¢¡¢¢¡¢¡@ ÿÂ��‚�‚‚ý0�‚�!ÿðÿ@ ÿâ¡¡¢¡¢¢ý/ÿ¡¢¡‚��‚�‚ôÀ‚�‚�@‡ÿÃý/ÿ¢¡¡¢¡¢ô¿¢¡¢¡‚��ü?Ђ�‚‚�‚�ÿô¿¢¡¡ü?Т¡¢¢¡¢¡ÿðÿ@‚��‚�‚‚�‚�UWUU?ü?ðdcefefdcdcþÿðÿýfeghghfefeÀÿÃþýxwyzyzxÿ00wxwþ‚ÿÿ€dcefefdcdcÀÿÃþýfeghghfÿ?ÿefeþýxwyzyzüÀxwxwþ‚ÀÏÿÃÿÿ€dcefefdÿ?ÿcdcþýfeghghüÿfefeþýxwyü?ðzyzxwxwþ‚?ÿÿÿ€dcefefüÿdcdcþýfegü?ðhghfefeþýÿðÿÀxwyzyzxwxwþ_WUÕ¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿@ÿÿL$mnmmnIJmý4’nnm„¤ÖÕÖÖÕ…†ÖÕÕÖ@ÿÿ«‘¿À¿¿À®­¿ý?ÿÀÀ¿L$mnmmnÿôÒIJmnnmHÿÿ„¤ÖÕÖÖÕ…†Öý?ÿÕÕÖ«‘¿À¿¿Àÿôÿ®­¿ÀÀ¿L$mnÿÿÐmmnIJmnnmI ?ÿ„¤ÖÕÖÖÕÿôÿ…†ÖÕÕÖ«‘¿Àÿÿп¿À®­¿ÀÀ¿L$mnmmnIJmnnm_WWÕR<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<ÀÿÿþThFEFDC¬«Dÿ<óCEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<ÀÿÿþrT<;<:9Ž�:ÿ?ÿ9;<þThFEFDCÿüó¬«DCEFþ‚ÿÿÿÿ R<;<:9Œ‹:ÿ?ÿ9;<þrT<;<:9ÿüÿŽ�:9;<þThFEÿÿðFDC¬«DCEFþ‚Ï0?ÿÿÿÿÿ R<;<:9ÿüÿŒ‹:9;<þrT<;ÿÿð<:9Ž�:9;<þThFEFDC¬«DCEFþWWUUHKLKKLKLLKÿöÿJKLKKLKLLK ÿÿL\[\÷ø«¬õÿ@ö[\©H^]^õö­®õö]^À ÿÛ©JKLKKLKü/ÿLLKLMNMMNoð!KLNMÿÿHKLKKLKü/ÿLLKJKLKKLoð¿KLLKLOPü?àOKLKLPOÏ?ÿHKLKKLÿð¿KLLKJKLý¿ÀKKLKLLKÿöÿLMNMMNMNNM_WWÕ¢^]^\[þý\[]^ÿ¢ÞÝÞ#$~}#$ÝÞÀÿÿÿ¢÷ø÷MNTSMÿ<óNø÷©€ÿÿÿÿ€¢÷ø÷MNTSMNø÷Àÿÿ©ÿ¢ÞÝÞ#$~}#ÿ?ÿ$ÝÞÿ¢^]^\[ÿðóþý\[]^€ÿÿÿÿ€¢^]^\[þý\ü?ÿ[]^ÿ¢^]^\[ÿðÿþý\[]^ÿ¢£¤ü?𣡢¡¢¤£ý~Ï1?ÿýþýÿ‚¢ÞÝÞ#$ÿüÿ~}#$ÝÞÿ¢ÞÝÿÿðÞ#$~}#$ÝÞÿ¢^]^\[þý\[]^UWUU?þðIHLKLKGHGHÿöÿILHGJIKLKLÿÿIö_`_`«¬÷ÿøõö©Iöab_`«¬õöõöÀÿÛ©KNHGHGKüÿLMNIHNMNMŸüIJGH@‡ÿçIHLKLKGÿÿHGHKJLKNMŸüGHIJKLLü?àKLKKLKLÿKNHGHGoðKLMNKNHý¿ÀGJIKLMNÿùÿÀKJNMNMIJIJ_WWÕ£][\[\ýþ^]^]ÿ£$ÝÞÝÞ€#$#$Àÿÿÿ£Nø÷ø÷VUMÿ00NMN©€ÿÿ€£Nø÷ø÷VUMNMNÀÿÿ©ÿ£$ÝÞÝÞ€#ÿ?ÿ$#$ÿ£][\[\ÿøÀýþ^]^]€ÿÿ€£][\[\ýþ^þ?ÿ]^]ÿ£][\[\ÿøÿýþ^]^]ÿ£¤¢ü?𡢡£¤£¤ÿ€?ÿÿý€£$ÝÞÝÞÿüÿ€#$#$ÿ£$ÝÿÿðÞÝÞ€#$#$ÿ£][\[\ýþ^]^]UUUU?ÏÌðì) uu&{zø˜{zâ`{z<ò}zyzø˜{zâ`{z‰{z€ó}zyÈâ`z{z‰{z€~{z&}Ï ‰zyz{z€~{z&ø˜{z@A?ËÌËÌÿËÌËÌ ËÿüÌËÌËÌËÌ3ÿðËÌËÌËÌËÌ@A?ÍÎÍÎÿÍÎÍÎ ÍÿüÎÍÎÍÎÍÎ3ÿðÍÎÍÎÍÎÍÎWWW×ÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]WWWÿÿÀ~}~}~}~}~}~}~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3?~}~}|{|{|{|{~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3ÿ~}~}~}~}~ÿðÌ}~}~}~}|{|{|{|{~}~}~}~}ü3ÿ~}~}~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}|{|{|{|{~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~õyÝõ< ÿÀï d·¸¸ü?óÌ·¸··¸·¸·¸¸·¯°°¯°¯¯°¯°¯°°¯65343465656<ð03534ï f¼©©¼¼°Ê ¬««¬«¬¬«¬«¬<Ïÿ««¬rqststrqüóÀÀrqrqstï!"wxvuvuwxwxw<ÏÿxvuVUUVUVVUVUVUUV879:9:?óÏ8787879:ï?ÿ Í„ƒ�‚�‚„ƒ„ƒ„ƒ�‚ãääãäããäãäãääã¾½½¾µ­ª¦8ÿ'ü?óÌ ™©  šš<à#  ½íà ¼¼ Ðà‡xx‡‡€w ŸýíàÿÿÐàí¼¼ííàÛ w‡€xxp‚?ÿ%ÿðÿÛËÀÞÞ °À©xùýÿÿÿ<ÀÿÃcwzyzy’ —�÷Š—ø•TRQRTS¨§TSQRT¥ST¦Tê865687po87568ÿüóm78n8TzyzyÔ–˜—˜˜—ÏИ——˜˜Ð•–ϘXÃÃÄÃÁÂzyÁÂÄÃÁyÄÃzÃŒ�ƒ„ƒ�‚üû�‚„ƒ�ù‚�ú�7zyzyGjlkljiÖÕjikljÕijÖløçåæåçè21çèæåç1èç2åý™™š™™šÌË™šš™™Ëš™Ì™ zyzy½ÔÒÑÒÒÑ[\ÒÑÑÒÒ\ÓÔ[Òy•“”“•–ÖÕ•–”“•Õ–•Ö“acdcªªªª‚Q ø‡ˆøwˆ÷��fV‡í‡V�VæôCD:”3DsHg! hxeËexmVæôed:”5d“JoD4!e!4%4dQ öeh~ØuhÕnod4eËe4iV¦ô!$8t1$SFE!†V‡í‡V�xæöCF\¶SF•jo$4õ~]] ÏÿÏ@jijijijAèçÿÿðèçèçèçèçèç<ÒÑÒÑÒÑÒÑÒÑÒÑÏ!"!"!"!"!"!"eeoë8787878787878û�Ž�Ž�Ž�Ž�Ž�Ž3ÿÿÚcdcdcdcdcüÌÿdcdŒSTSTSTS¶ž�ž�ž�ž�ž�ž�3ÿÿZ€€€€€üÏÿ€L������ÿð3������Dáâáâáâá­³´³´³´³´³üÏÿ´³´¬«¬«¬«ÿð?¬«¬«¬«müûüõ}]] ÏÿÏG65ÿÿð6565656565 *)*)*)*)*)*)0/0/0/0/0/0/3?ÿQ,+,+,+,+,+,+$#$#$#$#$#$#3ÿÿ('('('('(üÌÿ'('E%,+,+,+,+,+,+3ÿÿ$#$#$#$#$üÏÿ#$#&%&%&%ÿð3&%&%&%C.-.-.-.-.üÏÿ-.-$#$#$#ÿð?$#$#$#('(UUUU€™™ffd™™ffd!™™�!™™�†ff@ €UUUU ü?Ðÿðÿ@¢¡¡¢¡¢¢¡¢¡ ÿÃý‚��‚�‚‚�‚�0!ÿðÿ@ ÿÃý¢¡¡¢¡¢¢¡¢¡/ÿ‚��‚�‚‚�ôÀ@‚�‡ÿÃý/ÿ¢¡¡¢¡¢¢¡ô¿ü¢¡‚��‚�‚?Ђ�‚�ÿô¿ü¢¡¡¢¡¢?Ðÿ¢¡¢¡‚��‚Õu]U ÿ‚ÿÿ€dceü?ðfefdcdcþýÿðÿÀfeghghfefeþýxwyzyzxwxwþ003‚ÿÿ€ÿðÿÀdcefefdcdcþýfeghghfefeþ?ÿýxwyzyzxwüÀÀxwþ‚ÿÿ€dcefefdcdcþ?ÿýfeghghfeüÿüfeþýxwyzyz?ðxwxwþ‚ÿ?ÿÿ€dcefefdcüÿüdcþýfeghgh?ðÿfefeþýxwyzõ}]U $€ÿ„¤ÖÕÿÿÐÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnm4’„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿?ÿÿL$mnmmnIJmnôÒHnm„¤ÖÕÖÖÕ…†ÖÕÕÖ?ÿÿ«‘¿À¿¿À®­¿ÀôÿÿÀ¿L$mnmmnIÿÐIJmnnm ?ÿÿ„¤ÖÕÖÖÕ…†ÖÕôÿÿÕÖ«‘¿À¿¿À®ÿÐÿ­¿ÀÀ¿L$mnmõ}]]<Àÿ‚ÿÿÿÿ R<;ÿÿð<:9Œ‹:9;<þrT<;<:9Ž�:9;<þThFEFDC¬«DCEFþ<ó‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<þ?ÿÿThFEFDC¬«DCüóÌEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þ?ÿÿrT<;<:9Ž�:9üÿÿ;<þThFEFDC¬ÿðÏ«DCEFþ‚ÿÿÿÿ R<;<:9Œ‹:9üÿÿ;<þrT<;<:9Žÿðÿ�:9;<þThFEFU]]U@ÿHKLÿÿÀKKLKLLKÿöÿJKLKKLKLLK ÿÛüLMNMMNKLNMñHKLKKLKLLK ÿÛüJKLKKLMNLK/ÿÿL\]^÷ø«¬÷øü![\©H^]^õö­®÷ø]^©/ÿoJKLKKLKLð¿ÿLKL\]^÷ø«ÿðϬ÷ø[\©?ÿoHMNMIJIJø¿ÿNMJ€€èçÍÿðÿÎèç€ËLMLKõ}]]<Àÿ€ÿÿÿÿ€¢ÞÝÿÿðÞ#$~}#$ÝÞÿ¢^]^\[þý\[]^ÿ¢^]^\[þý\[]^<ó~ýþýÿ‚¢ÞÝÞ#$~}#$ÝÞÿ¢^]^\[þý\[]^?ÿÿÿ¢÷ø÷MNTSMNüóÌø÷©€ÿÿÿÿ€¢÷ø÷MNTSMNø÷©?ÿÿÿ¢^]^\[þý\[ðÿÿ]^ÿ¢÷ø÷MNTÿðÏSMNø÷©~ýþýÿ‚¢ãäãab@?abüÿÿäã½ÿ¢ÕÖÕop2ÿðÿ1opÖÕËÿ¢^]^UU]U?ILHý¿ÀGJIKLKLÿùÿÀIHLKLKGHGHÿçÿKJNMNMIJIJ2!ÿöÿILHGHGKLKLÿçÿKJLKLKGHIJÿÿKø_`_`«¬÷øüD÷ø©Køabab«¬õö÷ø©ÿŸKJLKLKGHüÿIJKø_`ab«ÿð¬÷ø÷ø©ÿKLJIJIIJøÿKLK僄�‚ÍÿðÿÎèçæåËKJNMõ}]] ÿ€ÿÿ€£$ÝÿÿðÞÝÞ€#$#$ÿ£][\[\ýþ^]^]ÿ£][\[\ýþ^]^]023€þÿ€£$ÝÞÝÞ€#$#$ÿ£][\[\ýþ^]^]?ÿÿÿ£Nø÷ø÷VUMNüÀÄMN©€ÿý€£Nø÷ø÷VUMNMN©?ÿÿÿ£][\[\ýþ^]øÿÿ^]ÿ£Nø÷ø÷VÿðUMNMN©€ÿÿ€£dâáâá@?cdüÿÿcd¿ÿ£pÖÕÖÕ4ÿðÿ3opopËÿ£][\UU]U<Ìÿefeef…ì) ÏÌðuu}zyz{z&ø˜{zâ`{z<ò}zyzø˜{zâ`{z‰€{zóÈ}zyzâ`{z‰€{z~&{zÏ}zyz ‰€{z~&{zø{zÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿËÌËÌËüÌËÌ3ËÌÿðËÌËÌËÌÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿÍÎÍÎÍüÎÍÎ3ÍÎÿðÍÎÍÎÍÎõ}]]ÏÿÏ21212121ÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð3ÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÕu]] ÏÿÏ}|{|{|{|{~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3?ÿ}|{|{|{|{?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÌÿ}~}|{|{|{|{~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ3~}~}~}|{|{|{|{~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ?~}~}~}~}~u×÷÷ðÿÏ<½¾¾½¾½¾½½¾ï ÿü dЉ‰Š‰ŠŠ‰Š‰Š‰‰ŠÝÞÞÝðÿÏ3ÞÝÝÞÝÞÝÞÞÝÂÁÁÂÁÂÂÁÂÁÂÁÁð03ÿÂï -€~}ðÿÏ3~}€€€~}»¼¼»¼»»¼»¼»óÀÀϼ¼»ï a���Ž�Ž�������ŽÙÚÚÙÚÙÙÚÙÚÙÚÚÙÄÃÃÄÃÄÄÃÄóÏÃÄÃÃÄï èÙÚÚÙÚÙÙÚÙÚÙÚÚÙÉÊÌËÌËÉÊɶ–¶úx©© — ÿü– ¼ííàÛ —‡€ šš pà#ÿ£ðÿÏ3ÝíàÞÞ Ðà‡šš‡‡€ó@� tðíÞÞííàÝw‡€xxp‚¥÷÷÷ÿcdÇÈcddccÈbaÇcuz<Àÿÿyzy'ÖÔÓÔÖÕSTÖÕÓÔÖVÕÖUÖ…‘“”“‘’ÚÙ‘’”“‘Ù’‘Ú“aabaabÃÄabbaaÄbaÃüóÿawzyzy&ÃÃÄÃÅÆvuÅÆÄÃÅuÄÃvà A?@?ABƒ„AB@?A‚BA�AÚ+)*)+,WX+,*)+VÿóÌ,+U+åzyzyàØØ×ØØ×OPØ×רØPרOØ�‘���‘’ÞÝ‘’��‘Ý’‘Þ�a_`__`ÁÂ_``__Àba¿a{zyzy-.,+aHHGHHG��HGGªªªªC‡C4G„Q öeh~2ØuhÕnod4eËe4iV¦ô!$8t1$SFE!hx+‡í‡x�Vööef\¶UfµloD4C‡C4G4„pö&‡†^ÖW†Õn�fVC©CVIV¦ôCD6T3DsH%!ˆx‡ÿ‡x�1xøöef\¶U]ï÷uÿÿÀ ûüûüûüûüûNfefefeft¡¢¡¢¡¢ÿð?¡¢¡¢¡¢¼»¼ÿÿÀ »¼»¼»¼»¼»cóôóôóôóôóôóô2nmnmnmn_VVVVPð�àßàßàßàßàßàßÞ‹Œ‹Œ‹Œ‹Œ‹Œ‹ŒÌÿüJMNMNMNM������������ ÈÇÈÇÈÇÈÇÈÇÈÇÏÿÿ[åæåæåæåæåæð3ÿåætstststˆ‡ˆ‡ˆ‡ˆ‡ˆ‡ˆ‡Ïÿÿ†…†…†…†…†…]ß÷uÿÿÀ '('('('('G9.-.-.-ÿð?.-.-.-&%&ÿÿÀ %&%&%&%&%*)*)*)*)*)*)G0/0ÿÿÀ /0/0/0/0/&%&%&%&%&%&%,+,+,+,+,+,+ÌÿüK1.-.-.-.-.-.-&%&%&%&%&%&%Ïÿÿ*)*)*)*)*)ð3ÿ*)G*656565656565Ïÿÿ,+,+,+,+,+UUUU™™†ff@@ffd™™ffd!™™�!™™�†ff@ €UUUUðÿ@ �‚‚�‚�ü?Ðÿ¢¡¡¢ðÿ@ ¡¢¢¡¢¡‚ÿÃý��‚�‚‚�‚�0!ÿðÿ@ ¢ÿÃý¡¡¢¡¢¢¡¢¡/ÿô‚��‚�‚‚�‚�À@‡ÿÃý/ÿô¢¡¡¢¡¢¢¡¢¡¿ü?‚��‚�‚‚�‚Ð�ÿô¿ü?¢¡¡¢¡¢¢¡¢UU×uðÿÀ yzxwxwþ‚ ÿüÿÿ€dcefef?ðÿdcdcþýfeghðÿÀghfefeþýxÿÃÿwyzyzxwxwþ003ÿ‚ÿÿ€dcefðÿÀefdcdcþýfÿÃÿeghghfefeþýxwyzyzxwxwþÀÀÏ‚ÿÿ€dÿÃÿcefefdcdcþýfeghghfefeþÿü?ýxwyzyzxwxðwþ‚ÿÿ€dcefefdcdcþÿü?ýfeghghfefUU×÷ÿÿ@ mnIJmnnm$€ÿÿ„¤ÖÕÖÖÕ…ÿÐÿ†ÖÕÕÖ«‘¿À¿ÿÿ@¿À®­¿ÀÀ¿L$ÿÿýmnmmnIJmnnm4’ÿ„¤ÖÕÖÿÿ@ÖÕ…†ÖÕÕÖ«‘ÿÿý¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnmÒH„¤ÿÿýÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnÐI m„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀU×÷÷ÿÿÀDC¬«DCEFþ‚ÿ<Àÿÿÿÿÿ R<;<:9Œÿðÿ‹:9;<þrT<;<ÿÿÀ:9Ž�:9;<þThFEFDC¬«DCEFþ<óÿ‚ÿÿÿÿ R<;<ÿÿÀ:9Œ‹:9;<þrT<;<:9Ž�:9;<þThFEFDC¬«DCEFþóÌ‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<þThFEFDC¬«DCEðÏ0Fþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;UUUuöÿMNKLNM@ÿÿHKLKKLÿÀÿKLLKJKNMöÿ KLKLLKLÿÛüMLKMNKLNMaÿHMNMöÿ€ IJIJNMJÿÃþMNMIJIJNM/ÿoðLMNMMNKLNM!HÿÿüKLKKLKLLK/ÿøJMNMIJIJNM¿ü?LONMKLIJPà„OH³´³dc´³h¿ü?JMNMIJIJNUÕ÷wÿÿ\[þý\[]^€ÿ<Àÿÿÿÿÿ€¢ÞÝÞ#$~ÿðÿ}#$ÝÞÿ¢ÞÝÞÿÿÀ#$~}#$ÝÞÿ¢ÿÿü^]^\[þý\[]^<óÿ€ÿÿÿÿ€¢£¤£ðÿÀ¡¢¡¢¤£ýÿ¢ãäãab@?abäã½ÿ¢^]^\[þý\[]^óÌ€ÿÿÿÿ€¢ÞÝÞ#$~}#$ÝÞÿ¢£¤£¡¢¡¢¤£ýÿ¢ãäãab@?abäðÏ0ã½€ÿÿÿÿ€¢öõö;&yz{zø{z˜{â`z<òø}zyz{z˜{â`z‰€{zóÈ}zyz{â`z‰€{z~&{zÏ }zyz‰€{z~&{zÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿüËÌËÌËÌËÌ3ÿËÌËÌËÌðËÌÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿüÍÎÍÎÍÎÍÎ3ÿÍÎÍÎÍÎðÍÎ]×÷uÿÿÀÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ?21212121ÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿü21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð3ÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]]×uÿÿ }~}~}~}~}|{|{|{|{~}~}~}ÿÀ?~}~}~}~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~}|{|{|{|{~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~}~}~}~}~}~}~Ìÿü}|{|{|{|{ÿÿü~}~}~}~}~}~}~}~}~}~}~}~Ïÿÿ}~}~}~}~}~}À3ÿ~}|{|{|{|{~}~}~}~}~}~Ïÿÿ}~}~}~}~}~}U§­ßóÌÿðÊÉÊÌË$#!"!"ÿÏ< $#$#$#!"í! ÿü?":433434434óÌÿð34334·¸¸·¸··¸·¸·¸¸·yz|{|Ãÿ<ð{yzyzyz|{ïVee ?VVPfÿÿ°¯¯°¯Ãÿ<ϰ°¯°¯°¯¯°vuuvuvvuvuvuuvððð÷ˆxï #p‡‡€pÿçèèçèççèçèçèè癚œ›œ›™š™š™šÏ?œ›ï >ÃÄÂÁÂÁÃÄÃÄÃÄÂÁªÚªÚÿð𩚚©© ™  þÝíàÞœÞ Ð੼¼©© › W‡€VVp€#ÿð¥ À ¼¼ °À‡xx‡‡€w 0@þÝívàÞÞ ÐàËššËËÀ¹ ue`xxÎ?‹ÿÿߟHH�GH�Hï00/00/`_0//00_/0`0dzyzyå!"!!"CD!""!!D C!ò¨ª©ª¨§­®¨§©ª¨®§¨­ªvããäãåæ65åæäãå5äã6ãŒzyzyˆšš™šš™ÉÊš™™ššÌ™šËœNÁÁÂÁÁÂ~}ÁÂÂÁÁ{ÂÁ|¿„�‚�€þý€‚�ý€þ�óÌÿ9zyzy99:9;¬«¬«¬«¬«¬«¬«3ÿóœíîíîíîí,ÊÿÿüÉÊÉÊÉÊÉÊÉÊÉuuu]ð?ÿ,+0/0/0/0ÿÀ Ï/0/0/QK&%&%&%&%&%ð?ÿ&%    ÿÀ ÿ  $#$#ÿÿ3$#$#$#$#=*)*)*)*ÿÀ ÿ)*)*)$#$#ÿÿ3$#$#$#$#&ÿÿü%&%&%&%&%&%E7&%&%ÿÿ3&%&%&%&%ÿÿü"!"!"!"!"!"!3ÿó="4ÿÿü34343434343UUUU™™†ff@@ffd™™ffd!™™� †ff@!™™�UUUUÐÿð¡‚��‚�‚ÿ@ ‚�‚�ü?Ðÿ𢡡¢¡¢ÿ@ ÿ¢¡¢¡‚��‚�Ãý0‚‚�‚�!ÿðÿ@ ÿ¢¡¡¢¡Ãý/¢¢¡¢¡‚�ÿô�‚�‚‚�‚�À@‡ÿÃý/¢¡ÿô¡¢¡¢¢¡¢¡¿ü?Ђ��‚�‚‚�‚�ÿôUUU]ðÿðeþýxwyzyzÿÀ xwxwþ‚ÿ ÿü?ÿ€dcefefdcdðÿðcþýfeghghÿÀÿfefeþýxwyzyÃÿ0zxwxwþ‚03ÿðÿÿ€dcefefÿÀÿdcdcþýfeghgÃÿ?hfefeþýxwÿüyzyzxwxwþÀÀÏÿ‚ÿÿ€dcefeÃÿ?fdcdcþýfeÿüghghfefeþýxwyzyzxwxwþ?‚ÿÿ€dcÿüefefdcdcþuUU]Ðÿÿ¿L$mnmmnIJÿ@ $mnnm„¤ÖÕÖÖÕ…†ÖÕÕÐÿÿÖ«‘¿À¿¿À®­ÿ@ÿ¿ÀÀ¿L$mnmmÿý4nIJmnnm’ÿÿ„¤ÖÕÖÖÕ…†ÿ@ÿÖÕÕÖ«‘¿À¿¿ÿý?À®­¿ÀÀ¿L$mÿÿônmmnIJmnnmÒHÿ„¤ÖÕÖÖÿý?Õ…†ÖÕÕÖ«‘¿ÿÿôÀ¿¿À®­¿ÀÀ¿L$mnmmnIJmnnmI ?„¤ÖÿÿôÕÖÖÕ…†ÖÕÕÖuuU]ðÿÿ<þThFEFDC¬«ÿÀ&{zø˜{zâ{z`<}zòø˜yz{zâ{z`{z‰€óÈâ}zyz{z`{z‰€~&{zÏ }zyz{z‰€ÏËÌËÿÀÌËÌËÌË?ÿÌËÌËÌËÌ ÿüËÌËÌËÌËÌ3ÿðËÌËÌËÌËÌÏÍÎÍÿÀÎÍÎÍÎÍ?ÿÎÍÎÍÎÍÎ ÿüÍÎÍÎÍÎÍÎ3ÿðÍÎÍÎÍÎÍÎuuu]ð?ÿÿÿÿÿÿÿÿÿÿÿÀÏÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3ÿó21212121ÿÿÿüÿÿÿÿÿÿÿÿÿÿÿuuu]À?ÿ~}~}~}~}~ÿ Ï}~}~}|{|{|{|{~}~}~}~}~}À?ÿ~}~}~}~}~ÿ ÿ}~}~}~}~}ÿü3~}~}~}~}|{|{|{|{~}~}~}~ÿ ÿ}~}~}~}~}ÿü3~}~}~}~}~ÿÿð}~}~}~}~}~}|{|{|{|{~}~}ÿü3~}~}~}~}~ÿÿð}~}~}~}~}~}~}~}~}~}~}~3ÿó}|{|{|{|{~ÿÿð}~}~}~}~}~ßW¹º¸·¸·¹º¹º¹º¸·.-/0/0.-.-Ï< .-/0ï!"OÂÁÃÄÃÄÂÁÂÁÂÁÃÄGHFEFEGHGHÏ3ÿÃGHFE/0.-.-/ÿ<ð00/0/0.-ï!0"Ûjð𩚚©©Ï8 €  ÐàËššËËÀ¹ ue`xxPb ß?‡PPOPRQ¢¡RQOPR¡OP¢Pô643465lk6534ÿÿ<À6i56j6Xzyzy­2112ØØ×ØØ×OPØ×רØPרOØ%ÅÃÄÃÅÆtsÅÆÄÃÅuÆÅvÅNzyzyª*öef^ÖUfµl�D4C‡C4G4„Q öef\¶Ufµ,loD4e©e4i4¤ô!$8t1$SFE!ïW*º¹º¹º¹º¹º¹º¹Ý=>=>=>=>=>=ðð�©©©>½“~}~}~}~}~}~}ÛÈÇÈÇÈÇÈÇÈÇÈÀ ÿÿÇ·¤£¤£¤£¤£ÿ3?¤£¤£™üßW*)*)*)*)*)*)0/0/0/0/0/0À Ïÿ/Q;('('('('('('"!"!"!"!"!"À ÿÿ!$#$#$#$#ÿ3?$#$#?üE†ff@™™†ff@™™ffdUU¿ü?Т¡¡¢¡¢¢¡¢¡ÿðÿ‚��‚�‚‚�‚�@ ü?Ðÿðÿ¢¡¡¢¡¢¢¡¢¡@ ÿÂ��‚�‚‚ý0�‚� ×UýfeghghfefeþÿðÿýxwyzyzxwxwÀ þ‚ÿÿ€dcefefdcdcþÿðÿýfeghghfefeÀÿÃþýxwyzyzxÿ00wxwþ‚ÿ0ÿß«‘¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnm@ $€„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿@ÿÿL$mnmmnIJmý4’nnmßrT<;<:9Ž�:9;<þThFEFDC¬«DCEFÀ<Àþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<ÀÿÿþThFEFDC¬«Dÿ<óCEFþ‚ÿÿÿÿ]¿ý¿ÀJKLKKLKLLKLùø÷^]ª©^]úùÀ&{zø˜{zâ`{z<ò}zyzPPÏÿËÌËÌËÌËÀÌ?ËÌËÌüËÌËPPÏÿÍÎÍÎÍÎÍÀÎ?ÍÎÍÎüÍÎÍ×Uÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÏÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿ2121ü212ßW}~}~}~}~}~}~}~}~}~}~}~}~ Ïÿ}|{|{|{|{~}~}~}~}~}~}~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3?~}~}|{|{ü|{|ñdÑÖC¹€Š«*>€¿—Ð                                                                                                                                                                                                                                                                                                                                                                                                       D07_accent D07_accentªxÂïð�Ã\ˆÄ}?üA‰ ƒÃUñ|Ä„X„ªxÂUñ|Dïð�Ã}?üA\ˆD‰ ƒÃîXæ Ý óóó1221221221243421221221Ìóóór2112112112112a0/12ùKKLMKNMKLL™KNL™KLLÿKMKNKKLª pˆˆˆˆˆˆˆðpˆ†hUˆðpˆø:†ðpðpðpˆˆU3 ÌÌÌÌÌÌó ÌÌHÌó ¿€“€ì€ÿ€ÿ€ÿÿ}€‘~U!HHHHHHáHHÏHaˆi¥å¡))Õ?ÌÌÌà“á–àßàßàÌÌÌÿßàßàßàß™â˜ÿÌÌÌ¿ìðëïìëìëìëìÓÖë‚Ö�:cÖãñ;«8°ò?ëu78–ìÿÿžÇõT¢Q+wU!HHHHHHíÈHHÚHaó â) ™ª»JÑUÀ‘ÀyÀÀÚ_ÀÀÀO¥˜ÀÀÀÀ?iššÀÀ¶«UÀ€ÀÀ'&@ÀÀ QÀÀ€À4ÀÀ UÀôÀëÀÀIfÀÀÀꉀÀÀÀÀHK¨ÀÀ‹U@€ÀÀ ÀÀrÀÀÀÀ^"ÀÀ=QÀêÀÀìëÀÀÀstYÀÀÀÀV‚‡åÀÀ¥€QÀÀÀ12ÀaÀÀ€À0À€U@ÀôÀó@ÀÀÁíÀÀÀÀºÜ ÀÀuhTÀÀ@ÀÀ (ÀÀÀÀ ÀU 333ÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿÌ333ÿÿÿÿÿÿÿÿ3Ì33ÿÿÿÿÿÿÿÿ3ÌÌÌÿÿÿÿÿÿÿÿ33ÿÿÿÿU 333}~}~}~}3333~}~}~}~}Ì333~}~}~}~}3Ì33~}~}~}~}3ÌÌÌ~}~}~}~}33~}~}U3 ÌÌÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿó ÌÌÿÿÿÿÿÿÿÿÌó ÌÿÿÿÿÿÿÿÿÌó33ÿÿÿÿÿÿÿÿÿ ÌÿÿÿU3 ÌÌ}~}~}~}ÌÌÌÌ~}~}~}~}ó ÌÌ~}~}~}~}Ìó Ì~}~}~}~}Ìó33~}~}~}~}~ Ì}~}Oã¿ex•IþjÙŠ}€?€?€¿‰Ð D07_banner D07_banner§¹B یüä…ÄD: B†AŒÃØÕ…Ä  §¹BØÕ…D ÛŒÃD: B¼ä…D†AŒÃ¥�  ó4e43 ó sÙûü sBBAÀüÀIÀøÀIÀ÷ÀJÀüÀI 3}~}3 €€ÿÿmßÁÂ’>mÁ?@?€¿ÐD07_boxD07_boxÛ  AG:†Ã£ÑÄTc«A»8„Ã¥P}ÄÀxÀÛ  A¥P}DG:†ÃTc«A£ÑD»8„Ã-x% WW%[fef%[eóÌ?3fefeedcdÌÿ<Ïe[\[\[eóÌÿ='f(ef'e@?%f&ef%e>='f(ef'ef%?%f&ef%e>='f(ef'ef%&e%f&ef%ef%&e%f&ef%eóógfehfeU@€@€@„@„@€@€@UUÀÀÀ ð£ÀÀÀÀKð£KÀÌ ð£Kð£ÀÀÌ Kð£Kð £Kð£ÀÀÀÀKð£KÀÀÀÀð§Gð@ÀëUUÀÀÀæ&òÀÀÀÀè&òèÀÌ &òè&òÀÀÌ è&òè& òè&òÀÀÀÀè&òèÀÀÀÀ&òè&ÀÀÿ%UUÀÀÀ?ìÑÀÀÀÀìÑÀÌ ìÑìÑÀÀÌ ìÑì ÑìÑÀÀÀÀìÑÀÀÀÀìî&ìÀÀíðUUÀÀÀa&(ÀÀÀÀM&(MÀÌ &(M&(ÀÀÌ M&(M& (M&(ÀÀÀÀM&(MÀÀÀÀ&(M&ÀÀÚ&UU€ÀÀ$ÀÀÀÀ××MÕÀÌ ÛMÙ×MÀÀÌ Ù×MÕÛ SÓ×SÀÀÀÀÓ×MÕÀÀÀÀÛMì£ÀÀ¨ïUUÀÀÀ‘gúÀÀÀÀ¥Uü¥ÀÌ Uü¥UüÀÀÌ ¥Uü¥U ü¥UüÀÀÀÀ¥Uü¥ÀÀÀÀUü¥UÀÀÝ%UUÀÀ€!$ÀÀÀÀNÜØLÀÌ àÔLÜØÀÀÌ LÜØLà ÐPÜÔÀÀÀÀPÜØLÀÀÀÀàÒH¨ÀëUUÀÀÀùh’ÀÀÀÀûV¦ûÀÌ V¦ûV¦ÀÀÌ ûV¦ûV ¦ûV¦ÀÀÀÀûV¦ûÀÀÀÀV¦ûVÀÀÌ%UU33Ì3ÿÿÿÿÿÿÿÿ3ÌÌ3ÿÿÿÿÿÿÿÿÌó<Ïÿÿÿÿÿÿÿÿÿÿ3Ìó<ÿÿÿÿÿÿÿÿÿÃ3<Ïÿÿÿÿÿÿÿÿÿ3ÌÌ3ÿÿÿÿÿÿÿÿÌÌ3ÌÿÿÿÿÿÿÿÿÌÌÿÿÿÿUU33Ì3~}~}~}~}3ÌÌ3~}~}~}~}Ìó<Ï~}~}~}~}~}3Ìó<~}~}~}~}~Ã3<Ï}~}~}~}~}3ÌÌ3~}~}~}~}ÌÌ3Ì~}~}~}~}ÌÌ~}~}UUÌóÀefefefÌóÀÌefefefefóÌÏ ­/ú» ÀÆ@ÀÅÀ¶ÀÀÿµ@À€ÅÀÿÀÀµÿÀÀÀ3<9ÀÀÀÀïIÀÁÀÀÀúÀ@À@¸ýÀÀÀ½,šÀÀÀÀHI=‡ÀÀÀ”"ÀÀÀÀò± óóóÀÿÿ€ßàÿÿÌóóó?Àÿÿ€ßàÿÿ3 ÌÌÿÿÿÿÿÿÿó ÌÌÿÿÿÿÿÿÿÿ3ÀÌ€|{~}|óÀÌ€}|{~}|ÿ(þšO’²íh®�à?€¿5ÐD07_liftD07_liftG²ƒÂŸ<�ö“‡Äs BîjpÜžqÄ   ÀbÀG²ƒÂœžqDŸ<�Ãs B¶“‡Dîjpàb˜ }3ÌóóIJ•LK–•IJ•LK–• ÅoÈnmÇpXÇñÅoÆpoÅpVÅÆÀÀÌ ×UV¡W ÀÀÌX£UV¡ ÀÀWX£WÀXUHaÀ ÀÀÀ 0À Àu3 Àóstst;st ÀÿÿstLKL["L!+LML;N!KóÌ<MNMNOPOÀóÌPMNMNM<ÀóÌNMNMNMNU€ó Ë÷ø÷Ìó óø÷ø÷ø÷ø÷øÀ Ö À À ý ó Ì56565656565‘ ŽŸ�‹žŽÔå ä ŽŸ�‹žŽ ä�~�������VUVUVUV |{|{|{|SÆÅÆÅÆÅÆ©áâáâáðâáÕ ó Ìó ó úÂÁÂÌó óÁÂÁÂÁÂÁÂÁð# šššð `UÀÀÀ”IIÀÀÀÀ”I–’ÀÀÀÀ ±’ À@€º@€@€UÀÀÀ¹¡£ÀÀÀÀ¹¡×†ÀÀÀÀ¯*†¯ÀÀÀ ‚ÿÿÿ ÀÀÿÿÿ ÀÿÿÿÀÿUÀÀNMÀÀÀNÛ'ÀÀÀÀL#'LÒH$¸€H$€HUÀÀ¤£ÀÀÀ¤PØÀÀÀÀ)­Ø)óÌ<}ÿÿÿÿÿÿÿÀ3Ìÿÿÿÿÿÿ<À3ÌÿÿÿÿÿÿÿUÀÀMNÀÀÀM¦ÀÀÀÀunSá„)@!„@!„UÀÀ£¤ÀÀÀ£2ÀÀÀÀèæ2èóÌ<€ÿÿÿÿÿÿÿÀ3Ìÿÿÿÿÿÿ<À3ÌÿÿÿÿÿÿÿUÀÀÀ”IIÀÀÀÀ”IŒˆÀÀÀÀŽæšhÀ@€x@€@€UÀÀÀ¹¡£ÀÀÀ¹¡kÀÀÀ¦¥¦ÀÀÀ ¹ÿÿÿ ÀÀÿÿÿ ÀÿÿÿÀÿU3Ìóóëìvž�uvuëìÌóÌóvž�uvžìë�žóÌóÌ�uvžìë�žìvÀuU3Ès󩪫¬«¬©ªÈsŒÒ«¬«ª©sŒÒ̬«ª©ª«À¬U3ÌóóTS«ÿÿ¬«¬TSÌóÌó«ÿÿ¬«ÿSTÿÿóÌóÌÿ¬«ÿSTÿÿS«ÀÌÀ ¬ÿ€€ÿÌÌÀ€€ÿ€€ ÌÌÿ€€ÿ€À€U3À!ó|{|{|{À! À|{|! À„{|óÀ�<{|{|}|{|óÀ�}|{|}|<óÀ{|}|{|€Õ ó Ìÿÿÿÿÿÿÿó ó ÿÿÿÿÀ@?@Ìó ó?@?@?@?@?@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿTaHaa€HúñáÌÛ®Ú.&ÑÛ®?€¿ÅÐ                         D07_packed D07_packedç݆ÂÀüƒÃ/:�ÄýöKÂÀüƒÃàî}Ä   ”¸”ç݆Âàî}DÀüƒÃýöKÂ/:�DÀüƒÃ^¸V ÿÿÿÿÿ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒÿÿ‹ÿsÿ‹ÿsÿ‹ÿŒ‹ÿŒŒ‹ÿŒ‹ÿŒ‰ÿŒ‹ÿŠýÿ‹ÿsÿ‹ÿsÿ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒŠ‰ÿŠÿý‹ÿsÿ�ýŒ‹þŽ‹ÿŒ‹ÿŒ‹ÿŒ‰ÿŒ‰ÿŠÿý‹ÿÿ�ÿŽ‹þމÿŒ‰ÿЉÿЉÿЉÿŠÿý�ýsÿ�ÿqÿ‹þç‰ÿЉÿŠÿÿ‹ýŠ‹ÿŒ‹ÿŒÿý�ÿqÿ�ÿqþ‰þŒ‰ÿŠÿÿ‰ÿé‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿsÿ‹ÿsÿ‰þŒ‰ÿŠ‹ýŠ‹ÿŒÿÿ‹ÿÿ‹ÿsÿ‹ÿŒ‹ÿŒÿÿ‹ÿÿÿÿÿ*+P)V+V)V+V),*+$,)$*+P)¢)V+V)V+*,)$*+$,)N+V)V+ +,*)",+N)V+V)V+V)V+,*)n*+P)V+V)V+V)V+*,)$*+$,)˜)V+,*)N+V)*,+$*)",+N)*,+š),*+P),*+$,)$*+P)V+V),*+n,+$*)N+,*)ÿÿÿÿ†�…W›…žõ�ƒœó�…žó�…žó�…ž††�…Û†�…Û†�…W›…žn›…œó�ƒœó�…žó�…ž††�…Û†�…Û„›…W›…œó›…œó�ƒœp�…ž††�…Û†�…U�…žõ›…žõ›…œó�ƒœó�…žó�…ž††�…ˆ†�…U�…žõ›…žõ›…œó�ƒœó�…žó�…ž††�…Û†�…Û†�…ñ�…žó�…ž††ŸƒW�… õ�…ž††�…Û†�…Û†�…W›…ž„†›…ó›…ž„†›…W›…œ††�ƒÝ†�…Û†�…U�…žõ›…žõ�ƒœ††�…ˆ†�ƒÝ†�…U�…ž††�…»ÿ»ÿ'4'()('*Ï_Ï_hõö÷'('()0'0'4'( '()(ïÏ_fõøõ'*'('.)0'6'( '()( )('0'4'()('* '()()*''6'()()* '* '(ï_†÷öõöõ)('0'.''()('6'(Ï_hõö÷öõ'()0'0'4'())('6'('.)0'6'( '()(''0'4'()UUUE@@ÀÀÀÀÀ@€@@ÀÀÀ@€ÀÀÀÀÀÀ@€ÀÀÀ€@ÀÀ€€@@ÀÀ€€ÀÀÀUUUE€€ÀÀÀÀÀ€@€€ÀÀÀ€@ÀÀÀÀÀÀ€@ÀÀÀ@€ÀÀ@@€€ÀÀ@@ÀÀÀÿÿÿÿ’Ò‘\Ò›ÑÇÒ›ÑÑÒ‘ÑÑÒ›ÑÑÒ‘Ñ’žÒ�3œÒ›5’Ò‘\Ò›ÑÒ‘ÑÑÒ›ÑÇÒ›ÑÑÒ‘Ñ’œÒ›5’Ò‘?žÒ�hÒ›ÑÑÒ‘ÑÑÒ›ÑܛђœÒ‘?œÒ›\Ò‘ÑÑÒ›ÑÑÜ›ÑÏБÛÅÒ�ÏÑÒ‘Ñ’œÒ›ªœÒ�^Ò‘ÑÑÒ›ÑÑÒ‘ÑÑÒ›ÑÇÒ›ÑÑÒ‘Ñ’žÒ�3’Ò‘?œÒ›¹Ò�ÑÏÒ‘Ñ’œÒ›\Ò‘ÑÑқќœÒ›5’Ò‘?žÒ�^Ò‘Ñ’œÒ›¹Ò�Ñž’Ò‘\қќ’Ü›?œÒ‘?œÒ›\Ò‘ÑÏЛÑÏБϒœÒ�ªžÒ�3’Ò‘\қќœÒ›ÿÿÿÿ¢¹¡·£º»·¡¸¹¹¡¸¹¹¡º»·£º¢¤¹¡£¢¹¡£¢·£¹¡¸2·£º¹¹¡¸¹¹¡º»·£º¢¢·¡¥¤¹¡£¢¹¡·£º¹¹¡¸¹¹¡º2¹¡¸¤¢¹¡£¢·£¹¡¸¹¹¡º»·£º»·¡¸¹¹¡¸¹¹¡º¢¢·£J¢¹¡·£º¹¹¡¸¹¹¡º»·£º¹¹¡¸¹¹¡º¢¢·££¢·¡¥¤¹¡ê·¡¸¹¹¡¸¤¢¹¡·£º¹¹¡¸¤¢¹¡£¢·££¤¹¡¹¡º¢¢·£ì¹¡º¢¢·£·¡¸¢¤¹¡£¢¹¡£¢·£¹¡¸¹¹¡º»·£º¢¤¹¡H¢·££¤¹¡¹¡º¢¢·£ªªªªò`ò�Ð�Ò`ò�uww&ò�ò�Ð�<Ò`ò�uww&ò�Ð�Ò`ò`w(•ð€<ò`ò�Ð�Ò`ò�uõð€Bò`ò�Ð�Ò`ò�uw&w(ò`ò�uò`:ò�uw&w(ð�W&ð�W&<ò�uw&w(ð�Ò`ò�u÷(•ò`w(BÿÿÿÿWnXânXm­nVm«nVm­nXm­nVmUWnXÅUnVÃWnXänVmÙnVk¯nXm­nVm«lXmUWnVÃUlXÃWnVælXm­nVk­nVmÙnVmUWnXÅUnVänXm­nVm­nXm­nVm­nXm­nVmUUnVñUnVänXm­nVm­nXm­nVm­nXm­nVmUWnXÅUnVÃUlX¸nVm­nXmWUlXänVk­nVmUWnXÅUnVÃWnXänVmUWnX¸lXmUWnVänXmWUnVÃUnVÃWnXälXm­nVk­nVmUWnXñWnXÅUnVänXmWUnVÿÿÿÿzSzy(zy(zy(zy&|yzgzezQzy#|y&|{(z{(zyzeze|Sz{(zy(zy!zyze|Sz{(zy(zy(zy&|y&|{z±zQzy(zy&|y&z{(zy(zyzeze|�zy(zyzQzy&|yzgzezQzyz�|{zSzyzeze|S|{(z{(zyz¯ze|Sz{zTa!!!�€$HHd!a!`€ÿÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒÿÿ‹ÿÿ‹ÿŒ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒ‹ÿŒsÿ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿsÿ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿÿ‹ÿŒ‹ÿŒÿÿ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒ‹ÿŒÿÿ‹ÿÿÿsÿ‹ÿsÿ‹ÿÿÿN+,*)N+V)V+,*)n*+P)V+*,)N+*,)N+*,)N+V)v*)N+V)V+V)*,+N)*,+N)*,+n,)N+*,)$*+P),*+P),*+P),*+p*+P),*+P)V+V)V+*,)ÿÿ$*+$,)ÿÿU�…ž††�…W›…žõ�ƒœó�…ž††�…ˆ†�…U�…žõ›…ž„ˆ�…W›…ž„†›…W�ƒœ††�…U�…žó�…ž†�…W›…žóŸƒœó›‡ õ�ƒœ††�…U�…ž††�…U�…ž††�…††›…W�ƒœ††›‡Û†�ƒW�…ž††�…W›…ž„ˆ�…W›…ž„†›…††�…U�…ž††�…U�…žó�…žõ›…žõ�ƒœ††›‡ÿÿÛ†�ƒÝ†�…ï»o6'*'4'()('*''4'(ï_†÷ÿ_hõ)('6'()6)*'6'()()6)* '* '(ï_†÷ÿ_fõ)('6'('6)(''6'(fõøõÿfõ'.)6'*'4'()6'*''4'()6'*Ï_Ï_ï_†÷'('()('ÿÿ0'.'UUUÀ€À€€ÀÀÀÀÀÀ@ÀÀÀÀÀÀ€€À€ÀÀÀÀÀÀ€ÀÀÀ@ÀÀÀÀUUUÀ@À@@ÀÀÀÀÀÀ€ÀÀÀÀÀÀ@@À@ÀÀÀÀÀÀ@ÀÀÀ€ÀÀÀÀÿÿ\Ò‘Ñ’œÒ›\Ò‘ÑÑÒ›ÑÑÞ�Ñ’žÒ‘žžÐ›^БÏÑÒ�ÏœœÒ›\Ò‘Ñ’œÒ›\Ò‘Ñ’œÒ›hÒ�ÑÏÒ‘Ñ�œÒ›\Ò‘ÑÏÒ�ÑÅÒ›ÑÑÒ‘Ñ’œÒ›\Ò‘Ñ’œÒ›hÒ�Ñž’Ò‘žœÒ›\Þ�Ñ’žÒ‘?œÒ›\Ò‘Ñ’œÒ›\ܛђœÒ‘^Лў’Б œÒ›hÒ�Ñž’Ò‘\Ò›ÑÑÒ‘ÑÑÒ›ÑÇқќ’Ò‘ÿÿ?œÒ›5’Ò‘ÿÿ·¡¸¢¤¹¡¹¡º»·£º¹¹¡¸¤¢¹¡H¤¹¡¹¡º»·£º¢¤¹¡¹¡º¢¢·£·¡¸¢¤¹¡·£º»·¡¸o¢·£·¡¸¹¹¡¸¹¹¡º»·£º¢¤¹¡¹¡º¢¢·£¹¡¸¤¢¹¡H¤¹¡¹¡º¢¢·££¢·¡¹¡¸¤¢¹¡·£º¢¤¹¡¹¡º¢¢·£J¢¹¡·£º¢¤¹¡¹¡º»·£º»·¡¸¹¹¡¸¤¢¹¡ÿÿ£¢·££¤¹¡ªªªð�W&ò�Ð�Ò`w(÷&ò�BÐ�W&ò�uò`w(ð�Ò`õò`ò�Ð�BÒ`w(ð�W&ò�u÷(ð�BW&w(ð�W&ò�uò`w(÷&ò�uò`Bò�Ð�Ò`w(•wÿÿænVmUWnXânXm­nVm«nVmUWnXñWnXänVm­nXmWUnVælXmUWnVänXmWUnVænVm­nXmƒWnXänVm­nXm­nVm­nXmWUnVänXmWUnVælXmUWnVïWnXälXmUWnVÃUnVänXmWUnVänXmWUnVänXmWUnVïWnVänXmWUnVænVm­nXm­nVm­nXmWUnVÿÿÃWnXÅUnVÿÿQzyzQzy&|y&z{z¯zQzy&|yzSzyzQzyzS|y&z{5zQzy(zy&|y&z{zQzyzQzy|±zSzyzezS|y|Sz{zQzyz¯|Sz{zQzy(zy(zy&|yzÿÿgzez@U !!$!!!a H€E%OÿÿK_´ ͬÁëɨÀ¿™Ð D07_pine_cone D07_pine_conehӊ¢”Ã+'ŒÄÜF‚Á wà ?tÄx Tx hÓŠÂ ?tD¢”ÃÜF‚Á+'ŒD wà €T€ _wÝÕÓÔÖÕÖÕÓÔÓÔÓÔÖÕÇÈÈÇÈÇÇÈÇÈÏ3ÿÃÇÈÈÇ&%%&%&&ÿ<ð0%&%&%%&Åst�õöø÷ø÷õöõöÏ3ÿÃõöø÷áââáâááâáâáââáüóÀÅÀÏÿÃst‡'(*)*)'('('(*),+)*)*üó?,+,+,+)*‹ŒŽ�Ž�‹Œ‹Œ‹ŒŽ�Å?ÿst­ÑÒÒÑÒÑüó?ÑÒÑÒÑÒÒÑYZ\ü?óÌ[\[YZYZYZ\[åæèçèçåæåæåæè«¥©¥ððíÿÿííàß ™©  šš � #ÿðÿÂÏ3ÿÃÿÿð𩚚©© ™ ÀÏÿÃåÿÿððíÞÞííàÝ —‡€ šš p‚?ÿÄüó? íà ¼¼ Ðà‡šš‡‡€yÿþ¿ý&%%&ŸÃÁÂÁÃÄxwÃÄÂÁÃyÄÃzÃÉ(*)*('PO(')*(Q'(R("åæåæ̼Ëÿ˼�  ‡ÇÉÊÉÇÈnmÇÈÊÉÇmÈÇnɵ$$#$&%JI&%#$&I#$J$*çèçèi356534gh34653j43i3bûýþýûüûüþýûüûû "R"1$OnÏ0?ÿåæåæŸYWXWWX±²WXXWW°ZY¯Yäèæåæèç12èçåæè2çè1æT!""ªªjjCD8t3DsHOD4!e!4%4d²CB2BQ&#!D4C‡C4G4„ôCBRBSFK$4!C!4%b1 ’CD8t3Dq(MBCeCE4b’!§å­¹!D4C‡C4G4„ÒCBRBQ&I¦Ÿ–¶_§W×ìëìëìëìëìëì놕–•–•–•–•–•À ÿÿ–9*)*)*)*)ÿ3?*)*)@ÔÓÔÓÔÓÔ º¹º¹º¹º¹º¹ºÀ ÿÿ¹j¿À¿À¿À¿ÀÿÿCC¿À¿ÀQCCC@ððŒº¹º¹º¹º®ìëìëìëìëÿ3ÿìëìë�56565ÿüÏ6565656ÒZYÿÿðZYZYZYZYZYË   nÿüÏÎüûÿÿðüûüûüûüûüûX‹Œ‹Œ‹Œ‹Œ‹Œ‹Œ_WW×À ÿÿ ÿ3?+À ÿÿÿ3ÿÿüÌ-ÿ3ÿÿüÏ ÿÿð)ÿüÏÿÿð UUUUff@™™ffd™™!™™�ffd!™™�†ff@ †ff@™™UUUU?ü?Ðÿðÿ¢¡¡¢¡¢¢¡¢¡@ ÿÂ��‚�‚‚ý0�‚�!ÿðÿ@ ÿâ¡¡¢¡¢¢ý/ÿ¡¢¡‚��‚�‚ôÀ‚�‚�@‡ÿÃý/ÿ¢¡¡¢¡¢ô¿¢¡¢¡‚��ü?Ђ�‚‚�‚�ÿô¿¢¡¡ü?Т¡¢¢¡¢¡ÿðÿ@‚��‚�‚‚�‚�UWUU?ü?ðdcefefdcdcþÿðÿýfeghghfefeÀÿÃþýxwyzyzxÿ00wxwþ‚ÿÿ€dcefefdcdcÀÿÃþýfeghghfÿ?ÿefeþýxwyzyzüÀxwxwþ‚ÀÏÿÃÿÿ€dcefefdÿ?ÿcdcþýfeghghüÿfefeþýxwyü?ðzyzxwxwþ‚?ÿÿÿ€dcefefüÿdcdcþýfegü?ðhghfefeþýÿðÿÀxwyzyzxwxwþ_WUÕ¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿@ÿÿL$mnmmnIJmý4’nnm„¤ÖÕÖÖÕ…†ÖÕÕÖ@ÿÿ«‘¿À¿¿À®­¿ý?ÿÀÀ¿L$mnmmnÿôÒIJmnnmHÿÿ„¤ÖÕÖÖÕ…†Öý?ÿÕÕÖ«‘¿À¿¿Àÿôÿ®­¿ÀÀ¿L$mnÿÿÐmmnIJmnnmI ?ÿ„¤ÖÕÖÖÕÿôÿ…†ÖÕÕÖ«‘¿Àÿÿп¿À®­¿ÀÀ¿L$mnmmnIJmnnm_WWÕR<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<ÀÿÿþThFEFDC¬«Dÿ<óCEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<ÀÿÿþrT<;<:9Ž�:ÿ?ÿ9;<þThFEFDCÿüó¬«DCEFþ‚ÿÿÿÿ R<;<:9Œ‹:ÿ?ÿ9;<þrT<;<:9ÿüÿŽ�:9;<þThFEÿÿðFDC¬«DCEFþ‚Ï0?ÿÿÿÿÿ R<;<:9ÿüÿŒ‹:9;<þrT<;ÿÿð<:9Ž�:9;<þThFEFDC¬«DCEFþUUUU?ý¿àHMNMIJIJNMÿöÿJKLKKLKLLK ÿÛLMLKMNMü@NNMÿöÿHMNMIJIJNM€ ÿÿJ^]^õö«¬õÿ/ÿö]^©LMNMMNoð!MNNMÿÿHKLKKLKü/ÿLLKJMNMIJø¿IJNMLMLý¿ÀKMNKLNM†?ÿH^]^õöÿü¿­®õö]^©JMNü?àMIJIJNMÿöÿLMLKMNKLNM]UWÕ?ü?𢣤£¡¢¡¢¤£ýÿ¢^]^\[þý\[]^ÿÿÿ¢^]^\[þý\ü<ó[]^€ÿÿÿÿÿðÿ€¢£¤£¡¢¡¢¤£Àÿÿýÿ¢÷ø÷MNTSMÿ?ÿNø÷©ÿ¢^]^\[ÿðóþý\[]^€ÿÿÿÿ€¢ÞÝÞ#$~}#ÿ?ÿ$ÝÞÿ¢£¤£¡¢üÿ¡¢¤£ýÿ¢^]ÿÿÀ^\[þý\[]^€Ï0?ÿÿÿÿÿ€¢÷ø÷MNÿüÿTSMNø÷©ÿ¢£¤ü?𣡢¡¢¤£ýÿ¢^]^\[þý\[]^UUUU?ü?àIJJIJIIJIJÿùÿIHLKNMGHGHÀÿçKJNMNMIÿJIJ!ÿðÿIJJILKIJIJ€ÿÿIöab_`«¬õÿÿöõö©KJNMNMŸüIJIJDÇÿÛKNHGJIKüÿLMNIJJILKøIJIJKJNþðMNMIJIJÿIöab_`ÿü«¬õöõö©IJJü?àILKIJIJÿùÿÀKJNMNMIJIJ]WWÕ?ü?𣤢¡¢¡£¤£¤ÿÿ£][\[\ýþ^]^]€ÿÿÿ£][\[\ýþ^þ00]^]€ÿÿ€£¤¢¡¢¡£¤£¤Àÿÿÿÿ£Nø÷ø÷VUMÿ?ÿNMN©ÿ£][\[\ÿøÀýþ^]^]€ÿý€£$ÝÞÝÞ€#ÿ?ÿ$#$ÿ£¤¢¡¢¡üÿ£¤£¤ÿÿ£][ÿÿà\[\ýþ^]^]€?ÿÿÿ€£Nø÷ø÷ÿüÿVUMNMN©ÿ£¤¢ü?𡢡£¤£¤ÿÿ£][\[\ýþ^]^]UUUU?ÏÌðì) uu&{zø˜{zâ`{z<ò}zyzø˜{zâ`{z‰{z€ó}zyÈâ`z{z‰{z€~{z&}Ï ‰zyz{z€~{z&ø˜{z@A?ËÌËÌÿËÌËÌ ËÿüÌËÌËÌËÌ3ÿðËÌËÌËÌËÌ@A?ÍÎÍÎÿÍÎÍÎ ÍÿüÎÍÎÍÎÍÎ3ÿðÍÎÍÎÍÎÍÎWWW×ÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]WWWÿÿÀ~}~}~}~}~}~}~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3?~}~}|{|{|{|{~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3ÿ~}~}~}~}~ÿðÌ}~}~}~}|{|{|{|{~}~}~}~}ü3ÿ~}~}~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}|{|{|{|{~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~õ}Ýõ< ÿçÅst¿ÑÒÒü?óÌÑÒÑÑÒÑÒÑÒÒÑÐÏÑÒÑÒÐÏÐÏÐÏÑÒÉÊÈÇÈÇÉÊÉÊÉ<ð03ÊÈÇÅst"—˜˜—˜——˜—˜—<Ïÿ˜˜—effefeefüóÀÀefeffeÅst�®­­®­®®­®­®<Ïÿ­­®ÖÕÕÖÕÖÖÕÖÕÖÕÕÖ?óÏÅs?ÿtuvxwxwuvuvuvxwOPPOµ¾žö0ÿ 'ü?óÌ »ËÀ ¼¼ °Â³ð𩼼©© › ž<Ïÿ  íàß ™©  šš �¢?ÿ¿ ýýûÿÿ<Àÿ!–çèçèØ€‚�‚€ýþ€�‚€þ€ý‚)kklkklרkllkkØlk×kbbabbaÄÃbaabbÿüóÃabÄbOçèç貪¨§¨ª©«¬ª©§¨ª®©ª­ª¹KMNMKL—˜KLNMKšLK™KUxvuvxwðïxwuvxíwxîx{åæåæõxumåhu› ?×ÙÚÙרPOרÚÙ×MØ×N׃6556>åæåæT²²±²²±›œ²±±²²œ±²›²×EEFEEF‰ŠEFFEEŒFE‹Cm||{|ª©©©B0¤CD:”3DsHo$4C‡C4G„²!"2"Û°D4e©e4i4¤òCD8t3Dq(K"CeConÒHDCD8t3DsHMBCeCE4b’!"å­»D4e©e4i4¤òCD8t3Dq(K"ù}]] ÏÿÏ®—˜—˜—˜—œ ¼¼¼¼¼B!"!"!"!"!"!"Éêéêéêéêéêéêé3?ÿ9FEFEFEF™ïðïðïðïðïðïðäÄÃÄÃÄÃÄÃÄÃÄÃ3ÿÿAüÌÿ$ÌËÌËÌËÌ,0/0/0/0/0/0/3ÿÿÐÏÐÏÐÏÐÏÐüÏÿÏÐÏ•€€€ÿð3€€€§zyzyzyz¯°¯°¯°¯°¯üÏÿ°¯°õöõöõöõÿð?öõöõöõ#$#$ö}]]ðàÞÞÞðÿ' ÿÿð     3?ÿ1 "!"!"!"!"!"!3ÿÿüÌÿ3 3ÿÿüÏÿÿð3-     üÏÿ ÿð?UUUU†ff@™™ffd@!™™� †ff@!™™�†ff@UUUU ü?Ðÿðÿ@¢¡¡¢¡¢¢¡¢¡ ÿÃý‚��‚�‚‚�‚�0!ÿðÿ@ ÿÃý¢¡¡¢¡¢¢¡¢¡/ÿ‚��‚�‚‚�ôÀ@‚�‡ÿÃý/ÿ¢¡¡¢¡¢¢¡ô¿ü¢¡‚��‚�‚?Ђ�‚�ÿô¿ü¢¡¡¢¡¢?Ðÿ¢¡¢¡‚��‚Õu]U ÿ‚ÿÿ€dceü?ðfefdcdcþýÿðÿÀfeghghfefeþýxwyzyzxwxwþ003‚ÿÿ€ÿðÿÀdcefefdcdcþýfeghghfefeþ?ÿýxwyzyzxwüÀÀxwþ‚ÿÿ€dcefefdcdcþ?ÿýfeghghfeüÿüfeþýxwyzyz?ðxwxwþ‚ÿ?ÿÿ€dcefefdcüÿüdcþýfeghgh?ðÿfefeþýxwyzõ}]U $€ÿ„¤ÖÕÿÿÐÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnm4’„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿?ÿÿL$mnmmnIJmnôÒHnm„¤ÖÕÖÖÕ…†ÖÕÕÖ?ÿÿ«‘¿À¿¿À®­¿ÀôÿÿÀ¿L$mnmmnIÿÐIJmnnm ?ÿÿ„¤ÖÕÖÖÕ…†ÖÕôÿÿÕÖ«‘¿À¿¿À®ÿÐÿ­¿ÀÀ¿L$mnmõ}]]<Àÿ‚ÿÿÿÿ R<;ÿÿð<:9Œ‹:9;<þrT<;<:9Ž�:9;<þThFEFDC¬«DCEFþ<ó‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<þ?ÿÿThFEFDC¬«DCüóÌEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þ?ÿÿrT<;<:9Ž�:9üÿÿ;<þThFEFDC¬ÿðÏ«DCEFþ‚ÿÿÿÿ R<;<:9Œ‹:9üÿÿ;<þrT<;<:9Žÿðÿ�:9;<þThFEFU]]U}zyz{z&ø˜{zâ`{z<ò}zyzø˜{zâ`{z‰€{zóÈ}zyzâ`{z‰€{z~&{zÏ}zyz ‰€{z~&{zø{zÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿËÌËÌËüÌËÌ3ËÌÿðËÌËÌËÌÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿÍÎÍÎÍüÎÍÎ3ÍÎÿðÍÎÍÎÍÎõ}]]ÏÿÏ21212121ÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð3ÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÕu]] ÏÿÏ}|{|{|{|{~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3?ÿ}|{|{|{|{?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÌÿ}~}|{|{|{|{~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ3~}~}~}|{|{|{|{~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ?~}~}~}~}~u×÷÷ðÿÏ&yz{zø{z˜{â`z<òø}zyz{z˜{â`z‰€{zóÈ}zyz{â`z‰€{z~&{zÏ }zyz‰€{z~&{zÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿüËÌËÌËÌËÌ3ÿËÌËÌËÌðËÌÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿüÍÎÍÎÍÎÍÎ3ÿÍÎÍÎÍÎðÍÎ]×÷uÿÿÀÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ?21212121ÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿü21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð3ÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]]×uÿÿ }~}~}~}~}|{|{|{|{~}~}~}ÿÀ?~}~}~}~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~}|{|{|{|{~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~}~}~}~}~}~}~Ìÿü}|{|{|{|{ÿÿü~}~}~}~}~}~}~}~}~}~}~}~Ïÿÿ}~}~}~}~}~}À3ÿ~}|{|{|{|{~}~}~}~}~}~Ïÿÿ}~}~}~}~}~}U×]ßóÌÿð€€€ÿÿÿÿÿÿÿÏ< ÿÿÿÿÿÿÿÿÅs ÿü?tþËÌÌËÌËËÌËóÌÿðÌËÌÌË¿ÀÀ¿À¿¿À¿À¿ÀÀ¿*))*)Ãÿ<ð**)*)*))*Å03ÿðstbRQQRQRRQRQRQQR"!#$#Ãÿ<Ï$"!"!"!#$ÂÁÁÂÁÂÂÁÂÁÂÁÁÂÀÀÏÿÅuvŠáââáâÃÿ<ÏááâáâáââághhghgghghghhgïððïðïïðïðïðÏ?ðïÅstýUVTSTSUVUVUVTSZÛYÚÞ Ðà‡šš‡‡€y ÿü?óÌÿð   šš �¢03ÿð…Ãÿ<Ï ¼¼©© › @�ÿ¨Ãÿ<Ï ÞÞËËÀ½y© xxÌ? �ÿÿßßÞàBßàAÞn+,,+ çèçè�*))*¥ÁÁÂÁÁÂ|{ÁÂÂÁÁ{ÂÁ|ÁÏ**)*('RQ(')*(Q)*R*"çèçèdRRQRRQ¦¥RQQRR£QR¤T~‘‘’‘��ÞÝ��’‘�Ý’‘Þ‘�HJIJJI”“JIIJJ“GH”JóÌÿçèçèI[[\[[\·¸[\\[[¸\[·[ðääãääã78äããää8ãä7ä^%&$ÿÏ0?#šçèçè˜0.-..-^].--..[/0\0¦ªš–$SF)"!C–¶å$ ¤CD8t3DsHM$4!e!4%d’!"2"1$#FVC‡&CVI4¤ôCBRBSFK$4!C!4%bÒH›8t1$SFMBCeCE4bé§å­ ¹I ?(4C‡C4G4„uuu]ð?ÿÄÃ6ÉÊÉÊÉÊÉÿÀ ÏÊÉÊÉÊ빺¹º¹º¹�úùúùúùúùúùð?ÿúùŽ‹Œ‹Œ‹Œ‹ÿÀ ÿŒ‹Œ‹Œ36565ÿÿ365656565.ÚÙÚÙÚÙÚòª©ª©ª©ªÿÀ ÿ©ª©ª©yÒÑÒÑÿÿ3ÒÑÒÑÒÑÒјAÿÿüBABABABABABOWXWXWXWQ+,+,ÿÿ3+,+,+,+,ÂêÿÿüéêéêéêéêéêéN¡¢¡¢¡¢¡¢¡¢¡¢3ÿÓУ¤£¤£¤£SÿÿüTSTSTSTSTSTuuu]ð?ÿ ÿÀ Ï'ð?ÿÿÀ ÿÿÿ3-)ÿÀ ÿÿÿ3ÿÿü1ÿÿ3ÿÿü3ÿó)/ÿÿüUUUU™™€@™™ffd  €!™™�UUUUÐÿð¡‚��‚�‚ÿ@ ‚�‚�ü?Ðÿ𢡡¢¡¢ÿ@ ÿ¢¡¢¡‚��‚�Ãý0‚‚�‚�!ÿðÿ@ ÿ¢¡¡¢¡Ãý/¢¢¡¢¡‚�ÿô�‚�‚‚�‚�À@‡ÿÃý/¢¡ÿô¡¢¡¢¢¡¢¡¿ü?Ђ��‚�‚‚�‚�ÿôUUU]ðÿðeþýxwyzyzÿÀ xwxwþ‚ÿ ÿü?ÿ€dcefefdcdðÿðcþýfeghghÿÀÿfefeþýxwyzyÃÿ0zxwxwþ‚03ÿðÿÿ€dcefefÿÀÿdcdcþýfeghgÃÿ?hfefeþýxwÿüyzyzxwxwþÀÀÏÿ‚ÿÿ€dcefeÃÿ?fdcdcþýfeÿüghghfefeþýxwyzyzxwxwþ?‚ÿÿ€dcÿüefefdcdcþuUU]Ðÿÿ¿L$mnmmnIJÿ@ $mnnm„¤ÖÕÖÖÕ…†ÖÕÕÐÿÿÖ«‘¿À¿¿À®­ÿ@ÿ¿ÀÀ¿L$mnmmÿý4nIJmnnm’ÿÿ„¤ÖÕÖÖÕ…†ÿ@ÿÖÕÕÖ«‘¿À¿¿ÿý?À®­¿ÀÀ¿L$mÿÿônmmnIJmnnmÒHÿ„¤ÖÕÖÖÿý?Õ…†ÖÕÕÖ«‘¿ÿÿôÀ¿¿À®­¿ÀÀ¿L$mnmmnIJmnnmI ?„¤ÖÿÿôÕÖÖÕ…†ÖÕÕÖuuU]ðÿÿ<þThFEFDC¬«ÿÀ&{zø˜{zâ{z`<}zòø˜yz{zâ{z`{z‰€óÈâ}zyz{z`{z‰€~&{zÏ }zyz{z‰€ÏËÌËÿÀÌËÌËÌË?ÿÌËÌËÌËÌ ÿüËÌËÌËÌËÌ3ÿðËÌËÌËÌËÌÏÍÎÍÿÀÎÍÎÍÎÍ?ÿÎÍÎÍÎÍÎ ÿüÍÎÍÎÍÎÍÎ3ÿðÍÎÍÎÍÎÍÎuuu]ð?ÿÿÿÿÿÿÿÿÿÿÿÀÏÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3ÿó21212121ÿÿÿüÿÿÿÿÿÿÿÿÿÿÿuuu]À?ÿ~}~}~}~}~ÿ Ï}~}~}|{|{|{|{~}~}~}~}~}À?ÿ~}~}~}~}~ÿ ÿ}~}~}~}~}ÿü3~}~}~}~}|{|{|{|{~}~}~}~ÿ ÿ}~}~}~}~}ÿü3~}~}~}~}~ÿÿð}~}~}~}~}~}|{|{|{|{~}~}ÿü3~}~}~}~}~ÿÿð}~}~}~}~}~}~}~}~}~}~}~3ÿó}|{|{|{|{~ÿÿð}~}~}~}~}~ß×UwabbabaabababbahgijijhghgÏ< hgijÅstêGHFEFEGHGHGHFE¿ÀÀ¿À¿¿À¿ÀÏ3ÿÿÀÀ¿€€€ÿ<ð0€€€€Åst-*))*)**)*)Ï2Â*))*fÏÿ¬«­®­®üóÀ¬«¬«¬«­®ÅÀÏÿÃstQZYWXWXZYZYZYWX’‘����üó?’‘’‘’‘��GHJIJIGHGHGHJIÃ?ÿstýñòòñòñÛkijð𩚚©©Ï0 ²ðÿ »ËÀ ¼¼ °À#ÿðÿ“Ï3ÿÃÿÿððËššËËÀ¹ @�ÿÚÿÿððíÞÞííàÝ ™©  šš � ?ÿ}ßÿÿ¿þ­­®­­®¤£­®®­­£®­¤­î687865nm6578ÿÿ<À6m56n8çèçèZž Ÿ ž�ÃÄž�Ÿ žÂ�žÁž‘USTSUV©ªUVTSUªVU©S9rrqrrqäãrqqrrãqräroçèçèSJHGHJI”“JIGHJ‘IJ’Jž—™š™—˜ÐÏ—˜š™—͘—Η¦FDCDFEŒ‹FECDF‰EFŠFåæåæ*3421ååæåçè21çèæåç1æå2åS !"Rðÿì¼íåæåæÇ–šªªÒCD6T3Dq»¦Ÿ– ¶ìöCD:”3Du'hoD4C‡C4G4„²!"RZÛðD4e©e42i4¤ô!$8t1$SFK"CeCEb1 ôCD8t%3DsHM$4!e!4%d’!"2"1$#!FVC*Þ×ÕÕðeeeeeeô"Ø×Ø×Ø×Ø×Ø×ØÀ Ïÿ×ÛÏÐÏÐÏÐÏäÆÅÆÅÆÅÆÅÆÅÆÅºˆ‡ˆ‡ˆ‡ˆ‡ˆ‡ˆÀ ÿÿ‡cYZYZYZYZÿ3?YZYZ�ª©ª©ª©ªAlklklklklklÀ ÿÿk� Ÿ Ÿ Ÿ Ÿÿ3ÿ Ÿ Ÿ|yzyzyÿüÌzyzyzyz stststsFQRQRQRQRÿ3ÿQRQR-hghghÿüÏghghghgÑõöÿÿðõöõöõöõöõö<;<;<;&{zø˜{zâ`{z<ò}zyzø˜{zâ`{z‰{z€ó}zyÈâ`z{z‰{z€~{z&}Ï ‰zyz{zPPP@ÏÿËÌËÌËÌËÀÌ?ËÌËÌÿËÌËÌ ËÿüÌËÌËÌËÌ3ÿðËÌËÌËÌËÌPPP@ÏÿÍÎÍÎÍÎÍÀÎ?ÍÎÍÎÿÍÎÍÎ ÍÿüÎÍÎÍÎÍÎ3ÿðÍÎÍÎÍÎÍÎ×ÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÏÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿß×ÕÕ}~}~}~}~}~}~}~}~}~}~}~}~ Ïÿ}|{|{|{|{~}~}~}~}~}~}~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3?~}~}|{|{|{|{~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3ÿ~}~}~}~}~ÿðÌ}~}~}~}|{|{|{|{~}~}~}~}ü3ÿ~}~}~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}|{|{|{|{~}~}~u}_wüó?ñòñòñòòñÝÞÞü?óÌÝÞÝÝÞÝÞÝÞÞÝ< ÿÅstá122ü?óÌ12112121221$##$#$$#$#$##$‘’”“”“‘’‘’‘<ð03’”“Åst/<;=>=><;<;<;=>|{}~}~|{|{|<Ïÿ{}~WXVUVUWXüóÀÀWXWXVUÅuvElkijijlklkl<Ïÿkij¢¡Ÿ Ÿ ¢¡¢¡¢¡Ÿ ?@@?@??óÏ?@?@?@@?Åsi©««üó? ÿðÞÞ ð𩚚©© ™8 ÿ ¦ü?óÌíÞÞííàÝ ™©  šš �¢…ßÿðÞÞ ðð‡šš‡‡€y ®ððíÞÞííàÝ ™©  šš �¢_¿ÿ  ‰ÇÉÊÉÇÈpoÇÈÊÉÇmÈÇnǹ&$#$&%LK&%#$&I%&ÿ<ÀÿJ&(åæåæÉ756556mn56655l87k7jýýþýýþýþþýýþýþfBýZ<órçèçè => > =éëìëëì('ëììëë'êé(ëC   ÞïÞþÿððXçèçè¹)**) ããäãáâ:9áâäãá9äã:ã]&%%&NåæåªZjj‡CVI4¤ôCBRBSFK$4!C!4%b1 ôC+D8t3DsHMBCeCE4îš~Z Û°2D4C‡C4G4„ÒCD6T3Dq()"!C!knÀôCD8t3D-sHM$4!e!4%d’!"å­»U}_WÿüÏ¿À¿À¿À¿l¹ºÿÿ𹺹º¹º¹º¹ºM&ff@ ÏÿÏ€À¿À¿À¿ÀkÜÛÿÿðÜÛÜÛÜÛÜÛÜÛ¥ABABABABABABÊNMNMNMNMNMNM3?ÿµ%&%&%&%µ{|{|{|{|{|{|EFEFEFEFEFEFE3ÿÿåæåæåæåæåæüÌÿåæåR*)*)*)*5656565656563ÿÿ~}~}~}~}~üÏÿ}~}ÃÛÜÛÜÛÜÿð3ÛÜÛÜÛÜJIu}_WÿüÏÿÿð ÏÿÏ+ ÿÿð3?ÿ+73ÿÿ üÌÿ)*3ÿÿüÏÿ ÿð3+UUUU€™™†ff@™™ffd@ffd ffd!™™�†ff@UUUUô¿¢¡¡ü?Т¡¢¢¡¢¡ÿðÿ@‚��‚�‚‚�‚� ü?Ðÿðÿ@¢¡¡¢¡¢¢¡¢¡ ÿÃý‚��‚�‚‚�‚�0!ÿðÿ@ ÿÃý¢¡¡¢¡¢¢¡¢¡/ÿ‚��‚�‚‚�ôÀ@‚�‡ÿÃý/ÿ¢¡¡¢¡¢¢¡ô¿ü¢¡‚��‚�‚?Ђ�‚�Uu]Wüÿdcdcþýfegü?ðhghfefeþýÿðÿÀxwyzyzxwxwþ ÿ‚ÿÿ€dceü?ðfefdcdcþýÿðÿÀfeghghfefeþýxwyzyzxwxwþ003‚ÿÿ€ÿðÿÀdcefefdcdcþýfeghghfefeþ?ÿýxwyzyzxwüÀÀxwþ‚ÿÿ€dcefefdcdcþ?ÿýfeghghfeüÿüfeþýxwyzyz?ðxwxwþ‚ÿu}_Wÿôÿ…†ÖÕÕÖ«‘¿Àÿÿп¿À®­¿ÀÀ¿L$mnmmnIJmnnm $€ÿ„¤ÖÕÿÿÐÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnm4’„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿?ÿÿL$mnmmnIJmnôÒHnm„¤ÖÕÖÖÕ…†ÖÕÕÖ?ÿÿ«‘¿À¿¿À®­¿ÀôÿÿÀ¿L$mnmmnIÿÐIJmnnmu}_WÿüÿŒ‹:9;<þrT<;ÿÿð<:9Ž�:9;<þThFEFDC¬«DCEFþ<Àÿ‚ÿÿÿÿ R<;ÿÿð<:9Œ‹:9;<þrT<;<:9Ž�:9;<þThFEFDC¬«DCEFþ<ó‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<þ?ÿÿThFEFDC¬«DCüóÌEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þ?ÿÿrT<;<:9Ž�:9üÿÿ;<þThFEFDC¬ÿðÏ«DCEFþ‚ÿÿÿUUUUoø¿IJNMJKLý¿ÀKKLKLLKÿöÿLMLKMNKLNM@ÿHMNý¿àMIJKLNMÿöÿJKLKKLKLLK ÿÃþLONMKLIJPO@ÿöÿ€HMNMIJIJNM ÿÃþJMNMIJIJNM/ÿÿL\[\÷ø«¬õöü![\©ÿÛþHMNMIJIJNM/ÿoJKLKKLKLð¿ýLKLMLKMN¿ÀÏMNNMu}_Wÿüÿ@?abäã½ÿ¢ÞÝÿÿðÞ#$~}#$ÝÞÿ¢^]^\[þý\[]^<Àÿ€ÿÿÿÿ€¢£¤ü?𣡢¡¢¤£ýÿ¢ÞÝÞ#$~}#$ÝÞÿ¢£¤£¡¢¡¢¤£ý<ó€ÿÿÿÿ€¢ãäãab@?abäã½ÿ¢£¤£¡¢¡¢¤£ý?ÿÿÿ¢÷ø÷MNTSMNüóÌø÷©€ÿÿÿÿ€¢ãäãab@?abäã½?ÿÿÿ¢ÞÝÞ#$~}#$üÿÿÝÞÿ¢^]^\[þÿÀÏý\[]^~ýþýUUUUøIJIJILHý¿ÀGHGKLKLÿùÿÀKJNMNMIJIJKLJü?àILKIJKLÿöÿILHGJIKLKLÿÃþKLLKLKKLKL1ÿðÿ€IJJIJIIJIJÿÃþKLJILKIJKLÿÿKø_`ab«¬÷øüD÷ø©ÇÿÃþIJJIJIIJIJÿoILHGHGKLðþKLKJNMLKðIJIJu}_Wÿüÿ@?cdcd¿ÿ£$ÝÿÿðÞÝÞ€#$#$ÿ£][\[\ýþ^]^] ÿ€ÿÿ€£¤¢ü?𡢡£¤£¤ÿÿ£$ÝÞÝÞ€#$#$ÿ£¤¢¡¢¡£¤£¤ÿ013€ÿý€£dâáâá@?cdcd¿ÿ£¤¢¡¢¡£¤£¤ÿ?ÿÿÿ£Nø÷ø÷VUMNüÀÄMN©€ÿý€£dâáâá@?cdcd¿?ÿÿÿ£$ÝÞÝÞ€#$üÿÿ#$ÿ£][\[\ýÿàþ^]^]€ÿUUUWó<ÿ}zyz{z&ø˜{zâ`{z<ò}zyzø˜{zâ`{z‰€{zóÈ}zyzâ`{z‰€{z~&{zÏ}zyz@@@AÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿËÌËÌËüÌËÌ3ËÌ@@@AÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿÍÎÍÎÍüÎÍÎ3ÍÎu}_WÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÿÏ21212121ÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð3ÿÿÿÿÿÿ21Uu]WÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~ ÏÿÏ}|{|{|{|{~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3?ÿ}|{|{|{|{?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÌÿ}~}|{|{|{|{~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ3~}~}~}|{}�õý?ÿtõ‚��‚�‚‚�‚�‚��‚ãääãäããäãäãääã¾½½¾ðÿÏ<½¾¾½¾½¾½½¾Å ÿüstΖ••–•––•–•–••–ðÿÏ3 Êš� ËË  ð03ÿ Åst·ÏÐÒÑðÿÏ3ÒÑÏÐÏÐÏÐÒÑYZ\[\[YZYZYZ\[åæèçèçåæåæåóÀÀÏæèçÅst§baababbababaabš™—˜—˜š™š™š™—˜CDDCDCCDC©�¥­?ÿ…ÿðÿÛËÀÞÞ °À©xx©© — ÿü¨ðÿÏ3 »ËÀ ¼¼ °à#ÿ �ðÿÏ3ÛËÀÞÞ °À©xx©© ó€@� ðíÿÿííàß ™©  šÿýýýæR}{|{}~ûü}~|{}ú~}ù}—ÊÊÉÊÈÇmnÈÇÉÊÈnÉÊmʶ##$#%&IJ%&$#%J$#I#¼å<ÀÿÿæåæüÌÎÍÎÎÍcdÎÍÍÎÎdËÌcÎÄ//0//0]^/00//`0/_-·ŒŠ‰ŠŒ‹éꌋ‰ŠŒê‹ŒéüóÿŠ¡çèçè&yz{zø{z˜{â`z<òø}zyz{z˜{â`z‰€{zóÈ}zyz{â`z‰€{z~&{zÿðËÌËÌËÌÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿüËÌËÌËÌËÌÿðÍÎÍÎÍÎÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿüÍÎÍÎÍÎÍÎW×õ}212121ÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ?21212121ÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿü21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWW×u|{|{|{~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ?~}~}~}~}~ÿÿ }~}~}~}~}|{|{|{|{~}~}~}ÿÀ?~}~}~}~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~}|{|{|{|{~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~}~}~}~}~}~}~Ìÿü}|{|{|{|{ÿÿü~}~}~}~}~}~}~}~}~}~}~}~Ïÿÿ}~}~}~}~}~}}óÏDCDDCÅstNMOPOPNMNMNMOP !"!"  óÌÿð !"À¿ÁÂÁÂÿÏ< À¿À¿À¿ÁÂÅs t¾š � ¨ÿððËššËËÀ¹ ÿ#$Pçèçè%PRQRRQ¤£RQQRR£OP¤R€‘‘’‘‘’ÜÛ‘’’‘‘Û’‘Ü‘’JHGHJI”“JIGHJ‘IJ’JçèçÀè©­»I D4C‡C4G/4„ÒCD6T3Dq()"!C–¶ì]ð3ÿçèDCDCDCD�¢¡¢¡¢¡¢¡¢¡¢¡Ïÿÿ}ÌËÌËÌËÌËÌËð?ÿÌË–GHGHGHGÿÀ ÏHGHGHIYZYÿZYZY]ð3ÿ+&      Ïÿÿð?ÿÿÀ Ï/ÿU@!™™�†ff@@UÐ�ÿô¿ü?¢¡¡¢¡¢¢¡¢Ðÿð¡‚��‚�‚ÿ@ ‚�‚�]ðwþ‚ÿÿ€dcefefdcdcþÿü?ýfeghghfefðÿðeþýxwyzyzÿÀ xwxwþ‚ÿ ÿ}ÐI m„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀÐÿÿ¿L$mnmmnIJÿ@ $mnnm€}ðÏ0Fþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;ðÿÿ<þThFEFDC¬«ÿÀ€¿} Ð                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   D07_railD07_railöh^±��ÃχÄEIÂ$?ŒÃÕ,†ÄøÄøöh^ÂÕ,†D±��ÃEIÂχD$?ŒÃô Äì  ÿÿÿ)8(¨+½'b+±)ï'7+:Î'½)`'³+ë)9':(¦)½)b)µ'í'9):*¤'¿)b'µ)ë)9':(¦)¿)d)µ'í'9)8Ð)¿'b'µ)ë+7'6*¦)½)d)µ'ï)5+:Î)½'b+±)ï'9):*¤'½)`'³+ë)9':(¦)½+d)µ'í'9):Î'Á'b'µ)ë)9'6,¦)¿)d)µ'í+5)8(¨+½'b)³)ï'7+:*¤'½)b'ÿµ'ï)ÿÿÿ"# $#"$$!$$+$%$"$!"$#$%$$$#$$#$%$$$#$$#$%$$$#$$+"#$$$#$$# $#$$$#$$-$#$$$#$$# $#$$"!$$# $#$$$!$$-$#$$$!$$# $#$$$!$"# $#"$$!$$! $%$"ÿ$!"ÿÿÿhÈe}d°fbf¯dˆfÇdÊåf°ddf±h†fÉfÊef®fdf¯dˆfÉfÈcf®fdf±fˆdÇfÈe}f®fdf±f†fÇfÈãf®fdd¯f†fÇdÊe}f®fbf¯f†fÉfÊãf®fbh±f†fÉfÊe}f®fdd¯f†fÉfÊe}f®fbf¯f†fÉfÈáf®ddf¯f†dÇfÊg{d®fdf¯d†hÉfÈcf®fdd¯h†dÇfÈe}f®fbfÿ­d†fýÿý7¿ÿò$#$%$#$#$#$$!$%&%$#$#$$%$#$%$#$#&$#&%$%$#$!$&#$%$%&%$!$$!$%$#$%&#$$#$%&%$#$#$$#$#$%$#$#&$#&%$%$#$!$&{ÿÿ-#$%$%&%$!$$!$%$#$%&#$$#$%&%$#$#$$%$#$%$#$#&$#$#$%$ÿ#$!$ªªª÷øøøø9!*oVøøøöø÷7!*øøøøøõ7!(öøööø÷ö5*7ööøoxøö*9øøø÷öøö*9ø�Vøöøö,9,ø÷øøøøö9!*÷øøøø�9!*Vöøööø÷7,øöøøø÷ø9*9øøøô÷öø!*9ÿ,ÿÿý!$# #"#&#(##$# #"#&#(##$# #"#&#(##"!#"#&#(!#$##"#&#*##$##"#&#*##$##"#&#*##$##"#&#*##$##"#&#*##sÿÿ-$##"#&#*##$#! #&!(##$# # #(#(##$# # #(#(##$# # !ÿ&#(#UUU ÌÌìDÆ¶àŸ«<ÌÌ̬DÆ¶àŸ«¬ÌÌÌÌDÆ¶àŸ«¬DÌÌÌÌÆ¶àŸ«¬DÆÌÃ<Ì¶àŸ«¬DƶÌÌÌÌàŸ«¬DƶàÃ<ÌÌŸ«¬DƶàŸÌÌÌÌ«¬DÆ¶àŸ«ÌÌÌ3¬DÆ¶àŸ«¬ÌÌÌÌDÆ¶àŸ«¬DÌÌÌÌÆ¶àŸ«¬DÆÌÌÌÌ¶àŸ«¬DƶÌàŸUUU ÌÌÃ/a‡}0<ÌÌÌ/a‡}0/ÌÌÌÌa‡}0/aÌÌÌ̇}0/aÌÃ<̇}0/aÌÌÌ̇}0/a‡Ã<ÌÌ}0/a‡}ÌÌÌÌ0/a‡}0ÌÌÌ3/a‡}0/ÌÌÌÌa‡}0/aÌÌÌ̇}0/aÌÌÌ̇}0/ȧ}UUU ÌÌÃMn ÐèÅN<ÌÌÌMn ÐèÅNMÌÌÌÌn ÐèÅNMnÌÌÌÌ ÐèÅNMn ÌÃ<ÌÐèÅNMn ÐÌÌÌÌèÅNMn ÐèÃ<ÌÌÅNMn ÐèÅÌÌÌÌNMn ÐèÅNÌÌÌ3Mn ÐèÅNMÌÌÌÌn ÐèÅNMnÌÌÌÌ ÐèÅNMn ÌÌÌÌÐèÅNMn ÐÌèÅUUU ÌÌõ÷~Z¶<ÌÌ̵÷~Z¶µÌÌÌÌ÷~Z¶µ÷ÌÌÌÌ~Z¶µ÷~ÌÃ<ÌZ¶µ÷~ZÌÌÌ̶µ÷~ZÃ<Ì̶µ÷~ZÌÌÌ̶µ÷~Z¶ÌÌÌ3µ÷~Z¶µÌÌÌÌ÷~Z¶µ÷ÌÌÌÌ~Z¶µ÷~ÌÌÌÌZ¶µ÷~ZÌýÿÿ ÿüãEÝPìºÜFMÕ @ ý¢ÞNOÉ, ÙžÜPGÅ$Û´ÞH?Í*÷´â@ QÅ, é ”âR aÁ.Ë”Úb SÍBá#¸ÔTOßPú¸ÖP _ÛNý¨Ü`aÕNõ ²Øb OÝNö²ØPSÙ LþœÚT[ËDã Í”ÖUUU ÌÌijiS•ƒ<ÌÌÌ„³iS•ƒ„ÍÌÌ̳i S•ƒ„³ÌÌÌÎk S•ƒ„³kÌÃ<ÜS•ƒ„³i ÌÌÌÌS•ƒ„³k SÃ<ìÌ•ƒ„³kS•ÌÌÌ̃„³iS•ƒÌÌÌ3„³iS•ƒ„ÌÌÌ̳iS•ƒ„³ÌÌÌÌiS•ƒ„³iÌÌÌÌS•ƒ„³iÌS•ýßìÿóÏEKi´<Ð ÝCK] ¬:Þ åCQK°2æ Ï EWK À2 Ð ÁQU[Â:Âé=QU´<êö=WC² 4õë5U Mº*ÏÌÌÿìã7Ka´2äþ?K] ªBýú7OWª Dùå7ìÿßíKa <æë?K_ œ :ì û5MOÏ 2UUU ÌÌà ï/„b: <ÌÌÌ ï/„b: ÌÌÌÌï/„b: ïÌÌÌÌ/„b: ï/ÌÃ<Ì„b: í/„ÍÌÌÌb:í/„bÃ<ÌÌ8í/„b8ÌÌÌÌí/„b8ÌÌÌ3í/„b8ÌÌÌÌí/„b8íÌÌÌÌ/„b8í/ÌÌÌÌ„b8í/„Ìb8UUU ÌÌÃìvu9t9ë<ÌÌÌìvu9t9ëìÌÌÌÌvu9t9ëìvÌÌÌÌu9t9ëìvuÌÃ<Ì9t9ëìvu9ÌÌÌÌt9ëìvu9tÃ<ÌÌ9ëìvu9t9ÌÌÌÌëìvu9t9ëÌÌÌ3ìvu9t9ëìÌÌÌÌvu9t9ëìvÌÌÌÌu9t9ëìvuÌÌÌÌ9t9ëìvu9Ìt9UUU ÌÌꫬ«©©©<ÌÌ̪«¬«©©©ªÌÌÌÌ«¬«©©©ª«ÌÌÌ̬«©©©ª«¬ÌÃ<Ì«©©©ª«¬«ÌÌÌÌ©©©ª«¬«©Ã<ÌÌ©©ª«¬«©©ÌÌÌÌ©ª«¬«©©©ÌÌÌ3ª«¬«©©©ªÌÌÌÌ«¬«©©©ª«ÌÌÌ̬«©©©ª«¬ÌÌÌÌ«©©©ª«¬«Ì©©UUU ÌÌÏS«¬TVVÿT<ÌÌÌS«¬TVV«SÌÌÌÌ«¬TVV«S«ÌÌÌ̬TVV«S«¬ÌÏ<ÌTVVÿTS«¬TÌÌÌÌVV«S«¬TVÏ<ÌÌVÿTS«¬TVVÌÌÌÌ«S«¬TVV«ÌÌÌóS«¬TVVÿTSÌÌÌÌ«¬TVV«S«ÌÌÌ̬TVV«S«¬ÌÌÌÌTVV«S«¬TÌVVUUU È{|}|<€L{|{ÈÌ|{|€LÈ{|<€}|{|LÈ{|<€}|{|LÈ{|Ì€ó{|}|{ÈÌ|{|€LÈ{|Ì€{|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~ÿ}~}~ÿÿŠ¢Á�p¤k$Š«*>€¿ýÐ                                                         D00_liftD00_liftÍÌÂ1ÒÁ6­ÝÂÃS AŒ+Aš™>   hÜhÍÌš™¾1ÒÁÃS A6­ÝBŒ+AèÜà UÕw3óÀðïðïðï33óóðïðïcðïðïðÀ33ïðïðïóóÀ#cdcdcd33óócdcdòEFEFEÀ33FEFEFóóóÌÌ—˜——˜—ÏИ——˜—ÏÐÇÒfe½d ÊÈdÀedàßàßà 3?ßàßàßmÇÒfe½d ÊÈdÀedàßóÀ3àßàßàß3ó ÀàßAâáâáó ÀÌâáâáVUUC033á’v@!!óóÀsvuvuvu33³óvuvupopopÀ33opopoÒ@!ÀæÐB�?0)*)*) 3=*)*)*ä(ó)*óÀ3)*)*)*3@)*á@'UUuÀóó�ž�ž�ž�Ì Àž�ž�óóÌ ž�ž�ž�ž�žÀÀóó$åæåæåæåÌ ÀÀæåæRvóóÌ uvuvuvuvuóóÀÌ¡{|{|{|Ð|óÀÏÿ{|{|ƒöP�RQRÏü ö¹OPOlÃÄÃ?<ÀÌÄÃÄÃÄÃÄ2ôR�RQRö¹QRQnÀóóÌÅÆÅÆÅÆÅÆÅÆ*„£‚ƒ„!� „£‚ƒ„!�PUÀGÀ@F€ &@Œ´@’a„Ìó3ÙÚÙÚÙÚÙ ó3ÚÙÚÙÚÙUUu„„„€„„„€ÌÌÌÌÅ('('('(ÀÌÌ'×›œ›ÌÌÀœ›œ›œÌÌÌóPœ›œ›œ›œ› Ìó?œ›œÝ²±²±²ÿüÌ̱²±²±²ŠìëìëÌÀ ìëìë‡+,+,+,+,+,+ŠìÌÌÌëìëìëìëP¯L²PN°K°NžM�¯L²PN°K°NžM•U¶ ÌÌÌ$#$#$#$À Ì#$#$ÌÌÀ#$#$#ð@0@0@0@"ÀÈHHH@ÌÌÌó¦"!"!"!"! Ìó?"!";àßàßàÿÿÿ0€p€pßàßàßàÌÀ DÜÛÜÛÜÛÜÛÜÛÜP`P`P`ÀÌó3ýüûüûüû ó3üûüûüûUUU@À@@€@À@@€@À@@€@À@@ÀÀÀÀG”IIÀÀŒ ”IK”ÌÌKL“J  ÀÌÌÀM˜MN—L€À€@ÀÀÀ¨+{ÀÀÀ¨+{UUUÀ€þÀÀÀÿþýÀ€ÀÀþÿþÀÀ€ýþÀÀÀÿþýÀ€ÀÀþÿþÀÀÀÀ^¹¡£ÀÀÌ ¹¡ÿ ¾ÌÌ  Ÿ½`ÿ ýþÀÌÌÀ ¾ Ÿ½`À@ÀÿýÀÀÀÀþ(ˆ¯ÀÀÀ(ˆ¯UUUÀ€@ÀÀ€@ÀÀ€@ÀÀ€@ÀÀÀINMÀÌÀN½»Ì ¢  ±Ì ÀÀ·¨¢À@@ÀÀÀuã£ÀÀÀwã£UUU@ÀýÀ€@þÀÀýþ€@ÀýÀ€@þÀÀýþÀÀÀ¡¤£ÀÌÀ¤ÿ£¹Ì  ¡£]ÿ þýÌ ÀÀ£¹¡£]€ÀÿÀÀÀÀþRÖ%ÀÀÀ¯Ö%UUUÀ@@À@@À@@À@@ÀÀÀNMNÀŒÀML—Ì LLIÌ ÀÀL—LLIÀ€€ÀÀÀjÅZÀÀÀlÅZUUU€ÀÿÀ€þÀÀÿþ€ÀÿÀ€þÀÀÿþÀÀÀ¤£¤ÀÌÀ£ý¢ºÌ  ¤¢^ý ÿÿÌ ÀÀ¢º¤¢^@ÀÀýÿÀÀÀ.êÀÀÀè.êUUU@À@@À@@À@@À@ÀÀÀÀI”IIÀÀŒ ”IL›ÌÌLKœM ÀÌÌÀL›LKœM€À€ÀÀÀ� µÀÀÀÀ µUUUÀ€þÀÿÀ€ÀþÿÀ€þÀÿÀ€ÀþÿÀÀÀÀ£¹¡£ÀÀÌ ¹¡ÿ¢ºÌÌ ¢¡¹^ÿ ýÿÀÌÌÀ¢º¢¡¹^À@ÀÿýÀÀk¤ÀÀ£¤P3óóÌëìë�ž�uvžìóóÌÌë�ž�uvŸ*ëìÌÀvëv )ÌÌÌ*ëìvëv3ÌÌëìvžìvóÌÌuëìvžìvP3ÒsŒ©ª©¬«ªÒsÌÌ©¬«°©ªÌÀ«©© ¯ÌḬ̀©ª«©©3ÈÌ©ª«ª«óÈ̬©ª«ª«U33ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3óóÌTSTÿÿÿ¬«ÿSóó ÌTÿÿÿ¬«¬T¬ÌÀTVV «ÌÌ̬T¬TVV3ÌÌTS«ÿS«óÌ̬TS«ÿS«UUU3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3À! |{|{À!LÀ|y|�33}~}~}~333<}~}~}~}zÌóy|}~}3333~}~}~}~}33À„~}|{|óÀ„{|{|UUU ÌÌÌÀ¿À¿À¿ÀÌÌÌÌ¿À¿À¿À¿ÀÌÌÌÌ¿À¿À¿À¿ÀÌÌÌÌ¿À¿À¿À¿ÀÌÌÌÌ¿À¿À@ÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌóÿÿÿÿÿÿÿÿÿ Ìó?ÿÿÿÿÿÿÿÿÿÿðÌÌÿÿÿÿÿÿÀ¿À¿ÌÌÌÏÀ¿À¿À¿À@ÿ3ÿÿ ÿÿÿÿÿÿÿÿÿÿÀÌÌÌÌ¿À¿À¿À¿ÀÌ ó3¿À@?@?@? ó3@?@?@?ÌÌ{|{|ÌÌÌÌ{|{|{|{|€@a!a!§ȵ€ÿ€>€¿mÐ              D08_accent D08_accent©¤_Á)ŘÃÿe�Äíž²À.'˜ÃQêŽÄ$$©¤_ÁQêŽD)ŘÃíž²Àÿe�D.'˜Ã–Ž )I'3= õöõöõöõS¨S¨S¨Sÿÿ¨STTS&¤%¸(¢%º"¨'¶(¢!ÿÿº"¤'�§&¤(N'›(N'�*N'�(P)ÿÿ›(N'MM(Nï*É¡Óð¶Ò�Ôýx@ÑÿÿAÚwhpæq7ì:{„&9²i%ÿÿ¸0W0  ÀÀÀ§m`ÀÀŽÀÀÀÀÀ ÀÀÀÂú2ÀÀº†ÀÀÀ$ÀÀ ÀÀ _ÀÀÇÈÀÀÀÀÀ ÀÀÀHñÀÀ -@ÀÀÀÀ ÌÌÌÿÿÿÿÿÿÿÌ3ÿÿÿÿ ÌÌÌ}~}~}~}Ì3~}~}3333ÿÿÿÿÿÿÿÿ3 ÿÿÿ3333}~}~}~}~3 }~}*šÄÈI“å)ð!MÄÞ€?€?€¿)Ð D08_banner D08_banner33[ÁІ«Ã"�›Ä33[Aj\¥Ã ˜ÄT8T33[Á ˜DІ«Ã33[A"�›Dj\¥Ãí8å U3ó3󺹺¹º¸·¸·¸3ó3󺹺¹º¸·¸·¸3óó󺹺¹º2Ø×Ø×ØóóNØ×Ø×ØU3ó3óPOPOPPOPOP3ó3óRQRQRPOPOP3óóóPOPOP8,+,+,óóY,+,+,UÀÀÀ{|{ÀÀÀÀ|{|{ÀÀ€À|{ÛÀÀ±ÝP€À«U ÌÌÌñòñòñòñÌÌÌÌòñòñòñòñÌÌÌÌòñòñå)*)ÌÌ¥)*)U ÌÌÌRQRQRQRÌÌÌÌQRQRQRQRÌÌÌÌQRQRƒ0/0ÌÌb212UÀÀÀÀÀÀÀÀÀÀÀÀÀU@€@€@€@€@€@€@UÀÀÀÀÀÀÀÀÀÀÀÀÀU€@€@€@€@€@€@€U33ÿÿÿÿ33ÿÿÿÿ33ÿÿÿÿ33ÿÿÿÿ33À~}~}~ó3À}~}~}~ó3À}~}~}~U Ì Ì€€€€ÌÌ Ìÿ€€€€ÌÌÌÌÿ€€€€ Ì€€=ÿ€ÿ?€¿YÐD08_liftD08_liftk+\Á¾9­Ãƒ›Äk+\AžO¥ÃÅ˜Ä   xDxk+\ÁŘD¾9­Ãk+\Aƒ›DžO¥ÃpDh UÀÌ RQ·R óÌóQ7ÞÝAßàBAóÌóóèÞÝAßàBA²àßÌóóÌAÝÞBAèàßAÝóÞBAUÀÌ e Ò@!4Ò@!À.YHaÀH.a¥3Ì==+«©ª©©ªª©©ªª©©«¬«¬«ä:87887rq87788o9:p:ºÏ0?ÿWXWXÃèèçèèç/0èççèè0çè/è ííîíëì&%ëìîíë%îí&íl¸¶µ¶¸·‘’¸·µ¶¸’·¸ªªªª ‡ŠŸú—Šù¯¯†V‡ÿ‡V!�xèöCF\¶SF•ji!̼Ëÿ˼>ϼüø©ªŸú)™ª÷�¯fVeíeVkVȱ úËÌ¿üw»Ìù¯Ï¨x©)ÿ©x¯šúöef\¶Ufµli!¨x©‚ÿ©x¯šøøeh~Øuh׎oD4e©e4i4_W—×      �����������À ÿÿ�ºÊÉÊÉÊÉÊÉÿ3?ÊÉÊÉ¢ÁÂÁÂÁÂÁ†>=>=>=>=>=>À ÿÿ=$ÜÛÜÛÜÛÜÛÿ3ÿÜÛÜÛ�qrqrqÿüÌrqrqrqr3 ]|{|{|{|{ÿ3ÿ|{|{Ý�����ÿüÏ�������œ šššššfßàßàßà߈ÿüÀW¶òñòñòñòñòñòñ_WW×878787878787 ,+,+,+,+,+,À ÿÿ+21212121ÿ3?2121Y"!"!"!"AFEFEFEFEFEFÀ ÿÿE(:9:9:9:9ÿ3ÿ:9:9"@?@?@ÿüÌ?@?@?@?m('('('(8DCDCDCDCÿ3ÿDCDC&87878ÿüÏ7878787"<;ÿÿð<;<;<;<;<;k&%&%&%&y21212ÿüÏ1212121*)ÿÿð*)*)*)*)*).-.-.-.-.-.-UUUUff@™™ffd@ !™™�€!™™�†ff@™™UUUU?ü?Ðÿðÿ¢¡¡¢¡¢¢¡¢¡@ ÿÂ��‚�‚‚ý0�‚�!ÿðÿ@ ÿâ¡¡¢¡¢¢ý/ÿ¡¢¡‚��‚�‚ôÀ‚�‚�@‡ÿÃý/ÿ¢¡¡¢¡¢ô¿¢¡¢¡‚��ü?Ђ�‚‚�‚�ÿô¿¢¡¡ü?Т¡¢¢¡¢¡ÿðÿ@‚��‚�‚‚�‚�UWUU?ü?ðdcefefdcdcþÿðÿýfeghghfefeÀÿÃþýxwyzyzxÿ00wxwþ‚ÿÿ€dcefefdcdcÀÿÃþýfeghghfÿ?ÿefeþýxwyzyzüÀxwxwþ‚ÀÏÿÃÿÿ€dcefefdÿ?ÿcdcþýfeghghüÿfefeþýxwyü?ðzyzxwxwþ‚?ÿÿÿ€dcefefüÿdcdcþýfegü?ðhghfefeþýÿðÿÀxwyzyzxwxwþ_WUÕ¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿@ÿÿL$mnmmnIJmý4’nnm„¤ÖÕÖÖÕ…†ÖÕÕÖ@ÿÿ«‘¿À¿¿À®­¿ý?ÿÀÀ¿L$mnmmnÿôÒIJmnnmHÿÿ„¤ÖÕÖÖÕ…†Öý?ÿÕÕÖ«‘¿À¿¿Àÿôÿ®­¿ÀÀ¿L$mnÿÿÐmmnIJmnnmI ?ÿ„¤ÖÕÖÖÕÿôÿ…†ÖÕÕÖ«‘¿Àÿÿп¿À®­¿ÀÀ¿L$mnmmnIJmnnm_WWÕR<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<ÀÿÿþThFEFDC¬«Dÿ<óCEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<ÀÿÿþrT<;<:9Ž�:ÿ?ÿ9;<þThFEFDCÿüó¬«DCEFþ‚ÿÿÿÿ R<;<:9Œ‹:ÿ?ÿ9;<þrT<;<:9ÿüÿŽ�:9;<þThFEÿÿðFDC¬«DCEFþ‚Ï0?ÿÿÿÿÿ R<;<:9ÿüÿŒ‹:9;<þrT<;ÿÿð<:9Ž�:9;<þThFEFDC¬«DCEFþ]WUÕ?ý¿àHMNMIJIJNMJ³´³fe´³À ÿÛhLMNMMNKüñLNMH€€èçÏÐèç€À ÿÛËJKLKKLKü/ÿLLKLùø÷^]ÿü!ª©^]úù¬ÿÿHKNMKLKü/ÿLLKJKLKKLoð¿KLLKLùøÿÿð÷^]ª©`_úù¬†?ÿHKNMKLÿð¿KLLKJ÷úÿÿðù`_ª©`_ø÷¬L\[\÷ø«¬õö[\©]WWÕ?ü?𢣤£¡¢¡¢¤£ýÿ¢öõö;&{zø˜{zâ`{z<ò}zyzø˜{zâ`{z‰{z€ó}zyÈâ`z{z‰{z€~{z&}Ï ‰zyz{z€~{z&ø˜{z@A?ËÌËÌÿËÌËÌ ËÿüÌËÌËÌËÌ3ÿðËÌËÌËÌËÌ@A?ÍÎÍÎÿÍÎÍÎ ÍÿüÎÍÎÍÎÍÎ3ÿðÍÎÍÎÍÎÍÎWWW×ÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]WWWÿÿÀ~}~}~}~}~}~}~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3?~}~}|{|{|{|{~}~}~}~}~}~ ÿÿ}~}~}~}~}ü3ÿ~}~}~}~}~ÿðÌ}~}~}~}|{|{|{|{~}~}~}~}ü3ÿ~}~}~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}|{|{|{|{~}~}~ÿðÏ}~}~}~}~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~õ}ݵ< ÿ!F‹Œ;<:ü?óÌ9:9;<;<;<:9ÒÑÑÒÑÒÒÑÒÑÒÑÑÒ   <ð03 F�Ž��“”“”������“”õöôóôóõöõöõ<Ïÿöô󣤢¡¢¡£¤üóÀÀ£¤£¤¢¡F�Ž¡±²´³´³±²±²±<Ïÿ²´³ÎÍËÌËÌÎÍÎÍÎÍËÌ!""!"!?óÏ!"!"!""!H�?ÿŽLKIJIJLKLKLKIJ  ÿÿÐà©xõ}Ýõ< ÿ !ü?óÌ"!"   !"<à03<$#%&%&$#$#$#%&<Ïÿüó€À&*)'('(*)*)*<Ïÿ)'("!  "!"!"! ?óÏ?ÿ   éýÿ÷ÿ<Àÿ‘¶AWXWXí ªŸú™ª÷�ƒW‡xÞx‡e‘¯¯°¯¯° Ÿ¯°°¯¯ÿü󟰯 ¯ŒWXWXxÞÞÝÞàßABàßÝÞàBÝÞAÞÿ¢ Ÿ ¢¡»¼¢¡Ÿ ¢¾¡¢½¢Å=?@?=>{|=>@?=~>=}=WWXWXãFHGHFEŒ‹FEGHF�EFŽF ??@?AB�‚AB@?A‚@?�?}€€€~}þý~}€~ý€þ€.YZY0?ÿŸZ‰ÿýþýÿÿÿÿþýÿÿÿýMÙÙÚÙÙÚLKÙÚÚÙÙKÚÙLÙ,ÄÄÃĪªªª¤q ü© ªŸú™ªûϯ#ˆx‡í‡x�xööed:”5d•ji!ÊšËÿ˚ϼúø‡ŠŸú—Š%÷��fVeËeVkVÆ‘ üíì¿ü½ìûÏϪš‡ÿ‡+š�šúö‡†\¶W†Õnk!Šš‡ÿ‡4š�xúö‡ˆ~Øwˆõood4õ}]] ÏÿÏâÅÆÅÆÅÆÅT|{ÿÿð|{|{|{|{|{“§¨§¨§¨§¨§¨§¨'êéêéêéêéêéêé3?ÿ×^]^]^]^&«¬«¬«¬«¬«¬«¬0»¼»¼»¼»¼»¼»¼3ÿÿ(³´³´³´³´³üLÿ´³´¬«¬«¬«¬Ãyzyzyzyzyzyz3ÿÿàüÏÿ¶µ¶µ¶µÿð3¶µ¶µ¶µ”“”“”“”tststststüÏÿstsvuvuvuÿð?vuvuvuú‡ˆ‡õ}]] ÏÿÏS    :9ÿÿð:9:9:9:9:9".-.-.-.-.-.-4343434343433?ÿ]"!"!"!"'@?@?@?@?@?@?&2121212121213ÿÿ878787878üÌÿ787c$#$#$#$+FEFEFEFEFEFE3ÿÿ(:9:9:9:9:üÏÿ9:9"@?@?@?ÿð3@?@?@?o('('('(A434343434üÏÿ343*)*)*)ÿð?*)*)*).-.UUUU†ff@@ffd@ ffd!™™�€ €UUUU ü?Ðÿðÿ@¢¡¡¢¡¢¢¡¢¡ ÿÃý‚��‚�‚‚�‚�0!ÿðÿ@ ÿÃý¢¡¡¢¡¢¢¡¢¡/ÿ‚��‚�‚‚�ôÀ@‚�‡ÿÃý/ÿ¢¡¡¢¡¢¢¡ô¿ü¢¡‚��‚�‚?Ђ�‚�ÿô¿ü¢¡¡¢¡¢?Ðÿ¢¡¢¡‚��‚Õu]U ÿ‚ÿÿ€dceü?ðfefdcdcþýÿðÿÀfeghghfefeþýxwyzyzxwxwþ003‚ÿÿ€ÿðÿÀdcefefdcdcþýfeghghfefeþ?ÿýxwyzyzxwüÀÀxwþ‚ÿÿ€dcefefdcdcþ?ÿýfeghghfeüÿüfeþýxwyzyz?ðxwxwþ‚ÿ?ÿÿ€dcefefdcüÿüdcþýfeghgh?ðÿfefeþýxwyzõ}]U $€ÿ„¤ÖÕÿÿÐÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿L$mnmmnIJmnnm4’„¤ÖÕÖÖÕ…†ÖÕÕÖ«‘¿À¿¿À®­¿ÀÀ¿?ÿÿL$mnmmnIJmnôÒHnm„¤ÖÕÖÖÕ…†ÖÕÕÖ?ÿÿ«‘¿À¿¿À®­¿ÀôÿÿÀ¿L$mnmmnIÿÐIJmnnm ?ÿÿ„¤ÖÕÖÖÕ…†ÖÕôÿÿÕÖ«‘¿À¿¿À®ÿÐÿ­¿ÀÀ¿L$mnmõ}]]<Àÿ‚ÿÿÿÿ R<;ÿÿð<:9Œ‹:9;<þrT<;<:9Ž�:9;<þThFEFDC¬«DCEFþ<ó‚ÿÿÿÿ R<;<:9Œ‹:9;<þrT<;<:9Ž�:9;<þ?ÿÿThFEFDC¬«DCüóÌEFþ‚ÿÿÿÿ R<;<:9Œ‹:9;<þ?ÿÿrT<;<:9Ž�:9üÿÿ;<þThFEFDC¬ÿðÏ«DCEFþ‚ÿÿÿÿ R<;<:9Œ‹:9üÿÿ;<þrT<;<:9Žÿðÿ�:9;<þThFEFu]UU}zyz{z&ø˜{zâ`{z<ò}zyzø˜{zâ`{z‰€{zóÈ}zyzâ`{z‰€{z~&{zÏ}zyz ‰€{z~&{zø{zÏÿÀËÌËÌËÌËÌ?ÿËÌËÌËÌËÌ ÿËÌËÌËüÌËÌ3ËÌÿðËÌËÌËÌÏÿÀÍÎÍÎÍÎÍÎ?ÿÍÎÍÎÍÎÍÎ ÿÍÎÍÎÍüÎÍÎ3ÍÎÿðÍÎÍÎÍÎõ}]]ÏÿÏ21212121ÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð3ÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÕu]] ÏÿÏ}|{|{|{|{~}ÿÿÀ~}~}~}~}~}?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3?ÿ}|{|{|{|{?ÿÿ~}~}~}~}~}~}~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÌÿ}~}|{|{|{|{~}~}~}~}~}~3ÿÿ}~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ3~}~}~}|{|{|{|{~}~}~}~}~ðÏÿ}~}~}~}~}ÿÀ?~}~}~}~}~vx©© —ðH ÿü�ŽßbaababbababaabIJJIðÿÏ3JIIJIJIJJIÛÜÜÛÜÛÛÜÛÜÛÜÜð00ÛF‹ŒuðÿÏ8 ÿü      ðÿÏ3à00÷ÄÃwxÄÃÃÄÄxÃÄwÄ[W<ÀÿÿXWX‘__`__`¿À_``__À`_¿_‡[[\[[\µ¶[\\[[¸\[·Y†ççèççè21çèèçç/èç0üóåúWXWXªC©C4GV†s0@ú©ªŸLú™ªù¯�ˆx!‡ÿ‡x�xøôed:”5d“Jô’ ]ÿÿÀ ˆ‡ˆ‡ˆ‡ˆ‡ˆ �‚�‚�‚�–ÿð? ™š™ÿÿÀ š™š™š™š™š´¼»¼»¼»¼»¼»¼»3?ü¶ÇÈÇÈÇÈÇ]ÿÿÀ -.-.-.-.-SC878787ÿð?878787 ,+,ÿÿÀ +,+,+,+,+4343434343433?üW    U™™†ff@@ffdUðÿ@ �‚‚�‚�ü?Ðÿ¢¡¡¢ðÿ@ ¡¢¢¡¢¡‚ÿÃý��‚�‚‚�‚�0 UðÿÀ yzxwxwþ‚ ÿüÿÿ€dcefef?ðÿdcdcþýfeghðÿÀghfefeþýxÿÃÿwyzyzxwxwþ000‚ÿÿUÿÿ@ mnIJmnnm$€ÿÿ„¤ÖÕÖÖÕ…ÿÐÿ†ÖÕÕÖ«‘¿À¿ÿÿ@¿À®­¿ÀÀ¿L$ÿÿýmnmmnIJmnnm4’UÿÿÀDC¬«DCEFþ‚ÿ<Àÿÿÿÿÿ R<;<:9Œÿðÿ‹:9;<þrT<;<ÿÿÀ:9Ž�:9;<þThFEFDC¬«DCEFþ<ó‚ÿÿÿÿUöÿMNKLNM&yz{zø{z˜{â`z<ò}zyzÏÿÀËÌËÌËÌËÌ?üËÌËÌËÌËÏÿÀÍÎÍÎÍÎÍÎ?üÍÎÍÎÍÎÍ]ÿÿÀÿÿÿÿÿÿÿÿÿ21212121ÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ü2121212]ÿÿ }~}~}~}~}|{|{|{|{~}~}~}ÿÀ?~}~}~}~}~ÿÿ }~}~}~}~}ÿÿü~}~}~}~}~}~3?ü}|{|{|{|5M¿C¹€Š«*>€¿Ð                                                                                                                                                                                                               D09_accent D09_accent Á² ²Ã\ÏžÄ AÔ±ÃÍÄžÄT8T ÁÍÄžD² ²Ã A\ÏžDÔ±Ã#8 } óóó‘’’‘’’‘’’‘’’‘’’‘’”“”’‘’’‘’’‘’’‘’’‘óó’’‘’’‘} óóó#$$#$$#$&%&$#$$#$&%&$#$$#$$#$&%&$#óó$$#$$#U„„„„„„„„„„„„U„„„„„„„„„„„„U?ÌÌÌ´Ð3°´³´³´ÌÌÌ̳´³´³´³´ÌÌÌ̳´³´³´³´Ìÿ³´³¶´µU?ÌÌÌ„†�‡„ƒ„ƒ„ÌÌÌ̃„ƒ„ƒ„ƒ„ÌÌÌ̃„ƒ„ƒ„ƒ„Ìÿƒ„ƒ†„…AÀeÀYAÀ&À$AÀ3À-AÀ À AÀH@À0@Àp@À0U 333ÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33ÿÿÿÿU 333}~}~}~}3333~}~}~}~}3333~}~}~}~}33~}~}U3 ÌÌÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÿÿÿÿU3 ÌÌ}~}~}~}ÌÌÌÌ~}~}~}~}ÌÌÌÌ~}~}~}~}ÌÌ~}~}I¥½3í°ãÛg€?€?€¿YÐD09_archD09_archKHŠÁ/uÐÃe*­ÄKHŠAâ®ÃßvžÄÀhÀKHŠÁßvžD/uÐÃKHŠAe*­Dâ®Ãèhà õÿõ3ÌÌ ÐÏÐÏ^ÏÐÏ<ÌÀ]¼ÐÏÐÏ^ÏÐ]¿çÀ(çWççWçèç(ç)ç�ç¤è£çsç/çsçèçDççGçnèmç©ç{ç©éêé|çLç2%ç&ÂçñçáçïéêéÂç²ç\ç%è&çÂç²çÂéêéïçáç2nçm©çzçLç|éêé©ç{ç&¤ç£sçDççDçèçsç/çÔç¿èÀç(ç)ç(çèçÿóÌÌWçç�ÐÏÐÏ^Ï Ï<ÌÐ]ïÐÏÐÏ^ÀÌÿÿÏÐ]�ó"ôê"Ò"Ç"Ò"!"ê"„"³ Ð!Í ®"û"®"!"ñ"¸"0‰"Šúÿ¿ö`P�P` ö`P�P <=<;>;<;>=>=<=>>;>;<;>=>=>=>=<>=>=>;<;<;<;<=><;<;<;>=>=>=>=<<;<;<=>=>=>=>;<>=>=>=<;<;<;<;>>;>=<=>=>=>=>;<<=<=>=<=>=>ÿÿö`P�p;<;>P€ ø€p�ÀÌÞÿ z010-0-0/0/0/0100/0/0-0/0/0/0100UUUUÀÀÕÖ ÕÖÀÀÕÖÀ ÕÖ ÀÕÖÀ ÕÖ ÕÀÀÖÕ ÖÕÀÀÖÕ ÖÕÀÀQÕÀ ÖÕ ÀÀÖÕÖÀ ÕÖ ÕUUUUĈ,@ˆ€áÈDL€D@„ÈD€D@„ÈD€D@!ÈDL€D@ÒĈ,@ˆ€áÈDL€D@!ÿÿÿÿ2121212121212121212121212121212h—“˜“Ó“=“Ó“”““™“•æ–啿OæHæOæåæ„ææ‘”“¤Å¤ƒæ“°’¾°®z®®­®À®*®‘¯”®‘¯½­)­¿­®­­y­“”£„儣ƕå–PåƒååƒåæåPåGå—”˜“—””š””“”Ô”>”ЉЉЉЉЉЉЉЉЉЉЉЉЉЉЉŠf™•œ•Ï“7“Ñ“”““Ÿ“•æ˜å—æMæJæMèçè€ææ“–¯ªé¯.-.-.-.-.-.-.-.-.-.-.-.-.-.ÿÿ$!T”R-.-.$$1$Rtt4"B1BRRR""@000@@@0@000@@}UYÝ1cCƒ�!4!! ƒDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDtt4B1BRRR""#ZU•V � ° �À � ° ÌóÌÌ «-.-.e— ÌÌ̘fß  uÀÌÌÌÞÝv‚ Ì Ï<ÉGHÊÌÀÌÌ6IJ5IÌÌ Ï5JI6 <ÌÀÌ ÊHGÉóÌÌ Ž  vÝÞÌÌÌÀu‘-.-f˜ððù � ° —eŸ�À � °ÀÌóÌ šKLKLÌ ÌÌFêéEâ65ÌÀÌó6¦°¯¥<UUUU3ÌÌ ijij–jiÃ<ÌÀ•ijij–jÌóÌÌi•œjijiY ÌÌÌ ZhijiUÀÌÌÌVjijiÌ Ç#$UUUU3Ì Ìijÿij–j<ÀÌijÿij–ÀóÌ jÇ djiÌ ÌÀY ^jÌÀÌÌiU Zj ÌiSPÀÌ@ÈjiMÌ ÈOijN<ÀÌÀYijTóÌ Ì _ijV ÌÀÌ cijZÀóÌ ¢ijÿijÌ<À–jijÿiÌÀóÌj–jË hj Ì Ìi[  dÀÌÀójiY ZU•V � ° �À � ° ÌóÌÌ Ì-. ›­™ÌÌÌÌN-[’ žÜÌÌÌÌܾ÷« ƒKÌÌÏ<#Ky ; ‚ÌÌÌÌKK|SÌÌÌÏ‚KK|S <ÌÌÌ ƒK#Ky ;óÌÌÌ¢ žÜܾÌÌÌÌ÷ß. ›­™Nððù � ° -[Ë�À � °ÀÌóÌ [KLÇêÌÌÌÌhê{K«œ6ÌÌÌó®®5ø[UUUU3ÌÌ ijij–jiÃ<ÌÀ•ijij–jÌóÌÌi•�ji² & ÌÌÌÌHjŠli² "ÌÌÌÌ HjŽji´ÌÌË<JjŽji¶LLÌÌLj’jiÄÄÌǶLj’j<ÌÌÌi´JjŽ3ÌÌÌji² " HjÌÌÌÌŽhi² & HÌóÌÌjŠ�ijij–j Ã<Ìi•ijij–ÀÌóÌji•�ji° ÌÌÌÌ. FjŠji²ÌÌ̳ & HjŠjiUUUU3 ÌÌÿÿ€€@@@Ã0ÌÌ@ÿÿ€€@@Ì3 Ì@@ÿÿ€€@ÌÌÀÌ@@@ÿÿ€€ÌÌÌ @@@@ÿÿ€ÌÌÃ0€@@@@ÿÿÌÌÌÌ€€@@@@ÿÿ ÌÌÀ€@@@@ÿ0ÌÌÌÿ€€@@@@3 ÌÌÿÿ€€@@@ÌÀÌÌ@ÿÿ€€@@Ì3ÌÌ@@ @ ÌÏ<Ì ÿ @ ÌÌóÌ ÿ @ ÌÌÌÌ ß@ÌÌÌó ÿ UUU3Àzy|�<}zy|óÀ}zy|ŒÌy|ÌÀy|�<}zy|ÌyÀ�|}z<y|óÀ}zy|ŒÌy|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|ÿ«"h"¤"h"!"«"ç"@/"0Q""$""!"Q"g"v"/!0"Q"g"Q"!""$"Ê"‰!Š"«"ç"«"!"h"¤"0Ð Í® ï"¸"ñ"!"®"û"ñ"ó!ô"ê"„"ÿÿê"!"Ò"Ç"ÿ/0/0-0/0/0/0100/0/0-0/0/0/0100/0/010/0/0/0-00/0/010/0/0/0-00/0/010/0/0/0-00/01010ÿÿ/0/0/0-0UÀÀÖÕ ÖÕÀÀÖÕ ÖÕÀÖÀ ÕÖ ÕUÈD€D@„ÈDL€D@!ÈDL€D@ÿ…¤ Ŧ…ä ‘®’À®®z®®­®¾®*®‘­’®‘­¿­)­½­®­­y­•” •†ã†¥Æ—å˜Nå�ååçèçNåIå�–š“›–” ”ÿÿ”“”Ò”8”U*®îj£ì掎…ÅœÝíUYaaa!aaC4CCƒƒUÌÌ ÏÍ&%΃<ÌÀÌ‡åæˆÌÌÌ ãˆæåÌÌÌÀ‡mÎ%ÌóÌÌ&Í<6565¥¯ ÌḬ̀¦›KLKEÀÌéêFUÌÌ ÇjiSTj<Ì@ŒijiOPÌÌÈüjijPÌÌÌÀOkjijTÌsÌÌSijijZ ÌÌÌ Yijij\ÀÌ [UÌÌÌÏm&å@å=å<ÌÌÌæååXëXÌÌÌÌåæååXëÌÌÌÌXd%m&å@ÌóÌÌåǰ¯˜°5ÌÌÌÌø5�é±êyÌÌK«KyUÌÌÌÉJjŽjJ,LÌÌJj’jJHÄÌÌJj’jÌÌÌÌJ JjŽÌóÌÌjJ  HjÌÌÌÌŠjH " FÌÌjŠjFUÌ Ì¨Ë$ºâ<€LÀá‘‹áÌÄÌéâ’Œâ ÌÀÌÞ#§ÌÀóÌ #>®­«65Ì ÌÀ¥­(éÑLÌÀKCéUÌ Ì\jiSÀÌ@RjiOÈÌ ÈQijPÌÀÌ[ijTÀóÌ  cijÌ ÌÀZ  giÌÀj\ UÌÌÌÎû$�$ç@jÌÌŒZááXë„ÌÌÈZááXÌÌÌÌë}û$�$çÌóÌÌ@\56®®ÌÌÌÌ5øâLÇêhÌÌê{K«UÌÌÌË´JjŽj€¿Ð D09_building D09_buildingffÂÉöÏÃÑѰľâArÁËÃMð­ÄØ”ØffÂMð­DÉöÏþâAÑѰDrÁËÃâ”Ú U3À3ÏÐÏÐÏ3ó 3ÐÏö�Ž�‹ŒÌóó‹Œ&À3ó3;.-.-.-QÐghÏhË™RQRHRQ™RšQR™š[O\PO[P[O\[P\OÇ=<ÀÌÏ>Õ;Ô>Õ˜Ó<Ö>´³´±~}²€³×™ÿ³bš´ei3À3cdcdc3ó 3dc65687ððöe87À3ó3Ehghg3¿üÏhgd12c2m2 û ûü¿_%2121ïÞýÏûþ&8ÀLŽß>Û+6565652ÿ&1U}óó Ìó ¬–•–•–3ÀÀó•–ÛqrqróÌÀqrqrq  ϲyghgâghygzhgyzgˆ…†‡ˆ‡ˆËê<ÀÌÏéÁêÂéÁSÁéÂ%=>=g>hg=h>¶yÿÁÕzÄU}óó ÇÈÇÈÇÈÇÌó âáâáâ3ÀÀóáâWóÌÀ Ÿ à ÏÈÔ—˜—²—˜—˜— ²±²±²±²M<@ÌÏ [ÿ Œ UU ÌÌÀƒ„ƒ„ƒ„ ó 3ƒ?èçèçèÌÌÌÌçè˳´³´³ÌÌ´³ÉÀÏ?0Êø~}~¬¨§ÌÌϨ§¨§¨?j0Ã<ÌijijijåÏ33<›œ›œ›œ›œ› À ?ÉÊgaUU ÌÌÀÿÿÿÿÿÿ ó 3ÿÔÓÔÓÔÌÌÌÌÓÔs˜—˜—˜ÌÌ—˜¦ÀÏ?0t¶µ¶2ÂÁÌÌÏÂÁÂÁ°0Ã<̯°¯°¯°_Ï33<„ƒ„ƒ„ƒ„ƒ„ À æXó’‘’UU@ÀÀ€ÀÀÀµ´¸À@@³À@@€ ÙM PÖ܃ ¦®¥) LMPØ  ÚÙÜ0LUUÀ€@þÀÀÀÀýY§¥ÀÀÀ¨ÿþ€ÀÿÀÀ þý*ª V+Ö; ­ƒ®À VªVÖ +,þÖ0VUU€@À@ÀÀ·¸ÀÀÀ€·º€@@à Ú LØÕ% ª­©Ô  OLÚ  רÕ0OUUÀÀýþ€ÀÀÀÿ¦¥ÀÀ@À¦ZýÀÀÿÿÀ� þ)ÿ VÔ,ê ­„®’ UÿV) ÕÖþ,0UUU@@€@À@@ Ù  Kv )ÜÜ  PK0PUUÀÀÿþÀýÀ€ÀþÿÀþ *ÿ Uÿ± )+ÿ VÿUÿ0VUU@À@@À@@À@ ÙM PMÛ Ú'xM LMPM0LUUÀ€ÀþÿÀþ€ÀÀÿþ€Àÿ *ª VªÕ )Nª VªVª0Vâ30áâáª30©ª©UU33€€3ÿÿó33€€€€33À€€0ÃÿÿÿÿÕ3<Ã0ÖÕÖÿÿÿÿ€€<ÌÌÌ€€€€ÌóÿÿÿU3333€~}~}€Àó33~}~}~}~}3À~}~ó3}~}~}37ØÃ~}~{~}~3<Ì}~}~}~}~333<}~}~}~}~<Ã3}~}~}~}~}{~ ÌÌÌËÌËÌ0¾½¾ÌÏ<½¾½ëìëì ÌÌÎÍÎÍÎ0!"!ÌÏ<"!"©ª©ªUU ÌÌÌ12121ÿÿÌ3 óÿÿÿÿÿÿÿÿ ÌÌÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÏ?0ÿÿÿÿÿÿÜÛÜÌÏ<ÃÛÜÛ«¬«Sÿÿ0Ï0ÀÿÿÿÿÿÿÏ333ÿÿÿÿÿÿÿÿÿ0Ï0ÌÿÿÿÿÿÿÿóÿÿÿUUHHÌÿÿaaÌÌÌ}|{|{|ÌÌÌÌ{|{|{|{|ÌÏ2{|{|{|„�<þýþý†Œ}Ï333|{|{|{|{|0Ï0Ì{|{|{|{ó|{|í4Uù­ ÿ€š™™>€¿ÝÐ D09_crowd D09_crowdš™‘Á‘æÐÃÒù®Äš™‘A6#Éà өÄ š™‘Á Ó©D‘æÐÚ™‘AÒù®D6#ÉÃÚ Ò UUUU3ÌóÌÑÒ\ÏÑÒ\ÏóÃ??aÑÒ\ÑÒ«ÑÒÑÏ<óÌóÐ^×ÑÒ\Ñ7ÏÐÌóÃ?^ÑÁÑÒ\ÏÐüÑ?<óÌÒÑÑÒ\vÑÒ\ÑóÌóÃàÑÒ\ÑcÑÒ\Ï??<óÐ>ÏÐÏÑÒ\?ÑÒÌóÌó\ÑÉÑÒ\ÏÑÒÃ?<Ï\ÑÒ¼ÐÏ]ÒßÐ<Ï<3Ï]Ò´ÒÑ[ÒÑóóÏ<ÒÑÒÐÏ]>ÒÑ[Ï<Ï<ÒÞÒÑ[ÐVÐÏ]3óóÏÒÑKÒÑÒÒÑ[uÒ<Ï<ÏÑ[Ò ÒÑ[Ò²Ð<3óóÏ]ÒÑøÒÑÒÒÑÏ<Ï<]ÖÒÑ[ÒLÐÏ]ªªªª ð Ü ðÀj ð  ¬ ðŒ ðÀº ðÀ¬ ð * ¬ ðê ðÀœ ðÀú ð  * ¬ ðú ð z ðÀú ð ù ð�û,4 ð°û ð Jù › ðû ð*J°û ð�û ð8N û » ðû.R ð�û ð°ù:R ð û » 0ðù ð�û ðR:UÕUÝ ÿÌÿ£¤£¤££¤£¤£ÌüÌÌÚ£¤£¤£�£¤ÏÌÿÌ£¤£ £¤£¤£J£ÿ ṳ̈£¤£¥¦¥¦¥ÒÌÏÌÿ£¤£¤£Ô¥¦¥¦¥ÌÿÌü1£¤£¤££¥¦¥¦ÌÌÏÌ¥£¤£¤£D£¤£¤£„£¤£¤£¯£üÌÏü¤£¤£¹£¤£¤£ÏüÏÌ¥¦¥¦¥â¥¦¥¦¥ÌÌüÏž¥¦¥¦¥D¥¦¥üÏôϦ¥@£¤£¤££¤£ÌÌÌü¤£Ò¥¦¥¦¥¨£¤£¤£'¥¦¥¦¥ÏÏÌÌÌ£¤£¤££¤£¤£l¥¦¥¦¥¨£¤£UÕÕÝ ÿÌÿ:9:9:c<;<;<ÌüÌÌ‹<;<;Š ‡|Ð ÏÄ d cXà ßÔ ÿÿ'  ÿ9 :Y; <[9 :Y9 :Y1 2Q- .M% &E ; 5 / - + " + % C9 :Y; <[9 :Y9 :Y1 2Q/ 0O# $C ; 5 / - + ÿÞ) % UUÀÀÀg§ ÀÀÀÀe²¬äÀÀÀÀ Ä‹æÀÀÀÀ/O·¬ÀÀÀÀ�''¸ÀÀÀÀÕ²îÀÀÀÀ_ÃúÀÀfˆUU@@ÀÀÀÀ ÀÀÀ@ ÀÀÀÀ l@@À ÀÀÀÀ ÀÀ@À ÀÀ UU3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33ÿÿÿÿUU3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}3333~}~}~}~}33~}~}UU ÌÌÌÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÿÿÿÿUU ÌÌÌ~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌ}~}~ùïÿB8ÿ€¿¹Ð D01_banner D01_bannerÞ“@Áð',Â̾.ÃøB AñôèÁ7 ÃT8TÞ“@Á7 Cð',ÂøB A̾.CñôèÁš8’ U ÌóÌ,--.-óóóÌ-..-+,-óÌóó-.+-..-ÌÌNKLU 3 STTST3ó3 TSTSTTST3 3óTSTRQRQRÌ (%&U ÌóÌÅýÆþÆÅýÆóóóÌþÆÅ7ÅÆþÆÅýÆóÌóóþÆÅýÆþÆÅ9ÃÄÌÌÑñÂðj@ PP4 P06@U33 óopopopop ÌÌóopopopop ó Ìopopopo³3$#$#U33 óHGHGHGHG ÌÌóHGHGHGHG ó ÌHGHGHGH³3,+,+UÀÀÀstsÀÀÀÀtstsÀÀÀÀtstsÀÀŠŸUÀÀÀ&%&ÀÀÀÀ%&%&ÀÀÀÀ%&%&ÀÀUÀÀÀpopÀÀÀÀopopÀÀÀÀopopÀÀ…œUÀÀÀ%&%ÀÀÀÀ&%&%ÀÀÀÀ&%&%ÀÀUÀÀÀopoÀÀÀÀpopoÀÀÀÀpopoÀÀ†›UÀÀÀ&%&ÀÀÀÀ%&%&ÀÀÀÀ%&%&ÀÀUÀÀÀstsÀÀÀÀtstsÀÀÀÀtstsÀÀŠŸUÀÀÀ&%&ÀÀÀÀ%&%&ÀÀÀÀ%&%&ÀÀU3Ìÿÿÿÿ3Ìÿÿÿÿ33ÿÿÿÿÌÌÿÿÿÿ ÌÀ}~}~ó3À}~}~}~óÌÀ}~}~}~U33 ó€€€€ ÌÌó€€€€ ó Ì€€€€33ÿÿÿÿ@a!d. 7Û�öd‰œv�ö?@?€¿YÐD09_liftD09_liftµ–Á"ýÍÃsM«ÄKê�Á"½ÌÃJ«Ä   $$µ–ÁJ«D"ýÍÃKê�ÁsM«D"½ÌÃME  óóÌNMMNMœ›ONÌó›NMœ›À» ¿ÐÀÌó ’@„@’@„@„’„’ÀÀÀ”IIÀÀ”IÀÀÀ¹¡£ÀÀ¹¡ÀÀNMÀNÀÀ¤£À¤ÀÀMNÀMÀÀ£¤À£ÀÀÀ”IIÀÀ”IÀÀÀ¹¡£ÀÀ¹¡ óóÌìë�ž�uvžìÌóvž�uv ÒsŒª©¬«ªÈs«¬« óóÌSTÿÿÿ¬«ÿSÌó«ÿÿ¬« À! {|{À!|3 Ìóÿÿÿÿÿÿÿÿ3 ÿÿÿ'Û®Ú.&ÑÛ®Š«*>?€¿)ÐD09_neonD09_neon�À/UÍÃò­Ä�@ÃC®ÃázžÄ   H0H�ÀázžD/UÍÃ�@ò­DÃC®Ãœ0” a€a€a€a€Àó󪩪©ª©ªÌ ÀÀ©ª©¬ªóóÌ ©ª©ª©ª©ª©€ ÌÌÌÏÐÏÐÏÐÏÀÌÌÐÎÏÐÏÌÌÀÐÏÐÏÐ*À°À°À°À°ÐÀ°À°À°À°@À@@€@À@@À€þÀÀÀÿþýÀ€ÀÀþÿþÀ€@ÀÀ€@@ÀýÀ€@þÀÀýþÀ@@À@@€ÀÿÀ€þÀÀÿþ@À@@À@À€þÀÿÀ€Àþÿ33ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333~}~}~}~}33À~}~}~ Ì ÌÿÿÿÿÿÿÌÌ Ìÿÿÿÿÿÿÿ ÌÌÌÿÿÿÿÿÿÿHÌÌ}|{|ÌÌH{|{|ÌÌÌÌ}|{|{|{|ªÿ€ÿ€>€¿MÐ D10_building D10_building)˪AÏÏî²Ä×4õAë›ÌÃÙi±ÄlJl)˪AÙi±DÏÏÃ×4õA®²Dë›ÌÃÍJÅ Ý3 Ì?~}#~$}#~}~{ž²�ž±�²œž²�ÿÌó ±²ž±eÏ‘ÏÐ�1�ž2žÏ�Œ‹Œ£‹ÿÿðŒ¤‹£„}@~?Ý3 Ì?ÄÃrÄqÃrÄÃĨ…»„ƒ¼†½…ƒ½†ÿÌó ¼»…¾'%#$ / 0 # �¯°¯ °ÿÿ𯰠Ã�,ÄžÝ3À3`_`_`_`'< ;:u :ÿÌó ;<9¦uBst4§21¨3s2-iji‰hÿÿðgŠj‹ü_ÏÐ`ÐÝ3 Ì?YZ®Y­Z®YZYs5ts6t5lu3tÿÌó 65s4½ , ! " Ê^]^,_ÿÿð`+]*Z-Y,TH’ó óÍÌËÌËÌË ÀÌÎÆËU ó3ÿÿÿÿÿÿ Ì3 ÿÎåæåæóó óåæåj¬«¬«¬« ̬ŽÀÏ0t¾½¾U@ÀÀø}ÀÀÀÀ|™=~ÀÀÀ@>óÀÀÀÀø{zy@Ã|óUÀÀÀÿz=ÀÀÀÀÁŸ»}ÀÀÀÀ¼áyÿÀÀÀÀzÄ<;ÀÃþÁyUÀÀÀöóxÀÀÀÀ~×:~ÀÀÀÀ9Z÷öÀÀÀÀóz|{@Ã~÷UÀÀÀ…yÃÀÀÀÀ>¤¼}ÀÀÀÀ»%y…ÀÀÀÀy>ÃÄÀÃþ>yUÀÀÀõô÷€ÀÀÀ|yKÀÀÀÀ¿õøõÀÀôõøUÀÀÀ†z†ÀÀÀÁ=nÀÀÀÀ †z†ÀÀz†zU@Àø@ÀÀÀJ¾|ÀÀÀ@€óÀ@øóUÀÀÀÿzÿÀÀÀ’ <ÀÀÀÀ>ÿyÿÀÀzÿyÌÌâáâáÌ̪©ª©U3ÌÌ3ÿÿÕÖÕÖÿÿ3ÿÿÌ3Ìÿ€€3ÌÀ€€0ÿÿÿU3ÌÌ3~}~}~}~}À ÌÌ~}~}~}ÌÀ~}~ó3}~}~}Ì7Ð~}~{~ ó3̽¾½¾½¾Vì ó3Ì"!"!"!‡ªU ó3ÌÛÜÛÜÛÜx¬ÌÌ3Ìÿÿÿÿÿÿÿÿ3ó óÿÿÿÿÿÿÿÿÿ ó Ìÿÿÿÿÿÿÿó0ÿÿÿÿÿÿUa!Ìÿý!„!ó ó{|{|{|{ ó Ì|{|{|{|ó0{|{|{|i²íÃáÂa>žÃá_ïî>€¿qÐGD_liftGD_lift‘xÂõ‰Ãz{Ä�Õn tMÃv�TÄ   ´f´‘xÂv�TDõ‰Ã�ÕnÂz{D tMÃdf\ UÀÏ?"!ÛÜÜ0ÌÏÿÛ×ÜØ×ÛØÜÛ×ü óÜØ"!ÓÔÌ óÿØÙÑSר×ÓÒÚÿÀÀÏÙÑÔØ('Ù??<ÏÚÜÛÑÒÑÚÔRÒÿðÜÓÔÛÑÚUÀÏ?Ê\[ZY0Œ~Z[\YZÌ ó[õÊ\[Lá·\]\[íÀÀÏ\[õÌZ?0 LYZ[\Y\ç0[\YY3Ì?HGHG“�ð0ðôóO”“”“”ÿ<Àó“vFEFE•Ì óÿ“”™”“”“ÿóÌ”“vHGHG“??<Ï�”“”“˜“ÿ𔓔™ `P`P>@ÀùP`V`P3À ùPePe<ÀU ÿüÌCDCDCDC}~}Ï3< ~}~}~}~} ÏÿÌŸCDCDCDC}~ó3 }~}~}~ÀÌÿü}ŸCDCDCDC}ÌÌÏ<~}~}~}~}~ }f°ËËËðððÏ3< ð°ËËËððïó3 ðð°ËËËðïÌÌÏ< U@Œ ´” ‘�¸ À´ÀÀÀÀ”‘�¸@À@Œ´ ”‘�¸UÀÌÿÿ€  ýýþ À‚ÿÿ€@À@ÀýýÀÀÀÌþ‚ÿÿ€  ýý þU!„ ·� ”¶ @À·À@ÀÀ�”¶@¡„ ·  �”¶U3Ì ÿÿÿÿ~  ÿþ<ÀÀ}ÿÿÿÿ~€À@€ÿÀóÌ þ}ÿÿÿÿ~ ÿ þU!„ ¸� “@À¹¸À€ÀÀ�“á„ ¹¸  �“U3Ì ÿÿÿÿ€  ÿÿ<ÀÀÿÿÿÿ€@À€ÀÿÿóÌ ÿÿÿÿ€  ÿÿU€L ¶” ‘�� À·¶ÀÀÀÀ”‘��À€L·¶ ”‘�‘UÀÌÿÿ  ýý À€ÿÿ@À@ÀýýÀÀÌ€ÿÿ  ýýUÌÃ3ÿ€€ÿÿÿ<ÌÃ<ÿÿÿÿÿÿÿÿÀ Ì3ÿÿ€€ÿÿÌÌ33ÿÿÿÿÿÿÿÿÌÌÃÿÿÿ€€ÿ33<ÌÿÿÿÿÿÿÿÿÃ0ÿÿÿ3À€|{|<}|{|óÀ€}|{|U ÿüÌ@?@?@?@ÿ€Ï30Ï€€€€<ÏÿÌ€À@?@?@?@ÿó3 Ì€€€€€€À@?@?@?@ÿÌÌÏ3€€€€0À€Ufd„†††fHa!Hafd„„†€öšGþaÀ@@@à>€¿¹Ð               GU_liftGU_lift;†ÂÞsÃ¥àqÄo¡�Â+ÈAà ÷JÄ   ´f´;†Â ÷JDÞsÃo¡�Â¥àqD+ÈAÃOfG UÀÌÌ('¿ÖÒÀÌÏÿÕÑÖÒXÒÖÑÒÕü ÌÑÖì('¿ØÌ ÌÿÒ×ÑØÒÑ×ÒØÿÀÀÌ×ÑØÒ "!ÅÌÀÌÏÖÒÕÑÖÒXÒÿðÖÑÒÕÑÖUÀÌÀÙ[ÀŒ ÃZ[\YZ¼ Ì[õÙ[LÄ·\[\[íÀÀÌ\[õÙÄÀ LY\Y\ç0[\YU3Ì ÌHGHG�“ÀÌÏÿ”“˜“”“ÿ<ÀÌ”FEFE�Ì Ìÿ“”“”“ÿóÌ ”“vHGHG�ÌÀÌÏ“”“˜“ÿ𔓔™ `PePÎ@ÀÿP`P`P3À ùP`Pe<ÀU ÿÿ3CDCDCDC}~}~33< }~}~}~} ÏÿóŸCDCDCDC}~}333À~}~}~}~ÀÌÿÿ}ŸCDCDCDC}~333<}~}~}~}~ }f°ËËËÿ33< ð°ËËËÿï333Àðð°ËËËÿï333< U@Œ ´” ‘�¸ À´ÀÀÀÀ”‘�¸@À@Œ´ ”‘�¸UÀÌÿÿ€  ýýþ À‚ÿÿ€@À@ÀýýÀÀÀÌþ‚ÿÿ€  ýý þU!„ ·� ”¶ @À·À@ÀÀ�”¶@¡„ ·  �”¶U3Ì ÿÿÿÿ~  ÿþ<ÀÀ}ÿÿÿÿ~€À@€ÿÀóÌ þ}ÿÿÿÿ~ ÿ þU!„ ¸� “@À·¸À€ÀÀ�“á„ ¹¸  �“U3Ì ÿÿÿÿ€  ÿÿ<ÀÀÿÿÿÿ€@À€ÀÿÿóÌ ÿÿÿÿ€  ÿÿU€L ¶” ‘�‘ Àµ¶ÀÀÀÀ”‘��À€L·¶ ”‘�‘UÀÌÿÿ  ýý À€ÿÿ@À@ÀýýÀÀÌ€ÿÿ  ýýUÌÌÌÿ€€ÿÿÿÌÌÌÃÿÿÿÿÿÿÿÿ0 ÌÌÿÿ€€ÿÿÌÌÌ3ÿÿÿÿÿÿÿÿÌÌÌÿÿÿ€€ÿÌÌÌÌÿÿÿÿÿÿÿÿÃ0ÿÿÿ3À€|{|<}|{|óÀ€}|{|u ÿÿ3@?@?@?@ÿ€3330€€€€¿@?@?@?@ÿ€333 €€€€€À@?@?@?@ÿ3333€€€€0À€Uff„†fa!!!aff€ôšGþaÀ@@@à>€¿¹Ð               L1D_liftL1D_lift33çÁØ@ÆÖÄÍÌØÁ‹lï?÷æ…   €ˆ€33çÁ÷æ…BØ@ÃÍÌØÁ†ÖD‹lï?Ó"ˆË" UUUUÀÎ!"   ! á’"@!!!’@!!ÀÀÎ!"   á’!"@!!!’@!!ÀÀ!Î "UUUUÀÎô   ó á’ô@!!!’@!!ÀÀÎóô  ó á’ô@!!!’@!!ÀÀóÎ ôUUUU3Ì \¥?<À¦¥¦¥¦¥¦¥Ì ?¦<ÀÏ<´ÀÀÀó\§¨§¨óÌ À§¨§¨§¨ÀóóÌ óÌ ´\ ?<¥¦¥¦¥¦¥¦ÀÌ ¥¦?<ÀÏ´<ÀÀÀ\§óóÌ ¨§¨§¨§¨§¨ÀÀóóÌ óÌ´ ?\§¨§¨§¨@@P À &@€ á„ &UUUU ÿüÌ%&%&%&%´|{ÌÌÀ |{|{|{ ÌÌÌ|787878À Ï78{%&%ÿÌÌÌ&%&%´|{|{|ÌÀÌ{|{|7ÌÌÌ878787ÀÌÿü8{%&%&%&%´ÌÌÌÀ|{|{|{| ÌÌ{|7878ÌÀ 7878{ÏÿÌÌ%&%&%&%´|{|ÌÌÀ{|{|{ÌÌÌÌ|7878787ÀÌÿ8{%&%&%üÌÌÌ&%´|{|{|{R•”ePeee„„„€ Ï"ÿHHHðPeee"„„„€ "Peee  HH@€ðPee ðUUUU@„   @€À€@€€À€@À@„   @€À€@€€À€@À@„ UUUUÀÌÿÿ€  ÿýþ ýÿ ýþ‚ÿ ÀÀÿ€ÿ@ÀÀÀýþýÀ@ÀÿýÀÀÀÌþ‚ÿÿ€  ÿý þýÿ ýþ‚ Àÿÿ€À@ÀÀÿýþÀÀ@ýÿÀÀÀÀýþ‚ÿÌ ÿ€ÿUUUU!„   @@À@@À@@¡„   @@À@@À@@¡„ UUUU3Ì ÿÿÿÿ~ ÿþ ÿ <þ}ÿÿÿÀÀ€Àÿ~ÿÀþ€ÀÿÀóÌ þ}ÿÿÿÿ~ ÿ  þÿ þ}ÿ<ÀÀ€ÿÿÿ~ÀÀÿþ€ÀÿÀóÌþ}ÿÿÿÿ  ~ÿUUUU!„  @€À€€À€€a„  @€À€€À€€a„ UUUU3Ì ÿÿÿÿ€ ýÿ ý <ÿÿÿÿÀÀ@Àÿ€ýÀÿ@ÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý ÿÿ<ÀÀ@ÿÿÿ€ÀÀýÿ@ÀýÀóÌÿÿÿÿÿ  €ýUUUU€@  €À€€À€€@  €À€€À€€@ UUUUÀÌÿÿ  ÿý ÿ ý€ÿ ÀÀÿÿ@ÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ ÀÿÿÀ@ÀÿýÀ@ÿÀÀÀý€ÿÌ ÿÿUUUUÌÃ3ÿ€€ÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ330 ÿÿÿÿÿÿÌ333€€ÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3ÌÃÿÿÿ€€ÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3330ÿÿÿÿÿÿÿ Ì33ÿ€€ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33Ìÿÿÿÿÿ€Ã333€ÿÿÿÿÿÿÿAAPP3À€|{|<}|{|óÀ€}|{|}|<{|óÀ}|{|€UUUU ÿüÌ@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÏ€€€À@?@ÿÌÌÌ?@?@€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÿü€À@?@?@?@€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÀÏÿÌÌ@?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÿ€€À@?@?@üÌÌÌ?@€€€€AAPPf`†fHf`†fHf`UUUU  á!"’@!!!’@!!ÀÀÎ !"  !"á’@!!!’@!!ÀÀÎ!"  UUUU  áóô’@!!!’@!!ÀóÀÎ ô  óá’@ô!!!’@!!ÀÀÎóô  UUUU<ÀÌ §¨§¨?<ÀÏ<ÀÀ²\ÀóóÌ¥¦¥¦¥¦¥¦¥ ÀÀó¦óÌ ó´Ì \§¨§?<Ą̀§¨§¨§¨ ?<ÀÏ<À´ÀÀóó\§¨§¨§¨§Ì ÀÀ¨§¨óóÌ óÌ ²\¥?<À¦¥¦¥¦¥¦¥Ì ?¦T@€ À &@€ ÀUUUUÀ Ì|{|78ÌÌÀ 787878 ÏÿÌ{%&%&%&%´|ÌÌÌ{|{|{|ÀÌÌÌ{|78787ÌÀÌ878{%ÿüÌÌ&%&%&%´|{|{ÌÀ |{|{|ÌÌÌÀ7878787 Ïÿ8y'('('('ÌÌÌÌ´|{|{|{|ÀÌÌ{|787ÌÌÀ87878ÌÿüÌy'('('('´|{ÌÌÀ |{|{|{ ÌÌÌ|787878%%YI„„„€ðPeee"HHH@Ì"eee„„„€ðPeee"HHHH@ˆHHH@ðPeee „„„UUUU  @€À€@€€À€@À@„   @€À€@€€À€@À@„  UUUU ýþý  ÿýþ À‚ÿÿ€À@ÀÿýÀÀÀþýÿ@ÀÀÀýþ‚ÀÌ ÿÿ€ÿ ýþý  ÿý þ‚ÿÿÀÀ@€ÿÀÀÀýþýÀ@ÀÀÿýþÀÀÌ‚ÿÿ€  ÿýþ ýÿUUUU  @@À@@À@@¡„   @@À@@À@@¡„  UUUU þ ÿþ<ÀÀ}ÿÿÿÿ~€ÀÿÀ€ÀþÿÀóþ}ÿÿÌ  ÿÿ~ÿ þ ÿ <Àþ}ÿÿÿÿÀ€À~ÿÀ€þÀÀÿþóÌ }ÿÿÿÿ~ ÿþ ÿUUUU @€À€€À€€a„  @€À€€À€€a„  UUUU ÿ ýÿ<ÀÀÿÿÿÿ€@ÀÀýÿ@ÀýÀóÿÿÿÌ  ÿÿ€ý ÿ ýÿ<ÀÿÿÿÿÀ@À€ýÀ@ÿÀÀýÿóÌ ÿÿÿÿ€ ýÿ ýUUUU €À€€À€€@  €À€€À€€@  UUUU ý  ÿý À€ÿÿÀ@ÀÿýÀÿ@ÀÀý€ÀÌ ÿÿÿ ý  ÿý €ÿÿÀÀ@ÿÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿUUUU3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ0 Ì3ÿÿ€€ÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ333ÿÿÿÿÿÿÌÃ33ÿ€€ÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ30 Ìÿÿÿÿ€€3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿÌÃ3ÿ€€ÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ<}|{|ó}|{À€|<}|{|óÀ€}|{|UUUUÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÏÿÌ€À@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€À@ÿüÌÌ?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÏÿ€€À@?@?@?@ÌÌÌÌ€€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÿüÌÀ@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€†fHf`†fHf`UUUU ! á’"@!!!’@!!ÀÀÎ!"   á’!"@!!!’@!!ÀÀ!Î "  á!"UUUU ó á’ô@!!!’@!!ÀÀÎóô  ó á’ô@!!!’@!!ÀÀóÎ ô  áóôUUUU<ÀÏ<´ÀÀÀó\§¨§¨óÌ À§¨§¨§¨ÀóóÌ óÌ ´\ ?<¥¦¥¦¥¦¥¦ÀÌ ¥¦?<ÀÏ´<ÀÀÀ\§óóÌ ¨§¨§¨§¨§¨ÀÀóóÌ óÌ´ ?\§¨§¨§¨<ÀÌ §¨§¨?<ÀÏ<ÀÀ²\A@@ À À €UUUUÀ Ï78y'('ÿÌÌÌ('('´~}~}~ÌÀÌ}~}~9ÌÌÌ:9:9:9ÀÌÿü:{'('('('´ÌÌÌÀ~}~}~}~ ÌÌ}~7878ÌÀ 7878{ÏÿÌÌ'('('('´~}~ÌÌÀ}~}~}ÌÌÌÌ~7878787ÀÌÿ8{'('('üÌÌÌ('´~}~}~}À Ì~}~78ÌÌÀ 787878 ÏÿÌ{'('('('¶|UV’•€ Ï"ÿ@HHHðPeee"„„„€ PeeeHHHðp‡‡"ð„„„€ðPeee"UUUU @€À€@€€À€@À@„   @€À€@€€À€@À@„   @UUUU ýþ‚ÿ ÀÀÿ€ÿ@ÀÀÀýþýÀ@ÀÿýÀÀÀÌþ‚ÿÿ€  ÿý þýÿ ýþ‚ Àÿÿ€À@ÀÀÿýþÀÀ@ýÿÀÀÀÀýþ‚ÿÌ ÿ€ÿ ýþý  ÿýþ À‚ÿÿ€UUUU @@À@@À@@¡„   @@À@@À@@¡„   @@UUUU <þ}ÿÿÿÀÀ€Àÿ~ÿÀþ€ÀÿÀóÌ þ}ÿÿÿÿ~ ÿ  þÿ þ}ÿ<ÀÀ€ÿÿÿ~ÀÀÿþ€ÀÿÀóÌþ}ÿÿÿÿ  ~ÿ þ ÿþ<ÀÀ}ÿÿÿÿ~UUUU@€À€€À€€a„  @€À€€À€€a„  @€UUUU <ÿÿÿÿÀÀ@Àÿ€ýÀÿ@ÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý ÿÿ<ÀÀ@ÿÿÿ€ÀÀýÿ@ÀýÀóÌÿÿÿÿÿ  €ý ÿ ýÿ<ÀÀÿÿÿÿ€UUUU€À€€À€€@  €À€€À€€@  UUUU ý€ÿ ÀÀÿÿ@ÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ ÀÿÿÀ@ÀÿýÀ@ÿÀÀÀý€ÿÌ ÿÿ ý  ÿý À€ÿÿUUUU330 ÿÿÿÿÿÿÌ333€€ÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3ÌÃÿÿÿ€€ÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3330ÿÿÿÿÿÿÿ Ì33ÿ€€ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33Ìÿÿÿÿÿ€Ã333€ÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ0 Ì3ÿÿ€€ÿÿAAA<}|{|óÀ€}|{|}|<{|óÀ}|{|€<}|{|UUUUÌÌÌÏ€€€À@?@ÿÌÌÌ?@?@€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÿü€À@?@?@?@€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÀÏÿÌÌ@?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÿ€€À@?@?@üÌÌÌ?@€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÏÿÌ€À@?@?@?@€€AAA†fHf`†fHf`†fUUUU’@!!!’@!!ÀÀÎ !"  !"á’@!!!’@!!ÀÀÎ!"   ! á’"@!!!UUUU’@!!!’@!!ÀóÀÎ ô  óá’@ô!!!’@!!ÀÀÎóô   ó á’ô@!!!UUUUÀóóÌ¥¦¥¦¥¦¥¦¥ ÀÀó¦óÌ ó´Ì \§¨§?<Ą̀§¨§¨§¨ ?<ÀÏ<À´ÀÀóó\§¨§¨§¨§Ì ÀÀ¨§¨óóÌ óÌ ²^§?<À¨§¨§¨§¨§Ì ?¨<ÀÏ<´ÀÀÀó\§¨§¨óÌ À§¨§¨§¨PT@’a„À@€@’a„À @’a„UUUUÌÌÌ{|{|{|ÀÌÌÌ{|78787ÌÀÌ878{'ÿüÌÌ('('('¶|{|{ÌÀ |{|{|ÌÌÌÀ7878787 Ïÿ8{'('('('ÌÌÌ̶|{|{|{|ÀÌÌ{|787ÌÌÀ87878ÌÿüÌ{'('('('¶|{ÌÌÀ |{|{|{ ÌÌÌ|787878À Ï78{'('ÿÌÌÌ('('¶|{|{|ÌÀÌ{|{|7”%%UHHH@Ì"eee  „€„„„€ðPeee HHH@ðPeee"„„„€ Ï"ÿ@UUUU€À€@€€À€@À@„   @€À€@€€À€@À@„   @€À€@€UUUUÀ@ÀÿýÀÀÀþýÿ@ÀÀÀýþ‚ÀÌ ÿÿ€ÿ ýþý  ÿý þ‚ÿÿÀÀ@€ÿÀÀÀýþýÀ@ÀÀÿýþÀÀÌ‚ÿÿ€  ÿýþ ýÿ ýþ‚ÿ ÀÀÿ€ÿ@ÀÀÀýþýUUUUÀ@@À@@¡„   @@À@@À@@¡„   @@À@@UUUU€ÀÿÀ€ÀþÿÀóþ}ÿÿÌ  ÿÿ~ÿ þ ÿ <Àþ}ÿÿÿÿÀ€À~ÿÀ€þÀÀÿþóÌ }ÿÿÿÿ~ ÿþ ÿ <þ}ÿÿÿÀÀ€Àÿ~ÿÀþUUUUÀ€€À€€a„  @€À€€À€€a„  @€À€€UUUU@ÀÀýÿ@ÀýÀóÿÿÿÌ  ÿÿ€ý ÿ ýÿ<ÀÿÿÿÿÀ@À€ýÀ@ÿÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý <ÿÿÿÿÀÀ@Àÿ€ýÀÿUUUU€À€€À€€@  €À€€À€€@  €À€UUUUÀ@ÀÿýÀÿ@ÀÀý€ÀÌ ÿÿÿ ý  ÿý €ÿÿÀÀ@ÿÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ÿ ÀÀÿÿ@ÀýUUUU3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ333ÿÿÿÿÿÿÌÃ33ÿ€€ÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ30 Ìÿÿÿÿ€€3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿÌÃ3ÿ€€ÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ330 ÿÿÿÿÿÿÌ333€€ÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿPó}|{À€|<}|{|óÀ€}|{|<}|{|UUUUÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€À@ÿüÌÌ?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÏÿ€€À@?@?@?@ÌÌÌÌ€€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÿüÌÀ@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÏ€€€À@?@ÿÌÌÌ?@?@€€€€ÌÌÌÌ€€€€PHf`†fHf`†fUU’@!!ÀÀÎ!"   á’!"@!!!’@!!UU’@!!ÀÀÎóô  ó á’ô@!!!’@!!UUÀóóÌ óÌ ´\ ?<¥¦¥¦¥¦¥¦ÀÌ ¥¦?<ÀÏ´<ÀÀÀ\§óóÌ ¨§¨§¨§¨§¨ÀÀóóÌ À UUÌÌÌ878787ÀÌÿü8{'('('('¶ÌÌÌÀ|{|{|{| ÌÌ{|7878ÌÀ 7878{ÏÿÌÌ%&%&%&%´|{|ÌÌÀ{|{|{ÌÌÌÌ|7878787À8YIHHHðPeee"„„„€„„„€ PeeeHHH@UU€À€@À@„   @€À€@€€À€@UUÀ@ÀÿýÀÀÀÌþ‚ÿÿ€  ÿý þýÿ ýþ‚ Àÿÿ€À@ÀÀÿýþÀÀ@ýÿÀÀýþUUÀ@@¡„   @@À@@À@@UU€ÀÿÀóÌ þ}ÿÿÿÿ~ ÿ  þÿ þ}ÿ<ÀÀ€ÿÿÿ~ÀÀÿþ€ÀÿÀþUUÀ€€a„  @€À€€À€€UU@ÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý ÿÿ<ÀÀ@ÿÿÿ€ÀÀýÿ@ÀýÀÿUU€À€€@  €À€€À€UUÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ ÀÿÿÀ@ÀÿýÀ@ÿÀýUU3333ÿÿÿÿÿÿÿÿ3ÌÃÿÿÿ€€ÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3330ÿÿÿÿÿÿÿ Ì33ÿ€€ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33ÿÿÿÿóÀ€}|{|}|<{|UUÌÌÌÌ€€€€ÌÌÿü€À@?@?@?@€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÀÏÿÌÌ@?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌ€€Hf`†f…Íÿ¹À@@@à>€¿…Ð                                                                                                    L1U_liftL1U_liftš™Â'Ã!<ÄÍÌøÁ@¿@¡'R   €ˆ€š™¡'RB'ÃÍÌøÁ!<D@¿@Ó"ˆË" UUUUÀÎ!"   ! á’"@!!!’@!!ÀÀÎ!"   á’!"@!!!’@!!ÀÀ!Î "UUUUÀÎô   ó á’ô@!!!’@!!ÀÀÎóô  ó á’ô@!!!’@!!ÀÀóÎ ôUUUU3Ì \¥?<À¦¥¦¥¦¥¦¥Ì ?¦<ÀÏ<´ÀÀÀó\§¨§¨óÌ À§¨§¨§¨ÀóóÌ óÌ ´\ ?<¥¦¥¦¥¦¥¦ÀÌ ¥¦?<ÀÏ´<ÀÀÀ\§óóÌ ¨§¨§¨§¨§¨ÀÀóóÌ óÌ´ ?\§¨§¨§¨@@P À &@€ á„ &UUUU ÿüÌ%&%&%&%´|{ÌÌÀ |{|{|{ ÌÌÌ|787878À Ï78{%&%ÿÌÌÌ&%&%´|{|{|ÌÀÌ{|{|7ÌÌÌ878787ÀÌÿü8{%&%&%&%´ÌÌÌÀ|{|{|{| ÌÌ{|7878ÌÀ 7878{ÏÿÌÌ%&%&%&%´|{|ÌÌÀ{|{|{ÌÌÌÌ|7878787ÀÌÿ8{%&%&%üÌÌÌ&%´|{|{|{R•”ePeee„„„€ Ï"ÿHHHðPeee"„„„€ "Peee  HH@€ðPee ðUUUU@„   @€À€@€€À€@À@„   @€À€@€€À€@À@„ UUUUÀÌÿÿ€  ÿýþ ýÿ ýþ‚ÿ ÀÀÿ€ÿ@ÀÀÀýþýÀ@ÀÿýÀÀÀÌþ‚ÿÿ€  ÿý þýÿ ýþ‚ Àÿÿ€À@ÀÀÿýþÀÀ@ýÿÀÀÀÀýþ‚ÿÌ ÿ€ÿUUUU!„   @@À@@À@@¡„   @@À@@À@@¡„ UUUU3Ì ÿÿÿÿ~ ÿþ ÿ <þ}ÿÿÿÀÀ€Àÿ~ÿÀþ€ÀÿÀóÌ þ}ÿÿÿÿ~ ÿ  þÿ þ}ÿ<ÀÀ€ÿÿÿ~ÀÀÿþ€ÀÿÀóÌþ}ÿÿÿÿ  ~ÿUUUU!„  @€À€€À€€a„  @€À€€À€€a„ UUUU3Ì ÿÿÿÿ€ ýÿ ý <ÿÿÿÿÀÀ@Àÿ€ýÀÿ@ÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý ÿÿ<ÀÀ@ÿÿÿ€ÀÀýÿ@ÀýÀóÌÿÿÿÿÿ  €ýUUUU€@  €À€€À€€@  €À€€À€€@ UUUUÀÌÿÿ  ÿý ÿ ý€ÿ ÀÀÿÿ@ÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ ÀÿÿÀ@ÀÿýÀ@ÿÀÀÀý€ÿÌ ÿÿUUUUÌÃ3ÿ€€ÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ330 ÿÿÿÿÿÿÌ333€€ÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3ÌÃÿÿÿ€€ÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3330ÿÿÿÿÿÿÿ Ì33ÿ€€ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33Ìÿÿÿÿÿ€Ã333€ÿÿÿÿÿÿÿAAPP3À€|{|<}|{|óÀ€}|{|}|<{|óÀ}|{|€UUUU ÿüÌ@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÏ€€€À@?@ÿÌÌÌ?@?@€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÿü€À@?@?@?@€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÀÏÿÌÌ@?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÿ€€À@?@?@üÌÌÌ?@€€€€AAPPf`†fHf`†fHf`UUUU  á!"’@!!!’@!!ÀÀÎ !"  !"á’@!!!’@!!ÀÀÎ!"  UUUU  áóô’@!!!’@!!ÀóÀÎ ô  óá’@ô!!!’@!!ÀÀÎóô  UUUU<ÀÌ §¨§¨?<ÀÏ<ÀÀ²\ÀóóÌ¥¦¥¦¥¦¥¦¥ ÀÀó¦óÌ ó´Ì \§¨§?<Ą̀§¨§¨§¨ ?<ÀÏ<À´ÀÀóó\§¨§¨§¨§Ì ÀÀ¨§¨óóÌ óÌ ²\¥?<À¦¥¦¥¦¥¦¥Ì ?¦T@€ À &@€ ÀUUUUÀ Ì|{|78ÌÌÀ 787878 ÏÿÌ{%&%&%&%´|ÌÌÌ{|{|{|ÀÌÌÌ{|78787ÌÀÌ878{%ÿüÌÌ&%&%&%´|{|{ÌÀ |{|{|ÌÌÌÀ7878787 Ïÿ8y'('('('ÌÌÌÌ´|{|{|{|ÀÌÌ{|787ÌÌÀ87878ÌÿüÌy'('('('´|{ÌÌÀ |{|{|{ ÌÌÌ|787878%%YI„„„€ðPeee"HHH@Ì"eee„„„€ðPeee"HHHH@ˆHHH@ðPeee „„„UUUU  @€À€@€€À€@À@„   @€À€@€€À€@À@„  UUUU ýþý  ÿýþ À‚ÿÿ€À@ÀÿýÀÀÀþýÿ@ÀÀÀýþ‚ÀÌ ÿÿ€ÿ ýþý  ÿý þ‚ÿÿÀÀ@€ÿÀÀÀýþýÀ@ÀÀÿýþÀÀÌ‚ÿÿ€  ÿýþ ýÿUUUU  @@À@@À@@¡„   @@À@@À@@¡„  UUUU þ ÿþ<ÀÀ}ÿÿÿÿ~€ÀÿÀ€ÀþÿÀóþ}ÿÿÌ  ÿÿ~ÿ þ ÿ <Àþ}ÿÿÿÿÀ€À~ÿÀ€þÀÀÿþóÌ }ÿÿÿÿ~ ÿþ ÿUUUU @€À€€À€€a„  @€À€€À€€a„  UUUU ÿ ýÿ<ÀÀÿÿÿÿ€@ÀÀýÿ@ÀýÀóÿÿÿÌ  ÿÿ€ý ÿ ýÿ<ÀÿÿÿÿÀ@À€ýÀ@ÿÀÀýÿóÌ ÿÿÿÿ€ ýÿ ýUUUU €À€€À€€@  €À€€À€€@  UUUU ý  ÿý À€ÿÿÀ@ÀÿýÀÿ@ÀÀý€ÀÌ ÿÿÿ ý  ÿý €ÿÿÀÀ@ÿÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿUUUU3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ0 Ì3ÿÿ€€ÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ333ÿÿÿÿÿÿÌÃ33ÿ€€ÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ30 Ìÿÿÿÿ€€3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿÌÃ3ÿ€€ÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ<}|{|ó}|{À€|<}|{|óÀ€}|{|UUUUÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÏÿÌ€À@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€À@ÿüÌÌ?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÏÿ€€À@?@?@?@ÌÌÌÌ€€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÿüÌÀ@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€†fHf`†fHf`UUUU ! á’"@!!!’@!!ÀÀÎ!"   á’!"@!!!’@!!ÀÀ!Î "  á!"UUUU ó á’ô@!!!’@!!ÀÀÎóô  ó á’ô@!!!’@!!ÀÀóÎ ô  áóôUUUU<ÀÏ<´ÀÀÀó\§¨§¨óÌ À§¨§¨§¨ÀóóÌ óÌ ´\ ?<¥¦¥¦¥¦¥¦ÀÌ ¥¦?<ÀÏ´<ÀÀÀ\§óóÌ ¨§¨§¨§¨§¨ÀÀóóÌ óÌ´ ?\§¨§¨§¨<ÀÌ §¨§¨?<ÀÏ<ÀÀ²\A@@ À À €UUUUÀ Ï78y'('ÿÌÌÌ('('´~}~}~ÌÀÌ}~}~9ÌÌÌ:9:9:9ÀÌÿü:{'('('('´ÌÌÌÀ~}~}~}~ ÌÌ}~9:9:ÌÀ 9:9:{ÏÿÌÌ'('('('´~}~ÌÌÀ}~}~}ÌÌÌÌ~7878787ÀÌÿ8{'('('üÌÌÌ('´~}~}~}À Ì~}~78ÌÌÀ 787878 ÏÿÌ{'('('('¶|UV’•€ Ï"ÿ@HHHðPeee"„„„€ PeeeHHHðp‡‡"ð„„„€ðPeee"UUUU @€À€@€€À€@À@„   @€À€@€€À€@À@„   @UUUU ýþ‚ÿ ÀÀÿ€ÿ@ÀÀÀýþýÀ@ÀÿýÀÀÀÌþ‚ÿÿ€  ÿý þýÿ ýþ‚ Àÿÿ€À@ÀÀÿýþÀÀ@ýÿÀÀÀÀýþ‚ÿÌ ÿ€ÿ ýþý  ÿýþ À‚ÿÿ€UUUU @@À@@À@@¡„   @@À@@À@@¡„   @@UUUU <þ}ÿÿÿÀÀ€Àÿ~ÿÀþ€ÀÿÀóÌ þ}ÿÿÿÿ~ ÿ  þÿ þ}ÿ<ÀÀ€ÿÿÿ~ÀÀÿþ€ÀÿÀóÌþ}ÿÿÿÿ  ~ÿ þ ÿþ<ÀÀ}ÿÿÿÿ~UUUU@€À€€À€€a„  @€À€€À€€a„  @€UUUU <ÿÿÿÿÀÀ@Àÿ€ýÀÿ@ÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý ÿÿ<ÀÀ@ÿÿÿ€ÀÀýÿ@ÀýÀóÌÿÿÿÿÿ  €ý ÿ ýÿ<ÀÀÿÿÿÿ€UUUU€À€€À€€@  €À€€À€€@  UUUU ý€ÿ ÀÀÿÿ@ÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ ÀÿÿÀ@ÀÿýÀ@ÿÀÀÀý€ÿÌ ÿÿ ý  ÿý À€ÿÿUUUU330 ÿÿÿÿÿÿÌ333€€ÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3ÌÃÿÿÿ€€ÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3330ÿÿÿÿÿÿÿ Ì33ÿ€€ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33Ìÿÿÿÿÿ€Ã333€ÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ0 Ì3ÿÿ€€ÿÿAAA<}|{|óÀ€}|{|}|<{|óÀ}|{|€<}|{|UUUUÌÌÌÏ€€€À@?@ÿÌÌÌ?@?@€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÿü€À@?@?@?@€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÀÏÿÌÌ@?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÿ€€À@?@?@üÌÌÌ?@€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÏÿÌ€À@?@?@?@€€AAA†fHf`†fHf`†fUUUU’@!!!’@!!ÀÀÎ !"  !"á’@!!!’@!!ÀÀÎ!"   ! á’"@!!!UUUU’@!!!’@!!ÀóÀÎ ô  óá’@ô!!!’@!!ÀÀÎóô   ó á’ô@!!!UUUUÀóóÌ¥¦¥¦¥¦¥¦¥ ÀÀó¦óÌ ó´Ì \§¨§?<Ą̀§¨§¨§¨ ?<ÀÏ<À´ÀÀóó\§¨§¨§¨§Ì ÀÀ¨§¨óóÌ óÌ ²^§?<À¨§¨§¨§¨§Ì ?¨<ÀÏ<´ÀÀÀó\§¨§¨óÌ À§¨§¨§¨PT@’a„À@€@’a„À @’a„UUUUÌÌÌ{|{|{|ÀÌÌÌ{|78787ÌÀÌ878{'ÿüÌÌ('('('¶|{|{ÌÀ |{|{|ÌÌÌÀ7878787 Ïÿ8{'('('('ÌÌÌ̶|{|{|{|ÀÌÌ{|787ÌÌÀ87878ÌÿüÌ{'('('('¶|{ÌÌÀ |{|{|{ ÌÌÌ|787878À Ï78{'('ÿÌÌÌ('('¶|{|{|ÌÀÌ{|{|7”%%UHHH@Ì"eee  „€„„„€ðPeee HHH@ðPeee"„„„€ Ï"ÿ@UUUU€À€@€€À€@À@„   @€À€@€€À€@À@„   @€À€@€UUUUÀ@ÀÿýÀÀÀþýÿ@ÀÀÀýþ‚ÀÌ ÿÿ€ÿ ýþý  ÿý þ‚ÿÿÀÀ@€ÿÀÀÀýþýÀ@ÀÀÿýþÀÀÌ‚ÿÿ€  ÿýþ ýÿ ýþ‚ÿ ÀÀÿ€ÿ@ÀÀÀýþýUUUUÀ@@À@@¡„   @@À@@À@@¡„   @@À@@UUUU€ÀÿÀ€ÀþÿÀóþ}ÿÿÌ  ÿÿ~ÿ þ ÿ <Àþ}ÿÿÿÿÀ€À~ÿÀ€þÀÀÿþóÌ }ÿÿÿÿ~ ÿþ ÿ <þ}ÿÿÿÀÀ€Àÿ~ÿÀþUUUUÀ€€À€€a„  @€À€€À€€a„  @€À€€UUUU@ÀÀýÿ@ÀýÀóÿÿÿÌ  ÿÿ€ý ÿ ýÿ<ÀÿÿÿÿÀ@À€ýÀ@ÿÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý <ÿÿÿÿÀÀ@Àÿ€ýÀÿUUUU€À€€À€€@  €À€€À€€@  €À€UUUUÀ@ÀÿýÀÿ@ÀÀý€ÀÌ ÿÿÿ ý  ÿý €ÿÿÀÀ@ÿÀýÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ÿ ÀÀÿÿ@ÀýUUUU3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ333ÿÿÿÿÿÿÌÃ33ÿ€€ÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ30 Ìÿÿÿÿ€€3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿÌÃ3ÿ€€ÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ330 ÿÿÿÿÿÿÌ333€€ÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿPó}|{À€|<}|{|óÀ€}|{|<}|{|UUUUÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€À@ÿüÌÌ?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÏÿ€€À@?@?@?@ÌÌÌÌ€€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÿüÌÀ@?@?@?@€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÏ€€€À@?@ÿÌÌÌ?@?@€€€€ÌÌÌÌ€€€€PHf`†fHf`†fUU’@!!ÀÀÎ!"   á’!"@!!!’@!!UU’@!!ÀÀÎóô  ó á’ô@!!!’@!!UUÀóóÌ óÌ ´\ ?<¥¦¥¦¥¦¥¦ÀÌ ¥¦?<ÀÏ´<ÀÀÀ\§óóÌ ¨§¨§¨§¨§¨ÀÀóóÌ À UUÌÌÌ878787ÀÌÿü8{'('('('¶ÌÌÌÀ|{|{|{| ÌÌ{|7878ÌÀ 7878{ÏÿÌÌ%&%&%&%´|{|ÌÌÀ{|{|{ÌÌÌÌ|7878787À8YIHHHðPeee"„„„€„„„€ PeeeHHH@UU€À€@À@„   @€À€@€€À€@UUÀ@ÀÿýÀÀÀÌþ‚ÿÿ€  ÿý þýÿ ýþ‚ Àÿÿ€À@ÀÀÿýþÀÀ@ýÿÀÀýþUUÀ@@¡„   @@À@@À@@UU€ÀÿÀóÌ þ}ÿÿÿÿ~ ÿ  þÿ þ}ÿ<ÀÀ€ÿÿÿ~ÀÀÿþ€ÀÿÀþUUÀ€€a„  @€À€€À€€UU@ÀÀýÿóÌ ÿÿÿÿ€ ýÿ ý ÿÿ<ÀÀ@ÿÿÿ€ÀÀýÿ@ÀýÀÿUU€À€€@  €À€€À€UUÀ@ÀÿýÀÀÌ€ÿÿ  ÿý ÿ ý€ ÀÿÿÀ@ÀÿýÀ@ÿÀýUU3333ÿÿÿÿÿÿÿÿ3ÌÃÿÿÿ€€ÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3330ÿÿÿÿÿÿÿ Ì33ÿ€€ÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ33ÿÿÿÿóÀ€}|{|}|<{|UUÌÌÌÌ€€€€ÌÌÿü€À@?@?@?@€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÀÏÿÌÌ@?@?@?@€€€ÌÌÌÌ€€€€ÌÌÌÌ€€€€ÌÌ€€Hf`†f…Íÿ¹À@@@à>€¿…Ð                                                                                                    L2D_liftL2D_lift ’UÂ",<ÃËJÄo2ŽB’›"Ãî{+Ä   Ð ’UÂî{+D",<Ão2ŽBËJD’›"ÃíÐå Y]}VÀÌÌIJHÍ ðË ðÐï¿üÐÍÎÏÐüÌÏ<Í ôÏ;Ð<;<ÏÏÿü ;<Ð;ÏÐ<Ï;”K Ìó LHÍÂÏÐ Û Î ÏÐ Í $ÐÏó óÿ”ÏÐ<ô<;<Ð;ÏÿÀÀÏÐ<Ï;”KL…Î?0ÌÏÍÂÏÐ Í Ü Ï Ð ÍæÏ;Ð<;<Ï;<Ð;ÏÐ<Ï;” óóKL‡ÐÏÂÍÎíð°ÏßþûÏÐÍÎÏóÌóó$ÐÏ;Î>=>ô<;ÿÿÀÀ<Ð=ÍÎ>Ï;’IÏ<ÀÏJ…ÐÏ ÎÛ YiªVÄ0!@#2ÔÀÀ <ÌILó"#2A#4@ÌÀ@‹IT @B$0@0@0@ðI #T!@#2A³ À3ÌÀ@I‹4ÀŠÙ]}v3Ì ÌLKLK#  ðíð°Ïßþ¡ Ÿ¢¡üÌÏ<  }¢;¡<;<¢;<¡;¢¡<¢;iLKLÀÌó K#¢¯¢¡” ¡ ¢¡¢ $¡¢ó óÿÝ¢¡=ó;Ï>=Ð<ÍVÀÏ<ÏIJ…ÐÏ Ð þ ïßþýÿÝÐÏÐÏ$Ð?0Ï?Ï”ÏÐ<ô<;ó;ÿü Ï<;Ð<ÏXIJÿÐðíðÐ…ÐÏÐÏÐ ÏÐÏ $ÐÏ;Ð<;<ô<;<Ð;ÏÐ<Ï;šš¦B$0@4@0ÌóKT @#2A#0@0@ðK4É"#2A#4@0Ã<KC0!@#2A#P!@R@W�å “   Ÿ ¢‰ Û 0ÌÏÿŸ< ;<Ÿ; Ÿ<ÿ<Àó ;gLKLK|Ÿ ó Ìÿ­¢¡  Ÿ ¢ÿóÌ ¡  $¡¢;¡€¿Ð                                        L2U_liftL2U_liftJì�½‚:Ã¥HÄjnB'ò Ã& *Ä   ÐJì�Â& *D½‚:ÃjnB¥HD'ò ÃôÐì y}vVÀÏ?IJ…ÎÍÂÏË ðÐûþßÐÍÜÏÐ ÍÐÏ”ÏÐ<;<ÏÏÿü ;<Ð;ÏÐ<Ï;”K ÌóóLHÍÂÏÐ Û Î ÏÐ Í $ÐÏ;Ð<;<ô<;ó;Ï<ÿÀÀÏ;Ð<ÏXKL…ÎÐðàþ ïÍÎÛÎÿÿ<À ÍÎÍ $ÐÏ;Ð<ô<;<Ð;ÏÐ<Ï;” óÌKL‡ÐÏ Îàð°ÏßþûÏÐÍÎÏóó ó$ÎÍ’ÍÎ<ö<;ÿÿÀÀ<Î;ÍÎ<Í;’IÏ??€¿Ð                                         D01_fence D01_fencež^}Á±ÁƒÂ.¸‚øAê•ßÁoåÂÂ,ž^}ÁoåB±ÁƒÂ¸A.¸‚Cê•ßÁž ,–  ùÿÿ÷3óóó"!"$#$ü É Ÿÿ)*)QRQ€µ¶µïðïÌË̆…†878klk¿À¿äã䊉Š.-.WXWöõöFEFcdcôóôRQREFEרע¡¢&%&IJI«¬«ýþý¾½¾Š‰ŠjijXWX\[· $#$$#$787cdc—˜—ÑÒÑìë줣¤XWá³óóXSTS­®­òñò”“”0/0cdcÔÓÔ­®­š™šj¥ª…DDDDDDDB$DB¡¡¡¡¡€!’@R3335UUUWuWwwuôD?DDDDDDDDá³á¡¡¡¡€1ýÿÿï3óóómnmuvu€‰Š‰‘’‘›œ›¡¢¡«¬«±²±¹º¹¿À¿ÃÄÃÉÊÉÏÐÏÑÒÑÕÖÕÙÚÙÙÚÙÛÜÛßàßÀ¿À¾½¾À¿ÀÄÃÄÊÉÊÐÏÐÖÕÖàßàêéêôóôûüûïðïßàßÏÐϽ¾½©ª©•–•�‚¦‘’‘‰Š‰€uvumnmcdcYZYQRQGHG=>=787-.-)*) ýÙ ŸÿVUVXWXPOPJIJ@?@21ªªªª ì Î î î ì Î î ì Î î ì Î ì Î î ì Î ì Î ì Î ì Ì Î ì Î ì Î ì Ì Î î ì Î ì Î î ü Î î ì Î î î î î ì Î î î î î î î î î î î î î ïþ î ÿÿÿÿâ4ã°ø4÷Äê4é¶à2ݬû2üÒé4èäç2êäç4ææ÷2úÔ¹2ºëÑ2Òü·2¸é»2¼í½4¼ï½4¾ñ½4¾ñ¹2¼í¹4¸ë¡2¤Õ½4¼ï%2(Y[2\�=2>o;22= r2q@ˆ2‡Vr2q@Š4‹X¾2»Š¤2£rÒ4Ó ê2ç¶Ü2Û/          ûüýþûüÀÀÀÀ«s1 ÀÀÀÀL’ÒãÀÀÀŸ[ @@@@@@@ÀÀÀÀ¬t2 ÀÀÀÀK‘ÑäÀÀÀ \€€€€€€€ÀÀÀÀ'æºÀÀÀÀvéöÀÀÀ)9Y@@@@@ÀÀÀ+$\ÀÀÀÀ¢Êú¯ÀÀ�M@@@@@@3333€€€€3333€€€€333€€€ÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÌÌÿÿÿÿÿÿÌÌÌÌ}~}~}~}~ÌÌÌÌ}~}~}~}~ÌÌÌ}~}~}~/h�óˆv‰öºOx€¿ÇÐD01_liftD01_liftÍÌÂ4ÀoÂSö~ÊŸ¢A§ÁÎÍ   ,¨,ÍÌÂÎÍB4ÀoŠŸ¢ASö~C§Áç¨ß õ]ÀÌ î ÌÌóŽ˜Ò–•ÑÒŽ•–Ò˜—ÑÒÅÇÔdc¹dÆÈdºcHãäãä0 3ãäãäãäoÇÔdc¹dÆÈdºcóóÀHãäãäãä33óóãäãä=àßàßàÀ3óÀßàßàßàßóóÀ3ýàßàßàßàßóÀàßàßUU@ŒÉÀHaÆÒ@!ÐÁB�?)*)*0 3)*)*)>@ä(*óóÀ)*)*)*33@)*)*á’@!'’@U®3Ì<©ª©ªy©ª©ÀÌ ÀªZYZó ÀÏGYZYZ¬²<ÿÏü $<;<²î;<;PC4@0í²`<;<²î;<;ð0C4P@0@ûüûüdÞéÞÑÞÝö Þ é Þ ÑÞÝÅ Þ é Þ ÑÞÝö Þ ÿÿé Þ ÑÞÝUU $€Àˆ€Àó &@Œñ@’a„ÌÌ¢×Ø×óÌÌóØ×Ø×ÕÖÕÖÕÖÌÌóÌØ×Ø×Ø×Ø×ÕÌóÖÕÖÕÖÕ] ÿüÏ­®­®­®­®­®­ÿó3 ®­®­®²±²±²Ìó ó±²±²±²>wðïÌÌÀ ðïðïðïŠtstststststÌÌÌÌwðïðïðïðÀ?ÿï}~�€zýý}~�~zûú}~�€zýý}~ÿÿ�~zûUn ÿüÏ87878787878ÿó3 7878—Ìó ó±VU?ÿôÌVUVUVUVUV`P`P`PVxwxwxwxwxwx0`P`P`P`ÀÌ̇´³´óÌÌó³´³´´³´³´³ÌÌó̳´³´³´³´´Ìó³´³´³UU@€ÀÀÀK”IÀÀÀŒI”Ià ÌÌ{ÃÄ| 0ÌÌ{€ü€ûÀ€À~€@ÀÀ¨+ÀÀÀÀ{¨+{ÀÀÀÀ¨+{¨ÀÀ+{UUÀÀ ÿÿÿ ÀÀÀÿ#¹¡ÀÀÀÌ£¹¡ÿ  Ì̾ Ÿ½`  ÿýþ0ÌÌ¢Ÿ ¾ Ÿ½ÀÀ@`ÿÀÀÀÀýþ(ˆÀÀÀÀ¯(ˆ¯ÀÀÀÀ(ˆ¯(ÀÀˆ¯UUH$€ÀÀMNÀÀÌMNFÐÀÌ /ŸÐæ< À½tsôsÀÀ@¾@ÀÀuãÀÀÀÀ£wã£ÀÀÀÀwã£wÀÀã£UU3Ì<ÿÿÿÿÿÿÿÀÀÀÿܤÀÀÌ£¤ý¥ÀÌ ¹Ÿ¥] ÿþ< À^¤£¹¡£À€À]ÿÀÀÀþRÖÀÀÀÀ%¯Ö%ÀÀÀÀ¯Ö%¯ÀÀÖ%UU!„@ÀÀLMÀÀŒNMLÀÌ —LLI< ÀJKL—LLÀÀ€I€ÀÀjÙÀÀÀÀnn×jÀÀÀÀlÙnnÀÀ×jUU3Ì<ÿÿÿÿÿÿÿÀÀÀÿÝ£ÀÀ̤£ý¢ÀÌ º¤¢^ ýÿ< À]¡¢º¤¢À@À^ýÀÀÀÿ.ÀÀÀÀêè.êÀÀÀÀè.êèÀÀ.êUU@€ÀÀÀK”IÀÀÀŒI”IL ÌÌ›LKœM 0ÌÌNKL›LKœÀ€ÀM€À�ÀÀ@ÀÓÔÏÀÀÀÒÓÔ@ÀÏUUÀÀ ÿÿÿ ÀÀÀÿ#¹¡ÀÀÀÌ£¹¡ÿ¢ Ì̺¢¡¹^  ÿý0ÌÌ]¡¢º¢¡¹ÀÀ@^ÿÀÀýkÀÀÀ¤£¤ÀÀÀ£¤£À¤TDÌÌóëìvž�uvóÌóÌuëìvž�uvŸ*ÌÌÀëìvëv<ÌÌ)*ëìvëv3óëìë�žÌóóÌìvuëìë�žìvóóÌóuëìë�žìvuëìóÌë�žìvTDÌÈs©ª«¬«óÈs̬©ª«¬«°ÌÌÀ©ª«©©<Ì̯°©ª«©©3Ò©ª©ÌóÒ̪«¬©ª©ª«óÒÌ󬩪©ª«¬©ªÒÌ©ª«UDÌÀ ÿ€€ÿÌÌÌó€€TS«ÿÿ¬«óÌó ¬TS«ÿÿ¬«¬ÌÌÀT¬TVV<ÌÌ«¬T¬TVV3óTSTÿÿÌóóÌS«¬TSTÿÿS«óóÌó¬TSTÿÿS«¬TSóÌTÿÿS«UU3À�<|{|}|{|LÀ!{|óÀ!L{|{|yÀ�3|}~}~3333}~}~}~}~3<}zy|ó333}~}~}~}~}333À~}~}|{|„óÀ„{|{|óÀ„ó{|{|{|{À„|U] ÿüÏÿÿÿÿÿÿÿÿÿÿÿÿó3 ÿÿÿÿÿÿÿÿÿÿÌó óÿÿÿÿÿÿÿÿÿ?ÿðÌÿÿÿÿÿÿÿÿÿÀ¿ÌÌÌÌÀ¿À¿À¿À¿À@ÿÿÿÿÿÿÿÿÿÿÿ ÌÌÌÀ¿À¿À¿ÀÌÌ Ì¿À¿À@?@ó Ìó?@?@?@?@? Ìó @?@?@?@Ìó?@?@?@T@HaHaHaHaˆd`9ˆ}ÀÀ@À?€¿1Ð                         D02_accent D02_accentEØÁX¹¯Âqý­ÃÞÂ?�1�Â3SŽÃN4NEØÁ3SŽCX¹¯ÂÞÂ?qý­C�1�ÂC4; u óóó1221221221óóÌó221221öÁÂÂÁÂÂÁÂÂÁÂÂÁÂÂÁóÂÀ¿u óóóGHHGHHGHHGóóÌóHHGHHGŽCDDCDFEFDCDDCDFEóFDCU3 Ì̬«¬«¬«¬ÌÌó «¬«¬¦¬«¬ÌÌÌÌ«¬«¬«¬«¬Ì«¬U!HHHHáHHHHH]?ÌÌÌ›•œ–›œ›œ›œ›œ…™„Ú`áüy`ÌÌÌÌ_`_`_`_`ÿ_×`Øe!HHHH÷Œ 0@0@0@0@ÿ  EÀxÀÀÀ2~¯À~EÀ€ÀÀ À&EÀ¡ÀÀÀ�C�ÀD@À À À­ÀÀ§¨€ÀÀ DÀÀñòÀ-DÀÀÀ5U 333ÿÿÿÿÿÿÿ33Ì3ÿÿÿÿÿÿÿÿ3333ÿÿÿÿÿÿÿÿ3ÿÿU 333}~}~}~}33Ì3~}~}~}~}3333~}~}~}~}3~}U3 ÌÌÿÿÿÿÿÿÿÌÌó ÿÿÿÿÿÿÿÿÌÌÌÌÿÿÿÿÿÿÿÿÌÿÿU3 ÌÌ}~}~}~}ÌÌó ~}~}~}~}ÌÌÌÌ~}~}~}~}Ì~}‚KMþÄþ_ßV~€?€?€¿SÐ D02_banner D02_banner»Ám¥¼Â8¸Ã¼ô›AKY{‚J�ûÁ‚J�Cm¥¼Â¼ô›A8¸CKY{ÂÛÓ  óÌóU:UV¬�ž�Ž óÌó óÌóT TSÐô«ôó@3 ³ {|{{|{3 ³ ÀÀÀÌ•`ÀÀÀA *ÀÀÀÈ1cÀÀÀA6)ÀÀÀÇ2dÀÀÀB5*ÀÀÀÌ•`ÀÀÀA *Ì3ÿÿÿÿ 3À}~}~3 ó €€ÿ€€ÿÿÖ=öÍÎ�2oÍ?@?€¿Ð T00_groomed T00_groomedÀÀ®G!¿ÀÀÀ@ðA   €á€ÀÀðÁ®G!¿À@À@ÜáÔ UU     ýÿÿ3ÌÏÿ@?€@@¿?€@@¿?€@@¿?€@@>@@@¿@@@¿@@@¿@@@B?€@@¿?€@@¿?€@@¿?€@@>@@@¿@@@¿@@@¿@@@B?€@@¿?€@@¿?€@@¿?€@@>@@@¿@@@¿@@@¿@@@B?€@@¿?€@@¿?€@@¿?€@@>@@@¿@@@¿@@@¿@@@B?€@@¿?€@@¿?€@@¿?€@@>@@@¿@@@¿@@@¿@@@B?€@@¿?€@@¿?€@@¿?€@@>@@@¿@@@¿@@@¿@@À@UUU ÿü©ª©ª©ª©«©À?ÿ©ª©ª©ª©ªð000©«©©« À©«©000©«©0 ©«©À00©«©00 ©«©«À0©©000 «©©«À©©0000«©©« À©«©000©«©UUU ÿüÀ?ÿSð000 À0000?0 À000?00 À00?000 À0?0000 À0000?@0 À0000 @0� À�w�0000ƒ�w�Pü0î í0ðî+ÀðÀ³;<<;´0ðð³<;;ðPü0  0ð �€� ýÿÿ3ÌÏÿ_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ À`UUUÌ‚‚Áò‚‚~0ÿ|Á‚‚‚ø‚~0|ÿ‚‚‚Áø‚~0|ÿ‚‚Áø‚‚~0|ÿ‚Áø‚‚‚~0ÿ|Á‚‚‚ø‚~UUU ÿüÀ?ÿ`ð000 À0000H0 /À000/x/00 ////À00O°/000 /O__À0¿À`0000_¿ÀÿÀÀ€000ÀÀ€U@ @ 0ÿ ÿÿÿÀÀøA€¿ŽÐ     " &(   :DFHB@   RD^`J0 RLZ\F8  NHVXB4  Vd^`fdjlZdfh^dfh   aEaš?ace[ace[aceGAOQ;-  C=KM7)  ?9GI3%  GUOQW U[]KUWYOUWY       4`‹>`bdZ`bdZ`bdF@NP:,  B<JL6(  >8FH2$  FTNPVTZ\JTVXNTVX   ‘5aŠ?ace[ace[aceGAOQ;-  C=KM7)  ?9GI3%  GUOQW U[]KUWYOUWY      �4`‹>`bdZ`bdZ`bdF@NP:,  B<JL6(  >8FH2$  FTNPVTZ\JTVXNTVX   ‘5aŠ?ace[ace[aceGAOQ;-  C=KM7)  ?9GI3%   T00_powder T00_powderX®G!¿ÀÀXBÍÌ4AðAÀbÀXÂðÁ®G!¿XBÀ@ÍÌ4A«b£ õýÿÿ3ÌÌÏrqärprröƒÌÌÿãããáªããáªããáªããáâáâ:ãã¬â:ãã¬â:ãã¬â:ãó333ãrrrrprrtqärprröƒãããáªããáªããáªããáâ:ãã¬â:ãã¬â:ãã¬â:ããrrrrprrtqärprröƒãããáªããáªããáªããáâ:ãã¬â:ãã¬â:ãã¬â:ããrrrrprrtqärprröƒãããáªããáªããáªããáâ:ãã¬â:ãã¬â:ãã¬â:ããrrrrprrtqärprröƒ©­ëê3ÌÌÏ8 €`€`ö†ö†ö†öà`:€õæ�^hõæó3338 hohoho^h@õæ�^hõæ�8 ††ö†ö†ö†õæ�^hõæ@8ÿÿúhohohoho^hõ@æ�^hõæ�ÿ8 _WUU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©«ÀÀÌÿ©©ª©ª©ª©üÀª©«©©ª©ª©ª©ª©ª©ª©ª©«üãä©«©©«©À0 ©«© ?©ãä«ð ©©«©©À«©00©«ÿÀ0ãä©«©©00 «©©À«©Àÿ©ãä«©©_WUUTSTSTSTSTST7SÀÀÌÿSüÀSTSTSTSTSTSTSTVÿ9??À0  ?V9ü ? À?00Tÿð07?000 ?ÀÀÿV9õýÿÿ3ÌÌÏðïpí�ÉÊ™ÌÌÿ°qlÛâqlÛâqlÛâqlÛÜÛpà,ŸÛpà,ŸÛpà,ŸÛpàó333,O^ 3W%ïpí�ÉÊ™°qlÛâqlÛâqlÛâqlÛÜÛpà,ŸÛpà,ŸÛpà,ŸÛpà,O^ 3W%ïpí�ÉÊ™°qlÛâqlÛâqlÛâqlÛÜÛpà,ŸÛpà,ŸÛpà,ŸÛpà,O^ 3W%ïpí�ÉÊ™°qlÛâqlÛâqlÛâqlÛÜÛpà,ŸÛpà,ŸÛpà,ŸÛpà,O^ 3W%ïpí�ÉÊ™¥­ëû3ÌÌÏ-.]55731ÌÀü  ûPûP`àððnÿïðn'''ó333T@@<><2k.]55731 µµµïðnÿïðnÿ'''T@@<><2k.]55731ûPûPûPûPnÿïðn'''T@@<><2k.]55731  µµïð'''T@@<><2k.]55731ÿÿÿÿ]gÆù£L í4[]_û4s9ö»s ÞÍÑÐÐÍÑÐÐÍÑÐÐÍ·dÎÎIYÐ÷8ÞèΣ'éèΣ'éèΣ'¦XÇî 3i€0`;$ÝžRÆb2(¹¹_Çs¼ÐÐÍÑÐÐÍÑÐÐÍÑÐÐÍzΣ'éèΣ'éèΣ'éèΣ'¦oâ�°$¹žRÆb2(¹¹_Çs¼ÐÐÍÑÐÐÍÑÐÐÍÑÐÐÍzΣ'éèΣ'éèΣ'éèΣ'¦oâ�°$¹žRÆb2(¹¹_Çs¼ÐÐÍÑÐÐÍÑÐÐÍÑÐÐÍzΣ'éèΣ'éèΣ'éèΣ'¦oâ�°$¹žLdîœ@ɼkÇ£ùù¾½ÈÞ”ôô�ÿù00 0   0 0 0 ó #R bÿŸ0 0 0  0 0 0 BBðBf R 0 0 0  0 0 ¯÷d /0Rƒàÿ 0 0 0  0 0 0 Bñbh P@ÿÿœ4dß(†A¿q€¤P)ÐÓñtÿÿ¤dÎÎIYÐ÷8ÞèΣ'éèΣ'éèΣ'¦XÇî 3i€0`;$Ýžöÿ)Σ'éèΣ'éèΣ'éèΣ'¦oÿüâ�°$¹žö)Σ'éèΣ'éèΣ'éèΣ'¦oâ�°$¹žö?ÿ)Σ'éèΣ'éèΣ'éèΣ'¦oâ�ÿÀ°$¹žöÐѱt{î 0 0 0 ó #*ÿ 0 0 0 àì* 0 0 ¯÷d /0*?ÿ 0 0 0 À*=]G]gÆù£L í4[]_û4s9ö»s ÞÍÑÐÐÍÿÿÀÑÐÐÍÑÐÐͤ£Æb2(¹¹_Çs¼ÐÐÍÑÐÐÍÑÐÐÍÑÐÐͤÿü£Æb2(¹¹_Çs¼ÐÐÍÑÐÐÍÑÐÐÍÑÐüÐͤ?£Æb2(¹¹_Çs¼ÐÐÍÑÐÐÿÿðÍÑÐÐÍÑÐÐͤÿÿÃòÝŒJ¹¥—Ç{]EÈÞ”ôô�ÿù0ÿÿ@0 0 & bÿŸ0ÿÿý 0 0 àø& 0 0 0ô 3&ƒàÿ 0ÿÿÐ 0 0 þ�&KPõýÿÿ3ÌÌÏ/0_/?___?ÌÌÿ//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 0ó3330 ``@000/0_/?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@000/0_/?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@000/0_/?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@000/0_/?___?UUUU@@„„„À€ÿ� Hÿ ÿH€ ÿHHHL� Hÿ 0ÿ!!!2ÿ� H€À@ÿ_WUU_`_`_`_`_`_@ `ÀÀÌÿ`üÀ`_`_`_`_`_`_`__ÿ@HHÀ0  ?�pü //x// Àx/00/ßÿð0 //O°/000 /O°/À/OÀÿ¿@ _¿À@U€` @@ÿãããáªããáªããáªããáâ:ãã¬â:ãã¬â:ãã¬â:ããrrrrprrtqärprröƒãããáªããáªããáªããáâ:ãã¬â:ãã¬â:ãã¬â:ããrrrrpðrrº††ö†ö†ö†õæ�^hõæ�@8ÿúhohohoho^hõæ@�^hõæ�ÿÿðUÀÀÀ«©©0 «©©«üãä©«©©«À©©0 «©UÀÀÀÀ?À0 ?Tÿ7?À?0 ÿ°qlÛâqlÛâqlÛâqlÛÜÛpà,ŸÛpà,ŸÛpà,ŸÛpà,O^ 3Wb4¼îí6UOÝoonßlÛrßlÛrqlÛrßlÛ÷ÛpàšÛp±šÛpà÷YÛp±÷3ÅððÅʺûPûPûPûPnÿïðnÿ'''T@@<><2…,Y17ÿÿuPµ Ó75!µ µÏñn--- X><:>ð<4ÿìÐÐÍÑÐÐÍÑÐÐÍŸÃ_W–Σ'éèΣ'éèΣ'é�n’Tиź$ù boÿA«cGµèV¢§ý fC A(‰3³‘qΗ4§ˆ}šƒ0Ñ;›ØEC‚íÚ=ð0û¯ 0 0 . 0 0 2�÷d /BL€ ÿÿ,,0 .�ùöÿ¶b.2°õÀÿr¥èLÀ¥Vn–Êt“QåVF,2=r}‰Ï¢˜ŸL·7… Æo»Gü[‰†Çz6ùÅÆÃ5û‚†¨êüë(Ïy†=³~OOl­Œðœ UÀË À ñ˜«££©´Å1Nu¨€}H)Σ'éèΣ'éèΣ'éæÌŸUÖúñ²߸ö#£¡#ÿÿ/ÎÙwúsÎîËÑÌ×Ô²›®ŠÝ¶˜¦¦_ðD·, 0 0 0¯÷d /*ÿÿ 0 Ÿ¯ùöÿ¶€26°×ÄÐÐÍÑÐÐÍÑÐÐÍ�¢ÎÏÀ¢ÿ”O¾&ó\‚ÃΰbnPé*p|ÿÿ|˜rºA_�Áp]€× 0 0 0 @ý$INSZ66ÿÿ:� I€ÿ//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@000/0_/?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@0ð00U„„„È�ÿ ÿ Hÿ€UÀÀÀÀ`_¿ÀÀ0 `_¿À@??ÿÀ€ÀÀ€À0 À€U€@€ý�€tàÿXÂøA€¿ÅÐ            ".0* 2,:<6(  >8FHB4       " &(   :D                ECE    "*,&  .(682$  ]                 535    "*,&  .(682$  I           535    "*,&  .(682$  I           535    "*,&  .(682$  I           535    "*,&  .(682$  I       T03_powder T03_powder„ ×çÁä„B ×ÁœÂèG脜B ×çÁ„BäB ×ÁïGç uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/0/0/-^/-Œ/0].-^/-^/-ÌÌÌ̹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-Œ/-^/-^/-^/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-Œ/-.-.-.ç|M0.º¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-..-.-.-.[-/-Œ-/-Œ-/-Œ-/-¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/--\.-.-.---/-Œ-/-Œ-/-i»®®3ÌÌÌ.ø`@44iFô V”iFpÌÌÌÌ.”iF”oF”ip .ÿÿÿ€diF”iFô`VV_p *.ÿÿ€diF”iFõeeeÆfzöföföfÿÿ.diF”iFoVtVVfföföfßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©© Ïà ª©ª©«©©ª©ª©ª©ª©ª©ª©ª©ª©ÀÿÀ«ãä©«©Ã <0©«©¬«©Ã0«©©?ð0ãä«©©«Ã30©©ª©«©©ðqr«ÿ ãä©«©©«0 Ì©©«©ÀÀÀ©«©ÿ©ãä«©© 0«©©«3ÀÀ©©«©ßUUUTSTSTSTSTSTST7S Ïà SSTSTSTSTSTSTSTSTÀÿðV9?à <0UÃ0V?ü09?Ã30UðTÿà 7?0ÌÌÀ??ÀÀÀÿV9à 03??3ÀÀÀ?ÿÿÿÿ{ûü‚F¾9�9ù@Æ?”ìÂÀ‚Â…Â@À}ÿ?ÿ=Àƒ@€?A‚Â?À?@ 98Äx{¸û¸{G„‰Ä8û„CÊ»ÄÆû;¬VýÿƒÂ@€?‚@€@?ƒÂ�‚À¿€Â¿ÀÀÿ|CƒƒÃƒ9Ãwûy†D;À}¿ýÿ~@?À?¿??½??ÅÂÿ€½¿¿½ƒ¬ë=?Ç…Á¼C…ÃyCHùƆϬ¿½ýÃ?=¿?ý@ÿ|½ýÿ?ƒ@A�ùAA»�;�Áºzü>:|†úµFÆ9ûýêV½¿½À¿ÿ€¿½@ÿ?BÀî»THZYý�™ƒŸÔ•cçàó�â“p™ð’¥~tà#Ná×!QbZk¢ ”^–³ÁJêA ¯ý~�:¡GÛ9"‚9æêa&­ÑU)᪪ªªBt Aƒ¥�0òp‡‰‘$þAƒ:[Ó 22R0ñ"OOsTÇ>“çQ1…1ƒÿ"%N`Wf°÷_³ù_µÐíÿÿ'AB˜#"¢L›J�û?Õû_Õ¶V46û‘ýõý×ÿ׊A$&eB}(2P»ÕûŸÙceCß×ÿõÿõ&(ÿÿÿÿ=&ô«$Ûy–ý·šÁ±:¹Ø*oôÚ\ˆ6‘B—G¶ ¼t£¶KÆ]YyœªÝl,´ù( òâ(=ŠQ4…kÃð©ñzÉ;\»„ÚêXxÍd7 Gôéà1‚5{}÷D ¶£Ó$×íetsSsa•G¢U”…¼B†4·ïQ–Ï~˜¹ºÍÙÜ›´a’TØW:ëÛ𥂜£Z¥ùú›ŽÆ)ƒˆ=åöòu¦ùß¹{çèÅÝy�½ì2©ØUÐK¬™¿ïµþ~ ±ò|=ãê(${r#ð €Ï“ðÿ,[`m` ÿÿà H?*SX¢wÿðÿoöYfÿøI™ ’Hþ*U\ K Z  ÿæ@BBHžûÂ4 OV &BBBuÿÿÿ3ÌÌÌ'(W///?_ð Ïÿ?'('('/X'/0('@?(?(ÌÌÌÌ``@0000('(W///?_?'/X'/X'/X'/0(?(?(?(``@0000('(W///?_?'/X'/X'/X'/0(x?(¨@0000('(W///?_?'/X'/X'/X'/p0GGG`@0000('(W///?_?'/X'/X'/X'// GGQUU@ ÿ€Àÿ0ÿ0ÿ ÿ ÿÀÿ ÿ0ÿëYfU÷fföV``ð`V``Àßð```Ã07ü0`öðfð`0ÌÌÀÀÀÀà 033ÀÀÀÿŒ-/-¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/--Œ/--Œ/--Œ/--Š-.-.-.---/-Œ-/-Œ-/-Œ-/-ÿü¹¹¹»¹¹¹«.ÿÿ€dfôfôfôföVVVnfföföföfÿüUÀ©«ÿÀãä©«©©ÀÀó3«©¬«©«©ÀÀÀ©«©UÀTÿÀÀ7?ÀÀó3SÀÀÀÀ?ß„ÿ¿�GCÃ<<F…3†¹û{‚Ué=?=Á?€ÿ½€ÿðó3ÿ@?B€ƒ€Â€ÂƒÿþÁ¹~¿¾@þÀD@~¾ÿü:¼­€²}ŸÅÿüC ÖÁ`Ÿ&áÿý#. *CCA004 ø0 ž:˜ÿÿã‰Ö¨aIšPÕÍ—›^Òë TôzäQÿÿû%«á*®A&ñ€YBBñ<}|"³ÿµ$ÿÿ& ,BBBBa€ÿG`@0000('(W///?_?'//ˆ'//ˆ'//ˆ'//ˆGGGÿü`@0000( ÿÀÿ eÀÀÀ``öÀÀÀÀÿÿÖ;ÿÐꄚ€¿íÐ             "$  " *,&        (                  )')    "$ " *,& 9                  )')    "$  " *,&  1   0     )')     "$  " *,&  )$ & .0&  .(68.   60>@6(       )')     "$  " *,&  %979 "*,"  *$24*  2,:<2$       )')    "*,&  .(682$  !535 "*,"  *$24*  2,:<2$   T27_packed T27_packed^ÂÍL|ÀtÄ´ÁH¡rÃàkÄ   6<6^ÂàkDÍL|ôÁ€tDH¡rÃÚ<Ò ýÿÿÿ3Ìÿ?¹º¹¹»¼»¹¹0»¹¹¹¹¹º‰¹ºŠ¹¹¹ºŒ.¹¹¹¹.¹¹¹.¹¹¹Š¹¹0»¹‰»¹¼¹ºº¹ºŒ.¹ºŒ¹¹¹»¹0¹»¹0¹»¹0¹»¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹‰»¹‰»¼»ê¹º¼»¼Š0¹ºŠ¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹»¹0¹»¹0¹»¹0¹»¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¼êºŠ¹ê¹ºŒ»¹0ºŒ»¹0ºŒ»¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹»¹0¹»¹0¹»¹0¹»¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹ç¹º¹ºýÿÿÿ3Ìÿ?Eç-.0EEE0E-ê.E0EEEEEE--¢0E.EEEEEEEEE¢.].E.E.EEEEEEEEE^UUUU ó3ÌDBÇBDCDB003†BBöBÀÀDCDBBÃüÃ0ÇDBABBDBÀÀð0BDôDB0000BDÇB000ÃBDÇBB30ÀÀDBDBBð000öBDBB0000ÇDBB0000ÇDBB3üÇDBBDBÀ0 BDÇB BDÇB BDÇB ÌBDÇÈBBUUUU ó3ÌA003,WÀÀÃüÃ0AÀÀð0Y0000A000ÃA30ÀÀð000W0000A0000A3üAÀ0 A A A ÌABÿÿÿÿ–Ã<¶Yy˜àÄþYáyˆZˆòŠáÂÓLñâzÔ-ãÆ-<,ÿ£+--˜Z--,Óà z*z-îˆáLKyÏXšmƒv^ˆ?ˆ9ZÅg•-LZ-˜--Z˜--Z˜-+-˜Z--˜-ZJ Z”W[ãß*á… ¥:¨‡äZ‡lî.¶…ïî£ï>åßZï³Z–Z+Z-Z-˜-Z-˜-Z+–-Zz-ÒãÖKá]$ãJ.§ÿxáÁJ¡l�ˆ)£>Ì9g)Ü”¯>•ÔZZ³LàiYwiÂYYYÑZZ+ZZZ-Z-¥;ã£ã´ô[§ÂùÅî§WX 9ú¢üÌù»û!C&  /6OFMMG²MIC¬ME= G?7. 7.;ÿÿÿÿ¢Ø<èƒuŸ™£Æ¯‹•€Qƒ!(à ¯üLµ 'ÿˆEâ-’{oÆ)âB@˜G¦Íïþ� B­ß_ ]uîÄœ¾@Ý�Ü6BÛÌH{Þs!Ëvœnl?A+®ŒÆ]ÓÙè0,‹sÀY¾  ŸQë´UZ,Rü)lMÓØ‹µ›Çê…Sñg%þ®ßFBmÏÐnmBAB7Ð׌3ÂeôÏIé“#]óªµú°b€e×R0­ëŠnÆ:½ùù‚ôusÞò†€›º7¾•þ€òÇ+B:4Û7¿?Ægÿ�P�é“éi’D¿)¥+d_ô¤�gÐ�í\^¶·¿úÏ?·%ý?2 /$ *ÿüûÀ#B….@ +?üÿJ> .³6\°ÿÿÿ 8e"8ÿ?U$2C< ! ñ/1bWOr*£ "7"8a*ü<(73öò÷ovÅ #& (>e6" O #0 - U, CcOóôƒ-ÿÿÿÿ>ðD’§k”¤�CH܈œ¢x,l–6Gª<ù�×ò3L"ª_Èd®-`oo£úYkžTên)«>âQ§¡$ç%…r"á §KP™egA,—ê?=pp/¯Ñ}ª¨~þ䯱uuåÇð3 ‘™ñ€ã0¸N3|¢„)5ò“Ø™·~X}$Ž7¿Eªq@$#?@opoŽ›à൛!c<­£?{÷d¿að\·¦+m/}±*9ׄÐ\½œ+ÒZÝð†ØÊM8#Ü ˆ±/â1o+€ß¡2ZfkæFƒË‰ê…"O½Ók"c2[]�“’ sie¦ª?û¿O#R 7øo÷ÿø*YƒÏ�öþð0¿ÿÿHs?bo[ÿ$9 ÿ?@=,% Ë­ ÿõ? " AN(o@&i0.1aq£S�Byùºúê3Ìÿ?Hÿÿ°Ï°Ï»°Ä ( 4 4 /H0Ä ¼ÿ¼û »¿»$$¿»¿»»¿ÿ¿$$44 4 00ÿÿ°Ì¼ÿ¼ûÜ$ »¿»¿»¿»$$$»»¿»¿»¿»$$$ 4 4 4 Ð  0  üû¿Ï»»»û$$$»û»û»»»û$$$»û»û»»ÿû$$44 4 ô TTPP„„!!!!!!HHHBUUUU ó3ÌÀÀ?ÀÀ¿ÀÀ003ÀÀÿÀÀÀÀ¿ÀÀÀÃüÃ0?ÀÀ¿ÀÀÀÀÀÀð0ÀÀÿÀÀ0000ÀÀ?À000ÃÀÀ?ÀÀ30ÀÀÀÀÀÀÀð000ÿÀÀÀÀ0000?ÀÀÀ0000?ÀÀÀ3ü?ÀÀÀÀÀÀ0 ÀÀ?À ÀÀ?À ÀÀ?À ÌÀÀ?@ÀÀUUUU 2€@€ @  €€à    €ÿ¹º¹ºŒ¹»¹0¹»¹0¹»¹0¹»¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹»¹0¹»‰¹ºé¹¹‹ºŒ¹‹ºŒ¹‹ºŒÿ.EEEEEEE-\/././.UÌÀÀÀDBÇBDÀÀÀÀBÇBDÀÀÃ0  9*4.024"  *$24"     )28  :4BD>0  F@NP:,  B<JL6(  A?2A8:4BD2$  :4BD2$  :4BD2$  %#2%864 >@.$  20 :<*  *,24"    128  :4BD>0  F@NP:,  B<JL6(  97298:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%824:<*,.0 "$1       97B9HJDRT:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28Y $ & .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$ 64 >@.$ .068&5,35  &(   T27_powder T27_powderÌÂ.~ÀtĨBH¡fÀkÄv qv Ì€kD.~èB€tDH¡fÃ["qS" õ÷ýÿ3ÌÌÏ„ƒ÷„„„„ûÌÌÿ" " a " a " a " " "A "A µ !"!B!B" " a " a " ÿÿÀ3a " ûá" " "!"!" A" R"!B"A "c" "!B„üâ!ÌÌÌÏè„„„„„„q„ƒ÷„„„„„ûþâ!„ " a " a "A„Æ B B AB ƒ"!B" a " ûû} " A" A" "c" "rB!"A "!B" "c" "c" "c" "„„„„„„„ƒ÷„„„„©ª©ê3ÌÌÏ" @@@@´D´D´D@@`”iCô483€*@@@@´D´D´DÇd@44GDô€@JtKDC8ð–3ÌÌÌÏ2ÿÿÿú`–3"ôD´D´GÿC„8G8OC„KDLL`DGDtD´DóƒGDN„D´D´D´B"_UWU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©«ÀÀÿü©©ª©ª©ª©«3 0é©«©©ª?ÿÀÀ©ª©ª©ª©«©Àð?ü©ãq©«©©ª©Ì0Ìÿ«©©ª©ª©ª©ÀÃð«©©ª©qrª©ª©ª©ª©ª©ª©ª©«ÿðãä©«©qrÀÃ<©«©ª©ð0 ¬«©«©ÿð0ãäãä©«©©ÀÀ «©©«À ©©«©0©_UWUTSTSTSTSTST7SÀÀÿüS3Ì0Ã?S?ÿÀÀÀð?ü7SÌ0ÌÿSÀÃðSTSTSTSTSTSTSTSTVÿð9ÀÀÃü??*ð0 Uÿü09:9?ÀÀà ?Ì ?0VÿÿÿÿȳœÝÈZÉdM… †,yǽ½…»z õêõ´ÉC½WdóÈô¥ Nza¼8Bàêo§A›7.§oÝyBÝ…pp7 yMó�"Cÿzݲ¾oÝ O\ÈÈʳ±é±f§¦Ý±z -7¯n¥7"zÝ+6y!œ7à��oƒó_-+£„C6ÑC½.�ßÔè†�é¦��ô."e››'Ÿ��{W§ ê±yd°¨d7ö¼½pZzo.ÇÒê"¼’ ¥Ô c»Y+IüJS,, ôm�!ÝNÿz +é5,c±z7Þ¥o¥Þ"Ç›7…ÇozÔÿ ™CÊ,.ÇÞy|ÞèaÒ{y„W¯ª¿ê9 757;9: '31û«©‘0øð° ±O( ÇçõôŠøŠøˆ5Wy� �‘ð�ëý*ðe²Oÿô»f3‚5V9V;X9T7R7L1Y-!#! " 3.3áO�P$�Fo�wwó0(3ð+!��üîúîøîø&31/ *  e-!!ÿÿÿÿEç]G½"tú…å>­Ýƒ„Í&±·ö¢m‘fðrzÝó$À.k–¹�³Á¥¥¥ª\sñÀ¨3.¢“âýz5yþ�ähäøØp{ƹ9uk?sºêJå:oª¨;¾ðóHÛ†ëMÊŒ€gãøš«<¿Ðþ"Ðã�‰ÇåEV‚fí/3âhŠ&Ø4®f2L& ÎVnµ±Ä붚f <�Àª1ü.ßFNŃRÎwVK–ù(¯ÁÎ,¿ï`OØ~Œ°sú¡*ê·«;Él›¢™% –oÓAu9ĺ‡,qÊ8™[Q¸»¶ÍÚ¯©ZÛýA\Ɔ$™Çv㪪º®0�`rv 11¡Yó÷ÿñpc!66_õgodÿ%$Q³‘ÿÿsýP.1£ðRBoI$&íÿ?õFöøýÿ;ÿo±0"&*!À`ACa󢣕æTÕ©yƦ”ÇáÉ—A€ºx¯Ÿjn–Ø»›9û6?o 5£n<âB8SÖAò¬#«�±ãí]<T ¾Î;îÞ¬êµÌ #,Û5–�­ùÈjzg�r¼œ”¹|%f-ÝL´fþräw¤:5cÁIÎìk0hút ÄébcQÐÙœ�NÓêÏÅ‹gZb²i[{£‡-½ƒU ú�Åk²Å¦ÎçE¢¢§ô¦j¹–$’! eÁáÕ@7¡ÿò<ßñ;LÿÏñ#KdÞ8CSRP�pÏùqee@!<4V)‚!0ÆüLA  3%˜ÿð"3L/ H5.Abÿ6XIV`5>$w‰!ˆM†þþ\ b8#é÷ûù€û`÷vgõÿõ�ý¤Œ5I"µûóÇ«“T:õ4î#<\Ä~eßbOp|é·ÿÀ`2‚ÝB‡q¥Je7/È �1yá�¥Zìe}ÉLÙÀºu}# „‘(? ‚]¥@2#’øÿÿËÌ¿4~Ñx‘´_um½lî“·NÀ¿¢RW»P—�%DX·"Ü¿îÿñ<Å£ø5 v v öÿßÿHÉ~\éïØ[-ÛR°WíùªQJTžkrûnùrqöˆ�æ²eÀ$÷go†ÿ'(sÓ±ÿÿ‘ýQ03ÿÀ ,høú%#24 $ -ðBAcƒð&3R9fK<+Vo_*ÿýÀ 2ÿÿ hýrÿ±ÿÓÿ5(.Ïø0.½½k.‹Ö�Œ"îãÏã0†öä)'J6eU±O.Ò ½¹\² Œ…vùíd¸›ä+MùÿÀïå\ÎØK l¯~\áä Ó«¹FP*wP|"F¢YT¼ãrI ÷ÿÿ/ô‹,"',ODü€nŸt9úi“ÈõLÂêy‚ÇÙÖ•¤Ðš’à„¯Æ+™&?¸*É%A1M¤%`$ñFò/®c÷-÷©ÿðÿñšVeaúƒó…"ÿiV¢ÑÄÑ-&ó€ÿƒÿ�ὕ}U]•ü÷ÿNU\gjeXON[hefa\S`  .  ÿ& dBHHÀ÷ÿ"?J ÿÿ’@ ! �’@€dŸ)RQL _h?>8ðð'd74Ð$˜]HóŸÿ:1(ÿÿa42#$$$ :úE'Jé÷ýÿ3ÌÌÏ/'//°°°°û»$û»û»°°ðû$$ Û//'//ˆ'//ˆ'//ÿÿÀ3ˆ'//P/?__Ÿ Ÿ Ÿÿ_Ÿÿ0/G0@ ÌÌÌÏX000(0/'//  / $ $ /{//0/`/H_?_Ÿÿ_Ÿÿ_Ÿÿ€ßŸÿ€70/0 ' ' ' 0000(/'/PTUH`@aÀû€ ÿa‡ÇÀ‚‚‚0ÿ_UWUÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿À¿À¿ÀÀÀÀÿüÀÀÿÀ¿À¿ÀÀ3Ì0ÃÀÀ?ÀÀÀÿ?ÿÀÀÀ¿À¿À¿ÀÀÀÀ0?üÀÿÀÀÀÀÿÀÌ0ÌÿÀÀÀÿÀ¿À¿ÀÀÃðÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÀÀÀÿÿÀÀÃü?ÀÀÀ?Àð0 ÿÀÀÀÀü0?ÀÀÀ?ÀÀÀà ÀÀ?ÀÀÌ À?ÀÀÀ0ÿUUUUffd @€@H€@€@€fffc`@Hà�$€@„ ÿÿÿÿûþâ!„ " a "A  !"!B!B" " a " a " a " „û} " "c" "c" "c" " t!"!" " "c" "c" "cB "„„„„„„„õ„ƒ÷„„„„û" " a "A R!Ba B AB AB û„û} " "c" "c" "c" " "!"rB "c" "ƒ " "A!B"„„„„„„„„õƒ÷„„„„ûþâ!„0B ƒ"!B" a!B" a!B" „„†ý} "!"!" A" t!B"A ªºª«¦ ƒ?DKDt?43Cƒ8D>D´D´D´Dü`DD´D´D´D@óCDDKNDKDK8Dÿÿ"  DD´GCó‹CJ„s„s„¦ü`DD´D´D´D@4ó„KDNODDs„ÿÿÿ"   …?ó„ô8D³F„K8Dÿú`D44GDó„tNUUUUÿü0ãä«©©qr«Ì0é©«©© «©©ãÿÀÀä«©©«©ÀðÏ©ª©«©©«©©Àÿ«ãä©«©Ã0 ©«©© ?«©ãäãä©ð «©©«©Ì0©«©© «©?ÿ¬«©ãä«©©qÀ0 r«©ÿ©ãä«©© à «©©«UUUUÿü009?Ï0à ?? 9ÿÀÀÀ?ÀüÏ?)ÀÿT7ÀÃ< ?? ?787ü ?ÌÀ0?? ?ÿSTV9Ã0 ?ÿ9Ìà ??ÿÿÿÿ8Ò²z²Í�ǽAN§¾cB!Ñ…‘+œ›.z±C+pê’¼ê±+ÝoÓ²´n - H1œœdyõöod NßÊéɲÑn" 8mé77éy5N¦ZeÿmMÞBÔXÔÓyé’ÞAÝÔöÜì*MÈ ±<;XZX™zé�8yóßê½5›½é¥CÝ f�oÓéÑÝÏð¥A d7…ÓA¥š†MÝCWcÞéÞ´7777AAo঱ÿMoÞ²¾o»›cƒ+ê7¾m§ÉÝ8¼-,Ç(IMƒO êÞ¨c-7mz²ó„™èAê7¦¨p²ÿ�ß›ºû¦ÞÞÊo¨ßé²A 5é7.¼Þ±®úêkõ»Ÿöbvÿ� !  3  jöŠö¨øˆôwWÇG1i1‰Q©ñ’jï )hïHÏ¥lÿÿ%#.  O7 &   "/úÿúüù¨W"wÉSÉséu÷—ù�‘ü–¯  0$Z3g;! ðð¨�ý¨ü&)'o ¤ñðyyÝÓL¾ÿÿÿÿ Í$} ™ª–>jû×Ê“}’«+?[2{´_YC©ëô>§‘[Ú_â,@hïMºnr …Š;é~ )ÁT¥Bw ÃN ³Ø–&3Ù[Ý ÌEzÔuØ_}ŠQ¥žvÌꙌ ÷.ÜV˜8ý*)\. Íoôsn‘Ö‹3C]¾ï£ÌO>�Õ7£¹lÚEF«PÑôÈãyæ¥h/`Z�í²¨§‚ ~›šAÉwn’¿œ¼¯êÝ…BÙÚ sm vaÍ>·b‘XXä fz £ÚSˆZ`‡«]ÿ¨²cÛK'R‘žYÃ_'/ÊëC«U…Y3(§Ô–HLdMï'+>;VU B+8-(k8c ³ùsç1�ÿ20 2 ýÿ0T&ÿý_2+,4 H(O!?-þL/$# V$S‚-*mP&o BQ  .* "K F#ŸÿûöýJ1`%"ç'ÏP/0eF$Aˆ7.y8] &G õ‡É?³Tûýÿÿÿÿ4>~ß~,µwä_:ÔSƆ}À·•‰0bnÒU@O³¦ýìŽÕážÁµ€ü(íòÑDÊÙcåU'W9I^€¿UÑoÊ:M¬RØ�yñçÅW«™Sþ—…ñÊUÙAXĶóÁû¹ô*ò�Ç·GtZX‰ÌÏšòm‡wâ�s£žU“á©DFyxÀßQ“ ¸±$V8‹LÐÆðäþeÐF:å=J}'Ѹ–ΩÂHBw‹å©Ý Ê4¦‘Äû.‹oZgT—C×í R* Qö‹|”b„jc­pâúÆ›lÇ·Ï›Øúá‹›t]óVqé�§|“ôÒ0NFõ@ç«æjª  & 1"%ÿÿ€ëχ 4QÇ1CCË&„ødö¤ö† 9_@“ôà!F@˜…/$-HK 3 $(úqÿ-￯òõ/R¯G%ôBÿhæ@#'¤24%B!¿ÞÛ}QXA÷çñ±Ãò‰%Ò³Ë=óù¸�®¶M>Îe1øÚ—)9 ædpH–Q¢@P`1B1BöøÿÿJW9yoh¸—»Òé·C÷£ ¬Ý`W1Ÿÿ&?l¶¬Û/o$d²éP�¶ÈY�Q±ÐÅûaF%‡9¼ÒTù?qXLbC$@<ÿÿ ABou ªô;,™+‹uÍTØ5|ô)ñÿ?ÏÇÄʼn À¿%&#E×µ}³¹!©dÉàófª´*–ÝI{XaF Àÿ HW÷©±%Ý‘e? (%ÿÿ¿DE*% ³ûSç1�ð*ÿ8 D H 4 '# V%(þüËÀ2- 83ÿ @ßýøÿl3<,ç8?üÛ|aN1410úoÿÌú97ÿ (ßû¿ÿœà@ï9(í¼šõ�¶ðÞ:;.ÏŒp_·0Ö§Mä$$�?¾�»{¶›@Œª1ð/�KfÌö ¨>çEJKÑ’Ãü �ý%ÿÿ>ÿVZ¹K{>’>qÛnÁm§)ïa ™† %,i3\8¥1¾.má¹ êã &ý�ÕUìåÿWDé\ÂÉЦÓσ3›JШ2¿º ÿÿ¾³ÿ:'$)nE,úY‘·•ŸhžžìûÊï«�ùw¢£ƒ]¸f ν|nôĶTŽGI ßU]•a|Y >/.}f&»Æ.s2$W$$†D 8 :ÿÐ? F!$ ð&,? ü-XW n]$öaŸÿ%(2CyÀ.ßïÙýq0.]-  +L 0 &~ÿü¼! ""C¿Ba=L'sÿÿ2a Z97r[*?<ÿ/nG8_ &Øòë1þÉí?ö 9þÿÿÿÿüÏ»¿» /$ ó//HHHŸ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€` ' ' '( 0000(H/' $  ô/H/0/0/?Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿ‡( ' ?  0000(/'  /ó/`/H/H/_Ÿÿ€ÿÿÿÿÿ `ÿ è  DUUU@ÇÇ‚‚‚ÇÌ�‚~�� ÿ|||‚‚‚|&ˆ‚~€ÿ@À€æa�€~UUUU?ü00?ÀÀÀÿÿ?ÀÏ0à ÀÀ?ÀÀÀ? ÀÀÀÿÀÀÀ?ÀÀÀ?ÀÀÀüÏÀ¿À?ÀÀ€ÀÀÀÀÿÿ?ÀÀÀÀÃ< ?ÀÀÀ?À ÀÀ?Àü ÀÀ?ÀÀÀÌÀ0?ÀÀÀ?À ÀÀ?ÿÿÿÿ?ÀÀÀÿÃ0 ÿ?ÀÀÿÀ?ÀÀÀÌà ?ÀÀÀ?ÀUQUUH   @€�À@$$@>€  Hÿ"c" "!B„„„„„„„„„ƒ÷„„„„û" "A "A "A "   !"!B" " a " a " a " „„†ý} " A" A" "c" "rB!"A "A "„üâ!è„„„„„À„«j /ÿÿÿÄF ”iF”oCCCBVZDD´D´D´Dÿú`DGDtD´DóƒGNDtO¸5ÿÿÿÀU 0©©0ÿÀ«ãä©«©Ã <Ì©«©¬«©«0ÀÀ©©«Àÿ©ãä©«©© 0«©©Ã«©qrU 00ÿðT7?à <ÌS0ÀÀÀ?ÀÿÃ7? 0?ÃÿÒ7àXÿ¥M"8dÊ8¨dÊ©fY�ÿ¼M¥ôZXXö !oD¼êœM+½ÿ±X.!yôW²È²¨ô†§ÇMݛȽ†n7œ¶òé³ç{cm…ÓÝX¾ê7�LD7émõö +±z7Þ"/I±y¥ ZW8éÀ»¿j ,(*Q ?!!&  ,# ÿ„údødøD!öh©ôyyñ0SSð+!� p—ÿÿÿ"2(À,ÿ—Ç€1bùäÍãLµ'§ÇTƒá2¿Û†=ckSÒêWÈÌX�(#PÊw‚^Tg¬Qv•wþ%ë–M™ƒ™ÔÇ\S?ª55ý®ž|=m»²mAÆkõÕ—Í%¥‹©d?5?A¼ƒ1€¾#fÒ+«XÀÌúZ¿9¾�:5P ò 1: 2ýT)>=+`E5v;E¸92C$9(? øDÿú’"û_·ûsû³–ÿÿýô-_@ÿkk³»õýߘoÿãò$Ké¯FƱsÀ‡â’M�Â…ç�xw\ÿg˜dí¯õ0¾wý™P�â5Q>gÀѵj à'ˆÑ¿,  $ê�ó„Öd6;DE dIbt@”b44@2P!Á@÷uM¬™ªÈMþª˜“püN™‘=À=ÿ…då¢%IFCƒœ��•7QfÒþ›Î:‚»Fõ³¹uå4/Ïÿþê!4£Ø1ùî †ÿá{÷�tºG:�}%Y+ˆ ¨×¾_ºÀ´¶eÿ;ÿ�~37P(#À</H+7d'ClÑøþæþÆ#ÿðÿ  ?óÿñw@½Ã˰\ ! —TÏa3vÀùé„ *gîžzCt9\»øÌ¨Cÿoú$1Bt"Y†w„ÌõÒä=‹‰cÐ. ´ÛÁffY+ÄŸK>ü u� HËúü0ch]V i:>?0/,+fE:Q,5 ÿBBSd5@?ëÿab ÿÿòf &Hÿ ' 0000(H/    Ã'HHH_Ÿÿ€ÿ `ÿ `ÿ `ÿ `”    0 T00(ÀUÀÿ™Àá€~† U 0ÀÀ0?ðÿ?ÀÀÀ?à <ÌÀÀÀÿÀÀÀ0ÀÀÀÀ?ÀÀÀÿÃÀ?ÀÀÀ?À 0ÀÀ?ÀÃÀÀÿÿT0@�8 @€@Æ&ùHÓ#ÿ+ì¨Â@kÄ€¿{ Ð            ".0* 2,:<6(  >8FHB4  .8:<64  >8JL:(  B< FH6, 68>@.4    .,   >0JLF, NHVXB4  JDRTF8  6<  VH     &("            "064  (& 420               "E(CE$& .0*  2,:<6( :8 BD>1D/"(Y    B0   ISU% #%%#%     "$  & .0*  I     $ & .0&  .(68*  2,:<6(             "%(#%$ & .0* ., 682( 24:<6I<   E C*E02,:<2$  :4BD.   60>@2$    -+-    "*,&  .(682$  $- 979"$   "*,"  *$24     %#%     &(" "$*,&Y,      5?A 535    "*,&  .(682$   2468&(*,"$ U             ")('a$        5 ?A     "$ E               %#%     "$  " *,&  M  & , .(68.   60>@6(  >8FH2$   !!     "$  & .0*  9          (&8T27_rockT27_rock"ÂH!|ÀtÄ(Bq½qÀkÄØMØ"€kDH!|Ã(B€tDq½qÃiMa U?üiÁÂÑiÃÄuið?ðÃĵÒÄuÒÄ?ÀüiÃÄÆÒÄÒÀü?ÄÆÒÄ#¯°²±ÿÿ𲞯°ž¯âÒÄU?ü &% &%£ ð?ð$#¾%£#?Àü˜ $##˜Àü?##8 ÿÿð X#㩪ª¬â᫪¬ªq᫪¬ªärªª¬qrªª¬â᫪¬ªqrª¬ªär?óüꪬqrªª¬«©«ÏÀ©qrª¬ª7Tz9V$9Vx"x7T$z?óüÃ$TÏÀÿ5£±±Ð¯VûôBÂÀHq…fñuбÐwž? “³RRR¨\ooÙOûZX#ÛdågålØIAn¿t·nAYUZ+P+ÿ:}J …?<4_ ™#  g �5  kC # C cöC964ƒ4c–�4e- ×eH\]tsù˜8ˆwéÞL˜%kÀBu«NªÕ�Ôr6ovuvÉ€õRW#|{U S0#0ðÉ ÐÀñ‚ 3M×0)‘)*¥–†c‡=ó©= UHU&œ00`Æ ”Àø  'AÕÿü)”‘¾Ò$¸Ï<?< œ+)‚XÐÏÐ0ðÿÿ¦ _ Z:ë+EœZƒR\<:Ø?ÿÀ®^]-Œ‹UŸ,- 4#$'0ðÉ,(ðÀ %@Q?ÿhE!ÎÊh©`ÿdF:u®Ñ÷ÿ`À—˜*3¢Qófe4`ýsîëÒ˜?Çd•?ü@ÿÿ€ Ÿ ïð?ð0/à ï /?Àü¿ _`° /¿?ðÿðË Ë`° /ÿÿð $  ¿?`U ý0þý0À þýþÀ ýÿ} ÿ3üÿ¿¿¿@ÿ¿¿¿¿ÿ¿¿¿@ÿ¿¿¿¿ÿ¿¿¿@ÿ¿¿¿¿ÿ¿¿¿@ÿ?óüÿ¿¿¿ÿ¿¿¿ÿÀÀÏÀÀÿÿ¿¿¿UqÄ0w! €„¤^râwùÿUæ Á@lÄ€¿ÝÐ   *0 >D&, :@ *0 >D&, :@&, :@   Z` n T28_groomed T28_groomed|Âö¨„À}ÄB.~ÀtÄ    ` |€tDö¨„ÃB€}D.~Ãm`e ýÿÿÿ3ÌÏÿyzñww—zñww—wwwywwwywww—www—www—wwwywww—www—www—wwwywww—www—www—wwwywwðwwðwww—www•ywwwðxïwðxïwðwwywww—www—www—wwwywww—www—www—wwwywww—www—www—wwwywww—www—www—wwwYwxYww—wxïwywxzyñwww—wwwxxïxxïywww—www—www—wwwywww—www—www—wwwywww—wwªªªªà€€õè�ˆ�hˆ`€€€øˆøˆøˆ€`€€öˆöˆöˆ€`€€öˆöˆöˆ€`€Ö�h�h�hˆ÷ø÷•øø†ˆ�ˆ�ˆ�ˆˆh�h�h�hˆh�h�h�hˆh�h�h�h�‡ö€&&~ˆ€w€ˆ�ñˆ‡wöˆ�ˆ�ˆ�ˆˆh�h�h�hˆh�hUUUU ÿü©ª©ª©ª©«©Àÿÿ©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©Àÿü0©ª©ª©ª©«©0 ©«©« 00©©«000©©«000©©«000©©«0 Ïé©«©ª©©0ÿÀª©«©©ª©Ã 0«©©«000©©«000©©«UUUU ÿüÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÀÿü0S0  000?0000?0000?0000?0<ÏÃ@+0ÿÀUUà 00?0000?0000?UUÕW ÿüfefefefÜfÀÿÿf fefefefÀÀÀÿÜff fefÿÀÀÀefefÜffÿÿÀÀ fefefefÜfÀÿü0f fefefÜf0 ffÜf 000fXÜf0000fXÜf0000fXÜf0000fXÜffB«i£®­X[ÞzyåA Q3�­¯8Üà 00fÜfXf03ð0ÜÜvê‚f0?ð0Üןì)‹fUUÕW ÿüÀÿÿTÀÀÀÿTÿÀÀÀÿÿÀÀTÀÿü0T0  000@0000@0000@0000@1x-A@="!Ž/.G`à 00@00°0>08°0:@×?ÿÿW.ÿt[/X)<>LPOò’³§¨<ð78?ð77ííµù©8s6× ……ž77ç€Uû÷yN ÿùö0&% ð00UUU×ÿð})¨}~}~}~?ÿ}~}~}~}À?~}~}ÿÀ~}~}~?ÿÀ}~}~}~}~?ü0}~}~S)~ Ì}*)~0—~00}~00}~0ð})¨0;óÿ}q¿ZÍò›s0MÝŽOP˜JfƒZ¨˜~Àÿð}*a8)¶‹?ÿð7·üÇ9eJ¨z +óçñ}7·7€U÷u?Wÿüò%&ð5p4uð @W?ÿÿk|‡x…À»MÎ; ÈYZ3¯ŽÙÚ<ðIJÿÿ3ðIGÜàÕS?óð?ÙH‘H¤‹‰±IG’@T8Æð 00@Uÿÿû=Æ@fãP¢ÿÿðDÃBäKLgÍb`$Ù@Eÿÿhµ€ enÿóðcJI t-`ýÿ¿þ3ÌÏÿ`_ 00Ÿ_ 00Ÿ@00ÿ`@0000(o0(o0(o0(GGGGGG   ' Ÿ`@00_?p0_?p0_0000(o0(o0(o0(GGGGGG ' ' Ïüϼû °'´;$Ï»°Ì°ÿÿ“@00Ÿ@00//`//`00(o0(o0(o0(GGGGTP€�� 2�€0ÿ�ü€UUUU ÿüÀ¿À¿À¿ÀÀÀÀÿÿÀÿÀ¿À¿À¿ÀÀÀÀÿÀÀÀÿÀ¿ÀÿÀÀÀ¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿü0ÀÿÀ¿À¿ÀÀÀ0 ÀÀÀÀ 000À?ÀÀ0000À?ÀÀ0000À?ÀÀ0000À?ÀÀ0<ÏÃÀ@À€À¿ÀÀ0ÿÀÿÀÀÀÀÿÀà 00ÀÀÀ?À0000ÀÀ?À0000ÀÀ?ÀUUUU@€@€@€@    �€   ÿÿÿÿw—www—wwwywww—www—www—wwwyWxï•yzñww—zñww—zñwwywww—www—www—wwÓxïxwðwwðwwywww—www—www—wwwywww—www—www—wwwywww—www—www—wwwywww—www—www—wwwywxwuwxwxwxwxñwwwywwðwwxlb×µãÜÚ,÷ë VÞK*�ÁMq-ž v (*ÀMKK+K*K  ëuIKMK+KKKË *žÑuððÀÀ{`9 ÜÚfvfÚšÏM(vÓßUe}U0:ð0 <00?ÿ@òÿ$Ü $)¼ z90ÃÿêF 4úúøê ’BÒ ðô#"éÀÄð 0üôü@+3) 2!$+\ñõýõj +3'ÕÕÕÔnÕõÕÀjðÐÀÀPÌÌÿó@ #HI;>uÿÿÿÿÿð§ ØëÀ;ø6û¾<?QRI¶ý¥ª0,vspju_ÙÿÏ Ï ìTOkl78q=/à°�iåžaâ`žMô½ep°z£+zDx+K2E}ŠÊ}û„˜³hÁYÝð+ø�xzÉ}ú °1>ˆÆE»áwàˆ!ºSö³ï¬þyõO;L“HTH o-Y<'B]=Ñ¥Í ¤!'Ùׄ˜N�…îªò%5ˆˆ$Û�X.¯' Ü[÷-œ„*;X)FœU ™31 „ìôM¥ABoÛ³op§¿u!ì¥Weesð<>  #�õ!$TRU°‡ 1 *# &øüüÀ#%   Ï(ÏÃãô/&%  üÿÿ860Œíû *õÓÊO,üüüÌ''!DÃÃÂÀ ûðýp©"d˜üÃ-%B÷ÿÿÿ×UEf¡í?>ð E€400".+ .ýýüÀ'$+$`‚€ÌÌ`.õõî/,%3&3$' <À%1XuUõãóðÚ`›:õ™o<ÂÁÄ¡VUèå¿Ï[.©ÚÒÑÃÿÿà &piððð@¼ÏÎ�žCÃóü—š§×›�lA~üÿÿŠÌª w NšTçÿÿÆóUºÆ µQ 3P ¯WòðÎrÍráEEÒÒFŸÌ‡EBìE‹žG ÐF TGû뉶BÕGGß’ “ž6Óž<Ù‰Šü¨Ç ]UU•eƒ3ð<�?eµ?Ï'. � ```*ÃÃÃü)&%$! +üÿÿ>!B3 ?h! Ïÿ]xmT +B@ "P€p¡p`áÀDÃÏÂÐ'ÿòÿ�í4.ð«ÿú¿GG ' ÏüÏüÌÏ''œûϻϻüû$$$°»»û»û»û$$$ ;/`/0_00_0000(o0(o0(o0(GGGGGG ÿÌÿÌÿÌÀ '''¼ûËËËÏ»°´  /0/0/0/`0(o0(o0(o0(GGGGGG ' ' ' ̼¼¼üËËϨ#AP0ÿ0þ ``` ÿÀþ ```ÀÿUUUU0000ÀÀ?À00?ðÀÀ?ÀÀÀÀ0?ÀÀ¿ÀÀÀ< ÿÀÀÀÀ0à À?ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀüÀÀÀ?ÀÀÃ33ÀÀÀÀÀ?Àà ÌÌ¿ÀÀ€ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÌÌÃó?ÀÀÀÀÀÀÀÿUUUU  €8@€@€@€@€@€ BH@€@€@€@€H€#ýÏ3üÏwxïwðwwywxw�‹O™òÁÿ2#%ó3ÀÀ>ÀÀÀì> ÌÀÀÀ>ÀÀÀÀ>ÀÀÌÌ>W«€úp¥wéC4±ÀŽð?ÃrîŽÒ�ÞÃÀÿÿÝÉÊ247«¬ÿÿÌ ¹2–}/�87ª'gdÿøö+&5RÿC@ Mà à0uÿOºëWŽ8âǺjù‡šý'çdãð?ÃÀ|vO¡ ÃÀÿÿ IJJ%o—ŒðØ�ÿÿü¸AÂÈmù �ž§(,#J I&ð;C Z`0@ðÆEXîõV)À¼šÿÿÿ{Dbµ:À?Ã<©ª˜—­ÃÀ|ÿ®âázƒÿÿtÌ¢‚Uü)"=ƒÃÀðððWÕr ýÙrtÂÁ´Ïð?Cíõ âÕÃÀÿÿ34D:IKÞ7¡ÿÿÌ àÏ?@34IJVG|—ÿðò=ðZ�€< oH(þ °Ï »°°Ë/0/0/000(o0(o0(o0(GGGGGG ' ÿÌÿÌ̼¼¼''0þ ```U3ÿüÀ¿À¿ÀÀ€À¿ÀÀó3ÀÀÀ€ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÌÌÀÀ?ÀÀÀU!˜`@€@€@€@€@-­ÿÿ‰ÿÀ@@tÄ€¿ Ð     " &(   6@BD><   N@Z\F, NHVXF8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64  >8JL:(  >< FH6,  >8FH6(  Q    EC.E460>@.   60>@.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  97298:4BD2$  :4BD2$  :4BD2$      24682468$=       5 3*502,:<*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28&,      )28  :4BD>0  F@NP:,  B<JL6( Y       53"5(*$24*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*,"$ U $ 979     -535$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, )          U979 "*,"  *$24*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T28_packed T28_packed|š„À}Ä ÂÃuwÀtÄ   !»!|€tDš„à €}DÃuwç »Ÿ  ÿÿòñññññÕòñòòôòò×ôòò×ôòò×ôòòòôòò×ôòò×ôòôòòñòñóôóØ3ñòñòñò6ôóòòòôòò×ôòò×ôòò×ôòòòôóôóˆòôóòòÕòòòÕòòòòòòôòò×ôòôóò»òôóòòÕòòòÕòòòòôóô¡òññòñôòñó üòòòòôóôÿÿ666O6OOOOO566Pl65656k6OOOò6OO5O55…6OO»4ó üUUU ü00©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«0Ãó0©©ª©ª©«ÃÀÀÀ©©«©«0 ©©« Ì<©©«©©«©© 3Àë©©«©«?Ì ¬«¬«©©«©üÌ0󪩩«©«©©«?ÿ0¬«¬«©©«©UUU ü00?ÿð0S0?ÿðS0Ãó0SÏÀÀÀ?V0 ? Ï<?@) ? 3Ìó€??Ì +üÌ0ó+?ÿ0)ÿÿÓG°W#nŒ§Ó ©×»ºÑžlœž¼º÷-÷ºõ/õ÷¼Džœœbªº÷ÒõfƒÆ2’&Œxõx•Ç{x^Âû%õÚ–$÷Ú€<÷-œe„©õâ¼÷º ÷¼÷-÷÷¡ƒ¼÷ËjœD0DàNÂ"•­÷õ}÷õ©nõ÷°}º”÷k2÷ãx3B›–“Ý#yæ›ÁJÁÅYMMNq#*Fnå’fƒI#wö’ Ë¿ÿÿüsVs2$sÚ )ÿ»w"#P+'R+)µ£zh’§$+ˆE”RQ“JI IJ“”I )�N `šË\Ày—ËÆ%`ÄM¥kVÿ·rÔZ×0xŒ´6zEu¸{úBjv ij#�x¬l×…­3ŒÉIÕR0¸&_0ìHu¢sÎ訬¢Ç˜Ì·,7“èïÉ¿V¥Õ'õç&yAvÎv¦÷¤¬.~Î{Yi�¾'væ5¶F,j£ÿÿü¨;–•žOL�æ‡V¦›.¹ýÿÿÿ.<;4ûð<  ?ÿ - ÿÿÎ(?$$ ÿþóðUÀu< ÿ@<¼! $%ÿøúßß´Ö#&&5P0@""E*5 :#!aÃÓûÇÿã01; R"`CŸôÿðP$QT×ÿ´wÈ.ÅÌ´~çOd]5¼¸ÿý>æ³@¸ïð++Ÿ°ÿÿT+ç„3Î5Àú \ôC•ö¶‘&GÆ÷éYÿ`o.é8䨹ûC6'EÙžUû+(,äá-/> ,gê ^ÿÿI¢F©bNÛ{Ý÷'8,éýÛã ¢{ŸÉÙÿÑ ¼'-Ó6Eš‘%±­½êV*ý7B(FJBfÌþÈt|U¬<‘´ÔºÿÿüÄšš™ëåÔkQ–jjBýßøŸ"03,÷p< 7  Uª–Ô!2ýþÿòsÀ;*&ÿp*°äö†P�'/7 …6R§òÿÿE1h>V1ödÿˆý=«{öõÿûu,F_ïÿü$#Hh£^9ÿÿwÃ8ñ¬iñ[µ¢®-—UkUäÅ87mÞ¹ºÝnm88opÝÞoÞ7Ë:kj”ÄÍCú‘§Çh52 –Ë„ì�¤Øê’Õ£{ñ_A'8¤7=/¦hê@7ðkÔö¢á¹ódáMHÁ€n÷Ñ£Ÿ�+}¬ kZ8µM¥ B¥µ,¦·ÿü|Ì›¸s¥®—ìåší²¾êc©n:€+Àÿü,= ¹çŽ™Z•V,•÷ÿüÿ 2/(ÿOf à&' ÿüýS:#ÿH>½% ÿæÿ q11a¿"ÿI³ð¹, óÃÿÀ!G j>! ×wK84>ü¼°¥ST¢ÿ°<ݼ¯¿À?ïe}ö9²qñò!Ämv|L¦×™ï±}îsäÒÀl]�üÿ<üÿ~~#$hcdO å¾o�û‚¬ €oï¼x¿}pu*Æž‚�;‘©’åS¦ ˜ï´ù. 9Å!Þf Öÿÿü¹qXWe�x¹Ã¸9ÕUWB@™ ÷.' SH"I.w ²«®µ?ÂBH¶©LB|=ÿÿ(_Z]p6»R€d ‡\YN*9&DŽ® dÿIó ;83Àÿü4 Q)^Oªªª ðÌüÏûÏ$» »¿»$$¿»» »$$¿»û¿°ËÌ$¼ðüûüûüû#´ûÏ»»»û»û0$$»û»»Ëϰ¼$xû¿»¿»¿»»$$»û¿¼ûû°$<Ï û»û»°$$°Ëû Ëϰ¼T» °¼°UUU ü00À¿ÀÀÀÀ?ÿð0ÿÀ¿À¿À¿ÀÀÀ0?ÿðÀÿÀ¿À¿À¿ÀÀ0Ãó0ÀÀÿÀ¿ÀÀÏÀÀÀÀ?ÀÿÀÀ0 À?ÀÀ Ï<À?ÀÀ@À€ ÀÀÀ? 3ÌóÀÀÀÀ€À?À?Ì ¿À¿ÀÀÀ€ÀüÌ0ó¿ÀÀÀÀÀ€ÀÀ?ÿ0¿À¿ÀÀ€ÀÀUUU   À Œ€€$ å5_¨øÊÑ„GdÂ@tÄ€¿(Ð        *46820   B4NPB( JDRTF8  NHVXB4  .8:<64   F8RTB( JDRTB4 FD NP>4  &024.4 "$9$       EC:E@B<JL:,  B<JL:,  B<JL2$  A?2A824:<*$ *,24"(jtnpu uvkuou   #+-'     4p›.>prtjprtjprt60>@.  20 :<*  *,24&0.024   *   2,:<6(  $&(  "$ r8HÝ "$        T28_powder T28_powderäÂö¨„À}Ä´B —rÀtÄy qy ä€tDö¨„ôB€}D —rÃý qõ  õýýÿ3ÌÌÏïðïñïñ ùÌÿü=;<;<;<¶;<<;y;;´>y;;´>y;;ïñïñïñïñ òñïñª©©ê ðàðàð¤@@44? 6Cd@8DD´D´D¥D ÌÏŒ @@´D´D´D@ôCCDD $I$I$O333?ÿïï¤ a>ô48D8-&DB”B”B¦ïþ¦DKDKDKDDôB@D“dI6D“d _wWU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©«© 3?Ì©ª©ª©ª©« ©©ãq©ª©ª©ª©ãq©«©©ª©ª©ÿÀÀÀª©ª©«©©ª©ª©«©©ª©ª©ªÿ©ª©«©©ª©ª©ª©ª©ª©ª©ª©«ÿÀãä©«©qrü髬«©¬«ÀÀÀð©«©ãäüãä©«©©«üð©©«©¬« À©«©ü¬«©_wWUTSTSTSTSTST7S) 3?ÌS 7TSTSTST7SÿÀÀÀSSÿSTSTSTSTSTSTSTVÿÃ9?üÃUÀÀÀð9:ÿ9?üð?U ÀüUVVÿÿÿÿps)}–__U�. ^ÖbŠ.ée¤2�›âyõ¾õ©åFEÝZ²ä'i[(xóΘ{¹»û[‘íõ×Ýâé#†ª¦�ÑYç»Ã òì‰0Ö¸VÚâL{ç–¨… ¦w,ß0½Y Ð8íl ¯ªK°�B©–ßþ ‡¤üGޏNV‚>5R¢ÔբЋkËÐòH“ ¯u��wŽñ¥º½Ùùç`¾¿ˆæõðBÕß·^PlµE Hí(\e×Ñßk¯qSÊ?šòU�qUÝ\B¼=ëÉ1£[ è½Ýݼ€L¸ y÷d°Q«×ÈQñâ#Gtà9¯¢¹ÉäY�Q;ª|od¹…ýK7VÏ ìÎÜ÷IJÛZ½šBâéGPâŽá"'Â!p§�³ÈNÁæ†þιg¢„ËB¢º™fR�úrðÛѹzÈÖU¸«€ K`sl†ÐÐh¨ûÔJ‰ÙR}ùî¨Hbè�d%*Qf;™“"®v ¤’®¯½aw·ÖÒ·(Lzƒbùïd÷‡Íî!ÄíoŸeT�iÁÓš”ÇÄs~˜?$‘ ¢´;¸+�BÔv~ ,¼wŒ‘ºj©Z1�A! 'ËFúÏïÿ»'<  ): CN%´ù&A0"@c`2 @@!rD’D’$ 0špBBBdl &ñFÎðŸADûTÏÏÿoß@'0+DÿñÏi  D!4 "G"+$g2„ ^SÅ@  ýõ÷õ€‹ 2;Þzªhä®xÃDOùÎOþ(ø@ȵ!CÌ·!Ò×]CÞö®»!¶ÕÿÙH```Hüã@ØÔJñ¤¯jp% ŸÒg¦q^øÇA®iHoÁ_ù0`‚í@»ý|ÀÍÑO2o�›ÿÿ¬¡ðòÔöVÄȹ=íî�‹‰0I8†˜V-ßÉb 9?&cF$%7&9<!ÀòÿC´ôY\ò”û×û›ûŸ""$Á&�  ?1holS8:M|!$}bIN(+MòBI“X ðp›ÿ™ÿ$..ÿ¿5"+< &I’˜ Ï6or饭í3ÌÌÏ/°°ËËϰ§Ì¼û°Ï»@4 4 ?(ÌÌÌ_Ÿÿ€ÿÌ??? `ÿ `ÿ `ÿ `ðü ËËÌ `4 ÌÏÌÏÌÏ###0333?00(`/  -û ËϻϿw0»»û»û»ÿÿ$$__üüüŸÿ€ÿ `ÿ `ÿ `ÿ ``@ ÌûüÏ¿Ìûü### 000(0/PAE HH@CÈ€~``` 0ÿ��€~�€€ ÿ_wWUÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿ÀÀÀÀ€À 3?ÌÀÿÀ¿À¿ÀÀ ÀÀÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿ÀÿÀÀÀ¿À¿ÀÀÀÀ¿ÀÿÀÀÀÀÿÀ¿À¿ÿÀ¿ÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃ?ÀÀÀÿÿ?üÃÀÀ¿ÀÀÿÀÀÀÀÀÀÀÿ?ÀÀÀ?ÀÀüðÀ?ÀÀÀÿÀ ÀÀÀÀüÿÿÿUUUUffd @€fd @€™™™Œ �€` à€øÿÿÿÿï û;;;;´;;;´;;;´;;;=Yy;;´>y;;´;;;´;;;ïñïñïñï û;;<;;x;;x;;y“vùöùûŸ9ùÀ9RI0d719/ôP Œÿÿik?ðD(/û?ù?×Q"¯ÿ! -•ùÿÿÿÿ(ºµp“†ì¯æ¢2Ýä/Õ†ù»EÙÈO£ŸB‡�ίOu·Ô‹Ãoæ hî¶9ïx9c$·l·n�-ÎvÃßýع5"ýN…˜¤ÁC¡u~$0~XuÙ<óBüñˆ v†X"¦>b׈}èDz\Ðm-#åÔN„¹Qן2Dçj¡”Jöâ]Úó›,s„Y OÄ"˜Óì?ÆÑ{‡û�ðíãã”UîîŽmõÒd_RšÆ <¥ù™lUúq¢ëÇÓÔK Z�%#ÅÃÿÿ1q»mC¯K‚Ö#¸~g³5IﮑŸŠÿø?¨SWB©I p�Pƒ0cCªjtÜ&ä¾.g%¶u@AÿÿðxV`N›®KØ‚A/ÿÿ|™Úl¹mÂÑzÚv/(S…Ùí Û°äIÚw 9(4E!I‚0Êø÷]ïe¤%âiL~ñ•uYW}ßï i^'>8ïñ“Ä#2 / †d�ó"Y� o‡gŒÔ2!� I�„ƒÿ?7ryrY^. &'ÿø +��ÿ%ÿo|“ÿM>ÿ†f$›üB‰„ QZ3,SZ72ÿðQD%( $û�ÿYJ ú®þêÿpY»ù»ù""»ù»°üÿ¼û"w$    ?__Ÿÿ€ÿ€`@?@?@?@ ÏÌÌüÌÏ¿Ï//000(`/÷›¿›¿›""¿›»û »Ï»"Güû¿»¿»¿ÿ$$$/?__Ÿÿ€ÿ€`@?@0o@0o@0     # 000(H/ÿÿpY»ù¿"›ù¿ËË̼ûk»¿»¿»¿»¿$$$/?__Ÿÿ€ÿ€`@0o@PU@€À ™ €ÿÀ †€€€ÿ@|†€€UUUUü ?ÀÀÀ?ÀÀ ÀÀÀ¿À?ÀÀÀÀÀ?ó30?ÀÀÀ?ÀÀÀ? ÀÀÀÀÿ?ð00?ÀÀÀ?ÀÀ0<ÏÀ?ÀÿÀÀ00ÀÀÀ?ó ?ÀÀÀ?ÀÀ0ÀÀÀÀ?ÀÀÀÀÿÿÀÃ?ÀÀÀ?ÀÀ 30ÃÀ?ÀÀÀ?ÀÀÀÿ ?ÀÀÀ?ÀUUUU@€`HÀ@� Ž @� @€ @€�ÿ;x;;x;;=;;;´;;;<§‚£æÑ~*²lm0Ï]†©lr0<º}˜­éŪ к]YŽ«¹ÐJܯ— ˆY[‡#{ã†\é–óŽ“ÌÅS™±_æîáÈšjünÞ´H®å.-�ÀÖZ%BT"pÒ)Š8ÿ'BC3‚  +8/L0$@1 D%B'B)D!€1ò€Õu`ÿÿ[(T81‰Îÿíÿy²ÐId )k1ð‡Í/ÿ„rŸ,»ËkÅ>àXNPCPÏù$ÿü†ŒÍ˜�?˜˜%�GJ2 #_ˆè¯vÙîÀëÚe=Ÿ¾�Èÿæ{R/8 >Gb1   Çð ? ¨úm¤¿È;P+Àõ_ÿÿø@­D Rü†óé¿#qÁÚñÀä"s9«zÈ®ü�¬A#]ù�9:Š™ PÈÎ�,ñìÚB¥ž (º/²¤kQÕÄâÏ8 €fY_Õýs !†BI¿B‡„P9ðò@MJ%ï ÿÿu`HÅ~?|¯WT Ÿßoßoß�   €¯0o@0o@0# #  000(H/ÿÿÿpY¿›ù©üüÏÌüÏk/?__Ÿÿ€ÿ€`@0o@00Ÿ@00Ÿ@00;    000(Àb0ÿð€€ U0ÃÀÃÀÀÿÀÀÀ 0Àÿü0?ÀÀÀ?ÀÌà 0ÀÀ?ÀÀÀü?ÀÀÀ?0000ÀÀÀ?à ÀÀÀU€0$@ `$ ÿÿÚ7ÿAåÌÂ@tÄ€¿~ Ð            "$  &("(      >(  "$F@NPJ<  RLZ\F8  :@ NL         ".0* 2,:<6(  >8FHB4  $  "$   . :<2 :4BD:,  B<JLB4  .8               "%(# "$ "$$  A  2$:4BD>0  F@NP:,   ISU     ECE    "*,&  .(682$  2468&(*,  -ECE                  %#%     "*,&  .(682$   1       =GI  5 ?A    M       535    "*,&  .(682$   28A   6$  >8FHB4           &(" E            535    &("  &$ .0*    E C&E,.(68.   60>@6(  >8FH2$   %#%     "$  " *,&  9             -+-    "$  &(" )        5?A )')    &("  *$24.   9         T28_rockT28_rock|Â×£„À}Ä@B)xÀtÄ€†€|€tD×£„Ã@B€}D)xÆw Wìëìë)ìë)¿êìê*ìëì¼ÆQR«ÈST´ìë'ÁêììÁêé)ÁìÿüÀë)ÂÆSTÿtT ìëéêéÂÈST¬ð?ðtT;tT¬tT?ð<;tT¬tTQìÌÌÿÀêìêììæÆQRüZtTj–‡èàö†Øx÷ÿð2«ö^öhö\ønÿüÀ�öxùÿZsð?ð†s?ð<†s`€`€oŸð&üW]ý ÌÏ0©©ª©ª©«©©q㩪ª¬q㩪󪬫©«©óÿ?q᫪¬ªqrª¬ªÌ3üÿ©«©©q㩪ª¬qrªª¬ârª¬ªqrª¬ªärªª¬qrªª¬©ª©ª©ª©ª©q᫪¬ªóðqrª¬ªÝý ÌÏ0S7T$7Tÿ@?$9V$Ì3üÿV)"7V"x$z$€7Tóð$ÿÿÈ™±b¯Ë°MûàÏÁbi‰¦ëÉÕ[AL.‰×‹YÍz�gg³dd±Qíò°i¼b¯Q©®ýQAç–DDŽQM²²´ëüâ-¦ k<øqs)sì¯'Yò¦ò”góË}ɰ�c¼¼p‚~󜜞0V�œ›êéòñ°ò‰My8:ÿðÖ±¶PPÿÿ1 O ‚/ /\OZ )"'2M=XI^O=^O =6/ //I = 557  71 #7=*O`_`_ZYTI$ + ÿð3ÿÿ:<麦Üã1l2õ˜i~ _B,k3ÒQ6ò­&W%+}tRkv21'x-¡X7%%!\>�ìëÀ?µ/'Rœzy¼9ÿ©SVI:R™&$ Y'Ü<ô<ÄHµ›,VöT6$Y#Ïð>C4tUUa“ÃÂo[ ï˜d g oäÃÂCjw 2C $= Ͼð #D€ÿÿÈ‘Ýý NYœÌd>P Õ¾8s*i„(WßÙù3Ø4=> ?b '%„ º¹¿yzÁ êmâ«mŠ‚�Ger £ýÕ[m$$mê/0&7þдH•s—«d:$WjÏð¢C0tKU•$�ÀELŸ@&Œ`I ƒÀ(?3Ã0? HódtöÿKÀ]ýað¹)P*yO kJr)üûÀHmÕ ÿüð>dA!!Cd§Àÿÿl8=v“\<Ú~}}A€[^½`>Ï!""BcR Ÿ­”­®6omGn K^{!D$iEÏð*A!"¤TUÀ#  .d`3ÀÂã6?@0'$??0Ì?ð8 55@ÀwUuÏœçİGÏ)œÿÀƒ„cNãK»)¹­tÒ«&%K&ÿ%˜€ÿÃÀbÎÍmØÏHé«ÿÿÀ{‹ ’ozj¨äUQ0ÏÐÏÌÅÛÀÈÉd O¼h ÑÒÏhÛÃÀgÎ gô€ n– ¼û ðû»$ w _`€0/ûÏû»ûÏû$$$ÿüÀ #3?@@ /û ËÏÿÿ<#3/0ð?ð /0 /?ð<0 /¨ °°°°¿ÿð?/0ü /T@ý ÿ ÿÀÿÿ0ÿÿ00ÿÿÿÀÿUý ÌÏ0ÀÀÿÀ¿ÀÀÌÌÿ3ÀÀÿÿ¿¿¿¿ÿ¿ÿ¿¿@ÀÀÀÀ3ÿ??¿ÿ¿¿¿¿ÿ¿¿¿Ì3ÌÿÿÀÀ€¿ÿ¿¿¿¿ÿ¿¿¿@ÿ¿¿¿¿ÿ¿¿¿@ÿ¿¿¿¿ÿ¿¿¿€À¿À¿À¿À¿Àÿÿ¿¿¿óð¿ÿ¿¿¿UU `qˆ˜x@„0rff!ù,UÎí�«1ÿWÌ.ÂuÄ€¿†Ð   .  20 :<6, 68>@60   r�      8 639  ou  h Wa[]  KQ  _e'-  ;A'-  ;A'-  ;A'-  ;A            [a  o T29_groomed T29_groomed�Â…+ŠÃ@ƒÄ"Bìq„À}Ä   + <+ �€}D…+ŠÃ"B@ƒDìq„Ã< ßÿÿÿ¯°¢®°¢®°¢¯¯­¯¯¯­¯¯­¯¯­ÿÏ̯¯­¯Í¯°¯¯¯­¯¯­¯° ­¯° ­¯¯¯¯­¯¯­¯¯­¯¯­¯¯¯­¯¯­¯¯­¯¯­¯¯¯¯¯¯¯¯¯¯¯¯¯­¯¯Ÿ¯¯Ÿ¯¯Ÿ¯¯¯¯­¯¯­¯° ­¡° ­¯¯¯­¯¯­¯¯­¯¯­¯-° ­¯° ­¯° ­¯° ­¯¯¯¯­¯¯­¯¯­¯¯­¯¯¯­¯¯­¯¯­¯¯­¯¯¯¯¯¯¯¯¯¯¯¯¯­¯¯Ÿ¯¯Ÿ¯¯Ÿ¯ªªªªàWå~ö†€€`�†�†�†ˆ€x€`Í€€öˆ÷è�~ˆ`€€`ø†ø†ø†€€`€øhøhøh€`€€öˆöˆöˆ`€m†Øm†&†ö†ö^m^h†�†�†�†ˆ~ˆ÷è�~ˆ½÷膈oˆoˆoˆh†�†�†�†ˆh�h�h�h††Øm†ØUUUU ü00©ª©«©©ÿ󪩪©ª©«©©ÿ3ÿ«©©ª©«©©ª©ÿÀÀ0ª©ª©«©©ÿü ª©ª©ª©ª©«© ÿü©ª©ª©ª©ª©« ÿ©©ª©ª©ª©ü ª©«©©ª©ó 00ª©«©©«000©«©000©«©©«À ©©«À00©©«000©©«000©©«0à ©©«©UUUU ü00ÿóSÿ3ÿ?S)ÿÀÀ0ÿü S ÿüS ÿSü Só 000000?000??ð ?À000?0000?0000?00à ?uUUU ü00TSTÄÆÆÿó£TSTãäÄÆÆOÄÆÆm‘rüÛ‘’‘ÿÀÀ0’‘’‘‘‘�ÿü F‘’‘’‘’‘‘‘ ÿü�F‘’‘’‘’‘‘ ÿ‘�F‘’‘’‘ü ’‘‘‘�F‘ÿ 0ð’‘rü‘�´Æ0000ÆÆÄO000?ÆÆÄOÆÆð Ä[‘À000‘»‘0000‘»‘0000‘»‘00Ï ‘»‘r‘‘UUUU ü00ÿóN$#ÿ3ÿ:L*ÿÀÀ0ÿü R ÿüR ÿRü Ró 0ð00008000?8ð 0À000<0000<0000<00à <@üvPÅ?ÀDõùSÿ§dö±?CDCö±@ü BAUü�+®�ƒÿÿù�65®ùðØ?Àõ;8ÿÀ%;Lö0Àðõ+,*)À0€00€00€0ÿü€ *3gýAU�Ÿó fÀ0€   @@übaªÕ,ÿÙ‚¤K?WXW¤Kü üƒ„'H?ÀW¤¹nH€Ú¿ê¿ ðÌüÏù»"°°°¿»¿»¿$$$ÿÏÌ S0/000(o0(o/`(o/`(GGGGGG ÀÿÌÿÌÿÌÀ'''ÀÏÌüÏÌù»¾ù»ù¯¿¯»»""¿»¿»¿»»$$$ /`(o/`(o/`(o/`(GGGGGG ' ' ÏüÌÌüÏÌü'PAPþ€Àÿ0þUUUU ü00À¿ÀÀÀÀÿóÿÀ¿À¿ÀÀÀÀÿ3ÿ?ÀÀÀÿÀÀ€À¿ÀÿÀÀ0¿À¿ÀÀÀÀÿü ÿÀ¿À¿À¿ÀÀÀ ÿüÀÿÀ¿À¿À¿ÀÀ ÿÀÀÿÀ¿À¿Àü ¿ÀÀÀÀÿÀó 00¿ÀÀÀÀÀ000ÀÀ€000ÀÀ€ÀÀÀ €ÀÀÀ00€ÀÀ000€ÀÀ000€ÀÀ0à €ÀÀ€UUUU@�@€  �€   ÿÿÿÿ¯­° ­¡° ­¡° ­¡° ­¯¯¯­¯¯­¯¯­¯¯­¯-° ­¯° ­¯° ­¯° ­¯¯¯¯­¯¯­¯¯­¯¯­¯¯¯­¯¯­¯¯­¯¯­¯¯¯¯¯¯¯¯¯¯¯¯¯­¯¯Ÿ¯¯Ÿ¯¯Ÿ¯¯­° ­¯¯¯­¯¯­¯-° ­¯° ­¯° ­¯° ­¯¯¯¯­¯¯­¯¯­¯¯­¯¯¯­¯¯­¯¯­¯¯­¯¯¯¯¯¯¯¯¯¯¯¯¯­¯¯Ÿ¯¯Ÿ¯¯Ÿ¯¯X° ­¯° ­¯° ­¯° ­¯¯+° ¯Ÿ° ¯Ÿ° ¯Ÿ¯¯­¯ªªªªh^m^m^m^h†�†�†�†ˆ~ˆ÷è�½~ˆ÷膈oˆoˆoˆh†�†�†�†ˆh�h�h�h††Øm†Øh^`ˆhøh~ˆ÷è½�~ˆ÷膈oˆoˆoˆh†�†�†�†ˆh�h�h�h††Øm†Øo~ˆ÷è��~ˆ÷è†B^�^�^�ˆhUUUU0000©«©©000«©©À «©©«©À0©«000©©«000©©«00é©«© 0< ©«©ª©üÀ«©©«©©0 «©©«©©«©© «©©0ÃÀ«©©«0 ü©©«©©«©©UUUU00000000??ð ??À00?0000?0000?000Ã? 0< ÿÀ)?0 ??? ?0ÃÀ0 ÿ?? ?UUUU0000fÆÆÆ0000QÆÆÆ?ð QÆÆÆ¶�‘À00‘K�0000‘‘K�0000‘‘K�000Ñ‘K�‘ ?ü‘NÙlçè!UÿÿÀÅþ<ÆÆ‘0 ‘½‘Ãô¨¨–‘£ –‘Ãà £†«½‘ðÃÀt‘‘‘‘0 ÿ‘‘]/êÔ{ýóóóÌdc‘ ‘ 0ÁIUUUU00000000:?ð :.À00>0000>0000>000Ã> ?|FE4ÿÿÀ!*0 <C)`+`Ãà  7$<0ÃÀ0 ÿ óóóÌ+, <@Uu?ÈÿÀ4?ÿÿH‘qY~íñh¬`ÿ?ªbØï._2ð<ÃÄÞÝOP˜Ãóð—¤tèn_ ”Ãóðó“'íé%¸‘CDCðÀö±HGÿÿn:§TS©©Q !eóóóðÔ¤„"¥¬.ÙÀÇ€Uu? ÏX˜wü Ï? =F=ð<('ÃÐ *'Ãóða / À*)+25¤ iE<óóóð!P#,Eóóóðóp¡fÿZ1'-¦3CûuZç>_$}dÆÉµÿÀ¶%&ÿ5TAÿÿ0f9)z3-~uÿ RAô­ðߣXö´V'/Þ³caÆg‚^C®ÿÀ­ˆ-û¢U ÿ}î½R ��’?ÿ*8aB6wZÿÀ&‹t?'¾ÏÌüÏÌûËÏ`S0/0/0/0/`0(o0(o0(o0(Ü   ¿¼Ì¼¼¼ ÿþ U0Ã3```À``€ÌÌÀÀ````à`ÀÀÀÃ``à`` ÌÌ`à```U !@€@@¨G÷ÿ|Â@}Ä€¿2 Ð        &024.,  >0FH:$ B<JL>0  F@NP>0  *468&(*,      *," *$24  6@BD><   N@Z\J0 RLZ\F8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 >8FH6( :8 BD2( 64 >@.$ 5     A?6A<>8FH6(  >8FH2$  :4BD2$  2468&(*, q      EC>EDF@NP:,  B<JL6(  >8FH2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  1/21864 >@.$ 20 :<*  ., 68& A      53258:4BD2$  :4BD2$  :4BD2$  28&, U      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$ 20 :<*  ., 68& =   535     U      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$ 20 :<*  ., 68& ‘      53>@BD.024 "$µ     )'.)420 :<*  ., 68& *( 24& I $ & .0&  .(68.   60>@6(  2E8     )'")("$*,  &( "$  T29_packed T29_packed–ÂÃÕ‰Ã@ƒÄ BffƒÃ��Ä   zíz–Â��DÃՉà B@ƒDffƒÃ8 í0  ýÿÿ?3ÌÏ?ûüûûöýþýþýþûûýöûûýöûûýöûûýûûûýöûûýöûûýöûûýûûüûûýöûûýöûûýûûûûûûû ýþûþûþûþûûýûûöýûûöýûûöýûûûýóþýþýþýþûûýöûûýöûûýöûûýûûûýöûûýöûûýöûûýûûûýöûûýöûûýöûûýûûüûüUþû ûüûûöüûûöüûûûýûûöýûûöýûûöýûûûýþýþýþýûªªª*à`€ø‡‡è`€øhøhøh`€`€øhøhøh`‡†øhøhØm†øà€×è½×è×è`€`€øhøhøh`÷‡‡‡èhøhøhøhhhøhøhøhhhøhøhøhhxp÷èö^hõæ�§^hhhøhøhøhhxxx`UUU ÿüÌäãäãäãäâääÌÿÀÀâ©áâáâääÀÿÿÀâtâáâáâáâäÀÀó<äâtâäãäÀÀÿüäâ©äãäãää0ÌÿÀâtâáâáâäÀÀÿÿäâtâáâáâáâÀÀÀÿääâtâääÌÌÌ âääâä©ä âä©ä âä©ä Ïâä©äâäÀ0 ©äâäÀÀÀ©äâÀÌÌä©äâäUUU ÿüÌ87878788:8ÌÿÀÀ:«7878:8ÀÿÿÀ:ã8787878:ÀÀó<8:ã8:9:ÀÀÿü8:«:9:9:80ÌÿÀ:ã87878:ÀÀÿÿ8:ã8787878ÀÀÀÿ:8:ã8:8ÌÌÌ :8:88©: 88©: 88©: Ï88©:88À0 ©:88ÀÀÀ©:8ÀÌÌ8©:88ÿÿŽ»Pï\¸8Øæ„ G¤…)…{©Ï"Þ5ò†´ $C ëôîňƱ…<Ž÷ÊÈÊ‘dÑÊ‘dÈÊüÅϚʵ–ÒÎP^½N¦v>5ä´HÜNWÎŽÍ@Ž�Ž`ÍÎBÎÍBÎÍŽŽ�Ž�Ž�ŽÀÀÀÿ`BBŽŽ`BB‘“F‘F(2 öñpt;{¿Ä”`»BÈÑ)ÊÈ5ÿÎÿä3>73 ÀÀÿÿÀÀÀÿ9¢1 1 1/–,&_*Q*C( b)¾¼ïÿ))l77b77l'77v177L7 7 +ØÿÁX=<;>;>ð;>?ÿÀ;<;<;<;9ÿ_ÿKR¯¿q5*ì�MÃTÂêr\9»õ²Gt x…Žuý[%íC üÊ›d(U|%UV®+×VîËó<u2ÑàüÔÀè.Åù烳g=ý†ÞvMôz—µ¦üü™ïuWhd˜äf%`AèçVØ.[W9w€nÚ¿´€îÐy'øUO¤ƒqM»WlõSèáTé�.@'²+yz‰ˆwz‰ˆ˜ü• ¡ÿÿÀb1|{΋¨Þ½W^#ÿÿ&->=8 9*C(*M,2&#CCýÿÿ6É9ÆÚ/•lQiœ5.4_Óoa/ú=‹T¹P¤ÒŠO0Œk ³r& )P¼ÀvwÚÀÀÙÚü£ZJuw©?ÿþAQ>cJa^2ÝÏï  %)'&gT‹l�j^��ÿÿÙd:> $  -E8]F>ïÿü)<)*)Y" ~)*)*)*)ÀÀÀÿY"~_ý™ÿ" @/úúôøö¡!--!7pÅP§ËÀ€G@€HÿUÃi$Ù¯›·20Ùô¶oš~øJâÔká;¢›Õðl|?‚+ ›Ìþ÷nB…êc…†Ço²†×?¹Ã þüƒ ENMý±Æ\üüÝ'ù�ƒùT™Fê8T'œCûü³�Ý|^ºÂ$](À‡-”Ïj?$,Wpn…°Å.Ò9ƒõ¼&@�ßÏÀÏ÷t†n•(‡žyz‰ˆwz‰ˆ˜ü• ¡ð žQnÕÿÿÿ”!  !@=2I(8Ïð[.@ee D<<\óCCCˆÿÿo,8i2(i<iD  §Å0¡ |ÿ�ã'*}21|K1|]ø|~_Ö �ÿÿ2V8WŽke¨�Ðf§FeVëÖwD*Ì¥«¶ÿÿŠ6Ã(ë}ãÉ,•± ‡Ò›ãrp̹Ʈ6ÎPz©4‚ü’Í<`�ÿøššxðÿ´iK)>wÿÿü•Rºñ¶¹öôù\SooÿâáÍÎC@6(  >8FH>0  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<6468>@.(  :0BD2  :4BD2$  &, .(:<*  ., 68&          .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<68:<*,.0 "$EA?A$& .0&  .(68.   60>@6(  EC2E8:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)824:<*$ *,24"$&(Q       ECBEHJDRT:,  B<JL6(  >8FH2$  2824:<*$ *,24" "$*,   T29_powder T29_powderäÂ…+ŠÃ@ƒÄ´BÃu|À}ĉ L‰ ä€}D…+ŠÃ´B@ƒDÃu|ÃMLE u}ÿÿ3ÌÌÌïðïñïñïð Ïÿ û;;<;<;<;;;´;O>lM)oy! ??> @;³ ù“ûuù•øQ¥:[òCCà,‡Z±Oo44o_o>�_9µQoü@'™?¹?›_¹1Q…1ƒ¿3 \W3Cð /òð5{_W ³õ{?W™Oÿÿÿÿ=¥èÜçËeü:ýÃìÁW&FlN=ûW¥€“ÿà¿ #ÆÅŒ1h§™OÉ%ÌTÀOÈ1ÒÿåLps^(A¼éÚ½TE¢7"ERâþ‹K:¨#æçÕØÁš¯|åØm÷:NäˆxÅaÿƒ{ì€`VߵČžƒ•j¦¬.¦\b'Få€fµÅŠYj óçèë;?ã2â ž¼„Êß9Ù.SMûÂ!£zà †_g‚¶µ¡ÜšíOfعc¢:‘Ö”[Æ[�_«‡ç°ZYppMâÅøÙtQ]ªÂˆÎ÷IM ÐO‡Ü+qúÈô/™æðôiÐŒôPtÉû{eYYU:À˜€ œÿC&%%´'51#hR@R@R@¤’Pþ B‚€[##5`«³³ª@ŸD!`,éÃ%ýCÕ5$  M3Eõu]×è²Lœ¶_¯ ­­Îh«j¼Do?ÊfL®¥æÕz````ÿLêÚïð:9�r¥¸Ö‘&·ËeÿÿüT ¬d8ÎêÞlŠl C? ³ÛÔlV«ý^/Œäü¹üG`}ÿ!¦aà!! ÿT+'¦�éXéFúØ·% mÞû}Gà ½€?ó‘’¨¥‹¶+}dãþ»¢w’}žÕhàÒ• dY¢ï’o_�_!��! ?Z$;úUÅ:]ò#…žæ 6? _o_¯_9÷Q"ü ÿ83ƒß3"4Ÿ_Y$Õõ�_Y»1O$$__÷]»¹¿"—�a½»œóVfQ–ó{¾ «i¥=‚æ¥ÿÀ é îcÿjßjE¬8~4Á>“ùÜxâ÷nö߃µÔgJ\¶ÒK-À<ü.‚ÿ²pµFÄNÆ8/É9™ñ¦¥Ð)¥���n´‰=ÕüMž“ú"½ÂZ±Jl0Þó¥ÐfÜbÍÎÎüµK?aî‰ÿÆÁ€f"‚Ð&¥`H�YY¦U�¼äur ÿ0ò°©É…MFÿ€}¨ÿARÏÃ?óWVUTQFýöûöýø ""$€$w:sv±O�VWå���þO÷½¿UT&½_½¿½´ &f:÷sà EB  ÿÀÁ€3P!`H�imú¯3ÌÌÌ/÷P�©©©û °Ï¿Ï¿_$ÿ333  //?__Ÿÿ3À33€ÿ€`@00Ÿ@00Ÿ@00Ÿ@00G ÌüÏÌððð000ÌÌÏÿ(H/ÿ÷ššÏi¿Ï¿Ï¿»»ÿ0//?__Ÿÿ€ÿ€`@00Ÿ@00Ÿ@00Ÿ@00G    000(H/ !ùfðû»¿»Q0»û»¿»»ÿÿ00//?_@EPA3€€```€ ÿ@|�€€��‚ÿßWUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿ÀÀÀÀÏÃÿÀ¿ÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿À¿ÀÀÀÀÏÀÀÀÿÀ¿Ì0ÏÿÀÀÀÀÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÀü3À@?ÀÀ€ÀÀ€00 ÀÀ€ü@?ÀÀ€ÀÃÀ€¿ÀÀ 0À€Ãÿ€ÿ```ðÿð €à```€``À``UUUfffB@™™™™€@fffl � € ÿÿÿÿñïñï û;;;;´;;;´;;;´;;;=;;x;;x;;x;;ïñïñïñïñíðïñï û;;;;´;;;´;;;´;µ;;;´;;wZ;;;;ð;;;;ð;;;;xyç¿( ($  7(K!!ÿÿÿÿÈÄŽ”AÐ�¡üj—c’’‘_`¸‹‹`“"�`"�`"�`"„L.ëUnM­Ÿ¹yñô³=CÞž€qtÛ7Zå„Ûéóv ¼·h0Ó“"[k%qq‰ ¥}ã‚ Yú„ŠNµ4z#M”R»æRèXæÕâò‹`{p…”¨��æÚR² �bCéÏA`È4õË@ÁÅɲøˆ?p€÷{•À5€¿¶5£ÃðÌ—ÒÐ캸g‚{¢¦IyfW{¥²È”¹°ñÒâClÄ›¼f&6G<œ¼ŽIÌðñÐÆ£ú䮋²�•Ëß½aœðt'„Œ)¾= ã�Þ§²b0…Z㲪›¶jü$0'›?™ _™_™Q3ƒ83ƒ¿!\3PÑ�߯- 29RF y7·ÿùŸÿ )6DmøFþð "¹•û•ûµûµ8Qc[ðˆSy^O%‚S-ˆQ3†I5N.ÿÿÿ,öbÒ4/&7O‡A/ÿH&oÙ_Ù_û?û  0Q…S¥ÿ" qG\ÿÿÿÿ:v*(2êžöÑ£ž–�‡ –­k z­šç—ç—ç—ç…“K0o­éຠœ+Óú£Úc}‹´/y°^(L³¹QN Z|Ý¡çqŒÒº·Éz ˜=ß²:FQ$/$¬¡ýhÄUr‰ÐWlêh4FŽa”W¾z­Oàåþ†ÈM¿(©L€SÒ[Ç%«‡ÖK]^fS«êäQéVp÷òGôŸfîYè.OK+(k¯L�Ìd©†©È‹b ·~‚AZi1d)ws0vÆÓ{ðC"üÁˆë½�*ÍÙA.îg³ž~LìïªÅ&Ç_õfSmÅûàd*å™3!¯:A)–§¥Y1@$$;;$’Iü¢  �9Oÿ1R'e 7P[I (nWý! Sr%#2&B@T T T‰‚} ( ä?DqCŽñ3ÿA �BVJ BBBB$—Xò ;Tu÷{ð’Ñ��ÿúÀFúÀFúÀFú… \vež£ôñÏ@,ÿlÎâ �lëîøß=øÛEôw TQÿY§ü7²_ê°ÔíÞ»·+[A•Ü„rá‚..ŽúÂD¦çŽXéF¦ÇoUÿüa€ ÷n;ÚóAxláÂßñÿ LdØù‹7r1Žë/Í—.˜»@ofè�ìÀ 1BBBb°¯S|'ùæby¼ßð® Ø�xi¶aÀ 3ƒ83ƒß"4< / RGH !V�Ÿ9ÙðÛ¿&&&òWð83ƒ8?ò(L2Q'zG1z;9v/=\@Nö€ô-ñÛÀ Q…S¥ÿB p2××õ]ÔÇÏolI Áî’yÏôÜÿÿðÿ™øä¾cþ¨¾¤ð?_0ö„àÆ ¨`ƒˆ`uT²cÇÕÕ¸SM%êia¿²½?ÒÑÍ‚J¡‘ÿÿÁq=¼†hà=è`¨¾¢C¢ýÁáilO)ü>3ÁKÿÿ~Ô,'Éy ­fló�'ß÷{z- {;O*é ME+.ÀCÿÿ ñ�ýÁ p8øþÿ9TÍŽ†¿Y”„½sðø®K?ÿÿmågæCS‰XûÀš•U]ÿ$ÿÝ_ÛYVUR"ÛÛq""`==zSPÓ¯ï�AÂOá¼ ½?"!“x!�?þc\ÿÝ·ý·ÿÛÿ]b"$*ø Óÿ<a\YZ?ÿï'?!$'&%"ÿð ™N=.K,?€@ÿò oj ***àH?÷:utmj¿ú¯ÿ_Ÿÿ€ÿ€`@00Ÿ@00Ÿ@00Ÿ@00G    000(H/ÿÿpUUõUõUõõUõ[ûQ»¿»»û»¿Ï00 /  S?__Ÿÿ€ÿ€`@00Ÿ@00Ÿ@00Ÿ@00G    000(H/UÅ\UÅ_°™ËËÏ»¿»¿»$$ $ /?__Ÿÿ€ÿ€`@00Ÿ@00Ÿ@00Ÿ@00G    000(H/PUÀ€€ 0ÿð€€ ÿÀ€€ 0ÿUUUUÿð0ÿ```à`00<0``€``Ã0``ÿÀÀÿ```à`ÀÌ ?``à`__`À00```?€ÿ`ü ``à``` 0À€```` ÿÿ``ðà 3`à```à`3000``à``0ÿ`ÿ``ð000`à```<0À````0ÿÿ```UU H€ H  ÿ;;;x;;x;;x;;x;0         ",                  %#% I                A?A    "*,&  .(682$  9                    2(&8 "$ "$ "$$Q 535    "*,&  .(682$  1                "*,&  .(682$53*50 2,:<* !e  ,*@>P 535    "*,&  .(682$  1           535     "$  " *,&  a   "*,&  .(68.   60>@6(   535    "*,&  .(682$  1           )')     "$  " *,&  %        9CE 535    "*,&  .(682$ 1       T03_rockT03_rock�A¤pßÁäÂðA33ŸÁœÂZ Z�AœB¤pßÁðAäB33ŸÁ˜ � 0À=ª©ª«¬€ø€«ª«ª?ð?SÿÿT¬ÿ«SþÀüÀýTªýTªý㩪ª¬ârª¬ª8᫪¬ªärªª¬ârª¬ª7TzÎ7Tzx8BÔ::<±è0::<¬ü^$}\%/ÞÞ:9›ò$}$"[iYk&‹]>�e0y Ã? =+¹²L˜±øMŠ$Q0O  Ã? ¦Åúcª[¢g½"Ufa  Ã?#$GÉ9Ÿ„V:À“Ð:WÔ"]=0 ?ð?`_ @_€`ÀüÀ_ @_ @_ ðU_€U_ÿ":UøUøU""«*rãî�ë½]g A¢Â€¿_Ð  "(  "( "T29_rockT29_rock“ÂáŠÃ@ƒÄ@BffƒÃ€}Άª“€}DáŠÃ@B@ƒDffƒÃ“†‹ Uw33ÿRRRRÀmµ¶QüÀük·¸ÓܶQܸÀüÓܶQܸµR<ÌÏÿ¤RRõRRRQQ¤RTRR÷TRR÷TRRRÌÿÿÀRRRõRRRR¤Ü¸ÒRRRRR£RRRIk·¸ð?ÀdܸÓmµ¶üQܸ–jçÿ{üÀüŒ{ÀüŒ{ ``ð`fUÆøføf```�f†ÿðiö€f¶f÷ÿ^"ð?À•Œü{Õ©ª©ª©q㩪ª¬q㩪ª¬ârª¬ªqrª¬ªärªª¬qrªª¬ªóóðÀ«©©ª©«¬«©ÿÌ ©ª©ª©«©©«ÿ0?¬«¬«©qrª¬ªÃüÀü©«¬ª©«:㩪ª¬qrªª¬â᫪¬ªóðqrª¬ªÕ$7T$7Tz$x"jóóðÃ)?ÿÌ )ÿ0?ÃüÀüV9V$x7Tóð$ÿÿ2‡ˆ±ëñµØt¹¹ä]yÒ5 o¨ݹ¹Y“$ªoooûFljjM ðqmo*AÑØ’if¨è®Ÿ!µÕ^Ûè­—•{k€³V&ˆœ`x„9²€êÇÈqOE…ooÏÀ*…5Ÿœ³îÀ0†.™¨ää¹PPüÑÑoP‹“Ì ÿð?ÑÌÏÿÿ.MfeHG37=1/7 /% 5 `k Z9\YlQj41TêRaPYJŒ˜ÅVcRoHIâ1KI?Ï/I A‰@Gž5/-$ /WE-Aÿð#EßM/e©>ˆ"©W:ëË(]mS4$$(Y †Ï)^21 ϹÝlk´ WÏÏkTï3ôˆÄKÏ#PfeÓÔ®Õ#ŸÉáU*¦�~ÊÐVzL1¿y׊e@ S?{;̱?áý‡ñ²¥[\;#ÿÏð%)`ÆCRŽÿðE"OÕu3ÿÂ@($! †Ï:)  "342‰‰„Îÿü`=�^( . o @ßðáä³Öù‹ v)k>@ aþ±lj±kl ÏÉ ãäÿD¡ àI“›¹¶ckJ;ç�d‡óƒ ÃÀø]ÞÞtÛ/�åJßtïö›àa �»w›e’1¢1¢ #ÿÿð!j3`-ÿð["Sd•v?üÀ _ À€Ç€ô@o_ÿñ0160P1 aýÿÌ - ”­*Xa @†@ß}¬E³QkHÉëFkiF WHiO&\§In­+* OK?@&«‰Ë7(ëcÿÄ8Ëqœá��þÿ/G)KR?a¶”Ÿ¥¨»ž>Bc›|Be*m®³´rK%ÿÿð%Irµ OA`¢üð! _=ÕT;óÂA(D" ! �Ï0 = B)@O>8 i7Àá8+ H@Õw?ÿ¸mÇ¿T}—((| HuƒÔý¢¿LSBS£ÝZ:½Ù*Ôº£¤Ìûÿü@ ÏÛ­ŽNÚGµJÉÓô#”ˆ+#¼¯9 @Uÿ 2S$+,<g#$/vXSR EcÿÿüП! ŒüÿßÀ_äêÝìçîr•j33ÿ /0üÀü0/ 0 /Àü 0 /Ö PPðPUfµ ù»ù»°""°°¿»»ÿð$C /û°» û»ÿÿx?/0ð?À / /0ü /Tÿ Àÿÿ À ÿÿÿ ÿÀÿ0ÿÿÀÿ}ÕüÌÿÀ¿À¿À¿ÿ¿¿¿¿ÿ¿¿¿@À¿¿¿À¿¿ÿ€___ €___óóðÃ`¿`_``_``àÿÌ `_`_```¿`ÿ0?_`_``€___ÃüÀü`__``@ÿ___ €___ ÿ___óð €___P˜`!@€b!í%Ødßø6ØF^Â@}Ä€¿°Ð    *0 >D&, :@&, :@&, :@       ,.0*(  :,BD* 2,:<.   $&(  &.0  © &(&(*,"(*,*,.0"024   Z` nt *0 > T30_groomed T30_groomedpÂ.�ÃÀ‡ÄBÀˆÃ@ƒÄ   ÿ‘ÿpÂ@ƒD.�ÃBÀ‡DÀˆÃ¾‘¶ ÿÿÿÿ=>==>{>>{>==|==L=>=>=>=>{==|==|==|=Ø=>=>===>=>=>>{õ>>=>{º=>{=|>{====|===º===º===L>=>>==|=>{==>=>>{>=====ø====|>{=|======º===º===º=====ù>{>>{>>{>>{==>=>=š=>=>=>·===>>{>=====º===º===º=====>=>==|==?===º=>{=|>{=|>{===>=>=>==é=>{>Ì=>=====º==ªªªªˆðw÷ˆø�€xxxÉ hÖ�o€xfx€`VVWïw ‡ÿ‡ø÷øˆ�ˆ�ˆ�ˆ�xwɈø†VP÷å|bhˆöˆ��ˆˆˆøˆøˆøˆ`÷÷w÷߀eeo€xxnˆ‡ˆˆ�ˆ�ˆ�ˆ†‡‡ˆø�ˆ�‡ø÷÷ø÷ø†VVV�^€‡ˆˆ�ˆ&UUUU Ìü0©ª©ª©«©Ã33?©ª©«©©ª©ªÿ 33©ª©«©©ª©«3üÌ0©©ª©«©©«ÀÀÀ©«©©0«©©ÃÏ«©©«©©<ª©«©© «©©À0ë©©«©©33«©©«©© 0Ì«©«©©3«©©« < ©¬«©« Ìé©«©ª0 ð0©©«¬«UUUU Ìü0SÃ33?SSÿ 33S?üÌ0?ÀÀÀÃ?0?à ÏÃ??<* ?Ì0Ã+?333?? 0Ï?3? < S ÌÃ?3<ð0?@÷wuU=Æ×à“—–ÍØÖ0/ØÃ33?Ö.(&&1A('(ܵ÷Q�âQÁë?ê(îRQR˜('(&&1ÙÍ˵[\wø–•Ö,~0Z&Ö&&1ìRQÙüòþý±üØï¡9`€& Ë&€&ü0Ã¥€&XŠ&1(:uQfƒ¬ÞãPOsœü?ÿîl&íe1ܵ(31&(1 < &d11& ÿÿ/<˜É¬…?"Q0ÿüð0RQZýÌ1/0/÷WuU/l/%0! Ã33?&@$34C4S 6&343"! 0?DS(' .0 Ãÿý0034721ü 4E' 0ì0à :4E.=$L34G0?ü?ÿ& .=030 <   ÿÿ0+# 4ÿüð034 -÷wõP#w,D«GeéÚ 2îòA𯰥 �”«É@/S3 ÂX“Z {wÞÝSTjú RõC>;q$P˜à:ðÖST?üCô¯ EF4-�ÖÓ¸ÑíTµÿÏÀ•¯ÑÞը؀DÀCüóÀSö±ÕÖ#$QÝs膭ûWó0¤ÙÍ€Ð=Q¿�ÇŸj ÿÿM=dŠ[ž^½“?0xíýSuuÔP<÷þü- .'-9P9-P=Jª=·Q›T"VKêUUTAÿÿR?)N7>X``ü !"1n )*ÿÿ//<):9HO'~÷uõPZ#¤ëOç<iÊð'#ðLK±ÆdQƒŽTsƒÊÝІ�9:ôó½¾½lR´]ÿÿüT¥šƒxrÿ\«Pü?@“”az-óõ5,NÞÞèÿÏÀùD™b§šWÀXð!"7ò¹›�`q>6 ¨áI÷ö=>8úíšÝÿüñÐST*êãÝÞ×UUP9 y¼+"Ãz}B`$“ÿ`=8,#[>0m8ÿÿü/It-K $7˜$ÿ\$}^ÿÏÀ™¶G9Qj€` ø0]‚ûÿÿ g9: ¹œ!€0Ý`¾º¾¾ » ðÌü» ;0/0/0/0/`0(W0(W0(W0Ë ¼ÀÀ¼¼»ÿÌx¼ÿ¼ûüû»¿$»¿»¿»°ÿÿ$$/0//00_0/`00/0/ƒ  Ï»»û»¿Ï¿¨0»»»û»û»û$$$ /`//`//`//`00/0/0¿ ¿»¼Ï »»¿´$»¿»¿»»¼¼$$  {@00Ÿ@?p0_?p0_?p000/0/0/0(óÀ¿¿¼»»¿»œ$TTTTþ0ÿþ€0ÿ þ 0ÿ8�ü�€0ÿUUUU Ìü0`€`_```Ã33?`€````€`_ÿ 33`_````€``?üÌ0`à`_`````ÀÀÀÃ```à`0``à`à ÏÃ``à```à`<À```` à```Ì0ÿ``à```333à```à``` 0Ï````à`3``à`` < `€``` ÌÃ`à```_3<ð0`àß``_`@@UU   �! ÿÿ=º===ø=======?¼==?¼==?¼==?=>{=ø====ø=>{==º>{=====|==|==|==Ø>=>+>{=|==>>{>====?¼==?¼==?¼==?==>=>==|==É=>=>{>{==º===º===º======|===º===º¹>«=>=À>ªª�ˆ�ˆˆhˆøˆøˆøˆ€÷øÿøˆ�‡ø�ˆ†�hÖ�h÷‡f÷øø‡xhˆFøˆøˆøˆˆxx�ˆø‡÷øØ�ˆ�ˆ�ˆˆhÖˆöˆÿ€xVÀUU0 ©©« ©©ª©0 «©© 0 «©©«Ã ©«©ÀÀÀ ©«©©Ã Ì«©©«©000©«©ÀÀÀ3©«©©«UU0 ? À?0 à 0Ì??Àà À@?ÀÀÀÌ?à ÌÀ)?0000?ÀÀÃ3?ÕU0 11”/ À1121Šð X11/<sšðÞû̼aˆÿÀà À9‰‰‡cÀÀÀ̉‰‡c‰ÏüÌÀ‰Xß°hø1/”000ó11/²x¦4Q{Ëj nRuQ}ÀaÕU0 2 À0 0.=&5-0?(Àà À92ÀÀÀÌ2äÌÀ0000ó :4U.M ’32KÀ2ÔÕÊúÎÿ$ÀPI1|=3r3/d'+Tü 9ÿÏóRG-~G1z_`ÔÁ@6,   "$"$ "$        97:9@>< FH2(  :4BD.   60>@.   -  9 7*90*,24*$ *,24"$&(I =     1/218:4BD.   60>@.   60>@2$  *4"$&( -         &(*, &( "$ i    535 "*,  & .0*  2,:<2$    2 824:<*$ *,24"  &$ .0 1      6<68>@*$ *,24" "$*,  %)53 5     !6!<>8FH6(  >8FH6(  >8FH2$  $=      BHFD NP:0  >< FH.$  20 :<&  Q       53"5(*$24&  .(68*  2,:<2$   2 824:<*$ *,24"  &$ .0 E   &  .(682$  :4BD:,  )'2)864 >@.$  60>@.   60>@.(  T30_packed T30_packed–Â.�ÃÀ‡ÄB¥†Ã@ƒÄ   è Yè –Â@ƒD.�ÃBÀ‡D¥†ÃYÿ }ÿÿ3ó3?ÔÓÔÒÔÔÔ{ÔÔÔ{ÑYÔÔ{ÑYÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔ33üóÔÒÔyYÑÓ«ÔÓÔÓÔÓÓÔÓWÒÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔÔÒZÔÒZÔÒÔyÔÒÔ¯ÑYÔÔ{ÑYÔÔ{ÔÔÔXÓWÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔ«ÓWÓÓW{ÔÓWÔXÓWÔÒÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔÔÒÔyÔÒÔyÔÒÔyÔÒÔÔ¯ÓWÔ²ÒÑÌÏÿÌYÔÔÔÒÔÔXÔZÒªªªªhho~†÷èf†�†�††çPö©eex~€``€öhöhöh`€``øføføf€`€Ö�hoho~†÷èohm^f†�†�†�††÷å~ö^©m^hf�f�f�f††o†o†o†hhohohohfõæøà€`hhÖЀÕUUU ÿÿð©«©©ª©ª©ª©«0 ÿ©©ª©ª©ªÿ©ª©«©©ª©ª©ª©ª©«©©ª©Ì0ÿÿ«©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿü00ª©ª©ª©«©©0 «©«©©«©ü00©«©©«000©©«000©©«000©©«0?ÀÌ©©«©©ª©ÿð ÿª©ª©ª©«©©ª©ÕUUÕ ÿÿð)0 ÿSÿSSÌ0ÿÿSÀÀÀÿSÿÀÀÀÿü00S0 ?ü00?)0000?0000?0000?0?ÀÌ)*?ÿEõq�ú"‚ŸØÊ O YVŒ4™N½œWÅ9¸ê_`}`¦œ‡&âîc&“%©&íO8|6²Òg¶–3DCÿÿÌDCDCEFEŠFÎðððÍÎÍÎÍÎ ÏÿïŠECŠECŠEEŠEEÄÈÃã/ÿöNÝ�ÃLU)Ãø„íjÄ�Dj‰‰ð| zßp¡zEŠCEŠÏ>EŒÿü<\4545454¹d$ Q'j-&>?ûýùýõø..çü)ù0 Ñ0???JIFA>>;:><000 M &004<MÐÿòq?u ',¢r0h ñ�[•m¸:�stÜç„âšNt§ö¿üÐÇjrAo’ uF)Z LÈâÞ—zÿÌÀg[ÿÀžèÆÕˆüüüwˆwˆwˆx‘•®>\¨;#d#ô_ߎ0ÿ"Ýð¢Ÿ?8E*???yˆú|Š«’?$¯Œ<<“”ËÌ<ñÿ+,)òR@ôô7.cB"?Ïà;[XSj`7À   ¡ À}ý€HLøøøKJKJKJ?ÃÀI!l=)h >;  }>>>2JKJML>ON<À_Õd#‘ó©æò`ŽÈ`ç|جè2ÿXoêé‘}W“êÙ!¿CŠ­ÿóÏÀŽÛè“/X‰R™´ež§5¦8ݦ8ݦ8ݦz{—.¨!ß|œE›"B¯~ÚX4øTº4º™�.––ÿüßXöŒˆñ§<=¥¦£¦<???8ݦ¦´¦´¦¦?ÿÿ“¦y¤ÿUTÐâ^ªÊ¤, ÷B�x�ï—aŠY@_Õ@?ó!4¿!ýòß\'<->5ïïï)$?2(ø#ÏÀ+J™˜µŠMü�¾>\4545454�0 7 "=0q‚g†a@3 H?$ÿüM:;~åx<<>>>J45432>ÿÿ10Kq†…n…Z …xUBW\;T ªÿú¯UU_kUöµU  ›¿›¿›»""" üÀÿ$4'('@GGGGGG   ' ÏkUöµ_U\úkU›¿›¿›¿""" 4'@'@o0/X?/XGGGGGG ' ' ÏüÌöµõ'è°PPY»ûð�@@Àþ0ÿ þÀÿÕUUÕ ÿÿð``¿`_`_`_``0 ÿ``€`_`_ÿ`_````€`_`_`_````€`Ì0ÿÿ```€`_`_`_`ÀÀÀÿ```€`_`ÿÀÀÀ_`_````ÿü00€`_`_````0 ````à```ü00à``¿``0000`à``0000`à``0000`à``0?ÀÌ`¿```À`_`_`_`à```_`P €ÿÿÿÿÔ(ÓWÔXÔÔÓÓWÓÓWÒÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔÔÒÔyÔÒÔyÔÒÔyÔÒÔÔÖÔÓYÑYÔÔ{ÑYÔÔ{ÔÔÔ{ÔÔÔÔÒÔZÒÔÔyÒÔÔyÒÔÔWÒÑ€ÓWÓÓWÓÓWÓÔÒÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔÔÒÔyÔÒÔyÔÒÔyÔÒ­ÓÔÓÓÔÔÓYÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔ(ÓÔÓÔÓÔÓYÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÔÔÒZÔÒZÔÒZÔªªªªo^m†Wå~†£höhöhöhhføføføf††ö†ö†ö†h`^~†÷èohohf†ØhøhøhÈ÷å~W¯åhf�f�f�f††o†o†o†hhohohohõeV`^hohohohf†�†�†�††V£VV^f�f�f�f††o†o†o†hhÖ�hÖUUUU0ë©© «©© «©© «©©0À0©©«0ÀÀ©©«ÀÌà ©©«©©«0©©«©©«©©«© Ã0©«©©«©©«ó©©«©©«300©©«©000©«©0à ©«©©UUUU00à ?? ? ? ?~3À0?00ÀÀ?ÀÌà ))3??? Ã3??ó+)3000?0000?00à ?×ý×Q‡EŒFdFFîCŠªCŠÍÎ "ÎfÎ"Îì ðËðìˆEEôÌCEòˆCEòˆCE¤P$OÙÅðQYŠ¡0 ½‡-8š¯\ÂS”ûI; ùDÅÅàÃÜ»ÄT\ CŠðEŒªEÿÃÃÃŒîFìë Ð"ÎfÃÎìððËìˆEEôˆEEôˆEELjC¿}Dò{Ã(rx\¢µ =|QÞòÞV»æw½t‹9÷WT òPÆtÒç´Óð^�EÉÿü<''<''>'Õý_ð0?› # $æàÏÏÏÀE­ôE³úE¿ùE´P í0Ð ß ¦©.  ùeìŒXÔ©'$+ ›œ_Äò½E†–Ñ®Âù+ê “HuôÑ0KLLÚ óóó¶Ò³È­ôE³ðúEÐ4  ñ" ©.ޝ4¬’=Àí*!Œ(í{Œ¸ â‚’GÛ"|ŽÆ?mC®A‰¦�])/~´îY # æàE­ôE³úE?™àE?ÿÿ¾" ©.”Ç4¬ûPU^µWðƒ,:���€;:;:;:8.-.-.-.þÿlõ†Ïd-)  #4E-ŠC%ÿÿÀ†%A6Kóãã,8;:;:;à:ÃÃÃ8.-.-.-.1 ,- H%"Iÿÿ/;‚;= ˆIA~?- >>>,:;:;:>;:<óÏ8.-.-.-.Õýßð0?»åGHnDÏÏÏÌŒÖ:Œ¿4Œ— Œd cú3$üÉUó‹!²Å30=Ëì«�ì}18– –�)Ñ÷63£Ó�r΋DÙÄ(#`ãŒB Pµ‚LKMïóóóf2Š¿f¾Ö:Œ¿ð4Œdc+Á3›Ñ3²Å$®ÁI'2ï®áO»‚¸äK+› r‡‹IÃþuaµ]öçOW‹F_L˰ËÿÀ è†G0nDŒÖ:Œ¿4Œ?0kDŒcd7Ñ3²ÅÞÁI¯ú•j¥–0'� íííÃ?e7äs\1\1FØßøûúùøuðUZÃãÃÀÃÃà  Ðõó½Ÿ v#dOfoDO¯X=3dO³ÿö�~/L><<>ðíÐíUUuWà #gÏÏÏÀŠqˆkˆ?GˆÿöèHÛ"®=D `oÿÿ/Py=�©¡0ÿÿÀ‚�§\õ`‹óóócµç³ÐqˆðmŠÃÃÃPiW{î96 Cÿ‹Žþ‚;ºê;£¶f™u???#gŠqˆkˆ?!gŠ<óÏ•UY—0},P���€QPQPQP444HÏÏ ?1rE)ÏÿÀpKH_ããã,PQPQPQàP@@@ÀÿMjE hA`#3>>>,PQPQP>QP@4@4U_õUð{%  /uÏÏÏæQyÌ—¸‰¦ú[úG:ÃÞñû•{ðG/fÒ´…[Þp?q‹yáøþ�ÿ€|¸_ÑÃÃà Àóó󅦑¦‰¦…¦ÑFÁ—©Tn{ãJ ™(=!îð«?úåK:�›}„qÿðð`c` ŒªÎ<<<  < ?ÿÿ‘¦‰¦…¦/uYŸuYð],VVVN0���ƒ101010 95g\ CV[D U\ur1?h'B'ü€B5 ```ÀãããN01010107íà“~ï_Ã`ix=:ÃçÀ`943%(```<>ûïN0101010¿ú¯þ /X?('@'@GGGGGGÌÿÌÿÌÿÌÏ'''úPkkUöµ_U_UU›ù»ù»""  @'@'@'@GGGGGG ' ' 'üöVePkU_óU_U_UU›¿"›¿›¿›»ÿ""L0GGGGGG   QA0þÿÀþ���Œÿ0þa†UUUU00à à```à ```à ```à ```à@3À0`à``00ÀÀ`à``ÀÌà `¿`¿``3`à```à```à``` Ã3````à```à`ó``¿`¿`3000``à``0000`à``00à `à```UU ! €@!ÿÒUÔÓWÓÓWÓÓWÓÔÒÔÔÔ{ÔÔÔ{ÔÔÔ{ÔÔÔÔÒÔÔyÒÔZÒщÓÔ{ÔÓWYÔÔÔ{ÔÔÔXÓWÔXÓWÔÔÒÔÔyÒÔÔyÒÔÔyÒÔÔÿÿÀÔÔÒZÔÓÔÓÔª ŽeÅ\UÅhhohohohf†�†ØVöà‡æhöhÕÈÕÈhføføføf†�ee`U 0ë©«©000©«©0Ì<Ï©«©©«©ª©ÀÀÀ©«©ÀÀÀ©«©3©«©U 0Ã0?0000?0Ï<Ï?ÀÀÀÀ?ÀÀÀÀ?Ã3?ÿE$Å}ñ4p3!Þ½þºߺ0Uþvt3þ»¥&H!Ü__ìŸE¬œÄÃÄ€ÎgÎΖÍÎzzÍÎÒÀÀÀÀpËï³ÿÿÀpÌC¬ˆˆˆÄˆ{'L%,5&/' 1 ¿›¿»Ÿ¹Ÿ/02.9 )CÀÂÃÛ˜ -ÀÀÀÀ@ÿÿÀ@%)>'%'ß”þ•€p @çs`Ë7të5ïaã÷) ÝjÔÚÇÄ1çS-ÿÿ<ͤƒà@ÆYŸFòs¼Û”¾YR(C°9ÃÝІÀ³ÿÿÀ¤#·Z�¸Ø9)—1*I"=5¸¸9?ÿ J+\CZ“hÿÿVúÁû;:/.À"óÿÀ8.-,-,=<ßEk³ÃûP­0({´=5•J,heÒÌR•‹D+´ÿÿ<¤´r')3·Ž„…^™v’S�›ýõdkÐeÀÀÀÀ² ÒÿÿÀ„Á£‹¨,üi¿›A )xû?,h0ÿUòÛð!ÀÀÀÀ óÿÀ!  Õÿ÷ÁC8 4EþýÃÆ ? Aðÿÿµ3‚ÖªÆ9OOÚW?°6Ýs 0Zt À„óÿÀ=>yz}~U 5!¿ÿ V3'\;<}~øÿ_ßQPGF !# À64CC@ߦI÷Ç5Ch\h8¬ÑCòßF¢!ÌY.>Ýv~'˜Yë”ÿÿDl¯ûè!"^Wkf¹JpôÝÀÿÿÀQÝÏ€6KLWß'L'®‹Â¡ üñu<to<ÿ9<ðö„€ûÿÀN0/.-.ABúÏV¶kf¶UUç_U_U_UU› "  o0/X0G/0/0GGGÿÿÀ 0ÿþ!™€U 0Ã0````à0000```à0Ï<Ï```à```_`ÀÀÀÀà```ÀÀÀÀà```Ã3à```j�ÑgÎfF“ ƒÄ€¿í Ð     *," *$24  6@BD><   N@Z\J0 RLZ\F8  NHVXB4  .8:<64   F8RTB0JD NP>@BD28 ,.0*(   :,FH>$ F@NPF8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64  >8JL:(  >< FH6,  >8FH6(  ]       EC6E<>8FH2$  :4BD2$  :4BD2$  532468&(*,a        EC2E8:4BD6(  >8FH2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  97298:4BD2$  :4BD2$  :4BD2$  *4"$&( E       5 3*50   "$ E          5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$    28-     2   :4BD>0   !6! < :8 BD.$  60>@.   60>@.   5       53"5(*$24&  .(68*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  A?"A(*$24*  2,:<*  2,:<6(  1/218:4BD2$  :4BD2$  :4BD2$  *4"$&(=535$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  5325864 >@.$  20 :<*   ., 68&  )     97"9(*$24&  .(68*  2,:<2$  53258:4BD2$ 64 >@.$ .068&-,  97"9(*$24*    53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$ .068&  &(.0  T30_powder T30_powderäÂHÁ�ÃÀ‡Ä´B¤pƒÃ@ƒÄ½ ¹½ äÂ@ƒDHÁ�ôBÀ‡D¤pƒÃó$¹ë$ u}ÿß3ÌÌðïðïñï û Ìÿÿ;;;x;;;´;;;´;;;´;y;;ïñïñïñï û;;;x;;x;;x;y;;;´;;;´;y;ªªªª ðàðà¦@ @RD’D’Dò`1cE6$ð–3ððàððàð¤@@@tGDtO@8F83ƒ8ðàðàðàðàýþþú@@óCDD8KDKDK8Dïïþú@DGDtGO$I$I!Hdqdþþþþÿ ÿï¤ c DD$T$4ó„×WUU©ª©ª©ª©ª©ãq©«ÿÿÀÀ©©ª©ª©ª©«©ÀÌü0©ª©ª©«©©ª©qrª©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ü0Ã3ª©«©©ª©ªðÃÿ©«©©ª©ª©ª©ÿÿüª©ª©ª©ª©ª©«?ÿ ðãä©«©ª©©«©000©«©?ð0ãä©«©©Ã< «©¬«©« ©©ÿüãä«©©qr«¬ÿð<Ì«¬«¬«©©«¬«ÀÏü©©ª©«©©×WUUTSTSTSTST7ÿÿÀÀSÀÌü0SSTSTSTSTSTSTSTST7Sü0Ã3SðÃÿSTSTSTÿÿüSTSTSTSTSTV?ÿÌð9?)000?ü09?Ã< U Vÿü?9?ÿð<Ì)ÀÏüÀU?ÿÿÿÿ`¤L±Û:ýú²ö”œ]‘]]Å]X“o¦Uqý£¥î•Š$j¦5z:\3!üÁÂÚ Ññ Oÿ_˜+—¸$uÃVì¹X6Õc™ce¸p<ðp;éi¥iºkvjpiDÚ Ÿ«CŸAyÓ(óu‘›ŒŽ6G3{Ó±6{Öåµn;|¯°yu \&&úž65Ü5¦Ë<;[,üòûÞ OÐ75è¨0œ¤ØoúÓì$‡™™eh 3Œ…öñÓtrÁAûp‹(w³iH^hDcÈs9°Eå°{$°Xù›ý‘!#!‹�çäbÂý˜'º)þü$“ß’‚ï»ÎU�]›p¤¦5|WËëꪫ#"+   3£©%_÷_qðqé°+!+L) `%F#>$Oo™›ùi%)$©S0Q (›±KÿÿÿJ%F+J+J+J-J+J+J- ?ö+»ÿðqj 9ÏhÏH¯jÿ%#*"úÿð™›ñ )'qpC’Bÿ&  ")ÿÿ5ÝßþÎþ;.!úøöW¿÷ùü—0ÿÿ™�ðF)ÿÿÿÿ0{ýÃ$tGØŸ#-І‡:qt¾·0içaRÕùÂÎ[gRP?l5 $óÄ£G÷ãü(A®zßµÜÒ‰û3Ÿ­RÌ ’±•ÅñËO‹_r;ŸÙÏê \-›ÏÒÚI“nÄùöh)�Ó¼à ùØòÿpqs©:]Q{%v†ýF›oŽ{@K5¥u!41¶}[ò0NA Ø„n–ƒ™+¯rõ›½‰ÖR-ª¼[£4›2ÒÚ–Y!Ï.L5÷ýf£l {÷i(rH0ð[NC¶.'¢bÓ†SXûʧþ0�•§ˆ °Å+O²röœõ¡Ï;ñU@|°…è8xÿŸ}jª©‘ð #5LS1ˆ;El) # ü Aÿ4òAGòòPýÕý5roô�f´�Ð" ROÿúö4·#!$C<ý?ý_�û„(*ïøÐý_³(郅dwÿñ�¿þìòKãϪ«†T ïÿÍ0p¡TCé–¶ñöVÛuÔ0}´Šº"WÊoöU"¢ÿ£´X+9¡5âìt'šØM]U•y7Ì0PrmlgdIV-,+&O(ÿ’Hf&%BOãßÇî |ïÿý& €a�€Ó4ih_ó f+ @�™?-ÿ& ý_ø g/ÿH!wïÂP&A2AŸÿúåßÏ/LE._Ji|e~ UÿÌ÷$l-OTimº«3ÌÌð/PPPÅUõUõUû ðÌü¿‡üÿÌÌ /  S?__ÌÏÌŸÿ€ÿ€`@0o@0o@0o@0  ¿»û¿ððð000ÌÌÏÿ(H/ÿpPü¼»»™¿»¿»¿Ï»ÿ$$$/?__Ÿÿ€ÿ€`@0o@0ÿÿüÌÏÌÏËo@0o@##   000(0ÿÿ÷–o/UU » ù»Ë üûS@ETÌ€€b ÿð€€a  ÿ×WUU€€€€ÿ``ÿÿÀÀ``€`_`_```ÀÌü0`€`_````€€€€€€€€€ÿ````€`_`ü0Ã3_````€`_ðÃÿ````€€€ÿÿü€€€€€?ÿÌðÿ```_`à``¿000```?ü0ÿ```à`Ã< ``€``` `ÿü?ÿ```€à`_ÿð<Ì`_`_``¿`_`ÀÏüÀ``€````à@@UH™€H€@ÿÿÿý;´;;;xy<>y;–;;;<y;;´>y;;´>y;;ïñïñïñïñ òñï ÀÀÿÿû;Ó>y;;´;;;xy;;;Z<;;;;;´;;;´;;;ð;;;;ñ F<<\ñïñ ù=ªªêªKDG8GDéƒ?ïþú@–3ô444ñdqdJqdqdþþþþÿÿê`BD’ E!óDCC83(„ôD3ƒGDDB”B”B”Bþÿê`$D´D´D´DD0BHDÔ6D“dI6  `@ó„KD,G8OC„D4DB”B”BÔD/–3ÿþ¦UUUU000<«©©qrÿðãä«©©qr ÌÀ«©©«ÀÀ©©À?ð «ãä©«©©33 «©©ª©«© 0À¬«©«© ©«©ÿÀãä©«©©ÀÀü«©©«©¬«À0©«© ©ãÿ?0ä«©©«©©«0 驪©«ÀÀÀ0¬«©©üqrãä«©©UUUU000<ÿð9ÌÌÀÀ??ÀÀÀ?ü T7?3Ï3 ? 0ÌS? ÿÀÀ7?ÀÀÏü?SÀ0 V9ÿÿÀ0??0 ó?ÀÀÀ0ÿ9?ÿÿÿÿoÔA† i´íà¿üN}­­i¼rìɽ‹™c/eÕÒ0IŸ¦5p3p±íÇÍôÖc Ó <³ö’r¢òYz¯$Ģݼ¿ˆ¦…QO¶�V~�KùðÖ›9Ž5ïÜhw¶Wµi>¦j«²!\ÖÕr4%Â{Èš"GÞð玣Ü'�q8è 3p&&\_…[±&B[’¸çoÏqGäE{\’ƒ‚P.þ»áicÅòhÅEg: ‰Þ*òã`t:’¬Jö‡`ö…õ"kšàiÓªa ®ûVo:¯:ÐÈoŒ¸~ƒç¾ÁÈÐÕ:j€¹ô#W!<zF½­­yRê¯êª¯��$ÿK4¿öÿò¹™ÿªJ%'(p��ö4ò""'9 #: !&7  "ð÷°+�ü&(üúîúÏøÎÿ3314Oð›»ûsËq©q‰Qð™Ÿò@!FoëHúT�  $)5!Ww{2ÿñ!90ÿà ĮòŒòj÷%!�òÝöß½¿8BÿÿÿÿØqrÊׯð?ѫǢ¤ù¤JÛÞ{MBÒ“8ölÊÑI>ÿ÷öÚùeq�#’ÂDÿÜLãoy Òë[Þ´áöÈ"äãÕUDJè4د¡¤ŠŽ)¸=ÁaÛÌ‹cs »Æ®dMj‚™Ø·OË“ñ ïºiÛ_Ð mRC–w{ôFµ<”;Oöo˜Í¸hea†´ F¼wwé´y”à)Ž“+2O{Lgk„vŸÛëKiÍòB�3+ÈCîWz"-˜ø.Í…©v}/ãO4ôÀ¨‹¶‹G[Žbaû埙f™’L®}¨µ™¯J4Rý<ÉÎ ðå L}ܨI…‡ëˆÉ7^¢øŒ�kn¾{ 0 *( Oÿü ðÅ$õEEeú÷ôõ%/ ÿÿu$3õ¡0®¿û÷Rk)$4'1÷Ÿöÿžù\'oïßß $ÿð€ »ûÿ&, . \93 j#G < 5 0!³B÷ÁPT*. Ÿ-j #,TÿŸÿõÓA#,_:!^ 4 4 6Îoû@ $ÿÿÿÿö$Œ˜Ý(G¿§,Ê­nÛ¤ëï!�8œ½=ûÌAdïp@Âu×fJàÒñifÆq¥ªº¦à#7ý›D•_>BﲪuŒ5b¡uÄåxY2V‡h4O?¼ùFvGzúáÚ¯gæ\u[æ)Ï2„Ij¸ÙÄ?§šåtvÌZ'LÄ`L" êaë+šèNÚø;T%†I®õ&Rž|a2k››2]þS)e ùêHº-ź^ÃØ0ÒáРIÖs@ÔYÔâL¥Þ*¼ þ�N4¶!£‚Qq±Ä|l$<ö(÷Èmų{²½š»ÆJ”M~/@¹&ÛöÝX æzOÕ!´’í”!”PÐ:½kƲãhªñ‡©Z¦ªBBÎ)¦µ@c0ÑÆó¤±`1 R‡y/ŸφpM²ÿe#&þ$DB'PF%r"èê>QbE3浯1@$P#WÏÙñ&!4IÿOïÿ‚E<"T RBp"@sAÛýz÷σ¾>v¼ÚÕA½éªÿÿÀ6õó¶SSm)2¶fÿÿYVžS[½„ÿ'AŽ¥2½�tú¯P `ÿÿ]¸k¯,éÑL W¾a––²n?Û]Âóo"Xil¥I¢?ÇåÞ§û 4ÿÎ +ñÅ‹ [Âìmð¾°¯øý[N{Ž ÿ@ Ù”¡ýü%öÊtš3”äýÿþ˜íáQ�аÍmTÜ®N@‘!¶) ¿à?ÁÀl··ýYZASÖLô#u¬Ë÷–O?�¾áGå,ä‘‹: Wåuu> 66! ¿Ï"ÿÿe! À4ÿ?ÿ?3.F-9ðŸöÿßýd 5  0"À,02þ\\ 6Hü<95p-.?À=!"_<'L FJHÌ/ 2~¯ïˆ=./¿Ÿÿ5,�ƒ_0v¢tùo‰^Iƒ¹è4˜@Kµ%èÍ~p­¬nd0%ðÃ…’‘ˆà¾Vtî«‘öDQZáŽãºœ\éÿð;â¼xÿ$65!Böàôäùêÿ544 *�÷M’”úaìVëµÔ?øÇ™fï]?G1¼?OLÕ]§%”ÌœE¸u6ÿÑÕf0ðGÛ\ºÖïq›èb÷F² a1FºI<ñ?îNM�?¿)ÿð?"!/ZŽ�®•íx ^åeW_Z$ $$“ø×ÿ$ w~ÿýë©ÿò&’1;$| 0Y^YX%ÿô$±´&UôBf „$ �†. 8 : oš-/òü¿V+GG, &ß0U\Uòüôþa´ˆ!>ucmÄÿø5@�„gÿA.ƒŒþªíê¿»¿Ï¿»ÿü$/  c__Ÿÿ€ÿ€€ßŸÿ`@?@?@?@        000(ÿÿÿpUUõ0/\Vü»¼¼ÏÌQûû»Ìü¿»»G»û»û»û»ÿ$$$?_ÿÿ?_Ÿÿ€ÿ `ÿ `ÿ `ÿ ``@?@ Ìü¿ÌûüÏ¿/## 000(0/pPüû¿»]$¿Ï¿¼û»Ë0S»»û»û»û»$$0 ?0 “_Ÿÿ€AE@€€¦f€ÀÿÀà`€~``$0 ÿ„€~UUUU000<```€ÿðÿ```€ÌÌÀÀà```à`ÀÀ``À?ü ÿ```à`3Ï3 ``à`_``` 0Ì€````à ```ÿÀÀÿ```à`ÀÀÏü``à```€`À0``` ÿÿÿÀ0```à```à`0 ó``_`à`ÀÀÀ0_```ÿ€ÿ```àU  H@€€$@„@€@� ÿÿ;;;´;;;´;;;´;;;;;;<;y;;´;;;´;;;´;;;ïñïñïñï>ðï û;;<;<;;;<<;L:$ïGd𠼄€ð f?ÿÿª¾Ã£AnÉ Ü�沉Q™¯©S§Ò`O[ĵËÖ$  “’1ÚÕ¯ÔHJdIµçPZ‡Š@ÚÿÿÀLÛèë¬ÆeÙ$ãeƒ¿ÿ $ ÿÓÿ° "4K61-F+FS%R ÿñ_õÇ.C $ :ÿ(ù/?“ý‘ûSóÝU ×o•)P£)#ÍcD\4ËîQ8^ÿÿ{SI‚m}N☤SYÀvý E^ê‰oš|h0c]a=} 0±ÁÛRŽ�B®¯$èöJHîºëîÖs0á¤?¿/«=Em ~»?ÿ'& 7 $uئ¿§Êûü�l’ê³Q7úB�˜·¾6gÿÀ"0@š×å<×]_:8B ¿ÿBjI$/IB@€4 QT2ɰ*�lÍÀÿ[21@G</HC` $5ÿÄ„˜ @’�$…Ž0 .6$)&Nð$„&·d»êmÿ `ÿ `ÿ `ÿ ``À¼¿¿ÌüÌ4## # 000(0ÿÿpPVVU/û ËÏù¯»»9"¿»¿»¿»» $$$ËË¿»û»ËûS$ 4 4 4 ÿðó__Ÿÿ€ÿ `ÿ `ÿ `ÿ ÿ ¿ÌÌüÌüÌü###ÿÿÀ 000(@���€0ÿ!!!L€~ÀUU```àÃ3À```à`ÀÀ``ÿó0ÿ```à```Ì000à```à000<```à`Ì00Ã``à```0000à```?ü ÿ```à` 0ÌÃ``à``` à```ÿÿ†nÿZã䠃Ā¿Â Ð          &("  *$24.   60>@:,         (.,    ,*(           &("  &$ .0*   ., 682(          ,               = G  }  "$   "*,"  *$24         535     "$ " *,& =                   " ( "$   . :<6 *.0  &,&(*,U          $"42D  ")(')$ &(" "$*,&  &(.0*$ A           %#%    " &(" "$*,&i,        =      "( *$24&  .(68.   60>@2$   %#%     "*,&  .(682$  -+2-824:<*,.0 "$=         )'Y        ", - 53 5      ,*<:L 535    "*,&  .(682$  28&,]   &  .(682$  :4BD:,              Q. 4 60>@:,  B<JL6(  >8FH2$   2468&$&(.0  &(  M     &, .(68&  .(68.   60>@2$   535    "*,& *( 24.$  % = ;&=,.(68.   60>@6(  >8FH2$  T30_rockT30_rockœÂ ·�ÃÀ‡Ä@B33‡Ã@ƒÄ\\œÂ@ƒD ·�Ã@BÀ‡D33‡ÃÔÌ ß]22/2P!baE2¹üÀü!ba‰@a"@a”2I2òÌÿÀü»baë@a”2I022üÿð‹@a”2ü`_<ü?òq@ašYÆUƵÏkðõÅU`_nRüÀü£öV`UÏeÏ&<ÌÿÀüR»õÏeÆUÅ\&üÿð#& ¾<ü?¼bu÷ ÌÀ묫©©qóü33㩪ª¬«©«©q᫪¬ªqrª¬ªärªÿ3Àꬫ©ª©«©ª©ª©q᫪¬ªqrªü 0¬ª©«©©qrªª¬«©8᫪¬ª©«©©«©qrª¬ªu÷ ÌÀÃóü337TV9V$xÿ3ÀÃT7T$ü 0VT7T)ÿÿc3cd{-ý-M)MçÅÅwI5ùc5´‚Ïq�^VX¤Žõ˜ìîîQÔΠTRsîeÊ:~S*4µ‡�õó§±nœEGîIƒìñ{¬Êæ­U“8oßÉT‘““2ÒÌcš £££ÛçCÎKÜE‚ñÖ“EEÿÿ)!*1)!**S)0*S3 *Q*)'* =A1  7- ^G2 1% 2[ŠQ2c /65j I[ ' 4e–?6k506m:8o ! ,:i:14-?w,!'x!) ÿßR£#Èg—.nÒ5¢�N1\¡VYâÖWNMM D+JaÇÈÞÌu5y”}FS&!¶ª>{'õij)Q<'DŽd3‡Y¸ß礣 ¡RÎ>÷8{ÏüÚ<;[AÌ|4m$“XK�|K4˜•UK‡ †…„ �Éù#0$?˜¡üðÉ:9ù~Ñ’  É ü¥¦±3Þð-:ßßOÆ(í&€à(_‹=Žè}8bæ-ÂMNL:üðïRÎAB§"}XßÙThQGçô#NÃ2L¥J[(X”áú|RQ=á¥tçSHÏüÔ’‘êÕ$’§­œÄš™ÄUM8„[•™B‡c  O@0oüðÀ(M§ï4Lõ�!%À ü:? da’�!uW/ÿüb?’Õ?`2²Z;;ZŠopQ•úÿÀûk#© — 'ÀùP57Råì}þ`#µJÏ Eœ›Fð3ü3üíá®ó×^O'(ÊUU9™ :? �Ï 4iüðÉZI.Ï '(A0Ô0`;\Õ]?ÃËÿ9^s:›šÕ&lóÿý;<±èç;1z×Ô³ºòUR1¬üÉSTQ¶| ¶µ(O'®Øm®ÀügÅ«¬¹|UUBÃÃöõöy ózõöy ðôñòˆd€ °ÿ‰íêëæÀ Ž�á�HšY û Ìûüÿ[ÿðüṵ̈Ï0/xŸüÀü/0 / /õePf¿V¿ÜQÌÿÀü Ÿ?@@ /ö¿Vµf¶kÜüÿðÅ /Ü ” _`<ü?×× /UUÿ ÿ ÿ ÿ€Àÿ ÿÀ ÿÿ0 ÿu÷ ÌÀÃ`_```óü33ÿ___```ÿ___ €___ €_ÿ3ÀÃ__`_```_`_`ÿ___ €_ü 0__```€___`@ÿ___```¿``€___T`€�&!€ž'« ÿÿƒ,ö#ÿÂjÂPƒÄ€¿bÐ      ("$*(.0  NT bh "(     ¹ =YSU[ Y_a        GM  [A%!' %     [a  o T31_groomed T31_groomedFÂn•Ã@ŒÄBf�ÃÀ‡Ä   d@dFÂÀ‡Dn•ÃB@ŒDf�Ã~@v ýÿÿÿ3ó3?¯°¯±¯±¯¯±¯²ž±¯¯±¯±¯±¯¯±¯¯ ±²±²°¯±�¯°ž¯±¯±±¯±±¯±±¯±¯ž¯K¯°¯°¿±°ž²°ž±¯±±²ž±¯±¯±±¯�±¯�±¯7±²ž±¯²ž±¯¯±¯�°ž¯±Ý²ž±�²ž±Ä¯±¯±Ä¯°ž¯±¯±²±²±²±I°ž¯�±¯°²ž°²žm±²°¯°žÄ¯°ž¯±¯R¯°¯° °ž¯±±¯±±¯±±¯±¯RV¯°ž¯° ±�¯±²±¯±¯±±¯±±¯�±ªªªªŠ НŸªøª€  �ª�¯ š™ªñúŸ€  €ú¨ú¨ú¨ úø‡úùùŸøp$Õªø¨ª�ªú¯ªøð €÷Tú�ª�ŸŠ÷ú÷úúН©±%%ú¨©©©¯Ÿ�p¨y÷Ÿú™©ÿ¨% Ÿª� šŸŸ‚ªøªøªøª€øÿ©úø©„‚ªŠ¯Š¯ŠøðUUUU ÿÿð©«©©ª©ª©ª©«0 ÿ©©ª©ª©ª©003 «©©«©0ÿÿÀ©ª©ª©ª©ª©«ÀÀüÿ©©ª©ª©«©© Ì«©ª©« ©©«0Ìÿü©¬«¬«¬«¬«©ÿ«©¬«©«©ÀÀ0 ©«©©30«©©« 0ðÀ©©«©«03©©«© ©«©©ðÀÀë©©«©©00ë©©«UUUU ÿÿð)0 ÿS033 ?0ÿÿÀSÀÀüÿSÌÌ?* ?0ÌÿüUÿUÀÀ0 33?? 0ðÀ030)? ?üÀÀÃ)@000Ï??_ÝåõjjÓjijijiÐfËÍÒÌegÍ_Ìgd ÉicÏcÿÿ3 gÅÍdÌÅdÎÉÇÉ0ÿ÷ÀÇÛÉÊÉÊÉËÁÃÿÿÉÅqcÓÖÎÈ¿ÔÂtaÊYÇfÐ?<ÇZ ·ÄrqUd ÏÅÎÅÆÅÆÅ ÃÃóÿÚÍÇÄÃyÅÒÉÇÀÀð ÐÉhÐÐÿü¼¿¼Âk]^lÉÇmnÐÂ[ÔeÎÎeËÿÿ30ÌfÉÌeÎkÒÉ <<ÉÒÑmZlàÊÎÎÇÍÉÌÐfÉÇc¼fÎhhÎcceaÅi×Õ¦ ÿÿø(OFôfÿýû8Ofoað0ÿÿ@J 8&-ÿÿÃ69#6I"9?<8<]"56G <&  <ÀÃóÿ;&%\ÀÀ0 ÿÿñ8 12;<;<:9"!65 #…`: <<<+,<ø9ÿ'ôð!UŸ#—yµ™ùÿRP%__Õýõö56£6DißE A› OZ½äLß›Yvà‰ÿÿ2ÆÎ¢�é[ÿϱ£nø¬xÜzu]äFœGeŒ¾Ñµ|‹,Œ¹˜þTS³öÀÿÿA†5ÛŒ[ ?ÈÿÿÀ[îìÛTTÖ5vuóóð»¼â÷�,»?üðTSé6öAìëÿ}ó™ë¶Ã'ÄÃ��T9}Ã3‚CVVHÿÿË0¨Lùr XÆKy·Þ%¤¤ð7bÙ«p¶ä".\¿üÀkÝ" ÛÞÈÀ§– 6Ô7’!AºUYWõ®fDw4EQeãwsýÏ+ ! . 7ŠylIó}À’ SÿÿA~3F7ÿÿÀ+PA²3DeF:ÃóðVA*ø,‹A)*M>€*)ã`ûÿ]¥"e} Ã{Ð×$’nmnmn=ú{ÊÐ{pr?{ü2ñ€)*êÈØ š})*ž‡©…ÇdŒpð w•*42ðKÄw·¯•—п™Áÿÿzëƒ?=)U´¯|�˜ŸÚ›bÆ÷¼¤¿å…1´Md¯Í‘øcEšÕkÔ¶~i79b »äZ×õ­065Z'qeó1•Ï+27R7Ts ÿýÀ€)ÿÿ :&"",)F1ãóóü@5$ . Àô   :-$ .8)?û@  (0 z€!Ë…ÿ¿¨ú‹¤!'_Uõ}º¹GHÙJA‰j°Ùå:½Ð��ÐÐî6ÿb;ÈÍÿÿM¡ÌlÉ4µ�ÿÏ×Ö�þÌ? ¥§³b<ïÿÀŸA*�–ÿÿ÷7_o.LßÿÿÀ~>ñV$>׸"°¯óðM2߯ÀðQR½¾ín5I—%�j²³eZ £ŠíîPW¤áØ:vÿüÛä‡`¢D+Ρ˜�üM­¸7ž îœ80¹ÁE>=®j@ß"ÿÿ$›\*;4YUTn÷VG1Cõc÷ÿÌ?' 2 ?\_`%À ÀFÿÿ%;|;HAÿÀ%P?|Àðïÿ5!)()~Âß!:èAF9P1NA?ð!eCÏœ~< EWuÝ’IdÿÏú)¾‚RIÔ³<’¬ž´½ ÿüÿ|8þi�—mnJ¡ÀüÿXqcÖ�¯ÿÿÀ#?Áå 6x„ÄŒ‹óÓðLKòÀ?üðmnP¡XEFú3ç*#ûé_b]0.WÿÿoDBd¥èµ1 ÿ$ž1� 7Þ¥Ó^,J Qüoÿ21.í£¶Ä™B}A‚-~ñ4l·@UU•ÿÇ (3 ÆÌ>FE/.ïüd| [€H@ÿÀF;&>kP0ãóð�Z?48k` óL0{Tÿÿ`?80g\y? %HHB@¼`?zyÿO¯ï40!A$=úÿÿÿ » »$¿Ï»û»°°°$$ $ $ è`_`_Ÿ `ÿ Ÿÿ`@00Ÿ@00Ÿ@00Ÿ@000Xo·p ÄŸÿ_Ÿÿÿ `ÿÿ_``@00Ÿ@0o@0o@0Ï0G0G/0ˆÿ_`ÿÿ_`€ÿ `€€€ ``@?@?@?@o0/00G/`/€€€€ `ÿ `ÿ `ÿ ``@'4 (HH0GPUTü```!œÀýü`�†Xø?~~}À™˜€ÀÿÏÿ‚�‚�ÿ}€-&�ýUUUU ÿÿð``¿`_`_`_``0 ÿ``€`_`_`033 ``à```0ÿÿÀ`€`_`_`_``ÀÀüÿ``€`_````ÌÌà``À`` `à``0Ìÿü`€`_`_`_``ÿ``€````ÀÀ0 ````33à```à` 0ðÀ`````030`¿``à ```à`üÀÀÃ`¿ß````000Ïà```à`UUAP�  @€@ H @€€ ÿ]°¯°²±²ž°²ž¯±¯±±¯±±¯±±¯±¯±Þ²ž°²ž¯°ž¯�°ž¯¯±¯±±¯±±¯±±¯±¯ªù©x—úНŒНННŠ÷ñ°ùúŸ¯ŸªŠ¯Š¯Š¯Š¨UÌ0À¬«©©«À©©«000©«©000?©«©©«©UÌ0Ã?À0000?000?)UÌðÃÏÆÐfÒÐ×e×ü¿ØbËÃcÊ0?00ÉÐhgÇÂðð0?bÔfjÇRÇÅUÌ0Ã&:2Eü*; 3- 00008ðð0? d]Ãü?]TRm7pB&×81wr×&²'“¶nnÕÿ<¦5nÝpo¬óððÿœ¸‰¹»�žê#�æUÀ?5+b???Œ-+Z%%LR óððÿ+:;@78#C_Ç*)S,Db})*E“êa1\81ó‰')Í?ÿ?€>='`EÄýpóððÿ¾­XCü„]ØP™À ? <ð VxsU€?èœ|7??`ZW ¡°e`HóÀð/±j¤£¨§•­U?C-r???91l/-^!)Lñððÿ;LQTEF-O ]Ãü?Ëmm’J‘hI¬yá¾$gBmŸŸ+ÿ<ÛJ‘Û‘’#ñððÿ 2º·¥¦TS UÁ&B #&Bqpðd˜€ÿÿÿÿÿ `ÿ `ÿ `ÿ `ˆ_ÿÿߟ `€€ `€ÿ ÏÏÏð`ÿ `ÿ `ÿ ``Uÿ›ï�~�‚�€�€~��ƒNûûÁñø€�€‚‚~UÌ0Ã_```à`À```0000```à000?```¿``QH  hô„ÿF ‡Ä€¿kÐ     *," *$24   2<>@:8  J<RTB, JDRT>0  "024.,   >0JLB( JDRTB4  JDRTB4  .8:<6<BH68:<*,.0$Ym        EC2VÕ  ;5CE7) ;9 CE3)  75 ?A+!         !# ') !     3=?A;=?A+-/1%x      , *?,E?A GI71 79 ?A+% +- 35 \                ! #%!   X  '   /)793%  ;5CE;-   3579')+-P! 4         +1  3-;='  /)79+ /- 79/%  ')+-!      < :+<1  3-;=3%  ;5CE/!  71?A3%   LKYSU[ Y_a        l4Xƒ2"XZ\RXZ\RXZ\:4BD6(  >8FH2$  :4BD2$  *4"$&(  T31_packed T31_packed�š™—Ã@ŒÄB�b�ÃÀ‡Ä   v Xv �ÂÀ‡Dš™—ÃB@ŒD�b�ÃwXo ýÿÿÿ33<ó““•“$“”ØR“”Ö““““”“•œ“”Ö“R““•“Õ”Ö“Õ”Ö“““”Ø•A““•A““•A““•“““•A““•A““•A““•““”þ“”Õ•–֓ז֓ד““•““A•““A•““A•““““•“A“•“A“•“A“•Øì“”“”“”“““•“A“•“A“•“A“•““““•A““•A““•A““•“¬”Ø””Ø”“”Ø•““A•““A•DÖ“”Õ“”Ö“R“”Ø•“““”“•Õ“•Õ“•ª“”Ø””Ø””Ø””Ø““•“A“ªªªª€~€~ˆV�€Þöˆmmh€ˆoˆoˆh†�†�†ˆø}€~�~�hŒ†ˆöˆöˆöˆ†ˆöˆöˆöŽø‡‡†ˆoˆÂoˆoˆhˆoˆoˆoˆh^uªç€h�h�oèÖèø~ˆx�ˆø�‡ª÷w÷h†øUUUUÿó<©ª©ª©ª©«©ª©0Ì3©«©©ª©<000ª©«©©3?ð0ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«00?ÿ©©ª©ª©«©©0000«©«©ÀÀÀ©«©ÀÀé«©©ÌÌð0ª©«©¬«©000«©©00? «©ª©©«303©©«©© «©©Ìà <ª©«©©ª©0à «©©«UUUUÿó<0Ì3?S<0003?ð0S0?ÿðS00?ÿS0000ÀÀÀÀ?ÀÀÀÃ?)ÌÌð0U0000?00? 3003?) Ìà ¹{M~¹{;׿CpD©Û=Jr=;ÓghÿÿüÏhhÏhhÏhhψj¥Vyoo�ïC^?U#8Fà14¿ ÚI3?ðð&2!0ÿÿð#`00?ÿb  ñ7E8mßKDöDôbô$ô"ôOÂ'2"ò óÿð$#$#$#$ð#$ððóÿ#$#$#% ÿòºû&!H  ö5ïÄò\f‹@'&/H&%ÿÿüJ#%J#%J#%Jßõß ó¢«/¡vu£�è‚´U{ X ïLW®�=ãq§Iÿüð]jf-G-2†…>=ã±fÝ\»àDà 8J Îb‘±ts{`; JLÉ}&˜_3;8'B . SóÏ?<*)*ÿ÷W?Ty#̸8ãY² ½ ¿Uš•3|c¯Ø\”Í8]�ºÃd‰,*ˆ„*hg‰ÅÆwÔÒyY‹mˆqjŸ³¿Ç/ÍÀÑÝêéêéêéêM0]A"³<·j£ Çnè=@66Ìy4øþ(œ!¨$Íì´Ì–áüü0¤åæZwiˆ3ð‡ž,AÿW~×_'!£ÞQ{亯„göu´ð²ªmñL²xw-;9½Pq‡8÷’¤”˜˜QÙÚ¥W6%)ooN0#A=ÿÿ!d)ýüù?@5!*A"œ'w$$óð6‰ @J0(‘­:­7å`a;Füð£™Ù ÊÉø©ÍèñhxŽ2£±öÿðxÔ‹^à± MóÏ?<('(ÕÕ6?ÿð*�+‹L0ä“’?ðÕØ™eÿßüð%Öæzš™íß²…ÿ¾?› è/ûð@ XKƒCƒ>ƒCƒµ^ûµ<#$<<<ÿ#$#$#%%&%&%a ,+ 1nôöfôföföföJöooÿ2&%L$I%L$I%L$•&%L$&À@ƒÃÃÃ#$#$#"!%%%L%%L%%L%%;Göokõö»>ˆ%L&&ƒ#J&&ƒ#J&&ƒ#J&&DÀÀÀÃ6#ÃÃÃÿ###%##\#%8##6##+ ÿõõWU5W>õ_}ýü?@?@ê«=üüüê«=ê«=ê«=Ì�g>þÈù&Ì…Ç‹�Ø‹__`_`_`_`_$!/5<ð."ððð:2ÏÏÏÜk6.c6.c6. À3Ï K þ8YðW}ý­XHnÚ3#²Ÿ5\BñTl…..-.-.-.-.ic3“ÿól65P·mnúÀððäº é×ÀÏÏèÚE%ªå Àÿÿ=l#G"ý›KA4e6D ƒ?^½é5‹Gç6Ó©ê@?ºH0/<ð¤ i_ðððÏ:³‘¥¦¥MÌÔÓ�óîó�E­ãEZ'{¦8b@Üå+AB56A )pU¥^G I2ÿE*0’ Àð ÀÏÀ0ÿ )  <J õöP†?p‡ªššðù."  À1Ï&ü3RñWUU?@?@"奛��©„úÕœH ýymmnmnmnmnm68‰ŠÛÜm+§Ôˆõn6™<<<õöõö÷ø¢ððððã@?@AB}~ ìëÿM9‚¢>Io¤¾%$¿/Àðåá96€³wx<ðãäçèç)ïðððöõöõöõ¸¹���†&'&'&'aƒÏ —ñ��€¬QU'('(7L3  ó �Æ0 ]<<<ðððð<('('('(<Àð=>G!<ð>(ððð'('('(UU]ýüê«=üüüê«=ê«=ê«=<ÿ?#fÜV¬Ø©/¿�ÔE<sÀ`ðt ÏÏÏê«=ê«=ð±=A€ÀÏÿ=7æÉCBÌ6ïj643 Èö9¾ÿ?ði·ç)l7ÿÒÑ<ðlkhgh¡:ðððopstst*;D?\A\A\6ýlË5îØ¥gf¨.Ò‡OyÇ2mk34ij356ŸUUU]üH6}üüøH6}H6}H68ÿ?�tÙZ s(J¿g@(€``ÏÏÏH6}H6}H6}H6€„ÿÃF ß%FC"!?` #" ```L2}N0}N0}N0ÿþÐóÏûVzü(—ïÿÿÿ(o0(o0(GGGÿ°ÏûË»¿»ˆ0$  4 4 4 H00@?p0_?p0_?p0ÿ`_ 0000(o0(o0(o0(GGG///d {//0HØ_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 0000(o0(o0(o0(GGGG//@HHPU0ý„„„9þ��„ ÀýÈþ� 4ýUUUU ``à` 3``à```<0``_``0ÀÀÀ`à``ÀÀÃ<`à``à` ```ÀÀÀÀà```ÀÀÀÀà```à 0Ïà`````_0à Ã```à``À0`à` À``àÀÀÀÀ```àÀÀÀÀ```àà 3ü`````_``ÌÀÀÀ`€```UU €@ @€@€@€„ÿA“•““““•A““•A““•A““•““”“”““”Ö““A•““×–Ö“×–Ö“““•“A“•“A“•“A“•““““•A““•A““•A““•“““ÿÿד“ד“דª øˆh†ø†ø†ø†€‡‡†õèh�ˆ��†ˆoˆoˆoˆhˆoˆoˆoˆh†Øm†ØUÀÀÀ©©«À30©©«©000©«©000©«©000©«©Ã ©«©UÀÀÀÀ?Àó0À??0000?0000?0000?à <ƒCƒèƒCƒ>ƒƒCCƒƒF% °#J&&ƒ&&&]%L&]%L&D00006ðððÿ######ÿÿ6#!4#!4!_WI’K+¿žšwM,NL™RI’G‹je®g_N‚ ðððüŒ‹Œ‹Œ‹@&Ô<<<ÓÔÓÔ¦¥‘t‘t‰ž„J §ÿÿF%’ðæ[³ÄUÀ ÿÿÀ)/B);ðððü:<<<%&6óóóä.c6.c6.c&>–okˆ76Dkz6C55lO7ç­+&d8ûyšššÿð»Ü¥<<<¦¥¦¥óîóîѸ}ö •ÿÿvDy"Êw© ƒØâueoð‡‡‡o      ÀóóóÐ    UCä!%&€ÿÿÀÅWyg56ÎÝðððüçèçèçè>¶õ<<<öõöõ&ãããï'&'=&TÿÀCD;?ðððüF(<<<'('(34��ƒÀ_hlÕj6h3Ñžj5igÒilÕj¼úK¬Æ*$@ðððühghghg¸Ôt<<<stst_`\A\AxI-7-GÔÿÿç«41XÇ‚,UÀ ÿþ$"#"!```HNóóóä0}N0}N0}8D—}õøÿHHHH'('('/Ï_ 00Ÿ@00_?p0_?p000(o0(o0(o0(GGGÿÿ///ÈþUÀÀÀÀ`à``Àó0À`à```à0000```à0000```à0000```àà ```U€@€@ @   ÿÿ»sðÿß� ‡Ä€¿} Ð       $  &(&(*,&$&(.0            JDVXB0  JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2468&(*, I     : @ B<JL.   60>@.   60>@2$  28:4BD2$  :4BD2$  :4BD2$ &0$I$  & .0*  2,:<2$  :4BD:,  EC2E8:4BD2$  :4BD2$  :4BD2$  $©    535$& .0"  *$24*53     BDJLF@  JH RT6,  :8 BD*   a      = ;&=,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$   2468&$&(.0  &( ‘    "$       : @ B<JL.   60>@.   60>@2$  -+2-8:4BD2$ 64 >@.$ 1      53:5@B<JL:,  B<JL:,  B<JL2$  53258:4BD2$  :4BD2$  :4BD2$  2864 >@.$  20 :<*   ., 68&  E535     "(.0*$   2,:<&   q      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)8:4BD2$ 64 >@.$  20 :<*     5 & .0*  2,:<6(  >8FH>0   )'2)8:4BD2$  :4BD2$  :4BD2$  2468&$&(.0  &(  I       53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  -+2-864 >@.$  20 :<*   ., 68&  T31_powder T31_powderÌÂẕÃ@ŒÄ¨B¥‰ÃÀ‡Äc �c ÌÂÀ‡DẕèB@ŒD¥‰Ã^#�V# ýß}ÿ3Ì𠄃÷„ý}" " a " a " a " "  " a " a " " B a " a " a " ûá " " "A " a " a ÿÏÌÌ" "Æ  " " a " A"  „þâ!æ3<3„†ý} " A" A" A"” B!B!Bc"!B"ýá" "ÌÌÌÏ„„„„„„„õƒ÷„ý}ûûû" " a " a " a " "  µ" " a " ƒ" "  „„†ý}üâ!„©ªjª3Ìð   @@@´D´D´D@CD DKDD@8 DKDKDLtd@@@tD´D´DO@4@@`@Ôd–CO ƒ? `DtGO@8R83‹C„Çd@ÌÌÌÏ"ÿ¦¦ÄÆD KDKDKDDCODD´DôD*COÿ¦ ƒ?WU×U©ª©ª©ãq©«©©ª©ÿü ª©ª©ª©«©©3ÿª©«¬«¬«©©3ÿª©ª©ª©«©Àÿ©ãq©«©©ÿü ª©ª©ª©«©©3ÿÿª©«©©ª©ª©ª©ÀÃ?ë©©ª©qrª©ª©ª©ãq©«©©ª©ª©ªðÃ3?©«©©ª©ª©« ©©ãq©ª©ª©ª©ª©ª©ª©ª©«ÿÿÀãäãäãäãä©«©000©«©©ðÀ0«©©«0ÿÀ©ãä©«©qrWU×WTSTST7Sÿü 3ÿS3ÿSÀÿ7ÿü S3ÿÿS)ÀÃ?ÃSTSTSTST7SðÃ3?S 7TSTSTSTSTSTSTSTV9:9:9:9?0003?óÀ0?0ÿÃ9?ÿÿÿÿ42ܸB£5„wywyïÑ`BTxews;§ë;;=ª;'¨ÌéHýl Mû´H~x¶´´êÚõßf´h´Y €ê~Î*ê´ì]ZXZ§©©§qAÆBA_fê„5Ú–Ò¡�x~kƒv~÷„z—¼gÊññÖT±NøTð†�,!6!>!@><@@Q"ÿoOo]1µ;Ù_ÙŸ»ßG ¿ÿºÎõÎ/?%-ϯoM¹¿úÃ410#ÿÿÿÿFLm8?:0ӣס¬r꯼ÆùŠö]ß—§¨¡'kƒ)h8™Æ6ÌcdH�é ^ŒweŸ¡‘„L�nÎŸÉ „U ¸¥g\`2Óz#>`6'šÇÕpÒur¶ÅÐã_Z¾ïc¬Æ¹22«@ —cê`ÍÙ,]o%¿¾«3 £Šgó¢ÕÅ—™–£L À]¬`N´ã ¢¾Ó¢f`9sÓ�PÈo'è‘Ë^Oy<Ï$øÓ!U¾�9Ø5¸½G\k6�·1`‚´ôÑ�­‹ø“4ÓLϦ¸ 6¼Ÿb þ¬UMÆ6�{"® (:ü´q*^©îj¾!nÐ ÿù1Ñ@0ð+hU" ø¯_o]0($�Ï d@-  * 6 >ÿPòðoüô1!(?rM ‚)Q€K+ .ÿ_:³o/%8õû<ŸñOú:!;OÿöùÐ!`#L/,AZu4 öšß+V9V '4K -¦I1`G€Goÿ¯jPO@#ÿÿÿÿòÎ Ž;%újm"S3ľNØ¿íÛE b7…¡Ò˜…5fiºn¤92 j€‡–»¿Pß~ÞHŠs{‚ë,Ñ�c²€f],\£>Ô+§ †Öƒµ2Ê<ÒúñÁK6U‘Ðâ«’ÔTæD„8>övî6 r~SlKB&ÿ‰¥nÚã/D;nsÈš¸z™T¡ïZÓ®Ò4¢C¦�[kÌ ºª[{°Ê‰WKXy7e^�<--´oËòh¢üV†ˆ—݉ä�ÜìX;•mÙ*5‹p£ˆÈ-$0H¾ŠÃrªa»€:†QºÅ{9~]û!æzT�Øp/’„ Ë?ã–êfª4%c""ÿüü9 '. ¿ÿWE&!!ùÿOô:?2%6%\•0÷óaþ¢þÄú!!òy¯Àÿó@$#*m28s>6iP ME#"/ÿ  �":óR FFNa 4ñÇ®¯lÿ ÿ2Î%)!ó/ÿº,OID!qÖ hUùÿõ[ÀÿÀ)* ÿè`uc¶àA ˜ v# 72ut. ß°BÜ�wú¿Fš;ÊYVñ —¶‚{'4 )L €Té9VøÜÌ�5éÃÆ¬ÁÛ’�”©TsÃ�½Øj¯ô gY€ �öõóðÿ*)ÝâOT OU‘B†œ+Ô1seŸ”�R|ŽçêŒÅÞPjg n @`etüC4ràðOÿöQ3#ÏÏ?kH1F=>3 Bð?% =OÿýÐ`-L6ðð; 7tAL)N'!À *ÿÿ_ÿÒkBq™FÃô1øÞœ}�¯ÐTE’pß÷íQâ8ÜÏ�‰ŒÁ,Ï?È)$F\ÞÞ�v€€Ñ ÕlŠ òT•ubDjúæ«û‚;˜þ¯O,Ó´‰>šúò÷€•3ò¿2¿?ç�²+ 1Ì×<ùw¥OQ|,  9Ñ÷£•ää‚>›/È'4m¾Œ²T²�¥ à óÿü +,˜R­=ˆðNåD‚ŠêÇ&Ê¡ ¿í±$zýJ‚'‡��)Dc-€^¯àÜ0°Fù ÐõSN*cZc3sa"oQ0k”ÍLIm^^ž3îÃid IDA^cpaX?BE>=:ôSFñÿQJGLOÿ#.yZD�Ï f ]>+0I<1BøÌ| üÿò@It+]ˆ)_X_?ó3�/0 “�   WvK(ÿÈKl + 0ôOôÿzßI>IHgŠ#L3N S3” =ùòüQL<;hIÿ�®õÿ.y‚5©ê}û3Ìð /PPPõUõUõUPVUU_UU�¯ ›¿""›¿›¿û»"°°°û»û»û$$»¿°Ë°°ððG4 (_@'§303Ÿÿ€ÿ `ÿ `ÿ `ÿw   '  ÌÌÌÏ000(/ ¿»¿»¿»»¼$$$ ‡H`_Ÿÿ€ÿ€ÿ `PUP@„�  €~a°€ ÿc€þWU×W€€ÿ````€`ÿü _`_`_````3ÿ€``_`_```3ÿ€`_`_```Àÿ`ÿ````ÿü €`_`_````3ÿÿ€``¿`_`_`_`ÀÃ?Ã```€€€€€ÿ````€`_`_ðÃ3?````€`_`` ``ÿ€€€€€€€ÿÿÿÿÿÿÿ```à0003```à`óÀ0``à``0ÿÃ`ÿ```€àUUUUfB!˜ @@€™�� fffhf@� !  �ÿÿÿÿ"!"!"!¶!B"A!B"A!B"ƒ " "„„„„„„„„õƒ÷„„„„„û"   "A "S   ¤þâ!æû} " "c" "c" "c" " R" B "cB "c" "c" "„„„„„„„„qƒ÷„„„„û" " a " a " a " " µ  " " a " a " a " „þâ!™} " "c" "c" A" ”"!"!"!"!B" "c" "c" "c" "„„„„„„„–ƒ÷„„„„û" "A " a " a "®êªºCCCó„s„sV"ÿÿÿú`D4 4GDóCCCù6c?ÆDKDKDKDDôJC„K8D´D´2"ú`DD´D´D´D@O44D*D´D´D´Dùc?`DD´D´GDô4448RDKDKDKDOT" DGDKDKDUUUU30 ©«©©«©©ÿ ãä«©©«ÃÌé©«©©qÀÿÀ0rãä«©©«00©©«©©ªÀ0 ©«©© «?ð ãä©«©©« <©ª©©«© ©«©qÃÿÀrãä©«©©Ã30«©¬«©«©©«© ?©ãä«ð000©©«©©UUUU3< ?VÿÌ9?à ÌÃ?Àÿð09?00??UÀ0  T?ü 7? 3<?) ÃÿÀÀ7?Ã33S? ?V9ü000?ÿÿÿÿk@5 L6ཡ›}4ò<$_ ƒ/’�ªÃ99QŸi\K%ÊFßèñx;;=ø†©À*åVTa/o4M[DÄÝýñäüü%$ÿÞ`‹A$‘†ÆüÝð/x0¡ BkTtÆß¡ÓàË%ö³•Ì�G'È«o í G¼pCäEŒ�ßßÝ›Ž®=a"ËvšZXBD_+_Îо–ßt’˜ž±< 9ô‹}ÅX¤ÓË.6$��ì rprz Á5†ÇN0´ð€.¡ @þ…†CDIJÝ/$)ä<�'@¨È_+³Æ_¬€‚Ý¥Ö-J³®â¯F$Ç÷ÒÔN 4c �g?�å´&Í•þꪺ òðFñ  $C/    F9¿ÝßÕ:µ>³“™Ÿ(�$�Hòfô "$&O3ò³SKŸûŸû(.™ù›üÿrRö$®ôŽólðFó+.[¿ÝÝ÷0&30ù�ÿÿõ( F�F�H�f� "(?= ÿ•ß¹?¹ÿÿÿÿF Ãi~‡�ÿ3@£Ó-ò»Éƒº"8óŽÔZNM`3g­äm8§Ÿdš#mtìˆrP�Ã[Ÿ4扄AùÐêV]ßÞöm$C¶ófë.ÇÌ{¡Ú¢h£¾ÎMÂÓ¡Tò”ïí6š�bèø[ÌRl¾ÇÇ–³ß›ÆÐ§¾û£®ÉŸ£eqÂH¸¼Œn?fýOn89úîHxÿSgãUŠ¢ž`áàí°þƒsÕ!‰±ÈȤˆ‘Ķ›ù ?ãË>ì°LäYSª½î2ÿrNdé”0�c-©Ýh=Š­iœ)x´_=Vxc퇵%ÒR}v#>µ8¨¶DÖˆNZÆüe»WŠÏÄ® ªê¥º›vvTõòõøõõ�r"V4¯T%ÿÿCCnOhO3ˆ'- *+ñ_ÿF  .ÿÿÔ74 2Tû_Oµû³ù± 1õ�0ZCåoòÿö5ò#ùoê*ò"� . 2 47/?õÿ×n,(  0>'B-0‡™?™—õDý9:` oßÿ_ŸÿÿÿÿÁihe¥³;J•ØcùÈ™±�ÏÙ] ÄHߟ;¥g¨{¥(Š+J^yûŒ|ùÛfÔÃ0…žt_ë?WÎg{ý؇Œ3 Ñé |«N‡+›•Ž"EÇÌí÷­–9ôý8O5‰"ñóCø"Ëy-|…MGq"½d¥ zûÔ í¢ßVª°:ªÅÂÄÉlÐ…[Àf÷œOr+ÛfâŸKþ<�4²¯ÊÉ)ðvÍÓÌÖ@VpÞ#»³©ˆ’3GÔ\·5Ä^ÙÌ î0\�¼�#PªjyuhÌßßÂ)[ÅJO/|Õ>žûùïzàG"F¼ÒWlÆÎü6ÏduBÚ.ÈŪ¦nY !(ó¤±dsá5 ­hD_!öÿÿ�ÿ’Q§õ'$-(¢5‘‚—":Rs%3Å1£0#1‘F"O@röðŸõ(%*C$\ #ÿ"øbù²…Ë` `a�ÿÿ ,Q13@„¹wÿûv 2  Ýý_Øÿÿp»D´ÚTÏZpDbMpÛ+k_EbO�†aÿ|Ý^QT49973 çgó‰¥ì�I•h+)6 %" +"òÌ�`™¬ñm.Ta#³/Ê–+(ÿÿþ…ª)„”Ïv^Q—öúòïC@_b  Y>*UF:…§/ ÊÝì„ÃÌ}Í›!s0œÿô‰ë±ÿûvóôð Ùetÿÿ ÷õ¿�%(6ÿYb=>Cb ?2ÿ<7vÿ_oÕýÕý  ÐSL 8?ÿI  !$ B!D#:%,} !$€o÷ú2cbUVßÜÿ]¿ÿƒškp�€ÿÿþ¿ÿÿÿÿÿÿˆ   ? 0000(/'/  Ûw@'ç_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€H( '( ' ' 0000(/'ÿð»»û»û/$$ $ ·HHHŸ€O0(ø_Ÿÿ€ßŸÿ€ßŸÿ_ŸÿH0 ' ' ' 0000(/'//»¿»¿»¿»$$EUD™���„€ÿñ‚ññðÀ‚‚‚~ ÿ@Ç‚‚Æû���€ ÿUUUU3< ```à```ÿÌÿ```à`à ÌÃ``à```Àÿð0€ÿ```à`00?``à```€À0 ```` ?ü ÿ```à`` 3<`_`à``¿ ```ÃÿÀÀ€ÿ```à`Ã33``€````à``` ?ÿ`ü000``à```@Q$ ÿÿ "  "æB " " a " a " A" û}üâ!„" A" A"!"Ö!"!"!"!B" "c" "c" "c" "„„„„„„„–ƒ÷„„„„„û" "A "A "A "S"" "c" "A!B"A!B" "!"!ø!"!"! Bý}„„„„„„„ª«D4o8@DD´D´DtL`¸5ôGDt4óZCCC„D´D´ T"ÿÿü@DiF”iFôdMdG4ZGZDCC4^43CŒOÿÿÿUU<ÀÀ«©©«¬ÀÀÃÿ«©©ãä«©©ð Àqr«©©ÌÀ «©©«© 0©«?ð0ãä©«©©Ã«©©«3é©«©©0ÃÀ«©ãäUU<ÃÀ+?ÀÀÃÿ9ðà Ì??ÌÌ ? 0T?ü07?à ?3ó??0ÃÀ78ÿÿ—æÁer»¶ø³ þözÎqAãJû¿E�ï¨}IŽ·)r¿5CN5åò®ÙCW\ÃÉ Û>°GË•ú&•üü�_\@�\�“‚¶¸o9Œ+||®�ñYH~H åHËÇ#J`%eë–¨x~"*GëÂ[ kêWk )ÜNý˜îªÎÉ.¬?ÁÖ3¸JLWžê«˜Ò_h�üêúêÿÌÿÏÛ½3;3ÿˆc��ÿ.%*+)#  &5 AÿÿûµU§Xõÿ_ö}~[vFÔRÿ_ Ÿÿ$ )( $  ÿÿ=[!š�%ˆ�ümPkYD&?ùNÄ—@6Ä”xûEç\¤¿¡,û~Q‰bc Z}í¼ûƒp¯Ë\šo/nן[~�O „ø/¾ýEp"£ é{tjš á5ñØÀ´R;è\E]‘¾UkÅ«›R"áµiÚf û�4UwƒþÌFÑC~�›}áV"XãVëù? %"7"ñ/ñ�úÿ‘S#&+"1,FcŸ_÷ý‰ÿ6(-.529,U hMñ^P lt òÿü#3 0�2"#.Ed;)v  F õOÿÿ3:U-ÿÿVÿsÉù=gpªj©!�YþDë`j}†�÷…«„ÖP<Üi†T¹±u=”§ÈAOãn8ÖÛv€´CÖRÚsÉóG¨ö�pw1`ÖI¢Îî2Sy”€ËRÚ¸ÏϬ›#•¬†ÞqP‹«8?6âè)ÌݤùV’ÍC$7ór_ª˜þ~ÐI˜~…D«A!¼DŽý«e* S,'|K/ &ï“¢ ô©EA#©E��·¾™ó 1u"/ûô�÷<$3ð? Åk…ÏQÿ» ¡Þ]4ëêänz`¹Ä¢3}…oÒ�ë|# :%$!  QR0/ ³²h¢N„ƒDaðÌõP�Ö[œ¦;E„k42 7 ÿñôæýÇÀÞÂL ^Uÿ�ÿHA aZ[ïS· u|­®%šìþF øVQæ@ÿY ¯/.Ëïÿ32C.MBfoßO%  yM‡ð:Á-. óðUX97rc÷)ý57* ÏÏÊ’$[V#ÇúO0ø^oŒFÌïE .ä-ª"ÿ^}Dø^¹lÿÿ‹Ž8¢?Eä‹f &¿ž.ÍAi)�ç+¦pRiã�þÞz|¦ÛÀÍ4¶‘~WŸm§wÙ +ç î8±d�Ó‡hhbÿÿ\na”@”¶®ûuùöÿð /%#$ÿL cl    DÅÿü�„Ä0;6?0c&³3fq"�ö öÚÿux ³–" ;.uT+:36!2 f ÿÿH B‡ÿÿ §/'//ˆ'//ˆ'//`//À_@0Пÿ_Ÿÿ_Ÿ ŸŸ0 ' ' ' 0000(/'///    ˆ//?_Ð/?_ 0o_ 0o__Ÿ Ÿ À000000(UU@˜F ý0ÿa†0ýUU<ÃÀ¿``à`_ÀÀÃÿ```ÿ```ðà Ì€à```àÌÌ ```à`` 0`?ü0ÿ```à`à ``à``3ó`à```à`0ÃÀ``ÿÿUU@€ B€ $��€ÿÿqÿÍÌ ‡Ä€¿h Ð         ".0* 2,:<6(  >8FHB4  .8:<6468>@.(   :0FH6 >8FH6(     :4FHB0  JDRTB4  JDRTB4  6<  VH  &("  *$24.   60>@:,             ",20   0.,       &("  &$ .0*  ., 682(         28 FD           EO Q9C EEO Q% #%=;=    "*,&  .(682$  2824:<*,.0 "$U          "5(35$ &(" "$*,& &(.0*A0                    5 ?A     "$  A  $"4 %#%     "*,&  .(682$  -+2468&, e  2   :4BD>0      !!    "*,&  .(682$  $! "$   "*,"  *$   (&86H "5(35    "*,& *( 24.$  A?A$& .0&  .(68.   60>@6(     5 ?A      &("  *$24.   $&(   I          % # " $"42DB%1T/1$" *,&  *( 24.$ .0682, )979$& .0&  .(68.   60>@6(      1 ;=    "$  " *,&  Q%#%      5325824:<*$ *,24"$&(%  9CET31_rockT31_rockpÂ)\—Ã@ŒÄ(B\ŽÃÀ‡Äw}wpÂÀ‡D)\—Ã(B@ŒD\ŽÃP}H Õw?Ïü ywxd ?3ÿÑwxwwwym ð<óÉuyzñwxïywwwxñwwwyòwy¾òwwwxü3?ywwwòwwywòyw•wyÿðwxww« ™¦?Ïü yd øˆùÿ®ð<óɈ`^ˆ†èøhßhÿ†‡Árü3?uâõðøhø�hò‡ˆùÿÔuU<ÿ3ó㩪ª¬ª©q㩪ôÏüüª¬©©«©ª©q᫪¬ªqrª¬ªª©ª©0 À0©ª©«ðüüé©«:rªª¬«©óüÌÏ8rª¬ª©«©©qr?3Ì ªª¬«¬«©«3ÿÏÀ©©«©q᫪¬ª}U<ÿ3ó7T$7T€)9V$j0 À0UðüÿÃ)@óüÌÏV?óÌ @3ÿÏÀ)7Tÿÿ�ǽàââ9µä¶ �~¶o)oY4ð³ðÒ1ørqDðæ�€8€ãÔAýýû?gÝ-‡YÏ ¸ùž¨ökT*„ëV=4níŒ"ø3¼ý¼.�}ð ÞŒýµýò§+庯¥7Ryø¼ûýúò|ÚO±Ã�3Wv“Çøõ«¸*yýýµÿÿ$S:S*)' qd;c^/0F*CM % i^‰–E,‰ÄM@™’‹ . 3AD S1 1"1$@! �"R+${"(Y (Q*~)#8  ýÿÿ`ý/hò¸ZYè½àéd‰+V¨w&AxlkxÒz”À÷³Ò%µÍ¦1F^·|û³pîÛ3B±P`_©7ëÒn‡d0‰*Õ«çÝTI4޳x+ÑNF&’®æbµT} 7“O^;%%+`Õ•a—4ŸÿÀ‚ Fe=!.$?ÿ|/0 #,$10ü2Cÿ]WD€2Æq¼¥ $üO?  &vŸ›ð<ýÿÿ)Ë.þî�Ú’'”³ah ;>efeöN›²ºÝ` /Ћ®âZ?2õe:²‘µ•šœ*t‡Šf¶ Ý¢Ùïi¿Lijµ_Þ·I6‚Yo·¿å ´ðëòÂj"¿ØMÁ�J ##jÕ¥*¯ÿB6yx() C?ÿ6>= *'=<30Aü°ÿOZ+ …ÀpTD5 ó@c?×>P\yðýÿÿ†Eˆ›6jgÁ�gŸ~E†  8Q7#ÜÛ'ìÙ |-I䜒hÝÂ~ç±Ë²¾šqȰß&çNL} rq}qÐ3Œ•%>gxNh厜�óKP×I'&ÀîŠh12Yóœ—.Jål5tr~6rK%%Kr•¥ }L ]ÿÀ0C!B<9ô. '`A}8gÒe^EpÆõ¼%# Jý´RÏÿ16šž—ò\ÕUÿÿ‹8ïrx@9´m?ÿb0B@ JLFf±,  cigqkmk msu #)  7=    /5  CI%#%'))+-        )!    T32_groomed T32_groomedœÁ›ÃÀ�ÄœAå”Ã@ŒÄ   #n#œÁ@ŒD›ÃœAÀ�Då”ÃAn9 ÿÿÿOP�MœP�MÅMN�MMìN�MMOMOMìMOMìMOMìMOMOüðÏÏMîOP�OMMOìMMOP�N�MMìOMMìOMMìOMMOMOMìMOMìMOMìMOMOMNMNMNM%MNMNMOMOMìMOMìMOMìMOMOMMOìMMOìMMOìëP�OMMìOMMìOMMìOMMOMOMìMOMìMOMìMOMOMNMMœMMœMMuP�NMN�MžOMÄPìOP�MOìMM�OMMìOMMìOMMœMMOMOMìMOMìMOMìMOMOMMOìMMOÿÿÿ('(O(;(;;;üðÏÏÄ(9((;;;;;;Š;;;999:(;;;;;;%%ž(('N9&9(;;';;;9UUUU ÿÀ0©ª©ª©«© ÿÿ©ª©ª©ª©ª©«ÿ©©ª©«©©?3<©ª©©«¬«©ðÀÀª©©«ÀÀÀ©©«À ÌÌ©©«©©«Ï000©©ª©«©000©«©0ÀÀ©«©ÀÀÀ©«©À 0é«©©« Ï0©«¬«©Ï 00©ª©«©©00À«©©ÀÀÀ«©©UUUU ÿÀ0 ÿÿSÿS3?3<@)óÀÀ?ÀÀÀÀ?ÀÌÌÌ?Ï000U0000?0ÀÀÀ?ÀÀÀÀ?ÀÌ0Ã? Ï0À?Ï 00)00ÀÀ?ÀÀÀÀ?ÕõWW ÿÀÿxwxwxxj[ji ÿÿxŠxwxwxwxxÿxýUVŒ}rO…G‘’´kxGóÀÀHx˜xxÀÀÀÀx˜xxx˜ÜcxdO‹"B¹0V UŸiƒ­jÎÖé¥õ†pÜýiiÇ0ï¥pêÿÀÀÀ;üïÈÿÿþ7+4)4%0 ñÿ,ªg„Cf;@/T ¿ÿ_5ÿÀ(=!N` )87'`!-P +d*#>a  ×åð0ûTS21>/>)& ñoJª‹¤+Ã?ÿÀ$7X9JI1|+=j =Lÿü%  ÿü0 :78Ï=/n5UQG_<ÿlkOÕHÞ?IJ’†èÇgh%&'îÆMóÿÃJ·ZŽÀ�ÿÿÙ¡”`oÏÊIF(ÿLcÿ�‚6ÙŠufˆó…|/(šxkçÀÝùÁœkÿÀ[&ëñ¦ÿÏÿ-&´³nôž'†º#¿´®Ó“b1/ïð•Å£ÿ9Ñóÿl”ef©9TPEUDÆHaà™�HÿÇ~<¿1  <€_Ä“:ü_vq*@C<cÃÄÏð×\|;ŠRŸ ÿ2ã²2•�Àðü+ÇÈ›uí@U��cüa”ƒR&%ÏðJcOÂ{ ÿo°?eš‰ÀðüV('BWÿ?Ÿ@00Ÿ@0000(‡0/0/Ѐÿ `ÿ `ÿ `ÿÿ_``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(Ÿ `_``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(W0(U`` Îÿ‚~‚ ```UÀÀÿÿ``_`_`_`_`üÏ< _````¿`_` ``à` ``à` 3`````ÀÀÀÀ¿```ÀÀÃà```€ff`vbÃé‰ÿ�À ŒÄ€¿+Ð         :DFHB@   RD^`N4 VP^`F8  NHVXB4  .8:<68:<*,.0 "$   "$  M   .  60>@:,  B<JL:,  EC2E8:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,   & .0*  2,:<2$  :4BD:,   !2!8 :4BD2$  :4BD2$  :4BD2, =;.=460>@.   60>@.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$  ., 68&  *( 24"  !=;=     I  $  97298:4BD  &      53.5460>@.   60>@.   60>@2$  %#2%8:4BD2$  :4BD2$  :4BD2$  $    - q535      532bÑ  ;5CE3%  ;5CE3%  ;5CE3%   39  ;5CE3%  ;5CE3%  ;5CE3%  h    4h—Vhjlbhjlbhjl   &("  *$  A5i’33ikmcikmcikm;5CE3%  ;5CE3% 75 ?A/%   T04_groomed T04_groomed@ÁÃõÂèAÃõÞÁä   F F @ÁäBÃõ¨ACÃõÞÁÎÆ ýÿÿÿ3ÌÏÿ¹ºŒ¹»0ºŒ¹»0ºŒ¹»0ºŒ¹»¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹»¹0¹»¹0¹»¹0¹»¹+ºŒ¹»0ºŒ¹»0ºŒ¹»0ºŒ¹»¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹»¹0¹»¹0¹»¹0¹»¹¹Ž¹¹»ê¹¹¹»ê¹¹¹»ê¹¹¹»¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹¹¹.¹¹¹.¹¹¹.¹¹ýÿÿÿ3ÌÏÿ.E.E.E.EEEEEEEEEEEEF.E.E.E.EEEEEEEEEEEE.[[[EEEEEEEEEUUUU ÿü©ª©ª©ª©«©À?ÿ©ª©ª©ª©ªð00?©«©©ª©ªÿð00©ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«000 ©©«©À«©000©«©000©«©000©«©000 ©«©©À0«©©000«©©000«©©000«©©UUUU ÿüÀ?ÿSð00?Sÿð00?ÿð0S0?ÿðS000 À0?0000?0000?0000?000 À00000?0000?0000?Õ_UU ÿüÆÅÆÅÆÅÆ·ÆÀ?ÿ·ÆÅÆÅ±fóðð?j‚3xÕ“™Ýêš™a䮎üþóo|zúi||PŸ]^¦¥WX2þü|||é|þzÒ™)^PãÆ\CÏ?<0 c;™d䯷ü0ÈÆ‚�Õ000?·ÈÆÕsüð00?�½Èư��0000ÆÈÆÕ000<·ÈÆ‚ÆÀ0Æ‚ÆÆ0000ÓÆ·Æ0000ÓÆ·Æ0000ÓÆ·Æ•ZUU ÿüÀ?ÿL"òðð?/- z XzŸAa�'-œ¼¾ßp×Ûøÿÿ!x?<0  ä0:000=:0004<0000:000,À00000:0000:0000:ô_UÿC1ŠYÉNÂs7ʱà-ÏÚòða�L</Â"±b³^K´í„4N `%=�5û�ŒM‹-h±a¢ÍàEôPÿÿÀÿ4×�”`˜Ê>ðütstê¢?”bäýð?gŽt79‹ŸðÀ?6Õ9Üã<ðÿ:9WXEê]EÃð!@ %0 &)¿??)&)$˜;d]U?88ñ ÿôQTAN"™¿ÿ#(ñÄ.ºŒ„&„yŸóÿuBAŒˆÔEWÑÒ•ÑGŽdûX^œW˜¬ÿÿÀí øB/F™kÀðü‘’‘ÞK? Ž÷ð;� ’GG ×üÀ?Hà‘Jßü<IJWXÃðÈ          @”$ @         ¸   0 0 00 0 00 0 00  ¹0¹»¹0¹»¹0¹»¹¹¹ºÿÀ¹º¹º¹EEEÿÀ000©«©©3«©0003?30003Æ·ÆÓÆó‚ÆÆ00038³<EDF@NP:,  B<JL6(  >8FH2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$   I  53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28&, E   53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, M      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, I        53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T32_packed T32_packedüÁáÚšÃÀ�ÄØAáZ’Ã@ŒÄ   jµjüÁ@ŒDáÚšÃØAÀ�DáZ’Óµ‹ ýÿÿÿ3ó3?ßàßÝßÝßžßÝßžÞBÝßžÞBÝßßÝßßžÝßßžÝßßžÝßßÝßÝßžßÝßžßÝßžßÝßßußàBßAàBßAàBßAÝßÝßßÝžßßÝžßßÝžßßÝßßÝßžßÝßžßÝßžßÝßÝßàßàßàßDÞBÝßAàBßAàBßAÝßßÝßßžÝßßžÝßßžÝßßÝßÝßžßÝßžßÝßžß�ÝÞ3ÞBàÞBàÞBàÞBÝßßÝžßßÝžßßÝžßßÝßßÝßžßÝßžßÝßžßÝßÝßàÆßÝßß?ßÄÝÞBuÞBàßÝßߪªªª Î  Î%ÏßìýþÎ %%ÎïÎïÎì''' þÎþÎþ'''ÎÀþ ðàýþžýþüì 'îÏîÏîÎ '' ÎÏÎÏÎÎ%%% ËËÏßìûüûüþÎÎïÎ'ïÎïÎììïì'''ïìïïíûý¿''&¸Ûý¿Îìþìþ''ìþìììüìü'%%ìüìì°ìî%Nþþ ðûýìîNœUUUU ÿÿð©«©©ª©ª©ª©«0 ÿ©©ª©ª©ªÿ©ª©«©©ªÿÌ ©ª©ª©«©©ÌÿÀª©ª©ª©ª©«ÀÃÿÿ©©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©ªÿ30 ©ª©«©©«© 0«©©000«©©00<0«©©ª©Ã «©©« ©©« ÿ©©«©©ÌÏ0«©©ª©«¬UUUU ÿÿð)0 ÿSÿSÿÌ ÌÿÀSÀÃÿÿSÿSÿSÿ30  00?0000?03<0?à ? ? ÿ?ÌÏÃ0?ÿ[ÿõ¦s˵)JL.JLb»x,¬17!,Óc3r°kJ..JÍ”x7Kr2áììõ�V´=ÆTn9#A¿…Zsq-ð>ÓÒXÕ ÔZÓÿŸÿCCCOÒZÑÑÓ‚PÿRPõÿêRëÃéÃëwožìÇȼ|§>-c³…hÆÞ”!mo¬vü‚nŠ üA¦qàsq%àq¿¦!q%¿à%¦?úZмä[²VÔZÝÔZÿü ÛÒZÛÔZ„RP <:¼<í´¯äšÔZÇÑíï_ïõ% 45 4Q.4g bÿõs oH�.(9#   Š.-pDo-Z.o-Z.o.,hÿVÿ++)*'''a4e*.SF*Mb#  ïîïîÇìïÎ!!   p-ZA-\ÿü C+ZC+ZR <<@)'''%G  €+ZG.,ÿ×ÿõò¹’[ôue$&%ní=¾w\¼Ûý$ÿRÅÏÏH0� Ã¤yÆ>4æ6R­Ë±á³ÿÑ»çʪÐý°¹æ"Íõ˜# 0#ñ…«ŒÃÏð‹Œ‹ŒøôÂÓÃÃÀÔÓÔÓÔ¯ ’Ïä‘É£›Æ)׆ó$›©¶²\÷)ó«R5ËéKÓH‰‰fW… Ïê–¡5QÚ™r‘9˜ÏÎø-ÇyëÎí`Ö=ðEÌ©�¡�Œ‹ŒÏÿ‹Œg zCÔÓÔÓÔüÿÇÈâJÔhm16�ŒÃµ iÿþÒ�ôh[œ×P¢…±gTX¿0›*åUYÕ?ÿ<1$"i 21þÿ^Uv1A0XY¿½¿ÛŸ< 9 !J #0 ÀÃ3 ÃÏð< ÃÃÀFó??>.c6.c6.c6,@þ ?Cxÿôßùÿ³13:[%¼š"!üó "5Ï?2üý6,a6,aýù“ü8*_6,/=  >  a(ÿßÿõ]¼™áj )KµÓ‡�5ÇU¨§"Š]°ä,Yãj”‚z¦™8­«�^¦®®p…yñÄ  ÁB¼d»f:ó=}G^GñîA )²=ababaBÃÃÃÿ¥¦¥¦¥ÆabaàålXÞãÞ Óâé“ s`%'6ƒÊ�ëy’™1Œiœë»|y¸â‘gRãůþ‡²¡ÕwÇkk ‹_'‡Œô _<ÜÏð Ïÿ P%¥¦¥¦¥ üÿûŸcýø.Úø14ë±aFàiƒóP=z±u;%Ž�˜–jKõj™–?¿>$R '(ýÿdEBO ( N    0ÿð!Ãp28pp�      û??=    ?þ; "M/ôš•û|•3\d>”û"«…ð‡@p‡úššüü  üôþ  "òøÿpƒè dõUþÕ?<�$†îí?üÿ˜+,kjå®2 +,! $!y�á”Uº/¹-³gšó+“Ð]a®4$yÿÀÃ釣œzêçÃÏðèçèç7÷öÃÃÀõöõöõéø<('('(``'(``~' üÏü . y8(¿ÕWõq+zň+•556ŸþYÖüÚÌžgˆ2Õ?Ž3žS¯éÜxe¯ `S ñÿÿõEòpéǶtotCÀÃlehÃÏðghghÕvqÃÃÀrqrqr^(Í@\zÕ>Ï’ö$ø™Î½e«�r¹§˜Š ¸¯ÿÿú•ŒÊŠË9Ò…d>@˜›œfgÀóhghÏ?ghghÙrqrqrüüqr‹-ºÆkYãÔò÷4¸˜¿ë¤‹/’Û– dc`½^]UUu?ÿ>+ ùó«^[„…¢ C!l#E+HGÿÿÆD=4  ù!��„ ��€`÷??>0{NË~NË~L.ÿ?ý÷öóòÿíú´7{ÿÿø"\wFMVa†üüL.yL.yL,wJ,ñðÝF"ý†H ýÿÿÿ3ó3?HH/H/HHH'//ˆ'//ˆ'//ˆ'///o@?p0_?p0_?p0_0000(o0(o0(o0(GGG/0/0/0HHH'//ˆ'//ˆ'//ˆ'�/0/`//`//`//`00(o0(o0(o0(GGG0ç/0op/`/000(APá€þ0ÿ ÿÿÀýUUUU ÿÿð``¿`_`_`_``0 ÿ``€`_`_ÿ`_````€ÿÌ `_`_````ÌÿÀ_`€`_`_``ÀÃÿÿ``€`_`_`_``ÿ``€`_`_ÿ`_````€ÿ30 `_`````` 00``à`0000``à`03<0``à`_`à ``à`` `à`` ÿ`à````ÌÏÃ0```_`à`_@ €BßÿÝžßßÝžÞBßÝžÞBßÝßßÝßžßÝßžßÝßžßÝßÝ<óüüuÝÞBžßÝßßÝßÝœ›ÞAàBßÝßßjÞBßÝžÞBßÝžßßÝßßÝßžßÝAßÝîßàßàßàßà@ÝßÝœÝßÝœÝßÝœÝßÝßßÝAßÝßžßÝßžßÝßß%àßàßàßà@ÝßÝœÝßÝœÝßÝœÝßÝßßÝßžßÝßžßÝßžßÝßßÝÞÝßAÝßÝÿÀœÝßÝߪªjÏîÏ¿ìûþÎ'''ÎÏÎÏÎÏÎÎ%%%À¿ìàÎàž'ÏûûðìàÏ¿'(�ìûþÏîÎÎÏ''%ÎüïííííþÄìþìþìþìì'''ïÎÏÎÏÎÎ%%uÞÞÞßîÏîÏ''îÏîÎÎÏÎÏ'%%ÎÏÎÎËÎüî%ÿÀ'  UUU00 «©©«©©ó<Ã묫¬«©«©©0Ï«©ª©ª© ©«©© <ÌÀ«©©«©© «©©000?«©©ª©«30©«©©«©©«0À©©«À©UUU00 ??ó<ÃÃ,)0Ï0? ) <ÌÌ? ?000?33??0À?Àýý0?Ã0ˆ‡‡ˆ‡@šŒòNæÙ)j¨96<íáD6mFýp @î DòÐùàñ<ßáá U# ˆ‡Ãÿ…ˆ‡¤NýoššaUË„ÜUàûÔïïÎa%“á߈áá߈áÒáÖÒáá?-##q–áqáÒ*oWf2:eÒ²ßRßáß:“áß(�ßв½ßÐ�ßá`·áá'/áÒ6AÒááÛoqo>qoqÿÀüo½qµé{0?Ã!Z.?'%%%.C!  ÏóÙ¦F¿ÿÿ#>Ã.@#òIõOïÿö#!-@FöFöFöFÏ#6##H#6%3--++†#öOöLdÿdÒ3(A#4#%X###ÿÀ|##%#ýý¹|lçèk b?:’[¦JËLŸÀ‘DÛÙS�5Ñ…ä¦Ì=ªD¨¨@þPÞ+N ere?Y­‹kÏ*æ¹@n ´).!.ÐÿÀÖ64À_íÙU¢> –]_¤¢ð߃wÄvNõ¿¢Š]mŒbzؼG÷bó=J ÃÃÿHý…Ëh¿›˜P°–Œò6õ0ÛUÕ.âŒd>»~´5EF6M?†˜»ZîÚ.qz�³U-»ó4` €%€HR °ü=J@ÛXvyr?J•6:tm¥w¦ðwúµ >!?F44ÿÀ`ÌrbjýÚUà  *,($'5%‚;-  1ŠÙð Àÿ"1!?þ¯¿8öy'.! 44 #RÂÃà óð??$ 2 !0#$/ð€ ýý_Yóð33Be,: }ÙU<<UV_`kl+Ê›Íî ²¡*�ƒ¼áÚÂJt’Ñæ .ÿñOü æï ¼É)AzÀ¿‡ˆuv³9îE ¿ÿÿy|Ö£ñÔ +6DM„EM亰ÁÀÃÃtcd`_Áóð??~D çòÒ]sƒqöüÿ('ÄI-XAˆÿÀ3æò\N]ÕUJ.uJ.uH»vH.ëÿÿøHì“&+ (øQ²q€? Rqa QØoMÀq%EÞqWæs€��! ??3;pYb?@båÿ@ æåßÿo0(o/`(o/`(GGG<óüü·/0_ˆ'////?_ÐÏ`p0_?__Ÿ0/`(o/`(o0(G/·/0/0/0/0_/?_Ð/?_Ð/?_Ð/?__Ÿÿ_Ÿÿ€ßŸÿ€ßŸÿ€ÿ0/0/0/0_/?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿ `ÿ `?Àÿ ``PTU0ÿ$€@0ý0ÿHHH@aññó‚‚‚~û‚‚˜`‚‚~`UUU00 ```à```àó<ÃÃ`À`_```¿`0Ï0``_`_`à ``¿` <ÌÌ``````à ```à000?```_``33```à```à``0À`à``À`UD €† Zšß9€ ñ?üÁ ŒÄ€¿uÐ     *," *$24  6@BD><   N@Z\J0 RLZ\F8  NHVXB4  .8:<64  F8NP>( F@NP>0  F@NP>0  $          *46820   B4NP>$ F@NP>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" ]        EC.E460>@.   60>@.   60>@2$  A?2A8:4BD2$  :4BD2$  :4BD2$ * 0*,24"E(      E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2%824:<*,.0 "$A535    u   53 5   "$  53:5@B<JL:,  B<JL6(  >8FH2$  2468&,    A    "$  ( "$]      53&5,.(68" &$ .0  a $  & .0&  .(68.   60>@6(   2 864 >@.$  60>@.   60>@.   $… 9u¦Su8ouou'!/1'  /)79/!  71?A7)  0 .3C¬r�s€:4BD2$  :4BD2$  :4BD2$   2n±35 ;=+%  /- 79'  /)79'    T32_powder T32_powderœÂ›ÃÀ�Ä�BáÚ�Ã@ŒÄù„ùœÂ@ŒD›Ã�BÀ�DáÚ�Ã_„W õ×ÿ3ÌÌÏzyöz|zzWÔÌÏÿáßá=ßáá¤ßáá¤ßáá�ááߤááßàâ>¤áâ<ßáyáâ<ââ<ââ<ââ<|zz33?ÿ|z|zø{ö|zz|ð0ÿÿYÔßáŽâ>¤áâ<ß=áߤááââ<¤ßà>á;à>á;à>á|zz|z|zø{ö|zz|YÔßááߤááߤááߤááßááâáß=áßá)âá;à>á;à>áyáâ>áá¤â>áá|zz|z|z�yözz|zWÔááßá¤áßá¤áßá¤áßáá Ïüÿßßàßà;áâ<ßᩦ«®3ÌÌÏ(`@`”dÔdÔdô FDCZÔ:Fôl S¥:S¯33?ÿ*(æoZÔ:BIdÔo:öZiz   *ÿÿþ`f@o(dododdV@–FõoZiZ$voC¤o:Fÿÿ>(dodododdo`VY@:d€_UUU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© ÿÌ©ª©ª©ª©«00?Ì©©ª©«©©ü0Ãÿª©«©©ª©ª©ªÿÿ𩪩ª©ª©ª©«ÿÿ0ãä©«©©«©©00«©©« ©©?ðóãä«©©ª©«Ì©©«©üð0ª©©«¬« ©©ü«ãä©«©©«©©ð3«©©«©_UUUTSTSTSTSTST7S ÿÌS00?ÌS)ü0ÃÿSTSTSÿÿðTSTSTSTSTVÿÿ009)?03? V?üó9?Ì?ü ð0? ÿT7?)ó3??ÿÿÿÿW¢ƒƒƒÙ;Üeêf°IX„ŸÛŸÛ+ ®½s  s: ¯JVŸŸ¡Ÿe½‘éÌ¢I‘½ÜH;+¢ Ë½½ëeŸ½H­Úv9t¯­HGƒ‘° Í øGHfŸ sƒvX,JΠ’9 ÚŸ ÌËe9+H9 ¯,9¯é’êŨÛhW’Û ½‘Û+ ƒsêt÷ÛÛ»I¯’ êúøø½,+ XÛƒhêÚ΃¯9 GH¯­;Îù‘ ;v:÷Ü„¡÷ùÎÛ¢fW„Û„¢ø¾Ÿv WWZ9êøËt€0„„Hs’ÜW°‘ ;­H’é9½¾Is¾X9ø¯Uêù¢½Húëo¯¯#$)#WWõðù¿ù'8ýýÿÔ¸¿ó%,*#%&, @   >%HF>>>>K";!%!Ÿêÿ4øZ!4s¿ÿ 0+   ($ " ="C!  ™_›™�ÿƒ#ð¿õ¯d" 1 %  $$[$G Ss•w~Yÿÿc//J$ÿÿÿÿ©“±IæÌbZ’·°8âžfrW+μ#qÁ(皬yêlh�:ZDÎì9*èq¹ß¥Ì< ŸäÄR„X¯FªÌ!l Šw¦g_#ù5‰sôâyû¹’oiJu£vïá.mx é3/kY”¨½¯<13)v—jÂɨ¾1Jc2 í…�™;gÇ&k�Ó"Êÿ‹…”¦=g¯ô†>Ÿ·YàH[sR?>�õIË]æÀ 7á·¸Aª„id7µÈð¿±^J9—„³N«õy#_Hß)ÉêñÓqÅ®zúíÞ/ÙÃ\gìd¾àS0öþ—œÞeøhnvA;È?ßähY¶÷é©$Òa€A`ïþý052$Y:C¯R>yZ&PTÿÿCÿïNMz`E4q<*q>"a2K0 »9P">O*A   *Kˆ10uRÿúè¬4L*uP0A�F÷9 &C¼ _¿’?"$  ]*"K¿ûóÙ„3,q @WOsh� WPÛÛ›ÿ²"""û/úÿ�p�XJ; 7ÿÿÿÿ9´ÊUJ‹þE÷(ŸŒÒ×d¤$]@ r0sUfÚPø‹ ª®„èèp°ºS6o²ZË\mn�ñ2 c$§bÖVôÏ^EL‘§.½•}—êÈ!có0O4l“Íi~bùu“åZÓ ì E»KǰMhˆ5¶i.ÓDGA6’»Ý�ÒbÒ²žwƒÞyd¡ä£»¾IåRE¾ &wgàÈ}åb„J±kúX¾™6¾ìæÍ�½Ú°MP’Qè‰,dù&E¹š^U��: ”]�—,ÙÚ ƒ&ô5Þ½o­”�ñ!Ž ‘ªB#ô?Ä §T$ ?ÏRàLÀ­^ILÿ-wõoººªª@VPIatöóùø0# gÿÿ1 ¼W&P6KÄðCCcCA'AU +f'.)HToŠ’ž�8D!“„q 9ÿÿU.P&Ø…Oõÿk2PVÊb �ÿ!#»ÿb!'!10dˆOˆ/Lï4ᢟ©%øöy÷W× S‚ÿÿñÿÓQ,&%&]`Ž{Á„±‡ }ŸãÇÿÀ?Ý>=ÚJA~Ùn%à³y†°½ÔÁÿÿñ$Bz TRžØ°}ì96uj£¸4;D°·;všð‚°Î yntuŸ/�¥¹ìI� 2 ¬H#·ÁËlÆ_ÿ +auñ€ÿw=Ô#ü?ÿ¬½6ðó9YþÃÁâ>_»VÊ]ü[íšœóÿHu•[s��„—­OÆ¥Î)³`VSÜP•A†ð?q^.ƒd ÿ…NM†þóÏ7+,-.+p!°.?ó%.?÷Dþ'oñ/ÿ-02¿ºø¬-23,ü?'$5034ýO/�6)27* �¯:ÿ÷ýýW©B6 ƒD¿‡y� ¤ˆR—.ÄW¡ß a½T´›§³üý4Ü÷¯$œ¢}ñÁФ-¤�cèÿÆ?äÿ�™Ôcùè}MQ `‰KÔ`?óøLxòSBCÜ‘µ€Ïp,OS?h LŸ¢üé´ÃawÞãÿüˆÜ E1xˆµ  N ò}Œz6O¥ `bo' øq9~>+1Ús‘¯ýà8Ë¿ûðUD�HÎê?óð�g÷ã&2;•LD €žüR œVÎi¡ºÏ%IôMur%(&-(—åÖ P¶uey$Ò0`bA`hLÿßü*¥t0 O ,=‘¦[, �õõeó¸ÿÿtM8Ïÿüq02_,I $1`;».È· TÖÿû0/t56u2ûô :m&4Y2 ¼/ÿY`£ŒC¼ _ÿð‘ HÏþ?&= *?,+?ãð�r=2gS8!/sLaA94 -&;N MBc` G÷ÿðBlM *Kõ×ÿÿ3ÌÌÏ/'///ÌÏÿ  4 4 p/?_Ð/?_`@ŸÐ/0o__�0000@0033?ÿ00(?////ð0ÿÿ0@ŸÐ/0o_ ?_Ð/?0G0/0/0@0000(?////HHH0À@?/0/0_0G0@0000(?(W///??HHH'ˆ/0TUEEHHH@! �Àý0ÿ�$‡ý ÿpý€ÿÿ_UUU€€€€€ÿ````€`_`_``` ÿÌ`€`_`_``00?Ì``€``¿`ü0Ãÿ_````€€€ÿÿð€€€€ÿÿ00ÿ```¿``à`03``à`` `?üóÿ```à_``Ì``à``ü ð0_``à`_` ``ÿÿ```à```¿ó3``à```àUT €�  !ÿÿßáá¤ßáá¤ßáá¤ßáá|zz|z|z�yözz|z|YÔáßàßá=ßá=ßá{ßà>áߤà>áߤà>áߤà>áßYÔ|zz|z|z�yözz|z|YÔáßá=ßá=ßá=ßáfáâáâáâ>ááߤááߤááߤááßz|zÿz|z|®«dodododo>( ef¶kföjZfõ¦oZfõ  >(ÿÿÈf¶kf¶o@44:FfoFoFoFoÿÿUU©«© ©ãäü0ë©©«©©ª©À0 «©©ÀÀãä«ÿÀÃãä©«©©« 3©©«©000©«©UU V9ÿ0Ã?UÀ0 ÀÀ9:TÿðÃ7? 330??000ÿÿHøêŸ¾ËtÙ“útŸJeùeÌ½Îø9:„<:ÛúH9:‘ƒŸeø„ÌeÛUVŸÛ9’9ésø½ÛίW ¾ÜÌÜ„=‚;ËHJËêg÷ø„ÛXô@usuJ¾ÜIŸ‘¡X<Û¯‘ƒ9I9 ¯¡XW ½Û’Ë,½°éË +ÿ½Ûfh¾¯ª¯Ê¯Ê¯ªÏ''' &$U=%$-"% HñF�jð 2""$M1#  |×� H ÏhïjïŠïÿ!%'."ÿÿÿK²Ç&°&Ø÷dŸOДñ‹òpötÚ¼ó­ŸD±TYtáÃÓ-·§ÇZ�ÙTºªBð;ÞS“\<½¨3Ê866~ñ„ûZ1„ô¤›dGåÝïC[lØÆNèRÆx¿Xg·Z8òa¿+»ö£5 Bƒêú’OõŠ™DÐ3èn#aÿDi& úªòD´ee(!"SdóC2„WL)+'Sä•P"""V³FA1Ãz! %u?u?Wu1$«÷÷ǹ´¾�!_!ŸÿbXãÿü#öW_gI^@C/ò»Gi²#¢ªÊ3€ ºúÐB£>I‡K2`–1‹÷ºŽ2QŸËi8ÿà(ú�ÚK"¿ÆAó}©s}J ý¢•îËM|\:ª¾€8ºNÿ&pÐËöæôB”e2…J'�ü*9:I5€G5~9;v&(ÿ’H`S&ð*ÿ+=j;Zßðÿp‰…Oÿ;J78&&, ¼¶�ñ/óCC@Gfoÿÿ;¤í_Ÿ¡ÌŒGI>¦~™Pð�J(qø|xV_ðbZüHfÿ ÜÞ<{ÑÊu®ãߨAͰoÍÒ¼ÿððV¹>l,£0…2…4aUU™˜ffoþÿ.[\ iXïÿè1 #$'„!&HHfü*SÏ3üóXghk^'*).Ïà-2?���’ÿÿGGG@0000(?(W///?_?'('/X'/X'/p0G0G0G0@ @0000(?(W///?_?'/X'/X'/X'/X0GGG`@0ÿ000(U @ÿ ÿ Àÿ0ÿUU``` ÿÿ0Ã```à```€`À0 ```ÀÀÿÿÿðÃÿ```à`` 330`à```à000```€ÿÿÃöÿÚäœÂ ŒÄ€¿ÿÐ           &("  *$24.   60>@:,         .8:<68:<*0        ,            = G   ‰      I                   "$  & .0*  2,:<6(  *468&$&(.0  " .0  59          9 CE!!    "*,&  .(682$  *4"$&(   Q* 0 2,:<6(  >8FH>0  F@NP2$      5 ?A          &("  -     5?A     %#%     "$  " *,&  M  "*,&  .(68.   60>@6(   T32_rockT32_rockðÁEšÃÀ�ÄB=*•Ã@ŒÄ¢>¢ðÁ@ŒDEšÃBÀ�D=*•Ãj>b W][]^\¹^]|Œ‹ÏüŽ][]÷‹¼]?üð^]^È÷‹^Ù÷‹?Àüø~Љ}÷‰V »ûÀÿÿÁ.-Ïü0 Œ Á-• ?üð ¦-‹œ-?Àü.--ýÌ3ü©ª©«©©q㩪ª¬«©©«qrª¬ªª©©qrªª¬«qrª¬ªä㩪ª¬ârª¬ªýÌ3ü7TV+$jT$z9Vxÿº§¥¼ÙCÙ=èçBð§ñŽñ"¾ óÙ±© q¸Ç%ÈïÈæNñóq¬rÃJ qË: q/$Ës sÿP7Ž1Pw[´yZV 5}Y207aL1KI|Am$G�_=.cÿHµ ]¾UêP,¬^Ÿ<·Îa-ìÁç!=Œ.cK¢ ÜûE'`·÷ "[#xK0P Q”8G TSV46Ð#ðP Ï ¢ïN=Æ6520i@ ÿ¬K¿“8‹iCEûÂrÈ÷Ú‹s‰½½I:V¡t€&]r Pk7 G: VT6ð ƒ F AB(À`ÀßšÇµÉøˆÏïIk%N¯ÖsM Ûp%uÄLsnÿÿ÷"w0Gnƒ$"gEÅ[>š[>]Å<=\[VQAðbƒ Æœ&…^UîPOL6`À  b@ ëì&€ ‹ŒW///00_0/@?Ïüˆ/ ?p0?üð/0/O ?  ??Àü?`_ @_ÙýÄÿý„ýÌ3ü`_````ÿ___`¿` €___``€___ €___ ÿ___ €___T„ €@푱ω!Š>XÁ ŒÄ€¿§Ð    *0"( 6<&, :$  &,  " T33_groomed T33_groomed„Á3ó Ã@•Ä„A¸¾šÃÀ�Ä   qq„ÁÀ�D3ó Ã„A@•D¸¾šÃ� …  ÿÿÿÿ¹ºŒ»‰ºŒ»‰¹»¼ºŠ¹¹¹‹¹¹‹¹¹‹¹¹Ž¹º¹º¹ºŠ-ºŠ¼»¼»¼Š¹¹‹¹º¹º¹åº¹º¹º¹ºŠ¹º¹º¹¹‹¹¹Š¹¹ººŒº¹º`ºº¹ºŒººŒººŒ»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹Šº¹º¹º¹ºŽ¹ºŒ¹‹ºŒ¹‹ºŒ¹‹ºŒ¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹º¹º¹¹‹¹¹¹¸ºŒººŒººŒººŒ·ºŒ¹‹¹¹»¹¹¹.¹¹¹.¹¹¹ê»¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹‹¹¹¹.¹¹¹Œ¹ºŠê¹¹¹»0¹¹»¹¹¹‹ÿÿÿÿ././0---0.¹0.-\.-Ï.t...EEEÑ0.-.-.-.EEE-è.....-EE]EEE-E.0]E-UUUU ÿÀ骩ª©«©©ÿà ª©ª©ª©«©©33< «©«©ª©©Ì33«©©«©©«30À©©«©© 30ë©©«©« 00©©«0<30©ª©©«©ÀÀÀÀ©«©©ÀÀÀ«©© à «©©«0à ©©«©ª ©«©©«©üÀÀ ©ª©«©©ðÀÃê©«©¬«©UUUU ÿÀÃÿà S33? ?ÌÃ33?330Ã?? 30à 000?0?30?ÀÀÀÀÀÀÀÀ?Ìà ??0à  ??üÀÀÌ?ðÀÃÃSÿßõÕùèùúù–všù ŸTùúùúùûœjœj�–lûg�yÙø¨–Õáù}¦–ÉjœùùÛ´ÙJÙXé·[6À°m#{•:ùfe‰o�ïC ¯9:œÿððð0/œ£¤§{�ÕœW$.}k•�]F3žÌÏÏÃö‰BÑ7iÄ"ÓÀÀÀÀÏŸ"±Ï4ÓíïPþ¿fG¨§æ˜—|ˆ‡WüZÀ ¿g É¿g ÉÿÃÀÿ¿=>ÀØp}Â}šÅdz‚ç‰ãÑ\iÍ"wßuU, :=ÿÿà .-L(L-":A ÿÃ3729:  66G)4E<43 "/ÿððð82C)B/"0AåMbÒ)»æùð<ÿÛ)78…!¨…Çg]|.âõùlOvêiÈ£XŽÈ˜üSù±yz½<ð8S,¢à<à5禩=þÁ· Qݵ‰pÃ=óypÑÿÃóð(ª‚Юi¬A»î1€š�ÄZíZ×5?»‹efQRHG/õoiç’VùlÀŽUÄìÆäý‡´åº¼I—ÿü&UÅãoZjiþý¥¦N¤»5š™\*m�öŸÑœu§ÙÒÙUÝiì$M½ƒ·ßrd; >kL.u\A4ðId¡›óùt2Ö˜ TýÃÃðAVÛÞþý›Ñ‘ÝÞ…†Šõ7ÊøÒI~)ˆ‡èçDšM�3 B”�À¬«¡¸96“RFdRÿüµØ<ìf⸑’•–³š,®Üv_2›iÍÙ—­ï}áEÊëZ?ºW]VT;"8mTÑv`?>ð4q¸‡ÿZÕrp?ÿÀÀ2×~=/j?'F»vN+,a  ÿÃÁ ! ðg÷ÿhñèix©4v R@€õÒÿH_8"ÿüY4"U2sBÖ„�î2þ÷«ÿ123.H#ÿÿÿÿ@?p0_?p0_00//`00(W0(W0(W0(W/0/0/0_/`/0/0/`0(W0/0/0_0/0/0/0_/0/0/?p/? 00//`/0//00/0_00_00_//?_Ð/?_Ð/?_Ð/?__?/0/0/0/X'(W/`(W/`(W/`(W///?_Ð/?_Ð/?_Ð/?__Ÿ Ÿ Ÿÿ_Ÿÿ€à/X'/X'/X'/X'(W/`////?_Ð/?_Ð/?_ÿ//?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ ` 0/`ÿ`@00Ÿ@0000(WQUTU!€0ÿÿ0ÿ‡ý0ÿ!!!ýÿ„„„‚‚ÿHHH‚‚‚‚~ ``€ `UUUU ÿÀÃ`_`_````ÿà €`_`_````33? ````_`à`ÌÃ33``à`````330Ã``à```à 30Ã`````` 000`à``0?30`_`à```ÀÀÀÀ````ÀÀÀÀà```Ìà à```à`0à ````_ ```à```àüÀÀÌ`_```à`ðÀÃÃ_```€``UU€€@ €@€H€@�ð¹¹ððšAððä_ð!ðqLð)3€ð˜…ð *ð0(.ºuûø%­åÎ(ð@ �Ä€¿{Ð           "024.,  60BD2   64 >@2(  64 >@2(  Zpjlrp=  5Y†;Y[]S] ') ! ')# #% +-# KYSU   s mXKq! ') ! ')  #! +-#  gus%U,OUWY     OYSU        D$d{.2dfh^dfh^h60>@*  2,:<.   60>@2$  $nÑou,       4 23G´:4BD2$  :4BD2$  :4BD2$   2rµ35 ;=+% +- 35#  '% /1            @    424  !      7gÄ>8FH6(  >8FH6(  >8FH2$  2468&$ .(68&  .(68&    20  "$:4BD2$ -.4 20    T33_packed T33_packedXÁ\o Ã•ÄXAì˜ÃÀ�Ä   ý'ýXÁÀ�D\o ÃXA•Dì˜Ã¨'  ýÿÿÿ333ÿrrrpr¬qäpr¬qäpr¬qäprrrrrªrrrªrrrªrrrprrrªrrrªrrrªrrrrrqr:qäpr¬qäpráqâráqârrrrrªrrrªrrrªrrrprrrªrrrªrrrªrrrrrqrpárpárpnÿ4#õ%•Yƒj棧5ß>±÷Òv#õ#§#§qÜæËHÓ):MÆÈ>†r³¡‰}5¥çŒØÔ:­ÚëÆÔ>U}ÅÅŠ`ÚY÷Ùýf_�ýýç³Iý—üIûZÈÆÆÙÆÈÆÙÆxÆO<ÈÆªÆj´kÆzŠä5>óý´hþý㳚ÆÈôýnÆÉ´ÊÆØý´ž¨ÆÈÆÙÆÆx‹zÆÆÙÆÆÈª>…ŒöŒ5ÛªÚ�™ùŒ_ wÅý²ûø ³I´©=ý´ýÊþ´RÈÆÆÙÆÈƈÈ#TIãmWÆÚý¢&D›.;@ ‘�̯@[ÜY¸)¨Aï_×÷,D> Y/^&k1`0 }1`0aôdô ±Ï531x++h ++V'+3),+/\,*�+T*(s)R*s)R(j GÓ  0-2_ÿ) 1),++Z++\/)*(K'RK(!)ôýüüº ?(O(c*(ÑÅÑÑ2 +-+ˆ+-+‚%+-n++/*(*‡'R(&™((*ÿÄÅ×u'R(R  @)-H/8 1& % ($&ÿÿÿÿo€×.JNÈÆ8Ãßèñ®ô ¹w£Ä{é²978+¬¿h¨&¨[Q3¿`LÂÑ3öwo=xwѾ™…z £~/ªPïÄt4~"'ñȣ]·ÜD>#Sp#¦–±è5%ŽgâÊŠ5²«#h?€§w¸?cBli쯀-® 6GÀNhœÄXû¶¹ÿý ¤g2ÝëghÃÄg6961/—�Íñ¿ÙÊ® ¦HkFq)� ÿDº8ÇXr‰³‰�ºˆg2dê¡D}ýy휂e_Ä$ƒ4 TË ¥ò_Nì?ÃÑ 8A&%ËÀûR+,@6sD e8$Ïüëó] 0Å.. ÿÿÿÿ—!õ²+¾à‹ÜÚ,«`aã õ¡Ÿ[„»¶I’·�#n(È}+ª 0A$#$pØLý¤ZG@œË)Zs{B®?ýpÎ{càÚª6¶ë«°F LM’#$#§™â?ˆQŠH¶Ö,†r°@*ƒ@?$#@YÎY‡Í­CÈÍvÕ®{‘JB“ %hñ^3–A-$X«C!Ø/é@v0=Õ'Âý@èyz� /%Ó÷�Á˜E.|%á©iˆi  sÈ.æfYù)oeý"Ã÷<"!ÿ$ŠZªzDÿo $8'F!ð°À„ #6à‚0ß1H???'H->'ó<L0`a`CÃÀ ú÷þü? &#' &]]÷ s`ŸãÄÈ:ýèëqQ‚È@~¢4lÁ’e³99:;´¬o"gc‚f{ám]ÒÿÏÃÊqf->ýÁ€?ÿþBߥÂv(õ“ÐQx9=>=ÊHÃÃðüG`¿`?0=>*R¥î‹‰ý‹{ÀHµ*°#ÃÀÁÂ`ððüIJåæ7"‹XÅXR'3öõ *ÿÀÿT­o*﨧 ÖÕ ³tJ¢� úè(è¼û…)^% Uÿó?4Ti6.ËòüiBa Dû²&6f47¿},)Ï xÃÃð?@_P w<6w Rw F(w,L ? ÃwP]45ËÀðn ð-.ëÃu<6 Õ÷ýýÿð? ¦Jï+™Æýü˜¡‹kúð'›ÿÚÙ”³Ü&ó¤x&ÚÃ7ë�ÎKïÄà¸+BÊûÉH%_ç iõ$'Xƒ »ÍjÇóu㸶I Fúÿü+@+³DóïÃ%D (/$ÇÄÿÿ# NKq,Ãýn³º‚ijU"Ž:ü¹m^’ót�ó×kQPÇè<ÿü1µ�,=ã­‘‘…R_ð$ð Àüÿÿã3à| ûïûã†á�� ©¨ðÄ?ÿï}oÜ›˜,üóÀ=HÃ/0!0"qi18ßaõi~³6çâ¨ç„jM¥‘/©wÜFsüñå„8h*+*UF.9YZ0‰XghX«D,-qü(GFEÿ_`ÿ `_``@00Ÿ@00Ÿ@00Ÿ@000/ `_ÿü``@00Ÿ@` ``` ÀÀ``à`ÀÀüÌ``¿````ð0`¿`@€­äËo6@XÁ �Ä€¿Ð    "$"$   :DFHB@   RD^`J0 RLZ\F8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<68:<*,.0 &( Y       EC6E<>8FH2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  2824:<*$  ., 68&  *( 24"  E      535$& .0"  *$24*  2,:<6(  532nÝ  ;5CE3%  ;5CE3%  ;5CE3%  $ "3$9  ;5CE3%  ;5CE3%  ;5CE3%  %( 868         4 27gØ>8FH2$  :4BD2$  :4BD2$  532jÙ  ;5CE3%  ;5CE3%  ;5CE3%   3579')+-!H 4ljlnpflnpflnp    W5aŠ'7ace[ace[ace/)79'  /)79+  3-;=3%  +5#%') SYWY[]  c55gi#579/579/579!  T33_powder T33_powder„Â3ó Ã@•Ä„B®G•ÃÀ�Ä/„/„ÂÀ�D3ó Ã„B@•D®G•Ã]„U õÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ìÿ{=-/--Œ/--Œ/--Œ/--Š-.-.-.0/---/-Œ-/-Œ-/-Œ-/-¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/--Œ/--Œ/--Œ/-Œ/-^/0].0].0]{=¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-\0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=|M.0¹/-^/0/0/.0]Œ-/-Œ-/-Œ-/-¹|M0.º¹¹»¹¹¹·ºŒ¹»¹¹{=-/--Œ/--Œ/©®ëº3ÌÌÌ.ø`@`oFoFoFo`VVnSF````öföföfðððð.FoFoFoFôiC¥:S¯p.øF”iF”o:S¥:S¯ÿt.úUôiCCOz:öFöFöFÿ *.ÿ€fföfö_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«0033©©ª©«© ÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÿüª©ª©ª©«ãäü©«©©«© 0ì«©«©ãÀÀä©ÿÀà ãä«©©«©©Ã «©©0?«ãä©ÿ30«©qr©«©©«©qÀ r©?ð ãä«©©«©_UUUTSTSTSTSTSTST7S0033S ÿÿÀSÀÀÿÿSTSTSTSTÿüSTSTSTV9ÿ? 0ÃU9ÀÀ:Vÿðà 9?0à ?0?T7ÿ 33??À V?ü 9?ÿÿÿÿ‘›ïͧQ¯Ô8ƒ>$i2¡RQ‡O…Ox}M«ëèôËèá“¶í•ÙUBª§ýæÅ°7 =ÈUéŠØÍ�Æ‚z‡‘�êÄ_——³\RKébjGàLx¶|£A›Àµ*8r=¿÷½Ð#Û·øie4Li8Ù¼/$ ¢ÙZoEÖ§œ.ß…nµ&~¬Ñc»y+_ÚÒªú÷÷Ð�ÑF+c¶æL/æ„°ÌÞ>/‘«¡ˆÄ¨žÛáo“fÏMÚóD&B˜˜–´Ù'Ëá/ú8O:¿#î!t®¢K½ôàd¿î7}Gäí. ‘“Ø5pâ¹’ëW‹Ôb ,AyyÓA÷LtfÓ Ö«¯ë¾%!!!!%%™›ù)ÿÿQ""'ÿSÿqþ !’ù÷õõúÎ*++ ) H<628>#@#5%! ›ŸQÿQÍS#3ù#qKÑo*:(?%!{›Ÿ13Qñ�óÏÿ<" "I'% ›ÿÌp 0# !'#8 N"$Q1ø}Ýý•ý“íÿÿÿÿÔáÃðœj¦”7té±ÔN¶iq^Ö$²Á)¬7³££`Ð�Ê$)=‘ºoØ.Ê,¿¬ÃÞ›S�»\a‚ô™gdkö­ 1=~5b &÷Ù˜Ô�Lÿ*¨0ò@,@GM÷ý_óë?¯løÏ¬ñÊ#`•D$ŠñD6å$÷˜šŸ#,A’7Až??’?1 @/f Pô0BH` Ýõÿ÷"(ÿÿÿÿ¬1 Œ-öZäžFƒL¡Ò7J3ϯŠHL§ì~‘LËâ,Ìׇ½ßÿól.ˆ>c¢Ã=EÆI×{Ús¾Yýx x«²5£•¢ÞU�Q(9Æ�9‡�T4wˆËz}:DPšÂ€øƒº­Ý:;nœP¬pË´¶ÂïÚ"xåSeÎëæÃZ¥‰ @ As$)ú¡ÿ¡ÿÁè—CÅ  0-ä#0"0õ÷yÞÀ ÿ÷ÍÌ’!g²©‹l MÄŽwÿ`pâkŽô#3:[^š#D�q(pU-Ʀúˆ59 ÕÚx%xÿü¼ôÏnÿ#HÊ 2ð,ïoöÿÎñê+Ï0 27:62) óÌ 4Ÿvíßjë¡Ì¶¢ú.èd�\ÇH†ø†xwý�¾Qt…·¡×<¢ÿÿñ›©5{©*iPðó�$°„% r$Ü% ÿÿüE-]Úž0ÜÄ�©-¹‘"õÖ:°ZÅÖäñOüÿŽ>}'(ê\ÿÿ±Ï,Àe’–"`x¶#Ä®Á˜Ä-RÙ¨$úÿ`x ÀÞÿð}E+®O½�kõMC£4Àr¡�y–Ç™Sß—˜¯�ð·-ο9å,ôUJ}[Ïÿ a1±'=rþÛt8§íÐË ‡¨ÍUu�–,ݬÎ]bp~üÿot 10!ÿ¿¡™0#2#�BBI€ |µ!N 2. ,üf BHÏÏ!D '6#2( øa†H !fªó$8ö?ÿüš‘wŠ1ÿÏÏÂr97{º=xA5H@�þ)PdÀEÿ÷ÿù,6õÿÿÿ3ÌÌÌ'(W///?_ð Ìÿ?'//ˆ'//ˆ'//ˆ'//ˆ'(GGG`@0000('(W///?_?'//ˆ'//ˆ'//ˆ'/0(?('@'@'@@ `@0000('(W///?_?'/X'/X'/X'/X'@'@'@'@``@0000('(W///?_?@'_'/X'('('('@o0(o0(o0(`?(¨@0000('(W///??HHEQQ@0ÿ @ÿ ÿÀÿ0ÿ0ÿÿ€ ÿ@_UUU€€€€€€ÿ````€`_`_``0033``€``` ÿÿÀ`€`_`_`_``ÀÀÿÿ``€€€€ÿü€€€ÿÿ```à``` 0À````ÿÀÀÿÿðà ÿ```à```0à à```0?ÿ`ÿ 33``€à```à```À €?ü ÿ```à``UUAPfffB  @€fffh �€ ýÿÿüü--Œ/----^/-.-.[-/-Œ-/-Œ-/-Œ-/-¹¹¹»¹¹¹·ºŒ¹»¹¹{=-/--Œ/--Œ/--Œ/---/--Œ/--Œ/--/‰/0é.Œ-.--/-Œ-/-Œ-/---/-Œ-/-Œ-/-Œ-/-¹¹¹ÿ»¹¹¹ºªföf`ö”`~V\fofofo.ÿ€fföföföf`@`oFoFf`__eRfododffofofofoÿÿUU ð3©«©©«©0©«©© «?ð ãä©«©©« ?𩩪©ª©«0?0 ©ª©ª©©ÿ00ª©ª©«©000©«©UU ü3??3? T?ü 7? ?ð?0?3 ?ÿ000?000ÿÿ’ ¹�F2&G¢2i^u·æo¸òê!¥ê_ÀzÛ/Weê}ËüýocÆ!V$ç„„„“U¶´XÖAÊÅ Ü"É7UŽGHÖjZ¼vÔ¿[i²é¥o±7ŽoHçäy¯-ËøzÐÃJÝÆÇðMÝ þ—HQ|ªÉþÉ|X°ÿ@L᧺ªsÍsû»ò+$$ïïÏïÎï.975 &""G9ðµ5[‘ù½÷0½ù™¡zÞÒ“•Þ  ð*ý€ïjïnêŽ'+ÿê¿È?Š�ÿ ÿ ""ÿÿÝ´›âºáàVÄ"‡ÑÖ rªC0„ýéôg߃ýuGÛf=ôˆk³/„ÎˆÕ‡Ðæ™Ó×"'ýë×Êsµ¸¯´Ø(Ð{aJÞ:öqWŽÉRúÞ�¾âŸ#®Ñ•ض´?÷-"f:n^7 bLhôº¾„± /†žºÕ�†ˆ ú‡‹ÃµÌÿ©NÖ?êúÿùÿŸõ´,§¯qó/õ-ýoBPò3"P7  /¦úJÿù•ÿ' 2¿¿õt/ü2& 4*  03 4OÿÿêP�£ψ/ ¥/ìçÂP‚ 0¥ q À0Ò�]öa Ü_Í3ë`%::xë:Ø›²pÐÔ NA™ÝJ”q×X"+æ¸Ï§XTgœ$5YÝÜXv[×”�ÿÑ–ræêBPD2"Q@ „BH#S3¤(; PuÌ=ÿðòOŠoˆ‚"2/oø]hõÿ¹™#HO$=Vô�úû|ÿá—9�DÝ6¥H  Aép©Ð#«‰ÿÿü‘X²îóôË�“èÿbþtFÿYb X_ðV#6ÿÿÿi�ÜWÕ§CÚg�ŒôISº{ÄŸ‹çk½Fj8a´öÍ„S¬ÿÁá8gøÿ éïÑ/õ/÷=$ÿ»Ì4tO_Þ  .0  6C ?"ÍÛï|r ž ê_Ofµ{ …oô/úî-&ÿÉÿ)Ð4-~$2؆묾6)ùWúÞiöœçg ¤Ÿ>+÷à,á*O_ôeµ¯CfLÔÞB'køyÅü8¾ßòRR;;$$ªaU{@*ò÷hÕWÿÿ\„8 ™!!€ï,YRUl7‹JeŒ‰V(ƒ’sdƒ4F[B)FEÿô <L ) �&Hð&%ýÿÿüüH?(0GGG`@0000('(W///??HHH'//ˆ'//ˆ'///0/Ї0/00(o0(o0(GGG`@0ÿ000(QD ÿ€ ÿ@ÿUU ü3`à```à``3`à``` ?ü ÿ```à`` ?ð`à`_`_``0?3 `_`_`à`ÿ000_`_```à000```UU $ !  ÿÿý†ÿè„ �Ä€¿4Ð            "*,& .(682$  :4BD>0   (*,&$   6(BD:  B<JLB4  JDRTB4  .8                 A?A    "*,&  .(682$ -      EOQ           535     "$  " *,&  5              ")(')$" *,& &(.0*$ *,24.( 1         (&86H     %#%     "*,&  .(682$  1/2468&(*, i  $ & .0"  *$24.   60>@6(       535    "*,&  .(682$  2468&$ 2(>@.60>@.   $ 5 $ 2   :4BD>0  97F9LNHVX2$  :4BD2$  :4BD2$  T33_rockT33_rock@ÁqýŸÃ@•ÄðAq}™ÃÀ�ÄÀHÀ@ÁÀ�DqýŸÃðA@•Dq}™Ã<H4 Õ?ÌÏaÛÜÙJHJÛJÿð?IJ3_ÛÜ`ÄÜÌÿóJH‘JI’GHJHGHJ‘HGHbaÛÜGHÏÀJÂÜÕ?ÌÏHGJ5ÿð?‹JI0IÿÌÿó%&\˜HGîÏÀù0G_㩪ª¬«©ª©ª©«©q᫪¬ªärªª¬«?0Ì󩪩«©©«©© Ïóüª©«:㩪ª¬«??©8rª¬ª_7TV9Vx”?0Ïó? ÏóüU9VT??ÿnu_646d:ú†@·§šÜ>Ä!ŠŠŠ¼Eè?=?,Æ`ru©y((­Û—$-¥7�h§¨! ¾¨ÀÀZ}ÿ¿1°ù¢ù¤ÿO  e>%`)`+¡ 5 $ "c74k=61f5a/\o,GúAE*s*bAD]<6/A·þÿ&CP õÿÏ”)ûš.]^ÛÌ<0ßéabÁ¸Ë:9„Æjçµ>0½‰V4zTðñÅ©–Lq9I0î±"M‹Óÿÿ£ð–%) t@eíÆ- <0 $ dÇü ˆ™&õÿχ'G" ³ªÌ<0¬'´³—Ñ6• h#,¹~sœCû5[œÊƒ·n¥cD§èDcûÞÏÏÞ´++„ZU�€CŒ0.'2"‹ï ü .07' Je`€¸z4 ÿ}Zóó?b^}?`OP À(U`€`,C‡Š€U?ÌÏ`_ÿ//? /ÿð?0/ð`_ @_ŸÌÿóÿ€€ÿÿ€ÿÿÿ?üÿ Ÿ0/0ð`_ÿÏÀ €@_UHÿ ÿþLÛó ‚€�‚~ˆ_ÿ___`_`_```ÿ___ €___ ?0Ïó`_````à``` Ïóü€``@ÿ___??`@€___U$„  €`žçrÞhä2`ÐA ‘Ä€¿ÅÐ   "(  $ "$     6<:<>@6@$ 2 T34_groomed T34_groomed(Á ·©ÃÀ™Ä(Aìñ Ã@•Ä   àwà(Á@•D ·©Ã(AÀ™Dìñ ÃC w;  ÿÿÿÿ’‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”ÿÿÿÿ$#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&UUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ü0ê©«©©«©«©©«©© «©©0ë©©«©©«©©«© 0©«©Ã©«©«©©«©©«© 0é«©©UUUU ÿÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSü0Ã?? ?0Ã?? 0?Ã?? 0Ã?UUUU ÿÀÀopopo²°ÀÿÿÀ²\opopopo²ÀÀÿÿ°²\opopopoÀÀÀÿ²°²¦¹poü0Ãpo²°²f°²°°²°° ²°°0ò°²°fóLK²8°f²8°f 3²8°fLÃf°²°²²°²²°² 0ò°²fUUUU ÿÀÀÀÿÿÀTÀÀÿÿTÀÀÀÿTü0Ã@@ @0Ã@@ 0@Ã@@ 0Ã@PEEab?1”/À1óbabóÀbÃ0/Ï/0aaÏÄabðba?/0bP@A„†]UUUÿÀÑdnÑÒÑÕb"!¹ÑÒÑÒÑÒÑÕÀÿÿb¹ÑÒÑÒÑöõÀÀÿÕb3Ú€¡üÏóÂÈob  ababa8JL:(  >< FH6,  :8 BD2(  E      EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  5325864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&   T34_powder T34_powderp ·©ÃÀ™ÄpB€›Ã@•ÄŒŒpÂ@•D ·©ÃpBÀ™D€›Ã  õ×ww3ÌÌÏefËgeeeï©ü33ffffhffÌhffÌhffÌhfffefefefefeÌfhfÌfhfÌfhfÌfhfï©üÌÌÌffhgeeegeÿÿð0cfËgeeegíˆfefefefe‡ˆegeeegecfËgeeegíˆfÿüÿefefefeegeeegecfËgeeegíˆÀ?ÿ?fefefefeegeeegecfËgeeegíˆ0ÿÏfefefefeegeeegecfËgeeegíˆ ÿófefefefee©–»»3ÌÌÏ2 f`†o†o†föeeeÀ`€Z`ö†ö†ö†ùüÌÌÌÿÿð02VVV_�ÿÿ`2VVV_ÿÿ` 2`õeeeÿÿ` 2VVV_ÿ` 2`õeeeÿ` _]UU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©«ÿ©©ª©«©©ÌÌÏÿª©«©©ª©ª©ª©ü ª©«©©ãq©ª©ª©ª©ª©ª©ª©ÀÿÏ«ãä©«©©«Ã3<©©«©ãä ü©ãä«©©ü30«©©«©©ÿ«ãä©«©? Ì©«©©«©Àÿ©ãä«©ÏÃ3©«©©«©©0?«ãä©óðÌÀ«©©«©©«©_]UUTSTSTSTSTST7SÿSÌÌÏÿSSü 7TSTSTSTSTSTSTÀÿÿV9?ó3<?9: ÿV9?ÿ30?ÿT7ÿÌÌ??ÀÿV9ÿó3??0?T7ÿüÌÀ??ÿÿÿÿOcÖ ‹¼êç Ý�°9IG·Ÿ3û;kLv{ðªt×”sppn«›ÜÚÚ .k]k·m·m·6JYŸ¶C²UoüEáoþBºHxv+o�oŠ¥‹�Z ‚¸ÜVZq•µ+‡,¯cLÚÚÚŠÜÚÚXç=å?å?åèÓ‚+íCJ•îq„‡ŒŽ•Yƒš¬ÚÚ¸ÜÚ¬†çk·m·må¨Å ²~¦L0‹t¿…Œ^„^’šÚ¬Ú¸ÜÚÚXç=åm·m·V °"z¦¼T]µ^î2éæÚÚÚ¸®ÚÚX¹kå?å?å?ä3 ?JaÙ¼µ`UÆ�8¬ÚÚ¸ÜÚ¬†çk·m·måm¶«þ»»59&9$7"7 5w{»¿’”º¶$w•:w_½½2ð°±°±ùùù46ûøÊø¬øŠö))%07D7L9T7R3L3N1[3 ( (  8_5  &½¿ ÿÿ(_7  ý½ð±°±ÿÿ&([7 ßÝ¿ ÿ((W 9 ½ûÛñ°±°ÿ&(ÿÿÿÿ¶Tdùÿ›^®@)¹L#‚abTSeÇïHÝe&�HRw,ÏòØÃ±u‹—ĺ?kHÖÌC\[ü¨u»ƒk·ö�ue7–ÃÈëæÏ÷wæ#\ ¼Vb©ÑÕIëã Tê1_”ƒÏzhj7�ÏbÝ]ø÷>Ôá–›ïƒH{ÏÚ š&AR!E¿]¼Ù^^\[{?)síŒÿï¹×§Hí+W!†ÈbŠSAƒ’¿[#^^\)*:¦)+%”Ÿ\÷M+pÖ$TÄh‡¥¼b#[]]JI<ƒÙÅ– 4zï8 �¼Ò½ARöÏ¿]Œ©^^\[-‰!€š¦fV"PA!¥ÀAZ OoO(ÿŸ(& Y&˜Þÿðò’‰ÿ0ÿ0Å  ìÉ$  òSHO�H ¯h%0%AòS OoF?% /%00†ñBÀÀà 0Dòs�Bð0ù ûÉ|D<   ÿÿÿÿê™§?‚Š|¦ü;±L• amŽxh–ž�¯ƒ:¹£^¸dìéèú4¥H°F@]…—™21�m’å Ÿ¥ßð&|Áû N&ý\ókî£ü0?1Dyµ{<€6{$AÓõ±Õ�ÉŒ¸ˆSc_`?‰Ÿ¬P}â ½>Y¡ º¸úž=§Å€= !"«ljÐV‘JK GL�h |6d�Ø€!]@ !•–[¿Ú.uôˆÌœµ™&™[¸rG®Œ=_^"?op×èP+.ò¾Œu(¥½ g=9 € O !"2÷îªfeU "42t�i$(oÍPè"xVô²0ÉÅ0#"%* “F€"3!ºò¡à7€?# "3`ÈHè HÊ-ð1 ¸€2ƒ¼ å_UU`feó6rcvB¾‹D?Àíìë7Q›ó)øG�MÝáY¬\Õfy!L=A†€h¸HÛD¹öÌAêØ=0ñŽ%$=ÿÿF‡À¿�ú3f¨19üa¿kß($%$üÿ?CˆŠŠ‰Q¿”p÷Æžè'#ØËÿÿ$EˆŠŠ"!ÁšqGïÆ0ïŸi}ñ?Óÿ¥‰‰‡ÖÕ$/”ÿñ��Ô· Æ'í¼óÿCˆŠŠ‰CÍM³€šUU ºÿÿðòÔiÿRÿrã6!" àbÒQAÀ4 ϨgP3Ü0€?§ %&ÂÀ %ßÀ$0Cø #Vð(#¿uwWöÜjCKÃ!~%™€ïJ{íÍj!}î‹Úo$ãi& ¾Î47�FDßaêðÿÿ·¬¨KLþÃÿˆ  '$ ä€% N³ägÕ ¤Iz‰0#߈F+,ä¦yð¶¶:U5=Whª(ÿ ?øëŠìCwTOtf LiJ!gW*ÏÀ`»ëЍ‚?‡~¨fH™h|Šÿ4#øu“ì‰H?ÿÿX^hR�…Ä>`�[ÿü$lf ëŠÍ‰vUUU1¡ðð˜ðTSh�?ÿszN7Ri>KrÆfd@$$€ßßðô3bURO\ -0„ Oûÿ4gbUJGV /ƒ�“þ¿Ã4idUH eT ÈÀ`/ÿø4 O`ñ0˜) ?þü8ohWRSP>  -u×ÿ3ÌÌÏ/0_//?_?(ü33'//ˆ'//ˆ'//ˆ'///3ÿüÌ0/0/0/0/`0(o0(o0(o0(@'üÌÌÌ`@0000ÿÿð0/0_//?___?/0/0/0/0/° ``@0000/0_//?___?/0/0/0/0/Ð``@0000/0_//?___?/0/0/0/0/Ð``@0000/0_//?___?/0/0/0/0/Ð``@0000/0_//?___? ÿÿ/0/0/0/0/Ð`ATUUÀÿÀÿ0 ÿ ÿÿ@ÿÀÿÀÿ0ÿ€0ÿ ÿ_]UU€€€€€ÿ````€`_`_`_``ÿ``€````ÌÌÏÿ€````€`_`_`ü _````ÿ€€€€€€Àÿÿÿ```à``ó3<`à```ÿÿ ÿÿ```àÿ30```à```ÿÿ```ÿÌÌà```à```Àÿÿ``ÿó3`à```à```0?ÿ`ÿüÌÀ``à```à```U€�� B@ ÿðgeeegeÿðÿð¶&•¬mñÿðÿð×Þ<š”íE ÿðv'QXôž ÿð¶ni�8U0ÿð`@0000 íý‡i$ÿ€çp •Ä€¿•Ð          &("   ".0* 2,:<6(  >8FHB4  .8:<68:<*,.0 "$$&("    2$>@6 >8FH>0  F@NPF8  6< JH               %#%E OQ=ISU          r¡Wqkm   ,               tr  oœRlfh-     us n�Smgi   ,              tr  oœRlfh- T34_rockT34_rock@A¤°©ÃÀ™ÄÀAš Ã@•Äl&l@A@•D¤°©ÃÀAÀ™Dš Ã&û 6À¬©ª©ªð©ª©ªð©ª?üSþý«SÿÿT¬ÀüÀÿT¬ÿT¬ÿüT¬ÿ㩪ª¬â᫪¬ªärªª¬ârª¬ªärªª¬óðârª¬ª7Tz9Vxxzóðxd\às±À�ƒƒ Ÿ+ƒƒ=iØ¢ƒ?�i”×�ƒƒÿðiP‘ƒ�?$#!�&#)a%a#a#ßða#©Z™#PÒ"5R&:9ÿð$%R º¹‹GJ8Gÿð8 !HN°¯û$|ÁGjá#6YlHHGÿð$"!#Gl  `!?ü`__? Ÿ@`ÀüÀŸ@`Ÿ@`Ÿü@`Ÿÿ___ ÿ___ €___ €___ €___óð €___`¡€ªªrÍí©ïy"¢i A •Ä€¿qÐ   "( "( "( " T04_powder T04_powder„ÂÃõÂÃ�BR¸‚Áä“b“„ÂäBÃõÂ�BCR¸‚ÁÂbº õõÿÿ3ÌÌÌBA†BBDBBð ÌÏØ“oomo±omo±omo±omo±opÝoo±pÝoo±pÝoo±pÿ333ÝooDBBDBBD3ÿÿBˆC†BDBBØ“oomo±omo±omo±omoÞpÝoo±pÝoo±pÝoo±mooDBBDBBDBˆC†BDBBØ“oomo±omo±omo±omooAomooAomooAomooAomooDBBDBBDBˆC†BDBBØ“oomo±omo±omo±omooànÝoànÝoànÝoànÝoDBBDBBDBˆC©¥«ë3ÌÌÌ,ø@```öföföföÀn`@õÆO\dõÿ333 3ÿÿ.,fofofofot\dõÆO\dö.,ÿ€Fföföföf@öfOjfdöfOfdÿ.,Fföföföf@õĕĕv   ._WUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©« Ï©©ª©ª©ÿÀ0 ª©ª©«©©ª©ª©ª©ª©ª©ª©ªÿü©ª©«ãä©«©©«©À0 ©«© ©?ð ãä«©©«© ÿ©«©©ª©À0 «©© ?«ãä©ð «©©«©ð ©«©©« ©©_WUUTSTSTSTSTSTST7S ÏSÿÀ0 STSTSTSTSTSTSÿÿTSTV9??À0  V?ü 9? ÿ?UÀ0  ?T7ü ?ü ?? Vÿÿÿÿ·l(y¾8]¨X¬BÙÙQÊp22n¡Lè†óè¢FÈ5on¶ûa,25«Ab›ÇD.?É5pÌð�©/¨Ûêø>6RÂxÝSϲ¥mÑ".IÂD(-L%¡¢¡¹®uÅIgÿÕÓíú=J»WQù7s›9_[A#éÆð‚³ß7AÈôzˆQ½ šK.˜Å‹#Èä~ÇUÃꢖ�bzý�!+ß¸Ò ×�¼†twêö©ª"”p0Rôab"tôòPÿ&ÕÿÕÿõyHô(&**(ÿx—}Ë%^(*(  ((& ó› V`ùýùý**ûûùP¿**YùóŸWÝX((A1@ñ HC@L]ýýÝýýý,,.ýpÖ÷ø÷öùöý¼cSdðFÿÿÿÿrl \dhËÛƒj³"REeH“b B1ô˜úŽé{Î u«Ä?¡´–½p´øQìü¼mY�ÉÀ ¯ßò‚ ‘ËçÂ/r­\Ì¿H<#tÇâÏe¨qBú¦¡n°ß³Tƒ1Bhÿ`)¡¬ 1ƒ‚�Öý>ÃhÖ]©pùÙ»ˆBiŒ|¶û¦ÃÀ¾¥x(\¾zì 8Ô…'çÙk2´7á(ÿòo ÔR¢¡¢éüÂ#÷Ž5ÖfÞì—X ‡ðãÿC&öV‚¾ ·ÔùyûÖï›" O. Ó4` © o^†×�Ì[.]+ÁÀ‹ç¼ÐýÕïô¿ùß°å ®šdËe»b)�ŠªjjZ1ɇEEƒ@Aaa ”B”B¶B0!B1#`1XT2‹0laD+d F+D@Å1]0B¶³ª$D´B”B”B Å1T$tp&BD”$´D´øZÊ\r¡œ ÕçÙÕ}€/Ð@ˆŒÌÏÿú8BBTÇ ñ¼i›¬o/ãÈZ»5ìËvu,&‡¶F�×äÌH‰Ç­ÿÈ?ÿ™/à/lp¢$þ›•0¤¼Éw/ «ÿÿþ‡Ï½å\G¯q”#60B1B0¬ ÿLñTH¨ÛÅ‘'ZÞ0>”O=ö‡™ÿü$i²–>è\9¬­ì ÿÿòŒ“\:CUS ,EåsÍ®ŒÜ8&}k àÖ‘¡=Jö#2 2 2 ÿv020 0ûŒ .ÿ  2=ùó¿¿9ÿZ00Ýü,¸ùøùøùøÿ܃sdð,¿½½� ÌpBH(ž’2íþAè&3¤0¸Ù c–ÌBTûÜÞÂv¥Ùí't‚“h6¤€Pa%Ï01mÏ .«šÐe6Ôb�ZýŒ_LKLKX`5d„/ÿÿM¹I3\¶LÆ”"²‰­ºÑQ*U/÷1ü>ðöòþQ„Ñ4?âAÿ¹tZuU]òp1Pöa‹„d !”ôüQÿ.ÿÿõ$#0.d™ I =ë…: 00<�!?2YZ¼ÿÿ 2 0ÿý˜H@�„-¿þ*SX B44 ü>`f `@’l)õõÿÿ3ÌÌÌ'(W///?_ð ÌÏ?'//ˆ'//ˆ'//ˆ'// 0G0G0Gÿ3330`@0000(3ÿÿo0_//?_?'//ˆ'//ˆ'//ˆ'//¸0G0G0G`@0000(o0_//?_?'//ˆ'//ˆ'//ˆ'///Ð___`@0000(o0_//?_?'//ˆ'//ˆ'//ˆ'///ÿ0/0/0/0`@0000(o0QQ@ ÿ @ÿÿ ÿ ÿ ÿ ÿ ÿTUð ÿÿÿ ðÿÿÿ0 ÿÿÿÿü ÿÿÿÿÿÿü ÿÿÿÿÿÿÿ ÿ«Wie÷fföVVV```ð`VVV``ÿ ÿÀ0   $°` @¶$öÀ  7 ¼   ”$�@  U€ÿ†BDBBØ“oomo±omo±omo±omooànÝoànÝoànÝoànÝoDBBDBBDBˆC†BDBBDÖ“omnmnmnm±oo±moo±moo±mooDBBDBBðDBêÿÿÿ€Ffö,föföf@õvĕĕĕÄÿ.,eeeodöpðU?ð ãä«©©« ð©©«©© «©© «ãäü30©«©©«©©«©U?ü 9? ü??  T7ÿ33??ÿŽ·Ù†«˜ìªèè„+aÕ-£ÛîÿäètÙÈŠÈ9û¿ûô;š¼;š��; Ë; ø“ ÖY€ŒP‚~öR�ÈÁYxƒ¿¿íý¿¿;ºYø�¿•¼c¿“~ûÑ~ÍÃð·1gð'(Úÿÿû×W«QË5!)SëSù—ùyð¼¼¼¿0$&& A3##- wŸ $Y&w$Wÿÿÿ2$$ð& ÿ‡`a!m&ØÊ¢жúpþ«NžSnФ“ýärQÌ [ÿƒýr¢T¿fã^ÏÜÚÊ\e¸alŒ½†-8¡zÆ'ŒÅÄNMçè3m÷eìŽasŽê3¤€‡†Ô×B*è𠔪F‚"Mÿû.ýùÿð?ð!–0(÷ö÷ô÷ôýÚƒq&ð$fŸFÿ445·õ#·ó—ó™ú¡s°ÿ~ÌÄ:y#*nšŽ¾lhÅÊ«ƒlÞít/!ñòìÉŽsüºãá§Ï¶éç*‹Õö«Õî{“RêAqwlq8[n‘ý6£CûØâ3~àã]ö{Œ*¯Ä.ò´—?�gðýzª16DÔdò®õ/€@@@@± Qd/˜\ \\Ná€yac·$0"4àÿ°cÅ Ò˜8�?:NƒÕÉuÆÿücÛƒ2E¸�ÿ÷Ûb�Q+ÜKVnÃ18Ï p–}^7ð(c´    ƒ“Fð,ÿ Ùõ¹ó�üÃwðo˜r‚5s࿸¯uõÍ1þ³ð”Œ.Ry�ãŒ`œ44äÒoÿÿw©´Q�z@»^ðä!ºž¨§RQÏãK``oÒ`ZòF�ðMÿýR{‚6ÿûßñ?ò `4*```@’o/ÿ)RsP ÿ5fVr'``d’`ÿ_//?_?'//ˆ'//ˆ'//ˆ'///ÿ0/0/0/0`@0000(o0_//?___?//0/0/0/ÏGGG`@0000ð(U ÿ ÿÿUü ÿÿÿÿÿÿ üÿÿÿÿÿÿÿ ÿÿÿÿÿ33ÿÿÿÿÿÿÿÿÿÿÿZ$�@ @”$�   BI ÿÿ]Ÿÿ "„Â‿˜Ð             ".0* 2,:<6(  >8FHB4       " &(   :D               ECE    "*,&  .(682$  ]                   535    "*,&  .(682$  28&, A     535    "*,&  .(682$  2468&(*, U         535    "*,&  .(682$  2468&(*, I          5 ?A    9         T35_groomed T35_groomed(Á…²Ã@žÄ(A ·©ÃÀ™Ä   a(ÁÀ™D…²Ã(A@žD ·©Ãa aY  ÿÿÿÿ’‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’”ÿÿÿÿ$#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$$G$$G$$G$$&UUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ü0ê©«©©«©«©©«©© «©©0ë©©«©©«©©«© 0©«©Ã©«©«©©«©©«© 0é«©©UUUU ÿÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSü0Ã?? ?0Ã?? 0?Ã?? 0Ã?UUUU ÿÀÀÆÅÆÅÆÈÆÀÿÿÀÆæÆÅÆÅÆÅÆÈÀÀÿÿÆÆæÆÅÆÅÆÅÆÀÀÀÿÈÆÆæÆÅÆü0ÃÅÆÈÆÆÈ|ÆÆ|ÆÆ| ÆÆ|0ÃÆÆÈÆÆó~JI ÆÆ~ ÆÆ 0~ ÆÆÏ~J|ÆÈÆSÆÈÆSÆÈÆ 0ÃSÆÈÆÆUUUU ÿÀÀÀÿÿÀTÀÀÿÿTÀÀÀÿTü0Ã@@ @0Ã@@ 0@Ã@@ 0Ã@DAóðbabbÃ/0?Àaaô/<ab@AUUAðb"!ó ababJ>´Ó&1àÓ&1àÓ‘“³ŠrÒx†Lƒ�¬l(<ÿ´ ·WÿóÛUÉt]YÀ&–Vß Ÿƒwù‘5_ÿ  +ñ0 ÀÂx h ¤ÙÚÝ}£x4«m´IMüLüóøfRP´³¢À2@ìÿ'0@ñ=$À#ÁóóóðLKN m¶£„Œð!)ÅMQOAÿñ± #€ðqrÀuAaóóð  ('d;$“Ã=€ÿ% €`@ÿ0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@0o@0o@0o@0/0/0/ÿ3330/0o__Ÿÿ€33ÿóÿ `Ð/0/0/?@À0U‚‚‚‚~���€†cÿ3‚~ U```à```à```à 0Ã3```````_`_`_`_`_`_`_ÿÿ3 `_`_`_`à```U!™™™™™ÿÿæ)ÿ(Á ™Ä€¿Ð        .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64  >8JL:(  >< FH6,  :8 BD2(  E      EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  5325864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =           jtµ "$  T35_packed T35_packedÁ…k²ÃžÄAHA±Ã€�Ä   Ø4ØÁ€�D…k²ÃAžDHA±Ã14) U3Ïÿ̪©©«©©«©©ªªÌ??̪¬ªª¬ªª¬ªªÌ??̪¬ªª¬ªª¬ªªÿ©ª©ª}3ÏÿÌ*)T))T))T,**,**,**,***,**,**,**ÿ)*)*U ü0¿ª©ªªªª©ªÿÀÀ¿©ª©ªªªª©ªÿÀÀ¿©ª©ªªªª©ªÌªªU ü0¿ª©ªªªª©ªÿÀÀ¿©ª©ªªªª©ªÿÀÀ¿©ª©ªªªª©ªÌªªU ø0ñòñòñòñÿ€Àòñòñòñòñÿ€ÀòñòñòñòñŒòU ü0ÑÒѱyÑÒÑÿÀÀÒÑÒѱyÑÒÑÿÀÀÒÑÒѱyÑÒṈ̃yWúLºúñž�UNúùúÿÀÀÿùúùúñUNúùúÿÀÀÿùúùúñUNúù¨üŸ«Vj1cñ)óCCCð�óCCCð�óAü ]3ÏÿÌ?@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ÿÌ??Ì `ÿ `ÿ ``@ÿ?@?@UBILÇÇÈ‚‚‚~``fU ü0ÿ`_```à`_`ÿÀÀÿ_`_```à`_`ÿÀÀÿ_`_```à`_`Ì``ÿÿô1ÿÁ`�Ä€¿ÝÐ       "$   . :<. 60>@2$  (*,&$   6(BD2 :4BD2$  (*,&$ &( 24""$*,  T35_powder T35_powderpÂq}²Ã@žÄpBޤÃÀ™ÄÃÞÃpÂÀ™Dq}²ÃpB@žDޤÃâ ÞÚ  ÕÝÝ 3ÌÌÌefËgeeegð ÏíˆfefefÿÃ33efefeegeeegecfËgeeegíˆ ÿófefefefeegeeegecfËgeeegíˆÿüfefefefeegeeegecfËgeeegíÀÀ?ÿˆfefefefeegeeegecfËgeeegð0ÿíˆfefefefeegeeegecfËgeeeü ÿgíˆfefefefeî¬geÎgeeegeéîî3ÌÌÌ2ø``VZVV_ 2`õeeeÿ` 2VVV_` 2€`õeee` 2øVVV` 2ÿ€`õee`  .UU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©«©©ª©«©©ª©ª©ª©ª©ª©ªÿð?©ª©ª©«ãä©óðÌÀ«©©«©©«© ©ãäüü30«©©«©©«©©«ãÿ? Ìä©«©©«©©«©À©ÿÏÃ3ãä«©©«©©«©©0«?óðÌãä©«©©«©©«ÃÀ©qrUwTSTSTSTSTSTST7SSSTSTSTSTSTSÿð?TSTSTV9ÿüÌÀ?? V9ÿÿ30??T7??ÀV9??0T7??ÃÀÿÿÿ8®¶†Z(-“3e´´`_#¨––h˜è–˜–˜[ì–ë}é­»«»E¹%%¹OêÙ r~cú»ÒŽÖmm¤@n= @öûîî75"7$7 7"7$5úÛÝýÛß 66 P5J1H/F/H1L5P7N5[5 Ýý½ñ±°Ðÿ(*Y3 Ý¿½ß &*  W3ÛûÝñ°Ð±&*W/ñÝ¿Ýß (*a/ÿ=½ý¹ó“s$( ,ÿÿÿ¾,mló ¶Ñ\|FCŸÚ$ZSCgÈ¿[#üû^^\qrR§2ÛýrÁò)8ÏV†‚]ð;wz'�¤Ž9j—‹¼b#[]]ÏÐÍ, AÖF—Êý¨@Y*9ŸSA ¿]!^^\|×õ+‘Ò‰þœ–aÿ�|^ê UA0b¿[>]^^\ðïDÓۇ|D±‚ º®šÀáÔ2j衼@[]]z‡ºQïHw[ÇÖ—³?þh™¶öŽˆ?«¤©Hï-yÌñBtM/Zsñ×*ß‹³pe™V2ì I¼<ð  �!EÒ3U¬D < þ !&c0ò04-B? !†5"DÐð�xîÜÑ!D2ð0 ò`1` B"Px¼{ðV!ü”À ÿÿÿxù`XØœ©šô<|VPãQÆfà€!]¤£@ !°¯¹^d :¸¹\W¥fôUŽ Ä5u&€½ÖÐIàžøG4[@=GF"Êï�+™!–¥D�ýDgØ?üS±é2u^6Œ!˜ß›…8îǜOcJK9ið¢ð!UU©"nd(!òôr   ÌHm o�‚“! ? ªÁØ’ 52@B&C‹"Q!$!!Ë"Q„uUU``\0nò Eº¹ˆŠŠ)* ¼1soí&x+ÿø¬ÆÀ<Ò”l Oôÿ ¥‰‰‡±²aƒÿþcÛý‘G*%è c/ÿ EˆŠŠ£ÿÿ˜žºË:z‚;QÀÀóÿ D‡ˆŠŠ¼»ÿÿÀúÓôµ§/åðèpÿ ¥‰‰‡ÿÿð‡¼xÔ‡“*¡†4öÿòÿ´ÑŽ€çÙ2E'��ðÅ�ÎîÌ¢d•Uð Ï#E%˜0, ÿ +¿Ì,? /&Š9,Ò ÏÝÀ-,0újp!, ÷!üŸÀ)_ÕUkŒh·OZ˲±ªÁ.AYZb¨€k[A+늪ÒB ?ýÿŸ£0Ã-öÍfm�?ÍüÏì‰H›Ï?ÿ ø0=F¾á·Hÿ?=k[©ª«ª«à>ª«ª«6à>©ª«ª«à>ª«ª«Cffhfï"fhfï"fhfï"fhfï"fhfCf’"�"�"�"Q} ssö=sss%ôssÚ6—ssQwcsss2315}7}511¦¹R&÷µ¶~ÂÿÿðÏP"ÕÑÂN"�f  ‘¸Iù/0Q*ÿÿðGŒ DI°� ?ÿð?¢“ üñú< üõýÿÿ3ÌÌÌ/0o__Ÿÿ€ÌÌÌÃÿ ``@0/0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ÌÃóüÿ `ÿ `ÿ ``@0o@0o@0/0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@0o@0o@0o@0/0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@0o@0o@0o@0/0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿUUUU@L‚È ~ÿH@Ì||‚‚‚~€€aŒHÿHH@|‚||~‚‚‚~aŒHHÿH@||‚‚|~‚‚~aŒHHHÿ@|||‚‚‚~‚~_UUU`_`_`_`_`_`_`_`_`_`_`_`_`_`Ïü `_`_```à`ÿü _`_`_```à`ÿü _`_`_```à`ÿà _`_````` ``à` ``à` 0``à`à ````` `à`` `à`` 0Ã`à``` ```` à``` à```TQ ÿ’’’’’Ü’’Ü’’Ü’’”‘ےܑےܑےܑے’’’”H’’”H’’”H’’”’’’’J’’’J’’’J’’’’’ÿÿð’Ü’’Ü’’Ü’’ÿ$&$$$G$$G$$G$$&#H$G#H$G#H$G#H$&$$&m$$&m$$&m$$&$$$&m$$&m$$&m$$&$$ÿÿð$G$$G$$G$$U0à «©©« ©«© ©«© ©«©0é«©U 0à ? ? ? ?0ÃU 0à @ @ @ @0ÃVÀ00    0Ãÿ ``@0o@0o@0o@0/0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@ÿÿð0o@0o@0o@0UaŒÿHHH@|||~‚‚‚‚~a€U 0à à```` ```à ```à ```à0Ã```Åþ"ð3p(Á žÄ€¿–Ð                      (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$  .(:<*  ., 68&  ­      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&   T36_packed T36_packed(Á3Ó²ÃОÄ@AšÙ±ÃpžÄ   «.«(ÁpžD3Ó²Ã@AОDšÙ±ÃC.; 3ÌÿÌ"!D"C!D"""ÌÿÌÌ""e"""""""ÿÌÏðe""""""C"""3ÌÿÌ"!D"C!D"""ÌÿÌÌ""e"""""""ÿÌÏðe""""""C"""@€@€@€ ÿÀ¿ÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÀ¿üþÿÿÿÿÿþ·7§à787׸·ï7878787×ï7878787Àÿüð×ï787ðh/¸µ„Ž Ž�ŽŠ�‚èŽ�Ž�Ž�ŽŠèŽ�Ž�Ž�ŽÀÿüðŠèŽ�Žî’õ�„?ÀüãKç –Êÿðãï¦ÙÜÝú?Àü2#4ÿð"?2&"zHFvuv‚ívuvuvuvxívuvuvuvÀÿÿðxív’²Òé³ì9;"&°¤Ð�döÊ?ÀðR‡^£.-ÿð9@²±?Ì‹?Àü& >+@?ð@C65ÿð0=$%ÒQ©ÿð- d‘R=Ô3ÌÿÌ/0o_ 0o__ŸÌÿÌÌÿ€ßŸÿ€ÿ `?ÌÏðÿ ``@0o@00@„LÇÈ‚‚~` ÿÀÿ`_`_``¿`_`_`_``¿`_`_`_`Àÿü`¿`_`_``ã1çŠä=`(ÁPžÄ€¿°Ð         &24"    &24"   *,   T36_powder T36_powderpÂ3SÈÃÀ¢ÄpB¤ð±Ã@žÄ¬f¬pÂ@žD3SÈÃpBÀ¢D¤ð±Ã=f= ýÿßÿ3ÏüÌfefefefffhÍfhÍfhefeÌhfÌeÌhfÌeÌhffffhÌffhÌffhffffÎfffÎffffhffÌhffÌhffffhfÌfhfÌfhffffhÌffhÌffhffffÎfffÎffffhffÌhffÌhfffef?üÌÏefefeÌfhfÌfhfÌfhffffhÌffhÌffhffffÎfffÎffffhffÌhffÌhffffhfÌfhfÌfhffffhÌfªªªª`VV``€ZÖ�höÀ``ºõÆo\f€```öföf`€``øføf``€`ö†ö†```€öhöh````öföf€```öföf`€``øføf`öZeeÀ`€`ö†ö†```€öhöh````öföf€```öföf`€``øføf``€`öUUUU33ÿ©ª©«©©ª©ª©Ã Ïÿ«©ª©ª©ª©ª©À0ÿ«©©ª©ª©ü ÿª©«©©ª©ª©ü ÿª©«©©ª©ª©ü ÿª©«©©ª©ª©ü ÿª©«©©ª©ª©ü ÿª©«©©ª©ª©ü ÿª©«©©ª©ª©ü 𪩫©©«©ÌÃÿü©«©©ª©ª©ª©« ÿü©©ª©ª©ª©« ÿü©©ª©ª©ª©« ÿü©©ª©ª©ª©« ÿü©©ª©ª©ª©« ÿü©©ª©ª©ª©«UUuU3?ÿ?à Ïÿ*À0ÿ?ü ÿ?ü ÿ?ü ÿ?ü ÿ?ü ÿ?ü ÿ?ü ü??? ÿü? ÿü? ÿü? ÿü? ÿü?ÿÿ÷ÿs®­tW’g²¡<ƒ†ûü*ö9½žeô¿ÚÛøÛé÷÷÷Î�Þ3:Q@¼(캺êé8ï-!ñ2ñŒŒ^`Žî0RޤZðÏ- ÿü:3< Jššôò�!ÿ#�ÿ�óà@ þdþf2A@022a_4@  $ýÿŸÿÿù@(ÄV¥æÔ/*"+ !/�ŽÓñ9éÓí��š×‹WÀ£H—6cdÅÆ256ba^”eÁÅÆ^65õ?ƒ1Á:Âr-ïÄÃö‘ 6ÆJ/_ÚÇ�Á|”2ºÚº+iëëÖAŠù¾Gð¢¤H$Ü!ƒpeÝnç9­ZÓÒÉÜaAKÿ‡»k» „9CLSJGDCcÒÍßB?>àöþúüôô!%ôùÿùÿ�q68&d€„€­úׯ0ÏüÌ/0/0/000(W0(W0('  üû¿Ï»°°°$$°û»û»°°°$$°û»û»°°°$$°û»û»°°ð$$4 4 HHHH'/Ïÿü/ˆ'//ˆ'///0?üÌÏ/0/0/`0(o0(o0(GGGG 'ÌÿÌÀÀÀÀü'#ÌüÌÀÀÀÀü##ÿ ýH@ ÿ€UUuU3?ÿ`_```à`_`_`à Ïÿ``À`_`_`_`À0ÿ``à`_`_`ü ÿ_```à`_`_`ü ÿ_```à`_`_`ü ÿ_```à`_`_`ü ÿ_```à`_`_`ü ÿ_```à`_`_`ü ÿ_```à`_`_`ü ü_```à```à```à`_`_`_`` ÿü`à`_`_`_`` ÿü`à`_`_`_`` ÿü`à`_`_`_`` ÿü`à`_`_`_`` ÿü`à`_`_`_``ÿÿÿÿfhÌffhffffÎfffÎffffhffÌhffÌhffheÌhfÌeÌhfÌeÌhfÌeÌhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffffhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhfffefefefeÌfhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffffhfÌfhfÌfªªªª†ö†```€öhöh````öföf…Æo\fõÆo\f†föföföfhføføføff†ö†ö†ö†fhöhöhöhfföföföf†föföföfhføføføf`õ`eeeƆö†ö†ö†fhöhöhöhfföföföf†föföföfhføføUUUU ÿü©©ª©ª©ª©« ÿü©©ª©ª©ª©« ©©«À0 ©©« ©©« ©©« ©©« ©©« ©©« ©©« ð©©«©©ÌÀ «©©«© ©«© ©«© ©«© ©«©UUUU ÿü? ÿü? À0 ? ? ? ? ? ? ? ü??ÌÌ ? ? ? ? ?ÿÿÿÿY9 ¯xÍXËXÍtWsWrUsW'ÍvÍZ¯X¯VuU9TUWUwÛdu*¡G/>r†Â¥VAB>5¢ö~gLy‰"ÕŒQc $y*kCi±e¾–nÌ+J|O9ÇÑÑ]^Ðè«^¬2:*2ƒ ªEŽ TîþŒ¶W”„Û{{•Þ9=³/°¯ÉX·dÜÕº’ï0€­í @WÑf ÜÁ%4€ézÿlj*/BU_ÜÂøE•—q? JÒnf^yÄm-Á½5l+ÿ¿ó3Úò¦Þ¦ nˆ8ÅP%O5�ñ:-Iñ6I·e1æ³KŠ€|”­2JJUU©U.˜ $ ¤ ˜DH„… „,(La`D´D’D’D S0ƒƒMN&†¯Œ $€éÿßò~^ÝÄuÆ/“0¦¥?;ÿLcÃו22cbadÿüÅcÆ21a™ù ÞÜ ÜG)'':@ÿ_    ŸçÁØìïú¬„“áÝRµ™’ô+È3É8:H?¦÷6m¸ˆB¥ì‚°£!ß´LvÑ+BoÙ÷B;sÒ¡=Ëñ’ÂÁ1Âba�j„€‰ , ¼¼¼ÿ²ÿ�ÿ#²ÿ²ï„ÿ†ÿ †ÿ†@AA1aƒ]TÐÿ¿ ÿÿ§¼QÕl¯ÁSÕÌ-¼ˆ£/ãÀúõ.�y¬1A�“AM•ÕwÛÀ”_ÃÛ_»(ô�_nïï/2.ðú¥.áh^¸ ׊ìÇMaWnNBg[LbQ'×ø»:â84¬ã5ã;oã©äiD|^âØŒ’apÀC&€Æº‰+Á¸˜QMãáÓ,ŽC444²€´€´€´€š º º�€ P•} �û3`afe`Ër7çaba`YZY75¢Ï\Y\a`_ ÜÝý`ab_bEL?ó3Ãôÿ/ENM@=<ÝÒ?ÿ9>9<%''  8 : :  fd„„„€ªêÿ¿ÌüÌÀÀÀÀü##ÌüÌÀÀÀÀü##Ìü̼û¿Ï»#$üû¿Ï»»»û$$$»û»û»»»û$$$»û»û»»»û$$$»û»û»»ÿû$$44 4 HHHHHH'//ˆ'//ˆ'//ˆ'///0/0/0/0/`0(o0(o0(o0(GGGGGG ' 'ÌÿÌÌÌüÌü'##PP ÿHHH@ ÿUUUU ÿü`à`_`_`_`` ÿü`à`_`_`_`` ```À0 ``à` ``à` ``à` ``à` ``à` ``à` ``à` ü``à```àÌÌ ```à`` `à`` `à`` `à`` `à``PUUU€ÿÿÿÿhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffheÌhfÌeÌhfÌeÌhfÌeÌhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffffhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhfffefefefeÌfhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhªªªªføff†ö†ö†ö†fhöhöhöhfföföföf…Æo\fõÆo\f†föföföfhføføføff†ö†ö†ö†fhöhöhöhfföföföf†föföföfhføføføf`õ`eeeƆö†ö†ö†fhöhöhöhfföföföf†föföUUUU ©«© ©«© ©«© ©«©À0 «©© «©© «©© «©© «©© «©© «©© ð«©©«©ÌÀ ©«©©« ©©« ©©« ©©«UUUU ? ? ? À0 ? ? ? ? ? ? ? ü??ÌÌ ? ? ? ?ÿÿÿÿ89x989Ur9Ur99U²WsW®WsUæUsWÊUuU²WUW�WU9¬UW9�U9Wf;:‘:Xç9tVX’tXÜ’tv¢�’t†’®t­X:V::svVXeìД:::Î’ù½J’êÛ¢tÌùÞ’®Ì¢IGIWƒeƒ:½¡ŸÎùùÛì°uùÜ’‘ùúX“Ûú:¯Û’ÌÚeÀÌÚe¢Ìøghùøe�”‘’“’‘’‘ú÷çêús�Ì¢�û°hé´X¯Àæ<‘Ü�<¯ú�‘éî„„¾Y¢¾ÜëÜúø‚ééËÉ˯s˯s˪ªªªDôDôDôDôDôBô$ôDôDôDôBÔ$ÒDôDTs8G3„s8G3�3a3ƒ3ƒ3ƒ3ƒ1ƒ3ƒ3c3£3ƒ3�3Cca1caCA1c£7Ã7ÃUÃUEQ¥Q¥Q¥QÃ3À000æhôˆô†ôhö$ôBÔ$ôBò$²$Ô$ÒDä$Ô$Ôÿÿÿÿg~hMHßHÄàz2┼ü€çÆb1²?€€ˆ21,9)”11¡Óc ɃãôË5Í­ë%ƒ¯‹œ§2Qk'I¾'c§¾øÜÖö<ŸÍ<Ò5˜Ô²ý²°´pﲎXïì.?T‰Vm .à24®“’2Sªn¤@¼éô0ƒf¹ ^´t]R!å¨%1‰Ž˜î“ wìŠD$r6q5.¸�=’5ÕÄ Ü4z<é4lñŽÜÎW® ‚ .-��Ö¿–�¹ ÔQüýO­s{•£¥á-ìÚ-ÞÇœÈ3XUÈr\îñ˜=àñ¿ÎÍïo³B�ÂÆÞcZEUåj$$„€ Nd$%�,.,ŒÏ]]]))(Cÿ  !ìöÌöÌ)ÿù22 0  šššÿ’ÿ’ÿ’ÿrŒ„þbüDúB@!!I]ÿÿÿÿdaJ®{¬Ä|M0~”ßJ2HzÆb1N�y0E/ ¶W11cGQõnOsò|¤Í«ÌÎŒ§‰àñ ácEwÜb uÓ)Ó_A+]÷Í—÷äüäââD¨âºÌ¨‚ôfå™t­¯eðì)Ƕìÿ;¶õÎ6Æ©¥::[CfŠðšyéqÓLcµŠV˜½’8VÝQ]{} ɇ‡Û_ ÿiµ }·±hªæPO65BÕ¹¡Jii�e(vLT{ŸÏ~Ó�¯=´{õ+ø‹¢íäÎÈâ~‚4˜ß :f¡>Re³{4–³c®ËUUªe„$ @ Ä)DHIM H,"0"0 BTR@RB```2DpDr$r$ fmi+)"‡ 40aa]PI W¤ÿ��”a10ñ0Âô¬0ô”¨/þÿ;3Ù”ÖÄb/Æ•”“–?ððÿ•220•/2“1Æ1ÿÌ/Åöa0™ñ œ¼š:':)'@ÿ_  ˜—ÿ†ÉÝMɧ³¸\©­&Ìèò¯všpàïÆÀ3F·P‚än7¶PðÙŠ½ôÓŸ›Ï5];5­qõžjÛ@w( /»Ü6Îõ7Y4'Cú3£†çK5g\6õZ`Ù‚`qÁtÀ”‹õîC44²�r£RaTAœ þ Ü� @Uå 21`�;¬[ZWV$ OY`]ÿÏ?^]\Y\WZ]b8òï]\MPÿü}GNURKPOHA>>çÿDGFIJ % üøîøì+ÿû#!:8 8  fd�„„†ªªÿÿÌüÌÌÌüÌü###ÌüÌÌÌüÌü###ÌüÌÌÌüÌü###Ìü̼û¿Ï»#$üû¿Ï»»»û$$$»û»û»»»û$$$»û»û»»»û$$$»û»û»»ÿû$$44 4 HHHHHH'//ˆ'//ˆ'//ˆ'///0/0/0/0/`0(o0(o0(o0(GGGGGG ' '@@A@ ÿHHH@ ÿUUUU `à`` `à`` `à`` ```À0 ``à` ``à` ``à` ``à` ``à` ``à` ``à` ü``à```àÌÌ ```à`` `à`` `à`` `à``UUU $„ÿÿÿÿffÌhffffhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffheÌhfÌeÌhfÌeÌhfÌeÌhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffffhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhfffefefefeÌfhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfªªªªföfhføføføff†ö†ö†ö†fhöhöhöhfföföföf…Æo\fõÆo\f†föföföfhføføføff†ö†ö†ö†fhöhöhöhfföföföf†föföföfhføføføf`õ`eeeƆö†ö†ö†fhöhöhöhfföföUUUU ©©« ©©« ©©« ©©« ©©«À0 ©©« ©©« ©©« ©©« ©©« ©©« ©©« ð©©«©©ÌÀ «©©«© ©«© ©«©UUUU ? ? ? ? À0 ? ? ? ? ? ? ? ü??ÌÌ ? ? ?ÿÿÿÿ‘�­‘‘q999�9Wsûss‘…‘­¯õ9UutussÊ­‘‘ÝË˯ÂsWU6ssWsWU�W9ü99W99w7Ï’U®tthsèt’J�ù’�.‘Û®’²®’®’°®’®Ì)’®Ì”’’t¢°®’.ÌÌ®GêêÌéXXVU’Vv¯’t’À®°t v�°­t’t�tVv‘tX:ÜÌÌê’’�ÀXVvé:::Ù¯¿ü¯½é9“¡ü;“ƒ�Ýée ¿Ëgc…ËIŸg¯G‘–“’‘’‘’“ÞvÜ€< h•cJŸ ‘¯VWs‘VWssrsu7)­¯‘ÝsWs®9ªªªª$ÔBôDôBÔBÔ$òDôDô$ÒBô$ôDô$ôDôDô$ôDôDs8%3dS6E3£1c1c1c1ƒ1cccƒ3ƒƒ3ƒ1c3ƒƒ3ƒ3ƒca3a3ƒ5£7Ã7ÃUg1§1§1…1Ã3À000ähôfôfôdòDôBÒDôDôBÔBÔÿÿÿÿç¡$ý·4egx^0UúŽEÂÜÙࢾ.*Æ�ZÛ:C S8ww£KaÿL{÷³‘Ûâ꾿‘8�A«¢MC�dT×£4(q@�,3�€kkV�€ �HU `"§#N€áIqù%øo'_øöÜPìŽÜаŒ¿N°P!t°Hë 13ÅR ËÇØIíÝÖœWéÛ¬®;w-ž„-¼÷ÊŒ÷SµZ W{.NCŸ`à :µÏšR&ÖzÙa€KÀ†(¦‚ZõÔó^= ë²%z›�«ÇÓÔ�ž9:Ï$pÃí‰9±\¸ôSŒö¹ úø1æß^…þ�o5àUí£UQ¥k €,HM@a dL,„ ‰B LA ¬ôªôªòª)ÿ÷.. .  xxxÿrÿrýrýpˆ@ºxÿÿÿÿ}6àýI2±dÞ×�âú§€·o½µ!q£îÆxž�ẽ•·ºŸ“éíœva 9¥l‘{›'½¨‘‹SèKs½Ž£�W1yþ‡o´Žƒûlöaeânô¡DU;& #ÝõTCgð!4g<42ÜႺ¶Àâ¼záâã#�½â�¢¯×Æç±’ÈýKb±û™8Pý9`dÂï�ñ«Ž-2’¨JDËyE} iá¡à'¹ïƒU~Dý¨féÈý /Ǥʥ½Âº}†·l]5nmTSŒ‹rq{DVníÊ0ï† wG£Nó×´$Ðo~E–…}ÀÙ3Tžn%0UU•V..ަ.„LLG@H ]M LLL¤ ®¬® \1B1@$P$PBP$ fm!!!/]\ÿ�þûÉ`ýÉ2à“b2Æ“øbd1˜Ê3Êh˜…Æúc21—1˜ÍË‘acÆd•ØVù•õ± tÃÄ“bÄõÁôó/÷ü‘’ï�^ð z˜ v'%8% ÿ–Õ­®op ª™Pž¹Y”Êõô�]ïV¼Éß›'8o2•É2÷þ÷HÍ13Òûd_UiHE€ ˜  �$L0 šššÿpÿpÿ�ÿpl"Ú ˜%ýÿk3ÿýcÅ2—f••d˜ðewí4ïþfšš2Ëš1fÏÇ"ÞÉcêhtef3› Ug› ÷6c„ÔF1JÎÇd”މ™±ûɪê1cäHÛc£Ö6ÄŸ"άݖ=`b_u‘ƒ¹OdäSÈù^ßÏûƒÀµ)ß²Í?¯zQ;‡A".£ËÞV–ArA2c@2Aœ¼xU•W C,UÃ?ÏîVUVUVUVUTU„¯ RUTÈ<ÍSROZWÍ Í‘…ªõû‡J_Ë€L�â^�½½-³âÿL]-µ¶¨ðv T T û3 ·¸´{�VïY¹€^!òT1¸[b,YOJ0[OsòØe¤%,$., †† 4P@@\]]]_ÁI 2 ššVÿpÿ’ÿ�ÿ°È06ôÿŸÿûEÌA1½ð#ˆªEPƒ¶da²üÊËÉh–g•6¶ÜcnOÍ4g4j�44ühhÑ2s»Ífu1DÊÛ2Ȍʨ¥ÂìÕ§Û= rW?oÇéò/`00/.]^-0¿¾]5êS Wº§k¾ÉvÅ2³akÈê'ëç%YûƒâízÕÿAfnÔÔA@xVVTU^Ïó+TUVSTUüð0¬VUVUVU¯ÇèVSVUýRSÍÍïŽTQTQRUXŽþð [^[^?ÿab ŠôŠòŒ+ÿù44 6  fd���†«ªúÿG ' 'ÌÿÌÌÌüÌü'##ÌüÌÌÌüÌü###ÌüÌÌÌüÌü###ÌüÌÌÌüÌü###Ìü̼û¿Ï»#$üû¿Ï»»»û$$$»û»û»»»û$$$»û»û»»»û$$$»û»û»»ÿû$$44 4 HHHHHH'//ˆ'//ˆ'//ˆ'///0/0/0/0/`0(o0(o0(o0(GG ÿHHH@ ÿUUUU `à`` `à`` `à`` `à`` `à`` ```À0 ``à` ``à` ``à` ``à` ``à` ``à` ``à` ü``à```àÌÌ ```à`` `à``ÿfhÌffhffffÎfffÎfffÎffffhffÌhffÌhffÌhffffhfÌfhfÌfhfÌfhffffhÌffhÌffhÌffhffffÎfffÎfffÎffffhffÌhffÌhÿðffÌhffª*höhfföföföf†föföföfhføføføff†ö†ö†ö†fhöhöhöhfföföföfU ©©« ©©« ©©« ©©« ©©« ©©« ©U ? ? ? ? ? ? ÿ7ÝW9É:[<:;:<<X<À9‘­KuË-9s¯9WËcÜ¢ftÜ„f®¾¢J辄h»f„¾tfh ùJf„ÛHh„h­sÝËU…ËU9KéW7X<ë:VÞ©°º“Ñn1ëówffþ `ýÊpÆG”¤¤SJà” ›æ'püêE>§@4g<¿I~r1�ôC[é]KÜ&`á±+<…64�f’’ ª¤óyzL­ÃÏ÷ÿð{s"´Q£eO@$®î$r"B 2 2®¤M@1a1ƒ_Å  ÿ÷¥K6ŸG:ðì�•Kmn1N#Ï»dfßs@®î\+@tptFKÐÕ´÷î´~š†ÇÐbh3`ø†ž²02nRlW¦3Sçm±cy-Ë[u 6G;n/gGT0-ÿð=; U@L@ j,ŽŒŒ$D ÿ?<_‹^ì„‹0…„--µí]^`Î~¾8J­Ò îý7ºÍxL$ytÊép–ymˆG voÕ©´ÇöqèÇÄq®%È–äw1ké]míx�拌ê»é+æÿð�‹’ˆ]¹e_P$ $*î¾$r$""R"R®¡L\@3£ƒ_Õ  ¯*GGGG ' 'ÌÿÌÌÌüÌü'##ÌüÌÌÌüÌü###ÌüÌÌÌüÌü###ÌüÌÌÌüÌü###ÌüÌ#U `à`` `à`` `à`` `à`` `à`` `à`` `ffïùÍIÿ¬ü@Á žÄ€¿²Ð  *,"  &$ .0&       " &(  &024.,   >0JL6 >8FH2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&(*,     *68. 60>@6(  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  ™      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, 1979$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  I      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, 1979$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  I      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, 1979$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  I      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, 1979$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  T36_rockT36_rockpÂÅÃ0ŸÄpB ׬Ã@žÄÌáÌpÂ@žDÅÃpB0ŸD ׬Ã á  õÿeî¬geeËîªeeÌðªeeÌðªegÎî¬geÎîªeeÌðªeeDˆü ÌðªegefhfÌÌÌÌfffhffffÌÌóÿfhffËfefefeÍfhfeîªeeÌðªeeÌðªegÎî¬geÎîªeeÌðªeeÌðªegceÌhffffhfffffhffffhffffhfffffhffffhffffhfffffhffffhffffhfffffhffffhffffhfffffhfÀfªªª¥UðúUð2,üWðüuðúU..ðúUðúUø,,$üWð`€````€`````€``öeeÐ`†ðúUðú,UðúUðúWð,,.üuðúUðúU.,õÆhff†fhff†fhff†fhff†ff†fhff†fhff†fhff†fÀõ_Àÿg‡ˆhg‡ˆhgðÿð‡ˆhg‡ˆhg‡ˆhg‡ˆhg‡ˆð‡ffff‡ˆÎfffefefefefefefefefefefefefefefefhfff?ðÿfefhg‡ˆhg‡ˆðÿhg‡ˆhg‡ˆhgðÿð‡ˆhg‡ˆhg‡ˆÀfõ_Àÿg‡ˆhg‡ˆhgðÿð‡ˆhg‡ˆhg‡ˆhg‡ˆhg‡ˆð‡ffff‡ˆÎfffefefefefefefefefefefefefefefefhfff?ðÿfefhg‡ˆhg‡ˆðÿhg‡ˆhg‡ˆhgðÿð‡ˆhg‡ˆhg‡ˆÀfÿÿp®TÓ�e9®¯·›eaigÑÑú�ÉÑÑúà&ìÑÑG èAÀÂ<±ÚÀeßÂèæèæ�ûrts+}ÃÄÙÝ_/�[5ÊŠ&Éê°Ý³ ä(‘Ü0Jíté'ìîÚGò;œœyµ°!²Kc^!zƒi윜gÈœœ·eÌf€‚œœ¶¸¶¸¸œ¶œœ¸¶÷Û¥‰‹o¥Û€~uF!p‡ˆa@{eÑöÞöøøíÑ›/"/e·µ››·À›ÿÿk ¦|wÁ¦|w»¦|y»¤|w¹¤|w¹¦zw»¦|yÐpWUWU~y³š•–•–•–•–•–•–•–•–•–•–•–•–•–™š©¬™UJŸ˜ïê ¼·¼•¦hk‹¤jm‹¤jm‡¤hk…¢jm‡¢jm‰¢lmôs3113+1111US@FdD$$$$DDDDBD$BÀÿüCŽ/U<«’‹$[„E�PJƒ;)°÷2 »µç°2'tcµ_H›O/CHȈX�© JÐïØ¨ˆËÌ®øàŸ0îRHwíù–9ûñw~bMµ�Ieè`nÔÛ<ÃfH�o²ÿ·+ qG I!�›Ž ,(I%G%II'qM…ƒó ÛSŸªÆ‘ü9~Ápoð»×OüиèƒcqŠW!F –í„F;"ÀZhU!@44422Fõ1;ú�ü€8F±)^ZE‰ÿÿÿõfkFjEfU÷Iñ#@#i �¿ °Ù °À@#Çð5U"DÿÿDŒé£; ·rŒûk!§¶ö=ÈÛ~ %Ú‰(díw(Fì2˜ÃèÐt>Sè…Ì>q|§q²¾ ý"VUVUVUVUVUVUVUVUVUVUVvuâÊö•ïÁ‘WœÌ¬�Óù3ýÄbѵ…Ú‡ù°Y „éû' »ú,9Q¡xf1}v` —1$L$J&J >$" : .„`D& +)A=Rùìeaü­ûå��É´FßÌcá©ç -!7yý<8¨ÊB> Àê¿VÞðûÏýÏýÏýïûïýïÿù96{%l:6            ]\3aH[Pl#"%  ýïýïûÏûÏ÷�À€ o0x‚ùüg/EÉc áI§Oû@  knWVVš$ÔSJ#é±Àfó ú#,¥&/¶§¸B¥ž ÷~‹#{mÛµPg<Åc_5ìÌÿHFo4’B5n¾[oVxëm];>À†ŒFpϯ§(<,öxofegjnÖÚè]^º‡ýuÆÅbÀ2PXE?�+0ÿÀÚÕ &¨ %OðVv-0¾üáè / &ÀÂh àÀÀ,ÿ~   p`¨ÿ¼~ÑÍÙžúP^£÷ßs›˜\?íµ±av5æ|m¶«—X—¾�§™�±L®rH‡)ºUF¹ ¨eúàŒdc «•¸¶_ýõൠÈ�œMÅv %   Hvuƒ@¯÷ ƒG&"Vïa%ap`ÈOddcÑÊeEçKˆ¤Ã™“ÈÙWü°Ím=p†U\UðÿÍ^]VWZY� ûRQTUüýõXkfab7ÿý½€8q< MXgvË´ : Bü<��ýª«˜I�™!†Ã009/^[XW"ß÷ÿPIHE`sjüO †~õûüÌðÿÌð/ _ S  S  c0 “@'§@'§?ü Ì€O0(·/?_ÌÌÌÌ_Ÿÿ€ÿ `ÌÌóÿ`@00ˆW0(`?(¨?(ˆ X T T T üû»»»»»» '////?__Ÿÿ€ÿ ``@0000( ÌÌÌÌÌÌÌÌÀ TET˜@@LÈ‚~€Àÿø‚~õ_Àÿ€€€€ðÿð€€€€€€€€€ÿ````€à```_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`€```?ðÿ`_`€€€€ðÿ€€€€€ðÿð€€€€€À`€Øø8„hþép žÄ€¿ÑÐ  "  *  & & & & &0 *0., 6,*$ "$ "$ "$                "(*,&$  *4:8  (&0.864 & & & & & &0  -+- )') )') )') )') )') 979 !!                )')   )') )') )') )') )') )')  T37_groomed T37_groomedpÁfÉÃ@§ÄpA®ç¸ÃÀ¢Ä   =–=pÁÀ¢DfÉÃpA@§D®ç¸Ã} –u  ÿÿÿÿefËeÌfËeÌfËeÌfËegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeÌeeÌeeÌeehefeffefËgeeeÍeeeÍeeegeeeÍeeeÍeeegeeeÍeeeÍeeegeeeÍeeeÍeeegefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeÿÿÿÿ4141414MMMMMM333f2KKMMMMMM2222KKKMMMMMMMMM2222KUUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ü0Ã3ª©«©©ª«© ÿ𩫬«¬«¬«©0ÿ𩫬«¬«¬«©0ÿ𩫬«¬«¬«©0ÿ𩫬«¬«¬«©0<Ì0©«©©«©Ã «©©« ©©« ©©« ©©« ÌÌ©©«©©0à «©©«UUUU ÿÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSü0Ã3l ?ÿð?0?ÿð?0?ÿð?0?ÿð?0<Ì0+à ? ? ? ? ÌÌ?0à ?UUUU ÿÀÀpopoprpÀÿÿÀr8JL:(  >< FH6,  :8 BD2(   $&("    2$>@6 >8FH2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  ("$&(  Í        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T37_powder T37_powder„ÂfÉÃ@§Ä„BšÙ²ÃÀ¢Äaýa„ÂÀ¢DfÉÄB@§DšÙ²Ãi%ýa% ýÿßÿ3ÌÏÿ-.]--Œ.]--Œ.]--Œ.]--/---Š---Š---Š---/--/Œ--/Œ--/Œ--/---/Œ--/Œ--/Œ--/--/-Œ-/-Œ-/-Œ-/---/-Œ-/-Œ-/-Œ-/--/--Œ/--Œ/--Œ/---/--Œ/--Œ/-ÿð?-Œ/--/‰/0/0/0/0]-/-Œ-/-Œ-/-Œ-/---/-Œ-/-Œ-/-Œ-/--/--Œ/--Œ/--Œ/---/--Œ/--Œ/--ªªªªÀ``õÆo\fõÆffOfOfFfofofffofoffdododffofofffofoffFoFoFföeReeÀ`@`öFöFöF````öföföf````öföföf`@``ôfôfUUUU ÿü©ª©ª©ª©«©À?ÿ©ª©ª©ª©ªð00?©«©©ª©ªÿð00©ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«00?ÿ©©ª©ª©ª©ªð00?©«©©ª©ªÿð00©ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?üÌ©ª©«©©ª©«ÌÿÿÀ©©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©UUUU ÿüÀ?ÿSð00?Sÿð00?ÿð0S0?ÿðS00?ÿSð00?Sÿð00?ÿð0S0?üÌSSÌÿÿÀSÀÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÿÿÿÿlNkŠ0<X¹M€N0›D2› ó X ”'ÎE²2NвNŠx2lŠCõE×E×cÍÄÆâëÄÄÆØŠÄÄ£c×ÙõauĨˆ‘¦¨¦ø¦¨¦ßcÐc”Eva²ŠN0ZllN9ˆlP2aXE<': }20õ20NxNNlÐ ;“m Í%�uø'�“ž ×± O “ C ¥u�OýYO2;C&- *” ‘ˆ“luNWÒ ¥0Ml`(WZQ(”à 9ЪˆÕÄõĹââ ˆF (�¼D( â}Ä›Ä}¦j(((j(( N ­¦×Æì¨”¦&/kÃ1Mꪪª41‚S8G3‚q<02R63383>2R061631?02R4663002X3663RRR63383>101<5\SZ3z102:sSS33ð0000󃣣ôfôfôfñcƒƒÔDôDöDñaaƒôDöDôDóaacÔDÔ$ÿÿÿÿH^?I˜ô¼s$Ýl_‹ÅŒê ëS9�DbVîž#®'°'qhÄqoÈQD0\�>I_†Î]—&³²7&xÃØ+ÀFv+òo,¨º‚>H&¸b¬VFc7�[�&Ü�ð–~ÚðñÄ´¦Ñ3¶Ÿ(Uã§ïgr¼N‹”Ø*)~nsÔ«ñ+µ©HÛÓ>§ÆÛ q™$né2d ‹�íüó«j¶}áä“?Å(áæˆÛjrÉÅ%‡Ö •h9¥7I©\ßÌÃí¹ žR¸£æ<­º ñÚ$¶9ç1µJE2Xˆ!ˆ*¢;™fš1fæe32¸u'bùlþ:ZÍåSçÏUÍ«Ãs%†“q ÏÕ †{a·hÏ“!íÛüÊýHÂ'¤—j°Z­Éª|ø×ù1Ê—§D•4kõk[¿KÇ¥¦‹Šdí H9Üg�¡n \� ²o˜Xõï¥yOž ‚bqÛH©þ&_ä3îEn ñU4IŸ—©¯éÑcÌŒTfšR¤d|e¢ùtI“Ž;�ÃÅ—PpL ˜’nlUU™U J0€€’°0 p 1�4140 t4q1pp$#"º% P0£1ÝÕÙ  ÄÔ@ ` X ` Úÿ ‚ ¢ ¡p`pìðÿ?äê2­ËgQ—cØimãQ<é–yÝoÄ–4í9lãó®`€-ê4¿-_Ž0Ž(Œ^†¾]^^^_/^�/_`ð__¾Â_¬a{cag=­Åwî š{*œšXòò�!ÿ�#ÿ‘ÿ³ó¡"xšü@€ A@r$r$ÿÿ_ bdaw•øÅd1-d¢¡a©�Z1·òa™`adÖÆã«aÎNa> F_ BɉÐghh›ühœ3u4¼h͉Vý4˜1ücÎ̘hh2ÌhÎfmc •÷¶ÂüÂõ“µù÷ìÉÇ¿¬aÂÁaù£‘‘b…/o’¢hdñŽâ�ˆqëáô”nV\rÀò6Íû¨É—MêÚ±Œÿðý&¯!º÷!ð¦*fØÀÎpbPB0@4VVUUZ É òYZYZ3 1½]^]\WV11sÞ[XQ<4PQT<�QR�"<3[^W}!âCZUZ_À733`[\YZ]ü*¯L¯JhÁ /OOŸÿŸ44ÿð]&6  f@€BBBH```ªúß¿ ð°°üû¿$$Ï»üû» $»¿»¿»» $$$ »¿»¿»$$$» »¿»$$¿»» ¿$44 4 HHHHHH'//ˆ'//ˆ'/ÿð?/ˆ'///0/0/0/0/`0(o0(o0(o0(GGGGGGððÀÀÿÌÿÌ''@!!! ÿ``UUUU ÿü`_`_`_```À?ÿ`€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?ÿð`€`_`_`_``00?ÿ``€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?üÌ`€````€``ÌÿÿÀ``€`_`_`_``ÀÀÿÿ``€`_`_`_`ÀÀÀÿ```€`_`ÿÀÀÀ_`_````ÿÿÀÀ€`_`_`_```UUUU       @€@€@€@€ÿÿÿÿŒ/--/---Š---Š---Š---/--/Œ--/Œ--/Œ--/---/Œ--/Œ--/Œ--/--/-Œ-/-Œ-/-Œ-/-·-.]--Œ.]--Œ.]---/--Œ/--Œ/--/---Š---Š---/--/Œ--/Œ--/---/Œ--/Œ--/--/-Œ-/-Œ-/---/-Œ-/-Œ-/--/--Œ/--Œ/---/-^/-^/º--/-^/-Œ-/---/-Œ-/-Œªªªªôf````öföföf````öföföf@```öföföf````öföföfô ``ó¦o:f````öföf```@ödöd````öföf````öföf``@`öFöF````öföf````öföf`@`”iO``@`”ojdffoUUUUÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©ÀÌÿü©ª«¬«¬«¬«©?ÿ©«¬«¬«¬«ÀÀ?ÿ©©«¬«¬«¬«ÀÀ?ÿ©©«¬«¬«¬«ÀÀ?ÿ©©«¬«¬«¬«ÀÀ?ÿ©©«¬«¬«¬«ÀÀ?ÿ©©«¬«¬«¬«ÀÀ?ÿ©©«¬«¬«¬«ÀÀ?ü©©«¬«¬«©0?ÿÀ©«¬«¬«¬«©Àÿÿ©«¬«¬«¬«©©UUUUÀÿÿÀSÀÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÀÌÿülÿÿ?ÀÀÿÿ?ÀÀÿÿ?ÀÀÿÿ?ÀÀÿÿ?ÀÀÿÿ?ÀÀÿÿ?ÀÀÿü?3?ÿÀ?Ãÿÿ?ÿÿÿÿO1k¨¦¦9ŠÙÄn2½¨P2Û¨2 Š;lN=Q2î]ªªªªÔBñcca²B´"’"ñccc’"’"’"ñcƒƒÒDÒDôD󃃃ôFôFôFó”+‹‹w“PGSùk‹‹$S3ûk‹‹&S3û­«‹&Q333û­«‹(Q333ý«‹­*3331û‹­­(31Sý�m�(GS%Uû©«°&  ÉËûðC&Ð/ßß¿¿h�4%#ÿÿÿÿ´¥,qq°=.,�à�‘éf“Õöá½�lêUŠ·æÆ+ôŽ­øE¹Óe°{üzO,ž{º#V§u-T¶�Tù/Õ‘j¾õ“ÌzÜkQ ŸO8º³#æ¹Þe’ REL(d§rèýþbÙÆÀÉØ= sKÁ /yßæ½›ÑÅ¥¦Ûç )kU…û*ÏGËÔ¦_ë�Òº…æªßàÚÙÚÙöâ%B NIœŒÏéÑŒÏÜòA¼%%[ÚI¬Ô°4 È:Û¼ê7&-ÇP9W÷·ú7Hñ¢j ÷“Þ¼¤äÕ =-F;ýÇ�€ÙvóTOŠJ·™ÝÎ]°ÿK({�¹…’¥UUªëˆˆìúú@D`@ar00£1Ã3Ã1À@„„ÔÄ™–P�™€…Á��@!Ù™@�‰Œp&Pa�!QD9¢ 3‘ÇZS2Øøøùÿ "7ÿCRƒÿÿÿÿ7:õô½—öcï%ß-7þÝôÒŇò†¿»(ø1¤ cŒªR¿†j€ú2Ä| O%Óv_wu[Qe­ìƒk©Ò-1M)8Ûõ“¼ÁÜ®¶_áߌ¯\ê÷»éæ— ƒÊJAb(�¸ô-ÚwÙõÁµ>¢nƒB$ìû¢D°&È'ŠÈ¯&dÁ?îiÊ)ô܀̞þt¦x¼èçãäãäÝÚ61Ø/•e¡¾íÒ¡¾÷å2ªðÙr¥ˆÎü;‹Á–Ë|P‰ØAûÞ‘q²ù”h’;*ÖÔùRÍί 3múiÙ-ƒs&4‰¨åÊ—bÓ»æ‰LÀÖt'˜“ƒkF,­›U©ªªXHhbÀ€`€ Á€€�À@„Ä@ð‚vVXa. ¸VVV`0 ¸VVX@0–XxxB0–VVV€¶VVV€–xxv –VxxcQxz˜‚#-X˜˜ÁZyg‡‡‚GÿWUú{yXäiø7b:w±ÍÖq½�¤o&‘w§2¬ãÛ¨ÆïI«e?6²sårËԾͳ–/ç}ÛíSô¥÷],$^æ/ç·\¸å‰,^ì+ÿÄ Ø¿/’…l˜��€„€`€€;ð ¡!ÿñ#¾!4_óooW÷ÿ( u8ŒÀíƒEß@�1›®ÅËë Iss|v(¡Èª�r$ @ t"RBrB22@``rRR£3å3ãS„�‘À6ïÿÿ # 66=ÿC_9rÅ#üÿ¿@[’[5À+ˆ..‹Y.¿#$€I¹�í”äå\¶‡’Ú‡’HNM¿À¶íÆZÿ PãºÇÓ¥mþdrE²˜Þ2úÅËxd4RæÏGO•'–a`~`Û;º;œ9¸9Þ;aã;aþ9Eþ9EÃ¥–s–¥Mªê¶©f�¿ž¿¿dO0dO¿¿¾ŸBO.DO¾¾¾¿"/,"/¼œ¾¿"/,"/¿¾¿¿$O*$/¿¿¿¿FO,dO¿¿¿¿DO.++++- +ÿóÛß  +&(,²Ëÿ 44!2!0!**,.=)ÛŸÛðаÐ&Ë,2ÿ( üªÿÿý¹ñÝ;'¿ ð-&(Ð/ïÿÊ ÿÿÿÿ_0;©D~›ê­™ºm’̆|ÌŸ‘ÓýÌDžV‚³§k5”ö'œž*�jÖz0 x€h–@.ÍÈEÁ+‰e½º† ÇN�" ¬þ•ÎÕ«ËÌbµ-E+F÷µMwK ï Y§mzÃ¥“Ðìý2‚’%Fø¶ýч1 ­)X/ô“AÑ× ¤ÁÑ EŸ ;/ÔÎþ±ùS{›ç(ö(TÄaòzrßmw‡¿ûw]î@¨ÐpñTÃhê�žuvuvßëóî ¯¤šÂ¤&YKZëˆñüÐ*Ùzž,ÖZ°5 ªvÅÆ�ž÷øo¤âVÈâéPF•Y @ÕIÅÁ›VVªªd "%ˆ£/j2#«ƒ³1%%%,6¹›BK‚ )®ÌA@&­OVVv[�ˆúm†ÿ„DZQ c/B3ˆÐõeeev”iF”oôFñ#3Í:�VVXwiF”idŸ@4‚ÿÿÿÿ·x"A8B äÀ�QcêgÛON,´Å!ÙNR§0\4‡ «5�sÛ‹¾®cP€W’’o0s@Å,䛽!«›�`¨üeòIÚ Ô‘„[³X„=”ë˜ý°ÅÂͳ¤÷8%ŽU"ùŸ­OË�Ø+ìÜtÕú˜T²ºJÔð“Oâù¶2q¤ä:D.vÌ­¾�”/0×ì&Û¢ºöP¡f<ËÎç_º ›^:’d%‚%pNCS“…¨=1]$[ŠÉnmn R�f/Ùó®‘oµ»SüZè¥Ç3{¦2 °7n[мèHY$?’a�#Ï|¹ò5PªjYVm‡©§ˆ§‡…†……e†‡‡gˆ5gg‡h ‡eef#+‡…ef #ƒMÜ€ß'™™%B2#"WDEX£ ¯Ñæf 2#"2%T(ä©ðù™›® ºùl€ÿ~×Óø¢¿þ5 Ñ/’1­fWÒÌóï„ö/§goѱÝÄ$‹ÖwîÍ^­sس}bA¶·eI–ÈÈS’·?@›òxÝÜ<Ô²t¢Ààj[ÎÓî8º�N¿Âkq¸Î´@ZøXáb˜ß%mÕŠ&ÁÜcã¶�Ç5—?&¤ÿeCOsOCcA&%(}X¢ ÷ß'²|Ò]‡hi˜dÅsCáY(X›þµÂÆf !"/Ðô~�ðû  Ík³‰çÿăðÏQZø¿ÿ – d±LfÊÒ“  ò¡cß÷êªV)¦Ê D'Dgf$I ($TQ''%5\SK"#) 2Ïüÿ¯ÊÿÆF'Ÿ‘©o.ºú�¨ø�öñÀ$ �ˆö¯¦ÿa6¦jæë]‰Ÿ PC$v!!C¼eCEAA¯&o246Z5`b@B6C!C!lÃeMÃ^êòÁ£¤Bgȹ0À°ýìÏ­T*Ý©ªœ`V@ÿÿ4;<vVV¿ÿÿ8jdžîU |ÌÒVhghà$“ÿ  ãü*Þ6Õ¤>móÿÿòIbœhëì©Þ¢.<º@UU—e� `I&`„&f@&`Bƒ¾ÜÁ6sr_VQ^sl †ffffg?9tUìðúÿù©;à $Ãÿð<ONc`ïššÿ±%’@¯êÿÿGG ' 'üÌ ÌÏ##ÌÌ ÌÏ##ÌÌ ÌÏ##ÌÌ ÌÏ##ÌÌ Êo (G??'('('('('@'@'@'@@ @ 0     '(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000(@UU �€ÿÿÿÀÿÀÿ0ÿUÕwUÿÿà`_`_`_```ÿÿà`_`_`_```ÿÿà`_`_`_```ÿÿà`_`_`_```ÿÿà`_`_`_```ÿÿà`_`_`_```ÿÿà`_`_`_```€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ```à```à 0Ãÿ```ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌÌÿ```à```à 0à```Àÿÿ``ó30Ã`à```à`` `@PU HB€@�£ ‰F¡;ÿìp ¢Ä€¿hÐ     " &(   :DFHB@   RD^`J0 RLZ\F8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<68:<*,.0 "$$&("    2$>@6 >8FH>0  F@NPF8  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4       " &(  &024.,   >0JL6 >8FH2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$  .(:<*  ., 68&        $&("    2$>@2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  ‘    5? A5? A5? A5? A5? A5? A5 ?A)')     =       5?A5? A5? A5? A5? A5? A5? A5?M               1                        r­                T04_rockT04_rockÀAÂÃðAÃõÞÁäÂl%lÀAäBÂðACÃõÞÁî%æ 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ(ã¯;;HøÛ€;;H]‘–;;Á9åÁ¼ÁLêM6ºº^ÿÀê6666YY$cU.oS.mO,kOÿÀ,iN3.oV@�ZP½LM+ž‘Ké96h5ƒ4�$  �>döÅ„dZO’c§q> düUFvUu $bA)AbA ï°=`Ä.:WàÁW9a[– 0?ð?`_ @_ @_ð? @_ @_ ð@_ððÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿðU_€U_@" 1_@1?@1?ÍÀ UUr]ð8èçcÐAꀿqÐ  "( "( "( "( "T37_rockT37_rock„ÂfÉÃ@§Ä„BšÙ²Ã€£Ä† )† „€£DfÉÄB@§DšÙ²ÃÇ)¿ ýÿÿÿ3ÌÏÿ-.]--Œ.]--Œ.]--Œ.]---/--Œ/--Œ/--Œ/--/---Š---Š---Š---/--/Œ--/Œ--/Œ--/---/Œ--/Œ--/Œ--/--/-Œ-/-Œ-/-Œ-/---/-Œ-/-Œ-/-Œ-/--/--Œ/--Œ/--Œ/---/--Œ/--Œ/--Œ/--/---Š---Š---Š---/---Š---Š---Š---/--/Œ--/Œ--/Œ--/---/Œ--ªªªª ``ó¦o:fó¦ffofofffOfOfFfofofffofoffdododffofofffofoffFoFoFffofofffofofdfofofffUUUU ÿüefefefeegÀ?ÿeeefefefð00?eegeeefÿð00efefeege?ÿð0eefefefeeg0?ÿðeeefefefee00?ÿgeeefefefð00?eegeeefÿð00efefeege?ÿð0eefefefeeg0?ÿðeeefefefee00?ÿgeeefefefð00?eegeeefÿð00efefeege?ÿð0eefefefeeg0?ÿðeeefefefeeUUUU ÿüÀ?ÿeð00?eÿð00?ÿð0e0?ÿðe00?ÿeð00?eÿð00?ÿð0e0?ÿðe00?ÿeð00?eÿð00?ÿð0e0?ÿðeÿÿÿU]„{r™¬µ@(1'' &k'E£F‰ca­ÓÊÓæñùÒ'''cEEEÝacEò´¡¶ƒ–)zÜ'N�C 2E'2ÈzzJ\h^ûˆ¨¦œl¦¨lˆ¨I\J\L\J\覨¦B¨¦¦q¨¦¨g\,^^ z…ˆlŠÖŠˆlŠŠ¦è–G˜I¶IÒIŠˆlô¦Šl¦¨N#ÔÝÔT\òg'º�“ºÎíö4"]|¿ñç{ƒ°ÿÏå1WpNº\?@?@?@ð00??x£\?@ÿð00?@?@?x£?ÿð0\?@?@?@?x0?ÿð£\?@?@?˜{\ï¿U ' # # n„j ¦# !!ÿ3?S?S?ÿn„l¨!!!n‚j¨! !!l€hª!!j€hª!! !ÿ?3??ÿj‚hª!!! j‚h¨ # #%rˆp¨#!l==?ÿ~d¨ð00?dx^¨ÿð00dx^?ÿð0¨dx0?ÿð^¨dÿÿÿA0É,ýݼ›z£� &"<7 *`D: ×ÜÁ鍊‹v 볈·K�/ü?[_¿}gq½ñg u)ø5°99�[=ÂU„GHG¦y ö"¥iÆ›ô¿âÃq ë Jר©F…sØ‘Zw HnR/ÒßþX#¨#‰!ƒ¢ìÏtR7NÝJÙ4ècÑb …W>xM÷[5ç�YeRy< ?ðͨ]€ªªª@1cCCP‚44454423 4445444546VUVT6U8\|""bp5:3uðÿÿÿi02$$ ¾æÛ"¢§´*ZÜ�:8©)>fEŒQh â ½*u[ReIKÓ+GMieSh1eq_k(GUVgê+Û-+K=/ƒ¢sts®�&– × ~¼›Â�~ � åÒ‡Xi 7¾“HN> :`X!ŽÔ(kÔÒoàrGdÖF<7aV[¥kÀC(4["DœÌ¯¯FhøâÒ Yqü00?ü Œù…CCOðŒùCCCO…ðŒ0?ÿðù…¢ƒ†—äUUõUÿý€ $!�ü?ÿ* ð0?#,ÿð0!,?ÿð #0?ÿð*# 0?ÿ*ð 0?#*ÿð€0#*¿ÿú>  +(2ð0?&ÿð0&?ÿð0?ÿð&!YZýAÿþ!öO¯ÿ˜ßô7ÿ o¿ ššx!!+ ¡x˜ ÿ ð·ÿ ÿð`  *…„£¦   ­'âÁÀyzéêè奔  Ê/ˆÀ& ?ðAO”@ðÿ÷ÿA_39мäð«ýSŒ‰½_6-0.¼GX(t"ij“”Çרì\åW‹1-QY#;˜ùbQûîÇJ¯šSZnÈtò&¢*ÖÕ‹û«—YºÒÎ?ÿüý>›hf0•Ë.É—e×2óרeŠÌ»}‰Q´½ec¶xec ‹þ8 ±­ïðw%$èTfÝß4u$Nž÷Ðk Û™.%"Lެîè#nþ·º�ÆoêE^Ø¥™[ªµ¹�Ý´Ií°Íj<JIð,'UUy@ÿ“Çbababaf`0c@à?b_`?3~¾[\Y`c`eãŸÝñTQRQVQT?À WVS3ð0÷RQRQTUXWððÌZWVUVUZYÓ°ã»ZYXWVWTO ™ÿÊ_Ž�~ ‹Š{nWD4ÿÿàC3 €ªêÿ_ð°°öû¿""o»öû» "»¿»¿»» $$$ »¿»¿»$$$» »¿»$$¿»» »$$¿»¿»» $$4 4 4 HHHHHH'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿó3Ï€ÿ `ÿ `ÿ Ïó3?`ÿ ``@00Ÿ@0P@U!!!!!!1ññ‚‚‚ò‚~UUUU ÿü`_`_`_```À?ÿ`€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?ÿð`€`_`_`_``00?ÿ``€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?ÿð`€`_`_`_``00?ÿ``€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?ÿð`€`_`_`_``TUUU€           ÿÿÿÿ/Œ--/Œ--/--/-Œ-/-Œ-/-Œ-/---/-Œ-/-Œ-/-Œ-/--/--Œ/--Œ/--Œ/---/--Œ/--Œ/--Œ/--/---Š---Š---Š---/--/Œ--/Œ--/Œ--/---/Œ--/Œ--/Œ--/--/-Œ-/-Œ-/-Œ-/---/-Œ-/-Œ-/-Œ-/-+.]---/--/---/--/---/--/---/--/---/--/---/---/--/---/--/---/--/---/ªªªªofoffdododffofofffofoffFoFoFffofofffofofdfofofffofofffOfOfF:ffffdfffffFffffdfffffFffffFffffdUUU00?ÿgeeefefefð00?eegeeefÿð00efefeege?ÿð0eefefefeeg0?ÿðeeefefefee00?ÿgeeefefefð00?eegeeefÿð00efefeege?ÿð0eefefefeeg0?ÿðeeefefefee00?ÿgeeefefefð000eegeeUUU00?ÿeð00?eÿð00?ÿð0e0?ÿðe00?ÿeð00?eÿð00?ÿð0e0?ÿðe00?ÿeð000ýÿÿß00?ÿ£Žñü˜ÑzV–_ÿÍìz2ž”C¹/rñQA†,ý<¼b¢×¯žEC ö«#.!v /*/1Ã1/«A?+?ƒ?CMMÅü1kÃ*1kÃf?è]�]r{sŠ%Ýl%nl Cf—�·ÊÓùÓ%'gCC ßaE%zñ ðˆðüð¹ä‰/Üä§ ƉŽñ«Ó‹Õoµk‚ØÚ´¼¼ø;¼Úö—Ç{ü{Â{b¼žd{ÚžbxöždbÅccca' NNŠˆ¨¦¨¦¨ˆ¨Š¦¦¨N Ø“õÅÀ±²â¯×õ¯¼(1O/ù_¿Š00?ÿx^ªÿD�$�$oÿRhP´   RfL¬    VlR¬   XnT¬  ú¾º¿ \pXª ÿúº²   \pZ¬ XlT°  ThP®   ÿDOdOdOGVjP3S3531313135uQ&ˆfDDDÿÿÿß³´IJ)pÜ^htãìc.+Y{]鋆í¼è¹šFœÓÜE¢yn„öÐÞWЛ÷ßÔú푨x$_N $æŸD„Â@×'?�I6|ÜHN‚ÖЂÝi²ÁbÈ€ª!®®¦`X´œló]½Æã²æòJå•SéE™Ý'3·S©êr$QºÙß­ÑoïùݼÿüÕc91|µ‹GG~±`]Qz]G#7óaK‹ŸÕÕQû­©18` üdj‚úŽßÄ„(f8 ‡¿¶½‘•]/`-5˜7D™œ™¸üJn7n\Ïè§Ý1Ä”ž:,.ª–j™o�‡oQ<3(òu£KÑh3Uæ’[[dWß/'\PNJ.F0#YiC'A  /5Zó°[Í{•¯ü–Ç7ßm…lú5:›9 ‰KYUU•°?ÿ$$"ÿD)D/hnÿ-ÿõ5w6ÿÿð!0?ÿð*!!1?ÿ,ô$1?*ÿð°!&¿ÿð’%:¿ÿð&# 2?ÿ*ð�4ð+. *€Ÿ ð$¨`S1ÿÿÿÕúù‘ã�§®*�>0×zçìl£‡*5´4�z¶Ù—C ëÓ}èjŸ«.–dˆ'a°r7_À.°{1Ä mŽ�Nc›;µ^�8ÛŒ¨‰uŠrSãì:�W@qm»Ž‰)N˜_Ž+”Võ¦nãëèq¹žubbãïÖ×ñDÆ›Å%Ý*èMüÊÖ]ÕŽ¦/M!2?9li¦bãù8lWÙ<ž±#ƒçÑÿ‰c·„“³Ñó7½ÞA éÞ›¢áC@��.’€ 3ž{Có5êÊÝbbbnªV€4oM%2: B 6È/ªOlù@!"i"i"b)DID)D!##8%%5?UÿÑ$u5" 2ºº°2ÿ‘ÊF ¥fi_`ÿ`]TSNMù4ÿÿ.' #! ,¥˜Où#,|šÿx�Íÿ|ÿÿ!"*¿ÿÿ +-.ÿË/º !ðò™ó !ÿøs&#$!™ÿÿÿíe /ùª‡v) †šsÿ ›\]º“ð[(燢oÛÑÊfËŠ#?cÏ�i•›¢)üSÀ’lðUUUY`Hf™&a &d f@ `a � †02¼0¯ ijg\Wÿð$ûVïVSReTø'`ÿ«ªþ0Ÿ@00Ÿ@0000(o0(o0(o0(GGGGGG ' ÏüÏüÌ ''ÌÏÌÏÌÌ ### ÌÏÌÏÌ###Ì ÌÏÌ##ÏÌÌ Ì##ÏÌÏÌÌ ##ÊoÊoÊeo»»»»»»»» '////?__Ÿÿ€ÿ ``@0000(@T0ÿ@@~‚~UUU00?ÿ``€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?ÿð`€`_`_`_``00?ÿ``€`_`_`_ð00?````€`_ÿð00`_`_````?ÿð0€`_`_`_```0?ÿð`€`_`_`_``00?ÿ``€`_`_`_ð000`````UUU          --/---/--/---/--/---/-k>¹º={ºð={ºfffffFffffd÷ÿÿ±ðÏüïCffhfï"ÿÏÀfhfï"fhfÏü�Cf�"ÿÏÀ�"kÃÆl Ca 2Ä¥F¼ÚöëÚ¼b­ñÌC#%ÍwmÿÿÀ}a_�}}}*BB" "$$FFFDÿÿìï?ÃEÎï?ÎàE¡ 4 ½ ;èÂMÛÊYN��<ˆ­öqPO?$^["ÿe$d6ª Gt@®d ÏаÆÂ½3f쪋7ƒÝýTTM;ݧRmJ´J!@"¨ 꼚\ŠÎ�y]Åëo•RÎöøVõv7{|{ó˜šm@ÿ¡¤d$FB 5U1BÒ0$$ >@ÌÌÌÌÌÌÌÌÌ̦ÿÿÿ8`_ @_ð @_Ïü ÿ___ €ÿÏÀ___ €___ € „âF€ m³ÿYè„Â`£Ä€¿‹ Ð     " &(   :DFHB@   RD^`J0 RLZ\F8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  U   ECEECEECEECEECEECEECEECEECEECEECEECEECEECEECEECEECEECEECEECEECE  "( " T38_groomed T38_groomedpÁîÎÃÀ«ÄpA\�ÁÃ@§Ä   @ @ pÁ@§DîÎÃpAÀ«D\�ÁÃ¥ � ÿÿÿÿefËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeÿÿÿÿ2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMUUUU ü0骩«©©ªÿÿ©ª©ª©ª©«©©ÿÿª©ª©ª©ª©«©ÿÿ©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©ªÿ30骩«©©«©« 00©©«000©©«000©©«000©©«030©©«©©Ã 0«©©«000©©«000©©«000©©«UUUU ü0ÃSÿÿÿÿSÿÿSÿSÿSÿ30à 000?0000?0000?0000?0330?à 00?0000?0000?0000?UUUU ü0Ãefegegcÿÿefefefegegÿÿcefefefegeÿÿgcefefefegÿegcefefÿefegegcÿ30Ãefegeg—eg 000eËeg0000eËeg0000eËeg0000eËeg0330eËegegà 00—eg™—0000eg™—0000eg™—0000eg™—UUUU ü0ÃXÿÿÿÿXÿÿXÿXÿXÿ30à 000B0000B0000B0000B0330Bà 00D0000D0000D0000DUUUUÿFEFEFEFEFEÿÀFE00FE00FE00FE00FE??F[F?0EF00EF00EF00EFÿÿÿ/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßÿÿ30Ÿÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@0TUUU3‚‚ ‚‚~��€ ��€0ÿ!!!ññ‚‚ñø‚‚~0ÿ!!!ñ‚ññø‚‚‚~UUUU ü0Ã`_````€ÿÿ`_`_`_````ÿÿ€`_`_`_```ÿÿ`€`_`_`_``ÿ``€`_`_ÿ`_````€ÿ30Ã`_``````` 000`à``0000`à``0000`à``0000`à``0330`à````à 00```à`0000``à`0000``à`0000``à`U €    ÿÿÿÿeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeÿÿÿÿMM2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMMUUUU003©©«©©0à «©«©000©«©000©«©000©«©000©«©©30à «©©«©©000«©©000«©©000«©©000«©©30ë©©«©« 00©©«000©©«000©©«000©©«UUUU0033?0à 0?0000?0000?0000?0003?30à 0000?0000?0000?0000?330Ã? 000?0000?0000?0000?UUUU0033eg™—eg0à 0ee™e™0000e™e™0000e™e™0000e™e™0003e™e™e30à ™eeg­0000åg­0000åg­0000åg­0000åg­330Ãåg­¨Æ~ 000˜$Æ~0000˜$Æ~0000˜$Æ~0000˜$Æ~UUUU0033D0à 0D0000D0000D0000D0003D30à 0000B0000B0000B0000B330ÃB 000 .0000 .0000 .0000 .UuÕU0?ðEF[üüFE00FE00FE00FE00FEF[‰-.§¨ ¯ð000°é‰ 0000é‰ 0000é‰ 0000é‰ é‰.­¦±²AÔÓŸôóÀü000œ›1ŸÀ00001ŸÀ00001ŸÀ00001ŸÀP•UA 00000000Q' 000000000000000ÿÿÿÿ0Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@0UUUU0ÿ!!!ñññø‚‚‚‚~0ÿ!!!ñññ‚‚‚ø‚~0ÿ!!!ññ‚‚ñø‚‚~UUUU0033``à```0à 0````à0000```à0000```à0000```à0003```à`30à ``````0000à```0000à```0000à```0000à```330Ãà`````` 000`à``0000`à``0000`à``0000`à``U@     eÍeeegefefefeM03©©«©033?033˜$Æ~˜033 . 0?ÿ1Õ6õIŸn0;;0Ÿ@0000/0/0/0033`à```ÿÿ8ÿpÁ §Ä€¿E Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" 5        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2%824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T38_powder T38_powder„ÂîÎÃÀ«Ä„B¤°»Ã@§ÄÈ È„Â@§DîÎÄBÀ«D¤°»Ã2 * uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/0/0/0/^/0].0].0].0]¹3333¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0i»îº3ÌÌÌ.ø`@444ô S¥:S¯v3333.44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿ.444ó¥:S¥z .ÿøCCCOz:S¥:S¯ÿÿ.d444ó¥:SzßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©Ìü0ꩪ©«©©ª©ª©ª©ª©ª©ª©ª©ª©«ÿ ãä©«©©Ì 0«©©«©À©ÿÃ3ãä«©©«©©Ã «©©0?ð«ãä©«©ÌÀ0é«©©«© ©ü30ãä«©©«©© 0À«©©ÿ«ãä©«© Ì ©«©©«ßUUUTSTSTSTSTSTST7SÌü0ÃSSTSTSTSTSTSTSTSTVÿÌ9?Ìà 0?ÀVÿó309??à 0?üT7?ÌÌ0Ã? Vÿ339?? 0ÀÿT7ÌÌà ??ÿÿÿÿ–Í: f‰7dãÊ´Íå"¹èpLnp¬n±n´E´C²CFDnCop´E!ÖC#ÖC!q¨èÊèÌ Ê‘ÌIÌí©§PøL´´CnpLÁC²C²C´CøC´C´C!ÖC#Z+ “\Ä%„j‘à´N’­8Nnp¡C�C´C²CåC!²C!ÖC#ÖC!ž×æùZÓ'@?o¾’.¡}ÿÎLpnŸC²C�C´CåCEøCEÖC!ÖCEù Z‘K)¡MœpØ.Ã,x‡²²ÖC´EøCCC"’Ef’Cd}Cg\•Â+ä Éoš. Á�t”�°Ž¾ELCƒCôCVEE’CBÅCßwݵA=(;*;*9,;0? > ìü²Ë> V=P=P=R;P;L=H=JAE# . ÌÛ,²0 E!ßós2 , .Û,¿ÿ G#  ,Í̲Û .O!üÿ3s , .,·ËÿC#  ð°°pð-ð ÿÿÿÿIæ.šhYÏ3ôOöV¡� §5ДQèÈǤ£¢¡4½1ð�–©¤šÂ¤âVÈýÇ­tît=<˜ð; e“OWÑdÁׂFÈrez‹Ÿ¤£¤£TSáéPÀ𩤚¤[{?4˜Üˆ-‘7mpq]JëT’"6+*).-.-k äz¢èt¤â¤z–ñâÐÖ ò‹ ¥O°’˜›9; t}A-#$.-.�.T9=xË$¨�)Ðß3ýZvþ–CIéöE}²±ä.+’‰ÚÍD% it je¡ ŠáâDõÂ$2æ¤9™ùßÕ<2e¾ý'¤¸šy�·Ð�²ÍhœŸŒ[Kiªfš,ÔVí‹òPeee&þF”iFû#“r» .&Ðõeeev”iF”oôJ@ð0,MOVVVWiF”iFÿ „0…¸’±†¾¹’.‹ÓNÇ¡Ñý†mKtðV9§ª5ÂÏö�¾OeU•šÀ ’ø†f–"2#"W!2#%ÁæfnºëÁ¸À‰ðy™›®ºñ(P(Nfë®%p SA"¤#EE$#RT—"¦ ¦¶¶PÄqGõ]WÞ(ýñ<† ¢`ï�Ò ý  d±LÊf¬×#Ú¹-s¡-EQ¾Â‰æŒ†fæÀ/Ò“�òý  ¶?ÿÀ�¾«Ö5›gƒ4±™¿– fqdo d+77�ú”$C®ÀöŽ~OWoÿÿ¡»�ç{T5äïÿÿýH �<ó� z« Íš%¤'‡�ˆôá]Êi²¦¦÷ਿ“'ÿ<É ï™Õ‡jÁXLÕŠ hfYHÿ¨ø�ˆÿ% #/ºø�¨ø�ö1n€ð? ˆø�ˆÿa¨°˜Ö�høþ�ì" ¯lú¯¬ÿË(ÿÿ%_w]ûHÕ§S¨S‘%Þ_ùe; «=Q }÷ÞÑNM ÉÊÆô’O¢pc"'-Òk6K&ì_èc‘ÿKÉÊ ÿË€“ yz¢)$[T^ ¥Ý”Žÿðoò¬0"Lؼ»¼¢I.ü7B–KC¹Ìw½¨�Ÿ¼ÿ¾¾½ÿB¼ =—ÿxçJ©/õåÀ¦·oœ›ã(ÄáAcÿ4pG"K|Ònr… ³Õ¬ïQ©ª�²› Y–eVÕÏÿngjWVO\ÿ0ô�‡‡Þid#F` a.óFðýç_bÿA€&Hÿý/\aZY_oÞÞxqVH2»©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ2ãÍ``’Š�ÿ`’`G9�``’Ò07�b`P¼1œÿÀ6rBt05!q!su s c?À@'%DÕÆBÞìF>’K%eÞA&hKÿÀ3:KL ƒ .!t]/ô x­.üu–Mö¡‚NÌÿÀ: &` Ã`?/?`K,`@¬ Á€?d·ë«#©Ag$®ÊÿÀED$ef"C `@`?ð?`_ @_ @_ð? @_ @_ ð@_ÿ___ €___ €___ €___ €___ ÏÀ€___ „ UUræçVíø/%b A §Ä€¿qÐ  "( "( "( "( " T39_groomed T39_groomedpÁHÑÃ@°ÄpAîÎÃÀ«Ä   @ @ pÁÀ«DHÑÃpA@°DîÎÃr j ÿÿÿÿefËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeÿÿÿÿ2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMUUUU ü0骩«©©ªÿÿ©ª©ª©ª©«©©ÿÿª©ª©ª©ª©«©ÿÿ©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©ªÿ30骩«©©«©« 00©©«000©©«000©©«000©©«030©©«©©Ã 0«©©«000©©«000©©«000©©«UUUU ü0ÃSÿÿÿÿSÿÿSÿSÿSÿ30à 000?0000?0000?0000?0330?à 00?0000?0000?0000?UUUU ü0þ½¾%I\©ÿÿ¾½¾½¾½¾%I\ÿÿ©¾½¾½¾½¾%Iÿÿ\©¾½¾½¾½¾%ÿI\©¾½¾½ÿ¾½¾%I\©ÿ30þ½¾%I\?°_ 000g°_0000g°_0000g°_0000g°_0330g°_à 003000030000300003UUUU ü0ÃIJI?5-îÿÿIJIJIJI?5-ÿÿîIJIJIJI?5ÿÿ-îIJIJIJI?ÿ5-îIJIJÿIJI?5-îÿ30ÃIJI?5-%! 000X!0000X!0000X!0000X!0330X!à 00J0000J0000J0000JWuUU¤¡²±bÂÁâÜÛ¸fgbâfg¸bfgâ¸fbâ¸gb⸩®±ëÅWÝñÍÎçÕÖ,ü000op° ç,0000° ç,0000° ç,0000° ç,0?ÿ° ÊNÖ©p@ÿ𫬯° 00 00 00ªjUU1cq'p444744474447444747'1#000 000 000 000 ;1  0000000ÿÿÿ/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßÿÿ30Ÿÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@0TUUU3‚‚ ‚‚~��€ ��€0ÿ!!!ññ‚‚ñø‚‚~0ÿ!!!ñ‚ññø‚‚‚~UUUU ü0Ã`_````€ÿÿ`_`_`_````ÿÿ€`_`_`_```ÿÿ`€`_`_`_``ÿ``€`_`_ÿ`_````€ÿ30Ã`_``````` 000`à``0000`à``0000`à``0000`à``0330`à````à 00```à`0000``à`0000``à`0000``à`UUU    ÿÿÿÿeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeÿÿÿÿMM2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMMUUUU003©©«©©0à «©«©000©«©000©«©000©«©000©«©©30à «©©«©©000«©©000«©©000«©©000«©©30ë©©«©« 00©©«000©©«000©©«000©©«UUUU0033?0à 0?0000?0000?0000?0003?30à 0000?0000?0000?0000?330Ã? 000?0000?0000?0000?U0033330à 0�n¡ïÛ0000n¡ïÛ0000n¡ïÛ0000n¡ïÛ0003n¡ïÛn30¡ïÄU0033J0à 0 0000 0000 0000 0003  3]UU 00/¬¿°\÷øüû’ÉÊÙÓÔ40000’Ù40000’Ù40000’Ù4000?’Ù4öáÿÿÀýoÊ\Ô-GHÙ00ÚÙ00ÚÙ00ÚÙ00ÚÙ?ÚJÜU00¶Û °000000000000000330ÿÿÿÿ0Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@0UUUU0ÿ!!!ñññø‚‚‚‚~0ÿ!!!ñññ‚‚‚ø‚~0ÿ!!!ññ‚‚ñø‚‚~UUUU0033``à```0à 0````à0000```à0000```à0000```à0003```à`30à ``````0000à```0000à```0000à```0000à```330Ãà`````` 000`à``0000`à``0000`à``0000`à``PUU €       eÍeeegefefefeM03©©«©033?0Ÿ@0000/0/0/0033`à``` ÿÿ%ÿpÁ «Ä€¿E Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" 5        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2%824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T39_powder T39_powder„ÂHÑÃ@°Ä„B%ÉÃÀ«ÄÈ È„ÂÀ«DHÑÄB@°D%ÉÃ, $ uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/0/0/0/^/0].0].0].0]¹3333¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0i»îº3ÌÌÌ.ø`@444ô S¥:S¯v3333.44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿ.444ó¥:S¥z .ÿøCCCOz:S¥:S¯ÿÿ.d444ó¥:SzßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©Ìü0ꩪ©«©©ª©ª©ª©ª©ª©ª©ª©ª©«ÿ ãä©«©©Ì 0«©©«©À©ÿÃ3ãä«©©«©©Ã «©©0?ð«ãä©«©ÌÀ0é«©©«© ©ü30ãä«©©«©© 0À«©©ÿ«ãä©«© Ì ©«©©«ßUUUTSTSTSTSTSTST7SÌü0ÃSSTSTSTSTSTSTSTSTVÿÌ9?Ìà 0?ÀVÿó309??à 0?üT7?ÌÌ0Ã? Vÿ339?? 0ÀÿT7ÌÌà ??ÿÿÿÿý«þ Y-®krÀÜØbñò^^ ^e"Ç"I¥R¥š§Ï¦"¥9^m¥�à¥/ʧ<?¤aôìN N=”ãÿèþ¡*?¢–R-Š#w#É¥#§Õ¥1¥9¥0S§ØR¥# ¥�ò æsôÝÝg•Ñ…ôÍN˜ƒ ƒƒ�±¥1¥/¥Ê§2¥âì¥Éš¥w½§ä ¯@4Åéé5?r�hôB2ïí¾½¥í§`¥§¥/¥Ö<§�⥂֥âò»ѸC–ä6ý?º‰ÉQ¥¦¥¦¥¦¥¦¥É�¥â;¥â;¥âèO¹Ñ)¶•A4 3ý3™®R;¥¦¥¦¥¦¥¦¥â;¥â;¥ß»î¹+7*77; A=7 : Ìüóß@r=tAtEtCtEnCl;f7Q,U1;7' QPñ�±k8.,.0.24Q&M/71)'ÿW_°k�Oÿÿÿ:,,.0046K"C-/+-7�‰q‡<.*,0266C"A--+ÿ-9'0C0Oÿÿ<,*.0286=(O-5/)/)0C0ÿÿÿÿBŠdgxÞFˆ«Œâ“bõ�ª–»Ê:“¬J1ÚÈ@è<®Ó/“bÅ¡±@ Üò¬P¸qß|ób”ÉNkëF>í%/É�,ú0ÕÇØpaK€Ú8ÜÂbÒ>h©�§Å[þšz± ºvŽ)²šëKK´jßp>=ûÿ|oÁ´ ·¼²/�Eœþ©*•‰ˆL÷×k –_ÑU:¨Ÿ^®‘úç´¡•¦ÄÒ®¹T¸âßìÔæU�€‹¢k‰^TÚ�áûsU×׉ÒÍHG¹á΄®Îô>Î7 \¬ØLû ÓlãgüEQ0V¯…ЉÎÍcdzÎô>Îô>Ϊªªš B6’’B7@6ø�íˇYøNÿ¯øÿ24?Rb[d°÷Ë©‡úö¯èü�ô!ñ†#2VO�xxx}�hø�Šÿa`@ðùXíË©üøïìþ¯öðfZf¯z˜x!¯Šø¯Šÿa0¬îÃ^  ÷‡©Ëúø¯Š%ÿÿÿw!õNÇÍnP¹äOçwÝÙÃ’óÌO˜ZŽ¥¸¯ã½ ¸—íØÀzBµPëá/«#²´]d&L#b ¬©¦¸sÆ`RFÙ*ày'^N¡\ЬÛ$$!·7Í ð1ûûåÕñ.‘Lµ‘íd³€°žN&˜¢b·4 ÝÊÉÊèë"Ï�¥»Ã:Mªk V!ð”W>JøGá‰/"(·É¿­j!Ï¡ò2O¼+•C‚œt÷æe\V¿g¹­…|BOÝ÷Û§ÙωvhÜ\ S”© –àDCëüðÿƒxø„ƒ¢ÍÕÑhÑeAôª[O î_y�8?”­Ï®CDª¥ie“ëËëëÉ‹æ0÷�Ö´põ¶3�:¿¾¼¼º¸˜_µ«‘î äì¹2 02S3H¢Z!##!$ú10ŠÂrP0à0PI&$èX�&/<&`‘!†ù]W]¼!3 šš4žò5¹“Sø ÇÒ|°ÐYx]¥YÀr9_by*£ã:Û(oÅÆ D^³˜�l¯dLtÿÿÀCß³ÌÖ¶gæ°°? m).)�çVUòå�ÎKU~̱ÿ×.Ì�ÿÿ)Îô>Îô>ÎpXV™! ˜‚0ÜøÏêÿ�àÀ2? jø¯ªÿ@06ÿÿ  ÿL 6 ¯Šø¯Šÿ@0S6ºø¯Šo×]sJ1Uô*t!øÇÌé S幜î³Åáìç�³ ÷Bú� ˜¤’ Ó-·V��Ü~(]µkêi×ÿá†'•1ð  Àÿÿ ´�…_;7!pIÂ6þ�­ Э®¢ð¢àæÃ²®ŽEU=nÇ3ŒÿþPnëìon¢ÿ+Ý_ñÊì�œò_Uc¦‹ÎÍJI¤¾„÷² Éï¡ï1U­¥ÿÿÀ�¼»ÎÍcd¤Y¦e’¼ÜÜahmjòTùàÿÿ©OJ-RB„’ƒ,b[�ðÿýaXÿᆠ  ñf#T*ÿ �zÿš‘gZ!`7óü&alobýí©2  ñ'\oÿÿz˜xqotO8ÿßÏ)TUfajsJW÷Þ©Ë>uÿÿÿ3ÌÌÌ'(W///?_ð Ïÿ?'('('('('@'@'@'@`3333`@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'QUUU@ÀÿÿÀÿÀÿ0ÿ0ÿ ÿ€ ÿ@ÿ ÿÀÿßUUU€€€€€€ÿ````€`_````Ìü0À`_````€€€€€€€€ÿÌÿ```à`Ìà 0``à```Àÿó30ÿ```à```àà ```0?üÿ```àÌÌ0Ã```à``` ÿ33ÿ```à```à 0À```ÿÿ```ÌÌà à```à``UDUfffB@™™™š@@ � @@].0]¹¹¹¹»¹¹¹  0©0â;¥â ¸£X}­ªóÿÿ:*(4:0,*ôãô,9[”3õ’üoøÿÿX\·£Ð='i"SŠôãôO“£Æ]�’Äÿ÷) @'@``@0000(0` Lú¥•ÿ„ «Ä€¿ÑÐ             "$  &("         ,                  %#%     =                        r­                                ! s¬                   r­                                ! s¬         T39_rockT39_rock�AîÐÃ@°ÄÀA¸ÞÎÃÀ«Äl%l�AÀ«DîÐÃÀA@°D¸ÞÎÃè%à 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀqËôYäW�¨BïPïûTÌÜÚÚýã§ÑnÏ)‚aÁ­ðßPZ!Ë:><ÁfÕ"Ur݈ã (œçJð”Ý3øúV Ÿš©\î%`m^ Àì`G£ƒ2B½î]*ëÓ {rÃ?óóQX•í?¦¥ Ã3 ` ` "EÙ¼fB7Õ´bB £¤œ!M.b@¢ Ðð?`�B?ð?`_ @_ @_ð? @_ @_ ð@_ÿ___ €___ €___ €___ €___ ÏÀ€___„  „UUr8ÒêÍtd A ¬Ä€¿qÐ  "( "( "( "( " T40_groomed T40_groomedpÁHÑÃÀ´ÄpAHÑÃ@°Ä   @ @ pÁ@°DHÑÃpAÀ´DHÑÃç ß  ÿÿÿÿefËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeÿÿÿÿ2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMUUUU ü0骩«©©ªÿÿ©ª©ª©ª©«©©ÿÿª©ª©ª©ª©«©ÿÿ©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©ªÿ30骩«©©«©« 00©©«000©©«000©©«000©©«030©©«©©Ã 0«©©«000©©«000©©«000©©«UUUU ü0ÃSÿÿÿÿSÿÿSÿSÿSÿ30à 000?0000?0000?0000?0330?à 00?0000?0000?0000?ÿÿÿ/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßÿÿ30Ÿÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@0TUUU3‚‚ ‚‚~��€ ��€0ÿ!!!ññ‚‚ñø‚‚~0ÿ!!!ñ‚ññø‚‚‚~UUUU ü0Ã`_````€ÿÿ`_`_`_````ÿÿ€`_`_`_```ÿÿ`€`_`_`_``ÿ``€`_`_ÿ`_````€ÿ30Ã`_``````` 000`à``0000`à``0000`à``0000`à``0330`à````à 00```à`0000``à`0000``à`0000``à`U €    ÿÿÿÿeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeÿÿÿÿMM2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMMUUUU003©©«©©0à «©«©000©«©000©«©000©«©000©«©©30à «©©«©©000«©©000«©©000«©©000«©©30ë©©«©« 00©©«000©©«000©©«000©©«UUUU0033?0à 0?0000?0000?0000?0003?30à 0000?0000?0000?0000?330Ã? 000?0000?0000?0000?ÿÿÿÿ0Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@0UUUU0ÿ!!!ñññø‚‚‚‚~0ÿ!!!ñññ‚‚‚ø‚~0ÿ!!!ññ‚‚ñø‚‚~UUUU0033``à```0à 0````à0000```à0000```à0000```à0003```à`30à ``````0000à```0000à```0000à```0000à```330Ãà`````` 000`à``0000`à``0000`à``0000`à``U@     eÍeeegefefefeM03©©«©033?0Ÿ@0000/0/0/0033`à```ÿpÁ °Ä€¿E Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" 5        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2%824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T40_powder T40_powder„ÂHÑÃÀ´Ä„B�âÊÃ@°ÄÈ È„Â@°DHÑÄBÀ´D�âÊÃm e  uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/0/0/0/^/0].0].0].0]¹3333¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0i»îº3ÌÌÌ.ø`@444ô S¥:S¯v3333.44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿ.444ó¥:S¥z .ÿøCCCOz:S¥:S¯ÿÿ.d444ó¥:SzßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©Ìü0ꩪ©«©©ª©ª©ª©ª©ª©ª©ª©ª©«ÿ ãä©«©©Ì 0«©©«©À©ÿÃ3ãä«©©«©©Ã «©©0?ð«ãä©«©ÌÀ0é«©©«© ©ü30ãä«©©«©© 0À«©©ÿ«ãä©«© Ì ©«©©«ßUUUTSTSTSTSTSTST7SÌü0ÃSSTSTSTSTSTSTSTSTVÿÌ9?Ìà 0?ÀVÿó309??à 0?üT7?ÌÌ0Ã? Vÿ339?? 0ÀÿT7ÌÌà ??÷ÿÿÿøà™FlÖ<±Ê£‘ "0ð ÏÿÈ|�ÕÖÕÖÕÖÕÖÕF�ÕF�ÕF�ÕF³¦]z¦±_‚#öžàÂ]ÕÅ”EŒ0Ì$"…<òl$ÕÖÕÖÕÖÕÖÕF�ÕF�ÕF�ÕF^2`"º&¡66»v½Ö^§š¬k�ÕÖÕÖÕÖÕÖÕF�ÕF�ÕF�ÕF…]ÌT æA«Y Rà^.‘çiúÕÖÕÖÕÖÕÖÕF�ÕF�ÕF�ÕF?�ÌÑ¥ÚOÏÐÇŒ^¥Ì¾¡úÕÖÕÖÕÖÕÖÕF�ÕF�ÕF�ÕF?ÕÉòV»ÂgóÈù�ÕS¡úÕÖÕÖÕÖÕÖÕF�ÕF�Õçyî¹3 :w?C7 ' 3ð 7`PePoJ6<HF 2 ,@ÿÿÀÀ8q;IE3/7ePeH26LR: .]5=?5=ð03PePoÿÿÿN88>>6&()$I-57;G3ePeV<80,2.0#$G-37ÿ;I3PePoÿÿV>80,0,.0]/79;?10ePÿÿÿþVÐÖ.r‘>[xV—óÆóðO;ÞÍÎÍÎÍÎÍ·dÎÎ~v>Îô>Îô>ÎÜ仪$¹ôôçL?PùûŒsœït@ÔHxHT¯‘ÍÎͱ²klzÎô>Îô>Îô>ÎögžeÓûë,ÝËÆ{ÃO«RŸ2S4ýŒlóôÎÍÎÍzÎô>Îô>Îô>ÎYl›¸íñtQï�Áù±�ºIZsUk®ÍÎÍHGzÎô>Îô>Îô>Î^qΣEk :]âßÛ:ÿÿÿxxxǯ,q"zÎô>Îô>Îô>Î~`_VdŒ|þ?µÕb� Qš™zÎô>Îô>Ϊªªª `6´3ñO0 ô�©©©%[*ÿŠø¯Šÿ% :<"i�PbUÈð ù©#©©úø¯Šø¯öwn ñfAB�¯šššŸ¯#Šø¯Šÿ�T†/d„ðù@!©‡‡úø¯Šø¯øBòBFf/¯xxx#¯Šø¯Šÿ„B!D"fðL÷‡‡©úø¯Š'×wÝu�a…î5Ô׬zàù¥¢·À<\wx𙚬•}‘¾Gã¤ÞîFþ’Ì?GpÊIR‘\6ðCDtí€u*/åe#åÛÂ�”´óóÀª@‘BADCÿü¨Ñìù/aûÑ0"Ö’÷S”[7DC?¡ä]Çl�â0û‚¾ZüxEƒÿú«³( ŧa³ >ý,z¦Qÿw˜À—–fŠ%"!A…§!0€2G`_u‹3@! `0bfµs&€¬C23B1„u P]"I_B 3ð\W]¤dÎÎD°>Îô>Îô>ÎÚ*CîîV<%»�te—pØõ)Îô>Îô>Îô>ÎÆÿÿÀÉ�ÀÏu:8?)Îô>Îô>Îô>Î…«ûÜBÌ<¬ðWïÿÿ)Îô>Îô>Îô>ÿßüÎ^ïd±àjð)Îô>Îô>Îô>Î^6O}ÿœ�®#ÿÿ)Îô>Îô>Πhf™*ÿŠø¯Šÿ%) i�$ºø¯Šø¯öwO€ð? Šø¯Šÿ�2†° ºø¯ŠøÿæŒ & ¯Šø¯Šÿ„B&ºø¯Š_×]’¬‘¬ø§›ûð@"ϜǿÌOí°ÞÍÎÍÎÍÎÍÀ¤Ò¬¨ñ–h3IÃS¼ðÍÎÍÿÀ kl¤Hÿÿh-û†š‹Éô—6Uñ€lïðÎÍÎͤç¢^á]Uu¢ÍÿüÎÍJI¤ÿP%­TÿïÿxxxúÜq"¤ÿÿóºt3Ij’ô ÷‡‡ÿðoš™¤Z–i¢?ðÿô’1ôbahmleÿ0ô�©©©rS8@.óh·ÿ ù©efM>ÿ@ HßË(aÿ¯ššš‘x#oSðù"Yf!©‡‡ ú!Hf/¯xxxq#óddð'P÷‡‡©'uÿÿÿ3ÌÌÌ'(W///?_ð Ïÿ?'('('('('@'@'@'@`3333`@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'QUUU@ÀÿÿÀÿÀÿ0ÿ0ÿ ÿ€ ÿ@ÿ ÿÀÿßUUU€€€€€€ÿ````€`_````Ìü0À`_````€€€€€€€€ÿÌÿ```à`Ìà 0``à```Àÿó30ÿ```à```àà ```0?üÿ```àÌÌ0Ã```à``` ÿ33ÿ```à```à 0À```ÿÿ```ÌÌà à```à``@P€H€ $„].0]¹¹¹¹»¹¹¹  0©0F�ÕFÙTx±b­óÿÿP>:862&&ôãôþhÆ�€e8üoø"D!#ÿÿm˜có6ÄÅ~"sDôãô,jæ¿ÅÌ´üoú"BA%@'@``@0000(0``öÿúÿìè„ °Ä€¿ÑÐ             "$  &("         ,                  %#%     =                        r­                                ! s¬                   r­                                ! s¬         T40_rockT40_rock�AîÐÃÀ´ÄÀA®çÏÃ@°Äl%l�A@°DîÐÃÀAÀ´D®çÏÉ%� 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ?ð?Òmn *^‡à>¨©¨©{ðÿƒ?ð?�ST�ßPžÃ&à>ª«ª« ð»Ã<3 =)*I.ÃÃ-b¯°¢1ƒBÃ<3 =)*I.ÃÃ-b¯°¢1ƒB?ð?`_ @_ @_ð? @_ @_ ð@_ÿ___ €___ €___ €___ €___ ÏÀ€___ „ UUr—G{ãzc A °Ä€¿qÐ  "( "( "( "( " T05_groomed T05_groomed(ÁHá;Â:ôAázÂà   C C (ÁCHá;´A:CázÂ.& ÿÿÿÿ¹¹¹.¹¹¹ººŒººŒ»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹º¹º¹º¹+ºŒººŒººŒººŒ»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹º¹º¹º¹+ºŒººŒººŒººŒ»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹ÿÿÿÿC..EEEEEEEEEEEEF....EEEEEEEEEEEEF....EEEEEEEEEEUUUUüà ©ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«00?ÿ©©ª©ª©ª©ªð00?©«©©ª©ªÿð00©ª©ª©«©©<ÌÌ0ª©«©©«©Ã «©©« ©©« ©©« ©©« ÌÌ©©«©©0à «©©« ©©« ©©« ©©«UUUUüà ?ÿð0S0?ÿðS00?ÿSð00?Sÿð00<ÌÌ0Sà ? ? ? ? ÌÌ?0à ? ? ? ?ý__U?üà ‹CDCDCÍCÍ$CDC�‹[¸ž¼ýùù+Ä`ù猎ç[»çç瀌Œ£è‹è°[‹0‹2è¼açåŒ=‹‹æèÖ0/CDCDCt¬múÏGg<ÌÌ0$CÍCÍAÏÃüüAC©˜ŸîJ©’)b¥Û\Zè”Zè\˜‹‹‹á\æ\ßèæ\©Ì ‹ÏóJC‹A ÌÌC©ÏACÍ0à AÏA«A ÏA«A ÏA«A ÏA«A]]UUüà R/EÿòS°±8‰ $¸°q9   <ÌÌ0RÃüü< A)< Mh'! Lb'  P ÌÌ<0à > > > >ý_?<ç/EÞÝÜÛ43ríYóÚk�°í¤à‡8ŠçøX ‰��ß‘ä;Hl9<P7`.}Ðû=ÊC8rÖ„3”¹j:²±wükÅŸù`ÒæÀBÿüiœ;žèúßÒ4«Í6Õ9:9\�d/òå Ò—Ï9:9]•%< "ÿÀf  1$ðòòÿ 3ð7ûÿ2# ,&À ¿�O`ü << óóÃpCÿÿ.²™Œ‹ŒŒ‹ÚÙ.¡t/Œç¨ù¹…ìô“%Uty'ÍfäR“•{Ò‰èç/8s; :aI­éÃp€7MßÝÀL4üYÕ°„(%£,+Œ‹Œ¯4ø{£ž8 =‹Œ.-/0.-.-/0‹Œ.-ù¨ÿ‘rÀËñ˜ÂÍzš"¤`d·Ç{Òýþ¸µ¥…‡<’{âÓ2íëï²ú#e!%kXOD­Ïüÿ!®!/0.¹Œ/0/Ï<ð0.-/0.-¨‰%ye?ù’,"N&�,"E/"/"#CeMú:xÿ; 4ÿo…lU!J¨øøðü,  L0} pý1é0!}U<–•?@Ú´# n�(ÀX³ ¦K[J¬ë‰�Ž�ã�ÒEÿp3F€EH–�x¿ÿððÏGÔ>GF`:¿ÿ10Àÿü´b6åeIlp‘ü>Péš=<<ÏÀGN]� $!ÿàf&& €¿�O¿`%&ü Y_}?Ý:X¿oxÂÏÿ92ÿð$KJ#*¾ð‚EŒËÊ®ˆ� ŠçâEÔ¨4)*å(GùÞïhUU¨�À>ÿü)21"üß¿cŽHoGœIEFšG¿Ž4°Hã¨HNJIJŸGc³q¾KcÏJIJUUe&�™€ ðððÿW6ð7óÿ6% 62À!Hƒ¼<ÿöõ�g%D#†_ÿÿÿ/?_Ð/?_`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿÿó3€ßŸÿ€ÿ `ÿ ÏÏó3`ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(�@Ÿ`@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(�@Ÿ`@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0UQUU’@1ñ‚‚ñò‚‚~Iþ$�||‚‚|~‚‚~þI$�|‚||~‚‚‚~UUUUüà ÿÿÿÿÿÿÿÿÿð0ÿÿÿÿÿÿÿÿÿ0ÿðÿÿÿÿÿÿÿÿÿ00ÿÿÿÿÿÿÿÿÿð00ÿÿÿÿÿÿÿð00ÿÿÿÿÿÿÿÿ ÌÌ0ÿÿÿÿÿÿà ÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÌÌÿÿÿÿÿÿ0à ÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿUUUU ˜Â 9™° 09™°  09™ ° 09 ™° 08ÈÈ0 ƒ         ÈÈ 0ƒ        ÿÿÿÿ¹»0¹¹»0¹¹»¹¹º¹º¹º¹+ºŒº¹‹¹¹‹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹º¹¹‹¹¹‹¹¹·¹¹‹¹¹‹¹¹‹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»0¹¹»0¹¹»0¹¹»¹¹¹‹¹¹‹¹¹‹¹¹·¹¹‹¹¹‹¹¹‹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹¹.¹¹¹.¹¹¹.¹¹¹¹¹¹»ÿÿÿÿEEF.--EEEEEEEEEEEE-----EEEEEEEEEEEE------EEEEEEEEEUUUU Ì©©«©Ì0é«©«©000©«©000©«©000©«©000©«©© 00ë©©«© ÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©À 0©«©©0à «©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©UUUU Ì?Ì0Ã0?0000?0000?0000?0003? 00à ÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?Àà 0?0à À?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?UUUU ÌÏA«AÏÌ0Ï0AÏA͌ϫ0000AÍC«0000AÍC«0000AÍC«0003AÍC«A ð0ÃÍŒÏAÏA ÀÀÀÍÏAÀÀÀÀÍÏAÀÀÀÀÍÏAÀÀÀÀÍÏAÀà 3ÍÏAÍŒ0Ã<ÀÏAόͫÀÀÀÀAÏA«ÀÀÀÀAÏA«ÀÀÀÀAÏA«UUUU Ì>Ì0Ë0>0000>0000>0000>0003> °0à ÀÀÀ>ÀÀÀÀ>ÀÀÀÀ>ÀÀÀÀ>Àà 2>0à À<ÀÀÀÀ<ÀÀÀÀ<ÀÀÀÀ<P@ÿÀFE¡èEóðEFEê£FEÏEFEêüÿºèEFE¡­¯@a „€]u@Uÿ.-/0.-/0Œµ*Ñ8Œ00‹Œ00‹Œ00‹Œ00‹Œ)aŒ6ϨŒ§‹¨ÿŒµ*?ÿÿoŒp‹)aŒ6üÿÿê8¨Œµ*Ñ"$ÀÀŒ‹ÀÀŒ‹ÀÀŒ‹@óðWXW¤KÏWXW¤ÀK@ÿÀWXL£XWXüÿL£XWXLÚÚ@d€H’ÿÿÿÿ(o0(o0(�@Ÿ`_ ?_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(//¸?_ ?_ ?_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(///¸?_ ?_ ?_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(TQUBIþñññø‚‚‚‚~ÒIÿ$ÇÇ‚‚‚Çà``‚~` ```ÒI$ÿ‚ÇÇÇà‚‚‚~``` ```UUUU ÌÿÿÿÿÿÌ0Ã0ÿÿÿÿÿÿ0000ÿÿÿÿ0000ÿÿÿÿ0000ÿÿÿÿ0003ÿÿÿÿÿ 00Ãÿÿÿÿÿ ÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀà 0ÿÿÿÿÿ0à ÀÿÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿUUUU È È0ƒ0 0 00 0 00 0 00 0 03 0  ÀÀ€ ÀÀÀ€ ÀÀÀ€ ÀÀÀ€ ÀÃ0   À À€ÀÀ À€ÀÀ À€ÀÀ 0¹¹»0¹¹»0¹¹»¹¹¹‹ÿÿ¹¹‹¹¹‹¹¹EEE-ÿÿ--ÀÀÀ©«©© 0«©ÀÀÀÃ? 0ÀÀÀÃAÏA«A 0ÏAÀÀÀÃ< 0ÀÀŒ‹ŒÿðoŒpèo0(o0(o0(/ÿÿ//ÀÀÀÃÿÿÿÿÿ 0ÿÿÀ€Àà 0$ö¯1ÿ&ÿ(ÁÀ¿H Ð        "024.,   >0JL:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<6468>@.( .068&  &(.0 =        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  !2!824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1       53"5(*$24*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$  ., 68& *( 24" -      53&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%864 >@.$ 20 :<*  ., 68& 1      53&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$ 20 :<*  ., 68&  T41_groomed T41_groomedpÁHÑÃ@¹ÄpAHÑÃÀ´Ä   @ @ pÁÀ´DHÑÃpA@¹DHÑà   ÿÿÿÿefËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeÿÿÿÿ2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMUUUU ü0骩«©©ªÿÿ©ª©ª©ª©«©©ÿÿª©ª©ª©ª©«©ÿÿ©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©ªÿ30骩«©©«©« 00©©«000©©«000©©«000©©«030©©«©©Ã 0«©©«000©©«000©©«000©©«UUUU ü0ÃSÿÿÿÿSÿÿSÿSÿSÿ30à 000?0000?0000?0000?0330?à 00?0000?0000?0000?ÿÿÿ/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßÿÿ30Ÿÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@0TUUU3‚‚ ‚‚~��€ ��€0ÿ!!!ññ‚‚ñø‚‚~0ÿ!!!ñ‚ññø‚‚‚~UUUU ü0Ã`_````€ÿÿ`_`_`_````ÿÿ€`_`_`_```ÿÿ`€`_`_`_``ÿ``€`_`_ÿ`_````€ÿ30Ã`_``````` 000`à``0000`à``0000`à``0000`à``0330`à````à 00```à`0000``à`0000``à`0000``à`UUU    ÿÿÿÿeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeÿÿÿÿMM2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMMUUUU003©©«©©0à «©«©000©«©000©«©000©«©000©«©©30à «©©«©©000«©©000«©©000«©©000«©©30ë©©«©« 00©©«000©©«000©©«000©©«UUUU0033?0à 0?0000?0000?0000?0003?30à 0000?0000?0000?0000?330Ã? 000?0000?0000?0000?ÿÿÿÿ0Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@0UUUU0ÿ!!!ñññø‚‚‚‚~0ÿ!!!ñññ‚‚‚ø‚~0ÿ!!!ññ‚‚ñø‚‚~UUUU0033``à```0à 0````à0000```à0000```à0000```à0003```à`30à ``````0000à```0000à```0000à```0000à```330Ãà`````` 000`à``0000`à``0000`à``0000`à``PUU €       eÍeeegefefefeM03©©«©033?0Ÿ@0000/0/0/0033`à``` ÿpÁ ´Ä€¿E Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" 5        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2%824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T41_powder T41_powder„ÂHÑÃ@¹Ä„BRËÃÀ´ÄÈ È„ÂÀ´DHÑÄB@¹DRËÃl d  uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/0/0/0/^/0].0].0].0]¹3333¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0i»îº3ÌÌÌ.ø`@444ô S¥:S¯v3333.44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿ.444ó¥:S¥z .ÿøCCCOz:S¥:S¯ÿÿ.d444ó¥:SzßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©Ìü0ꩪ©«©©ª©ª©ª©ª©ª©ª©ª©ª©«ÿ ãä©«©©Ì 0«©©«©À©ÿÃ3ãä«©©«©©Ã «©©0?ð«ãä©«©ÌÀ0é«©©«© ©ü30ãä«©©«©© 0À«©©ÿ«ãä©«© Ì ©«©©«ßUUUTSTSTSTSTSTST7SÌü0ÃSSTSTSTSTSTSTSTSTVÿÌ9?Ìà 0?ÀVÿó309??à 0?üT7?ÌÌ0Ã? Vÿ339?? 0ÀÿT7ÌÌà ??÷ÿÿÿ09/íá Ê’Zu-¹iÃð Ïÿ]‘ÎÝÞÝÞÝÞÝÞÝ€^Ý€^ÝÎÝx퇼AÓ,ø§~­yî5‰¦Á “ìÂdº`ûÎÝÞÝÞÝÞÝÞÝÎÝÎÝÎÝV”Ѷݾà°±›O¨£½MvÎÝÞÝÞÝÞÝÞÝÎÝÎÝÎÝF„�ÎF¤uJ[J y¨þ@º2mÃÝÞÝÞÝÞÝÞÝÎÝÎÝÎݤI¤)—7èç¡Ô J““Ð¥nÎÝÞÝÞÝÞÝÞÝÎÝÎÝÎÝê¶Ú©'àmF²<çO›HÔ� p^ÝÞÝÞÝÞÝÞÝÎÝÎÝçyî¹/:o+ - /+ 5ð /`PePoTH F F<, "!ÿÿÀÀ@}7;?93-ePeH6:BD8**)D‰7;;9/ð0)PePoÿÿÿB08>B>425J“99;5+'ePe<*6»�u«Ð1‡Mìÿÿxxx�hOªX¿hohoho#^:’|°­ÞOÐóKÕƒ¹ÒW4R”}~½¾½¾¿hohohot›¦.XŸQT‚!®Sž„¯Ø RX_ž½¾;<¿hohohoà0q§˜¥šš_<ª­o8‚�V –£ЉÎÍcd¿hoho©ªªªâ† �0òp‡‡‡#[*ÿ¨ú�ˆÿ'$</R%hð÷‡‡‡Øø�ˆø�òF`òq!6X�oxxx}�ˆø�ˆÿ#0D%RFð÷`‡‡‡Øø�ˆø�ÒS"ð9f/�xxx}�ˆø�ˆý%3/•"Fðj÷‡©ËØø�ˆ#×uÝuÈKznx%Èuiƒ§§×-À<^zyÿóÏÀ¿DC„ƒ†…ç½õÏ[*®ÒëõÎ *#Û¸ÿÿÀ‘'ã‹áÎF÷po·"ñÍ_þj0,…rQ«¤ @À𚈇ÿÿËr£Ky<µ“{2’ >i‡·@—~}ðFE`†~wòë`§ÚÚ10^WÿÏÀb&ÜX—ˆCDÿÊ:GÔ/Ì�+ÇÔmó˳P‡¥?–ôÏóCD–aEe¡AACr@�)‹‰c pMD Sab@>�÷ �ØŸ>B€ 5qN#Æð\W]¤dÎÎJª€Œôû ­“(lðÉyàf§IfŠHGöœhohoho@ÿÿÀ0Ï´¨Øˇâ?œhohoho¡ÿ'=vÒ1ð'\ÿÿœhohohoÿÿüj‡û@Nx#Sœhohoho¾'wW¬ÿä§ vÿÿœhoho h¦™*ÿ¨ú�ˆÿ'$</ ˜ø�ˆø�ô3HBð"? ˆø�ˆÿ#0D°(˜ø�ˆø�ÐSBð, �ˆø�ˆý%3 2˜ø�ˆ[—\s} f.ÚÞJò�ï`Œ“õeÿðÿp‡‡‡òø'#žÀ`¤HåiÃâÍJ�«N�PÿÀ¤ÿÿ=‡ý?ͱZÿÿxxx5OÀB¤dx~жŸñ“›˜W f€ÿü{|½¾½¾¤ÿjGnhT_:™W`¾½¾}~¤ ·KíÈ’ ‘Uû ÿÿÀ¼»ÎÍcd¤Z–h’1ô@£Z�0òp‡‡‡#@`2Hð÷‡ÿ@ýŸ4kh�oxxxq0Oð÷8_T‡‡‡ ó9n_Xóðx}èqWP=2Ï9 V]dSBO÷Þ©Ë:uÿÿÿ3ÌÌÌ'(W///?_ð Ïÿ?'('('('('@'@'@'@`3333`@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'QUUU@ÀÿÿÀÿÀÿ0ÿ0ÿ ÿ€ ÿ@ÿ ÿÀÿßUUU€€€€€€ÿ````€`_````Ìü0À`_````€€€€€€€€ÿÌÿ```à`Ìà 0``à```Àÿó30ÿ```à```àà ```0?üÿ```àÌÌ0Ã```à``` ÿ33ÿ```à```à 0À```ÿÿ```ÌÌà à```à``UDUfffB@™™™š@@ � @@].0]¹¹¹¹»¹¹¹  0©0ÎÝŠƒ·Î,1óÿÿ@.48@FNJh.•hìHÕ>ÑLTØúoöS3ÿÿ‡Ÿº9†2¤&Ö¯h.•h* ÌvkFÝYúoôQQ@'@``@0000(0` øï«üÿ¹é„ ´Ä€¿ÑÐ             "$  &("         ,                  %#%     =                        r­                                ! s¬                   r­                                ! s¬         T41_rockT41_rock�A\ïÐÃ@¹ÄÀA= ÐÃÀ´Äl%l�AÀ´D\ïÐÃÀA@¹D= Ðé%¡ 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ>3ð?ÁÝÜ`nV?`ð?�òoW©ýð->#ð?§œÁ$�ÛLð?„óp€û|ŽðãV?ÿ<37“ˆ`–'(I7Ã<3Ã8i��ß.-bC$"C$!ƒ?Ì)*=’§?ÿ<3 ?…f`B–'(I7Ã<3Ã8i��ß.-bC$"C$!ƒ?ð?`_ @_ @_ð? @_ @_ ð@_ÿ___ €___ €___ €___ €___ ÏÀ€___„  „UUrÏU±â*¦b A µÄ€¿qÐ  "( "( "( "( " T42_groomed T42_groomedpÁHÑÀ»ÄpAHÑÃ@¹Ä     pÁ@¹DHÑÃpA€»DHÑÃvn ÿÿÿÿefËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeÿÿÿÿ2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMUUUU ü0ꩪ¬ªª©ÿÿª©ª©ª©ª¬ªªÿÿ©ª©ª©ª©ª¬ªÿÿª©ª©ª©ª©ª¬ÿªª©ª©ª©ÿª©ª¬ªª©ÿ30ꩪ¬ªªª¬ª 00ª¬ª000ª¬ª000ª¬ª000ª¬ª030ª¬ªªªÃ 0¬ªª¬000ªª¬000ªª¬000ªª¬UUUU ü0Ã*)**,*©ÿÿ*)*)*)**,*ÿÿ©*)*)*)**,ÿÿ*©*)*)*)**ÿ,*©*)*)ÿ*)**,*©ÿ30Ã*)**,**,* 000*,*0000*,*0000*,*0000*,*0330*,***à 00,**,0000**,0000**,0000**,ÿÿÿ/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßÿÿ30Ÿÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@0TUUU3‚‚ ‚‚~��€ ��€0ÿ!!!ññ‚‚ñø‚‚~0ÿ!!!ñ‚ññø‚‚‚~UUUU ü0Ã`_````€ÿÿ`_`_`_````ÿÿ€`_`_`_```ÿÿ`€`_`_`_``ÿ``€`_`_ÿ`_````€ÿ30Ã`_``````` 000`à``0000`à``0000`à``0000`à``0330`à````à 00```à`0000``à`0000``à`0000``à`U €    eÍeeeÍeeegefefefÀeMMÀ003ªª¬ªª0033**,**0Ÿ@00Ÿ@0000/0/0/À00033``à```ÿpÁ ¹Ä€¿¥Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" 5        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2%824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T42_powder T42_powder„ÂHÑÀ»Ä„BHËÃ@¹Äd‘d„Â@¹DHÑÄB€»DHËÃÿ‘÷ uÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/0/0/0/^/0].0].0].0]¹3333¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹À¹i»3ÌÌÌ.ø`@444ô S¥:S¯v3333.44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿÀßUª©ª©ª©ª©ª©ª©ª:㪬ªª©ª©ª¬ªªÌü0骩ª¬ªª©ª©ª©ª©ª©ª©ª©ª©ªªÿ :9¬ªª¬Ì 0ªª¬ªªÀªÿÃ3:9¬ªª¬ªªÃ ¬ªªßUª©ª©ª©ª©ª©ª©ªq7**,*©*)**,*Ìü0é*)**,*©ª©ª©ª©ª©ª©ª©ª©ªªÿÌq ,**,Ìà 0**,**Àªÿó30o,**,**à ,**÷ÿèKy½¹½"z›K›Luð Ïÿ)OtÙÚÙÚÙÚÙÚÙàÙàÙàÙm�<‚í°Óþ"ü/ásQ–yˆ›t‡ç)O)tÙÚÙÚÙÚÙÚÙàÙàÙàÙ"6z=*áîÅ–yˆ›t‡ç)O)tÙÚÙÚÙÚÙÚÙàÙàÙàÙ"6z=*áîÀÅçyIL™9+1= Að 9@0C0O@*.08BJFaÿÿÀÀL—5%)3;7C0CD046©ª«ª«6à>©ª«ª«:ª©©«9ä©©«9äü©©«oª)+)ò8))+ò8ü))+6à>«¬­¬­6à>©ª«ª«?ð?`_ @_ @_ÿ___ €___ €ü___ UUã8VU¹å¸e A ¹Ä€¿;Ð  "( "T00_farT00_farvÃÓ¼÷@ÀÀvCV½®BðADPDvÃðÁÓ¼÷@vCÀ@V½®B,P$ õ3ÌÌÌ>=ùùùùù÷ÌóÌÌùù >=Çúúúúøúú=ùùùùù÷ùù0=Çúúúúøúú=ùùùùù÷ùù0=Çúúúúøúúõ3ÌÌÌÌóÌÌÏ ÐÇ ÐÇ _ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÕ3ÀÌÌ»¼…ÛÊ�ðÌóÌÌĘŒ9:DHìÌÌüÿÙ"x^¼…ÛÊ�ðĘR:DHìÙ"xB Žä�[&¡ÙüÔÍ“�†‡¦õ3ÌÌÌ&PN,FFÌóÌÌ:>248&PN,FF:>248 &PL.HD:<24:ÿ¿T‰äšJiS@˜ÔŒ_Ç] R\¾~Pc�¸B¬&ܪ—¨ aWÈ`³’èt˜‚úí�¸ÎÑInþ§ãIœJ5 l¸à ¯ªöð•TÀ12÷&ôò1¡s@a öÿñÅjøýXD!øúwhúEôÿVb!qÐÿÿ//˜ ªt‰³³rxøÌ£ì’´Ò)B…ò¡„Ù=l'BÜ} ¨°� ”$2 €47¤Sìç] R\¾~Pc�¸Bÿÿÿ ðVT ¬&ܪ—¨–¬:ÉøåšåÇ@– p¼”§x-9˜÷&ôò1¡)Í„ÀDöÿ6D!ð/DôÿvbA-W¿T‰äšJiS@˜üÀÔŒ_ ÿÿ %ã oæ¤üHÿ·|‡9˜ufÿüHÂôWÕÛ¬¥Vöð•TÀ1àÀGÿß&›ž |Hÿ‘J$  ÿlHGõ3ÌÌÌ/0ˆ``400ÌóÌÌ00k0/¸``40000k0ˆ``40000;/¸``40000k0ˆ``40000;/¸``40000UÀþÀ þ Àþþ þ_¯°¯°¯°¯°¯°¯°¯°¯°¯°¯°¯°¯°¯°¯ÿÿÀ°¯°¯°¯°¯àÀ?U™™™™„™™™™ÀþçclÿXÁA€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT01_farT01_far�Ã^Kп(Â�CÚ¬BÀÀDtD�ÃÀ@^Kп�C(BÚ¬BÁt¹ UU3ÌÌÌ 0000.0ÌóÌÌ00G ;///ÌÌÿ3-///` 000333<0.000k ;ÌÌÌÏ///-///x ó333 0000.0003ÌÌ̃ ;///-/Ì//UU3ÌÌÌÌóÌÌÛÌÌÿ3Ð333<ÉÌÌÌÏÄó3333ÌÌÌ¿Ìÿª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿ©ª©ªÿª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿ©ª©ªÿ’_ª^ú ¨ž’®qÐí@ób¡Û¢-„0ÔÃ’Ô=èªç]–9º€=MKB~Bô i t–š]æŽ�†(#UXw�ê+dë¿7¡.ÅÞS�üÒÕÙÆ°1R“¬b/Í¥÷Bm›—›õ\ŒÎ²’ŠøÒ¿ÿ1B±dþ¶ùýÿõõù.RT:HD>FN <@N LH D <<D@`\NXRFX^LN\XXRJL@#F`dZ^!T#T\!j RX\Z\ZÿRTÿnïD£xÕ2wWÃ1»»Gî~´vÚ�I`Îðy~ƒiÌ»Ìð`¢`)Tzëj†²ÚºxѪkía 9““œŒåÍÒ]ž8¶(d·¦†*‘°W^\ÑY>�¹/Úî¥ù�ö•a°¡’)wr]1Tÿ‚ŽLTªYø�s*!50!÷`ôò€aAAõŽf!b 5PfOA²mõÀ˜O Z®f 1"2ü a  Äÿ Žß„$_ß~§Ýü…n¥²kfÑNµ�ÌyIVǺÜ4FÛA¤ã�y,úä ¶�Qû&+hn3ØFs}Üã…¤ÎMÇ/ 3s­\Ò»}Á�å‚å߀S©.&ÐÁ˜_ o¼t²:_ñF0Œš× g§ÅÿÛ°°Îªf°&!w(F3ÅÔP…Á2”0ò#$QBBTaPc@4”0ðuªT RP 0@I}{ ìþÄÚ™ÍÉ8ÀKͤï]rpái3Ë '*0;ÿœ^q÷£x\nDÎLÖàÊt� ¿%"ÙGШÓ:¤ð +"ÊSIÿ]zâXRõ@ôô0@-Í€ÀDŸ5 Ô1`a"ðF:þ@�7 Ä×nùÆ“l´R2]Aá"OÞÿóÊØ€òãß’ÿÿæÛIU&é_ñP»~œ¨J/ÖÁµT@4€ÿÂ]VñÏîk$Ã�7Ás«|ú³â4uVUú¡UA5QnÒ@E’ÿó,™ Hü÷$“N†*Mÿ•;T‰ŠöB@™NUU3ÌÌÌ/0ˆ``400ÌóÌÌ00k0/¸``4ÌÌÿ30000 /0p`X333<00000/ ÌÌÌÏ`X00000'ó333(``L0000.3ÌÌÌ'ˆ`L000Ì0.UÀþÀþþ þ 0€þÿÀ¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À¿Ààßàßàßàßàßàßàßàßàßàßàßàßàßàßàßàßàßà�������������������������������ÿ����UffffHffff™™™˜ffff5e<<»þÌXÁ¿€¿IÐ            M          Q I         T02_farT02_far�Ã;p6ÁœÂ�C¼”›B(ÂDPD�Ã(B;p6Á�CœB¼”›BuPm õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÁ`Î�¦ã8Ým%«šv,Áø÷ˆØì®·Í™cæ…:¼D£ï¨¶°TB>Jœ¾xƒTŠD6§Ã9¦y%{�ž‰{ ÀtÂåwkfùnjæ}–h£ÿ<PZJPLJLX HPPPRLNJ2$>F<*>86D6:8:8:62:$:F:.<<:<4:::6:82ÿwQ,@*XN–¶¸YYwÕÞƒ³Ê좗g« Ü(IwDŠg¨�D®†È7Ä¢©¹Q÷dŠÉ4Û$…ªŸZ[¤?Ÿ’\5B&ÔËúóåv¿–_ò¢!QP4óìcˆ‚ÿsL ôÕ$üüoT‚ ô·!$qÿDb`»¶ÏI¡”7]ãÞí€ï."(Ø~I�±Ž{¤¿¢"ÆÌês6„´Iù.‡Y•îÄ×xkT‡õî*ä2wÀr·=·aÀ«n»+ƒDjK–!@ÃM½ÞÄ)/Õ« #ð0As¬ü”„ý7ý\B ¥¹87v¼—³oôYÐãÇ�ê8 ó°°K>³øÈ»©  „ŠÃżևTûì„/ˆÒÀDð+À7BðŸ5 Wd®$¦u°MD#î§ûÿÏÌBB,p’ <ÿÿ•ò%LÈòåAÿðBÿü–«‹çËiÿþð¦vq¸Ju� U?îÿC6 �Ї?ÂH”•”I ÿw ~`Bÿ“H þ~` •Jõ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ Àþþ€ þ_`_`_`_`_`_`_`_`_`_`_`_`_`_`ÿÿÀ_`_`_`_``À8A_oê]öv„ÁÁ€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT03_farT03_far�ÉœÁäÂ�C³ª‰BœÂDPD�ÜB‰œÁ�CäB³ª‰BbPZ õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿê7Iªš9­ýu»Ítn]V=ã0ñ^­(>²Äª<7éùüé+�ZTÊl¹BÌNïÔyÿUTñ@yã8Ÿg˦$¾.é£;êä@×:‹¤"ÿ4 H VL@ JLJ@ DLLJHLLD4.:@<24:8B2>:82<668 (<>:2:46D2@<426::ÿØçòæ§ú0Ç3¾+G]—y×P—%µ=4}Ÿ­BØ’ÀjÇJ°«”ƒ­yÜRRðlÆÉMîCεG‘¦¡çCý8‡çµNðÙ�µ2î_ Wð—"ªdÆÀpC ó&òp @iAAüè4^øõ$"úhgh$1ôûD#!cÿU´ß¤nô¸`´"-/'¯8»T èwŒšÙäî:ú'd3%/¬�¥3ŒûÇ¿úEy‘S¡&Q߈<ì¯é.ÎæGiÏqÕ$䲂Ҁ7¦p@C$'Àˆ TGP@AD0S$BSA$3¢S4FÝ!ü.)  44Í6ž»QÉ8T¸ÿÿ÷ I�ßf[É•®Fâé±ô&ůÿÿ„mîÃÓù4;1Tûüˆ3dÝÀDþZÀ3 Fþ¸/ W$Ea`Çl¼êcÛÎLÿÐüq55Þð ÿÿB '<Ý%‰Úÿñêÿ)%­áxÿÿòèÄ÷ÚföfdäÂ#paŒÐ—L!üê*>aÿG4 {þB‘ŽGõ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ Àþþ€ þ_0/0/0/0/0/0/0/0/0/0/0/0/0/0ÿÿÀ/0/0/0/00À0A_ëoLþ„Á”Á€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSU T05_powder T05_powderpÂHá;Â:Ã�B×£ÒÁÃÅÅpÂCHá;Â�B:C×£ÒÁÑÉ uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð ÿÿ{=-/0/0/0/Œ-/-.0].0].0]¹3333¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/-^/-^/-\0].-^/-^/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-Œ/-^/-^/-^/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^i»îº3ÌÌÌ.ø`CCCOp`@`S¥:S¯3333.44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿ.4iF”o:V”t .ÿÿøF”iF”oF”iF”p.ÿ€diF”ißUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©«©©ª?ü0骩ª©«©©ª©ª©ª©ª©ª©ª©ª©ª©«ÿ ãä©«©©Ì 0«©©«©À©ÿÃ3ãä«©©«©©Ã «©©0?ð«ãä©«©Ã é«©©« À©©ÿÀÃãä«©©«© <0骩«©©0«?ð0Ããä©«©©«©ßUUUTSTSTSTSTSTST7SS?ü0ÃSTSTSTSTSTSTSTSTVÿÌ9?Ìà 0?ÀVÿó309??à 0?üT7?à 0Ã? ÀVÿðÃ9? <0ÃU0T?ü0Ã7?ÿÿÿÿGujõòŒ¶ �Ê}†Ú=AÜÒíÒí¼’Ò?í=íÉÒl’$TýÉ\½¶š½xJÎ(q‚ÎyNòPÝPŸ/�;GDÉúyF©•†ÒííP?í}¯}­H¥½§}G¥?Åå.”é¿ I‡iê–°Oý{qÂííí­½o½oý/ý=ú?º?ºX?<'Õk˜¶xv!¢ tCú=ÚcíííTÂÂÂ?P„?<–ÒAÔC'Ùk~ɶöàÞŠ âî³ôíí¯Ö„PB�DŽD?ÉÒƒ„’�‚Ôƒ„ÒÃ\$ñ³öx6�X`RÑñ …sííí'ÎÐ?Îë»íº###%%# !‘——ù "& ÉéÐM±oZ'L%>%<'H'P'P)J%A"?#!+   qpðM±K4( $&$I*I!!%½yß,¿ÿ  4, $$$M.O  Qp²4. &$$M(O#ÿÿý—Ÿq!q’!p &2."&$$O"K/)ÿùyñqÿÿÿÿîTÚª;Ì Ñ¶ç„ªê«RlH`àÞgd1oÜÛ}�AVm ™Ÿf£¿B]ð *fíe">y&¡D÷ðßs+ü˜ïÙwó£Û^Î¥7ÈSÄQ×ÖÚ¯õ#¨œÓsEÓÚŽ�‘½/Øû3Sñc�¾ŠåáÀ¢¢ŠØ¬(JÂ"¬=ðXÖÁ‚ƒvè¢G&-ø°+›*¾ òg%QéVÔΞžH ˆéMHíYs� êr">D=‘ý�– 7,$¨³J6¬�¾2¢’çžÑ¡¦ çÈ�¢ÏvZÑæ� I½6Ÿ]€ˆ7yÜÇ?mäZn ”¸{!Ê©µ£¸äªªªê"@AAƒ€0*ð46V1!P²ÿ¨ø�¨ÿ)"Lk$B¢ð(õ…!eeØø�†Ø�ü£‘øñDLR/¯xXx{m!†¶k„ÿêW/+P"öð(ùX©?³û5ICÅ8?þÅqó%Zw/��Óý?Óÿ0S¥Q…ÿÊ5ZóX !ÿÿÿÿË7~ ex(èSJô v0 Åó÷7kñÇÛ¼çq.bó—ÕWɱG¯ï)äêY8e„–íÓ›8Oé96 Sü¹“QPVÊ‹uc ‘’5 ·橯5Ð,¹çIV·q dãr!ÉÕò8,Ü;N(µAèj–¡gƒŽ¼†ã%Ù_ÔWtØ\ûñµ’Vf5f…VÚÔÀ&ºímÈð(fe÷…±¶ŸÑ(ç[—FsðÁgƒËê“cD“ /ÁˆŸEÈôÓWexFO£ `UÞ¯‰Å5Õhyky-Š–²<Íg q¦µ ðD7:£­G›žÿU¦Y¦ |dä°=™˜ êI/"830a‚fdºcR  E¢15!#C !&ø‚5p@bkϘcáÀ£ €™@4®�†H31ejE³@¢%B2%õ]×–H2,!üÏ^ÆÎ—`iµ4ì?øß^Ÿ�¹6Ú23Éf•Â=‘!ÃÀ# ñ÷i]:k¶¡f5ìáÿÿÆõAýVlôæøø¿!lGî¥ËÒKŒ?’),ì3¤üÈaþ.° a†?ÿŒ?Àûüô´¡:¼qúÅ;åu.!¾�ÿ@4Ï Ïÿ_^('T+'¨ÿÿñ¶&�ílÍñJ~Ebÿð(¦`x', X¦0ôÿªü¯ªÿ+#.ºú�Šú¯ÿÒÀ  0?ˆø�¦ÿüW002keÅ:_ÿå‘ð#25¥3ƒÿô0% 2_×]×óæÓÓÒxð…Õàx‘´È@OVrŒúЃ“”:JÏöo ' Q‚+=®°7MnÜÆ—*à2ÿá†T8ÒÑ¢ý ÿóö¸ÈÅCýȼº7àýЏ&Ø¥ÿ`%$ ï¿2|N¡JUýñ¸´«ˆ!ÿÿÀܨ¨SSô’ÎTý€ÿ)( ¿Äq¹9nre£ˆ¼Õõ`KKY¦fÿðN³9îgKÿ`?ÿ)* ¥ñÈ•]*ˆK•¦Üôˆ|b1tAx5 YšeÖþÿTSVY^_ls|ÿ0,û‡hzQ{b)&d ,‹ó?¢ð ûçQf)‡©2  ÿÿ2mdMNW` ÿ ¯zšÿ•}j'B`?Êü¿6gTp% í?Õÿ0 €Ó6y¯�õÿ�#ÿàf`??5h 1D ' $uÿÿÿ3ÌÌÌ/0_//?__ð ÿÿ_?//0/0/0/ç000`3333@0000(o0_//?___?//0/0/0/·0000`@0000(o0_//?___?//0/0/0/·0000`@0000(o0_//?___?//0/?p/?p/?w0//`@0000(o0_//?___?//?p/?p/?p/?�///`@0000(o0_//?___?//?p/?p/?pEUUUÿ ÿ@Àÿ Àÿ0ÿ0ÿpý Àÿ†pý0ÿa†EUEó30ÿÿÿÿÿÿÿÿ?ü0ÀÿÿÿÿÿÿÿÿÿÌÿÿÿÿÿÿÌà 0ÿÿÿÿÿÿ?ó30ÿÿÿÿÿÿÿÿÿà ÿÿÿüÿÿÿÿÿà 0Ãÿÿÿÿÿÿ ÿ?ðÃÿÿÿÿÿÿÿ 0Ãÿÿÿÿÿü0Ãÿÿÿÿÿÿÿÿš–Y–À¼¼¼¼¼¼s$$² &l à ËËËËËËËÌ$�@ŒÃ0 À qBI   $� 0  À qBI@ 80ƒ 0 $� /-Œ/-^/-^/-^/-¹¹ÿð¹¹»¹¹¹FôiF”iFÿpÿð 0À¬«©«© 0ÀSöÒÁÂÒÁ”ƒ„ÒÁÞ¢ÿðwÈúvÅœ9Ï$  2.ÿð$$$"Ìò¤ïW¤I]¨‹ñ� ²uÿðbÖ²ªJõQ…3ø-Ý î�GÄ/œkåj¦ƒÆ«=:½ÿðÌV×;˜´À†N¼ L\éB¨ç@VZ¯1Ù$ªÿðÊèY†¤.83ƒ83ø5ý€ðhÇ Ø ð˜/?�///`@ÿð0000(ý 0Àÿÿÿÿ À ÿÿxUÿ ëpÂÀ¿ËÐ             "$         ,                  !!     A                        r­                               !  ')# 0                         $"$     #% #! +-'  ,                          (&(     #% #! +-'  0                T04_farT04_far�ÃçâÁÄCø‚kBäÂDYD�ÃäBçâÁ„CCø‚kB$Y U3ÌÌÌvvvtvvÌóÌÌvv5“uusÌÌÏ3uuuuvvv333ÿvvtvv5“uusuuuuvvvvvtvv5ÿÿÀ“uusuuuuU3ÌÌÌÌóÌÌÃÌÌÏ3Ê333ÿÁÊÁÿÿÀª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª0ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª0ªÿ�àL=ùŠ�gsv�õÐUxÃLÅ*~îë{vH Ëu wêèæKÆ‘äCråIyÖ–ÚQÕŠI©¼Pf ·êÊ`o¶ÝË(LaÉÏÿÀÎí¿wÁ@âÿ  :L N JB JFFNHTPDFJLL. :TN DH JH BH,>H284::(&F@4<64:@ÿÿÀ4:J48466ÿÌÛkHÒ]óË«%‹‹¢4]`M6Æ}ëË•âŠpl@¬ŠÝ =ˆÿQSîêPÆ÷\¶³ôsx TÀͦŸˆv’†ÄŠô“©%ã}¿6ìj(oÿÿÀ÷6ß(§,i ª0Fb1"!÷Dôq` cý JCxS!OÔc@�‰@1obiýØ ÿ¸2”)9í#füô.�wÚÕÓr]f„çžÅ‰Õòg*Ý»«ÉçOüãùÃÀóßH±Î$ËÏÑ2ó„5¨~„¾²fpým¼à«ÈîÑ9 _n:ôÿÿÀ_°ó„UCÊK¥*V À/àA úBdV2!(E$!4s„ŸµCÀ }ÌH çD†£4'ÿ#<ù¤êš(¡`¢ ðÿƒ{$i‘%äÏûÈ éïýÀ‘pŽð’&X÷Fôq¡@/N@ÀJÿ1ÑpJ1üý@ Ûè%¼Â²PIäcq5ßÑ’ÿÿõ¹ð`ƒÂt3™ÿÿÁ¶„Å—SÏj¼Bo{Ú›z¢sxâKts˜&b¿ë)ûÀ VPfÿ1"!•žðÒ@�ŽEû»?p ÿÑ[�Š�”E&?øï)\ �ŽI�€U3ÌÌÌ'(``L000ÌóÌÌ0.x`@0ÌÌÏ3000(W0p`X333ÿ00000(x`@0000(W0p`X00000(ÿÿÀx`@0000(U€À€þÀþþ0 þþ0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0$#$#$#ÿÿü$#$#$#$#$#$0P!™™™˜)^Ú!ˆ;ÿ9„ÁÜÁ€¿IÐ           U        rt bpjlfpfhblbd^h^`ZdZ\V`VXR\RTNXNPJTJLFPJLRPVXFPRTJPRTJPRTJPRTJPRTJPRTJPRTT05_farT05_far|ÃarÂ:ÄC}EBÃDPD|ÃCar„C:C}EBgP_ õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ½œ~ô´Ô?˜/Ô?(/ö„,u»k©Q—d÷„øÐüÍL�áÉ)ìÞ:÷¨[GÊ/@Ç¿óâQú›:£(/ší’9gö�-¿ðÿ8VP BNHDHFFN\FHHFH$ ,DB28884@ 4B@:64<4&,BF6226>@2>>:>.<:ÿqæÖÃ^Ò¸rRv°d¸W{ëðª±@È£�ŒÏ³Á  Õj}>�¹*Ä~ q éÚ3ŠN¡"&ôדÑkWnª‹uMΞ¿&þðZfÆ¡10 #÷$ò²A€a�ïñloû–ïijqHôùBRoÿeÞJ 0†6†Ž9kË}7'¸ïE¡ì*´*:l(é._Ò…¼—Ž1Ü\O£ ¯}ZjÉEK ᪬yA/ø©$iOdbÞŽÆžùJ*>ÔýЩ#Ôˆ†2A00`!0!a0D!0@4S‚11È[@br%ý$ü}ÁU['ã8£¬ârÂð‘n.Æ© ¯f øÄŽ}÷œ•ø   æ©Çå`0]Mâ˜÷&ð²A€/ÀFô÷Cð5Dúî3 [æ9—?F¡¶8ŒxúÞ·tÿÿósDøàxB6dÿÿ´è§Û°Ÿzþþÿù@êøÔÿaÿòšr�’z?B.Vh¨ Q0AÒ@�HÏû8 �>dïŽG6ðþd �–Mõ3ÌÌÌ/0p`X000ÌóÌÌ00x`@0000(W0p`X00000(x`@0000(W0p`X00000(x`@0000(U€À€þÀ€þ Àþþ€ þ_ÿÿÀÀA_cà!þpÁ€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT06_farT06_far|ÃK™8Â^ÄCæ?#B:ÃDPD|Ã:CK™8„C^Cæ?#BqPi õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÈ9ÂþüfÃ'žû­ß 5ÏŸb)Iæ]M¥P’„öä#$“dYÝ/ì˜(‡†pÉÿ‚ ´ ?«ÿÔÎà·þ%§Ü•˜}È…?=þƒ»³²ÿ < PZJFFHRLFPNLPB JN&,6B8844@>6@88::6@" ,0D8:4::B2>>42@<>ÿ÷×êð”®‹Í‘u½@Ìâç2ºCÃáü¯oL*TÌËW»Yc6U ©è¸_T¤1� …d _rÂ894Д¨‘ˆ@” 5;»éþÄæªƒP@B÷&òP i! Pú„#jdøõB3ö*or`ø÷DiÿHʨãʼn´©<ÙîäóTg¥ÙA�Ç ¢eáw&)ÀR,h�²|pžÁÃ7½Zž?ŒaÊÊ6æ´~pÊí ²yƒIz^2ŸšÆVxÛ©!k¯ä!a"’0@4r!4A&11aGRƒbT�‘þP¡0� áZ÷É‘^­Zœ·ñ3 �7²ØuSÑS7@²¶—©ç  À¡ƒuëå ßTûì†/þÉÀLügÀ5 Núûd3#/—<ö•@=n_/å~z vó×Üa«Ñ�î ÷ÿýí06FTLRHJRXDN JF B JPPN:NRJPFFPL.@<:80:>(&>@2F,44V >RR @ H >> ðN ÿxÒìf1ÄÁF(òýÙTyxç¹ç�®.¹ëùQô_­oÝ$U°!ç+¢ü!Éé«�j>eõ*FÀL- 30L-úð¥B`–Ð×@ºUCWò(ô4POZŽÿóý)÷})ß_ õÀÿÿɧyWü“°ÂI»[;V�Ãþ ’?ÿÿ�„E—äÀhÁ‡ ãÀ ÀV1d†!�ìÒ@ Ž•N$€Ûù0  Z7§ I!ÿ¥e_+\‰H€U3ÌÌÌ/0p`X000ÌóÌÌ00x`@0ÌÌ?3000('(``L333ÿ0000.x`@0000('(``L0000.!üÌÌÌ('ˆ`L0000À.U€À€þÀþþ0 þþÿÿü0ðaS"ÌdþÙpÁZ€¿IÐ            Q        rt bpjlfpfhblbd^h^`ZdZ\V`VXR\RTNXNPJTJLJPRXZ\        T08_farT08_far„Ã÷Ղ“Ã�CÁ¹¸A�ÃDYD„Ã�C÷Õ‚Â�C“CÁ¹¸AYû õ3ÌÌÌvvvvvtÌóÌÌvv“uusuuuuvvvvvtvv5“uusuuuuTv3333vvtvvvvSÿÿÀ“uusuuuuõ3ÌÌÌÌóÌÌÇÊÁ¾3333½ÿÿÀ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªª3ª©ª©ª©ª©ª©ª©ª©ª©ª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªª3ª©ª©ª©ª©ª©ª©ª©ª©ªÿ‡¬_Uõ¾zð~)Øö…vÉ” iäÜ+ÌîœUÄ_mzgÓW4š­°-bƒ­6/B€ktê~¿g¡f}%x÷j=)h¾ºõJþ½›tÿÿÀ:f`Ò¦´yÿ4 LVDXDDJT : JZH F BDR "(:B2B626N.AÀ…ñ¸Lï…G›îM+î–ÞÞd—Û JîÎð"…Ć{üLù5]²Ï³ÄÿÿÀ²b|îl¹*kêª Bº2AeG#`tE@º…ðµAB5%8ð5s 11"HufY€þôÁp4VÀXꞺ_<I®.l»rb‘½…æ<+bÜã(êåMY00¡ÿÿÀ9ÛHŽ‘+2tTûþ�+ÈìÀRû£À/ L/¼Â€WPÒt?l–âÇ LáÃ’[ÿ×üù2ç+H  Ìÿÿ Ai«ÄP ,þóDÿüˆí)8 A?%Ø…wN’yÜD9j¿çÀe?îVŸWV]p �ˆÒ@�’G öüt*ŽB@ÿG2 òÉpË—š�D�$õ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.`3330`@0000(ÿÿÀ'ˆ`L0000.U€À€þÀ€þ ÀþþþjàÞÞÞÞÞÞÞÞÐàÞÞÞÞÞÞÞÞÀ3 ËËËËËËËÀaÖ ¿þ‘„Á~€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWY KQ         kuoqptwjt ntntntntntntT09_farT09_far„ÃcΔ¥Ã�C¶„[A“ÃDYD„ÓCcΔÂ�C¥C¶„[A%Y õ3ÌÌÌvvvtvvÌóÌÌvv“uuuusuuvvvtvvvv5“uuuusuuvvvtvvvvS“uus33uuuuõ3ÌÌÌÌóÌÌÉÈÃȽ33_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª?ÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©ª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª?ÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©ªÿvÃÂÏÓY‹f]3çìY#�ƒ§o1±}3 �¡ó¿ˆK´Õ¨�"í8zS‘DÛYRç.f˜ÎD §I©_+—hÁ…�FæýþHV  hÉ<ÿÿÀ™o}©óªÈæÿDT JPRLLB B<PVH @JP>,,D88>6::80:F<08>4(,B:2:88@TBLbPÿÿÀJPXNÿt®†Ž$Žƒ ¾o ¸97‚´åkL,›®WÏ‘…�jtØ2²€z³WÔ¸È}5›ýd–='BÅD ~ó;ºŠaV;ISjG­=�5ËÝËAÑ'ÿÿÀäðàXÇ“Ê=4ªH¦`1 2ûNôò €[#Ra€öô1^ôýEøñ_^0FöoO`\ma@ÿâý<¼¨r…ku9nóìr~2)Ísuj´ÝcKL'(_éM/Éi‰ rØU/ª¸€1ƘŸi=YÀío€IdF®µºŠ´€§uÿÿÀ'%]²€<©/ô¢©0VAP4V 4e$B’DC&@5 6'_Àþ á@ K{AƒD½Ã³·V’„ØìÌ›¼ ¢ùœq¡jD®wüð 5i¦>ÖDäÃFÿÿÀ¨pA©TÊå˜ ýoôðCá%'lþÀ>ôÿe ð%@ø�O�^3'@:0{fD•sšvœ$qìë,ÚÛÿÿöœòðV²Âª¨ ϲ’OÔ3 ÿñÅÿ•åÜ‚N©�—*¤ˆ+½�  üÀ U7ýÈah oÂ@I� ÿÃ-f“î@ü”M+fäü�•žQH@õ3ÌÌÌ``@000ÌóÌÌ0(W0/ `X00000``@0000('/ `X00000``ÿðó3@0000('ˆ`L033000.U€À€þÀ€þ Àþþ€ þj À¼¼¼¼¼¼¼¼°À¼¼¼¼¼¼¼¼ÀÀ ¼ ËËËËËËËÀ)^߸ü �Á‘€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQSU               T10_farT10_far„ÃÜHªÂ·Ã�CVŸŸ@¥ÃDPD„Ã¥CÜHªÂ�C·CVŸŸ@_PW õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvvS“uusuuuuõ3ÌÌÌÌóÌÌÃĽĽ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÄ/í9&[ÓùD)Øà2]燲±ÌH†c'ÌÙ[ÀÌ[èÄ›ü]ºqaoмI[Ú]÷Î~Œª)”¸B\™lw³_!òˆ:á†Lôœ^òÿ@RPFLNPTZBD`NFLRR*,<:628::R 02J6264<.*:<62>64P.8H66664ÿ«¥Ö?OÝ6+šPpKöþÒÃÍ—0Ù‚¨ÆñeTªëƒ<-޹”ë_4±rìÃÂÈËÈð¡,c _u­€P?K«\lO„É$ÎãÍËÆ@N1Ò³²ªÀ` ûDòòáa!0øÈ1dð�#øÄefD3ô½ZaÿØ÷¹ŒÂùK37OGu—A»º?»¾u9¯‡*ìûöä‹Åõçº77�K©@ÙôêÃÖéšxÐ<™a¢º$‡ŽéæiË.b“¬]_¿XGâ«£òªT@E%AA"TA gc #!&„W1F3j�Qþ 4‚0@ ¢Ömnè«b›Sª¥“aí¢!{dÚÎÍÌ¢ fÿÿºFœš]¹{ƒ ¼˜ÿFòö1á#.ÁÀNð½A3ð3NôÝ| 3Û¨á\þái Í£¿6ÐâÿÿùT óƇ¶IF+™ùÀÿÿ ,�hªS°r¯®V  Á†$iÿþÃcÇÓ&%ßèU?ìÌÿ_Z “˜�Ž�”¯ÐŸ¢O�€ÿó-d‘˜œ&ÿK1j|þBa•Fõ3ÌÌÌ``@000ÌóÌÌ0('('ˆ`L0000.``@0000('ˆ`L0000.``@0000('ˆ`L0000.U€À€þÀ€þ Àþþ€ þjÀ¼¼¼¼¼¼¼¼°À¼¼¼¼¼¼¼¼ÀÀ )^"\³û?�Á£Â€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT11_farT11_far„ÃÅ�ÂÂÉÃ�CÇàÀ·ÃDYD„÷CÅ�ÂÂ�CÉCÇàÀûYó õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuuv3333vvvvtvv5ÿÿÀ“uusuuuuõ3ÌÌÌÌóÌÌÃĽÊ3333ÁÿÿÀ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªª3ª©ª©ª©ª©ª©ª©ª©ª©ª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªª3ª©ª©ª©ª©ª©ª©ª©ª©ªÿikãQþxaiUÖö•�iàV/k¬B…NÑÊBW•‡[æh'÷ßm¨“]ºLÏïãÑ�9ÌÜX—¨ZùUýS¦ØöE1ÜÿÿÀ[×ýÉÚszABÿ :JTHFRFH`HP\PNJLD4.8>64<44D.@D84:40DDRNLHHHB HÿÿÀ*@@<6802ÿ ƒ¡ü®�J ôxÙ%HÿyœŽõJ�ÙsêS€Ý#!%ÄP“cPhÜ�ÌÚìv_©|�%c¬åó ï4IvU¾-˜à,[Zb3ÆeÅ׺{%ÿÿÀ\ó¿Ké»*(ª$€€R!QùJò°C`Y "öÈ1e`òù&DñÊaVù2�[c~Ë€ ÿA]Büª7%x`Ö'[±C툸¾�jQî$ìO^•ºÕ/3³¢õ’ù t�îœÇƒ›7ÔÚe:°µÿ©›ð7hêE¯öF¨Ö€öiGqÿÿÀ ˆ²`�#gJj T#cI BEóRS…"V!@u#üTŒÀ11$0 ›{€Ý!í ØâæTjè)7¨|©ÿÿð.Ù<ðé¡–]‚ï ^¡KQôb‰�68<>0:B><,820*@<6@686D.8D:>.8:ÿZ®~“È^†×ïGÁÖ&Lˆ~Ø&›~�f<(áBXË—ï�o·v�kh5ª%9Ú§è¤ @kÄ«L�œL¥¾[˜cÇ/ìÈoˆ&�¿dô0Žfò¢12@’úý�_ `!CAþöRN�òÄþe TTôû4Fp_ÿªSè3ŠŽ½¾D”ÛÊá4TÄMtDmÜÕ’h0Ò âpnž¹nb?¥&GBKATï¾´ë¦ïaý|«¥4åÚÕŠyËû%§–Jˆ�™™™Ôã©]yS4T‚CC!#ƒgƒPAa1 3ÅHp!UþEñCA â»þé ,ˇ�)\µ´ì…-%± êNëç C�šéߪ ÀJÊÜ÷ìž²Tûü )ÆÀBòÆÀ1 Döþ/×v Ø({©yceÃgÚ�]Îÿÿü@£x€ *=€ÿÿa�“µ¸ýþ„P¯• 4̪9J1U,r%T  Vô 1 ð—ÇÒH@”I €ÿËÌBÿ“Jõþ@ “’Gõ3ÌÌÌ'(``L000ÌóÌÌ0.x`@0000('(``L0000.x`@0000('(``L0000.x`@0000(U€À€þÀ€þ Àþþ€ þjÀ¼¼¼¼¼¼¼¼°À¼¼¼¼¼¼¼¼ÀÀ )^r Œ÷„ÁÇ€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT13_farT13_far�ÃÿaëÂíÄC*)ãÁÛÃDPD�ÃÛCÿaë„CíC*)ãÁcP[ õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvvS“uusuuuuõ3ÌÌÌÌóÌÌÃĽĽ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÆKŽ(InÂ"üÑõþƒíf]5ýßwóÙEå^ʦ†Š|ÖÒêŒ_CpüIÃ;é…ï�Êœ„¿êxÆÝGH| ¥�xÏÑîê÷ÿ:TVNXNLHXBNZPTDNN*:@8<<:.H,8F8<26@((4D6<:42L,©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ´z¦wî¦ [˜©¨Xò§ ,ÿ†gÿÀïMgikO.mO0oM0oM.kMÿÀ,gÃ?ó=>Y¬7gO>7e0‚�ç~qOi?ÀD7kBÃ?û'(s$wX(wVa ([h?ÀD3yZÀó=›„$ ?ð?`_ @_ @_ð? @_ @_ ð@_ÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÀ1?@1?@1?@1?@1?ÍÀUUrhé˜äÂI_ÐAÀ¿qÐ  "( "( "( "( "T14_farT14_far�Ã&³ÃÿÄCår!ÂíÃDPD�ÃíC&³Ã„CÿCår!ÂVPN õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvvS“uusuuuuõ3ÌÌÌÌóÌÌÃĽĽ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÊŒ¿C0Âs­¨(ø-Ÿ“v°uc×[»—l2„  1K{ºâÍ�â,m‘bÐÌ6qÓeÌ5ýW¶»�=á;Î Áu�â&×.›ºaÿ >JXLPRJHPBNTJLNJL. $:B:8:88@2B>288644&2F6>68:B0B@08846ÿô3 _Á©®5Þ(£”ìè¶]ÒοdqÃïOu2TÍ)Ô"Ût$³�žü3P&Ý4q¤+ܬVRß)ïÁLj¤ó¢!”ì.[»ÏÙšf"Â!0!óò²@ac†ÿ9l òùd0"óÈgj# ð½f0"gÿ(ø‚aÚ†"@‹¥ÉB÷¦æ~'ôØ£ˆ÷éÅÜÚ¶û:ª=Y;h�ÞÆ,�¿ô¬CÜ©¿åGÏjÀ’1wîÞ¥šRZnðùß êÒV™7 f"£BÖ”"a–¿Á¦ `RÚRMõ úN€ÿßÿ2àapŽ X t'Òt˜<¯K @'ÓçÀ8›R²0 qŒ™ì%Â�Ëz Xõò²@@-I¯ÀFþJÀ3 DÿÊ3 W˜¢f/¹CžCø¶ùÿ×þÍ*·òøÏ #ÿÿ¥7ìtvÁ)•þÿ†ÿA± ¨-À7jâ†Ó:M VöBÄ!0!]^óÒBI‹�G !ÿ7;v—”>d†ÿ‘H:ox sŽd€—”Kõ3ÌÌÌ'(``L000ÌóÌÌ0.x`@0000('(``L0000.x`@0000('(``L0000.x`@0000(U€À€þÀ€þ Àþþ€ þjÀ¼¼¼¼¼¼¼¼°À¼¼¼¼¼¼¼¼ÀÀ )^C$µßþõ„Á뀿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT15_farT15_far�Ã- ÀÄ„CôýHÂÿÃDPD�ÃÿC- ÄC€DôýHŠP‚ õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvvS“uusuuuuõ3ÌÌÌÌóÌÌÃĽĽ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿòéc¶=•R�±(ZØÆH­ÏãÇÈ´|ú²ÊÚ{ÿä…vÌì¦w_0€¾4ûÁ’‰±„í¦a­^"§½ú‡¹K�øªÓÖkŠT©2RÆ ÿ<H\HNLPLP DRVFNJLL .&2H<44<§—C¾¿Ó'Ï^Oó¦åq®ú7§t°ÅfUûeÜ “. å �ˆdí߆³@eÀÅŠGÛÁ®¬¯© E]#+÷£Zó Ž®ÿ¸ 1¦R Â@0 òüØi  1ø¯'4`!ò›"3öïidWò™V1cÿükéÀlÚüÃyäV!MM�Aïö‚\‹£zÏ5�øÛ‚ý ™`^·Æb\l�MuwUê¢ïŠ÷Æq jÃÃGkŒ�1hþ›p05Âu½}¥ÅN¸VMŽc4ØáA$0Á;H„�!31ý%MÜ èA�·0OÏŬŽû¨OFKá‚€²Ô©ÙCé HÏmr¹0ÿÿÕT‚×PÖ”Ðüú3 ßÀLô½$"Uð7Pô½855—”GäF@eSÔ& Sà4åÿÀýìrþr�M  ‰Oÿÿ„?“N"rÿð”TÿŸ› Tþ�áÿüã æ¸ºžT<ì fR¤Â@P¯ÀI—˜K!!øÏ'6*Ì@$ÿ—N* ó<@ •’•Lõ3ÌÌÌ'(``L000ÌóÌÌ0.x`@0000('(``L0000.x`@0000('(``L0000.x`@0000(U€À€þÀ€þ Àþþ€ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿj€xxxxxxxxp€xxxxxxxx`ÀffffHffff)^µ$>„þJ„Áý€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT16_farT16_far�Ã�ÀÄ„ClÉu€ÄDYD�ÀD�ÄC€DlÉuÂY õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvv“uuu33usuuõ3ÌÌÌÌóÌÌÃĽÄÉ33_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª?ÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©ª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª?ÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©ªÿÙ®Žh Ðmû¡ݱ šù(p\Dg€žÕX§O2Ù �΋HÎÍž¼ >jÉk¤jÚ<H‹vÉ›SóUy•#¸äû÷ÞØEþK–{`#ÿÿÀœ›nf­£ì…8ÿ <PZLHHHLbHNXJNHFL0*<@88646P.:F6682.2*>>86486ZDL\LÿÿÀJJJ@ÿÜíL ô±Ë·‡$½býU0»øçuǶ3ïˆùD\zôW䡊‹ëhÉÄ’»®#ÎÝ�_UŽ¢ËÇ#øm†1)ÑP;rÑq÷ÎIì¢RR‰ÿÿÀSë…é½8[¹šD†¢P !õ&òÐA@a˜€ïÕb  ð½`öèa^10!÷¯O@6Q"w@ÿ£zC™EGKx‘öž¸8«[ߣ.aìàíÒÕª1£ƒac�»ù³ FÊn÷bÁÞ“§ÞU¶4eï:ýÏäâ×ûql´&`HÉ›róP6wÿÿÀÛR»µAçG~ÿª 330 !R4ÀR”A Rc£A3 aa1@Aa)%#E Ýìî I9B|æ D ´Ëÿÿß`%LáÓ¶½ÆË”vá u^Ábé0>À `ÿÿ� br*´<�lÿÿÀË�P¹S±¨°BXõ(òÐAB/.ÀF ólÀ/ Bùïo@8' 7@—<©£X¥3a÷á…®DÿÒüü(Vg£  õ‰ÿÿ80ú1ú¦‚ÿõZ\!úÿWûkK[œ@,øß   �"@VSôàrÿÿ[t��‘�ˆÒ@Id ÿu1j ¼ÿ‘H2™ø<�ž—�G@õ3ÌÌÌ'(``L000ÌóÌÌ0.x`@0000('(``L0000.x`@0000('(``L0000.!('ˆ`L033000.U€À€þÀ€þ Àþþ€ þj `VVVVVVVVP`VVVVVVVV`ÀVeeeeeee`)^é'¯wÿ…„Á€À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQSY[]              T17_farT17_far„ÃYG!ÀÄ„C õ’€ÄDbD„ÀDYG!ÄC€D õ’„b| õ3ÌÌÌ/0ººººººÌóÌ̼º\/0é¹¹¹¹¹»¹[0ºººººº¼º,0é¹¹¹¹¹»¹-.º3333ººº¼ººº/<ÌÌÌ.ç¹¹¹»¹¹À¹õ3ÌÌÌÌóÌÌÉÊÅÀ3333»<ÌÌÌÀ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªª3ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªð©ª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªª3ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªð©ªÿèõؘΔµ�iÑ‘èYåä0l�¼WT8 Fl·júñü™'Ùæ£a ·Sþt›ÿÎ~ Ÿ½Kpì"¡½o³Çáfò ¢á�w÷€ÿo§]1ËŽ 2"½Ã€Þ)f%wðVwÿ :RVPJHPPJ @H^PNNNL( &8F>8.4BB04F>4468R!@N^PLBPTXBL^PLFTðLÿïNÝ oÒ+PÕS °Q|(Wß^×8ÄC« U@#k6ß¶íIw‘�Ü[¨HñÍ,ØD‹CÚh>»PFv\ðÊíFo;AâÏT¾üò¡j7Õ]–`ÕœQ^É„ð@Tª ‚` 2"&ûBôô€a !AóÊ%ph†ð»X@ð&kdj@Fgöò��4P€ÿ)¾9±ÂÆ+œ�SülÿÁ(b¡tÝŽŒÕf¤q �r>Ó¹R|³zÉi—¬†YÍIñŠŸ?$ø—º·€(wݾZ‰(f„×Z£åmK@Ï‚³¬ô–²¬òO),Ên¿È¦§·ðép©6rU>CPD0AAa !4PRbÁ1  Ô"+Ž!ÎÝ/Ý ‡‘�]`â-¥7­Q¦¾ÿÿÏ�—Åï ôì¾ío ýG²„ Ú|ÕÙJ3#€‚mÑŒççfJ$†1œ€0EðbòXû"ôô # ÀDÿÁÀ/ H1øö¡�41€[j +fw0yðî��æ‰A&ÿÿý¨5t€ïx¾ÁqÿÿæÄÝ­Ž‚a]þþ™ÿÌ\j*Kïç¬AÀÌ>zFëÛgûKÞÙ %ø!` õÀU>ì.Ñgh ÿÂ@�’“šO!ÿ>;~ þ@™ÓŸR3vj@2F O$„ €õ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.`3333`@0000(<ÌÌÌx`@0000À(U€À€þÀ€þ Àþþþj`VVVVVVVVP`VVVVVVVV`3eeeeeeee`VVVVVVVð`»&Yþ1„Á€À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWY KQ         oup               T18_farT18_far„ê¢(À#Ä„Cå¤Â€ÄDPD„ÀDª¢(ÄC€#Då¤ÂQPI Õ3ÌÌÌ-.ºººº¼ºÌsÌ̺º-.ç¹¹¹ÌÌ¿ÿ»¹¹¹.ºººº¼ººº/.ç¹¹¹»¹¹¹.ºººº¼ººº/.ç¹¹¹»¹¹¹õ3ÌÌÌÌóÌÌÁ»»_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿt«O}@¤�¤pR]«&F`<5†ÓWˆðšizåxõ€›ƒ—ˆ£‡œ|7_™ÁhmØ6×\hÃY”‘™QºdªwZ0_¤¦“ÈjS_ÿ 8NZTPD J LB : DNLLB LF &:B>>6<4D2<<8868D(8D>>6:6D2:>:668DÿÁ�Ñô+I-‡WÈš.v†~áôwd3åñÿÎ÷¶Þ`Ó>÷¨í¶ ŒÆõYê±F®LSÈ#[´-^•èä‹~þ¾~è.uô˜¡ûLØ5m$R¦0„à2Tƒúî�i cQAòú!jôùQöúgl!RôÛ 5gÿ1EBt€F´j[O–@Q`AÀ¨Ó<Ç‹€²É@‘w«Q<‘ñ±œh+a$ýæ‹B?9ê�ÇÿÏ­÷±Þµ¼…vÅ@ïù¶mñv·è³‘W&�jD!`gI' B’rTÇçAR¶À0¶Ù‰ÜB*Åí!þ¦à ÿjëв�ÐÁåïÿÿüÿQÜ@tÊ’k~¿Ñê4ç§¿wº£¹»õ¤/óÿ'�¿oá8‡Óqdúþ / cQƒðJû À3 PôÛ 73{º3­s� ;õIˆnf×ÿÿðw¤2A*¤7«ñ óËÔVx¿žêþðÿ¬¥¯ õPaÿ¾ðÄ¢ÿ‰ÁVðÄð0RkhÿÀ@ •˜—–G$ ÿœ. >`ÿ�D)^ ^`EÕ3ÌÌÌ``@000Ì3ÌÌ0(x`@0ÌÌ?ÿ000(``@0000(x`@0000(``@0000(x`@0000(U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`À] Öþ˜�Á€À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT19_farT19_far„ç 1À,Ä„C•E³Â€#ÄDPD„À#D§ 1ÄC€,D•E³ÂOPG Õ3ÌÌÌ-.ºººº¼ºÌsÌ̺º-.ç¹¹¹ÌÌ¿ÿ»¹¹¹.ºººº¼ººº/.ç¹¹¹»¹¹¹.ºººº¼ººº/.ç¹¹¹»¹¹¹õ3ÌÌÌÌóÌÌÁ»»_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ¬‰ºÂ$v­ÿ†¿ o\Hn]ýëD«,.JuÝ�r{½«Tô Ì¢Ô)ñ){ =.e²ºÆª~ærMEñ:eâ#zúîEÈ& « )ÿ8H NLNHJ @JBJ F HF B BH (4D0<>88>66"(:D:8><4F0<>:6@64ÿaBc�(su{Hf²jQÆüñ¶ˆì!•£ãä¹:-)8ÔAî6�¬UR;‰ UÔ:_òU(>på™>Ý@°�’Ûv"+6‘ êµpžY}‰5º�•Õ¦&fÀ!2lûìˆg24ôª#n3ô÷"0Bòêij1òÛbgÿ9‰å<Ö G R–qJ{¥¹¦rú™ ›ÉìfÜp"šÞí‰ÃÍs\Jއà­}„>o6zR $ÝȧŸöP—ÚœFƒÈ«Àd^“ãsB‹@`jt aÁ4– 2tV…¡2 ;”`¬³õ!þ Hÿÿ¿Rt‚9,¥ª¤µ;?V=»0‹?œûck2ɰ"E 0oÿó$Opz’Tûíˆ-�ÿÀ LúhÀ1 Fó^/ Wñy¶þ�³êò– ?±Ë\Äÿ×ý†H^�ã° óÿÿ0ú�΄vÃþöHÿ÷òp ½ •ÿüöHãˆñôhÅ U?üó[d ›”‘–LÒI†Eaÿ>1j ™–~fHÿ‘F3j ÿüfH•”—–�HÕ3ÌÌÌ``@000Ì3ÌÌ0(x`@0ÌÌ?ÿ000(``@0000(x`@0000(``@0000(x`@0000(U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`À]FO þ‹�Á€"À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT20_farT20_far„Ã×7À5Ä�Cà­Ã€,ÄDPD„À,D×7Ã�C€5Dà­ÃÂNPF õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvvS“uusuuuuõ3ÌÌÌÌóÌÌÃĽĽ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ´Á§»'´%eÞrʹt íÁE‹ÞgJ×­ôð[‰l@Í÷MãÏðXÊïçýŸô2<õiy èñ£ëfÜàX„çÆ¹zWèÓ€Km�뽿1« Œþ ºýûýùýÿ6HTHDLNH< < N NF D J D> (6L<@286:2@08682ÿ޼ º¾„z"ûˆ~0ËT9*Æý´^ý”r¨À¯vB¶ñà…ê-gEÜØX¢PlTœê(2sÂ�—Þ  zGÄ š¹×Q&¹Fðc�U&Mùiü¬a 2òô°AAm "ðŽelú ïi n Qüù4aÿFþr¾<�ä/ÛÂÉavøÛâ==Ï?–-;'¶8ÕNÏ/Ã’;J×ýÎWÿúv÷�Úš}Éÿÿâ%œ–*ZÕ‚U3îŒkkl ´Ä`C˜ï÷2 žBïE4 |žBEõ3ÌÌÌ``@000ÌóÌÌ0('('ˆ`L0000.``@0000('ˆ`L0000.``@0000('ˆ`L0000.U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`À)^š¸¤ÿ�Á€+À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT21_farT21_far„Ã8¨?À>Ä�CTcЀ5ÄDPD„À5D8¨?Ã�C€>DTcÐÂ]PU õ3ÌÌÌvvvtvvÌóÌÌvv5“uusuuuu6vvvtvvvvS“uusuuuu6vvvtvvvvS“uusuuuuõ3ÌÌÌÌóÌÌÃĽĽ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÛé*¡Þö*N¬ŸêVXuã‰ÖX¾pNä¶üÓïå˜F–µL@ÔIéä'qaFhw<†Ü��S �—/š1Uóovò÷õRBDä%ðæ¬fâXÙ�ÿ:F XL L > D B HDL PJLHHL$*>>@@04<<.B@:468:(,@@>B02>60DB42:86ÿVÖ C?¹ˆ{ù¡Hà'ÔÂß§‘Т@fø5z¥a}L$ó’ùP•“žÑÔµ@½-ÔSàìÒlK]<½ËÕràž8‹ï�”—× sۮ馆¦212‚ÿÌŠW ! R2öüUfFöùFúömb sdöÿHkÿïÂ3xÆL÷ÃÓôRI½Þc»un9ëp_tY*,¢#È…“<7³Ú©ElL)°A¸üPÌk žÓš”–fûá ¸|ñ"i,_Ϙ5©·ÙTóv’"@vTSA%¢S$ACsÀ78CýW¨ÜÞÒWn<œlB�©ÁW2V–Æ8Í2ÃAj Ñç�껋 îèQT±2 »ÞTÿÌŠ %ÄÀLÿeÀ- Jÿ-Wíð%O’–á¨ØúÉÓ¢ÿÇÿÿ< b �ù( ÿÿ#œ'…­àç ÿþ&ÿr�`a¬÷ÿÿþ!Z"ÜÜýèšVò¤â!21Red‚Ð Gÿ-` ü$&ÿM+b?þd!Ÿ˜™Nõ3ÌÌÌ``@000ÌóÌÌ0('('ˆ`L0000.``@0000('ˆ`L0000.``@0000('ˆ`L0000.U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`À)^¼ ÿ°�Á€4À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT22_farT22_far„ÃêFÀGÄ„C§È߀>ÄDYD„À>DêFÄC€GD§ÈßÂY õ3ÌÌÌ-.ºººº¼ºÌóÌ̺º./0é¹¹¹¹¹»¹+.ºººº¼ººº0é¹¹¹¹¹»¹+.ºººº¼ººº/.ç¹¹¹33»¹¹¹õ3ÌÌÌÌóÌÌÅÆÁÆ»33_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª?ÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©ª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª?ÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©ªÿê,ƒÉž,Ðt5qN튗å¼%›ÿ0¹3(çòº/«d>­ÀæÿŽõM|‘aµ�û¡BNóõÃûéºop¿ÍÜS´õ¹%Å =ñ#w÷ÿÿÀ�·%p8‘8þ øýý÷ûýû:PLHN>> J@ > TP B @ H B> (*HF6@.84@ 2>F64@86".BH8<480V : L R Fß¿Ÿ¿ÐBJD@ÿIE² úß¡œ½¿)�žùóØK¤`³ OÄÉ ˆT%Ô�Óˆç?žë¾9(¨S_áØ`ÍH0ÉCé¨ñ°½O¯i@ÅjÓJyí š2ÿÿÀ±ûöè’…7xNªä„11`Cû ö°�`_0@øüS3bcù*5DúöibpTò�$8g;7ÿW²}îÝG4~çK:™{ú^êAÔ‡hl½¿ \´Z÷ƒÜf®~²H?¾´GŠ—Æ; ¬<ðÖ̤äÖ½ö�|ŸîÚðL³ Ú0Ê’ûEªÿÿÀ÷V\í@ïÞ9R¥-Û¢bœ'ñT… S"@TZ3ãTID"'!»7@þsð!0`n õu•o»âÛ˼"ì\AN‹‹nZzåZ°˜_Œ> ߀ÊwI, D @N R HFPHB ,BF6:88<. 4BF46>86**>D>4:6B&.DF84><4ÿuy³Ðæ%xôF’+ô¥Òÿ�:°“&Íy€º±%L¦Œ«“§~g㈊åøÂ8|î<áYxJ ¨” 38tf0sÀì3/Q×›3Ëùª(â Pñò°@`kT` øè3dôûF@öæsj2Hòý("wÿ‘£ç�DgІ8;[…–7l!ö‡Â=M²øa0ÞéAŒ!‰°Û(�+Ä{]?û§pƒ‡\o Œ´4�¦,}õà†o[i�º~Œ�ÍÑÈzôëiX”™Ü„1ñDÔP "bdÊÀó%2 ðfSaðA1îp¢R@î…ÁËîÆBù·?öÿÿ¿ñœV {ÅŽ¤ñwµÑúd“‘£jŽÝ% poÿÿÍp5(Ô3óÌi”×ìÌ1 àÜÀBöûh1Bð5Dû|1 WüËEš°—>‘ÝO³½4ïÿÆüÜÐ6cw6È ÿÿj>2ã53x`üÿHÿˆÊH %sÏØÿþÿ KZ¢=´¯V*âÀ1ÆHHE@ ÿð/f <&HÿM1hö¾d ›PÕ3ÌÌÌ``@000Ì3ÌÌ0(x`@0ÌÌ?ÿ000(``@0000(x`@0000(``@0000(x`@0000(U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`À]Ì~2üO�Á€FÀ¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSU T06_groomed T06_groomedÁ ×_Â^ôAHá;Â:à   C C Á:C ×_´A^CHá; ÿÿÿÿb`Áb`Áb`Áb`bbb`Übb`Übb`Übb`bb`bÜb`bÜb`bÜb`bbb`bÜb`bÜb`bÜb`bb`bbÜ`bbÜ`bbÜ`bbb`bÁ`bÁ`bÁ`bb`Áb`Áb`Áb`bbb`Übb`Übb`Übb`bb`bÜb`bÜb`bÜb`bbb`bÜb`bÜb`bÜb`bb`bbÜ`bbÜ`bbÜ`bbb`bÁ`bÁ`bÁ`bb`Áb`Áb`Áb`bbb`Übb`Übb`Übb`bb`bÜb`bÜb`bÜb`bbb`bÜb`bÜb`bÜb`bÿÿÿÿ///IIIGGGGGGIII//////IIIGGGGGGIII//////IIIGGGGGGUUUUÌ0Ï©ª©«©©ª©ÿü ª©ª©ª©«©©ÿü ª©ª©ª©ª©«© ÿü©ª©ª©ª©ª©« ÿ©©ª©ª©ª©ü ª©«©©ª©ó 00ª©«©©«Ã À©«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀ «©©«00à ©©«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©UUUUÌ0ÏSÿü ÿü S ÿüS ÿSü Só 00à ÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀà ?00à ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?UÕU_üðÏ\[\’\’Z\‘\ÿü [\[\[\îì7‘ÿü ”\[\[\[\îìÿüÉ‘Ù\[\[\[\î ÿì\‘\[\[\ü [\îì\‘\ó 0ÿ[\îì\’\’‘\©Ã‘aŠ0|‘�‘D‘‘‘ÌÀóؑё‘‘M‘‘ÏÀðü“‘‘âÓ‹ /–üÿÀÀ/û-b‰7\ÀÀà îî7\îî�Û0÷0\DN\�&’’’ù’’%’’ÌóÿÌq’µ’’û’’’¸’þüðÀ¼bdëb‡NîUUYUÌ0ÏTÿü ÿü R ÿüR ÿTü Tó 09ýÿÐÄ1 ÄÀÄÁ @pYÏ0üÿÀÀ$0 @ÀÀà @0�ÿü3ÀÈàÀˆ+1)ÈÂàÈ„+1+ÿüðÀx UÑ÷?ÿñõq!ÀàÀÀ - ÁÁüþ$9ÏßÀ)  zñïæ¦vøÁƒÁ w0ù‘ýqé0EÑõ A0CJ�< ? õÿ6Öÿÿ'.1&ððð„‹ñÿ?4"ðððð UÑÕ?ü  GG�×OGHðÿóÃHÕÔIJÛ�ŸÏY\G”DJIQ2„tJŸ÷ÿÀ~JżäH1Jÿÿ�Žg¸£T ððð !"ÃÃÛœKLrq’•'Ì™C_µÓq&LUQåH <Ba$ @&Cà Ãçüÿ% 1\-ÿÿÀ0#0sn3 I ```ÐÐ à6mf!& _ÿÿÿ?_ ?_ ?_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸüÌÃóÿ€ÿ `ÿ `ÿóüÌÏ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(///¸?_ ?_ ?_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(///¸?_ ?_ ?_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@00UQU$’@Ì||‚‚‚|€‚~€ÒÿI$Ç‚‚ÇÇà`‚‚~`` ```ÒI$ÿÇÇÇ‚‚‚‚à```~ ```UUUUÌ0Ãÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿÿÿÿ ÿüÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿü ÿÿÿÿÿÿó 00ÿÿÿÿÿÿà ÀÀÿÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀÀà ÿÿÿÿÿ00à ÿÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿÀÀÀÀÿÿÿÿUUUU Œ Î fl fl  fl  f l  c0  ÀÀ €ÀÀÀ €ÀÀÀ €ÀÀÀ €Àà 0  ÀÀ€À ÀÀ€À ÀÀ€À ÿÿÿÿb`bbÜ`bbÜ`bbÜ`bbb`bÁ`bÁ`bÁ`bb`Áb`Áb`ÁbaÂbbb`Übb`Übb`Übb`bb`bÜb`bÜb`bÜb`bbb`bÜb`bÜb`bÜb`bb`bbÜ`bbÜ`bbÜ`bbb`bÁ`bÁ`bÁ`bdaÂ_aÂ_aÂ_aÂbbb`Übb`Übb`Übb`bb`bÜb`bÜb`bÜb`bbb`bÜb`bÜb`bÜb`bb`bbÜ`bbÜ`bbÜ`bbb`_`_`_`ÆaÂ_aÂ_aÂ_aÂbbb`Übb`Übb`Übb`bb`bÜb`bÜb`bÜb`bbb`bÜb`bÜb`ÿÿÿÿIII//////0IIIGGGGGGIII///0000IIIGGGGGGIII20000IIIGGGGGUUUUÀÀÀ«©© 00«©©«Ã 0©«©©000«©©000«©©000«©©00ë©©« 0à ©©«©©000«©©000«©©000«©©000«©©30ë©©«©« 00©©«000©©«000©©«UUUUÀÀÀÀ?à 00?à 00?0000?0000?0000?000Ã? 0à 0000?0000?0000?0000?330Ã? 000?0000?0000?UUUUÀÀÀÀ7î\îà 037î\î\’à 00\ì\5î0000ì\5î0000ì\5î0000ì\5î003Ãì\5’\ì ðà \’\\î\0000Z\î\0000Z\î\0000Z\î\0000Z\î\330ÃZ\î\ì\î 000\Z\î0000\Z\î0000\Z\îUUUUÀÀÀÀ@à 00@à 00@0000@0000@0000@000Ã@ 0à 0000@0000@0000@0000@330Ã@ 000@0000@0000@TQ?EFFE¡ð?ðèE0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 >8FH6( :8 BD2( 64 >@.$ 1      EC&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  1/21864 >@.$ 20 :<*  ., 68& 1      53&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$ 20 :<*  ., 68& 1     5 3*502,:<.   60>@2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$ 20 :<*  ., 68& 5        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)824:<*$ *,24" "$*, 5        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, T24_farT24_far„ÃHÐQÀYÄ„Cƒï÷€PÄDPD„ÀPDHÐQÄC€YDƒï÷ÂGP? Õ3ÌÌÌ-.ºººº¼ºÌsÌ̺º-.ç¹¹¹ÌÌ¿ÿ»¹¹¹.ºººº¼ººº/.ç¹¹¹»¹¹¹.ºººº¼ººº/.ç¹¹¹»¹¹¹õ3ÌÌÌÌóÌÌÁ»»_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ-•vv“ì~F9ºÔgÐ>dYü8&¤©ÇÈ�Ì"ÅpúéÛ¾ ‡öÎû†Vñ7Ž Äì™ÿÛºèÌÛº@(ƒ¯¼†ì6/x˲AHþ¸ýûÿýùû6LRLDDB P. : P R F B J H D ( &B>>>66<22D@4>2::*(@><:<8@04B>8<24>ÿD¸Z‰†ЧfóéÏŠDnˆ[}*ÌÕÞþMB²÷³¦˜Ñ&mB–ð¡Æ´oÅ7"³z“¸W$¤·—…e Ýs…wµŸ�Ú*Ôùš$¢À0 cõô°�akˆïUj $ôùb"òöunbòûD1yÿô:Au@ùz©EtÑvñ�âày­¶rbKCÛUð¦Cû-Ðožß^ºý€DZŠ:sØ pï‘Z{Áëñ"X/ETÂ_,ó'(OaŸ  Dó€™ D Æ 0C£A\À30@a0D'u€0C�Ý!þd€ 9CÎÁ|z@É;ÓZ8ÿÿÏÇ$[äİٛ¢üF¾G°”zJ©Ò ÿÿ×÷Á’±RÉV×Xõ$ôÐ`a-,ØÀFþŽÀ3 HòýDQ3[ª(ê¸ø„ð& 7‹½ÊÐÿÿ@ôàP`ÜÈÉ8HÿÿƒC>ügKíþôÿ¦p ÖA� ÿòðn£ßåÀÁ\U?îña` ‘�¯ÆHH›žKHÿý3h ›š¾dß•L3~ì¾`d›”™NÕ3ÌÌÌ``@000Ì3ÌÌ0(x`@0ÌÌ?ÿ000(``@0000(x`@0000(``@0000(x`@0000(U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`À]¼µ‹þÙ�Á€OÀ¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT25_farT25_far�ðB^ÀbÄ�C‡ÆÀYÄDPD�ÀYD°B^Ã�C€bD‡ÆÃ`PX õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿêØ¦r¥fÓ[~è�ë„ìÖjóà‘"…3/Á–�®ûáÿÙió‚6¿*–¬ þu^œI/._Ó$˜.€W˜V°.˳ª4R\À*‡uK+”I�ÿ <PNJLJHLP DL J D DD@ J 0(<<68:86T,@@424840(8:8::6*b,:B42:8(ÿSºG(˜ÍÝH>¥ë °Àór[ÓE qå C0ä—©b%á´8çÇN"žÍ%_îÇr’ÊI K”IÊãÅæ–×ó�дn 'Ò(dUG]ªq¤€ @#õBô’"i !TröÈ hôûFAöÆ_b2yôÝ(FSÿC�ÿÎ Ûëc@¶åv¢Xè?Gâ“­ÌFÞ½lÜ×wºÿÓ³ap�;Ê`ƒ@¦óTà>´nQ½%�®ÏûL´F¼¨©k—¶˜]l•šb2TV44T4Z’"4¸–"®öÕÅJÐ cÔü 7  ý$Ì gŒ£{»ÄîÔ5B¹ÿ.®ƒÿlaw   ßd.8I’LÒ­¡  þ–º«ÛM”ûíÊ1 nÀLôýhCð3Höÿ*f1÷iÊý;i®‘J¾û`ÿûý˜Ýä8(ü —y›•æ=»3³§r#Zp�BÀ…QzÒ   U=üÄwv ‘š+ÒI˜›NHÿO.•–üBdÿ•F2wþB@•˜�<õ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ Àþþ€ þj`VVVVVVVVP`VVVVVVVV`ÀA_¶#¡žþ³„Á€XÀ¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT26_farT26_far‡Ã‘jÀkćCºÀbÄDkD‡Ã€bD‘jÇC€kDºà k U3ÌÌÌOPÁÁ¿ÁÁ¿ÌóÌÌÁÁÍMNrÂÂÀÌÌÿ3ÂÂÀ‘OPÁÁ¿333ÿÁÁ¿ÁÁ”NrÂÂÀÂÂÀÂCMN¿ÁÁ¿ÌÌÏ3ÁÁ¿Á PpÂÂ330ÀÂÂÀÂU3ÌÌÌÌóÌÌËÌÌÿ3À333ÿ¿¼ÌÌÏ3·330ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª ÿÿª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ÿÿüª©ª©ª©ª©ª©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª ÿÿª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ÿÿüª©ª©ª©ª©ª©ªÿ¥SØ´è +Mwéùj(éeâ® Û·‹ d³ãÊ9©ƒc¼mó·MýÛí²˜÷è×Aðìïô·©ýF›Õãýê뻈÷*Y]ÅGu ÚÏý¤…^#�®¢¸>ÿÿüo4^/jILüVËëÿBVXRTZ!XJzHR`LLRRDV#>T\TPX!T!Td06H44062X#BP^TPT'Z!V€LT^ÿÿüJNNPNÿ=p³k½PPÎ\þnžGúŠ¿‰m†úk70>Yϒ䨇BÆéÊ“\õ8Þù#8õ™ûÈFhòÞu¹AÔ*XbÃ�.c¶�ئrŒÏ¢uGàìa�ú­4üŠ(l\íx†ñþÏüÐŒU˜äU)ªiþ…0÷&òÒCbU2�að h RP¯?Y   O:†b#0R0Bö�ODcø$ ÿÒI ®Âq¹Wœ6_‡“ýzà™´•_UMö#+Ô¢9vpX¿Æ^ô´êÚA|/PL¤fÜ5 ç«#¢¿· ŸYëŽNªòÅ>œâO¤žVÖM~ãÄÑÕh™ÿÿü“„MÚ ÙÇVóð•#%R²úÅ,$ãD@TQ®{Òhb5@)I"wa¼]ü\—_Ï!ý V/L%ÿÿǰ»>ÌÁ²4ö¾z1¼KýïK·ÿøÙÌ-)knj ;ÿÿ %'Ûa×V2;ÿÿü|JɾÁëÒ¼“¢X÷(òòc€+nýÀ <¿+Àð @øÏOD5#ð4 û©!¾Ë5Ùèü £ÒBúÿÿóöGðu²áÀ ‹–csIr‡]­{b4f‘iÌ ’ÝÀ™qnqç$ü¿£F×1ÓS0A7  °ÌU<ÿÇ>gt—š•–•ßÒ@Ž�DdÏø.]j |?�•’‘މ�I ùö„#_.Up� QÉJ „U3ÌÌÌ'(``L000ÌóÌÌ0.x`@0ÌÌÿ3000(``@333ÿ0000(x`@0000(0``40ÌÌÏ3000"*x`43300000"U€À€þÀþþ0€þÀþª*`VVVVVVVVP`VVVVVVVVeeeeeee``VVVVVVVVVeeeeeee`¶`ç%Bíÿ1„Á€aÀ¿IÐ            Q        rt jp ntY         T27_farT27_far“ÃrJuÀtÄŠC¤ ÀkÄDkD“ÀkDrJuÊC€tD¤ Ãëkã U3ÌÌÌ�žprrprpÌóÌÌrr›œôqqoÌÌÿ3qqoq¿›œprr333Ĺ™÷“îÚ ò—Y"ì)hÝØžA�ÚÔwIÿC…M›4Æ û94êK×ÑZ”+aVšp͔ȳQÞþ†ò^ÇýÜ�ÿÿüyv˜g'†íf:´sÿ!DT`!ZPP!^RnLVXFFLJHN#FT^VJJRNv RZZJFNRFD!@RZPJJDHÿÿüR <<@44:@8ÿ~§±XÉ´ÏõX ŸU©Òœ¥P»à›Ä‚ }ë«ëÑQÅÊ­­ó?wP¾~Y|iÓÇs5ò²MÒŒ¹Þrå™ZÆ šuêÊ!0:;”›õh!Gj0Ù±•ØÉPG��Í}ÿÿün£Rì€dÖ¬J˜ª*¦€1&!1ù"öÒc Q20ñJ&Bb5DPÔcp�`0P!@ñbfH@3"A0?raQ cÿ.rô«#.z¤F.3þîqüý¼(ÒÅogÊ£%„,$Ë꯿ì¯H(çõÀ¿v*zõ­FZÞî«PëÌnæ"Kó ê0ðV©bÄUÓZ#âüòüMºao÷p=/ç]ÿÿü¯˜Ã©wh X£ú%š%SB$Dô’!AßáÅ $q$`CrLììBþ.F30~qBa0`”I…öÈØ=#È*’D6­¥43¾ºOò)˜ÿ=�Õ­ã¶¿èÏhŠšk8ýèŒ;™  ?ÿüLÙÀ¶=4ó‚X"ù"öÒ…À)lÀF; p�¡0PAaðFr�P@=Ûfºö¦üÑÓÎ#fµÿÿó,õðÔ¢BЯb¼ÿÿx{ÚÖtÛô»ÑȈ„‰‘Oë�ØàÐà0@2 ÿe½‡-,ï­×XŒuä$\]Jˆûý„ÚîVøÆ‚Q0d[XŸÂ@‘ŒE˜ÿü2ad wûˇ�•D„„„�2hhAññð�”‡ù „„AU3ÌÌÌ`L0000ÌóÌÌ.x`40ÌÌÿ3000"r`@0333<000(0xÌÌÌÏX00000„ó333`40000"?ÿü*xX00000UÀ€þÀ þþ€ þ0€þª`VVVVVVVVP`VVVVVVVVeeeeeeee`VVVVVVVVeeeeeeeÀŸ[Ë*ÇG$þk´Á€jÀ¿IÐ            M          Q M        rt T28_farT28_far™Ã{3À}Ä�CV_"ÀtÄDYD™Ã€tD{3Ã�C€}DV_"ÃYü U3ÌÌÌÅÆåååååãÌóÌÌåå\ÅÆ ææäÌÌÿ3ææææÏÅÆååå333ÿãååååÐÆ ææäææææjÆåååãååååÐÿÿÀÆ ææäææææU3ÌÌÌÌóÌ̱ÌÌÿ3¨333ÿ§®§ÿÿÀª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª0ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª0ªÿ6¯3¼Å|Ãð›`OÒdv¤fIëoKð�H¼Ü¿0¾Úä­ÑYGвi��rÃó§��M;2Ö*ÆZo¥\§úšÓé'‰é@°Ýa€¡ÿÿÀîo<;õd!ÿ8PRPNFD >l  PNVFFFPD J! :PPLHD D : P 8<@2:4@8" (:B:6:8.HÿÿÀ6<>2@4<8ÿêz›ùŠBGl]ij�3Í(D&ŒX›÷§¹9ä%í°"üʲ%sÉ‚�>>ˆ² ö’}(õUè‘´«MŸÜ Zð¶›cʃ_ŸãqGW´^öFóÿÿÀ‹ôÞ*OwÿG© ü0 3ó"�pA ar@òDH@h!#/Mti·Ì·r kK’C#@ÿŠQ{>2õíZÖžs_KØ&0böì�§÷À# b¶¢î±ä«ÉܨÁ|`�®&ÉBÜØ§*Øã²(Áan‹¡Îéu»’^‘�I‡j»æ€ ûÿÿÀ] :ð=Ä¢iô±S0&¡vr42ðQÊ3#*51@s ·€}ìH»z©¤ÂÜ™>˜ŠGä  sE]0`3ÿ/©—qÚÿÿÈ_òß7cƒ ®ÿÿÀ@LŽSpÓ�yX õ$Ò’Cƒ9Ž�ÀJþ=%ðJ9O’CC ë Õ=V©èžó²DöòC´ÿÿó"00£Ð)5æŠ@1 @¿ÿÿõù *ùXÑ#ؚʹG·ÁîB“ ôY!¶ß9ëRŠMç@ e?ÿ7Ücban �œ—˜�ÞÒ@ Ž…@  ôDj2— ��@/<¡_÷ÿ@•˜‡B™€U3ÌÌÌX00000ÌóÌÌ$xL00ÌÌÿ300.®L00333ÿ00.6xL0000.–L0000.6ÿÿÀxL0000.U€ÀþÂþþ2þþª`VVVVVVVVP`VVVVVVVVeeeeeee`04V”%¤ˆÿØÁ€sÀ¿IÐ            Q        rt bpjlfpfhblbd^h^`ZdZ\V`VXR\RTNXNPJTJLFPJLRPVXFPRTJPRTJPRTJPRTJPRTJPRTJPRTT29_farT29_far™Ãv…Ã@ƒÄ�C)û+À}ÄDPD™Ã€}Dv…Ã�C@ƒD)û+Ã^PV õ3ÌÌÌÅÆåååãååÌóÌÌååiÅÆ ææäææææjÆåååãååååÐÆ ææäææææjÆåååãååååÐÆ ææäææææõ3ÌÌÌÌóÌÌ­®§®§_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿDÑ¥+l©1‰fq BìoJåyò ­é»“y)Óܵ`·Ç”‚ï„VˆUF¤YEà©ö%\ßu±˜4Á)êõÒ¶ÏóÀa Âx¬:tÿ >LRLHPJ <T  JPVFRDLH( (@@48<40J0>B2>866, &>>2:<2.N.@D86668ÿ÷È`MÀ³›PÓBú.…Qi*Jl /z¦lz¢‰2Äébîè5x<…Â6 ï{£¤1÷úê£*Óy^BC‘ÊØQå~ä;óïä1ªPd P11õ$òpca" òŒS@p‘ôù"ñæappCqôÿ ]ÿóàŒ†b·#€ý“{ÄLãù÷V¶³ã³Jó4Þ®çða}·žJVͧJ–ù¯sÚ]m: H¡�™©ð•bÉArÕ¹™¯­0ÀŸ–!RA#%/�Ÿ” F #´b20bR€b03Hþ4•â  oöØKÜgž¾ìá¡©Û+3²Gãüÿ #›Bß “Š KðÄT1Á ¦÷‰Ð˜õ&ô²c5HÀJöùD4ð7Jû`3[VÔ]™^¢³.ì¬mÒºÚÿóÒÁPOr¿œ€ÿÿ/ªv¶…·þÿ ÿe}Rlc×E²1”ë&»e<þ\#�‚ ›ÜÒIšA ò¬3@:þ@ ßC<�ÏÞB`žCõ3ÌÌÌL0000.ÌóÌÌxL0000.–L0000.6xL0000.–L0000.6xL0000.U€ÀþÈþ Èþþ þPÀÀÿj`VVVVVVVVP`VVVVVVVV@€—S${²þ¢äÁ€|À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT30_farT30_far™Ã·)‹ÃÀ‡Ä�C›õ6Ã@ƒÄDbD™Ã@ƒD·)‹Ã�CÀ‡D›õ6ÃæbÞ U3ÌÌÌÅÆåååãååÌóÌÌååiÅÆ ææäÌÌÏ3ææææ[Æååå333ÿååãååiÆ ææäææææ[ÆåååååãååÝüÌÌÌÅÆ ææææäæÀæU3ÌÌÌÌóÌÌ­ÌÌÏ3²333ÿ«²µüÌÌÌÀª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª0ª©ª©ª©ª©ª©ª©ª©ª©ªð©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª0ª©ª©ª©ª©ª©ª©ª©ª©ªð©ªÿL;\".�”ù‘)p Çyb5„8~ÃLà :qßÚ\ÑæÜýcbW9õ»7¸ÉÈ¡BÌz!´áŒuͨ†0+#9.â°ê–N¤Hd£vìJÕÃFñ~RûQÒð•¼ÿ 4NNHRVHFfFRVH DLNJF8LPDNRHDd6@>:4262:&6:,684,lH JTLLJJðPÿÏ�™èÂÜXË39O¹3´m>¼Ç0M±Í•È)È2Í¢:øÏ”#Hfð0LSøùýq†è$tàW¸þYÉ�‘›ÎˆªÒ¡Ñ(SÒ@/ˆÖ«òµ¤gOú¾[7‚Vð#fš Rˆa5B1õò°A¡Y¤ÿ3h#$ 5W²a„O¯eS\_VòPA` ÿ}gN`@”™í›jŒá~ï�™ªÕG}IrM¨5�ò lê1þzÇ/ Ó»FlB=Ì!ÀJü9 õ°H3Tô’@A@@׆TÌ<+Ö@h½�>ÿÖýéà:f¢‡ý˜¿ÿ]ó~…Gë5íVž³§ÊíhG€?ÿÿàÄ’iÓ6822.N ,B N@ : > DJnJPTFLJLFÿ?AÈÊ· âÏ• Þ*W—* äà¼dØ*»Bµ¬S“\ñ ]2&¬PqKk¥Å�TÐ1#)ø£†»/ý*G> L® V·to”Eýìv[¦· �¦âÈäøÀ_'“îüÆÊM÷ܺ28ÃöÎöª¨�3 ÷$ÒR!aa a ûOdf$01kB$(ŠQ` ükÚœ�ÿ?«N*=ô…dF$8O¼ óïx·Quž|±Z£ð'f¥žgœŸëZ]_ L%ÅÓ¿FNK,óóPëã/` å|Í —@ßúvFŸËõœ�Pn#À3m¡¶¡z|Ë~Bu’*’¿�zšM8ß ÏüêDÔ9¥&tâ ªØ-ýAA…ƒöAB@#  'aCB@3d!Æì‘Ø2¥�t}ìÊåÏ×ò|<Ê5�Øû3òè�˜aƒtg 30ÿ¨­Y…Öÿð;;¿heU)± €?ÿ·ß¯lœ¸÷ÿÿîlKÅÄ '}T%ûî 5 -,ÀFý;ëpB7ü7 cB@!a×-ÀqÁª‚ÕÑ“²à”:ž–ÿó %xp©—Ýÿÿì)ùÑåá†kŸU ¯û÷_²Š­€?ÿÿ�~k½Ñ Îcw©;ƒá* ¿Ùa0@4VôÈ`3@ edwÐ ƒB� ÿõ3`tÿs‘–‡B6ÿ2cn  "òI“HHaU3ÌÌÌ`40000ÌóÌÌ"xX00ÌÌÏ3000T`@0333ÿ000(0xX00000<`X0033?Ì000 x`ÌÌÌ40000"UÀþÀ þþ0þ0þ€=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥ffffHffCCCCCCC@™™™˜ffff;VM$V¯ÿïÌÁ@‡Ã€¿JÐ           U        rt  rÕ              T32_farT32_far‡Ãk –ÃÀ�Ä„CšˆUÃ@ŒÄDbD‡Ã@ŒDk –ÄCÀ�DšˆUÃßb× U3ÌÌÌ?@þüþþüþÌóÌÌüþ(?@ÂûýýÌÌÏ3ûýûýe>þþü333ÿþþüþü(@ÂûýÿóÌÌýûýûý¥@üþþüþüþþf@ÂûýýûýðûýU3ÌÌÌÌóÌ̽ÌÌÏ3Ä333ÿ½ÿóÌÌÊÃ𪩪©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª ÿÿª©ª©ª©ª©ªÿÿ©ª©ª©ª©ªª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªª©ª©ª©ÿÿüª©ª©ª©ª©ª©ª ÿÿª©ª©ª©ª©ªÿÿ©ª©ª©ª©ªÿŽÇy“-‰ódiÙ¼aû�‚‘Ñé«@HKzÝòêÀšµ§}‘�Å>ç/jÙxHa¢B-&¨ÊÒ×®9j,WL‹-È(ûèy�¾ð}¶þ ºùûÿû÷ù2FJFB:@ FXJTXHJJLH<<LJ D F < @>J4NVD JJBBB2:N64:ð8<ÿuõÿÓl-+«ò€�F¶6už²Y5®&0y¦–$H‘õ�E�SŒ3§�—5’d è�ªßn÷#îa`!Cú7>Z\(9;f—Ò*ÜÖÒcûŠ@©kA—½h‡¿·ç½�ðÔ¼™ýÂD ùHò‘a`c™™ïðd1D!�´k�V¤Bl$ôý0iPÿ.¨çÁ;^\¦º¤j¢�"~ ŒB&çn�ölïw¯¡Å‚#é`iòsf_åZs{×>©JÑIJ”“Cán¹AÉY9?Aÿ{ƼÿuáW[,NvzN莯øè$ú�‚ðàĦE@3$"àÌ CEE!0Q@30# 3:@B7Uò10}ì� ŠNس(-Ô(’ jB·Èï€GD &ÿ igØÏ÷ îàøywúd€ÿÿuÍÌ™rkÒðRHXûLô°a`-!ŸÀFÿ1 Ô°Fÿu/`Ûwá|ŠXû<ö�ÉS ݲÿÿ÷pc)ª&ÜÝíÿÿû……û£ŠJ22 I‡“°òî;› á¿ûÿþ-Ë;P:åŽØ¤Ä/?†.ò° @U3ü~Vlkv�Ž€Ò@Eïý0 ‘–ßÃ�“’‹ŽG/X¦b4Ì3ä�Ž�’I@U3ÌÌÌ``4000ÌóÌÌ0"x`@0ÌÌ3000(``@333ÿ0000(x`@ÿóÌÌ0000('(``L0000.x`@000ð0(U€À€þÀþþ0€þÀ€þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿj @444444440@44444444!!™™˜@44444444 \m#ÇØÿÝäœÁÀ‹Ã€¿IÐ           U        rt fprtjtnpI uvkuououououououT33_farT33_far�ÃÑ›Ã@•Ä�C³ ^ÃÀ�ÄDPD�ÃÀ�DÑ›Ã�C@•D³ ^ÆP~ õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿgÕá¶nr°¢éì'cþ¼½c—¿óaJ’5M†¸ˆÙùÖ'µÇ©)tÊîK ¶ê}Þiþ|þ´ðAI0Íûò„ÿ³l«´—,%‘ pÿ@NVFDN F D PBN`NDLFJ*(>B4.D88F .6F>28<0.*>>44:84P *Ù?Qnª©ÍGV|@"!22VvãUDRD$Ep�$�I8C@þ£ p 5�þ¾<` ‘uf³3ÁñÍ9õHBÁ  HÀŽ”òoÇèË�� ºeýmOwnª—n˜÷Bôô#ã-%®ÀJñ½:$ð1DðŸ:#$1Ûû¥_ÑHXÁûbR>ÀÜäNÿÿó ’ d�GMbz¦˜ÿÿlIÃÿ™ÏËè§æ)~�ÿüó ÝÜ%`ª^%f\ò¤QbÏГ’G ÿü9„!Rþ@ÿ‘H*ýü@“�Eõ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ Àþþ€ þ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÀÿUffffHffffÀ€A_6$ïr÷£„Á@�À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSU T06_powder T06_powderp ×_Â^Ã�B33 Â:ÃÅÅpÂ:C ×_Â�B^C33 Â]U uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ïÿ{=-/-^/-^/-^/-Œ/-^/-^/-^üÌÌÌ/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-Œ/-^/-^/-^/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-Œ/-^/-^/-^/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/^/-^/-^/-^/-¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/^/0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-iû®ë3ÌÌÌ.ø`@iF”iFô F”ipüÌÌÌ.F”iF”oF”p  . F”iFôiF”p .ÿÿøF”iF”ôiF”iFv.øCCCOCv¥:S¥:ÿÿÿ.ßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©0ÏÌ0©ª©ª©«©©ª©ª©ª©ª©ª©ª©ª©üüª©«ãä©«© 0Ãé«©¬«© 0«©©ÿãä«©©« 0ð驪©«© À©«ÿÀÃãä©«©©« ðà ©¬«©«©À©ÿÃ3<ãä«©©«©©ª©0ë©© ü«ãä©«©ßUUUTSTSTSTSTSTST7S0ÏÌ0SSTSTSTSTSTSTSTüÿSTV9? 0ÃÃU 0VÿÃ9? 0ðÃU ÀTÿðÃ7? ðà SÀVÿó3<9?U0à ÿT7?ÿÿÿÿt…ñT¾@ù)o¯)Ò}q]'ð²ðò¦ðåð=Û ?Ù3æ =º²ˆ²ÆðÅÆòÇÈ²ÇøŠ� ÝŠ!ùùøŠøJzJyRÔò ’ =‘t²tñ3Ù5=Ù Ð'H¼}ðúù²ÅÆòÇÈðú½“ñ³Ð†ªç9¥Ãž~tïò44tÆH3žH¼J?¨Jº²ÅÆðÅÆ²‡ˆò‡z+‘2œ_³Ís÷èe’ï…rttˆ=hˆ*ÆQû¼ð‡JðIJð ò U�U‡(häçŠ×Q[ò @Ûttr¼»‘»‘}Ï}ºòr~=²~?ð@}‘)�‰°œ§äyýEüüG1¾^{4tt ëÛ®Û!! %# #%% '%Ùyyù‰Qðšq’& T#R%B%B#F#H#H%H#I"I3- qñÏp žsÿÿ 0, " $7 I3-   qù!p $2* "+ G-ÿÿ9—Ÿq+qù!’!’&4,/*O!!%y™  p$²Ë?ÿ 6, ;.Q!%/ ÿÿÿÿ“¯�³ÆõºªœÚè•–²²Ûë=PËšŒ•èrûD¸ùÈÔŒZx¢unRí¤ �¨Ÿ¦žÞþ`Q¨À¿äPi�?À"/8I]¨Ñ¯}Õ ¿‹É‚(�ðl‘ñ¶FÑuÀZ¡sTÅ ƒÏ½¨µz<¦™˜Ç«ÐeNÔKÒA%YKwP´,ÒÕ(eÍO £¥TË\š‚ªäž-jHÜ ZØ\ ¢ˆ™G�°Í1äIÆŸ²šZTxï}mª­ªªÀôö1ù&û$ôð_õÿ_õøQ…?ðàR0ïÿKV %>%%83ƒÿ¨!R>)µ¯Ðÿÿ'@Ùý?³Q…_ø¡òDP7mo³é>“Ç5Q§<ú ö�@"P�vVvSV¶kH´oú öóFBOïT!ÿÿÿÿöà.�à©nÚØ³Ý ö4}ÿ{º®®ßJ?ùC‡Šƒâ‰köCt�zT¼™zlÂ?®¹Ïù÷ t–xPè两áx%aŠƒâkåj`™ÝõT71îC&+ÇV§”(–|šiž"HŠ#k&BK—Yºˆ¾Ñ¡óf.¿=¼êZÊyn‰ýp¢M <mœ„_Ñ‘¯á""5ÑéèÑÉúûë8–·¯öuüÝ3�cW½ßLó":ªø"ö¶Œð·ªÖj2Eqšše–0Ccƒ�$Öra@#"2ºĆP@4²2F�´"4@| a�¢« %f# $tĘgêª× Tf" †I'rCI�fðy™†K®¾�cc‘($ù½m·Hß% ÿ$ð   š2 pŒF|BüÄ@üÄ@¯Ž|n]’)(®³—Êð˜ÎoOHúu~º={º™[ÓÏü³G¯p@[ýú”è Þ×Ì!azó6ïÿúÙÿ?üúýü³G¨ç@°¯vꪜ‘@Lm;$ ­ †?ÿÿ¥Î$ºäƒrãDøó‹1éK‹yiôù™¿ÛV k¥K'»i JÌý±Qÿò42/1ÏaAö! e†eø3ƒ8!?ðã R0# 0�ÿß0+@3ƒÿª%0?-4@3…ýEÀ# .S¥\üÁÀ ,Ö�hÖ�üÀ1Œ*_×uÝ6†² BíðÔf–Û³AÆENÖ‘‹ßG�x ±ÿÃÀæŽEK-.<Ì!" �0«æÄTÙ±Á]Á2ÿÿü±æBS^Ô°08k4ð dµ­²ò5O[¬r¤[`bbÿÿµTˆ,gÐg³üÿ âüŽQ $½}ø ¾Y¤ñ‡ÿÀÑ¥zVÏ#üÿÿ$Th¬îcôs|§ÁÁMîò ‚:¶BϤ?À#"Tc•·+üå„£áê¥Û^Õe•àöö1ù,ˆ%  %ÿ�€  Hïÿ 2 ÿ>ø% `2 [Porÿÿ˜ï0Yÿo·ý?ibÿÀ ˜ü+4 4ÿÿÐ  €ÿõFdOÿ8wl'uÿÿÿ3ÌÌÌ/0_//?__ð Ïÿ_?//?p/?p/?p/?�///üÌÌÌ`@0000(o0_//?___?//?p/?p/?p/?�///`@0000(o0_//?___?//?p/?p/?p/?�///`@0000(o0_//?___?//?p/?p/?p/Ï///`@0000(o0_//?___?//0/0/0/Ï0000`@0000(o0_//?___?/UUUUaÀý€ ÿa‡ý€ÿ@aÀý Àÿ†Àÿ Àÿ0ÿ ÿTUUTóó ÿÿÿÿÿÿÿÿÿ0Ì0ÿÿÿÿÿÿÀÿÿÿÿÿÿÿ 0ÀÃÿÿÿÿÿ 0ÿÿÿÃÿÿÿÿÿÿ 00Ãÿÿÿÿÿ ÿ?ðÃÿÿÿÿÿÿÿ 0à ÿÿÿÿÿ?ó3 ÿÿÿÿÿÿÿÿÿ0Ãÿÿÿÿÿÿÿÿÿš–e™À¼¼¼¼¼¼s$$² 0ÉŒ  @¼¼¼¼¼¼¼¼ÀqBI à 0 $�0à  À qBI@ à  À qBI 0ƒÀqBI/0/0/0/.0].0].0]ÿÿü.0]¹¹¹¹»¹¹¹CCCO:S¥:zÿÿü 30 0©«©©«À©33 0?À=ð=ð²({S=»h»»æÿÿüÆù›ÎØIÅiRÑ °KÏÿü :*"ñSÒDûˆIÙÒ^O׸/ÿÿü7sŸ‹ö’çeåt vVV[�fÖ�¦ÿªC2 !à�´ož³Õ„ E‹6@�ÿÿü³/ÛL>=&zßÇøºïï Hÿÿ¯ÆËI²ªnÿÿüOιYïq‰¸ ¯JöÏÆÿ¬C2 #ÿý†Ümü“I°c1€ܘzq  a!€/0/0/0/·000ÿÿü0`@0000(ÿ€33 0ÿÿÿÿÿÿÀÿ23  ÀcùÔ³ÿ§pÂ9À¿ËÐ           "$ " *,& *( 24.$        ",                  1/1    "$ " *,& 9                  )')    "$ " *,& 1           )')    "$ " *,& 1           )')     1                 r±                T34_farT34_far|ÃЫ¥ÃÀ™Ä|CáëjÃ@•ÄDPD|Ã@•DЫ¥Ã|CÀ™DáëjÑP‰ õ3ÌÌÌaa_aaaÌóÌÌ_aÚzb`bbb`bÙaa_aaa_aòzb`bbb`bÙaa_aaa_aòzb`bbb`bõ3ÌÌÌÌóÌÌÉÊÃÊÃ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÚ£ôË?lË­�dT‡Ø5n• ®á‡0ÿü™•o£†êTSÜ<^Äk`N�å{±,<:40..6l,0D6.080@,8:406,2j20@4008,ÿ£Â-Ïù5 èD%ÂzD”cxkËæ�Ô9Yeq~—^uDÉ�O= üçÉ£}{™åD�ã!\@ÒD !ø™ó©©O#ò²Äa¬¾©fQ¦&¤`0!Óþ Y  öÆ3Zøû#"ö„]\3"ô÷Z!Wÿ�$r`»§Zc¦åÝ%d´&õ\/‹ i`•›wo&ú-®ôHméT=#ÌöGFÅF¤Wt¾|¸&%ŽM…Õ;–êà8b5·9ˆi%Üfs@A"”R@ 2c0#Ú  7D‚µHý!ÌÝ$ ‹@RòÝ:1!ס¿ý|ìò¯ÉmýA ¸öjM)ÁâðØŠ ã!]€Ù#�˜ó(ôðA€/%ÒÀFúý:E"ð1FôùzC/›‘Ù¦Ú£H®É’6"lËÿÿðþû¥À˜6Ä{!˜ÿÿÛòe;J‹ ÿúì'&óÿ(.¸2«48KØÛVFÄ€0Pñ��ýÀ���J˜ÿý5r ™ž‹ü’ÿŽ‘J7v ÿ>@��Ž�Hõ3ÌÌÌ/0p`X000ÌóÌÌ00G0/ `X00000G0p`X00000/ `X00000G0p`X00000/ `X00000U€À€þÀ€þ Àþþ€ þ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÀÿj@444444440@44444444 À†aT4¦”%þhpÁÀ”À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT35_farT35_far|ÃxZ®Ã@žÄ|C}ÃÀ™ÄDPD|ÃÀ™DxZ®Ã|C@žD}ÇP õ3ÌÌÌaa_aaaÌóÌÌ_aÚzb`bbb`bÙaa_aaa_aòzb`bbb`bÙaa_aaa_aòzb`bbb`bõ3ÌÌÌÌóÌÌÉÊÃÊÃ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿÀÜn«6º½‚cà2‚É}Ž©Ð�í—|Nõ/Ñ3Í[SÞ_z ŹÝ3 {´£RŠc×…çI'…|$ϳØÖ¬=qø=ÇrµB– :å¹$xÿ ! L%^#`!VPV#PRxT!RZPNPTH>&8>822.>`0:>2028,@&8B408(8l*>:24.44ÿ¿]¹]á3øùšË%À¹:óà‚ܾ±ïm4@Dfǯî*Åïk9Î ¥EÇgk]Xö©¦ÇmP�S}Å‘º¶èÏͧ†Ðid»Í ©înBù&ðp `[0@@òÊV$ö÷&&öÊaR$ôû&]ÿ…4nu1<¸³Ü+¥hÒ‘§ª{‘'¦úÿð"Ùy} •ébPñ‰òa áàäuþÃNE¨Ùò ÝeNw�{ÒØ¸Yé7õ¹í%‚Èž…ëòtßä"Y‘m%0áP” Ž Íi€8 Ÿ‚’$0aþ™ð0" Þ²/¥@›'L*âý4:$Ÿ˜­X€ ²‹+Œ©í˜ëU;|. WŸrf#˜þV˜ýJðp!€+ ÞÀ@ø÷F(ð3@ôý& 6/çH)vØ{ éÙ©šÑ™kÿû×Û0Nñ}03ÁÿóÿÿßÄì>éKúØ£ô  vò±X4›¨Ò´ë+, U>îL;sp ‘ŒÿÒ@‰Ž•žO ï?4 “�¾@ÿ™P/f óþf@—�Oõ3ÌÌÌ/0p`X000ÌóÌÌ00G0/ `X00000G0p`X00000/ `X00000G0p`X00000/ `X00000U€À€þÀ€þ Àþþ€ þ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÀÿUffffHffffÀ€†a3Îã$ý=pÁ@™Ã€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT36_farT36_far|Ã9.³ÃÀ¢Ä|CR‡Ã@žÄDPD|Ã@žD9.³Ã|CÀ¢DR‡Ã“P‹ õ3ÌÌÌaa_aaaÌóÌÌ_aÚzb`bbb`bÙaa_aaa_aòzb`bbb`bÙaa_aaa_aòzb`bbb`bõ3ÌÌÌÌóÌÌÉÊÃÊÃ_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ’BDﺠ°ò $ÅŽ^±ñy–yú·�¿„'5x›½íyw½ê–o…?ƒ·œ-Rþ½ûžâ s²åÀÍôq©§„nDȇ˲xŠ¿a7¢ÿ<PZLJTDTXH\VNJFLL*&DD8080640<($DD<080<@0DF:640>ÿjïš¾5»ç\Žª ÒÐf ‰ŠMIpQÇòsž¼ †§A~E,ò„R˜À\"™m:~ ÿ}@‡Ätè:íhzD€õ flùgýŹÌ¡ª&„ÂrbóðScaeA !ôþ7d&ôûDBöømf5BòÿFBkÿJgdW•méé³lƒ†ˆ…­\ïÒ¶°µàâ)2Ý{°ÊÀV# ÷V@žÍÝ—Ù¼,€Û ö‰5åŸ}¾¿hñnúáèN©è�û. ou)Àc#j1Ec…¥§gGñp%g#C……A2!"LޙŠ  P2Aþ—ð0` £÷‰6¶GÓF‹2lCq‡.E(ØÝå³÷�7‰Éð©  O{=®c…ưð˜õô‘a`+‚ÀÀHòýdDQð1Jÿã3[Kè_—Á&ˆüšÂÙ ÿÿó@÷ó³7ѳa!*†ÿÿË߾߼&b þù�ÿTÕÿ'&»s‡(f\…GÞç[U7î_‘_d —�/ØI!•žM†ÿô/b—¢¾I†ÿM-`�ùþd’¢ Mõ3ÌÌÌ/0p`X000ÌóÌÌ00G0/ `X00000G0p`X00000/ `X00000G0p`X00000/ `X00000U€À€þÀ€þ Àþþ€ þ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÀÿj@444444440@44444444 À†a¿ý©pÁÀ�À¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT37_farT37_far�çù¼Ã@§Ä�CDÙŠÃÀ¢ÄDPD�ÃÀ¢D§ù¼Ã�C@§DDيêP¢ õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ[òW9K—CÕÕî|ïúi:yt>í†y[aá)ÈÖ.(—ŸU0�a¬ŠÁeú/¨y+𤏯­ …`©ð‚öKÃøÅ íeODô&>KïÂ~k™ =ÿ0 HND< @ < @€ :PPHFBDHF"2@202,4r&8:202.:@"2@2.4,6p$8:4.20:ÿ œWDi´u› #t&$Sñ7º.…õ�™‘3n�°þ*z”‘=‘ ŒøB²õ üä8�ŸcÓ”&'txD]’¤$I¦5ŽLóÑÚáC—i¤ªõ÷§c‡g©ðdúöa6¶tðl^øù$3ðŒOX5!"öý$IÿåËÍ€kì’þˆŽæÐïŸLöÄ7]KÞÖÑ¡¼9º‚ÚßµéÉâZ,Šp~×¶Bö}S›´BRkûFØçÞÜXe2믥Ž¥E'‰ðË‚³¯Ÿ ÿÿÃt$Âs"Â5 \øþÚúçOÿõi ³pð´d‡œÿôÿ2!TDÿœ¦„+.oºÌaôa"üw#$U?ÿÌ}_^ ‡–¡¢ �’7ÒH`�’Ga ï?8‘’ü$�ÿ�’Kë#˜ _ %šRqŽœ¨.X 9Ë—OžD1ø‡ï*@À�]ܪ0„¡RýJòp ; 4ôª Nô÷`DôÈIJ1"QòùB2$KÿÜq�ÝCøh{œ{°â×e!‘KNQ—-ãQFÚØ:r‰JÀ‰ªMl¾¦c{bFæð’šËSíºËØ9:Ì^#¼RK ¿•„'ùð„eG¼ª R@c#©Ò0 "2Aa3""sB$1€*úJþ0wàž2Nz§èõ‚Z½t�—?C3¹°±  ˆÀ‘%ƒyˆç´„i 8z^öó�†xTÿî�) „/ÀJý À-BòûDR&-ÿ»¬’Þô£=ŽE••6up¡£"*‹)^©k½ÄЗ„�ƒÝ   ]#ZŸB-™(¥ VðÄàôÿl¡–‘”ÃÂI“D ÿ0 “’—þ@ÿŒC-d þþd„“”Cõ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ Àþþ€ þ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÀÿj@444444440@44444444 ÀA_7E ë2þ_å„ÁÀ¦Ã€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT39_farT39_far�Ã�ÌÃ@°Ä�C!£ÃÀ«ÄDPD�ÃÀ«D�ÌÃ�C@°D!£ÃyPq õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿC@Ú�PéT1ðã”~’„î#CcV:kkD£^31NäX ÛO6JG„«åÌB�…Z]°˜>ŒÁCý•w]Œ~a²oÓù 5Þo• Ÿ`Íñÿ<PZPLRRF ,  FTVL PPRR .<>& 2>F@@48B*>L8>:<<&2>F@>66DÿÖñµ¥Whˆ -æ ßVDcº„i5¡xý�Câ¬fý—~{­0jÊj¼š+—?]‘ÀÇ *6û�Kh8ÃY‰¤�äÉËHÕ¾`·†�Í}Œ×ª"¦d6t4rVõ²Sc!i!�#Eúü'Chò»&3þî{pS öÿF5yÿŠZƒlBF¤tZt_©çrr�ǘ²½qæCVzÅ9+Ì S�&´ ¨¥öß*`EÿŠZg˜®¸ž¯™_«ñþR¥é"´b—B‹lŒgHà^“ªQ‹ÍÿÿÿíÇ‹ñ“çë‰Iëýùõ#!""ôcC£²]#ü(Öù†%}Û@XïÔ’ ÿÿØ@3/‹©U( ûÿÿ€ÍxŸò™’6ña×ÿÿÁÊ [®ÉÝ)»˜õ ö°c / OÀJò½b5ð5NøýF73{f•´×Åv¹/f&”ù€6ÿÿñ@ú�64ð:ÌÿÞÍ<>6BFBB<6F.BL:F>6H6>N@>6>D (FF>H<:D4@P>6<@Bÿ\¿‰Ù•¨$¨fiDI°>LWó¹¡�ÖÒ§[nzk>éHÓyìýæÈ|H@8jquüI5‹B½_WÅ¡.¯‚yC¯+7•ü¸6Q8f øï¦ âôR0˜ÿþ m% aARPøþQ#tøû@Sþú{ttdúÿAQ{ÿ[?–}tEø¸{¢ž�0Nòм[ù8Q×MXJ²w7a€Ë8ðìrë{ø½IßÓ׌¼9� ðC¶\ôGû$wñÞNÈqªh2C!T #àTv1…�TPÇ1`pá 2 0R`i0A�tÁq]\`PÝ(—›%Ím}S�ìÿÿØ`"AépN“]ÿÿÆôF÷‰©wˆQêÃñÿÿídÉN‹SÕ•zÛ”ÿìˆ## �ìÀNúý& 3ð/N÷ +  W iñ¢"rœ}eGãŠë5¿ïD @ûÿÿ:e±¡J&Æ�þÿVˆÖ'´ÿüiÍ{´´üƒVðäâPð@Z“ÿæ���“Jÿß&“ž—~ÿN% z ûÜ`—Põ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ Àþþ€ þ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÀÿj@444444440@44444444 ÀA_F'dýÿXç„ÁÀ¯Ã€¿IÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYCQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMKQKMGQKMS QWYGQSUKQSUKQSUKQSUKQSUKQSUKQSUT41_farT41_far�ÃÓlÌÃ@¹Ä�C)£¤ÃÀ´ÄDPD�ÃÀ´DÓlÌÃ�C@¹D)£¤ÃiPa õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿Æ¿_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀª_ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©ªÿÿÀ©ª©ª©ª©ªªÀªÿ •±¸ÂÅÆã¥gm¶¢êÙd¾ðOð Ç�v×»é MðÍörô4÷áÄ”2՞öÝ)_]R†¼«aS7‡l/Û”L´N'V ½ûØõ3ÎÜÝ(FD@H>ì³Îì>> .FF8@D><8@HD6D<8 0HD6@B>> 4BJ<>D@6ÿá.•ÇÚ¨ÑG>£¤¨½ÔÏÎ49Ƈæ™6[2P.ªÎHÑØ.§ÏI;F?‚5ÿþ§¶aG’^�Á¡Øþ"HÁäáÝËân(�fðï:77zš±ªf†Á!##ÿHôòCàk0òÈ1@€òùAòäy~Pcõ_$„{ÿa'ç쌖WÅ^›GÙ»ÓûL§aBŽ]eÃ.k;žs¾žé*·´¹kÞÎ8x@”„JC®•wB¬ÿ¾S~öfnwy9!Jáˆ[9NÙÅâªccd0R4"'‡A£1 C"‘A€•(!0D1´d:Ur]\¼¾ñißÇ„&ˆ1 ÿÿÏÏÞ�ÙÿàÿÿÆÈ<êèkge£šŠÿÿêÛ§+¤�ÝàGXÿHôòCÀ!L/ÀH ó^À1 Dó_#d3W�F ¥Ã@¹ÄØ<Ø�Ã@¹DëcÌÃ�C€»D>¥ÃP<H õ3ÌÌÌ 0000.0ÌóÌÌ00w ;///-///x 0000.000ƒ ;///-///õ3ÌÌÌÌóÌÌÅÆ¿«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«ÿÿÀ¬«¬«¬«¬«ª«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«¬«ÿÿÀ¬«¬«¬«¬«ªÿŠJ}'|^6T7A�´S8s?2Ü‘Û8$ƒÝ)Ÿl<¶»–¿Nlæ’æá}TfŠy$q; ‘8_ø3ò%q­‡õ3ìÌÌ 0HD6BBÌóÌí@< 4DJ<@F@6 2HD6BB@< 4DL:@F@6ÿÉ(×aà_jù5ë.m©róR·-ï ûÙn4[D åé#•-ݼ–žîÇÞ€fešeGIgÞj „€Q@ô”ða@ƒ0£`ðô” |Msß�6 �†a‚c L5Ëvbvˆ¯sCæ6¤eÿb �3³ÿÿÀ×δL­¦º‹ `’df€\¡ ã*8îÛ$fÿþÀs–3¯¤6é»ÿÿéešeGIgÞXô”ða@9ÀÜÀ@ sß7WúEÚC‚þЇ4Ìj° ŽˆÿÀ—2òç¯ÿÿ<¼–žîÇÞü€¯Vðs’Dÿ1 vuŒ‹ƒÀ’GÏø: LGõ3ÌÌÌ'(``L000ÌóÌÌ0.!('ˆ`L0000.!(``L0000.'ˆ`L0000.U€À€þÀ€þ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿ*@444444440@44444444 A_»Z™ÿÿŽâ„ÁÀ¸Ã€¿ÝÐ                          r}sugqkms mc ioqc ekm_ agi[ ]ceW Y_aS U[]O QWYT00_rockT00_rock@A ×£>ÀÀ�A®7@ðAl%l@AðÁ ×£>�AÀ@®7@{%s 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ?ð?�yz‚ûz‚ûzð?‚ûz‚ûzâÿÀ@f?ð?�yz‚ûz‚ûzð?‚ûz‚ûz8ÿÀêfÃåæ BÃÉÊ=ÃÃÎÍe?ð?? Ÿ@`Ÿ@`Ÿð?@`Ÿ@`Ÿ@ð`Ÿ@_‡—?00÷_P00€¿À`ßÏÀ¿Hƒÿ@UUr}}šà™``AØA€¿qÐ  "( "( "( "( "T06_rockT06_rockÀAÃõ^Â^ÃðA…ë9Â:Ãl%lÀA:CÃõ^ÂðA^C…ë9Â% 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀwT¼ûtvZ�µûtvI†vtv«°©tvv¼/v&ÿÀ§E¥¥iQ,kO.mK2sI8yEÿÀ<_`F7mŠuÈ7mÛ€çïüQ�ÏL]?ÀB 7_ƒ�$#<){Z1D{Z™YZËe2jü‹Hh²?ÀB3wZ��{|^›œ{Ú�×TSÌûå[;|³9V[?À8‹ ƒ�?ð?`_ @_ @_ð? @_ @_ ð@_ÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÀ1?@1?@1?@1?@1?ÍÀUUrê²åV¹`ÐA=À¿qÐ  "( "( "( "( " T07_groomed T07_groomedpÁ= ‚Â�èA ×_Â^à   ^ ^ pÁ^C= ‚¨A�C ×_Â(  Uõÿÿ30üÿ©«©©«©©ªª©ÿÌÌ?©ªª©«©©«©©«??ÌÌ©©«©©«©©«©???Ì©«©©«©©«©«©Ì???©«©©«©©«©©«ÌÌ??©©«©©«©©«©©«©«©ª©ª©ª©§ªª©©ªª©©ªª©©ªª©«©©«©©«©©«©©«©©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©©«©©«©«®ªª©ª©©«©ª©ª¬«©ª¬«©«©©«©©«©©«©©«©©«©©«©©«©©«©«©©«©©«©ÿÿÿÿ??*+*????????????V*+*+*+*????????????j*UU*?*????????UUUUüÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©ÀÿÌÌ©ª©ª©«©©« ©«© ©«© ©«© ©«© ©«©©üÀ«©©«©0 ©«© ©«© ©«©UUUUüÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÀÿÌÌS ? ? ? ? ?üÀ0 ? ? ?UUUõÿÀÀ†…†…†’††ÀÿÿÀçĆ…†…†…†çÀÀÿÿ†çĆ…†…†…†ÀÀÀÿç†çĆ…†ÿÀÀÀ…†…†ç†çÿÿÀÀĆ…†…†…†ç†ÀÿÌÌçĆ…†ç†ç† †ç†# †ç†# †ç†# †ç†# †ç†#†üÀ熈†�ˆ0 †#†çèaOÒàÞêBÑÓ!Aœ !AÓœD½AAN§œUUU•üÀÀÀÿÿÀTÀÀÿÿTÀÀÀÿTÿÀÀÀÿÿÀÀTÀÿÌÌT @ @ @ @ @üÀ0 @<þÝ) 3Á1 ±ƒõðFE¡èE<Þg;9ÃðFE°u9<ÿ­®3&à+�¼ëŒ™qÍ™…ôÁý|¡*D×öbþ{=ß—•¿³t<ÿ 0 4ïŒ '$WUUõµ¶‹Œ‹Ñà Œ‹/0<ÿÿ.-Œ‹Œ‹Œ‹Œ‹ÿÿŒ‹Œ‹Œ‹Œ‹ÿŒ‹Œ‹ÿŒ‹Œ‹ÿÿŒ‹Œ‹Œ‹Œ‹üÿüŒop§o¨pÑEçÃÌ‹/0.-Œ ‹Œ ü‹™ªãöj ‹Œ ‹Œ]ðÃü]¼µ*#Fj‹0<ÿŒñf™.l”lfÙÖ»�8�¥›pqèÍÙF~ˆXLj¬2Gãp€^“{¤€<ÿÿõûð"óDð. ð3ò@ôFò&!#t–•<ÿ!"¡Š£.Þg&Ü…kSD­®åæ9:T<ÿÿþ.6ùðWXL£X<‘HJÃðWXÛ’J  Ö‰ VŽå×Ü$GAVY CÐ’HΈŒî‘• � I ÈÏP¥€P _ÿÿÿ/?_Ð/?_Ð/0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `???Ìÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(Ð0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(è0o_ÿ//?_ÿ/0_?_Ð0_?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@UQU„LÇ‚‚ÇÇÈ‚‚~`````` ÿHHH@|||~‚‚‚‚~ Hÿ @||‚‚|~‚‚~UUUUüÀÀÿÿÿÿÿÿÿÀ?ÿÀÿÿÿÿÿÿÿÿÿÀÀ?ÿÿÿÿÿÿÿÿÿÿÀÀÀ?ÿÿÿÿÿÿÿÀÀÀÿÿÿÿÿÿÿ?ÿÀÀÿÿÿÿÿÿÿÿÿÀ?ÌÌÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿüÀÿÿÿÿÿ0 ÿÿÿÿ ÿÿÿÿ ÿÿÿÿUUUU ˜À€ÀæfÀ €Àæf À€Àæ fÀ€ÀæfÀ€ ÀæÈÈ            ¸€0      ÷ÿÿÿ©«©©«©©«©©«©©óüü«©©«©«§ª¬«©ª¬«©ª¬«©ª¬«©«©©«©©«©©«©©«©©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©©«©©«©«¬«¬«¬«¬ª©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©©«©©«¬¬«¬«¬ª©«©©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©©«©©«©«ÿÿÿÿ????V*?*?*?*????????????@,???????????????l?????????UUUU ©«© ü©«©©«©À0«© ©«© ©«© ©«© ©«©©30«©©«©©«©©«©©«©©«© Ì0©«©«©©«©©«©©«©UUUU ? ü?À0 ? ? ? ? 33????? Ì3????UUUÿüœœ²œœ +¥ÓNÊÏüšÅ²#†ç†††À0 ç†#øü<<� ¦8:Yà,Î�ÞPBMM™ ››\› ›SNAN��´ÔÒDP› ›7ìš +þPP… dˆ33††ç#††ç#††ÿçòMBBÅ� ÿüçÔ››�MÝÃç}Z†† Ì3’†††ˆ†l†ˆ†l†ˆ†l†ˆ†lUzUU| Ïü! @À0 @üü<<M G 5 †ò"ôDôBñ19jÒô"ôDÿ%5N0 ( 33@@«Fû+N+ÃF Ì3@@@@×?ÕR%}n.ñºÜc¨CÑoÏð½!Ë!ïðÁwJ¦VöÏ:–R±h´ËÿÓŠÀp{ª$‘74' ±VšjœÜÏ |æ‘-=sà�þ'Þ¯!g½€ß; 6×v‚�ÿÿš‡µ!Ì­¡iKÿÿ9:¼KË�†~o:p‡�_y%b�F3ÿ4Wü£V5•°§û Ïð*)Ïìüû4 !. *// <<?ØH=Ì“-[ž¹¿á0ÑËA–Mzúõ–Âÿ‹/0.^‹Œ ‹ÿûzŽ@Ú)ÿÿPO�9u²²h��LŠÛ»4†�‘®ž¤‚ÿ<ò4C/¼•*•©N�6+Ïð3 SÂb�ªð.ð5ô1äõ"73ó5ñÀñ. CÿU÷qû“û« ‡³#w8Q@Õ?U‡àÐåàÉæùQlBG’�dÔå sñD¢ BCØÝ~RÎÎ@C /0307> C(*DCÿÿÛ­êEbS×�>ÿÿIJLÏ…øqäÑlA?sü�H�'*WX?mºKÐ:+:%8/�œ  =0 Ó† M×6UDçA⹓�?Ðð5¬žì1$ ) •| 92ÕÿôÞ ïšæŸ ü=Ï "9Ïð-dA  H@H�<<@:8   J<VXF, NHVXB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2(24:<*$ *,24" E      EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  %#2468&(*, a     53B5HJDRT>0  F@NP6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&, U      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  Y $ & .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$ ) 97"9(*$24*  2,:<2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  5325864 >@.$  20 :<*   ., 68&   T07_powder T07_powder„Â= ‚Â�Ã�BìQ/Â^Ã�`�„Â^C= ‚Â�B�CìQ/»`³ uýÿÿ3ÌÌÌDC†BDBBDðüÿÖ“Õ¹npBmnmnàopß±moo±moo±ÿ333mooDBBDBBD3ÿÿBˆC†BDBBØ“oomo±omo±omo±omoo±mnÝoànÝoànÝoànÝoDBBDBBDBˆC†BDBBØ“oomo±omo±omo±omooànÝoànÝoAomooAomooDBBDBBDBBA†BBDBBØ“oomo±omo±omo±omo±opÝoo±pÝoo±pÝoo±pÝooDBBDBBDBDA†BBDBBØ“oomoiéêú3ÌÌÌ,èúUðee`ZfOfOvÿ3333ÿÿ.,fofofofdeĕĕÄp  .,ÿÿ€Fföföföf@õÄ•vÄöfOfdÿÿ,Fföföföfö\dõÆO\n ,ßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©qrª©«©ó<ÀÀ©ª©ª©«©©ª©ª©ª©ª©ª©ª©ªÿü©ª©«ãä©«©©«©ÿÀÀÀ©«©¬«©«ÀÀ©©ÿÀãä«©©«ÀÀ< ©©«¬«À©©0?«ãä©ð «©©«©À0¬«©« ©©ÿãä«©©ßUUUTSTSTSTSTSTST7Só<ÀÀSSTSTSTSTSTSTSÿÿTSTV9??ÿÀÀÀUÀÀVÿÀÀ9?ÀÀü ?À0?T7ü ?À0S VÿÀ9?ÿÿÿÿc=Ä®>ó÷BåÉ— 7Îù’”Ò”×À3ï=ïÐï>øïÊ€7Gï�oþÐM Dïˆ×ÁõH�q/!ù¨„,GOÝö�>jUöYÃôäââ („ž)¦þ©dÝIi´%2ïÒñÒ|ï=¨¿›yÛ60{_ðü¹˜“±�±Q•”=`ÁòÑËÕâßßÚV®P җʘ±÷�5`¹±Ò$õqd̆ã^ñ‹ )¬ÒýT%|V}$žÒ¡…rãÔà&4(Èßâ݈„Ü{ºþky{G-P2P|ï=¨Có#y�t9{Ñ€=¹í&¾mÜV?¤bÜÒ„džó)j‚{�¡¡Ý:ìÌëëêú-#,)#%%%'+™yÿªi *wrE’g$ZH<8:!@!B!>#?$E!) ·<—•:•y�Fð(ðH$ >( G ?ÿùÙ¹÷Qi0!)I0G1ù jñŠ÷&Ï’Œÿÿ>$ O;!)  ¹õ00÷ŒðHï$!% 8  A7!+  ÿÿÿÿ²RôÉœÌý´~1¼ÎJ‡*ÊI‘˜]qÍðk9 ®¤BåI‘Uºøêvók ¬KÍî?œ“ ÂÈ‘ ¡ñ�N†¶ �"‰ÿ©ç�Ñ›u{|ñv„~¿e‚Óñûr.öoãq Ÿ}”64¼¿4¡ÂNµTÙ®#—ëS|衎på £°üÉÉÎÎ Ð 5Ù”bDÎ’ †´Ò¦:°—‹ïöNqüÒ¦çyëWëgc¯!\£j‹ºîëíÍg¥Eà6¹&¬¨èü%'öcç@œg›~¼ä�ܯ×E_…z�øI�¶ížâ2´¯ÝÛÍØ×:ˆîfmµ B�µ“ac)$·QþVXwæ\ª®®«ÒP�€b/PÅñ46#ÒÏÿ]_%ûTŠJ ( .. Vùöûøûøÿ>¢S$ñHFÂ_ûÿù*,*   ûõÿŸýn‚!46S$ðHÄ1D ( & $µoùöÿŸ�22÷úÿ^È2O0BjÄ�ÿ³ÿÿÿÿ·š„½�š&ÏõÂÏy2}2ˉo=¶èîP=·FæÙ¯õ€çwëÊÓ!Dfdœ¸qDiˆÙÎE jå` &úY»ê(³ èCI^šSåЯ JÙ€‘1ɺk–̽ñ÷0ÏÍ$Z%lÞ%¢­Z¿¹CMZ= ŠÆýaî i©iidšt (a²+h82 bøbw"## s¢s¢s„“"„0R¢â2 2 !4“¢“ñ5?qD @ÁEH ŽŽ„ 'SòwISô—B(”T�àöùz¾2 0AAñ=L)&Š×Q¡ÕQmmÑ´rßE“�šbæñn† ä??ßVkÿ™¿ É–ž§ßê6im&`Û1Ì5þ˜yUÔ÷ƒâ/,%¸E½�0@Ýø‹‹œ²fÒ„Ò¢Ô‚ÿøÿ¯{îw í¥V:“T¶#…akÿÀdõƒÐÁu# 36‚øbø€ØÙwï¶²è�˜àN᎓Dõãc›ÕAc׉âk‰|ñ5ø`°¡d(+  "ý #s&vùøûúû !úÿ>ÂS$ð"!&ÿ # "ûõÿ¿ýn¢':>ÿÀ&oùøÿŸÏ86#ùúÿÈ%Ro8#&_oïÛŠ7Xõy‰ `Ã"Rê ‡›Ûe·2¦D…Ú{«X£Bô¼<<]#$?ó ˜S=ÒÓØÌre³áç¬"ªÖx‰Ðâú¸GæœÞ4ÿÿxš¼�bŽKo<`ÿ  ¾Õ�hÌž²ìáÛææÈøå§/¤ Ÿ¤8qåàI¶×M ÿYðXÿ Œß¬�€BDi L�–hÁ÷ Ö逻<¯Ð•ƒ³ÿ >•ñ+Mdvïრ¤0 tösNˆÂ"ô¦­6òZ^—— Òÿ� €rMHPï?ðxXgn1ô˜ ÿVŠÿ2c^ˆ 088:fd`Ï/Z ‰ˆ6 ÿÿÂf4 2`Hð/?úä1-XOR  2..ð™&I!ƒ+/?üïñÿÕTKP�Šuýÿÿ3ÌÌÌ/0_//?__ðüÿ_?€O0(·/0/0ÿ0GGGÿ333`@0000(3ÿÿo0_//?_?'//ˆ'//ˆ'//ˆ'///è0/0/0/0`@0000(o0_//?_?'//ˆ'//ˆ'//ˆ'///ÿ0/0__`@0000('(W///?_?'//ˆ'//ˆ'//ˆ'// 0G0G0G0`@0000(?(W///?_?'//QQUT0ÿ @ÿÿ Àÿ ÿ Àÿ ÿ€ÿTUUUð3ÿÿÿÿÿÿÿÃ<ÀÀÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿüÀÀÀÿÿÿÿÿÿÀÿÿÀÀÿÿÿÿÿÿÀÀü ÿÿÿÿÿÿÀÿÿÿÿü ÿÿÿÿÿÿÀ0ÿÿÿ ÿÿÀÿÿÿÿÿšVZUÀ¼¼¼¼¼¼s$$4²òÀ€ @ ËËËËËËËÌqBI ï€À€ ÀÀ $�@ @”0@À07 ¼   À   {À ÿ±omÞomÞom±opopopßmoo±moo±moo±mooDBBDBBD†A†BBDBBØ“oomÞomÞomÞomÞpopopopßmoo±moo±moo±mooDBBDBBDºökf¶o@44p:fOfOfOf.,øf¶kf¶o444:fOftUà 3«©©«©©000«©©À«ÿÀà ãä©«©©«©30©«©©00«©Uà 33?0000?ÀTÿðà 7?3300??00ÿ"Y÷Ó`¹rÜ=±Ðï=±=‚ëà‰ eK ÿT Dó0àGV:Ý`åÒï]Eæ%Ó¡cci=þ=„NÊ5=³{5÷ÊÓ²9nâUB¬‘dü¬‚RTRj„Vxcܧº513 jÿlïŒÿŽ')+. "-7-¿™Ÿ0QpŽÿ®// +  &""ÿÊ_§®¡¨ï¶AT3Ì)ÍÎBB2H�ÈbáG4i¸¾½Kœªx9-¹ÅºLpš¾«ép‹zÙ‡¢.Ï jÜ/Ò°}°üÃ0_Wƒ*l —t™•t7³ --q£ôO�?ݲi® ÿŸõÿQPgg ..*¤%0ñ!ªH¯Ïõý_Óÿ  $ ?÷?Ó¤%0ÿêy¾OHXšxP[ô$iz@ÆÆ¡Õ†0¶„@¹æÖÔ ©—/làPñõ-¿'�¯ù%›nHyÌF‹F~�¼hÔ`Ôr8ïp….µôsbË-B¦?ü]{Ĩë0¤~[Y a†™%UuUs<Ä  pxa¤#I£ISs4iöÏ"žÚMÂÜ ÿÿÿò=³åÍefØà8 ¤§€l׃?þÿÿÁŸN/ø§ÖiÙI�¯•ïÀš`4'󲆻îZo¡-2³¡Úwö%ÓÑ¿"n#Ÿ>õ ^ k Pg‰ 20,¼À .  & ?ù_u?Ä%P$Ù ÿÿðŠ—Á€÷Ø�5»Ò’Ô§V‰8<ÿÿ û¶ä÷¥¿pÒ†¸5 •˜Õvõb”'Ù%jçð/ÿù:K¥-.G@Màq  Õÿÿð(   ���Ãÿ)PIL # Á™���˜Hÿˆ'/X'/X'/X0GGG`@0000('(W///?_?'/X'/X'/X'/p0GGG`@0000(0ÿÀÿ0ÿUà 33ÿÿÿÿÿÿÿ0000ÿÿÿÿÀÿÿÃÿÿÿÿÿÿ00ÿÿÿ0ÿV@@ 00 0 À Þ°Â3"00 ! ÿÿfÿåápÂ]À¿†Ð            & $&(" "$*,& &(.0*,.0*0        .8                  )')     "*,&  .(682$  -+2468&(*, m                535    "*,&  .(682$  28&M,         535    "*,&  .(682$  I        535    &("  &$ .0*   M  "*,&  .(68.   60>@6(      -+-     "$  " *,& %979$& .0&  .(68.   60>@6(  T07_rockT07_rockÀAR¸{Â�ÃðA¤pZÂ^Ãl%lÀA^CR¸{ÂðA�C¤pZÂ%ù 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀìu(ìuì%ÅÆOMO12xvvëÄv%Å'?ùžžÅÃÅÿÀë(žœžD—=R¡7P�7F‹98u=ÿÀ*_'zƒJÈji’8y H´&MK100?ÿ>.ABSTST-21FEV[>ÀÀÀTWUðFEüÿ°u9MÉÏÿÿðè|ŠdzÝ‚™¬¥Ûú>[ö&äðð9:EF¯°?ÿ9:ÔÀµß¥ÿýúŒ°[Ž*óóÿëGË«ña¿¿ƒ+ðŠ]ÿFçèEÞÝdcHßAZDïxHn¨ºœîÞ4†r@ÈEFsçPUðüÿð ,G/>??? %'%N)"``îíîíîíîðóóÿî4 ±5ètïNºìð<< kô.-/¼‹?ÿ0.^Eo§à~‹ÚÙžjY›]¶ ÁÖjkÏp¼,çrZxw}M/ÏÏÏ0p‹)aç/PAó?ïð0' ;d==?  ;H??Mv7ÿÿ)l  CóóûNO8!2'ð šÿø– $&*!0/ PUøüû𽨳²GD???>",Mꔂ�Å›íìððIJWXÛÜ?ÿüÂB‘×Ë’ÿý�J37mÓWóóÛ÷�w´\ðÑÒ?ð(ÿ©�ô¿ÿ–•–jâÍsÿÿÛÀ�‹|ÎÑÛÜ WX‘ÞA0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 >8FH6( 68>@.( .068&  5        EC6E<>8FH6(  >8FH6(  >8FH2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  )'2)824:<*$ *,24" "$*, =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, Y   53B5HJDRT>0  F@NP6( :8 BD.$  53*502,:<*  535"$    53258:4BD2$  :4BD2$  :4BD2$  2468&,Y       1/>1DF@RT>,F@NP:, >< FH2(  &024.,   >0JL:  Y  "$     53.5460>@.   60>@.   60>@2$  U  &("  *$24*  2,:<2$  5325824:<*$ *,24" "$*, m     53"5(*$24&  .(68*  2,:<2$   T08_packed T08_packedÁ.““Ã�@R8�€‹Ã   VQVÁ€‹C.“Â�@“CR8�Â$Q õ3üÌÏâáâá9äâä©äü<ÿ3âää¬âáâá9äâä©äâääâæäã9áã9áã9áã9ääâä©äâä©äâä©äâääâáâáâáâÀäõ3üÌÏ8787r8:8©8ü<ÿ3:8:ª8787r8:8©8:8:8:87p77p77p77p:8:8©8:8©8:8©8:8:8787878À8U ÏÿüËÍeËÌËÌËÌËÍó3ÿeËÍfËÍeËÌËÌÿðÃËÌËÍeËÍËÍ 0ÀÀËÍhÍÀÀÌÌËÍhÍËÍU Ïÿü24e21212124ó3ÿe24f42e4343ÿðÃ4342e4242 0ÀÀ42—2ÀÀÌÌ42—242_�™�Ò�虚™š™š™BX™B®�ררררüÏÿרר×G•IJÞØÿÿJÞØJÞØJÞ?ÿGHGHGHGÀJk�˜�Ž�Ž�Ž� ÿßD40CCœ�²C@@÷ÿóýýþùÿÿþùþùþù?ÿýþýþýþýÀÿU?üŒŽ}§ñÎ?ÿûàÃx¢ÿÿ^ªàyz‰ÿÿÀz‰z‰ß• ¡ÿÿxª©ª©â±ÄÀ”U=o',ÿÿ("4ý21|IÿÿÀ1|I1|[|ÿÿJ43434IJ€„'lS b   :,eèßÄßãú~}~}ÿð~}~ˆúºL! N!"!"!"!+ò£™N7›°U&?ÿ1ïàÃ~¢òÿ yz‰ÿÿÀz‰z‰ß• ¡T=o'*ÿ}21|Iÿÿ€1|I1|[|?ü@Îöaá¢ÿׯªÞÿÿxª©ª©â±ÄÀ”+Äÿ)t4}ÿÿJ43434IJ€õ3üÌÏ_`_`¿Ÿÿ€ßŸü<ÿ3ÿ€`_`_`¿Ÿÿ€ßŸÿ€ÿ_?@Ÿ`@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿÿÿÿÿÀ UÌ‚|0‚~ý3 d‚‚~ý’IÇ‚‚ÇÇæf‚‚~U Ïÿüÿ€€€ó3ÿÿÿÿ€€ÿðÀÿ 0ÀÀÀÀÌÌU„°! ‚ À€€Èr@ò5-þOþðÀ‹Ã€¿\Ð   ".0&      ".0&   BHJTNP      n(Te&*TVXNTVXNTVX.(68*  2,:<.   60>@2$  5  2F�35 ;=+% +- 35# #% +-   T08_powder T08_powder�Â×#”“ÄB®VÂ�Ã<V<�Â�C×#”„B“C®VÂÓVË uýÿÿ3ÌÌÌDC†BDBBDð ÏÿÖ“omnmnmnm±ooàopßppßppߨÿ333ºoomBBDBBD3ÿÿÀBˆC†BDBBDÖ“Õ¹npBmnmnmnppßppßppß±mooDBBDBBDBˆC†BDBBØ“oomo±omo±omo±omoo±mnÝoànÝoànÝoànÝoDBBDBBDBˆC†BDBBØ“oomo±omo±omo±omooànÝoànÝoAomooAopÝooDBBDBBDBBA†BBDBBØ“oomo±omo±omo±omoiùºº3ÌÌÌ,è@`VVVö e£Z5¯pÿ333 3ÿÿÀ.,úUöVV_Z5|  .,öföföf@ö\I\I\I\p.,øfofofofd\I\Ovfdö\dÿÿÿ,FföföföfßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©ÏÌ0ꩪ©«©©ãq©ª©ª©ª©ª©ª©ªÿÿ©ª©«ãä©«©ð Ì qr©«©©00«©Àÿ©ãä«©©ÀÀÀ?«©©«©©ð000ª©«©©0«ÿÀ00ãä©«©©«0©©ª©À0«©ÿ©ãä«©©ÀÀÀ«©©ßUUUTSTSTSTSTSTST7SÏÌ0ÃS7TSTSTSTSTSTSÿÿTSTV9ðÌÏ ??00ÀÿÀV9?ÀÀÀÿ?ð000U0Tÿð007?0??À0ÿV9ÀÀÀÀ?ÿÿÿÿa†ãVÐuTC¯Ûñ‰II‰d6ˆvǶ?¶?¶ŒÉ¸‚4?»M!ÌÎÌf}â¼Ý8$Ë›É[~ à ca³lÆ 6 ®œóõ|A¸?¶váÁ¹rÀ†�¾wxvÈŸáÚ^ÞŸ�Ÿ\aÔž‹KMT´‡|q�züs4øAµÉG^v¶v¸?‚7¬»HUÊjÁÆuº]a!ã#ÞßÕÞF_Zš!ÚÞKKKÖ ¼>yöƒ¾{þº|¿\vŠÿ9wª¾†uO¶=y5î¸?B9 ‘�`^!  Ê ¹WZØ ËÊtvtEü¿:Ã?>ü�AÁCA?ëûºº!#%)- -1W™™ù‰p��$ðœ‘p+ÐO&<  D<:48>@-"A!#!3  ÿÊPp�ŸÐ.#  >$ ="C##!  ËqËq«Q÷™÷���&<" U9%%!m»¿•usqz¯¯’jùjÿÿÿ0"  ] 9'% ÷0ÿÿÿÿ—MÁ‹æ�Þô(GDn\†‚?ÐÐôe�hÝ 9˜]J»¤ž¸Æ�=ŸÜ¤ÿýëi—˜Ið7ëZRüPOEífüŸ2׌5]9÷.òíþ¶ò/•_ 87 ®âíÝM(jq[�âß§v‡Šœol׋Q�¡äSŸüÿM\*ÔèƒÁYR™XQe‚¿JU”)ˆoãà¢3éÌ•�VsÆ‹7»ŸITRð}þ ¿o]E2É/p‹Àç*é˜Åø²>ºÆ}�÷s¡k»*3Ù¬ýÓxÇ ?KxÜIé^/m‚¼îšFÛãÝ ’¾ ¾)7†• @çâ*£wTëb1¾ª©[ª 4T ÁïPòqg‰‡øV’�Hÿ!  ›?ÓL ÅõCCO¯J%öÏ÷ÿœ$ð !ˆ` ùH( . .  oŸo¿�¿�Î…2ç Dåoÿÿ  ( (ßS¯Ÿ¯$*[÷õoù(,ñGH# FÓýµûµû•ÿÿÿÿkN]¹¯‡À!ì^¼ÛÙט{cû”ë38V0vyÍïªÏ6vl1}>…J­kÔ̽3N²gé^×9ÁD×.â,Ï i±àè>ñ®}+4ë¢gí#�Ìmn‰ÒKs÷M°·øÈÊ3÷ñ$ yïän¥›õ»þ>L$ÆVÄÁßܫޗZ ‹Î‚Ö8Ÿ.áì û\PÆ’@>Á´Gœ@*÷rLª¹»ì�ŒÐ“xlçæƒõ™`EK.þËŸeçkSµØn)€‚ìâÊH¨KzÉï+bº´f©YZ` a"2Tø  Ä2#™6cƒ›Â Fa°GBRE�5ô01HÊÊB%8':'8Gx;KÐ�’''QÁ%2€]åHHHùvžžÿ3Xð@;>¥d‰n{1zc FF3D°r;œõpçý0Ñ£šÿÿ+fó …S«Š=ðÀÿ8Èㄼœ"p:’âA£šŸ 6ôwɹ¡ØøTň“ˆÐhÛVDã5ºÁu& ,õÿÿðaNB3l†}&A  OHMf+d ÿÿÿÌq»ÿn¡îW­á¶cÝ;,B2¿Ä½_ÄÿÁ˜LNVýX@–@v T  eúxÔ�Jÿ'& %“.ÿ  øÿ÷ÿœD"À,o¿�¿¯¿¯   !Ï¥0 *ÿÿ ! ! 2_ùõoû 4L,_ßÛúeO�yðEÒ‡Ó1 bIœ©Œ'>üC íÐ×ó^2ÃÀoK%&òƒ”þôb2žðØÎf�É,Nô鬫X£<𠘬è—ùï­ë–°Ù‘9sK y[!uψ|”~S�b™ð€ ¡)¡)Üü?ÿÓ_Õ¾P•€[ÒéŽ÷G¥Û§ªí©Ä÷Õ”ÿõÿÿ'ƒE`öþ6mLM64¿ÞiX-´¢þ$«‡›(É�Ìdä'ëŠgüô]Ÿ Z™×Õ/ò4T ñåUT¯Qòòÿÿë%�€f˜?Ç,  ï?ù‡…v ov3 ð Š`-ÿ-\288��™™3ç(U^u„ƒ€4 0ÿô™˜ ,ÿÿu,URed]j0 * $ uýÿÿ3ÌÌÌ'(W///?_ð Ïÿ?'('('('(?('@'@'@@ÿ333'`@00003ÿÿÀ('(W///?_?@'_'('('('@'@'@o0(``@0000('(W///??HHHW0/X?/X?/X?/X``@0000('(W///??HHH'/X?/XŸ00(Ÿ0/`(``@0000(?////??HHHQU@ÀÿÿÿÀÿÀÿ0ÿÿ€ ÿUEUóüÌ€Ì0À€ÿÌÏ 00ÿÀÀÀÀÿ0000?ð000?€À0ÿÀÀÀÀ–VUU`VVVVVVÚ.hɈƒeeeeeeef`È  À"À€€âà 0Ȱ  9 "À€€ÿÞpÝoo±pÝoo±pÝoo±pÝooDBBDBBDBDA†BBDBBØ“oomo±omo±omo±omoAopoopÝoo±moo±moo±mooDÿðBBDBBD®õÆO\dõÆOt ,ÿÿøfofofofo@4ejÆOfOfOfOÿðU0 «©©À«ÿÀ0ãä©«©©0030«©©«©©«©UÀ0 ?ÀTÿð07?003<)?ÿœ?Âu¤?ûwf�{Fõd¿F÷›Ûß"�"ã ÷˜åÛ´±‹‰‰˜<€Aƒ¾~ú¾¾Ò¸¶áþDFµ{†µ[=ˆwäDƵ¡ÿð_bÝ[Ÿ]®ð&¯jðF¯ $"""" $e 7ÿÿÉ™¿11'%10 ðF¯(�F¯f¯ÿð" $$ "ÿá&d–V\)9Ø":ÿ;%/ÿ»ñ � UòeÔ%§Ö‚«X¶Óƒ¼Ìš uf/34Ê9K›XÍ_[aá¤†Ö ä£³TE‡xâX:̰�&ÿðòR’~ÖÕ«$"  oÓòrH„…'·_·?—?—0PeVý_»_»_¹t$�ÿjÇéZÖ'3¤é롈ÿãÞ•ÉbƒeŠpÈ„ÿ\Ù¾¦{•ÊD_–åšìiý¾~õÜúÓÓû¤èîöÍ äÃÂîÄô¤Ïd›ê@PŠÄ�ÿðéô­z˜…VQ%‚Q4äTØYÈ–313$@_®a$Ý\'u­WV�ÒÀiÝ÷ã„ k#Ú$p&1Š:?¥¦ü³ˆ6ÓyõŸ…CS<™+û�‰ÿðè0dô«ç‡ *(&ÿp„À .Pcvýß_Ý_Ýt$"$�uÍÁpHKðÿ*<ÅåõÅ\ÄE’Pö½7!”g>ÿ¿À«:ö‚É·c\\]¥„� H`ÿ*WP�ÿ÷)ÙŸÙcf[^ Ù?¹PHHIÿo/`(o/`(o/`(o/`(``@0000(?////??HHHÏ0/00/`(o0(o0(o0(`ÿð`@0000UÀÿÀÿ0ÿ QÀ0 ?ð0003<ÿUÀ ÀȰ  ,! ÿÿ} ÿ¼„€€Ã€¿AÐ             "$  &("        .4 B@                   "%(#%$ &(" "$*,& &(.0*=0                   %#%     "*,&  .(682$  -+2468&(*, Y         535    "*,&  .(682$  28&M,         535    "*,&  .(682$  M          535    "*,&  .(682$  I   "  *$24.   60>@6(  T08_rockT08_rock�AHa’“ÃÀA\€Â�Ãl%l�A�CHa’ÂÀA“C\€Â% 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ’ŠÉooo$� rrr0ÕËrRé\ýÿýڧϰëÿÀKšoýo4�;B‰;@ƒE.iUO[ÿÀ?À½ÿÿyJ0j^nÇmnÿüŸgšklÜÛÏϨvâ,Àë«@t4Tü<#&tÖ´ñÝóÿ3’Pk}w×~ÀÒÿÿwpŒ¥—ŠÞNt~ñ�ŒÁ0’±wÕ •¢©¨p“$Éœåê’Áÿÿ?ZÕú€£«º QBÿÃQ%x"èûüõ m¬äÞÏ˃ç“!´‘Ót4THL3‡Ž'$4+*gÀàN*q@"e8Q*$M\é$ÿ€)*eÿÿ?L,qD$g8Q$ƒ‹ðÏÃ*-*ýÿÿÿ3ÿüÌ/'//ˆ'//ˆ'//ˆ'////ÿ`_`_`_Ÿ Ÿÿ`@00Ÿ@0o@0o@0Ð/'//ˆ'//ˆ'//ˆ'////0/0/0/ÿŸÿ_Ÿÿ_Ÿÿ_Ÿÿ`@0o@0o@0o@0Ð/'//ˆ'//ˆ'//ˆ'////?p/?p/?p/?_ÿÿ_`ÿÿ_`ÿÿ_`ÿÿ_``@0o@0o@0o@0ÿ00//'//ˆ'//ˆ'//ˆ'////?p/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€€ÿ_`ÿ `ÿPQTTÀþ†ÀÿÀ!þ†Àÿaæþa†0ÿaH@Ì‚|}†‚‚€UUUU ÌÃÿ€€ü €ü Ì0?ó 0€€ÌÌÀÀÀÀÌÌà 0à 0ÌÌÀÀÀÀà 000000à 0à  0ü€ ÿü€€€ UUUU€ŽfhˆÈ€ æb ˆÀ€€È Â ˆÀ€€ à 0€   `f` ÿÿÿBDÇBBDBBD…BD…BD…BDÊC†AC†AC†ÇBDBBDBBÇDBBÇDBBÇDBBDBBDÇBBDÇBBDÇBBDBDBBÇDBBÇDBBÇDBBDBBDÇBBDÇBBDÇBBDBBDBÇBDBÇBDBÇBDBBDBÇBDBÇBDBÇBDBBDBBÇDBBÇDBBÇDBBDBBDÇBBDÇBBDÇBBDBDBBÇDBBÇDBBÇDBBDBBDÇBBDÇBBDÇBBDBBDBÇBDBÇBDBÇBDBÿÿÿA+++D,,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUUU 0é©«© 0ÀÀ©«©©«©©«©©«©©«©©«©©ÀÀÀÀ«©«©©«©©«©©«©©«©©«©UUU 0Ã? 0ÀÃ?????ÀÀÀÃ?????UUU 0ÃZY�tv 0ÃÃþ‚|w|þ‚|???YùRù›}ùƒ×�ƒ×ÃÃëâõ‡|þ‚|ÀÀÀÃwywy“ywy“ywy“ywy“ywy“ywyUUU 0Ã: 0ÀÃ@@33 ::ÃÃ@ÀÀÀÃBBBBBÅUÏÀl‘ÿm?ðTS¯É…¡ªE Q¦p¨@¨88o—óóðð•Ñìqyª%ƒ§¨¯ðôCAÏÀ ì¼$ 3qp` ÝUUÏÌ3ÃòI1û­ë[‘ˆmZYq*)û,+2. îqû€îu�“ûd[ETraç¢Ê$2óóÓóâQ•cˆ üøà¨î??3Õ˜iw€MóÚ €€€€€+¬•UUÏ €0"£ãá�A�ÀÒ ÛßóóððÇW[ÈkNÅxÙÚ À  4ÅUËÀÒ?ðmnLù®­V NÁT N‘¢]NGI’!€Lð£X…UÁ€ ‚�^p@!€ ÿÿÿ `ÿ ``@0o@0o@0o@0è///H'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@00èHHH'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@00ETaŒÿ‚‚‚‚~���€���ƒÿ‚‚‚‚~���€���€UUU 0à 0ÀÃÀÀÀÃUUU  ƒ€€ƒC¿êTÿœÁ€’À¿b Ð$&("    2$>@6 >8FH>0  F@NPF8  .8:<68:<*,.0 "$ ,.0*(  :,BD:$>< FH>4  B@ JL6,  %IGI$& .0&  .(68.   60>@6(  2824:<*$ *,24" "$*, 1        9 7&9,*( 24&  *( 24&  *( 24&  %979$& .0&  .(68.   60>@6(  2864 >@.$  20 :<*   ., 68&  -     )'2)864 >@.$  20 :<*   ., 68&  %     9 7*902,:<.   60>@.   60>@2$  )'2)864 >@.$  60BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  A   ., 682( :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  5        53*502,:<.   60>@2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)8:4BD2$  :4BD2$  :4BD2$  -      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$   T09_packed T09_packed(Á לÂÀœÃ�@R8�“à   ^|^(Á“C לÂ�@ÀœCR8�ÂW|O ÿËÌfËeÌfËeÌfËeÍËÍËÍËfËÍËfËÍËfËÍËÍËÍeËÍeËÍeËeÎfÌÎfÌÎfÌÎfÍËÍËfËÍËfËÍËfËÍËÍËÌËÌËÌËeËÌËÌËÌfËÍËfËÍËfËÍËfËÍð/ÿËÍÌfËÍËÍÿ21f2e1f2e1f2e424424™424™424™424242e42e42e4š3f13f13f13f4424™424™424™42424343434š212121f424™424™424™42ð?ÿ42ÿ1f4242UU ÿÀÀ�ž�ž���Ãÿÿ›v�ž�ž�ž���ÿð›v�ž�ž��Ã0à �›����0000%���3333%����›��0000'›��?ð'›���UU ÿÀÀ&%&%&((Ãÿÿ&›&%&%&%&((ÿð&›&%&%&(Ã0à (&((&(0000u(&(3333u(&((&((0000u&((?ðu&((&Û]V°U°·…Sª¯nSª¯ÿÿ‡‡‡�nV¯°ßÿÿ°ò] zúU�úU�]ÝUNÄU[ÆU[ÄSð000[99úçüçúå]ݰ›°›ð000°ë?ÿ;°¯Õ]3ØþþbaÆaÄ�aÄû�bt+7+t__¨_c˜_c˜_4cf-ad-ad-að000d„+++„a6a6a6a4+))p000†+++?ð„++++×]Y`Ðù_É­}p¤ICÿŽqÑÿÿÂížt)øB&==tŒò Ýn¿ŽJ¥vJ�rð�ÑC$+Dˆ¯sÙ2÷ÕÖÕðÖX?nÅXÕUüïÏ> Dk.=ÂüHšSTSðTŸ?AâŸÕYüÏÏHL}.P}.Pü}.PO-|M-~O-~O-À~CCA/ò/.`ÕüO3|G„�<ÿ? 7%pŠùp-w¦MÙá ?ÿüáð˰¯×¢µ5•H<ò>^410ÿ/ÿ`V`V1010ƒ?ÿüN0/0/0OP�ÿ/0o_ 0o_ 0o_ ?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿŸ@Ÿ`@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿÿÿÿÿŸ_`_`_`¿Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿðÿ€`¿Ÿÿ€UU@„„�3‚‚ ‚‚~a¹$’ÿAñññ‚‚‚ù™°‚~ÿñññ‚‚‚ð0‚~ý‚~UU ÿÀÀ€€Àÿÿ€€€ÿð€€Ã0à 000033330000?ðUUf€ƒ™š™  €0 2"0 8 ®œmÀØ@(Á€’À¿gÐ         *46820   B4NP>$ F@NP>0  F@NPB4  .8:<64  >8JL:(  >< FH6,  :8 BD2( A      E C&NÁs€r�/)79+  3-;=/!  71?A3%  4 23C°24:<*$ *,24" "$*, ^ljhnp55Q~3QSUKQSUKQSU#+-'  /)79/!  71?A7)  @h{2468&(*, >XRTZ8(^`(*,"(*,"(*,"*, T01_groomed T01_groomed@Á®/Á(ÂXA®G!¿ÀÀ   = =@ÁÀ@®/ÁXA(B®G!¿4 , ýÿÿÿ3ÌÏÿ<Y<Y<Y<YYYÑ<Y<Y<Y<YYYÑ<Y<Y<Y<YYYÑ<Y<Y<Y<YYYò<<YYYYYY¶ 0 À000P00 À00R00<à NNó4À0 @ @ 0@UUUUÀ³;<ðÀ<;´0ðð?³<;;ð¼,+ÃðüWXñ‘’5'(0ðððÏ5.>Ð�Åÿ ð&%&%vu'(<ð0&%'žuðÿÃ&%'('(&%vüðu'(&%ð0ÿÿ'žu&P´rOP ;u˜;u˜ÿÿñ±˜Q½¾„ÿWXü0 §,rš{ �rš{ ó�ršLÓ WUTU�€� 9ÃÀ0pðp%A Q@   °ýÿÿÿ3ÌÏÿ_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ `_`ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ ``_`_`@?@Ÿ_`ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@?@ŸÐ/0o_ÿ/0_?_Ð0_?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@0o@0UUUUÌ‚‚Áò‚‚~0ÿ|Á‚‚‚ø‚~0|ÿ‚‚‚Áø‚~0|ÿ‚‚Áø‚‚~0 ÿ�‚‚‚���‚~€ ˜þ @|‚||~‚‚‚~UUUU ÿü`_`_`_``0À?ÿ0à`_`_`_ð000``000 À00 000000 0 À000G00 À00G00<à / / ó À0 # # 0 # T ÿÿÀ;YÿÿÀ;YÀÀ«©ÀÀÀÀ`bdZ`bdZ`bdF@NP:,  B<JL6(  >8FH2$  FTNPVTZ\JTVXNTVX   ‘5aŠ?ace[ace[aceGAOQ;-  C=KM7)  ?9GI3%     gørt n…s€2   :4BD:,  B<JL6(  532B±s€r�;5CE3%  ;5CE3%  ;5CE3%  +5#%') $      !  8 6CgèJDRT>0  F@NP6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$    2 864 >@.$ 20 :<*   2,:<*    T09_powder T09_powder�Â)\§Â¥Ã„BHá~“Ã?Q?�“C)\§Â„B¥CHá~¬Q¤ õýÿÿ3ÌÌÌBA†BBDBBð ÌÿØ“oomÞomÞomÞom±opopopopßmoo±moo±moo±ÿ333mooDBBDBBD†A†BBDBBØ“oomÞomÞomÞomÞpopopopßmoo±moo±moo±mooDBBDBBD†A†BBDBBØ“oomÞomÞomÞomÞpopopopf“Õ¹pnöBBDBBD†A†BBDBBØ“oomÞomÞopoppopopopßmoo±moo±moo±mooDBBDBBD†A†BBDBBØ“oopopo©­ëº3ÌÌÌ,ø@``¶kf¶o@444:pfOfOÿ333.,kf¶kfóCCtC¦dödödö.,ÿ€Fkf¶kfóCCCöÚUt(.,€Fkf¶VózCCC¦dödö.,ÿÿÿ€FVV_WUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© 333©ª©«©©ªÿÿ©ª©ª©ª©«©©ª©ª©ª©ª©ª©ª©ªð?ð©«ãä©«©0ÃÌ©«©©«À ©©«©0©?ð0Ããä«©©«©©ÌÏð«©©ãäqr«ãÿ Àä©«©©«©ÌÀ ©«©©« 0©©?ðÌãä«©©«©_WUUTSTSTSTSTSTST7S 333SSÿÿSTSTSTSTSTSTSð?üTV9?0à Ì?Ì ?0V?ü0Ã9? ÌÏð?9:T7ÿà Ì??ÌÌ ? 0V?üÌ9?ÿÿÿÿ¨" \VõHâŒÑÚ›Õ© iAACAW¬@x‚Ñø'�Åg‘ÃzB@‚AÄA„AFÄgùu N2ß6÷f[¸sÜ(�3ˆp‡_èÿ>0š}á½QõW7“šš¶©[BY�ƒíMƒëOAÒ �ÁAăùƒùÃRªD7Ñ÷’Mu§+���xÁx`?þÛ"7“šš‘ýT@B@› AÒOAÒ AN6�÷ø·Å·Ã2hg@}D1! DË#S ÕÜÜû¯ÊƒCƒ84w¸Äú‚Ã÷ÃăBƒ? 6P©M3é¦Ñµë“jÆ%*eÈFÛ#ÌÔ² ‘ÚÜ€·u2vtRAÅ?øA«¯ëº5"59975/ä›™ùg‰Q$Q &(žŸh¯JÏ# <B'J+P'L#F!D)U"?#! qð��qø¬öÌøÌú %'# *,"O$?##ö™ñqð��qû²™4<*,"E"=!!#;™ñqqñ qq�úÌøÎø"++ + $(*$C"=ÿÿò››ð‘�#!' ÿÿÿÿ†ÜF%Ezšœ]½H-”Ÿ‚¥×kÚ¼YùãõýyˆäIr‘Oœ´ ¬¦FEÉÊ+àØ˜PÏ6Ó´Ý|tív�Ç;b’À#1$(™XV%0O!¥ÏÑ¥1!àÜiÅÆ£“¨}òòaîÿ Õ³B9©$ÖS®Û@k‡j5�0ýï¥Ò 9¥¿«Yêä�"s“rÔ <{6…¤ý-üYîŒ¡ŽØD”誛‡|y}õ…3¬Q2wÁíô.\!ô@aÁ`$íHÑ×hP¯`/{ÏÈÃÖ¬7ö÷Ey'ke²‡ÃY‚÷;Ïz®7n<¬ïÈk#ƒ£óÓ»˜MæÔ¸g{ªêºª$’ �AP…p’1éuÅ\% µJ�#$>�÷:SƒCøVV6ûPÿqÿ±ÿ±ðu(�# >$ðó#Cÿÿÿÿh·ë-ʾ9!1™ ¦ø‹¾\"^J.ÀPmä¸ÐŒ€§T0Ç®è8³f·°QJ§íùµrÁX†ót7m›œ©-4hçUÌ:…Ó°b½R«±nMY÷ŒR�Þ’Á ó<]#¥¡šJÃ’3¡ûCã´* 7üìN}ŽÓaVŒ¿9%9ß³i�KF3ÞwRÏ“ÃÃàkU�[hù�L(sç*~Ç�Ÿ*ºbâ}J“]Þ—fñ)Ⅎ¤ª�Jy>™™Õ¯8­Ü‡™9'-! +×·0Ûz‘¾Œœ–ß,íp¸‚bÃâ�‹³/ÂXxñIzöÒ�·ýQ™µ«›‡äWü×)1Y‚E(äVXX––¥U1ƒC!À I„„™›#!S334O€ a&oVU1Å1B¼ö ð a 442’`±0  †„‚H ‡u Èú<€Õ×u}ý �`a€<ÿÿL�—›=êéefVø²¤õG‡„ˆÎú/=µ¼O¯NÅúLVs« I®høÀ`Oõÿá ÒÄ®B¤¬ðœ5 ÜSf®a¾aBÿÿø°8ºyŠï6* 0@ñhQ—[Z`OÄåÔ�ÿÿ²ˆ(¥Â1oÃÀŠüŽŽ»µÔLÉA„Œ#$ÐgOá•Õîÿ©û¥¦™V:´Ø} Ö’)p…g‰¯ _Ý?û_ ûGG%ð(ÿ     2ñÕLo ÿþÓ-â·.¯ Xx6ÿrÿ±ÿ%$ÑÿÑðwJ�( _½þëØÌV~u׸UÄZÌ…ƒžß¢:ÅösÉð¿µóîìx‘ÿðÐuv…œùiMMo&`B�ž_¢‘v53ñ£S9£Pg†Dz�Ï ÿ1B1B˜%@(ÿñ÷éù"oí®`‹F6žüJ|7Jð8Øð#Ä!"  ¥Þ �†ƒ™½!XÎ.…÷öòr\ÜÄoþ‰AbQb3#b/ÿ¶`ËE ¢n�{CNgäûcD>¹©YiY–?ÌßÏVSNafQJÿ’Ò1ù_MPÿð   &`BGõ÷p1{,O`_•ÿo•d$$$�$;ó.UR?ð›ŸöùC8òfa’ BKÿ*WR�÷\UÏÿB`�$$$¿*Wòÿ/ðû¥gR[beNõýÿÿ3ÌÌÌ?////?ð Ìÿ?000ç0/0/0/0/`0(o0(o0(oÿ3330(``@0000(?////??000·/0/0/0/`0(o0(o0(o0(``@0000(?////??000·/0/0/0/° _H'/Ð`@0000(?////??00Ï/0/0/0/`0(o0(o0(o0(``@0000(?////??UQ0ÿ0@ÿ ÿ€0ÿ@ ÿÿ ÿ€0ÿ@TTUóÿÀ€ 30ÿÿ€€€ü0à ÌÌ ü0à ÌÀÿà ÌÌÌ  üÌVVUU`VVVVVVÚ.f€2 #™šeeeeeeð2,  €Œ02,  €�`"ÂŒ€Œ02,€ÿpoppopoomoo±moo±moo±pÝooDBBDBBD†A†BBDBBØ“oopopopopÝoo±pÝoo±pÝoo±pÝooDBBDBBDB¾VóCFfOfOz .,VVõÆO\dõ€  UÀÏ©«©©«©©«ÿ ãä©«©©Ì0 «©©«©¬À«UÌÏ?)TÿÌ7?ÌÀ0 ?SÀTÿ¶A#ú¶YBëCÞ�Ôý\º’ŒÅž6¥�Öþõl~’ô7Q$V¡424#424ƒ'MPÜ�iÏP_ƒ©îfƒ©ìµ}Ô¢ =î•À»¾°ð°ŸjÏhï"'' % , (($C =!!- " °�ðHÏŒñ"!! ! 2 $&($BÀ'ÿmnË%&nÖóþƒ;ªF#ÝO³o\jD•ùL-�åòGÇí§s%_Vßã�ž�ž�áâ”Ö{ô¶ÎõZ�u_#º¼è9ð׎ª‹z:A"ªCVV=û_ý_&&ý�õÄSO(B#$ ðóCCC–ÿ_o÷ö((ÿŸOùf3`*ÿ’lÚ“ò:ŽÆ7d4´¯é B�öôà�;9½GÙ©Ð¢ÉØ:t?ä€ëìëìëÎÍ5¹f½Vé½är¡­mÂÖ â †3 †›åsî)•Ž#SGSµ\‚[Ãæ21€301"ß÷ø¨§›P†-xÅZyggu<ÛA#ȉ¶&Wõ‹TýÃÀ-Ыð¡˜7µ>9�½fÄÊÕâD�"Ðß�»ŠV4?ÿ_ÿ.0ÿ¯÷ôU(o0$ºÿ�ûø24ÿŸoýˆ3€4šÿðVCTa¡ KP�'/¿ÿÿÃÀ‡•õ*Eÿôð+JÿS¡%~¦¥UÁ%2  eø  �&K*/ôÿ@ðõeSP[b%ÿd™&I’HÿÏ/0/000(o0(o0(o/`(``@0000(?////??Ÿ/`(o/`(o/`(o/`(``@0000(U ÿÿÀÿUÌÏÿÿÌÌÀ0 UŒ�"ÈÀ Àÿÿ AÿÙè�€’À¿DÐ            &("  &$ .0*   ., 682(  $&("    2$>@6 >8FH>0  F@NPF8  .8                 535     "$  " *,&  -IGI$& .0&  .(68.   60>@6(             )')     "$  " *,&  %9C  (&E8     )')    "$  &(" %$ & .0&  .(68.   60>@6(       %#%     %979"$   "*,"  *$24          Q      T09_rockT09_rock�A®¥Â¥ÃÀAHa’“ÃZ Z�A“C®¥ÂÀA¥CHa’¶ ® 6à=©ª«ª©€ø€ª«ª«6à=©ª«ª©€ø€ª«ª«㩪ª¬ârª¬ª8᫪¬ªärªª¬ârª¬ª7TzÎ7Tzxv=㛬dã›�‘@Íf‚ÓVigñ’ee9E9¡(KqYu"ea@1€0g#N7“©/lÿÿüãŠ\YÃÃù"SN„!0`ÆœF{N?�l,ÿÿü+FYœ°�Æ uN9ˆNu'N&'¿‘EŽÿÿüUliþÿ¿Da-€pðÆœð@`?ð?`_ @_ `ÀüÀ_ @_ @_ÿð€€€€€€€€?Ãü?€€€€€€€€€€€` 6áUUrÄôôî]l A€”À¿_Ð  "(  "( " T10_groomed T10_groomed´Á…k½Â·ÃpA)\§Â¥Ã    Ì ´Á¥C…k½ÂpA·C)\§ÂÌ ÿÿÿÿz|z�z|z�z|z�z|z|zz|�zz|�zz|�zz|z|zz�|zz�|zz�|zz|z|z�z|z�z|z�z|zz|z|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|zøz|z�z|z�z|z�z|z|zz|�zz|�zz|�zz|z|zz�|zz�|zz�|zz|z|z�z|z�z|z�z|zz|z|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|z|�{öy{öy{öy{ö|zz|�zz|�zz|�zz|z|{|{|{|¥|zÿÿÿÿ;;;===============*;;;===============>((((===ŽUUUUüÀÀ©ª©ª©«©Ãÿÿ©ª©ª©ª©ª©«©ÿÿ©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©ªÿÿ©ª©ª©ª©«©©ÿÿª©ª©ª©ª©«©ÀÀ©«©ÀÀ«©©«©©«©©«©©«©©«ð骩©«© 00©«©03©«©©UUUUüÀÀÃÿÿSÿÿSÿSÿSÿÿÿÿSÀÀÀÃ?????ðà 000?0330??UUUUüÃæ¥¦¥¦¦v0vÃÿÿ¦ò¦¥¦¥¦¥¦¦¦ÿÿãò¦¥¦¥¦¥¦¦ÿ¦ãò¦¥¦¥ÿ¦¥¦¦¦ãòÿÿ¦¥¦¥¦¥¦¦¦ãÿÿò¦¥¦¥¦¥¦¦¦ÀÀ㦦À榦¦¦¦¦ÃÃÿY«º¦Yúº¦¦Ã¦¦ð楦¦¤¦ 000¦¤¦0=ÿü¦¦áw唆’UUUUüÀÂÃÿÿTÿÿTÿTÿTÿÿÿÿTÀÀÀÃ@@Ãà #d#+dÃ@ðà 000@0?ßü@/ !@%TÁóóDC±Ç…¯ðôCÃ/0>óð!ʸ~˜—^]úù$Ãð#ÿü£¤#iÙùÈÛœpâ3´TÁÃó0 *) Ãð% !L,QD{.UUTÁóóKm:ÏóÚ €€€€€*)+¬Ãà3XóójÓ>Åbs¬duóÎ|ïAÃðBu�ûÔÓíÏ­ “]"%ãàZåUUTÁà óó''  ÃÀ  154/JTÁƒ�óÀxÆÅ€¤£HGçÃðè×cÃ忀Œò áÃOëü‘ŠPA)*Ãð1*ðð?ÿ %&5%2TÁóóWXLù®Lð£XÃIJ€óðHÇÅ¥“!"ab341Ãð2{p s‰1‚üé¿þ±2TAa! à óð/6;� `ù’6.iCJÿ÷ÿÿHHH'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€30üüÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@00èHHH'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@000ˆ////'//ˆ'//ˆ'//ˆ'////0/0/0/Ÿÿ PUTE3‚‚‚‚~ ��€ ��ƒÿ‚‚��‚‚~�€���€0ÿ8üUUUUüÀÀ€€Àÿÿ€€€ÿÿ€€€ÿ€€ÿ€ÿÿ€€€ÿÿ€€€ÀÀÀÃðÀ 0000330UUUU ˜€ƒ™š™š™š™š™š€€ƒ €0  20ÿÿÿ|zyöz|Žyöz|Ž|z|zz|z�z|z�z|z�z|z|�{öy{öy{öy{ö|zz|�zz|�zz|�zz|zR{ö|õz|{yö{yözz|z�z|z�z|z�z|z|�{öy{öyzõ|z|zz|�zz|�zz|�zz=|{|{|zz|z�z|z�z|z�z|z|ö|zõ|zõ|zyözzózzózzózz¸yô|z�yô|z�yô|zÿóÿ�yô|z|zyzyzÿÿÿQ*=*====>((((===º*'((===>(('===ö===*''()))á*=*=*ÿóÿ=*UUU À«©©ÀÀÀ«©©?à 0«©©«©«©ÀÀÀ©«©?à ©«©©«©000©«©ðà ©«©©«©©ÀÀÀ«©©30 «©©«© ó ©«©©«©3à «©©«© ©«À Ì©©«©UUU ÀÀÀÀÀ?ÿà 0?ÀÀÀÀ?ÿÀà ??0000??ðà ?ÀÀÀÃ??3< ? ó ?30à ?0 ?À<Ì?UUU7Ãðð¦áâ�Pæ“ÅÀÀÀÀ¤¦¦ÿà 0¤¦¦¦¦¦¦ÀÀÃæ¦º¹Àüóÿ]]—öO¦UV _ð000ü¦¦¦?ÿà ¦¦¦¦vu㦦ÃÏÏÏg |_ÝÁ_7˜Aÿü ½ã]ûü`â㦠ó ¦g㦦¦¦3?ÿ<¦.†R_´6_бàÿÃð�Û¦ ¦•–ü<Ï.�‚†¦¦.vUUU?Ãðð/"5ÀÀÀÀ@ÿà 0@ÀÀÃÃ@#$ÀüóÿD!FK0/Dð000E@?ðà @ÃÏÏÏ@:MFcFy4$ÿü ,ABE. ó @3;ÿ<@F] FeDWÿÃð4 &%.-"!ü<Ì@S×UKñIçp‹ê>›ÖÅpoÏÏÏÁÂe€�† •Ù$Ôí—"[´{öù§ž ´³ð±²?ðppß87Røà)Xºõd2“èͱÿü›Ãõ¬1�íÕÖ?ÿÿ×¼cak“µñWÉÿÃðU¦�ÀÔll¬èüÿª±ABoÛAÇU?óôüC$ (5`3+ÏÏÏ347@5R/#Ð.w\A.{L�0½Ž]ÿÃð#„àãäñðÿ‡ˆWX‘ÜAÁP?ðA  ÏÏÏ=>AJ3T7ýÀ ~Ch7)z1/~C`?ÿÿE)nI)~K1~/ðEvQ×Uóüô#*tu¢Ÿ-0‘’ÏÏÏ’‘ O‰ÚäÈ6ijMNÜbÂC(‹ŒðNM?ð‘�ÝIJ'3úÉÏbn/ÿüq%-@2$  5325824:<*$ *,24" "$*, M5   53>5DF@NP6(  >8FH2$  :4BD2$  28&, 5        5 3&5,.(68*  2,:<.   60>@2$  2468&(*, a        5 3&5,.(68*  2,:<.   60>@2$  2468&(*, =       53"5(*$24&  .(68.   60>@2$ E  535&("  *$24*  2,:<2$  2468&(*, 9    53"5(&$ .0"  &$ .0"  &$ .0*   !535    >@BD.,.068" "$*,  T10_packed T10_packedXÁ{”¼Â·ÃÀ@®Ç®Â«Ã   «¹«XÁ«C{”¼ÂÀ@·C®Ç®Â·¹¯ ÿÿ›œÆžœÆžœÆžœÆ����%���%���%���›ì�žÆ�ÅžÆ�ÅžÆ�ÅžÆ�����%���%���%���›�ž�ž�Æ�ž��žÄ›�'žÄ›�'�›�'�›�����%���%���%���›��Ã��Ã��Ã���›ž�ž�ž�žÄ�›�'�›�'�›�'�›�����%���%���%���›���%��ÿÿÀ�%���%���ÿÿ&%N'%N'%N'%N(&((u&((u&((u&((&Æ('N(M'N(M'N(M'N((&((u&((u&((u&((&('('(P&%&('P&(u'P&(u(&(u(&((&((u&((u&((u&((&((O((O((O((&(%&%&%&%N(&(u(&(u(&(u(&((&((u&((u&((u&((&((&u((ÿÿÀ&u((&u((&$UUU ü0à  ÿÿ    Ì _` _ 33 _ ^ <À} ÀÀÀÀ _ Àà 0 _ 3300 _ 0000 _ 0000 _ 00 UÕW ü0ÃÌËÌ*øGZÿÿÌËÌËÌËÌ*øGÿÃÃ×ÖÞÛefefeÃÀfef ÿü¼´³´³´o³ÿÃðð´³±²Ke²Kefðef¼´²š´²š´²š´²²‡´7²Ý´*²‘ff<<00‘fxÛ|00?ÿ+cд²²d²²ÿÿÀ´A²²²Æ²´²UÕW ü0Ã343205ÿÿ343434320ÿÃÃ;7fefefeÃÀfef ÿü+opopo§pÿÃððopnmÔemÔefðef+omÞomÞomÞomo¦oZo:o6m�fyf<<00�hŸf„00?ÿ59XomoÇomÿÿÀoçomoëmomuUW<ÁÂ?Ñ•—LKF¿©vÎ¥†*Õ¬*ÕÏ<<¬*)  ;²??û 4Dk00ð('ððü<*)*)H<<!"ÿÿ?@Ÿ`@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€Ð/0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿÿÿ0/0//0_?_Ð0_?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ `ÿ0/0/0/0_/?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ ÏÏÀ`ÿ `ÿ `UUUBI$3‚‚‚0HH‚~ûH@||‚‚||™°‚‚~ý„„ÇÇ‚‚‚Çᆂ~0!ý!!ñ‚ññø‚‚‚~UUU ü0À€ÿÿ€€€Ì €  33€ ÀÀÀÀÀÀà 033000000000000UUUhƒ™šÈ 28€À€€Â "0  0  0  ;,äT(ÿÁ€ªÃ€¿´Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .82  ^dfpjlflrt   9E]–3']_aW]_aW]_a;5CE3%  ;5CE3%  ;5CE3%  P 3579'% ') /1 ! ')   D    7%   ?9GIC5  4 27OÀ>8FH2$  :4BD2$  :4BD2$  2nÁ 75 ?A/%  31 ;=+!  /- 79'      DBD%  '!/1'  /)79/!  71?A7)  4 23oÜ:4BD2$  :4BD2$  :4BD2$  )'2)8:4BD2$  :4BD2$  :4BD2$   T10_powder T10_powder�Â…k½Â·Ã„B…�¥Å6…�Â¥C…k½Â„B·C…�Â@68 õÿÿÿ3ÌÌÌBA†BBDBBð ÿÿØ“oopopopopopÝoo±pÝoo±pÝoo±pÝooDBBDBBDBDA†BBDBBØ“oopopopopÝoo±pÝoo±mooAomooDBBDBBDBDA†BBDBBØ“oopopopopomooAomooAomooAomooDBBDBBDBDA†BBDBBØ“oopopopopomooànÝoànÝoànÝoDBBDBBDBDA†BBDBBØ“oopopomÞomnÝoànÝoànÝoànÝoDB©ëº®3ÌÌÌ,ø@eeeoz`\\dõÆO\dðððð,øeeeo\€dõÆOfOfd,øeeeofzdöfOfdöf,ÿ€FVVVözfI\I\I\O,€FVVkfõ€Ä•ĕĕÄÿ_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©«©©ª3ÿ𠩪©ª©ª©«©ÿÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©«ÿÃ3ãä©«©©«© À©«©À©ÿÃ3<ãä«©©«©©ª©À0«©©0«?ðÌÏãä©«©©«©¬«©«©©ãÿ Ãä«©©«©© «©©_UUUTSTSTSTSTSTST7SS3ÿð ÿÿSTSTSTSTÿÿÀSTSTSTSTVÿó309?? ÀÀVÿó3<9?UÀ00T?üÌÏ7?SV9ÿÌà ?? ÿÿÿÿSôd¼º¼×Ñ¡@P„JÒAC C�C 7 9 ÔrCqÕ{‚{L{Sq¬1/qt1gV9ž?ë뺮' '' ' #!#™™û (* ŸŸŸhð  T#B<<B!@!:#:!]5+9™Ÿ hð&�$¯�h4&"_3)›Ÿ ²*hù$�’HÙ$2*"a7ð¹™ð���ù!("�oOo..$$$c 9¹™ð‘qñ FñDð&ð$ÿ.2ÿÿÿÿEd‚`߀ˆÞ/‰ìèO Fwûߢ®¯®¯�“øû½¥X -p£ÎÙè'MÔ¹Ò AñøÀÍ+2>`²Á�ž¬ñ Å ©Ž+)V}R‡mŸ›ÁF, &à `_=sôpyØ7‘lHÂàO$ ‰W�¹ºà.ÎãpiM¬æ"Ò…ŸD*õ#Ûƒ„PŒ) –#©gä‹T+[Qº£˜"†æØÅ…üÊ©Yµ ñ’#ÅÎ:úOÂvxóX®.fš—"{¡vl$*I9´Ðu‚Έ<¥ì¡ÙîÖˆÁõ¤ â+Ž´G½ý�J¶Øæ¿\dË5´·Ã| •Ó‡É'ƒMnŠà©ºªê͉Û ?0 ò4443ROO)/O÷ô((ÿoûC€4(`@ò2¨@¯46T5O(& ,  8DBôR!j>/¯VVV1[÷õŸYÙóŸ*((»ŠA2/E D†ðõee‡}oooߌ£‘E †Nð÷‡©‘– ÿÿÿÿ^ŠfèÀ_W©¼á§t>]bÒ'»¡u„,üÇ뙬&ÑoV; Ýù–ø^T>Ìd\Z>ÜRVÏ’ï´�ëbVÕL}‰mæ5>°Þ_ÅL9¹6™nm*÷‰ó‚pbó x\Ÿ¦h¬ÒgìFPñˆ^5p¨Ê�â2âEhaŠËL7M¯Œ‹JI‘Ö¾‹Úûÿ ·êÚÓR¡˜ŒçhEΘ÷GœÍŸõ*o9ºé50"¾@|Ý/7Q¬o/%ÁÏ`K«­ä÷å½÷ÍŸzÒ½Ä;:ýu7~,§öä+1àfMUìp7t mȺÚójàÜü£à¯ýäßú‘äÝœdˆ ¥eU™ oéø<� *0€3RT4"&Ø 0y™‚31¥œ'pp¥]WUÕãÇ(üžfiR³b5"3Ðæk¤@@"3Rõu]×ü 0œ!"¤ìšzé6ß¶$~8ùJù>ælÝŒQ̵L¸_üšé–ÿÿÀTÔ§ªéZsh— 9°?'&Œ?`Ú"ä?±°jõŒÆòdš‘æÿÁ�s{jwmÃÈ0ð)&ù›9§x¥~ZyHTºÆŸÌú3êÿÿð`…ÞOÞ×)óÔ·»¼c'*'8×]T÷(£°ÆxÕc…rÿÿ+.z´Ë>àËæa�˜ƒk\fÐGbérB¾áïÑB§¤µi×”oOK/oùö22ÿŸ�ûeÃ"40MÀÀ$? 2 .  6:bBð$ ûõß¿=ùó¿420ûŒCO(    ÿÛ  2  ¯mÛ~¿˜!'–cˆˆÐ.ó•êû!X ±QNMNK:Q€XRa €ÿ¿6i#5Á9ûd.ݦab@?‹ØKS 5 Qøÿÿ�Ôà2õö}1í]d,Î*J~}ûüs§Ð8€Xù„Ÿÿ ­­½nBÒ#û” xʺ’Š:Rr{ùa#@A#ÿnÞ”wz[ˆž Îäëý} Ý:üR²```YY–e:ÏÙÞSRSVÿ0 òWehPu\%a H €€îÿ*ST sÿ φXvr|5 HHî* ÿ¯jšš´{d5 H?þ,WTWZ¦ð÷…‡�`#˜’@ºO0ð&ÿù¯oö!```@õýÿÿ3ÌÌÌ?////?ð ÿÿ?Ï0/`(o/`(o/`(o/`(``@0ÌÌ?ÿ000(?////??Ÿ/`(o/`(o0(Ÿ00(``@0000(?////??Ï00(Ÿ00(Ÿ00(Ÿ00(``@0000(?////??Ï00(?/X?/X?/X``@0000(?////??0W/X?/X?/X?/X``EEQÿ€Àÿ0ÿÀÿ0ÿ0ÿ@ ÿ ÿ ÿTEQó303ÿð €€€?ó30 À?ó3 À0üÌÃÿÌà  –VUU`VVVVVVÚ. #!™ VVVVVVVV`Ȳ0€ÀȲ8 02,€Ž"È BDBBDBDA†BBDBBØ“oomÞomÞomÞomnÝoàoo±moo±mooDBÿðBDBBDBk,f¶kf¶o€\Idödödÿÿð «ãäü 0À©«©©«©©«© T7ÿ 0Ã??ºÉK…þÁ?ŒËæh 0.¨±py6?9ý>�7>ColA© .ÿð\%ôNÃQk$$&U ?™ŸqqO$Y$Yÿ0.ÿð$ Ù!`êýŸÅ5}j÷m(šZÆO"_ýàßâ°îõaEùv¨‰|äYM;$å­&zÿð51FµjìPòP!�T�“é>“ûUo_µõ•ó—òóÀ �ýň¡9‰Hƒ.´qeÓ+‡¸>ïÅM虯ƒK{tÌÜò¬ËBÚÿ(ôçŒ>c¸ÿ𥸭�ù:jDÑd TBT%BRA#AA”ôðuÿüœÝqͽ‡/† Œ‹(ïÓ|XÈ¥º üˆóœ,ÿð7çtŸ®¾eÿÌ 6o×õ·ó¹ò%óÐ _ Ó?1Âõ[ûcâlÜQÍ(¦hò¦CjþÜ``c4]$ŽÉÿ0[^ ``a$@0000(?////??000W/X?(o0(o0(``ÿð@0000(E€ ÿÿ€ÿ 0à ‹ƒ-õàúÿ6�€¤Ã€¿ŠÐ             "$      " &(   :D                  !!    ]                       E          I             "$ A           !!    "$ " *,&  =         T10_rockT10_rock�A…ë¼Â·ÃÀAš¥Â¥Ãl%l�A¥C…ë¼ÂÀA·Cš¥Â%ü 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀìxJ4¢4÷²²¢¢¢àã’�ï�Gy¼���ÞU¢ï¢PÿÀˆk4¢6 [Q&cU"]]U[UUÿÀ$[+¼ÇL½þýI087\dqRzÿÀN�"Cƒ>[ôó+¢Ñ\󫬼ßñ[ŽÿÀN]†H$9v“X:šæå@#W9âzyÔJg^>óÀZ<$#"C$#?ð?`_ @_ @_ð? @_ @_ ð@_ÿð€€€€€€€€€€€€€€€€€€€€À€€€===â***===*===(Ì**=()(==='''>(=(=(=(¤()()(Q(===UUUU ÌÏÿ©«©©ª©ª©ª©Ã3«©©ª©«3?ÿ𩩪©ª©ª©ª©«00<Ì©©ª©«©ÌÌÀ0©«©«©©000«©©Ã «©©« Ìé©«©©3ÀÀÀ«©©«©ÀÀÀ©«©©«ÀÀÀ©©«ÀÀ ©©«©0À0 ©«©« Ì©©«©ÀÀ0©«© ©«©UUUU ÌÏÿSÃ3S3?ÿðS00<ÌSÌÌð0?00 0?à ? ÌÃ?3ÀÀÀ)À?ðÀ??ÀÀÀÀ?ÀÀà ?0À0 ÌÌ?ÀÀÀ0? ?}]]u ÌÏÿ|~~| |{|µí"ŽÝå@ÒPæíåÒ! r ÷û|{|{|{|~00?ü~| |bbÌÌðð|~~|~ˆû…gä3²`åñÅååçÿü |ãä~OPˆ~| ÌÃ~ˆ~|~~?ÀÀÀ|bù|~~4íí°|xwmüüÀÀå%~XWˆ|ÀÀÏ ~~ˆ`~0À0 ~|~~ðÿÿ`_†ˆX ˆûçe±îí~\[~34ûçef è~~}]]u ÌÏÿF>1%:S6X7:O2A&7,00<ìFÌÌðð4,= /%: 8U:=ÿü 0/&%4 ÌÃ4;ÀÀÀ"j"HüüÀÀU:;0/4ÀÀà 40À0 ÿÿ<4M0?"3&% "3 4]]]}ÿÄ‹‹tYœAb©( ‘Wõ‹�ÿÿ<œÜÁ¢Y´`ì��?ÿ§"ÇÞݱoÀópÉÂýDº¢¨¶á‡“‹µŸúCßÿðÒ#Eb?QQQ==========''')()()(==>===(=(===;;ÿ;UUU0à ©«©©À0«©©?ð0«¬«¬«©©ÿð0«¬«¬«¬«©©000«©©000«©©Ã «©©«©«©À ©«©© ª©«©ÀÀ©«ÀÀÀ©©«À©UUU 0à ?À03?ð0??ÿð0?0000?0000?0à ??Ì ? ÀÀÀ?ÀÀÀÀ?ÀUUU 0à è~~|Àð~b`?ÿü0ˆòsò}~}~sÂE?ÿð0…~}~}~}~NE0000ˆ~~|0000ˆ~~|0à 3ˆ~~|b|~~ˆÃƒì<§ïE1›“Y< Ñ(|~87~ðÀÀÀˆ|~ÀÀÀÀ~ˆ|~À~UUU 0à 4À°?ÿø04 ?ÿð0@00004000040à 44ÃÃü,  <'< Ã,!"ðÀÀÀ 4ÀÀÀÀ4ÀUQDCÃðüDC±Ç…±Ç…?ð??´§DiÝ©w/9jðó(�hØ×>ü<<< =cdnm<ÿSTCöœùÏSwxñòÈÇEGª¤‰ÇãæÆ¿IõÿÃîIc?€u‰ÿ‡ð°'`Q¿\Rð|<$ HY_–ð_ð83ÿÃ)&+J1°0õQ Ï?€)**¹ÃðüK.K.©ø’787™�  Jn£78787”.‡@ü<<<L7RQêé<;<ó;8ÏWX£¤…†gîèÓåÝa_ƒQ£FQÿÃÊŒ³ê/0îçvðÁL¤Q H§Š4=$ 445#ø óóü|  Ij |à ð-LPQ?ð?ß•95Þj¸“–°{ü<·äP <ümnW¤KKL78Oóqpü< ’’ÜÿÃüâBõöÛû'jðî¨P?ðpüÿÃ;6 #$5R5ð2UQWXÃðüWXLû°Lû°?ð=#'H ILðól37ÞÝü<<</>¾½’‘L¹Ïn¤£dcAùóóðüÇpýŽCÒ� �š?ÃQDéêÂÈv…À†UQ� H <ða%<<<  � óóüH')$> 7�€ÿÿÿ0000(W0(W0(W0('// '// '// '////0/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(W0(W0(W0('//`(W/`(W/`(W///?_Ð/?_Ð/ÿŸÿ€ßŸÿ€ÿ `ÿ `€€ `€€ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(ÿo0(QU ÿ!!1ñ‚‚ø‚~ ÿ|‚~Á‚~}€ð ``}€`UUU 0à À03?ð0€€?ÿð0€€€000000000à Ì  €ÀÀÀÀÀÀÀÀUUU  2€ 9™€ 0 0 0€ŒÀ€€À€€tÛ ÿœÁ€¶Ã€¿äÐ$&("   *$68.  20 :<2(  :4BD:,  $&("    2$>@6 >8FH>0  F@NPF8  .8:<6468>@.( .068&  &(.0 %=;= "*,"  *$24*  2,:<2$   -     I G.I460>@*  2,:<.   60>@2$  !2!824:<*$ *,24" "$*, !535"$   "*,"  *$24 68:<*,.0 "$1       53258:4BD6(  >8FH2$  :4BD2$  2864 >@.$ 20 :<*  ., 68& Q      >D>@FH2, 24:<&  &(.0 5       53:5@B<JL:,  B<JL:,  B<JL2$  )'2)864 >@.$  20 :<*   ., 68&  I  >D>@FH2,   >4JL6 >8FH2$  (*,&$   6(BD2 :4BD2$  A& , .(682$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  E   53258:4BD2$  :4BD2468&$535$& .0  535"$  "$  53:5@B<JL:,  B<JL6(  >8FH2$  )'2)8:4BD2$  :4BD2$  :4BD2$   T11_packed T11_packedXÁ×£ÔÂÉÃ�@ W²Â·Ã   ðÎðXÁ·C×£ÔÂ�@ÉC W²Â Î  Ýÿß3ÿ32ª©ª©ª¬ªªªªªªªªª«©ªª¬ªÌ¿¿¿ªªªªªªªªªªª¬ªª¬ªª¬ªª¬ªª§«©ªª«©ªª«©ªªªªª¬ªªªªªªªªªªªª¬ªª¬ª©ª©ª¬©«ª¬©«ª¬©«ª¬©«ª¬ªªªªªªªªªªªª¬ª©ª©©ªª©©«©©«©©«¬ªªïïï𪪪ªªªªªªª¬©«¬ªªª§ª©«ª¬üÌË𪪬ªªªªªªýÿÿ3ÿ33*)*)**,**,**,**)V**,***}***}***}***,**S**S**S**V)V**)V**)V**,**,***}***}***}***,**S*)*)*¬+V*S+V*S+V*S+V*,***}***}***}***,*)*)Ö**))T))T))T,***}***}***}***,ÿ)T,***Ö,+V*SüÌÏð**,***}***UUU Ìÿÿ©«©©ª©ª©ª©«ÿ©©ª©ª©ÿÀÀÀª©ª©«©©ÿü0ꩪ©ª©«©©«À0 ©«© ©«©33©«©©«©©«3©©«©ðà ©«©«©000©«©©«À3ÿ¬ª«¬«¬«©ÿü©«¬«¬«¬«©WUU?ÿSÿÀÀÀÿü0ÃSÀ0  ? 33??3?ðà 0?000??À3ÿ,jÿü)×uUƯÇ3ÇÛ¯0ûüûüû/ÃÃðÿ�-ÍÅ¥ûüûÿÀÀÀüûüû±û¯Ø¯¯¯’ÇÇàÇÇàÇÇiðü?ÇH/Ç-ÇF/Ë ªý¯û&ÅÇÞÇ3ÇÇN€ýóóóÎͯÎͯ€^ýÿ¯¯%ÇÇðà 0û{¸ý(000?¸ý ljÀÿÿÝ$‰™Š™š™üÿü0a™š™š™µå˜°×uU,+-r@?ÃÃðÿ*?(?+VZÿÀÀÀHB++B+-D-+,ðü?-V?+V?+V?( D2+-D-++()*óóó'()*)*Dÿ2-+ðà 0F000?4ÀÿþY  ÿð ÕwUÏÿ" !«ÅJ�'róóüQjA'n_ -ÃÃÆÛV)*opIÝ'�!"Øá Ü­~Ÿ jy(n_'ro[„À<<<')*UV)*UÉóÖ§Øí¾§¶Õ(óóðÌó.¶ã ¨Ç)*ÿopIJ)õíÜ­8üv¸zððð?uvst»¼dEÀÿÏÇ ëÉÀüðÊq|Ÿ°µ)UuU?>6cóó|.6c.6c06ÃÃÃ& ý�<û:Éüß7Ï26c06c06c.À<<<62›+b5óóð+b5+b5+bÿ2!$/<Sððð0 6Àÿ5( /ðrPÀWßw]FE·C�¨]^]r‹"kJJ§¾]^]ÿÃÃÃ^]çþ12c®é9FE./Hk(þýrJ§JråZ¨ñÀ<<=]]^=_`}ðððÿ ïO ½€b~È’Àÿÿ¢ã:SÆPÏÐÏ.¦ÏÐÏõ'wZ™J1¥if?!óó<!!Ô      òr…p…|Ï3Ï!!!ð       õxVÿ"óóð" "" ššŸZ¿|� œ˜2/À÷ÿ'0)*)5ÿü`)*)('(CUwUÿŸÏF=™~óóüu¦ ™’�º»ÃÃÃoˆ‰Šƒ„‰ü<ó§Q{€~}xw~{tu’�˜™~{tuºÀ<<<™‰Š‡ˆ‰Š‡÷|{€|{v’øšóó𼪼tÐvj߉Šüƒ„‰Š‰õ´³<º¹ððð‹Œ‹ŒstÜ+. Àüð °DŽ÷‰ü·EU?DL{óó|0L{0L{2L{|ß7Ï2L{2L{2L{0ÀLóK-zKóóð-zK-zK-z<+,rrÀ7UvU($EóóüFALELKÃÃÃ’lýÑÒÐÏüü<óQ‡!<; OðVÿOð?BAFEBAJÀ<<ƒ@@@ÿ*)ÿ*)*)*>%&5<Mððð?*)*)J•–ÀÿI6! 7À ýÿÿ3ÿ33/0/0///?_Ð/?_Ð/?_Ð0_?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ Ï0_?_Ð0_?_Ð0_?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿÿÿÿÿ_0o_ 0o_ 0o_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿÿ ?_`@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€`@Ÿ_Ÿÿ€P/0o_ üÌÏð?__Ÿÿ€ßŸÿ€UUULÇÇÇ‚‚‚‚Èc~ý� H@|||‚‚‚~›‚~ý‚™‚‚‚~4$’Aûñññð‚‚‚‚~äý‚}@Ìp‚‚WUU€€€?€ÿÀÀÀ€€?ü0À€À0   333ðà 0000?À3ÿÿ€€ÿüÿ€€€UUUƒ™šæf€€æh‚€  "  €0 8Àx¾ðÌß@XÁ€¶Ã€¿úÐ   &24* 2,:<2$  :4BD 2<>@:8   J<VXF, NHVXF8  NHVXB4  .8:<64  >8JL:(  >< FH6,  :8 BD2(  a       EC:Zá  C=KM7)  ?9GI3%  ;5CE3%  4 23cÐ64 >@.$ .068&  &(.0 jprtrtIjt   5už3?u4ouou;5CE3%  ;5CE3%  ;5CE3%   3S¬24:<*$ *,24"$&(Fhfdjl^dfh       E5Y~'/Y[]SY[]SY[]/)79+  3-;=/!  71?A3%  @tƒ2468&(*,2XRTZX^`N4(Z\"(*,"(*,"(*,          ".0"  T11_powder T11_powder�Â…ÓÂÉÄB W¦Â·Ã–b–�·C…Ó„BÉC W¦Â b˜ uÿÿÿ3ÌÌÌBA†BBDBBð ÌÿØ“oomÞomÞomÞomnmoo±mooÿüÌÌppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomo±omopßppßppßppßDBBDBBDBDA†BBDBBØ“oomo±omo±omo±omooàooàooàooD×¹ppôBDBBDBDA†BBDBBØ“oomo±omo±omo±omopoopopopÝoom±oom±oom±oomBBDBBDBˆC†BDBBØ“oomo±omo±omo±o©ëºº3ÌÌÌ,ø@``¶kf¶o``@ödz5£Zððððð,f¶kfofoZ5£Z5¯ÿ€,Fföföföfô–Id–Oú€(,ÿ€Fföföföfö@44:zfofofofo.,FföföfößUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© 3ÿ0©ª©ª©ª©«©©ª©ª©ª©ª©ª©ÿüª©ª©ª©«ãäü 00©«©©«©Ã ©«©0?©ãä«ð ©©«©©0ë©©qr0«?ð ãä©«©©« 30©¬«©«©©«© ?©ãä«ð ©©«©©ßUUUTSTSTSTSTSTST7S 3ÿ0SSTSTSTSTSTÿüSTSTSTV9ÿ 00?0à ?0?V9ü ? 0Ã?0T?ü 7? 33S? ?V9ü ?ÿÿÿÿ:2kº‘œ¬éŠ8ÅBÏðïñ1/3*3mLCs„}sÀ}­K:m5§¼áÊ1è_GçˆE­ËIk«¯Ü1�'Ò¥`T#?rD‡2üI UBz·ç‘ñçÒÞÔ¤ ­_hsÓ 9¸é9DѦCmÅÐäÔDCq¤ üZg˜@||p˜jû`j9M09`‡ 9/ k/0m£¤kÝb­k§{C@½ª1MrS êFXqÒðîð�Á9 Ê·sÞVó­Wš­Km襭s1sDœ²—.(ö…q‚kÌã«óîGÚ×'Ñ,ŠgD ¬›Õ�RË^Þ€„Þ™‡¢Ä�ë뺺#"'- --+)B™™ù‰©q$0q Ëû;$*  \'V+P/D+<+B+L3T9-$I%#™Ÿq±MÐ/ÿ 2, #$E#!™ñQSò!²/Ô * N '$=!!ôY—õù *$¬ÿŒïŒïlï/-+.?/ w÷'0GPGÿÿÿÿ¢<VÏlÿÁhEb¿çúb@Zgx~�#Nܬ�ÑÒÖX“í^½2ÿsó\„©Ûcü‘‰…8ß÷f‡Û‡_3½—™øOœQsUUغ¿ 5ÈnhbÀÖ}tÍ·ÀGd'ÒI_4^Ø/ ãS“EÚÆR22Œüy›0ß›léAÊcºIÆÀåà œÊ‰[“ߟC=ŒjÛU]‹å¾[P f‡Ý³Ñ!=ÙýÙýùû((*ÿÿÿÿºÒyz²ÖhÚ�3òoYóÈ×\DLÈI“ÅC+‰ƒ‰µáí/‚×3Ø“j�“ù/TÊ_³Ó«õ$ ·w´ïêãˆjãØ©ø$¹z©Ùy% ÷¤€YÝ€�wØc ɲóõÍŠÅVÏ-qî2æÈšjü �ãˆ_6‘µÌI óðêü+�Y…ÁÖYl%eR¨l§Õ𠝩¥L¸o÷Ó7ó¥\i$½@- ª½i ‡ý¡Þè]B=a›ŽL Ę8†á<-h²êî2•´6Íç�¤÷ì÷€—oº Oˆaz{݆Þ[BT%B'B‘€Ú„³ÞbB”@t@t@a6a:`r %S !DB”B¶ïé’ C1$@5dDÖDÔdöÕu]]8,€a †?ÿLñ³ZœÐFÍç—]•xËæM“ý°éF?ÿü”§$Ùm‘†±:瘣GJ*M>ÿðB»2Èö †‘2ª¡>TLŸ±Âš˜ ÿÿý€8çîŠÇaTû M„„„ƒËÿ›"ykILfôâ»ôhM –Í7³^6’jÿülHSùâ‚ H¬¥¥ b,.Rôÿó·¨ú¯ð€ñã ”–vð* �¨ú�¦ÿ¬'çp &"" $.„1$²§§�) $ , .ÆC2ð&__ßÙýnåáäîú#•dú6lÐ^l69áÊIÁäÆa7±óðOºPÌw!$a¼çÆ/.+Ù‡ÓlŸÎÊ.æŒÌÁ—]¿<²&Ø`ÿQ32€?ÿÿ«%CE¤·ñ¥õàÐÏé›7úk¤(ˬ¤ƒâŸ‹JK%&'(+,A@ÿ€?ÿ \�>}³ž²ú §ã?gÅ??vè9•*ÿüI›;pºÚ³8+øÿ$ig6 àÿÿÙµu“‹ÉÜ´×—ÒøzÒ�(ùXȆŠ}¼i]fÕgíŸgd‹ôÿ‘ý_×ýSa�†@Ÿ�?3j[Za\ "  Ø`@€9Ÿþ2aXýøýöýöý $&ù†I GD.‚Ÿÿÿ !, 0ÿôI™* ù>&QZ]d :<@ uÿÿÿ3ÌÌÌ?////?ð Ìÿ?000‡0(o0(ÿüÌÌ'@'@``@0000(?////??00H'@'@'@'@``@0000(?////??HHH?(?(?(`?(¨@0000(?////??HHH?(0GGG`@0000('(W///??HHHQQT0ÿ ÿ0ÿ0@ÿ ÿ0ÿ@ ÿ€ @ÿTUEUóÿÀ€ ÿ0€€Ãÿ 000à ü  0Ãü  33ü –VUU`VVVVVVÚ.f€2f VVVVVVVV`0‹ 0€02, 02, # 2,ÿmoopopopomoom±oom±oom±oomBBDBBDBˆC†BDBBØ“oomo±omo±omo±omoopopopomoom±oom±oom±nÝomBBDBBðDBºf@óCCFf€ofofofoÿ.,Fföföföf@ô44ffö|föfõÆoÿÿðUðÌÀ«©©«©©000«©©Àÿ«ãä©«©ÀÀÀ©«©?ó< ©«©¬«©«©© «©UüÌð???000ÀÿT7ÀÀÀÀ?ÿó< ?S+ ÿûjókmkEs19391X¦+L4-ÉUAŸ�Éy°2c±ä�P.(�#èu)'aÛ¶� I@}{kË}]Õ�›ÒkmkKmkm8üﲚˆØv{Nœj­ˆd7ɾË@ðé­ºQù›ð��¿Š "ïjïJïjÏÿ)'',?- éQ‰Q©qùwù™ù ô¬ö(%Œô¬ðHÏÿÿ##&ð "ÿ•^¯¸+™�9:I´– ¶Bº©cne£F0‰7ïx¯Yˆ¶i†F¥ à.|)®æâϘ¶˜oùacŽÃŒÜj ²šfexÖHâ?Š¨Ç‰)”ŸÕgtCZk%ðê%êû0t64?ý?ý_ýÿ>„&((%ð@‚B 0  2 ,ð 3cCßÕÿ(õÿ×öÿ|‚#*.ÀÿI‚MûíñäÕÖ;ö—;Ýóñ ÷Eqú‹¦n¤LlHa@¨‹u�¼òðÑ<3ØEÖ�“nÊ@ ]—‰<µÒ~¥¦•6Ú¯î¢Ú¯í¿ÌùþYÌjøŒ/ªD&ðº&©ù11& P3$födòÎûOÀ™•Í 0a0€1@ð� ÿÿ[s넃hHåGèz$Ä®~aE^†ž/ÿÀÛ爻½B$R"4JI±²›÷1a�‡¥#÷×·„£¡�Ãør�𴶘XV_ÿ022 ¾À*cCÿõÿ2÷ÿ÷øÿž¢#46àù ÿ?&±LMƒr¥0£t‰¡T†›êÿìÍÈhºµê”§�Ê�®YdH%éðÿð5 5lä,¤ 5(’�àåý���™ ðó?¢7&M^ F #H W.0KÇ@$$&I�ÿGGG`@0000('(W///??HHHGGG0`@000ð0( ÿÀÿÀÿ€UüÌð000ÿÀÀÀÀÿ3< ÿ U,€° À"À€€ââÿÿ—¼ÿ�€¶Ã€¿›Ð            &("  &$ .0*   ., 682(          "0                  535     "$  & .0*  E                   -+-    "*,&  .(682$  1            ,*<     535    "*,&  .(682$  -  "*,&  .(68.   60>@6(      535    "*,&  .(682$  28&, %979 "*,"  *$24*  2,:<2$       535    "*,&  .(682$  2468&(*, -535"$   "*,"  *$24 T11_rockT11_rock�A WÑÂÉÃðAR8¼Â·ÃZ Z�A·C WÑÂðAÉCR8¼Â¯ § 0À=ª©ª«¬€ø€«ª«ª?ð?SÿÿT¬ÿ«SþÀüÀýTªýTªý㩪ª¬ârª¬ª8᫪¬ªärªª¬ârª¬ª7TzÎ7TzxÉøn»Ê¹Qãʹ¹¹ã-÷ªª×Ôî‹MMÇ•ò ºººk_(im( as]qQ?ÿ?*úíK*ÐH-ÿÿü[N¬2M>B9‰ ?ÿ? b�\ˆª ÿÿüå¦V$ PYH0@?ÿ?:ëõW7|\;ÿÿþ@l©;\�Ê‹>[Ÿ8‰ @@?ð?`_ @_€`ÀüÀ_ @_ @_ÿð€€€€€€€€?Ãü?€€€€€€€€€€€` 6á«*rèêƒãì\ A€¸Ã€¿_Ð  "(  "( " T01_powder T01_powder„®/Á(„B…ë)AÀÀt„ÂÀ@®/Á„B(B…ë)Ažt– õýÿÿ3ÌÌϹºŠ¹¹¹¹{=ÌÌÿ/---Š---Š---Š---Š-.[-/Œ.[-/Œ.[-/Œ.[-ó333/¹¹¹¹¹»¹`ºŠ¹¹¹¹{=/---Š---Š---Š---\.[-/Œ.[-/Œ.[-/Œ.[-/¹¹¹¹¹»¹`ºŠ¹¹¹¹{=/---Š---Š---Š---\.[-/Œ.[-/Œ.[-/Œ.[-/¹¹¹¹¹»¹+¹ºŒ»¹¹¹¹{=/---Š---Š---Š---\.[-/Œ.[-/Œ.[-/Œ.[-/¹¹¹¹¹»¹¹+ºŒ»¹¹¹¹©©ëê3ÌÌÏ.````öföföföÀ`.`õÆo\fõÆó333tÿÿÿèfo.fofofo\f4õÆo\fõÆot.fföföföfõÆo\fõÆ4 Fÿÿÿèfo.fofofo\f4õÆo\fõÆoF._WUU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©«ÀÀÌÿ©©ª©ª©ª©üÀª©«©©ª©ª©ª©ª©ª©ª©ª©«üãä©«©©«©À0 ©«© ?©ãä«ð ©©«©©À«©0 ©«üãä©«©©«©À0 ©«©À¬«©_WUUTSTSTSTSTST7SÀÀÌÿSüÀSTSTSTSTSTSTSTVÿ9??À0  ?V9ü ? À?0 Tÿ7??À0 ÀSTVÿÿÿÿi±KÜîK ‡GH%ž‚®rrrr­4®6¶4­6ã¦ìyáâìyã¨êwîz4w§6ÛrÓ®Oy3i%Oyqi�wq-TVm�ºvî7¹b�&ÎZ8ŠÂm¶Òµ„SIK‰~¦ìy¾¨êy¨êwjìy”yq+i§yo-Éúwq-->y3kTöìÈ!ò`“rHKýr×Ä´ööøE¨êw!¦ìy!¦ìy!äìy§wqi6yqi%ryqi�×yqã�Õr!z5¾y©e˜nó'ûtŒ¸ºº°âìy]äÙw×ß×yì£×y¥yqáæw­ÞèXy­ànÐy­fna›XVyFk&Ëß±[2Ðeë«ëê !     3C3#‡‡gàƒÃáñHÏŒð(> , .2640Wÿÿÿ{—S)!SqShðFoˆðFï2 $ c)#! Û÷00ñHÏlñH(#! # 0 $$Iÿÿÿ+½ßq-!%#SqSŠ(ðFÏŠðF¯!!!, $(T-}/%)ÿÿÿÿWä¤TþKVã&Õö\¾ŸäŠ$n`¡c‡Õžyͯ[Òo$|¡‘R@Ï©­œBù9z*£r*yÃëÍêDåLN ƒåþh–çNI˾¤P¸;Õ9M–Y<²¡æÐK̳ùi‘Ì1´�w¡É¢è 7æhŒÉìòÜ8¢xÆ)ŸK�ò^þ)(ª)F¹X!Q‘Ê…H�¬W>‘X_œ‘|’õ SŽÅù Ç’q³´’.qB¦sI/ð=I…OU(²[#¬°J]Ç×iö‘›#î+º(éŸ088°^n.–Òï*”8[`æqØÕb5·Góì^€K£â½ÅE–úª¾ºc£A!Ã`#tôòpÿ÷...  00 2¸DCC! B„mi¿?__ß]�u$öõOo´öÿV$ 1ò`d@&&& **o÷¦(FPˆ$aÿ_$ý_ý_Ý[o×$"&&&@1Að0hbDÿÿÿÿ Å ÁGî¸ç`*§4S6Cf/ãºU?ÆÚC ü�y†>Æúù ôÊ2veX+EÖéü£KÒ/ƵkÑÆf¼ñ�ˆc­A7˜÷¯_c‡ër€'R[Æ7>Ä�¹S¿MBÈ:nbãzÈ'Õù‹æú±\>#,o} õâÆ&y˜^ñ€ÃÍ]LÑ2e2p6=2efe"Î=ORep fy `·€EöljŽáyHµ“ú ؾR@¨Æ"Cª A¥›?#e�ŽP›N™ò^ÃAŒh~½eÐNR;š¥:�ªlþ·Ñ’ ëìO&tÉÊ–ªiªÄþþ¼œœ�݈èèêÄ2`b2mûéÉËËËo#�@O4Dd/%&#Æ‘GUòS2\P�$B–B´B”BS'1¢S;^nrCb'DD'B1‚3%1 "–‚#Õëùú|€èèèÿÿždŽñzaž†pü­Wºþ-ÌU6ÞtΉ¹Zliÿ8Sïüû;þTKÖ´ -í #6/ÿÿ+΋H©&ʉà†ñ]/Ý©g#Pÿüðÿ_œÑ]k ´b´b´bÖ-Ð-T éÐÐ4$Òtí߈ЭµF!W%·�Ä{T+à F+F+F+F/ÿÿ�w$ò© jଠí@¯`sL†}ÿã%äyŒ§åï ÐÒ±´{þ ! 2  4  4 Þ!#!,ÿ  (   Í, .  4  4 Ÿ¯ùª3/22ÿ  2 20 `Pcð4Ÿ½mo®m¢SV÷ëxÙÃɧµý~4f!.‡=µànCpÿÿÀPy r ÍAn�@0@3ßê0é%k¶˜¤C`ªmÀÝÐ5Nïk‰éoë®ïÏ¢ „¸K"wxÀOÿü�½_u[¿iÏßz,a¹Ñ—ƒÏAiƒÏ�{ÿò“á)�Ñ¢Ûÿ  rÁÕܼõm¨È?cr0�ZÏPIFMit |qA8  S¡'uéÁ ÿÿ ŠÔðœòŽUY]^ ÿ¦ÌLKX�ÿüÿ 8ÿÿÀ@88€H’!ð„(M�¿¯D-*ÿÿý-&-0 $ @€Oþð AD  2 2 2þI’d ™&(KLÿª(A)ÿŸE>00.d™&I� Ïÿ&EB[lõýÿÿ3ÌÌÏ/0_/?___?ÌÌÿ//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 0ó3330 ``@000/0_/?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@000/0_/?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@0000/0_//?___?//?_Ð/?_Ð/?_Ð/?_`_ 00Ÿ_ 00Ÿ_ 00Ÿ_ 00 ``@0000/0_//?__UUUU@@„„„À€ÿ� Hÿ ÿH€ ÿHHHL� Hÿ 0ÿ ÿH€Àÿ_WUUßàßàßàßàßàߟ``00à`_`_`_``ÀÀÌÿ00à`_`_`üÀ_``00àßàßàßàßàßàßàß°ÿo00 00 À0 00 ?`?ü G ÀG0 `ÿ?GGÀ0 À_`HU@ffd @€@™™˜€ÿ{=|M.0»---Š---Š--\--..[-/Œ--/^.[/^-/¹|M0.º¹¹¹»¹¹·¹ºŒ¹»¹¹¹{=-/--Œ/--Œ/--Œ/--/-.‰/^-/--/-Œ-/-Œ-/-Œ-/-¹¹¹¹»ü¹¹¹êjè¥?fofof¶o\föf:µÆ¶oØ5ÿÿ(.FoFoFoFfekfdoRdododoÿÿüUUÿü0ãä«©©qr«0ÀÀ©©«ÀÀð©©qrÀÿ«ãä©«À000©©«©ðÏ©«©©«©©«©¬«UUÿü009?0ÃÀ?ÀÀðÀÿT7ð000?3ðÏ?++STÿf½Ó—ÓÖ¿T¾P;.ñ1!;žµO;"‹ÄÚò5+ã;^*Ÿ¶­ (•m©×óXyúýGSŠS)ýÇòôx¹äTT%º„»§åg!Ï.ryrùÐñçm©“”ç<©½Û¹ïÇÄ? ë*aòÏ5à=ñW¥ÿýO÷‡êjÉÿÿüÄ116) °JòF&ð&ðOS¹ÿÿ*> &(* W%ÿ¹6•qP* ¿!�¿ŒÏ-Jï&Ïoÿÿ'$ "&ÿ*&lGÿØ�[5j“b7ÝjpÜ}ʶâ]•Då#_4O²kü Œ<¤[ÓMï q}‡W£Ê¤¶‚ž5;;™¨F GÎÆQÎ…s¿Å˜Ä?ÃpNîž {¨/8ßûQû�bíVµv‹QÃ/ŒöÂQ'›sè#ÿÑsÇ•ªjG,R Û_Õ_•ƒUOÙ÷û&ôÿõ÷0"`" 0BHB{ŸÝ¿ýý""vRŸ/wÝ_¿Ÿ}¶3**&ÿ 7@‚=¡1o5 ^‹ÊWºÎ{Xb‘Ñ Q ¤ÒG µÎ€/ÏWó¶ò²t»�·._‡ÚeJxp×”ØJqw%¿ÂÁÁ}¸ÀÜ ¯ŽC@w¢ßŒ‰™ö”o%×lœ`Õ:¸Ö¼úÊ V‰¥-óÿÑb‘å•jàO0$ $ HêùD"�fc"t5:6#?aB-F-$f-~wûŸÿSmŠª!H £ðxœŸñú«'š?*�¼o_Q¡¨¯W·ÿ†KÿÍBŠ$ !+ I&1$?ÿÿª0ÙÜ�âZ·™G ŒÜä¼9{ á0Í·yF×ÿß—ýÂ$  Bÿ_?€O0(·/?_Ð/?_Ð/?p/?_ 00Ÿ@00_?p0_00 _H'/Ð`@0000('(W///?_?'//ˆ'//ˆ'//ˆ'////00_0000(o0(o0(o0(``@00ü00(U!!‡ `ÿÿ0ÿ UYÿü00' /0ÃÀ /ÀÀð Àÿ0 ð000 #  ÏÀÏ # /0H €FÐîü  ÿ{íX À€¿Ð            ".0* 2,:<6(  >8FHB4       " &(   :D                ECE    "*,&  .(682$  ]                 535    "*,&  .(682$  I          535    "*,&  .(682$  I             "5(35$& .0*  6,:<6( :8 BD>4  I          $"42D    %#%     "*,&  .(682$  A?2A824:<*,A   "$  &("  *$   T12_groomed T12_groomed„Áš™éÂÛèA®ÇÑÂÉà   “T“„ÁÉCš™é¨AÛC®ÇѸT° ÿÿÿÿzyözõyözõyözõ|z|zyzy¥|{ö|z�{ö|z�z|zõyözz|z|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|zøz|z�z|z�z|zy{=yözõ|zy{öy{öz|z|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|z|�{|{>zyzyzz|z|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|z|Ëzyzyôyöz|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|z|Qyzyzyzyô|z|Ž|zÿÿÿÿ('('('�*=*='*======*;;ö*'((======>õ======Ë(*======·(=UUUU ÿÀÀ©ª©ª©«©Ãÿ0Ï©ª©ª©«©©ª©ÿÀ00ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«00 ©©«© 0 «©©«0ÀÀ©©«ÀÀÀ©©«Àÿ33©©«©©«¬«©0 ©«©© «©©üÌ«©©ª«©000©«©000©«©©«ó30©©«©©«UUUU ÿÀÀÃÿ<ÏS?ÿÀ00?ÿð0S0?ÿðS00  3 ?0ÀÀÀ?ÀÀÀÀ?Àÿ33)< ? ?üÌÀ?*?0000?000??ó300?}u]W ÿÀÃ:9:9:8:žcdþ°½ÌR`R:£j:9:9:¿||÷Í:”“?ÿð0å:9:9:9:8:0?ÿð:å:9:9:9:800 ÿ:::*):‹|3W|{’a|Y!\3'ÿÀÀÀ(:ab?:3ÀÀÀÀ:?:3:::ÿyzy.é:°uü vyo::: ­:::?3::m{…|%¹}~0000:8:«000?:8:«:8ÿÿð0::±¥ŽS/jï+¨}u]W ÿÀÃ!",  # @I 21?ÿð0P0?ÿðP00 ÿ65 @I@?1@BE,ÿÀÀÀ+@?<ÀÀÀÀ<(0?@?&9ü :?. <<.A@]@0000<000?<ÿÿð06G*= 3$t]EÏÏþm�ÆjЕ9L'(A C|ÿA!j1ÿÿ)|I+tÃy~&tEÏÏøã*Y�øÊç�ÂEñÇ$=k6Pÿ??FEˆ‡Ü×·Ðÿ'EÑé©Fd´�ôó9G‚ÖØÿRú(ÞÃÿû_¤aŒüÒìÐþýÿüžË‘€8<<< `_?ÿðß:²NÒ¶F“lTE„„�¾ü89u^ÿ??R.‹ b=#<8s$$“ÿÿV,…\?68ÿmN0}ƒÿV?8üÁÄIÿü€3 (/,SoJ<<<$#?ÿðH&- +#$Kÿÿÿÿ'(W/`(W/`(W/`////0/0O€€ `€€ `ÿ `ÿÿ_``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0('//ˆ'//ˆ'//00_ÿ_`ÿ `_Ÿÿ_Ÿÿ`@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(‡0/0@`_`_``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(`_`_À_ 00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(H_`_`_`_À@00Ÿ@0TUE<~~}€|}€0ÿ`þ ```ÿþUUUU ÿÀÀ€€Àÿ<Ï€€ÿÀ00€€ÿð0€€€0ÿð€€€00  3 0ÀÀÀÀÀÀÀÀÿ33ÿ€<  üÌÀÿ0000000?ó300UUUUf€ƒš †f€ 9™  9™  # À€€À€€J! , ,À 0 8¢0 ÿ|Ž|z|Ž|z|zz|z�z|z�z|z�z|z|zyz>|{öy{öy{öy{öz|z|Ž|z|Ž|z|Ž|z|zz|z�z|z�z|z�z|z|zyzÿyzyzÿ=====ó((((======ÿU000©©«000©©«©©Ã 0«©«©ÀÀÀ©«©ÀÀÀ ©«©©Ì«©U0000?00?0?à 0À?ÀÀÀÀ?ÀÀÀÌ?Ìu0000::ä¨00?3::ä¨::s“|Æ8|{:CD:“”«ÀÀÀÀ8::«ÀÀÀÌ8::«8Ì::u0000:00?3:V]@KBA65*):ÀÀÀÀ:ÀÀÀÌ:Ì47ë¼u`°ù=+Íýu‹4f%&S(,a4"Y@O500€0?€U)€\M¬B�Ø©Äõg aB%   ©£ŸÐÉFÿÿü”“) ÿð('cÆ0ÅÆïz²®–’”jý4€)*g6.uB(oR¹hÿ0Ÿ@00Ÿ@0000(o0(o0(o0(Ï Ÿÿ_Ÿÿ_Ÿÿ_Ÿÿ`@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(ÿU ```U000000?0à 0ÀÀÀÀÀÀÀÀÌÌU 0  8 ‚ À€€À€€ÈLí ÿ„Á€ÈÀ¿ Ð         *46820 24 >@.$.068&,     " &(    2<>@:8   J<VXB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  A     u          E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  *4"( =1  53nÁ  ')#  +%35+  3-;=3%  4 23SÀ:4BD2$  :4BD2$  :4BD2$  28&(*, 9535r… '   /)793%  ;5CE;-  4 23G´:4BD2$  :4BD2$  :4BD2$  2468&(*, )=;^Á  '!/1'  /)79/!  71?A7)  4 23K¸:4BD2$  :4BD2$  :4BD2$  2468&(*,"$ 1      9 7&rÙ  /)79+  3-;=/!  71?A3%  4 23gÔ:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T12_packed T12_packedpÁ�BèÂÛÃÀ@�ÂÑÂÉà   E0EpÁÉC�BèÂÀ@ÛC�ÂÑÂP0H ÿÿÿÿ’‘Û‘‘ÛJ’‘Û’G’‘Û’’”’’’J’’’J’’’J’’’’J’‘Û‘Û’’J‘Û’’J’’’J’’’”’’’J’’’J’’’J’’’’’‘’‘’J‘’‘‘’‘Û‘‘Û’’’’J’’’J’’’J’’’”’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’’”‘Û‘‘Û‘‘Û‘‘Û’’’’J’’’J’’’J’’’”’’’J’’’J’’’J’’’’’’’J’’’J’’Ü’’Ù‘Û‘‘Û‘‘Û‘’’’’’J’’’J’’’J’’’”’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’ÿÿÿÿ$#H##Hm&%J$‘$#J$$&$$$k$$$k$$$k$$$&’$#H#J$$m#J$$m&$$m&$$&$$$k$$$k$$$k$$$&$#$#$’#$##$#H##H$&$$m&$$m&$$m&$$&$$$k$$$k$$$k$$$&$$G$$G$$G$$$&#H##H##H##H$&$$m&$$m&$$m&$$&$$$k$$$k$$$k$$$&$$$k$$$k$$G$$J#H##H##H#$$&$$m&$$m&$$m&$$&$$$k$$$k$$$k$$$&$$G$$G$$G$$UUUU ü ©ª©«©©ÿÿÀª©ª©ª©ª©«ÀÀôÀ©©ª©©ÀÀ©«©ÀÀÀ©«©330é«©©«©© «©© «©©0ë©©« 0À©«©©«©©«©© 0ë©©«© ÀÀ©«©ÀÀÀ©«©À 0©«©©UUUU ü ÿÿÀSÀÀüÌ@?ÀÀÀÀÀÀ?ó30Ã? ? ? 0Ã? 0Ã??? 0à ÀÀÀ?ÀÀÀÀ?Àà 0?]]_× ü?Ï~}~ âmâážDC�û~}~}~eÂQ\ÃÃÏ?C¶DCˆCÃððð�âC�âáâáÃÃÃCCDCDCÁCDCCDCˆCÿCˆDáâáâáâá<<<CCCˆCCˆCCˆCCC°CˆCˆ“Cˆ“0¨ãßÃÃè÷á’áb\“ÿ\55\CCC”CCC|CC®CCîCˆ“2ÿðððCˆ“D¾á’á÷¨ðÃÃÃ÷ã|7\«\78CC¬CC8CC8CC]ž_× ü?ÏUDCV;"ÃÃÏ?CQDCˆCÃðððVCV@@@CCDCDC6CDCCDCˆCÿCˆD@@@CCCˆCCˆCCˆCCCrCˆ_CŠeCˆcCˆ¢-ÃÃÃ33\ÿCCC°CCC¬CChCCCˆcCˆcÿðððCˆcD¤33ðÃÃÃ3`CChCChCEjECÕu]WÿËæåJäÿ-wüÿÏxëê‰ÑXW£-rÏÏÈC‘=Ћ”wxëêuxëêusêusêÏÏÏ‹”‹”‹”‹À”ãýþlsêusêusê†'Àüüü]‹”‹”‹”üÚ:ìëÓŠ‰Ôzy“ "9a[óóð?:"žc9‚o¹Š0???Ò„ªî ÷¾þ¾F¤¨o Ê/"9ü<üü#$q ª�´YYüÏÏžc9î ÷Œ:ž)ÏÏÀüüüHMHMHMüF4íœ ó8Kóóð?4I4I4>AÿÿÿK8;8;84 0Íüüü4I4I4üÏÏI48;8;8ÏÀ;8*T}_h$‹hu“”;”l‡ÚÿÿÏøhghžÎ  É>ÏÀȘ<<ü;4žÌ §)*ü“ x)¨éêWôóØ#$S û¤ú(-Þ|VÖ€~ýðPg???¨È8Liž „�¶´Þ4# *GHŸvû¨¶ù|õüÏÏÔVÖLŒC«žRÏÏ<   N@Z\N4 VP^`J<  RLZ\B4  $ r¹sˆ 2   :4BD>0  Eqª77qsukqsukqsu?9GI3%  ;5CE3%  ;5CE3%  P 3579'% ') /1 ! ')        @ >+kÜ2,:<2$  :4BD.   60>@2$  532bÑ  ;5CE3%  ;5CE3%  ;5CE3%   39 75 ?A/%  31 ;=+!  /- 79'  (          4 2'4-  /)79+  3-;=/!  71?A3%  4 2349  ;5CE3%  ;5CE3%  ;5CE3%  ( &3(9  ;5CE3%  ;5CE3% 75 ?A/%  0        4 2#4)  +%35'  /)79+  3-;=3%  4 2349  ;5CE3%  ;5CE3%  ;5CE3%  0 .309 75 ?A/%  31 ;=+!  /- 79'  ,    424%  '!/1'  /)79/!  71?A7)  4 23kØ:4BD2$  :4BD2$  :4BD2$  )'2)824:<*$ *,24" "$*,  T12_powder T12_powder„š™éÂÛÃ�B=мÂÉÃy2y„ÂÉCš™éÂ�BÛC=Š¼Â«2£ õÿÿÿ3ÌÌÌBA†BBDBBÿÀ0غoomoopopÝoo±pÝoo±pÝoo±pÝooDBBDBBDBDA†BBDBBØ“oopopopopÝoo±mooAomooAomooDBBDBBDBDA†BBDBBØ“oopopopopomooAomooànÝoànÝoDBBDBBDBDA†BBDBBØ“oopopopomnÝoànÝoànÝoànÝoDBBDBBDBDA†BBDBBØ“oopopopomnÝoànÝoàoo±mooDBBDBBD©ëºî3ÌÌÌ,ùf`oz`\\dõÆO\dðððð,øeeeo\€dödöfOfd,øeeeofzdöfI\I\O,€FVVVõĆ•ĕĕÄÿÿ,eeefõÄ•€  _UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©«©©ª3ÿ𠩪©ª©ª©«©ÿÿ©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©«ÿÃ3ãä©«©©«© À©«©À©ÿÃ3<ãä«©©«©©ª©«©©«ãÿ Ìä©«©©«©ÀÀÀ©«©Àÿ©ãä«©Ã3 ©«©©« ©©_UUUTSTSTSTSTSTST7SS3ÿð ÿÿSTSTSTSTÿÿÀSTSTSTSTVÿó309?? ÀÀVÿó3<9?UT7ÿÌÌÀ??ÀÀÀÀÿV9ó3 ?? ÿ÷ÿÿèÆt°—!}FçºÞÆc@Û¡£9s99®ssss/®­sÿ篤Ñh^s]¡¹9ôèj9ºÒ®Ss»$Ýа�Ï0ǼӕT ñs˜g¡Fòó?óüÊ9Üss999iF–:v/$:-siO;¼9£Å­"~sÜ, E·EOtOèêHB„¹ €¹ºÒÑ 9ÝÆéÈsÝRÜ$éÿ0ó¯R èÿ£ÝuèèÜls9R7:öØ<~ÑöÑÏ®çþO¯!Eju[õ­sÏÐsô^Çh€~¤Šs¤EO¼­ÃÂ>:Ré°—^F-#]9€^è "¡-FsgQ ¬-®GÆÿëëúî% % #!?yy™Ÿ›™(* ŸŸŸŒð!!  V1L5R3L/J-P)L%>#_)#›™Ÿ  jðŠû&¯’J$&&]!%½™Ÿ+Ïÿø�!"hÙ¯��*  Q%  " - -'ð(ñFðFÿÿ, G!!  ŸÿÏo/P&ð" 0 ÿÿÿÿ‡?%¶¸zÙVC6c/¼•Þ%(� zbÐûÜlOdÊŽQf—@ èÐp�‘À—¨Ùâ…âꪀà~n v@¸/AD؃Ï,C�w3Ûÿ¹!v¢Æàd·Æ_%_–¸ Š"­ˆ’GçEô¢fK‰€pmAaþ+žv`Fkã«® ðpHQ†óÈÚ)¶jå§ÐØ‹òÂëE‚R"DÄž ŒpGžJ¦ð8ÉîïÜâmØ#Eõ×Ô z¼¸îå^Õ9°½Â‹øÓ5ɪhè ž+ûWÀsm#öŒCŠ_³iÔLêÐ.núk–ñ";HóBz°A¢DÁi. \ÙJ1ˆ•jfºéºca aFÁÐð ´�OC?o÷ø,*ÿÿÈ™, P0a`ðbL< Ï46T7�#*0 , ‚0Fð$bN8¸óïÿ1'5n ÷óŸŸ�Ÿ�²*C /"F$æ8% o3:-83>5P öùö÷ôý4@òBÏ:M1>->;JO%`ùÿŸ]ù`$ ÿÿÿÿˆm‘w¸è{æöUUT`Û�ë‰<+óC@©åœþV)á×·YõëøÛ(ñ¿Ékµ�ˆGxÝ(Ù1ô ¸�9‚<–�ÅýôQ§.@`Å:9"m²w·Ê ¶°ÌS½²qðQ×öø¥÷!*È!Hú%†eãŒ/`‡}QiÛc�[ˆÛ´Ÿ##þ|5ìÿ´”¿9¤FÑúé¸mâ—“µ‘ÿ±.YL��¦�·4]mŸ.ûƒ¡N4u¨ªñˆ6½0¾rñ ‚n™ñ†ápŒ1\$ä¸dÍK®Ö‹-­ù7uÑO\¯lvœ¤2ZÚfBª©>e¾—~(s�ÖR8¥iª¦ NäÀàð 8€1%ƒc!^æ­F:!!#0a0�,í%&T¸ÿÿÿ*�#f'0¡1?ù¥EÀ1 `0@0@10ª\'ô X1 @0A5 õyß÷_ÀÀð 1¿ºÜ×µ8q‰jÖa7_éMìšê…ÝplRÙ­›…ç€;<(ÿÿà™?Í|(�™‡¯D_$?+*Ôf÷"êÇhí÷’Õ{Ÿ ×ÿÿÁ/ÅL,b]îœßÄ 5`Žžm‰þL´uÄߊ‰q} ãßVS QÿÿŸIÔa#�< [#ëìèlE€þ¿�§þ«>!7R´sÏx»ÍBÿÅ£û–‰ÆJ³ 1šz ì~On„jvЋž%e9<ù”³§ÓmSúdd¶Ù¶ÔÏoC?¯ùú'46ÿÿÊ6P1£€ð(?4 : 8 Â05fð*3ÿÿ 1vûõ¿¿¯¿¯Ô6$$øK,M/21@;J?d úûøûøÿ62"" ÅÀ,!=N;NKLS)v "ûÿ¿_ù€"  &Ÿ®Û¾�Mhf¾ÐžI#€¶ïï-€Qzö��ãŒg²²K'›6  ’€Q 0@@ýùÿÿt'Õñe U.�úK(Qba†9œ›K:S :V2ÿÿ_ÿÕ�žÒóãdZÝÍø€Ñ*½¤ ‰ŠZÁ)¡)ƒá ÿÿ°öXëF 5ýê¸ø�RöFE˜�/ xxS& ÿµ±¹¾Ö.àúî£<émn"®µV`– VY•UAa afÃøøM-|C1v9-l)5F ¹õ·ó›ú"äZc‹ŸÏñx?H+ó®oZIzénäžÕ[1@ÿ•V¿ìqœêÓY4úÁfLÖë 9ðîj 9@�4b2E¡aaaq#À}ñ þ?Þý # 0êæâ‹UÖ›9î‹[¥Yâ.¦ÓTÎü3COÂ1¯½bPðL¨mð,E5|97r-5dAV "Ûóùó½üB oDËëùË%s<€H^açvÁ•`"b`Éø’b4444v €WB[^ �€ #¾óÈ` $#``d�€?(W///?_?'/X'/X'/X'/ˆGGG`@0000ð(0ÿ ÿü0Ã02, ®ñ«Üÿr„€ÈÀ¿~Ð           &("     " &(   :D                 % #%    ]                      E            E                 =                  "$  " *,&  9      T12_rockT12_rockÀAšéÂÛÃðA WÑÂÉÃl%lÀAÉCšéÂðAÛC WÑÂ% 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀXâË”„…sšØlssêà<áás¡õï°°°ÿÀ¦à°B®$AeCaM]UW YSÿÀ&aÃÿÿ‘’Ó+t"U�ÿÿðP ©’ÕP§ÿÀ"IqƒƒÃÿÿ12i¿û]¤ÿÏ]@á \2‰ŠÜÿÀM\�$€Ãÿÿ«¬ï#�ÔDeŒ!K.`@² €Á9\¹MNqûÀU;<1ƒ±ƒ€€?ð?`_ @_ @_ð? @_ @_ ð@_ÿð€€€€€€€€€€€€€€€€€€€€À€€€GÃ21::33:33þÿJ#!  Àÿ?\%  : : : ÌÌÌ:Ì :URä:þ³I J;mªÿÿÀ7! ”+Þaiÿ1eÙw½¾Š6Í~möÞ,ºß�ÏðY¡‡.ü4ÀÿÀ3e]Ø}L<ÿÀüV��€×iqÜ?•¦ÝÞ/0U¿ÿ?¤+;9ÿÿÀf%&Q:*]¿O"8#$]†Q*=`#"GÏð4I ÀïÀ- ÿÀ¬ (']uPú 4‰Ði·9æ¦�ýÿÀ\‰è·ÆNÇKÿÀÍý–]Ô12PfY— 9qxöq“Ïó|¨ûÖ�€€ÿ*)+¬+Àÿÿ,ÀM¸�ì@š™šQtÛœôµ¡š™šcÙ·?¤·GBAàßü+,*V € YiP46 DB¸z% Ô 4!”@=>=H! Ãð,+>=ÌÌ:UpSÃónmœ4Ï8ð”ËÃómn;¡Þôð!Ñv9;íâ Í!Dùªü[|UÒÙ}Lš LèÒ™ÃÃÃÿšùúÉ�ÅÿðÜïÀ‡ÙW?_žÃðTS¶Ðz÷ÞUPQÃð ƒãð³ÿÿ$%(E="ÿÿ7À!+ ÃÃÃÿ'(# (ÿðüI5.R( $OÃð,!Ež‰ž 9��ÿúÿ@+@.( .068&  &(.0  A       EC>EDF@NP>0  F@NP6(  >8FH2$  EC2E8:4BD2$  :4BD2$  :4BD2$  !2!824:<*$ *,24" "$*, %   "$"$   &24*"(*,&$  2(:<*  M2 8 :4BD>0  F@NP2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, %-+-$& .0&  .(68.   60>@6(  -+2-8:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, %979$& .0&  .(68.   60>@6(  53258:4BD2$ 64 >@.$  20 :<*   5 3.54   5 3"5(  "024., 53.5460>@6(  >8FH6(  >8FH2$  2824:<*$ *,24" "$*, %979$& .0&  .(68.   60>@6(  -+2-8 :4BD2$24:<*$ *,24" (    1/1535   "$  :@:<BD2, 24:<&  &(.0  T13_packed T13_packedXÁ…ýÂíÃ@A…káÂÛà    ¯ XÁÛC…ýÂ@AíC…káÂ� ¯ˆ  ý?3ó3?YY<Y<YYYï<Y<Y;<YYYÑ<;Y<33ÿ3Y;ï<�µ¼sþ Ž—ûü()B‡–S-ÛÀJpÂÎuU3?ð?( :I4?ÏðIRIRF ;8;8;8*üÿ­NEL??ó5"&69óó·ó!^u&À¼? #4M0)\91l6J". o$>}>(ÿÝ5FHºšá¡‘cdcÔVÖ€H6ýÂÄ×Mcdcv(‹ÞïLižF[Š#$]‡€j©ƒ^Þ5C??3ó4Õ-gòÖ®‚€?.GµfëfÜTØ8™5Ìü3Ók¢„ò`-‘Â-.-.-.-“Â-9…•ÏûÿÂ>_œ»þÐ’OÿÿÀÀ¬»¼»¼»¼»`O¬»(38}XZ<¶.�UÚ7v ?Ïñd  ? üÿ  È^ ÿ¿O^ +È3ó && ÏÿÂc$="2ÿÿÀ€U"!"!"!"2ÿÿU" UU?ð?á#§Üи@÷?ÏðÀ½ÀÁŒ‰²³¿ëõ*)$# üÿ&#¤¥),¢£??óÀ¥åg±-2ñ�ƒãFAìí°À`¯? %¡ÔVÞ–9¶{ûü()ü|M:@ÎùUU?ð?* L _B?Ïð_`_`üÿ_`a`??ðM06`ó8À?%-Ba8)d9/j}6HuU?p?=.=0?Ïð=>12=>%&È"_Y/ÏÃkê›MÑ—•üÿKL]^!"?<ó%.34è*îÑóóóÓº¦Òˆ©_õ=@/Àü0£Sø?Y`ððaaÄüüü‡ÝÐz È»pÂÎyU02 :A 4^SNSNSN,Øöƒ:óNSóóó�05 t�€¼1 =æ';ä>(ý73ó3?/0///?_Ð/?_Ð0_?_Ð0_?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿÿÐ0_?_Ð0_?_Ð/?_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ 0o_ ?__Ÿÿ€ßŸÿ€€30ÿ3ÿ `ÿ ``@0o@`ÿÿÿߟ `€ÌÌ??ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00UU! H3‚‚‚‚~!“�û!!ñ‚ññó‚‚‚~û@|Lÿ‚‚�‚�ÿ € m,ïþ€�€‚È``~�€UÕ ÿÿðÿ€€€0 ÿ€€ÿ€ÿ?À€000000?€ 33€€ÿ€€€ÿ€ÌÏÀÀÿ€ÿÿÀÀ€€€ÿó€€UU¹™ ™šš € 0  ;2 ™˜˜ †€æf€æ`¯ÁÌ8@XÁ€ÚÀ¿Ð     *," *$24  6@BD><   N@Z\J0 RLZ\F8  NHVXB4  .8:<64 68 BD2(24:<*,.0ZÝ        D B7?Àr�s€>8FH2$  :4BD2$  :4BD2$  !2468&&XRTZX^`NXZ\  ^44fh"468.468.468     ".0&   &(       (*,&$   6(BD6 >8FH2$  (*,&$  6(>@. 60>@.    T13_powder T13_powder„¸žÿÂíÃ�B¸žÒÂÛÃ^'^„ÂÛC¸žÿÂ�BíC¸žÒÂå'Ý uÿÿÿ3ÌÌÌBA†BBDBBð ÌÿØ“oomÞomÞomÞomnmoo±mooÿüÌÌppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBD©ë¾ë3ÌÌÌ,ø@``¶kf¶o``@ödz5£Zððððð,f¶kf¶o†Z5£Z5¯ÿÿ,Fkf¶kfõ£†   ,¶kf¶oZ5£†  ,ÿÿÿ€Fkf¶kfõ£Z5£† ,ßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© 3ÿ0©ª©ª©ª©«©©ª©ª©ª©ª©ª©ÿüª©ª©ª©«ãäü 0À©«©©«© 0À©«©ÿ©ãä«©© 0«©©« 0©©ÀÿÀ«ãä©«©Ã é«©©« 0©©?ð0ãä«©©«Ã0é©«©© «ßUUUTSTSTSTSTSTST7S 3ÿ0SSTSTSTSTSTÿüSTSTSTV9ÿ 0Ã?? 0ÀÿV9à 0Ã?? 0ÀÿðT7?à 0Ã? 0V?ü09?à 0Ã? Tÿÿÿÿ³¢�S³™û¥Êrypb~ûá=;=={=½Õõ[ëõ­™Ò¯!uewù±ŠwèTËçý�éÈáGFf:d¹k"Š¢€èÚÒ «^&}óQ ==É–¯#–­_–­%\­éŽ­RUss!ÊHæ,ƒ¥iIî¬â¦å¦ÒÏÙ!6'\éP"éŠéÆÞ%s! u! uYXs[7j\*Ú±á~¿j>7Ô-e-==;'SÞÇ‹éþ‹éÿ�é]s[’s•”u•”u•MÇç ±fëUž/b$Ã^CÔݱ±±üSÞþSÞþQÜÄÜ#s•’s•’s•’s•OQÅPpºò*í6á—tëë¾ë%)--//+›™ù‰ÿñ)"0S ©û;$* `'L#@%@'D)F'F%@%C3 ™Ÿ0SS ÑoÐOÿÿ4(59! ó0S1ðM   0$" -;# S13Ð+  , &$19ÿÿñù›óP!S1ðM°+ ,"  ;7!)%ÿÿÿÿ´è_PƒÓÙ­¹'O‚§¹¦‰'Z>Èý•ÍÞú‹¼U",€!“$I°)ïÐúê$CcÛ@³õU;ÁPa ÒŒ?Ñžc$\üJ�½®6TSX�Î ä05?Îw%  ¯¢ÿüEKóSŽ$œ§ž £òÎØLN52/ÎýÄ<àG’Ю)äÆâêD)FP¢#}—S;• `3+h&�×™�g Þø ê#9SCåîú•ä„�"†.çÍéçü0ýbòâ,õÁy_ÜBèØ¦‚صju,gmyT0©`£,ÇI\9ƒa/x‡ýõC]n]�V:2ئ‚ئ‚ئ²¤½D;¸-œˆÕ¡ß¹\$Ä­m«¦&O  9/ J4ÝÿqRÒÿó·¨ø�ðÁ€0H *{F �ˆø�ˆÿ¦!k¬ËF  �ˆÖ�ôD!"ðNio÷DÿŸùÿ�m†Økfÿ@D/B”ý/ÿ   ÿ÷ö¶kf¶oö"ñDDÿÿÿÿ¨·¼W»“‹Ê€ý ¯Œ”Œi s£€€2'º¶K‰$Õ°`Kèþ\Êàà©Æçv—7®Q[èIµí{)¤GûJ.φª�Ç"!—î2lâøM20|µŠ©8^?q”\EçŽZ…ß1M˜sûåÓ:~›‡¹`£hu~€r {¸ï8‰+®Jl �â’öx°´ÁVQ¦e?Ò‘?ÅâÞdþþ¢UY‰Ó  øÙ,"³ŠÔ#u¸ ošDêt¢’£½¯=ÌeÞwe¬Æž¯jöÚ¤yÍ4,Ç-ØþëHB2Ö $ ZO xI�_eÞweÞweÞ¿ÇóÆ&Iï…,ÈîÓí&õ¸ªZ¦™Q¥cCec2TaD!xKH´"va"2%t4 4s`""BT%BT!ºé-”+)BÑ „%Bv'b2’Kw 0 2bv%Bv!!2’ú9$@— D%BûæI$%2D1 fýyž{` tg?íÝ �…ž£nà'¸þÅúÒ“q’Æ™+¸òöª~ާUç¼ÿü?6òŸÓ÷Èx  BT'bv"úWý56á¬úZ „ñ“ÿáø>ë'b˜)‚ÿÿJZ+Vi÷�iÚå‘65œ‚Àcð.ò ˜)‚º/ÿÿÿ±«}QÐx¸Òð>ÒÕ&9ËÐ$Ì Vð +¢  -Òð>Òð>Òð€ÿÿüŽ×Ž®�ýÍË*¤e™bÿÏ)?>!"@0ôÿóÙ!Êú¯óñ€R]Œ* �ªúÏÊÿª!!k(ÿ  ¯ªú¯öF!"À& ¯Šø¯Šÿ@dO$ºø¯Šúÿ ¼(_Ýw]ÓÉší÷ípÕ_ÓÚHLY$ƒRH›!:?`F'2Õ ÜÿðODôYqü'*a¾ü5,ÿïÞñ>¹V$Z²—FêÀ-À[#€FÅŠ·ð7ú†oè7.áùd`îÉZòäc,Ú BÜrO!�‘G†ð€) ‘�«ë»#À: 4šê³Ü·ÿÿøaD²mŽh“j*¦†þH?7“žDð¸ªZ�+™eJØù鱡Èÿþaï(ÈvwB¾$/ÿ·ÞÁe|ÙU]WUÌÜïN[`]jü¯Éû}~"#"ÿðB "a�èÿ(SV]jyt((  †dã,Y`x .0†€ýðÿ.]^‡„ÿÿøa422†BH2,Þý/ÿ_hƒˆ0ÿþa22�$.ÿ-Zkuÿÿÿ3ÌÌÌ'(W///?_ð Ìÿ?'/X'/X'/X'/ˆGÿüÌÌ00`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///QUUU@0ÿ€ @ÿÿ€ÿÀÿ Àÿ0ÿ0ÿ ÿ ÿTUUóÿÀ€ ÿ0€€Ãÿ 0à 0Àÿà 0à 0?ðà 0à ü0à 0ÖVUU`VVVVVVÚ.f€2f VVVVVVVV`0‹ƒ€" Â ÀȰ€0€02,   BBØ“oomÞomÞomÞomopßppßppßppßDÿüBBDBBDBÿøf¶kf¶oZ5£Z5¯†ÿüü 0ãä©«©©«À 0À©©«©ÿ 07?à 0À?«�u—ëë±éŠçN"çP"é#uÏÎs•’s•’s•šÿüõÚ,1Þ¢/ÿk¹Ÿ1S0SÐM°/.ÿü"&$ÊÆ¼ç÷7£{ îåsXI Ä_c-x�7Øý&ئÀš¦�ÿü©R,ËVùO÷ÿ÷ÿ�kf¶k„¿ñìP߸o¿ÿqï�Þ™Cqrn+¾e¢;eÞëÞ3ÿüÒxUpõú±%ÒBT%BùºI‡<ô+`‚˜'bVL¹Ò“=Òðá ð×ÿüÚÝÛTÀa �jö¯Æÿ#ól:ýSmýaˆyO§=æ[^ÿcàM‘¨€\ .,ÿa0?_?'/X'/X'/X'/¸0000`ÿü@0000(@ÿ€ÿ 0à 0À ‹ƒ€ù_¾ÿ/î„€ÚÀ¿cÐ            &("  &$ .0*   ., 682(          "0                  535     "$  " *,&  E                   )')     "$  " *,&  1              )')     "$  " *,&  1              )')     "$  " *,&  1              )')     "$  " *,&  1         T13_rockT13_rockÀAìQÿÂíÃðA= èÂÛÃl%lÀAÛCìQÿÂðAíC= èÂü%ô 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ3¯¬®¬Õœ ¬¬<öt]<¬<ñ«s<:<�«s<<<`ÿÀ¤5<<5iS(eS"[USWSUÿÀ UÃÿÿÀ¿;BIP=ÿÃ2N±‡ˆÅÿÀ "Q&vbÃÿÿ :X]ÔDÿÃ]È-.cÿÀ "a Ãÿÿàߨq:SùÿÃ/Z<+™šÕÿÀ @]$2J?ð?`_ @_ @_ð? @_ @_ ð@_ÿð€€€€€€€€€€€€€€€€€€€€À€€€;&%8Ï?ó37 L33?<8>] 34E> 21 >E83333:>k.?0C ,;U2ÌÌÌÌ8!=,+8ÌÌü<8 >Y6I&7"Za>G8ÏÌÎÌ7('8ÌÌ< 8 ÿÏz###*Ta}Ý]×<ppßo0W*nÃB‚a¿ÝÀ "WœÐH''HG(”»k¿ÏÀÓÉbh8Àÿÿ7¥óŠòSAoCÕ~±4¨§.ÞõŽò‚À¿&?ÁÙŸJ×èê Ïÿóõö21^]o�±v<@Ôì¶–ÿ8]é,ÿðˆbkóç üüb4¥:Fä¬pâ„�ÑÜÅ<û …ž/ÿÀÿÀÍ`¿ø7CDCö±ü<�8ÏÀuF9 ÿÿA|1B7)P5+œ8Y8:qR.wVA+#/J#*-<'z<+43&/ÉùQ->;'d+-Z/x4ÿð)(Y.Küü ;d7)b'+T/l=b#$K8"ÿÀd€U0Cü<;B12!"SZ5b%}ÝÝßüoUàoL�¢¼ß$oQBbWÏÍIÜs ’‘F�ÕþõÏð?hžz€* Àÿÿb |‡R'ôЗ3º°\ h ŒŸü½Çðÿ+¬+,*_aûüúø,;;µäæòÕªÏÿÀ[™D!<ˆÃXK ÒSNdsÿðVáeP–·+,*V«‡jÊøàWE⛊(Ÿèy‡2ŽKÆ×^˱pB€u*Mgýü<ªÓ*™šóôVÝÁ7HZc»ô‚]ÝY– $0, ÏüÏ . .Ïà6'€ÿÿ 8&" &,4)6)"  . Æé€1Pa%¥«¿à <Ü2 "z3g`1ÿH<@B:P4]Ý]W‘Kõ^‰±® SbÖ/|‹âßüÏŠý¢\³œº¹ƒ„ÿÿÈë”o»Œ"åÝ Há'ZÈËÁÂ1FÈ<þô¾3´ˆ³Úí êóØùÀ,÷2ƸýFœ`û=³Åc{5Îÿð[2"Á *ôüÇô)íIÇ®�+Ü]SNSY`0]ïÀÿÀ,?&WXW¤Kü<öã~}6%4-(1"ð4x4iKÄ“ÿ<)<ÿð/*m:apèHOÿÿ6"U€'$_L&ÿÀk@W\<Ï. K€+Ýÿÿÿ3ÿüÌ/0/0/0/0_/?_Ð/?_Ð/?_Ð/?__<ÌÏÿŸ00(?/X?/X?(Ï0/0/0/0_/?_Ð/?p/?p/?×'@'@'@Ï0/0/0/0_/?p/0/0/ÿ0Ï0/0/0/0_/0/?p/?p/?¿'('@'@Ï0/0/0/0_/?_Ð/?_Ð/?_Ð/?_w'@o0/X?/X?/XÏ0/0/0/0_/?_Ð/?_Ð/?_Ð/?__?/XŸ0UUUUHH@0ýÿaÀýÿÀÿÀÿa‡ý ÿHHHLý ÿHHH@ ýUUUU ÌÃÿ€€ü €óÿü ÿ€€€ ó3€33 0à 33333 ÌÌÌÌÌÌÌÌ0Ã0à ÌÌÌÌ   ÌÌÌÌ  üUUUU€Žfh²fh9 " # Â# " #ÈȈȃ  €ˆ€Œ  €ˆ€Œ,A†BBÇA†BBÇA†BBDBÿðABABAB,A,A,ÿðÀ0«©ÌÀ©«©À0 ?ÌÀðü? ƒÆÙjiÛab’ÌÀÛÙÛðü? >C21 8ÌÀüÿ?Ø8õÊ×û½Œ2üý?$Q 6O:?üÿ?rÈaßzŸ^BzR@ç¼ü<0®Û.À`üÿ?UãòŸV\ƒ|üÿ?&eH"mL§\/`(o/`(o/`(ÿðÀ0 ÌÀ €€©á ÿXÁ€ìÀ¿÷Ð$&("    2$>@6 >8FH>0  F@NPF8  .8:<68:<*0       *46820 24 >@.$.068&  &(.0" %IGI$& .0& *( 24*   ., 68.$  Y     %#"b±#% +- ! ')  #% $    0.W¬r�#! +-# #% +-# #% +-# cikm   0lƒJlnp &(  &(  &( ^lfh=%i†Gikm! ')  #! +-#  '% /1'  guoq      D +S¤*,24*$ *,24  &( r¡   (&W¤r�s€& .0&  .(68.   60>@6(  )      6nÉ79 ?A+% +- 35# #% +- $    86oÌ& .0&  .(68.   60>@6(  2468&(*, 9       BHBDJL2, 24:<& &(.0  T14_packed T14_packedÁn ÃÿÄA{”øÂíà   òzòÁíCn ÄAÿC{”øÂzý ÿÿÿÿ<;<w<Y<YYYYYY><YYYYYYYYY><<<YYYYYYYYY;;; <<YYYYYYYYÿÿÿÿ<;<w<Y<YYYYYY><YYYYYYYYY><<<YYYYYYYYY;;; <<YYYYYYYYUUUU ÿÀ0©ª©ª©«© ÿÿ©ª©ª©ª©ª©«ÿ©©ª©ª©ªÿ©ª©«©©üÌÌ«©©«©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ ©«©©Ì0à «©©«©©000«©©000«©©000«©©Ã 0«©©«ÌÀ ©«©©« ©©« ©©«UUUU ÿÀ0 ÿÿSÿSÿ?üÌÌÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÌ?Ì0à 0000?0000?0000?0à 0?ÌÌ ? ? ?UÕ__3ÀüÿPO�àO�@PO Ïðß�O ßr3???O!rO!rO!rOOóÿüOnPOPOPO Pßüüü�Pß�Pß�PßrO!rO!rO!rOOOPOPOPOOñOO O ØQ¢ŒO ¨Pß4PßGPÂ5Pß0000X[ÊÅ3óóóXrO}ÎOLÐOºÎOSOO OO•OO%OOÁO 0PÜOÐQÆP‘Pá‘PÏÌ Â‘Pá7Ü€ üüÜ7ÐO\tO\UÕ__3Àüÿ65X!5X�65lÏð"W5l"3???5H5H5H57óÿü5878787n6"üüüW6"W6"W6"5H5H5H5756565655^7565lC5lU5lf6"W6"g6$w6"000. 3óóó.5H5:5*5 55l55^57N555lU675Ê6$y6$w6ÏÌ "w6$^ üü^5*5*UUÝ]?üÿƒ,™næÂVknWVmøüVmV?¸¯Ëðüüü&ž¥ž¥ž¥ž€?mV¿¿¿mVmVmV?¥ž???¥ž¥ž¥ž?ÿü8rq#*)ZMk0PK×Ô,ò膎À÷9cž«LN¡;®0³œðÏ<ðk„Mª‹oë �⦎%ò¦�ÿðâÆj!òÿÿ™P{Æo€µ¦™×ÝÝU V<s D< üü8< 8<?0 F &<&<&<À?ÿ 8< 8< 8< 8<?&<&<&<&<0çœÿ 8 :u4g0ðÏ,0 Åÿÿ .*c .*c ÿð.*c .*ÿÿ0a2aÝ]?ÿül68=äãCRQ°›2,=6æ!ÂÖ-ª¾ð000Øm¼_m]{iM±ž!„ÆêÆFðÏ<ð´ø˜®ç7â+n,A†ÄñW¬ÊâW†ÿðÄñ�¤âÿÿÐx¢ŒHÔXК™ô?CÀ&nNÏO7ð000[,7_[:0ðÏ< 7"þôþô##ÿð#ù÷ù÷$$UU?üÿƒ,™næÂVknWVmøüVmV€?mV¿¿¿mVmVmVïÏÏmZƒÍ¯Ë¸÷=ÀÉÏÏ-{ª‹¾1avÀ ûûß-ñù?Çáûð-ñî'Çóó]t_~]  V:q D:} üü8:} 8:À?} 8:} 8:} 8:} 8:8 8:} 8:6<6À<0}ÿÿ6<} 6<} ÿð6<} 6$>$@&>À0!!! ÿÿ&>&>&÷ÿÿÿŸ `€€ `€_`ÿÿÿ30ÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000ÿ_`_`_`¿Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0(x`@?@Ÿ`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(W0(W0(W0(Ø@Ÿ`_`_`¿Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@UUUULÇÀ‚‚| ‚‚~��€ ��€Àþ‚ÇÇÇà‚‚‚~``` ```2d’þAñññ‚‚‚ø‚~9þ||‚‚|~‚‚~UUUU ÿÀ0€€ ÿÿ€€€ÿ€€ÿ€üÌÌÀÀÀÀÀÀÀÀÀÀÀÀÌÌ0à 0000000000000à 0ÌÌ   UUUUf€™š™šˆˆÀ€€À€€À€€È €0 0 0 0€ €Œ  ÿY;;\Y<Y<Y<YYYYYY˜;<;<;<YYYYÿÿðYYÿY;;\Y<Y<Y<YYYYYY˜;<;<;<YYYYÿÿðYYUU 0Ì©©«©À0 ©«©©ÀÀ«©ÀÀÀ©«©Àð0©«©©«©000«©©000«©©00«©UU 0Ì?À0 ÀÀÀ?ÀÀÀÀ?ÀÏð0?0000?0000?000?_WÐO\tO+OOßQO�OÎOÁPRá‘Q¢Â“O ß“üÀÀÀO¢Â$€ÜÀÏÏ€$ÐOÐQ^rO^ÎO)O΀ÜÁPߟO�??00COëCO�$€003ó€Ü$rO^ÎãóðOÎO^rO+_W5*5(57N55L5766$w7n"w5l$yüÀÀÀ5l$^ÀÏÏÏ^5*7,5*5(56"A5Z??00C5ZA5X^003ó^7,óóð5*5*5(_W~‰¦o€µ  ©Ž5ý¦ †⦠˜%ò¦?�â?ÿÿŪ‰¦™P{Æo€µ¦™~‰?�j!òË—bÿÿÀýÉ…nâóEzÀÿo€Å¶ÅªÿÿÀœ™P{Æao ]Uÿð0a2Å .*c .*c .*c? .*?ÿÿ0a0a2ÿ?ÿa0Å .*W :ÿÿÀ*W :*[.6ÿ2a0ÿÿÀa0a0"ßW>šXŒHÔBA "A¬öó­pÄñWÂÊâW?ÀÀ†ÄñVUV¾šXÐx¢ŒHÔXÐ>š!„++X�¤âTÁGÿÿð0ó'oËñôö²óXV00?ÿUWXŒHô޾ÿÿÀ„nÐx¢AkþO™–ÿð $ OïþðOï###?ù÷ù÷ù$$÷ùoï?$ÿÿÀÿ $ŸŸ_°$$UUóðx_~�ãøþùi�á-ñù?Ç?á-ñ???]x]t_~?/ÿ]xî'Ç÷úœÿÿÀ�ßâðñ|y()Ï_~]xÏÏÀ]t[~!} 6<} 6<} 6<}? 6<?ÿ} 6&>Ä� H?ÿÿ&>&>&>ÿ4™&>™™€ÿ&>&>ÿÿÀ&>@&ÿ00Ÿ@0000(W0(W0/0 _Ÿÿ€ß`ÿÿ€ß`ÿÿ€ß`ÿÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/pŸÿ€€ `€€ `€€ `€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@0ÿÿð0Ÿ@00Ÿ@000UUÁð|þ‚‚‚à``‚~` ```1ñþ‚ññø‚‚‚~UU 0ÌÀ0 ÀÀÀÀÀÀÀÀÏð000000000000UU € À€€À€€È   0  0  0--GÓÀ@�À€ìÀ¿ùÐ         :DFHB@   RD^`N4 VP^`F8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .82468&(*,  M  "*,&  .(68.   60>@6(  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  %     9 7.9460>@*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2864 >@.$  20 :<*   ., 68&  1   535 "*,"  *$24.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*  *,24" )979    53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%824:<*,.0 "$I     532nÝ  ;5CE3%  ;5CE3%  ;5CE3%  4 23oÜ:4BD2$  :4BD2$  :4BD2$  2T01_rockT01_rock@A®'Á(ÂÀA= ÷?ÀÀZ Z@AÀ@®'ÁÀA(B= ÷?» ³ 0À<ª©ª©ªÀ=€©ª«¬?ð?SÿÿT¬ÿT¬ÿð?ÀT¬ÿ«Sþý㩪ª¬ârª¬ªärªª¬ârª¬ª8᫪¬ª7TzxxÎ7T)lY902‡³ÜpÚ©5å{åÙ›{{ã×6õµ•“• BY(WMQiKµDE= ""\]ߎBh M*“ÿÿðˆNè "M^200 =<ìñ�ÃÃŽ l”ÿÿðgU§ S9Ã=° 0vw<�’t W;\Yÿÿð>\<« >]4$$p`0$@?ð?? Ÿ@`Ÿ@`Ÿð?À@`ŸÀ`_ßß//_¿0//À ˆ °0  «*rÞå àwÅ]`AÁ€¿_Ð  "( "( "(  T14_powder T14_powder„ÂìÑ ÃÿÃ�B{”çÂíÃp-p„ÂíCìÑ Ã�BÿC{”ç°-¨ uÿÿÿ3ÌÌÌBA†BBDBBð ÌÿØ“oomÞomÞomÞomopßppßppÿÌÌÌßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomopßppßppßppßDBBDBBDBDA†BBDBBØ“oomÞomÞomÞomnmoo±moo±moo±mooDBBDBBDBDA†Bië®ë3ÌÌÌ,ø@``¶kf¶o`ZZ5€ÿÌÌÌ  ,f¶kf¶oZ†5£Z5¯ÿÿÿ,kf¶kfõ£Z†  ÿÿÿøf¶,kf¶oZ5£Z† ,ÿÿ€Fkf¶kfödödödz,ßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© 3? ©ª©ª©«©©ª©ª©ª©ª©ª©ª©ÿÀÿª©ª©«ãä©«Àà ©©«©Ã ©«©0?ð©ãä«©©0Ã0«©©«Ã ©©«ü ãä©«©©0À 0«©©«À©©ÿ ãä«©©«©0ð00©ª©«©0À©«ßUUUTSTSTSTSTSTST7S 3? SSTSTSTSTSTSTÿÀÿSTSTV9ðà 0??à 0?üV9?0à 0?à Tÿ 7?0à 0?ÀVÿà 9?0ð00U0ÀTÿÿÿÿn;¬q¦o2:lælm±3¯ÐÏq««sèqª9©9:pãªãª©®r9qo9ã«oâ«oâ©qBÞ¡çÛçxÛ4//uk¤m06¦uàªõ¾s««5ª©qâ©qâ©«ã©ßq©å©qâ©qâ©qß5vm¥®>0ߢuç«nå8s«qtã©ã«©ã«©âqqß©qãã7â㪫7om®è<5mj>0=6n6p:ä99stqqªqqªqqr9ooã7âã¨ã:ªä8ßæ®¥æ®¥2<Ü=à­6;oâq99t9op9qr9o87°9ãã7;©ásã©©ã©v:vm§®vÞß±nëë®ë+ - /355/‚›™ùi©S"0S »°( T)L+H/H/N-R)N%B#K"E%'!  ŸQS ±KÐOÿÿÿ" &$ M*W%  0qðM  "&" I,ÿÿÿ¥™ŸqY%QÐM $&"  =(O'%ÿö9¹óq!ù"9"9"(  $$"$ 5$G#ÿÿÿÿ {?é_Ë3pš.ÑΑÁ¢ÿ==çž,ˆNü¶¹•¯Ò·ñÛô.n¨h,˜Ö¤9«ë6mðG¯ Í÷£ÿä…û[å(O¡r«î�Ôˆ}d¢Jªó��ÃN[|¢í,,ä�O{mv2nÐÔ�绺ÂÊËÿ‰±©Å’+ñ´>½¢�Ùžî;V³w݆Z)„KvùŸäÊõ=úóB'82;÷øU2Uµ`,‹` S`oYÊÄwÆêPdçM4ÖNĆ«‚' Z‰…W¹{Ò1CXo¡—üÉ1üÔÏÒÕÓBBÄç]±ÛÆŒîiámÐB!pÛè*·åmªªªª"`r�¥åÔòpýõýWroökH´�ð€@0pAaò2’ƒR×ý·û{kf´‹Hý!/#Q1™Xµù_•Ö”iF¶o“1 ð\S0%)•ù_•û=kf¶kfù Zw P»>“é>•UõsõsóysQ ñDXÿÿÿÿàäpüÆFî�OTp·ÙdÖb¾qî?Å=Ye§òIgÔ¿i±³¼Wô“EŠ�Ó�ÉÆ¢¦­Õ¿zšÝžæûC8a—å½ÚêhnQSiî Ìð˜EOÖ…ZgPZ©w­“EŠ�Ó��¬ðHƺ\£¬üÃ�P”‡¬üZúNXs•<�tZÍÔ?éÏ@Æ2·ë7‚ËÍ¿­€¡ÛÓlè:ä¬Rß�’ªŠxìå[ž¿H\­4z­�­Î"ï_7¼aY¤}“Ý�QBò+}ÄÝÆH• f�Ð`yA¶Á|Ñ”>ÑÔö×h¤¼ÖðT”n [@ 2ë-1^@.çËŒœçK ÿVfY•#$!cATÂiÈ뮄¼ºKh‘N42eÀ1 0*ë®™2!2#1$7”’ºI†K"2#"Òn fÏaºë­C³ ò„±†•ÕÅ@1t‘ùu]×|•Ø#@ T%¤`ÎBfåEQš‰˜‡|àRyóŽÑ?J'8µRÿöè‘cŽ· 뮿o„EQš‰˜‡sÛY&(×*øÜ„™sa/ÿó�Ù²í>^¾W$òyÔOMŽFÔ»`a$’KÿÿHï=*·d3b/¾cUà˽œ^ Ì@!†?ÿÿ¦›%TQ&'¦ã�åOìïâä} ‰B­[ eŠ¢²¯ø�ˆ'ø�ò�`0pýÀ.? ˆø�ˆÿ ð0¸ømhØ�ÓP ð0 mhÖ�ˆû9 0•ó•óµó�±‘"ð0_ßu^&&✥5³/ír1ö� •`ðeÍmÆã�×¥8ÿñ¼S•Fqép)*Ü™h!|^‡sÅ!£€�Ç¥°ª›ÚŠCÇó¢³µæ/úüõž�Æy¤OvŸÑeëuÿÿüII”’XóQ:õ<Øo‘Þ 1c‘)5…% Q¦Ël¾š¨ÿÿ¾^ä¾ؽ¤T6 ýÿ�IrOGˆøSdDv”y‘óyô»ÿÀ5ô4ÉDÜÿoë"¹V™¦Y/ð`ÿ´±ç_dqtñüÿcl*(ÿñ˜ ™Hä<ñ6 W\+ùÿ÷ÿu @/ÿS5ñ½>}zST×ýÿטl>_ð%+×û]T·ûq !ƒc:w/ðý_ÕýQLÿÀ ÿ6knuÿÿÿ3ÌÌÌ'(W///?_ð Ìÿ?'/X'/X'/X'/ 00ÿÌÌÌ00`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///?_?'/X'/X'/X'/¸0000`@0000(?(W///?_?'/X'/X'/X'/ˆGGG`@0000(?(W/QUUU@0ÿÀÿ0ÿ0ÿ ÿ ÿ@ÿ€ÿÀÿ ÀÿTUUUóÿÀ€ ? €0?ðà 0à ü0à 0Ãÿ 0à 0Àÿà 00000–VUU`VVVVVVÚ.f€2VVVVVVVV`0 °€0€02,    ‹ƒ€"Â à  À?BDBBØ“oomÞomÞomÞomnmoo±moo±moo±mooDBBDBBDB:ÿÿøf¶kf¶ofOfOfzÿÀÃãä©«©©« < ©¬«©« ©ÿðÃ7? < S ?ç;p%999<777987è9©©«9©qã9qqä9q7momv>ß:ÿÿE™Ÿq/)q’#�C�( "$(&"?~NÌê Ì.CüÀðPÀðøðNG²�iÂFß¿žý ÕΗ}Qæ/ˆLív­R*±Eo•ù_•ûPW_W_Y?W]'1 ?«ß±O$›í¦Í(¦Í†HÍPˆ×LìsNŪU˜ë¾‹T…ò!e�ƒMlJJ`"@4†%uuuP�@5‘ðˆa†ÿÿ»‡»SÚ¹4ùÂqª*§ÝöŽNuñ´½(Y_Y[_;)3@ã¨OµB°­ÏŽBÏŽÿñ��‘ŽÔ¸tK��„€)±goøÿ�ÿá�� ��„€?//?_?'/X'/X'/X'/ˆGGG`@0000(0ÿ?ðà  Ȱ€8ÿÿ‹@ÿI„€ìÀ¿uÐ            &("  &$ .0*   ., 682(          ,                  535     "$  " *,&  =                   )')     "$  " *,&  1              )')     "$  " *,&  1              )')     "$  " *,&  1             )')     "$  " *,&  =      T14_rockT14_rockÀA{” ÃÿÃðA®GÿÂíÃl%lÀAíC{” ÃðAÿC®GÿÂó%ë 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ<ð“ywï�¾wwñ*EÒyïï|°wïñuuyïïwÿÀœïñïU_Ia =c =c ;cÿÀ 9K0ì¥Qz5"UÅf 3�¯H3ƒë–73…¿C$0 Ê…ac¢]cÅL7yPNJ1yN@{N!! a@�à@aüê§De6n%³mJ&'µ³ºI%·i�ç$0`€€?ð?`_ @_ @_ð? @_ @_ ð@_ÿð€€€€€€€€€€€€€€€€€€€€À€€€O,?- (T;#>Q.?PÌóL 0Ì : ó: 3!"!ð6 6uÕ×w?ÿÀ7.Km:€À—˜ú¤ñK޶ޮÃCŠb .ÿðÃÂ$ƒ‚Åa)*ÃÿÿZ-87LUùÚð €€Ïÿ�Òžðåv…,Z|dòÞ¯+vuÞÝÞÝÞÝÞg£üɇVÃòÞºÿð0´HÄ|x€<ÿ«¬h$‹tÀ¬l³ïK‚uUÈÇüðu9¤AýoˆÜïsÿ>ø+âò™³ÿÀÀÀ=Qt{|=ñ´|ŒÜ$66bÍ»T'�Ï×ॕ–f�€@‡ABœ•>wb � ³Òî_oVVV]2ø­õ? {€B¸9Ä�bÏ1B5*5ôÀ0`pDpDBtQ•U`_wÞ³”1iç½µN@·´ÿðÀÊ« Õ6¤ ÿÀÙ*ü¹ºKÃÿ˜—ÿ±MxßÀ‡kn ÿ�QRe\ÛÎÏÀ4?8Tÿxÿð%(»î1|\_ÃòïÆÅtð‰???NÁt9 .?j)ÞÝ4PE%_-D7N5L=bÿ1)\Ï, À ðü  <Ã;<ð6 <uUÕ?ÿmºû°Lù®‡ˆ{ï“2ƒeTDÏðk¼U4^ÿðÃþ­:ªñÍ'(IÀJL£ÀXÿ”“âïQ7ÿÀŠÛ ?R_BU2:+ÿü "- + 8 üó8 3Ãð³!N#@1ÿð00&%6580?À8}puÿÿ"ìKÒe€ˆ€cÄH†%'Pó˜ÁÖ¡4PŸrOýì²æÕ-{èðüýþµ½‹OÒɰp�È^ÛyÜ$<éQÿüçèã>ÒWXÀÛê ÿ('àZÆ:9¸· –Aã*‹b2ÿÀð Q~E7CDðÀCD²±ypußÿ;*5 /üU÷R¸$8!/r3JUðü B7 I$9$S66[42]´7 ÿüV9NUÀD=ÿ!"K<=>;<#?À'7T?*ÿÀ`8aF0u`€}uuÿÿpëý*š‹õŠhÝŒ:Ú,{RG^·Êã\³b«ÆÛQ‰8¢Ëë}8ÀðüÕÖ—ŒŒÀÀ€ÀÀ?€UU¬@—äU_F­·Ðš¶ÜQš&ÿø7M¢‰@,‚�À{¸;ÿóô~�<»+ÜÎ)*ôʵ®/}Fûðð§Ú¢ýoð3À ‹ýKµ}ueÏÿO *O(    "4o ,Bc&%p@ðü G> @€@€7: 32i&> ÿüo&@e&#n ÀEBwPgÿðÿïS4,1$ÿà*6!}puÿœ›}Ý�Îñ“§"& <;ð3�Y§÷|÷ÊÉ“ŒsvðüqjQ6*^ÛÞW|}¡¢oh?ðmfkl€MLÿ±²@!}~Â*ø�’$Çÿð²ÚÙWXðÀWXLK0ÿ  oÿ±÷’Ô#!|<.9:Q$1 ,O&Js>@uvÿ+,_NSÏ?ÀTOP+Q tYpuÿÿ¹”Ùó˸?õí:‡T‡0?ÏÿÀß#ç¶ê�Ë�NðübaÂ$åÂÇ$…8"òç78)xž<ØÿüMoj¢áFN ÀH ;ÿþý_N¤£`_c©j¤¤“-ÿÀ%T6MUPUßøA.ÏÿÀ(+Y4[$%nðü G:K†½ÿn³:ÿüm&:z³%n ÀG@I�üÿo®;V;2ÿÀ6gR&wýÿÿÿÀóüo0(‡0/0//00_Ÿ_`p/0o_Ð/?p/ÿŸÿ€ßŸÿ€€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(‡0_00_00_00_ÿÿ `ÿ `_``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(‡0_00_00_00_/o@00_00//`//`00(o0(o0(ÿðo0(UQÀÿ†ñüà‚‚�‚~``` ```Ààÿü ÿàþUUUÀÿÏ3À?ÀÀÀÀÀÀ¿ÀÃÀÀÃÀÿÀÀÀÀ003À?ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÿÀÀÀ?ÀÀÀà 0ÀÀÀÀÀ?Ã< ÀÀÀ?ÀÀ À?ÀÀ ü0À?ÀÀÀÀÀÃÀÃÀÀ¿À?ÀÀ 000À?ÀÀ0?ÀÀ?ÀÀÀUUU`€ƒ€@€@€@€B@€@ €« â ÿXÁ€þÀ¿ëÐ   ",.0*(   :,FH>$ F@NP>0  F@NPB4  .8:<6468>@.( .068&  &(.0  "    2$>@:  B<JLB4  JDRTJ<  .8:<6468>@.( .068&(*, )      EC&E,.(68*  2,:<.   60>@2$  !2!864 >@.$  20 :<*   2,>@.   &24" %  &46820 :4BD2$  MK2M8:4BD6(  >8FH2$  :4BD2$  2468&(*, I     5 3*502,:<.   60>@.   :0>@218/&1,.(68&  .(68&  .(68 %#6%<>8FH6(  >8FH6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, A  q  2, 682(64 >@2( 2 8 :4BD&  535$& .0  & .0&  .(682$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, 9      m5     535 "*,  & .0&  .(682$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, =       15         5 3&bÅ  /)79+  3-;=/!  71?A3%   39'-! T15_packed T15_packedpÁ�ÂÀÄ@AÃõÃÿà   ÞÕÞpÁÿC�ÂÃ@A€DÃõÃð Õè  ÿÿÿrrpoqâoqâoprrrrªrrrªrrrªrrrrprr¬práprápräopoârrrªrrrrpopárqápoâr7rqqrqäqäpráârqqrqärrqrrãrrptrqârr¬qârr¬qârr¬qârrrrrp¬rrp¬rrp¬rrprrqrrãrrráqârr¬qârr¬prrãoârrrrp¬rrp¬rrp¬rrprrrrªrrrªrrrªrrrrÿÀpopopÿÿÿ::UUUS77Å8UÈ9:�889::9ã8U8U8U8UUU7Æ8U8U9:UUUUUUÿÀUUUÿ 3©ª©ª©«©©ªÿÿ©ª©ª©ª©«©©ÿÿ ª©ª©ª©ª©«©0ÌÀÀ©«©ª©Ìð0ª©«©©« <0é«©©«©0À ©«©©À0«©© «©©0ÀÀ«©©«0 ©«© ©«© ©«©©3«©UUUÿ 3Sÿÿÿÿ S0ÌÀÀÌð0T <0Ã)0À ?À0 ?0ÀÀ?0 ? ? ?3WWUeÍËÌËeÍÎÍËÌËÌÿÿËÌËÌËÌËeÍËÿÿ<ÌËÌËÍefeÎfÌóÌÀÀÎfÌÎÍÎÍÎÍÌËgeÎÌeËÍee?üðÀgËeÌÎÍeffÿóÌÃhghÌÌhÍfÎefóðÿ3ÌeeÍÎeÍÎgÎÌ <ü eËfeÍfeÏ0ÀüeËÍeËefÌùÌü <2o P[,-,<ðßp#$·"&3üüüG ,G,G,�„¬¿JuJ0 yV2:ôWÿN¾ÿ›Uáòµ;·AVÿüUVUVUVUVUßóÿVUÒªTgšŒ=¾ÿüÀÀ5Ý¥/Ö:UVUt”§Ö®ã^¥è6ÄçtÀ.P¬ |¿…sßLK4Æ cªÕ—1•ZöÁÅqcÙƒùŒÕ«W ¶;ž„¬2xºŠ2<=³¶1hc.<`›1Ôÿ�ª§Œ ¤öС&AàLÔ¿oÿ¸¢'ðÌüÿ1212´ˆÍ.Æ×ì=ÕZ¤*Ñm”LqÿÀxK~çgbªU/> ¿Û÷€ O�w÷$ÿÀ óWinWduÿÿòç#,Qò�ýõûˆò=(@-¯gû ÿð¯##Àüü<#B+2<ðÏAl3üü¼(((! <# */ú Sýw?~‡ÅñÈ®ŠžØŠ›œ?ðóMà%[_`]Ï^MNï¿Ûò*Üר¿ÀJ�â�ÌW¹Ãüxd¬L7ÉrŽ(Ú|®cv¢û�¨7ÙúRqVÞ¯q8�Brºæ8A r<<ðó¶öklòñ‡Ò ?-¶oHÁÌQIQ|ðÌüÿrqrqªÍ$§‘©³´ »\J%ÞãïðÀiU><;'d;'d!"Ïð%xßóa?)ðßðÿ`øg$*=ïùü $#-TGTÒÎþ> ,ß{203üüüa@a(:a@�„¬¼QyU?3Ï<}ºKJIFEzy?ðÿú•Ø´˜ÜŒ2ÿÀòÜ’DÕïÿ+!½|Ža“ròÿÿOý ¸Å©¨¸¢  fq ÂÍyÆM yðü?ÇÊí”ZŽ�Àü<<à’Ž�‚<óÿMœ/0‚�0“Ž�ððüúÊ<�uø¶€¤B¿øy uÔ”1IâþÿÀ©‘Ö–QYU!†?óÿ0 H,&A&ÿÀA.Aÿoðx3! ïÏÀ8+=jUÂk H€ü<<#ChIJ<ðæmÚÍΧ¨m ðHYp1=vRÝ|P4íóþý÷ÿÿŸÿ€ÿÿ€30üüÿ `ÿ `ÿ `ÿ ``@00Ÿ@0o@0o@0O€ÿ `ÿ ``@?@?_`p/0o_Ï/00/0_0_/?po_`@?@Ÿ_Ÿ Ÿÿ_Ÿÿ€€/0_?_Ð0_?_Ð0_?_Ð0_?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿÿÿ `ÿ `Ð0_?_Ð0_?_Ð/?_ 0o__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``ÿÀ@?@?@UUU3¾ÿ‚�€�€�‚~ ��€ †ÿà`��‚�ÿ& þd �‡À‚}� @|||‚‚‚|˜`Á‚~ý HH@|||~‚‚‚‚~™€UUUÿ 3€€ÀÀÿÿ€€€ÀÀÿÿ €€€À0ÌÀÀÀÀÀ¿ÀÌð0¿ÀÿÀÀÀ <0ÃÀÀ€ÀÀÀ0À ?ÀÀÀÀÀ0ÀÀÀ ?ÀÀÀ0ÀÀ?ÀÀÀÀ0 ÀÀÀ? ÀÀÀ? ÀÀÀ?À3ÀÀUUU š™š™š€À€€Žc™ÎC΄@�À€þÀ¿éÐ       (*,&$   6(BD6 >8FH:,  B<JLB4  .8:<64   F8RTB( FD NP>4  B@ JL:0  5Ee¢Segi_egi_egi!   o==P'=?A            1!9353 5;= ')       #%')#!  '% /1    3A 7ICEC EKM      üh{>&hjlbhjlbhjlF@NP:,  B<JL6(  >8FH2$  )2468&$&(.0  " *,  nÅsˆ    536F¹  ?9GI3%  ;5CE3%  ;5CE3%   3c¸:4BD2$  :4BD2$  :4BD2$  2468&$&(.0  &(  T15_powder T15_powder„Â{ÔÀÄ�B= üÂÿÂ4‚„ÂÿC{ÔÃ�B€D= ü‰4� õýÿÿ3ÌÌÌBA†BBDBBð ÌÿØ“oomÞomÞomÞomnmoo±moo±mnÝoànÝoDBBD33?ÿBBDBDA†BBDBBØ“oomÞomÞomÞomnÝoànÝoànÝoànÝoDBBDBBDBDA†BBDBBØ“oomÞomÞopomnÝoànÝoànÝoànÝoDBBDBBDBDA†BBDBBØ“oopopopomnÝoànÝoànÝoànÝoDBBDBBDBDA†BBDBBØ“oopopopomnÝoànÝoànÝoànÝoDBBDB©éº®3ÌÌÌ,ø@``¶kf¶o``@ödzö\I\O33?ÿ,ÿ€Fkf¶kfõĕĕĕ€ ,ÿøf¶keo\I\I\I\†,ÿ€FVVVõ†Ä•ĕĕÄÿ,eeeo\I†\I\I\Oÿÿ_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© 3ÿ0©ª©ª©ª©«00?ÿ©©ª©ª©ª©ªÿÿ𩪩ª©ª©ª©«?ð0Ããä©«©©«© ©«© ©ü 3ãä«©©«©©000«©©0«?ðÌÀãä©«©©«© ©«© ©ãäü30«©©«©©«©©_UUUTSTSTSTSTSTST7S 3ÿ0S00?ÿSTSTSTSÿÿðTSTSTSTSTV?ü0Ã9? ? Vÿ 39?0000?0T?üÌÌ7??  V9ÿ33??ÿÿÿÿgÀ¿ÒØÀ ¯ ¦+Á [”ñ,Q F5+~5+~5oRÏR©R R}hR5„5&!Ÿ}¥µCë›é. ú�fÓC1³t⇄™¯v@Õ~™¶™¶™¶SL5&5&N!5\NrÜšæÆ&· èý2DB Š#^,×îÑì϶QXhm”LUo–„�mÌ„�¥û„1bæ]Ç^M.ýxÏÏTÆQWS×Qµ2Mm¥ûòÌ¥ÅÕ”¥ÅÕ^¥�Ÿ ”,x•ÊGƒô×Ï„�É<QçmŠmŠmŠmˆÛ1µÛtnÛ„â5ìò¯]iàRƒëÛº®#   ™™ù‰©q$q ÉÇY$( B%:%D'H%J%L#J!B!93!!û™™ñqL¼¼½ &*($C-ÿý™Ÿp )?OOO$"&**$G-ùù™ùe0ð)&ð&ðDðDÿ &**$K1!#%™Ÿ oo�oÿÿ& "ÿÿÿÿ…€KvÀÖª Ä£{AñFh.n�¢z¬‰oDzºÍLQ²Zà=úÇÑÀ$§¨y&»�Z¥žqhAž 1>-#ÓÖ÷F_w Ǻ°pßýpï?0 ¡�ÛÍ“�Ð1�w§Ä(Þ”$¹[@j»U�ƒdáoåa‡}“™]ã}רñ ¼Î�M¤*ͦPÍÖcÒ&œÅ5LBÇ+LBÆ\g†‘çàW_‘.œU Sçª�G‹­ÑÂgB “Nç{ÓËPäkxW3K)©w°Dë»L9ícÒ÷Û#Yxççݺ!þ:9ÅÆnm*"^ŒãrÁ4OèØoãÀY|?²“8ªª®ª1££`´Ô$ò°0ù_•û0P²ØõuóM^ou'#dNƒÐ û?³û?³Tõöõöõö÷1U1BðB LŒϳû?¿#sS4O@LêñSoÿðö+%õöõö÷ö÷0SP$ð&*ÿNoxvV]o_�_�_¯�ASÿÿÿÿîÒB‰1ö]£¬™Ûj!5)/^$Gqd•ÝWóˆ8¿†Šð*Ðùµ ¬Øº�'�ªq|³¾½/~€ô2Y~.ãrd&À R*±'ËÛ–�/•Öý( P+„½<ÒòÎë^Žë ·L¢…apŠ—O‚›GÁ¡‚º(J›KHÓ5ùŠ©QxWƒùq Ä@ÜäÊM%3/‹Wr„�C„Ÿ;ˆd�ß<{¤ß¶Á†qè…t­nK¿tHaV¿HþŠìƒ–eŠŸ�®Ý9ÌSñd¾Gl~a!O`‚W–¿›{‘ %áI384£3:9 Ÿ¦¥ƒG¹û�»ÂáÍùØd<�’FS&Vjššd²R1g¥ÃàÀa�ÆÅÃ3YGWRŠ"‚#"2#"0@1`1BÑ w DZ"2 Eí##ÄD0¯UB,õï÷‚1B1BPBUP"€F”‡˜¿%8'GW"õyÞ× Ï ø<€c Fn,ÇZ=D´¹u¼Óá±�—Q×¼ãÿÿðF—?mŠJ \‰Žÿðô@4 F׺{VJ_±@ÒÙâžÌÿÿü×tAÐzgbTG»ÿ(@4!1,n8!¡¾™ö`´�þJ"ÿÿñÆÐD0.Ÿ@&õM  078^¨ÀçüÕ'Jr“›R[–`Ëÿü~cà 8ƒ-“³[™›ÿL{+…ô|éç~5³Uo®~€ªJû ¡hšPÒøõ·õo_�—)%°w04V÷öõøõöùQuQFð4o��_o“UO6 õø÷ø÷øùuQDð6ÿ �¯ŸÏ²C5_]×µõZ!¸ð„a¸ßZóã¿Úm>Ä@|K}áûØFGÿðG]\>*gK�t B?ÿ5<Û,�¾§Ì¢ K]lºúJQ iÀ```j@†oÿ‹1}íÎ�{OÛ ©ÒŽ>¨§h@y5cñ™��ã’¿ÿËŽhÇ`™3f�µ»ÎÚƒ¶üŸr¥®```toÿÿ­òa+|K`6®!ìþ,%d𙫬NM¤%a%a%a Z]×eòtó@²Ôder&ôòpýŸÿàB�$ B?ü*Sb yh ð``` @†oð&MRYf�|+"/ñ™��<’³Ã&—ˆ ih�0V)````n?ÿ(ihs€�ºš˜q!'™™™€õýÿÿ3ÌÌÌ'(W///?_ð Ìÿ?'/X'/X'/X'/ˆGG0/0`@0033?ÿ00(?(W///?_?'/X'/X'/X'/ 0/0/0/0`@0000(?(W///?_?'/X'/X'('p0/0/0/0`@0000(?(W///?_?'('('('p0/0/0/0`@0000(?(W///?_?'('('('p0/0/0/0`@000QQUU@0ÿ0ÿ ÿ ÿ@0ÿ0ÿ ÿ @ÿÿ€_UUU€€€€€€€ÀÀ€€À 3ÿ0À€€00?ÿÀÀ€€€ÿÿð€€€€€ÿü0Ã?ÀÀÀ?ÀÀÀ ?ÀÀÀ ÿÿ 3?ÀÀÀ?ÀÀÀ0000?ÀÀÀ0ÿüÌÌ?ÀÀÀ?ÀÀÀ? ÀÀÀ ÿ?ÿ33ÀÀÀ?ÀÀÀ?ÀÀÀ–VU@444444Zf€2f CCCCCCCD$� 0$„� UfffB€ ™™™€BDBDA†BBDBBØ“oopopopopomooAomooAomooAomooDBBDÿBBDBk,FVVVöfOfzdöfOfdÿÿÿÿ«ãä©«© Ìð ©«©¬«©À«©ÿT7ÌÌð ?SÀÝ=Ù< Té‰âçeAmŠmŠmR¥µAⵄb/Rµ¼ÐôRµÕÁ3À5S‘¿u?ÛÞ<3;æó&ÍÎ¦ÄØAQ;JŠ!ê¼2^c§ÿþUhio4¿]0÷õÿŸ=û*26Ók�.µ#I¤kyÞa)†ÿÿ¾ÿð€œz¾½y—KZ7À:YÿÿÓ*UXmri n÷‡e‹  + H`0(?(W///?_?'('('('@___`@00ÿ00(ÿÀÿ ÿÿ?ÀÀÀÌÌð ?ÀÀÀÿÀÀÀÀÀ@à€ÿÿüZÿ«„€þÀ¿‡Ð            &("  &$ .0*  ., 682(       2<                  535    "$ " *,& M                  )')    "$  &(" =           %#%     =                =                =  T15_rockT15_rockXÁšÀÄðA{” ÃÿÃo(oXÁÿCšÃðA€D{” ÃA(9 ?ð?vž�uë�uë�ð<üuë� W½ë�Àuë�?ð?FE.E.Eð<ü.EH?.EÀ.E㩪ª¬ârª¬ªärªª¬ârª¬ªª©ärªÿ?ª¬ârª¬ª7Tzxxjÿ?x ÃÕ'¶$¡Cg ‡º••€!&¤yÔrÿÿpr¡¬£pr &;i ;i 9e?kN)UÿÿQ,gÃ<3>=|`_ÀÔÃÿðÏÓqt‡^,Îghÿo""M<0ÏA8 €Ã<3*¥Ãÿð�¦ÊEzg=üûÿ " cpÀ Ã<3LK–rqä®ÃÿðÏ­Ç%S0pLÞTìëÿd:WB<0ÏWL ?ð?`_ @_ @_ð<ü @_Ï/ß@_À @_0Àÿÿ€€¿¿€ÿÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿?À?ÿ¿ÿ?¿¿@ÿ¿¿¿<„0„0uèrïìRîuíiÐA@Ä€¿tÐ  "( "( "(  .4 " T16_groomed T16_groomed„Á@!ÀÄœA€ÀÄ   ¸½¸„Á€D@!ÜA€D€÷½¯ Wÿÿÿ«¬ªª¬ªª¬ª©«©Ãÿ3Ï©«¬«¬««¬ªª©?ÌÌ¿ª©ª¬«©««©«¿¿Âü«©««©«©©«©©«©©«©©«©©«©©«©««©««©«©©«©«©«ªª©«ªª©«ªª©«§©«©©«©©«©©ªª©©«©««©««©««©«©©«©©«©©«©©«©©«©«©«©¬ª«©¬ª«¬©ªª©«®ªª©©ªª©©ªª©©ªª©©«©««©««©««©«©©«©©«©©«©©«©©«©©«©««©««©«¬«¬ªª©©«©ßÿÿÿ,,,?ÿ*?ÌÌÿ,??????+??Ô?*?*?*???*???)??–+*+*U***+*+*+*??????)==,*UUUUU ü00©ª©«©©üÌÌüª©«©©ª©ª©«ÌÿÿÀ©©ª©ª©ª©ª©«ÀÀ?À©©«©©«ÀÀÀ ©«©© «©ª© À©«© ©«©© «©©000«©©<ÀÀª©«©0 ©«©« ©©« ©©« 00©©«03À©¬«©UUUU ü00üÌÌüSSÌÿÿÀSÀÀÿÀ?ÀÀà ? 0? À  ? 000?<ÀÀÀ?0  ? ? 00?03ÀS}UU• ü00yzywwy܉ï<Ü6¯­˜Ä<ÿyÃLw=;+yzyzyzywÀÀÿÀwy•wwywÀÃÃü<ÿ#>#$=†9 Ãðý"4U2#>#$=Ž;&CÃð  óð#6ðÐUuPüðFN“•–öj/=%MYö"ɉ%ïÿÀþ{â¼äóðüK.ɉ«ü<ÿžISž�@\="FÅÃðÿ$òê×5ñª%c??0Km:ÏÚ € €óððàÏð/?œ›^\IÇ€§*qD+(yþÿðˆW+% ,óð¸ ÃÈ{KðóüÃ>=FmX,+XW,UePèC Jÿý÷ÿ;8#À6 üü<ÿ G Ãðþ *.#6 óðð!Þÿ Ñð° K Ãð óð##ðòTPüðöa“<;“Ìé´¤1ªÚpÆÌAÿËú¢�üž«ü<ÿXT«XWrg “�ÃððkT´¿ ¾½óððP94>q üüø9\�ˆ¯®ð dSóðkî�e¼Uðò]^TüðC $ ÿÿÀi83X?bü3)^ü<ð5'^56]()`óðð7%^5'^56?À_('`ð óð7T' UTPüðZìºä| ýözþ¼²Ä^ŽÿÀÈò£*žóððWXLû°rqð<ÿ’qÃðÿœ‡ÌdÐóô Ÿ??Lù®L£XÃÀð üüüÝ@ž·¤7æ­Ãð�×*óð)/Zƒ¯ËðòþýYXPH`àÿÿ~?& n;ÿÀ6!0{a ðV`oÿN;Ãðÿ*4]>6sR.ƒ``VüüüV=.�T&U0Ãà ã ðÀ×ÿÿÿ/0_00_00_ˆ'//Ãÿ3Ï//0/0/0/`/0?ÌÌÿ/0/`0(o0(o0(o0(/'//ˆ'//ˆ'//ˆ'////?p/?_Ð/?_Ð/?__Ÿ00(o/`(o/`(o/`('//ˆ'//ˆ'//ˆ'(W///?_Ð/?_Ð/?_Ð/?__Ÿÿ_Ÿÿ€ßŸÿ€ßŸÿ€ÿ00(?/X?/XŸ0/`(?(W/`(W/`(W/`(W///?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ` 0/`ÿ`@00DEUUÀÿÿHH@0ý0ÿHHH@aññ‚‚ò€‚~ ÿHHH@||‚‚|~‚‚~  UUUU ü00À¿ÀÀÀÀüÌÌüÿÀÀÀÀÿÀ¿ÀÀÌÿÿÀÀÀÿÀ¿À¿À¿ÀÀÀÀÿÀÀÀ?ÀÀÀÀÀÀà ÀÀÀ?À 0ÀÀ¿À? ÀÀÀÀ ÀÀÀÀ ?ÀÀÀ 000?ÀÀÀ<ÀÀÀ¿À?ÀÀ0 ÀÀÀÀ À?ÀÀ À?ÀÀ 00À?ÀÀ03ÀÀÿÀÀUUUUH@@€`€�€ @€ 2ÿÿ©«©©«©««ª¬«®ªª©©ªª©©ªª©©ªª©©«©««©««©««©«©©«©©«©©«©©«©©«©««©««©««©«©©ª©ª©«©«¬ªª©©ªª©©ªª©©ªª©©«©««©««©««©«©©«©©«©©«©©«©©«©««©««©««©«©©«©©«©©«©©«©©«¬ªïïïÀ««©««©««©«ÿÿÿ??@?,**+*+*+*??????===V@*+*+*+*??????===???*???UUUÀÀ «©©«¬«©©«©©«©©«©©ÌÃ3«©©ª©«©«©©«©©«©©«©©0«©¬«000©«©UUUÀÌ ?,????ÌÃ3????0S000W]Uméj õz�HÚwwýwwýwwýww�þðH¿�ÓÊwyw•wys…w}ƒ…w}ƒ…ånÃÿy_ø`ÆÚþð0ɶjeywVYewww÷L÷ÿþJ)888,_ÿ ÿ…S5$'6 FFF`…\*þ00MTÀµv mn\Ìרå<¯sCrfÝZðaá<7?$# ®©?¿Àž�«$ˆÃóÿz¦à?ŽM¹0_¶ÿÿð› {HF<á §E¨4Ëöðõ/'*?0 0  F@NPF8  .828&, 5      2864 >@.$  60>@.   60>@.   $1IGI    I      1/61<>8FH6(  >8FH6(  >8FH2$   2 864 >@.$  60>@.   60>@.   $E      A      53258:4BD2$  :4BD2$  :4BD2$  1/218:4BD2$  :4BD2$  :4BD2$   2 864 >@.$  60>@.   60>@.   =  ><  F@NP>0  F@NP>02 8 :4BD* =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  1/218:4BD2$  :4BD2$  :4BD2$  A?2468&$&(.0  &(  ¡      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28:4BD2$  :4BD2$  :4BD2$    B@ JL:0 B<JL:,  B<JL:,   T16_packed T16_packed(Á  Ã`ÄœA®ÀÄ   ÃÌÃ(Á€D  ÜA`D®Ú Ì’  ÿÿ÷efËgÎeghfÍhfÍeeegËeegËeegÎegeeegËeegËeegËeegeefeeÌeeÌeeeeghghgeeegËeegËeegËeegeeegËeegËeegËeegÎfËegËeegÎegËeegeeegËeegËeegËeege<ó<óhgeeefÍËefÌeeegËeegeËefËgÎeghfÍhgeeegËeegÿÿËeegËeeÍeÿÿ÷2344KK1KKK33ÿKKKKKK±4K1KKKK<ó<ó—243MË412MÿÿMM2UUU ÿà babab`bb?ÿð0zbababab`b0ÿÿÀbzbababab`ÀÀÿÃbbzbab`b 3ýÑ??Ï®OU&%Y$H³¾"+‰˜ ¾fNB:ô–�ÑtÞºžÀ)ØÜW*cŒýdpþ �dŸ¸�¿ÿÿŽfnHú/äúÌ�ZwåCÿò¡…,¯ ÀÏøOÿ.1.C6<òÿÃ%& $^!AÀÀóh 12U@»,! %2.6g < g"4U&Q#ÃóÏðL7*'(S,<@'ÿÀaÿ ŸõÿŸõ#*!!p-!4[*+ ÕƒÏ  ÷ý.IÿɽïD¾p½ Põâ4t_½”ÒŸAŒ¦è�Ïv�.;�&]2Ú 5$ÃÀÿÿ#9:8"l5"3H€ë$à:†fGýgé™äßéê]sÓY?þA{’u*ª†�ËZù�94^‘Š|ËX??ÏDÕ:+,,,ÎÍ¯Ô Š–°—X�'³$Öóò9‚Ý4;ùë…ú²î÷{Ïœ+™ {߈›?üÿÚ) ª‘4ÏÙG Zµ©xÿÂb…ïÅòú(`…C<=ÿà G0ÀÀóM$Ïòÿ\#@/X  #'N-N%B.Ð ÐÀ-<1úP0 ø×ƒ•Aïõÿ¿ÿôû¹ës",ýÓÀ_Wõ5$H{" ž­‰„¤v¡‡ =·Ém°öohÈç <î÷Ãã䩨¯´qÀórôó;@p”öýþ†Ù<ÑãðüÐox“‚s’PÃóÏðk^ÓvÐÏØÏÎÕ<[\)þHÿ(!"ýÅFãì bƒ0 ;<Ä×,»œ?J¿õßàߨ}ÿÿÏʈ�Ç9q!'¼Q”‡ÿð£AB#÷Ì<<P 56IJ<??ü_D 705ÃÃÏàV56!"cF<< a(,SCtQÃóÍ0(!" <B'ÿÀcÿ, # ÅÿÛÿ<  ;j 7ÿÿð")eL€ßÿ÷/0o_ ?_`@Ÿ`@Ÿ_Ÿÿ€ßŸÿ€ßŸÿÿÌÌ?€€ÿ€ÿ `ÿ `ÿ `ÿ ``@?@0o@0o@0Пÿ€€€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@00ÿ€€ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@000<ó<óp``@0/``('_00(o0(¨@?p0_00//`/000(o0(ÿÿo0(o0(0·0UU@�’@1ñ‚‚÷È`‚‚~``a†1üþþ‚�‚�‚~}Á€€ ˜UUU ÿà À¿À¿ÀÀÀÀ?ÿð0ÿÀ¿À¿À¿ÀÀÀ0ÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÃÀÀÿÀ¿ÀÀÀ 3<ÀÀÀÀÀ? ÀÀÀ? ÀÀÀÀ ÀÀÀ? ÀÀÀ?ÀóÌÏÌÀÀ¿À¿À?À ÀÀÀÀà ÀÀÀÀÀ?ÀÀÃüÀÀ?ÀÀUUU€ @€@€$ †@€@€ˆš´mί@(Á@Ä€¿ÌÐ        ,.0*(   :,FH:  B<JL>0     *46820   B4NP>$ F@NP>0  F@NPB4  .8:<64 68 BD2( 64 >@.$  20 :<*   … Ei¦Oikmcikmcikm')  '!/1+  3-;=3%  P,p“2:prtjprtjt:4BD2$  :4BD2$  :4BD2$  Y5QzSUWYKUWYOUWY        @4P{.PRTJPRTJPRT60>@.   60>@2$  :4BD2$  A2468&(*,6TRTVXV4(Z\(*,   & .0*   FLNXRTN PZ\      j,Hrt""HJLBHJLBHJL*$24&  .(68*  2,:<2$ ntñ.024"$&(2LJ4NP T16_powder T16_powder„š٠ÀÄ�BîÀÄ»?»„€DšÙ Ã�B€DîÃã?Û õýß3ÌÌÌBA†BBDBBð ÏÿØ“oopopopopomooAomooAomooAopÝooDBBD33?ÿBBDBDA†BBDBBØ“oopopopopÝoo±pÝoo±pÝoo±pÝooDBBDBBDBDA†BBDBBØ“oopopopopÝoo±pÝoo±pÝoo±pÝooDBBDBBDBDA†BBDÿÿBBØ“oopÝoo±pÝoo±mooAomooDBBDBBD†A†BBDBBØ“üÿ×¹ppBÝnÝoànÝoànÝoAopÝooDBBD©éº®3ÌÌÌ,ø@`VVVöfdözfOeÆO33?ÿ,ÿ€FVVVõ€ÆO\dõÆO\,ÿøeeeõ†ÆO\dõÆO\,ÿø\d†õÆOfOfdÿ.,úUðõÄ•ŒÄ•Äö\dÿÿ_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©Ïÿ̪©ª©ª©ª©«©À?ÿ©ª©ª©ª©ªÿÿ𩪩ª©ª©ª©«?ðÌÀãä©«©©«©À0©«© ©ü30ãä«©©«©©À0«©© «üüãä©«©©«©À0 ©«©0?©ãä«ÿð ©©qr«©©« ©©_UUUTSTSTSTSTSTST7SÏÿÌSÀ?ÿSTSTSTSÿÿðTSTSTSTSTV?üÌÌ9??À0 Vÿ3<9??À0 Tÿÿ7??À0 0?V9ÿü ?? ÿÿÿÿX™”ØaX'»è´+ËÚ((S('((&(�(Ý^Ä^Ö– (I¥ËC&ImË{^5o• T Y­€uÉϹs~§hœR£RyÓœ°ìp(B&`7^5?5$¥•‰7$mˉ7Z¥þm’Ýþ˜õ÷‡®Tx ¯¡ùiuj�Ù((®5^&(?k�¥È5�ÛþS7’¥ÆmÈ¥�tRcÓÏæ©™äŠî>àU—�(((®(&(mþ¥È‹×•oþ÷Èmü ìD7þ ööŒÞælÓ gQø¦((@ j6&^(öe.Ëö±æËwi “-6”"4]Á›Òëëºî131 +) )+b·™÷‡���$ðzŸŸ�jù&   T%B#>!>!D%H'J+J+a ?öY™ð���ð)&�hð&�, c$Eÿ…™Ÿ ð!-&�JñD¯( ""c"Aÿ¥™Ÿ™Ÿh!+÷¦�&¯Ojÿ-* " C9!#  ™ÿf©™ÿøÿ "   , ÿÿÿ¥Ÿ{�”Ñ,"+�u¤²-B�=ŽSABÜÛ\[t Èÿ¼$è@Ïœ!IUætõ„Я|éyïuv~x‹¹Ã϶ËÅØtç¯ôm{ÕpG �±°Tïà$£Z¹†Øi¥»çÓÒ="…£¥–£ýÁ¦ J% ùÜݰK&RMÏ ¦#$ßíY¡.è€N«0ò jWüè×]K­G\ ýn„¯ÞPÿÿ;£I n©›ðÜb$ÝèšC*Ç–ÅöÆ©ô-j_¯ÆP}þÅ"ìå”˗Ŭ:7뀺NÙbÚOéc­5Äêü'šÉz¾<ÚÕY©¹®ªða  o0ð0Cee/MO{ù÷00ß4ÿ”.€;ïN 1ðõCCCv( (&ù&"ðYPå?o2´&&$÷bñ8LÃ?o 9×ý­pÿ_Ï')""„QhðB£ðÿ÷Ó=0÷±ð�•$$ÿÿÿÉ}1ºatnð$¬à°!’°YzÉy;æ¥dc´³^y¦¤°l��Rã Æ›¯ÒuÆf~“Æú pJ[Õ@ò,ûС'C®dPmFbÈ’�nmXXl˜ÎÍó'f±—á",À›·„ŽT‹Û`’Fh¥"[9ñ›hæÚpi¹ °eæØ¬I–çèÎÉÙY ó£¿LDŒuÅXjT-ž`i2Ò¹Pl¯yJ­D&¾5!ÿÿC�>ØRß‘ÿÕhp44Ý(pÂA'㩽¨ÆÑM…f úb5Á‚Ô CR^|^PÕ »Sº2jΕãÌ î8‹øðÙ ð[¨3ÒÌ�¦¦©ª#$t’A ùœ†f#1Á33CC! qÌd31‚31"1$@$ã �31‚3#1$24@1i1¤s³WqD%$#"a0™Á?ñ_óü@ õ÷}׸˜2<΋¡q ¬GœJWŸ8Â0™?‘ a\‡>é¾åÕbã†oʃæ½<AŽOð WXYdglOPòPe‡‡#� Ha� 7ï3b _ðõev4 iRH�,ÿ7f ALãÿ�F5g€gJ%I’� ÿ2  å_�%d¸„&1ß}. ô?þ0ET1$ !õýß3ÌÌÌ'(W///?_ð Ïÿ?'('('('@___0`@0033?ÿ00(?(W///?_?'('('('X0G0G0G0`@0000(?(W///?_?'('('(00G0G0G0`@0000(?(W///ÿÿ?_?00G0G_`@0000('(W///?_?üÿ@'_H0/0/0_0`@00QEQU@Àÿ0ÿ ÿ ÿ@ ÿ ÿ@ÿ0ÿ ÿ _UUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿ÀÀÀÀÏÿÌÿÀ¿À¿À¿ÀÀÀÀ?ÿÀÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿüÌÌ?ÀÀÀ?ÀÀÀ?À0ÀÀÀ ÿÿ3¹»Ÿ»¿›µ "$R¸ý�÷$ý×ýÙ"ˆ$&ÿpâpN1�¤/E”>‹T71b»CÇŠ>×.ªB£;PošÞ`ç°„ ž»+F<çH bÒµÍ4ó®ðo,ÌšB%$!P$b9"G$'""L= £1¡Q" ùÿ``…†!ub ? û©¤�=̲¡óVœóœô9¨óîè—á�¡ó RÚÿ�ù,ÿùÿû&$¨.0¯äjX{_L;DsÃ"§¿†Øh0´Š$xÞœ�S¡#Z¤:4Y'ýÿ-^]Zktiû¿ßßß¿Ý÷Z(*,I’Ba ß00('(W///??HHHÏÿÿ0G0GG`@0000(Qÿÿ Uÿÿ?ÀÀÀ?ÀÀÀ?ÿ<ÀÀÀ¿À?ÀÀÀÀÀU  $€AùŹÿ„Â@Ä€¿ÅÐ             "$  &("      "$ >H                  %#%    ]                     ^É                         _Ôrt n…s€        "( "$ "$ "$ZÑ       !               $"$  !   #+-'  /)793%   3579')+-!\    /   71?A;-        T16_rockT16_rockÁHáÀÄðAîÀÄÕGÕÁ€DHáÃðA€DîÃþGö ]3Ï?ðOžMOMO¶?ÄÃÆMOMOPOMžOMNMOü3ü«„ÃÃOMM„ÃÿðÅMNù„Ã@„Ã?@„Ã]3Ï?ð%ƒNMP'ü3ü«4M²Ñ4MÿðMh4M4M?4MÕ 3ÏÏ©©ª©q㩪ªÌó 0¬«©ª©«©óüÌóqrª¬ª©«©ärªª¬ª«ärª¬ªärªªüü¬ârª¬ªÕ 3ÏÏ7Tüó 0@óüÌóVjzüüxÿ°_´i¨`_¾"9ýP\&„„tÙ`¾]¾`^``¼``+øâ¿â€`¾`ãB%¤ââ„PܵN&„(–9#&&ÿü„˜$ß&„„ÿ6'e6/*`7"mM1 (7`(_((‰(*a((%G?*9(7$ E{/jGCIÿüCIÿ[SÏÀºZ»+ZWI6d¿ÿ} #ÔáPG 1àД»ÿQþ»™ŽPF3óüPOA 6hVùHF@2>À "Æ 1�ÿ{©e¿¿‘œBKûîpO}_Ð2- <Z0a!ÒX‘;Çñaß‹;na/3bóüA0tOVùh$ð7x’@0À bÆ-01 0&'÷nài"ÙZïvsqÿ?ð’c!02a¬÷Ú\>øPÑW «êB]%n«Œ^@ -;óü\[;˜V©HFò0º -À 3Æ.-( 098·ð  7 ]3Ï?ð_ ?__Ÿß`_ ?__Ÿ Ÿÿ_Ÿÿÿÿ€ü3ü_@_€ÿß@_ÿð_€@_ @_? @_@ ý4gÿ‚À2€‚ü‚~Õ 3ÌÏÀÀ¿Àÿÿ¿¿üó 0¿@ÀÀ¿ÀÀÀóüÌóÿÿ¿¿¿ÿÀÀ?ÿ¿¿¿?À?ÿ¿¿¿@ÿ¿¿üü¿@ÿ¿¿¿U€h a€Cx@Ù U^ã_Ñl"6@ðÀ Ä€¿ÚÐ .4246864:<*8        JP ^@  "$&, :@  .4 "( " T02_groomed T02_groomedpÁ…ëŸÁœÂpA®/Á(   % % pÁ(B…ëŸÁpAœB®/ÁÖΠÿÿÿÿefeffefËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÿÿÿÿ22KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMMUUUU à ?©«©©ª©ªÿð00©ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ÿ𩪩ª©ª©ª©«00?ÿ©©ª©ª©ª©ªð00 ©«©©«Ìà 0©©«©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«© Ìà ©«©©«©0ÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©UUUU à ?Sÿð00?ÿð0S0?ÿðS00?ÿSð00<?Ìà 0ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÌÌà ?0ÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?UUuU à ?¹hhøò¹ºÿð33¹º¹º¹hhÝ)Ì?ÿð0&¹º¹º¹º¹hu0?ÿð¢&¹º¹º¹º¹h00?ÿu¢&¹º¹º¹ºð<<<¹huÞ;Ë8hÌà 0høúhúhü|üü6†¶ ²sÀÀÀÀ¤˜¢"ÀÀÀÀ¤˜¢"¤…ýµÃ?dt‹ÌÌà 6húhúúh0üüÌøYùKÐ@ÀÀÀÀ¸�WïÀÀÀÀ¸�WïÀüüð¸�ú’L¨?UÕuU à ?Vÿð03 ?ÿð0L0?ÿð L00?ÿ Lð0<< @Ìà 0B1=GÀÀÀÀ( ÀÀÀÀ( (" ÌÌà B0üìÌ@=)ÀÀÀÀh'#ÀÀÀÀh'#Àü4ðh ÔpÅÿstÒ:ôšú À3sŒ¢†ÀŽzz~Û\˜4 û¨ !3:ÿÿ?^¡eªNÑšá3éðïÿÿ|%"38+& ÐVØÀ ó ! ) %ÿ??ÔpÅÀ?!aBBB /  1" !ÀBÿÿþEJ!0 ýÿÿ/0/00/0_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿÿó3€ßŸÿ€ÿ `ÿ ÏÏó3`ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00TUUU!!!1ñ‚‚ñò‚‚~Àÿ„„„ÇÇÇ‚‚‚‚à```~ ```Àÿ„„„ÇÇ‚‚‚Çà``‚~` ``ªj•UÀÀ ÀË/ËËÌ ËËËÌ / ËËËÌ/ ËËË/Ì À#ÀÀÀ À ÀÀÀÀ# ÀÀÀÀ# ÀÀÀÀ# ÀÀÀÀ# ðÀÀÀÀ À#0ÀÀÀ # ÀÀÀÀ # ÀÀÀÀ # ÀÀÀÀ # ÿÿÿÿÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefefecfËffËffËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeeÿÿÿÿM2222KKKMMMMMMMMM2222KKKMMMMMMMMM2222KKKMMMMMMMMMUUUUÀ Ìé«©©«© 0À«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀ Ì«©©«©Ã 0©«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ «©©«Ìà 0©©«©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©UUUUÀÌÌÃ? 0ÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÌÌ?à 0À?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÌ?Ìà 0ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?UUUUÀÌÌÃøYúhøhú 0ÀÀúh[úÀÀÀÀúh[úÀÀÀÀúh[úÀÀÀÀúh[úÀÀÌÌúh[úúhà 0ÀúhúøYÀÀÀÀhúøYÀÀÀÀhúøYÀÀÀÀhúøYÀÀÀÌhúøYhÌà 0úøhúhúÀÀÃÿ[úh’h†’’ÀÀÀÿúú¢Û�ÛÀÀðü’úsÜžLÀÀÀÀ[úhúUUUUÀÌÌÃ@ 0ÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÌÌ@à 0À@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÌ@Ìà 0ÀÀÀð>ÀÀÀÂ6 ÀÀÐð2 ÀÀÀÀ><vuüÿ9:œÙy½d}Àÿ÷ƒ9A>==ÃÀðüÿwvu—2f™’— $àÌ€€ðì WUUU5WŽ‹Œ/0.-/0/0‹ÏÀŒ.-/0‹ÀÀŒ‹ÀÀŒ‹ÀÀŒ‹À<ÿŒ.¹Œ/0.üü?-.-/0‹Œ.-ÀÀ‹ŒÀÀ‹ŒÀÀ‹ŒÀÀ?‹Œ/0.Ïüóð¹Œ/0/0.-/0‹ÀÿÿŒ;Oé–{•~}ÀÃÿÿ ‹;#ÿÝÝÖ72KÀðüÿÛÑÒåã5Çy©ŸÀÀŒ‹ô3‹PÀÑÕ Àøþ  þÿIJ-‘žuo�ÀÿÈMIGHGG×À`\OðÌ<èç`|ðüÿ‘’kpP_\K<`H`øþ ÿÿÿÿŸ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0/0_00_00_00_//?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@00UUUU`Àÿ„„„Ç‚‚ÇÇà`‚‚~`` ```Àÿ„„„‚ÇÇÇà‚‚‚~``` ```Àÿ„„„ÇÇÇ‚‚‚‚à```~ ```VY•UÀðÀÀÀÀ # 0ÀÀ  ÀÀÀÀ  ÀÀÀÀ  ÀÀÀÀ  À€ðÀÀ€à 0ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÌ````ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÿÿgefefefeÿÿ Ì©«©ÌÌ?ÌÌ[úhúÌÌ>ÿüŒ.-/0.¹ÿÿ00/0/0/0ÌÌÍ ÿÿóÿXÁ$€¿* Ð   "024.,   >0JLB( JDRT>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .82468&$&(.0  &( -        E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, 1        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*,  T17_groomed T17_groomedœÁRx+ÀÄœAšÙ ÀÄ   °°œÁ€DRx+ÜA€DšÙ ô¬ ÿÿÿÿMN�MžN�MžN�MžN�MOMMOìMMOìMMOìMMOuOMMOžN›OÃOP�MOìP�MOMOMOîOMOîOMOîOMOÈN�MžN�MžN�MžN�MOMMOìMMœMNMœMMOžMOPN�POMOMOîOMOîOMOîOMOÈN�MžN�MžN�MžN�MOMN�POPOMOMOîOMOîOMOîN�MOÈN�MžN�MžN�MžN�vN�MOîOMOžP�OžP�OÈN�îOMOîOP�OžP�)P�OžMOPN�PN�KMNMN�P�NMOžMOÿÿÿÿ('('('(999ž%&M(9(;;;N('('('(9%Ú%&;;;N('('('(Ù;;;(N('('('(�(;'('(N(;;('(u('((&('UUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÏÿ©©ª©ª©ª©ªð ©«©©ÿ󪩪©ª©«©©«©«© À©«© 0À ©«©© «©©« ü©©«©©3ÀÀÀ«©©«©À000©«©«000©©«0000©©«©0à ©«©©30 0ª«©©«UUUU ÿÀÀÀÿÿÀSÀÀÏÿSð ÿóS Ì?? 0Ì ?  ÿ??3ÀÀÀ)À0000À00?00000Àà ?33 0*?}uU ÿÀÀ-.-.-+N-:-.-.-æ£mãRà@²ˆ£›-.-.ÿ?Ãð-+‘±‰ñû?ÿó:-.-.-+|--+--+ˆÂQ�(R§ÒOP�?ü ¤Ñ‡P Y.ˆ- < -+|©N cn!1'|12SÿÀ)P.WXÿÿUVK/|+;ttÝÿÿN½b ÁÞžÜöo®–¼—ª%=BEH?óüM",é!ç 5%4Ò±ðË)'âËVÏÛüIó{�ónÈA<ÏÐ#xS•l ‚ÿÀððÇXxw21cn Nk-SjĘ̈§=..Øl¼9«ææß d‘©î§¨‘’èç€i«†&N¯bo«ÀÿÏãUVlkñòäxTTUußÿ2G2�ÏØ T6E#¸)&$„eÏÿüJy®3X(‹n=#HBK<ÿÀðð6.#[ü 4:m™ü??N0{T?.8e?™F4y`"“f7->4qF*À›Äoÿÿÿÿ'(W/`(W/`(W/`(W///?_Ð/?_Ð/?_Ð/?_`@00_?p0ÿ`_ 00Ÿ_ 0000(o0(o0(o0(?(W/`(W/`(W/`(W///?_Ð/?p/0/?@00_00//`/000(o0(o0(o0(?(W/`(W/`(W/`(W///00/0/000(o0(o0(o/`(?(W/`(W/`(W/`(W/`(o0(?/X?/X?(Wp'/p?/X?/X?('@'@/?('/X'/TEU@„„„Âÿ� ÿþ ÿÿ0ÿÀÿ0ÿÀÿ0ÿUUUU ÿÀÀÀ¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÏÿÀÀÿÀ¿À¿À¿ð ÀÀÀÀÿóÿÀ¿À¿ÀÀÀÀÀÀÀÀ Ì?ÀÀÀ? 0Ì ÀÀÀ?À ÀÀÀÀ ÿÀÀ?ÀÀÀ?3ÀÀÀÀÀ€ÀÀÀ000ÀÀÀÀ0À00À?ÀÀ0000ÀÀÀÀ0Àà À?ÀÀÀ33 0ÀÀ?ÀÀUUUU€@€@ @„„� @€ @ @€ !žMO'N�PN�îOP�OžPü�OM'u((;('ü(À ©©«©À©«©à ?À)&vc�žQRQ¢š™ceÏÀf?¤c7&*)\k@?$ÏÀ# ñöC2NÎÛ óOçÀÇR 'f=/`'M<À=ygJÇÝ-¤hx±Àƒ¶wíºÏÀÚr1?qÇÇ Ö2Í@4$%7,±²h·L €ÿ†h 5D¤ æ›á¤l¨ìxÙÅ�G€íÀn@Q&A|1$c NÀUX'/X'@'@o0/X?/üXÿà À?ÀÀÀÀ€ÀÀ�€±ÿÿ ÿ„Á@Ä€¿ºÐ        .8:<64   F8RTB( JDRTB4  JDRTB4         :DFHB@  RDZ\J4 RLZ\B4  JDRT>0  E      EC2E8:4BD2$ 64 >@.$ .068&  Y         A?"A(*$24&  .(68*  2,:<2$  =      )'2)824:<*,.0 "$153b±s€r�#%   #+-#  +%35 o´ r‰      ?QKMS QWYGQSUKU      CQKMS QWY       ;MGIO MSUCQ        OYSU[ Y_a    #! +-'  +) 35+!  GUOQW U[]        +5'-  T17_packed T17_packedpÁ…++ÀÄpAš™ ÀÄ   @Š@pÁ€D…++ÃpA€Dš™ ÃsŠk ýÿÿÿ3ÌÏÿghÍeeÍhÍeeÍhÍeeÍhÍeegeeeÍeeeÍeeeÍeeegeffefËffËgeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegefefeeÎfËÍefËeÌfËeÌfËegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeÌeeÌeeeÍeeeÎefeghÍeeÍhÍeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegeeeÍeeeÍeeeÍeeegÐfefeffefËgeeeÍeeeÍeeeýÿÿÿ3ÌÏÿ4M4M4M4MMMý22MMMMMMÎ2K41414MMMMMM33ML4K4KKMMMMMMMMML2KKUUUU ÿü©ª©ª©ª©«©À?ÿ©ª©ª©ª©ªð00 ©«©©«0à ©«©© «©© 3«©©«© ©«©© «©© «©©0ÀÀ«©©L𠩬«©«©©«©©«©©«üÌ©©«©©«©0ÀÀ©«©UUUU ÿüÀ?ÿSð00??@0à ? ? 3?  ? ? 0ÀÀ?Ìð >S???üÌ)0ÀÀÀ?Õu|ô ÿüÏÐÏÐÏÐÏà¼À?ÿHìÏÐÏÐÏÐð00?Ïà¼H´àÈ'G(§Û§€(§€3G |3G ÿ|Ëç_§¨§§§€Ø¨§¯'§¯'§ð¯'—§§¯§§¯§§§§§§ª©ª¨§¯¨'ا¯¨'Øÿü¨¨'ب¨'ÿÿ—§§§§§§§§§§§§©•©ª©ª©§ç§­8¨¨'ب¨'ب¨'Õu|ô ÿü%&%&%&%À?ÿ2%&%&%&ð00?%$(#GJIl!Il'( '(ÿ3(IJGHGGzIl³HG’"kG’"kGð’" GG�GG�GGIÚGGI_JIJHG�J"³G�J"³ÿüHJ"³HJ"ÿÿ GGIÚGGIÚGGIÚGGIG2IJIJIG:G’VHJ"³HJ"³HJ"TUUÕ(ððÿ¹’ Ó³ÖÈÿÿü 6óöæÒo•âkj````UUÏÀ<Í\rÃÃHGHG>Ãðð=$³���ðÏÏÜXÌÖPÚÜBÏÀâí4ºÃÃ^]babÃððða BABAðרUU„€ÃÃÃðððB*)*'(ð%&„„„€ÃÃÃððð P$#$#$ð34ÿÿÐ/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0_0/0/0_/?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00ÿÿÀŸ@0000/0/UU„ÇÇ‚‚‚Çà``‚~` ```ÿ„„„ÇÇ‚‚‚Çà``‚~` ```UUÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀó3 À?ÀÀÀÀÀÌÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÌðÀ?ÀÀÀUU@€@€@€`@€@€@€@€@ ÍLAð +ÿÀÀ@Ä€¿GÐ     " &(   :DFHB@   RD^`J0 RLZ\F8  NHVXB4  .82468&,   U &n™  /)793%  ;5CE/!  71?A3%  D B3OÌ:4BD2$  :4BD2$  :4BD2$  2468&$&(.0  &(  1      5365<>8FH2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2864 >@.$  20 :<*   2,:<*  =   6$  >8FHB4  5365<>8FH2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  -+2-8:4BD2$  :4BD2$  :4BD2$  *4"$&(  E C&E,.(68.   60>@6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$    2468&$&(.0  &( 1   535 "*,"  *$24.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24"$&( T17_powder T17_powder�ÂRx+ÀÄ�B WÀÄ\Š\�€DRx+Ã�B€D WÃ�Šˆ UÕßß3ÌÌÏ«¬ª©«©«:ãÌÌ?©«©©«©©??À<«©©«©©«©«ÿüÌ쫬«¬«©©«©©óóüÌ«©©«©©«©©«©ÌÌ¿ÿ©«©«¬ª©«©«:Àÿ??ã©«©©«©©«©©«©©«©«¬«¬«¬«©©«©©«©©«©©«©©«©©«©«¬ª©«©«:ãüüü©«©©«©©«©©«©©«©«¬«¬«¬«©©«©©«©©«©©«©©«©©«©«¬ª©«©«:ãóóó©«©©«©©«©©«©©«©«¬«¬«¬«©©©®®®3ÌÌÏ,`@``ôfôfôf@@v444``@`öFöFöFððð@,€dfôfôfôf@ô444vfFöFöFöF@,FoFoFoFdCCCFvdodododo@,dfôfôfôf@ô444fvßUUU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©«ÀÀÿ󩩪©«©©ª©«©©ª©ª©ª©ª©« ÿ©©ª©ª©ª©ÿÿÀª©ª©ª©ª©«ãÿÀÀä©«©©«À?ó3©©«©¬«©«©ÀÀÀ©«©©ãäü«©©«©©ÿÌÌ«©©ª©«©©«©© ?«ãä©ð «©©«©ÿ30©«©¬«©«©ßUUUTSTSTSTSTST7SÀÀÿóSSS ÿSTSTSTÿÿÀSTSTSTSTV9ÿÀÀÀ?Àÿó3?UÀÀÀÀ?V9ÿ?ÿÌÏ?U? ?T7ü ?ÿ3]Ü^<] šz]ÍŸ¡h JŸö 7ÜÓyqžœœ<=¬-š;ª-\;ê/ êôçÚÜXç=çÚÜäØ|_$ÚzWظ•éº!½äŸ¯#ÍÍÆ¯*TÞ®(°œœ^ö×›@××>™ªº™ÍÚÜÚ–Úç=å=çÝØ«¯®®#&!+ /151 ›¹ûK‹‰GQ"G1GQù¹¿ ,, ûûùùô.! ! ! ^/V/R+P)F%8!4A.]'%!y¹÷1GQGQgQù¹û ,ôŒôŒôŒôŒ"!#!*"*,"Q2e)'#¹¿u“us›Ÿ°�°Ÿ ,"J¯HÏJÏhÏ!#%(",.$ "_.[+)# »÷1GP'1%Qû›û  ô".$ÿÿÿÿ&Àæ}&Û³�%ŽÚ2<¶ž�1â¶X[j=Y‚acZf‡¡P¡ÝÏg×o²µX^Òî`�.—¯Æ.Ç(Œ–º³ÍþO÷“ЏÅá—ãÑñBAC+%¹`B7«mkVÙ„­ýœí¦0îbä3¹.ê]ð²�žßàÞÝß iiò'Î#“©ßA!æÞ¡”oÈã©ÀdºøîGÂÀPàg­¾Æ‘‚íþý˜óÊ5 âºZ§Ýoà-Q_ Ÿ`OŽXhRžf„®p(†b”D*kÉ}Ÿ"�ì…E4û·|UÖØ†«ÎÓ²ü¢µç®+ƒo² ^T‘’‘ÊhªªªªD”t0!Cd°²Òý¹$ùÙùÙ0P""eCe’òòrý$÷ÿ×ý×`A!&$cÃCòS36PaIÙù»ù»""ù»Peee"�×ýõÿÕÿÓ$$$`4DS7 X8›¿›ß›ß"$$�³46VYý_Ý_Ý_û8"""& óA5U V‡Ûù»ù»÷"" »0eCC¿ÿÿÿÿÕ@¶Öûï øûÒ¢ïë¿vqýl�ÈÀqàc ï¨ -¶Ã€U|‡b÷U4pL’j[íëÇì¾ÎS¢ašúóy(LÇHD±8ŒÑòö¼Ò¢™ÚÛJàIÇÁ‹„Ô9^Û. š•b7죈ÏZmÆ{@Çû³”ÇèÍLì목h–‡ „ùv&Õ rºö\Õ‚K Š2ÒÈXÙ¨{:GD5²ãÊ -Äó–)ªŠÑC®hç2p‰>Ø×ú­¾½|±�”Ò�`û’„˜6Rù°<ßZž½¹T•G…[ùô›U–8RAЊû=’¨ÁW²hr½$(óL:ij•ìëìæ8–jjf3áaaR1&Üîëî$!200£1£1£0"200A„B4B”$r$û™� 1£1¥£1B1XA$  "G"G"G¬$g13_ÂÄ 2BrBrBR  ÕWWW!@‚ÞÞZpS¦YQuEŸŸ¼Rf5{šyŸ@5fÏP"Æ¢´�½ÿÿàz$–çß�ñÉšZZZÿST¥¦QŸ6ê;ãÑÅ|`IíØ¡uŽÿÿHKõ«œbæ³ÁiiihÿÿLº¹h³ùú´æþ1sÓí!Á§Û»�Æ.KÙÿý$ŒYÆ!²|p ¥¥¥ ÿÿba´g5Ô�Ї‡CCE²ôò’ÿ,÷ÿ÷ÿ÷@@!,*ƒå£cð eee  ,,*×û(VVV]*** ÿŒ.eeeßv~vþÎmîK«*è¬@]Zϼ‘]d~^‹å`v˜ÛÇÊR’€N¿.DN^�KÁç::0@�€ÿÿ“�Å�Œgd{ž_F†ç±Ë_|azÿÀÀP5ŽK&¤�ýý!ë¼q~›àI ÔÉÿÓ_z\ÿÿîwÑ’Ý’ÜÛ0a1�0a0@&ÿÿàñ‘€•Ó-(ÔI£·ÞS�yÎaÙŽ44xü Â’ØKfeuebóô2ÿ‚g`]^~îÿ, ýÝûýP"**$$$$��€ïÿ<e^�%Kýûÿûÿ*<ÿÀ€< BBBBI“ÿóB~wn  , , ,ÿ&  &ÿü>wxwp ‰ÿûýûýù**(ü Õÿÿÿ3ÌÌÏ'(W///??ÌÌÿHÿÿÀ HHGGG`@0000('(W///??HHHGGG`@0000('(W///??HHHGGG`@0000('(W///??HHHEDD@0ÿ€ÀÿÀÿ ÿÿ€ @ÿ ÿßUUUÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿À¿À¿ÀÀÀÀÿóÀÀÿÀÀÀÀÿÀÀÀÀÿÀ¿À¿À¿ÀÀ ÿÀÀÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÀÀÀ?ÀÀÀ?ÀÀÀÿó3À?ÀÀÀÿÀÀÀÀÀÀÀÀ?ÀÀÀÿ?ÿÀÀÀ?ÀÀÀÿÌÏ?ÀÀÀÿÀÀÀÀ?ÀÀÀ ÿ?Àü ÀÀ?ÀÀÀÿ3]å¹ ?›Sôx*ŸxZ3ýÔãóñ`$/¬ç©åA×k{é[^ Êœ¹¨{ÙÈ]ÅÛÜ·ÉØly=ºÿÿð>¯ô*a¶xÐ)®¯¬öŽô¬ö¬ÿ%%%&"*,$" e&K))#  ¿SSSQ¿�°ŸJÏJ % % ! * **$ W&G#')! 1100ð(¯&Ïpj÷ÿÿð. (*$ "L)ÿÿ„ª`¹_΀¹¹ÑÎ]Mâ“�I��Ëý¤3\K”iQ³7xXœëffRoºüÏø¾óˆ²²OP® 3•5ŸÏþ¾×JQ:Ð÷ö7ZMÅ=pÖeûßdëÁ×]"/ä.ʵ�ÅîÏÓ­]—¸~ƒ¶€ @Ïš­§9 8–Fùvk¶bÞénÿÿÀÌÜé �dªêÕÿÕÿÕÿ³¡$$$4BSzP›Ÿ›_›?»346[û_ý$?ý_�õ€2B$&4AS6P»?Ù_õ_Ù´*  2  0Ë9 ÿÿ~2Õ9‚¦§Gœ;~¥ï0 "/C¶•YîYQ^¹™rWD?eÚÇe‡€Î¹ÑªÔªZúŠÖr-LKÑÒÒxˆ×ý‡7 êðníæËgŽ9¯ƒtý²FBBÝc«+§ðµr•Ÿ8FHB4  .8:<68:<*,.0 "$ "$   . :<2 :4BD:,  B<JLB4  .8                ECE    "*,&  .(682$  2468&(*, 9ECE "*,"  *$24*  2,:<2$             535    "*,&  .(682$  2468&(*, 1535 "*,"  *$24*  2,:<2$       535    "*,&  .(682$  2468&(*, 1535 "*,"  *$24*  2,:<2$       535    "*,&  .(682$  28&,1535"$   "*,"  *$24     535    "*,&  .(682$ ]     T17_rockT17_rockÀAî*ÀÄðAÀÀÄl%lÀA€Dî*ÃðA€DÀÃ%  6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀõ þ&œ&²¼&&œ&Ó"/œš(û+º(š(¡yã¥æ ÿÀ\yUWM[I[G_OcÿÀS/R3:¬þTSHX$WfåÖV$@2S ÿÀ OJ†vƒšga¹4G¼#hcvAcén+[ÚÿÀ"Q^`$1ƒ$€ ?0O`@LBÈÖbaœ#x1De†!<]fDt!>@c ÷À ]?C$"f1ƒ€€?ð?`_ @_ @_ð? @_ @_ ð@_ ÿÏüÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÏÀÿ¿¿¿„0„0„UUr€ðèæqFaÐA@Ä€¿qÐ  "( "( "( "( " T18_groomed T18_groomed¨Áf&4À#ÄœA¤0)ÀÄ   —¾—¨Á€Df&4ÜA€#D¤0)Ã\¾T ]ÿÿ3ÿüÌöõöõöõöõöööáöööáöööáöööø…ÏÏ3?öõööõøöãõÿÿüøöãöøöãöøööööööööööøöööáöööáöööáöööøöõöõöõöö„õ÷ø÷õ÷õ÷ööøöãöøöãöøöãöøööööööööööøöööáöööáöööáöööøöööööáöööáöööö3333øöööøööööõöõö&ööøöãöøöööøöãöøöãöøöãöøööööööööööøöööáöööáöööáöö]ÿÿ3ÿüÌ&777õÏÏ3?&7&ÿÿü77###777ö&&&777###777%773333&%&K7777###777UUÕU ÌÏÿ©«©©ª©ª©ª©000?«©©ª©ª33ÿ𩪩ª©ª©ª©« ü©©ª©«©©Ã 0«©«©©3«©©«0 0©©«©ÀÀÀ©«©?0à ©«©©«©©ÀÀÀ«©©«©©ª©ª©ª©ª©ª©ª©ª©ª©ªÀÀ00©«©©000«©©Ì0ë©©«©«©000©«©UUÕU ÌÏÿS000?33ÿðS üSà 3?3?0à 0?ÀÀÀÀ?ÿ0à ?ÀÀÀÀ?Ã?UÀÀ000000??Ì0Ã?0000?uuÕU ÌÏÿóytt†óôóø÷ððð<þˆ‘ùîyŽ ov’ƒóôóôóy�ž ütt†óyttà Óttvãtÿtá^áÞ磪rv{|tûüÀÀÀÀãttÿÐà ãttvtttÃÃÀÀ¤C¸ëŸtÏ?¤,HS’6?´È„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ€üüü0£ t]^>§Þt0000¤ttt?ÌÐätttvtt0000¤ttt¶vÖeÐÐÐÐýíÿ8ðð0?8E) T)@E#@bE)F?   21ÐÐýÝÐ8Ð Ð- (ÿ 6Fa8E'D$FoFM 21 ÀÀÀÀ( ýÛ Ð °(ÃÃÀÀ( Ï?((5 "; *)*)*)*)*)*)*)*)œüüü0g>= "!.5 0000( ݰРР(0000* }5uÿ eñ}) ›’óv~´Ø+ík`M ¨ø~]ºè¶ÏWÐÏ|{üHG•בר?ÿ)�Ñž�Qx«ïã½MÙYÚÝf“(¼ü•ÞGÏÃÀ/þÍŽw5±e~Wî¤O�%´VýÑ…?Ì’‘²v7DA­ðü'µÒA€ð äüHG•ÞGu5xÿ Aóñðÿ%Z5N=@%= º+  A6CÏ$#  ÿI0'D3L=#�"# I"C 1¿PÜ `%)\% D ?n'K,) ð }uõWüÿ“/neËw“pocP¡ôúÞö@ØèÐÎ?ševd.&‰1�“”“}M)ÏðË9÷¤£warhÿü¸˜Ã,Ó$Õ�?ÿ™^0Ç%YZïńȥŒl¤�æ»&R¹›ÀÀš™?üffË9. ¸ÏÏÃÀ™bÿžü±IñsÍìhªìÈh4c5Ëuã¸ÅUVUVUVUVUVUVU�ƒ¹dÛe1õ+ÝÒœ¹³|/¿ð0[К0ÿü™fÌÃ,Ó. 00š™jeiV@‡ÅKÏËN2k&?£ËK P@ ¿  Ϩÿ13>Ðÿ€@ UÀA p6ﯯ?ÿú%$? !Tu/ðÿ÷õ.ð &@ }5tÿ|{ ÏÒ-Q€ÞweGJòõ_¸·bEg(j¡HZûüTS?ÿ?@;>#.0 EöVùaE-!*Xåpv�ÃÀ"#·Æ ‚�ºÆ|Âè7�¼Ühil?_´W†åVt‹+NÀ¿8À7Xÿ Qóððÿ/rEdOP-OpH ÿ_>3ZÿÁ†E`M/~šÞ`?ÿ?)9d 5T*`?Àu5uÿ12h�Ãððÿ§µ¡àßÜÛÁ"Ô"SrÀ¢">3É$ϸopÿÿüVUOþ­ÿCJCYã�öõ~ܦ8î{‰†-÷ÈGüO¦UÎÃÀOTy�V[ÿåöMNoZÐÆb?ÂÉFè$¼`á‚óÿ¥šÙ=éð&#üVUO¦Uu5deÁ ðg~3$'$UDYÏ,+  Ð:*+$]*W&EÄ�€Tð&Q/ö!? ~ÿìÿ1"_ 89& ðÝÿÿ3ÿüÌ/'//ˆ'//ˆ'//ˆ'///ÏÏ3?0/00/`(o/`(o0(o0(000'//ˆ'//ˆ'//ˆ'////0/0/0/? //0/`//`//`00(o0(o0(o0(000'//ˆ'//ˆ'//ˆ'////?p/?_Ð/?_Ð/?__3333Ÿÿ€ÿ ``@?p0_?p0ÿ`@00Ÿ@0000(o0(o0(o0(000'//ˆ'//ˆ'//ˆ'/DQÿÿÀýÀÿ3 ‚~˜H0ÿUUÕU ÌÏÿÀÀÀÀÿÀ¿À¿À000?ÀÀÀ¿À¿33ÿðÀÿÀ¿À¿À¿ÀÀ üÀÀÿÀÀÀÀà 3ÀÀÀÀ?À3ÀÀ?ÀÀ0à 0À?ÀÀÀÀÀÀÀ?ÀÀÀÿ0à ?ÀÀÀÀÀÀÀÀÀÀÀ?ÀÀÀÃ?ÀÀÀ¿À¿À¿À¿À¿À¿À¿À¿ÀÿÀÀ00ÀÀÀÀ0000?ÀÀÀ?Ì0Ã?ÀÀÀÀÀÀÀ0000?ÀÀÀUUUU€  €€! @ @€B€@€B€  ÿÿöøöööáöööáööööøöööøööööøöõöõöøöööøöãöøöãöøöãöøöööööööõõõøöööáöööáöööáöööøöõöõöõ…÷õöõöõöøöãöøöãöøöãöøööøõõõõõõõøöööáöööáöööáöööøöõöõöö„õöõ÷ø÷õ÷ööøöãöÿÿüøöãöøöãöøööÿÿ77%&%&%&%777##$$777õ&&777$$$$777ö&&7ÿÿü77UUU00À©«©©« ©©« ó ©©«©©«0À©©«©30©«©©30«©©«©ÿ ©«©©«©0À«©©«ÌÀ©©«©0à ©«©© ð«©©«©UUU000Ã?? ? ó ?0Ã?3<??33?ÿ ?0Ã?ÌÃ??0à ? ð?WUu¤«‘MÔ‘2VoÏÿœ¢1¦hV§ZóÌ „¤tt ó t¤tttrtÃvurãtÿÿrãô€+ýÿÿù‘Šf¶tß rãtrtt0Ãtt¤ttÿÿtΞ4_ÔUóA¶^(ËÌtIJ¤t ðtt¤ttt—•µ*!!!6=0E\Ïÿ 7B /óÌ ET7** ÐýÝ °*0à ( ÿÿ (/EE,XEÿÿF) 9,En ½ÝÐ(0à ( ÿß GF- Ep;.EZCD ( °Ðý½(7"ê£g�óû$ ΄Yçé�¯�ÏÞCg1 Ì˸ÿü)Zo@:<>@*,.0 "$%      EC&E,.(68*  2,:<.   60>@2$   2 824:<*$ *,24" "$*,       U S.U460>@*  2,:<.   60>@2$  2468&(*, A      53&5,.(68*  2,:<.   60>@2$  2864 >@.$  60>@.   60>@.            1   . 60>@:,   5365<>8FH6(  >8FH2$  :4BD2$  2468&(*, =      53&5,.(68*  2,:<.   60>@2$  1/218:4BD2$  :4BD2$ 64 >@.$   * 0       =;=    53.5460>@.   60>@.   60>@2$  2468&(*, =     5 3*502,:<.   60>@.   60>@2$  1/21824:<*$ *,24" "$*,]  535 "*,"  *$24.   60>@6(  2468&(*, A        5 3&5,.(68*  2,:<.   60>@2$  2468&$&(.0  &(  A   9 7*902,:<2$  :4BD.   60>@2$  2468&(*,  T18_packed T18_packedXÁ¤06À#Ä@An$ÀÄ   KAKXÁ€D¤06Ã@A€#Dn$Ã�Ay ýÿÿý333ÿY<Y;<YYYYYYYYYz<<YYYYYY;ÔYY<YYÔYYÌÿÿÀYY˜<<+++ 4,K-:ÿÀÎÿ @ÿÀÀÿT,E,?,?,?l;,WÎÃÀD"=ðÀÀÀLEOÕßÿÉ_ðI„Ö¦ÏÏÀ„ø�xÛ °ÃÃÉrqr�žïšj" 434stÇü¼åÝoÍÕƒðïø<< "!"!"!"Å.-B-B%&" ° ° ° ÿ2$?ÿü#$#$56ƒ, ?ÿ$+$C NŸ�ð8ôà ÿ °ÿ&#ÆA.A2EH5ÿÀ'#`'ÿ�ù=àð.#UOÕßÿ�c¥$‹ñ�ÏÏÀ‹ÏSÛÓSÀÀTSÃÃÃW½éê•ÜÛé® �?@?@)~ÑÒÑýþ>í¡¤Øˆ\òŒ^<<aœ;abÛÜõMAUÿJK:ÏÏÀK:K<0H``}<;N;L-.2›ü1!:>? -ÃÃÏð!~?@ÃÃÃEMUÝÿè JâÜBÏÏÀâÚFàÔNÞÃÃÃò(æåæÞÝdüððïí… Ÿ ŸfeÖPIÛáAÛáâ<<!ÀUÿ<ñ?´DCDPOFE1*ÿÿ­(]ä³AN¨?@?@Ï?‰Šm| ²±ab À Qÿ<óG!"!$#&%~Ï? G'&%$#4À3Uÿ<ð?ÊÍÎÍÃÄ\[ñ@²ÿÿ¨ZÛ%”{™‚Ï? t°¯ÐÀÏF44@ÿ€ë:²ÿÿë:9ì±9,@ &@ÿ`@?@0o@0o@0/0o_ ?_`@Ÿ`__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@0o@0o@?À@U&cÿB@‚‚��‚‚~�€†€UÌ0Ã?ÀÀÀÀÀ 3ÀÀ?ÀÀÀ?ÀÀ 3À?ÀÀÀUH!ØžÆÎ‹@XÁ@Ä€¿UÐ    "$"$    2<>@:8   J<VXB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4 U        EC"E(*$24&  .(68*  2,:<2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E864 >@.$ .068&  &(.0 -53 r¹     #% 4tŸ&Jt5ntnt.(68&  .(68"  !"$&(   *682 :4BD:,  (*,&$   6(BD2 :4BD2$  (*,&(*,  µ      =;.ná  71?A3% 75 ?A3)  ;5GI3! 4 23kØ:4  .(682$  :4BD2$  2824:<*$  ., 68&  *( 24"  9         53"5(*$24&  .(68*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%864 >@.$  20 :<*  *,24"  T18_powder T18_powder�Â�‚2À#Ä�BR¸ÀÄš8š�€D�‚2Ã�B€#DR¸Ãf8^ õýÿÿ3ÌÌÌ©ªª©©«©«ð Ìÿ:ã©«©©«©©«©©«©ª©ªª©©ªª©©ªª©©ªª©©«©©33?ÿ«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«¬«©ªª©©ªª©©ªª©©©éº®3ÌÌÌ*è`@`”iF”o`Z ZŠiZiZo33?ÿ*þ€diF”iFõ¦•¦•¦•� *ÿèF”iF”oZiZiZi� *ÿþ€diF”iFõ¦•¦•¦�  *ÿÿèF”iCOZiZiZi–_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«© 3?𩪩ª©ª©«00?ÿ©©ª©ª©ª©ªÿÿ𩪩ª©ª©ª©«?ð0Ããä©«©©«© ©«© ©ü 0ãä«©©«©À©«©©«ÿ ãä©«©©«0ÀÀ©©«ÀÀ©©ÿÀÃãä«©©«©0©«©©_UUUTSTSTSTSTSTST7S 3?ðS00?ÿSTSTSTSÿÿðTSTSTSTSTV?ü0Ã9? ? Vÿ 09?Ã?Tÿà 7?0ÀÀÀ?ÀÀVÿðÃ9?3?ÿÿÿÿXCŒÁ@~‚93z.57x%WXËËË˸°O‡=GÔSƒÔA�±Æ‡…‹n^ò±ƒ£ÌšA–&ATºšŽ¢ ¦'Óô·›c�¥UÑá ÜÈÓç4Ü<€€%N0P0A’0AÄTº�VüÑA–üÏA–üS]P•)«zx¡{âÍêùî‚€>~%0P0N2 rÄAÚüìAØ¿ªAØÁªAÚ¶5×à\'zÇYEyO—®™<€<`rA rr5¶ùƒå;&…¡&ƒ¡=]A£õÑò)«z„-òù ¨xÐË\>>Û´uöwø¹ö÷C_ãA_F܃HÜëÛº®'(- #!yyùg‰1QŸŸ V#F#P!NFB@>S$G#'3-ówwñ1L¼ü¼0".2((($a"A!%1ÿyWQ/Q�o�2".2(((&i =#ÿù—uñQ//ð(ðHñH6",.((($g =ÿÿ{wQ#/+#���ÿÿÿÿd o©íT‰ˆ&TÐЃ¿Z3ùFÚ•àºëÛ›õY¾ 'í~çf0Vô|šÃi{°Î�u¦Å¯ª@]¬Î… ÔÛ×AæxCÏ[!D)”80,Mzü­»Ûg¯åÿ%ܵ|»6@1׆±;^; L•ÛvX�¤/YΕ`¢\aw–”(¯Ž"¦Ç"rÛjb4�B4ì*¶4¶íCœŠ&¿Á2"nC³²ÂÖm¬´·Kâ2-çšýú-Çö›å}K‡§÷�"áqþÎá2xèÇÊ}•|y‹û“•]–\D•Ÿ yM~d‰7OÞ�ñˆ»¸Ð4•\C› @‰DQªªªªA`4Ò#4ÒÐ1ÿ?ÕûS¶oMOo ßo¿oó"6H+T2�ù_•ù_•xùöùöùöÿPrBñ$„R“ o³û?³û7oŸoŸoŸoõ'DJPE2°û?³é>“–ûöûöùøÿ20@"òL„PO�“Ç<x}�Ÿ�Ÿ�Ÿÿÿÿÿ  Ôö�­�J Y‘`¢B_¸Õ¥5.5h™U`(¢ïtM§,¥ÞûvL‰Õõ戫ÌPâ,„è‚~äZÕ[E³¿»’¡õíü7ÏÉÌ-¡j.š�=o'Ä—ë;�ÌË=ÐILm¨Tœ« ØïXß±>p¸­qÂÊžµ(Ìz}e¤y:‚U�'ô!ÑôGaªÄý1»ýD¬ý 8º«[loP~eÊ2éôh{ÝšÒ!T©>Ö�(2³žŸÐ�~¨µm>Êÿ=(�áw#»å‰Øc߬W° 0Ë<�ÈbÛdeY¼'²gÙ®Šùp¦Øÿ�’«×_Yµ êcæ†ÞV¥Y–#!#ƒƒ!À˜á1¡oDdF{ÓÈ a 1`1`0@1Â31º®= j�á® 1`1`1ÏJ‚ (!###Õu}ß\ØóÆ?üÿ/ºsŠÕ�²µ=ÿ1�VZ·˜æ–#³ÃÜîïÃÿÿð?n2ãFíS›2ëì aHG¯Þ^ä˸¨LTPˆÔÿÿüT,Òzü®®+ûÎφö¥Yþ¥úØÔ¥ÀªÃʨ¬#£,’~ I¶—Àá†(xouY¿©*þ¦ß‹’¼S5ómf[U¶t´8a šIùÐtÙò®rÎL a†¶�Oo�%&ÿ�ÿoõ(&w@00Vùöûöûø üîŒ0�Ÿ�Ÿ�¿ ÿ»+0výøùøû ÿþŠÀ 0 ¯Ÿ�¿¯¿   ¯mÛ¶/QQ‹42=A00H)ïfÉdfǶÿð444ædPúØÿö%:˸%JúÌo.7’÷f úS¥úÿð@@@“Å¥0æÿÜ›Q3­ÒŒSG-¤ÆÝ¡¿ï²³/ÿVVV4Û¨ ¹€ÿFÑÑQ˜OŘ “a©Âsü:Ë’ƒÿÿ%```!•§UY–e=ïôafon ´nÎÿ ÿÄ����! 0û/b ?ðý_Õý_[Tð``` @˜ ÿ,Y^“+oÕÿ�øü &Ï*UX Eðû_µýeXÿ  €Ë+V¯ñÿ�³û>qpi^ÿ˜õýÿÿ3ÌÌÌ?////?ð Ìÿ?0000/0/0/0`@0033?ÿ00(?////??0000/0/0/0`@0000(?////??0000/0/0/0`@0000(?////??0000/0/0/0`@0000(?////??000/0/0/QUUU0ÿ0ÿ@ ÿ ÿÿ€ÿÀÿ Àÿÿ_UUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿À¿ÀÀÀ 3?ðÀÿÀ¿À¿ÀÀ00?ÿÀÀÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿü0Ã?ÀÀÀ?ÀÀÀ ?ÀÀÀ ÿÿ 0?ÀÀÀ?ÀÀÃÀ?ÀÀÀÿÿà ?ÀÀÀ?ÀÀ0ÀÀÀÀ?ÀÀÀÀÀÿ?ðÃ?ÀÀÀ?ÀÀ3À?ÀÀÀUUUUfffB€ ™™™°$�@ @€€H€ªª©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«©ªª©©ªª©©ªª©©ªª©ÿÿ©«©©«©«©k *ÿþ€d444õ¦•¦•¦•¦–ÿÿ«ÿ Ìãä©«©©«©ÀÀÀ©«©TÿÌÌ7?ÀÀÀÀ?…$HT8žÉ­ïмöXò·y"6âN'>~>™øwø¹Ç¹Åùƒ$H˜ƒfFšÇfŠVŨHÿÿ0ÏÝ>'ÎŒzk6$(,(&($i"=%ÿõ·uðQQP/+!ðHðHñJðHÿÿ2$(,((&$Õ4ÊvVÇÛ£“†Œ>ýo@³/× =¯Ö´ VM@�e²�—† ™´ÿÿ‚¢#‘¶zܯz�ÓC /#HLe8ð ÷ee‡    ü¢ ¯•Lt_üüŠœhn—Ðͺ§ÃYåþ19MÛìef�åŒÝ¬sËžh±iâ7«˜ËàEÿÿL/½á'dpe´ € 1B1B1B1¤{k]éžMª¢F·ÁæC@ðÀÌ+•ôqw«gµ²nÐb`†êÿÿf¡±oËŠì‘b¯óC/0ºûúùøùöý  "ü m>Àÿ�³Nà…útª¼Ÿ!Ƴœ`_nùðVVV4üð Y€û*WV e?ð ÿÿ÷©i^Æff`0`@0000(?////??0/0/0/0ÿÿ`@0000(U€ÿÀÿ ÿÿÌÌ?ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀ@@€âø˜ïÿG�Â@Ä€¿ŸÐ            &("  &$ .0*   ., 682(          .8                  535    "$ " *,& M                  )')    "$ " *,& =           )')    "$ " *,& =           )')    "$  &(" =           %#%     =      T18_rockT18_rock@Àf¦4À#ÄðAn*ÀÄx+x@À€Df¦4ÃðA€#Dn*Ãs+k ?ð?úéêùêùêð<Ïùêç¹¹¹ð?êùê?ð?\[>[>[ð<Ï>[^ƒð?>[>[㩪ª¬ârª¬ªärªª¬ârª¬ª©«¬«:Ïüürªª¬ârª¬ª7TzxxVÏüüx÷óÐuwwñì/ˆ†–/ˆg±ˆ†á3IJ±ÿÿü»ÌˆA=І/]9,_/.a-2góR?*”JÎ_#ÿóü{rRÍH ;mA�?ë& ;& Ãÿÿ÷ø I’scC~s%3t ÐÊ3[�ÿóül1súH9�hÄ?ËPw Ãÿÿ]^]OŽ>]ùúè^>à ‰L;\˜Ò‘ AÿûücHX<£>›H�?ë/:DA$ ü¬;o˜?ð?`_ @_ @_ð<Ï @_ÿÿ€ ð?@_ @_4Ïþ‚~ ÿÏüÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿ÿÀ¿À€Ïüüÿ¿¿¿@ÿ¿¿¿„0„"`x@÷àrõëÙåD6aÐA@Ä€¿}Ð  "( "( "( &, :@ " T19_groomed T19_groomed´Á…9À,ÄœA�‚2À#Ä   ‹«‹´Á€#D…9ÜA€,D�‚2Ãë» ÿýÿÿHG’IG’IG’IG’HJHJÛJHJÛJHJÛJHJHJH‘JHJÛJHJÛJHJHJJHÛJJó3?üHJHJHÙHJHJHG’H‘G’HÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJ”G’IG’IG’IG’HJHJÛJHJÛJHJÛJHJHJHJÛJHJÛJHJÛJHJHJJHÛJJHÛJJHÛJJHJHJHÙHJHÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJ”G’IG’IG’IG’HJHJÛJHJÛJÿýÿÿ$$$$777#557ó3?ü5&%&77555&$$$$777555777555777555&$$$$77UUUU ü0骩«©©ªÿÿ©ª©ª©ª©«©©ÿð0ª©ª©ª©«©0?ÿð©«©ª©ª©ª©©?ÿð3«©ª©ª©ª©©ª©?ð00ª©ª©«©©?ÿð0ª©ª©ª©ª©«©0?ü0©ª©«©©«©Ã «©©« ©©« ©©« ©©« ©©« ©©« ü0©©«©©«Ã ©©«©UUUU ü0ÃSÿÿÿð0S0?ÿð)?ÿð3)S?ð00?ÿð0S0?ü0Sà ? ? ? ? ? ? ü0?à ?UWUU ü0ÃÒÒÒ‹ÿÿÒÒÒÿðð‹DC´+JÖð?ÿð‚PX§¨§¨§¨§PX§¨§¨§¨§Poÿÿ004IÒúùÒÒ?ÿð0‹ÒÒ0?ü0Ò‹ÒÒÒÒÒà ÒFÒ ÒFÒ ÒFÒ ÒFÒ ÒFÒ ÒFÒ ü0ÒFÒÒÒÒà ÐFÒÐUWUU ü0ÃTÿÿÿððT[,-ð?ÿð   =nÿÿ00Qf?ÿð0T0?ü0Tà @ @ @ @ @ @ ü0@à @P @ÿóóbaÈ/ât'+T"ððÍ¬×Øð?{£ßxÆ}ºÈ/ö~Œ¼ªšêéó_ÌküP @óóL/NO,#ð�ð? g ÿ¬/ J@>%$Ó Õ_UUü—3Ì—™Íÿÿ—˜—˜—˜—™ÿóóÐ5èü¡4äî.l¥:2è±²±²±²±‰Ã±²±²±\Ñ‹ämÈý�ï—Eø´Óîàß?ÿðÍ—˜—˜—˜—™??ÍeËš21? 34™š ™š ™š ™š ™š <™š <ð·ÍÎüüÿš2134™e ršŠÕWUU„¿óó'AB'H A&?"Aÿ??@ 4 ! �€d{P @?ðð% 4��KLð ð?aÁÛö訯Pf‹áº( ^]ÃÍÎê @ð?u.ÿÌO H D'$ƒ P@ÿóóÓÔíö•–þåÌðð¡)TS@?-ÿ?f�kr óÓÔP@ÿóóL+`Û\,W,ððñÿ}ÿÿ////'//ˆ'//ˆ'//ˆ'////?p/?_Ð/?_Ð/?__Ÿÿ€ßŸÿó3ü€ÿ `ÿ ``@?p0_?p0Ÿ@00Ÿ@0000(o0(o0(ÿðÿo0(////'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(////'//ˆ'//ˆ'PET!!!1‚ò‚~` ÿHHH@||‚‚|~‚‚~ ÿUUUU ü0ÃÀ¿ÀÀÀÀÿÿÿÀ¿À¿À¿ÀÀÀÀÿð0ÿÀ¿À¿ÀÀÀ0?ÿðÀ€À¿À¿À¿ÀÀ?ÿð3€À¿À¿À¿ÀÀÿÀ?ð00¿À¿ÀÀÀÀ?ÿð0ÿÀ¿À¿À¿ÀÀÀ0?ü0ÀÿÀÀÀÀÀÀà ÀÀ?ÀÀ À?ÀÀ À?ÀÀ À?ÀÀ À?ÀÀ À?ÀÀ ü0À?ÀÀÀÀÀà ÀÀ?ÀÀUUU    ÿÿÿÿHJÛJHJHJHJÛJHJÛJHJÛJHJHJJHÛJJHÛJJHÛJJHJHJHÙHJHÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJ”G’ÛJHJÛJHJÛJHJHJHJÛJHJÛJHJÛJHJHJHJÛJHJÛJHJÛJHJHJJHÛJJHÛJJHÛJJHJHJHÙHJHÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJHJHÙHJHÙHJHÙHJHJJHJÛJHJÛJHJÛJHJHJHJÛJHJÛJHJÛJHJHJHJÛJHJÛJHJÛJHJHJJHÛJÿÿÿÿ7555777555777555&$5557775557775557775555557775557UUUU ©«© ©«© ©«© ©«© ©«© ü ©«©©«© 0«©©000«©©000«©©000«©©000«©©000«©©00«©©« ©©« ©©« ©©«UUUU ? ? ? ? ? ü ? 00?0000?0000?0000?0000?0000?00??@ ? ? ?UUUUüü ±²ùúFÒÐ FÒÐ FÒÐ FÒÐ FÒÐ ü<FÒÐÒº< 00¼ÒsÐ0000ÒÒsÐ0000ÒÒsÐ0000ÒÒsÐ0000ÒÒsÐ0000ÒÒsÐ00?ÒÒFEÒ ¼ÒF ÒÒF ÒÒFUUUUüü @ @ @ @ @ ü @, 00@0000@0000@0000@0000@0000@00?@?  @ @ @@ÿü=· [‚Å<=wö{� UU ™š ™š <™š34<2ËšóóðGHGZGàΚ™š™š™š™šÿÿ=[*p­ËeÌzš342ËUUa!� Ã0GH��óóÀ����à��<3IJ‘’ÿÿÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(HH/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(oÿÿü0(o0(o0(UT||~‚‚‚~ ÿ‚�‚‚‚~��€���€UU ÀÀ?À ÀÀ?À ÀÀ?À ÀÀÀÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀUU% ÿÿUÿ¨Á@#Ä€¿�Ð        ,.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64  >8JL:(  B<JL:,  B<JL:,  $&(   &24"    &24"       >< FHB8 JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<68:<*,.0 "$5        E C&E,.(68*  2,:<.   60>@2$  =;2=8:4BD2$  :4BD2$  :4BD2$  %#2%8:4BD2$  :4BD2$  :4BD2$  %#2%8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  28&, A        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28&, =        53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28E      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  A    5365<>8FH2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$   T19_packed T19_packedðÀÍÌ4Ã@$Äð@Ãu3À#Ä   u uðÀ€#DÍÌ4Ãð@@$DÃu3ÃÀ ¸ 3ó3?ËÌËÍËÍËfËÍó3?ðËÍËÍËfËÍËÍ3ó3?2124244™24ó3?ð42424™4242` ! ïÿðÿþÿÿÿÿÿÿÿþ/ÿð/ÿÿÿÿÿÿÿþÿþ½¿¾ØÕ¿À¿À¿À¿iÕ¿À¿À¿À¿iT¿=æäåehäãäãäãä´häãäãäãä´Îæ°?ð²>¦zÁðÿdE±u™©?ð) %ðñ 4¢ …°&+pŒG{ ˆeeef ee`B%H?ðà б²ðó¢~àÜœðð  ?ð�=Îë s©?ð2 #$23ó3?_`__Ÿÿ€ßŸÿó3ð€ÿ `ÿ ``1‚ò‚~ ÿÿðÀÀ€À¿À¿À¿ÀÀ€À¿À¿À¿ÀÀ€ÀÀ�  _�Y!ôäÿ·ÕðÀ@#Ä€¿zÐ     *,"    &24"   T02_powder T02_powder„Â…ëŸÁœÂ„B×£Ð?(Âãã„Â(B…ëŸÁ„BœB×£Ð?UM uÿÿÿ3ÌÌ̹ºŒ¹»¹¹¹ð Ìÿ{=-/-^/-^/0/º--/-^/-ŒÿüÌÌ-/-.0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/.©û®»3ÌÌÌ.ø`@`”iCO``@`”ojde:ððððð.CCCO:Sz   .44ó¥:S¥:z.øCCCO:zS¥:S¯ÿÿÿ.444ó¥:S¥z .ÿøCCCOzßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©«©3?ÿÀ©ª©ª©ª©ª©«©©ª©ª©ª©ª©ª©ÿüª©ª©ª©«ãäü30 ©«©©«©©0À«©©ÿ ãä«©©«Ì 0©©«©©À«ÿÃ3ãä©«©©«©Ã ©«©0?ð©ãä«©©ÌÀ0ë©©«©© «ü30ãä©«©©«©ßUUUTSTSTSTSTSTST7S3?ÿÀSSTSTSTSTSTÿüSTSTSTV9ÿ33 ??0ÀVÿÌ9?Ìà 0?ÀTÿó307??à 0?üV9?ÌÌ0Ã? Tÿ337??ÿÿÿÿX'P¡ôwIÉ;�jt Œ‚Q˜‹kkÈ0ÐIµIw:ˆ¨k6(¶¢ñÏdlÿ¶¼DwÖÅ‘NÒ4a`ðüF�ÒYc eÝ÷Û(ÁAXÃÿÁ�y…yIw‡wÃyØ¢yØÞwšÞwÖJÿ4<�7ÊPf®icÏX;X0ÿÁÃÉyIw‡wIyÿyØÞwšÞwÖày؇WeV¯ë#×$=UãqÆCýÃÿÁøyIwIy…yÿyë¢wëf=Ø¢yëlŒÿêòšò�YciD¶i­WÁÃüwIµ µIwÂ;Ø¢yëf=Ø¢;š ÿyÑ:³å¾làq³ÿæÿÃÁ¼µ µ ñ.ñÂë»®») ! # 1;93»»û‰‰Q& Éëûòg$  R3T7V5X3\1Z/V5Z;O )) wŸ °   &(( AïÿÿýÙwðp###�pð)°)$&(" 3!!!+ÿy°)°/Ïÿÿ"$($$)%#-   �p�ð+°+  $&$$#1!ÿy#+ÿÿÿÿÍ!ûý„sA k Â;¾Ú>¥Å8a��¢ŠÑæ)`2Ü£Ah€*�èF±7ž&�ËÅί ’’î÷ÔšSî÷Jµ™0Y!d('³æªqr©ªqrŸÃG»û;“Њ:ðŠ-7.vbŒ,ÊÑŽ°*A…œ A:«ªqr=>kùE‡ÐŠ:Ã"j‹} ‡5DñðÂ#­�{ëK/à]áI-he .-¼èÅN V[+~uk6yµLcÔ¤tÿmY>Bå,3·›õ%ˆU�¶V[+D�ÇÜFkq[9ÚÍæºšÿmUsð�ÎmI*¦YÃŒT�OÂoªªªª0ä¶Pó£TÐñÿ_ø‘2¶ô´ÿß"9ßoò0@"ðo£z�6¯xxxyId–Idý1D8$È!„ð ÷‡!‡‡”–Id”osS4"ò&dh͆™Ïüã?Ì‹�6Àÿ_ÎàÂŽ^’ˆOîLÁ‚ 8¦Ÿ¨^™eªðãâ&”1õ0}„$ ý €`@Ÿÿÿ'2 af ¯ššš‘%†c$ê¦ð*ù©'ÿ@ ˜ëß Wh Oïššš‘+`B „H¨ð ù+É©« ô6D"h¯ïššÿø-uÿÿÿ3ÌÌÌ'(W///?_ð Ìÿ?'/X'/X'('_00(?(oÿüÌÌ0('@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('('@'@'@'@``@0000('(W///?_?'('('('(QUUU@ÿ @ÿÿ ÿÀÿÀÿ0ÿ0ÿ ÿ€ ÿ@ÿë™f™0/0/0/0/0/0/0ÿÌÌü¼¼À /  ¼¼¼À/ /0/0/0/0/0ÿü/0/0/00ÌÏ À##0À 0<ÌðÀ#ÀÀð À #À,óÌ� à 07ü```ð` ñfo0].0].0].0]¹¹¹¹»ü¹¹¹:S¥:S¯ÿÿü 0À©«© 0À;šà=`Þ;^å;"PóI¨üÑð-òËÿ   ü&&$KpH·ÃKïUÇáDG›ù~ümDžkf¶idŸI3HÈd¾Ã)Ù¦¤bžštß!kÜüÛ-q’a'z�éKAŽ´ýJËð#Æâ44ÉüÔ\Ú�ˆØm¤¿I5@  '@'@'@'@``@00ü00(  0Àöç Áþ ó„Â$€¿ìÐ            &("  &$ .0*  *,24.(           "0                  1/1     M                        r­                                ! s¬                   r­                                ! s¬          T19_powder T19_powder�Â…9À,Ä�BRx%À#Ĉ6ˆ�€#D…9Ã�B€,DRx%Ã6ú uÿÿÿ3ÌÌÌ©ªª©©«©«ð Ïÿ:ã©«¬«¬«¬«©ªª©©ªª©©ªª©ÿÌÌÌ©ªª©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«©ªª©ª©©«©ª©©«©ª©©«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«ª©©«©ª©©«©ª©©«©ª©©«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«ª©©«©ª©ª¬«©ª¬«©ª¬«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«ª¬«©ª¬«©ª¬«©ª¬«©i뺮3ÌÌÌ*è`@444ö `•¦•¦�ÿÌÌÌ  *CCCOZof–FödofFÿÿ*CCCOfFöŠdofFödoÿ*d444ödoŠeÄo\FõÄo*€d444õÄ�o\FõÄo\FßUUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©©ÌÿÀÀª©ª©ª©«©©ª©ª©ª©ª©ª©ª©ÿÀÿª©ª©«ãä©«Ã3 ©©«©©À«©Àÿ©ãä«©Ã3<©«©©ª©«À0©©0?«ãä©ðÌÏ«©©«©¬«À0 ©«©©ãÿ Ìä«©©«©©0 «©©ßUUUTSTSTSTSTSTST7SÌÿÀÀSSTSTSTSTSTSTÿÀÿSTSTV9ó30 ??ÀÀÿV9ó3<?UÀ00?T7üÌÏ?SÀ0 V9ÿÌÌÀ??0 ÿÿÿÿÛ‹ï¬üvwMï*¤™‚x®V˜XVíVæV£Ããƒã�ĘúB˜kVÚúÚUåúÚ—£üÚÙ.lN¢Ky3Œ= ¹¼”¼Ç 6 »7ŽÐVVX,�Ø?ÚƒÚA�üÚäB˜û)¤‚Vwkb‚˜wk ×—Nã3ù%B¥£Ï@-b ˜X˜VnAÚ?˜˜A˜wk"šwm"Ę7­"Ę5m¡$xákx”�`¬lÛ Åšx˜VXðAÚA˜šaÚ5m"@ÚA +b˜ANm¤V?L+¤z‹„‹nz¾iÀm¬¸¹ ù+˜˜X͘A˜˜º?L¤-�ŽÙ­ƒÐ—΃ÐV—ë뺮' ' %% ')#uwõgQPpðQÅåñhðHP'L)R%R#JF!H!F#q";%1/ _kPF—"‹rFÿÿ .2*&$"q$A'/+rFµirF·$oÿ *.((($s&M%')% wñPppõ"kP$oFñB�$""$(.,"u&Q+'%! 5wðpppð$oHðDoHÿÿÿÿZÆ*þñTúì¶î¹LÄ|ît×/]:—8µ€} ÷ŒþH&íÃáCßµµ©µ'+õµh1p‹¼ÈöüN -Üd­JÊKžëòF Ç1I¾5}9 W™bÃJŪgÔ1Á¢©ºøƒ[öþTEmV]ºƒ ‰Èäè!éWÔ�a2Rö@ÖÕØ6vñöþHD¬ÌHD"Jo?D# * °ˆ9@zvèH`F\ÉÓìÝ –3alʾ¶µn(¯°–ÿkÈ¢ghÊÜŽðÜ�à;ÜA…Ü9Ã0á×VÀetüe×ÎÃZ‡96|iÃ|î§Á~}Ed1òrC ¶%"‚Ìá̵J¸ªªªª$Q� "°E­0òPegey(ôöø÷ø÷øùRP @ ö–¤Õ¯LOVxT]�_9"Õõ{_W·Sr" B"ôr‚·�NOVVVPWµõ {_Wµ÷yW5 / ˜‘VµeCCy_4Ù_m—öÛuO1–X�³CCCvù_MµôÛ_M¹ÿÿÿÿþƒ~¾Îßþf\õýòüp>D UñMcŠ®iô¼ò@/ˆ¥ad(Þ™Ñ~åÅÑ–ÑñѬË/RK�]›b¡–ùY ŽBœñç96¬Q 5Œ-L8j%éÂÆ©¾+—Š¥Èed‘1v>[nÏ 6…Ãæ?L çkÔÄý¹†½ìV39Â�¼343Ùnå?Ï 6ëæèŽ�ëæó0Tuæý²#ÀÀû�ð�ñ'¦ßHÛƒŠtr¯q@J øžKL�. 9Ï„7ÐKçèƒ@‹È½ ûèÈ}kí“üé÷wB¾F¨#b#\oA<0ɈA�P~þ寃jmíâ\KÆÏq’Æ‘ÅÕeUe•$@/à 0#B0"0®ÀÄ€œYð 1MSÀ5à LSÅÓ@`3 @Wq\_>Ò(H€$`0õu]×\ü 8 ,Z€TäG3ý”w+”,œ¤”Ò+Q[¾Þb~YßuçR÷ã0�Hò= °?ÿÄ6)C‹±ItL<€pþÅãˆô#ßÇÏ0Yhoº°ÿÅ‹¯Q”ú‹¯ùúƯ´Œª6'=ÿñ‡Ìÿз†Ô(ÏP ËÆÅtÛ´;4Óè ;Çÿÿ|}êµbÔ‚ù @€ÿŒËµ«/oâj‡hQOVHQº¨� iZš;(ôúøùø÷øýPQA`‚À. ¯9&÷ó�9×u’&$êÀ.9Õõ"}_Yµõ›uW""+°.ÿ "Vý_oÕöû•#3O.ÿ _oÕöýo» o×Uu=ؾdëT4¼Ò©n œ["Ý̨-cò±˜QRÕiöñ0Z4ŸMÙ€òìh fû„}¦E‡óÿñ€j€‡(iú:É?`]ïÂ}Çz—#tâ4#ÿÿð`ÒÓ=>;ãÙ•à„ ?ÿÿ$OS«]�'“:Ê5ÿÿðmàd=cd·÷RQ€`ÿÿT8U;ÌÙÔ@ :ô«T§XT§¨€`ZZ–iðñÁOòUVwl�0òp‡�íÒB™€ôvÄÿÿ*QToÞvVQ `I€ïÿð.IHOvVVP„ 4#ü4=< õeee€`/1¶6°óCCC€`uÿÿÿ3ÌÌÌ?////?ð Ïÿ?0/0/0ÿÌÌÌ/0`@0000(?////??0___`@0000(?////??/___`@0000(?////??/_0G0G0`@0000(?////??0G0G0G0QUUÀÿÀÿ0ÿ Àÿ0ÿ0@ÿ ÿ€ÿÀÿßUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿ÀÀÀÀÌÿÀÀÿÀ¿À¿ÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÀ?ÿÿÿÿÿ?ÀÀó30 À?ÀÀÀ?ÀÀÀÀÀ?ÿ?ÀÀó3<À?ÀÀÀÿÀÀÀ0ÀÀ0ÿ?ÀüÌÏÀÀ?ÀÀÀÿÀÀ0 ÀÀÀÿÿÌÌÀ?ÀÀÀ?ÀÀÀ?0 ÀÀÀUUQUfffB@€ffffÀ@�€€H0$Ž H@ w©«©©«©«©§ªª©©«©«ð?ü:ã©«¬«ª¬«©ª¬«©ª¬«©ª¬«©©«ÿð©©«©«©k*èCõÄo”\FõÄo\FÿÿðÀ«ÿÃðãä©«©©«©©À0«©ÀTÿóü7??À0ššækÁzêk9˜Ï»+KL‚˜˜X�˜šVüƒÐ˜U ƒí˜wíÚ,ûÃkå, ÿðn¼kÁ zk($ (0."y(Q+'! cWuð$�HñD�hÿ$"ÿð "(0."-s“¹çýoíóu»1wfyÍV]^1�e–÷Ö_Qdý®…›ÈÂÄuáð]èZµÿð(ðif3ª4%SfñA1}XIm4´Ý_oµôÛ-·4 #sHÏÙS°à >Œ*ÂÙ„lR­…q¼�RpådÆFýü�PTË�µtbÕf¯–¸˜úóBÿð†kU'A]e�Â`w€1Bt€uÿÿÀ¥DMlĸVù ÿ® @%ýlC¨Ôc:'T±LY„)î‹ÿð‚vx÷Ž”f4%s†ð.ÿ "oõöýOÙT $ŸðU�/ÿÿ_ìã]ÓÖñ ÿÿ¼Àa—«’§µ£€f`Y�&Ïÿ4mpK�7P €f`w`@0000(?////?ð?ÿ?/0G0G0G0`@ÿð0000( Àÿ ÿÀÿ?óü?ÀÀÀ?ÀÀÀ?ÀÀ0ÀÀÀ@�$ —샵ÿ��Â@#Ä€¿�Ð             "$  &("         .8                  %#%     M                     E         I           M           ^Ásˆ   T19_rockT19_rockÀA)Ü8À,ÄðA¸ž1À#Äl%lÀA€#D)Ü8ÃðA€,D¸ž1Ãø%ð 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀçkoÉÇÉŒÅGÇÇÉÆà¬‚‚‚�PJ31çîùo3ççVÿÀûJççço[U[OQ(aI2oKÿÀ(a Ã<3ЉÇÔÓUbaÑe°(_‹L;{°Ã# ÃrC Ã<3ÂÁw_`¿Ø×YMž{³:+‡l6 Ã<3éê`õö˜!¯ôHiò’+#§­Ã# Ã2G€€€€?ð?`_ @_ @_ð? @_ @_ ð@_ ÿÏüÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÏÀÿ¿¿¿„0„0„UUr©èÙèy/eÐA@$Ä€¿qÐ  "( "( "( "( " T20_groomed T20_groomed´Á…@À5Ä�A�‚9À,Ä   ¼´Á€,D…@Ã�A€5D�‚9Ã@¼8 ÿÿÿÿöõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøÿÿÿÿ$%$%$%$999999999999999777$%$%$%$999999999999999777$UUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÀ«©©«ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀÀ©«©©UUUU ÿÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÀÿÿÀSÀÀÿÿSÀÀÀÀÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀUuUU ÿÀÀÒÑÒÑÒÒÒÀÿÿÀÒ¸ÒÑÒÑÒÑÒÒÀÀÿÿÒÒ¸ÒÑÒÑÒÑÒÀÀÀÿÒÒÒ¸ÒÑÒÿÀÀÀÑÒÑÒÒÒÒÿÿÀÀ¸ÒÑÒÑÒÑÒÒÒÒ¸ÒÃÒÒ®­ÀÀÿÿÒÒ¸ÒÑÒÑÒÑÒÀÀÀÀÒÒÒÀÀÀÀÒÒÒuÀÀÀÀÒÒÒuÀÀÀÀÒÒÒuÀÿÿÀÒÒ±»‘ÒÑ/ýuÀÀÀÀÒÒÒuÀÀÀÀÒÒÒuÀÀÀÀÒÒÒÒUuUU ÿÀÀÀÿÿÀTÀÀÿÿTÀÀÀÿTÿÀÀÀÿÿÀÀTTÀÀÿÿTÀÀÀÀÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@Àó÷À@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀp–{¬¦%³2.B_YÿÀ_OPר_ž+¶wÖÏ»ÝÆ|`—ùúøóô(ÿÀ 4!¸åðð°TuUWüÀš21™ÀÀš™ÀÀš™ÀšÀ™šž‹)½²‘­äÆÍ'ÿÀÀÐà(™Ãüš3434ÀÀ™šÀÀ™šÀÀ™šÿdnó$ojg› ÀÀ™šÀÙš2ÀËTeUV€@€@€@€@ ’ð‡ó†µÿÀ@�˜@€@€@€3$Y,bs€@€@€@Pý¼ÿÏ´Ü÷ ÿÀÕÖ ðþþ€ÍÎÚú*ÎÒ\`™ù õð< `üÜ  Pýÿÿ `F«( ÿÀ4;<·¸IAŒf’ð6 5PIÿÏ  0ÛÀ oÏÀ  ÿ×ÿÿ/0/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÌÌ??ÿ `ÿ `ÿ `?ÌÌÿÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0/0/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0/PUQU@„„„LÇÇÇ‚‚‚‚È``~````Àÿ„„„‚ÇÇÇà‚‚‚~``` ```ÀÿUUUU ÿÀÀÀ¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÀÀÀÿÀ¿ÀÿÀÀÀ¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀÀUUUU€@€@€@€@€@€@€€€@€@€@€@€@€@€ÿÿÿÿõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööÿÿÿÿ%$%$%$999999999999999777$%$%$%$999999999999999777$%$%$%$999UUUUÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀÀ«©©«ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀÀ©«©©ÀÀÀ«©©ÀÀÀ«©©UUUUÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀÀÀÀÀ?ÀÀÀÀ?UUUUÀÀÀÀÒÒFÀÀÀÀÒÒFÀÀÀÀÒÒFÀÀÀÀÒÒFÀÀÀÀÒÒFÀÀÀÀÒÒFÀÃÀÀÒºÒÀÀÀÀÐÒÒsÀÀÀÀÐÒÒsÀÀÀÀÐÒÒsÀÀÀÀÐÒÒsÀÀÀÀÐÒÒsÀÀÀÀÐÒÒsÀÀÀÀÐÒÒÀÀÀÀÐÒÒsÀÀÀÀÐÒÒsUUUUÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀ@ÀÀÀÀÀÀÀÀ@ÀÀÀÀ@P?ÄÁÀÀGHGà—GHP?À€UUUUü<Àš2134™ÀÀš™ÀÀ?š™§Å»ÀÀÄ™ÀÀš™ÀÀš™ÏÏÀš+mšJõüÀš21™ÀÀš™ÀÀš™ÀÀš™ÀÀš™ÀÀš™Ïüš+mš34ÀÀ™šÀÀ™šUUUU€@€@€@?  @@€@€@„€@€@€@€@€@€@€@„˜@€@€P!,,À0CEeßõÿõ.02 &_]Ÿ¯-áD¢ÖFY“­_*XŒ²ú™a‡'ÌÉ2i÷8‹ïpH``ÿÿ˜ðCR÷ç*ó-î�¸’ô©/óÔ4ó  4ŠõÿÌH:Y¢cŒŸlÛ €_LÁ³�Ø~{¾Ž´3 ²Ù„„¥aÁ7¨˜«]r3Ë�ðÞ�ŸA2A0B‹¥Äcð;8nÙ¬ÜwµºACXI \0»Wˆ�ð3&3P3 VCZYZYðP1tvilÿ0ôðÀt?09F+ H`` <5lGL!ÿ™ù½ù½ùUN $&ÿ H d™ €rÿ�4SZÿ¿ß¿ß¿Õ***0��� üóá?6gjW^  ýýýýýÿ1,,,BBBB`8õýÿÿ3ÌÌÌ?////?ðü?@'_G0G0G0G0`@00ÌÃÿü00(?////HHH/0G0G0G0`@0000(?////HHH_GGG`@0000(?////HHH_GGG`@0000(EQQQÿ ÿ ÿ0ÿ0ÿÀ@ÿÀÿ ÿ_UUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÿÿÀÀÀÀÿ3ÿð À¿À¿À¿ÀÀÀÿÿÀÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿ?Àü ÀÀ?ÀÀÀü?ÀÀÀ?ÀÀ0ÀÀ0?ðÿ?ÀÀÀ?000?ÀÀÀ?ÀÀüÌð0ÀÿÀÀÀÀ?À00ÀÀÀÿÀÿ?ÀÀÀ?ÀÀÀÿÀÀÀ?ÀÀÀó3ÀÀÿÀÀÀÀ?ÀÀÀÀÀÿUUUfffB� fffl$$ H € À@€Bà@€ÿÿA†BBDBØ•moom±oom±oom±oomo²opopopomoom±oom±oom±oomBBDBBDBDA†BBDBØ•moom±oom±oom±oomo²opopopomoom±oom±oom±oomBBDBBDBëê,fofofd’CCCFfofoÿÿÿ`ffö,föföf@ô’444fföföUUüãä«©©«ÿ©©«©©ªÌÌ©«©©«© ©«?ð ãä©«©© ÿ«©©«©¬«30 ©«©©« ©UUÿ9?ÿ?UÌÏ? T?ü 7? ÿ?S3< ? ÿÿ"¿ˆ qäÝDkm#Z¼b…»tª‡ü¼b=ütª?(%#%Ü#G"G$G%®v삼ìBùˈåûƒçÂí”÷! ˜ñÈÔ*í¡ûý³š¼ª?&ûª?&µª?!³ò?p%k%Ü#%%E"®±…å³ ç•i �Úk W±ø­LÈïêêÿÿÿYw|“:,Y/-'!•••w pppŒÿŒÿ-- / L,&& _@ÿÿô·—çQ‡+Q‡Q‰1÷w÷ øÏøïø///J,&& ÿÿÂFšÕŒƒ@ubîÃHqîÃ_rZk�,õÏ—(Ý–#ºÿÿÀ½xø²ñf½®ä~q*øXFº6¼Ó´ïÅ€²yüz'_#]*½¡Î¿™&…pšÚ®Xö=Àoñzx–­®­®óuÛ".ç€]ËxTKý¨rq W#õ€Ì埪ºC&½¿&½¿½¿½µ&&vVV[ÿ_ÿ.0ÿÿ¤(Aú0P÷0&@Kùû$ÛûÙùÛP&$00õÿùî"†4ÿÿ ã@ÁLK/થʅKh3\­p6A/4CmÉ:ýÄÏÐckbÁ:6qC`Š…  ž”h8Ø^‘úÓ­ÊZ�lqÑREŸÕ:?ûç$.œû[­›…qõòwy:ìëìëâäÇ‘3<èØ>>k¨>U\Âeö„=ó®¦f81"%««ª@3151 BËôYw2"R®®¢@30ƒ0ƒ_Þ‚€ öõHT  #)ih´c?@�Ê=¯ ݀ç¢�ÜQjšù¯'´R×{¥¥¤ ?�<‹©��a¬k"ÓÀÇR ^'ÿˆ­“öC ý ´VVV}ÿÿ44ÿ_ÿÄ(að4 44÷ÿùïBˆ:¯ol^,}›*¹ü]Föe*�Ìe‹j. ÉæoÑ<P’£P£r£pÏðÿ ÐÇ0úÍ®ÉͲÉDÙ‘¾;3jË–VÐV¨`à��P7*7*7¿¿  YZûËFÿq^ .ß¿ßßßÕ,. €@ÿ@-ýý�nSZ,ýûýûýp*,$$$&ÿÿ?////HHH_GGG`@0000(?////HHH_GGG`@0000(EEÿ€ ÿ ÿUUÿ?ÀÀÀ?ÀÿÀÀ?ÀÀÀÿÌÏÀÀÀÀ?ÀÀ Àÿü ?ÀÀÀ?À ÿÀÀ?ÀÀÀÿÀ3< ÀÀÀ?ÀÀ ÀUU�� $.$Ãô»ÿÿ6�Â@,Ä€¿:Ð            & $&("$&("$&("$&("(     " &(   :D                 )')     "*,&  .(682$  %#2468&(*, }                 535    "*,&  .(682$  2468&(*, U  "*,"  *$24*  2,:<2$       535    "*,&  .(682$  2468&(*, 1535 "*,"  *$24*  2,:<2$       535    "*,&  .(682$  2468&(*, 1535 "*,"  *$24*  2,:<2$       535    "*,&  .(682$  2468&(*, 1535 "*,"  *$24*  2,:<2$  T20_rockT20_rockÀAÃõ>À5ÄðAR¸8À,Äl%lÀA€,DÃõ>ÃðA€5DR¸8Ã!% 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ3ƒ[„«„ ùB‚MMÒù¬O„OÃ(„O„ yY«©(dÿÀ®%ú&( ]Q*e?J•-lÉ+xÝ5ÿÀrÕ?h�h2ôæƒ7�äñZ# M 3èÔ HJ?ÀD=W` Ã0 �Ð�÷òã‘v1Áÿ {¾d� v†Àür Á?ÀD7yb�B(MJqtP¸*D#»Ô!8WbBˆw”Q5ãÄ÷1L&?À6…�Ä�A…@À5Ä   å»å´Á€5D…GÃ�A€>D…@Ú»’ ÿÿÿÿöõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøÿÿÿÿ$%$%$%$999999999999999777$%$%$%$999999999999999777$%UUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿ󩩪©ª©ª©«©©«©«©©«©©«©©«©©«©©«©©«©©«UUUU ÿÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÀÿÿÀSÀÀÿóS??????}U]U ÿÀÀÊÉÊÉÊÊÊÊØÊÉÊÉÊÉÊʉŠr’‘X—’‘�ØÊÉÊÉÊÉÊÀÀÀÿÊÊÊØÊÉÊÿÀÀÀÉÊÉÊÊÊÊÿÿÀÀØÊÉÊÉÊÉÊÊÊÀÿÿÀÊØÊÉÊÉÊÉÊÊÀÀÿÿÊÊØÊÉÊÉʼó¼ÊÊìë Ö»X#(ùäoRÃÊ@Š^ÊÊ^ÊÊ^ÊÊ^ÊÊ^ÿ¼¼¼�—¨IFuUYU ÿÀÀÀÿÿäT$#&%+TÀÀÀÿTÿÀÀÀÿÿÀÀTÀÿÿÀTÀÀÿóT ó‹ï^ÿß!8C@@@@@  ÿ&-0@ÐÃÐÏðïyzzy‹º'ÿÿÀ,Ñà&Šý‘)Ðÿµ$ו?ÿGÞ•gkï;ïøGË¿—ÆÎ&‰…”2±ŠI™Ãð‘’%§Î?HEè’N�ÕxöÀxwá{F&ŒM„xçø98†ÿ|;) .!@ŠòÃ’0÷rÐÝ � å!:µ' û?ß¿¿õ,4{<:%G^IYÿ( & ( ÿÿÿÿ/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0/0/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0/0/0/0/'//ˆ'//ˆ'//ˆ'////?_ÐTUE‚�‚‚‚~��€���€ÿ‚�‚‚‚~��€���€ÿUUUUÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀ?ÀUUUUÿÿöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãÿÿüøööãøööãøööÿÿ99999999999777$%$%$%$9999999999999997ÿÿü77UUU©©«©©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©UUU??????????U}UÃÃÃ1ü1{¹\ÊÊ\ÊÊ\ÊÊ\ÿºº6CJè¾i ·�1„*µ=5‚D_IÂt/ôk«©æo^ÊÊ^ÊÊ^ÊÊ^ÊÿÿHÑŠ„^Ê Ê¼U}UCCC@@@@ÿ¹2m?b8wCb<�C\B‰E:;1!n9/`9)J3! @@@@÷ÿ : 3@A}tóóðÂÊ©ª„Ò( F@NP>0  F@NP>0  E      EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  A?2A8:4BD2$  :4BD2$  :4BD2$  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  T21_iceT21_ice� ×@À>ÄÀÁÍL@Ã`7Ä   � K� �Â`7D ×@ÃÀÁ€>DÍL@Ã¥ K�  @ ÿÿÿÿ? ///////’ / / / ////////////////B / / / //////UUUU3?0òñòñòô×òüÿñòñòñòòô×ÿÿòñòñòñòòô×ÿÿòñòñòñòòô×ÏÃð<òñòòñòôòÏ0 ôóôòòòÀ00òÕò0000òòÕò0000òòÕò0000òòÕò0000òòÕò00<Ïòò8òòñòÃð?òñòòñòôÀ0 òòòÕòòòÕòòòÕUUUU3?0OüÿOÿÿOÿÿOÏÃð<5Ï0 À00Q0000Q0000Q0000Q0000Q00<ÏkÃð?À0 QQQE@#ððÐ]q™šÿÀ¾½^q<rqÏ<äãrq<rqôóÀ<rqôóE@#ðð¡AäÑÒÿÀ{|½Ü<ãäÛÏ<ÜÇÈÛÜãä<ãäíîÀ<ãäíîE@ÿü Ü€v�¢š_ÿ%Ò{##ÿ·¸F,q³ðÀrBÞÝ>âÏðâzªä?Ïzú”N Ãð?í“}íN°ýF@¥Ï£ýp ÿ ÿ  À?Ïð   ?Ï  #Ãð?%# G@ËtlÿÿöX%·Y$#ÿ¸·Â~ÀEÿÃÀ?9bJôàÝÞl¹ ÏàQ•)¾?Ï•)rNMŸÃð?î”~îM¯þF@ó[ý�ÿ'B%ÿÿÿ ( *óÿ°Ðø!(Ïð&?Ï&"Ãð?$" E@€ÿZY[P ×ðÀ?�H0{XÏð àë ?Ïàëxk†×Ãð?R«ZR† {@@ÿ À=Ïp  =Ï 'Ãð?)' … @ÿÜðÍl—'Z„©ÿ‰ŽÔ�"iid€ ƒ€–8=à €x4E@ÿü   ÿ ’€„ �€`ªªª«ePPõkU ›¿›»"" »¿»»$$ »¿»»$$ û»»» $˰¿kUöµ_úkUöµU›¿›"¿›¿›»»¿»""$¿»¿»»»¿»$$$¿»¿»»»¿»$$$¿»¿»»»¿»$$$¿»¿»» Ëð$$ 4 ­ öµ_kUöµU›¿›¿›¿›»"""»¿»¿»¿»»$$$@„!UUUU3?0À¿À¿ÀÀ?Àüÿ¿À¿À¿ÀÀÀ?ÿÿÀ¿À¿À¿ÀÀÀ?ÿÿÀ¿À¿À¿ÀÀÀ?ÏÃð<À¿ÀÀ¿ÀÀ€ÀÏ0 À¿ÀÀÀÀÀ00À?À0000ÀÀ?À0000ÀÀ?À0000ÀÀ?À0000ÀÀ?À00<ÏÀÀÿÀÀ¿ÀÃð?À¿ÀÀ¿ÀÀÀ0 ÀÀÀ?ÀÀÀ?ÀÀÀ?UUUU  †     † ÿÿÿÿ////////////" / / / /////////////////////" / / / //////UUUUòòòÕòòòÕòòòÕòòòÕ0à òòòôòÀ0 òòÕ òòòÕ òòòÕ òòòÕ òòòÕ òòòÕ òòòÕ 0òòòò Àôòò0000×ôòò0000×ôòòUUUUQQQQ0à À0 Q Q Q Q Q Q Q 0 À0000O0000OÏ…†rq<<<õö„ƒstÏ÷øãä<<<ìëöõâáÿÿ<ÕÖ À“+OPüüÿÀ+e’ ->r¯ÿÿ<*(üüÿÀ&& $ÿ<ƒé‘qð}ôóð1&k �ðÿÿ<ÕÖ#!FH%!ÄÃüüÿÀ+e’ ->r¯'(ÿÿ< ( (üüÿÀ$ $"<ê«ê«»¿»¿»¿»»$$$»¿»¿»¿»»$$$»¿»¿»¿»»$$$ 4 4 4 00} kUöµ_kUY»ù»ù»ù»»"""»û»û»û»»$$$»û»û»û»»$$$»û»û»û»»$$$»û»û»û»»$$$4 4 4 HHH} Uöµ_kUöµU›¿›¿›¿›"""»»¿»¿»¿»$$$@@HHH@ UUUUÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?0à ÀÀÀÀÀÀ0 ÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ? 0ÀÀÀÀ ÀÀÀÀ0000?ÀÀÀ0000?ÀÀÀUUUU €  ÿ////////////ÿÿüU0000×ôòò0000×ôòò0000×ôòò0000×ôòò0Ã0×ôòòU0000O0000O0000O0000O0Ã0OÏürq„ƒrqåÏüãäöõãäÆÿü ™À1Hó%kåÿüÿüùކPl‰o$\ càÜ`ÿü# iP³ÚÆ,ßü ê»»¿»¿»¿»$$$»»¿»¿»¿»$$$»»¿»¿»¿»$$$ 4 4 4 ÿÿü00@!!!U0000?ÀÀÀ0000?ÀÀÀ0000?ÀÀÀ0000?ÀÀÀ0Ã0?ÀÀÀU     y ÿÿá!ÿ�€7Ä€¿’ Ð   ("$*, "(   6$ BD> "$  F@NP6(  (*,&$   6(BD2 :4BD2$  (*,&$   6(BD2 :4BD2$  (*,&$*(68&  .(:<*   )      97>9DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  -+2-8:4BD2$  :4BD2$  :4BD2$  28  :4BD2$  :4BD2$  :4BD2$  6468>@.(  20>@.   60BD2  E       53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$   2 824:<*$  ., 68&  *( 24"  E      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%8:4BD2$  :4BD2$  :4BD2$ E      53>5DF@NP:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  5325864 >@.$  20 :<*  *,24"  T21_packed T21_packedpÁìAÃ7ÄXÁì‘@à6Ä   pÁ 6DìAÃXÁ7Dì‘@Ãnf 4x4é</00ÀÄu1ÇðÿàpÁ`6Ä€¿Ð T21_powder T21_powder�Â�‚GÀ>Ä„Bn5À5ÄGŸG�€5D�‚GÄB€>Dn5Ã`ŸX ×ÝÿÿDB×·npôÕ¹pnö?óÿÀ×¹ppôÕ¹npu•?ó3?Õ¹pnDoom±oom±oom±oomo²o?ÿ33popopomoom±oom±oom±oomBBD33<ÌBBDBmmooAopÝoo±pݲoom±o²omoomoomoomÞomoomo±omoÞmoomoo±moo±moo±moomoom±oom±oom±oomo²opopopomoom±oom±oom±oomBBDBBDB´oopÝoom±oom±nÝomÞpßmo²opopªšª®¥? …?&& ƒ_ ¥_`& ¥_fofofdô’CCFfofofo33<Ìô¦o:ð``ooFfFfdiFfdöd–@fdödödödfföföföf@ô444ffö’ÿd¦föfõ’Æk\dCC’}wUUü?骩qrª©qrª©qrª©qrãq©«©©qrª©ª©ª©ª©«00?ü©©ª©«©©ª©«©©ª©ª©ª©ª©«ÿ©©ª©ª©ª©ª©ª©ª©ª©«¬«¬«  ÿ©««¬«¬«3©ª© 0ª©«© ©«© ©«©©ÿ30 «©¬«©«©© «©0Ì ©«¬«©ÿÌ©«©©ª©«}wUUü?ÃTSTSTSTST7S00?üSSSÿSTSTSTSTSTSTST ÿ?3 <? ? ?ÿ3< U? 0Ì ÿÌ?UÿÿõÿÝ~nðz••·êÌG�1µDšÙ×^z:XH’€5}5怙™,}I5á5 5ëž[5VC259šH5755ÚH5GI55™5#?5*p½*r½(r½Â¹¢ý�¾‚9Ñ`Þu¡kþL¤¦á.m@ï }ïð U-2kkÀÿÇ~J�’ØÁ???cH×CHGÇ~}”ä €–� §ÙC‡6GNâ5ìÏ}9ê5}ZRZð}š?–Ýc55GIè6(úr(°û[*hmYghGÆ€ÊG °j6N}DËÇ`âž`Ë5ç˨²ZÔ5åÐ�U55¥þ©®?þ¿Ã?·Š�@?lo0/Vý?Ã?Q"!65ôL�tvvuuu?wwò qppŸ$/11l%P'P%L%F%<)>+·/%, &À ƒ Àx¡�¡€·sùu÷•÷—Çøïø1// >*(& ÿ�'%™õy÷íEŸrFopp)ÿÿÿÿÒµÁ »2¡Û´§P£ºj÷ŒlÕ>�Ü£;ÑÏJy$™åÉ2®%geõîùN" ?j¾�bùñ‹ªo¢1UAÊ\sJ±õà@BÅfÜÛeZ½l(vîÔU?@Ÿêºñ‡UKë¤Àò’árC!œo¥Á "EoÖÊëš  �kvª€h%›ì¬7̺f�þˆÙ„¾z²&pÀ€ö�þˆžt†�U" ìu„VjÔS™¦ ~=Û^£`­®óu21WÝÕl…{§é=ƒ ç=|1és ó’.- I#Ì·½k=ž œG‹%qÇM~æ˜ ‰­®¦®ª®rq‘xö?á $½A /+/�"¿›ß9Ù$"VXOOE00. !/3e<ÀPt& 3Eõw  x-â"ô¢øKôªô¬öŒöúñ%{ò9†8!øÆ÷‡eeÿõÿ!..,"oÿøbú†ÿ@3ü�ÿ¡B/Xx<3B1ÿÿÿÿ7 "È©Áp^�„Âôáÿ]—ÅJÍlŠ“-í2_¼óó«Œ (ï"[AP1¨èe%ž4i&ü0Œö~öðƒK@Êí:ðÜû€N;�PØÚ2ÝèDip‹à‘ÚÜ•é—WD¯È°ˆÊØYA™¿v[𢠘U #‹S¸øä`0¼ G·‰}^J-«ºúý‚a~S.ÐŒ2~-gËÐTs€BåèGœ˜è*<¾0·V/S›Áñ½^)þ&;çzƒìëâäïðƒ‘Œ}�Düo­ï çýh>$IˆÀ^›®½ßŒînP„6q»þhA:²…’L÷�ÑÍ/ˆ‚ìë–©ªUöò#Ÿø %"%|?ËA!½â":)oh C1/$ ! ­gB«2 ù”(_31!óB6Aó§ÑÿŸõ"21#ùóð"HðFð$±$ý.ü] 6]_n�ÿ/O7$÷ÿÛ@5&5BW_½ÀI^fI ÿúBB 0*þ§­@&8™€P`¾âÌË|Ë‘Í×uíÕâžm,¾RP ˜¾i¿�K_ßG‚›ÁøÊlQ ÌH*ÉÂSÿîßBC`  Áƒÿÿ�‘¾'ÄçÏS!'5¥Ü*ÃmßÀ]ÃÝA’áâÌÞþ¯h0FI¦-¼éÏÇmðdìëË*??ÿü‘uÞØõJ¬.Vãöÿ…+ßóPÌäE®ò00xxOO%662 w{°3 /ðÖ€üOð€ g‡‡ÿ÷ÿ442  $ŒŸð_*!ðÿxV(&ÿÙýú ç//TEc69«U÷—,�íTµ4a'Û‘Õ£F4W¯±ŽF0™^‡ã> Þj^¶.î«_àÑBv3 Tƒt…T�/ ?ÿ�Ò«w¦^Ó©âNæ€Ôò�7¸…ÿ›?a›*˜Ò As¨‹ìca¨0ðBÅÂUÐúøŠ•ñÿ“06d²ÚRxD¥ïd \äÿðS(U¦ð�H7f5(ÿ4 st’7óŸ~¤Þ«íßK£Ìañ·¶Ñ•Õ©e?Ô=>/$Ñ?óá-Z÷s¿¿Q( ( ß�ÿYü@($%!  ?óF…nkj_p  A.+(3¿0 8P ¦¨óÿüûð¹ñ' 5@{ðOÿöù;@?PS ü$ &$$&òùQý“ò0ÿ¾ó 0# f3×�úÿ'/  S  S?óÿÀ  S  C?ó3?0 KHHH_?ÿ33GGG`@033<Ì000(õµ_kð�°¿Ÿ»»»»»¿"#»»»û»û°»$4 4 4 HHH_GGG`@0000(ÿ/HH/0/_TU@& ÿ 0ÿHHH@ ÿ4ÿÿuwUUü?Ãÿÿÿÿÿÿÿÿÿÿü?ÀÿÿÿÿÿÿÿÿÿÀÀÀÀÿÿÿÀ¿À¿À¿ÀÀ00?üÀÀÿÀÀÀÀÿÀÀÀÀÿÀ¿À¿À¿ÀÀÿÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ¿À¿À ÿÀÀ?À¿À¿À3À¿À <¿ÀÀÀ? ÀÀÀ? ÀÀÀ?Àÿ3< ÀÀÿÀÀÀÀ?À ÀÀ0Ì ÀÀ¿ÀÀÿÌÀ?ÀÀÀÿÀÀUUTU €€ ™™™‚ff$.$„�ÿÿopomoom±oom±oom±oomBBDBBDBöomnmnmnݲopopopomoom±oom±oom±oomBBDBBDBnmnmnmnݲopopopomoom±oom±oom±oomBBDBBDBnmnpopÝnpÝo²opopopomoom±oom±oom±oomBBDBBDB®ºCFfofofo¨VZCCCF’fofofofoÿÿÿõeee ´ô444ffö’ÿVUeÅ\@´ô444fföf’UUÌ©©«©© 3«©«0ÿÌÌ©©«©¬«©«©©«© Ìé«©©«ÿ30 ©©ª©«©©« ©©3 0?«©«©©«©ó3À¬«©«©©ÀÀ«©UUÏ? 33ÿÌÏ?S? ÌÏ?ÿ3< U? 3 0ÿ?ó3ÀÀS?ÀÀÿÿ55Ñ¡±'þ£÷¹ ëv´sÊ.$ôë8:Úž‡ú:ìÈžŒ™ƒd>áDGG55æÌc#y„­ûð:ĸ5 xU6@P¥k¸Ãy'xØƒÎ‹ë© ,,*ÿ>`D"?ÿó*þÿVVX_-P+ *( &  Êÿü01216104$õeCCßÕÿ-&ÕÿµÿÓ‚!&$?ÿðý/¶fL#*õeecßÕÿÕE$ýõÿ÷¢@$(ÿÿìë×îT+ÊyŠEcÎ2-s¨<(¢ô»n¯âmëafãÇWüCñ�ÏÐck¨bó6_æ ÍÜ Gwù§C2¶ ŒüZS²`xK "¶@)Sóôµ|?�̉2Ïÿg|aj yˆ¥|R?¼ÂÁG¦­ >~öW@aÉu‹Ó´c™¡ÏÐÏЇˆ‘Xs «Ô4÷ÑCúE‹ŠDË>[U ZÖ 100* !5ÿÚ4ÿÿA '0SSSS ð@C�„'ü•MMMP‹ !""  ÀTÔAc$@ÿÿ ‡~w*Fò~�­j‚80‚­=0À›ù\Ú“ÞP?@=ùóžÿlæÖ]ÄÂhkÎQ†„ËÀ2á±6ñ?‘’./¹²àÕùú÷·º¹¸�.l_@¶»¦dŽI©•Œ_ÑОJ ¿®+¦ÿÿTS1/gl³Yõ\c…i§»»�¨@/@zæQ6˜ëi 220ÿ^b&B"ÿVVV_!".,,  Ê/ÿü(#$#$ eeeßõÿ*õÿõÿó¢!*(p<,CCCÿõÿõ*ÿõÿùÂ@*.šÕTc2c2c2IÀ/öÿ�ÂWÿÿË(È�xÅ'a2A2AÀÿÿÕØ‘’ËÌkh$$ü5¼[£7µ(p'–ùpÏ5¬¨^Y&yÀSSNSSUÖ � ÿ 781ÿÿ" 5`Y, ¾Ëÿïÿ'T¼$1$$(K^!($g€ ÀBBSBBÿÿGGG`@0000(¨/_GGG`@0000(x/_GGG`@0000(x//_GGG`@0000(U€ þÿ€ þ ÿ0þÀÿ UUÏÀÀ?ÀÀÀ 3ÀÀÀ3ÿÌÏÀ?ÀÀÀÿÀÀÀÀ?ÀÀÀ ÌÏÀÀÀÀ?Àÿ3< ÀÀÿÀÀÀÀ?À ÀÀ3 0ÿÀÀÀÀ?ÀÀÀó3ÀÀÿÀÀÀÀ?ÀÀÀÀÀUE! € €  Bà@€! ãUl8ÿnÝ„Â@5Ä€¿PÐ    & & &0 *0., 6,*$&("    2$>@:  B<JLF8  NHVXRD  .8:<68:<*,.0 "$ "$   . :<2 :4BD:,  B<JLB4  .8          $  &("$*024.,   >0  )') )')    )')       97"9( *$24"  *$24&  .(682$  US2U8:4BD2$  :4BD2$  :4BD2$  2468&(*, 9ECE "*,"  *$24*  2,:<2$         ‘53 5   &(   68:<*,.0 1535 "*,"  *$24*  2,:<2$  U    153b¹  #+-#  +%35+  3-;=3%        (    !#%!4   42_´"*,"  *$24*  2,:<2$  %    *,.0&(*,553jÁ  #+-#  +%35+  3-;=3%        T21_rockT21_rock�ÂázFÀ>ÄðA…+5À5Äœ5œ�€5DázFÃðA€>D…+5Ã5  WŒzxx(xzxD Àÿð?WxïÚ ð?   ðVÇuÿwŸ(9Àÿð?&# ð?   ðuÀð?©qrqrqã©?ÃÏüªª¬«qrª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ªuÀð?T7T?ÃÏüV$xxzxÏÀÿØœ�׋¸�‚‚Îñêm ””’×)ë&�ÓÕÓ´;°=;·ñ¾;=^Ü:Ó‰ÓçÿÀgGààÕoCåzg]$E A  #5Нÿª¯ÿª�'-'+!ÿÀ1 w;Š,K¢qV‰ðÿ©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀµ <sóS¦¨cõô¨à|Ȧ5™!¦¨²ÿÀØn¨¦¨.%?o;_?]?]?]ÿÀC:Ʊ[)™¯L6’* w,+bÍ/`*D!Ô‡.a‘ k:bäm\„[›7rg@ qÄ \q Ã! `#JFqIk¿L(Ä&…:Mrã#7pJ*%˜KLqèC�$ƒ€€?ð?`_ @_ @_ð? @_ @_ ð@_ð»¿ð»¿ð0DD»¿À{¿€U_D0"ÏÀUUrZèõîÊqj A4€¿qÐ  "( "( "( "( " T22_groomed T22_groomed´Á…NÀGÄ�A¤pBÀ>Ä   º´Á€>D…NÃ�A€GD¤pB亜 ÿÿÿÿöõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöõöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøÿÿÿÿ$%$%$%$999999999999999777$%$%$%$9999999&%9999999777$%UUUU ÿÀÀ©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÀÀÀÿ«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©ÀÿÿÀ©ª©ª©ª©ª©«ÀÀÿ󩩪©ª©ª©«©©«©«©©«©©«©©«©©«©©«©©«©©«UUUU ÿÀÀÀÿÿÀSÀÀÿÿSÀÀÀÿSÿÀÀÀÿÿÀÀSÀÿÿÀSÀÀÿóS??????UUUý¡ãj„Ì7Ð ¥sáiï¯GêáðÀו>2šK�¥êœå"kÕKLKLKLKÀÀÀÿIIIÕKLKÿÀÀÀLKLKIIIÿÿÀÀÕKLKLKLKIIÀÿÿÀIÕKLKLKLKIÀÀÿóIIÕKLKLKIÿIIâ„šŽ‹ÿóÄï×KÉÊI³µKI³µÿKI³ˆlóµÿ°¯ã˜I³µKI³µKI³µl·III¯ªYU%(1**Q#"(M&C` 9°ûËËË2°Ð°ûË2Ë˰аûËË˰Ð2°ûËË˰2аûËË 2ÿ 5 ÿ e  & & ï & ÿ('(3 &  &  &  ]QÁBš kh ÚyŽú.ºI¬ù`Ñ’i¦Px+¹´|¾ÿüàéËë.¾ûôÆDÿܬîù+¼Bž¡ç ó‹òµ;zÀyÿÄÔÓ¹Žÿýá¢ÜÌyN.<;åÿ–°�*ÿžÝˆ_¢A„ïYFy”.'PÃO™šÿ™h³}Ô¯ÿû÷/K¯Kúš™š?™š=[š?£RQ*YU@42‚1¢UÄ™2r”r÷qùQÇ0ÿÿ$ ¯šoT%0Ï&ÿÿ)" EQÏÿ !"/1,6kj%0&Y D üømP54ÿcDÿt�VaÿøÀŽ-D3$ÿzRçÃÿÿ˜U;ÌD‡a¦�€�‚‚~��€���€ÿUUUU ÿÀÀÀ¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÀÀÀÿÀ¿ÀÿÀÀÀ¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿÿÀÀÿÀ¿À¿À¿ÀÀÀÀÿóÀÀÿÀ¿À¿ÀÀÀÀÀÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀÀÀUUUU€@€@€@€@€@€@ÿÿÿÿõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøõøõøõøõøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööøöøãööøãööøãööøöööøãööøãööøãööøööööáöÿÿÿÿ$%$%$999999999999999777$%$%$%$9999999999999997777779999UUUU©©«©©«©©«©©«©©«©©«©©«©«©©«©©«©©«©©«©©«©©«©©« ©©« ©©«UUUU???????????? ? ?UUUUKµ³IKµ³IKµ³IKµ³IKµ³IKµ³IKµIKIIàKIIàKIIàKIIàKIIàKIIàKIIKµ lµK³µ IK³µUUUU $  $  $  $  $  $   &  &  &  &  &  &   & & HÏÀG•ÞGUTðóš2134™š™š™š™š™š™š342Ëϸ˜ÃÏÀ ,Ó. š ™šUTa„VÏÀUO¦Uÿÿÿÿ/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0/0/0/0/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0HHH'//ˆ'//ˆ'//ˆ'////?_Ð/TUE‚�‚‚‚~��€���€ÿ‚�‚‚‚~��€���€ÿHUUUUÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀÀÀ ÀÀ?À ÀÀ?ÀUUUUÿÿööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööööøãööøãööøãööøöööøãööøãööøãööøööööáöööáöööáöööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøÿÿðööãøööãøööÿÿ999999999997777779999999999999997ÿÿð77UUU ©©« ©©« ©©« ©©« ©©«© «©© «©© «©© «©© «©© «©© «©UUU ? ? ? ?  ? ? ? ? ? ? UUU IK³µ IK³µ IK³µ IK³µ IKII I·³I I·³I I·³I I·³I I·³I I·³I I·UUU & & & &   $ $ $ $ $ $ UUU ™š ™š ™š <™š34<2ËÌ ¸˜Î š˜Î š˜Î š˜Î š˜Î š˜Î <š3ÌUUUÿÿ?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(HHHH'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0ÿÿð(o0(o0(UQHH@|‚||~‚‚‚~ ÿHHH@|‚||~‚‚‚~UUU ÀÀ?À ÀÀ?À ÀÀ?À ÀÀ?À ÀÀÀÀ ÀÀ?À ÀÀ?À ÀÀ?À ÀÀ?À ÀÀ?À ÀÀ?À ÀÀUUUÿÿë%åÿx1´Á@>Ä€¿Ð        .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64  F8NP>( F@NP>0  F@NP>0  E      EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$ >4BD2$  :4BD2$  EC2E8:4BD6(  >8FH2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  A?2A8:4BD2$  :4BD2$  :4BD2$  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  =      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  =        53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  9      53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  T22_iceT22_ice� ×@ÀAÄäÁ=Š@À>Ä   üÒü�€>D ×@ÃäÁ€AD=Š@ÃuÒm ýÿÿ3ÌÏÿWX¯YWõX¯YWõX¯YWõX¯YWWWWW÷WWW÷WWW÷WWWYWWW÷WWW÷WWW÷WWWWWYWõWYWõWYWõWYWWWWW÷WWW÷WWW÷WWWYWWW÷WWW÷WWW÷WWWWWYWõWYWõWY²žUX¯YWõWYWWWWW÷WWW÷WWWYWWW÷WWW÷WWW°WWWWYWõWYWõWYWõžWWW÷WWW÷WW±WWWð÷Wýÿÿ3ÌÏÿ"5"5"5"33333355533333355#F"53333!555H33$ð3UUU ÿü@?@?@?@@@À?ÿ@ÿ@?@?@?ð00?@@@@ÿ@?ÿð00@?@?@@@@?ÿð0ÿ@?@?@?@@@0?ÿð@ÿ@?@?@?@@00?ÿ@@ÿ@?@?@?ð00?@@@@ÿ@?ÿð0ÿ@?@?@@@@ÿ@þÀð0@@@0000@@@0ÀÀÀ@¿@@ð00À@¿@@À@UóÿIJ„d稧Hðèç0À‰ŠðÇÑÒGc®‡ðdjUóÿEFwfUVHð0À‰ŠðÇÍÎCe¬‡ðf—@WÿðXW ¬·í.ú9-¹è[©J¼GHÄ€¿Ð     " &(   :DFHB@   RD^`J0 RLZ\F8  NHVXB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4 FD NP>(*,&U,    ECE&(    EC"E(*$24"  *$24"     EC.E460>@.   60>@.   60EC&E,.(68&  .(68& ECE$& .0 T22_packed T22_packed@À{”HÃÀ@ÄÀ¿ÍLHÃ`@Ä   @À`@D{”HÃÀ¿À@DÍLHÃvn ?FGE?3ÿÿ ÀGÿ—ì%@À @Ä€¿ Ð T22_powder T22_powder�Â…NÀGÄ�B{”=À>ÄP–P�€>D…NÃ�B€GD{”=à–˜ ]]ÿß3óÿ<«¬«©ª¬«©©ªª©ª©©«©©«©©«©©óÿ󪫬«¬«¬«©©3ÏÏ«©©«©©«©©«ó333©©«©©«©«§©ª©«¬ªª©©ªª©©ÌÌÌÌ«©©«©©«©ÌÌÿÀ©«©©ª«¬«©©«©©«¬«©©«©©«©©«©©«©©«©©«©ª©©«©©«©ª¬ª©«©©ª«©©«©ª¬«©ª¬«©ª¬«©©«©©«©«oáªqã:ã8á8ã:ãÿÀÀÿ87«:ã©«ª¬«©ª¬«©ª¬«©ª¬«©ª©ªª¶Äf `ödododfôCCFŠdododó333CFS¦ó¦@``@``@``@``@Ä4`ðdfCFFoF`Fdödödö¦dodo£¯dfFdo\ŠFõÄo\Fÿÿÿÿoøèæèè$"âN€`õÄ”o\FõÄo\Fu÷U] Ï©©ª©ª©óª©«©©ª©«©©ª©«©©ª©ªÿð00©ª©ª©«©©ª©ª©ª©ª©ª©ª©ª©«ÏÃÌ©ª©«¬«©©«©ª©ª©ª©ª©ª©ª©ª©ª©ª©ª©©«¬«©Ìÿ©ª©ª©«©ÀÀÀ¬«©«À©©«©ÿÀ0©«©¬«© «©räãäãäãäãäãäÿÿ?ãq©ãä«©©«©©0 «©©u÷U} ÏSóSSSÿð00STSTSTSTSTSTSTÏÃÌ))Ìÿ?ÀÀÀUÃ?ÿÀ0?U :9:9:9:9:9:9V9??0 ÿÿÿÿ#¢vóÖýH Z)¡c3Õ½ž™QºÌ,÷2±g�àÅ>å�sûLðÃÃÃàÃ4îóî¹¢ÛS†ÖŸg‘ŠïeÕðÄtZsŠÁèsi-˜àíšTí›É~)vN0è0çç;í;<`Ž ¦¥¦¥¦¥¦¥�Ž<;¸·{| /$l¦±ÕÕÜpA¸uíu 3Ör±cccœ“HhÙ~t‹ÉÓXœyÊUÀ…s¥€ëˆ¯ìëžêê¸ÂK£ÃɈí²ðÊ�ÄfuÌ�(ÀÌÝ#ƒÙ—4ü…vteK¶ˆÎŒç¤Kf�Ù\"™S¢¢î›ÃÃî1ÌÖ¿âÓçˆôFbç†Ä½Úfò´ƒ\ç{#nö§IæûÏPŸ¬ï°2+l¹a`¼•µÎ 3¬‘!ÜD’V®XÄŸ}ÿÿÀ=Ïíͯ› ¦ÓyKq^ѼùÑ£)FpY^Î Žd€áDØšBsÝ,‚IâH€¥¢ÑOð…­ ß=@`Œ�Áðë™�+mÕé·Ò}„ …yÇT89¡®#«È¤†I ›fSuî;Ô¦ãÊõˆ r.hq N¸•œEqKÓ…^í°™€â5±ã{5úux ESÛ«€Uã™Peÿ뙪š - €ÿøM„%@A&"óVV=/E& && ó"6":P?·fpþ@ ¿61ßü€«¯Üøo¦©ïþÊø¨ô¦5"rD!Vxÿ@ÿ[ÿWý_�$ÕöýoÕB $$/üÿßß~D&#ÏÆÕÿ  ' _oµôû_M³  ÿÿÿÿÓŸL”fÇžqS!Šñ @W£¢Lb>ãnÔþ“™ô ä]rì­®­®eÊÕŠ‡Ž®jñ"NË XN«x|Ír21ص¿šô¹ÅtVŸ[Ö™ý:óGÃ`ÑG¨¸8rÍS„� ?k¬«¬Yé¾äßÏGaˆ;%Çne8LŠÜ±Új'j‹¥Ø¸>ÿ ,Dº(«2T„=>6iÐ]=,?£‚µ¡µ~3-c t|«Õ0/·üì‘c¬qþRÀ$½¢àã2ÔiSàž¤�Ô3�sâp9µÙTœbÁ¾Ô=îÄ?§Rj„µéc7ˆþ²UÊ[þª] C$A( BÿøG†!D9(?Ð%4tt‡ceA ?Q- & ].*+,K:=RQ<IJIfeTK:388kLC  ¦oòÿIñÆ$ƒH(bŸþ¦6BaS.Pÿ" 5�•/ß"LR—á * Ïã !Bÿ[ÿÿ]Zƒ˜?D2 *e 4&u2>oF(Põ¦üûüû±-èAG�¤~fð3ê°g#Ât‘nÈ=?楅XKyê=ÔOæ?L)` §�!/P?ÏÀ¨÷¯ªÿøÿ…BJd�¢Û<#<;>90A!"Qn àä!% .7d)< A62 /CV%,Û¼µ¼ ú51JŽ+Ò�çëm )pÈЉj:ÓÃêÐ4³Ö ¯=<14 mn“.tóÚ´ÆXÕÀ_–¦d^tl^dy7mà–E–44?O,,,x#O"€V44 Àÿÿ *õøÿo÷$(*/&ÿ �×öý_o·&&"_Ý}0Ê:rk•·²Çâd#ýS3�¡Go}¥¸GU¬ ¶ÿÀ¤¹¸>¡ÔÌÒ¤U,yp¡¿vœ5¦_«2 ÿÀ¾¿Ó£…��É�®³Žº)( ˜±ü¿7ìí¿ Ñ‘¶“7JÍÁºÅ¥P"U3CXfzC$® ñ ½_�‰*‹·ž"ñÐ|5ûûR,aÝÿÿ ÃQÝp›ZŠï0\`û+¨€ìëo�Œa±Ïê&Ħ³�Ü“Ôî¥� H[©n] )&$A(¤ÿþoø)¢W.ÿÀËf�„’&;aoøWñïØ‚�Ôx_˜?�ü¢ÿ¯aøÏèÿ{F" ñü@x%ß¶ÿ½²ÿ�" # H`>#:A lÿÒÜÄ&µš)#� HÝ©þß3óÿ< /`HHóÿó_GGGó333`@0000(VUfµöµPP�°°°°°°°°°°û˰ð$»»¼» »¿$$ 4 4 4 'HH//H_G0G0G0`@0000(/ÿÀÀÿ?/0G0G0G0T€@Àÿÿ„„„ÿ ÿÀÿu÷UU ÏÀÀÿÀ¿Àó¿ÀÀÀÀÿÀÀÀÀÿÀÀÀÀÿÀ¿ÿð00À¿À¿ÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÏÃÌÀ¿ÀÀ¿ÀÀ€ÀÀ¿À¿À¿À¿À¿À¿À¿À¿À¿À¿À€À¿ÀÀÌÿ?À¿À¿ÀÀÀÀÀÀÿÀÀÀÃÀ?ÀÀÀÿÀ0?ÀÀÀÿÀÀ ÀÀÿ<ÿÿÀÿÿ?ÀÀÀ?ÀÀÀ?0 ÀÀÀUUUU @€ ™™š&fa™’f@€� €†ffI `@ ÷ÿ©«©©«©«®ªª©©«©«:ÀÀÿÏã©«ª¬«©ª¬«©ª¬«©ª¬«©©«©©«©«®ªª©©«©«:ã©«¬«¬«¬«ª¬«©ª¬«©ª¬«©ª¬«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«ª¬«©ª¬«©ª¬«©ª¬«©©«ÿð©©«©«©ëº**€`õÄo\”FõÄo\Fÿÿ**d444õÄo\�FõÄo\Fÿÿ*d444õÄo�\FõÄo\FÿÿðUU«ãÿ?0ä©«©©«©© «©ÿ©ãä«©© Ì0«©©« ©©ð?ª©«ãä©ðÌÀ«©©«©©À0«©UUT7ÿÿÀ0?? ÿV9ÌÌÀ0?? ð?UVT7üÌÌ??À0ÿÿ&°2€P»À Êññg .ïÃÃÃéÃÁÃÍç<�*PéÖ*ê™_Ö¿ ™­Š¦mU2R>ó&ö’ÊU&ñ1½lÃwÃÊÃMÃÃæK­<¦©›«:¦[›«ô«Mù<¦m(ോ’âðùÓšb'£¤C!¸wÃÃ.ÁÃÃMæMù<ô«K¸Ö¿ºK¸Öq M¸Û#ò&ÿðû†Úi`©ëº"&(**20c$E!+¹y÷—ðF�HñD�Fÿÿ$(*.>P#�$C!!!% wð�ppð$�Hð&�Hÿ""ÿð .B@.ÿÿÊ�“ØÛ̸ÄX)—�¬²ÖT Ÿ bÑw ÚØÏL„¾�/.ë…Rfü ¯ŒÄÙ—@4ÛôËo}�ðžÐÅ·VW=ë}õöfGVi~’“uTÁ£O¢{?…HlÅØLýp÷ã:–“�îa ½P'ðäöef$#ôv³oc«¤Üײ‡'ØÙ=›vÁ¬�µ€œÿðõ§Ýmæqªª 3/E@NððÔÙ?m•ö×_MqSuo#!bòTñ!CCv×?Ksô·_ms3•ˆ%"BðN óCeevÙ?ouöù?M•%—Jÿÿ‰�z¹�:ï îp5³å¾}Ô#:§¨’A wªP-$ÓNÿ¥4ùä iÞ Éc¤²Ô±ßÒÒ1ÒÌUQY»T–COÐ¥¾ê�tò ÷éÕªÒ³ÓŠL&ÐH$hÚR‹iÁÔ_¹yÙ-)1GØ vL¦ÐÜÛýþàæ©ª%Eæ¾È=4#þÑ5º(Œ9w¨gÿðú�¶'e˜–Y‚9|BP€À!¨36 0 À$!@2Dp0ZX Wb1!1pù`u]ÿÿ úÿµêÓŒ:ÂÀÿÿÜ ðF Ã(-ÌÎÉvɂ翀%¢?q̽Òÿ©È& Àÿÿ ôÌuïæ •×”äK<ëT1éÔ‰ÐÕ�«;ÿð i<²Ñ ¬ÿLúd¸&;~¯þ�=~6Ôš!6/vJÿðR¡ëÆ3üiZ Pß2–ù_o—ö÷o“Uÿ8v÷_ouöÙ_�u3ÿp  0ÿ o•öû_O·# ×jÕu`ÃÿÿNFH•ë§Úr¡ÃÁ€ÂÁ]ù``ˆ¤�áî�27¦ú°æVÿö&\\«W¨`íŸÀÃeûQÜ©\þÿü!‚8¦¥³´B‘PWðU–`Có¿%ROJcÃÂÁ€N)``C°ã*_JöCCC'`f?¿ü(SPMNOV]L óee‡!B`÷ÿ`@0000(?////??ÀÀÿÿ/0G0G0G0`@0000(?////??0G0G0G0`@0000(?////??0G0G0G0`@ÿð0000(UU ÿÀÿ ÿÀÿ 0@ÿ ÿUUÿÿÿÀ0?ÀÀÀ?ÀÀÀ?À ÀÀÿÿ?ÀÀÀÌÌÀ0?ÀÀÀ?À ÀÀðÿÿÿ?ÀüÌÌÀÀ?ÀÀÀ?ÀÀ0ÀÀUQB@ H@ °$„ HU»Îå;ÿÿüÁ?Ä€¿UÐ      F0  "$NHVXRD  ZTbdF8  2<>@:<>@*,.0 "$ "$   . :<2 :4BD:,  B<JLB4  .8                         "$ "$  .$:<6  "$>8FH2$  *0  2,:<6(  >8FH6(  >8FH6( IG.I460>@.   60>@.$ 20>@2$ 2468&(*, 9ECE           =      # %        # %!+ -5? A9? A5 ?AY                ZtnpQ uvkuou                           ! D                              ! H                T22_rockT22_rockÂNÀGÄðAf&CÀ>Ä{.{€>DNÃðA€GDf&CÚ.’ ?Ïó?ÂÁÄ0/b00/üÀüê‚Á@‚Á@‚ÁÀü@‚Á@‚ÁÿÀ¿Ì 0/2üÀüE / / /Àü / /=<ý0Ì㩪ª¬©©«ärª¬ªärªª¬ârª¬ªärªª¬ârª¬ª=<ÿ0Ì7T€)xxzx?Õƒw¢å ;±é]Ë6„­+xdmmåïP® m™Ímkç˜-Í(Q(:Ö�Éɾ/ Uª%K(OR5A4[GG3M#ïöþîÿüìG#;1?3¦³X cX°ÇCPOO«ø"[ú!”G0c…#=Ž$ F@NP>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  $A         E C&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  28&, 5        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  28&, =        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, =        5 3&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, =       53"5(*$24&  .(68*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*,  T23_powder T23_powder�Â…UÀPÄ�BÃuBÀGÄ|1|�€GD…UÃ�B€PDÃuBÃå1Ý Õÿÿÿ3ÌÌÌ©ªª©©«©«ð ÿÿ:ã©«¬«¬«¬«ªÏ3󩪬«©ª¬«©©«©ª©©«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«ª©©«©ª©©«©ª©©«©ª©©«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«ª©©«©ª©©«©ª©©«©ª©©«©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«¬«¬«¬«©ªª©©ªª©©ªª©©ªª©©«©©«©ëº®3ÌÌÌ*è`CCCOŠ`\\FöFödo*€d444ödŠofFödofF*èCCCOfŠFödofFöd*þ€d444õ–¦•¦•¦•¦ÿ*CCCOZi–ZiZiZoÿÿ_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©«©©ª3ÿ𠩪©ª©ª©«©ÿÿ©ª©ª©ª©ª©ªÿÿ©ª©ª©ª©«ãÿ Ìðä©«©©«©¬« À©«©À©ÿÃ3<ãä«©©«©©ª©À0«©©0«?ðÌÀãä©«©©«© ©«© ©ãäü30«©©«©©«©©_UUUTSTSTSTSTSTST7SS3ÿð ÿÿSTSTSTSTSÿÿTSTSTSTV9ÿÌÌð?U ÀÀVÿó3<9?UÀ00T?üÌÌ7??  V9ÿ33??ÿÿÿÿöü¯Ö3šõì¸%%¸t46|4û6E|EzC6×F6E66Z6Æ6„E&Öü>&’{;6�5,|À÷þ$ö®a¬aghaH¨µÀNã;ÐÇK|46°6E|E|E‘6L{N6cLyL6aL¿Ö6cü“å[ô±€LvÌ ûL;I‰¢46|$CzCz‰À‰‘6§¶6§=rt6í;rr6§�.cĸúÎJ��Ãe &;ÀØ4|6‰À‰À‰À‰rì’,ŒìL.ŠÍëÍ[$¯{{Íìêµen;뽸àÝÛ6zzíÍû͵ì·îrì[§Í=ŸÍ=ÖlÍ�Ö-/Íé뺮?ûów! 1ww÷  |Hò <828!L#^!Z!J!}$=!! —Wðppp÷$ �rH×$�rH$&42(e&='»wrF·$kPFµ& $*&*E&?!ÿÕwðpppð+FðFðFðFÿ& $"$(+&E!-uooMOÿÿ" $ÿÿÿÿ�pIåSîËg¾óã&ŠñÞf†‡Òÿÿÿfežpo/ ÜQAK%å¬f€_!:gì")»¢˜£ü5� Gk\�ˆ›^”@¾ÏSGÁ¤êEZÿL)DŽ}—u¬343–j0©³Ä´Z¯Åÿć‘[âaÒOTž^§à†W?õK®™�ÿ~©çès™ñ•Ó7¸"ƒé82pE"ª,Á†òOcöŒ�SõÙN”DEZ÷ƒddL©ÂËÌË¿ÀUVeZ>5xMzFLM*›Ý¢L~gu­xj�•�ˆ‰¹`ï.\v<^bÞuê^ì<.ÞaR€ÑéíáÏíQbÓɇªªªª$pA"@ 0&òVT6QPo+%O³ù³õ»r-O"G(IBAPðõeee�_Y·ó›_Y·$""E³Fö´@FN�xxVQWµó›_9µó[ •dW/k"P¡ð õe‡‡Öõöõö÷öùtC0òp®V¯xXxo_!M_M_oy ÿÿÿÿŽœ;Õ­!™±Ð8xS³PÕ�š’"¸€!ÐÏÐ…†[è‹ö|ŽÃ¤]H8ö¶ê”Ãx x�óêžxyy.‘¦¤¨\9�š÷èòê"Li\œž5=’ t-ƒ¿6[„ýþý:©¼F™B%¬>õרÊt•E‡ÐŽì>Ÿbì4¢ÝòÏx´.‰Rÿlƒk¹õ£`‡D»t­ïÂ�¡eâlqu)ÂÀÏníÊHÞ4${v¼YÙf pš ¶œÊ—y åæå¢¡ò‹Âf6órÄ'³¤%UEí“1’6i#lŽH’�ÔƒûÄohO=A_Ê+_©ü© Ð;�Mˆ^ë¨"E ª:@4„—²VVUYA#CcC   ñ]\Gš$ CO D�À1GA¾Üðx�GÑPo·„½f`\HH@"ñ„#0D™˜¼õu]׸  P`"�' ƒÆèżß~[V‰ùÕY w±zÃ’‹ÿÿwÒÅ0,ùÁÀ? ¥nµB¬QšÅ8–¡ç�d‹TðXÿÿ࢚¶—°k—Jç°0 üùâþ±‰@¿C±8 Ç_�šÿÿðawü~¦™CÿÑ·�~FíÁŸéÚŸ°e“Ë¢½^4þÖ¯ÿüH߈Þƒ[gãÿ-‹É9¦yð• v:K(d0£ ¥ ¥i–ro/%/oÓûÕõ½’-O&ós 2? Y÷õ�;Ù((&GÕFð2 ×ó�_9Õõ{$""µfw/2 ÷ö÷ø÷öûtý\2ÿ oo_o{__×uVဿ«Oò 1³¯o…–hh †+øÅÆ���`1&÷uA1ûþ°ûV!µVHÈX¦¥¦P� H'ÿÿç÷ü€27{)”jið� …Ÿ` eÿÿÃTÉ­ÁÈÖš‚`Th@ÇÈdz´/0Ÿ```\ÿÿºßäZE%äq¨,^q_ýó‡—ç\¨YY–e3ÿüLRS FINORQZÿ0(ðVVVP]N`!#ÿ?( OVcòõ‡‡‡N� HÿÏ(W JQZÿ¯zšÞÔkV!` d¿ÿ*[VSV¯ð ýííÿ@s^#```HÅÿ._\ }f¯xzÿø %õÿÿÿ3ÌÌÌ?////?ð ÿÿ?/0G0G_`@0000(?////??/___`@0000(?////??/___`@0000(?////??0/0/0/0`@0000(?////??0/0/0/0`@000EEQUÿ ÿÀÿ Àÿ0ÿ0ÿ@ ÿ ÿÿ€WUUUÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿ33ÿÀÀÀÀÿÀÀÀÀÿ3ÿð À¿À¿À¿ÀÀÀÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌÌð?ÀÀÀ?ÀÀÀÿÀ ÀÀÀÀÀÿ?ó3m'K?@ÖìÅù°8õ;#¨rUhn�vu‚N¶…ç-ˆtOËú w¶ {/ÍÓÐçõLÝf°Àí „5@æf‘!! qøuÿ·Ëˆ 䉯f>ÿº%W?’㻉X6ÄY¢aß[ßÀ¹e0?ÿ ?M?M_!@¶àƳ¿Ä^CT¸¶áÿÿÀçcÛÜ }ÜÑü`CÿÃ0KNƒrÿÿÀ-`0(?////??0/0/0/0`@0000(Àÿ0ÿÿÿ?ÀÀÀÌÌ00?ÀÀÀ?À00ÀÀ@ Ú�ÿ&ê�Â@GÄ€¿�Ð             "$      " &(   6@                  !!     Y                 I          I              =                 =      T23_rockT23_rockÀA�BUÀPÄðA)ÜMÀGÄl%lÀA€GD�BUÃðA€PD)ÜMà % 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ³OÀŸ¬�µ��Â4Û�Â�µg?Â�Âr ‹�ÀÿÀÇÂ�‹WU"]W$_W&aY W_ÿÀI<}’a)MÉç(aL 0_'!!`(¡´ê8ŽÞ¿ÀO6˜Hf#Ëñ²~KPw Cx¿H wï2CŠgÒ¿ÀO<Œg `@#JÉîmIµ#íÉJm$6kG$#VylHIãt&ºu¿ÀO'&Æ�$3Ã?ð?`_ @_ @_ð? @_ @_ ð@_ ÿÏüÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÏÀÿ¿¿¿„0„0„UUr�ï_ìnFiÐA@HÄ€¿qÐ  "( "( "( "( " T24_groomed T24_groomed¨Á…«\ÀYÄœA…UÀPÄ   ²¯²¨Á€PD…«\ÜA€YD…UÃæ¯Þ ÿÿýÿööööööööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööööøöãöøöãöøöãöøöööøöãöøöãöÿüÿøöãöøööööööööööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööööøöãöøöãöøöãöøöööøöãöøöãöøöãöøöööööÿÿýÿ###77777777777777777ÿüÿ7###777777777777777777#UUUUÌ0Ï©ª©«©©ª©ÿü ª©ª©ª©«©©ÿü ª©ª©ª©ª©«© ÿü©ª©ª©ª©ª©« ÿ©©ª©ª©ª©ü ª©«©©ª©ÿü ª©ª©ª©«©©ÿü ª©ª©ª©ª©«© ü骩«©©«© 0«©©«©©«©©«©©«©©«©©«üé©«©©«UUUUÌ0ÏSÿü ÿü S ÿüS ÿSü Sÿü ÿü S üÃS 3??????üÃ?UUUUÌ0ÏÃÄÃÃÃÃïÃÿü ÄÃÄÃÄÃÃÃÃÿü ïÃÄÃÄÃÄÃÃà ÿüÃïÃÄÃÄÃÄÃà ÿÃÃïÃÄÃÄÃü ÄÃÃÃÃïÃÿü ÄÃÄÃÄÃÃÃÃÿü ïÃÄÃÄÃÄÃÃà üÏÃïÃÃÃĸ„<3¸„ÃLÃÃÃLÃÃÃLÃÃÃLÃÃÃLÃÃÃLÃÃüÃÃLÃÃÃÃÃUUUUÌ0ÏRÿü ÿü R ÿüR ÿRü Rÿü ÿü R üËR 3>>>>>>üÃ>ÿHG•×ÿ‘•ÞGUUUUü¸™ š ™ š™ š™ š™ š ™ ÿš™fÌÃ,Ó$ÿ9. š™š™š™š™š™š™ÀÌ˸UUUU„d@ÿVUOþÿ­O¦Uÿ÷ÿÿ000'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ Ãóóü`ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(000'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(0PQUHH@Ì‚|||€‚‚‚~€ÿ‚‚��‚‚~�€���€ÿUUUUÌ0ÏÀ¿ÀÀÀÀÿÀÿü ¿À¿À¿ÀÀÀÀÿü ÿÀ¿À¿À¿ÀÀÀ ÿüÀÿÀ¿À¿À¿ÀÀ ÿÀÀÿÀ¿À¿Àü ¿ÀÀÀÀÿÀÿü ¿À¿À¿ÀÀÀÀÿü ÿÀ¿À¿À¿ÀÀÀ üÃÀÿÀÀÀÀÀÀ 3ÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀüÃÀ?ÀÀÀÀÀUUUU€€!ÿÿÿÿöööööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööööøöãöøöãöøöãöøöööøöãöøöãöøöãöøööööööööööøöööáöööáöööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööööøöãöøöãöøöãöøöööøöãöøöãöøöãöøööööööööõöööáöööáöööáöööøöööáöööáöÿÿÿÿ##777777777777777777###777777777777777777##&77777UUUU 0©©«©©«©©«©©«©©«©©«©üé«©©«© 0«©©«©©«©©«©©«©©«©©«üé©«©©« À ©©«© ©«©UUUU 3??????üÃ? 3??????üÃ? Ì ? ?UUUU 󄸄ûÄÃûÄÃûÄÃûÄÃûÄÃûÄÿÏÃûÄø„¸„ 3ÃÃLÃÃÃLÃÃÃLÃÃÃLÃÃÃLÃÃÃLÃÃüÃÃLÃÃÃÄ<Ì ¸„Ãû„à Ãû„ÃUUUU 3@@@@@@þÃ@ 3>>>>>>üÃ> Ì > >PüHG•בÿ•ב•ÞÀGHÿG•ðYUUTÿü˜Ã,Ó$š™š™š™š™š™šÿÿ™ffË9$9.À ÿ¸˜ÃÿÀ ,Ó,š™ š™UT@$��€PüVUOþ­ÿOþ­O¦ÀUVÿUO¼kÿÿÿÿ00'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(000'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(00/'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/TUE‚‚��‚‚~�€���€ÿ‚‚��‚‚~�€���€ÿHHUUUU 3ÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀüÃÀ?ÀÀÀÀÀ 3ÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀüÃÀ?ÀÀÀÀÀ Ì ÀÀ?ÀÀ À?ÀÀUUUU€€!ÿÿ?ööáööööøööãøööãøööãøöööøööãøööãøööãøööööøöãöøöãöøöãöøöööøöãöøöãöøöãöøööõöøöööáöööá÷ööáöööøöööáöööáöööáööööøööãøööãøööãøöööøööãøööãøööãøööööøöãöøöãöøöãöøöööøöãöøöãöøöãöøööÿÿ?7777777777777&77&7777777777777777UU ©«© ©«© ©«© ©«© üð©«©©«©ª00 ©«© ©«© ©«© ©«© ©«© ©«©UU ? ? ? ? üð?00 ? ? ? ? ? ?UU Ãû„à Ãû„à Ãû„à Ãû„à üðÃû„ÃÄéê00 éW8õ éW8õ éW8õ éW8õ éW8õ éW8õUU > > > > üð>00 H H H H H HUU š™ š™ š™ š™ ÿðš3fËf4îÕS00 TFáH TFáH TFáH TFáH TFáH<<< •êcª_�ãUUL°0           ÿÿ??_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0('//ˆ'//ˆ?//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(UQH@||‚‚|~‚‚~ ÿHHH@|||~‚‚‚‚~UU À?ÀÀ À?ÀÀ À?ÀÀ À?ÀÀ üðÀ?ÀÀÀÀÀ¿00 ÀÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ? ÀÀÀ?UUÿÿ¼ÿ¨Á@PÄ€¿·Ð       ",.0*(   :,FH:  B<JL>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<68:<*,.0 "$1      EC&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  2468&(*, A      53&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, =      53&5,.(68*  2,:<.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, =    53"5(*$24&  .(68*  2,:<6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&(*, =97 9   "$   5365<>8FH6(  >8FH2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2 T24_powder T24_powder�Â…«\ÀYÄ�B=ÊIÀPÄÖFÖ�€PD…«\Ã�B€YD=ÊIÃ$F õÿÿÿ3ÌÌÌ©ªª©©«©«ð Ïÿ:ã©«©©«©©«©©«©ª©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©ªª©©ªª©©ªª©©ëº®3ÌÌÌ*è`@iF”iFö `•¦Š•¦•¦ðððð*èF”iF”oZiZiZiZ�*þ€diF”iFõ¦•¦•¦•� *ÿèF”iF”oZiZiZi� *ÿþ€diF”iFõ¦•¦•¦�_UUU©ª©ª©ª©ª©ª©ª©ãq©«©©ª©ª©«©0ÌÿÀ©ª©ª©ª©«ÀÀÿÿ©©ª©ª©ª©ª©ÿÿÀª©ª©ª©ª©«ÿÀà ãä©«©©«©000©«©0©?ð0Ããä«©©«©© «©© «ü 0ãä©«©©«À©©«©©ÿ ãä«©©«©0ÀÀ©«©_UUUTSTSTSTSTSTST7S0ÌÿÀSÀÀÿÿSTSTSTSTÿÿÀSTSTSTSTVÿðà 9?0000?0V?ü0Ã9? ? Tÿ 07?Ã?Vÿà 9?0ÀÀÀ?ÿÿÿÿÚ¿×¥ñÏûÏòŒÈ_pR´hh"h�$‚"�¤�¦�¤‰Š"‰Ø$!‹¶3C¶3E¶yµê‰+M‰àéy]E,Ñr¥,"‚`œ™"gð¨h""£¤C=¦E "‰¶3,‹¶_E¸V£E¶V’XOM«Æ3¶$á¶ Æ„ ‡�"$"_ ENC"E¶X¥CpâÐE¶×ŠC¶Ù+j5âȵ¾‚®òÐÅMB(Q+#+ÿWQQMMM$&$(("(U+%ÿ÷wñQ)L¼¼¼ $$(,.$)(U/%ÿÿwQ'Ó///&$$&..$/(Y3'ÿý÷Wá3#ð(ð(ðFÿÿÿÿBN©“}ÑÜç�…�ï1˜>XðË™õ²7åá7µî7IÈ}Ó[5’ …àa?Σ€©?jv+Ôâ�ðzç‚?1 lÈ+7�5§Š©®¶e¯ÚšŸŸE®Þ¦§Eî ®Ûº"¹eíþΰ8J?î'Mw¶¾ÒÃÅÅ`©]°o*-~œkE§Ÿ5èͺ"Ûÿ#Û¹ÿE¹ÿ³P�ëOëI{é¹wÞ·½hL‚Bsuѵî'n�I6k÷òX̵V¦e?î­?î­µ³zTVÜË]u5F¢@[óÈòÛ"‡•Z£CgÜyÏÑÜŒŒ¤ ó» 2ÎÉác]¢ßTkç”3²rFMªªªª 2²1óóoôÒ?³û%?³5$ҸijÆÓÆÕ°R0!AñCw¯V��³ý?Óý!7KoW5/9XXúðý?µû_µvóæõöõö÷QQ1BñCwZo¯oµû_µûWo_oo�—%O69^tÌò$ý_õÿ_ùT÷öùøùÿÿÿÿN�wÀÖûñ4ç°èD¡žòn^ bØ»H®óF®Ë®òTºsø|Œnø¤qÈ5�Š.•Aü%Æ?¿"„kCõ,aé¤Äîßêd­®BÜÝÚÓ9´ä¿ ŒÒÙ¸â-I$ôãÖ7«.È»Ôߊ?Ęäy8Vù((^­]-éͼ(ÚüV¹Éª$ôèþèÐÝЩªYÎáǦ�¶ñ~ÕäÅ¢Ö%FñÁÛçGå¼ÒàTÜyåë;jLõ =aëÐëãª¥Š«È…†mè¨Àl¶EÙï¼±†Ó¼ƒ~صqµjF�Ûæ}gkÔáöðä£?¿ýéÇ·ñ•õ>/¢VU¥©AA TP"�†@„„„@fä £bxcî!qqX2©üa€^Ü\P0¡B$4 # `y B Q Ä@T'b1`1BQõu]ïHÙø,�†# |•�Iüè1Ië©Ô C„dÅ{Ól©�³ÿÿÀlè0ëÖaV²2ð¼ñ†!ž™šÚIXSHÔ>à �ÿÿðSFhïzFÄÎ|>aLyƒöÎ\F�½�ÿÿþ%<¥ qB�QX_†L�y«;ê6ؘ–ç�,7u¢GYúmàù ôB@4¥�áÕûrdkäR a(Š&ð¸æÓÈóä×ÐR0�À,M�_�ÿB0 .Vóöõø÷øùSQ1Dð.o_oooµ3O.V÷öûöû_]×µ. ãð�s-D'Áï›tëh,,Zb! ÆÒü$àü`¤ÿüÚ~¨�€ÿÿ¡.B¦CÌÞÄV‹œ–\³XíêT†€Àú?ÿò8Zri&eåY-?è€ú†.³†çÖü`çPa€ÿ€²N›¿}ôTy„ˆdsbbôüôÿ:ø³éª|CÉŸ¿€$/a?ۑᔆÿÿð444æýÃ0Y]×u9þìý`ch o0 ôÐ?óÿ+ÿ�€Ýÿ2 IL‰|%À?ÿ4gj KN !ð`a€ÿ6 MLv!üÿ8   wvÿF õÿÿÿ3ÌÌÌ?////?ð Ïÿ?0000/0/0/0`@0000(?////??0000/0/0/0`@0000(?////??0000/0/0/0`@0000(?////??0000/0/0/0`@0000(?////??0000/0/0QQUUÀÿÀÿ0ÿ0ÿ@ ÿ ÿÿ€ÿÀÿWUUUÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿó ÿÀÀÀÀÿÀ¿ÀÀÀ0ÌÿÀÀÿÀ¿À¿ÀÀÀÀÿÿÀÀÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿ?ðà ?ÀÀÀ?ÀÀÀ0000?ÀÀÀ0ÿü0Ã?ÀÀÀ?ÀÀÀ ?ÀÀÀ ÿÿ 0?ÀÀÀ?ÀÀÃÀ?ÀÀÀÿÿà ?ÀÀÀ?ÀÀ0ÀÀÀÀ?ÀÀUUUUfffB@€ffffÀ@�    � B@€ÿ©ªª©©«©©«©«©§ªª©©«©«:ã©«©©«©©«©©«©©«©ªª©ª©ª¬«©ª¬«©ª¬«©©«ÿð©©«©«©«  *ÿÿèFoFoFoFdõ¦ö†\FõÄo\FÿÿðUÀÀ©«ÿÀ0ãä©«©©00«©©À0«©UÀÀTÿð07?00 ?À0ÿ^‰ó_׊£<”­4®,‚¶X¤´.444éáìŠ�qCV­ÏÇ“;+û¦OÅéiCpØXÏVgz+óÅqÇNÿð)^“­ñÇ«2$" &,*&3*]5ÿÿ¿01q)!s•ñj÷lñfï¬ÿ:*ÿð&(&*ÿ嚉ô·ÅÃŒ^­Þ§8!Bö±ÚnÿƒË`íièïÞJÓb”q€öLœºÿó¶™Â�gÌ?wA/ÛqG9pLÐ:¤ö€ÿð1a]˜>|úöû˜"ó£`·ó"ûý*04($( ÜÿÎØõÑDþäsü–Jolÿ�«šÚÀA½�ÛžY›„S>2’8 |ÁËeųÐËÞ�Ân Äz}¿~ �f/fÿðXŸu¢«ªD•³"$ B!òF¦¨/¬OŠ¢´µñ)uô™?Ku“:À×ZQ„‚ÆH)�eÚíú <<ÿˆ^à£TGà< ÊÎ�†º§ØQkÿððßs€Òøûx1ð0ÿ ,&,  ݽ Àÿ¿ å¾TŽßûœ>èÉŠÐKe=ÑתJ峪|_ X3�#]€ÿ6  kvuz.ÿÿö`61 > C™ ÿ/0`@0000(?////??HHHH0_0G0G0`@ÿð0000(U Àÿ ÿUÀÀÀÿ?ð0?ÀÀÀ?À00 ÀÀ?ÀÀ0ÀÀUÀ@�  ÿÿÎÿ5è�Â@PÄ€¿ÛÐ           "$ " *,& *( 24.$         .8                  1/1    "$ " *,& M                  )')    "$ " *,& =           )')    "$ " *,& =           )')    "$ " *,&  =           )')    "*,&  .(682$   9        T03_groomed T03_groomedpÁ ×çÁäÂ�AžÁœÂ   I I pÁœB ×çÁ�AäBžÁ—� ÿÿÿÿ¹ºŒººŒº¹‹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹º¹¹‹¹¹‹¹¹·¹¹‹¹¹‹¹¹‹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹‹¹¹‹¹¹‹¹¹·¹¹‹¹¹º¹ºŒ»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹ÿÿÿÿ..-EEEEEECCCEEE-----EEEEEECCCEEE----.EEEEEECCCUUUU ü0Ï©ª©«©©ª©ÿü ª©ª©ª©«©©ÿü ª©ª©ª©ª©«© ÿü©ª©ª©ª©ª©« ÿ©©ª©ª©ª©ü ª©«©©ª©ü0Àê©«©©«© 0«©©«©©«©©«©©« 0©©«ÀÃ3©©«©©000«©©000«©©000«©©UUUU ü0ÏSÿü ÿü S ÿüS ÿSü Sü0Àà 3???? 0?ÀÃ30?0000?0000?0000?ý×UUü?Ï쎆셅stìËZäUäU�½•ãŽc†�¢ëä�Ùã�ããýŽŽŽ£��ä�¿ZU¬ìëìï’×°)ßšë< oËìëìëìü ëì……ìËìüðÏÃëì…ŽììŽ�…êŽììÊ]ä�ØR��DÿÿìYää�����|óÃì;§k¥o…ì°ê… ðì°êŽìÌÏ30ìŽìŽ^…… 0000ì…… 0000ì…… 0000ì…… UWUUü?ÏT ØŸ!/ ,0 Lïÿ4   "Tü Tü0ÉÃ,3ÓÓD/ CV#óÃT > °>ÀË30>0000>0000>0000>ÿñU¯tv‹S ßaÅ;¯-e§ƒ°ÚU–ÖX:c>å\‘NQ€9ðD?B»65¦Œb1.2‘`™fŠ·$ÿÿü:ëïŠÍ)Ùà´}hWXEè¡EFEê£ÑÒFE¡èEFEÏ…ó-#% 1ÿó¯È�7//S1Íÿÿ7Ù[+ÑN]\8ðk4óÿEFEê£EF?ÿÀEêºÑ‹£üWVQIyäÿÿ"üÏÏ +/+Ì`ÿÏ+ ·¿¼!&<óð  ð¤ô0a&ÿ÷_W°ÑåAæ ÁZï§2�¬ðœÒ{Â_â‚™L£Áð¹7läñ}õ)²±úºðãeÃÕ›àh–Ä„(TùaÚ‘‹7¯œòÞJ“¶Ï’ú‹Œ‹Œ‹ü Œ‹‹ŒŒ‹Œ�y 7Ò)aŒ6ϨÖeµ*Ñà Œµ*¦a�ê(‡„äç«*Ýá�Ÿ��㔛ϷGÛÌ`ð°ðÿÿ)aŒ6C)aŒ6êÒDU‹Œ.-00‹Œ00‹Œ00‹Œj’q‚¾Tð!öPó"ô`¦`ò44òðI¬/ÿÏO 0OÇûs$ æÆD  74P}rEÿÏ?ÂO÷†ŸCäÁ1Ãlþ � mýgçðßA�FEŽGÖHEF—i˜KÇÈŸü/ÿ€-$?NmnW¤KWXW¤KóòÇÖ ò{wð #$|ø38óÿWXW¤KWX?W¤KPþÿ? #!(üÏÏ /9 9 Ä<óð%  ðÛÑÚ‘‘á+*9<WRA ”`5ÿýPJ�ÌDCÖÜŽEF·$¨˜å¢ßÏþü¹gÓórÞ­¢?WXL£XWXU,²É8-G˜ó¿NGÑFH æMÿÿGcï%ǰÃ}ÔHð‰BÿÀLû°L¹nUQ$B˜„�€oÿÏ  - "ÿÿ|?" ’> `ýÌ 2 ð$€ýÿÿ/0_00_0/`////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿüÌÃÿ€ßŸÿ€ÿ `ÿóóüÌ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0(W0(W0('//`//`//`////?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(W0(W0(W0('//`//0/0_/?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@0TUUUHH@Ì|‚‚||€‚‚~€ÿ‚‚��‚‚~�€���€ÿ!!!ñññø‚‚‚‚~ªjUV`V``öVVV```öVVV```öVVV```öVVV```öV``` 3 0``000000000000ÿÿÿÿ¹.¹¹¹.¹¹¹.¹¹¹»¹¹‹¹¹‹¹¹‹¹¹+º¹º¹º¹ºŒ»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹‹¹¹‹¹¹‹¹¹+º¹º¹º¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹»¹¹‹¹¹‹¹¹¹.¹¹¹·¹º¹º¹º¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹¹¹.¹¹¹.¹¹¹¹»¹¹0»¹¹0»¹¹0»¹¹¹¹¹¹.¹ÿÿÿÿEEE---F.EEEEEECCCEEE---FEEEEEECCCEEE--CEEEEEECCCEUUUU000«©©Ã 33«©©«©«©000©«©000©«©000©«©000©«©Ã 3©«©©«3ÀÀ©©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©À ©«©©30 «©«©© «©© «©© «©©UUUU0000?à 330000?0000?0000?0000?0à 3?3ÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?Àà ?3< ? ? ? ?UUUÕ0000ì…… Ï 33ìŽì…ì…ì…0000 …ì…0000 …ì…0000 …ì…0000 …ì…0à 3 …ì…ì‡3ÀÀÀì…"‡ìÀÀÀÀ…"‡ìÀÀÀÀ…"‡ìÀÀÀÀ…"‡ìÀà <…"‡ìŽì3ü ì…ìŽì … ì… … à 330000>0000>0000>0000>0à 3>3ÀÀÀ>ÀÀÀÀ>ÀÀÀÀ>ÀÀÀÀ>Àà ,>3< > > <, 2"T €’PÕ9:?<suêst9:ÃÀ<ü9ÛéWXEê£üFç­¯<ÖÕ<üüßñò80gË1„¹xiI잪J‹C5ï‚‘»‰ÀIPTBH<<üü"& ,+,PÐõ00‹Œ;OŒ‹FF/0/0.-/0ð.-Ï<ÿ.-/0.-/0/0óÀ.-À;OŒÇ‹�>Y.-6Cÿÿüoç§o¨pµ§"° <‹ŒÆÅ!<¥í,Êʪ(Ô«y4ï‰F{c„¤'.*@d€<  ð?ñóÏ -] (PÔIJ?<‘‘Û‘’IJË<üIHmnW¤K<<üþßKL˜�CF•Ù(Eæ{F‹a'鎫×ZET<üü$(Œ+*@UÀÞÝüW¤ÚÚ<üÜ <@U€HHÿÿÿÿ0Ÿ@00Ÿ@00Ÿ@0000(W0(W0(W0(‡0/0/0/0_/?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(W0(W0(W0(‡0/0/0///?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(W0(W0(o0(o/0/0/0///?_Ð/?_Ð/?_Ð/?__Ÿÿ€ßŸÿ€ßŸÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@UUUU0ÿ!!!ñññ‚‚‚ø‚~0ÿ„„„ÇÇ‚‚‚Çà``‚~` ``` HÿHH@|‚||~‚‚‚~YeUV0000``0000000000000000``3ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀà ð`   ¹¹.¹¹¹.¹¹¹»¹¹¹.¹ÿÿð¹¹.¹¹¹.¹¹¹EECÿÿðCC «©© «© ? UUÅUU8ýãããU¬ÎÏð]ÒxóIÊ&>(Ïð(Ó°´ÒÓˆAí�wà–ÏÿðƒW_±•Ç·óB0ç÷Ïÿð *fë0ÖŒÕWO¼ïHp �ÿÿð#o#}-Ü{­—\†¯"/Ïýð5 - ÿÿ>ÑÆ¬ÔÑŒGã�v@24š|©ªùeÏÿðŸש]_™,` 3Ïÿð#XI*?00Ÿ@00Ÿ@0000(o0ÿÿð(o0(o0(  WùXˆÿ“ÿpÁšÂ€¿N Ð       (*,&$   6(BD6 >8FH>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64 68 BD2( 64 >@.$ 20 :<*  1      EC&E,.(68*  2,:<.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  -+2-864 >@.$ 20 :<*  ., 68& 1  535$& .0"  *$24.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  -979$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   ., 68&  %979 "*,"  *$24*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*   2,:<*  !535 "*,"  *$24*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  -+2-8:4BD2$  :4BD2$  :4BD2$  T24_rockT24_rockÀAì‘[ÀYÄðA�BUÀPÄl%lÀA€PDì‘[ÃðA€YD�BUÃ"% 6à>©ª«ª«à>ª«ª«ªà«6à>©ª«ª«à>ª«ª«ªà«㩪ª¬ârª¬ªärªª¬ârª¬ªärªª¬âÏÀrª¬ª7TzxxzxÏÀ>+aXyXânw¸¸áªÀw¸¸&sww¸`R{åÿÀçÌü,ú$ SiScW],oMF“)ÿÀ`© B#:g/”ô‰5›‚` 7—µ�G(_¦»f>tnÿÀ&S @` @y:|Œ�n=AR�pÑVy@ˆk!ÿÀ$g †3à 'P÷|眩ü Û=;© Û=;© Û=;© Û=;©Û-- LÇNl>çêÿ?©kÊ ©ê>º ?ÿšZ©÷×ÙkMÿNººL©êœU•UUÿð91?ÿð B00?ÿBð00?Bÿð00?ÿð0B0?ÿ B/ õõõü 6 6 6 6ýÜó6 ÿ7 @7G 0 G6ÐA??®­æªpkt?À.ѳ§ðßst6®à1H*ØÒZCD®6)¹àðPÐ< ŸÌÚ/ÅâŽ�É%ŠÇ>£í.dÿ-Ü;qpsÉ&&¼3r77¶?uäjÿÏ}·±šr97´�Z +>@`A!ã0£Qãxð³gå€%Í%–¿4–cÿ _ÕUfeëìëìë†b*-Úb<¥Z_Ãëìëìëìëí00?ÿñoÃëìëìëìð00?ëíñoÃëìÿð00ëìëìëíño?ÿð0Ãëìëìëìëíñ0?óÿoÃëì Ÿ&»îAZEÿÐɳÞܱc:¬t½"üü x„û x„û x„û ÷‹lÇ!¹ø‹Ç¼œ?Ç..N\‹šNº×çÚ‹-kk^ç-lnÚMM-Œ ö~-ª©ÉÊ /šèÚê«÷‰l{0ºk�MKØÚl×Ù×MN«[Nš ¹N¬l~·-<ØØ÷ا{=ÙÕ‰Šj‹×NÿÌüNº>km~}›šÃ~•jWC8  333÷ < >ßõD!-&!¡qÜõ0yÒ ’"Bðð·�_KõDµ¯üß"-6#GWÿD E H*I?Ï]E2-.TM üJ Ãÿÿ±­6v“r"ùÉ;pfç5›k›ÁÂÞÝ*vŬ9ú! 7b–ËE\Ó;�âVó}.AÏ¢}'nK2unt*±øÞñõâ‚\­ Ÿ¼Ê8E=vozy ±ÐKºÌÛs¡¸w ² É Ú½Êys¹œ@ìÆ”ŽsTVw(¥–Nµ9ÿŒã_Wu­@ट‚卸óC“\_{ˆYõ8µUZe›1oùªYÚ;üÆëJºjgE D'`6”0 0¯9* &1 X#@£Pð?õ¢ÔETI€eóïÿÿû1KPYOM0OŸù"€ ‚ï#'# *5ÿÿü3$kNÆ�CÀÿÿFGSG7PF�UDDƪWƒ>lŒË s€) G3SvW ¾0êú˜óBªZA@zÒ(ûû;÷×ã ÿ¥¸á¥ªfª+®¥ð ï�¢�?O%% bFò ðsøUuðšÿôÿ”.%0€ªŒGåïN;DLB*yù;*Ÿ“û¿öÿ(Qjsü +Q6q1ùœs°¶nV$D|ÿ'—•�Ç ?èµ k&¾Eн7ÀV˜2�ÿÿòIR,·ŽAb�‚�Å�ÿ A3@Oðÿò1»/¥¾#ÏBß�-(oøú$¿ðÿ+$,ùæÿÿðJH6ÉN:*Á Ï À4Uï $A0 "5 ! Ró,ÿST[ 0J| ?ÿðI,iNÿ_ÖØI{h2Úô)dÁ}H²²‰èçÞÝ ]óý2ÞºfMBfŽ)hE£…ŒoV @›bIóÐD@îŸï¾R;_�Kvd|{‘’BÆ&W$ÅyèÅ$?ÿÿ§CoÊÐm/ý�ƒÏóÿ:ÔÖxŒŠânB¹¯°î @ñCª„‹£òîBAQÑà`Dê‹}�×GÞ’´õh³aÛü¤æB–jW\üOÿÏý� �<; â6?¯oð!?ÿù¿óZ!šÿÿôx18;ÿDO¯õ''D%ÿ {\ % `InwV5RKôÐLÀDA/ÿ. üÿÿÿ ``@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0_0/0/0///?_Ð/?p/0/ÿŸÿ€€ÿ€ÿ `ÿ `ÿ `_À@00Ÿ@00Ÿ@00Ÿ@0000/0/0/0//0//Ï_`_`_Ÿ Ÿÿ`@00Ÿ@00Ÿ@00Ÿ@0000(W0(W0(W0(‡/0 Ÿÿÿ `ÿ `ÿÿ_``@00Ÿ@00Ÿ@00Ÿ@0000(W0(ÿüW0(W0(UU€���€ÿH`÷à``‚‚~ ÿ0�þ��€ ÿþ‚UUU?ÀÀÀ333?ÀÀÀÀÀÀ< 30À?ÀÀÀ?0ÀÀÀÀ¿ÀÀÌ À?ÀÀÀ ÌÃ??ÀÀÀÀÀ¿Àó0ÃÀ€ÀÀÀ?À ÀÀ?À0ÃÌ ÀÀ@À?À ÀÀ?À 0ÀÀ?ÀÃÀÀUU $„€&„ÿÿàÿ�Á@YÄ€¿ÝÐ      .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64  >8JL:(  >< FH6,  :8 BD2(  I         E C.E460>@.   60>@.   60>@2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  5325824:<*$ *,24" "$*, =    535$& .0"  *$24.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$ *,24" "$*, )979 "*," &$ .0& &(.0&  535$   535     53*502,:<*  2,:<*  2,:<6(  2824:<*$ *,24" "$*, !)' � 9už'Ku8ouou/)79/!  71?A7)  ?9GI3%   3W¬64 >@.$ 20 :<*  ., 68&  A        536RÅ  ?9GI7)  ?9GI7)  ?9GI3%  ( &3cÄ64 >@.$  20 :<*   ., 68&   T25_packed T25_packed@Áq½hÀbÄ�@\ÏaÃ`^Ä   ørø@Á`^Dq½hÃ�@€bD\Ïaór« ÷Œ‹‹Œ‹ç‹‹çŒŠ‰ŠÌÿÌÏŒŒ^ŠŒŒŒŠŒŽŠ‰éŒè‰éŒè‰éŒ‹ŒŒŠŒŒ^ŠŒŒ^ŠŒŒ^ŠŒŒŒŠŒêŠŒêŠŒêŠŽŒ‹éŒê‹éŒŒ^‹éŒŒ^ŠŒŒéŒŒ^Š‰ŠŒŒ^ŠŒŒŒŠÀ‰÷0/-.-^/-^..-.ÌÿÌÏ.0‹..0...0.-\0]-\0]-\0/0...0‹..0‹..0‹..0...[..[..[.0.-\.[-\.0‹-\.0‹..0\.0‹.-..0‹..0..À-]U 0ÃÌŒŠŒ^ŒŠ‰Š‰ŠŒ‹Œ‹Œ‹ŒŒ0ŒŠŒ^0000ŒŠŒ^à 󌊌Œ‹ŒŒð ‹ŒŠŒ^ Ïü ŒŠ‰Š‰ŠŒ^ðéŒ]U 0ÃÌ...‰..-.-..-.-.-.00...‰0000...‰Ã ó...0/0.ð -...‰ Ïü ..-.-..‰ð\.ÿmyp8 pÝ nÛúÊm o wÆÌomom³FÌÆÊ†°ì NAöóýôõ3�ûmomNõm.óNó óõóåmóê†ý7?fô™Å 5.X!Ý{mmdõ߯aÝfáÛdÝ”^‰âùÔ6Û;¡ÆÝf—îðŽe®zô/iÔóÕ2¸?E?%ÿ3u^@73;1?Q<°ñùOýÿ~Ó\Y3•ÿyù—ÿ°<"Ý3 !"' Ë-ðöÿy¸Âù©´l¿ÌÅ{|:€u€¿‚v7|ûL*¨*ek~<‚3>娇†MJ4D|7zB€ °7زòñPˆ^kgå0Æ‹Õ\oÉ«LA¼Ì‰ƒ„W»ßÊ|a`ÿzƒO� Eªð (Uj=€7óÀ¢“ß &ahÿÿÿý .ð©eÿïõõÿógþðÿxéS O�ÄÉ0àß!ÐDéê‚C+œß(`¤¡gަ‘YkWÄ”Ž+øÝ+/ÙþŒÕ¯'“ÙŠ¸G€Ñ÷Ðv˸*ýÖÜÝíÈ.µõùÀXڠᄃ ú ýëÕÍÀzøî‚ÙºöøðI •uf†@ ŸôóÿñZWKÛ¡Âþÿ  R3#óÿ  €/ #%2 ) ð%Uu<Љµmñ€Áà‹Šïü MD¿Ì"™ŠcÀÿÿ…ø ¯{Ȩ·)EBðU< /ð À?ü)8À ÿÏ  ÿ‡ÊŽÌeʆÉ43…†D†5רæ£O6Pæ’3H‡ÎγDC´ID†CŽCó�Ϧ(8Ý®ÌÛÌ.�Ë}TµÞ éKzÊmÕ-‹"ùmø¹{|¸ó™€ÕÕõ‚x‚"þÚK¹ðIÔ¥k b| ÿð?Ì^ Ñÿ ÁO+0-> /ÿûe·%2õÕ÷p�ÿ*-¯ÿìðÀ ^Ä€¿Ð   (*,&$&(.0   &24&   RXZd^`Z`fh  ))e†+7egi_egi_egi3-;=+  3-;=+  3-;=3%  4 3[ œ 64 >@.$  20 :<*   ., 68&        y.8:<6468>@*$   6,BD2)'6fÍ!! T25_powder T25_powder„¸žgÀbÄ„Bq=QÀYÄ-O-„€YD¸žgÄB€bDq=QÃ0O( Õÿÿÿ3ÌÌϹºŒ¹»¹¹{=ÌÌÿ-/--Œ/--ÿÿÀsŒ/--Œ/----.-.-.-.[-/-Œ-/-Œ-/-Œ-/-¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/0/0/0/^/0].0].0]Œ-/-{=¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/-^/-º-/-Œ-/-.0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/-^/-^/--Œ/--Š0].0].0].0]¹¹¹¹»¹¹¹·ºŒ¹»¹¹¹{=-/--Œ/--Œ/--Œ/--Š©®ëº3ÌÌÏ.````öföföf`ö~eeeÀ```öföföfððð.øCCCOCv¥:S¯do�ÿ.F”iF”odjode:S¯ÿÿ.diF”fôfón¥:S¥:ÿÿÿ.FoFoFoFonßUUU©ª©ª©ª©ª©ª©ãq©«©©ª©ª©ª©ª©«ÀÀ?Ì©©«©©ª©«©©ª©ª©ª©ª©« ÿ©©ª©ª©ª©ÿÿÀª©ª©ª©ª©«ÿÃ3<ãä©«©©«©¬«0ÀÃÀ©«©ãäÀÿ©ãä«©Àà <©«©©ª© 0À«©©ÿ«ãä©«© ©«©0é«© ü©ãä«©©«©©ßUUUTSTSTSTSTST7SÀÀÿÌ?SS ÿSTSTSTÿÿÀSTSTSTSTVÿó3<9?U0ÀÃÀ9:ÀÿV9ðà <?U 0ÀÿT7à ??0à ÿV9??ÿÿÿÿÕý‘!Ý#‘kçAA=£¡¡¡å-¿Ûe8 wKè÷�¿tVa뱯›±±ëýw9;u¯:ÚÖ ®åg'H^�cõ%¢LEÔÙ×Ù°y,ïšûM‡KM¿/ÿuÿ¨Œ‡b�ëë±Õ :*:yëŸÊHö øöú )R!™lC¨ÆP‰˜”ŨMhw ž oéIÝIéê�GYWùÈú,Ú¿„hœ <Øf9:bÓ}SAÅý^·ú^PÔ‡àïÚžÚÍÌ,‚Ìé-’;e¯| ÞwëGr¯”£X¢¿ŽŒÕà{#™@ò4‰ÖÃ&øÛØÚÚ'èÜøtW’ 8ÍÜ’øms«¯ë¾+,;UWõ5'g©Sésùw÷yðq$ppq÷Ç÷õô& # ! F<248<<U$E#!)y p& ÑcÔoÿ6*  ""_7#%#  Ÿq13?²,g²�ð�ÿÿ>, $"g;#! õQ00ñ  <2"""k A ssAsuÿ%Fÿÿÿÿã¨Ì¸¼Þŵ@´Sbö�vEþä—cÅÒu~y݇ì˜ü3™½ý¸xâ«[´tE\N¸w‘u'c’•f —Ó'+‹/x·–¤G'8 òû™A2FºÐ0,Ítø3àð3"oºc½•™œ¹ì7¿”s ž�}ï™�¬‘+§Û·ÃH<éIJ@1s~ç‰Ëç¡]A ‹aÙ‡Wó²F¾ýÄØ¢ƒºA©K¼4iG©:˜=¶ü¨vØOF‡;ŽˆGɈZèð£:Oq&ÀÉnnao “¼¦sR¹â—dV²MŽÕî¡•‘þXçé~ý;u /Nåt£ñ2È£`}ÃJoÿA9'–•©< îØa©ÜedѵªªYªf²$˜±pa�`ôfðŽõ.€xœ’rr0åQ$ `"2æ°d%V !EGf¼ŸbB„Í(ñ `VKd¶"uk¯a'ìd'btB¶B'…ßPe€U F L/Aÿ'ŸÕ×u]ƒ,ˆ3Àÿ Ùý†ï˜?"Q±©»gjˆ.*•-αÁ(R8ŽŠîž«Ž5ÓÿÿænÍ%*�i˜-GºðÿPONMPó¦¬Ãßüi�:Ê'™ŠTETlÿÀú *˜¼€ÇzW¦‘ò=ZMà^yÜÐúìó¯ŠÙA!$./¿ 8—ñ¡yÓ,-ûm#† ’ùþ=Hµ�¾!©Ð#ÏÔЖe]3 $õÿÙñ5@À`$ìÀ0qgz¿Ÿ÷vÈôÀ2 ¿œïîÿ΃&'Ó 2 / Ì2 ¿¶ïûî“s6³Õ¾\=gÐÁ!É–5X?÷4T5/zÙ!½ðø�$NO®kkÀ c„¸%ž¼¼1!€6x ÿÿŠêbª@ذ�>Æ ÅÝù§¨FE·|<6óÿT¦£-?×ù7À¼c_Glš'œ'´+ÀÆ£:´Nýc¥@e`xÿ€A;0k’lK¡[à™‰»�ØXœéÊt[0èuu²òö`?ÿÿób˜“ÉmìF­:j�8�¤n…oÁ&œ‰FÌÔmš£QÇ´ØiiZÖ7Ïðÿ~wt WPUZ‚öøòùÿ4õßÿÿôp`2(mja„$& ó@5V4¯"¯g‡�ñ/CÒBÿ?´ÿB,YfYZ/¸¯OöÿOp#&109�˜d #üû),[^ ›ÿÛýÿýÝR/@0ð  wë0ST/* +4 76 4ã Õÿÿÿ3ÌÌÏ'(W///??ÌÌÿHÿÿÀ3HH0GGG`@0000('(W///?_?'('('('('@'@'@o0(@ `@0000('(W///?_?'/X'/X'/X'/0(o0('@'@``@0000('(W///?_?'/X'/X'//ˆ'//ˆ'@'@'@'@``@0000('(W///?_?'//ˆ'//ˆ'//ˆ'//ˆUUU@Àÿ€Àÿ0ÿÀÿ0ÿ ÿ ÿ€ @ÿÿßUUUÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÀ¿À¿À¿ÀÀÀÀÿÌÀÀ?ÀÀÀÿÀÀÀÀÿÀ¿À¿À¿ÀÀ ÿÀÀÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿ?ó3ˆÕAd‘0Û ¸ä.ÌÈ< ï!+b_kqK¤÷ëæ€¤ ì"X•kZ|·/P1D! 1Á;î¤N *2U :S 23 ÿ¥…cÿ�ÿÕ"= ÿÿò€, 0ÿIóZzï;±±ÇÙƒÈYY¾4þ<™z:"òçó±Eð’n�Ï6d}ëíK–ªJ²'ø�»pùÀ�ê‰ÞòzS’FÄI~q¢3r‘Ôw@SpQ³J°ú¥Z�ô 0I\`�35 ó÷ó . !4ù™çÔ!0Ac@ ׳Ä!nK-ô¦—|Ã67›dÿóÁ˜ˆÈÚ¿@×ïÏÑÒ!& V36¨©BŸ]u_A°7¤ÖõºÃF íӅ¶bG‡!"? äp0 ǧ…ÿ°ÿõ),ÿÿó¤6<  ·\è¤~¥6f'H?ïÿ‹B÷“2Xû—U&p·ß¸?©t±…‘zÊ� úA! ÿÿõ¬ìE0!»Ì›Žÿ uÿü &@)?ZH?Þ´0e`MP .0U $0K ‡ˆ 1ù˜@F3BBd€ÿ?(?(x?(¨@0000(W0_//?_?'//ˆ'//ˆ'//ˆ'// GGG`@0000(E0ÿ0ÿ U 3ÀÀÀÿÿ0?ÿ?ÀÀð000À?ÀÀÀ33ÀÀ?ÀÀÀ?ÀÀÀÀÀU0@� @€ÿÿƒ¤ÿøà„Â@YÄ€¿2Ð            ".0* 2,:<6(  >8FHB4  .82468&(*, $&("    2$>@6 >8FH>0  F@NPF8  .8               E OQ    )      ISU               "$  " *,&  1             )')     "$  & .0*  9              -+-    "*,&  .(682$  1          (&8    535    "*,&  .(682$  -  "*,"  *$24*  2,:<2$  T25_rockT25_rockXÁq½hÀbÄðA®‡ZÀYÄ¥<¥XÁ€YDq½hÃðA€bD®‡Zó<« U?üvž�êv ŸuéÀü Ÿu響WWÌÿ3üYWWXWWWWXWYÏÿÀWWXW¶vž�U?üFE-FE.Àü E.EŽÌÿ3üÏÿÀñFE㩪ª¬â᫪¬ªärªª¬ârª¬ª©«©©ª©ª©«¬«¬«©ª©ó??ª©«ä᫪¬ª7Tz9Vxx€+ó??7Tÿ·‡Çý¦¦ÃÐÜ%jj �&³Wµ#G®```¥2$¸ë£Ëü|é÷áQ=©ñ,Jå@ W²ý¶!#eËaaþÿ¨�¯þîÿ$G]Q7*aE&]kGb(‘’k.< ‹�}@<u |{tUW(x[w_`J =kÂE,ö±K1ÿÀÿ�†F¶�£çØ‘Û8às8(:•Ú¨}¼t¬ìüÿÿˆyóö?MP:1We �€ÿB/6}<)ø‹•ÿm$ûð÷0/J=…n‘ ¬eeŸÿÀÿ±ÜYÚ¤-™ð‡iîΧìÌá¬^XðÛ…9ü  ¿<'c<u&C €ÿ`cR %2 & »ð/÷yz>—vU8“Î:U ÿØÿ¹¢N2DÑüû­+ž ‡™Þw& €©Ã³=5û¼{‚äÖFil6‡u €ÿL[\‹  %6ûö$-"uÿCº€õž2l;èš«‚JÀœ³¨?øÿÀôp#%&eó  €4#@2a€U?ü`_?`_ @Àü _ @_o//Ìÿ3ü/?_`__Ÿÿÿÿ€ÏÿÀÿÿÿß`_T ÿœ‚É ~} ÿ3ÿÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿@ÿ¿¿¿€À€ÀÀ¿À¿ÀÀ¿À¿ÀÀ¿Àó3?¿ÀÀ?ÿ¿¿¿Uq á !†uèrŸíFãð Â_ÐA@ZÄ€¿ªÐ   "( "(           T26_groomed T26_groomedðÁ{ÔrÀkÄÌA×#gÀbÄ   4 .4 ðÁ€bD{ÔrÃÌA€kD×#gÃ.ý ýÿÿÿ3ÿ33'('('))))~)))~)))~)))')))~)))~)))'(Q))~)))~)))~))))'))|'))|'))|'))))')|)')|)')|)')˜')))*)*)*Q)))~)))~)))~))))'))|'))|'))|'))))')|)')|)')|)'))*)*)*)*Q)))~)))~)))~))))'))|'))|'))|'))))')|)')|)')|)')))*)*)¶)*Q(*Q*)**)*S~)*S)')))~)ªªªª íì)îïîïîî))þîþî ð))ààþîþîþî)))Ààààþîþî))þîàààïîï)))îïîïîî í)Ýíþîþîþîþ)))îÎîþîþîþ)))îîîþîþîþ)))îàýíííþ³îþîþîþîÎ)))îþîþîþîî)))îþîþîþîà)))ííïàßÝÿÞn´Ýíÿíþîîþ))UUUU Àÿÿ«©©ª©ª©ª©«ÿ©©«¬«¬Ì Ï«©©ª©ª©ÿÀÀÀª©ª©«©©ÿÿÀÀª©ª©ª©ª©«©Àÿ󩪩ª©ª©«©Ì©«©«À ©©«© ©«© ©«©üÌÀ©«©©«©© «©© «©© «©©«33 ©©ª«©© «©©UUUU Ìÿÿ?ÿ?Ì ÏSÿÀÀÀÿÿÀÀSÀÿóSÌÌ ? ? ?üÌÌ?? ? ? ?33 3*? ?UuÕoXP)¾ôÕ@€>°@?o€i MÒm_"MÑ@@€>#»pCMÁ¾jï4!“ÿÀÀÌ”“”“%•%oÿÿÀÀ“”“”“”“%•Àÿó•“”“”“%•ÿÿ•ÆMp~t•—ü ”¼•“% ¯•“%Ì o?•“•?•“•%ÝHКïZ? •••= •••= •••=•3?<ÿ••±ŽÂ7Ç-¿õöp– àßÓ,Æ õàÕ?jUuÕõõÿ!F ?&O6o-6ðÙ¶“òÿÿ 6ÿÀÀÄÿÿÀÀRÀÿóRÏÿ#!%ü 'd <L >>-7$9$9x > > >3?<ÿ 1:5"!;P7N»ìº5­a좀w7n‡ŠÈªÑ6…_ÅÈ d+»»³ø}~}ˆÐ¨8ba_DÿÿÀ~}~}~}~}~Àÿÿ}~}~}~ef}~ÿÿ}7‡M’² êüü ësa~} Ï~}b}C0< D˜}þSàÝUM6‹…ümÆWüüa~`ŸÒ¸8 ~}~?ÿÿÙ& Š�¨_TÌ.y39kì2”ÇIB[�².¤¯z``Ñöaðÿ©A$U>}ÿ#tÁË«8S,4M $ ÀüðÿS5 ü“Gi‹ð ì?ÿÿ=2 1 /6= ,(uPPÑ?ýðG%Ýö ýÿÿPU óõ‡xŒ¬Ú96JS9F ¨Ð�×IÀüðQ¢m3âáÿÿkÝïNØâ[ü*êmÿüFUǯ�Â:þü‘GÚ ü”“?Ïÿ kaÜ ?¶¼sª· uô€Â•Ã瑘`¨ePQ3üÏû  4Þûÿü)Àüð ÿÿ /$'ü&)bÿü;1*/,-.-v`?G!.ÿÿüU%.Lc*JPQN·|­¬�ŸÐ9L0Ê>>Bl|­ù» &OŠÇð¬‰pê„ÆðfJ�ZkjêÀüüó°5JIG’?ÿUÁïúûüðæõIJÃIJ‘0’ÿøXgO`‹Œ«ªð¼IJ54?ÿÿ÷Æ6-æ·ŠÙ §ÿÿð€µqý3Û‚e+ePQ?O¿% 7Z#$'üÃãÿ !"?o‡õŸ°+€HHB&H`� è`<?ÿøj=qŽ <ÃX 000 >×°Ã4 -X=`+45 1 ÿ«_ F3??3?\ßóðóf à , > ð000B03¿ÿB@ÎÀÃÿ+PGSBý_õ6¦Ø_€ žªhö®Lˆê[1hç±W« ´€ÇLÏÿü|éB6rÕ +Ý?óðð°ß¾žÔôë56!„� �� íðpêMÈV¿Éû5Þ3IûªfTÁÃNþS]ƒ*� {+÷ÿþø@x&S; _T¦ý¥nö;ª)Ks›Ë�|œÎc®³‘Ò¿€†ü<ü™k€STAö³ð3FÿæŸW?óÿ56QQ¤’T6·ÝøÛ@œ¼u›÷Éô¶ïœ/i5m§ºxÃz]UDB }<¾¿ (Îÿð,! &ä}!|žZ_0[ 0A$- /ª¨ˆ¨‚  °H Ð? #ÿ ÿz _ý_ý´ûéù„±›ƒÍj…þ’-èÿMsý]›¹Ð§Ïÿü'FÎô½Ei› ?ü€l“(>>õzÿóðð*èÇ4èšDSF6Ê­TP5ARf=³—ÒQx*IˆP*Öë ޵Äs…{H×Sž¼¿À ælô[ó/ô³†z�>Õº>£ÓoãÆ^ç�p1d™h™ÿ<ütìÅ€k=N ðìöŒÁCÿ00 C–2õ|{öÔ>�R£àÓRK84 ,¿O]®K´Uví©•kc^î·ÉØ«_þZ­Ze53 DóSQ"B„d?ÿ/Ïüð-  óð#* +!#@w÷ÿ«ÿd„dV 4F/fffDB"3dF$"’o·/µð  ý `}  õôôGuT×u]U(²úAxu‚‚xò¬«oú?IŠùrf­ &  ίð )(#&pð GH`Á½zg¶ïÙÍ�P‚0¤/‚9ÿÿÐ8Èót$j_~˛Њ�6;MTMN/:IH ð<ümnW¢Iàüýÿùú?óÿGHkmÚ!Nk×çÿ¿Äôóýü"ùØ(€  t@�< ° p&s .2E,= ( 9 ÿª&€ÿÿ }_õ@|<>?12˜—l‹iáÏÿü³’lù8ŒÕðÝ?óð#�¿ì†‘ÞKà«°_Àܱ¼ü“Vç^a=>78=6'ïŠÿÿ Æ„¾]eio„ÆH„Æ<³çeÊs?Œ8ƒÅø®õ¿�~Kƒ Jkü¡,üðøóÿžƒû)J7C|ÇÇön¬b¢G�G‘~î/æU]U< °Pÿÿ*AÏÿø.E.!<ó0'?ÿóÀ "',/�½,¨ 3,¢< %& > øð~C çÒ  UTÿÿÿÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(//0//HHH'//ˆ'/X'/Ð_`ÿÿ€ß`ÿÿ€ßŸÿ€_Ÿÿ€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(/GG/H/`/H/HHH'('(x_Ÿÿ€€ `€€ÿ€ßŸÿ€ÿ `ÿ `ÿ `ÿ ``@00ŸETET0ÿð||‚‚‚���‚~€���€ ÿ‚Çß�‚‚‚~��€�UUUU ÀÀ?À ÀÀ?À ÃÀÀ?ÀÀ <ÃÀÀÀÀÀÿÀð00¿ÀÀÀÀ?ÿðÃ?À¿À¿À¿ÀÀÀÿÀ0 ÀÀÀÀ?ÀÀÀ?ÀÀÀ?ÀÀÀ ?ÀÀÀ ÀÀÀÀ000À?ÀÀ03?ÀÀ?ÀÀÀÿÀÀÀÃÀÀÀ?ÀÀÀ?ÀUUUU ™€ €  €�?'))|'))|'))))')|)')|)')|)')))')|)')|)')|)'))*îïîïîîîï)))îïîïîîîï)))îïîïîì))«©©«©©ð«©©«©??ð)••2ú••2úð••cú•>>ð(ÿÀð™1k57ï‹QRÀABº¹�€ïÀðÒ™¼ó¸€À ‰°¯TЀ€klÀUVPOÿÀðÕE�ÛJOðŸA€ð?@00Ÿ@00Ÿ@0000(o0(o0(o0(GGG��€ÀÀ?ÀÀÀ?ÀðÀÀ€ÀÀ L« ÿˆüò# {÷ÿXÁ bÄ€¿9 Ð   *682 :4BD:,  B<  .82468&$  6(>@. 60>@.        J, "$RLZ\J<  RLZ\J<  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64  F8NP>( F@NP>0  F@NP>0  e1/1MKM "*,&  .(68.   60>@6(  EC2E8:4BD2$  :4BD2$  :4BD2$  A?2A8:4BD2$  :4BD2$  :4BD2$  28&, -979$& .0&  .(68.   60>@6(  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2468&$&(.0  &(    1    97298:4BD:,  B<JL6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$  ., 68& *( 24"   !  :$B<JLB4  JDRT>0  .82468&$   6(BD2 64 >@.$  -     53:5@B<JL6(  >8FH6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%864 >@.$  60>@.   60>@.   %      A?BAHJDRT>0  F@NP6(  >8FH2$  1/21824:<*$ *,24"$M     53.5460>@.   60>@2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  1/218:4BD2$  :4BD2$  :4BD2$  *4"(  T26_packed T26_packed¨Á×ãqÃ@iĤðgÀbÄ   ~¶~¨Á€bD×ãqÃ@iD¤ðgÃÅ ¶½  ýÿ3ÏÌÌ’‘Û”I’’’’Ü‘ÛJ’‘ےܑےG’‘Û’’”’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ù’‘‘’‘Û‘‘Û’’’’J’’’J’’’J’’’”’’’J’’’J’’’J’’’’’’Ü’’Ü’’Ü’’Ù‘Û‘‘Û‘’‘Û’’’J’’’J’’’J’’’”’’’J’’’J’’’J’’’’’’Ü’’Ü’‘‘’’’”ÿð’’’J’’ýÿ3ÏÌÌ$#H&l&$$$¸#Hm&%J$G%J$‘$#J$$&$$$k$$$k$$$k$$$&$$G$$G$$J$##$#H##H$&$$m&$$m&$$m&$$&$$$k$$$k$$$k$$$&$$G$$G$$G$$J#H##H#$#H&$$m&$$m&$$m&$$&$$$k$$$k$$$k$$$&$$G$$G$#Ú&$$&ÿð$$$k$$UUU ó?ÿpop:rqrqrqrð00 r«rrrÿ00ªqrqrrr0?ÿ rªrqrqrrr3 0Àrprr¬ÀÀÀÀprr¬ÀÀÀÃprr¬p 0à rrrrrÌ p¬rrp ¬rrp 0ϬrrprrUUU ó?ÿoð00 Vÿ00S0?ÿ S3 0ÀSÀÀÀÀSÀÀÀÃS 0à Ì U U 0ÏUÿÿHѱMÓ÷/¯t¡ ¡vûXèüÌŸEJf²Þ¯�J2*§#²Ëm˜Óª°ñ:˰¿°²¦¼7ÜÔÓ§&µI²à’§µó3œ¼Ê-Æ#b81˰°2U°`‘ƒ„êÌV¡LƒêGŠeHŸ‰e¾8* =¡2ÍL¾PI8;Q,®®,**%IÍ*ȦÚ{Íä: �ôž± ë�k[ipÌ€4Ì¿¾8ð[økgÁþë~õÿ/Q11ó-:-PWU I *u0'¢&-6/1 3? š/074/) K0)E;LNqR“0T…@ôfóSð8?%tôsô™±óøÿ3#”JƒR‘&R¥²ýÿ#œ) * /&5/#ÿù1óQÿÒ_m_mO_Ÿÿ-%D1#@)8) Ò I,[|\+M6WD3?10)4!hßðÿÿëöà¢ög"„ƒ÷#¬ZóZ\„~ØÝôp®q™<ú”7à-™Mýûh[‚Ã*-¯ßAZˆ&�øiÛ¨`F>ç�JÝ�¥ÙHÂÑ~Vßó­ÐŸuaL±É©±?stÜt-Ñ[üåº ¶êÙ £‰üÈÿe`£Þ–‰½à•MóÝòm.É�Ul°Ì>ëÔÍ÷Í#àãÂÇkª¯OÁ‹9ª|بmêàé5À‚ì™ÿð+ E¹5s©êj8ß W !*ïÐ ôføúÿÿ3&  Á6jò$Qõ1úÈøAö&7y÷o®ò?50F/# ð&ýÿt?üH‰Z;tôi‰vOp €§sç !¬µ×óïÆ´·ä|8§p®º<~i°Í>8 aû—Zat¿çÁ´ÕGBX qýg„v3&\H1—Ê Œ}óóÿ#2 %øË#©>%Ö. aàÕÿð#2–iw¡À?ÿö Çü3;lOúx4ýÿ&%ñ€2'Vû1ð@šP~X_ÿE!PÿÿÀ?!D+6' ‚<<#$?ÿÿE/.'(#^ÿÿÜ í£{|÷*œ:Ö¨wvz KÓ .îö–aÙ°íò£¦�äU ›˜9 (BGÓõ5‰PJ™"Ò‰‰—gL•Þ•Â+«/ ÿžT ­<·À~ÅŠ(jXß }™dZ·Ã2'Þ�L¹Úògƒ=%dþÑÅáòAØco€Æ¤¨­e7“nÄpvê�+©ù>¸¼´�nR›‰ÄôÃÉ“–æåˆ¯GŒ—ÿð¦7^î¸Ò­g]6Odß Yhq< =R! !k¨ñ � ”U!V!e á|/* 7$Íl#ðüþü*! Ÿÿ??S )2`ºÿÿb$Á+\þ¼$í89 B?8 1>'@)ô S: Ïð$ ýÿ3ÏÌÌ/0_/Ï_Ÿÿ€°0_ˆ'(W/`(W/ ?////?_Ð/?_Ð/?_Ð/?__Ÿÿ_Ÿÿ_ŸÿG//'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ_Ÿÿ_Ÿÿ_ŸÿG///'//ˆ'//ˆ'//ˆ'////?_Ð/?_Ð/?_Ð/?__Ÿÿ_Ÿÿ_Ÿ '///ÿð/?_Ð/?UUTL‚0}!!!p„„„aÀHHH@a‚UUU ó?ÿÀ¿ÀÿÀ¿À¿À¿Àð00 À@ÀÀÀÿ00?¿À¿ÀÀÀ0?ÿ À?À¿À¿ÀÀÀ3 0ÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÃÀÀÀ?À 0à ÀÀÀÀÀÌ À?ÀÀÀ ?ÀÀÀ 0Ï?ÀÀÀÀÀUUU f @€@€B€„$I«*ÂîÎ24Á’þpÁ`cÄ€¿„Ð     2<68> 8BD     nt>2}   OAWYC-   KESUC5  KESU;-  +579'%    /);=+  /- 79'         d '-  /)793%  ;5CE/!  71?A3%  < :3<9  ;5CE3%  ;5CE3%  ;5CE3%  ( &3(9 ;5 ?A/%  31 ;=+!  /- 79'  (      424%  '!/1#  +%35+  3-;=7)  4 23sà:4BD2$  :4BD2$  :4BD2$  )'2)864 >@.$  20 :<*  *,24")9usuJououo5E?EGI?EGI?EGI   T26_powder T26_powderœÂ{ÔrÀkÄœBÃuYÀbÄԲԜ€bD{ÔrÜB€kDÃuYÃŒ²„ õõÿÿ3ÌÌÌMN�MOMMOðüÌÝ�Þ6íëMìììÃìì(ìì(ì�ìëììîììÅîììÅë%ììÿó33Åë%ììOMMOMO3?ÿðMOÈN�MOMMß�ììîìÅìîìÅìîìÅìî'ìë&îììNìîììNìîìì(í%ìOMMOMOMO™OP�OMOMMß�à4ëëOìëìëìëì%í%ì(ììÅîììëë'OMMOMOMOéP�OMOMß’ììììÃìììÃìììÃìììììëìëMë'ëì(ìì(ììOà4ëëvMOMOMOKMN�MOMOMß©¥ëê3ÌÌÌ(æÚSð`@`öId–ôDhdo:Fÿó33 3?ÿðN(FMFMFMF†_doFFôdv  &ÿÿÿæ …?(CCCOZiFöŠ :(ÿÿæFMFMFMFFCC’:V”iFýƒ_$&_WUU©ª©ª©ª©ª©ª©ª©ãq©«©©qrª©ª©ª©ü0ÌϪ©«©©ª©«©ÿÿ©ª©ª©ª©«©©ª©ª©ª©ª©ª©ªÿðÿ©ª©ª©«ãä©«À000©©«©À0©ª©«0 ©©ÿÀãä«©©qr30«©©«© 0©«ÿÀ0ãä©«©©00<«©©«© 0ÃÀ©«©qr©ã_WUUTSTSTSTSTSTST7Sü0ÌÏS)ÿÿSTSTSTSTSTSÿðÿTSTSTV9ð000?ÏÀ0?0 VÿÃ9?33? 0Tÿð07?003??? 0ÃÀV9ÿÿÿÿ­h®)œÀj“ÿ�iË5üe€õãææå9µï»Û„¤­ï’Îþ„ÓÊ?áú/ÍË„¸bAå3L<ó ·­Qg]F¶Le »�ÿäéÇDnÐncÐû™+Í]ƒÖ&be™ ÆFz|çˆ?¥ØÛÀÞ ꧬ×,ªUé/±Ô‚Éó~¿„Ѓ̛‘HHêÁg›Å0\+åÛ,Ÿ-&qµµ·r8¨v¿¤Ÿ­`†Ðá38‡Ô•BT„ÎØ»e)õ݆yõ79Å{Ø…¾úš6¼Ž^luoŸŒ’dŸok›! u’X1ù�87‚ÉÊ„hÝõQ¸¶Á{¤5g ×{/VE«¼™ô«¯ïê+ +++--+¦¹¹ÿ†ùiƒ"‘s/ð�,ŸŸŸ¿JÏŒ'# d+L+N+J'D)D+F+D+� ? ßUVsþYÿ? ÿß&¯’Jù$" 6$"$G9! $ ôþþÿ�&y$ 0&$$c;ÿÿñÝßuU"QQÔqŸ²!pù)Ÿ$H$"K1ÿÿÿÿ<&ÄòóÂë‰ìfèÓϬ½ Å×â¿ýJA_üKvTÜ¡"}¿ŽÿNI)‘å2nY”.ÄBø>E»CqJÕ.¯Ö»?¸ÿõôRÆW˜Ä•bzŽÇ‘+L z[‰«_ób™Â—þ~½áØo½ÂÀ§9‰z]ÏÁ[ N|5Ý´æD ¡«“ª“Ù'|ª¤ø<'èÅ–—O5œñÕ’eçŠ>dA㎕®—ã%{o;ƒÎ³²?±ïæãvæ* ©Íá&ïÕi„xÅëI¢ˆ›áyã‰=ÅÔq ~9ä4òÔË4¡Œtaøíº†piêþx=­nàE¢jþÊ{cSò¬[ìíV_ú溺2”r!aaA1QðO . &E44 ôÿš6€4÷qJ2ÿoäÿo# O 8  6 ßoñ�fA#(D�3 0/ $-,g $ $½øÿ€hC6!F2V"5Yy™?ÿÿ ,A(3Ddô 1>ÿÿÿÿ7�À Ã¦Èk�È w„#Ébœ�z#èÙ– ¿5Lݵ`…Pг'ûÃ%"|TA 6À²Ø oÒÀ�³¶ì™TïF·ß]«Çùº¨ðÒg‡(©x’ö`U†ls¸C é.úKpÌb«Á‡A8N¯1ã’��p ¥Þ“Øß‚—­šÑŒ:(�Ë¢ä0¤­5 °ÐÔKÿR³€Cï®'¸K­‚žš ®ùI˜,:ÜõʉE¥"aþö’ucÌm6X9šwþ>Š9/$GJ‡ÉŸ:éÀŠÃþ–X!–´¼ÏC|»ÜÚó�Þwÿí -Ah {Ò:ö¢ä+iÇ{Ûºù‹ðt`j¥Ue@"4VQ T ²~ÿ)úúOøóp'.S±Å`¹‚˜8¸€G"­('Ço@q`*:H¬$³ ûÿH ô¨;Öðäuqñ "C@Æ©L@ õ÷÷z�‡ý-ÿ(›œ®r¶(p‰$J²û¢àAxgéŽ]�0X#Òrst¼ù@¶MùIÇUb´z—Æÿð/HŠW2 0Øñì»7¶É*…!…rȨ­üÛ›ªqO=ùþ2‹mÇcÖ \Kìô„q��ãÚ½ék5ˆ]&/£žÁ(ª9{– N߆8"!%" W RCG$Oþ_E.X œm�ô­ä5‡«Dò;Ê=.ÿý€ÿ˜£>ÖÒsÔ†’t À`· #@ B % øÿ¾:B™°*ÿß?ýó¿FBÿ¯ó hC2#,ÿÿ!..ÿüÿ jc?-, %$ ÿ\*¿õ}ÿE rËügbÑŒáb&3}š$¶¥¯þC¯SEuM1GþhÃ;g wBv  M<:eöóOoÿ ?ÿÿóHÅšl7L '�˾ÿ>M4b¤šãjUâ¼d½+lœÉ/ ËÌñ¾²Êrær0¿®Ýê�ž¥�ZºÉ$°Ãð’b‚ ÷üé¿ 5&½Õ¾H­ý ©s&žÊ]æ ­câöÚ“ª×ì㛜ƒÛ!$),QH #¢OXšþÚ±^}YuYZÏýÿf KDOTY^Aô‘ñc`+ÿÿý� :9X] ’d 4ûp4UR_b_x ' µ  ŸÿB„°³l a¿-^�?/ 5(ñÿYTW\ÿÿ™—¢$1*mBHI¿0TxõùŸ{U\¿�Ÿ½ÿÿ**E.=�’I’ÿ'TcfWX[õõÿÿ3ÌÌÌ'(W///?_ðüÌ?@'_'//ˆ'/X'/X'(GG0ÿó33G0`@00003?ÿð(?(W///??HHH/'(0__/0`@0000(?////??@'_0/G0`@0000(?////HHH0//`?(ˆ0000(/'////EUU@ ÿ0ÿÿ0ÿÿ0ÿÿ ÿ_WUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÿÿÿÀ¿À¿Àü0ÌÏ¿ÀÀÀÀÿÀÀ€ÿÿÀ¿À¿À¿ÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿ?ÀÀð000À?ÀÀÀÏÀ0?À¿ÀÀ0 ÀÿÿÃ?ÀÀÀÿÿ?33ÀÀÀ?ÀÀ 0Àÿ?ð0?ÀÀÀ?À003?ÀÀ?ÀÀÀ? 0ÃÀÀÀÀÿÿÿUUUUfffB ™™™°@� @ € 0@�  �€ÿÿ’Þ4ëëMìììÃìììÃìì(ìNìëìëìì%ìë&îììÅîìììuëìëìëìììììÃìììÃìììÃìììMMOMOMO™N�MOMOÝ�à4ëëOììîÅììîÅììîÅììîììëNìë'ëë'Ãìë'ìPìë'ìììîììÅîììÅîììÅîììììëìuë'ììÃìììPììììPììììMMOMOMOÀMª«z`¸SôdÔdÔiO`VVJ`,Y`FöF@õe^eddododo&&ü`¸5ôdÔdÔdÔdd0ô,:S¯e¦ô:FFFöFöFöF@Vó¤odo\ÀUUUÿðÀä«©©qr«Ã30ó©©«©©«¬«?  ©ª©©ª©«Ì©©«©© «?ÿ ãä©«©qr© û«©©«« ©«©ÀÀÀ©«©<À©«©©À0«©ð¬«UUUÿðÀÀ?Ã33ó+?? Ì?Ï? T?ÿ 7? ÿ?? ÀÀÀÀ?üÌ??À0ðSTÿÿ×âéé‹ËÞ¨„Ä–Š™áþ3À£áÊE–œgET*êapkV^*!lg¸3„„ëÞ²G:YO­¿>®‚°ùS³õê<žÔ/üùRy¼nq7ªÜÞS‰‡ Û×keX’Ê*euÓÍ3zD„™ù€–Y&„™]%„gØïÿÑE£ë’êZo§%×××P„¸3Ü3lv²ð•Á¿„Î>zz„hùïD]‘_að“?ª«j[Ûÿ†Áq$�  ~0pcSýð��ŠïjÏHï)%# 0$ [5ÿýÿhåQ&03qð™ù‘e�DyHñ“£“Å•cSù�pð&Ï$¯’H×�ÿÿÿ2$ðF1ÿÿ¹õs‚„ÑÛ.éŠÞö@Ꚏe? ëý¦¶¡["d—dî ÅÇžîÕ‹!ÿ}GlºûFKm?�l…FÄ$…u#(lS§(Kø~~2ËrO¾ÃƒqÌ¢×�…h©¨ÐÄ’1t&ÊßIuÚg=�£¾ÒÇÉ-ÂËU'̇FE&¾HÙó,Ž4´îÆ6­ùÉ0²ùôi_µ_7ˈ›á *]vjÜÿж–ÂÚœæ ŽzàðX¤úªk0£{Uû3çV4mO�ÿ1+* ?"!5 $.0ÿv„@"ð">�€u÷µûsùuC!kÿ˜öóKÜ"&  ò%‡vÿŸßŸ00ûñ»†@.€ÿÿXlˆàÌÃï²réÈmðˆje›ý[âžoQ¯|Z/ˆË[½ûtc�eÞ·µj†YªÁ �ˆO÷ž��ag�sѽë?`'¢?ÕnØeyP[#©ïfJGœ _‘C0L¶\sÏl•×Òi7Ÿf€$n®BnuXfI¥ávÛhÆL8¼ÂF ±¿ÉJduæ|#Ú¥ ßòg~½Ñ“W‡TpM�eÀ¦ %›´ðcU™V>ÑÔ †?ÏÿA ;Bÿ?À$! ßBB@¨L0p €A]ÍPK(ÿvÒñ'³ƒ(‘(ÉtúùÒ蚀€þëw}ó¶BÚ@ ^Léh'tuRú¶èß Ž4eÿ°ó/xj¬e&»1£Õ$_ÿ¥è ÇÏ1òv#@=¿Húd–@ÿ‡ÌŒ­ëœô#ላ÷!ãäìZ›t*C.+$7@Àÿÿ²cÎýßo,˜ ÈøobNN–Œ+´æÆÈKðÆòÔ’e? )ð<ÿ!"9# 0<>ÿ˜†B"ð& mÿÚøõoÿÀÿÿ < @ÿðŸýÆ@$: _¾/#Œ¨²ÙÿÙÛEó 3Ð_¢ËÝ…a«øõÂÖ©ÿÿü`€´K÷ ÿïÍ?, Ô§¡ ÿÿÿÿÖ‘5L[mw»(Èø‹Œ†fËë 3WÎPI,"8-̆39ïP 7À %’9v«Åb—\>\)šõÅ�D>M  œ@‡  ZióPö?Ý™ÿ5\Q\ù¾Õ<ÿ.?÷ü` 'd #*- ˜ ï,e`óðð›ýSZY^ÙÿµÿüE4€H(** -P ïòI „€ÿÿ0 KHH0ÿ/0/0//o_`p/?_Ð/?__`GGG@0000(/'///  / 4 4 4 ç/0_00_ˆ'(W/ ?////?_Ð/?_Ð/?_Ð/?__Ÿ Ÿç0G__@0000(À@˜@ H@Àý ÿHHH@„„„ ý UUUÿðÀÀ?ÀÀÀÿÿ?ÀÃ33óÀÀ€ÀÀ?À¿À? ÌÀ¿ÀÀ¿À?ÀÏÀÀ?ÀÀÀ ÿÿ ?ÀÀÀÿÿ?À ÿÀÀ?ÀÀ?À ÀÀÀÀÀÀÀ?ÀÀÀüÌ?ÀÀÀ?ÀÀ0ÀÀðÿÿUUU @€’H &@€@„ ð±ðâ�ÿ æ„Â@bÄ€¿ÙÐ            & $&("    2$>@:  >< FHB8  FD NPJ@      *," *$24  6@                  )')     "*,&  .(682$ MK.M4.068&e,               "5(35$ &(" "$*,&  &(.0*$ U               %#%     "*,&  .(682$  -+2-824:<*$ *,24"$&(9          (&8     "5(35$& .0*  6,:<6( :8 BD>4 &*,& 2(:<2   ",E   "*,"  *$24*  2,:<2$       "%(#%$ & .0*  2,:<6(  >8FHB4  A?2A824:<*,     53:5@B<JL>0  F@NP:,  B<JL2$  2468&(*,"$ %535   T26_rockT26_rock¨Á\OrÀkÄB×£eÀbÄ{0{¨Á€bD\OrÃB€kD×£eÃÀ0¸ ?ÏϹ‡ˆ‡…?3…†òˆ†Q…†~üÀ#  ?ÏÏ65x �$ðü¿Ûþßÿ5l ù$5üÀH43"35<ý3?㩪ª¬©©«är?0Ï<ª¬ª©«©©qrªª¬8㩪ª¬ârª¬ª5<ÿ3?7T€)?ðÏ<@)"Î9Vx?ŽGä@>¨âž¤£1°,Îj³>''ž‚ÿÚ¯+Ÿ¯6æù1¢÷÷´1¬¬D¸¹7ñ‰ó? k•956<1=ž(k9k 9t"as&aq"c?<%3Dƒlw‚�°D1SÄ™KÌÿ<Úw= 4\=?&«êCjFgl’‹ÔÏì0” ¹�?A NqQ!ù7�‚�_taD&,.824 28 FL  " T27_groomed T27_groomed Â.~ÀtÄ B…krÀkÄ   © ?© €kD.~à B€tD…krÃW?O ÷ÿÿÿÝÞàßàBÞàÞÝÞBÝÝ33ó3ßÝÝCÝÝßÝÝßœÝÝCÝÝCÝnÝÝÝÞÞDÞÝCÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßÝÝœßÝÝœßÝÝœßÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝÞÝÞÝÝÝßàßÝÝÞÝßÝÞ²ÝÝÞÝÞÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßÝÝœßÝÝœßÝÝœßÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝÞÝßAÝßAÝßWàBÝßœàBݪªªª ¼¿›šŸ¬ Ê  Êü¯Ï À!zÀ»ûÏÌ À Àü¬ü¬ü¬ !!!À Àü¬ü¬ü!!!¬À À úÊúÊúÊÀ ÀÀú!ÌúÌúÌ  ¼!!¼úÀ©¬  N ËüÀ¼¼¬¬�ü¬ü¬ü¬¬¬!!!ü¬ü¬ü¬ÊÊ!!!úÊúÊúÊÊÌúÌúÌú̬¼!!!¯Êü¯Ÿ¬ùúÇ!]UUU 0é«©©ª©ª©ª©ª©«©©ª©ªÿ 3?©ª©«©©ª©ª©ü0Ïÿª©«©©ª©ª©ª©ü ª©«©©ª©ÿü ª©ª©ª©«©©ÿü ª©ª©ª©ª©«© ÿü©ª©ª©ª©ª©« Ì©©ª©«©Ìó?󩫬«©ª©ª©«©óó3¬«©©«©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ©«©ÀÀÀ ©«©©0ÃÀ«©©«]UUU 0ÃS?ÿ 3?Sü0ÏÿSü Sÿü ÿü S ÿüS ÌSÌó?óóó3ÀU+?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÌ?0ÃÀU]UoÁþpÊ’Oމ®K¼Ñ ~}<¸kFLæ<;<;<;<£p8{Høoåæåü0Ïÿæåuuå¸åæåæåü æåuuå¸åÿü æåæåæåuuåÿü ¸åæåæåæåuu ÿüå¸åæåæåæåu Ìuå¸åuuåØ"ÿkìØ’f,¶¸8<ÿó3Àj­à£8ååuu-ÀÀÀÀåuu-ÀÀÀÀåuu-ÀÀÀÀåuu-ÀÀÀÌåuu-åðÃÀpåuåuU]U/;$%  d!&+ #T 'Hü0ÏÿTü Tÿü ÿü T ÿüT ÌT.% . ûó3À8  >ÀÀÀÀ>ÀÀÀÀ>ÀÀÀÀ>ÀÀÀÌ>0ÃÀPZ+v|I}PÕ‘°L:sB�¿2ïœ*`<,ú56ÿ~‚·î5YÎÒ×QðBA+—8¢‘3«ÄQª°ãGÏÿüp†oX÷S7ÿ5¥ÞQRAðüü¹pnÝP#").O4MrATœ?$_ïû '&ðv6ÿÿþ<-a.TÿÀƒ@™ ÿU]UW¼QŽx!y{e+ $Í…8©wÒ°Åò™Y¾½|{>=ˆtÚÁ| 4w’}~}˜~§*~}~}~}ü ~}€~}ÿü ~}~}~}€ÿü ~}~}~}~}€ÿü~}~}~}~} Ì€~}€*ÿ%/<Í+-­ejiúÿü3ûà·"”º€ÀÀ€ÀÀ€ÀÀ€Àÿÿ€7}Ø! ðÿðÀ&¯EÁ¡*)*kUP4[ (+|o�‹O/!!!P‡b!�I™� ™� ™� ™� m * "ÿÀ %.€`PTS%öñäÿñ¥>ÆAª‚¤ßß¾ÕWl�’GHÿÿ�®£’m¡ï÷ïÿE�ó514ïÀ÷ø7ÿG×ÝklUð¦O<ó12 ˜ß¾?FÏó ! /0ð92ÿÀG BW@ê’ö´•�Ð3EtsÿN²ûÿ})ÏÏü;à#kðWX�&3ŒÇ,ÕÆã~Ø;iÿüÍŠE�·nü‘‘ÛW@.% ‡€‰< KFBfH„†`L—  8.QŒ�ÉRH÷ýÿÿ' 33ó30H00/Ÿÿ€ÿ€€ÿ€ÿ Ãóóü`ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(GGGHçÿ€€€ÿ `ÿ `ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(GGG//G€€ `€€ QTA™ Îÿ|€‚�€�‚‚~€ ÿ\ÿà‚�‚�‚~``` ```ð|}€}€]UUU 0ÃÀÀÀÀÿÀ¿À¿À¿ÀÀÀ?À¿À¿ÿ 3?À¿ÀÀÀÀÿÀ¿Àü0Ïÿ¿ÀÀÀÀÿÀ¿À¿Àü ¿ÀÀÀÀÿÀÿü ¿À¿À¿ÀÀÀÀÿü ÿÀ¿À¿À¿ÀÀÀ ÿüÀÿÀ¿À¿À¿ÀÀ ÌÀÀÿÀÀÀÌó?óÀÀ¿ÀÀ¿À¿ÀÀÀóó3ÀÿÀÀ€ÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÌÀÀÀ?À0ÃÀÀÀÀÀUUUU €`à`@€@€@€@€@€€ÿÿÿÿßœÝÝ߃ßÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßÝÝœßÝÝœßÝÝœßÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝßAÝßÝœÝßÝœÝßÝWÞDßAÞDßAÝßœÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßÝÝœßÝÝœßÝÝœßÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝWÞBàÞBàßAÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßÝÝœßÝÝœßÝÝœßÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßàßàßWàßàßàßÝÝßÝœÝßÝœÝßݪªªªÏÊϬ¬¬¬ü!+!¬ü¬ü¬ÊÊú!!ÊúÊúÊÊÌú!ÌúÌú̬¯Ê!!ÏÊÏÊϿϿ!!ÇϬü¬¬¬ü¬!!ü¬ü¬ÊÊúÊ!!úÊúÊÊÌúÌ!úÌú̬¬ü¬!!!ü¬ü¬ Ÿ¹!!ÇûϬ¬¬ü¬ü!!¬ü¬ÊÊúÊú!ÊúÊÊÌúÌú!!Ìú̬¬ü¬ü!!!¬ü¬ ËËϼ!Ǽ¼¬¬ü¬ü¬!!UUUU0 ©©« ©©« ©©« 0©©«0000©©«©00À«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÀ«©©ÀÀÿ «©©«©©«0À ©©«© ©«© ©«© ©«© 33©«©©«©3ÀÀ«©©«UUUU0 ? ? ? 0?000000ÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÀÿ )0Ì ? ? ? ? 33?3ÀÀÀ?õõ_W0 wå+u << wà:tŸuÞØ.œóùZKnpØ.œóùZƒ¤ÝB÷Âÿÿð0+kG¸œ…w¤u0ðÏÏåpå-. •ïOZg}pSæEƒ–œ.±hm²£�›„óž,Ao²3�ô„_YYþ„|ž�ô¡ÆYGsY„®£åuuu0Ìü uå-±¸{u ÿÿåéY”°ôKœBÝ劄„웲²u ü åó-B²uu 33å-uuåwu?ÀÀÀupå�uu¥VšU0 > ,<  4òBôDðô$"ôDôDñOIÿGÿ)00ÏÏ</ÏÏþê;=8Á÷êÁDñ1ó3ð?!\3?“9ÿÿð(0̼ >'ðó3ð3òbLÿR \ D 33>3ÀÀÀ<üý_Gm9¨+ì,�‡m9q=Ú`T„¬hàê‘}^­³`R„vܢꑽ¾’Øâ__U:Vuÿÿð*|_²·VᙤBA³÷SwßYMÙ1�q/&]Rû’éß~ª °Þ'EŽœ}èozA_y‹kÈÈnv~�—ðgçòmO/°H/Í÷s#´ÐÛ»“üü¶§öü£Ú5ÿÿëP_.ئ«|xÚT7¼küØڗʼÜhìÿü�¥uò<¤/13¥?ÀBõ¥¥TUYHÍü@QQ Q E�ÿÿÿð&?$5<þ $ÿÿÈ:,,øòê¨ ¢ÿï  /ðèðbÿ×#ü|&Ÿ ÕŒD ,ýýW<< ˜~}mÆ(Þ÷èªâsoÈwÙ².oßœÊ;ÿ$}â2ûßü¦wÿ$½¾#Â/r;¦äûÿÿð0îÏŸ¯1Ÿ÷02€)*Í:9‰Ó¨Á�¸{íQÃÍUMÖ#ÿ<<˜#0”#°bŠÅþATa $ó¾cÙé<ì0,ÕX�ˆáß—É“ ´=Ò¥ôÝ?˜~}.]8Ô�.ÿÿ'aòMÍ#È)³ Þ!mc5ÒÞÍIcŠþ«©p»üÿ¼HŒS¶†úÍZ]p* 0ð€*©?À=(&¥¥Z$üü  33U1ñ1S(U1"$ðïx!ó;ð % &?ÿ $óP¢$ò$ff1fDbBöffF3$B ô“òYðYñ[x@ü<  ß Þ]u PýPüuY‘GÚVœñ–•0/‘G‘I˜h°púú�ï×Ùhnô¸ú�Á‚ÄÄFUµ´¼¿Àed?ÿÏòNo�WÎìãÿø¸žþO‚ùù Í ,ôòÿôv}}€&ki(÷�" ÿï079@;8‚¿ñ_ðx/þ &ÿÿÂ{24%(œÞp"@ü<6 TU_Gôü€@€@ ÿ»¹‹ jÿÏð¡DÃ�«´]ñœ<ü?þWXJ·n'ÿÿÀ"$1" ;6 ?ÿâ¿€„|~·ïX±Æ<6,f­±ÆÆ¹º ª_Ïf0÷p„3<Åmß,£ùuø<™˜µ¶ÿÿ#`?=V1Y*D/»îÛ�U4A*ò"\5Ìÿü‹Ú~Íd°ìGEÚ?ÀW¢ÚÜDUUE`Hÿ 5ÿÿð (g8* 9H���€ úÀ  ªÿï (9 ÏÏÿ- !,&) HÏ Õ�TH ,€ÿÿÿÿ`ÿ `€ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(GGG/GG ÿ_`ÿÿ_`ÿ `ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(GGGGGGןÿ_Ÿÿ_`ÿ ``@00Ÿ@00Ÿ@00Ÿ@0000(o0(o0(o0(GGGGGG‡_`_`_``@00Ÿ@00Ÿ@00TP>~` ```™° ``UUUU0 ÀÀ?À ÀÀ?À ÀÀ?À 0ÀÀ?À0000ÀÀÀÀ00ÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÿ ÀÀ€ÀÀÀÀ0Ì ÀÀ?ÀÀ À?ÀÀ À?ÀÀ À?ÀÀ 33À?ÀÀÀÀÀ3ÀÀÀÀÀ?ÀÀUUUU @€@€@€@€H @ÿœÝßÝÝßÝÝœßÝÝœßÝÝœßÝÝßÝÝßœÝÝßœÝÝßœÝÝßÝÝßÝœÝßÝœÝßÝœÝßÝÝßàßÝAßÝAßݪü¬ÊÊúÊúÊ!úÊÊÌúÌúÌ!!ú̬¬ü¬ü¬!!!ü¬¬¼¯Êü !UÀÀÀ©©«ÀÀÀ©©«ÀÀÀ©©«À 0À©©«©UÀÀÀÀ?ÀÀÀÀ?ÀÀÀÀ?ÀÌ0À?UÀÀÀÀu�uuÀÀÀÀu�uuÀÀÀÀu�uuÀÌóÀu�upåpåUÀÀÀÀ<ÀÀÀÀ<ÀÀÀÀ<ÀÌ0À<@?ÿÀST…ųAö³@$€@?ÿÀ/N=N@?ÿÀmn¯úIW¢IÿŸ@0000(o0(o0(o0(GGGGGG   A`&`UÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÀÀÀÀ?ÀÀÀÌ0ÀÀ?ÀÀÀU€@€@€@€@€! ÿÿ õ&—ËèüÁ@kÄ€¿® Ð    .8:<64        &24&  *( 24.$  60         (*,&$   6(BD6 >8FH>0  F@NPB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<64   F8RTB( JDRTB4  JDRTB4  .8:<68:<*(*,24" "$*, -     m  9ECE&("  *$24*  2,:<2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  EC2E8:4BD2$  :4BD2$  :4BD2$  2824:<*$  ., 68& *( 24"  m535    53:5@B<JL6(  >8FH6(  >8FH2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  %#2%864 >@.$  60>@.   60>@.   E      53.5460>@.   60>@2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  1/218:4BD2$  :4BD2$  :4BD2$  *4"( 9     53"5(*$24&  .(68.   60>@2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$    2468&$&(.0  &( 5535 "*,"  *$24*  2,:<2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  53258:4BD2$  :4BD2$  :4BD2$  2824:<*$  ., 68& *( 24" meshmesh…ë½\�B>$ý…ë=ö(Ü>$Ã=¨F¨…ë½$ý\�B>…ë=$Ã=ö(Ü>‹Fƒ ×´õYpZ°´BZoY¯³ÊBÿÉ›Ê-óödŸ.›œÉ™Ê·¸·Ù¸·¸"!·mnmÙÿð·ÚÙÚ¸ÙÿoZ8z7’o7y8‘p»€þ€ý€þ€ý¼"Bcd"!AÝ�ý��€‚þ;kRQ†…†kÿðlklkÕüÿÀ‹º¹º-йº¹0€3.-ó0O.-/0 ý?þýþ@ý¾½¾½?ÁÂÁÂ@ÿð?@þ?@?ÕüÿïjijF®ijiCÿ<Ìó3ÿþýÿÿþýEFó<ÏÏEFDCÿÿþýþ­�‚�‚ �baba¢¡¢¡ ÿð ‚ U ©0À©«0¬«ªÿ𠩪©ª©ª©ªÿ𩪩ª©ªW?@?@?@?@?@?@é0À©k0lkjÿð ijijijijÿðijijijWùò`ÅÁù_ÆÂú5íÿýûÀ5›î6œý$#á0Ì[ÌÌÑqÒÐÒ`ÿðÑ»q_Ò¼_)PXL)%WK*y„ ‚ƒŸ�`¶”_µ“Ö0 LþuÌÌ CÍDFþ¹‰ÿðCíÍŠDî_@©“»å@j”¼æ?[€YZ& $% #ßÒ`ÿü Ñ»q_Ò¼]`ÌÀÒrÑW _ J T I �½ÿÿÀŽŽ�,µ3”¶4“)0þ¹‰ÿü CíÍŠDîŠþxÌÀDÎC_ÆL•»t¾Æö+PÎÙÅ„ð?m�ч% #& $à2ÿü¢å1¡æ ÜÍÿð>îÎ=_'š)‹'q.Š(7¤££¢+¶4“µ3”,Z±ÿü S§ø²T¨SVþðRýQWèéåÿ:šèeæØ<çø7ÿýûÀB%O~+$#ã0ØÍÿü>îÎ=81ÿð¡æ2¢å_+––l+k“k,A¢¸ ¡·Ÿ(`¶”_µ“+ TþüRýQU[²ÿðT¨÷±S§ ÌÌé«©©«©©ÿÏÿ«©©«©©«©©«© ÌÌë©©«©©«ÿÏÿ©©«©©«©©«©©] ÌÌÏ{{½À3333    30  ”@30»¼»¼»¼»¼»¼»¼¢0¡ÖxxxxxðÃ0À;€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿ•ffl0À3VVVVVVVVVVV›^€ªÊ Ó�ö’ ¢A?Àg?€¿­Ð.4682468.024*,.0&(*,"$&(                    meshmesh)\¾ffF¿)\>)\=ffF?TJT)\¾ffF¿)\>ffF?)\=åJÝ WÚÜJIÛÙÚÙÚÙIÛÙÿ3ÃóÚÜJIJÜÛÜÛÜÛÏ?3ÜÛIJIÛÜÛ33?3ÜÛÜJIJÜÛÜ30ÛÜÛWIG’‘HJIJIJ‘HJÿ3ÃóIG’‘’GHGHGHÏ?3GH‘’‘HGH33?3GHG’‘’GHG30HGHW\[\[Y¶[\µZ[ZðÛÿY\Y\[Z\µZü33Y¶[\[\µ¶ó03µ\[\[\[3ó0¶µ¶[\[W%&%&(M&%N'&'ðÛÿ(%(%&'%N'ü33(M&%&%NMó03N%&%&%&3ó0MNM&%&U B„ B™„™˜I™„™˜@U B„ B™„™˜I™„™˜@ B„ BU�H�U 0Ãþýþýþ Ì0Ãýþýþýþ Àý¾@À ?½¿ÀÀ?@U�H�U 0Ãþýþýþ Ì0Ãýþýþýþ À½?À ?¿ÀÀÀ@@PP ý þPP þý þØ#V„H*Ø2Ì*´$2ÌGr´Úƒö#$õ/Ù#ÑÀ/ˆ8ƒ @€Ì7878?87@?@ðÃÿ?@?@?@7@ü?8ª©ª©  ©ª Ÿ ŸðÃÿ Ÿ Ÿ Ÿª Ÿü  ©'('(Ls('tKJKðÛÿLILIJK'tKüLsÕ@GD3ƒ8t@4ð’$ÿÿÿÿÿ?>€¿YÐBH>D        meshmeshìQ¸½®Gὸ…½š™>�Âu=¸…=$$ìQ¸½¸…½®G὚™>¸…=�Âu=Ž ?ÿ3ÒÎÍÎËËÌËghÌÿÉÌÌËÌÍÉ?ÿ3Ò1214212ef1ÿ4134324ËÎÌËÌÍËefefοÿÍÎÍÌÎÍÎ4134324efef1¿ÿ2123121™€™™€™ ÌÀ@¹Žº£ÿÿ¡·¹,ޏº+ ÌÀÀKåLNþÿÿ±™KÍåšLÎ?ÿÀ@ØÈg_×Çh3ÌÌ6Ç`È?ÿÀÀ™MÉçšNÊœþÌÌfNèM?ÿÀ8_"á7`!“ÿÿ±¹ß÷ºà?ÿÀ±S©ö²TªSÿÿXPþO7ûÀÅévÆìÿÿÖ¿LvRÂMu?ÿÀRùQWÿÿS¬T®ø«S­3333…†…†…†…†33…†…†!!!!!!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ LJ&º.Ï©‚>@@?€¿)Ð           meshmeshœÄ ½�Âõ½ƒÀJ½?5^=ƒÀJ=$$œÄ ½ƒÀJ½�Âõ½?5^=ƒÀJ=¹± ?ÿ󹺹·º¹º¹�Žÿÿ�·¹¸·¸º·?ÿó-.ÿÿ-?ÿfÿ·¹¸·¸º·¹�Ž�ÿÿŽº¹º¸¹º¹?ÿfÿ-.-ÿÿ.™€™™€™ ÌÀ@?ø@›ÿÿ™Ç?·øÈ@¸ ÌÀÀQøR\þÿÿ£µQ¥ø¶R¦?ÿÀ@‹iŸõŒj OÌÌRjöi?ÿÀÀµQ¥ø¶R¦®þÌÌTR÷Q?ÿÀß®—Uà­˜ÄÿÿŸ#É@ $Ê??ÿÀ©U©ÿªVªUÌÌVVÿU?ÿÀ*¯Il)°Jbÿÿ¬òÏŽñÐ� ÌÀVÿUSÿÿUªVªÿ©U©3333ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÞÞÞÞÞÞÞÞÞÞÞ\ô\ôÒV£-È*™ª€;@H?€¿)Ð           meshmeshÍÌ̽ ×£¼p~¨½ÍÌÌ=š™™>p~¨=œ,œÍÌ̽p~¨½ ×£¼ÍÌÌ=p~¨=š™™> ,˜ ËfgefËÌehfeÌËB#ÿÏÌeÍËÌefÎK€&Ø%¦K3%×&¥LK€þ€ý€@~@?}?@~@ÿÿÏ?}?3Z²ôóZY±üᢡ¢¢¡¢Ÿ…<Ìó3†„ƒ½¾¼»½¾ÌÏ̼»¡¢¡¢ üÿÃÿBAB¾þABA»ó<Ìó3ôòñ‡ˆ†…‡ˆÌÏ̆…½¾½¾¼?@?@?@?@?@?@Â0À__Žv6s¡u5tžMéÔNêÓq˶–̵•mªÒÿ ©Ñ®7txn7;wm8u~ø€}÷„ø‚ƒ÷�(`¸–ÿ_·•Ø’¼Rÿ<²’²Qÿ;±‘]1ñ2ò2ºO¹P ŒñÒÿ€òѰ�(dl'cdýpþo�søt÷n±5–ÿ²6•'þWª^vŽþ=½Bý.B¶\äC H‘;mQ¾Ðí€òÑÿñÒ¯%ž�%wŽ&3¨Ÿ© ¢�¡ž'²6•ÿ±5–*SÛÞ+ˆS¤®ñ�TV^ñK?6êpÍáæ4¦�ªÒÿ ©Ñ¬)žœ„)u›ƒ*'š´ ™³Ÿ ¶œŸµ›"`¸–ÿ_·•) ÌÌÏ<@ ù<@ ù<@ ù<@ ÿ B€€H€€€€€€€0Àÿ 0@3f&€ÿÿʽxò”�˜Â>Àg?€¿¡Ð.4682468.024*,.0&(*,"$&(             meshmesh)\�½€¾‹Nx½)\�= ×£<‹Nx=TT)\�½‹Nx½€¾)\�=‹Nx= ×£< GÚÛ’ÜG‘Ü‘ÛH‘Bd�v ä €c ã #€þ€ý�ý��€‚þüÿÀJHGH‘KGHG”€@üÿÃíÜìÙÿ<ÌÏÀÿþýÿÿþýþÒÑÒÑÒÑÒÑÒÑÒÑ`_`_`_`_`_`_w•þ\­.wñý[®-x˜ÿÿð6îÿ5혚|y™{ Xÿð¬ŠW«‰9 ¢nƒRö ¾m„QõŸ¨_ÿð?d`@c*› †*r …)P§ÿð/Ѝ0‰Ø Nòè Õ úퟑxÿðÈ·_­†»)¤‡)yˆ*Q²ÿð4“±3”*ô‰Íäôõ.šÈéóMÿðª´0�½Š'¢žˆ'y�‡(`ÿð¸–_·•' ÌÌꬪª¬ªªÿÀ¬ªª¬ª ÌÌꪬªª¬ªÿÀª¬ªª¬ ÌÌÏ(*,***û(ÿð*,***ý0787878787878ðïðïðïðïðïðïÿ00CI€ÿÿ«–»ë§¯”?Às?€¿YÐ.4682468.024*,.0&(*,"$&($  meshmeshÍÌ̽\�¾p~¨½ÍÌÌ= ×£� €Ý“Rÿð¾Q½x�˜ty—sPÿð¦€O¥EäxObÿwPaíÐÿðEâÏFáK(—!"ˆ(p"!‡'N¡ÿð/ˆ¢0‡Ú‰• ¬^‰Ã‹ŠÕ;ÿðÎz`­½y'¢‰'yŠ(Q´ÿð4•³3–*ï1À òB« ÂvÿðÃ¥ º'¢žˆ'y�‡(`ÿð¶”_µ“) ÌÌꬪª¬ªªÿÀ¬ªª¬ª ÌÌꪬªª¬ªÿÀª¬ªª¬ ÌÌÏ(*,***û(ÿð*,***‚0fefefefefefeæåæåæåæåæåæåÿ00š€ÿÿ –œë¨¬”?À_?€¿YÐ.4682468.024*,.0&(*,"$&($  meshmesh¸¾)\¾5 ¾¸>ÍÌÌ=5 >T T¸¾5 ¾)\¾¸>5 >ÍÌÌ= ø N'&('NM(%'(MONžNM�Mì�MÅMëìN란öˆmõ‡lÚlkÙk¹ÙkMkº¹lºÚüÃ8787787:ª<ÌÏü©«¬ª©ª©«¬«þÞðýíðÿòþïÕ<ÌÏüÖÔÓÕÖÕÖÔÓÔ©ª©ª©ª©ª©ª©ªÖÕÖÕÖÕÖÕÖÕÖÕlAWå÷lWBXæøk¬+ÿðí, î‡)Ž,´‚)c+³ �*Pÿðþ|Oý{µ:żãüµ|Æ»äû¶¸&ÿðQg%Rh´ �(ˆ ‚'‡ ^Ñÿð3„Ò4ƒ¾éíÕY2Ÿéi×,„êysÿðú Hçµ–"}w!~=šÿð>™™=š ßí;%ûß$ÒäàÄ^ÿð�'‘Θ°|y¯{^ÿðÊ–]Ë“ÌÌÌÿ€€@<{ÿðÿ€€@< €€ª©ª©ª©ª©ª©ª©ÕÖÕÖÕÖÕÖÕÖÕÖÿ0xxxxxÐ03Ù €ÿÿí•Iñ˜£�€;Àg?€¿YÐ.4682468.024*,.0&(*,"$&($$meshmesh ×#¾ ×£¼�Âu¾ ×#>)\?�Âu>´:´ ×#¾�Âu¾ ×£¼ ×#>�Âu>)\?8:0 }ÏÏÏc„b ƒd �c„úùûúùüúùcdbcdacdƒ„‚�‚ƒ„�ƒ„?¾ðcÆcbcbÅ_@D\žC„_ CYŸDƒ`J¶´JI³µI @ ž@?�Ÿ?`$\ZÙÚ$#Y[ƒÿÿðàŸÁ@B�@ÝžÂúg‘«Yg‘ûh’¬Zh”¹ºº¹°¦¥¯±¥¦²’ÂÁ‘’‘“Á”ó?À©¥¯±²¨¦µj³”IjL´i´“JiI¥EF¦¤FE£�;<�Ž<;�K LKLJ Ió?ÀË<�Ž�Ê;�ž�ž�ž�ž�ž�ž�žü�žÑÔ@EFEFEFEFEFEFEFüEFøõ@d“¤~H/‘ðd0£}G0’ïcä“Ýâ””Þá“ôû ›ëÿÀüŸœì/D.N \V/-M [U0ulx®hkw­gFjÀfÿÀEi¿eìþº,ü d3Áºåû c4¹e�ÝyÞŽÞzÝ,þÄ ¾ÿÀýýP Q[D4 H\C3 o‡†xpˆ…w(�qPfÿÀŽrOe#þnR:LùsrÏn‡É úé=mr3Ù$.à3"$¥à6LÿÀ–ÏI7¡jt1] UUs2^TnŠ‹qm‰ŒrvxSkÿÀwuTl]G|9îî]‡¤lÐÝ^"ìÍÀó³õ¯fßÿÀÆ{1ütdŽ,` TM‹+] SnŠ–lm‰•kJv¦lÿÀIu¥kÌÌÌÿ€€@@@<ûÿ€€@@@<ûÿ€€ÿÀ@@@< €€à@åæåæåæåæåæåæåæüåæ$#       ü S«ÀVVVVVVüÀC@€ÿÿ ¼õú 6Ž€;À?€¿¹Ð>DFHBDFH>@BD:<>@68:<2468.024*,.0&$&("$&("$&("$&("$&("$&("$&("$&("( "$  "(meshmeshš™™½)\�¾�…½š™™=�Âõ<�…=HHš™™½�…½)\�¾š™™=�…=�Âõ<óë ‡ˆðˆ‡íïîÿÀ!îí"í€öˆoõ‡nÿÀÞnmÝmüÃïðïððïðí"<À!#$üÿÃÿðþíÝ<ÀÞÜÛÅÆÅÆÅÆÅÆÅÆÅÆèçèçèçèçèçèçq79ˆJwqª:‡Ixr~IÿÀåÇJæÈ-ž ¢Š-o¡‰.\ÿÀÈŽ[Ç�aû7.³Ýa¡8-´Þb;AÿÀÁ BÂ.§‚.z�-^ÃÿÀ1ŒÄ2‹¨B*Þà¨ó*9Íé§—BÿÀü©WüÈ)¤‡)yˆ*Q²ÿÀ4“±5–¸8-sá߸ë$tðØ·47ÿÀn¦H‹—'¢žˆ'y�‡(`ÿÀ¸–_·• ÌÌꬪª¬ªªÿÀ¬ªª¬ª ÌÌꪬªª¬ªÿÀª¬ªª¬ ÌÌÏ(*,***û(ÿÀ*,***¶µ¶µ¶µ¶µ¶µ¶µ©ª©ª©ª©ª©ª©ªÿ ¼¼¼¼¼ð‰€ÿÿ?—×맯”?À?€¿MÐ.4682468.024*,.0&(*,"$&(meshmeshÍÌ̽…ëѾp~¨½ÍÌÌ= ×#=p~¨=HHÍÌ̽p~¨½…ëѾÍÌÌ=p~¨= ×#=óë ËfgefËÌehfeÌhfÿÀÌfeËe €ø† s÷… &fÿÀÎfeÍe@ƒl<Àkmn ÀÃÿÿþý×<ÀØÖÕðïðïðïðïðïðïðïðïðïðïðïðï8‹ÊèKý8TÉçLþ7 àÿÀaßb+ž ¢Š+q¡‰,\ÿÀÊŒ[É‹�µ'[À�¹(\¿�—ÿÀò˜ñ4­€4z3dÉÿÀ/ˆÊ0‡ß³èÛò%ßy×Êß$àj¾ÿÀêÕË+¤‰+wŠ,U´ÿÀ4‘µ1’—ÝÆjÇ—ƒÍqÔ˜pËÿÀÁõܤû)¢žŠ)w�‰*`ÿÀ¶”_µ“ Ì骩«©©?Àª©«© Ì묫©©«?À¬«©© ÌÌÏTÿ¬TVRûTÿÀÿ¬TVR €€ðïðïðïðïðïðï‘’‘’‘’‘’‘’‘’ÿf€ÿÿí–çêgi•€;À_?€¿MÐ.4682468.024*,.0&(*,"$&(‰PNG  IHDR@¦çy)ÏIDATxœíV1à Ô�±Ïèúÿ©cÆŒ}BGo��º`;. U9)‹Åù|87ñßð¨HDoT�1Âõ¿ /1^by’»ß®lu¯Qà šÅɼÄ8 2Õë‹ XÒ«KÄ•æµFj¾Öø‘ð>ºáð{!~3¼r–üµ4Cq ¿±wxÁB¶Š�ÀgŠ#äÛñ%·�Vÿb!£áÓnñ%&¬áKuà;@"ÞjÎ�SÍ_̽4-<ä ¨îÕÓ„÷‚ÕÄÄ„;Œ à³F2�óIEND®B`‚‰PNG  IHDR€Åsóm –IDATxœí�-xêÊF‡>$2‰D"‘Hä–‘H$rK$YY‰DV"‘ÈHdäyÎÝûöP˜¤IÈäÍLÖr i Yý~f&ƒÃä—±GsS•QTaç,­zø$ý|ÞOVÆgÞÔ ï @ÌÐxNrý(³[�Œú2ÖœÙvDç�ë·ðR�ˆA€ˆA@HmhÞà¶ú ·?b b b žŽNIÉSSnçElú bài (�¯£Ë.�nk¾K Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä òÖŠð…ør1>CˆA€ˆŒÇUùqÏñw·jR<ß9=> Ƴåjfó™‹Ãž?ÏFÄp4šÜÿ<޾ýø‡[zµn¯JÞqnéÕôR�ÏRP1ÑÒ~|zt[H_!(éq-·÷§ûáÇ|N�SBKAé÷ÓÝåÿý#ÀsÇSMoÁ×€(§0t„k€yÚèèíÊ—‡‚0 J€qpºÓeþèz†Ùòü°1[ž T êÏJŠA€ˆ ­´L¶|uoÙVµÎ›zûš5kdn®ÆñKNÛyôùIAbHAU¼2˜ÝšY •ƒ1ƒ1ƒ1Ã8 á¾¾*D€ˆA€ˆA€ˆA€ˆA€ˆA€ˆA€ˆA€ˆA€ˆ ó’äí§{x]7¿üñ‰13È2'ë�|1«~øéÔáGº\ÎN÷¯  b†5Rô½ M’ƒu{¯�ox) öðDçA ƒ1^¦ „ %¦@SPÄPÄx) ¦@SPÄ 7™}í¿ß™ý¢ÚxœY·'ë…u{|8ŸÇÙ|o\B C ƒ1^¦ „¹ -1ãh j€˜al[7ôß07öí¹¼7ó�ú bú8 M+¯D•¦GÓÆnOˆA€ˆ¬öUÃqåç GfT~çÔØ¯+pJ,åäWìäI­AˆA€/§£ïyOJ}±FF}kÎl;VQÖ\R�ˆA€ˆA@@mhÞà¶Æ ·?b b b ~ŽVû²÷:¬¶Æ”Ûùc#˜1–CˆA€øYÊçëu”Ò>&÷’b b b b b b b b b è7D@W׊ð…ýÍx  b f0w«ÿ2]böîv=""@ŒgËÕÌæNž¾{þtûØì†ãñ·uƢȒ‘Ò4µn¯JÞqÒêK[)HŒg)¨˜h¹µnO�;ÓU‚�wÑr{º~¬AvtûðèÐRPúýtwù?ÀpÁhifYS¼_¢œÂЬæi££·+_ Â((ÆÁéŽ.¹¼šõèø80Ì–ç‡�Ùò\p� RPxVR Ä @Lh5 e²å«³xƒÉÄ2ß�7õö5kÖÈÜ\�ã—œ¶óèó“‚Ä�‚þ2W{\ÒíÖÌíD€ˆA€ˆA€ˆA€Æ ÷õU!Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @L˜—$ÓŸîáuýÝüòÇ'Ä @Ì Û¹]/h–T>þtêdI”?\.g§ûW…ƒ1Ã)úÞ†&‰ý‹çqìvex) öðDçA ƒ1^¦ „ %¦@SPÄPÄx) ¦@SPÄ ûųãîÛ¢Þ_ŒFöUE’õº=>œŒÏã€÷ÌáÅ j€R�ˆñ² M˜ Ò3€¦ ˆ.bûEùE\í@W“Óï»]~ß{ˆ1ƒ€ÐÇ5nOÓ£éno\#Ä ýfpXÙçýãyµÕÄ+gËêßJ>- ƫꟳK�‚Ä @Œ—ÓÑ÷$¥\­“Q_Æš3ÛŽ€hãúü†$b bRš7¸u»0†ßb b b ~Žf‹kÉ=£…)ù“óÉòlïà!Ä @ ü¬åóu´3é¶Þ›ô"@ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä @ Ä  «kEøÂ~[ê‹Ú�…ƒ13�»õ0Ïãï_¦KÌÖ;§Ç'Äx¶\ÍlîäyçO·�Í.`h¢oÒxbù o׳u{UòŽs»Êþ~9¤ 1ž¥ b¢¥ýFøôè¶�¾BPÒã.ZnïO÷Ã�5È2ã”ÐRPúýtwù?ÀpÁÈñTÙ[ð5 Ê) !À`ž6:z»òå¡ Œ‚`œî(Êý:âõz‡5Ùòü°1[ž T êÏJŠA€ˆ ­´L¶|uk0ž.Ÿ·æM½}Íš527Wãø%§í<úü¤ 1¤ ¿Œ¢©©B–^Lb b b b4Ü×W…ƒ1ƒ1ƒ1ƒ1ƒ1ƒ1ƒ1ƒ1ƒ1a^’¼ýt¯ëïæ—?> bÓOÇ_�çUc:uróþ.—³Óý«BˆA€˜a�}oC“ä`ÝÇkã^ ˆ=<ÑyPÄ @Œ—)(¡h‰©ÐÔ1Ô1^ ˆ©ÐÔ1ÃÍÔþíÀíeaݙԺ=YÛ÷�'ãó8 Û¹}¾5@ )H Äx™‚æ‚´ÄŒ )¨b†ñ|l}!žW¼&{Ïy¡[Ï)ëD€ˆA@èã€4M«ÿÊÑô"@ Ä @Ì`2©¶j84Ë0Ù/¤øBš5Á§MHAb b b b b b b b b b b æí4æ¾ uà@Ÿ‚p ¯8Ða´]PÇúÀ�>á@_p /Â8h/—«¹ç­CnC ý8ú�ô#aè§"pà‚7³Ú990¸˜Œ#ܨ8p8Ч èkôE˜¦È£K’d7HD-2È}BÄÇ6÷—N�3À‹Ù¦äû�ÎûÚ¿Û³›ˆƒVx[$«ÜqàžÁ|úo>9Ź»|墯̳xz†Îÿ_ÊË'_™çy‡SþK=JAEqíÔ€\$¢Ö.Ê/’•=­vßš¢§.èžÓxº¸]ÊwA=§ô@Œ8hç¶”Ü ¨Hq4Èb±üïMOGï¶[î úÙA~ô#]P?±§ Fš"fŠ^ª8ÐaÓOGÓµ# ©™"Èc¸Ùo÷›¢Sù_S´ŸäОû¢Ç£òºÒÅkÓÑ!DÀfŸ?õÿ?(ÈÎSP}ƒ¦jôEøG¹uy+®ÀpùÌÕ±ûÿý•”º|öMMÕ¥a\»?é4EšÐŒŠÁ+EÝšŠ ) )ÒG@c™ÙºÚ)ˆ¦¨íq€•f¥G¦ÖàÀ÷ ŸEE˜¦¨[WÄhŠhŠô@S¤OA4Eú@AÖatëkª4E4Eú )Ò§ š"}   ë‹0ºõü𢿧£ËÐþý,æû¬u ·¥Ô†¦HŸ‚hŠô5€‚¬/Â8èÖS”hŠ$3E¾ÓpÐéSPûM‘×8©ídqU„qЭgI¶ÓùˆC4Eú )Ò§ š"}   ë‹0ºõDmš"�š"}ÐéSM‘¾P�õEblzIDATxœc`@?~tügÀÉ“˜¨i9`b`ÀˆÏÕåA46509bä©–†d €�ȨW2®Œ³£IEND®B`‚‰PNG  IHDR\r¨f ™IDATxÚíÝ=nÛX…áo )SºœÒe–�Òå,+ËH9ËÉ2\²s0)þ]þˆç)09÷\1z_X¤Ä¯^u’›ŸÝ«§@@,€îÛ�ÉÍ? !!!!!!!!!!€cÒuÝŸl½ÎýãŸÿ?–¡uÆ~~î~@€@®/€¾UýÉÚõúÖyôøÿÿýùøçc÷y´ß±ŸŸ» �k  5ô-àoñxëý€€<¿–žhÛbý–ð��ø[º �ë¼;Áv›µ¿ú÷�ˆZ¿•�ø›³ �ë�¼}ñ·>¡xĉ¿ûÇÏxâ�„€ä\—÷¾ì·åG~Ÿ~ €_pøß¬ù»CëÌ]s‹ç²õózÒ�·‚`l�¾�ü.99õçç€ Kr5$7?»W €$ `í]~§¾ÐZß]Xo£Þ•ûšúBk}<ô¶é-0„÷‚!º·ÀÞ †èÞCx/¢{ á½`ˆî-0„÷‚!º·À  ¹½½`Èí-0€ ¹½†ì^0d÷²{Á�Ý[`ÈîCvo�!» Ù½†ì^0d÷²{Á�Ý[`ÈîCvo�!» Ù½†ì^0d÷²{Á�Ý[`ÈîCvo�!» Ù½†ì^0d÷²{Á�Ý[`ÈîCvo�!» Ù½†ì^0d÷ô‚!··À  ¹½ðƒ!··ÀÞ †è^Ó�MƒéÀ`0 ¦ƒÐt`š BÓ�Ah:0M¡éÀ 4„¦ƒÐŒ@š BðƒÐt`‚„¦ƒÐt`š BÓ�Ah:0M¡éÀ 4„¦ƒÐt`š BÓ�Ah:0M¡éÀ 4„¦ƒÐt`½¦ë5X¯éÀzMÖk:°^Ó�õš¬×t`½¦ë5X¯éÀzMÖk:°^Ó�õš¬×t`½¦ë5#Po›éÀ_¾~ÿËËËˤLYkNôîÓëxäö–ƒ~Ç#··Œì^Ç#»·Œì^Ç#»·Œì^Ç#»·Œì^Ç#»·Œì^Ç#»·š]'–§ÌÛ{'Á!�dì}]YΕª’䀀„„„„„„„„„„¦{û¯7C?7¶ÎVëŸmÿ÷??wý±u'€À"hnÿìvÝÏÇ?;n¾¯ûþñÖë·ÚÿýŸ/Ýÿ}ÖŸUÿÖ  !€Eð/}±îùó­÷?&Ÿ½÷³ê­€@`Õ ³¾Ok`nµþVû?z?‹Nø€€,À؉§Û_�·8±5wý½öä~Vÿ»‚€€„šž¨ºÿU¹ï„Ùíå±³Ÿø;û~œ �öX ߯Ê÷ŠYÃ’�ØnÿЉÁÖûi~�„`ñ‹§{ÿwq¶^gîþ·ØÏš5·x^kOŽý�½Ÿ+¹¥ëÏÝïÖûizi—€€@Üdük_H}/ÈÛõ'½Oiðëƒý·ÞϪkï÷9÷y€€€„ÁßâÒT«ý�¶†ªÕñÙ£@ @ ÐøÒßQð¿'Ì{^6\ºO€€À†—þŽ~ÏûèRÞÖç:Æ.ñM=G1e�%K½Ræú˜û%ž¦_Æ!   €ÐOô1tC’9ƒ;¦® <Ë¥¿³]Ê›û|÷Þ'Àeà_sÃ’­' x^lñɶ–ß�oñIÁ=ïg0á’ºê ¿¡ÁKážrâï)�)À%~õ4Xcí¯ö�NÆ|°Õ{áÖ÷Xòžwëý¬¹4Úêy\NG�Ø{ÚË}@@ƒÈÓ à,ƒD.!€ÀÓålƒD@€@@@@@@@@@@@@@@@@@@@@@@@@¶K÷íLJäæí½“àô¤ë¦¥õ‹Rï¾½+]N}¡Í½)‡Þ�zÁÞ †ì^0„÷‚!» á½`ÈîCx/²{ÁÞ †ì^0d÷‚!¼ Ù½`ïCv/²{ Ù½`Èî-0d÷‚!»·À�Ý †ìÞCv/²{ Ù½`Èî-0d÷‚!»·À�Ý †ìÞCv/²{ Ù½`Èî-0d÷‚!»·À�Ý †ìÞCv/²{ Ù½`Èî-0d÷‚!»·À�Ý †ìÞCv/²{ Ù½`Èî-0„÷‚!º·ÀÞ †èÞCx/²{ÁÞ †ì^0˜ Ó�Á`:0L¡éÀ 4„¦ƒÐt`š BÓ�Ah:0M¡éÀ 4„¦ƒÐt`š BÓ�Ah:0M¡éÀ 4„¦ƒÐt`š BÓ�Ah:0M¡éÀ 4„¦ƒÐt`š BÓ�Ah:°^Ó�õš¬×t`½¦ë5X¯éÀzMÖk:°^Ó�õš¬×t`½¦ë5X¯éÀzMÖk:°^Ó�õš¬·Étà/_¿ŒåååeR¦¬5'z÷é•ÜÀ/†Ð^‚{A@`î€!¸†à^dç7[xAXrižcIEND®B`‚‰PNG  IHDR\r¨f?IDATxÚí�1’ä¸Eë2÷cê2×Ô‘dê2uœ=ÆšåíÆŒTl.A ‘™ˆÿ DÌ4Ñ(°šï™d¾^¯×4M¶½þøÛ/ÿ  ¶ÏEðëïoš`û"€o¿½iBí,„¨Õ¾ ôà? ôàGâð#mø€8ü@~ ÿ÷Ÿ!]ø@~  ?‡hÃ�ÄáGÚð‡àýnk­ý­¯Ó;¯Qóo�gÖ|>­´ÎÃ+€÷¯ÿýÑZ�þ_k¥qZûõηõ|½óq¾ß�ÿ/­ó@"(½>ØSŸOüÚùºp¼¸ZÖ×úŽæsuñzú_µc¿ãxÑó?¿^íxÄ|îÎ7Bç‹ó<Îñâû1ßÓÿ«×ËÅÅ{uüóºÖùXÏ»6ÿÒ|²Ï÷|>ÇOýS´ °³J·ýá¨]ÜÖþçãÑý½çÓ{Ü")ïëÕ~‘�%¸K§¾ZÿÚø­Ÿ–ø­²q¾‹|Z6ƒ!€ÝÐzÞ`O´¾n—za-ý{à?ÃÕ³ÂÖ:ÿÒïŸoñKï{ä|2P»õ,]œ=�-l¥ùôžoËü=çÛò{Wã·s[Ï €^)�¿»[õÖþÖ[ãZ 0âÖ?rüèùÜü"P‚ÿsÛy¼(­�¿Œ[íó|¢-ó÷ô¯½Ÿ¥€gºZNì+€ã§Í1ÚŒ6Àüw§ÖÀXT nT`o¥ùz39Y h…V lÄ×~#û·œïñÑ«Gnô\Ð g¾3°R$\Q络4DÁk äo½½�¹ìÀ_4ü‘@‹záÏX»2ü­ç›ù¨ƒ@q¸Zšh½À¬Ç­KY{a­óË?z>½¯gÌ!WM3~µ”µ+-�mé×:ŸÞ´éÖþ­çÛû~Ï÷eÎ!‡4PÈ!‡г¶œö¬vwÁÔ’Iж) ó~üøðK øµüÂ~m¿°€_[À�€¿º€B[@!,€Ð+rµ«�¦S4„Ê@⃨ ¤]1h;X qX �ôŽ¿j¹°U0»àFT�ŽìùG— Cbˆ^+�ž%€ÂÞŽ×vð[S‰[ �ŒJØ‘](tÌ.¸‘Q ã®ik³e³TT¡P "€Ò: !€Ò:�m�]xÄ[ècÕá³0»àÆì´dÞÄ%Þá`sÔVx"€½P[á¹…j·ö¥ã-éµ" }¬ ÿldÜð”ÚŽH{V ¶Î†l,€Ö½`O´îíx¼j·ö-·þ¥À_©`É]RÓ'Á?Sw." nÔÒuY‹‡ZŠ‘¶ÌgøÀ†°îêD{ Àº«óÑ8ß²—Š„F”¿ºÕ_M=[ºgÀZà"o Ï[ cøC0c3ð§q‹üžÌ@o>‡ÌØJ|w+†Ó ÿê‹~<É\".@ËEg-pÑ[pØ‹.H2òÖß“ÌÅ-€Y‰D@LGïEh½ð@¬¼™œ\X!�˜µðHvÿ™È.šðÉ“V`$"P˜Y�$ãÓ?½<øŠ©Ã€ïýc>y@� ƒ<~š?øÚs!’@t­Ä)•�€ŸÒ`À/\ øð#àGÀ¯.à×ð øµüÂ~m¿°€_[À/,à×ð øµüT¦é]Ÿ¦Ñ~ €F£É6Þ ÐdÛûïÿ¦ ¶/à ‘üãÿüÛóL¬Õ¾ tá'¨ ?~ ?~ ?‡ÿø3àЃÿË:уhÃ�ÄáGÚð#qø€6ü±(•Ù.õ«�“5þjó?÷·ŽßXê¼ô7Ž€5}umëf¤Öñk¯çíoÝT忹Za�@íì-€êf ô¥ÕeçOŸCÿË[ÒÓñðñ£æ_úT5οTš¼çýé]òëÀÕÅÕRŒãد4ÞùxKÑ�Úøwó�è>^{Žçã¿õï�@¸X‡öžM>£çÓ»Á§WÙðDŸ ÿ¨þµ€_ì#XZÖo À^0' ˜]ž\0G�Ÿ5ÿÙó1ü¢Pºøz„Oƒÿ.ðh-³æ�ßðC §j·ž‡[ãŒÀ–yüAóŸ9Ÿ‘1€»[ÏÖþµrÞO�¿åÿµóÍ ü¥  ÉF{ à|~àÀSP€¿Ⱥ ˜/ÄÕ+ÎÇ»ˆËr±DÀÿÄÀ_éë:ï­üy¼«¯¯¾m}ô"€¦ Œ™Ï(DþW@XZð4ø/~ÿ|ñ¹`èXb›10=ŸÀ Ußû÷,É�lE-öÌ¿­w‘Ó•J’ˆ "Ð,€O (K€iôqëØÞñ­óÍžOTšïÜd’© jã—ú[ÇÏîo�kÿÞãÀ&X/0°—*™dÀΠx„NÂ�žd´�j?~üø•üÚ~a¿¶€_XÀ¯-àGÀ�€_]@¡- @è ~Í¢!T~* W ÚWÖBÖMÞÛ•Í?ÑóÏA] À�æ è{fðH,?m޼ðÓÖoe¿´€_YÀ/-àWðK ø•üÒ~e¿´€?~y…´€BY!W4ä(€Ð+Be ñŠATÒ®4MÖÂQ@¬ãߥ‹8Oï|¼Y„V€uIlö’Ûè&Þùg• Cj8}Ûƒ´pþ¶g¨,:Z¶ðz €XÇ·&±¦1ë��7“Ó èÝ*kI,âMÓUÀ$"‘Id¹0 "€Â: !€Ò:�a•Ö+jüÕûGåpœ-€È¤›i·F¥õ²Š «P(Ø]•ž`oÔVx@-]wDŽˆñ{ç3ºtyd×™èMÊaAVÉoK:óV ŒxæG*hÜÛ�ö€1uûkÚ­oPÏZ°#ºlxT“6vMNGí*b-»YZ¼g>#"ý�Ù›À60îêD{  3{ók*ü#Ky¯X O‰Þ±¥{†V Ì�(`²"ü±¸‰0#€èÌçùÌ‰æ  7ŸCŒ¢ÌÖBž­Å8¢Æ÷.Ú‰îoJ9îHæùUSö’ߌ‚Ö&–€áêðÇ ñk&�$g&'ïEØyˉ}ÏŸ+€ŽhóS7ÿ¬ ‚g ¢bÐj›¬›s¼›†"?ýÇ•wD›@’–�¬„¾ {üŠ D×Jì1°<8Ùƒ×Kì1®<8ðK•~åÒ`À�€?~u¿´€_YÀ/-àWðK ø•üÒ~e¿´€_YÀ/-à§:0M¨•ʃÓ4ÚOÐh4ÙÆ›@£!�¦+ž‰$Ÿÿ~¶o¿½iBí‹øi’ð#uø€4ü@~ ?P…ÿø3àЃÿð3 ?ІˆÃ�´áGâð#møŸ!€÷û-{œóñÏÿk­4N­¿u> ð?AŸ÷¡÷÷ÎÍ:~ïëg� ?ØX-ð#€}Ðú-Ïš¸¸ø]«ã]ŽssüÇ¿ÿ¼X¼ãf¾µþÖùD¿ºŽÐ´Ìó ²«÷ý3Nm|ëë·žOöûmùŠl& ü`?X×w¬#€hèà9=Ÿ@øW€þ˜GÃ?B=‹»Â *°  þHD_Ð þ0tƒÚhK?þZà¯w>ÁðG ú.b4üçG/ü­ç¨÷̳¬Û-€Þ ÄÀ„2ö €1ð»à½øŽP4•ÔvÞú—B™�w�?Ó|2ì@Ɔ¢™ð·<ô¾?w×y”¿ÿš?€÷nøÀøÇ¯.„ÁKô7 S§ãÙ‘ÿˆø�ü¥¯³¾öËŒ— ä5~à^ø3R™yÀ´½¯yðGK ΄%¿«ÃoÀøk­gÉoéÖþxW·è»Bß%€TøÀòÈÎ „@:üÑ‹Æ)%ư"[û[ç³’F¦ký;´þž5h¹0ê Û¬« ?XO£s"€…0~Ú/K €Ä¡2 C^À�€?~i¿¶€_XÀ¯-àð“5øð#ÀPPP%˜&*€~šdÑà~€®ô@XÓ…Y7ýŒ*$Âsÿ�BÖÍFÖ‚!½›™)ŽT°KÔ„îµx=þ® :­…>J[”¶ü†¦7K,úDxwôþý­)Æ­›™f• C"¨íRD{  ôúÏ€7�FgÂ�¿¤ünMø±x‰ð§ *e·5�X©œXV‘QECÀæhÍg€ö@c~„ð }4¥[þ§ `4üµ¤¡O ø=§:0?ØW­1‡ç`ü�…>V ø=Y³à¿*êi ü­ ?ØPÖ×F{ ÀúÚÏÀ"ð¯øëϰ ü«þzÄ&€T@Z݆È,¸àYð‡ ‚Þ%¼K~S ‰,”2!è]Â۳䷧¼Ø @Ï#‡[éϺ µhKd\0^ÞxƒK3*Y qdîXeɯ÷µjË/Y1¨·ë]Î*K~½¯Õ-€™:ˆ{ür~r,[1HMÃʃ“=x½uþ#˃“=x½uþÃʃ¿Vi0à. üøð#àWðk ø…üÚ~a¿¶€_XÀ¯-àðk ø…üÚ~ªÓh4­Æ›@£©¶?^zHIcjjöIEND®B`‚‰PNG  IHDR@@ªiqÞIDATxÚí™1V1†9Š¥G°´´´ô––Á#Xzo¶¾Ù‡à‡�ÙUS¤™$Cøz{~8ñvw{szº¿;É_·6îåñþGã}¯�ßú¬9è:ä\.ÚË×Ý¿Q@ÓšTP�m€6¶ @ˆ)bðÀHYQm3ø+,y0ñFú¼ê³~ ¾Ð¾³È…*psqŠgžÐÙ#OÉ꣕´ÛÍ _m QˆÈDcÍ(_ÅÛõ K´ PÕîG]ÙõˆbW ê"+¿¹V/àÒdõ¹-`Ç€} ì<`g‚»ØÕà¾Ø7BûNpß ïw�ý2´ßÿaû±™P¯Å…ÊèIEND®B`‚‰PNG  IHDR@@ªiqÞŸIDATxÚíš;à †sÆ!c��±Ç蘱ÇèÑz¤l©2DBäð{°T©!À‡Ãol†åûX}›¦WÔæù“ô7ÛÆÎw€Èé�TWPB0˜ ŠHrý«±FŒãóÖ¶ŸýNy>§]++€i-@± Â(Ù2 P-ƒÔ`“H�öÔz@5Ô;vëþDÅhüSGí®Ùw’ô4‰ j‘Ú¦……O¢” ö€^â5ù€jq@Ï2¸-(ˆÒÔP'ó€Z «AcØa¨ÊàZ9l‚½æÔäR0,�‘ªÅ†>cÃ(…Î çTs$›É! X)}¨Ž@÷jH#'y�ªÀÕ {ˆÐoˆøà¸$? Qo®UUÀdPÈE ÿÿhVsÅ)Ênlã¬M’€?ɳërݸ›h „œ¶û³,*C­>…”¶*³Âûçfiq(éåò,,q/ ©´€ßÛ­šíàÚÌ€eYÏÌ9—eRßc €0À¨`‘ 0šíßh¿Kw¬¼ÏIEND®B`‚‰PNG  IHDR€€Ã>aËIDATxÚí�¹q1 @QŽC… :T¨P%(T :t¨\†Kpè~&ÏÿjÖ4€ÄÅ%Ì—öàù\ ž>ß½¿½<šˆ‡¼W©?w9Szpýãõé Iò{FÒ˜¹�CRÞÊÀu?%½t-p4À Ô{[×�4ÀÈ=^àÈ<=šeÁ ]®ôg´8XªBn¸ê`Ùöàu Ôzú,µgziχ^ PK{•§Oªœ–CÌ?|¹û4,‰¦Ñ{gò¦æ‘ÿ]*{ú?ÿ•.›fúÇzƒõœžc~k9—÷dÓ9/÷ïI®ÿ§Hºw&�Öý­tgóäË2äy·ú"?\‰÷`¤c-Mk´þùc:ºÖgÀÕx˜t¤žézÒ®Œ¹€¢1$àÃæÏ5ô-@¯¤ŸÈô›ÿmÙ¨[j­1næi�)æ^éilO¦°œÓr̓5ì ^eÆSµ¬# QVJš©!/ß?“…ãÞÙv(ú,ÌÂ\®#6zkfÛ¼Øè=xçFê¿"GŒçÈÂMK…{¦nÀbC€å°ñщ?ŸÉÂq¯:ÒñC@o¸Ù€w°‡w€–ZæN¸ýÿÖÌöHÌ«{÷—Îkøß%í V̶XÍé¥m Zñ Ö`ëQ«p;]Î`§¤ça˜©?ht‚†£È >kfëÜ�nÑÙRPœAÛÀ1d¬˜·o û!À⩜ïΆÉ9r-&_ÃÇß²5Hˆ¥SÿZÝá qï–eðj@Ǭ´”Ùƒ‹8/‹_ÀhÁlh:o<ÆœÒÈí¦µ\.½�u{fܼž\Ä;h€’ö†:AbØáÚšfZu%iîh ø´×ò/?¬{Ï+ ±†Á»`(À:æ^#ï¤ÙFÓ\% v ¼,úÔHGÂ<ìÕŒ­?ìà°ÑÀ›3 €vc{� .÷ˆ G]­Ë©ê9×ò_.WB Ø9ÖΩ£½CÉjԖʃfÃ�®×·|q<›Û`%{‚åÚ|oõ‡æôǹ:fŸ­õ–k¸¾5V^:•¼”³fôÚõ@ñÔaœ2Z�²Ú>š›iSÊÖ^9�¼žBîUÕ\õ7$ԷžöQ˜�« €ö~>Ò;‰x�x²„o*"H¢âœ1³OÇ™e«/�qÿ˜{0׎®9°š{íÚó{®üë—œójÇ`}å;|ï¸Ì¤ß�6õrl9ïa_bNOnZ‹2Pò^m»ûå°, ·ôú­�êC< + áÊ®]ËYVðcûýÛ}òFlXås+»¿�•Ÿºô ?{îc×Õ{\ï0’>x‹lÑ–ÚœËßÞºþúûüòÕTõ‘€C4¿%, €”¸–§ÕYçÅ! [h€EÐЀ!—ûWU p[¡« @šŸÆ’ææÚ¤|_¿½™Êö|,õR å@ðW®åiu–Äù 4@À®ò±S—�à¶Ñc°· AÆ’ìò¦à«N°r Î(-(¥,2¥Âcðöã×{’_¿/EIçŽ×”î;^W;Nù¥¤[*éúü˜ÕWPÜh€c£”·Ôp¥ÊÏ׎a;,O£j©\½:1Ÿ°?5­F¬=eØ'¶t Méx­“{š¦UŸíßZ*@ ‚VçcÕtë‰Ç>ù=�2óÍAŽ5.‡€Vã÷Tu¯ã{Ú‚ò>ÐëàÞv;Öù—Ôò17QÞ(�Ø£7–c‡„°-x“hí^[†f@ïE¬×á˜7uªZÇŒ÷­r`5ÁUzwؑ޶î.ÈiÝéXmq¨4)?óx€ 4@`@I¡‹c˜½f¨ÙÌèUøìçóõýéonfíÉp3ÚÑUCÐîÔL´ÜTÍÁ@ !yÇÇ`Ày¡0*¾v>?NM'¨ÄhpË3Ø[ô:¶'10žÇ\ÏeÈãC;@+€Û�ç9;�êúÚõÛ i >æIõ' äv¦³ÓÀ rJ Œpùù|*ÜÝÂ,¤€`€Ñ—ÀZÇb� ;€r<@~ìñáÉTÂPÙ÷ßK<ÖLB,â6ó`Çv¬Á§»4,€Âçà­½�ÔŽ5 à˜oà €tŒ€*l“ΪÛ8†C;@)¿À‰ · HØJñT0õe°N˜‚�V×|ÀfÌx°/�@ày�Zø Þêµ8æ„ê8êËa„…wÎ×l’v€ëÿÖñnѰu©½{IEND®B`‚‰PNG  IHDR@@ªiqÞ IDATxÚí›-rÃ0F÷9‚�aXXXXØ#ø…�…9F`aŽh–NÚqG‘µÒ®´ú³>àyß[9‰m †a¼§Èørd%U]P p.!P:xl�ú|¹Y“ZÄ„wÁRS” žBHÂÇ§Šˆ. 7x Ÿ œ"BT@Éð¡À~:]S üR��ð…7åz›Ÿ Ô®–*¸Já’à ?Ï©EHÁ/àzr  Jp  \ó¼>rK �ì~ ³|àkà’Ð`ï§U|¾r0Õî [2 ¢‡ó+ )€R›M€*¨ÝçJÐÿø-T€O÷1 ¦”�Íé¾KB)à¶Y & –tº€Ðë¿f�t-Á›$têÁn74‘.@p÷÷%­P™»õ`¾|5‘.Ђ�· xܨ|N›ŽÊú7Øtû&$èœOE[°z*¬Û97S÷W/FZ€¾Úê,Àºß˜^�oM‚ ] ±Uä"[™®î[IÕ.�ï\&§2½¾U*<[@ L5-•­Iž¼Xº >ð¬åò%Kð…go˜0�(§¬žè[fr‹�Þ4…S„íœÙ¶Í¥\t㤭@®ÎXEn�åø¤šÍÓ¥ƒG*$U]?Ÿž˜IEND®B`‚‰PNG  IHDR€@ÒÖvIDATxÚíÚ±mÃ0PŽ‘R#¸ô!c¤ô.=BÊŒ’2†Kv Ü J¤P Ž ”wÀ¯ ùÌ»K0œ’RJ}«üñVÆé}½ó€ó€óï7€ó­ŒÓûú½ë=ŸÊ8½¯ÿ³òý¥,%Àô}£úÌ-ðô™ËR¢äœËR Àäévîi7 @eÿ(µýÃt:?̆áÇôPÓ?@MÿH=ÎnnОµýûÁemZ´fõü¯OeË@ßo„Ö~{hÑüÇ*HÈ‚€$AaµIžax¬C0Ü�‘±éIEND®B`‚‰PNG  IHDR@¦çy)¶IDATxÚí—1€ E9–GpôŽŽÉ£pG7 C UÛ~ŒmÒÅ”à{…”Øã”K†?Å<,™’ÔϬñë³–Ÿ�—h,xDB™O×µoð)²´$ €V�ßU‚®‰xoÕR·!šKx°%ž€t>Iº…$ f Z @W킜x´zf p5ÛB �tc©ÞÙøð� ÿý äGa¿ áñ‡ëð—\qi›@ƒ IEND®B`‚‰PNG  IHDR@@ªiqÞYIDATxÚÝ[=R¬1 óñ9Æ;%G |%G ¤Ü&Å7BœÈ²œ�¡H»ÙX‘ÿ$öÿýñùòöÌwvãßëû�ñôü掶†ÕÿÛ¸æYý®1‹UÐæ‹€€ÑÏ`g  €kq�Gˆ0¯zj#t�0 ­c5ím ?�=»¤ 2|52†7£gnÐþ>º¯eÅKaìŒÌÖm•»È�¥~/†ãïüp�•o3FxŠ~‚ú+-hâ9ÁXƒúíÎæq>$¸aµàÂ*vf5lž„kXõQô›Fï —½vBˆØX ~ÐÀÈc‚ýµGÜh ³3w,^9Gû¬U Ñ Ì(e«·“JÌVÍHc~¬j³Æ2ß·*´£LŠü¶÷Y†½ÖOx§Þ5lDu�“‚Çnžyb'¼SDËD5* šÒåØ$$‚+ P�Ô…P¹0Tß7KGûü|Ì×OE›mÝ–õ_¤&_]ÉèDª»Õ °ÂK€,<[;© I^ÕÞY‘òW€ª÷¤�Æ�=J-[SÛ�h—é4 Ê@ŒE+åõ$fÏî:ÚeŠ HŸC @�¹L}öG\@oxmu¤£<~wvœVìþÅzC>5\ÝIVd©€†Ò¹p Ä;Jû¨OUk°]„¹ìš±Ÿ?sƒ~ÍQ0zFm!…Â3DÄ0âcÞ`HøÛ/¦Úx/Ò¼ÒåÒªðÎ÷Oì>ÚªWeˆ†?—#wÚ¡Èw¬€¨¾)ª¼–ã1aÆ CÕè(Ž?/hÊ€€y-ºûÞ¢+Yá ⮑Ҁ~¢ê{Äl­©F¥X1Y´šLõ© €H¬¸f»aU©:Kw†%ÊÂêq²îÁT¡Ã4:£á¯âDÁ`+Ïa2EÍÌÙ¯¼¶KÀd, V;�QÝ`±LÞŸ—›í(�ö!"ýŠo(+»Õg¾º÷è^•=ýd.êï«T— "jw°Jw½—"+6YeÔ¦ÎþØ's3ã·Off;­Ü}o.å{…™®Q�¦*h?c€ºE>ŠfúÙœÒ=N4F‘=ýpòTª«À[·ewžaEä½a¦ „„ô¦¤>Ê µÿ{�±Ãl-_ôÙ…5t#ìIIEND®B`‚‰PNG  IHDR€€Ã>aËÀIDATxÚíÝ»qÛ@`– Ð!JpÈTC‡]‚C•¢P%8tÈÐe8d�dilÃÝáÅ!ùÁ<´wûÍñˆÅŒv÷÷}r|ïºèØ=};öŸ¾|­Æýás1®ýúÓ~a<°X€$ÞðÀ à+@/À€Û�þ>€f�n üœ×~=¹¼`°� àðð4+®ýzn@×u}r¿&æXŽ[;€àâP�T|âŠ`]|~ˆ->ý.ºø”Dý4 ¸øü ñ¡ÁÅà@òã`?õÐ @/½½€À‡Bñÿ82½ ½@x/€ð^á½Â{„÷âì�½È 0 €@ð_œN§—h=þö¹c÷i=on¾­ã]š÷¥�¦OÆÝ݇Ñ?þ|lø¹¥äKÇßþîÔ|†Ç§`/ßa>[�w8ž÷îë+îXrS'¿v~íþ­“µ¤øS±Ÿc¼KŠmjKÏXrs66K&{,Ÿ¹ÅoÉÉx[®+Ýÿïñ,):Ô´§´±©m‚¶Xj‡ù¬½ñkÉÉùµùÛðÀú.}#tŽŸ}ç<êWÝš`�d·xzÉÅoï–_u°Ý&°6Ãã-�@K÷›zÞÜ|k1õú©ã�;Ÿ[�¼"À$`"D^üÄRϧÝõàIEND®B`‚‰PNG  IHDR@õ]©¾£IDATxÚíÜ=n1EáYvÊ,Áe–á2e–�ÒËP™N(PŒÑDâðçññ;ÀÜX"†¼g8”­m€µ¸\~]o™a¼??.×[ÌP¡ø3Hà¾ø{1£ÀÉòGÁm<ÿA÷cyEd€´¥íUþ‘ØG©ÈžÕ Ëß[Gc¨!"À²ÛôÒòGIM�R”ÿY Ì^þ– L[üg$�¡ü½@˜²ü�D�¥ü£@‹Ózd*hf”®™¼ø­î }N_¾¾ÿI$ôÜQØ� *ÿÙ ¯Èçp+ÿçDØ!ôÚQxTXü’ ®Àçó¨ød0rm.q�Vûâ>{±g(ÖÛ·y|¯`ö�AêÌZaùi¶âG•Àý¸J@ãeðOçG|Ž]zÁJάå�"‚½ñÔÀ#)ìý¼Š8zdo3|„tö.’A#$p4–V(ÙAd“ÂÑ ¹ö‡@�íd†ò÷’À³ãˆ €¬;ƒžë/¬jN~Ë¢ô,m ”¾Td‘ÂÒh1Ù{ ïÄý¨\{¿s¦”gÊ÷êûÖz¯0£º `Ä3f‹òMvË"D)dïÌ&€™dÐó1oñœÙ¢ôGé]Žìå'€x(�Ç­çaÓ¨Å3¢ @µp¿žjÏãÖòÀ)ÊâY”ŒåÏ €È"è¹^¶Ws�gÝ•�5YQ=o[­»\äÅ£°ÐRµd2b½n+,…%€¨õz#×+¼Xܯyô¿@°pº àýûÇUDÖ ˆ€ˆ€ˆ€ˆ€ˆdÀê_Ì(²ô“º" " " "Kä7¨)> Ý‘;#IEND®B`‚‰PNG  IHDR@€»�ojcIDATxÚíœ=N1 …÷”””””[r„-)9%G⇒#Ð ’¥‡ïÆIf’ØŽdí Ú÷ÙIfžg8�bĈ#FŒ1Œ¯ïŸ-Åãåys'>‰NáVÀÇç׿R8e?…+$¸™ç·Ë–‚‹w!'Ü €kâÍ òO!¸??mÀ3€»Ç‡¿0-Þ%÷�Äi˜ƒP:Ò"HaR¸€ %¢€e\\ô¤+‹¿& Ms’øäòH! ŸÑszmÚ#¡®,1Ì~ïÊC; !¸©·(ûé·B´ÆÍ"(^€G‚&”þkjO‡Ã° áÖ"h÷k, AïfAt €µZbËBp àZé×N�e ”ˆ7  T¼v\À­/^ã/e�Rv4ÐY‚6û虨úr%Âù…’Ú*˜.ûèåsÁØ@|À>@®�Àß_²_€âÝ].‹¥Ï#¸˜€+?Ͼék„xéKG‚8ÇÍ™¢š#A3°àÒè=2!¾À’rBÝ�„¶úá…#´€#´w˜±ÅLÐx�xþ?5Mé÷0 /mw½¦@Æûýž†‚  5$¡’/¨±×‡ÐV€)­+Î+ݧXk¾$ÏnK_`˜U^›!©+„öX»ƒhžûÿ8L�²\Öñ~Z¦„À;>¼s“{/€/€ÜæGêñuƒ~:kÍQn‘K ÍõðŠñ\ö9SÝ ~ƒÄ5[Ü©\ÒY–½æd(·ƒ,3Þ€IW¸¤56¥Ðë$©ÀÔz¸ÂKØ`=|ÁZTK¶ÃzZbSgþSL‰Wè–=Vr9íëBM/À€šÕ¾Wkl¸/È-qwH¼¶²€Cí°Òìš )û–)P²ð•,í 5ÓGè¡6ó=Ôl‰Ý!Ôd}&M4÷Õ65�ˆ¡Í�ц÷oA: B1 œ3V¨*¢æþ¿–ép4¶¤r=ÀÜ�`ü‘žsøû¹˜Ôß˽æýÀÜfRoq'éýõ²¥xy>ÿ‹“—@ €@ €À8¿=Î MÝÇ«IEND®B`‚‰PNG  IHDR@€»�oj@IDATxÚíœ=n1 …÷)S¦t™rKaK—9BÊ)GÈq\úÛm … <¤ÄÑü‰k¬¼†ß'R3zÔìå’-[¶lÙ²eËvB{ÿ¸?Jÿûïý1-€—Ûë³O;ûÓF0O)0 œyS@˜€aº¸þ¾=óžÖðýúó~æ €ÔÃF §Ž¢Ë¬SÿöòãÙÃ@ñ  ’ à@8EÀ° Å-â’XÄÞï_¯˜eL[˘{’xÀÅ#€2" ¤K\éE Ǭ/àâÝ@á<¯Ë+Ý—ŸËí¯&Þ=Üèà†GÛ ¢hn_@»Á´Ä`;<�‚[àð^@Zb< §½€´„Miæ¥ @ {möC¦‚–÷Ü  ä;Ïÿš#ÄïC̼¶Ö`ç.à‚Ut €[ÓÐD[LQ €+ `áÂgà æŽ0 •a€ž¡+E$½jv8�iP?¼5Æ�Ïš)ªYåš)ŠcCCà"4ñ|7h?,mµ™ç¬â‡„` {À]ak‘džOB¤z l"”X+ÀŸiÌõ‘V}0ÅiQò¸GÀ ‘Ц(ÏS€Ò'$I¼¶„ŠŽf(÷Ú¢t Ì‹¢Z]Wüpn0?+ŒWî »vƒ´:®-[ܵ;\«µKã��{š#d9)êöª U€z-17‘À«?[{‚î,±Z·¤€KKloÃB°]Zs S¨ Ý¢8ÊûpÖØ”4¿¿V °IxØ·¼ÆÓ@¬_{`B:Rß2ZO�€ÖìJPøVXz`ÂZ\9eA¬ý3ÖD=¢Ã­rËLXÇp{Œ»À5âwO‡­ÄkÇå{*D‡•Î(Ï´JÏñØi·‡¶Øñ»@À-©V±Ñœ]|BDò5W˜þ6 Ä÷¸x|ÿÏá-2ÉvïöXdZ…³Äµê_Â@¨Íºd‹‡1Dk™T“f^w-�מà øÊî.ì5ÁR�°¶¸ªò…_9€Ú¥°ÖÝ„¾vÂzRSÀMh¥°ž£²ÒaÈ$úBDmÕßÊ: 0Ì÷öq�1LÎ/í[Øâ§(â—Vƒöpˆ^á[”Ɔ€0€C…·,-‡õ,‚§€è™Ý£ì�ÏüÒBëyZÄ:6¼x YåkÅï¢%B›Ý¥µÁ-k›@è)�i`z¾LíÔ”À² · ѵU ëØ&U íÚ¼v–Žß�>d�A‹ø=ZƺS ö–Çã8€£ÅwÕ ·\€ZstT4‹Ÿ¼þ‡{oCsB2+øgð+óðÿ&“j�Ò9bíw†®þùu{”þözýÒ/³´�@H $€�@H $€�ÎðWQi"øCÌ:IEND®B`‚‰PNG  IHDR@@ªiqÞIDATxÚíšÍq1…!päè#!l„@(„A„ã#!p35®ê©·�÷º[šñza9¨v¼ÖJ­¯%Íøðôéåù篗§¯—½mÿñüú‰ÿÛúâ÷/Ÿ÷gü~æyŸqÌË·/ò™e‹ï²ñclžkð�DGp„ßo°¸ ¿Y…Ê ã1C¹8/·� ´Ž²  ¨=æ ‹aM‡Œ,w®Ñ5µ85ùÊBC ÕøA)ÿ¿É€ ¬v€!AÔ»Iµ8435¦ûm­5â‚S ‚ó£üÙPFÍÊ΂ÃPÖ†- Ž#\—eà (] ÁÑR5G_p“»àèúd.À`ÂÔ˜è6Cù�ÒûS@ tÒQe%ì&Îep¾•”ëÎŒ�/²©o‚dÖ ²Z•úŸÊÙ•  {ºl¥,æ à|êÄÂÙpòʤ٭ÔsÈÁA -À)Áñ2T)ƒ ›â&(Ç’*ò;Á;¿Í”ÀT *ŠªÊQAЕªÝWi cP�]ϸ桢ztĉ­òû­» åÒ¯«E¸V@ùQæx¾Pi‘ Võyª>g: 9[ñ8­R8K;�ZÇ"ªì ò=ÏÅfçäÜúJ.ªW4ÑäT•‡�¨B(³7>Ñ칿’ù @åÓ<@Ö]@5\<¦]—ï¹èrÛ[L•ÊR\(vT%fhÁi]}�ÛãY*Ëp€vã€n™¾è–•JØ0Stpà ª|×�é�£}È6U��ÖÀ‹�ÉÏóDPS�¹Eßj¿€ãçßM¹aٌ䫅«Å£ àb: Vý;5 ZÇp‹ì¨4ªtšP21רrK<°ÒtDTŽæ*Z3×lÀ)L�Á¾7Àî’-^YÖͨÁÐ$q�YAÃÔâªÒ¾ŠÊ”+@yñû%è£Gp\¹kΪÈiÊ™±JiUŠìÈ[õ] /X-Êù0���û&œ‰(ÓR­ZWHUWdi°åÇ`½P>Ýɯ€Y«R}3˜gˆ±›Xe¦nò*ͨ*Á3À¾^ŽVyú^̺Øo‡«<íÖu•UPݸâ”Åó¸ýÊCX²€£¾×ݼ¬è€UçȈº]Ùß @�;º9�÷ÿGßé[m‹Ý¾bF†W•�pm �s�3ì'BXe';�Ô£Nf:GàM`­ðÏp¾WiuKÏ#þ¯\aö¨¬’á?€Õžþì 0cþ|PÒuÁ¡]™¼ê» @m‡OP~ž±øY3åcwµ[uGt³h¬ìÓÏ:Ñ}«ûéìüõL¯sÿ§ ¥•tw²jôM¬–©G.?³ ˜ À™Ge‡TµÂ{XÙ®�#yz€3Uw°² `ö¨lœU¨Ü @u÷0{¸;ܵq'J«µ{SÔ½‚«n›3Ð�d €Ê×o€A  ŒÙcêêZë(õJgÜÕlñ�Â8ëB_RÎLµ¥;7ÅUêØ_”|hÝcê.€Î‹€,¥eÙ€ƒ°Û,ñ¸cöhVSGÞÊÎÿ»²ìp ºë ÙÉÛ�ËO÷æjê¶Õ£sÒÕR¥ùì­2÷¢df)+ØÇì©NvQ1¨:¦:{T^Hœ*—ÌìW¬–ÎØ>�P€³•ÐæIEND®B`‚‰PNG  IHDR@@ªiqÞèIDATxÚÝ[;r[1 Ä‘R¦t™2¥Ë”)u—9‚�”2Çpé2]2O3œ¡!`¹øðIãcËÖ£ˆ%.�¼þzý7ìåòòÁ.?.%ûúåÉýß·§gh¿ÿ¼_ííýïÕÆëñ7ýzüMû mö÷0A¬@@®lvB;¤ß»r*b„Žh¨ØC�¡8Æ™ „ ÿ*ˆÖØ+ç# @ªQÀ®B% <çSX¸’ "áy/f_edàñSƒ�8š$3³µXæç¼cöØ�¢a Ý+´+æyë£ö07x€¬ÈËÙ6æÉ�©PôVËcfšÐè÷Xï×[¡Ã<æ‡Æõ’3›ÍÇG�¨]¤ˆy®t F™V§ó]dªD„˜D”Ix:ûwRñ1¶5©‰ªóÏßÒ¡^½”-èržàp~³ÏÑóÚ€y²«ð_=�˜ÇþT0ƒÇ¬¾ C};ö†ñe"`5®öW,�@é`Œ}¬`dŒä¦É—xäF3¹G£Áx žÍòU¢D‡¥³UeÍ£»3ŵVßâþÈ$²ß;µ¹hžAÛ`•ì Ù íÉ�ÎëÏGäÇË›·°Ú[…švÑëŠ ãÍ]²Þ%oGÕfõÃt(»»"Á›Í]<Q‘Å» ™«z4�J×™¼³ÊÃÒïHÔÎ_™ bSH®òhèLP:Ë\Yç½s–—žÃŸáâVtt‘Ld®P,'Vû;z�pýU!•Ð-!Ö;>!«@xà1Eö3ëú‘Ð æyTgðîÕ<`8عP"dº:º˜ç+g¢áßÅ:�@ /:*«_¡Ãy³¿w;鉨R§³á© DnŒ¬+‘ðÏÐâUQÄËÑ„¹¼™èðGôqòÞy_•ų@+Éîw½‚L£Å£ˆªÂ8Ìp&„gºj�V‘(k™�’upG Gøk5ûFéîÎ*3;�·>sÌ;$‰eKÐÌù|–ä~™#èŒ^¾Ó`dqVÌ›÷A2……løï C‹?§FÛÄøÈ·°ÔOA¾«ËV³\�ºªÙÜ\–ö:D­ßÏê;@§– ¥ÕëµÍ–ÇP+¬w‡XÑã(i»¡ÂÙòr„•nP)Ìf4 ÉVX½É0“XÝ0YÒaeÁƒU—¼–Ö�‘'€U3[ +É•[dЊT4Æ &�¤¢Û.Û@ºM.3+üÏü¶(ì‹2«ß#>³UÖ"•N�.nÐí°öv‹[_‚ÊPÏJtt8>/ªNìÿ+j«P¶1ÒIEND®B`‚‰PNG  IHDR@@ªiqÞžIDATxÚ훽Â0 „óþOÇÈÈØ±c·"TE jÓÇv.É  (à/‰}±Û0ÍËú™¶Çë=¯wíø¼,Ûëœ-ßË–Îøýñ§ä}_2þ™�ŽS  d+[˜úèÅ&hÜ�\Ðí@tôJw=Ïãî�–fÿ?×m6«H:3µcFÐh[¢JEhx5³LYœ€T’ /(^Bh˜,ptè4(R‚‘hëB¨zo9êï”Î8Šö¯Òn±VÀpwŽ"^yêÀû¦(·,À›§•ÔÞ"ݬi ï o0]|÷·`IEND®B`‚‰PNG  IHDR@@ªiqÞˆIDATxÚíÛ=sà `þÿ/똱cÇŒ½µGsäT*Ð+!câhàš6¬'øC@Ó¾ïߥ|Ýå¾=Êís{¾Î¥¼ß*·í·ÔíÐRÚ¤ýÒþë>‘RêäŸ\}®¯RÒYÜ�@øô‚€6@_KÁ[êìÕÓHA78Áò»‡P#k¨ñ´õŸ­!4 ÿ}:íœ;0 ^ `¾€¦Nî°|û+Ð~@/„3ê~@È… l€CX pa€Þù�´‚GhÿG?€@B°´²¸Ñá/!¨�Qààqþ/ Ic­I�€}–¤‡!+=è™!¡31Þô`Ïø3@è W�L�^è–à:׌í·ï‘ÇKõ5í¥Ö £à² €«ÔÜüàY½ÇèS4Á[Z3IÜíÕ€; f´.ÌÜb Úfh“ àuþ[ÒXi5i3æ’4Ï8€fˆ`È4R:Ý[g�#ô(-‡sç,º,ÞËb%„.2‘A´kúuÖ�€t &«<:‘² @+OGlJZ€¾ŸFÜ+x @þ¼túI8S¤,Y}Bg¢K�´SÙèð“6Wqh€^›¥~’а$@o“ÃÛpÈbJÀE�Û õàG6c ´~@@ŒÜ¥½E–F6e!mª¬yüËxçñÃ׺!«÷¶&qÔÖ<^“D!y¼×,Öá––ÐÎäX˜  ™ Ö&1#ô<¬s‘õíûß¿ÍIW¨W¢’fQä•ZKq§ »Q<zk‘?Œ�¥î$GIEND®B`‚‰PNG  IHDR@@ªiqÞCIDATxÚí›1s\! „õÿYJ—)Sºty�3oÞdT=äw±E€ŒŒaÊyF<íêLœ1áE|Y^·fë1+R v��X¿«ÇV?ެ¯ŠaJÝÌèu#Á�_F S DëG'SC&¥¨q,€*ñ³Ý�GÅ«þ©Ô�ìþÚ > @F½ß"²¢0@V½×ÿh»Iƒ -ï¿Ú¿x�jUûl€*°ÓdÙa. ">  é²ÑWØíè©(…Êf‘l·µÍLI�ÀB0t�_á.½>[ew<»ÏO@PŒ¶Û.¿‡–Ó.¡˜Ù] @u™S½Oð*¹ òôQ™£Ò÷CsÀX)#AÑœ¢03ŒíIFxt2]�$¤Ã¬Â·±»sâJ¡8à”xï”w!ÀjÖÏΜ,©#€� í‰ á„ÈD8®8+ñmÅ‚W�*ñGk襊4ÌðF¬,ñ«´ØÌCÎùñÈÕ™]Œ‘qÊÄ釠‘–•vc®ô„(â‘I/ºCdlt¬¢¿§õ~ €*@ÃÞ„c.�`¶~g�d$ÛSY«@Öm�(„åÐï÷W9‚ºó«‚`Jàâ�xï–Ëh«)Œ:'DsˆR¨)OX¹Ã2'¨NŒÿÕ ž ·W0‹•„LJ(ÿ`–3u5ˆ¦º*üÉ)¢£"©®,m³�VR^J£@ߎ±‘SVª+rÉ1‚±ÛÉ ê õŠcuS¶“ÙâQYúöLM*Ü`uõ])ÝO£âw†{³tÕ½Åí‹5ù¡ô¾úP##`26vfžÎ2>»ºñ™u·àÈ»ÁÙÛa{¥ºGúÓYöñ4sç=[Dâ�ö÷í¯Ç™k/¯Ç5 -«BÄ IEND®B`‚ ChaseCameraDaylightCourseFxRunSound^mî=¨¨¸Ðd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`^d^`Z\VXfhbd^`Z\ fhbd^`Z\ fhbd^`Z\ fhbd^`Z\ fhbd^`Z\p­Vfhbd^`Z\^dRT ^`fhZ\ fhZ\ fhZ\ fhZ\ fhVXpiZjlbd npbdZ\bdVXp-^fhZ á _gi[] gi_aq_[] _eWYm$[_ai_giZm[]t`l¿ ^^`h^fhham¾__ei_K]m __am$`l¯b^`h ^^`h ^^`^d^`bd^íhV`l·^_^`bd^`lamª_ e_ace[ace_a_e_[aè_^ ^bdh^Né__ai [i_e(  _a gi_a __a[]À[mZfh_^Z\p  bdZpfh^`fhZ\ fh1 Z\ fhVX bdZpbdjl-VpfhZ\ fhZ\ fhZ\ fhZ\ fhMRT^dZ\^`bdfh%Z\^`bdfhZ\^`bdfhZ\^`bdfhZ\^`bdfhZ\^`bdfhVXZ\^`^d^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`bd^`// psx_blob_shadow.wgsl: the era's shadow, a dark disc under a character or a // vehicle, on a PlaneMesh a few centimetres above the ground (a script // places it on the ground under its owner and tilts it to the ground's // normal). Multiplied over what is below it, in a few hard rings, its // vertices snapped like everything else. // // Notes for Hedra: a Decal does not paint unshaded surfaces, and every // psx_surface is unshaded, hence a mesh; `render_priority` 1 on the // material keeps it after the opaque ground it darkens. shader_type spatial; render_mode skip_vertex_transform, blend_mul, unshaded, depth_draw_never, cull_disabled, fog_disabled, shadows_disabled, specular_disabled; uniform shadow_color: vec3 : source_color = vec3(0.45, 0.48, 0.62); // 0 when the owner is on the ground, towards 1 as it rises (a script or a // binding writes it): the disc fades and shrinks. uniform lift: f32 : hint_range(0.0, 1.0, 0.01) = 0.0; uniform rings: f32 : hint_range(1.0, 8.0, 1.0) = 3.0; uniform snap_resolution: vec2 = vec2(320.0, 240.0); fn vertex() { let shrink = 1.0 - 0.5 * lift; var view_pos = MODELVIEW_MATRIX * vec4(VERTEX * shrink, 1.0); let clip = PROJECTION_MATRIX * view_pos; if (snap_resolution.x > 0.0 && clip.w > 0.0001) { let half_res = snap_resolution * 0.5; let snapped = round(clip.xy / clip.w * half_res) / half_res; let back = INV_PROJECTION_MATRIX * vec4(snapped * clip.w, clip.z, clip.w); view_pos = vec4(back.xyz / back.w, 1.0); } VERTEX = view_pos.xyz; NORMAL = normalize(MODELVIEW_NORMAL_MATRIX * NORMAL); } fn fragment() { let r = length(UV - vec2(0.5)) * 2.0; let ring = floor(clamp(1.0 - r, 0.0, 1.0) * rings + 0.999) / rings; let strength = ring * (1.0 - lift); ALBEDO = mix(vec3(1.0), shadow_color, strength); } // psx_chrome.wgsl: the era's chrome and metal, a reflection map looked up // per VERTEX from the view-space normal (a sphere map, the PlayStation's // "environment mapping" of title logos, cars and sunglasses), so it swims // across large faces as the original did. Pair it with a matcap texture: a // sky band above, a dark horizon line, warm ground below, a hot highlight. // // Notes for Hedra: see psx_surface.wgsl (view-space snapping under // skip_vertex_transform; no noperspective varying, hence uv * w). shader_type spatial; render_mode skip_vertex_transform, unshaded, cull_back, specular_disabled, shadows_disabled; uniform matcap: texture_2d : source_color, filter_nearest, repeat_disable, hint_default_white; uniform tint: vec3 : source_color = vec3(1.0, 1.0, 1.0); // The base texture under the reflection (paint under clear coat, letters). uniform albedo_texture: texture_2d : source_color, filter_nearest, repeat_enable, hint_default_white; uniform reflectivity: f32 : hint_range(0.0, 1.0, 0.01) = 1.0; uniform snap_resolution: vec2 = vec2(320.0, 240.0); varying env_uv: vec4; varying base_uv: vec3; fn vertex() { var view_pos = MODELVIEW_MATRIX * vec4(VERTEX, 1.0); let clip = PROJECTION_MATRIX * view_pos; if (snap_resolution.x > 0.0 && clip.w > 0.0001) { let half_res = snap_resolution * 0.5; let snapped = round(clip.xy / clip.w * half_res) / half_res; let back = INV_PROJECTION_MATRIX * vec4(snapped * clip.w, clip.z, clip.w); view_pos = vec4(back.xyz / back.w, 1.0); } VERTEX = view_pos.xyz; NORMAL = normalize(MODELVIEW_NORMAL_MATRIX * NORMAL); let w = max((PROJECTION_MATRIX * view_pos).w, 0.0001); let m = NORMAL.xy * vec2(0.5, -0.5) + vec2(0.5); env_uv = vec4(m * w, w, 0.0); base_uv = vec3(UV * w, w); } fn fragment() { let env = texture(matcap, env_uv.xy / env_uv.z).rgb * tint; let base = texture(albedo_texture, base_uv.xy / base_uv.z).rgb; ALBEDO = mix(base, env, reflectivity); } // psx_cutout.wgsl: psx_surface with 1-bit transparency, the PlayStation's // "texel colour 0 is transparent" rule, for crossed-quad trees, fences, // railings, banner fringes and anything whose holes are in the texture. // Everything else is psx_surface's (read its notes first). // // What it reproduces, each as a knob (psx-style SKILL.md, "The signature"): // - vertex snapping: every vertex lands on a grid of `snap_resolution` // screen pixels (the GTE had no sub-pixel precision), so the geometry // jitters as the camera moves; // - affine texture mapping: the UV is interpolated in screen space, not in // perspective, so textures swim on large polygons near the camera; // - nearest texels: no filtering, no mipmaps (import the texture with // compress/mode=lossless and mipmaps/generate=false); // - Gouraud shading: the light is worked out per vertex, from one sun, a // hemisphere ambient and an optional baked tint, and interpolated. // // Notes for Hedra (verified with hedra 0.1.0): // - `skip_vertex_transform`: VERTEX arrives in MODEL space and must be left // in VIEW space; NORMAL likewise. Snapping in view space (project, snap, // unproject) keeps the shadow, depth and SSR passes consistent, which // writing POSITION would not. // - The shader's world frame is Z up: a scene vector (x, y, z) is // (x, -z, y) here. `sun_direction` is given in the scene's Y-up frame and // turned by `scene_to_frame` below. // - There is no `noperspective` varying: the affine UV is carried as // (uv * w, w) and divided in fragment(), which undoes the perspective // correction the rasteriser applies; its 4th lane is the affine weight, // faded out near the camera (`affine_near`). // - `unshaded` takes no Decal: a blob shadow is a mesh (psx_blob_shadow). // The engine's depth fog still applies (fog_disabled is not set). shader_type spatial; render_mode skip_vertex_transform, unshaded, cull_disabled, specular_disabled, shadows_disabled; group_uniforms Texture; uniform albedo_texture: texture_2d : source_color, filter_nearest, repeat_enable, hint_default_white; uniform albedo: vec4 : source_color = vec4(1.0, 1.0, 1.0, 1.0); uniform uv_scale: vec2 = vec2(1.0, 1.0); uniform uv_offset: vec2 = vec2(0.0, 0.0); // UV scroll in UV units a second (conveyor belts, flags, water). uniform uv_scroll: vec2 = vec2(0.0, 0.0); // Texels below this alpha are not drawn; there is no partial alpha. uniform alpha_cut: f32 : hint_range(0.0, 1.0, 0.01) = 0.5; group_uniforms Geometry; // The grid vertices snap to, in screen pixels: the internal resolution for // the authentic jitter, half of it for an exaggerated one, 0 to switch off. uniform snap_resolution: vec2 = vec2(320.0, 240.0); // 1 is the PlayStation's screen-linear UV, 0 perspective-correct. Keep 1 // and subdivide large polygons near the camera instead (references/models.md). uniform affine_strength: f32 : hint_range(0.0, 1.0, 0.05) = 1.0; // Vertices nearer the camera than this (metres) fade to perspective-correct // UVs: a triangle crossing the camera's plane has no meaningful affine UV // (the PlayStation culled or subdivided those). uniform affine_near: f32 : hint_range(0.0, 10.0, 0.1) = 1.0; group_uniforms Light; // Towards the sun, in the scene's Y-up frame (normalised here). uniform sun_direction: vec3 = vec3(0.4, 0.6, 0.5); uniform sun_color: vec3 : source_color = vec3(1.0, 0.86, 0.66); // Hemisphere ambient: the sky's colour on faces turned up, the ground's // bounce on faces turned down (on snow the bounce is bright). uniform sky_ambient: vec3 : source_color = vec3(0.42, 0.50, 0.66); uniform ground_ambient: vec3 : source_color = vec3(0.30, 0.30, 0.34); // 0: smooth Gouraud. 2 to 8: the light in that many flat bands. uniform light_bands: f32 : hint_range(0.0, 8.0, 1.0) = 0.0; // Light added regardless of the sun (lit windows, neon, signs). uniform emission: vec3 : source_color = vec3(0.0, 0.0, 0.0); // 1 lets the colour pass 1.0, as the PlayStation's 2x colour modulation did // (a texel at 128 was "white"): bright highlights for the glow to catch. uniform overbright: f32 : hint_range(1.0, 2.0, 0.05) = 1.0; varying affine_uv: vec4; varying gouraud: vec3; fn scene_to_frame(v: vec3) -> vec3 { return vec3(v.x, -v.z, v.y); } fn snap_view(view_pos: vec4) -> vec4 { if (snap_resolution.x <= 0.0) { return view_pos; } let clip = PROJECTION_MATRIX * view_pos; if (clip.w <= 0.0001) { return view_pos; } let half_res = snap_resolution * 0.5; let ndc = clip.xy / clip.w; let snapped = round(ndc * half_res) / half_res; let back = INV_PROJECTION_MATRIX * vec4(snapped * clip.w, clip.z, clip.w); return vec4(back.xyz / back.w, 1.0); } fn vertex() { // Gouraud, in the shader's world frame, from the model's normal. let n = normalize(MODEL_NORMAL_MATRIX * NORMAL); let sun = normalize(scene_to_frame(sun_direction)); var diffuse = max(dot(n, sun), 0.0); if (light_bands >= 2.0) { diffuse = floor(diffuse * light_bands + 0.5) / light_bands; } let ambient = mix(ground_ambient, sky_ambient, n.z * 0.5 + 0.5); gouraud = (ambient + sun_color * diffuse) * COLOR.rgb * overbright + emission; // Snap in view space, then hand the view-space position back. let view_pos = snap_view(MODELVIEW_MATRIX * vec4(VERTEX, 1.0)); VERTEX = view_pos.xyz; NORMAL = normalize(MODELVIEW_NORMAL_MATRIX * NORMAL); let uv = UV * uv_scale + uv_offset + uv_scroll * TIME; UV = uv; let w = (PROJECTION_MATRIX * view_pos).w; let weight = affine_strength * clamp((w - 0.25) / max(affine_near, 0.001), 0.0, 1.0); affine_uv = vec4(uv * w, w, weight); } fn fragment() { let affine = affine_uv.xy / max(affine_uv.z, 0.0001); let uv = mix(UV, affine, clamp(affine_uv.w, 0.0, 1.0)); let texel = texture(albedo_texture, uv); ALBEDO = texel.rgb * albedo.rgb * gouraud; ALPHA = texel.a * albedo.a; ALPHA_SCISSOR_THRESHOLD = alpha_cut; } // psx_present.wgsl: puts the low-resolution picture on the screen the way a // PlayStation's video DAC did. It is the material of one QuadMesh placed in // front of the main camera (assets/scenes/psx_frame.rscn), whose texture // is the ViewportTexture of the SubViewport the game is drawn in. // // - nearest upscale: each low-resolution pixel becomes a crisp block; // - aspect kept: the picture is pillarboxed or letterboxed, optionally to an // integer multiple of its height (pixel-perfect blocks); // - 15-bit colour: each channel truncated to `color_bits` bits after the // PlayStation's own 4 x 4 dither offsets (psx-spx, "GPU Dithering"), // applied in display (sRGB) space, on the low-resolution grid. // // Notes for Hedra (verified with hedra 0.1.0): // - Hedra has no post-process shader and presents a scaled 3D picture // bilinearly; this quad is the post pass. Draw it in a world that holds // nothing else (the game is in the SubViewport's own world), with a // linear tone map (tonemap_mode 0) on both worlds' Environments, so the // colours reach it unchanged and are not tone mapped twice. // - A ViewportTexture in a colour slot is sampled decoded from sRGB: the // values arrive linear, are quantised in sRGB, and leave linear. shader_type spatial; render_mode unshaded, fog_disabled, shadows_disabled, cull_disabled, depth_test_disabled, depth_draw_never, specular_disabled, ambient_light_disabled; uniform screen: texture_2d : source_color, filter_nearest, repeat_disable, hint_default_black; // The SubViewport's size in pixels (its `size`). uniform low_res: vec2 = vec2(320.0, 240.0); // 5 is the PlayStation's 15-bit colour; 8 switches the quantisation off. uniform color_bits: f32 : hint_range(1.0, 8.0, 1.0) = 5.0; // 1 is the PlayStation's dither table; 0 truncates with no dither (banding). uniform dither_strength: f32 : hint_range(0.0, 2.0, 0.05) = 1.0; // 1 scales the picture by a whole number of its pixels when the screen // allows it (each block the same size); 0 fills the height exactly. uniform integer_scale: f32 : hint_range(0.0, 1.0, 1.0) = 0.0; fn psx_encode_srgb(c: vec3) -> vec3 { let lo = c * 12.92; let hi = 1.055 * pow(max(c, vec3(0.0)), vec3(1.0 / 2.4)) - 0.055; return select(hi, lo, c <= vec3(0.0031308)); } fn psx_decode_srgb(c: vec3) -> vec3 { let lo = c / 12.92; let hi = pow((c + 0.055) / 1.055, vec3(2.4)); return select(hi, lo, c <= vec3(0.04045)); } fn vertex() { // A 1 x 1 QuadMesh, its corners at +-0.5, stretched over the screen // with the low-resolution picture's aspect. let target_aspect = low_res.x / low_res.y; let view_aspect = VIEWPORT_SIZE.x / max(VIEWPORT_SIZE.y, 1.0); var extent = vec2(1.0, 1.0); if (view_aspect > target_aspect) { extent.x = target_aspect / view_aspect; } else { extent.y = view_aspect / target_aspect; } if (integer_scale > 0.5) { let shown = extent.y * VIEWPORT_SIZE.y; let whole = floor(shown / low_res.y); if (whole >= 1.0) { extent = extent * (whole * low_res.y / shown); } } POSITION = vec4(VERTEX.xy * 2.0 * extent, 0.5, 1.0); } fn fragment() { let px = floor(UV * low_res); let c = texture(screen, (px + 0.5) / low_res).rgb; // The PlayStation's dither offsets, in 8-bit steps, for x % 4 and y % 4. var table = array( -4.0, 0.0, -3.0, 1.0, 2.0, -2.0, 3.0, -1.0, -3.0, 1.0, -4.0, 0.0, 3.0, -1.0, 2.0, -2.0); let ix = u32(px.x) % 4u; let iy = u32(px.y) % 4u; let offset = table[iy * 4u + ix] * dither_strength; let step = exp2(8.0 - color_bits); let v8 = clamp(psx_encode_srgb(c) * 255.0 + offset, vec3(0.0), vec3(255.0)); let q = floor(v8 / step) * step / 255.0; ALBEDO = psx_decode_srgb(q); } // psx_sky.wgsl: a PlayStation sky, the material of a large inverted sphere // (or a SphereMesh with flip_faces) centred on the camera each frame. A // vertical gradient in a few hard bands, a sun disc with a halo, and an // optional horizon strip (mountains, a skyline) sampled by azimuth with // nearest texels and 1-bit alpha, as the era's skies were: a painted // backdrop, not a physical sky. // // Notes for Hedra (verified with hedra 0.1.0): // - world_vertex_coords puts VERTEX in the shader's world frame, which is // Z up (scene (x, y, z) is (x, -z, y) here); `sun_direction` is given in // the scene's Y-up frame and turned by scene_to_frame. // - Draw it unshaded, unfogged, without depth writes: the Environment's // depth fog colour should equal `horizon` so far geometry melts into it. shader_type spatial; render_mode world_vertex_coords, unshaded, cull_front, depth_draw_never, fog_disabled, shadows_disabled, specular_disabled; group_uniforms Gradient; uniform zenith: vec3 : source_color = vec3(0.24, 0.40, 0.78); uniform horizon: vec3 : source_color = vec3(0.80, 0.86, 0.96); uniform below: vec3 : source_color = vec3(0.80, 0.86, 0.96); // The gradient in this many flat bands (0: smooth; the present pass // dithers it either way). uniform bands: f32 : hint_range(0.0, 32.0, 1.0) = 12.0; // Bends the gradient towards the horizon (1 linear, above 1 a thinner haze). uniform curve: f32 : hint_range(0.2, 4.0, 0.05) = 1.6; group_uniforms Sun; uniform sun_direction: vec3 = vec3(0.4, 0.25, 0.5); uniform sun_color: vec3 : source_color = vec3(1.0, 0.92, 0.70); // Angular radius of the disc and of the halo, in degrees. uniform sun_size: f32 : hint_range(0.1, 10.0, 0.1) = 2.2; uniform halo_size: f32 : hint_range(0.0, 60.0, 0.5) = 18.0; uniform halo_strength: f32 : hint_range(0.0, 2.0, 0.05) = 0.6; group_uniforms Horizon; // A strip wrapped round the horizon (u: azimuth, v: up), alpha cut out. uniform horizon_texture: texture_2d : source_color, filter_nearest, repeat_enable, hint_default_transparent; // How many times the strip wraps round, and the band of elevation it // covers, in degrees (bottom, top). uniform horizon_repeat: f32 = 2.0; uniform horizon_band: vec2 = vec2(-2.0, 14.0); uniform horizon_tint: vec3 : source_color = vec3(1.0, 1.0, 1.0); varying dir: vec3; fn scene_to_frame(v: vec3) -> vec3 { return vec3(v.x, -v.z, v.y); } fn vertex() { dir = VERTEX - NODE_POSITION_WORLD; } fn fragment() { let d = normalize(dir); let up = d.z; var t = pow(clamp(up, 0.0, 1.0), 1.0 / curve); if (bands >= 2.0) { t = floor(t * bands) / bands; } var col = mix(horizon, zenith, t); if (up < 0.0) { col = mix(horizon, below, clamp(-up * 8.0, 0.0, 1.0)); } let sun = normalize(scene_to_frame(sun_direction)); let angle = degrees(acos(clamp(dot(d, sun), -1.0, 1.0))); let halo = halo_strength * pow(clamp(1.0 - angle / max(halo_size, 0.001), 0.0, 1.0), 2.0); col = col + sun_color * halo; if (angle < sun_size) { col = sun_color * 1.4; } let elevation = degrees(asin(clamp(up, -1.0, 1.0))); let v = (elevation - horizon_band.x) / max(horizon_band.y - horizon_band.x, 0.001); let u = (atan2(d.y, d.x) / TAU + 0.5) * horizon_repeat; let strip = texture(horizon_texture, vec2(u, 1.0 - clamp(v, 0.0, 1.0))); if (v >= 0.0 && v <= 1.0 && strip.a >= 0.5) { col = strip.rgb * horizon_tint; } ALBEDO = col; } // psx_sprite.wgsl: camera-facing sprites for CPUParticles3D (snow spray, // powder puffs, sparks, confetti), turned in the vertex stage, with a // flipbook and 1-bit alpha. The mesh is the emitter's QuadMesh (1 x 1); // the particle's scale is its transform's. // // Notes for Hedra (verified with hedra 0.1.0): // - A ShaderMaterial is not turned by billboard_mode (only a // StandardMaterial3D's is), so the quad is turned here: its corners are // laid out in view space around the particle's centre. // - There is no flipbook (anim_speed / hframes are not in the format) and // no particle age in a shader. The age rides in COLOR.a: give the // emitter a color_ramp whose alpha falls from 1 at birth to 0 at death; // the frame is chosen from it and the sprite's own alpha is the // texture's (cut at 0.5). shader_type spatial; render_mode skip_vertex_transform, unshaded, cull_disabled, specular_disabled, shadows_disabled; uniform sprite_sheet: texture_2d : source_color, filter_nearest, repeat_disable, hint_default_white; // Frames in the sheet, left to right then top to bottom. uniform frames_x: f32 = 4.0; uniform frames_y: f32 = 1.0; uniform tint: vec3 : source_color = vec3(1.0, 1.0, 1.0); uniform alpha_cut: f32 : hint_range(0.0, 1.0, 0.01) = 0.5; uniform snap_resolution: vec2 = vec2(320.0, 240.0); varying frame_uv: vec2; fn vertex() { let scale = length(MODEL_MATRIX[0].xyz); var view_pos = MODELVIEW_MATRIX * vec4(0.0, 0.0, 0.0, 1.0); view_pos = vec4(view_pos.xyz + vec3(VERTEX.xy * scale, 0.0), 1.0); let clip = PROJECTION_MATRIX * view_pos; if (snap_resolution.x > 0.0 && clip.w > 0.0001) { let half_res = snap_resolution * 0.5; let snapped = round(clip.xy / clip.w * half_res) / half_res; let back = INV_PROJECTION_MATRIX * vec4(snapped * clip.w, clip.z, clip.w); view_pos = vec4(back.xyz / back.w, 1.0); } VERTEX = view_pos.xyz; NORMAL = vec3(0.0, 0.0, 1.0); let count = max(frames_x * frames_y, 1.0); let frame = min(floor((1.0 - clamp(COLOR.a, 0.0, 1.0)) * count), count - 1.0); let cell = vec2(frame % frames_x, floor(frame / frames_x)); frame_uv = (cell + UV) / vec2(frames_x, frames_y); } fn fragment() { let texel = texture(sprite_sheet, frame_uv); ALBEDO = texel.rgb * tint * COLOR.rgb; ALPHA = texel.a; ALPHA_SCISSOR_THRESHOLD = alpha_cut; } // psx_surface.wgsl: the PlayStation surface, for every opaque mesh of a PSX // scene (terrain, props, buildings, the characters' parts). // // What it reproduces, each as a knob (psx-style SKILL.md, "The signature"): // - vertex snapping: every vertex lands on a grid of `snap_resolution` // screen pixels (the GTE had no sub-pixel precision), so the geometry // jitters as the camera moves; // - affine texture mapping: the UV is interpolated in screen space, not in // perspective, so textures swim on large polygons near the camera; // - nearest texels: no filtering, no mipmaps (import the texture with // compress/mode=lossless and mipmaps/generate=false); // - Gouraud shading: the light is worked out per vertex, from one sun, a // hemisphere ambient and an optional baked tint, and interpolated. // // Notes for Hedra (verified with hedra 0.1.0): // - `skip_vertex_transform`: VERTEX arrives in MODEL space and must be left // in VIEW space; NORMAL likewise. Snapping in view space (project, snap, // unproject) keeps the shadow, depth and SSR passes consistent, which // writing POSITION would not. // - The shader's world frame is Z up: a scene vector (x, y, z) is // (x, -z, y) here. `sun_direction` is given in the scene's Y-up frame and // turned by `scene_to_frame` below. // - There is no `noperspective` varying: the affine UV is carried as // (uv * w, w) and divided in fragment(), which undoes the perspective // correction the rasteriser applies; its 4th lane is the affine weight, // faded out near the camera (`affine_near`). // - `unshaded` takes no Decal: a blob shadow is a mesh (psx_blob_shadow). // The engine's depth fog still applies (fog_disabled is not set). shader_type spatial; render_mode skip_vertex_transform, unshaded, cull_back, specular_disabled, shadows_disabled; group_uniforms Texture; uniform albedo_texture: texture_2d : source_color, filter_nearest, repeat_enable, hint_default_white; uniform albedo: vec4 : source_color = vec4(1.0, 1.0, 1.0, 1.0); uniform uv_scale: vec2 = vec2(1.0, 1.0); uniform uv_offset: vec2 = vec2(0.0, 0.0); // UV scroll in UV units a second (conveyor belts, flags, water). uniform uv_scroll: vec2 = vec2(0.0, 0.0); group_uniforms Geometry; // The grid vertices snap to, in screen pixels: the internal resolution for // the authentic jitter, half of it for an exaggerated one, 0 to switch off. uniform snap_resolution: vec2 = vec2(320.0, 240.0); // 1 is the PlayStation's screen-linear UV, 0 perspective-correct. Keep 1 // and subdivide large polygons near the camera instead (references/models.md). uniform affine_strength: f32 : hint_range(0.0, 1.0, 0.05) = 1.0; // Vertices nearer the camera than this (metres) fade to perspective-correct // UVs: a triangle crossing the camera's plane has no meaningful affine UV // (the PlayStation culled or subdivided those). uniform affine_near: f32 : hint_range(0.0, 10.0, 0.1) = 1.0; group_uniforms Light; // Towards the sun, in the scene's Y-up frame (normalised here). uniform sun_direction: vec3 = vec3(0.4, 0.6, 0.5); uniform sun_color: vec3 : source_color = vec3(1.0, 0.86, 0.66); // Hemisphere ambient: the sky's colour on faces turned up, the ground's // bounce on faces turned down (on snow the bounce is bright). uniform sky_ambient: vec3 : source_color = vec3(0.42, 0.50, 0.66); uniform ground_ambient: vec3 : source_color = vec3(0.30, 0.30, 0.34); // 0: smooth Gouraud. 2 to 8: the light in that many flat bands. uniform light_bands: f32 : hint_range(0.0, 8.0, 1.0) = 0.0; // Light added regardless of the sun (lit windows, neon, signs). uniform emission: vec3 : source_color = vec3(0.0, 0.0, 0.0); // 1 lets the colour pass 1.0, as the PlayStation's 2x colour modulation did // (a texel at 128 was "white"): bright highlights for the glow to catch. uniform overbright: f32 : hint_range(1.0, 2.0, 0.05) = 1.0; group_uniforms Transparency; // The era's translucency for a solid object (a ghost, a respawn blink): a // screen-door pattern of whole low-resolution pixels left out. 0 draws // everything, 0.25, 0.5 and 0.75 leave out that share of a 2 x 2 pattern, // 1 draws nothing. The object stays opaque (no blending, no sorting). uniform screen_door: f32 : hint_range(0.0, 1.0, 0.25) = 0.0; varying affine_uv: vec4; varying gouraud: vec3; fn scene_to_frame(v: vec3) -> vec3 { return vec3(v.x, -v.z, v.y); } fn snap_view(view_pos: vec4) -> vec4 { if (snap_resolution.x <= 0.0) { return view_pos; } let clip = PROJECTION_MATRIX * view_pos; if (clip.w <= 0.0001) { return view_pos; } let half_res = snap_resolution * 0.5; let ndc = clip.xy / clip.w; let snapped = round(ndc * half_res) / half_res; let back = INV_PROJECTION_MATRIX * vec4(snapped * clip.w, clip.z, clip.w); return vec4(back.xyz / back.w, 1.0); } fn vertex() { // Gouraud, in the shader's world frame, from the model's normal. let n = normalize(MODEL_NORMAL_MATRIX * NORMAL); let sun = normalize(scene_to_frame(sun_direction)); var diffuse = max(dot(n, sun), 0.0); if (light_bands >= 2.0) { diffuse = floor(diffuse * light_bands + 0.5) / light_bands; } let ambient = mix(ground_ambient, sky_ambient, n.z * 0.5 + 0.5); gouraud = (ambient + sun_color * diffuse) * COLOR.rgb * overbright + emission; // Snap in view space, then hand the view-space position back. let view_pos = snap_view(MODELVIEW_MATRIX * vec4(VERTEX, 1.0)); VERTEX = view_pos.xyz; NORMAL = normalize(MODELVIEW_NORMAL_MATRIX * NORMAL); let uv = UV * uv_scale + uv_offset + uv_scroll * TIME; UV = uv; let w = (PROJECTION_MATRIX * view_pos).w; let weight = affine_strength * clamp((w - 0.25) / max(affine_near, 0.001), 0.0, 1.0); affine_uv = vec4(uv * w, w, weight); } fn fragment() { if (screen_door > 0.0) { // A 2 x 2 Bayer order: the cells are left out in the order 0 to 3. var order = array(0.0, 2.0, 3.0, 1.0); let cell = vec2(FRAGCOORD.xy) % vec2(2u, 2u); if (order[cell.y * 2u + cell.x] < screen_door * 4.0 - 0.001) { discard; } } let affine = affine_uv.xy / max(affine_uv.z, 0.0001); let uv = mix(UV, affine, clamp(affine_uv.w, 0.0, 1.0)); let texel = texture(albedo_texture, uv); ALBEDO = texel.rgb * albedo.rgb * gouraud; } ‰Ëhedra:avalanche.rmljÔÀ¢9 ‰Ëhedra:world/course/course.rscnjÔ¤¨ ExtResource("1_surface") Color(0.66, 0.97, 0.19, 1) 1.2 Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_arches") 1.3 Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_banners") Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_bark") Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_box") Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_building") Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("2_cutout") ExtResource("tex_crowd") Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_snow_powder") Color(0.9, 0.92, 1, 1) Vector2(1, 1) Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("2_cutout") ExtResource("tex_fence") Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_snow_groomed") Vector2(0.33333, 0.33333) Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_ice") Vector2(0.125, 0.125) Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_lift") Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_arches") Color(0.45, 0.2, 0.35, 1) 1.6 Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_snow_packed") 1.1 Vector2(0.33333, 0.33333) Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("2_cutout") ExtResource("tex_pine_a") Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("2_cutout") ExtResource("tex_pine_b") Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_pine_cone") Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("1_surface") ExtResource("tex_snow_powder") Vector2(0.25, 0.25) Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("3_chrome") ExtResource("tex_chrome_matcap") Color(0.97, 0.45, 0.75, 1) 0.85 ExtResource("1_surface") ExtResource("tex_rock") Vector2(0.25, 0.25) Vector3(-0.5064, 0.4695, -0.7233) Color(0.778, 0.7027, 0.5271, 1) Color(0.5333, 0.5961, 0.7843, 1) Color(0.6902, 0.7216, 0.8157, 1) ExtResource("4_sky") Color(0.2824, 0.4392, 0.7843, 1) Color(0.7843, 0.8471, 0.9412, 1) Color(0.7843, 0.8471, 0.9412, 1) 10 Vector3(-0.5064, 0.4695, -0.7233) Color(0.9725, 0.8784, 0.6588, 1) 3.0 ExtResource("tex_mountains") 3 Vector2(-2, 7) Color(0.86, 0.9, 1, 1) 180 360 24 12 SubResource("Mat_sky") 1 Color(0.7843, 0.8471, 0.9412, 1) 0 true 1 Color(0.7843, 0.8471, 0.9412, 1) 35 140 1.0 true 1.0 1.0 0.0 0.0 1.0 0.6 Vector2(0.01, 0.01) Vector3(0, 0.5, 0) SubResource("Mat_pine_a") Vector3(0, 0.5, 0) SubResource("Mat_pine_b") 1 96 SubResource("Mesh_pine_a") PackedFloat32Array(3.133, 0, 0.498, -44.843, 0, 7.025, 0, 2.763, -1.799, 0, 0.867, -25.967, -1.799, 0, 0.867, -44.843, 0, 7.025, 0, 2.763, -3.133, 0, -0.498, -25.967, 0.103, 0, 1, 19.852, 0, 6.65, 0, -20.866, -3.419, 0, 0.03, -82.384, -3.419, 0, 0.03, 19.852, 0, 6.65, 0, -20.866, -0.103, 0, -1, -82.384, 0.743, 0, 0.97, -45.643, 0, 5.953, 0, 8.04, -2.97, 0, 0.243, 17.309, -2.97, 0, 0.243, -45.643, 0, 5.953, 0, 8.04, -0.743, 0, -0.97, 17.309, -2.627, 0, 0.872, 32.7, 0, 11.075, 0, -19.124, -4.675, 0, -0.49, -85.959, -4.675, 0, -0.49, 32.7, 0, 11.075, 0, -19.124, 2.627, 0, -0.872, -85.959, 4.929, 0, 0.543, 29.268, 0, 12.576, 0, -20.431, -3.186, 0, 0.84, -89.045, -3.186, 0, 0.84, 29.268, 0, 12.576, 0, -20.431, -4.929, 0, -0.543, -89.045, 3.992, 0, 0.069, 24.139, 0, 7.781, 0, -0.362, -0.276, 0, 0.998, -22.375, -0.276, 0, 0.998, 24.139, 0, 7.781, 0, -0.362, -3.992, 0, -0.069, -22.375, 3.191, 0, 0.369, 32.969, 0, 6.676, 0, -22.184, -1.266, 0, 0.93, -102.34, -1.266, 0, 0.93, 32.969, 0, 6.676, 0, -22.184, -3.191, 0, -0.369, -102.34, -3.455, 0, 0.343, -27.489, 0, 7.151, 0, 4.274, -1.262, 0, -0.939, 13.059, -1.262, 0, -0.939, -27.489, 0, 7.151, 0, 4.274, 3.455, 0, -0.343, 13.059, -3.347, 0, 0.571, -48.376, 0, 7.927, 0, -0.023, -2.327, 0, -0.821, -34.114, -2.327, 0, -0.821, -48.376, 0, 7.927, 0, -0.023, 3.347, 0, -0.571, -34.114, 1.721, 0, 0.915, -10.779, 0, 8.313, 0, 0.224, -3.913, 0, 0.403, 5.389, -3.913, 0, 0.403, -10.779, 0, 8.313, 0, 0.224, -1.721, 0, -0.915, 5.389, -4.734, 0, 0.105, -43.48, 0, 10.201, 0, -10.612, -0.498, 0, -0.995, -69.951, -0.498, 0, -0.995, -43.48, 0, 10.201, 0, -10.612, 4.734, 0, -0.105, -69.951, -3.257, 0, 0.643, 13.996, 0, 8.782, 0, -2.869, -2.734, 0, -0.766, -22.11, -2.734, 0, -0.766, 13.996, 0, 8.782, 0, -2.869, 3.257, 0, -0.643, -22.11, 5.414, 0, 0.451, 18.01, 0, 12.996, 0, -14.536, -2.734, 0, 0.893, -55.412, -2.734, 0, 0.893, 18.01, 0, 12.996, 0, -14.536, -5.414, 0, -0.451, -55.412, -0.022, 0, 1, -11.669, 0, 10.05, 0, -0.514, -4.866, 0, -0.004, -9.884, -4.866, 0, -0.004, -11.669, 0, 10.05, 0, -0.514, 0.022, 0, -1, -9.884, 1.47, 0, 0.96, 21.903, 0, 10.804, 0, -18.801, -5.021, 0, 0.281, -75.751, -5.021, 0, 0.281, 21.903, 0, 10.804, 0, -18.801, -1.47, 0, -0.96, -75.751, -2.3, 0, 0.927, 42.602, 0, 13.112, 0, 8.54, -5.671, 0, -0.376, 2.713, -5.671, 0, -0.376, 42.602, 0, 13.112, 0, 8.54, 2.3, 0, -0.927, 2.713, 3.843, 0, 0.229, 36.276, 0, 8.153, 0, 7.026, -0.905, 0, 0.973, 1.839, -0.905, 0, 0.973, 36.276, 0, 8.153, 0, 7.026, -3.843, 0, -0.229, 1.839, -4.38, 0, 0.524, 42.266, 0, 10.622, 0, -6.024, -2.697, 0, -0.852, -44.507, -2.697, 0, -0.852, 42.266, 0, 10.622, 0, -6.024, 4.38, 0, -0.524, -44.507, -4.251, 0, 0.725, 33.668, 0, 13.233, 0, -17.004, -4.48, 0, -0.688, -75.616, -4.48, 0, -0.688, 33.668, 0, 13.233, 0, -17.004, 4.251, 0, -0.725, -75.616, 1.861, 0, 0.899, -21.272, 0, 8.252, 0, -22.857, -3.814, 0, 0.438, -92.857, -3.814, 0, 0.438, -21.272, 0, 8.252, 0, -22.857, -1.861, 0, -0.899, -92.857, -5.575, 0, 0.151, 61.318, 0, 11.648, 0, -11.231, -0.85, 0, -0.989, -79.243, -0.85, 0, -0.989, 61.318, 0, 11.648, 0, -11.231, 5.575, 0, -0.151, -79.243, 3.395, 0, 0.216, 21.187, 0, 6.761, 0, -27.825, -0.749, 0, 0.977, -109.382, -0.749, 0, 0.977, 21.187, 0, 6.761, 0, -27.825, -3.395, 0, -0.216, -109.382, -0.641, 0, 0.987, -59.847, 0, 8.211, 0, -8.549, -3.924, 0, -0.161, -72.541, -3.924, 0, -0.161, -59.847, 0, 8.211, 0, -8.549, 0.641, 0, -0.987, -72.541, -3.814, 0, 0.607, 24.581, 0, 9.916, 0, 1.445, -2.916, 0, -0.794, -18.109, -2.916, 0, -0.794, 24.581, 0, 9.916, 0, 1.445, 3.814, 0, -0.607, -18.109, -2.697, 0, 0.497, -20.405, 0, 6.044, 0, -1.029, -1.544, 0, -0.868, -22.247, -1.544, 0, -0.868, -20.405, 0, 6.044, 0, -1.029, 2.697, 0, -0.497, -22.247, -2.902, 0, 0.726, 19.747, 0, 8.712, 0, 3.003, -3.062, 0, -0.688, 10.799, -3.062, 0, -0.688, 19.747, 0, 8.712, 0, 3.003, 2.902, 0, -0.726, 10.799, 5.064, 0, 0.069, -33.303, 0, 10.877, 0, -9.775, -0.35, 0, 0.998, -52.197, -0.35, 0, 0.998, -33.303, 0, 10.877, 0, -9.775, -5.064, 0, -0.069, -52.197, -6.486, 0, 0.137, 31.471, 0, 14.03, 0, -24.531, -0.894, 0, -0.991, -109.574, -0.894, 0, -0.991, 31.471, 0, 14.03, 0, -24.531, 6.486, 0, -0.137, -109.574, 3.31, 0, 0.243, 21.811, 0, 6.634, 0, -15.331, -0.827, 0, 0.97, -61.612, -0.827, 0, 0.97, 21.811, 0, 6.634, 0, -15.331, -3.31, 0, -0.243, -61.612, 4.337, 0, 0.597, -25.413, 0, 11.169, 0, -26.256, -3.23, 0, 0.802, -109.295, -3.23, 0, 0.802, -25.413, 0, 11.169, 0, -26.256, -4.337, 0, -0.597, -109.295, 2.114, 0, 0.908, -54.618, 0, 10.446, 0, -6.236, -4.595, 0, 0.418, -59.538, -4.595, 0, 0.418, -54.618, 0, 10.446, 0, -6.236, -2.114, 0, -0.908, -59.538, 1.743, 0, 0.897, 15.691, 0, 7.666, 0, 1.821, -3.537, 0, 0.442, 25.289, -3.537, 0, 0.442, 15.691, 0, 7.666, 0, 1.821, -1.743, 0, -0.897, 25.289, 4.521, 0, 0.179, -54.066, 0, 9.491, 0, -4.188, -0.824, 0, 0.984, -49.938, -0.824, 0, 0.984, -54.066, 0, 9.491, 0, -4.188, -4.521, 0, -0.179, -49.938, -5.397, 0, 0.605, -21.59, 0, 14.528, 0, -17.89, -4.103, 0, -0.796, -74.847, -4.103, 0, -0.796, -21.59, 0, 14.528, 0, -17.89, 5.397, 0, -0.605, -74.847, -5.82, 0, 0.272, -33.48, 0, 12.96, 0, -25.843, -1.644, 0, -0.962, -112.341, -1.644, 0, -0.962, -33.48, 0, 12.96, 0, -25.843, 5.82, 0, -0.272, -112.341, -3.664, 0, 0.28, 30.955, 0, 7.421, 0, -15.698, -1.067, 0, -0.96, -67.703, -1.067, 0, -0.96, 30.955, 0, 7.421, 0, -15.698, 3.664, 0, -0.28, -67.703, 4.328, 0, 0.467, 45.615, 0, 10.489, 0, 9.239, -2.285, 0, 0.884, 20.725, -2.285, 0, 0.884, 45.615, 0, 10.489, 0, 9.239, -4.328, 0, -0.467, 20.725, -3.669, 0, 0.226, -19.779, 0, 7.323, 0, -11.704, -0.852, 0, -0.974, -47.101, -0.852, 0, -0.974, -19.779, 0, 7.323, 0, -11.704, 3.669, 0, -0.226, -47.101, 3.055, 0, 0.82, -59.662, 0, 11.014, 0, -10.457, -4.371, 0, 0.573, -80.17, -4.371, 0, 0.573, -59.662, 0, 11.014, 0, -10.457, -3.055, 0, -0.82, -80.17, -0.05, 0, 1, 45.533, 0, 11.969, 0, -12.662, -5.585, 0, -0.009, -68.443, -5.585, 0, -0.009, 45.533, 0, 11.969, 0, -12.662, 0.05, 0, -1, -68.443, -3.903, 0, 0.152, -25.27, 0, 8.155, 0, -20.623, -0.6, 0, -0.988, -88.333, -0.6, 0, -0.988, -25.27, 0, 8.155, 0, -20.623, 3.903, 0, -0.152, -88.333, -3.675, 0, 0.362, 38.648, 0, 7.667, 0, 6.396, -1.429, 0, -0.932, -9.84, -1.429, 0, -0.932, 38.648, 0, 7.667, 0, 6.396, 3.675, 0, -0.362, -9.84, -3.917, 0, 0.612, -29.921, 0, 10.233, 0, -0.871, -3.035, 0, -0.79, -28.8, -3.035, 0, -0.79, -29.921, 0, 10.233, 0, -0.871, 3.917, 0, -0.612, -28.8, -2.274, 0, 0.851, 20.453, 0, 8.951, 0, -13.045, -3.69, 0, -0.525, -51.248, -3.69, 0, -0.525, 20.453, 0, 8.951, 0, -13.045, 2.274, 0, -0.851, -51.248, -3.491, 0, 0.222, 33.721, 0, 6.962, 0, -7.531, -0.795, 0, -0.975, -43.11, -0.795, 0, -0.975, 33.721, 0, 6.962, 0, -7.531, 3.491, 0, -0.222, -43.11, 0.827, 0, 0.988, -9.895, 0, 10.899, 0, -4.272, -5.212, 0, 0.157, -22.438, -5.212, 0, 0.157, -9.895, 0, 10.899, 0, -4.272, -0.827, 0, -0.988, -22.438, -5.292, 0, 0.187, 44.428, 0, 11.125, 0, -9.454, -1.006, 0, -0.982, -57.331, -1.006, 0, -0.982, 44.428, 0, 11.125, 0, -9.454, 5.292, 0, -0.187, -57.331, 1.886, 0, 0.902, 39.075, 0, 9.013, 0, 3.97, -3.935, 0, 0.432, -19.292, -3.935, 0, 0.432, 39.075, 0, 9.013, 0, 3.97, -1.886, 0, -0.902, -19.292) 1 96 SubResource("Mesh_pine_b") PackedFloat32Array(4.374, 0, 0.528, 11.843, 0, 10.636, 0, -7.17, -2.719, 0, 0.849, -31.316, -2.719, 0, 0.849, 11.843, 0, 10.636, 0, -7.17, -4.374, 0, -0.528, -31.316, -0.096, 0, 1, -45.396, 0, 8.624, 0, -17.33, -4.434, 0, -0.022, -94.312, -4.434, 0, -0.022, -45.396, 0, 8.624, 0, -17.33, 0.096, 0, -1, -94.312, 4.135, 0, 0.067, 24.538, 0, 8.559, 0, -7.545, -0.278, 0, 0.998, -38.773, -0.278, 0, 0.998, 24.538, 0, 8.559, 0, -7.545, -4.135, 0, -0.067, -38.773, -2.86, 0, 0.79, -52.375, 0, 9.636, 0, -15.652, -3.686, 0, -0.613, -95.049, -3.686, 0, -0.613, -52.375, 0, 9.636, 0, -15.652, 2.86, 0, -0.79, -95.049, 4.952, 0, 0.243, -38.781, 0, 10.545, 0, 5.224, -1.242, 0, 0.97, -14.581, -1.242, 0, 0.97, -38.781, 0, 10.545, 0, 5.224, -4.952, 0, -0.243, -14.581, -1.861, 0, 0.933, 56.736, 0, 11.055, 0, -4.537, -4.812, 0, -0.361, -52.289, -4.812, 0, -0.361, 56.736, 0, 11.055, 0, -4.537, 1.861, 0, -0.933, -52.289, 2.044, 0, 0.831, -20.126, 0, 7.146, 0, -16.728, -3.054, 0, 0.556, -67.876, -3.054, 0, 0.556, -20.126, 0, 7.146, 0, -16.728, -2.044, 0, -0.831, -67.876, -3.002, 0, 0.848, 54.428, 0, 12.147, 0, -19.221, -4.808, 0, -0.53, -108.747, -4.808, 0, -0.53, 54.428, 0, 12.147, 0, -19.221, 3.002, 0, -0.848, -108.747, -3.332, 0, 0.001, 30.478, 0, 6.48, 0, 5.671, -0.005, 0, -1, 21.024, -0.005, 0, -1, 30.478, 0, 6.48, 0, 5.671, 3.332, 0, -0.001, 21.024, -4.344, 0, 0.526, -26.11, 0, 10.946, 0, -7.92, -2.688, 0, -0.85, -42.066, -2.688, 0, -0.85, -26.11, 0, 10.946, 0, -7.92, 4.344, 0, -0.526, -42.066, -2.705, 0, 0.5, 55.001, 0, 6.075, 0, -15.986, -1.563, 0, -0.866, -94.035, -1.563, 0, -0.866, 55.001, 0, 6.075, 0, -15.986, 2.705, 0, -0.5, -94.035, -3.811, 0, 0.487, -18.519, 0, 9.009, 0, -14.153, -2.122, 0, -0.874, -54.757, -2.122, 0, -0.874, -18.519, 0, 9.009, 0, -14.153, 3.811, 0, -0.487, -54.757, -2.989, 0, 0.894, -15.637, 0, 14.293, 0, -3.492, -5.963, 0, -0.448, -25.271, -5.963, 0, -0.448, -15.637, 0, 14.293, 0, -3.492, 2.989, 0, -0.894, -25.271, -4.332, 0, 0.191, -28.399, 0, 9.115, 0, 0.838, -0.843, 0, -0.982, -22.493, -0.843, 0, -0.982, -28.399, 0, 9.115, 0, 0.838, 4.332, 0, -0.191, -22.493, 4.862, 0, 0.707, -16.366, 0, 14.726, 0, -26.273, -4.857, 0, 0.708, -102.506, -4.857, 0, 0.708, -16.366, 0, 14.726, 0, -26.273, -4.862, 0, -0.707, -102.506, 0.892, 0, 0.961, 24.265, 0, 6.257, 0, -19.323, -3.091, 0, 0.277, -79.964, -3.091, 0, 0.277, 24.265, 0, 6.257, 0, -19.323, -0.892, 0, -0.961, -79.964, -2.871, 0, 0.745, -17.812, 0, 8.375, 0, -22.306, -3.211, 0, -0.667, -86.865, -3.211, 0, -0.667, -17.812, 0, 8.375, 0, -22.306, 2.871, 0, -0.745, -86.865, 2.305, 0, 0.801, 41.853, 0, 7.488, 0, 7.562, -3.085, 0, 0.599, -6.808, -3.085, 0, 0.599, 41.853, 0, 7.488, 0, 7.562, -2.305, 0, -0.801, -6.808, -1.567, 0, 0.917, -26.854, 0, 8.132, 0, 4.14, -3.612, 0, -0.398, 4.095, -3.612, 0, -0.398, -26.854, 0, 8.132, 0, 4.14, 1.567, 0, -0.917, 4.095, 4.283, 0, 0.013, 25.213, 0, 8.329, 0, 3.881, -0.055, 0, 1, -5.057, -0.055, 0, 1, 25.213, 0, 8.329, 0, 3.881, -4.283, 0, -0.013, -5.057, -4.59, 0, 0.65, 21.914, 0, 12.943, 0, -10.958, -3.926, 0, -0.76, -45.163, -3.926, 0, -0.76, 21.914, 0, 12.943, 0, -10.958, 4.59, 0, -0.65, -45.163, -1.889, 0, 0.921, 48.124, 0, 10.034, 0, -14.462, -4.476, 0, -0.389, -78.11, -4.476, 0, -0.389, 48.124, 0, 10.034, 0, -14.462, 1.889, 0, -0.921, -78.11, 4.551, 0, 0.688, 17.554, 0, 13.435, 0, 2.28, -4.312, 0, 0.726, -1.712, -4.312, 0, 0.726, 17.554, 0, 13.435, 0, 2.28, -4.551, 0, -0.688, -1.712, -1.687, 0, 0.95, 20.016, 0, 11.563, 0, -26.764, -5.126, 0, -0.313, -104.575, -5.126, 0, -0.313, 20.016, 0, 11.563, 0, -26.764, 1.687, 0, -0.95, -104.575, 0.7, 0, 0.985, -16.147, 0, 8.306, 0, -1.46, -3.96, 0, 0.174, -20.162, -3.96, 0, 0.174, -16.147, 0, 8.306, 0, -1.46, -0.7, 0, -0.985, -20.162, 2.441, 0, 0.898, 45.532, 0, 11.469, 0, 2.4, -4.988, 0, 0.44, -27.294, -4.988, 0, 0.44, 45.532, 0, 11.469, 0, 2.4, -2.441, 0, -0.898, -27.294, -0.041, 0, 1, -39.236, 0, 7.048, 0, -24.13, -3.624, 0, -0.011, -111.034, -3.624, 0, -0.011, -39.236, 0, 7.048, 0, -24.13, 0.041, 0, -1, -111.034, 4.494, 0, 0.348, -50.194, 0, 9.898, 0, -8.147, -1.667, 0, 0.938, -64.953, -1.667, 0, 0.938, -50.194, 0, 9.898, 0, -8.147, -4.494, 0, -0.348, -64.953, -4.246, 0, 0.463, -49.122, 0, 9.891, 0, -4.516, -2.217, 0, -0.886, -47.558, -2.217, 0, -0.886, -49.122, 0, 9.891, 0, -4.516, 4.246, 0, -0.463, -47.558, 1.745, 0, 0.876, 35.604, 0, 7.044, 0, -0.425, -3.175, 0, 0.482, -28.605, -3.175, 0, 0.482, 35.604, 0, 7.044, 0, -0.425, -1.745, 0, -0.876, -28.605, 1.931, 0, 0.956, -25.496, 0, 14.153, 0, 3.859, -6.316, 0, 0.292, 24.629, -6.316, 0, 0.292, -25.496, 0, 14.153, 0, 3.859, -1.931, 0, -0.956, 24.629, 5.379, 0, 0.088, -35.979, 0, 11.572, 0, -21.488, -0.473, 0, 0.996, -98.83, -0.473, 0, 0.996, -35.979, 0, 11.572, 0, -21.488, -5.379, 0, -0.088, -98.83, 3.187, 0, 0.16, -36.904, 0, 6.277, 0, -10.065, -0.516, 0, 0.987, -59.019, -0.516, 0, 0.987, -36.904, 0, 6.277, 0, -10.065, -3.187, 0, -0.16, -59.019, -3.172, 0, 0.586, 44.191, 0, 8.087, 0, -11.277, -2.297, 0, -0.81, -62.676, -2.297, 0, -0.81, 44.191, 0, 8.087, 0, -11.277, 3.172, 0, -0.586, -62.676, -2.716, 0, 0.82, -16.087, 0, 9.788, 0, 1.762, -3.884, 0, -0.573, 6.065, -3.884, 0, -0.573, -16.087, 0, 9.788, 0, 1.762, 2.716, 0, -0.82, 6.065, 3.507, 0, 0.599, 26.64, 0, 9.045, 0, 4.729, -2.624, 0, 0.801, 11.086, -2.624, 0, 0.801, 26.64, 0, 9.045, 0, 4.729, -3.507, 0, -0.599, 11.086, 4.858, 0, 0.458, -44.847, 0, 11.709, 0, 7.189, -2.5, 0, 0.889, -7.301, -2.5, 0, 0.889, -44.847, 0, 11.709, 0, 7.189, -4.858, 0, -0.458, -7.301, -2.881, 0, 0.418, -19.588, 0, 6.166, 0, -27.535, -1.325, 0, -0.908, -110.463, -1.325, 0, -0.908, -19.588, 0, 6.166, 0, -27.535, 2.881, 0, -0.418, -110.463, -0.552, 0, 0.991, -60.275, 0, 7.878, 0, -1.018, -4.014, 0, -0.136, -40.932, -4.014, 0, -0.136, -60.275, 0, 7.878, 0, -1.018, 0.552, 0, -0.991, -40.932, 2.877, 0, 0.841, 37.494, 0, 11.394, 0, -2.695, -4.471, 0, 0.541, -34.571, -4.471, 0, 0.541, 37.494, 0, 11.394, 0, -2.695, -2.877, 0, -0.841, -34.571, -5.213, 0, 0.571, 13.838, 0, 13.612, 0, 0.669, -3.63, 0, -0.821, -5.783, -3.63, 0, -0.821, 13.838, 0, 13.612, 0, 0.669, 5.213, 0, -0.571, -5.783, 3.421, 0, 0.135, -46.511, 0, 6.713, 0, -18.831, -0.465, 0, 0.991, -101.173, -0.465, 0, 0.991, -46.511, 0, 6.713, 0, -18.831, -3.421, 0, -0.135, -101.173, 4.728, 0, 0.086, -40.238, 0, 9.8, 0, -18.688, -0.406, 0, 0.996, -93.989, -0.406, 0, 0.996, -40.238, 0, 9.8, 0, -18.688, -4.728, 0, -0.086, -93.989, 1.42, 0, 0.896, 18.655, 0, 6.21, 0, 1.745, -2.861, 0, 0.445, -12.112, -2.861, 0, 0.445, 18.655, 0, 6.21, 0, 1.745, -1.42, 0, -0.896, -12.112, 2.778, 0, 0.43, 25.084, 0, 5.984, 0, -20.251, -1.324, 0, 0.903, -84.709, -1.324, 0, 0.903, 25.084, 0, 5.984, 0, -20.251, -2.778, 0, -0.43, -84.709, -2.627, 0, 0.581, 23.54, 0, 6.278, 0, -5.594, -1.876, 0, -0.814, -34.331, -1.876, 0, -0.814, 23.54, 0, 6.278, 0, -5.594, 2.627, 0, -0.581, -34.331, -2.092, 0, 0.909, -44.551, 0, 10.344, 0, -12.82, -4.551, 0, -0.418, -78.511, -4.551, 0, -0.418, -44.551, 0, 10.344, 0, -12.82, 2.092, 0, -0.909, -78.511, -1.316, 0, 0.949, -17.359, 0, 8.615, 0, 2.126, -3.959, 0, -0.315, 1.555, -3.959, 0, -0.315, -17.359, 0, 8.615, 0, 2.126, 1.316, 0, -0.949, 1.555) 1 94 SubResource("Mesh_pine_a") PackedFloat32Array(1.213, 0, 0.962, -18.998, 0, 9.124, 0, -60.973, -4.248, 0, 0.275, -245.412, -4.248, 0, 0.275, -18.998, 0, 9.124, 0, -60.973, -1.213, 0, -0.962, -245.412, -2.401, 0, 0.882, 37.07, 0, 10.908, 0, -35.595, -4.489, 0, -0.472, -154.969, -4.489, 0, -0.472, 37.07, 0, 10.908, 0, -35.595, 2.401, 0, -0.882, -154.969, -2.018, 0, 0.771, 43.821, 0, 6.156, 0, -42.64, -2.44, 0, -0.637, -188.89, -2.44, 0, -0.637, 43.821, 0, 6.156, 0, -42.64, 2.018, 0, -0.771, -188.89, -4.106, 0, 0.198, -38.491, 0, 8.652, 0, -58.39, -0.831, 0, -0.98, -256.267, -0.831, 0, -0.98, -38.491, 0, 8.652, 0, -58.39, 4.106, 0, -0.198, -256.267, -0.315, 0, 0.996, 41.605, 0, 7.234, 0, -53.661, -3.707, 0, -0.085, -235.154, -3.707, 0, -0.085, 41.605, 0, 7.234, 0, -53.661, 0.315, 0, -0.996, -235.154, 3.505, 0, 0.535, 49.345, 0, 8.569, 0, -50.838, -2.221, 0, 0.845, -228.146, -2.221, 0, 0.845, 49.345, 0, 8.569, 0, -50.838, -3.505, 0, -0.535, -228.146, -0.351, 0, 0.997, 26.031, 0, 9.968, 0, -34.688, -4.814, 0, -0.073, -139.85, -4.814, 0, -0.073, 26.031, 0, 9.968, 0, -34.688, 0.351, 0, -0.997, -139.85, -2.117, 0, 0.878, -26.535, 0, 8.585, 0, -31.863, -3.874, 0, -0.479, -141.312, -3.874, 0, -0.479, -26.535, 0, 8.585, 0, -31.863, 2.117, 0, -0.878, -141.312, 3.9, 0, 0.227, -35.788, 0, 7.786, 0, -52.503, -0.908, 0, 0.974, -233.434, -0.908, 0, 0.974, -35.788, 0, 7.786, 0, -52.503, -3.9, 0, -0.227, -233.434, 3.177, 0, 0.421, -17.414, 0, 6.811, 0, -55.98, -1.474, 0, 0.907, -227.119, -1.474, 0, 0.907, -17.414, 0, 6.811, 0, -55.98, -3.177, 0, -0.421, -227.119, -4.532, 0, 0.699, -20.739, 0, 13.584, 0, -58.929, -4.432, 0, -0.715, -240.869, -4.432, 0, -0.715, -20.739, 0, 13.584, 0, -58.929, 4.532, 0, -0.699, -240.869, 3.792, 0, 0.53, 37.694, 0, 9.233, 0, -28.485, -2.367, 0, 0.848, -128.402, -2.367, 0, 0.848, 37.694, 0, 9.233, 0, -28.485, -3.792, 0, -0.53, -128.402, -0.69, 0, 0.978, 26.73, 0, 6.484, 0, -28.79, -3.262, 0, -0.207, -118.823, -3.262, 0, -0.207, 26.73, 0, 6.484, 0, -28.79, 0.69, 0, -0.978, -118.823, 4.27, 0, 0.419, -43.036, 0, 9.711, 0, -26.487, -1.969, 0, 0.908, -130.484, -1.969, 0, 0.908, -43.036, 0, 9.711, 0, -26.487, -4.27, 0, -0.419, -130.484, 0.868, 0, 0.972, 30.434, 0, 7.17, 0, -48.73, -3.584, 0, 0.235, -200.391, -3.584, 0, 0.235, 30.434, 0, 7.17, 0, -48.73, -0.868, 0, -0.972, -200.391, 4.239, 0, 0.734, -17.43, 0, 13.369, 0, -63.766, -4.578, 0, 0.679, -253.11, -4.578, 0, 0.679, -17.43, 0, 13.369, 0, -63.766, -4.239, 0, -0.734, -253.11, 2.056, 0, 0.814, 55.671, 0, 6.889, 0, -41.413, -2.886, 0, 0.58, -194.115, -2.886, 0, 0.58, 55.671, 0, 6.889, 0, -41.413, -2.056, 0, -0.814, -194.115, -4.972, 0, 0.016, 35.884, 0, 10.27, 0, -40.062, -0.08, 0, -1, -172.866, -0.08, 0, -1, 35.884, 0, 10.27, 0, -40.062, 4.972, 0, -0.016, -172.866, -3.299, 0, 0.047, 52.502, 0, 6.422, 0, -52.343, -0.155, 0, -0.999, -236.847, -0.155, 0, -0.999, 52.502, 0, 6.422, 0, -52.343, 3.299, 0, -0.047, -236.847, 3.65, 0, 0.384, 38.666, 0, 8.166, 0, -49.658, -1.52, 0, 0.923, -214.117, -1.52, 0, 0.923, 38.666, 0, 8.166, 0, -49.658, -3.65, 0, -0.384, -214.117, -4.012, 0, 0.573, 56.892, 0, 10.109, 0, -36.864, -2.805, 0, -0.82, -175.775, -2.805, 0, -0.82, 56.892, 0, 10.109, 0, -36.864, 4.012, 0, -0.573, -175.775, 4.045, 0, 0.645, -49.394, 0, 11.35, 0, -24.526, -3.419, 0, 0.764, -125.041, -3.419, 0, 0.764, -49.394, 0, 11.35, 0, -24.526, -4.045, 0, -0.645, -125.041, 0.956, 0, 0.979, -26.699, 0, 9.612, 0, -46.523, -4.555, 0, 0.205, -196.543, -4.555, 0, 0.205, -26.699, 0, 9.612, 0, -46.523, -0.956, 0, -0.979, -196.543, -1.825, 0, 0.82, -47.122, 0, 6.195, 0, -39.254, -2.612, 0, -0.573, -186.13, -2.612, 0, -0.573, -47.122, 0, 6.195, 0, -39.254, 1.825, 0, -0.82, -186.13, 1.484, 0, 0.937, 43.216, 0, 8.805, 0, -57.09, -3.997, 0, 0.348, -249.679, -3.997, 0, 0.348, 43.216, 0, 8.805, 0, -57.09, -1.484, 0, -0.937, -249.679, 1.72, 0, 0.829, 39.977, 0, 5.978, 0, -52.304, -2.548, 0, 0.559, -227.513, -2.548, 0, 0.559, 39.977, 0, 5.978, 0, -52.304, -1.72, 0, -0.829, -227.513, 1.596, 0, 0.875, -14.599, 0, 6.401, 0, -35.687, -2.879, 0, 0.485, -141.082, -2.879, 0, 0.485, -14.599, 0, 6.401, 0, -35.687, -1.596, 0, -0.875, -141.082, 5.423, 0, 0.021, -23.469, 0, 11.202, 0, -47.707, -0.113, 0, 1, -199.567, -0.113, 0, 1, -23.469, 0, 11.202, 0, -47.707, -5.423, 0, -0.021, -199.567, -5.292, 0, 0.208, 65.234, 0, 11.173, 0, -42.02, -1.124, 0, -0.978, -203.326, -1.124, 0, -0.978, 65.234, 0, 11.173, 0, -42.02, 5.292, 0, -0.208, -203.326, 2.161, 0, 0.866, 49.854, 0, 8.928, 0, -29.917, -3.744, 0, 0.5, -142.313, -3.744, 0, 0.5, 49.854, 0, 8.928, 0, -29.917, -2.161, 0, -0.866, -142.313, 5.237, 0, 0.179, -26.259, 0, 10.993, 0, -53.623, -0.952, 0, 0.984, -228.786, -0.952, 0, 0.984, -26.259, 0, 10.993, 0, -53.623, -5.237, 0, -0.179, -228.786, 5.412, 0, 0.173, -43.996, 0, 11.347, 0, -46.769, -0.948, 0, 0.985, -216.273, -0.948, 0, 0.985, -43.996, 0, 11.347, 0, -46.769, -5.412, 0, -0.173, -216.273, -3.552, 0, 0.658, 41.386, 0, 9.743, 0, -35.469, -3.105, 0, -0.753, -157.154, -3.105, 0, -0.753, 41.386, 0, 9.743, 0, -35.469, 3.552, 0, -0.658, -157.154, -0.948, 0, 0.954, 26.538, 0, 6.174, 0, -43.758, -3.03, 0, -0.299, -175.647, -3.03, 0, -0.299, 26.538, 0, 6.174, 0, -43.758, 0.948, 0, -0.954, -175.647, 3.881, 0, 0.827, -18.441, 0, 14.792, 0, -36.628, -5.709, 0, 0.562, -151.814, -5.709, 0, 0.562, -18.441, 0, 14.792, 0, -36.628, -3.881, 0, -0.827, -151.814, -3.787, 0, 0.221, 32.598, 0, 7.551, 0, -35.802, -0.859, 0, -0.975, -151.856, -0.859, 0, -0.975, 32.598, 0, 7.551, 0, -35.802, 3.787, 0, -0.221, -151.856, -3.385, 0, 0.483, -44.349, 0, 7.516, 0, -44.317, -1.866, 0, -0.876, -205.513, -1.866, 0, -0.876, -44.349, 0, 7.516, 0, -44.317, 3.385, 0, -0.483, -205.513, 0.768, 0, 0.983, 39.546, 0, 8.577, 0, -38.238, -4.081, 0, 0.185, -167.532, -4.081, 0, 0.185, 39.546, 0, 8.577, 0, -38.238, -0.768, 0, -0.983, -167.532, -4.697, 0, 0.239, 34.475, 0, 9.99, 0, -34.102, -1.158, 0, -0.971, -147.133, -1.158, 0, -0.971, 34.475, 0, 9.99, 0, -34.102, 4.697, 0, -0.239, -147.133, 3.156, 0, 0.461, -18.379, 0, 6.917, 0, -34.002, -1.642, 0, 0.887, -138.778, -1.642, 0, 0.887, -18.379, 0, 6.917, 0, -34.002, -3.156, 0, -0.461, -138.778, 2.293, 0, 0.914, -18.372, 0, 11.671, 0, -31.175, -5.165, 0, 0.406, -125.969, -5.165, 0, 0.406, -18.372, 0, 11.671, 0, -31.175, -2.293, 0, -0.914, -125.969, -1.859, 0, 0.891, 32.148, 0, 8.444, 0, -26.049, -3.641, 0, -0.455, -114.765, -3.641, 0, -0.455, 32.148, 0, 8.444, 0, -26.049, 1.859, 0, -0.891, -114.765, 3.367, 0, 0.793, -21.661, 0, 11.415, 0, -42.374, -4.383, 0, 0.609, -179.472, -4.383, 0, 0.609, -21.661, 0, 11.415, 0, -42.374, -3.367, 0, -0.793, -179.472, -3.556, 0, 0.228, 25.042, 0, 7.101, 0, -55.487, -0.832, 0, -0.974, -221.374, -0.832, 0, -0.974, 25.042, 0, 7.101, 0, -55.487, 3.556, 0, -0.228, -221.374, -5.342, 0, 0.334, 49.17, 0, 11.706, 0, -52.002, -1.895, 0, -0.942, -233.085, -1.895, 0, -0.942, 49.17, 0, 11.706, 0, -52.002, 5.342, 0, -0.334, -233.085, -5.384, 0, 0.2, 55.4, 0, 11.348, 0, -49.046, -1.096, 0, -0.98, -224.977, -1.096, 0, -0.98, 55.4, 0, 11.348, 0, -49.046, 5.384, 0, -0.2, -224.977, 4.439, 0, 0.601, -24.569, 0, 11.475, 0, -57.961, -3.342, 0, 0.799, -242.607, -3.342, 0, 0.799, -24.569, 0, 11.475, 0, -57.961, -4.439, 0, -0.601, -242.607) 1 74 SubResource("Mesh_pine_b") PackedFloat32Array(1.701, 0, 0.959, -24.795, 0, 12.841, 0, -38.419, -5.746, 0, 0.284, -166.809, -5.746, 0, 0.284, -24.795, 0, 12.841, 0, -38.419, -1.701, 0, -0.959, -166.809, -1.853, 0, 0.922, -15.272, 0, 9.87, 0, -59.181, -4.405, 0, -0.388, -235.132, -4.405, 0, -0.388, -15.272, 0, 9.87, 0, -59.181, 1.853, 0, -0.922, -235.132, 4.696, 0, 0.347, 55.898, 0, 10.341, 0, -54.666, -1.739, 0, 0.938, -248.755, -1.739, 0, 0.938, 55.898, 0, 10.341, 0, -54.666, -4.696, 0, -0.347, -248.755, 4.693, 0, 0.541, -20.147, 0, 11.96, 0, -57.029, -3.02, 0, 0.841, -233.604, -3.02, 0, 0.841, -20.147, 0, 11.96, 0, -57.029, -4.693, 0, -0.541, -233.604, -2.356, 0, 0.681, 68.215, 0, 6.257, 0, -37.789, -2.192, 0, -0.732, -192.003, -2.192, 0, -0.732, 68.215, 0, 6.257, 0, -37.789, 2.356, 0, -0.681, -192.003, -1.305, 0, 0.966, 38.421, 0, 10.354, 0, -26.582, -4.841, 0, -0.26, -121.226, -4.841, 0, -0.26, 38.421, 0, 10.354, 0, -26.582, 1.305, 0, -0.966, -121.226, 0.306, 0, 0.998, 23.298, 0, 11.07, 0, -30.624, -5.157, 0, 0.059, -121.79, -5.157, 0, 0.059, 23.298, 0, 11.07, 0, -30.624, -0.306, 0, -0.998, -121.79, -3.795, 0, 0.714, -15.656, 0, 11.187, 0, -40.308, -3.866, 0, -0.701, -163.815, -3.866, 0, -0.701, -15.656, 0, 11.187, 0, -40.308, 3.795, 0, -0.714, -163.815, 5.537, 0, 0.006, 31.607, 0, 11.864, 0, -53.031, -0.035, 0, 1, -220.98, -0.035, 0, 1, 31.607, 0, 11.864, 0, -53.031, -5.537, 0, -0.006, -220.98, -5.982, 0, 0.121, 29.098, 0, 12.912, 0, -60.999, -0.727, 0, -0.993, -254.103, -0.727, 0, -0.993, 29.098, 0, 12.912, 0, -60.999, 5.982, 0, -0.121, -254.103, -0.635, 0, 0.993, -14.692, 0, 11.319, 0, -53.363, -5.444, 0, -0.116, -214.298, -5.444, 0, -0.116, -14.692, 0, 11.319, 0, -53.363, 0.635, 0, -0.993, -214.298, -3.808, 0, 0.706, -25.88, 0, 11.106, 0, -48.622, -3.798, 0, -0.708, -203.971, -3.798, 0, -0.708, -25.88, 0, 11.106, 0, -48.622, 3.808, 0, -0.706, -203.971, 0.942, 0, 0.985, -26.036, 0, 11.194, 0, -50.33, -5.338, 0, 0.174, -213.352, -5.338, 0, 0.174, -26.036, 0, 11.194, 0, -50.33, -0.942, 0, -0.985, -213.352, -4.079, 0, 0.7, 26.163, 0, 11.8, 0, -60.369, -4.002, 0, -0.714, -246.605, -4.002, 0, -0.714, 26.163, 0, 11.8, 0, -60.369, 4.079, 0, -0.7, -246.605, -3.713, 0, 0.341, 33.462, 0, 7.681, 0, -59.508, -1.348, 0, -0.94, -252.015, -1.348, 0, -0.94, 33.462, 0, 7.681, 0, -59.508, 3.713, 0, -0.341, -252.015, -4.012, 0, 0.657, 44.538, 0, 10.986, 0, -58.626, -3.492, 0, -0.754, -256.564, -3.492, 0, -0.754, 44.538, 0, 10.986, 0, -58.626, 4.012, 0, -0.657, -256.564, -2.925, 0, 0.894, -43.631, 0, 14.02, 0, -43.034, -5.852, 0, -0.447, -197.798, -5.852, 0, -0.447, -43.631, 0, 14.02, 0, -43.034, 2.925, 0, -0.894, -197.798, -0.361, 0, 0.998, 36.478, 0, 13.732, 0, -41.145, -6.398, 0, -0.056, -177.632, -6.398, 0, -0.056, 36.478, 0, 13.732, 0, -41.145, 0.361, 0, -0.998, -177.632, 3.584, 0, 0.681, -33.989, 0, 10.108, 0, -48.575, -3.333, 0, 0.732, -213.388, -3.333, 0, 0.732, -33.989, 0, 10.108, 0, -48.575, -3.584, 0, -0.681, -213.388, 3.514, 0, 0.68, 43.261, 0, 10.263, 0, -47.677, -3.255, 0, 0.734, -209.025, -3.255, 0, 0.734, 43.261, 0, 10.263, 0, -47.677, -3.514, 0, -0.68, -209.025, -2.888, 0, 0.854, -11.164, 0, 11.908, 0, -46.278, -4.748, 0, -0.52, -182.859, -4.748, 0, -0.52, -11.164, 0, 11.908, 0, -46.278, 2.888, 0, -0.854, -182.859, -4.843, 0, 0.515, 25.069, 0, 11.666, 0, -53.892, -2.908, 0, -0.857, -214.626, -2.908, 0, -0.857, 25.069, 0, 11.666, 0, -53.892, 4.843, 0, -0.515, -214.626, 2.016, 0, 0.945, 56.643, 0, 13.24, 0, -38.64, -5.841, 0, 0.326, -184.086, -5.841, 0, 0.326, 56.643, 0, 13.24, 0, -38.64, -2.016, 0, -0.945, -184.086, 3.017, 0, 0.812, 56.191, 0, 10.68, 0, -25.783, -4.2, 0, 0.583, -133.771, -4.2, 0, 0.583, 56.191, 0, 10.68, 0, -25.783, -3.017, 0, -0.812, -133.771, 4.998, 0, 0.385, -18.35, 0, 11.183, 0, -50.914, -2.083, 0, 0.923, -208.562, -2.083, 0, 0.923, -18.35, 0, 11.183, 0, -50.914, -4.998, 0, -0.385, -208.562, 2.717, 0, 0.84, -22.282, 0, 10.347, 0, -62.14, -4.209, 0, 0.542, -254.134, -4.209, 0, 0.542, -22.282, 0, 10.347, 0, -62.14, -2.717, 0, -0.84, -254.134, -2.601, 0, 0.778, 39.896, 0, 8.549, 0, -24.796, -3.221, 0, -0.628, -116.508, -3.221, 0, -0.628, 39.896, 0, 8.549, 0, -24.796, 2.601, 0, -0.778, -116.508, 3.254, 0, 0.158, 31.525, 0, 6.408, 0, -44.368, -0.521, 0, 0.987, -184.445, -0.521, 0, 0.987, 31.525, 0, 6.408, 0, -44.368, -3.254, 0, -0.158, -184.445, 2.092, 0, 0.902, 34.18, 0, 10.001, 0, -51.27, -4.367, 0, 0.432, -216.472, -4.367, 0, 0.432, 34.18, 0, 10.001, 0, -51.27, -2.092, 0, -0.902, -216.472, -3.985, 0, 0.477, -22.727, 0, 9.363, 0, -29.084, -2.162, 0, -0.879, -120.761, -2.162, 0, -0.879, -22.727, 0, 9.363, 0, -29.084, 3.985, 0, -0.477, -120.761, -0.67, 0, 0.988, 61.305, 0, 8.942, 0, -48.887, -4.278, 0, -0.155, -229.783, -4.278, 0, -0.155, 61.305, 0, 8.942, 0, -48.887, 0.67, 0, -0.988, -229.783, 2.979, 0, 0.705, 54.454, 0, 8.162, 0, -50.774, -2.957, 0, 0.71, -231.617, -2.957, 0, 0.71, 54.454, 0, 8.162, 0, -50.774, -2.979, 0, -0.705, -231.617, 2.664, 0, 0.512, -41.282, 0, 6.028, 0, -35.818, -1.586, 0, 0.859, -169.512, -1.586, 0, 0.859, -41.282, 0, 6.028, 0, -35.818, -2.664, 0, -0.512, -169.512, 1.1, 0, 0.952, -18.648, 0, 7.004, 0, -32.488, -3.43, 0, 0.305, -132.108, -3.43, 0, 0.305, -18.648, 0, 7.004, 0, -32.488, -1.1, 0, -0.952, -132.108, 3.42, 0, 0.037, -22.938, 0, 6.655, 0, -30.633, -0.125, 0, 0.999, -128.734, -0.125, 0, 0.999, -22.938, 0, 6.655, 0, -30.633, -3.42, 0, -0.037, -128.734, -2.723, 0, 0.751, -22.478, 0, 8.026, 0, -33.805, -3.102, 0, -0.66, -144.686, -3.102, 0, -0.66, -22.478, 0, 8.026, 0, -33.805, 2.723, 0, -0.751, -144.686, 0.362, 0, 0.996, 44.987, 0, 8.206, 0, -25.058, -4.205, 0, 0.086, -121.552, -4.205, 0, 0.086, 44.987, 0, 8.206, 0, -25.058, -0.362, 0, -0.996, -121.552) 1 98 SubResource("Mesh_pine_a") PackedFloat32Array(3.638, 0, 0.074, 25.249, 0, 7.093, 0, -76.823, -0.27, 0, 0.997, -315.362, -0.27, 0, 0.997, 25.249, 0, 7.093, 0, -76.823, -3.638, 0, -0.074, -315.362, -1.697, 0, 0.905, -39.39, 0, 7.758, 0, -75.771, -3.611, 0, -0.425, -311.06, -3.611, 0, -0.425, -39.39, 0, 7.758, 0, -75.771, 1.697, 0, -0.905, -311.06, 3.936, 0, 0.38, -34.296, 0, 8.273, 0, -97.697, -1.615, 0, 0.925, -384.02, -1.615, 0, 0.925, -34.296, 0, 8.273, 0, -97.697, -3.936, 0, -0.38, -384.02, -4.065, 0, 0.556, 22.999, 0, 10.099, 0, -76.132, -2.719, 0, -0.831, -311.201, -2.719, 0, -0.831, 22.999, 0, 10.099, 0, -76.132, 4.065, 0, -0.556, -311.201, -1.592, 0, 0.922, -48.121, 0, 7.985, 0, -83.934, -3.785, 0, -0.388, -350.204, -3.785, 0, -0.388, -48.121, 0, 7.985, 0, -83.934, 1.592, 0, -0.922, -350.204, 2.806, 0, 0.763, -53.601, 0, 8.448, 0, -59.377, -3.317, 0, 0.646, -270.739, -3.317, 0, 0.646, -53.601, 0, 8.448, 0, -59.377, -2.806, 0, -0.763, -270.739, 3.4, 0, 0.354, 36.847, 0, 7.07, 0, -98.616, -1.287, 0, 0.935, -393.598, -1.287, 0, 0.935, 36.847, 0, 7.07, 0, -98.616, -3.4, 0, -0.354, -393.598, 1.388, 0, 0.927, 22.678, 0, 7.191, 0, -90.065, -3.428, 0, 0.375, -356.161, -3.428, 0, 0.375, 22.678, 0, 7.191, 0, -90.065, -1.388, 0, -0.927, -356.161, 0.448, 0, 0.997, 18.911, 0, 11.351, 0, -85.418, -5.478, 0, 0.081, -338.312, -5.478, 0, 0.081, 18.911, 0, 11.351, 0, -85.418, -0.448, 0, -0.997, -338.312, -3.461, 0, 0.735, 26.946, 0, 10.534, 0, -100.467, -3.747, 0, -0.678, -391.747, -3.747, 0, -0.678, 26.946, 0, 10.534, 0, -100.467, 3.461, 0, -0.735, -391.747, -4.792, 0, 0.024, 44.23, 0, 9.9, 0, -73.072, -0.117, 0, -1, -316.632, -0.117, 0, -1, 44.23, 0, 9.9, 0, -73.072, 4.792, 0, -0.024, -316.632, 2.205, 0, 0.839, -40.22, 0, 7.885, 0, -64.82, -3.403, 0, 0.544, -278.03, -3.403, 0, 0.544, -40.22, 0, 7.885, 0, -64.82, -2.205, 0, -0.839, -278.03, -6.723, 0, 0.04, 49.197, 0, 14.419, 0, -91.5, -0.271, 0, -0.999, -379.203, -0.271, 0, -0.999, 49.197, 0, 14.419, 0, -91.5, 6.723, 0, -0.04, -379.203, 1.166, 0, 0.966, -56.686, 0, 9.377, 0, -77.668, -4.388, 0, 0.257, -335.63, -4.388, 0, 0.257, -56.686, 0, 9.377, 0, -77.668, -1.166, 0, -0.966, -335.63, 1.829, 0, 0.941, 50.931, 0, 11.151, 0, -63.739, -5.08, 0, 0.339, -284.596, -5.08, 0, 0.339, 50.931, 0, 11.151, 0, -63.739, -1.829, 0, -0.941, -284.596, -0.907, 0, 0.979, 34.033, 0, 8.63, 0, -61.848, -4.345, 0, -0.204, -262.859, -4.345, 0, -0.204, 34.033, 0, 8.63, 0, -61.848, 0.907, 0, -0.979, -262.859, -4.235, 0, 0.535, -24.517, 0, 10.739, 0, -71.677, -2.679, 0, -0.845, -286.472, -2.679, 0, -0.845, -24.517, 0, 10.739, 0, -71.677, 4.235, 0, -0.535, -286.472, 3.538, 0, 0.415, 24.048, 0, 7.561, 0, -78.701, -1.613, 0, 0.91, -321.374, -1.613, 0, 0.91, 24.048, 0, 7.561, 0, -78.701, -3.538, 0, -0.415, -321.374, -2.002, 0, 0.94, -23.491, 0, 12.616, 0, -66.601, -5.537, 0, -0.34, -269.76, -5.537, 0, -0.34, -23.491, 0, 12.616, 0, -66.601, 2.002, 0, -0.94, -269.76, -2.954, 0, 0.654, 22.261, 0, 7.594, 0, -73.832, -2.556, 0, -0.756, -299.69, -2.556, 0, -0.756, 22.261, 0, 7.594, 0, -73.832, 2.954, 0, -0.654, -299.69, 0.118, 0, 1, -36.593, 0, 7.361, 0, -95.747, -3.784, 0, 0.031, -378.925, -3.784, 0, 0.031, -36.593, 0, 7.361, 0, -95.747, -0.118, 0, -1, -378.925, 4.501, 0, 0.151, -41.926, 0, 9.404, 0, -70.634, -0.686, 0, 0.989, -295.435, -0.686, 0, 0.989, -41.926, 0, 9.404, 0, -70.634, -4.501, 0, -0.151, -295.435, -2.819, 0, 0.563, 56.251, 0, 6.635, 0, -60.692, -1.922, 0, -0.826, -276.8, -1.922, 0, -0.826, 56.251, 0, 6.635, 0, -60.692, 2.819, 0, -0.563, -276.8, 0.77, 0, 0.985, 19.059, 0, 8.711, 0, -71.24, -4.413, 0, 0.172, -285.488, -4.413, 0, 0.172, 19.059, 0, 8.711, 0, -71.24, -0.77, 0, -0.985, -285.488, 2.036, 0, 0.902, 34.024, 0, 9.762, 0, -96.423, -4.266, 0, 0.431, -386.049, -4.266, 0, 0.431, 34.024, 0, 9.762, 0, -96.423, -2.036, 0, -0.902, -386.049, -2.45, 0, 0.786, 37.522, 0, 7.704, 0, -91.902, -3.114, 0, -0.618, -375.348, -3.114, 0, -0.618, 37.522, 0, 7.704, 0, -91.902, 2.45, 0, -0.786, -375.348, 0.502, 0, 0.993, -37.37, 0, 8.559, 0, -82.945, -4.114, 0, 0.121, -340.672, -4.114, 0, 0.121, -37.37, 0, 8.559, 0, -82.945, -0.502, 0, -0.993, -340.672, -4.521, 0, 0.478, -56.915, 0, 10.633, 0, -92.551, -2.464, 0, -0.878, -384.767, -2.464, 0, -0.878, -56.915, 0, 10.633, 0, -92.551, 4.521, 0, -0.478, -384.767, 1.495, 0, 0.959, 33.508, 0, 10.843, 0, -73.663, -5.033, 0, 0.285, -307.444, -5.033, 0, 0.285, 33.508, 0, 10.843, 0, -73.663, -1.495, 0, -0.959, -307.444, 3.432, 0, 0.599, -34.045, 0, 8.853, 0, -81.66, -2.569, 0, 0.801, -332.414, -2.569, 0, 0.801, -34.045, 0, 8.853, 0, -81.66, -3.432, 0, -0.599, -332.414, -2.652, 0, 0.872, -26.347, 0, 11.183, 0, -68.616, -4.721, 0, -0.49, -278.829, -4.721, 0, -0.49, -26.347, 0, 11.183, 0, -68.616, 2.652, 0, -0.872, -278.829, -4.827, 0, 0.274, 32.33, 0, 10.364, 0, -68.251, -1.373, 0, -0.962, -286.317, -1.373, 0, -0.962, 32.33, 0, 10.364, 0, -68.251, 4.827, 0, -0.274, -286.317, -1.119, 0, 0.967, 34.53, 0, 9.138, 0, -79.264, -4.281, 0, -0.253, -331.696, -4.281, 0, -0.253, 34.53, 0, 9.138, 0, -79.264, 1.119, 0, -0.967, -331.696, 0.714, 0, 0.978, 44.898, 0, 6.699, 0, -69.925, -3.371, 0, 0.207, -303.882, -3.371, 0, 0.207, 44.898, 0, 6.699, 0, -69.925, -0.714, 0, -0.978, -303.882, 3.949, 0, 0.375, -58.492, 0, 8.797, 0, -71.503, -1.598, 0, 0.927, -310.131, -1.598, 0, 0.927, -58.492, 0, 8.797, 0, -71.503, -3.949, 0, -0.375, -310.131, -1.06, 0, 0.972, 53.817, 0, 9.374, 0, -91.287, -4.413, 0, -0.234, -380.45, -4.413, 0, -0.234, 53.817, 0, 9.374, 0, -91.287, 1.06, 0, -0.972, -380.45, -0.012, 0, 1, 45.494, 0, 8.16, 0, -65.306, -3.951, 0, -0.003, -286.177, -3.951, 0, -0.003, 45.494, 0, 8.16, 0, -65.306, 0.012, 0, -1, -286.177, -5.549, 0, 0.341, -60.452, 0, 12.65, 0, -59.208, -2.015, 0, -0.94, -275.047, -2.015, 0, -0.94, -60.452, 0, 12.65, 0, -59.208, 5.549, 0, -0.341, -275.047, 4.896, 0, 0.297, -23.153, 0, 10.987, 0, -103.62, -1.523, 0, 0.955, -397.142, -1.523, 0, 0.955, -23.153, 0, 10.987, 0, -103.62, -4.896, 0, -0.297, -397.142, -3.775, 0, 0.713, -41.372, 0, 11.116, 0, -85.969, -3.836, 0, -0.701, -352.09, -3.836, 0, -0.701, -41.372, 0, 11.116, 0, -85.969, 3.775, 0, -0.713, -352.09, -3.699, 0, 0.338, -53.078, 0, 8.119, 0, -87.37, -1.331, 0, -0.941, -364.108, -1.331, 0, -0.941, -53.078, 0, 8.119, 0, -87.37, 3.699, 0, -0.338, -364.108, -5.238, 0, 0.563, -47.053, 0, 13.585, 0, -89.202, -3.572, 0, -0.826, -365.302, -3.572, 0, -0.826, -47.053, 0, 13.585, 0, -89.202, 5.238, 0, -0.563, -365.302, 0.369, 0, 0.996, -22.291, 0, 8.185, 0, -100.851, -3.946, 0, 0.093, -386.069, -3.946, 0, 0.093, -22.291, 0, 8.185, 0, -100.851, -0.369, 0, -0.996, -386.069, 5.944, 0, 0.309, -52.712, 0, 13.392, 0, -97.239, -1.93, 0, 0.951, -398.714, -1.93, 0, 0.951, -52.712, 0, 13.392, 0, -97.239, -5.944, 0, -0.309, -398.714, -1.962, 0, 0.828, -24.398, 0, 6.806, 0, -101.863, -2.899, 0, -0.561, -391.708, -2.899, 0, -0.561, -24.398, 0, 6.806, 0, -101.863, 1.962, 0, -0.828, -391.708, 4.305, 0, 0.753, 27.967, 0, 14.023, 0, -89.895, -4.929, 0, 0.658, -361.582, -4.929, 0, 0.658, 27.967, 0, 14.023, 0, -89.895, -4.305, 0, -0.753, -361.582, 3.54, 0, 0.788, 26.498, 0, 12.32, 0, -79.778, -4.53, 0, 0.616, -326.863, -4.53, 0, 0.616, 26.498, 0, 12.32, 0, -79.778, -3.54, 0, -0.788, -326.863, 3.498, 0, 0.758, -24.037, 0, 11.072, 0, -74.262, -4.063, 0, 0.653, -295.085, -4.063, 0, 0.653, -24.037, 0, 11.072, 0, -74.262, -3.498, 0, -0.758, -295.085, -3.946, 0, 0.696, 26.607, 0, 11.351, 0, -86.298, -3.826, 0, -0.718, -349.233, -3.826, 0, -0.718, 26.607, 0, 11.351, 0, -86.298, 3.946, 0, -0.696, -349.233) 1 82 SubResource("Mesh_pine_b") PackedFloat32Array(5.263, 0, 0.012, 44.316, 0, 11.278, 0, -60.318, -0.061, 0, 1, -264.746, -0.061, 0, 1, 44.316, 0, 11.278, 0, -60.318, -5.263, 0, -0.012, -264.746, -1.698, 0, 0.928, 29.889, 0, 9.416, 0, -65.608, -4.231, 0, -0.372, -275.926, -4.231, 0, -0.372, 29.889, 0, 9.416, 0, -65.608, 1.698, 0, -0.928, -275.926, 2.353, 0, 0.878, -45.064, 0, 10.155, 0, -97.874, -4.318, 0, 0.478, -394.615, -4.318, 0, 0.478, -45.064, 0, 10.155, 0, -97.874, -2.353, 0, -0.878, -394.615, 3.64, 0, 0.592, 23.258, 0, 9.323, 0, -99.89, -2.671, 0, 0.806, -386.565, -2.671, 0, 0.806, 23.258, 0, 9.323, 0, -99.89, -3.64, 0, -0.592, -386.565, -3.241, 0, 0.855, 30.973, 0, 13.397, 0, -87.293, -5.346, 0, -0.518, -356.498, -5.346, 0, -0.518, 30.973, 0, 13.397, 0, -87.293, 3.241, 0, -0.855, -356.498, -3.891, 0, 0.711, 17.211, 0, 11.428, 0, -84.379, -3.935, 0, -0.703, -333.212, -3.935, 0, -0.703, 17.211, 0, 11.428, 0, -84.379, 3.891, 0, -0.711, -333.212, 1.447, 0, 0.967, -36.012, 0, 11.801, 0, -61.387, -5.528, 0, 0.253, -264.841, -5.528, 0, 0.253, -36.012, 0, 11.801, 0, -61.387, -1.447, 0, -0.967, -264.841, -4.602, 0, 0.298, 14.902, 0, 9.955, 0, -74.261, -1.435, 0, -0.955, -294.513, -1.435, 0, -0.955, 14.902, 0, 9.955, 0, -74.261, 4.602, 0, -0.298, -294.513, -5.358, 0, 0.58, -26.158, 0, 14.093, 0, -94.156, -3.814, 0, -0.815, -366.085, -3.814, 0, -0.815, -26.158, 0, 14.093, 0, -94.156, 5.358, 0, -0.58, -366.085, 3.868, 0, 0.697, 20.541, 0, 11.564, 0, -68.039, -3.763, 0, 0.717, -274.836, -3.763, 0, 0.717, 20.541, 0, 11.564, 0, -68.039, -3.868, 0, -0.697, -274.836, 4.554, 0, 0.435, -58.367, 0, 10.447, 0, -65.105, -2.201, 0, 0.9, -289.878, -2.201, 0, 0.9, -58.367, 0, 10.447, 0, -65.105, -4.554, 0, -0.435, -289.878, -3.602, 0, 0.654, -61.849, 0, 9.836, 0, -71.869, -3.116, 0, -0.756, -315.712, -3.116, 0, -0.756, -61.849, 0, 9.836, 0, -71.869, 3.602, 0, -0.654, -315.712, 4.716, 0, 0.244, -36.808, 0, 10.043, 0, -94.148, -1.185, 0, 0.97, -373.791, -1.185, 0, 0.97, -36.808, 0, 10.043, 0, -94.148, -4.716, 0, -0.244, -373.791, 4.35, 0, 0.542, 40.199, 0, 11.092, 0, -76.413, -2.806, 0, 0.84, -325.364, -2.806, 0, 0.84, 40.199, 0, 11.092, 0, -76.413, -4.35, 0, -0.542, -325.364, 2.001, 0, 0.846, 34.74, 0, 7.301, 0, -75.62, -3.177, 0, 0.533, -317.116, -3.177, 0, 0.533, 34.74, 0, 7.301, 0, -75.62, -2.001, 0, -0.846, -317.116, -2.567, 0, 0.735, -52.621, 0, 7.357, 0, -80.38, -2.779, 0, -0.679, -342.078, -2.779, 0, -0.679, -52.621, 0, 7.357, 0, -80.38, 2.567, 0, -0.735, -342.078, 0.57, 0, 0.994, 36.287, 0, 11.463, 0, -84.194, -5.319, 0, 0.107, -350.987, -5.319, 0, 0.107, 36.287, 0, 11.463, 0, -84.194, -0.57, 0, -0.994, -350.987, -4.805, 0, 0.398, 51.505, 0, 11.223, 0, -59.814, -2.085, 0, -0.917, -268.862, -2.085, 0, -0.917, 51.505, 0, 11.223, 0, -59.814, 4.805, 0, -0.398, -268.862, -2.11, 0, 0.94, -51.256, 0, 13.2, 0, -65.217, -5.788, 0, -0.342, -286.533, -5.788, 0, -0.342, -51.256, 0, 13.2, 0, -65.217, 2.11, 0, -0.94, -286.533, 4.949, 0, 0.103, -46.863, 0, 10.661, 0, -93.823, -0.514, 0, 0.995, -379.61, -0.514, 0, 0.995, -46.863, 0, 10.661, 0, -93.823, -4.949, 0, -0.103, -379.61, 4.329, 0, 0.177, 23.402, 0, 9.086, 0, -94.956, -0.781, 0, 0.984, -372.956, -0.781, 0, 0.984, 23.402, 0, 9.086, 0, -94.956, -4.329, 0, -0.177, -372.956, 2.638, 0, 0.821, -42.407, 0, 9.535, 0, -81.579, -3.789, 0, 0.571, -339.351, -3.789, 0, 0.571, -42.407, 0, 9.535, 0, -81.579, -2.638, 0, -0.821, -339.351, 3.889, 0, 0.677, 23.745, 0, 10.912, 0, -68.805, -3.577, 0, 0.736, -281.889, -3.577, 0, 0.736, 23.745, 0, 10.912, 0, -68.805, -3.889, 0, -0.677, -281.889, 5.391, 0, 0.129, 22.684, 0, 11.227, 0, -84.712, -0.699, 0, 0.992, -340.632, -0.699, 0, 0.992, 22.684, 0, 11.227, 0, -84.712, -5.391, 0, -0.129, -340.632, 3.09, 0, 0.682, 27.543, 0, 8.72, 0, -74.09, -2.878, 0, 0.732, -304.894, -2.878, 0, 0.732, 27.543, 0, 8.72, 0, -74.09, -3.09, 0, -0.682, -304.894, 5.005, 0, 0.573, -51.739, 0, 13.084, 0, -70.17, -3.496, 0, 0.82, -300.586, -3.496, 0, 0.82, -51.739, 0, 13.084, 0, -70.17, -5.005, 0, -0.573, -300.586, 4.623, 0, 0.194, 62.313, 0, 9.731, 0, -56.563, -0.912, 0, 0.981, -263.26, -0.912, 0, 0.981, 62.313, 0, 9.731, 0, -56.563, -4.623, 0, -0.194, -263.26, 3.347, 0, 0.049, -60.148, 0, 6.517, 0, -87.708, -0.163, 0, 0.999, -370.676, -0.163, 0, 0.999, -60.148, 0, 6.517, 0, -87.708, -3.347, 0, -0.049, -370.676, 4.123, 0, 0.525, -26.282, 0, 10.383, 0, -63.05, -2.545, 0, 0.851, -261.737, -2.545, 0, 0.851, -26.282, 0, 10.383, 0, -63.05, -4.123, 0, -0.525, -261.737, 0.619, 0, 0.983, 24.392, 0, 6.563, 0, -71.447, -3.318, 0, 0.183, -291.122, -3.318, 0, 0.183, 24.392, 0, 6.563, 0, -71.447, -0.619, 0, -0.983, -291.122, -4.077, 0, 0.264, -21.203, 0, 8.728, 0, -69.588, -1.115, 0, -0.965, -276.438, -1.115, 0, -0.965, -21.203, 0, 8.728, 0, -69.588, 4.077, 0, -0.264, -276.438, -4.382, 0, 0.18, -48.954, 0, 9.202, 0, -79.347, -0.804, 0, -0.984, -336.116, -0.804, 0, -0.984, -48.954, 0, 9.202, 0, -79.347, 4.382, 0, -0.18, -336.116, 4.394, 0, 0.289, 17.407, 0, 9.48, 0, -79.489, -1.327, 0, 0.957, -318.478, -1.327, 0, 0.957, 17.407, 0, 9.48, 0, -79.489, -4.394, 0, -0.289, -318.478, 2.599, 0, 0.801, -61.485, 0, 8.958, 0, -91.736, -3.473, 0, 0.599, -385.78, -3.473, 0, 0.599, -61.485, 0, 8.958, 0, -91.736, -2.599, 0, -0.801, -385.78, -5.079, 0, 0.409, 28.253, 0, 11.925, 0, -71.407, -2.275, 0, -0.913, -294.125, -2.275, 0, -0.913, 28.253, 0, 11.925, 0, -71.407, 5.079, 0, -0.409, -294.125, 4.543, 0, 0.566, 39.082, 0, 11.38, 0, -94.216, -3.118, 0, 0.825, -382.812, -3.118, 0, 0.825, 39.082, 0, 11.38, 0, -94.216, -4.543, 0, -0.566, -382.812, 3.633, 0, 0.53, -38.14, 0, 8.331, 0, -62.723, -2.271, 0, 0.848, -270.445, -2.271, 0, 0.848, -38.14, 0, 8.331, 0, -62.723, -3.633, 0, -0.53, -270.445, 2.502, 0, 0.777, -24.808, 0, 7.722, 0, -89.527, -3.084, 0, 0.63, -349.421, -3.084, 0, 0.63, -24.808, 0, 7.722, 0, -89.527, -2.502, 0, -0.777, -349.421, -5.015, 0, 0.008, 26.407, 0, 10.356, 0, -91.991, -0.038, 0, -1, -366.64, -0.038, 0, -1, 26.407, 0, 10.356, 0, -91.991, 5.015, 0, -0.008, -366.64, 3.744, 0, 0.014, 27.378, 0, 7.282, 0, -69.083, -0.052, 0, 1, -285.464, -0.052, 0, 1, 27.378, 0, 7.282, 0, -69.083, -3.744, 0, -0.014, -285.464, 6.151, 0, 0.069, 58.915, 0, 13.212, 0, -84.567, -0.424, 0, 0.998, -363.972, -0.424, 0, 0.998, 58.915, 0, 13.212, 0, -84.567, -6.151, 0, -0.069, -363.972) 1 100 SubResource("Mesh_pine_a") PackedFloat32Array(-4.084, 0, 0.078, 50.232, 0, 8.461, 0, -136.616, -0.32, 0, -0.997, -521.454, -0.32, 0, -0.997, 50.232, 0, 8.461, 0, -136.616, 4.084, 0, -0.078, -521.454, 3.567, 0, 0.5, 66.707, 0, 8.509, 0, -121.964, -2.062, 0, 0.866, -488.306, -2.062, 0, 0.866, 66.707, 0, 8.509, 0, -121.964, -3.567, 0, -0.5, -488.306, 4.843, 0, 0.25, 25.066, 0, 10.33, 0, -112.81, -1.249, 0, 0.968, -426.483, -1.249, 0, 0.968, 25.066, 0, 10.33, 0, -112.81, -4.843, 0, -0.25, -426.483, 2.924, 0, 0.758, 44.313, 0, 9.253, 0, -122.675, -3.395, 0, 0.653, -473.527, -3.395, 0, 0.653, 44.313, 0, 9.253, 0, -122.675, -2.924, 0, -0.758, -473.527, -1.422, 0, 0.948, -18.187, 0, 9.203, 0, -118.054, -4.223, 0, -0.319, -442.869, -4.223, 0, -0.319, -18.187, 0, 9.203, 0, -118.054, 1.422, 0, -0.948, -442.869, -3.348, 0, 0.716, -47.415, 0, 10.273, 0, -129.364, -3.431, 0, -0.698, -498.603, -3.431, 0, -0.698, -47.415, 0, 10.273, 0, -129.364, 3.348, 0, -0.716, -498.603, 5.747, 0, 0.382, 31.663, 0, 13.324, 0, -144.911, -2.374, 0, 0.924, -536.391, -2.374, 0, 0.924, 31.663, 0, 13.324, 0, -144.911, -5.747, 0, -0.382, -536.391, -1.704, 0, 0.942, -36.86, 0, 10.837, 0, -123.426, -4.762, 0, -0.337, -474.302, -4.762, 0, -0.337, -36.86, 0, 10.837, 0, -123.426, 1.704, 0, -0.942, -474.302, 3.347, 0, 0.424, -60.731, 0, 7.186, 0, -127.514, -1.567, 0, 0.906, -509.192, -1.567, 0, 0.906, -60.731, 0, 7.186, 0, -127.514, -3.347, 0, -0.424, -509.192, -3.779, 0, 0.314, -38.713, 0, 8.22, 0, -101.828, -1.25, 0, -0.949, -405.331, -1.25, 0, -0.949, -38.713, 0, 8.22, 0, -101.828, 3.779, 0, -0.314, -405.331, -3.971, 0, 0.222, 35.975, 0, 7.919, 0, -131.116, -0.904, 0, -0.975, -492.261, -0.904, 0, -0.975, 35.975, 0, 7.919, 0, -131.116, 3.971, 0, -0.222, -492.261, -3.904, 0, 0.764, 35.272, 0, 12.962, 0, -134.19, -4.62, 0, -0.645, -501.652, -4.62, 0, -0.645, 35.272, 0, 12.962, 0, -134.19, 3.904, 0, -0.764, -501.652, 3.926, 0, 0.607, -22.716, 0, 10.206, 0, -125.065, -3.001, 0, 0.794, -471.045, -3.001, 0, 0.794, -22.716, 0, 10.206, 0, -125.065, -3.926, 0, -0.607, -471.045, -1.454, 0, 0.959, -55.557, 0, 10.579, 0, -98.265, -4.912, 0, -0.284, -404.074, -4.912, 0, -0.284, -55.557, 0, 10.579, 0, -98.265, 1.454, 0, -0.959, -404.074, -3.899, 0, 0.601, -24.616, 0, 10.456, 0, -118.642, -2.934, 0, -0.799, -452.34, -2.934, 0, -0.799, -24.616, 0, 10.456, 0, -118.642, 3.899, 0, -0.601, -452.34, 4.837, 0, 0.248, -19.815, 0, 10.701, 0, -109.278, -1.241, 0, 0.969, -415.076, -1.241, 0, 0.969, -19.815, 0, 10.701, 0, -109.278, -4.837, 0, -0.248, -415.076, -0.247, 0, 0.999, -35.246, 0, 10.076, 0, -134.245, -4.873, 0, -0.051, -505.99, -4.873, 0, -0.051, -35.246, 0, 10.076, 0, -134.245, 0.247, 0, -0.999, -505.99, -1.254, 0, 0.969, -20.605, 0, 10.419, 0, -146.263, -4.887, 0, -0.249, -537.605, -4.887, 0, -0.249, -20.605, 0, 10.419, 0, -146.263, 1.254, 0, -0.969, -537.605, 4.865, 0, 0.228, 61.273, 0, 10.32, 0, -139.397, -1.14, 0, 0.974, -543.96, -1.14, 0, 0.974, 61.273, 0, 10.32, 0, -139.397, -4.865, 0, -0.228, -543.96, -5.506, 0, 0.065, 59.433, 0, 11.396, 0, -126.493, -0.356, 0, -0.998, -496.955, -0.356, 0, -0.998, 59.433, 0, 11.396, 0, -126.493, 5.506, 0, -0.065, -496.955, 3.17, 0, 0.344, -16.827, 0, 6.565, 0, -130.017, -1.163, 0, 0.939, -481.045, -1.163, 0, 0.939, -16.827, 0, 6.565, 0, -130.017, -3.17, 0, -0.344, -481.045, 0.298, 0, 0.998, -17.072, 0, 8.969, 0, -134.363, -4.333, 0, 0.069, -495.127, -4.333, 0, 0.069, -17.072, 0, 8.969, 0, -134.363, -0.298, 0, -0.998, -495.127, 3.595, 0, 0.795, -19.197, 0, 12.702, 0, -137.387, -4.713, 0, 0.607, -506.16, -4.713, 0, 0.607, -19.197, 0, 12.702, 0, -137.387, -3.595, 0, -0.795, -506.16, 1.492, 0, 0.954, -19.009, 0, 10.297, 0, -136.057, -4.758, 0, 0.299, -501.646, -4.758, 0, 0.299, -19.009, 0, 10.297, 0, -136.057, -1.492, 0, -0.954, -501.646, 2.91, 0, 0.652, 32.38, 0, 7.466, 0, -120.916, -2.505, 0, 0.758, -459.392, -2.505, 0, 0.758, 32.38, 0, 7.466, 0, -120.916, -2.91, 0, -0.652, -459.392, 4.549, 0, 0.413, 24.006, 0, 10.313, 0, -136.326, -2.061, 0, 0.911, -501.523, -2.061, 0, 0.911, 24.006, 0, 10.313, 0, -136.326, -4.549, 0, -0.413, -501.523, -4.281, 0, 0.444, -42.882, 0, 9.867, 0, -117.353, -2.121, 0, -0.896, -462.978, -2.121, 0, -0.896, -42.882, 0, 9.867, 0, -117.353, 4.281, 0, -0.444, -462.978, -5.583, 0, 0.361, 34.252, 0, 12.828, 0, -117.025, -2.159, 0, -0.933, -450.002, -2.159, 0, -0.933, 34.252, 0, 12.828, 0, -117.025, 5.583, 0, -0.361, -450.002, -3.764, 0, 0.255, 56.927, 0, 7.569, 0, -129.47, -0.993, 0, -0.967, -504.424, -0.993, 0, -0.967, 56.927, 0, 7.569, 0, -129.47, 3.764, 0, -0.255, -504.424, -4.17, 0, 0.732, 26.768, 0, 13.11, 0, -132.524, -4.477, 0, -0.682, -491.027, -4.477, 0, -0.682, 26.768, 0, 13.11, 0, -132.524, 4.17, 0, -0.732, -491.027, 3.169, 0, 0.455, 43.902, 0, 6.921, 0, -103.736, -1.621, 0, 0.89, -410.917, -1.621, 0, 0.89, 43.902, 0, 6.921, 0, -103.736, -3.169, 0, -0.455, -410.917, -4.791, 0, 0.293, 49.879, 0, 10.348, 0, -124.907, -1.466, 0, -0.956, -483.488, -1.466, 0, -0.956, 49.879, 0, 10.348, 0, -124.907, 4.791, 0, -0.293, -483.488, 4.002, 0, 0.091, -41.265, 0, 8.3, 0, -130.993, -0.367, 0, 0.996, -499.183, -0.367, 0, 0.996, -41.265, 0, 8.3, 0, -130.993, -4.002, 0, -0.091, -499.183, -5.469, 0, 0.123, -42.506, 0, 11.809, 0, -134.102, -0.676, 0, -0.992, -514.502, -0.676, 0, -0.992, -42.506, 0, 11.809, 0, -134.102, 5.469, 0, -0.123, -514.502, -4.892, 0, 0.19, 66.374, 0, 10.678, 0, -129.776, -0.948, 0, -0.982, -514.731, -0.948, 0, -0.982, 66.374, 0, 10.678, 0, -129.776, 4.892, 0, -0.19, -514.731, -4.392, 0, 0.491, -35.831, 0, 10.409, 0, -105.484, -2.473, 0, -0.871, -417.74, -2.473, 0, -0.871, -35.831, 0, 10.409, 0, -105.484, 4.392, 0, -0.491, -417.74, -2.591, 0, 0.56, 44.518, 0, 6.082, 0, -129.998, -1.752, 0, -0.828, -495.912, -1.752, 0, -0.828, 44.518, 0, 6.082, 0, -129.998, 2.591, 0, -0.56, -495.912, 5.965, 0, 0.448, 28.045, 0, 14.297, 0, -127.836, -2.988, 0, 0.894, -477.71, -2.988, 0, 0.894, 28.045, 0, 14.297, 0, -127.836, -5.965, 0, -0.448, -477.71, 2.533, 0, 0.834, -19.662, 0, 9.482, 0, -142.159, -3.829, 0, 0.552, -522.991, -3.829, 0, 0.552, -19.662, 0, 9.482, 0, -142.159, -2.533, 0, -0.834, -522.991, 3.953, 0, 0.521, -20.477, 0, 9.564, 0, -147.899, -2.412, 0, 0.854, -542.064, -2.412, 0, 0.854, -20.477, 0, 9.564, 0, -147.899, -3.953, 0, -0.521, -542.064, -4.353, 0, 0.579, -49.057, 0, 11.026, 0, -131.218, -3.092, 0, -0.815, -511.428, -3.092, 0, -0.815, -49.057, 0, 11.026, 0, -131.218, 4.353, 0, -0.579, -511.428, -2.931, 0, 0.756, 38.043, 0, 9.253, 0, -108.346, -3.389, 0, -0.654, -422.511, -3.389, 0, -0.654, 38.043, 0, 9.253, 0, -108.346, 2.931, 0, -0.756, -422.511, 2.604, 0, 0.781, -26.623, 0, 8.1, 0, -134.257, -3.252, 0, 0.625, -500.466, -3.252, 0, 0.625, -26.623, 0, 8.1, 0, -134.257, -2.604, 0, -0.781, -500.466, -5.432, 0, 0.323, -52.523, 0, 11.855, 0, -108.267, -1.854, 0, -0.946, -437.941, -1.854, 0, -0.946, -52.523, 0, 11.855, 0, -108.267, 5.432, 0, -0.323, -437.941, 4.835, 0, 0.462, -52.256, 0, 11.256, 0, -110.243, -2.515, 0, 0.887, -444.089, -2.515, 0, 0.887, -52.256, 0, 11.256, 0, -110.243, -4.835, 0, -0.462, -444.089, 2.296, 0, 0.683, -51.265, 0, 6.11, 0, -105.251, -2.145, 0, 0.731, -427.635, -2.145, 0, 0.731, -51.265, 0, 6.11, 0, -105.251, -2.296, 0, -0.683, -427.635, 1.976, 0, 0.934, 30.931, 0, 11.42, 0, -104.198, -5.165, 0, 0.357, -405.024, -5.165, 0, 0.357, 30.931, 0, 11.42, 0, -104.198, -1.976, 0, -0.934, -405.024, 3.786, 0, 0.108, -19.658, 0, 7.405, 0, -140.132, -0.413, 0, 0.994, -515.922, -0.413, 0, 0.994, -19.658, 0, 7.405, 0, -140.132, -3.786, 0, -0.108, -515.922, 1.92, 0, 0.941, 30.61, 0, 11.744, 0, -142.153, -5.353, 0, 0.338, -525.301, -5.353, 0, 0.338, 30.61, 0, 11.744, 0, -142.153, -1.92, 0, -0.941, -525.301, -1.322, 0, 0.949, 35.89, 0, 8.626, 0, -121.177, -3.962, 0, -0.316, -462.8, -3.962, 0, -0.316, 35.89, 0, 8.626, 0, -121.177, 1.322, 0, -0.949, -462.8) 1 96 SubResource("Mesh_pine_b") PackedFloat32Array(-3.656, 0, 0.639, -55.04, 0, 9.816, 0, -114.965, -3.038, 0, -0.769, -463.697, -3.038, 0, -0.769, -55.04, 0, 9.816, 0, -114.965, 3.656, 0, -0.639, -463.697, -4.162, 0, 0.459, 41.528, 0, 9.676, 0, -113.508, -2.152, 0, -0.888, -444.116, -2.152, 0, -0.888, 41.528, 0, 9.676, 0, -113.508, 4.162, 0, -0.459, -444.116, -0.228, 0, 0.999, 25.423, 0, 8.474, 0, -120.817, -4.352, 0, -0.052, -452.316, -4.352, 0, -0.052, 25.423, 0, 8.474, 0, -120.817, 0.228, 0, -0.999, -452.316, -1.544, 0, 0.961, 52.264, 0, 11.557, 0, -132.459, -5.379, 0, -0.276, -509.466, -5.379, 0, -0.276, 52.264, 0, 11.557, 0, -132.459, 1.544, 0, -0.961, -509.466, 3.447, 0, 0.009, -43.444, 0, 6.702, 0, -108.332, -0.03, 0, 1, -432.965, -0.03, 0, 1, -43.444, 0, 6.702, 0, -108.332, -3.447, 0, -0.009, -432.965, 3.093, 0, 0.875, -21.161, 0, 13.706, 0, -138.42, -5.598, 0, 0.484, -511.237, -5.598, 0, 0.484, -21.161, 0, 13.706, 0, -138.42, -3.093, 0, -0.875, -511.237, 0.84, 0, 0.984, 50.544, 0, 9.695, 0, -106.108, -4.619, 0, 0.179, -424.897, -4.619, 0, 0.179, 50.544, 0, 9.695, 0, -106.108, -0.84, 0, -0.984, -424.897, -3.25, 0, 0.71, -20.695, 0, 9.529, 0, -111.726, -3.275, 0, -0.704, -424.968, -3.275, 0, -0.704, -20.695, 0, 9.529, 0, -111.726, 3.25, 0, -0.71, -424.968, -4.261, 0, 0.054, -25.806, 0, 8.812, 0, -111.825, -0.231, 0, -0.999, -431.397, -0.231, 0, -0.999, -25.806, 0, 8.812, 0, -111.825, 4.261, 0, -0.054, -431.397, 1.891, 0, 0.915, 52.25, 0, 9.666, 0, -140.685, -4.282, 0, 0.404, -538.677, -4.282, 0, 0.404, 52.25, 0, 9.666, 0, -140.685, -1.891, 0, -0.915, -538.677, 4.776, 0, 0.321, 44.674, 0, 10.413, 0, -119.7, -1.617, 0, 0.947, -465.185, -1.617, 0, 0.947, 44.674, 0, 10.413, 0, -119.7, -4.776, 0, -0.321, -465.185, 2.027, 0, 0.846, -52.045, 0, 7.397, 0, -113.724, -3.219, 0, 0.533, -457.318, -3.219, 0, 0.533, -52.045, 0, 7.397, 0, -113.724, -2.027, 0, -0.846, -457.318, -6.916, 0, 0.096, 56.594, 0, 14.888, 0, -123.741, -0.669, 0, -0.995, -485.378, -0.669, 0, -0.995, 56.594, 0, 14.888, 0, -123.741, 6.916, 0, -0.096, -485.378, 4.012, 0, 0.446, -46.388, 0, 8.718, 0, -113.248, -2.001, 0, 0.895, -450.67, -2.001, 0, 0.895, -46.388, 0, 8.718, 0, -113.248, -4.012, 0, -0.446, -450.67, 4.612, 0, 0.427, -19.923, 0, 10.533, 0, -105.861, -2.178, 0, 0.904, -403.027, -2.178, 0, 0.904, -19.923, 0, 10.533, 0, -105.861, -4.612, 0, -0.427, -403.027, 0.417, 0, 0.992, -42.258, 0, 6.524, 0, -101.939, -3.329, 0, 0.124, -408.872, -3.329, 0, 0.124, -42.258, 0, 6.524, 0, -101.939, -0.417, 0, -0.992, -408.872, 0.684, 0, 0.991, -49.42, 0, 11.081, 0, -134.789, -5.126, 0, 0.132, -525.95, -5.126, 0, 0.132, -49.42, 0, 11.081, 0, -134.789, -0.684, 0, -0.991, -525.95, -3.328, 0, 0.505, 58.343, 0, 7.496, 0, -101.025, -1.947, 0, -0.863, -412.949, -1.947, 0, -0.863, 58.343, 0, 7.496, 0, -101.025, 3.328, 0, -0.505, -412.949, 1.615, 0, 0.917, -34.35, 0, 7.874, 0, -117.725, -3.713, 0, 0.399, -458.125, -3.713, 0, 0.399, -34.35, 0, 7.874, 0, -117.725, -1.615, 0, -0.917, -458.125, 5.107, 0, 0.394, 51.582, 0, 11.906, 0, -134.246, -2.189, 0, 0.919, -514.764, -2.189, 0, 0.919, 51.582, 0, 11.906, 0, -134.246, -5.107, 0, -0.394, -514.764, 3.866, 0, 0.534, -45.813, 0, 9.444, 0, -133.528, -2.443, 0, 0.845, -517.253, -2.443, 0, 0.845, -45.813, 0, 9.444, 0, -133.528, -3.866, 0, -0.534, -517.253, -3.055, 0, 0.16, 27.451, 0, 6.017, 0, -145.955, -0.495, 0, -0.987, -537.168, -0.495, 0, -0.987, 27.451, 0, 6.017, 0, -145.955, 3.055, 0, -0.16, -537.168, -4.077, 0, 0.627, 26.159, 0, 10.813, 0, -138.906, -3.285, 0, -0.779, -511.574, -3.285, 0, -0.779, 26.159, 0, 10.813, 0, -138.906, 4.077, 0, -0.627, -511.574, 3.468, 0, 0.133, 42.783, 0, 6.804, 0, -135.307, -0.465, 0, 0.991, -510.605, -0.465, 0, 0.991, 42.783, 0, 6.804, 0, -135.307, -3.468, 0, -0.133, -510.605, -5.297, 0, 0.58, 49.767, 0, 13.93, 0, -104.633, -3.769, 0, -0.815, -418.467, -3.769, 0, -0.815, 49.767, 0, 13.93, 0, -104.633, 5.297, 0, -0.58, -418.467, 5.006, 0, 0.097, 43.177, 0, 10.778, 0, -105.393, -0.487, 0, 0.995, -415.873, -0.487, 0, 0.995, 43.177, 0, 10.778, 0, -105.393, -5.006, 0, -0.097, -415.873, -4.003, 0, 0.181, -33.461, 0, 7.913, 0, -120.661, -0.735, 0, -0.984, -466.209, -0.735, 0, -0.984, -33.461, 0, 7.913, 0, -120.661, 4.003, 0, -0.181, -466.209, -2.885, 0, 0.833, 21.977, 0, 10.772, 0, -108.16, -4.346, 0, -0.553, -409.765, -4.346, 0, -0.553, 21.977, 0, 10.772, 0, -108.16, 2.885, 0, -0.833, -409.765, -0.77, 0, 0.969, 56.01, 0, 6.081, 0, -138.674, -3.031, 0, -0.246, -534.805, -3.031, 0, -0.246, 56.01, 0, 6.081, 0, -138.674, 0.77, 0, -0.969, -534.805, 3.016, 0, 0.302, 46.451, 0, 6.151, 0, -108.587, -0.955, 0, 0.953, -430.291, -0.955, 0, 0.953, 46.451, 0, 6.151, 0, -108.587, -3.016, 0, -0.302, -430.291, -1.619, 0, 0.932, 46.279, 0, 8.7, 0, -141.39, -4.171, 0, -0.362, -534.359, -4.171, 0, -0.362, 46.279, 0, 8.7, 0, -141.39, 1.619, 0, -0.932, -534.359, -4.302, 0, 0.646, 33.992, 0, 11.642, 0, -126.134, -3.642, 0, -0.763, -477.435, -3.642, 0, -0.763, 33.992, 0, 11.642, 0, -126.134, 4.302, 0, -0.646, -477.435, 0.173, 0, 0.999, 37.88, 0, 8.35, 0, -106.151, -4.04, 0, 0.043, -414.353, -4.04, 0, 0.043, 37.88, 0, 8.35, 0, -106.151, -0.173, 0, -0.999, -414.353, -5.088, 0, 0.144, 45.802, 0, 10.619, 0, -106.474, -0.741, 0, -0.99, -422.274, -0.741, 0, -0.99, 45.802, 0, 10.619, 0, -106.474, 5.088, 0, -0.144, -422.274, 5.023, 0, 0.191, -19.204, 0, 10.966, 0, -122.473, -0.978, 0, 0.982, -459.161, -0.978, 0, 0.982, -19.204, 0, 10.966, 0, -122.473, -5.023, 0, -0.191, -459.161, 2.355, 0, 0.649, -58.708, 0, 6.017, 0, -115.01, -2.007, 0, 0.761, -466.304, -2.007, 0, 0.761, -58.708, 0, 6.017, 0, -115.01, -2.355, 0, -0.649, -466.304, 3.686, 0, 0.54, 49.67, 0, 8.515, 0, -116.592, -2.364, 0, 0.842, -459.53, -2.364, 0, 0.842, 49.67, 0, 8.515, 0, -116.592, -3.686, 0, -0.54, -459.53, -5.35, 0, 0.459, -41.088, 0, 12.903, 0, -127.387, -2.762, 0, -0.889, -487.961, -2.762, 0, -0.889, -41.088, 0, 12.903, 0, -127.387, 5.35, 0, -0.459, -487.961, 2.762, 0, 0.834, 29.249, 0, 10.344, 0, -114.453, -4.178, 0, 0.551, -436.735, -4.178, 0, 0.551, 29.249, 0, 10.344, 0, -114.453, -2.762, 0, -0.834, -436.735, 1.182, 0, 0.96, 32.237, 0, 8.22, 0, -146.032, -4.059, 0, 0.28, -542.551, -4.059, 0, 0.28, 32.237, 0, 8.22, 0, -146.032, -1.182, 0, -0.96, -542.551, 3.429, 0, 0.483, 28.351, 0, 8.085, 0, -136.993, -1.889, 0, 0.876, -506.742, -1.889, 0, 0.876, 28.351, 0, 8.085, 0, -136.993, -3.429, 0, -0.483, -506.742, -1.563, 0, 0.951, 68.686, 0, 10.395, 0, -118.087, -4.785, 0, -0.311, -477.926, -4.785, 0, -0.311, 68.686, 0, 10.395, 0, -118.087, 1.563, 0, -0.951, -477.926, 4.178, 0, 0.496, -49.778, 0, 9.936, 0, -133.31, -2.385, 0, 0.868, -520.855, -2.385, 0, 0.868, -49.778, 0, 9.936, 0, -133.31, -4.178, 0, -0.496, -520.855, 1.012, 0, 0.981, 63.86, 0, 10.653, 0, -113.463, -5.058, 0, 0.196, -458.396, -5.058, 0, 0.196, 63.86, 0, 10.653, 0, -113.463, -1.012, 0, -0.981, -458.396, -3.104, 0, 0.13, -20.385, 0, 6.087, 0, -107.498, -0.406, 0, -0.992, -409.369, -0.406, 0, -0.992, -20.385, 0, 6.087, 0, -107.498, 3.104, 0, -0.13, -409.369, 3.836, 0, 0.209, 42.203, 0, 8.101, 0, -108.647, -0.821, 0, 0.978, -427.192, -0.821, 0, 0.978, 42.203, 0, 8.101, 0, -108.647, -3.836, 0, -0.209, -427.192, -4.496, 0, 0.23, 25.478, 0, 9.541, 0, -126.722, -1.061, 0, -0.973, -471.516, -1.061, 0, -0.973, 25.478, 0, 9.541, 0, -126.722, 4.496, 0, -0.23, -471.516, -4.808, 0, 0.062, -23.528, 0, 9.949, 0, -131.676, -0.298, 0, -0.998, -490.375, -0.298, 0, -0.998, -23.528, 0, 9.949, 0, -131.676, 4.808, 0, -0.062, -490.375) 1 88 SubResource("Mesh_pine_a") PackedFloat32Array(-2.196, 0, 0.879, -33.094, 0, 9.511, 0, -182.38, -4.048, 0, -0.477, -677.951, -4.048, 0, -0.477, -33.094, 0, 9.511, 0, -182.38, 2.196, 0, -0.879, -677.951, 4.965, 0, 0.161, -41.537, 0, 10.39, 0, -153.777, -0.81, 0, 0.987, -575.856, -0.81, 0, 0.987, -41.537, 0, 10.39, 0, -153.777, -4.965, 0, -0.161, -575.856, 3.657, 0, 0.011, -49.358, 0, 7.112, 0, -163.254, -0.039, 0, 1, -610.634, -0.039, 0, 1, -49.358, 0, 7.112, 0, -163.254, -3.657, 0, -0.011, -610.634, 2.604, 0, 0.725, -54.87, 0, 7.357, 0, -170.992, -2.745, 0, 0.688, -655.601, -2.745, 0, 0.688, -54.87, 0, 7.357, 0, -170.992, -2.604, 0, -0.725, -655.601, 5.392, 0, 0.333, -38.059, 0, 11.809, 0, -182.042, -1.904, 0, 0.943, -679.763, -1.904, 0, 0.943, -38.059, 0, 11.809, 0, -182.042, -5.392, 0, -0.333, -679.763, -4.275, 0, 0.328, -22.776, 0, 9.347, 0, -160.625, -1.486, 0, -0.945, -582.657, -1.486, 0, -0.945, -22.776, 0, 9.347, 0, -160.625, 4.275, 0, -0.328, -582.657, -2.778, 0, 0.548, 55.908, 0, 6.457, 0, -172.254, -1.819, 0, -0.837, -665.335, -1.819, 0, -0.837, 55.908, 0, 6.457, 0, -172.254, 2.778, 0, -0.548, -665.335, 5.384, 0, 0.308, -40.493, 0, 11.689, 0, -146.151, -1.745, 0, 0.951, -552.483, -1.745, 0, 0.951, -40.493, 0, 11.689, 0, -146.151, -5.384, 0, -0.308, -552.483, -4.433, 0, 0.084, -42.692, 0, 8.65, 0, -172.019, -0.372, 0, -0.996, -645.813, -0.372, 0, -0.996, -42.692, 0, 8.65, 0, -172.019, 4.433, 0, -0.084, -645.813, -4.625, 0, 0.422, 56.935, 0, 10.533, 0, -156.142, -2.151, 0, -0.907, -598.206, -2.151, 0, -0.907, 56.935, 0, 10.533, 0, -156.142, 4.625, 0, -0.422, -598.206, -2.708, 0, 0.862, -44.1, 0, 11.018, 0, -182.038, -4.597, 0, -0.508, -686.259, -4.597, 0, -0.508, -44.1, 0, 11.018, 0, -182.038, 2.708, 0, -0.862, -686.259, -2.214, 0, 0.925, 25.919, 0, 12.479, 0, -170.737, -5.386, 0, -0.38, -618.466, -5.386, 0, -0.38, 25.919, 0, 12.479, 0, -170.737, 2.214, 0, -0.925, -618.466, -3.921, 0, 0.526, 53.392, 0, 9.521, 0, -155.503, -2.424, 0, -0.851, -592.999, -2.424, 0, -0.851, 53.392, 0, 9.521, 0, -155.503, 3.921, 0, -0.526, -592.999, 1.311, 0, 0.979, 29.842, 0, 13.642, 0, -174.43, -6.23, 0, 0.206, -644.143, -6.23, 0, 0.206, 29.842, 0, 13.642, 0, -174.43, -1.311, 0, -0.979, -644.143, 3.958, 0, 0.087, -40.826, 0, 7.726, 0, -144.519, -0.347, 0, 0.996, -547.956, -0.347, 0, 0.996, -40.826, 0, 7.726, 0, -144.519, -3.958, 0, -0.087, -547.956, -0.336, 0, 0.994, 41.297, 0, 5.955, 0, -169.737, -3.044, 0, -0.11, -634.114, -3.044, 0, -0.11, 41.297, 0, 5.955, 0, -169.737, 0.336, 0, -0.994, -634.114, -1.048, 0, 0.979, 23.709, 0, 11.073, 0, -153.709, -5.06, 0, -0.203, -559.964, -5.06, 0, -0.203, 23.709, 0, 11.073, 0, -153.709, 1.048, 0, -0.979, -559.964, -0.368, 0, 0.997, 57.928, 0, 10.028, 0, -175.976, -4.842, 0, -0.076, -684.04, -4.842, 0, -0.076, 57.928, 0, 10.028, 0, -175.976, 0.368, 0, -0.997, -684.04, -0.204, 0, 0.999, 65.188, 0, 8.699, 0, -143.971, -4.469, 0, -0.046, -560.744, -4.469, 0, -0.046, 65.188, 0, 8.699, 0, -143.971, 0.204, 0, -0.999, -560.744, 4.005, 0, 0.639, 33.718, 0, 10.753, 0, -174.802, -3.327, 0, 0.769, -650.69, -3.327, 0, 0.769, 33.718, 0, 10.753, 0, -174.802, -4.005, 0, -0.639, -650.69, -2.19, 0, 0.833, -33.72, 0, 7.689, 0, -175.942, -3.293, 0, -0.554, -652.568, -3.293, 0, -0.554, -33.72, 0, 7.689, 0, -175.942, 2.19, 0, -0.833, -652.568, 4.133, 0, 0.549, 35.521, 0, 10.211, 0, -177.06, -2.714, 0, 0.836, -661.197, -2.714, 0, 0.836, 35.521, 0, 10.211, 0, -177.06, -4.133, 0, -0.549, -661.197, 2.387, 0, 0.871, -26.359, 0, 10.028, 0, -151.749, -4.228, 0, 0.492, -558.564, -4.228, 0, 0.492, -26.359, 0, 10.028, 0, -151.749, -2.387, 0, -0.871, -558.564, -3.273, 0, 0.779, 38.208, 0, 10.772, 0, -162.915, -4.061, 0, -0.628, -603.594, -4.061, 0, -0.628, 38.208, 0, 10.772, 0, -162.915, 3.273, 0, -0.779, -603.594, -1.224, 0, 0.926, 31.637, 0, 6.295, 0, -180.069, -2.997, 0, -0.378, -670.488, -2.997, 0, -0.378, 31.637, 0, 6.295, 0, -180.069, 1.224, 0, -0.926, -670.488, 3.113, 0, 0.766, 42.866, 0, 10.003, 0, -146.026, -3.711, 0, 0.643, -551.513, -3.711, 0, 0.643, 42.866, 0, 10.003, 0, -146.026, -3.113, 0, -0.766, -551.513, -2.016, 0, 0.909, -34.282, 0, 9.999, 0, -174.194, -4.402, 0, -0.416, -644.682, -4.402, 0, -0.416, -34.282, 0, 9.999, 0, -174.194, 2.016, 0, -0.909, -644.682, -4.152, 0, 0.556, 52.549, 0, 10.705, 0, -149.308, -2.777, 0, -0.831, -570.449, -2.777, 0, -0.831, 52.549, 0, 10.705, 0, -149.308, 4.152, 0, -0.556, -570.449, 3.536, 0, 0.569, 31.884, 0, 8.883, 0, -165.726, -2.449, 0, 0.822, -607.455, -2.449, 0, 0.822, 31.884, 0, 8.883, 0, -165.726, -3.536, 0, -0.569, -607.455, 3.35, 0, 0.741, 41.082, 0, 10.298, 0, -175.714, -3.693, 0, 0.672, -662.079, -3.693, 0, 0.672, 41.082, 0, 10.298, 0, -175.714, -3.35, 0, -0.741, -662.079, -2.432, 0, 0.892, 34.327, 0, 11.127, 0, -182.013, -4.808, 0, -0.451, -686.42, -4.808, 0, -0.451, 34.327, 0, 11.127, 0, -182.013, 2.432, 0, -0.892, -686.42, -2.723, 0, 0.838, -55.7, 0, 10.32, 0, -165.647, -4.19, 0, -0.545, -629.762, -4.19, 0, -0.545, -55.7, 0, 10.32, 0, -165.647, 2.723, 0, -0.838, -629.762, -2.544, 0, 0.777, -45.059, 0, 8.345, 0, -143.492, -3.139, 0, -0.63, -548.653, -3.139, 0, -0.63, -45.059, 0, 8.345, 0, -143.492, 2.544, 0, -0.777, -548.653, 5.622, 0, 0.041, -26.799, 0, 11.62, 0, -173.03, -0.231, 0, 0.999, -628.93, -0.231, 0, 0.999, -26.799, 0, 11.62, 0, -173.03, -5.622, 0, -0.041, -628.93, -1.409, 0, 0.969, -34.905, 0, 11.727, 0, -171.969, -5.501, 0, -0.248, -631.903, -5.501, 0, -0.248, -34.905, 0, 11.727, 0, -171.969, 1.409, 0, -0.969, -631.903, -0.625, 0, 0.99, 32.822, 0, 9.164, 0, -164.085, -4.393, 0, -0.141, -602.84, -4.393, 0, -0.141, 32.822, 0, 9.164, 0, -164.085, 0.625, 0, -0.99, -602.84, -0.613, 0, 0.99, 32.838, 0, 9.029, 0, -168.253, -4.329, 0, -0.14, -616.418, -4.329, 0, -0.14, 32.838, 0, 9.029, 0, -168.253, 0.613, 0, -0.99, -616.418, -4.267, 0, 0.258, -40.074, 0, 9.121, 0, -151.132, -1.14, 0, -0.966, -567.41, -1.14, 0, -0.966, -40.074, 0, 9.121, 0, -151.132, 4.267, 0, -0.258, -567.41, -5.231, 0, 0.161, -53.172, 0, 10.946, 0, -168.254, -0.852, 0, -0.987, -640.836, -0.852, 0, -0.987, -53.172, 0, 10.946, 0, -168.254, 5.231, 0, -0.161, -640.836, 2.688, 0, 0.887, -40.597, 0, 12.481, 0, -159.24, -5.167, 0, 0.462, -590.752, -5.167, 0, 0.462, -40.597, 0, 12.481, 0, -159.24, -2.688, 0, -0.887, -590.752, -2.524, 0, 0.808, 31.702, 0, 8.329, 0, -159.749, -3.461, 0, -0.589, -588.381, -3.461, 0, -0.589, 31.702, 0, 8.329, 0, -159.749, 2.524, 0, -0.808, -588.381, 3.363, 0, 0.594, 23.043, 0, 8.132, 0, -173.573, -2.486, 0, 0.804, -628.038, -2.486, 0, 0.804, 23.043, 0, 8.132, 0, -173.573, -3.363, 0, -0.594, -628.038, -3.264, 0, 0.34, -33.51, 0, 6.748, 0, -163.224, -1.178, 0, -0.941, -597.624, -1.178, 0, -0.941, -33.51, 0, 6.748, 0, -163.224, 3.264, 0, -0.34, -597.624, -0.547, 0, 0.994, 44.853, 0, 10.247, 0, -159.325, -4.931, 0, -0.11, -598.501, -4.931, 0, -0.11, 44.853, 0, 10.247, 0, -159.325, 0.547, 0, -0.994, -598.501) 1 74 SubResource("Mesh_pine_b") PackedFloat32Array(-2.621, 0, 0.727, 35.995, 0, 7.422, 0, -170.412, -2.775, 0, -0.687, -629.231, -2.775, 0, -0.687, 35.995, 0, 7.422, 0, -170.412, 2.621, 0, -0.727, -629.231, 6.311, 0, 0.257, 55.793, 0, 13.993, 0, -177.505, -1.677, 0, 0.966, -688.933, -1.677, 0, 0.966, 55.793, 0, 13.993, 0, -177.505, -6.311, 0, -0.257, -688.933, 4.464, 0, 0.105, 30.292, 0, 8.728, 0, -157.691, -0.472, 0, 0.994, -580.734, -0.472, 0, 0.994, 30.292, 0, 8.728, 0, -157.691, -4.464, 0, -0.105, -580.734, -4.079, 0, 0.696, 36.593, 0, 12.176, 0, -178.125, -3.955, 0, -0.718, -666.191, -3.955, 0, -0.718, 36.593, 0, 12.176, 0, -178.125, 4.079, 0, -0.696, -666.191, -3.668, 0, 0.739, 33.44, 0, 11.25, 0, -154.208, -4.028, 0, -0.673, -571.497, -4.028, 0, -0.673, 33.44, 0, 11.25, 0, -154.208, 3.668, 0, -0.739, -571.497, -3.829, 0, 0.65, 27.227, 0, 10.41, 0, -159.781, -3.279, 0, -0.76, -584.186, -3.279, 0, -0.76, 27.227, 0, 10.41, 0, -159.781, 3.829, 0, -0.65, -584.186, 2.921, 0, 0.827, -38.572, 0, 10.723, 0, -149.292, -4.293, 0, 0.563, -561.346, -4.293, 0, 0.563, -38.572, 0, 10.723, 0, -149.292, -2.921, 0, -0.827, -561.346, 1.21, 0, 0.958, 36.375, 0, 8.247, 0, -180.549, -4.065, 0, 0.285, -680.78, -4.065, 0, 0.285, 36.375, 0, 8.247, 0, -180.549, -1.21, 0, -0.958, -680.78, -3.318, 0, 0.571, 31.418, 0, 7.859, 0, -153.267, -2.309, 0, -0.821, -566.323, -2.309, 0, -0.821, 31.418, 0, 7.859, 0, -153.267, 3.318, 0, -0.571, -566.323, -3.821, 0, 0.794, -25.783, 0, 13.469, 0, -171.238, -4.991, 0, -0.608, -619.236, -4.991, 0, -0.608, -25.783, 0, 13.469, 0, -171.238, 3.821, 0, -0.794, -619.236, -2.479, 0, 0.593, -54.499, 0, 5.985, 0, -164.582, -1.825, 0, -0.805, -621.544, -1.825, 0, -0.805, -54.499, 0, 5.985, 0, -164.582, 2.479, 0, -0.593, -621.544, -2.178, 0, 0.804, -60.67, 0, 7.129, 0, -170.615, -2.949, 0, -0.594, -658.25, -2.949, 0, -0.594, -60.67, 0, 7.129, 0, -170.615, 2.178, 0, -0.804, -658.25, 5.133, 0, 0.256, -62.457, 0, 10.966, 0, -167.056, -1.358, 0, 0.967, -644.157, -1.358, 0, 0.967, -62.457, 0, 10.966, 0, -167.056, -5.133, 0, -0.256, -644.157, -1.859, 0, 0.925, 25.162, 0, 10.512, 0, -175.818, -4.539, 0, -0.379, -642.96, -4.539, 0, -0.379, 25.162, 0, 10.512, 0, -175.818, 1.859, 0, -0.925, -642.96, -4.418, 0, 0.515, 58.454, 0, 10.648, 0, -159.714, -2.657, 0, -0.857, -610.144, -2.657, 0, -0.857, 58.454, 0, 10.648, 0, -159.714, 4.418, 0, -0.515, -610.144, 3.106, 0, 0.731, -26.917, 0, 9.406, 0, -174.052, -3.331, 0, 0.682, -634.447, -3.331, 0, 0.682, -26.917, 0, 9.406, 0, -174.052, -3.106, 0, -0.731, -634.447, 0.615, 0, 0.989, -31.366, 0, 8.628, 0, -184.859, -4.132, 0, 0.147, -689.846, -4.132, 0, 0.147, -31.366, 0, 8.628, 0, -184.859, -0.615, 0, -0.989, -689.846, 5.046, 0, 0.37, 35.704, 0, 11.218, 0, -179.669, -2.011, 0, 0.929, -673.089, -2.011, 0, 0.929, 35.704, 0, 11.218, 0, -179.669, -5.046, 0, -0.37, -673.089, 3.035, 0, 0.667, 67.661, 0, 8.411, 0, -167.461, -2.715, 0, 0.745, -656.901, -2.715, 0, 0.745, 67.661, 0, 8.411, 0, -167.461, -3.035, 0, -0.667, -656.901, -2.606, 0, 0.775, 29.925, 0, 8.013, 0, -171.188, -3.192, 0, -0.632, -626.298, -3.192, 0, -0.632, 29.925, 0, 8.013, 0, -171.188, 2.606, 0, -0.775, -626.298, 4.868, 0, 0.231, 33.945, 0, 10.332, 0, -172.24, -1.155, 0, 0.973, -636.89, -1.155, 0, 0.973, 33.945, 0, 10.332, 0, -172.24, -4.868, 0, -0.231, -636.89, 4.453, 0, 0.042, 40.858, 0, 9.204, 0, -149.875, -0.188, 0, 0.999, -563.004, -0.188, 0, 0.999, 40.858, 0, 9.204, 0, -149.875, -4.453, 0, -0.042, -563.004, 3.871, 0, 0.041, -46.358, 0, 7.533, 0, -170.088, -0.16, 0, 0.999, -641.42, -0.16, 0, 0.999, -46.358, 0, 7.533, 0, -170.088, -3.871, 0, -0.041, -641.42, 2.824, 0, 0.705, 57.086, 0, 7.745, 0, -158.28, -2.809, 0, 0.709, -605.188, -2.809, 0, 0.709, 57.086, 0, 7.745, 0, -158.28, -2.824, 0, -0.705, -605.188, -1.472, 0, 0.967, -31.323, 0, 12.433, 0, -180.73, -5.612, 0, -0.254, -670.431, -5.612, 0, -0.254, -31.323, 0, 12.433, 0, -180.73, 1.472, 0, -0.967, -670.431, -3.066, 0, 0.708, -38.52, 0, 8.447, 0, -183.075, -3.077, 0, -0.706, -684.821, -3.077, 0, -0.706, -38.52, 0, 8.447, 0, -183.075, 3.066, 0, -0.708, -684.821, 3.179, 0, 0.538, -46.955, 0, 7.331, 0, -170.935, -2.028, 0, 0.843, -646.972, -2.028, 0, 0.843, -46.955, 0, 7.331, 0, -170.935, -3.179, 0, -0.538, -646.972, 2.192, 0, 0.924, 25.681, 0, 12.307, 0, -163.55, -5.308, 0, 0.382, -594.959, -5.308, 0, 0.382, 25.681, 0, 12.307, 0, -163.55, -2.192, 0, -0.924, -594.959, -1.405, 0, 0.919, 37.972, 0, 6.927, 0, -147.309, -3.274, 0, -0.394, -552.364, -3.274, 0, -0.394, 37.972, 0, 6.927, 0, -147.309, 1.405, 0, -0.919, -552.364, -3.377, 0, 0.615, -32.958, 0, 8.843, 0, -177.36, -2.633, 0, -0.789, -657.871, -2.633, 0, -0.789, -32.958, 0, 8.843, 0, -177.36, 3.377, 0, -0.615, -657.871, 3.171, 0, 0.865, 58.008, 0, 13.538, 0, -167.646, -5.464, 0, 0.502, -646.787, -5.464, 0, 0.502, 58.008, 0, 13.538, 0, -167.646, -3.171, 0, -0.865, -646.787, -2.834, 0, 0.6, 23.755, 0, 6.89, 0, -185.179, -2.127, 0, -0.8, -689.813, -2.127, 0, -0.8, 23.755, 0, 6.89, 0, -185.179, 2.834, 0, -0.6, -689.813, 4.469, 0, 0.176, 42.428, 0, 9.376, 0, -180.237, -0.799, 0, 0.984, -685.869, -0.799, 0, 0.984, 42.428, 0, 9.376, 0, -180.237, -4.469, 0, -0.176, -685.869, 1.592, 0, 0.857, 49.76, 0, 6.005, 0, -168.847, -2.646, 0, 0.516, -642.54, -2.646, 0, 0.516, 49.76, 0, 6.005, 0, -168.847, -1.592, 0, -0.857, -642.54, 5.612, 0, 0.264, 41.749, 0, 12.469, 0, -147.985, -1.538, 0, 0.964, -557.305, -1.538, 0, 0.964, 41.749, 0, 12.469, 0, -147.985, -5.612, 0, -0.264, -557.305, -3.786, 0, 0.637, -41.823, 0, 10.145, 0, -165.387, -3.13, 0, -0.771, -610.513, -3.13, 0, -0.771, -41.823, 0, 10.145, 0, -165.387, 3.786, 0, -0.637, -610.513, -1.892, 0, 0.9, -58.599, 0, 8.974, 0, -167.429, -3.912, 0, -0.435, -642.298, -3.912, 0, -0.435, -58.599, 0, 8.974, 0, -167.429, 1.892, 0, -0.9, -642.298) 1 58 SubResource("Mesh_pine_a") PackedFloat32Array(-0.377, 0, 0.997, 32.708, 0, 10.563, 0, -211.437, -5.101, 0, -0.074, -831.678, -5.101, 0, -0.074, 32.708, 0, 10.563, 0, -211.437, 0.377, 0, -0.997, -831.678, -3.286, 0, 0.741, 37.543, 0, 10.481, 0, -196.243, -3.623, 0, -0.672, -766.781, -3.623, 0, -0.672, 37.543, 0, 10.481, 0, -196.243, 3.286, 0, -0.741, -766.781, 2.655, 0, 0.74, 36.824, 0, 7.675, 0, -207.464, -2.921, 0, 0.673, -817.581, -2.921, 0, 0.673, 36.824, 0, 7.675, 0, -207.464, -2.655, 0, -0.74, -817.581, -4.057, 0, 0.789, -27.773, 0, 14.151, 0, -205.386, -5.21, 0, -0.614, -795.499, -5.21, 0, -0.614, -27.773, 0, 14.151, 0, -205.386, 4.057, 0, -0.789, -795.499, -0.061, 0, 1, 36.968, 0, 7.534, 0, -191.164, -3.874, 0, -0.016, -742.828, -3.874, 0, -0.016, 36.968, 0, 7.534, 0, -191.164, 0.061, 0, -1, -742.828, 0.393, 0, 0.995, 30.993, 0, 7.571, 0, -186.574, -3.874, 0, 0.101, -715.37, -3.874, 0, 0.101, 30.993, 0, 7.571, 0, -186.574, -0.393, 0, -0.995, -715.37, -3.784, 0, 0.606, 46.652, 0, 9.823, 0, -182.08, -2.882, 0, -0.795, -705.925, -2.882, 0, -0.795, 46.652, 0, 9.823, 0, -182.08, 3.784, 0, -0.606, -705.925, -3.284, 0, 0.749, 24.128, 0, 10.235, 0, -187.058, -3.711, 0, -0.663, -701.608, -3.711, 0, -0.663, 24.128, 0, 10.235, 0, -187.058, 3.284, 0, -0.749, -701.608, 3.173, 0, 0.819, 38.845, 0, 11.422, 0, -203.547, -4.53, 0, 0.574, -797.414, -4.53, 0, 0.574, 38.845, 0, 11.422, 0, -203.547, -3.173, 0, -0.819, -797.414, 1.849, 0, 0.906, -47.729, 0, 8.496, 0, -199.197, -3.958, 0, 0.423, -784.849, -3.958, 0, 0.423, -47.729, 0, 8.496, 0, -199.197, -1.849, 0, -0.906, -784.849, 2.208, 0, 0.862, 30.832, 0, 8.997, 0, -189.634, -3.755, 0, 0.507, -731.313, -3.755, 0, 0.507, 30.832, 0, 8.997, 0, -189.634, -2.208, 0, -0.862, -731.313, 0.342, 0, 0.996, 55.385, 0, 8.245, 0, -192.41, -3.978, 0, 0.086, -765.48, -3.978, 0, 0.086, 55.385, 0, 8.245, 0, -192.41, -0.342, 0, -0.996, -765.48, -3.191, 0, 0.491, -35.408, 0, 7.122, 0, -200.475, -1.798, 0, -0.871, -780.585, -1.798, 0, -0.871, -35.408, 0, 7.122, 0, -200.475, 3.191, 0, -0.491, -780.585, 0.375, 0, 0.996, 20.574, 0, 8.552, 0, -195.339, -4.382, 0, 0.085, -740.375, -4.382, 0, 0.085, 20.574, 0, 8.552, 0, -195.339, -0.375, 0, -0.996, -740.375, -3.115, 0, 0.493, 25.42, 0, 6.96, 0, -188.919, -1.763, 0, -0.87, -716.56, -1.763, 0, -0.87, 25.42, 0, 6.96, 0, -188.919, 3.115, 0, -0.493, -716.56, -4.399, 0, 0.063, -29.588, 0, 8.57, 0, -191.805, -0.279, 0, -0.998, -725.266, -0.279, 0, -0.998, -29.588, 0, 8.57, 0, -191.805, 4.399, 0, -0.063, -725.266, 4.781, 0, 0.343, -43.502, 0, 10.512, 0, -186.288, -1.746, 0, 0.939, -712.425, -1.746, 0, 0.939, -43.502, 0, 10.512, 0, -186.288, -4.781, 0, -0.343, -712.425, 3.583, 0, 0.019, 23.976, 0, 6.968, 0, -213.089, -0.067, 0, 1, -831.66, -0.067, 0, 1, 23.976, 0, 6.968, 0, -213.089, -3.583, 0, -0.019, -831.66, -3.235, 0, 0.241, 56.702, 0, 6.48, 0, -206.359, -0.802, 0, -0.971, -831.299, -0.802, 0, -0.971, 56.702, 0, 6.48, 0, -206.359, 3.235, 0, -0.241, -831.299, -6.41, 0, 0.14, -63.65, 0, 13.873, 0, -179.163, -0.908, 0, -0.99, -698.724, -0.908, 0, -0.99, -63.65, 0, 13.873, 0, -179.163, 6.41, 0, -0.14, -698.724, -2.687, 0, 0.793, 50.449, 0, 8.582, 0, -201.695, -3.502, 0, -0.609, -799.008, -3.502, 0, -0.609, 50.449, 0, 8.582, 0, -201.695, 2.687, 0, -0.793, -799.008, 0.439, 0, 0.997, 29.864, 0, 11.767, 0, -205.232, -5.681, 0, 0.077, -797.986, -5.681, 0, 0.077, 29.864, 0, 11.767, 0, -205.232, -0.439, 0, -0.997, -797.986, -3.704, 0, 0.132, 37.551, 0, 7.266, 0, -206.155, -0.494, 0, -0.991, -811.179, -0.494, 0, -0.991, 37.551, 0, 7.266, 0, -206.155, 3.704, 0, -0.132, -811.179, -0.126, 0, 1, 39.508, 0, 14.273, 0, -194.138, -6.66, 0, -0.019, -757.102, -6.66, 0, -0.019, 39.508, 0, 14.273, 0, -194.138, 0.126, 0, -1, -757.102, 1.024, 0, 0.988, 44.131, 0, 14.154, 0, -191.183, -6.525, 0, 0.155, -748.587, -6.525, 0, 0.155, 44.131, 0, 14.154, 0, -191.183, -1.024, 0, -0.988, -748.587, -1.407, 0, 0.935, 25.223, 0, 8.169, 0, -192.158, -3.697, 0, -0.356, -732.98, -3.697, 0, -0.356, 25.223, 0, 8.169, 0, -192.158, 1.407, 0, -0.935, -732.98, 4.466, 0, 0.452, -40.612, 0, 10.341, 0, -200.73, -2.264, 0, 0.892, -785.964, -2.264, 0, 0.892, -40.612, 0, 10.341, 0, -200.73, -4.466, 0, -0.452, -785.964, 4.724, 0, 0.575, -38.749, 0, 12.371, 0, -184.488, -3.318, 0, 0.818, -695.018, -3.318, 0, 0.818, -38.749, 0, 12.371, 0, -184.488, -4.724, 0, -0.575, -695.018, 1.018, 0, 0.974, -65.599, 0, 8.735, 0, -199.032, -4.375, 0, 0.227, -798.877, -4.375, 0, 0.227, -65.599, 0, 8.735, 0, -199.032, -1.018, 0, -0.974, -798.877) 1 58 SubResource("Mesh_pine_b") PackedFloat32Array(4.326, 0, 0.699, 56.868, 0, 12.958, 0, -184.71, -4.226, 0, 0.715, -733.81, -4.226, 0, 0.715, 56.868, 0, 12.958, 0, -184.71, -4.326, 0, -0.699, -733.81, -1.35, 0, 0.964, 59.664, 0, 10.864, 0, -204.843, -4.887, 0, -0.266, -826.341, -4.887, 0, -0.266, 59.664, 0, 10.864, 0, -204.843, 1.35, 0, -0.964, -826.341, -3.254, 0, 0.616, 25.545, 0, 8.034, 0, -201.018, -2.546, 0, -0.788, -774.27, -2.546, 0, -0.788, 25.545, 0, 8.034, 0, -201.018, 3.254, 0, -0.616, -774.27, 5.407, 0, 0.583, 32.225, 0, 14.264, 0, -206.202, -3.883, 0, 0.812, -806.435, -3.883, 0, 0.812, 32.225, 0, 14.264, 0, -206.202, -5.407, 0, -0.583, -806.435, 3.748, 0, 0.461, 35.276, 0, 8.214, 0, -208.786, -1.948, 0, 0.887, -822.733, -1.948, 0, 0.887, 35.276, 0, 8.214, 0, -208.786, -3.748, 0, -0.461, -822.733, 5.295, 0, 0.042, 26.396, 0, 10.944, 0, -206.367, -0.222, 0, 0.999, -801.044, -0.222, 0, 0.999, 26.396, 0, 10.944, 0, -206.367, -5.295, 0, -0.042, -801.044, 1.573, 0, 0.927, 62.596, 0, 8.145, 0, -180.834, -3.882, 0, 0.376, -719.986, -3.882, 0, 0.376, 62.596, 0, 8.145, 0, -180.834, -1.573, 0, -0.927, -719.986, 4.744, 0, 0.266, 31.984, 0, 10.544, 0, -185.65, -1.307, 0, 0.964, -704.992, -1.307, 0, 0.964, 31.984, 0, 10.544, 0, -185.65, -4.744, 0, -0.266, -704.992, 3.847, 0, 0.69, -42.327, 0, 10.975, 0, -187.23, -3.667, 0, 0.724, -716.591, -3.667, 0, 0.724, -42.327, 0, 10.975, 0, -187.23, -3.847, 0, -0.69, -716.591, 2.853, 0, 0.664, 34.286, 0, 7.416, 0, -194.573, -2.531, 0, 0.748, -753.345, -2.531, 0, 0.748, 34.286, 0, 7.416, 0, -194.573, -2.853, 0, -0.664, -753.345, -3.679, 0, 0.593, -58.661, 0, 9.437, 0, -202.663, -2.711, 0, -0.805, -816.375, -2.711, 0, -0.805, -58.661, 0, 9.437, 0, -202.663, 3.679, 0, -0.593, -816.375, 4.774, 0, 0.545, 35.268, 0, 11.76, 0, -197.812, -3.103, 0, 0.838, -771.1, -3.103, 0, 0.838, 35.268, 0, 11.76, 0, -197.812, -4.774, 0, -0.545, -771.1, 3.797, 0, 0.732, 31.661, 0, 11.943, 0, -207.804, -4.079, 0, 0.681, -814.12, -4.079, 0, 0.681, 31.661, 0, 11.943, 0, -207.804, -3.797, 0, -0.732, -814.12, -5.857, 0, 0.171, -29.933, 0, 12.738, 0, -200.92, -1.015, 0, -0.985, -778.254, -1.015, 0, -0.985, -29.933, 0, 12.738, 0, -200.92, 5.857, 0, -0.171, -778.254, -4.291, 0, 0.108, -44.891, 0, 8.393, 0, -200.565, -0.468, 0, -0.994, -788.456, -0.468, 0, -0.994, -44.891, 0, 8.393, 0, -200.565, 4.291, 0, -0.108, -788.456, 3.619, 0, 0.736, 40.763, 0, 11.035, 0, -183.088, -3.931, 0, 0.677, -699.632, -3.931, 0, 0.677, 40.763, 0, 11.035, 0, -183.088, -3.619, 0, -0.736, -699.632, 5.407, 0, 0.307, -44.511, 0, 11.733, 0, -189.162, -1.743, 0, 0.952, -725.773, -1.743, 0, 0.952, -44.511, 0, 11.733, 0, -189.162, -5.407, 0, -0.307, -725.773, 3.985, 0, 0.468, -27.314, 0, 9.311, 0, -189.04, -2.108, 0, 0.884, -708.547, -2.108, 0, 0.884, -27.314, 0, 9.311, 0, -189.04, -3.985, 0, -0.468, -708.547, -4.033, 0, 0.324, 55.034, 0, 8.288, 0, -178.911, -1.381, 0, -0.946, -696.615, -1.381, 0, -0.946, 55.034, 0, 8.288, 0, -178.911, 4.033, 0, -0.324, -696.615, -1.68, 0, 0.854, -42.085, 0, 6.277, 0, -202.291, -2.757, 0, -0.52, -794.628, -2.757, 0, -0.52, -42.085, 0, 6.277, 0, -202.291, 1.68, 0, -0.854, -794.628, 1.81, 0, 0.964, 51.388, 0, 14.504, 0, -206.09, -6.522, 0, 0.267, -823.476, -6.522, 0, 0.267, 51.388, 0, 14.504, 0, -206.09, -1.81, 0, -0.964, -823.476, -3.557, 0, 0.686, -35.942, 0, 10.481, 0, -188.391, -3.357, 0, -0.727, -715.699, -3.357, 0, -0.727, -35.942, 0, 10.481, 0, -188.391, 3.557, 0, -0.686, -715.699, -2.658, 0, 0.824, -38.533, 0, 9.675, 0, -204.431, -3.858, 0, -0.567, -802.042, -3.858, 0, -0.567, -38.533, 0, 9.675, 0, -204.431, 2.658, 0, -0.824, -802.042, -5.205, 0, 0.124, -39.061, 0, 10.833, 0, -206.674, -0.652, 0, -0.992, -818.541, -0.652, 0, -0.992, -39.061, 0, 10.833, 0, -206.674, 5.205, 0, -0.124, -818.541, -3.067, 0, 0.359, 31.333, 0, 6.39, 0, -197.717, -1.181, 0, -0.933, -766.947, -1.181, 0, -0.933, 31.333, 0, 6.39, 0, -197.717, 3.067, 0, -0.359, -766.947, 2.296, 0, 0.828, -29.607, 0, 7.958, 0, -203.457, -3.388, 0, 0.561, -787.826, -3.388, 0, 0.561, -29.607, 0, 7.958, 0, -203.457, -2.296, 0, -0.828, -787.826, -1.459, 0, 0.932, 31.824, 0, 8.317, 0, -203.611, -3.754, 0, -0.362, -789.706, -3.754, 0, -0.362, 31.824, 0, 8.317, 0, -203.611, 1.459, 0, -0.932, -789.706, 3.557, 0, 0.73, -30.047, 0, 10.743, 0, -207.759, -3.796, 0, 0.684, -811.87, -3.796, 0, 0.684, -30.047, 0, 10.743, 0, -207.759, -3.557, 0, -0.73, -811.87, 0.313, 0, 0.998, -48.295, 0, 10.859, 0, -203.638, -5.249, 0, 0.06, -809.179, -5.249, 0, 0.06, -48.295, 0, 10.859, 0, -203.638, -0.313, 0, -0.998, -809.179) 1 108 SubResource("Mesh_pine_a") PackedFloat32Array(-3.319, 0, 0.566, 51.294, 0, 8.317, 0, -250.587, -2.281, 0, -0.824, -976.34, -2.281, 0, -0.824, 51.294, 0, 8.317, 0, -250.587, 3.319, 0, -0.566, -976.34, -2.588, 0, 0.679, 72.515, 0, 6.859, 0, -234.628, -2.396, 0, -0.734, -948.769, -2.396, 0, -0.734, 72.515, 0, 6.859, 0, -234.628, 2.588, 0, -0.679, -948.769, 3.43, 0, 0.493, -35.849, 0, 8.142, 0, -215.288, -1.943, 0, 0.87, -860.767, -1.943, 0, 0.87, -35.849, 0, 8.142, 0, -215.288, -3.43, 0, -0.493, -860.767, -4.832, 0, 0.446, -30.092, 0, 11.152, 0, -218.346, -2.41, 0, -0.895, -870.064, -2.41, 0, -0.895, -30.092, 0, 11.152, 0, -218.346, 4.832, 0, -0.446, -870.064, 6.59, 0, 0.246, -46.61, 0, 14.568, 0, -211.943, -1.671, 0, 0.969, -853.641, -1.671, 0, 0.969, -46.61, 0, 14.568, 0, -211.943, -6.59, 0, -0.246, -853.641, 4.152, 0, 0.6, 56.677, 0, 10.714, 0, -233.34, -3.111, 0, 0.8, -937.955, -3.111, 0, 0.8, 56.677, 0, 10.714, 0, -233.34, -4.152, 0, -0.6, -937.955, -4.859, 0, 0.399, -39.392, 0, 10.944, 0, -235.996, -2.113, 0, -0.917, -929.802, -2.113, 0, -0.917, -39.392, 0, 10.944, 0, -235.996, 4.859, 0, -0.399, -929.802, 5.367, 0, 0.044, 52.05, 0, 11.512, 0, -247.593, -0.238, 0, 0.999, -969.021, -0.238, 0, 0.999, 52.05, 0, 11.512, 0, -247.593, -5.367, 0, -0.044, -969.021, -4.671, 0, 0.517, 35.714, 0, 11.267, 0, -230.934, -2.818, 0, -0.856, -918.545, -2.818, 0, -0.856, 35.714, 0, 11.267, 0, -230.934, 4.671, 0, -0.517, -918.545, -3.689, 0, 0.28, -30.425, 0, 7.472, 0, -215.079, -1.075, 0, -0.96, -853.92, -1.075, 0, -0.96, -30.425, 0, 7.472, 0, -215.079, 3.689, 0, -0.28, -853.92, -1.407, 0, 0.961, 30.565, 0, 10.887, 0, -239.962, -4.882, 0, -0.277, -936.176, -4.882, 0, -0.277, 30.565, 0, 10.887, 0, -239.962, 1.407, 0, -0.961, -936.176, 5.797, 0, 0.55, -10.817, 0, 14.873, 0, -244.876, -3.817, 0, 0.835, -953.893, -3.817, 0, 0.835, -10.817, 0, 14.873, 0, -244.876, -5.797, 0, -0.55, -953.893, 4.092, 0, 0.486, 27.092, 0, 9.667, 0, -233.109, -2.273, 0, 0.874, -916.676, -2.273, 0, 0.874, 27.092, 0, 9.667, 0, -233.109, -4.092, 0, -0.486, -916.676, -3.868, 0, 0.275, 61.196, 0, 7.824, 0, -210.025, -1.108, 0, -0.961, -861.243, -1.108, 0, -0.961, 61.196, 0, 7.824, 0, -210.025, 3.868, 0, -0.275, -861.243, 5.107, 0, 0.386, 48.683, 0, 11.436, 0, -246.766, -2.14, 0, 0.922, -965.439, -2.14, 0, 0.922, 48.683, 0, 11.436, 0, -246.766, -5.107, 0, -0.386, -965.439, -3.968, 0, 0.701, -50.185, 0, 11.492, 0, -214.364, -3.901, 0, -0.713, -869.386, -3.901, 0, -0.713, -50.185, 0, 11.492, 0, -214.364, 3.968, 0, -0.701, -869.386, 4.549, 0, 0.579, 37.788, 0, 11.959, 0, -215.621, -3.233, 0, 0.815, -862.47, -3.233, 0, 0.815, 37.788, 0, 11.959, 0, -215.621, -4.549, 0, -0.579, -862.47, -3.467, 0, 0.552, -56.01, 0, 8.584, 0, -249.237, -2.293, 0, -0.834, -969.099, -2.293, 0, -0.834, -56.01, 0, 8.584, 0, -249.237, 3.467, 0, -0.552, -969.099, 2.451, 0, 0.649, -38.531, 0, 6.268, 0, -224.452, -2.093, 0, 0.76, -898.963, -2.093, 0, 0.76, -38.531, 0, 6.268, 0, -224.452, -2.451, 0, -0.649, -898.963, 5.117, 0, 0.047, 34.969, 0, 10.579, 0, -217.389, -0.243, 0, 0.999, -875.06, -0.243, 0, 0.999, 34.969, 0, 10.579, 0, -217.389, -5.117, 0, -0.047, -875.06, -1.545, 0, 0.975, -47.981, 0, 14.987, 0, -230.37, -6.821, 0, -0.221, -920.439, -6.821, 0, -0.221, -47.981, 0, 14.987, 0, -230.37, 1.545, 0, -0.975, -920.439, 0.931, 0, 0.976, -31.537, 0, 8.77, 0, -220.206, -4.143, 0, 0.219, -878.385, -4.143, 0, 0.219, -31.537, 0, 8.77, 0, -220.206, -0.931, 0, -0.976, -878.385, -5.641, 0, 0.154, 51.906, 0, 11.79, 0, -241.33, -0.88, 0, -0.988, -953.636, -0.88, 0, -0.988, 51.906, 0, 11.79, 0, -241.33, 5.641, 0, -0.154, -953.636, -3.406, 0, 0.65, -49.676, 0, 8.714, 0, -210.02, -2.912, 0, -0.76, -847.398, -2.912, 0, -0.76, -49.676, 0, 8.714, 0, -210.02, 3.406, 0, -0.65, -847.398, 3.08, 0, 0.455, -73.484, 0, 6.725, 0, -231.097, -1.574, 0, 0.89, -936.34, -1.574, 0, 0.89, -73.484, 0, 6.725, 0, -231.097, -3.08, 0, -0.455, -936.34, 2.688, 0, 0.732, 32.958, 0, 8.153, 0, -216.847, -2.891, 0, 0.681, -867.593, -2.891, 0, 0.681, 32.958, 0, 8.153, 0, -216.847, -2.688, 0, -0.732, -867.593, -3.16, 0, 0.732, -30.17, 0, 9.585, 0, -252.236, -3.399, 0, -0.681, -976.433, -3.399, 0, -0.681, -30.17, 0, 9.585, 0, -252.236, 3.16, 0, -0.732, -976.433, 5.728, 0, 0.061, 24.314, 0, 11.851, 0, -229.233, -0.35, 0, 0.998, -903.857, -0.35, 0, 0.998, 24.314, 0, 11.851, 0, -229.233, -5.728, 0, -0.061, -903.857, 6.578, 0, 0.266, -33.669, 0, 14.621, 0, -224.41, -1.813, 0, 0.964, -893.879, -1.813, 0, 0.964, -33.669, 0, 14.621, 0, -224.41, -6.578, 0, -0.266, -893.879, 1.351, 0, 0.93, -59.676, 0, 7.161, 0, -224.833, -3.426, 0, 0.367, -913.215, -3.426, 0, 0.367, -59.676, 0, 7.161, 0, -224.833, -1.351, 0, -0.93, -913.215, -4.019, 0, 0.787, 45.448, 0, 13.946, 0, -219.308, -5.119, 0, -0.618, -891.436, -5.119, 0, -0.618, 45.448, 0, 13.946, 0, -219.308, 4.019, 0, -0.787, -891.436, 2.048, 0, 0.91, 51.575, 0, 10.595, 0, -225.495, -4.5, 0, 0.414, -915.682, -4.5, 0, 0.414, 51.575, 0, 10.595, 0, -225.495, -2.048, 0, -0.91, -915.682, -5.577, 0, 0.169, -20.551, 0, 11.687, 0, -227.745, -0.959, 0, -0.986, -897.96, -0.959, 0, -0.986, -20.551, 0, 11.687, 0, -227.745, 5.577, 0, -0.169, -897.96, 3.245, 0, 0.252, 40.389, 0, 6.521, 0, -212.804, -0.845, 0, 0.968, -845.528, -0.845, 0, 0.968, 40.389, 0, 6.521, 0, -212.804, -3.245, 0, -0.252, -845.528, 0.346, 0, 0.995, 37.787, 0, 6.617, 0, -235.857, -3.386, 0, 0.102, -932.635, -3.386, 0, 0.102, 37.787, 0, 6.617, 0, -235.857, -0.346, 0, -0.995, -932.635, -0.312, 0, 0.998, 33.559, 0, 10.811, 0, -241.74, -5.225, 0, -0.06, -943.455, -5.225, 0, -0.06, 33.559, 0, 10.811, 0, -241.74, 0.312, 0, -0.998, -943.455, 2.114, 0, 0.953, 38.317, 0, 14.967, 0, -238.871, -6.657, 0, 0.303, -940.6, -6.657, 0, 0.303, 38.317, 0, 14.967, 0, -238.871, -2.114, 0, -0.953, -940.6, -5.073, 0, 0.189, 38.061, 0, 10.669, 0, -251.596, -0.979, 0, -0.982, -971.625, -0.979, 0, -0.982, 38.061, 0, 10.669, 0, -251.596, 5.073, 0, -0.189, -971.625, 0.629, 0, 0.993, -40.413, 0, 11.282, 0, -223.079, -5.427, 0, 0.115, -894.741, -5.427, 0, 0.115, -40.413, 0, 11.282, 0, -223.079, -0.629, 0, -0.993, -894.741, -1.265, 0, 0.959, -51.802, 0, 8.666, 0, -238.287, -4.273, 0, -0.284, -940.63, -4.273, 0, -0.284, -51.802, 0, 8.666, 0, -238.287, 1.265, 0, -0.959, -940.63, -1.045, 0, 0.964, -51.39, 0, 8.114, 0, -246.49, -3.788, 0, -0.266, -959.436, -3.788, 0, -0.266, -51.39, 0, 8.114, 0, -246.49, 1.045, 0, -0.964, -959.436, 3.666, 0, 0.671, -64.327, 0, 10.211, 0, -206.199, -3.318, 0, 0.741, -846.977, -3.318, 0, 0.741, -64.327, 0, 10.211, 0, -206.199, -3.666, 0, -0.671, -846.977, 2.246, 0, 0.696, 44.687, 0, 6.08, 0, -214.555, -2.175, 0, 0.718, -868.911, -2.175, 0, 0.718, 44.687, 0, 6.08, 0, -214.555, -2.246, 0, -0.696, -868.911, 0.955, 0, 0.984, 26.251, 0, 11.161, 0, -224.376, -5.319, 0, 0.177, -893.404, -5.319, 0, 0.177, 26.251, 0, 11.161, 0, -224.376, -0.955, 0, -0.984, -893.404, -0.658, 0, 0.989, 36.442, 0, 8.558, 0, -245.067, -4.352, 0, -0.149, -954.003, -4.352, 0, -0.149, 36.442, 0, 8.558, 0, -245.067, 0.658, 0, -0.989, -954.003, 1.038, 0, 0.981, 56.214, 0, 11.014, 0, -225.541, -5.231, 0, 0.195, -918.391, -5.231, 0, 0.195, 56.214, 0, 11.014, 0, -225.541, -1.038, 0, -0.981, -918.391, 5.098, 0, 0.635, -13.97, 0, 14.142, 0, -249.309, -4.192, 0, 0.772, -970.606, -4.192, 0, 0.772, -13.97, 0, 14.142, 0, -249.309, -5.098, 0, -0.635, -970.606, 4.569, 0, 0.561, -62.902, 0, 11.404, 0, -244.539, -3.1, 0, 0.828, -961.184, -3.1, 0, 0.828, -62.902, 0, 11.404, 0, -244.539, -4.569, 0, -0.561, -961.184, -4.893, 0, 0.491, 77.668, 0, 11.597, 0, -238.705, -2.756, 0, -0.871, -961.812, -2.756, 0, -0.871, 77.668, 0, 11.597, 0, -238.705, 4.893, 0, -0.491, -961.812, -1.817, 0, 0.933, 46.117, 0, 10.409, 0, -229.474, -4.701, 0, -0.361, -922.659, -4.701, 0, -0.361, 46.117, 0, 10.409, 0, -229.474, 1.817, 0, -0.933, -922.659, 2.231, 0, 0.888, -16.845, 0, 10.005, 0, -248.086, -4.3, 0, 0.461, -965.255, -4.3, 0, 0.461, -16.845, 0, 10.005, 0, -248.086, -2.231, 0, -0.888, -965.255, 3.685, 0, 0.181, 51.898, 0, 7.287, 0, -214.077, -0.68, 0, 0.983, -875.143, -0.68, 0, 0.983, 51.898, 0, 7.287, 0, -214.077, -3.685, 0, -0.181, -875.143, 1.982, 0, 0.863, -7, 0, 8.097, 0, -249.974, -3.383, 0, 0.506, -970.224, -3.383, 0, 0.506, -7, 0, 8.097, 0, -249.974, -1.982, 0, -0.863, -970.224, 4.344, 0, 0.606, -38.097, 0, 11.28, 0, -226.875, -3.312, 0, 0.795, -907.008, -3.312, 0, 0.795, -38.097, 0, 11.28, 0, -226.875, -4.344, 0, -0.606, -907.008) 1 80 SubResource("Mesh_pine_b") PackedFloat32Array(-1.596, 0, 0.928, 20.859, 0, 8.845, 0, -221.677, -3.975, 0, -0.373, -874.851, -3.975, 0, -0.373, 20.859, 0, 8.845, 0, -221.677, 1.596, 0, -0.928, -874.851, 2.547, 0, 0.783, -53.656, 0, 8.457, 0, -226.524, -3.207, 0, 0.622, -913.648, -3.207, 0, 0.622, -53.656, 0, 8.457, 0, -226.524, -2.547, 0, -0.783, -913.648, -3.641, 0, 0.85, -51.522, 0, 14.824, 0, -236.086, -5.882, 0, -0.526, -935.676, -5.882, 0, -0.526, -51.522, 0, 14.824, 0, -236.086, 3.641, 0, -0.85, -935.676, 3.701, 0, 0.442, 69.719, 0, 8.522, 0, -242.464, -1.825, 0, 0.897, -965.762, -1.825, 0, 0.897, 69.719, 0, 8.522, 0, -242.464, -3.701, 0, -0.442, -965.762, 5.913, 0, 0.477, 44.01, 0, 14.42, 0, -249.764, -3.212, 0, 0.879, -971.168, -3.212, 0, 0.879, 44.01, 0, 14.42, 0, -249.764, -5.913, 0, -0.477, -971.168, 0.408, 0, 0.995, -57.555, 0, 8.133, 0, -209.931, -4.163, 0, 0.097, -856.597, -4.163, 0, 0.097, -57.555, 0, 8.133, 0, -209.931, -0.408, 0, -0.995, -856.597, -3.819, 0, 0.49, 26.122, 0, 9.047, 0, -220.668, -2.146, 0, -0.872, -879.06, -2.146, 0, -0.872, 26.122, 0, 9.047, 0, -220.668, 3.819, 0, -0.49, -879.06, -0.027, 0, 1, -37.647, 0, 10.626, 0, -218.099, -5.145, 0, -0.005, -875.405, -5.145, 0, -0.005, -37.647, 0, 10.626, 0, -218.099, 0.027, 0, -1, -875.405, 3.916, 0, 0.156, 51.126, 0, 7.709, 0, -231.731, -0.617, 0, 0.988, -931.259, -0.617, 0, 0.988, 51.126, 0, 7.709, 0, -231.731, -3.916, 0, -0.156, -931.259, 3.849, 0, 0.488, -76.839, 0, 9.11, 0, -241.52, -2.154, 0, 0.873, -960.634, -2.154, 0, 0.873, -76.839, 0, 9.11, 0, -241.52, -3.849, 0, -0.488, -960.634, 5.862, 0, 0.112, 56.273, 0, 12.64, 0, -210.939, -0.66, 0, 0.994, -857.178, -0.66, 0, 0.994, 56.273, 0, 12.64, 0, -210.939, -5.862, 0, -0.112, -857.178, -3.967, 0, 0.286, -34.66, 0, 8.051, 0, -210.977, -1.184, 0, -0.958, -839.955, -1.184, 0, -0.958, -34.66, 0, 8.051, 0, -210.977, 3.967, 0, -0.286, -839.955, -3.939, 0, 0.344, 40.829, 0, 8.662, 0, -213.877, -1.442, 0, -0.939, -851.532, -1.442, 0, -0.939, 40.829, 0, 8.662, 0, -213.877, 3.939, 0, -0.344, -851.532, 6.034, 0, 0.354, -24.951, 0, 13.828, 0, -251.291, -2.287, 0, 0.935, -977.407, -2.287, 0, 0.935, -24.951, 0, 13.828, 0, -251.291, -6.034, 0, -0.354, -977.407, -3.826, 0, 0.777, 36.271, 0, 13.013, 0, -212.331, -4.716, 0, -0.63, -838.849, -4.716, 0, -0.63, 36.271, 0, 13.013, 0, -212.331, 3.826, 0, -0.777, -838.849, -4.545, 0, 0.448, 55.618, 0, 10.501, 0, -212.487, -2.279, 0, -0.894, -871.476, -2.279, 0, -0.894, 55.618, 0, 10.501, 0, -212.487, 4.545, 0, -0.448, -871.476, 0.795, 0, 0.987, -41.879, 0, 10.024, 0, -210.539, -4.788, 0, 0.164, -843.756, -4.788, 0, 0.164, -41.879, 0, 10.024, 0, -210.539, -0.795, 0, -0.987, -843.756, -3.206, 0, 0.816, 63.872, 0, 11.879, 0, -222.614, -4.522, 0, -0.578, -914.382, -4.522, 0, -0.578, 63.872, 0, 11.879, 0, -222.614, 3.206, 0, -0.816, -914.382, 6.534, 0, 0.259, -76.657, 0, 14.495, 0, -245.536, -1.75, 0, 0.966, -969.404, -1.75, 0, 0.966, -76.657, 0, 14.495, 0, -245.536, -6.534, 0, -0.259, -969.404, 1.72, 0, 0.953, 50.056, 0, 12.195, 0, -217.966, -5.425, 0, 0.302, -889.361, -5.425, 0, 0.302, 50.056, 0, 12.195, 0, -217.966, -1.72, 0, -0.953, -889.361, 4.175, 0, 0.216, -56.014, 0, 8.831, 0, -242.808, -0.924, 0, 0.976, -953.25, -0.924, 0, 0.976, -56.014, 0, 8.831, 0, -242.808, -4.175, 0, -0.216, -953.25, 3.973, 0, 0.413, -61.496, 0, 8.483, 0, -249.613, -1.803, 0, 0.911, -971.318, -1.803, 0, 0.911, -61.496, 0, 8.483, 0, -249.613, -3.973, 0, -0.413, -971.318, 1.109, 0, 0.967, 51.601, 0, 8.449, 0, -208.146, -4.201, 0, 0.255, -835.274, -4.201, 0, 0.255, 51.601, 0, 8.449, 0, -208.146, -1.109, 0, -0.967, -835.274, 2.446, 0, 0.881, -49.68, 0, 10.689, 0, -219.31, -4.561, 0, 0.473, -889.843, -4.561, 0, 0.473, -49.68, 0, 10.689, 0, -219.31, -2.446, 0, -0.881, -889.843, -1.021, 0, 0.982, -91.715, 0, 11.216, 0, -244.168, -5.334, 0, -0.188, -974.84, -5.334, 0, -0.188, -91.715, 0, 11.216, 0, -244.168, 1.021, 0, -0.982, -974.84, -1.68, 0, 0.913, -33.226, 0, 8.513, 0, -228.237, -3.764, 0, -0.407, -908.397, -3.764, 0, -0.407, -33.226, 0, 8.513, 0, -228.237, 1.68, 0, -0.913, -908.397, -6.486, 0, 0.222, -40.754, 0, 14.256, 0, -231.486, -1.478, 0, -0.975, -919.612, -1.478, 0, -0.975, -40.754, 0, 14.256, 0, -231.486, 6.486, 0, -0.222, -919.612, 3.858, 0, 0.597, 23.068, 0, 9.934, 0, -227.507, -2.872, 0, 0.802, -898.234, -2.872, 0, 0.802, 23.068, 0, 9.934, 0, -227.507, -3.858, 0, -0.597, -898.234, 6.663, 0, 0.279, -26.475, 0, 14.868, 0, -213.912, -1.933, 0, 0.96, -841.047, -1.933, 0, 0.96, -26.475, 0, 14.868, 0, -213.912, -6.663, 0, -0.279, -841.047, 1.651, 0, 0.943, 32.693, 0, 10.232, 0, -244.496, -4.671, 0, 0.333, -949.107, -4.671, 0, 0.333, 32.693, 0, 10.232, 0, -244.496, -1.651, 0, -0.943, -949.107, -2.833, 0, 0.805, -22.837, 0, 10.22, 0, -250.293, -3.837, 0, -0.594, -972.763, -3.837, 0, -0.594, -22.837, 0, 10.22, 0, -250.293, 2.833, 0, -0.805, -972.763, -4.529, 0, 0.137, -33.088, 0, 9.441, 0, -223.403, -0.625, 0, -0.991, -889.497, -0.625, 0, -0.991, -33.088, 0, 9.441, 0, -223.403, 4.529, 0, -0.137, -889.497, 3.319, 0, 0.582, 57.56, 0, 7.937, 0, -244.362, -2.376, 0, 0.813, -963.767, -2.376, 0, 0.813, 57.56, 0, 7.937, 0, -244.362, -3.319, 0, -0.582, -963.767, -4.213, 0, 0.12, 34.199, 0, 8.764, 0, -225.262, -0.51, 0, -0.993, -902.382, -0.51, 0, -0.993, 34.199, 0, 8.764, 0, -225.262, 4.213, 0, -0.12, -902.382, -3.037, 0, 0.68, 35.658, 0, 8.559, 0, -215.85, -2.819, 0, -0.733, -858.279, -2.819, 0, -0.733, 35.658, 0, 8.559, 0, -215.85, 3.037, 0, -0.68, -858.279, -3.215, 0, 0.843, -68.766, 0, 12.804, 0, -233.835, -5.036, 0, -0.538, -940.045, -5.036, 0, -0.538, -68.766, 0, 12.804, 0, -233.835, 3.215, 0, -0.843, -940.045, 3.01, 0, 0.784, 37.273, 0, 10.023, 0, -218.193, -3.807, 0, 0.62, -881.666, -3.807, 0, 0.62, 37.273, 0, 10.023, 0, -218.193, -3.01, 0, -0.784, -881.666, -3.75, 0, 0.473, 56.405, 0, 8.278, 0, -221.213, -2.016, 0, -0.881, -906.413, -2.016, 0, -0.881, 56.405, 0, 8.278, 0, -221.213, 3.75, 0, -0.473, -906.413, 1.067, 0, 0.97, 68.11, 0, 9.09, 0, -246.247, -4.27, 0, 0.242, -973.614, -4.27, 0, 0.242, 68.11, 0, 9.09, 0, -246.247, -1.067, 0, -0.97, -973.614, 2.373, 0, 0.694, -48.311, 0, 6.407, 0, -224.307, -2.286, 0, 0.72, -904.16, -2.286, 0, 0.72, -48.311, 0, 6.407, 0, -224.307, -2.373, 0, -0.694, -904.16) 1 126 SubResource("Mesh_pine_a") PackedFloat32Array(-2.941, 0, 0.689, 51.777, 0, 8.377, 0, -266.726, -2.794, 0, -0.725, -1024.668, -2.794, 0, -0.725, 51.777, 0, 8.377, 0, -266.726, 2.941, 0, -0.689, -1024.668, -0.592, 0, 0.985, -82.132, 0, 6.574, 0, -267.879, -3.329, 0, -0.175, -1032.101, -3.329, 0, -0.175, -82.132, 0, 6.574, 0, -267.879, 0.592, 0, -0.985, -1032.101, 0.789, 0, 0.987, 46.941, 0, 10.683, 0, -276.167, -4.922, 0, 0.158, -1053.789, -4.922, 0, 0.158, 46.941, 0, 10.683, 0, -276.167, -0.789, 0, -0.987, -1053.789, -3.65, 0, 0.71, -20.938, 0, 10.708, 0, -265.627, -3.683, 0, -0.704, -1032.275, -3.683, 0, -0.704, -20.938, 0, 10.708, 0, -265.627, 3.65, 0, -0.71, -1032.275, -2.011, 0, 0.951, 73.999, 0, 13.867, 0, -254.503, -6.151, 0, -0.311, -1001.564, -6.151, 0, -0.311, 73.999, 0, 13.867, 0, -254.503, 2.011, 0, -0.951, -1001.564, 5.214, 0, 0.406, -8.761, 0, 12.223, 0, -268.013, -2.314, 0, 0.914, -1034.729, -2.314, 0, 0.914, -8.761, 0, 12.223, 0, -268.013, -5.214, 0, -0.406, -1034.729, -2.701, 0, 0.569, 50.604, 0, 6.386, 0, -285.646, -1.868, 0, -0.823, -1089.273, -1.868, 0, -0.823, 50.604, 0, 6.386, 0, -285.646, 2.701, 0, -0.569, -1089.273, 4.714, 0, 0.504, -0.577, 0, 11.271, 0, -278.477, -2.75, 0, 0.864, -1063.609, -2.75, 0, 0.864, -0.577, 0, 11.271, 0, -278.477, -4.714, 0, -0.504, -1063.609, -5.456, 0, 0.617, -80.087, 0, 14.854, 0, -262.735, -4.276, 0, -0.787, -1013.052, -4.276, 0, -0.787, -80.087, 0, 14.854, 0, -262.735, 5.456, 0, -0.617, -1013.052, 2.065, 0, 0.829, -9.049, 0, 7.184, 0, -259.397, -3.064, 0, 0.559, -1005.293, -3.064, 0, 0.559, -9.049, 0, 7.184, 0, -259.397, -2.065, 0, -0.829, -1005.293, 3.092, 0, 0.657, 74.215, 0, 8.468, 0, -269.998, -2.693, 0, 0.754, -1054.668, -2.693, 0, 0.754, 74.215, 0, 8.468, 0, -269.998, -3.092, 0, -0.657, -1054.668, 4.726, 0, 0.278, 50.764, 0, 10.161, 0, -292.979, -1.368, 0, 0.961, -1119.012, -1.368, 0, 0.961, 50.764, 0, 10.161, 0, -292.979, -4.726, 0, -0.278, -1119.012, -4.624, 0, 0.633, 46.593, 0, 12.794, 0, -257.899, -3.777, 0, -0.775, -995.018, -3.777, 0, -0.775, 46.593, 0, 12.794, 0, -257.899, 4.624, 0, -0.633, -995.018, -2.061, 0, 0.92, 38.409, 0, 10.87, 0, -295.885, -4.843, 0, -0.392, -1118.604, -4.843, 0, -0.392, 38.409, 0, 10.87, 0, -295.885, 2.061, 0, -0.92, -1118.604, 4.228, 0, 0.018, 67.763, 0, 8.733, 0, -285.224, -0.078, 0, 1, -1103.816, -0.078, 0, 1, 67.763, 0, 8.733, 0, -285.224, -4.228, 0, -0.018, -1103.816, 4.809, 0, 0.544, -75.912, 0, 12.28, 0, -252.027, -3.117, 0, 0.839, -983.902, -3.117, 0, 0.839, -75.912, 0, 12.28, 0, -252.027, -4.809, 0, -0.544, -983.902, 4.677, 0, 0.353, -27.718, 0, 10.324, 0, -269.703, -1.765, 0, 0.936, -1046.328, -1.765, 0, 0.936, -27.718, 0, 10.324, 0, -269.703, -4.677, 0, -0.353, -1046.328, 0.198, 0, 0.999, 5.431, 0, 11.811, 0, -276.392, -5.716, 0, 0.035, -1051.507, -5.716, 0, 0.035, 5.431, 0, 11.811, 0, -276.392, -0.198, 0, -0.999, -1051.507, 3.407, 0, 0.701, -0.627, 0, 10.241, 0, -269.91, -3.352, 0, 0.713, -1035.567, -3.352, 0, 0.713, -0.627, 0, 10.241, 0, -269.91, -3.407, 0, -0.701, -1035.567, -0.537, 0, 0.995, -98.453, 0, 11.642, 0, -267.769, -5.612, 0, -0.095, -1050.761, -5.612, 0, -0.095, -98.453, 0, 11.642, 0, -267.769, 0.537, 0, -0.995, -1050.761, -3.631, 0, 0.233, -97.047, 0, 7.259, 0, -269.9, -0.869, 0, -0.973, -1060.025, -0.869, 0, -0.973, -97.047, 0, 7.259, 0, -269.9, 3.631, 0, -0.233, -1060.025, -6.093, 0, 0.15, -54.808, 0, 13.207, 0, -288.112, -0.927, 0, -0.989, -1099.102, -0.927, 0, -0.989, -54.808, 0, 13.207, 0, -288.112, 6.093, 0, -0.15, -1099.102, -3.508, 0, 0.487, -26.865, 0, 8.295, 0, -256.375, -1.957, 0, -0.873, -999.157, -1.957, 0, -0.873, -26.865, 0, 8.295, 0, -256.375, 3.508, 0, -0.487, -999.157, 2.616, 0, 0.87, 5.211, 0, 10.951, 0, -277.992, -4.612, 0, 0.493, -1056.481, -4.612, 0, 0.493, 5.211, 0, 10.951, 0, -277.992, -2.616, 0, -0.87, -1056.481, 5.32, 0, 0.205, -12.627, 0, 11.227, 0, -290.971, -1.115, 0, 0.979, -1106.953, -1.115, 0, 0.979, -12.627, 0, 11.227, 0, -290.971, -5.32, 0, -0.205, -1106.953, -4.729, 0, 0.527, 44.247, 0, 11.925, 0, -279.577, -2.934, 0, -0.85, -1062.739, -2.934, 0, -0.85, 44.247, 0, 11.925, 0, -279.577, 4.729, 0, -0.527, -1062.739, 1.94, 0, 0.921, 6.749, 0, 10.686, 0, -269.524, -4.594, 0, 0.389, -1028.298, -4.594, 0, 0.389, 6.749, 0, 10.686, 0, -269.524, -1.94, 0, -0.921, -1028.298, 1.344, 0, 0.923, -11.246, 0, 6.807, 0, -256.241, -3.233, 0, 0.384, -996.079, -3.233, 0, 0.384, -11.246, 0, 6.807, 0, -256.241, -1.344, 0, -0.923, -996.079, 4.847, 0, 0.205, -19.493, 0, 10.227, 0, -278.283, -1.016, 0, 0.979, -1074.694, -1.016, 0, 0.979, -19.493, 0, 10.227, 0, -278.283, -4.847, 0, -0.205, -1074.694, -1.136, 0, 0.95, 72.615, 0, 7.061, 0, -261.653, -3.449, 0, -0.313, -1025.995, -3.449, 0, -0.313, 72.615, 0, 7.061, 0, -261.653, 1.136, 0, -0.95, -1025.995, -3.036, 0, 0.68, 61.421, 0, 8.548, 0, -290.461, -2.814, 0, -0.733, -1119.217, -2.814, 0, -0.733, 61.421, 0, 8.548, 0, -290.461, 3.036, 0, -0.68, -1119.217, 0.392, 0, 0.998, 54.104, 0, 13.034, 0, -288.424, -6.07, 0, 0.065, -1102.933, -6.07, 0, 0.065, 54.104, 0, 13.034, 0, -288.424, -0.392, 0, -0.998, -1102.933, -1.94, 0, 0.84, -24.287, 0, 6.952, 0, -281.916, -3.003, 0, -0.543, -1082.756, -3.003, 0, -0.543, -24.287, 0, 6.952, 0, -281.916, 1.94, 0, -0.84, -1082.756, 0.593, 0, 0.99, 56.716, 0, 8.547, 0, -281.53, -4.096, 0, 0.143, -1078.997, -4.096, 0, 0.143, 56.716, 0, 8.547, 0, -281.53, -0.593, 0, -0.99, -1078.997, 3.857, 0, 0.489, -30.359, 0, 8.597, 0, -257.715, -2.162, 0, 0.872, -1002.351, -2.162, 0, 0.872, -30.359, 0, 8.597, 0, -257.715, -3.857, 0, -0.489, -1002.351, -3.901, 0, 0.647, 3.663, 0, 10.562, 0, -260.479, -3.307, 0, -0.763, -999.114, -3.307, 0, -0.763, 3.663, 0, 10.562, 0, -260.479, 3.901, 0, -0.647, -999.114, 3.62, 0, 0.49, -21.67, 0, 8.574, 0, -263.909, -2.032, 0, 0.872, -1025.92, -2.032, 0, 0.872, -21.67, 0, 8.574, 0, -263.909, -3.62, 0, -0.49, -1025.92, 1.012, 0, 0.977, -3.888, 0, 9.76, 0, -276.128, -4.616, 0, 0.214, -1059.645, -4.616, 0, 0.214, -3.888, 0, 9.76, 0, -276.128, -1.012, 0, -0.977, -1059.645, -1.822, 0, 0.934, -19.752, 0, 10.546, 0, -273.684, -4.771, 0, -0.357, -1063.658, -4.771, 0, -0.357, -19.752, 0, 10.546, 0, -273.684, 1.822, 0, -0.934, -1063.658, -3.049, 0, 0.813, 44.855, 0, 10.824, 0, -274.571, -4.263, 0, -0.582, -1046.431, -4.263, 0, -0.582, 44.855, 0, 10.824, 0, -274.571, 3.049, 0, -0.813, -1046.431, 4.091, 0, 0.237, -42.714, 0, 8.187, 0, -273.272, -0.997, 0, 0.972, -1046.619, -0.997, 0, 0.972, -42.714, 0, 8.187, 0, -273.272, -4.091, 0, -0.237, -1046.619, 3.47, 0, 0.57, -1.929, 0, 8.724, 0, -267.234, -2.409, 0, 0.821, -1026.572, -2.409, 0, 0.821, -1.929, 0, 8.724, 0, -267.234, -3.47, 0, -0.57, -1026.572, -0.028, 0, 1, -81.602, 0, 9.984, 0, -256.776, -4.834, 0, -0.006, -999.099, -4.834, 0, -0.006, -81.602, 0, 9.984, 0, -256.776, 0.028, 0, -1, -999.099, -0.616, 0, 0.992, -98.521, 0, 9.944, 0, -273.583, -4.776, 0, -0.128, -1075.936, -4.776, 0, -0.128, -98.521, 0, 9.944, 0, -273.583, 0.616, 0, -0.992, -1075.936, -1.183, 0, 0.979, -0.472, 0, 12.369, 0, -283.104, -5.65, 0, -0.205, -1076.076, -5.65, 0, -0.205, -0.472, 0, 12.369, 0, -283.104, 1.183, 0, -0.979, -1076.076, 3.785, 0, 0.063, 46.21, 0, 7.374, 0, -256.286, -0.238, 0, 0.998, -989.912, -0.238, 0, 0.998, 46.21, 0, 7.374, 0, -256.286, -3.785, 0, -0.063, -989.912, -5.133, 0, 0.324, -28.986, 0, 11.626, 0, -258.74, -1.758, 0, -0.946, -1007.068, -1.758, 0, -0.946, -28.986, 0, 11.626, 0, -258.74, 5.133, 0, -0.324, -1007.068, -1.74, 0, 0.957, 53.694, 0, 12.899, 0, -270.542, -5.763, 0, -0.289, -1041.369, -5.763, 0, -0.289, 53.694, 0, 12.899, 0, -270.542, 1.74, 0, -0.957, -1041.369, 2.859, 0, 0.52, -23.302, 0, 6.507, 0, -261.599, -1.739, 0, 0.854, -1018.518, -1.739, 0, 0.854, -23.302, 0, 6.507, 0, -261.599, -2.859, 0, -0.52, -1018.518, 4.841, 0, 0.354, -98.053, 0, 10.691, 0, -261.397, -1.834, 0, 0.935, -1025.348, -1.834, 0, 0.935, -98.053, 0, 10.691, 0, -261.397, -4.841, 0, -0.354, -1025.348, -4.572, 0, 0.577, 60.618, 0, 11.991, 0, -260.116, -3.227, 0, -0.817, -1010.437, -3.227, 0, -0.817, 60.618, 0, 11.991, 0, -260.116, 4.572, 0, -0.577, -1010.437, -3.326, 0, 0.627, 3.429, 0, 8.302, 0, -272.943, -2.677, 0, -0.779, -1042.651, -2.677, 0, -0.779, 3.429, 0, 8.302, 0, -272.943, 3.326, 0, -0.627, -1042.651, -3.453, 0, 0.793, -92.018, 0, 11.708, 0, -256.759, -4.496, 0, -0.609, -1005.542, -4.496, 0, -0.609, -92.018, 0, 11.708, 0, -256.759, 3.453, 0, -0.793, -1005.542, 2.485, 0, 0.896, -23.311, 0, 12.008, 0, -286.833, -5.023, 0, 0.444, -1093.303, -5.023, 0, 0.444, -23.311, 0, 12.008, 0, -286.833, -2.485, 0, -0.896, -1093.303, 0.75, 0, 0.979, -105.034, 0, 7.167, 0, -248.859, -3.609, 0, 0.204, -996.454, -3.609, 0, 0.204, -105.034, 0, 7.167, 0, -248.859, -0.75, 0, -0.979, -996.454, -1.2, 0, 0.924, 46.328, 0, 6.091, 0, -293.628, -2.894, 0, -0.383, -1116.668, -2.894, 0, -0.383, 46.328, 0, 6.091, 0, -293.628, 1.2, 0, -0.924, -1116.668, 4.213, 0, 0.502, 70.944, 0, 10.061, 0, -263.538, -2.447, 0, 0.865, -1031.294, -2.447, 0, 0.865, 70.944, 0, 10.061, 0, -263.538, -4.213, 0, -0.502, -1031.294, -3.524, 0, 0.542, -17.576, 0, 8.657, 0, -251.157, -2.27, 0, -0.841, -979.63, -2.27, 0, -0.841, -17.576, 0, 8.657, 0, -251.157, 3.524, 0, -0.542, -979.63, -0.393, 0, 0.995, 42.506, 0, 7.472, 0, -289.301, -3.822, 0, -0.102, -1097.169, -3.822, 0, -0.102, 42.506, 0, 7.472, 0, -289.301, 0.393, 0, -0.995, -1097.169, 1.868, 0, 0.94, 78.108, 0, 11.301, 0, -267.515, -5.143, 0, 0.341, -1050.225, -5.143, 0, 0.341, 78.108, 0, 11.301, 0, -267.515, -1.868, 0, -0.94, -1050.225, 4.95, 0, 0.263, -89.653, 0, 10.596, 0, -267.871, -1.349, 0, 0.965, -1039.579, -1.349, 0, 0.965, -89.653, 0, 10.596, 0, -267.871, -4.95, 0, -0.263, -1039.579, 3.837, 0, 0.384, -15.745, 0, 8.582, 0, -276.424, -1.596, 0, 0.923, -1069.683, -1.596, 0, 0.923, -15.745, 0, 8.582, 0, -276.424, -3.837, 0, -0.384, -1069.683, -3.587, 0, 0.358, 55.24, 0, 7.469, 0, -251.007, -1.375, 0, -0.934, -979.352, -1.375, 0, -0.934, 55.24, 0, 7.469, 0, -251.007, 3.587, 0, -0.358, -979.352) 1 106 SubResource("Mesh_pine_b") PackedFloat32Array(4.325, 0, 0.077, 3.512, 0, 8.435, 0, -280.751, -0.333, 0, 0.997, -1066.377, -0.333, 0, 0.997, 3.512, 0, 8.435, 0, -280.751, -4.325, 0, -0.077, -1066.377, -3.036, 0, 0.702, -60.115, 0, 8.801, 0, -291.712, -2.99, 0, -0.712, -1120.246, -2.99, 0, -0.712, -60.115, 0, 8.801, 0, -291.712, 3.036, 0, -0.702, -1120.246, -0.867, 0, 0.979, 70.296, 0, 8.256, 0, -268.265, -4.156, 0, -0.204, -1047.214, -4.156, 0, -0.204, 70.296, 0, 8.256, 0, -268.265, 0.867, 0, -0.979, -1047.214, -2.923, 0, 0.509, -64.792, 0, 6.605, 0, -288.668, -1.73, 0, -0.861, -1109.457, -1.73, 0, -0.861, -64.792, 0, 6.605, 0, -288.668, 2.923, 0, -0.509, -1109.457, -2.279, 0, 0.915, -67.363, 0, 11.675, 0, -289.401, -5.174, 0, -0.403, -1115.855, -5.174, 0, -0.403, -67.363, 0, 11.675, 0, -289.401, 2.279, 0, -0.915, -1115.855, -3.317, 0, 0.096, -42.598, 0, 6.481, 0, -270.343, -0.321, 0, -0.995, -1035.986, -0.321, 0, -0.995, -42.598, 0, 6.481, 0, -270.343, 3.317, 0, -0.096, -1035.986, 4.027, 0, 0.493, -21.093, 0, 9.56, 0, -252.78, -2.282, 0, 0.87, -986.966, -2.282, 0, 0.87, -21.093, 0, 9.56, 0, -252.78, -4.027, 0, -0.493, -986.966, -3.502, 0, 0.715, -18.879, 0, 10.344, 0, -260.026, -3.58, 0, -0.699, -1013.075, -3.58, 0, -0.699, -18.879, 0, 10.344, 0, -260.026, 3.502, 0, -0.715, -1013.075, 2.839, 0, 0.565, 55.037, 0, 6.69, 0, -277.104, -1.943, 0, 0.825, -1062.924, -1.943, 0, 0.825, 55.037, 0, 6.69, 0, -277.104, -2.839, 0, -0.565, -1062.924, 0.389, 0, 0.998, -100.303, 0, 11.417, 0, -250.996, -5.515, 0, 0.07, -998.236, -5.515, 0, 0.07, -100.303, 0, 11.417, 0, -250.996, -0.389, 0, -0.998, -998.236, 0.631, 0, 0.992, 43.209, 0, 10.264, 0, -272.575, -4.93, 0, 0.127, -1038.012, -4.93, 0, 0.127, 43.209, 0, 10.264, 0, -272.575, -0.631, 0, -0.992, -1038.012, -3.686, 0, 0.233, -1.4, 0, 7.372, 0, -265.188, -0.885, 0, -0.972, -1019.277, -0.885, 0, -0.972, -1.4, 0, 7.372, 0, -265.188, 3.686, 0, -0.233, -1019.277, 0.711, 0, 0.989, -21.98, 0, 10.005, 0, -276.636, -4.792, 0, 0.147, -1070.517, -4.792, 0, 0.147, -21.98, 0, 10.005, 0, -276.636, -0.711, 0, -0.989, -1070.517, 3.834, 0, 0.202, -85.905, 0, 8.085, 0, -276.986, -0.791, 0, 0.979, -1076.637, -0.791, 0, 0.979, -85.905, 0, 8.085, 0, -276.986, -3.834, 0, -0.202, -1076.637, 4.739, 0, 0.279, -73.385, 0, 10.191, 0, -262.997, -1.377, 0, 0.96, -1010.581, -1.377, 0, 0.96, -73.385, 0, 10.191, 0, -262.997, -4.739, 0, -0.279, -1010.581, 3.312, 0, 0.711, -87.031, 0, 9.733, 0, -271.422, -3.353, 0, 0.703, -1055.928, -3.353, 0, 0.703, -87.031, 0, 9.733, 0, -271.422, -3.312, 0, -0.711, -1055.928, 2.881, 0, 0.793, -0.397, 0, 9.761, 0, -259.371, -3.747, 0, 0.61, -997.801, -3.747, 0, 0.61, -0.397, 0, 9.761, 0, -259.371, -2.881, 0, -0.793, -997.801, 4.088, 0, 0.078, -72.541, 0, 8.469, 0, -260.258, -0.319, 0, 0.997, -1002.58, -0.319, 0, 0.997, -72.541, 0, 8.469, 0, -260.258, -4.088, 0, -0.078, -1002.58, -3.212, 0, 0.713, -86.431, 0, 9.463, 0, -265.108, -3.268, 0, -0.701, -1026.426, -3.268, 0, -0.701, -86.431, 0, 9.463, 0, -265.108, 3.212, 0, -0.713, -1026.426, 4.817, 0, 0.156, 75.961, 0, 10.449, 0, -273.704, -0.76, 0, 0.988, -1067.635, -0.76, 0, 0.988, 75.961, 0, 10.449, 0, -273.704, -4.817, 0, -0.156, -1067.635, -2.476, 0, 0.661, -9.124, 0, 6.419, 0, -288.348, -2.184, 0, -0.75, -1098.197, -2.184, 0, -0.75, -9.124, 0, 6.419, 0, -288.348, 2.476, 0, -0.661, -1098.197, 5.767, 0, 0.373, -35.551, 0, 13.322, 0, -271.501, -2.321, 0, 0.928, -1045.836, -2.321, 0, 0.928, -35.551, 0, 13.322, 0, -271.501, -5.767, 0, -0.373, -1045.836, 5.336, 0, 0.331, -91.665, 0, 11.68, 0, -272.654, -1.875, 0, 0.943, -1065.947, -1.875, 0, 0.943, -91.665, 0, 11.68, 0, -272.654, -5.336, 0, -0.331, -1065.947, 4.224, 0, 0.035, 1.169, 0, 8.729, 0, -257.281, -0.149, 0, 0.999, -989.052, -0.149, 0, 0.999, 1.169, 0, 8.729, 0, -257.281, -4.224, 0, -0.035, -989.052, 3.504, 0, 0.224, -64.797, 0, 6.991, 0, -287.31, -0.807, 0, 0.974, -1103.459, -0.807, 0, 0.974, -64.797, 0, 6.991, 0, -287.31, -3.504, 0, -0.224, -1103.459, -4.152, 0, 0.705, -66.888, 0, 12.544, 0, -254.951, -4.126, 0, -0.709, -986.269, -4.126, 0, -0.709, -66.888, 0, 12.544, 0, -254.951, 4.152, 0, -0.705, -986.269, 4.036, 0, 0.568, 65.7, 0, 10.129, 0, -284.52, -2.787, 0, 0.823, -1099.055, -2.787, 0, 0.823, 65.7, 0, 10.129, 0, -284.52, -4.036, 0, -0.568, -1099.055, 2.585, 0, 0.81, 41.33, 0, 9.1, 0, -290.983, -3.568, 0, 0.587, -1101.987, -3.568, 0, 0.587, 41.33, 0, 9.1, 0, -290.983, -2.585, 0, -0.81, -1101.987, -3.868, 0, 0.077, -31.984, 0, 7.543, 0, -278.029, -0.298, 0, -0.997, -1069.818, -0.298, 0, -0.997, -31.984, 0, 7.543, 0, -278.029, 3.868, 0, -0.077, -1069.818, -3.714, 0, 0.38, 57.409, 0, 7.808, 0, -267.84, -1.527, 0, -0.925, -1034.28, -1.527, 0, -0.925, 57.409, 0, 7.808, 0, -267.84, 3.714, 0, -0.38, -1034.28, 2.177, 0, 0.942, -17.897, 0, 13.921, 0, -254.493, -6.121, 0, 0.335, -994.852, -6.121, 0, 0.335, -17.897, 0, 13.921, 0, -254.493, -2.177, 0, -0.942, -994.852, 2.173, 0, 0.837, -17.337, 0, 7.715, 0, -253.238, -3.32, 0, 0.548, -989.585, -3.32, 0, 0.548, -17.337, 0, 7.715, 0, -253.238, -2.173, 0, -0.837, -989.585, 4.196, 0, 0.544, -95.145, 0, 10.713, 0, -266.146, -2.717, 0, 0.839, -1038.92, -2.717, 0, 0.839, -95.145, 0, 10.713, 0, -266.146, -4.196, 0, -0.544, -1038.92, 4.506, 0, 0.371, 53.184, 0, 10.02, 0, -287.063, -1.801, 0, 0.929, -1096.831, -1.801, 0, 0.929, 53.184, 0, 10.02, 0, -287.063, -4.506, 0, -0.371, -1096.831, 4.303, 0, 0, -24.874, 0, 8.887, 0, -253.75, -0.001, 0, 1, -989.813, -0.001, 0, 1, -24.874, 0, 8.887, 0, -253.75, -4.303, 0, 0, -989.813, 1.975, 0, 0.836, -59.399, 0, 7.004, 0, -290.621, -3.013, 0, 0.548, -1113.464, -3.013, 0, 0.548, -59.399, 0, 7.004, 0, -290.621, -1.975, 0, -0.836, -1113.464, 2.179, 0, 0.87, 45.787, 0, 8.604, 0, -285.315, -3.851, 0, 0.493, -1084.544, -3.851, 0, 0.493, 45.787, 0, 8.604, 0, -285.315, -2.179, 0, -0.87, -1084.544, -0.912, 0, 0.981, 65.911, 0, 9.645, 0, -252.523, -4.58, 0, -0.195, -989.984, -4.58, 0, -0.195, 65.911, 0, 9.645, 0, -252.523, 0.912, 0, -0.981, -989.984, 3.748, 0, 0.06, 54.796, 0, 7.301, 0, -258.095, -0.225, 0, 0.998, -1000.788, -0.225, 0, 0.998, 54.796, 0, 7.301, 0, -258.095, -3.748, 0, -0.06, -1000.788, -2.52, 0, 0.578, -21.914, 0, 6.005, 0, -268.154, -1.784, 0, -0.816, -1042.883, -1.784, 0, -0.816, -21.914, 0, 6.005, 0, -268.154, 2.52, 0, -0.578, -1042.883, 2.511, 0, 0.786, 37.467, 0, 7.898, 0, -293.098, -3.193, 0, 0.618, -1106.82, -3.193, 0, 0.618, 37.467, 0, 7.898, 0, -293.098, -2.511, 0, -0.786, -1106.82, -2.52, 0, 0.775, 53.095, 0, 7.752, 0, -280.736, -3.089, 0, -0.632, -1073.43, -3.089, 0, -0.632, 53.095, 0, 7.752, 0, -280.736, 2.52, 0, -0.775, -1073.43, 4.221, 0, 0.723, -87.279, 0, 13.094, 0, -274.958, -4.418, 0, 0.691, -1070.517, -4.418, 0, 0.691, -87.279, 0, 13.094, 0, -274.958, -4.221, 0, -0.723, -1070.517, 4.643, 0, 0.505, 65.469, 0, 11.528, 0, -289.209, -2.717, 0, 0.863, -1117.765, -2.717, 0, 0.863, 65.469, 0, 11.528, 0, -289.209, -4.643, 0, -0.505, -1117.765, -4.674, 0, 0.677, 61.519, 0, 13.609, 0, -288.839, -4.3, 0, -0.736, -1111.774, -4.3, 0, -0.736, 61.519, 0, 13.609, 0, -288.839, 4.674, 0, -0.677, -1111.774, 3.121, 0, 0.635, -91.262, 0, 7.852, 0, -247.723, -2.563, 0, 0.773, -983.375, -2.563, 0, 0.773, -91.262, 0, 7.852, 0, -247.723, -3.121, 0, -0.635, -983.375, -3.735, 0, 0.365, -82.656, 0, 8.286, 0, -274.544, -1.465, 0, -0.931, -1065.204, -1.465, 0, -0.931, -82.656, 0, 8.286, 0, -274.544, 3.735, 0, -0.365, -1065.204, -4.059, 0, 0.728, -6.812, 0, 12.687, 0, -257.083, -4.31, 0, -0.686, -994.136, -4.31, 0, -0.686, -6.812, 0, 12.687, 0, -257.083, 4.059, 0, -0.728, -994.136, -3.31, 0, 0.649, -16.871, 0, 8.984, 0, -263.118, -2.822, 0, -0.761, -1022.183, -2.822, 0, -0.761, -16.871, 0, 8.984, 0, -263.118, 3.31, 0, -0.649, -1022.183, 3.475, 0, 0.778, 63.202, 0, 11.432, 0, -255.866, -4.309, 0, 0.628, -998.221, -4.309, 0, 0.628, 63.202, 0, 11.432, 0, -255.866, -3.475, 0, -0.778, -998.221, -3.53, 0, 0.593, -29.051, 0, 9.054, 0, -266.24, -2.6, 0, -0.805, -1032.232, -2.6, 0, -0.805, -29.051, 0, 9.054, 0, -266.24, 3.53, 0, -0.593, -1032.232, 4.178, 0, 0.142, 57.982, 0, 8.206, 0, -278.404, -0.598, 0, 0.99, -1069.246, -0.598, 0, 0.99, 57.982, 0, 8.206, 0, -278.404, -4.178, 0, -0.142, -1069.246, -4.556, 0, 0.529, -76.172, 0, 11.084, 0, -254.945, -2.837, 0, -0.849, -991.364, -2.837, 0, -0.849, -76.172, 0, 11.084, 0, -254.945, 4.556, 0, -0.529, -991.364) 1 98 SubResource("Mesh_pine_a") PackedFloat32Array(4.406, 0, 0.133, -46.097, 0, 9.18, 0, -327.563, -0.59, 0, 0.991, -1218.439, -0.59, 0, 0.991, -46.097, 0, 9.18, 0, -327.563, -4.406, 0, -0.133, -1218.439, -0.175, 0, 0.999, 51.247, 0, 11.775, 0, -329.568, -5.492, 0, -0.032, -1226.561, -5.492, 0, -0.032, 51.247, 0, 11.775, 0, -329.568, 0.175, 0, -0.999, -1226.561, 0.346, 0, 0.994, 15.194, 0, 6.249, 0, -332.782, -3.195, 0, 0.108, -1217.378, -3.195, 0, 0.108, 15.194, 0, 6.249, 0, -332.782, -0.346, 0, -0.994, -1217.378, 4.799, 0, 0.16, 38.616, 0, 10.418, 0, -303.263, -0.778, 0, 0.987, -1150.247, -0.778, 0, 0.987, 38.616, 0, 10.418, 0, -303.263, -4.799, 0, -0.16, -1150.247, -2.762, 0, 0.461, -44.863, 0, 6.052, 0, -333.677, -1.436, 0, -0.887, -1230.771, -1.436, 0, -0.887, -44.863, 0, 6.052, 0, -333.677, 2.762, 0, -0.461, -1230.771, 2.168, 0, 0.777, 41.67, 0, 6.692, 0, -335.12, -2.673, 0, 0.63, -1233.469, -2.673, 0, 0.63, 41.67, 0, 6.692, 0, -335.12, -2.168, 0, -0.777, -1233.469, 4.059, 0, 0.388, -19.386, 0, 8.563, 0, -343.512, -1.71, 0, 0.922, -1240.71, -1.71, 0, 0.922, -19.386, 0, 8.563, 0, -343.512, -4.059, 0, -0.388, -1240.71, 4.061, 0, 0.057, -45.336, 0, 8.401, 0, -305.319, -0.231, 0, 0.998, -1167.24, -0.231, 0, 0.998, -45.336, 0, 8.401, 0, -305.319, -4.061, 0, -0.057, -1167.24, 1.794, 0, 0.813, -27.205, 0, 5.997, 0, -311.625, -2.509, 0, 0.582, -1174.327, -2.509, 0, 0.582, -27.205, 0, 5.997, 0, -311.625, -1.794, 0, -0.813, -1174.327, 1.147, 0, 0.984, -52.427, 0, 13.879, 0, -345.376, -6.375, 0, 0.177, -1257.947, -6.375, 0, 0.177, -52.427, 0, 13.879, 0, -345.376, -1.147, 0, -0.984, -1257.947, -3.978, 0, 0.631, -37.737, 0, 10.592, 0, -328.314, -3.238, 0, -0.776, -1216.817, -3.238, 0, -0.776, -37.737, 0, 10.592, 0, -328.314, 3.978, 0, -0.631, -1216.817, -0.787, 0, 0.993, 19.327, 0, 14.365, 0, -346.63, -6.657, 0, -0.117, -1248.351, -6.657, 0, -0.117, 19.327, 0, 14.365, 0, -346.63, 0.787, 0, -0.993, -1248.351, 0.853, 0, 0.976, 53.908, 0, 7.652, 0, -295.956, -3.842, 0, 0.217, -1134.656, -3.842, 0, 0.217, 53.908, 0, 7.652, 0, -295.956, -0.853, 0, -0.976, -1134.656, -2.575, 0, 0.763, 23.064, 0, 8.22, 0, -331.168, -3.035, 0, -0.647, -1217.564, -3.035, 0, -0.647, 23.064, 0, 8.22, 0, -331.168, 2.575, 0, -0.763, -1217.564, -1.958, 0, 0.944, 29.731, 0, 12.703, 0, -318.226, -5.595, 0, -0.33, -1194.05, -5.595, 0, -0.33, 29.731, 0, 12.703, 0, -318.226, 1.958, 0, -0.944, -1194.05, 2.292, 0, 0.778, 31.332, 0, 7.099, 0, -348.306, -2.842, 0, 0.628, -1257.417, -2.842, 0, 0.628, 31.332, 0, 7.099, 0, -348.306, -2.292, 0, -0.778, -1257.417, -2.237, 0, 0.839, 32.962, 0, 8.003, 0, -313.199, -3.455, 0, -0.544, -1183.289, -3.455, 0, -0.544, 32.962, 0, 8.003, 0, -313.199, 2.237, 0, -0.839, -1183.289, -0.691, 0, 0.986, 15.416, 0, 8.07, 0, -344.358, -4.092, 0, -0.167, -1241.405, -4.092, 0, -0.167, 15.416, 0, 8.07, 0, -344.358, 0.691, 0, -0.986, -1241.405, -1.79, 0, 0.943, 37.21, 0, 11.09, 0, -315.034, -5.062, 0, -0.333, -1189.448, -5.062, 0, -0.333, 37.21, 0, 11.09, 0, -315.034, 1.79, 0, -0.943, -1189.448, -6.379, 0, 0.397, 48.627, 0, 14.892, 0, -296.821, -2.757, 0, -0.918, -1133.463, -2.757, 0, -0.918, 48.627, 0, 14.892, 0, -296.821, 6.379, 0, -0.397, -1133.463, -1.362, 0, 0.965, 43.831, 0, 10.725, 0, -296.195, -5.012, 0, -0.262, -1125.706, -5.012, 0, -0.262, 43.831, 0, 10.725, 0, -296.195, 1.362, 0, -0.965, -1125.706, -3.375, 0, 0.835, 51.002, 0, 13.131, 0, -313.08, -5.115, 0, -0.551, -1192.613, -5.115, 0, -0.551, 51.002, 0, 13.131, 0, -313.08, 3.375, 0, -0.835, -1192.613, -3.079, 0, 0.672, 33.599, 0, 8.085, 0, -300.81, -2.795, 0, -0.74, -1133.666, -2.795, 0, -0.74, 33.599, 0, 8.085, 0, -300.81, 3.079, 0, -0.672, -1133.666, 3.045, 0, 0.881, 28.369, 0, 13.784, 0, -310.867, -5.666, 0, 0.473, -1173.288, -5.666, 0, 0.473, 28.369, 0, 13.784, 0, -310.867, -3.045, 0, -0.881, -1173.288, -3.509, 0, 0.701, -23.464, 0, 10.162, 0, -310.487, -3.449, 0, -0.713, -1166.979, -3.449, 0, -0.713, -23.464, 0, 10.162, 0, -310.487, 3.509, 0, -0.701, -1166.979, 2.569, 0, 0.797, 27.406, 0, 8.792, 0, -304.959, -3.395, 0, 0.604, -1145.318, -3.395, 0, 0.604, 27.406, 0, 8.792, 0, -304.959, -2.569, 0, -0.797, -1145.318, -4.517, 0, 0.138, -41.572, 0, 9.419, 0, -337.943, -0.631, 0, -0.99, -1237.81, -0.631, 0, -0.99, -41.572, 0, 9.419, 0, -337.943, 4.517, 0, -0.138, -1237.81, -5.056, 0, 0.253, -66.208, 0, 10.792, 0, -294.237, -1.322, 0, -0.967, -1139.672, -1.322, 0, -0.967, -66.208, 0, 10.792, 0, -294.237, 5.056, 0, -0.253, -1139.672, 0.242, 0, 0.998, 46.38, 0, 8.118, 0, -318.947, -4.168, 0, 0.058, -1203.013, -4.168, 0, 0.058, 46.38, 0, 8.118, 0, -318.947, -0.242, 0, -0.998, -1203.013, 2.244, 0, 0.875, -43.94, 0, 9.566, 0, -320.537, -4.053, 0, 0.484, -1204.416, -4.053, 0, 0.484, -43.94, 0, 9.566, 0, -320.537, -2.244, 0, -0.875, -1204.416, -5.425, 0, 0.112, -33.449, 0, 11.698, 0, -307.388, -0.609, 0, -0.994, -1165.044, -0.609, 0, -0.994, -33.449, 0, 11.698, 0, -307.388, 5.425, 0, -0.112, -1165.044, -2.855, 0, 0.833, 57.362, 0, 10.654, 0, -302.421, -4.297, 0, -0.553, -1161.661, -4.297, 0, -0.553, 57.362, 0, 10.654, 0, -302.421, 2.855, 0, -0.833, -1161.661, 0.101, 0, 1, 39.725, 0, 8.321, 0, -296.935, -4.278, 0, 0.024, -1123.957, -4.278, 0, 0.024, 39.725, 0, 8.321, 0, -296.935, -0.101, 0, -1, -1123.957, -4.603, 0, 0.677, -37.021, 0, 13.394, 0, -316.841, -4.228, 0, -0.736, -1195.326, -4.228, 0, -0.736, -37.021, 0, 13.394, 0, -316.841, 4.603, 0, -0.677, -1195.326, -5.283, 0, 0.241, -25.185, 0, 11.242, 0, -349.534, -1.313, 0, -0.97, -1254.993, -1.313, 0, -0.97, -25.185, 0, 11.242, 0, -349.534, 5.283, 0, -0.241, -1254.993, -5.174, 0, 0.577, 47.04, 0, 13.58, 0, -321.19, -3.659, 0, -0.816, -1208.136, -3.659, 0, -0.816, 47.04, 0, 13.58, 0, -321.19, 5.174, 0, -0.577, -1208.136, 4.303, 0, 0.179, -69.274, 0, 9.032, 0, -290.929, -0.782, 0, 0.984, -1125.792, -0.782, 0, 0.984, -69.274, 0, 9.032, 0, -290.929, -4.303, 0, -0.179, -1125.792, 4.21, 0, 0.326, -46.586, 0, 9.199, 0, -302.562, -1.454, 0, 0.945, -1157.657, -1.454, 0, 0.945, -46.586, 0, 9.199, 0, -302.562, -4.21, 0, -0.326, -1157.657, -5.5, 0, 0.244, 35.059, 0, 12.154, 0, -301.488, -1.387, 0, -0.97, -1138.382, -1.387, 0, -0.97, 35.059, 0, 12.154, 0, -301.488, 5.5, 0, -0.244, -1138.382, 2.726, 0, 0.744, -47.989, 0, 7.928, 0, -299.691, -3.032, 0, 0.669, -1143.873, -3.032, 0, 0.669, -47.989, 0, 7.928, 0, -299.691, -2.726, 0, -0.744, -1143.873, -0.377, 0, 0.996, -36.438, 0, 8.606, 0, -309.236, -4.41, 0, -0.085, -1173.558, -4.41, 0, -0.085, -36.438, 0, 8.606, 0, -309.236, 0.377, 0, -0.996, -1173.558, 3.732, 0, 0.352, 68.42, 0, 8.233, 0, -289.618, -1.402, 0, 0.936, -1123.183, -1.402, 0, 0.936, 68.42, 0, 8.233, 0, -289.618, -3.732, 0, -0.352, -1123.183, 4.143, 0, 0.526, -31.576, 0, 10.436, 0, -326.594, -2.56, 0, 0.851, -1211.2, -2.56, 0, 0.851, -31.576, 0, 10.436, 0, -326.594, -4.143, 0, -0.526, -1211.2, -1.249, 0, 0.967, 51.538, 0, 10.145, 0, -299.672, -4.751, 0, -0.254, -1145.65, -4.751, 0, -0.254, 51.538, 0, 10.145, 0, -299.672, 1.249, 0, -0.967, -1145.65, -3.038, 0, 0.726, 24.849, 0, 8.589, 0, -341.679, -3.207, 0, -0.688, -1240.668, -3.207, 0, -0.688, 24.849, 0, 8.589, 0, -341.679, 3.038, 0, -0.726, -1240.668, -5.234, 0, 0.366, -31.656, 0, 11.615, 0, -310.395, -2.059, 0, -0.931, -1173.848, -2.059, 0, -0.931, -31.656, 0, 11.615, 0, -310.395, 5.234, 0, -0.366, -1173.848, -4.954, 0, 0.083, -58.984, 0, 10.268, 0, -304.058, -0.415, 0, -0.997, -1170.893, -0.415, 0, -0.997, -58.984, 0, 10.268, 0, -304.058, 4.954, 0, -0.083, -1170.893, 3.128, 0, 0.772, 37.712, 0, 10.171, 0, -336.995, -3.803, 0, 0.635, -1235.901, -3.803, 0, 0.635, 37.712, 0, 10.171, 0, -336.995, -3.128, 0, -0.772, -1235.901, 3.092, 0, 0.098, -16.903, 0, 6.041, 0, -341.118, -0.304, 0, 0.995, -1234.898, -0.304, 0, 0.995, -16.903, 0, 6.041, 0, -341.118, -3.092, 0, -0.098, -1234.898) 1 110 SubResource("Mesh_pine_b") PackedFloat32Array(6.427, 0, 0.131, -29.234, 0, 13.892, 0, -336.69, -0.848, 0, 0.991, -1230.713, -0.848, 0, 0.991, -29.234, 0, 13.892, 0, -336.69, -6.427, 0, -0.131, -1230.713, -2.528, 0, 0.873, 31.981, 0, 11.11, 0, -335.962, -4.527, 0, -0.488, -1230.834, -4.527, 0, -0.488, 31.981, 0, 11.11, 0, -335.962, 2.528, 0, -0.873, -1230.834, 4.785, 0, 0.469, 48.246, 0, 11.609, 0, -302.808, -2.54, 0, 0.883, -1156.133, -2.54, 0, 0.883, 48.246, 0, 11.609, 0, -302.808, -4.785, 0, -0.469, -1156.133, 1.587, 0, 0.942, -22.435, 0, 9.741, 0, -334.244, -4.442, 0, 0.336, -1223.32, -4.442, 0, 0.336, -22.435, 0, 9.741, 0, -334.244, -1.587, 0, -0.942, -1223.32, 1.882, 0, 0.908, 29.949, 0, 8.716, 0, -300.479, -4.068, 0, 0.42, -1129.363, -4.068, 0, 0.42, 29.949, 0, 8.716, 0, -300.479, -1.882, 0, -0.908, -1129.363, -0.424, 0, 0.995, -20.581, 0, 8.586, 0, -320.493, -4.136, 0, -0.102, -1195.293, -4.136, 0, -0.102, -20.581, 0, 8.586, 0, -320.493, 0.424, 0, -0.995, -1195.293, 3.835, 0, 0.503, 22.076, 0, 9.164, 0, -338.717, -2.232, 0, 0.864, -1232.614, -2.232, 0, 0.864, 22.076, 0, 9.164, 0, -338.717, -3.835, 0, -0.503, -1232.614, -3.841, 0, 0.803, -47.16, 0, 13.818, 0, -338.459, -5.18, 0, -0.596, -1240.923, -5.18, 0, -0.596, -47.16, 0, 13.818, 0, -338.459, 3.841, 0, -0.803, -1240.923, 3.585, 0, 0.573, -47.845, 0, 9.035, 0, -330.007, -2.508, 0, 0.819, -1224.329, -2.508, 0, 0.819, -47.845, 0, 9.035, 0, -330.007, -3.585, 0, -0.573, -1224.329, 2.436, 0, 0.852, 37.845, 0, 9.596, 0, -343.732, -3.957, 0, 0.524, -1251.329, -3.957, 0, 0.524, 37.845, 0, 9.596, 0, -343.732, -2.436, 0, -0.852, -1251.329, 4.944, 0, 0.379, -34.88, 0, 11.45, 0, -346.801, -2.026, 0, 0.925, -1252.644, -2.026, 0, 0.925, -34.88, 0, 11.45, 0, -346.801, -4.944, 0, -0.379, -1252.644, -3.564, 0, 0.224, -27.68, 0, 7.111, 0, -325.465, -0.82, 0, -0.975, -1207.971, -0.82, 0, -0.975, -27.68, 0, 7.111, 0, -325.465, 3.564, 0, -0.224, -1207.971, 1.474, 0, 0.915, 47.743, 0, 7.097, 0, -341.1, -3.339, 0, 0.404, -1248.217, -3.339, 0, 0.404, 47.743, 0, 7.097, 0, -341.1, -1.474, 0, -0.915, -1248.217, -5.23, 0, 0.009, -45.824, 0, 10.802, 0, -343.253, -0.049, 0, -1, -1249.929, -0.049, 0, -1, -45.824, 0, 10.802, 0, -343.253, 5.23, 0, -0.009, -1249.929, -2.276, 0, 0.871, 41.919, 0, 9.565, 0, -307.972, -4.033, 0, -0.491, -1172.896, -4.033, 0, -0.491, 41.919, 0, 9.565, 0, -307.972, 2.276, 0, -0.871, -1172.896, 5.546, 0, 0.203, 16.659, 0, 11.697, 0, -352.165, -1.152, 0, 0.979, -1257.921, -1.152, 0, 0.979, 16.659, 0, 11.697, 0, -352.165, -5.546, 0, -0.203, -1257.921, 3.489, 0, 0.681, -37.346, 0, 10.205, 0, -310.49, -3.242, 0, 0.733, -1178.018, -3.242, 0, 0.733, -37.346, 0, 10.205, 0, -310.49, -3.489, 0, -0.681, -1178.018, 2.532, 0, 0.823, 26.268, 0, 8.67, 0, -343.351, -3.67, 0, 0.568, -1245.262, -3.67, 0, 0.568, 26.268, 0, 8.67, 0, -343.351, -2.532, 0, -0.823, -1245.262, -1.829, 0, 0.896, -48.794, 0, 8.492, 0, -295.535, -3.683, 0, -0.445, -1128.653, -3.683, 0, -0.445, -48.794, 0, 8.492, 0, -295.535, 1.829, 0, -0.896, -1128.653, -0.04, 0, 1, 56.133, 0, 7.784, 0, -314.654, -4.003, 0, -0.01, -1199.066, -4.003, 0, -0.01, 56.133, 0, 7.784, 0, -314.654, 0.04, 0, -1, -1199.066, 0.301, 0, 0.997, 21.938, 0, 7.451, 0, -354.489, -3.82, 0, 0.079, -1265.12, -3.82, 0, 0.079, 21.938, 0, 7.451, 0, -354.489, -0.301, 0, -0.997, -1265.12, -5.792, 0, 0.116, -43.037, 0, 12.496, 0, -296.873, -0.675, 0, -0.993, -1126.991, -0.675, 0, -0.993, -43.037, 0, 12.496, 0, -296.873, 5.792, 0, -0.116, -1126.991, 5.964, 0, 0.468, 24.673, 0, 14.459, 0, -324.181, -3.155, 0, 0.884, -1204.478, -3.155, 0, 0.884, 24.673, 0, 14.459, 0, -324.181, -5.964, 0, -0.468, -1204.478, -3.786, 0, 0.506, 38.793, 0, 9.063, 0, -305.29, -2.219, 0, -0.863, -1160.118, -2.219, 0, -0.863, 38.793, 0, 9.063, 0, -305.29, 3.786, 0, -0.506, -1160.118, -3.647, 0, 0.08, 60.123, 0, 7.115, 0, -297.738, -0.291, 0, -0.997, -1146.56, -0.291, 0, -0.997, 60.123, 0, 7.115, 0, -297.738, 3.647, 0, -0.08, -1146.56, 0.42, 0, 0.994, -43.614, 0, 7.479, 0, -345.878, -3.823, 0, 0.109, -1254.658, -3.823, 0, 0.109, -43.614, 0, 7.479, 0, -345.878, -0.42, 0, -0.994, -1254.658, -3.338, 0, 0.465, 30.826, 0, 7.331, 0, -308.884, -1.753, 0, -0.885, -1168.273, -1.753, 0, -0.885, 30.826, 0, 7.331, 0, -308.884, 3.338, 0, -0.465, -1168.273, 1.734, 0, 0.94, 33.228, 0, 10.49, 0, -304.622, -4.774, 0, 0.341, -1150.907, -4.774, 0, 0.341, 33.228, 0, 10.49, 0, -304.622, -1.734, 0, -0.94, -1150.907, -3.612, 0, 0.486, 28.409, 0, 8.536, 0, -306.436, -2.009, 0, -0.874, -1153.327, -2.009, 0, -0.874, 28.409, 0, 8.536, 0, -306.436, 3.612, 0, -0.486, -1153.327, 5.397, 0, 0.24, -36.978, 0, 11.481, 0, -300.445, -1.332, 0, 0.971, -1137.145, -1.332, 0, 0.971, -36.978, 0, 11.481, 0, -300.445, -5.397, 0, -0.24, -1137.145, -3.565, 0, 0.691, -54.122, 0, 10.183, 0, -294.09, -3.406, 0, -0.723, -1127.89, -3.406, 0, -0.723, -54.122, 0, 10.183, 0, -294.09, 3.565, 0, -0.691, -1127.89, 1.801, 0, 0.915, 63.908, 0, 8.7, 0, -295.437, -4.096, 0, 0.403, -1141.67, -4.096, 0, 0.403, 63.908, 0, 8.7, 0, -295.437, -1.801, 0, -0.915, -1141.67, -4.595, 0, 0.394, 27.456, 0, 10.326, 0, -326.978, -1.971, 0, -0.919, -1211.145, -1.971, 0, -0.919, 27.456, 0, 10.326, 0, -326.978, 4.595, 0, -0.394, -1211.145, 0.283, 0, 0.998, 55.621, 0, 8.315, 0, -306.384, -4.016, 0, 0.07, -1174.641, -4.016, 0, 0.07, 55.621, 0, 8.315, 0, -306.384, -0.283, 0, -0.998, -1174.641, -3.132, 0, 0.325, 30.88, 0, 6.44, 0, -324.434, -1.076, 0, -0.946, -1207.112, -1.076, 0, -0.946, 30.88, 0, 6.44, 0, -324.434, 3.132, 0, -0.325, -1207.112, -1.839, 0, 0.941, -55.137, 0, 11.201, 0, -309.589, -5.102, 0, -0.339, -1185.162, -5.102, 0, -0.339, -55.137, 0, 11.201, 0, -309.589, 1.839, 0, -0.941, -1185.162, 1.501, 0, 0.944, -15.445, 0, 9.434, 0, -335.392, -4.314, 0, 0.329, -1222.909, -4.314, 0, 0.329, -15.445, 0, 9.434, 0, -335.392, -1.501, 0, -0.944, -1222.909, -0.823, 0, 0.976, 31.582, 0, 7.296, 0, -303.206, -3.661, 0, -0.219, -1142.733, -3.661, 0, -0.219, 31.582, 0, 7.296, 0, -303.206, 0.823, 0, -0.976, -1142.733, -4.224, 0, 0.601, 46.936, 0, 11.328, 0, -300.925, -3.178, 0, -0.799, -1146.925, -3.178, 0, -0.799, 46.936, 0, 11.328, 0, -300.925, 4.224, 0, -0.601, -1146.925, -5.315, 0, 0.083, -36.49, 0, 11.014, 0, -301.236, -0.445, 0, -0.997, -1141.508, -0.445, 0, -0.997, -36.49, 0, 11.014, 0, -301.236, 5.315, 0, -0.083, -1141.508, -2.074, 0, 0.804, -32.599, 0, 6.782, 0, -301.407, -2.804, 0, -0.595, -1136.894, -2.804, 0, -0.595, -32.599, 0, 6.782, 0, -301.407, 2.074, 0, -0.804, -1136.894, -1.742, 0, 0.904, 22.359, 0, 7.904, 0, -309.365, -3.673, 0, -0.429, -1157.444, -3.673, 0, -0.429, 22.359, 0, 7.904, 0, -309.365, 1.742, 0, -0.904, -1157.444, -2.447, 0, 0.872, -14.221, 0, 10.338, 0, -339.012, -4.367, 0, -0.489, -1229.565, -4.367, 0, -0.489, -14.221, 0, 10.338, 0, -339.012, 2.447, 0, -0.872, -1229.565, 3.598, 0, 0.596, 56.611, 0, 9.254, 0, -316.888, -2.671, 0, 0.803, -1203.813, -2.671, 0, 0.803, 56.611, 0, 9.254, 0, -316.888, -3.598, 0, -0.596, -1203.813, -3.87, 0, 0.678, 24.075, 0, 11.285, 0, -307.853, -3.571, 0, -0.735, -1153.397, -3.571, 0, -0.735, 24.075, 0, 11.285, 0, -307.853, 3.87, 0, -0.678, -1153.397, 0.872, 0, 0.982, -24.147, 0, 9.451, 0, -315.851, -4.493, 0, 0.191, -1183.46, -4.493, 0, 0.191, -24.147, 0, 9.451, 0, -315.851, -0.872, 0, -0.982, -1183.46, -3.007, 0, 0.575, -22.169, 0, 7.148, 0, -331.496, -2.115, 0, -0.818, -1218.012, -2.115, 0, -0.818, -22.169, 0, 7.148, 0, -331.496, 3.007, 0, -0.575, -1218.012, -4.07, 0, 0.367, 43.299, 0, 8.509, 0, -298.762, -1.607, 0, -0.93, -1135.225, -1.607, 0, -0.93, 43.299, 0, 8.509, 0, -298.762, 4.07, 0, -0.367, -1135.225, 2.267, 0, 0.854, -48.424, 0, 8.47, 0, -316.356, -3.719, 0, 0.52, -1198.534, -3.719, 0, 0.52, -48.424, 0, 8.47, 0, -316.356, -2.267, 0, -0.854, -1198.534, -5.161, 0, 0.344, 15.956, 0, 11.777, 0, -323.293, -1.888, 0, -0.939, -1198.482, -1.888, 0, -0.939, 15.956, 0, 11.777, 0, -323.293, 5.161, 0, -0.344, -1198.482, 4.159, 0, 0.668, 41.71, 0, 11.539, 0, -306.12, -3.732, 0, 0.744, -1166.005, -3.732, 0, 0.744, 41.71, 0, 11.539, 0, -306.12, -4.159, 0, -0.668, -1166.005, 1.441, 0, 0.961, 49.278, 0, 10.821, 0, -343.492, -5.038, 0, 0.275, -1254.533, -5.038, 0, 0.275, 49.278, 0, 10.821, 0, -343.492, -1.441, 0, -0.961, -1254.533, -3.44, 0, 0.109, -41.42, 0, 6.73, 0, -306.858, -0.377, 0, -0.994, -1169.627, -0.377, 0, -0.994, -41.42, 0, 6.73, 0, -306.858, 3.44, 0, -0.109, -1169.627, -3.85, 0, 0.163, 38.088, 0, 7.588, 0, -309.787, -0.635, 0, -0.987, -1176.825, -0.635, 0, -0.987, 38.088, 0, 7.588, 0, -309.787, 3.85, 0, -0.163, -1176.825, -2.86, 0, 0.892, 18.601, 0, 13.563, 0, -329.858, -5.647, 0, -0.452, -1213.038, -5.647, 0, -0.452, 18.601, 0, 13.563, 0, -329.858, 2.86, 0, -0.892, -1213.038) 1 32 SubResource("Mesh_pine_a") PackedFloat32Array(-5.325, 0, 0.583, 40.893, 0, 14.039, 0, -412.507, -3.816, 0, -0.813, -1408.696, -3.816, 0, -0.813, 40.893, 0, 14.039, 0, -412.507, 5.325, 0, -0.583, -1408.696, -1.511, 0, 0.92, -21.473, 0, 7.487, 0, -416.207, -3.542, 0, -0.392, -1387.468, -3.542, 0, -0.392, -21.473, 0, 7.487, 0, -416.207, 1.511, 0, -0.92, -1387.468, -1.79, 0, 0.862, 33.1, 0, 6.872, 0, -414.445, -3.048, 0, -0.506, -1409.847, -3.048, 0, -0.506, 33.1, 0, 6.872, 0, -414.445, 1.79, 0, -0.862, -1409.847, -3.647, 0, 0.733, -39.43, 0, 11.075, 0, -412.349, -3.931, 0, -0.68, -1387.298, -3.931, 0, -0.68, -39.43, 0, 11.075, 0, -412.349, 3.647, 0, -0.733, -1387.298, 4.239, 0, 0.489, 34.166, 0, 10.416, 0, -412.1, -2.379, 0, 0.872, -1381.405, -2.379, 0, 0.872, 34.166, 0, 10.416, 0, -412.1, -4.239, 0, -0.489, -1381.405, -2.774, 0, 0.656, 31.872, 0, 7.149, 0, -413.598, -2.413, 0, -0.754, -1387.087, -2.413, 0, -0.754, 31.872, 0, 7.149, 0, -413.598, 2.774, 0, -0.656, -1387.087, 2.327, 0, 0.784, 52.549, 0, 7.287, 0, -408.058, -2.937, 0, 0.621, -1383.055, -2.937, 0, 0.621, 52.549, 0, 7.287, 0, -408.058, -2.327, 0, -0.784, -1383.055, -3.99, 0, 0.755, 35.725, 0, 13.043, 0, -406.415, -4.596, 0, -0.656, -1368.978, -4.596, 0, -0.656, 35.725, 0, 13.043, 0, -406.415, 3.99, 0, -0.755, -1368.978, -3.278, 0, 0.562, 47.787, 0, 8.183, 0, -408.638, -2.225, 0, -0.827, -1380.322, -2.225, 0, -0.827, 47.787, 0, 8.183, 0, -408.638, 3.278, 0, -0.562, -1380.322, 3.771, 0, 0.704, 28.498, 0, 10.97, 0, -413.096, -3.741, 0, 0.71, -1379.66, -3.741, 0, 0.71, 28.498, 0, 10.97, 0, -413.096, -3.771, 0, -0.704, -1379.66, -2.196, 0, 0.834, -47.099, 0, 8.223, 0, -409.48, -3.321, 0, -0.552, -1382.48, -3.321, 0, -0.552, -47.099, 0, 8.223, 0, -409.48, 2.196, 0, -0.834, -1382.48, 3.169, 0, 0.717, -25.537, 0, 9.386, 0, -409.927, -3.258, 0, 0.697, -1369.454, -3.258, 0, 0.697, -25.537, 0, 9.386, 0, -409.927, -3.169, 0, -0.717, -1369.454, 3.16, 0, 0.886, -43.3, 0, 14.631, 0, -411.09, -6.053, 0, 0.463, -1385.565, -6.053, 0, 0.463, -43.3, 0, 14.631, 0, -411.09, -3.16, 0, -0.886, -1385.565, 1.671, 0, 0.939, 26.785, 0, 10.414, 0, -415.692, -4.564, 0, 0.344, -1404.919, -4.564, 0, 0.344, 26.785, 0, 10.414, 0, -415.692, -1.671, 0, -0.939, -1404.919, -2.415, 0, 0.627, 35.392, 0, 6.029, 0, -413.325, -1.944, 0, -0.779, -1391.158, -1.944, 0, -0.779, 35.392, 0, 6.029, 0, -413.325, 2.415, 0, -0.627, -1391.158, 3.051, 0, 0.09, 62.93, 0, 5.956, 0, -402.009, -0.276, 0, 0.996, -1371.827, -0.276, 0, 0.996, 62.93, 0, 5.956, 0, -402.009, -3.051, 0, -0.09, -1371.827) 1 24 SubResource("Mesh_pine_b") PackedFloat32Array(4.455, 0, 0.43, -47.776, 0, 10.191, 0, -407.612, -2.122, 0, 0.903, -1375.555, -2.122, 0, 0.903, -47.776, 0, 10.191, 0, -407.612, -4.455, 0, -0.43, -1375.555, -1.177, 0, 0.925, -26.1, 0, 6.008, 0, -414.289, -2.857, 0, -0.381, -1380.983, -2.857, 0, -0.381, -26.1, 0, 6.008, 0, -414.289, 1.177, 0, -0.925, -1380.983, 2.524, 0, 0.819, -40.89, 0, 9.074, 0, -412.191, -3.596, 0, 0.574, -1398.754, -3.596, 0, 0.574, -40.89, 0, 9.074, 0, -412.191, -2.524, 0, -0.819, -1398.754, 4.808, 0, 0.363, -53.369, 0, 10.658, 0, -408.684, -1.875, 0, 0.932, -1389.253, -1.875, 0, 0.932, -53.369, 0, 10.658, 0, -408.684, -4.808, 0, -0.363, -1389.253, 3.783, 0, 0.69, -54.772, 0, 10.792, 0, -408.925, -3.605, 0, 0.724, -1399.652, -3.605, 0, 0.724, -54.772, 0, 10.792, 0, -408.925, -3.783, 0, -0.69, -1399.652, -3.854, 0, 0.552, -25.697, 0, 9.542, 0, -412.975, -2.548, 0, -0.834, -1375.849, -2.548, 0, -0.834, -25.697, 0, 9.542, 0, -412.975, 3.854, 0, -0.552, -1375.849, 2.292, 0, 0.688, -22.573, 0, 6.142, 0, -416.553, -2.173, 0, 0.726, -1393.396, -2.173, 0, 0.726, -22.573, 0, 6.142, 0, -416.553, -2.292, 0, -0.688, -1393.396, 4.671, 0, 0.15, 29.938, 0, 9.758, 0, -414.56, -0.71, 0, 0.989, -1391.331, -0.71, 0, 0.989, 29.938, 0, 9.758, 0, -414.56, -4.671, 0, -0.15, -1391.331, -3.299, 0, 0.788, 44.135, 0, 11.059, 0, -410.762, -4.218, 0, -0.616, -1387.609, -4.218, 0, -0.616, 44.135, 0, 11.059, 0, -410.762, 3.299, 0, -0.788, -1387.609, -5.623, 0, 0.144, -30.953, 0, 11.735, 0, -414.453, -0.819, 0, -0.99, -1388.829, -0.819, 0, -0.99, -30.953, 0, 11.735, 0, -414.453, 5.623, 0, -0.144, -1388.829, 4.106, 0, 0.539, 24.016, 0, 10.442, 0, -415.415, -2.624, 0, 0.843, -1387.251, -2.624, 0, 0.843, 24.016, 0, 10.442, 0, -415.415, -4.106, 0, -0.539, -1387.251, -3.102, 0, 0.368, -35.22, 0, 6.486, 0, -413.428, -1.227, 0, -0.93, -1401.173, -1.227, 0, -0.93, -35.22, 0, 6.486, 0, -413.428, 3.102, 0, -0.368, -1401.173) 1 52 SubResource("Mesh_pine_a") PackedFloat32Array(4.461, 0, 0.552, 54.938, 0, 11.048, 0, -409.321, -2.953, 0, 0.834, -1448.941, -2.953, 0, 0.834, 54.938, 0, 11.048, 0, -409.321, -4.461, 0, -0.552, -1448.941, 0.817, 0, 0.984, 35.703, 0, 9.367, 0, -414.382, -4.462, 0, 0.18, -1465.477, -4.462, 0, 0.18, 35.703, 0, 9.367, 0, -414.382, -0.817, 0, -0.984, -1465.477, -0.833, 0, 0.971, 33.863, 0, 6.721, 0, -415.011, -3.355, 0, -0.241, -1477.76, -3.355, 0, -0.241, 33.863, 0, 6.721, 0, -415.011, 0.833, 0, -0.971, -1477.76, 2.993, 0, 0.663, 40.12, 0, 7.779, 0, -412.477, -2.654, 0, 0.748, -1449.078, -2.654, 0, 0.748, 40.12, 0, 7.779, 0, -412.477, -2.993, 0, -0.663, -1449.078, -1.003, 0, 0.989, 22.541, 0, 14.496, 0, -416.606, -6.69, 0, -0.148, -1435.325, -6.69, 0, -0.148, 22.541, 0, 14.496, 0, -416.606, 1.003, 0, -0.989, -1435.325, 3.187, 0, 0.7, -20.384, 0, 8.674, 0, -417.374, -3.122, 0, 0.714, -1426.046, -3.122, 0, 0.714, -20.384, 0, 8.674, 0, -417.374, -3.187, 0, -0.7, -1426.046, 4.972, 0, 0.359, -25.571, 0, 11.415, 0, -415.813, -1.912, 0, 0.933, -1494.021, -1.912, 0, 0.933, -25.571, 0, 11.415, 0, -415.813, -4.972, 0, -0.359, -1494.021, -3.447, 0, 0.238, 24.98, 0, 6.902, 0, -416.22, -0.846, 0, -0.971, -1454.465, -0.846, 0, -0.971, 24.98, 0, 6.902, 0, -416.22, 3.447, 0, -0.238, -1454.465, -5.36, 0, 0.106, 24.232, 0, 11.132, 0, -416.577, -0.572, 0, -0.994, -1492.131, -0.572, 0, -0.994, 24.232, 0, 11.132, 0, -416.577, 5.36, 0, -0.106, -1492.131, 3.454, 0, 0.18, 22.073, 0, 6.827, 0, -417.247, -0.631, 0, 0.984, -1475.417, -0.631, 0, 0.984, 22.073, 0, 6.827, 0, -417.247, -3.454, 0, -0.18, -1475.417, -2.05, 0, 0.927, -21.825, 0, 11.715, 0, -416.991, -5.068, 0, -0.375, -1445.542, -5.068, 0, -0.375, -21.825, 0, 11.715, 0, -416.991, 2.05, 0, -0.927, -1445.542, 3.057, 0, 0.751, -54.773, 0, 9.561, 0, -408.744, -3.477, 0, 0.66, -1421.225, -3.477, 0, 0.66, -54.773, 0, 9.561, 0, -408.744, -3.057, 0, -0.751, -1421.225, -3.714, 0, 0.527, 50.89, 0, 9.028, 0, -410.164, -2.306, 0, -0.85, -1445.944, -2.306, 0, -0.85, 50.89, 0, 9.028, 0, -410.164, 3.714, 0, -0.527, -1445.944, 5.36, 0, 0.164, 39.941, 0, 11.643, 0, -413.724, -0.89, 0, 0.986, -1474.301, -0.89, 0, 0.986, 39.941, 0, 11.643, 0, -413.724, -5.36, 0, -0.164, -1474.301, 2.29, 0, 0.886, 29.844, 0, 10.217, 0, -414.736, -4.385, 0, 0.463, -1432.668, -4.385, 0, 0.463, 29.844, 0, 10.217, 0, -414.736, -2.29, 0, -0.886, -1432.668, 5.763, 0, 0.435, 18.229, 0, 13.714, 0, -418.094, -2.783, 0, 0.9, -1420.821, -2.783, 0, 0.9, 18.229, 0, 13.714, 0, -418.094, -5.763, 0, -0.435, -1420.821, -3.592, 0, 0.735, -33.768, 0, 10.943, 0, -413.674, -3.896, 0, -0.678, -1441.671, -3.896, 0, -0.678, -33.768, 0, 10.943, 0, -413.674, 3.592, 0, -0.735, -1441.671, 6.387, 0, 0.396, 47.853, 0, 14.902, 0, -411.277, -2.752, 0, 0.918, -1463.709, -2.752, 0, 0.918, 47.853, 0, 14.902, 0, -411.277, -6.387, 0, -0.396, -1463.709, -4.048, 0, 0.354, -44.86, 0, 8.939, 0, -412.161, -1.533, 0, -0.935, -1492.286, -1.533, 0, -0.935, -44.86, 0, 8.939, 0, -412.161, 4.048, 0, -0.354, -1492.286, 2.969, 0, 0.743, -30.155, 0, 9.165, 0, -415.602, -3.298, 0, 0.669, -1474.694, -3.298, 0, 0.669, -30.155, 0, 9.165, 0, -415.602, -2.969, 0, -0.743, -1474.694, -1.187, 0, 0.928, -41.869, 0, 6.192, 0, -412.261, -2.955, 0, -0.373, -1451.044, -2.955, 0, -0.373, -41.869, 0, 6.192, 0, -412.261, 1.187, 0, -0.928, -1451.044, 5.016, 0, 0.447, -22.298, 0, 11.578, 0, -417.025, -2.503, 0, 0.895, -1460.666, -2.503, 0, 0.895, -22.298, 0, 11.578, 0, -417.025, -5.016, 0, -0.447, -1460.666, -3.54, 0, 0.755, 28.749, 0, 11.144, 0, -415.969, -4.073, 0, -0.656, -1478.428, -4.073, 0, -0.656, 28.749, 0, 11.144, 0, -415.969, 3.54, 0, -0.755, -1478.428, -1.52, 0, 0.954, -34.779, 0, 10.422, 0, -414.709, -4.812, 0, -0.301, -1471.179, -4.812, 0, -0.301, -34.779, 0, 10.422, 0, -414.709, 1.52, 0, -0.954, -1471.179, -0.467, 0, 0.992, 29.369, 0, 7.219, 0, -415.614, -3.683, 0, -0.126, -1487.546, -3.683, 0, -0.126, 29.369, 0, 7.219, 0, -415.614, 0.467, 0, -0.992, -1487.546, 3.274, 0, 0.558, 30.906, 0, 7.672, 0, -414.618, -2.202, 0, 0.83, -1448.188, -2.202, 0, 0.83, 30.906, 0, 7.672, 0, -414.618, -3.274, 0, -0.558, -1448.188) 1 50 SubResource("Mesh_pine_b") PackedFloat32Array(4.964, 0, 0.175, -42.836, 0, 10.412, 0, -412.747, -0.881, 0, 0.985, -1478.663, -0.881, 0, 0.985, -42.836, 0, 10.412, 0, -412.747, -4.964, 0, -0.175, -1478.663, -5.063, 0, 0.221, -46.197, 0, 10.72, 0, -410.912, -1.145, 0, -0.975, -1419.714, -1.145, 0, -0.975, -46.197, 0, 10.72, 0, -410.912, 5.063, 0, -0.221, -1419.714, 3.786, 0, 0.217, -35.696, 0, 7.541, 0, -414.199, -0.841, 0, 0.976, -1478.06, -0.841, 0, 0.976, -35.696, 0, 7.541, 0, -414.199, -3.786, 0, -0.217, -1478.06, 5.034, 0, 0.613, 44.962, 0, 13.658, 0, -412.517, -3.909, 0, 0.79, -1475.356, -3.909, 0, 0.79, 44.962, 0, 13.658, 0, -412.517, -5.034, 0, -0.613, -1475.356, -2.92, 0, 0.573, 41.021, 0, 6.926, 0, -412.454, -2.041, 0, -0.82, -1417.954, -2.041, 0, -0.82, 41.021, 0, 6.926, 0, -412.454, 2.92, 0, -0.573, -1417.954, 3.282, 0, 0.308, -24.418, 0, 6.707, 0, -416.14, -1.061, 0, 0.952, -1438.058, -1.061, 0, 0.952, -24.418, 0, 6.707, 0, -416.14, -3.282, 0, -0.308, -1438.058, -3.769, 0, 0.503, -27.408, 0, 9.008, 0, -415.535, -2.196, 0, -0.864, -1424.053, -2.196, 0, -0.864, -27.408, 0, 9.008, 0, -415.535, 3.769, 0, -0.503, -1424.053, 3.819, 0, 0.539, 42.768, 0, 9.363, 0, -412.872, -2.444, 0, 0.842, -1485.179, -2.444, 0, 0.842, 42.768, 0, 9.363, 0, -412.872, -3.819, 0, -0.539, -1485.179, 4.122, 0, 0.213, 24.693, 0, 8.205, 0, -416.659, -0.901, 0, 0.977, -1469.97, -0.901, 0, 0.977, 24.693, 0, 8.205, 0, -416.659, -4.122, 0, -0.213, -1469.97, -3.703, 0, 0.087, -36.679, 0, 7.227, 0, -413.347, -0.324, 0, -0.996, -1448.031, -0.324, 0, -0.996, -36.679, 0, 7.227, 0, -413.347, 3.703, 0, -0.087, -1448.031, -1.086, 0, 0.976, 56.456, 0, 10.241, 0, -408.463, -4.838, 0, -0.219, -1420.02, -4.838, 0, -0.219, 56.456, 0, 10.241, 0, -408.463, 1.086, 0, -0.976, -1420.02, -4.428, 0, 0.678, -19.661, 0, 12.907, 0, -417.777, -4.084, 0, -0.735, -1474.635, -4.084, 0, -0.735, -19.661, 0, 12.907, 0, -417.777, 4.428, 0, -0.678, -1474.635, 3.077, 0, 0.83, 26.363, 0, 11.385, 0, -415.921, -4.574, 0, 0.558, -1411.845, -4.574, 0, 0.558, 26.363, 0, 11.385, 0, -415.921, -3.077, 0, -0.83, -1411.845, -3.993, 0, 0.597, -45.071, 0, 10.275, 0, -411.273, -2.969, 0, -0.803, -1445.201, -2.969, 0, -0.803, -45.071, 0, 10.275, 0, -411.273, 3.993, 0, -0.597, -1445.201, -1.754, 0, 0.962, -30.294, 0, 13.805, 0, -414.451, -6.199, 0, -0.272, -1437.693, -6.199, 0, -0.272, -30.294, 0, 13.805, 0, -414.451, 1.754, 0, -0.962, -1437.693, -3.068, 0, 0.642, 50.448, 0, 8.266, 0, -410.612, -2.57, 0, -0.767, -1437.088, -2.57, 0, -0.767, 50.448, 0, 8.266, 0, -410.612, 3.068, 0, -0.642, -1437.088, -3.251, 0, 0.739, -22.557, 0, 9.963, 0, -416.692, -3.564, 0, -0.674, -1486.443, -3.564, 0, -0.674, -22.557, 0, 9.963, 0, -416.692, 3.251, 0, -0.739, -1486.443, -4.883, 0, 0.078, -27.079, 0, 10.115, 0, -415.497, -0.38, 0, -0.997, -1430.53, -0.38, 0, -0.997, -27.079, 0, 10.115, 0, -415.497, 4.883, 0, -0.078, -1430.53, 1.042, 0, 0.983, -47.435, 0, 11.8, 0, -411.787, -5.618, 0, 0.182, -1487.412, -5.618, 0, 0.182, -47.435, 0, 11.8, 0, -411.787, -1.042, 0, -0.983, -1487.412, 3.864, 0, 0.445, 19.382, 0, 8.913, 0, -417.783, -1.922, 0, 0.895, -1455.298, -1.922, 0, 0.895, 19.382, 0, 8.913, 0, -417.783, -3.864, 0, -0.445, -1455.298, -3.402, 0, 0.143, 29.256, 0, 6.684, 0, -415.947, -0.493, 0, -0.99, -1472.105, -0.493, 0, -0.99, 29.256, 0, 6.684, 0, -415.947, 3.402, 0, -0.143, -1472.105, 2.093, 0, 0.925, 62.948, 0, 11.353, 0, -407.236, -5.083, 0, 0.381, -1491.271, -5.083, 0, 0.381, 62.948, 0, 11.353, 0, -407.236, -2.093, 0, -0.925, -1491.271, 1.781, 0, 0.89, 49.2, 0, 8.076, 0, -411.358, -3.482, 0, 0.455, -1471.894, -3.482, 0, 0.455, 49.2, 0, 8.076, 0, -411.358, -1.781, 0, -0.89, -1471.894, 4.794, 0, 0.521, -20.658, 0, 12.034, 0, -417.299, -2.926, 0, 0.854, -1418.334, -2.926, 0, 0.854, -20.658, 0, 12.034, 0, -417.299, -4.794, 0, -0.521, -1418.334, -3.06, 0, 0.785, 46.039, 0, 10.201, 0, -411.389, -3.877, 0, -0.619, -1458.734, -3.877, 0, -0.619, 46.039, 0, 10.201, 0, -411.389, 3.06, 0, -0.785, -1458.734) 0.5 {"points": PackedVector3Array(0, 0, 0, 0, -0.173, -1.658, 0, 0, 0, 0, 0.174, 1.658, 0, -0.174, -1.658, 0, -0.52, -4.973, 0, 0.191, 1.655, 0, -0.191, -1.655, 0, -1.045, -9.945, 0, 0.372, 1.614, 0, -0.372, -1.614, 0, -1.664, -14.905, 0, 0.555, 1.571, 0, -0.555, -1.571, 0, -3.278, -19.631, 0, 0.571, 1.566, 0, -0.571, -1.566, 0, -4.991, -24.33, 0, 0.568, 1.567, 0, -0.568, -1.567, 0, -6.704, -29.028, 0, 0.544, 1.575, 0, -0.544, -1.575, 0, -8.398, -33.73, 0, 0.488, 1.593, 0, -0.488, -1.593, 0, -9.969, -38.476, 0, 0.393, 1.61, 0, -0.393, -1.61, 0, -11.324, -43.29, 0, 0.242, 1.617, 0, -0.242, -1.617, 0, -12.326, -48.139, 0, 0.402, 1.617, 0, -0.402, -1.617, 0, -12.777, -52.99, -0.004, 0.566, 1.617, 0.004, -0.566, -1.617, 0, -14.735, -57.842, -0.015, 0.441, 1.617, 0.015, -0.441, -1.617, 0.022, -16.174, -62.693, -0.029, 0.403, 1.617, 0.029, -0.403, -1.617, 0.088, -17.381, -67.544, -0.043, 0.383, 1.617, 0.043, -0.383, -1.617, 0.196, -18.59, -72.394, -0.057, 0.242, 1.616, 0.057, -0.242, -1.616, 0.347, -19.682, -77.244, -0.069, 0.407, 1.616, 0.069, -0.407, -1.616, 0.536, -20.042, -82.091, -0.081, 0.565, 1.615, 0.081, -0.565, -1.615, 0.764, -22.126, -86.937, -0.092, 0.419, 1.615, 0.092, -0.419, -1.615, 1.025, -23.431, -91.782, -0.102, 0.403, 1.614, 0.102, -0.403, -1.614, 1.318, -24.638, -96.625, -0.111, 0.404, 1.613, 0.111, -0.404, -1.613, 1.638, -25.848, -101.465, -0.118, 0.372, 1.613, 0.118, -0.372, -1.613, 1.981, -27.061, -106.305, -0.123, 0.211, 1.612, 0.123, -0.211, -1.612, 2.344, -28.079, -111.143, -0.127, 0.4, 1.612, 0.127, -0.4, -1.612, 2.721, -28.326, -115.979, -0.13, 0.596, 1.612, 0.13, -0.596, -1.612, 3.108, -30.481, -120.815, -0.131, 0.438, 1.612, 0.131, -0.438, -1.612, 3.5, -31.902, -125.651, -0.13, 0.403, 1.612, 0.13, -0.403, -1.612, 3.892, -33.107, -130.487, -0.127, 0.403, 1.612, 0.127, -0.403, -1.612, 4.279, -34.32, -135.323, -0.123, 0.403, 1.612, 0.123, -0.403, -1.612, 4.656, -35.527, -140.16, -0.118, 0.37, 1.613, 0.118, -0.37, -1.613, 5.019, -36.736, -144.997, -0.111, 0.206, 1.613, 0.111, -0.206, -1.613, 5.362, -37.75, -149.837, -0.102, 0.402, 1.614, 0.102, -0.402, -1.614, 5.682, -37.971, -154.678, -0.092, 0.6, 1.615, 0.092, -0.6, -1.615, 5.975, -40.161, -159.52, -0.081, 0.438, 1.615, 0.081, -0.438, -1.615, 6.236, -41.573, -164.365, -0.069, 0.404, 1.616, 0.069, -0.404, -1.616, 6.464, -42.787, -169.211, -0.057, 0.403, 1.616, 0.057, -0.403, -1.616, 6.653, -43.994, -174.059, -0.043, 0.403, 1.617, 0.043, -0.403, -1.617, 6.804, -45.203, -178.908, -0.029, 0.403, 1.617, 0.029, -0.403, -1.617, 6.912, -46.412, -183.758, -0.015, 0.37, 1.617, 0.015, -0.37, -1.617, 6.978, -47.624, -188.609, 0.004, 0.194, 1.617, -0.004, -0.194, -1.617, 7, -48.634, -193.46, 0.029, 0.395, 1.617, -0.029, -0.395, -1.617, 6.956, -48.789, -198.312, 0.058, 0.612, 1.616, -0.058, -0.612, -1.616, 6.826, -51.002, -203.161, 0.085, 0.445, 1.615, -0.085, -0.445, -1.615, 6.61, -52.459, -208.008, 0.112, 0.403, 1.613, -0.112, -0.403, -1.613, 6.313, -53.672, -212.85, 0.137, 0.403, 1.611, -0.137, -0.403, -1.611, 5.938, -54.877, -217.687, 0.16, 0.403, 1.609, -0.16, -0.403, -1.609, 5.491, -56.091, -222.518, 0.18, 0.402, 1.607, -0.18, -0.402, -1.607, 4.979, -57.298, -227.342, 0.198, 0.353, 1.605, -0.198, -0.353, -1.605, 4.408, -58.506, -232.16, 0.213, 0.173, 1.603, -0.213, -0.173, -1.603, 3.788, -59.415, -236.972, 0.225, 0.401, 1.601, -0.225, -0.401, -1.601, 3.128, -59.546, -241.778, 0.234, 0.633, 1.6, -0.234, -0.633, -1.6, 2.436, -61.819, -246.58, 0.239, 0.457, 1.599, -0.239, -0.457, -1.599, 1.723, -63.347, -251.379, 0.241, 0.403, 1.599, -0.241, -0.403, -1.599, 1, -64.558, -256.176, 0.239, 0.404, 1.599, -0.239, -0.404, -1.599, 0.277, -65.763, -260.973, 0.234, 0.404, 1.6, -0.234, -0.404, -1.6, -0.436, -66.979, -265.772, 0.225, 0.402, 1.601, -0.225, -0.402, -1.601, -1.128, -68.185, -270.574, 0.213, 0.544, 1.603, -0.213, -0.544, -1.603, -1.788, -69.393, -275.38, 0.198, 0.208, 1.605, -0.198, -0.208, -1.605, -2.408, -71.45, -280.192, 0.18, -0.14, 1.607, -0.18, 0.14, -1.607, -2.979, -70.64, -285.01, 0.16, -0.003, 1.609, -0.16, 0.003, -1.609, -3.491, -70.61, -289.834, 0.137, 0.26, 1.611, -0.137, -0.26, -1.611, -3.938, -70.623, -294.665, 0.112, 0.616, 1.613, -0.112, -0.616, -1.613, -4.313, -72.168, -299.502, 0.085, 0.718, 1.615, -0.085, -0.718, -1.615, -4.61, -74.32, -304.344, 0.058, 0.719, 1.616, -0.058, -0.719, -1.616, -4.826, -76.475, -309.191, 0.029, 0.671, 1.614, -0.029, -0.671, -1.614, -4.956, -78.637, -314.039, 0.003, 0.52, 1.606, -0.003, -0.52, -1.606, -5, -80.5, -318.872, -0.016, 0.451, 1.597, 0.016, -0.451, -1.597, -4.975, -81.759, -323.674, -0.033, 0.486, 1.594, 0.033, -0.486, -1.594, -4.902, -83.207, -328.457, -0.048, 0.487, 1.593, 0.048, -0.487, -1.593, -4.78, -84.673, -333.237, -0.064, 0.639, 1.593, 0.064, -0.639, -1.593, -4.611, -86.128, -338.015, -0.078, 0.243, 1.592, 0.078, -0.243, -1.592, -4.397, -88.504, -342.792, -0.092, -0.186, 1.591, 0.092, 0.186, -1.591, -4.141, -87.584, -347.567, -0.105, -0.032, 1.59, 0.105, 0.032, -1.59, -3.844, -87.39, -352.339, -0.117, 0.012, 1.59, 0.117, -0.012, -1.59, -3.511, -87.39, -357.109, -0.127, 0.352, 1.589, 0.127, -0.352, -1.589, -3.145, -87.463, -361.876, -0.136, 0.744, 1.588, 0.136, -0.744, -1.588, -2.75, -89.499, -366.641, -0.143, 0.809, 1.587, 0.143, -0.809, -1.587, -2.33, -91.928, -371.405, -0.149, 0.809, 1.587, 0.149, -0.809, -1.587, -1.891, -94.351, -376.166, -0.153, 0.809, 1.586, 0.153, -0.809, -1.586, -1.436, -96.782, -380.926, -0.156, 0.816, 1.586, 0.156, -0.816, -1.586, -0.97, -99.206, -385.684, -0.157, 0.743, 1.586, 0.157, -0.743, -1.586, -0.5, -101.678, -390.443, -0.156, 0.673, 1.586, 0.156, -0.673, -1.586, -0.03, -103.664, -395.201, -0.153, 0.387, 1.586, 0.153, -0.387, -1.586, 0.436, -105.715, -399.96, -0.149, 0.098, 1.587, 0.149, -0.098, -1.587, 0.891, -105.984, -404.72, -0.143, 0.123, 1.587, 0.143, -0.123, -1.587, 1.33, -106.3, -409.481, -0.136, 0.136, 1.588, 0.136, -0.136, -1.588, 1.75, -106.72, -414.244, -0.127, 0.315, 1.589, 0.127, -0.315, -1.589, 2.145, -107.115, -419.009, -0.117, 0.678, 1.59, 0.117, -0.678, -1.59, 2.511, -108.609, -423.777, -0.105, 0.853, 1.59, 0.105, -0.853, -1.59, 2.844, -111.183, -428.547, -0.092, 0.817, 1.591, 0.092, -0.817, -1.591, 3.141, -113.726, -433.319, -0.078, 0.735, 1.592, 0.078, -0.735, -1.592, 3.397, -116.086, -438.094, -0.064, 0.61, 1.593, 0.064, -0.61, -1.593, 3.611, -118.134, -442.87, -0.048, 0.514, 1.593, 0.048, -0.514, -1.593, 3.78, -119.749, -447.649, -0.033, 0.489, 1.593, 0.033, -0.489, -1.593, 3.902, -121.215, -452.429, -0.016, 0.533, 1.594, 0.016, -0.533, -1.594, 3.975, -122.681, -457.21, -0.003, 0.572, 1.594, 0.003, -0.572, -1.594, 4, -124.416, -461.991, 0.006, -0.019, 1.594, -0.006, 0.019, -1.594, 3.99, -126.115, -466.773, 0.013, -0.304, 1.594, -0.013, 0.304, -1.594, 3.962, -124.303, -471.554, 0.019, -0.002, 1.594, -0.019, 0.002, -1.594, 3.914, -124.29, -476.335, 0.025, 0, 1.594, -0.025, 0, -1.594, 3.848, -124.29, -481.116, 0.031, 0.088, 1.594, -0.031, -0.088, -1.594, 3.764, -124.29, -485.897, 0.036, 0.546, 1.593, -0.036, -0.546, -1.593, 3.663, -124.821, -490.678, 0.041, 0.918, 1.593, -0.041, -0.918, -1.593, 3.546, -127.566, -495.458, 0.046, 0.92, 1.593, -0.046, -0.92, -1.593, 3.414, -130.328, -500.237, 0.051, 0.919, 1.593, -0.051, -0.919, -1.593, 3.269, -133.083, -505.017, 0.054, 0.92, 1.593, -0.054, -0.92, -1.593, 3.111, -135.843, -509.796, 0.058, 0.919, 1.593, -0.058, -0.919, -1.593, 2.943, -138.603, -514.574, 0.06, 0.784, 1.593, -0.06, -0.784, -1.593, 2.765, -141.357, -519.352, 0.063, 0.542, 1.593, -0.063, -0.542, -1.593, 2.581, -143.308, -524.13, 0.064, 0.451, 1.593, -0.064, -0.451, -1.593, 2.39, -144.609, -528.908, 0.065, -0.023, 1.593, -0.065, 0.023, -1.593, 2.196, -146.011, -533.686, 0.065, -0.401, 1.593, -0.065, 0.401, -1.593, 2, -144.472, -538.463, 0.065, 0.095, 1.593, -0.065, -0.095, -1.593, 1.804, -143.607, -543.241, 0.064, 0.662, 1.593, -0.064, -0.662, -1.593, 1.61, -145.041, -548.018, 0.063, 0.846, 1.593, -0.063, -0.846, -1.593, 1.419, -147.579, -552.796, 0.06, 1.089, 1.593, -0.06, -1.089, -1.593, 1.235, -150.117, -557.574, 0.058, 1.03, 1.593, -0.058, -1.03, -1.593, 1.057, -154.113, -562.352, 0.054, 0.609, 1.593, -0.054, -0.609, -1.593, 0.889, -156.3, -567.131, 0.051, 0.487, 1.593, -0.051, -0.487, -1.593, 0.731, -157.766, -571.91, 0.046, 0.536, 1.593, -0.046, -0.536, -1.593, 0.586, -159.221, -576.689, 0.041, 0.579, 1.593, -0.041, -0.579, -1.593, 0.454, -160.981, -581.469, 0.036, -0.062, 1.593, -0.036, 0.062, -1.593, 0.337, -162.695, -586.249, 0.031, -0.349, 1.594, -0.031, 0.349, -1.594, 0.236, -160.61, -591.029, 0.025, -0.002, 1.594, -0.025, 0.002, -1.594, 0.152, -160.6, -595.81, 0.019, 0, 1.594, -0.019, 0, -1.594, 0.086, -160.6, -600.591, 0.013, 0, 1.594, -0.013, 0, -1.594, 0.038, -160.6, -605.372, 0.006, 0.336, 1.601, -0.006, -0.336, -1.601, 0.01, -160.6, -610.157, 0.004, 0.824, 1.617, -0.004, -0.824, -1.617, 0, -162.617, -614.979, 0.009, 0.98, 1.631, -0.009, -0.98, -1.631, -0.013, -165.544, -619.856, 0.017, 0.983, 1.636, -0.017, -0.983, -1.636, -0.051, -168.497, -624.762, 0.025, 0.982, 1.636, -0.025, -0.982, -1.636, -0.114, -171.442, -629.67, 0.033, 0.983, 1.636, -0.033, -0.983, -1.636, -0.201, -174.387, -634.578, 0.04, 0.902, 1.636, -0.04, -0.902, -1.636, -0.31, -177.337, -639.484, 0.046, 0.807, 1.635, -0.046, -0.807, -1.635, -0.439, -179.797, -644.391, 0.052, 0.154, 1.635, -0.052, -0.154, -1.635, -0.587, -182.179, -649.297, 0.057, -0.432, 1.635, -0.057, 0.432, -1.635, -0.75, -180.719, -654.202, 0.06, -0.043, 1.635, -0.06, 0.043, -1.635, -0.926, -179.585, -659.107, 0.063, 0.305, 1.635, -0.063, -0.305, -1.635, -1.112, -180.462, -664.012, 0.065, 0.318, 1.635, -0.065, -0.318, -1.635, -1.304, -181.414, -668.916, 0.065, 0.318, 1.635, -0.065, -0.318, -1.635, -1.5, -182.372, -673.82, 0.065, 0.318, 1.635, -0.065, -0.318, -1.635, -1.696, -183.32, -678.725, 0.063, 0.319, 1.635, -0.063, -0.319, -1.635, -1.888, -184.278, -683.629, 0.06, 0.318, 1.635, -0.06, -0.318, -1.635, -2.074, -185.236, -688.534, 0.057, 0.318, 1.635, -0.057, -0.318, -1.635, -2.25, -186.185, -693.439, 0.052, 0.31, 1.635, -0.052, -0.31, -1.635, -2.413, -187.143, -698.344, 0.046, 0.318, 1.635, -0.046, -0.318, -1.635, -2.561, -188.043, -703.25, 0.04, 0.326, 1.636, -0.04, -0.326, -1.636, -2.69, -189.05, -708.156, 0.033, 0.318, 1.636, -0.033, -0.318, -1.636, -2.799, -189.999, -713.063, 0.025, 0.318, 1.636, -0.025, -0.318, -1.636, -2.886, -190.958, -717.971, 0.017, 0.318, 1.636, -0.017, -0.318, -1.636, -2.949, -191.906, -722.878, 0.009, 0.318, 1.636, -0.009, -0.318, -1.636, -2.987, -192.865, -727.786, 0.001, 0.318, 1.636, -0.001, -0.318, -1.636, -3, -193.814, -732.694, -0.006, 0.318, 1.636, 0.006, -0.318, -1.636, -2.991, -194.773, -737.603, -0.012, 0.318, 1.636, 0.012, -0.318, -1.636, -2.962, -195.722, -742.511, -0.018, 0.319, 1.636, 0.018, -0.319, -1.636, -2.916, -196.681, -747.419, -0.024, 0.318, 1.636, 0.024, -0.318, -1.636, -2.851, -197.635, -752.326, -0.03, 0.319, 1.636, 0.03, -0.319, -1.636, -2.77, -198.589, -757.234, -0.035, 0.318, 1.636, 0.035, -0.318, -1.636, -2.673, -199.547, -762.141, -0.04, 0.26, 1.636, 0.04, -0.26, -1.636, -2.561, -200.496, -767.048, -0.044, 0.318, 1.635, 0.044, -0.318, -1.635, -2.435, -201.105, -771.954, -0.047, 0.376, 1.635, 0.047, -0.376, -1.635, -2.298, -202.403, -776.86, -0.05, 0.318, 1.635, 0.05, -0.318, -1.635, -2.151, -203.362, -781.766, -0.053, 0.318, 1.635, 0.053, -0.318, -1.635, -1.995, -204.31, -786.672, -0.055, 0.318, 1.635, 0.055, -0.318, -1.635, -1.834, -205.268, -791.578, -0.056, 0.318, 1.635, 0.056, -0.318, -1.635, -1.668, -206.217, -796.483, -0.056, 0.319, 1.635, 0.056, -0.319, -1.635, -1.5, -207.175, -801.388, -0.056, 0.318, 1.635, 0.056, -0.318, -1.635, -1.332, -208.129, -806.293, -0.055, 0.318, 1.635, 0.055, -0.318, -1.635, -1.166, -209.082, -811.199, -0.053, 0.269, 1.635, 0.053, -0.269, -1.635, -1.005, -210.038, -816.104, -0.05, 0.318, 1.635, 0.05, -0.318, -1.635, -0.849, -210.698, -821.01, -0.047, 0.366, 1.635, 0.047, -0.366, -1.635, -0.702, -211.947, -825.916, -0.044, 0.318, 1.635, 0.044, -0.318, -1.635, -0.565, -212.896, -830.822, -0.04, 0.319, 1.636, 0.04, -0.319, -1.636, -0.439, -213.854, -835.729, -0.035, 0.318, 1.636, 0.035, -0.318, -1.636, -0.327, -214.807, -840.635, -0.03, 0.319, 1.636, 0.03, -0.319, -1.636, -0.23, -215.762, -845.543, -0.024, 0.318, 1.636, 0.024, -0.318, -1.636, -0.149, -216.72, -850.45, -0.018, 0.317, 1.636, 0.018, -0.317, -1.636, -0.084, -217.669, -855.358, -0.012, 0.319, 1.636, 0.012, -0.319, -1.636, -0.038, -218.623, -860.266, -0.006, 0.343, 1.631, 0.006, -0.343, -1.631, -0.009, -219.584, -865.172, -0.011, 0.395, 1.617, 0.011, -0.395, -1.617, 0, -220.683, -870.049, -0.037, 0.439, 1.601, 0.037, -0.439, -1.601, 0.055, -221.954, -874.871, -0.073, 0.461, 1.592, 0.073, -0.461, -1.592, 0.221, -223.317, -879.652, -0.109, 0.45, 1.59, 0.109, -0.45, -1.59, 0.496, -224.722, -884.426, -0.144, 0.362, 1.587, 0.144, -0.362, -1.587, 0.878, -226.016, -889.192, -0.178, 0.3, 1.584, 0.178, -0.3, -1.584, 1.363, -226.896, -893.949, -0.21, 0.652, 1.58, 0.21, -0.652, -1.58, 1.947, -227.814, -898.694, -0.241, 0.736, 1.575, 0.241, -0.736, -1.575, 2.626, -230.809, -903.428, -0.269, 0.48, 1.571, 0.269, -0.48, -1.571, 3.393, -232.228, -908.147, -0.295, 0.487, 1.566, 0.295, -0.487, -1.566, 4.242, -233.69, -912.853, -0.319, 0.487, 1.562, 0.319, -0.487, -1.562, 5.166, -235.15, -917.544, -0.34, 0.441, 1.557, 0.34, -0.441, -1.557, 6.156, -236.613, -922.222, -0.358, 0.289, 1.553, 0.358, -0.289, -1.553, 7.205, -237.796, -926.887, -0.373, 0.486, 1.55, 0.373, -0.486, -1.55, 8.304, -238.346, -931.54, -0.385, 0.686, 1.547, 0.385, -0.686, -1.547, 9.442, -240.711, -936.184, -0.393, 0.535, 1.545, 0.393, -0.535, -1.545, 10.611, -242.46, -940.821, -0.398, 0.488, 1.543, 0.398, -0.488, -1.543, 11.801, -243.922, -945.452, -0.4, 0.488, 1.543, 0.4, -0.488, -1.543, 13, -245.386, -950.081, -0.398, 0.438, 1.543, 0.398, -0.438, -1.543, 14.199, -246.847, -954.709, -0.393, 0.292, 1.545, 0.393, -0.292, -1.545, 15.389, -248.012, -959.341, -0.385, 0.489, 1.547, 0.385, -0.489, -1.547, 16.558, -248.601, -963.977, -0.373, 0.683, 1.55, 0.373, -0.683, -1.55, 17.696, -250.945, -968.621, -0.358, 0.536, 1.553, 0.358, -0.536, -1.553, 18.795, -252.699, -973.275, -0.34, 0.486, 1.557, 0.34, -0.486, -1.557, 19.844, -254.161, -977.94, -0.319, 0.486, 1.562, 0.319, -0.486, -1.562, 20.834, -255.617, -982.617, -0.295, 0.487, 1.566, 0.295, -0.487, -1.566, 21.758, -257.077, -987.309, -0.269, 0.439, 1.571, 0.269, -0.439, -1.571, 22.607, -258.541, -992.014, -0.241, 0.293, 1.575, 0.241, -0.293, -1.575, 23.374, -259.71, -996.734, -0.21, 0.489, 1.58, 0.21, -0.489, -1.58, 24.053, -260.297, -1001.467, -0.178, 0.682, 1.584, 0.178, -0.682, -1.584, 24.637, -262.646, -1006.212, -0.144, 0.534, 1.587, 0.144, -0.534, -1.587, 25.122, -264.391, -1010.969, -0.109, 0.488, 1.59, 0.109, -0.488, -1.59, 25.504, -265.852, -1015.735, -0.073, 0.487, 1.592, 0.073, -0.487, -1.592, 25.779, -267.316, -1020.509, -0.037, 0.487, 1.593, 0.037, -0.487, -1.593, 25.945, -268.771, -1025.287, 0, 0.489, 1.594, 0, -0.489, -1.594, 26, -270.238, -1030.068, 0.037, 0.649, 1.593, -0.037, -0.649, -1.593, 25.945, -271.704, -1034.85, 0.073, 0.167, 1.592, -0.073, -0.167, -1.592, 25.779, -274.131, -1039.628, 0.109, -0.238, 1.59, -0.109, 0.238, -1.59, 25.504, -272.707, -1044.402, 0.144, -0.001, 1.587, -0.144, 0.001, -1.587, 25.122, -272.7, -1049.168, 0.178, 0, 1.584, -0.178, 0, -1.584, 24.637, -272.7, -1053.925, 0.21, 0.237, 1.58, -0.21, -0.237, -1.58, 24.053, -272.7, -1058.67, 0.241, 0.608, 1.575, -0.241, -0.608, -1.575, 23.374, -274.124, -1063.403, 0.269, 0.74, 1.571, -0.269, -0.74, -1.571, 22.607, -276.347, -1068.123, 0.295, 0.738, 1.566, -0.295, -0.738, -1.566, 21.758, -278.563, -1072.828, 0.319, 0.742, 1.562, -0.319, -0.742, -1.562, 20.834, -280.776, -1077.52, 0.34, 1.085, 1.557, -0.34, -1.085, -1.557, 19.844, -283.013, -1082.197, 0.358, 0.771, 1.553, -0.358, -0.771, -1.553, 18.795, -287.285, -1086.862, 0.373, 0.017, 1.55, -0.373, -0.017, -1.55, 17.696, -287.636, -1091.516, 0.385, -0.041, 1.547, -0.385, 0.041, -1.547, 16.558, -287.39, -1096.16, 0.393, 0, 1.545, -0.393, 0, -1.545, 15.389, -287.39, -1100.796, 0.398, 0.036, 1.543, -0.398, -0.036, -1.543, 14.199, -287.39, -1105.428, 0.4, 0.431, 1.543, -0.4, -0.431, -1.543, 13, -287.604, -1110.056, 0.398, 0.964, 1.543, -0.398, -0.964, -1.543, 11.801, -289.978, -1114.685, 0.393, 1.136, 1.545, -0.393, -1.136, -1.545, 10.611, -293.391, -1119.316, 0.385, 1.129, 1.547, -0.385, -1.129, -1.547, 9.442, -296.795, -1123.953, 0.373, 0.933, 1.55, -0.373, -0.933, -1.55, 8.304, -300.163, -1128.597, 0.358, 0.616, 1.553, -0.358, -0.616, -1.553, 7.205, -302.395, -1133.25, 0.34, 0.488, 1.557, -0.34, -0.488, -1.557, 6.156, -303.857, -1137.915, 0.319, 0.488, 1.562, -0.319, -0.488, -1.562, 5.166, -305.322, -1142.593, 0.295, 0.467, 1.566, -0.295, -0.467, -1.566, 4.242, -306.782, -1147.284, 0.269, -0.103, 1.571, -0.269, 0.103, -1.571, 3.393, -308.122, -1151.99, 0.241, -0.602, 1.575, -0.241, 0.602, -1.575, 2.626, -306.166, -1156.709, 0.21, -0.02, 1.58, -0.21, 0.02, -1.58, 1.947, -304.508, -1161.442, 0.178, 0.542, 1.584, -0.178, -0.542, -1.584, 1.363, -306.044, -1166.188, 0.144, 0.572, 1.587, -0.144, -0.572, -1.587, 0.878, -307.759, -1170.945, 0.109, 0.643, 1.59, -0.109, -0.643, -1.59, 0.496, -309.477, -1175.711, 0.073, 1.092, 1.591, -0.073, -1.092, -1.591, 0.221, -311.616, -1180.484, 0.037, 1.425, 1.581, -0.037, -1.425, -1.581, 0.055, -316.03, -1185.259, 0.009, 1.022, 1.549, -0.009, -1.022, -1.549, 0, -320.168, -1189.97, 0, 0.694, 1.514, 0, -0.694, -1.514, 0, -322.159, -1194.555, 0, 0.728, 1.499, 0, -0.728, -1.499, 0, -324.33, -1199.056, 0, 0.731, 1.498, 0, -0.731, -1.498, 0, -326.527, -1203.55, 0, 0.731, 1.498, 0, -0.731, -1.498, 0, -328.715, -1208.044, 0, 0.731, 1.498, 0, -0.731, -1.498, 0, -330.912, -1212.538, 0, 0.731, 1.498, 0, -0.731, -1.498, 0, -333.099, -1217.032, 0, 0.731, 1.498, 0, -0.731, -1.498, 0, -335.296, -1221.526, 0, 0.731, 1.498, 0, -0.731, -1.498, 0, -337.483, -1226.019, 0, 0.731, 1.498, 0, -0.731, -1.498, 0, -339.68, -1230.513, 0, 0.731, 1.498, 0, -0.731, -1.498, 0, -341.867, -1235.007, 0, 0.731, 1.498, 0, -0.731, -1.498, 0, -344.064, -1239.501, 0, 0.731, 1.498, 0, -0.731, -1.498, 0, -346.251, -1243.995, 0, 0.731, 1.498, 0, -0.731, -1.498, 0, -348.448, -1248.489, 0, 0.743, 1.498, 0, -0.743, -1.498, 0, -350.635, -1252.983, 0, 0.848, 1.498, 0, -0.848, -1.498, 0, -352.906, -1257.477, 0, 0.675, 1.498, 0, -0.675, -1.498, 0, -355.724, -1261.971, 0, -0.035, 1.498, 0, 0.035, -1.498, 0, -356.956, -1266.465, 0, -0.476, 1.561, 0, 0.476, -1.561, 0, -355.515, -1270.959, 0, -0.37, 1.623, 0, 0.37, -1.623, 0, -354.103, -1275.828, 0, -0.168, 1.623, 0, 0.168, -1.623, 0, -353.297, -1280.698, 0, 0.034, 1.623, 0, -0.034, -1.623, 0, -353.097, -1285.567, 0, 0.236, 1.623, 0, -0.236, -1.623, 0, -353.503, -1290.436, 0, 0.438, 1.623, 0, -0.438, -1.623, 0, -354.514, -1295.305, 0, 0.64, 1.623, 0, -0.64, -1.623, 0, -356.132, -1300.174, 0, 0.842, 1.623, 0, -0.842, -1.623, 0, -358.356, -1305.044, 0, 1.044, 1.623, 0, -1.044, -1.623, 0, -361.186, -1309.913, 0, 1.146, 1.509, 0, -1.146, -1.509, 0, -364.622, -1314.782, 0, 1.181, 1.354, 0, -1.181, -1.354, 0, -368.06, -1318.968, 0, 1.281, 1.313, 0, -1.281, -1.313, 0, -371.706, -1322.908, 0, 1.414, 1.313, 0, -1.414, -1.313, 0, -375.748, -1326.849, 0, 1.468, 1.313, 0, -1.468, -1.313, 0, -380.187, -1330.789, 0, 1.243, 1.313, 0, -1.243, -1.313, 0, -384.558, -1334.729, 0, 1.026, 1.313, 0, -1.026, -1.313, 0, -387.642, -1338.669, 0, 1.026, 1.313, 0, -1.026, -1.313, 0, -390.715, -1342.609, 0, 1.026, 1.313, 0, -1.026, -1.313, 0, -393.798, -1346.549, 0, 1.026, 1.313, 0, -1.026, -1.313, 0, -396.871, -1350.489, 0, 1.026, 1.313, 0, -1.026, -1.313, 0, -399.955, -1354.429, 0, 1.026, 1.313, 0, -1.026, -1.313, 0, -403.028, -1358.369, 0, 1.024, 1.315, 0, -1.024, -1.315, 0, -406.111, -1362.309, 0, 0.978, 1.346, 0, -0.978, -1.346, 0, -409.175, -1366.258, 0, 0.839, 1.433, 0, -0.839, -1.433, 0, -411.981, -1370.385, 0, 0.621, 1.54, 0, -0.621, -1.54, 0, -414.208, -1374.856, 0, 0.401, 1.614, 0, -0.401, -1.614, 0, -415.707, -1379.622, 0, 0.267, 1.645, 0, -0.267, -1.645, 0, -416.616, -1384.54, 0, 0.206, 1.653, 0, -0.206, -1.653, 0, -417.309, -1389.491, 0, 0.117, 1.661, 0, -0.117, -1.661, 0, -417.85, -1394.46, 0, 0.027, 1.666, 0, -0.027, -1.666, 0, -418.01, -1399.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1404.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1409.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1414.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1419.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1424.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1429.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1434.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1439.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1444.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1449.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1454.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1459.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1464.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1469.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1474.457, 0, 0, 1.667, 0, 0, -1.667, 0, -418.01, -1479.457, 0, 0, 1.667, 0, 0, 0, 0, -418.01, -1484.457), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 313 0.5 {"points": PackedVector3Array(0, 0, 0, -0.037, -0.426, -1.615, 0, -220.683, -870.049, 0.074, 0.442, 1.611, -0.074, -0.442, -1.611, -0.112, -221.961, -874.896, 0.148, 0.464, 1.6, -0.148, -0.464, -1.6, -0.446, -223.335, -879.716, 0.221, 0.437, 1.588, -0.221, -0.437, -1.588, -1, -224.742, -884.497, 0.291, 0.332, 1.575, -0.291, -0.332, -1.575, -1.769, -225.959, -889.242, 0.36, 0.266, 1.561, -0.36, -0.266, -1.561, -2.749, -226.732, -893.948, 0.426, 0.867, 1.544, -0.426, -0.867, -1.544, -3.93, -227.558, -898.607, 0.489, 0.726, 1.526, -0.489, -0.726, -1.526, -5.305, -231.931, -903.213, 0.548, 0.302, 1.505, -0.548, -0.302, -1.505, -6.863, -231.914, -907.76, 0.603, 0.737, 1.484, -0.603, -0.737, -1.484, -8.593, -233.742, -912.245, 0.653, 0.947, 1.463, -0.653, -0.947, -1.463, -10.479, -236.333, -916.667, 0.698, 0.673, 1.442, -0.698, -0.673, -1.442, -12.51, -239.427, -921.024, 0.738, -0.017, 1.422, -0.738, 0.017, -1.422, -14.668, -240.37, -925.319, 0.772, -0.116, 1.404, -0.772, 0.116, -1.404, -16.938, -239.324, -929.556, 0.801, 0.287, 1.388, -0.801, -0.287, -1.388, -19.303, -239.672, -933.741, 0.823, 0.459, 1.375, -0.823, -0.459, -1.375, -21.744, -241.048, -937.883, 0.839, 0.578, 1.365, -0.839, -0.578, -1.365, -24.242, -242.426, -941.99, 0.849, 0.33, 1.359, -0.849, -0.33, -1.359, -26.78, -244.517, -946.073, 0.852, -0.183, 1.357, -0.852, 0.183, -1.357, -29.337, -244.404, -950.143, 0.849, -0.162, 1.359, -0.849, 0.162, -1.359, -31.894, -243.421, -954.214, 0.839, 0.003, 1.365, -0.839, -0.003, -1.365, -34.431, -243.43, -958.297, 0.823, 0.006, 1.375, -0.823, -0.006, -1.375, -36.93, -243.442, -962.404, 0.801, 0.026, 1.388, -0.801, -0.026, -1.388, -39.37, -243.464, -966.545, 0.772, 0.435, 1.404, -0.772, -0.435, -1.404, -41.735, -243.597, -970.731, 0.738, 0.862, 1.422, -0.738, -0.862, -1.422, -44.005, -246.073, -974.968, 0.698, 0.901, 1.442, -0.698, -0.901, -1.442, -46.164, -248.77, -979.263, 0.653, 0.904, 1.463, -0.653, -0.904, -1.463, -48.194, -251.48, -983.62, 0.603, 0.908, 1.484, -0.603, -0.908, -1.484, -50.081, -254.195, -988.041, 0.548, 0.956, 1.505, -0.548, -0.956, -1.505, -51.81, -256.925, -992.527, 0.489, 0.799, 1.526, -0.489, -0.799, -1.526, -53.368, -259.931, -997.074, 0.426, 0.64, 1.544, -0.426, -0.64, -1.544, -54.743, -261.719, -1001.68, 0.36, 0.213, 1.561, -0.36, -0.213, -1.561, -55.925, -263.77, -1006.339, 0.291, -0.529, 1.575, -0.291, 0.529, -1.575, -56.904, -263, -1011.045, 0.221, -0.666, 1.587, -0.221, 0.666, -1.587, -57.674, -260.598, -1015.79, 0.148, -0.386, 1.595, -0.148, 0.386, -1.595, -58.228, -259.005, -1020.565, 0.074, -0.097, 1.6, -0.074, 0.097, -1.6, -58.562, -258.284, -1025.36, 0, 0.188, 1.602, 0, -0.188, -1.602, -58.673, -258.426, -1030.165, -0.074, 0.466, 1.6, 0.074, -0.466, -1.6, -58.562, -259.412, -1034.971, -0.148, 0.734, 1.595, 0.148, -0.734, -1.595, -58.228, -261.22, -1039.766, -0.221, 0.991, 1.587, 0.221, -0.991, -1.587, -57.674, -263.817, -1044.541, -0.291, 1.235, 1.575, 0.291, -1.235, -1.575, -56.904, -267.167, -1049.285, -0.36, 1.465, 1.561, 0.36, -1.465, -1.561, -55.925, -271.229, -1053.991, -0.426, 1.386, 1.544, 0.426, -1.386, -1.544, -54.743, -275.958, -1058.651, -0.489, 0.829, 1.526, 0.489, -0.829, -1.526, -53.368, -279.547, -1063.257, -0.548, 0.459, 1.505, 0.548, -0.459, -1.505, -51.81, -280.93, -1067.804, -0.603, 0.458, 1.484, 0.603, -0.458, -1.484, -50.081, -282.304, -1072.289, -0.653, 0.458, 1.463, 0.653, -0.458, -1.463, -48.194, -283.679, -1076.71, -0.698, 0.458, 1.442, 0.698, -0.458, -1.442, -46.164, -285.052, -1081.067, -0.738, 0.422, 1.422, 0.738, -0.422, -1.422, -44.005, -286.426, -1085.363, -0.772, 0.251, 1.404, 0.772, -0.251, -1.404, -41.735, -287.583, -1089.6, -0.801, 0.139, 1.388, 0.801, -0.139, -1.388, -39.37, -287.933, -1093.785, -0.823, 1.123, 1.375, 0.823, -1.123, -1.375, -36.93, -288.417, -1097.927, -0.839, 1.092, 1.365, 0.839, -1.092, -1.365, -34.431, -294.671, -1102.033, -0.849, 0.048, 1.359, 0.849, -0.048, -1.359, -31.894, -294.968, -1106.116, -0.852, 0.257, 1.357, 0.852, -0.257, -1.357, -29.337, -294.961, -1110.187, -0.849, 0.749, 1.359, 0.849, -0.749, -1.359, -26.78, -296.51, -1114.258, -0.839, 0.982, 1.365, 0.839, -0.982, -1.365, -24.242, -299.454, -1118.341, -0.823, 0.868, 1.375, 0.823, -0.868, -1.375, -21.744, -302.404, -1122.448, -0.801, 0.249, 1.388, 0.801, -0.249, -1.388, -19.303, -304.66, -1126.589, -0.772, -0.259, 1.404, 0.772, 0.259, -1.404, -16.938, -303.896, -1130.775, -0.738, 0.144, 1.422, 0.738, -0.144, -1.422, -14.668, -303.103, -1135.012, -0.698, 0.395, 1.442, 0.698, -0.395, -1.442, -12.51, -304.758, -1139.307, -0.653, -0.023, 1.463, 0.653, 0.023, -1.463, -10.479, -305.475, -1143.664, -0.603, -0.138, 1.484, 0.603, 0.138, -1.484, -8.593, -304.621, -1148.085, -0.548, 0.011, 1.505, 0.548, -0.011, -1.505, -6.863, -304.644, -1152.57, -0.489, 0.021, 1.526, 0.489, -0.021, -1.526, -5.305, -304.69, -1157.118, -0.426, 0.219, 1.544, 0.426, -0.219, -1.544, -3.93, -304.769, -1161.724, -0.36, 0.494, 1.561, 0.36, -0.494, -1.561, -2.749, -306.005, -1166.383, -0.291, 0.585, 1.575, 0.291, -0.585, -1.575, -1.769, -307.735, -1171.089, -0.221, 0.737, 1.583, 0.221, -0.737, -1.583, -1, -309.516, -1175.834, -0.148, 1.116, 1.579, 0.148, -1.116, -1.579, -0.446, -312.157, -1180.59, -0.074, 1.335, 1.563, 0.074, -1.335, -1.563, -0.112, -316.21, -1185.305, -0.037, 1.319, 1.555, 0, 0, 0, 0, -320.168, -1189.97), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 73 0.5 {"points": PackedVector3Array(0, 0, 0, -0.007, -0.064, -0.333, -12.199, -174.189, -634.337, 0.007, 0.065, 0.333, -0.007, -0.065, -0.333, -12.219, -174.382, -635.337, 0.007, 0.066, 0.333, -0.007, -0.066, -0.333, -12.239, -174.577, -636.337, 0.007, 0.066, 0.333, -0.007, -0.066, -0.333, -12.259, -174.777, -637.337, 0.007, 0.065, 0.333, -0.007, -0.065, -0.333, -12.279, -174.972, -638.337, 0.007, 0.064, 0.333, -0.007, -0.064, -0.333, -12.299, -175.165, -639.336, 0.007, 0.064, 0.333, -0.007, -0.064, -0.333, -12.319, -175.358, -640.336, 0.007, 0.064, 0.333, -0.007, -0.064, -0.333, -12.339, -175.552, -641.336, 0.007, 0.064, 0.333, 0, 0, 0, -12.359, -175.745, -642.336), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0)} 9 0.5 {"points": PackedVector3Array(0, 0, 0, -0.013, -0.078, -0.333, -13.49, -181.64, -673.34, 0.013, 0.071, 0.333, -0.013, -0.071, -0.333, -13.53, -181.872, -674.34, 0.013, 0.064, 0.333, -0.013, -0.064, -0.333, -13.57, -182.065, -675.339, 0.013, 0.064, 0.333, -0.013, -0.064, -0.333, -13.61, -182.259, -676.338, 0.013, 0.064, 0.333, -0.013, -0.064, -0.333, -13.65, -182.452, -677.337, 0.013, 0.064, 0.333, -0.013, -0.064, -0.333, -13.69, -182.645, -678.336, 0.013, 0.065, 0.333, -0.013, -0.065, -0.333, -13.73, -182.838, -679.336, 0.013, 0.066, 0.333, -0.013, -0.066, -0.333, -13.77, -183.037, -680.335, 0.013, 0.065, 0.333, -0.013, -0.065, -0.333, -13.81, -183.235, -681.334, 0.013, 0.064, 0.333, -0.013, -0.064, -0.333, -13.85, -183.428, -682.333, 0.013, 0.064, 0.333, 0, 0, 0, -13.89, -183.621, -683.332), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 11 0.5 {"points": PackedVector3Array(0, 0, 0, 0, -0.089, -0.333, -15, -191.918, -732.694, 0, 0.089, 0.333, 0, -0.089, -0.333, -15, -192.186, -733.694, 0, 0.089, 0.333, 0, -0.089, -0.333, -15, -192.454, -734.694, 0, 0.089, 0.333, 0, -0.089, -0.333, -15, -192.722, -735.694, 0, 0.089, 0.333, 0, -0.089, -0.333, -15, -192.99, -736.694, 0, 0.089, 0.333, 0, -0.089, -0.333, -15, -193.258, -737.694, 0, 0.089, 0.333, 0, -0.089, -0.333, -15, -193.525, -738.694, 0, 0.089, 0.333, 0, -0.089, -0.333, -15, -193.793, -739.694, 0, 0.089, 0.333, 0, -0.089, -0.333, -15, -194.061, -740.694, 0, 0.089, 0.333, 0, -0.089, -0.333, -15, -194.329, -741.694, 0, 0.089, 0.333, 0, -0.089, -0.333, -15, -194.597, -742.694, 0, 0.089, 0.333, 0, -0.089, -0.333, -15, -194.865, -743.694, 0, 0.089, 0.333, 0, 0, 0, -15, -195.133, -744.694), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 13 0.5 {"points": PackedVector3Array(0, 0, 0, -0.009, -0.362, -0.333, -0.439, -178.297, -644.391, 0.009, 0.281, 0.333, -0.009, -0.281, -0.333, -0.468, -179.384, -645.39, 0.009, 0.166, 0.333, -0.009, -0.166, -0.333, -0.496, -179.984, -646.39, 0.009, 0.108, 0.333, -0.009, -0.108, -0.333, -0.524, -180.382, -647.39, 0.009, 0.087, 0.333, -0.009, -0.087, -0.333, -0.552, -180.631, -648.389, 0.009, 0.106, 0.333, -0.009, -0.106, -0.333, -0.581, -180.904, -649.389, 0.009, 0.121, 0.333, -0.009, -0.121, -0.333, -0.609, -181.268, -650.388, 0.009, 0.121, 0.333, -0.009, -0.121, -0.333, -0.637, -181.632, -651.388, 0.009, 0.121, 0.333, -0.009, -0.121, -0.333, -0.666, -181.996, -652.388, 0.009, 0.121, 0.333, -0.009, -0.121, -0.333, -0.694, -182.36, -653.387, 0.009, -0.006, 0.333, -0.009, 0.006, -0.333, -0.722, -182.724, -654.387, 0.009, -0.12, 0.333, -0.009, 0.12, -0.333, -0.75, -182.324, -655.386, 0.009, -0.095, 0.333, -0.009, 0.095, -0.333, -0.779, -182.001, -656.386, 0.009, -0.064, 0.333, -0.009, 0.064, -0.333, -0.807, -181.754, -657.386, 0.009, -0.047, 0.333, 0, 0, 0, -0.835, -181.614, -658.385), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 15 0.5 {"points": PackedVector3Array(0, 0, 0, -0.009, 0.043, -0.333, -2.561, -187.543, -703.25, 0.009, -0.045, 0.333, -0.009, 0.045, -0.333, -2.589, -187.414, -704.25, 0.009, -0.034, 0.333, -0.009, 0.034, -0.333, -2.617, -187.274, -705.249, 0.009, -0.007, 0.333, -0.009, 0.007, -0.333, -2.646, -187.209, -706.249, 0.009, 0.027, 0.333, -0.009, -0.027, -0.333, -2.674, -187.233, -707.248, 0.009, 0.064, 0.333, -0.009, -0.064, -0.333, -2.702, -187.368, -708.248, 0.009, 0.103, 0.333, -0.009, -0.103, -0.333, -2.73, -187.62, -709.248, 0.009, 0.137, 0.333, -0.009, -0.137, -0.333, -2.759, -187.984, -710.247, 0.009, 0.164, 0.333, -0.009, -0.164, -0.333, -2.787, -188.442, -711.247, 0.009, 0.182, 0.333, -0.009, -0.182, -0.333, -2.815, -188.97, -712.246, 0.009, 0.188, 0.333, 0, 0, 0, -2.844, -189.534, -713.246), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 11 0.5 {"points": PackedVector3Array(0, 0, 0, 0.009, -0.181, -0.333, -2.435, -199.905, -771.954, -0.009, 0.123, 0.333, 0.009, -0.123, -0.333, -2.408, -200.448, -772.954, -0.009, 0.064, 0.333, 0.009, -0.064, -0.333, -2.382, -200.641, -773.954, -0.009, 0.064, 0.333, 0.009, -0.064, -0.333, -2.355, -200.834, -774.953, -0.009, 0.073, 0.333, 0.009, -0.073, -0.333, -2.328, -201.028, -775.953, -0.009, 0.095, 0.333, 0.009, -0.095, -0.333, -2.301, -201.271, -776.952, -0.009, 0.108, 0.333, 0.009, -0.108, -0.333, -2.274, -201.596, -777.952, -0.009, 0.108, 0.333, 0.009, -0.108, -0.333, -2.248, -201.921, -778.952, -0.009, 0.108, 0.333, 0.009, -0.108, -0.333, -2.221, -202.246, -779.951, -0.009, 0.108, 0.333, 0.009, -0.108, -0.333, -2.194, -202.571, -780.951, -0.009, 0.108, 0.333, 0, 0, 0, -2.167, -202.896, -781.951), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 11 0.5 {"points": PackedVector3Array(0, 0, 0, 0.01, -0.161, -0.333, -0.849, -210.098, -821.01, -0.01, 0.114, 0.333, 0.01, -0.114, -0.333, -0.818, -210.582, -822.009, -0.01, 0.066, 0.333, 0.01, -0.066, -0.333, -0.787, -210.782, -823.009, -0.01, 0.065, 0.333, 0.01, -0.065, -0.333, -0.756, -210.978, -824.008, -0.01, 0.064, 0.333, 0.01, -0.064, -0.333, -0.726, -211.172, -825.008, -0.01, 0.064, 0.333, 0.01, -0.064, -0.333, -0.695, -211.365, -826.007, -0.01, 0.064, 0.333, 0.01, -0.064, -0.333, -0.664, -211.558, -827.007, -0.01, 0.064, 0.333, 0.01, -0.064, -0.333, -0.633, -211.751, -828.007, -0.01, 0.064, 0.333, 0.01, -0.064, -0.333, -0.602, -211.945, -829.006, -0.01, 0.064, 0.333, 0.01, -0.064, -0.333, -0.571, -212.138, -830.006, -0.01, 0.066, 0.333, 0.01, -0.066, -0.333, -0.54, -212.331, -831.005, -0.01, 0.066, 0.333, 0.01, -0.066, -0.333, -0.509, -212.531, -832.005, -0.01, 0.065, 0.333, 0.01, -0.065, -0.333, -0.478, -212.727, -833.004, -0.01, 0.064, 0.333, 0.01, -0.064, -0.333, -0.448, -212.921, -834.004, -0.01, 0.064, 0.333, 0.01, -0.064, -0.333, -0.417, -213.114, -835.003, -0.01, 0.064, 0.333, 0.01, -0.064, -0.333, -0.386, -213.307, -836.003, -0.01, 0.064, 0.333, 0, 0, 0, -0.355, -213.5, -837.002), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 17 0.5 {"points": PackedVector3Array(0, 0, 0, -0.008, -0.12, -0.333, 11.686, -174.985, -639.777, 0.008, 0.092, 0.333, -0.008, -0.092, -0.333, 11.662, -175.343, -640.776, 0.008, 0.064, 0.333, -0.008, -0.064, -0.333, 11.638, -175.537, -641.776, 0.008, 0.065, 0.333, -0.008, -0.065, -0.333, 11.613, -175.73, -642.776, 0.008, 0.08, 0.333, -0.008, -0.08, -0.333, 11.589, -175.929, -643.775, 0.008, 0.097, 0.333, -0.008, -0.097, -0.333, 11.565, -176.208, -644.775, 0.008, 0.117, 0.333, -0.008, -0.117, -0.333, 11.54, -176.508, -645.775, 0.008, 0.111, 0.333, -0.008, -0.111, -0.333, 11.516, -176.91, -646.775, 0.008, 0.086, 0.333, -0.008, -0.086, -0.333, 11.492, -177.172, -647.774, 0.008, 0.067, 0.333, -0.008, -0.067, -0.333, 11.467, -177.429, -648.774, 0.008, 0.037, 0.333, -0.008, -0.037, -0.333, 11.443, -177.572, -649.774, 0.008, 0.033, 0.333, -0.008, -0.033, -0.333, 11.419, -177.651, -650.773, 0.008, 0.04, 0.333, 0, 0, 0, 11.394, -177.77, -651.773), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 13 0.5 {"points": PackedVector3Array(0, 0, 0, -0.012, -0.125, -0.333, 9.743, -185.484, -693.854, 0.012, 0.095, 0.333, -0.012, -0.095, -0.333, 9.708, -185.858, -694.854, 0.012, 0.065, 0.333, -0.012, -0.065, -0.333, 9.674, -186.052, -695.853, 0.012, 0.066, 0.333, -0.012, -0.066, -0.333, 9.639, -186.251, -696.853, 0.012, 0.065, 0.333, -0.012, -0.065, -0.333, 9.604, -186.448, -697.852, 0.012, 0.064, 0.333, -0.012, -0.064, -0.333, 9.57, -186.641, -698.851, 0.012, 0.064, 0.333, -0.012, -0.064, -0.333, 9.535, -186.834, -699.851, 0.012, 0.064, 0.333, -0.012, -0.064, -0.333, 9.5, -187.028, -700.85, 0.012, 0.064, 0.333, -0.012, -0.064, -0.333, 9.466, -187.221, -701.85, 0.012, 0.064, 0.333, -0.012, -0.064, -0.333, 9.431, -187.414, -702.849, 0.012, 0.064, 0.333, 0, 0, 0, 9.396, -187.607, -703.848), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 11 0.5 {"points": PackedVector3Array(0, 0, 0, 0.007, -0.089, -0.333, 9.325, -198.127, -761.884, -0.007, 0.089, 0.333, 0.007, -0.089, -0.333, 9.346, -198.395, -762.884, -0.007, 0.089, 0.333, 0.007, -0.089, -0.333, 9.367, -198.663, -763.884, -0.007, 0.089, 0.333, 0.007, -0.089, -0.333, 9.389, -198.931, -764.884, -0.007, 0.089, 0.333, 0.007, -0.089, -0.333, 9.41, -199.199, -765.883, -0.007, 0.089, 0.333, 0.007, -0.089, -0.333, 9.431, -199.467, -766.883, -0.007, 0.089, 0.333, 0.007, -0.089, -0.333, 9.453, -199.735, -767.883, -0.007, 0.089, 0.333, 0.007, -0.089, -0.333, 9.474, -200.003, -768.883, -0.007, 0.089, 0.333, 0.007, -0.089, -0.333, 9.496, -200.271, -769.882, -0.007, 0.089, 0.333, 0.007, -0.089, -0.333, 9.517, -200.539, -770.882, -0.007, 0.089, 0.333, 0.007, -0.089, -0.333, 9.538, -200.807, -771.882, -0.007, 0.089, 0.333, 0.007, -0.089, -0.333, 9.56, -201.075, -772.882, -0.007, 0.089, 0.333, 0, 0, 0, 9.581, -201.343, -773.882), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 13 0.5 {"points": PackedVector3Array(0, 0, 0, 0.123, -0.155, -0.31, -55.55, -280.548, -1073.432, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -55.18, -281.014, -1074.361, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -54.81, -281.48, -1075.29, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -54.44, -281.947, -1076.219, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -54.07, -282.413, -1077.148, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -53.7, -282.879, -1078.077, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -53.33, -283.346, -1079.006, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -52.96, -283.812, -1079.935, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -52.59, -284.278, -1080.864, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -52.22, -284.744, -1081.793, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -51.85, -285.211, -1082.723, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -51.48, -285.677, -1083.652, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -51.11, -286.143, -1084.581, -0.123, 0.155, 0.31, 0.123, -0.155, -0.31, -50.74, -286.61, -1085.51, -0.123, 0.155, 0.31, 0, 0, 0, -50.37, -287.076, -1086.439), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 15 0.5 {"points": PackedVector3Array(0, 0, 0, 0.027, -0.154, -0.332, 20.304, -264.443, -1013.285, -0.027, 0.128, 0.332, 0.027, -0.128, -0.332, 20.386, -264.906, -1014.281, -0.027, 0.102, 0.332, 0.027, -0.102, -0.332, 20.468, -265.212, -1015.278, -0.027, 0.102, 0.332, 0.027, -0.102, -0.332, 20.55, -265.518, -1016.275, -0.027, 0.102, 0.332, 0.027, -0.102, -0.332, 20.632, -265.823, -1017.271, -0.027, 0.102, 0.332, 0.027, -0.102, -0.332, 20.714, -266.129, -1018.268, -0.027, 0.102, 0.332, 0.027, -0.102, -0.332, 20.796, -266.434, -1019.265, -0.027, 0.102, 0.332, 0.027, -0.102, -0.332, 20.878, -266.74, -1020.261, -0.027, 0.102, 0.332, 0.027, -0.102, -0.332, 20.96, -267.046, -1021.258, -0.027, 0.102, 0.332, 0.027, -0.102, -0.332, 21.043, -267.351, -1022.254, -0.027, 0.101, 0.332, 0, 0, 0, 21.125, -267.655, -1023.251), "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)} 11 ExtResource("2_cutout") ExtResource("tex_fx_flare") Color(1, 0.9, 0.8, 1) Vector2(0.25, 1) Vector2(0, 0) Color(0, 0, 0, 1) Color(1, 1, 1, 1) Color(1, 1, 1, 1) 1.4 Vector2(0, 0) SubResource("Mat_flare0") ExtResource("2_cutout") ExtResource("tex_fx_flare") Color(1, 0.9, 0.8, 1) Vector2(0.25, 1) Vector2(0.25, 0) Color(0, 0, 0, 1) Color(1, 1, 1, 1) Color(1, 1, 1, 1) 1.4 Vector2(0, 0) SubResource("Mat_flare1") ExtResource("2_cutout") ExtResource("tex_fx_flare") Color(1, 0.9, 0.8, 1) Vector2(0.25, 1) Vector2(0.5, 0) Color(0, 0, 0, 1) Color(1, 1, 1, 1) Color(1, 1, 1, 1) 1.4 Vector2(0, 0) SubResource("Mat_flare2") ExtResource("2_cutout") ExtResource("tex_fx_flare") Color(1, 0.9, 0.8, 1) Vector2(0.25, 1) Vector2(0.75, 0) Color(0, 0, 0, 1) Color(1, 1, 1, 1) Color(1, 1, 1, 1) 1.4 Vector2(0, 0) SubResource("Mat_flare3") PackedFloat32Array(0, 1) PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0) ExtResource("9_sprite") ExtResource("tex_fx_flake") 2 1 Vector2(0.5, 0.5) SubResource("Mat_flake") ExtResource("9_sprite") ExtResource("tex_fx_confetti") 2 1 Vector2(0.9, 0.9) SubResource("Mat_confetti") 1 PackedFloat32Array(0, 0.25, 0.5, 0.75) PackedColorArray(0.97, 0.22, 0.56, 1, 0.66, 0.97, 0.19, 1, 0.97, 0.53, 0.09, 1, 0.19, 0.85, 0.97, 1) ExtResource("7_daylight") SubResource("Env_game") SubResource("Mesh_sky") SubResource("Mat_sky") SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_ice") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_ice") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_packed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_groomed") 170 SubResource("Mat_powder") 170 SubResource("Mat_rock") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_far") 170 SubResource("Mat_arch") 170 SubResource("Mat_banner") 170 SubResource("Mat_building") 170 SubResource("Mat_fence") 170 SubResource("Mat_lift") 170 SubResource("Mat_banner") 170 SubResource("Mat_fence") 170 SubResource("Mat_lift") 170 SubResource("Mat_accent") 170 SubResource("Mat_banner") 170 SubResource("Mat_fence") 170 SubResource("Mat_lift") 170 SubResource("Mat_accent") 170 SubResource("Mat_banner") 170 SubResource("Mat_lift") 170 SubResource("Mat_accent") 170 SubResource("Mat_banner") 170 SubResource("Mat_bark") 170 SubResource("Mat_box") 170 SubResource("Mat_crowd") 170 SubResource("Mat_fence") 170 SubResource("Mat_lift") 170 SubResource("Mat_rail") 170 SubResource("Mat_banner") 170 SubResource("Mat_box") 170 SubResource("Mat_lift") 170 SubResource("Mat_rail") 170 SubResource("Mat_accent") 170 SubResource("Mat_arch") 170 SubResource("Mat_banner") 170 SubResource("Mat_lift") 170 SubResource("Mat_pine_cone") 170 SubResource("Mat_accent") 170 SubResource("Mat_banner") 170 SubResource("Mat_box") 170 SubResource("Mat_building") 170 SubResource("Mat_lift") 170 SubResource("Mat_packed") 170 SubResource("Mat_pine_cone") 170 SubResource("Mat_rail") 170 SubResource("Mat_accent") 170 SubResource("Mat_banner") 170 SubResource("Mat_lift") 170 SubResource("Mat_pine_cone") 170 SubResource("Mat_accent") 170 SubResource("Mat_arch") 170 SubResource("Mat_banner") 170 SubResource("Mat_building") 170 SubResource("Mat_crowd") 170 SubResource("Mat_fence") 170 SubResource("Mat_lift") 170 SubResource("Mat_neon") 170 SubResource("Mat_building") 170 SubResource("Mat_lift") SubResource("Mat_lift") SubResource("Mat_lift") SubResource("Mat_lift") SubResource("Mat_lift") SubResource("Mat_lift") SubResource("Trees_00_a") 170 SubResource("Trees_00_b") 170 SubResource("Trees_01_a") 170 SubResource("Trees_01_b") 170 SubResource("Trees_02_a") 170 SubResource("Trees_02_b") 170 SubResource("Trees_03_a") 170 SubResource("Trees_03_b") 170 SubResource("Trees_04_a") 170 SubResource("Trees_04_b") 170 SubResource("Trees_05_a") 170 SubResource("Trees_05_b") 170 SubResource("Trees_06_a") 170 SubResource("Trees_06_b") 170 SubResource("Trees_07_a") 170 SubResource("Trees_07_b") 170 SubResource("Trees_08_a") 170 SubResource("Trees_08_b") 170 SubResource("Trees_09_a") 170 SubResource("Trees_09_b") 170 SubResource("Trees_10_a") 170 SubResource("Trees_10_b") 170 SubResource("Curve_line") SubResource("Curve_high") SubResource("Curve_FB1") SubResource("Curve_LG1") SubResource("Curve_DR1") SubResource("Curve_KR1") SubResource("Curve_RR1") SubResource("Curve_FD1") SubResource("Curve_LR1") SubResource("Curve_LG2") SubResource("Curve_FR1") SubResource("Curve_DB1") SubResource("Curve_HR1") SubResource("Curve_LB1") false SubResource("Mesh_key") SubResource("Mat_accent") SubResource("Mesh_key") SubResource("Mat_arch") SubResource("Mesh_key") SubResource("Mat_banner") SubResource("Mesh_key") SubResource("Mat_bark") SubResource("Mesh_key") SubResource("Mat_box") SubResource("Mesh_key") SubResource("Mat_building") SubResource("Mesh_key") SubResource("Mat_crowd") SubResource("Mesh_key") SubResource("Mat_far") SubResource("Mesh_key") SubResource("Mat_fence") SubResource("Mesh_key") SubResource("Mat_groomed") SubResource("Mesh_key") SubResource("Mat_ice") SubResource("Mesh_key") SubResource("Mat_lift") SubResource("Mesh_key") SubResource("Mat_neon") SubResource("Mesh_key") SubResource("Mat_packed") SubResource("Mesh_key") SubResource("Mat_pine_a") SubResource("Mesh_key") SubResource("Mat_pine_b") SubResource("Mesh_key") SubResource("Mat_pine_cone") SubResource("Mesh_key") SubResource("Mat_powder") SubResource("Mesh_key") SubResource("Mat_rock") ExtResource("8_fx") false 150 7.0 false SubResource("Mesh_flake") 3 Vector3(26, 2, 26) Vector3(0.3, -1, 0.2) 20.0 Vector3(0, -0.6, 0) 1.2 2.2 SubResource("Ramp_age") Vector3(-18, -415.6155, -1384.5395) false 120 3.0 true 0.85 false SubResource("Mesh_confetti") Vector3(0.5, 1, 0) 25.0 Vector3(0, -5, 0) 10.0 15.0 2.0 4.0 SubResource("Ramp_confetti") SubResource("Ramp_age") Vector3(18, -415.6155, -1384.5395) false 120 3.0 true 0.85 false SubResource("Mesh_confetti") Vector3(-0.5, 1, 0) 25.0 Vector3(0, -5, 0) 10.0 15.0 2.0 4.0 SubResource("Ramp_confetti") SubResource("Ramp_age") SubResource("Mesh_flare0") Vector3(0.001, 0.001, 0.001) SubResource("Mesh_flare3") Vector3(0.001, 0.001, 0.001) SubResource("Mesh_flare1") Vector3(0.001, 0.001, 0.001) SubResource("Mesh_flare2") Vector3(0.001, 0.001, 0.001) SubResource("Mesh_flare1") Vector3(0.001, 0.001, 0.001) Transform3D(1, 0, 0, 0, 0.9698, 0.2439, 0, -0.2439, 0.9698, 0, 2.3878, 3.9781) 66 0.1 500 Transform3D(0.9998, 0.0061, -0.021, 0, 0.961, 0.2765, 0.0219, -0.2765, 0.9608, -0.0013, -11.076, -52.02) 66 0.1 500 Transform3D(1, 0.0002, -0.0014, 0, 0.9888, 0.149, 0.0014, -0.149, 0.9888, 3.7645, -117.6708, -445.736) 66 0.1 500 Transform3D(0.9998, -0.009, 0.0195, 0, 0.9084, 0.4181, -0.0215, -0.418, 0.9082, 0.0099, -163.4538, -618.873) 66 0.1 500 Transform3D(0.9998, 0.0043, -0.0178, 0, 0.9713, 0.2378, 0.0183, -0.2378, 0.9712, -0.2508, -213.72, -843.5794) 66 0.1 500 Transform3D(0.9999, -0.0025, 0.0111, 0, 0.9762, 0.2169, -0.0114, -0.2169, 0.9761, 25.5138, -264.0583, -1014.7771) 66 0.1 500 Transform3D(1, 0, 0, 0, 0.9708, 0.2397, 0, -0.2397, 0.9708, 0, -341.6805, -1237.7038) 66 0.1 500 Transform3D(1, 0, 0, 0, 0.8497, 0.5272, 0, -0.5272, 0.8497, 0, -391.0652, -1344.9728) 66 0.1 500 Transform3D(0.97, -0.0407, 0.2399, 0, 0.9859, 0.1674, -0.2433, -0.1624, 0.9563, -49.8352, -252.1474, -987.1065) 66 0.1 500 Transform3D(0.8538, 0.187, -0.4858, 0, 0.9333, 0.3592, 0.5205, -0.3067, 0.7969, -42.2572, -285.1331, -1088.791) 66 0.1 500 Transform3D(1, 0, 0, 0, 0.9504, 0.3111, 0, -0.3111, 0.9504, 0, -350.01, -1254.7809) 66 0.1 500 Transform3D(0.9222, 0.13, -0.3642, 0, 0.9418, 0.3362, 0.3867, -0.31, 0.8685, -26, -343.6794, -1248.5) 66 0.1 500 Transform3D(0.9939, -0.0398, 0.103, 0, 0.9328, 0.3605, -0.1104, -0.3583, 0.927, 60, 60, 40) 66 0.1 500 ‰Ë*hedra:world/course/dressing.rmdlcmd.importjÔˆ[remap] importer="scene" type="PackedScene" [deps] source_file="dressing.rmdlcmd" source_hash="4c7fc9121161a136" dest_files=[] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=false meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë)hedra:world/course/terrain.rmdlcmd.importjÔ‡[remap] importer="scene" type="PackedScene" [deps] source_file="terrain.rmdlcmd" source_hash="60f78e64dfe37815" dest_files=[] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=false meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë*hedra:world/rider/parts/Beanie.gltf.importjÔ¸[remap] importer="scene" type="PackedScene" [deps] source_file="Beanie.gltf" source_hash="3853f7dbdad578b3" dest_files=["build/cache/import/Beanie.gltf-f38bccb6eb31ba8f.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë)hedra:world/rider/parts/Board.gltf.importjÔ¶[remap] importer="scene" type="PackedScene" [deps] source_file="Board.gltf" source_hash="1c2c0c21474c623d" dest_files=["build/cache/import/Board.gltf-12b4d57cbe70aba1.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë)hedra:world/rider/parts/BootL.gltf.importjÔ¶[remap] importer="scene" type="PackedScene" [deps] source_file="BootL.gltf" source_hash="7fc5418ea6edf25a" dest_files=["build/cache/import/BootL.gltf-7fd2dfa9aebb064a.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë)hedra:world/rider/parts/BootR.gltf.importjÔ¶[remap] importer="scene" type="PackedScene" [deps] source_file="BootR.gltf" source_hash="928fd70da35a3d94" dest_files=["build/cache/import/BootR.gltf-6af7442678e55b35.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë)hedra:world/rider/parts/HandL.gltf.importjÔ¶[remap] importer="scene" type="PackedScene" [deps] source_file="HandL.gltf" source_hash="e7a42c99507bbea6" dest_files=["build/cache/import/HandL.gltf-1d7256004332ecff.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë)hedra:world/rider/parts/HandR.gltf.importjÔ¶[remap] importer="scene" type="PackedScene" [deps] source_file="HandR.gltf" source_hash="b031cd148c384d38" dest_files=["build/cache/import/HandR.gltf-102f96c7b606b0ba.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë(hedra:world/rider/parts/Head.gltf.importjÔ´[remap] importer="scene" type="PackedScene" [deps] source_file="Head.gltf" source_hash="ed3e5c16aacff039" dest_files=["build/cache/import/Head.gltf-7a67031032fdd788.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë-hedra:world/rider/parts/LowerArmL.gltf.importjÔ¾[remap] importer="scene" type="PackedScene" [deps] source_file="LowerArmL.gltf" source_hash="1f85e68d977bbfdd" dest_files=["build/cache/import/LowerArmL.gltf-dd25bb4245c7e123.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë-hedra:world/rider/parts/LowerArmR.gltf.importjÔ¾[remap] importer="scene" type="PackedScene" [deps] source_file="LowerArmR.gltf" source_hash="5486ab191c327043" dest_files=["build/cache/import/LowerArmR.gltf-80538102299918c6.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë-hedra:world/rider/parts/LowerLegL.gltf.importjÔ¾[remap] importer="scene" type="PackedScene" [deps] source_file="LowerLegL.gltf" source_hash="eb3858805e632b05" dest_files=["build/cache/import/LowerLegL.gltf-1a480687b14d1248.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë-hedra:world/rider/parts/LowerLegR.gltf.importjÔ¾[remap] importer="scene" type="PackedScene" [deps] source_file="LowerLegR.gltf" source_hash="8b958780f68af6bb" dest_files=["build/cache/import/LowerLegR.gltf-0dbbe55dadbfb637.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë*hedra:world/rider/parts/Pelvis.gltf.importjÔ¸[remap] importer="scene" type="PackedScene" [deps] source_file="Pelvis.gltf" source_hash="d0c64daad1240111" dest_files=["build/cache/import/Pelvis.gltf-25eb67031b166478.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë)hedra:world/rider/parts/Torso.gltf.importjÔ¶[remap] importer="scene" type="PackedScene" [deps] source_file="Torso.gltf" source_hash="7f2a8bd1da47952d" dest_files=["build/cache/import/Torso.gltf-86e8214838de68b0.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë-hedra:world/rider/parts/UpperArmL.gltf.importjÔ¾[remap] importer="scene" type="PackedScene" [deps] source_file="UpperArmL.gltf" source_hash="3dc94eaea09949df" dest_files=["build/cache/import/UpperArmL.gltf-53cd5c540c1acc85.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë-hedra:world/rider/parts/UpperArmR.gltf.importjÔ¾[remap] importer="scene" type="PackedScene" [deps] source_file="UpperArmR.gltf" source_hash="c7f619135bed16e1" dest_files=["build/cache/import/UpperArmR.gltf-cab95d8fb57ad1ec.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë-hedra:world/rider/parts/UpperLegL.gltf.importjÔ¾[remap] importer="scene" type="PackedScene" [deps] source_file="UpperLegL.gltf" source_hash="f8ba39f46b75b705" dest_files=["build/cache/import/UpperLegL.gltf-161998f78d725b76.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ë-hedra:world/rider/parts/UpperLegR.gltf.importjÔ¾[remap] importer="scene" type="PackedScene" [deps] source_file="UpperLegR.gltf" source_hash="eb67bac4d960f9bb" dest_files=["build/cache/import/UpperLegR.gltf-c3d74d4a5e82f02b.lods"] [params] nodes/root_scale=1 nodes/up_axis=0 meshes/generate_lods=true meshes/force_disable_compression=false meshes/light_baking=1 ‰Ëhedra:world/rider/rider.rscnjÔÄ} ExtResource("1_surface") ExtResource("4_page") Vector3(-0.45, 0.47, -0.76) Color(0.53, 0.6, 0.78, 1) Color(0.62, 0.64, 0.74, 1) 1.2 1.5 ExtResource("1_surface") ExtResource("4_page") Vector3(-0.45, 0.47, -0.76) Color(0.53, 0.6, 0.78, 1) Color(0.62, 0.64, 0.74, 1) 1.2 1.5 ExtResource("2_shadow") 1 Color(0.53, 0.6, 0.78, 1) Vector2(1.4, 1.4) SubResource("Mat_shadow") ExtResource("3_sprite") ExtResource("5_puff") 4.0 SubResource("Mat_puff") ExtResource("3_sprite") ExtResource("6_star") 4.0 SubResource("Mat_star") PackedFloat32Array(0, 1) PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0) SubResource("Mat_board") Vector3(0.0, 0.86, 0.0) Vector3(0.0, 0.08, 0.0) Vector3(0.0, 0.5, 0.0) Vector3(0.0, 0.44, -0.19) Vector3(0.0, -0.27, 0.0) Vector3(0.0, -0.25, 0.0) Vector3(0.0, 0.44, 0.19) Vector3(0.0, -0.27, 0.0) Vector3(0.0, -0.25, 0.0) Vector3(0.0, -0.06, -0.11) Vector3(0.0, -0.4, 0.0) Vector3(0.0, -0.4, 0.0) Vector3(0.0, -0.06, 0.11) Vector3(0.0, -0.4, 0.0) Vector3(0.0, -0.4, 0.0) SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mat_rider") SubResource("Mesh_shadow") 0 false 48 0.6 SubResource("Quad_puff") 3 Vector3(0.2, 0.05, 0.3) Vector3(0, 1, 0) 60 1.5 3.5 Vector3(0, -6, 0) 0.25 0.45 SubResource("Ramp_age") false true 0.9 24 0.7 SubResource("Quad_puff") 1 0.4 Vector3(0, 1, 0) 80 2 4.5 Vector3(0, -7, 0) 0.3 0.6 SubResource("Ramp_age") false true 0.8 6 0.4 SubResource("Quad_star") 1 0.5 Vector3(0, 1, 0) 90 0.5 1.5 Vector3(0, 0, 0) 0.25 0.35 SubResource("Ramp_age") ‰Ë*hedra:world/rider/textures/puff.png.importjÔº[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=true [deps] source_file="puff.png" source_hash="131c09fd45d61f4b" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë0hedra:world/rider/textures/rider_page.png.importjÔÁ[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="rider_page.png" source_hash="e29a1447634a2c76" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë*hedra:world/rider/textures/star.png.importjÔº[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=true [deps] source_file="star.png" source_hash="fa951d6f873f25e2" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ëhedra:world/run.rscnjÔÁ… "GameData" 1 Color(0, 0, 0, 1) 0 NodePath("LowRes") ExtResource("1_present") SubResource("Tex_low") Vector2(320, 240) SubResource("Mat_present") 0 SubResource("Tex_low") Vector2(0.001, 0.001) SubResource("Mat_anchor") ExtResource("3_run") SubResource("VM_game") SubResource("Env_frame") true SubResource("Mesh_present") Vector3(0, 0, -1) SubResource("Mesh_anchor") Vector3(0, 0, -2) Vector2i(320, 240) 4 true ExtResource("5_camera") Vector3(0, 2.5, 5) Vector3(-12, 0, 0) 66 0.1 200 true ExtResource("4_sound") false false false false false false ‰Ë&hedra:world/textures/arches.png.importjÔ½[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="arches.png" source_hash="2d6d32c7dadc20d7" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë'hedra:world/textures/banners.png.importjÔ¾[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="banners.png" source_hash="286c17e25358e934" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë$hedra:world/textures/bark.png.importjÔ»[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="bark.png" source_hash="fd8e59e03f51c7ae" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë#hedra:world/textures/box.png.importjÔº[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="box.png" source_hash="8d13a7b271b5657a" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë(hedra:world/textures/building.png.importjÔ¿[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="building.png" source_hash="57ee3f7087aed0d2" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë-hedra:world/textures/chrome_matcap.png.importjÔÄ[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="chrome_matcap.png" source_hash="ce31de24a2453f50" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë%hedra:world/textures/crowd.png.importjÔ»[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=true [deps] source_file="crowd.png" source_hash="4d51d7896ce37751" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë%hedra:world/textures/fence.png.importjÔ»[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=true [deps] source_file="fence.png" source_hash="41bee29c300d2538" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë+hedra:world/textures/fx_confetti.png.importjÔÁ[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=true [deps] source_file="fx_confetti.png" source_hash="9563fa8ac7dd7dd0" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë(hedra:world/textures/fx_flake.png.importjÔ¾[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=true [deps] source_file="fx_flake.png" source_hash="1fc4ee720138b1fc" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë(hedra:world/textures/fx_flare.png.importjÔ¾[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=true [deps] source_file="fx_flare.png" source_hash="7baa325ebc83011c" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë#hedra:world/textures/ice.png.importjÔº[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="ice.png" source_hash="527592a80ca1e3ae" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë$hedra:world/textures/lift.png.importjÔ»[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="lift.png" source_hash="8030cdd54f7a761e" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë)hedra:world/textures/mountains.png.importjÔ¿[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=true [deps] source_file="mountains.png" source_hash="aacfff1b333978f1" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë&hedra:world/textures/pine_a.png.importjÔ¼[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=true [deps] source_file="pine_a.png" source_hash="305ea7f0efdbaed1" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë&hedra:world/textures/pine_b.png.importjÔ¼[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=true [deps] source_file="pine_b.png" source_hash="4d7745606955a117" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë)hedra:world/textures/pine_cone.png.importjÔÀ[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="pine_cone.png" source_hash="6f45958275760cef" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë$hedra:world/textures/rock.png.importjÔ»[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="rock.png" source_hash="6365340271cb5423" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë,hedra:world/textures/snow_groomed.png.importjÔÃ[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="snow_groomed.png" source_hash="0a37f6bea190b78a" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë+hedra:world/textures/snow_packed.png.importjÔÂ[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="snow_packed.png" source_hash="46f3465436dbb6ea" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ‰Ë+hedra:world/textures/snow_powder.png.importjÔÂ[remap] importer="texture" type="CompressedTexture2D" metadata/srgb=true metadata/normal_map=false metadata/alpha=false [deps] source_file="snow_powder.png" source_hash="a397a024db3395e5" dest_files=[] [params] compress/mode=0 compress/high_quality=false compress/normal_map=0 mipmaps/generate=false mipmaps/limit=-1 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/size_limit=0 process/srgb=2 ¯Ë scripts_as¿jÔƒî±asm³¿``````}}}``````}}}}}}}}}}}}}}}}``}}}}```}}`` }}}}}}}}}`~`}`}``}}}}}}}}}}}}}}}}`~`}}}`||`}`}`~`}}}}}}`|`}}`|``}}}`}}`}}}`|`|`~` }}}}}}}}}}}}}`}}}}`}}}}}}}}}}}}}}}}` `|||`}`}}`|` }}}}}}}}} }}}}}}}}}` `~` }}}}}}}}}}}}`}}}`}}}}`|||`}}}`}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}`}}` }}}}}}}}}}}}` }}}}}}}}}}`}}}}}``|`}}}}}}`}`}`}}`}}}}}}}}}}}}}}}}}} }}}}}}}}}`}}}}}}}}}}}}}}}}`}}}}}}}}}}}}}}}}}}}}}}`~`~`|`~`~`}}}}}}`|`~~`}}`}}}`}}}}`}`}`|`|`~`|`}}}}}}}}}}}}}}}}` }}}}}}}}}``~` }}}}}}}}}`|``}}}}}}}`~`~~`}}}}}}` }}}}}}}}}}}`}}}}}}}}}}}}}}}}`}}}}}}}}`}}}`}}}} }}}}}}}}}`}}}}}}}}`}}`}}}}`|||||`}}}`}}}}}}}}}}`}}}`}}}}}}}}}}}}}}}}`~` }}}}}}}}}}}}}}}}}}}}}}}}}``~~` }`}}}}` }}}}}}}}}}}}` }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}`}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}`}}}}}}}}}}}}}}}}}}` }}}}}}}}}}}} }}}}}}}}}}`}}}}}}}}}}}}}`}}}}}}}}}}}`}}}}}}}}}}}}}}}}}}}}}}}}`}}}}}}`}}}}}}}}}}}`}}}}}}}}}}}}}}}}}`}}`}}}}}}}}}}}}}}}}` `}}}}}}}}}}}}}}}}}}`}}}}}` }}}}}}`}}}}}}}}}` ~`` ~` ~~`||`||||`}}}}}}}`~`}`}}}}}`}}`}}`|||||||||}}}}}}||`}}}}}}}}}}}}}}}}`~`~`'}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}`(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}` }}}}}}`}}}}}}}}}}}}}}}}`}}}}}}`}}}}}}}}}}}}}}}}}}}}}}`}}}}}}}}}}}}}}}}}}}}}}`}}}}}}`}}}}}}}}}}}}`}}}}`}}`||`||}`||` ||||||`|||`}}`}` }}}}}}}`}}}}`~~~`}`}}}}}}`}}}}}}`}}}}}}}}}}}}}}}}`}}`~~`~~`~~`~`~`~~~`~`"}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}`~~`}}}`}}}}}}`}}}` }}}}}}` }}}}}}}}}`}}}}}}}`}}}|`}`}}}}}}}` }}}}}}}`}}}}`|||`|||`||` |||||`||||`}}}`~||`||~|`~|~|`~~~~`~`}}}}}}}}}}`~~~`~~`~` `}}}`}}}}}}}}}}}}}}}}`~`}}}}}}`|||` }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}` }}}}}}}}}}}`}`}}}}}}}}}}}}}}}}`}}}`}}} }}}}}}}}}`||`}}}}` |||}}}||`}}` }}}}}}}}}}}}}}}}`}}}}}} }}}}}}}}}` `||||||`}}`}}}}}}}`}}}}}}`}}}}}}}}}}}}}}}}}}}`}`}}}}}}` }}}}}}}` }}}}}}}}}}`}}}}}}}}}}}}}}}}}}}` }}}}}}}}}}}}}}}}}}}}}}}}}}}}`#}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}`}}}}}}}}}}}}}}}}|`}}}}}}}}`|||||||` |||||||`||||||||` ||||||||`||||||`||`|||||`|`'}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}` }}}}}}}}}|`&}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}`|||`|`}`|||||`|||||`}}}}}}}}}}}}}}}}||||||}}}}`}}}}}}}}}}}}}}}}||}}}}`}}}}}}}}}}}}}}}}||}}}}` }}}}}}}}}}}`}}}}}}}}}}}}}}}}}}}`||||`||||`|||` ||||||||||`|||`||||||}}}}}` ||||}}}}`~|`||`}}}`}}`!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}`}}}}`}}`}}` }}}}}}}}}}}}}`}}}}}}`~~~~`~~`~~`~~~~`~~~~`~`~~~~`~~~~~~``~`}}}`}}}}`||||`}}}}}}}}}}}}}}}}` ` }}}}}}}}}}}}}`}}}}}}}`}}}`}}}` }}}}}}}}}}`}}`}`}}`}}}`}`~~`~~`|` }}}}}}}}}}}}}}}}}}}}}}}}}}`|||`~~~` }}}}}}}}}}`}}}}}}}}}}}}}`}}}}}}}}}}}}}}}}` }}}}}}}}}½ ˜ rive_gpu_v1buffer_release rive_gpu_v1texture_release rive_gpu_v1sampler_release rive_gpu_v1shader_module_release rive_gpu_v1bind_group_layout_release rive_gpu_v1bind_group_release rive_gpu_v1pipeline_release rive_gpu_v1canvas_releaserive_canvas_v1release rive_gpu_v1texture_view_release rive_image_v1release rive_gpu_v1 pass_release rive_path_v1release rive_paint_v1releaserive_shader_v1releaserive_buffer_v1releaserive_mesh_instances_v1release rive_data_v1 font_release rive_data_v1 vmi_release rive_data_v1 prop_release rive_data_v1context_releaserive_artboard_v1releaserive_artboard_v1animation_releaserive_artboard_v1 node_releaserive_measure_v1release rive_audio_v1source_release rive_audio_v1 sound_release rive_audio_v1stream_release rive_text_v1release rive_file_v1release rive_file_v1bindable_release rive_lanes_v1releaserive_shared_v1release rive_data_v1unwatch rive_path_v1points rive_path_v1verbs rive_paint_v1feather rive_paint_v1 thickness rive_paint_v1color rive_paint_v1 blend_mode rive_paint_v1cap rive_paint_v1join rive_paint_v1stylerive_shared_v1snapshot_createrive_shared_v1 ring_create rive_data_v1 number_set rive_data_v1 number_get rive_data_v1 vmi_number rive_data_v1 vmi_string rive_data_v1 vmi_trigger rive_data_v1 vmi_boolean rive_data_v1view_model_get rive_data_v1vmi_view_model rive_data_v1 view_model rive_data_v1 boolean_get rive_rt_v1log rive_gpu_v1 buffer_new rive_gpu_v1 sampler_new rive_gpu_v1texture_upload rive_gpu_v1 texture_new rive_gpu_v1texture_view_new rive_gpu_v1features rive_gpu_v1 canvas_new rive_gpu_v1canvas_color_view rive_gpu_v1 canvas_image rive_gpu_v1 pipeline_new rive_gpu_v1bind_group_layout_from_entries rive_gpu_v1bind_group_layout_from_shader rive_gpu_v1 shader_target rive_gpu_v1shader_module_from_asset rive_gpu_v1shader_asset_id rive_gpu_v1shader_asset_bytes rive_jobs_v1threads rive_rt_v1now? rive_data_v1 boolean_set rive_data_v1 trigger_firerive_renderer_v1 draw_path rive_paint_v1shader rive_paint_v1new rive_path_v1update rive_path_v1new rive_renderer_v1restorerive_renderer_v1 transform@rive_renderer_v1save rive_gpu_v1 pass_finish rive_gpu_v1 pass_draw rive_gpu_v1pass_set_bind_group rive_gpu_v1pass_set_pipeline rive_gpu_v1 pass_begin rive_gpu_v1bind_group_new rive_gpu_v1 canvas_resize rive_renderer_v1 draw_imageA rive_gpu_v1 buffer_update rive_gpu_v1pass_draw_indexed rive_gpu_v1pass_set_index_buffer rive_gpu_v1pass_set_vertex_buffer rive_gpu_v1pass_set_scissor rive_gpu_v1pass_set_viewport@rive_canvas_v1 end_framerive_artboard_v1drawrive_canvas_v1 begin_frame rive_gpu_v1 image_view rive_image_v1height rive_image_v1widthrive_canvas_v1imagerive_canvas_v1newrive_artboard_v1heightrive_artboard_v1widthrive_artboard_v1advanceBrive_artboard_v1set_frame_originrive_artboard_v1instance rive_gpu_v1 target_viewrive_artboard_v1 pointer_eventC rive_blob_v1 asset_bytes rive_data_v1 string_get rive_data_v1enum_set rive_data_v1 string_set rive_audio_v1sound_completed rive_audio_v1source_duration rive_audio_v1source rive_audio_v1 sound_resume rive_audio_v1 sound_pause rive_audio_v1sound_set_volume rive_audio_v1 sound_seekB rive_audio_v1 play_at_frame0 rive_audio_v1 time_frame? rive_audio_v1 sample_rate rive_data_v1global_view_modelenv console.logrive_shared_v1 read_donerive_shared_v1 snapshot_readrive_shared_v1snapshot_publish rive_shared_v1 ring_write rive_lanes_v1startenv console.warn rive_lanes_v1failed rive_lanes_v1state rive_data_v1watch rive_data_v1vmi_list rive_data_v1 enum_values rive_data_v1enum_get rive_data_v1vmi_enum rive_data_v1 vmi_color rive_data_v1 color_get rive_data_v1 color_set rive_lanes_v1stop rive_lanes_v1result rive_jobs_v1join0rive_shared_v1 atomic_addrive_shared_v1 blob_createrive_shared_v1 atomic_storerive_shared_v1 region_create˜Û t   u)Dv1wExFyFzG !GHH{|}~€�‚ƒ2 „*I …†"‡  "    ˆ‰ Š   3‹J !Œ�4KŽ5#5#5#'+L�     $MN  �‘ C’“OP$$QRST”U•–—˜™š›œ�6 žŸ3V 7$$¡S' 77¢A  £O ¤¥¦§ WW¨©ªJ«X+K (8X¬+­®¯°E$±²L6 +Y    ³ ´Zµ¶·[¸( ,Z ,,¹99 º    »P\¼\½¾¿#ÀÁ'Âà  Q ÄÅ*    TÆ]ÇÈÉ ^ I    _ÊË%Ì%ÍÎ-ÏÐ!.. [!`_ÑÒÓa Ôbccd e,ÕÖ×   Ø  *Ù%f " ÚÛd#ÜÝÞ.  2 "2ßà;;1 "   á  6â*& ã äYåDgæ1)çM&hhRièéêëb8 )ì íîïjðñ ò "óôõö÷øùúûüýþÿ€� &‚ƒ„kk… ( †‡ˆ‰l;Š‹Œ�Ž�]�‘(’“”4•g6 A6 A6 A6 A6 ("@ @ Aä (A°ÅA?6 A°Å(6 A´Å(6 A¸Å(6 ( (6 ("@ Aä (@"@ ((" 6 @  A ä (( (( A lAC€?[ y ( "A AL!  k"A AJ"At"A¦˜!AA¤˜" 6  ž  6  6  6 ( ( Atj Atü  ÈA ( " AH  j"A AJ    H "k" AJ"A AJ"At"A¦˜!AA¤˜" 6  ž  6  6  6 ( (" Atj" Atü  j" G@   Atj  kAtü  k6 † ("( "Aj!  (AvK@  AA™ ( Atj 8  6 ("( "Aj!  (AvK@ AA™ ( Atj 8 6 ˆ} Î -@ ("( @ (" ( O@ ! ( Atj*! ("( (Aj"M@ ( Atj*!   Ì CCÌ î Î A: (( 6 ("( "Aj!  (AvK@  AA™ ( Atj 8  6 ("( "Aj!  (AvK@  AA™ ( Atj 8  6 ("( "Aj!  (K@  AA™ ( jA:  6 A:$ (Aj6 g ("(  AAA™ A6 ("(  AAA™ A6 A: A6 A:% A:$ (Aj6 È -%E@ A:% ( "E@ (AA#! (AA"! ("(   AA™  6 ("(   AA™  6 @ ( (( # @ ( (( " (( AÏ A:$ (Aj6 ö{@ Aj M@@ý ÿ  jý"ýýS@ !@  AjI@  j-"E@ At6 AG:A E AFr A AF A AF A j! Aj!   ý  ýý ýµ"ýAv ýAvj ýAvj ýAvjj!  j-AG: Aj!  @  K@  j-"E@ At6 AG:A "E AFr A AF A AF A j! Aj!  ¨ ( "E@P!AA7˜"A6  6 ! @  A ä "6 ž A:$ (Aj6 -$ -%A E@ ( ("( ( ("( ( (O A:$ ( … ("E@N!AA9˜"A6  6 ! @  A ä ! ("Aq@ ( (* Aq@ ( ( & Aq@ ( *% Aq@ ( () Aq@ ( (( A q@ ( *$ AÀq@ ( ( ' A€q@ ( ($" ((A M 6 ž  I (  (qAtj(!@ @ ("AqE@ ( Ä@  A~q!  A ­   "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA "Ò"@  6 ( " (F@ ( AlAmH ( (AtAr Ô (! ("Aj6  A lj" 6 ž  6 (Aj6  (  (qAtj"(6 6 úAA¦˜ Aj"At"AüÿÿÿK@ A¦˜! AA¦˜ AtAm" A l"AüÿÿÿK@ A¦˜! (" (A lj! !@  G@ (AqE@  ("6  (6   "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!A! AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA qAtj"(6  6 A j! A j!  6 ž 6 6 ž 6 (6 Ö (! (!AA˜"A6 A6 A6 A6 š!A!@  H@  A lj"(AqE@ "Aj! ( Atj" ("6  ( At  Ÿ Aj!  ( !  AA™ H@ ( AtjA  kAtü  6  É (E@# Aj$  # 6#¶ ( û ( (‰ #6#@#"!#h"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E@#h#AA¦˜!AAИ" 6  ž  6 A6 A6 û #"!#h"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 3 E@A AAȘ"A6  6 @  Aä  = (  Ak(A~q/"AA¼˜"– 6 A ç A = (  Ak(A~q2"AA½˜"– 6 A ç A K (  Ak(A~q0"AA¾˜"– A6 A6 6 A ç A = (  Ak(A~q1"AAÀ˜"– 6 A ç A á } (! A8kAv A8O (0A " A8O (4A "jI@A!A! AA-˜ AÿÿÿÿK@ AtA-˜!AA-˜ AÿÿÿÿK@ AtA-˜! A8j!@  I@  Atj*! Ak(Av M@  Atj 8 Aj!  A!@  K@   jAtj*! Ak(Av M@  Atj 8 Aj!  (!A8AÚ˜"A6 A6 A6 A6 A6 A6 A6 C8 A: A6$ A:( A6, A60 A64 (! (! ( ! (! (! *! ( AG! ($! ((AG! (,!  AÀ Aà AFA� 6  6  6  6  6 A� AÀ A   AG6  6  8  :  6$  :(  6,  60  64  Á|  “C\@ ¼!A~!@ AL@}  j¾"»"D×£p= ×)@£¶ D?ÆÜµ¤?e  D)\�Âõ(¬? Dáz®Gáð?£D333333@Œ ¶ *[@ “ Ak(Av! -  ( HA @ A: 8 6 Aj!  Y E@  AF@  AF@  Aàö$ AAÐÊAàöÂ" Ak(A~q7#"@A$ Ak( Ö} ”  ”’  ”  ”’’" C]@ Œ! C€ “!C€ “!C€ “!C€ “! C€?#í“^@ C€? “"”  ”’"C€?  ”  ”  ”’" ”’  ”  ”’" ”  ”  ”’" ”’’‘•"”  ”  ”  ”!! ! "  }C€? ‹"“" C]@C! C,z¥º”CÅ�Ú;’ ”Cfü‹¼’ ”Cøý<’ ”C’ƒM½’ ”Cž:¶=’ ”CÊ¿[¾’ ”CÚÉ?’ ‘”" C` CÛI@ “ " C€? “”" Cƒù">”�CÛÉ@”“"‹CÛÉ?_E@CÛI@ ˜ “! ”" C[6Ͳ”Cޏ86’ ”Cñ P¹’ ”C†ˆ<’ ”C«ª*¾’ ”C€?’ ”" ” ”" Cƒù">”�CÛÉ@”“"‹CÛÉ?_E@CÛI@ ˜ “!  ”"C[6Ͳ”Cޏ86’ ”Cñ P¹’ ”C†ˆ<’ ”C«ª*¾’ ”C€?’ ”"”’ C€?”" Cƒù">”�CÛÉ@”“"‹CÛÉ?_E@CÛI@ ˜ “! ”"C[6Ͳ”Cޏ86’ ”Cñ P¹’ ”C†ˆ<’ ”C«ª*¾’ ”C€?’ ”"•  ”  ”’ •  ”  ”’ •  ”  ”’ • »} ”  ”’  ”’  ”  ”’  ”’  ”  ”’  ”’!!"   ”  ”’  ”’  ”  ”’  ”’  ”  ”’  ”’!!"   ”  ”’  ”’  ”  ”’  ”’  ”  ”’  ”’!!"   e E@   AF@    AF@    Aàö$ AAÐÊAàöÂ" Ak(A~q7#" @A$ Ak( ã }  ”  ”“C€?   ”  ”“"”   ”  ”“"”’  ”  ”“"”’•"”  ”  ”“ ”  ”  ”“ ”  ”  ”“ ”  ”  ”“ ”  ” ”“ ”  ”  ”  ”!!!!! ! ! ! "    !!!!! ! ! ! "     ¬} ”  ”’  ”’ ”’  ”  ”’ ”’ ”’  ”  ”’ ”’  ”’  ”  ”’ ”’  ”’!#!"!!" ! " # ”  ”’  ”’ ”’  ”  ”’ ”’ ”’  ”  ”’ ”’  ”’  ”  ”’ ”’  ”’!#!"!!" ! " # ”  ”’  ”’ ”’  ”  ”’ ”’ ”’  ”  ”’ ”’  ”’  ”  ”’ ”’  ”’!#!"!!" ! " # ”  ”’  ”’ ”’  ”  ”’ ”’ ”’  ”  ”’ ”’  ”’  ”  ”’ ”’  ”’!#!"!!" ! " # ÜAÀA¦˜!AA.˜" 6  ž  6 AÀ6 A6 ( 8 ( 8 ( 8 ( 8 ( 8 ( 8 ( 8 ( 8 ( 8 ( 8$ ( 8( ( 8, ( 80 ( 84 ( 88 ( 8<  –}#A�¥ÁkA I@ #A k"$ C€?8 C€¿8 C€?8 C€¿8 C€¿8 C€?8 C€¿8 C€?8  ”  ”“"”!  ”  ” ”“"”“  ” ”“"”’ *"”!  ”   ” ”“"”“   ” ”“"”’ *"”!   ” ”“"”   ” ”“"”“   ” ”“" ”’ * "”!!   ”  ”“"”   ” ”“""”“   ” ”“"#”’ *"$”!%   ”“  ”’ *"”!& ”   ”  ”“" ”“   ”  ”“" ”’ *"”!' ”   ” ”“"”“   ” ”“"”’ *"”!( ”  ”“  ”’ *"”!) ”  ”“   ”  ”“" ”’ ”! "”  ”“   ” ”“"”’ $”! ”  ”’   ”  ”“   ” ”“"”’ ”"” ”  ”“  ”’ ”! #”  ”“  ”’ ”! ”  ”“  ”’ ”!   ”  ”“  ”’ ”"”’’"C[A @#A j$CCCCCCCCCCCCCCCC #A j$ C€? •"” & ” % ” ! ”  ” ) ” ( ” ' ”  ” ”  ”“  ”’ ” ”  ”  ”  ” ” ” ” ¼#A�¥ÁkAI@ #Ak"$  ”8   ”8   ”8   ”8  ” * ’!  ” *’!  ” *’!   ” *’8  8  8  8 ” * ’! ” *’! ” *’!   ” *’8  8  8  8  * ’!  *’! *’!  *’8  8  8  8 * * *  *!#Aj$ ü#A�¥ÁkAI@ #Ak"$  ”8   ”8   ”8   ”8  ” * ’!  ” *’!  ” *’!   ” *’8  8  8  8 ” * ’! ” *’! ” *’!   ” *’8  8  8  8 * * *  *!#Aj$ �#A�¥ÁkAI@ #Ak"$  ”8   ”8   ”8   ”8  ” * ’!  ” *’!  ” *’!   ” *’8  8  8  8 ” * ’! ” *’! ” *’!   ” *’8  8  8  8  * ’!  *’! *’!  *’8  8  8  8 * ! *! *!  * * "•8   •8   •8   •8 * * *  *!#Aj$ þ}#A�¥ÁkA I@ #A k" $ 8 8 8 8 8 8C€? * " ” *" ”’ *" ”’‘"•!  ”  ”’  ”’‘! *"C€? ” *" ”’ *" ”’‘   ”  ”“”   ”  ”“”’  ”  ”“”’" \} C€? ˜ ”"•"”  ”  ” * ” * ” * ” C€? •"”  ”  ”·!!!"!       !!!!!!!!!!#A j$           ž ("( AJ@ ( ( A� ¦!AA¦˜!AA˜" 6  ž  6 A6 A6 ( 6 6 ž ("(  ( E@ (("E@ A� ´ ("(!  (L@A   ("Aj6 L@A ("E@A   A (" AL"l AjA  l" ( "  H ¹ AH ANq@ ( Atj" (Aj6  (Aj6A C Aÿÿÿ?K@ A  AMAt"A¦˜"6 6 6 6 ?  ( O@ AH@ Aj"AA™ 6 ( Atj 7 ÈA ( " AH  j"A AJ    H "k" AJ"A AJ"At"A¦˜!AAö˜" 6  ž  6  6  6 ( (" Atj" Atü  j" G@   Atj  kAtü  k6 ä   "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA Ò"E@  (Ar6 (Ak6 (Av"AjA (" AIO ( ( AlAmHA @ Ô c (  ¥ÒE@A (! (  ¥Ò"E@ (! "( O@ ( Atj("E@ – (  ¥Ò@ (  ¥Ò"E@ (" ("( O@ ( Atj(E@ (  œ (  (( Ó ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Ó (  ¥ÒE@ (  ¥Ò"E@ ("" ("( O@ ( Atj(E@ (( Ak! ( ï  G@ ("( M@ ( Atj("E@ (  œ ("   ( O@ ( Atj("E@ œ (  Ó ("( "AL@ ( Ak"Atj"( A6  6 ("( "AL@ ( Ak"Atj"( A6  6 UA8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 Î ¡Db@A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60  A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 A6 A6  9  É ÷! -E@ (" (H  ("(O@ ( j-A "A F A Fr A Fr A Fr (Aj6   AN@ -E@ A: A6 (Aj" (H  ( 6 -@ (!A!A!@  H@  ("(O@ ( j-A F@ Aj! Aj! Aj!  AAƒ˜"A6 A6 A6  (6  6   k6 AA…˜"A: A6 A� 6 A6 ·"6 ž 6 ž  AA…˜"A: A6 A� 6 A6 A: 6 ž Ö@ Ak(Av J@ (" (H@  ("(O@ ( j-! (Aj6   A "AH@ -E@ A: A6 (6   Ak(AvOA  Atj/ G@ -E@ A: A6 (6  Aj!  ·@ (" (H  ("(O@ ( j-A "A F A Fr A Fr A Fr (Aj6   AH@ -E@ A: A6 (Aj" (H  ( 6  @@@@@@@@ AîG@ AôF  AæF  A-F  A"F  AÛF  AûF   (Aj6 Aà´!ö  (Aj6 A€µ!öA8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 A6 A:  (Aj6 A µ!öA8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 A6 A:  (Aj6 Aø (Aj6 û!A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 A6 6( ž  ( Ak6 ( E  (Aj6AA¦˜!AA€˜" 6  ž  6 A6 A6 A!@@ (" (H  ("(O@ ( j-A "A F A Fr A Fr A Fr (Aj6   AH@ -E@ A: A6 (Aj" (H  ( 6  AÝF @A! A,F@ (Aj6 (" (H  ("(O@ ( j-A "A F A Fr A Fr A Fr (Aj6   AÝF@ -E@ A: A6 (Aj" (H  ( 6  AH@ -E@ A: A6 (Aj" (H  ( 6   -E@ A: A6 (Aj" (H  ( 6  ÷! - ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 A6  6,  ž ( Aj6 -@   (" (H  ("(O@ ( j-A "A F A Fr A Fr A Fr (Aj6   AÝF@ (Aj6 A,F@ (Aj6 (" (H  ("(O@ ( j-A "A F A Fr A Fr A Fr (Aj6   AÝF@ -E@ A: A6 (Aj" (H  ( 6  -E@ A: A6 (Aj" (H  ( 6  AN@ -E@ A: A6 (Aj" (H  ( 6  -E@ A: A6 (Aj" (H  ( 6  ( Ak6 ( E  (Aj6A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 A6A Aÿ˜"AAAA¤6 AAA€A¤6AA�˜"½  6  60  ž (0"E@ A!@@ (" (H  ("(O@ ( j-A "A F A Fr A Fr A Fr (Aj6   AH@ -E@ A: A6 (Aj" (H  ( 6  AýF @A! A"G@ -E@ A: A6 (Aj" (H  ( 6   A,F@ (Aj6 (" (H  ("(O@ ( j-A "A F A Fr A Fr A Fr (Aj6   "A"G@ AýF@ -E@ A: A6 (Aj" (H  ( 6  AH@ -E@ A: A6 (Aj" (H  ( 6  -E@ A: A6 (Aj" (H  ( 6   -E@ A: A6 (Aj" (H  ( 6  (Aj6 û! -  (" (H  ("(O@ ( j-A "A F A Fr A Fr A Fr (Aj6   A:F@ (Aj6 AN@ -E@ A: A6 (Aj" (H  ( 6  -E@ A: A6 (Aj" (H  ( 6  ÷! -   ñ  ( Aj6 -@   (" (H  ("(O@ ( j-A "A F A Fr A Fr A Fr (Aj6   AýF@ (Aj6 A,F@ -E@ A: A6 (Aj" (H  ( 6  AN@ -E@ A: A6 (Aj" (H  ( 6  -E@ A: A6 (Aj" (H  ( 6  A9L A0Nq@ Aø -E@ A: A6 (Aj" (H  ( 6 A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60  -E@ A: A6 (Aj" (H  ( 6 A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 ö ~|@ (" (H@  ("(O@ ( j-! (Aj6   A "AH@ -E@ A: A6 (6  A0F@ (" (H  ("(O@ ( j-A "A9L A0Nq@ -E@ A: A 6 (Aj" (H  ( 6  Bý  A9L A1Nq@ A0k¬!@ (" (H  ("(O@ ( j-A "A9L A0NqE@  ý  A0k¬! B™³æÌ™³æÌVA B™³æÌ™³æÌQ BVq @A!@ (" (H  ("(O@ ( j-A "A9L A0Nq@ (Aj6 Aj!  A.F@   þ AÅF AåFr@   ÿ@ º!@@@A k  AH"AµI@ A¼µ!(AvO@ AtAÀµ!j+! AN@  ¢" ¡Db   £!  Da AN  D Èë…óÌá£! A´j!  A6  š 90  -E@ A: A 6 (6  (Aj6 B ~ |!  -E@ A: A 6 (6 -@A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60  (E@ ) !A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 A6 A6 7  (AF@ )("BY@A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 A6 A6 7  A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 A6 A6 7  +0ô Ó (8( (G@ (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6 AÀº6 6 ž A A(A“˜"ñ A6  (  È"6  ž  ( Œ"6  ž Aj6  ñ ("! Aj6 �"Ak(AvE@ (! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6 Að�6 6 ž A ÎAð�Ä@ (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6 A�‘6 6 ž A A(A“˜"ñ A6  6  ž  ( Œ"6  žA!A ( ("A¬’(AvjH @A¬’(Av" J@  j! (!A  OA AtA°’j/  Ak(AvOA  Atj/ G  Aj!  A @ (Aj6  (! (! ("!@@  N  Ak(AvOA  Atj/ "A€NA #Sj-Aq E Aj!  6  L@ (!AÐ’ Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6 6 ž A (A°’ (Å"AH@A°“ Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6 6 ž A  ( ( È"6  ž Aj6  Ó (! (! ("!A!@@  L  Ak(AvOA  Atj/ "AFA ! Aj!  AN@ (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6 A »6 6 ž A   È!   AŽ  "E@A A(A“˜"ñ A6  6  ž  6  ž  ( Œ"6  ž  ("6  ž 6  ¨  ("Aj6@ �"Ak(AvE@ (! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6 Að¿6 6 ž  A(A“˜"ñ A6  6  ž  ( Œ"6  ž (! (! ("!@@  N  Ak(AvOA  Atj/ "A€NA #Sj-Aq E Aj!  6  J!A!A "( ("AÌÀ(AvjH @AÌÀ(Av" J@  j! (!A  OA AtAÐÀj/  Ak(AvOA  Atj/ G  Aj!  A @ A:$  ( (Œ"6  ž (!AA‘˜"A6 A6 (! (6 6  6  ž  (Aj6  (" (H  ("Ak(AvOA  Atj/ A A>F@  (Aj6  ( (Œ"6  ž  (" (L@AðÀ ÂA€“Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ! 6 6 6  6  ž  A (" (H  ("Ak(AvOA  Atj/ A "A€NA A:FA AßF AÚL AÁNqA AúL AáNq E@ (!A°Á ÂA€“Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ! 6 6 6  6  ž  E@ (! (E@AA˜˜"A6 A6 A6 ( ! ( Œ! 6 6 A Â6  6  ž  (! �! (! (! (!@@  N  Ak(AvOA  Atj/ "A€NA #Sj-Aq E Aj!   6 (" (H  ("Ak(AvOA  Atj/ A A=G@ (!A€Ã Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ! 6 6 6  6  ž   (Aj6 (! (! (!@@  N  Ak(AvOA  Atj/ "A€NA #Sj-Aq E Aj!  6 (" (H  ("Ak(AvOA  Atj/ A "A'G A"Gq@ (!AÐà Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6 6 ž  (Aj"!A! (! @@ ( L  Ak(AvOA Atj/ " F A *!? *!@ * A!0 B!2 C!( D!) E!* F!+ G!, H!- I!. J!/ K!1 L!5 M!6 N!7 O!8 P!9 Q!: R!; 4!< 3!= $!> %!? &!@ ' 8@  @8D  ?8H  >8L  =8P  <8T  ;8X  :8\  98`  88d  78h  68l  58p  18t  /8x  .8|  -8€  ,8„  +8ˆ  *8Œ  )8�  (8”  28˜  08œ *€!( *„!) *ˆ!* *Œ!+ *�!, *”!- *˜!. *œ!/  AàlA�j" *@ *D *H *L *P *T *X *\ *` *d *h *l *p *t *x *|Æ A@k"Av  (AkJr@ ( j (8 Aj"Av  (AkJr@ ( j )8 Aj"Av  (AkJr@ ( j *8 A j"Av  (AkJr@ ( j +8 AÐj"Av  (AkJr@ ( j ,8 Aj"Av  (AkJr@ ( j -8 Aj"Av  (AkJr@ ( j .8 A j"Av  (AkJr@ ( j /8 Aj!  #A j$ è }#A�¥ÁkA I@ #A k"$ ( ! (! (! (! (AkAH@ ( 6 (AkAH@ ( 6 (AkAH@ ( 6 (AkA H@ ( 6 A * * * * * *$ *( *, *0 *4 *8 *< *@ *D *H *LÆ *\! *X! *T! *P! (AkAÐH@ ( 8P (AkAÔH@ ( 8T (AkAØH@ ( 8X (AkAÜH@ ( 8\ *l! *h! *d! *`! (AkAàH@ ( 8` (AkAäH@ ( 8d (AkAèH@ ( 8h (AkAìH@ ( 8l *|! *x! *t! *p! (AkAðH@ ( 8p (AkAôH@ ( 8t (AkAøH@ ( 8x (AkAüH@ ( 8| *Œ! *ˆ! *„! *€! (AkA€H@ ( 8€ (AkA„H@ ( 8„ (AkAˆH@ ( 8ˆ (AkAŒH@ ( 8Œ *œ! *˜! *”! *�! (AkA�H@ ( 8� (AkA”H@ ( 8” (AkA˜H@ ( 8˜ (AkAœH@ ( 8œ *¬! *¨! *¤! * ! (AkA H@ ( 8  (AkA¤H@ ( 8¤ (AkA¨H@ ( 8¨ (AkA¬H@ ( 8¬ *¼! *¸! *´! *°! (AkA°H@ ( 8° (AkA´H@ ( 8´ (AkA¸H@ ( 8¸ (AkA¼H@ ( 8¼ *Ì! *È! *Ä! *À! (AkAÀH@ ( 8À (AkAÄH@ ( 8Ä (AkAÈH@ ( 8È (AkAÌH@ ( 8Ì *Ü! *Ø! *Ô! *Ð! (AkAÐH@ ( 8Ð (AkAÔH@ ( 8Ô (AkAØH@ ( 8Ø (AkAÜH@ ( 8Ü *ì! *è! *ä! *à! (AkAàH@ ( 8à (AkAäH@ ( 8ä (AkAèH@ ( 8è (AkAìH@ ( 8ì *ü! *ø! *ô! *ð! (AkAðH@ ( 8ð (AkAôH@ ( 8ô (AkAøH@ ( 8ø (AkAüH@ ( 8üAÈ*! AÌ*!AÐ*!AÄ*" !A!@ AH@   (€"( H}  ( O@ ( Atj"*! *! *! *! * ! *! *! * ! ! ! ! ! ! !  8  8  8  8  8  8  8  8 *! *! *! *! *! *! *! * ! AtA€j""Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 A j"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 A j"Av  (AkJr@ ( j 8 Aj!  A!@ A H@ AtA€j!  („"( H}  ( O@ ( Atj"* ! *! *! *AÐ*! AÌ*! AÈ*! AÄ* ! Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 A j"Av  (AkJr@ ( j 8 Aj!  #A j$ £:|} ( A m!A$Aé˜" !A Aç˜"A6 A6 A6 AA¦˜"6  6 A6  6 A6A Aç˜"A6 A6 A6 AA¦˜"6  6 A6  6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6 A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6 A6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6A Aè˜"A6 A6 A6 AA¦˜"6  6 A6  6 6A Aã˜" A6 A6 A6 AÿÿÿÿK@ At"A¦˜"6 6 6A Aã˜" A6 A6 A6 A¦˜"6 6 6A Aè˜"A6 A6 A6 Aÿÿÿ?K@  At"A¦˜"6  6  6A Aè˜"A6 A6 A6  A¦˜"6  6  6A Aè˜"A6 A6 A6  A¦˜"6  6  6A Aè˜"A6 A6 A6 Al"Aÿÿÿ?K@  At"A¦˜"6  6  6A!@  H@ (Av M@ ( Atj 6 A l!Dð!Dð! Dð!$Dðÿ!!Dðÿ!#Dðÿ!"A!@ AH@  Alj" ( O@ ( Atj*»!  AljAj" ( O@ ( Atj*»!%  AljAj" ( O@    d! % %d! ( Atj*»"& $ $ &d!$  !  !d!! % # # %c!# & " " &c!" Aj!  Al" (AvO@ ( Atj 9 AlAj" (AvO@ ( Atj 9 AlAj" (AvO@ ( Atj $9 AlAj" (AvO@ ( Atj !9 AlAj" (AvO@ ( Atj #9 AlAj" (AvO@ ( Atj "9 (Av M@ ( Atj  ! Dà?¢9  (AvO@ ( Atj # Dà?¢9  (AvO@ ( Atj $ " Dà?¢9 Aj!  A Aç˜" A6 A6 A6A At AL"Al"AÿÿÿÿK@ At"A¦˜"6 6 6A Aã˜"A6 A6 A6 AÿÿÿÿK@  At""A¦˜"6  6  6A Aã˜"A6 A6 A6  A¦˜"6  6  6A Aã˜"A6 A6 A6 A0A¦˜"6  6 A06A Aè˜"A6 A6 A6 AÀA¦˜"6  6 AÀ6A Aè˜"A6 A6 A6 AàA¦˜"6  6 Aà6A Aã˜"A6 A6 A6 A0A¦˜"6  6 A06A Aã˜"A6 A6 A6 AjAl"AÿÿÿÿK@  At"A¦˜"6  6  6 AJ@A! (AvE@ (A6 (AvAM@ (A6A! (AvAM@ ( 6 @ AJ@ Ak" (AvO@ ( Atj(! Ak" (AvO@ ( Atj(! Ak"" (AvO@ ( Atj(!Dð!&Dð!(Dð!)Dðÿ!*Dðÿ!+Dðÿ!,Dð!!Dð!#Dð!"Dðÿ!%Dðÿ! Dðÿ! !@  H@ (Av M@ ( Atj("Al" (AvO@ & ( Atj+d@  (AvO@ ( Atj+!& Aj" (AvO@ ( ( Atj+d@ Aj" (AvO@ ( Atj+!( Aj" (AvO@ ) ( Atj+d@ Aj" (AvO@ ( Atj+!) Aj" (AvO@ * ( Atj+c@ Aj" (AvO@ ( Atj+!* Aj" (AvO@ + ( Atj+c@ Aj" (AvO@ ( Atj+!+ Aj" (AvO@ , ( Atj+c@ Aj" (AvO@ ( Atj+!, (Av M@ ( Atj+!  (AvO@ ( Atj+!$  (AvO@  !  !c!! $ # # $d!# ( Atj+"' " " 'd!"  %  %d!% $ $c! '   'c! Aj!  Al" (AvO@ ( Atj &¶8 Aj" (AvO@ ( Atj (¶8 Aj" (AvO@ ( Atj )¶8 Aj" (AvO@ ( Atj *¶8 Aj" (AvO@ ( Atj +¶8 Aj" (AvO@ ( Atj ,¶8 % !¡! #¡!  "¡!  k" ALA De Deq Deq @ (Av M@ ( Atj 6  (AvO@ ( AtjA k6   AAA  e  e  fq"AF  ! # " AF" ! !'D(@    £!.A!@ A H@ (Av M@ ( AtjA6 Al" (AvO@ ( AtjDð9 AlAj" (AvO@ ( AtjDð9 AlAj" (AvO@ ( AtjDð9 AlAj" (AvO@ ( AtjDðÿ9 AlAj" (AvO@ ( AtjDðÿ9 AlAj" (AvO@ ( AtjDðÿ9 Aj!  !@  H@ " (AvO@ ( Atj("" (AvO@ ( Atj+ '¡ .¢ª"AHAA  A N " (AvO@ ( Atj(Aj! (Av M@ ( Atj 6 Al! Al!A!@ AH@  j" (AvO@  j" (AvO@ ( Atj+ ( Atj+d@  j" (AvO@ ( Atj+!  j" (AvO@ ( Atj 9 Aj j" (AvO@ Aj j" (AvO@ ( Atj+ ( Atj+c@ Aj j" (AvO@ ( Atj+! Aj j" (AvO@ ( Atj 9 Aj!  Aj!  Dð!Dð! Dð!$Dðÿ!!Dðÿ!#Dðÿ!"A!A!@ A H@  (AvO@ ( Atj(AJ@ Al" (AvO@  ( Atj+¤! Aj" (AvO@ ( Atj+¤! Aj" (AvO@ $ ( Atj+¤!$ Aj" (AvO@ ! ( Atj+¥!! Aj" (AvO@ # ( Atj+¥!# Aj" (AvO@ " ( Atj+¥!"  (AvO@  ( Atj(j"! (Av M@ ( Atj 6 AJ| ! ¡" # ¡"%¢ % " $¡"%¢  % ¢ D ! (Av M@ ( Atj 9 Aj!  Dð!$Dð!!Dð!#Dðÿ!"Dðÿ!%Dðÿ! Dð!A!A !@ AJ@  (AvO@ ( Atj(AJ@ Al" (AvO@ $ ( Atj+¤!$ Aj" (AvO@ ! ( Atj+¤!! Aj" (AvO@ # ( Atj+¤!# Aj" (AvO@ " ( Atj+¥!" Aj" (AvO@ % ( Atj+¥!% Aj" (AvO@ ( Atj+¥! Ak" (AvO@ ( Atj("k"E ErE@ Ak" (AvO@ ( Atj+ ·¢ " $¡" % !¡"-¢ - #¡"-¢  - ¢  ·¢ " e| !   ! Ak!  AL * &¡" + (¡"!¢ ! , )¡"!¢  ! ¢ "Dd|  £Dð? Dð ·fq AHr@ (Av M@ ( Atj 6  (AvO@ ( AtjA k6A! "!@  H@ (Av M@ ( Atj(" (AvO@ ( Atj+ '¡ .¢ª"AHAA  A N H@ "Aj!  "(AvO@  "Aj!  "(AvO@ ( Atj 6 Aj!  A!@  H@  (AvO@ ( Atj(!  j" (AvO@ ( Atj 6 Aj!  "Aj! Aj! (Av M@ ( Atj 6  (AvO@ ( Atj 6 (Av M@ ( Atj 6 Aj" (AvO@ ( Atj 6 Aj" (AvO@ ( Atj 6 Aj" (AvO@ ( Atj 6 Aj" (AvO@ ( Atj 6 Aj"Aj!  (AvO@ ( Atj 6  A Aç˜"A6 A6 A6 A l"AÿÿÿÿK@  At"A¦˜"6  6  6A Aã˜"A6 A6 A6  At"A¦˜"6  6  6A!@  H@  (AvO@ ( Atj(A l!  (AvO@ ( Atj(! (Av M@ ( Atj 6A!@ A H@  j" ( O@ ( Atj*!/ A l j" (AvO@ ( Atj /8 Aj!  Aj!  6 ž 6 ž 6 ž 6 ž 6 6 žA!A " (E A Aã˜"A6 A6 A6 ("AÿÿÿÿK@  At"A¦˜"6  6  6A Aã˜"A6 A6 A6 ("AÿÿÿÿK@ At"A¦˜"6 6 6 (AvE@ (A6A! (AvE@ (A6@ AJ@ Ak" (AvO@ ( Atj(!  (AvO@ ( Atj(" J@ ! ("(AvO@ ( Atj(AJ@ ( "(AvO@ ( Atj(! (Av M@ ( Atj 6  (AvO@ ( Atj Aj6 ("(AvO@ ( Atj(! Aj" " (AvO@ ( Atj 6 Aj! (AvO@ ( Atj Aj6   Aj!A Aã˜"A6 A6 A6 AÿÿÿÿK@ At"A¦˜"6 6 6 6 žA Aè˜"A6 A6 A6 Aÿÿÿ?K@ At"A¦˜"6 6 6 6 ž � } ("A l (AvJ@ (! (!@  NE@ ( Atj(A l! A l!A!@ A NE@ (  jAtj (  jAtj*8 Aj!  Aj!  (! ( ! (! (Ak!@ AN@ At" (j(!C€! C€! C€! C€ÿ!C€ÿ!C€ÿ!  (j("AL@ k!@ NE@A!@ ANE@ (" A l Alj"Atj*! AjAt j*! AjAt j*!  ^!  ^! ]!    ]!    ]!  ^! Aj!  Aj!  A!@ ANE@ ("  Al"Atj*^@ At j*! ( AjAtj*" ^@ ! ( AjAtj*" ^@ !  ( AjAtj*" ]@ !  ( AjAtj*" ]@ !  ( AjAtj*" ]@ ! Aj!  ( Al"Atj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj 8 Ak!  .  Ak(AvO@ Atj" 6 A  Ÿ J Ak(Av"E Er@A @  H@ Atj( Ä@  Aj!  A n ( "A AL!  k"A AJ"A¦˜!AAë˜" 6  ž  6  6  6 ( ( j ü  ·A ( " AH  j"A AJ    H "k" AJ"A AJ"A¦˜!AAë˜" 6  ž  6  6  6 (  ("j" ü  j" G@   j  kü  k6 ØA Aߘ"A6 A6 A6 l" At"AüÿÿÿK@  A¦˜"6  6  6 !A!@  I@ Aÿq! At" " "(O@ ( j : Aÿq! Aj" (O@ ( j : Aÿq! Aj" (O@ ( j : ( Aÿq! Aj" M@ ( j : Aj!  AA”˜"A6 A6 A6 A: A: A:  6  6  6  Å   j" ("  H!  j" ("  H! A AJ!@  H@ A AJ!@  H@@  "rAHA  (N A  (N  (l jAt! (! Aÿq" E AÿF@ ( M@ ( j : Aj" (O@ ( j : Aj" (O@ ( j : Aj" (O@ ( j :  Aj" (O@ A Aÿ k" ( j-"lAÿnj" AM! A! @ AH@  j" (O@ Aÿ Aÿq E  Aÿq AF  Aÿq AF  Aÿq l ( j- l lAÿnj n" AÿOAÿq!  j" (O@ ( j : Aj!  Aj" (O@ ( jAÿ AÿO: Aj!  Aj!  ú&~A°A�˜"A6 A6 A6 A6 A� 6 A: A6 A6A Aߘ"A6 A6 A6 AA¦˜"6  6 A6  6 A6$ A6( A6, A60 A64 A68 A6”! Aj" ("(AvO@  ( Atj*’C€>”! Aj" ("(AvO@  ( Atj*’C€>”! A� 6  (l jAl" ("(AvO@ ( Atj 8 Aj" ("(AvO@ ( Atj 8 Aj" ("(AvO@ ( Atj 8 Aj!  Aj!   ¡ ("( (L@A A� !@@ A€ H (" (HqE Aj6  "(O@ ( j-"A F  ¾Â! Aj!  Aàˆ#à A Ak(AvAkÈ  Î 6@ AH@ (!A Aç˜"A6 A6 A6  lAl"AÿÿÿÿK@  At"A¦˜"6  6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Ñ} ("Ak³!  ³" ”C¿’!C  ”C¿’"  ^ C]"©"Aj" Ak"  I!C   ^ C]"©" Aj"   I"  ljAl!  l" jAl!  jAl!C€?  ³“"“C€?  ³“"“”! C€? “”! C€? “ ”!  ”!  ("( O@ ( Atj("E@  l jAl" (AvO@  (AvO@  (AvO@  (AvO@ Aj" (AvO@ ( Atj* ” ( Atj* ”’ ( Atj* ”’ ( Atj* ”’ ( Atj* ” Aj" (AvO@ ( Atj* ”’ Aj" (AvO@ ( Atj* ”’ Aj" (AvO@ ( Atj* ”’ Aj" (AvO@ ( Atj* ” Aj" (AvO@ ( Atj* ”’ Aj" (AvO@ ( Atj* ”’ Aj" (AvO@ ( Atj* ”’ Í  ƒ A°ø 6 6 E@à! @ (A€ KA ( K A ( K  (AKA (AK A @ á!  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Ý@ ("( H@AA‡˜"A6 A6 A6 A6 A6 ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A!@  LE@ (( Atj("A6 A6 A6 A6 A6 Aj!  o (!@ ( J@ ( Atj("( Ä@ -A - : A: A: A: A6 Aj!  ‡ (6 (6 -: ( "6 ž (6 *8 *8 *8 ( 6 -$:$ -%:% -&:& Ê ( (F ( (FA  - -FA  ( ( ÄA  ( (FA  * *[A  * *[A  * *[A  ( ( FA  -$ -$FA  -% -%FA  -& -&FA âA Aç˜"A6 A6 A6A€ ((AvAt" A€H" A l"  H"AÿÿÿÿK@  At"A¦˜"6  6  6A!@ (A l LE@ At" (j  ((j*8 Aj!  6 žA Aã˜"A6 A6 A6 (AvA n!A@  At"A¦˜"6  6  6 !A!@ ( LE@ At" (j  ((j(6 Aj!  6 ž ©  }  (Aj6@ - E  _  _q  _qE * " `  `q *¤" `q  `q *¨" `q  `q *ø! *ô *ð! *ì!" *è! *ä *à!# *Ü! *Ø! *Ô *Ð! *Ì! *È! *Ä *À! *¼! *@ *< *P *L *H *` *\ *X *p *l *h *x *D" ” *T" ”’ *d"! ”’ *t’Œ Œ  “"”C–’ Œ  “"”C–’ !Œ  “"”C–’"! *ü` ! *„^A E  ”  ”’  ”’ ’"  ”"C–’  ”"C–’  ”"C–’C^E  ”  ”’  ”’ "’"  ”’!  ” ”’ # ”’ ’"  ”’!   ”"’!  ’" ’!  ’"  ’" ’"•!  •""  •"$–   •"%––   ”"’  ’"•"  ’  ’"•"&–  ’ •"  ’  ’"•"'–––C?”C?’ (²"”!C?  •"  •"—  ”"’" •"  ’" •"——  # ”"’ •"  ’ •"— ’ •"  ’ •"———C?”“ (²"”!C?  –  ––  –  –––C?”“ ”"C` " $—  %——  &—  '———C?”C?’ ”"C`q  `q  `qE  C—"Žü6   –"ŽüAj" (Aj" J6@  C—"Žü6€   –"ŽüAj" (Aj" J6À  “  “—!A! @ (AkHA t² ]q@ Aj!  A! @ JE@ At" ( j(Ak!  j  AkAtj(Au" ( j(Ak" J6  AjAtj  AjAtj(Au" J6  A jAtj  AjAtj(Au" H6  A0jAtj  A/jAtj(Au" H6 Aj!  (!@ AN@   AjAtj("  Atj(" kAj  A0jAtj("  A jAtj(" kAjlj"A€J  At" (j(! ($ j(!A! @ E Lq@  lj! ! @ L@ ! ( jAtj*^@ Aj! A! Aj!  @ Ak!   (Aj6A A A � 6 6 Aj! Aj!A!@ At" (j 6 ( j 6 ($ j 6   lj! AF AFq Aj"ANrE@A Au" AL!A Au" AL!  6  ((AvJ@ "A Aç˜"A6 A6 A6 AÿÿÿÿK@ At"A¦˜"6 6 6 6  ž ’ AkAt" ($"j(! At" ("j(! ( " j(!  j(!  j("AJ! A  j(" AJ! (" (!@  H@  AtA AJ lj!   lj! A @  Atj! At!  Atj" Atj! @  I@  * *— j"* *——8 Aj! Aj!   !A!@  H@ ("  jAtj At j* jAt j*— j" At j*  jAt j*——8  jj! Aj!  Aq q@ ("  jAk"Atj At j*  jAk"At j*  jAt j*——8 AqA  AkFA @  j j!A!@ H@ (" jAtj" *  At lj"At j*  jAt j*——8 Aj!  Aq q@ ("  jAk"Atj At j*  jAkAt j*—8 Aj!  û } | ((AvAn! ("(AvAn"   H!@  H@ (" Al"AjAtj(" N At j(" Nr AjAt j(" NrE@@A! A! A! (! ! " "J@ !A! !  J@ ! ! E! ! ("  H ! ! E!   Al"Atj*» Al"At j*»"+¡!( AjAt j*» AjAt j*»")¡!' AjAt j*» AjAt j*»",¡"- Al"AjAt j*» )¡"*¢ ' AjAt j*» ,¡".¢¡"/ +¢ ' At j*» +¡"'¢ ( *¢¡"+ ,¢  ( .¢ - '¢¡"( )¢ !) *"C\@A » (š ) -€"'š ' ¢Dc  *Œ *ˆ *„ *€D@ (· *|»"-¢£!* *¸ *´ *°! *¬! *¨ *¤ * ! *œ! *˜ *”DÀ (· *�»".¢£!'A -€|A (Da  / *¢ (£!, + '¢ (£!* /Dð¿ »¡ -£¢ +Dð? »¡ .£¢  )¡ (£A )Da  / *¢ )£!, + '¢ )£!* / »Dð¿  -£¢ + »Dð?  .£¢  (¡ )£ "' '¡Db * *¡Db , ,¡Dbrr   ,¶8  *¶8  '¶8$A E (! *ü!@ AH@ ("  AF"  " AlAjAtj*!    "AlAjAt j*"Œ `"@ At" (j  Al"Atj*8 ( j ( AjAtj*8 ( j 8 Aj! Œ ` G@ ("  J"A lj*! Al"AjAt j*!  H"AlAjAt j*! At" (j  Al"At j* “  AjAt j*"’  AjAt j*“•"”’8 ( j   “ ”’8 ( j Œ8 Aj! Aj!  AH *¸!! *´ *°!" *¬!# *¨!$ *¤ * !% *œ!& *˜! *” *�! *Œ! *ˆ! *„ *€! *|! (²! (²!A!@  H@  At" (j*"”  ( j*"”’ $ ( j*"”’ !’"C^E C?  ”  ”’ % ”’ "’ •C?”“ ”" “C\  ”  ”’ & ”’ #’ •C?”C?’ ”" “C\r  ( j 8 ( j 8 Aj!  A!@ Aj" H@@ At" ( " j*" *"“ At" ("j*" *"“”  j*" “  j*" “”“"C[A  “C\ * ”C] (! C]@ ! ! ! ! ! ! ("²C?’    ^    ]  ^`    ]    ^  ]C¿^A E -œ@       * * *$ (( AjA  ï! (˜( Atj"  (j6     ]    ^  ]C¿’ލ"   HA    ^    ]  ^C¿’�¨" AHH ("AjA l ((AvJ@  Ajê ("( ("A l"Atj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj *8 ( AjAtj * 8 ( AjAtj *$8 (( Atj 6  Aj6 !  Aj!  °  } (!A    ]    ]  ]C¿’�¨" AH" H"    ^    ^  ^C¿’ލ" ("  H" J"J@A  AA  ^A  \" AH!   AH"!   !   !! } ! “  “•C !&  ]rE!  AA  ^A  \"AH!   AH"!"   !   !# } # "“  “•C !'   ]rE!  AA  ]A  \"AH!   AH"!$   !   !% } % $“  “•C !(   ^rE! -€"} C— C—’ C– C–’ ’! ²C@’!@ L@@ ²C?’" [ q  [ q   rr Œ! !  _A  `A @ ! &  “”’  [! AH@    ]!    ^!  _A  `A @ # " '  “”’  [! AH@    ]!    ^!  _A  `A @ % $ (  “”’  [! AH@    ]!    ^! AA C¿’�¨" AH" AH" C¿’�¨Ak"  H"  H"J  ²” ’!   kAj"j! Aj l jAjAtj! @ ²! Atj!@ I@   ”’CT€?”! C€?’!  *]@ 8 Aj!  @  kAj"Atj!   ²"”’C^    Ak²’”’C^A @@ I@CT€?   ”’•! C€?’!  *]@ 8 Aj!   @ I@   ”’! C€?’! C^@CT€? •" *]@ 8 Aj!  Aj!   ãA ( " AH  j"A AJ    H "k" AJ"A AJ"At"A¦˜!AA¾˜" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A    Atj  kAtü   k"AtjA Atü 6 ãA ( " AH  j"A AJ    H "k" AJ"A AJ"At"A¦˜!AAØ" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A    Atj  kAtü   k"AtjA Atü 6 ãA ( " AH  j"A AJ    H "k" AJ"A AJ"At"A¦˜!AAƘ" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A    Atj  kAtü   k"AtjA Atü 6 ãA ( " AH  j"A AJ    H "k" AJ"A AJ"At"A¦˜!AAȘ" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A    Atj  kAtü   k"AtjA Atü 6 ³ @A!@ ("( J@  ( O@ ( Atj("E@  F  ("( O@  ( j-FA @  ("( O@ ( Atj( Aj!  A @A!@ ($"( J@  ( O@ ( Atj("E@  F  (("( O@  ( j-FA @  ("( O@ ( Atj( Aj!  A ç @ (0( Ak!@ AN@  (0"( O@ ( Atj("E@  F@  (4"( O@ ( Atj("E@ (0 Ö (4 ò Ak!  ($( Ak!@ AN@  ($"( O@ ( Atj("E@  F@  (("( O@ ( j-  ("( O@ ( Atj) ($ Ö (( Ä (, ¿ ( ó ( î Aj!#B" ( A AJ@@A!#B"E @ ( J@ ( Atj( Aj!  Ak!  A!@ AH@   "@ (( Ak!@ AN@  ("( O@ ( Atj("E@  F@  ("( O@ ( j-  ("( O@ ( Atj) ( ò ( Ä ( ¿ ( ó ( î Aj!#B" ( A AJ@@A!#B"E @ ( J@ ( Atj( Aj!  Ak!  Aj!  AJ@ ( Aj6 ¨@ (0"( J@  ( O@ ( Atj("E@  F@  (4"( O@ ( Atj("E@ AA•˜"A: A6 A� 6 A6 A: 6 ž  Aj!  -@ó " ) B|7 A°˜6( A°˜žAA•˜"A: A6 A� 6 A6 A�™6 A�™ž   (( E@AÀ“ (å ÂAð—­  ("( E@ (("E@ ( ( ( (æ "-E@  (0"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (! (4"( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  ì@ ( "( J@  ( O@ ( Atj("E@  F@A Aj!  A!@ (,"( J@  ( O@ ( Atj("E@  F@A Aj!  A!@ (<"( J@  ( O@ ( Atj("E@  F@A Aj!  A ‘} 6 6 AAAÿAÿAÿAÿÅA‚! AAA€A€AÿAÿÅA‚! AAAÿAAÿAÿÅA‚! 6 6 6A°A¬˜"¯ Aà !!!!!!!!!! ! ! ! ! !!!!!"!AA¦˜!AA‰˜" 6  ž  6 A6 A6 ( 6 ( 6 ( 6 ( 6 ( 6AÔA²˜"C8 C8 C8 C8 C8 C8 C8 C8 C8 C8$ C8( C8, A60 A64 A68 A6< C8@ C8D C8H C8L A6P  8  8  8  8  8  8  8  8  8  8$  8(  8,  60  64  68  6<  8@  8D  8H  8L A6P   ‡6 ¨~ A:4 (((AJ@  ä ! ((  ¥Ò@ ((  ¥Ò"E@ (  µ E@  ¸ ! ("Ak("A© F@  ÷  A±F@# £"- (A  "  " ä !  ("Ak("A© F@  ø  A±F@ ×  ! ( ¥ÒAG"  ( ¥Ò"E@ E" (("E A   - -GA ) )R A - + +aA A  ( ¥Ò"E@  (!A (" (A A ( ( F A  ( ÷E   ( 6A A E@  ( ¥Ò"E@ ((  !  ( ¥Ò"E@ ((EA @ ( ¥Ò"E@ (( ! ("  ÷A E@ ( „  ("Ak(" A© F@  ù  A A±F  " ( AJA  (! (! @ ( J@  (0 ( Atj(¨  Aj!  A "AN@  ( O@ ( Atj("E@  ! (! A!@@ ($"( J@  ( O@ ( Atj("E@  F  (("( O@  ( j-FA  Aj!  -@A!@ ($"( J@  ( O@ ( Atj("E@  F  Aj!  ó " ) B|7 A€š6( A€šž  ¶  ƒ!A!@ ("( J@  ( O@ ( Atj("@ (4|! Aj!  ($"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (("( " Aj!  (K@  AA™ ( j :  6 (,"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (! …! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ("( " Aj!  (AvK@  AA™ ( Atj 7  6  (8Aj68#B" ( A AJ@A   ò    (,"( O@ ( Atj("E@   ( ƒ !A Aɘ"A6 A: A6 A6 A6 A å6 A: A6  6  :  6  6 A6  ("A H ANq #�"Ak(AvO@  Atj("E@ A�° A «Â "6  ž  :   ( E@ (("E@   ö (( E@AÀ“ (å ÂAð—­  ("( E@ (("E@ ( ( ( (æ "-E@A Aɘ"A6 A: A6 A6 A6 A å6 A: A6A€� ÂA€— ("A H ANq #�"Ak(AvO@  Atj("E@ A�° A «Â ÂAà– (ÂAðŽÂ!  6  :  6  6  6     ( ( µ ( ( ‚ !A Aɘ"A6 A: A6 A6 A6 A å6 A: A6  6  :  6  6 A6  ("A H ANq #�"Ak(AvO@  Atj("E@ A�° A «Â AЗÂ"6  ž    (ß ! (! - (- A   (! @ (" ( J@  ( O@ ( Atj(" E@ A F  (" ( O@  ( j-FA  Aj!  A A A  -   ( ( µ ( ( ‚ !A Aɘ"A6 A: A6 A6 A6 A å6 A: A6  6  :  6  6 A6 A Aɘ"A6 A: A6 A6 A6 A å6 A: A6A€� ÂAÀ� (ÂAðŽÂ!  6  :  6  6  6   (!ó " ) B|7 A°‘6( A°‘ž ("A A!@ (" ( J@  ( O@ ( Atj(" E@ A  F  (" ( O@ ( j-EA  Aj!  A A @A Aɘ"A6 A: A6 A6 A6 A å6 A: A6  ( Aµ!  6  :  6  6 A6 A:   A Aɘ"A6 A: A6 A6 A6 A å6 A: A6A€� ÂA “ÂA°’Â!  6  :  6  6  6  ! ("@  ( 6 ( ™ ( ¥Ò"E@ ("("@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 -:4 ( Á   µ E@  ¸ ! ("Ak("A© F@  ÷  A±F@# £"- (A  "  " Aä ! ("Ak("A© F@  ø  A±F@ ×  ! (  ¥ÒAG" (  ¥Ò"E@ E" (("E A   - -GA ) )R A - + +aA A E@ @ (  ¥Ò"E@ (("@ ($( Ak!@ AN@  ($"( O@ ( Atj("E@ A!A ("( "E ALr  (!@  H@  Atj( F@   Aj!  A AN@ ( („A ($"( "    H" k" AJ"A AJ"At" A¦˜! AAϘ" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A   Atj  kAtü   k"AtjA Atü  6 Ak!   ("Ak("A© F@  ù  A A±F  " ( A E@ (ß  (!A!@ ( J@  (0 ( Atj(¨  Aj!  A "A AN!  ( O@ ( Atj("E@ -E@ A:ó " )B|7 ("  ö (( E@AÀ“ (å ÂAð—­  ("( E@ (("E@ ( ( ( (æ "-@ ("-E@ A:ó " )B|7 (- @ó " ) B|7 A€œ6( A€œžAA•˜"A: A6 A� 6 A6 A�™6 A�™ž (  -A A´˜"A6 A6 A6 (!  6  6 A6 A A´˜"A6 A6 A6A€� ÂAÀ� (ÂAðŽÂ!  6 A6  6  ™ (  ¥Ò"E@ ("("@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( Ò ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s" (qAtj(!@ @ ("AqE@  ( F  A~q!  A "@  6 (A l Aj Ÿ ( " (F@ ( AlAmH ( (AtAr ü (! ("Aj6  A lj" 6  6 (A l Aj Ÿ (Aj6  (  (qAtj"(6 6 ¼AA¦˜ Aj"At"AüÿÿÿK@ A¦˜!AA¦˜ AtAm"A l"AüÿÿÿK@ A¦˜! (" (A lj! !@  G@ (AqE@  ("6  (6    A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj"(6  6 A j! A j!  6 ž 6 6 ž 6 (6  (8"( ( AFAAA E AFr A Fr A Fr AFr "A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E@ (8  AF@AAA€A€AÿAÿÅ  E AFr A Fr A Fr AFr@AAAÿAAÿAÿÅ  AAAÿAÿAÿAÿÅ û  (8"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ ( …O$} (!#A�¥ÁkAI@ #Ak"$ A6 A6 A6 A6 A6 (t! @ ( J@ ( Atj("A6À A6Ä A6È Aj!  @ (è"( "E #¸ ( (³A (" AM³•µ!&!%!$!#!"!!! !!!!!!!!"         ! " # $ % & ( ´!&!%!$!#!"!!! !!!!!!!!"         ! " # $ % &ã!&!%!$!#!"!!! !!!!!!!!"         ! " # $ % &CCAÔ ( "*!' *!(  *8  (8  '8 ( ! ($! (""(  AAA™ A6 (  AAA™ A6 (  AAA™ A6 (ð!A!@  H@@ ( Atj(" (Ô GA -Ð A (È!A! @ AH ( HA @ ( Atj(@A  Aj!  A  *@!' *D!( *H!) *L!* *P!+ *T!,A! #¸(!@ AH@  At"Atj*"- * ' -C`”"-‹  AjAtj*". + ( .C`”".‹’  AjAtj*"/ , ) /C`”"/‹’  AjAtj*"0‹’C·Ñ¸” - .’ /’ 0’^@A  Aj!  A A E } * *X“"' '” * *\“"' '”’ * *`“"' '”’‘"(!'C€? -¸ ' *¼_A C *À")C_ CC€? ' *¼“ )•“"'C_ C€? 'C€?`  ' '”C@@ ' '’“” "'C_ ( " Aj" (AvK@  AA™ ( Atj 6  6 ( " Aj" (AvK@ AA™ ( Atj (8 6 ( " Aj" (AvK@ AA™ ( Atj '8 6 Aj!   ( "6 AÀL@A!@  H@ At" (j (j(6 ( j (j*8 Aj!   6 ((! A!A! @ H@ (" Atj*!' AÀF ' AkAtj(At j*`A E@A?  AÀN!@ AJ ' ( AkAtj(Atj*]A @ Atj Ak"Atj(6  Atj 6 Aj  AÀH! Aj!  A! @  J@ Atj(! !@ AJ AkAtj(HA @ Atj Ak"Atj(6  Atj 6 Aj!  A!@  H@ At" (j ( j(" Atj(6 ( j ( Atj*8 Aj!   6   k6 ("E (,! (0!A!A! @ H@ ( At" (j(Atj("*T!' *P!( *L!) *H!* *D!+ Al"Atj *@8 AjAtj +8 AjAtj *8 AjAtj )8 AjAtj (8 AjAtj '8 j (Ä6  (Är! Aj!  A! @ ( J@ ( Atj("(¨" qE ( ErA (Ì G E@ -È! *°!' *´!( *¸!) *¼!* *À!+ *Ä!,A!A! @ H@@   Atj(qE @ * Al" Atj*]A ' AjAtj*^ A + AjAtj*] A ( AjAtj*^ A , AjAtj*] A ) AjAtj*^  Aj"AL@ (À" AH@ Aÿq AqAtt! AH@  (Ä r6Ä  (È r6È  Aj6À Aj!  AJ@  (Aj6 AJ@  (Aj6 Aj!  #Aj$ ! A6$ A6(@ (è(  -|A A! A (è" (," (GA (( ( AtG @ ( J@ ( Atj((È! A!@ AH@ (( At jAtj(!  ( H ( Atj(A " A  ÄA E A    Aj!  Aj!  A  (@ (,GA A (D (|Ä E@ (," (AAÿÿÿÿŸ! (0" ( "A AL!  k"A AJ" At" A¦˜!AA‰˜" 6  ž  6  6  6 (! ( Atj!A! At! @  I@  j  j(" 6  ž Aj!  ! (<Ã! (è! A! ("( ! AAA™ AJ@ (A Atü A6 ("( ! AAA™ AJ@ (A Atü A6 ("(  AAA™ A6 ( "(  AAA™ A6 ("(  AAA™ A6 ("( ! AAA™ AJ@ (A Atü A6 A: 6 ž@ ( J@ ( Atj((È!A!@ AH@  ( "H  O@ ( Atj(A ! ("( " Aj! (AvK@  AA™ ( Atj" 6  At Ÿ  6 @ E@ ("( " Aj!  (AvK@  AA™ ( AtjA6   AFA "ä ! ( �"AH@ (( AN@ A: ("( ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( " Aj! (AvK@  AA™ ( Atj" 6  At Ÿ  6 ("( " Aj!  (K@  AA™ ( j :  6 ( "( " Aj!  (AvK@  AA™ ( Atj 6  6 ("( " Aj!  (AvK@  AA™ ( Atj 6  6 Aj!  Aj!  (H"( ! AAA™ AJ@ (A Atü A6 (,6@ (|"6D ž -@ (H"( "Aj!  (AvK@  AA™ ( Atj"A€¾6  At A€¾Ÿ  6 (( ! (0"( ! AAA™ AJ@ (A Atü A6 (4"(  AAA™ A6 (8"(  AAA™ A6 (<"(  AAA™ A6 A!@  J@  ("( O@ ( Atj("E@  (" ( O@   ( j-"  (  ( " ( O@ ( Atj(AF ( ( (| (Hù! -4! ((" (AJ  ä " ¥ÒAGA !  ( "H  O@ ( Atj("E@   ("( O@ ( Atj("E@ ÄA   ( O@ ( Atj("E@  FA "E@ ÿ (0"( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (4"( " Aj! (K@  AA™ ( jA  A E:  6 (8"( " Aj! (K@  AA™ ( j :  6 (”CB”•C’ 9•ˆ C?”C€?’" C @^ C]" ¨! ²“! AN@A!C! ’ C—‘"” ²C=”CÛÉ@”"þ ”! At" (AvO@ ( Atj 8 ’ ” ý ”! Aj" (AvO@ ( Atj 8 Aj" (AvO@ ( Atj 8 Aj" (AvO@ ( Atj ²8 Aj" (AvO@ ( Atj C€? “”8 Aj" (AvO@ ( Atj ”8 ’! Aj! Aj!  C€? •C C^8  ²8  ³8 CÀ@8 AA¦˜A�A¦˜!A A˜"A6 A6 A6 Ak(" I@  6  6  6 * ! *! *! *! (AkAH@ ( 8 (AkAH@ ( 8 (AkAH@ ( 8 (AkA H@ ( 8 A!@ ("(Av J@  (AvO@ At" Aj! (j*! Av  (AkJr@ ( j 8 Aj!  A Aõ˜"A6 A6 A: Ak(!  #!FAA  Aî 6  6 A: ("@  Aä (E@ (\"( ! AAA™ AJ@ (A Atü A6 A (\"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A •AA‡˜"A6 AAAˆA¤6 AAA‰A¤6 AAAŠA¤6  (AA¦˜!AA‹˜" 6  ž  6 A6 A6 "(AA„˜"A6 A6 A6 A6  (\"( O@ ( Atj("E@ A6  6 A6 A6 6 AA¦˜!AAŒ˜" 6  ž  6 A6 A6 (AA…˜"A6 A6 A6 6 6 AA¦˜!AA�˜" 6 ž 6 A6 A6 À ô (t" 6  ž A6  E6 A6 C8 C8 C8 C€?8 (xA6 (xA ´6  (x (|Ã"( (W ( (³ (³ (³ ( ³CC€?a ( ( ( ( ( ` (A (AAV (AAAAU ("@ !#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  (T ( A6 x (( (W 6 ž A: A:$ ((A ((AAV ((A ( (AAV ((A ((P(AAV \ (("A (@  Œ"@ ( G@ £ A:$ A:% ( G@ £ A:$ à ("A - -$A   ( FA @ ("A ("@ (!#V  (l6 (A (#VAV ((A (A_ - ((x ((| "E@ (!#V  (l6 (A (#VAV P ( "AL@ ("(! A   Aj Ak"Atü  AtjA6 6  ýD} 6 6 6Œ 6 6ä A€6 AAAAAAž !AA‡˜"A6 A6 A6 A6 AA÷˜"A6 A6 A6 A6 A6 A6  ¸!  6  6 A6 A6 6À AÀ 6Ä (ÄAA÷˜"A6 A6 A6 A6 A6 A6 ¸6È (Ä!AA÷˜"A6 A6 A6 A6 A6 A6 A6  ¸6Ì ("- (A€ !A€ !@  K A€Oq@ Av!  A A€O6ÔAÀAò˜"À ”6A,Aø˜"A6 A6 A6 A� 6 A6 A: A6 A6 A6 AA¦˜!AAØ" 6  ž  6 A6 A6  6$AA¦˜!AA‰˜" 6  ž  6 A6 A6  6(AA¦˜!AAë˜" 6  ž  6 A6 A6 (à6 AA ¸ 6 (!AA÷˜"A6 A6 A6 A6 A6 A6 A6 A6   ¸6  (6AAú˜"A6  AAAAAAACB¹6 6 A!A„A…˜"A6 A6 A6AAݘ"A6 A6 A6 A6 AAAÞA¤6@ AH@ (!A€Aܘ""C8 C8 C8 C8 C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ C8D C8H C8L C8P C8T C8X C8\ C8` C8d C8h C8l A6p A6t A6x A6| ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6 AA�˜"AAA‚A¤6AAô˜ A Aô˜6 A6 A6 A:A!@ AH@ (!AˆA€˜""A� 6 A� 6 A6 A: A: A°*!A¬*! A¨*! A¤*! A *! Aœ*! A˜*!A”*!A�*!AŒ*!Aˆ*!A„*!A€*!Aü*!Aø*! Aô*8  8  8  8  8  8$  8(  8,  80  84  88  8<  8@  8D  8H  8L C8P C8T C8X C8\ C8` C8d C8h A6l A6p A:t A:u A6x C8| C8€ C8„ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6A,Aƒ˜""A6A˜AÛ˜"ž  6AA¦˜!AAá˜" 6  ž  6 A6 A6  6 C8 C8 C8AA¦˜!AAë˜" 6  ž  6 A6 A6  6AAŘ"A€A¦˜"6  6 A€6 A6  6AAƘ"A A¦˜"6  6 A 6 A6  6 AA¦˜!AAߘ" 6  ž  6 A6 A6  6$ AA¦˜!AAà˜" 6  ž  6 A6 A6 6(A4AΘ"C8 C8 C8 C8 C8 C8 C8 C8 C8 A6$ C8( C8, C80 C8 C8 C8 C8 C8 C€¿8 C8 C€?8 C8 A6$ C´B8( C ×#<8, C€?80A°Aܘ"œ A€6 A€6  6  6  6AA¬˜"Á  6A,A®˜"ª  6 A6 A6$ A6( A6, A60AA¦˜!AA‰˜" 6  ž  6 A6 A6  64 A:8 A6< A6@ A6D A6H A6L A:P A6TAA¦˜!AA‰˜" 6  ž  6 A6 A6  6XAA¦˜!AAˆ˜" 6  ž  6 A6 A6  6\ A6`AA¦˜!AA¹˜" 6  ž  6 A6 A6  6d A6hAA¦˜!AA¹˜" 6  ž  6 A6 A6  6lAA¦˜!AA†˜" 6  ž  6 A6 A6  6pA Aš˜"A6 A6 A6 A6 C8 C8 C8 C€?8  6tAA›˜"AAAœA¤6 A6 A6 A6 C€?8 A� 6  6xAA�˜"A6 A6  6|AAÿ˜"A6 A6 A6 A6  6€ AAAAAAº 6( (("(@AAAAAAAª !AA¦˜AA¦˜! ( A(  Ak(:  ((AA÷˜"A6 A6 A6 A6 A6 A6 ¸6,  (,6AAú˜"A6  AAAAAAACB¹6 (A: (x"AA¦˜!AAœ˜" 6  ž  6 A6 A6 ( (t6 6  žA!@ AH@ (p"( "Aj!  (AvK@  AA™ ( Atj"A6  At AŸ  6 Aj!  6$A!A”AÀ˜"A6 A6 A6A$Aà˜""A6 A6 A6 A6 C8 C8 C8 C8 AA¦˜!AAá˜" 6  ž  6 A6 A6 6 @ AÀH@ ( !A°Aߘ""C8 C8 C8 C8 C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ C8D C8H C8L C8P C8T C8X C8\ C8` C8d C8h C8l C8p C8t C8x C8| C8€ C8„ C8ˆ C8Œ A6� A6” A6˜ A6œ A6  A6¤ A6¨ A6¬ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6 AA¦˜ A ØA¦˜6 A6A4A�˜!AAô˜ A€Aô˜6AA-˜ A€A-˜6 A6 A6 A6 A6 A6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6AA¦˜!AA.˜" 6  ž  6 A6 A6  6 AA¦˜!AA.˜" 6  ž  6 A6 A6  6$AAô˜ A€Aô˜6(AA-˜ A€ A-˜6,AA ˜ A€A ˜60  6 A6 A6 A6$ A6(A A¿˜"!AA¦˜!AA˜" 6  ž  6 A6 A6  6AA¦˜!AA˜" 6  ž  6 A6 A6  6AA¦˜!AAë˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6 AA¦˜!AA¤˜" 6  ž  6 A6 A6  6 A: A6 AA¦˜!AA­˜" 6  ž  6 A6 A6 6  6,AA¦˜!AA‰˜" 6  ž  6 A6 A6  60AA¦˜!AAë˜" 6  ž  6 A6 A6  64AA¦˜!AAë˜" 6  ž  6 A6 A6  68AA¦˜!AAë˜" 6  ž  6 A6 A6  6< A6@ A� 6DAA¦˜!AA˜" 6  ž  6 A6 A6  6H A6L A6PAA¦˜!AAÁ˜" 6  ž  6 A6 A6  6TAA¦˜!AA˜" 6  ž  6 A6 A6  6X A:\ A6` A6d A6h A6lAA¦˜!AAˆ˜" 6  ž  6 A6 A6  6pAA¦˜!AAº˜" 6  ž  6 A6 A6  6tAA�˜"A6 A6  6x A:| A:} A:~ A:AA¦˜!AAØ" 6  ž  6 A6 A6  6€AA¦˜!AA‰˜" 6  ž  6 A6 A6  6„AA¦˜!AA¹˜" 6  ž  6 A6 A6  6ˆ A6Œ A6�A Aö˜"A6 A6 A6 A6 A6 A: A6 A6 A6 A6 A6 A6 A6 A6 A6 A:AAø˜"A6 A6 A6 A6 A6 A6 A6   ·6Œ (Œ"(@AAAAAAAª !AA¦˜AA¦˜! ( A(  Ak(: AA÷˜"A6 A6 A6 A6 A6 A6 A6 A6  (Œ ¸6�  (�6AAú˜"A6  AAAAAAACB¹6A A˜"A6 A6 A6 ("Ak("  Ak(" A€€€€xF"I@  6  6  6  6 6(A$A®˜"!A0A‘˜"!AA¦˜!AA¤˜" 6  ž  6 A6 A6  6 A6 A6A(A�˜"A6 A6 A6 A6 A6 A6 A6 B7  6 AA¦˜!AA’˜" 6  ž  6 A6 A6  6AA¦˜!AA“˜" 6  ž  6 A6 A6  6 A6 B7 AA¦˜!AAÒ˜" 6  ž  6 A6 A6 6(  6 A6AA¦˜!AA¯˜" 6  ž  6 A6 A6  6AA¦˜!AA°˜" 6  ž  6 A6 A6  6 A6 A6 A: A: A:AA¦˜!AA±˜" 6  ž  6 A6 A6  6 AA¦˜!AA²˜" 6  ž  6 A6 A6 6  (( 6 60 (°6¸A A˜"A6 A6 A6 (Ä"Ak("  Ak(" A€€€€xF"I@  6  6  6 6ÈA A˜"A6 A6 A6 (À"Ak("  Ak(" A€€€€xF"I@  6  6  6 6ÄA A˜"A6 A6 A6 (È"Ak("  Ak(" A€€€€xF"I@  6  6  6 6ÌA A˜"A6 A6 A6 (Ô"Ak(  6  6 A6 6ØA Aõ˜"A6 A6 A:AA¦˜AÐßA¦˜!  #!FAAAÐß Aî 6 AÐß6 A: ("@  Aä 6˜A A˜"A6 A6 A6 (œ"Ak("  Ak(" A€€€€xF"I@  6  6  6 6 AˆAÙ˜"çAA¦˜A�A¦˜! A A˜"A6 A6 A6 Ak(" I@  6  6  6 ¾ 6Ü (´"AA¦˜!AAœ˜" 6  ž  6 A6 A6 6  ž (à"AA¦˜!AAœ˜" 6  ž  6 A6 A6 6  ž (¼"AA¦˜!AAœ˜" 6  ž  6 A6 A6 ( (¸6 6  ž (Ä"AA¦˜!AAœ˜" 6  ž  6 A6 A6 ( (À6 6  ž (Ì"AA¦˜!AAœ˜" 6  ž  6 A6 A6 ( (È6 6  ž (Ø"AA¦˜!AAœ˜" 6  ž  6 A6 A6 ( (Ð6 ( (Ô6 6  ž (ä"AA¦˜!AAœ˜" 6  ž  6 A6 A6 ( (Ü6 6  ž (ü"AA¦˜!AAœ˜" 6  ž  6 A6 A6 ( (ø6 6  ž ž (ˆ"(!@ ( J@ ( Atj("(X F (\ FA @  Aj!    Atr!A ("( "E ALr  (!@  J@  Atj( F@   Aj!  A AN@A  (!AAA˜A¤"( (6 ( (6 ( (6 ( (6 AA¦˜!AA˜˜" 6 ž 6 A6 A6 ( ( 6 ( ($6AA¦˜!AA—˜" 6 ž 6 A6 A6 (A8A#D¢ 6AA¦˜!AA—˜" 6 ž 6 A6 A6 (A0A#¦¢ 6AA¦˜!AA—˜" 6 ž 6 A6 A6 (A0A#§¢ 6AA¦˜!AA–˜" 6  ž  6 A6 A6 (A A�˜"A6 A6 A6 6 A6 Až 6AA¦˜!AA–˜" 6 ž 6 A6 A6 (« !A A�˜"A6 A6 A6  6  6  ž 6 (! (!AAá˜"A6 A6 A6 A6 Aš!AAç˜"A6 A: A6 A6 C8 A: A6 A6 CÀ?8  AàÍA�Î  A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AAç˜"A6 A: A6 A6 C8 A: A6 A6 CÀ?8  AàÍA�Î A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AAç˜"A6 A: A6 A6 C8 A: A6 A6 C8 AàÏA€Ð A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AAç˜"A6 A: A6 A6 C8 A: A6 A6 C8 AàÏA€Ð A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AAç˜"A6 A: A6 A6 C8 A: A6 A6 C8 AÐÐAðÐ A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AAç˜"A6 A: A6 A6 C8 A: A6 A6 C8 AÐÐAðÐ A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AA¦˜!AA—˜" 6  ž  6 A6 A6 AAç˜"A6 A: A6 A6 C8 A: A6 A6 C8  A ÒAÀÒ   A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A!A!@ ( J@ A ( Atj((! Aj!  E@A!@ ( J@ ( Atj("(@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6  ž Aj!  A  A¤Aà˜"Ç (! ( ! (! (! (! (! ( ! ($! ((! (,! ( E@ ((" E@ ( AM@ ((" E@ (8! ( AM@ ((" E@ ( AM@ (( " E@ ( AM@ (("E@ ( AM@ (("E@ (L! (P! ( AM@ (("E@  6  6  6  6  6  6  6  6  6  6$  6(  6,  60  64  68  6<  6@  6D  6H  6L  6P  6T  6X  6\  (l"6l  ž  (�"6�  ž  (h"6h  ž  (`"6`  ž  (d6d  "E@ ("( "Aj!  (AvK@  AA™ ( Atj 6  6 A ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  Æ („"( (ˆL@ ª! ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (ˆ" („"( O@ ( Atj("E@ (ˆAj6ˆ  (¬ A6� A6˜  Ð A„AŽ˜"A6 A6 A6 A6 A6 A: A6 A: A6 A:$ A6( A6, A60 A64 A68 A:BSA >§" ( O@ ( Atj( E@  >§"  ( O@ ( Atj("E@  (! (|! (€!A!A! !AA¦˜!AA‰˜" 6  ž  6 A6 A6 A! @ AH@ AF (" E AFr ( ! ( ( " ! ($"( H ( O@ ( Atj(A "@ AFA !@@@@@  A  A  A  A  A r!      ù! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AÀA r  -4! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6¤  à !-!,!+!*!! ! ! !)!(!'!&!%!$!#!"!!! !"!. ! ! ! )!/ (!0 '!1 &!2 %!3 $!4 #!5 "!6 !!7 !8 !9 -!: ,!; +!< *!= "AqE@ (!AÔA²˜"C8 C8 C8 C8 C8 C8 C8 C8 C8 C8$ C8( C8, A60 A64 A68 A6< C8@ C8D C8H C8L A6P  .8  98  88  78  68  58  48  38  28  18$  08(  /8,  60  64  68  6<  =8@  <8D  ;8H  :8L A6P   ‡  AAô˜ AÐAô˜ã !AA¦˜!AAƘ" 6  ž  6 A6 A6 AA¦˜!AA¤˜" 6 ž 6 A6 A6 A!@ AH@  Ak(AvO@  Atj(AN@ ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  A!@ ( J@ Aj! @ ( " J@  M@ ( Atj(" Ak(AvO@  ( O@ ( Atj(" Ak(AvO@  Atj(  Atj(J@  ( O@ ( Atj(! ( O@  ( Atj(º º Aj!  Aj!  A! @ ( J@ ( Atj(" (œ"( O@ ( Atj("    úA "E@  ý! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( E@ Aý! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A! @ ($"( J@ ( O@ ( Atj("E@ A!A ( (( G @ ( J@  ("( O@ ( Atj("E@ A  ( Atj(G  Aj!  A @ ($"( O@ ( Atj("E@ (  Aj!  A!A!A!@ ( J@ ( Atj((" K@ ! ( Atj((" K@ ! Aj!  AA ˜"A€  A€O6 A€  A€O6AA¦˜!AAƘ" 6 ž 6 A6 A6 A!@ ( J@ Ak(AvE@ Ak(AvAM@ ( Atj( ( (â ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  (! © ! ( !AA÷˜"A6 A6 A6 A6 A6 A6 A6  6  ¸! ( " ( "Aj! (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ($!AAΘ"A6 A6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (!AÔA²˜"C8 C8 C8 C8 C8 C8 C8 C8 C8 C8$ C8( C8, A60 A64 A68 A6< C8@ C8D C8H C8L A6P AAј"Ç 6 È 6    á !  .8  98  88  78  68  58  48  38  28  18$  08(  /8,  60  64  68  6<  =8@  <8D  ;8H  :8L  6P  ‡ œ (ä"@ (ø >§ ($œ A! Aj!  Aj!  (ä! @ (€Aj6€ AG q@ („! (ˆ!A!@ ("( J@  ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@ ( "( J@  ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (› ( › A!@ (€"( J@ (!  ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Ö" (€! („! (x"( " (ü"( J@ ( !  AA™  J@ ( AtjA  kAtü  6 ( !  AA™  J@ ( AtjA  kAtü  6 (   AA™  6 A:ˆ (AF -iA  -hA !@  J@A  At" (j("(¨! ( j"A6  ( At AŸ  (j"A6  ( At AŸ ( jA:@ E (¬"Er E@ (ì"E@#Ã"E@AA©˜"A6 $à  (! Ak("Añ F@  Ú  A A©F  "E@ (! Ak("Añ F@AA  Ú  A A©F  AF! ( j :   (!A! (ô!@ ( J@ ( Atj("( F (( (ÄA  ( (Œ(XFA  ( (Œ(\FA @   Aj!  (Œ!A4A»˜"A6 A6 A6 A6 AA¦˜!AA˜˜" 6  ž  6 A6 A6 (A6 (A6 (A6 (A6  6 A:AA¦˜!AA¼˜" 6  ž  6 A6 A6  6AA¦˜!AAë˜" 6  ž  6 A6 A6  6 A: A6$AA¦˜!AA½˜" 6  ž  6 A6 A6  6(AA¦˜!AA¾˜" 6  ž  6 A6 A6  6, A60 (X! (\!  6  6  6  6 A!@ A H@ ("( "Aj!  (AvK@  AA™ ( Atj"A6  At AŸ  6 ("( "Aj!  (K@  AA™ ( jA:  6 Aj!  AA¦˜!AAý˜" 6  ž  6 A6 A6 A ¾!AA¦™"A°›(6AAý˜" 6  ž  6 A6 A6 A ¾!AA¦˜!AAý˜" 6  ž  6 A6 A6 A ¾! AAA¦˜!AAý˜" 6  ž  6 A6 A6 ¾! (A œ (A œ (A œ (A œ  AGA A A : -E@ A:  (ø6$ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  "-E@ -  -ŠA E@ A:Š ("( "Aj!  (AvK@  AA™ ( Atj"AÐç6  At AÐçŸ  6   (ø6$ (! (ð! (|! (! (ø! (¤! (¨!A! (¬"E@ (,!@@  (,"( N  ( Atj("(F@ ( GA ( Ä E@ (" @ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ( ! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (, ð   6 ( (GA ( ((G @    (    Aj!  (" (H!A Aõ˜"A6 A6 A:A  AL! #!A AAî A 6  6 A: ("@  Aä !AAŒ˜"A6 A6 A6 A6 Aš!A! @ (D"( J@ ( M@ ( Atj("E@ (A GA (DAH E@ ( ((Ä@ (D  ( (A ¡ "AHA  ((D" ( O@ ( Atj("E@ (D "AN  (( HA   (" ( O@ ( Atj(A "   ( " ( H  ( O@ ( j-A  (AqAA ("Aq A Aq A A q A ´  ù  A ("Aq A Aq A A q A ´ ! AA…˜"A6 A6  (H6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  AA�˜"A6 A6 A6 A6 Aš!A! @ (P( J@AA†˜" A6 A6 (LAj j! (P"( O@  ( Atj(! @ ("( L@ ( "Aj" (AvK@  AA™ ( Atj"A6  At AŸ  6  ("( O@ ( Atj("@   AA´˜"A6 A6 A6 A6 A6 CB8 AA Aq6  Au" E AFr AFrE6  (6 A6 E AFr@ C8 AF@ A6 AAú˜" A6 ( ( ( ( " A ( *¹! ( œ  (Aj6  ! 6 6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  AA‡˜"A6 AAAˆA¤6 AAA‰A¤6 AAAŠA¤6  ("( AM@ (("E@ AA¦˜!AA‹˜" 6 ž 6 A6 A6 (AA„˜"A6 A6 A6 A6 A6  6 A6 A6 6  À"( (A E@ (@ Á ("@ @ !#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 A  A(A·˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ (!  6  6  (6  6  6  6  6  6      (,"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  "E@ A: -  -ŠA E@ A:Š ("( "Aj!  (AvK@  AA™ ( Atj"AÐç6  At AÐçŸ  6  At" (j" 6  ( At  Ÿ  (j" 6  ( At  Ÿ A:ˆ Aj!  :‰ ¶} -ˆE@ (è"E@A Aõ˜"A6 A6 A: #!AAÀAAî A 6 AÀ6 A: ("@  Aä  6è  ž } *�" CaE] C`q C  “C\   CaE•ŽCaE”“"C CaE] C`q  (¼ž (ȸ (Ä"Ak(! -@ ­BÀT@ 5BÀT@ (A AÀ\ “4 BSA (ü( §L A (ü( §Atj( !@ ( "E BY (€( §JA  §" (€" ( O@ ( Atj(A "E Err ("   Ak(AÍFA E@ A "  (A !  (A "E Er  (Ì"A (" (ˆ" ( H ( O@ AA ( Atj("A "!A - (!  AF@ -2A -8 -9A  (AGA E  AF@ -8 -9A  (AGA E  A EA  Al j" (" ( O@ ( j-@  (" ( O@ ( Atj(  ( A© " (! A4A•˜" È (" 6 ž Aàê AF A ë AF Aàë " 6 žA�é E AÀé AF Aðé AF A°êA -:A -9  " @ (" 6 ž 6 ž A6 AA–˜" A6 A6 A6 A6 Aš! A! @ AF@A A�˜" A6 A6 A6 A6 A6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  AF@A A�˜" A6 A6 A6 A6 A6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A A�˜" A6 A6 A6 A6 A6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A A�˜"A6 A6 A6  (6  -8 -9A  (A AAŽ˜" A6 A6 A6 A6 A6 A6 A6 A6@@@@@@ (Ak A6 A6 A6 A6  A6 A6 A6 A6 A6 A6  A6 A6 A6 A6  A6 A6 A6 A6  A6 A6 A6 A6 A " 6  ž ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ( ! 6 ž A8A#D¢ ! AA#{¢ ! AF@AA¦˜!AA—˜" 6 ž 6 A6 A6 ( 6 (AÀA#¢¢ 6 ( 6 (A A#ž¢ 6  AF@A A¦˜!AA—˜" 6 ž 6 A 6 A6 ( 6 (AA#·¢ 6 ( 6  AA¦˜!AA—˜" 6 ž 6 A6 A6 ( 6 ( 6 " 6 ž (" 6 ž A6 A6 A6$ A6( AF@AAç˜" A6 A: A6 A6 C8 A: A6 A6 CÀ?8 A6  -8 -9A  (AGA E (" AFr AGq! @ -! AAç˜" A6 A: A6 A6 C8 A: AA 6 A6 C8  -! AAç˜" A6 A: A6 A6 C8 : AA 6 A6 CÀ?8 ! A(A”˜" É (6 (6 -: ( 6 *8 C8 6, ž 60A A™˜" A6 AAA˜A¤6 A: Â"  (A E@ A: A  (  œ (0Aj60 "E@ -  -ŠA E@ A:Š ("( "Aj!  (AvK@ AA™ ( Atj"AÐç6 At AÐçŸ 6  õ "E @  (("  Ak(A÷FA E@ (A A ! (¨! (8! (4"A (Ak(AÀm ! @  Ak(A÷FA E@ A ( F @ (  A68 @ (! ( " Aj" (AvK@ AA™ ( Atj" 6 At Ÿ 6  (" (" @#! @ @ # Ak"A lj" (F@ #I@#Ak$ ##A lj" A ü #Ak$ ##A ljA ü  Ak!  ( A6 E@AA¦˜ A AJAt"AüÿÿÿK@ A¦˜!A A˜" A6 A6 A6 Ak(" I@ 6 6 6A! @ H@ CCCC€ Aj!  A Ak(E A Aõ˜" A6 A6 A: Ak(! #!FAA Aî 6 6 A: ("@ Aä A (E AA÷˜"A6 A6 A6  6  6  68  ž "E Er   (ä! A!@ ((" ( J@ ( Atj(" ( F@  Aj!  AÄA¸˜"A6 A6 A6 A6 A6 A6 A6AA¦˜! AA¹˜" 6 ž 6 A6 A6  6AA¦˜! AAˆ˜" 6 ž 6 A6 A6  6 A6$ A6( A6, A60AA¦˜! AAº˜" 6 ž 6 A6 A6  64AA¦˜! AAº˜" 6 ž 6 A6 A6  68 A6< A6@  6 ((" ( " Aj! (AvK@ AA™ ( Atj" 6 At Ÿ 6  ! (t"  (( GA (, (((G A ($  (0 (,GA A @ ($" @ (¬" ( " Aj! (AvK@ AA™ ( Atj" 6 At Ÿ 6 (" ( AM@ ((" E@  (˜ ®" 6$  ž  6(  ž  (((6,  (," 60  ž (< (@ (PGA @ (<" @ (¬" ( " Aj! (AvK@ AA™ ( Atj" 6 At Ÿ 6 (" ( AM@ (( " E@  (8 ( ($ " 6<  ž  (P" 6@  ž (ˆ! AF@A AHA  (ì( N   (ì"( O@ ( Atj(" E@ @ ("( L@ (" ( E@ ((" E@ (( " (ì" ( O@ ( Atj(" E@ ( ( ( ( (Ì (À(Á ! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ( "( " (ì" ( O@ ( Atj(" E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6   ( "( O@ ( Atj("E@  G@ (¬!  (" ( O@ ( Atj(" E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ("( E@ (("E@ (   ( ( ( ( (Ì (À(Á œ (  œ  ("( O@ ( Atj("E@   A (è"E  E@ (�"E@ (Ì! (”" E@ (À(! ("  ( FA  ( FA  ( FA @  @ (¬" ( "Aj! (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (" ( E@ ((" E@   ( ( ( (  Á " 6  ž  6  ž  6  ž  6  ž  ("  ( FA @  @ (¬"( " Aj! (AvK@  AA™ ( Atj" 6  At Ÿ  6 ("( E@ (("E@    ( ( ( ( (Ì (À(Á "6  ž  6  ž  ! A (" E (t" Er  ($!@ (4"( L@ ( " Aj" (AvK@  AA™ ( Atj" A6  At AŸ  6 (8"( " Aj! (AvK@  AA™ ( Atj" A6  At AŸ  6   (4"( O@ ( Atj("   (8"( O@ ( Atj(FA @  @ (¬"( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( AM@ (("E@  ( ®! (4  œ (8  œ   ($ ! (<"E E Err  (A E ( (W (A (AAV#V ( ( l6 (A (#VAV ("E (A (AAV (A (AAV (A (A_ AF AGq AGq@ (A (A_ (A (A_ (A (A_ AF AGq@ ("@ (A (A_ (A (A_ (A (A_ ( (AA^  (A ! (°! (,"A AL A  ( JA A ( AkAtj((( ((( G  (" (LA A E@  (("( O@ ( A lj(   ( AkAtj(("( O@ ( A lj"( / ( !  (° Á ! (  AA]  A ¤ ~ -iE@A (t! (H!A!@ E  ( "Hq@  O@ ( Atj("E@ (   ("( O@ ( j-  ("( O@ ( Atj(EA A E@A! (¤"( J  ( O@ ( Atj)"BY (Œ( §JA  §" (Œ"( O@ ( j-A A Aj!    ! Aj!  E@A  (Œ" -|@ (x  A:| (! AAA˜A¤" ( (6 ( (6 ( (6 ( (6 A8A#D¢ !AA#{¢ !AA¦˜!AA—˜" 6  ž  6 A6 A6 ( 6 ( 6A A¦˜!AA—˜" 6  ž  6 A 6 A6 ( 6 (AÀA#¢¢ 6 ( 6AAá˜"A6 A6 A6 A6 Aš!@ AH@AA¦˜!AA–˜" 6  ž  6 A6 A6 ( (X!A A�˜"A6 A6 A6  6 A6 Až 6AAç˜"A6 A: A6 A6 C8 A: A6 A6 CÀ?8 AðÿAÀÿ "A ð   "   (\A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AA–˜" 6 ž 6 A6 A6 ( (X!« !A A�˜"A6 A6 A6  6  6  ž 6AAç˜"A6 A: A6 A6 C8 A: A6 A6 CÀ?8 A ð   (\A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AA–˜" 6  ž  6 A6 A6 (A A�˜"A6 A6 A6 A6 A6 Až 6AAç˜"A6 A: A6 A6 C8 A: A6 A6 C8 Aàñ   AA® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAA–A¤"(A¬ 6 (A¬ 6 AÐò  AAç˜"A6 A: A6 A6 C8 A: A6 A6 C8 AA® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A�ó ¯ ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!A!@ ( J@ A ( Atj((! Aj!  E@A!@ ( J@ ( Atj("(@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6  ž Aj!  A  AAÛ˜""A6 A6AAÚ˜" A6 A6 A6 A6 A6 ( E@ (("E@ ( AM@ (("E@ ( AM@ (("E@ ( AM@ (( "E@ ( AM@ (("E@ 6 6 6 6 6AAÚ˜"A6 A6 A6 A6 A6 ( AM@ (("E@ ( AM@ (("E@ ( AM@ (("E@ ( AM@ (( "E@ ( A M@ (($"E@  6  6  6  6  6  6  6 6x ž  "E@ ("( "Aj!  (AvK@  AA™ ( Atj"A ˆ6  At A ˆŸ  6  É  -hA -j E@A (t! (H(!A! ( J  ( O@ ( j-A ( Atj("-˜ (ÌA A (  A Aj!  A E@A  (Œ"-„@ (€  A:„ (!AAA˜A¤" ( (6 ( (6 ( (6 ( (6 A8A#D¢ !AA¦˜!AA—˜" 6  ž  6 A6 A6 ( 6AA¦˜!AA—˜" 6 ž 6 A6 A6 ( 6 (AA#{¢ 6AAç˜" A6 A: A6 A6 C8 A: A6 A6 C8AAá˜"A6 A6 A6 A6 Aš!AA¦˜!AA–˜" 6  ž  6 A6 A6 ( (X!« !A A�˜"A6 A6 A6  6  6  ž 6 AàÍA�Î   (\A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AA–˜" 6  ž  6 A6 A6 ( (X!« !A A�˜"A6 A6 A6  6  6  ž 6 AÀÿA ð  (\A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AA–˜" 6  ž  6 A6 A6 (A A�˜"A6 A6 A6 A6 A6 Až 6 AàÍA Ï   AA® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AA–˜" 6  ž  6 A6 A6 (A A�˜"A6 A6 A6 A6 A6 Až 6 AÀÿAàñ  AA® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A!A!@ ( J@ A ( Atj((! Aj!  E@A!@ ( J@ ( Atj("(@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6  ž Aj!  A  AAܘ"A6 A6 A6 A6 ( E@ (("E@ ( AM@ (("E@ ( AM@ (("E@ ( AM@ (( "E@  6  6  6  6  6€  ž  "A -˜ E@ A:˜ ("( "Aj!  (AvK@  AA™ ( Atj"AàŸ6  At AàŸŸ  6  Æ  ~ (t! (H(! (! @ ( J@ ( O@@ ( j- ( Atj(""-˜ (ÌA A ( AG E  (" ((ˆ"( H ( Atj(A "6  ž  6 ( "E ("  Ak(AÍFA E@ A " (A !  (A "E Er@ A!A ( " -hA E A -iE  (œAH@ (((  A!@  ((( H@ Aj  (œAHA  (¤"( H ( Atj)BYA ! Aj!   (Xj6X  -iE@  (¤  (¥ (A (A_ ( (AA^ (A (°"AL A (,"  ( JA A ( AkAtj((( ((( G  ("  (LA E@ ($  (," ( AkAtj("-  ( ((  ($ AA (°"AL A (,"  ( JA A ( AkAtj((( ((( G  ("  (LA  -d (l ( ( ! (," @A!@  AkH@ ( Atj("-  ( (( j! Aj!  A AA] (PAj6P  A! A!@  ((( H@  (¤"( O@ ( Atj)! (�" BY (Œ( §JA  §" (Œ" ( O@ ( j-A A  (A AG" ( ( !  ( GA @  ¤  (¥ (A (A_ ( (AA^A!  -$! õ " (AA  (A_AA EA E@  BS@ ((  §" (ü"( O@ ( Atj("  (( "6  ž ((A (AAV (°! (,"A AL A   ( JA A ( AkAtj((( ((( G  ("   (LA A E@  (("( O@ ( A lj(   ( AkAtj(("( O@ ( A lj"( / ( !  (° Á ! ( A AA] (PAj6P Aj!  Aj!  È  (Ü" ( !  ( FA  -A EA @A (t! (H(!A! ( J ( Atj(!  ( O@ ( j-A (” -˜ (ÌA A (  A A  û AF A Aj!  A E@A  (Œ"-Œ@ (ˆ  A:Œ (! AAA˜A¤"( (6 ( (6 ( (6 ( (6 A A¦˜!AA—˜" 6  ž  6 A 6 A6 (A8A#D¢ 6 (AA#{¢ 6 (AA#Þ¢ 6AA¦˜!AA–˜" 6  ž  6 A6 A6 ( (X!A A�˜"A6 A6 A6  6 A6 Až 6AA¦˜!AA–˜" 6  ž  6 A6 A6 ( (X!« !A A�˜"A6 A6 A6  6  6  ž 6AAá˜"A6 A6 A6 A6 Aš!AAç˜"A6 A: A6 A6 C8 A: A6 A6 CÀ?8  Að€Aà�    (\A® ! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AAç˜"A6 A: A6 A6 C8 A: A6 A6 CÀ?8  Að€Aà�    (\A® ! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AAç˜"A6 A: A6 A6 C8 A: A6 A6 CÀ?8  Að€A �    (\A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAç˜"A6 A: A6 A6 C8 A: A6 A6 CÀ?8  Að€A �    (\A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A!A!@ ( J@ A ( Atj((! Aj!  E@A!@ ( J@ ( Atj("(@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6  ž Aj!  A  AAݘ"A6 A6 A6 A6 ( E@ (("E@ ( AM@ (("E@ ( AM@ (("E@ ( AM@ (( "E@  6  6  6  6  6ˆ  ž  "E@ ("( "Aj!  (AvK@ AA™ ( Atj"AÀœ6 At AÀœŸ 6  G (œ"  û AGA @A ( " ÷ A  õ A E@A ù  (t! (H! A! ( J ( Atj((Ì  ("( O@ ( j-  ("( O@ ( Atj(A A A Aj!  A E@A  (Œ"-t@ (p  A:t (!AAA˜A¤"( (6 ( (6 ( (6 ( (6 AA¦˜!AA—˜" 6 ž 6 A6 A6 (A8A#D¢ 6 (AÀA#¢¢ 6AAá˜"A6 A6 A6 A6 Aš!AA¦˜!AA–˜" 6  ž  6 A6 A6 ( (X!A A�˜"A6 A6 A6  6 A6 Až 6AAç˜"A6 A: A6 A6 C8 A: A6 A6 CÀ?8  A°€A�Î   (\A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AA–˜" 6  ž  6 A6 A6 ( (X!« !A A�˜"A6 A6 A6  6  6  ž 6AAç˜"A6 A: A6 A6 C8 A: A6 A6 CÀ?8  A°€A�Î   (\A® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AA–˜" 6  ž  6 A6 A6 (A A�˜"A6 A6 A6 A6 A6 Až 6AAç˜"A6 A: A6 A6 C8 A: A6 A6 C8  A°€A Ï  AA® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAA–A¤"(A¬ 6 (A¬ 6  A°€A€ï AAç˜"A6 A: A6 A6 C8 A: A6 A6 C8 AA® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A°€A  ¯ ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A°€A°ï  ¯ ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A!A!@ ( J@ A ( Atj((! Aj!  E@A!@ ( J@ ( Atj("(@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6  ž Aj!  A  AAÙ˜"A6 A6 A6 A6 A6 A6 ( E@ (("E@ ( AM@ (("E@ ( AM@ (("E@ ( AM@ (( "E@ ( AM@ (("E@ ( AM@ (("E@  6  6  6  6  6  6  6p  ž  "E@ ("( "Aj!  (AvK@  AA™ ( Atj"AЋ6  At AЋŸ  6 A A!@ ( J@ ( Atj((Ì"  ("( O@ ( j-  ("( O@ ( Atj(A A @@ (¨! (("! -,E@A  AA ( (Ak(A   AA ( (Ak(A E" E   Ak(A÷FA E@ A (Ak( ( G A E ( (0Gq A "AF@   Ak(A÷FA E@ (A   E AF@  Ak(A÷FA E@ ("Ak(! (At! ("-@ ­   "­T@ 5 ­T@ (A  \  (06#ÁAj$Á (  AF@ ((" A6(  Ak(A÷FA E@ (A "@ @ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü ! #Ak$ ##A ljA ü  Ak!  ( A6 (E  (Ak(! -,E@A Aõ˜"A6 A6 A:  ("#!FAA  Aî 6  6 A: ("@  Aä (E AA÷˜"A6 A6 A6  6  6(  ž  A Aõ˜"A6 A6 A:  ("#!FAA  Aî 6  6 A: ("@  Aä (E AA÷˜"A6 A6 A6  6  (06  (Ak(6  6(  ž#ÂAj$ Aj!   ³ (è"@ ¯ ( !  6  ž  6  ž  6  6  ž A:  (L"6  ž A6 A6 A6 A:$A,A™˜"A6 A6 A6 A6 A: A6 A6 A6 A6 A:$ A:% A6( ( !  6  6  6  6  (L6 6è ž  (Œ"6(  ž  °R&~} (!@ (l( ( H@A Aõ˜"A6 A6 A: #!AAÀAAî A 6 AÀ6 A: (" @  Aä (l" ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (p! ((  ( ( ( ( (Ì ( (À(Á ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  @ ( J@  ( Atj("* * * *$ *( *, *0 *4 *8 *< *@ *D *H *L *P *T (´Ÿ (ȸ (Ä!  (l"( O@ ( Atj("@ Ak(! -@ ­BÀT@ 5BÀT@ (A AÀ\ Aj!  -ˆ@@ (ì" ( ( H@A Aõ˜"A6 A6 A: #!AAÀAAî A 6 AÀ6 A: ("@  Aä ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  } *�"/ /CaE] /C`q C / /“C\  / /CaE•ŽCaE”“"/C /CaE] /C`q *¼C?^ (¼ž !A!@ ( J@  ( Atj("* * * *$ *( *, *0 *4 *8 *< *@ *D *H *L *P *T (ÀŸ (ȸ (Ä!  (ì"( O@ ( Atj("@ Ak(! -@ ­BÀT@ 5BÀT@ (A AÀ\ Aj!  (t! (H(! (x! -i! ((!! ( !"A! )xB|7x (d!@ ( J@ ( Atj("( F@  )x7     ) )SA ! Aj!  E ( AHr@AàAº˜" A6 B7 A6 A6 A:AAê˜ AAê˜6AA ˜ A€A ˜6 AAô˜ AÀAô˜6$AAô˜ AÀAô˜6( A6,AA¦˜! AAý˜" 6  ž  6 A6 A6 60AA¦˜! AAÒ˜" 6  ž  6 A6 A6 64AA¦˜! AAý˜" 6  ž  6 A6 A6 68AA¦˜! AA»˜" 6  ž  6 A6 A6 6A  (j-E  ( " At"Atj( /¼F  AjAtj( 0¼FA   AjAtj( 1¼FA   AjAtj( 2¼FA   AjAtj( 3¼FA   AjAtj( 4¼FA   AjAtj( 5¼FA   AjAtj( 6¼FA   AjAtj( 7¼FA   A jAtj( 8¼FA   A jAtj( 9¼FA   A jAtj( :¼FA   A jAtj( ;¼FA   A jAtj( <¼FA   AjAtj( =¼FA   AjAtj( >¼FA A ! Aj!  (H(!  (,"  H!A!@  H@@  N@  (,NA (0( Atj"(! A6  r!  ( Atj("A  (,H (0( Atj(AGA E ( Atj("( ! A ( " E A *ðC€?]A - A (´ A (ÌA (ˆ( (J  (" (ˆ" ( O@ ( Atj(A  ("   Ak(AÍFA E@ A "  -A " AG -iE  (ì! A!@  ((( H  (¤( HA @@   Ù E A (¤( Atj)".BSA (ü( .§L A (ü( .§Atj(  A .BY .§" (x"( O@ ( Atj("E@ (AFA E A! A .BY ( .§JA  ( .§Atj(A  Aj!  AG A ! (Ì!  AÿqAF (€A !  (A !  ((A ! A  (,H (0( Atj(A " rE  (0( Atj 6 E   s  r AÿqAFA A (4( j-AF AA (4( j- AÿqGA  (\( Atj(G A (<( Atj( ( GA (@( Atj(G A (D( Atj( (°GA (H( Atj( (¤G A (L( Atj( (œG  (Ì!A At" (P(j(G A  (T(j( (GA (X( Atj( (0G A  *!/ * !0 *!1 *!2 *!3 *!4 * !5 *$!6 *(!7 *,!8 *0!9 *4!: *8!; * (T *k! (\ +k!  (jA: ( " At"Atj /8  AjAtj 08  AjAtj 18  AjAtj 28  AjAtj 38  AjAtj 48  AjAtj 58  AjAtj 68  AjAtj 78  A jAtj 88  A jAtj 98  A jAtj :8  A jAtj ;8  A jAtj <8  AjAtj =8  AjAtj >8 At" ($j 6 (( j 6   Aj!  ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  (T ( A6 $E@ ( !@ AH@ A Aj!  ­ (h!@ ( "AH@ Aj" (AvK@ AA™ ( Atj"A6 At AŸ 6  ( Atj(" GA @ ( jA: ( Atj" 6 ( At  Ÿ ä�}~  (ø†  ³ ((  ( ( (Aþ ($"(! A6 A6$ (!@ AH@  AtjA6 Aj!  A6A (à" (AGA  A (" ( " AN"6A E  -E! @  H@  ( O@ ( Atj("E@  ("( O@ ( Atj("E@ ( (Ä ( (ÄA E@ (!  (" 6  ž  6  ž A6 A: A: @ (Ì" @ ( G@  Ak(AvO@  AtjA6  6  ž A: A:  (@ A6 A: A: E -  ( A * ! *$! *(! *,! *0! *4! *8!! *8\ C?8` CÈB8d CÍÌL?8h C8l A6p C8t C€?8x C€?8| ( " Aj" (AvK@ AA™ ( Atj" 6 At Ÿ 6  ( ! (˜( "AA™  H@ ( AtjA  kAtü 6 A! @ ( J@ (˜"( O@ At" (j("@ -²!  (j(" (6 * ! *!  *8  8  8  *8  *8 * ! *!  *8  8  8 *,! *(!  *$8$  8(  8,  *080  *484  *888  *<8<  A -@:@  *D8D  *H8H  *L8L  *P8P  (T6T *`! *\!  *X8X  8\  8`  *d8d  *h8h  *l8l  (p6p  *t8t  *x8x Aj!   6˜  ž (œ"*! *! (" *8  8  8  - :  - :  *8 *! *!  *8  8  8 *(! *$!  * 8  8$  8( *4! *0!  *,8,  80  84 *@! *  “C[»šó¶! (AkA H@ ( 8 (AkA$H@ (C8$ (AkA(H@ (C8( (AkA,H@ (C8, ( "E@ (D"Ak(! -@ ­B0T@ 5B0T@ (A A0\ (("E@ @ ($"E@  (, –!  (0 (–"E Er    ( ("E@  AÐÚ—E  ("E@   (  A€Û—E   (Aj6  (4 –"E  ("E@   (  A°Û—E   (Aj6   - E@ A: ( "Aj" (AvK@ AA™ ( Atj"A�Ü6 At A�ÜŸ 6 A "E@  (€" ( (GA @AA‡˜"A6 A6 A6 A6 ( ! (! (!  (6  6  6  6 6€ žAA”˜"A: A6 A� 6 A6 A:  6  ž 6„ ž  ("6  ž  (6  ( 6 („"E@ ‡‚<,}~ (¤Aj6¤  (! (¤! ((" -A ((" AM (\ ! (ALAAA (" ANt ! (X" AF (AFA  -ôA *dC€?] A (œ"-„ *”C€?]A A A (( (AÀßÄ ((-A @A ! I!  (XF (\FA  ¨"@   (X"G@  (\F   ¨" @   " 6Œ ž -<A (� G @ (�@ (ðÞ 6� ž :å E@   (H -E× (L (H(Ó (t! (H"(! @  ( H  ( HA @ ( j-E@  ( Atj((Ôr! Aj!  (ô r6ô (0"(( AJ@ (" (((!A! (t" ( " ("( " J! A!@ J@ ( j-E@  ( Atj((Ðr! Aj!  (è!A!@  (H@ ( Atj(" AN ( HA @  ( Atj((Ør! Aj!  ( r6 A6P A6¬ A6T A6X A6\ A6´ -< (@ (° "6¸ ž (!; (!< (! (t!:   Ë! ( " (ܘ ( ! A� 6 Ak(Av@ (" ( "Aj! (AvK@ AA™ ( Atj" 6 At  Ÿ 6  ¬ »"6” ž ½"6œ ž E@  (œAG ( ¼ E@@ („! ( ! A! (t!@ ( J@ ( Atj(A6è Aj!   � ("E ( "*!^ *"C!X *"Y!W ($AF! Y C * * * * * * * »!V!U!T!S!R!Q!P!O!N!M!L!K!J!I!H!G I"E E” M"F"C C”’ Q"D D”’‘"CC^} EC€¿ C•"C”!E D C”!D F C”!C EC€¿!DC!CC !F (€ (4! A!@  H@ (0 Atj*!E !@ AJ E (0 AkAtj(Atj*]A @ Atj Ak"Atj(6  Atj 6 Aj!  A  AN! A!A!@  H@  Atj(Aj Attr! Aj!   A€€€€xr  AJ6  6#ç!#¶" 6  ž  6  ž  W8  X8  ^8  :  F8  C8  D8$  E:(   "6,  ž (0" ( (t( ""ALA AkAÀmAj " A ANl" ("( J@ (   AA™  6 A!@  H@ (( AtjB7 Aj!  A AN6#:! @ (4(  Ak("AÀF@HAj  AóF@A ( ( j" AJ  A AòF  H@ (4! AA²˜" C8 C8 C8 C8 C8 C8 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6   AÀ· (0!A!@  (H@ o (( ( lAtj)|!o Aj!   ($ o§j6$ (0!A!B!o@  (H@ o ((  (lAjAtj)|!o Aj!   (( o§j6( A6 A6 #ç"6,  žA!@  H@#µ" A:È #A�¥ÁkAàI@ #Aàk"$ ( Atj("AG (€( Atj(-´A @ (€( Atj("*œ *  *¤ *¨ *¬ *°!C#Aàj$ C  (ü*$!E ( "*!D *!C  *8  C8  D8 *!D *!C  * E“8  C E“8  D E“8 *!D *!C  * E’8  C E’8  D E’8 -Ô@ *Ð!W *Ì!F *È!E *Ä!D *À!C  *¼8$  C8(  D8,  E80  F84  W88 *!X *!W *,!F *(!E  * "D *$"C C D]8<  W E E W]8@  X F F X]8D * !X *!W *8!F *4!E  *"D *0"C C D^8H  W E E W^8L  X F F X^8P *< *H_ *@ *L_A  *D *P_A @ *D!X *@!W *!F *!E  *<"D *"C C D^8  W E E W^8  X F F X^8 *P!X *L!W *!F *!E  *H"D *"C C D]8  W E E W]8  X F F X]8 * * * * * * !C#Aàj$ C !h!g!f!e!d"c8° d8´ e8¸ f8¼ g8À h8Ä (ø! A6Ø A6Ü A6à A6ä (@#­"A6 A6 A6 A6 A6  AA#»(( Š ( (j6 ( (j6 ($ (j6$ ( " ((J@ 6( (” (j6” At" (j (Ü6 ( j (à6 ( j (Ø6 Aj!  A  AM"> ;l!* < >l!+ (À(!A!  ((XAF (¤ (š "- -DA @ (@ ( (ä * + ( (Ó"@A! !  6,  ž  (t (xA  (€ (t( AjOA  (( (((FA  (0 (,FA A E@  ­ (à@ ($( "(A - @A! ( ! (! (! (! (È"(AkAH@ ( 6 (AkAH@ ( 6 (AkAH@ ( 6 (AkA H@ ( 6 A (" AN! @ AH@ AtAj!  H@  ("( O@ ( Atj("E@   * * * * * * * * * *$ *( *, *0 *4 *8 *<Æ *L!F *H!E *D!D *@!C A@k" Av (AkJr@ ( j C8 Aj"Av  (AkJr@ ( j D8 Aj"Av  (AkJr@ ( j E8 A j"Av  (AkJr@ ( j F8 *\!F *X!E *T!D *P!C AÐj" Av (AkJr@ ( j C8 Aj"Av  (AkJr@ ( j D8 Aj"Av  (AkJr@ ( j E8 A j"Av  (AkJr@ ( j F8 *l!F *h!E *d!D *`!C Aàj" Av (AkJr@ ( j C8 Aj"Av  (AkJr@ ( j D8 Aj"Av  (AkJr@ ( j E8 A j"Av  (AkJr@ ( j F8 (|! (x! (t! (p! Aðj"Av  (AkJr@ ( j 6 Aj"Av  (AkJr@ ( j 6 Aj"Av  (AkJr@ ( j 6 A j"Av  (AkJr@ ( j 6A! @ A€I@ j"Av  (AkJr@ ( jA6 Aj!  Aj!  (Ä" Ak(! ("-@ ­B�T@ 5B�T@ (A A�\  (AG:  -@ ( (œA�¶ A: È -i")@ ¶ · (AF@@ (! (ü! („! (”AG! A! (L" A68 A6< A6@ -i -hA E (t! (x!@ ( J@@ ( NA ( j- ( Atj("( "E  -˜ (ÌA A ( AG A !A!@  ((( H@  (¤"( H~ ( Atj)B "oBSA o 4 Y A (œAHA  (¤"( H ( Atj)BYA  o§" ( O@ ( Atj("E@ (¬EA E@ A ( o§J  ( o§Atj(A @ (8Aj68 (” *œ”"D”C— C“ *¬"C”’ F * D”C— F“ C”’ *  E * D”C— E“ C”’  - @ * * ’C?” *, *8’C?”’ *C?”"C” * *$’C?” *0 *<’C?”’ C” * *(’C?” *4 *@’C?”’ C”  * * * !n!m"l8 m8$ n8( C8,} (œ"*L!FC€? *D"C C” *H"E E”’ F F”’‘•"W W“C[ WC^q@ C W”!D E W”![ F W”  C!DC€? !C  D8  [8  C8 *!D *!C *80 C84 D88 C8< (ø!A!@ AÀH@ At" (@j  (H} (˜( ( j(Atj(*|C 8 Aj!  A! @ J@ At" (j(! ( j(! ( j(! (D(j(" ( j(6€  6„  6ˆ A6Œ@ AF@A°*!ZA¬*!\A¨*!]A¤*!YA *!_Aœ*!`A˜*!aA”*!bA�*!^AŒ*!XAˆ*!WA„*!FA€*!EAü*!DAø*!C Aô*8  C8  D8  E8  F8  W8  X8  ^8  b8  a8$  `8(  _8,  Y80  ]84  \88  Z8< C8@ C8D C8H C8L  *8P C8T C8X C8\ *!D * !C  *8`  C8d  D8h C€@8l *$!Z *![ *!D  *8p  (€( Atj("(AF"}A¬*![A¨*!DA¤*!ZA *!\Aœ*!]A˜*!YA”*!CA�*!_AŒ*!`Aˆ*!aA„*!bA€*!^Aü*!XAø*!WAô*!FA°* *‰ C= ‡?”C®Ga½’ 8  jC.M;_} jCR¸NA” jCUUÕ>‰ C= ‡?”C®Ga½’ 8  kC.M;_} kCR¸NA” kCUUÕ>‰ C= ‡?”C®Ga½’ 8  i8  j8  k8  [8 (¼" AÀâA€ã ,"6 ž 66 6ž @AJ6 AA A ! %A ," A '"$E6 C€?8 ((" (°Ã  ?À"" 6  ž (!# A (AF (œ- A E@  -(T£ A¥ #(AAAAU A6ôA!"A! (<""A6 A6 A6 A6 A: A6 A6 A6 A6 A6$  (ä6  *6  +6  46  %:  (è"6  ž  (ì"6  ž ,@   (AÆ #(" @#!"@ "@ # "Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  "Ak!"  #(T #( #A6 (! (ä! (! (! (@"A6@    * +  Ó!   * + Ñ!A ( " E (" E (" E E Errrr A!"@  "J@ " (( "AkAtj(  ! (( "Atj(" "A ( G A @ @ (0" ( "Aj! (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AA‡˜"A6 AAAˆA¤6 AAA‰A¤6 AAAŠA¤6  AA¦˜!AA‹˜" 6 ž 6 A6 A6 AA¦˜!AAŒ˜" 6 ž 6 A6 A6 (AA…˜"A6 A6 A6  6 6 AA¦˜!AA�˜" 6  ž  6 A6 A6 À! ( " œ "E@  6  ž (4" (( "Atj("6  ž A6 A6 A6 C8 C8 C8 C8 (8A�þ6 ( (8 (<Ã" ( "(W (A (AAV (AAAAU ("@#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  (T ( A6  (@Aj6@ "Aj!"   ! (@(@!"  6  ž   (A 6 (4 96( A - (! (!0 (4"A6A - (AHA A (".E ("/E (" Err @ ! -@ -  A: (!#)AðüÂ!A ( ï " E AA¦˜!AAý˜" 6  ž  6 A6 A6 A A ¾"E  A°ýAAAA² ! AàýAAAA² !AAú˜"A6 AAAAAAACB¹!A Aö˜" A6 A6 A6 A6 A6 A: A6 A6 A6 A6 A6 A6 A: A6AAø˜"A6 A6 A6 A6 A6 A6 A6  ·"(AA÷˜"A6 A6 A6 A6 A6 A6  ¸A "E ( (A  (A ErA ( E@ (" @ @#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6 ž (" @ @#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6  ž (" @ @#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6  (A @ - @ (" @#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 (" @ @#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 A   6  ž  6  ž  6  ž  6$  ž  64  ž  68  ž  6<  ž A:A E  (! @ (@" ( L@ ( "Aj" (AvK@ AA™ ( Atj"A6 At AŸ 6  (@"( M@ ( Atj("@   AÜAî˜""A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A60 A64 A68 A6< A6@ A6D A6H A6L A6P A6T A6XA Aõ˜" A6 A6 A: #!AAÀAAî A 6 AÀ6 A: ("@ Aä  6  (D6X (@ œ  " (D6XA (" AM!A ( " AM! (" ( FA  ( FA @    ‘A Aö˜"A6 A6 A6 A6 A6 A: A6 A6  6  6 A6 A6 A: A6AAø˜"A6 A6 A6 A6 A6 A6 A6A  ·"(E AA÷˜"A6 A6 A6 A6 A6 A6  ¸"(E@ (" @#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6A   6  ž  6  ž  6  6  "3E AA ( " AM -"" ((" Atr!A!@ (," ( J@  ( O@  ( Atj(F@  (0"( O@ ( Atj("E@   Aj!  AAŽ˜" "A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6A! E@A(A”˜"É A6 A6 A: A6 C8 C8 ("E@ A  ("E@ A ü A  AM² " (E  (," ( "Aj!  (AvK@ AA™ ( Atj 6 6 (0" ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 "E !  (GA  (G " @ (" ( FA  ( FA @    ’A Aö˜"A6 A6 A6 A6 A6 A: A6 A6  6  6 A6 A6 A: A6AAø˜"A6 A6 A6 A6 A6 A6 A6A  ·"(E AA÷˜"A6 A6 A6 A6 A6 A6  ¸"(E@ (" @#! @ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6A   6  ž  6  ž  "E   ’ (! (! ( ! (X!#A�¥ÁkAÀI@ #A@j"$ (œ(|! ( !A ( " AM! A (" AM" ³!C  ³8  ³8  C8  ³8 *C—!EC€?C ($AF!D *0!C  *,8  C8  D8  E8 *C—!D * C—!C A€A (" AL" A€N²8  D8$  C8(  A AJ²8,  (œ(60  G Gr64 A68 A6<   (³ (³•µ!V!U!T!S!R!Q!P!O!N!M!L!K!J!I!H"G8  H8  I8  J8  K8  L8  M8  N8  O8  P8$  Q8(  R8,  S80  T84  U88  V8< *Av6 (AkAH@ ( AG6 (AkA H@ ( AG6 A!@ AH@ AtAj"Av  (AkJr@ ( j  E  AF   AF   ³CC•8 AtA j"Av  (AkJr@ ( j  E   AF   AF   ³CC•8 Aj!  (Ä"Ak(! (œ"-@ ­B0T@ 5B0T@ (A A0\ ( " (¤ GA A (¨ G @ @ (¬"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA‡˜"A6 AAAˆA¤6 AAA‰A¤6 AAAŠA¤6   -((AA¦˜!AA‹˜" 6  ž  6 A6 A6 (AA„˜"A6 A6 A6 A6 (œ! A6  6 A6 A6 6 AA¦˜!AAŒ˜" 6  ž  6 A6 A6 (AA…˜"A6 A6 A6  6 6 (AA…˜"A6 A6 A6  6 6 AA¦˜!AA�˜" 6  ž  6 A6 A6 À"6   ž  6¤  ž  6¨  ž -(L AÀäÌA! (”"@@ (È" ( (FA  ( (FA @ ( ¿  @ (! (¤"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (! ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ¾ !AA‡˜"A6 A6 A6 A6 AA÷˜"A6 A6 A6 A6 A6 A6  ¸! (! (!  6  6  6  6  6È  ž !  ; AGA >AKA ½ (Ä"Ak(! (¬"-@ ­B T@ 5B T@ (A A \ (°" (´ GA A (¸ G @ @ (¬"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA‡˜"A6 AAAˆA¤6 AAA‰A¤6 AAAŠA¤6   -(,AA¦˜!AA‹˜" 6  ž  6 A6 A6 (AA„˜"A6 A6 A6 A6 (¬! A6  6 A6 A6 6 AA¦˜!AAŒ˜" 6  ž  6 A6 A6 (AA…˜"A6 A6 A6  6 6 (AA…˜"A6 A6 A6  6 6 AA¦˜!AA�˜" 6  ž  6 A6 A6 À"6°  ž  6´  ž  6¸  ž -(P! (AAðäÍ"( (W (A (AAV (AAAAU ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  (T ( A6 (è"@ ¯ (¼"@  ("6  ž  ("6  ž  ;6  <6 AA‡˜"A6 A6 A6 A6 (!  (6  6  ;6  <6  6¼  ž (À"E@AA”˜"A: A6 A� 6 A6 A:  6  ž  6À  ž  Ê= ~ (t! (H(! (Œ! (! ((! -iA -h"@ @ (!! AGA (ð""-! @@ AN AF" AFq @ A E AFq"E  -‰A @A! (t! (H(! (”AG! (œ"! ( !A! (˜"" (  AAA™ A6 (  AAA™ A6 (  AAA™ A6 (t!@ ( J@@ ( NA ( j- ( Atj("( "  -˜ (ÌA A (  A A A!@  ((( H@  (¤" ( H~ ( Atj)B "%BY %§" (x"( O@ ( Atj(" E@ (AFA  (œAHA  (¤" ( H ( Atj)BYA A @ %§" (x"( O@ ( Atj(" E@ (¨! ( ! @ AJ  ( AkAtj(HA @ Ak!  ( "Aj" (AvK@ AA™ ( AtjA6 6 ( "Aj" (AvK@ AA™ ( AtjA6 6 ( "Aj" (AvK@  AA™ ( AtjA6  6 ( Ak!@  J@ (" At"j  Ak"At"j(6  ("j  j(6  ("j  j(6  At" (j 6 (j 6 (j 6 Aj!  Aj!  (!  (Œ"(4£@ ( J@ At" (j(!  (j(" ( O@ ( Atj(" E@ ( "E@  (" ((ˆ" ( H ( Atj(A " 6  ž  6 (¤"( M@ ( Atj)!% ("  Ak(AÍFA E@ A " (A !  (A !@A A (Ì" (("   Ak(A÷FA E@ (A A "A  E ErE (œAH %BSrA % (x4 Y A %§" (x" ( O@ ( Atj(" E@ (¬ %BSA (ü( %§L A (ü( %§Atj( A E @ (XAj6X  %BSA (ü( %§L A (ü( %§Atj( @ A %  ( A¹" @  6  ž (PAj6P (¬Aj6¬  (œAN@ (XAj6X  AGA A ! (�"  %BY (Œ( %§JA  %§" (Œ"( O@ ( j-A A   ( ( A !  ¾! (4! A @ (! @ (!   %BY (Œ( %§JA  %§" (Œ"( O@ ( j-A @ (  (   ¤  (¥ (A (A_ A @ (A (A_ ( (AA^ @ õ ! ÷ ! @ (A (A_ @ (A (A_   A -$ ! õ " (AA  (A_AA EA   %BS@ ((  %§" (ü"( O@ ( Atj("   (( " 6  ž ((A (AAV (°! (,"A AL A  ( JA A ( AkAtj((( ((( G  (" (LA A E@  ((" ( O@ ( A lj(   ( AkAtj((" ( O@ ( A lj" ( / ( ! A  (A !  (° Á ! (  AA] (PAj6P Aj!     (4 (0 "£ rA -˜ @A! (”! (œ! (t! (Œ! (! (!A! A!@  (H@ (( (( Atj)Bÿÿ?ƒ§"Atj(! (( Atj(! ( Atj(" ( " E@ ("   Ak(AÍFA E@ A " E@ ("#E@ ("$E@ A (Ì" (("   Ak(A÷FA E@ (A A !  G@  (" ((ˆ" ( H ( Atj(A " 6  ž  6 !  (¤" ( O@@ (œAH ( Atj)"%BSrA % (x4 Y A %§" (x"( O@ ( Atj(" E@ (¬ %BSA (ü( %§L A (ü( %§Atj( A E @ (XAj6X  %BSA (ü( %§L A (ü( %§Atj( @ A %   A¹" @  6  žA! (PAj6P (¬Aj6¬  (œAN@ (XAj6X   ¾! AGA A ! (�" %BY (Œ( %§JA  %§" (Œ"( O@ ( j-A A   ( ( A ! (0! A @ (! @ (! A  G   %  %BY (Œ( %§JA  %§" (Œ"( O@ ( j-A @ (  (   AGA  ( H ( j-AFA Ç@  (¥ (A #(A_ A @ (A (A_ ( $(AA^ ! @ õ ! ÷ ! @ (A (A_ @ (A (A_   A -$ ! õ " (AA  (A_AA EA   %BS@ ((  %§" (ü"( O@ ( Atj("  (( "6  ž ((A (AAV A  (A ! (°! (," A AL A   ( JA A ( AkAtj((( ((( G  ("  (LA A E@  (("( O@ ( A lj(   ( AkAtj(("( O@ ( A lj"( / ( ! (° Á ! (   AA] (PAj6P Aj!   A!@ ( J@ " ( O@@ ( j- ( Atj("( " (” -˜ (ÌA A (  A A A ( " E  (ð! A!@  ((( H@ (œAHA  (¤" ( H ( Atj)BYA   (¤" ( O@ -E ( Atj)"%BSrA % (x4 Y A (x( %§Atj(" *LC^ (¬A A (AG A @A  Aj!  A A E  (" ((ˆ" ( H ( Atj(A " 6  ž  6 ("  Ak(AÍFA E@ A " (A !  (A !A A (Ì"  (("  Ak(A÷FA E@ (A A " A  E ErE@ E AGq@ A! A ( " -hA E A -iE  (œAH@ (((  A!@  ((( H@ Aj (œAHA  (¤" ( H ( Atj)BYA ! Aj!  (Xj6X   ¾! A! A A @   ( ( ¤ (A (A_ (!  ¤  (¥ (A (A_ ( (AA^A!@  ((( H@  (¤"( O@@ ( Atj)"%BY %§" (x"( O@ ( Atj("E@ (AFA GA (œAHA  (¤"( H ( Atj)BYA E A A  %BY %§" (x"( O@ ( Atj("E@ (AFA A "-E %BSrA % (x4 Y A (x( %§Atj("*LC^ (¬A A (AG " E AFA E (œAH %BSrA % (x4 Y A %§" (x"( O@ ( Atj("E@ (¬ %BSA (ü( %§L A (ü( %§Atj( A E @ (XAj6X  %BSA (ü( %§L A (ü( %§Atj( @ A %   ! A¹"@  6  ž (PAj6P (¬Aj6¬  (œAN@ (XAj6X  AGA A ! (�" %BY (Œ( %§JA  %§" (Œ"( O@ ( j-A A   ( ( A !  (4 (0 ! A @  ( ( ! @  ( ( !    %  %BY (Œ( %§JA  %§" (Œ"( O@ ( j-A @  (  (   ( (    AG AÇ@  (¥ (A (A_ A @ (A (A_ ( (AA^ @ õ ! ÷ ! @ (A (A_ @ (A (A_   A -$ ! õ " (AA  (A_AA EA   %BS@ ((  %§" (ü"( O@ ( Atj("  (( "6  ž ((A (AAV (°! (,"A AL A   ( JA A ( AkAtj((( ((( G  ("  (LA A E@  (("( O@ ( A lj(   ( AkAtj(("( O@ ( A lj"( / ( !  (° Á ! (   AA] (PAj6P @ (ôAj6ô Aj!  Aj!  Aj!  AGA (”"@   ¼  6  ž ((A (AAV  AG@  (0£@ ( J@ ( M@@ ( j- ( Atj(" ( "  (” -˜ (ÌA A (  A A  (" ((ˆ"( H ( Atj(A "6  ž  6 ("  Ak(AÍFA E@ A " (A !  (A ! A A (Ì" (("  Ak(A÷FA E@ (A A "A  E ErE@ A!A ( " -hA E A -iE  (œAH@ (((  A! @ ((( H@ Aj  (œAHA (¤"( H ( Atj)BYA ! Aj!   (Xj6X  A! A A @  (¤ (A (A_ (!   (0¤  (¥ (A (A_ ( (AA^ (A (°"AL A (,"  ( JA A ( AkAtj((( ((( G  ("  (LA E@ ($  (," ( AkAtj("-  ( ((  ($ A (°" AL A (," ( JA A ( AkAtj((( ((( G  (" (LA  -d (l ( ( ! (," @A! @ AkH@ ( Atj("-  ( (( j! Aj!  A AA] (PAj6P Aj!  AGA (”"@   ¼ ç (AG! A (ð! (Œ" (�GA (ø" #ñ  ! (! A  A  A A ! BY (Œ( §JA  §" (Œ"( O@ ( j-A !@ E (0 (,     Û"BQA ( G@ Þ 6 ž Ü " -A ("E@ )²AF@ (" (Aj6   ( ( "E@    Š"(E@ A:  ( A ( E@ (" ( Aj6 @  6  6  ž (" (Aj6  (" (Aj6A "@ ( F@A ( G@  £  :$A  (("A (@ Œ" ( FA  -$A  ( F -$A E @A  ¤A × } ((" ( "(A - E@ ( ! (! (! (! ("(AkAH@ ( 6 (AkAH@ ( 6 (AkAH@ ( 6 (AkA H@ ( 6 *! *! *! *! (AkAH@ ( 8 (AkAH@ ( 8 (AkAH@ ( 8 (AkAH@ ( 8AÀ (" AÀN! A!@  H@  ( "( O@ ( Atj("@  A°lA j" * * * * * * * * * *$ *( *, *0 *4 *8 *<Æ *L! *H! *D! *@! A@k"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 A j"Av  (AkJr@ ( j 8 *\! *X! *T! *P! AÐj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 A j"Av  (AkJr@ ( j 8 *l! *h! *d! *`! Aàj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 A j"Av  (AkJr@ ( j 8 *|! *x! *t! *p! Aðj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 A j"Av  (AkJr@ ( j 8 *Œ! *ˆ! *„! *€! A€j"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 A j"Av  (AkJr@ ( j 8 (œ! (˜! (”! (�! A�j"Av  (AkJr@ ( j 6 Aj"Av  (AkJr@ ( j 6 Aj"Av  (AkJr@ ( j 6 A j"Av  (AkJr@ ( j 6 (¬! (¨! (¤! ( ! A j"Av  (AkJr@ ( j 6 Aj"Av  (AkJr@ ( j 6 Aj"Av  (AkJr@ ( j 6 A j"Av  (AkJr@ ( j 6 Aj!  A°lA j! ("Ak(! ("-@ ­   "­T@ 5 ­T@ (A  \  (AG: Å   (¸! (´"! Aj6´ ( "H@  M@ ( Atj("E@ "( F ( FA  ( FA  ( FA @  (! (¤"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (AK@A!@ ("( J@ (¤!  ( O@ ( Atj("E@ ! ( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  (! ( "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A Aö˜"A6 A6 A6 A6 A6 A: A6 A6 6 6 6 A6 A: 6AAø˜"A6 A6 A6 A6 A6 A6 A6  ·" AA÷˜"A6 A6 A6 A6 A6 A6 ¸!AA‰˜"A6 A6 A6 A6 Aš! AF@ "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A!@  K@AA÷˜"A6 A6 A6 A6 A6 A6 6 A6 ¸! "( " Aj!  (AvK@ AA™ ( Atj" 6 At Ÿ 6 Aj!  AAš˜"A6 A6 A6 A6 A6 A6 A6 6 6 6 6 6 6 6 ! ( H@ œ "( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  ·} (˜"!  Aj6˜ (”"( N@AA�˜" "A6 A6 A6 A6 A6A Aõ˜"A6 A6 A: #!AA AAî A 6 A 6 A: (" @  Aä 6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (”"( O@ ( Atj("E@ * ! *! *! *! (È"(AkAH@ ( 8 (AkAH@ ( 8 (AkAH@ ( 8 (AkA H@ ( 8 *! *! *! *! (AkAH@ ( 8 (AkAH@ ( 8 (AkAH@ ( 8 (AkAH@ ( 8 (,! ((! ($! ( ! (AkA H@ ( 6 (AkA$H@ ( 6$ (AkA(H@ ( 6( (AkA,H@ ( 6, *”!  &At j*’C€>”! )Aj" *(AvO@  *( Atj*’C€>”! ' 2("( O@ ( 'Atj(")E@ , 2(l -jAl"& )(AvO@ )( &Atj 8 &Aj" )(AvO@ )( Atj 8 &Aj" )(AvO@ )( Atj 8 -Aj!-  ,Aj!,  'Aj!'  .( "Aj"& .(AvK@ . &AA™ .( Atj" 26 . &At  2Ÿ . &6 #Aj!#  AA‚˜"=AAAƒA¤6 =("&( "Aj!# # &(AvK@ & #AA™ &( Atj" 6 & #At  Ÿ & #6 A!#@ # %H@ =(!9AA�˜"  + #"&vã!@A!-A!6A!4#A�¥ÁkA0I@ #A0k"0$ &³ !("( "*Ak²•" ”" ”! ( E@ (("E@ CÛIA ("2³CÀ@” 2³”•!A Aç˜"(A6 (A6 (A6 (A€A¦˜"6 ( 6 (A€6A Aç˜"'A6 'A6 'A6 'A€A¦˜"6 ' 6 'A€6A Aç˜".A6 .A6 .A6 .A€A¦˜"6 . 6 .A€6A Aç˜")A6 )A6 )A6 )A€A¦˜"6 ) 6 )A€6@ 6A H@C€?C€? 6At 6Avr"AÕªÕªqAt AªÕªÕzqAvr"A³æÌ™qAt AÌ™³æ|qAvr"A�ž¼øqAt AðáÇqAvr"Aÿ�üqAt A€þƒxqAvr¸Dð=¢¶"“ C€¿’" ”C€?’•‘" ”“! ’ ”C€¿’"C_E@C *Ak²"C€? ” ”C€?’"CÛI@” ”•C€>”CB”• •ˆ C?”C€?’"  ^ C]! 4 )(AvO@ )( 4Atj 8 ’ C—‘"” 6²C=”CÛÉ@”"þ ”! 4 ((AvO@ (( 4Atj 8 ’ ” ý ”! 4 '(AvO@ '( 4Atj 8 4 .(AvO@ .( 4Atj 8 4Aj!4 6Aj!6  A Aç˜",A6 ,A6 ,A6 4Al"AÿÿÿÿK@ , At"#A¦˜"6 , 6 , #6C!@ - 4H@ - )(AvO@ )( -Atj*¨! - )(AvO@ )( -Atj* ²“!  *Ak"#N@C! #! - ((AvO@ (( -Atj*! -Al"# ,(AvO@ ,( #Atj 8 - '(AvO@ '( -Atj*! -AlAj"# ,(AvO@ ,( #Atj 8 - .(AvO@ .( -Atj*! -AlAj"# ,(AvO@ ,( #Atj 8 -AlAj"# ,(AvO@ ,( #Atj Al²8 - .(AvO@ .( -Atj*C€? “”! -AlAj" ,(AvO@ ,( Atj 8 - .(AvO@ .( -Atj* ”! -AlAj" ,(AvO@ ,( Atj 8 - .(AvO@  .( -Atj*’! -Aj!-  AA…˜ *Al"AÿÿÿÿK@ AtA…˜!AAA ˜ *AÿÿÿÿK@ *AtA ˜!BA!#@ # *H@ !("( #M@ ( #Atj(")E@ )(!' #" BAk(AvO@ B Atj '6A!#@ #AH@ # )("'( O@ '( #Atj("'E@ '(!( Al #j"' AAk(AvO@ A 'Atj (6 #Aj!#  Aj!#  C€? 2 &v"-³•! ,(!)A!:@ :AH@ @("( :M@ ( :Atj("7@A!;@ - ;K@A!6@ - 6K@ 6³C?’ ”" ’C€¿’! ;³C?’ ”" ’C€¿’! 0}@@@@@@ : Œ! Œ!C€?  ! Œ!C€¿  !C€?!   Œ!C€¿!   C€?! Œ!   C€¿! Œ! Œ "C€?  ”  ”’  ”’‘•"”8 0  ”8 0  ”8 0*‹Cw¾?^}C€?!CC!C€? ! 0 8 0C8 0 8 0 0*" 0*"” 0*" 0*"”“"C€?  ”  0*"”  0* "”“" ”’  ”  ”“" ”’‘•"”8 0  ”8 0  ”8 0*"! 0*"! 0* "! 0*" ”  0*"”“!  ”  0*"”“!  ”  ”“! 0*! 0*! 0*! C!C!C!A!@  4H@ ) Alj"#*! #* ¨!. #*! #*!  ”  #*"”’  #*"”’"‹"  ”  ”’ ”’"‹"`  ”  ”’ ”’"‹" _q C` Œ! Œ!A ! Œ!A   ` ! C`A Œ!A  ! C` Œ!A Œ! Œ!A !( C? •"”C?’!  ”C?’!AA C^!'A!#@ # 'H@C B .Am #jAtj(" 2j!, > *   ” “"“  ” “"“ “"” ,* ”’ ** ”’ 2* ”’’!  >* ” ,* ”’ ** ”’ 2* ”’’!  >* ” ,* ”’ ** ”’ 2* ”’’! #Aj!#  Aj!  - ;l 6jAl!* C^@ C€? •"”! 7(Av *M@ 7( *Atj 8 *Aj" 7(AvO@ 7( Atj  ”8 *Aj" 7(AvO@ 7( Atj  ”8 0*! 0*! 0*!A!#CCC !(( "(E  (Ak²"C C]" ¨!2 ‹" ‹"` ‹" _q@ C`} ŒA!#  ! Œ!  `@ ! C`A Œ!A !# ! C`A Œ!A !# Œ! #²¨!' 2 !("( O@ ( 2Atj("E@  '  •C€?’C?”"  •C€?’C?”"ä! ! " " " " 2Aj"# (N 2²“" C_r  C€? “"”! !("( #M@ ( #Atj("E@   ' ä! ! " ”’  ” ”’  ” ”’ ! ! " ! * 7(AvO@ 7( *Atj 8 *Aj" 7(AvO@ 7( Atj 8 *Aj" 7(AvO@ 7( Atj 8 6Aj!6  ;Aj!;  :Aj!:  #A0j$ 9( "Aj"# 9(AvK@ 9 #AA™ 9( Atj" @6 9 #At  @Ÿ 9 #6 &Aj!#  5 =6 5 =žA!!@ ! "H@ ! $("( O@ ( !Atj("E@ (A F@ ! $("( O@ ( !Atj("E@ !Aj!!  A!&A Aè˜"(A6 (A6 (A6 (AØA¦˜"6 ( 6 (AØ6Dð? "!("$¸£!F@ &AH@A!'@ $ 'K@ '¸D@¢ F¢Dð¿ !H 'Aj¸D@¢ F¢Dð¿ !IA!#@ # $I@ #¸"LD@¢ F¢Dð¿ "E H¢ E E¢"D H H¢"G Dð? Ÿï E I¢ D I I¢"E Dð? Ÿï¡ #Aj¸D@¢ F¢Dð¿ "J H¢ J J¢"D G Dð? Ÿï¡ J I¢ D E Dð? Ÿï !E LDà?  F¢¶" ’C€¿’! '¸Dà?  F¢¶" ’C€¿’!}@@@@@@ & Œ! Œ!C€?  ! Œ!C€¿  !C€?!   Œ!C€¿!   C€?! Œ!   C€¿! Œ! Œ "C€?  ”  ”’  ”’‘•"”!  ”!  ”!AA.˜"A6 A6 A6 A6 Aš"( "Aj!" " (AvK@  "AA™ ( AtjCÁn�>8  "6 ( "Aj"" (AvK@  "AA™ ( Atj C,*ú>”8  "6 ( "Aj"" (AvK@  "AA™ ( Atj C,*ú>”8  "6 ( "Aj"" (AvK@  "AA™ ( Atj C,*ú>”8  "6 ( "Aj"" (AvK@  "AA™ ( Atj C�Ø‹?” ”8  "6 ( "Aj"" (AvK@  "AA™ ( Atj C�Ø‹?” ”8  "6 ( "Aj"" (AvK@  "AA™ ( Atj C@@” ”C€¿’C{¡>”8  "6 ( "Aj"" (AvK@  "AA™ ( Atj C�Ø‹?” ”8  "6 ( "Aj"" (AvK@  "AA™ ( Atj  ”  ”“C�Ø ?”8  "6 !("( &M@ ( &Atj("%E@ ' !(l #jAl"" %(AvO@ %( "Atj*! "Aj" %(AvO@ %( Atj*! "Aj" %(AvO@ %( Atj*!A!@ A H@ ( M@ E ( Atj*»¢!G Al"" ((AvO@ (( "Atj+ G »¢ !D " ((AvO@ (( "Atj D9 AlAj"" ((AvO@ (( "Atj+ G »¢ !D " ((AvO@ (( "Atj D9 AlAj"" ((AvO@ (( "Atj+ G »¢ !D ((Av "M@ (( "Atj D9 Aj!  #Aj!#  'Aj!'  &Aj!&  AA̘"$AàA¦˜"6 $ 6 $Aà6 $A6 A!%@ %A H@ %Al" ((AvO@ (( Atj+¶! %AlAj" ((AvO@ (( Atj+¶! %AlAj" ((AvO@ (( Atj+¶! $( "!Aj""AÕªÕ*K@ "A l" $("#K@ #At" I@ ! A¦˜" $( #ü $ 6 $ 6 $ 6 $ ž $( !A lj" 8  8  8 $ "6 %Aj!%  AA̘"&AàA¦˜"6 & 6 &Aà6 &A6 A!%@ % $( "H@  %M@ $( %A lj"*! *! * %}C«ª*?C€> %AHC€? "”! &( "!Aj""AÕªÕ*K@ "A l" &("#K@ #At" I@ ! A¦˜" &( #ü & 6 & 6 & 6 & ž &( !A lj" 8   ”8   ”8 & "6 %Aj!%  5 &6 5 &ž 5ID@�@£ K¡D@�@¢9 5 ?6 5 ?ž 5 /6 1 56 1 5ž 1 1(Aj6 5 "!@A!@ AH@ At" 1( j  Cj(6 Aj!  1 8(\(�"6 1 ž 1A: ! "#"E ( F  6  ž (("( E @ ´ "'(@AA÷˜"A6 A6 A6 A6 A6 A6 A6 A6@ ' ¸"1(E ("$ $ (FA  (4A @ (!! (0"@ (<"/( "Aj!" " /(AvK@ / "AA™ /( Atj" !6 / "At  !Ÿ / "6 (8""( "Aj!! ! "(AvK@ " !AA™ "( Atj" 6 " !At  Ÿ " !6  '60  'ž  16  1ž  A! (,!% $@ $µ "(AA÷˜"A6 A6 A6 A6 A6 A6  ¸A "% %(A E@ ("!@ !@#!%@ %@ !# %Ak"A lj""(F@ #I@#Ak$ "##A lj""A ü #Ak$ "##A ljA ü  %Ak!%  ( A6 1- @ 1("!@#!%@ %@ !# %Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  %Ak!%  1( 1A6  (!" (0"!@ (<"&( "Aj!/ / &(AvK@ & /AA™ &( Atj" "6 & /At  "Ÿ & /6 (8"/( "Aj!" " /(AvK@ / "AA™ /( Atj" !6 / "At  !Ÿ / "6 (!" (4"!@ (<"&( "Aj!/ / &(AvK@ & /AA™ &( Atj" "6 & /At  "Ÿ & /6 (8"/( "Aj!" " /(AvK@ / "AA™ /( Atj" !6 / "At  !Ÿ / "6  '60  'ž  16  1ž  64  ž  %6  %ž  $6  $ž  '("!@#!%@ %@ !# %Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  %Ak!%  '( 'A6 AФ6 AФž   (Aj6 (! A� 6 Ak(Av@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 # à A Í"( (W (A (AAV (AAAAU ("@ !#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  (T ( A6 Š (ø"A  "6  ž A6 A6 A6 C8 C8 C8 C8 (ü" 6  ž A6 ((  (°Ã ˜  ((! („ (F (ˆ (FA  (Œ ( FA  (� (¤FA @ (”Aj6”  ((Å EÇ ("6„ ž (6ˆ ( 6Œ (¤6� ( !@ (" ( F  (FA  (A (  A°ÅAZ" E ("@ @#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  (  6 A°Å(6 A´Å(6 A¸Å(6 ( (6 ( 6 ("@  Aä ((" (@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 (@"@ ((" 6 @  A ä  (! ("AF@ (P  (`" (d FA @   A ( (,AðÓAðÑ ° "(E   6`  ž  6d  " E@ ((P! A Ak("AžF  A¡F@ (  AŸF@ Ä (  ! ( 6  (A " E@ A! "(€!@ ( J@ ( Atj("( (F ( (FA  ( ( FA @ (  Aj!  (! ( !AA¦˜A A¦˜!A A˜"A6 A6 A6 Ak(A I@  6  6 A 6   AAAA½ !A Aõ˜"A6 A6 A: Ak(!  #!FAA  Aî 6  6 A: ("@  Aä AA‡˜"A6 AAAˆA¤6 AAA‰A¤6 AAAŠA¤6 ((,AA¦˜!AA‹˜" 6  ž  6 A6 A6 (AA„˜"A6 A6 A6 A6 A6 6 A6 A6 6 AA¦˜!AAŒ˜" 6 ž 6 A6 A6 (AA…˜"A6 A6 (! A6  6 6 (AA…˜"A6 A6 (À(! A6  6 6 AA¦˜!AA�˜" 6 ž 6 A6 A6 À! ( AN@ ¦" (! (¬"( " Aj!  (AvK@ AA™ ( Atj" 6 At Ÿ 6 ( ! (¨"( " Aj!  (AvK@ AA™ ( Atj" 6 At Ÿ 6 AAœ˜"A6 A6 A6 A6 A6 ( ! (! (6 6 6 6 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  !  AA ÑÍ"( (W (A (AAV (AAAAU ("@ !#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  (T ( A6  ((Å EÇ Á -@ (AG A: (!#)A�úÂ! ( ï "E@A AA¦˜!AAý˜" 6  ž  6 A6 A6 A ¾"E@A  A°ùAàùA° !  A°ùAàúA° ! ( (A E@ ("@ @ !#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6  ž ("@ @ !#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6  ž A 6 ž 6 ž 6 ž 6 žA £  Atr!@ ("( J@  At" (j(F@  ((j( Aj!  A!A ("( "E ALr  (!@  H@  Atj( F@   Aj!  A ANA Ï E@A A4A•˜"È ("E@  6  ž A°ù6 A°ùž ("E@  6  ž Aàù6 AàùžA A�˜"A6 A6 A6  6 A6AA¦˜!AA–˜" 6  ž  6 A6 A6 ( 6  6  žAA¦˜!AA—˜" 6  ž  6 A6 A6  6  žAA¦˜!AA˜˜" 6  ž  6 A6 A6 ("E@ ( 6  6  ž A6 A6$A(A”˜"É A6 A6 A: A6 C8 C8  6,  ž  60A A™˜"A6 AAA˜A¤6 A:  Â"(E@ ("( "Aj!  (AvK@ AA™ ( Atj 6 6 A ("( "Aj!  (AvK@  AA™ ( Atj 6  6 ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  ¨ A! ( ! ( J ( Atj(( F  Aj!  A "AN@ ( Atj("( F ( FA  ( FA @  Ò A Aö˜"A6 A6 A6 A6 A6 A: A6 A6  6  6 A6 A6 A:  6AAø˜"A6 A6 A6 A6 A6 A6 A6 ·" (E@ AN@A ( "    J"k" AJ"A AJ"At"A¦˜!AA¬˜" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A   Atj  kAtü   k"AtjA Atü  6 A AA÷˜"A6 A6 A6 A6 A6 A6 ¸! AA‰˜"A6 A6 A6 A6 Aš!A!@  J@AA÷˜"A6 A6 A6 A6 A6 A6 6 A6 ¸! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  A,Aª˜"A6 A6 A6 A6 A6 A6 A6AA¦˜!AAº˜" 6 ž 6 A6 A6 6 A6 A6$ A6( 6 6 6 6 6 6 6A!@  H@ ("( "Aj!  (AvK@  AA™ ( Atj"A6  At AŸ  6 Aj!  ! AN@   œ ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  ¼@ ("( J@  ( O@ ( Atj("@ (0"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ($"@ (0"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A6$A!@ ("( J@ (,!  ( O@ ( Atj("E@ ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (! (,"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (! (("( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 ’@ ALA Ï E@     Ñ"E@   ($6( ( ( "Aj" (AvK@  AA™ ( Atj"AÀÖ6  At AÀÖŸ  6 A ˜  (ì" (G@ 6 ž ( " "( !  ( "AA™  H@ ( AtjA  kAtü  6 @ ( J@ At" (j("(! (!A!@ ( J@ ( Atj(( Ä@ ( Atj(  Aj!  A,A­˜"A6 A6 A6 A6 AA¦˜!AA˜" 6  ž  6 A6 A6  6AA¦˜!AAë˜" 6  ž  6 A6 A6  6 A: A: A6 A: A6$ A6(  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ! (j" 6 ( At  Ÿ ( ((G@  Ø ! (! ("( ! AAA™ AJ@ (A Atü A6 (  AAA™ A6 A! @ (("( J@ ( O@ ( Atj("E@ (," ( H ( O@ ( j-A @ Aä ! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ( " Aj" (K@  AA™ ( jA:  6 (0" ( H ( O@ ( j-A @ Aä ! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ( " Aj" (K@  AA™ ( jA:  6 Aj!   (("6  ž -@A!A!@ E  (( Hq@ (( j- ( ( E! Aj!  @ ( (ç Aj!  ("( Ak!@ AN@  ( O@ ( Atj("@A!A!@ E  ( Hq@  ( Atj(F! Aj!  E@ ( (ç  Ø AÖ AÖ (("@ ( "( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 A6( A6$ A:A ( "    J" k" AJ"A AJ"At" A¦˜!AA¯˜" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A   Atj  kAtü   k"AtjA Atü  6 Ak!  !A!A! (" (!@ ( J@ ( Atj((!  AjA!@ ( J@A ( Atj(( Ä  Aj!  A ! Aj!  A k"AJ@@ AJ@A!A!@ ( J@ ( Atj("-(A (! A!@ ( J@A ( Atj(( Ä  Aj!  A E@   AHA ( Atj() ) U ! Aj!  ( Atj(A:( Ak!  A!A!@ ( J@ (" Atj("-(E@ "Aj! At j" 6  ( At  Ÿ Aj!  ( !  AA™  H@ ( AtjA  kAtü  6 ("( ! AAA™ AJ@ (A Atü A6 ( !@ ( J@@ ( Atj(" -A E -E@ ×  (!A!@ ( J@ (( j- ( ( " (( ( Atj(" ¥ÒA E@ (( ( Atj( (™  (,Aj6, Aj!  Aj!  ´  ( ( " (A  AMFA  ( A  AMFA @A    š"E@ -E@ A: ( "Aj" (AvK@  AA™ ( Atj"Að¨6  At A𨟠 6 A @ ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 @  6  6  ž A:A ‡  ( ( "E@ ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 @ A6 A6 A: � (!@ ( J@ (( j- ( ( "@ (( ( Atj( (™  (,Aj6, Aj! Aj!  6 A: ñ  @@ ("( J@  ( O@ ( Atj("E@ (( A! "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò@ (( ï  (,Aj6, Aj!  A: A6 ë ( B ˆ§A½ÜÊ•|l §A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s" (qAtj(!@ @ ( "AqE@  ) Q  A~q!  A "@  6 (At Aj Ÿ ( " (F@ ( AlAmH ( (AtAr Ú (! ("Aj6  Atj" 7  6 (At Aj Ÿ (Aj6  (  (qAtj"(6 6 ×~AA¦˜ Aj"At"AüÿÿÿK@ A¦˜!AA¦˜ AtAm"At"AüÿÿÿK@ A¦˜! (" (Atj! !@  G@ ( AqE@  )" 7  (6    B ˆ§A½ÜÊ•|l §A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj"(6  6 Aj! Aj!  6 ž 6 6 ž 6 (6 Ý -  ( GA @B AF (ÌA @B ~ BS@ )("BQ@ (0Ý­"7(   (x" (GA (( ( G A ( G A ($ G @ 6 ž 6 6$ ( " ("( G@ (   AA™  6 A!@ ( J@ ( AtjB7 Aj!  B §" ("( N  ( Atj)"BQ@ ( Atj(Ý­! (( Atj 7  "BQA AG BÀƒBR GA @B )A€€A *ðC€?]"A€€r  ( " ("  Ak(AÍFA E@ A A " -A A -œ ! §­ (AF A€€r  *„C^"A€r  (¤" (AvA   (r r­B †„„ € BQ@A  ("( ( B ˆ§A½ÜÊ•|l §A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( "AqE@  ) Q  A~q!  A @ ("( ( B ˆ§A½ÜÊ•|l §A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( "AqE@ ) Q  A~q!  A "E@ (!A A´˜"B7 A6 A6 A6 A6 A: A6  7 (  Ù (A ( (G @  ³"  ²A @  (6  6  ž  í}@ AH@  ($"( H  ( O@ ( Atj(A @@@@@@  A  A  A  A  A r! Aj!   " à !!!!!!!!!!!!!!!!! ! ! ! ! ! ! Û E@   AÆ       (8ã (4á Æ Ž ("(! (!AA·˜"A6 A6 A6 A6  š!@  H@  Atj"( AqE@ "Aj! ( Atj" ("6  ( At  Ÿ Aj!  ( !  AA™  J@ ( AtjA  kAtü  6 @ ( J@ ( Atj("( "@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6  ž ("@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6  ž ("@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6  ž A6 A6 A6 A: Aj!  (A6 A6 ½@ (("( J@  ( O@ ( Atj("E@ ( Ä@A Aj!  A°ÍÄ@ (Ak(AvAG AÀ½Ä@ (Ak(AvAG A�ÂÄ@ ( Ak(AvAG A€ŒÄ@ (Ak(AvAG AðåÄ@ ( Ak(AvAG A€¼Ä@ (Ak(AvAG A€ÉÄ@ (Ak(AvAG A�ÝÄA Aà²Ä �@ (("( J@  ( O@ ( Atj("E@ ( Ä@  (("( O@ ( Atj("E@ ( Aj!  ($ �@ ("( J@  ( O@ ( Atj("E@ ( Ä@  ("( O@ ( Atj("E@ ( Aj!  ( ÆAAÔ˜"A6 A6 A6 A6 Aš!@ ("( J@  ( O@ ( Atj("E@ ("@ ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   l (( Ak!@ AN@  ("( O@ ( Atj("E@ (" ( ÄA @  Ak!  A �@ ("( J@  ( O@ ( Atj("E@ ( Ä@  ("( O@ ( Atj("E@ ( Aj!  ( �@ ("( J@  ( O@ ( Atj("E@ ( Ä@  ("( O@ ( Atj("E@ ( Aj!  ( ÆAAà˜"A6 A6 A6 A6 Aš!@ ( "( J@  ( O@ ( Atj("E@ ("@ ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ÆAAá˜"A6 A6 A6 A6 Aš!@ ( "( J@  ( O@ ( Atj("E@ ("@ ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ÆAAâ˜"A6 A6 A6 A6 Aš!@ ( "( J@  ( O@ ( Atj("E@ ( "@ ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ÆAAä˜"A6 A6 A6 A6 Aš!@ ( "( J@  ( O@ ( Atj("E@ ( "@ ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ÆAAå˜"A6 A6 A6 A6 Aš!@ ( "( J@  ( O@ ( Atj("E@ ($"@ ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ÆAAæ˜"A6 A6 A6 A6 Aš!@ ( "( J@  ( O@ ( Atj("E@ (("@ ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ÆAAç˜"A6 A6 A6 A6 Aš!@ ( "( J@  ( O@ ( Atj("E@ ("@ ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ©@@@@@@@@@@@ (   A A A  A  A  A  A  A  A  A  A !@ ( "( J@  ( O@ ( Atj("@ Aj @@@@@@@@@@@ (   A A A  A  A  A  A  A  A  A  A " L ANq! Aj!  (  ó sA Aé˜"A6 A6 A6 A6 A6 A6 AAAêA¤6  6  6  6  6  6  6  ÇA Aë˜"A6 A6 A6 A6 A6 A6 A6 AAAêA¤6 (! (! (! ( ! (! (! A6  6  6  6  6  6  6 !A!@ ("( J@ (!  ( O@ ( Atj("E@ ! ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   «A Aé˜"A6 A6 A6 A6 A6 A6 AAAêA¤6 (! (! (! ( ! (!  (6  6  6  6  6  6A!@ ("( J@ (!  ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ãA ( " AH  j"A AJ    H "k" AJ"A AJ"At"A¦˜!AAî˜" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A    Atj  kAtü   k"AtjA Atü 6 UA(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 \A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  :  \A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  7  \A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  9  hA(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$  6  Ù"6  ž  ±AA¦˜!AAÀ˜" 6  ž  6 A6 A6 ( 9 ( 9A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  ž  ÅA A¦˜!AAÀ˜" 6  ž  6 A 6 A6 ( 9 ( 9 ( 9 ( 9A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A 6  Ù"6  ž  £AàA¦˜! AAÀ˜" 6 ž 6 Aà6 A 6 ( »9 ( »9 ( »9 ( »9 ( »9 ( »9( ( »90 ( »98 ( »9@ ( »9H ( »9P ( »9XA(Aí˜" A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Ù" 6 ž š ("( AJ} ( E@ (+¶C ("( AJ} ( AM@ (+¶C ("( AJ} ( AM@ (+0¶C C ("( AJ} ( AM@ (+¶C ("( AJ} ( AM@ (+ ¶C ("( AJ} ( AM@ (+8¶C C ("( AJ} ( AM@ (+¶C ("( AJ} ( AM@ (+(¶C ("( AJ} ( AM@ (+@¶C C ("( A J} ( A M@ (+H¶C ("( A J} ( A M@ (+P¶C ("( A J} ( A M@ (+X¶C C€? õ@ ( (G @@@@@@ ( A - -F ) )Q ) )Q ( ( ( ( GA ($( ($( G @ ( "( J@  ( O@ ( Atj("E@   ( "( O@ ( Atj("E@ ûE  Aj!  A!@ ($"( J@  ( O@ ( Atj("E@   ($"( O@ ( Atj("E@ ûE  Aj!  A ( (Ä (( (( GA @ ("( J@  ( O@ ( Atj)  ("( O@ ( Atj)R  Aj!  A A ëA(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$  (6 " -:  )7  +9  ("6  ž  ("( AJ Ù# "6  ž ( ( AJ@AAî˜"A6 A6 A6 A6  ( ( š!A!@ ( "( J@  ( O@ ( Atj("@   üœ Aj!   6  ž ($( AJ@AAî˜"A6 A6 A6 A6  ($( š!A!@ ($"( J@  ( O@ ( Atj("@   üœ Aj!   6$  ž  ~@ ( "( J@  ( O@ ( Atj("E@ ( Ä@  ( "( O@ ( Atj("E@ ( Aj!  A {@ ( "( J@  ( O@ ( Atj("E@ ( Ä@  ( "( O@ ( Atj("E@  Aj!  A ÈAA˜"A6 A6 A6 A6 Aš!A!@ ( "( J@  ( O@ ( Atj("E@ (! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   {@ ("( J@  ( O@ ( Atj("E@ ( Ä@  ("( O@ ( Atj("E@  Aj!  A ±A� ! ( "@Aà˜ A ªÂA°†Â (A ªÂA€… (A «ÂA �Â! A�š A «ÂAðÛ  ÂAÀ™Â ((A «ÂA�™Â! (Ak(AvE@ 6 ž ‰~ (! ((!@ ( N@  �B (" ("(O@ ( j-! (Aj6 Aÿq­! AÀI ­†„! A   BÀ ­}ˆBRA A  BR ! Aj! A€q BÿÿÿÿV rA @ A°˜Â A «ÂAð—Â! (Ak(AvE@ 6 ž B b (! ((!@ (" H@  ("(O@ ( j-! (Aj6 A€q   � Å (! "(( k¬BT@  �A   (Aj6A E@A ("! Aj" (O@ ( j-At Aj" (O@  (O@ ( j- Aj" (O@ ( j-Atr ( j-Atrr ~ (! A‚! (Ak(Av@A�  (!  (( k¬V@  �A  ( §j6A E@A�  (( j §Ò ò~ @ AF@ (! A‚! (Ak(AvE@@  (( (k¬V@  �  ( §j6  AF AFr@ (!@ "(( k¬BT@  �   (Aj6  AF@ (!@ "(( k¬P@  �   (Aj6  ƒ �AÐA‹˜"×  (6  +9  +9  +9  + 9  ((6(  +090  +898  (D‡"6D  ž  (Hˆ"6H  ž  {@ ("( J@  ( O@ ( Atj("E@ ( Ä@  ("( O@ ( Atj("E@  Aj!  A ¸ (!@@@@@@@@@@@@@@@@@@@@@ (   AF AF AF AFr AF AF AFr AF AF A F A F AF AF AF AF A F AF AF AF AF AF E AF AFr AFr AFr AFr A Fr A Fr A Fr A Frr AFr AFr E AFr AFr ãA ( " AH  j"A AJ    H "k" AJ"A AJ"At"A¦˜!AA³˜" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A    Atj  kAtü   k"AtjA Atü 6 x@ (<"( J@  ( O@ ( Atj("E@  Ä@  (@"( O@ ( Atj("E@  Aj!  A ‰ )HB|7H@ (<"( J@  ( O@ ( Atj("E@  Ä@ (@  œ Aj!  (<"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (@"( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 k ‹" ( GA @A (D!A!@ ( J@  ( Atj(F@ )HB|7H  Aj!  A ï  Œ (D! (@!A!@ ( J@ ( Atj(!A!A!@ E  ( Hq@  ( Atj(F! Aj!   E  Aj!  A "AN@ (D  œ (D"( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 I -$A€� ( Ø ! ‹! E@    ‰A @  ( ß}C€?! �" (A FA @ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !     _ -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% ¡ AðèÄ@  Ak(AŸ FA   Ak(AŸ FA E@ A "68 ž AÀìÄ@  Ak(Aœ FA   Ak(Aœ FA E@ A "6P ž î0 ,} -$A€� ( ! AA˜"A6 A6 A6 A6 Aš! AAü˜"A6 A6 A6 A6 Aš! @ ( J@ ( Atj("(Ø " (A GA E@   (³A " « (× A E@ ( "(! (! ( ( « (“ !A Aé˜"¸ Aàß6 6 6 6 6 A6 Û E AGq (" (AF@ (æ!A!@ ( J@ ( Atj(( (Ä@  ( O@ ( Atj("E@ (  Aj!   (AF@ (ç!A!@ ( J@ ( Atj(( (Ä@  ( O@ ( Atj("E@ (  Aj!  A� A� "Ak(Av@ ( "(! (! ( (  (“ ! (  (” AÀ“ ÂA°â ÂAÀáÂA°à !A Aé˜"¸ Aàß6 6 6 6 6 6 Û (! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  -d@ *h!/ *l! *p!( *t!0 *x!+ *|!) *€!, *„!1 *ˆ!- *Œ!* *�!. *”!2 *˜!7 *œ!8 * !6 *¤!9 AÐ AÌ "@ ú!'!&!%!$!#!"!!! !!!!!!!"!/ '!9 &!6 %!8 #!2 "!. !!* !- !1 !, !) !0 !( $!7 ! !+ Að‚A Ì "@ ("( AJ} ( E@ (+¶C !7 ("( AJ} ( AM@ (+¶C !8C€?!9 ("( AJ} ( AM@ (+¶C !6 A€„A Ì "@ ("( AJ} ( E@ (+¶C ("( AJ} ( AM@ (+¶C ("( AJ} ( AM@ (+¶C È !!!!!!!!" /  ( + ) , - * .Ê !5!4"3"”!,  4"(”!+  5")”!- ,!/C!2  )”!.  )”!*C!1  (”!,  (”!)C!0  ”!(  ”! Aà…A Ì "@ ("( AJ} ( E@ (+#·¢¶C ("( AJ} ( AM@ (+#·¢¶C ("( AJ} ( AM@ (+#·¢¶C È !!!!!!!!" /  ( + ) , - * .Ê !5!4"3"”!,  4"(”!+  5")”!- ,!/C!2  )”!.  )”!*C!1  (”!,  (”!)C!0  ”!(  ”! AðåA Ì "@ /  ( + ) , - * .Ë !!!!!!!!" ("( AJ} ( E@ (+¶C "+”!*  +”!  +”!(  ("( AJ} ( AM@ (+¶C "-”!+  -”!)  -”!, *!.  ("( AJ} ( AM@ (+¶C "*”!- .!/C!2  *”!.  *”!*C!1C!0 /8h 8l (8p 08t +8x )8| ,8€ 18„ -8ˆ *8Œ .8� 28” 78˜ 88œ 68  98¤ A!A!@ ( J@A  ( Atj((AÐ Ä! Aj!  @A!@#Ù( J@#Ù( Atj(!A!@ (<"( J@  ( O@ ( Atj("E@  Ä@ (<   (@ ñ )HB|7H Aj!  Aj!  A!@ ( J@ ( Atj("( (Œ (AàêÄ@ 6( ž ( (6, ( (60 Aj!  ÝA!@ ( J@  ( O@ At" (j(!  (j(!@@@@@@@@@@@@@@@@@@@ Ak(A²k.     ’  A�® Ä@  Ak(A¬ FA   Ak(A¬ FA E@ A "6È ž  ’  Að¢ Ä@  Ak(A• k"AIA vAqqA   Ak(A• k"AIA vAqqA E@ A "6È ž  ’  A ÝÄ@ 6Ø ž  ’  A! AÀÞ Ä@  Ak(Aš FA   Ak(Aš FA E@ A " (ÈG ( "A!@ ("( J@ Aj  ( Atj(-! Aj!  AJA A @ ( "@A!@ ("( J@ ( Atj("-@ -@ A: A: (,AGA (0AG A (4AG A (8AG A ("=" ” 9"A >"”’ :"B ?" ”’ ;"C @"#”’" C]@ #Œ!# Œ! Œ! Œ! Œ! C€? “C¬Å'7^@ C€¿]}CÛI@ C€?^}C � "5ý !6Dð? »¡ 5»¢ô 6»£¶! 5”ý 6•! C€? “! <” ”’" C@ ” A” ”’" ”’ B” ”’" ”’ C” #”’" ”’•"#”!5 #”" ”!6 ”"<  #”"#”"A’!B #”"C 6“!SC€?  #”"# ”" ’“  ” ( (”’ 7 7”’‘" ! !” K K”’ N N”’‘ “ "”’"” C 6’ $ $” & &”’ G G”’‘"! I I” L L”’ O O”’‘ !“ "”’"!” < A“ % %” ' '”’ H H”’‘"$ J J” M M”’ P P”’‘ $“ "”’""” S ”  ”" 5”" “!C€? 5”" ’“ !” ’ "” B ”  !”C€? #’“ "”« ! !!!!!!!"        ! !!!!!!!"  C   C   C R * +C€? !!!!!!!!!!!!!!!" 8 T 8 T 8 T 8 T 8 T 8 T 8 T 8 T 8 T 8$ T 8( T 8, T 80 T 84 T 88 T 8< T*(" Œ!& T*$" Œ!' T* " Œ!7 T*  T* T*, T*< T T*! T*! T*!! T*!" T*! T*!( T*0!# T*4!$ T*8!% ZAF@ Œ Œ ŒCC€?Cª ! !!!!!!!"  C   C   C # $ %C€?     ! " ( « ! !!!!!!!"" " """” " " ”“” "! " ” "”“”“ " ”  ”“”’C]@ Œ! "Œ!" Œ! Œ! Œ! Œ! !Œ!! Œ! Cüÿ?]@ Cüÿ¿^@ C[ !C[q C[q C[q C€?[q@ Œ ƒ CC  Œ€  "ƒ ! ƒ  CÛÉ? ƒ C  CÛÉ¿ ƒ ŒC !+!*")! +! *! ZAF}C! CC ZAF ! þ ! ý "Œ!! þ !" ý " Œ! þ ! ý " Œ!( "C CC€?C C "C€?CCC  C ! ¨ ! !!!!!!!"        C ( CCCC€?¨ ! !!!!!!!"  C   C   C # $ %C€? !!!!!!!!!!!!!!!" 8 T 8 T 8 T 8 T 8 T 8 T 8 T 8 T 8 T 8$ T 8( T 8, T 80 T 84 T 88 T 8< T*, T* T*  T*! T*(! T*$! T* ! T*!! T*! T*!" T*! T*!# T*< T*8!$ T*4!% T*0!( ^@ # " !   C€¿CCCC€?CCCC€¿¨ ! !!!!!!!"! ! ! !! ! !" ! !# ! ]@ U-0@ U¤ 7 ' &}A!WC  “C\ C U(8"V( "XE  XAF@ V(*  C U"Y*L"&   &^ C]!A$•C$c@ U(<"[( "XAH X"VAm!U@ U WJ@  [( UAtj*_@ U!V U!W V WjAm!U  X UAj"VL [("W UAtj*"& ^ VAt Wj*"' ]r U$• ' &“"'C4]@C?$c   &“ '•$c #•"VAH}C Y(8("U VAtj*" VAjAt Uj* “#c”’ © ! !!!!!!!"        # " !   ¨ ! !!!!!!!"! ! ! !! ! !" ! !# !  U-0@ U¤ CCC  “C\ CCC U(4"W( Am"YE  YAF@ W("V* V* V*  V!YC U"[*L"$   $^ C]!A$•C$c@ U(<"Z( "WAH W"VAm!U@ U XJ@  Z( UAtj*_@ U!V U!X V XjAm!U  W UAj"VL Z("W UAtj*"$ ^ VAt Wj*"% ]r U$• % $“"%C4]@C?$c   $“ %•$c [ Y¥ !+!*")!( +!$ *!% T `¶8@ T a¶8D TC8H $ T*@"” ! T*D"$”’ T*H"&”’’!' # " !   QCCC ECCC F¨ ! !!!!!!!"! #AÐj$ 8h 8l 8p C8t 8x 8| 8€ C8„ 8ˆ 8Œ 8� C8” ( ” " $”’  &”’’8˜ % # ” $”’  &”’’8œ '8  C€?8¤ µ|  ¡DbA +È a @ ( " Ak(AÎFA   Ak(AÎFA E@ A " (ÈA "@ -0@ ¤ *L»"DbA -æ|  ö"Dc@   !  A ™Dñh㈵øä>c ™Dñh㈵øä>cD    d Dc ! 9È AÀ°A�"@  9 AÀ° õŽ ¥ Û }| (È( E@ (¢e 3»"6™Dð?¥Dñh㈵øä>¢ 6 5»¡™fA  2»"6™Dð?¥Dñh㈵øä>¢ 6 4»¡™fA E  Aj!  A @  8@  8D  8H  8L  8P  8T *¤! * ! *œ! *˜! *”! *�! *Œ! *ˆ! *„!! *€!" *|!# *x!$ *t!% *p!& *l!'  *h8  '8  &8  %8  $8  #8  "8  !8  8  8$  8(  8,  80  84  88  8< 6X ž  È3} *¤! * ! *œ! *˜! *”! *„! *t! *h" *l" *p" !!"   *x"! *|"" *€"#!!"   *ˆ"$ *Œ"% *�"&!!"  ! ! ! ! ! !!!"!' *< *8 *4 *0 *, * *  * * *!!"   * * *!!"   * *$ *(!!"  !!!!!!!!"!( !) !* !+ !, !- !. !/ !0 !1 !2 !3 !4  [ ' ([q  [q - 3[ . 4[q , 2[qA  * 0[ + 1[q ) /[qA @ 8 8 8 8 !8 "8 #8 8 $8 %8$ &8( 8, 80 84 88 8< —!!"8@ 8D 8H ™!!"8L 8P 8T 8 8 8 8 !8 "8 #8 8 $8 %8$ &8( 8, 80 84 88 8< Ï/} *h *¤!# * !$ *œ!% *˜!& *” *� *Œ *ˆ *„ *€ *| *x *t *p *l  *@ *D *HÈ ! ! !!!!!!" *L"”  ”  ”!"!!" ! "  *P"”  ”  ”!"!!" ! "  *T"” ” ”!"!!" ! "! ! !!!!!!"  C!!!"      C!!!"     C!!!"    & % $ #!!!!!!!!!!!!!! ! " 8h  8l  8p  8t  8x  8|  8€  8„  8ˆ  8Œ  8�  8”  8˜  8œ  8   8¤ *¤! * !# *œ!$ *˜!% *”!& *�!' *Œ!( *ˆ!) *„!* *€!+ *|!, *x!- *t!. *p!/ *l!0 *h8 08 /8 .8 -8 ,8 +8 *8 )8 (8$ '8( &8, %80 $84 #88 8< Û ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s" (qAtj(!@ @ ("AqE@  ( F  A~q!  A "@  6 (A l Aj Ÿ ( " (F@ ( AlAmH ( (AtAr ü (! ("Aj6  A lj" 6 ž  6 (A l Aj Ÿ (Aj6  (  (qAtj"(6  6 ì ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@A  (Ar6 (Ak6 (Av"AjA (" AIO ( ( AlAmHA @ ü A ý ( ! (,! A!@  ( NE@@ ( Atj("( F ( ÄA @ "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (Aq  "Aj!   œ Aj!  ( !  AA™ H@ ( AtjA  kAtü  6 àAA³˜"A6 A6 A6 A6 Aš!AA³˜"A6 A6 A6 A6 Aš! (! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 @ ( "AJ@ AL@ ( Ak"Atj"(! A6  6 ! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (( Ak!@ AN@ ("( O@ ( Atj("E@ ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Ak!    â ( ! AAA™ AJ@ (A Atü A6 ( ! AAA™ AJ@ (A Atü A6 (! "( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 @ ( "AJ@ AL@ ( Ak"Atj"(! A6  6 ! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (( Ak!@ AN@ ("( O@ ( Atj("E@ ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Ak!   Ì ¾!@ ( J@ ( Atj(" Ak(A¾FA  ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @A  ( !  A A @ Aj!   Ak(A¾FA E@  A × (! (!AA‡ ˜"A6 A6 A6 A6 š!A!@  H@  A lj"(AqE@ "Aj! ( Atj" ("6  ( At  Ÿ Aj!  ( !  AA™ H@ ( AtjA  kAtü  6  ãA ( " AH  j"A AJ    H "k" AJ"A AJ"At"A¦˜!AA‰ ˜" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A    Atj  kAtü   k"AtjA Atü 6 � ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s" (qAtj(!@ @ ("AqE@  ( F  A~q!  A E@ ( " (F@ ( AlAmH ( (AtAr Å ( ("Aj6 Atj" 6 ž (Aj6  (  (qAtj"(6 6 è ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@  (Ar6 (Ak6 (Av"AjA (" AIO ( ( AlAmHA @ Å ²AA¦˜ Aj"At"AüÿÿÿK@ A¦˜!AA¦˜ AtAm"At"AüÿÿÿK@ A¦˜! (" (Atj! !@  G@ (AqE@  ("6    A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj"(6  6 Aj! Aj!  6 ž 6 6 ž 6 (6 [ ( AÀ… Âï (@ (,"E@AA£˜"� 6, ž  AÀ… – @ ("E@  ((   ( (›A� "  Ak(Av „  ("E@  (" " ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@  ( F  A~q!  A  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@  ( F  A~q!  A "E@ (A "E@ Ç! A€žAàž ! " A€¿Ä@ A   (ÂÂ! Ç Ð " A­"( G@ ! (   "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA Ò@ ( ï  A­! ("(Ak(AvE@  6  ž @A!@ ( J@  ( Atj(® Aj!  (("( "AJ@ Ak" ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E@ ( à ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (  (Aj6 -8E@ ¯ (0 à @ ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ( ÄA!A ("( "E ALr  (!@  H@  Atj( F@   Aj!  A "AN@ (  (!@ -0  (Ak6 (AJ  ±  (0"( ( ( "A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ (0 Ä ~  ("Ä@A€ç A�ÒÄ@ A�ÒAÇA€ç AAÿÿÿÿÈ    A�ÒÂAÇ@A€ç  Ak(AvAjAÿÿÿÿÈ  Õ”#}|~ AÀ… Â! (   "Ak(A~q"#AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  #jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  # Aw Awj A wj Awjj #A±ÏÙ²j !  #jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   #j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA Ò ( A!A E  "Ak(A~q"#AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  #jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  # Aw Awj A wj Awjj #A±ÏÙ²j !  #jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   #j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " (" (0"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A A  ("("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (A A A E@ ( AÀ… Âï (0 ÄA! @ (@   AAÈ AAƒ ˜"A: A6 A� 6 A6 A: 6 ž  É!Ý " �AH@AàË ÂAÀ�Â!A Ì ( ( A°Ä¦Â!A Aé˜"¸ A°Ë6  6 A6 A6  6  6 â A�ÒÆAj A �Æ"NA�   AjAÿÿÿÿÈú " ! Ö " - A  ú ! ( �ANA E@# "E@Õ ! A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " ( !A!A� !@ ( " J@ AJ AÐåA°Ä AkF  ( O@ ( Atj("E@ A � ÂÂ! Aj!  A� !AÀÍ ÂA Í ÂA€Í ÂAàÌÂ!AÀÎ ÂA�ΠÂAðÍÂ!A Aé˜"¸ AðÈ6  6 A6 A6  6  6 â (AG"%@ ((!AA‰ ˜"A6 A6 A6 A6 Aš! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 % ( " (! Ak("Aü F@     ¡  Aú F@     Ý  A "#EqA ("E A (,"  AÀ… Â" ¥•A  (!Aàž! A€¿Ä@AàžA   (ÂÂ!  Ç Ð ! ( A! A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò ( A! A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " ( A A ! # # AAƒ ˜"A: A6 A� 6 A6 A:  6  ž  AЮ Ä Aà° Ä@# ¤"-E@AÐê AAAàÎ ÂAðÛ (ÂA�Ïîê   "-E@ ë  ( µ "-E@ ë  (! A0AÑ ˜"÷  6 ê! (!A!@ ("( J@ (!  ( O@ ( Atj("E@ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  A!@ ("( J@  ( O@ ( Atj("E@ (@ Aj!   ("( O@ ( Atj("E@   A "@ ðâ  AA¾ ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A6  6  žAAƒ ˜"A: A6 A� 6 A6 A:  6  ž   AÀ° ÄE@ A°Ç Ê"-E@ �  (" Ak(Aº FA E@ AA‚ ˜"A: A6 A� 6 A6 A:  6  ž  "-E@ ë  AA¾ ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A6  ("6  žAAƒ ˜"A: A6 A� 6 A6 A:  6  ž   # ¤"-E@AÐê AAAàÎ ÂAðÛ (ÂA�Ïîê   "-E@ ë  @ ( ² "-"E@A  A ( "E   Ak(A˜FA @  Ak(A˜FA E@   A "@ ( ! ("(! (!A Aé˜"¸ A°Ø6  6  6  6  (!A Aé˜"¸ A°Ø6  6 A6 A6  AAÍ ˜"A6 A6  6 ("( !A0Aܘ""ú " (6 "A6A  AÀ° A�£AAð¤AÀ° ÂAÀ¤ÂAA «ÂAà£ÂAA «ÂAÀ£ÂÛ"E  (!AA‘˜"A6 A6 (!  (6  6 " 6 " ž " ("6 " ž " ("6 " žA! @ ("( J@ "(! ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  " (6 " ("6 " žA! @ ("( J@ ( M@ ( Atj(" E@ @ (AF@AÀ’AÀ° ÂA€“Â!A (!A!@ Ak(Av" J@  MA  Atj/ "A F A F A Fr A Frr@ Aj!    A "AHA A°¥ ŠAàù ÂAðøÂÙ E   (AF@ (!AЦAÀ° ÂAà¥Â! (E@ A°¥ ( ( ( Aî"6  ž A  (AF@A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A6  6,  ž "( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AF@A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A6  6,  ž "( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A#ì ("�"AF   AN AA A°üAÇ AÐàÄA  AàüÄA  "AH@A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A6  6,  ž "( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6   H@ (! (A�¨Â AFA�ø#ì"( M@ ( Atj("E@ A�ÏAÀ“ AF AFr  ÂAÀ§ÂAA¦™"A¨ø)7AA˜" 6  ž  6 A6 A6 AF AFr@ ( "Aj" (AvK@  AA™ ( Atj"AÀø6  At AÀøŸ  6 ( "Aj" (AvK@  AA™ ( Atj"AÀô6  At AÀôŸ  6 AF AFr AFr AFr AFr AFr@ ( "Aj" (AvK@  AA™ ( Atj"Aàˆ6  At AàˆŸ  6 ( "Aj" (AvK@  AA™ ( Atj"AÀ»6  At AÀ»Ÿ  6 AF AFr@ ( "Aj" (AvK@  AA™ ( Atj"AÀ–6  At AÀ–Ÿ  6 ( "Aj" (AvK@  AA™ ( Atj"AÀ�6  At AÀ�Ÿ  6 AF AFr@ ( "Aj" (AvK@  AA™ ( Atj"A ”6  At A ”Ÿ  6 ( ( A°Ä¦Â! (E@ A�§ ( ( ( Aî"6  ž A  A " AF@A!B!AA! "Aಉ"E@ A�¯ (AÀ’ (ÂA êÂAà²ÂAЯÂÙ A E  AÐ…‰" E@ A�¯ (AÀ’ (ÂA êÂAÐ…ÂAЯÂÙ A E ~ ("Ak(Av /A-FA @A!A! B€€€€€€€€€  Ak(AvN @ Ak(Av" J@  MA  Atj/ "A0H A9Jr@B€€€€€€€€€  AB€ ”¥�S@ A0k¬ AB ~|!A Aj!  B A} A  "BBSA (A€�AÇ @ (!AÐð (ÂAÀ�Â! (E@ A Ü ( ( ( Aî"6  ž A  A(AÚ˜"� (!A Aߘ"A6 A6 A6 AA¦˜"6  6 A6  6  47  6  B7 (!AA‘˜"A6 A6 (!  (6  6  6  ž  ("6  ž  6$  ž ("( AJ ( E@ (("E@ ( ( !AA‘˜"A6 A6 (!  (6  6  6  žA!A!@ ("( J@  ( O@ ( Atj("@  (Ak(Avj! Aj!  A Aߘ" A6 A6 A6 AüÿÿÿK@ A¦˜"6 6 6A!A!@  (( H (Ak(AvA E@ " ("( O@ ( Atj(" E@ ("AG@ AÀñ  AFAÀ«AÐïAð« (AF AÀ’ (ÂA€“ Â"6  ž (!AA‘˜"A6 A6 (!  (6  6  6  ž (! A!@@  Ak(Av"N  OA Atj/ " "A F A F A Fr A FrrE@ AÿJ@ Aðò ¾ÂA°òÂ"6  ž  Š"6  ž  "Aj!  (O@ ( j : Aj!  Aj!  (Ak(AvE@ Aq@ A�ô A «ÂAÀóÂ"6A! AHA  (J @AÀõ$ AAÐÊAÀõÂ" Ak(A~q7#"@A$ Ak( @ Aq@A�ö A «Â!  E@A Aߘ"A6 A6 A6 AA¦˜"6  6 A6AA¬˜"A: A6 A� 6 A6 A:  6  ž   Ak" (O@ ( j-A=F@ Ak" (O@ AA ( j-A=F! A Aߘ"A6 A6 A6 ! AmAl k"AüÿÿÿK@  A¦˜"6  6  6 !A! #ë" E@AAјA€Aј! @ A€H@Aÿ AÁk AÚL AÁNq  AÇk AúL AáNq  Aj A9L A0Nq A> A+F A? A/F A "Aÿq AH! Ak(O@ j : Aj!  $ë ! (! AA AJk! A! (! @ J@  j("Aÿqj-!  Avj-"  AvAÿqj-"  AvAÿqj-" rrrA€q@ Aj!@  J@  (O@ ( j-" Ak(O@   j-AÿF  Aj!    At A tr Atr r"Av: Av: : Aj! Aj!  AJ@  j-j-!  Ajj-j-! AF  Ajj-j-A "  rrA€q@ Aj k!@  J@  (O@ ( j-" Ak(O@   j-AÿF  Aj!    At A tr Atr"Av: AF@ Av: A "AN@ ( M@ ( j-A=F@AÐö A «Â!  A°÷ A «Â!  AA¬˜"A: A6 A� 6 A6 A:  6  ž   AA¬˜"A: A6 A� 6 A6  6  ž  "-@  ("6 Aðô (Â"6  ž A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A6  6  ž   AF@  Aß"A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A6  6  ž A  @@ AF@A!A  A�îå"E AA”˜" ‹ (6 (!AA‘˜"A6 A6 (!  (6  6 6 žA!@ ("( J@  ( O@ ( Atj("E@ (A�îÄE@ (!  ("( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  @ ("( J@  ( O@ ( Atj("E@ (E@ (!A!@#ûAk(Av J@ #û Atj( Ä  Aj!  A "AN@A A�î‰"E@ A�¯ (AÀ’ (ÂA êÂA�îÂAЯÂÙ A E A A“˜"Œ (!  6  6 (!AA‘˜" A6 A6 (! (6 6  6  žA!@ ("( J@  ( O@ ( Atj(" E@ @ (A�îÄ (AÐéÄE@ (" ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  @ AF@   ä:  ("6  ž    ã9 A (  Aj!  AAÀ’ (ÂA�ŽÂ (ÂA�îÂ! A!@ ("( J@ " ( O@ ( Atj("E@ (AF (! A!@ Ak(Av" J@A  MA Atj/ "A F A F A Fr A FrrE  Aj!  A A @ Aj!  (AF (! A!@ Ak(Av" J@   MA  Atj/ "A F A F A Fr A FrrE  Aj!  A Š ( !AÀ’ (ÂAÐî Â! (E@ A ª ( ( ( Aî"6  ž A  A E   "E  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AÀ­Ä@A  á"E  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A  #ª (æE  "E A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A 6  6  AF@A!A  A�îå"E AA¢˜"�  (6 (!AA‘˜"A6 A6 (!  (6  6  6  žA!@ ("( J@  ( O@ ( Atj("E@ (A�îÄE@ (!  ("( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  @ ("( J@  ( O@ ( Atj("E@ (E@ (!A!@#_Ak(Av J@ #_ Atj( Ä  Aj!  A " AN@AA  A�îå"E A(A¡˜" Š (! 6 6 (!AA‘˜"A6 A6 (!  (6  6 6 žA!@ ("( J@  ( O@ ( Atj(" E@ @ (A�îÄ (A �ÄE@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  @ AF@  ä: (!AÀ’ (ÂAàìÂ!AÐí (ÂA�ŽÂ (ÂA€âÂ! (E@ A Ü ( ( (  î"6  ž   ã9 A (  Aj!  A!@ ("( J@  ( O@ ( Atj("E@ (A (AÀ­Ä @A  á"E  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A  #© ( æE  "E  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (A )Ä@AA  A�îå"E AAŸ˜"„  (6 (!AA‘˜"A6 A6 (!  (6  6  6  žA!@ ("( J@  ( O@ ( Atj("E@ (A�îÄE@ ( !  ("( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@ ("( J@  ( O@ ( Atj("E@ @ ( (!A!@#5Ak(Av J@ #5 Atj( Ä  Aj!  A "AH AA!$AØAœ˜"…  " 6 " (!AA‘˜"A6 A6 (!  (6  6  6H  ž@ AF AFr" AFr A�î‰"E@ A�¯ (AÀ’ (ÂA êÂA�îÂAЯÂÙ EA AF Aಉ"E@ A�¯ (AÀ’ (ÂA êÂAà²ÂAЯÂÙ EA AF A�±‰"E@ A�¯ (AÀ’ (ÂA êÂA�±ÂAЯÂÙ EA E AFr AFr!@ ("( $J@ $ ( O@ ( $Atj(" E@ ("AГÄ@   ã9 A€—Ä@   ã9 @ (L"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A�îÄ@  ("6  ž A�²Ä@   ã9  AÀÞÄ@   ä:( AàÞÄ@   ä:) AFA A€ßÄ@  ("6  ž AFA Aà²Ä@  ("6,  ž AFA AÀ½Ä@  ("60  ž AFA A�ÂÄ@  ("64  ž AFA A�±Ä@  ("68  ž (L"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (  $Aj!$  Að1A 2A� AF !A!$@ ("( $J@ $ ( O@ ( $Atj("E@ @ ( Ak(Av ( ÄA @A!A! A€ß‰"E@ A�¯ (AÀ’ (ÂA êÂA€ßÂAЯÂÙ A E AÀA›˜"‰ (!  AF":  6 (!AA‘˜"A6 A6 (!  (6  6  60  žA! A!A!@ ("( J@ ( M@ ( Atj("E@ ("A€ßÄE@ A A �Ä @    ã9  Að°ÄA @    ã9 !   A�±ÄA @  ("6  žA!  Aà²ÄA @  ("6$  žA! !  AÀ½ÄA @  ("6(  ž  A�ÂÄA @  ("6,  ž (4"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A (  Aj!  @ AAA  6  r q@  +DY@aA @ (4"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6   qq ($Ak(AvA A E@ (4" ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A  #© (8æE   "E  (<"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (!A! @#?Ak(Av J@ #? Atj( Ä  Aj!  A "AN@   è"E  (D"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AÀ1Ä@A! A౉"E@ A�¯ (AÀ’ (ÂA êÂAà±ÂAЯÂÙ @ E A4A˜˜"!† ! (6 (!AA‘˜"A6 A6 (!  (6  6 ! 6( ! žA!@ ("( J@  ( O@ ( Atj("E@ ("Aà±ÄE@ A A°ßÄA AðßÄ @ ( !AÀáA°àÂ! (E@ A Ü ( ( ( Aî"6  ž  A�±Ä@ !   BAàââ6 AàãÄ@ !   BAàââ6 AÀ·Ä@A! (!@#pAk(Av J@ #p Atj( Ä  Aj!  A ! (A€¸Ä@ (!AÀ’ (ÂA ¸Â! (E@ A Ü ( ( ( A�¹î"6  ž A  AH@ (!AÀ’ (ÂAðºÂ#p" Ak(AvA°Ä¦ÂAà²Â (ÂAÀ�Â! (E@ A Ü ( ( ( AÀ»î"6  ž "AN@ ! 6  A€äÄ@ !   BA°äâ6 AÀ¡Ä@ !   ä: A€åÄ@ !   ä: AÀåÄ@ !   ä: A°ßÄA AðßÄ @ !   ä:A! AðåÄ@ !   ä: A æÄ@ !   ä: !(," ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (  Aj!  A!@ ("( J@  ( O@ ( Atj(" E@ @ ( (!A! @#dAk(Av J@ #d Atj( Ä  Aj!  A "AN@ !(@ (!AÀ’ (ÂAÀ¼Â! (E@ A Ü ( ( ( AÐæî"6  ž   ç"E  ! 6 ! ž  (!A! @#kAk(Av J@ #k Atj( Ä  Aj!  A "AN@A E" Aಉ"E@ A�¯ (AÀ’ (ÂA êÂAà²ÂAЯÂÙ EA A AF" A€¹‰"E@ A�¯ (AÀ’ (ÂA êÂA€¹ÂAЯÂÙ  A�݉"E@ A�¯ (AÀ’ (ÂA êÂA�ÝÂAЯÂÙ EA A A AF AFr AFr" A�±‰"E@ A�¯ (AÀ’ (ÂA êÂA�±ÂAЯÂÙ EA AÀA–˜"‡  6 (! AA‘˜"A6 A6 (!  (6  6  64  ž  r!A!@ ("( J@  ( O@ ( Atj("E@ (!  Aà²ÄA @  ("6  ž  AÀ½ÄA @  ("6  ž  A�ÂÄA @  ("6  ž  A€¹ÄA @  ("6  ž  A�ÝÄA @  ("6  ž  A�±ÄA @  ("6  ž AGA AðˆÄ@ (!A! @#ÈAk(Av J@ #È Atj( Ä  Aj!  A "AH@ (! AÀ’ (ÂAàçÂ#È" Ak(AvA°Ä¦ÂAà²Â (ÂAÀ�Â! (E@ A Ü ( ( ( A èî"6  ž   6 A AF" A A �Ä@ @   ã  ("6  ž A:$  A�éÄA @  ("6(  ž  AÀéÄA @  ("6,  ž  AðéÄA @  ("60  ž (8"( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A (  Aj!  A  #© (<æE   "E  !( "( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (!A! @#?Ak(Av J@ #? Atj( Ä  Aj!  A "AN@  è"E  !($"( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   #À !(0æE !  A "E  (@"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 $Aj!$   #¾#¿#½ AF (PæE AF ( (ÄA @ A� 6   A "E  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A  #¼ (æE   "E  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (Aà)Ä@AA  A�îå"E  AÀΉ"E@ A�¯ (AÀ’ (ÂA êÂAÀÎÂAЯÂÙ A E A(A§˜"‚  (6 (!AA‘˜"A6 A6 (!  (6  6  6  žA!@ ("( J@  ( O@ ( Atj(" E@ ("A�îÄE@ AÀÎÄ@ (Ð "AN@  6#¦ (�AN@ (!AÀ’ (ÂA€Ñ (ÂAÀÐÂ! (E@ A Ü ( ( ( #§î"6  ž  (!AÀ’ (ÂA�ÕÂAA˜"A6 A6 A6 A6 Aš!A! @#PAk(Av J@#P Atj(Ð AN@ #P"Ak(AvO@  Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( ( A°Ä¦ÂAà²Â (ÂAÀ�Â! (E@ A Ü ( ( ( AÐÕî"6  ž  A€¹Ä@  ("6  ž AÀ Ä@  ("6  ž Aà²Ä@  ("6  ž AÀ½Ä@  ("6  ž ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A (  Aj!  A!@ ("( J@  ( O@ ( Atj("E@ @ ( (!A!@#`Ak(Av J@ #` Atj( Ä  Aj!  A "AH A   AFAÀ A€¹A�± AF Aಠ"‰"E@ A�¯ (AÀ’ (ÂA ê ÂAЯÂÙ A E A AF AFr" A �‰"E@ A�¯ (AÀ’ (ÂA êÂA �ÂAЯÂÙ EA A   6  ž  ô "- (("AG AGA A @ (!AÀ’ (ÂAàÅ ÂAÀ�Â!  (!AAì˜"Ü  õ  ê"6  ž  Aà�Í"( AF!AAÀ˜"A6 A6 A6 A6 Aì! @  AHq@  ( O@ ( Atj("E@  É� Ø  ( O@ A ( Atj+"? ?a! Aj!  E@ (!AÀ’ (ÂAðÆÂ ÂAÀ�Â!  ( E@  (+9 ( AM@  (+9( ( AM@  (+90 ( AM@  (+98  (!AÀ’ (ÂAàÇÂ! (E@ A Ü ( ( ( Aî"6  ž  (E@ A Ü ( ( ( Aî"6  ž  AÀ·Ä@ (!A!@#pAk(Av J@ #p Atj( Ä  Aj!  A ! (A€¸Ä@ (!AÀ’ (ÂA ¸Â! (E@ A Ü ( ( ( A�¹î"6  ž  AH@ (!AÀ’ (ÂAðºÂ#p" Ak(AvA°Ä¦ÂAà²Â (ÂAÀ�Â! (E@ A Ü ( ( ( AÀ»î"6  ž   6@  (L"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A (  Aj!  A!@ ("( J@  ( O@ ( Atj("E@ @ ( (!A!@#dAk(Av J@ #d Atj( Ä  Aj!  A "AH (D@ (!AÀ’ (ÂAÀ¼Â! (E@ A Ü ( ( ( A€½î"6  ž A  A   ç"E   6D  ž Aj!  A  #¥ (PæE   "E  (" ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  A  #¤ (æE  "E  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A  #£ (æE   "E  (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A  #¢ (4æE   "E A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A 6  6$  E@  Ü"E A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A6  6  AF@ A°é‰"E@ A�¯ (AÀ’ (ÂA êÂA°éÂAЯÂÙ E  A�Ù‰"E@ A�¯ (AÀ’ (ÂA êÂA�ÙÂAЯÂÙ   (Ak(AvA E@ A Ü (AÀ’ (ÂAà®ÂÙ  A A E AAט"ü A6 A6 (!  (6  6 (!AA‘˜"A6 A6 (!  (6  6  6  ž  ("6  ž  àE A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A6  6  ž   AF@ A�î‰"E@ A�¯ (AÀ’ (ÂA êÂA�îÂAЯÂÙ E AAؘ"ü A6 A6 A6 A6  (6  A�Ù‰" (Ak(AvA E@ A Ü (AÀ’ (ÂAà®ÂÙ  A E  @  ("6  ž  AÀñ‰" (A "6  ž AÀÕ ‰"@ (ô "-E@ (! ("(AL@AA‘˜"A6 A6 (!  (6  6   ( ( A° ! (! ( ! (E@ A°¨ ( ( (  î"6  ž  ((AG@ (! (E@ A Ü ( ( (Aà¨Aî"6  ž   ("6  ž (!AA‘˜"A6 A6 (!  (6  6  6  ž  ("6  ž  àE A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A6  6  ž   AÀœ‰"E@ A�¯ (AÀ’ (ÂA êÂAÀœÂAЯÂÙ E A€°‰"E@ A�¯ (AÀ’ (ÂA êÂA€°ÂAЯÂÙ E A౉"E@ A�¯ (AÀ’ (ÂA êÂAà±ÂAЯÂÙ E Aàœ‰"E@ A�¯ (AÀ’ (ÂA êÂAàœÂAЯÂÙ E A AÙ˜" û (! (! (! (6 6 6 6 A€�‰"@~A!B!AA! ("Ak(Av /A-FA @A!A! B€€€€€€€€€  Ak(AvN @ Ak(Av" J@  MA  Atj/ "A0H A9Jr@B€€€€€€€€€  AB€ ”¥�S@ A0k¬ AB ~|!A Aj!  B A} A  "B BÄR@ (!AÀ© (ÂAÀ�Â! (E@ A Ü ( ( ( Aî"6  ž  B> (!AA‘˜"A6 A6 (!  (6  6 6 ž ("6 ž  (ÚE A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A6  6  ž   A   ž  "E  "( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  " ! ("@ �  E@A Aé˜"¸ A°Ø6  6 A6 A6 Aà¢6 A6 �  AAç˜"A: A6 A� 6 A6 A:  6  ž    6 Að 6 � "-E@ ë  (!A0AÑ ˜"÷  6 ê! (!A!@ ("( J@ (!  ( O@ ( Atj("E@ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  A!@ ("( J@  ( O@ ( Atj("E@ (@ Aj!   ("( O@ ( Atj("E@   A "@ ðâ  AA¾ ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A6  6  žAAƒ ˜"A: A6 A� 6 A6 A:  6  ž   A°ÇÄ#M"E@AA„ ˜"$M AA’ ˜"A� 6 A6  6 Ak("A�F@ ¨AG@   ¬  # ¤"- (ŒA    ¬  A„ F@A°™ ÂAИÂ!#º!A Aé˜"¸ A ˜6  6 A6 A6  6  6 Ç  "-E@ ë  (! A�ÒÆAj A �Æ"NA�   AjAÿÿÿÿÈú AÀ± Ä@ (! "A€çAÇ@ AAÿÿÿÿÈ! A �Æ!  A�ÒÆ" A€™Æ"  JAjJ A È  ! A°ØÂAÀ± ÂA€ØÂ ÂA°×ÂA€× ÂAÐÖÂAà#ÂA°Ö ÂA€Ö ÂA°ÕÂAðÔ ÂAÐÔÂ!#Ã! (!A Aë˜"Ð A6 A�Ó6  6 A6 A6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A!@ (("( J@ ((!  ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A! @ ($"( J@ (! ( O@ ( Atj("E@ AðÓA Ô AÐÓAÇ! (!A Aë˜"Ð A6  6  6 A6 A6  6 A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AAƒ ˜"A: A6 A� 6 A6 A:  6  ž   A°« Ä# ¤"-E@AÐê AAAàÎ ÂAðÛ (ÂA�Ïîê   "-E@ ë  · " ú A°· ÄA @ (þ "-E@ A€›Â (Â!#ü!A Aé˜"¸ AК6  6 A6 A6  6  6 â  A8A– ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A6 A6 A6 A6$ A6( A6, A:0 A:1 A64  ("6  ž  ((6  ((6 AAƒ ˜"A: A6 A� 6 A6 A:  6  ž   (Ç"-E@ Að� (Â!A Aé˜"¸ AК6  6 A6 A6  6 A°ž6 â  A8A– ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A6 A6 A6 A6$ A6( A6, A:0 A:1 A64  ("6  ž  ((6  ((6 AAƒ ˜"A: A6 A� 6 A6 A:  6  ž   A€¿ÄA A• ˜"A� 6 A� 6 A� 6 A� 6 A6 A6AA¦˜!AA˜" 6  ž  6 A6 A6  6AA¦˜!AAî˜" 6  ž  6 A6 A6  6 A€¿6 (A€¿AÀ…  ™#M"E@AA„ ˜"$M  Ak("A�F@A!# ¤"-E@AàÎ ÂAðÛ (Â!A Aé˜"¸ AÐê6  6 A6 A6  6 A�Ï6 â   ("( ( (k" ( j£ " Ak(Ò â"-E@ ( "  Ak(AóFA A @  Ak(AóFA E@ ("AÐö'ÄAÐö' A€÷'ÄA€÷' A°÷'ÄA°÷' Að÷'ÄAð÷' A ø'ÄA ø' Aàø'ÄAàø' A ù'ÄA ù' AÐù'ÄAÐù'A€ú'A é' A€ú'Ä ! ( ! (! (! (!A Aé˜"¸  6  6  6  6  6  6 �  (!A Aé˜"¸ A é'6  6 A6 A6  6 A6 �  ("(! A0Aܘ"ú  6 A6 "E@AAô˜"A6A A�˜"A6 A: CÍÌL=8  6 AAAõA¤6AAö˜"½  6  6  Aðé'é"6  žAAî˜"A6 A6 A6 A6 Aš!AA¨˜" ½AA¨˜" ½AAá˜"A6 A6 A6 A6 Aš! AAÉ ˜…" ((6�  (-:”  (*8Œ@ AH@ („"( M@@ ( Atj(" E@A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A๠A°« ("! A�ê' A «ÂA ™Âé! A€’ (Â" ¥Ò@  ¥Ò"E@ (! AÀê' A «Â"™AAÖ˜" € (! 6 6 6 6 žAA’˜"A� 6 A� 6 A� 6 #66 #66 (! Aà²6  6  6  ž  6  ž ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A6  6  ž  í E@A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6  ž ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (A€ˆÂ (ÂA€ˆÂ (ÂA€ˆÂ (A «ÂAГ ( A «ÂA€ˆÂ (A «ÂAÀ“ *¦Â" ¥Ò@  ¥Ò"E@ (!A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6  ž ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  Aàê' A «Â"™A(Aí˜" A6 A: B7 D9 A� 6 #6 #6 #6$ A6 6 ž ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A�ê' A «ÂA ™Â!AAט"ü A6 A6  6 AÀ‰6   Aðô'Â"  ( A!A E  "Ak(A~q" AOA¨ˆ�¡! A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@ (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò" é"6  žA(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6  ž A°À   éê (!A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6  ž AÀÁ   éê ("Ak(Av@A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6  ž A Â   A õ'Â" ( A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Òéê (AJ ( AJA @AA¦˜!AAÀ˜" 6  ž  6 A6 A6 ( (·9 ( ( ·9A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  ž AÐ…   AÐõ'Â" ( A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Òéê (AG@ 4!BA(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  B7 Aàî   Aðõ'Â" ( A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Òéê *"&C^@A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  &»9 A Ê   A ö'Â" ( A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Òéê ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@ ( J@ ( Atj(!A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A6  6  ž  í Aj!  AAט" ü A6 A6 A� 6 A�Ø 6 A Ýé"6 žA�Ø Ù ! A!@ ( J@ ( Atj("(! A!@@@@@#0Ak(Av J@ #0 Atj("AÇ@  (ð"( O@ ( Atj("E@ Ä@@@@@@@@@@@@@@@@@@@@@@   ($  (,  (4  (\  (d  (P  (Ì  (Ð (Ô (ü („ (¨ (¼  (”  (œ  (¼  (Ì  (è  (Ø  (ì  A   ( O@ ( Atj("E@ A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6   AÀºÂÄ@ 4!A  A€¼ÂÄ@ *!7 *"&“ ¥ "-| + &» 7“ ¥ "-| + 7» ÷  A ½ÂÄ@ * "&“ ¥ "-| + &» !>  A�¿ÂÄ@ *!7 *"&“ ¥ "-| + &» 7“ ¥ "-| + 7» ÷  Aj!  A°¥ Ä@ ( !A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6  ž   A€Ú Ä@ * !8 *!9 *!7 *"&“ ¥ "-| + &» 7“ ¥ "-| + 7» 9“ ¥ "-| + 9» 8“ ¥ "-| + 8» ø  A�ÚÄ@ *("&“ ¥ "-| + &» !>  AðÚÄ@ *0"&“ ¥ "-| + &» !>  A�áÄ@ -9!  A€ß Ä@ *H!8 *D!9 *@!7 *<"&“ ¥ "-| + &» 7“ ¥ "-| + 7» 9“ ¥ "-| + 9» 8“ ¥ "-| + 8» ø  Aàß Ä@ *L"&“ ¥ "-| + &» !>  A°àÄ@ -T!  Aàá Ä@ *X"&“ ¥ "-| + &» !>  AààÄ@ -`!  AÀÞÄ@ 4h!A  AðÞÄ@ *l"&“ ¥ "-| + &» !>  A�ç Ä@ 4p!A  A°ßÄ@ -t!  A€ê Ä@ -u!  Aðë Ä@ *x"&“ ¥ "-| + &» !> *|"&“ ¥ "-| + &» !@ *€"&“ ¥ "-| + &» !?  Aàí Ä@ *„"&“ ¥ "-| + &» !> *ˆ"&“ ¥ "-| + &» !@ *Œ"&“ ¥ "-| + &» !?  A€àÄ@ 4˜!A  AÀ†Ä@ *œ"&“ ¥ "-| + &» !>  AÐÝÄ@ * "&“ ¥ "-| + &» !>  A€ÝÄ@ *¤"&“ ¥ "-| + &» !>  A ÝÄ@ *¸!8 *´!9 *°!7 *¬"&“ ¥ "-| + &» 7“ ¥ "-| + 7» 9“ ¥ "-| + 9» 8“ ¥ "-| + 8» ø  AÀŽÄ@ -À!  A°âÄ@ *Ä"&“ ¥ "-| + &» !>  AàâÄ@ *È"&“ ¥ "-| + &» !>  A ”Ä@ *Ø"&“ ¥ "-| + &» !>  AЕÄ@ -Ü!  AàáÄ@ *à"&“ ¥ "-| + &» !>  A æÄ@ *ä"&“ ¥ "-| + &» !>  A°áÄ@ *ø!8 *ô!9 *ð!7 *ì"&“ ¥ "-| + &» 7“ ¥ "-| + 7» 9“ ¥ "-| + 9» 8“ ¥ "-| + 8» ø  A€âÄ@ *€"&“ ¥ "-| + &» !>  A°âÄ@ -ˆ!  A°ÜÄ@ *�"&“ ¥ "-| + &» !>  A°äÄ@ *˜"&“ ¥ "-| + &» !>  AàäÄ@ * "&“ ¥ "-| + &» !>  A åÄ@ *°!8 *¬!9 *¨!7 *¤"&“ ¥ "-| + &» 7“ ¥ "-| + 7» 9“ ¥ "-| + 9» 8“ ¥ "-| + 8» ø  AàæÄ@ *´"&“ ¥ "-| + &» !>  AÐßÄ@ *¸"&“ ¥ "-| + &» !>  A€àÄ@ *À"&“ ¥ "-| + &» !>  A ¯Ä@ *Ä"&“ ¥ "-| + &» !>  A ±Ä@ *È"&“ ¥ "-| + &» !>  Aà´Ä@ -Ð!  A°óÄ@ *Ô"&“ ¥ "-| + &» !>  AÐãÄ@ *è!8 *ä!9 *à!7 *Ü"&“ ¥ "-| + &» 7“ ¥ "-| + 7» 9“ ¥ "-| + 9» 8“ ¥ "-| + 8» ø  Aðï Ä@ 4�!A  A�ó Ä@ -”!  AðâÄ@ *Œ"&“ ¥ "-| + &» !>  A  A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  A7   A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  >9   A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  :   AAAÀA¤"( >9 ( @9 ( ?9A ö "  (ûA E@AAϘ" þ (6 6  (!A!@@#0Ak(Av J@ #0 Atj("Ä A! @#–Ak(Av J@ #–"Ak(AvO@  Atj("E@   ÂÄ  Aj!  Aj!  A�î A°¥ Ä A€ë' A€Ú Ä  A€ß ÄA A�áÄ @A!AÐã!AÌã(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! AÀãj!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j ! AÌãj!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AÐãj!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  AÐãA°ë' ( AÐã  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ  AЄ% Aàß Ä Aàë' A°àÄ A�ì' Aàá Ä AÀì' AààÄ Aðì' AÀ†Ä A�­" AÀÞÄ Að�% AðÞÄ  A�ç Ä@A!A€ƒ%!Aü‚%(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! Að‚%j!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j ! Aü‚%j!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A€ƒ%j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  A€ƒ%A°í' ( A€ƒ%  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ  Aàí' A°ßÄ A î' A€ê Ä Aàî' Aðï Ä A�ï' A�ó Ä AÐï' AðâÄ A€ð' A€àÄ A ð' A ÝÄ  AÀŽÄ@A!A°â!A¬â(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! A âj!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j ! A¬âj!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A°âj!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  A°âAÐð' ( A°â  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ  A€ñ' AàâÄ AÀñ' A ”Ä  AЕÄA AàáÄ @A!A ß!!Aœß!(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! A�ß!j!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j ! Aœß!j!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A ß!j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  A ß!A€ò' ( A ß!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ  Aàß! A æÄ A°ò' A°áÄ Aàò' A€âÄ  A°âÄ@A!A°Ü!A¬Ü(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! A Üj!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j ! A¬Üj!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A°Üj!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  A°ÜA�ó' ( A°Ü  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ  A€Ô! AàäÄ AÀÔ! A åÄ AÀÜ! A€àÄ AðÜ! A ¯Ä AÀÝ! A ±Ä  Aà´ÄA A°óÄ @A!AÀó'!A¼ó'(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! A°ó'j!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j ! A¼ó'j!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AÀó'j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  AÀó'A€ô' ( AÀó'  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ  A°ô' AÐãÄ    A�ê' A «ÂA ™Â é"6 ž 6 ž (! AAј"ý A6  6  ž ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  A!@@ ( "( J@  ( O@ ( Atj("E@ (@  ( "( O@ ( Atj("E@  6  ž  Aj!  A0AÛ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A6  6  ž  í !@ ("( J@ ($!  ( O@ ( Atj("E@ A Aë˜" Ð ( ! (! (! (! A6 AÀé'6 6 6 6 6 6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  (!A!AA˜"A6 A6 A6 A6 Aš! AA�˜" ½AA¨˜"½@ ( J@ ( Atj(" - ( Ak(AvA @ ( " ¥ÒE@ ( ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ( AÓ  ( ($™ ( "  ¥Ò"E@ (AjÓ Aj!  AA˜"A6 A6 A6 A6 Aš!A! @ ( J@  ( Atj(" ¥Ò"E@ (! ( O@ ( Atj("E@  ¥Ò"E@ (! Ak(Av@ AF ( O@ ( Atj("E@ ã A «AÀ…  ! ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ( ( A°Ä¦"6(  žAAç˜"A: A6 A� 6 A6 A:  6  ž  "-E@ ë  (!A0AÑ ˜"÷  6 ê!A!@ ("( J@  ( O@ ( Atj("E@ (AÐÜÄE@ ((!  ("( O@ ( Atj("E@ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  A!@ ("( J@  ( O@ ( Atj("E@ (@ Aj!   ("( O@ ( Atj("E@   A "@ ðâ    ó"-E@ ë  (!AAƒ ˜"A: A6 A� 6 A6 A:  6  ž   A„ F@AÐê AAAàÎ ÂAÀè'Â#ºîâ  "-E@ A€¿ Æ  A๠Ä# ¤"-E@AàÎ ÂAðÛ (Â!A Aé˜"¸ AÐê6  6 A6 A6  6 A€Ô6 â  (Ï "-E@ Aðþ (Â!#¹!A Aé˜"¸ AÀþ6  6 A6 A6  6  6 â  AA˜ ˜"A� 6 A� 6 A� 6 A� 6 A6 A6  ("6  žAAƒ ˜"A: A6 A� 6 A6 A:  6  ž   A€¼ Ä# ¥"-E@AàÎ ÂAðÛ (Â!A Aé˜"¸ AÐê6  6 A6 A6  6 A€Ô6 â  AA™ ˜" A� 6 A� 6 A� 6 A� 6 A6 A6 ( Ž "-@ (" 6  ž ("6 žAAƒ ˜"A: A6 A� 6 A6 A:  6  ž   (!A - A ( "E   Ak(AéFA @  Ak(AéFA E@   A " ( A !  (A ! AðÕ  ( ( Â!A°×Aà#ÂA€× ÂAÀÖÂ! (!A Aë˜"Ð A6 A°Õ6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAƒ ˜"A: A6 A� 6 A6 A:  6  ž   A�ÆÄ# ¤"-E@AàÎ ÂAðÛ (Â!#¾!A Aé˜"¸ AÐÞ6  6 A6 A6  6  6 â  AA� ˜"A6 A6 A6 AAA¤A¤6 AAA¤A¤6  6  6A!A!A! ( (² "-E@ A - A ( "E   Ak(A˜FA @  Ak(A˜FA E@   A " (A A�ß  (  ( §  (( "(AÐßÄE@  (AÐà (ÂA€à§   AÀáAAÿÿÿÿ©!@ ( AG@  (A�° A «ÂAàáÂAA «ÂA �§  AAï˜"ï  AÐâAA€ ©!  A€Ý AA€ ©! ( ( 6 ( 6AA•˜"A6 A6 A6 A6 Aš!@ ("( J@  ( O@ ( Atj("E@ (E@  ("( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AA•˜"A6 A6 A6 A6 Aš!AA•˜"A6 A6 A6 A6 Aš!AA•˜"A6 A6 A6 A6 Aš!@ ( J@ ( Atj("(AðâÄ@ @  (A�ã§  ! (AÐãÄ@ @  (Aðã§  ! (A°äÄ@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AÀÕ Ä@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AÐäÄ@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  @@ ( ! A! AУ‰" (A "@#á!@ Ak(Av J@   Atj( Ä  Aj!  A "AH@  (A°… ÂA€…Â#á" Ak(AvA°Ä¦Â§  6 A�¦‰" (A @  A�¦AAÿÿÿÿ©6 Að§‰" (A @  Að§ª8 A°«‰" (A @  A°««: AЭ‰" (A @  AЭ«: A€¯‰" (A @  A€¯«: Að¯‰" (A @  Að¯ª8 A ±‰" (A @  A ±AAÿÿÿÿ©6 A°²‰" (A @  A°²ª8 A€¸‰" (A @  A€¸ª8 Að³‰" (A @  Að³ª8 ( A º‰" (A "@#â!A!@ Ak(Av J@   Atj( Ä  Aj!  A "AH@  (Að… ÂA€…Â#â" Ak(AvA°Ä¦Â§  6( Að‰" (A @  AðÂAAÿÿÿÿ©! ( A!A!@A¬†(Av J@    AtA°†j(F! Aj!  AH@  (A°‡ A «ÂAà†Â§  6@ ( A!@ ( J@  ( Atj("AðþAAÿÿÿÿ©! (   G@  (AÀå A «ÂA�å A «ÂAðä§  E Er@  (Aàå A «ÂA°ü A «Â§   ¨"E  þ "-E@  (AÀå A «ÂAðÛ (§  (" ( GA ( G @  (AÀå A «ÂAàç (A ªÂA°ü (A ªÂA°æÂ A «ÂA°ü A «Â§  (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AA£˜"�@ ( J@ ( Atj(! ( !AìAì˜"ð AÀô‰" (A "E@  (AÀ’ (ÂA êÂAÀô§ @ E Ak(AvE@  (Aàô§   6  ž   AÀõAAÿÿÿÿ©6   A°äAAÿÿÿÿ©6   Að� AAÿÿÿÿ©6   AàõAAªÕªÕ©6  A�öAAÿÿÿÿ©!  AÐöAAÿÿÿÿ©! ( (! (Aà� A «Â! ( N@  (A ç ÂA€øÂ (A «ÂAÀ÷ A «ÂA€÷A ÷ AF§  A°ø‰" (A "E@  (AÀ’ (ÂA êÂA°øÂ§ E A!A Ak(AvAG @ Ak(Av" J@  MA  Atj/ "A9L A0NqA AæL AáNq @ Aj! A  A E@  (A ç ÂA ù ÂAÐøÂ§   6  ž  @ ( AÐ ‰" (A " E@  (AÀ’ (ÂA êÂAР§ E ô " - ((AFA  ((( A FA ! A!@ A HA @  (("( O@ A ( Atj+"? ?¡Da! Aj!  E@  (AÀ’ (ÂA ëÂAÐ ÂA°÷ ÂAÐû§  A€É*A„É*AˆÉ*AŒÉ*A�É*A”É*A˜É*AœÉ*A É*A¤É*A¨É*A¬É*A°É*A´É*A¸É*A¼É* (ú!6!5!4!3!2!1!0!/!.!-!,!+!*!)!("' ( ) * + , - . / 0 1 2 3 4 5 6ã  Aô*Aø*Aü*A€*A„*Aˆ*AŒ*A�*A”*A˜*Aœ*A *A¤*A¨*A¬*A°* !6!5!4!3!2!1!0!/!.!-!,!+!*!)!("'8  (8  )8  *8$  +8(  ,8,  -80  .84  /88  08<  18@  28D  38H  48L  58P  68T ( (AlG@  (A ç ÂAðÛ A «ÂA ú (A «ÂAÐù§  AJ ( A E@  (A ç ÂAàú§  ( " ( "Aj!  (AvK@ AA™ ( Atj 6 6 ("( "Aj!  (AvK@  AA™ ( Atj 6  6   A "E  (!  (Aà� A «Â" ¥•@  (A ç ÂAðæÂ§   – (" ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  E ( AJq@  (AÐç§  @@ (!  "AÐ…AAÿÿÿÿ©! (  ¨"E  ("G@  (A ì A «ÂAðë A «ÂAÀë§  (A HA (E@ (-AÌG A (AM@ (-AÍG A (AM@ (-AÕG A (AM@ (-AÖG @  (AÐì§  (AM@ (AM@ (AM@ (AM@ ("- -Atr -Atr -Atr"AG@  (AÐí A ªÂA°íÂAA ªÂ§  (A M@ (A M@ (AM@ (A M@ 4 ("- - Atr - Atr - Atr"­R@  (Aðî A ªÂAÀî ( A «ÂA�î§  !B !AA!@ ( J@ ( Atj(!  ( O@ ( Atj("E@ (! (Aà� A «Â! 4 AB|S@  (A ç ÂA ï§  A§" Aj" (O@ Aj" (O@ (O@ Aj" (O@  (" j-At j-r  j-Atr  j-Atr! A§Aj" Aj" (O@ Aj" (O@ (O@ Aj" (O@  (" j-At j-r  j-Atr  j-Atr!  ( "( O@ ( Atj(! ("( M@ ( Atj("¬ ­R ¬ ­Rr@  (A ç ÂA ð A ªÂAО A ªÂAðï A «ÂAð‹Â A «Â§  4 AB|"B ­B ~ ­B†||S@  (A ç ÂAàð§  A Aä˜" A6 A6 A6 AÿÿÿÿK@ At"A¦˜"6 6 6 6X žA Aç˜" A6 A6 A6 At"AÿÿÿÿK@ At"A¦˜"6 6 6 6\ žA Aä˜" A6 A6 A6 AÿÿÿÿK@ At"A¦˜"6 6 6 6` ž B§!A!@  J@ "! Aj" (O@ Aj! Aj" (O@ (O@ Aj" (O@ 4  (" j-At j-r  j-Atr j-Atr"­W@  (A ç ÂAð¡Â A «ÂA°ñ A ªÂA�£Â ( A «Â§  (X"(Av M@ ( Atj 6 Aj!  A!@  AtH@ "Aj" (O@ Aj! Aj" (O@  (O@ Aj" (O@ (" j-At  j-r j-Atr j-Atr¾"&C€?_ &C`qE@  (A ç ÂA ò AuA «ÂAàç &“ ÂAðñ§  (\"(Av M@ ( Atj &8 Aj!  A!@  J@ "! Aj" (O@ Aj! Aj" (O@ (O@ Aj" (O@  (" j-At j-r  j-Atr j-Atr" O@  (A ç ÂAÀ£Â A «ÂAàç A ªÂA�£Â A ªÂA€ó§  (`"(Av M@ ( Atj 6 Aj!  ¬!A Aj!  A 4"BR@  (A�ô B A}­ÂAÀó§ ( A Aç˜" A6 A6 A6 ( A l"AÿÿÿÿK@ At"A¦˜"6 6 6A!@ ( J@ ( Atj(!@ ( Að‚‰" (A "E@  (AÀ’ (ÂA êÂAð‚§ E ô "- ((A GA A ((( AG A (("( E@ (+"? ?¡Db A (("( AM@ (+"? ?¡Db A (("( AM@ (+"? ?¡Db @  (AÀ’ (ÂA ëÂAð‚ÂA°÷ ÂAÐê§  (("( E@ (+¶ (("( AM@ (+¶ (("( AM@ (+¶  CCC ! ("@ AG@ A AF A AF A AF A 6 )¹"@Dc@ @ > Dð? !@ @Dc@D!@  > @ > @c9 )¹"@Dc@ @ > Dð? !@ @Dc@D!@  > @ > @c9  (@"@  6  > +0D¥¤9  > +8D¥¤9 + >f@ Dð¿9 +Dc| > + !? >DdA ( + ?fA @  +9 D9 ?De@ Dð¿9  (68  ("AJ| + ·£D 9@  ("AL +Dcr|Dð¿ + ·£ 9H +Df (AJA @  + (·£9P   AàÏ)µA @  AàÏ)D¡ª"A AL ANq68  A�Ð)D¡D¥9@  AÀÐ)Dð¿¡9H +HDc@ Dð¿9H  (" AGA @ A ("AF A AF A AF A 68  -@ A68  + 9@ Dð¿9H + "?Dd ? +@eA @  +@9P D9@ AAƒ ˜"A: A6 A� 6 A6 A:  6  ž   A„ F@AàAš ˜"A� 6 A� 6 A� 6 A� 6 A6 AàÞ 6 A6 Dð¿9 A6( A6, D90 A68 D9@ Dð¿9H Dð¿9P A:X A� 6\  6  žAAƒ ˜"A: A6 A� 6 A6 A:  6  ž   "-E@   (" Ak(Aš FA E@ (\Ak(AvE@  A ÚAÇAÀÚ AœÚ(AvAÿÿÿÿÈÂA� "6\  ž  # ¥"-E@AàÎ ÂAðÛ (Â!A Aé˜"¸ AÐê6  6 A6 A6  6 A�Ï6 â  AAŸ ˜"A� 6 A� 6 A� 6 A� 6 A6 A� 6 A6  ("6  ž  (!A!A AÀÒ Å"AH  Aj! AJA Ak" Ak(AvOA  Atj/ "AßF A9L A0NqA AÚL AÁNq A AúL AáNq A Aj"!@  Ak(Av"H  OA  Atj/ "A F A Fr A Fr A Fr A Fr A FrA @ Aj!   F !@  Ak(Av"HA  OA  Atj/ "AßF A9L A0NqA AÚL AÁNq A AúL AáNq A @ Aj!   F   È! @  Ak(Av"H  OA  Atj/ "A F A Fr A Fr A Fr A Fr A FrA @ Aj!  FA AàÒ Ç E Aj"@  Ak(Av"H  OA  Atj/ "A F A Fr A Fr A Fr A Fr A FrA @ Aj!  FA A€Ó Ç E Ak(Av" A j"JA  OA  Atj/ "AßF A9L A0NqA AÚL AÁNq A AúL AáNq A  "6  ž (E@ (! AÀÐÂ! (!A Aë˜"Ð A6 A€Ð6  6 A6 A6  6 A°Ñ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAƒ ˜"A: A6 A� 6 A6 A:  6  ž  ! % (("( "AL@ ( Ak"Atj"(! A6  6 A ! -E@  (" 6  ž  6  ž ( AÀ…  ™ %@     #AGÈ  ± (A°« Ê"-E@ ž  (" Ak("A– F Aš Fr A› FrA E@ AA� ˜"A: A6 A� 6 A6 A:  6  ž  "-@ ( A - A ( "E   Ak(AéFA @  Ak(AéFA E@   A " (AðÈÄ (AÀ… ( (  ( "6 žA ª (A€¿ Ê"-E@ œ  (" Ak("A  F A‰ FrA E@ AAŽ ˜"A: A6 A� 6 A6 A:  6  ž  "-@ ( A - A ( "E   Ak(AéFA @  Ak(AéFA E@   A " (AðÈÄ (AÀ… ( (  ( "6 žA � ("@ -E@ A:ó " )B|7 ($"@A!@ ( J@ ( Atj("-E@ A:ó " )B|7 Aj!  ¦@@@@@@@@@@@@@@@@@@@@@   6$ ž  6, ž  64 ž  6\ ž  6d ž  6P ž  6Ì ž 6Ð ž 6Ô ž 6ü ž 6„ ž 6¨ ž  6¼ ž  6” ž  6œ ž  6¼ ž  6Ì ž  6è ž  6Ø ž  6ì ž ç }A!@ ("( J@  ( O@ ( Atj("@ (!A!@ ( AjJ@  "( O@ ( Atj*! Aj" ( O@ ( Atj*! ( Aj"M@ ( Atj*! ! ! } ! ! ! ! A! "   ]!   ^!   ^!   ]!   ]!    ] ! Aj!  Aj!  8 8$ 8( 8, 80 84 Œ }A(A¿ ˜"C8 C8 C8A´*!A°*!A¬*! A¨*8  8  8  8 C€?8 C€?8 C€?8$ *! *! * ! *! *! *! *! * ! *$!  *8  8  8  8  8  8  8  8  8  8$  U@ ("( J@  ( O@ ( Atj("E@ ( Ä@  Aj!  A QA Aï˜"A� 6 A6 A6  ("6  ž  ((6  ((6  ê A°é‰" (A "E@A�  ‹ E@A€ø ÂAðöÂ! (E@ AàØ ( ("( ( AÐùî"6 ž A�  (  ¥Ò@A€ù ÂA øÂ! (E@ AàØ ( ("( ( AÐùî"6 ž A�  (  ™    ‰" (A "E@A�  ‹ E@ A�ü ÂAðúÂ! (E@ AàØ ( ("( ( AÐùî"6 ž A  ß (("( M@ ( Atj("E@ (AüÝ(AvAÿÿÿÿÈŠ "AH@AÀ’ (ÂAÀõÂAàóÂAÐïÂ! (E@ AàØ ( ("( ( AÐùî"6 ž  A$Að˜"A� 6 A6 A� 6 A� 6 A� 6 A: A� 6 A� 6A Aï˜"A� 6 A6 A6  6  A�î‰" (A "A� "6  ž  6  Ò"6  ž ( ( !A AÆ ˜"A6 A6 A6 A6  6  6   Ó"6  ž (@ ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ($"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (("( "Aj!  (AvK@  AA™ ( Atj 6  6 (,"( "Aj!  (AvK@ AA™ ( Atj 6 6  " (("( O@ ( Atj("E@ !AAò˜"A� 6 A� 6 AAAóA¤6A Aï˜"A� 6 A6 A6  6  A�î‰" (A "A� "6  ž  Ò"6  ž (( !A AÆ ˜"A6 A6 A6 A6  6  6   Ó"6  ž (@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ ( Atj 6  6 ( "( "Aj!  (AvK@ AA™ ( Atj 6 6 › A A÷˜""A� 6 A� 6AA¦˜!AA˜" 6  ž  6 A6 A6  6AA¦˜!AA˜" 6  ž  6 A6 A6  6 AA¦˜!AA˜" 6  ž  6 A6 A6  6 A: A� 6 A Aï˜"A� 6 A6 A6 6  A�î‰" (A "A� "6  ž  Ò"6  ž ( ( ! A AÆ ˜"A6 A6 A6 A6  6 A6   Ó"6  ž (@ ( !AAÇ ˜"A6 A:  6  : ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 @ A:  Aðò‰" (A "A� "6  ž (("( "Aj! (( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (!A!@  ( H (A E@ " ( O@ ( Atj("E@ (A (A ýÄ @A AÆ ˜"A6 A6 A6 (( ! A6  6  6  Ó! (! AÐý‰" (A "A� ! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (! A �‰" (A "A� ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ÎAAù˜"ó  ("6  ž  A�î‰" (A "A� "6  ž  Ò"6  ž @   Ó"6  A°é‰" (A "A� "6  ž (@A A!@ ("( J@  ( O@ ( Atj("E@ "(A�îÄA (A°éÄ E@ ( !AAø˜"A6 A6 (!  (6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (!A!@ ( J@ ( Atj("(A (AÐàÄ E@ AØ"E@A ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   i (E@ (! (! (!A Aé˜"¸  6  6  6  6  6 A6 6 ž A ¤@ ("( J@  ( O@ ( Atj("E@ @ (AF@AÀ’ (ÂA€“Â! (!A!@ Ak(Av" J@  OA  Atj/ "A F A F A Fr A Frr@ Aj!    A "AHA A°¥  ŠAàù ÂAðøÂÙ E@A  (AF@ (!AЦ (ÂAà¥Â! (E@ A°¥ ( ( ( Aî"6 ž A ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A �~ ( "( ÄE@ (!A�û (ÂAðú ÂAÀú ÂA€“Â! (E@ A�ú ( ( ( Aî"6 ž A AAÏ ˜"A6 A6 AAA”A¤6 A6 A!@ ("( J@ (!  ( O@ ( Atj(" E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  AÀá‰"E@ (!AÀ’ ÂA€üÂ! (E@ AÐû ( ( (  î"6 ž A  6  ž@~A!A! ("Ak(Av /A-FA @A!A! B€€€€€€€€€  Ak(AvN @ Ak(Av" J@  OA  Atj/ "A0H A9Jr@B€€€€€€€€€  B€ ”¥�S@ A0k¬ B ~|! Aj!  B }  " B€€€€€€€€€Q@ (!AÐü (ÂAÀ�Â!  ¬U@ (!A�° (ÂAðýÂ!AÀþ A «Â! (E@ A°ý ( ( (  î"6 ž A BW@ (!AÀÿ (Â!   >  Aà�‰" (A "6  ž  (E@ A Ü ( ( ( Aî"6 ž A î A°é‰"E@ A�¯ (AÀ’ (ÂA êÂA°éÂAЯÂÙ "E@A A�Ù‰"E@ A�¯ (AÀ’ (ÂA êÂA�ÙÂAЯÂÙ "  (Ak(AvA E@ A Ü (AÀ’ (ÂAà®ÂÙ  A A E@A Aಉ"E@ A�¯ (AÀ’ (ÂA êÂAà²ÂAЯÂÙ "E@A AAÖ˜"€ (! (!  (6  6  6 " Aà�‰" (A "6  ž (!AA‘˜"A6 A6 (!  (6  6  6  ž  ("6  ž  (ÚE@A  ±   A�î‰"E@ A�¯ (AÀ’ (ÂA êÂA�îÂAЯÂÙ E@A ("( AF ( E@ (("E@ (A� ! (( AF! @ ("( J@ " ( O@ ( Atj("E@ (AF@ E@  (Â! (!  AjA!@ Ak(Av" J@A  OA  Atj/ "A F A F A Fr A FrrE  Aj!  A ! (AF Aj!    (  ("AÀ«Að« AFAÀ’ (ÂA€“ ! (!A°¬ Â! (E@ A ª ( ( ( Aî"6 ž A ! Aj!  A!@ Ak(Av" J@   OA  Atj/ "A F A F A Fr A FrrE  Aj!  A "AH@ (! (E@ A°¨ ( ( (A�­Aî"6 ž A A AÎ ˜""A� 6 A� 6 A6 A6 AA‘˜"A6 A6 A6 A6  6AA‘˜"A6 A6 A6 A6  6 A: AA¦˜!AA”˜" 6  ž  6 A6 A6 6  6  ("6  ž  6  ž  6 (!AA‘˜"A6 A6 (!  (6  6  6  ž   Þ"6  ž  E AFq:A!@ ("( J@ ( O@ ( Atj("E@ (A�îÄE@ (! ("( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ¾@ ("( J@  ( O@ ( Atj("E@  (Ak(Av" jH@   kŠ  j! Aj!  @  (Ak(AvŠ (!AA‘˜"A6 A6 (! (6 6 ³ AAù˜"ó  ("6  ž (" ("6  ž ( ((6 ( ((6 @ A�î‰"E@ A�¯ (AÀ’ (ÂA êÂA�îÂAЯÂÙ E@A (Ak(AvE@ (!AÀ’ (ÂA ïÂ! (E@ A Ü ( ( ( Aî"6 ž A  ("6  ž A!@ ("( J@  ( O@ ( Atj("@  (A�îÄA E@ ( !AAø˜"A6 A6 (!  (6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@ ("( J@  ( O@ ( Atj("E@ @ (AF@AÀ’ (ÂA€“Â! (!A!@ Ak(Av" J@  OA  Atj/ "A F A F A Fr A Frr@ Aj!    A "AHA A°¥  ŠAàù ÂAðøÂÙ E@A  ("@ AFAÀ«AÐïAð« (AF ! (!AÀ’ (ÂA€ð Â! (E@ A ª ( ( ( Aî"6 ž A (AÐàÄ (( AFA  ("( E@ (("E@ (A�ÂÄA  (( A E@ (! ("( E@ (("E@ (! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  Aß"E@A ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   Í@@ ("( J@ " ( O@ ( Atj("E@ @ (AF@AÀ’ (ÂA€“Â! (!A!@ Ak(Av" J@  OA  Atj/ "A F A F A Fr A Frr@ Aj!    A "AHA A°¥  ŠAàù ÂAðøÂÙ E   (AF@ (!AЦ (ÂAà¥Â! (E@ A°¥ ( ( ( Aî"6 ž  (AF@ (!AAј"ý A6  6  ž ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AFA (A�ÝÄA (A ­Ä A (AÀ­Ä E@ (!AAј"ý A6  6  ž ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (A ­Ä@ A�î‰"E@ A�¯ (AÀ’ (ÂA êÂA�îÂAЯÂÙ E A!@ ("( J@ " ( O@ ( Atj("E@ (AF (! A!@ Ak(Av" J@A  OA Atj/ "A F A F A Fr A FrrE  Aj!  A A @ Aj!  (AF (! A!@ Ak(Av" J@   OA  Atj/ "A F A F A Fr A FrrE  Aj!  A Š ( !AЪ (ÂA€âÂ! (E@ A ª ( ( ( Aî"6 ž  (!AAј"ý A6  6  ž (!AA‘˜"A6 A6 (!  (6  6 " 6  žA!@ ("( J@  ( O@ ( Atj("E@ (A�îÄE@ (!  ("( O@ ( Atj("E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AÀ­Ä@ á"E  (!AAј"ý A6  6  ž ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A Ý"E  (ô "-E@  (Þ! (! ( ! (E@ A°¨ ( ( (  î"6 ž A  AAϘ"þ (!  (6  6  ("6  ž  ("6  ž  -:A!@ ("( J@ (!  ( O@ ( Atj("E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!   "E  (!AAј"ý A6  6  ž ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A A – A�݉"E@ A�¯ (AÀ’ (ÂA êÂA�ÝÂAЯÂÙ "E@A Aಉ"E@ A�¯ (AÀ’ (ÂA êÂAà²ÂAЯÂÙ "E@A A!@ ("( J@ " ( O@ ( Atj("E@ "(AF (!A!@ Ak(Av" J@A  OA  Atj/ "A F A F A Fr A FrrE  Aj!  A A @ Aj!  (AF (! A!@ Ak(Av" J@   OA  Atj/ "A F A F A Fr A FrrE  Aj!  A Š ( !Aà­ (ÂAÀ­Â (ÂA€âÂ! (E@ A ª ( ( ( Aî"6 ž A A,AИ"ÿ (! (6 6 " (!AA‘˜"A6 A6 (! (6 6 6$  žA!@ ("( J@ ( O@ ( Atj("E@ (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (A€ŒÄ@  ("6  ž (AðåÄ@  ("6  ž (A€¼Ä@  ("6  ž (A€ÉÄ@  ("6  ž (A°ÍÄ@  ("6  ž (AÀ½Ä@  ("6  ž (A�ÂÄ@  ("6  ž Aj!   å~~ ("Ak(Av /A-FA @A!A! B€€€€€€€€€  Ak(AvN @ Ak(Av" J@  OA  Atj/ "A0H A9Jr@B€€€€€€€€€  B€ ”¥�S@ A0k¬ B ~|! Aj!  B }  " B€€€€€€€€€Q  UrA ÄR @ (!AÀ’ (ÂA ë (ÂAÐä ÂAà²Â (ÂAÀ�Â! (E@ A Ü ( ( ( Aî"6 ž A § ‘| (� " b@ (!AÀ’ (ÂA ë (ÂAÀÍ (ÂAÀ�Â! ! (E@ A Ü ( ( ( Aî"6 ž D  — (Aà¯Ä@A (AàûÄE@ (!AÀ’ (ÂA ë (ÂAðÌ (ÂAÀ�Â! ! (E@ A Ü ( ( ( Aî"6 ž A ¼  ‰"E@ A�¯ (AÀ’ (ÂA ê ÂAЯÂÙ E@A (Ak(AvE@ (!AÀ’ (ÂA ë ÂA�ÎÂ! ! (E@ A Ü ( ( ( Aî"6 ž A  ¾@ ("( J@  ( O@ ( Atj("E@ @ (AF@AÀ’ (ÂA€“Â!  (!A!@ Ak(Av" J@  OA  Atj/ "A F A F A Fr A Frr@ Aj!    A "AHA A°¥  ŠAàù ÂAðøÂÙ E@A  (AF@ (!AЦ (ÂAà¥Â! (E@ A°¥ ( ( ( Aî"6 ž A (A  (�AN ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A �AÐA‹˜"×  6 " (!AA‘˜"A6 A6 (!  (6  6 6@  ž AF!A!@ ("( J@  ( O@ ( Atj("E@ (! A AÀ¾Ä @   ã9 A Aà¾Ä @   ã9 A A€¿Ä @   ã9 A A ¿Ä @   ã9   AÀ¿ÄA @   BAð¿â6( (A ((AJ @ (!AÀ’ (ÂAÐÀ (ÂAÀ�Â! (E@ A Ü ( ( ( Aî"6 ž   AðÁÄA @   ã90  A ÂÄA @   ã98 (D"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (@A Aj!  #© (HæE@A  Â~ Aà²AÀ "‰"E@ A�¯ (AÀ’ (ÂA ê ÂAЯÂÙ E@A A A—˜"ˆ  6 (!AA‘˜"A6 A6 (!  (6  6  6  ž@ ("( J@ ( O@ ( Atj("E@ (! A AÀ Ä @  ("6  ž AF Aà²ÄA @  ("6  ž AF AÀ½ÄA @  ("6  ž A êÄ@~A!B! A! ("Ak(Av /A-FA @A!A! B€€€€€€€€€  Ak(AvN @ Ak(Av" J@  MA  Atj/ "A0H A9Jr@B€€€€€€€€€  B€ ”¥�S@ A0k¬ B ~|! Aj!  B }  " BU BSrA (A€�AÇ @ (!AÀ’ (ÂAÐê (ÂAÀ�Â! (E@ A Ü ( ( ( Aàëî"6 ž   >  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (@A Aj!  #© (æE@A  ; (("E@A AÞ ˜"ù  ( (ú"6( ž  Þñ#|~ (( !@ ( J@ ( Atj((" ( (" ¥ÒA E@ ( ( ™  ( O@ ( Atj("E@ ("@ ( ( " ¥ÒE@ ( ( ™ ( ( Ó Aj!  ( O@ ( Atj("@ ( "@@ ( " ( ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AJ (A E A � (" E  A �Ä@ (  A�Ò (  A � ! (  ¥ÒE@ (  Ó Aj!  @ (($"( J@ ((!  ( O@ ( Atj("E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  ((# AÀ° î@ ((AF@ (!A!@ ( "( J@  ( O@ ( Atj("E@ ("@   Aj!  A E@ ((AAЛA€œ#¡ë  ( ( E@ ((AA íAÐíAÀŸë í ((AF!AAÔ ˜" ½AAÔ ˜"½AAÔ ˜"½AAÔ ˜"½@ (( "( J@  ( O@ ( Atj("@@  (AFA (AF A (AF A @ ( ( ! (! (" ( (( !  (!AÀô  (!AÀ�A ” ! AAÐäA€œ ÂA�›ÂA æë  @@@@@@@@@@@@ (    (" E@ (#ŸAÐÅî ( A°éäAÐÅ ð (!# "E@Õ !  A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A! A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A !Ý ! (!A ("AàÞ ÄA AàÞ Ä A A€à Ä A Að™Ä E  ® ú "A°šÄA AКÄ A AðšÄ "@ Aà²äAA�‘ (AÀ‘ÂA°’ë @ - E@ A�ÙäAA°Ë (AДÂAГ ‘ Âë  A�ÙäAA°ËA€“ (ÂAÀ�ÂAГ ‘ Âë (#Á­ "Ak(Av@ Aà²äAAÀñ A •ë E AGq - A  (! (® ! Ö " - A  ú ! ( �ANA EA @AA˜"A6 A6 A6 A6 Aš!A!@ ( "( J@  ( O@ ( Atj("E@ A � Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Aà²äAAðÈA�ÏAÀ“ ("Ak(AvA€å ÁAÅAGA  ÂA€Í ‘ ÂAð– (ÂAÀ�ÂAë A!@ ("( J@  ( O@ ( Atj("@ AÐÅï Aj!  !"Aj!! 6$ ("E@ A! (#˜A€Æî ( A°éáA€Æ ð (!# " E@Õ ! A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "@ - @ (! A�ÙáAAðÕ (A ÖÂAðÖÜ ‘ Âë  A�ÙáAAðÓA Ô (ÂAÀ�ÂAðÔÜ ‘ Âë  AA€Æõ ("(AHA� (AðìÄE A°‹ A°À ã"E  ("(AF@A€Œ (! A!@ ( "( J@  ( O@ ( Atj("E@ (" ( ÄA @   Aj!  A " (A€¼ ÄA  A� A� "Ak(Av@ A°À ã" ( ( ! ((AH@ Aðø AÀ‰Â ((A «Â#¥ì @@A! š "E â! @ ( J@  ( Atj("(Ø "  (A GA  (‰A @  ( (› Aj!  ãD€„.Ad@ ( ! (AA ò@@@@@@ Ak(A× k AÀ·  A ½  AÀ±  AÀ¬  AШ  A°÷ ÂA�÷ 㒠ÂA°öÂD€„.A’  œ ë AÀÊÄ@@ AÀÊA°Â ñ! AÀÊAÐÅ ñ! AÀÊA È ñ! AÀÊAðÊ ñ! AÀÊA�Î ñ!  ()BQA !  (-A !  (-A ! ~ ()B !'  ((( A !A€€ ( ÂAÀ�Â! ~B ~ ()B P@  E@ (  ( "(AJ  ( AA°€ Aà€ÂAÐ�ë 'BS@  E@ (  ( "(AJ  ( AA ƒ AàƒÂ '­ÂA „ë  'A A AA jAA j" ¬~"( ¬Q A°…A�†AÀ†A�   A !    "E@ (  ( "(AJ  ( AA€‡ AЈÂ A «ÂA –A€ô AFÂA�ˆÂ '­Â ÂAð‡Â (­ÂA Å A «ÂAÀ‡Â#žë @@A! A°ï Ä@  AÐæñ"E  ((( "A o"E  ( " (AJ  ( AAÀöA�ø A «ÂAÐ÷ A «ÂAðöÂAÀøë  Aðã Ä@  AÐ…ñ"E  ((!@ ( J@ ( Atj+Df@ Aj!  ( " (AJ  ( AAàù#›"( M@ ( Atj("E@ AÐû ÂAàç  ( O@ A€– ( Atj+"$ $b A�‡A°‡ $Dd $ $¡Db  $’ ÂA ûÂA�úÂA°üë  ( AF (+DaA  ( AM@ (+DaA  ( AM@ (+DaA @ ( "(AJ  ( AAàùA þA�úÂA°üë  Aðä Ä#œ A æ ÄA A ê Ä #�  !@ ( J@@   ( Atj(ñ"E (" (AF| )¹ (+ "$Dd ( " (AJ  ( AAàù AÀ…  ( O@ ( Atj("E@ ÂA ÿÂA�ú  ( O@ ( Atj("E@ AàçÂA€– $ $b A�‡A°‡ $Dd $ $¡Db  $’ ÂAàÿÂA°üÂë Aj!  AÀ¬Ä@A!A! (! @ ( J@@ ( Atj(("E AÀ¬ (Ø "  (‰A E (Aðù Ä@ (A – – ! (A€„– ! ( "(AL@ (! E ErA (AG A (AG @ AAÐíA€î#ýëA  (( "A o@ AAÐíA ô A «ÂA –A€ô AFÂA°òÂ#ýëA  A m" (( "G@ AAÐíA�ö A «ÂAàÝA€Þ AFÂAð‹Â A «ÂAÐõAðõ AFÂAàôÂ#ýë  "AN@ !  (A€ý Ä@ ()"' ¬Q 'BSrA Aj!@ ( " J@  O@ ( Atj("E@ (" (Aðù ÄA @ (A – – !A (A€„– "A  (AFA  (AFA  (( A oA E  Aj!  A @ '§  'BY!  ( "(AJ  ( AA€æAÐè '­ÂA�è A «ÂAàÝA€Þ AFÂAÐç '­ÂA°ÄÂAÀæA€ç ' ¬SÂA€éë '§! (Að÷ Ä@ ("(AF| )¹ (+ "$Dd  ( "(AJ  ( AA êA�ìA€– $ $b A�‡A°‡ $Dd $ $¡Db  $’ ÂAàêÂAÐìë Aj!  A�» Ä@@A!A!A! (!A� ! @ ( J@@ ( Atj(("E A�» (Ø "  (‰A E (Aðù Ä ((AFA A! (( " ( " AoAG! A!@ Aj L@  ( O@ ( Atj("@ Aj  (AF Aj" ( O@ ( Atj("E@ (AFA (AF A  Aj" ( O@ ( Atj("E@ (AFA (AF A  Aj" ( O@ ( Atj("E@ (AFA (AF A  Aj" ( O@ ( Atj("E@ (AFA (AF A "!A  Aj" ( O@ ( Atj(" E@ (AGA A Aj" ( O@ ( Atj(" E@ (AG ! Aj!  ! AÀà ( ÂA�à A «ÂAÐßAðß AFÂA Þ A «ÂAàÝA€Þ AFÂA�  (A€ý Ä ()BSA ()§ " F  ! A�â "A «ÂAàá A «ÂAààA á  HÂ! Ak(Av A�Ü Â   !AÀà ( ÂA�à A «ÂAàÝA€Þ AFÂAðÛ   ! Aj!  Ak(AvE  E@ (  ( "(AJ  ( AAÀâ #šë A Ò Ä@@ A Ò AÀ�ñ!  A Ò AðŽñ"rE  ((( A "  ((( AmA "F    H!      A  (( ((JA "E@ (  ( "(AJ  ( AAÀ×A€Û ( ÂAàÚ A «ÂA ÚAÀÚ AFÂAð‹Â A «ÂAàÙA€Ú AFÂA°Ù A «ÂAðØA�Ù AFÂAÀØÂAÀ�A Ø  JÂAð×Â#™ë A6$ ""Aj!" 6 ( " E@ A! ( ! (#–AÀôî ( "Ak(Av@A!@ Ak(Av" J@  OA  Atj/ ! A!@A¼Ó(Av" J@  OA AtAÀÓj/ F@  Ak(AvOA�   Atj/"A€I@#- Atj(  AA˜" ;   Aj!  Aj!  A� "Ak(Av@ A�îáAAÀ¤Aঠ( ÂA°¦Â ÂAÀ�ÂA°¥ë  A�îáAAÀ¤Að¤A°¥ë ("A ("@ A�ÙáAA�§A ñ ( ÂAЧÂA ¨ë E E" Eqq@ (AA°îAÀï ( ÂAðîÂA°©ë A! A E@# " E@Õ ! A! A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "@ -@ - @ A�ÙáAAð® A ¯ÂAA˜"A6 A6 A6 A6 Aš!Û ! A!@ ( J@ ( Atj( × @  ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A௠‘ Âë ! A�ÙáAA°¬ Aà¬ÂAÀ­ëA!  A�ÙáAAÀªAðª ÂAÀ�ÂA°«Û ‘ Âë @@ AÀÕ á! (" AG@ AA çA�Ï AF@ (A€�AÅ"AJ (A ÈÉ (  @@@@@@@@@@@@@@@@@@@@@@@@@@ (  A°�  A°é  AÐé  A°Ú  Aðé  A€“  Aà’  AЦ  Að¦  A�§  A°§  AЧ  Að§ A�¨ AÀ¨ AਠAÀê A�ê  A°“  Aà“  AÀ�  A€�  AÀ�  Að�  A°‘  Að ÂA€Ðë  ( (" ¥ÒE@  ÷  ( (" ¥Ò" E@ (" (AЮ ÄE@ AA çAðÑ (ÂAÀÑ (ÂA€ÑÂAÀÒë (! @ @ AÀñáAA�°AÀï ( ÂAÀ°ÂAð°ë  @ • " Ak(Av@ AÀñáAA ´AÀò ÂAðâ ÂAСë@ AÀñá! ò" (AF@ AAàñAÀò ÂA�ò  ó ôë   ("H@  ( "( O@ ( Atj("E@ ("(AJAÐ� (A «ÂA �ÂA� ! (@ AA°ÌAÀ� (ÂAàΠÂA�ΠÂA°Íë AA°ÌAÀò ÂAàÌ ÂA°Íë  rAA • Ak(Av A ò"(  (" ( "( O@ ( Atj("E@ A (  AJ (A A (AG E @ (AAðôA ñA � ("E  A �Ä@ (  A�Ò (  ÂAдÂAеë  (AAðïA ñ ( ÂA ²ÂAвë  r@  A �A � ("E  A �Ä@ (  A�Ò (  " ¥Ò@ A�îáAAàòA ñ ÂAГ   ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� ÂA ·ë   A�îá™  AÀôõ AG! A!AAã˜"A6 A6 A6 A6 Aš!@ ("( J@ " ( O@ ( Atj("E@ (" @ ((#—AÀ­îA!@  H@  ("( O@ ( Atj("E@ (" ( (ÄA @ A�ÝàAA ¿A°è (ÂAà¿Â ($"(AJAð� (A «ÂA �ÂA� ÂA�Àë Aj!  ((AHAÐË (AÐÒÄ A°Í ("Ak(Av AàûÄA E AÀ½ (Ak(Av A� ( Ak(Av A ("Ak(Av ä A #I"  â "$I  !A!@ ( J@ ( Atj(( Ä@A  Aj!  A @A€Ì (  A� A� "Ak(Av@ A€Œ A€ŒAÇ   A°ÍÄA AÀ½Ä A A�ÂÄ A�Ý à! ((AH@ Aðø AÀ‰Â ((A «Â#¥ì   (æ A " A E@ (!A! ã !AA˜"A6 A6 A6 A6 Aš!@ ( J@ ( Atj((! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( AL@ ‘  A€’AÅ"AJ A AjÈ A€’ ! AA˜"A6 A6 A6 A6 Aš!A!@  ( H ( AHA @  ( O@ ( Atj("E@  AÇ@  ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( E@A!@  ( H ( AHA @  ( O@ ( Atj("E@ ä @  ( O@ ( Atj("E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  ( E@ AAŸ! ( ( A°Ä¦Að‹Â ( ( kA «ÂAðÊ ! A Ç (ÂAÀ�Â! (!#I"  â "$I  !A!@ ( J@ ( Atj(( Ä@  ( O@ ( Atj("E@ (  Aj!  A� "Ak(Av A Å (ÂAàçÂA�ÏAÀ“ Ak(AvA€å ÁAÅAGA  ÂÂAàÇ  Ak(AvA€È ÂAÀÈ Â! A�ÝàAAà´ A�Éë @@ ("E AF A A¦™"A°ÃA ü AA˜" 6  ž  6 A 6 A6 A A¦˜!AA˜" 6  ž  6 A 6 A6 ( ( 6 ( (6 ( (6A!@ ( J@  ( O@ ( Atj("E@ Ak(Av@  ( O@ ( Atj("E@ àAAðƒ (AàçÂA�ÏAÀ“A€Æ ("AF A Æ AF AÀÆ AF AàÆ AF A€Ç "Ak(AvA€å ÁAÅAGA  ÂÂAÐà ( O@ ( Atj("E@ ÂA�Äë Aj!  ( ! AAA™ AJ@ (A Atü A6 (( ó A!@ ( J@ A ( Atj("(A�ÙÄ (A E@ (àA ( ( ( ë Aj!  A (Ak(Av@ Aà²àAA°²AÐÁ (ÂA�ÁÂA€Â#ÕÂë Aj!   A€Û× A @ A€˜ñ! Aàœñ! || ("(AF@ )¹  (AF@ +  D D "% || ("(AF@ )¹  (AF@ +  D D "$d $Ddq! Að ñ"A ~ ("(AF@ )  (AF@B +"& &b Bÿÿÿÿÿÿÿÿÿ &DàCf B€€€€€€€€€ &DàÃe  &°  B BRA  A šñ! A°žñ! || ("(AF@ )¹  (AF@ +  D D¥D !& $ || ("(AF@ )¹  (AF@ +  D D¥D   % &¡c  @  E@ (  ( "(AJ  ( AA€¸Að¹A€– $ $b A�‡A°‡ $Dd $ $¡Db  $’ ÂA�¹ÂA€– % %b A�‡A°‡ %Dd % %¡Db  %’ ÂAð¸Â ( ÂAÀ¸ÂA°ºë A!@#ü( J@@ #ü( Atj(ñ"E | ("(AF@ )¹  (AF@ +  D "$DcE ( "(AJ  ( AAÀ¼ #ü"( O@ ( Atj("E@ AàçÂA€– $ $b A�‡A°‡ $Dd $ $¡Db  $’ ÂA€½ÂAÀ½ë Aj!  A6  ("E@ A! (#•AÀ�î (Ak(AvE@ AÀœåAAð�A°žAë A€° (ø Aà± (ø ( Ak(AvE@ AàœåAAð�A€ŸAë @ ("( J@  ( O@ ( Atj("@ AÀ�ï Aj!   (,A� ï  ("E@ (#”A ”î Aà²å! ("A€çAÇE@A š ÂAà™Â  AAÿÿÿÿÈ"Ak(Av A�Ò#ÃA @A š ÂAК  A€™AÅAG@A š ÂA�›Â  A�ÒÍ! A!@ ( J@ ( Atj(" Ak(Av A �ÄA A AàžÄ @A š ÂAЛ  Aj!  A� "Ak(Av@ AAÀ” Að”ë  (" ¥Ò@ AAЖAÀ� (ÂA�—  (" ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� ÂAЗë  ( ™ (Ak(Av@ ( AAÀ”Aà˜ (ÂAàžÂ (Â#»ë ) (4R@ AÐ…åAAÀ”Aà˜ (ÂAÀ™Â ((A «ÂAðë )­ÂA�™Â#»ë  ("E@ AA‘˜"A6 A6 ("(!  (6  6A°Ž (ÂA�ŽÂ (ÂAà·Â! ((AH@ Aðø AÀ‰Â ((A «Â#¥ì  (" ¥Ò@ AAàŽA � (ÂAГ  (" ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� ÂAÐ�ë  ( ™ A°éý@ AA �A�‘ (ÂA€“Â#“ë  é! ( "E@ ( !A�† (ÂAà·Â! ((AH@  Aðø AÀ‰Â ((A «Â#¼û ( (" ¥Ò@ ( ! A�‡ (ÂAГ ( (" ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� Â! (!A Aë˜"Ð (! (! (! A6 AІ6  6  6  6  6 A°‡6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  ( ( ( ™  (AàˆüA!@ ("( J@  ( O@ ( Atj("@  ( ("#û" Ak(AvO@ Atj("E@ ü Aj!  A!@ ("( J@  ( O@ ( Atj(" @A!@ (("( J@  ( O@ ( Atj("E@ #’ (�AH@ ( " (AL@ (! A€‘ (ÂA€‹Â! (! A Aë˜"Ð (! (! (! A6 A �6  6  6  6  6 A æ6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  (A°‹ÄE@ A�Ýà!AЋ (ÂAÀ�Â! (! A Aë˜"Ð (! (! (! A6 Aà´6  6  6  6  6 AÀŒ6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!   (Aàˆý  é! ($"E@ (,!A€¸ (ÂAà·Â! ((AH@  Aðø AÀ‰Â ((A «Â#¼û ( (" ¥Ò@ (,!A ¹ (ÂAГ ( (" ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� Â!A�ºAйÂ! (!A Aë˜"Ð (! (! (! A6 Aà¸6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ( ( (,™  (0AÀ»ü  (4AÀ»ý -$@ (AHA ( (L @ (,!A ¹ (ÂA€‚ (A «ÂAÐ� ( A «ÂAÀ€Â! (!A Aë˜"Ð (! (! (! A6 A Ü6  6  6  6  6 AЂ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (A ( @ (,!A ¹ (ÂA€„Â! (!A Aë˜"Ð (! (! (! A6 A Ü6  6  6  6  6 Að„6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 +"$ $¡Da $™#»eA E@ (,!A ¹ (ÂAð»Â +øÂAàÜÂ! (!A Aë˜"Ð (! (! (! A6 A Ü6  6  6  6  6 A ¼6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAÔ ˜"½AAÔ ˜"½AAÔ ˜"½AA£˜"�A!@ (("( J@ " ( O@ ( Atj("E@  (" ¥Ò@ (!A ¹ (ÂA€¾Â (ÂA€žÂ  (" ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� Â! AÀ¾ (ÂA ¾Â! (!A Aë˜"Ð (! (! (! A6 AÀ½6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6   ( (™  ( AÀÄü  (AÀÄýA� ! (• "Ak(Av@ (!A°Å (ÂAðâ Â! (!A Aë˜"Ð (! (! (! A6 AðÄ6  6  6  6  6 Aàå6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6   (þ"A~F@ (!A ¹ (ÂA€¾Â (ÂAÀžÂ!  (ÿ! (!A Aë˜"Ð (! (! (! A6 AðÄ6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  AN@  ( "( O@ ( Atj("E@ (" (A A� # " E@Õ ! A� A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A! A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " -A  ! AAÔ ˜"½A!@ ("( J@  ( O@ ( Atj("E@  (" ¥Ò@ (! AÀ� (ÂA°ÆÂ (ÂA�ÆÂ  (" ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� Â!AðÆ (ÂAÐÆÂ! (!A Aë˜"Ð (! (! (! A6 AÐÅ6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6   ( (™ A!A!  ( AðÇü  (AðÇý (AÀæAÇ (A¼æ(AvAÿÿÿÿÈ! (A �Ä@ ( ¥•E@ (é! AA˜"A6 A6 A6 A6 Aš!@ ( J@ ( Atj((! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (! AÀ� (ÂAðËÂ! ( "AJAÀá ( A°Ä¦ÂA â ÂA€â ! (!A Aë˜"Ð (! (! (! A6 A°Ë6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  (! AÀæ ÂA°É (ÂAàÈÂ! (!A Aë˜"Ð (! (! (! A6 A È6  6  6  6  6 AàÉ6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A Ak(Av  (ž " (AH@ (! ( ! (! (! (!A Aë˜"Ð (! (! (! A6  6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 -! ( (AàæAÇAÀç (ž " (AH@ (! ( ! (! (! (!A Aë˜"Ð (! (! (! A6  6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ( (AЭÄA (AÀ�AÇA (AàŸAÇ A� (Ÿ " (AH@ (! ( ! (! (! (!A Aë˜"Ð (! (! (! A6  6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (A !A€€€€x! A!AAþ˜"½  (( AJA @A! ("( E@ (("E@ ("E AFr AFr@ ! ("( E@ (("E@ (H! #ƒ"Ak(AvO@  Atj("E@ AÀ’ ÂAàΠ(ÂAðÌÂ! #é! (!A Aë˜"Ð (! (! (! A6 AÀÌ6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A! @ ("( J@ ( O@ ( Atj("E@ AN ( GA @ (H! ("#ƒ" Ak(AvO@ Atj("E@ AÀ’ ÂAàΠ(ÂA × #ƒ"Ak(AvO@  Atj("E@ ÂA€“Â!#é! (! A Aë˜"Ð (! (! (! A6 AÀÌ6  6  6  6  6  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  ("! ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@  ( F  A~q!  A @ (H! (AÐØÂ (ÂA�ØÂ (A «Â ("! ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ ("(AJAð� (A «ÂA �ÂA� Â! (! A Aë˜"Ð (! (! (! A6 AÐ×6  6  6  6  6 AðØ6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6   ( (Hû  ( HA @A! (H! (AÐØÂ (ÂAðÚ (A «ÂA Ú A «Â! (! A Aë˜"Ð (! (! (! A6 AðÙ6  6  6  6  6 A°Û6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (" J@ ! (" (J@ (H! AÐÞ A «ÂA�Á (ÂA Þ (ÂAðÝ (A «ÂAÐÝÂ! (! A Aë˜"Ð (! (! (! A6 A�Ý6  6  6  6  6 A�ß6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 +"$ $¡Da $™#»eA  + "$ $¡Da $™#»eA A  +("$ $¡Da $™#»eA A  +0"$ $¡Da $™#»eA A  +8"$ $¡Da $™#»eA A E@ (H! AÐÞ (A «ÂA�Á (ÂA€áÂ! (! A Aë˜"Ð (! (! (! A6 A Ü6  6  6  6  6 Aðá6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (AF@ (H! A�ä (ÂAàã (A «ÂA ãÂ! (! A Aë˜"Ð (! (! (! A6 Aàâ6  6  6  6  6 AÐä6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (D"A (@" AF A AF A AF A (GA @ (@! (" #d" Ak(AvO@ Atj(" E@ AÀ“ ÂA€«Â (@" #p" Ak(AvO@ Atj(" E@ ÂAÀ�Â!#‘! (! A Aë˜" Ð (! (! (!# A6 A°æ6 #6 6 6 6 6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (" #ƒ" Ak(AvO@ Atj(" E@  (L ü (" #ƒ" Ak(AvO@ Atj(" E@  (P ý @ +"$ $¡Da $™#»eA  +"$ $¡Da $™#»eA A  +"$ $¡Da $™#»eA A  + "$ $¡Da $™#»eA A  +0"$ $¡Da $™#»eA A  +8"$ $¡Da $™#»eA A E@ (@! (" #d"Ak(AvO@  Atj(" E@ A௠ÂA�Á (ÂA€ç (A «ÂAð®Â! (! A Aë˜"Ð (! (! (! A6 A Ü6  6  6  6  6 A°ç6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ("#d" Ak(AvO@ Atj("E@  (D ü ("#d" Ak(AvO@ Atj("E@  (H ý Aj!  Aj!  A!@ ("( J@  ( O@ ( Atj("E@ (AЭÄ" A ("A€„ÄA Aà…Ä A AÐÃAÇ A A€ÄAÇ @   " (" ¥ÒE@  ( (™   " (" ¥Ò  (" ¥•A E@  (– (! A ¹ (ÂA€¾Â (ÂA€À  (" ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� Â!#�! (!A Aë˜"Ð (! (! (! A6 AÀ¿6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Aj!   (,"E@AAß ˜"A6 A6 A6AAÔ ˜"½  6 AA£˜"�  6AA£˜"�  6 A6 (!  ("6  (6  6 ê! A!@ ( J@ ( ( Atj((– Aj!  é! A!@ ( J@ ( ( Atj((– Aj!  A AÞ ˜"ù   AAÞ˜"A6 A6 A6 A6 Ašú6 "6, ž ((" E@ ((AH@ (!A ’ (ÂAÀ‘ ((A «Â! #½! (!A Aë˜"Ð (! (! (! A6 Aðø6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ( (" ¥Ò@ (!A Ò (ÂAГ ( (" ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� Â! A�•A�”Â! (!A Aë˜"Ð (! (! (! A6 A€“6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  ( ( (™  (AÀ–A€A! @ ("( J@ ( O@ ( Atj("E@ (A (Aà)AÇ @ (!A Ò (ÂA€˜Â (ÂAЗÂ!#†! (!A Aë˜"Ð (! (! (! A6 Að–6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ("@ AF@ (!Aàœ (ÂAÀœÂAÀ–ÂA€“Â! (!A Aë˜"Ð (! (! (! A6 AÐä6  6  6  6  6 A æ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (!A€œ (ÂAà›ÂAÀ–ÂA€“Â! (!A Aë˜"Ð (! (! (! A6 AÐä6  6  6  6  6 A æ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AAÔ ˜"½A! @ ("( J@ ( O@ ( Atj("E@  (" ¥Ò@ (!A Ò (ÂA žÂ (ÂA€žÂ  (" ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� Â! (!A Aë˜"Ð (! (! (! A6 AÀ�6  6  6  6  6 Aàž6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6   ( (™ A! ("#_"Ak(AvO@  Atj("E@  ( A€  ( ý (E@ (! +!$AÀ´ (ÂA�´Â! $ $¡"%Da $™#»eqE@  A Ü AÀ…ÂA°Þ $Da  %Db@Að† $ $b AÐÞA€ß $Dc  $Dc"@A�ßA-; $š!$ AtA�ßj"  $A±#7² jAt"A˜"A�ß ü  ÂAàÜÂAÀÝû @ ("( J@  ( O@ ( Atj("E@ (A �ÄE@ A�Ýà!A�µ (ÂAÀ�Â! (!A Aë˜"Ð (! (! (! A6 Aà´6  6  6  6  6 A€¶6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  Aj!  AAÔ ˜"½A! @ ("( J@ ( O@ ( Atj("E@  (" ¥Ò@ (!A Ò (ÂA° Â (ÂAÀ�  (" ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� Â! (!A Aë˜"Ð (! (! (! A6 AðŸ6  6  6  6  6 Að 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6   ( (™ A!  ( A )A€  (A )ý@ AH@A!A!@ ("( J@  ( O@ ( Atj("@@ ( G E@ !  (H! Aàì (ÂA°ì #5"Ak(AvO@  Atj("E@ ÂA€“ (H"(AJAð� (A «ÂA �ÂA� Â!#å! (!A Aë˜"Ð (! (! (! A6 Aðë6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  E@ (!Aàì (ÂA€ð (ÂAÐï #5"Ak(AvO@  Atj("E@ ÂA€“Â!#å! (!A Aë˜"Ð (! (! (! A6 A�ï6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AAÔ ˜"½A!@ ("( J@  ( O@ ( Atj("E@ ("AF E AFrrE@ ("Ak(Av@   ("AF E AFrr@ #n"Ak(AvO@  Atj("E@   (AF@ (  A� "Ak(Av@#n ÂAN@ (H! ("#5" Ak(AvO@ Atj("E@   A°ñ (ÂAÀô ÂAÀ�Â! (!A Aë˜"Ð (! (! (! A6 A€ô6  6  6  6  6 Aðô6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6    ¥Ò@ (H!Aàì (ÂAðö ÂAÀ�   ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� Â! #æ! (!A Aë˜"Ð (! (! (! A6 A°ö6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6    (H™  (H! ("#5"Ak(AvO@  Atj("E@   A°ñ (ÂA€ñÂ! #æ! (!A Aë˜"Ð (! (! (! A6 AÀð6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  A!@ ("( J@  ( O@ ( Atj("@ ("#5"Ak(AvO@  Atj("E@ Aà÷ ("Ak(Av@   ("AF E AFrr@ #n"Ak(AvO@  Atj("E@   (AF@ (  A� "  Ak(AvÂAÀ�Â!  (L A€  (P ý (H! +!$ A°÷Â! $ $¡"%Da $™#»eqE@  A Ü AÀ…ÂA°Þ $Da  %Db@Að† $ $b AÐÞA€ß $Dc  $Dc"@A�ßA-; $š!$ AtA�ßj"  $A±#7² jAt"A˜"A�ß ü  ÂAàÜÂAÀÝû (H! +!$ AÐ÷Â! $ $¡"%Da $™#»eqE@  A Ü AÀ…ÂA°Þ $Da  %Db@Að† $ $b AÐÞA€ß $Dc  $Dc"@A�ßA-; $š!$ AtA�ßj"  $A±#7² jAt"A˜"A�ß ü  ÂAàÜÂAÀÝû (H! + !$ Að÷Â! $ $¡"%Da $™#»eqE@  A Ü AÀ…ÂA°Þ $Da  %Db@Að† $ $b AÐÞA€ß $Dc  $Dc"@A�ßA-; $š!$ AtA�ßj"  $A±#7² jAt"A˜"A�ß ü  ÂAàÜÂAÀÝû (AF (Ak(AvA @  (H ( ƒ (AF@  (H (8 „ Dðÿ!$A! A! @ (<"( J@ ( O@ ( Atj("@  (4A 2Að1 -"" €  (8 ý  (0 ( A€øÂƒ@ -E@ (0! +!% A�øÂ! % %¡"&Da %™#»eqE@  A Ü AÀ…ÂA°Þ %Da  &Db@Að† % %b AÐÞA€ß %Dc  %Dc"@A�ßA-; %š!% AtA�ßj"  %A±#7² jAt"A˜"A�ß ü  ÂAàÜÂAÀÝû  + $cA @A! (0! Aàù (ÂAÀù +øÂA€ù $øÂ! (!A Aë˜"Ð (! (! (! A6 AÀø6  6  6  6  6 A�ú6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 +"% $d@ %!$  (0! +!% AàûÂ! % %¡"&Da %™#»eqE@  A Ü AÀ…ÂA°Þ %Da  &Db@Að† % %b AÐÞA€ß %Dc  %Dc"@A�ßA-; %š!% AtA�ßj"  %A±#7² jAt"A˜"A�ß ü  ÂAàÜÂAÀÝû A! ( ( Ak(AvA AG"Aj  (AFA ($Ak(Av "Aj  +DY@b!@ (4" ( J@  ( O@ ( Atj(" @ (! Aj  - Að°ÄA Aà²Ä A A�±Ä A ! Aj!  AJ@ (0! A°ý (ÂAÐüÂA åÂ! #�! (!A Aë˜"Ð (! (! (! A6 A�ü6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  (E@  (0 ( A°ý (ÂAÀ�„ Aj!  A! @ (D"( J@ ( O@ ( Atj("@  † Aj!  A! @ (@"( J@ ( O@ ( Atj("@A!  (,AÀ1A€  (0AÀ1ýAà€ ("Ak(Av@   ("AF E AFrr@ #n"Ak(AvO@  Atj("E@   (AF@ (  A� ÂAÀ€Â (Â! (AF@ ((! Aàì (ÂAà�Â! #ç! (!A Aë˜"Ð (! (! (! A6 A��6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  (! @ ("( J@  ( O@ ( Atj("E@ ("Ak(Av@   ("AF E AFrr@#n"Ak(Av M@  Atj("E@   (AF@ (  A� Ä@  ("( O@ ( Atj("E@   Aj!  A "@ (" AFA @ ((! A°ˆÂ ("#5"Ak(AvO@  Atj("E@ Â! #ç! (!A Aë˜"Ð (! (! (! A6 A��6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AA˜"A6 A6 A6 A6 Aš! A!@ ("( J@  ( O@ ( Atj("E@ ("  AGA  (" Ak(Av@  (" AF E AFrr@ #n"Ak(AvO@  Atj(" E@  (AF@ (  A� Ak(AvA @ (" Ak(Av@  (" AF E AFrr@#n"Ak(Av M@  Atj("E@   (AF@ (  A� ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  ((! A�†Â (ÂAÀ�Â!Að‡ ¡ ÂA�ÜÂAà†Â! (!A Aë˜"Ð (! (! (! A6 AÀ…6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ("@ ( ! (" #d" Ak(AvO@ Atj(" E@ A AF A AF A AF A (G@ (@!AÀ“ ÂA€«Â #p" Ak(AvO@ Atj("E@ ÂAÐÈ ÂA �Â!#�! (! A Aë˜"Ð (! (! (! A6 A ©6  6  6  6  6  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 +"$ $¡Da $™#»eA  +"$ $¡Da $™#»eA A  +"$ $¡Da $™#»eA A  + "$ $¡Da $™#»eA A  +0"$ $¡Da $™#»eA A  +8"$ $¡Da $™#»eA A E@ (@! A௠ÂA�Á ÂAð®Â! (!A Aë˜"Ð (! (! (! A6 A Ü6  6  6  6  6 AÀÝ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (D A€  (H ý A!@ ( "( J@  ( O@ ( Atj("@ ("#k"Ak(AvO@  Atj("E@ A!@ (8"( J@  ( O@ ( Atj("E@ (AF (AðˆÄA @ ( "(AL@ (4! A�Š ÂAЉÂ (ÂAÐãÂ! (!A Aë˜" Ð (! (! (! A6 A�‰6 6 6 6 6 A°Š6 ( "(AL@ (! A€‘ (ÂAà� ÂA€“Â! (!A Aë˜" Ð (! (! (! A6 A �6 6 6 6 6 A æ6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!   (< ý ((Ak(AvAG! (AFA (AF @ -$ rE@ (4! A�Š ÂAàŒÂ!Að�AàŽ (AF! (!A Aë˜"Ð (! (! (! A6 A Œ6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A -$@ (4! A�Š ÂAð�Â! (!A Aë˜"Ð (! (! (! A6 A°�6  6  6  6  6 AÀ‘6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (AF -$A @ ( � "$ $a@ (4!A�Š ÂA�“Â! $ $¡"%Da $™#»eqE@  A Ü AÀ…ÂA°Þ $Da  %Db@Að† $ $b AÐÞA€ß $Dc  $Dc"@A�ßA-; $š!$ AtA�ßj"  $A±#7² jAt"A˜"A�ß ü  ÂAàÜÂAÀÝû (AF (A  (AGA @ (4! A�Š ÂAЕ ("#È"Ak(AvO@  Atj("E@ ÂAÀ�Â! (!A Aë˜"Ð (! (! (! A6 A�‰6  6  6  6  6 A€–6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (AFA (AF A (AF @ (AFAAA (AF ! (ˆ"@ ( G@ (4! A�Š ÂA€˜Â (ÂA Ô ("#_"Ak(AvO@  Atj("E@ ÂA€“Â! #è! (!A Aë˜"Ð (! (! (! A6 A°˜6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  (4! A�Š ÂA€˜Â (ÂAàÒ (ÂA ÒÂ! …! (!A Aë˜"Ð (! (! (! A6 AÀ—6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (AF@@A!@ (• "Ak(Av@ (4!A�Š ÂAМ (ÂAðâ Â! (!A Aë˜" Ð (! (! (! A6 A�œ6 6 6 6 6 A€�6  ( (þ"A~F@ (4!A�Š ÂA�ŸÂ (ÂAÀžÂ! ( (ÿ! (!A Aë˜" Ð (! (! (! A6 A�œ6 6 6 6 6 6  AH   (( "( O@ ( Atj("E@ (" (A # "E@Õ !    "Ak(A~q"AOA¨ˆ�¡! A÷”¯¯x! AÏŒ¢Ž!  jAk!@  M@ (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡! A÷”¯¯x! AÏŒ¢Ž!  jAk!@  M@ (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " -A E   (æ E@ (4! A�Š ÂA�ŸÂ (ÂA€¡Â ÂA°÷ (ÂA� Â!#Ž! (!A Aë˜"Ð (! (! (! A6 AÀŸ6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@ ($"( J@  ( O@ ( Atj("@  † Aj!  Aj!  Aj!  Aj!  AAÔ ˜" ½A! @ ( "( J@ ( O@ ( Atj("E@ (" ¥Ò@ (!A Ò (ÂAÀ¢Â (ÂAÀ� (" ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� Â! (!A Aë˜"Ð (! (! (! A6 A€¢6  6  6  6  6 A�£6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ( (™ A!  ( Aà)A€@ ($"( J@  ( O@ ( Atj("E@ (A (AðêAÇA (A°ëÄ @ (!A€¥ (ÂA€˜Â (ÂAФÂ!#‡! (!A Aë˜"Ð (! (! (! A6 Að–6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ("@ AF@ (!Aàœ (ÂAÀœÂAà)ÂA€“Â! (!A Aë˜"Ð (! (! (! A6 AÐä6  6  6  6  6 A æ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (!A€œ (ÂAà›ÂAà)ÂA€“Â! (!A Aë˜"Ð (! (! (! A6 AÐä6  6  6  6  6 A æ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A€¥ (ÂAÀ�Â! ("#P"Ak(AvO@  Atj("E@ ("A G AGq@ ("Ak(Av@  (  Aà±#ù�"AN (( ""( M@ ( Atj("E@ A ¢  A � ("E  A �Ä@ (  A�Ò (  A�ÒÂA� ! A!@ ( " J@@  F  M@ ( Atj("E@ (" E  A �Ä@ (  A�Ò (  AÇA E A ¢  Aj!  A A E@ (! Að³Â (ÂAгÂ!  (( "( O@ ( Atj("E@ ("E@  ÂAð²Â!#ˆ! (!A Aë˜"Ð (! (! (! A6 A ²6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (! A Å ÂA ®Â!#ù! (!A Aë˜"Ð (! (! (! A6 Aà­6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (Ak(Av (A FA @ (! Að·Â!#Ç! (!A Aë˜"Ð (! (! (! A6 A ·6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ("Ak(Av@  (  Aà±#ù� (AF@ ( "Ak(Av@ (  ¥•A (( !A!@ ( J@ ( Atj((@A  Aj!  A E@ (! Að¿Â ( ÂAàøÂ!  ( ‚! (!A Aë˜"Ð (! (! (! A6 A°¿6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (! A ¼Â!#‰! (!A Aë˜"Ð (! (! (! A6 Aà»6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ( Ak(Av@ (! A Å ÂA ÀÂ!#Ç! (!A Aë˜"Ð (! (! (! A6 A ·6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (A F@ (Ak(AvE@ (! AàÁÂ!#Š! (!A Aë˜"Ð (! (! (! A6 A Á6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (Ak(Av@ (! A Å ÂAàÅÂ!#Ç! (!A Aë˜"Ð (! (! (! A6 A ·6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (Ak(Av@ (! A Å ÂAàÆÂ!#Ç! (!A Aë˜"Ð (! (! (! A6 A ·6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A!@ ("( J@  ( O@ ( Atj("@ ("#`"Ak(AvO@  Atj("E@  (4 A€  (8 ý ("A G AGq! A€¥ (ÂA€˜Â ÂA€“Â!@@@@@ ( -AG"Aj  (Ak(Av"Aj  (Ak(Av"AJA (Ak(Av (Ak(AvA E@ (0! AàÉ (ÂAÀÉÂA°ÈAðÈ AJÂ! #‹! (!A Aë˜"Ð (! (! (! A6 AàÇ6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 E (Ak(AvAGq@ (0! AÐΠ(ÂA°Î ("#P"Ak(AvO@  Atj("E@ ÂAÐÍÂ!#ä! (!A Aë˜"Ð (! (! (! A6 AðÌ6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AFAAA (AG ! (ˆ"@ ( G@ (0! A Ó (ÂA Ô ("#_"Ak(AvO@  Atj("E@ ÂA€“Â! #Œ! (!A Aë˜"Ð (! (! (! A6 AÐÓ6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  (0! A Ó (ÂAàÒ (ÂA ÒÂ! …! (!A Aë˜"Ð (! (! (! A6 AÐÑ6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (AF@ ( � "$ $a@ (0! A€×Â! $ $¡"%Da $™#»eqE@  A Ü AÀ…ÂA°Þ $Da  %Db@Að† $ $b AÐÞA€ß $Dc  $Dc"@A�ßA-; $š!$ AtA�ßj"  $A±#7² jAt"A˜"A�ß ü  ÂAàÜÂAÀÝû  ( ($" ¥•E@ (0! AàØÂ ($ÂA�ØÂAð×Â!  ($‚! (!A Aë˜"Ð (! (! (! A6 A ×6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6   (0 (( A�ÙAàÙ� E@ (0! A°Î ("#P"Ak(AvO@  Atj("E@ ÂA°ÛÂ!#ä! (!A Aë˜"Ð (! (! (! A6 AðÌ6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Aj!   E (" E@ (#ÿA°Ùî @ (AAÐÙAàÚ ("(AJAð� (A «ÂA �ÂA� ÂA�ÚÂA Ûë (!# "E@Õ !  A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A! A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A !A!� ‘ ! @ (� @ (! A�ÙáAAàÞ (A ßÂAÐàA�ÏAÀ“ Ak(AvA€å ÁAÅAGA  ÂÂA€à ÂA �Âë  A�ÙáAAÐÜAàË (ÂAÀ�ÂA�Ý Âë AA°Ùõ  ! í Aj!  ( ð (!A Aë˜"A6 A6 A6 A6 A6 A6 A6 AAAêA¤6 (! (! ((!  6  6  6  6  6  6  6 ! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ³ (!A Aë˜"Ð (! (! ((! A6  6  6  6  6  6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 ²A!@ ("( J@  ( O@ ( Atj("@ A ( AJ! Aj!  @ (— A!@ ("( J@ ((!  ( O@ ( Atj("E@ ! ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ("( ! AAA™ AJ@ (A Atü A6 @ ( J@  ( Atj("(�AH@ ( "(AJ  ( AA �A€‘ (ÂAà� ÂA€“ÂA æë Aj!  š E@ Ak(AvA œ ÂA€“ÂA� ! ("@ AF@ (AAÐäAàœ (ÂA°’ ÂA æë  (AAÐäA€œ (ÂA€“ ÂA æë õ Ak(AvE@A௠ÂA€�  A Ak(AvE @ Ak(Av" J@A  MA  Atj/ "A-FA AßF A9L A0NqA AÚL AÁNq A AúL AáNq @ Aj! A  A E@AàŽ ÂA°�  A� "Ak(Av@ AAÀŒ AðŒë   ¥Ò@ AAð�AàŽ ÂA ŽÂ   ¥Ò"E@ ("(AJAð� (A «ÂA �ÂA� ÂA€�ë   ™ Œ  Ø "E@A (( Ak!@ AN@  ("( O@ ( Atj("E@ (" ( ÄA   (‰A @  Ak!  A º ( ( E@A AÐ ˜"A6 A6 A6 A6 A6 A� 6  A �Ä@A AÐ ˜"A6 A6 A6 A6 A6 A �6  (  ¥Ò@A AÐ ˜"A6 A6 A6 (  ¥Ò"E@ (! A6  6  6  A�ÒÍ"( Ak!@ AJ@ A Ÿ"( ( A�Ò¦! (  ¥Ò@ (  ¥Ò"E@ (!A AÐ ˜"A6 A6 A6 AA  ( "( O@ ( Atj("E@ A (  AJ (A A ( 6  6  6  Ak!  A AÐ ˜"A6 A6 A6AA ( "( E@ (("E@ A ( A !AA ( "( E@ (("E@ A ( A !A �A�  ( "( E@ (("E@ A ( A !  6  6  6  ’ (AHA (Ak(Av  (A �ÄA @A�  (Ak(AvAjAÿÿÿÿÈ"A�ÒAÅ"AN@ A È! A�¤ (ÂAà£Â ÂA°£Â ¨ ( "( AJ@ ( E@ (("E@ ( "Ak(Av  ÄA  A�ÒÂAÇ A @A€å  ÄA �  Ak(AvAjAÿÿÿÿÈ ÂAÐä ÂAÀ� AС ¸1|}@ ("( J@  ( O@ ( Atj("@@@@@@ ( (" E@  AÀôÄA !A! (#ãA�Ýî@ H@ ("( O@ ( Atj("E@ (" ( (ÄA @ (AAÀçA°è (ÂA€è ("(AJAð� (A «ÂA �ÂA� ÂAà‹ë Aj!  ( " (AL@ (! ( öA!@ @  (Ø "E@ (AA°å Aàå (ÂAÀ�ÂA æë   @AÀç (Ø ! AÀôÄ  Ak(AØFA E@  (!A ("Að�Ä A Að´ÄA A°·Ä E   A€Û× A A @ (! (! ((AH@ Aðø AÀ‰Â ((A «Â#¥ì E -"@ (AAàè (A�éÂ#€ë  -$@ (AA€í (A°íÂ#�ë  @  (" ‰E@ AA°ç (AàçÂA�ÏAÀ“ (A F@A€é (ÂA �  @@@@@@@@@@@@@@@@@@@@@ (   A°é  AÐé  A°Ú  Aðé  A€“  Aà’  AЦ  A�§ Að§ AਠAÀ� Að¦ A€�  A�¨  A�ê  AÀê  AÀ�  Að�  A°‘  Aàê  AÀ¤ "Ak(AvA€å ÁAÅAGA  ÂÂA°ŽÂ (AF@ (A€�AÅ"AJ (A ÈÉ (  @@@@@@@@@@@@@@@@@@@@@@@@@@ (  A°�  A°é  AÐé  A°Ú  Aðé  A€“  Aà’  AЦ  Að¦  A�§  A°§  AЧ  Að§ A�¨ AÀ¨ AਠAÀê A�ê  A°“  Aà“  AÀ�  A€�  AÀ�  Að�  A°‘  Að ÂAë  (A F (AFA (AF A @@ (! (AF ( (" ¥ÒE  ( (" ¥Ò"E@ ((!# " E@Õ ! A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A! A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " - A  ( (" ¥ÒE  ( (" ¥Ò"E@ ((!# " E@Õ ! A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A! A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " - A "  × A AAàß (   “ A   ” AÀ“ ÂA°â ÂAÀáÂA°à ë  ’ "Ak(Av@ AA€è Aë ((AF@A! (AF@ +"¶" “C[A�   ¡"DaA€–  b A�‡A°‡ Dd Db  ’ AЈÂA€–  b A�‡A°‡ Dd  ¡Db  ’  @ ("( J@  ( O@ ( Atj+"¶" “C[A�   ¡"DaA€–  b A�‡A°‡ Dd Db  ’ AЈÂA€–  b A�‡A°‡ Dd  ¡Db  ’ "Ak(Av@   Aj!  A� "Ak(Av@ AAð… (A�‡Â ÂA †ÂAð‡ (ÂA°‡Âë AÀôÄ (A ïÄA @  Ak(AØFA E@ (! ((AH@ AðøA ïAÀ‰Â ((A «Â#¥ì (A ( @ (AAððA ñA � ("E  A �Ä@ (  A�Ò (  ÂA°ñÂ#‚ë AÀôÄ (A ïÄA AA!A ("A ïÄA AÐòÄ @#øAk(Av J@#ø Atj( Ä@A  Aj!  A @  Ak(AØFA E@ ( E! (! (" (AH@A Aë˜"A6 A6 A6 A6 A6 A6 A6 AAAêA¤6 (! ("(! (! (A ùÂA�°Â (A «Â! A6 Aðø6  6  6  6  6 #½6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 @ (AÐòÄ@ E@A Aë˜"A6 A6 A6 A6 A6 A6 A6 AAAêA¤6 (! ("(! (!A ñA � ("E  A �Ä@ (  A�Ò (  ÂAÀúÂ! A6 Aðù6  6  6  6  6 #„6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  (("AG AGA  (("Ak(Av A€�ÄA AA!@ ( "( J@  ( O@ ( Atj("E@ ((" ( ÄA @   Aj!  A AA˜"A6 A6 A6 A6 Aš! ë! A! @ ( J@ ( Atj((! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( " (AL@ (! A Aë˜"A6 A6 A6 A6 A6 A6 A6 AAAêA¤6 (! (! (! A€ÿ ÂAàøÂ! ( AJAàå ¡ ÂA�ÜÂA� AÐÿÂ! A6 A°þ6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  #ø (ÂAH (A ( @A Aë˜"A6 A6 A6 A6 A6 A6 A6 AAAêA¤6 (! ("(! (!A ñA � ("E  A �Ä@ (  A�Ò (  ÂAÀ‚ (ÂA�‚Â! A6 AÀ�6  6  6  6  6 #…6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  ( AJA  (AÀìÄA @ ( "( AJ ( E@ (("E@ ( A� ! (!  Ak(AØFA E@ AAàôA ñA � ("E  A �Ä@ (  A�Ò (  ÂAàõ ÂA õÂ#ƒë  @ AÀôÄE@ ( AAÐäAÀ“ ÂA€å (ÂAàáÂA æë  (#ãA ­î (Ak(AvE@ ( AAàåA�æAÐæë  ( ï  AÀôÄE@ ("E@ ($A áAÀ“ ÂA�â (ÂAàáÂAðâì Aj!  á (AFA (AF @@ ($"( J@  ( O@ ( Atj("@  ö Aj!  A!@ ( "( J@  ( O@ ( Atj("@  ö Aj!   (AF@ ( (" ¥ÒE@  ÷  (AF@ ( (" ¥ÒE@  ÷ ($AN@ ( (" ¥Ò"E@ (!  ($F@ AA ŠA ‹ (ÂAàŠÂAë  ($J@ AA ŠA ‹ (ÂAЋÂ ( (" ¥Ò"E@ (("(AJAÐ� (A «ÂA �ÂA� ÂAÐŒë ÂAÐÅA€Æ (AF"!  ( (" ¥Ò ( (" ¥Ò @Aà“A°“ Aðã (ÂAÐãÂ! AAàÄA°Æ ÂA Å (ÂA�ŽÂ (ÂAð�ÂA�ÏAÀ“A€ÆAÐÅ "Ak(AvA€å ÁAÅAGA  ÂÂA �ÂA°Ž Âë AAàÄA°Æ ÂA Å (ÂAÀ�ÂA°� ÂA�� (ÂAÐŽÂë ¡  å! • "Ak(Av@ AAð�AП ÂA°÷ ÂAðâ ÂA€ ë ( ( E@ A�ÒÍ!@ ( J@ ( Atj("Ak(AvAK Ak(Av /A A%FA @ Aj!  ò"(AF@ ô! AA °AП ÂA°¡Â ÂA�ò  óÂA€   AСÄë ¢  |} ("E@AA§ ˜!AA¦˜!AA.˜" 6  ž  6 A6 A6  6AA¦˜!AA.˜" 6  ž  6 A6 A6  6AA¦˜!AA.˜" 6  ž  6 A6 A6  6AA¦˜!AAý˜" 6  ž  6 A6 A6  6 A6 ãD€„.AdE@@@@@@@ Ak(A× k ($! ((! *»! * »! *4! *0! *,!C€?! (8"} AF}C!C€?C C!C€?!C ! A AJ! A AJ! Dà¿¢! Dà¿¢! »! »! »!A!A!A!@  Aj"L@   ·¢ ·£ !A!@  Aj" L@   ·"¢ ·" £ !  £! · Aj·£! (8" @ AF@  ¡       Dð? ¡Dð? ¡˜   ¡  ¡   Dð? ¡Dð? ¡˜           Dð? ¡Dð? ¡˜ Aj! AJ AJq@    Ak ™ Aj!  ! ! Aj!   A!A ((" AL! (,"A AJ! * »" *»" ¡ *$»" £D Db!A!@  Aj"L@  ¡ · ·£"¢ ! Dà?¢ ¢¡! A!@  L@ · ·£!C€?  F|D · ·£#Œ¢ô "¶" ” ¶" ”’  F|Dð? · ·£#Œ¢ð "¶" ”’‘•!   ¢  ¢  ”  ”  ”  Dà?¢˜ Aj! AJ AJq@    Ak ™ Aj!  ! ! Aj!  DdA -0@ D Dà?¢"DCC€?CDÐ?Dè?˜ "Aj!A!@  N@   F|D · ·£#Œ¢ô " ¢   F|Dð? · ·£#Œ¢ð " ¢CC€?C Dð? DÐ?¢ Dð? DÐ?¢Dà? ˜ Aj! AJ@ ( "( "Aj!  (AvK@  AA™ ( Atj 6  6 ( "( "Aj!  (AvK@  AA™ ( Atj Ak6  6 ( "( "Aj!  (AvK@  AA™ ( Atj Ak6  6 Aj!  DdA -1@ D Dà¿¢" DCC€¿CDè?Dè?˜ "Aj!A!@  N@   F|D · ·£#Œ¢ô " ¢  F|Dð? · ·£#Œ¢ð " ¢CC€¿C Dð? DÐ?¢Dà? Dð? Dð? DÐ?¢¡˜ Aj! AJ@ ( "( "Aj!  (AvK@  AA™ ( Atj 6  6 ( "( "Aj!  (AvK@  AA™ ( Atj Ak6  6 ( "( "Aj!  (AvK@  AA™ ( Atj Ak6  6 Aj!   A!A ($" AL!A ((" AL! *»! * »Dð?Dà? -,¢!A!@  Aj"L@ · ·£!  F|D# ¢ô !  AjF|Dð¿# ¢ð !A!@  L@ · ·£!  F|D · ·£#Œ¢ô !  F|Dð? · ·£#Œ¢ð ! DcA -,@   ¢ ¢D ¢ ¢CC€¿C  ˜ }C€?  ¢ ¢¶"" ” ¢¶" ”’ ¢ ¢¶" ”’‘•" “C[ C^q@  ”!  ”!  ”  C€¿C€? Dc!C!C !   ¢ ¢  ¢ ¢ ¢     ˜ Aj! AJ AJq@    Ak ™ Aj!  ! ! Aj!   (("A AJ! (,"A AJ! (0"A AJ! *»"Dà¿¢! * »"Dà¿¢! *$»"Dà¿¢!A!A!@  Aj"L@  ·"¢ ·" £ !   £! A!@  Aj"L@   ·"¢ ·"£ " š" šCCC€?  D@¢£" ˜  š  CCC€¿ DUUUUUUå?  ˜ Aj! AJ AJq@    At"Ak ™    Ak Aj™ Aj!  ! ! Aj!  !A!A!@  Aj"L@  ·"¢ ·" £ !   £! A!@  Aj"L@  š š"   ·"¢ ·"£ "šC€?CC  D@¢£"DUUUUUUÕ?  ˜   C€¿CC  Dà? ˜ Aj! AJ AJq@    At"Ak ™    Ak Aj™ Aj!  ! ! Aj!  !A!A!@  Aj"L@   ·" ¢ ·"£ !   £!A!@  Aj"L@   ·" ¢ ·"£ "š š š"CC€?C D@¢£" DUUUUUUÕ?  Dà? "˜   CC€¿C DUUUUUUå?  ˜ Aj! AJ AJq@    At"Ak ™    Ak Aj™ Aj!  ! ! Aj!    ("6  žA8A® ˜"µ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Ï 6 ž  Í 6 (6 6 è!@ ( J@ ( Atj(! ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AJ (A @ A � ("E  A �Ä@ (  A�Ò (  A � ! (  ¥ÒE@ (  Ó Aj!  é!A!@  ( NE@ ( ( Atj((– Aj!  ï (!A Aë˜""A6 A6 A6 A6 A6 A6 A6 AAAêA¤6 (! (! (! A6  6  6  6  6  6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 ‰@ ( J@ ( Atj("( "(AL@ (! A€‘ (ÂAà� ÂA€“Â! (!A Aë˜"Ð (! (! (! A6 A �6  6  6  6  6 A æ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  í@ ( J@ ( Atj("(@ (AF@ (!Aàœ (ÂAÀœÂ ÂA€“Â! (! A Aë˜"Ð (! (! (! A6 AÐä6  6  6  6  6 A æ6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (!A€œ (ÂAà›Â ÂA€“Â! (! A Aë˜"Ð (! (! (! A6 AÐä6  6  6  6  6 A æ6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ¦ ( ( E@A~ A �Ä@A A�ÒÍ!@ ( J@ ( Atj("Ak(AvAK Ak(Av /A A%FA @A Aj!  (  ¥Ò@ (  ¥Ò"E@ ( ( Ak!@ AJ@ A Ÿ"( ( A�Ò¦! (  ¥Ò@AA~ (  ¥Ò"E@ (!  ( "( O@ ( Atj("E@ A (  AJ (A A (  Ak!  AA~ ( "( E@ (("E@ A ( A  ¨ ( "( AJ@ ( E@ (("E@ ( "Ak(Av  ÄA  A�ÒÂAÇ A @A€å  ÄA �  Ak(AvAjAÿÿÿÿÈ ÂAÐä ÂAÀ� Aàå Ð@  ( NE@ ( Atj(!  (Að°ÄA (Aà²Ä A (A�±Ä A E@ ( "(AL@ (! A€‘ (ÂAà� ÂA€“Â! (! A Aë˜"Ð (! (! (! A6 A �6  6  6  6  6 A æ6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Õ • "Ak(Av@ Að³Â ÂAðâ Â! (!A Aë˜"Ð (! (! (! A6  6  6  6  6  6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 A~ ( þ"A~F@ Að³Â ÂA°ãÂ! ( ÿ"  A€äAÇ! (!A Aë˜"Ð (! (! (! A6  6  6  6  6  6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6  ÞAA˜"A6 A6 A6 A6 Aš! (é!A!@ ( J@ ( Atj((! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  ( AJAÀá ¡ ÂA â ÂA€â ٠(  ¥•@ A à "E  ( AM@ (("E@ (æ!@ ( J@ ( Atj((" A�ÒÆAjAÿÿÿÿÈ Ä@A  Aj!   (!A!@ ( "( J@  ( O@ ( Atj("E@ ( "A � ("E  A �Ä@ (  A�Ò (  ÄA @   Aj!  A " (A @ AA˜"A6 A6 A6 A6 Aš! (ê!@ ( J@ ( Atj((! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AÀù ÂAàøÂ! ( AJA€ú ¡ ÂA�³ ÂAð²Â ! (!A Aë˜"Ð (! (! (! A6 A ø6  6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ù  ˆ"@ (@ Að±Â ÂA Ô ("#_"Ak(AvO@  Atj("E@ ÂA ²Â!#è! ! (!A Aë˜"Ð (! (! (! "A6 A°˜6 6 6 6 6 6 "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  Að±Â ÂAàÒ (ÂA ÒÂ! …! (!A Aë˜"Ð (! (! (! "A6 A°±6 6 6 6 6 6 ! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ÚAA˜"A6 A6 A6 A6 Aš!@ ("( J@  ( O@ ( Atj("E@ (! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( AJAàß ¡ ÂA°à ¥ ("#?"Ak(AvO@  Atj("E@ ( "A€ ( ý (A ( (" ¥• E@AA˜"A6 A6 A6 A6 Aš! (é!A!@ ( J@ ( Atj((! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (!A�Š ÂAÀ°Â (ÂAàøÂ! ( AJAÀá ¡ ÂA â (ÂA€â ! ! (!A Aë˜"Ð (! (! (! "A6 A€°6 6 6 6 6 6 "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 I A:0 ((Aj6(@  (,"( NE@ ( Atj((¤ Aj!  ú} -<@A€ A (" AL" A€ N" (8Ak(AvG@AA-˜ AÿÿÿÿK@ AtA-˜"68 ž (8!A!@  Ak"H@  Atj}A!C ( ( "E  AF@ ($(*  · ·£¶!  ( ( Ak!@  kAJ@ ( ("  jAm"Atj*! AjAt j* ] ^q@ ! ]    !   ( ( Atj*^   " AkF@ ($( Atj*  E ( ( Atj*“" C_q@ ($(*  ($(" At"j*!  AjAt"j*"  ( ("j*  j*“"‹C¬Å'7]  C€? •" “" ”"” ” C@@•"  (,(j*”’ ” ”C@@”’  (((j*”“ ” ”" ”C@@”’ ” ”’ 8 Aj!   ( ( "AJ} ($(*C 8  AkAtj AJ} ($( AkAtj*C 8 A:<  “C\@C (8"Ak(Av"E@C AF@ *  Ak²”"C]C!A  ²`C! Ak ލ "Aj" H@  Atj*"  Atj* “  ²“”’  AkAtj* ‰ AHA  ( (kJ @A°á A «ÂA€á ( (kA «ÂA �Â! "-E@ A: 6 ž  ( (k6  6 ± -@A AHA  ( (k ( kJ @Aà† A «ÂA †Â ( A «ÂA°Ä ( (k ( kA «ÂA€†Â! "-E@ A: 6 ž  ( (k6 A A I AŠE@A (! ( ( "Aj6 j! (O@ ( j- l AŠE@A ( " (j! Aj6  ("(O@ ( j- ("( Aj"M@ ( j-Atr s AŠE@A ( " (j! Aj6 A!@ AH@  j" ("(O@  ( j- Attr! Aj!   v~ AŠE@B ( " (j! Aj6 A!@ AH@  j" ("(O@  ( j1 ¬B††„! Aj!   ™ �! -@A AJ ( (k ( k m ( (k ( kAj I@A�ã A ªÂAÀâÂ! "-E@ A: 6 ž  ( (k6 A  þ ŠE@A Aߘ"A6 A6 A6 AA¦˜"6 6 A6  ( " (j!  j6 ("(!  j! "AH j"A AJ  J ! AH j"A AJ  J !A Aߘ" ("6 ž ( j6    J k6 Ï~ A�!AA¤˜"A6 A6 A6 A6 Aš!@  H@ �"­|! "( "Aj!  (AvK@  AA™ ( Atj 6  6 Aj!  -@A ( (k ( k¬V@Aàí A ¬ÂA€íÂ! "-E@ A: 6 ž  ( (k6 A AA˜"A6 A6 A6 A6 Aš!A!@  H@  ( O@ A� ( Atj("E  �!A� -  ( (Ò ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  -@A ( " (("E@ Ak(AvA @ -E@ A: A�î6 A�îž ( (k6 A  š  ( ( O@Aà‡ A ªÂA ‡Â ( ( A «ÂA �Â! "-E@ A: 6 ž ( (k6 A�   ( "( O@ ( Atj("E@ Ì  (( O@AÐà A ªÂA ‡Â (( A «ÂA �Â! "-E@ A: 6 ž ( (k6 A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6   ("( O@ ( Atj("E@ (AFA (AF @ ü  ("(O@ ( j-@ ü  ("(O@ ( jA:  Ã@  (( O@A€Û A ªÂAÐÚ (( A «Â! "-E@ A: 6 ž ( (k6   ( "(O@ ( j-@AðÛ A ªÂAÀÛÂ! "-E@ A: 6 ž ( (k6   ( "(O@ ( jA:  ("( O@ ( Atj("E@  A(A“˜"ñ A6 A� 6 A� ž š ("A�! @  H -A E@ (A�! (!A� E   �!A� -  ( (Ò ! (A�! (!A� E   �!A� -  ( (Ò !AA’˜"A� 6 A� 6 A� 6 #66 #66  6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  -E AJq -A E@ AвÂ! "-E@ A: 6 ž ( (k6 ú  • ("A�! -E AJq -A E@ Aà±Â! "-E@ A: 6 ž ( (k6  @  H -A E@ (! (A�! (!A� E   �!A� -  ( (Ò ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ¹ ("AŠ (! (  ( "Aj6 j!  (O@ ( j-A ! ("-E  Iq@ Aàç A ªÂAг A ªÂ! -E@ A: 6 ž ( (k6  uA (�" H AÿÿÿÿKr (-@ (! Aàç A ªÂ! -E@ A: 6 ž ( (k6  Ô| ("A)�! AA€˜"A6 A6 A6 A6 Aš!@  H -A E@ A A�µÂ A «ÂAШ—!AÐA‹˜"×  6 Ž¿! Ž¿! Ž¿! Ž¿! -A ¡Da#»" ™fq ¡Da  ™fqA   ¡Da ™#»eqA   ¡Da ™#»eqA E@ A�µÂ A «ÂAÀµÂ! " -E@ A:  6  ž ( (k6 AF@ -A D@e Dfq œaq E@ A�µÂ A «ÂA ¶Â! " -E@ A:  6  ž ( (k6  ª6(  90  98  9  9  9  9 (D (H A�µÂ A «Â– " ( " Aj" (AvK@  AA™ ( Atj" 6 At Ÿ 6 Aj!  -@A A Aߘ"A6 A6 A6 ( "AüÿÿÿK@ A¦˜"6 6 6 !A!@ ( J@  ( O@ ( Atj("AN@ ( N@ AÀ·Â A «ÂA�Á ( A «Â! "-E@ A: 6 ž ( (k6 A  ( O@ ( Atj(" E@ (O@ ( j- ( O@ ( Atj("E@ ‡ ( O@ ( Atj("E@  "6D ž (O@ ( jA: Aj!  A ¬  | (!AA�˜" Õ (A�! (! A� E   �!A� -  ( (Ò 6 ( ( – AŠ (! (  ( "Aj6 j!  (O@ ( j-A ! -E AKq AÿGq@ AÐÔ A ªÂ! -E@ A:  6  ž  ( (k6 A�! -@A AA¤˜"A6 A6 A6 A6  š! A!@  H@  AÿF A A€Õ—  º Aj!  @  H@ (!AØAŒ˜"Ö  ( O@ ( Atj(! A A°Õ˜!  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  A!@  H -A E@  ("( O@ ( Atj("@ (!@@@@@@ (   Ž7 -A +" ¡Da ™#»eA E@ AðÕÂ! -E@ A:  6  ž  ( (k6   A A Ì—AF:   �6  (A�! (! A� E   �!A� -  ( (Ò "6  ž   Ž7  Ž7(  Ž70  Ž78 -A + " ¡Da ™#»eA  +(" ¡Da ™#»eA A  +0" ¡Da ™#»eA A  +8" ¡Da ™#»eA A E@ AðÕÂ! -E@ A:  6  ž  ( (k6 Aj!  A!@  H@  ("( O@ ( Atj("@  A AÐÄ—6@ Aj!  A!@  H@ �! -E AHq@ A€Å A «Â! -E@ A:  6  ž  ( (k6  ("( O@ ( Atj("E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  A!@  H -A E@  ("( O@ ( Atj("@ (L  ("( O@ ( Atj("E@ (P AÐÕ A «Â– Aj!  A - ‰| (Ž¿! (-A  ¡Da ™#»eq E@ (! Aàç øÂA°ËÂ! -E@ A: 6 ž ( (k6  ­ A AШ—!A A—˜"ˆ  6 (A�! (! A� E   �!A� -  ( (Ò "6  ž (A�! (! A� E   �!A� -  ( (Ò "6  ž (A�! (! A� E   �!A� -  ( (Ò "6  ž  A AÐÉ—6 A (Ak(AvA ( Ak(AvAG ! A€ÊÂ!  (-A E@ ("-E@ A:  6  ž  ( (k6 AF (Ak(AvAGA ! AÐÊÂ!  (-A E@ ("-E@ A:  6  ž  ( (k6 ( ( –  “ ~ ( B ˆ§A½ÜÊ•|l §A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s" (qAtj(!@ @ ("AqE@  ) Q  A~q!  A "@  7 ( " (F@ ( AlAmH ( (AtAr !AA¦˜ Aj"At"AüÿÿÿK@ A¦˜!AA¦˜ AtAm" Al"AüÿÿÿK@ A¦˜! (" (Alj! !@  G@ (AqE@  )" 7  )7    B ˆ§A½ÜÊ•|l §A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj"(6  6 Aj! Aj!  6 ž 6 6 ž 6 (6 (! ("Aj6  Alj" 7  7 (Aj6  ( (qAtj"(6 6 Ý~ ( )"§ ) |§­! (,"( ( )"B ˆ§A½ÜÊ•|l §A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ) Q  A~q!  A  (,"( ( )"B ˆ§A½ÜÊ•|l §A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ) Q  A~q!  A "E@ ) )RA @A! (! )"§! ) |§!@  H@#|  ( j-sAÿqAtj( Avs! Aj!  ( AsG@Aàè ("#ÊAk(AvI #Ê"Ak(AvO@  Atj("E@ A ê A ªÂ ÂAÀ… (ÂA èÂ!AÀê ("AA Aðê Â#@îê )"BR@ (, ) � AA¬˜"A: A6 A� 6 A6 A: 6 ž ª ú AÀŒ#à A Ak(AvAkÈ  !A!@ ("( J@  ( O@ ( Atj("E@ ( Ä@  ("( O@ ( Atj("E@  Aj!  A é (€ �"AN@ („  œ (ˆ  œ (€"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 („"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (ˆ"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (ü" (A "E@ (œ G@ ¡ (” �AN (˜! (” �! ( O@ ( Atj(A     ¢! (” �"AN@ (”   (˜ É @ (”"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (˜"( "Aj!  (AvK@ AA™ ( Atj 6 6 ‰ (”"( ! AAA™ AJ@ (A Atü A6 (˜"(  AAA™ A6 (ü" (A ""6œ ž E@A AŘ"A6 A6 A6A Aè˜"A6 A6 A6  A²6A Aߘ"A6 A6 A6  A«6 6Œ žAA¦˜!AAŠ ˜" 6  ž  6 A6 A6 6� ž A AŘ"A6 A6 A6  (D( Û"6Œ ž "AA¦˜!AAŠ ˜" 6 ž 6 A6 A6 6�  ž@  (LH@ (�"( "Aj!  (AvK@ AA™ ( Atj"A6 At AŸ 6 Aj!  A!@ (€"( J@ ( O@ ( Atj("E@    " („"( O@ ( Atj("E@   (ˆ"( O@ ( Atj(¢"@ (”! (€"( O@ ( Atj("E@ ! ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (˜"( "Aj!  (AvK@  AA™ ( Atj 6  6 Aj!  Õ|  Ú"AH@A  (D"( O@ ( Atj("E@ (A F@ (E@ (� (DAœA E@A (� (D œA  (!@@@@@@@@@@ (  AFA (AFA (AF (AFA (AF  AFA AF +" œ aA  AF  A F A F (Aq (AFA (AF A   A F A F (Aq (AFA (AF A   AF  A F  A F  A E@A @@@@@ (Ak A  A  A  A  A "AF@ (AF|Dð?D -| (AF@ )¹  (AF@ +  D !  (Œ"("(O@ ( j-E@   Ü At" ("(AvO@ ( Atj 9  (Aj6A!@  H@  ("( H|  ( O@ ( Atj+D ! (Œ"("( M@ ( j-E@   Ü At j" ("(AvO@ ( Atj 9  (Aj6 Aj!  A ü AN  ((( HA   (("( O@ ( Atj( ("(( "AJ Ak" ("( O@ ( Atj(A ! AN  ((( HA   (("( O@ ( Atj(A ! ((T!AA½˜"A6 A6 A6 A6 A6 A6 A6 6 6 6 6 6 ! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 6@  H  ((( HA @ ( A© Aj!  û@ (" ((( H@ Aj6 ( A€�¦A ( Aà˜¦ A ( A€ ¦ @ Aj! ( A �¦A ( A ™¦ @ Ak! ( AÀ ¦@ Ak"AL@ ( (A ’¦@ (Aj6 A  AL ( A ’¦A @A  A æ AHA  (( N @A  ("( O@ ( Atj(!  ( "( O@ ( Atj( k" Ak(AvG@A A!@  H@  j! (!  Ak(AvOA  Atj/  Ak(AvOA  Atj/ G@A Aj!  A ‚ (E@  (A ! "#¾!  (A ! (!A Aé˜"¸ AÐÞ6 6 6 6 6 6 6  ž A Õ ! Aಉ" (A "E@  (AÀ’ (ÂA êÂAà²Â§ E@A A Ak(Av A�ÒAÇA A A€™AÅAN A A€’AÅAN  A�ÒÍ!@ ( J@ ( Atj("Ak(Av A �ÄA A AàžÄ @A  Aj!  A E@  (Aг ÂAЃÂ§A # (Ë "Ak(Av A�Ò#à   A�Ò   ¤"-E@  (AàÎ (Ë "Ak(Av A�Ò#à   A�Ò   ÂAðÛ (§A ( Á~ (@A ! " ‰" (A "E@ (AÀ’ (ÂA ê § E@A Ak(Av" A MA !A!@ A  Ak(Av"H@  OA Atj/ "A0H A9Jr@A! A0k¬ B ~|! Aj!  E  ¬Sr  ¬Ur@ (AÀ’ (ÂA ë ÂA°÷ ÂA�ˆÂ A «ÂAð‡Â A «Â§A § ©| (@C  ‰" (A "E@ (AÀ’ (ÂA ê § E@C Ì " b@ (AÀ’ (ÂA ë ÂA°÷ ÂAÀé§C ¶ © (@A  ‰" (A "E@ (AÀ’ (ÂA ê § E@A Aà¯Ä@A AàûÄE@ (AÀ’ (ÂA ë ÂA°÷ ÂAк§ A ™ 6 ž 6 ž :% A (AvAn!A!A (AvAp @ (Av J@  ( Atj(L@A  Aj!  A :$ (Aj6 À (   "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA Ò ( A! A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "@  AÀAœ ˜"A6 A6 A6 A6 A A› ˜"A6 A� 6 A� 6  6 A6 B7 B7 A6(AA¦˜!AAɘ" 6  ž  6 A6 A6  6, A:0AA¦˜!AA‰ ˜" 6  ž  6 A6 A6  64 A:8  6  6  6  6 @  6  ž AÀ… Â! (  ¥Ò@ E@ (  ¥Ò"E@  ("6  ž ( ï ("Aj6  6(  Ñ 7  Ak(A¾ FA @ A:8 ($"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (  ™ (  » ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A!@ ( "( J@  ( O@ ( Atj("@@ ( "" Ak("A– F Aš Fr A› FrA @ ($! ("A  ( A E  (("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ (("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (  A A€˜"Æ ((  »  ! @ (  » ("( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 @A!@ ( J@ ( ( Atj( » (!  ( O@ ( Atj(" E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!    Ak(Aº FA @A!@ ("( J@  ( O@ ( Atj("E@ (P" (A " ("! ($" ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@  ( F  A~q!  A A E@ ($ ( » (("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ (("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (  A A€˜"Æ ((  »  (! (! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  Aj!   É FA -0 A -0 @ @ (4"( J@  ( O@ ( Atj("E@  F@ Aj!  (4"( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  (Aj6 Æ -8A -0 @ ("E@ (("( ! AAA™ AJ@ (A Atü A6 A ( " Ak(A¾ FA E   Ak(A¾ FA E@ A (E A (("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E  (("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ ((Á!A!@ ( J@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A E@ A!@ ( J@ ("( ( ( Atj("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (A "@  ® Aj!  ( ! AAA™ AJ@ (A Atü A6 A:8A!A ($"( "E ALr  (!@  H@  Atj( F@   Aj!  A "AN@ ($  ] ($( Ak!@ AN@  ($"( H@  ( O@ ( Atj("E@ ¯ Ak!  �%~ A:0 A6 ( (" ¥Ò ( (" ¥Ò"E@  (FA @ ( (ï  ("( ( ( "A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ( ( ¼ A!A ("( "E ALr  (!@  J@  Atj( F@   Aj!  A "AN@ (  -8E@A!A ($"( "E ALr  (!@  J@  Atj( F@   Aj!  A "AN@ ($  A:8 A!@ ( "( J@  ( O@ ( Atj(" @ ( " Ak(A¾ FA @ ("("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ ( ( ¼ ("@ ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ( ¼  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ( ¼  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ( ¼  Ak("A– F Aš Fr A› FrA @ (! ($!A!@ ("( J@  ( O@ ( Atj("E@ @  Aõ @A!@ ( J@ A ( Atj(õ Aj!  Aj!   - A @ A: @A!@ ( J@ ( Atj("-@ A: Aj!   (("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  (("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (A " (#» !A!@ ("( J@  ( O@ ( Atj("@A! @  Ak("A– F Aš Fr A› FrA @ (! (! ($! ("  (  ¥ÒA  (  ¥Ò" E@ (FA @ ( ï  (  ¥ÒA  (  ¥Ò" E@  (FA @ ( ï (  ¥Ò@ ( ï   Ak(Aº FA E  Ak(Aº FA E@ A!@ E  ( "( Hq@  ( O@ ( Atj("@A (" (" ( FA A!@ ("( J@  ( O@ ( Atj("E@ A (P F  Aj!  A ! Aj!  @AA¦˜!AA½ ˜" 6  ž  6 A6 A6 AA¦˜!AA½ ˜" 6  ž  6 A6 A6 A! @ ( "( J@ ( O@ ( Atj(" E@ A (" (" ( FA A!@ (" ( J@  ( O@ ( Atj(" E@ A (P F  Aj!  A  "( " Aj "( " Aj ! (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!   6  ž  � (( Ak!@ AN@  ("( O@ ( Atj("E@ ( F@A (" ( "    H" k" AJ"A AJ"At"A¦˜! AA¾ ˜" 6 ž 6 6 6 ( (" Atj" Atü  j" G@ A   Atj  kAtü  k"AtjA Atü 6 Ak!   € Aj!  @A!@ ("( J@  ( O@ ( Atj("E@  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @  ("( O@ ( Atj("E@ ( ¼ Aj!  A!@ ("( J@  ( O@ ( Atj("E@  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @  ("( O@ ( Atj("E@ ( ¼ Aj!  A!@ ("( J@  ( O@ ( Atj("E@  ($"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ($ ¼  (,"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ (, ¼ Aj!  (( ¼ A!A (0"( "E ALr  (!@  J@  Atj( F@   Aj!  A "AN@ (0  Aj!  #."E@AØAȘ"” $. !A!@ (,"( J@ ( M@ ( Atj("E@ A Ak("A�F A AÖF A AÑF  !~ Ak("A�F@ )  B AÖF  AÑF@ )  ! @  )B}7  ) }7  )B}7  ) }7 (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (,"( ! AAA™ AJ@ (A Atü A6 B7 (Aj6 (4!AA¦˜!AA‰ ˜" 6  ž  6 A6 A6  64  ž ( Ak!@ AN@  ( O@ ( Atj("@@ -0  (Ak6 (AJ ± Ak!  ‘ (( Ak!@ AN@ (!  ("( O@ ( Atj("@@ -0  (Ak6 (AJ  ± Ak!  ("( ! AAA™ AJ@ (A Atü A6 ( !AA¦˜ AA¦˜"6 ž A6AA¦˜ A A¦˜"6 ž A6 A6 A6 ’ (AF@ ( (" ¥Ò ( (" ¥Ò"E@ (A  (AF@ ( (" ¥Ò ( (" ¥Ò"E@ (A  A E 6 ž 6 ž ((AvAn  Ö : ($Aj6$ �  } ($( " ((( Am"  H!AA.˜"A6 A6 A6 A6 Aš!AAÓ˜"A€A¦˜"6  6 A€6 A6 @  H@  ($"( O@ ( Atj+¶! At" (("( O@ ( Atj+¶! AtAj" (("( O@ ( Atj+¶! AtAj" (("( O@ ( Atj+¶! AtAj" (("( O@ ( Atj+¶! ! ! ! "( "Aj" (AvK@  AA™ ( Atj 8  6 ! ! ( " Aj"AÿÿÿK@ At" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" 8  8  8  8  6 ( Ak!@ AJ Ak" ( O@ ( Atj*]A @ Ak" ( O@   ( Atj*¡ Ak" ( O@ ( Atj"* ! *! *! *!  ( O@ ( Atj" 8  8  8  8 Ak!    ¡ ! ! !  ( O@ ( Atj" 8  8  8  8 Aj!  6 ž 6 ž µ } (( "E@CCCC€? Ak!@@@  L@ ((  jAm"Atj*" ^@ Ak!  ^E  Aj!  Ak   (( Atj*]"Aj" N@ Ak" ("( O@  AH@ ("( E@ ("* * * *   ((" Atj*"“ At j* “•! ("AF ( "E AGq@  ("( O@ ( Atj"* ! *! *! *!  ("( O@ ( Atj"* “ ”’  * “ ”’ * “ ”’  * “ ”’  ("( O@ ( Atj"* * * * × !! ! " !  ("( O@ ! ! ! ( Atj"* * * * × !! ! " ! ! ! ! AG@  “ ”’   “ ”’  “ ”’   “ ”’ Ø  Ak  AJ" ("( O@ ( Atj"* * * * × !! ! " ! Aj"   H" ("( O@ ’  “ ”’  ’ C @”“ C€@”’ ( Atj"* * * * × !!!""“  ”"”’ C@@” “ C@@”“ ’  ””’C?”  ’  "“ ”’  ’ C @”“ C€@”’ " “ "”’ C@@” “ C@@”“ ’  ””’C?” ’  "“ ”’  ’ C @”“ C€@”’ " “ "”’ C@@” “ C@@”“ ’  ””’C?”  ’  "“ ”’  ’ C @”“ C€@”’ " “ " ”’ C@@” “ C@@”“ ’ ””’C?” Ø   ("( O@ ( Atj"* * * * d ("E ("Er@A ("A Ak("A“ F  Aæ F@ ("(¼"  ñA  A öAA¹ ˜"A6 A6 A6 A6  6  6  6  6 !A!@ ("( J@  ( O@ ( Atj("E@ ( Ä@ (  œ Aj!  ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 {@ ("( J@  ( O@ ( Atj("E@ ( Ä@  ("( O@ ( Atj("E@  Aj!  A Ò ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ ( AA½ ˜"½ (!@ ( J@  ( Atj((" ¥ÒE@  ( O@ ( Atj("E@  (  ( O@ ( Atj("E@ ™ Aj!  (  »  K ("Ak(Av@ ( É (" (Ak(AvA @ ( ( ƒè|} ("@   (Ak(Av(! »! A€�  A�ÒÆAjAÿÿÿÿÈ"A �Æ"AJ A È A€�Ü ï " 6 ž Þ !AA³˜"A6 A6 A6 A6 Aš! (! @ (( J@ ("( M@ ( Atj("AN  ( O@ ( Atj("E@  !  ("( O@ ( Atj(!AAÔ˜"A6 A6 A6 A6 Aš!@ AH@  ("( O@ ( Atj("E@ AÀ¥ ï " 6  ž  6  ž  ” ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAϘ"þ  ( "( O@ ( Atj(" E@ A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6  ž A€¨6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  A “   ( O@ ( Atj("E@  (" ( O@ ( Atj("E@ (\A › (  ("( O@ ( Atj("E@ ï " 6  ž  6  ž  ” ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (\!  Ak(AÑFA A @  Ak(AÑFA E@ (!A! AA¦˜!AAÒ˜" 6  ž  6 A6 A6  6È  ž@ ( J@ ( Atj(! (È!AÔAИ"A6 A6 A6 A6 A°*!A¬*!A¨*! A¤*!!A *!"Aœ*!#A˜*!$A”*!%A�*!&AŒ*!'Aˆ*!(A„*!)A€*!*Aü*!+Aø*!, Aô*8  ,8  +8  *8  )8  (8$  '8(  &8,  %80  $84  #88  "8<  !8@  8D  8H  8L A6P (! (! (Ð! ( Ð!  6  6  6  6  Ð6P ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AA¦˜! AA˜" 6  ž  6 A6 A6  6Ø  žAA¦˜! AAî˜" 6  ž  6 A6 A6  6Ü  žAA¦˜! AA¤˜" 6  ž  6 A6 A6  6à  žAA¦˜! AA˜" 6  ž  6 A6 A6  6ä  žAA¦˜! AAî˜" 6  ž  6 A6 A6  6è  ž  (ÌAj6Ì § ¨  Ak(A¶FA !AAϘ"þ * *( *8 *H * * * * * *$ *, *0 *4 *< *@ *Dù! AÐ 6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 -LE@AAϘ" þA(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A: AÀÚ6 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A!@ (T( J@AAϘ" þ  (T"( O@ ( Atj("E@  (X"( O@ ( Atj("E@ 6 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  @  Ak(A¶FA E@ (`" (ANA  ( (JA  (" ( O@ ( Atj(" E@ (\A @  6   žAAϘ"þ (" ("( O@ ! ( Atj(! AA¤˜"A6 A6 A6 A6 Aš!@@ ( "Aj" (AvK@  AA™ ( Atj 6  6 AH  ("( O@ ( Atj(!  AA˜"A6 A6 A6 A6 Aš!@A!A ( "E ALr  (!@  H@  Atj( F@   Aj!  A AH@ ("( O@ ( Atj("E@  ž ("( O@ ( Atj(!  AA˜"A6 A6 A6 A6 Aš!A!@A!A ( "E ALr  (! @  H@ Atj( F@   Aj!  A J@ ( "Aj" (AvK@  AA™ ( Atj"Aàž6  At AàžŸ  6 Aj!  A! @ ( J@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( " ( A�Ò¦A � ! A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6  ž A°À6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (h"( AJ@ AAÿÿÿÿŸ! AA.˜"A6 A6 A6 A6  ( š!A!@ ( J@    (l"( H}  ( O@ ( Atj*C ¡ Aj!   6¨  ž  6¬  ž  Aÿÿÿÿ¢"6´  ž  A “ *H! *D! *@! *” CÛÉ@•}C€? •"¼Aÿÿÿÿq"A€€€üO@ CÛÉ?”C€’ A€€€üF C  “•  A€€€øI@  A€€€ÌI A€€€Oq     ”"  CkÓ ¼”Cº/½’”Cuª*>’” C®å4¿”C€?’•”’  D`û!ù?C? ‹C?”“"»Ÿ"    CkÓ ¼”Cº/½’”Cuª*>’” C®å4¿”C€?’•»¢ D@¢¡¶ ˜ ” 8 6$ *8 *" *"“C@@”’ *4"“8(   ’“ ’C@@”8,  “C@@”80 Á} (E@ ( Ó!C€? *"C@@”“ *"C@@”’ ” C@@” CÀ@”“’ ” C@@”’ ” (AF@ ("E@} C€¿’! ($"*"C€?]@ *‹" ‹"^@   •"”C€? “’  * C@ C A”û” Œ *“CÛÉ@” *•ü”Œ AF@} ($"*"C€?]@ *‹" ‹"^@   •"”C€? “’  * C@ C Á”û”  *“CÛÉ@” *•ü”C€?’ AF@}}  ’C€¿’! ($"*"C€?]@ *‹" ‹"^@   •"”C€? “’  * ! C]@ C¿”C@ C A”û” Œ *“CÛÉ@” *•ü”  C@ C Á”û”  *“CÛÉ@” *•ü”C?”C€?’   Á} (AG@   “ Õ”’ *4 \A *8 \ @ 84 88 *8 *" *"“C@@”’ *4"“8(   ’“ ’C@@”8,  “C@@”80 ( Ó! *( ” *,’ ” *0’ ” *4’ § 6 8 C€?C€¿ C`"8( } * C€?”C`} -} (²C (²• - ( ( ² (²•  * C`} - ( ( ² (²• -} (²C (²• 8AAô˜ ($"AÿÿÿÿK@ AtAô˜6$A!@ ($"Ak(Av J@  AtjA6 Aj!  ¾ }  * ”" (" * ” (²”! C8 C[  “C\r  “C\rA * ’ (²”" “C\ @ A:A *8 * ‹’8 (" (A (² * ” ”"C^ * - ( ( ² (²•]A A C] * -} (²C (²•^A E! *" ’8 @   * *(AÒ * (²"”! -} (²C !AA C]! (" AG - ( ( ²" “"C_q@  •8 @ AF@ AF  `q@  “ ý"  ”• ”8  ’ •8A! @ C * *(AÒ  AF  _q@  “ ý‹"  ”•‹ ”8  “ •8A! @   • * *(AÒ A!  ’! AF  “ C€B”^A    “ ý’" •8A AF  “ C€B”^A    “ ý“" •8AA ! A! @@ "Aj! A€N@   —– •8  AF  `q}  “ •8  •!   “’ AF  ]q}  “" •8  •!  ’  " •8 A (k6A k! A! @   * *( Ò E!   AF  ^q  “  ”• ”8  •8A AF  ]q  “  ”‹• ”8  •8AA ! @ C8 : @ (Aj6 ("(A (² * ” ”"C^ * - ( ( ² (²•]A A C] * -} (²C (²•^A ™ * C`} ("* C€?”C`} -} (²C (²• - ( ( ² (²•  ("* C`} - ( ( ² (²• -} (²C (²• 8 C8 C8 C8 A6 A: A6A!@  ($"Ak(AvNE@  AtjA6 Aj!  š| ( (G@A (AF@ - -F (AF@ ( (F (AFA (AF @ ( (Ä +" +"a@A  ¡™  ™ ™¥Dð?¥¢e á ( A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò ( A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "AN  (("( O@ ( Atj("E@ (A æ ( A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò ( A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "AHA  (("( O@ ( Atj("E@ ("E AFr AFr AFr AFrE @A  ( "( O@ ( Atj("E@  (6  +9  -:  (6  ("6  žA Ñ | ( A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò ( A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "AH@A  (("( O@ ( Atj("E@  (! (!  ( "( O@ ( Atj("E@ A$Ö@ E@ (" AFA | + (AF|Dð?D -  ! (A + b @ A6  9A$Ö A  AF@ (" AF -   +Db ! (AGA - G @ A6  :A$Ö A  AF@ (AG  (AGA ( (G @ (! A6  6A$Ö A  AF@ ("AG AGA  (AGA ( (Ä E@ (! A6  6  žA$Ö A  AF@ (AFA (AF  (!A!@ ( J@  ( Atj( Ä  Aj!  A  (  +" Df ( ·cA  œaA  ªA "AH  (AGA +ª G @  ( O@ ( Atj("E@ A6  ·9  6  žA$Ö A  A  A E@A #Ö@ (Aj6 A ~@ ("( J@  ( O@ ( Atj("E@ (( Ä@  ("( O@ ( Atj("E@  Aj!  A ÓAA„ ˜" !AA¦˜!AA˜" 6  ž  6 A6 A6  6AA¦˜!AA… ˜" 6  ž  6 A6 A6  6AA¦˜!AA˜" 6  ž  6 A6 A6  6AA¦˜!AAå˜" 6  ž  6 A6 A6  6 AA¦˜!AA˜" 6  ž  6 A6 A6  6 AAÿÿÿÿŸ"6 ž ( "A AL!  k"A AJ" At" A¦˜!AA… ˜" 6  ž  6  6  6 (! ( Atj! At! @  I@  j  j(" 6  ž Aj!  6 ž AAÿÿÿÿŸ"6 ž@ ( J@  ( O@ At" (j("@  (j(!  ( O@ ( Atj("E@ A!AAå˜"A6 A6 A6 A6 Aš" (,"( E  ! AA˜"A6 A6 A6 A6 Aš" (( E  Þ !A!@ ("( J@  ( O@ ( Atj(" (" ( O@ ( Atj(" E@  ("( O@ ( Atj(!@ AN@  ("( O@ ( Atj("E@ A�Ò Â!  ("( O@ ( Atj(!  ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   !@ ( J@ ( Atj(!A8A‘˜"Ó  (A Å ÂA �Â6  (6  (6  - AG6 A:%A!@ ("( J@  ( O@ ( Atj("E@ (AHA ( (L E@ (" ( O@ ( Atj("E@  Ak(Av A �ÄA @ A � Ak(Av   Ak(Av A �ÄA  A�Ò  ! A!@ (("( J@  ( O@ ( Atj("E@ ( Ä@  (("( O@ ( Atj("E@   Aj!  A "E@AA�˜"Ô  6 (("( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (! (!A!AA�˜"Õ  (6@ ("( J@ (!  ( O@ ( Atj("E@ AØAŒ˜"Ö (!  (6  6  +9  -:  (6  (" 6  ž  + 9  +(9(  +090  +898  (@6@  (D"  ‡A " 6D  ž  (L‡" 6L  ž  (Pˆ"6P  ž ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!   ( ‡"6  ž  (ˆ"6  ž ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  !A!@ ( J@ ( Atj(! ( "( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (!  ( O@ ( Atj(" E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  Aj!  €|} *Ä! *À! *¼! *¸! *´! *°! Dð!A!@ ANE@ AF"  » | AF| +` +h  +X "¡Dð? | AF| +x +€  +p £"¢"    » ¡ ¢"d@ ! ! !    c!    c! Aj!   dE Î|  (0"‡E@  +" +X" ¢ +" +`" ¢  +0" +h" ¢  +H ! +" ¢ + " ¢  +8" ¢  +P ! +" ¢ +(" ¢  +@" ¢  +X !  +p"¢  +x"¢   +€"¢ !  ¢  ¢   ¢ !  ¢ ¢  ¢ ! +ˆ! D!D! D! ($""Dð9 "A6 "D9 "D9 "A: A ",(E  (! ( !* (!+ (!$ ( !%A!(Dð? £"!Dð? £"! ("!"(AvE@ (AvAM@ ("*» ¡ ¢" * » ¡ ¢"d@ ! ! ! (AvAM@ (AvAM@ D Dd!   c! ("*» ¡Dð? £"¢" *» ¡ ¢"d@ ! ! ! (AvAM@ (AvAM@    d!    c! ("*» ¡ ¢" *» ¡ ¢"d@ ! ! ! ADð    d"    c c"Dða  $(AvE@ $(A6A! %(AvE@ %( 9@ AJ@ Ak" %(AvO@ %( Atj+e   $(AvO@ $( Atj(" *(AvO@ *( Atj(!'  +(AvO@ +( Atj(")AL@ ' )k!#@ # 'J@ 'A l" (AvO@ ( Atj*»! Aj" (AvO@ ( Atj*»! Aj" (AvO@ ( Atj*»! Aj" (AvO@ ( Atj*» ¡! Aj" (AvO@ ( Atj*» ¡! Aj" (AvO@ ( Atj*» ¡! Aj" (AvO@ ( Atj*» ¡! Aj" (AvO@ ( Atj*» ¡! Aj" (AvO@@   ( Atj*» ¡"¢  ¢¡"¢   ¢  ¢¡"¢    ¢  ¢¡"¢ "DaA  ¡Db ¡" ¢ ¡" ¢   ¡" ¢ Dð? £"¢"D0¸Dð?d D•Ö&è .¾cr   ¢  ¢¡"¢   ¢  ¢¡"¢    ¢  ¢¡"¢  ¢"D•Ö&è .¾cA   D0¸Dð?d  ¢  ¢   ¢  ¢"Dd  cq@ '!( ! ! ! ! 'Aj!'   'Al"&" !(AvO@ &Aj"# !(AvO@ !(" #Atj*» ¡ ¢" At j*» ¡ ¢"c@ ! ! ! &Aj" !(AvO@ &Aj"# !(AvO@ D Dd!   c! !(" #Atj*» ¡ ¢" At j*» ¡ ¢"c@ ! ! ! &Aj" !(AvO@ &Aj"# !(AvO@    d!    c! !(" Atj*» ¡ ¢" #At j*» ¡ ¢"d@ ! ! ! Dð    d"    c c" )Al"& !(AvO@ &Aj"# !(AvO@ !(" #Atj*» ¡ ¢" &At j*» ¡ ¢"c@ ! ! ! &Aj" !(AvO@ &Aj"# !(AvO@ D Dd!   c! !(" #Atj*» ¡ ¢" At j*» ¡ ¢"c@ ! ! ! &Aj" !(AvO@ &Aj"# !(AvO@    d!    c! !(" Atj*» ¡ ¢" #At j*» ¡ ¢"d@ ! ! ! Dð    d"    c c"e@ Dðb@ $(Av M@ $( Atj )6 "Aj!  %(AvO@ %( Atj 9 Dðb@ $(Av M@ $( Atj '6 "Aj!  %(AvO@ %( Atj 9  Dðb@ $(Av M@ $( Atj '6 "Aj!  %(AvO@ %( Atj 9 Dðb@ " $(AvO@ $( Atj )6 Aj!  %(AvO@ %( Atj 9  A (AH  " 9 ( ,("(AvO@ " ( (Atj(6 " 9 " 9 " Dc: A E@ "+9ˆ "(6� "+9˜ "+9  (P!A!@ A H@  At"j  j+9 Aj!  î |} (P"+ ¢ +" ¢  +0" ¢  +H" ¶!! +" ¢ + " ¢  +8" ¢  +P" ¶Œ»  ¢  ¢   ¢   ¶Œ""»¡! +" ¢ +(" ¢  +@" ¢  +X"  ¶»  ¢  ¢   ¢   ¶"#»¡"  ¢  ¢   ¢   ¶Œ» "»¡"¢   ¢  ¢   ¢   ¶» #»¡"¢¡" ¢  +" ¢  ¢   ¢   ¶» !»"¡" ¢  ¢  ¢   ¢   ¶» ¡" ¢¡" ¢   ¢  ¢¡" ¢ "DdE@  ( ·¢!  » »" ¡"  ¢  ¢¡ £"¢ » ¡"  ¢  ¢¡ £"¢   (·¢"¢¶8D   ¢ ¢¡ £"¢  ¢  ¢¡ £"¢  ¢¶8H  ¢  ¢¡ £" ¢  ¢  ¢¡ £"¢  ¢¶8L  »" »¡" ¢  »¡" ¢  ¢¶8P   ¢  ¢  ¢¶8T   ¢  ¢  ¢¶8X ž ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (A "!@ @ ( F ( FA @  (6  ( !  A0AŠ ˜"A6 A6 A6 A6 A6 A6 A6 A6 A: A6$ A6( A6,  6  6  6 (!AA.˜"A6 A6 A6 A6  A lš!A!@  A lH@  ( "(AvO@   ( Atj*¡ Aj!   ¿6$A Aç˜"A6 A6 A6 ((( Al"AÿÿÿÿK@  At"A¦˜"6  6  6  6(A Aç˜"A6 A6 A6 A l"AÿÿÿÿK@  At"A¦˜"6  6  6  6, " (6  6  ž  ( ( 6 ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (  »  È (!@  (H@  ( Atj("(F@  + d -\ GE@A @  (AkH@ (" Atj" Aj"At j("6  ( At  Ÿ  ( (AkAtj" 6  ( At  Ÿ (Ak6 Aj!  (" ( " F  ( AkAtj("+ d -\ GA E@A ( Ak H"Atj(!@ AJ  ( AkAtj("+ d -\ GA @ (" Atj" Ak"At j("6  ( At  Ÿ  ( Atj" 6  ( At  Ÿ H@ Aj6 A6 Dð9 C8 C8 C8 C8 C8 C8$ C8( C8, A:0 A:1 A64 A68 C8< C8@ C8D C8H C8L C8P C8T C8X A:\  6  ž  9  :\  îP}  ñ !d ( "gE dEr@ (A - @ A6 A: A6¤ A6 A6 (Aj6 A d•!!! !!!!!!!!!!!!!"!Q !!R !S !T !U !V !W !X !Y !Z ![ !\ !] !^ !_ !` - (¤A A ( dF  ( gFA  ( d(ÌFA  *4!# *8!$ * .”’ D I” + J”’ ( K”’ % L”’"? <”’ D M” + N”’ ( O”’ % P”’"@ ;”’8 b( cAjAtj = :” > 9”’ ? 8”’ @ 7”’8 b( cAjAtj = 6” > 5”’ ? 4”’ @ 3”’8 b( cAjAtj = 2” > 1”’ ? 0”’ @ /”’8 b( cAjAtj - A” * B”’ ' C”’ $ "”’"= a” - E” * F”’ ' G”’ $ H”’"> .”’ - I” * J”’ ' K”’ $ L”’"? <”’ - M” * N”’ ' O”’ $ P”’"@ ;”’8 b( cAjAtj = :” > 9”’ ? 8”’ @ 7”’8 b( cAjAtj = 6” > 5”’ ? 4”’ @ 3”’8 b( cAjAtj = 2” > 1”’ ? 0”’ @ /”’8 b( cAjAtj , A” ) B”’ & C”’ # "”’"A a” , E” ) F”’ & G”’ # H”’"B .”’ , I” ) J”’ & K”’ # L”’"C <”’ , M” ) N”’ & O”’ # P”’"" ;”’8 b( cA jAtj A :” B 9”’ C 8”’ " 7”’8 b( cA jAtj A 6” B 5”’ C 4”’ " 3”’8 b( cA jAtj A 2” B 1”’ C 0”’ " /”’8 eAj!e  f 6 A: A6¤ d6 dž g6 gž d(Ì6 Q8$ `8( _8, ^80 ]84 \88 [8< Z8@ Y8D X8H W8L V8P U8T T8X S8\ R8` 8d 8h 8l 8p 8t 8x 8| 8€ 8„ 8ˆ 8Œ 8� 8” 8˜ 8œ 8  (Aj6 ( Aj6 ( ñ  } 6 -d@ó " ) B|7 AÀÈ6( AÀÈž A¨A¿˜"¨ ("( !Aÿÿÿÿ!Aÿÿÿÿ  AÿÿÿÿF A AH"k"A AJ"Aɤ’ K@ AAÁ˜"A  AMA8l"A¦˜"6  6  6  6 (! ( A8lj! A!@  J@  A8l"j"  j"*4! *0! *,! *(! *$! ( ! *! *! *! *! * ! *! *! *8  8  8  8  8  8  8  8  6  8$  8(  8,  80  84 Aj!   6  ž  ("6  ž  ( "6  ž  ($6$  (("6(  ž  (,"6,  ž  ("6  ž  ("6  ž  ("6  ž (@"( !Aÿÿÿÿ!Aÿÿÿÿ  AÿÿÿÿF A AH"k"A AJ"AÕªÕ K@ AAŘ"A  AMA0l"A¦˜"6  6  6  6 (! ( A0lj! A!@  J@  A0l"j"  j"(,! *(! *$! * ! *! *! *! *! * ! *! *! *8  8  8  8  8  8  8  8  8  8$  8(  6, Aj!   6@  ž  (D6D A: 6 (@( !A Aã˜"A6 A6 A6 AÿÿÿÿK@  At"A¦˜"6  6  6 6A Aã˜"A6 A6 A6  At"A¦˜"6  6  6 6 AJ@AA�˜"½ (!A!@  ( "H@  O@  ( A8lj"* * *õ " ¥ÒE@   Ó Aj!  A!@  H@  (@"( O@ ( A0lj"* * (, *( *$ *  * * *! *! * ! *õ ! õ ! (!   ¥Ò   ¥Ò"E@ (A !  (AvO@ ( Atj 6 ( !   ¥Ò   ¥Ò"E@ (A !  (AvO@ ( Atj 6 Aj!  (ô !!!!!"8 8 8 8 8 8$ É } ("(! (@! (! ( ! @  ( "H@ At" (j(" (j(" qAN@  M@ ( A0lj"(,! *(!$ *$!% * !& *!' *!( *!" *! * !) *! *!# *!! AN@ ( O@ ( A8lj"*!! *4 *0 *, *( *$ (  * * * * *  *! *!# ! # AN} ( M@ ( A8lj"*! *4 *0 *, *( *$ (  * * * * *  *!" *!  )  " ( ' & % $ !!!!!!!!!!!"!  ( O@ ( A0lj" 8  8  8  8  8  8  8  8  8  8$  8(  6, Aj!  ô !!!!!"8 8 8 8 8 8$ A6˜ (œ"(AJ@ ®  ( Aj6   é … ("(E@ A¨A¿˜"¨ ("6 ž A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Þ~ (! E@ (@ A:(  A:( (E@ Þ @ ("  Ak(AÍFA E@ A " - A E (" ( (( A8lGA ( "E (@( A0l"EGA  ( GA (\" ( AH ( E@ ((" E@ Ak( (G  ( AM@ (("E@ Ak( (GA (! A ø !@  ( "H@ M@ A8l" (j"* * * * * * * * ( *$ *( *, *0 *4  ¬ Aj!  Ak(! -@ ­" T@ 5 ­T@ (A \ @ ( AM@ ((" E@ (@! A ø !A!@  ( "H@ M@ A0l" (j"* * * * * * * * * *$ *( (,  ­ Aj!  Ak(! -@ ­" T@ 5 ­T@ (A \ A  A @ A¨A¿˜"¨  ("6  ž A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Þ Ê BSAA ("( "E ALr  (!@  H@  Atj) Q@   Aj!  A AN @ §" (x"( O@ ( Atj("E@ AÜ "( E@ ("( "Aj!  (AvK@  AA™ ( Atj 7  6 §" ("( O@ ( Atj("E@ A�À ( "Ak(Av@   ("Ak(Av@   ( ÂA Í ‚ÂAÀ…ÂAÀÇAàÇ ( AFÂAÐÆÂA�ÆÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 •7  } E@B @ (" ( J@  ( O@ ( Atj(" E@  F@ ¬ Aj!  (" ( " Aj!  (AvK@ AA™ ( Atj" 6 At Ÿ 6 (x! (! A°A¬˜"¯ ( "Ak(Av@   ("Ak(Av@   ( ! * ! *! *! *!A A¦˜!AA.˜" 6  ž  6 A 6 A6 ( 8 ( 8 ( 8  6  ž  8  *(8  *08 -9@A A¦˜!AA.˜" 6  ž  6 A 6 A6 ( *<8 ( *@8 ( *D8A A¦™"A°½A ü AA.˜" 6  ž  6 A 6 A6  6  ž  *L8  (hAFA (hAF 6  *l8  (pAF:  -t:(  -u:)AA¦˜!AA.˜" 6  ž  6 A6 A6 ( *x8 ( *|8  6,  žAA¦˜!AA.˜" 6  ž  6 A6 A6 ( *„8 ( *ˆ8  60  ž ($A ($Aн AA�œ -9@ ($A (PA€¾ AA�œ -T@ ($A (\AÐé AA�œ -`@ ($A (dA°¾ AA�œ (4"A (,"A  F -8A @ ($A A°è AA�œ @ ($A A°è AA�œ A:¡ @ (œA A�é AA�œ  @ ($A A�é AA�œ A:  AAÊ ˜!AŒAµ˜" ° ( 6 * ! *! *! *!AA-˜" 8  8  8  8 6 ž *(8 *08 -9@ *H *D! *@! *!=! ? @ AAÀÈ*AÄÈ*AÈÈ*AÌÈ*AÐÈ*AÔÈ*AØÈ*AÜÈ*AàÈ*AäÈ*AèÈ*AìÈ*AðÈ*AôÈ*AøÈ*AüÈ*ã !A!@!?!>!=!80 ' ?84 ' @88 ' A8< ( (-A @A°*!A¬*!A¨*!A¤*!A *!Aœ*!A˜*!A”*! A�*! AŒ*! Aˆ*! A„*! A€*!Aü*!Aø*! 'Aô*8 ' 8 ' 8 ' 8 ' 8 ' 8 ' 8 ' 8 ' 8 ' 8$ ' 8( ' 8, ' 80 ' 84 ' 88 ' 8< AìAÒ˜"é  (T6Ì  +6Ì  +ž  /(t( Aj6  (6˜ '*!=! ? @AÀÈ*AÄÈ*AÈÈ*AÌÈ*AÐÈ*AÔÈ*AØÈ*AÜÈ*AàÈ*AäÈ*AèÈ*AìÈ*AðÈ*AôÈ*AøÈ*AüÈ*ã !@!?!>!=!84 ( ?88 ( @8< ) )-A @A°*!A¬*!A¨*!A¤*!A *!Aœ*! A˜*! A”*! A�*! AŒ*! Aˆ*!A„*!A€*!Aü*!Aø*! (Aô*8 ( 8 ( 8 ( 8 ( 8 ( 8 ( 8 ( 8 ( 8 ( 8$ ( 8( ( 8, ( 80 ( 84 ( 88 ( 8< (*’!%  @’! $ ?’!$ pAj!p  l r n k jC€?CCó !@!?">8 ?8 @8 l r n k jCC€?Có !@!?">8 ?8 @8 l r n k jCCC€?ó !@!?">8 ?8 @8 * " *" ” *" *" ”“!+ *" ” * " ”“!,  *"” *" ”“!-  ” *" ”“!. ” ”“"/ ” ”  ”“ ”’  ” ”“ ”’C€¿C€?  /”   ”  ”“”’   ”  ”“”’C]" "”8$ , ” . ”’  ”  ”“ ”’ ”8( + ” - ”’  ”  ”“ ”’ ”8, *! *! *! *! * ! *! * ” * ”’ * ”’80  ”  ”’ ”’84  ”  ”’  ”’88 *0" ” *4" ”’ *8" ”’‘! *$" ” *("" ”’ *,"" ”’‘"C^} C€? •"”!  ”!  ” *$! *,! *( ! % $     ' & z C^} *0 • *0 C^} *4 • *4 C^} *8 • *8 ( ” )!=!’!  @’!  ?’! Aj!    ]!   ]!   ]!   ^!    ]!    ]! Aj!   8¨  8¬  8°  8´  8¸  8¼ o *¨ *¬ *° *´ *¸ *¼!G!F!E!D!C"B8 o C8 o D8 o E8 o F8 o G8  yF o-A E #A j$ o #A j$A ì }#A�¥ÁkA I@ #A k"$  8  8  8  8  8  8 (! *! *! * ! *! *!  *8°  8´  8¸  8¼  8À  8Ä A:È *! *! * ! *! *! *! (L" ( "Aj" AªÕªK@ Al" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( Alj" 8 8 8 8 8 8 6 (Ì (ðG@#A j$ (¬@ -¸} * " *"  ] *¤" *"  ] *¨" *"  ]!!"   *¬" * "  ^ *°" *"  ^ *´" *"  ^!!"  !!!!!"! ! ! ! !  *! * ! *! *! *! * ! 8  8¤ 8¨ 8¬ 8° 8´ A:¸ (¬AF@#A j$ -0} *" *"  ] *" *"  ] * " *"  ]!!"   *$" * "  ^ *(" *"  ^ *," *"  ^!!"  !!!!!"! ! ! ! !  *! * ! *! *! *! * ! 8 8 8 8$ 8( 8, A:0#A j$ ¥}#A�¥ÁkAÀI@ #A@j"$  8  8  8  8  8  8  8  8  8  8$  8(  8,  80  84  88  8< (X"-@ *! *! *! * ! *! *! *! *! *! * !! *!" *!# *!$ *!% * !& *$!' *(!( *,!) *0!* *4!+ *8!, *AÐÈ*!?AÔÈ*!@AØÈ*!AAÜÈ*!BAàÈ*!CAäÈ*!DAèÈ*!EAìÈ*!FAðÈ*!GAôÈ*!HAøÈ*!IAüÈ*!JA ? @ A B C D E F G H I Jã!!!!!!!!!!!!!!!"!, !! !- !" !# !. !$ !% !2 !3 !4 ! At"Av  (AkJr@ ( j ,8 Aj"Av  (AkJr@ ( j .8 Aj"Av  (AkJr@ ( j -8 A j"Av  (AkJr@ ( j 48 Aj"Av  (AkJr@ ( j %8 Aj"Av  (AkJr@ ( j #8 Aj"Av  (AkJr@ ( j !8 Aj"Av  (AkJr@ ( j 38 A j"Av  (AkJr@ ( j $8 A$j"Av  (AkJr@ ( j "8 A(j"Av  (AkJr@ ( j 8 A,j"Av  (AkJr@ ( j 28A!@ AH@ } A j j" ( O@ ( Atj+¶C€? !K A0j Atj"Av  (AkJr@ ( j K8 Aj!    }  j" ( O@ ( Atj+¶C }  jAj" ( O@ ( Atj+¶C }  jAj" ( O@ ( Atj+¶C }  jAj" ( O@ ( Atj+¶C € , # ” " !”“” . % ” $ !”“”“ - % "” $ #”“”’C]@ A:% 5 6 7 8 9 : , % $ . # " - ! 4 3 2°!+!*!)!(!'"&!% +! *!! )!" (!# '!$ E@ * ", % % ,^ *"% $ $ %^ *"$ # # $^!1!0"/ 0 1 *"# " " #] *"" ! ! "] * "! !]!1!0"/ 0 1!+!*!)!(!'"&!% )!" (!# *!! '!$ +!  %8  $8  #8  "8  !8  8 A! Aj!  A:$  æN}~@@ ( "( J@  ( O@ ( Atj("E@ ( F@  (,6$  Aj!  A! ("@A(A¯ ˜"A6 A6 A: C8 C8 C8 C8 C8 C8 A6$   ( -ú" (,6$ ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ("A!@ ("( J@  ( O@ ( Atj("E@ ( (F@  ("( O@ ( Atj("E@ (  Aj!  A (("E AA» ˜"A6 A6 (! AAט"A6 A6AAÛ˜"AAܘ"½ 6 A6  6AAؘ"½  6  6  6  6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( A "A @ (! ((A (" (("("(( OA ("( M@ ( Atj( "E  (( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ (( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (! ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (  (" ( Ò Â"AH@ (! AAý˜"A6 A6 A6 A6 Aš!   BAAA (( AH Ë!A! (! (( !AAý˜"A6 A6 A6 A6  š! @  H@  ( O@ ( Atj(" ( "(( OA  ("( O@ ( Atj( "E@A ÷ö @  (º Aj!  ( " A (" @AAý˜"A6 A6 A6 A6  š!AA.˜"A6 A6 A6 A6  Atš!A!@  H@  ( O@ ( Atj(" " ( O@   ( Atj(ºA! @ AH@ At j" ( O@  At j ( Atj*¡ Aj!  Aj!   6  ž  6  ž (" @AAÀ˜"A6 A6 A6 A6 Aš!A!@ (( J@  ("( O@ ( Atj("E@ AA.˜"A6 A6 A6 A6  Alš!A!@  H@  ( O@ ( Atj(" ( O@ ( A lj" *! *!  Al" *¡  Aj ¡  Aj ¡ Aj!  A!  ( "( O@ ( Atj("@ ï ((( " "AÕªÕ*K@ AA̘" A  AMA l" A¦˜"6 6 6 6 AAë˜"A6 A6 A6 A6  ¨!A!@  H@  ( O@ ( A lj" C8 C8 C8  A© Aj!  ((( !A!@  I@  (" (( OA (" ( M@ ( Atj( "  -A @ (! @ ( (jI@ ( "(( OA ("( O@ ( Atj( "E@A ÷ö E@ (" ( O@ ( A lj"*! * *’!  *’! * * ’!  ( O@ ( A lj" 8  8  8  A© Aj!  Aj!  ( " AÕªÕ*K@ AA̘"A AMA l" A¦˜"6  6  6  6 A! @ ( J@ ( Atj(" ( "(( OA ("( O@ ( Atj( "E@A ÷ö E@ (" ("(( OA ("( O@ ( Atj( " E@A ÷ö E@ - (" ( O@ ( j-A } (" ( O@ C€? ( A lj" *" ” *" ”’ *" ”’‘•" “C[ C^q@  ”  ”  ”  CCC ! !"! !  * ! *! * ! ( O@ ( A lj" 8 8 8 Aj!  ! AA.˜"A6 A6 A6 A6  Alš!A!@  H@  ( O@ ( A lj" *! *! *!  (" ( O@  ( A8lj" * “!  *“!  *“!  Al" ¡  Aj ¡  Aj ¡ Aj!  A A¾˜"A6 A6 A6  (" ( O@ ( Atj(" E@  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!   6  ž  (Aj6 (  û   ("(!AAÈ ˜"A: A6 B7 A: ( Ò ! A:  6 B7 A: -! )!2A ("(A ( " E   Ó!3 (Â"AH@ (! -AA (( AHA !A(AÙ˜"B7 B7 A: A6 B7 A6  )87  37  3BRA :  6  27  6  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A AG" ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@  ( F  A~q!  A "E@ ((") )Q ) )QA  - -FA  ( (FA  ) )QA  ( ( FA EA @  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ ((A ! 3P  2 AËAA  ("(( OA ("( M@ ( Atj( " E A ("(A ( "E   Ï! A!@ (x" ( J@  ( O@ ( Atj(" E@ A -  Aj!  A E@  Þ" ½¾       Ò "E  -   2 AË    2 AË !  (Aj6 ( AAÚ˜"A6 A6  6  6 û  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ ((A !  ( (( kj6  A " ( G@ (Aj6 A(A¯ ˜"A6 A6 A: C8 C8 C8 C8 C8 C8 A6$   AúA ! E@A(A¯ ˜"A6 A6 A: C8 C8 C8 C8 C8 C8 A6$  AAÁ˜"AÀA¦˜"6  6 AÀ6 A6 AAý˜"A6 A6 A6 A6 Aš!AA¸˜"AàA¦˜"6  6 Aà6 A6 @ ("( J@ ( ! ( !  ( O@ ( Atj("E@ (( Am""AÕªÕ*K@ AA̘"A  AMA l"A¦˜"6  6  6  6 AÕªÕ*K@ AA̘" A  AMA l"A¦˜"6 6 6 6 A!@  H@  ( O@ ( A lj"C8 C8 C8  ( O@ ( A lj"C8 C8 C8 Aj!  AJ (( AtNq! ( " ( Am!A! @ H@ Al" ( O@ ( Atj(! AlAj" ( O@ AlAj" ( O@ @ (" Atj(" N At j(" N  Nrr ( " Aj" (AvK@  AA™ ( Atj  j6  6 ( " Aj" (AvK@  AA™ ( Atj  j6  6 ( " Aj" (AvK@  AA™ ( Atj  j6  6 E (" ( Al" AjLCCC ( O@ Aj" ( O@ (" Atj* At j* Aj" ( O@ ( Atj* ! !"! (" ( Al" AjLCCC ( O@ Aj" ( O@ (" Atj* At j* Aj" ( O@ ( Atj* !1!0"/ “! 1 "#“!% 0 "&“!' (" ( Al" AjLCCC ( O@ Aj" ( O@ (" Atj* At j* Aj" ( O@ ( Atj* ! !" “!(} (" ( At" AjL@C!C  ( O@ ( Atj*! Aj" ( O@ C€? ( Atj*“ !"} (" ( At" AjL@C!C  ( O@ ( Atj*! Aj" ( O@ C€? ( Atj*“!  !!  "“! ! “!!} (" ( At" AjL@C!C  ( O@ ( Atj*! Aj" ( O@ C€? ( Atj*“!  ! !  "“"”  “"" ”“"‹C̼Œ+] " "” ( ”“C€? •"”! ( M@ ( A lj" *!$ *!) * ’!*  ( O@ ( A lj" *8 ) ' ”  &“") ”“ ”"&’8 $ % ” #“"# ”“ ”"’8  ( O@ ( A lj" *! *!$ * ’!*  ( O@ ( A lj" *8 $ &’8  ’8  ( O@ ( A lj" *! *!$ * ’!  ( O@ ( A lj" 8 $ &’8  ’8 ( M@ ( A lj" *! *! * ( !”  "”“ ”"’!  ( O@ ( A lj" 8   ) !” ' "”“ ”"’8   # !” % "”“ ”"’8 ( M@ ( A lj"*! *!! * ’!"  ( O@ ( A lj" "8  ! ’8   ’8 ( M@ ( A lj"*! *!! * ’!  ( O@ ( A lj" 8  ! ’8   ’8 Aj!  A!@  H@  ( O@ ( M@ ("( Al"AjLCCC  ( O@ Aj" ( O@ (" Atj* At j* Aj" ( O@ ( Atj* ! !"" " " A l" (j"* * *  (j"* * *€!.!-!,"+! .!! -!" ,! ("( Al"AjLCCC  ( O@ Aj" ( O@ (" Atj* At j* Aj" ( O@ ( Atj* ! !"!' !( !& !%} ("( At"AjL@C!C   ( O@ ( Atj*!# Aj" ( O@ C€? ( Atj*“! # !#A! C€¿!$ ( " Aj" Aɤ’ K@ A8l" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A8lj" '8  (8  &8  %8  8  8  #8  8 A6  8$  8(  "8,  !80 C€¿84  6 Aj!  ( k! ( "Aj"AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj" ;  6  6  6 Aj!    ¯"A!A!AA°˜"½AAý˜"A6 A6 A6 A6  ( š!@  ( "H@  O@  ( A8lj"* * *õ " ¥ÒE@   (Ó   ¥Ò"@   (º Aj!  AAñ˜" ŽAAŘ"A€A¦˜"6  6 A€6 A6 ( Am! @  H@A! @ AH@ Al j" ( O@ ( Atj(! Al AjAoj" ( O@ ( Atj(!  ( O@ ( M@ @ (" Atj(" At j(" F  ( (  K~ ­ ­B †„ ­ ­B †„ "2B ˆ§A½ÜÊ•|l 2§A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@  ) 2Q  A~q!  A 2³  ( O@  ( O@ (" A8lj"*! *! *! A8l j"*! *!! *!"AÄ*!AÈ*!%AÌ*!'AÐ*!( ( "Aj"AÕªÕ K@ A0l" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A0lj" 8  8  8  8  !8  "8  8  %8  '8  (8$ C€?8( A6,  6 Aj!  Aj!  6@  ž  (@( 6D Aú! (Aj6  (,6$ ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (   ÿ  (   ÿ  ¼!~}A A ( A (, A -d E#”AFq  („!A (, A #Í " E  -d@ó " ) B|7 A€É6( A€ÉžAA¦˜!AAĘ" 6  ž  6 A6 A6  6,  žA  AAĘ"A6 A6 A6 A6 Aš" (A ( A ( ( E  (( ! ( ( ! ((( !A Aߘ"A6 A6 A6 A lAj Atj A lj"AüÿÿÿK@  A¦˜"6  6  6A A˜"A6 A6 A6 ("Ak(" (" A€€€€xF" I@  6  6  6 "(AkAH@ ( 6 (AkAH@ ( 6A!@  J@  ((" ( O@ ( A lj" (! (! /! Av  (AkJr@ ( j 6 Aj" Av (AkJr@ ( j 6 Aj" Av (AkJr@ ( j 6 A j! Aj!  A!@  H@  ( "( O@ ( Atj(! Av  (AkJr@ ( j 6 Aj! Aj!  A!@  J@  ("( O@ ( A8lj"*! *! *! Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 Aj"Av  (AkJr@ ( j 8 A j! Aj!  A!B¥Æˆ¡Èœ§ùK!@ ( J@  ( j1…B³ƒ€€€ ~! Aj!  A™ ! ((! A A ªAÀ… Â! (( A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò (( A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "E  (( ž"-E   (! (( ! A Ž+ Â! A!AAç ˜"A6 A6 A6 A6 A: A� 6 (!  "6  ("A AL"A AN6  (" AH (  ("  H "  J6 "�!@ - AG@ AРA ªÂAàŽ+  �! A�! -  G@ AÐ�+ A ªÂA��+ A «Â  AAĘ"A6 A6 A6 A6 Aš!AA¤˜"A6 A6 A6 A6 Aš! @  H@AA·˜" ¤ �6 A �!A!@  H@ �! �! �! AÿÿK@ A€�+ A ªÂ  (" ( "Aj"AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( A lj" ;  6  6 6 Aj!  �! -  Ap@ A ‘+ AjA «ÂAÀ�+   ­|" 4B†U@ AÀ‘+  ( " Aj" (AvK@ AA™ ( Atj 6 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   A��! - ( (k ( k@ A°¹Â ( (k ( kA «ÂA°œÂ   § Í "-E@ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA«˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž   (!A!A!@ ( J@  ( O@ ( Atj(! AAý˜"A6 A6 A6 A6  š!A!@  H@ ( Atj (  jAtj(6 Aj!   ( O@ ( Atj("@  6  ž  j! Aj!  (Av@« († A!A!@ ( J@ ( Atj(!  ( O@  ( Atj(j! " ( O@  (! ( Atj(! A!@  ( " H@  O@ ( A lj" /A ¬ 5 5|T  Aj!  A E@ A€É AjA «ÂAÀÈ  A!@ ("( J@  ( O@ ( Atj(M@ A ’+  Aj!  Aj!  AA«˜"A: A6 A� 6 A6 A:  6  ž   AðÛ ( !AA«˜"A: A6 A� 6 A6  6  ž  "- (!A! (( ! @ ( J@A ( Atj("(( ((( GA (( Ao A!@  ("( H@  ( O@ ( A lj"/A (4 5 5|T  Aj!  A!@ ("( J@  ( O@ A ( Atj(M  Aj!  Aj!  A A E  ( "6,  ž ( AJ A ! E@ (E@ Þ E@ A¨A¿˜"¨  ("6  ž A6 (�"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (”Aj6” Þ § ( E@ @ E  ( "( Hq@  ( O@ ( Atj("@ (!A!A ( "E ALr  (!@  H@  Atj( F@   Aj!  A AN! Aj!  E@ AA¦˜!AA½ ˜" 6  ž  6 A6 A6 AA¦˜!AA½ ˜" 6  ž  6 A6 A6 A!@ ( "( J@  ( O@ ( Atj("E@  (!A!A ( "E ALr  (! @  H@ Atj( F@   Aj!  A AN "( "Aj "( "Aj !  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  6 ž � ’ ( E@ AA¦˜!AA¿ ˜" 6  ž  6 A6 A6 @ ("( J@  ( O@ ( Atj("E@  (!A!A ( "E ALr  (!@  H@  Atj( F@   Aj!  A AN@ (! ("( "Aj! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  6 žAA¦˜!AAÁ ˜" 6  ž  6 A6 A6 A!@ (@"( J@  ( O@ ( Atj("E@ A!A!@ E  ( "Hq@  M@ ( Atj("@ ( (F! Aj!  @ (! (�"( "Aj! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  6@ ž ‹ AA�Î  A�ÎJ AL"6AAј AüÿÿÿK@ Aј"6 žAA-˜ AÿÿÿÿK@ AtA-˜"6 žAA-˜ AtA-˜"6 žAA-˜ AtA-˜"6 žAA-˜ AtA-˜"6 žAA-˜ AtA-˜"6 žAA-˜ AtA-˜"6 žAA-˜ AtA-˜"6 žAA-˜ AtA-˜"6$ žAA-˜ AtA-˜"6( žAA-˜ AtA-˜"6, žAA-˜ AtA-˜"60 žAA-˜ AtA-˜"64 žAA-˜ AtA-˜"68 žAA-˜ AtA-˜"6< žAA-˜ AtA-˜"6@ žAA-˜ AtA-˜"6D žAA ˜ AtA ˜"6H žAA-˜ AtA-˜"6L žAA-˜ AtA-˜"6P žAA-˜ AtA-˜"6T žAA-˜ AtA-˜"6X žA!@  J@ (X AtjC€?8 Aj!  AAô˜ AtAô˜"6È žA!@  J@ (È Atj 6 Aj!  AA-˜ AtA-˜"6Ì ž A6\ (´"A:, A: A6AA¦˜ At"AüÿÿÿK@  A¦˜"6  ž  (0Aj60 A6¸ (°Aj6° ƒ (!AA-˜ AÿÿÿÿK@ AtA-˜"6Ð žAA-˜ AtA-˜"6Ô žAA-˜ AtA-˜"6Ø žAA-˜ AtA-˜"6Ü žAA-˜ AtA-˜"6à žAA-˜ AtA-˜"6ä žAA-˜ AtA-˜"6è žAA-˜ AtA-˜"6ô žAA-˜ AtA-˜"6ø žAA-˜ AtA-˜"6ü žAA-˜ AtA-˜"6€ ž …}#A�¥ÁkAÀI@ #A@j"$ -Õ: 6 : 8 8 8 8 8 8 8$ 8( 8, 80 84 88            Aå!*!)!(!'!&!%!$!#!"!!! !!!!"8  8  8  8  8  8  !8  "8  #8  $8$  %8(  &8,  '80  (84  )88  *8< *  *! *! *8< 8@ 8D * *! *! *8H 8L 8P *, *(! *$! * 8T 8X 8\ *< *8! *4! *08` 8d 8h  ’C?”8l  ’C?”8p  ’C?”8t  “C?”8x  “C?”8|  “C?”8€ ‹ ‹—8„ ‹ ‹—8ˆ ‹ ‹—8Œ *(! *! *! *" ” *" ”’ *$" ”’‘! *" ” *" ”’ * " ”’‘8� 8”  ”  ”’  ”’‘8˜ A6¬#A@k$ …} A - @ #" *<#"*"” *H *"”’ *T *"”’ *@ ” *L ”’ *X ”’ *D ” *P ”’ *\ ”’!!"8  8  8#" *<#"* "” *H *"”’ *T *"”’ *@ ” *L ”’ *X ”’ *D ” *P ”’ *\ ”’!!"8  8  8#" *<#"*"” *H *"”’ *T * "”’ *@ ” *L ”’ *X ”’ *D ” *P ”’ *\ ”’!!"8  8  8 ¯}#"*!#"*!#"* ! *œ *" *l"”’ * " *p"”’ *" *t" ”’" ‹ *x"” ‹ *|"”’ ‹ *€"”’"“! *  *" ”’ *" ”’ *" ”’" ‹ ” ‹ ”’ ‹ ”’" “! *¤  ”’  ”’  ”’" ‹ ” ‹ ”’ ‹ ”’"“! ’!  ’!  ’! (¬@ *° –8° *´ –8´ *¸ –8¸ *¼ —8¼ *À —8À *Ä —8Ä 8° 8´ 8¸ 8¼ 8À 8Ä (¬Aj6¬ … }C€?!C€?! C€?! A -" (AF@#"#"* " *" *"#%"-E  * ” * ”’ *$ ”’ * ” * ”’ *( ”’ * ” * ”’ *, ”’ ! ! "80  84  88 @#"*" *" *"#%"-E  * ” * ”’ *$ ”’ * ” * ”’ *( ”’ * ” * ”’ *, ”’ ! ! "" ” " ”’ " ”’‘!#"*8! *0" ” *4" ”’  ”’‘! #"*" *" * "#%"-E  * ” * ”’ *$ ”’ * ” * ”’ *( ”’ * ” * ”’ *, ”’ ! ! "" ” " ”’ " ”’‘! # 8$# 8(# 8, *¤! * ! *œ" *„#*$” *ˆ (AF}#"*8! *0" ” *4" ”’  ”’‘#*( ”’ *Œ#*,”’" *�"”“!   *”"”“!   *˜"”“!  ”’!   ”’!   ”’! (¬@ *° –8° *´ –8´ *¸ –8¸ *¼ —8¼ *À —8À *Ä —8Ä 8° 8´ 8¸ 8¼ 8À 8Ä (¬Aj6¬ Ý } (((Ä6( (Aj6AA¦˜!AAÛ ˜" 6  ž  6 A6 A6 6 žAA¦˜!AAÜ ˜" 6  ž  6 A6 A6 6 žAA¦˜!AAÝ ˜" 6  ž  6 A6 A6 6 žAA¦˜!AAɘ" 6  ž  6 A6 A6 6 žAA¦˜!AA¤˜" 6  ž  6 A6 A6 6@ žAA¦˜!AA¤˜" 6  ž  6 A6 A6 6` ž "AA¦˜!AA¤˜" 6 ž 6 A6 A6 6d  ž B78 (¾! @ ( J@@ ( Atj("-µ  Ak("AÅF AÇFr AÈFrA !  Ak(AÊFA !A  Ak(AËFA "  ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A A @  Ak("AÅF AÇFr AÈFrA E@  (( 6Ô ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (`"( "Aj!  (AvK@ AA™ ( AtjA6 6 (d"( "Aj!  (AvK@ AA™ ( AtjA6 6  Ak(AÈFA @ (!  Ak(AÈFA E@ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  @ (!  Ak(AËFA E@ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  @  Ak(AÊFA E@ (È! ( "  Ak("AÅF AÇFr AÈFrA   Ak("AÅF AÇFr AÈFrA E@ A A "E  (Ô"AN  (( HA  (( Atj(FA @   A!A ("( "E ALr  (!@  H@  Atj( F@   Aj!  A "AH A¼AÖ ˜""A6 A6 A6 A6 A°*! A¬*! A¨*!A¤*!A *!Aœ*!A˜*!A”*!A�*!AŒ*!Aˆ*!A„*!A€*!Aü*!Aø*! Aô*8  8  8  8  8  8$  8(  8,  80  84  88  8<  8@  8D  8H  8LA°*! A¬*! A¨*!A¤*!A *!Aœ*!A˜*!A”*!A�*!AŒ*!Aˆ*!A„*!A€*!Aü*!Aø*! Aô*8P  8T  8X  8\  8`  8d  8h  8l  8p  8t  8x  8|  8€  8„  8ˆ  8ŒA0Aé ˜"Dð9 Dð9 Dð9 Dðÿ9 Dðÿ9 Dðÿ9(  6� A:” A6˜ A:œA0Aé ˜"Dð9 Dð9 Dð9 Dðÿ9 Dðÿ9 Dðÿ9(  6  A6¤ A6¨AA¦˜!AA¤˜" 6  ž  6 A6 A6  6¬ A6°AA¿˜ AàA¿˜6´ A:¸A!A ( "E A  Ak("AÅF AÇFr AÈFrA E A!@ ("( J@  ( O@ ( Atj("E@   F  Aj   Ak(AÊFA ! Aj!  A !  6  6  6  6  6˜ ( ( !  (d"( O@ ( Atj("AH@ (`  º  ( "( O@ ( Atj("E@  6° (d  º   Ak(AÈFA :œ ( ( ! (@"( "Aj!  (AvK@ AA™ ( Atj 6 6 ( "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  ( ( !A Aè˜"A6 A6 A6 Al"Aÿÿÿ?K@ At"A¦˜"6 6 6  6D  žA Aã˜"A6 A6 A6 AÿÿÿÿK@ At"A¦˜"6 6 6  6H  žA Aã˜"A6 A6 A6 A¦˜"6 6 6  6L  žA Aè˜"A6 A6 A6 Al"Aÿÿÿ?K@ At"A¦˜"6 6 6  6P  žA Aã˜"A6 A6 A6 At"A¦˜"6 6 6  6T  žA Aã˜"A6 A6 A6 A¦˜"6 6 6  6X  žA Aã˜"A6 A6 A6 Aj"AÿÿÿÿK@ At"A¦˜"6 6 6  6\  žA!@ H@ ( "( O@ ( Atj("E@ (˜! (L"(Av M@ ( Atj 6 Aj!  ‰ Ž }| )0B|70 ( ! @ ( J@A At" (j("("(È" -ÌE!A   -”G!  :”@ E@ A6 (�"Dð9 Dð9 Dð9 Dðÿ9 Dðÿ9 Dðÿ9( (D( Al"AtjDð9 (D( AjAtjDðÿ9  (H(jA6   (G@  6  žA! (¤ GA (¨ ( G @  ( º  6¤  ž  ( 6¨ A:¸A! #é† -¸! (´!A! A H  At"j+#é j+bA Aj!    "E@A!@ A H@  At"j#é j+9 Aj!   +¶ +¶ +¶C +¶ + ¶ +(¶C +0¶ +8¶ +@¶C +H¶ +P¶ +X¶C€?!!!!!!!!!!!!! ! ! " 8  8  8  8  8  8$  8(  8,  80  84  88  8<  8@  8D  8H  8L #Ë! +"! + "( +@""¢ +8" +(")¢¡"¢ +"  +"*¢ +" "¢¡"#¢  +0"$ )¢ ( *¢¡"¢ "DaA  ¡Db @A!@ A H@  AtjD9 Aj!     Dð? £"¢"%9  # ¢"&9   ¢"+9  $ )¢  "¢¡ ¢"'9  ! "¢ $ *¢¡ ¢""9   *¢ ! )¢¡ ¢"9(   ¢ $ (¢¡ ¢"90  $ ¢ ! ¢¡ ¢"#98  ! (¢  ¢¡ ¢"9@  % +H"%¢ ' +P"'¢   +X"¢ š9H  & %¢ " '¢  # ¢ š9P  + %¢  '¢   ¢ š9X  "+¶ +¶ +¶C +¶ + ¶ +(¶C +0¶ +8¶ +@¶C +H¶ +P¶ +X¶C€?!!!!!!!!!!!!! ! ! " 8P  8T  8X  8\  8`  8d  8h  8l  8p  8t  8x  8|  8€  8„  8ˆ  8Œ A:¸A! (�! @ Dð9 Dð9 Dð9 Dðÿ9 Dðÿ9 Dðÿ9(  + +e + + eA  + +(eA A E@@ ( "+ +e + + eA  + +(eA E@ Dð9 Dð9 Dð9 Dðÿ9 Dðÿ9 Dðÿ9(  +"$ +"( +" Dà?¢"¢ +") +"* + "  Dà?¢"¢  +0"% +"& +(" Dà?¢"¢  +H ! +"+ ¢ + "' ¢  +8"# ¢  +P !! +"" ¢ +(" ¢  +@" ¢  +X !   $™  (¡Dà?¢"¢ )™ *¡Dà?¢" ¢  %™  &¡Dà?¢"&¢ "¡9  ! +™ ¢ '™ ¢  #™ &¢ "#¡9   "™ ¢ ™ ¢  ™ &¢ "¡9    9  ! # 9    9( (D"( Al"Atj +9 ( AjAtj +9 ( AjAtj +9 ( AjAtj +9 ( AjAtj + 9 ( AjAtj +(9 (H( AtjAA -œ r6 Aj!  @ ) B|7 �|} A6 Dð9 A6$ » »"¡! » »"¡! » »"¡! (h!Dð?!A! ( !@ ( J@@ ( Atj("-” (!  G -œ!A (È qE A  E A  -ÐA E  @A!@ ( J@ ( Atj(F@A  Aj!  A E (�       ¸E *€!+ *p!, *`!- *P!. *„!/ *t!0 *d! *T! *Œ *ˆ! *| *x! *l *h! *\ *X! ("E@ .»"& ¢ -»"' ¢  ,»"( ¢  +»  »") ¢ »"* ¢  0»" ¢  /»  »" ¢ »"! ¢  »"" ¢  »  & ¢ ' ¢  ( ¢  ) ¢ * ¢   ¢  ¢ ! ¢  " ¢   »E  + cA E +! ! +!# +!$ +!% ( ! -$! Aj!  E@A  6  ž    ¢  ¢   ¢ Ÿ¢9    ¢ ¶8    ¢ ¶8    ¢ ¶8  6$ @ C8 C8 C8 *\ *l *Œ *ˆ *„ *€ *| *P» #¢ *T» $¢  *X» %¢ " ¢ *`» #¢ *d» $¢  *h» %¢ "! !¢  *p» #¢ *t» $¢  *x» %¢ "" "¢ Ÿ"Dd} ! £¶! £¶! " £¶C!C!C !  8  8  8 A ˆ ("( ! (!A@ At!A@A! A¦˜" ( ü  6  6  6  ž AH@ ( A ljA Atlü A6 ("(  AAA™ A6 ("( ! AAA™ AJ@ (A Atü A6 ( "(  AAA™ A6 C8 A: A6 à ( B ˆ§A½ÜÊ•|l §A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s" (qAtj(!@ @ ( "AqE@  ) Q  A~q!  A "@  6 ( " (F@ ( AlAmH ( (AtAr Ú (! ("Aj6  Atj" 7  6 (Aj6  (  (qAtj"(6 6 � ( ( B ˆ§A½ÜÊ•|l §A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( "AqE@  ) Q  A~q!  A "E@  ( Ar6 (Ak6 (Av"AjA (" AIO ( ( AlAmHA @ Ú Š |~ Al" ("( O@ ( Atj+ Al" ("( O@ ( Atj+¡! AlAj" ("( O@ ( Atj+ AlAj" ("( O@ ( Atj+¡! AlAj" ("( O@ ( Atj+ AlAj" ("( O@ ( Atj+¡! Al" ("( O@ ( Atj+ Al" ("( O@ ( Atj+¡! AlAj" ("( O@ ( Atj+ AlAj" ("( O@ ( Atj+¡! AlAj" ("( O@ ( Atj+ AlAj" ("( O@ ( Atj+¡"¢  ¢¡" ¢  ¢ ¢¡" ¢  ¢ ¢¡" ¢ Ÿ" Dd@ £! £!  £! ("( ! ( "Aj!  (AvK@  AA™ ( Atj 6  6 ("( "Aj!  (AvK@  AA™ ( Atj 6  6 ( "( "Aj!  (AvK@  AA™ ( Atj 6  6 ($"( "Aj!  (AvK@  AA™ ( Atj 9  6 (("( "Aj!  (AvK@  AA™ ( Atj 9  6 (,"( "Aj!  (AvK@  AA™ ( Atj 9  6 (0! Al" ("( O@  ( Atj+¢ AlAj" ("( O@ ( Atj+¢  AlAj" ("( O@ ( Atj+¢ ! ( "Aj!  (AvK@  AA™ ( Atj 9  6 Al" ("( O@ ¢ ¢   ¢   ¢  ¢   ¢  ( Atj+ Al" ("( O@ ( Atj+¡" ¢ AlAj" ("( O@ ( Atj+ AlAj" ("( O@ ( Atj+¡" ¢  AlAj" ("( O@ ( Atj+ AlAj" ("( O@ ( Atj+¡" ¢ ¥¥Ÿ"£D Dd! (4"( "Aj!  (AvK@  AA™ ( Atj 9  6 (8"( "Aj!  (AvK@  AA™ ( Atj 9  6 (<"( "Aj!  (K@  AA™ ( jA:  6 (@"( "Aj!  (AvK@  AA™ ( AtjA6  6 (D"( "Aj!  (AvK@  AA™ ( AtjA6  6 (H"( "Aj!  (AvK@  AA™ ( AtjA6  6 (P ¬" ¬" )~| Œ (P ¬"  )~| Œ (P  )~ | Œ  ø  ($"( O@ ( Atj+ Al" ("( O@ ( Atj+¢  (("( O@ ( Atj+ AlAj" ("( O@ ( Atj+¢   (,"( O@ ( Atj+ AlAj" ("( O@ ( Atj+¢   (0"( O@ ( Atj+¡ ’|  ("( O@ ( Atj(! Al" ("( O@ ( Atj+ Al" ("( O@ ( Atj+¡! AlAj" ("( O@ ( Atj+ AlAj" ("( O@ ( Atj+¡! AlAj" ("( O@ ( Atj+ AlAj" ("( O@ ( Atj+¡!  (4"( O@ ( Atj+!  �™ + Dd|  ¢  ¢   ¢ Ÿ £D DÀ?¢Dð? D0@¤¢e ³|A! +!@ ( J@ ( Atj(" (<"( O@ ( j-@  �" d@ ! ! Aj!  AH@A (L Aº " (@"( O@ ( Atj(AH@ (@  º (T"( "Aj!  (AvK@  AA™ ( Atj 6  6   (D"( O@ (L ( Atj( º (D  ºA ¦ A6 6 ž ("(AvE@ ( »9 (AvAM@ ( »9 (AvAM@ ( »9 (AvAM@ ( »9 (AvAM@ ( »9 (AvAM@ ( »9( (AvAM@ ( »90 (AvAM@ ( »98 (AvAM@ ( »9@ (AvA M@ ( »9H (AvA M@ ( »9P (AvA M@ ( »9X (AvA M@ (+H9 (AvA M@ (+P9 (AvA M@ (+X9 °| (AF@ ( "(AvE@ (AvAM@ (AvAM@ (AvAM@ (AvAM@ (AvAM@ ("+ ¢ + ¢  + ¢ " + ¢ + ¢  +( ¢ " c@A! ! (AvAM@ (AvAM@ (AvAM@ A  ("+0 ¢ +8 ¢  +@ ¢  d" (AvO@ ( Atj+$™ Aj" (AvO@ ( Atj+$š Aj" (AvO@ ( Atj+$› (! ("E@ (AvE@ (AvAM@ (AvAM@ ("+ ¢ + ¢  + ¢ ! (AvAM@ (AvAM@ (AvAM@ ("+ ¢ + ¢  +( ¢ ! (AvAM@ (AvAM@ (AvAM@ ("+0 ¢ +8 ¢  +@ ¢ ! D!@@@@@@@@@@@@@ Ak(A³ k A  A  A  A  A  A    Ak(A³ FA E@ *(»Dà?¢" š Df! *,»Dà?¢" š Df! *0»Dà?¢" š Df!  ¢ ¢  ¢ Ÿ"Dd@  Ak(A´ FA E@ +( £"¢! ¢! ¢!   Ak(Aµ FA E@ +0Dà?¢"  +(¤"¡D¥" š Df! ¢ ¢  ¢ Ÿ"Dd@  £"¢! ¢!  ¢ !   Ak(A¶ FA E@ +(Dà?¢" š Df! ¢ ¢ Ÿ"Dd@ +0"¢ £! ¢ £!   Ak(A· FA E@ ¿(!Dðÿ!@ ( " AjJ@  M@ Aj" ( O@ (" Atj+ ¢ At j+ ¢  Aj" ( O@ ( Atj+ ¢ " d@ !  ( O@ ( Atj+! Aj" ( O@ ( Atj+! Aj" ( O@ ( Atj+! Aj!  #œ 9#œ 9#œ 9#œ+!#œ+!#œ+! (AvE@ (AvAM@ (AvAM@ (AvA M@ ("+ ¢ + ¢  +0 ¢  +H $™ (AvAM@ (AvAM@ (AvAM@ (AvA M@ ("+ ¢ + ¢  +8 ¢  +P $š (AvAM@ (AvAM@ (AvAM@ (AvA M@ ("+ ¢ +( ¢  +@ ¢  +X $› ¾@ ("( J@  ( O@ ( Atj("E@ ( Ä@  ("( O@ ( Atj("E@  Aj!  (" Ak("A‹ F@A! AÀ“AÇ@ AAÿÿÿÿÈ!A!@ ( "( J@ " ( O@ ( Atj("E@ (!A!@ ( J@ ( Atj(( Ä@  ( O@ ( Atj("E@  Aj!  Aj!  A  @ ( "( J@  ( O@ ( Atj("E@ A!@ ("( J@  ( O@ ( Atj("E@ ( Ä@  ("( O@ ( Atj("E@  Aj!  A "@  Aj!  A  A AŠ F  A > (Ak(AvE@ A�ü ÂAÀ˜ÂA�‹Â"6 ž ‰| ( ý"E@  Ò"DàÿÿÿïAd  b Dcr  œbrr@ (Ak(AvE@ A�ü ÂAÀ˜ÂA€ˆÂ"6 ž  « æ| ( ý"E@  @ Ak(Av J@  Atj( Ä@  Aj!  Ò" a Dfq  œaA   Ak(Av·cA @ ª AÀŠ  Ak(AvA°Ä¦Â! (Ak(AvE@ A�ü ÂAÀ˜Â Â"6 ž  Ý A€�A–!@ Ak(Av J@ (  Atj(ý"@ Aà¯ÄA AÐÚÄ @ A tr! AàûÄA AàÜÄ @ A~ wq!  Atj(! (Ak(AvE@ A�ü ÂAÀ˜ÂAàŠÂ"6 ž Aj!   Â|} ((!@ ( J@@ ( Atj("(Aà2ÄE@ (AЈ#à (Ak(AvA E@ (A€‰Â"6 ž  AAô ˜"A6 A� 6  6AA÷ ˜"C8 C8 C8 C8 AA-˜ A,A-˜6}C= ×> (AÀ¾ý"E  Ò" b@ AÀ¾ •C= ×>  ¶ !}C (Aà¾ý"E  Ò" b@ Aྠ•C  ¶ !}Cáz? (A€¿ý"E  Ò" b@ A€¿ •Cáz?  ¶ ! }C€? (A ¿ý"E  Ò" b@ A ¿ •C€?  ¶ !A!  8  8  8  8 @ A H@C€? C@@”"“ C@@”" ’ ²CÍÌÌ=”"”  CÀ@”“’ ” ’ ”! ("Ak(Av M@  Atj 8 Aj!  (Ak(Av (Ak(AvA E@ A€Š (Â"6 ž  Aj!  A »}| (@ A6 D9A } (! +¶!} Ak("Aõ F@ *  Aö F@ œ  !@@@@@@@@@@@@@@@@@@@@    ’   “   ”   •  » Œ  C]"»ö¶"C]}  ’   ‘   û »ñ¶ »ò¶ »ð¶ »ô¶ »õ¶  »ì¶  »í¶  »î¶  » »ï¶  } �"C€?’  “"C?`  C€¿’ C¿_    Ž  �   »! A6  9A ½}| (@ A6 D9A } (! +¶!} Ak("Aõ F@ *  Aö F@ œ  !@@@@@@@@@@@@@@@    “   ’  •  ” C@û C€? •û »ò¶  »ñ¶  »ì¶  »í¶  »î¶  »ð¶  »ô¶  »õ¶   »! A6  9A z (" (! (! Ak("A  F Aª Fr@   ÷  Aû F@   Ü  A  ((A @C (+¶ R} ž!C€? * "C@@”“ *"C@@”’ ” C@@” CÀ@”“’ ” C@@”’ ” Š}A!@ A G  ("Ak(AvO@   Atj*`A @ CÍÌÌ=’! Aj!  Ak" ("Ak(AvO@ C€? *C@@”"“ *"C@@”"’C@@”    Atj*“ Aj" (" Ak(AvO@ Atj*  ("Ak(AvO@  Atj*“•CÍÌÌ=”’"” ”  CÀ@”“C@” ”’ ’"Coƒ:`@A!@ AH@C€? *C@@”"“ *"C@@”"’C@@” ” ”  CÀ@”“C@” ”’ ’"C[@  C€? *"C@@”“ *"C@@”’ ” C@@” CÀ@”“’ ” C@@”’ ” “ •“! Aj!   C[@  CÍÌÌ=’!A!@@C€? *"C@@”“ *"C@@”’   “C?”’"” C@@” CÀ@”“’ ” C@@”’ ” “"C^@ ! ! ‹C•¿Ö3_ Aj"A H   ‡} (@ A6 D9A  [@ A6  »9A (" Aq +¶" ]q}    AqAG  ]q " ^  ^r AqAGq} »  “"Œ  C]"»ö¶"C]}  ’  ’‹  “  “•!C€? “  Aq"C€?]A C^A ( "}  ž!C€? * "C@@”“ *"C@@”’ ” C@@” CÀ@”“’ ” C@@”’ ” (} CC€? C_ ! A6   ”C€? “ ”’»9A Ÿ  (!@ *C[ -A @ -  ( ( "(" (6  +9  -:  (6  ("6  ž (" (6  +9  -:  (6  ("6  ž ($" (6  +9  -:  (6  ("6  ž A: (C8 (C8  AGA  -E@ A: -  ( ( "(" (6  +9  -:  (6  ("6  ž (" (6  +9  -:  (6  ("6  ž ($" (6  +9  -:  (6  ("6  ž (AH@ -  ( ( "(" (6  +9  -:  (6  ("6  ž (" (6  +9  -:  (6  ("6  ž ($" (6  +9  -:  (6  ("6  ž ( -  ( ( "("(GA (AF ( (F + +a E@ *C\@ - @ ("(" ("("(6  +9  -:  (6  ("6  ž (" ("(6  +9  -:  (6  ("6  ž  *8 A:  A: -  ( ( "(" ($"(6  +9  -:  (6  ("6  ž (" (6  +9  -:  (6  ("6  ž C8  ($"(6  +9  -:  (6  ("6  žA  (6  +9  -:  (6  ("6  žA € } (@ A6 D9A +¶! ("(  AAA™ A6 (! @ ( J@ ( Atj("(AF@ ( "AJ@ ( Ak"Atj*!  6 ( "AL@ ( Ak"Atj*!  6 } ’ *¨"E  “ AF  ” AF  • AF  AF@ » Œ C]" »ö¶" C]} ’  C ! ( "Aj" (AvK@  AA™ ( Atj 8  6  (AF@} *¨! (! A! ("(  AAA™ A6 (!@  H@ ( "AJ@ ( Ak"Atj*!  6 ( " Aj" (AvK@  AA™ ( Atj 8  6 Aj!  ( !@@@@@@@@@@@@@@@@@   C E  ( E@ (*! A!@  J@   ( O@ ( Atj*]  ( O@ ( Atj*^ @  ( O@ ( Atj*! Aj!   AJ}} Ak" ( O@ ( Atj*" �" C€?’ “" C?`  C€¿’ C¿_  C  AJ} Ak" ( O@ ( Atj*�C  AJ} Ak" ( O@ ( Atj*ŽC AJ} Ak" ( O@ ( Atj*‘C AJ} Ak" ( O@ Ak" ( O@ (" Atj* At j*ûC AJ} Ak" ( O@ ( Atj*»ñ¶C AJ} Ak" ( O@ ( Atj*»ò¶C AJ} Ak" ( O@ ( Atj*»ð¶C  AJ} Ak" ( O@ ( Atj*»ô¶C  AJ} Ak" ( O@ ( Atj*»õ¶C  AJ} Ak" ( O@ ( Atj*»ì¶C  AJ} Ak" ( O@ ( Atj*»í¶C  AJ} Ak" ( O@ ( Atj*»î¶C  AJ} Ak" ( O@ Ak" ( O@ (" Atj*» At j*»ï¶C  } ( AF@ ( "A t s"Av s"At s"6 Av¸Dp>¢¶  @ ("( AL@ ( "A t s"Av s"At s"6 ( " Aj" (AvK@  AA™ ( Atj Av¸Dp>¢¶8  6  ("( E@ (* ! C! AF} Ak" ( O@ ( Atj* AJ} Ak" ( O@ ( Atj*! Ak" ( O@ ( Atj*C€? !  “ ”’  C ! ( "Aj" (AvK@  AA™ ( Atj 8  6  ("@ AF@ *! ( "Aj" (AvK@  AA™ ( Atj 8  6  ( "Aj" (AvK@  AA™ ( Atj 8  6 Aj!  ( "AF@ ( Ak"Atj*!  6 ( AF@ ("(  AAA™ A6 A6  »9A ‹ :@ ("( J@  ( O@ ( Atj("@@@@@ Ak(Aõ k  :   ¢  Aj!  U@ ( "( J@  ( O@ ( Atj("E@ ( Ä@  Aj!  A â  (( 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("Ak(Av ( �AHA @ (! ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  ± (AG@A ( " ((! (! Ak("A  F Aª Fr@   ÷  Aû F@   Ü  A E@A ("E@ ((Ak(AvA ((   (( (,À (,A î$| (D (""( (É ™ ¾!@ ( J@ ( ( Atj(" (T( @ ¸!A!@ (T"( J@  ( O@ ( Atj("@ -$A€� ( " (æ !A ñ A�ÂAÀ�Â!@@@ E@ A Å ÂAð‚* (ÂAÀ�Â! (0! (4! (8!A! ã "( E@ A€Ë*ÂAðž*  AA˜"A6 A6 A6 A6 Aš!@ ( J@ ( Atj((! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AÐË* ( ( A°Ä¦Â ! (!A Aë˜"Ð A6 Aà´6  6  -@ (ì "-E@ (0! (4! (8! A „* (ÂA€„* (Â! ( ! (!A Aë˜"Ð A6 AÀƒ*6  6  AA®˜"A6 A6 A6 A6 A: A: A: A: ( ! (! (!  (6  6  6  6  -:  -: ! (AF@AA£ ˜"A6 A6 A6 A6 A6 A6 AAAA¤6 (å !  6  6  6AAAA¤"( (6  6 ((Ak(AvE@  Ý"6  ž (! (8A Ú �AH  Að°*Ä (\" ( FA  (( AJA A A E@ Ú ! A „* (ÂA€™* (ÂAÀ�ÂA€„* ÂA�®* ÂA°­*Â! ( AJ AÀ¯* ( ( A°Ä¦Â Aà¯* AÀ®*Â! (8! (4! (0! (!A Aë˜" Ð A6 A°°*6 6 6 6 6 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  -A (ù (AF  (AGA @ A „* (ÂA€…*ÂA�ÒA°Ò (AGÂAÀ„*Â! (8! (4! (0! (!A Aë˜"Ð A6 AÐÑ6  6  6  6  6 AÀÔ6  ( +Dð?a +DaA  ( A A @ A „* (ÂA°Ä ("AFA Æ@@@@@@  A€Ç  A€Æ  A€×  AÀÆ  AàÆ  AðÏ àÂAà…*ÂAA˜"A6 A6 A6 A6 Aš! +"Dð?b@A ¬* ’ Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 +"Db@AÀ¬* ’ Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( @ ( "Aj" (AvK@  AA™ ( Atj"Aà¬*6  At Aà¬*Ÿ  6 ( AF@ (("E@   A ( AkŸ"( ( A°Ä¦Að‹Â ( " Ak"M@ ( Atj("E@  ÂA°…*Â!A°‡* ("AFA Æ@@@@@@  A€Ç  A€Æ  A€×  AÀÆ  AàÆ  AðÏ ÂA�†*Â! (8! (4! (0! (!A Aë˜"Ð A6 Aðƒ6  6  6  6  6  6  A8 C@8 A€€á6 A:$ A:% A:&  6ìA(A�˜"A6 A6 A: AÐä6 A6 C€?8 CÍÌL>8 C@8 A€€á6 A:$ A:% A:&  6ð D9ø A6€ D9ˆ D9� C€?8˜A$AØ ˜"A6 A6 A6 A6 C€?8 C€?8 C€?8 C€?8 A:  6œ A6  A6¤AA¦˜!AA˜" 6  ž  6 A6 A6  6¨ A:¬ A6° A6´ A:¸ A6¼ D9ÀAØA™ ˜"A€6 A€6 A6 A6 A AË ˜"A6 A6 A� 6  6 A6 A6 A6 A: A6$ A~6( C8, A60 A:4 D98 A:@ A6DAA›˜"A6 A: A: A6 A6 A:  6HA(A�˜"A6 A6 A: AÐä6 A6 C€?8 CÍÌL>8 C@8 A€€á6 A:$ A:% A:&  6L A6P A6T C€?8,  6È A6Ì A6Ð A6Ô A6Ø C€?8ÜAA¦˜!AAï ˜" 6  ž  6 A6 A6  6àAA¦˜!AAï ˜" 6  ž  6 A6 A6  6äAA¦˜!AAï ˜" 6  ž  6 A6 A6  6èAA¦˜!AA˜" 6  ž  6 A6 A6  6ì B7ð A� 6ø A6üAAµ ˜"A6 C8 C8 A6 A6 A: A: A: A: A: A6  6€A8A‡ ˜"Î@ A H@ (!AàA† ˜" "A6 Dð9 C8 C8 C8 C8 C8 C8$ C8( C8, A:0 A:1 A64 A68 C8< C8@ C8D C8H C8L C8P C8T C8X A:\ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!   6„ B7ˆ B7�A°AŒ ˜!AA� ˜"½  6AA¦˜!AA� ˜" 6  ž  6 A6 A6  6AA� ˜"½  6AA¦˜!AA‘ ˜" 6  ž  6 A6 A6  6 AA’ ˜"½  6AA¦˜!AA“ ˜" 6  ž  6 A6 A6  6 A6 A6AA” ˜"C8 C8 C8 C8 C8 C8 C8 C8 C8 C8 C8 C€?8  6 A(Aè˜"Dð9 A6 D9 D9 A:  6$A(A× ˜"Dð9 C8 C8 C8 C8 C8 C8 A6 A6$  6(AA¿˜ AàA¿˜6,AA¿˜ AàA¿˜60AA¿˜ AàA¿˜64AA¿˜ AàA¿˜68AA¿˜ AàA¿˜68 C@8 A€€á6 A:$ A:% A:& ! AA˜"A6 A6 A6 A6 Aš (4 ! A€ˆÍ! @ A: A ‘ A  A(A�˜"A6 A6 A: AÐä6 A6 C€?8 CÍÌL>8 C@8 A€€á6 A:$ A:% A:&  ‘ ! @  60  6$  ž è (("6p ž 6t ž " AFAЂ (ÂAÀšÂA� "6x  ž AF    Å (("Ak(AvA°‰A�Ò ÂA°‰ "  (îAЈ Â! (T Ä (A @ A6 A6  6@  ž (D®AAê˜"‘  6  ž  6T  ž  (  Æ ! A� 6x E AGq (AFA @A! A6 ( AAÿÿÿÿŸ!    Å"@@ ( J@ (8 ( Atj("�AH@ (8( AäH@ (8"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6  )@B|7@ Aj!  E AFq (A A#M"E@AA„ ˜"$M A Ak("A�F A A„ F  E@ A …6 A …ž A� 6p A6t („"A� 6 A6 A6 A6 A6 ( ² (Ak(Av -A @  ( (û"6  ž  6  ž @ ("6 ž AÐÖ AF AðÖ AF A�× "6À ž ("6Ä ž (É  þ  E@   („ë! AЂ (ÂAÀšÂ! @ (AF@Aðü (ÂA°‹Â ÂAÀŠÂAà#ÂAЉÂ!  (AF@Aðü (ÂAðÛ ( Â!  (AF@Aðü (ÂAðÛ ÂA°� (A «ÂAðŒÂAA «ÂA�ŒÂAà#ÂAð‹Â!  (" E@A Að� (Â! (T ÄE@ A� 6T A� 6@ (D® (( ! ((í!@ ("( J@  ( O@ ( Atj("@AÀ Ak("AÖ F A AÉ F A AÇ F A€€ A² F A A¬ F A A£ F A A— F A A� F  r! Aj!  ( Asq" @ AÀ‘ÂAA˜"A6 A6 A6 A6 Aš! @ A H@A t" q@A!@AŒ“(Av J@  AtA�“j(F@ #«"Ak(AvO@  Atj("E@   Aj!  A� "Ak(AvAÀ� ÂAÀ�ÂA€’ A «Â ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  ( AF (("E@  A ( AkŸ"( ( A°Ä¦Að‹Â ( " Ak"M@ ( Atj("E@  !A°’Aà’ ( AF ÂÂAà�ÂA��ÂAà#ÂA€�ÂAÀŽÂ! ( �AH@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A  (€! A6€  ( FA "A E@ á @ E@ A4Aú ˜" ª 6 6 (H"E@ § "6H ž â"6L ž (L"6 ž à"-E@ ( (" �AH@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( " #Í"  Ak(Aü FA A AAü ˜"A6  6 A "6„ ž 6 ž 6 žAAê˜"‘ 6 žA!@ (l"( J@  ( O@ ( Atj(" @@ Ak("A�F@ ¤  Aý F Aj!  A E@ !@ ("( J@ ( !  ( O@ ( Atj(" E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( "( E@Aðü (ÂAðÛ ÂA�ŽÂ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A 6T ž (  (î (" (A�  Æ ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ÇA ¬ (( !  Â! !@ ("( J@ ( !  ( O@ ( Atj("E@ ! ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A ( ( E@ ( !Aðü ÂAðˆÂ! ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  e ( �AH@ ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  | (ð (ìè! +ø"Dd@  ¶8 (€"AN@  6 +ˆ"Dd@  ¶8 +ˆDc@ C8 +�"Dd@  DÀÿÿÿßAfAÿÿÿÿ +�"›" Dð¿  Dà¿  eª 6  +�Dc@ A6  (È(Lé@ (È(L è A:æ e Ak(AvE@ (È"@ A� 6 A� ž  (È"E@A8A‡ ˜"‚ 6È ž  6  ž £ |~} 9ˆ 9� ! (œ! Dð?  ¡Da Ddq! (È(L" *»" Dd ¡DaA |  ¤  ! *»" ¡Da| DÐ?¥D@¤Dð? ! A  ¢" Dð?fE A€À DÀ@d  ›" Dð¿  Dà¿  e« !A  ¢" Dð?fE A€À DÀ@d  ›" Dð¿  Dà¿  e« !A  ¢ ¢" Dð?fE A€À DÀ@d  ›" Dð¿  Dà¿  e« !A  ¢ ¢" Dð?fE A€À DÀ@d  ›" Dð¿  Dà¿  e« ! ( " A AJ¬"BR ­ ­~ VA @ ¸" º ¸" ¢£Ÿ" ¢! ¢! A Dð?fE A€À DÀ@d  ›" Dð¿  Dà¿  e« "­A Dð?fE A€À DÀ@d  ›" Dð¿  Dà¿  e« "­~ VA œ«" AM!A œ«" AM  !  6  6  6  6  F  Fq@ Dð? £¶8  *8 C€?8 C€?8 A:     ¸" £Dð? £" Dd¶8   ¸"£  Dd¶8  ¸£¶8   ¸£¶8   I  Ir (AFq:  "( (xGA ( (|G @ (6x (6| A:æ  +€b@ 9€ ( (F ( ( FA } *Dð? £¶ 8Ü -  (A ! -  ( A !  (È"(PGA  (TG @  6P  6T A:æ (œ*"C€?[} *˜ *˜» »¢¶ " (È"*,\@  8, A:æ ÿç.M}|~ (( ")8 )˜R@ A60 #è"64  ž  )˜78 (È" (x6  (|6  (¼"6  ž (L" ( ((, ! (Ì" -äA A -å A (!#A�¥ÁkAÀI@ #A@j"$ A:ô@ -´ (Œ (GA (! (A ( A ( A ($ (A (" AMGA (A (" AMG A ( (äG A *, *Ü\ A - -àG A (( (èG A ( (ðG ( "A ((AF @ ((! E (ì"EG A   ÄA E (0"E (h" EG A   ÄA E  (ü" (€¿ (¼"E (d"@ !@  ( "E  (GA@ ( J@ ( Atj(" Ak(A¼FA  ( !@ @  Ak(AÖFA @  Ak(AÖFA E@   ( !  A GA E@  Ak(A¼FA E@  -È   ! Aj!  G  @ !@  ( "E  (G A!@@  ( N ( Atj(" Ak(A¼FA  ( !@ @  Ak(AÖFA @A  ( !  A A E@  Ak(A¼FA E@ -È@ !   ! Aj!    G  (<( AJ! (`!A! ( J ( Atj(" Ak(A¾FA   ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A FA A   Ak(A¾FA E@ (È Aj!  A "  (ÄGA A ( (ÈG A (, (ÌG  �!  (|G (À!A!A!@ ( J@@ ( Atj("  Ak(A½FA  œA E  ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A GA  ( NA  ( O@ ( Atj("E@  Ak(A½FA E@  G  Aj! Aj!   ( G (t! (°!A!@ (¨"( J@ ( M@ ( Atj("E@ ( " ("L   O@ ( Atj("E@ (¤"(  ( E@ ()BSA A ( E@ ( ()§L  ( E@ ()§" ( O@ ( Atj("E@ ($ ("(˜G   ” Aj!  A!@ ( J@A!@ ( Atj("ƒ  (Ð" ( O@ ( Atj)R (Ô! @ AH@ Al j" ( O@ @@@@@@@@@@@@@@@@@@@@@   ($  (,  (4  (\  (d  (P  (Ì  (Ð (Ô (ü („ (¨ (¼  (”  (œ  (¼  (Ì  (è  (Ø  (ì  A ( Atj(G  Aj!   (˜" ( H  ( O@ ( Atj( (ôGA  (œ" ( H  ( O@ ( Atj(A !  Ak(A‰ FA @ (�!  ( ( GA A!@ ( J@  ( O@ At" (j( (j(G  Aj!    A  A E  Aj!  („ ! (4! (8! A! A!@ ( J@ ( Atj(" Ak(AÕFA  œA @A ( NA ( O@ ( Atj("E@  Ak(AÕFA E@  G  Aj! Aj!  A ( GA (è( ( G A!@ ( J@ ( Atj(!A! @ AH@ At j" ( O@ A E@ (Ô  AF@ (Ø  AF@ (Ü  AF@ (à  A ( Atj(G  Aj!   (è" ( O@ ( Atj(" @  � Aj!  A E („ ! (P!A!A!@ ( J@ ( Atj("  Ak(AÚFA  œA @A  ( NA  ( O@ ( Atj("E@  Ak(AÚFA E@  G  Aj! Aj!  A  ( GA (€( ( G   (üžA!@ ( J@  (€" ( O@ At" (j(" @  (j( Ÿ Aj!  A E („ ! (X!A! A!@ ( J@@ ( Atj(" Ak(AÛFA  œA E  Ak(AÛFA E@ (È" ¡((AvAOA E A ( NA ( O@ ( Atj("E@  G  Aj! Aj!  A ( GA (ˆ( ( G A! @ ( J@ (ˆ"( O@ At" (j("@  (j(   Aj!  A E (³ (³•!p (ˆ"E@AøA¥ ˜"� (Œ! (ˆ! („!  6  6  6  6  6H  6L  6ˆ  ž  6  ž C8 C8 C8 C8$ C8( C8, A:0 B78 A:`  (6  *,8@ A:¸A! (L!@ ( !J@ ( !Atj(" Ak(A¶FA !  Ak(A¹FA !  Ak(A»FA !  Ak(AÃFA ! @  Ak(A×FA " r r rrE œE  ö !>!=!8< @  Ak(A×FA E@  ( N@ (Ü" @@@ Ak(A® k. ù    *,C^þ(($A E   Aj  *!? *!@ *!A * !B *!C *!D *!E *!F * !G *$!I *(!H *,!J *0!K *4!M *8!L *!=!"i8@ S N k \ [ d f g h –C]:ž 6  ž A6  A6¤  ò!R!Q!P"O8„ P8ˆ Q8Œ R8� @@ Ak(Aµk# A  A A  @@ Ak(Aµk# A  A A E@ A (È"A AJ" ANA 6¬ @@ Ak(Aµk# A  A A @ @@ Ak(Aµk# A  A A E@ *Ì8Ð *Ð8Ô *Ô8Ø *Ø8Ü A (Ü"A AJ" AN6à @ @@ Ak(Aµk# A  A A E@ C€?8ð  @@ Ak(Aµk# A  A A E@ *ì"cC^} cC€? cC€?]C 8ð *ü!c *ø!j *ô!^ *ð8ô ^8ø j8ü c8€ @ @@ Ak(Aµk# A  A A E@ C8„ C8ˆ C8Œ C8� C€?8”  @@ Ak(Aµk# A  A A E@ *€8„ *�!c *Œ!j *ˆ!^ *„8ˆ ^8Œ j8� c8”  6  ž  ?8  @8  A8  B8  C8  D8  E8$  F8(  G8,  I80  H84  J88  K8<  M8@  L8D  Z8H * !? *!@ *!A *!B *!C  * 8L  C8P  B8T  A8X  @8\  ?8`  (X¬! (Ì (ðF@  )8 ¬ ($An­~|78    S N k ] \ [ d l f g h e a ` b iñ!Y!X!W!V!U"T U V W X YîA "AJ! @  (¨( N@  Ak(AÃFA E@ (˜" E  -œ! * !A *¤!?CCCC *¼"@C^E ( "AL (" ALrr  ²!B ²!C } ? CC?”“!? A BC?”“ A @” ? @” B @” C @” !R!Q!P!O RC^E QC^Er    Ak(AÃFA E@ Aj  *!E *!F *!G * !S *!I *!H *!J *!N * !K *$!M *(!L *,!k *0!C *4!D *8!Z *!=!"wã!>!=!ã!>!=!8@ ? a ` b i j ^ _ o –C]:ž (AF} *�!@ *Œ!A *ˆ!B *„  ò!R!Q!P"O!y R!@ Q!A P!B y 8„ B8ˆ A8Œ @8� @@ Ak(Aµk# A  A A  @@ Ak(Aµk# A  A A E@ A (È" A AJ" ANA " 6¬ -Ë:˜ @@ Ak(Aµk# A  A A @ @@ Ak(Aµk# A  A A E@ *Ì8Ð *Ð8Ô *Ô8Ø *Ø8Ü A (Ü"A AJ" AN6à @ @@ Ak(Aµk# A  A A E@ C€?8ð  @@ Ak(Aµk# A  A A E@ *ì"@C^} @C€? @C€?]C 8ð *ü!@ *ø!A *ô!B *ð8ô B8ø A8ü @8€ @ @@ Ak(Aµk# A  A A E@ C8„ C8ˆ C8Œ C8� C€?8”  @@ Ak(Aµk# A  A A E@ *€8„ *�!@ *Œ!A *ˆ!B *„8ˆ B8Œ A8� @8” (Ì (ðF@  )8 ($An­|78   (ÄAFA (ÄAF } C E F G I H J K M L [ d f g h c ] l e˜"B“!` D B’!? ZŒ"b B’!a C B’!@ D B“!A b B“!B ` * * * * * * ? a ` b i j ^ _ o x m n°!Y!X!W!V!U"T!` Y!? X!a W!@ V!A U!B ` B A @ a ?î  E8  F8  G8  S8  I8  H8  J8  N8$  K8(  M8,  L80  k84  C88  D8<  Z8@  \8D  [8H  d8L  f8P  q8T  g8X  h8\  c8`  r8d  s8h  t8l  u8p  v8t  ]8x  l8|  e8€  w8„  (Ä6ˆ  -Ê:Œ  6�A "AJ!   Ak(A»FA E@ (˜"  (AFA  ($"   @@@ Ak(A® k. ù    * * * * * * * * * *$ *( *, *0 *4 *8 *!=!8<  6 ( O@ ( j- -LA  *H!? *D!@ *@!A *!=!A A  * * * * * * * * * *$ *( *, *0 *4 *8 *<í"AH Aj  AJ! Aj!   ! AH  Aj  AJ! !Aj!!  (t(  (�jGA  (¨( G A  ( G  )87A!@ (ˆ"( A l (¬" (AvG@ ÷  #É! @ ( J@ ( Atj( †A!@ A H@  Ak(AvO@ Atj+!| A l j" (AvO@ ( Atj |9 Aj!  Aj!  (t (ˆ (Œú (�AJ@  ù  +8"| |¡Db}C | |D ¬@£œD ¬@¢¡"|D ¬@c |Dfq| |D ¶ 8�  (D6  (œ" (H"(6  -:  -:  (6  ( 6  -: (¤ (Lè  (P6¨  (T6¬ -0} *(!@ *$!? * !A *!B *!C *,C€?!@C€?!?C€¿!AC€¿!BC€¿!CC€? !D  C8�  B8”  A8˜  ?8œ  @8   D8¤ *,!E *(!F *$!G * !I *!H  *8¼  H8À  I8Ä  G8È  F8Ì  E8Ð  -0:Ô  C B A ? @ D p ( ‘  (¨— ( AJ@   ­6H (˜!@ "E@ A: C A8 C @8 A: C@8 C€?8 CÍÌÌ=8   -(:  *,8  *08  -4:  *88  *<8  *@8 } *C€? "? *€\@   ?Ž  ?8€ (AG@ *d!? *`!@ *\!A  *X8l  A8p  @8t  ?8x A!@  ( H  (˜( HA @  (˜"( O@ ( Atj("@   ( O@ ( Atj("E@ Š Aj!  -à@    (ˆ  („™"(6$  (6(    (ˆ  („›6, (0AJ@ (t"( " (ˆ"( "  H!A!@  H@ At" (j(  (j("@@ Ak(Aµk# A  A A  @@ Ak(Aµk# A  A A E@ (èA 6¨ Aj!  („A!A! (!=!!@ =!A !=!"uã!>!=!ã!>!=!8@  S N e a ` b i j ^ –C]:ž  6   ž (˜AüA  ˜"´  A�"6  ž  ” A !@ ((( H@ (   ( (ë!~ (¤"( "Aj!  (AvK@  AA™ ( Atj ~7  6 (E@ ( ~  (ê Aj!   (AF (“  ò !R!Q!P"O8„  P8ˆ  Q8Œ  R8�  ("AF AFr:¨  @@ Ak(Aµk# A  A A  @@ Ak(Aµk# A  A A E@ A (È"A AJ" ANA 6¬  -Ë:˜ @@ Ak(Aµk# A  A A @ @@ Ak(Aµk# A  A A E@  *Ì8Ð  *Ð8Ô  *Ô8Ø  *Ø8Ü A (Ü"A AJ" AN6à @ @@ Ak(Aµk# A  A A E@ C€?8ð  @@ Ak(Aµk# A  A A E@  *ì"_C^} _C€? _C€?]C 8ð *ü!_ *ø!m *ô!n  *ð8ô  n8ø  m8ü  _8€ @ @@ Ak(Aµk# A  A A E@ C8„ C8ˆ C8Œ C8� C€?8”  @@ Ak(Aµk# A  A A E@  *€8„ *�!_ *Œ!m *ˆ!n  *„8ˆ  n8Œ  m8�  _8” (t"( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (H"( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (P"( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (Ì (ðF@  )8 ($An­|78   (ÄAFA (ÄAF } C ? Z L K J H G F E \ [ d f g h c ] l˜"N“!b B N’!e AŒ"i N’!a C N’!S B N“!` i N“!N b * * * * * * S N e a ` b i j ^ v w x°!Y!X!W!V!U"T!b Y!e X!a W!S V!` U!N b N ` S a eðA˜AÌ ˜"A6 A6 C8 C8 C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ C8D C8H C8L C8P C8T C8X C8\ C8` C8d C8h C8l C8p C8t C8x C8| C8€ C8„ A6ˆ A:Œ A6� A6” (¬!  (t( Ak6  6  ?8  Z8  L8  M8  K8  J8  H8  I8$  G8(  F8,  E80  D84  C88  B8<  A8@  @8D  \8H  [8L  d8P  o8T  f8X  g8\  h8`  p8d  q8h  r8l  s8p  t8t  c8x  ]8|  l8€  u8„  (Ä6ˆ  -Ê:Œ  6�  6” ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  @  Ak(A×FA E@ !A!A!A!@ " (Ü"E (@@@ Ak(A® k. ù    ( *@C^þ" ("($E ³(´! ( ü (!A€É*A„É*AˆÉ*AŒÉ*A�É*A”É*A˜É*AœÉ*A É*A¤É*A¨É*A¬É*A°É*A´É*A¸É*A¼É* ? Z L M K J H I G F E D C B A @ã!>!=!"j8@  S N \ [ d f g h c –C]:ž  6   ž@  (("( H@  ( O@ ( A lj/ó! "E@ ! E@ ! ! (   ( (ë!~ (¤"( "Aj!  (AvK@  AA™ ( Atj ~7  6 (E@ ( ~  (ê Aj!   (AF (“  ò !R!Q!P"O8„  P8ˆ  Q8Œ  R8�  ("AF AFr:¨  @@ Ak(Aµk# A  A A  @@ Ak(Aµk# A  A A E@ A (È"A AJ" ANA 6¬ @@ Ak(Aµk# A  A A @ @@ Ak(Aµk# A  A A E@  *Ì8Ð  *Ð8Ô  *Ô8Ø  *Ø8Ü A (Ü"A AJ" AN6à @ @@ Ak(Aµk# A  A A E@ C€?8ð  @@ Ak(Aµk# A  A A E@  *ì"]C^} ]C€? ]C€?]C 8ð *ü!] *ø!^ *ô!_  *ð8ô  _8ø  ^8ü  ]8€ @ @@ Ak(Aµk# A  A A E@ C8„ C8ˆ C8Œ C8� C€?8”  @@ Ak(Aµk# A  A A E@  *€8„ *�!] *Œ!^ *ˆ!_  *„8ˆ  _8Œ  ^8�  ]8” (t"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (H"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (P"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (t( Ak!AÔAÏ ˜"A6 A6 A6A°*!]A¬*!^A¨*!_A¤*!oA *!pAœ*!qA˜*!rA”*!sA�*!tAŒ*!uAˆ*!vA„*!wA€*!xAü*!mAø*!n Aô*8  n8  m8  x8  w8  v8  u8$  t8(  s8,  r80  q84  p88  o8<  _8@  ^8D  ]8H C8L C8P C8T C8X C8\ C8` A6dAAÑ ˜"C8 C8 C8 C8 C8 C8 A:  6h A6lA°*!]A¬*!^A¨*!_A¤*!oA *!pAœ*!qA˜*!rA”*!sA�*!tAŒ*!uAˆ*!vA„*!wA€*!xAü*!mAø*!n Aô*8p  n8t  m8x  x8|  w8€  v8„  u8ˆ  t8Œ  s8�  r8”  q8˜  p8œ  o8   _8¤  ^8¨  ]8¬ C8° C8´ C8¸ C8¼ C8À C8Ä A6È A:Ì A6Ð  6  6  6  6d  ž  ?8  Z8  L8  M8  K8  J8  H8$  I8(  G8,  F80  E84  D88  C8<  B8@  A8D  @8H * !? *!@ *!A *!B *!C  * 8L  C8P  B8T  A8X  @8\  ?8`  (X¬! (Ì (ðF@  )8 ¬ ($An­~|78    S N \ l [ d f e g h c a ` b i jñ!Y!X!W!V!U"T U V W X Yð (@"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (D"( " Aj!  (AvK@  AA™ ( Atj 6  6 (L"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6  @  Ak(A»FA E@ (˜" (AFA @ ($"@ @@@ Ak(A® k. ù    ? Z L M K J H I G F E D C B A @ (  AAô*Aø*Aü*A€*A„*Aˆ*AŒ*A�*A”*A˜*Aœ*A *A¤*A¨*A¬*A°*ì   (A E@A€¢ (ÂA ¡Â! ( �AH@ ( "( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6  @  Ak(A¶FA E@ (˜"@ @@@ Ak(A® k. ù    ? Z L M K J H I G F E D C B A @   (œ ( AAAô*Aø*Aü*A€*A„*Aˆ*AŒ*A�*A”*A˜*Aœ*A *A¤*A¨*A¬*A°*ì   Ak(A¹FA E@ £! A!@ ( J@ ( Atj("-D@  (@ ? Z L M K J H I G F E D C B A @ * * * * * * * * * *$ *( *, *0 *4 *8 *<ã!>!=! ( A  ? Z L M K J H I G F E D C B A @ì Aj!  Aj!  A! (t"( ! "( (! (”""(  AAA™ A6 A!@  H@ !A!@@  ( O@ ( Atj("E@ (¤!A!A! @ ( J@A  ( Atj)"~BY ~§" ( O@ ( Atj("E@ (ôA ! Aj!  E AN@ E@A! ( !AмAA «ÂA »Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ( M@ ( Atj("E@ AìAÒ˜"é  ( Aj6 A6˜  6œA! @ ( J@ (¤! ( ( Atj)"~BY ~§" ( O@ ( Atj("E@ (ôA  ( (ë!~ ( "Aj" (AvK@  AA™ ( Atj ~7  6 Aj!   ø ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (H"( O@ ( Atj(" E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (L"! ( M@ ( Alj"*!? *!@ * !A *!B *!C *!D ( "Aj"AªÕªK@ Al" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Alj" D8  C8  B8  A8  @8  ?8  6  (P"( O@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "Aj" (AvK@  AA™ ( Atj 6  6 ( Ak! Aj!  Aj!  ( k6�  +8"| |¡Db}C | |D ¬@£œD ¬@¢¡"|D ¬@c |Dfq| |D ¶ 8�  (D6  (œ" (H"(6  -:  -:  (6  ( 6  -: (¤ (Lè  (P6¨  (T6¬A! A!@ (t"( J@  ( O@ ( Atj("@ Aj (Ì (ðF  (t"( O@ ( Atj("E@ (œAHA ! Aj!  6 )87 ( ("6° ž ÷ (t (ˆ (Œú (�AJ@  ù (ˆ!A! (0! (4!!  "60  ž  64  ž (t"&( !A! @ E Hq@ &( Atj("*ÐC^A *ØC^ ! Aj!  @ E Er  Fr (Ø"'( " !( "  J" (t( "  J"(E  (Ø"( J@ (   AA™  6 A! A!@  H  ( HA @@ &( Atj("*ÐC^A *ØC^ E At" (j(!)  (H )  !(j(FA @ ( j '( j-:  E@AAð˜" ½ (Ak!@ AN@ !( Atj(A�! '( j-!*A!   "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA "+Ò"@  *: ( " (F@ ( AlAmH ( (AtAr !#AA¦˜ #Aj"At"AüÿÿÿK@ A¦˜! AA¦˜ AtAm",A l"AüÿÿÿK@ A¦˜! (" (A lj!- !@  -G@ (AqE@  ("6  -:   "Ak(A~q"AOA¨ˆ�¡! A÷”¯¯x!"A!$AÏŒ¢Ž!%  jAk!.@  .M@ (A÷”¯¯xljA wA±óÝñyl! " (A÷”¯¯xljA wA±óÝñyl!" $ (A÷”¯¯xljA wA±óÝñyl!$ % ( A÷”¯¯xljA wA±óÝñyl!% Aj!   Aw "Awj $A wj %Awjj A±ÏÙ²j !  jAk!"@  "M@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA #qAtj"(6  6 A j! A j!  6 ž #6 6 ž ,6 (6 (! ("Aj6  A lj" 6 ž  *: (Aj6  ( + (qAtj"(6  6 Ak!  )A�" ¥Ò@  ¥Ò"E@ ( j -: Aj!  -0} *,!@ *(!? *$!A * !B *!C *C€?!@C€?!?C€?!AC€¿!BC€¿!CC€¿ "D8� C8” B8˜ A8œ ?8  @8¤ *,!E *(!F *$!G * !I *!H  *8¼  H8À  I8Ä  G8È  F8Ì  E8Ð  -0:Ô @  ²"6  ž A� 6 A°¢6 @A4AΘ"C8 C8 C8 C8 C8 C8 C8 C8 C8 A6$ C8( C8, C80  D C B A ? @ kA *!?A¤*!@AÌ*!AAÐ*!BAÔ*!C Aœ*"D8  ?8  @8  D8  ?8  @8  A8  B8  C8 A6$ CpB8( C€?8, C@80 ‘  6  ž A�"6 ž 6„ ž AТ A�ÂA€£ ( "6 ž (ØAG *Ì"?C€?` ?C3C_A A E@ ( !AÀ¤ A�ÂA ¤Â *Ì“ ÂAð£Â *Ì"@C€?]@C€?!@ C3C @ @C3C^“ ÂA £Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  AN@  D C B A ? @/@@@@@@@  CÍÌ:BCÍÌÐA  CC  C4CC  C´BC  C´ÂC  CC´B  CC´Â !{"z { AGCffB kACA³"6  ž A� 6 @@@@@@@  AÀ¹  A๠ A€º  A º  AÀº  Aຠ A€» "6 ž  D C B A ? @CÍÌ:BCÍÌÐAACffB kACA³"6  ž A� 6 AÀ¹6 AÀ¹ž ("( "Aj!  (AvK@  AA™ ( Atj"Aà¤6  At Aट  6  (¨— (L"( AJ@  ­6H (ˆ!A!@ ("E ( Ÿ"E A!@  (t( H  ( HA @  ( O@ ( Atj("@  F  (t"( O@ ( Atj("E@ A:”  (t"( O@ ( Atj("E@ A:•A ( !@ @A  F  ( !  A   (t"( O@ ( Atj("E@ A:”A  ! Aj!  E A:jA¨Í*!?A¤Í*!@ACA Í*"A AC]"AC€?^}C€? A CC”C?’»"|DdE Aÿ |Dào@f  |ªAÿq !AC @ @C]"@C€?^}C€? @ CC”C?’»"|DdE Aÿ |Dào@f  |ªAÿq !AC ? ?C]"?C€?^}C€? ? CC”C?’»"|DdE Aÿ |Dào@f  |ªAÿq !  :k  :l  :m Aÿ:nA´Í*!?A°Í*!@ACA¬Í*"A AC]"AC€?^}C€? A CC”C?’»"|DdE Aÿ |Dào@f  |ªAÿq !AC @ @C]"@C€?^}C€? @ CC”C?’»"|DdE Aÿ |Dào@f  |ªAÿq !AC ? ?C]"?C€?^}C€? ? CC”C?’»"|DdE Aÿ |Dào@f  |ªAÿq !  :o  :p  :q Aÿ:r (AG@ -4! ( !A! (X"( ! AAA™ AJ@ (A Atü A6  :Œ@ ( J@@ ( Atj("" Ak(AÛFA  œA E  Ak(AÛFA E@ AøA—˜"!A Aç˜" A6 A6 A6 AA¦˜"6 6 A6  6A Aä˜" A6 A6 A6 AA¦˜"6 6 A6  6A°*!?A¬*!@A¨*!AA¤*!BA *!CAœ*!DA˜*!EA”*!FA�*!GAŒ*!IAˆ*!HA„*!JA€*!KAü*!MAø*!L Aô*8  L8  M8  K8  J8  H8  I8  G8$  F8(  E8,  D80  C84  B88  A8<  @8@  ?8D C8H C8L C8P C8T C8X C8\ A:` A6d A6h A� 6l A6p A:t   E  ( AJ ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A A "A!A ( " E ALr  (!@  H@  Atj( F@   Aj!  A AjA 6p  A�"6l  ž  ( 6d (ˆ"( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   (ˆ! ( Aj! A!AAö˜"A6 A6 A6 A6  ì!@ ( J@ ( Atj(" (p"AH  NrE@  ( O@   ( Atj) ((AvAn¬|í  ( O@ A ( Atj)B€€U  Aj!  A A @ ( "Aj" (AvK@  AA™ ( Atj"Aв6  At AвŸ  6 ( 6\  -@:” A!A! (A F@    û  A 6 A:iAàÍ*!?AÜÍ*!@AØÍ*!A AÔÍ*8X  A8\  @8`  ?8dA˜AÛ˜"ž  6œ  ž (˜( 6 (" A FA @ A A (6    û ! ( ( ! A!@ ( J@ ( Atj(" Ak(A¾FA  ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A FA @  Ak(A¾FA E@   Aj!  A  À " (ÈA !   �"6| ž } *C€? 8€ (˜!@ E@ A: C A8 C @8 A: C@8 C€?8 CÍÌÌ=8   -(:  *,8  *08  -4:  *88  *<8  *@8  ( *€� E@ ("( "Aj!  (AvK@  AA™ ( Atj"A€¥6  At A€¥Ÿ  6 *d!? *`!@ *\!A *X8l A8p @8t ?8x  -ÉA @ A:ô C8X C8\ C8` C8d  -A,A®˜"ª Aš ( "Ak(Av@ ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (˜( 6 - @   (ˆ   ( ™"(6$ (6( (AF@ ( A! (P"( ! AAA™ AJ@ (A Atü A6 (üž@ ( J@ ( Atj(" Ak(AÚFA  œA @  Ak(AÚFA E@ AìA•˜"A6A°*!?A¬*!@A¨*!AA¤*!BA *!CAœ*!DA˜*!EA”*!FA�*!GAŒ*!IAˆ*!HA„*!JA€*!KAü*!MAø*!L Aô*8  L8  M8  K8  J8  H8  I8  G8  F8$  E8(  D8,  C80  B84  A88  @8<  ?8@A°*!?A¬*!@A¨*!AA¤*!BA *!CAœ*!DA˜*!EA”*!FA�*!GAŒ*!IAˆ*!HA„*!JA€*!KAü*!MAø*!L Aô*8D  L8H  M8L  K8P  J8T  H8X  I8\  G8`  F8d  E8h  D8l  C8p  B8t  A8x  @8|  ?8€ C@8„ C@8ˆ C@8Œ C8� C8” C8˜ C8œ C8  C8¤ C8¨ C8¬ C8° A:´ C€?8¸ C€?8¼ C€?8À C€?8Ä C8È C8Ì C8Ð C8Ô CÍÌÌ=8Ø A6Ü A� 6à A:ä A6è  Ÿ  A�"6à  ž  ( 6Ü (€"( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( 6T   (ˆ  ( ›6,  (ˆ! ( ! (8!A! (4" ( ! AAA™ AJ@ (A Atü A6 ( ! AAA™ AJ@ (A Atü A6 @ ( J@ ( Atj(" Ak(AÕFA  œA @  Ak(AÕFA E@ AÜAŒ˜!A°*!?A¬*!@A¨*!AA¤*!BA *!CAœ*!DA˜*!EA”*!FA�*!GAŒ*!IAˆ*!HA„*!JA€*!KAü*!MAø*!L Aô*8  L8  M8  K8  J8  H8  I8  G8  F8  E8$  D8(  C8,  B80  A84  @88  ?8< C8@ C8D C8H C8L C8P C8T C8X C8\ C8` C€?8d C8h C8l C8p C€?8t C8x C8| C8€ C€?8„ C@8ˆ C@8Œ C@8� C€?8” C€?8˜ C€?8œ C€?8  C€?8¤ C€?8¨ C8¬ Cš™™>8° Cš™™>8´ A:¸ C B8¼ C A8À Aÿÿ?6ÄAA¦˜!AA­˜" 6  ž  6 A6 A6 (A6 (A6 (A6 (A6  6È A� 6Ì A:Ð A6Ô A6Ø  �  A�"6Ì  žA!@ AH@ (È  E@ (Ô  AF@ (Ø  AF@ (Ü  AF@ (à  A ! #å"Ak(AvO@  Atj("E@ ! (Ì! (!A!A  (Ak(AvA E  ($" ( AJA @@ ( J@ ( Atj("-A - @ó " ) B|7 AÐÊ6( AÐÊž -E@ A:ó " )B|7 Aj!   ( õ ("@ -A - @ó " ) B|7 A Ë6( A Ëž -E@ A:ó " )B|7 A ( @ ("Ak(AvE@ (! AÀÍ ÂA Í ÂAÀ… ÂAðËÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A  @  ( ô ( œ Aj!  (è"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A!@ AH@ E@ (Ô  AF@ (Ø  AF@ (Ü  AF@ (à  A ! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  Aj!  A ( E  (t"( " ( "  H!A!@  H@ At" (j(  (j("@@ Ak(Aµk# A  A A  @@ Ak(Aµk# A  A A E@ (èA 6¨ Aj!  ( 60 ( !A!A! (<"( ! AAA™ AJ@ (A Atü A6 ("(ì"( ! AAA™ AJ@ (A Atü A6 @ E  ( "Hq@  O@ ( Atj("@  Ak(AÖFA ! Aj!  @A! A4A¦ ˜!AA¦˜!AAý˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6AA¦˜!AA§ ˜" 6  ž  6 A6 A6  6 AA¦˜!AAë˜" 6  ž  6 A6 A6  6AA¦˜!AAë˜" 6  ž  6 A6 A6  6AA¦˜!AA¨ ˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6 AA¦˜!AAë˜" 6  ž  6 A6 A6  6$AA¦˜!AAý˜" 6  ž  6 A6 A6  6( A6,AA¦˜!AA¤˜" 6  ž  6 A6 A6  60@ ( J@ ( Atj(" Ak(AÖFA @ (!  Ak(AÖFA E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  A! A!@ ("( J@  ( O@ ( Atj("E@ A! ( !@ @ Aj   Ak(AÖFA ! ( !  ("( "Aj! (AvK@  AA™ ( Atj 6  6 ( !A!A! @ ( J@ ( Atj(" Ak(A¼FA  ( !@ @  Ak(AÖFA @  Ak(AÖFA E@   ( !  A GA E@  Ak(A¼FA E@  -È    ! Aj!   ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (! ( "  œA ! ( "Aj" (K@  AA™ ( j :  6 Aj AH ALq" ! ("( "Aj!  (K@  AA™ ( j :  6 (("( " Aj!  (AvK@  AA™ ( AtjA6  6 Aj!  A!@ ("( J@ (!  ( O@ ( Atj("E@ -È Aj ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A " A!@ ("( J@  ( O@ ( Atj("E@   F  Aj!  A "AjA ANA ! ( " Aj" (AvK@ AA™ ( Atj 6 6 Aj!  AAú˜"A6 A6 A6 A6 Aš!A!@ ( J@ ( Atj(! ( ! AAA™ AJ@ (A Atü A6  ü ( @ ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A " A!@ ("( J@  ( O@ ( Atj("E@   F  Aj!  A "AjA ANA !A!@ ( J@@ ( Atj(" Ak(A› FA E  Ak(A› FA E@ A!A (" ( " E ALr  (! @  H@ Atj( F@   Aj!  A " AH@ ("( ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AÐÈÆ"AHA�  (A È !AA³˜"A6 A6 A6 A6 Aš" Ak(AvE  (! ( ÄA ( �AN @ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A! @ ( J@  ( Atj("G@ ( �AN@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   "( AJ! ($"( "Aj! (K@  AA™ ( j :  6 @ (8Ak(AvE@ ("( " Aj!  (AvK@  AA™ ( AtjA6  6 ( "( " Aj!  (AvK@  AA™ ( AtjA6  6  ( AJ (("E@  (8ŸA " E@ ("( " Aj!  (AvK@  AA™ ( AtjA6  6 ( "( " Aj!  (AvK@  AA™ ( AtjA6  6   Ak(AÖFA E@ ("( " Aj!  (AvK@  AA™ ( AtjA6  6 ( "( " Aj!  (AvK@  AA™ ( AtjA6  6   Ak(AÖFA E@ A!@ ("( J@  ( O@ ( Atj("E@  F  Aj!  A ! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 ( "( "Aj!  (AvK@  AA™ ( AtjAA AH6  6 AN@  Ak(AÖFA E@  (Ô6  (Ø6 ("( O@ ( Atj("AH A Nr A t! @A!@ (" ( J@  ( O@  ( Atj(F@  ((" ( O@   ( Atj(rº Aj!    (, r6, Aj!  Aj!  A!@ ("( J@  ( O@ ( Atj(E@  (("( O@   ( Atj( (,rº Aj!  AA¤˜"A6 A6 A6 A6  (( š!A!@ (( J@   ÿ Aj!  ! (à! (ð@ A6à AA¤˜"A6 A6 A6 A6  (( š!A! @ (0"( J@ ( O@  ( Atj( º Aj!  A! @ (0"( J@ ( M@ ( Atj(" ("( O@ ( Atj(" E@ A8AŽ˜"A� 6 A� 6 A� 6 A6 A: A6 A6 A: A6 A:$AA¦˜!AA˜" 6  ž  6 A6 A6  6(AA¦˜!AAë˜" 6  ž  6 A6 A6  6,AA¦˜!AAë˜" 6  ž  6 A6 A6  60 A64A4AΘ"C8 C8 C8 C8 C8 C8 C8 C8 C8 A6$ C8( C8, C80 C8 C8 C8 C8 C€¿8 C8 C8 C8 C€?8 A6$ C–B8( CÍÌL=8, CzE80A°Aܘ"œ A€6 A€6  6  6 " A�"6  ž  ((A «A€’ (Â"6  ž  ("6  ž  ("( O@  ( Atj(6  ("( O@  ( j-:$ A tA A H64AäAÍ ˜"A6 A6 A6AA¦˜!AA¨ ˜" 6  ž  6 A6 A6  6 A6 A6 A: A:AA¦˜!AA€ ˜" 6  ž  6 A6 A6  6 A6 A6$ A6( C€¿8, C€¿80 C€¿84 C€?88 C€?8< C€?8@ C8D C8H C8L C€?8P A6T C€?8X A:\ A6`  6  6  ( "( O@  ( Atj("6  ž ("( M@  ( Atj("6   Ak" ("( O@ ( Atj("E@ A "6  ž  -È:   (ðG:AA¤˜"A6 A6 A6 A6 Aš!A! @ ("( J@ ( O@  ( Atj(F@ ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  A! @ ( J@ ( Atj(" ("( O@ ( Atj("E@  ©! ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (! (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 -! (,"( "Aj!  (K@  AA™ ( j :  6 -! (0"( "Aj!  (K@  AA™ ( j :  6 Aj!  ( " ("(Ô6  (Ø6 A6 C8  (6 A6 A: A6 A:h  -i:i A:j  (t"6t  ž  (x"6x  ž  (|"6|  ž A6”  (Ü"6Ü  ž A  "6à  ž  *ä8ä  (è"6è  ž  (€"6€  ž  (ˆ"6ˆ  ž  -Œ:Œ  (6ð  ( 6  (œ" (œ" (6  -:  -:  (6  ( 6  -: (¤ (¤è  ("  A�A "6T  ž  } *C€? 8X (˜! @ E@ A: C A8 C @8 A: C@8 C€?8 CÍÌÌ=8  -(: *,8 *08 -4: *88 *<8 *@8 -@A!A!A! (!AA¦˜! AAá˜" 6  ž  6 A6 A6  6˜  ž@ ( J@@ ( Atj("  Ak(A½FA E A  Ak(A¾FA "AGq  ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A G @  Ak(A¾FA E@ (È!A! œ@ (!  Ak(A½FA E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (˜!  Ak(A½FA E@ A€AÕ˜"A6 C€?8 C€?8 C€?8 C€?8 C?8 C8 C8 C8 C8$ C8( C€¿8, C @80 C€?84 C4B88 C€?8< A:@ CÍÌÌ=8D C€?8H C€?8L C€?8P A6T CÍÌÌ=8X CÍÌL>8\ C?8` CÈB8d CÍÌL?8h C8l A6p C8t C€?8x C€?8|  Š ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (( E@ (˜!Œ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6    *X�A0A”˜"A: CÍÌL=8 C€?8 C€?8 C€?8 C8 C8 C8 CÍÌL>8 C€B8$ C8( C€?8,  6ü  ž  (üž  6  ž @  (6$  (,"6(  ž *d!? *`!@ *\!A  *X8D  A8H  @8L  ?8P  (˜"6˜  ž  (ü"6ü  ž *´!? *°!@ *¬!A *¨!B *¤!C  * 8   C8¤  B8¨  A8¬  @8°  ?8´  -¸:¸ *Ð!? *Ì!@ *È!A *Ä!B *À!C  *¼8¼  C8À  B8Ä  A8È  @8Ì  ?8Ð  -Ô:Ô *X *€[@  (œ"6œ  ž *x!@ *t!? *p!A  *l8D (!A!@ ( J@ ( Atj("  Ak(A¾FA  ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A FA @  Ak(A¾FA E@ (È  Aj!  A " AA¦˜! AA˜" 6  ž  6 A6 A6  *X� A:\  6`  ž *d!@ *`!? *\!A  *X8D  A8H  ?8L  @8P (ì"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (<"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  AAú˜"A6 A6 A6 A6 Aš! (t!A!@  ( H  (ˆ( HA @  (ˆ"( O@ ( Atj("E@  ( O@ ( Atj("E@  ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A " A!@ (" ( J@  ( O@ ( Atj(" E@  F  Aj!  A "AjA ANA 6Ì  ( O@ ( Atj("@     £6Ð Aj!  A!@  (è( H  (4( HA @  (4"( O@ ( Atj("E@  (è"( O@ ( Atj("E@  ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A " A!@ ("( J@  ( O@ ( Atj("E@  F  Aj!  A "AjA ANA 6Ô  (è"( O@ ( Atj("@     £6Ø Aj!  A!@  (€( H  (P( HA @  (€"( O@ ( Atj("@   (P"( O@ ( Atj("E@  ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A "A!@ ("( J@  ( O@ ( Atj("E@   F  Aj!  A "AjA ANA 6è Aj!  A!@  (ˆ( H  (X( HA @  (ˆ"( O@ ( Atj("@   (X"( O@ ( Atj("E@  ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A "A!@ ("( J@  ( O@ ( Atj("E@   F  Aj!  A "AjA ANA 6p Aj!  A!@ (<"( J@  ( O@ ( Atj("E@ -@  ¤  (( " œA ¥ -@ (( " (ø† (‹"Ak(Av@A   (A�ÂA€Ç Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (<(  A!A! (°!@ E  ( Hq@ ( Atj(!A!@ AH@@@@@@@@@@@@@@@@@@@@@@   ($  (,  (4  (\  (d  (P  (Ì  (Ð (Ô (ü („ (¨ (¼  (”  (œ  (¼  (Ì  (è  (Ø  (ì  A "  Ak(Aš FA A @A  Aj!  A ! Aj!  @AAý˜"A6 A6 A6 A6  ( š!A!@ ( J@ At" (j(!A! A!@ AH@@@@@@@@@@@@@@@@@@@@@@   ($  (,  (4  (\  (d  (P  (Ì  (Ð (Ô (ü („ (¨ (¼  (”  (œ  (¼  (Ì  (è  (Ø  (ì  A "  Ak(Aš FA A @  Ak(Aš FA E@ (Tr! Aj!   (j 6 Aj!  ((t!A!@ ( J@A! ( Atj("(¤!A!@ ( J@ ( Atj)"~BY ~ 4 SA @  ( ~§Atj(r! Aj!   6Ô Aj!  (ü- (€( AJA @  („� („"( "ALA� AA˜"A6 A6 A6 A6 Aš! (,!A  AN!A!@  H  ( HA @ ( M@ ( Atj("AN  (€( HA   (€" ( O@ ( Atj("E@ (àA€Ä A «Â ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (A «A€ÆÂ A «ÂAÀÅAàÅ AFÂA€ÅÂAA «ÂAÐÄ ( ( A°Ä¦Â!  J AàÆ  kA «ÂAÀÆÂ  "Ak(Av@ ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( AÿÿÿÿŸ! ( "( !  AA™  J@ ( AtjA  kAtü  6 ( !A! A (ÜE  (t!@ ( J@ ( Atj("(  (¬AFA E@A ( AH  Aj!  A A Aª˜"Ÿ • !A!@  (˜( H  ( HA @  (˜"( O@ ( Atj("E@ A!A ( " ( "E ALr  (! @  H@ Atj( F@   Aj!  A "AN@  ("( H  ( O@ ( Atj(A !  ( O@ ( Atj("E@ AРA�ÂAàÁÂA -@E A ("AF  E@A (T"E A AF A  A A «ÂA°Á A «ÂA�ÁÂAA «ÂAÀÀÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6   ("( H  ( O@ ( Atj(ANA  (AFA  *8CªB^A @  ( O@ ( Atj("E@ AРA�ÂA°ÃÂCªB“ ÂAð *8“ ÂA �Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@ ( J@ ( Atj(! ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   @@@@@@@@@@ ("   A A  A  A  A  A  A  A  A  A 6  AF:i  AG:hAàÍ*!?AÜÍ*!@AØÍ*!A AÔÍ*8X  A8\  @8`  ?8d A6 AäÍ*AèÍ*AìÍ*C€?Î !R!Q!P"O8$  P8(  Q8,  R80 CA8T A6 -hE@A!A! A!@ (t"( J@  ( O@ ( Atj("E@ (Ì"@ -,@A! A! Aj!  @ ( "( "Aj!  (AvK@  AA™ ( Atj"A°¥6  At A°¥Ÿ  6 @ ( "( "Aj!  (AvK@  AA™ ( Atj"Að¦6  At A𦟠 6 (�AJ@  ù  *,"?C^} ?C 8ä *äC^@ ü A!@ (t"( J@  ( O@ ( Atj("@ ( " (Ì (ðGA E@ } (Ì"~ 5B A (°"AL A (,"  ( JA A ( AkAtj((( ((( G  ("  (LA E@ ($  (," ( AkAtj("-  ( ((  ($ An­~|!} Aj!  }7 A E ( rA ( E AGqq AGq ( AJA @ A:´ (P"6¸ ž 6¼ ž 6À ž 6Ä ž (6È (,"6Ì ž (°!AAö˜"A6 A6 A6 A6  ( ì!AAŠ ˜"A6 A6 A6 A6  ( Alš! A Aå˜"A6 A6 A6 ( "Aÿÿÿ?K@  At"A¦˜"6  6  6AA­ ˜"A6 A6 A6 A6  ( š!AA¢ ˜"A6 A6 A6 A6  ( š!A!@ ( J@   ( Atj(ƒíA! @ AH@  ( O@ ( Atj("@ Al j@@@@@@@@@@@@@@@@@@@@@   ($  (,  (4  (\  (d  (P  (Ì  (Ð (Ô (ü („ (¨ (¼  (”  (œ  (¼  (Ì  (è  (Ø  (ì  A œ Aj!   (x"( O@ ( Atj("E@ „!}  (AvO@ ( Atj }7  ( O@ ( Atj("@   (ôœ  ( O@ ( Atj("E@    Ak(A‰ FA   ( O@ ( Atj("E@  Ak(A‰ FA E@ (�" ( "A AL!  k"A AJ"At"A¦˜!AAŠ ˜" 6  ž  6  6  6 (! ( Atj! A! At!@  I@  j  j(" 6  ž Aj!  A œ Aj!  6˜ ž 6œ ž 6Ð ž 6Ô ž 6Ø ž *,8Ü - :à (6ä ((6è 6ì ž ("6ð ž AAø˜"A: A6 A� 6 A6 A:  6  ž  "-E@ (8 ("�AH@ (8( AäH@ (8"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  )@B|7@ A6ÌA (""6Ì ž  ((x!A!@ ( J@ ( Atj((¬" (-;A @A  Aj!  A :è )XB|7X A:¸ " ("Ak(Av (( ŸA "  Ak(A¼FA A   Ak(A¼FA E@ A "6°  žA!@ (¨"( J@ ( O@ ( Atj("@   š Aj!  (Ð"@ (( "*!? *!@ *8 @8 ?8 *!? *!@ * 8 @8 ?8 * !? *!@ *8 @8 ?8 *(!? ($6$ ?8( *,8, *080  (( ²"6Ð  ž  (( ²"6Ô  ž +ÀDb@ Î A ­ !}| (Ì! +ØDd +àDdA "| +è +€"'Dd| 'Dð? !) (x (|AGA ! | +Ø | (œ(¸ )£D !' | +à | (œ( ¸ )£D "(Dd 'DdqE@ A:P (ÌA -¬ E@ ' ( )Ð (Ð"E (Ì"Er@ A:P (ð"E@ ²"6ð ž Í"@  *� *” *˜ *œ *  *¤ ' (£¶ ‘ *! *!  *8  8  8 *! *!  * 8  8  8 * ! *!  *8  8  8 *(!  ($6$  8(  *,8,  *080 +À#¢D€f@£¶""C\@ * *“! * *“! * * “!AüÍ*A€Î*A„Î* "³! !!"!  " ”  ” " ”’ " ”’“"!”   ”  ”’  ”’"& &’"&”’  ”  ”“  ’"”’  !”  &”’  ”  ”“ ”’  !”  &”’  ”  ”“ ”’!%!$"#! *! *!  * ’8   $’8   %’8 * ! *! *!AüÍ*A€Î*A„Î* "³! !!"!   " ”  ” " ”’ " ”’“""”   ”  ”’  ”’"! !’"!”’  ”  ”“  ’"”’  "”  !”’  ”  ”“ ”’  "”  !”’  ”  ”“ ”’!%!$"#8  $8  %8 "  ' (£Dð? (Dd"¶µ!!!!!!!!! ! ! ! ! !!"           * * * * * * * * * »!!!!!!!!! ! ! ! ! !!"          ã!!!!!!!!! ! ! ! ! !!"8 8 8 8 8 8 8 8 8 8$ 8( 8, 80 84 88 8< '9@ (9H 'Dd q:P ¶ (¼"E@ (° -ü (ø ÄA E@ A:ü 6ø ž (( Ÿ"  Ak(A¼FA A   Ak(A¼FA E@ A "6ô ž (ô"  (° —} (Ô"E (Ð"E (Ì"Err@ *! *!  *8  8  8 *! *!  * 8  8  8 * ! *!  *8  8  8 *(!  ($6$  8(  *,8,  *080 +À#¢D€f@£¶"C\@ * *“! * *“! * * “!AüÍ*A€Î*A„Î* ³!! ! " !  " ”  ” " ”’ " ”’“"”   ”  ”’  ”’" ’"”’ ” ”“  ’"”’  ” ”’ ”  ”“ ”’  ” ”’  ” ”“ ”’!!"! *! *!  * ’8   ’8   ’8 * ! *! *!AüÍ*A€Î*A„Î* ³!! ! " !   " ”  ” " ”’ " ”’“"”   ”  ”’  ”’" ’"”’ ” ”“  ’"”’  ” ”’ ”  ”“ ”’  ” ”’  ” ”“ ”’!!"8  8  8 *! *! (( " *8 8 8 *! *! * 8 8 8 * ! *! *8 8 8 *(! ($6$ 8( *,8, *080 ( (¨— (L"( AJ@  ( ­6H ±q}| („! )ˆ )�Q@  )�7ˆ (œ"( ! AAA™ AJ@ (A Atü A6 @ (¨"( J@A A ( Atj("Ak("A× F AÌ Fr AÈ Fr A¯ Fr A© Fr A‘ Fr  A¿ F@A! A ( " (( A  (!@ ( J@ ( Atj("(AN (" ( "( O@ ( Atj(A " (8"E@ -0A @A  Aj!  A A E  (T"( ! AAA™ AJ@ (A Atü A6 (!A!@ ( J@ ( Atj("(AN (" ( "( O@ ( Atj(A "@ (8" E@ A!  ((!@ ( J@@ At" (j(("A G AGqE  („(j(" E A! ( J ( Atj(FA Aj!  A E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Aj!  A!@ ( J@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A  A˜ F@ ((( AJ  ! Aj!   (AFA A -° @ A6 A:  *8  *8  A! ( AJ@ (((" Ak(AÚ FA @ -,E@ (((Ä ((G@ ˆ ‰ A (( AJ! ) B|7  (˜! (Ì! * (œ"*”! * *”! ! (´"A A -¸!A! " A6 A:  8  8@ E (! C` C`q  (³]A   (³]A E E@ ( !  ( (   ( "ð *»9X *»9` *»9h * »9p *»9x *»9€ A: *! *! *8 8 Œ8 *! *! * 8 8$ Œ8( * *“"C€?  ” * *“" ”’ * *“" ”’‘•"”8,  ”80  ”Œ84 ( G@ 6 ž (Aj" 6 ((t! (ˆ!@ ( J@ ( Atj("( " ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A A @ ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ ( 6 @ (´" ( NA  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (!@ @  6 ( !   ("( ( ( Atj(("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (" 6 ("( ( (("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (!@ @  6 ( !  Aj!  AØk! ("( Ak!@ AN@  ( Atj("(J@ ( (¼ ( "AL@ ( Ak"Atj"(! A6  6  G@  6 ( Atj" 6  ( At Ÿ Ak!  ( "( Ak!@ AN@  ( Atj("(J@ ("! ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ @ (" F@ ( " ( ( » ( (¼   @ @ ( F@ ( "6 ž ( !  ( "AL@ ( Ak"Atj"(! A6  6  G@  6 ( Atj" 6  ( At Ÿ Ak!  ("( Ak!@ AN@  ( Atj("(J@ ( ( ¼ ( "AL@ ( Ak"Atj"(! A6  6  G@  6 ( Atj" 6  ( At Ÿ Ak!  (t!A!@ ( J@A!@ ( Atj("( " (¬AFA A (Ì (ðG  (ˆ"( N  (Œ! ( Atj(" "!A! @ @A -µ  @ -d@A -¨E A! "( !  E  Fr E Að´‹" (AFA  -A E A " *ÐC^A *ØC^ E   (Ø"( H@  ( O@ ( j-  ( "* * *AÖ E (Ì" -h (A  -,A A A (´" (¸AJA  (A  (A E"  Ak(A¶FA A @ ("( ( ("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A @ ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ (" (6  A$A‹ ˜!AÌA• ˜"²  6 A6 A6 A6 A6 A6 A6 A6 A:  6  (6  (( 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (  û  "(  Ak(A¶FA E@ A€É*A„É*AˆÉ*AŒÉ*A�É*A”É*A˜É*AœÉ*A É*A¤É*A¨É*A¬É*A°É*A´É*A¸É*A¼É*åAJ@ ! @ * *  *0 *@ *!' * !( *!! *!" *!& *$!% *(! *,!# *4! *8! *C^} :» ·Dàÿï@£ >»¢ ¶ : !> Aj"Av  (AkJr@ ( j/! A ;“"?C^} ;» ·Dàÿï@£ ?»¢ ¶ ; !? Aj"Av  (AkJr@ ( j/! B <“"@C^} <» ·Dàÿï@£ @»¢ ¶ < !@ Aj"Av  (AkJr@ ( j/! Aj"Av  (AkJr@ ( j.Á A j"Av  (AkJr@ ( j.ÁÌ !I!H"G!C A j"Av  (AkJr@ ( j.Á Aj"Av  (AkJr@ ( j.ÁÌ !L!K"J!D (! Aj"Av  (AkJr@ ( j*!E Aj"Av  (AkJr@ ( j*!F Aj"Av  (AkJr@ ( j(!( Aj"Av  (AkJr@ ( j*!S ( ")Aj"Aɤ’ K@ A8l" (" K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( )A8lj" >8  ?8  @8  C8  H8  I8  E8  F8  (6  D8$  K8(  L8,  }C€¿C AFC€? 80  S84 6 Aj!  @A A˜"A6 A6 A6 ("Ak(" ( k"k k (" A€€€€xF"I  Kr@  6   j6  6 !AAØ" AÀA¦˜"6 6 AÀ6 A6 A!@  J@ At"Av  (AkJr@ ( j*!: AtAj"Av  (AkJr@ ( j*!; ( " Aj"Aÿÿÿ?K@ At" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( Atj" :8  ;8 6 Aj!   6  ž AA¬˜"A: A6 A� 6 A6 A:  6  ž   AA¬˜"A: A6 A� 6 A6  6  ž  ! @#"E@AÐAŽ˜"õ „"$  (†   AA¬˜"A: A6 A� 6 A6  6  ž  !#"E@AÐAŽ˜"õ „"$  (†   AA¬˜"A: A6 A� 6 A6  6  ž  "-E@ ¥  ("(! ("( GA   ( GA A @ A°Å  '   Í "-E@ ¥   (" (AvG@ (Av@« († A�ÆÂ  AA¦˜!AAý˜" 6  ž  6 A6 A6  ¬"UB8~ TB†| UB†B |!T  T ( (k ( k¬U T ( (k ( k¬R @ AðÆÂ ( (k ( kA «ÂA ç   T§�!A A˜" A6 A6 A6 ("" Ak(" ( k"k  k (" A€€€€xF"I  Kr@ 6  j6 6A! Aɤ’ K@ AAÁ˜"A  AMA8l"A¦˜" 6  6  6  6 A! @  J@ Av  (AkJr@ Aj"Av  (AkJr@ (" j*!:  j*!; Aj"Av  (AkJr@ ( j*!< A j"Av  (AkJr@ ( j*!= Aj"Av  (AkJr@ ( j*!A Aj"Av  (AkJr@ ( j*!B Aj"Av  (AkJr@ ( j*!> Aj"Av  (AkJr@ ( j*!? A j"Av  (AkJr@ ( j(! A$j"Av  (AkJr@ ( j*!@ A(j"Av  (AkJr@ ( j*!C A,j"Av  (AkJr@ ( j*!D A0j"Av  (AkJr@ ( j*!E A4j"Av  (AkJr@ ( j*!F ( O@ ( A8lj" :8  ;8  <8  =8  A8  B8  >8  ?8  6  @8$  C8(  D8,  E80  F84 A8j! Aj!  AAý˜"A6 A6 A6 A6  š!A! @ H@ Av  (AkJr@ ( j(" O@ AÀ£Â A «ÂAÀÇ A ªÂA�Á A «Â  ( Atj 6 Aj! Aj!  @AAØ"A  AMAt"A¦˜" 6  6  6  6 A!@  J@ Av  (AkJr@ ( j*!: Aj" Av (AkJr@ ( j*!;  ( O@ ( Atj" :8 ;8 Aj! Aj!  ! @AAý˜"A6 A6 A6 A6  š!A!@  H@ At" (j  (j(6 Aj!  !A! @ ( J@ ( O@ ( Atj(! AAý˜"A6 A6 A6 A6  š!A!@  H@ ( Atj (  jAtj(6 Aj!  ( O@ ( Atj("@  6  ž  j! Aj!  ! (Av@« (†    A »  !A!@  "( " H@  O@ "( A lj" /A ¬ 5 5|T  Aj!  A E@ AðÇ  A!@ ( J@ ( Atj(!  ( O@ ( Atj(! E@  j»" 6 ž j!  (! A! @ ( "H@ O@ ( A lj"/A ¬ 5 5|T  Aj!  A @ Aj!  A€É AjA «ÂAÀÈ    "¯! @  6  ž ( AJ@  6,  ž Aq@A! ( (k ( k¬ ¬B~S@ -E@ A: AðÊ6 AðÊž  ( (k6 A  AA‡ ˜"AAAýA¤6 AAA.A¤6AAý˜"A6 A6 A6 A6   š"6  ž@  J@ (! �! ( Atj 6 Aj!  AA.˜"A6 A6 A6 A6   Atš"6  žA!@  AtH@ �¾!: -A :CG€?_ :C`q @ (( Atj :8 Aj! A€Ì :¦ÂAÀËÂ! -E@ A:  6  ž  ( (k6 A  A  - "E   ("6  ž  ("6  ž Aq@A!  A lAj�! AAÀ˜"A6 A6 A6 A6 Aš!@@  H -A A� A�"E   �!A� -  ( (Ò ! AŠ (! (  ( " Aj6 j! (O@ ( j-A ! -E AKq@AÀÉ A ªÂ! -E@ A:  6  ž  ( (k6 - ( (k ( k¬ ¬B ~BB AF~S@AÀÊ ÂA�ÊÂ! -E@ A:  6  ž  ( (k6  AA.˜"A6 A6 A6 A6  Alš! A!@  AlH@ �¾!: ( Atj :8 Aj!  A! AF@AA.˜"A6 A6 A6 A6  Alš!A! @ AlH@ �¾!: ( Atj :8 Aj!  A A¾˜" A6 A6 A6 6 6 6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  A  -"E   6  ž AA¬ ˜"A6 A: AAA­ A¤6 A6 A� 6  6  Aq:  6  ž  %6  %ž  $6  $žA8A® ˜"µ  #6  #ž  6  ž  6  ž  M8  N8$  O8(  P8,  Q80  R84 -A ( ( (kG @ A°¹Â ( (k ( kA «ÂA°œÂ! -E@ A:  6  ž  ( (k6 @ -@ AðÛ (Â!AA‚˜"A: A6 A� 6 A6  6  AA‚˜"A: A6 A� 6 A6 A:  6  ž   AðÛ ( !AA‚˜"A: A6 A� 6 A6  6  ž  "-E@ �  ("6P ž ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  -E AFqA! (( ! @@  H -A ("( M@ ( Atj("E@ A AŠ (! (  ( "Aj6 j!  (O@ ( j-A "Apq -@A�º A «ÂAà¼Â! -E@ A:  6  ž  ( (k6  Aq@AAÁ ˜" AAAÓA¤6 AÔ�! A!@  H -A E@AAÀ ˜"¢ A� A�"E   �!A� -  ( (Ò "6  ž  �6 -A (AHA ( N @A ¾ (ÂAнÂ! -E@ A:  6  ž  ( (k6   "6  ž   "6  ž ("( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!   6\  ž Aq@A A ˜"£  �6 AÄ�! -E AÿJq@A€¿ A «ÂAÀ¾ÂAÿA «Â! -E@ A:  6  ž  ( (k6 A!@  H -A E@ (! �! ( " Aj" (AvK@  AA™ ( Atj 6  6 Aj!  A! @ J -A E@ (! Á !9!8!7!6!5!4!3!2!1!0!/!.!-!,!+"*!: ( "Aj" AÿÿÿK@ At" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" :8  +8  ,8  -8  .8  /8  08  18  28  38$  48(  58,  680  784  888  98<  6 Aj!   6`  ž Aq@ A� A�"E   �!A� -  ( (Ò "6d  ž Aq@ A�!A!@  H -A E@ (h!A� A�"E   �!A� -  ( (Ò ! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (l! �¾!: ( "Aj" (AvK@  AA™ ( Atj :8  6 Aj!  Aj!  A!@@  H -A " ("( O@ ( Atj("E@ (`"@ (" H ANq  ("( O@ ( Atj("E@ (\A "E@A�º A «ÂA°¿Â! -E@ A:  6  ž  ( (k6  A!@ ("( J@  ( O@ ( Atj(AHA  ("( O@ ( Atj( (( N @A�º A «ÂA€À  ("( O@ ( Atj(A «ÂA�Á (( A «Â! -E@ A:  6  ž  ( (k6  Aj!  Aj!  A�!A! @@ H -A AAÄ ˜"A� 6 A6 A6 A: A: AAAÅ A¤6 A� A�"E   �!A� -  ( (Ò "6  ž  �6  �6 -A (ALA (AH @A€Á (ÂAÀÀÂ! -E@ A:  6  ž  ( (k6 A AŠ (! (  ( "Aj6 j!  (O@ ( j-A "A|q -@A€Á (ÂA ƒÂ! -E@ A:  6  ž  ( (k6  Aq:  AqAG: A�!AA¤˜"A6 A6 A6 A6 Aš!A!@  H -A E@A �"AH  Nr -@A€Á (ÂA Á A «ÂA�Á A «Â! -E@ A:  6  ž  ( (k6 ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  - A€Á (Â!A!AAú ˜"A6 A: AAAA¤6 AAAû A¤6  6 A:AAŽ˜"A6 A6 A6 A6 Aš! AA¤˜"A6 A6 A6 A6 Aš! AA�˜"A6 A6 A6 A6 Aš! A�!@  H -A E@  A Â A «Â š" @ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A -A  ™ E   "E ( ( G@A€Á (ÂA°¹Â ( A «ÂAðÁ ( A «ÂAÐÁÂ! -E@ A:  6  ž  ( (k6  A!@ ( J@ (!AAà ˜"A6 A6  ( O@ ( Atj(!  ( O@ ( Atj(" E@  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  (,"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  -EA E  -A ( ( (kG @ A°¹Â ( (k ( kA «ÂA°œÂ! -E@ A:  6  ž  ( (k6 -@ AðÛ (Â!AA‚ ˜"A: A6 A� 6 A6  6  ž   AA‚ ˜"A: A6 A� 6 A6 A:  6  ž   AðÛ ( !AA‚ ˜"A: A6 A� 6 A6  6  ž  "-E@   (Ak(Av(!  (! AF@ (! AAç ˜"A6 A6 A6 A6 A: A� 6  6  ("A AL"A AN6  (" ("  J6 �!@ -@ AðÛ (Â!  A (" AJ!A Aߘ" ("6  ž  ( j6    H k6A8A– ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A6 A6 A6 A6$ A6( A6, A:0 A:1 A64 AF@ Ç"-E@ Að� (Â!   ("6  ž  ((6  ((6  AF@ þ "-E@ A€›Â (Â!   ("6  ž  ((6  ((6  AF@ ! !A! �!@ - E AKr@ A�£Â A ªÂAà¢ÂAA ªÂA �  AAý˜"A6 A6 A6 A6 Aš!AA¤˜"A6 A6 A6 A6 Aš!AA¤˜"A6 A6 A6 A6 Aš! A lAj! @  K@ �! �! �! -  AO@ A ¤Â A ªÂAÀ£Â   ( " Ak" M@  ( Atj(MA @ Aà¤Â  A A ­"T ¬S Aq 4 ­ T|TA @ Að¬Â #É"Ak(AvO@  Atj("E@ ÂAà¥Â  ( " Aj" (AvK@  AA™ ( Atj 6  6 ( " Aj" (AvK@  AA™ ( Atj 6  6 ( " Aj" (AvK@  AA™ ( Atj 6  6  j! Aj!  (G@ A°¹Â ( kA «ÂA §Â  ã!AA°˜"A6 A6 A6 A6 Aš!@ ( J@ ( Atj("" ( O@ ( Atj(! (!  ( O@ ( Atj(!  ( O@  ( O@ At" (j(  (j(j!A Aߘ" (" 6  ž  AH  j"A AJ    J " (j6  AH  j"A AJ    J "   J k6 A�ÿÂ#É"Ak(Av M@  Atj("E@ ÂAð§Â! @ E@ Ç"-E@ Að� (   ("6  ž  A!A (AÌ·(H @AÌ·( J@  (O@ A ( j- Aзj-G  Aj!  A E@ AðÛÂAШŸ  ("AÐH@Aà© A «ÂA°©Â! AðÛ Ÿ  (AM@ (AM@ (A M@ (A M@  ("- - Atr -Atr -Atr!AA¦™"A�ª-:AAë˜" 6 ž 6 A6 A6 !A!@ A H@@@@@@@@@@@   A% A…  A‰  A‘  A“  A—  A�  A¥  A«  A F@ ( AJ@ AA©   @@@@@@@@@@   A+ A†  AŠ  A’  A”  A˜  Až  A¦  A¬  A F@ ( AJ@ AA©   Aj!  A " AH@A°ª A ªÂ! AðÛ Ÿ  (AM@ (AM@ (AM@ (AM@ ("- -Atr -Atr -Atr"AG@A°« A ªÂAðªÂ! AðÛ Ÿ  (AM@ (AM@ (AM@ (AM@ ("- -Atr -Atr -Atr! (AM@ (AM@ (AM@ (AM@ ("- -Atr -Atr -Atr"E Er@Aà« A ªÂA°ü A ªÂA �Â! AðÛ Ÿ  A€€K A€€Kr@ A ªA°ü A ªÂAЬÂA€€A ªÂA ¬Â! AðÛ Ÿ  (AM@ (AM@ (AM@ (AM@ ("- -Atr -Atr -Atr@ (AM@ (AM@ (AM@ (AM@ A€­ ("- -Atr -Atr -AtrA ªÂA �Â! AðÛ Ÿ  (A#M@ (A"M@ (A M@ (A!M@ ("- -!Atr -"Atr -#Atr"AK@Að­ A ªÂAЭÂ! AðÛ Ÿ  (A'M@ (A&M@ (A$M@ (A%M@ ("-$ -%Atr -&Atr -'Atr"AG@ A ªA°®Â! AðÛ Ÿ  (A+M@ (A*M@ (A(M@ (A)M@ ("-( -)Atr -*Atr -+Atr!A!    I!@ AK@ Av! Aj!   K@ A ªAÀ¯Â A ªÂA°ü A ªÂA�¯Â A «ÂA �Â! AðÛ Ÿ  (A/M@ (A.M@ (A,M@ (A-M@ ("-, --Atr -.Atr -/Atr"AGA @AÀ° A ªÂAð¯Â! AðÛ Ÿ  A "AlAÐj J@ AðÛÂA ±ÂŸ  (A;M@ (A:M@ (A8M@ (A9M@ ("-8 -9Atr -:Atr -;Atr!A! (A?M@ (A>M@ (AAtr -?Atr"@ ¬ ­ ­|T@ AðÛÂAà±ÂŸ   j!@ Aj L@ Aj" (O@ Aj" (O@  (O@ Aj" (O@ ¬  ("j-At  j-r  j-Atr  j-Atr"­ ¬B||T@ AðÛÂAÀ²ÂŸ  Aj" j! !@  H  (O@ ( j-A @ Aj!   HA  kA¼³(AvG A! @A¼³(Av J@  j" (O@ A A¼³(AvOA AtAÀ³j/ ( j-G  Aj!  A A @ Aj" H  (O@ ( j-A1FA !  AjA|qj!  AA·˜" A6 A6 A6 A: A: AAA¸A¤6 A: A: A: 6 6 6 ( E@ (-: : !A! @ H@ AlAÐj" "Aj" (O@ Aj" (O@  (O@ Aj" (O@  ("j-At  j-r  j-Atr  j-Atr­ Aj"Aj" "(O@ Aj" (O@  (O@ Aj" (O@  ("j-At  j-r  j-Atr  j-Atr­B †„!U Aj"Aj" (O@ Aj" (O@  (O@ Aj" (O@  ("j-At  j-r  j-Atr  j-Atr­ Aj"Aj" (O@ Aj" (O@  (O@ Aj" (O@  ("j-At  j-r  j-Atr  j-Atr­B †„!T Aj"Aj" (O@ Aj" (O@  (O@ Aj" (O@  ("j-At  j-r  j-Atr j-Atr­ Aj"Aj" (O@ Aj" (O@  (O@ Aj" (O@  ("j-At  j-r  j-Atr j-Atr­B †„!VA E A AF A AF A !A E A AF A AF A ! VA E A AF AFr A  jAk n  jAk nll"­R@A°´ A «ÂA�‡Â VA ¬ÂAð³Â A ªÂA°ü A ªÂAÀ… A H ANq #�"Ak(AvO@  Atj("E@ A�° A «Â ÂA�“ A ªÂ! AðÛ Ÿ  T ¬"W U}V U WVr@A°´ A «ÂAдÂ! AðÛ Ÿ  (! T U|§!A Aߘ" ("6  ž  U§"AH j"A AJ  J " (j6  AH j" A AJ  J "  J k6  ­ TBˆ~B@}V@A°´ A «ÂAÀµÂ TA ¬ÂAð‡Â A ªÂA çÂ! AðÛ Ÿ  ! A Aߘ"A6 A6 A6 "AüÿÿÿK@  A¦˜"6  6  6#o( AJ@#ýB|$ý#o"( "AL@ ( Ak"Atj"(! A6  6   #þB|$þAøAš˜"ö  !A!A!@@ (\AG@   ( A  AÌE@ (l!   (p"j!  (tj! A (t A (\AG E   FAÀ¶ A «ÂA çÂA�¦ !   G@A�· A «ÂAà’ A «Â!  AA¬˜"A: A6 A� 6 A6 A:  6  ž   AA¬˜"A: A6 A� 6 A6  6  ž  ! Ñ -E@A°´ A «ÂA€¶Â (Â! AðÛ Ÿ  ( T VR@A°´ A «ÂA µÂ TA ¬ÂAà’ VA ¬Â! AðÛ Ÿ   ! (!A A¶˜"A6 A6 A6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A Av AM!A Av AM! Aj!  AA„˜"A: A6 A� 6 A6 A:  6  ž  "-E@ ž  A ("("AF AFr AFr A AF AFr A AF AFr AFr A A AGG@ A�‡Â ("A H ANq #�"Ak(AvO@  Atj("E@ A�° A «Â ÂA°¨Â #É"Ak(AvO@  Atj("E@ ÂA�¨Â  ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( AJ@  6$  ž ("@  (6  (6  ( AJ@ (("E@  (6 ( E@ (("E@  (6 AA� ˜"A: A6 A� 6 A6 A:  6  ž   AðÛ ( !AA� ˜"A: A6 A� 6 A6  6  ž   Aà¡Â A ªÂA �Â!  AA� ˜"A: A6 A� 6 A6 A:  6  ž   AA� ˜"A: A6 A� 6 A6  6  ž  "-E  (( ! (" Ak(Av@ A�Ò Â! 6  ž  6  ž Aà�AÅ"AN@   AjAÿÿÿÿÈ"6  ž ! AF@  µ "-E@ (!  A8A… ˜"™  6  6  ž (( ! ( Ak(Av A�Ò  ó"-E@ ë (! AF@A!AAç ˜"A6 A6 A6 A6 A: A� 6  6  ("A AL"A AN6  (" ("  J6  ôAA� ˜""A� 6 A� 6 A� 6 A� 6 A6 A6 �E@   ›  AAï˜"ï ( " �6  �6  �6  �AG:  �AG:  �AG:  �AG:  �6  �6  �6  �6  �6  �6$  �6( �¾!: �¾!; �¾!<  :8,  ;80  <84  �68  �6@ ( �6 ( �6 A �! @@  H -A �! �! �!  A�"�!@ ( AjA|q" ( (kJ@ -E@ A: A�Ý6 A�Ýž  ( (k6   6 - AF@ þ "-E@ AðœÂ A «ÂA€›Â (Â!AAƒ˜"A: A6 A� 6 A6  6  ž   (( GA (( G @AÀå A «ÂA��Â! -E@ A:  6  ž  ( (k6 (! (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  AF@ ¬ ­ ­~B ~R@AÀå A «ÂAÐ� A ªÂA°ü A ªÂ! -E@ A:  6  ž  ( (k6  A Aç˜"A6 A6 A6  lAl"AÿÿÿÿK@  At"A¦˜" 6  6  6A A˜"A6 A6 A6 (" " Ak(" ( k" k k (" A€€€€xF"I Kr@  6  j6  6A!@ (Av J@ At" (j Av (AkJr@ ( j*8 Aj!  ((!AAæ˜"A6 A6 A6 A� 6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A�ž A ªÂA �Â! -E@ A:  6  ž  ( (k6 Aj!  A�!A!@  J -A E@AìAì˜"ð A� A�"E   �!A� -  ( (Ò "6  ž  �6  �6  �6  �6 A� A�"E   �!A� -  ( (Ò "6  ž  Á !9!8!7!6!5!4!3!2!1!0!/!.!-!,!+"*8  +8  ,8  -8$  .8(  /8,  080  184  288  38<  48@  58D  68H  78L  88P  98T  ÷"6X  ž  ø"6\  ž  ÷"6`  ž ("( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  A �! A!@  H@ ((! �¾!: �¾!; �¾!< ( " Aj"AÕªÕ*K@ A l" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj" :8  ;8  <8  6 Aj!  (" ø"6  ž  6  ž   › "-E  (! AF@ (@  Í "-E  (Î !A4Až ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 C8 C8 C8 C8$ C8( C8, A60  AF@ Ï "-E AA˜ ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 ("6 ž A F@AAç ˜"A6 A6 A6 A6 A: A� 6  6  ("A AL"A AN6  (" ("  J6  ô �!A� A�"E   �!A� -  ( (Ò !AAŸ ˜"A� 6 A� 6 A� 6 A� 6 A6 A� 6 A6  A "6  ž -A ( ( (kG @ A°¹Â ( (k ( kA «ÂA°œÂ! -E@ A:  6  ž  ( (k6 @ -@ AðÛ (Â!AA� ˜"A: A6 A� 6 A6  6  AA� ˜"A: A6 A� 6 A6 A:  6  ž -E  (! A F@AAç ˜"A6 A6 A6 A6 A: A� 6  6  ("A AL"A AN6  (" ("  J6 �! -E AGq@ A€œÂ A ªÂAà›ÂAA ªÂ! -E@ A:  6  ž  ( (k6 AàAš ˜"A� 6 A� 6 A� 6 A� 6 A6 AàÞ 6 A6 Dð¿9 A6( A6, D90 A68 D9@ Dð¿9H Dð¿9P A:X A� 6\  �6  �6(  �6,  Ž70  Ž7  �68  Ž7@  Ž7H  �Aq:X A� A�"E   �!A� -  ( (Ò "6  ž A� A�"E   �!A� -  ( (Ò "6\  ž -A ( ( (kG @ A°¹Â ( (k ( kA «ÂA°œÂ! -E@ A:  6  ž  ( (k6 @ -@ AðÛ (Â!AA…˜"A: A6 A� 6 A6  6  AA…˜"A: A6 A� 6 A6 A:  6  ž -E (! A F@ (@  Ï "-E (!A(A• ˜"æ ( (A¬A(A• ˜"çA Aç˜"A6 A6 A6 A°6A Aä˜"A6 A6 A6 A°6 A:$ A:%  AF ¼ E@ A ›Â!AA� ˜"A: A6 A� 6 A6  6  ž   (" ( k" ( j£ " Ak(Ò!A Aˆ ˜"A� 6 A� 6 A� 6 A� 6 A6 A� 6AØAÁ˜"ì  6 A� 6  6  ž   Ä "6  ž š "-E (AÀê (("AA AðÛ ÂAÐëÂAàšÂ#@îâ ! AAƒ ˜"A: A6 A� 6 A6 A:  6  ž  (!AÀê (("AA AðÛ ÂAÐë Â#@îâ AÀê (("AA AðÛ ÂAÐë Â#@îâ ƒ -@A A®˜"A: A: A� 6 A6 A: A:  A:AA˜"A6 A6 A6 A6 Aš! AAИ"A6 A6 A6 A6 Aš! (($!@ ( J@@ ( Atj("(A G ( ž"-E@ E@ ä!  (! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  ("AL@A! @ ALAÀíAÀíAà Â A «Â !A!@ ( J@#! ( Atj("Ak(Av A�Ò   ! ( º !A (D A! A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò (D A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ ((A "A!  ( O@ ( Atj("E@ A ( (G @ ( J@  (O@ A ( j- ( j-G  Aj!  A A E  Aj!  A @ Aj!  A! (" ALAÀíAÀíAà Â A «Â "6  ž@ ("( J@  ( O@ ( Atj("@  6  ž Aj!  A!@ ( J@ (( ! ( Atj("Ak(Av@ A�Ò Â! (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (,!  ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (0! #" ( º ! (D A! A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò (D A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ ((A ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  ( O@ ( Atj("E@ #  š Aj!   A A®˜"A: A: A� 6 A6 A: A:   ((( Ak!@ AN@  (("( O@ ( Atj("@#!  (,"( O@ ( Atj("E@ !  (0"( O@ ( Atj(! ( º ! (D  ¥Ò (D  ¥Ò"E@  ((GA E@ @   š (D ï Ak!  (("( ! AAA™ AJ@ (A Atü A6 (,"( ! AAA™ AJ@ (A Atü A6 (0"( ! AAA™ AJ@ (A Atü A6 A: ÎA Aý ˜"A: AAAýA¤6 A å6 A: - -A @ ("( "Aj!  (AvK@  AA™ ( AtjA6  6 - -A @ ("( "Aj!  (AvK@  AA™ ( AtjA6  6 - -A @ ("( "Aj!  (AvK@  AA™ ( AtjA6  6  ("( AJ ( E@ (("#É"Ak(AvO@  Atj("E@ A°­A å - "6  ž ("( "Aj!  (AvK@ AA™ ( AtjA6 6 ("( "Aj!  (AvK@ AA™ ( AtjA6 6 A!@ AM@A!A ("( "E ALr  (!@  H@  Atj( F@   Aj!  A AH@ ("( "Aj!  (AvK@  AA™ ( Atj 6  6 Aj!   ÜAA¤˜"A6 A6 A6 A6 Aš! -@A!@ ( J@ ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!   @ ("( J@  ( O@  ( Atj(!A!A ( "E ALr  (!@  H@  Atj( F@   Aj!  A "AN@ ( "Aj" (AvK@  AA™ ( Atj 6  6  Aj!   ” |  (, (( "E@ ((A (,AG ! (!AA† ˜"D9 A6 A: A: A: ! AA˜"A6 A6 A6 A6 Aš (4 ! A€ˆÍ! Dð¿! @ ( J@@ ( Atj("Aà�AÅ"AN A È  É"A€’AÅ"AL A ÈÉ!A!@#ÁAk(Av J@A#Á Atj( Ä  Aj!  A E  AjAÿÿÿÿÈÉ"Ak(AvAO AÀ�AÇ AÀ�#ÃA A AàŽAÇ AàŽ#ÃA A @ A Ak(AvAkÈ! A ÎÄA A ÎAðÎÂÄ @ ¥ "- +DfA  +" ¡DbA @Aðƒ ÂAàç ÂA€ƒÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A ÎÄ@  +9 +!  A�ÏÄ@A!A!@#ïAk(Av J@  #ï Atj( Ä! Aj!  AH@Aðƒ ÂAàç ÂA „Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6   6  Aà¯ÄA AàûÄ E@Aðƒ ÂAàç ÂAà„Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  AÐÏÄ@  Aà¯Ä:  AÐÐÄ@  Aà¯Ä:  Aà¯Ä: Aj!  DfA @  9 ! @ 6, 6( ž  I ("E@AAº ˜"AAA» A¤6 ( "  ( 6 ž  Í}|A ("Ak(AvE   (Ä  +aA   + aA @ (Ak(AvAG  ("6 ž 9 9 ( Aj6  (" D0À D$À " Ak(Av·D@¢f A� AðÛAÅ"AH A� A Aj"ÈA€ÃÂ"Ak(Av·D@¢ eE   AÿÿÿÿÈ!A!@  Ak(Av" H Ak(Avj k·D@¢ eA E@ Aj!    AÿÿÿÿÈ "6 ž (!AA¿˜A A¿˜" Ak(Av"E  D À  ·D@¢D$@ "¡! Ak(AvE@  9 Ak(AvAM@ D @9 Ak(AvAM@  9 Ak(AvAM@ D3@9  !A!@ AH@  Ak(AvO@  Atj+! ("Ak(Av M@  Atj 9 Aj!  A (Ak(AvE #A�¥ÁkAI@ #Ak" $ (,"E (("Er@A(A£˜"ÕA(A£˜"Õ 6( ž 6, žA(A«˜"A6 A6 A6 A€€€x6 C€?8 A6 A6 C8 A6 A6$ A6  (Ar6 ("@ (A* A˜¨À˜{6  (Ar6 ("@ (A˜¨À˜{& 60 žA(A«˜"A6 A6 A6 A€€€x6 C€?8 A6 A6 C8 A6 A6$ A6  (Ar6 ("@ (A* CÀ?8  (Ar6 ("@ (CÀ?% A6  (Ar6 ("@ (A( A6  (Ar6 ("@ (A) A6  (Ar6 ("@ (A& 64 ž Í Í ("Ak(AvE@ +! ("Ak(AvAM@ +! ("Ak(AvAM@ ("Ak(AvAM@ +"Dà?¢ +"Dà?¢¤D@¤"D¯OQ¬á?¢!    ¶ ¶"Ì Ë     ¡¶ Ê ("( "Aj!  (K@  AA™ ( jA:  6 A:$  (Aj6 Ë    " ¡  ¶ ¶Ê  ¶"   " ¡¶Ê   ¶Ê ("( "Aj!  (K@  AA™ ( jA:  6 A:$  (Aj6 Ë    ¶    ¡¶Ê ("( "Aj!  (K@  AA™ ( jA:  6 A:$  (Aj6 Ë    "¶   " ¡  ¶Ê   ¡"  ¶ ¶"Ê  ¶ Ê ("( "Aj!  (K@  AA™ ( jA:  6 A:$  (Aj6 Ë    ¶   ¶Ê ("( "Aj!  (K@  AA™ ( jA:  6 A:$  (Aj6 Ë     ¡¶   "¶Ê  ¶"  ¡"  ¶Ê   ¶Ê ("( "Aj!  (K@  AA™ ( jA:  6 A:$  (Aj6 Ë  ¶   ¶Ê ("( "Aj!  (K@  AA™ ( jA:  6 A:$  (Aj6 Ë  ¶    ¡¶Ê    " ¡¶ ¶"Ê  ¶ Ê ("( "Aj!  (K@  AA™ ( jA:  6 A:$  (Aj6 Î -@ ("( "Aj!  (K@  AA™ ( jA:  6 A: A:$  (Aj6 (!A!@ Ak(Av" J@  MA  Atj/ "A k  AúL AáNq"AÚL AÁNq@ AÁk  Ak A9L A0Nq A$ A F A% A:F A& A/F A' A.F A( AßF A* A,F A) !A!#õ"E@AA„˜"A6 A6 A6 A6 Aš!@#öAk(Av J@#ö Atj(! A! AA.˜"A6 A6 A6 A6 Aš! A  Í!@ ( J@ ( Atj(ÉAÀ…Í! ( " AJ@ Aj" (AvK@  AA™ ( AtjCÀ8  6 ( " Aj" (AvK@  AA™ ( AtjCÀ8  6 A! @ ( J@ ( Atj(É" Ak(Av@ A Aà�AÅ"È¥¶! ( "Aj" (AvK@  AA™ ( Atj 8  6 AjAÿÿÿÿÈ¥¶! ( " Aj" (AvK@  AA™ ( Atj 8  6 Aj!  Aj!  ( At" A-˜" ( ü ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  $õ  ( O@ ( Atj("E@ D@  ·D@¢ Dð? ! D@ !A!A!@ Ak(Av" AjJ@  O@ A  Atj*" \  Aj" Ak(AvO@   Atj*»Dð?¢ ¶!  »Dð?¢ ¶8 8 C8 @ *  * *Ì * *! *! Ë   Ê ("( " Aj! (K@  AA™ ( jA:  6 A:$  (Aj6 A ! Aj!  Aj!  #Aj$A E@ (4"E (0"E (,"E (("Errr@ (! Ð! Ñ(! ( L (! Ð! Ñ(! (  L Ó (( ! (!@ ( " J@ " O@ ( Atj("E@ (8 �AH@ (8"( AäH@ ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6   )@B|7@ Aj!  ( 6 Ê (" (¬ FA @A ( " (¬ GA A@ @A -À  ( !  A @A (( !  ê (( k" AJ@ ¾!AA– ˜"A6 A6 A6 A6 Aš!@ ( J@ ( Atj("(°@A!@ ("( J@  ( O@ ( Atj("E@ ( F@  ("( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  Aj!  Aj!  6 ž  ë  ì ½ (" (¬ GA A -À @  í (!A!@ ( J@ ( Atj("((¬ F@ "Aj!   œ Aj!  ( !  AA™ H@ ( AtjA  kAtü  6 £   -µ@ (8@ ("( J@  ( O@ ( Atj("E@ ( F@  ("( O@ ( Atj("E@   Aj!  A A E@A (8"E  ( (É"! -,@ (À "@ ! -- A€çAÇA @ AAÿÿÿÿÈ! ( ¹" E@ ( ! A�AðÛ ÂA°û)Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A  (°"@AA’ ˜"A6 A6 A6 A6 (!  6  6  6  6   (" (" 6  ž  6  ž  6°  ž ( ! -$A€� ( ! A!@ (<"( J@  ( O@ ( Atj("E@ Ø E@  (@"( O@ ( Atj("E@    (E@ ( ! A�AðÛ ÂAðû) ÂA ÅÂ@@@@@@@@@@@@@@@@@@@@@@@@@@ (  A°�  A°é  AÐé  A°Ú  Aðé  A€“  Aà’  AЦ  Að¦  A�§  A°§  AЧ  Að§ A�¨ AÀ¨ AਠAÀê A�ê  A°“  Aà“  AÀ�  A€�  AÀ�  Að�  A°‘  Að ÂA �Â! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  AA’ ˜"A6 A6 A6 A6 (!  6  6  6  6  "@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A!@ ("( J@  ( O@ ( Atj("@  ê Aj!  ¥ (¬ FA -µ @  6¬  ž  Ak(AÄFA @ ( "E@A A° ˜"È  6  ž  Ak(AÄFA E@ A ("( "E ALr  (!@  H@  Atj( F@   Aj!  A AH@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (°"@  6  ž# ! $ $ ( Aj6 A!@ ("( J@  ( O@ ( Atj("@  ë Aj!  �}|@ ("( J@  ( O@ ( Atj("@  ì Aj!  (¬ G@  Ak(AÄFA @  Ak(AÄFA E@ -àE@ A:à -Ñ +È" Dd  9Ø A:áAA A E@ A�AÐú)Â! ("@  Ç (°" - A @ A: # ! $ @@@@@@@ Ak(Aßk  ( #   A!@ AÝH@ (!=!!R =!S !=!8  ?8  @8  A8$  B8(  C8,  D80  E84  F88  G8< * * * * * * * * * *$ *( *, *0 *4 *8 *< *Ð *Ô *Øæ!J!I"H!L J!K I!N * * * * * * * * * *$ *( *, *0 *4 *8 *< *Ü *à *äæ!J!I"H!M J!O I!PAAAAAA  ( Aj"Atj+" L»"aA  b  bq A ( Atj 9A  ( Aj"Atj+" N»"aA  b  bq A ( Atj 9A  ( Aj"Atj+" K»"aA  b  bq A ( Atj 9A  ( Aj"Atj+" M»"aA  b  bq A ( Atj 9A  ( A j"Atj+" P»"aA  b  bq A ( Atj 9A  ( A j"Atj+" O»"aA  b  bq A ( Atj 9A ! Aj!  #A@k$ E@ A!A! (! (@""A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ D9( ("*Coƒ:^} *Coƒ: !K * K”!L * K”!K ( ! (!@ ( J@A! A ( Atj("(È"E -ÌErA -  ((AvAFA  ("(AvAk! (! (!A - E @ H@ (" AjAtj( At j(" k"AJ@D!D!D!A!@  H@ (" ("  jAtj(Al"Atj*»! Aj" ojAt j(Al"At j*»!  AjAt j*»" AjAt j*»"¡ AjAt j*»"! AjAt j*»"" ¢ !  ! "¡   ¢ !   ¡   ¢ !   ¢  ¢   ¢ Ÿ!#A!@  H@ ("  jAtj(Al! Aj ojAt j(Al! Aj ojAt j(Al" (AvO@  (AvO@ Aj" (AvO@ A (" Atj*» At j*»¡" ¢ At j*» Aj" (AvO@ ( Atj*»¡" ¢  Aj" (AvO@ Aj" (AvO@ (" Atj*» At j*»¡" ¢   (AvO@  (AvO@ Aj" (AvO@ (" Atj*» At j*»¡" ¢ At j*» Aj" (AvO@ ( Atj*»¡"! !¢  Aj" (AvO@ Aj" (AvO@ (" Atj*» At j*»¡"" "¢ ¢Ÿ #¢D�íµ ÷ư¾¢ "¢  !¢¡ ¢  ¢  "¢¡ ¢   !¢ ¢¡ ¢ d  Aj!  Aj!  A  (È"E@ •!G!F!E!D!C!B!A!@!?!>!=!!Z =![ !=!!X =!Y dE@D�íµ ÷ư>! ¡ £œDð? !  ¡ £œDð? ! AtA@k·!!@  ¢ !d@ ¡   "£œDð? !  ¡ £œDð? !  ª! ª!  9  9  9  6  6  ( "  l"Aj" (AvL A Aã˜"A6 A6 A6   (AvAt"  H° "6  ž  (("  (AvL A Aã˜"A6 A6 A6   (AvAt"  H° "6(  ž ( ! A!@  L@ ( AtjA6 Aj!  @ J@ ( Al"Atj+ +¡ +£œ"Df  ("·f Ak ª A ! ( AjAtj+ +¡ +£œ"Df  ("·f Ak ª A ! ( AjAtj+ +¡ +£œ"Df  ("·f Ak ª A ! ( AjAtj+ +¡ +£œ"Df  ("·f Ak ª A !@  L@ !@  L@ ("  l jAj"Atj(Aj! At j 6 Aj! Aj!  Aj!  Aj!  A!@  H@ (" Aj"Atj( At j(j! At j 6 !   ($" (AvL A Aã˜"A6 A6 A6  (AvAt"  H° "6$  ž ((! A!@  H@ At" (j  (j(6 Aj!  ($! A!@  H@ ( Al"Atj+ +¡ +£œ"Df  ("·f Ak ª A ! ( AjAtj+ +¡ +£œ"Df  ("·f Ak ª A ! ( AjAtj+ +¡ +£œ"Df  ("·f Ak ª A ! ( AjAtj+ +¡ +£œ"Df  ("·f Ak ª A !@  L@ !@  L@ ( (  l j"Atj(Atj 6 ( Atj" (Aj6 Aj!  Aj!  Aj!  (D ›A! #A�¥ÁkAÀI@ #A@j"$ (@! (! (* »" ¢! (D! ("(!@ ( J@ At"" (j(!  ((jA6  ( (jA6  (((jA6  •!G!F!E!D!C!B!A!@!?!>!=!8  ?8  @8  A8$  B8(  C8,  D80  E84  F88  G8< * * * * * * * * * *$ *( *, *0 *4 *8 *< *Ð *Ô *Øæ!J!I"H!L * * * * * * * * * *$ *( *, *0 *4 *8 *< *Ü *à *äæ!b!a"`!K ($( Al"Atj L»"9 ($( AjAtj I"L»9 ($( AjAtj J"N»9 ($( AjAtj K»"9 ($( AjAtj a"K»9 ($( AjAtj b"M»9@ -ÈE  (Aj6    L» N»A �! +H! +P! +X!    K» M»A �! +H! +P! +X!  ((j 6  ( (j 6 AN@ ($( Atj 9 ($( AjAtj 9 ($( AjAtj 9 AN@ ($( AjAtj 9 ($( AjAtj 9 ($( AjAtj 9 rAH  ( Aj6   *ì» *è» (ÌA™! ((( Atj 6 (( Atj 6A!@ AH@ At" ( (j 9  ((j 9  ((j 9 Aj! Aj!  A!@ AH@ At" ( (j 9  ((j 9  ((j 9 Aj! Aj!  (( AjAtj 6  AA      š   AA    š -É@  AA    š   AA      š Aj! Aj!   6#A@k$ ("(! (°!  (4" Aj" (AvL A Aã˜"A6 A6 A6  (AvAt"  H° "64  ž  (8"  (AvL A Aã˜"A6 A6 A6   (AvAt"  H° "68  ž  (<"  (AvL A Aã˜"A6 A6 A6   (AvAt"  H° "6<  ž  (@" Al" (AvL A Aè˜"A6 A6 A6  (AvAt"  H² "6@  ž  (D"  (L A Aߘ"A6 A6 A6   (At"  H« "6D  ž (4! A!@  L@ ( AtjA6 Aj!  A!@  H@ (" (œ( Atj(Aj"Atj(Aj! At j 6 Aj!  A!@  H@ (" Aj"Atj( At j(j! At j 6 !   (´"  (AvL A Aã˜"A6 A6 A6   (AvAt"  H° "6´  ž (´!A!@  H@ At" (j  (j(6 Aj!  A!@  H@ (" At" (œ(j("Atj(! At j Aj6 At" (8(j  ( (j(6 (<(j  (¤(j(6 (D( j (¬( j-:A!@ AH@ (@( Al jAtj (¨( Al jAtj+9 Aj!  Aj!   6H " (´" (" ("" (AvL A Aã˜"A6 A6 A6   (AvAt"  H° "6´  ž (´!A!@  H@ ( Atj 6 Aj!  A!@  H@ (4(" AjAtj(! At j(!@  H@ (´! "!@ ( Atj(" G@ !  @ ( Atj"(" G@  6  " (´! (8( Atj(" !@ ( Atj(" G@ !  @ ( Atj"(" G@  6  G@  J@ ( Atj 6 ( Atj 6 Aj!  Aj!  A! (!A!@  H@ (´! "!@ ( Atj(" G@ !  @ ( Atj"(" G@  6   F@ (d( Atj 6 Aj! (d(" Atj At j(6 Aj!  (@ 6$Dð!A!@  ( H@ ($( Atj+ ¤! Aj!  Dð?  Dða9P (D (› (  6  ž (@  Aðö) ­ÂA°ö)ÂAA «ÂAÀõ)Â"6  A!@ ( J@ ( Atj("(AF (0A " Aкð" (AFA  ((A ! AðÖð" (AFA  ((A !A AÀù)ð" (AFA  ((A "E E Err A Aï ˜"A� 6 A� 6 A� 6  6  ž  6  ž  6  ž  A "E@ AÐ÷) A «ÂA ÷)Â!  ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@ ( J@ ( Atj("(AF (0A "A! Aà²ð" (AFA  ((A ! AðÇ ð" (AFA  ((A ! A íð" (AFA  ((A !AðÖ!AìÖ(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! AàÖj!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AìÖj!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AðÖj!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (AðÖ  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ (!A!AðÖ!AìÖ(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! AàÖj!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AìÖj!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AðÖj!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (AðÖ  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (" ( O@ ( Atj("E@ A " (AF (,A A ! Aðø)ð" (AFA  ((A ! Aà�&š!A A�ù)ð" (AFA  ((A "E E E E E Errrr BSrr A(Að ˜"A� 6 A� 6 A� 6 AAAA¤6 A� 6 B7 A� 6  6  ž  6  ž  6  ž  6  ž  7  6  žA!@ ( J@A ( Atj("(AF ((A " E  ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   A "E@ A ø) A «ÂA ÷)Â!  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AA‰˜"A: A6 A� 6 A6 A:  6  ž   AA‰˜"A: A6 A� 6 A6  6  ž    žAA‰˜"A: A6 A� 6 A6 A:  6  ž  "-@ (" (Ak(Av@@ (! -E Aà— Â!#˜ A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s • #˜ –#’"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 @ (Aðð)Â! -E Aà— Â!#˜ A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s • #˜ –#’"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 6 ž Ç ($ (" ¥Ò@ ($ (" ¥Ò"E@ ( A! ( (¬"@ ) 4RA (Aj6 ­ (ÄAG "@ A ( (AÐð)¬" ­ A� ( Ä! ($ ( Ó  ë -@A A› ˜"A6 A� 6 A� 6  (6  ("6  ž  ("6  ž#F"E@A,A¡ ˜"“ $F @@ ("( J@  ( O@ ( Atj("E@ ( Ä ( ÄA @  6  ž  Aj!  ( AÀ…  ™ (AFA (Ak(Av E@ ( �AH@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (º Aàî) (ÂA �Â!@ "-E Aà— Â!#˜ A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s • #˜ –#’"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ñ (! ("@ (Aä(AF@  (( ( ›" Ak(Av ž �" ŸA A E@ AÀ… Â! (  ¥ÒE@AAõ ˜"A6 A� 6 A� 6 A� 6 A� 6 6 ž A ï)6 A ï)ž (  ™    A  Ak(" Aü F@     ¡  Aú F@     Ý  "@   (( ( ›"Ak(AvE@A A " AÀ… Â! "(  ¥Ò@ (  ¥Ò"E@ (  AAõ ˜"A6 A� 6 A� 6 A� 6 A� 6  6  ž  ž �"E   ŸE@ A ï)6 A ï)ž   A ("AкÄ A A ÝÄ A A�ÇÄ A A ‰Ä A A€éÄ A AÐäÄ A A ÞÄ A AðèÄ A Að¢ Ä A Að˜Ä A !@ AH@  (  (0 ( !A!@  H@ @  ( "( O@   (0"( O@ ( Atj("E@ @ @ (0 �AN  AF ((  ¥ÒAGG  ( �AH   ((  ¥Ò@ ((  ¥Ò"E@ (  AAö ˜"A6 A6 A6 A� 6 6 ((  ™ (,"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "@ ( " (( ÄA @ ("6 ž 6 ž  ( ¬" (A E@ A ð)6 A ð)ž  @  ü"-E (" (A @ Aàï)6 Aàï)ž   ò"-E ("6 ž E -Er A4Aú ˜"ª  (6 (H"E@ § "6H  ž  â"6  ž  ((í6 à 6 ž (p! (t!  (("6p  ž  ("6t  ž  (("6  žA!@ (l"( J@  ( O@ ( Atj("@@ Ak("A�F@   ¤  Aý F Aj!   6p  ž  6t  ž  A�¯6 A�¯ž "( Aàï)Ä@A!A ( A�¯Ä! ( Ak(Av ("E AHrA (! A ªAÀ… Â! (( A! A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò (( A! A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A E @A!  A6  6  ž  ("6  ž  Aà� (Â"6  ž   Aj!  Aj!  Aàï)A�¯A ð)  "6  ž  ! (  ™     "(AGA - E A (( ( " ¥ÒE  (( ( " ¥Ò"E@ ("(!A ("E Er  ( !AŒ (Av@ A�ÒÂA� Â! (Ÿ" @ ( (¿ ! ( !  ("Ak(Av A�Ò   Ý Ì (t" (pú"E@ @ ("( J@  ( O@ ( Atj("E@  ( F ( ¯A  Aj!  A!=!<";!-  >8@  ?8D  @8H  A8LAÌ*"6 *L" ” *@": :” *D"8 8”’ *H"9 9”’“"5” : 6 :”AÐ*"7 8”’AÔ*"4 9”’" ’".”’ 8 4” 9 7”“  ’"3”’!2 Aj" ( O@ ( A lj"*!, *! *!  ( O@ 2 7 5” 8 .”’ 9 6” : 4”“ 3”’ 4 5” 9 .”’ : 7” 8 6”“ 3”’ , ( A lj"*“  *“  *“Ñ!I!H!G"F!6  ( O@ - < = I"7 *@"4” 6 *L"5”’ G". *H"3” H"- *D"2”“’"C€?  ” 7 2” 6 3”“ . 5” - 4”’’", ,”’ 7 3” 6 2”’ - 5” . 4”“’" ” 7 5” 6 4”“ - 3”Œ . 2”“’" ”’’‘•"2” , 2”  2”  2” ( A lj"* * *¹!+!*!)!(!'!&!%!$!#!"!!! !!!"! * * * * * * * * * *$ *( *, *0 *4 *8 *<     ! " # $ % & ' ( ) * + *" \}C€? C€?– Ó!+!*!)!(!'!&!%!$!#!"!!! !!!"!J  ("( O@ ( Atj" J8  "E8  ":8  "88  "98  !"68  ""78  #"48  $"58  %".8$  &"38(  '"-8,  ("280  )",84  *"88  +"8< ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s" (qAtj(!@ @ (D"AqE@  ( F  A~q!  A "@  J8  E8  :8  88  98  68  78  48  58$  .8(  38,  -80  284  ,88  8<  8@ ( " (F@ ( AlAmH ( (AtAr !AA¦˜ Aj"At"AüÿÿÿK@ A¦˜! AA¦˜ AtAm"At"AüÿÿÿK@ A¦˜! (" (Atj! !@ G@ (DAqE@  (" 6 *@!P *:>  -?:? (@!A0A°˜"Ù *! *!  *8  8  8 *! *! *!  * 8  8  8  8 *$! * !  *8  8  8$AA¦˜!AA±˜" 6  ž  6 A6 A6 @ (("( J@ ( O@ ( Atj("E@ AAʘ"A6 A6 C€?8 A: A6 @@@@@@@@@@@@ ("Ak(A¿k  (!AA½˜"A6 A6 (!  (6  6  * * * * * * * *$ *( *, *0 *4 *8 *< *@ *D“ (�! *! - !AAȘ!AA½˜"A6 A6 A6 A6 6 C8 A: 6 ž 8 : (�! (!A Aǘ!AA½˜"A6 A6 A6 A6 6 A6 6 ž 6 (�! (! ( ! AAƘ!AA½˜"A6 A6 A6 A6 6 A6 A6 6 ž 6 6  * * * * * * ( ( ’  * * * * * * (‘  (�! (!A AØ!AA½˜"A6 A6 A6 A6 6 A6 6 ž 6  (�! (!A A˜!AA½˜"A6 A6 A6 A6 6 AAAÒ6 6 ž ²"6 ž  (� ( ( �  (� ( ( -�  (! (�  �A * ( ( -Ž  ”" ("6 ž *8 - : (6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6(  ž  -,:,  --:-  6@  ž  x ((( !@  I@  ("(( OA ("( "M@ ( Atj( " ( ÄA @  Aj!  A 4AA½˜"A6 A6 (!  (6  6  ™AA¿˜!AA½˜"A6 A6 A6 A6  6 A6 C8 A6 A6 A:  6  ž  6  ž  8  6  6  :  ™AAÀ˜!AA½˜"A6 A6 A6 A6  6 AAAÒ6 AAAÒ6 A:  6  ž  ²"6  ž  ²"6  ž  :  xAAÁ˜!AA½˜"A6 A6 A6 A6  6 AAAÒ6 A6  6  ž  ²"6  ž  6  ºA AĘ""C8 C8 C8 C8 C8 C8 AAAëA¤"( " Aj! (K@  AA™ ( jA:  6 ( " Aj" (K@  AA™ ( jA:  6 ( " Aj" (K@  AA™ ( jA:  6 6  8  8  8  8  8  8  ²"6  ž  üA$AŘ" C8 C8 C8 C8 C8 C8AAAëA¤"( " Aj! (K@  AA™ ( jA:  6 ( " Aj" (K@  AA™ ( jA:  6 ( " Aj" (K@  AA™ ( jA:  6 6AAAëA¤"( " Aj! (K@  AA™ ( jA:  6 ( " Aj" (K@  AA™ ( jA:  6 ( " Aj" (K@  AA™ ( jA:  6 6 8 8 8 8 8 8 ²"6 ž ²"6 ž ¨}AÈAɘ!AA½˜"A6 A6 A6 A6  6A°*!A¬*!A¨*!A¤*!A *!Aœ*!A˜*!A”*!A�*!AŒ*!Aˆ*!A„*!A€*!Aü*! Aø*!! Aô*8  !8  8  8  8  8  8  8$  8(  8,  80  84  88  8<  8@  8D  6  ž  8  8  8  8  8  8  8  8$  8(  8,  80  84  88  8<  8@  8D  € @@@@@@@@@@@@ Ak(A¿k  A A A A  A  A  A  A  A  A  A  "AF AFr6 @@@@@@@@@@@@@@@@@@@@@@@ Ak(A¿k  A A A A  A  A  A  A  A  A  A    AÀ… Aà… A�†  AÀ†  Að†  A ‡  AЇ  A€ˆ  A ˆ  AЈ  A€‰ 6 6 C€?8 A: ·}  ("( O@ AÔ*!AÐ*!  ( "( O@ ( Atj"* * * * * * * * * *$ *( *, *0 *4 *8 *  (AУ&»AN:? (@" Að£&CCC§!!! "8  8  !8 (@" A ¤&¨!@!?!>"=8  >8  ?8  @8 (@" AФ&C€?C€?C€?§!!! "8  8  !8$ (@ (A€¥&»AN:, (@ (A°¥&»AN:- - (  œ (  º  @ ¸"E AA€‡& ! -  (( OA  ("( O@ ( Atj(E @A ¾ A ªÂA ‡&Â! -E@ A:  6  ž A� 6 A� ž   ("( O@ ( Atj(" E@ (("( AM@ (( "E@ #„! (A ( (Ak(AvF  ( ( ( (È !@ ( J@  ( Atj( Ä  Aj!  A "AH@AÀŒ& (A ( (Ak(AvF  ( ( ( (È ÂA Œ&Â#„"( ( A°Ä¦ÂA �Â! -E@ A:  6  ž A� 6 A� ž  #Â"( O@ ( Atj("E@  A A¦™"A€“&A ü AA˜" 6  ž  6 A 6 A6  #„"( O@ ( Atj("E@ AÀ“ ÂA “&® - (A��&»AN (A€¹»AHA @ (" E@Aà¹A��&  A!A��&!AŒ�&(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! A€�&j! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AŒ�&j!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A��&j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  A��&  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ A��&A!A��&!AŒ�&(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! A€�&j! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AŒ�&j!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A��&j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A��&A€�Aà™Ì Að‡Â (" E@Aà¹A€¹Â  A!A€¹!Aü¸(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! Að¸j! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! Aü¸j!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A€¹j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  A€¹  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ A€¹A!A€¹!Aü¸(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! Að¸j! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! Aü¸j!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A€¹j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A€¹A€�Aà™Ì Â! -E@ A:  6  ž A��&6 A��&ž (Aà�&»AN (AÀ�&»AHA @ (" E@Aà¹Aà�&  A!Aà�&!AÜ�&(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! AÐ�&j! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AÜ�&j!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  Aà�&j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  Aà�&  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ Aà�&A!Aà�&!AÜ�&(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! AÐ�&j! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AÜ�&j!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  Aà�&j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (Aà�&A€�Aà™Ì Að‡Â (" E@Aà¹AÀ�&  A!AÀ�&!A¼�&(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! A°�&j! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! A¼�&j!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AÀ�&j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  AÀ�&  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ AÀ�&A!AÀ�&!A¼�&(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! A°�&j! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! A¼�&j!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AÀ�&j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (AÀ�&A€�Aà™Ì Â! -E@ A:  6  ž Aà�&6 Aà�&ž @@@@@@@@@@@   A€¹ (( A�˜&£!AA½˜"A6 A6 A��&¡!  6  6  (AÀ�&»AN AÀ�& (( A�˜&£!AA½˜"A6 A6 Aà�&¡!  6  6 A (A�Ž&¼"} º"Á! A�Ž& ž C (AÀŽ&¼" º"Â! AÀŽ& ž A (A€�¼" º"Â! A€� ž A (AðŽ&»ANŽ A€¹ (( A�˜&£!AA½˜"A6 A6 A��&¡!  6  6  A°�&AAA© A�¤AAA© (A€¼»AN� A€¹ (( A�˜&£!AA½˜"A6 A6 A��&¡!  6  6  A°�&AAA© A�à #ƒA¤�  A€¹ (( A�˜&£!AA½˜"A6 A6 A��&¡!  6  6 A°�&AAA©!A A˜"µ  6  ž  ²"6  ž   A€¹ (( A�˜&£!AA½˜"A6 A6 A��&¡!  6  6 A�à #ƒA¤!A AØ"´  6  ž  6   AÀ�CCC§!!! " ! Aà�CCC§!!! " ! A°�&AAA©‘  AÀ�CCC§!!! " ! Aà�CCC§!!! " ! A �&AAA© AÀ�&AAA©’  A€¹ (( A�˜&£!AA½˜"A6 A6 A��&¡!  6  6 Að�&#…A¤! A  #…A¤!AAƘ"³  6  ž  6  6   A€¹ (( A�˜&£!AA½˜"A6 A6 A��&¡!  6  6 Að�&#…A¤!A Aǘ"²  6  ž  6   A€¹ (( A�˜&£!AA½˜"A6 A6 A��&¡!  6  6 (A°‘&¼"} º"Á! A°‘& ž C ! (Aà‘&»AN!AAȘ"±  6  ž  8  :   A€¹ (( A�˜&£!AA½˜"A6 A6 A��&¡!  6  6  A�’&ª!1!0!/!.!-!,!+!*!)!(!'!&!%!$!#"" # $ % & ' ( ) * + , - . / 0 1“ !AAʘ"A6 A6 C€?8 A: A6  ”" (("( AM@ (("E@ ¹"6  ž  (AÀ’&¼"} º"Á! AÀ’& ž C€? 8  (AÀ¡»AH:  Að’&#à (¤6 - (@(("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  AЃ CCC§!!! "! A€„¨!@!?!>"=!2 AðåC€?C€?C€?§!C!B"A!< -E@ ("E@ (\!A,AÙ˜"A� 6 C8 C8 C8 C8 C8 C8 C€?8 C€?8 C€?8$ C€?8( (("( E@ (("E@  ¹6  8  8  !8  28  >8  ?8  @8  <8  B8$  C8( ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AÀ�&¼" ¹A� ! (Aà�&¼"~ º"Ä!D Aà�& ž DB !D (A�øA½!AA¦˜!AA˜" 6  ž  6 A6 A6 @ ( J@ ( Atj("(A ( (Ak(AvF  ( ( ( (È ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  -E@ ("E@ (`!AAà˜"A� 6 A� 6 B7 AAAA¤6 (("( E@ (("E@  ¹6  6  D7  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 -@ ("68 ž   ( ° A A®˜"A: A: A� 6 A6 A: A: Í  - @ AA� AÀ¹%¯ A: (" E@ AA� A º%¯ @ (( J@A! ("( !@  J@  jAu" ( O@ A ( Atj(" F   K@ Aj! !  A E@  ("( O@ ( Atj("E@ (AкA�º A ªÂA°¼% (( A «ÂAð»% A ªÂA°»%¯  ("( O@ ( Atj(! ((A (( E@ A�øA�º A ªÂA°½% A ªÂAð¼%¯ ((AF@ ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E@ A�øA�º A ªÂAÀ¾% A ªÂA€¾%¯  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (!A!@ ("( J@  ( O@ ( Atj(AA! ( " ( !@  J@  jAu" ( O@ A ( Atj(" F   K@ Aj! !  A @ Aj!  (A€ŸA ¾ A «ÂAð¿% A ªÂA ¿% A ªÂAÀ… A «ÂA°»%¯ (€"AG  (|( OA @ A À%68 A�øAàÁ%A Â% -0 (€A ªÂA€Á% (|( A «ÂAÐÀ%¯ Aj!  A!@ ("( J@  ( O@ ( Atj(" (,A @ (,"E@ (" (( OA  ("( O@ ( Atj(E @ AÀñ68  ("( O@ ( Atj(A�øA°Ã% (ÂAÐÈ A ªÂAÐÂ%¯ A!AA¦˜!AA˜" 6  ž  6 A6 A6  ("( O@ ( Atj("E@ ( (6 !@ ("( J@  ( O@ A� ( Atj(" (,A E  (,"E@ A� (" ("( O   ( O@ A� ( Atj("E  (! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  F@ ( ( A°ì¦  Aj!  A� "Ak(Av@ AÀñ68  ("( O@ ( Atj(A�øA°Ä% (ÂAðÃ% ÂA �¯ Aj!  ( È! A!@ ( J@ ( Atj("! ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (!A!@ ("( J@  ( O@ ( Atj(" ( AFA E@ (( ( MA ( " ("( O@ ( Atj(E @ AÀñ68  ("( O@ ( Atj(AÐÄ%AÐÅ% (ÂAÐÈ ( A ªÂAðÄ%¯  (!A!AA¦˜!AA˜" 6  ž  6 A6 A6  ( O@ ( Atj("E@ ( (6 !@ ( " J@  O@ A� ( Atj(" ( AFA A ( ( M  ( " ( O@ A� ( Atj(" E  (! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  F@ ( ( A°ì¦  Aj!  A� "Ak(Av@ AÀñ68  ("( O@ ( Atj(AÐÄ%A�Æ% (ÂAðÃ% ÂA �¯ Aj!  Aj!  A!@ ($"( J@  ( O@ ( Atj(AA! (("( !@  J@  jAu" ( O@ A ( Atj(" F   K@ Aj! !  A @ Aj!  (AкA°Ç% A «ÂAðÆ% ($( A «ÂA°Æ% A «ÂA°»%¯ ÉAA…˜"A: A6 A� 6 A6 A: 6 ž · AA€›& ! -@A  (( OA  ("( O@ ( Atj(E @A�º A ªÂA°œ&Â! -E@ A:  6  ž A� 6 A� ž A  ("( O@ ( Atj( v ±"E@A A ("(" (E@A�º AŸÂAÀ­&Â! -E@ A:  6  ž A� 6 A� ž A  § } A A°Ü&¥"E@CCCCCCC€?C€?C€? Á! Á! Á! Á! Á! Á! Á! Á! Á! - @ �AðÛ (Â! -E@ A: 6 ž 6 ž  (!@  (H  ("Ak(AvOA  Atj/ ! - A F A Fr A,Fr A Fr A Fr A F A Fr A @ Aj!  ( J@ �A€‚&Â! -E@ A: 6 ž 6 ž     †  #„"( O@ ( Atj(" E@ A°ê&Â! ( ¼" ¹A ! AÐê&Â! ( ¼" ¹A ! E@ @ AÐê&Â! ("E@A๠   A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ ( A€�Aà™Ì Aðê& A°ê&Â! ("E@A๠   A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ ( A€�Aà™Ì Â! AÐê&Â! -E@ A: 6 ž 6 ž A AAÚ˜"A� 6 A6 6 6 ƒ Â! - E  Mq@Aðã& ÂAàç A ªÂA ã& AkA ªÂA �Â! -E@ A: 6 ž A�ß&6 A�ß&ž  ‘ @ ( J@ ( ( Atj(»AN@  ( O@ ( Atj("E@ (" E@A๠   "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A! "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ ( A€�Aà™Ì Aà™&ÂA�ÏAÀ“ A€ŸÄA Aà«&Ä Â ÂA Ý&Â!  ( O@ ( Atj("E@ -E@ A: 6 ž 6 ž  Aj!  ± AA¨˜" ½ ( A½!@@ ( J@ ( Atj("(A ( (Ak(AvF  ( ( ( (È "Aà’AÅ"AH@ (" E@A๠  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ ( A€�Aà™Ì Aàš& ÂAÐÐ&Â!  A È" ¥Ò@ (" E@A๠  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ ( A€�Aà™Ì A°Ñ& ÂA�Ñ&Â!    AjAÿÿÿÿÈ™ Aj!   -E@ A: 6 ž 6 ž ‹ AA€›& ! ±E@A  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E@A�º A ªÂA°›&Â! -E@ A:  6  ž A� 6 A� ž A  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ ( < (A ( (Ak(AvF  ( ( ( (È wA A‹˜"A6 A6 A6 A: A� 6 A: A6 A6 (! (!  (6  6  6  - :  R@ ("( J@  ( O@ ( Atj("E@  Ä@  Aj!  A ] »"AH@A  ( "( O@ ( Atj(" ("( O@ ( Atj("E@ ¤AA¦˜!AAŠ˜" 6  ž  6 A6 A6 !A!@ ("( J@  ( O@ ( Atj("E@  Ä@  ( "( O@  ( Atj(j" ("( O@ ( Atj("E@ ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ‘ (! (! (!@@  N @  H  Ak(AvOA  Atj/ ! - A F A Fr A,Fr A Fr A Fr A F A Fr A @ Aj!   N Aj!@  H  Ak(AvOA  Atj/ ! - A F A Fr A,Fr A Fr A Fr A F A Fr EA @ Aj!    Á (! (! (!@  H  Ak(AvOA  Atj/ ! - A F A Fr A,Fr A Fr A Fr A F A Fr A @ Aj!   N@ 6 - E@ A: Aàƒ&6 Aàƒ&ž A !@  H  Ak(AvOA  Atj/ ! - A F A Fr A,Fr A Fr A Fr A F A Fr EA @ Aj!  6 6 6A KA€š ( ( (ÈÂA°ƒ&ÂAð–&Â! - E@ A: 6 ž ë ~|} - A ¿ E@C (! (" " ("Ak(AvOA  Atj/ "A+F A-F"r@ ! Aj! A!A!@@  N  Ak(AvOA  Atj/ "A0H A9Jr Aj! A0G AJr@ AH@ A0k¬ B ~|! Aj!A! Aj!   H  Ak(AvOA  Atj/ A.FA @ Aj!@@  N  Ak(AvOA  Atj/ "A0H A9Jr Aj! A0G AJr@ AH@ A0k¬ B ~|! Aj! Ak!A!  Ak! Aj!  A  E  Gr@ P@C€C  AjN B€€€€€€€Tq ALq@ º! AH|A k"A¬„&(AvO@ AtA°„&j+£ A¬„&(AvO@ AtA°„&j+¢ " ½" B4ˆBÿƒ§Aÿk"AÿL A‚Nq BÿÿÿÿƒB€€€€Rq@ ¶" Œ   Ȧ "-E@A€š ( ( (ÈÂA°ƒ&ÂA�‹Â! - E@ A: 6 ž C *  ~ - A ¿ E@A (! (!@  (H@  Ak(AvOA  Atj/ "A0H A9Jr@A€š ( ( (ÈÂA°ƒ&ÂA�—&Â! - E@ A: 6 ž A A0k¬ B ~|"BÿÿÿÿV@A€š ( ( (ÈÂA°ƒ&ÂAÀ—&Â! - E@ A: 6 ž A Aj!  § ¹~ - A ¿ E@A (" ("Ak(AvOA  Atj/ "A+F A-F"r@ ! Aj!  ("N@A€š ( ( ÈÂA°ƒ&ÂA °&Â! - E@ A: 6 ž A @  (H@  Ak(AvOA  Atj/ "A0H A9Jr@A€š ( ( (ÈÂA°ƒ&ÂA °&Â! - E@ A: 6 ž A B A0k¬ B ~|"}  " ÄR@A€š ( ( (ÈÂA°ƒ&ÂAа&Â! - E@ A: 6 ž A Aj!  B }  § è - A ¿ E@B  ( ( (ÈABB§ "(Ak(Av@ (!AA¯˜"A: B7 A� 6 A6  6  ž   )‡ "-E@A€š ( ( (ÈÂA°ƒ&ÂAà‚&Â! - E@ A: 6 ž B ) Ç (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("(( ! ( "( "Aj!  (AvK@  AA™ ( Atj 6  6 A!@ ( J@ ( Atj(! (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (  ¥ÒE@ (  ™ = (  ¥ÒE@A ( – (  ¥Ò"E@ ( ò ((!A Aë˜""A6 A6 A6 A6 A6 A6 A6 AAAêA¤6 (! (! (! A6  6  6  6  6  6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 Á@ ("( J@  ( O@ ( Atj("E@  "(�AH@ ( "(AL@ (! A€‘ (ÂAà� (ÂA€“Â! (( ! A Aë˜"Ð (! (! (! A6 A �6  6  6  6  6 A°¤'6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  º Ak(AvE@A௠ÂA€�  A Ak(AvE @ Ak(Av" J@A  MA  Atj/ "A-FA AßF A9L A0NqA AÚL AÁNq A AúL AáNq @ Aj! A  A E@AàŽ ÂA°�  A� "Ak(Av@ ((!A Aë˜"Ð (! (! (! A6 AÀŒ6  6  6  6  6 AðŒ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A (  ¥Ò@ (  ¥Ò"E@ (!AàŽ ÂA ŽÂ ("AJAð� A «ÂA �ÂA� Â! ((!A Aë˜"Ð (! (! (! A6 Að�6  6  6  6  6 A€�6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A (  ™A ²  AA™˜" À 6@ ("( J@ ( O@ ( Atj("@@ (AF@AÀ’ (ÂA€“Â! (!A!@ Ak(Av" J@  OA  Atj/ "A F A F A Fr A Frr@ Aj!    A "AHA A°¥  ŠAàù ÂAðøÂÙ E@ ("@ ((! ï! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A6  (AF@ (!AЦ (ÂAà¥Â! ((!A Aë˜"Ð (! (! (! A6 A°¥6  6  6  6  6 A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (@ (" (Aj6  (A�ÝÄ@ Ý"E@ ("@ ((! ï! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A6  A!@ ("( J@  ( O@ ( Atj("E@ ( !A€‘ (ÂA€Õ'Â! (( !A Aë˜"Ð (! (! (! A6 A �6  6  6  6  6 A°¤'6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( (" ¥Ò@ ( (" ¥Ò"E@ (! (!A°è (ÂA°Õ' ((A «ÂA �Â! ((!A Aë˜"Ð (! (! (! A6 AÀç6  6  6  6  6 Aà‹6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( ( ™   (�AN@ ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (!A€œ (ÂAà›Â (ÂA€“Â! (( !A Aë˜"Ð (! (! (! A6 AÐä6  6  6  6  6 A°¤'6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  è A� ! Aÿÿÿÿ! @ ( J@ ( Atj(! ø µ! ø µ!AA¦˜!AA¤˜" 6  ž  6 A6 A6 A!@ ( N@ ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  AA¦˜!AA¤˜" 6  ž  6 A6 A6 A!@ ( N@ ( "Aj" (AvK@  AA™ ( AtjA6  6 Aj!  A!@ ( N@ A ºA!@ ( N@ Ak" ( O@ Ak" ( O@ ( Atj( ( Atj(G!  ( O@ Ak" ( O@   ( Atj(Aj" ( Atj(Aj"  J" Ak" ( O@  ( Atj(j"  Jº Aj!  ! ! ! Aj!  ( " ( O@ ( Atj(" H@ ! ( O@ ( Atj(" E@ Aj!  Ak(Av A Ak(Av" AIJA @A�  ™ (@  ¥Ò@ (@  ¥Ò"E@ (A ª!AA‡˜"A6 A6 A6 A: A: Ak(Av! 6 A6 6 A:   (DË! A°»' ÂAà¿'Â! Ak(AvAð»' ÂAл'ÂAA À' (D(  ! ! ((!A Aë˜"Ð (! (! (! A6 A�º'6  6  6  6  6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 A � (H  ¥Ò@ (H  ¥Ò"E@ (A ª!AA‡˜"A6 A6 A6 A: A: Ak(Av! 6 A6 6 A:   (HÕË! A°»' ÂAк'Â! Ak(AvAð»' ÂAл'ÂA ! ! ((!A Aë˜"Ð (! (! (! A6 A�º'6  6  6  6  6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 A ÷@ (AG@ AàçÂA�ÏAÀ“A ¹'A�ÏAÀ“ Ak(AvA€å ÁAÅAGA  ÂÂA �Â"Ak(AvA€å ÁAÅAGA  ÂÂA°ŽÂ@@@@@@@@@@@@@@@@@@@@@@@@@@ (  A°�  A°é  AÐé  A°Ú  Aðé  A€“  Aà’  AЦ  Að¦  A�§  A°§  AЧ  Að§ A�¨ AÀ¨ AਠAÀê A�ê  A°“  Aà“  AÀ�  A€�  AÀ�  Að�  A°‘  Að Â! ((!A Aë˜"Ð (! (! (! A6 A°ç6  ( (" ¥ÒE@ A€Æ ( ÐA ( (" ¥Ò"E@ ("( ÄE@ Aй' (ÂA ­'ÂA�ÏAÀ“ ("Ak(AvA€å ÁAÅAGA  ÂÂAð¬'ÂA�ÏAÀ“ Ak(AvA€å ÁAÅAGA  ÂÂ! ((!A Aë˜"Ð (! (! (! A6 A°¬'6    6  6  6  6 A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A ¡@ (AG@ AàçÂA�ÏAÀ“A€¬'A�ÏAÀ“ Ak(AvA€å ÁAÅAGA  ÂÂA �Â"Ak(AvA€å ÁAÅAGA  ÂÂA°ŽÂ@@@@@@@@@@@@@@@@@@@@@@@@@@ (  A°�  A°é  AÐé  A°Ú  Aðé  A€“  Aà’  AЦ  Að¦  A�§  A°§  AЧ  Að§ A�¨ AÀ¨ AਠAÀê A�ê  A°“  Aà“  AÀ�  A€�  AÀ�  Að�  A°‘  Að Â! ((!A Aë˜"Ð (! (! (! A6 A°ç6  ( (" ¥ÒE@ AÐÅ ( ÐA ( (" ¥Ò"E@ (! ( (– ( ÄE@ AÀ­' (ÂA ­'ÂA�ÏAÀ“ ("Ak(AvA€å ÁAÅAGA  ÂÂAð¬'ÂA�ÏAÀ“ Ak(AvA€å ÁAÅAGA  ÂÂ! ((!A Aë˜"Ð (! (! (! A6 A°¬'6  ( (" ¥•E@A   6  6  6  6 A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A »AÐÅA€Æ A€ÆÄ! A€ÆÄ (  ¥Ò (  ¥Ò @A°Æ ÂA Å ÂA�ŽÂ ÂAð�ÂA�ÏAÀ“ Ak(AvA€å ÁAÅAGA  ÂÂA �Â!A°ŽA°“Aà“ AÐÅÄÂAðã ÂAÐãÂ! ! ((!A Aë˜"Ð (! (! (! "A6 AàÄ6 6 6 6 6 6 ! "( "Aj!A°Æ ÂA Å ÂAÀ�Â!A°� ÂA�� ÂA€®'Â! ((!A Aë˜"Ð (! (! (! "A6 AàÄ6 6 6 6 6 6 "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 º@  ("Ak(AvH  Ak(AvOA  Atj/ A "A F A F A Fr A Frr@ Aj!   (Ak(AvH@ ( Þ! ((!A Aë˜"Ð (! (! (! A6 A°¨6  6  6  6 A°Š6 A6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 A A  O@ ("( J@  ( O@ ( Atj("E@ (AF@  ("( O@ ( Atj("E@ ( (– Aj!  @ ("( J@  ( O@ ( Atj("@@ - (AF@ (AÐæ–  (AF@AA¦˜!AA˜" 6  ž  6 A6 A6 A! A!A! A!@ AH@  ("( O@ ( Atj("@A! "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk!@  O@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  @ (   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ ( – ( A! "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk!@  O@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A "E@  ( "( O@ ( Atj("E@ AÀ…A°ÄÌ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A! E@ (! @ "(" (ü"(AF@ ( ( Þ! (!  (AGA (A�§Ä E@@@@@@@@@ ( AÐé  A°Ú  A°é  A°�  Aðé  AÀê  A�ê  ( ! A°ç ( (AàçÂA�§ýÂA°ŽÂ ÂAÇA  A�§ (Aþ" ( AN@ ( ( Þ! (! ((! A Aë˜" Ð (! (! (! A6 A°¨6 6 6 6 6 A6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A  ("AG@ (!AðÀ' A «Â!  (! (!AA‡˜" A6 A6 A6 A: A: 6 6 6 A: A:  ((! A Aë˜" Ð (! (! (! A6 A°¨6 6 6 6 6 A6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A "@ (A ( (Ak(AvF  ( ( ( (È ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A! Aj!  E q@ ( ( A°Ä¦!  (AA¦˜!AAŠ˜" 6  ž  6 A6 A6 ( Ak(Av!AA‡˜"A6 A6 A6 A: A:  6 A6  6 A: A: 6  E@ Å  ( ("A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò ( – ( A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "E A! @@@@@@ (" (ü" (AF (!@@@@@@@@@@ (    (" AGA (A  ( ÑE   (AA¦˜!AAŠ˜" 6  ž  6 A6 A6 ( ( ! (!AA‡˜"A6 A6 A6 A: A:  6  6  6 A: A: 6  Å  (AG  ( ÑE (" Ak(AvOA Atj/ AôF@  (AA¦˜!AAŠ˜" 6  ž  6 A6 A6  Å (AG  (ô "-E@ A°¨ ( (Þ ( (ÇA  ( "E (AF@  (AA¦˜!AAŠ˜" 6  ž  6 A6 A6 ( (!AA‡˜"A6 A6 A6 A: A: Ak(Av!  6 A6  6 A: 6  Å (AF (  (Ì (  (Í "@  (AA¦˜!AAŠ˜" 6  ž  6 A6 A6 ( 6  Å (AG  (ô "-E@ A°¨ ( (Þ ( (ÇA  ( " E @ ( "( J@ ( O@ ( Atj("E@ (AG@ (! ( "( O@ ( Atj("E@ AÀµ'A�ÏAÀ“@@@@@@@@@@@@@@@@@@@@@@@@@@ (  A°�  A°é  AÐé  A°Ú  Aðé  A€“  Aà’  AЦ  Að¦  A�§  A°§  AЧ  Að§ A�¨ AÀ¨ AਠAÀê A�ê  A°“  Aà“  AÀ�  A€�  AÀ�  Að�  A°‘  Að "Ak(AvA€å ÁAÅAGA  ÂÂ! A°ç ( (AàçÂ@@@@@@@@@@@@@@@@@@@@@@@@@@@   AÐé  A°Ú  A°é  Aðé  A ®'  AЦ  A�§  A�¨  Að¦  A°§  Að§  Að§  AÀ�  A€� A°‘ AЮ' A�ê A€¯' AЯ'  A�°'  Aà°'  A°±'  Að±'  A°²'  A€³'  Aг'  A�§ ýÂA°ŽÂ ÂAÇ  Aj!  A! @ ( ( J@  (AA¦˜!AAŠ˜" 6  ž  6 A6 A6 ( ( "( M@ ( Atj("E@ (!AA‡˜" A6 A6 A6 A: A: Ak(Av! 6 A6 6 A: 6  Å Aj!  (AG  (ô "-E@ A°¨ ( (Þ ( (ÇA  ( "E @ ($"( J@ ( O@ ( Atj("E@ (AGA ( ( N A ( "( O@ ( Atj("E@ (AG @ (A€¶'Â! ((! A Aë˜" Ð (! (! (! A6 A°ç6  Aj!  A! @ ($( J@  (AA¦˜!AAŠ˜" 6 ž 6 A6 A6 ( ($"( O@ ( Atj("E@ (!AA‡˜" A6 A6 A6 A: A: Ak(Av! 6 A6 6 A: 6 ( ( "( M@ ( Atj("E@ AàÜAÐÚ -!AA‡˜" A6 A6 A6 A: A: Ak(Av! 6 A6 6 A: 6 Å Aj!  (AF@  ( ÑE  (AA¦˜!AAŠ˜" 6  ž  6 A6 A6 (AA‡˜"A6 A6 A6 A: A: A¬ø(Av! A°ø6 A6  6 A: 6  Å (AGA (Aà“Ä E  (ô "-E@ A°¨ ( (Þ ( (ÇA  ( "E   (A  !Î"@  (AA¦˜!AAŠ˜" 6  ž  6 A6 A6 ( ( A «!AA‡˜"A6 A6 A6 A: A: Ak(Av!  6 A6  6 A: 6  Å (AGA (A°“Ä E  (ô "-E@ A°¨ ( (Þ ( (ÇA  ( "E    (@@@@@ (Ak A°«  A€¿  AЮ  A°Ç  A� Ï"@  (AA¦˜!AAŠ˜" 6  ž  6 A6 A6 ( (!AA‡˜"A6 A6 A6 A: A: Ak(Av!  6 A6  6 A: 6  Å  (AG  (ô "-E@ A°¨ ( (Þ ( (ÇA  ( " E AA¦˜!AA˜" 6 ž 6 A6 A6 @ ( "( J@ ( O@ ( Atj("E@  (E@AA ª  ( "( O@ ( Atj("E@   (A€¿Î"E ( A « ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!   (AA¦˜!AAŠ˜" 6  ž  6 A6 A6 ( ( ( AÀ…¦!AA‡˜"A6 A6 A6 A: A: Ak(Av!  6 A6  6 A: 6  Å  (AF (AF (AÀ�ÄA (A°‘Ä A (A€�Ä A  (AF (@@@@@@@@@@ (Ak  AЦ A�§  A�¨  Að¦  A°§  Að§  AÀ�  A€�  A°‘  A� ÄA E@ (AF@ (A�·'Â@@@@@@@@ ( AÐé  A°Ú  A°é  A°�  Aðé  AÀê  A�ê  ( Â! ((! A Aë˜" Ð (! (! (! A6 A°ç6 6 6 6 6 A6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  (!@@@@@@@@ ( AÐé  A°Ú  A°é  A°�  Aðé  AÀê  A�ê  ( ! A°ç ( (AàçÂ@@@@@@@@@@@@@@@@@@@@@@@@@@@   AÐé  A°Ú  A°é  Aðé  A ®'  AЦ  A�§  A�¨  Að¦  A°§  Að§  Að§  AÀ�  A€� A°‘ AЮ' A�ê A€¯' AЯ'  A�°'  Aà°'  A°±'  Að±'  A°²'  A€³'  Aг'  A�§ ýÂA°ŽÂ ÂAÇ  (" ( A°‘Äþ" ( AN@ ( ( Þ! (!  (A€�Ä (AoA @A°š (A «ÂA –ÂA� Aàž (AFÂ! ((! A Aë˜" Ð (! (! (! A6 A°¨6 6 6 6 6 A°›6   (AA¦˜!AAŠ˜" 6  ž  6 A6 A6 ( (! (!AA‡˜"A6 A6 A6 A: A:  6  6  6 A: A: 6  Å  @@@@@@@@@@ (Ak  AЦ A�§  A�¨  Að¦  A°§  Að§  AÀ�  A€�  A°‘  A� ! (AGA ( Ä E   ( ("AF E AFr A Frrþ" ( AN @@@@ (Ak A  A  A  A " (G@ (A FA°¸'Aà¸'A� (A F ! AÀ£Â A «ÂA€ô ÂA°ŽÂ (A «Â! ((! A Aë˜" Ð (! (! (! A6 A°¨6   (AA¦˜!AAŠ˜" 6  ž  6 A6 A6 ( (! (!AA‡˜"A6 A6 A6 A: A:  6  6  6 A: A: 6  Å  ( ( Þ! (!  (!@@@@@@@@ ( AÐé  A°Ú  A°é  A°�  Aðé  AÀê  A�ê  ( ! A°ç ( (AàçÂ@@@@@@@@@@@@@@@@@@@@@@@@@@@   AÐé  A°Ú  A°é  Aðé  A ®'  AЦ  A�§  A�¨  Að¦  A°§  Að§  Að§  AÀ�  A€� A°‘ AЮ' A�ê A€¯' AЯ'  A�°'  Aà°'  A°±'  Að±'  A°²'  A€³'  Aг'  A�§ ýÂA°ŽÂ ÂAÇ  6 6 6 6 A6  ((!A Aë˜" Ð (! (! (! A6 A°¨6 6 6 6 6 A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  A!@ ("( J@  ( O@ ( Atj("E@ ( (" ¥•E@ (! Aàå (ÂAÀ�Â! (( !A Aë˜" Ð (! (! (! A6 A°å6 6 6 6 6 A°¤'6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ž ( (ü"(AG@ (AF@ ( ( Þ! (! ((!A Aë˜"Ð (! (! (! A6 A°¨6  6  6  6  6 A6 "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  A°ç@@@@@@@@ ( AÐé  A°Ú  A°é  A°�  Aðé  AÀê  A�ê  ( ! ( (AàçÂAðéýÂA°ŽÂ ÂAÇ A  (ô "-E@ A°¨ ( (Þ ( (ÇA  ( "E@A (!AA‡˜"A6 A6 A6 A: A: Ak(Av! 6 A6 6 A: ‚  ‰"E@ A�¯ (AÀ’ (ÂA ê ÂAЯÂÙ E@ ("@ ((! ï! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A6 A (!AA‡˜"A6 A6 A6 A: A: Ak(Av! 6 A6 6 A: (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AŒ (Av@ ( A� (™ A ßAAǘ"�@ ( J@  ( Atj(Å Aj!  AA¦˜!AAý˜" 6  ž  6 A6 A6 A!@ J@@ ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ Aj!  ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj! Aj!   —AA¦˜!AAý˜" 6  ž  6 A6 A6  (  ¥ÒA E@  (  ¥Ò"E@ ("( (ü"(AGA (A°‘Ä E@  ( ( (Aþ"( AN@  A A‹˜"A6 A6 A6 A: A� 6 A: A6 A6 (! (!  (6  6  6 A:A!@@ ( L Â! - ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!   H (A (( AF  ("( E@ (("E@ …AÐæÄA �@  ( "( H  ( O@ ( Atj("E@ (A (( AF  ("( E@ (("E@ …AÐæÄA A @ Aj!   ‡ Ak(Av!@  H@  Ak(AvOA  Atj/ "Aÿ·M A€°Oq Aj" Hq  Ak(AvOA  Atj/ "Aÿ¿M A€¸Oq Aj!  A tjA€¸ÿkAýÿ Aýÿ  Aÿ¿M A€°Oq "A€I@ ) ­…B³ƒ€€€ ~7 )B|7 A€I@ ) AvAÀr­…B³ƒ€€€ ~7 )B|7 A€€I@ ) A vAàr­…B³ƒ€€€ ~7 )B|7 ) AvAðr­…B³ƒ€€€ ~7 )B|7 ) A vA?qA€r­…B³ƒ€€€ ~7 )B|7 ) AvA?qA€r­…B³ƒ€€€ ~7 )B|7 ) A?qA€r­…B³ƒ€€€ ~7 )B|7 Aj!  Ù ~ ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@  ( F  A~q!  A @ ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ (!AA¿˜"A: A6 A� 6 A6 A: 6 ž   ((,"( O@ ( Atj(" E@  " ("(,"( O@ ( Atj("E@ AAŒ˜"A: A6 A6 A� 6 @ ("AN@  (( N@A�Å $ AAÐÊA�Å Â" Ak(A~q7#"  ("E@A�Å $ AAÐÊA�Å Â" Ak(A~q7#"  A:  (6  6 ( "E@A�Å $ AAÐÊA�Å Â" Ak(A~q7#"   6  ž  ("6  ž   A$ Ak( " - (" (("( O@ ( Atj("E@ )"BS@B!  )|! ("AN  (( HA @ (" ("( O@ ( Atj("E@  X  4XA  (! §!A Aߘ" ("6  ž  §"AH  j"A AJ    J " (j6  AH  j"A AJ    J "   J k6 A !  ("E@ (  Û"-E@  (A í! A «ÂAðŽ! ÂAÀì!Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A ( ""A°ï!AÇE A AAÿÿÿÿÈ"Aà�AÅ"AH  A È!  AjAÿÿÿÿÈ!A! AÐï!#Ã@A! A Ak(AvAkÈ! @A  "Ak(j!@  I@ /"A€I Aj A€I Aj A€øqA€°F Aj Iq@ /A€øqA€¸F@ Aj! Aj!  Aj ! Aj!  A¦˜!  Ak(Av Ñ Ak(!A Aߘ" 6  ž  6  6A Aߘ"A6 A6 A6 ("AüÿÿÿK@ !  A¦˜"6  6  6A!A!@ ( J@@ ( j-"AÚM AÁOq AÁk AúM AáOq AÇk A9M A0Oq Aj A-F A+FrA> AßF A/FrA? A F A=Fr A Fr A Fr@ A Atr! Aj" AN@ "Aj!  Ak" vAÿq!  (O@ ( j : A tAkq! Aj!  ("A AL! AH  j"A AJ    H k"A AJ"A¦™" ( j ü Ak(! AH@ AF  !  J@ A Aߘ" 6  ž  6  6  "E A! ©""Ak( j!@  I@ /" A€I Aj A€I Aj A€øqA€°F Aj Iq@ /A€øqA€¸F@ Aj! Aj!  Aj ! Aj!  A¦˜!  Ak(Av Ñ Ak(!A Aߘ" 6  ž  6  6 AA®˜"A6 A6  6  6  " ( ("  ( (Û"-E@  ( ( ©¸ !# A°Ô¡" (A AG@Aðî! ÂAÀî! ÂAÀí!Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( ª« ! ( ûAA¿˜"A: A6 A� 6 A6 A: 6 ž ³  Aðï!ÄA�·  A ð!ÄAÐð! A�ÒÆ"AH   AjAÿÿÿÿÈ !  ú ! !A A¦™"A�ó!A ü AA˜" 6  ž  6 A 6 A6 A! ( J  ( Atj(#à  ( O@ ( Atj("E@ A Ak(Av Ak(AvkÈ Aj!    !AA¦˜!AA˜" 6  ž  6 A6 A6 A!@ Ak(Av" J@AAA " "O  Aj F  Atj/"A€øqA€°Gr@     Atj/"A€øqA€¸G  A t jA€¸ÿk "AÿÿK! A A.FA AßFA A-FA! A9M A0OqA AÚM AÁOq A AúM AáOq A€I A¬ó!(Av!@  J@  jAv"At" A¬ó!(AvO@  AtA°ó!j(O@ Aj!  !  A E  AtAk"A¬ó!(AvO@  AtA°ó!j(M @    jÈ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ ( "Aj" (AvK@  AA™ ( Atj"Aà™6  At Aà™Ÿ  6  j!  ( ( A� ¦A� "Ak(AvE@Aðð! A «Â! A � Â!A!@ (  ¥•@ Aà™Â A «ÂA � Â! Aj!  ( – ("@ "Ak("AµF@ (Aà� Â!#  ("A AL! k"A AJ"A¦™" ( j ü Ak(! AH@ AF  ! J@ A Aߘ" 6  ž  6  6 šAA«˜"A: A6 A� 6 A6 A: 6 ž  A°F@ (Aà� Â! (  ("A AL! k"A AJ"A¦™" ( j ü Ak(! AH@ AF  ! J@ A Aߘ" 6  ž  6  6 ™AA«˜"A: A6 A� 6 A6 A: 6 ž  "-E@ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA¿˜"A: A6 A� 6 A6 ("6 ž ( "6 ž  (!AA¿˜"A: A6 A� 6 A6 A: 6 ž  # (ª"-E@ ( ( (üø ( ¸ !A!#"( "º " ! A:Q  A°Ô¡"@ A:Q   A -PA (L A     §"@  (6LA  A:QA ! -QE@ (L”Û   (AFA @A”Û   -E A�ÒÄA A�ÒÆ"ALA�Ò A È " "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒA  ( A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (-EA @A”Û  ("A AL!  k"A AJ"A¦™" ( j ü Ak(! AH@ AF  !  J@ A Aߘ" 6  ž  6  6  (AFA @  6  ž  47A(Až˜"A6 A6 B7 A: A: A: A6 A: A6 A: A6  6  ž  47 A: ( ™ AA ˜"A6 A6 A� 6 A6 A6 A6 A�ñ!6  6  6  ž  ¨A A®˜"A: A: A� 6 A6 A: A:  "-E@  ( (üø ( ª«!AA¿˜"A: A6 A� 6 A6 A: 6 ž 2A AȘ"A6 A6 A� 6 A6 A6 •@@@@@@@@@ ( AÐö Aðõ A�ö A µ" (A ªÂ AÀµ" (A ªÂ Aðµ" (A ªÂ A�¶" (A ªÂ Aà™ ( A°¶" Ô (( !@  J@  jAv" ("( O@ ( Atj("E@  (" ("G@AA  H  @@@ ( ( (÷  ( (IA ( (K  A "E@  AH@ Aj! !  A k mA0A…˜"A6 A� 6 A6 A6 B7 B7 AAA†A¤6(  6  6  ž  6  ž  Ò@@@@@@@ (Ak  AàÖ$ (A «ÂA�ø* )A ¬ÂAÐ÷* ) A ¬ÂA ç AÀø* A ù* A€ú* AÐú* ((!A!A�û*!@ ( " J@  O@ ( Atj("E@ AÀ… (ÂAðÛ ( O@ ( Atj("E@ @@@@@ ( AÀû*  A€ü*  A°ü*  Aàü*  A°ý* ÂA ’ÂÂ! Aj!   ( à AA‰˜"A6 A6 A� 6 A� 6 A€’AÅAG@ A°ï!AÇ@ AAÿÿÿÿÈA€×$Í! A6 ( AN@ (("E@  6  ž ( AM@ (("E@  A6 ( E@ (("E@  6  ž A ×$AÇ@ A6  AAÿÿÿÿÈ"6  ž AÀ×$AÇ@ A6  AAÿÿÿÿÈ"6  ž A6  A6  "Ak(j!@  I@ /"A€I Aj A€I Aj A€øqA€°F Aj Iq@ /A€øqA€¸F@ Aj! Aj!  Aj ! Aj!  A¦˜! Ak(Av Ñ Ak(!A Aߘ" 6  ž  6  6A!  ( J ( j-A%FA Aj!  A E AA¦˜!AAÒ˜" 6 ž 6 A6 A6 A!@@  ("N  O@ ( j-"A%G@ ( "Aj" (K@ AA™ ( j : 6 Aj!  ( AjkAH@@ (" J@  O@ ( j-! ( "Aj" (K@ AA™ ( j : 6 Aj!   Aj" (O@  ( j-"A9M A0Oq@ A0k  A7k AÆM AÁOq  A×k AæM AáOq A "AH@ ( "Aj" (K@ AA™ ( jA%: 6 Aj!  Aj" (O@ ( j-"A9M A0Oq@ A0k  A7k AÆM AÁOq  A×k AæM AáOq A "AH ( "Aj" (K@ AA™ ( jA%: 6 Aj" (O@ ( j-! ( "Aj" (K@ AA™ ( j : 6 Aj ( "Aj" (K@ AA™ ( j At r: 6 Aj !  A Aߘ"A6 A6 A6 ( "AüÿÿÿK@  A¦˜"6  6  6A!@ ( J@ ( j-! ( M@ ( j : Aj!  ”E@Aà×$$ AAÐÊAà×$Â" Ak(A~q7#"@A$ Ak( (" Ak(Ò "6  ž  ¢@ (" ("(H  (O@ ( j-"A F A F A Fr A FrrA @ (Aj6  A A�˜"©  (6 (" ("(O@ ( j-"AÛF AûF"r A€Nq@ AA 6A!@@ (" ("(O@ ( j-"A"F@ (Aj6@ (" ("(O@ ( j-"A"F@ (Aj6  AÜF@ (Aj6 (Aj6 (Aj6 AûF AÛFr@ Aj! AýF AÝFr@ Ak"E    AûF@ A6 (Aj6@ (" ("(H  (O@ ( j-"A F A F A Fr A FrrA @ (Aj6  (" ("(O@ ( j-AýF@ (Aj6@@ (" ("(H  (O@ ( j-"A F A F A Fr A FrrA @ (Aj6  ("! Aj6@@ (" ("(O@ ( j-"A"F@ (Aj6  AÜF@ (Aj6 (Aj6  (! (  (“! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 @ (" ("(H  (O@ ( j-"A F A F A Fr A FrrA @ (Aj6  (! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 (Aj6 ( ! Ajâ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 @ (" ("(H  (O@ ( j-"A F A F A Fr A FrrA @ (Aj6  (" ("(O@ ( j-! (Aj6 AýG  AÛF@ A6 (Aj6@ (" ("(H  (O@ ( j-"A F A F A Fr A FrrA @ (Aj6  (" ("(O@ ( j-AÝF@ (Aj6@ ( ! Ajâ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 @ (" ("(H  (O@ ( j-"A F A F A Fr A FrrA @ (Aj6  (" ("(O@ ( j-! (Aj6 AÝG  A"F@ A6 (Aj6@@ (" ("(O@ ( j-"A"F@ (Aj6  AÜF@ (Aj6 (Aj6   AôF@ A6 (Aj6 AæF@ A6 (Aj6 AîF@ A6 (Aj6 A6@ (" ("(H@  (O@ ( j-"A9M A0Oq A-Fr A+Fr A.Fr AåFr AÅFr@ (Aj6   (6  ÏAA�˜""A� 6 A6 A6  ("6  ž - -A  (( ( JA  ( Aj ( !A!A!@  H@  ("(O@ ( j-A F@ Aj! Aj! Aj!   6   k6  ¹|~ (AFA (AF !Aàî$@@@@@@@ ( A°�  A�ï$  AÀï$  Aðï$ ( ( (“š   A�ð$  A°ð$  ç"(E@AÐð$ )A ¬ÂA€šÂ  (AF@AÐð$ )­ÂA€šÂ  A€ñ$A°� + " ¡Db A°ñ$A°Þ ½" B?ˆ§" Da  Bÿÿÿÿÿÿÿƒ B4ˆBÿƒ§AŽ � #‘"Ak(Av!#ïAk"A{N ALq Ak L  Aj k"ALA� AàÜ Ë ÂAÐÌ AN A Aj"ÈA �  AÿÿÿÿÈÂAð²A k"ALA� AàÜ Ë Â Â  AF  AAÈA � AAÿÿÿÿÈ ANAÐñ$ A «ÂAðñ$A kA «Â  ! A€�   ÂA€šÂ ÂA°î$ Â!  ( ( ! A (AF ! -E@ A: 6 ž 6 : é (AF@  (AG@ A�î$ ÂäA Ak(Av AÀ…ÍAA˜"A6 A6 A6 A6 Aš !A A�˜"© A6  (6  (6  6  ž  6  ž ( " ( ( " H!A!@ H@ (! ( O@ ( Atj("E@ A “AÇ@ AAÿÿÿÿÈ! ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( ! ( "( O@ ( Atj("E@ ! ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (! ( "( O@ ( Atj("E@ (! ( "Aj!  (AvK@  AA™ ( Atj 6  6 Aj!   à -@A ("E@A ( ( !@ ( " J@  O@ ( Atj("E@ A “AÇ@ Aj! Aðë$ A «ÂA°ë$ (ÂA�ë$ ( A «ÂAÀê$Aàê$ ( AFÂ! (! -E@ A: 6 ž 6 A: A ( " ( "( H@ ( M@ ( Atj("E@ (Aj! -E@ A: A°ä$6 A°ä$ž 6 A: A A –~ ( ("kAL@A!@  (H@  ("(O@ ( j-"A0I A9Kr@A! A0k¬ B ~|! Aj!  @A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 A6 A6 7  ("(! (! ("AH j"A AJ  J ! AH j"A AJ  J !A Aߘ" ("6  ž  ( j6   J k6AÀA„˜"ö 6 (6 A: õ"- (A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 A6 A6 B7 ½ (! "("( "Aj!  (AvK@ AA™ ( Atj 6 6 (! ("( "Aj!  (AvK@ AA™ ( Atj 6 6 ("(! (! ("AH j"A AJ  J ! AH j"A AJ  J k"A AJ"A¦™" ( j ü Ak(! AH@ AF  ! J@ A Aߘ" 6  ž  6  6 ”E@ (! -E@ A: A€á$6 A€á$ž  6 A: A�  (" Ak(Ò ¨ ("(! (! ("AH j"A AJ  J ! AH j"A AJ  J !A Aߘ" ("6  ž  ( j6   J k6AÀA„˜"ö 6 (6 A: õ"- (A8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60 M (AG@ A€ÆäC ç"(E@ )µ (AF@ )´ + ¶ © (AG@  äB ç"(E@  )"T@A€†%AÐð$ A ¬ÂA€šÂÂA°î$ Â! (AF! (! -E@ A: 6 ž 6 : B ) (AF@A€†%AÐð$ )­ÂA€šÂÂA°î$ Â! (AF! (! -E@ A: 6 ž 6 : B  äB _~~ (AF@ ç"(E@ )Bÿÿÿÿƒ  AÐí$äB "BS@A Aÿÿÿÿ §" AÿÿÿÿK Š}AA-˜ AÿÿÿÿK@ AtA-˜!A ú$ A «Â! (AG@  ä  @  J@  ( ( N@Aðë$ A «ÂA°î$ Â! (! -E@ A: 6 ž 6 A:   ( "( O@ ( Atj("E@ ê!  Ak(AvO@  Atj 8 -@  Aj!   ( "( H@  ( O@ ( Atj("E@ (Aj! -E@ A: A°ä$6 A°ä$ž 6 A:  ÷}AA¦˜!AA.˜" 6  ž  6 A6 A6 ! (AFA  AÀ°%äA E@  A!@ ( "( J@ ( O@ ( Atj("E@  ê! "( "Aj!  (AvK@  AA™ ( Atj 8  6 -@  Aj!   È~AA¦˜!AA¤˜" 6  ž  6 A6 A6 "(AFA AÀ°%äA E@  A!@ ( "( J@~  ( O@ ( Atj("E@ (AF@ ç"(E@ )Bÿÿÿÿƒ  AÐí$äB "BSAAÿÿÿÿ §" AÿÿÿÿK ! "( "Aj!  (AvK@  AA™ ( Atj 6  6 -@  Aj!   ¬AA¦˜!AA˜" 6  ž  6 A6 A6 "(AFA AÀ°%äA E@  A!@ ( "( J@  ( O@ ( Atj("E@ (AG@ A�‡äA�  ( ( (“ ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 -@  Aj!   „@ ("( J@  ( O@ ( Atj("E@  Ä@Að°% ÂA€šÂ!  ("( O@ ( Atj(! "-E@ A: 6 ž 6 A: A Aj!  ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A R@ ("( J@  ( O@ ( Atj("E@  Ä@A Aj!  A � (!AA•˜"A6 A6 6 6 ! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 � AH  Nr@ (!AA•˜"A6 A6 6 A6 ! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Ë (" (( ( k"J@ @@@ ("(Ak A  A  A (lN@@@ ("(Ak A  A  A (lA ! @@@ ("(Ak A  A  A (lH@AÀÆ ((A «ÂA€Æ Â"$ AAÐÊ Â" Ak(A~q7#"@A$ Ak( A A˜"A6 A6 A6 ("("Ak(" ( ( (kj"k  k  A€€€€xF"I  Ir@  6   j6  6@@@ ((Ak A  A  A !A!@  ("(H@  l!@@@@@ (Ak  (O@ ( j,   (O@ ( j-  Av  (AkJr@ ( j.Á  Av  (AkJr@ ( j/  Av  (AkJr@ ( j( !  j" (AvO@ ( Atj 6 Aj!  ( j6 A ª}A Aç˜"A6 A6 A6 ((Av"AÿÿÿÿK@  At"A¦˜"6  6  6A!@ ("(Av J@  (AvO@ } ( Atj(!@@@@@ ("Ak ²#ª#¬ AF”" \}C€¿ C€¿—  ³#«”  ³#­”  ³  ¾ !  (AvO@ ( Atj 8 Aj!   y (! ((" Þ"AN  ("( O@ ( Atj(A "AHA  ž  "AH@A ( ( AA¢£ ¹ (" (("( O@ ( Atj("E@ ( " ("( O@ ( Atj("E@ (AHA (( (L @A�Å $ AAÐÊA�Å Â" Ak(A~q7#"@A$ Ak( ( Ë (" (("( O@ ( Atj("E@ "(! ø!  ( O@ ( Atj("E@ ("! (! AHA  (( N @A�Å ö  ("( O@ ( Atj(E@ ( " ("( O@ ( Atj("E@ (( "AF@AÐà ö "AF AFr@ ( ( AA¢"E@A AA¢˜""A6 A6A A�˜"A6 A6 A6 A6 A6 6  6  6  ( ( #ÐAA AF¤"E@A AA¢˜"A6 A6 6 6 õ  } -@AA-˜AÀA-˜!@ AH@  ("Ak(AvO@  Atj*! Ak(Av M@  Atj 8 Aj!   (! ( ! (!AA-˜AÀA-˜"Ak(AvE@ C€?8 Ak(AvAM@ C€?8 Ak(AvA M@ C€?8( Ak(AvAM@ C€?8< Ak(AvE@ *! Ak(AvA M@  80 Ak(AvAM@ *! Ak(AvA M@  84 Ak(AvAM@ *! Ak(AvAM@  88 Ak(AvE@ *" ’" ”! Ak(AvAM@  *"”! Ak(AvAM@  *"”!  ’" ”!  ’" ”! Ak(AvAM@ * "”!AA-˜AÀA-˜"Ak(AvE@ C€? “ “8 Ak(AvAM@   ”"’8 Ak(AvAM@  “8 Ak(AvAM@ C8 Ak(AvAM@  “8 Ak(AvAM@ C€? “ “8 Ak(AvAM@  ”"  ”"’8 Ak(AvAM@ C8 Ak(AvAM@  ’8 Ak(AvA M@   “8$ Ak(AvA M@ C€? “ “8( Ak(AvA M@ C8, Ak(AvA M@ C80 Ak(AvA M@ C84 Ak(AvAM@ C88 Ak(AvAM@ C€?8« ò~ -@A A·˜"A6 A6 A6 AЙ#6 † - -Atr! @ A‚I@ A… "-E@ ˆ  ( ((j)‡ "-E@   † "-E@  )! (6 A: B7 : @ B 4 "}V@A A·˜"A6 A6 A6 A š#6 †  |" (4T § (( 6 ((6 AA¯˜"A: B7 A� 6 A6 A: 7 Ù~ E@AAõ˜"A: A6 A� 6 A6 A: A6  A K@A A·˜"A6 A6 A6 A°˜#6 Ž @ 4 )"B|" 4YA  (4Y B�§! §!B! (" ((H  (( k"AN@A!@ AH@  ((  jj1 ¬B††„! Aj!    jAjAv" J A!@  H@  ((  jj1 ¬B††„! Aj!  ­" )|7AAõ˜"A: A6 A� 6 A6 A: B †B}  ­ˆƒ>  A A·˜"A6 A6 A6 A€™#6 Ž Ç  (( (k"A AJJ@A°×" A «ÂA€×" (( (k"A AJA «Â!A A·˜"A6 A6 A6 6 Í  ("j6AA÷˜"A: A6 A� 6 A6 A: 6 «~@@ –"-E@ ”  -"Aÿq­ †„! A€qE B|"BÀT A A·˜"A6 A6 A6 A€²#6 † AA¯˜"A: B7 A� 6 A6 A: 7 Á~ B 4"}V@A A·˜"A6 A6 A6 Aà�#6 Û  |" (4V@A�‘# A ¬ÂAÐ�# A ¬ÂA �# ((A «Â!A A·˜"A6 A6 A6 6 Û >« å  (( (k"A AJ¬V@A°×" A ¬ÂA€×" (( (k"A AJA «Â!A A·˜"A6 A6 A6 6 ê ("! § j6 ("(! (!A Aߘ" ("6  ž  AH  j"A AJ    J " (j6  AH j"A AJ  H "  J k6AA¬˜"A: A6 A� 6 A6 A: 6 ž *A A·˜"A6 A6 A 6  6  *A A·˜"A6 A6 A6  6  *A A·˜"A6 A6 A6  6  *A A·˜"A6 A6 A6  6  Q (Ak(Av@ AðÛ (Â! A A·˜"A6 A6  (6  6  L~ )" T@AÀ¯# A ¬ÂAÀ…ÂA°®#ÂAð®# A ¬Â‰ Û  « h V@AÀ¯# A ¬ÂAÀ…ÂAл#ÂAð®# A ¬Â!A A·˜"A6 A6 A 6  6 Û « c E@  AF@  AF@  A°¬# A «Â"$ AAÐÊ Â" Ak(A~q7#"@A$ Ak( Ë (A (AJ @ (6 (( ! ((((AL@ ( "( AJ@ ( "AL@ ( Ak"Atj"(! A6  6 ("(((AL@ ("A6  6  ž ( E@ ("(  AAA™ A6  ("6  ž  (6 ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  î AHA  (( N @A A·˜"A6 A6 A6 A€Ø"6AA¼˜"A: A6 A� 6 A6 ·"6 ž 6 ž   ("( O@ ( Atj("E@ AA¼˜"A: A6 A� 6 A6 A: 6 ž   (( Am"¬ ­W@A�¯! A «ÂAЮ! A ªÂ"$ AAÐÊ Â" Ak(A~q7#"@A$ Ak( ((" Al"Atj( AjAt j( AjAt j( Œ BÓªÕ*V@A A·˜"A6 A6 A6 A€»#6 Û ("( ! (   §Al"AA™  6 @ H@ ( AtjA6 Aj!  « ø~~ Aÿq­B†!B BQ B P Pr B B~ €V   ~ "BQ BÿÿÿÿVr@A A·˜"A6 A6 A6 A€Ý"6 Û (" 6  : A6 A:  7 B7 ( ™ -E@A A·˜"A6 A6 A6 AàÝ"6 Û > A:« ø~~B@@@@@@   A  A  A  A  A  A ¬ Aÿq­~"BQ BQr B P Pr B B~ €V   ~ BQ BÿÿÿÿVr@A A·˜"A6 A6 A6 A€Ý"6 Û (" 6  :  6  :  7 B7 > A:« ç~~B ()"BQ BQr B P Pr B B~ €V   ~ "BQ BÿÿÿÿVr@A A·˜"A6 A6 A6 A€Ý"6 Û ( ™ -E@A A·˜"A6 A6 A6 AàÝ"6 Û > -@ ("(  AAA™ A6 « ® A: ("(  AAA™ A6 A!@ ( J@ ( Atj(! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 Aj!  (( " ( J@ 6 ò~@  (4V@ BÿÿÿÿÿÿÿÿÿV@A A®˜"A: A: A� 6 A6 AÐË"6 AÐË"ž  BìÿÿÿV@A A®˜"A: A: A� 6 A6 A�Í"6 A�Í"ž  (""4 § (k¬|" (4U@ BìÿÿÿU@A�½"$ AAÐÊA�½"Â" Ak(A~q7#"@  A Aߘ"A6 A6 A6 §"AüÿÿÿK@  A¦˜"6  6  6 ("("A AL! ("AH  j"A AJ    J !A Aߘ" ("6  ž  ( j6     H k6 (" (J@ ( ( ü  6  ž (! §"AH@A�½"$ AAÐÊA�½"Â" Ak(A~q7#"@   ("J@  kÿ ("(! (! ("AH  j"A AJ    H "    H"H@  jA  kü 6A A®˜"A: A: A� 6 A6 A: A:  A$ Ak( ™ (("AF AFr AFr AFr AFr AFrE@A°œ#@@@@@@@@@@@@@   AàÏ" A€Ð" A Ð" AÀÐ" AàÐ"  A€Ñ"  A Ñ"  AÀÑ"  AàÑ"  A€Ò"  A Ò"  AÀÒ"  A� ÂAЯÂ!A A·˜"A6 A6 A6  6AAΘ"A: A6 A� 6 A6 ·"6 ž 6 ž  AA͘"A6 B7 C8  6AAΘ"A: A6 A� 6 A6 A: 6 ž ì~ (()"BS@B ~B BQ B P Pr B B~ €V   ~ "BQ@B ~B@@@@@@ (((  A  A  A  A  A  A ¬"BQ BQr B P Pr B B~ €V   ~ "BQ@B ~B  |"BQ  Vr   Ó ~|@ AH@  ¬› ! ((("(! (! (!A Aߘ" (" 6  ž  A AL" (j6  AH  j"A AJ    J "  J k6@@@@@@@@@@@@@@ (((Ak  BQA B|"BQ  Tr@B! BR  (((4XA E ( §j-À¬7 BQA B|"BQ  Tr@B! BR  (((4XA E BQA B|"BQ  Tr@B! BR  (((4XA E  §" ("j-  Ajj-AtrÁ¬7 BQA B|"BQ  Tr@B! BR  (((4XA E  §" ("j-  Ajj-Atr­7 BQA B|"BQ  Tr@B! BR  (((4XA E  (" §"Ajj-At  j-  Ajj-Atr  Ajj-Atrr¬7  BQA B|"BQ  Tr@B! BR  (((4XA E  (" §"Aj"Ajj-At  j-  Ajj-Atr  Ajj-Atrr­B †  j-  Ajj-Atr  Ajj-Atr  Ajj-Atr­„7  BQA B|"BQ  Tr@B! BR  (((4XA E  (" §"Ajj-At  j-  Ajj-Atr  Ajj-Atrr­ Aj"Aj j-At  j-  Ajj-Atr  Ajj-Atrr­B †„"BÿÿÿÿÿÿÿÿÿV  7  BQA B|"BQ  Tr@B! BR  (((4XA E A (" §"Ajj-At  j-  Ajj-Atr  Ajj-Atrr¾»" ¡Db A DàÃc DàCfr  °7A  BQA B|"BQ  Tr@B! BR  (((4XA E A (" §"Aj"Ajj-At  j-  Ajj-Atr  Ajj-Atrr­B †  j-  Ajj-Atr  Ajj-Atr  Ajj-Atr­„¿" ¡Db A DàÃc DàCfr  °7A  BQA B|"BQ  Tr@B! BR  (((4XA E   A  A  ( §j17 A E@A )! Ak(Av M@  Atj 7 Aj!  A ½ Až "-E@   AA»˜"A6 A6 A6 A6 Aš"(Av (! ( "Aj"I@  AA™ ( Atj" 6  At  Ÿ  6  ( " Ak"M@ ( Atj("E@ ) )Q@ ( "AL@ ( Ak"Atj"( A6  6 ( E@ (!AAÔ˜"A: A6 A� 6 A6 A: 6 ž  ( " Ak"M@ ( Atj("E@ (( ( (™  ­"-E@   (( (" ¥Ò@AÐÂ$ Â!A A·˜"A6 A6 A6  6AAÔ˜"A: A6 A� 6 A6 ·"6 ž 6 ž   6  ž  )B|7 (Ajž "- (! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6    ¨~ AèJ@A A·˜"A6 A6 A6 AÀÆ$6 £  † " -E  )" (( (k"A AJ¬V@AÀÉ$A�Ç$Š †  ‡ "-E@ ¡ )! AAј""AA±˜"½ 6 AAÒ˜"½ 6B!@  T@ ­"-E@ ¢ † "-E@ ¡ )"P@A A·˜"A6 A6 A6 AÐÇ$6 £  (( (k"A AJ¬V@A A·˜"A6 A6 A6 A È$6 £ ˆ "-@ ( ( ("("A AL!  k"A AJ"A¦™" ( j ü Ak(! AH@ AF  !  J@ A Aߘ" 6  ž  6  6 ™ B|!  ¢  † " -E  )" (( (k"A AJ¬V@AÀÉ$A€É$Š †  ‡ "-E@ ¡ A AϘ"A6 B7 B7 A6 A� 6 )! 6 7 6AAÕ˜"A: A6 A� 6 A6 A:  6  ž  � (! AFA  An“ !!"   Ap� ! (( "¬ ­W@A�¯! A «ÂAЮ! A ªÂ"$ AAÐÊ Â" Ak(A~q7#"@A$ Ak( (( Atj (6 (( (J ( ( (JA @ (( (Atj 6 ( ( (Atj 6 (Aj6 � AF@ (4 ­W@  ("( O@ ( j-E@ ( A© (  (( º (! AFA  An“ !!"   Ap� ! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 ( "( "Aj!  (AvK@ AA™ ( Atj 6 6 Ò AF@A   (("( I@ ( Atj(  A "AF@A ("4 ­U  ( O@ ( j-A @A ("4 ­U@  ( O@   ( Atj(Ajº  ("( O@ AA ( Atj(AJ A � A ¨ E@A A·˜"A6 A6 A6 A°­#6 ‘ (( ! (( Am! AAý˜"A6 A6 A6 A6  š!AAý˜"A6 A6 A6 A6  š!AA¤˜"A6 A6 A6 A6  š" "(! ( "A AL" H@  AtjAÿ  kAtü AAë˜"A6 A6 A6 A6  ¨!AAë˜"A6 A6 A6 A6  ¨!AAÞ˜"A6 A6 A6 A6 A6  6  6  6  6AAý˜"A6 A6 A6 A6 Aš! ( AJ@A!@ ( J@  ( Atj(    µ Aj!  A!@ H@ ( O@ ( j-E@  Al    µ Aj!  (   ("AA™  6 (   ("AA™  6 A AÛ˜"A6 A6 A6 6 6 6AAå˜"A: A6 A� 6 A6 A:  6  ž  í~@ Aÿÿÿÿ - -AtrA€I~ A… "-E@ •  ( ((j(� "-E  5 † "-E  ) " § BÿÿÿÿV6 P@A (( (k"A AJ¬B†V B€€€ V ( §"± (!@  H@ –"-E  -"Aq"AF@ Av!A!@  L@  j" N  ( M@ ( AtjA6 Aj!   j! Av!A!@  H@ –"-E   - AtAjtr! Aj!   ( O@ ( Atj 6 Aj!  (" ((AvG@A Aä˜"A6 A6 A6 AÿÿÿÿK@  At"A¦˜"6  6  6 ((Av" N@ ! A!@  H@  ("(AvO@ ( Atj(! (Av M@ ( Atj 6 Aj!  6 ž (!A!A!@  H@  ( O@ ( Atj(! ( M@ ( Atj 6A  j"  I" (K  (! (Av! ! ! AH  j"A AJ    H ! AH  j"A AJ    H !@ E@  H@ Atj Aÿq  kAtü  @  H@ Atj 6 Aj!  ! Aj!   (G A!@  H@ At!   ± Ak6A A Å~@ - -AtrA€I -@A A·˜"A6 A6 A6 A�Ö"6 †  (( (k"A AJAH@A°×"AA «ÂA€×" (( (k"A AJA «Â!A A·˜"A6 A6 A6  6 †  (" ((j)!  Aj6AA¯˜"A: B7 A� 6 A6 A:  7   † "-E )! ( AL@  ‡ -E A ( (Aÿÿÿÿ­"4 T ("A AL!A Aߘ" ("6  ž  ( j6  §"AH  j"A AJ    J "   J k6AAê˜"A6 A6 A6 A€ 6  6 6 ž ( ( A¥ E  ‡ -E A A ¢ 6 ((6@ (E (Ak" ("(O@ ( j-! (Ak6 AÀq"@ AÀF@ (E  (Ak" ("(O@ ( j-! (Ak6 ( A?qAt rj6 AÀqA€F@ (AH  (Ak" ("(O@ ( j-! (Ak" ("(O@ ( j-! (Ak6 ( A?qAt Atr rj6 @ (AH  (Ak" ("(O@ ( j-! (Ak" ("(O@ ( j-! (Ak" ("(O@ ( j-! (Ak6 ( A?qAt Atr Atr rj6   ( A?qj6 ( ( AtO A A Ì }~@@ (("A G@AÐÆ"@@@@@@@@@@@@@   AàÏ" A€Ð" A Ð" AÀÐ" AàÐ"  A€Ñ"  A Ñ"  AÀÑ"  AàÑ"  A€Ò"  A Ò"  AÀÒ"  A� Â!  (-"AG@AÀÇ" A ªÂ!  4!AAì˜"A6 A6 A6 C8 A6AAô˜ A Aô˜6 ("AL ANq  6 A tAk6  (Ak6 C@ (²•8  (Am6AA E@A�Ï" (A «ÂA°Î"‹ Û ~B~B BQ B P B BÿÿÿÿÿÿÿÿÿV  B† "BQ B P B Bÿÿÿÿÿÿÿÿ?V  B† "BQ@A A·˜"A6 A6 A6 AÀÈ"6  ((4 T@A A·˜"A6 A6 A6 A É"6  ~B~B BQ B P B BÔªÕªÕªÕªÕV  B~ "BQ B P B Bÿÿÿÿÿÿÿÿ?V  B† "BQ@A A·˜"A6 A6 A6 A€Ê"6  (" ™ -E@A A·˜"A6 A6 A6 AàÊ"6  (("(! (! (!A Aߘ" ("6  ž  A AL" (j6  AH j"A AJ  J "  J k6 ! ("(! (! (!A Aߘ" ("6  ž  A AL" (j6  AH j"A AJ  J "  J k6 ! §! A!@ H@ (" At"Ajj-At  j-  Ajj-Atr  Ajj-Atrr! Aj"Aj j-At  j-  Ajj-Atr  Ajj-Atrr! A l"" (j  ² (²" •"" ² •" ’! “! C€?! CÀ?_ C?`q C?_ C¿`qA E@C€¿! C?_}C? “! C? “ CÀ?`}CÀ? “! CÀ? “ C¿_} C¿’! C?’ C?’! C¿’ ! ’! “! ’C€¿’! ’C€¿’! CCC}C€? ’" “"} C€?’" }C@@ ’"“" C€¿’" \   \  – " \  \  – " \   \  – ”" ” ”’ ”’" C½7†5]  C€? ‘•" ” ” ” C€? ² * " ”C€¿’" ‹“ ² ”C€¿’" ‹“" C]@ Œ" Œ" C]’!  C]’! CCC ” ”’ ”’" C½7†5]  C€? ‘•" ” ” ” !!"¼": ( Ajj Av: ( Ajj Av: ( Ajj Av: Aj" (j ¼": ( Ajj Av: ( Ajj Av: ( Ajj Av: Aj" (j ¼": ( Ajj Av: ( Ajj Av: ( Ajj Av: Aj!  « A A·˜"A6 A6 A6 6 Û Û µ~ ("( " (( F 5Bˆ ¬}BYA  (5Bˆ ¬}BYA @ ("( "Aj!  (AvK@  AA™ ( AtjA6  6 ( "Aj" (AvK@  AA™ ( AtjA6  6 ( "Aj" (AvK@  AA™ ( AtjA6  6 ("( "Aj!  (AvK@ AA™ ( AtjA6 6 ( "Aj" (AvK@ AA™ ( AtjA6 6 ( "Aj" (AvK@ AA™ ( AtjA6 6 «  (Bÿÿÿÿÿÿÿÿÿ ¬B|" BÿÿÿÿÿÿÿÿÿV"BÿÿÿÿÿÿÿÿÿB B~ BÕªÕªÕªÕªÕV" BÿÿÿÿÿÿÿÿÿV"´"-E@   (  ´ �~ (( (( G@A ("( !A (4 "§"  ­R BUqA€€€€xs! ( !A!@  H@  ( Atj(Aÿÿÿÿk Jr! Aj!  @A A!A ¬"§"  ­R BUqA€€€€xs! ("( !A!@ H@  ( Atj(Aÿÿÿÿk Jr! Aj!  @A A Ô A6 A: –"-E@A -:  - -AtrA‚I -@A A·˜"A6 A6 A6 A�Ö"6 Ž  (( (k"A AJAH@A°×"AA «ÂA€×" (( (k"A AJA «Â!A A·˜"A6 A6 A6  6 Ž  (" ((j(!  Aj6AAõ˜"A: A6 A� 6 A6 A:  6  "-E@A ( † "-E@A )§ ­ˆ "-@AAê˜"A6 A6 A6 A€ 6  (6 A€ A¥ @ 6 žA A º ("AJ@ Ak" ("( O@ ( Atj("E@ ( F@ (Ak6AAü˜"A6 A6 (! (6 6  ( K@AAü˜"A6 A6 A6 A6  A Î AFA ) ­X @A°ø# A ªÂAàÂ Š   ("( H@ ( jA:@ ( " H@ Aj" (K@ AA™ ( jA: 6  ( "Aj" (K@ AA™ ( jA: 6 A ÈO~ )§! (! ("AJ A ¬!B€€€  B€€€Z"BÕªÕªÕªÕªÕV@«  B~!@ AH@   ( ( "4 "}B  VBR@ BûÿÿÿV@A ù#Š Û  5Bˆ" S@ B†" S@ ! BûÿÿÿU@Bûÿÿÿ!  5BˆU@ ( !  §"AA™  6 (   AA™  6 Aj!  « "-E@ ™ B B~ BRB €BTA " )"V@ ! B€€€  B€€€Z" (4 "}B  VP@«  BûÿÿÿV@A ù#Š Û  (5Bˆ" S@ B†" S@ ! BûÿÿÿU@Bûÿÿÿ!  ("5BˆU@ ( !  §"AA™  6 (   AA™  6 « "-E@ ™ (! @@@@@@@@  J@ "Aj! § "-E@ ™ A! ~ Ak("A�F@~ (AG ("("@A€ -k!@ ( ( I (AJA @  (Ak6 (" (" (O@  ( j- (Atr6  ("Aÿq! Av l!  K"@  j6   k k6   A A @  (6 5  (8 (<¹"AH@A A·˜"A6 A6 A6 AÀí?6  6  žB   6 5  A€F@~@ ("AG@ AHA  ((( N @A A·˜"A6 A6 A6 A€ë?6  6  žB  (("   ( O@ ( Atj(Ak"º AH   ($( NA  ($"( O@ ( Atj("E@  ( N   ($"( O@ ( Atj("E@  ( O@ ( Atj("AK@Aàì? A ªÂ!A A·˜"A6 A6 A6  6  6  žB   6 A (D (H¹" AH6 5  A A·˜"A6 A6 A6 Aàë?6  6  žB  A÷F@~ (" (( N@A A·˜"A6 A6 A6 A ê?6  6  žB   Aj6  ("( O@ ( Atj5  "BS@ (" AÐÕŠ Í §"@ AF AFr@ ( E@A A·˜"A6 A6 A6 A�è#6  ( " Ak"M@ ( Atj("" (" ( I@ ( Atj(  A AG@A A·˜"A6 A6 A6 A€é#6 Al! AF Aj! Aj!  Aj! ! Aj !  ­ " @ Í (" ( ! ( "Aj" (AvK@ AA™ ( AtjA6 6  š  (( H@A A·˜"A6 A6 A6 Aàé#6 (" ( M@A�¯! ( A «ÂAЮ! A ªÂ"$  ( Atj 6 (" ( O@ ­BúÿÿÿV@A�½"ö AjA¬ ( Atj 6 ("" (  Ap AkA Aj A}K " ( I@ ( Atj(  A ! M@A�¯! ( A «ÂAЮ! A ªÂ"$  ( Atj 6 (" ( M@ ­BúÿÿÿV@A�½"ö AjA¬ ( Atj 6 ("(  Aj" Ak Ap" ( I@ ( Atj(  A ! M@A�¯! ( A «ÂAЮ! A ªÂ"$  ( Atj 6 ( Ak ºA!  AF@ ( E@A A·˜"A6 A6 A6 AÐê#6 ( "AL@ ( Ak"Atj(! 6  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (! ( " Aj" (AvK@ AA™ ( Atj 6 6 ( E@A A·˜"A6 A6 A6 A°ë#6 ( " Ak"M@ ( Atj(" F@A A·˜"A6 A6 A6 AÀì#6   ("( I@ ( Atj(  A AGA  ("( I@ ( Atj(  A AG @A A·˜"A6 A6 A6 A í#6  Al"Aj­ "  Aj­ " ("" (  Ap AkA Aj A}K " ( I@ ( Atj(  A ! M@A�¯! ( A «ÂAЮ! A ªÂ"$ ( Atj 6 (" ( Aj!  Aj" Ak Ap" ( I@ ( Atj(  A ! M@A�¯! ( A «ÂAЮ! A ªÂ"$ ( Atj 6 ("" (  Ap AkA Aj A}K " ( I@ ( Atj(  A ! Aj" M@A�¯! ( A «ÂAЮ! A ªÂ"$ ( Atj 6 (" ( M@ ­BúÿÿÿV@A�½"ö AjA¬ ( Atj Aj6 AG@ Aj" Ak Ap!  ("( I@ ( Atj(  A " AG  Gq@@ Ak("A�F@   ®  A€F@   ®  A÷F ("(  ( I@ ( Atj(  A ! M@ ­BúÿÿÿV@A�½"ö  AjA¬ ( Atj 6 !@ AG@ (" ( M@A�¯! ( A «ÂAЮ! A ªÂ"$ ( Atj 6  Aj" Ak Ap" (" ( I ( Atj(A "AFA Aj" Ak Ap "G A A·˜"A6 A6 A6 A€î#6 ("( I@ ( AtjA6 @ ( "( "Aj!  (AvK@  AA™ ( Atj 6  6 ( Ak º@ Ak("A�F A€F A÷F  AF ("( ! ( " Aj" (AvK@  AA™ ( AtjA6  6 ("( ! ( " Aj" (AvK@  AA™ ( AtjA6  6 ("( ! ( " Aj" (AvK@  AA™ ( AtjA6  6  š  š  š  (( H@A A·˜"A6 A6 A6 AÐî#6 Al" ("( O@A�¯! ( A «ÂAЮ! A ªÂ"$ ( Atj 6 Aj" ("( O  ( Atj 6 Aj" ("( O  ( Atj 6 ("( M@ ­BúÿÿÿV@A�½"ö  AjA¬ ( Atj 6 ("( M@ ­BúÿÿÿV@A�½"ö  AjA¬ ( Atj Aj6 ("( M@ ­BúÿÿÿV@A�½"ö  AjA¬ ( Atj Aj6 ( "Aj" (AvK@ AA™ ( Atj 6 6 AAÀï# A ªÂ!  !  ( E@A A·˜"A6 A6 A6 Aðä#6   ( " Ak"M@ ( Atj("Aj" Ak Ap" ("( I@ ( Atj(  A " ("( I@ ( Atj(  A "AG@ Aj" Ak Ap!  F@A A·˜"A6 A6 A6 AÐå#6    ("( I@ ( Atj(  A AGA  ("( I@ ( Atj(  A AG @A A·˜"A6 A6 A6 A°æ#6   Al"Aj­ "   Aj­ "  Ap AkA Aj A}K " ("( I@ ( Atj(  A ! Aj" Ak Ap" ("( I@ ( Atj(  A " F  Fr@A A·˜"A6 A6 A6 A�ç#6  ("( M@A�¯! ( A «ÂAЮ! A ªÂ"$  ( Atj 6 Aj" ("( O@A�¯! ( A «ÂAЮ! A ªÂ"$  ( Atj 6 Aj" ("( O@A�¯! ( A «ÂAЮ! A ªÂ"$  ( Atj 6 ("( M@ ­BúÿÿÿV@A�½"ö  AjA¬ ( Atj Aj6 Aàç#« "@ Í ( Ak º @  kAk!@ Ak("A�F@ ( ª  A€F@ (, ª  A÷F@ ( ª  "@ ("AH@A A·˜"A6 A6 A6 Aðï#6 ( "@  Ak" M@ ( Atj(! (  kAk (AF AF  Aj" Ak Ap  AF  Ap AkA Aj A}K Ú Aà÷#A°ð#Š Í ( "AJ@  Ak"M@ ( Atj(!@ Ak("A�F@ AFA (4 ­W @ A6  ( (  AF  Aj" Ak Ap " AF  Ap AkA Aj A}K »E@ A6  (" AFA @ (! (@!A AFA (4 ­W A 4   (" ( I@ ( Atj(  A "­W   ( O@ ( Atj(! (AvE@ ( 6A @ (@"(AvE@ AA ((AH6 A6  A6 (4"( "Aj!  (AvK@  AA™ ( Atj 6  6  A€F@@ AFA (4 ­W ( (  AF  Aj" Ak Ap " AF  Ap AkA Aj A}K »E  (! (L!A AFA (4 ­W A 4   (" ( I@ ( Atj(  A "­W   ( O@ ( Atj(! (AvE@ ( 6A E (L"(AvE@  ((" ("H   ( "J   (k6 (@"( "Aj!  (AvK@  AA™ ( Atj 6  6  A6  A÷F@ ( "( "Aj!  (AvK@  AA™ ( Atj 6  6  Aj! A A·˜"A6 A6 A6 Aàð#6   (( H@A A·˜"A6 A6 A6 AÐñ#6  @ ( "AJ@ ( Ak"Atj(! 6  Ak("A�F@ (,"@  (0"Aj60  ( "H  O@ ( j-A  -(@ ($"("@A€ -k!@ ( ( I (AJA @  (Ak6 (" ("(O@  ( j- (Atr6  ("Aÿq! Av l!  K" @   j6   k k6  A  A  A€F@ (8"@  (<"Aj6<  ( "H  O@ ( j-A  -4@ (0"("@A€ -k!@ ( ( I (AJA @  (Ak6 (" ("(O@  ( j- (Atr6  ("Aÿq! Av l!  K" @   j6   k k6  A  A  A÷F@ ("@  ("Aj6  ( "H  O@ ( j-A  -@ ("("@A€ -k!@ ( ( I (AJA @  (Ak6 (" ("(O@  ( j- (Atr6  ("Aÿq! Av l!  K" @   j6   k k6  A  A  @  (N@A A·˜"A6 A6 A6 AÀò#6 Í  Aj" Ak Ap" ("( I@ ( Atj(  A " ("( I@ ( Atj(  A AF@A°ó# A ªÂ!   (""(   ( I@ ( Atj(  A "AG@ Aj" Ak Ap! Aj" Ak Ap" ("( I@ ( Atj(  A "K@ ( Atj(  A AF@A A·˜"A6 A6 A6 A�ô#6 Í   ("( I@ ( Atj(  A "AG@ Aj" Ak Ap! Aj" Ak Ap" (" ( I@ ( Atj(  A ! "Aj! § " -E@ ™ Al" ­ " Aj ­ " Aj ­ " ("( M@A�¯! ( A «ÂAЮ! A ªÂ"$  ( Atj 6 Aj" ("( O  ( Atj 6 Aj" ("( O  ( Atj 6A!@ AI@   j" ("( I@ ( Atj(  A Aðô#« "@  Aj!  @ Ak("A�F A€F A÷F   (G@A A·˜"A6 A6 A6 A°õ#6  (( ! (!@ ( " H@ Aj" (K@  AA™ ( jA:  6  (( ! ( !A!@ ( J@ ( Atj(! Ak!@@   ("( I@ ( Atj(  A AFA E Ak"E Ak!   O@  ("( I@ ( Atj(  A "AG@ !@ (" ( I@ ( Atj(  A G@Aðö# A ªÂAÀö# ("( I@ ( Atj(  A A ªÂA�ö# A ªÂ!  (" ( M@A�¯! ( A «ÂAЮ! A ªÂ"$ ( Atj 6 Ap AkA Aj A}K " (" ( I ( Atj(A "Ap AkA Aj A}K " F AFrE ("(   ( I@ ( Atj(  A ! M@ ­BúÿÿÿV@A�½"ö AjA¬ ( Atj 6@ Ak("A�F A€F A÷F  ("( I@ ( AtjA6 4 " ­U ­ SA @  ( O@   ( j-©  A© Ak! Aj!  AA÷˜"A: A6 A� 6 A6 A: 6  A�¯! ( A «ÂAЮ! A ªÂ"$  A A·˜"A6 A6 A6 6  A�¯! ( A «ÂAЮ! A ªÂ"$ AÐÊ Âõ #"@A$ Ak( Í Í Í Â@ AG  (("( OA ( Atj 6A A E@Aàø# A ªÂ!  AG  (("( OA ( Atj 6A A E@Aàø# A ªÂ!  A A A·˜"A6 A6 A6 6 ^ ("4 ­U 4 ­UA @  ( O@  ( O@  ( Atj( ( Atj(jº ’ ~}@@@@ (("A G@A°à"@@@@@@@@@@@@@   AàÏ" A€Ð" A Ð" AÀÐ" AàÐ"  A€Ñ"  A Ñ"  AÀÑ"  AàÑ"  A€Ò"  A Ò"  AÀÒ"  A� Â!  ("AL AJqE@AÀÔ" A «ÂAàÓ"‹ Û * !B 5†B}§"AJ@  ²•!A  A E@AÀá" * “ ÂAÀ˜Â A «ÂA á"Â!  (( " (-" H@Aàâ" A «ÂA�â" A «Â!  4! ()BS@A A·˜"A6 A6 A6 A°ã"6  ()! ()BS@A A·˜"A6 A6 A6 A€ä"6  ~B ()"" BQ BQr B P Pr B B~ €V  ~ !~B BQ BQr B P Pr B B~ €V  ~ " BR BRq@ ((4 Z ((4 TA @ ( ™ -E@A A·˜"A6 A6 A6 AÐä"6  (("(! (! (!A Aߘ" ("6  ž  A AL" (j6  AH  j"A AJ    J "   J k6 ! (("(! (! (!A Aߘ" ("6  ž  A AL" (j6  AH  j"A AJ    H "   J k6 ! 4! 4! ((AF AGq ¬B†" Qq Qq@~B BQ BQr B P Pr B B~ €V  ~ "BQ ~B BQ BQr B P Pr B B~ €V  ~ " BQ  V  Vr  § l!A!@  H@ At"" (j (" Ajj-At  j-  Ajj-Atr  Ajj-Atrr² ” ((  oAtj*’¼": ( Ajj Av: ( Ajj Av: ( Ajj Av: Aj!  « @ V@~B BQ B P Pr B B~ €V   ~ "BQ ~B BQ B P Pr B B~ €V  ~ " BQ A!@  H@~B At¬"" BQ B |" BQ Tr  "BQ ~B BQ B B|" BQ Tr  " BQ  V  (" §"Ajj-At  j-  Ajj-Atr  Ajj-Atrr² ”  ("( O@ ( Atj*’!~B BQ B |" BQ Tr  "BQ ~B B|" BQ Tr  " BQ  V  §" (j ¼": ( Ajj Av: ( Ajj Av: ( Ajj Av: Aj!  B|!  « A A·˜"A6 A6 A6 6  A°æ"Š Û A°å"Š Û Û À ("( ! (   (-""AA™  6 @  LE@ ( AtjC8 Aj!  A!@  H@ €"-@ (  *¡ Aj! A°Õ"AàÒ"ÂA€Õ"ÂŒ Û €"-E@A°Õ"A�Ó"ÂA€Õ"ÂŒ Û *8 –"-E@A°Õ"A°Ó"ÂA€Õ"ÂŒ Û -6 (""AL AJqE@AÀÔ" A «ÂAàÓ"‹ Û « Ñ ("(  AAA™ A6 A6 A6 A… "-E@ •  ( ((j(� "-E@A ("E Aqr@A (( (k"A AJ¬ ­T@A Av!A!@  H@ A… "-E@ •  ( ((j(� "-E@A (! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 Aj!  A6 A6A Ú E A Kr@B A (k" O@ (AHA (( (L @B (" ("( O@ ( Atj( ("tA kv!  j6 (A F@ (Aj6 A6  (AÿÿÿÿF@B ("Aj! AHA  (( N @B (" ("( O@ ( Atj(!  ("( O@ ( Atj(!  (t!  k6 6 A (k"v  kvr! ­ Ì~ ((""AHA  (( N @A€Ø"Š ‚   ("( O@ ( Atj("E@ ƒ "-E@ ä ("(1! (AF@ (  (" ( A ¬!@@@@@@ ((  A  A  A  A  A  A ¬!~B BQ B P Pr B B~ €V   ~ "BQ~B~B BQ B P Pr B B~ €V   ~ "BQ@A A·˜"A6 A6 A6 A°¦#6 Û  ˆ "-E@A A·˜"A6 A6 A6 A€§#6 Û (!  ’ "-E@ ä ("( 4™ -E@A A·˜"A6 A6 A6 Aà§#6 Û (("(! (! (! A Aߘ" ("6  ž  A AL" (j6  AH  j"A AJ   H "  J k6 (" "(J@ ( ( ü « *AAš˜"A6 B7 A6  7  *AAš˜"A6 B7 A6  7  ã @ ("( J@  ( O@ ( Atj("E@  ((E  Aj!  A "AN@ @ š   AHA  (( N @A€Ø"Š ‚   ("( O@ ( Atj("E@ ƒ "-E@ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAΘ"A: A6 A� 6 A6  ("6  ž  ( "6  ž   (! /A€I@AA͘"A6 B7 C8 6AAΘ"A: A6 A� 6 A6 A:  6  ž   š "-E@ ä  (!@@@@@@@@ Ak(A¢k  (!@ ((("@A ø?@@@@@@@ Aj AàÏ"  A�ô?  A°ô?  Að§  AÐô?  Aðô?  A� Â!  ((-"AG@AÀù? A ªÂ!   6  ž«  A A·˜"A6 A6 A6 6 Û   (((A ((-AG @A°ö?@@@@@@@ (((Aj AàÏ"  A�ô?  A°ô?  Að§  AÐô?  Aðô?  A� ÂA�ë$ ((-A ªÂAð÷?Â!A A·˜"A6 A6 A6  6 Û  (" 6 ž«  A�õ?‹ Û  @ ((("@Aðñ?@@@@@@@ Aj AàÏ"  A�ô?  A°ô?  Að§  AÐô?  Aðô?  A� Â!  ((-"AG@A€ó? A ªÂ!   6  ž«  A A·˜"A6 A6 A6 6 Û  Aðð?‹ Û  Aàï?‹ Û  A°î?‹ Û  -E@Aðš# Â!A A·˜"A6 A6 A6  6 Û « AЛ# Â!A A·˜"A6 A6 A6  6 Û ø0~@@ ("AH@A A·˜"A6 A6 A6 A€é"6  @@@@~ "(AF@ (  (" ( A ¬!    (( N@A€Ø"Š ‚   ("( O@ ( Atj("E@ ƒ "-E  ( "(1" ! B BQ B P Pr B B~ €V  ~ " BQ@ A ¬AÀê" A ¬ÂA€ê"Â!  –"-E@A A·˜"A6 A6 A6 Aðê"6  -"AþF AÿFrA~ AM@ Ì  ° "-E@AÐë" A ªÂ!  ( !A! A~G@ –"-E@A A·˜"A6 A6 A6 A�ì"6  -"AÿG AM@ Ì  ° "-E@A€í" A ªÂ!  (A ! ("@@@@@@@@@ Ak(A¢k A  A  A  A  A  A  A  G@A€î"@@@@@@@@@@ Aj  A Ð A ¡#  AС#  A€¢#  AТ#  A £#  A€¤#  Að¤#  AÀ¥#  A� ÂAÐí"Â@@@@@@@@@@@@@@@@@@ Ak(A¢k A  A  A  A  A  A  A  Aj  A Ð A ¡#  AС#  A€¢#  AТ#  A £#  A€¤#  Að¤#  AÀ¥#  A� Â!  A! E@@@@@@@@@@ Aj  AF@AA±˜"A6 A6 A: AA²˜"A6A A³˜"A6 A6 A6  ¼ 6 6 AF@AA±˜"A6 A6 A: AA²˜"A6A A³˜"A6 A6 A6  ¼ 6 6 A: AA¿˜"A6 A6 A6 A6 AA«˜"A6  6  E@A A·˜"A6 A6 A6 Aàî"6   ¿"-E A AŸ˜"A6 A6 A6 ("(! (! 6 ž 6 ž 6 žAA¿˜"A6 A6 A6 A6AA§˜"A6 A6 A6  6  6  6  E@A A·˜"A6 A6 A6 AÐï"6   ¿"-E A AŸ˜"A6 A6 A6 ("(! (! 6 ž 6 ž 6 žAA¿˜"A6 A6 A6 A6A A¶˜"A6 A6  6  6  E@A A·˜"A6 A6 A6 AÐð"6   ¿"-E A AŸ˜"A6 A6 A6 ("(! (! 6 ž 6 ž 6 žAA¿˜"A6 A6 A6 A6AA¢˜"A6 A6AA¦˜!AAã˜" 6  ž  6 A6 A6 (AA¦˜!AAë˜" 6  ž  6 A6 A6 6 (AA¦˜!AAë˜" 6  ž  6 A6 A6 6 (AA¦˜!AAë˜" 6  ž  6 A6 A6 6 (AA¦˜!AAë˜" 6  ž  6 A6 A6 6  6  6  6  E@A A·˜"A6 A6 A6 Aàñ"6   ¿"-E A AŸ˜"A6 A6 A6 ("(! (!  6  ž  6  ž  6  žAA¿˜""A6 A6 A6 A6AA¹˜"A6AA·˜"A6AA¦˜!AAë˜" 6  ž  6 A6 A6  6 A6AA-˜ A A-˜6 AA-˜ AA-˜6  6A Aã˜"A6 A6 A6  A°6  6 (" ¸ "6  ž   Aàò"¶ "-E@   E@A A·˜"A6 A6 A6 A ó"6   ¿"-E A AŸ˜"A6 A6 A6 ("(! (!  6  ž  6  ž  6  žAA¿˜""A6 A6 A6 A6AA»˜"A6A8Aº˜"A6 A6AA¦˜!AAë˜" 6  ž  6 A6 A6  6AAÕ ˜ AAÕ ˜6 B7 B7 B7 B7( B70  6A Aã˜"A6 A6 A6  A°6  6 (" ¸ "6  ž   A ô"¶ "-E@   E@A A·˜"A6 A6 A6 Aàô"6    ¿"-E A AŸ˜"A6 A6 A6 ("(! (!  6  ž  6  ž  6  žAA±˜"A6 A6 A: AA²˜"A6A A³˜"A6 A6 A6  ¼ 6  6 AF@ A: A$A®˜"A6 A6 A6 A6 A6AAì˜"A6 A6 A6 C8 A6AAô˜ A Aô˜6  6AA¦˜!AAë˜" 6  ž  6 A6 A6  6 A6  6  ¸ "6  ž  6  ž   AÐõ"¶ "-E@   AÐë"@@@@@@@@@@ Aj  A Ð A ¡#  AС#  A€¢#  AТ#  A £#  A€¤#  Að¤#  AÀ¥#  A� Â!  @ )PA  )‡ - E@A A·˜"A6 A6 A6 A€ö"6  –"-E@A A·˜"A6 A6 A6 A€÷"6  -! AF AFrA @@@ Ak(A¢k A  @@@ (Ak(A¥k A  A   A E! @AAý˜"A6 A6 A6 A6 Aš!AAæ˜A6  °"-E@A - A ("E   Ak(A·FA @  Ak(A·FA E@  A "@ Aà÷"� Û  (Š Aà÷"� Û  ( !A Aã˜"A6 A6 A6 AÿÿÿÿK@ At"A¦˜" 6 6 6A!@  J@ At" (j(!  (j A Aqk Avs 6 Aj!   –"-E@A A·˜"A6 A6 A6 AÐø"6  1" BV@A ú" A ¬ÂAÀù"Â!  P@ ~B P B Bÿÿÿÿÿÿÿÿ?V  B† � "-E@  ~B BQ B P B B~ €V  ~ "BQ@ A ¬AÀ… A ¬ÂAàú"Â!   (( (k"A AJ¬V@A�ý" A ¬ÂAÐü" A ¬ÂA�ü"ÂAÀ…AË (( (k"A AJA «ÂAÀû"Â!  BûÿÿÿV@Aðý" A ¬ÂAÀý"Â!  A Aã˜"A6 A6 A6 §""AÿÿÿÿK@ At"A¦˜"6 6 6 BR@ BQ@B B† P" BQ@ A ¬A°þ"Â!   ˆ "-E@A€€# A ¬ÂA ÿ"Â!  (! A!@  H@ (" At"Ajj-At  j-  Ajj-Atr  Ajj-Atrr!  (j A Aqk Avs  6 Aj!  A Aߘ"A6 A6 A6 AA¦˜"6  6 A6 ("A AL!A Aߘ" ("6 ž ( j6 §!    J"   H k6A!@  H@ (E@ (A: (AM@ (A: (AM@ (A: (AM@ (A:  (… "-E@ ä  ( ("  (j­"(!  (J@ ( ( ü « -E@A A·˜"A6 A6 A6 AЀ#6 (AM@ (AM@ (E@ (AM@ ("- -Atr -Atr -Atr! @A Aqk Avs! (Av M@ ( Atj 6 Aj!  @  ‹"-E@   A~G@ E@A ƒ#Š Û   ‹ "-E@  P@« @  § § A AF AFr AFr AFr AFr AFrŠ"-E@   A~G@ E@A ƒ#Š Û   § § A AF AFr AFrŠ "-E@  @  ÀE@A A·˜"A6 A6 A6 A°�#6    ’ "-E@ ä ( ÀE@A A·˜"A6 A6 A6 A ‚#6  « A A·˜"A6 A6 A6  A A·˜"A6 A6 A6  A A·˜"A6 A6 A6 6 Û 6 Û ä \A AŸ˜"A6 A6 A6  ("6  ž  ("6  ž  ("6  ž  ‘  ((O@ ( ( ( Ä  ("(O@ ( j-@ Al" ("(AvO@ ( Atj( AlAj" ("(AvO@ ( Atj( AlAj" ("(AvO@ ( Atj( ( ( ( Ä!!"! ! ! ! Al!  ("(AvO@ ( Atj 6 AlAj" ("(AvO@ ( Atj 6 AlAj" ("(AvO@ ( Atj 6  ("(O@ ( jA:   à œ"-E@A A·˜"A6 A6 A6 AÀ„À6 Û (! œ-E@A A·˜"A6 A6 A6 Aà…À6 Û @ ((!A AL A AqE A Aj"  AkqA  ("E@ A h"AM AOq  6 A tAk6  (Ak6 C@ (²•8  (Am6AA E   6  Am6A E@Að†À A «ÂAЇÀÂ!  ((("E@ ("AL ANqE@A�Ï" A «ÂA°Î"Â!  « A A·˜"A6 A6 A6 6 Û æ  #A�¥ÁkAI@ #Ak"$ AH@A�¯! A «ÂAЮ! A «Â"$ AAÐÊ Â" Ak(A~q7#"@A$ Ak( ((" (!  (AvO@ ( Atj( k! Aj" (AvO@ ( Atj( k!  6  6  (AvO@ ( Atj(! Aj" (AvO@ ( Atj(! (! (! ("E@ (A k  AHA k  AHjO"E@ (! (! ("E@  j ("  rANA! A AL ALqA! AAA AJ! AA AJ "l"k!  j l"k!   lANA k!A k  jAm  jAm! "6  6 A! - @ ( (! (" AJAA ANAA AJ  AA AJA !  r AH ALqA "E@ ( ò (! (!@@@@ Ak A k  A kA k  A k     ! "6  6 ( j! ("E@  ( A ("kH  Hklj! ( j! ("E@  ( A ("kH  Hklj!  6  6 A - E@ ( ò (! ( !@@@@A kAoAk A k  A kA k  A k    ! "6  6 E@ ( ! (! ("E@ j (" rANA! A AL ALqA! AAA AJ! AA AJ "l"k!  j l"k!   lANA k!A k  jAm jAm! "6  6 ( j! (Av M@ ( Atj 6 ( j! Aj" (AvO@ ( Atj 6#Aj$ _AAì˜"A6 A6 A6 C8 A6AAô˜ A Aô˜6 A6 A6 6 ª ~} AH@A ~ (AF@B ¬  (N  B ("  ( NA  ( Atj5 "BS@A ("E@A  §" ("-  ("4 ­V@ ( Atj(  A " AF@A A!@ AH@  ­ ¬› ! ((("(! (! (!A Aߘ" ("6  ž  A AL" (j6  AH  j"A AJ   J "   J k6@@@@@@@@@@ (((Ak  BQA B|"BQ  Tr@B! BR  (((4XA E   ( §j-À²8  BQA B|"BQ  Tr@B! BR  (((4XA E   ( §j-³8  BQA B|"BQ  Tr@B! BR  (((4XA E   §" ("j-  Ajj-AtrÁ²8  BQA B|"BQ  Tr@B! BR  (((4XA E   §" ("j-  Ajj-Atr³8  BQA B|"BQ  Tr@B! BR  (((4XA E   (" §"Ajj-At  j-  Ajj-Atr  Ajj-Atrr²8  BQA B|"BQ  Tr@B! BR  (((4XA E   (" §"Ajj-At  j-  Ajj-Atr  Ajj-Atrr6  BQA B|"BQ  Tr@B! BR  (((4XA E   (" §"Aj"Ajj-At  j-  Ajj-Atr  Ajj-Atrr­B †  j-  Ajj-Atr  Ajj-Atr  Ajj-Atr­„¿¶8  A  A  A E@A *! ( "Ak(Av M@  Atj 8 Aj!  A ò~ AH@A ~ (AF@B ¬  (N  B ("  ( NA  ( Atj5 "BS@A ("E@A  §" ("-  ("4 ­V@ ( Atj(  A "AF@A ( "Ak(AvE@ B7 Ak(AvAM@ B7 Ak(AvAM@ B7  ­ œ E@A Ak(AvE@ )! Ak(AvAM@ )! Ak(AvAM@ )! 7 7 7 A ò~ (! ( ! (! @  (H@  j" (AvO@  j" (AvO@ ( Atj4 ( Atj(" H     J ¬|" ÄQ §" H  j  k   J  ¬" } | ¬U§ !  j" (AvO@ ( Atj 6 Aj!  À~ œ"-E@A A·˜"A6 A6 A6 A �À6 Û (! œ"-E@A A·˜"A6 A6 A6 A ‘À6 Û @ ("¬ ¬}"BS@A ’À A «ÂA�“À A «Â!  B|" ÄR@AГÀ A «ÂA�”À A «ÂA°”ÀÂ!  6 6 §Aj6« A A·˜"A6 A6 A6 6 Û ¥ (" 6 - -Atr; AHA  (( N @A€Ø"Š ‚  ("( M@ ( Atj("E@ ƒ "-E@ ä @ ("(-AG@AÐÞ" A «ÂA°¹Â (-A ªÂ!  ((A G@AÀß" A «ÂAàçÂ@@@@@@@@@@@@@ ((  AàÏ" A€Ð" A Ð" AÀÐ" AàÐ"  A€Ñ"  A Ñ"  AÀÑ"  AàÑ"  A€Ò"  A Ò"  AÀÒ"  A� Â!  « A A·˜"A6 A6 A6 6 Û ‹~AAÀ˜" ÿ (E@ AA )•  AAAA )– "-E@ „ AÿÿqA€I@ (!@ –"-E@A A·˜"A6 A6 A6 AàØ"6  -"AþG AÿGq" @ –-E@A A·˜"A6 A6 A6 A°Ù"6  –"-E@A A·˜"A6 A6 A6 A€Ú"6  -"AM AOqE@A A·˜"A6 A6 A6 A€Ä"6  : ( k¬!  ¬‚ -E@A A·˜"A6 A6 A6 AÐÚ"6  AA¯˜"A: B7 A� 6 A6 A:  BB }7   † "-E@ … )! BRAAœ˜"B7  7 A ! (       · "-E@ „ AA¼˜"A: A6 A� 6 A6 A: 6 ž é (" 6 - -Atr; AHA  (( N @A€Ø"Š ‚  ("( M@ ( Atj("E@ ƒ "-E@ ä ("((A G@A€è" A «ÂAàçÂ@@@@@@@@@@@@@ ((  AàÏ" A€Ð" A Ð" AÀÐ" AàÐ"  A€Ñ"  A Ñ"  AÀÑ"  AàÑ"  A€Ò"  A Ò"  AÀÒ"  A� Â!A A·˜"A6 A6 A6 6 Û « É~ ((" AHA (( N @A€Ø"Š ‚  (" ( O@ ( Atj(" E@ ƒ " -E@ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA¼˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  ((" (! -! AAÀ˜" ÿ (E@ )•  AA )– "-E@ „ AÿÿqA€I@ (! @ –"-E@A A·˜"A6 A6 A6 AàØ"6  -"AþG AÿGq"@ –-E@A A·˜"A6 A6 A6 A°Ù"6   AHA (( N @A€Ø"Š ‚  ("( O@ ( Atj("E@ ƒ "-E@ ˆ  ( ( ° "-E@A€ç" (Â!A A·˜"A6 A6 A6  6  ( k¬!  ¬‚ -E@A A·˜"A6 A6 A6 AÐÚ"6  AA¯˜"A: B7 A� 6 A6 A:  BB }7   † "-E@ … )! BRAAœ˜"B7  7 A ! (       · "-E@ „ AA¼˜"A: A6 A� 6 A6 A: 6 ž – ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s" (qAtj(!@ @ ("AqE@  ( F  A~q!  A E@ ( " (F@ ( AlAmH ( (AtAr Å ( ("Aj6 Atj" 6 (Aj6  (  (qAtj"(6 6 ¡ (! (!AA¤˜"A6 A6 A6 A6 š!A!@  H@  Atj"(AqE@ "Aj! ( Atj (6 Aj!  (   AA™  6  ¸ (! (" ¢!  G@ 6  ¢" k"@ 6  (AjAtj!@  I@ ("@   j6 Aj!   (Atj!@  I@ ("A~q"@  j Aqr6 Aj!  ‘@ ("( J@  ( O@ ( Atj("E@  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @AAƘ"A6 A6 ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ (!  6  6  Aj!  A ì 8 8 8 8 8 8 8 8 8 8$ 8( 8, 80 84 88 8< 8@ 8D 8H 8L 8P 8T 8X 8\ 8` 8d 8h 8l 8p 8t 8x 8| !8€ Ñ}#A�¥ÁkAÀI@ #A@j"$  *@ *D *H *L *P *T *X *\ *` *d *h *l *p *t *x *|           ã!!! !!!!!!!!!!!!!"              ! * * * * * * * * * *$ *( *, *0 *4 *8 *<ã!!! !!!!!!!!!!!!!"8  8  8  8  8  8  8  8  8  8$  8(  8,  80  84  88  !8< *< *8! *4!  *0 *€"”80   ”84   ”88 C€?8< * * * * * * * * * *$ *( *, *0 *4 *8 * A�é!Ï " @ AÐé!Â!  A€¼AA-˜" A€ê!)7 Î "6  ž }C A€„ð"E  (AG@ A �ÂA€„ÂÍ C  |Dø (AG @@ ("@ AF   )º  )¹  + ¶ 8  AðåAA-˜" Aˆê!)7 Î "6  žA! AÐæ!!AÌæ!(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! AÀæ!j!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j ! AÌæ!j!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AÐæ!j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (AÐæ!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ (! (AÐæ!A! AÐæ!!AÌæ!(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! AÀæ!j!@  O@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j ! AÌæ!j!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AÐæ!j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (" ( O@ ( Atj("E@ A "@ (AF (A @ Aðæ!Â! ( !A�À (ÂA Í ÂAÀ…ÂA ê!Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6   (AF (A ~B ) >  ý~ ( A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò (! ( A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (" ( O@ ( Atj("E@ A "E@A A � Â! (AF (0A "A!Aðþ!Aìþ(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! Aàþj!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j ! Aìþj!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  Aðþj!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (Aðþ  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ (!A! Aðþ!Aìþ(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! Aàþj!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! Aìþj!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  Aðþj!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (Aðþ  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (" ( O@ ( Atj("E@ A A "E ErA (AF (A @ ( !A�À (ÂA Í ÂAÀ…ÂAàå!Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A A!AÐæ!!AÌæ!(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! AÀæ!j!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j ! AÌæ!j!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AÐæ!j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (AÐæ!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ (!A! AÐæ!! AÌæ!(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! AÀæ!j!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AÌæ!j!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AÐæ!j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (AÐæ!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (" ( O@ ( Atj("E@ A "@ (AF (A @ Aðæ!Â! ( !A�À (ÂA Í ÂAÀ…ÂA ç!Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AF (A ~B ) ! A!A€è!!Aüç!(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! Aðç!j!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j ! Aüç!j!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A€è!j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (A€è!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ (! (A€è!A! A€è!!Aüç!(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! Aðç!j!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! Aüç!j!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A€è!j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (" ( O@ ( Atj("E@ A ! (AF (A ~B )  (AF (0A A Ð Ü  (("(( OA  ("( O@ ( Atj( "E@A (AG@ (!A!@ (t"( J@ ( O@ (P"4 ( Atj("­U@  ( O@ ( Atj("E@ ((Â!A!@ ( J@ ( Atj((("@   Aj!  Aj!  A  ("(A ( " (( A E@A ("( E@ (("E@ ( ò@ ("( J@  ( O@  ( Atj(F@ ("!  ( O@   ( Atj* ’¡ Aj!  ("( "Aj!  (AvK@  AA™ ( Atj 6  6 ("( "Aj!  (AvK@ AA™ ( Atj 8 6 ð} ( E@ ( AM@ ( AM@ *! *! *! * ! *! *! *! *! * ! *$! *(! *,! *0! *4! *8! * *0!? *4!@ *8!A *CC Cç!!"’C€¿C€? *!D *!E *!F * !G *!H *!I *!J *!K * !L *$!M *(!N *,!O *0!P *4!Q *8!R *C¸¯#?ì AoAF! Aj    CÕçŠ>Cà-P¿C}Ð?ì AoAFAN ´  (" ( O@ ( Atj("E@ " * ^A * ] A * ^ A * ] A * ^ A * ] @ -@ (!@  ( I@  (" ( O@ ( Atj(! " ( " Aj! (AvK@ AA™ ( Atj 6 6 Aj!   ($       ï ((       ï —AA£˜"! AA̘" AàA¦˜" 6 6 Aà6 A6 6 A6 (" ( "Aj" AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( A lj" 8 8 8 6 (" ( "Aj" AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( A lj" 8 8 8 6 (" ( "Aj" AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( A lj" 8 8 8 6  6  Ý} ("( AM@ ("* ! *! *! ("( E@  ("*“!  *“!  *“! ("( AM@ ("*! *! * ! ("( E@  ("*“!   *“"”  *“" ”“  ”  ”“  ”  ”“ NAA¦˜"A6 C8 C8 A6 A6 AAAA¤6  6  ­ (  ¥Ò@ (  ¥Ò"E@ ( @ ("( J@  ( O@ ( Atj("E@ ( Ä@  ("( O@ ( Atj("E@ ( Aj!  A� ‰}AA­˜"A6 AAAA¤6 ((( ! ù "Ak(Av A°øÄA @A! @A! @  À! AG@  ø! (Ç! @ ( J@ ( Atj("" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ A!} (" ( J}  ( O@ ( Atj(" E@ ( F}  ("( O@ ( Atj("E@ * Aj!  C !  ( O@   ( Atj*C  C]"C€?^}C€?  ”¡ Aj!    (!AàÖÀ ÂA ÖÀ (!A�ØÀ ÂA ×À ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A� ù "Ak(Av A°øÄA @A! @ þ"AN  (("( O@ ( Atj("E@ A @  ø! (Ç!A!@ ( J@ ( Atj(! þ"AHA  � "}} (AF@ *" ” *" ”’ *" ”’‘  | (E@ +  *" ” *" ”’ *" ”’‘» ¶ C !  ( O@   ( Atj* ”¡ Aj!   (!A°› ÂAÀØÀÂ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  À ("( "AJ@ Ak! ( ! AAA™ AJ@ (AjA AkAtü A6 (!AЀÁ A «ÂAÀÆÂ! ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 …|AAµ˜"AA¿˜AÐA¿˜6@ A H@  ("Ak(AvO@  Atj+! ("Ak(Av M@  Atj 9 Aj!   à|}#A�¥ÁkA I@ #A k"$  8  8  8 C€?  ”  ”’  ”’‘•" “C[ C^q@  ”  ”  ”  CCC !!"8  8  8 *A *[ * Aœ*[q *A¤*[q@AAµ˜!AA¿˜ AÐA¿˜6#A j$   * "»" ¢! *"»" ¢! *"»" ¢! *”  *”’  *”’Œ»" ¢!AAµ˜"AA¿˜AÐA¿˜6 ("Ak(AvE@  9 Ak(AvAM@  9 Ak(AvAM@  9 Ak(AvAM@  9 Ak(AvAM@  ¢9 Ak(AvAM@  ¢9( Ak(AvAM@  ¢90 Ak(AvAM@  ¢98 Ak(AvAM@  ¢9@ Ak(AvA M@  ¢9H#A j$  !@ A H@ ("Ak(Av Ak(AvO@  Atj+ »¢! M@  Atj 9 Aj!   Œ| »! »! »! ("Ak(AvE@ Ak(AvAM@ Ak(AvAM@ Ak(AvAM@ Ak(AvAM@ Ak(AvAM@ Ak(AvAM@ Ak(AvAM@ Ak(AvAM@ Ak(AvA M@ + ¢ ¢ +D@¢ ¢ ¢  +D@¢ ¢ ¢  +D@¢ ¢  + ¢ ¢  +(D@¢ ¢ ¢  +0D@¢ ¢  +8 ¢ ¢  +@D@¢ ¢  +H " b|D D¥ �| +Dt@£ +Dn@£¤"œ"Dð?c@ ! De@ (("  (.»bA @ ( ¶- + Dt@¢¡Dà?¢œ! (("  (.»bA @ ( ¶- + Dn@¢¡Dà?¢œ! ( ("  (.»bA @ ( ¶- ' ("  (.»bA @ ( ¶- # (" (6A E@ (AJ ›|~ (("| (.»D (("| (.»D ( ("| (.»D (("| (.»D (("| (.»D (("| (.»D ((" (6A AGAt· D @¢ D @¢ D @¢ D@¢ D@Ÿ@¢ !  +�b@ 9�A! (\! (("| (.»D ª (("| (.»D ª ( ("| (.»D ª (("| (.»D ª (("| (.»D ª ((" (6AGA (("| (.»D ª‰" (ÄE@  6  ž ("@  — ( ("| (.»D !  +˜b@ 9˜ (`!A°ù ˆÂ" (ÄE@  6  ž ("@  — ($("| (.»D !  + b@ 9  (d! ª"AN #ÉAk(AvHA  #É"Ak(AvO@  Atj("E@ A� " (ÄE@  6  ž ("@  — ((("| (.»D ! (,("| (.»D !  +¨bA  +°b @ 9¨ 9° (h! ˆA°ü ªA «Â" (ÄE@  6  ž ("@  — (0("| (.»D ! (4("| (.»D !A DY@f q  +¸bA  +Àb @ 9¸ 9À ª"AäN@ (l! (("| (.»D ª (("| (.»D ª ( ("| (.»D ª (("| (.»D ª (("| (.»D ª ((" (6AGA (("| (.»D ª‰" (ÄE@  6  ž ("@  —  AN #ÊAk(AvHA @ (l! #Ê"Ak(AvO@  Atj("E@  (ÄE@  6  ž ("@  — A� (l"(ÄE@ A� 6 A� ž ("@ A� — (8("| (.»D !  +Èb@ 9È (p! ˆ" (ÄE@  6  ž ("@  — (<("| (.»D !  +Ðb@ 9Ð (t! ˆ" (ÄE@  6  ž ("@  — (@("| (.»D !  +Øb@ 9Ø (x! D$@¢"›" Dð¿  Dà¿  e°" BS@B! B ­A � B �­ÂAÀ‚Â" (ÄE@  6  ž ("@  — (D("| (.»D !  +àb@ 9à (|! ª"AH ANq #Ë"Ak(AvO@  Atj("E@ #Ë"Ak(AvE@ ("E@  " (ÄE@  6  ž ("@  — @ (ˆ"( J@  ( O@ ( Atj("@ (("| (.»D ! (("| (.»D !  +a + aA E@  9  9 (! ›" Dð¿  Dà¿  eª"Au"AJ A uA?q‡ AuA?q‡Â A?q‡ÂAЃ " (ÄE@  6  ž ("@  — ( ! ˆ" (ÄE@  6  ž ("@  — (! AqAv"#â"Ak(AvO@  Atj("E@  (ÄE@  6  ž ("@  — Aà„A€… Aq" ("(ÄE@  6  ž ("@  — Aj!  (P("| (.»D Dd| (P("| (.»D Dð? ! (H("| (.»D ! (L("| (.»D " Da Daq|Dd@ (T("| (.»D ¡ £"›" Dð¿  Dà¿  e ! Da Daq|DÀb@ (X("| (.»D ¡ £"›" Dð¿  Dà¿  eD4@  !D@@ D@@c"Dr@d@Dr@! DP@  DP@c"Di@d@Di@! (€("  (.»bA @ ( ¶- („("  (.»bA @ ( ¶- þ}C€?C##" - !C€?C -(! @ 8 8$ C8( * "  “CC€? Cš™™>•C@@”" C€?^ C]”’8 *$"  “CC€? CÍÌL>•C@@”" C€?^ C]”’8$ *(C€?C -  *$Cš™>^A  *(“CC€? C€@”" C€?^ C]”’8( * "Chfæ?”Cff†@’"C`@ “ *$"”’! Cfff?”CÍÌÌ?’"Cš™™? “ ”’! * CpA”C5úŽ<”’! @ 8 C8 * ’8 C8 *"   *“!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  Œ"CUUUA”’ ”"CUUUA”“C€? CUUUA”"C€?’ C�Âõ>” ”’ C×£p>” ” ”’•"”8   ’ ”’!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  8 *"  * * ’“"CUUUA”’ ”"CUUUA”“ ”8 * ’  ’ ”’8 A: *üŒ! *úŒ! *  ”C?”“ *  ”C?”“ C?”C€?’ (H�! A!@  H@  (H" Ak(AvO@ Atj( (D�@ * (D" * ]A * *^ * *“" ” * *“" ”’Œ" ^ C_r   ”’" ”   ”’" ”’ *"Cš™™>’" ”]@  “CÍÌ̾’"Cš™™? Cš™™?^! Aj!  *! *  ”“" *  ”“" (@Š  (@*Cš™?’]A @ (@*Cš™?’! 8, 80 84 Ê}  “" ”  “" ”’  “" ”’‘"C·Ñ8]@  •" ”  •"Œ" ”’‘"C¬Å'7]@  •"  •"” C”“!   •"”  ”“! C”  ”“!@ ("E  C C   C   C   C€?!!!!!!!!!!!! ! ! ! " 8h  8l  8p  8t  8x  8|  8€  8„  8ˆ  8Œ  8�  8”  8˜  8œ  8   8¤ ("E  Ak(A¼FA E@ *Ì \@ 8Ì  A°˜+$ AÐÊA°˜+Âõ #"@A$ Ak( Ñ} ( "E@ #È•"C]@C! C€?  C€?^! †"("-} (²C (²•  ("- ( ( ² (²• -} (²C (²•“‹”’" *[  “C\rA  ((²”" “C\ E@  8 * * “!   ("-} (²C (²”“8  * “8 A6 ( " AŠ@ A:< (A:æ 8 ì } (<"( AÊM@ #(4" ((¨"} *¤ *˜! *œ *  C 8 (<"( AËM@  ((¬"} *¤ *˜! *œ *  C 8 (<"( AÌM@  ((°"} *¤ *˜! *œ *  C 8 (<"( AÍM@  ((´" -¨A : (<"( AÎM@  ((¸" -¨A : (<"( AÏM@  ((¼" -¨A : (<"( AÐM@  ((À" -¨A : (<"( AÑM@  ((Ä" -¨A : (<"( AÈM@  (( " -¨A :  -U: (<"( AÉM@ A ((¤"} *¤ *˜! *œ *  C ¨" AJA AN6 (( -:È (((¼ -:H## - :T -UE@ (<"( AÒM@ (! ((È"} *¤ *˜! *œ *  C ! (<"( AÓM@ ((Ì"} *¤ *˜! *œ *  C ! (<"( AÔM@ ((Ð"} *¤ *˜! *œ *  C ¨! C€¿C€?  C€?^ C€¿]8 C€¿C€?  C€?^ C€¿]8  (Asq!  6  6A ‹C?^A ‹C?^ @ A6 Aq@ A: Aq@ A: A:( A q@ A: AÀq@ A: A€q@ A: A€q@ A:! A€q@ A:" ’ A6D C8H#A6 A:T #(ƒ (,A: (,A‡ (,"A60 A64 A:H A68 A:p C8L C8P#A6 A6L##A: ™} Aƒ (,A: (,A‡ (( *XC`A‰ (((œ"* ! *! *! *! ((* ! ((*! (0" ((*8  8  8$  8(  8,  80  84 (0" *8  * 8  *$8  *(8  *,8  *08  *48 A6D C8H#A6#A6##A: ” }~# 6#C8 C8€ C8„ ($"A: A: C8 C8 C8 @ AH@  ("Ak(AvO@  AtjC8 Aj!  A6 A6 A6, C80 C84 C88 A:< A:= A6H C8L C8P C8T C8X C8\ C8` A6d C8h A6l A6p A6t A6Œ C8�#($"A6 A6 A6 A6 A6 A: A6 A: C8 #A (, -#($-A "A - AGj" A N6 *0!#A  -} #($* ’  8# AJ:# *\8 (("(¼"(T"B7 B7  ) )B­þÕäÔ…ý¨Ø~|7  ­" )|7  ) )B­þÕäÔ…ý¨Ø~|7 A6L C8P (À(4"B7 B7  ) )B­þÕäÔ…ý¨Ø~|7  ) |7  ) )B­þÕäÔ…ý¨Ø~|7 CC‰ C8ü C8€ A:ˆ A:© A6¸ C8¬ CzÄ8° C8´ A6Œ (,"A60 A64 A:H A68 A:p C8L C8P ("A6 C8 A: A: A: A: A: A:! A:" A6$ A:) ( "C8 C8 A: A: A6 ("C8 C8 (((œ"* ! *! *! *! ((* ! ((*! (0" ((*8  8  8$  8(  8,  80  84 (0" *8  * 8  *$8  *(8  *,8  *08  *48 (4"C8@ C8D C8L C8P C8T C8X (4A:l C€¿8P A6ˆ A:” A:œ#(,"C8 C8 C8 C8 C8 C8 C8 C8 A6 A6$ A6( A6,A!@ AL@  (Œ"Ak(AvO@  AtjC8 Aj!  ((— ##A: Œ} (<"( AÜM@ A ((ð"} *¤ *˜! *œ *  C ¨" ALƒ (<"( AÛM@ ((ì"} *¤ *˜! *œ *  C ¨"AJ@ A:T (,A: (, AF‡  A:T A6L @ A6D C8H#A6 A6D C8H#A6 ¥} A6D C8H#A6#A6 C8P#(("( A€o!  ("Ak(AvO@  AtjA 6  ("Ak(AvO@  AtjC8  ("Ak(AvO@  AtjC8  ( Aj6 #(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  AtjC8  ("Ak(AvO@  AtjC8  ( Aj6 (("* C€?]@ (A *C @` E@ C @8  *$8  * Œ  * *à”8  * *ä”8  * *è”8 -T@ (<"( AÛM@ (, ((ì"} *¤ *˜! *œ *  C ¨AG‡ ×}#(,! ( "Ak(AvE@ (! ( "Ak(AvAM@ (! ( "Ak(AvAM@ (! (,"AJ@#(0! *! A t Atj j²CA” (((¸ ((Atj²’! A L@A !@  N@ ("Ak(Av Ak" Ak(AvO@  Atj*! M@  Atj 8 ("Ak(Av Ak" Ak(AvO@  Atj*! M@  Atj 8 Ak!  Ak" ("Ak(AvO@  Atj 8 Ak" ("Ak(AvO@  Atj 8 -TE@A!@ AH@  ( "Ak(AvO@  Atj(! (¨"Ak(Av M@  Atj 6 Aj!  A6D C8H#A6 A6ˆ A:” A:œ A:• ´} : A6, A60@ A$H (,AàHA @  (|‘ (|!#ZC^#Z *]A #� *^A  - GA E@ (,!@ AJ Ak" ("Ak(AvO@  Atj* *^A @ ("Ak(Av Ak" Ak(AvO@  Atj*! M@  Atj 8 ("Ak(Av  Ak(AvO@  Atj*! M@  Atj 8 ( "Ak(Av  Ak(AvO@  Atj*! M@  Atj 8 ("Ak(Av  Ak(AvO@  Atj(! M@  Atj 6 ("Ak(Av  Ak(AvO@  Atj*! M@  Atj 8 ("Ak(Av  Ak(AvO@  Atj(! M@  Atj 6 ("Ak(Av  Ak(AvO@  Atj(! M@  Atj 6 ( "Ak(Av  Ak(AvO@  Atj(! M@  Atj 6 ($"Ak(Av  Ak(AvO@  Atj(! M@  Atj 6 (("Ak(  Ak(O@  j-! M@  j : !  *! ("Ak(Av M@  Atj 8 *!  ( "Ak(AvO@  Atj 8 (! " ("Ak(AvO@  Atj 6 *! ("Ak(Av M@  Atj 8 ( !  ("Ak(AvO@  Atj 6 *!  ("Ak(AvO@  Atj 8 (AF ( ANA @ ( "AÌæ>(AvO@ * AtAÐæ>j(Ak²C€>”’! ("Ak(Av M@  Atj 8 !A!A! -@C@@!@Aìß>(Av J@#ZC^#Z AtAðß>j*]A #� AtAðß>j*^A  Aüà>(AvO@ AtA€á>j(AF GA E@ AtAðß>j* *“‹" ]@ ! ! Aj!  -€E:€@ AN@AŒâ>(Av M@ AtA�â>j(! ("Ak(Av M@  Atj 6 Aœã>(AvO@ AtA ã>j(!  ( "Ak(AvO@  Atj 6 A¬ä>(AvO@ AtA°ä>j(!  ($"Ak(AvO@  Atj 6 A¼å>(AvO@ AtAÀå>j(AG! (("Ak( M@  j :  AA -€! (AF@  ("Ak(AvO@  AtjA6  ( "Ak(AvO@  AtjA6  ($"Ak(AvO@  AtjA6 *‹C@@]A *C D] A *CaD^ ! (("Ak( M@  j : (AF@ ("Ak(Av M@  Atj A´l6  ( "Ak(AvO@  AtjA6  ($"Ak(AvO@  AtjA6 (AF@  ("Ak(AvO@  AtjAÈw6  ( "Ak(AvO@  AtjA˜}6  ($"Ak(AvO@  AtjA6 ("Ak(Av M@  Atj A  l6  ( "Ak(AvO@  AtjA6AA -€! ($"Ak(Av M@  Atj 6  (("Ak(O@  jA: (,Aj6, Aj!  ”$  } C8 C8 A: A: A6 ("AF@ (8AG@@ (0"AN (, JA  (0" ("Ak(AvO@  Atj* * “‹C@A]A  (0A ! *Ð! C8< C8@ A6D A:H AH Cffæ>]r  ("Ak(AvO@  Atj(²!Cš™Y?C€? CÍÌ ?^  ($"Ak(AvO@  Atj(A ! C\@ CD” Cš™™¾’” C$B”’C4C•Ž" ‹C4C•"^}   C4C”C€?C€¿ C^”8<  ( "Ak(AvO@  Atj(²"C\@ CÒC” Cffæ¾’” CB”’C×C`@ C´CC´Ã C^8@ CÍÌ ?^@  ($"Ak(AvO@  Atj(6D (0"AN  (,HA   ("Ak(AvO@  Atj(AFA   (("Ak(O@  j-A @  ("Ak(AvO@  Atj* * “" C€@] C@À^q@ A: -H@ *<" C\@Cš™Y?C€? (Ä! *¬‹ *¤‹" ”CÿÿàE•’ *ÐCÍÌL¾’"C^} CD” ”C ’C4C•ŽC4C”" *¬‹ ”CÿÿàE•’C Á’C4C•�C4C”" ]" ‹]@ C€?C€¿ *^A @ (DAF@ A6  (DAF@ A6  (DAF@ A6  (DAF@ A6  AF@ C€¿C€? (¼"*$CÍÌÌ?”" C€?^ C€¿]8  *C^} (Ak² *“ * C€>”Cfff?^: A:H E@  * " ! @  (,H@  ("Ak(AvO@  Atj(AF  (("Ak(O@  j-EA E@  ("Ak(AvO@   Atj* C€¿’^  Aj!  A "60CÀ@C@A (¤AF" *CÍÌL?”"]@ ! * * (4 -�"64  ¨j" -##AkA�jA™ Ak"J@ ! A AN - (t‹C�A! (t" *! *!C(knN! AN@  ("Ak(AvO@  Atj* “!  ("Ak(AvO@  Atj(! CŒB]@  ( "Ak(AvO@  Atj*CC€?CŒB “C4B•" C€?^ C]”!  !@  (,H@  ("Ak(AvO@ @  Atj*C_  ("Ak(AvO@  Atj(AF  (("Ak(O@  j-EA   Aj!  A "AN  ("Ak(AvO@  Atj* “C4C]A   ("Ak(AvO@  Atj(!  ("Ak(AvO@  Atj* AF AFr}CC€?C @ AF “!  ("Ak(AvO@  Atj* “C@A]A AF CA]q  AF CA]q !A!@  (,H@  ("Ak(AvO@ @  Atj(AGA  (("Ak(O@  j-  ("Ak(AvO@  Atj* “C B^A  ("Ak(AvO@  Atj* C€¿’]  ( "Ak(AvO@   Atj*‹C@@]  Aj!  A "AN@  ( "Ak(AvO@  Atj*  ( "Ak(AvO@ C ÀC @  Atj*C^’! C B]A (X FA AF  ("Ak(AvO@ *  Atj*CÀ@’^A A CðA]A AF  ("Ak(AvO@  Atj*C^A   ("Ak(AvO@ *  Atj*C`@’^A  @  ( "Ak(AvO@ C @CA AF!  Atj*  ( "Ak(AvO@ Œ  Atj*C^’! 6X C4B]A AF  (("Ak(O@  j-A   ("Ak(AvO@  Atj(ANA   ("Ak(AvO@  Atj(A (xŽ (x*! (x*!  ("Ak(AvO@  Atj(  ("Ak(AvO@  Atj("AÌæ>(AvO@ AtAÐæ>j(Ak (xŽ (x* “" ” (x* “" ”’‘"C ×#<^@  •! •!   * “ ” * “ ”’ *CÍÌ ?”"C @^} C @ ’"”’!  ”’!C! C`@] CÀ^q AF * C @’]A  Cš™™>_ CÀ^q! C @] Cš™™>^qA ! *! C’" C\ *Œ" ” * " ”’‘"C·Ñ8^q}   • ”’!   • ”’  *“Œ  * “Œù!  “! (4 - (l‹ (l"*Œ" ” * " ”’‘"C·Ñ8^} * *“ ” * *“ ”’ •C ! 8d 8h E E CÍÌL?^qq  “‹CA]q"@ *$ “! @ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  (TAJ CÍÌL>CÍÌÌ> C ×£=”" CÍÌÌ>^ CÍÌL>]"Œ]q@ A6T (TAH ^q@ A6T  (T²8 C8\ * “! @ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  C€¿C€? CÀ” *$ * “! @ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  CÀ?”’" C€?^ C€¿]8  E  Cš™™¾’]q C€@^q: :` E q@ A: A:p A: A:p A:H 68 \} �" C€¿’ C¿’ _¨"AH@A! A˜ J@A˜ ! A (Ô‹ (Ô Š 6˜ ì A6 *8 *8 * * (Ì"Š *8 *8, *80 * 84 *88 *8< * 8@ (6D * Œ *Œù8$ *$8œ *$8 8 A:( C8P C8T C8X C8\ C8` C8d A:h C8l C8� A6˜ C8  C8¤ C8¨ A6Ä C8È C8ì C8ð C8ø *8  ( 6¤ -%:¨ * Œ * *à”8 * *ä”8 * *è”8 (œ *$ * * * ž ³Š}~ (¼"*PC€¿^@  *P “8P *l" C^@ “8l *ì" C^@ “8ì *ð" C^@ “8ð *ü" C^@ “8ü A (AF A -ˆ *€C ?]A  *øC_ ! *ø" C^@ “8ø (AF@ *€ ’8€ (À" *( ’8(  * CÃõA”“8  * * ”’8  * * ”’8  * * ”’8 A:0 * * (8"Š@ *Cš™™>’" *^@  8 A:0 * *" ” * *”’ * * ”’" C]@  * Cff¦¿”" ”’8  * *”’8  * * ”’8 C@^@  * (4" ) )"B­þÕäÔ…ý¨Ø~|7 Bˆ …Bˆ§"A B;ˆ§"kt  vrAv³C€3”C@”C€¿’ ”C?”’8  *$ (4" ) )"B­þÕäÔ…ý¨Ø~|7 Bˆ …Bˆ§"A B;ˆ§"kt  vrAv³C€3”C@”C€¿’ ”C?”’8$ * " ” *" ”’‘" C ×#<^@  C`@”" “ •C ^" ”8  * ”8  *C€? CÍÌ @”“" ”8  * ”8  *$ ”8$ *" ” * " ”’ *$" ”’‘" C·Ñ8^@ (! • ”C?”" ü"”!  ú" *" ”  * " ”’ • ”" *"”’  • ”" *"”“8  ”  ”“ ”’ ”’8  ”  ”’ ”“ ”’8  ”  ”“ ”“ ”“8 *" ” *" ”’ *" ”’ * " ”’‘"C_p‰0^@  •8  * •8  * •8  * •8  C8 C8 C8 C€?8 *8 *8 *8 * 8 *8 *8 (œ" ("*8  *8  *8  * 8 *€C33“?`@ –  -ˆ@ *€ ’8€ *€C@`@ A:ˆ ("@ AF@@ *  ’8  * CPA”“8 *" ” *" ”’‘" CÍÌÌ=^@ C¦›Ä:” ” ”" “ •C ^" ”8 * ”8 @ * •! * *Œ •C?” *” ”’8 * C?” *” ”’8 *" ! * ! * ”’8 * * ”’8 * * ”’8 -h!  - A :h *p" C^@ “8pA   -hA  *lC_A @CC€? *dCÍÌÌ>•" C€?^ C]Cš™@”C33s@’! C8d C8p * *t”’8 * *x”’8 * *|”’8 C€>8l#(("( A€o!  ("Ak(AvO@  AtjA6 ("Ak(Av M@  Atj 8  ("Ak(AvO@  AtjC8  ( Aj6 -”@AЪ? * ¦ÂA°ª? ¦ÂA�ª? * ¦Â€ *" C?^@ C4Ã8¤ C¿]@ C4C8¤ � *„" C^@ “8„ A  A *pC_ -hA @ CÍÌL>8„ CC€? *dCÍÌÌ>•" C€?^ C]Cš™@”C33s@’8ˆ -h@ *d ’" CÍÌÌ>]} CÍÌÌ> 8d C8d *pC_A -h E@ C¤pÕ@”! *`" C]} ’" C C] “" C C^ 8` A  ( "AqAFA AqAAAA Aq Aq A *ÐCš™>]"  (ÄGA @#(("( A€o!  ("Ak(AvO@  AtjA6 ("Ak(Av M@  Atj ²8  ("Ak(AvO@  AtjC8  ( Aj6 6Ä A *ÈC_ @ A6Ä C®GA”! *È" C€?C " ]} ’" ^ “" ] 8È } *C ! } *C ! -À@ ‹Cš™™>]@ A:À C! CÒC”Cš™Y?C€? "”! Cÿÿ`E”! *¤" CÄ” ”" ]} ’" ^ “" ] 8¤ C/E”! *¨" ^} ’" ^ “" ] 8¨ *¤" C\@ (œ! C5úŽ<” ”C?”" ü"C”! ú!  * " ” *" ”’ *" C”"”’ *" C€?”"”“8  ” ”“  ”’  ”’8  ” ”’  ”“  ”’8  ” ”“  ”“  ”“8 *" ” *" ”’ *" ”’ * " ”’‘" C_p‰0^@  •8  * •8  * •8  * •8  C8 C8 C8 C€?8 *¨" C\@ (œ! *¼Œ ”C5úŽ<” ”C?”" ü"C€?”! ú!  * " ” *" ”’ *" C”" ”’ *" ”“8   ”"  ”"“ ”’  ”’8   ’ ”“  ”’8   ”  ”“ ”“  ”“8 *" ” *" ”’ *" ”’ * " ”’‘" C_p‰0^@  •8  * •8  * •8  * •8  C8 C8 C8 C€?8 *¬ *¤ ”’8¬ *° *¨ ”’8° *¬‹C4C•¨" (´J@ 6´C€?C€¿ *¬C^! #(("( A€o!  ("Ak(AvO@  AtjA6 ("Ak(Av M@  Atj 8  ("Ak(AvO@  AtjC8  ( Aj6 *°‹C4C•¨" (¸J@ 6¸C€?C€¿ *°C^! #(("( A€o!  ("Ak(AvO@  AtjA6 ("Ak(Av M@  Atj 8  ("Ak(AvO@  AtjC€?8  ( Aj6 (Ä! *¬! *°! *ÈC?^ (ÄA ! -@  8  8  * ’8 AH AJq@  ("Ak(AvO@  Atj* ’!  Ak(AvO@  Atj 8  ("Ak(AvO@  Atj*CÍÌL>`@ ("@  G (A E@  6   6 � � ‹Cš™™>] *¨‹CðA]A @@ (œ" * *" C” *" C€?”“C@”" ”C’ *" C€?” C”“C@”" ” C” C”“C@”" ”“’8  * ”C€?’ * ” * ”“’8  * ”C’ * ” * ”“’8 *" *à” *" *ä”’ *" *è”’" C€?^@C€?! C€¿ C€¿]÷" Coƒ:] #²^r *è"” *ä"”“" ” *à" ” ”“" ”’ ” ”“" ”’‘" C¬Å'7] • *Ð" CÍÌL=^} CÍÌL= •" #˜^}#˜ ”" ^}  C?”" ü"”!  ú" *" ” * " ”’  • ”" *"”’  • ”" *"”“8  ” ”“  ”’ ”’8  ” ”’  ”“ ”’8  ” ”“  ”“ ”“8 *" ” *" ”’ *" ”’ * " ”’‘" C_p‰0^@  •8  * •8  * •8  * •8  C8 C8 C8 C€?8 -È *ÐCÍÌL>_A @ *à! *ä! *è! (œ" * *" C” *" C€?”“C@”"”C’ *"C€?” C”“C@”" ” C” C”“C@”" ”“’8  * ”C€?’ * ” * ”“’8  * ”C’ * ” * ”“’8 *" ” *" ”’ *" ”’" C€?^@C€?! C€¿ C€¿]÷" Coƒ:^ #º_q@  ”  ”“" ”  ” ”“" ”’ ”  ”“" ”’‘" C¬Å'7^@  •#™ ”" ^C?”"ü"”!  ú" *"” * "”’  • ”" *"”’  • ”" *"”“8   ” ”“  ”’ ”’8   ” ”’  ”“ ”’8   ” ”“  ”“ ”“8 *" ” *" ”’ *" ”’ * " ”’‘" C_p‰0^@  •8  * •8  * •8  * •8  C8 C8 C8 C€?8 � " ‹Coƒ:^#¹ ‹`A @ #™ ”" ‹"  ]"Œ  C^C?”" ü"”!  ú" *" ”  * " ”’ ”" *"”’ ”" *"”“8  ”  ”“ ”’ ”’8  ”  ”’ ”“ ”’8  ”  ”“ ”“ ”“8 *" ” *" ”’ *" ”’ * " ”’‘"C_p‰0^@  •8  * •8  * •8  * •8  C8 C8 C8 C€?8 (¼ * * * * * *A -h (œ" * C€ *"“ *" C”“C@”" ”C’  *" C” C”“C@”"” C”C€ ““C@”" ”“’8  * ”C’ * ” * ”“’8  * ”C€¿’ * ” * ”“’8 (œ*Œ (œ*Œù˜ @ ‘  * * (Ì"Š@ * *” * *”’ * * ”’"C] *"C𙾒  (AF" *`q@ 8 *! * ! *" 8, 80 84 � ‹! (œ" * *"C” *" C€?”“C@”"”C’  *"C€?” C”“C@”"” C” C”“C@”" ”“’8  * ”C€?’ * ” * ”“’8  * ”C’ * ” * ”“’8 Œ! (œ* ” (œ* ”’ (œ* ”’"C€?^@C€?! C€¿  C€¿]÷!A #´_ #³_qA #¶_ #µ_qAAA #¸_ #·_q "AH CA^q Aj  CPA^! -”@A�­? * ¦ÂAð¬? Cá.eB”¦ÂAЬ? Cá.eB”¦ÂA°¬? ¦ÂA�¬? A «ÂA�ª? * ¦ÂA «? *¬¦Â€ 6Œ AG@#(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  Atj ²8  ( Aj6 @ AF@ A•  *" ” *" ”’ *" ”’!   ”“" ”   ”“" ”’   ”“" ”’‘! (œ" * C€ *"“ *"C”“C@”"”C’  *"C” C”“C@”"”  C”C€ ““C@”"”“’8  * ”C’ * ” * ”“’8  * ”C€¿’ * ” * ”“’8 (œ* ” (œ* ”’ (œ* ”’C]:( * CÍÌL>]} * *” * *”’ * *”’‘  ú”! A * Cš™™>^ } C @’" C A C A^ C A] CìQx?” C333?” AF "CØA^}CØA  8 CÍÌÌ=^@ Œ • Œ •ù8 (œ" * C€ *"“ *" C”“C@”"”C’  *"C” C”“C@”"” C”C€ ““C@”" ”“’8  * ”C’ * ” * ”“’8  * ”C€¿’ * ” * ”“’8 (œ*Œ (œ*Œù! -(@ CÛI@’!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  8$ *$8 A6 C8  C8¤ C8¨ A6Ä C8È C33³>8ð 8ô AF@ C?8ì * Œ * *à”8 * *ä”8 * *è”8 88 8< 8@ (œ *$CÛI@C -(’ ž (Ä"š A› (,"@ *0" A  A N²" ”" C?C€? AFC ? ”" CÍÌŒ?C€? -<”" �" C€¿’ C¿’ _!  *L *4’8L  *P *8’8P  *X “" �" C€¿’ C¿’ _" ’8X  *T  *4“ *8“ “’8T  *\ ’8\  *`^@  8`  (,6d AFAA C@œF` A C€;F` A C€»E` A C€;E` A CzD` A ! E@  (lAj6l  (€Aj6€#(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  AtjC8  ( Aj6  6Œ  8�  (|Aj6|#($"A:  8 #(("( A€o!  ("Ak(AvO@  AtjA 6 ("Ak(Av M@  Atj 8  ("Ak(AvO@  Atj ²8  ( Aj6 -”@A°®? ¦ÂA�®? ¦ÂAð­? ¦ÂA�¬? A «ÂA «?Â#($(A «ÂA€«?Â#($(A «ÂAЭ?Â#($( A «ÂA°­?Â#($(A «Â€ A6, C80 C84 C88 A:< A:=#A (, -#($-A "A - AGj" A N6 *0!#A  -} #($* ’  8# AJ:# *\8 *„C^@ *ˆ8Œ C8„   ” (AF * * * ’A @ A•  (AF@@ (¼! -h!  - A :h C¤pÕ@”! *`" C€?C -h" ]} ’" ^ “" ] 8` } *C !  *, ’8,  * *@CÃõÁ” (AF}C�Âu=C�Âõ=C ×£= (AF CÃõA”C€? *@" ”“‘”“ *" CX9´;” ”“ ”’8A *C?]  *ލ"AH@A!  (Ak"J@ ! (  (\Ž ( Aj (`Ž  * * *” ” (`* (\*“" ” (`* (\*“" ”’ (`* (\*“" ”’‘" C€> C·Ñ8^•’8 *C]A * (Ak²^ @ C (Ak²" *" ^ C]8 ™ A  ™ *,C€>”Cš™?’C?C€? -H" ”!  *( (T" ) )"B­þÕäÔ…ý¨Ø~|7 Bˆ …Bˆ§"A B;ˆ§"kt  vrAv³C€3”C@”C€¿’ ”CA” ”’8(  Œ" *(" ] ]8(  *$" *( Cš™™?” ”’ CÍÌ @”“ ”’8$ *$C€?`A *$C€¿_ @ C€¿C€? *$" C€?^ C€¿]8$A  A ! *08 *48 *88 *8 *< *”8 *@ *”8 *D *”8 (Ä"-@  *$ ’8$#($ *$C–C”CC’ *(”" �" C€¿’ C¿’ _8 #A (, -#($-A "A - AGj" A N6 *0!#A  -} #($* ’  8# AJ:# *\8 ’ AF@ (¼"" (6L Cš™>8P (ÄAAœ *$!#(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  AtjC8  ( Aj6 #((!A ("AF A AF A ²! ( A€o" ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  AtjC€?8  ( Aj6 Cfff?Cfff¿ *$C^! *DŒ" ” *<" ”’‘" C·Ñ8^@ * • ”’8 * • ”’8 * * (Ì"Š *8 *8, *80 * 84 A6 *C?”8 *$8 Cš™?8ø Cš™?8ì * Œ * *à”8 * *ä”8 * *è”8 (œ *$CÛI@C -(’ * * * ž  AF AFr@ CÀ? *“  A   -hA @ C`@ *“ @ * * (Ì"ŠE@ AŽ  ! *8, *80 * 84 (6D -:H (6LC)\=! C€?! (AF}CìQ¸=! C333?!Cš™>!CÍÌL? (AF}C�Âu]} CÍÌÌ> 8d C¤pÕ@”! *`" *dCÍÌÌ>•"Cffæ>”CÍÌ ?’" ]}  ’" ^  “" ] 8` C€?` -€A E@ A:€#(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  AtjC8  ("Ak(AvO@  AtjC8  ( Aj6  C¤pÕ@”! *`" C]} ’" C C] “" C C^ 8` A:€ C€@C¤pÕ@  -A  -hA A *øC_ " ”! *\"C€?C " ]}  ’" ^  “" ] 8\ *\! CðB! *"CÀ@^@CðB CÀÀ’C¨A•CŒB”“! *$ } *C "CHB CHB]C€? CÍÌÌ>”“” ””C5úŽ<”" ”“!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  8$ *0" *,”! *4”! *C€?]@  ” ”’‘" CÍÌL=^} Œ • Œ •ù *œ *$“!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  *$#° ”" Œ"   ]  ^’!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  8$ *$8 * CÀ?”’8 *CÀ?^@ *$ *œ“!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  #± ‹]@ *$CÛI@’!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  8$ * CÛI@’!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  8 *C?”8 -(E:( * Œ *à *è *äCÃõÁ” CÃõA” *0”“ *\C|ò0»”CX9´;’! *"CÈA^} CÈÁ’C?”C€?’” ” ”“ ‹Cš™?”“! A! * *$“!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  " ‹" CJ LA” *"C€?^} C€? •" C A” ”" ]}A!  ”"]@ ! *  Œ C^“!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  8 * *$“!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  ‹! CÀ@”! *P" }CC€? Cªa?•" C€?^ C]C " ]} ’" ^ “" ] 8P CÚÉ? CÚÉ?]üCÃõ@”“! C¸²?^@ *$" * “!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  C¸²?C¸²¿ C^’!@ CÛI@^@ CÛÉÀ’!  @ CÛIÀ_@ CÛÉ@’!  8 * ”’8 *C]@ C8 *CØA^@ CØA8 CC€? * ”" ‹CJ LA•" C€?^ C]8T CÃõA•ø" C ¾u?^@C ¾u?! C ¾u¿ C ¾u¿]8X * Œ *" *ä”! *è”! *" ! *! * ! *à”" ”’8 * ”’8 -H! * * Š! *”  *"”’ * ”’! A  ”’ CÃõœ@” ”“" * “" “"CÍÌÌ>^ C ×#?]A A  -A E CÀ?^q A *CÃõ(?] CÀ?^q C^q ! A6˜ 8 8 8A   -hA ! } *ŒC ! C8ŒC! A C^  *lC_A @ @CC€? *dCÍÌÌ>•" C€?^ C]Cš™@”C33s@’! C8d -HA - @ 8� C8” }  8  *�  ! -h rE@ C8d *�C^@ *” ’8” @ 8 -HA *�C^ ! *�"C^@ C€?C *”C�Âõ=_"’! C8� *  *,”’8 *  *0”’8 *  *4”’8 C€>8l#(("( A€o!  ("Ak(AvO@  AtjA6 ("Ak(Av M@  Atj 8  ("Ak(AvO@  AtjC€?C 8  ( Aj6 Ž *"C?^@ C4Ã8¤ C¿]@ C4C8¤  C^@ * *,”’8 * *0”’8 * *4”’8 C€>8l#(("( A€o!  ("Ak(AvO@  AtjA6 ("Ak(Av M@  Atj 8  ("Ak(AvO@  AtjC8  ( Aj6 AŽ *"C?^@ C4Ã8¤ C¿]@ C4C8¤  AŽ Cš™>8p *,8t *08x *48| #ŸC^A  * #Ÿ“‹C@A]A @#(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  AtjC8  ("Ak(AvO@  AtjC8  ( Aj6  8 *�C^ -A A -H E@ *�! C8�  *�  -:H *8, *80 * 84 *$üŒ! *$úŒ! * CÀ>”" ’ * CÀ>”" ’ (Ð"ŠAG! *! A * “ * “ Š! *! A * C¾”" ’ * C¾”" “ Š! *! A * “ * ’ Š! *! *,! *0! *4! *8" }  “" C@?”"” C€>”"  “"”“" ”  C@?”"” C€¾”" ”“" ”’  ”  ”“" ”’‘"C½7†5^ •Cš™™>^A } •!  •!  •  “CC€? C A”" C€?^ C]"”’88 *<" “ ”’8< *@" “ ”’8@ *8"  ” *< *<”’ *@ *@”’‘"•88 *< •8< *@ •8@  (¼ * * * * * *A -h (œ" * C€ *"“ *" C”“C@”" ”C’  *" C” C”“C@”"” C”C€ ““C@”" ”“’8  * ”C’ * ” * ”“’8  * ”C€¿’ * ” * ”“’8 (œ*Œ (œ*Œù˜ A @ ‘   ” (A * * * ’ @ A• (E@ (œ *$CÛI@C -(’ *8 *< *@ž (AG@ * * (˜ -¨�"AN@ 6˜  -¨ (Ô‹ (Ô* Œ (Ô*Œù8œ (Ô*"8  (Ô( " (¤G@ 6¤ (¤²! #(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  AtjC8  ( Aj6 #Z^#ZC^q #�]q@ *! * ! A #Z] #�^r  AŒA�! AŒA�! AN} Al"AÌÖ:(AvO@ AtAÐÖ:j*A kAl"AÌÝ=(AvO@ AtAÐÝ=j* “! AN} AlAj"AÌÖ:(AvO@ AtAÐÖ:j* A}lAk"AÌÝ=(AvO@ AtAÐÝ=j* “!  # J A #k"k #AéjH  #AjAèk "AN} Al"AÌÖ:(AvO@ AtAÐÖ:j*A kAl"AÌÝ=(AvO@ AtAÐÝ=j* “" ” # J A #k"k #AéjH  #AjAèk "AN} AlAj"AÌÖ:(AvO@ AtAÐÖ:j* A}lAk"AÌÝ=(AvO@ AtAÐÝ=j* “" ”’ ” ”’] !  -¨G@ :¨ A6˜ -©E #ZCÈA’^q@ A:© AG6¸#(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  AtjC€?C 8  ("Ak(AvO@  AtjC8  ( Aj6 #(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj#Z8  ("Ak(AvO@  AtjC8  ( Aj6 #�^A#�C^A -¨@ A:¨ A6˜  *¬^@ 8¬ §} üŒ! úŒ!   *,"”  *4"”’" ”“" ”C  *0”“" ”’   ”“" ”’‘"C½7†5^@  •8à  •8ä  •8è C8à C8ä C€¿8è ‡ *  *,”’8 *  *0”’8 *  *4”’8 C€>8l#(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  AtjC8  ( Aj6 AŽ C?^@ C4Ã8¤ C¿]@ C4C8¤ ‹} -”@A ó> * ¦ÂA°ü *¦ÂA°Õ: *" ” *" ”’‘¦ÂA€ó> *¦ÂAàò>ÂAÐÚAàÜ -HÂA°ò>ÂAÐÚAàÜ ÂA€ò> (LA «Â€ A6 C8p C8„ C8Œ C8  C8¤ C8¨ C8¬ C8° A6´ A6¸ C€¿C€? -(8¼ A:À :Ì C8� A:H A6˜ C8\ -(! (Ä"-=E@ A:=  :< A:  :A! C8 C8 C8 @ AH@  ("Ak(AvO@  AtjC8 Aj!  A6 A6 � � è } *! * ! *! (Ð! *"! C€?! C�@8Ð  *C�@”Cfff?”’8Ô  *C�@”Cfff?”’8Ü CHÂ’8Ø C8à C€?8ä C8è *! *!@ C�@]@  ”  ”’‘"CÍÌÌ=^@ C€? C¦›Ä:”CÍÌL=”“"”!  ”!  CÍÌL=”’C¹…¼’! Cgf&¿’! CÍÌL=’!  CÍÌL=”’"  CÍÌL=”’" Š@ *“"C_@ CÍÌL½’   “•C€? C^"CÍÌL=”’8Ð   “ ”’8Ô   “ ”’8Ü “ ”’8Ø *8à *8ä * 8è ! ! ! "!  õ} (œ" * C€ *"“ *"C”“C@”"”C’  *"C” C”“C@”"”  C”C€ ““C@”"”“’8 * ”C’ * ” * ”“’8 * ”C€¿’ * ” * ”“’8 *" ” *" ”’ *" ”’! *" ” *" ”’ *" ”’!   ”“" ”   ”“" ”’  ”“" ”’‘"C¬Å'7]   ”“" ”  ”“" ”’  ”“" ”’‘"C¬Å'7]r@C  •"  •"” •"  •"”’ •" •"”’!   ”  ”“”   ”  ”“”’   ”  ”“”’! C]} Œ! Œ  ù ä} (AF! A6 C8� C8¤ C8¨ A6Ä C8È C8` C8\ (¼"*08 *48 *88 *8 E@ -(! (Ä"-=E@ A:= A:< A:  :A! C8 C8 C8 @ AH@  ("Ak(AvO@  AtjC8 Aj!  A6 A6 � (Ä! ( !A ("Aq A A q A ! š -=E@ A:= A:< A:   j6 C8$ C ?C€? AF"CÀ?”  "8(#($"A6 A6 A6 A6 A6 A: A6 A: C8  ( 6 A:  CC”"�" C€¿’ C¿’ _8 #A (, -#($-A "A - AGj" A N6 *0!#A  -} #($* ’  8# AJ:# *\8 #((!A ("AF A AF A ²! ( A€o" ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  AtjC8  ( Aj6 ’ Ã} (¼" *<Œ *DŒù" * ’! 8$ 8 (œ CÛI@C -( * C[A ’CC€?Cž (œ! *$C33³¾”C?”"ü"C”! ú! * " ” *" ”’ *" C€?”"”’ *" C”"”“8  ”  ”“  ”’  ”’8  ”  ”’  ”“  ”’8  ”  ”“  ”“  ”“8 *" ” *" ”’ *" ”’ * " ”’‘"C_p‰0^@  •8 * •8 * •8 * •8  C8 C8 C8 C€?8 Š} (¼" (6L Cš™>8P (ÄA› #((!A (¼"(AF A (AF A ²! "( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  AtjC8  ( Aj6 * ’8 *CÍÌL=’8 A6 (œ *$CÛI@C -(’CC€?Cž AŽ C€>8l CÀ?^@#(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  AtjC8  ( Aj6 C?^@ C4Ã8¤ C¿]@ C4C8¤ �} -ˆ *€C@]A @ * * CÀ? (Ü�! @ H@ (Ø! (Ü" Ak(AvO@ Atj( �@ * *CÍÌÌ?’^A * *^ *" *“" ” * " *“" ”’" *Cš™™>’" ”` ‘"C·Ñ8]@  “" ”  “" ”’‘"C·Ñ8]@C€?!C€?! *  •"” *  •"”’Œ"CACÀ@ -^@ A•  *  ”’8 *  ”’8 C^@ *  ”’8 *  ”’8 *CÍÌL?”8 *CÍÌL?”8 (E@ * *” * *”’‘"8 CÍÌÌ=^@ *Œ • *Œ •ù8 Aj!  æ }~ 6� -”@AÀ«? A «ÂAðÕ: * ¦ÂA°ü *¦ÂAÐÕ: *¦ÂA°Õ: *" ” *" ”’‘¦ÂA�Õ: (A «ÂA°Ô:ÂAÐÚAàÜ -¨ÂA «? *¬¦ÂA€«? *°¦Â€ *" ”" *" ”’ *" ”"’‘! (}  ’‘ * 8„ (ÄA C`A^œ #(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  AtjC8  ( Aj6 (AF@#((!A (¼"(AF A (AF A ²! ( A€o" ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  AtjC€?8  ( Aj6 *! * ! *! *! *! (œ! (À" *8  Cš™?’8  8  CÍÌL?”8  CÍÌL?”CÀ?’8  CÍÌL?”8 (" *8  *8  *8  * 8  ”  ”’‘"C€@ C€@^C33³>”! (4" ) )" B­þÕäÔ…ý¨Ø~|7   •C€¿ CÍÌÌ=^"Œ ” Bˆ …Bˆ§"A B;ˆ§"kt  vrAv³C€3”C@”C€¿’C@”’8 (4" ) )" B­þÕäÔ…ý¨Ø~|7  Bˆ …Bˆ§"A B;ˆ§"kt  vrAv³C€3”C@”C€¿’CÀ@”8 (4" ) )" B­þÕäÔ…ý¨Ø~|7   •C  ” Bˆ …Bˆ§"A B;ˆ§"kt  vrAv³C€3”C@”C€¿’C@”’8$ (4" ) )" B­þÕäÔ…ý¨Ø~|7  Bˆ …Bˆ§"A B;ˆ§"kt  vrAv³C€3”C?]E6, C8( A:0 A6 C8€ A:ˆ A6Ä C8È C8¤ C8¨ C8\ C8` C8� ®} * ! *°"C`  CðA’]A   *°CðÁ’^A @ *´CÈA’8´ C8´ (Ô! -¨"E  *°^}  *° *´’"#Z]r C @’�¨"#NA # #kAél#A#kAjmj   #�_# #Z“C´C”#�#Z“•C @’�¨j# C @’�¨#AkjAèj "AH@A! ##AkA�jA™ !@@  AkH@   ‹ -$  Aj!  Ak  ‹ *€! (Ô *„C?”"CA^} CA Š (Ô*8° A6˜ 8€ A:ˆ C@ “8ü * !#(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  AtjC8  ( Aj6 -”@AÐñ> * ¦ÂA°ü *¦ÂA°Õ: *¦ÂA°Ô:ÂAÐÚAàÜ -¨Â€ ô}#( " *8  *8  * 8  *8  *8  *8  (" AFA } * *" ” *" ”’ *" ”’‘ 8  *$8  (E:  (AF:!  (AFA (¼"(AF A (AF A A 6$  (AF:(  *\8,  *`80  -h ( (AFA A }CC€? *dCÍÌÌ>•" C€?^ C]C 8h  (}C *T 84  (}C *P 88C€¿C€? *XC ¾u?•" C€?^ C€¿]!  (}C Œ  -( 8<  (D6@  (AF} * C 8D  *¤8H  *¨8L  (AF} (¼*$C 8P  *ÈC?^ (ÄA 6T  -(:X  * 8\  (¤6`  -¨:d Ä  }~ A E@A *PC^@A E C?^q@A  ”  ”’‘"C€?]@A ! (X!@ A H Ak(AvHA @ At" Aì¯?(AvO@  AtAð¯?j*CÀ¿’` Aj" Aì¯?(AvO@  AtAð¯?j*CÀ?’_A  Aj" Aì¯?(AvO@  AtAð¯?j*CÀ¿’`A  Aj" Aì¯?(AvO@  AtAð¯?j*CÀ?’_A @ " Aj! Ak(AvO@  Atj 6 Aj!  !@  H@ (X" Ak(Av M@ @ Atj(" (LF *PCš™™¾^A A¬¯?(AvO@ AtA°¯?j(! AÌæ>(AvO@ AtAÐæ>j(" AH Cffæ>Cš™? AF!C(knN!C€¿!A! @ AkH@ (\Ž Aj (`ŽC! (`* (\*"“" ” (`* (\*"“" ”’"CwÌ+2^@CC€?  “ ”  “ ”’ •" C€?^ C]! (\" *  ”’ “" ” *  ”’ “" ”’" ]@ ² ’! ! Aj!  C]   ”^r ލ" AkN@ Ak! (\Ž Aj (`Ž  (\*" (`* “  ²“”’“! C€>”C @_A Ak² “C€>”C @_ ! @ CÍÌŒ¿] C33³>^r  E  Cš™¿C€¾ A ] C33³>^r  (`" * (\" *“" ” * *“" ”’ * *“" ”’‘"C½7†5]  •" ”  •" ”’‘"C·Ñ8] CC€?  ”  ”’  ”•"‹" C€?^ C]÷! #»^ 6 6 Aì®?(AvO@ AtAð®?j(6 6 8 C€?C€¿ C`8  ” *"”   •” ”’  ” ”’"C€@ C€@^8 Œ *” Œ *”ù“!@ CÚÉ?^@ CÛIÀ’!  @ CÚÉ¿_@ CÛI@’!  AF@ A6  ‹CÛI?_@ A6  A6 ( AF}CÚÉ?CÚÉ¿ C`C 8 C8$ (T" ) )"B­þÕäÔ…ý¨Ø~|7 Bˆ …Bˆ§"A B;ˆ§"kt  vrAv³C€3”C@”C€¿’Cš™™>”8( C8, ™ A Aj!  A Í} *ލ"AH@A!  (Ak"J@ ! CC€? * ²“" C€?^ C]! (  (\Ž ( Aj (`Ž (\*" (`* “ ”’80 (\*" (`* “ ”’84 (\*" (`* “ ”’88 (`* (\*“ *"”" ” (`* (\*“ ”" ”’ (`* (\*“ ”" ”’‘"C½7†5^@  •8<  •8@  •8D ° } -E@ A: * " *h^@ 8h }#($! *‹"CC]A  C4C•"�" C€¿’ C¿’ _¨"²C4C”“‹C4B_E@ ލ! A  AJA´l ! -! *"‹"CC]A  C4C•"�" C€¿’ C¿’ _¨"²C4C”“‹C4B_E@ ލ! A  AJA´l AA C^ GA !AA *"C^ ‹"C%D` AA C^ C–C` A ! A´m"AÌó>(AvO@ AtAÐó>j*}CaD AF AFr C  E AF AFr C ’ * "C€?_}C C€¿’C@”C·Ñ8’ŽCHC” ’! ("@  (" Ak(AvO@  Atj*"CÍÌL>]}CC@  C@^CÍÌL¾’CÍÌÌ=•C·Ñ8’ŽC–B”CHC’ ’! ("@  (" Ak(AvO@  Atj*"CÍÌL>]}CC@  C@^CÍÌL¾’CÍÌÌ=•C·Ñ8’ŽC–B”CHC’ ’!  6  6  6  (6  (6  -: A6C C_  A l A´mj Alj (A‡lj (A£ljA¯A -j!A!@@ (H L  (@"Ak(AvO@   Atj(F Aj!  A!  (HH@  (D"Ak(AvO@  Atj(! A  AN"AÌ®?(AvO@ AtAЮ?j*!  (HH@  (D"Ak(AvO@  Atj(Aj!  Ak(AvO@  Atj 6 (H"AàH@  (@"Ak(AvO@  Atj 6 (H" (D"Ak(AvO@  AtjA6 (HAj6H  ”"�" C€¿’ C¿’ _ "C^@ (,Aj6, *0 ’80 *4 ’84 (tAj6t (xAj6x 8�#($ 8 #($A:#(("( A€o! ("Ak(AvO@  AtjA6 ("Ak(AvO@  Atj 8 ("Ak(AvO@  AtjC8  ( Aj6 ð} -E@ A: E@ *$C–C”CC’ *(”! (,Aj6, *0 �" C€¿’ C¿’ _"’80 *8 ’88 (tAj6t (xAj6x 8�#($"A6 A6 A6 A6 A6 A: A6 A: C8  ( 6  8 #(("( A€o!  ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 8  ("Ak(AvO@  AtjC€?8  ( Aj6 #A (, -#($-A "A - AGj" A N6 *0!#A  -} #($* ’  8# AJ:# *\8 ˆ} A: A: A6, C80 C84 C88 A:< A:= @ (ˆAj6ˆ A 6Œ (pAj6p („Aj6„ AA 6Œ #($A:#A (, -#($-A "A - AGj" A N6 *0!#A  -} #($* ’  8# AJ:# *\8 Ó}#($"A *‹C4C•ލ" AJA´l6  (AJAA - *C^GA 6 AA *"C^ ‹"C%D` AA C^ C–C` A 6  (6  (6  -: A6  (AJA ( A (AG ": @ (A´m"AÌó>(AvO@ AtAÐó>j*}CaD ("AF AFr C  E AF AFr C ’ * "C€?_}C C€¿’C@”C·Ñ8’ŽCHC” ’! ("@  ("Ak(AvO@   Atj*"CÍÌL>]}CC@  C@^CÍÌL¾’CÍÌÌ=•C·Ñ8’ŽC–B”CHC’ ’!  ("}  ("Ak(AvO@   Atj*"CÍÌL>]}CC@  C@^CÍÌL¾’CÍÌÌ=•C·Ñ8’ŽC–B”CHC’ ’  8 #A (, -#($-A "A - AGj" A N6 *0!#A  -} #($* ’  8# AJ:# *\8 ±} üŒ"  ” C”’ úŒ" ”’" ”“" ”C  ”“" ”’   ”“" ”’‘"C½7†5]@ C?”"ü! ú! C”"8 C€?”8 8 8    •Œ"”  •Œ"”“!   •Œ"”  ”“!  ”  ”“! ’ ’" C^@ C€?’‘C@”"C€>”8  “ •8  “ •8  “ •8  ]  ]q@  “ C€?’ “ “‘C@”"•8 C€>”8  ’ •8  ’ •8  ^@  “ C€?’ “ “‘C@”"•8  ’ •8 C€>”8  ’ •8  “ C€?’ “ “‘C@”"•8  ’ •8  ’ •8 C€>”8 *" ” *" ”’ *" ”’ * " ”’‘"C_p‰0^@  •8 * •8 * •8 * •8  C8 C8 C8 C€?8 ˜ E@ ("@ *¤  *˜ *œCÍÌÌ=’ * –  Ak(A×FA E@  (¸Aj6¸ -˜E@ -ÀE@ A:À  Aðö‹"6Ä  ž  -˜:È AðöA�"@ A:A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A: Aðö Œ (D! (@!@ ( J@ ( Atj(!A!A!@ E  ( Hq@  ( Atj(F! Aj!   E  Aj!  A "AN@ (D  œ (D"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  Aðö‹"6Ì  ž A:˜ ¥ ((( 6 (6, ( (A±óÝñylAj6 ¡ (! ((!é " Ô ( ( ( ( (ƒ " (!#v"E@A A̘"A6 A6 A6 A6 A6 A6 A6 A: $v A6 A6 A6 A: ÕAA2˜"A6 AA ì "6 A ç 6  ž A: Û} (! (" ( "*8  *48  *88  (@6  *,8 C€?C -!8  *D8  *H8  *L8  ($6$  ($} *C 8(  *P8,  *\C€±D•C—C€?–80 CC€? AF AFr AFr AFr AFr -(A 84  AF AFr AFr AFr}C€? *\"CŒB•“C—Cffæ>”C€? C¯Ä’‹C C•“C—CÍÌL?”— AF}Cfff?Cš™>C AF AFr 88  ( ! ("E@ A:# A:$AA -"  A:" AF" AFr@ A:# A:$AA   AF AFr@A -% A -# A -$  *\C›D`A (`AN @A A (`AN  A (`"AF A AF A AF A  A AF A AF AFr A 6< C€?C (4"-8@  *8D  *8H  *8L C€?C - 8P  (,Aÿÿÿq³8T ß (" 6  8  8  8  8 ((!#v"E@A A̘"A6 A6 A6 A6 A6 A6 A6 A: $v A6 A6 A6 A: Ak(A�G@  ( Aj"6 AèJ@ (! A¦ 6 *! A¦ 8 *! A¦ 8 * ! A¦ 8 *! A¦ 8  ( Ak6  ( ( ( („AG@ (Aj6 x Ak(! AH  j"A AJ    H ! AH  j"A AJ    H k"A AJ"A¦™" j ü  A A$ð £I#ž"@ ( A$ïA$�A#ðA#²#"A€€€#²At" A€€€IKA #/@A$ð#íAFA#íAG#"A€€€Kq @A$/A$=A!@#>@#>hAtA€j("(Aj! (! ( "@  6AA gk" AO"AtA€j 6 E@#>A~ wq$> @ 6 A6#" j$"  @A$�#*@#*#<6 #K! A$KA$*A$A~ wq$> @  6 A6#" j$" Ajj!    k"   Ik! E #*Gq ( A @#[E@A!@  I@ ( Ajj! (AF       k"Ak6 A6 A O@AA gk" AO" AtA€j" (! A6  6 A6 #¢6 @  6 6#>A tr$>#" #""  Kk$" A  ! !  @@   k"Ak6 A6 A I AA gk" AO"AtA€j"(! A6  6 A6 #¢6 @  6  6#>A tr$>#" #"" Ik$" $Š !@ I@ (! A6 Ajj!  #[@#Š@#Š 6 $³ #Š@#Š 6 $K #¡ j$¡ # 6 $  $\  #[#\rE@A$[A$Š#³$\ #\E#[AGq@A$/#œAj$œ#"$² #Ÿ"@ ( #�!A$�@ @ (! ($Aq@@ "A6 A#/AF A#[E#/AFq#\AGq A 6$#" ( Ajkj$"#*E@ A6 $K $* ($<#<$‘  #*6#K#*F@ $K#K!@ ("#*G@ !  6 #[E#/AFq#\#*Fq@ A6$ $Š  #6 A6 A6 $ !  A$ŸA$×# @# !A$ @ @ (! #6 A6 A6 $ !  #"#¡#"#¡#"Ik$"#/E@#"$² @ !@ @ (! ( @ #³6 $³ #6 A6 A6 $ !  A! #³!@ @ (! ( @ !  @ 6 $³ #6 A6 A6 $ !  A$�#"$²#œAj$œ#²E#"AGq@#"$² #e@#e(!@ @ (! #6 A6 A6 $ !  #eA6#e$8#eAj$#$f A$ï#� �A$î#�@ #e@#e(A##eAjG @ #K!@ @ A#[E#/AFq #\Fq ! Aj! #*F#< ( !@ I@ (! ("AG AGA  (AGA  (AGA @ (AFA (AF A  (AFA  (AqA @ AjA¼ Ajj!  (!  #œ A $¡  $í  #óDb@#ó ¸ $ó   $£  #9"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 #C"( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 š  Ak(AvAljAj–" j!@  Ak(Av"NE@  MA Atj/ "A€H  : Aj! Aj A€H  AuAÀr:  A?qA€r: Aj! Aj A€¸H A€°Nq Aj Ak(AvHA   AÿqA tA€€j Aj" Ak(AvOA Atj/ Aÿqj"AvAðr:  A vA?qA€r:  AvA?qA€r:  A?qA€r: Aj! Aj  A uAàr:  AuA?qA€r:  A?qA€r: Aj! Aj !  A:  k k$¤   A° "#¤6  • »@#¡!@ @ AjO (IA @A  (!  A @ Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $  # Ak"(jF@ $#A (Ajü  – œAA¦˜!AAÓ˜" 6 ž 6 A6 A6 (A6 $AA¦˜!AA¤˜" 6 ž 6 A6 A6 $iA$zA$ÜAA͘"½ $yA A #9( ÷A!@ j/@ Aj!  A˜"  ü A!@#9( J@#9( Atj( Ä@AA˜"A6 A6 A� 6 A6 A6 A6 6 $zA Aj!  AA˜"A6 A6 A� 6 A6 A6 A6 A€ ÂAÐÂ"6 ž $zA °#z"E@A A$z#i( AJ@#i"( "AL@ ( Ak"Atj(!  6 #  œ   #"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 #( Ak Š AJ #( HA  #"( O@ ( Atj(A @ ð # Aœ#i"( "Aj!  (AvK@ AA™ ( Atj 6 6 A A$zA „#z" (AGA @A #™@#™"Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ (A° $™#™ »A ALA #( N  #"( O@ A ( Atj(" (AGA  ("#C"( O@ ( Atj("E@ (!AA˜"A6 A6 A� 6 A6 A6 A6AA˜"A6  6 6 ž $ÜAA˜"A6 A6 A� 6 A6 A6 A6 6 ž#i( AJ@#i"( "AL@ ( Ak"Atj(!  6 #  œ   #"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 #( Ak ­#Ü"E@A #i( AJ@#i"( "AL@ ( Ak"Atj(!  6 #  œ   #"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 #( Ak §AA ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( "E A ALA #( N  #"( O@ A ( Atj(" (AGA A ("E AA Ak("AÝF@ (5×�A# -E # ( !# (!AAÕ˜"A6 @  AðïØ"6  ž 6 žAAÕ˜"A6 @  A ðØ"6  ž 6 žAAÕ˜"A6 @  AÀðØ"6  ž 6 žAAÕ˜"A6 @  AððØ"6  ž 6 žAAÕ˜"A6 @  A ñØ"6  ž 6 žAAÖ˜"A6 @  AÐñÙ"6  ž 6 žAAÕ˜"A6 @  A€òØ"6  ž 6 žAAÕ˜"A6 @  A°òØ"6  ž 6 žAAÕ˜"A6 @  AàòØ"6  ž 6$ žAAÕ˜"A6 @  A€óØ"6  ž 6( žAAÕ˜"A6 @  A óØ"6  ž 6, žAAÕ˜"A6 @  AÐóØ"6  ž 60 žAAÕ˜"A6 @  A€ôØ"6  ž 64 žAAÕ˜"A6 @  A°ôØ"6  ž 68 žAAÕ˜"A6 @  AÐôØ"6  ž 6< žAAÕ˜"A6 @  A€õØ"6  ž 6@ žAAÕ˜"A6 @  AÀèØ"6  ž 6D žAAÕ˜"A6 @  A°õØ"6  ž 6H žAAÕ˜"A6 @  AÐõØ"6  ž 6L žAAÕ˜"A6 @  AðåØ"6  ž 6P žAAÕ˜"A6 @  A�æØ"6  ž 6T žAAÕ˜"A6 @  A°æØ"6  ž 6X žAAט"A6 A°Ò6 @  AðõÚ"6  ž 6\ žAAט"A6 A°Ò6 @  A öÚ"6  ž 6` žAAט"A6 A°Ò6 @  AÀöÚ"6  ž 6d žAAט"A6 A°Ò6 @  AðöÚ"6  ž 6h žAAט"A6 A°Ò6 @  A ÷Ú"6  ž 6l žAAט"A6 A°Ò6 @  AÐ÷Ú"6  ž 6p žAAט"A6 A°Ò6 @  A€øÚ"6  ž 6t žAAט"A6 A°Ò6 @  A øÚ"6  ž 6x žAAט"A6 A°Ò6 @  AÀøÚ"6  ž 6| žAAÕ˜"A6 @  AðøØ"6  ž 6€ ž "AAÕ˜"A6 @ A�ùØ"6 ž 6„  žA!@ A L@ (ˆ!A(Aܘ"A6 A6 A6 A6 A6 A6 Dð¿9 Dð¿9 AЫ A «ÂA°«Â!AAÕ˜"A6 @   Ø"6  ž  6AЫ A «ÂAð«Â!AAÕ˜"A6 @   Ø"6  ž  6AЫ A «ÂA�¬Â!AAט"A6 A°Ò6 @   Ú"6  ž  6AЫ A «ÂA°¬Â!AAט"A6 A°Ò6 @   Ú"6  ž  6 AЫ A «ÂAЬÂ!AAט"A6 A°Ò6 @   Ú"6  ž  6AЫ A «ÂAð¬Â!AAט"A6 A°Ò6 @   Ú"6  ž  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  A: ü A  AÛF@ (5×�# (!AAÕ˜"A6 @  A€ïØ"6  ž 6 ž# (!AAÕ˜"A6 @  A ïØ"6  ž 6 ž# (!AAÕ˜"A6 @  AÀïØ"6  ž 6 žA  AÚF@ (5"AAȘ"A6 6 A ç A �A  AÔF@ (5×�# ( !AAÕ˜"A6 @  AðåØ"6  ž 6 ž# ( !AAÕ˜"A6 @  A�æØ"6  ž 6 ž# ( !AAÕ˜"A6 @  A°æØ"6  ž 6 ž +Dd@ ù A  AžF@ -(E@ A:(#ÈAj$È ($" 6 ž A:œ A€ä6  A€äž A6A   Ž_|~A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( "E@A  Ak("AÝF@ -@ ü # (("| (.»D ªAF"# -xA @ A# -x @# A:x # A:xA! A!# (<("| (.»D ª"AJ A?q! AuA?q! A uA?qA ·!# (X("  (.»bA @ ( ¶- ·!# (\("  (.»bA @ ( ¶- ·!# (`("  (.»bA @ ( ¶- # (d(" (.»DbA @ (C- # (h(" (6A @ (AJ ‚ @‚ A  A AÛF AÚFr AÔFr  AžF@ ($"A (´ A (´ A ( ´ A (´ A (´ A (´ A (´ A ( ´ "-œ@ )`B|7` ²" (©A� "Ak(AvA -½ E@ A:½ (Ak(AvE@ A� ù"( AG  ( E@ ((" E@ A� (Ak(AvE  ("Ak(Av A�Ò ( ( "6  ž Ak(AvE@ (!  A (©"AÐÖÄ A AðÖÄ A A 6¨   (," (6AGA A ":¬  (<Ä (¨ (¸GA A ( A -@ A (À  -¼G  -¬:¼ (°"@ -¬ (Ak(AvA  ( (ûA� ! ( "@ É (´" 6 ž AA  (À"@ § A6À A6Ä  6<  ž  (¨6¸ ( " (AˆAÚ ˜"� ! ("( AJ@  6  ž  ("6  ž  6Ä  ž  -¬:ÈA A€ ˜""A6 A: A� 6  (¨6  -¬:@ Ak(AvE@AA� ˜"A6 A6 A� 6 AAAA¤6 A� 6 A� 6 ( !A °AЯÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ( "( E@ (("E@ ( �AH@ ("( "Aj! (AvK@  AA™ ( Atj" 6  At Ÿ  6  A«  (! (¤" E@ @AAƒ ˜" A6 6AA�˜!   (é"- ((A " (h"AN AF DAFA HA E äA "| +D 9Ð   -A :ØAàA–˜"A6 A6 A6 A6 A6 A6 A6 D9 A� 6( A6, D90 D98 A6@ A6DAA† ˜"D9 A6 A: A: A:  6H A6L A6P D9X D9` A6h A6l D9p D9x B7€ A€€À6ˆ A€€6Œ A6� A:” A6˜ A6œ A6 AA¦˜!AA—˜" 6  ž  6 A6 A6  6¤AA¦˜!AA‡ ˜" 6  ž  6 A6 A6  6¨ A6¬ A:° A� 6´ A6¸ A6¼ A6À A6Ä A:È D9Ð A6Ø A6Ü  6  6  6  6  6A A”˜"A6 A6 A� 6 A6 A: A6 A: 6 A� 6  6@  6À  ž A ! (À"@ | (H"| (.»D D "!DdE@ !Dc|D +Ð !! A (AFA (AF ID@�@£!" (E@  "9Ð  (Aj6 A6Ø A6Ü !DdE" -ÈA @ A:È@ (AFA (AF E@@ (E@ (˜"@  Eq !fq  ( (œk" !D ! ¡D•Ö&è .>¥ "Dd@ (Œ" J" · D6@£D0A¢¤ª" H! ( ! (œ" j! @  H@#| ( j-sAÿqAtj( Avs! Aj!   6   (�Aj6�  (œ j6œ (" (œL@ AM@ (AM@ (AM@ (AM@ ("- -Atr -Atr -Atr" ( AsF@ ((„( ! A!A#q" ( "E ALr  (! @ H@ Atj( F@  Aj!  A AH@#q"( "Aj! (AvK@  AA™ ( Atj" 6  At Ÿ  6  ± A6˜ Aç ¬� !  (ØAr6ØA!   (ØAr6Ø (!  ( ( (é"- ((A "6D  ž A6@ E   (h"AN AF (DAFA HA E ä"6H  ž ( ("AF ("A€çAÇ AAÿÿÿÿÈ ("Ak(Av  A�ÒÂAÇA   (Ak(AvAjAÿÿÿÿÈ  "Ak(AvE@ (! AЂ ("Ak(Av A�Ò  "ÂAÀšÂ! (@" 6 ž (@" 6 ž -”E@ A:” (@ ¦"  ( (ˆJA A!A (AŒï(H @AŒï( J@ (O@ A ( j- A�ïj-G  Aj!  A A @  6˜  ž A 6œ A6  D9p A6   (@! (!A ( ( (é"-E  (  („A ë"( (AFA  (A " E (@ ¦!  (@ ¦"~ 4B 7€ Aç (œAJ~B ~ 4B �Aé )€� 9p E AGq („(" (AFA A A!A!@ ("( J@  ( O@ ( Atj("@AÀ Ak("AÖ F A AÉ F A AÇ F A€€ A² F A A¬ F A A£ F A A— F A A� F  r! Aj!  ( Asq  6L  ž (!A4Aú ˜"ª  6 (H"E@ § "6H  ž  â" "6  ž  (í6 à"-E@ ( ("�AH@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 A Aå ˜"A6 A6  (@6  6  ( "6´  ž # ( œ"6¼  ž  6¸  ž# ( ›  ("6  žA!@ (l"( J@ ( O@ ( Atj("@@ Ak("A�F@   ¤  Aý F Aj!   6€  ž  6P  ž (Ÿ"@ (!AA ªAÀ… Â! Aè (( A!A E  "Ak(A~q"AOA¨ˆ�¡! A÷”¯¯x!AÏŒ¢Ž! jAk!@  M@ (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò (( A!A E  "Ak(A~q"AOA¨ˆ�¡! A÷”¯¯x!AÏŒ¢Ž! jAk!@  M@ (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@ K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "~~ )BRA (4 )R @ )  )!# ($!A!@ ( J@ ( Atj(" G )BRA  ) #TA @ )!# Aj!  # B �9xA8A… ˜"™ (!  ("Ak(Av A�Ò   6  6  ž  6Ä  žA!A! ($!AAƒ˜" «@ ( J@@ ( Atj("(AG (Aà�Æ"AL (A È!A )�!  ¥Š|  ¥Š"E@ +D  !A!   "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA "Š"@ 9 ( " (F@ ( AlAmH ( (AtAr !AA¦˜ Aj"At"AüÿÿÿK@ A¦˜! AA¦˜ AtAm"Al"AüÿÿÿK@ A¦˜! (" (Alj! !@  G@ (AqE@  ("6  +9   "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! A!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA qAtj"(6 6 Aj! Aj!  6 ž 6 6 ž 6 (6 (! ("Aj6  Alj" 6 ž  9 (Aj6  (  (qAtj"(6 6 Aj!  @A¼Õ(Av J@ AtAÀÕj(!A! @ ( J@  ( Atj("(F@ AF||D!A )�" )BT  ("(! )"# )|§!A Aߘ" ("6 ž #§"AH j"A AJ  H " (j6 AH  j"A AJ    H "  J k6 (AM@ (AM@ (E@ (AM@ ("- -Atr -Atr -Atr"AF@A (Ak¬�  AF@Aæ (Ak¬�   AG  (AM@ (AM@ (AM@ (AM@  ("- -Atr -Atr -Atr"E AKrA ( A lAjH AAý˜"A6 A6 A6 A6 Aš!A!@  J@ A lAj"Aj" (O@ Aj" (O@  (O@ Aj" (O@ ("j-At  j-r  j-Atr  j-Atr! ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  ã!A!@ ( J@| ( Atj(A lAj""Aj" (O@ Aj" (O@  (O@ Aj" (O@ ("j-At  j-r  j-Atr  j-Atr! Aj"Aj" (O@ Aj" (O@  (O@ Aj" (O@  ("j- j-Atr  j-Atr  j-Atr! Aj"Aj" (O@ Aj" (O@  (O@ Aj" (O@ ("j-At  j-r  j-Atr  j-Atr! E@ A ­�   AåAä A0O 4 ­B0|ZA  A,j"Aj" (O@ Aj" (O@  (O@ Aj" (O@  ("j- j-Atr  j-Atr  j-AtrAFA  ­�  ! Aj!    Dd  ~ )BRA (4 )R @ )  )!# ($!A!@ ( J@ ( Atj(" G )BRA  ) #TA @ )!# Aj!  # � ! AF (" ¥ŠA @ (" ¥Š"E@  + ! (¤!AA•˜"A6 A6 D9 ( ! ("Ak(Av@ A�Ò Â! AЮ AF A°Ç AF A°« AF A€¿ AF A�Æ AF Aðå AF A๠AF A�é A F AàÞ A F Aà« A F A�™ 6  6  9 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  +X  9X Aj!  Aj!  A6 +p !  (AF@ (¤( (ÀL@ A6  (¤( (ÀAtj(!  Eq +  !dA @ (Ä" E (P"Er  ( (" É (Ý!  (hAj6h  -A E@  (lAj6l  (! (¨"( "Aj! (AvK@  AA™ ( Atj" 6  At Ÿ  6 (" E  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ (A " -0A (¬"E@AA§ ˜"A6 A: AAA‰ A¤6AA¨ ˜"�  6  6  6¬  ž  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@ ( F  A~q!  A E@ ( à ("( "Aj! (AvK@  AA™ ( Atj" 6  At Ÿ  6 (  (Aj6  (ØAr6Ø (Ü" + +dA @  6Ü  ž  (ÀAj6À  +` + 9` + ! A!   Eq +x  !dA  (ØAr6Ø  ( -È (@ ( ( ( (Ĩ   ( ( ( ( (Ĩ ID@�@£" "¡D@�@¢!"  +8 " 98 " + d@  "9 AA˜"A6 A6 A6 A6 Aš! (Ø"Aq@ ( "Aj" (AvK@  AA™ ( Atj"Aà˜6  At Aà˜Ÿ  6 Aq@ ( "Aj" (AvK@  AA™ ( Atj"A€™6  At A€™Ÿ  6 Aq@ (Ü" (!A ™ (L"  ( A�ÒÂAÇA @  ( Ak(AvAjAÿÿÿÿÈ   ÂAЙ ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aq@ ( "Aj" (AvK@  AA™ ( Atj"Að™6  At A𙟠 6  ( ( A°Ä¦"6(  ž   +СD@�@¢90 (AFA (AF @ (,"@  « @  (LA E (À"||Dð? (AFA (AF  (E@ (˜" (AJA | (œ·D{®Gáz”?¢ (·£D  (AFA +XDd | +` +X£Dð?¤D)\�Âõ(ì?¢D{®Gáz”? DÍÌÌÌÌÌì? Dð? " +àa  9à (L"@ ( ¶»¶- (À@ ( "@   ¯  ¬A  ("E@  ­  ¬   A    ®!  ¬  A (" E   )`B|7` ²"  (©A� "Ak(AvE@ (!  (<Ä ( A -@ A E@@ ( "@ Ù A6  6<  ž A� 6D A� 6H A� 6L A� 6P A:T A:U A:A B7ˆ („"( ! AAA™ AJ@ (A Atü A6 ("6 ž ("6 ž Ak(Av  (ÂA ! Ak(AvE@ (A°×�AH@ ("( "Aj!  (AvK@  AA™ ( Atj"A°×6  At A°×Ÿ  6  E":@  (8Aj68A!@ (X"( J@  ( O@   ( Atj(Ô Aj!   6  ž  ®  AG ¡A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( " Ak("AžF AÔFrA   Ak("AžF AÔFrA E@ A "E@ @ Ak("AÔF@ 9 9 ù  AžF@ ($"A:h 9 9( Dð?  ¡Da Ddq90  ÃA ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( " Ak("AžF AÔFr AÚFr AÛFr AÝFrA @  Ak("AžF AÔFr AÚFr AÛFr AÝFrA E@ ºA ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( "E@A A!@ j/@ Aj!  A˜"  ü A Ak("AÝF AÛFr AÚFr AÔFr  AžF@A Að±Ä A A ²Ä A AвÄ A A€³Ä A A°³Ä A Aà³Ä A A�´Ä A AÀ´Ä A  R@ ALA #( N #"( O@ ( Atj(" (AGA $ (  R@ ALA #( N #"( O@ ( Atj(" (AGA $ (  R@ ALA #( N #"( O@ ( Atj(" (AGA $ (  „A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( @A!@ j/@ Aj!  A˜  ü úA ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( "@@ Ak("AÝF AÛFr AÚFr AÔFr@   AžF@@ E@AAê ˜"A6AA5˜"A6  6  6 @  Aä 6  AF@AAê ˜"A6AA5˜"A6  6  6 @  Aä 6  AF@AAê ˜"A6AA5˜"A6  6  6 @  Aä 6  AF@AAê ˜"A6AA5˜"A6  6  6 @  Aä 6  AF@AAê ˜"A6AA5˜"A6  6  6 @  Aä 6  AF@AAê ˜"A6AA5˜"A6  6  6 @  Aä 6  AF@AAê ˜"A6AA5˜"A6  6  6 @  Aä 6  AF@AAê ˜"A6AA5˜"A6  6  6 @  Aä 6    ž    \A ALA #( N  #"( O@ A ( Atj(" (AGA  $ (   �|A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( " Ak(AFA   Ak(AFA E@ A "E@A ("AF@AAâ˜"A6 D9 *»! A6 9 AF@AAã˜"A6 A6 ("A˜" Aj ü A6 6 AF@AAä˜"A6 A: (AG! A6 : AF@AAå˜"A6 A6 ( ! A6 6A A!Aœ(Av!@ H@ Aœ(AvOA AtA j/  Atj/G@A  Aj!   Atj/E E@ Ak( A ¿ A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( " Ak("AžF AÔFr AÚFr AÛFr AÝFrA   Ak("AžF AÔFr AÚFr AÛFr AÝFrA E@ A "E@A A8Aט"D9 C8 C8 C8 C8 C8 C8 A6 D9( A60 ·9 ¶8 ¶8 C8 C8 C8 C8 AÀ E Að AF A  AF AÐ AF A€ AF A° AF AÐ A F Að 6 9(A!Aœ(Av!@  H@ Aœ(AvOA AtA j/  Atj/G@A  Aj!   Atj/E @@ Ak("AÝF AÛFr AÚFr AÔFr AžF@ ($A * * +ª³  A!Aü(Av!@  H@ Aü(AvOA AtA€j/  Atj/G@A  Aj!   Atj/E @@ Ak("AÝF AÛFr AÚFr AÔFr AžF@ ($A * * +ª³  A!AÌ(Av!@  H@ AÌ(AvOA AtAÐj/  Atj/G@A  Aj!   Atj/E @@ Ak("AÝF AÛFr AÚFr AÔFr AžF@ ($A * * +ª³  A!Aì (Av!@  H@ Aì (AvOA AtAð j/  Atj/G@A  Aj!   Atj/E @@ Ak("AÝF AÛFr AÚFr AÔFr AžF@ ($A * * +ª³  (0Aj      ADË  A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( " Ak("AžF AÔFr AÚFr AÛFr AÝFrA   Ak("AžF AÔFr AÚFr AÛFr AÝFrA E@ A E@A A8Aؘ"D9 C8 C8 C8 C8 C8 C8 A6 A:$ D9( A60 ·9 ¶8 ¶8 C8 ¶8 ¶8 C8 6 AG:$ 9( (0Aj £|A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( " Ak("AžF AÔFr AÚFr AÛFr AÝFrA   Ak("AžF AÔFr AÚFr AÛFr AÝFrA E@ A "E@A  Ü!A!A!Aü(Av!@ H@ Aü(AvOA AtA€j/  Atj/G@A  Aj!   Atj/E @A Ak("AÝF AÚFr AÔFr AžFr  AÛF@A# -E # ((" (6A @ ((" (.»DbA @ (C- ((" (.»DbA @ (C- ( (" (.»DbA @ (C- A  (4"Ak(Av} Ak(AvE@ *C »" ¢ (4"Ak(AvAK} Ak(AvAM@ *C »š" ¢ Ÿ"D333333Ã?c|D!D  D333333ÿ D333333ë?£Dð?¤ £"¢!  ¢ ! D@�@¢"›" Dð¿  Dà¿  eD@�@£! (("  (.»bA @ ( ¶- D@�@¢"›" Dð¿  Dà¿  eD@�@£! (("  (.»bA @ ( ¶- ( "Aq"Ar AvAq"Ar AvAq"Ar AvAq"Ar A vAq"A r AvAq"AÀr A vAq"A€r A vAq"A€r AvAq"A€r AvAq"·! ( ("  (.»bA @ ( ¶- # (@(" (.»Dð?bA @ (C€?- (4"Ak(Av} Ak(AvE@ *C » (4"Ak(Av} Ak(AvE@ *C »¢ (4"Ak(AvAK} Ak(AvAM@ *C » (4"Ak(AvAK} Ak(AvAM@ *C »¢ ŸDà?d@ (4"Ak(Av} Ak(AvE@ *C »"™ (4"Ak(AvAK} Ak(AvAM@ *C »š"™dA€A€ DdAÀA€ Dd !  r ( (rAsq!  6  6 @@# (("| (.»D ª!# ((" (6A @ AÀq@# (D("| (.»D ªAkA o"AH@ A j! # (D ·ú # ((("@ (.»Dð? ! ( ¶- A€q@# (D("| (.»D ªAjA o"AH@ A j! # (D ·ú # ((("@ (.»Dð? ! ( ¶- A€q@# (L("@ (K A€q@# (P("@ (K Aq@# (H("@ (K A2q@†  E@ A€q@# ($"("| (.»D D@ D@ö! ("  (.»bA @ ( ¶- # ((("@ (.»Dð? ! ( ¶- A€q@# ($"("| (.»D Dð? D@ö! ("  (.»bA @ ( ¶- # ((("@ (.»Dð? ! ( ¶- Aq@# (("@ (.»Dð? ! ( ¶- # (,("@ (.»Dð? ! ( ¶-  AF@ AÀq@A„ A€q@A„ A€q@A… A€q@A… Aq@ƒ@‚# (hû # (8("@ (.»Dð? ! ( ¶- # (,("@ (.»Dð? ! ( ¶- Aq@ƒ@# (d("| (.»D ª"AJ@# (d Ak·ú # (0("@ (.»Dð? ! ( ¶-  AF@ Aq@# ( ("@ (.»Dð? ! ( ¶- # (,("@ (.»Dð? ! ( ¶- A q@†  AL AJq@ Aq@# ( ("@ (.»Dð? ! ( ¶- A q@† A  AG!A!A¬(Av!@ H@ A¬(AvOA AtA°j/  Atj/G@A  Aj!   Atj/E E@@A!AÜ(Av!@ H@ AÜ(AvOA AtAàj/  Atj/G@  Aj!   Atj/  � |A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( " Ak("AžF AÔFr AÚFr AÛFr AÝFrA   Ak("AžF AÔFr AÚFr AÛFr AÝFrA E@ A "E@A AAÙ˜"D9 A: A: A: A: A6  ·9 Aq: AqAG: AqAG: AqAG: Aà A€ A  6 A Ak("AÝF AÛFr AÔFr  AÚF@A# - ( A  ÄA  +ª!# (@(" (.»DbA @ (C- A‰F@A„ AˆF@A„ A‡F@A… A†F@A… AÏF A�Fr@ ( A€ Ä@ƒ@‚# (hû # (8("@ (.»Dð? ! ( ¶- # (,("@ (.»Dð? ! ( ¶-  AƒF@ƒ@# (d("| (.»D ª"AJ@# (d Ak·ú # (0("@ (.»Dð? ! ( ¶- A A@j AÚL AÁNq  Ak A9L A0Nq  A¥k AÉL AÀNq A A F A "AHA ( A€ Ä E ƒ@# (d("| (.»D ª" AF# (\# (` # (X ·ú ‚ AH@# (d Aj·ú # ((("@ (.»Dð? ! ( ¶- A  AžF@ ( A€ ÄAAA ( Aà Ä ! - ! - ! - ! -! +ª! ($( " (¬"  -°A A (€" 6 C8 C8 A6 A6 A: A: A: A: A: 6 : : : : $’  ± A  AG øA ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( " Ak("AžF AÔFr AÚFr AÛFr AÝFrA   Ak("AžF AÔFr AÚFr AÛFr AÝFrA E@ A E@A AAÛ˜"A6 A˜"  ü 6A § |}A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( " Ak(AFA   Ak(AFA E@ A E AÀIr@ (!AAà˜"A6 A6 A6 A6 A6 A6 A6 6 @ AF@AAÙ˜"D9 A: A: A: A: A6 ($! ((AG! (,AG!  ( ¸9  Aq:  AqAG:  AqAG:  AqAG: Aà A€ A  6 6 ž AF@AAÛ˜"A6 (<"A˜" A@k ü  6 6 ž AF@AAܘ"A:  (0AG: 6 ž AF@AAݘ"D9  *4»9 6 ž AF AFr A Fr@ A@k A@jÜ"6 ž A8Aט"D9 C8 C8 C8 C8 C8 C8 A6 D9( A60 (·! *! *! * ! *! AÀ ("E Að AF A  AF AÐ AF A€ AF A° AF AÐ A F Að ! *»!  9  8  8 C8  8  8 C8  6  9( 6 ž (" A8Aט"D9 C8 C8 C8 C8 C8 C8 A6 D9( A60 D9 C8 C8 C8 C8 C8 C8 Að 6 D9(A  µ}A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( " Ak(AFA   Ak(AFA E@ A " E@A A(A£˜"Õ Î (! AH@  ( " jAA™   j6 (( j  ü   (( AmÏ (! AH@  ( " jAA™   j6 (( Atj  Atü A:$ (Aj6AAΘ""A6 A:AA-˜ AA-˜6 A6 A(A«˜"A6 A6 A6 A€€€x6 C€?8 A6 A6 C8 A6 A6$ ("6 (Ar6 ("@ ( * ("6 (Ar6 ("@ ( ) ("6 (Ar6 ("@ ( ( ( "6 (AÀr6 ("@ ( ' ("6 (Ar6 ("@ ( & *"8 (Ar6 ("@ ( % *"8 (A r6 ("@ ( $  6 A:  6 Ak(       AÒ »A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( " Ak("AžF AÔFrA   Ak("AžF AÔFrA E@ A E@A C8 C8A ’A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( "@@ Ak("AÝF AÛFr AÚFr AÔFr AžF@ ($"( "@ Ù A6 (À"@ § A6À A6Ä -(@ A:(#ÈAk$È #ÈE@#."E@AØAȘ"” $. Ý  ð A Ì‘}|A ALA #( N  #"( O@ A ( Atj(" (AGA  $ ( " Ak("AžF AÔFr AÚFr AÛFr AÝFrA   Ak("AžF AÔFr AÚFr AÛFr AÝFrA E@ A "@@AA¢˜"A6AAƘ"A6 6  6 Ak("AÝF AÛFr AÚFr AÔFr AžF@ ($"A:i A:j A6l ( "@ + "! +(! +0"!A -°    Dð?  ¡Da DdqÊ A:ë@ -æA (ÌA -¬ E@ A:æ A:ç A:é A:ê ËE:¬A -¬   -ç@ A:ç A:é A:ê Î )hB|7h  -é (ÌA @ A:é A:ê  -ê (ÌA @ A:ê A:ë ) B|7 )pB|7pA  A  ) B|7 A !@ (L" E @@ (Ì"E ( "6ì ž (¤"6ø ž ( +0D ¬@ö¶8�A! A6ˆ A6� A6ô ($(A: (("A6 A6 A:@ (ˆ"( J@  ( O@ ( Atj("@ Á Aj!  A!@ („"( J@  ( O@ ( Atj("E@ - @ ("@#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  A!@ (€"( J@  ( O@ ( Atj("E@ ("@#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  (ˆ"( ! AAA™ AJ@ (A Atü A6 („"( ! AAA™ AJ@ (A Atü A6 (€"( ! AAA™ AJ@ (A Atü A6 (0!@ ("( J@  ( O@ ( Atj("E@ ("@ Á A6 A6 ("- @ ("@#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 ("("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  ("( ! AAA™ AJ@ (A Atü A6 A!@ ( "( J@  ( O@ ( Atj("@ • (! (0"@ (<"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (8"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (! (4"@ (<"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (8"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 • A60 A64 A6 A6 ($"- @ ("@#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 ( "("@#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 (,"- @ ("@#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 (("("@#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 ("("@#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 ( "("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  ( "( ! AAA™ AJ@ (A Atü A6 ("@A!@ (,"( J@  ( O@ ( Atj("@ Á Aj!  (,› (!A!@ ( J@ ( Atj("A: (("@ • Aj!  A! (4" (DAj6D@ (P"( J@  ( O@ ( Atj("@ Á Aj!  A!@ (L"( J@  ( O@ ( Atj("E@ - @ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  A!@ (H"( J@  ( O@ ( Atj("E@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  A!@ (T"( J@  ( O@ ( Atj("E@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  (P"( ! AAA™ AJ@ (A Atü A6 (L"( ! AAA™ AJ@ (A Atü A6 (H"( ! AAA™ AJ@ (A Atü A6 (T"( ! AAA™ AJ@ (A Atü A6 A!@ (@"( J@  ( O@ ( Atj(" (D (XkAøLA E@  ‘ (! (T"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (@ Aœ Aj!  A! (8" (8Aj68@ (0"( J@  ( O@ ( Atj("@ Á Aj!  A!@ (,"( J@  ( O@ ( Atj("E@ - @ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  A!@ (("( J@  ( O@ ( Atj("E@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  A!@ (4"( J@  ( O@ ( Atj("E@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  (0"( ! AAA™ AJ@ (A Atü A6 (,"( ! AAA™ AJ@ (A Atü A6 (("( ! AAA™ AJ@ (A Atü A6 (4"( ! AAA™ AJ@ (A Atü A6 A!@ ($"( J@  ( O@ ( Atj(" (8 (kAøLA E@ ("@ (! (,"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (! (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("@ (! (,"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (! (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "@ (! (,"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (! (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A6 A6 A6 ("("@ (0"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 A6 A6 A6 A6 ("("@ (0"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 A6 A6 A6 A6 ("("@ (0"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 A6 A6 A6 A6 (! (4"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ($ Aœ Aj!  A! (@" ($Aj6$@ (0"( J@  ( O@ ( Atj("@ Á Aj!  A!@ (,"( J@  ( O@ ( Atj("E@ - @ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  A!@ (("( J@  ( O@ ( Atj("E@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  (0"( ! AAA™ AJ@ (A Atü A6 (,"( ! AAA™ AJ@ (A Atü A6 (("( ! AAA™ AJ@ (A Atü A6 ( "( Ak!@ AN@ ($ ( Atj("((kAøJ@  Ò ( Ak" G@   ( Atj(œ ( "AL@ ( Ak"Atj"( A6  6 Ak!  (ä"@A!@ ("( J@  ( O@ ( Atj("@ Á Aj!  A!@ ( "( J@  ( O@ ( Atj("E@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  A!@ ("( J@  ( O@ ( Atj("E@ - @ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  A!@ ("( J@  ( O@ ( Atj("E@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  ("( ! AAA™ AJ@ (A Atü A6 ("( ! AAA™ AJ@ (A Atü A6 (› ( › A!@ (¬"( J@  ( O@ ( Atj("@ Á Aj!  A!@ (¤"( J@  ( O@ ( Atj("E@ - @ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  A!@ ( "( J@  ( O@ ( Atj("E@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  A!@ (¨"( J@  ( O@ ( Atj("E@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  (¬"( ! AAA™ AJ@ (A Atü A6 (¤"( ! AAA™ AJ@ (A Atü A6 ( "( ! AAA™ AJ@ (A Atü A6 (¨"( ! AAA™ AJ@ (A Atü A6 (• ( !A!@ (("( J@  ( O@ ( Atj("E@ - @ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  A!@ ($"( J@  ( O@ ( Atj("E@ ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  (("( ! AAA™ AJ@ (A Atü A6 ($"( ! AAA™ AJ@ (A Atü A6 A! (ø"Aj6ø (¤! (¨!@ ( J@ ( Atj(Á Aj!  A!@ ( J@ ( Atj("("@#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  ( ! AAA™ AJ@ (A Atü A6 ( ! AAA™ AJ@ (A Atü A6 (ô" ( Ak! @ AN@@ ( Atj("($ O@ (,( Ak!@ AN@  (,( Atj("(K@ ("@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ( ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (, ð Ak!   A!@ (("( J@  ( O@ ( Atj("@ ("@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ("@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A!@ ("( J@  ( O@ ( Atj(" E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ($"@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A!@ (4"( J@  ( O@ ( Atj(" @ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (<"@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A6 A6 ("( ! AAA™ AJ@ (A Atü A6 ( "( ! AAA™ AJ@ (A Atü A6 A6$ (4"( ! AAA™ AJ@ (A Atü A6 (8"( ! AAA™ AJ@ (A Atü A6 A6< Aj!  (("( ! AAA™ AJ@ (A Atü A6 A!@ (,"( J@  ( O@ ( Atj("E@ ("@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (,"( O@ ( Atj("E@ ( ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (,"( ! AAA™ AJ@ (A Atü A6 A!@ ("( J@  ( O@ ( Atj("@ (" @#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AAA˜A¤"6  ž ( Aœ Aj!  A!@ AH@  ("( O@ ( Atj("@ (" @#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 ( Aœ Aj!  A:A ( "   J"k" AJ"A AJ"At" A¦˜!AA¢˜" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A   Atj  kAtü   k"AtjA Atü 6 Ak!  @ (¨"( J@ ( O@ ( Atj("@@ Ak("A× F AÌ Fr AÈ Fr A¿ Fr A¯ Fr A© Fr A‘ Fr A˜ F@ $Ì $‚ ("(( @ (H!A!@ -\A (P( E E@A!@ (P"( J@  ( O@ ( Atj("@@ -1A -I E -0E@ A:0 A:8 A:@ +(! (<" ("(P6 A: Dðÿ9 *L"C^  “C[A @  Dð? »£ 9  -@E A:@ -8E A:8 (! +(! (<" )B|7 (XAF@ A: *L"C^  “C[A @ Dð? »£"  +¡c|    +   9 Dðÿ9  )@B|7@ Aj!  A!A!A -\ @ (P"( J@  ( O@ ( Atj("@ Aj  -1A (A -I ! Aj!   6 A!A!A -\ @ (P"( J@  ( O@ ( Atj("@ Aj  -1A (A -I  -0A  -@A ! Aj!   6 A!A!A -\ @ (P"( J@  ( O@ ( Atj("@  Aj -1A (A -I  -0A ! Aj!   6 A!A!A -\ @ (P"( J@ ( Atj("-1A (A -I  -0A  -@A E@ Aj  -9A -8 ( Aj!   "E AD"!A!@ ("( J@  ( O@ ( Atj(F@  ("( O@ ( Atj("E@  Aj!  A " (A E A A�˜"AAA‚A¤6 AAAýA¤6 A6  6AAÿ˜"A6 A6 A6 A: (!  ( (j6  6 - A ( (AjI @ A: A  (" (j-!  Aj6 ! @ AF AFr@@ I@ - A ( (AjI @ A: A  (" (j-!  Aj6 ! ¼! ¼! - A 5 5B|T @ A: A  (" (j(!  Aj6 !@ - A 5 5 ­|T @ A:   ( j6 -  AM@ (" E  ("( "Aj!  (AvK@  AA™ ( Atj 6  6 @  Aä (!AA€˜"A6 A6 A6 A6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  @ I@ - A ( (AjI @ A: A  (" (j-!  Aj6 ! ¼! ¼! (!AA€˜"A6 A6 A6 A6  6  6  6 A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!   - A 5 5B|T @ A: A  (" (j(!  Aj6 !@ - A 5 5 ­|T @ A:   ( j6 AA - E A A ("E  ("( "Aj!  (AvK@  AA™ ( Atj 6  6 @  Aä A!@ ("( J@  ( O@ ( Atj("@ 6 Aj!  (( E   A!@ ("( J@  ( O@ ( Atj("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!   ("( O@ ( Atj( Aj!  AA¦˜!AAý˜" 6  ž  6 A6 A6  6  žAA¦˜!AA‚˜" 6  ž  6 A6 A6  6  žA  #h"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E@ #h"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (!#h ¼A!@ ( J@ ( Atj("(@A! (@ (!#¶ (¼ A6#h"( ( ("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @#h"( ( ("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ A ("( "E ALr  (!@  H@  Atj( F@   Aj!  A "AN@A ( "    J" k" AJ"A AJ"At"A¦˜!AAИ" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A    Atj  kAtü   k"AtjA Atü  6 ("@#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 Aj!  ¬}| »"D×£p= ×)@¢¶" D«ªªªªªÚ?Œ Dáz®Gáð?¢D)\�Âõ(¬¿ ¶" D·‡sÃ¥i?e" “C\@  AAæ˜"C8 A: C8 A6  8  Ý  Ý -} *  ½AA¦˜!AA˜" 6  ž  6 A6 A6 @ ( J@ ( Atj*” ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A°ºÀA¬ºÀ(Av ( A E A¬ºÀ(AvA ( AF @ ( E@ (("E@ A€� ÂAкÀ  A°ºÀA€� ( ( A°Ä¦ÂA � pAAç˜"A6 A: A: A: A6 A6 A6 A6 A: A: A: A6 A6 A6 É}ó "(! ( ! (! Œ  -! -} !  !  C?”ü !"! C?”ü ! " ! ! C?”ü ! " ! " " ”!  ”! ”! ”! C€¿C€? -! AA-˜AA-˜! -@ Ak(Av M@  Atj   ’”8 Ak(Av M@  Atj  ’” ”8 Ak(Av M@  Atj  “”8 Ak(AvAM@    “”8  Ak(Av M@  Atj  ” ”“8 Ak(Av M@  Atj  ” ”’ ”8 Ak(Av M@  Atj  ” ”“8 Ak(AvAM@   ” ”’8 Ak(AvE@ Ak(AvAM@ Ak(AvAM@ Ak(AvAM@ * * * * A Ak(A~q7 6 $ AAÐÊ Â" Ak(A~q7#"@A$ Ak( ñ Ak(Av" Ak(Av"  H!A!@  H@  Ak(AvOA Atj/ "  Ak(AvOA  Atj/ "G@ Aÿ¿L A€°Nq" Aÿ¿L A€°NqG@AA  AA  H Aj!  Ak(Av Ak(AvHA Ak(Av Ak(AvJ °  Î! Ak(Av!@ Ak(Av" J@  OA Atj/ "A°F@ Aj!A  AÆÏL AèNqA!Aü½'(AvAk!@  L@  jAu"AtA€¾'j/" F@    J@ Aj! Ak!  A ANA ! Aj!  E@  A� !  Ak(AvG@A!@ Ak(Av" J@AAA " "O  Aj F Atj/"A€øqA€°Gr@    Atj/"A€øqA€¸G  A t jA€¸ÿk "AÿÿJ!  AÿÿLA!Aü½'(AvAk!@  L@  jAu"AtA€¾'j/" F@    J@ Aj! Ak!  A A "AN AtA ¼'j/¾   jÈÎ Â!  j!   A!A!A!@ Ak(Av" J@  OA Atj/ "AÆÏL AèNqA!Aü½'(AvAk!@  L@  jAu" AtA€¾'j/" F@   J@ Aj! Ak!  A A "AN@    È AtA ¼'j/¾ÂÂ! Aj"! AA A°Fj! Aj!    AÿÿÿÿÈ ‡ Ak(Av!@  JA  Ak(AvOA Atj/ "A€àFA AßÀFA A¯ÀFA A©ÀFA A¨ÀF A L A Nq A Fr A…Fr A Fr A€-FrA AŠÀL A€ÀNq A @ Aj!  @  JA Ak" Ak(AvOA Atj/ "A€àFA AßÀFA A¯ÀFA A©ÀFA A¨ÀF A L A Nq A Fr A…Fr A Fr A€-FrA AŠÀL A€ÀNq A @ Ak!  A  Ak(AvF    È Ð Ak(Av!@@  N  Ak(AvOA Atj/ "AÚL AÁNq Aj!   F@  AA¦˜!AA˜" 6  ž  6 A6 A6 ( A È6@  H@  Ak(AvOA Atj/ "A j  AÚL AÁNq¾! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( ( A� ¦ ×|~ D A¢"  ¡¡"¡!  D A¢"  ¡¡"¡!  ¢ ¢"¡  ¢   ¢   ¢ !   " ¡!   ¡¡ ¡ "  " ¡! B ½"Bƒ  ¡¡  ¡ "DaP| B| B} Dd DdF¿   º|}~ ¼Aÿÿÿÿq"A€€À—O| A€€€üO@ “"  »"  " AvA@j"AtAð�j+¢!  AtAtAø�j+¢!~B ž" b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  ° !  ¡   A€€€ÌI| »D�A¢¶C€2”C€L ‹“C€2” »DƒÈÉm0_ä?¢"ž"°!  ¡ "D,4™”‰¼$?¢  ¢" D?qøä>=,À ¢D€ £!ID@ ¢  D[:ž´šð.À ¢D“½6N&—n@ ¢¶!  D T–¼ À ¢D¼‰'!x@ DÕ!—N6œM?¢  D7ŒlÞZo-À ¢D �øÇ¹Æb@ ¢¶! BƒBR@ Œ! Œ! Bƒ§@  Œ  Õ|~ ¼Aÿÿÿÿq"A€€À—O@ A€€€üO@ “ »" AvA@j"AtAð�j+¢D "ž!  ¡  AtAø�j+¢ " ¢! ½~B  b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  ° B?†…¿  D,²—ü¹¨À ¢DÁP �ø.@ ¢  D0R¥ ô1 À ¢Dy§Ot¶7@ DœÔƒÞ•³?¢¢¶ AÛŸ¤úI@ A€€€ÌI@ C€L” ’C€2” »"  ¢"¢!  ¢ D��Ä>”)¿¢DëEѯs�? ¢ D* hRTUÅ¿¢   ¶ ~B »"DƒÈÉm0_ä?¢ž" b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  ° !  D A¢"  ¡¡"¡!  D-DTû!ù?¢"¡" ¡!    ¡¡ š ¡  DXû!ù?¢ ¡ D@—ÞM¾¢  DXû!ù?¢  D@—ÞM¾¢ ¡ ! Bƒ§|  ¢" ¢ DJ�“üi‘ù>¢Dô]”ÀV¿ ¢ D™–‰ÇSU¥?¢D—.¸üÿÿß¿  !  ¢Dð?    ¢"¢!  ¢ D��Ä>”)¿¢DëEѯs�? ¢ D* hRTUÅ¿¢    ½ BˆB?†…¿¶ ©  |~ ¼Aÿÿÿÿq" ¾»! A€€À—O| A€€€äO@ A€€€üO@ “  AvA@j" AtAð�j+¢Dà? "ž!  ¡  AtAø�j+¢ " ¢! ½~B  b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  ° B?†…¿  D,²—ü¹¨À ¢DÁP �ø.@ ¢  D0R¥ ô1 À ¢Dy§Ot¶7@ DœÔƒÞ•³?¢¢¶ ~B DƒÈÉm0_ä?¢ž" b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  ° B|!  D A¢"  ¡"¡"¡!   ¡"¡!  D-DTû!ù?¢"¡" ¡!    ¡¡ š ¡  DXû!ù?¢ ¡ D@—ÞM¾¢  DXû!ù?¢  D@—ÞM¾¢ ¡ " D\3&¦‘<¢"¡" ¡!    ¡¡ š ¡  D0&¦‘<¢ ¡ D8à¢è:¢  D0&¦‘<¢  D8à¢è:¢ ¡  AÛŸ¤úI| A€€€ÌI@C€L ¾“C€2”  ¢" ¢ DJ�“üi‘ù>¢Dô]”ÀV¿ ¢ D™–‰ÇSU¥?¢D—.¸üÿÿß¿  " D A¢"  ¡¡"¡! š" D A¢"  ¡¡"¡!Dð?  ¢"¡"Dð¿ ! Dð?  ¡¡ š ¡   ¢ ¡  ¢   ¢   ¢ ¡ ¶~B DƒÈÉm0_ä?¢ž" b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  ° B|!  D A¢"  ¡¡"¡!  D-DTû!ù?¢"¡" ¡!    ¡¡ š ¡  DXû!ù?¢ ¡ D@—ÞM¾¢  DXû!ù?¢  D@—ÞM¾¢ ¡  ! Bƒ§|  ¢" ¢ DJ�“üi‘ù>¢Dô]”ÀV¿ ¢ D™–‰ÇSU¥?¢D—.¸üÿÿß¿  " D A¢"  ¡¡"¡! š" D A¢"  ¡¡"¡!Dð?  ¢"¡"Dð¿ ! Dð?  ¡¡ š ¡   ¢ ¡  ¢   ¢   ¢ ¡    ¢"¢!  ¢ D��Ä>”)¿¢DëEѯs�? ¢ D* hRTUÅ¿¢    ½ BˆB?†…¿¶ ’| ¼Aÿÿÿÿq"A€€€äO| A€€€üO@ “ »" AvAËk"AtA€˜j+¢"D8C "½§!  D8à¡  AtAtAˆ˜j+¢  AÛŸ¤úO|~B »"Dn0_ä?¢"ž" b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  ° §! D‹=`­¾û½¢  ¡  A€€€ÌO@ »" ¢" ¢!    ¢ DÜûN€Úåo?¢ D¡Èö‡ÈéQ?¢Dsñɕڇ„?  ¢  D|t†µ–?¢DçJô§†¥«? ¢ D›àFÁ?¢D0‰�]UUÕ?   ¢¢  ¶ »D�A¢¶C€2” "  ¢"DØ@J@¢D«ê.L÷‘@ ¢  Dñ­IJ9 Ö¿ ¢D-P< ¤è? ¢  Dd Þl…�ø¿ ¢D‹6k¾Õ°í?   DÒ��d7í? ¢D ·Æ\zÑâ? ¢¢!Dð¿ £  Aq¶ Ç|} ¼Av! ‹"C€?]E@ C€?[@CÚÉ¿CÚÉ?  ’CÀ \ C?^@D-DTû!ù?C€? “»"Dž?ÃŒ+¾?¢DáÆÇdž ö?   ¢" D‹]£ _~€?¢D2!èì!›?   DSp•²<é^?¢Dh¨m@a? ¢ ¢  Ÿ¢¡¶"Œ  C2`@ »" ¢" ¢!    D/¼Ð�D3³?¢DùòXMUUÅ?   Dºƒ•® áŸ?¢DÂî¥m^Õ¦?   D˜‹E^¡?¢D~cf÷i‘? ¢ ¢ ¢¢ ¶ »D A¢¶C2” Õ|} ‹"C€?]E@ C€?[@CCÚI@ C^ \@ “ CÀ C?^@C€? “»"Dž?ÃŒ+¾?¢DáÆÇdž ö?   ¢" D‹]£ _~€?¢D2!èì!›?   DSp•²<é^?¢Dh¨m@a? ¢ ¢  Ÿ¢! C^@ ¶ D-DTû! @ ¡¶ C;`@ »" ¢" ¢!D-DTû!ù?    D/¼Ð�D3³?¢DùòXMUUÅ?   Dºƒ•® áŸ?¢DÂî¥m^Õ¦?   D˜‹E^¡?¢D~cf÷i‘? ¢ ¢ ¢¢ ¡¶ D-DTû!ù? »¡¶ ’|} ‹"CsâáJ`@ ¼A€€€€xqAÚŸ¤þr¾ \@ “ C€?^@D-DTû!ù?Dð? »"£"  ¢" DfR)Ötkí? ¢Déø_Â�Ù?   D°�ö<]Pu¿ ¢D©׸Ø"Ð? ¢  D¤l×^Ëßà¿ ¢Dα†Qd&Æ?   D“Tòª ç¿ ¢D#¥ïõÂ? ¢¢¢  ¢" ¢" ¢" ¢¢¡¶¼Aÿÿÿÿq ¼A€€€€xqr¾ C2`@ »" ¢! D= #þÀ h?¢  D,nr“`@ ¢DÁc L�@   DkÏŸ›´=•? ¢DB�ry¤O@ ¢  D¼À¿Õ’À ¢D¶Â×h1ä@   D³&gpãÀ ¢DÜòûà@ ¢¢¢¶ »D A¢¶C2” â| ]@ Œ ]@ » »£" ¢"D,nr“`@  ¢DÁc L�@  DkÏŸ›´=•?  ¢DB�ry¤O@ ¢D= #þÀ h?¢ D¼À¿Õ’À  ¢D¶Â×h1ä@  D³&gpãÀ  ¢DÜòûà@ ¢ ¢¢¶ Œ [@CÛI¿ D-DTû!ù¿ » »£" ¢"D,nr“`@  ¢DÁc L�@  DkÏŸ›´=•?  ¢DB�ry¤O@ ¢D= #þÀ h?¢ D¼À¿Õ’À  ¢D¶Â×h1ä@  D³&gpãÀ  ¢DÜòûà@ ¢ ¢¢¡¶ @ [@ C]@CäËÀ C[@ ¼AvE@   CÛI?  \ \r@ ’ Œ ]@D-DTû!ù? » »£" ¢"D,nr“`@  ¢DÁc L�@  DkÏŸ›´=•?  ¢DB�ry¤O@ ¢D= #þÀ h?¢ D¼À¿Õ’À  ¢D¶Â×h1ä@  D³&gpãÀ  ¢DÜòûà@ ¢ ¢¢¡¶ Œ [@CäË@ » »£"™D�>c  ¢"D,nr“`@  ¢DÁc L�@  DkÏŸ›´=•?  ¢DB�ry¤O@ ¢D= #þÀ h?¢ D¼À¿Õ’À  ¢D¶Â×h1ä@  D³&gpãÀ  ¢DÜòûà@ ¢ ¢¢D-DTû! ÀD-DTû! @ ¼Av ¶ CÚIÀCÚI@ ¼AH @| Bÿƒ§AtA°¸j) B-†|¿!DVÖ0ÿ½¿î> D® áSD.v?û ¢  û ‚| ¼"AvAÿqA†O@ C]}CC€ A€€€|O" ” Cÿÿ”  Dþ‚+eGg@ »"D8Cû "½Dþ‚+eGg@  D8àšû „ ¶ ¦|~ ¼"AvAÿqA‡O@ C]}CC€ A€€€|O" ” Cÿÿ”  »"DÈB "½"Bÿƒ§AtA°¸j) B-†|¿!DVÖ0ÿ½¿Î?  DÈ ¡"D® áSD.æ?û ¢  û ¶ ‹| ¼"A€€€kA€€€øO@ \@  C[@C€ÿ C]@CÀ A€€€kAN@  A€€€ür¾C€¿’¼A€€€øk! AÿÿÿqA€€jAv"AtAtAØž+j+! ­B€€€ü„B†¿ AtAО+j+Dð¿û ! A€€þùkAu·Dï9úþB.æ? û !  ¢ D­Ë\UaUÕ?DÒIà¿û Dffÿÿÿÿï? û û ¶ û| ¼"A€€€k"A€€€øO@ \@  C[@C€ÿ C]@CÀ AN@  A€€€ür¾C€¿’¼A€€€øk! Aÿÿÿq"A€€jAv! A€€üùkAu· A€€€ür¾» At"AtAà‡j+¢Dð¿ "   DÝ»ÑÁ£׿¢Dη·ºSÇÞ? ¢D‚íídGç¿ ¢D%G"eG÷? ¢ AtAè‡j+  ¶ °| C€?[@  @ C€?[ ¼! ¼"AÿÿÿÿqAkAÿÿÿûO@ Aÿÿÿÿq"A€€€üK@ C€?” E@C€? Aÿÿÿÿq"E@ Av}C€? ‹• ‹  A€€€üK  A€€€üF@C€? ‹¼ A€€€ük sAuAsq¾ A€€€kA€€€øO@ Aÿÿÿÿq"AkAÿÿÿûO@ A€€€üK C€? ‹ A Aÿÿÿÿq"A€€€üI AA€€€Ü  A€€€ÜK¾"� \ AA ¨Aq AG"• Av Av@A Aÿÿÿÿq"A€€€üI AA€€€Ü  A€€€ÜK¾"� \ AA ¨Aq "E@CÀ A€€€€xA AF! ! A€€€I A€€€ür¾C€¿’¼A€€€øk  ! A€€Îùk"AvAÿq"AtA¨¨j+!~ »  A€€€|q"k¾» AtA ¨j+Dð¿û "Dë'¨ÜYGÀDè±³SÇN@û  ¢ DLe)eGWÀDBï*eGg@û û   Au· û ¢"Dà@d@Dà@! DàÀc@DàÀ!  �"¡™Dà?f@ Dð? ¦ ! B  b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  °  ¡„ ¶¼ s¾ C€?” ƒ~| DAd@ B�€€€€€€ðÿ„¿DࢠDÌÁc@ B�€€€€€€„¿D¢ œ"°"Bÿƒ§"AtA�÷j)  B,†B€€€€€€€xƒ"…|¿"  AtAtA˜÷j+¡ ¡" "   A ‡+A¨‡+û A°‡+û A¸‡+û AÀ‡+û ¢ û B-†B€€€€€€€xƒ }B€€€€€€€ø?|¿¢  |~ Bÿÿÿÿÿÿÿƒ" P@ B€€€€€€€ø?}"P@ B€€€€€€€ø?„¿ ¹D =¢" ¢"   šû Š  B€€€€€€|B€€€€€€øƒB-ˆ§"AtA�Öj)! AtAtA˜Öj)! BÿÿÿÿƒB †¿" B€€€€€€€ø?„" ¿"¢!   B€€€ƒ¿"¡   šû û ! Dð¿ " ¢" ¢    A ö+A¨ö+û A°ö+û A¸ö+û AÀö+û ¢! AÐö+!Aàö+! Aèö+!Aðö+! AÈö+" AØö+" û !   û !    ¡šû   û  !   û !   û !    ¡šû   û   ¢!    ¢"šû ! D`@¢" B€€€€€€üó?}B4‡¹" ¿"      ½B~ƒ¿"¢"  B€€€€pƒ¿ ¡           û      šû û Š ô~| ½"B€€€€€€€}B€€€€€€€ðÿT ½"B€€€€€€€ð;}B€€€€€€€ˆXq@  B‹  B€€€€€€€ø?Q@  B€€€€€€€ø?Q@   b Bÿÿÿÿÿÿÿÿÿƒ"P@Dð? Bÿÿÿÿÿÿÿÿÿƒ!@ B€€€€€€€øÿZ@ B€€€€€€€øÿV@    P  B€€€€€€€øÿV@   B€€€€€€€ø?Q@Dð? B€€€€€€€ø?} …B?‡B…B€€€€€€€øÿƒ¿ P B€€€€€€€øÿZ@ B€€€€€€€øÿV@    B! B?ˆ§@A B€€€€€€€ø?T AB€€€€€€€ Ã  B€€€€€€€ ÃV¿"� b AA °Bƒ§ "E@Dø B€€€€€€€€€B AF! ! ¿! ¿"DðCd@ Dð?a@ B€€€€€€€ø?„¿ Dc Dð?dG@ B�€€€€€€ðÿ„¿DࢠB�€€€€€€„¿D¢ Dà;c@ Dð?a@ B€€€€€€€ø?„¿ B€€€€€€€ø?„¿" B€€€€€€€ð;„¿"   ¡ Dc Dð?dG B€€€€€€€T~ B€€€€€€€ø?„¿Dð¿ ½B€€€€€€€ð?}   ‹  Dð? ¿A B€€€€€€€ø?T AB€€€€€€€ Ã  B€€€€€€€ ÃV¿"� b AA °Bƒ§ AF"£ B?ˆ§ ú~ B ˆ" " Bÿÿÿÿƒ"~! Bÿÿÿÿƒ" " B ˆ"~" B ˆ  ~| B ˆ| Bÿÿÿÿƒ  ~B ˆ| Bÿÿÿÿƒ|B ˆ|! ~" " Bÿÿÿÿƒ"~! " B ˆ"~"B ˆ  ~| B ˆ| Bÿÿÿÿƒ ~B ˆ| Bÿÿÿÿƒ|B ˆ||! A@j"E@   T­|! AÀI@ BÀ ­"}† ˆ„  A@j­ˆ œ~ ~ Aµk! B€€€€€€€„AÌw! " BƒP! B†! AM BRr!A! AN@ AÁèlAv AJk"! At"AŒ³(AvO@ AϦÊlAvAýj  kj! AtA�³j)" AtAj"AŒ³(AvO@ AtA�³j)" � ! B†" B|   � ! B} ­"}   � ! AM@ § B€§Alk@ @ B} }! @ BÍ™³æÌ™³æL~" B³æÌ™³æÌ™3X@ Aj!   M! B|! A!@ BÍ™³æÌ™³æL~" B³æÌ™³æÌ™3X@ Aj!   M­}! @ BÍ™³æÌ™³æL~" B³æÌ™³æÌ™3X@ Aj!   O!  A k"AûÝ,lAv AJk"j!   k"AϦÊlAvAükk! At" AüÝ(AvO@ AtAj"AüÝ(AvO@ B†" AtA€Þj)" AtA€Þj)" � ! B|   � ! B} ­}   � ! AM@A! @ ! B}!  A?I@ B ­†B}ƒP! A!A!A  ~@ B €" B €" V@ § §A lkA E! A E! § B €"§A lk! ! ! Aj!  @@ § B €" §A lF@ A E! § B €"§A lk! B €! ! Aj!  E Er QqA  BƒB AFA A PAOr­|A! Bä€" Bä€"V@ ! ! A! § Bä€"§AälkA2O! @ B €" B €" V@ § B €"§A lkAO! ! Aj!   QrAG­| !  j$œ $› ±  ~  A˜k! A€€€rAé~! "AqE! At"Aj! AkA AM AG"k! AN@ AÁèlAv"! AtAj"AŒ³(AvO@ ­" AtA�³j)B|"B ˆ~  Bÿÿÿÿƒ~B ˆ| AϦÊlAvA=j  kj"A k¬ˆ§! AtAj"AŒ³(AvO@ ­" AtA�³j)B|"B ˆ~  Bÿÿÿÿƒ~B ˆ| A k¬ˆ§! AtAj"AŒ³(AvO@ ­" AtA�³j)B|"B ˆ~  Bÿÿÿÿƒ~B ˆ| A k¬ˆ§!  AkA n A nMA @  k Ak"AϦÊlAvjA#"(AvAM@ ( B ˆ>#"(AvAM@ ((A#"(AvE@ ((AG $ AN@#@ Au"#jAj"#(AvJ@A Aä˜"A6 A6 A6  At°!##±"(Av" (AvJ@ ( ( Atü $ # j"#"(AvO@ Aq! ( AtjA6#Ak!@ AN@ #"(AvO@ ( Atj(! @  jAj"#"(AvO@ ( Atj( A kvr!  (AvO@ ( Atj 6  j"#"(AvO@ ( Atj  t  6 Ak!  A!@  H@ #"(AvO@ ( AtjA6 Aj!  # jAj$@#AJ#Ak"#"(AvO@ ( Atj(EA @#Ak$  • AàÜAË  A!@ AL@ A l! Aj!  AG@A!B!@ #H@ #"(AvO@ ( Atj5 ­~ |"Bÿÿÿÿƒ§!#"(Av M@ ( Atj 6 B ˆ! Aj!  BR@#Aj"#(AvJ@A Aä˜"A6 A6 A6  At°!##±"(Av" (AvJ@ ( ( Atü $ #"#"(AvO@ ( Atj >#Aj$ A k"Ak"Au"#NA #"(AvO@ ( Atj( vAq "A! Ak"Au!@  H #Hq@ #"(AvO@ A ( Atj(  Aj!  #HA Aq"@ #"(AvO@ A ( Atj(A tAkq  A A ! A!@ Au"#N@A$  Aq!# k!@  H@  j"#"(AvO@ ( Atj( v! #  jAjJA @  jAj"#" (AvO@  ( Atj(A ktr! #"(Av M@ ( Atj 6 Aj!  $@#AJ#Ak"#"(AvO@ ( Atj(EA @#Ak$   A#ALA#"(AvE@ ((Aq A @@A!@ #H@ #"(AvO@ ( Atj(Aj!#"(Av M@ ( Atj 6 #"(AvO@ ( Atj(  Aj!  #Aj"#(AvJ@A Aä˜"A6 A6 A6  At°!##±"(Av" (AvJ@ ( ( Atü $ #"#"(AvO@ ( AtjA6#Aj$ • "Ak(AvAM@ Að²ÂA Ak(Avk"ALA� AàÜ Ë Â Â A Ak(AvAkÈÂA �  Ak(AvAkAÿÿÿÿÈ —~ ¡Db@ bAð†A�‡A°‡ Dd  ½"Bÿÿÿÿÿÿÿƒ! B4ˆBÿƒ§"E@A€�A� B?ˆ§ AÎw–  A€�A� ½B?ˆ§ B€€€€€€€„ A³k– - BS@A€�B }A ¬AÊ A ¬AÊ ºAA¦˜!AA˜" 6  ž  6 A6 A6 @ Bƒ§"Aœ�(AvOA�  AtA �j/"A€I@#- Atj(  AA˜" ;  ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Bˆ"BR @ ( " H@ Aj" (AvK@  AA™ ( Atj"AàÜ6  At AàÜŸ  6  A  (!A! ( "AK@ Av! Ak!@  I@  Atj"(!    kAtj"(6  6 Aj!  ( ( A� ¦ à AA¦™"A¨È (6AA˜" 6  ž  6 A6 A6 Ak(Av!@  H@A!A!  Ak(AvOA Atj/ "Aÿ·M A€°Oq Aj" Hq@  Ak(AvOA Atj/ "Aÿ¿M A€¸Oq@A!  A tjA€¸ÿk! @@@@@@@ @ A F  A F  A F  AÜF  A"F  A'F   A°Ò  A Ž  AÀŽ  A€�  Aà�  AÀ�  A�  @ AÿF A Ir A� A€I  Aÿ¿M A€°OqAA¼È (AvAk!@  N@  jAu" At" A¼È (AvO@ AtAÀÈ j(! AtAj" A¼È (AvO@ AtAÀÈ j(!  I@ Ak!  K AjA  !  A A�  AðÒ ­A™ ÂAÀ Â "Ak(Av@  J@  È! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  j!  j!   H@ AÿÿÿÿÈ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "Aj" (AvK@  AA™ ( Atj"AÀ�6  At AÀ�Ÿ  6 ( ( A� ¦ ’ ( E@  AA¦˜!AA˜" 6  ž  6 A6 A6 !A!@ ( J@ ( Atj(AðÛ  ( O@ ( Atj("E@ Â! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A È  ( ( A°Ä¦ÂA�Ò Á  ( "Aj" (AvK@  AA™ ( Atj"AÀ�6  At AÀ�Ÿ  6 Ak(Av!A!@  H@  Ak(AvOA Atj/ "A"G A Nq AÜGqE@  J@  È! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!@@@@@@@@ A"G@ AÜF  AF  A F  A F  A F  A F   ( "Aj" (AvK@  AA™ ( Atj"AÀ�6  At AÀ�Ÿ  6  ( "Aj" (AvK@  AA™ ( Atj"Aà�6  At Aà�Ÿ  6  ( "Aj" (AvK@  AA™ ( Atj"A€Ž6  At A€ŽŸ  6  ( "Aj" (AvK@  AA™ ( Atj"A Ž6  At A ŽŸ  6  ( "Aj" (AvK@  AA™ ( Atj"AÀŽ6  At AÀŽŸ  6  ( "Aj" (AvK@  AA™ ( Atj"AàŽ6  At AàŽŸ  6  ( "Aj" (AvK@  AA™ ( Atj"A€�6  At A€�Ÿ  6  AÐ� Au"Aœ�(AvOA�  AtA �j/"A€I@#- Atj(  AA˜" ;   Aq"Aœ�(AvOA�  AtA �j/"A€I@#- Atj(  AA˜" ;  Â! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   H@ @ AÿÿÿÿÈ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "Aj" (AvK@  AA™ ( Atj"AÀ�6  At AÀ�Ÿ  6 /AÀA„˜"ö  6  (6 A: õ ²@  H@  (O@ ( j-"A€I@ Aj!  A€!A¿! AßM AÂOq@A! AïM AàOqA!A A€ AàF!AŸA¿ AíF AôM AðOqA!A�A€ AðF!A�A¿ AôFA !  j N@A A!@  L@  j" (O@ ( j-"A€  AG"HA¿   Hr@A Aj!   Ajj!  A û } C?”ü ! " ! C?”ü ! " ! "C” "C”’C  ”“’  ”C€’ C” C”" ’’ C” C”"’  ”C€’’  ”C€’ Œ “’!!!"! " C?”ü ! " "”  "”’ "C” " C”“’ C” C”“  ” ”’’ C” C”’ ”  ”“’  ”  ”“ C”Œ C”“’!!!""C€? ” " ”’ " ” " ”’’‘•"”  ”  ”  ”!!!"    Y Œ"C€¿]@C€¿! C€?  C€?^€ "þ ‹C½7†5^@  ƒ   ƒ  Œ ƒ C ËAAˆ˜"A6 A6A Aä˜"A6 A6 A6  A A mAj" AL°6 ("(AvE@ (A6 A6@ A HE@ A€”ëÜA‚ A k!  A!@ LE@ A l! Aj!  AG@  A‚  ¶ ~AA‰˜""A: A: A: A6 A� 6 B7@ Ak(Av"E@ A:  A! Ak(Av /A "A-F A+Fr@  A-F:A!  F A!A Ak(Av kAŒ‡(AvG @AŒ‡(Av J@  j" Ak(AvOA Atj/ !A AŒ‡(AvOA AtA�‡j/ A j  AÚL AÁNqG  Aj!  A AA!A Ak(Av kAüž(AvG @Aüž(Av J@  j" Ak(AvOA Atj/ !A Aüž(AvOA AtA€Ÿj/ A j  AÚL AÁNqG  Aj!  A @ A6 A:  A!A "Ak(Av kAü•(AvG @Aü•(Av J@  j" Ak(AvOA  Atj/ !A Aü•(AvOA AtA€–j/ A j AÚL AÁNqG  Aj!  A @ A6 A:  AA¦˜!AA˜" 6 ž 6 A6 A6 !@  H  Ak(AvOA  Atj/ A0NA   Ak(AvOA  Atj/ A9LA @ Aj!   k!  J@   È! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  H  Ak(AvOA  Atj/ A.FA @ Aj"!@  H  Ak(AvOA  Atj/ A0NA   Ak(AvOA  Atj/ A9LA @ Aj!   k" j!  J@   È! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 E  H  Ak(AvOA  Atj/ AåFA  Ak(AvOA  Atj/ AÅF A @A! Aj" H  Ak(AvOA  Atj/ A+FA  Ak(AvOA  Atj/ A-F A @  Ak(AvOA  Atj/ A-F! Aj! !@  H  Ak(AvOA  Atj/ A0NA   Ak(AvOA  Atj/ A9LA @ B€ ”¥�S@  Ak(AvOA  Atj/ A0k¬ B ~|! Aj!   F B } !  G A! ( ( A� ¦"Ak(Av!@ J  Ak(AvOA  Atj/ A0FA @ Aj!  @ J Ak" Ak(AvOA  Atj/ A0FA @ Ak!     È"6  ž  Ak(Av k¬ ¬}|7 A:   Í~ Ak(AvE@B Ak(Av¬" |B¼}BR A5FW@B B} |BµB' A5FY@  §! AAˆ˜"A6 A6A Aä˜"A6 A6 A6  A B €§Aj" AL°6 ! A!@ Ak(Av" J@ A j"   H!A!A!@  LE@  Ak(AvOA Atj/ A0k A lj! A l! Aj!  (@  ‚ ("(AvE@ ( 6 AG6 !  AN@ ¡ !AAˆ˜"A6 A6 ( (jAj!A Aä˜"A6 A6 A6 A  AL°6 !A!@ (H@B! " (" (AvO@ ( Atj5! A!@ (H@ ("" (Av j" (AvO@ ( Atj5 ("(AvO@ ( Atj5~| |"Bÿÿÿÿƒ§! j" M@ ( Atj 6 B ˆ! Aj!  §!  (j" ("(AvO@ ( Atj 6 Aj!   ( (j6@ ("AJ Ak" ("(AvO@ ( Atj(EA @  (Ak6  AAˆ˜"A6 A6A Aä˜"A6 A6 A6 A°6 ("(AvE@ (A6 A6    ¤  A k¡   ¤ ¹ ~ (" Ak" ("(AvO@ At ( Atj(gkA (" Ak" ("(AvO@ At ( Atj(gkA k!AAˆ˜"A6 A6  (Aj€"(! ( (±"(Av" (AvJ@ ( ( Atü  (6AAˆ˜"A6 A6  (Aj€"(! ( (±" (Av" (AvJ@ ( ( Atü  (6 AN@  ƒ A kƒ Ak  (" ("G@AA  J  (Ak!@ AN@  ("(AvO@  (" (AvO@ At" (j(" (j(" G@AA  I  Ak!  A AH"AÿAÿ A5FJ@  AAˆ˜"A6 A6  (Aj€"(! ( (±"(Av" (AvJ@ ( ( Atü  (6AAˆ˜"A6 A6 (Aj€"(! ( (±"(Av" (AvJ@ ( ( Atü (6  Akk" H@ ! A k"AN@  ƒ A kƒ Aj"Akƒ Ak!@ AN@ B†!  (" ("G@AA  H  (Ak!@ AN@  ("(AvO@  (" (AvO@ At" (j(" (j(" G@AA  I  Ak!  A AN@A!B! @  (H@  ("(AvO@ ( Atj5 }  (H~  ("(AvO@ ( Atj5B }" BS~ B€€€€|! BB ! ("(Av M@ ( Atj > Aj!  @ ("AJ Ak" ("(AvO@ ( Atj(EA @  (Ak6  B„! A!@  (H@  ("(AvO@ ( Atj(Av! Aj" (H@ (" (AvO@  ( Atj(Atr! (" (Av M@ ( Atj 6 Aj!  @ ("AJ Ak" ("(AvO@ ( Atj(EA @ (Ak6  Ak!   Bƒ§ Bˆ" Bƒ§ (AGrq~ B|  k¬ Ak¬†|"  X ­| ¢ "-@AA¶˜"A: D9 A� 6 A6 Aà�6 Aà�ž  -E@AA¶˜"A: D9 A� 6 A6 AÀž6 AÀžž  (AF|Dð (AF|Dø ( )A5AÎwB€€€€€€€øÿ£ ¿ "š  -!AA¶˜"A: D9 A� 6 A6 A: 9 •} ¢ "-@AAµ˜"A: C8 A� 6 A6 Aà�6 Aà�ž  -E@AAµ˜"A: C8 A� 6 A6 AÀž6 AÀžž  (AF}C€ (AF}CÀ ( )AAë~B€€€ü£ §¾ "Œ  -!AAµ˜"A: C8 A� 6 A6 A: 8 É~AAŠ˜"A� 6 A: B7 Ak(Av"E@ Aà£6 Aࣞ  @ Ak(Av /A "A-F A+Fr@ AF@  A+FA  A:AA !   -!B!@  H@  Ak(AvOA Atj/ "A0H A9Jr@    A0k¬"}B €V@ A�¥Að¥ -"6  ž  B ~ |! Aj!   7  AÀ¤6 AÀ¤ž  ž ABÿÿÿÿB§ "(Ak(Av@ (!AAõ˜"A: A6 A� 6 A6 6 ž  )§!AAõ˜"A: A6 A� 6 A6 A: 6 ¾~ ABÿÿÿÿÿÿÿÿÿB€€€€€€€€€§ "(Ak(Av@ (!AA¨˜"A: B7 A� 6 A6 6 ž  -~B )} ) !AA¨˜"A: B7 A� 6 A6 A: 7 ³ ABÿÿÿÿB€€€€§ "(Ak(Av@ (!AA÷˜"A: A6 A� 6 A6 6 ž  -~B )} ) §!AA÷˜"A: A6 A� 6 A6 A: 6 º#"E@AÐAŽ˜"õA !@ AL@ (!AA�˜"A6 A6 A6 A6 Aš! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  $  ú~AA ˜A A ˜"Ak(AvE@ Aç̧Ð6 Ak(AvAM@ A…ÝžÛ{6 Ak(AvAM@ Aòæ»ã6 Ak(AvAM@ Aºê¿ªz6 Ak(AvAM@ Aÿ¤¹ˆ6 Ak(AvAM@ AŒÑ•Øy6 Ak(AvAM@ A«³�ü6 Ak(AvAM@ A™šƒß6 ("AÈjAÀmAt! A Aߘ"A6 A6 A6 AüÿÿÿK@  A¦˜"6  6  6 (" (J@ ( ( ü  (O@ ( jA€: ¬B†!A!@ AH@ Ak k" (O@ ( j  ¬B†ˆ< Aj!  AA ˜A€A ˜!@ J@A!@ AH@ Atj"Aj" (O@ Aj" (O@ Aj" (O@ (O@  ("j-At j-Atr  j-Atr  j-r! Ak(Av M@  Atj 6 Aj!  A!@ AÀH@ Ak" Ak(AvO@  Atj("At Avr At Avrs Avs! Ak(Av"  Ak"M@ Ak! Ak" Ak(AvO@  Ak(AvO@  Atj(   Atj(jj  Atj("At Avr A t Avrs A vsj! M@  Atj 6 Aj!  Ak(AvE@ (! Ak(AvAM@ (! Ak(AvAM@ (! Ak(AvAM@ ( ! Ak(AvAM@ (! "Ak(AvAM@ (! Ak(AvAM@ (! Ak(AvAM@ (!A! @ AÀH@ Ak(AvO@ Aœ—(AvO@  At" j( A —j( At Avr At Avr At A vrss j  q As qsjjj! A t Avr At Avr At A vrss q  q qssj! ! ! ! j! ! ! ! j! Aj!  Ak(AvE@  (j! Ak(AvE@  6 Ak(AvAM@  (j! Ak(AvAM@  6 Ak(AvAM@ (j! "Ak(AvAM@ 6 Ak(AvAM@  ( j! Ak(AvAM@ 6 "Ak(AvAM@ (j! Ak(AvAM@ 6 Ak(AvAM@  (j! Ak(AvAM@ 6 Ak(AvAM@  (j! Ak(AvAM@ 6 Ak(AvAM@  (j! Ak(AvAM@ 6 A@k!  A Aߘ"A6 A6 A6 A A¦˜"6 6 A 6A!@ AH@  Ak(AvO@  At"j(Av!  (O@ ( j :  Ak(AvO@  At"j(AvAÿq! Aj" (O@ ( j :  Ak(AvO@  At"j(AvAÿq! Aj" (O@ ( j : AtAj!  Ak(AvO@  Atj(Aÿq! ( M@ ( j : Aj!  ® ¬ !AA˜"A6 A6 A6 A6 Aš!@ ( J@ ( j-Av"Aœ�(AvOA�  AtA �j/"A€I@#- Atj(  AA˜" ;  ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( j-Aq"Aœ�(AvOA�  AtA �j/"A€I@#- Atj(  AA˜" ;  ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( ( A� ¦ Û "Ak( j!@  I@ /"A€I Aj A€I Aj A€øqA€°F Aj Iq@ /A€øqA€¸F@ Aj! Aj!  Aj ! Aj!  A¦˜! Ak(Av Ñ Ak(!A Aߘ" 6 ž 6 6 ­ © Ak(AvAIA Ak(Av /A A#G @A Ak(Av"AA AMA / AøF""L@A @ Ak(Av" J@  MA Atj/ !  A0k A9L A0Nq  A×k AæL AáNq  A7k AÆL AÁNq A  A0kA A9L A0Nq "AH@A AA l j"AÿÿÃJ@A€€Ä! Aj!   É  (! (!A! Ak(Av! @  H@A!A!A!   Ak(AvOA Atj/ " A&FA  A ’ Å" J kAj"! AA Aj ȯ AÿÿJA  Aÿ·L A€°Nq Aj HqA!AA " jH@AA‘˜"A6 A6 6 6   j! A F Aj!A  j !  j!  AA‘˜"A6 A6 6 6 Î AàˆAÅAH@  AAì˜"AAAA¤6 Ak(Av!@  NE@  Ak(AvOA Atj/ A F@  È! ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ ( Atj"A€ˆ6  At A€ˆŸ  6 Aj  Aj" H  Ak(AvOA Atj/ A FA "Aj! Aj!  AÿÿÿÿÈ! ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ê ˜ AA "(AN (-AïFA  (AM@ (-A»FA  (AM@ (-A¿FA "! ("AN@@ N (!@ Aj L~ j)B€�‚„ˆ� À€ƒB P@ Aj!  @ H (O@ ( j-A€IA @ Aj!  " N (O@ ( j-"A€I@ Aj!  A€!A¿!   AßM AÂOqA AàFA !A AìM AáOq AîFr AïFrA AíFAŸ!A AðFA�!A AóM AñOqA AôFA�!A  " j N A!@ L@ j" (O@  ( j-"A€  AG" HA¿   Hr  Aj!   Ajj!  A "AN@ LA�  ( j kÒ ± !AA™˜"A6 AAA¤AèÓ¤6 A: A: A6 A6 A6 6 ‹ Ak(AvŒ!AA˜˜"A6 A6 A6 6 6 Aàˆ6 ò (" LA�  ( j kÒ ± ³ Ž7 A Aš˜"A6 A6 A6 A6 A6 A6 A6 A: A:  6  Ak(Av6  6 AA™˜"A6AA¦™"AèÓ(6AA¤˜" 6  ž  6 A6 A6  6 A: A: A6 A6 A6  6  6 A6 AžAA—˜" A� 6 A6 AAA•A¤6A(A“˜"ñ A6 A� 6 A� ž 6 AAA•A¤6 "( "6 žA (!AA¤˜"A6 A6 A6 A6 Aš"( "Aj!  (AvK@  AA™ ( AtjA6  6 A!@@  (H@@  Ak(AvOA  Atj/ "A€°H A Nq A F@ ( "Aj" (AvK@  AA™ ( Atj Aj6  6  A F Aÿ·L A€°Nq@ Aj" (H  ("Ak(AvOA Atj/ A "Aÿ¿L A€¸Nq@A! Aj!   Aÿ¿L A€¸Nq  AýÿL A€ÀNq A«Ï!@ Ak(AvAI@AàÜ Â!  AÐÓAà± ÂÂA�ÓÂ! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6  6  ž A  Aj!  (" 6 ž : A:A  A«Ï!@ Ak(AvAI@AàÜ Â!  Aà¯Aà± ÂÂ! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6  6  ž A E A!A (Ả(AvH @Ả(Av" J@ (!A MA AtAЉj/  Ak(AvOA  Atj/ G  Aj!  A  (AJ ("Ak(AvAMA / A "A F A F A Fr A FrrA (AJ ("Ak(AvAMA / A A?F A @AA A–˜" "AðÒ6 A6 A6 A6A A¦™"AˆÉA ü AA˜" 6 ž 6 A 6 A6 A!@@@ (! (! ("!@@  L  Ak(AvOA  Atj/ "A€NA #Sj-Aq E Aj!   6A! A ( ("A¬’(AvjH @A¬’(Av" J@  j! (!A  MA AtA°’j/  Ak(AvOA  Atj/ G  Aj!  A @  (Aj6  ( (N@ (E@AA˜˜"A6 A6 A6 ( ! (AŒ!  6  6 A°É6  6  ž  (! �"Ak(AvE  Nr@ (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6 A€Ê6  6  ž  !@  ( "H  M@ ( Atj("E@  ÄEA @ Aj!   ( N@AÐË ÂA�ËÂ! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6  6  ž  E AGq@ (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6 A€Ì6  6  ž  Aj! (! (! (! @@  L Ak(AvOA  Atj/ "A€NA #Sj-Aq E Aj!   6 (" (H  ("Ak(AvOA  Atj/ A A=G@ (!AàÌ Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6  6  ž   (Aj6 (! (! (! @@  L Ak(AvOA  Atj/ "A€NA #Sj-Aq E Aj!   6 (" (H  ("Ak(AvOA  Atj/ A "A'G A"Gq@ (!A Í Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6  6  ž  (Aj! ( ¾ Å"AH@ (!AðÍ Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6  6  ž  (  È!  Aj6 @ AF@ ÎA ÏÄE@A°Ð ÂAÀÏÂ! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6  6  ž A  6 AàÐÄA A€ÑÄ E@A Ñ ÂAÀ�Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6  6  ž A  6  Ak(AvAO A°ÎAÇA A!A AAÿÿÿÿÈ"Ak(AvE @ Ak(Av" J@  MA  Atj/ "A0H A9Jr@A  Aj!  A A E@AÐÎ ÂAÀ�Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6  6  ž A  6 ž  E@ (E@AA˜˜"A6 A6 A6 ( ! (AŒ!  6  6 A�Ò6  6  ž   A "E  6 ž A  (A�E A@ “" E -$ AA•˜"A6 A6 A6 A6 Aš"( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 @ ( "AJ@  Ak"M@ ( Atj(" E@ ( (N -A  ( AFA @ A:  (" (L@A Š (ÂAð‰Â ((A «ÂA€’ ((A «ÂA �Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6  6  ž  (" (H  ("Ak(AvOA Atj/ A AG@ (!AÀŒ ÂA€“Â! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6  6  6  ž   (Aj6 ( Œ"6 ž ( "AL@ ( Ak"Atj"( A6  6  A!A ( ("AüŒ(AvjH @AüŒ(Av" J@  j! (!A MA AtA€�j/  Ak(AvOA  Atj/ G  Aj!  A @ �!A!A ( ("Aœ�(AvjH @Aœ�(Av" J@  j! (!A MA AtA �j/  Ak(AvOA  Atj/ G  Aj!  A @ (Að¸ ("A j"Å"AH@ (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6 A�¹6  6  ž A  A(A“˜"ñ A6  (  È"6  ž  ( Œ"6  ž  ( Œ"6  ž  Aj6  !A!A ( ("AÌ�(AvjH @AÌ�(Av" J@  j! (!A MA AtAÐ�j/  Ak(AvOA  Atj/ G  Aj!  A @ ‘!A!A ( ("Aì�(AvjH @Aì�(Av" J@  j! (!A MA AtAð�j/  Ak(AvOA  Atj/ G  Aj!  A @ (! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6 A Ž6  6  ž A!A ( ("AÜŽ(AvjH @AÜŽ(Av" J@  j! (!A MA AtAàŽj/  Ak(AvOA  Atj/ G  Aj!  A @ (! (E@AA˜˜"A6 A6 A6 ( ! ( Œ!  6  6 A€�6  6  ž  (" (H  ("Ak(AvOA Atj/ A A *8!? *4!@ *0!A *,!B *(!C *$!D * !E *!F *!G *!H *!I * !Z *![ *!\ *!]  ( O@ ( Atj" ]8  \8  [8  Z8  I8  H8  G8  F8  E8  D8$  C8(  B8,  A80  @84  ?88  >8< (4"! Aj" ( O@ ( Atj"* *8!? *4!@ *0!A *,!B *(!C *$!D * !E *!F *!G *!H *!I * !Z *![ *!\ *!]  ( O@ ( Atj" ]8  \8  [8  Z8  I8  H8  G8  F8  E8  D8$  C8(  B8,  A80  @84  ?88  >8< Aj!  (,"(Aj" 6  ( At  ŸA !  (0"( O@ ( Atj" .8  =8  <8  ;8  :8  98  88  78  68  28$  58(  48,  380  184  088  /8<  (4"( O@ ( Atj" J8  Y8  X8  W8  V8  U8  T8  S8  R8  Q8$  P8(  O8,  N80  M84  L88  K8 *¬!? *°!@ *´!A *¸!B *¼!C *À!D *Ä!E *È!F *Ì!G *Ð!H *Ô!IA *œ =[ *˜ .[q *  <[q *¤ ;[q 9 ?[ : >[q 8 @[q 7 A[qA  2 C[ 6 B[q 5 D[q 4 E[qA  1 G[ 3 F[q 0 H[q / I[qA  *è!> *ì!? *ð!@ *ô!A *ø!B *ü!C *€!D *„!E *ˆ!F *Œ!G *�!H *”!I *Ü Y[ *Ø J[q *à X[q *ä W[q ? U[ > V[q @ T[q A S[qA  C Q[ B R[q D P[q E O[qA  G M[ F N[q H L[q I K[qA A E A (ˆ"( " ( ( G A!@  H@ At" ( (j(  (j("(GA (¤( Atj( (G A (¨( Atj( (hG A (°( j- -tG A (´( Atj( (pG A (¸( j- -`G A *!> * !? *!@ *!A *!B *!C * !D *$!E *(!F *,!G *0!H *4!I *8!Z * a[q * @[q * A[q C c[ B b[q D d[q E e[qA  G g[ F f[q H h[q I i[qA  [ k[ Z j[q \ l[q ] m[qA @ Aj! A  A @ (" (¼"(6  (6  (6  ( 6  (6  (6  (6 (A6 (A6 ((AJ@ Aв6 Aвž  -À:  *Ä8„    ì (! Aj Ajl"AJ@ ("#(8 At!A!@  I@  j    k"  I" ü  j!   (ÈAj6È  ((Aj6( #(8„  .8<  =8@  <8D  ;8H  :8L  98P  88T  78X  68\  28`  58d  48h  38l  18p  08t  /8x  J8|  Y8€  X8„  W8ˆ  V8Œ  U8�  T8”  S8˜  R8œ  Q8   P8¤  O8¨  N8¬  M8°  L8´  K8¸  J Y X W V U T S R Q P O N M L K . = < ; : 9 8 7 6 2 5 4 3 1 0 /ã!-!,!+!*!)!(!'!&!%!$!#!"!!! !"8¼  8À  8Ä  !8È  "8Ì  #8Ð  $8Ô  %8Ø  &8Ü  '8à  (8ä  )8è  *8ì  +8ð  ,8ô  -8ø  *,8ü  ($AF:€ *!. *!/  *8   /8¤  .8¨ (!#(!1 (ˆ! (Ü" "(  AAA™ A6 A!@ ( J@@ ( Atj("(p (ðG  (Aj6 ((AvAn" jA€€J r@A!  (Aj6   j! -` *H!6 *L!7 *P!8 *T!9 *X!: *\!;A!A! A!A!A! *ø!< *ô *ð!= *ì!J *è!K *ä *à!L *Ü!M *Ø!N *Ô *Ð!O *Ì!P *È!Q *Ä *À!R *¼!S *x *t!T *p *l *h *d!U *` *\ *X *T!V *P *L *H *D!W *@ *< *ü!XC€@ (²•C€?’!4C€@ (²•C€?’!5A!@ AH@ S 9 6 Aq".” P : 7 Aq"/”’ M ; 8 Aq"0”’ J’!2 Aj  2 Q .” N /”’ K 0”’ <’"3Œ 4”]! Aj 2 3 4”^! Aj  R .” O /”’ L 0”’ =’"2 3Œ 5”]! Aj  2 3 5”^! Aj W .” V /”’ U 0”’ T’Œ X]! Aj!  AF AFr AFr AFr AFrA ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  ( " AJ@ (à"( J@ (   AA™  6 A!@  H@ (à( Atj#(8 Aj!  #:"Ak("AÀF@HAj  AóF@A ( ( j" AJ  A AòF  ALAA Ak("AÀF A AóF AòFr  A! (ˆ! (Ü!A!@ ( J@  ( ( Atj(Atj(((AvAnj! Aj!  A€HA ":œ @ A6„ A6ˆ  Aj6Œ (˜(AvJ@A Aã˜"A6 A6 A6 AÿÿÿÿK@  At"A¦˜"6  6  6  6˜  ž A!@  H@ (˜( AtjA6 Aj!  A!A! (ˆ! (Ü! @ ( J@  ( ( Atj(Atj(((AvAnAÿjAv"A j! Aj!   (ì(AvJ@A Aã˜"A6 A6 A6 AÿÿÿÿK@  At"A¦˜"6  6  6  6ì  žA Aã˜"A6 A6 A6  A¦˜"6  6  6  6ð  žA Aã˜"A6 A6 A6  A¦˜"6  6  6  6ô  ž A!A!@ ( J@ ( ( Atj(Atj(((AvAn"AÿjAv"A !A!@  H@ At" (ì(j 6  (ð(j At6  (ô(j  Aj"At"  H6 Aj!  Aj!   6ø (èA6#:! -œ" E@@ (ü"( H@AA ˜"A Aç˜" A6 A6 A6 A°6A Aã˜" A6 A6 A6  A°6 A6 #(8 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  @ (€(  Ak("AÀF@HAj  AóF@A ( ( j" AJ  A AòF  H@ (€!A8AŸ˜" € ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A!@  J@ (ü( Atj(A6 Aj!  #²" 6  ž  6  ž  :   A· A6 A6 E@A!@  J@ At" (ü(j("(" (è"(" jA l ((AvJ@  jê (( A$lj (( (A$lü (! (! ("AJ@ ( Atj ( Atü  (j6 (ð(j(E@ (à( (ì(j(Atj * 8 Aj!  E@ Aj! Ak("AÀF@HAj  AóF@A ( ( j" AJ  A AòF  !A! (!A ALA AkA  ALmAj " AL" ("jAj m! A6„  6ˆ  6Œ Aj" (�(AvJ@A Aã˜"A6 A6 A6 AÿÿÿÿK@  At"A¦˜" 6  6  6  6�  ž (�! A!@  L@ ( AtjA6 Aj!  (è"(! (!@ AH@A!@  H@A (" A l" Atj*"/ AjAt j*". . /^ AjAt j*"0 . . 0^ / 0]ލAk" AH / . . /] 0 . . 0] / 0^�¨Aj"   HJA AjAt j*"/ AjAt j*". . /^ AjAt j*"0 . . 0^ / 0]C¿’�¨" AH" / . . /] 0 . . 0] / 0^C¿’ލ"  H" JrE@ Aj m! Aj m!@  L@A! @ AL@  j! @ (”( ( Atj("Atj 6 ( Atj Aj6 ( AjAtj" (Aj6 Aj!  Aj!  Aj!  E@A!@  H@ (" Aj"Atj" ( At j(j6 !  ( Atj(" (”(AvJ@A Aã˜"A6 A6 A6  (”(AvAt"  J"AÿÿÿÿK@  At"A¦˜" 6  6  6  6”  ž Aj!  @ AJ@ (" Atj Ak"At j(6  (A6 („ (ˆl" l (˜(AvJ@A Aã˜"A6 A6 A6  l"AÿÿÿÿK@  At"A¦˜"6  6  6  6˜  ž (˜! E@A!@   lH@ ( AtjA6 Aj!  #³" 6  ž   A· A6 A!@  H@A!A! @  J@  ( l jAtj(j! Aj!   ( j6 AJ@  (Aj6 (à( Atj* *ü— 1–!1 Aj!   6 (AJ@ Aв6 Aвž ( AJ@#:" "Ak("AÀF@HAj  AóF@A ( ( j" AJ  A AòF  !A!@  (H@ ( Atj(! AL@  A í#®" 6  ž  6   ALA Ak mAj · A6 Aj!   1Cw¾?”8„ A: ( "( !  (ˆ" ( "AA™  J@ ( AtjA  kAtü  6 (¤"( !  AA™  J@ ( AtjA  kAtü  6 (¨"(   AA™  6 (¬"( ! AÿÿÿK@ At" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž  J@ ( AtjA  kAtü  6 (°"(   AA™  6 (´"(   AA™  6 (¸"(   AA™  6 A!@  H@ At" ( " (j"  (j("(" 6 ( At  Ÿ  (¤" (j" (" 6 ( At  Ÿ  (¨(j (h6 *D!. *@!/ *#,"5!  5B †„B ˆBÿƒ§!A!#,"5!  5B †„BˆB?ƒ§"Aq@   AlAk" k!A AL A€Nr AHr #," Au"Atj5! Aj"AH@  Atj5B †„! Aq¬! A N~BÿÿÿÿB ¬†B} ˆƒ§ Atr" AqAk!A!A!@  H@#} Atj uAq jAt6 Aj! Aj!  A!@  H@ At" #}" j( uAqr! j 6 Aj! Aj!   Av!A!@  H@#} Atj 6 Aj!  A!#G-@ Ak"AH A€NrA#," Au"Atj5! Aj"AH~   Atj5B †„  Aq¬ˆBƒ§ ! A!A!@  H@ #} Atj(AuAjAtj! Aj!  AJ  k!A! AN Aœ”(AvO@  AtA ”j(l! AŒ•(AvO@ AtA�•j(@  AtAjAmj! Aü•(AvO@ AtA€–j(  AlAjAmj  L  Ak!  A " AH #,   #ãì A!@  H@#ã Atj" (!A! A! Aœ”(AvO@ AtA ”j(! AŒ•(AvO@ AtA�•j(A Aü•(AvO@ AtA€–j(E @ ALAA!@ AJ@   k"t A ku ANr!  Aÿq  A tAkq" AuAq! AŒ•(AvO@ AuAq! AuAq! AuAq! AtA�•j( AuAq!@@@@@@ Ak AÌ  At Atr Atr Atr!AÝ  At Atr Atr Atr Atr r!A,  At Atr Atr Atr Atr r!A  At Atr Atr Atr Atr r!A  At Atr Atr Atr Atr r!A @@@@@ Ak Añ  At Atr Atr!A6  At Atr Atr Atr r!A  At Atr Atr Atr r!A  At Atr Atr Atr r!A !AÿA Aq"A€q   ul j sAur 6 Aj!  A!A!@  H@ #µj#¶! #ã" Atj(! AjAtj(!@@@@@@@@@#} Atj(" 6 6 6 Aÿ6 6 6 6 Aÿ6  Aÿ AÀq Aur" A?qj" AÿN! 6 6 6 Aÿ6 6 6 6 Aÿ6  AjAtj(! AjAtj(! 6 6 6 6 6 6 6 6  AjAtj(! AjAtj(!Aÿ AuA?q"A q A@j  A€q Aur" j" AÿJA AN! AuA?q"A q A@j  A€q Aur"j! 6 6 6 6 6 6 6 Aÿ  AÿJA AN6   AjAtj("lAu!  lAu!  AjAtj(" lAu! A F AjAtj(Aÿ ! A F AjAtj(Aÿ ! 6 6 6 6 6 6 6 6  AjAtj(! AjAtj(! AjAtj(! AjAtj(! A F AjAtj(Aÿ ! A F AjAtj(Aÿ ! j j  j jL@ 6 6 6 6 6 6 6 6 jAu6  jAu6 6 6 jAu6 jAu6 6 6  AjAtj(! AjAtj(! AjAtj(! AjAtj(! A F AjAtj(Aÿ ! A F AjAtj(A ! AuA?q"A q@ A@j! AuA?q" A q@ A@j! AuA?q" A q@ A@j! A€q Aur! A€q Aur! A€q Aur!Aÿ A F A€q Aur! AuA?q"A q A@j   j A G! j jAN@ Aÿ  AÿJA AN6 Aÿ AÿJA AN6 Aÿ  AÿJA AN6 Aÿ  AÿJA AN6 Aÿ  j" AÿJA AN6 Aÿ j" AÿJA AN6 Aÿ j" AÿJA AN6 Aÿ  AÿJA AN6 Aÿ j"  jjAu" AÿJA AN6 Aÿ  jjAu" AÿJA AN6 Aÿ  AÿJA AN6 Aÿ  AÿJA AN6 Aÿ  jAu" AÿJA AN6 Aÿ jAu" AÿJA AN6 Aÿ  AÿJA AN6 Aÿ  AÿJA AN6  A  A :A!@ AH@#å At jAtj#¶ Atj(6 Aj!  #} Atj(AuAjAtj! Aj!  #G(" #G("l!#G( ! #G-@A!@  H@ At"#äj#º At"Atj( í 6#² j#º AjAtj( í 6 Aj!  A!@  H@ At"#äj#º j( í 6 Aj!  #ä   #³î #G-@#²   #´î AK@ $æ AH$¼  AkA tj"Av s" Atk"At j"At j"Av s"At j"Av s"Av s"At s"Av s! AqAA Aq!AA AFAA AF!AA Aq !A!@ AH@ At"#^j  vAq" l   Aqu6 Aj!  #j Av6#j A v6#j Av6#j Av6 A!@  J@A!@  J@  l j"At!@ AK ! !A#æAL #¼@ At! At! #j( #^( l #^(ljjA?q! A#j( #^(l #^(ljjA?q" #æAHA#j( #^(l #^(ljjA?q " N Lq#æAHA#j( #^(l #^(ljjA?q " Lq A  L Lq A  L A A " #µj-E@  jAÿ: Aj jA: Aj jAÿ: Aj jAÿ:  At"#³j(!#G-#´ j(  !A! @ AH@ j jAÀ   F" k#å At" jAtj(A�ll#å Aj jAtj(A�l ljA jAu: Aj!  Aj!  Aj!   A!@  H@ At" jAÿ: Aj jA: Aj jAÿ: Aj jAÿ: Aj!    l!#‹!A! @  J@ At" jAÿ: Aj jA: Aj jAÿ: Aj jAÿ: Aj!  A! @@  L  l j" N A! @@  L  l j" N  l jAt"#‹j-!  l jAt" (O@ ( j :#‹ Ajj-! Aj" (O@ ( j :#‹ Ajj-! Aj" (O@ ( j :#‹ Ajj-! Aj" (O@ ( j : Aj!  Aj!  Aj!  Aj!   �|}@  (HH@ Av  (AkJr@ ( jA6 Aj!  A!@  (D( H  ((HA @  (D"( O@ ( Atj("E@ (<"AN@A!@@@@@ (Ak A  A  A  A  A ! (Aq (AFA (AF A ! @  H@| ("( M@ ( j-@ At j" ("(AvO@ ( Atj+   (D"( O@ ( Atj("E@  (("Ak(AvO@  Atj+ !  Atj!@@@@@ (Ak  ›" Dð¿  Dà¿  eª! Av  (AkJr@ ( j 6  DeA ›" Dð¿  Dà¿  e« ! Av  (AkJr@ ( j 6  Av  (AkJr@ ( j Db6  ¶! AHA @ Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ ! Av  (AkJr@ ( j 8 Aj!  Aj!  ¿#B"E@AAÙ˜"A6 A6 A6 A6 Aš"$B !A!@ ( J@ ( Atj(F@ Aj!  "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ¦ ~#B" E@ @ ( J@@ ( Atj("Ak("A„F@ (!A!  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A A @ ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (! E AGq ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A A @ ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (! #."E@AØAȘ"” $.  -0A @  )8B|78  )@ |7@   )B|7  ) |7 ) )|" ) U@  7 AA�˜"A6 B7 A!@ ("( J@  ( O@ ( Atj("E@ @  A ô" @  @ A  ô"@   Aj!  A 6  7 (,"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 ~ Ak("A�F@ )  B AÖF  AÑF@ )  ) |7 A!A (0"( "E ALr  (!@  H@  Atj( F@   Aj!  A AH@ (0"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  AÌF@#”AG #�"E#€"Er@AA‡˜"A6 A6 A6 A6 Aš!AAˆ˜"A6 A6 A6 A6 Aš! $€ $� ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  Aj!  G#¿"E@A0Aʘ"B7 B7 B7 B7 B7 A� 6( $¿ ! E$”#ùE@AA̘"$ù ñ ý} ("  Ak(AÍFA E@ A "E@A ("@  -d@ó " ) B|7 Aðæ6( Aðæž (( !AA¦˜ At"AüÿÿÿK@ A¦˜!A A˜"A6 A6 A6 Ak(" I@  6  6  6 (!@  H@   ( HA }  ( O@ ( Atj"*! *  ("( O@ ( A8lj"*! * ! At"Av  (AkJr@ ( j 8 AtAj"Av  (AkJr@ ( j 8 Aj!   Ak(A Aõ˜"A6 A6 A: A Ak( AµA "6  ž À} ("E@AA¦˜AA¦˜ (( !AA¦˜ At"AüÿÿÿK@ A¦˜!A A˜"A6 A6 A6 Ak(" I@ 6 6 6@  H  ( HA @  ( O@ At" (j*! Av  (AkJr@ ( j 8  ( O@ At" (j*! Aj"Av  (AkJr@ ( j 8 Aj!   Ë ("  Ak(AÍFA E@ A "E@A ("@  (E@A -d@ó " ) B|7 AÐþ6( AÐþž  ö "Ak(A Aõ˜"A6 A6 A: A Ak( AµA "6  ž ô (`!@ ( " L@ Aj" (AvK@  AA™ ( Atj"A6  At AŸ  6   ( O@ ( Atj(" ( FA  Ak( (FA @  A A˜"A6 A6 A6   Ak(" I@ 6 6 6 œ ¤A Akq A€ H@A  …"( (kA (Ak(G @  (†A "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ( Ñ~AA¦˜!AA¡˜" 6  ž  6 A6 A6 ( (6 ( (6 ( ( 6 ( (6 ( (6 ( (6 ( ( 6A!@ ( NE@ ( Atj("@  5|! Aj!   Ã~ (Ü ( ANA  (AFA (A F A  -iA  -hA  (ÌA A -˜ A (´ A (AF (¤! (x!@ ( J@ ( Atj)"BY  4 SA  §" ( O@ ( Atj("E@ (¬A @A  Aj!  A A E@ ( " (A @A (¤ (AFA @A A ¶ } (t! *ä!@ ( J@ ( Atj(" C^A ( "  -ÈA E A (," ( A E   * *" ” *" ”’ * " ”’!A *<}} *@ *< *8 *4 *0 *  *$" ” *(" ”’ *," ”’" *" ” *" ”’ *" ”’" \    \   — "  \    \   — ‘”"C^E  *¸! *´! ( " *! *! *° *"“!A ($AF} *Ä! *À!  *¼“"  \    \   — " \}C C— " ”}  “"  “" \    \   — " \}C C— " ”’}  “"  “" \    \   — " \}C C— " ”’‘"C^rE A (  (¶"C^E  ( ! @ AJ@A (,"  ( JA A ( AkAtj((( ((( G  ("  (LA @ ( AkAtj(* ” • ]  Ak!  A A 6° Aj!  � @}A ("C CAM"F ("Gl!D ("H Fl!E ( "C* C* C* C* C* C* C* C* C* »!!!!!! ! ! ! ! !!!!!"! C G³ H³•µ!#!"!!! !!!!!!!!!!!"!$  8  "%8  "&8  "'8  "(8  ")8  "*8  "+8  ",8  "-8$  ".8(  "/8,  "080  "184  "288  "38<  $8@  "48D  "58H  "68L  "78P  "88T  "98X  ":8\  ";8`  "<8d  "=8h  ">8l  "?8p  !"@8t  ""A8x  #"B8|  $ 4 5 6 7 8 9 : ; < = > ? @ A B  % & ' ( ) * + , - . / 0 1 2 3ã!!!!!! ! ! ! ! !!!!!"8€  8„  8ˆ  8Œ  8�  8”  8˜  8œ  8   8¤  8¨  8¬  8°  8´  8¸  8¼C€?C C($AF! C*!$ C*!%  C*8À  %8Ä  $8È  8Ì  D³"8Ð  E³"$8Ô C€? •8Ø C€? $•8Ü *0! *,!$ *(!%  *$8à  %8ä  $8è  8ì *@! *” *CY7?”’ * C˜Ý“=”’”8  AjAtj *48A (pAF"! AF@  AjAtjC€? *$" ” *(" ”’ *," ”’‘•" “C[ C^q@  ”  ”  ”  CCC€¿ !!"8  AjAtj 8  AjAtj 8  AjAtj *8‹CÍ̳B–#”þ 8  AjAtjC8  AjAtjC8  AjAtjC8  AjAtjC€¿8 @ E@ ( "AH@ ( Atj 6  ( Aj6 B ¬†" „  AH!  „! Aj! E@  „  AH!  „! Aj!  E@   ˆ Aj! Aj!   6l @A!@ H@ ( ( Atj(Atj("( (pAGA E@    ˆ Aj! Aj!   6L  6h  7X  7`  6€  7p  7x  :„#A j$  Š} * ! *! (P" A l" Atj *8 AjAtj 8 AjAtj 8 AjAtj *0CG€?”C·Ñ8’" ”8 (AF@ AjAtjC€? *$" ” *(" ”’ *," ”’‘•" “C[ C^q@  ”  ”  ”  CCC€¿ ! ! "8 AjAtj 8 AjAtj 8 AjAtj *8‹"CÍ̳B]C€? #”þ “C½7†5]A }CÀ #”Coƒ:’þ 8 AjAtj *8‹"CÍ̳B]C€? #”þ “C½7†5]A }C #”Coƒ:’ý 8 AjAtjC8 AjAtjC8 AjAtjC8 AjAtjCÀ8 AjAtjC8 A jAtj *‹ *CгY>” *CY7?”’ * C˜Ý“=”’”" ”8 A jAtjC€? *0" ”•8 A jAtj *48 (H Atj 6 Š~ @  (l6  (€6  )p7  )x7  (L6  (h6  )X7  )`7 @A! )!@ BR@ z§!  B}ƒ! E@ (˜( ( Atj(Atj(*|Coƒ:^E B ¬†!  „  AH!  „! Aj!   6  7  7 AA (" ANk6 Ô}  (P! (H! (! ( !    ‰ (!$ (! -È@ *°" *¼"’C?”! *´" *À"’C?”! *¸" *Ä"’C?”!  “" ”  “" ”’  “" ”’‘C?”!@  $NE@@  E@ (˜( (  Atj(Atj(Atj(*|Coƒ:^EA C!  A l"AjAtj*"  Atj*" ]}  “ “C ^ " ”"] C!   AjAtj*" ]}  “ “C ^ " ”’" ^ C!   AjAtj*" ]}  “  “C  ^ " ”’" ^  AjAtj*"CÀ\  AjAtj*!  AjAtj*!  AjAtj*!   AjAtj*! A CÀ[ A  “" ”  “" ”’  “" ”’" Œ]  ” ”’ ”’ ”“" C]}C ‘ ” ”“ ^E EA !Aj"! L@  !AkAt"j 6  j 8  E ! AjF@    Œ !  A jAtj*!  A jAtj*!   A jAtj*”" C€?]} C ×#< C ×#<^! C€? ”“" ”" ”” C€?[}C€? • C@[}C€? ”• C[}C€? Œ‰ ”"C C^C " Atj*"]A  [  Atj(   Atj(Atj(JA  At"j 6  j 8A! ""*! A!@  LE@@ " At"#j*" ^  [   #j(Atj(   Atj(Atj(HA ! ! Aj!  ! Aj!   *@ * >’CCCCC€? * 4“•"? ?’CCCCC€? < +’C€’•"<ŒC 4 *’Œ >” * 4’Œ ?” *H!? *L!< *P!H *T!I @ =•!@ A =•!A ³ =•!* *X!J *\!K *`!L *d!M *!N (("( " Aj"AªÕªK@ Aàl" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Aàlj" N8  +8  38  68  :8  /8  78  88  48  98$  ;8(  >8,  ?80  <84  H88  I8<  @8@  A8D  *8H  *8L  J8P  K8T  L8X  M8\  6 Aj!  ((! *D!5 *H!+ *L"* *\}C *C— !3 *P"*C]@C!* (! ( "Aj"AÿÿÿK@ At" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" 58  +8  38 C€? * *C€?^8  F8  .8  -8  ,8  E8  D8$  C8(  B8,  60  64  68 A6<  6 At" (j  ((j(6 Aj!  �} (  AAA™ A6 @ ANE@  ("( H@  ( O@  ( Atj*C—’! Aj!  (AF}C€? * C— !A!@ ANE@  ("( H}  ( O@ ( Atj*C—C !   -}  •C C^  ”¡ Aj!   ñ  ~ A: A: A: A: A6 ("(  AAA™ A6 A!@ AH@ ( C¡ Aj!  A� 6 A: A: A: A: A: A6 A6 A6 A6$ A6( (AG@  A (œ"(p"-E A (AF *C^A E  #´™ !A!@ ( J@ ( Atj*C^@A  Aj!  A ! (t-! (x-! ( " AqA (|-! AqA (€-A! (t! (x!@ ( J@@ ( Atj("(Ì (ðG (¬AF   ( HA  ( j-A A!@ (¤( J@ (œAHA  (¤" ( H ( Atj)BYA @A (¤( Atj)"BY  4 SA  ( §Atj(" *LC^ (¬A A E  Aj!  Aj!  A AJA ! AqAGA (˜"-A -  *C^A " r r r rrE@  E@ AЊ6 AЊž   :  :  : A A A  :  :  :  : A A  : A  :A (" AM" (l! ( l! -@ AA A    I" AMgk" AN6 @  A¸Að (œ"-OA -"!A  AM E  A AjAv" AMA AjAv" AM 6   A AjAv" AMA AjAv" AM A  AM 6 @ A AjAv" AM6$ A AjAv" AM6( @ (p (™ A AA (AjAv" AM"A (AjAv" AM" I" AMgk!A!@ AH@ N@ ( C¡ ("( O@ ( Atj*C^@  Aj6 Aj!  (E@ A6  î C8 C8 C8 C8 C8 C8 C8 C8 A6 A6$ A6( A6, C80 C84 C88 C8< C8@ C8D C8H C8L C8P C8T C8X C8\ C8` C8d C8h C8l C8p C8t C8x C8| C8€ C8„ C8ˆ C8Œ C8� C8” C8˜ C8œ C€?8  C8¤ C8¨ C8¬ C8° C€?8´ C8¸ C8¼ C8À C8Ä C€?8È C8Ì C8Ð C8Ô C8Ø C€?8Ü C€?8à C8ä C8è C8ì C8ð C€?8ô C8ø C8ü C8€ C8„ C€?8ˆ C8Œ C8� C8” C8˜ C€?8œ ¦} › AA (AjAv" AM Ak" v" AM³"AA (AjAv" AM v" AM³"C€? •C€? •! !!""8  "8  " 8  " 8 A AL @  8  8  8  8 AA (AjAv" AM Ak"Akv" AM³"AA (AjAv" AM Akv" AM³"C€? •C€? •! !!"8  8  8  8 A6 A6$ A6( A6, (œ"*T! (p"*! *! *X!  80  84  88  8<  Û }  A6 A6 A6 A6 A6 A6$ A6( (," (  AAA™ A6 (ü"$-E@ ( " *! *! *!#¹ (³A (" AM³•µ!!!!! ! ! ! ! !!!!!!"           ( ´!!!!! ! ! ! ! !!!!!!"          ã!!!!! ! ! ! ! !!!!!!"          CCAÔ $*‹Coƒ:`@ (A6 (0C8A!% (€!&#§" (  AAA™ A6 A! @ &( J@@ &( Atj("-äA (è (ðG -´ *œ! * ! *¤! *¨! *¬! *°!A!!#¹(!#@ !AH@ # !At""Atj*"   C`”"‹ # "AjAtj*"   C`”"‹’ # "AjAtj*"   C`”"‹’ # "AjAtj*"‹’C·Ñ¸”  ’ ’ ’^@A  !Aj!!  A A E -´"! *œ" “  *¨"“C  ]  ^" ” * " “  *¬"“C  ]  ^" ”’ *¤" “  *°"“C  ]  ^" ”’‘ $*$^A #§"( "#Aj!! ! (AvK@  !AA™ ( #Atj 6  !6 Aj!  #§( ""6A %k"$ "H@ "#“( J@#“"(  "AA™ "6 A!@ "H@#“( jA: Aj!  @ $ 'J@A! A!!C!A!@ "H@#“( j-E@ &(#§( Atj(Atj("-´E"# !F -´} *œ" “  *¨"“C  ^  ^" ” * " “  *¬"“C  ^  ^" ”’ *¤" “  *°"“C  ^  ^" ”’‘C " ]q !E #q AHrr@ #!! ! ! Aj!  #“( jA: 'Aj!'   " $k6 A! @ "H@#§( Atj(!@ " $J#“( j-A E@ (,"( "#Aj!! ! (AvK@ !AA™ ( #Atj 6 !6  %At" (j 6 (0 j &( Atj("-´} *œ" “  *¨"“C  ]  ^" ” * " “  *¬"“C  ]  ^" ”’ *¤" “  *°"“C  ]  ^" ”’‘C 8 %Aj!% Aj!   %6 …} *@ *D *H *L *P *T *X *\ *` *d *h *l *p *t *x *|Aå!!!!!!! ! ! ! ! !!!!"! (¬! (¨! (¤! ( !  ·  8à  8ä  8è  8ì  8ð  8ô  8ø  8ü  8€  8„  8ˆ  8Œ  8�  8”  8˜  8œ  6   6¤  A}qAA r6¨  6¬ *´! *¸!  *°8°  8´  8¸  8¼  ‹  ·  8€  8„  8ˆ  8Œ  8�  8”  8˜  8œ  8   8¤  8¨  8¬  8°  8´  8¸  8¼  Û|  ( ((ÄA " ( E@  ! @  ( (ð  ($" (( (D( GA @A AŘ"A6 A6 A6  (D( Û"6$ ž ! (! @  (D( H  ((HA @@ (D( Atj("(A FA ( (¡ "AHA  (((N @  ("(O@ ( jA:  A!@ AH@ At j! | ("(" ( M@ ( j-@ At j" ("(AvO@ ( Atj+   (D"( O@ ( Atj("E@  (("Ak(AvO@  Atj+ ! ("(Av M@ ( Atj 9 Aj!   ("(O@ ( jA: Aj!    (ð ( "Ak(!A (H" AL! ( "-@ ­   "­T@ 5 ­T@ (A  \ ("6 ž ((6 ( Aj6 P@ (D"( J@ ( Atj("( F ( ÄA @  Aj!  A ‘A A‘˜"A6 A6 AAA’A¤6  6  6AA’˜"A6 A6 A6 A6 Aš!A!@ ( J@A A�˜""A6 A6 A6 ( O@ ( Atj("E@ (! "( O@ ( Atj("E@ (! ( O@ ( Atj("E@ (!  6  6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6  ž  ŸA4A•˜"È  6  ž Aн6 Aнž  6  ž  6  žA A�˜"A6 A6 A6 A6 A6AA¦˜!AA–˜" 6  ž  6 A6 A6 ( 6  6  žAA¦˜!AA—˜" 6 ž 6 A6 A6  6  žAA¦˜!AA˜˜" 6 ž 6 A6 A6 ( 6  6  ž A6 A6$ A6, A60A A™˜"A6 AAA˜A¤6 A:  ÷ ¼"AvA€€q! Aÿÿÿq! AvAÿq"AÿF@ A€ørA€A rAÿÿq Aðk"AN@ A€ør AL@ AvH@  A€€€r"A k"v! Aj  A tAkq"A Akt"KA Aq  Fq  rAÿÿq A t A vr! Aj  Aÿ?q"A€ KA Aq A€ Fq  rAÿÿq ¼ ( (l! (!AA¦˜ At"AüÿÿÿK@ A¦˜""Ak(!A Aߘ" 6  ž  6  6A!@ AtH@ (O@ ( j-! ( M@ ( j : Aj!   Î}  l! E@A!@  AtH@ ( j ( j-: Aj!   A!#òE@AA�˜A€A�˜!AA�˜A€A�˜!@ A€H@ ²CC•" Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ ¤ !  Ak(AvO@  Atj ; ¤ !  Ak(AvO@  Atj ; Aj!  $ò $Ð #ò"E@ #Ð"E@ A A˜"A6 A6 A6 (""Ak(" ( k"k k At" A€€€€xF"I  Kr@  6   j6  6@  H@ At" (O@ ( j-" Ak(AvO@  Atj/! At"Av  (AkJr@ ( j ; AtAj" (O@ ( j-" Ak(AvO@  Atj/! AtAj"Av  (AkJr@ ( j ; AtAj" (O@ ( j-" Ak(AvO@  Atj/! AtAj"Av  (AkJr@ ( j ; AtAj" (O@ ( j-" Ak(AvO@  Atj/! AtAj"Av  (AkJr@ ( j ; Aj!  Ì#Ñ"E@í !AAÔ˜"A: A: A: A: A: A: A6 A6 A6 A6 A6 -: -: -: -: -: -: (6 (6 ( 6 ($6 ( 6A -E A -A - E A (AF ( A€€FA  (A€FA  (AFA " (A€€FA A  (A€€FA  -A  -A A - E A ! - -A - A  (AFA  ( A€€FA  (A€FA  (AFA  (A€€FA  -A  -A A - E$¾ AF$½ AF -!AA³˜"A: A: A: A: : A: A: A:  -! -! -! -!AA³˜"A: A: A: A: : : : : "$Ñ ¨ ("E@ -  A AF AFr AFr A AF AFr A AF AFr AFr A "AF@ - -A  AF@ - -A  AF@ - -A  A E@A §  (! (! ("E#¾ErA A E A AF A AF A pA A E A AF A AF A p E ÛAA¦˜!AAõ˜" 6  ž  6 A6 A6 !@ ( J@ ( Atj(Þ ! ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A Aö˜"A6 A6 A6 A6 A6 A: A6 A6 ( E@ (("E@  (6 ( E@ (("E@  (6  ( 6 A6 A6 ( E@ (("E@  ( 6 A6 A:AAø˜"A6 A6 A6 A6 A6 A6 A6 ·"(E@  A!@ ( NE@ ( Atj(!A!@  ( NE@ ( Atj("( (  AAAª ! ¥ ! ( A(  Ak(: Aj!  Aj!   ²#ž"E@A(–"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ $ž   At 6    6  6  6  6 A6 A6  6  6 A6$  bAAŽ˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 8A A�˜"A6 A6 A6  6 A6 Až  OA(A”˜"É  (6  (6  -:  ( 6  *8 C8  ÜA4A•˜" È 6 ž 6 ž 6 ž 6 ž 6 ž 6 ž 6 ž A6 AA 6 A6$ A6( ­ "6, ž 60A A™˜"A6 AAA˜A¤6 A:  íA4A•˜"È  6  ž  6  ž @  6  ž  6  ž A6 AA¦˜!AA–˜" 6 ž 6 A6 A6  6  ž  6  ž  6  ž A6 A6 A6$ A6(AAç˜"A6 A: A6 A6 C8 A: A6 A6 CÀ?8 A6  ­ "6,  ž A60A A™˜"A6 AAA˜A¤6 A:  ¢A4A•˜"È  6  ž  6  ž  6  ž  6  žAA¦˜!AA–˜" 6  ž  6 A6 A6 (A A�˜"A6 A6 A6 6 A6 Až 6  6  žAA¦˜!AA—˜" 6 ž 6 A6 A6  6  žAA¦˜!AA˜˜" 6 ž 6 A6 A6 ( 6  6  ž A6 A6$ A6, A60A A™˜"A6 AAA˜A¤6 A:  ŸA4A•˜"È  6  ž A�ù6 A�ùž  6  ž  6  žA A�˜"A6 A6 A6 A6 A6AA¦˜!AA–˜" 6  ž  6 A6 A6 ( 6  6  žAA¦˜!AA—˜" 6 ž 6 A6 A6  6  žAA¦˜!AA˜˜" 6 ž 6 A6 A6 ( 6  6  ž A6 A6$ A6, A60A A™˜"A6 AAA˜A¤6 A:  ­A4A•˜"È  6  ž AÐü6 AÐüž  6  ž  6  žA A�˜"A6 A6 A6 6 6 žAA¦˜!AA–˜" 6  ž  6 A6 A6 ( 6  6  žAA¦˜!AA—˜" 6 ž 6 A6 A6  6  žAA¦˜!AA˜˜" 6 ž 6 A6 A6 ( 6  6  ž A6 A6$  6,  ž  60A A™˜"A6 AAA˜A¤6 A:  ê}AA¦˜ At"AüÿÿÿK@ A¦˜!A A˜"A6 A6 A6 Ak(" I@  6  6  6@  J@ At! Al" (AvO@ ( Atj*" \A C—CàG–¤ ! Av  (AkJr@ ( j ; Aj" (AvO@ Aj! ( Atj*" \A C—CàG–¤ ! Av  (AkJr@ ( j ; Aj" (AvO@ Aj! ( Atj*" \A C—CàG–¤ ! Av  (AkJr@ ( j ; Aj"Av  (AkJr@ ( jA€ø; Aj!   ¯A Aö˜"A6 A6 A6 A6 A6 A: A6 A6 ( E@ (("E@  (6 "( E@ (("E@  (6 A6 A6 A6  ( 6 A6 A:AAø˜"A6 A6 A6 A6 A6 A6 A6 ·"(E@  @  ( NE@ ( Atj(!A!@ AH@ ("   A AtAª ! ("( O@ ( Atj("@  (" l³ ! ( A(  Ak(: Aj!  Aj!   ŠA Aö˜"A6 A6 A6 A6 A6 A: A6 A6  (6  (6 A6 A6 A6 A:AAø˜"A6 A6 A6 A6 A6 A6 A6  ·"(E@  (" (AAA AtAª ! ( ( (l³ ! ( A( Ak(:  ÃA Aö˜"A6 A6 A6 A6 A6 A: A6 A6  6  6 A6 A6 A: A6AAø˜"A6 A6 A6 A6 A6 A6 A6  ·"(E@A AA÷˜"A6 A6 A6 A6 A6 A6  ¸"(E@ ("@ !#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6A AAô˜"A6 A6 A6 A6  6  6  6  6  ŸA4A•˜"È  6  ž AðÞ6 AðÞž  6  ž  6  žA A�˜"A6 A6 A6 A6 A6AA¦˜!AA–˜" 6  ž  6 A6 A6 ( 6  6  žAA¦˜!AA—˜" 6 ž 6 A6 A6  6  žAA¦˜!AA˜˜" 6 ž 6 A6 A6 ( 6  6  ž A6 A6$ A6, A60A A™˜"A6 AAA˜A¤6 A:  ÊA Aö˜"A6 A6 A6 A6 A6 A: A6 A6  6  6  ( 6 A6 A6 A6 A6 A:AAø˜"A6 A6 A6 A6 A6 A6 A6  ·"(E@  A!@ ( J@ A A AtAª !  ( O@ ( Atj("@ ( ( (l³ ! ( A(  Ak(: Aj!   –A4A•˜"È  6  ž AШ6  6  ž  6  žA A�˜"A6 A6 A6 6 A6AA¦˜!AA–˜" 6  ž  6 A6 A6 ( 6  6  žAA¦˜!AA—˜" 6 ž 6 A6 A6  6  žAA¦˜!AA˜˜" 6 ž 6 A6 A6 ( 6  6  ž A6 A6$ A6, A60A A™˜"A6 AAA˜A¤6 A:  ®A Aö˜"A6 A6 A6 A6 A6 A: A6 A6  6  6  6  6  6  :AAø˜"A6 A6 A6 A6 A6 A6 A6 · ™AA‰˜"A6 A6 A6 A6 Aš!@ AI@AA÷˜"A6 A6 A6 A6 A6 A6  6 A6 ¸"(E@AA¦˜!AA‰˜" 6 ž 6 A6 A6  ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   Ë|}~ (AFA (A F @ (ø"A6 A6 A6$ A6( A6” "(t! @ ( J@ ( Atj("A6Ø A6Ü A6à A6ä Aj!  (@  -„A  (ÜAGA ! (L"AJ ( lA€ÀNA  (ˆ" "(   (t"( ""AA™  6 (ð!Dð!Dð!Dð!Dðÿ!Dðÿ!Dðÿ!A!@  H@ At" (j(! (jA6@ (  (Ì GA A -È E *°"» *¼»" Dà?¢" *´»" *À»" Dà?¢"  *¸»" *Ä»" Dà?¢"   »¡   ¡   ¡ " ¡Db ( AtjA6 Aj!    d!    c!    d!    c!    d!    c! Aj!  A A H   ¡"!  ¡""  ¡""c@ ! ! !  c@ ! ! !  d@ ! ! !  ·D°?¢"£" c@  ¢" £Ÿ" c@|  ¢ £"   ½"%B ˆ§Aÿÿÿÿq"A€€ÀÿO  A€€ÀI  DPC¢½"%B ˆ§Aÿÿÿÿq"E  AnA“ñýËj AnA“ñýÔj ­B † %B€€€€€€€€€ƒ„¿" ¢  £¢!    DÂÖIJ`ñù?¢D $ð’à(þ¿ ¢D’æaæþ?   ¢ ¢ D×íäÔ°Â?¢DÙQç¾ËDè¿ ¢ ¢½B€€€€|B€€€€|ƒ¿" ¢£!    ¡     £¢  ! A DdE  (Œ" (   £œDð? Dp@¤ª"  £œDð? Dp@¤ª"  £œDð? Dp@¤ª"ll" Aj"AA™ 6 A!@  L@ ( AtjA6 Aj!  A!@  H@@ At" (j"(AH  (j("*Ä! *¼"!» *°""»¡" ¢ *À"#» *´"$»¡" ¢  » *¸"»¡" ¢ ŸDà?¢ d@ A6  ( Atj  Ak » » Dà?¢ ¡ £œª" NA AN l Ak $» #» Dà?¢ ¡ £œª" NA ANjl Ak "» !» Dà?¢ ¡ £œª" NA ANj"6 ( AjAtj" (Aj6 Aj! Aj!  A E A!@  H@ (" Aj"Atj" ( At j(j6 !  (�""(  AA™ 6 A!@  H@ ( Atj("AN@ ( ( Atj("Atj 6 ( Atj Aj6 Aj!  @ AJ@ (" Atj Ak" At j(6  (A6A A !#æ!#±" 6  ž  6  ž  :  :  E:   "6  ž A6#:""Ak("AÀF@HAj  AóF@A ( ( j" AJ  A AòF  !@#»( H@#»! AÐAˆ˜"è ( "Aj" (AvK@ AA™ ( Atj" 6 At Ÿ 6  A:  ( "ALA AkA mAj "æ   ( A ·A!@  H@  ( (( Atj("(j6  ( (j6  ($ (j6$ ( " ((J@  6(  (” (j6” Aj!  @ (Œ( Ak! A:  ALA AkAmAj "æ   A·A!@  J@  ( (( Atj("(j6  ( (j6  ($ (j6$ ( " ((J@  6(  (” (j6” Aj!  A6 A6 #æ"6  ž  (t!A!@ ( J@ ( Atj("A6Ø A6Ü A6à A6ä Aj!  Û (AkAH@ (A6 (AkAH@ (A6 (AkAH@ ( 6 (AkA H@ ( 6 (AkAH@ (A  AM6 (AkAH@ ( AG6 (AkAH@ ( AG6 (AkAH@ ( AG6 ½A Aö˜"A6 A6 A6 A6 A6 A: A6 A6  (6  (6 A6 A6 A6 A:AAø˜"A6 A6 A6 A6 A6 A6 A6  ·" ¿  ‡ ( (AAAAAª ! ("( (kA (Ak( ( (lAtF @ ( A( (" Ak(: ¥ ! ( A(  Ak(: ®A Aö˜"A6 A6 A6 A6 A6 A: A6 A6  6  6 A6 A6 A: A6AAø˜"A6 A6 A6 A6 A6 A6 A6 · îAA‡˜" A6 AAAˆA¤6 AAA‰A¤6 AAAŠA¤6 AA¦˜!AA‹˜" 6 ž 6 A6 A6 (AA„˜"A6 A6 A6 A6 A6 6 A6 A6 6 (AA„˜"A6 A6 A6 A6 A6 6 A6 A6 6 (AA„˜"A6 A6 A6 A6 A6 6 A6 A6 6 (AA„˜"A6 A6 A6 A6 A6 6 A6 A6 6 (AA„˜"A6 A6 A6 A6 A6 6 A6 A6 6 AA¦˜!AAŒ˜" 6  ž  6 A6 A6 (AA…˜"A6 A6 A6 6 6 (AA…˜"A6 A6 A6 6 6 AA¦˜!AA�˜" 6  ž  6 A6 A6 (AA†˜"A6 A6 A6 6 6 À šAA‡˜"A6 AAAˆA¤6 AAA‰A¤6 AAAŠA¤6  AA¦˜!AA‹˜" 6 ž 6 A6 A6 AA¦˜!AAŒ˜" 6 ž 6 A6 A6 (AA…˜"A6 A6 (! A6  6 6 (AA…˜"A6 A6 (! A6  6 6 (AA…˜"A6 A6 (! A6  6 6 (AA…˜"A6 A6 (! A6  6 6 AA¦˜!AA�˜" 6 ž 6 A6 A6 (AA†˜"A6 A6 (! A6  6 6 (AA†˜"A6 A6 ( ! A6  6 6 (AA†˜"A6 A6 (! A6  6 6 (AA†˜"A6 A6 (! A6  6 6 À ‹  ( F@AA›˜"A6 A6 A6 A:  6  6  6  : ! "( "Aj!  (AvK@ AA™ ( Atj" 6  At  Ÿ  6  ( O@ ( Atj("E@   ( O@ ( Atj("E@ 6 6 ž 6 : pA Aö˜"A6 A6 A6 A6 A6 A: A6 A6  6  6  6  6 A: A6  ¿*} (Ð"( ! ( AH@ ( AÐljA A°lü A6 (˜! (ø" (!@ H@ (Ð! ( ( Atj("Atj(!   ( " ( H ( Atj(A A ! * *CÛI@”""”!6 * "”!7 * "”!8 (}C€? *0C·Ñ8—•C !9}C€? *$"5"" "” *("# #”’ *,"4 4”’‘•"" "“C[ "C^q@ 5 "”!5 # "”!# 4 "”  C!#C!5C€¿ !" 6 8 7C * * * 9 5 # " *4 *8#”þ *< *C ( AN" (pAF A ! !!!!3!2!1!0!/!.!-!,!+!*!)!(!'!&!%"$!" ( "Aj" AÌ™³K@ AÐl" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( AÐlj" "8  %8  &8  '8  (8  )8  *8  +8  ,8  -8$  .8(  /8,  080  184  288  38<  6@  6D  6H  6L 6 Aj!  ( !  -A  ("A AJA ! (!A! A!@ AH  Jq@  Atj(Aÿq Attr! Aj!  (! A!A!@ AH  Hq@  Atj(Aÿq AkAttr! Aj!   6À  6Ä  6È  6Ì (œ"- AG"Ar  - ! (P! *X!" *T!# @ -@ (t" * !: *!; Ar! -@A!C€?!"C€?!# Ar! Ar  -!  6  6  6 A6 *!4 *!5 *!6  *8  68  58  48  #8  "8$  ;8(  :8,}C€? *D"" "” *H"5 5”’ *L"6 6”’‘•"4 4“C[ 4C^q@ " 4”!# 5 4”!" 6 4”  C!"C!#C€? !4  #80  "84  488 C8< *!" *!#  *8@  #8D  "8H C€?8L *(!" *$!#  * 8P  #8T  "8X C€?8\ *4!" *0!#  *,8`  #8d  "8h C€?8l *@!" * A€‚A‚> AÀ‚ƒ ("Ak(Av AAŠ˜""AAAýA¤6 AAA¤A¤6@@ Að‚A‚§! ("Ak(Av  E ("( "Aj!  (AvK@ AA™ ( Atj 6 6  A!@ (( J@ AF@ A°ƒ„! ("Ak(Av A! ("( "Aj!  (AvK@  AA™ ( Atj  vAq6  6 Aj! Aj!  AAȘ"A6 A6 A6 A6 Aì!AAȘ"A6 A6 A6 A6 Aì!AA„˜"A6 A6 A6 A6 Aš!AAȘ"A6 A6 A6 A6 Aì!AAœ˜"A6 A6 A6 A6 Aš!@ (" H@ A6 A�„A‚§! ("Ak(Av A! EA AF A A5F A A³F A AµF A A¶F AþFr A A½F A Î AN A@@@@@@@@@ AºG@ A±F  AÁF  AªF  A°F  AõF  A¼F  A¹F  A¬F  A×F  AÊF  AËF  A‹F  A”F  AµF  A¶F  A A  A  A  A  A  A  A  A  A AN A " AFq@A! E AFq@A! E AFq@A! E AFq@A! AF@AAþ˜""A� 6 C8 C8 AAAA¤6 A6 A6 ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ( "Aj" (AvK@  AA™ ( AtjBÿÿÿÿ7  6 ( "Aj" (AvK@  AA™ ( AtjBÿÿÿÿ7  6 ! A!A!A!A!B! Bÿÿÿÿ!B!A� ! AF@AAƒ˜"A� 6 AAA„A¤6 AAA…A¤6 A6 A: AF@AAÿ˜"A� 6 A6 A6 AAAA¤6 Î 6 AF@AA�˜"A� 6 AAA‚A¤6 AF@A A€˜"A6 A6 D9 A: A6 A� 6 A6 @@@@@@@@@ AºG@ A±F  AÁF  AªF  A°F  AõF  A¼F  A¹F  A¬F  A×F  AÊF  AËF  A‹F  A”F  AµF  A¶F  A A  A  A  A  A  A  A  A  A 6 A6 (AF@ A€€€x6 (AF@ A6 A� !@@ (! A6 AЄA‚§! ("Ak(Av@ A°… A ªÂA€… A «ÂA �Â!  E A! A AÿÿK Ȧ(AvAk!@  N@  jAu"Ȧ(AvO@ AtAЇj/" F@ A¬’(O@ A°’j-  K@ Aj!  Ak!  A "AH@A!@ ("( J@  ( O@ ( Atj(F@  ("( O@ ( Atj(  Aj!  A ! AH@Aà† A ªÂA°†Â A ªÂAà… A «ÂA �Â!   6  6  6A�‡A°‡ AF! E@   † ("Ak(Av   AFA AFA @   …"6  ž AFA  AF AFrA @  „¾!! AF@  !8  !8  E" A AìFA @  ( Ak  A‚í A AÇFA @  ( Ak  A‚í A7F AFq AFq@  …! AFA A­FA @   …"6  ž A AÕFA @   A‚BQ: AFA A­FA @  …"6 ž A AµFA @  A‚!  A A¾FA @  A‚! AFA AFA @   …"6  ž A A¶FA @  A‚! A AªFA @ A  A‚"§ BÿÿÿÿZ6 AFA A¿FA @   „¾»9 AFA AÑFA @  (( ("k¬P@   �A   (Aj6A   (" (O@ ( j-AGA : AFA A«FA @   „6 AFA A±FA @   …"6  ž A A°FA @   A‚º9 A AÁFA @ A  A‚"§ BÿÿÿÿZ6 AÂF AFq AFq@  …!   † ("Ak(AvE   AF AGq@ ( "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  @ ( "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ! A @ (AF@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "Aj" (AvK@  AA™ ( Atj 7  6 A·F@A §  ( "¬Z"AN@  O@ ( Atj("E@ 6 ž ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  @A §  ( "4 Z"AN@  ( O@ ( Atj("E@ ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 !  A @ ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  AF@AA˜"A6 A6 A6 A6 Aš! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A¶F! AF AGq@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A!@ ("( J@ ( O@ ( Atj("E@ ( O@ A ( Atj)"§  ( 4 Z6 ( O@ A ( Atj)"§  ( 4 Z6 Aj!  A!@ ( J@ ( O@ ( Atj(A ( Atj)"§  ( 4 Z6 Aj!  A!@ ( "( J@ " ( O@ ( Atj("@ AA (( AL6 A!@ ("( J@ ( M@ ( Atj("@ (!A!@ ( J@ ( Atj("(AGA (AH A (( (L E@ (" ("( O@ ( Atj(" E@ A +±"§  ( " 4 Z"AN@  ( O@ ( Atj(" E@  6  ž Aj!  Aj!  Aj!  AAߘ"A: A6 A� 6 A6 A: 6 ž  AAߘ"A: A6 A� 6 A6 6 ž  AAߘ"A: A6 A� 6 A6 6 ž I@#PAk(Av J@#P Atj( Ä@A  AF AFr Aj!  A ½ AÀÀAÇE@A A¼À(Av" Ak(Av"F@A !@  H@  Ak(AvOA Atj/ "A9L A0Nq  JqA AßF AÚL AÁNqA AúL AáNq r@ Aj! A AÿÿÿÿÈ „A,A©˜"¼  6  6  6  6 ! ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  “A,A©˜"¼  6  6  6  6  6( A:  :! ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ãA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6A,A©˜"¼  6 A 6  6  6 ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A°« 6 A°« ž  þýAAà˜"½ $ AA¦˜!AA˜" 6  ž  6 A6 A6 $ A$Aª˜"» AÀç6 A6 A: Aàç6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AðèA òA°éÒ "A�é6 A�éžA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aàê6 A6 6 A ë6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AÀìA òA íÒ "Aðì6 AðìžA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A� žA,A©˜"¼ A ï6 A6 6 AÐï6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A� žA,A©˜"¼ AÐò6 A6 6 A�ó6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A� žA,A©˜"¼ Aðô6 A6 6 A°õ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A� žA,A©˜"¼ A°÷6 A6 6 Að÷6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð¿õ!A,A©˜"¼ A€ú6 A6 6 AÀú6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Aàü6 A6 6 A�ý6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�ÿ6 A6 6 AÀÿ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A€�6 AÀç6 A: A �6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A€*A�*A *A°*Aô*Aø*Aü*A„*Aˆ*AŒ*A”*A˜*Aœ*A¤*A¨*A¬*ù!A,A©˜"¼ AÐ 6 A 6 6 A€‚6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ Að‚6 A6 6 A�ƒ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ A€„6 A6 6 A „6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ Aà…6 A6 6 A�†6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ Aðå6 A6 6 A ‡6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÀÚ6 A6 6 A€ˆ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ Aðˆ6 A6 6 A ‰6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:"AAAÀA¤"(D9 (D9A ö!A,A©˜"¼ AðŠ6 A6 6 A ‹6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:"A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€Ž6 A6 6 A°Ž6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:"A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Að�6 A6 6 A°�6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A€Û6 A€�6 A: Að’6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦™"A˜•ýý AA˜" 6 ž 6 A6 A6 Aà“ABôAÀ•Ò " 6  žDõ!A,A©˜"¼ A€˜6 A6 6 AÀ˜6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A š6 A6 6 Aðš6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ Aàœ6 A6 6 A �6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A°ž6 A6 6 A€Ÿ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¦™"A˜¢A ü AA˜" 6 ž 6 A 6 A6 Að ABôAÀ¢Ò " 6  žA A¦™"Að¤A ü AA˜" 6 ž 6 A 6 A6 A ¤ABôA�¥Ò " 6  žDð?õ!A,A©˜"¼ AÀ§6 A6 6 A€¨6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ AЩ6 A6 6 Að©6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AàÚ6 A6 6 Aà«6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9 (Dð?9A ö!A,A©˜"¼ A ®6 A6 6 AЮ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ AÀÛ6 A6 6 A °6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9 (Dð?9A ö!A,A©˜"¼ A ²6 A6 6 Aв6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Að´6 A6 6 A°µ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°·6 A6 6 Aà·6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A º6 A€Û6 A: Aк6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aà½A òA ¾Ò "A€¾6 A€¾ž AàÜA òA ¿Ò "A€¿6 A€¿žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Aàž6 AàžžA,A©˜"¼ A°À6 A6 6 AÐÀ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A°ÃAADõAAðÃÓ A$Aª˜"» AðÄ6 A€Û6 A: A Å6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A�ÇA òAÐÇÒ "A°Ç6 A°ÇžA$Aª˜"» AÀÈ6 A€Û6 A: A€É6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A�ÊA òAðÊÒ "AÀÊ6 AÀÊžA$Aª˜"» A�Ì6 A€�6 A: A°Ì6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°Í6 A6 6 AÐÍ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 DÀR@õ!A,A©˜"¼ AÐÎ6 A6 6 AðÎ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™©?õ!A,A©˜"¼ A€Ð6 A6 6 A Ð6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@¯@õ!A,A©˜"¼ AðÐ6 A6 6 A�Ñ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"AØÒ)7AA˜" 6 ž 6 A6 A6 AàÑABôAðÒÒ " 6  žDð?õ!A,A©˜"¼ AÐ…6 A6 6 A Ó6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"A¨Õ)7AA˜" 6 ž 6 A6 A6 A°ÔABôAÀÕÒ " 6  ž A�ÖA òAðÖÒ "AÀÖ6 AÀÖžA$Aª˜"» A�Ü6 A€�6 A: AðØ6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AAAÀA¤"(Dð?9 (Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ A°Ù6 A6 6 AàÙ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A Ú6 A6 6 AÐÚ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dà?õ!A,A©˜"¼ AÐÛ6 A6 6 A€Ü6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AàÛ6 A6 6 A Ý6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AàÝ6 A6 6 A�Þ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Aàß6 A6 6 A�à6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¦™"A�áA ü AA˜" 6 ž 6 A 6 A6 AðàABôA°áÒ " 6  žDõ!A,A©˜"¼ A�ä6 A6 6 AÀä6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°æ6 A6 6 Aðæ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Aàç6 A6 6 A°è6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A ê6 A�Ü6 A: Aàê6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Dõ!A,A©˜"¼ A�ì6 A6 6 AÐì6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Dš™™™™™¹?9 AÀÀA AðÀÒ A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 D@9 AÐÂA A�ÃÒ A A¦™"A˜ïA ü AA˜" 6 ž 6 A 6 A6 AðíABôAÀïÒ " 6  žDš™™™™™¹?õ!A,A©˜"¼ A°ð6 A6 6 A€ñ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™É?õ!A,A©˜"¼ A°ò6 A6 6 A€ó6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dà?õ!A,A©˜"¼ Aðó6 A6 6 AÀô6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™é?õ!A,A©˜"¼ A õ6 A6 6 Aðõ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 DY@õ!A,A©˜"¼ A°÷6 A6 6 A€ø6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AðÇ6 A�Ü6 A: Aðø6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 D@õ!A,A©˜"¼ Aàù6 A6 6 A�ú6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Aàú6 A6 6 A�û6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Dš™™™™™¹?9 AÀÀA AðÀÒ A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Dð?9 AÐÂA A�ÃÒ A$Aª˜"» A È6 A�Ü6 A: Aðû6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 D@õ!A,A©˜"¼ Aàü6 A6 6 A�ú6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A�ý6 A6 6 A�û6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D€F@õ!A,A©˜"¼ AÀý6 A6 6 Aðý6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AÐþ6 A6 6 A�ÿ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 D¸…ëQ¸ž?9 AÀÀA AðÀÒ A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Dð?9 AÐÂA A�ÃÒ A$Aª˜"» A°Ü6 AÀç6 A: A€€6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A€¥A òAÐ�Ò "A �6 A �ž A€‚A òAÀ‚Ò "AÀÖ6 AÀÖžA$Aª˜"» A°„6 A€�6 A: AЄ6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 DÐ?õ!A,A©˜"¼ AÐ…6 A6 6 A€†6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AÀ†6 A€Û6 A: Að†6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A ‰A òAð‰Ò "AÀ‰6 AÀ‰žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�‹6 A6 6 A°‹6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9A ö!A,A©˜"¼ A€¼6 A6 6 AàŒ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€Ž6 A6 6 A Ž6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€�6 A6 6 A �6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(Dð?9 (Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ A€�6 A6 6 A �6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D{®Gáz„?õ!A,A©˜"¼ A�‘6 A6 6 AÀ‘6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¦™"A°’A ü AA˜" 6 ž 6 A 6 A6 AÀ ABôAÐ’Ò " 6  žA A¦™"A°”A ü AA˜" 6 ž 6 A 6 A6 AГABôAДÒ " 6  žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aà–6 A6 6 A�—6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�˜6 A6 6 A°˜6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AД6 A6 6 AЙ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aðš6 A6 6 A ›6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"AÈ�ýý AA˜" 6 ž 6 A6 A6 A°œABôAð�Ò " 6  žDà?õ!A,A©˜"¼ AðÞ6 A6 6 A  6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"»AÀ¢Aà#ÂAà¡Â! A°¡6 A€�6 A:  6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AA¦™"Aà¤ýý AA˜" 6 ž 6 A6 A6 AУABôA€¥Ò " 6  žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A�¦6 A6 6 A°¦6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Að§6 A6 6 A°¨6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�©6 A6 6 AÀ©6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°«6 A6 6 Að«6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AЭ6 A6 6 Að­6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€¯6 A6 6 A°¯6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™¹?õ!A,A©˜"¼ Að¯6 A6 6 A°°6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B 7A,A©˜"¼ A ±6 A6 6 Aб6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dü©ñÒMb@?õ!A,A©˜"¼ A°²6 A6 6 Aв6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Að³6 A6 6 A ´6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B€€7A,A©˜"¼ Aàµ6 A6 6 A�¶6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™É?õ!A,A©˜"¼ A€¸6 A6 6 AÀ¸6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"A¸»ýý AA˜" 6 ž 6 A6 A6 A ºABôAà»Ò " 6  ž AнA òA°¾Ò "A�¾6 A�¾žAAAÀA¤"(Dð?9 (Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ Aà¿6 A6 6 A À6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A�Á6 A6 6 AàÁ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"A¸ÃAü AA˜" 6 ž 6 A6 A6 AðÂABôAàÃÒ " 6  žAàÇAà#ÂAÀÆÂ! AàÅA ò Ò "A�Æ6 A�ÆžA$Aª˜"» A°È6 A€�6 A: AàÈ6# "E@ ( ™ (!# "( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"»A°ËAà#ÂAàÊÂ! A°Ê6 A€�6 A:  6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AA¦™"AàÍ)7AA˜" 6 ž 6 A6 A6 AàÏAà#ÂA€ÎÂ! A€ÍABô Ò " 6  žDð?õ!A,A©˜"¼ A Ð6 A6 6 AÐÐ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A Ñ6 A6 6 AÐÑ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ AÀÓ6 A6 6 AðÓ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D4@9 (D4@9 (D4@9A ö!A,A©˜"¼ AÐ…6 A6 6 A€Õ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ AðÖ6 A6 6 A ×6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÐØ6 A6 6 A€Ù6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AЭ6 A6 6 AÐÚ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€Ü6 A6 6 A°Ü6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Bÿÿ?7A,A©˜"¼ A�Ý6 A6 6 AÀÝ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Bÿÿ?7A,A©˜"¼ AÐÞ6 A6 6 A€ß6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¦™"A°àA ü AA˜" 6 ž 6 A 6 A6 AàßABôAÐàÒ " 6  žAAAÀA¤"(D9 (D9 (D9 (Dð?9A ö!A,A©˜"¼ Aðâ6 A6 6 A ã6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°ä6 A6 6 Aðä6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AÐçAà#ÂA°æÂ! AÀåA ò Ò "Aðå6 AðåžA$Aª˜"» A è6 AÀç6 A: AÀè6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Dð?õ!A,A©˜"¼ AÀê6 A6 6 Aðê6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÐë6 A6 6 Aðë6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€í6 A6 6 A°í6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°ç6 A6 6 AÀî6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"A¨ï(6AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» AÀï6 A€�6 A: A€ð6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ Aàñ6 A6 6 A�ò6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A€ô6 A6 6 A°ô6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Að´6 A6 6 Aàõ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�÷6 A6 6 AÐ÷6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¦™"A�ûA ü AA˜" 6 ž 6 A 6 A6  6  žA$Aª˜"» A°û6 AÀï6 A: Aàû6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A$Aª˜"» A�ý6 A°û6 A: AÀý6# "E@ ( ™ (!# "( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A°ÿ6 AÀï6 A: AÐÿ6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A��6 A6 6 AÀ�6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�ƒ6 A6 6 AÀƒ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"Aè…ýý AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» A�†6 A€�6 A: AÀ†6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Að€A òA€ˆÒ "Aà‡6 Aà‡žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÀ¡6 A6 6 A ‰6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A°Š6 A€�6 A: AàŠ6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€”6 A6 6 AàŒ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A �6 A6 6 AÐ�6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (Dð¿9 (D9A ö!A,A©˜"¼ AÐŽ6 A6 6 A€�6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A€ô6 A6 6 A°�6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°‘6 A6 6 Aà‘6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÀ“6 A6 6 Að“6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÀ•6 A6 6 A€–6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÀ–6 A6 6 A€—6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9 (Dð?9A ö!A,A©˜"¼ AЗ6 A6 6 A�˜6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ Að™6 A6 6 A°š6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A ›6 A€�6 A: AЛ6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AAAÀA¤"(D9 (D9 (D9 A° AAA öAAð Ó AAAÀA¤"(D9 (D9 (D9 (Dð?9 AÀ¢AAA öAA€£Ó AÀ¤AAAAAÀA¤"(Dð?9 (Dð?9 (Dð?9A öAA€¥Ó A$Aª˜"» AÀ¥6 A€�6 A: Að¥6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A� žA,A©˜"¼ A€¨6 A6 6 A°¨6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ Að¨6 A6 6 A�©6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AÀª6 A€�6 A: Aàª6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A ¬A òAà¬Ò "AÀ¬6 AÀ¬žAA¦™"A�®(6AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» A°®6 A€�6 A: Aà®6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Dõ!A,A©˜"¼ AÀ°6 A6 6 Aà°6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ Að²6 A6 6 A ³6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:$Dõ!A,A©˜"¼ AÀµ6 A6 6 Aàµ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A€·6 A6 6 A ·6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"A°¹Aü AA˜" 6 ž 6 A6 A6 A°¸ABôAà¹Ò " 6  žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A ¼6 A6 6 Aм6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A ¾6 A6 6 Aо6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€À6 A6 6 A À6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A Á6 A6 6 AÐÁ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AàÂ6 A€�6 A: A€Ã6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AAAÀA¤"(D@9 (D@9 (D@9A ö!A,A©˜"¼ AÐ…6 A6 6 AÀÆ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A€ÉAÐÈÔ "AAAA À¤"6 ž A°ÉAÐÊÔ "AAAA À¤"6 ž AàÉA ÍÔ "AAAA À¤"6 ž A�ÊAÀÏÔ "AAAA À¤"6 žDð?õ!A,A©˜"¼ AàÐ6 A6 6 A�Ñ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(Dð?9 (Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ A€�6 A6 6 AàÑ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A€Ó6 A6 6 A°Ó6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A Õ6 A6 6 AÐÕ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D333333Ó?õ!A,A©˜"¼ AÐ×6 A6 6 A€Ø6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D333333Ó?õ!A,A©˜"¼ AÀÙ6 A6 6 AðÙ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÀÛ6 A6 6 A€Ü6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 DD@õ!A,A©˜"¼ A�Þ6 A6 6 AÐÞ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D$@õ!A,A©˜"¼ A à6 A6 6 Aàà6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Bÿÿ?7A,A©˜"¼ A�Ý6 A6 6 A€â6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A°ã6 AÀç6 A: AÐã6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€å6 A6 6 A°å6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aàç6 A6 6 A�è6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A ê6 A°ã6 A: AÐê6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AA¦™"AÐíýý AAÀ˜" 6  ž  6 A6 A6 A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Ù"6 žA,A©˜"¼ AÐ…6 A 6  6 Aðí6 ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AA¦™"AˆðAü AA˜" 6 ž 6 A6 A6 AàîABôA°ðÒ " 6  žA$Aª˜"» A�ó6 A€Û6 A: AÀó6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aðö6 A6 6 A�÷6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A ù6 A6 6 AÀù6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:Dð?õ!A,A©˜"¼ A°û6 A6 6 AÐû6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÐë6 A6 6 Aðü6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A þ6 A6 6 AÐþ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Aàÿ6 A6 6 A�€ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A�� 6 A6 6 AÀ� 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A€ƒ 6 A6 6 A°ƒ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A°„ 6 A6 6 Að„ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Að… 6 A6 6 A † 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A�ˆ 6 A6 6 A°ˆ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A°‰ 6 A6 6 Aà‰ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÀ‹ 6 A6 6 Að‹ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aà� 6 A6 6 A�Ž 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"Að� ýý AA˜" 6 ž 6 A6 A6 Að� ABôA�‘ Ò " 6  ž Aà½A òA°“ Ò "A€¾6 A€¾žAA¦™"Aø– Aü AA˜" 6 ž 6 A6 A6 A€• ABôA°— Ò " 6  žDð?õ!A,A©˜"¼ AЙ 6 A6 6 A�š 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ AК 6 A6 6 A�› 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ Að› 6 A 6 6 A œ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ Að� 6 A 6 6 A ž 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ AðŸ 6 A6 6 A   6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (Dð?9A ö!A,A©˜"¼ AÀ¡ 6 A6 6 A€¢ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°¢ 6 A6 6 Að¢ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AУ 6 A6 6 A�¤ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ AФ 6 A6 6 A ¥ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D€V@õ!A,A©˜"¼ A€¦ 6 A6 6 AÀ¦ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A� žA,A©˜"¼ A�¨ 6 A6 6 AШ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B€7A,A©˜"¼ A « 6 A6 6 Aà« 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Að¬ 6 A6 6 A°­ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°® 6 A6 6 Að® 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(Dð?9 (D9 (D9A ö!A,A©˜"¼ AЖ6 A6 6 Að¯ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D€F@õ!A,A©˜"¼ Aа 6 A6 6 Að° 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A�² 6 A6 6 A°² 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (Dš™™™™™#À9 (D9A ö!A,A©˜"¼ Aг 6 A6 6 Að³ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A�µ 6 A6 6 Aе 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A°¶ 6 A6 6 Að¶ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ Aз 6 A6 6 A�¸ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A�¹ 6 A6 6 Aй 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aк A òA°» Ò "A�» 6 A�» žDõ!A,A©˜"¼ AÀ¼ 6 A6 6 Að¼ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A€¾ 6 A6 6 A°¾ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AÀ¿ A òAð¿ Ò "A�» 6 A�» žDõ!A,A©˜"¼ AàÀ 6 A6 6 A�Á 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ Að 6 A6 6 A Ã 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A Ä A òAÐÄ Ò "A�» 6 A�» žDð?õ!A,A©˜"¼ AÀÅ 6 A6 6 AðÅ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AÀÆ 6 A6 6 AðÆ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AÐÇ A òA�È Ò "A�» 6 A�» žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€É 6 A6 6 A°É 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A€Ë A òA°Ë Ò "A�» 6 A�» ž AÐÌ A òA€Í Ò "A�» 6 A�» ž A Î A òAÐÎ Ò "A�» 6 A�» žAAAÀA¤"(Dð?9 (Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ AðÏ 6 A6 6 A�Ð 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AðÑ A òAÀÒ Ò "A Ò 6 A Ò ž A°Ó A òAðÓ Ò "A Ò 6 A Ò žDõ!A,A©˜"¼ A Õ 6 A6 6 AàÕ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ AðÖ 6 A6 6 A°× 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A Ø A òAàØ Ò "A�» 6 A�» žAA¦™"AøÙ (6AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» A�Ú 6 A€�6 A: AÐÚ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AÀÞ A òA�ß Ò "AàÞ 6 AàÞ žAA¦™"AÈâ ýý AA˜" 6 ž 6 A6 A6 A€á ABôAðâ Ò " 6  žDõ!A,A©˜"¼ A�å 6 A6 6 AÀå 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D$@õ!A,A©˜"¼ AÐæ 6 A6 6 A€ç 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ AÐè 6 A6 6 Aðè 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A€ê 6 A6 6 A°ê 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�ì 6 A6 6 A°ì 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÀî 6 A6 6 Aàî 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÐï 6 A6 6 A€ð 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ AÀÓ6 A6 6 A€ñ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ Aàò 6 A6 6 A�ó 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:Dð?õ!A,A©˜"¼ AÀô 6 A6 6 Aðô 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 AÐ÷ 6 AÐ÷ žA,A©˜"¼ A°÷ 6 A6 6 Að÷ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A ù 6 A6 6 AÐù 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:A A¦™"A�û A ü AA˜" 6 ž 6 A 6 A6 AÐú ABôA°û Ò " 6  žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÀü 6 A6 6 A€ý 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D€F@õ!A,A©˜"¼ A þ 6 A6 6 Aàþ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D(Àõ!A,A©˜"¼ A€€ 6 A6 6 Aà€ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dˆ³@õ!A,A©˜"¼ Aà‚ 6 A6 6 A°ƒ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D8Àõ!A,A©˜"¼ A … 6 A6 6 Aà… 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¦™"Aø‡ A ü AA˜" 6 ž 6 A 6 A6 A€‡ ABôA ˆ Ò " 6  žDTÀõ!A,A©˜"¼ Aà‰ 6 A6 6 A Š 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:"Dõ!A,A©˜"¼ A°� 6 A6 6 Aà� 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:"AA¦™"A�� (6AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» A°� 6 A€�6 A: Aà� 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°Í6 A6 6 A€“ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» Að• 6 A€�6 A: A – 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AAAÀA¤"(D@9 (D@9 (D@9A ö!A,A©˜"¼ AÐ…6 A6 6 A€™ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"AØ› Aü AA˜" 6 ž 6 A6 A6 Að€ABôA€œ Ò " 6  ž A ÝA òAð� Ò "A€¿6 A€¿žA$Aª˜"» A Ÿ 6 A€�6 A: AàŸ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Að¢ A òAÀ£ Ò "A�£ 6 A�£ žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Bÿÿÿÿ7A,A©˜"¼ AÐ¥ 6 A6 6 A€¦ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:Dš™™™™™¹?õ!A,A©˜"¼ AЧ 6 A6 6 A ¨ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A€ª 6 A€�6 A: AÀª 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A�® A òAð® Ò "AÀ® 6 AÀ® žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€”6 A6 6 A°° 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°± 6 A6 6 Að± 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A°³ 6 A6 6 Að³ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:Dõ!A,A©˜"¼ Aൠ6 A6 6 A�¶ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AÀ· 6 A6 6 Að· 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"A€º )7AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» A º 6 AÀç6 A: Aຠ6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ AÐŽ6 A6 6 Aà¿ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A�Á 6 A6 6 AÐÁ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Að 6 A6 6 A°Ã 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ AðÄ 6 A6 6 A°Å 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ AðÇ 6 A6 6 A°È 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A°³ 6 A6 6 AàÉ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:AA¦™"AÀË (6AA˜" 6 ž 6 A6 A6 AðÊ ABôAàË Ò " 6  žA A¦™"AèÍ A ü AA˜" 6 ž 6 A 6 A6 AàÌ ABôA�Î Ò " 6  žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ AàÐ 6 A6 6 A Ñ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€Õ 6 A6 6 A°Õ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ AàÖ 6 A6 6 A�× 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A Ø 6 A6 6 AàØ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ AðÚ 6 A6 6 A�Û 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A€Ý 6 A6 6 A Ý 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dà?õ!A,A©˜"¼ A€„6 A6 6 AÐÞ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 DI@õ!A,A©˜"¼ A°ß 6 A6 6 Aðß 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B 7A,A©˜"¼ Aðà 6 A6 6 A á 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:Dð?õ!A,A©˜"¼ A�â 6 A6 6 AÐâ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A�ä 6 A6 6 AÐä 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D$@õ!A,A©˜"¼ AÀå 6 A6 6 Aðå 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°ç 6 A6 6 Aàç 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÐé 6 A6 6 A€ê 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A€ë 6 A6 6 A°ë 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A°ì 6 A6 6 Aàì 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:Dð?õ!A,A©˜"¼ Aðí 6 A6 6 A°î 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A ð 6 A6 6 AÐð 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÐñ 6 A6 6 A€ò 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(Dð?9 (Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ A€ó 6 A6 6 AÀó 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ A°ô 6 A6 6 A€õ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�ö 6 A6 6 AÀö 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D€†@õ!A,A©˜"¼ Aðù 6 A6 6 A ú 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A ü 6 A6 6 AÐü 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:"Dõ!A,A©˜"¼ A€€ 6 A6 6 AÀ€ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:"A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�‚ 6 A6 6 AЂ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:"A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°„ 6 A6 6 Að„ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:"AA¦™"Aà‰ Aü AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» A�Š 6 A€�6 A: AЊ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Dõ!A,A©˜"¼ A€„6 A6 6 A�� 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A€Ý 6 A6 6 AÀŽ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ Að� 6 A 6 6 A�� 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€’ 6 A6 6 AÀ’ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�” 6 A6 6 AД 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A Ø 6 A6 6 A – 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ AðÚ 6 A6 6 AЖ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A€ë 6 A6 6 Að— 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°ç 6 A6 6 AÀ˜ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» Aà™ 6 A€�6 A: A�š 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€”6 A6 6 A�� 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÐ� 6 A6 6 A€ž 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A°³ 6 A6 6 A Ÿ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:AAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ AðŸ 6 A6 6 A   6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ A€¢ 6 A6 6 A°¢ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ Aൠ6 A6 6 A�£ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AÀ· 6 A6 6 A࣠6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AÀ¤ 6 A6 A: Aठ6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A� žA,A©˜"¼ A°¥ 6 A6 6 Aॠ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A€¾6 AÀ¤ 6 A: AЦ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A$Aª˜"» A�§ 6 A€¾6 A: AÀ§ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A ÝA òA�¨ Ò "A€¿6 A€¿žA$Aª˜"» AШ 6 A�§ 6 A: Að¨ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AAAÀA¤"(Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ AÐ…6 A6 6 AÀ© 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ Að© 6 A6 6 A ª 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ Aઠ6 A6 6 A�« 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ AЫ 6 A6 6 A€¬ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AÀ¬ 6 A�§ 6 A: Að¬ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: Dà?õ!A,A©˜"¼ A€„6 A6 6 Aà­ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A€Ý 6 A6 6 A�® 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 BÀ7A,A©˜"¼ A€¯ 6 A6 6 A°¯ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B 7A,A©˜"¼ Að¯ 6 A6 6 A�° 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aа 6 A6 6 A€± 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AÀ± 6 A�§ 6 A: Að± 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: Dà?õ!A,A©˜"¼ Að² 6 A6 6 A ³ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dà?õ!A,A©˜"¼ A€´ 6 A6 6 A°´ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ A€Ý 6 A6 6 A€µ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 BÀ7A,A©˜"¼ A€¯ 6 A6 6 A°¯ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ Að¯ 6 A6 6 A°µ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€¶ 6 A6 6 A ¶ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aж 6 A6 6 A€· 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AÀ· 6 A�§ 6 A: Að· 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AAAÀA¤"(D@9 (D@9A ö!A,A©˜"¼ AÐ…6 A6 6 Aи 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ Að© 6 A6 6 A�¹ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ AЫ 6 A6 6 A๠6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ A°º 6 A6 6 Aຠ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¦™"A°¼ A ü AA˜" 6 ž 6 A 6 A6 A°» ABôAм Ò " 6  žA$Aª˜"» A ½ 6 AÀ· 6 A: AÀ½ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AAAÀA¤"(Dð?9 (Dð?9A ö!A,A©˜"¼ AÐ…6 A6 6 AÀ¿ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¦™"Aà¿ A ü AA˜" 6 ž 6 A 6 A6 A°» ABôA€À Ò " 6  žA$Aª˜"» AÀÊ6 AÀ¤ 6 A: AÀÀ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦™"A¨Ã )7AA˜" 6 ž 6 A6 A6 A°Â ABôAÀà Ò " 6  žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÐÅ 6 A6 6 A€Æ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A È 6 A6 6 AÐÈ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ AðÊ 6 A6 6 A Ë 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A€Ì 6 A6 6 AÀÌ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aà½A òAÀÍ Ò "A€¾6 A€¾žAA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ A�Î 6 A 6 6 A°Î 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A Ð 6 A€¾6 A: AÐÐ 6# "E@ ( ™ (!# "( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A€¿6 AÀ¤ 6 A: A Ò 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A: AA¦™"AèÓ (6AA˜" 6 ž 6 A6 A6  6  ž AÀÝA òA€Ô Ò "A€¿6 A€¿žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ AàÕ 6 A6 6 A�Ö 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A: A:!A$Aª˜"» A�Ø 6 A€¿6 A: AÐØ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AAAÀA¤"(Dð?9 (Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ A€Ú 6 A6 6 A°Ú 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AнA€Û Ô "AAAA À¤"6 žDõ!A,A©˜"¼ A�Ú6 A6 6 AÀÛ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A°èA€Ü Ô "AAAA À¤"6 žDð?õ!A,A©˜"¼ AðÚ6 A6 6 AðÜ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A�éA°Ý Ô "AAAA À¤"6 žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�á6 A6 6 A°Þ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9 (Dð?9A ö!A,A©˜"¼ A€ß 6 A6 6 A ß 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Aàß 6 A6 6 A°à 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A€¾Aàà Ô "AAAA À¤"6 žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°à6 A6 6 A á 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Aàá 6 A6 6 A�â 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AÐéAàâ Ô "AAAA À¤"6 žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aàà6 A6 6 A°ã 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A°¾Aðã Ô "AAAA À¤"6 žA A¦™"A€å A ü AA˜" 6 ž 6 A 6 A6 AÀÞABôA å Ò " 6  žDà?õ!A,A©˜"¼ AðÞ6 A6 6 AÐæ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¦™"A¨ç A ü AA˜" 6 ž 6 A 6 A6 A�ç ABôAÐç Ò " 6  žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°ß6 A6 6 AÐè 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€ê 6 A6 6 AÀê 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ Aðë 6 A6 6 A ì 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ Aàí 6 A6 6 A�î 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"AØ„)7AA˜" 6 ž 6 A6 A6 A€àABôAð„Ò " 6  žDð?õ!A,A©˜"¼ AÀ†6 A6 6 Að†6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dø?õ!A,A©˜"¼ AÐÝ6 A6 6 A ˆ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A€Ý6 A6 6 A Š6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A�îAЋÔ "AAAA À¤"6 žAAAÀA¤"(Dð?9 (Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ A Ý6 A6 6 AÐŒ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AÀîAð�Ô "AAAA À¤"6 žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÀŽ6 A6 6 A€�6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°â6 A6 6 A��6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dà?õ!A,A©˜"¼ Aàâ6 A6 6 Aà�6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A ëA°‘Ô "AAAA À¤"6 ž AàëA ’Ô "AAAA À¤"6 ž A°ìA°“Ô "AAAA À¤"6 žDð?õ!A,A©˜"¼ A ”6 A6 6 Aà”6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AЕ6 A6 6 A�–6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ Aàá6 A6 6 AЗ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A æ6 A6 6 AИ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AàñA€šÔ "AAAA À¤"6 žAAAÀA¤"(D9 (D9 (D9 (Dð?9A ö!A,A©˜"¼ A°á6 A6 6 Aà›6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AðìA �Ô "AAAA À¤"6 žDõ!A,A©˜"¼ A€â6 A6 6 Aà�6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A°íA žÔ "AAAA À¤"6 žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°â6 A6 6 A Ÿ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™©?õ!A,A©˜"¼ Aðâ6 A6 6 AÀ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°Ü6 A6 6 A�£6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A�ÁA�¤Ô "AAAA À¤"6 žDõ!A,A©˜"¼ A°ä6 A6 6 A�¥6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AÀïA€§Ô "AAAA À¤"6 žDõ!A,A©˜"¼ Aàä6 A6 6 A€¨6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(Dð?9 (Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ A å6 A6 6 AЩ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ Aàæ6 A6 6 AÀª6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ AÐß6 A6 6 A ¬6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A€ðAÀ­Ô "AAAA À¤"6 žDÍÌÌÌÌÌô?õ!A,A©˜"¼ A€à6 A6 6 AÀ®6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 DY@õ!A,A©˜"¼ A ¯6 A6 6 Að¯6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dy@õ!A,A©˜"¼ A ±6 A6 6 Að±6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AÀðAгÔ "AAAA À¤"6 žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aà´6 A6 6 A µ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°ó6 A6 6 Að¶6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AàòA€¸Ô "AAAA À¤"6 žAAAÀA¤"(Dð?9 (Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ AÐã6 A6 6 A�¹6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AÐÁA€ºÔ "AAAA À¤"6 žA!@#0Ak(Av J@#0 Atj("AÀºÂ!A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7Aл ÂAðºÂ!A,A©˜"¼  6 A6  6  6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A: A€¼Â!AAAÀA¤"(D9 (D9A ö!A€½ ÂA ¼Â!A,A©˜"¼  6 A6  6  6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A ½Â!Dõ!Að¾ ÂAнÂ!A,A©˜"¼  6 A6  6  6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A�¿Â!AAAÀA¤"(Dð?9 (Dð?9A ö!A�À ÂA°¿Â!A,A©˜"¼ 6 A6 6 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AA¦™"A¸ð ýý AA˜" 6 ž 6 A6 A6 Aðï ABôAàð Ò " 6  žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�ó 6 A6 6 AÐó 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A �6 AÀ¤ 6 A: Aðõ 6# "E@  ( ™ (!# "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A: A A¦™"A¨÷ A ü AA˜" 6  ž  6 A 6 A6 AðåABôAÐ÷ Ò " 6  žAAAÀA¤"(D9 (D9 (D9 (Dð?9A ö!A,A©˜"¼ A�ú 6 A6  6 AÀú 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°û 6 A6  6 A€ü 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A æA òA€ý Ò "A�¾6 A�¾žAAAÀA¤"(D9 (D9 (D9A ö!A,A©˜"¼ AÐþ 6 A6  6 A€ÿ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"A¸€ ýý AA˜" 6  ž  6 A6 A6 AÀæABôAà€ Ò " 6  žAAAÀA¤"(D9 (D9 (D9 (Dð?9A ö!A,A©˜"¼ Aà‚ 6 A6  6 A ƒ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°„ 6 A6  6 A€… 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Aà† 6 A6  6 A ‡ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¦™"A؈ A ü AA˜" 6  ž  6 A 6 A6 A€çABôA€‰ Ò " 6  žAAAÀA¤"(D¤p= ×£Ø?9 (Du“VÝ?9 (Dš™™™™™á?9 (Dð?9A ö!A,A©˜"¼ A€‹ 6 A6  6 A°‹ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(DôlV}®ä?9 (DðHPüä?9 (D�Å�1wå?9 (Dð?9A ö!A,A©˜"¼ A°� 6 A6  6 Að� 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(Dš™™™™™É?9 (DoƒÀÊ¡Å?9 (D /Ý$Á?9 (Dð?9A ö!A,A©˜"¼ A�� 6 A6  6 AÐ� 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(DôlV}®ä?9 (DðHPüä?9 (D�Å�1wå?9 (Dð?9A ö!A,A©˜"¼ AÐ� 6 A6  6 A�‘ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"Aè“ Aü AA˜" 6  ž  6 A6 A6 A°’ ABôA�” Ò " 6  žDð?õ!A,A©˜"¼ AÀ• 6 A6  6 Að• 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AÀ– 6 A6  6 Að– 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°˜ 6 A6  6 Aà˜ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 BÀ7A,A©˜"¼ Aà› 6 A6  6 A�œ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A: A:!D333333Ã?õ!A,A©˜"¼ A€ž 6 A6  6 A°ž 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ A   6 A6  6 AР 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™É?õ!A,A©˜"¼ AТ 6 A6  6 A�£ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A å6 A6  6 AÐ¥ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€ä6 A6  6 A°¨ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Að© 6 A6  6 A ª 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ A « 6 A6  6 AЫ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dø?õ!A,A©˜"¼ A ¬ 6 A6  6 AЬ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dà?õ!A,A©˜"¼ A€® 6 A6  6 A°® 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D¸…ëQ¸®?õ!A,A©˜"¼ AÀ¯ 6 A6  6 Að¯ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D\�Âõ(\ï?õ!A,A©˜"¼ Að± 6 A6  6 A ² 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ Aà³ 6 A6  6 A ´ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A€¶ 6 A6  6 AÀ¶ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€¸ 6 A6  6 A°¸ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A8A¦™"Aˆ¹ A8ü AAÀ˜" 6  ž  6 A86 A6 A!@ ( J@Aй Aj"A «Â! ( M@ ( Atj+õ!AຠA tA «ÂA€º Â!A,A©˜"¼  6 A6  6  6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A » 6 A6  6 Aл 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™é?õ!A,A©˜"¼ A°¼ 6 A6  6 A༠6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A ½ 6 A6  6 Aн 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™©?õ!A,A©˜"¼ Aо 6 A6  6 Að¾ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A�À 6 A6  6 AÀÀ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"A˜Ã Aü AA˜" 6  ž  6 A6 A6 AðÁ ABôAÀà Ò " 6  žDð?õ!A,A©˜"¼ A Ä 6 A6  6 AàÄ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ AÐÅ 6 A6  6 A€Æ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D(@õ!A,A©˜"¼ A€Ç 6 A6  6 AÀÇ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°ä6 A6  6 A°È 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"AÀÉ )7AA˜" 6  ž  6 A6 A6 AàÈ ABôAàÉ Ò " 6  žAAAÀA¤"(Dú~j¼t“à?9 (DV-²á?9 (DÛù~j¼tã?9 (Dð?9A ö!A,A©˜"¼ AÐË 6 A6  6 A€Ì 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AÀÌ 6 A6  6 AðÌ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A°Í 6 A6  6 AàÍ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D{®Gáz„?õ!A,A©˜"¼ A€Ï 6 A6  6 A°Ï 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A�Ñ 6 A6  6 AÐÑ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A€Ó 6 A6  6 A°Ó 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A�Ô 6 A6  6 AÀÔ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A°Õ 6 A6  6 AðÕ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°× 6 A6  6 Aà× 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D$@õ!A,A©˜"¼ AÀØ 6 A6  6 AðØ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 DY@õ!A,A©˜"¼ AàÙ 6 A6  6 A�Ú 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aàä6 A6  6 AàÚ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™©?õ!A,A©˜"¼ AðÜ 6 A6  6 A°Ý 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(Dð?9 (Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ A ß 6 A6  6 Aàß 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9 (Dð?9A ö!A,A©˜"¼ Aðà 6 A6  6 A°á 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AÀâ 6 A6  6 A�ã 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Aðã 6 A6  6 A°ä 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™É?õ!A,A©˜"¼ AÐå 6 A6  6 A æ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 DP@õ!A,A©˜"¼ AÀè 6 A6  6 A€é 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ A�ê 6 A6  6 Aàê 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A€ì 6 A6  6 AÐì 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°î 6 A6  6 A€ï 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A€ð 6 A6  6 Aðð 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 DÍÌÌÌÌÌì?õ!A,A©˜"¼ A€ò 6 A6  6 Aðò 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ AÀó 6 A6  6 A€ô 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A�õ 6 A6  6 AÐõ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°ö 6 A6  6 Aðö 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A€ø 6 A6  6 AÀø 6 ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A$Aª˜"» AÀÖ6 AÀ¤ 6 A: AÐù 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: DY@õ!A,A©˜"¼ A°û 6 A6 6 Aðû 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A�ý 6 A6 6 AÐý 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aðþ 6 A6 6 A°ÿ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™Ù?õ!A,A©˜"¼ Aà€ 6 A6 6 Aðò 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dà?õ!A,A©˜"¼ A � 6 A6 6 Aðò 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» Aà� 6 AÀÖ6 A: A°‚ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°„ 6 A6 6 Að„ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D$@õ!A,A©˜"¼ Að… 6 A6 6 A°† 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ A°‡ 6 A6 6 Að‡ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A Š 6 A6 6 AàŠ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ Aà‹ 6 A6 6 A Œ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A � 6 A6 6 Aà� 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™¹?õ!A,A©˜"¼ Aà� 6 A6 6 A�� 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A ’ 6 A6 6 Aðò 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D‰@õ!A,A©˜"¼ Að’ 6 A6 6 Aðò 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A�¾6 AÀ¤ 6 A: AÀ“ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AÀ” A òA • Ò "Að” 6 Að” žAA¦™"A¨˜ Aü AA˜" 6 ž 6 A6 A6 AЖ ABôAà˜ Ò " 6  žA$Aª˜"» Að” 6 AÀ¤ 6 A: Aà™ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A$Aª˜"» AÐÕ6 Að” 6 A: Aà› 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AAAÀA¤"(D¤p= ×£Ø?9 (Du“VÝ?9 (Dš™™™™™á?9 (Dð?9A ö!A,A©˜"¼ A€‹ 6 A6 6 Aà� 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(DôlV}®ä?9 (DðHPüä?9 (D�Å�1wå?9 (Dð?9A ö!A,A©˜"¼ A°� 6 A6 6 A ž 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D333333Ã?õ!A,A©˜"¼ Aàž 6 A6 6 A�Ÿ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ Aà  6 A6 6 A ¡ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(Dš™™™™™É?9 (DoƒÀÊ¡Å?9 (D /Ý$Á?9 (Dð?9A ö!A,A©˜"¼ A�� 6 A6 6 Aà¡ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(DôlV}®ä?9 (DðHPüä?9 (D�Å�1wå?9 (Dð?9A ö!A,A©˜"¼ AÐ� 6 A6 6 A°¢ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D{®Gáz”?õ!A,A©˜"¼ A€£ 6 A6 6 A°£ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AФ 6 A6 6 A�¥ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D>@õ!A,A©˜"¼ AÐ¥ 6 A6 6 A€¦ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D333333Ã?õ!A,A©˜"¼ A�§ 6 A6 6 AÀ§ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°¨ 6 A6 6 Að¨ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AÀ© 6 Að” 6 A: A€ª 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A�« A òAà« Ò "A°« 6 A°« žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Að¬ 6 A6 6 A�­ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ A°¨ 6 A6 6 A�® 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AЮ 6 AÀ¤ 6 A: A€¯ 6# "E@  ( ™ (!# "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A: AA¦˜!AA˜" 6  ž  6 A6 A6 (AÀ° 6 (Aà° 6 (A€± 6 (A ± 6 (AÀ± 6 (Aà± 6 (A€² 6 6 žA$Aª˜"» A°Ç6 AÀ¤ 6 A: A ² 6# "E@  ( ™ (!# "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A: AA¦˜!AA˜" 6  ž  6 A6 A6 (A€± 6 (A ± 6 (AÀ± 6 (Aà± 6 (A€² 6 6 žA$Aª˜"» A�é6 AÀ¤ 6 A: A€´ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦™"Aص (6AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» A°« 6 AÀ¤ 6 A: Aðµ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦™"A¸· )7AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» Aз 6 AÀ¤ 6 A: A€¸ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A$Aª˜"» A๠6 Aз 6 A: A€º 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦™"Aè» (6AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» A€¼ 6 Aз 6 A: A ¼ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦™"A˜¾ (6AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» AÀ‰6 A°« 6 A: A°¾ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A°À A òAÐÀ Ò "A๠6 A๠žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A� žA,A©˜"¼ AÀÁ 6 A6 6 AàÁ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A� žA,A©˜"¼ A Â 6 A6 6 AР6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"Aèà ýý AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ AÐ…6 A 6 6 A�Ä 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦™"A°Å Aü AA˜" 6 ž 6 A6 A6 AàîABôAàÅ Ò " 6  ž A: A:!Dõ!A,A©˜"¼ A Ê 6 A6 6 AÐÊ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A: A:!A$Aª˜"» AðÌ 6 A°« 6 A: A Í 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A� žA,A©˜"¼ AðÎ 6 A6 6 A Ï 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» Aðì6 AÀ¤ 6 A: AàÐ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A°À A òAðÒ Ò "Aз 6 Aз žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A� žA,A©˜"¼ AÀì6 A6 6 A€Õ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A� žA,A©˜"¼ AÀÕ 6 A6 6 AàÕ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"»Að× Aà#ÂA°× Â! A�Æ6 AÀ¤ 6 A:  6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦™"AÀÙ (6AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"»A Ú Aà#ÂAàÙ Â! Aðå6 AÀ¤ 6 A:  6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦™"AàÛ (6AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» AàÞ 6 AÀ¤ 6 A: A€Ü 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A A¦™"A¸Þ A ü AA˜" 6 ž 6 A 6 A6  6  žA$Aª˜"» AàÞ 6 AàÞ 6 A: A�ß 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦™"Aàß (6AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» A€à 6 AàÞ 6 A: A°à 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦™"Aˆá (6AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» Aà‡6 AÀ¤ 6 A: A á 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: D{®Gáz¤?õ!A,A©˜"¼ A€â 6 A6 6 A â 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» Aðã 6 Aà‡6 A: Að¨ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AAAÀA¤"(Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ AÐ…6 A6 6 A ä 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» Aðä 6 Aà‡6 A: A å 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: Dà?õ!A,A©˜"¼ A€„6 A6 6 Aðå 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A æ 6 Aà‡6 A: AÐæ 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: Dà?õ!A,A©˜"¼ A€„6 A6 6 A€è 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ A€Ý 6 A6 6 Aàè 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A ê 6 Aà‡6 A: AÐê 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: D@õ!A,A©˜"¼ A€Ý 6 A6 6 AÀë 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dà?õ!A,A©˜"¼ A€„6 A6 6 Aðå 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» Aðë 6 Aà‡6 A: A°ì 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ A – 6 A 6 6 A î 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A°ï 6 Aà‡6 A: Aðï 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ AÐæ6 A 6 6 Aàñ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�ó 6 A6 6 AÐó 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AÀ¬6 AÀ¤ 6 A: Aàô 6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aðö 6 A6 6 A�÷ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™É?õ!A,A©˜"¼ Að÷ 6 A6 6 A ø 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AAî˜" 6  ž  6 A6 A6 (A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A – 6 A – ž 6 (A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A€„6 A€„ž 6AA¦˜!AAî˜" 6  ž  6 A6 A6 (AA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Ù"6 ž 6 (AA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Ù"6 ž 6A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 6$ ž 6 žA,A©˜"¼ Aðù 6 A6  6 A�ú 6 ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A€ý 6 A6 6 A°ý 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A�ÿ 6 A6 6 AÐÿ 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A�» 6 AÀ¤ 6 A: A€‚6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: Dõ!A,A©˜"¼ A°„6 A6 6 Aà„6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AÀ…6 A6 6 Að…6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Bä7A,A©˜"¼ AІ6 A6 6 A€‡6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:AA¦˜!AAî˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6  žA,A©˜"¼ Aðù 6 A6 6 Að‡6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7A,A©˜"¼ A€ý 6 A6 6 AÀŠ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:A$Aª˜"» A Ò 6 AÀ¤ 6 A: A�Œ6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦™"AÐ�ýý AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ AÀ�6 A 6 6 Að�6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AÀA¦™"A€�AÀü AAÀ˜" 6  ž  6 AÀ6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ AðŽ6 A6 6 AÐ�6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¦™"AБA ü AA˜" 6 ž 6 A 6 A6 Aà�ABôAð‘Ò " 6  žA A¦™"A€•A ü AA˜" 6 ž 6 A 6 A6 AГABôA •Ò " 6  žA$Aª˜"» Að•6 A€¿6 A: A –6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: Að˜A òA°™Ò "A�™6 A�™ž AàšAAA(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 AA ›Ó A$Aª˜"» A�™6 AÀ¤ 6 A: A �6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦™"AØŸ(6AA˜" 6 ž 6 A6 A6  6  žA$Aª˜"» AðŸ6 A€¿6 A: A  6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: Dð?õ!A,A©˜"¼ A€£6 A6 6 A £6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(Dð?9 (Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ A�¥6 A6 6 A°¥6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAAÀA¤"(D9 (D9 (D9 (Dð?9A ö!A,A©˜"¼ A€ß 6 A6 6 A ¦6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ A�§6 A6 6 AÀ§6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dš™™™™™¹?õ!A,A©˜"¼ A�©6 A6 6 AÀ©6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A�£ 6 AÀ¤ 6 A: A�«6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A$Aª˜"» Aà«6 A�£ 6 A: A�¬6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: A: AA¦™"Aˆ®(6AA˜" 6 ž 6 A6 A6  6  žAA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ Að� 6 A 6 6 A ®6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ Að®6 A6 6 A�¯6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:A$Aª˜"» A€°6 A�£ 6 A: A°°6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AAAÀA¤"(Dð?9 (Dð?9 (Dð?9A ö!A,A©˜"¼ AÐ…6 A6 6 A ä 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A€±6 A�£ 6 A: A°±6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: Dð?õ!A,A©˜"¼ A€„6 A6 6 Aðå 6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» A�³6 A�£ 6 A: AÀ³6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AAAÀA¤"(Dð?9 (Dð?9A ö!A,A©˜"¼ AÐ…6 A6 6 Að´6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AÀµ6 A�£ 6 A: A€¶6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ Að·6 A6 6 A�¸6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A$Aª˜"» AÀ® 6 AÀ¤ 6 A: Að¸6# "E@ ( ™ (!# "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A: AA¦˜!AAÀ˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  Ù"6  žA,A©˜"¼ Að� 6 A 6 6 A »6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¦˜!AAî˜" 6  ž  6 A6 A6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6  žA,A©˜"¼ A�¼6 A6 6 A°¼6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¦™"Að¿A ü AA˜" 6 ž 6 A 6 A6 Að¾ABôA�ÀÒ " 6  žA A¦™"AøÃA ü AA˜" 6 ž 6 A 6 A6 AÀÂABôA ÄÒ " 6  žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 Bÿÿÿÿ7A,A©˜"¼ AàÆ6 A6 6 A Ç6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A:A A¦™"AÀÊA ü AA˜" 6 ž 6 A 6 A6 AÐÈABôAàÊÒ " 6  žA(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A°Í6 A°ÍžA,A©˜"¼ AàÌ6 A6 6 A€Î6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 DÐ?õ!A,A©˜"¼ A�Ï6 A6 6 AÀÏ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 DÐ?õ!A,A©˜"¼ AðÐ6 A6 6 A Ñ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ AÐÒ6 A6 6 A€Ó6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dø?õ!A,A©˜"¼ A Ô6 A6 6 AÐÔ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dà?õ!A,A©˜"¼ AðÕ6 A6 6 A Ö6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 DÐ?õ!A,A©˜"¼ A°×6 A6 6 Aà×6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D€F@õ!A,A©˜"¼ AÐØ6 A6 6 A€Ù6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ A�Ú6 A6 6 AÀÚ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D4@õ!A,A©˜"¼ AàÛ6 A6 6 A Ü6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dõ!A,A©˜"¼ AÀÝ6 A6 6 AðÝ6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 DÍÌÌÌÌÌô?õ!A,A©˜"¼ A€ß6 A6 6 A°ß6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ AÐà6 A6 6 A�á6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 D@õ!A,A©˜"¼ AÀâ6 A6 6 A€ã6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Dð?õ!A,A©˜"¼ AÐä6 A6 6 A�å6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A°æ6 A6 6 A€ç6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ A è6 A6 6 Aàè6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜""A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A:A,A©˜"¼ Aðé6 A6 6 AÀê6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A!@# ( J@# "E@ # ( Atj(" ¥Ò"@A!A#ì ("(ÂAN A - @#ÏAk(Av J@ (#Ï Atj(× @A  Aj!  A ! (A�§ × ! (A�Ø Ä!A!@ ("( J@  ( O@ ( Atj("E@ A  -"@@@ (  A  (( AJ  A A #é (A � (ÂÂANA E@ A: A:! @ A:# #ê (A � (ÂÂAN@ A:# #ë (ÂANA (A€ƒ#à A (A ƒAÇ A @ A:# Aj!  Aj!  # "E@  ;# "E@Õ !  ¥Ò  ¥Ò"E@ (A ý # "E@Õ !  A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@ K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A !@ @ ( Ä@A ("# "E@Õ !  A! "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A! "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@ K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A A !  A � #Ö" #× ÄA E@# " E@Õ ! A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " E@A $× $Ö ( " E@AA¬˜" ½ Ù !A!@ ( J@ ( Atj("( ™ Aj!  6 ž  ¥Ò@  ¥Ò"E@ (  AÀÀAÇ@AA Ñ   AàŸAÇ@AA AàŸAÇ Ak(AvAÜŸ(AvFA A AÜŸ(AvAÿÿÿÿÈ   A ß " (ANA A (Að‚Ä A (AЭÄ A (AðåÄ A " E@A @ @ (!A!@ ( J@ ( Atj("((F@A,A©˜"¼ (! (! (!  6  6  6  6  6(  - :  -!:!  ™  Aj!  ("# " E@Õ ! A! "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A! "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@ K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A A !  A ¢ AAá˜"A6 A6 A6 A6 Aš! # "E@Õ !  A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@ K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A !@ @ ž ("# "E@Õ !  A! "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A! "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@ K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A A !  AA«˜"A6 A6 A6 A6 Aš!A!@ ( J@A!@ ( Atj((( J@ ( O@ ( Atj("E@  ("( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Aj!   É AAá˜"A6 A6 A6 A6 Aš! # "E@Õ !  A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@ K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A !@ @ ž ("# "E@Õ !  A! "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A! "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@ K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A A !  AA˜"A6 A6 A6 A6 Aš!@ ( J@ ( Atj((!A!@ ( J@ ( Atj(A€�AÅ"AH ( O@ ( Atj("E@  ( O@ ( Atj("E@ A È ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Aj!   ‘ AA˜"A6 A6 A6 A6 Aš!# " Õ # AAÿÿÿÿŸ! @ ( J@ ( Atj(!# "E@Õ !  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "E@ - - A E@ (! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   … AA˜"A6 A6 A6 A6 Aš!# " Õ # AAÿÿÿÿŸ! @ ( J@ ( Atj(!# "E@Õ !  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "E@ - @ (! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   … AA˜"A6 A6 A6 A6 Aš!# " Õ # AAÿÿÿÿŸ! @ ( J@ ( Atj(!# "E@Õ !  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "E@ - @ (! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   _AÀ� ÂA€’ Â! AH ANq A€’ #ô"Ak(AvO@ Atj("E@  ΠAÀ�AÇE@A A¼�(AvAÿÿÿÿÈ!A!A!@ AH@ #ô"Ak(AvO@  Atj("E@ A€’ Â"#Ã@ ! A Ak(Av Ak(AvkÈ! Aj!  A€’Æ"AL@A  AjAÿÿÿÿÈ"Að‚ÄA AЭÄ A AðåÄ E@A ANA AЭÄ@A A A­˜"A6 A6 A6 A È6 6 6 ¥ A �#ÃE@A A ÅÆ"AL@A Aj Ak(AvAkÈ"Ak(AvE@A AA¦˜!AA˜" 6  ž  6 A6 A6 ( A È6 ( 6  Š  (Â!  "(AF@AAAAØî¤  (AF@AAAAèî¤  AAAA¤ "( E@  AÀ… Â" ¥•@  AÀ… –@@@@@ (  A  A  AA (( AJ  A  A !AA®˜"A6 A6 A6 A6 A: A: A: A:  6  6  6  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  -":  - :  -#: A!@ ( J@ A€’  ( O@ ( Atj("E@ Â!  AÀ… Â" ¥•E@  AÀ… –  ( O@ ( Atj("E@ AðÛ Â! AA®˜"A6 A6 A6 A6 A: A: A: A:  6 A6  6  6 ( " Aj" (AvK@ AA™ ( Atj" 6 At Ÿ 6  -":  - :  -#: Aj!  ÌsAAâ˜"A6 A6 A6 A6 Aš" !A A¦™"AðîA ü AA˜" 6 ž 6 A 6 A6 AA¦™"A€ïýý AA˜" 6  ž  6 A6 A6 AA¦™"AÀðýý AA˜" 6  ž  6 A6 A6 AA¦™"A¸òýý AA˜" 6 ž 6 A6 A6 @ ( J@A! @ ( J@ ( M@ ( Atj("E@ A€’ ( O@ ( Atj("E@ Â! ( O@ ( Atj("E@ AÀ… ( O@ ( Atj("E@  ( O@ ( Atj("E@ Â!AA®˜"A6 A6 A6 A6 A: A: A: A:  6 A6 A€�6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Aj!  AA®˜"A6 A6 A6 A6 A: A: A: A: Aðå6 A6 A€�6 Aàò6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AA®˜"A6 A6 A6 A6 A: A: A: A: AÀÚ6 A6 A€�6 A€ˆ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AA®˜"A6 A6 A6 A6 A: A: A: A: A Ú6 A6 A�Ü6 Aðó6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AA®˜"A6 A6 A6 A6 A: A: A: A: A°Ù6 A6 A�Ü6 AàÙ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AA®˜"A6 A6 A6 A6 A: A: A: A: A°Í6 A6 A�Ì6 AÐô6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AA®˜"A6 A6 A6 A6 A: A: A: A: AÐÎ6 A6 A�Ì6 A°ö6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A!@#ÄAk(Av J@A Ý#Ä Atj("Â!AA A€Ú ÄA A€ß Ä !Aàß ÂA ÷Â!AA®˜"A6 A6 A6 A6 A: A: A: A:  6  6 A º6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  A!@#ÄAk(Av J@AàÝ#Ä Atj("Â!AA A€Ú ÄA A€ß Ä !Aàß ÂAðøÂ!AA®˜"A6 A6 A6 A6 A: A: A: A:  6  6 A º6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  AA®˜"A6 A6 A6 A6 A: A: A: A: A€�6 A6 AÀ†6 A�ú6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AA®˜"A6 A6 A6 A6 A: A: A: A: AÀ°6 A6 A°®6 A€û6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AA®˜"A6 A6 A6 A6 A: A: A: A: Að²6 A6 A°®6 Aàü6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AA®˜"A6 A6 A6 A6 A: A: A: A: AÀµ6 A6 A°®6 A�þ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AA®˜"A6 A6 A6 A6 A: A: A: A: A€·6 A6 A°®6 A�ÿ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 AA£˜" �@ ( J@ ( Atj((AÀ…  ( O@ ( Atj("E@ (– Aj!  A!@ ( J@ ( Atj("(A€’Æ! (! ("A ÝAÇA (AàÝAÇ A�Ø ! ( AjAÿÿÿÿÈ AN (A È  !  Ø "@  - :  -#: Aj!  # " Õ # AAÿÿÿÿŸ! A!@ ( J@ ( Atj(!# "E@Õ !  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "@ -@A!@ ("( J@  ( O@ ( Atj("E@ -!@ A� ( (á Aj!  Aj!  # "E@Õ ! A!A�Ø !AŒØ (A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! A€Ø j!@  O@ (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AŒØ j!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A�Ø j!@  K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  A�Ø AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒA!A�Ø !AŒØ (A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! A€Ø j!@  O@ (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AŒØ j!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A�Ø j!@  K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  A�Ø AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A "E@ # "E@Õ ! A! A€¿!Aü¾(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! Að¾j!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! Aü¾j!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A€¿j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  A€¿  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ A€¿A!A€¿!Aü¾(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! Að¾j!@  O@ (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! Aü¾j!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A€¿j!@  K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A "E@ A!@ ("( J@  ( O@ ( Atj("E@ -!A -" @ A Ý A ºAàß (ÂA�Þ (Âá Aj!  A!@ ("( J@  ( O@ ( Atj("E@ -!A -" @ A Ý A ºAàß (ÂA€à (Âá Aj!  A!@ ("( J@  ( O@ ( Atj("E@ -!A -" @ AàÝ A ºAàß (ÂAÀá (Âá Aj!  A!@ ("( J@  ( O@ ( Atj("E@ -!A -" @ AàÝ A ºAàß (ÂAàâ (Âá Aj!  A! AA˜"A6 A6 A6 A6 Aš!# " Õ # AAÿÿÿÿŸ!@ ( J@ ( Atj(!# "E@Õ !  A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡! A÷”¯¯x!AÏŒ¢Ž! jAk!@  O@ (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@ K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "E@ - A (A�§ × @ (! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  !@ ( J@ ( Atj(!# "E@Õ ! A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "@A!@ ("( J@ " ( O@ ( Atj(" E@ -!A -" @AA˜"A6 A6 A6 A6 Aš!A!@ ( J@ ( Atj( (Ø @ ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A ä A ºAàß (ÂAðå ( ( AÐå¦ÂAÀä (Âá Aj!  Aj!  # "E@Õ ! A!A �!Aœ�(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! A��j!@  O@ (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! Aœ�j!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A �j!@  K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  A � AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒA!A �!Aœ�(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! A��j!@  O@ (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! Aœ�j!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A �j!@  K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  A � AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A "E@ A!@ ("( J@  ( O@ ( Atj("E@ -!A -" @ A°æ A°ÜAàß (ÂAàæÂ (Âá Aj!  # "E@Õ ! A!AðŸ!AìŸ(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! AàŸj!@  O@ (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AìŸj!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AðŸj!@  K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AðŸ AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒA!AðŸ!AìŸ(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! AàŸj!@  O@ (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AìŸj!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AðŸj!@  K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AðŸ AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A "E@ A!@ ("( J@  ( O@ ( Atj("E@ -!A -" @ A°ç Að• Aàß (ÂAàç (Âá Aj!  AA¦˜!AAá˜" 6  ž  6 A6 A6 (# "E@Õ ! A!AÀÖ!A¼Ö(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! A°Öj!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! A¼Öj!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AÀÖj!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  AÀÖ  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ AÀÖA! AÀÖ!A¼Ö(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! A°Öj!@  O@ (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! A¼Öj!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AÀÖj!@  K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A "E@ 6 (# "E@Õ ! A!Aà� !AÜ� (A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! AÐ� j!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AÜ� j!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  Aà� j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  Aà�  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ Aà� A! Aà� !AÜ� (A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! AÐ� j!@  O@ (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! AÜ� j!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  Aà� j!@  K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A "E@ 6A!@ ( J@ ( Atj(!A!@ ("( J@ ( O@ ( Atj("E@ -!A -" @ A é A�ÌAàß (ÂAÐé (Âá Aj!  Aj!  A!@ ( J@ ( Atj(!A!@ ("( J@ ( O@ ( Atj("E@ -!A -" @ A ë A°ÜAàß (ÂAàë (Âá Aj!  Aj!  # "E@Õ ! A!AÀ‰!A¼‰(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! A°‰j!@  O@ (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! A¼‰j!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AÀ‰j!@  K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AÀ‰ AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒA!AÀ‰!A¼‰(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! A°‰j!@  O@ (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! A¼‰j!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  AÀ‰j!@  K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AÀ‰ AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A "E@ AA¦™"Aèì)7AA˜" 6  ž  6 A6 A6 A!@ ( J@A!@ ("( J@ ( O@ ( Atj("E@ -!A -" @  ( O@ ( Atj("E@ A€í  Aàß (ÂA°í (Âá Aj!  Aj!  A!@ ( J@ ( Atj(!# "E@Õ !  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "@ -@A!@ ("( J@  ( O@ ( Atj("E@ -"@ A� ( (á Aj!  Aj!  ñAAâ˜"A6 A6 A6 A6 Aš!#I"  â "$I  !A!@ ( J@ ( Atj((× @  ( O@ ( Atj("E@ ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ‡ AàæAÇ@A #I"  â "$I  !A!@ A!H  ( HA @  ( O@ ( Atj("E@ ( Ä@A Aj!  A À AàæAÇE@A�  Ak(Av"AÜæ(Av"F@A�  !@  H@  Ak(AvOA Atj/ "A9L A0Nq  JqA AßF AÚL AÁNqA AúL AáNq r@ Aj! A�  AÿÿÿÿÈ Ê AàŸAÇ@ AàŸAÇ Ak(AvAÜŸ(AvFA A AÜŸ(AvAÿÿÿÿÈ " A º× A E@A AA®˜"A6 A6 A6 A6 A: A: A: A:A ¤ ÂAð£Â! 6 A6 A º6 6 A:   A ÝAÇ@AœÝ(Av  AàÝAÇ@AÜÝ(Av  A "AHA@ AਠÇ@ Aܨ(Avj!  AÀÀ Ç @ ç " A º× A E@A AA®˜"A6 A6 A6 A6 A: A: A: A:A�§ (ÂAà¦A� ( ANÂA°¦ÂA€¦AàÜ A äAÇÂAÐ¥A� (AJÂA€¥Â! 6 A6 A º6 6 A: A:  AàæAÇ@ å "Ak(Av AÀç× A E@A AA®˜"A6 A6 A6 A6 A: A: A: A:AЧ ÂA �Â! 6 A6 AÀç6 6  #I"  â "$I  !A!@ ( J@ ( Atj("( Ä (× A @  Aj!  A € "A ÝAÇ@AœÝ(Av  AàÝAÇ@AÜÝ(Av  A "AH@A AA¯˜"A6 A6 A� 6 A6  A ÝAÇE6@ AਠÇ@ Aܨ(Avj!  (Aj6  (AJ@A  AÿÿÿÿÈ"Ak(Av"AK Ak" Ak(AvOA Atj/ A:FA  Ak" Ak(AvOA Atj/ "AúL A÷Nq A Aøk A÷F6 A AkÈ  Ñ "E@A  6  ž  Ÿ  Ak("AÅF AÇFr AÈFrA A  Ak(AÊFA A  Ak(AËFA @A (!A!@ ( J@ ( Atj(è @A Aj!  A ×@#H( J@ #H( Atj(F@#m  œ Aj!  #H"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 #m"( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ˜@#H( J@ #H( Atj(F@#H ŠA#m"( " AH j"A AJ  J "k" AJ"A AJ"At"A¦˜!AA÷˜" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A    Atj kAtü  k"AtjA Atü  6  Aj!  z A:µ A:´ (¸"@ A6¸ ² A: A!@ ("( J@  ( O@ ( Atj("@ ë Aj!  © GA  Ak(AÖFA @  Ak(AÙFA @  Ak(AÙFA E@ -È@ $—#uA -É E@ $u @  ("( NE@ ( Atj( ì Aj!  ™#u@ GA  Ak(AÖFA @ GA  Ak(AÙFA @  Ak(AÙFA E@ $u @  ("( NE@ ( Atj(  í Aj!  ¼ A  Ak(AÖFA E@ GA  Ak(AÙFA   Ak(AÙFA E@ -ÈA @  Ak(AÙFA E@ A¯ A!@  ("( NE@ ( Atj( Aî Aj!  Î;}@@@ AÀçÄ@AÈA²˜"ß AÀç6  A€�Ä@AÈA²˜"ß A€�6  A ºÄ@AÀA¶˜"à A6˜ A6œ A6  Aàž6¤AA¦˜!AA˜" 6 ž 6 A6 A6  6¨AA¦˜!AA.˜" 6 ž 6 A6 A6  6¬ A6°AA¦˜!AA.˜" 6 ž 6 A6 A6  6´AA¦˜!AA·˜" 6 ž 6 A6 A6  6¸ A º6  AðÄÄ@A¨A¹˜"à A6˜AA¦˜!AAº˜" 6  ž  6 A6 A6 6œAA£˜"A€A¦˜"6  6 A€6 A6 6 AA¦˜!AAë˜" 6  ž  6 A6 A6 6¤ AðÄ6  AÀÈÄ@A A»˜"à A6˜ AÀÈ6  A�ÌÄ@AðA¼˜"ß A:È C–B8Ì CÍÌL=8Ð CzE8Ô A6Ø C€?8Ü A6à A:ä A6è A�Ì6  A êÄA AðÇÄ A A ÈÄ @A°A½˜"ß C€?8È C€?8Ì C€?8Ð C€?8Ô C€?8Ø C?8Ü A:à C @8ä C€?8è C4B8ì C€?8ð CÍÌÌ=8ô C€?8ø C€?8ü C€?8€ A6„ CÍÌÌ=8ˆ CÍÌL>8Œ C?8� CÍÌL?8” CÈB8˜ C8œ A6  C8¤ C€?8¨ C€?8¬  6  A°ÜÄ@AÐA¾˜"ß A6È A6Ì A°Ü6  A°„Ä@AÐA¿˜"ß C€>8È A°„6  AÀ†Ä@AØAØ"à A6˜ A:œ C8  C8¤ A:¨ A:© C€?8¬ C€?8° C€?8´ C€?8¸ C ×#<8¼ A6À A6Ä A:È A:É A:Ê A:Ë A6Ì C?8Ð AÀ†6  A°¡Ä@A˜AÀ˜"ß A6È A6Ì C€?8Ð A:Ô A:Õ A:Ö A:× CÍÌÌ=8Ø A 6Ü Co:8à C€?8ä A€€6è CÍÌL>8ì A6ð A6ô C€?8ø C€?8ü C€?8€ C€?8„ C€?8ˆ A6Œ A6� A°¡6  A°ÈÄ@AÈAÁ˜"ß A°È6  A°ÊÄ@A˜A˜"ß A6È C€?8Ì C€?8Ð C8Ô C A8Ø C A8Ü C A8à C8ä C8è C8ì A:ð A:ñ A:ò Aÿÿ?6ô Aÿÿ?6ø A6ü C8€ C8„ C8ˆ C€?8Œ C€?8� A6” A°Ê6  A èÄ@AèAĘ"ß Dð?9È A:Ð A:Ñ A:Ò D9Ø A:à A:á A è6  A°ÿÄ@AèAȘ"ß A6È A6Ì A:Ð A:Ñ A6Ô A:Ø A:Ù AAA³A¤6Ü AAAÉA¤6à A°ÿ6  A�ýÄ@AØAǘ"ß A6È A6Ì A:Ð A:Ñ A6Ô A�ý6  A�†Ä@AÐAʘ"ß A6È A:Ì A�†6  A°ŠÄ@A¨A˘"ß A:È A:É C8Ì C€¿8Ð C8Ô A6Ø A:Ü A:Ý A:Þ A:ß C8à C8ä C8è C€?8ì A6ð A:ô A6ø A6ü C8€ C8„ C8ˆ C8Œ C8� C8” A6˜AA¦˜!AA³˜" 6 ž 6 A6 A6  6œ A6  A°Š6  A ›Ä@AðAј"ßAA¦˜!AAÒ˜" 6 ž 6 A6 A6  6È A6Ì B7ÐAA¦˜!AA˜" 6 ž 6 A6 A6  6ØAA¦˜!AAî˜" 6 ž 6 A6 A6  6ÜAA¦˜!AA¤˜" 6 ž 6 A6 A6  6àAA¦˜!AA˜" 6 ž 6 A6 A6  6äAA¦˜!AAî˜" 6 ž 6 A6 A6  6è A:ì A ›6  AÀ¥Ä@AèAÔ˜"ß A� 6È A6Ì A6Ð A6Ô B7Ø A6à AÀ¥6  AÀªÄ@AÐAΘ"ß A6È A6Ì AÀª6  A°®Ä@AèAϘ"ß D9È D9Ð D9Ø A6à A:ä A:å A:æ A:ç A°®6  AàÂÄ@A˜AÕ˜"ß C@8È C@8Ì C@8Ð A6Ô A6Ø A6Ü A6à C€?8ä C€?8è C€?8ì C€?8ð C€?8ô C€?8ø C8ü Cš™™>8€ Cš™™>8„ A:ˆ C B8Œ C A8� Aÿÿ?6” AàÂ6  A êÄ@AèAÖ˜"ß A:È A:É A€6Ì A€6Ð A€6Ô A€6Ø A6Ü A6à A ê6  A�óÄ@AÐAט"à A:˜ A6œ A6  C€?8¤ A:¨ C8¬ C€?8° C8´ C8¸ C8¼ A:À B7È A6Ð A:Ô A:Õ A6Ø A6Ü A6à C€?8ä C€?8è C€?8ì C€?8ðAA¦˜!AAÀ˜" 6 ž 6 A6 A6  6ôAA¦˜!AAÀ˜" 6 ž 6 A6 A6  6øAA¦˜!AAÀ˜" 6 ž 6 A6 A6  6ü C8€ C8„ C€?8ˆ C€?8Œ C€?8� C8” C´B8˜ A� 6œ A€6  A:¤ A:¥ C€?8¨ C8¬ C8° C4B8´ C8¸ C8¼ CÍÌÁ8À C8Ä C8È C8Ì C8Ð C8Ô A6Ø C8Ü C8à A6ä C8è C8ì A6ð C€?8ô C€?8ø A6ü A:€ A6„ A6ˆ A6Œ C€?8� C€?8” C€?8˜ C€?8œ A6  A6¤ C8¨ C8¬ A6° A6´ A6¸ A6¼ A:À A6Ä A:È A6Ì A�ó6  A�Ú Ä@A¨Aؘ"ß A6È A6Ì C8Ð C A8Ô C@@8Ø C€?8Ü A:à A:á A:â C8ä A6è A6ì C€?8ð AÐ÷ 6ô A6ø A6ü A:€ C4B8„ C@Á8ˆ C@œE8Œ CÀÁ8� A6” C Â8˜ C8œ A6  A:¤ A:¥ A�Ú 6  A°� Ä@AÐAÙ˜"ß A:È A:É A°� 6  Að• Ä@AàAÚ˜"ß C@8È C@8Ì C@8Ð A6Ô A6Ø Að• 6  A Ÿ Ä@AàAÛ˜"ß A6È Bÿÿÿÿ7Ð CÍÌÌ=8Ø A Ÿ 6  A€ª Ä@AèAܘ"ß A6È A:Ì A:Í A6Ð C8Ô C€?8Ø A6Ü A:à A€ª 6  A º Ä@A€Aݘ"ß C8È C8Ì C8Ð C€?8Ô C€?8Ø C8Ü C @8à A6ä A6è A6ì A6ð A:ô C8ø A:ü C8€ C8„ C8ˆ C€?8Œ C?8� CHB8” A 6˜ C€?8œ C8  C A8¤ A:¨ A:© A6¬ A6° C€?8´ A:¸ A:¹ C€?8¼ C€?8À C€?8Ä C€?8È C€@8Ì A:Ð C4D8Ô C8ØAÌAÓ ˜!AA̘"AàA¦˜"6  6 Aà6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6AA¦˜!AAÖ ˜" 6  ž  6 A6 A6 6 A6 A: A6 C8 C8 C8 A6$ A6( A6, A:0 C84 C88 C8< C8@ A:D A:E A:F A:G A:H A:I C8L C8P C8T C8X C8\ C8` C8d C8h C8l C8p A:t C8x C8| C8€ C8„ C8ˆ C8Œ C8� A:” A6˜ A6œAA̘"AàA¦˜"6  6 Aà6 A6 6 AA¦˜!AA¤˜" 6  ž  6 A6 A6 6¤AA¦˜!AAë˜" 6  ž  6 A6 A6 6¨AA¦˜!AAÖ ˜" 6  ž  6 A6 A6 6¬ A:° A:± C8´ C8¸ C8¼ A:À A6ÄA°*!A¬*!A¨*!A¤*!A *! Aœ*! A˜*! A”*! A�*! AŒ*!Aˆ*!A„*!A€*!Aü*!Aø*! Aô*8È 8Ì 8Ð 8Ô 8Ø 8Ü 8à 8ä 8è 8ì 8ð 8ô 8ø 8ü 8€ 8„A°*!A¬*!A¨*!A¤*!A *! Aœ*! A˜*! A”*! A�*! AŒ*!Aˆ*!A„*!A€*!Aü*!Aø*! Aô*8ˆ 8Œ 8� 8” 8˜ 8œ 8  8¤ 8¨ 8¬ 8° 8´ 8¸ 8¼ 8À 8Ä A6È  6Ü C8à C8ä C8è C8ì C8ð C8ô A6ø A:ü A º 6  6 A:d  A�Š Ä@AðAÞ˜"ß C8È C€?8ÌA Aç˜"A6 A6 A6 AA¦˜"6 6 A6  6Ð A:Ô A:Õ A:Ö C8Ø C8Ü C8à A6ä A:è A6ì A�Š 6  Aà™ Ä@AðAߘ"ß A:È A:É A6Ì C8Ð C8Ô C8Ø C8Ü C8à C8ä C8è C€?8ì Aà™ 6  AÈA²˜"ß  6  6 A:d A:$  6 A:d   6 A:d  6 A:d O Ak(AvE@A @#¨Ak(Av J@#¨ Atj( Ä@  Aj!  A ƒ Ak(AvE@  ô "-E@Dø Dø! ("(AF| )¹ (AF| +Dø "Dø  ¡Da ®AAá˜"A� 6 A� 6 A� 6 A� 6  6  ž  6  ž  6  ž  6  ž ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  |AÀAà˜""A6 A6 A6 Dð?9 D9 A6 A:$ A� 6( A� 6, A� 60 A64 A68 (!  (6  6  60  ž  ($(64  ($(68A� ("Ak(AvE A°Ý A�ÒAÇ AÐÞ A�Ò#à A ß A€ßAÅAG A� "Ak(Av@ A°²Aà²Aг (ÂA€³Â Â#Õò (ð "AH@ A€¶A€ŒA�· (ÂA°¶Â#íò   6 ("Ak(Av AàûÄA AAA Aà¯Ä "AH@ A ºA°ÍA�» (ÂAкÂ#îò   AF:$ AÀ½ß@A ("Ak(AvE @ Ak(Av" J@A  MA  Atj/ "A9L A0Nq A Fr AJqA AßF AÚL AÁNqA AúL AáNq @ Aj! A  A @  ("6(  ž A€¿AÀ½ ("Ak(AvAྠÂA�¾ÂAའ#ïò A�Âß ( Ak(AvA E@ AÀÂA�ÂA€Ã#ðò  ( "6,  ž ( Dð?ñ " b@ AðÅAðåAàÆ ( ÂA ÆÂA€Çò   9 (Dñ " b@ AðÅA€¼A°È (ÂA ÆÂA€Çò   9 A!A ("Ak(AvE @#ØAk(Av J@#Ø Atj( Ä@   Aj!  A "AH@ AÐÈA€ÉA€Ê (ÂA ÉÂ#ñò   6 (AàæAÇ@ (ð "AF AFr@ A€€A€Œ (AÀ€Â #¨"Ak(AvO@  Atj("E@ Â#õò A A¦™"AȃA ü AA˜" 6  ž  6 A 6 A6 A A¦˜!AA˜" 6  ž  6 A 6 A6 ( ( 6 ( (6 ( (6A!@ ( J@  ( O@ ( Atj("E@ Ak(Av@  ( O@ ( Atj("E@ Aðƒ  (A°„  ( O@ ( Atj("E@ Â#öò Aj!  AA¦™"Aè†)7AA˜" 6  ž  6 A6 A6 A!@ ( J@ ( Atj(ß@  ( O@ ( Atj("E@ A€‡  (A°„  ( O@ ( Atj("E@ Â#÷ò Aj!   AF AFq@ AàÌA°ÍA Í#òò AG ANq (!#I"  â "$I  "( Ak!@@ AH  ( O@ ( Atj("E@ -E A ( Ä  Ak!  A A @ AÐÑA€Œ (A�Ó #¨"Ak(AvO@ Atj("E@ Â#óò AF AFr  aq Daq@ #¨"Ak(AvO@ Atj("E@ A�ÙAðåAÀ“ ÂAÀÙÂ#ôò  éAAâ˜""A: ò6 A6 A� 6 A6A Aä˜"A6 A6 A6 A6 A6 A� 6 A6A Aã˜"A6 A6 A: A: D9 B7  6  6  Ak(Av6 ²" (AHA @@ (" ("H ("Ak(AvOA  Atj/ "A F A F A Fr A FrrA @  (Aj6  (" (H@ (AH@  6 A°Š6 A°Šž A6 Až E ("ANr@  AHA ( 6  ("6  ž  ("6  ž  A:  6  ž  æ|@@@@@@@@@@@@@@@@@@ (   ("( "Aj!  (AvK@ AA™ ( Atj"A°�6 At A°�Ÿ  Aà¯Aàû -! )­! A€– +" b A�‡A°‡ Dd ¡Db  ’ " ¡Db  A �AÅAH AÐÌ ! ("( "Aj!  (AvK@  AA™ ( Atj"AÀŽ6  At AÀŽŸ  6  ("( "Aj!  (AvK@  AA™ ( Atj"AàÈ6  At AàÈŸ  ("( "Aj!  (AvK@  AA™ ( Atj"A�É6  At A�ÉŸ  ("( "Aj!  (AvK@  AA™ ( Atj"AÀÉ6  At AÀÉŸ  (!  ("( "Aj!  (AvK@  AA™ ( Atj"Aà˜6  At Aà˜Ÿ  6 A!@ ( ( J@ AJ@ ("( "Aj!  (AvK@  AA™ ( Atj"A°Ä6  At A°ÄŸ  6  ( "( O@ ( Atj("@  õ Aj!  ("( "Aj!  (AvK@ AA™ ( Atj"A ™6 At A ™Ÿ  (AFAðÉ (AFA°Ê (AFAðÊA°ËAðË (AF ! ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A!@ (( J@ AJ@ ("( "Aj!  (AvK@  AA™ ( Atj"A°Ä6  At A°ÄŸ  6   ("( O@ A€– ( Atj+" b A�‡A°‡ Dd ¡Db  ’ ! ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ("( "Aj!  (AvK@  AA™ ( Atj"A€ 6  At A€ Ÿ  6 A!@ ($( J@ AJ@ ("( "Aj!  (AvK@  AA™ ( Atj"A°Ä6  At A°ÄŸ  6  ($"( O@ ( Atj("E@  õ ("( "Aj!  (AvK@  AA™ ( Atj"AðÛ6  At AðÛŸ  6  ( "( H@  ( O@ ( Atj("E@  õ  ("( "Aj!  (AvK@  AA™ ( Atj"A°�6  At A°�Ÿ  6 Aj!  ("( "Aj!  (AvK@ AA™ ( Atj"AÀ 6 At AÀ Ÿ  @@@@@@ (Ak  A  A  A  A  A  A ! (AFA (A F !@@@@@@@@@@@@@@@@@@@@@@@@@@ (  A°�  A°é  AÐé  A°Ú  Aðé  A€“  Aà’  AЦ  Að¦  A�§  A°§  AЧ  Að§ A�¨ AÀ¨ AਠAÀê A�ê  A°“  Aà“  AÀ�  A€�  AÀ�  Að�  A°‘  Að ! ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ ( Atj"A€�6  At A€�Ÿ  6 A!@  H@ AJ@ ("( "Aj!  (AvK@  AA™ ( Atj"A°Ä6  At A°ÄŸ  6  ("( H|  ( O@ ( Atj+Dð?D AF (A Fq ! ~B b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  ° ­A€– b A�‡A°‡ Dd ¡Db  ’ ! ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   (ö !   6 ! (ö ! ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ("( "Aj!  (AvK@ AA™ ( Atj"A �6 At A �Ÿ 6  ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ  ("( "Aj!  (AvK@ AA™ ( Atj"A �6 At A �Ÿ 6 ÚAAì˜"AAAA¤6 ("( "Aj!  (AvK@  AA™ ( Atj"AÀ�6  At AÀ�Ÿ  6 Ak(Av!A!@  NE@A!  Ak(AvOA Atj/ "A"FAÀ� AÜFAà� A FAÀŽ A FA Ž A FA€� AFA€Ž A FAàŽ AÿF A HrAÐ�AàÜA� AH A«Â AÿÿF AþÿFrA°Ì A«ÂA "@  È! ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj! Aj!  AÿÿÿÿÈ! ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ("( "Aj!  (AvK@ AA™ ( Atj"AÀ�6 At AÀ�Ÿ 6 ê ¸ AÐÕ*ÄA A€Ö*Ä A A°Ö*Ä @A AàÖ*ÄA A�×*Ä A AÀ×*Ä @A Að×*ÄA A°Ø*Ä A AðØ*Ä @A A°Ù*ÄA AÐÙ*Ä A AðÙ*Ä @A A µ Ak(Av""AK  Ak"MA  Atj/ A:FA @ Ak" Ak(AvOA  Atj/ "AúL A÷Nq@ A Aøk A÷F6 A AkÈ"6 ž A6 6 ž •#“ ¥Ò@#“ ¥Ò"E@ ( AAæ˜"A6 A� 6 A6 A6 A6 A6 A€ŽÄ@ A6 A6  6  ž Aà‰ ÄA A°� Ä @ A6 AA A°� Ä6  6  ž A6 A ü ÄA A€€ Ä A A�‚ Ä A A°„ Ä @ A6  A ü ÄA A€€ ÄAAA A�‚ Ä 6  6  ž A6 AÀ«*AÇA Að«*AÇ @ A6  ø  AÀ½AÇE6 A ÝAÇ@ A6 A6 A!@ AਠÇ@ Aܨ(Avj!  (Aj6   AÿÿÿÿÈø  AàÝAÇ@ A6 A6 A!@ AਠÇ@ Aܨ(Avj!  (Aj6   AÿÿÿÿÈø  A äAÇ@ A6 A6  AAÿÿÿÿÈø  A°æAÇ@ A6 A6  A AÿÿÿÿÈø  A°çAÇ@ A6 A6  A AÿÿÿÿÈø  A éAÇ@ A6 A6  A AÿÿÿÿÈø  A ëAÇ@ A6 A6  AAÿÿÿÿÈø  A€íAÇ@ A6 A6  Aüì(AvAÿÿÿÿÈø   ø #“ ™  ÷ AF@A!  Ak(A¶FA @  Ak(A¶FA E@ (œ"@ ÿ  (˜þ   Ak(A»FA @  Ak(A»FA E@ (˜" ($þ A   Ak(A×FA @  Ak(A×FA E@ (Üþ   Ak(AÃFA @  Ak(AÃFA E@ (˜   Ak(AÕFA @  Ak(AÕFA E@ @ AH@ E@ (Ô  AF@ (Ø  AF@ (Ü  AF@ (à  A "  Ak(Aš FA A @  Ak(Aš FA E@   Aj!  A  AF@  Ak(A¾FA   Ak(A¾FA E@ (ÈA  AF@  Ak(AÚFA   Ak(AÚFA E@ (Ø" Ak(Aª FA   Ak(Aª FA E@ A A  AF@  Ak(A¼FA   Ak(A¼FA E@ (èA  AF@  Ak(A¾FA   Ak(A¾FA E@ (ÌA  A  Ak(A¶FA E   Ak(A¶FA E@ E@ (œ  A (˜"E A  Ak(A× k"AIA vAqqA E  AF  Ak(A× k"AIA vAqqA E@   Ak(A× k"AIA vAqqA E@ ( "E Er@  A!@ AG  Hq@  Ak("A  F A‰ FrA   Ak("A  F A‰ FrA E@ (ôA ! Aj!  •| (AFA (AF @@ ( J@ ( Atj( (Ä@  Aj!  A (E@ +"Df  ( ·cA   œaA @ ª A I  Ak(Aš FA @  Ak(Aš FA E@ #Aý  #Aç z AàîÄ@ @ (" (XG@ AF@ (PAj6P 6X   (X6 A A Ê Ä@ @ +¶8L  *L»9 A A Ø E@A  Ak(A× k"AIA vAqqA @  Ak(A× k"AIA vAqqA E@ (ÿ   Ak(A® FA E@A  Ak(A® FA E@ (!A!@ ( J@ ( Atj((ÿ "@  Aj!  A × E@A @ AH@@@@@@@@@@@@@@@@@@@@@@   ($  (,  (4  (\  (d  (P  (Ì  (Ð (Ô (ü („ (¨ (¼  (”  (œ  (¼  (Ì  (è  (Ø  (ì  A "  Ak(Aš FA A @  Ak(Aš FA E@  Aj!  A ½#|}~@@ ("$÷ "%AN@ -dE  $Ak(Av" Ak"MA $ Atj/ Aøk! %E@ *¤ *œ! * ! *˜! A6    AF »9  }  ¹ *H! *D! *@! *T! *P! *L —!! " ! ! ! ™!! " ! ! !  ! %AF@ A6    AF »9 %AF@ A6    AF »#¼£9 A6  AF  »9  $AðåÄ@ -dE  |  ¹ *L» ™» ! A6  9  $AÀÚÄ@ -dE  -¨! A6  :  $A ÚÄ@  Ak(A½FA E   Ak(A½FA E@ *Ø»! A6  9  $A°ÍÄ@  Ak(AÙFA @  Ak(AÙFA E@ -È! A6  :  $A°ÍÄA $AÐÎÄ @  Ak(A¼FA E   Ak(A¼FA E@ $A°ÍÄ@ -È! A6  : *Ì»! A6  9  $A°ÙÄA $A€�Ä @ ‚ !!!"" “C\  ! ! A " C^E Aÿ C€?`  »Dào@¢"›" Dð¿  Dà¿  e« A C^E Aÿ C€?`  »Dào@¢"›" Dð¿  Dà¿  e« AtA C^E Aÿ C€?`  »Dào@¢"›" Dð¿  Dà¿  e« AtrA C^E Aÿ C€?`  »Dào@¢"›" Dð¿  Dà¿  e« Atrr! A6  6  A $AÀ°Ä A $Að²Ä A "AN@  Ak(AÏFA E   Ak(AÏFA E@ | ( " Ak(AÎFA   Ak(AÎFA E@ A " (ÈA "| -0@ ¤ *L»"Db| +È £D D  +È ! A6  9   $ù "(AF@@@ ("AN ALA @  Ak(AÝFA E   Ak(AÝFA E@ (AF@ *Ø»! A6  9 (AF@ (Ü*X»! A6  9 (AF (Ü-E (Ü-F ! A6  : A  -dE (AFA (AF @  Ak(AØFA E   Ak(AØFA E@ (AF} *œ *˜ »!  ¦!#!"!!! !!!!!!!!!!!! ! "! !! (E@ ("AH  A6   AF  »9A   -PA E * ” * Œ" ”’ * ”’ *0C€?”’! * ” * ”’ *( ”’ *8C€?”’! ! * ” * ”’ *, ”’ * (AF@  6  ž (AF@ Dð¿9A E A  AÐéÔ"E  Ak(Av "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒA A! "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A "@ (AG@A€ê ÂAðëÂ!  (! (" ( " ( O@ ( Atj("E@  (("( O@ ( Atj("E@  6  ž  (·9  AÀ“ Â"6  ž  (AF@A E A  AÐéÔ"E  Ak(Av "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒA A! "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A "@ (AG@A€ê ÂA°ìÂ!  (! (" (("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("6  ž  AÀ“ Â"6  ž A E  � " b@A€ê ÂAÀéÂ!   9 A  (E@ AàØ ( ("( ( AÐùî"6  ž A E  ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  Aj!  A!@  (( H (A E@  ("( O@ ( Atj(" @ " (("( O@ ( Atj("E@ AA (( AL6@  AÐãÔ" Ak(AvA E Ak(Av ( A! A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk! @ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s ÒA  ( A! A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk! @ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " (AGA A ( G @Aðä ÂA�ä (Â! (E@ AàØ ( ("( ( AÐùî"6  ž   (6 Aj!  A!@  (0( H (A E@  (0"( O@ ( Atj("@  (("( O@ ( Atj(" E@ (! A!@ ( H (A E@@ " ( O@ ( Atj(" E@ (A (AÐàÄ @  A�áÔ"E  Ak(AvE@ (E@ AàØ ( ("( (AÀáAÐùî"6  ž  Ak(AvA! "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒA A! "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!  (   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (A "@ (AG@A ã ÂAàâÂ! (E@ AàØ ( ("( ( AÐùî"6  ž  (! (" (("( O@ ( Atj("E@ (! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  (!AÀ“ Â! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  Aj!  (A ( ! ("@ ô E@A Aé˜"¸ AàØ6 6 A6 A6 A€Ù6  AAæ˜"A: A6 A� 6 A6 A: 6 ž  6 A6 ô ÙAA˜"A6 A6 A6 A6 Aš!Ü !A!@ ( J@ ( Atj(� @ ( O@ ( Atj("E@ ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ê# "E@Õ !  A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " - A  A€¿× A  AðŸÄA A Að•Ä E „ ( E@A�  ( "AF@ (("E@  A ( AkŸ"( ( A°Ä¦AÐå ( " Ak"M@ ( Atj("E@  �~ - (AFA  )BSA @ (A°è )­Â ((  (AGA @A�  )"BY  (4 SA @A�  AA˜"A6 A6 A6 A6 Aš!A!@ (( J@ A «A Å  ("( O@ ( Atj("E@ ÂA �Â! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (Aàç ‘ ÂA°ŽÂ )­Â ÖA°“Aà“ (AFAðã (ÂAÐãÂ!   ” @ AÐäÂA�ÏAÀ“ Ak(AvA€å ÁAÅAGA  ÂÂA�ä  AÐäÂA�ÏAÀ“ Ak(AvA€å ÁAÅAGA  ÂÂA°ŽÂ ÂAÀ…  ä (AGA  × E@A # "E@Õ ! A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " - A  - A E ß Ak(AvE@A ç A �Ä@A�  A�ÒAÇ@AÐç A�Ò#Ã@AÐÞ A�ÒÍ!A!@ ( J@ ( Atj("Ak(AvE@A ß AàžÄ@AÐè A �Ä@A�é A �AÅAG@AÀê ÂAðé Aj!  A� ¹ (AG@A @  ($( H  ( ( HA @  ($"( O@ ( Atj("E@ (AFA (AF  ( ÄA @  ( "( O@ ( Atj("E@  Aj!  A ¯A!@ ( " J@  M@ ( Atj("@ ! Ak!@ AN  ( O@ ( Atj("E@ ( ( JA  ( O@ ( Atj("E@ ( ( F  ( O@ ( Atj("E@ ( (JA A @  ( O@ ( Atj("@ Aj œ Ak!  Aj œ Aj!  §} ¶! (" ( " Aj! (AvK@ AA™ ( Atj 8 6 ¶! (" ( " Aj! (AvK@ AA™ ( Atj 8 6 ¶! (" ( " Aj! (AvK@ AA™ ( Atj 8 6 (" ( " Aj! (AvK@ AA™ ( Atj 8 6 (" ( " Aj! (AvK@ AA™ ( Atj 8 6 (" ( " Aj! (AvK@ AA™ ( Atj 8 6 ¶! (" ( " Aj! (AvK@ AA™ ( Atj 8 6 ¶! ("( " Aj! (AvK@ AA™ ( Atj 8 6 ´  j! ( "( "Aj!  (AvK@  AA™ ( Atj 6  6  j! ( "( "Aj!  (AvK@  AA™ ( Atj 6  6  j! ( "( "Aj!  (AvK@  AA™ ( Atj 6  6  j! ( "( "Aj!  (AvK@  AA™ ( Atj 6  6  j! ( "( "Aj!  (AvK@  AA™ ( Atj 6  6  j! ( "( "Aj!  (AvK@ AA™ ( Atj 6 6 Á AШ Ä@A4A× ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A6 C€?8 C€?8 C€?8$ A6( A6, A60  AÀ¬ Ä@A0AØ ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A6 C?8 C€?8 AÀ6$ A 6( A:,  AÀ± Ä@A4AÙ ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A6 C?8 C?8 C@8$ AÀ6( A6, A:0 A:1  AÀ· Ä@A· E A!A ( " E ALr #Ô! (!@  H@  Atj( F@   Aj!  A " ( O@ ( Atj("E@ AAç ˜"A6 A6 A6 A6 A: A� 6 (" ! ( j!  ("6  (" H" A AN6  (" AH (  ("  H " J6 A�! ( " !  Al j‰  AÐ>· E A Aߘ" A6 A6 A6 AüÿÿÿK@ A¦˜" 6 6 6AAî ˜" A6 A6 A6 A6  š" 6$  žAAÓ˜" A6 A6 A6 A6 š!A!A ( " E ALr #Ñ! (! @  H@ Atj( F@   Aj!  A " ( O@ ( Atj("E@ AAç ˜"A6 A6 A6 A6 A: A� 6 (" ! ( j!  ("6   ("  H" A AN6  (" AH ( (" H "  J6 A�!AAá˜" A6 A6 A6 A6 Aš!(AAÿ˜" A6 A6 A6 A6 Aš!@@  H -A   �’!   �’! �! �! -  GA ¬ ­ ­|T @A°� A «ÂA€� A ªÂA°Ä A ªÂAÀŒÂ A ªÂA�Á A «Â! -E@ A:  6  ž  ( (k6  j!AAט" ü A6 A6 6 6 (( " Aj" ((AvK@ ( AA™ (( Atj" 6 ( At Ÿ ( 6 AAõ ˜" A6 A6 6 6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!   Að=· E A!A ( "E ALr #Ò! (! @  H@ Atj( F@   Aj!  A " " ( O@ ( Atj("E@ AAç ˜"A6 A6 A6 A6 A: A� 6 ("! ( j!  ("6   ("  J"A AN6  (" AH (  ("  J "  H6 A�!AAâ˜"A6 A6 A6 A6 Aš!)AAÿ˜"A6 A6 A6 A6 Aš!A!@@  J -A �!   �’! �"AFA   ’ ! �! �! �! - AAؘ"ü A6 A6 A6 A6  6  6  ž AF@ A6 A€€€€xq@    Aÿÿÿÿq’"6  ž  O@AÐŽ A «ÂA ŽÂ A ªÂAà�Â! -E@ A:  6  ž  ( (k6    )( O@ )( Atj("E@ A � ("E  A �Ä@ (  A�Ò (  "6  ž AG@   “! -A (AG @AÐŽ A «ÂA°�Â@@@@@@@@@@@@@@@@@@@@@@@@@@ (  A°�  A°é  AÐé  A°Ú  Aðé  A€“  Aà’  AЦ  Að¦  A�§  A°§  AЧ  Að§ A�¨ AÀ¨ AਠAÀê A�ê  A°“  Aà“  AÀ�  A€�  AÀ�  Að�  A°‘  Að ÂAðŽÂ! -E@ A:  6  ž  ( (k6   6  ž GA ¬ ­ ­|T @AÐŽ A «ÂA€� A ªÂA°Ä A ªÂAÀŒÂ A ªÂA�Á A «Â! -E@ A:  6  ž  ( (k6  j! )( "Aj" )(AvK@ ) AA™ )( Atj" 6 ) At  Ÿ ) 6 AAõ ˜"A6 A6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   A�>· E  G@A°�  kA ªÂAð�Â! (Ak(AvE@  6  ž A  A!@ (( J@  ( O@ ( Atj("E@    (( Atj(     » E  Aj!  A!@ )( J@  ( O@ ( Atj("E@    )( Atj(     » E  Aj!  A!A ( "E ALr #Ð! (!@  J@  Atj( F@   Aj!  A " ( O@ ( Atj("E@ AAç ˜" A6 A6 A6 A6 A: A� 6 ("! ( j! ("6  ("  J"A AN6 (" AH (  ("  J "  H6 A�!AAà˜"A6 A6 A6 A6 Aš!*A!@  H -A E@  �’!  �’!  �’!AAÖ˜"€  6  6  6  �"AFA  ’ "6  ž *( "Aj" *(AvK@ * AA™ *( Atj" 6 * At  Ÿ * 6 Aj!   AÐ=· E A!A ( "E ALr #Õ! (!@  J@  Atj( F@   Aj!  A " ( O@ ( Atj("E@ AAç ˜" A6 A6 A6 A6 A: A� 6 ("! ( j! ("6  ("  J"A AN6 (" AH (  ("  J "  H6 A�!AAã˜"A6 A6 A6 A6 Aš!+@  #J -A E@  �’!  �’!  �’!  �’!A AÙ˜"û  6  6  6  6  �6 +( "Aj" +(AvK@ + AA™ +( Atj" 6 + At  Ÿ + 6 #Aj!#   Að>· E A!A ( "E ALr #Ö! (!@  J@  Atj( F@   Aj!  A " ( O@ ( Atj("E@ AAç ˜"A6 A6 A6 A6 A: A� 6 ("! ( j!  "("6   ("  H"A AN6  (" AH (  ("  J "  J6 A �! �!  ( " Atj‰@ ( AjAxq" ( (kJ@ -E@ A: A�Ý6 A�Ýž  ( (k6   6 ( ! -A ( (k¬ ¬ ­|T @A°‘ A ªÂAà�Â! -E@ A:  6  ž  ( (k6 AAç˜"A6 A6 A6 A6 Aš!-AA˜"A6 A6 A6 A6 Aš!AA¤˜"A6 A6 A6 A6 Aš! -E@  ‰ A!#@@  #J -A   �’!   �’! �! �@Aà‘ #A «ÂAЋÂ! -E@ A:  6  ž  ( (k6 �! �! Ž!< - ­ ­ ­|T@Aà‘ #A «ÂA�’Â! -E@ A:  6  ž  ( (k6  A Aߘ"A6 A6 A6 AüÿÿÿK@  A¦˜"6  6  6 @ ("(! ( j j" j!A Aߘ" ("6  ž  AH  j"A AJ    H " (j6  AH  j"A AJ    H "   J k6 (" (J@ ( ( ü A(AÚ˜"�  6  47  6  <7  6  ž AG@   ’! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "Aj" (AvK@  AA™ ( Atj #6  6 -( "Aj" -(AvK@ - AA™ -( Atj" 6 - At  Ÿ - 6 #Aj!#  -E@  ( (k" j"  H‰  A�?· E ( AJ@ ° "E@ (Ak(AvE@ AÐ’6 AÐ’ž A  A!@ ( J@ ( Atj((@ (Ak(AvE@ Aà“6 Aà“ž A   ( O@ ( Atj(" -( O@ -( Atj("@  ( O@ ( Atj("E@  6$  ž Aj!  @ A�!A!@@  J -A �! �! AA’˜"A� 6 A� 6 A� 6 #66 #66  �’!  �’!  6  6 -   rE@ '(  AF *( IA @ *( O@ *( Atj("E@ (  AF (( IA @ (( O@ (( Atj("E@ (  AF )( IA @ )( O@ )( Atj("E@ (  AF +( IA @ +( O@ +( Atj("E@ (  AF -( IA @ -( O@ -( Atj("E@ (  AF ( IA @ ( M@ ( Atj("E@ ("@ (  (AF@ (  ("@ ((  AÐÜ A ªÂA�Ò A ªÂA ÜÂ! -E@ A: 6 ž ( (k6 A "@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A �!A!@@  J -A �! �!  �”! - AF  *( IA @  *( O@ *( Atj("E@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  AF  +( IA @  +( O@ +( Atj("E@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A°• A ªÂA�Ò A ªÂAð”Â! -E@ A: 6 ž ( (k6 Aj!  A!@  ( H -A E@ '(!  ( O@  ( Atj(”! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@  1( H -A E@ '(!  1( O@  1( Atj(”! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   AÐ?· E  A!@ ($" ( J@ " ( O@ ( Atj("@A!@ ((" ( J@  ( O@ ( Atj(" E@ (A°ÍÄ@  ((" ( O@ ( Atj(" E@  (" 6  ž Aj!  Aj!  AAߘ"A6 A6 A6 A6 Aš! A! A ( "E ALr #Ú! (!@  J@  Atj( F@  Aj!  A AN@A! A ( "E ALr #Ú! (!@  J@  Atj( F@  Aj!  A " ( O@ ( Atj("E@ AA˜" A6 A6 A6 A6 Aš! (" (! (" (j!A Aߘ" ("6  ž  AH  j"A AJ    H " (j6  AH  j"A AJ    H "   J k6A!AAç ˜"A6 A6 A6 A6 A: A� 6  6  ("A AL"A AN6  (" ("  H6 �!@ -E AGq@A ¡ A ªÂAà ÂAA ªÂ!  A A÷ ˜""AAAø A¤6 AAAßA¤6 AAAßA¤6 A �! B!<@@  H -A AAö ˜" A6 A: A� 6 A� 6 �6 AŠ (! (  ( "Aj6 j!  (O@ ( j-A ! A� A�"E   �!A� -  ( (Ò "6 ž A� A�"E   �!A� -  ( (Ò "6 ž - AK@A€Ø A «ÂAÐ× A ªÂA ×Â! -E@ A:  6  ž  ( (k6  AF: 5 ÂAðÛ (Â! (Ak(AvE@ 6 ž A  A E@A ($ œAAј" ý A6 6 ž  AF AFr -E@ (Ak(AvE@ A°ß6 A°ßž A (AvO@  ( Atj(”! AF -A A (AG @A�Þ A «ÂAà™Â!  AAј" ý 6 6 ž A�Þ A «ÂA — A ªÂA �Â!  AAϘ" þ (AvO@  ( Atj(’! (Av M@  ( Atj(“! 6 6 (O@ ( j-AG:AAј" ý A6 6 ž ! -@A�Þ A «ÂAðÛ (Â!  œ (" ( "Aj! (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  A (Ak(AvE@ 6 ž A ‘ AJ@A°ÙAA «Â! "-E@ A: 6 ž  ( (k6 A AAù˜"ó A� A�"E  �!A� -  ( (Ò "6  ž "A� A�"E  �!A� -  ( (Ò "6  ž A�!@  H -A E@A� A�"E  �!A� -  ( (Ò !A� A�"E  �!A� -  ( (Ò ! ( !AAø˜"A6 A6  6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A�!A!@  H -A E@ (!A� A�"E  �!A� -  ( (Ò ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A�!A!@  H -A E@ Aj¼ "E@A ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  -@A (Ak(AvE@ -E@ A: A€Ú6 A€Úž ( (k6 A  ‡ A�!@  H -A E@ A¼ "E@ ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  É "Ak(j!@  I@ /"A€I Aj A€I Aj A€øqA€°F Aj Iq@ /A€øqA€¸F@ Aj! Aj!  Aj ! Aj!  A¦˜! Ak(Av Ñ Ak(!A Aߘ" 6  ž  6  6A! "Ak( j!@ I@ /"A€I Aj A€I Aj A€øqA€°F Aj Iq@ /A€øqA€¸F@ Aj! Aj!  Aj ! Aj!  A¦˜!  Ak(Av Ñ Ak(!A Aߘ" 6  ž  6  6 (" (" H!A!@ H@ (O@ (O@ ( j- ( j-G@ (O@ (O@ ( j- ( j-k Aj!  ( (k ! Ak(Av A�Ò   Ÿ AÀíAÇE@A Ak(Av"A¼í(Av"J  MA Atj/ AþFA @ Aj!@  Ak(Av"H  OA Atj/ A0NA   Ak(AvOA Atj/ A9LA @ Aj!   AjF@A !  Ak(AvF@A�   Ak(AvOA Atj/ A/G@A AjAÿÿÿÿÈ b �¾ �¾ �¾ �¾ �¾ �¾ �¾ �¾ �¾ �¾ �¾ �¾ �¾ �¾ �¾ �¾ ˜ } �¾! �¾! �¾! �¾! �¾! �¾! �¾! �¾! �¾! �¾! A(A¿ ˜"C8 C8 C8A´*! A°*! A¬*! A¨*8 8 8 8 C€?8 C€?8 C€?8$ 8 8 8 8 8 8 8 8 8 8$ ¥ }  ( "6  ž  ("6  ž  ("6  ž * ! *! *!  *8  8  8  8  *(8(  *080  -8:8  -9:9 *H! *D! *@!  *<8<  8@  8D  8H  *L8L  -T:T  *X8X  -`:`  (h6h  *l8l  (p6p  -t:t  -u:u *€! *|!  *x8x  8|  8€ *Œ! *ˆ!  *„8„  8ˆ  8Œ  (�6�  -”:”  (˜6˜  *œ8œ  * 8   *¤8¤ *¸! *´! *°!  *¬8¬  8°  8´  8¸  -À:À  *Ä8Ä  *È8È  *Ø8Ø  -Ü:Ü  *à8à  *ä8ä *ø! *ô! *ð!  *ì8ì  8ð  8ô  8ø  *€8€  -ˆ:ˆ  *Œ8Œ  *�8�  *˜8˜  * 8  *°! *¬! *¨!  *¤8¤  8¨  8¬  8°  *´8´  *¸8¸  *À8À  *Ä8Ä  *È8È  -Ð:Ð  *Ô8Ô *è! *ä! *à!  *Ü8Ü  8à  8ä  8è  (ô"6ô  ž  (ø6øA!@ AH@  @@@@@@@@@@@@@@@@@@@@@   ($  (,  (4  (\  (d  (P  (Ì  (Ð (Ô (ü („ (¨ (¼  (”  (œ  (¼  (Ì  (è  (Ø  (ì  A Î Aj!  AA¡ ˜"A6 A6 A6 A6 Aš!@ (ð"( J@  ( O@ ( Atj("E@ AA¢ ˜"A6 C8 C8 C8 C€?8 C€?8  (6 *!  *8  8  * 8 *!  *8  8 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6ð  ž ¶“ |AØAÁ˜" ì 6 ž 6 ž ® AAÈ"6 žA(A� ˜"A6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6 AA¦˜!AA¤˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6 A6 A6$  "6 ! Ak(Av!A!A!@  H@  Ak(AvOA  Atj/ "A F@ Aj! Aj"!  A F A Fr A Fr A Fr A Fr@ Aj!  A/F Aj" Hq  Ak(AvOA  Atj/ A/FA @@  H  Ak(AvOA  Atj/ A GA @ Aj!   A/F Aj" Hq  Ak(AvOA  Atj/ A*FA @ ("( " Aj!  (AvK@  AA™ !  kAj! ( Atj 6  6 A! Aj!@  H AJq@  Ak(AvOA  Atj/ "A F@ Aj! Aj"! A/F Aj" Hq Ak(AvOA  Atj/ A*FA  Aj! Aj A*F Aj" Hq  Ak(AvOA  Atj/ A/FA  Ak! Aj Aj !  ("( " Aj! (AvK@  AA™ ( Atj 6  6 AJ@ 6 6$   kAj! A AßF AÚL AÁNqA AúL AáNq @ !@  HA  Ak(AvOA  Atj/ "AßF AÚL AÁNqA AúL AáNq A A9L A0Nq A @ Aj!  ("( " Aj!  (AvK@  AA™ ( AtjA6  6 ("( " Aj!  (AvK@  AA™ ( Atj 6  6 ( "( "Aj!  (AvK@  AA™ ( Atj 6  6 ("( "Aj!  (AvK@  AA™ ( Atj 6  6 ("( "Aj!  (AvK@  AA™ ( Atj 6  6  A9L A0NqA A.F Aj" Hq  Ak(AvOA  Atj/ "A9L A0NqA @ ! A0F Aj" Hq  Ak(AvOA  Atj/ AøFA Aj" Ak(AvOA  Atj/ AØF A @ Aj!@  H  Ak(AvOA  Atj/ "A9L A0NqA AÆL AÁNq A AæL AáNq A  Ak(AvOA  Atj/ A.F A @ Aj!   H  Ak(AvOA  Atj/ AðFA  Ak(AvOA  Atj/ AÐF A @ Aj" H  Ak(AvOA  Atj/ A+FA  Ak(AvOA  Atj/ A-F A @ Aj! @  H  Ak(AvOA  Atj/ "A9L A0NqA @ Aj!  @  H  Ak(AvOA  Atj/ "A9L A0NqA  Ak(AvOA  Atj/ A.F A @ Aj!   H  Ak(AvOA  Atj/ AåFA  Ak(AvOA  Atj/ AÅF A @ Aj" H  Ak(AvOA  Atj/ A+FA  Ak(AvOA  Atj/ A-F A @ Aj! @  H  Ak(AvOA  Atj/ "A9L A0NqA @ Aj!   H@ Aj   Ak(AvOA  Atj/ "AèF AæFr AéFr AõFr! ("( " Aj!  (AvK@  AA™ ( AtjA6  6 ("( " Aj!  (AvK@  AA™ ( Atj 6  6 ( "( "Aj!  (AvK@  AA™ ( Atj 6  6 ("( "Aj!  (AvK@  AA™ ( Atj 6  6 ("( "Aj!  (AvK@  AA™ ( Atj 6  6  A€H@ ("( "Aj!  (AvK@  AA™ ( AtjA6 ("( "Aj!  (AvK@  AA™ ( AtjA6  6 ("( "Aj!  (AvK@  AA™ ( Atj 6  6 ( "( "Aj!  (AvK@  AA™ ( Atj Aj6  6 ("( "Aj!  (AvK@  AA™ ( Atj 6  6 ("( "Aj!  (AvK@  AA™ ( Atj 6  6 Aj!  A(A‹ ˜"A6 A6 A6AA¦˜!AAë˜" 6  ž  6 A6 A6  6 A� 6 A� 6AA¨˜"½  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6 A:$A!  6  "6@ (( J@ ( "( "Aj!  (K@ AA™ ( jA: 6 Aj!  ( AJ@ (T!AA½˜"A6 A6 A6 A6 A6 A6 ($! ( ! A6 AÐÜ6 A€Ý6 AÐÝ6 6 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A!@ ("( J@ AN ( O@ ( Atj(A AF@ AÐÜ AÀ� AHA (( N A�  ("( O@ ( ( Atj( ( "( M@ ( Atj(È ÂA€ÞÂAðÞ£ Aj!  (!A!@@ (" ((( N ¥!  6 E@  AФ¦@ A:$  "Å "AHAAA¤˜"A6 A6 A6 A6 Aš!@  H@ AN  (( HA   ("( O@ ( Atj(A AF@ AHA  (( N A�   ("( O@ ( ( Atj( ( "( M@ ( Atj(È !#Æ ÂAN@ ( "Aj" (AvK@  AA™ ( Atj 6  6 #÷ ÂAN ( AJA @ ( "AL@ ( Ak"Atj(  6 Aj!  ( "AJ  Ak"M@ ( Atj(A "AN@#÷!#Æ  (( NA�  ("( M@ ( ( Atj(  ( "( O@ ( Atj(È Â!  Ak(AvO@  Atj("E@  Å ! AÐÜ Aॠ (( NA�   ("( O@ ( ( Atj(  ( "( O@ ( Atj(È ÂA ¥ÂAЦ ÂA ¦Â AHA  (( N A�  ("( M@ ( ( Atj(  ( "( O@ ( Atj(È ÂA€¦Â  ("( O@ ( Atj(A «ÂA€’  ("( O@ ( Atj(A «Â£A€§ AHA (( N A�  ("( O@ ( ( Atj( ( "( M@ ( Atj(È ÂA€šÂ!A°¨AЧA�  A ž¦Â! ("(( "AJ Ak" ("( O@ ( Atj(A ! AJ Ak" (("( O@ Ak" (( " ( O@ ( Atj( ( Atj(j Ak" (("( O@ ( Atj(kA ! ((T!AA½˜"A6 A6 A6 A6 A6 A6 A6 AÐÜ6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (( ¤  (( 6   AФ¦@@ (! (! ¥  (¤ E@ AÐÜ A ‘A�’£ Aj"AN  (( HA   ("( O@ ( Atj(A A  AjA ’¦ E@ AÐÜ Aà’AÀ“£  Aj"AHA  (( N A�   ("( O@ ( ( Atj(  ( "( O@ ( Atj(È "A�”Ä@ (" 6 ž  #û ÂAN@ A€à AjAÀ“ ÂA�•ÂAà•A°áÂA �£ AÐÜ AjAÀ� ÂAà–ÂAÀ“£   A€©¦@ (! (! ¥  ("¤ Aj!@  H@  Aà�¦A  A ’¦ @ Aj!  AN  (( HA  ("( M@ ( Atj(A @ AÐÜ A�öA�÷£ Aj!  AHA  (( N A�  ("( M@ ( ( Atj(  ( "( O@ ( Atj(È !#ú Â"AH@ A€ˆ AÀ� ÂAЈÂAð‰A°áÂA°‰Â£ Aj!  (( �AN@ Aj!  AðŽ AÐŽAÇ AÀ� A��AÇ A�� Að�AÇ AÐ� A°�AÇ A€Ý Að�AÇ A� "Ak(Av@ (  ¥Ò@ AÀŠ AÀ� ÂA°®Â (  ¥Ò"E@ (ÂA°‹Â ÂA�‹ÂAà‹£ Aj!  (  ™ (("( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 AŒŒ(O@ A�Œj-E@Að� ÂA �Â!A �A°áÂA ŽÂ! AN  ((( HA   (("( O@ ( Atj( ("(( "AJ Ak" ("( O@ ( Atj(A ! AN  ((( HA   (("( O@ ( Atj(A ! ((T!AA½˜"A6 A6 A6 A6 A6 A6 A6 AÐŒ6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (! A€øÄ@ A6 A°øÄ@ A6 AàøÄ@ A6 A�ùÄ@ A6 AÀùÄ@ A6 A€úÄ@ A6 AÀúÄ@ A6 A€ûÄ@ A6 AðûÄ@ A: AàüÄ@ A6  A�ýÄ@ A6  AÀýÄ@ A6  A „Ä@ A:$ A þÄ@ A6( AÐþÄ@ A6( A�ÿÄ@ A6( AÀÿÄ@ A6( AðÿÄ@ A6, A°€Ä@ A6, Aà€Ä@ A6, A �Ä@ A:0 Aà�Ä@ A:1 Aà‚Ä@ A:2 A�ƒÄ@ A:3 AÀ†Ä@ A:4 Aj!    A°©¦@@ (! (! ¥   (¤ AjA ’¦@ A� 6 A� 6  Aj"AN  (( HA   ("( O@ ( Atj(A A AjA ’¦ @  Aj"AHA  (( N A�   ("( O@ ( ( Atj(  ( "( O@ ( Atj(È "6  ž A� 6  Aj"AN  (( HA   ("( O@ ( Atj(A A AjA �¦  Aj"AN  (( HA   ("( O@ ( Atj(A A A AjA ’¦ @  Aj"AHA  (( N A�   ("( O@ ( ( Atj(  ( "( O@ ( Atj(È "6  ž  Aj"AHA  (( N A�   ("( O@ ( ( Atj(  ( "( O@ ( Atj(È "6  ž  AÐÜ AÀóAàô£   A੦@@A! A! (! (! (! ¥   ("¤ Aj"AN (( HA  ("( M@ ( Atj(A A  AjA€’¦ E@ AÐÜ A°ÉA°ÊA°áÂA �£  AHA (( N A�  ("( M@ ( ( Atj( ( "( O@ ( Atj(È ""È  AÀ¡ AÀ� ÂAð¡ÂA€££AA  ÚAN@ Aà AÐË ÂA ÃÂA�Ä£  É @ A ² AÀ� ÂA€ÌÂAÐÌ£  AAŒ ˜" "A6 A6  Aj" Æ E@ A�Í AÀ� AHA  (( N A�   ("( O@ ( ( Atj(  ( "( O@ ( Atj(È ÂAàÍÂA°Î£  AØA¾˜"A6 A6 A6 D9 Dð?9 D9 AA¿˜ A A¿˜6( A� 6, A� 60 A64 A68 A6< A6@ A6D A6H A6L A:P A6T (!  6  6 ("( O@  ( Atj(64 ("( O@  ( Atj(68  ("6,  ž  ("60  ž (A F! @   (j"A€’¦@ Aj!@ H  Aà’¦A A  A ’¦ E@  Aà�¦@ Aj!  AN (( HA  ("( M@ ( Atj(A @ AÐÜ AðÏAàУ  AHA (( N A�  ("( M@ ( ( Atj( ( "( O@ ( Atj(È ! "Aj! A ÑÄ@ A (AF A (AF E@ AÐÑ A�ÒA Ó£  (Ar6 A ÔÄ@ (" AFA E@ AÐÑ AÐÔAÀÕ£  A€�¦E | (" Aj"A€�¦@  AjÇ š   Ç !  AA  A€�¦j"Aà�¦E | (" Aj"A€�¦@  AjÇ š   Ç !D!  AA  A€�¦j"Aà�¦@| (" Aj"A€�¦@  AjÇ š   Ç ! AA  A€�¦j! A  bA  b  bA  A �¦@ AÐÜ A°×A°Ø£  Aj!  (Ar6  9  9  9  A�ÙÄA AÀÙÄ A A€ÚÄ A AÀÚÄ A A€ÛÄ A A°ÛÄ A#ß ÂAN @ E@ AÐÑ  A�ßÂAÀÕ£  A�ÙÄ@  (Ar6 AÀÙÄ@  (Ar6 A€ÚÄ@  (Ar6 AÀÚÄ@  (A r6 A€ÛÄA A°ÛÄ @ @ AÐÑ AÐßAร A!  A€ÛÄ:P @ AÐÑ AÀàAร A! #ß Â6L #ù ÂAN@ A ª AÀç ÂA€çÂA �A°áÂAðç£ A è AÀ� ÂAðèÂA°é£  A€�¦@@ H  A �¦A E@ Aj!  Aj!  A!@ AH@  (("Ak(AvO@  AtjD9 Aj!  (AF (AqA @ (("Ak(AvAM@ Dð?9  Aà’¦@ @ A€ë AÀëA°ì£   (!@@@@@ (Ak A  A  A  A  A ! AAÀ˜"A6 A6 A6 A6 Aì!@  Aj"A௦A  Aàû¦ @ (AG  ((!Dð?D  A௦! Ak(AvE@  9  AjA ’¦A A€ë Aðð (ÂA ðÂA ñ£A  AN (( HA  (" ( M@ ( Atj(A AFA  A€�¦ @| (" A€�¦@  AjÇ š   Ç ! AA  A€�¦j!  bA  A ’¦ E AGr  ((! (AF@Dð?D Db! Ak(AvE@ 9A  AN (( HA  (" ( M@ ( Atj(A  Aj"AÀ’¦@@ H  A€“¦A E@ Aj!  Aj!  A€�¦E Aj!@ H  A �¦A E@  Aà�¦@ Aj!   A௦A  Aàû¦ @Dð?D  A௦! ( " Aj" (AvK@  AA™ ( Atj 9  6 Aj!  | (" A€�¦@ AjÇ š  Ç " b  ( " Aj" (AvK@  AA™ ( Atj 9  6 AA  A€�¦j!   A �¦  AjA ’¦A E ( AF@A!@ H@ ( E@ (+! (("Ak(Av M@  Atj 9 Aj!  A  ( G A!@ H@ ( O@ ( Atj+! (("Ak(Av M@  Atj 9 Aj!  A  A€ë Aðð (ÂA ðÂA ñ£A E  Ak!  A ’¦E@ H  AkA ’¦A @ AÐÜ AðíAðî£ AÐÜ AàïA Á£  (D"( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  AÐÜ AðÕAàÖ£   A€ª¦@@ (! (! (! ¥   (¤  Aj"A຦@ A€» AлA°¼£  AN (( HA  ("( M@ ( Atj(A A  AjA€’¦ E@ AÐÜ AнA°¾£  AHA (( N A�  ("( M@ ( ( Atj( ( "( O@ ( Atj(È ""È  AÀ¡ AÀ� ÂAð¡ÂA€££AA AAŒ ˜"A6 A6  Aj Æ  (" AFA A (AF A (AF A E@ A€» AjA€¿A�À£   ( AjjA ’¦E@ AÐÜ AàÀA Á£  É A  ÚAN @ A ² AÀ� ÂAÀÁÂA Â£  A!@ (@"( J@  ( O@ ( Atj("E@ ( Ä@ Aà Aàà ÂA ÃÂA�Ä£  Aj!  (@( AN@ AÐÄ AÐãAA «ÂA�ÅÂAÀÅ£  AA¼˜"A6 A6 A6 A6 A6 (!  6  6 ("( O@  ( Atj(6 ("( O@  ( Atj(6  (@( 6 (@"( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6   AÀ½¦A  AÀÕ ¦   AjA੦A @ A ª AÀ“ AHA (( N A�  ("( M@ ( ( Atj( ( "( O@ ( Atj(È ÂAðªÂAÀ«£ ¥  (¤  A ž¦@@ (! (Aj"AN (( HA  ("( M@ ( Atj(A E@ AHA (( N A�  ("( O@ ( ( Atj( ( "( O@ ( Atj(È "Aà­ÄA A€®ÄAAA A€µÄ "AN@  AjA€�¦  AjA �¦A   AjA€ ¦A "@ @ AF@ (-6@ AÐÜ A€¹Aร (A:6 (-7@ AÐÜ AйAร (A:7  (-5@ AÐÜ A�¸Aร (A:5  A µ Aж ÂAàµÂAà· ÂAð¶Â£ ¥ @ ("( "Aj!  (AvK@  AA™ ( Atj Aj6  6 (Ak! ("( "Aj!  (AvK@ AA™ ( Atj 6 6 ( "( "Aj!  (AvK@ AA™ ( Atj 6 6  É @ A ² AÀ� ÂAà²ÂA º£ ¥   AÀ“¦  AjA ­¦A  AjAÀ­¦ A  AjAà­¦ A  AjA€®¦ A  AjA ®¦ A @ AÐÜ AÀ®Aà°A°áÂAЯ£ (" AÀž¦A  A€ž¦ A  A€Ÿ¦ A  Aàž¦  Aj  Aà�¦  Aj"AÀ’¦@ (( H  A€“¦A E@ Aj!  Aj A "AHA (( N A AN (( HA  ("( O@ ( Atj(A E@ AHA (( N A�  ("( M@ ( ( Atj( ( "( O@ ( Atj(È "É @ A ² AÀ� ÂAà²ÂAð³£ ¥ A!  ( Ak(AvA -$ AA!@ (T"( J@ ( O@ ( Atj("E@ A (A€àÄ  Aj!  A E@ (TAA½˜"A6 A6 A6 A6 A6 A6AðáA°áÂA �Â! A6 AÐÜ6 AÀà6 6 A6 A6 ž A! (! (!@ ("( J@@ AN ( O@ ( Atj(A A ( "( O@ ( j- AHA (( N A�  ("( M@ ( ( Atj( ( "( O@ ( Atj(È "È  AÀ¡ AÀ� ÂAð¡ÂA€££AA AJ  AkA �¦A Aà�Ä@ A:8 A€‚Ä@ A:9 AàœÄ@ A:: AàôÄ@ A:; AÐ…Ä@ A:< AÐ÷Ä@ A:= A€øÄ@ A:> AÐöÄ@ A:? #Þ ÂAN@ A°› AÀœ ÂA€œÂA �A°áÂAðœÂ£   ÚAN@  AjA€’¦A  AkAÀ�¦ A  AkAà�¦ A  AkA€ž¦ A  AkA ž¦ A  AkAÀž¦ A  AkAàž¦ A  AkA€Ÿ¦ AA!A  Ak"A€“¦  AkA€“¦A A  AkA€�¦ @ AN@  A€“¦@ Aj!  AÀ’¦@ Ak"E@  AkAà�¦  A  A ’¦A  A€ ¦ A  AÀ ¦ A  A€�¦ A  A �¦  Ak!  A @ A Ÿ AÀ� ÂAàŸÂA° £ Aj!  A! (!@ ( "( J@  ( O@ ( Atj(! At" ("( O@ ( Atj(! AtAj" ("( O@ ( Atj(! Aj!@ H@@ AN (( HA  ("( O@ ( Atj(A A AJ  AkA �¦A AHA (( N A�  ("( O@ ( ( Atj( ( "( M@ ( Atj(È ! A  AjA€�¦ #ø ÂANA @ A�ð AÐðÂA€óAðñÂA°áÂAÀñ£  #Ú ÂAN #Û ÂAN!#Ü ÂAN!#Ý ÂAN"  rrE  AF   AA˜"A6 A6 A6 A6 Aš! @ ( " Aj" (AvK@  AA™ ( Atj" AÀŠ6  At AÀŠŸ  6 @ ( "Aj" (AvK@  AA™ ( Atj"AàŠ6  At AàŠŸ  6 @ ( "Aj" (AvK@  AA™ ( Atj"A�‹6  At A�‹Ÿ  6 A�ð Aàç ( ( Að‹¦ÂAЋÂ AàŠA�‹ AFAÀŠ ÂA°‹ÂAÀŒA°áÂA�ŒÂ£ Aj!  Aj!  A!A!A! (P"(  AAA™ A6 @ (D"( J@  ( O@ ( Atj("@@ (A F@ A6< A6@ 6D Aj"6H  @@@@ (Ak A  A  A  A "  jAk ml"6< @@@@@ (Ak A  A  A  A  A At6@ A6D A6H A6T  (@j! Aj!  AjAmAt"AHA 6H 6LA!@ (D"( J@  ( O@ ( Atj("E@ (A F@ (LAt -PAGj"!A!A (P"( "E ALr  (!@ J@  Atj( F@   Aj!  A "AH@ (P"( ! ( "Aj" (AvK@ AA™ ( Atj 6 6  6T Aj!  A! (!A!@ (D"( J@  ( O@ ( Atj("E@ AÀF@ (T!AA½˜"A6 A6 A6 A6 A6 A6AÐãAÀA «ÂA ãÂ! (8! (4! A6 Aàâ6 6 A�ä6 6 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (A F@ Aj"AF@ (T!AA½˜"A6 A6 A6 A6 A6 A6AÐãAA «ÂA�åÂ! (8! (4! A6 AÐä6 6 Aðå6 6 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (<"AN (@ jA€ JA @ (T!AA½˜"A6 A6 A6 A6 A6 A6AÀçA€ A «ÂA çÂ! (8! (4! A6 Aàæ6 6 A�è6 6 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  Aj!  AL (P( (LjAJA @A!A!@ (D"( J@  ( O@ ( Atj("E@ (A F@  (D"( O@ ( Atj("E@ Aj!  E@ (T!AA½˜"A6 A6 A6 A6 A6 A6A é (P( (LjA «ÂAàèÂAA «Â! (8! (4! A6 AÐä6 6 A€ê6 6 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ´AA¤˜"A6 A6 A6 A6 Aš!@ (( " J@@  H ANq  ("( O@ ( Atj(A AG AHA  (( N A�   ("( O@ ( ( Atj( " ( "( O@ ( Atj(È !#Æ ÂAN@#Æ Â! "( "Aj!  (AvK@  AA™ ( Atj 6  6  #÷ Â"AHA ( E ( " Ak"M@  ( Atj(G@  ( "AL@ ( Ak"Atj(  6 Aj!  A ï AN  (( HA  " ("( O@ ( Atj(A @A AHA  (( N A�  " ("( O@ ( ( Atj(  ( "( O@ ( Atj(È ! A6 A€ÆÄ@ A6 A ÆÄ@ A6 AÀÆÄ@ A6 A°éÄ@ A6 AàÆÄ@ A6 A€ÇÄ@ A6 A ÇÄ@ A6 AÀÇÄ@ A6 AàÇÄ@ A6 A€ÈÄ@ A 6 A ÈÄA AÀÈÄ A AàÈÄ A A€ÉÄ  AjAÀ’¦A  AjA€“¦A @ A6 ! Aj"AHA (( N A�  ("( O@ ( ( Atj( ( "( O@ ( Atj(È ! A€ÉÄ@ A€ÆÄE@A A 6A A ÈÄAAA AÀÈÄ ! A€ÆÄ@  AFAAA AF 6 A ÆÄ@  AFAAA AF 6A A A ã~ AN  (( HA  ("( M@ ( Atj(A AG@Dø AHA  (( N A�   ("( O@ ( ( Atj(  ( "( O@ ( Atj(È "Ak(AvAk!  Ak(AvOA Atj/ ! A€óAÇA A óAÇ "A AèF AæFr AéFr AõFr  A Ak(AvAkÈ  AõF AéFrA  A Ak(AvAkÈ ! @ A �AÅAGA A€žAÅAG A A –AÅAG @Dø ~ AAÿÿÿÿÈ"Ak(Av!@  /"A€rA F A kAMr A€-I A A€@jA M @@ A€-F A¨ÀF A©ÀF A¯ÀF AßÀF A€àF AÿýF  A  A   @ Aj! Ak!  B E B! /"A+F A-F"rB Ak"E BB ! Aj"/  A0F AJq /A rAøFA @ Ak! Aj! !@@ "Ak! E /"A0kA I A0k AÁkAM A7kA A×k AákAK "AO Aj! ­ B†|!  B F   ~ ¹ ¥ 0 AÀßÄA A�¤AÇ A A°¤AÅAG „ A ´AÇA AÀ´AÇ A Aà´AÇ @A #Ú ÂANA#Û ÂAN A#Ü ÂAN A#Ý ÂAN A#Þ ÂAN ³ |~ A�! �! -@A @ ( (k ( kJ@AÀã A «ÂAà�Â!  ( j! AAî˜"A6 A6 A6 A6 Aš!@ H -A E@A!A! AŠ (! ( ( "Aj6 j!  (O@ ( j-A !@ - AJ@Aðä A «ÂA �Â! -E@ A: 6 ž ( (k6  E AF@ AŠ (! ( ( "Aj6 j!  (O@ ( j-A "AK@ -E@ A: A°å6 A°åž ( (k6 A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  AF:   AF@ Ž!A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  7   AF@ Ž¿!A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  9   AF AFr AFr AFr AFr AFr@A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$  6  �!  ( O@Aà‡ A ªÂA ‡Â ( A «ÂA �Â! -E@ A: 6 ž ( (k6 A�   ( O@ ( Atj("E@  "6  ž   AF" AF AFr A Fr A Fr A Fr A Fr A Fr AFr AFr AFrr AFr AFr AFr@ A�!  AoA @AÐæ A «ÂA€æÂ! -E@ A: 6 ž ( (k6  AqA AF@Aàç A «ÂA�çÂ! -E@ A: 6 ž ( (k6  Aq AFq@Aðè A «ÂA èÂ! -E@ A: 6 ž ( (k6  AAÀ˜"A6 A6 A6 A6  ì!A!@  H@   Ž¿Ø Aj!  AF@A!@  H@  ( O@ ( Atj+"œ b DàÁcr DÀÿÿÿßAdr@Aðé øÂA°éÂ! -E@ A: 6 ž ( (k6  Aj!  A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$  6  6  ž   AF@ A�!AAî˜"A6 A6 A6 A6 Aš!@  H@ �! -@ò   ( O@Aðë A ªÂA°ëÂ! -E@ A: 6 ž ( (k6 ò   ( O@ ( Atj("E@  ! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6  ž   AF@ A�! AAî˜"A6 A6 A6 A6 Aš!AAî˜"A6 A6 A6 A6 Aš!@  H@ �! -@ò   ( O@Aðë A ªÂA°ëÂ! -E@ A: 6 ž ( (k6 ò   ( O@ ( Atj("E@  ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  �! -@ò   ( O@Aðë A ªÂA°ëÂ! -E@ A: 6 ž ( (k6 ò   ( O@ ( Atj("E@  ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6$  ž  6  ž   AÀê A «ÂA �Â! -E@ A: 6 ž ( (k6 A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6   A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  -@A ( G@A€ä A «ÂA çÂ!   -E@ A: 6 ž ( (k6 A d A�ÒÆ"AH@A�  E@A�Ò Ak" Ak(AvOA Atj/ A/F@ A AjÈ A È Œ| Ak(AvE@Dø ô "-E@Dø Dø! ("(AF| )¹ (AF| +Dø "Dø  ¡Da Ÿ }~ ("A8H@A�Ý AA Aàç A «ÂA ›ÂA8A «ÂA€¥Â#Wîî A� !@ AH@  (O@  ( j-¾Â! Aj!  Að¥ÄE@A�Ý AA A�¦ÂAð¥ÂA�œÂ#Wîî (AM@ (AM@ (AM@ (AM@ ("- -Atr -Atr -Atr"AG@A�Ý AA AÀ� A ªÂAðœÂAA ªÂ#Wîî "(A M@ "(A M@ (AM@ (A M@ ("- - Atr - Atr - Atr"AI A€KrA  Akq @A�Ý AA AЧ A ªÂAð¦ÂA€A ªÂA �Â#Wîî (AM@ (AM@ (A M@ (A M@ ("- - Atr -Atr -Atr! A! !@ AK@ Av! Aj!   G@A�Ý AA AðÛ A ªÂAÀ¨Â A ªÂA€¨ÂA!@ AK@ Av! Aj!  A ªÂA �Â#Wîî (AM@ (AM@ (AM@ (AM@ ("- -Atr -Atr (-Atr"AG@A�Ý AA AÀ©Â A ªÂA ©ÂAA ªÂA€©Â#Wîî !A!@  I@   v­" ~B~|! Aj!  B8|" ¬R@A�Ý AA Aàç A «ÂAàªÂ A ªÂA°ªÂ A ªÂA€ªÂ ­Â#Wîî (A3M@ (A2M@ (A0M@ (A1M@ ("-1At -0r -2Atr -3Atr­ "(A7M@ (A6M@ (A4M@ (A5M@ ("-5At -4r -6Atr -7Atr­B †„"B¥Æˆ¡Èœ§ùK!A8!@ ( J@  ( j1…B³ƒ€€€ ~! Aj!  R@A�Ý AA Aà«Â A¬!@ Ak(AvAI@AàÜ Â!  ÂA «Â A¬!@ Ak(AvAI@AàÜ Â!  ÂA �Â#Wîî A A‘ ˜"!AA‚˜"AAAƒA¤6  6 C8 C8 C8 C8 C8 C8 A6AA-˜AA-˜!A!@ AH@ AtAj"Aj" (O@ Aj" (O@  (O@ Aj" (O@  ("j-At  j-r  j-Atr  j-Atr¾" “C\@A�Ý AA Að¬ÂAÀ¬AÐ… AHÂAÀ¡Â#Wîî Ak(Av M@  Atj 8 Aj!  Ak(AvE@ *! Ak(AvAM@ *! Ak(AvAM@ *!  8  8  8 Ak(AvAM@ * ! Ak(AvAM@ *! Ak(AvAM@ *!  8  8  8 "(A/M@ (A.M@ (A,M@ (A-M@  ("-, --Atr -.Atr -/Atr6A8!A!@  I@AA�˜"A6 AAAõA¤6  v" ã! A!@ AH@ " ("( O@ ( Atj("@A!@  lH@#à"E@ÿ "$à Aj" (O@ ( j-" (AvO@ ( Atj*!  (O@ Aj" (O@ (" j-³ ”  j-³ ” Aj" (O@ ( j-³ ”!!"! Al" (AvO@ ( Atj 8 AlAj" (AvO@ ( Atj 8 AlAj" (AvO@ ( Atj 8 Aj! Aj!  Aj!  (("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  AAë˜"A: A6 A� 6 A6 A: 6 ž ê}A4Až ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 C8 C8 C8 C8$ C8( C8, A60  ("6  ž * ! *!  *8  8  8 *! *!  *8$  8(  8,  (60  « }~ ("A0H@A࣠AA Aàç A «ÂA ›ÂA0A «ÂAКÂ#Eîí A� !@ AH@  (O@  ( j-¾Â! Aj!  Að›ÄE@A࣠AA A°œÂAð›ÂA�œÂ#Eîí (AM@ (AM@ (AM@ (AM@ ("- -Atr -Atr -Atr"AG@A࣠AA AÀ� A ªÂAðœÂAA ªÂ#Eîí (A M@ (A M@ (AM@ (A M@ ("- - Atr - Atr - Atr! (AM@ (AM@ (A M@ (A M@ (""- - Atr -Atr -Atr" A€€€K A€€€Kr@A࣠AA AðÛ A ªÂAО A ªÂA�žÂA€€€A ªÂAð�Â#Eîí Ap@A࣠AA AðÛ A ªÂA€ŸÂ#Eîí ­B ~B0| ­B†|" ¬R@A࣠AA Aàç A «ÂA€ Â A ªÂAО A ªÂAП ­Â#Eîí B¥Æˆ¡Èœ§ùK!A0!@ ( J@  ( j1…B³ƒ€€€ ~! Aj!  "(A+M@ (A*M@ (A(M@ (A)M@ (A/M@ (A.M@ (A,M@ (A-M@ ("-)At -(r -*Atr -+Atr­ -, --Atr -.Atr -/Atr­B †„ R@A࣠AA A  Â#Eîí A A’ ˜"!A Aç˜"A6 A6 A6 AA¦˜"6 6 A6  6A Aä˜"A6 A6 A6 AA¦˜"6 6 A6  6AA-˜ AA-˜6A!@ AH@ AtAj"Aj" (O@ Aj" (O@ (O@ Aj" (O@ ("j-At j-r  j-Atr  j-Atr¾" “C\@A࣠AA A€¡Â#Eîí ("Ak(Av M@ Atj 8 Aj!  A Aç˜"A6 A6 A6 Al"AÿÿÿÿK@  At"A¦˜"6  6  6A0!A!@ AlH@ "Aj" (O@ Aj! Aj" (O@  (O@ Aj" (O@ ("j-At  j-r  j-Atr  j-Atr¾" “C\@A࣠AA Að¡Â AmA «ÂAÀ¡Â#Eîí Ao" ("Ak(AvO@   Atj*]A Aj" ("Ak(AvO@   Atj*^ @A࣠AA Að¡Â AmA «ÂA ¢Â#Eîí (Av M@ ( Atj 8 Aj!  A Aä˜"A6 A6 A6 AÿÿÿÿK@  At"A¦˜"6  6  6A!@ H@ "! Aj" (O@ Aj! Aj" (O@ (O@ Aj" (O@ ("j-At  j-r  j-Atr  j-Atr" O@A࣠AA AÀ£Â A «ÂAàç A ªÂA�£Â A ªÂAà¢Â#Eîí (Av M@ ( Atj 6 Aj!   6  ž  6  žAAì˜"A: A6 A� 6 A6 A: 6 ž 9 Ak(Av AÀ… ÂAÀ“  AÀ…  Þ~  Ak("A– F Aš Fr A› FrA @ ("@ (4! ($"@@ ( J@ ( Atj((!A!@ ( J@  ( Atj((4|! Aj!  Aj!  ("~  ((Av¬B†|    Ak(Aº FA @ !AAý˜"A6 A6 A6 A6 Aš!@ ("( J@  ( O@ ( Atj("E@ (P"A!A ( "E ALr  (!@ H@  Atj( F@  Aj!  A ANA E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("@ ("(4 B8~ ( 4 B†|! ("@  4 B†|! ("@  4 B†|! (,"@A!@ ( J@  ( Atj((4 B†|! Aj!  A!@ (\"( J@ ( O@ ( Atj("@  Ak4|! Aj!   |!A!@ ("( J@ ( O@ ( Atj("@  ( 4 B† (( (( (( jj¬B†||! Aj!  Aj!   B ¥AA© ˜" A6 A� 6AA† ˜"½ 6AA† ˜"½ 6 6 6 ž æ!@@ ( N #(( ALA ( O@ ( Atj("E@ (!# "E@Õ ! @  A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò  A!A E  "Ak(A~q" AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " - A E Aà²ä! ("Ak(AvE@AÀñA� AAA —A •îé  A€™AÅAG@AÀñA� AAAÀ� ÂA�›ÂA •îé  A€çAÇ@ (! AAÿÿÿÿÈ! A ˜AÅAGA A�ÒAÇ A Ak(AvAO /A:FA AÀñA� AAAÀ� ÂA „ÂA •îé  ! Ak(Av A�ÒÆ"ALA�Ò A È  ( ! Ak(Av A�Ò#ÃA @AÀñA� AAAÀ� ÂAКÂA •îé  AA˜"A6 A6 A6 A6 Aš! A�ÒÍ! A!@ ( " J@ ( Atj(Ak(Av@  O@ ( Atj(" E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A�ÒÍ! A!@ ( J@@ ( Atj("Ak(Av A �ÄA AàžÄ@ ( E@A€…A� AAAÀ� ÂAÀ…  (ÉÂA �ÂA •îé  ( "AL@ ( Ak"Atj" ( A6  6  ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  A�Ò ( ( A�Ò¦Â! ("A�ÒÄA  Ä A  A�ÒÂAÇ E@A€…A� AAAÀ� ÂA�†Â ÂA �ÂA •îé  AA«˜"A: A6 A� 6 A6 A:  6  ž  "-E@A - A ( "E   Ak(AéFA @  Ak(AéFA E@   A " (AÀñ !  (A !  ( ( ! (! (! (! Aðñ (ÂAàžÂ Â!A Aé˜"¸ 6 6 6 6 6 6 •  ( (Ê"-E@ E@ (! (!  (É!A - A ( "E   Ak(AéFA @  Ak(AéFA E@   A "E@ (!Aðñ (ÂAàžÂ (Â!A€ËA°ÉA�Ê (A€çAÇÂ!A Aé˜"¸ AÐê6  6  6  6  6  6 •  ( AJ@ (! ("(! (! Aðñ (ÂAÐÈ ÂA �Â! (!AAè˜"A6 A6 A6 A6  6  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 •  (AÐêÄA€ËA°ÉA�Ê (A€çAÇ ( ! (! (! Aðñ (ÂAàžÂ (AðÈÄ (AÀ… ( ( Â!A Aé˜"¸  6  6  6  6  6  6A!@ ("( J@ (!  ( O@ ( Atj("E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  • !  ( ( (™ Aj!  @  ç!A! @ ( " J@  M@ ( Atj("E@  Ó "-E@ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAí˜"A: A6 A� 6 A6 ("6 ž ( "6 ž  ( O@ ( Atj("E@ (" ( "6  ž  ("6  ž ( O@ ( Atj("E@ ( ( ™ Aj!  AAí˜"A: A6 A� 6 A6 A: 6 ž ýŽ|~} (!# "E@Õ !    "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j! @  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA Ò  A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x! AÏŒ¢Ž!  jAk! @  M@  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A " - A E@A A• ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 AAAA¤6 AAAîA¤6  6 â!A!@ ( J@ ( Atj((! ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (!  ( O@ ( Atj("E@ (! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A°¥ ã" ((AFA @  (("6  ž AAƒ ˜"A: A6 A� 6 A6 A: 6 ž  š ! @ Aðã Ä@A8A³ ˜"A� 6 A� 6 A� 6 A� 6 A6 D{®Gáz¤?9 A6 A6$ C€?8( C€?8, C€?80  Aðä Ä@A0A´ ˜"A� 6 A� 6 A� 6 A� 6 A6 D{®Gáz¤?9 A6 A6$ Dà?9(  A æ Ä@A8Aµ ˜"A� 6 A� 6 A� 6 A� 6 A6 D{®Gáz¤?9 A6 A6$ Dà?9( D@90  A ê Ä@A8A¶ ˜"A� 6 A� 6 A� 6 A� 6 A6 D{®Gáz¤?9 A6 A6$ D@9( Dà?90  Aðë Ä@A0A· ˜"A� 6 A� 6 A� 6 A� 6 A6 D{®Gáz¤?9 A6 A6$ AAAÀA¤6(  A°ï Ä@A0A¸ ˜"A� 6 A� 6 A� 6 A� 6 A6 D{®Gáz¤?9 A6 A6$ AAAÀA¤6( A:,  A   ! "Aà«Ä@A(A• ˜"çA Aç˜"A6 A6 A6  A°6A Aä˜"A6 A6 A6  A°6 A:$ A:%   A€°Ä@A(A– ˜"ç C€?8 C€?8 C€?8$   A€±Ä@A A— ˜"ç C€?8   A�³Ä@A$A˜ ˜"ç C€?8 C€?8   AÀµÄ@A A™ ˜"çA Aç˜"A6 A6 A6  A°6   A ! @ ! E@ @ ! AðŸÄ@AÀAª ˜"A� 6 A� 6 A� 6 A� 6 A6 C€?8 C€?8 C€?8 C€?8 C€?8$ C8( C8, C80 C€?84 C88 CÍÌÌ=8< Aà� Ä@AÌA« ˜"A� 6 A� 6 A� 6 A� 6 A6 CÈB8 C€?8 A: CÍÌÌ>8 C?8$ A:( C A8, C @80 A:4 C@88 C€?8< CÍÌÌ=8@ C8D CHD8H AÀ® Ä@A€A¬ ˜"A� 6 A� 6 A� 6 A� 6 A6A Aç˜"A6 A6 A6 AA¦˜"6  6 A6  6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6 A: A6$ A6( A6, Bÿÿÿÿ70 A68 A°Í6< C€>8@ C€>8D C8H CÀ?8L C?8P C€>8T C4B8X C@8\ C A8` C8d Cff¦?8h CÀ@8l CÀ@8p C€?8t A:x A:y A:z Að•Ä@A A‰ ˜"á A�Ø Ä@AüA  ˜"´ A�¾Ä@AA¤ ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A6 AÐÕÄ@AðA¥ ˜"A� 6 A� 6 A� 6 A� 6 A6 C¸Å>8 C°rè>8 CÍÌ ?8 C€?8 Cës%?8$ C‚â'?8( CŒ¹+?8, C€?80 Cš™>84 C€?88 CÍÌL>8< CV->8@ C'1>8D C€?8H Cës%?8L C‚â'?8P CŒ¹+?8T C€?8X C ×£<8\ C€?8` CðA8d Cš™>8h C€?8l AÀ© Ä@A A¦ ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A: C€?8 AÀÊÄ@A,A° ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A: A: A6 A6 A6$ AAAÀA¤6( AÀ‰Ä@AÜAš ˜"A� 6 A� 6 A� 6 A� 6 A6 A6 A6 A6 A6 A6$ A6( A6, A:0 A:1 A64 A68 A� 6< A� 6@ A6D A6H C8L A6P A6T A6X AðÌ Ä@A8 A:AA¦˜!AAÀ˜" 6  ž  6 A6 A6  6 AA¦˜!AAÀ˜" 6  ž  6 A6 A6  6$ A6(AA¦˜!AAá ˜" 6  ž  6 A6 A6  6, A:0AA¦˜!AA.˜" 6  ž  6 A6 A6  64AA¦˜!AA.˜" 6  ž  6 A6 A6  68AA¦˜!AA.˜" 6  ž  6 A6 A6  6( AÀÂÄ@ ~ (AF@ )  (AF@B +" b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  °  B >, AàÆÄ@ ~ (AF@ )  (AF@B +" b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  °  B Bÿÿÿÿƒ70 AÐÈÄ@ ~ (AF@ )  (AF@B +" b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  °  B >8 AàÌÄ@  ("6<  ž A�ÏÄ@ | (AF@ )¹  (AF@ +  D ¶8@ AðÐÄ@ | (AF@ )¹  (AF@ +  D ¶8D AÐÒÄ@ | (AF@ )¹  (AF@ +  D ¶8H A ÔÄ@ | (AF@ )¹  (AF@ +  D ¶8L AðÕÄ@ | (AF@ )¹  (AF@ +  D ¶8P A°×Ä@ | (AF@ )¹  (AF@ +  D ¶8T AÐØÄ@ | (AF@ )¹  (AF@ +  D ¶8X A�ÚÄ@ | (AF@ )¹  (AF@ +  D ¶8\ AàÛÄ@ | (AF@ )¹  (AF@ +  D ¶8` AÀÝÄ@ | (AF@ )¹  (AF@ +  D ¶8d A€ßÄ@ | (AF@ )¹  (AF@ +  D ¶8h AÐàÄ@ | (AF@ )¹  (AF@ +  D ¶8l AÀâÄ@ | (AF@ )¹  (AF@ +  D ¶8p AÐäÄ@ | (AF@ )¹  (AF@ +  D ¶8t A°æÄ@  -:x A èÄ@  -:y AðéÄ@  -:z   ($Aj6$   Ak(Aã FA @  Ak(Aã FA E@ @ A°„Ä@ | (AF@ )¹  (AF@ +  D ¶8 AÀ…Ä@ | (AF@ )¹  (AF@ +  D ¶8 AІÄ@ A€ A (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A " AL" A€ N6 Aðù Ä@A!AA¦˜!AA.˜" 6  ž  6 A6 A6  6  žAA¦˜!AA.˜" 6  ž  6 A6 A6  6$  žAA¦˜!AA.˜" 6  ž  6 A6 A6  6(  žAA¦˜!AA.˜" 6  ž  6 A6 A6  6,  žAA¦˜!AA¤˜" 6  ž  6 A6 A6  60  žAA¦˜!AA¤˜" 6  ž  6 A6 A6  64  ž (AF@ ( !@ ( " AjN@  M@ ( Atj("@@ (AGA (( AH Aj" ( O@ ( Atj("E@ (AFA (AF  Aj" ( O@ ( Atj("E@ (AFA (AF EA Aj" ( O@ ( Atj("E@ (AFA (AF  Aj" ( O@ ( Atj("E@ (AFA (AF EA ("( E@ (+¶! ("( AM@ (+¶!| Aj" ( O@ ( Atj("E@ (AF@ )¹  (AF@ +  D ¶!| Aj" ( O@ ( Atj("E@ (AF@ )¹  (AF@ +  D ¶! Aj" ( O@ ( Atj("E@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A ! Aj" ( O@ ( Atj("E@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A ! ( "( " Aj!  (AvK@  AA™ ( Atj 8  6 ($"( " Aj!  (AvK@  AA™ ( Atj 8  6 (("( " Aj!  (AvK@  AA™ ( Atj 8  6 (,"( " Aj!  (AvK@  AA™ ( Atj 8  6 (0"( " Aj!  (AvK@  AA™ ( Atj 6  6 (4"( "Aj!  (AvK@  AA™ ( Atj 6  6 ( ( Ak!@ AJ Ak" ( "( O@  ( Atj*]A @ "Ak" ( "( O@ ( Atj*! ( "   ( O@ ( Atj*¡ (  ¡  ($"( O@ ( Atj*! ($"   ( O@ ( Atj*¡ ($  ¡  (("( O@ ( Atj*! (("   ( O@ ( Atj*¡ ((  ¡  (,"( O@ ( Atj*! (,"   ( O@ ( Atj*¡ (,  ¡  (0"( O@ ( Atj(! (0"   ( O@ ( Atj(º (0  º  (4"( O@ ( Atj(! (4"   ( O@ ( Atj(º (4  º  A:< Aj!  A:< A€ý Ä@ (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A "A AN!@ ( "( J@ ( "AL@ ( Ak"Atj*  6 ($"( "AL@ ( Ak"Atj*  6 (("( "AL@ ( Ak"Atj*  6 (,"( "AL@ ( Ak"Atj*  6 (0"( "AL@ ( Ak"Atj(  6 (4"( "AL@ ( Ak"Atj(  6  @ ( "( H@ ( "Aj" (AvK@  AA™ ( AtjC8  6 ($"( "Aj!  (AvK@  AA™ ( AtjC8  6 (("( "Aj!  (AvK@  AA™ ( AtjC8  6 (,"( "Aj!  (AvK@  AA™ ( AtjC8  6 (0"( "Aj!  (AvK@  AA™ ( AtjA6  6 (4"( "Aj!  (AvK@  AA™ ( AtjA6  6  A:<  A:<   Ak(A® FA @  Ak(A® FA E@ AÀ�Ä@  ("6$  ž µ AðŽÄ@  ("6(  ž µ Aà�Ä@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6 AГÄ@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6  @  Ak(A× k"AIA vAqqA @  Ak(A× k"AIA vAqqA E@ A ÝÄ@  ³" «Að•ÄA AAï˜"A: A6 A� 6 A6 A:  6  ž  A�Ø Ô "-E  " ("  Ak("A  F A‰ FrA E@ A "6    ›   Ak("A  F A‰ FrA  AÀÝÄA AàÕ Ä A @  Ak("A  F A‰ FrA E@ AàÕ Ä@ A€Aÿ (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A " AÿJ A€H6ø  A€¿ Ô "-E  " ("  Ak("A  F A‰ FrA A   Ak("A  F A‰ FrA E@ A "6ô   Ak(A‰ FA @  Ak(A‰ FA E@ Að˜Ä@ A�™ Ô "-E   ("  Ak(Aˆ FA E@ A "6ü  ž ¡  Ñ "@    (AFA (AF   Õ "-E  (A     Ak("A  F A‰ FrA @  Ak("A  F A‰ FrA E@ A°« Ä@  Õ "-E A!@#0Ak(Av J@ #0 Atj( Ä  Aj!  A "AN@   (Î  A! A€àÄ@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6˜ AÀ†Ä@ | (AF@ )¹  (AF@ +  D ¶8œ AÐÝÄ@ | (AF@ )¹  (AF@ +  D ¶8  A€ÝÄ@ | (AF@ )¹  (AF@ +  D ¶8¤ A ÝÄ@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8¬  8°  8´  8¸ AÀŽÄ@  -:À A°âÄ@ | (AF@ )¹  (AF@ +  D ¶8Ä AàâÄ@ | (AF@ )¹  (AF@ +  D ¶8È A ”Ä@ | (AF@ )¹  (AF@ +  D ¶8Ø AЕÄ@  -:Ü AàáÄ@ | (AF@ )¹  (AF@ +  D ¶8à A æÄ@ | (AF@ )¹  (AF@ +  D ¶8ä A°áÄ@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8ì  8ð  8ô  8ø A€âÄ@ | (AF@ )¹  (AF@ +  D ¶8€ A°âÄ@  -:ˆ AðâÄ@ | (AF@ )¹  (AF@ +  D ¶8Œ A°ÜÄ@ | (AF@ )¹  (AF@ +  D ¶8� A°äÄ@ | (AF@ )¹  (AF@ +  D ¶8˜ AàäÄ@ | (AF@ )¹  (AF@ +  D ¶8  A åÄ@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8¤  8¨  8¬  8° AàæÄ@ | (AF@ )¹  (AF@ +  D ¶8´ AÐßÄ@ | (AF@ )¹  (AF@ +  D ¶8¸ A€àÄ@ | (AF@ )¹  (AF@ +  D ¶8À A ¯Ä@ | (AF@ )¹  (AF@ +  D ¶8Ä A ±Ä@ | (AF@ )¹  (AF@ +  D ¶8È Aà´Ä@  -:Ð A°óÄ@ | (AF@ )¹  (AF@ +  D ¶8Ô AÐãÄ@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8Ü  8à  8ä  8è@#–Ak(Av J@@ #– Atj("#ÃE A Ak(Av Ak(AvkÈ!A!@#0Ak(Av J@ #0 Atj( Ä  Aj!  A "AH  (ð"( O@ ( Atj("E@ @ AF@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8  8 AF@ | (AF@ )¹  (AF@ +  D ¶8  ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8  8   (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6 A  Aj!  A  A  A€Ú Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8  8  8  8  A�ÚÄ@ | (AF@ )¹  (AF@ +  D ¶8( AðÚÄ@ | (AF@ )¹  (AF@ +  D ¶80 A�áÄ@  -:9 A€ß Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8<  8@  8D  8H Aàß Ä@ | (AF@ )¹  (AF@ +  D ¶8L A°àÄ@  -:T Aàá Ä@ | (AF@ )¹  (AF@ +  D ¶8X AààÄ@  -:` AÀÞÄ@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6h AðÞÄ@ | (AF@ )¹  (AF@ +  D ¶8l A�ç Ä@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6p A°ßÄ@  -:t A€ê Ä@  -:u Aðë Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8x  8|  8€ Aàí Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8„  8ˆ  8Œ Aðï Ä@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6� A�ó Ä@  -:”  «"A�¾Ä@  Ak(A¤ FA E@ AÀ” Ä@ Að” Ô "-E   ("6  ž AЖ Ä@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6  AÐÕÄ@  Ak(A¥ FA E@ A€‹ Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8  8  8  8  A°� Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8$  8(  8,  80 Aàž Ä@ | (AF@ )¹  (AF@ +  D ¶84 Aà  Ä@ | (AF@ )¹  (AF@ +  D ¶88 A�� Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8<  8@  8D  8H AÐ� Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8L  8P  8T  8X A€£ Ä@ | (AF@ )¹  (AF@ +  D ¶8\ AФ Ä@ | (AF@ )¹  (AF@ +  D ¶8` AÐ¥ Ä@ | (AF@ )¹  (AF@ +  D ¶8d A�§ Ä@ | (AF@ )¹  (AF@ +  D ¶8h A°¨ Ä@ | (AF@ )¹  (AF@ +  D ¶8l  AÀÊÄ@  Ak(A° FA E@ Aà½Ä@ A€¾ Ô "-E   (" @@ Ak(A® k. A  A A E@ A "6$  ž A°Â Ä@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6 AÐÅ Ä@  -: A È Ä@  -: AðÊ Ä@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6 A€Ì Ä@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6  A�Î Ä@  ("6(  ž  AÀ© Ä@  Ak(A¦ FA E@ A�« Ä@  Õ "-E   ("6  ž Að¬ Ä@  -: A°¨ Ä@ | (AF@ )¹  (AF@ +  D ¶8   Ak(A£ FA E@ AðåÄ@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6 A�ú Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8  8  8  8$ A°û Ä@ | (AF@ )¹  (AF@ +  D ¶8( A æÄ@ A�¾ Ô "-E   ("  Ak(A¤ FA E@ A "6,  ž AÐþ Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  80  84  88 AÀæÄ@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6< Aà‚ Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8@  8D  8H  8L A°„ Ä@ | (AF@ )¹  (AF@ +  D ¶8P Aà† Ä@ | (AF@ )¹  (AF@ +  D ¶8T A€çÄ@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6X A€‹ Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8\  8`  8d  8h A°� Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8l  8p  8t  8x A�� Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8|  8€  8„  8ˆ AÐ� Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8Œ  8�  8”  8˜ A°’ Ä@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6œ AÀ• Ä@ | (AF@ )¹  (AF@ +  D ¶8  AÀ– Ä@ | (AF@ )¹  (AF@ +  D ¶8¤ A°˜ Ä@  -:¨ Aà› Ä@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6¬ A€ž Ä@ | (AF@ )¹  (AF@ +  D ¶8° A   Ä@ | (AF@ )¹  (AF@ +  D ¶8´ AТ Ä@ | (AF@ )¹  (AF@ +  D ¶8¸ A åÄ@  -:¼ A€äÄ@  -:½ Að© Ä@ | (AF@ )¹  (AF@ +  D ¶8À A « Ä@ | (AF@ )¹  (AF@ +  D ¶8Ä A ¬ Ä@ | (AF@ )¹  (AF@ +  D ¶8È A€® Ä@ | (AF@ )¹  (AF@ +  D ¶8Ì AÀ¯ Ä@ | (AF@ )¹  (AF@ +  D ¶8Ð Að± Ä@ | (AF@ )¹  (AF@ +  D ¶8Ô Aà³ Ä@ | (AF@ )¹  (AF@ +  D ¶8Ø A€¶ Ä@ | (AF@ )¹  (AF@ +  D ¶8Ü A€¸ Ä@  -:à Ak(AvA F Aй AÇA @ Ak(AvA MA / A0k"AJ  (ä( LA @ (ä Ak| (AF@ )¹  (AF@ +  D ¶¡  A » Ä@  -:è A°¼ Ä@ | (AF@ )¹  (AF@ +  D ¶8ì A ½ Ä@ | (AF@ )¹  (AF@ +  D ¶8ð Aо Ä@ | (AF@ )¹  (AF@ +  D ¶8ô A�À Ä@ | (AF@ )¹  (AF@ +  D ¶8ø AðÁ Ä@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6ü A Ä Ä@ | (AF@ )¹  (AF@ +  D ¶8€ AÐÅ Ä@ | (AF@ )¹  (AF@ +  D ¶8„ A€Ç Ä@ | (AF@ )¹  (AF@ +  D ¶8ˆ A°äÄ@  -:œ AàÈ Ä@  (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6  AÐË Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8¤  8¨  8¬  8° AÀÌ Ä@ | (AF@ )¹  (AF@ +  D ¶8´ A°Í Ä@ | (AF@ )¹  (AF@ +  D ¶8¸ A€Ï Ä@ | (AF@ )¹  (AF@ +  D ¶8¼ A�Ñ Ä@ | (AF@ )¹  (AF@ +  D ¶8À A€Ó Ä@ | (AF@ )¹  (AF@ +  D ¶8Ä A�Ô Ä@ | (AF@ )¹  (AF@ +  D ¶8È A°Õ Ä@ | (AF@ )¹  (AF@ +  D ¶8Ì A°× Ä@ | (AF@ )¹  (AF@ +  D ¶8Ð AÀØ Ä@ | (AF@ )¹  (AF@ +  D ¶8Ô AàÙ Ä@ | (AF@ )¹  (AF@ +  D ¶8Ø AàäÄ@  -:Ü AðÜ Ä@ | (AF@ )¹  (AF@ +  D ¶8à A ß Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8ä  8è  8ì  8ð Aðà Ä@ ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C !  8ô  8ø  8ü  8€ AÀâ Ä@ | (AF@ )¹  (AF@ +  D ¶8„ Aðã Ä@ | (AF@ )¹  (AF@ +  D ¶8ˆ AÐå Ä@ | (AF@ )¹  (AF@ +  D ¶8Œ AÀè Ä@ | (AF@ )¹  (AF@ +  D ¶8� A�ê Ä@ | (AF@ )¹  (AF@ +  D ¶8” A€ì Ä@ | (AF@ )¹  (AF@ +  D ¶8˜ A°î Ä@ | (AF@ )¹  (AF@ +  D ¶8œ A€ð Ä@  -:  A€ò Ä@ | (AF@ )¹  (AF@ +  D ¶8¤ AÀó Ä@  -:Œ A�õ Ä@ | (AF@ )¹  (AF@ +  D ¶8� A°ö Ä@ | (AF@ )¹  (AF@ +  D ¶8” A€ø Ä@ | (AF@ )¹  (AF@ +  D ¶8˜ #¿   ž #¿  ä  ä "-E@ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAƒ ˜"A: A6 A� 6 A6 ("6 ž ("6 ž  Aj!   Ak(Aš FA @  Ak(Aš FA E@  ( ( ‡  Ak(A› FA @  Ak(A› FA E@ ( !  (AÐÈ Â"6  ž A€6 A€6 #Ç"6  ž  ãD€„.AdA @ ((! ("(! (! ( !@@@@@@ Ak(A× k AÀ·  A ½  AÀ±  AÀ¬  AШ  A°÷ ÂA�÷ 㒠ÂA°öÂD€„.A’ Â! œ !A Aé˜"¸ A ò6 6 6 6 6 6 â AAƒ ˜"A: A6 A� 6 A6 A: 6 ž ‚ ("(E@AAï˜"A: A6 A� 6 A6 A: A6 Až  ((!  ³!A°“Aà“ (AF"Aðã (ÂAÐãÂ! E@ ( "(! (!A°ÆAÐÅA€Æ ÂA Å (ÂAÀ�Â!A Aé˜"¸ AàÄ6 6 6 6 6 A6 å  Ak(A• FA "A « × E@ ( "(! (! (AÐÇ ÂA°ŽÂ «ÂAÀ… ÂAÐÆA� Â!A Aé˜"¸ Aàß6 6 6 6 6 A6 å AAï˜"A: A6 A� 6 A6 A: 6 ž œ A°« Ô "-E@ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAð˜"A: A6 A� 6 A6 ("6 ž ( "6 ž  ("  Ak("A– F Aš Fr A› FrA E@ A !AAð˜"A: A6 A� 6 A6 A: 6 ž ‰ (AvAk"AHA (AvE@ (( A  (AvO@ ( Atj( (AvG @A @  H@ Aj" (AvO@  (AvO@ ( Atj( ( Atj(k"AH A Jr@A Aj!  A!@ (Av J@ ( Atj("AH Lr@A Aj!  A ×}@ E Cæ®%=]} C‘ƒž=” C®Ga=’Co§r?”Cš™@‰ ! Cæ®%=]} C‘ƒž=” C®Ga=’Co§r?”Cš™@‰ ! Cæ®%=]} C‘ƒž=” C®Ga=’Co§r?”Cš™@‰ ! AG C±Ó>” CM ?”’ C ¹R=”’"C[}C C]} ŒC«ªª>‰ Œ C«ªª>‰ "CR�W>” C;ýX>” CSB.?”’ CðòÛ=”’"C[}C C]} ŒC«ªª>‰ Œ C«ªª>‰ "C‰*K?”’ Cì×´=” Ct=�>”’ CIF!?”’"C[}C C]} ŒC«ªª>‰ Œ C«ªª>‰ "CÎn…;”“ C/ý?” Cn@”“ C8´æ>”’ C´4Ô<” C»cH?”’ C`O?”“     Ã} E@    AF@ CÉìÊ>”’ C©û\>”’" ” ”"C«t‚@” CŒ0Ø=”“ CúÅ‚=”“" ” ”"CŒ±S@”“ C{C·=”“ CfO¥?”“" ” ”"Cbƒl>”’! C-\¢¿” CD'@”’ CjÁ®>”“! CS‰»” C>4?”“ C“Ú?”’! C.M;]} CR¸NA” CUUÕ>‰ C= ‡?”C®Ga½’ C.M;]} CR¸NA” CUUÕ>‰ C= ‡?”C®Ga½’ C.M;]} CR¸NA” CUUÕ>‰ C= ‡?”C®Ga½’  �@ ("E@AЙ+$ AÐÊAЙ+Âõ #"@A$  ("@@ ("E@A°˜+$ AÐÊA°˜+Âõ #"@A$  A�AðÛ Â! Ak("A“ F@ (( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  Aæ F@ ("(8 "�AH@ (8"( AäH@ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6   )@B|7@   Ak( û  E@A8A… ˜"™  † 6 ((( ! AЮ Ê"-E@ —  (" Ak(A¾ FA E@ ˜ "-E@ Ï ((" ì( AJA @ ( A�ÒÆ"ALA�Ò A È ÄE@  A�ÒÆ"ALA�Ò A È "6  ž AЮ Æ (("! ( k" ( " AH  j"A AJ    J " k"  H"A AJ"At"A¦˜!AAÞ˜" 6  ž  6  6  6 ( (" Atj" Atü  j" G@ A    Atj  kAtü   k"AtjA Atü  6  AЮ Ê"-E@ —  (" Ak(A¾ FA E@ ˜ "-E@ Ï ((" @ ì"( @  A�ÒÆ"ALA�Ò A È "6  ž  É! A!@ ( J@ ( Atj(( Ä@ (!  ( O@ ( Atj("E@ ("(! (! A€Š ÂA�‰Â! A�‹Aà#ÂAÀŠÂ! (!A Aë˜"Ð A6 Aàè6  6  6  6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  A!A! ì! (A�ÒÄA�  ( ! @ ( J@ ( Atj(! A�Ò (AAÿÿÿÿÈÂ" ÄE@#  (š (4 �AH@ (4"( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj! Aj!   (!A$AÀ ˜"A6AA¦˜!AA˜" 6 ž 6 A6 A6  6AA¦˜!AAø˜" 6 ž 6 A6 A6  6AAë˜"½  6 AAï˜"½  6AAó˜"½  6AAõ˜"½  6AA£˜"�  6AA¼ ˜"AA¾ ˜"½ 6  6  6 @  (6  (6  (6  ( 6 (! ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  ¼"-E@ Ï  ("@@ (!  ("Ak(Av@  (" (Ak(AvA  ( ( " A�ÒÆAjAÿÿÿÿÈ!  »! (! (,( E AA¦™"A æ(6AA˜" 6 ž 6 A6 A6 AA¦˜!AA… ˜" 6 ž 6 A6 A6 ( 6 AA¦˜!AA˜" 6 ž 6 A6 A6 ( 6 ß! A4Aß ˜"Ñ 6 6 ( " ( "A AL!  k"A AJ" At"A¦˜!AAå˜" 6  ž  6  6  6 (! ( Atj! A! At! @  I@  j  j(" 6  ž Aj!  6 ž (AAÿÿÿÿŸ"6 ž (! 6 žAAî˜"A6 A6 A6 A6 Aš!A!@ ( J@ ( Atj(ë ! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  6 ž 6\ ž A8\ C?8` CÈB8d CÍÌL?8h C8l A6p C8t C€?8x C€?8|  Š ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6À  ž ( E@ (˜!Œ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ ( Atj"A°²6  At A°²Ÿ  6  (ø† ‹"Ak(Av@ ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ’  Ak(A¶FA !  Ak(A»FA !  Ak(AÕFA !  Ak(A×FA ! @  Ak(A¶FA E@ (œ"@  þ  (˜ ý  @  Ak(A»FA E@ (˜"@ ($ ý  @  Ak(A×FA E@ (Ü ý  @  Ak(AÕFA E@ @ AH@ E@ (Ô  AF@ (Ø  AF@ (Ü  AF@ (à  A "A!A ( "E ALr  (!@  H@  Atj( F@   Aj!  A AHA @ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Ó E@  Ak(A× k"AIA vAqqA !  Ak(A® FA ! @  Ak(A× k"AIA vAqqA E@ ( þ  @  Ak(A® FA E@ (!A!@ ( NE@ ( Atj(( þ Aj!  ¼ E@ @ AH@@@@@@@@@@@@@@@@@@@@@@   ($  (,  (4  (\  (d  (P  (Ì  (Ð (Ô (ü („ (¨ (¼  (”  (œ  (¼  (Ì  (è  (Ø  (ì  A "A!A ( "E ALr  (!@  H@  Atj( F@   Aj!  A AHA @ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Ö  ( O@ ( Atj(@  Aº  (("( O@ ( Atj(!A!@ A H  (( Hq@  GA A tq@  ÿ Aj!   Aº (0"( "Aj!  (AvK@ AA™ ( Atj 6 6 ç}#A�¥ÁkA0I@ #A0k" $ 8 8 8  ”  ”’  ”’"”“8   ”“8   ”“8 * " ” *" ”’ *" ”’C̼Œ+]@#A�¥ÁkAI@ #Ak" $  ‹Cfff?]}AÄ*!AÀ*!AÈ*AÐ*!AÌ*!AÔ* "”  ”“8  ”  ”“8 ”  ”“8 *" ” *" ”’ *" ”’C̼Œ+]@AÀ*AÄ*AÈ*!#Aj$  *"! *"C€?  ” ”’ *" ”’‘•"”  ”#Aj$ ” ! ! " #A0j$C€? *"! * "C€?  ”  ”’ *" ”’‘•"”8  ”8  ”8 *" *" * "C€¿C€?  ”  ”“ *”  ”  ”“ *”’ ”  ”“ *”’C]!#A0j$ ¿  (Ak(AvA E@A @ Í @ A:0 A:1 -0 -1A @ Í (! ($" ( AJA @  ( õ A ( @ ("Ak(Av  ( !A�À ÂA Í ÂAÀ… ÂAàÃÂ! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A @  ( ô ( æAA¦˜!AA˜" 6  ž  6 A6 A6 @ ( J@ ( Atj("#0"Ak(AvO@  Atj("E@ ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( ( A°Ä¦ Ã~ (hAÿq¬B † -8AG­"B„  -9"B„  -T"B„  -`"B„  -t"B „  -u"BÀ„  -À"B€„  -Ü"B€„  -ˆ"B€„  -Є (pAÿq¬B†„ (˜Aÿq¬B†„!  Ak(A‰ FA ~ B€€€€À„! (ü" (A "~ (!AÅ»òˆx!A!@ Ak(Av" J@ OA  Atj/ sA“ƒ€l! Aj!   Aÿÿÿÿq­B#†„"B€€€€ „ A!A!@ (T"( J@ ( O@ ( Atj("@  Aj (! Aj!  AJ      ~ ("( E@ (5B¥Æˆ¡Èœ§ùK…B³ƒ€€€ ~! ("( AM@  (5…B³ƒ€€€ ~! ("( AM@ 5 5 5  (5…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~! ("( E@  (5…B³ƒ€€€ ~! ("( AM@  (5…B³ƒ€€€ ~! ("( AM@ -)AG­ -(AG­ - AG­ 5 5 5  (5…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~! (,"( E@  (5…B³ƒ€€€ ~! (,"( AM@  (5…B³ƒ€€€ ~! (0"( E@  (5…B³ƒ€€€ ~! (0"( AM@ 5D 5@ -8\ C?8` CÈB8d CÍÌL?8h C8l A6p C8t C€?8x C€?8| A6 C€?8 C€?8 C€?8 C€?8 AÈÍ*»#D€f@£"¢¶AÌÍ*» ¢¶AÐÍ*» ¢¶È !!!!!!!!"8  8  8  8  8  8  8  8  8 * * *C * * *C * * * CCCCC€?!!!!! ! ! ! ! !!!!!!"          ‰!!"8$ 8( 8,#A0j$ º. $} E@A¨A£ ˜"® A6 C€?8T A6œ AAAA¤ � A˜AÛ˜"ž  (AF": *h *d! *`! *\"$Cæ®%=_} $CR¸NA• $C®Ga=’C= ‡?•Cš™@‰ !$ Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ ! Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ !  $8  8  8 *x *t! *p! *l"$Cæ®%=_} $CR¸NA• $C®Ga=’C= ‡?•Cš™@‰ !$ Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ ! Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ !  $8  8$  8( *˜ *”! *�! *Œ"$Cæ®%=_} $CR¸NA• $C®Ga=’C= ‡?•Cš™@‰ !$ Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ ! Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ !  $8,  80  84 *ˆ *„! *€! *|"$Cæ®%=_} $CR¸NA• $C®Ga=’C= ‡?•Cš™@‰ !$ Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ ! Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ !  $88  8<  8@ *$ * ! *!$ *! (AF}C€?AÀÍ*!A¼Í*!$A¸Í*!AÄÍ*  *(!/ (‰ C= ‡?”C®Ga½’ ! C.M;_} CR¸NA” CUUÕ>‰ C= ‡?”C®Ga½’ ! C.M;_} CR¸NA” CUUÕ>‰ C= ‡?”C®Ga½’ !  8X  8\  8` C€?8d š} (PAFA (PAF @ *X" *T"”C—"” ’ ” ’•   ”C—"” ’  ” ’•   ”C—"” ’  ” ’• (P"AF  AF@ C®Ga?”"C�Âu=’”Co;’ Cš™?’”C�Âu=’•Cˆˆ½’  C®Ga?”"C�Âu=’”Co;’  Cš™?’”C�Âu=’•Cˆˆ½’"•  C®Ga?”"C�Âu=’”Co;’  Cš™?’”C�Âu=’•Cˆˆ½’ •  C®Ga?”"C�Âu=’”Co;’  Cš™?’”C�Âu=’•Cˆˆ½’ •  AF@ Crá?” C‚‹µ>”’ CÒŒE=”’Cffæ?”" CYÉ<’”C¯Þ½¸’  CªÕ{?”CÁ«Ý>’”C�Ës>’•"CshÍ?” C㥛=” Cøˆh?”’ CfI€<”’Cffæ?”" CYÉ<’”C¯Þ½¸’  CªÕ{?”CÁ«Ý>’”C�Ës>’•"CÜô?”“ C§è<” C» >”’ CxV?”’Cffæ?”" CYÉ<’”C¯Þ½¸’ CªÕ{?”CÁ«Ý>’”C�Ës>’•"CLà–=”“ Cffæ?”" CYÉ<’”C¯Þ½¸’ CªÕ{?”CÁ«Ý>’”C�Ës>’•"• CRѽ” C4×�?”’ C?Æ;”“ • CMV»” C2•=”“ C»‰?”’ •  AF@ Cÿæ[/—"C ?” Cÿæ[/—"C`¿>”’ Cÿæ[/—"C+­¦=”’ˆ C9•GÁ—CŽÕ€@–C9•GA’C„A•" ”" ”! C1¬<” CîZ€@”’ C¼tÍA” ”“ CÏ·ŒB”’ CVŽ•B” ”“ CP�ØA” ”’CÿæÛ.—Cš™@‰ "Chvû?” C…Ï>” CT A?”’ C�í×=”’ˆ C9•GÁ—CŽÕ€@–C9•GA’C„A•" ”" ”! C1¬<” CîZ€@”’ C¼tÍA” ”“ CÏ·ŒB”’ CVŽ•B” ”“ CP�ØA” ”’CÿæÛ.—Cš™@‰ "CŠ[?”“ C%ëµ=” C‘+7>”’ C¼t;?”’ˆ C9•GÁ—CŽÕ€@–C9•GA’C„A•" ”" ”! C1¬<” CîZ€@”’ C¼tÍA” ”“ CÏ·ŒB”’ CVŽ•B” ”“ CP�ØA” ”’CÿæÛ.—Cš™@‰ "C¸õÞ=”“ CÊ@™¾” C&É©?”’ COßÝ<”“ C,P(¾” C)ñs>”“ CŠŠ³?”’    ! ! " C—C€?– C—C€?– C—C€?– } *X" *T”C—"” ’ ” ’• (P" AF  AF@ C®Ga?”"C�Âu=’”Co;’ Cš™?’”C�Âu=’•Cˆˆ½’  C®Ga?”"C�Âu=’”Co;’  Cš™?’”C�Âu=’•Cˆˆ½’•  C€?–} *X"  *T”C—"” ’ ” ’• (P" AF  AF@ C®Ga?”"C�Âu=’”Co;’ Cš™?’”C�Âu=’•Cˆˆ½’  C®Ga?”"C�Âu=’”Co;’  Cš™?’”C�Âu=’•Cˆˆ½’•  C€?–} *X"  *T”C—"” ’ ” ’• (P"AF  AF@ C®Ga?”"C�Âu=’”Co;’ Cš™?’”C�Âu=’•Cˆˆ½’  C®Ga?”"C�Âu=’”Co;’  Cš™?’”C�Âu=’•Cˆˆ½’•  C€?– ò @ (è"@   ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A ! @ ( J@ ( Atj(" Ak(A¾FA  ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@   ( !  A FA @  Ak(A¾FA E@ (Ì Aj!  A ú }#A�¥ÁkAÐI@ #AÐk" $ A€É*A„É*AˆÉ*AŒÉ*A�É*A”É*A˜É*AœÉ*A É*A¤É*A¨É*A¬É*A°É*A´É*A¸É*A¼É* •!!!!!!!!!!!!!! ! "             ã!!!!!!!!!!!!!! ! " 8 8 8 8 8 8 8 8 8 8$ 8( 8, 80 84 88 8< * * * * * * * * * *$ *( *, *0 *4 *8 *”!@@@@@@@A CpB•»" DdE A DàÿÿÿïAf  «  C*\ï>! !C!  !C*\ï>!C!  C!C*\ï>!  C! !C*\ï>!  !C*\ï>!  C*\ï>! C ×Ã>’"Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ C ×Ã>’"Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ C ×Ã>’"Cæ®%=_} CR¸NA• C®Ga=’C= ‡?•Cš™@‰ C€? è} (˜"6$ ž *¸! *´! *°! *¬8 8 8 8 -ÉAG6˜ C8( C€?80 AA -Ê6p C?8l (Ì"AF@ A6h *Ð8l AF@ A6h AF@ A6h C?8l -ÈAG6h Ä} AGAA j" "#Î"( O@ ( Atj("@  AA§ ˜"AAA.A¤6 AAA.A¤6 AAA.A¤6 AAAýA¤6 A6AA-˜"A°Éýý !AA-˜"AÀÉýý !A!@ AH@  Ak(AvO@  Atj*!  Ak(AvO@  Atj*! ("( "Aj!  (AvK@  AA™ ( Atj 8  6 ("( "Aj!  (AvK@  AA™ ( Atj 8  6 ("( "Aj!  (AvK@  AA™ ( AtjC8  6 ("( "Aj!  (AvK@  AA™ ( AtjC8  6 ("( "Aj!  (AvK@  AA™ ( AtjC8  6 ("( "Aj!  (AvK@  AA™ ( AtjC€?8  6 C€? “ ! C€? “ ! ("( "Aj!  (AvK@  AA™ ( Atj 8  6 C€? “! ("( "Aj!  (AvK@  AA™ ( Atj 8  6 Aj!  AA ˜"AÐÉAü !A!@ Ak(Av J@  Atj(! ( "( "Aj!  (AvK@  AA™ ( Atj 6  6 Aj!  A8A® ˜"µ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Ï#Î œ Õ}  ”  ”“C€?   ”  ”“"”   ” ”“"”’  ”  ”“"”’"•"”  ”  ”“ ”  ”  ”“ ”C  ”  ”“ ”  ”  ”“ ”  ”  ”“ ”C  ”  ”  ”CCCCC€?!!!!!!!!!!!!! ! ! " 8D 8H 8L 8P 8T 8X 8\ 8` 8d 8h 8l 8p 8t 8x 8| 8€  À4} ( "E@ ( "*! *! *! * ! *! *Œ!& *! * ! *Œ!+#A�¥ÁkA0I@ #A0k"$  8  8  +8 “" !   “"C€?  ” ”’ & Œ"“" ”’‘•" ”  ” ”!%!$"#8  $8  %8 * ! *!  *" *"&” *" *"+”“8  + ” & ”“8  ” ”“8 *" ” *" ”’ * " ”’‘C½7†5]@ C€?8 C8 C8  *" !&  *"C€?  ” ”’ * " ”’‘•" ” & ” ”!%!$"#8  $8  %8 *" *" * "C *"&” *" ”“  * "” & ”“ ”  ”“C Œ Œ &ŒC   C€?!!!!!!!!!!!!! ! ! ! #A0j$ !2 !3 !4 !5 ! ! !& !+ !6 !7 !8 !9 ($AF! (t!@  H@ ( Atj("(AHA ( (L E@ ( (Atj(! *! * ! *! *!) *! *!! * !" *$!* *(!' *,!( *0!, *4!1 *8!- *A¤*!?A¨*!@A¬*!AA°*!B *lAø*[ *hAô*[q *pAü*[q *tA€*[q , 8[ + 7[q - 9[q . :[qA  0 <[ / ;[q 1 =[q 2 >[qA  4 @[ 3 ?[q 5 A[q 6 B[qA @Aô*Aø*Aü*A€*A„*Aˆ*AŒ*A�*A”*A˜*Aœ*A *A¤*A¨*A¬*A°*  A€É*A„É*AˆÉ*AŒÉ*A�É*A”É*A˜É*AœÉ*A É*A¤É*A¨É*A¬É*A°É*A´É*A¸É*A¼É*@@@ Ak(A²k. ¬  •!*!)!(!'!&!%!$!#!"!!! !!!!"     ! " # $ % & ' ( ) *ã!*!)!(!'!&!%!$!#!"!!! !!!!"     ! " # $ % & ' ( ) *AÀÈ*AÄÈ*AÈÈ*AÌÈ*AÐÈ*AÔÈ*AØÈ*AÜÈ*AàÈ*AäÈ*AèÈ*AìÈ*AðÈ*AôÈ*AøÈ*AüÈ*ã !*!)!(!'!&!%!$!#!"!!! !!!!"8  8  8  8  8  8  !8  "8  #8  $8$  %8(  &8,  '80  (84  )88  *8< *!+ *!, *!- *!. * !/ *$!0 *(!1 *,!2 *0!3 *4!4 *8!5 *A¤*!?A¨*!@A¬*!AA°*!B *Aø*[ *Aô*[q *Aü*[q * A€*[q , 8[ + 7[q - 9[q . :[qA  0 <[ / ;[q 1 =[q 2 >[qA  4 @[ 3 ?[q 5 A[q 6 B[qA E"} * * * * * * * * * *$ *( *, *0 *4 *8 * *P!C *T!G *X!H *\!I *`!J *d!K *h!L *l!M *p!N *t!O *x!P *|!YA! ( GA ( G A ( G @  6  ž  6  ž  6 !@ @A  F  ( !  A  �Aà� A «ÂA� "Ak(Av (d  ¥ÒA  (d  ¥Ò"E@ (A !  ( G@ A� 6\  6  žA! @ ( " E A ( F  *$!Z *(![ *,!\ *0!] *4!^ *8!_ * C G H I J K L M N O P Y + , - . / 0 1 2 3 4 5 6 7 8 9 :ã!*!)!(!'!&!%!$!#!"!!! !!!!"!+ *$ *4 *D *T !, !- !. !/ !!0 #!1 $!2 %!3 *!4 * !5 *(!6 *,!7 *0!8 *8!9 * + *"C“‹ +‹ C‹—C€?—C·Ñ8”_ , 4“‹ ,‹ 4‹—C€?—C·Ñ8”_A  - 5“‹ -‹ 5‹—C€?—C·Ñ8”_A  . 6“‹ .‹ 6‹—C€?—C·Ñ8”_ / 7“‹ /‹ 7‹—C€?—C·Ñ8”_A  0 8“‹ 0‹ 8‹—C€?—C·Ñ8”_A A  1 9“‹ 1‹ 9‹—C€?—C·Ñ8”_ 2 :“‹ 2‹ :‹—C€?—C·Ñ8”_A  3 ;“‹ 3‹ ;‹—C€?—C·Ñ8”_A A  (!+ '", <“‹ ,‹ <‹—C€?—C·Ñ8”_ + =“‹ +‹ =‹—C€?—C·Ñ8”_A  )"+ >“‹ +‹ >‹—C€?—C·Ñ8”_A A A A!A! 5 !g#”AF - A E"  )� gQA @ (Œ  -d@ó " ) B|7 A Ô6( A ÔžA�  B¥Æˆ¡Èœ§ùK!f (( ! @ AH@ f AtvAÿq­…B³ƒ€€€ ~!f Aj!  ( ( Am! A!@ AH@ f AtvAÿq­…B³ƒ€€€ ~!f Aj!  @ ( "( J@ ( O@ ( Atj(! A!@ AH@ f AtvAÿq­…B³ƒ€€€ ~!f Aj!  Aj!  A! @ ("( H@ ( O@ ( A8lj"*!+ *!, (! A!@ AH@ f AtvAÿq­…B³ƒ€€€ ~!f Aj!  ,¼! A!@ AH@ f AtvAÿq­…B³ƒ€€€ ~!f Aj!  +¼! A!@ AH@ f AtvAÿq­…B³ƒ€€€ ~!f Aj!  Aj!  fA™ ! @ 6Œ ž g7�  (ÄA :T  6  žA! ( "  -TA @A! @ (@"( J@ ( O@ ( Atj("E@ ( F ( FA @  (,6  ((A E@ (Þ (  Aj!  A "A -d (h F (dA A @ E@A #”AG@ š  (d" (h FA @   š"6d ž 6h ž  "(!AA± ˜" A6 A6 A6 A6 6 6 6 (,6 (@" ( "Aj! (AvK@ AA™ ( Atj" 6 At  Ÿ 6  (hAj6h @ Þ ó " ) B|7 A Ï6( A Ïž A @ 6  ž (6   6X  ž  (Aj6  6  ž  6X  ž @ (\Ak(AvE@ A�Ò (ÂA�ÑÂAÀÐÂ"6\  ž  (\�AH@ (\! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 @@ (H"( L@A Aç˜"A6 A6 A6 A °! ( " Aj" (AvK@ AA™ ( Atj" 6 At Ÿ 6  (H( Atj(! *´ *À’C?”!+ *¸ *Ä’C?”!,  *° *¼’C?”8€  +8„  ,8ˆ } *@ *D *H *L *P *T *X *\ *` *d *h *l *p *t *x *| *€ *„ *ˆæ!F!E"D!, E!+ F *„!+ *€!, *ˆ !- *!. *!/ *!0 * !1 *!2 *!3 *!4 *!5 * !6 *$!7 *(!8 *,!9 *0!: *4!; *8!< * *ˆ!C *Œ!G *�!H *”!I *˜!J *œ!K * !L *¤!M *¨!N *¬!O *°!P (x /¼F (t .¼Fq (| 0¼Fq (€ 1¼Fq C¼ 3¼F >¼ 2¼Fq G¼ 4¼Fq H¼ 5¼FqA  J¼ 7¼F I¼ 6¼Fq K¼ 8¼Fq L¼ 9¼FqA  N¼ ;¼F M¼ :¼Fq O¼ <¼Fq P¼ =¼FqA A E@A! A! A!@ A H@ (Av M@ ( AtjC8 Aj!  (( " @@ H@ ("( O@ ( A lj"*» ,»¡"h h¢ *» +»¡"h h¢  *» -»¡"h h¢ !h !@ AJ Ak" #�"(AvO@ h ( Atj+cA @ Ak!  AH@A  AN! @ H@ Ak"#�"(AvO@ ( Atj+!i#�"(Av M@ ( Atj i9 Ak"#½"(AvO@ ( Atj(!#½"(Av M@ ( Atj 6 Ak!  #�" (Av M@ ( Atj h9 #½" (AvO@ ( Atj 6 Aj  AH! Aj!  D!hA! @  J@ #�"(AvO@ hDð? ( Atj+D-Cëâ6? £ !h Aj!  A! @  J@ #�"(AvO@ Dð? ( Atj+D-Cëâ6? £ h£¶!. #½"(AvO@ (! ( Atj(A l! A!@ A H@ (Av M@ j" (AvO@ ( Atj* . ( Atj*”’!/ (AvO@ ( Atj /8 Aj!  Aj!  @A!@ AH@ At"Aj" (AvO@ ? X W V U T S R Q B A @ ( Atj* Aj" (AvO@ ( Atj* Aj" (AvO@ ( Atj*ç!F!E"D!. Aj" (AvO@ ( Atj .8 Aj" (AvO@ ( Atj E8 Aj" (AvO@ ( Atj F8 Aj!  *!. *!/ *!0 * !1 *!2 *!3 *!4 *!5 * !6 *$!7 *(!8 *,!9 *0!: *4!; *8!< *”"”ü!#À ”ú!A!@ AL@ ²Cà@•" ’#À”ú!  ’#À”ü! (AvO@ ( Atj  ” ”8 Aj" (AvO@ ( Atj  ”8 Aj" Aj! (AvO@ ( Atj  ” ”8 AJ AJq@  (AvO@ ( Atj  jAk6 Aj" (AvO@ ( Atj  j6 Aj" (AvO@ ( Atj jAk6 Aj" (AvO@ ( Atj  j6 Aj" (AvO@ ( Atj j6 Aj" Aj! (AvO@ ( Atj jAk6 Aj! Aj!  ! ! Aj!   6  ž  6  ž   Ak(A™ FA @  Ak(A™ FA E@ @ ("(Av"AI@ AÀµ6 AÀµž  A Aç˜"A6 A6 A6 At"AÿÿÿÿK@ At"A¦˜"6 6 6  ¢!@  J@ Ak k  C^"At" (AvO@ ( Atj*! At" (AvO@ ( Atj 8 AtAj" (AvO@ ( Atj*! AtAj" (AvO@ ( Atj 8 Aj!  A!@  J@ Aj" o!@  J@ Aj o" F  FrE@ At" (AvO@ A ( Atj*! AtAj" (AvO@ ( Atj*! At" (AvO@ ( Atj*! AtAj" (AvO@ ( Atj*! At" (AvO@ ( Atj*! AtAj" (AvO@ ( Atj*! At" (AvO@ ( Atj*!  “"  “”  “"  “”“! AtAj" (AvO@  ( Atj*" “”   “”“!A  “"  “”  “"  “”“"C]   “”   “”“"C^qA C] C^q  C] C^qA C] C^q A A C[   —_   –`q   –`q   —_qA A C[   —_   –`q   –`q   —_qA A C[   —_   –`q   –`q   —_qA A C[   —_   –`q   –`q   —_qA A  Aj!  Aj!  A @ A�¶6 A�¶ž  A!A!A "¢"C[ AA¤˜"A6 A6 A6 A6  š!@  H@   º Aj!  A Aä˜"A6 A6 A6 AkAl"AÿÿÿÿK@ C€?C€¿ C^!  At"A¦˜"6  6  6@ ( " AJ@A! A!@@  N  jAk o" ( O@ ( Atj(! " ( O@ ( Atj(! Aj o" ( O@ ( Atj(! At" (AvO@ ( Atj*! AtAj" (AvO@ ( Atj*! At" (AvO@ ( Atj*! AtAj" (AvO@ ( Atj*! At" (AvO@ ( Atj*! AtAj" (AvO@ @   “ ( Atj*" “”  “  “”“”C^E A!A!@@  N  ( O@ ( Atj(" F  Fr FrE@ At" (AvO@ AtAj" (AvO@   “ (" Atj*" “”  “ At j*" “”“”C•¿Ö³`   “  “”  “  “”“”C•¿Ö³`A    “  “”  “  “”“”C•¿Ö³`A @A!  Aj!    (AvO@ ( Atj 6 Aj" (AvO@ ( Atj 6 Aj"Aj! (Av M@ ( Atj 6  ÉA!  Aj!  A  ( E@ ((!  (AvO@ ( Atj 6 ( AM@ ((! Aj" (AvO@ ( Atj 6 ( AM@ ((! Aj" (AvO@ ( Atj 6  "E@ AÀ¶6 AÀ¶ž  A Aç˜"A6 A6 A6 Al"AÿÿÿÿK@  At"A¦˜"6  6  6A!@  H@ At" (AvO@ ( Atj*! Al" (AvO@ ( Atj 8 AtAj" (AvO@ ( Atj*! AlAj" (AvO@ ( Atj 8 Aj!   6  ž  6  ž   6  ž  6  ž  Å} Ak!@  J@ At" (AvO@  ( Atj* AtAj" "(AvO@ ( Atj*” At" (AvO@ ( Atj* (Av AtAj"M@ ( Atj*”“’! "Aj!  C?” Å ( ! AAA™ AJ@ (A Atü A6 ü @ ( J@@ ( Atj(" Ak(A› FA E  Ak(A› FA E@ A!A ("( "E ALr  (!@  H@  Atj( F@   Aj!  A "AN ("( O@ ( Atj(A "AH ( O@ ( Atj("A H@ A tr! Aj!   õ}#A�¥ÁkA I@ #A k"$ (t! (( "A:¸@ ( J@@ ( Atj("(Ì (GA -È E *Ä! *À! *¼! *¸! *´!  *°8  8  8  8  8  8 (¬@ -¸} * " *"  ] *¤" *"  ] *¨" *"  ]!!"   *¬" * "  ^ *°" *"  ^ *´" *"  ^!!"  ! ! ! ! !"! ! ! ! !  *! * ! *! *! *! * !  8   8¤  8¨  8¬  8°  8´ A:¸ (¬AF } *¼" *"  ] *À" *"  ] *Ä" *"  ]!!"   *È" * "  ^ *Ì" *"  ^ *Ð" *"  ^!!"  ! ! ! ! !"! ! ! ! !  *! * ! *! *! *! * !  8¼  8À  8Ä  8È  8Ì  8ÐA! Aj!   :Ô E@ C8¼ C8À C8Ä C8È C8Ì C8Ð } *Ì! *È! *Ä! *À! *¼! *ÐC€?!C€?! C€¿!C€¿!C€¿!C€? ! 8, 80 84 88 8< 8@#A j$ Š} ("( !  ("(Ü6  (à6  :  ("( 6  (œ" (œ"(6  -:  -:  (6  ( 6  -: (¤ (¤è  -É:ô -É}C *L! *H! *D! *P !  8X  8\  8`  8d  ("AG: @ -} * *\!? *`!@ *!A *!B * !C 1 2 3 4 5 6 7 8 9 : ; < A B Cç!!"  #ʱ  (´(j! Aj!  #Aðj$  ÷}#A�¥ÁkAI@ #Ak"$C€?!C€?! C€?! @ (( Atj*"þ ! ý "Œ! ! @ At" (Lj*" ”! (P j*" ”! (T j*" ”! (X j*" ”!  ”" ”"“C@”!  ”" ”"’C@”! C€?  ’C@”“!  ”" ’C@”! C€? ’C@”“!  “C@”!C€? ’C@”“!  “C@”!  ’C@”! @ At" (j*"" ” ( j*"" ”’ ($ j*"" ”’‘"C^@  •!  •!  •!  ” ”“8  ” ”“8   ”  ”“8 *" ” *" ”’ *" ”’‘C½7†5]@ ”  ”“"! ” ”“"C€?  ”  ”’  ”  ”“" ”’‘•"” ”  ”!!"! " ” " ”“"C€?  ” ” ”“" ”’  ”  ”“" ”’‘•"”  ” ”!!"! ! !  *"! *"C€?  ”  ”’ *" ”’‘•"” ”  ”!!""! "” " ”“! ”  ”“!  ”  ”“"! C€? ” ”’  ”’‘•"” ”  ”!!"! ! ! At" (4j*! (0 j*" ”!#"  (, j*"”8  8  ”8#"  ”8 ”8 ”8#"  ”8 ”8  ”8 #Aj$ Ñ}@ AtAj" N@ Aj  Aj" H  Atj("Atj*!  Atj("Atj*!  J  [q  ]rA !  Atj"("Atj*!  Atj"("Atj*!  J  [q  ]r@  6  6 !  Ì }   #%-E® At" (j*! ( j*! ( j*! #%"-E@ *@ ” *L ”’ *X ”’! *D ” *P ”’ *\ ”’! *< ” *H ”’ *T ”’ *`’!  *d’! *h’!  8œ  8   8¤ @#%‡#A�¥ÁkA0I@ #A0k"$#"*D! *@!  *<8  8  8#"*P! *L! *H!#"*\! *X! *T!#*$! #*(!#*,! @@ AF@#"*8! *4!  *08  8  8 *! * !  *" *" ” *" *"”“8   ” ”“8   ” ”“8 *" ” *" ”’ * " ”’‘C½7†5]E@ *"! *"C€?  ”  ”’ * " ”’‘•"”!  ”! ”!  8  8  8 *! *!#" * ”8   ”8   ”8 *! *! #" * 8  8  8 * ! *!#" * ”8  AF@ (( Atj*" þ ! ý ! *! *!#" * ”  ”“ ”8   ”  ”“ ”8   ” ”“ ”8 *! *!#" * ”  ”’ ”8   ”  ”’ ”8  ” ”’ ”8#"  ”8  *! *! #" * ”8  ”8  ”8#"  ”8   ”8  ”8#"  ”8   ”8   ”8 #A0j$    ”8   ”8 #A0j$ #%A…#%A…#%† #"*!#"*! * *" #"* "”  *" ”“” * *" ” ”“”“ * ” ”“”’C]@#%A:¨ #%"*œ! * ! *¤! At" (8j*! (< j*! (@ j*! (D j*!#"*! *! * !#"* ! *! *!#"*! *!  Atj" *8 8 8 8 8 8 8 8 8 8$ 8( 8, 80 84 88 8< œ }~#A�¥ÁkAI@ #Ak"($ (´!% "A:@ %E %(´!& (Ø!* A AF AFr AFr"+"AF AF AFrrA (ØAF ! +Aÿq (ØAÿqAtr"'A€€r ' "'A€€r ' -Õ"'A€€r ' -¤"'A€€ r ' -¥­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­B¥Æˆ¡Èœ§ùK…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~!1 @ !¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ ¼­ 1 ¼­…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~…B³ƒ€€€ ~!1 B 1 1P!1 %(¸ %(°F %)À 1QA @ &* ! &*! &*! &*! &*! " &* 8 " 8 " 8 " 8 " 8 " 8 " &-$:  #%                  + „ @#A�¥ÁkA0I@ #A0k"$            ç!0!/".8  /8  08 *" ” *" ”’ *" ”’‘C½7†5]}C! C!C€¿ *" C€? ” *" ”’ *" ”’‘•"”! ”!  ” !  8  8  8           !ç!0!/".8  /8  08 *! * !  *" *"” *" *"”“8   ”  ”“8   ”  ”“8 *" ” *" ”’ * " ”’‘C½7†5]}C!C€?!C *"C€?  ” *" ”’ * " ”’‘•"”!  ”!  ” !  8  8  8 *! *!  *" *"” *" * "”“8   ”  ”“8   ”  ”“8 * ! *!#" *8<  8@  8D *! *!#" * 8H  8L  8P *Œ! *Œ!#" *Œ8T  8X  8\#A0j$ %(" %(Ak("  H" %(´(Ak(AÀm"  H!) &(!,#%A:¨A! *@ %(È!' %(Ì!$#"*TŒ! *\Œ! *XŒ! ( 8 ( 8 ( 8A!@  )H@ $ At"#j  %(j-}#Œ *AF} # %(j*Œ *AF} %( Atj* At"# %(j*! %( #j*! %( #j*!#%"#-@ #* ” #* ”’ #*( ”’! #* ” #* ”’ #*, ”’! #* ” #* ”’ #*$ ”’ #*0’!  #*8’!  #*4’!   !0!/". (*” / (*”’ 0 (*”’Œ "#–  \C€ 8 Aj!  $! )AtA@k!*A!#@ # )H@@ ' #Atj(!( #Ak!$@ $AN  ' $Atj("-Atj*! ( -H   (Atj*"[q  ^rA @ ' $AjAtj ' $Atj(6 $Ak!$ *Ak"*AN  ' $AjAtj (6 )AuAk!$@ $AN@ '  $ )¯ $Ak!$  )Ak!$@ $AJ@ '(!# ' ' $Atj"((6 ( #6 ' A $¯ $Ak!$   ' $AjAtj (6 #Aj!#  A!@@  )N ' Atj("$ %(j-E % $  , + -¤ -¥° Aj! Aj!  A!@  )H@  %(j-@ %   , + -¤ -¥° Aj! Aj!  #%-¨! AJ}#%"*°! *À! *¼! *¸! *´! *ÄC!C!C!C!C!C ! & 6 &A: & :% & 8 & 8 & 8 & 8 & 8 & 8 & AJ":$ & &(0Aj60 % %(°6¸ % 17À " 8 " 8 " 8 " 8 " 8 " 8 " :#Aj$ #Aj$ œ -À"E@#2" (˜G@ A�!AÅ»òˆx!@ Ak(Av" J@  OA  Atj/ sA“ƒ€l! Aj!   6”  6˜ (Œ! )ȧ A (” !  E AJq  Av sA»¾ö"l" AvsA»¾ö"l" Avss" AvsA»¾ö"l" AvsA»¾ö"l" Avs  6” (”! A  (�"AL   A¯ÖÓ¾lA±ÏÙ²j" AvsA»¾ö"l" AvsA»¾ö"l" Avss" AvsA»¾ö"l" AvsA»¾ö"l" Avs 6˜  :„  )È7ˆ A:� ý AA�Î ( " A�ÎJ AL! (´"@ ( GA ( (ÐAk(AvG @  ‚ ƒ (!@  H@  (jA: At" (jC8 ( jC8 Aj!  A6\ D9` A6h A6� D9p B7x D9€ A:Š A:œ  -˜:ˆ  -˜:‰  (°Aj6°  (”6˜ A AÐ ˜"A6AAј AAј6AA-˜ AA-˜6AA-˜ AA-˜6 AA-˜ AA-˜6AA-˜ AA-˜6AA-˜ AA-˜6AA-˜ AA-˜6AA-˜ AA-˜6 AA-˜ AA-˜6$AA-˜ AA-˜6(AA-˜ AA-˜6,AA-˜ AA-˜60AA-˜ AA-˜64AA-˜ AA-˜68AA-˜ AA-˜6!0 5!, 4!- ¢¶»¢ ·£  ^ e¢ a¢!^A! _ bd| ^ _c ^ bfq|A! _ ^¡     Dd| ^ bf|A! a ^¡ _    ^ _c|A! _ ^¡      !^C!A  At" ( j*»"c ( j*»"` e¢cr"+@ E@A  !  (jA:  C!M#˜( Atj(" (˜ A±óÝñyl (hA딯¯xlj" AvsA»¾ö"l" AvsA»¾ö"l" Avss" AvsA»¾ö"l" AvsA»¾ö"l" Avs"A‡³Ñ‘ "A‡³Ñ‘ 6 At" (Hj 6  (jA: ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (Ð j (Aÿÿq¸Dàÿï@£¶"C8 (Ô j ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (Aÿÿq¸Dàÿï@£¶8 (Ø j ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (Aÿÿq¸Dàÿï@£¶8C€?!EC€?!-C€?!.C€?!/ (¤"@  ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (Aÿÿq¸Dàÿï@£¶¶!?!>!="!- *¨!3 *¬!9 *°!2 *´!1 *¸!@#A�¥ÁkA I@ #A k"$ ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 ("Aÿÿq¸Dàÿï@£¶C@”C€¿’ 1”#”!0  A‡³Ñ‘ " A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (Aÿÿq¸Dàÿï@£¶C@”C€¿’C€? @“” 1”#”!1 0ý !4 0þ !8 1ý !@ 1þ !B  38  98  28 *"1 1” *"0 0”’ *"9 9”’C^@ C€? 1 1” 0 0”’ 9 9”’‘•"3 3“C[ 3C^q@ 1 3” 0 3” 9 3”  CCC !7!6"58  68  78 C8 C8 C€?8 *!1  *"0C€?” *"3C”“8  1C” 0C”“8  3C” 1C€?”“8 * "1 1” *"1 1”’ *"1 1”’CwÌ+2]@ C8 C8 C€?8 C€? * "0 0” *"3 3”’ *"9 9”’‘•"1 1“C[ 1C^q@ 0 1” 3 1” 9 1”  CCC !7!6"58  68  78 * "2 4 B”"1” 2 *"0” *"3 *"4”“!: *"; 3” *"9 2”“!2 4 9” 0 ;”“ @”’ 3 8 B”"3”’!B 4 1” 2 @”’ 0 3”’!2#A j$ ; 1” : @”’ 9 3”’!3 B *È"1 *Ì 1“ ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 ("Aÿÿq¸Dàÿï@£¶”’"0”!1 3 0”!3 2 0”!9  A‡³Ñ‘ " A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6C€? (Aÿÿq¸Dàÿï@£¶ *¼”“!0 At" (jC8 ( j *¤ 0”8 (( j (ð"} CˆC€? *è"0 *ì 0“ C”’”#”8C!2C!0C!4 -!@ .!B /!C (à"AF@ *ä!/ ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 ("Aÿÿq¸Dàÿï@£¶C@”C€¿’!-  A‡³Ñ‘ " A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 ("Aÿÿq¸Dàÿï@£¶CÛÉ@”!0  A‡³Ñ‘ " A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (Aÿÿq¸Dàÿï@£¶!. /C€? - -”“‘”"8 0þ ” .”!4 / -” .”!2 8 0ý ” .”!0 AF@ *ä!- ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 -C€? ("Aÿÿq¸Dàÿï@£¶C@”C€¿’". .”“‘”"/  A‡³Ñ‘ " A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (Aÿÿq¸Dàÿï@£¶CÛÉ@”"0þ ”!4 - .”!2 / 0ý ”!0 AF@ *è!- *ì!. *ð!/ ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 ("Aÿÿq¸Dàÿï@£¶C@”C€¿’ -”!-  A‡³Ñ‘ " A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 ("Aÿÿq¸Dàÿï@£¶C@”C€¿’ .”!0 -!4  A‡³Ñ‘ " A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (Aÿÿq¸Dàÿï@£¶C@”C€¿’ /”!2 AF AFr@ (ô"( AJ",E@ ( ! ( Am"AJ@ ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (" Ak (Aÿÿq¸Dàÿï@£¶ ²”ލ"  LA AN"Al"'AjAtj+¶!2 'AjAt j+¶!0 'At j+¶!4 , (ø (¤ ! AF ( ( FA @ (" Al"Atj+¶!- AjAt j+¶!. AjAt j+¶!/#A�¥ÁkA0I@ #A0k"$  -8  .8  /8 *‹Cw¾?]}C!/C€?C€?!/C !- C8  /8  -8 C€? *"- *"/” *"8 *":”“". .” : *":” / * ";”“"/ /”’ ; 8” : -”“"8 8”’‘•"- -“C[ -C^q@ . -” / -” 8 -”  CCC !7!6"58  68  78 *"; 1”C€? *"- *"/” *"8 * ":”“". .” : *":” / ;”“"/ /”’ ; 8” : -”“"8 8”’‘•"- -“C[ -C^q@ . -” / -” 8 -”  CCC !7!6"5 9”’ * 3”’!. * !/ *!8 * 1” 6 9”’ * 3”’!-#A0j$ / 1” 7 9”’ 8 3”’!3 .!1 -!9 (ü"( AtF} E (" At"AjAtj+¶”!E B AjAt j+¶”!B C At j+¶”!C @ AjAt j+¶” @ !@  AF@ *€!0 *„!2 *ˆ!4 *Œ!: *�!- *”!8 *˜!.#A�¥ÁkA I@ #A k"$ -Coƒ: -Coƒ:^"/C´B .“#”ÿ :”“"-C^E@C!- ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (Aÿÿq¸Dàÿï@£¶!; / - - /^ / - - /]•".C?^E@C?!. - /^} ; .‰ C€? ; .‰ “ !N ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 ("Aÿÿq¸Dàÿï@£¶CÛÉ@”!D  A‡³Ñ‘ " A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (Aÿÿq¸Dàÿï@£¶ / /” 8 8”".“” .’!] 2C[ 0C[q 4C[q}C!.C!2C€?C€? 0 0” 2 2”’ 4 4”’‘•". .“C[ .C^q@ 0 .” 2 .” 4 .”  CCC !7!6"5!2 6!. 7 !0  28  .8  08  *"0‹C[ *".‹C€?[q *"2‹C[q} 0C”"4 .C€?”“!0 .C” 2C”“!. 2C€?” 4“ *"2C€?” *".C”“!0 .C” *"4C€?”“!. 4C” 2C”“ 8  .8  08 C€? * "0 0” *"2 2”’ *"4 4”’‘•". .“C[ .C^q@ 0 .” 2 .” 4 .”  CCC !7!6"58  68  78 *!. *!0 *!2 *!4 *!8 C€? * "; Dþ "F” 4 0” . 8”“ Dý "D”’ 2 2 ;” 4 .”’ 8 0”’C€? F“”"O”’"P P” . F” 8 ;” 0 2”“ D”’ 4 O”’"Q Q”’ 0 F” 2 .” ; 4”“ D”’ 8 O”’"0 0”’‘•". .“C[ .C^q@ P .” Q .” 0 .”  CCC !7!6"58  68  78 * ]‘". . - /•” .“ N”’"-” * N :” :C?”“".”’!4 *!/ *!2 * -” * .”’!0#A j$ / -” 2 .”’!2 At" (Üj ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (Aÿÿq¸Dàÿï@£¶8 (à j ("E@A‡³Ñ‘!   A�æm"A�ælkA§ƒl A”lk"AH Aÿÿÿÿj  6 (Aÿÿq¸Dàÿï@£¶8C€?!-C!.C!/ )@        1 9 3ç!7!6"5!1 7!3 6!9            4 0 2æ!7!6"5!4 6!0 #A�¥ÁkAÀI@ #A@j"$  8  8  8  8  8  8@ *"."- -” *"/"- -”’ *"2"- -”’‘"-C½7†5^E  . -•8  / -•8  2 -•8 *"-!.  * "/ *"2 2 /” *"/ *"2”’ * "8 -”’"-”“8$  2 / -”“8(  . 8 -”“8, *$"."- -” *("/"- -”’ *,"2"- -”’‘"-C½7†5^E  . -•80  / -•84  2 -•88 *"- *". * "/ *0"2 *4"8 *8": . :” 8 /”“ / 2” : -”“ - 8” 2 .”“·!?!>!=!<#A@k$ < = > ?  #A@k$CCCC€? !?!>!="!. 7!2 =!/ ?!- At" (Lj M8 (P j /8 (T j .8 (X j -8 ( j 48 ( j 08 ( j 28 ( j 18 ( j 98 ($ j 38 (ô j C8 (ø j B8 (ü j @8 (€ j E8 @ ` cd@  (jA:A!A!  At" (j ` ^ "`¶8 ( j* T ^¶"1”’!- ( j* S 1”’!. ($ j* R 1”’!/ ` c£¶C€? cDd!A H }  AˆC€? "0’C^@ 0 G H G“ (Ü Atj*”’”"3C\@ - -” . .”’ / /”’‘"0 3 1”“!1 0C[ 1C]r}C!-C!/C - 1 0•"1”!- / 1”!/ . 1” !. At" (j -8 ( j .8 ($ j /8 }  AˆC€? I U I“ (Ð Atj*”’”!- `¶ } AˆC€? ” J V J“ At" (àj*”’”!. (( j - .’#”8   [!- Z!. Y!/ X!1 %@ - % A¶!?!>!="<”!- 1 ?”!1 / >”!/ . =”!. +@  ¶ & - . / & Aˆ»D-DTû!@¢ L \ L“ (Ø Atj*”’»¢¶"-C[}C€? -þ -C[}C -ý · - . / At" (äj* (è j*· !7!6"5!- At" (8j - (ô j*”8 (< j 6 (ø j*”8 (@ j 7 (ü j*”8 (D j 1 (€ j*”8C€?!-C€?!/ *} "} " AˆC€? !- #} # AˆC€? !/ $} $ AˆC€?  !} ! Aˆ"-!/ -C€? !. At" (,jC¬Å'7 - K W K“ (Ô j*”’"-”"1 1C¬Å'7]8 (0 jC¬Å'7 / -”"/ /C¬Å'7]8 (4 jC¬Å'7 . -”"- -C¬Å'7]8 ( j" * ( j* ^¶"-”’8 ( j" * ( j* -”’8 ( j" * ($ j* -”’8A!A! (Aj!( Aj!   (6\ @  (°Aj6° A _™D€µøä>f -‰A   A:‰ -¨@ A:œ A }} At" (äj *ì" *ð “ (Ø j*”’»D-DTû!@¢¶"C[}C€? þ 8 (è Atj C[}C ý 8 ê} C¼t3?”C‡™>’ C1,>”’ ”C‡™> C‡™>”“ Cžï§>”“ ”’C‡™> Cš™™>”“ C ?”’ ”’C¢E? C¢E?”“ CÃõ¨>”’ ” C¼tÓ>”C¢E?’ C)\=”’ ”’C¢E? C+‡?”“ Cff†?”“ ”’CÕxé= CÕxé=”“" CÉvþ>”“ ”  C�•>”’ ”’ CåÐb?”CÕxé=’ C;ßO>”“ ”’ …|@ + +e + + eA  + +(eA E Da@  +D�íµ ÷ư¾ cA  +D�íµ ÷ư> d  +D�íµ ÷ư¾  ¡ £" +D�íµ ÷ư>  ¡ £"d@ ! ! ! D Dd"    c"d  Da@  +D�íµ ÷ư¾ cA  + D�íµ ÷ư> d  +D�íµ ÷ư¾  ¡ £" + D�íµ ÷ư>  ¡ £"d@ ! ! !    d"    c"d  Da@  +D�íµ ÷ư¾ cA  +(D�íµ ÷ư> d  +D�íµ ÷ư¾  ¡ £" +(D�íµ ÷ư>  ¡ £"d@ ! ! !    d    cd  A A Ä}@@@@@@@@@@@@@@ Ak(A³ k A  A  A  A  A  A    Ak(A³ FA E@ *,"C` *("C`q *0"C`qE@A C[ C[q C[q  Ak(A´ FA E@ +(DdE  Ak(Aµ FA E@ +(Dd +0DdA E  Ak(A¶ FA E@ +0Dd +(DdA E  Ak(A· FA E@ ¿(( AH  Ak(A¸ FA E@ ((( A mE A • | Dð9 Dð9 Dð9 Dðÿ9 Dðÿ9 Dðÿ9(@@@@@@@ Ak(A³ k A  A  A  A  A  A  "AF@  Ak(A· FA E@ ((!A!@ ( " AjJ@  O@ ( Atj+" ¡Da Aj" ( O@ ( Atj+" ¡DaA  Aj" ( O@ ( Atj+" ¡DaA @  ( O@ Aj" ( O@ (" Atj+! At j+! Aj" ( O@ ( Atj+!  +c@  9  +c@  9  +c@  9  +d@  9  + d@  9  +(d@  9( Aj!   AF@  Ak(A¸ FA E@ (("( A mA l!A!@  H@  ( O@ Aj" ( O@ (" Atj+! At j+! Aj" ( O@ ( Atj+!  +c@  9  +c@  9  +c@  9  +d@  9  + d@  9  +(d@  9( Aj!   ¹@ @@@@@   Ak(A³ FA E@ *,»Dà?¢! *0»Dà?¢!  *(»Dà?¢"š9  š9  š9  9  9  9(   Ak(A´ FA E@  +("š9  š"9  9  9  9  9(   Ak(Aµ FA E@ +0Dà?¢"  +(¤"¡D¥  !  š"9  š9  9  9  9  9(   Ak(A¶ FA E@ +(Dà?¢!  +0"š9  š9  š9  9  9  9( Ì*|} Dð9 D9 D9 D9 A6 A:$@ DfE @@@@@@@ Ak(A³ k A  A  A  A  A  A  !  ¢  ¢   ¢ "$Dd $ $¡DaA ! AF@   Ak(A¸ FA E@ ((( A mEA   Ak(A¸ FA E@ A À(! ! ! ! ! D•Ö&è .> $Ÿ£"š!"   ! A -,E!D!$#Í"Dð9 A6 D9 D9 A: A (E  (! ( ! (! (! ( !A!Dð? £"&!Dð? £"'! (" "(AvE@ (AvAM@ (" *» ¡ ¢" * » ¡ ¢"d@ ! ! ! (AvAM@ (AvAM@  "  "d!    c! (" *» ¡Dð? £"%¢" *» ¡ %¢"d@ ! ! ! (AvAM@ (AvAM@    d!    c! ("*» ¡ ¢" *» ¡ ¢"d@ ! ! ! ADð    d"    c c"Dða  (AvE@ (A6A! (AvE@ ( 9@ AJ@ Ak" (AvO@  ( Atj+e   (AvO@ ( Atj(" (AvO@ ( Atj(! (AvO@ ( Atj("AL@ k!@ H@ A l" (AvO@ ( Atj*»! Aj" (AvO@ ( Atj*»! Aj" (AvO@ ( Atj*»! Aj" (AvO@ ( Atj*» ¡! Aj" (AvO@ ( Atj*» ¡! Aj" (AvO@ ( Atj*» ¡!) Aj" (AvO@ ( Atj*» ¡!* Aj" (AvO@ ( Atj*» ¡!+ Aj" (AvO@@   ( Atj*» ¡"-¢  +¢¡"(¢   *¢ -¢¡",¢  ) +¢  *¢¡"/¢ "DaA  ¡Db  Ddq  ¡". (¢  ¡" ,¢   ¡" /¢ Dð? £"(¢"D0¸Dð?d D•Ö&è .¾cr  )¢  ¢¡",¢   ¢ . )¢¡"¢   . ¢  ¢¡"¢  (¢"D•Ö&è .¾cA   D0¸Dð?d * ,¢ + ¢  - ¢  (¢" "d  dq@ ! !$ !! !# ! Aj!   Al" (AvO@ Aj" (AvO@ (" Atj*» ¡ '¢" At j*» ¡ '¢"c@ ! ! ! Aj" (AvO@ Aj" (AvO@  "  "d!    c! (" Atj*» ¡ %¢" At j*» ¡ %¢"c@ ! ! ! Aj" (AvO@ Aj" (AvO@    d!    c! (" Atj*» ¡ &¢" At j*» ¡ &¢"d@ ! ! ! Dð    d"    c c" Al" (AvO@ Aj" (AvO@ (" Atj*» ¡ '¢" At j*» ¡ '¢"c@ ! ! ! Aj" (AvO@ Aj" (AvO@  "  "d!    c! (" Atj*» ¡ %¢" At j*» ¡ %¢"c@ ! ! ! Aj" (AvO@ Aj" (AvO@    d!    c! (" Atj*» ¡ &¢" At j*» ¡ &¢"d@ ! ! ! Dð    d"    c c"e@ Dðb@ (Av M@ ( Atj 6 " Aj! (AvO@ ( Atj 9 Dðb@ (Av M@ ( Atj 6 " Aj! (AvO@ ( Atj 9  Dðb@ (Av M@ ( Atj 6 " Aj! (AvO@ ( Atj 9 Dðb@ " (AvO@ ( Atj 6 Aj! (AvO@ ( Atj 9  A AH   9  ("(AvO@  ( Atj(6  $9  !9  #Dc: A E A#Í+D¥" d #Í(A l" (("( O@ ( Atj+! Aj" ( O@ ( Atj+! Aj" ( O@ ( Atj+! Aj" ( O@ ( Atj+ ¡! Aj" ( O@ ( Atj+ ¡! Aj" ( O@ ( Atj+ ¡! Aj" ( O@ ( Atj+ ¡! Aj" ( O@ Aj" ( O@ ( Atj+ ¡" ¢ ( Atj+ ¡" ¢¡" ¢  ¢  ¢¡" ¢   ¢  ¢¡" ¢ Ÿ"Dd@  £!  £!  £!  ¢  ¢   ¢ Dd@ š! š! š! 9 9 9 9 #Í(6 A  A! AF@  Ak(A· FA E@ ¿"(( AH  (       ¾! #Ã!  ¹ A @@@@@@@@@@@@@ Ak(A³ k A  A  A  A  A  A    Ak(A³ FA E@ *0!0 *,!1 ™ *(»Dà?¢D•Ö&è .¾ c ™ 1»Dà?¢D•Ö&è .¾ cA  ™ 0»Dà?¢D•Ö&è .¾ cA   Ak(A´ FA E@  ¢  ¢   ¢ Ÿ +(D•Ö&è .¾ c   Ak(Aµ FA E@  ¢ +0Dà?¢"  +(¤¡D¥" c|  ¡   D  šc " ¢   ¢ Ÿ +( +0Dà?¢¤D•Ö&è .¾ c   Ak(A¶ FA E@  ¢  ¢ Ÿ +0D•Ö&è .¾ c ™ +(Dà?¢D•Ö&è .¾ cA   Ak(A· FA E@ ¿(! @ ( " J@ M@ Aj" ( O@ A (" Atj+ ¢ At j+ ¢  Aj" ( O@ ( Atj+ ¢  Aj" ( O@ ( Atj+¡D•Ö&è .¾cE  Aj!  A  A " @@@@@@@@@@@@@@ Ak(A³ k A  A  A  A  A  A    Ak(A³ FA E@  *(»Dà?¢! *,»Dà?¢!" *0»Dà?¢!% ! !A!Dðÿ!Dð!A! @ AH@   AF"  ! " %   !!@     "#Da@A  !šc  !dr   !š ¡ #£"& ! ¡ #£"!¤" d@Dð¿Dð? #Dd! ! ! ! &¥" c@ ! A  d  Aj!  A AH  $t $«D $¬ D AF$­ D AF$®A   Ak(A´ FA E@ +(D      ¼   Ak(Aµ FA E@  +0Dà?¢" +(¤"!  ¡D¥!Dð!Dðÿ!A!@ AH@ AH  š        ¼ Dd        A½A @A! #« #« d!#t c|#¬! #­!!#®!##t  ! Aj!  A E Dðar  $t $« $¬ !$­ #$®A   Ak(A¶ FA E@ +0 +(Dà?¢      A½   Ak(A· FA E@ ¿(      A¾  A ! @ E  D9 A:$A E Er #«#tc #tD•Ö&è .> $Ÿ£šc #tD¥" d 9 #¬9 #­9 #®9A A ð|  ¢  ¡" ¢   ¢ " ¢  ¢  ¢   ¢ "  ¢  ¢   ¢  ¢¡¢¡"Dc@A š Ÿ" ¡ £"$t ¡ £$«  ¢ " ¢  ¢ " ¢   ¢ " ¢ Ÿ!  £D Dd" $¬  £D $­  £D $®A Â|Dðÿ! Dð!  ¢  ¢  ¢¡!  ¢  ¢ "Da@ Dd@A   ¢  ¢ " ¢ ¢¡" Dc@A š Ÿ" ¡ £! ¡ £! Dðÿ!Dð! Da@  c  šcr@A  š ¡ £"  ¡ £"¤!  ¥! ¥" ¤"d@A $t $« e@  ¢ " ¢  ¢ " ¢ Ÿ!  £D Dd"$¬D$­  £D $® @Dð$t D$¬Dð¿Dð? Dd$­D$® A ¤|Dðÿ!Dð!A!A! ! ( ! A!@  NE@ A (" Atj+" ¢ AjAt j+" ¢  AjAt j+" ¢  AjAt j+¡" D•Ö&è .¾c! @ E  ¢  ¢   ¢ "Da@A Dd!  š £! Dc@ d@ ! !   c! A  c! Aj!  $à E AHr@A $t $«  ( O@ ( Atj+$¬ Aj" ( O@ ( Atj+$­ Aj" ( O@ ( Atj+$®A ½  | ($"  Ak(Aë FA A  ( ( FA @  Ak(Aë FA E@ ( AAë ˜"A6 A6  (("( Am!AA¦˜!AA¤˜" 6  ž  6 A6 A6 A!@  H@ Al" ( O@ ( Atj+" ¡Da AlAj" ( O@ ( Atj+" ¡DaA  AlAj" ( O@ ( Atj+" ¡DaA @ ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  AA‰˜"A6  6 ( (  AA¦˜!AA¤˜" 6  ž  6 A6 A6 A!@ ( " J@ ( Atj(!@ AJ@  Ak"M@ ( Atj(! Al" ( O@ Al" ( O@ (" Atj+ At j+a AlAj" ( O@ AlAj" ( O@ (" Atj+ At j+aA  AlAj" ( O@ AlAj" ( O@ (" Atj+ At j+aA  ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  AAŠ˜"A 6 ( (   ( E@AAí ˜"¼   Dð! Dð!Dð! Dðÿ!Dðÿ!Dðÿ!A!@ ( J@ ( Atj(Al" ( O@ ( Atj+¤!  ( O@  ( Atj+¥! Aj" ( O@  ( Atj+¤! Aj" ( O@  ( Atj+¥! Aj" ( O@ ( Atj+¤! Aj" ( O@  ( Atj+¥!  ( O@ Aj" ( O@ ( Atj+™ Aj" ( O@ (" Atj+™ At j+™¥¥¥! Aj!  ( AF  ¡  ¡  ¡¥¥" Dar@AAí ˜"¼  AA¦˜!AA¤˜" 6  ž  6 A6 A6 ( E@ ( ((6 à   D•Ö&è .>¢#Ä ¢¥"! A!Dð! A!@ AL@AAí ˜"¼     AÁ" De  E dr@ ! ! D$@¢! Aj!  Dða@AAí ˜"¼     AÁDðc  E@  6  ( 6 6$ ž ( • ($"  Ak(Aì FA A  ( ( FA @  Ak(Aì FA E@  ((( A mA l!AA.˜"A6 A6 A6 A6  š! ((!A!@  H@  ( O@   ( Atj+¶¡ Aj!  A Aì ˜"A6 A6 A6  ¿6  ( 6 6$ ž  ­« |~AàAî ˜"A6 B7 D9AA¦˜!AA¤˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6 AA¦˜!AAÀ˜" 6  ž  6 A6 A6  6$AA¦˜!AAÀ˜" 6  ž  6 A6 A6  6(AA¦˜!AAÀ˜" 6  ž  6 A6 A6  6,AA¦˜!AAÀ˜" 6  ž  6 A6 A6  60AA¦˜!AAÀ˜" 6  ž  6 A6 A6  64AA¦˜!AAÀ˜" 6  ž  6 A6 A6  68AA¦˜!AAë˜" 6  ž  6 A6 A6  6cE  !@ H@ Aj"   H" ( "( O@ ( O@  ( ( (" Atj4 At j4 #~|""B ˆ§A½ÜÊ•|l "§A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( " AqE@  ) "Q  A~q!  A   " Œ Aj!  Aj!  (( Ak (( Am (AmkjAG A!@ ( " J@ M@  ( Atj+ ! Aj" ( O@  ( Atj+ ! Aj" ( O@  ( Atj+ ! Aj!   #¹"£!  £!  £!D!A!@ ("( Ak J@  ( O@ ( Atj(! Aj" ("( O@ ( Atj(! At" " ("( O@ ( Atj+ ¢ Aj" ("( O@ ( Atj+ ¢  Aj" ("( O@ ( Atj+ ¢  Aj" ("( O@ ( Atj+¡Df  !@ H@ Aj"   H! ( " ( M@  ( O@  ( ( (" Atj4 At j4 #~|""B ˆ§A½ÜÊ•|l "§A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( " AqE@  ) "Q  A~q!  A E  ( ( "B ˆ§A½ÜÊ•|l "§A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( " AqE@  ) "Q  A~q!  A "E@ ("" (" ( O@ ( Atj(!@@ Aj" (" ( O@  ( Atj(N  ( " ( O@ ( Atj(Al! (" ( O@ Aj" ("( O@ ( O@ ( Atj+ ( Atj+¢ Aj" ( O@ ( Atj+ ( Atj+¢  Aj" (" ( O@ Aj" ( O@ ( Atj+ ( Atj+¢  Aj" (" ( O@ ( Atj+¡ ¥! Aj!  Aj!  Aj!  DA (( Ak·£" ( "·fA · £›ª !A!@ H@ ( O@   ( Atj(AlÄ ¥! j!  #¹   m·¡e@A!@ ( J@   Ä ¥! Aj!   £D  D@¢d  Dð à| Al" ( O@ ( Atj+ Al" ( O@ ( Atj+¡" ¢ AlAj" ( O@ ( Atj+ AlAj" ( O@ ( Atj+¡" ¢  AlAj" ( O@ ( Atj+ AlAj" ( O@ ( Atj+¡" ¢  ´| È!AA�˜"A%6 ( (  @ ( J@ (! ( Atj(Al" ( O@ ( Atj+! ( "Aj!  (AvK@  AA™ ( Atj 9  6 (!  ( O@ ( Atj(AlAj" "( O@ ( Atj+! ( "Aj!  (AvK@  AA™ ( Atj 9  6 (!  ( O@ ( ( Atj(AlAj"M@ ( Atj+! "( "Aj!  (AvK@  AA™ ( Atj 9  6 Aj!  Ÿ|  ( O@ ( Atj+! Aj" ( O@ ( Atj+! Aj" ( O@ ( Atj+! (!Dðÿ!A!@ ( J@  "( O@ Aj" ( O@  ( Atj+ ¢ ( Atj+ ¢  Aj" ( O@ ( Atj+ ¢  ( Aj"M@ ( Atj+¡¥! Aj!   ã  ("( O@ ( Atj(!  ("( O@ ( Atj(!  ( "( O@ ( Atj(! Al" ("( O@  ( Atj+¢ AlAj" ("( O@  ( Atj+¢  AlAj" ("( O@  ( Atj+¢  Al" ("( O@  ( Atj+¢ AlAj" ("( O@  ( Atj+¢  AlAj" ("( O@  ( Atj+¢  Al" ("( O@  ( Atj+¢ AlAj" ("( O@  ( Atj+¢  AlAj" ("( O@  ( Atj+¢ ¥¥ ¡ Ê| Al" ("( O@ ( Atj+ Al" ("( O@ ( Atj+¡! AlAj" ("( O@ ( Atj+ AlAj" ("( O@ ( Atj+¡! AlAj" ("( O@ ( Atj+ AlAj" ("( O@ ( Atj+¡! Al" ("( O@ ( Atj+ Al" ("( O@ ( Atj+¡! AlAj" ("( O@ ( Atj+ AlAj" ("( O@ ( Atj+¡! AlAj" ("( O@ AlAj" ("( O@ ( Atj+ ( Atj+¡!  ¢  ¢   ¢ Ÿ" Da@ ¢ ¢  ¢ Ÿ ¢ ¢¡" ¢ ¢ ¢¡" ¢  ¢ ¢¡" ¢ Ÿ £ ë| AG AGq@A         È"'Dc@A         È",Dc@A +( '¢!( »!' »!) »!+ AF@  Ak(A´ FA E@ ( +( ,¢  ' »¡"' '¢ ) »¡"' '¢  + »¡"' '¢ Ÿ¡D�íµ ÷ư>d  Ak(A³ FA E@ ( » '¢ » )¢  !» +¢  $» "( *(»Dà?¢"*  ( *¡D ( *d ( *šc"( (¢ » '¢ » )¢  "» +¢  %» "( *,»Dà?¢"*  ( *¡D ( *d ( *šc"( (¢  » '¢ » )¢  #» +¢  &» "' *0»Dà?¢")  ' )¡D ' )d ' )šc"' '¢ Ÿ ,¢¡D�íµ ÷ư>d ø | »" ¢ »" ¢  »" ¢ " DdE@Dð¿ »" ¢ »" ¢  »" ¢ ! Dñh㈵øä>¢" »" ¢ »" ¢  »" ¢  ¡™cA  ¡™c @Dð¿ ¢ ¢  ¢ ™cA ¢ ¢  ¢ ™c A  ¢  ¢   ¢ ™c @Dð¿ Ÿ � | #lº#l"++ ++e ++ ++ eA  ++ ++(eA E@A Dð!9Dð!:Dð!;Dðÿ!¢ » » 7¢ » 8¢  !» 5¢  $» "?¢  » » 7¢ » 8¢  "» 5¢  %» "5¢  » "7 9c@ 7!9 » >¢ » ?¢  » 5¢  » "8 :c@ 8!: » >¢ » ?¢  » 5¢  » "5 ;c@ 5!; 7 < 7 ¢  ¢   ¢ Ÿ£"¢¡$™#š ¡  ¢¡$š#› ¡  ¢¡$› Ø |#L+#Ž+¡" ¢#L+#Ž+¡" ¢ #L+ #Ž+ ¡" ¢ Dd| D!D!Dð?  Ê# "(AvE@ (#™9# "(AvAM@ (#š9# "(AvAM@ (#›9A$Y#™š$†#šš$‡#›š$ˆA!@ AÀH@#†#†¢#‡#‡¢ #ˆ#ˆ¢ "DdE@ Da #†#‡#ˆÊ#™#†¢#š#‡¢ #›#ˆ¢ De@A #YAl"# "(AvO@ ( Atj#™9 Aj"# "(AvO@ ( Atj#š9 Aj"# "(AvO@ ( Atj#›9#YAj$Y#YAF@Ì  #YAF@Í  # "(AvA M@ (+H!# "(AvA M@ (+P!# "(AvA M@ (+X!# "(AvAM@ (+0 ¡!# "(AvAM@ (+8 ¡!# "(AvAM@ (+@ ¡! # "(AvAM@ (+ ¡! # "(AvAM@ (+ ¡! # "(AvAM@ (+( ¡! # "(AvE@ (+ ¡! # "(AvAM@ (+ ¡!# "(AvAM@ (+ ¡!  ¢ ¢¡ š"¢ ¢  ¢¡ š"¢   ¢  ¢¡ š"¢ Dd@# "(AvAM@ (+!# "(AvAM@ (+ !# "(AvAM@ (+(!# "(AvAM@ (+0!# "(AvAM@ (+8!# "(AvAM@ (+@! # "(AvA M@ (+H! # "(AvA M@ (+P! # "(AvA M@ (+X! # "(AvE@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9 # "(AvAM@ ( 9(# "(AvAM@ ( 90# "(AvAM@ ( 98# "(AvAM@ ( 9@A$YÍ  ¢ ¢¡ ¢ ¢ ¢¡ ¢  ¢ ¢¡ ¢ Dd@# "(AvE@ (+!# "(AvAM@ (+!# "(AvAM@ (+!# "(AvAM@ (+!# "(AvAM@ (+ !# "(AvAM@ (+(! # "(AvA M@ (+H! # "(AvA M@ (+P! # "(AvA M@ (+X! # "(AvE@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9 # "(AvAM@ ( 9(# "(AvAM@ ( 90# "(AvAM@ ( 98# "(AvAM@ ( 9@A$YÍ   ¢  ¢¡ ¢  ¢ ¢¡ ¢  ¢  ¢¡ ¢ Dd@# "(AvAM@ (+0!# "(AvAM@ (+8!# "(AvAM@ (+@!# "(AvE@ (+!# "(AvAM@ (+!# "(AvAM@ (+! # "(AvA M@ (+H! # "(AvA M@ (+P! # "(AvA M@ (+X! # "(AvE@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9 # "(AvAM@ ( 9(# "(AvAM@ ( 90# "(AvAM@ ( 98# "(AvAM@ ( 9@A$YÍ  A @A Aj!  A € |# "(AvAM@ (+!# "(AvAM@ (+ !# "(AvAM@ (+(!# "(AvE@ (+ ¡" š"¢# "(AvAM@ (+ ¡" š"¢ # "(AvAM@ (+ ¡" š" ¢ Dd@  ¢  ¢¡" ¢  ¢  ¢¡" ¢¡$†  ¢  ¢  ¢¡" ¢¡$‡  ¢  ¢¡$ˆ# "(AvE@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9A$Y $† $‡ $ˆ A “|# "(AvAM@ (+0!# "(AvAM@ (+8!# "(AvAM@ (+@!# "(AvAM@ (+ ¡!# "(AvAM@ (+ ¡!# "(AvAM@ (+( ¡!# "(AvE@ (+ ¡!# "(AvAM@ (+ ¡!# "(AvAM@  (+ ¡" ¢  ¢¡! @ ¢  ¢  ¢¡" ¢   ¢  ¢¡" ¢   ¢  ¢   ¢   ¢  ¢  ¢ ¢D§Ž¨™ÂWó:¢dE@  ¢ ¢¡ š" ¢ ¢ ¢¡ š"¢  ¢ ¢¡ š"¢ Dd@  ¢  ¢  ¢ Dd@# "(AvE@ (+!# "(AvAM@ (+!# "(AvAM@ (+!# "(AvAM@ (+0!# "(AvAM@ (+8!# "(AvAM@ (+@!# "(AvE@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9 # "(AvAM@ ( 9(A$Y ¢  ¢¡" ¢  ¢  ¢¡" ¢¡$†  ¢  ¢ ¢¡" ¢¡$‡  ¢  ¢¡$ˆA   ¢  ¢¡ ¢  ¢  ¢¡ ¢   ¢  ¢¡ ¢ Dd@  ¢ ¢  ¢ Dd@ $† $‡ $ˆ# "(AvAM@ (+!# "(AvAM@ (+ !# "(AvAM@ (+(!# "(AvE@ (+!# "(AvAM@ (+!# "(AvAM@ (+!# "(AvAM@ (+0!# "(AvAM@ (+8!# "(AvAM@ (+@! # "(AvE@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9 # "(AvAM@ ( 9(# "(AvAM@ ( 90# "(AvAM@ ( 98# "(AvAM@ ( 9@A$Y š$† š$‡ š$ˆ A # "(AvAM@ (+!# "(AvAM@ (+ !# "(AvAM@ (+(!# "(AvAM@ (+0!# "(AvAM@ (+8!# "(AvAM@ (+@!# "(AvE@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9# "(AvAM@ ( 9 # "(AvAM@ ( 9(A$YÌ A  AA¦˜!AA˜" 6 ž 6 A6 A6 Ð µ Aà’6 A°“ ÂAÀ�Â"6  žAA˜"A6 A6 A6 A6 Aš!@ ("( J@  ( O@ ( Atj("E@ (�AH@  ("( O@ ( Atj("E@ (! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  (!  ( "AJAÀ” ( A°Ä¦ÂA�ÜÂA�•  Ak("A‹ F@AA˜"A6 A6 A6 A6 Aš!@ ( "( J@  ( O@ ( Atj("@ (!A!@ ( " J@ ( Atj((Ak(Av  M@ ( Atj("E@ (�AHA @  ( O@ ( Atj("E@ (! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  Aj!   AŠ F@AAAA¤  "( AJAð• (ÂAðÛ ( ( A°Ä¦Â (A°– Aà“ ÂA°…ÂAàÛÂ"6  ž ¼0 |} (! A � (ÂAÐÈ ÂA �Â! @@@@#øAk(Av J@A#ø Atj( Ä  Aj!  A E@ A ØÂ!A�ÚA°�AÀŽÂAð�ÂÂAðØÂ!  Ñ"Ak(Av@ A Û ÂAÀÚÂ!A°ÜAàÛÂ!  A� " ("AÀüÄ  AððÄA AðûÄ ! (!A!@ ( J@ ( Atj(("  AЈ#ÃA E  Aj!  A� "Ak(Av@ AÐàÄ@ AÐÞÂ!A�àAÀßÂAàÛÂ!  AÐâ ÂA€âÂ!A°äAðâÂAàÛÂ!  AAô ˜"A6 A� 6 6A!@ A�æÄ@  (�AN@Aðç (ÂA°ç ( ( A�ç¦ÂA�ç (ÂA �Â! AÐæ6 AÐæž  6  ž A°è6 A°èžA (! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA† ˜"A� 6 A: AAA‡ A¤6A Aö ˜"A6 D9 A: A6 A� 6  6 A Aö ˜"A6 D9 A: A6 A� 6  6A!@ ("( J@  ( O@ ( Atj("E@  ”" E@   Ï  AÐé (Â"6  ž    Ð"E  ("( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( "AL@ ( Ak"Atj"( A6  6  AðéÄA A°êÄ @AAõ ˜"A� 6 A: A6 C8 A: A€ë#ÎA—!}C€? (A°ëý"E  Ò" b@ A°ë •C€?  ¶ !  6  8  AàëÄA A°ìÄ @AAõ ˜""A� 6 A: A6 C8 A: A€ë#ÎA—!}C€? (A°ëý"E  Ò" b@ A°ë •C€?  ¶ !  6  8 A: A€íÄ@ Aà²ý" Ak(AvA E@ A€îA ï AÐíýÂ! A€Þ6 A€Þž  6  ž Aàï6 AàïžA A Aö ˜"A� 6 A: A6 C8 A: A6 A6A Aö ˜"A6 D9 A: A6 A� 6  6  A€ë#ÎA—6 C8  6 AððÄ@A$Aø ˜""A� 6 A: C€?8 C€?8 C€?8 C€?8 A6 A6 A6 }C€? (A°ñý"E  Ò" b@ A°ñ •C€?  ¶ 8 }C€? (AÐñý"E  Ò" b@ AÐñ •C€?  ¶ 8 }C€? (Aðñý"E  Ò" b@ Aðñ •C€?  ¶ 8 }C€? (A òý"E  Ò" b@ A ò •C€?  ¶ 8  #µ˜6  AÀ·#÷A—6  ™"6  ž A ôÄ@A Aù ˜"A� 6 A: A6  AàôA–6 A€õÄ@AAú ˜""A� 6 A: A6 A6 A� 6  #¶˜6  AàôA–6  AÐöý"A� "6  ž A€÷Ä@AAû ˜""A� 6 A: AÀ÷Ä@AAü ˜""A� 6 A: A6 A� 6 A6  A€øA–6  AÐÖý"A� "6  ž  A ø#·A—6 A€ùÄ@A Aý ˜"A� 6 A: A6  AÀù#¸A—6 A�úÄ@AAþ ˜""A� 6 A: AàúÄ@AAÿ ˜""A� 6 A: A°ûÄ@AA€ ˜""A� 6 A: AðûÄ@A(A‚ ˜""A� 6 A: C€?8 A6 A: A6A A� ˜"C8A Aö ˜"A6 D9 A: A6 A� 6  6A Aö ˜"A6 D9 A: A6 A� 6  6  6A A� ˜"C8A Aö ˜"A6 D9 A: A6 A� 6  6A Aö ˜"A6 D9 A: A6 A� 6  6  6 A: A Aö ˜"A6 D9 A: A6 A� 6 6$ }C€? (A�±ý"E  Ò" b@ A�± •C€?  ¶ 8 AÀ·#÷A—  ™"6  ž AÀüÄ@A$A„ ˜""A� 6 A:AA¦˜!AA… ˜" 6  ž  6 A6 A6  6 A6 AA¦˜!AA… ˜" 6  ž  6 A6 A6  6AA¦˜!AA.˜" 6  ž  6 A6 A6  6AA¦˜!AA.˜" 6  ž  6 A6 A6  6AA¦˜!AA.˜" 6  ž  6 A6 A6  6 A¹óÝñy6  A€ý#¹A—6 A! ((! @ ( J@ ( Atj(!AAô ˜"A6 A� 6  6A!C! ("A�ÿÄ@A! AÐÿÄ@A!}C€? (A°ëý"E  Ò" b@ A°ë •C€?  ¶ ! A�€Ä@A! A€ë#ÎA—²! AЀÄ@A! A��#ºA—²! AÐ…Ä@A! A †Ä@A! Að†Ä@A! (Ak(AvE@ AÀ’ ÂAÀ‡Â"6 ž (Ak(Av (Ak(AvA E@ AðÛ (Â"6 ž AN@ (!A Aƒ ˜"A6 C8 A6  6  8 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!AA… ˜"A6 A6 A6 A6 Aš! (! (! @ ( J@ ( Atj("(AFA ( @ (AF@@ ( "AJ  Ak"M@ ( Atj("E@ (AGA  ( " Ak"M@ ( Atj("E@ A (AFA (AF A (AF  (AF@A *¨"E AFr A AF AFr  A A (AFA (AF A (AF  (AF@A *¨"E AFr A AF AFr  A NA @ ( "AL@ ( Ak"Atj" (! A6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AFA (AF @   ( AkFA Aj" ( O@ ( Atj("E@  " (AFA E6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AF@@ ( "AJ  Ak"M@ ( Atj("E@ (AGA  ( " Ak"M@ ( Atj("E@ (AGA @ ( "AL@ ( Ak"Atj"(! A6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ( "AJ@ ( Ak"Atj"(! A6  6 (AF@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AF ( AJA @ ( Ak!@ AN@  ( O@ ( Atj("E@ (AFA (AF @  (Aj6 Ak!  @ ( "AJ  Ak"M@ ( Atj("E@ (AGA  ( " Ak"M@ ( Atj("E@ (AGA @ ( "AL@ ( Ak"Atj"(! A6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6   ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  @ ( "AJ@ ( Ak"Atj" (! A6  6 (AG@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  (Ak(Av@ AðÛ (Â!Aàþ ÂAðýÂ!  E@ A ØÂ! AÐ×6 AÐמ  6  ž A� 6 A� žA  ("6  ž  ( "AL@ ( Ak"Atj"( A6  6 A AÐ×6 AÐמ  A€Þ6 A€Þž  6  ž  6  žA f (!A!@ ( J@ ( Atj("(AÐ�AÇ@ ( Ñ"Ak(Av@  Aj!  A� ®| Ak(AvE@Dø @ Ak(Av" J@  MA Atj/ "A9L A0Nq A.Fr A-Fr A+Fr AåFr AÅFr@ Aj! Dø ¥"Dø  ¡Da 3 (AF ( ÄA @ A6 6 ž Š ~| b@A€– ¡Db@A°‡A�‡ Dc Dc! ™"D@Cf@A€�A�  ø"A ›AÅAN@ A A ›AÅ"È!  AjAÿÿÿÿÈ"Ak(Av!@  /"A€rA F A kAMr A€-I A A€@jA M @@ A€-F A¨ÀF A©ÀF A¯ÀF AßÀF A€àF AÿýF  A  A   @ Aj! Ak!  A E A! /"A+F A-F"rA Ak"E AA ! Aj"/  A0F AJq@ /A r"AøFA AâF AJqAAA AïF AJq "@ Aj! Ak! A ! !@@ "Ak! E /"A0kA I A0k AÁkAM A7k A×k  AákAM " O Aj!  l j!  A  F   l !A! A �AÅ"AN@ Ak(Av kAk! A È  AjAÿÿÿÿÈÂ!  k"AN AàÜ Ë  ! A �AÅ"AN A È   AJA �AàÜ ËÂA�  œ"±!  ¡!@ A  AF@A Aö ˜"A6 D9 A: A6 A� 6 A6  @@@@@@@@@  A€Ç  AÀÆ  A€Æ  AðÏ  AàÆ  A€×  A ×  A�Õ  AÀÞ ! AFA€ÕA�ÏAÀ“ A ›AÇ ÂAÀè AÐÕÂ!  AAö˜"A: A6 A� 6 A6 A:  6  ž   6 žAAö˜"A: A6 A� 6 A6 A:  6  ž   AAö˜"A: A6 A� 6 A6  6  ž  "-E@A  ("(6  +9  -:  (6  ("6  žA â} ( (G@A ("E@ +¶! +¶!@@@@@@@   [   \   _   ]   `   ^  A  AF - -F AF ( (F AF AFr ( (ÄA ! E@  AF@ E A ÷AA˜"A6 A6 A6 A6 Aš! Ak(AvAG!@ @A   ( ÄA "E (Ak(Av A ï‹" (A� A� "Ak(AvAGq@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( !  AA˜"A6 A6 A6 A6 Aš!A� ! ( Ak!@ AN@  ( O@ ( Atj("E@  A�ÒÂÂ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Ak!  A  (!A! ( "AK@ Av! Ak!@  I@  Atj"(!    kAtj"(6  6 Aj!  ( "Aj" (AvK@ AA™ ( Atj"A� 6 At A� Ÿ 6 » (0Ü!AA˜"A6 A6 A6 A6 Aš!@ ( J@ ( Atj( (Â! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!   ¹ Ü!AA˜"A6 A6 A6 A6 Aš!A!@ ( J@ ( Atj( Â! "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!   äAAߘ"A6 A6 A6 A6 Aš! ((Á!@@  ( N @ ( Atj(" Ak(A¾ FA E  Ak(A¾ FA E@ (" ( ÄA E A!@ ( "( J@ " ( O@ ( Atj("E@ ("@ "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@ (,"( J@ ( O@ ( Atj("E@ ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   Aj!   JA�ÏAÀ“ Ak(Av /A "AåF AáFr AéFr AïFr AõFr Â Ì E AHrA  ( ( N @A " ( "( O@ ( Atj("E@ !A!@ ( "( J@  ( O@ ( Atj("@ (!A!@  ( NE@ Aj    Ï! Aj!  Aj!   iDð? £"¡!  #X¢ D@¢ ¢ ¢Dš™™™™™É? ¢ô Dš™™™™™@ó¢   D333333ó?¢Dð? ¢¢   ð@@@@@@@@@@@@ Ak  š  £#XDà?¢¢ð¢       £D@ó¢     £D@ó¢     £D@ó¢   Da|  D@  £Dð¿ D$@¢ó¢   Dü©ñÒMbP?¢¡  |  Da      £"Dð?a   D@ Dð¿ "D$@¢ó¢  ¢ D333333Ó?¢"DÐ?¢¡#X#X ¢ £ô¢¡    £"¢ ¢ ¢   šDð?  £" ¢¡ŸDð¿ ¢   |  ¡ £"DF]tÑE×?c@  D@@¢ ¢¢D   DF]tÑEç?c@  DtÑE]tá¿ "D@@¢ ¢Dè? ¢D   D]tÑEí?c@  D/ºè¢‹.ê¿ "D@@¢ ¢Dî? ¢D    DŒ.ºè¢‹î¿ "D@@¢ ¢D€ï? ¢D  ¡     £"¢ ¢ D°8œùÕœ@¢Daq8ó«9û¿ ¢     ¡D  â¡    ¢ £   û@@@@@@@@@@@@ Ak    £#XDà?¢¢ô¢     £Dð¿ D@óDð? ¢   š  £Dð¿ D@óDð¿ ¢   š  £"¢ DÀ ¢    a|    Dj¼t“ð?¢Dð?D@ D$À¢ £ó¡¢    |  Da      £"Dð?a  D@ D$À¢ó¢  ¢ D333333Ó?¢"DÐ?¢¡#X#X ¢ £ô¢        £Dð¿ " ¢ ¢Dð? ¢   Dð?  £Dð¿ " ¢¡Ÿ¢   |  £"DF]tÑE×?c@  D@@¢ ¢¢    DF]tÑEç?c@  DtÑE]tá¿ "D@@¢ ¢Dè? ¢    D]tÑEí?c@  D/ºè¢‹.ê¿ "D@@¢ ¢Dî? ¢     DŒ.ºè¢‹î¿ "D@@¢ ¢D€ï? ¢      £Dð¿ " ¢ D°8œùÕœ@¢Daq8ó«9û? ¢Dð? ¢      â  ¢ £   Š | De@    @@@@     ã    ä |@@@@@@@@@@@ Ak   Dà¿¢#X ¢ £ðDð¿ ¢   |  £D@¢"Dð?c@ Dà?¢ D@ó¢    Dà?¢ DÀ D@óD@ ¢   |  £D@¢"Dð?c@ Dà?¢ D@ó¢    Dà¿¢ DÀ D@óDÀ ¢    |  £D@¢"Dð?c@ Dà?¢ D@ó¢    Dà¿¢ Dð¿  DÀ ¢Dð¿ ¢    |  Da      a   Dà?¢£"Dð?c@ Dà?¢D@ Dð¿ D$@¢ó¢   Dü©ñÒMb@?¢¡  Dà?¢D5^ºI ð?¢D@D@ Dð¿ D$À¢ó¡¢    |  Da      Dà?¢£"D@a  DÌÌÌÌÌÌÜ?¢"DÐ?¢! Dð?c@ D@ Dð¿ "D$@¢ó¢  ¢ ¡#X#X ¢ £ô¢Dà¿¢    D@ Dð¿ "D$À¢ó¢  ¢ ¡#X#X ¢ £ô¢Dà?¢      |  Dà?¢£"Dð?c@ Dà?¢ ¢ ¢ ¢    Dà?¢ DÀ " ¢ ¢D@ ¢    |  Dà?¢£"Dð?c@ Dà¿¢Dð?  ¢¡ŸDð¿ ¢    Dà?¢Dð? DÀ " ¢¡ŸDð? ¢    |  Dà?¢£"Dð?c@ Dà?¢  ¢ D@£té_ @¢D@£té_ÂÀ ¢¢    Dà?¢ DÀ " ¢ D@£té_ @¢D@£té_Â@ ¢D@ ¢     Dà?¢c@     Dà?¢ ã     ¡  Dà?¢"   ä   ¢ £    E@  ¢ £    Dà?¢c@     Dà?¢ ä    ¡  Dà?¢"   ã ð}#A�¥ÁkA€I@ #A€k"$@@@ Ak(A²k. ¬   •!!!!!!!! ! ! ! ! !!!"8  8  8  8  8  8  8  8  8  8$  8(  8,  80  84  88  8< *   *" ” *" ”’ *" ”’"C[CCC  ‘"•  •  • !!"8@  8D  8H * *! *!  *8L  8P  8T  *L" *@"  ” *D" *P"”’ *H" *T"”’"”“" ”   ”“" ”’   ”“" ”’"C[CCC  ‘"•  •  • !!"8X  8\  8` *, *(! *$!  * 8d  8h  8l  *d" *@"  ” *D" *h"”’ *H" *l"”’"”“ *X"  ” *\" ”’ *`" ”’"”“" ”   ”“  ”“" ”’   ”“  ”“" ”’"C[CCC  ‘"•  •  • !!"8p  8t  8x *< *8! *4!  *08  8  8 *H! *D!  *@8  8  8 *`! *\!  *X8  8  8 *x! *t!  *p8$  8(  8,  64  ž  *@ *@” *D *D”’ *H *H”’C^ *X *X” *\ *\”’ *` *`”’C^A  *p" ” *t" ”’ *x" ”’C^A :0#A€j$ ùj}|  Ak(A‰ FA @  Ak(A‰ FA E@  AàÕ Ä@ @ (A€HA€ (AÿJAÿ ( 6ø  (ø6 A  A (ü" (A " E AA¼À(Av! A AÀÀAÇE  Ak(Av k! (D!@ ( J@ ( Atj(("Ak(Av F@A! A! @ Hq@ j" Ak(AvOA  Atj/ Ak(AvOA  Atj/ F! Aj!   Aj!  A "AH  (Œ!@@@@@@@ (D( Atj("(  @Dð?D - !  ("(O@ ( j-E@ Ü At" ("(AvO@ ( Atj 9 (Aj6 |  ("(O@ ( j-@ At" ("(AvO@ ( Atj+   (D"( O@ ( Atj("E@ (("Ak(AvE@ + Db: A  @ +!  ("(O@ ( j-E@ Ü At" ("(AvO@ ( Atj 9 (Aj6 |  ("(O@ ( j-@ At" ("(AvO@ ( Atj+   (D"( O@ ( Atj("E@ (("Ak(AvE@ + 9 A  @ (·!  ("(O@ ( j-E@ Ü At" ("(AvO@ ( Atj 9 (Aj6 |  ("(O@ ( j-@ At" ("(AvO@ ( Atj+   (D"( O@ ( Atj("E@ (("Ak(AvE@ + "›" Dð¿  Dà¿  eª6 A  @ * »! ("( M@ ( j-E@ Ü At" ("(AvO@ ( Atj 9 (Aj6 *$»!  ("(O@ ( j-E@ Ü AtAj" ("(AvO@ ( Atj 9 (Aj6|  ("(O@ ( j-@ At" ("(AvO@ ( Atj+  (D"( M@ ( Atj("E@ (("Ak(AvE@ + ¶!|  ("(O@ ( j-@ AtAj" ("(AvO@ ( Atj+   (D"( O@ ( Atj("E@ (("Ak(AvAM@ + ¶!  8  8$ A  (Aq (AFA (AF A @ @ *»! ("( M@ ( j-E@ Ü At" ("(AvO@ ( Atj 9 (Aj6 *»! ("( M@ ( j-E@ Ü AtAj" ("(AvO@ ( Atj 9 (Aj6 *»!  ("(O@ ( j-E@ Ü AtAj" ("(AvO@ ( Atj 9 (Aj6|  ("(O@ ( j-@ At" ("(AvO@ ( Atj+  (D"( M@ ( Atj("E@ (("Ak(AvE@ + ¶!|  ("(O@ ( j-@ AtAj" ("(AvO@ ( Atj+  (D"( M@ ( Atj("E@ (("Ak(AvAM@ + ¶!|  ("(O@ ( j-@ AtAj" ("(AvO@ ( Atj+   (D"( O@ ( Atj("E@ (("Ak(AvAM@ + ¶!  8  8  8 C€?8 A  @ *(»! ("( M@ ( j-E@ Ü At" ("(AvO@ ( Atj 9 (Aj6 *,»! ("( M@ ( j-E@ Ü AtAj" ("(AvO@ ( Atj 9 (Aj6 *0»!  ("(O@ ( j-E@ Ü AtAj" ("(AvO@ ( Atj 9 (Aj6|  ("(O@ ( j-@ At" ("(AvO@ ( Atj+  (D"( M@ ( Atj("E@ (("Ak(AvE@ + ¶!|  ("(O@ ( j-@ AtAj" ("(AvO@ ( Atj+  (D"( M@ ( Atj("E@ (("Ak(AvAM@ + ¶!|  ("(O@ ( j-@ AtAj" ("(AvO@ ( Atj+   (D"( O@ ( Atj("E@ (("Ak(AvAM@ + ¶!  8(  8,  80 A  (Aq (AFA (AF A ! @ } *! *! *! * *¢" Dñh㈵øä>c|Dñh㈵øä> ¡™d   aA ™Dñh㈵øä>¢" Dñh㈵øä>c|Dñh㈵øä>  ¡™d A  " aA ™Dñh㈵øä>¢"Dñh㈵øä>c|Dñh㈵øä>   ¡™d A @ ¡"Da  ¡š"Daq@   ¢  ¢ Ÿ"£" ¢  £" ¢ ! (! (!@  G@ (" Al"Atj+! AjAt j+! AjAt j+! AjAt j+! AjAt j+! AjAt j+! ( Atj("AF@  aA ™Dñh㈵øä>¢" Dñh㈵øä>c|Dñh㈵øä>  ¡™d  aA ™Dñh㈵øä>¢" Dñh㈵øä>c|Dñh㈵øä> ¡™d A   aA ™Dñh㈵øä>¢" Dñh㈵øä>c|Dñh㈵øä>  ¡™d A   ¡" ¢   ¡"¢ "™Dñh㈵øä>c  ¢  ¢  ¡ £"Dñh㈵øä¾c DrÄZ| ð?dr   š" ¢ !   ¢ ! ¡ ¢ ! " aA ™Dñh㈵øä>¢"Dñh㈵øä>c|Dñh㈵øä>   ¡™d  " aA ™Dñh㈵øä>¢" Dñh㈵øä>c|Dñh㈵øä>  ¡™d A   aA ™Dñh㈵øä>¢"Dñh㈵øä>c|Dñh㈵øä>   ¡™d A  (¨(" (°"Al"AkAtj+! AkAt j+!  AkAl j+" aA ™Dñh㈵øä>¢" Dñh㈵øä>c|Dñh㈵øä>  ¡™d  aA ™Dñh㈵øä>¢" Dñh㈵øä>c|Dñh㈵øä> ¡™d A   aA ™Dñh㈵øä>¢" Dñh㈵øä>c|Dñh㈵øä>  ¡™d A    œ  ±| (¨"( Al"Atj+! (" AjAtj+! AjAt j+! Al"At j+! AjAt j+! AjAt j+!A! !@  LE@ (" Al"Atj+ AjAt j+ AjAt j+   (@’" d@ ! ! Aj!   c@   – (´! (¸"Aj6¸ ( Atj 6   – ³}#Æ@ AœÓAìÑ*AðÑ*AôÑ*AøÑ*Î !!!"8A Ó 8A¤Ó 8A¨Ó 8A¬ÓAüÑ*A€Ò*A„Ò*AˆÒ*Î !!!"8A°Ó 8A´Ó 8A¸Ó 8A¼ÓAŒÒ*A�Ò*A”Ò*A˜Ò*Î !!!"8AÀÓ 8AÄÓ 8AÈÓ 8AÌÓAœÒ*A Ò*A¤Ò*A¨Ò*Î !!!"8AÐÓ 8AÔÓ 8AØÓ 8AÜÓA¬Ò*A°Ò*A´Ò*A¸Ò*Î !!!"8AàÓ 8AäÓ 8AèÓ 8AìÓA¼Ò*AÀÒ*AÄÒ*AÈÒ*Î !!!"8AðÓ 8AôÓ 8AøÓ 8AüÓAÌÒ*AÐÒ*AÔÒ*AØÒ*Î !!!"8A€Ô 8A„Ô 8AˆÔ 8AŒÔAÜÒ*AàÒ*AäÒ*AèÒ*Î !!!"8A�Ô 8A”Ô 8A˜Ô 8AœÔAìÒ*AðÒ*AôÒ*AøÒ*Î !!!"8A Ô 8A¤Ô 8A¨Ô 8A¬ÔAüÒ*A€Ó*A„Ó*AˆÓ*Î !!!"8A°Ô 8A´Ô 8A¸Ô 8A¼ÔAŒÓ*A�Ó*A”Ó*A˜Ó*Î !!!"8AÀÔ 8AÄÔ 8AÈÔ 8A$Æ ·} ¶ ¶Œ ¶ ¶ ¶Œ ¶  !!!!!!!!!!!"! !! ! ! ! ! ! ! ! ! ! !  ( " H@  O@ ( A0lj" 8 8 8 8 8 8 8 8 8 8$ 8( !6, ( "$Aj""AÕªÕ K@ "A0l" ("#K@ #At" I@ ! A¦˜" ( #ü 6 6 6 ž ( $A0lj" 8 8 8 8 8 8 8 8 8 8$ 8( !6, "6 Aj ƒ|## D8@£!  ! ! A! @ AL@   Ao" · ¢ð ¢ "   · ¢ô ¢ "    C€?A˜! Aj!  � ( A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò (! ( A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (" ( O@ ( Atj("E@ A " (AGA A ( @B )BÿÿÿÿÿÿÿÿÿV~B ) × Ak(AvA°‰A�Ò ÂA°‰ A�ÒÂ"AÇ Ak(AvAÿÿÿÿÈ Ak(Av A�Ò#ÃE@ A�ÒÂ! AÇE@A�  Ak(AvAÿÿÿÿÈA�  "Ak(AvE@A�  Ak(Av A�Ò  u BèS@ ­Að• BÀ„=S@ ¹D@�@£— A�– B€”ëÜS@ ¹D€„.A£— A€á ¹DeÍÍA£— A°– ‡|DÀb@!D{®Gáz”?! AF|D333333Ó?!D‰@ AF|Dš™™™™™É?!D |@ AF|Dš™™™™™¹?!DÀg@ AF|DÀg@ AäF" AFr AåFr AæFr|Dš™™™™™Ù?! |Dð? AåF|D€[@D0‘@D€q@ AæF  AF|DT@ AF|D>@ AçF|Dš™™™™™É?!D6@ AéF|D!D@_@ AèF|Dà?!DÀ‚@DÀb@ !   ºD°>¢¢  T ( ( G@A @ ( J@ At" (j(  (j(Ä@ Aj! A A Û~ ( Aj"A&jH@Aðà)Ä  (O@ ( j-Aÿq@AÐá)Ä Aj"A j! A j" (O@ A j" (O@  (O@  ("j-At  j-A tr  j-Avr! A j" (O@ ( j-AvAqAj! A j" (O@ A j" "(O@  ("j-AqAt  j-AvrAj! A j" (O@ ( j-Aq­!A!@ AH@  j" (O@ ( j1 B†„! Aj!  E@AÀâ)Ä AØAŸ˜"A6 A6 A6 D9 Dð¿9 A6 A:$ A6( A6, Dð¿90 Dð¿98 A6@ A6D A6H A:L A6P A6T A6  6  6  6  º9  P|Dð¿ º ¸£ 9@ (" AjN@  O@ ( j-A€qAG! Aj" (O@ Aj! Aj" (O@  (O@   ("j-At  j-Atr  j-rAjj! E    ("  H6(  ( ((k6,AA‹˜"A: A6 A� 6 A6 A: 6 ž ø AHA ( AjH @A Aj" (O@ ( j-! Aj" (O@ ( j-! " "(O@ AàqAàG ( j-AÿGr@A Av"E AvAq"E AvAq"AFrr AFr AvAq"AFr@A AA ˜"A6 A6 A6 A6 A6 A6 A6  AFAAA AF 6 A k6  AF AÌÞ)(AvO@ AtAÐÞ)j( AF AìÞ)(AvO@ AtAðÞ)j( AŒß)(AvO@ AtA�ß)j( 6 Aj" (O@ AA ( j-AvAF6 (AF@ AvAq!  AF A¬ß)(AvO@ AtA°ß)j( Aüß)(AvO@ AtA€à)j( 6 A€ AÀ AF"6  ( A€åAÀ² l (m j6 A6 A€A€ (AF6 A6  C| µ"E@  ¥ "- +" ¡DaA | +  ²A� ! Aj!@@  Ak(Av"N  OA Atj/ "A"F@ A Ajº  AÜF@ Ak(Av" Aj"L   OA Atj/ "A"F AÀ� AÜF A€™Â AîF A€ˆÂ AôF Aà‡Â AòF AàˆÂ AA°± ¾ÂAàæÂœA ! Aj!  ¾Â! Aj!  AAÀçœA ‡A� !@ #ÿAk(Av"NE@ AJ A°Ä  AkG  #ÿ"Ak(AvO@  Atj("E@ AÀ� ÂAÀ�ÂÂ! Aj!   ì/ A€ˆÍ!A� ! AA˜"A6 A6 A6 A6 Aš!AA˜"A6 A6 A6 A6 Aš!A� !A� !AA˜"A6 A6 A6 A6 Aš!AA¤˜"A6 A6 A6 A6 Aš! AA�˜"A6 A6 A6 A6 Aš!AA£˜"�@@@@ ( " J@ M@ ( Atj("E@ @ Aàˆ#à A Ak(AvAkÈ É"Ak(Av A ’AÇA Aj! Aà˜AÇ@ A ™#ÃE@A�Ÿ ÂAàŽÂ!  A Ak(AvAkÈÉ! #¼ ÂAH@Aà¡ ÂAà Â!    A AðŸÄ!  Aà’AÅ"AH@AàŽ ÂA ¢Â!  A ÈÉ"Ak(AvE@A £ ÂAàŽÂ!  A!@ Ak(Av" J@  OA  Atj/ "A F A Fr@A࣠ÂAàŽÂ!  Aj!  Ak(AvE@AàŽ ÂA ¤Â!   A�Ò Â" ¥•@ A ¥Â ÂA ™Â!   – AjAÿÿÿÿÈÉ"A€ AÇA Aà˜AÇ @A!A!A!@ Ak(Av" J@  OA Atj/ !@ @ AÜF@ Aj! A A"G!  A"F@A! AÛF AûFr@ Aj! AÝF AýFr@ Ak"AH@   Aj!   "AJ@ ! Aj!@  ( "H AJq@  O@ ( Atj("@ Aàˆ#Ã@ A Ak(AvAkÈ! A€ˆ ÂÂ!A!A!@ Ak(Av" J@  OA  Atj/ ! @ @ AÜF@ Aj! A A"G!  A"F@A! AÛF AûFr@ Aj! AÝF AýFr@ Ak"AH@   Aj!   ! Aj!  @ A€ AÇ@ Aà¥Â!  Ak(A~q"!@   jAk/"A€rA F A kAMr A€-I A A€@jA M @@ A€-F A¨ÀF A©ÀF A¯ÀF AßÀF A€àF AÿýF  A  A   @ Ak!  A� E    F  A˜"  ü ! Ak! AA¥˜"A6 A� 6 AAAA¤6 A� 6 A� 6  "6  žAA¦™"A¸á(6AA¤˜" 6 ž 6 A6 A6 AA¦™"AÀá(6AA˜" 6  ž  6 A6 A6 !@ Ak(AvE@ Aàá6  @@ Ak(Av /A "A"F@ A ¢"E  ( E@ (( Ak(AvG@ ( E@ A â  ((AÿÿÿÿÈÂAàŽÂ"6  A6  6  ž  AÛF@ A6A!A!@@@  Ak(Av" H  OA  Atj/ " A F A FrA @ Aj!   Ak(AvN@ Aàâ6   Ak(AvOA  Atj/ " AÝF@  (( AJA @ A ã6  Aj!   A"G@ Aðã  AÿÿÿÿÈÂAàŽÂ"6    ¢" E  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A! ( E@ (( A,G@ AÐä6  A! Aj !  Ak(AvG@ A°å  AÿÿÿÿÈÂAàŽÂ"6   A!@ Ak(Av" J@ MA  Atj/ "A;F A F A Fr A"Fr AÛFr AÝFrr@ AàŽ ÂAðåÂ"6  Aj!   6  ž   ( E@ (("E@  6  ž  "(Ak(Av A� Ä AÀ¦ÄA A E@A!A Ak(Av"AI   /A !A Ak(Av"Ak" OA  Atj/ "AýF AûFqA AÝF AÛFq E AA!A!@ Ak(Av" J@ OA  Atj/ !@ @ AÜF@ Aj! A A"G!  A"F@A! AÛF AûFr@ Aj! AÝF AýFr@ Ak"AH@   Aj!   AA¥˜"A6 A� 6 AAAA¤6 A� 6 A� 6 A6 6 ž 6 ž "@ ! (Ak(Av@ AðÛ (Â!  AðŸÄ@ Að¦ÄA A�ÙÄ @ (  Að¦Ä@ (! !  (!  Aà§AÇ Ak(AvA KA @ A AÿÿÿÿÈ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A A¢˜"A6 A6 A6 ( ! 6 6 6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  A� Ä@ A�¨ÄA AÀ¨Ä @ (  A�¨Ä@ (! (!  AÀ¦Ä@ (AG@Að¨ ( Â! A!@ ("( J@ ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A A¢˜"A6 A6 A6 ( ! 6 6 6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A A¦˜"A6 A6 A6 6 6 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  E@A�ªAÐå£ÂA �Â! A€’ÂA  ALA «ÂAðÛ ÂÊ ¥"E@A « ÂAðªÂAð‹£ÂA �Â! A€’ A «ÂAðÛ ÂÊ A$A£˜""A� 6 A� 6AA¦˜!AA˜" 6  ž  6 A6 A6 6AA¦˜!AA˜" 6  ž  6 A6 A6 6 A� 6 A� 6AA¦˜!AA˜" 6  ž  6 A6 A6 6 A6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6  6 AÀ± A ‰Ä AЮ AкÄ AàÞ AðÝ Ä A€à A�Þ Ä AàÞ A°Þ Ä A� 6A A¨˜"A6 AAAA¤6 AAAA¤6 6 ¥"@A!@ ( J@ ( Atj((! ("( "Aj! (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (!  ( O@ ( Atj(" E@ (! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6 @  6  ž  6  ž  6  ž  6  ž  6  ž  6  ž  6  žA!@ ( J@@  ( Atj("(¦"E@ (! (("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (( ! (("( " Aj!  (AvK@ AA™ ( Atj" 6 At Ÿ 6  ((AFA ((AF @ (! (Aà«Â! A€’ A «ÂAðÛ ÂÊ ((§"-E@ (!   (! (!@ ("(¥"E@A « (ÂAàŽÂ!   ¦"E@A�­ ÂAà¬Â (ÂA°¬Â!   §"-E@ ä  A!@ ("( J@  ( O@ ( Atj("E@  Ä@ (  (œA A®˜"A: A: A� 6 A6 A: A:  Aj!  ("( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (! ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A A®˜"A: A: A� 6 A6 A: A:  A A®˜"A: A: A� 6 A6  6  ž  "-E@ (!  Aj!  AA�˜"A: A6 A� 6 A6 A: 6 ž  A�§Â ( Â!  (! A€’ A «ÂAðÛ ÂÊ A€’ A «ÂAðÛ ÂÊ ö"| A ‰Ä@#þ"@  AA¦˜!AAŽ˜" 6 ž 6 A6 A6 AA¦™"AÀÊAü AA˜" 6  ž  6 A6 A6 AàÌA°ÌÂAà#ÂAðÊÂ!A(A§˜"ÉAA «! ( Ak·! AÀÈ6 A6  6  6 D9  9  6 AA¦™"A¸Î)7AA¤˜" 6  ž  6 A6 A6  6$  ž ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(A§˜"ÉAAAA¤! AÐÎ6 A6 Aàû6  6 D9 Dð?9 A�Ï6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A A¦™"AÀÑA ü AA˜" 6  ž  6 A 6 A6 AÐÒAàÑÂ!A(A§˜"ÉAA «! ( Ak·! AÐÐ6 A6  6  6 D9  9  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(A§˜"ÉAAAA¤! AÀÔ6 A6 Aà¯6  6 D9 Dð?9 AðÔ6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(A§˜"ÉAA «!AAAA¤! A€Ö6 A6  6  6 Dð¿9 D0@9 A°Ö6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(A§˜"ÉAAAA¤! A°×6 A6 Aà¯6  6 D9 Dð?9 Að×6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(A§˜"ÉAAAA¤! AÀÙ6 A6 Aàû6  6 D9 Dð?9 A€Ú6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(A§˜"ÉAAAA¤! AàÚ6 A6 Aàû6  6 D9 Dð?9 A°Û6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(A§˜"ÉAA «!AAAA¤! AÀÜ6 A6  6  6 D9 DÐ@9 A€Ý6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A A¦™"A¸ÞA ü AA˜" 6  ž  6 A 6 A6 AàßAàÞÂ!A(A§˜"ÉAA «! ( Ak·! A Þ6 A6  6  6 D9  9  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 $þ  AкÄ@#ý"@  AA¦˜!AAŽ˜" 6 ž 6 A6 A6 A(A§˜"ÉAAAA¤! Aàœ6 A6 AÐÚ6  6 D-Cëâ6?9 DˆÃ@9 Að¿6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A A¦™"A°ÀA ü AA˜" 6  ž  6 A 6 A6 A(A§˜"ÉAA «! ( Ak·! A��6 A6  6  6 D9  9 AÐÀ6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(A§˜"ÉAAAA¤! AÀ�6 A6 Aà¯6  6 D9 Dð?9 A€Â6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(A§˜"ÉAAAA¤! A€ž6 A6 Aàû6  6 D9 Dð?9 A Ã6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AA¦™"A€Åýý AA˜" 6  ž  6 A6 A6 AÐÆA ÅÂ!A(A§˜"ÉAA «! ( Ak·! AО6 A6  6  6 D9  9  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 $ý  AðÝ Ä@#ü"@  AA¦˜!AAŽ˜" 6 ž 6 A6 A6 AA¦™"A°µAü AA˜" 6  ž  6 A6 A6 Aà¶AàµÂ!A(A§˜"ÉAA «! ( Ak·! A�´6 A6  6  6 D9  9  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(A§˜"ÉAA «!AAAA¤! Aи6 A6  6  6 DàÁ9 DÀÿÿÿßA9 A€¹6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(A§˜"ÉAA «!AAAA¤! A€»6 A6  6  6 DàÁ9 DÀÿÿÿßA9 A°»6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A€¾AнÂ!A(A§˜"ÉAAAA¤! A�½6 A6 Aà¯6  6 D9 Dð?9  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 $ü  A�Þ ÄA A°Þ Ä @#û"@  AA¦˜!AAŽ˜" 6 ž 6 A6 A6 A(A§˜"ÉAAAA¤! A€À6 A6 Aàû6  6 D9 Dð?9 A€²6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A(A§˜"ÉAAAA¤! A€³6 A6 AàÜ6  6 D9 Dõ@9 A°³6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 $û  A \@ ( J@ ( Atj(( Ä@  ( O@ ( Atj("E@  Aj!  A ¼ | É!@@ (E@ Aà¯ÄA AÐÚÄ @AA«˜"A: A6 A� 6 A6 A: Aà¯6 A௞  AàûÄA AàÜÄ @AA«˜"A: A6 A� 6 A6 A: Aàû6 Aàûž  (AЭ ÂAàŽÂ!  (AF@@ ( "( J@  ( O@ ( Atj("E@  ÄA A « Ä @A!A ($"( "E ALr  (!@  H@  Atj( F@   Aj!  A AN@ (AÀ…  ( "( O@ ( Atj("E@ ÂA�®Â!  A «!  Aj!  (A°¯Â ( "( ( A°Ä¦ÂAð®Â ÂAàŽÂ!  ¥ "- +" bA A +" ¡Db @ (Aà¯Â ÂAàŽÂ!  (AF +"œ bA @ (A °Â ÂAàŽÂ!  + +cA + +d @ (A�±Â +"œ a ™D4&õk CcA @ °­  A°Þ Da   ¡Db@Að†  b AÐÞA€ß Dc  Dc"@A�ßA-; š! AtA�ßj"  A±#7² jAt"A˜"A�ß ü  ÂAð‡Â +"œ a ™D4&õk CcA @ °­  A°Þ Da   ¡Db@Að†  b AÐÞA€ß Dc  Dc"@A�ßA-; š! AtA�ßj"  A±#7² jAt"A˜"A�ß ü  ÂAð°Â ÂAàŽÂ!  (AF@ +°­!   +"œ a ™D4&õk CcA @ °­  A°Þ Da   ¡Db@Að†  b AÐÞA€ß Dc  Dc"@A�ßA-; š! AtA�ßj"  A±#7² jAt"A˜"A�ß ü  !AA«˜"A: A6 A� 6 A6 A: 6 ž  AA«˜"A: A6 A� 6 A6 6 ž  AA«˜"A: A6 A� 6 A6 A: 6 ž ‹ A �Æ!A�  A�ÒÆ" A€™Æ"  JAjL  AjAÿÿÿÿÈú "A€± Ä@A A ± Ä@A Aà± ÄA A€² Ä @A A Õ "Ak(j!@  K@ /"A€I Aj A€I Aj A€øqA€°F Aj Iq@ /A€øqA€¸F@ Aj! Aj!  Aj ! Aj!  A¦˜! Ak(Av Ñ Ak(!A Aߘ" 6  ž  6  6A Aߘ"A6 A6 A6 ("AüÿÿÿK@  A¦˜"6  6  6A!A!@ (" J@A! M@ ( j-A%F ( AjJA  Aj" (O@ ( j-! Aj" (O@ ( j-"A€I A€I  AßM AÂOq A€Oq A¿Mq A @ Aj" (O@  ( j-!A Aj" (O@ ( j-"A0k A9M A0Oq  A7k AÆM AÁOq  A×k AæM AáOq A "AH   A+F A A0k A9M A0Oq  A7k AÆM AÁOq  A×k AæM AáOq A "AH  At r ! AN "Aj! (O@ ( j : Aj "Aj!  (O@ ( j-! (O@ ( j : Aj !  ("A AL!A Aߘ" ("6 ž ( j6 AH  j"A AJ    H "   H k6A!A! (!AAì˜"AAAA¤6@  H@  (O@ ( j-"A€I@ Aj!  A! AßM AÂOqA! Aj" H  (O@ ( j-"A¿M A€OqA E AïM AàOqA!A A€ AàF!AŸA¿ AíF! Aj" H  (O@  ( j-LA  Aj" (O@  ( j-NA AA Aj" H  (O@ ( j-"A¿M A€OqA A  AôM AðOqA!A�A€ AðF!A�A¿ AôF! Aj" H  (O@  ( j-LA  Aj" (O@  ( j-NA  Aj" H  (O@ ( j-"A¿M A€OqA AA Aj" H  (O@ ( j-"A¿M A€OqA A A A "E@  j!   J@ ( j  kÒ! ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ ( Atj"A�ï!6  At A�ï!Ÿ  6  j"!   H@ ( j  kÒ! ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ê õ# £!# £! - -A  (! ( µ E@#(» ¸ ! µ  #(» ¸ ! ´ ! ´ !A ( "AJ" ( AJG A  E@ (("E@ ( E@ (("E@ ( (F ( ( ÄA EA A!@ ( H ( HA  ( O@ ( Atj("E@ ( O@ ( Atj("E@ ( (F ( ( ÄA A @ Aj!  A� ! !@ ( J@ Aàž¸ ! Aj!  @ ( " J@ O@ ( Atj("@  ( ¸ ! Aj!   "   § ´ !AAì˜"AAAA¤6@  ( NE@ ( Atj("( A/GA @ ("( "Aj!  (AvK@  AA™ ( Atj"A�Ò6  At A�ÒŸ  6 ( ! ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "Ak(Av Ak(AvAk"MA  Atj/  A/G ("( "Aj!  (AvK@  AA™ ( Atj"A�Ò6  At A�ÒŸ  6 A/  ! Aj!  ê ®¬.J}|~ ¨! "A�ÒÆ"ALA�Ò A È ! !AA˜"A6 A6 A6 A6 Aš!/# ¤"-E@AàÎ ÂAðÛ (Â!A Aé˜"¸ AÐê6  6 A6 A6  6 A�Ï6 Ç AF@ ("ó@ ô¾   ²  (õ "-E@ � ("(! ((!0 (!& AF@   (¯"-E@ � (! AFAðAç˜"ÈA A°˜"A6AA±˜"½  6  6    ­�"-E@ (!A ˜ AAA°™ ÂAðÛ ÂAà”!îÇ @ ((,"( J@ ( O@ ( Atj("(E@ /( "Aj" /(AvK@ / AA™ /( Atj" (6 / At  (Ÿ / 6 Aj!  ("(0! (8!A! AA²˜"(A� 6 (A6 (A6 (A6 AA³˜"½ ( 6AA¨˜"½ ( 6 ( 6 ( 6 ( 6 (A ˜ AAA°™ ÂAðÛÂAðšÂAà”!îÇ ! AF ((( !@  K@ ("(( OA ("( M@ ( Atj( "(@A!@ ((x"( J@  ( O@ ( Atj("E@ A@@@@@@@@@@@@@ (Ak(AÈk  A A A A A  A  A  A  A  A  A  A  A F  Aj!  Aj!  A A A0Aº ˜" AA¹˜!AAº˜"½  6AA¼˜"½  6AA¨˜"½  6 !(A! ((( !A -l @  I@  ("(( OA ("( M@ ( Atj( " ((AFA  (("E@ (A @A  Aj!  A E@AAñ˜"ð  6  6A! @ (P( J@ ( "( "Aj!  (AvK@  AA™ ( Atj"A6  At AŸ  6 Aj!    AA˜"A6 A6 A6 A6 Aš! (Ak(Av@ (¹ ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6   A á !@ ("( J@ ($! ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  (!AAÔ˜"A6 A6AAÕ˜"½  6  6  6  6  ž  6A! @ (P"( J@ ( O@ ( Atj("@ (,"@ A�ÒAÇ  A�Ò ¹ ! Ak("A²F@ ¸  A’ F@ Ì  "@ ( !  ( &  ($®  ($!A�À (ÂA�é ÂAðÛ (ÂA°èÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "( H ( O@ ( Atj(A !  ( HA @ ( O@ ( Atj("E@  E@AŒAµ˜"°  (6 (!AA-˜" ( E@ (*8 ( AM@  (*8 ( AM@  (*8  *8  6  ž  *8  * 8 (!A A-˜" ( E@ (*8 ( AM@  (*8 ( AM@  (*8  6  ž  *8(  (AFA (AF 6  * 8  -$:$ (("("AA´˜"A� 6 A6AA-˜"AØÂ)7  6 C8 AA-˜"AàÂ)7  6 A6  (6 A ! („A œ ("AA´˜"A� 6 A6AA-˜"AØÂ)7  6 C8 AA-˜"AàÂ)7  6 A6  (6 A "@ („A œ «! („A œ ("AA´˜"A� 6 A6AA-˜"AØÂ)7  6 C8 AA-˜"AàÂ)7  6 A6  (6 A ! („A œ ("AA´˜"A� 6 A6AA-˜"AØÂ)7  6 C8 AA-˜"AàÂ)7  6 A6  (6 A ! („A œ ( "AA´˜"A� 6 A6AA-˜"AØÂ)7  6 C8 AA-˜"AàÂ)7  6 A6  (6 A ! („A œ ! ( ! ($!A!AŒAµ˜"°  (6 (!AA-˜" Ak(AvE@ *8 Ak(AvAM@  *8 Ak(AvAM@  *8 Ak(AvAM@  * 8  6  ž  *8  * 8 (!A A-˜" Ak(AvE@ *8 Ak(AvAM@  *8 Ak(AvAM@  *8  6  ž  *8  *8  (6  * 8  -$:$  *(8(  -,:,  *080  *484 (8!A A-˜" Ak(AvE@ *8 Ak(AvAM@  *8 Ak(AvAM@  *8  68  ž  *<8<  *@8@  *D8D (H!A A-˜" Ak(AvE@ *8 Ak(AvAM@  *8 Ak(AvAM@  *8  6H  ž  *L8L  *P8P  *T8T (X!A A-˜" Ak(AvE@ *8 Ak(AvAM@  *8 Ak(AvAM@  *8  6X  ž  *\8\  *`8`  *d8d  *h8h  *l8l  *p8p  *t8t  *x8x  *|8| (€!A A-˜" Ak(AvE@ *8 Ak(AvAM@  *8 Ak(AvAM@  *8  6€  žA!@ AH@  („"( O@ („  ( Atj(" «A œ Aj!   -ˆ:ˆ  -‰:‰  -Š:ŠAA´˜! AA³˜"½ 6@#Ã( J@#Ã( Atj("" („"( O@@ ( Atj(" E AF@ („"( AM@ ((" ( (ÄA @ („"( AM@ ((E@ („ Aœ  ( (" ¥Ò ( (" ¥Ò"E@ (EA @ ("A�ÒAÇE@ A�Ò ¹ ! Ak("A²F@ ·  A’ F@ Ë  "E@AÐÓ (! Ak("A²F@  ¹   A’ F  ÂAðŽ! (ÂA Í (Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( ( ™ ( (" ¥Ò"E@ (E AGq@ („ Aœ Aj!   … ( &  ($® ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AAý˜"A6 A6 A6 A6 Aš!!AA¤˜"A6 A6 A6 A6 Aš!AAý˜"A6 A6 A6 A6 Aš!AA¤˜"A6 A6 A6 A6 Aš! ((( !@ @@ Ak" ("(( OA  ("( O@ ( Atj( "E (," (" ("(( OA  ("( O@ ( Atj( A  ( AkGA ( "Aj" (AvK@  AA™ ( Atj Ak6  6 ( "Aj" (AvK@  AA™ ( AtjA6  6 Ak!  @ ( "AJ@ ( Ak"Atj(!  6 ( "AL@ ( Ak"Atj(!  6 !( "! Aj" !(AvK@ ! AA™ !( Atj 6 ! 6 ( "Aj" (AvK@  AA™ ( Atj 6  6 AA¦˜!AAý˜" 6  ž  6 A6 A6 A!@ ("(( K@  (( OA  ("( O@ ( Atj( "@ (," ( FA @ ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  ( Ak!@ AN@  ( O@ ( Atj( G@  ( O@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6 ( "Aj" (AvK@  AA™ ( Atj 6  6 Ak!   A!@ !( J@ !( Atj("" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ((!AðA¹ ˜"¡  ("6  ž " ( O@  ( Atj(6  -qA -r E:L    (AHA (" !( O@ !( Atj( Í!@!?!>!=!8@  ?8D  @8H@@@@@  A º6 ("(A ( "E  Å"-E@ ($!Aàê (ÂA°ê (ÂAðéÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A  ("(( OA ("( M@ ( Atj( "E A ("(A ( "E   Ï"A!@ (x"( J@  ( O@ ( Atj("E@ A -  Aj!  A rE@AAÖ˜"A6 A:  6 A:   A!@ (x"( J@  ( O@ ( Atj("E@ A -  Aj!  A E@ Þ" ½¾AAÖ˜"A6 A:  6 A:       ÒÞ!AAÖ˜"A6 A:  6 A:  ! (h"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  (h"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ ((#� !A!@ ( J@ ($!Aàê (ÂA Í  ( O@ ( Atj("E@ Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  @ (! (t! ( !A!& ("((( ""AÕªÕ*K@ AA̘"A  AMA l"A¦˜"6  6  6  6 A!@  H@  ( O@ ( A lj"C8 C8 C8 Aj!  ((( "AÕªÕ*K@ AA̘" A  AMA l"A¦˜"6 6 6 6 A! @  J@ ( O@ ( A lj"C8 C8 C8 Aj!  AA¤˜"A6 A6 A6 A6 Aš! A! @ I@@ ("(( OA ("( O@ ( Atj( " (AIA  î!P!O"N!F ( O@ ( A lj" F8  O"E8  P"D8 /!A!A ( "E ALr  (!@  H@  Atj( F@   Aj!  A AH@ /! ( "Aj" (AvK@ AA™ ( Atj 6 6 -E (!@  ( (jI@  ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (" ( O@ ( A lj"*!C *!B * F’!A  ( O@ ( A lj" A8  B E’8  C D’8 Aj!  Aj!  AA¯˜"A56 ( (   (( "AJ"  ("K A A !A8A® ˜" µ 6 žAAý˜"A6 A6 A6 A6 Aš!@ ( &J@ ( &Atj(!AA§ ˜"AAA.A¤6 AAA.A¤6 AAA.A¤6 AAAýA¤6 A6  ( "H@  M@ ( Atj("AN  ( HA @  ( O@ ( Atj("E@  6  ž A! @ I@ ("(( OA ("( O@ ( Atj( " (AIA A / G E@ (  AAA™ A6  Á ( O@ ( A lj"*!J *!B *!AA!#@ ( #J@ ( #Atj(" ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@ -} (" ( O@ C€? ( A lj"*"E E” *"D D”’ *"C C”’‘•"F F“C[ FC^q@ E F” D F” C F”  CCC !P!O"N!F O!E P B!E A!F J !G (! (" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *!H *!D *!C ( "Aj" (AvK@ AA™ ( Atj D8 6 ( "Aj" (AvK@ AA™ ( Atj C8 6 ( "Aj" (AvK@ AA™ ( Atj HŒ8 6 (" ( "Aj!  (AvK@ AA™ ( Atj F8 6 ( "Aj" (AvK@ AA™ ( Atj G8 6 ( "Aj" (AvK@ AA™ ( Atj EŒ8 6 @  ( "( H}  ( O@ ( Atj"*!F *C!FC !C ("( "Aj!  (AvK@  AA™ ( Atj C8  6 ("( "Aj!  (AvK@  AA™ ( AtjC€? F“8  6 ( " ( ! ( "Aj" (AvK@ AA™ ( Atj 6 6 #Aj!#  Aj!  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 &Aj!&  ÏAA© ˜"A6 A6  6  6 6 ž  6P  ž  A�Ì6 ("(AF ( A "@ (AF­!‰A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  ‰7 (T"( "Aj!  (AvK@  AA™ ( Atj"AàÑ6  At AàÑŸ  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 CB *"A A\}Coƒ: ACoƒ:— C@”•‚ C@”Cá.eB”»õ! (T"( "Aj!  (AvK@  AA™ ( Atj"AÐÎ6  At AÐΟ  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 B7 (T"( "Aj!  (AvK@  AA™ ( Atj"A°Ô6  At A°ÔŸ  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 * »õ! (T"( "Aj!  (AvK@  AA™ ( Atj"A€Ð6  At A€ÐŸ  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 *»õ! (T"( "Aj!  (AvK@  AA™ ( Atj"AðÐ6  At AðП  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 *»õ! (T"( "Aj!  (AvK@  AA™ ( Atj"AÐ…6  At AÐ…Ÿ  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ("(AF (A ! AðÇ6 @ * !B *!A *ñ »!} Añ »!| Bñ »!{AAAÀA¤"( }9 ( |9 ( {9 (Dð?9A ö! (AF@ A ê6 (T"( "Aj!  (AvK@  AA™ ( Atj"A°Ù6  At A°ÙŸ  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 *»õ! (T"( "Aj!  (AvK@  AA™ ( Atj"A Ú6  At A ÚŸ  6  (AF@ A È6 (T"( "Aj!  (AvK@  AA™ ( Atj"A°Ù6  At A°ÙŸ  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 *CzD•»õ! (T"( "Aj!  (AvK@  AA™ ( Atj"A Ú6  At A ÚŸ  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 D°@9 (T"( "Aj!  (AvK@  AA™ ( Atj"Aàü6  At AàüŸ  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜" A6 A: B7 D9 A� 6 #6 #6 #6$ A6 D€F@9 (T"( "Aj!  (AvK@  AA™ ( Atj"AÀý6  At AÀýŸ (AF@ ($!AÐë (ÂA€ëÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (T"( "Aj!  (AvK@  AA™ ( Atj"A°Ù6  At A°ÙŸ  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 *CzD•»õ! (T"( "Aj!  (AvK@  AA™ ( Atj"A Ú6  At A ÚŸ  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 A(Aí˜" A6 A: B7 D9 A� 6 #6 #6 #6$ A6 D°@9 (T"( "Aj!  (AvK@  AA™ ( Atj"Aàù6  At AàùŸ  6 (X"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A€�6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AAá˜"A6 A6 A6AA�˜"½ 6 A6AAÕ˜"½ 6AA£˜"A€A¦˜"6  6 A€6 A6 6 6 6 !6 6A!@ !( J@ ( !( Atj( Ú Aj!  ! @A! ("E@  Î"6  žAA®˜"½@ (X"( J@ ( O@  ( "( ( ( Atj("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (A "AN@AA¤˜"A6 A6 A6 A6 Aš!  ("( O@ ( Atj("E@  ("( O@ ( Atj"*!W *!V *!Q * !X *!M *!L *!I *!J * !G *$!H *(!F *,!E *0!D *4!C *8!B *!=!!X =!M !=!!Z =![ !=! ? @Aå!@!?!>!=! ? @ j K i h g f e d c b ] \ [ Z Y kã!@!?!>!=!!=! ?Ï"6 ž (Ð"6 ž ("( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!   6\  ž  û Aj!   ÒA!@ ("( J@  ( O@ ( Atj(" (("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ((A  ("( O@ ( Atj("E@ (PE E@    AÓ Aj!  A! ("E@ (!AÔAê˜"C8 C8 C8 C8 C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ C8D C8H C8L C8P AÀÈ*AÄÈ*AÈÈ*AÌÈ*AÐÈ*AÔÈ*AØÈ*AÜÈ*AàÈ*AäÈ*AèÈ*AìÈ*AðÈ*AôÈ*AøÈ*AüÈ* * * * * * * * *$ *( *, *0 *4 *8 *< *@ *DAå!@!?!>!=! ? @ã!@!?!>!=!84  ?88  @8< *< *8 *4 *0 *, * *   * * * * * * * *$ *(·!U!T!S"R"AC€? A A” S"C C”’ T"B B” U"A A”’’‘•"D”8@  C D”8D  B D”8H  A D”8L  *H8P@ ("( J@ " ( O@ ( Atj("@ ( "  Ak(AvAGA E@A€¸ A «Â! AAª˜"A6 A6 A6 A6 Aš!AAÀ˜"A6 A6 A6 A6 Aì! A!@ (( J@@ (! ("( M@ ( Atj("E@  ("( O@ ( Atj(" E@ @ (AHA (( (L (("AHA  (8( N AA£˜"A6 A6 A6 A6  6  6  6  6 (" (("( O@ ( Atj("E@ (! ø! ( O@ ( Atj("E@ ( ( (AA¢£" (AvA E ù"E A Aç˜"A6 A6 A6 A6 AA¦˜!AAÀ˜" 6  ž  6 A6 A6  6AA¦˜!AAè˜" 6  ž  6 A6 A6  6AA¦˜!AAè˜" 6  ž  6 A6 A6  6AA¦˜!AAè˜" 6  ž  6 A6 A6  6  6  (6 (" ("( O@ ( Atj("E@ ( "AF@AÐà ö  AFAAA AF 6 (ö! (Av!AA (AF! (AF (Av"  l"o   mAA (AF " ALA  l l (AvJ  6 A!@  J@ (!  (AvO@ ( Atj*»!{ ( "Aj" (AvK@  AA™ ( Atj {9  6 AJ  ("( O@ Ak" ("( O@ ( Atj+ ( Atj+eEA A!@  J@  l j l!AAÀ˜"A6 A6 A6 A6 ì!A! @ H@  j" (AvO@  ( Atj*»Ø Aj!  AF (" ( "Aj  AF (" ( "Aj (" ( "Aj  (" ( "Aj !  (AvK@ AA™ ( Atj" 6 At Ÿ 6 Aj!  Aj!    A "E@ ($!A íA�ò ÂA𸠠A «ÂA°¸ Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A!@ ("( J@ ( O@ ( Atj+!{ ( "Aj" (AvK@ AA™ ( Atj {9 6 Aj!  Aj!  ( @AAÄ ˜"A� 6 A6 A6 A: A: AAAÅ A¤6  6  ž A!@AœÃ (Av J@ AtA Ã j(·!}A! A!@ ( "H q@ O@A ( Atj+ }¢"| |›"{ {Dð¿  {Dà¿  |e¡™ }£D-Cëâ6?d! Aj!  @ AœÃ (AvO@ AtA Ã j(  Aj!  Aè 6  (AèF: A! A!@ ( J@ ( Atj+ (·¢"{›"| |Dð¿  |Dà¿  {eª" H! Aj!  A AL6A!AA«˜"½A!#@ ( #J@@ ( #Atj(" (AF@ (! ($! (!@ (L"( ( ("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A E@A íA�ò ÂAðÀ Â!   (L"( ( ("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@  ( "( ( ("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ (A !  (("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ("(A ( "E AHrA ( ( AH @A íA�ò ÂA€Â Â!  ("( M@ ( Atj("E@ (( ! A!@@ ( L Aj" ( "( N  ( O@ ( Atj("@ (h ("�AN@AAŽ˜"A6 A6 A6 A6 Aš!A!@  H@ (AG!  ("( O@ ( Atj("E@  ( O@ ( Atj+!}  ("( O@ ( Atj+ ·¢"{›"| |Dð¿  |Dà¿  {eª!AØAŒ˜" Ö A6 6 }Õ9 6@ (AF Aj" Hq@  ("( O@ ( Atj+  ("( O@ ( Atj+¡!| Aj" ("( O@ ( Atj("E@  ( O@ } ( Atj+"{  ("( O@ ( Atj("E@  ( O@ } ( Atj+ |¢D@£  Aj" ("( O@ ( Atj("E@  ( O@ { ( Atj+ |¢D@£¡Ù Aj F@ A6@ A6D  Ø Aj!  AàŸ Â!AA�˜"Õ  6  6  žAAà ˜"A6 A6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!   ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6   ("! ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A E@AA˜"A6 A6 A6 A6 Aš! (!A! A! AA¿˜"A6 A6 A6 A6 Aš! (P(!@ ( J@@ ( Atj(("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E A! ( O@ ( Atj("E@  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@     ( Ü"E A!A!@ ( J@A ( Atj(( (F! Aj!  E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  E@    AA Ü"@ ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  ( û ( E@ ($!A íA�ò ÂA º  (A «ÂAð¹  ( AJ (("E@ A ¹ Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  ("! ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ Aj  (" ( AJ ( E@ (("E@ -HA  (AFA  (AFA !A!@ ( J@@ ( Atj("-HE@   (" ( (Ý (Þ  (AF@ (AF@   (" ( (Ý (Þ (! (!AAŽ˜"A6 A6 A6 A6 Aš! (( !A!@  H@ Aj FA ( AG!  ("( O@  ( Atj+ ·¢"{›"| |Dð¿  |Dà¿  {eª  ("( O@ ( Atj("E@ ( E@ ( AM@ ( AM@ ( AM@ *L"Q ("+¶"J” *@"X +¶"G”’ *D"M +¶"B” *H"L +¶"A”“’!I Q G” X J”“ L B”Œ M A”“’"HC€ X“"F” I QC€?”"E”’ Q A” X B”“ M G” L J”’’"DC€ L“"C” Q B” X A”’ L G” M J”“’"BC€ M“"A”“’ H A” I C”“ D E” B F”’’ H C” I A”’ B E” D F”“’ H E” I F”“ B C”Œ D A”“’ ר Aj!  (! ("Ak(Av@ AЭAÞ  AЭ !AA�˜"Õ  6  6  žAAà ˜"A6 A6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  (! (! (( !Að‚Aðå (AF! AA̘"AàA¦˜"6  6 Aà6 A6 AA̘"!AàA¦˜"6 ! 6 !Aà6 !A6 AA̘" AàA¦˜"6 6 Aà6 A6 A!@  H@ (AF@  ("( O@ ( Atj("E@  Ô !P!O"N!A ( "Aj"AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj" A8 O8 P8  6 (AF@  ("( O@ ( Atj("E@  Ô !P!O"N!A !( "Aj"AÕªÕ*K@ A l" !("K@ At" I@ ! A¦˜" !( ü ! 6 ! 6 ! 6 ! ž !( A lj" A8 O8 P8 ! 6  ("( O@ ( Atj("E@  Ô !P!O"N!A ( "Aj"AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( A lj" A8 O8 P8 6   ("( O@ ( Atj("E@  Õ !P!O"N!A ( "Aj"AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj" A8 O8 P8  6 (AF@  ("( O@ ( Atj("E@  Õ !P!O"N!A !( "Aj"AÕªÕ*K@ A l" !("K@ At" I@ ! A¦˜" !( ü ! 6 ! 6 ! 6 ! ž !( A lj" A8 O8 P8 ! 6  ("( O@ ( Atj("E@  Õ !P!O"N!A ( "Aj"AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( A lj" A8 O8 P8 6 Aj!  A!@ AH@AAŽ˜"A6 A6 A6 A6 Aš!A!@ H@ ( O@ } ( A lj"*!B *!A * E  A AF  B AF Aàöö C »!} (AG! ("( O@ ( Atj+ ·¢"{›"| |Dð¿  |Dà¿  {eª!AØAŒ˜"Ö A6  6  }Õ9  6@ (AF Aj" Hq@  ("( O@ ( Atj+ ("( O@ ( Atj+¡!| Aj" ( O@  }} ( A lj"*!B *!A * E  A AF  B AF Aàöö C »"{ ( O@ }} ( A lj"*!B *!A * E  A AF  B AF Aàöö C » |¢D@£  Aj" !( O@ {} !( A lj"*!B *!A * E  A AF  B AF Aàöö C » |¢D@£¡Ù Aj F@ A6@ A6D  Ø Aj!  (! ("Ak(Av@ Þ  A€’ #ƒ"Ak(AvO@ Atj("E@  !AA�˜"Õ  6  6  žAAà ˜"A6 A6  6  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At Ÿ 6 Aj!  Aj!  #Aj!#  AJ@ - A< ( ! ($!A°òA�ò ÂA Í A «ÂAà» Â A «ÂAຠÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (( AJ@ (,"( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  A! (!  Î"6  žAAž˜"½@ ("( J@  ( O@ ( Atj(" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ("(AF (A "@AAý˜"A6 A6 A6 A6 Aš!  ("( O@ ( Atj("E@  ("( O@ ( Atj(!A! #A�¥ÁkA€I@ #A€k" $AAý˜"A6 A6 A6 A6 Aš! ((( !@  K@ ("(( OA ("( O@ ( Atj( @ ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  AA¤˜"A6 A6 A6 A6 Aš!A! @ ( J@ ( Atj(" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ( "AFAA! A ( "E ALr  (!@  J@ Atj( F@  Aj!  A ! ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  Ð!  AÑ!AAÁ ˜"AAAÓA¤6A!@ ( J@ ( Atj(" ( O@ ( Atj("" ("(( OA  ("( O@ ( Atj( " E@A ÷ö E@ ( "Aj" (AvK@  AA™ ( Atj 6  6 AAÀ ˜" ¢ ("6 ž  ( O@ ( Atj(" ( O@ ( Atj("ANA! A ( "E ALr  (!@  J@ Atj( F@  Aj!  A A 6 Š!@!?!>!=!!c =!d !=!84 ?88 @8<  ( (( HA } ( " ("( O@ ( Atj"*!=! ? @ l V W F K i h H g f e G d c b Jã!@!?!>!=!ŒÏ"6 ž *@ *D *H *L *P *T *X *\ *` *d *h *l *p *t *x *|Aå!@!?!>!=! ? @ m I L B M X Q C ] \ [ D Z Y A Eã!@!?!>!=!ŒÏ" 6  l W VŒ g e fŒ KŒ hŒ i d b cŒÏ"6 ž m L IŒ ] [ \Œ MŒ QŒ X Z A YŒÏ" 6 ž ("( "Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  #A€j$  6\  ž   û Aj!   ÒA!@ ("( J@  ( O@ ( Atj(" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ((A  ("( O@ ( Atj("E@ (PE E@    AÓ Aj!  A!&#A�¥ÁkAI@ #Ak")$ (""(T(( ! "*H»"{›"| |Dð¿  |Dà¿  {e"{D8@ {Dð?fª!@  &K@@ "(T"(( &MA & ("( O@ ( &Atj( "E !A!A!@ ("( J@  ( O@ ( Atj("@ (( "AAÔ˜"C8 C8 ("( E@ (("E@ *!B Ak" ("( O@ ( Atj("E@ *!A  B8  A8 A "@ AAÔ˜"C8 C8 *!D *!C } *"B *"A A\  A B B\  A B– 8 } D C C\  C D D\  C D— 8 AAÔ˜"C8 C8 *!A *8 A8 ! Aj!  " (!A!@ ( J@ ( Atj(-A ( Atj((( AJ @A  Aj!  A A E AA¦˜!AAý˜" 6 ž 6 A6 A6 "(!A! @ (( O"E@ A ("( O@ ( Atj( "@ („" (AGA  ( &FA @ ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  ( E@ & "(T"(( OA & ("( O@ ( &Atj( "E@A ÷ö E@ AA˜"A6 A6 A6 A6 Aš!A!@ ("( J@ ( O@ ( Atj("E@ (™"(AFA (AF @ (! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A ( E A!@ ("( J@ ( O@ ( Atj(" "("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ("(AF (A "@A! A! @ ( "H q@  M@ ( Atj("@ A  ŒAG! Aj!  @ ("( O@ ( Atj(  Aj!  A "AF@ ($!A íAðì (ÂA€ìÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  AA¦˜!AAý˜" 6 ž 6 A6 A6 ( 6 *»›ª *»œª" k!AðAç˜"È "(!AA—˜"A'6AAè˜"AAAéA¤6 A6AA¦˜!AAé˜" 6 ž 6 A6 A6 A! @ ("( J@ ( O@ ( Atj("@   (! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ ( "Aj" (AvK@ AA™ ( Atj"A6 At AŸ 6 Aj!   6  ž  (6  6  ž  "(6  "(6 "-! "- !  "- :  :  : "*0!G "*,!H "*(!F "*$!E "* !D "*!C "*!B "*!A  "*8  A8  B8  C8  D8  E8$  F8(  H8,  G80  "(464  "(868  "(<6< "(D!  "(@6@  6D  "*H8H  "(L6LAA¦˜!AAë˜" 6  ž  6 A6 A6 A! @ "(P"( J@ ( O@ ( Atj("E@ Ã! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6P  ž "(T!AA˜˜"A(6AAì˜"AAAíA¤6 A6AA¦˜!AAí˜" 6 ž 6 A6 A6 A! @ ("( J@ ( O@ ( Atj("@   (! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ ( "Aj" (AvK@ AA™ ( Atj"A6 At AŸ 6 Aj!   6  ž  (6  6T  ž "(X!A Aߘ"AAAýAÈ„ ¤6 AAA.AЄ ¤6 Að„ 6  (AAÿÿÿÿ»"6  ž  (³"6  ž  ("6  ž  6X  žAA¦˜!AAï˜" 6  ž  6 A6 A6 A! @ "(\"( J@ ( O@ ( Atj("E@ A,AÙ˜"A� 6 C8 C8 C8 C8 C8 C8 C€?8 C€?8 C€?8$ C€?8( *!I *!J * !G *!H *!F *!E *!D * !C *$!B *(!A  (6  I8  J8  G8  H8  F8  E8  D8  C8  B8$  A8( ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6\  žAA¦˜!AAð˜" 6 ž 6 A6 A6 A! @ "(`"( J@ ( M@ ( Atj("E@ AAà˜"A� 6 A� 6 B7AA¦˜!AA˜" 6  ž  6 A6 A6  6 (! (! )!‰ (AAÿÿÿÿŸ!  6  6  ‰7  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!   6`  ž "(dÈ!A! @ ( J@ (d ( Atj(" "(d"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(! @ @ ("AqE@ ( F  A~q!  A "E@ (û Aj!  "(hÈ!A! @ ( J@ "(h"( ( ( Atj("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(! @ @ ("AqE@ ( F  A~q!  A "E@ ("A: ( O@ (h ( Atj( û Aj!  A!@ ("(( K@  (( OA ("( M@ ( Atj( "@A! A ( "E ALr  (!@  J@  Atj( F@  Aj!  A AN@AAÓ˜"A6  &6  6„  ž („@ A6„ Aj!  AA‘˜"A6 A6 A6 A6 Aš! A!@ ( J@ ( "( ( ( Atj("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(! @ @ ("AqE@ ( F  A~q!  A  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(! @ @ ("AqE@ ( F  A~q!  A "E@ (A "AN@  ( O@ ( Atj(!A,Aî˜"A6 A6AA¦˜!AAÒ˜" 6  ž  6 A6 A6  6 A: AA¦˜!AAÒ˜" 6  ž  6 A6 A6  6AA¦˜!AA˜" 6  ž  6 A6 A6  6AA¦˜!AAï˜" 6  ž  6 A6 A6  6AA¦˜!AAë˜" 6  ž  6 A6 A6  6AA¦˜!AAï˜" 6  ž  6 A6 A6  6 AA¦˜!AA˜" 6  ž  6 A6 A6  6$AA¦˜!AAÒ˜" 6  ž  6 A6 A6  6(  6  6 & "(T"(( OA & ("( O@ ( &Atj( "E@A ÷ö E@ A!@ ("( J@  ( O@ ( Atj(" E@ -A (( @ (™"(@ (AF@ ( ("�"AN@   (" ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (! AA¦˜!AAÒ˜" 6  ž  6 A6 A6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ("( "Aj!  (K@  AA™ ( jA:  6 ( ! AA¦˜!AAÒ˜" 6  ž  6 A6 A6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (( Ak ! ("@ AF@  ( "( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ( A©   ("( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (AF@ ($ (�AH@ (! ($" ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 (("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ("@ AF@ ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  A:  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  AA’˜"A6 A6 A6 A6 Aš!$AA“˜"A6 A6 A6 A6 Aš!+AA¤˜"A6 A6 A6 A6 Aš!,AA˜"A6 A6 A6 A6 Aš!%AA¤˜"A6 A6 A6 A6 Aš!*AA¤˜"A6 A6 A6 A6 Aš!-AA¤˜"A6 A6 A6 A6 Aš!AA˜"A6 A6 A6 A6 Aš!.A!!A!@ ( J@ ( Atj("(" ("( O@ ( Atj("E@ (\!A!@ ("( J@  ( O@ ( Atj("@@   ÑAHA @ !Aj!!  A!@ AH@ @  ( " ( O@   (" ( O@ ( Atj(" E@ ( @A! @ AH"@AAë˜" A6 A6 AAAÀA¤6 AAAÒA¤6 A: (!AÀ� ÂA€’ÂAðåAð‚ Â! AN q@ A€’ #ô"Ak(AvO@  Atj("E@ Â! 6 6 6 ž $( "Aj" $(AvK@ $ AA™ $( Atj" 6 $ At  Ÿ $ 6 ,( "Aj" ,(AvK@ , AA™ ,( Atj 6 , 6 %( "Aj" %(AvK@ % AA™ %( Atj" 6 % At  Ÿ % 6 *( "Aj" *(AvK@ * AA™ *( Atj 6 * 6 -( "Aj" -(AvK@ - AA™ -( Atj 6 - 6 Aj!  Aj!   ("( O@ ( j-@A Aì˜" Ë (!AÀ� ÂA€’ÂAЭÂ! 6 6 +( "Aj" +(AvK@ + AA™ +( Atj" 6 + At  Ÿ + 6 ( "Aj" (AvK@  AA™ ( Atj 6  6 .( "Aj" .(AvK@ . AA™ .( Atj" 6 . At  Ÿ . 6 Aj!  A!@ AH@  ( ( "( @A! @ AH@AAë˜"A6 A6 AAAÀA¤6 AAAÒA¤6 A: (! #ƒ"Ak(AvO@  Atj("E@ A îAðí  Â!  6  6  6  ž $( "Aj" $(AvK@ $ AA™ $( Atj" 6 $ At  Ÿ $ 6 ,( "Aj" ,(AvK@ , AA™ ,( Atj 6 , 6 %( "Aj" %(AvK@ % AA™ %( Atj"A� 6 % At A� Ÿ % 6 *( "Aj" *(AvK@ * AA™ *( Atj 6 * 6 -( "Aj" -(AvK@ - AA™ -( Atj 6 - 6 Aj!  Aj!  - @A Aì˜"Ë  (6 AЭ6 +( "Aj" +(AvK@ + AA™ +( Atj" 6 + At  Ÿ + 6 ( "Aj" (AvK@  AA™ ( Atj 6  6 .( "Aj" .(AvK@ . AA™ .( Atj"A� 6 . At A� Ÿ . 6 A!@ ($"( J@  ( O@ ( Atj("@@ (h �AH@ !Aj!!  AAë˜" A6 A6 AAAÀA¤6 AAAÒA¤6 A: (!AàŸ Â! 6 6AA¦˜!AAÒ˜" 6  ž  6 A6 A6  (("( O@ ( Atj("E@ ( 6 6 ž $( "Aj" $(AvK@ $ AA™ $( Atj" 6 $ At  Ÿ $ 6 ,( "Aj" ,(AvK@ , AA™ ,( Atj 6 , 6 %( "Aj" %(AvK@ % AA™ %( Atj" 6 % At  Ÿ % 6 *( "Aj" *(AvK@ * AA™ *( AtjA6 * 6 -( "Aj" -(AvK@ - AA™ -( AtjA6 - 6 Aj!  Aj!  $( A +( E@ ($!A íAðì (ÂAÀîÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  A  AL!AA¤˜"A6 A6 A6 A6 Aš!A!@ L@ ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  A!@ ( J@ ( Atj(j²!X#A�¥ÁkA€I@ #A€k"$AAú˜"'"C8 A6 A6 A6 A6 A6 AAAA¤6 ' X8 (! (T! AA¦˜!AAý˜" 6  ž  6 A6 A6 A!#@ # (( O"E@@ A # ("( O@ ( #Atj( "E („" (AFA (" (( OA  ("( O@ ( Atj( "E@ '(!AàŽ (ÂA üÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  ' '(Aj6A!AA–˜"½AAɘ"ÐAA¦˜!AAý˜" 6 ž 6 A6 A6 A!A! (!A! @ ( J@@ ( Atj("-A (( E ' '(Aj6  X—!K (! @@@@@@ (™"( ("E AIq@ *(!G *$!H * !F *!E *!D *!C *!B * !A  *8  A8  B8  C8  D8  E8  F8  H8  G8 @ AF@  K8 AF@  K8Aàöö   K8 * !G *!H *!F *!E *!D * !C *!B *!A  *8  A8  B8  C8  D8  E8  F8  H8$  G8( AF AIq@ *(!G *$!H * !F *!E *!D *!C *!B * !A  *8$  A8(  B8,  C80  D84  E88  F8<  H8@  G8D @ AF@  K84 AF@  K88Aàöö   K80 *D!G *@!H *!=! ?Ï! *( O@ *( Atj(} * !F *!E *$ *!F *!E * !A} -( O@ E -( Atj("E  F AF  A AF Aàöö C »!{ $( O@ $( Atj("E@ ("( "Aj!  (AvK@  AA™ ( Atj {9  6 Aj!  A!@ +( J@ ( O@ ( Atj(" ( O@ ( Atj("E@ .( O@ .( Atj("E@ Ak(Av .( O@ .( Atj("E@  ( ß    (à !@!?!>!=! ?Ï"*!C *!B *!A ) * 8 ) A8 ) B8 ) C8 +( M@ +( Atj("E@ ("( AJ )*!D )*!C )*!B )* !A ( " Ak"M@ D ( Atj"*” C *”’ B *” A * ”’’C]A @C€ )* “!CC€ )*“!BC€ )*“!A )C€ )*“8 ) A8 ) B8 ) C8 )* !D )*!C )*!B )*!A ( "Aj"AÿÿÿK@ At" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" A8  B8  C8  D8  6 Aj!  Aj!  AAÄ ˜"#A� 6 #A6 #A6 #A: #A: #AAAÅ A¤6 # ("6 # ž # 6 # 6A!A!@ $( J@ $( Atj(!A!@ ( "( J@ ( M@ ( Atj("E@ -A (( @AAÀ˜"A6 A6 A6 A6 ( ì! A! @ ( J@  ( Atj(j²—»Ø Aj!  A! @ AH@ ("( E@ ( E@ (+Dð¿Dð? "| (+¢¡!{A!A! @ ( H q@ ( O@ ("( O@A  | At" (j+¢ {  (j+¡™Dñh㈵øä>d! Aj!  @A!A (( "E AAŽ˜"A6 A6 A6 A6 Aš!@  H@  ("( O@ ( Atj("E@ A *» ·¡"~›"} }Dð¿  }Dà¿  ~e"€Dc ~ €¡™Dü©ñÒMbP?dr € ·dr  *» |¢ { !} €ª!AØAŒ˜"Ö A6  6  }Õ9 A6@A Aj" HD!ƒD!„D!…D!†D!‡  ("( O@ ( Atj("E@ *» |¢ { ! ("( O@ ( Atj(" E@ *» |¢ { !€ ("@ AF@ A6@ AF@ *"G *"Q“!H *"F *"X“!E *"V *"M“"D‹"C *"L *"I“"B‹"A’C\ L V“"J C A’"A]q@ V D J A•"A”“!M F E A”“!X G H A”“!Q L B A”“!I AÐA‹˜"× A6  M» V»"~¡ J»"}£9  I» ~¡ }£9 Q» |¢ { !� X» |¢ { !~ € ¡"}™D•Ö&è .>d@  � ¡ }£9  ~ ¡ }£9 A6@ A6  �9  ~9 A6@  6D  ž A F@AÐA‹˜"× A6  ( "AFAAA AF 6( *» *»¡™!~  *» *»¡"}DdE *,C[r|D333333Ó? *,» }£ 98 A ~Da *(C[A *(» ~c |Dð? *(» ~£ 90 A6@  6D  ž@  ("( O@ ( Atj(" E@ ("( O@ ( Atj("E@ *» |¢ {  *» |¢ { "�¡"€™D•Ö&è .>e@ A6@  *» *»¡!~A!@ A H@ †Dð? ·D ?¢"‚¡"}D@¢ }¢ ‚¢"ˆ ˆ¢ !† ƒ ˆ }D@¢ ‚¢ ‚¢"¢ !ƒ …  ¢ !… ‡ ˆ  *» ~ ‚¢ ¶Ø» |¢ {  �¡ €£ ‚ ‚¢ ‚¢¡"}¢ !‡ „  }¢ !„ Aj!  AÐA‹˜"× A6 DUUUUUUÕ?9 DUUUUUUå?9  † …¢ ƒ ƒ¢¡"}Db| ‡ …¢ „ ƒ¢¡ }£DUUUUUUÕ? 9  }Db| „ †¢ ‡ ƒ¢¡ }£DUUUUUUå? 9 A6@  6D  ž  A6@   ("( O@ ( Atj("E@ *» |¢ { ! ("( O@ ( Atj("E@ *» |¢ { !� *» *»¡!~A! @ AH@   *» ~ ·D°?¢"€¢ ¶Ø» |¢ { !}A|  (@E   � ¡ €¢  (D"E A!=!!E =!M !=!!E =!M !=!8@ ?8D @8H Aj!  ("AG@A E A AF A !A!@ ( J@ ( Atj("(A ºÄ@ (TA ¤ž (XA(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  ¬7 ž Aj!   ($! (Að›Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  (6  (ž  6  žAA‚ ˜"A: A6 A� 6 A6 A: 6 ž ¼A4A¸˜"A: A6 A6 C€?8 A �6 A6 A: A: A: A: A: A6 A6$ A:(AA¦˜!AA˜" 6  ž  6 A6 A6  6, A:0 A:1 A:2  6  ž A: A: A:0 A:1 A:2 A: A: A:  6$  ž A:( #ÀAAÿÿÿÿŸ"6,  ž  þ  E@   þ"E@  A A‰ ˜" á à A!@ (( J@ ("( O@ ( Atj("@@ Ak(Av@ A�ÒAÇ  A�Ò ¹ ! Ak("A²F@  ·  A’ F@  Ë  "E@AÐÓ Ak("A²F@   ¹   A’ F  ÂAðŽ! ÂA �! ("( O@ ( Atj("E@ ÂAðÛ (Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ("( O@ ( Atj("E@ A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6  6  ž      ( "( O@ ( Atj("E@ ô "-@ (¨  A ç (A «ÂAðÛ ( © "-@ ("( O@ ( Atj("E@  (A  Aj!   ("A�ÒAÇE@ A�Ò ¹ !  Ak(A’ FA @  Ak(A’ FA E@  (A�™ Ê"-E@ Ä  (" Ak(Aˆ FA E@ š "- ((Ak(AvA @  (("6  žA  -@ (  A - A ( "E   Ak(AéFA @  Ak(AéFA E@   A " (AðÈÄ (AÀ… ( (  ( "6  žA  A°�!6A "E@A�À ÂAà�! (ÂAðÛ (ÂA°èÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 6ü ž ¡ ðà~@ !#„"E@AA¿˜"$„ ¼ E@AAÿ˜"A6 A6 A6 A6 A6 A ²%6 6 A6 Aв%6 A ³%6 ½   ( (Ò"Ak(Av /AÿýFA  AAÿÿÿÿÈ  A€ˆÍ"( AJ ( " Ak"M@ ( Atj("E@ Ak(AvEA @ ( "AL@ ( Ak"Atj"( A6  6 A!@ ( J@ ( Atj("Ak(Av Ak(Av" Ak"MA  Atj/ A FA @   A Ak(AvAkÈœ Aj!   ( AJ (("E@ A� "A°�'ò"AH@ Aà“'òAN@AAÿ˜"A6 A6 A6 A6 A6A€•' ÉÂA°”'Â!A°—'A°�'AA «ÂÂAÀ–'ÂAà#ÂAà•'Â! A€”'6  6 A6  6  6   AAÿ˜"A6 A6 A6 A6 A6Aà˜'A°�'AA «ÂÂA€šÂ! A€”'6  6 A6 A€˜'6  6   AJ@AAÿ˜"A6 A6 A6 A6 A6AК' A «ÂA€š'ÂAA «Â!AЛ'Aà#ÂAÐåÂA ›'Â! AÀ™'6  6 A6  6  6   A "@AA«˜"A: A6 A� 6 A6  ·"6  ž  6  ž   AA©˜" A6 A°�'AA «Â6 AAAA¤6 AAAªA¤6 AAAA¤6 A°�'ò6 6 žAA¦˜!AA˜" 6  ž  6 A6 A6 A!@ ( " J@  "M@ ( Atj(" E@ ƒ"A “'AÇ AÀ“'#ÃA  Ak(AvAIA A�  A Ak(AvAkÈ Ak(Av@A! Aj!@@  ( "N  O@ ( Atj("E@ ƒA€“'Ä@ !   ( O@ ( Atj(" E@ A! Ak(Av!@  J@A  Ak(AvOA Atj/ " A€àFA AßÀFA A¯ÀFA A©ÀFA A¨ÀF A L A Nq A Fr A…Fr A Fr A€-FrA AŠÀL A€ÀNq @ Aj!  A#F  A Aj!   AjJ@AA¨˜" ¼  ( "( "AJ Ak" ( O@ ( Atj("E@ ( ( („ ( ! AAA™ AJ@ (A Atü A6 6 ž Aj! @  J@ (! ( O@ ( Atj("E@ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ("( "Aj!  (AvK@  AA™ ( Atj Aj" 6  6   ( O@ ( Atj("E@ 6 ž ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A! Ak(Av!@  J@A  Ak(AvOA Atj/ "A€àFA AßÀFA A¯ÀFA A©ÀFA A¨ÀF A L A Nq A Fr A…Fr A Fr A€-FrA AŠÀL A€ÀNq @ Aj!  A#F  A @ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AA¨˜" ¼  ( "( "AJ Ak" ( O@ ( Atj("E@ ( ( („ ( ! AAA™ AJ@ (A Atü A6 ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ ( Atj Aj6  6 ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( "( "AJ@ Ak" ( O@ ( Atj("E@ (! A!@ ( J@ ( Atj(! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  A!@ ( J@ ( Atj(! (" ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  AA«˜"A: A6 A� 6 A6 A:  6  ž  "-E@ ­   (!@  ( "( H  ( O@ ( Atj("E@ ×A @ Aj!  !@ ( "( J@  ( O@ ( Atj("E@ A!@ ("( J@  ( O@ ( Atj("E@ …AÐæÄ@AAÿ˜"A6 A6 A6 A6 A6  ("( O@ ( Atj(! Aà�'6  6  6 A ‘'6 Að‘'6   Aj!  Aj!  A "@ ½  AA³˜"AðAç˜"È 6AA©˜"A6 A°�'AA «Â6 AAAA¤6 AAAªA¤6 AAAA¤6  6 A6 A� 6 A:  6  ž@@ ( ( E@ A6  #(( !A# "A�ÒÆ"AHA �  A ÈA� A�ÒÂA ù&¦"-  A�ÒÆAjAÿÿÿÿÈ"A �Æ"AJ@ A È! AA¦˜!AA¢˜" 6  ž  6 A6 A6 (! A!@ ( J@ ( Atj(" A�ÒÆ" A€™Æ"  HAjAÿÿÿÿÈ! B! B!!@Aì�'(AvAj" Ak(Av" Ajj Ak(AvJ AÇ Ak(AvOA Atj/ A.GA Ak(Av"  k""MA Atj/ A.GA AjAÿÿÿÿÈAð�'Ä E Ak"Ak" Ak(AvOA Atj/ A.G !@  H@  Ak(AvOA Atj/ " A9L A0Nq A0k AæL AáNq A×k  ¬ !B†„!! Aj!  Aj" Ak"N  kAJ  Ak(AvOA Atj/ A0FA  kA J @  H@  Ak(AvOA Atj/ "A0H A9Jr  A0k¬ B ~|! Aj!  ÄR AA­˜"A6 B7  >  !7   A "@A A²˜"A6 A6 B7 B7 B7 )!! (!  ( O@ ( Atj("E@  6  6  !7 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AA¾˜" A96@ ( "AH AL@A!@  H@  ( O@ ( Atj("@ Ak!@ AN  ( O@ ( Atj("E@   (AJA @  ( O@ ( Atj("@  Aj œ Ak!   Aj œ Aj!   ‰! ‰!A!@  J@A!@  H@  Atj"   H! " j"   H" ! !@  H Jq@  ( O@ ( Atj(" E@  ( O@ ( Atj(" E@ (AH@  ( O@ ( Atj(" E@   œ Aj!  ( O@ ( Atj(" E@   œ Aj! Aj!  @  H@  ( O@ ( Atj(" @   œ Aj! Aj!  @ J@  ( O@ ( Atj("@   œ Aj! Aj!   Atj!  ! ! ! At!  A!@  H@  ( O@ ( Atj("@   œ Aj!  A "E  ( ( !AA¦˜!AA¢˜" 6  ž  6 A6 A6 @ ( J@ ( Atj("( JA ( G E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A ( E AA¬˜"B¥Æˆ¡Èœ§ùK7 B7 †Ù B7 ( Ak!A!@  N ANq@@ AN  ( O@ ( Atj("E@ ( FA @  ( O@ ( Atj("E@  )7  ( O@ ( Atj("@  )7 Ak!   J@  ( "( O@ ( Atj("E@ (!A!@ ( J@  ( Atj(Ù  )B …B³ƒ€€€ ~7  )B|7 Aj!  Aj!  A�ÒÆ"AHA �  A ÈA� "A�Ò Ak(Av!AA£˜"«A!@ ( J@@ ( Atj(") )R # (¤"-E ( (ˆ"-E ("( (GA ) )R A ) )R  (! A!@ ( J@   ( Atj("(¸ " ¥Š@   ¥Š"E@ )! A# ¤"-E  (!A!B¥Æˆ¡Èœ§ùK! @ ( J@ ( j1…B³ƒ€€€ ~! Aj!  !!A!    "Ak(A~q" AOA¨ˆ�¡! A÷”¯¯x!AÏŒ¢Ž!  jAk!@  O@ (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! ( A÷”¯¯xljA wA±óÝñyl! Aj!  Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@  O@ (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@ -A±ÏÙ²ljA wA±óÝñyl! Aj!  AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA "Š"@  !7 ( " (F@ ( AlAmH ( (AtAr !AA¦˜ Aj"At"AüÿÿÿK@ A¦˜!AA¦˜ AtAm" Al"AüÿÿÿK@ A¦˜! (" (Alj! !@ G@ (AqE@  ("6  )7    " Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!A!AÏŒ¢Ž!  jAk! @ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk! @ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA qAtj"(6  6 Aj! Aj!   6  ž  6  6  ž  6  (6 (!  ("Aj6  Alj" 6  ž  !7  (Aj6  (  (qAtj"(6  6 A )R  Aj!  A E ( (ì"-E AA±˜"A6 A� 6AðAç˜"È  6 AAA°A¤6  (6  ("6  ž  ("6  ž  ("6  ž   Aj!  A "A Ø ( ( G #úA @ A�ÒÆ"AHA �  A ÈA� A�ÒÂA ù&Â"A�ÒÆ"ALA�Ò A È !# A°Ô¡" (A # A�ÒÆ"ALA�Ò A È A°Ô¡" (A  @ A6  ("6  ž  ("6  ž ®  Ø ( ( F@AA¶˜" A6 A6 6A!=! ? @ A B C D E Èœ�}#A�¥ÁkAðI@ #Aðk"$ ("" ((( ! (Ç!AA¦˜!AA”˜" 6  ž  6 A6 A6 A!@ ( J@AA»˜" A6 A6  ( O@ A! ( Atj(" ("(( OA  ("( O@ ( Atj( " ( A !@@ AF Aj"A �J  ("(( OA  ("( O@ ( Atj( " ( A !   ( O@ ( Atj(! 6 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AA•˜"A&6@ ( "AH AL@A!@  H@  ( O@ ( Atj(" @ Ak!@ AN  ( O@ ( Atj("E@   (AJA @  ( O@ ( Atj("@  Aj œ Ak!   Aj œ Aj!   Î! Î!A! @ H@A!@  H@  Atj"   H! " j"  H"! ! @  H Jq@  ( O@ ( Atj("E@    ( O@ ( Atj("E@  (AH@  ( O@ ( Atj("E@  œ Aj!  ( O@ ( Atj("E@  œ Aj! Aj!  @  H@  ( O@ ( Atj("@  œ Aj! Aj!  @ J@  ( O@ ( Atj("@  œ Aj! Aj!   Atj!  ! ! ! At!  A!@  H@  ( O@ ( Atj("@   œ Aj!  AA¦˜!AAý˜" 6  ž  6 A6 A6 A!@ ( J@ ( Atj((! ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  !AA£˜" A€A¦˜"6 6 A€6 A6 AA¦˜!AA.˜" 6 ž 6 A6 A6 @ J@A°*!]A¬*!ZA¨*![A¤*!YA *!aAœ*!bA˜*!cA”*!nA�*!,AŒ*!-Aˆ*!+A„*!*A€*!(Aü*!)Aø*!'Aô*!& ( "Aj"AÿÿÿK@ At" (" K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( Atj" &8  '8  )8  (8  *8  +8  -8  ,8  n8  c8$  b8(  a8,  Y80  [84  Z88  ]8< 6 ( "Aj" (AvK@ AA™ ( AtjC8 6 Aj!  A!@  I@  ("(( OA  ("( O@ ( Atj( "@ Š!%!$!#!"!!! !!!!!!!!!"!&  ( O@ ( Atj" &8  8  8  8  8  8  8  8  8  8$  8(  !8,  "80  #84  $88  %8<  * *“"& &” * *“"& &”’ * * “"& &”’‘¡ Aj!  AA£˜"A€A¦˜"6  6 A€6 A6 A!@ J@A°*!]A¬*!ZA¨*![A¤*!YA *!aAœ*!bA˜*!cA”*!nA�*!,AŒ*!-Aˆ*!+A„*!*A€*!(Aü*!)Aø*!'Aô*!& ( "Aj" AÿÿÿK@ At" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" &8  '8  )8  (8  *8  +8  -8  ,8  n8  c8$  b8(  a8,  Y80  [84  Z88  ]8<  6 Aj!  A!@ ( J@ ( Atj(" ( O@ ( Atj"*!=!!=!8(  ?8,  @80  A84  B88  C8< S!— R!˜ Q!™ P!š O!› N!œ M!� L!ž K!Ÿ J!” I!• H!– G!a F!b E!c D!n *  * *, *< * * * * * * * *$ *( *0 *4 *8é!m!l!k!j!i!h!g!f!e"d!‘ f!’ e!“  g8@  h8D  i8H  j8L  k8P  l8T  m8XA°*A¬*A¨*A¤*A *Aœ*A˜*A”*A�*AŒ*Aˆ*A„*A€*Aü*Aø*Aô*@@@}@@@@@@@@@@@@@@@@@@@@@@ (Ak(A¿k  A A A A  A  A  A  A  A  A  A    (" Ak(AÀFA E@  ( Ö"-E *@ *]}  Cò@” ””C’ CŒ.:?]}  Cé¢ ¿’"Cò@” ”C@?’”C’ C/ºh?]}  C]tQ¿’"Cò@” ”Cp?’”C’  C]t¿’"Cò@” ”C|?’”C’ “ ’ AF}  •"CŒ.º>]}  Cò@” ”” ’ CŒ.:?]}  Cé¢ ¿’"Cò@” ”C@?’” ’ C/ºh?]}  C]tQ¿’"Cò@” ”Cp?’” ’  C]t¿’"Cò@” ”C|?’” ’  C?” ^}    ’“ •"CŒ.º>]}  Cò@” ””C’ CŒ.:?]}  Cé¢ ¿’"Cò@” ”C@?’”C’ C/ºh?]}  C]tQ¿’"Cò@” ”Cp?’”C’  C]t¿’"Cò@” ”C|?’”C’ “C’C?” ’  ’ “ •"CŒ.º>]}  Cò@” ””C’ CŒ.:?]}  Cé¢ ¿’"Cò@” ”C@?’”C’ C/ºh?]}  C]tQ¿’"Cò@” ”Cp?’”C’  C]t¿’"Cò@” ”C|?’”C’ C?” C?”’ ’  AF}} *(! *,!  C[   ’  •"C€?[  Cš™™>”  C[! C[  ‹]r} ! C€>” CÛÉ@•  •€ ” !   C€¿’"C A”† ”  ” “CÛÉ@” •ý ”“  AF}} *(! *,!  C[   ’  •"C€?[  Cš™™>”  C[! C[  ‹]r} ! C€>” CÛÉ@•  •€ ” !  C Á”† ”  ” “CÛÉ@” •ý ” ’ ’ } *(! *,!  C[   ’  C?”•" C@[  Cgfæ>”  C[! C[  ‹]r} ! C€>” CÛÉ@•  •€ ” ! C€¿’"C]}  C A”† ”  ” “CÛÉ@” •ý ”C¿” ’  C Á”† ”  ” “CÛÉ@” •ý ”C?” ’ ’   ” • ’ � F@ ("6 ž ("6 ž ("6 ž ( "6 ž ("6 ž (6 ("6 ž ("6 ž ( "6 ž ($6$ (("6( ž (,"6, ž (0"60 ž (4"64 ž )878 ¨, F}~@ (" AF@A€´ (ÂAà´ Â (ÂA°´ Â!  ("E (" AFr@A€´ (ÂA ÍÂAе Â!  ("(( MA ("( O@ ( Atj( " ("(AF (A A "E@A€´ (ÂA ÍÂAà¶ Â!   AÑ" E@A€´ (ÂA ÍÂAÀ· Â!  ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ ! (|! AA¦˜!AAœ˜" 6 ž 6 A6 A6 ((( ! @  I@ ("(( MA  ("( O@ ( Atj( " -%A @AìAð˜"A6A°*!$A¬*!-A¨*!%A¤*!!A *!.Aœ*!&A˜*! A”*!0A�*!1AŒ*!2Aˆ*!"A„*!#A€*!+Aü*!/Aø*!, Aô*8  ,8  /8  +8  #8  "8  28  18  08$  8(  &8,  .80  !84  %88  -8<  $8@ C8D C8H C8L C8P C8T C8X C8\ C8` C8d C8hA!  ( J ( Atj(( (Ä  Aj!  A 6  ("( O@  ("( O@  At" (j"* * * * * * * * * *$ *( *, *0 *4 *8 *<  (j"* * * * * * * * * *$ *( *, *0 *4 *8 * ” " ” # ”!B!A!@"?! A!" @!# BA°*!"A¬*!#A¨*! A´* !*  8|  #8€  "8„  *8ˆ &C̼Œ+ !C̼Œ+— ! !\"&•!> % &•!S . &•!TC!%C!.C!&A!@  H@  ( O@ ( Atj(" ( O@ ( Atj("@ & * * * * * * * * *$ *( *, *0 *4 *8 *< *@ *D *H *Læ!)!("'  ( O@ ( Atj* +” !•" ”’!& % ) ”’!% . ( ”’!. Aj!  C! C!"C!#A!@  H@ #  ( O@ ( Atj(" ( O@ ( Atj("E@ *D!# *L!U *H!=  ( O@ # ( Atj* +” !•"*”’!# U *”’! " = *”’!" Aj!   - #“8Œ  1 "“8�  0 “8”  & *Œ ,C̼Œ+ !C̼Œ+— ! !\",•”"# *ˆ"+ +” *|"& &” *€" ”’ *„"" "”’“"*” & # &” *� / ,•”"/ ”’ *” $ ,•”"$ "”’", ,’",”’ $” " /”“ + +’"+”’ / *” ,”’ " #” & $”“ +”’ $ *” " ,”’ & /” #”“ +”’!)!("'’ >’C?” !” - 2”’8@  . (’ T’C?” !” 1 2”’8D  % )’ S’C?” !” 0 2”’8H 0 2”!% 1 2”!$ - 2”! A!@  H@  ( O@ ( Atj(" ( O@ ( Atj("@ * * * * * * * * *$ *( *, *0 *4 *8 *< *@ - 1 0æ!)!("'  ( O@ ( Atj* +”"!”’! % ) !”’!% $ ( !”’!$ Aj!   8@  $8D  %8H * * * * * * * * * *$ *( *, *0 *4 *8 *< *@ *D *Hæ!)!("'8 (8 )8 Aj!  #!V#B|$  V78 ï#A j$ (AAÿÿÿÿŸ!AA­˜"A: A6 A� 6 A6 A: 6 ž  AA­˜"A: A6 A� 6 A6 6 ž ‹‡3}~@@@@@@@@@@@@@ (Ak(AÈk  A A A A A  A  A  A  A  A  A  A  AF@ (" Ak(AÐFA E@   Ú"-@ (!A!@ ( J@ ( Atj(!A€´ (ÂA Í Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!    !A! "Þ! AA¦˜!AA˜" 6  ž  6 A6 A6 @@@@@@@@@@@@@@@@@@@@@@@@@@@@ "("Ak(AÈk  A A A A A  A  A  A  A  A  A  A     Ak(AÈFA E@ AA¦˜!AAý˜" 6 ž 6 A6 A6 (" (AFA A (" ("(( OA  ("( O@ ( Atj( " @A!@ (|"( J@  ( O@ ( Atj("E@   ("A! A �Æ"AN@  AjAÿÿÿÿÈ"Ak(Av@ Ak(Av" J@  MA  Atj/ "A0H A9Jr@A  Aj!  A A @ A È   "Ak(AvAÿÿÿÿÈ!A!@#Ï( J@ #Ï( Atj(" Æ"AJ@  AjAÿÿÿÿÈÝ" @ A È Â Â  Aj!  A!@#Ð( J@ #Ð( Atj("#Ã@ A Ak(Av Ak(AvkÈ"Ak(Av@ #€" ( O@ ( Atj("E@    Aj!  A "E@A!@#Ï( J@ #Ï( Atj(" AÅ"AJ Aj Ak(AvHA @ A ÈÝ" @   AjAÿÿÿÿÈ  Aj!  A!@#Ð( J@ #Ð( Atj("AÇ@  Ak(AvAÿÿÿÿÈ"Ak(Av@ #€"( O@ ( Atj("E@    Aj!  A ! @     À" AF! ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  (! -! - ! !A!C * "C—  \!@ AH@ ( O@ ( j-@ @#!R#B|$ R78 ((( !A!@  I@ ("(( MA  ("( O@ ( Atj( "@ } *! *!! * E  ! AF  AF Aàöö C ‹`@ @ AF@ C8 AF@ C8Aàöö  C8 Aj!  Þ"((( !A!@  I@ ("(( MA  ("( O@ ( Atj( "@} *! *!! * E  ! AF  AF Aàöö C Œ! @ AF@  8 AF@  8Aàöö   8 ( AJ@ (!A!@ ( J@ ( " ¬ ( Atj("("­U@  O@  ( Atj(6 Aj!  A°² î Aj!  Þ ý! C^A @AA¦˜!AAý˜" 6  ž  6 A6 A6 È! A!@ ( J@ } ( Atj(" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *! *!! * E  ! AF  AF Aàöö C ‹`@ ( "Aj" (AvK@  AA™ ( Atj 6  6  ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (! ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!   É Aj!  ï  Ak(AÉFA E@ (!A!@  I@#A�¥ÁkAÀI@ #A@j"$AÀA…˜" Û#!R#B|$ R78A!@ ("( J@ (!  ( O@ ( Atj("E@ (!AAþ˜"A� 6  6  ž ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  (6 (( ! ((( ! ((( ! ((( ""AÕªÕ*K@ AA̘"A AMA l"A¦˜"6  6  6  6 AA£˜"A6 A6 A6 A6 š!A!@ H@ ( O@ ( A lj"C8 C8 C8AAØ"AÀA¦˜"6  6 AÀ6 A6  œ " ("(( OA  ("( O@ ( Atj( " @ ò!”!! " *’C€>”!"  C€>”8  "8  !8 * C€? “" ” * ”’!! * ” * ”’!" * ” * ”’!  ( O@ ( A lj" !8 "8 8 Aj!  AÕªÕ*K@ AA̘" A  AMA l"A¦˜"6 6 6 6 A!@ H@ ( O@ ( A lj"C8 C8 C8@ ("(( MA ("( O@ ( Atj( "E *! *!  *8  8  8 ê! AA¦˜!AAý˜" 6  ž  6 A6 A6  (0"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  (0"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (AAAýA¤ !A!@ ( J@ (4"( ( ( Atj("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (AAAýA¤ ( @  ( O@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  ( E ( "AHr@ * ! *! *!! ( O@ ( A lj" !8  8  8  * ! *!  *8$  8(  8, AN@C! C!C!"A!@ ( J@ ( Atj(" ( O@ " ( A lj"*’!" *’!  *’! Aj!  " ( ²"!•!3 !•!5  !•!6C!C!"C! A!@  H@  ( O@ ( Atj(ô!”! *’C>”!  ! *’C>”80  84  88 *8!" *4! *0!3 ( E@ ( AM@ *(!5 *,!6 *$C€? ("* *’C?”" \}C€? C€?– "“"!” 3 ”’C€!A!@  J@  ( O@  ( Atj*’! Aj!  * !" *! *!3 *(!5 *,!6 *$C€?  ²•" \}C€? C€?– "“"!” 3 ”’ !3 5 !” ”’! 6 !” " ”’! 3 !! ( O@ ( A lj" !8  8  8 Aj!  A! (Ý!A!@ ( J@ ( Atj((j! Aj!  (( (( ((AAý˜"A6 A6 A6 A6 š""(! ( "A AL" H@  AtjAÿ kAtü A!@ H@ ("(( OA ("( O@ ( Atj( "@ ( O@ ( A lj"*! *! *!!#!R#B|$ R78 ( ! ÕÆ! A€  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@  - :  (¶"6  ž  º Aj!  AAý˜"A6 A6 A6 A6 š" "(! ( "A AL" H@  AtjAÿ kAtü A!@  H@  ("(( OA  ("( O@ ( Atj( "@  ( O@ ( A lj"*! *! *!!#!R#B|$ R78 ( ! ÕÆ! A€  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ AA¦˜!AA’˜" 6 ž 6 A6 A6 ( (" (" (( OA  (" ( O@ ( Atj( "E@A ÷ö E@ (6 ( (" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (6AA¦˜!AA.˜" 6  ž  6 A6 A6 (C?8 (C?8  ·"6  ž  º Aj!  AAý˜"A6 A6 A6 A6 š""(! ( "A AL" H@  AtjAÿ kAtü A!@  H@  ("(( OA  ("( O@ ( Atj( "@  ( O@ ( A lj"*! *! *!!#!R#B|$ R78 ( ! ÕÆ! A€C€? ("AK A ³•!AA¦˜!AA’˜" 6 ž 6 A6 A6 AA¦˜!AA.˜" 6  ž  6 A6 A6 (!@  ( (jI@ (!  ( " (( OA  (" ( O@ ( Atj( " E@A ÷ö E@ A (" (" ( O  ( O@ ( Atj( " E@A ÷ö E@ (! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ( " Aj" (AvK@  AA™ ( Atj 8  6 Aj!   ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@  ·"6  ž   º Aj!  A!@  H@  ("(( OA  ("( O@ ( Atj( " @ Ø"( ! A!@ H@ " ( O@ ( Atj(!  jAk o" ( O@ ( Atj(! Aj o" ( O@ ( Atj(! ( "(( OA ("( O@ ( Atj( "E@A ÷ö E@  ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@  ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (!AA¦˜!AAý˜" 6 ž 6 A6 A6  ( O@ ( ( Atj(6 (" ( O@ ( ( Atj(6  ( O@ ( ( Atj(6 (" ( O@ ( ( Atj(6 â! ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ -: /; -: (!  ( O@ ( Atj("@A!@ ( "H@ O@ ( Atj"*!! *!" " ( "( O@ ( Atj"*! *!  ( "( O@ ( Atj"*!3 *!5  ( "( O@ ( Atj"*!6 *!4AAØ"AÀA¦˜"6  6 AÀ6 A6 ( "Aj"Aÿÿÿ?K@ At" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" 8 8  6 ( "Aj"Aÿÿÿ?K@ At" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" 5’C?”8  3’C?”8  6 ( "Aj"Aÿÿÿ?K@ At" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" "8 !8  6 ( "Aj"Aÿÿÿ?K@ At" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" 4’C?”8  6’C?”8  6 A!@ AH@ j" ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ( ! ( O@ ( Atj*!  ( O@ ( Atj 8 ( O@ ( Atj*!  ( O@ ( Atj 8 Aj!  Aj!  Aj!  Aj!  A!@  H@  ("(( OA  ("( O@ ( Atj( " @ - A * C€?` }#( * " \}C C— " ”C A” "#¾[ #([rE@ C€¿’" \}C C— ! #¾[ #([r}C€? C A•‘" \}C€? C€?– !  ( O@ ( Atj(!A!@ AH@ (,"( (   (" ( O@ ( Atj( "  (" ( O@ ( Atj( "I~ ­ ­B †„ ­ ­B †„ "RB ˆ§A½ÜÊ•|l R§A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( "AqE@  ) RQ  A~q!  A  (,"( ( RB ˆ§A½ÜÊ•|l R§A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( "AqE@  ) RQ  A~q!  A "E@ (A "AF@  ß! ("(( MA  ("( O@ ( Atj( "E@A ÷ö @  - :  - :  8  *8  - : Aj!  Aj!  #A@k$ Ù Aj!   Ak(AÊFA E@ *!! * !3 *!5 *!6 *!4 *!7 - ! *$! ("AIA (( @ 5 ü"} * *“! * *“!" * *“C ” 7’!5 3 ” 4’!3 ! "” 6’!! Þ!A!@  I@ Þ! ! ³" ”!" 3 ”!6 5 ”! A!#!R#B|$  R78 ((( !@ I@ ("(( MA ("( O@ ( Atj( "@ *!4 *!7  * "’8  7 6’8  4 ’8 Aj!  ý Aj!  C^A @ (Ç É ï  Ak(AËFA E@ *!! *! - ! #A�¥ÁkAI@ #Ak"$ ((E !C[rE@C€¿  C€¿]"C€?^@C€?! ! C€?’”C?”! ! C€¿’”C?”!! Ë!AA¦˜!AAý˜" 6  ž  6 A6 A6 AA̘"AàA¦˜"6  6 Aà6 A6 ((( ! @  I@ " ("(( OA  ("( O@ ( Atj( @  ñ! *!?A! (( !A Aæ˜"A6A Aã˜"AAAýA¤6 AAAýA¤6 A: 6AA¦˜!AAë˜" 6  ž  6 A6 A6 6AA¦˜!AAý˜" 6  ž  6 A6 A6 6 AA¦˜!AAý˜" 6  ž  6 A6 A6 6AA¦˜!AAš˜" 6  ž  6 A6 A6 6AA¦˜!AAç˜" 6  ž  6 A6 A6 6 A: 6 6 ž@  J@ ("( "Aj!  (K@  AA™ ( jA:  6 ( "( "Aj!  (AvK@  AA™ ( AtjA6  6 (!AA¦˜!AAý˜" 6  ž  6 A6 A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ ( Atj"A6  At AŸ  6 Aj!  A!@ (( J@ ("( "Aj!  (AvK@  AA™ ( AtjA6  6 Aj!  A!A!@  H@  ("( O@ (  ( ( ( Atj("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A AG©  ("( O@ Aj  ( j-! Aj!  (! AFA AFA -:A!@  H@  ( O@@ ( j-  ("( O@ ( Atj(!AA¦˜!AA.˜" 6  ž  6 A6 A6 AJA - @  jAk o" ( O@ ( j-@  ("( O@ ( Atj(  ("( O@ ( Atj(  â! ( "Aj" (AvK@  AA™ ( Atj 8  6 Aj HA - @ Aj o" ( O@ ( j-@  ("( O@ ( Atj(  ("( O@ ( Atj(  â! ( "Aj" (AvK@  AA™ ( Atj 8  6 -A E Aj Fr ! ( }C€! A!@ ( J@ ( Atj*’! Aj!  ( ²•    !"  à! ó" C?” Cw¾?” ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A !5  à! ( Û"*! *!3 *!4}C€? ( Û"*“"! !” 3 *“"6 6”’ 4 *“"4 4”’‘•" “C[ C^q@ ! ”!3 6 ”!! 4 ”  C!!C!3C !6#!R#B|$ R78 ( ? 3} 5 " "\  " 5 5\  " 5– " ”’ > ! ”’ 7 6 ”’ÕÆ! A€ ( "Aj" (AvK@ AA™ ( Atj 6 6 (  º Aj!  A!@ (( J@ Aj o!  ( O@ ( j-  ( O@ ( j-A @  ("( O@  ( Atj(!  ("( O@ ( Atj(!  ("( O@ ( Atj(!#A�¥ÁkA0I@ #A0k"$ ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ *!3 *!5 *!6  à! ( Û"*! *!! *!"}C€? ( Û"*“" ” ! *“"4 4”’ " *“"7 7”’‘•"! !“C[ !C^q@ !”!" 4 !”! 7 !”  C! C!"C !!  "8  8  !8  à! ( Û"*! *!! *!"}C€? ( Û"*“" ” ! *“"4 4”’ " *“"7 7”’‘•"! !“C[ !C^q@ !”!" 4 !”! 7 !”  C! C!"C !!  "8  8  !8    á! *"?”’ *"8 * "9”’"=C·Ñ8]@#A0j$ 6 7 ”’ 5 ? ”’ 3 9 ”’  6 * ”’ *  " 4” ! >”’ 8”’C€?’” =•" ”’ *!! * !" 5 * ”’ * ”’#A0j$ 3 " ”’ ! ”’ ! *!7  à! ( Û"*! *!9 *!=}C€? ( Û"*“"8 8” 9 *“"9 9”’ = *“"= =”’‘•" “C[ C^q@ 8 ”!8 9 ”!9 = ”  C!9C!8C !  88  98  8 *" !8  ! ! 5’"9 7 *"= 9C?” 7“ =” " 6’"9C?” >“ *"=”’ 3 4’"@C?” ?“ ”’" ”’“"7“8  " 9 > = ”’“">“8  3 @ ? 8 ”’“"?“8  5 7“8  6 >“8  4 ?“8 *" *"8” * "F"@ * "9”“!E *"= @” *"@ ”“"G G” E E”’ 9 @” 8 =”“"E E”’‘ 9 9” = =”’ ”’‘C¬Å'7” 8 8” @ @”’ F F”’‘”^!AAä˜"!AA̘"AàA¦˜"6  6 Aà6 A6  6A¤*! A *!8 Aœ*8  88  8 A!@  I@ ³ ³•! @ #ÀC?””ü !I"H! 7 * I"8”’ * ”’!9 ? * 8”’ * ”’!= > * 8”’ * ”’! ("( "Aj"AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj" 98  8  =8 !C€? “"8” 5 ”’!9 ("( "Aj"AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj" 98  " 8” 6 ”’8  3 8” 4 ”’8  6 Aj!   78  >8  ?8 #A0j$AA¦˜!AAý˜" 6  ž  6 A6 A6 A!@  ("( H@  ( O@ ( A lj"*! *!! *!"#!R#B|$ R78 ( " ! ÕÆ! A€ ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  A!@ ( J@ ( Atj(! ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  (  œA Aå˜"A¤*! A *!!Aœ*8  !8  8 * ! *!!  *8  !8  8 (  œ Aj!  ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  AA�˜"½A!@ ( J@  ( Atj(( Ú Aj!  AA¦˜!AA—˜" 6 ž 6 A6 A6 A!@ ( J@ ( Atj(" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (! ( ( ("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (" ( O@ ( Atj("E@  ã!  ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (" ( O@ ( Atj("E@  ã"(!A! ( "AK@ Av! Ak!@  I@  Atj"(!    kAtj"(6  6 Aj!   (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (AAAýA¤ "( @ ((! A!@  (H@AAè˜"A6 A6AA¦˜!AAý˜" 6  ž  6 A6 A6  ( O@ ( ( Atj(6  ( O@ ( ( Atj(6 Aj" ( O@ ( ( Atj(6 Aj" ( O@ ( ( Atj(6  6  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  Aj!   ! (!A!A!AA�˜"½@ ( J@  ( Atj(( Ú Aj!  AA¥˜" ŽAA¦˜!AAý˜" 6 ž 6 A6 A6 @ ( J@ ( Atj(!A!@ (("( J@  ( O@ 5 ( Atj("­B †„ Aj ((( o!AA¦˜!AAý˜" 6  ž  6 A6 A6 ( "( O@ ( Atj(AG@ ( "( O@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6 -  ("( O@ ( j-EA  ("( O@ ( j-EA @A!A ("( "E ALr  (!@ H@ j-AF@  Aj!  A "AH@Aà© $ AAÐÊAà© Â" Ak(A~q7#"  ("( O@ ( Atj("E@ A!@ ( J@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!   ("( O@ ( Atj(AG@  ("( O@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6  ( "( O@ ( Atj(AG@  ( "( O@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6 Ù ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  Aj!  AA§˜"A16 ( (   éAA¦˜!AAý˜" 6  ž  6 A6 A6 AA¦˜!AAš˜" 6  ž  6 A6 A6 A!@ ( J@ ( Atj("è!AA¦˜!AAý˜" 6  ž  6 A6 A6 A!@ ( J@ ( ( ( Atj5 ­B †„"RB ˆ§A½ÜÊ•|l R§A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( "AqE@  ) RQ  A~q!  A @ ( ( RB ˆ§A½ÜÊ•|l R§A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( "AqE@  ) RQ  A~q!  A "E@ (!A!@ ( J@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!   ( O@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  AAÿÿÿÿ»!AA§˜"A16 ( (   é ( AHA ( ( G @A!@ ( J@ ( Atj(ø Aj!  A�© A ªÂAÀ¨ Â!A4Aï˜""A6 A� 6 A� 6 A� 6 A� 6 A� 6 A� 6 A6 A6$ A6( A� 6, A� 60 A6  6,  žAAö˜"A: A6 A� 6 A6 ·"6 ž 6 ž  ( "Aj" (AvK@  AA™ ( Atj 6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AA¦˜!AA¦˜" 6  ž  6 A6 A6 A!@ ( J@ ( Atj(! A!@ (("( J@  ( O@ ( Atj(!  ( "( O@ ( Atj("AFA  ("( O@ ( j- E@ (" ( Û"(F@ (  ( F@ (  A "AF@AС ö  ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (" ( O@ ( Atj("E@ A!A (("( "E ALr  (!@  J@  Atj( F@   Aj!  A "AN  ( "( O@ ( Atj(AGA   ( "( O@ ( Atj(  ! A Aé˜"A6 A6 A6  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ×!  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Aj!  AA¦˜!AA—˜" 6  ž  6 A6 A6 A!@ ( J@ ( Atj("(- -A E@ (("( E@ ((!A!A!#A�¥ÁkAI@ #Ak"$AA¦˜!AAý˜" 6  ž  6 A6 A6 AA¦˜!AAë˜" 6  ž  6 A6 A6 @ ((( J@ ("( O@ ( Atj("E@ A!@ ( J@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6 ( " Aj" (K@  AA™ ( jA:  6 Aj!  ( "( O@ ( Atj(AG@ ( "( O@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6 ( "Aj" (K@  AA™ ( jA:  6 ((( H ("( O@ ( Atj(AGA @ ("( O@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6 ( "Aj" (K@  AA™ ( jA:  6 Aj!  AA¦˜!AAš˜" 6  ž  6 A6 A6 @ ( "AL AF ALr@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  AA̘" AàA¦˜"6 6 Aà6 A6 @ ( J@ ( Atj(" ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ *! *! *!! ( "Aj"AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( A lj" !8 8 8 6 Aj!  A!C!"C!C! @  ( "H@ M@ ( A lj"*’! " *’!"  *’! Aj!  ( ²" •!5 " •!3  •! AA̘"AàA¦˜"6  6 Aà6 A6 A!@ ("( J@ " ( O@ ( Atj("@ *! *!! *!" ( "Aj"AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj" "8  !8  8  6 Aj!  ( }A!C!!C!"C!@  ( "H@ M@  ( A lj"*’! ! *’!! " *’!" Aj!   ( ²"•!6 ! •!! " •!"C€!A!@  ( "H@ M@  ( A lj"* 6“" ” * "“" ”’ * !“" ”’‘’! Aj!   ( ²•!  5 6“8  "“8  3 !“8 *"4 4” *"4 4”’ *"4 4”’‘C½7†5]} ! 5 6 *" C€? ” *" ”’ *"3 3”’‘•"5” ”’!6 ! 3 5” ”’!3 " 5” ”’! 6  ! 5 ! #!R#B|$ R78 (  3ÕÆ! A€ ( "Aj" (AvK@ AA™ ( Atj 6 6 ( ! A!A ( "E ALr  (!@ H@ j-@ Aj!   A "AH@A! Aq AGrE"A! H ( O@ ( j- Ao AoGGA Aj!      @A!@ AmH@  Atj o!AA¦˜!AAý˜" 6  ž  6 A6 A6  jAk o" ( O@ ( ( Atj(6  ( O@ ( ( Atj(6 Aj o" ( O@ ( ( Atj(6 ( 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@ H@A A¦˜!AAý˜" 6  ž  6 A 6 A6 ( O@ ( ( Atj(6 Aj o" ( O@ ( ( Atj(6 ( 6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  #Aj$A!@ ( J@AAè˜"A6 A6 ( O@ ( Atj("E@  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Aj!  A!@ ( J@  ( O@ At" (j("@ (j("  æç Aj!  AA¦˜!AAý˜" 6 ž 6 A6 A6 A!@ ( J@ ( Atj("( (å! ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  A!@ ( J@ ( Atj("( (å! ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  A!@ ( J@ ( Atj((ø Aj!  A!@ ( J@ (,"( ( ( Atj("(" ("I~ ­ ­B †„ ­ ­B †„ "RB ˆ§A½ÜÊ•|l R§A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( "AqE@  ) RQ  A~q!  A  (,"( ( RB ˆ§A½ÜÊ•|l R§A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( "AqE@  ) RQ  A~q!  A "E@ (A "AG@  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@  ("- :  - :  * 8  *8 Aj!  A!@ ( J@ ( Atj(! ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  ðAAö˜"A: A6 A� 6 A6 A:  6  ž  "-E@ ë  A Aâ˜"AAAýA¤6 AAAA¤6 AAAýA¤6 ("6 ž 6 ž 6 žAA˜˜"A: A6 A� 6 A6 A:  6  ž   AA˜˜"A: A6 A� 6 A6 ·"6 ž 6 ž "-E@ (!AA­˜"A: A6 A� 6 A6  6  ((!AA­˜"A: A6 A� 6 A6 A:  6  ž -E  (!  (Çæ   Ak(AÎFA E@ *! (ÇC C—  \É   Ak(AÏFA E@ *!A!AAǘ" � ((( !@ K@  ("(( OA ("( M@ ( Atj( "@ - A Í ^ @ Å Aj!  @ (E AA™˜" ½ (Ç!@ ( J@ ( Atj("ê" ( AN@AA�˜" ½A!@ ( J@ ( Atj( Ú Aj!  AA¦˜!AA¤˜" 6 ž 6 A6 A6 A!@ ( J@ ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!   (0"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  (0"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (AAAýA¤ !A!@ ( J@ ( ( ( Atj("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E@ (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (AAAýA¤ !A!@ ( " J@ E@  ( ( (("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (ç"  ( O@  ( Atj("! ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (ç"G@    H    Jº Aj!  Aj!  Aç!AA»˜" ½A!@ ( J@ ( Atj(!  ç"G@ ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (! Aj!  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ Ö! ("(( ! ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (Aj6 A€ A  ‚  Ú  ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E@  èû  ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (!A!@ ( J@  ( Atj(F@   º Aj!  Aj!  Aj!  E #!R#B|$ R78 È""( ( A€   A!@ ( J@ ( ( ( Atj("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "@ (! é!AA¦˜!AA‹˜" 6  ž  6 A6 A6 A!@ ( J@ ( Atj(" (" (( OA  (" ( O@ ( Atj( "E@A ÷ö E@ ×! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ (! ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ (! æ!A!@ ( J@  ( O@ At" (j( (j(6 Aj!   ç ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ (" G@A!@ I@ A j j‚ Aj!  ( ! A!@ ( J@ ( Atj(! ( M@ Aj o" ( O@  (,"( ( (" Atj(" At j("I~ ­ ­B †„ ­ ­B †„ "RB ˆ§A½ÜÊ•|l R§A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( "AqE@  ) RQ  A~q!  A  (,"( ( RB ˆ§A½ÜÊ•|l R§A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ( "AqE@  ) RQ  A~q!  A "E@ (A "AG@ ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ - : - : * 8 *8 - : Aj!  Aj!  A! (! (!AAý˜"A6 A6 A6 A6 š!A!@  J@  Atj"(AqE@ "Aj! ( Atj (6 Aj!  (   AA™  6 AA¦˜!AAý˜" 6 ž 6 A6 A6 A!@ ( J@ ( Atj(" ("(( OA  ("( O@ ( Atj(  (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (AAAýA¤ ( A E@ ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  ( ( A€   A!@ ( J@ ( Atj(÷ Aj!    Ak(AÐFA E@   Ú"-E@  (!   Ak(AÒFA E@ A Añ˜"A6 C€?8 A6 A: C8 C8 C8 A6 *! ( ! -! *! *!! *!" ( !  (6  8  6  :  8  !8  "8  6 (! (! -! ("AF@AA­˜"A: A6 A� 6 A6 Að• 6 Að• ž  E@AA­˜"A: A6 A� 6 A6 A€— 6 A€— ž  #A�¥ÁkAÀI@ #A@j"$@  F AGq@AAݘ"A: A6 A� 6 A6 A�œ 6 A�œ ž  @ AO@Að� AA ªÂAàœ Â!   ("(( OA ("( M@ ( Atj( "E@AAݘ"A: A6 A� 6 A6 A°ž 6 A°ž ž  ("(A ( " E@AàŽ (ÂA€Ÿ Â!  A Aߘ"A6 A6 A:  6  6  Aj: (x Ü" ("((E@AàŽ (ÂA°Ÿ Â!  AG  Ì!2!1!0!/!.!-!,!+!*!)!(!'!&!%!$"# $ % & ' ( ) * + , - . / 0 1 2Aå!2!1!0!/!.!-!,!+!*!)!(!'!&!%!$"# $ % & ' ( ) * + , - . / 0 1 2  Ì!2!1!0!/!.!-!,!+!*!)!(!'!&!%!$"# $ % & ' ( ) * + , - . / 0 1 2ã  Ì !2!1!0!/!.!-!,!+!*!)!(!'!&!%!$"#8 $8 %8 &8 '8 (8 )8 *8 +8 ,8$ -8( .8, /80 084 188 28< *! *! *!! *!" * !3 *$!5 *(!6 *,!4 *0!7 *4!> *8!? * O[ 7 N[q ? P[q 8 Q[qA E@  * * * * * * * * * *$ *( *, *0 *4 *8 *<û AAÚ˜"A6 A6 (! 6 6AAݘ"A: A6 A� 6 A6 A:  6  ž  AAݘ"A: A6 A� 6 A6 6 ž#A@k$  #A@k$  "-E@ è  ("(! (!A!AAò˜!AAó˜"AÀA¦˜"6 6 AÀ6 A6  6AA¦˜!AA˜" 6 ž 6 A6 A6  6 (!@ AH@  ( ( " þ"AN  ((" ( O@ ( Atj("E@ A A E@A°› ÂAК ÂA°š A�š Â! ( " Aj" (AvK@ AA™ ( Atj" 6 At Ÿ 6 Aj!  * * *ô !D!C!B"A!!#A�¥ÁkAI@ D!3 C!5 B!6#Ak"$AA¦˜!AA�˜" 6  ž  6 A6 A6 ((( ! A!@  I@ ("(( MA  ("( O@ ( Atj( " @Aà*!AÜ*! AØ*8  8  8 Aà› þ"AHA � "@} (E@ +¶"!   *! *! * ""C[ C[ C[qqE@  8  8  "8 AAù˜"A6 C8 C8 C8 C8 C8 C8 6 *! *! *8 8 8 C€? *" ” *"" "”’ *"4 4”’‘•" “C[ C^q@ ” " ” 4 ”  CCC ! 7” 4 !”  3”’ 5” " 6”“’"? D"8”’ 4 6”  5”“ 3” " !”’’"9 C"=” 4 5”  6”’ " 3” !”“’" B" ”“’!4 ( (A¨*A¬*A°*é! ” ? =”“ 9 8”  7”’’8 > =” ? ”’  8” 9 7”“’8 > 8” ? 7”“  =”Œ 9 ”“’8 G8 ; "”8 < "”8$  6 Aj!  A!@ ("( J@ ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AÀA…˜"Û (!A!@ ( H@ Þ" ( O@ ( A(lj"*! * * *$ * * *  * * *¹!2!1!0!/!.!-!,!+!*!)!(!'!&!%!$"# $ % & ' ( ) * + , - . / 0 1 2û  ý Aj!  ( E@ ( "Aj" (AvK@  AA™ ( Atj"A ˜ 6  At A ˜ Ÿ  6 Ù ïAA­˜"A: A6 A� 6 A6 A: 6 ž "-E  (!   Ak(AÑFA E@ #½"E@AÀ” (ÂAГ Â  A AÛ˜"A6 A6 B7 A6 A6 A6 (! (! )!R (! (6 6 R7 6 6 6 Ak(  Ak(AÓFA E@ #¾E@AàŽ (ÂAà” Â   (! (!@#›( J@#›( Atj(( Ä@ #›"( O@ ( Atj("E@   Aj!  A "E@AàŽ ÂA ÀÀÂ!AA­˜"A: A6 A� 6 A6 6 ž  (" AA©˜"A6 A6 ( ! 6 6  ( "-E  (!  ÙAA¦˜!AA˜" 6 ž 6 A6 A6 A!@ ( J@ ( Atj(!A€´ (ÂA Í Â! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  AA­˜"A: A6 A� 6 A6 A:  6  ž   ( !A€´ (ÂA Í Â!AA­˜"A: A6 A� 6 A6 6 ž  A$ Ak( "-@ (!A!@ ( J@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   (! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ¹~ Þ!AA¦˜!AA˜" 6 ž 6 A6 A6 !A!@ ( J@ ( Atj("-@    Û Aj!  #!#B|$  78AAÚ˜"A6 A6 6 6 ® A€…Ä@Aà– Aà–Ä@A€… A€�Ä@AÀž AÀžÄ@A€� AಠÄ@A€³  A€³ Ä@Aಠ A ºÄ@AÀº AÀºÄ@A º AÀ³ Ä@Aà³  Aà³ Ä@AÀ³  A ´  (Ç!@ ( J@ ( Atj("è"(!A! ( "AK@ Av! Ak!@  I@  Atj"(!    kAtj"(6  6 Aj!    æç Aj!  ï ž E@CC  ì"AF@CC  ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@  ( "( O@ ( Atj"* * ¶  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@  ( F@ (  ( F@ (  A "AF@AС $ AAÐÊAС Â" Ak(A~q7#"@A$ Ak( – }#A�¥ÁkA I@ #A k" $  à! ( Û"*! *! *!}C€?  ( Û"*“" ”  *“" ”’  *“" ”’‘•" “C[ C^q@  ”!  ”!  ”  C!C!C !   ! ! "8 8 8 ò! ! "  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *“! *“! *“! 8 8 8C€? * " *"  ” *" *"”’ *" *" ”’"”“" ”   ”“" ”’ ”“" ”’‘•" “C[ C^q@  ”  ”  ”  CCC ! ! " #A j$ §}#A�¥ÁkAI@ #Ak" $   á! ! "8 8 8  à! ( Û"*! *! *! }C€?  ( Û"*“" ”  *“" ”’ *“" ”’‘•" “C[ C^q@ ”!  ”! ”  C!C! C !  ! ! " *” *”’ *”’!#Aj$   • C·Ñ8] Ú@A (("( "E ALr  (!@  J@  Atj( F@   Aj!  A "AH@A�ª $ AAÐÊA�ª Â" Ak(A~q7#"@  A! ("(( (( j! At!@  J@  A (-E   Ak"Aq@ Am" ("( O@  Am" ( "( O@ ( Atj("AG@   Aj!  A "AF@AÀª $ AAÐÊAÀª Â" Ak(A~q7#"@  AA¦˜!AAý˜" 6  ž  6 A6 A6 ( 6  ("( O@ ( Atj("E@ @ ( J@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  A! ("(( (( j! At!@  J@ Aj" N@A (-E A! Aq@ Am" ("( O@  Am" ( "( O@ ( Atj("AG@   Aj!  A "AF@AÀª $ AAÐÊAÀª Â" Ak(A~q7#"@  ( "Aj" (AvK@  AA™ ( Atj 6  6  A$ Ak( å}#A�¥ÁkA I@ #A k" $ C€? “" ”  “" ”’  “" ”’‘•" “C[ C^q@ ”  ”  ”  CCC ! ! " 8 8 8 C€?  “" ”  “" ”’  “" ”’‘•" “C[ C^q@  ”  ”  ”  CCC ! ! " 8 8 8 * * ” * *”’ * *”’"C€¿]@C€¿! C€? C€?^� !#A j$ ¢ }#!@ ( J@ ( Atj("Ak(AvE@ (" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *! *! *! Ak(AvAM@ (" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *! *! *! Ak(AvAM@ (" ("(( OA  ("( O@ ( Atj( "E@A ÷ö @ *" *" *"   ä!     ä! }     ä"} }   \    \   – " \   \   – " \    \   – ! Aj!   ä$}~AA¦˜!AAý˜" 6 ž 6 A6 A6 @ ( J@@ ( Atj(" ("(( OA ("( O@ ( Atj( E ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ (AM@ ( "Aj" (AvK@ AA™ ( Atj 6 6  A!#A�¥ÁkAI@ #Ak" $ À!AA¦˜!AAž˜" 6  ž  6 A6 A6 @ ( J@ ( Atj("Ak(AvE@ (" ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (! Ak(AvAM@ (" ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (! Ak(AvAM@ (" ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (!AA ˜A A ˜"Ak(AvE@  6 Ak(AvAM@  6 Ak(AvAM@  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  è"( AF@AA̘"AàA¦˜"6  6 Aà6 A6 A!@ AH@ " ( O@ ( Atj(" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *! *! *! ( "Aj"AÕªÕ*K@ A l" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj" 8  8  8  6 Aj!  ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ *! * ! *8 8 8A! AH AjAo" ( O@ ( A lj"*! *! *!  ( O@ ( A lj"*! *! *! AjAo" ( O@ ( A lj"* “!  “" * “"” * “"  “"”“ *”  “" ”  ”“!  ”  ”“ *”’  *”’C` Aj! A A AA¦˜!AAž˜" 6  ž  6 A6 A6 ( ( E@ ((! ( AM@ ((! ( AM@ ((!AA ˜A A ˜"Ak(AvE@  6 Ak(AvAM@  6 Ak(AvAM@  6 6 ( ( E@ ((! ( AM@ ((! ( AM@ (( !AA ˜A A ˜"Ak(AvE@  6 Ak(AvAM@  6 Ak(AvAM@  6 6AA¦˜!AAž˜" 6  ž  6 A6 A6 ( ( AM@ ((! ( AM@ ((! ( AM@ (( ! AA ˜A A ˜"Ak(AvE@  6 Ak(AvAM@  6 Ak(AvAM@  6 6 ( ( AM@ ((! ( AM@ (( ! ( E@ ((!AA ˜A A ˜"Ak(AvE@  6 Ak(AvAM@  6 Ak(AvAM@  6 6   å å`  ! #Aj$ ! ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ -! ( E AA¦˜!AAý˜" 6 ž 6 A6 A6 AA¦˜!AA£˜" 6  ž  6 A6 A6 ("(( MA ("( O@ ( Atj( "E@A ÷ö E@ (!@  ( (jI@  ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (! ( "Aj" (AvK@ AA™ ( Atj 6 6 Aÿÿÿÿ ( "( " AÿÿÿÿF A AH"k"A AJ"Aÿÿÿ?K@ AAØ"A  AMAt" A¦˜" 6  6  6  6 (! ( Atj!A!@  J@ At" j"  j" *! *8  8 Aj!  ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( E@ (("E@ A A¦˜!AAý˜" 6  ž  6 A 6 A6 Ak(AvE@ ( (6 Ak(AvAM@ ( (6 Ak(AvAM@ ( (6  æç ( "Aj" (AvK@ AA™ ( Atj 6 6 A!@ ( " J@  "M@ ( Atj("E@ A A¦˜!AAý˜" 6  ž  6 A 6 A6 Ak(AvE@ ( (6 Ak(AvAM@ ( (6 Ak(AvAM@ ( (6  å!  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@  : (" (( I@  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ AA¦˜!AAý˜" 6  ž  6 A6 A6 (!@  ( (jI@ ( " Aj" (AvK@  AA™ ( Atj 6  6 Aj!  AAØ"AÀA¦˜"6  6 AÀ6 A6 A! @ ( J@ ( Atj(" ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (!C!A!} ( J}  ( Atj(F}  ( O@ ( Atj("E@ ( O@ ( Atj"*! * Aj!  C ! ( "Aj"Aÿÿÿ?K@ At" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" 8  8  6 Aj!  A!@  ( H  ( HA @  ( O@ ( Atj(" ( " (( OA  (" ( O@ ( Atj( "E@A ÷ö E@ ( !  ( O@ ( Atj*! ( O@ ( Atj 8  ( O@ ( Atj*! ( O@ ( Atj 8 Aj!  ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  Aj!  ð#!#B|$ 78 Ÿ !@@  ( O@  ( Atj(F  ( O@ ( Atj(!  @@  ( O@  ( Atj(F " ( O@ ( Atj(!  º   ó}#A�¥ÁkAI@ #Ak" $  “8  “8  “8 ! ! *" " ” *"" ”’ *"" ”’"C̼Œ+]E@ “ ”  “ ”’  “ ”’ •"C]@C! C€?^@C€?!  ”’! “ ”’!   ”’!   ”’! “  “  “!!"" ” " ”’ " ”’‘" _@#Aj$C€? C_ ’`r@#Aj$C #Aj$C€? “ •" ”“" \}C C— ^ E@    þ"AHA  � "E@    (AF@ * * * +¶"   Ã}#A�¥ÁkAI@ #Ak" $ ( AM@ (*! ( AM@ (*! ( AM@ (* ! ( E@ (*! 8 8 8 8 *" ” *" ”’ *" ” * " ”’’C̼Œ+]@A¨*A¬*A°*A´*!#Aj$  *"C€?  ” *" ”’ *" ” * " ”’’‘•"”  ”  ”  ”!!!"  #Aj$  ‚ Aà˜AÇE@A AAÿÿÿÿÈ"Ak(AvE@A Ak(Av /A "A'G A"Gq@A AAÿÿÿÿÈ" ¾AÅ"AH@A A È! AjAÿÿÿÿÈ"A ™AÇE@A AA¦˜!AA˜" 6 ž 6 A6 A6 ( 6 ( AAÿÿÿÿÈ6 Éï~#}@ (A N" A Aߘ" A6 A6 A6 AA¦˜"6 6 A6A!@ AH@ A¬‡'(AvOA AtA°‡'j/ Aÿq! ( M@ ( j : Aj!   AH  (O@  (O@ ( j- ( j-GA Aj!    E@A4Aï˜"A6 A� 6 A� 6 A� 6 A� 6 A� 6 A� 6 A6 A6$ A6( A� 6, A� 60 A6  (A M@ (A M@ (AM@ (A M@ ("- - Atr - Atr - Atr"AG@A4Aï˜"A6 A� 6 A� 6 A� 6 A� 6 A� 6 A� 6 A6 A6$ A6( A� 6, A� 60 A6 6$ A6( ¬ A Aþ˜" A6 A6 A6A (" A J!A Aߘ" ("6  ž  ( j6    H k6 6AðAç˜" È "A ABÀš!AA¦˜!AAé˜" 6 ž 6 A6 A6 @  T (AFA @A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A B! œ!B!@@@@@@ AAB š§!A (AG  AO@ A6A    AÀA…˜"Û A ABÀš!AA¦˜!AA‡˜" 6  ž  6 A6 A6 @  T (AFA @A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A B!AAù˜"C8 C8 C8 A: A: AAAúA¤6 ›! ›! ›!)  8  8  )8 A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A : A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A : A ABÀš!@  T (AFA @ AAB š§! ›! (!AAø˜"A6 C8  6  8 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!  A ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!  AAB š§!AA†˜"æ  6  ž  6  6  ž A ABÀš!AA¦˜!AAŠ˜" 6  ž  6 A6 A6 B!@  T (AFA @A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A AAû˜"A6 A6 A: A: A: A: C8 C8 AAB š§! AAB š§!  6  6 A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A : A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A : A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A : A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :  ›8  ›8 A ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!  AAB š§!AA‰˜"å  6  ž  6  6  ž A ABÀš!AA¦˜!AA�˜" 6  ž  6 A6 A6 B!@  T (AFA @A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A AAü˜"A6 A6 C8 C8 C8 A: A; A: A:  AAB š>  AAB š> ›! ›! ›!)  8  8  )8 A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :  AABš= A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A : A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A : A ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!  AAB š§!AAŒ˜"ä  6  ž  6  6  ž A ABÀš!AA¦˜!AA�˜" 6  ž  6 A6 A6 B!@  T (AFA @A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A B!AAý˜"â  AAB š>  AAB š>  AAB š> A ABÀš!@  T (AFA @ ( ! ›! ›! ( " Aj"Aÿÿÿ?K@ At" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" 8  8  6 B|!  A ABÀš!B!@  T (AFA @ (!A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  ! ( "Aj" (K@  AA™ ( j :  6 B|!  A ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!  AAB š§!AA�˜"ã  6  ž  6  6  ž A ABÀš!B!@  T (AFA @ (! œ!AAþ˜"A� 6  6  ž ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!   AAB š> A ABÀš!B!@  T (AFA @ AAB š§!A (AG  AO@ A6A   ! AAB š§! (!AA€˜"A6 A6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!  A ABÀš!B!@  T (AFA @ œ!A Aÿ˜"AAAýA¤6 AAAýA¤6 AAAýA¤6  ï"6  ž  ï"6  ž  ï"6  ž (AF@ (  ™ B|!  A ABÀš!B!@  T (AFA @ ( !B!AAŸ˜"á  œ"6  ž  ›8  ›8  ›8  AAB š> A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A : A ABÀš!AA̘"AàA¦˜"6  6 Aà6 A6 @  T (AFA @ ›! ›! ›!) ( " Aj"AÕªÕ*K@ A l" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj" 8  8  )8  6 B|!   6  ž ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!   AAB š>$ A ABÀš!B!@  T (AFA @ ((!B!A A¥˜""A� 6 A6 AA¤˜"à 6  œ"6  ž  AAB š§!A (AG  AO@ A6A   6AA¤˜"à  AAB š§!A (AG  AO@ A6A   6 (AF@ A ABÀš!@@@@@ ( @  T (AFA @ (! ›! ( "Aj" (AvK@  AA™ ( Atj 8  6 B|!   @  T (AFA @ (!A AAB š§"Aqk Avs! ( " Aj" (AvK@  AA™ ( Atj 6  6 B|!   @  T (AFA @ ( !A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A ! ( " Aj" (K@  AA™ ( j :  6 B|!   @  T (AFA @ (! ›! ›! ›!) ( "Aj" AÕªÕ*K@ A l" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj" 8  8  )8  6 B|!   6  ž ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!  !AAĘ"A6 A6 A6 A6 A6 A6 A6  6  AAµ˜"AA¶˜"Ú 6 A6 A6 AAA¹A¤6 B7 A ABÀš!AA¦˜!AA·˜" 6  ž  6 A6 A6 @  T (AFA @A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A B!AÄA²˜"Ø  œ"6  ž ›! ›! ›!)  8  8  )8 ›! ›! ›!)  8  8  )8  ›8 A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  AAB š§A 6 A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :$ A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :% A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :& A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :'  ›8(  ›8,  ›80  ›84  ð"68  ž A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :< A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A := A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :> A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :?A0A°˜"Ù ›! ›! ›!)  8  8  )8 ›! ›! ›!) ›!3  8  8  )8  38 ›! ›! ›!)  8  8  )8$ A ABÀš!@  T (AFA @ ((! œ! @@@@@@@@@@@ AAB š§!A (AG  A O@ A6A     AAB š§!A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  œA ! AA½˜"A6 A6  6  6 A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  AAB š§!A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  œA ! AA½˜"A6 A6  6  6 A › AAB š§ AAB š§A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A Ž AAB š§!A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  œA ! AA½˜"A6 A6  6  6 A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A ÒA (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A ÒA (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A � AAB š§!A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  œA ! AA½˜"A6 A6  6  6 A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A Ò AAB š§!A (AG  AO@ A6A   �  AAB š§!A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  œA ! AA½˜"A6 A6  6  6A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A Ò! A A˜"µ  6  ž  ²"6  ž   AAB š§!A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  œA ! AA½˜"A6 A6  6  6 AAB š§!A (AG  AO@ A6A   ! A AØ"´  6  ž  6   › › › › › ›A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A Ò‘  › › › › › ›A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A ÒA (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A Ò’  AAB š§!A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  œA ! AA½˜"A6 A6  6  6 AAB š§!A (AG  AO@ A6A   !  AAB š§!A (AG  AO@ A6A   !AAƘ"³  6  ž  6  6   AAB š§!A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  œA ! AA½˜"A6 A6  6  6 AAB š§!A (AG  AO@ A6A   ! A Aǘ"²  6  ž  6   AAB š§!A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  œA ! AA½˜"A6 A6  6  6 ›!A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A ! AAȘ"±  6  ž  8  :   AAB š§!A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  œA ! AA½˜"A6 A6  6  6  î!(!'!&!%!$!#!"!!! !!!!!!"       ! " # $ % & ' (“ !AAʘ"A6 A6 C€?8 A: A6  ”" 6  ž  ›8 A (AG  (( (L@ A6A  (" (" (O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :  AAB š§!A (AG  AO@ A6A   6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 B|!  A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :, A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :-  6@  ž A ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!  AAB š§!AA¶˜"Ú  6  ž  6  6  ž A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  AAB š§A 6  AAB š§!A (AG  AO@ A6A   6 A ABÀš!B!@  T (AFA @ œ!A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A ! ( !AA³˜"A� 6 A:  6  : ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!  AAĘ"A6 A6 A6 A6 A6 A6 A6  6  ž   AAÁ˜"A6 CHB8 CÀ@8 CÍÌÌ=8 CzD8  AAB š§!A (AG  AO@ A6A   6  ›8  ›8  ›8  ›8AAĘ"A6 A6 A6 A6 A6 A6 A6  6  AA˜"A6 C€?8 C€?8 C€?8 CzD8  AAB š§!A (AG  AO@ A6A   6 ›! ›! ›!)  8  8  )8  ›8AAĘ"A6 A6 A6 A6 A6 A6 A6  6   AAB š§!A (AG  AO@ A6A   ! ›!A AØ"A6 C8 A6  6  8 A6AAĘ"A6 A6 A6 A6 A6 A6 A6  6  ž    ž  !AˆAט"Õ  6  6 í!,!+"*! í!/!."-! í!2!1"0!)  8  +8  ,8  8  .8  /8  )8  18$  28(A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A @ AAB š§! AAB š§!A (AG  AO@ A6A   "AF@ œ!AAŘ"A6 A� 6 A6  6  ž AF@AAŘ"A6 A� 6 A6AAŘ"A6 A� 6 AAƘ"A6AAŘ"A6 A� 6  6  6  6  6,  ž  î!(!'!&!%!$!#!"!!! !!!!!!"80  84  88  8<  8@  8D  8H  8L  !8P  "8T  #8X  $8\  %8`  &8d  '8h  (8l A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :p A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :q A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A :r  ï"6t  ž A ABÀš!@  V (AFA @ œ!@@@@@@@@@@@@@ AAB š§!A (AG  A O@ A6A     A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A ÒA (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A ›¼ AAB š§! AAB š§!A Aɘ"A6 A6  6  6 AAB š§ › › › › › ›A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A ›½ ›! ›!A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A !AA˘"C8 C8 A:  8  8  :  ›! AAB š§! ›!AA̘"C8 A6 C8  8  6  8  AA͘  ›!AAΘ"C8  8  ›!AAϘ"C8  8  A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  AAB š§A !A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A !A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A !A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A !A AИ"A6 A: A: A:  6  :  :  :  œ ñ A ABÀš¾  A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  AAB š§A ›A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  œA A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A › › ›A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  œA ¿  œ! ñ!A AÓ˜"A� 6AA¨˜"½  6  6  ž  6  ž    !A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A ! (x!A AÔ˜"A6 A6 A:  6  6  : ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!  A ABÀš!B!@  V (AFA @ œ!A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A ! (|!AAÕ˜"A� 6 A:  6  : ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 B|!  A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  AAB š§A 6€A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A @AAÓ˜"A6 A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  AAB š§A 6  6„  ž A ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 B|!  AAB š§!AAè˜"ç  6  ž  6 6 ž A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A 6A  AAB š§A 6  AAB š§!A (AG  AO@ A6A   6A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A !A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A !A (AG  (( (L@ A6A  (" ("(O@ ( j-! (Aj6  !A (AG A Aÿq"E A AF  A6A ! : : : í!,!+"*! í!/!."-! í!2!1"0!) 8 +8 ,8 8 .8 /8$ )8( 18, 280  AAB š§!A (AG  AO@ A6A   64  AAB š§!A (AG  AO@ A6A   68 A AAB š§"Aqk Avs6!=!!� =!‚ A+F A? A/F A AHA @AAˆ˜"A6 A6 A: A6  Ak6  :  AAˆ˜"A6 A6 A: A6 A6 A:  AA¦˜!AAÒ˜" 6 ž 6 A6 A6 AjAm"AkAtA AJ! @  H@B!°A!@ AH@  j" (O@  ( j-"AÚM AÁOq@ AÁk  AÇk AúM AáOq  Aj A9M A0Oq A> A+F A? A/F A "AH@AAˆ˜"A6 A6 A:  j" (O@ ( j-! A6  6  : AA¬˜"A: A6 A� 6 A6  ·"6  ž  6  ž   ¬ °B†„!° Aj!  A!@ AN@ ( "Aj" (K@ AA™ ( j ° ¬B†ˆ< 6 Ak!  Aj!  B!°A!A!A!@  kH@ j" (O@ @ ( j-"A=F@ AoAH@AAˆ˜"A6 A6 A: A6    AJj6  :    ! Aj!  AJ@AAˆ˜"A6 A6 A: A6  j6 A=:   "AÚM AÁOq@ AÁk  Aÿq"AúM AáOq@ AÇk  Aÿq"A9M A0Oq@ Aj  A> Aÿq"A+F A? A/F A "AH@AAˆ˜"A6 A6 A: A6  j6  :  ° ¬BÀ Aj"Al¬}†„!° Aj!  @@@@@@@@@   A!  A!  A!  A!  A !  A(!  A0!  AðØ$$ AAÐÊAðØ$Â" Ak(A~q7#"@  B ¬ˆB  °ƒBR@AAˆ˜"A6 A6 A: A6  jAk6  :  A!@  J@ ( "Aj" (K@ AA™ ( j °B8 ¬}ˆ< 6 Aj!  A Aߘ"A6 A6 A6 ( "AüÿÿÿK@  A¦˜"6  6  6A!@ ( J@ ( j-! ( M@ ( j : Aj!  AA¬˜"A: A6 A� 6 A6 A:  6  ž   AA¬˜"A: A6 A� 6 A6  ·"6  ž  6  ž  "-E@A ( ( ßê    @# ( ¤"-E@ §     @  ( ¸ !# ¤"-E@ §     A0A…˜"A6 A� 6 A6 A6 B7 B7 AAA†A¤6( A 6 ê  A0A…˜"A6 A� 6 A6 A6 B7 B7 AAA†A¤6( A6 ê "-E@   (! #("E@A0A…˜"A6 A� 6 A6 A6 B7 B7 AAA†A¤6( A6 ê  #A6 (Aq@A Aߘ"A6 A6 A6 (AjA|q"AüÿÿÿK@  A¦˜" 6  6  6 (" (J@ ( ( ü ! AA¬˜"A: A6 A� 6 A6 A:  6  ž  "-E@A - A ( "E   Ak(A…FA @  Ak(A…FA E@   A " (AFA @  ( ( ü¦   à ( !A(A¦˜"A6 A� 6 A� 6 A� 6 A� 6 A� 6 A� 6 A� 6 A6$ A6  6  ž  6  ž ¦  ( "@ á"(AFA (AF @ (  A "  �AHA @ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ) (4V@AàÖ$ A «ÂAðž$ )A ¬ÂA°Ö$ ((A «ÂA€Ö$Â!A(A¦˜"A6 A� 6 A� 6 A� 6 A� 6 A� 6 A� 6 A� 6 A6$ A6  6  ž  6  ž ¦  (! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AA¥˜"A: A6 A� 6 A6 A:  6  ž  "-E  ((! (!#AAª˜"A6 A6 A6 AAAA¤6 AA«˜"A6 A6A Aߘ"A6 A6 A6  A«6 #( !( !@ ("( J@  ( O@ ( Atj("E@ ((" (Að¸"ðA "@A (AG A (0"E  A€Œð " (AF ((A A "E@AA³˜"A: A6 A� 6 A6 AàÐ$6 AàÐ$ž   @@A A€Õ$Ä A A°Õ$Ä A AàÕ$Ä A "AH@A�Ñ$ ÂAàŽÂ!  A! A (AG A (0"E  Að¬ ð " (AF ((A A "@A AÐÓ$Ä A AðÓ$Ä A A Ô$Ä A AÐÔ$Ä A " AH@AÐÑ$ ÂAàŽÂ!  A0A¬˜"B7 B7 B7 B7 B7 A6( A6,  6(  6,AA­˜"A: B7 A�Î ¨"-E@A Ó$A�Î ÂAàŽÂ   )7A "   )7  A Ò$¨"-~ )B 7 AÐÒ$¨"-E@A Ó$AÐÒ$ÂAàŽÂ   )7A "   )7 AÀª"¨"-E@A Ó$AÀª"ÂAàŽÂ   )7A "   )7 A€Ó$¨"-E@A Ó$A€Ó$ÂAàŽÂ   )7A "   )7 AA³˜"A: A6 A� 6 A6 A:  6  ž   AA³˜"A: A6 A� 6 A6  6  ž   AA³˜"A: A6 A� 6 A6  6  ž  "-E@ AðÏ$ A «ÂAðÛÂAð¸"ÂAÀ… (ÂýÛ  A! (") #( "¬T@ )"° ) °|"±X@  )§"M@ #( Atj("E@ ± 4VA  °§ ±§­ ! E@ AðÏ$ A «ÂAðÛÂAð¸"ÂA Ð$ )A ¬ÂýÛ   ((! (,! )"°BÿÿÿÿX ) "±BÿÿÿÿXq@ ±§ °§  A¾  E@ ±P@ ~B °Bƒ AGB P@A Aߘ"A6 A6 A6 AA¦˜"6  6 A6AA¬˜"A: A6 A� 6 A6 A:  6  ž   A€Ð@@@@  A Ð  AÀÐ  A�¨  AðÐ ÂA°Ï °A ¬ÂŽ  °BƒB °B€X °BZqBR@A�Ý °A ¬ÂA ÜÂŽ  ± °§ ¿ "AN@A°×@@@@  AÐÓ  A€Ô  AÀÔ  AðÔ ÂA �ÂŽ  A Ó ±A ¬ÂA°ü °A ¬ÂAÐÒÂŽ  °BQ °BQrE@AÐÖ °A ¬ÂŽ  AF ±B‚BRA @A Ö ±A ¬ÂA ÕÂŽ  4"² ±B€B|T ²BT ± ²B}Vr AF@A ÑAðÔÂA �ÂŽ  A Ó ±A ¬ÂA°ü °A ¬ÂAÐÒÂŽ "-E@ AðÏ$ A «ÂAðÛ (ÂýÛ  (!@ (Aq@ A€  (! ("@  ÿ (! (! ("AHA  ( kJ @ ( j ( ü  ( j6  ("( O@ ( Atj("E@  (6  ¬7  47  ((A )BZ  )BüXA ~ )BƒB P~ )B 7 (("@ (Að¸"ò  (Aj6 Aj!  A A®˜"A: A: A� 6 A6 A: A:  "-E@ ú  ( ! AA¦˜!AA¼˜" 6  ž  6 A6 A6 A!@ (4"( J@ " ( O@ ( Atj("@A!@ ( "( J@ " ( O@ ( Atj(" E@ (!A!@ (( J@AA˜"A6 A6  ("( O@ ( Atj(!  ("( O@ ( Atj("E@ Ý!  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ("@A!@ ( J@ ( Atj("(AN@AA˜"A6 A6  (6 AÐö6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (AN@AA˜"A6 A6  (6 Aðõ6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 (AN@AA˜"A6 A6  (6 A�ö6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  Aj!  Aj!  @ ( "AH AL@A!@  H@  ( O@ ( Atj("@ Ak!@ AN  ( O@ ( Atj("E@ A°Ì$  A°Ì$(AJA @  ( O@ ( Atj("@  Aj œ Ak!   Aj œ Aj!   ¤! ¤!A!@  J@A!@  H@  Atj"   H! " j"   H" ! !@  H Jq@  ( O@ ( Atj("E@ A°Ì$   ( O@ ( Atj("E@ A°Ì$(AH@  ( O@ ( Atj("E@   œ Aj!  ( O@ ( Atj("E@   œ Aj! Aj!  @  H@  ( O@ ( Atj("@   œ Aj! Aj!  @ J@  ( O@ ( Atj("@   œ Aj! Aj!   Atj!  ! ! ! At!  A!@  H@  ( O@ ( Atj("@   œ Aj!  A!A!@ ( " J@ AJ ( Atj(!  Ak"M@ ( Atj("E@ (" ("G@AA  J  ( (÷ A @  ( O@ ( Atj("E@   œ Aj! Aj!  ( !  AA™  H@ ( AtjA  kAtü  6 @ ( J@ ( Atj("(!@ ("AHA  (( N ("( M@ ( Atj("E@ ("AF  -4!A AF A Aðµ"AÇ A AÐöÄA AðõÄ A A�öÄ   AF AFrA E E (8@A Î$ A «ÂA Å ÂAÐÍ$ÂAÐÌ$Â! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  -4}}@@@@@@ Ak CþB  CC  CþÿF  CÿG  C€O  C€? C€? !I (" AN@ ("( N  ( O@ ( Atj("E@ ($"AF @@@@@@@ Ak A  A  A  A  A  A  A ! )"°BS@@@@ Ak A  A  A l¬!° )"²BS@B!² )"±BY~ ±B ²|!± ² )|!² ( (F ² (A (­"4"´ ² ´T"² ±TA  ±§ ²§¬  ("AN  #( HA  (" #( O@ #( Atj("E@ A ² 4"´ ² ´T"² ±T   ±§ ²§¬ A "E@A Î$ A «ÂA Å ÂA Ï$ÂAÐÎ$Â! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  )"±BÿÿÿÿV@A�½"ö A!A Aç˜"A6 A6 A6  ±§"l"AÿÿÿÿK@ Aÿÿÿÿ °§ °BÿÿÿÿV!@@@ Ak A  A  A !  At"A¦˜"6  6  6 4!°@  J@A!@  H@ °  l¬ ¬ ¬~|"± ¬|Y@ ±§!}@@@@@@ Ak Aj" (O@ Aj" (O@  (O@ Aj" (O@  (" j- j-Atr j-Atr j-Atr¾   (O@ ( j-³   (O@ ( j-À²   (O@ Aj" (O@ ("j-At  j-r³   (O@ Aj" (O@ ("j-At  j-rÁ²  Aj" (O@ Aj" (O@  (O@ Aj" (O@  (" j- j-Atr j-Atr j-Atr³ !J  l j" (AvO@ ( Atj J8 Aj!  Aj!  @ (Aq@ A€  (!  (A|qÿA!@ (Av J@ ( Atj*!J IC€?[} J J I•"J J\}C€¿ JC€¿— ¼"Aÿq! (( (F@ Aÿ (" ("(O@ ( j :  (Aj6 (( (F@ Aÿ (" ("(O@ ( j Av:  (Aj6 (( (F@ Aÿ (" ("(O@ ( j Av:  (Aj6 (( (F@ Aÿ (" ("(O@ ( j Av:  (Aj6 Aj!  ( k!A0Aà˜"A6 B7 B7 B7 A6 A6$ A6( A6,  (6  ¬7  ¬7 B7 A6 ("( O@ ( Atj("E@  ($6$ A6( A6, ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (( Ak6 B7 A6 A:4 (( IÅ (, IÅ Aj! Aj!   6A!AAɘ"0�@ (4( J@A!@@  (4"( O@ ( Atj("E@  ( ( N  (4"( O@ ( Atj("E@  ( "( O@ ( Atj("-E@ @ -("E ("(A ¸"A! A ¸"! Aœ¸"(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! A�¸"j!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! Aœ¸"j!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A ¸"j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ (! (A ¸"A! A ¸"! Aœ¸"(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! A�¸"j!@  O@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl! (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! Aœ¸"j!@  O@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  A ¸"j!@  K@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sÒ"E@ (" ( O@ ( Atj("E@ A "E AÀ¼ A «ÂAð¹" A «Â!"A (AG A (0"E  A°¬"ð " (AF (A A @AA´˜"A: A6 A� 6 A6 A�Ë$6 A�Ë$ž   (AF (A ~B ) !°A (AG A (0"E  A�Öð " (AF (0A A "E@AA´˜"A: A6 A� 6 A6 AàË$6 AàË$ž   AA®˜""B7 AA°˜"½ 6  °7A! @ (( J@ ("( O@ ( Atj("E@ (AF (A E@ ("( O@ ( Atj("E@ (  (AF (A ~B ) §Ó Aj!  AA´˜"A: A6 A� 6 A6 A:  6  ž  "-E@  "AðÛÂA ¸"ÂAÀ… (ÂýÛ  ("(!1A! )"± ("4 T@ ±§" ( O@ ( Atj("E@ A (AHA #( (L  (" #( O@ #( Atj("E@ )"°BS@B!° A ° )|"² °T  ² 4VA  °§ ²§­ ! E@  "AðÛÂA ¸"ÂAàº" ±A ¬ÂA º"ÂýÛ  A8A²˜"ü  6AA½˜! AAº˜"A6 A6 A6 A6 Aš6 A6 A6AA»˜"A6 A6 A6 A6 Aš6 AAý˜"A6 A6 A6 A6 Aš6A8Aá˜"A6 A: A; A: A: A6 A6AAš˜"A6 A6 A6 A6  Aš6AAâ˜"A6 A6 A6 A6  Aš6AAã˜"A6 A6 A6 A6  Aš6AAý˜"A6 A6 A6 A6  Aš6 AAý˜"A6 A6 A6 A6  Aš6$AAë˜"A6 A6 A6 A6  A¨6( A:, A:- B70@A!A! B!°A! A!B!±B!²B!´@ ("( J@ ( M@ ( Atj("E@ A A¿˜"A6 A6 A6 ("(! AA«˜"A6 A6  þ"6  ž ( ! (!  6  6  6AAý˜"A6 A6 A6 A6  Aš"6  ž A6 (((AJA (AJ @ ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ("( ! AAA™ AJ@ (A Atü A6 A6 A6 ("(  AAA™ A6 A:-A Aߘ"A6 A6 A6 AA¦˜"6  6 A6  (… "-E@ ä  ( ("  (j­"(!  (J@ ( ( ü « "-E@   (AF (-AÄFA  (AM@ (-AÒFA  (AM@ (-AÁFA  (AM@ (-AÃFA  (AM@ (-AÏFA E@A A·˜"A6 A6 A6 AàÉ$6 Û  @ –"-E  -: –"-E  -: - !  -:  : –"-E -"@ AF@ A6A A·˜"A6 A6 A6 A�Ê$6 Û   A6 –"-E  -: A… "-E@ ’  ( ((j/“ "-E@A A·˜"A6 A6 A6 AÐÊ$6 Û   /;«  ý "-E@   - !AÅ×-! -"AÄ×-"KA  F  Oq  /A€€qA @ † " -E  )"µ (( (k"A AJ¬V@AÀÉ$A°Á$Š †  µ‡ "-E@ ž  )!µAAؘ"AAј"AA±˜"½ 6AAÒ˜"½  6 6AAÙ˜"A6 A6 A6 A6  Aš6@ ° µT@ † "-E@ ž  )BÿÿÿÿV@A A·˜"A6 A6 A6 AðÁ$6AAÚ˜"A: A6 A� 6 A6  ·"6  ž  6  ž   � "-E@ Ÿ  (!AAט"A6 A6 (!  )>  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 °B|!°  � "-E@ Ÿ   ("6  žAAÚ˜"A: A6 A� 6 A6 A:  6  ž  "-E@AàÀ$Š Û  ("6 ž« "-E@   @ (E@A A…˜"A6 A: A; A: A: -! - !  -:  :  : A; A6 - ! -! A… "-E@ •  ( ((j(� "-E@ ä  @@@ (" AH@Aà‰$ A «ÂA€ÞÂ!   ¬"° (()"±V@AÀ¯# °A ¬ÂAÀ…ÂA – ÂAð®# ±A ¬Â‰ Û  « "-E@   6 –"-E@ ý  -!% -AF@A!@  %H@AAŒ˜! AA¤˜"A6 A6 A6 A6 Aš6AAº˜"A6 A6 A6 A6 Aš6AA�˜"A6 A6 A6 A6 Aš6AA¤˜"A6 A6 A6 A6 Aš6 AAŽ˜"A6 A6 A6 A6 Aš6AAŽ˜"A6 A6 A6 A6 Aš6 A6 ("( "Aj!  (AvK@  AA™ ( AtjA6  6 A! ("(  AAA™ A6 † "-E@A A·˜"A6 A6 A6 A°¸$6 Û  )"°P@A A·˜"A6 A6 A6 A°¹$6 Û  @@ ° (( (k"A AJ¬B€V@ °A ¬A »$ÂBA ¬ÂAàº$ (( (k"A AJA «ÂAÀº$Â!  °§!@  H@ –"-E@A€¼$ A «ÂA�§Â!   -"AM@ Ì  A ±# A ªÂŠ Í " -E@Að“$ A «ÂA ½$ A ªÂAà¼$Â!  –"-E@A€¼$ A «ÂAð½$Â!   -"A MA @ Ì  Aа# A ªÂŠ Í "-E@Að“$ A «ÂA ¾$ A ªÂAà¼$Â!  (! –"-E@A€¼$ A «ÂAà¾$Â!  -"E@Að“$ A «ÂA ¿$Â!  –"-E@A€¼$ A «ÂAð¿$Â!  -AG! † "-E@A€¼$ A «ÂA°À$Â!  )§!  ((B~B 4"°P~B@@@@@@   A  A  A  A  A  A ¬"±P ­"²Pr B ²B ±€V  ± ²~ "±Pr B ±B °€V  ° ±~ )0"±|"² ± ²V"±Ž " -E   ±70« "-E@   AAÀ˜"ÿ  (   °– "-E@   ( 6 ‘ ! ("( " Aj!  (AvK@  AA™ ( Atj 6  6 Aj!  «  A A·˜"A6 A6 A6  6 Û  A A·˜"A6 A6 A6  6 Û "-E@A - A ("E   Ak(A·FA @  Ak(A·FA E@   A "@ A Š$� Û  (Š A Š$� Û  A!B!° 4!´ ("( ! AAA™ AJ@ (A Atü A6 ("( ! AAA™ AJ@ (A Atü A6 ("( ! AAA™ AJ@ (A Atü A6 A6@ –"-E@A A·˜"A6 A6 A6 A€ $6  @@ -"AK@Aà¡$ A ªÂA€¡$Â!  AA¹˜"A6 A6 A6 A6 Aš!@ ("( J@  ( O@ ( Atj(" "AHA  (( N @A€Ø"Š ‚   ("( O@ ( Atj("E@ ƒ "-E@ ä  ("(1!± (!A A‰˜"A6 B7 B7 A6 ((!  6  °7  ±7  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 @@@@ ((Ak  (!A A‰˜"A6 B7 B7 A6 ((!  6  °7  ±7  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 B!²@ ± ²V@ ( "( "Aj!  (AvK@  AA™ ( AtjA6  6 ²B|!²   AAŠ˜"A6 B7 B7  6  °7  ±7 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  Aà¢$@@@@@@@@@@@@@ ((  AàÏ" A€Ð" A Ð" AÀÐ" AàÐ"  A€Ñ"  A Ñ"  AÀÑ"  AàÑ"  A€Ò"  A Ò"  AÀÒ"  A� ÂA°¢$Â!A A·˜"A6 A6 A6  ° ±|"±BQ ° ±Vr~B ± "°BQ@A A·˜"A6 A6 A6 AÀ£$6  Aj!  °P@A A·˜"A6 A6 A6 AÀ¤$6  °BÿÿÿÿV@A�¦$ °A ¬ÂAÀ¥$Â!  A,A‘˜" A: A6 A6 A6 A6AAý˜"A6 A6 A6 A6 Aš6AAý˜"A6 A6 A6 A6 Aš6 A6A A’˜"AAAýA¤6 A6 A6 6 A A’˜"AAAýA¤6 A6 A6 6$A A’˜"AAAýA¤6 A6 A6 6( : °>AA�˜"A6A A’˜!AA¦˜!AAý˜" 6  ž  6 A6 A6  6 A6 A6  6AAù˜"A6 A:  6 A6  AMAAA AM "6 AF@AA•˜!AA¦˜!AA–˜" 6  ž  6 A6 A6  6AAù˜"A6 A:  6A!@ A H@ (!AAù˜"A6 A: ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!   6 6 A… "-E@ •  ( ((j(� "-E@A A·˜"A6 A6 A6 A�°$6 ì  ´§! (6@ ("A K@Aà±$ A ªÂA€±$Â!   A… "-E@ •  ( ((j(� "-E@A A·˜"A6 A6 A6 A ²$6 ì  (6 (E@ A6 AAý˜"A6 A6 A6 A6 Aš!AAö˜"A: A6 A� 6 A6 A:  6  ž   (" K@Aг$ A ªÂA�§$ A ªÂA�³$Â!  A6 @@ ("("@ AF   ( ±  ( ©  ( "E@ A!@ ("( J@  ( O@ ( Atj("E@ A  © E  Aj!  ( © ! ( ± ! ($ ± ! (( ± !  A� Aà´$ AÀ A°´$ A�´$ "Ak(Av@A µ$ ÂA€µ$Â!  AAý˜"A6 A6 A6 A6 Aš! (!$ ("(  AAA™ A6 ("(  AAA™ A6 A!@ (" (" ("¬BB½"±BS @  H@  Aº  Aº Aj!  AAº˜"A6 A6 A6 A6 Aš! A A�˜"A6 A6 A6  $6 A6 A6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 @ ( "AJ@ ( Ak"Atj"(! A6 6 (! (! (" l" j" ( JA  ( J   $K ~ -AG@ Aj" (OA  ­  AÀI@A! (! A!@  H@  j" ( O@  j" ( O@   (" Atj( At j(K! Aj!  ¬  B ($A² "²BQ  ² "²BS  ² 5Z  ²§" j" ( O@ ( Atj(" (F@ 4 ¬ ­~|BûÿÿÿV A! @  K@ !@  H@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  ( Aj6 Aj!   AM@A!@  K@ 4 ¬|BûÿÿÿV  ( !A!@  H@ ( " Aj" (AvK@  AA™ ( AtjA6  6 Aj!  !A!@  H@A!  j" ( O@ ( ( Atj(k"@ ( ² "²BQ  ²§!  j" ( O@   j ( Atj(rº Aj" (O@A! Aj!  ( Aj6 Aj!   ( (K  ¬B| ±U@   ¬ Aj¬ ±½"±BS  A ( kAkt!   ¾   j"  ( O@ ( Atj(jº~A gk!A! @@ ("("@ AF   ( ²  ~ (!A!B AL A JrA ( E @  J@ At ("@A€ -k!@ ( ( I (AJA @  (Ak6 (" (" (O@  ( j- (Atr6  ("Aÿq! Av l!'  K")@  'j6   'k k6 )  A AGj! Aj!  ­  ( "E@ ~A!B E A Kr @  K@  (( N@B  At  ("( O@ ( Atj(" E@ ("@A€ -k! @ ( ( I (AJA @  (Ak6 (" (" (O@  ( j- (Atr6  ("Aÿq! Av l!' K")@  'j6   'k k6 )  A AGj! Aj!  ­ "²BQ  ²§" Av"K    k"k!  G@ (("(( (" L~BAA (kt! ("( M@  ( Atj(qAG!  (Aj6 (A F@  (Aj6 A6 ­ "²BQ  ²P ! !   !   j"  ( O@ ( Atj(Ajº   ¾ @A A�˜"A6 A6 A6  6  6  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 @A A�˜"A6 A6 A6  6  6  Aj6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  A  A E@Aðµ$ ( A ªÂA�Á (A ªÂA€ÞÂ!  @@@ ("("@ AF   (  (A6  ( "E@ (A6A!@ ("( J@  ( O@ ( Atj("@ A6 Aj!  (  ($ ((AAö˜"A: A6 A� 6 A6 A:  6  ž   A A·˜"A6 A6 A6  6 ì "-E@ ä  (! ( "­ ´R@AЧ$ A ªÂA�§$ ´A ¬ÂAЦ$Â!  ~B ´BQ B ´P B ´B~ °€V  ° ´~ "±BQ@A A·˜"A6 A6 A6 A�¨$6  ( "¬ ±R@AЧ$ A «ÂA�©$ ±A ¬ÂAàÞÂ!  A!@ ("( J@  ( O@ ( Atj("’ "-E@ ä  ("()"±BS@Að“$ A «ÂAЩ$Â!  ~B 4"²BQ B ±P ²Pr B ²B~ ±€V  ± ²~ "±BQ@Að“$ A «ÂA ª$Â!  ("(4 ±T@  ±™ -E@ 4 B†!°A A·˜"A6 A6Að„# ±A ¬ÂAÀ„# °A ¬ÂA�„#Â! A6  Aj!  A!@ ( J@ ( Atj("("AHA  (( N @A€Ø"Š ‚   ("( O@ ( Atj("E@ ƒ "-E@ ä  (!AAÀ˜"ÿ  ("( - ´• "-E@   A: ("(  AAA™ A6  ° ) ) ´ A¼"-E@Aðª$ (A «Â!A - A ("E   Ak(A·FA @  Ak(A·FA E@   A "@  � Û  (Š � Û  ("( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  A!@ ("( J@  ( O@ ( Atj("E@ (AFA (AF A (AF @ ("’ "-E@ ä   ° ) ) ´ ( (¼"-E@Að“$ A «Â!A - A ("E   Ak(A·FA @  Ak(A·FA E@   A "@  � Û  (Š � Û  Aj!  AA‹˜"A6 B7  6  °7 6 ž«  A A·˜"A6 A6 A6  6 Û   6 Û " -E A!@@ ("( J@  ( O@ ( Atj(""AHA  (( N @A€Ø"Š ‚   ("( O@ ( Atj("E@ ƒ "-E@ ä  ("((A F@ (-!AA.˜"A6 A6 A6 A6  š!A!@  H@ €" -@   *¡ Aj! A�›$ A «ÂAàš$ A «Â!  €"-E@Aà›$ A «Â!  *!I –"-E@Aðœ$ A «Â!  -"AK@Að“$ A «ÂAðž$ A ªÂA€ž$Â!A A·˜"A6 A6 A6  6 Û  AA†˜"A6AA.˜"A6 A6 A6 A6  Aš6 C8  AG AMqE@AÀÔ" A «ÂAàÓ"‹ Û   6  Aÿÿÿÿ¢"6  ž  I8 « "-E@   ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@ ( ( J@ † "-E@ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"  AA÷˜"A: A6 A� 6 A6  ("6  ž  ("6  ž   )§"Av! AqE@AA÷˜"A: A6 A� 6 A6 A:  6   AA÷˜"A: A6 A� 6 A6 A: A k6  "-@ (  (º Aj! A Ÿ$ A «ÂA�Á ( ( A «Â!  «  A A·˜"A6 A6 A6  6 Û " -E A!A!B!² (! A6@ E@A A·˜"A6 A6 A6 A€’$6  @@ ("( J@ ( M@ ( Atj("AHA  (( N @A€Ø"Š ‚   ("( O@ ( Atj("E@ ƒ "-E@ ä  (((A F@  (( N@Að“$ A «ÂA “$ A «Â!   ("( O@ ( Atj("E@  (( N@Að“$ A «ÂA ”$ A «Â!   (" ( O@ ( Atj(" E@ ’ "-E@ ä   (¯ "-E@   Aj! Aj!  A!@ ("( J@  ( O@ ( Atj("E@ (’ "-E@ ä  (" ("@ (")!´@@@@@@ (  A  A  A  A  A  A ¬!µ ("("(! (! (!A Aߘ" ("6  ž  A AL" (j6  AH  j"A AJ   J "   J k6A!@  H@~  -  (" 4 ­V@ ( Atj(  A ­!°B ´BQ B ´P °Pr B °B~ ´€V  ° ´~ "¶BQ@A A·˜"A6 A6 A6 A�•$6  B!°@ ° )T@~B )"±BQ ¬"³BQr B ±P ³Pr B ³B~ ±€V  ± ³~ "±BQ~B~B )"³BQ ±BQr B ± ³|"³BQ ± ³Vr  ³ "±BQ~B~B °BQ ±BQr B ° ±|"³BQ ± ³Vr  ³ "±BQ@A A·˜"A6 A6 A6 A�–$6 ± (4 Z@A€˜$ A «ÂAЗ$ °A ¬ÂA —$ (( A «ÂAð–$Â!  ±§" (" ( O@ ( Atj(! ° ²|"± ( 4 Z@A ˜$ ±A ¬ÂA�Á ( ( A «Â!  ±§" ( "( O@ ( Atj(! ~B µBQ °BQr B µP °Pr B °B~ µ€V  ° µ~ "±BQ~B ± ¶|"±BQ ± ¶Tr~B ± "³BQ@A A·˜"A6 A6 A6 Að˜$6  ¬ ­|!·@@@@@ (Ak B!±  B!±  B!±  A  A ³B ±}VA 4 ± ³|T  ³§" (j ·§" : ±BZ@ ( Ajj Av: ±BQ@ ( Ajj Av: ( Ajj Av: A @ °B|!° A°š$@@@@@@@@@@@@@ (  AàÏ" A€Ð" A Ð" AÀÐ" AàÐ"  A€Ñ"  A Ñ"  AÀÑ"  AàÑ"  A€Ò"  A Ò"  AÀÒ"  A� ÂA°˜Â ³A ¬ÂAЙ$ ((A «ÂA çÂŒ Û!A€˜$ A «ÂAЗ$ °A ¬Â!A - A ("E   Ak(A·FA @  Ak(A·FA E@   A "@  � Û  (Š � Û Aj!  ² )|!² Aj!  «  A A·˜"A6 A6 A6  6 Û  Û "-@ Aj! A - A ("E   Ak(A·FA @  Ak(A·FA E@   A "@ A€‹$� Û  (Š A€‹$� Û  «   Atr!@  %H@ A€I~ A… "-E@ •  ( ((j(� "-E@ ä  5 † "-E@ þ  ) "°P@A A·˜"A6 A6 A6 AÀ¿"6 Û   (( (k"A AJ¬!± °PA ° ±B€V @AÀ¿"Š Û  « "-E@   °§!AA¸˜"A6 A6 A6 A6 Aš!AA¤˜"A6 A6 A6 A6 Aš! AAÒ˜"A6 A6 A6 A6 A¨!AA¹˜"A6 A6 A6 A6 Aš! AAº˜"A6 A6 A6 A6 Aš! A!@  H@ –"-E  -"AM@ Ì  A ±# A ªÂŠ Í "-E@ ä  –"-E  -"A MA @ Ì  Aа# A ªÂŠ Í "-E@ ä  –"-E  -"E@Að¯#Š Û  « "-E  –"-E  -AG! AƒI A… "-E@ ’  ( ((j/“ "-E  / † "-E@ þ )§ !AA‚˜"A6 A6 A: A: A6 (!  (6  6  :  :  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@  H@ –"-E@ ý  -! ( "Aj" (K@  AA™ ( j :  6 Aj!  A!@ ( J@ ( Atj(! " ( O@ ( j-E@~B ¬"°BQ 1@@@@@@ (  A  A  A  A  A  A ¬~"±BQr B °P ±Pr B ±B~ °€V  ° ±~ "°BQ@A A·˜"A6 A6 A6 AЋ$6 Û (( (k"A AJ¬ °T@A A·˜"A6 A6 A6 AÀŒ$6 Û 1!° ((B~B ¬"±P~B@@@@@@ (  A  A  A  A  A  A ¬"²P °Pr B °B ²€V  ° ²~ "°Pr B °B ±€V  ° ±~ )0"°|"± ° ±V"°Ž " -E   °70« "-E AAÀ˜"ÿ  ( - ( - ¬– "-E@   ( ( 6 ‘ ! ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  A!A!@ ( J@A  ( j-! Aj!  A Aǘ"A6 A6 A6 A6  6 A !A!@ ( J@ ( Atj(! " ( O@ @@@@@@ ( j-" E@A A·˜"A6 A6 A6 AÀ�$6 Û A Až˜"A6 A6 A;  6  - -Atr;   AAAAAA· "-E  AAÁ˜"A Až˜"A6 A6 A; 6AA†˜"‰  6   à "-E E@A A·˜"A6 A6 A6 A°Ž$6 Û AAš˜"A6 B7 A6  ¬7     AAAAÄ "-E@ ä A Aƒ˜"A6 A6 A6 (! (!  6  6  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  AAÀ˜"A Až˜"A6 A6 A; 6 A:   Á "-E E@A A·˜"A6 A6 A6 A°�$6 Û AAš˜"A6 B7 A6  ¬7     AAAA "-E@ ä A A„˜"A6 A6 A: -! (!  6  6  : ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6  AA˜˜"AA™˜"A6 6 ( 6A Aǘ"A6 A6 A6 A6  6   ³ "-E   A�Á" A ªÂ!  Aj!  A!@ ( J@ ( Atj(!  ( O@ ( j-"AF A€Oq@A!@ ( J@  ( Atj(( F  Aj!  A "AH@A A·˜"A6 A6 A6 A �$6 Û  AHA  (( N @A€Ø"Š ‚   ("( O@ ( Atj("E@ ƒ "-E@ ä  ( O@ ( Atj("E@ ( ( ° "-E@AÀÂ" (Â!   AF A€Oq@A!@ ( J@  ( Atj(( F  Aj!  A "AH@A A·˜"A6 A6 A6 A�‘$6 Û –"-E@ ý -"AM AOqE@A A·˜"A6 A6 A6 A€Ä"6 Û  ( O@ ( Atj("E@  : Aj!  A!@ ( J@ ( Atj("(’ "-E@ ä  ( ( (¯ "-@ Aj! AÐÄ" (Â!  A!@ ( J@ ( Atj(!AAë˜"A6 A6 -"AM AOqE@ ²Û   6« "-E@   (’ "-E@ ä   ( ( A€I¦ "-@ Aj! A Å" (Â!  Aj!  «  A A·˜"A6 A6 A6  6 Û  ý    @A!@@ -AF@AAó˜"A6AAš˜"A6 A6 A6 A6  Aš6AAý˜"A6 A6 A6 A6  Aš6 A6 A:AAý˜"A6 A6 A6 A6  Aš6AAë˜"A6 A6 A6 A6  A¨6 A6 -! -! –"-E@A€Æ#Š Û   -: -"AK@AàÆ# A ªÂŠ Û  Atr"A‚I@  A€IAÐÇ#¶"-E@ þ   A€IA È#¶"-E@ þ  )§!  A€IA€É#¶"-E@ þ  )§! –"-E@AÀÉ#Š Û  -! AÕªÕªK@A Ê#Š Û  ­ ­B~V@A€Ë#Š Û  ­B~Bˆ ­"°B}B °BR °~BˆV@A€Ì#Š Û   A€IA�Í#¶"-E@ þ  )!°  A€IAàÍ#¶"-E@ þ  )!µ ­ °T@AÀÎ#Š Û  ­ ° °B€|V@AÀÏ#Š Û  ° µT@AÐÐ#Š Û   ­"³ (()"¶V@AÀ¯# ³A ¬ÂAÀ…ÂAл#ÂAð®# ¶A ¬Â‰ Û  « "-E@   Aÿÿÿÿ  AÿÿÿÿK6 A‚I@  A€IAÐÑ#¶"-E@ þ  )"²PA ² (( (k"A AJ¬V @A°Ò#Š Û  ( (Aÿÿÿÿ­"(!A Aߘ" ("6  ž  ²§"AH  j"A AJ    J " (j6     J k6A8A²˜"ü  6  :  : ­!²A!A!@  AÿÿqA€IA°‚$¶" -E@ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"  AAô˜"A: A6 A� 6 A6  ("6  ž  ("6  ž   )§"­ ²V@AÐý#Š �  (( (k" A AJ¬ ­T@A€„$ A ªÂAЃ$ (( (k"A AJA «ÂA�ƒ$Š �  AAñ˜" A6 A6 A6 A6 Aš! @ AÿÿqA‚I@@  I@ A… "-E@ •  ( ((j(� " -E@AÀ„$Š �   A… "-E@ •  ( ((j(� "-E@A�…$Š �  –"-E@Aà…$Š �  A Aø˜"A6 A6 A6 -Aq! (!  (6  6  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  @  I@ † " -E@A°þ#Š �  )§! † "-E@A�ÿ#Š �   j" )§"H@A°†$Š �  A Aø˜" A6 A6 A6  k6 6 A6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  ( AJ@ Aƒ -E@Aðÿ#Š �  AA AÿÿqA‚I!A!@ ( J@ -E@Að�$Œ Ž   „ " -E@A€‡$Š �   ( O@ ( Atj("@  (Aq6 Aj!  A: -@  (6  ( )B|B§j6  AÿÿqA€I A… "-E@ •  ( ((j(� "-E@Að‡$Š Û  ( AÿÿqA�I † "-E@Að‡$Š Û  )§A "@ AÿÿqA‚I@A!@  I@ œ-@ Aj! AÀˆ$Š Û  A!@  I@ † -@ Aj! A�‰$Š Û  « "-E@ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"  AAô˜"A: A6 A� 6 A6  ("6  ž  ("6  ž   AAð˜"A6 B7 4!²  6  ²7AAô˜"A: A6 A� 6 A6 A:  6  ž   "-E@ ä  ("(! )!´ AÿÿqA‚I@AAñ˜"A6 A6 A6 A6 Aš!AAõ˜"A: A6 A� 6 A6 A:  6  ž   † "-E@A€ý#Š ›  )"³ ­V@AÐý#Š ›  AAñ˜"A6 A6 A6 A6 Aš! ³BR@A!@ ² ³T@ † "-E@A°þ#Š ›  )§! † "-E@A�ÿ#Š ›   j" )§k!A Aø˜"A6 A6 A6  6  6 A6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ²B|!²  ³BR@ Aƒ -E@Aðÿ#Š ›  A!@ ( J@ -E@Að�$Œ Ž  A„ "-E@A€�$Š ›   ( O@ ( Atj("@  (AG6 Aj!  A: -@  (6  ( )B|B§j6 AAõ˜"A: A6 A� 6 A6 A:  6  ž  "-E@ ä  (! 4 µV@AÀÓ# µA ¬ÂA�Ó# ( A «ÂA �Š Û   -AFA -AF AAý˜"A6 A6 A6 A6 Aš °P@AAý˜"A6 A6 A6 A6 Aš!AAö˜"A: A6 A� 6 A6 A:  6  ž   Aƒ "-E@Aðù#Š ì  AAò˜"A6 B7 B7 )!² (" (! ("AH  j"A AJ    J !A Aߘ" ("6 ž ( j6    J k6  6  ² (4"³ ² ³TB†7AAý˜"A6 A6 A6 A6 Aš!B!²@ ° ²V@A!A! A ) )"³B|T @ E@ (( ³ ­|"¶Bˆ§j- ¶Bƒ§uAq tr! Aj!   ³B|7 "AH@Aàú#Š ì  @@@@@@ A!A! A ) )"³B|T @ AI@ (( ³ ­|"¶Bˆ§j- ¶Bƒ§uAq tr! Aj!   ³B|7 "AH@A°û#Š ì AtArA " A  A  A  A  A  A " AH@@@@@@@  AAõ˜"A: A6 A� 6 A6 A: A6   AAõ˜"A: A6 A� 6 A6 A: A6   AAõ˜"A: A6 A� 6 A6 A: A6   AAõ˜"A: A6 A� 6 A6 A: A6   AAõ˜"A: A6 A� 6 A6 A: A6   A�ü# A ªÂŠ Ž "-@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"  AAö˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž   ( " Aj" (AvK@  AA™ ( Atj 6  6 ²B|!²  A: -@  (6  ( )B|B§j6 AAö˜"A: A6 A� 6 A6 A:  6  ž  "-E@ ä  ( !B ­"² µ| µB ²}V!²A!A! A! -AFA -AF E@ 4 !° (( (k"A AJ¬"µBRB µ€BTA ~B µB† !µ °P@AAí˜"A6 A6 A6 A6 A6 A6 ³6 ³6AAý˜"A6 A6 A6 A6  Aš6  6  žAAý˜"A6 A6 A6 A6  Aš"6  žAA¯˜"A: B7 A� 6 A6 A: B7   - -Atr!AAù˜""A6 A: A‚I@ -AFA -AF @ Aƒ "-E@AÀÕ#Š †  B °B~B °€BT"¶ (( (k"A AJ¬"³BRB ³€BTA ~B ³B† "³ ³ ¶V!¶AAò˜"A6 B7 B7 )!³ (" (! ("AH  j"A AJ    J !A Aߘ" ("6 ž ( j6    J k6  6  ³ (4"· ³ ·TB†7AAë˜"A6 A6 A6 A6 A¨! @@ ± ¶Z A!A! A ) )"³B|T @ E@ (( ³ ­|"·Bˆ§j- ·Bƒ§uAq tr! Aj!   ³B|7 "AH ( " Aj" (K@ AA™ ( j AG: 6 ±B|!±  A: -@  (6  ( )B|B§j6 Aƒ "-E@A°Ö#Š †  ° (( (k"A AJ¬B†"± ° ±T!¶AAò˜"A6 B7 B7 )!± ("(! ("AH  j"A AJ    J !A Aߘ" ("6 ž ( j6    J k6  6  ± (4"³ ± ³TB†7AAë˜"A6 A6 A6 A6 A¨!B!±@@ ± ¶Z A! A!A ) )"³B|T @ E@  (( ³ ­|"·Bˆ§j- ·Bƒ§uAq tr! Aj!   ³B|7  " AH ( "Aj" (K@  AA™ ( j AG:  6 ±B|!±  A: -@  (6  ( )B|B§j6   © ! A(Aþ˜!AAí˜"A6 A6 A6 A6 A6 A6 ³6 ³6AAý˜" A6 A6 A6 A6  Aš6  6AAë˜"A6 A6 A6 A6  A¨6 A6 B7AAý˜"A6 A6 A6 A6  Aš6AA»˜"½  6AAý˜"A6 A6 A6 A6  Aš6  ­"±>  ²§"A AJ¬7AAÿ˜"A: A6 A� 6 A6 A:  6  ž -E@ ˆ  ± µ ± µT!µ (!AA–˜"A6 A6 A6 A6 Aš! E A‚Ir! -AF@ Aÿq I@AAù˜"A6 A:  © E@A�×#Š †  ( " Aj" (AvK@ AA™ ( Atj" 6 At Ÿ 6 Aj!   A… "-E@ •  ( ((j(� -E@A�Ø#Š †  AAù˜" A6 A: © E@A€Ù#Š †  AÈA�˜"A6 B7AA¤˜"A6 A6 A6 A6  Aš6 A6 A6 A6 A6 A6$ A:( A6, A60AAý˜"A6 A6 A6 A6  Aš64 A68A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6!=!8  ?8  @8  A8  B8$  C8(  D8,  E80  F84  G88  H8<  6 Aj!  AA£˜"A€A¦˜"6  6 A€6 A6 A!@  H@A°*!IA¬*!JA¨*!KA¤*!LA *!NAœ*!OA˜*!SA”*!MA�*!TAŒ*!UAˆ*!VA„*!WA€*!eAü*!iAø*!jAô*!l ( "Aj" AÿÿÿK@ At" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" l8  j8  i8  e8  W8  V8  U8  T8  M8  S8$  O8(  N8,  L80  K84  J88  I8<  6 Aj!  AAë˜"A6 A6 A6 A6  ¨!A!@  H@  A© Aj!  A!@  H@ !A!AA¦˜!AA¤˜" 6 ž 6 A6 A6 @@  ( O@ A A �J ( j- ( "Aj" (AvK@ AA™ ( Atj 6 6  ( O@ ( Atj("AH Aj!  ( Ak!@ AN@ ( M@ ( Atj(" ( O@ ( Atj("AN@  ( O@  ( O@ ( Atj"* * * * * * * * * *$ *( *, *0 *4 *8 *< ( Atj"* * * * * * * * * *$ *( *, *0 *4 *8 *<ã!H!G!F!E!D!C!B!A!@!?!>!=!8  ?8  @8  A8  B8$  C8(  D8,  E80  F84  G88  H8<  ( O@ ( Atj"*!=! ? @ A B C D E F G Hã!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G H f … „ ƒ ‚ � €  ~ m k d b c h gAå!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G Hã!H!G!F!E!D!C!B!A!@!?!>!=!8  ?8  @8  A8  B8$  C8(  D8,  E80  F84  G88  H8< *  * *, *<  * * * * * * * *$ *( *0 *4 *8é!a!`!_!^!]!\![!Z!Y"X8@  Y8D  Z8H  [8L  \8P  ]8T  ^8X  _8\  `8`  a8d *L"I *P"J J’"N”!O I *T"K K’"M”!TC€? J N”"V K M”"S’“!K O *X"U M”"W’!L T U N”"i“!N O W“!OC€? I I I’"I”"W S’“!S J M”"J U I”"I’!M T i’!T J I“!UC€? W V’“!VC!Jó "(! ( ! (! -@ K L N O S M T U V á!R!Q"P Q R Þ K L N O S M T U V á!R!Q"P Q R Þ” K L N O S M T U V á!R!Q"P Q R Þ K L N O S M T U V á!R!Q"P Q R Þ”’‘!W W#íC€A”^@ K L N O S M T U V á!R!Q"P Q R Þ K L N O S M T U V á!R!Q"P Q R Þƒ !I W K L N O S M T U V á!R!Q"P Q R Þƒ !W K L N O S M T U V á!R!Q"P Q R Þ K L N O S M T U V á!R!Q"P Q R ÞŒƒ !J K L N O S M T U V á!R!Q"P Q R ÞŒ K L N O S M T U V á!R!Q"P Q R Þƒ !I W K L N O S M T U V á!R!Q"P Q R Þƒ !W  K L N O S M T U V á!R!Q"P Q R Þ K L N O S M T U V á!R!Q"P Q R Þ” K L N O S M T U V á!R!Q"P Q R Þ K L N O S M T U V á!R!Q"P Q R Þ”’‘!W W#íC€A”^@ K L N O S M T U V á!R!Q"P Q R Þ K L N O S M T U V á!R!Q"P Q R Þƒ !I K L N O S M T U V á!R!Q"P Q R ÞŒ Wƒ !W K L N O S M T U V á!R!Q"P Q R Þ K L N O S M T U V á!R!Q"P Q R Þƒ !J K L N O S M T U V á!R!Q"P Q R ÞŒ K L N O S M T U V á!R!Q"P Q R Þƒ !I K L N O S M T U V á!R!Q"P Q R ÞŒ Wƒ !W -@ WŒ!W JŒ!J IŒ!I -E@ J!K I!J K!I A$A¼˜!A¤*!KA *!L Aœ*8  L8  K8A¤*!KA *!L Aœ*8  L8  K8A¤*!KA *!L Aœ*8  L8  K8 *d!K *`!L  *\ e”8  L e”8  K e”8  ICá.eB”8  WCá.eB”8  JCá.eB”8 *H!I *D!J  *@8  J8  I8 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  #Aðj$  #Aðj$A ! (! ("AN  (4"( O@ ( Atj("E@ (A !   A€¾      @@@@ ( A€¾  AÀœ!  A œ!  Aàœ! ! , ¦úÆ!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G HÊ !H!G!F!E!D!C!B!A!@!?!>!=! ? A B C E F Gé!a!`!_!^!]!\![!Z!Y"X!M ["IC€? I I” \"K K”’ ]"L L” ^"N N”’’‘•"J”"I K J”"K K’"O”!T I L J”"S S’"L”!UC€? K O”"V S L”"S’“ T N J”"J L”’ U J O”“C€? I I I’"I”"N S’“ K L”"K J I”"I’ K I“C€? N V’“  !R!Q"P!I  _8  `8  a8  I8  Q8  R8  M8  Y8$  Z8(  6t  ž  6AGAAƘ"A6AAŘ"A6 A� 6  6AAŘ"A6 A� 6  66  6 A "6,  ž  -:p 1AN 1 ( HA @A Aǘ"A6 A6 A6  6  16 A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 0@A Aǘ"A6 A6 A6 0(! 0(!  6  6  6 %( "Aj" %(AvK@ % AA™ %( Atj" 6 % At  Ÿ % 6 " ("( O@ ( "Atj("AN  (8( HA   (8"( O@ ( Atj("E@ ((ANA @A Aǘ"A6 A6 A6  6  6 A6 (( "Aj" ((AvK@ ( AA™ (( Atj" 6 ( At  Ÿ ( 6   0E 6AFq!  ( AJA @ -! A!AÀA…˜"Û A°«!AAÿ Aà«!AAÿ@ ( J@ ( Atj(""*!I *!J *!K#!°#B|$  °78 ( K J IÕÆ! A€#!°#B|$  °78 A°«!þ"AN  ((" ( O@ ( Atj("E@ A " @ * !I *!J *!KA A£˜"A6 D9 C8 C8 C8 A6  K8  J8  I8 (  † #!°#B|$  °78 Aà«!þ"AN  ((" ( O@ ( Atj("E@ A " @ *!I *!J * !KA A£˜"A6 D9 C8 C8 C8 A6  K8  J8  I8 (  † Aj!  ("(( MA  ("( O@ ( Atj( "E@A ÷ö E@   (ÄA  (A ¬!  Ë!AˆAט"ÕAAĘ"A6 A6 A6 A6 A6 A6 A6  6  ž  6  6 *(!I *$!J * !K *!L *!N *!O *!S * !M  *8  M8  S8  O8  N8  L8  K8  J8$  I8(  (,"AAƘ"A6AAŘ"A6 A� 6  6 (! (»!  6  6 A "6,  ž  (tAAÿÿÿÿ»"6t  ž  :p (x!A AÔ˜"A6 A6 A: C€?A°«!AAœ*A *A¤*Aà«!¿! AЬ!6  6 A: ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A:r ( Æ! (Aj6 (,!  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ AàŽ (ÂAÀŸ! ( A «ÂAО!  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (ÂA€�!Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("@ ( Ak!@ AN@A AŘ"A6 A6 A6  ( O@  ( Atj(6  6 A6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Ak!   AA¦˜!AAœ˜" 6  ž  6 A6 A6 A!@ ("( J@  ( O@ ( Atj("E@ " ( O@ ( Atj("$Ì!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G HAå!H!G!F!E!D!C!B!A!@!?!>!=!8  ?8  @8  A8  B8$  C8(  D8,  E80  F84  G88  H8<  ,6@AAµ˜"AA¶˜"Ú 6 A6 A6 AAA¹A¤6 B7#J!°#JB|$J  °7 -2!'A!#A�¥ÁkA€I@ #A€k"$ (( !"AA£˜"A€A¦˜"6  6 A€6 A6 A!@  "H@ " ( "( O@  ( Atj"* * * * * * * * * *$ *( *, *0 *4 *8 *!=! ? @ A B C D E F G HË !H!G!F!E!D!C!B!A!@!?!>!=!8  ?8  @8  A8  B8$  C8(  D8,  E80  F84  G88  H8<  6 Aj!   6  žAA£˜"A€A¦˜"6  6 A€6 A6 A!@  "H@ " ("( O@ ( Atj(" ("( O@  ( Atj"* * * * * * * * * *$ *( *, *0 *4 *8 *<Ë !H!G!F!E!D!C!B!A!@!?!>!=!8  ?8  @8  A8  B8$  C8(  D8,  E80  F84  G88  H8<  6 Aj!  AA¦˜!AA¤˜" 6 ž 6 A6 A6 A!@  "H@  ("( O@ ( Atj(" ("( O@ ( Atj("AN ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(! @ @ ("AqE@ ( F  A~q!  A A  ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(! @ @ ("AqE@ ( F  A~q!  A "E@ (A ! ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  AA¦˜!AAù˜" 6  ž  6 A6 A6 A!@  "H@AA¦˜!AA¤˜" 6  ž  6 A6 A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@  "H@  ( O@ ( Atj("AN@  ( O@ ( Atj("E@ ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  AA¦˜!AA¤˜" 6  ž  6 A6 A6 AA¦˜!AA¤˜" 6  ž  6 A6 A6 A!@  "H@A! !@@  ( O@ ( Atj(AH Aj!  ( O@ ( Atj(!  "L  ( "Aj" (AvK@  AA™ ( Atj 6  6 ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  AA¶˜"A76  6 ( (  AA¦˜!AAý˜" 6  ž  6 A6 A6 AA¦˜!AA˜" 6  ž  6 A6 A6 A!@  "H@ ( "Aj" (AvK@  AA™ ( AtjA6  6 ( "Aj" (AvK@  AA™ ( Atj"A� 6  At A� Ÿ  6 Aj!  @ ( J@ ( Atj(" ( O@ ( Atj"*0!I *< *8!J *4!K  I8  K8  J8A!  ( O@ ( Atj(AN  ( O@ ( Atj(" ( O@ ( Atj(AGA @  ( O@ ( Atj(" ( O@ ( Atj(" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ‹! AA̘"AàA¦˜"6  6 Aà6 A6  ( O@ ( Atj(" E@ A!@ ( J@ ( Atj(" ( O@ ( Atj"*0!I *< *8!J *4!K ( ")Aj"AÕªÕ*K@ A l" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( )A lj" I8  K8  J8  6 Aj!  A¨*!IA¤*!J A *8  J8  I8 ( AJ@A!C!LC!IC!N@  ( "H@  M@ N ( A lj"*’!N L *’!L I *’!I Aj!   N ( ²"J•8  I J•8  L J•8 *"K"I I“C[ * "I I“C[q *"J J“C[q I *“"I I” K *“"I I”’ J *“"I I”’‘C½7†5]A @CÍÌL>!I @ * *“"J J” * *“"J J”’ * * “"J J”’‘"JC½7†5^@ J!I  ( O@ }C€? ( Atj"*"S"J J” *"K K”’Aà*!NAÜ*!MAØ*!L * *"O O”’‘•"J J“C[ JC^q@ S J”!L O J”!N K J”  M !J *!K *!O  * L I”’8  O J I”’8  K N I”’8  ("( O@ ( Atj(" (8"( O@ ( Atj("E@ A! ("A ‰ "  ŒAF  A �Æ"AN@  AjAÿÿÿÿÈ"Ak(AvAF@ Ak(Av" J@  MA  Atj/ "A0H A9Jr@A  Aj!  A A @ A È! A!@ A�ÎH@  A � ¬˜ Â"ŒAF@   Aj!  A � ((( A ªÂ " ! *!I *!J *!K * !L *!N *!OAÄA²˜"Ø  6  ž  I8  J8  K8  L8  N8  O8  L I“"I I” N J“"I I”’ O K“"I I”’‘"ICÍÌÌ=”"J J\}C·Ñ8 JC·Ñ8— 80  ICÍÌL=”"J J\}C·Ñ8 JC·Ñ8— 84  IC€>”"I I\}C·Ñ8 IC·Ñ8— 8( ( M@ } *!I *!K *!S * !J *!M *!T ( Atj"* !L *$!N *, *(!O#A�¥ÁkAI@ #Ak"$C€? J I“"J J” M K“"K K”’ T S“"S S”’‘•"I I“C[ IC^q@ J I” K I” S I”  CCC !R!Q"P!I@ Q"JA *[Aœ* I[q R"KA¤*[q I J KCÏ!’!‘!�!�!Ž!�!Œ!‹!Š  L I L I” N J”’ O K”’"L”“8  N J L”“8  O K L”“8 *"L L” *"N N”’ *"O O”’C̼Œ+] � ‘ ’ LC€? L L” N N”’ O O”’‘•"L” N L” O L” I J KÐ!I#Aj$ I  #Aj$C 8  ( O@  ( Atj(AN  ( O@ ( Atj(" ( O@ ( Atj(A 6   * *“"I I” * *“"I I”’ * *“"I I”’‘C·Ñ8]A :$ ("(( ! ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (Aj6   º   œ Aj!  A!@ '  ( HA  -A E@ ( M@ ( Atj(" ( O@ ( Atj(AG@  ( O@ A! ( Atj"* * * * * * * * * *$ *( *, *0 *4 *8 *!=! ? @ A B C D E F G H  ( O@ ( Atj(" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ Š!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G Hã!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G Hä!@ AH@ ( O@ A ( Atj*CC€? Ao“‹C¬Å'7^  Aj!  A E@ A: Aj!  AA£˜"A€A¦˜"6  6 A€6 A6 A!@  "H@A°*!IA¬*!JA¨*!KA¤*!LA *!NAœ*!OA˜*!SA”*!MA�*!TAŒ*!UAˆ*!VA„*!WA€*!fAü*!gAø*!hAô*!c ( "Aj" AÿÿÿK@ At" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" c8  h8  g8  f8  W8  V8  U8  T8  M8  S8$  O8(  N8,  L80  K84  J88  I8<  6 Aj!  A!@ ( J@ ( Atj("" ( O@ ( Atj(" AG@ ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ Š!H!G!F!E!D!C!B!A!@!?!>!=!!M =!T !=! ? @ A B C D E F G HAå!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G Hã!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G H O h V U T M K J g f W c L S N Iã!H!G!F!E!D!C!B!A!@!?!>!=!!M =!T !=! ? @ A B C D E F G H  ( O@ ( Atj"* * * * * * * * * *$ *( *, *0 *4 *8 *<ã!H!G!F!E!D!C!B!A!@!?!>!=!8,  ?80  @84  A88  B8<  C8@  D8D  E8H  F8L  G8P  H8T *$ *4 *D *T  * * * *( *, *0 *8 *< *@ *H *L *Pé!a!`!_!^!]!\![!Z!Y"X8X  Y8\  Z8`  [8d  \8h  ]8l  ^8p  _8t  `8x  a8| *`!b *\!d  *X8€  d8„  b8ˆ ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ *|!b *x!d  *t8Œ  d8�  b8” -$@A¤*!bA *!d Aœ*8Œ  d8�  b8”  *d"bC€? b b” *h"d d”’ *l"k k” *p"m m”’’‘•"b”8˜  d b”8œ  k b”8   m b”8¤ *�A *“‹C¬Å'7_ *ŒAœ*“‹C¬Å'7_q *”A¤*“‹C¬Å'7_q *œA¬*“‹C¬Å'7_ *˜A¨*“‹C¬Å'7_q * A°*“‹C¬Å'7_q *¤A´*“‹C¬Å'7_qA  *„A¬*“‹C¬Å'7_ *€A¨*“‹C¬Å'7_q *ˆA°*“‹C¬Å'7_qA E@ *”!b *�!d (@" *Œ8 d8 b8 *¤!b * !d *œ!k (@" *˜8 k8 d8 b8 *ˆ!b *„!d (@" *€8 d8 b8$ O h V U T M K J g f W c L S N I (@ -$‰!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G Hã!H!G!F!E!D!C!B!A!@!?!>!=!8  ?8  @8  A8  B8$  C8(  D8,  E80  F84  G88  H8< Aj!  (AF@  ( AJ ((" ( O@ ( Atj(A 6 -@A!@ ( J@ ( Atj(" ( O@ ( Atj("AG@  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ A¤*!IA *!J (@"Aœ*8  J8  I8A´*!IA°*!JA¬*!K A¨*8  K8  J8  I8A°*!IA¬*!J A¨*8  J8  I8$ Aj!  A!@ ( J@ ( Atj(" " ( O@ ( Atj("AG@  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ Š!H!G!F!E!D!C!B!A!@!?!>!=!!ƒ =!„ !=! ? @ A B C D E F G HAå!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G Hã!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G H c i e … „ ƒ ‚ � €  ~ m k d b jã!H!G!F!E!D!C!B!A!@!?!>!=!!U =!V !=! ? @ A B C D E F G Hã!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G H c i e … „ ƒ ‚ � €  ~ m k d b jã!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G Hã!H!G!F!E!D!C!B!A!@!?!>!=! ? A B C E F Gé!a!`!_!^!]!\![!Z!Y"X8¨  Y8¬  Z8°  [8´  \8¸  ]8¼  ^8À  _8Ä  `8È  a8Ì *Ì!c *È!b  *Ä8Ð  b8Ô  c8Ø -$@A¤*!cA *!b Aœ*8Ð  b8Ô  c8Ø  *´"cC€? c c” *¸"b b”’ *¼"d d” *À"k k”’’‘•"c”8Ü  b c”8à  d c”8ä  k c”8è *°!c *¬!b  *¨8ì  b8ð  c8ô *ÔA *“‹C¬Å'7_ *ÐAœ*“‹C¬Å'7_q *ØA¤*“‹C¬Å'7_q *àA¬*“‹C¬Å'7_ *ÜA¨*“‹C¬Å'7_q *äA°*“‹C¬Å'7_q *èA´*“‹C¬Å'7_qA  *ðA¬*“‹C¬Å'7_ *ìA¨*“‹C¬Å'7_q *ôA°*“‹C¬Å'7_qA E@ *Ø!c *Ô!b (@" *Ð8  b8  c8 *è!c *ä!b *à!d (@" *Ü8  d8  b8  c8 *ô!c *ð!b (@" *ì8  b8  c8$ h L S O V U T M K J g I f W N l (@ -$‰!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G Hã!H!G!F!E!D!C!B!A!@!?!>!=!8  ?8  @8  A8  B8$  C8(  D8,  E80  F84  G88  H8< Aj!  #J!°#JB|$J  °7#A€j$ ("(( $MA $ ("( O@ ( $Atj( "E@A ÷ö E@ ("(AF@  6  ž ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A! @ ( J@ ( Atj("(" ( O@ ( Atj(" Ì!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G HAå!H!G!F!E!D!C!B!A!@!?!>!=!8D  ?8H  @8L  A8P  B8T  C8X  D8\  E8`  F8d  G8h  H8lAàÖ*!IAÜÖ*!JAØÖ*!KAÔÖ*!LAÐÖ*!NAÌÖ*!OAÈÖ*!SAÄÖ*!M AÀÖ*8  M8  S8  O8  N8  L8  K8  J8$  I8( (" ( O@ ( Atj("E@ AA¦˜!AAÙ˜" 6  ž  6 A6 A6 A!@ ( J@AAÕ˜"A� 6 A:  ( O@ ( Atj("E@  6 A: ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6|  ž (x!A AÔ˜""A6 A6 A:A AИ"A6 A: A: A:  6 A: A: A: A�š!6  6 A: ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!@ (( J@ (( Atj("(" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (,!A°*!IA¬*!JA¨*!KA¤*!LA *!NAœ*!OA˜*!SA”*!MA�*!TAŒ*!UAˆ*!VA„*!WA€*!fAü*!gAø*!h Aô*8@  h8D  g8H  f8L  W8P  V8T  U8X  T8\  M8`  S8d  O8h  N8l  L8p  K8t  J8x  I8| @  (Ì!H!G!F!E!D!C!B!A!@!?!>!=!8T  ?8X  @8\  A8`  B8d  C8h  D8l  E8p  F8t  G8x  H8| (" ("(( OA  ("( O@ ( Atj( "E@A ÷ö @  *@ *D *H *L *P *T *X *\ *` *d *h *l *p *t *x *|Aå!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G H (" ("( O@ , ( Atj"* * * * * * * * * *$ *( *, *0 *4 *8 *<Ê !H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G Hã!H!G!F!E!D!C!B!A!@!?!>!=!8D  ?8H  @8L  A8P  B8T  C8X  D8\  E8`  F8d  G8h  H8l Aj!  A!@ %( J@ %( Atj("(" ( O@ ( Atj(! (" ("( O@ ( Atj("E@  ("! (" ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@  ( F  A~q!  A  (" ( O@ ( Atj("E@  ("! ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (" ( O@ ( Atj("E@ A� ! Ì!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G HAå!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G H , ( Atj"* * * * * * * * * *$ *( *, *0 *4 *8 *<Ê !H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G Hã!H!G!F!E!D!C!B!A!@!?!>!=!8D  ?8H  @8L  A8P  B8T  C8X  D8\  E8`  F8d  G8h  H8l Aj!  -0@AèAº˜"A6 A6 C8 C8 C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ C8D C8H A6L A6P A6T A6X A6\AA¦˜!AAý˜" 6  ž  6 A6 A6  6`AA¦˜!AA¤˜" 6  ž  6 A6 A6  6d *!I *!J *!K * !L *!N *!O *!S *!M * !T *$!U *(!V *,!W *0!f *4!g *8!h *!=!"™ ?"š @"› A"œ B"� C"ž D"Ÿ E"  F"¡ G"¢ H"£ “É !A!@ ("( J@ " ( O@ ( Atj("@ ( "A  ! !AA¦˜!AAµ˜" 6  ž  6 A6 A6 A!@ ("( J@ ( M@ ( Atj("E@ ("("AHA  (8( N @A�Å $ AAÐÊA�Å Â" Ak(A~q7#" ( "AF@AÐà ö @AA£˜"A6 A6 A6 A6  6  6  "6  #6 (" (("( O@ ( Atj("E@ (! ø!  ( O@ ( Atj("E@ A ( ( (AA¢£" E A Aç˜"A6 A6 A6 (Av"AÿÿÿÿK@  At"A¦˜"6  6  6A!@ (Av J@ ( Atj* N”CzD”"J�!I (Av M@ ( Atj IC€? J˜’ I J I“‹C?`CzD•8 Aj!   ("( O@ ( Atj("E@  (" ( O@ ( Atj(" E@ (" ("( O@ ( Atj("E@ ( " AF@AÐà ö A ù"E  AF! (ö! (AFA (AvAA l" (Av oA   (Av mÇ  ((Ç !A (Av" ( AA  lHA AAΘ"A6 A: A6 A6  6  : AA AFA AG6  6  " E@AàŽ ÂA ¡!ÂA°©! AF Aà©! AF A€ª! AF A ª! ÂAÀ !Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ( È ! AF@ ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E@AàŽ ÂAÀ¡!Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6   ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (!AA¦˜!AA˜" 6  ž  6 A6 A6  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ("(A ( "@A!@ ( "( J@  ( O@ ( Atj("E@ (! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  ( E@AàŽ ÂAà£!  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (ÂAà¢!Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  AA¦˜!AA¾˜" 6  ž  6 A6 A6 A!@ ( J@AAИ"A6 A6  ( O@ ( Atj("E@ A ¤! ÂA€¤!Â6 A6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  ( !AA¦˜!AA½˜" 6  ž  6 A6 A6 A!@ ((Av J@ - AlAj  " ( " ( O@ ( Atj("E@ È! A!A! -@ Al" ( " ( O@ ( Atj("E@ È! AlAj" ( " ( O@ ( Atj("E@ È! AA͘" C8 A6 A6 A6  ("(AvO@ ( Atj*!I  ( "  H¢! I8 6 6 6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  ! @ (! (" ("( N   ( O@ ( Atj(!  ( ( NA  ( "( O@ ( Atj("E@ ( N   ( "( O@ ( Atj("E@ ( O@ ( Atj("E@   (("( O@ ( Atj("E@  ( "( O@ ( Atj("E@ #A�¥ÁkAÀI@ #A@j"$  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ @ ("(AF (A "E  Œ" AF ("(( OA ("( O@ ( Atj( " E@A ÷ö E@  Š!H!G!F!E!D!C!B!A!@!?!>!=!8  ?8  @8  A8  B8$  C8(  D8,  E80  F84  G88  H8!=!!e =!i !=! ? @ A B C D E F G H I † l j i e W S O L V U T M K Jã!H!G!F!E!D!C!B!A!@!?!>!=!8  ?8  @8  A8  B8$  C8(  D8,  E80  F84  G88  H8<  S8@  M8D  T8H  U8L  J I”8P  K I”8T  L I”8X  V8\  W8`  e8d @ A:h ("( O@  ( Atj"* * * * * * * * * *$ *( *, *0 *4 *8 *!=! ? @ A B C D E F G H * * * * * * * * * *$ *( *, *0 *4 *8 *<ã!H!G!F!E!D!C!B!A!@!?!>!=!8€  ?8„  @8ˆ  A8Œ  B8�  C8”  D8˜  E8œ  F8   G8¤  H8¨ #A@k$   #A@k$A " E AЃ AF A „ AF Aðå ! AA AG!AA¦˜!AA¾˜" 6  ž  6 A6 A6 A!@  K@AAИ"A6 A6 A€©! ÂAà¨! Â6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AA¦˜!AA½˜" 6  ž  6 A6 A6 A!@ ((Av J@ - AlAj  " ( "( O@ ( Atj(" E@ #A�¥ÁkAI@ #Ak"$ *H!J *D!K *@!M *X!I *T!L *P!O  *L8  O8  L8  I8 *d!T *`!U *\!V AF@ (AvE@ (*!M (AvAM@ (*!K (AvAM@ (*!J AF@ (AvE@ (*!I (AvAM@ (*!L (AvAM@ (*!O (AvAM@ (* !S  I8  L8  O8  S8 *"L"I I” *"W"I I”’ *"S"I I” * "I I”’’C̼Œ+^} LC€? L L” W W”’ S S” I I”’’‘•"e”!O S e”!S W e”!L I e”A°*!SA¬*!LA¨*!OA´* !I  O8  L8  S8  I8  (AvE@ (*!V (AvAM@ (*!U (AvAM@ (*!T V U T * * * * M K J¹!H!G!F!E!D!C!B!A!@!?!>!=!!e =!i !=! ? @ A B C D E F G Hã!H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G H *l *p *t *x *| *€ *„ *ˆ *Œ *� *” *˜ *œ *  *¤ *¨ã * * * * * * * * * *$ *( *, *0 *4 *8 *<  I † l j i e W V U T M S O L K JÊ !H!G!F!E!D!C!B!A!@!?!>!=! ? @ A B C D E F G Hã !H!G!F!E!D!C!B!A!@!?!>!=! ? A B C E F Gé!a!`!_!^!]!\![!Z!Y"X8 Y8 Z8 [8 \8 ]8 ^8 _8 `8 a8$@ AF@ *$!I * !J *!KA A¦˜! AA.˜" 6  ž  6 A 6 A6 ( K8 ( J8 ( I8  AF@ * "IC€? I I” *"J J”’ *"K K” *"L L”’’‘•"I”!SAA¦˜! AA.˜" 6  ž  6 A6 A6 ( L I”8 ( S8 ( J I”8 ( K I”8  *!I *!J *!KA A¦˜!AA.˜" 6 ž 6 A 6 A6 ( K8 ( J8 ( I8#A0j$  #A0j$  !  O8  6 A6 A6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ! ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E@AàŽ ÂA ¡!ÂA°©! AF Aà©! AF A€ª! AF A ª! ÂAФ!Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6   ("( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@  (!A!A ("( "E ALr  (!@  J@  Atj( F@   Aj!  A AN@AàŽ ÂAà£!  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (ÂA�¦!ÂA°©! AF Aà©! AF A€ª! AF A ª! ÂAÐ¥!Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  AЃ "AF A „ AF Aðå !AA AG! AA¦˜!AA¾˜" 6  ž  6 A6 A6 A!@  I@AAИ"A6 A6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  "( ! AˆAј" A6 C8 C8 C8 C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ C8D C8H C8L C8P C8T C8X C8\ C8` C8d C8h C8l C8p C8t C8x C8| C8€ C8„ 6 f8 g8 h8 c8 b8 d8 k8 m8 ~8$ 8( €8, �80 ‚84 ƒ88 „8< …8@ ”8D •8H –8L —8P ˜8T ™8X š8\ ›8` œ8d �8h ž8l Ÿ8p  8t ¡8x ¢8| £8€ “8„AA¦˜!AA½˜" 6  ž  6 A6 A6 A!@ ((Av J@ - AlAj  " ( "( O@ ( Atj("E@ Ì !A!A! -@ Al" ( "( O@ ( Atj("E@ Ì ! AlAj" ( "( O@ ( Atj("E@ Ì ! AA͘"C8 A6 A6 A6  ("(AvO@ ( Atj*!I  ( " H¢!  I8  6  6  6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ! A! ( J ( Atj("( F ( Aj!  A "E@AAј"A� 6 AAAÒA¤6  6 AAAÒA¤6AAϘ"A6 A6  6  6 ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 ! ! ! (!A!@ ( J@ ( Atj("(! (! A!A!@ ("( J@  ( O@ ( Atj("E@  ( Ä ( FA  Aj!  A "AH@ (" ( "AJ@A!@ AJ@ Am" j" ( O@ ( Atj("E@ ( ÷ "AH   ( I @ !  k!  Aj   ( O@ ( Atj("E@ ( ÷ "AH   ( I ! ( AAט"A� 6 A6 AAAØA¤6 A6 A:  6  6 AAAØA¤6 A6 A: ó !  ("( O@ ( Atj("E@ A!@ ( J@  ( Atj("(( H@ *!I  ("( O@ ( Atj*!JA!A! @ ("( J@  ( O@ ( Atj("E@  * I“‹C ×#<]  Aj!  A "AN  ("( O@ ( Atj("E@ J *“!I  J8  * I’8  * I’8AA0AÖ˜"C8 C8 A6 A6 C8 C8 C8 C8 A6 C`ÍÙ?8$ CÍÌL?8( C33ƒ@8,  I8  J8 A6 A6  IC€¿’8  J8  IC€?’8  J8 A6 C`ÍÙ?8$ CÍÌL?8( C33ƒ@8,A!A (" ( "E @ AJ@ Am" j" ( O@ ( Atj("@   * I]!  k!   ( O@ ( Atj("E@ Aj  * I] "AJ@ Ak" ("( O@ ( Atj("E@  (6  ( 6  ( 6 (  óA !% ("( ""AN@ ( AF ANq ( E@ (("E@ ( "AF AFrA  ("( ( Ak"M@ ( Atj("E@ ( "AF AFrA ! ("( E@ (("E@ *!U *!V Ak" ("( O@ ( Atj("E@ *!W *!eAAë˜"A6 A6 A6 A6  ¨!@  J@  A© Aj!  A! @  J@ ("( O@ ( Atj("E@ *"I *]@  I8 *"I *^@  I8 A! C!J AJ}A! Ak" (" ( O@ ( Atj("E@ *!J * }A! Ak" (" ( O@ ( Atj("E@ * V W“’!J * U e“’C !OA!C!K Aj" H}A!  (" ( O@ ( Atj("E@ *!K * }A! ("( AM@ (("E@ * e U“’!K * W V“’C !L   O!IA!A ( E  *!M *!T A } K } M M’ L“!J T T’ K“!I K } M M’ J“!L T T’ I“A  T“"i!K T I“"j"IC[@C€?!I L M“!l M J“!†C€? K KC[!K ( " AF AFr@ i K• j I•’"‡Cúí#@”"ˆC\@ l K• † I•’!‰ I KC @”"S^@ S!I K IC @”"S^@ S!K A ( AFq!A! A!  T ‡ I ˆ•"I”“8  M ‰ I”“8 @ L M“"SC_ J M“"IC_qA SC` IC`q @  M8A! IC_ J *^  J8AA  J *]  J8AA !  T ‡ K ˆ•"I”’8  M ‰ I”’8 @ L M“"KC_ J M“"IC_qA KC` IC`q @  M8A! IC_ L *]  L8AA  L *^  L8AA ! r@ * T“!I T *“!J @  M M *“ I• J”’8  M M *“ J• I”’8 ( AF@  T jC@@•“8  M †C@@•“8  T iC@@•’8  M lC@@•’8 ( AF@ T *“"I I” M *“"I I”’‘!I T *“"J J” M *“"J J”’‘"JC[@C€?!J C€? I IC["IC¬Å'7^@ M *“!K  T T *“ J I•"L”’8  M K L”’8 JC¬Å'7^@ M *“!K  T T *“ I J•"I”’8  M K I”’8  © A ( "AF AFrA E AkFr  ( A E@  *8  *8  A©  O *`A @  A© AJ@  AkA© Aj!   ( E@ (-A Ak" ( O@ ( j- A @AAô˜" A6 Ak6A!@ AH@  Ak(AvO@ Atj(" ("( O@ ( Atj("@  *8  *8 Aj!  AAÕ˜"A6 A:  6  %: Aj!  A!@ ( J@@ ( Atj("*!IA!@ ("( J@  ( O@ ( Atj("E@  * I“‹C ×#<]  Aj!  A "AH  ("( N  ( O@ ( Atj*!I  ("( O@ ( Atj("E@  6 ( "E (" Er  ( NA  ( N  ( O@ ( Atj*!L  ( O@ ( Atj*!O AJ} Ak" ( O@ ( Atj("E@ * *“C€? "J J\}Coƒ: JCoƒ:— C@@•!J ( " Aj"J}  O@ ( Atj("E@ * *“C€? "K K\}Coƒ: KCoƒ:— C@@•!K A6  * J“8  I L N• J”“8  * K’8  I O N• K”’8 Aj!  Aj!  Aj!  A!@ ( J@ ( Atj("(! (!A! A!@ ("( J@  ( O@ ( Atj("@ (( @ ( œ Aj! Aj!  ("( !  AA™  J@ ( AtjA  kAtü  6 (( @   ÎAF  ´!A!@ A�ÎH@ A � ¬˜ Â"ÎAF@   Aj!  A � (T(( A ªÂ "6  ž (! (T"(( ! ("( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6  (Aj6 Aj!  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ („" (AGA @AàŽ (ÂAð§! ÂA §!Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 AAÓ˜"A6  6  6„  ž Aj!  Aj!  6 AG@ 6 A!A! ("(! (!AA­˜"A6 A6 A6 A6 š!A!@  J@  A lj"(AqE@ "Aj! ( Atj" ("6  ( At Ÿ Aj!  ( !  AA™ J@ ( AtjA kAtü  6 A!@ ( J@ Aj ( Atj(! Aj!  6 AAª˜"A: A6 A� 6 A6 A: 6 ž  ò!  ò!   «! #A€j$  A$ Ak( ºA8A‚˜"A6 A: A6 B7 B7 D9 A� 6( A6, A60  (6  -:  (6  )7  )7  + 9  (("6(  ž (,"@AA¦˜!AA€˜" 6  ž  6 A6 A6 !A!@ ( J@ ( Atj(‘! ( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6,  ž (0"@A Aÿ˜""AAAA¤6 AAA€A¤6 AA�˜"½ 6A!@ ("( J@ ( O@ ( Atj("@   ("( O@ ( Atj("E@ ‘ñ Aj!   60  ž  D AF@AÐà $ AAÐÊAÐà Â" Ak(A~q7#"@A$ Ak( �A! Aj!  AkH  (O@ ( j-AÜFA Aj!  A @ (! Ak! Aj"AH  j"A AJ    H ! AH  j"A AJ    H k"A AJ"A¦™" ( j ü ! Ak(! AH@ AF  ! J@ A Aߘ" 6  ž  6  6 (" Ak(Ò (!A Aߘ" ("6  ž  AH  j"A AJ    H " (j6  AH  j"A AJ    H "  J k6AÀA„˜"ö 6 (6 A: õ"-E@A�  ("(AF ((A "A�  î (!@  H@  (O@ ( j-"A€I@ Aj!  A€!A¿! AßM AÂOqA AàFA !A AìM AáOqA AíFAŸ!A AïM AîOqA AðFA�!A AóM AñOqA AôFA�!AA " j N@A  Aj" (O@ ( j-"H  Hr@A A!@  N@  j" (O@ ( j-"A€I A¿Kr@A Aj!   Ajj!  A ù (E@A ! (AFA  A�î$ ÂäA E@A AA˘"A Aÿ˜!AA¦˜!AA˜" 6 ž 6 A6 A6  6AA¦˜!AA€˜" 6 ž 6 A6 A6  6AA�˜"½  6 6A!@ ("( J@ ( O@ ( Atj("@ (  ( "( O@ ( Atj("E@ ( ( (­� "- (ó ñ Aj!   Ž (E@A  A� å"E@A A!@ ( "( J@  ( O@ ( Atj("E@ (! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 (! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 Aj!   æE@A AA̘ ø ~@ A€…%A …%å"E AAå˜""A6 A6 A6 A6 AA”˜"AAAA¤6A!@ ("( J@  ( O@ ( Atj("E@ ! " ( "( O@ ( Atj("E@ AðþÄ@    ñE  ~ (AF@ ç"(E@ )Bÿÿÿÿƒ  AÐí$äB " BSAAÿÿÿÿ §" AÿÿÿÿK 6 AÐæ!Ä@    ñE   BÿÿÿÿAÀÆë> A€è!Ä@    ñE   A€…%•"6  ž Aðé$Ä@    ñE   ( èA "6  ž (! ("( " Aj!  (AvK@  AA™ ( Atj 6  6 (! ("( " Aj!  (AvK@  AA™ ( Atj 6  6 -  Aj!  AðþòA (AA ì$AðþÂA€šÂ! (! "-E@ A:  6  ž  6 A: A  æE  A „š~@ A€æ$A æ$å"E AÌAö˜"! AA¦˜!AA÷˜" 6  ž  6 A6 A6 6AA¦˜!AAø˜" 6  ž  6 A6 A6 6AAÞ˜"A6 A6 A6 A6 A6 A Ÿ%6 6AA¦˜!AAù˜" 6  ž  6 A6 A6 6 AA¦˜!AAú˜" 6  ž  6 A6 A6 6 A6 A6 A6AA¦˜!AA˜" 6  ž  6 A6 A6 6 AA¦˜!AA˜" 6  ž  6 A6 A6 6$AA¦˜!AAû˜" 6  ž  6 A6 A6 6(AA¦˜!AAü˜" 6  ž  6 A6 A6 6,AA¦˜!AAý˜" 6  ž  6 A6 A6 60AA¦˜!AAþ˜" 6  ž  6 A6 A6 64AA¦˜!AAÿ˜" 6  ž  6 A6 A6 68AA¦˜!AA€˜" 6  ž  6 A6 A6 6 A€è!Ä@   ñE   AЇ%•"6  ž Aðé$Ä@   ñE   ( èA "6  ž (! ("( "Aj! (AvK@  AA™ ( Atj 6  6 (! ("( "Aj! (AvK@  AA™ ( Atj 6  6 -  Aj!  AðþòA (AA ì$AðþÂA€šÂ! (! -E@ A: 6 ž 6 A: A  æE   A A "6  ž A°Í!Ä@   ñE  (@ A°†%Aà†%å"E AAç˜""A6 C€?8 A6 A6 A6AA”˜" AAAA¤6A!@ ("( J@  ( O@ ( Atj("E@ ( " ( M@ ( Atj(" E@ AðþÄ@   ñE  ~ (AF@ ç"(E@ )Bÿÿÿÿƒ  AÐí$äB "!BSAAÿÿÿÿ !§" AÿÿÿÿK 6 A°™Ä@   ñE   ê8 AÐæ!Ä@   ñE   BÿÿÿÿAÀÆë> A€è!Ä@   ñE   A°†%•"6  ž Aðé$Ä@   ñE   ( èA "6  ž (! ("( "Aj! (AvK@  AA™ ( Atj 6  6 (! ("( "Aj! (AvK@  AA™ ( Atj 6  6 -  Aj!  AðþòA (AA ì$AðþÂA€šÂ! (! -E@ A: 6 ž 6 A: A  æE   A A "6  ž A€Í!Ä@   ñE  ( —A "6  ž A°ƒ%Ä@   ñE  Aí"6  ž A€è!Ä@   ñE A ("E A AFA A�î$A€¿ÂäA E AAÓ˜" "û A6AA”˜"AAAA¤6A!@ ("( J@  ( O@ ( Atj("E@  ( "( O@ ( Atj("E@ A�²"Ä@A    ñE  (A Aàƒ%A�„%å"E AAÒ˜"C€?8AA”˜"AAAA¤6A!@ (" ( J@  ( O@ ( Atj(" E@ ( " ( M@ ( Atj(" E@ AЄ%Ä@A    ñE   ê8 (! (" ( "Aj!  (AvK@ AA™ ( Atj 6 6 (! (" ( "Aj! (AvK@ AA™ ( Atj 6 6 A -  Aj!  A  æE   A "6 ž (  ( ( (­� "- (ó ñ A -  Aj!  "6$  ž Aðé$Ä@   ñE  ( èA "6(  ž -  Aj!   æE   A "E  (0"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   AÐãÄ@    ñE  "(AFA AÀ°%äA E A!@ ( " ( J@  ( O@ ( Atj("E@ A! @ A€¾A û$å"E AAí˜" A6 A6 A6 AAAîA¤6 A6AA”˜"AAAA¤6@ ("( J@ ( O@ ( Atj("E@ " ( " ( O@ ( Atj("E@ A€è!Ä@    ñE  A€¾•" 6 ž Aðé$Ä@    ñE  ( èA " 6 ž A�îÄ@    ñE  ("  AG@ A�‡äA�  ( ( (“ A " 6 ž A€®"Ä@    ñE  (AFA AÀ°%äA @A! @ ( "( J@ ( M@ ( Atj("E@ @ A�ü$AÀü$å" E AAë˜""AAɘ!AA¦˜!AAʘ" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6 6 A6 A6 A6 A6 A6 A6AA”˜" AAAA¤6A!@ ("( J@  ( O@ ( Atj("E@ " ( "( O@ ( Atj("E@ A�ÖÄ@  ñE  (AG@ AÐý$ä  A! @ ("( J@ ( O@ ( Atj("E@  AðõÄ@A AȘ"A6 A6 A� 6 A6 A6   AÐöÄ@A AȘ"A6 A6 A� 6 A6 A6   A�öÄ@A AȘ"A6 A6 A� 6 A6 A6   Aà™AÇ@ AAÿÿÿÿÈ!A AȘ"A6 A6 A� 6 A6 A6  6  ž   A µ"AÇ@ AAÿÿÿÿȨ "-E@Ü  (!A AȘ"A6 A6 A� 6 A6  6   AÀµ"AÇ@ A AÿÿÿÿȨ "-E@Ü  (!A AȘ"A6 A6 A� 6 A6  6   Aðµ"AÇ@ AAÿÿÿÿȨ "-E@Ü  (!A AȘ"A6 A6 A� 6 A6  6   A�¶"AÇ@ AAÿÿÿÿȨ "-E@Ü  (!A AȘ"A6 A6 A� 6 A6  6   A AȘ"A6 A6 A� 6 A6 A6  !~ ( "( O@ ( Atj("E@ (AF@ ç"(E@ )Bÿÿÿÿƒ  AÐí$äB "!BSAAÿÿÿÿ !§" AÿÿÿÿK ! - @ (" Þ"AN@  ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ("( "Aj!  (AvK@  AA™ A k! ( Atj 6  6 (( Ak!@  J@ ("  Ak" ( O@ ( Atj("E@ œ ("  Ak" ( O@ ( Atj(º Ak!  (  œ (  º Aj!   A€è!Ä@  ñE   A�ü$•"6  ž Aðé$Ä@  ñE   ( èA "6  ž Að®Ä@  ñE   ( ìA 6  A ÝÄ@  ñE   ( ìA 6 A€ŒÄ@  ñE ~ (AF@ ç"(E@ )Bÿÿÿÿƒ  Aðý$äB "!BY@ A !§"Aj AK6  Aг"Ä@  ñE ("@ AFA AÀ°%äA @AA¦˜!AAì˜" 6  ž  6 A6 A6 A!@ ( " ( J@ ( M@ ( Atj("E@ @ AÀþ$Aðþ$å"E A Aê˜"" A6 A6 A6AA”˜"AAAA¤6A! @ ("( J@ ( O@ ( Atj("E@ ( "( M@ ( Atj("E@ AÐöÄ@   ñE   ( ìA 6 AðõÄ@   ñE   ( ìA 6 A�öÄ@   ñE   ( ìA 6 (! ("( " Aj!  (AvK@  AA™ ( Atj 6  6 (! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 -  Aj!   æE   A "E ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6  ž  A6  (! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 (! ("( " Aj!  (AvK@  AA™ ( Atj 6  6 -  Aj!  A�ÖòA (AA ì$A�ÖÂA€šÂ! (! -E@ A: 6 ž 6 A: A  æE   A "E ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   A€ú$Ä@    ñE  ( îA " 6 ž (! (" ( "Aj!  (AvK@ AA™ ( Atj 6 6 (! (" ( "Aj!  (AvK@ AA™ ( Atj 6 6 -  Aj!  A€®"òA (AA ì$A€®"ÂA€šÂ! (! -E@ A: 6 ž 6 A: A  æE  A "E  (4" ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!   A°®"Ä@    ñE  (AFA AÀ°%äA E A!@ ( "( J@  ( O@ ( Atj("E@ A!@ AÀçAà÷$å" E A0Aï˜""A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6,AA”˜"AAAA¤6@ ("( J@  ( O@ ( Atj("E@ ( "( M@ ( Atj("E@ Aà¤Ä@   ñE   ( ìA 6 AЮ"Ä@   ñE   ( ïA "6  ž A€è!Ä@   ñE  A ("E A AFA A�î$AÀçÂäA E AAј" "û A6AA”˜"AAAA¤6A!@ ("( J@  ( O@ ( Atj("E@  ( " ( O@ ( Atj("E@ Aб"Ä@A    ñE  (A!A Aàú$A€µå" E AAИ"A6AA”˜"AAAA¤6@ ("( J@  ( O@ ( Atj(" E@ ( "( M@ ( Atj("E@ A€µÄ@A   ñE  ~ (AF@ ç" (E@ )Bÿÿÿÿƒ  AÐí$äB "!BSAAÿÿÿÿ !§" AÿÿÿÿK 6 (! (" ( "Aj!  (AvK@ AA™ ( Atj 6 6 (! ("( "Aj! (AvK@  AA™ ( Atj 6  6 A -  Aj!  A A€µòA (AA ì$A€µÂA€šÂ! (! -E@ A: 6 ž 6 A: A A  æE   A "6 ž (  ( ( (­� "- (ó ñ A -  Aj!  "6  ž Aðé$Ä@   ñE   ( èA "6  ž A°ù$Ä@   ñE   ( AíA "6  ž Aà½Ä@   ñE   ( ìA 6 A�îÄ@   ñE  (" AG@ A�‡äA�  ( ( (“ A "6  ž A€„Ä@   ñE  ( AíA "6  ž AðåÄ@   ñE  ( AíA "6  ž AÐù$Ä@   ñE  ( AíA "6$  ž Að®"Ä@   ñE  ( ìA 6( A€ú$Ä@   ñE   ( îA "6,  ž (! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 (! ("( " Aj!  (AvK@  AA™ ( Atj 6  6 -  Aj!   æE   A "E  (8"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   A€©"Ä@    ñE  (AFA AÀ°%äA E A!@ ( "( J@  ( O@ ( Atj("E@ A!@ A°ô$AÐô$å"E AAð˜""A6 A6 A6 A6 A6 A6 A6AA”˜" AAAA¤6@ ("( J@  ( O@ ( Atj("E@ ( "( M@ ( Atj("E@ A�¯"Ä@   ñE  ("@~ AF@ ç"(E@ )Bÿÿÿÿƒ  Aàõ$äB "!BY@ A !§"A€ÌF A A�ÌF A 6  A6  AÀ¯"Ä@   ñE  ("@~ AF@ ç"(E@ )Bÿÿÿÿƒ  A ö$äB "!BY@ @@@@@@ !§"A€ÌG@ A�ÌF  A€ÎF  A�ÎF  A‚ÎF  AƒÎF   A  A  A  A  A  A  A 6  A6  A�îÄ@   ñE   (" AG@ A�‡äA�  ( ( (“ A "6  ž Að¯"Ä@   ñE ~ (AF@ ç"(E@ )Bÿÿÿÿƒ  A�÷$äB "!BY@ A !§"A¯‚F A Að†F A A�ÒF A 6  A�°"Ä@   ñE ~ (AF@ ç"(E@ )Bÿÿÿÿƒ  A�÷$äB "!BY@ A !§"A¯‚F A Að†F A A�ÒF A 6  A€è!Ä@   ñE   A°ô$•"6  ž Aðé$Ä@   ñE  ( èA "6  ž (! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 (! ("( " Aj!  (AvK@  AA™ ( Atj 6  6 -  Aj!   æE   A "E  (<"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   A°°"Ä@    ñE  (AFA AÀ°%äA E A!@ ( "( J@  ( O@ ( Atj("E@ A!@ AÀó$Aàó$å"E AAñ˜"A6 A6 A6 AAA¤A¤6 AA”˜" AAAA¤6@ ("( J@  ( O@ ( Atj("E@ ( "( M@ ( Atj("E@ A€è!Ä@   ñE   AÀó$•"6  ž Aðé$Ä@   ñE   ( èA "6  ž A�îÄ@   ñE   (" AG@ A�‡äA�  ( ( (“ A "6  ž A°®"Ä@   ñE   ï"6  ž (! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 (! ("( " Aj!  (AvK@  AA™ ( Atj 6  6 -  Aj!  A°®"òA (AA ì$A°®"ÂA€šÂ! (! -E@ A: 6 ž 6 A: A  æE   A "E  (@"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   Aа"Ä@    ñE  (AFA AÀ°%äA E A!@ ( "( J@  ( O@ ( Atj("E@ A!@ A�ò$A°ò$å"E AAò˜"A6 A6 A6 AAA¤A¤6 A6 A6AA”˜" AAAA¤6@ ("( J@  ( O@ ( Atj("E@ ( "( M@ ( Atj("E@ A€è!Ä@   ñE   A�ò$•"6  ž Aðé$Ä@   ñE   ( èA "6  ž Að°"Ä@   ñE   ( ìA 6 A°±"Ä@   ñE   ï"6  ž A�îÄ@   ñE   (" AG@ A�‡äA�  ( ( (“ A "6  ž A°ÀÄ@   ñE   ( ìA 6 (! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 (! ("( " Aj!  (AvK@  AA™ ( Atj 6  6 -  Aj!  A°±"òA (AA ì$A°±"ÂA€šÂ! (! -E@ A: 6 ž 6 A: A  æE   A "E  (D"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   Að™!Ä@    ñE  (AFA AÀ°%äA E A!@ ( "( J@  ( O@ ( Atj("E@ @ AÐì$Aðì$å"E AAó˜""A6 A6 A6 A6 A6AA”˜" AAAA¤6A!@ ("( J@  ( O@ ( Atj("E@ ( "( M@ ( Atj("E@ A�îÄ@   ñE   (" AG@ A�‡äA�  ( ( (“ A "6  ž AðÕÄ@   ñE   ( ìA 6 A åÄ@   ñE ~ (AF@ ç"(E@ )Bÿÿÿÿƒ  AÐí$äB "!BY@  !>  A€è!Ä@   ñE   AÐì$•"6  ž Aðé$Ä@   ñE   ( èA "6  ž (! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 (! ("( " Aj!  (AvK@  AA™ ( Atj 6  6 -  Aj!   æE   A "E  (H"( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   (! ("( "Aj!  (AvK@  AA™ ( Atj 6  6 (! (" ( "Aj!  (AvK@ AA™ ( Atj 6 6 -  Aj!  A°é$òA (AA ì$A°é$ÂA€šÂ! (! -E@ A: 6 ž 6 A: A  æE  A í A ( " Ak(AƒFA @  Ak(AƒFA E@ (A F@ (! ( !A!A!@  H@@  ("H  O@ ( j-A GA @ Aj!  Aj! Aj!   j" (H@AA“˜"A6 A: A: A� 6 A6 A: AAA¤A¤6 6 A:@@@@@@@@@@@@@@@@@@@@ (  A Û$  AàÛ$  A°Ü$  A€Ý$  AÐÝ$  A€Þ$  AÀÞ$ A€ß$ A°ß$ Aàß$ A�à$ AÀà$  A€á$  AÐá$  Aàâ$  A ã$  A€ä$  A°ä$  Aðä$  AÀå$ ! -E@ A: 6 ž 6 A: ã!AA¬˜"A: A6 A� 6 A6 ·"6 ž 6 ž  -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA¬˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  Ù (! Aj!@  H@  (O@ ( j-"A"F@ Aj A I@A AÜF Aj N@A Aj" (O@ ( j-"AõF@ Aj N@A A!@ AH@  j" (O@ ( j-"A9M A0OqA AÆM AÁOq A AæM AáOq @ Aj! A Aj!  AÜG A"Gq A/Gq AâGq AæGq AîGq AòGq AôGq@A Aj Aj !  A ¯AÀA„˜"ö  6  (6 A:@ õ" -@AA’˜"A6 A6  6 Aâ!AA“˜"A6 A: A: A� 6 A6 A: AAA¤A¤6  6  :A  ˜" -E AA¬˜"A: A6 A� 6 A6 A: 6 ž  A! (!AA¦˜!AA¤˜" 6  ž  6 A6 A6 A!@@@@  H  (O@ ( j-"A F A F A Fr A FrrA @ Aj!  @  N   (O@ ( j-!  AýF AÝFrA @ ( "AL@ ( Ak"Atj(!  6 AF AÝFG  Aj!A!A! ( E   ( "AJ  Ak"M@ ( Atj(A AF@ A"G  š"AH @  H  (O@ ( j-"A F A F A Fr A FrrA @ Aj!   NA  (O@ ( j-A:G  Aj!@  H  (O@ ( j-"A F A F A Fr A FrrA @ Aj!   N   (O@ ( j-! A! AÛF" AûFr@ ( "Aj" (AvK@  AA™ ( AtjAA 6  6 Aj!A!  A"F š AôFA!@Aܯ(Av J@ (  jLA  j" (O@ Aܯ(AvOA AtAà¯j/ ( j-G @A  Aj!  Aܯ(Avj  AæFA!@AÜû(Av J@ (  jLA  j" (O@ AÜû(AvOA AtAàûj/ ( j-G @A  Aj!  AÜû(Avj  AîFA!@A¬�(Av J@ (  jLA  j" (O@ A¬�(AvOA AtA°�j/ ( j-G @A  Aj!  A¬�(Avj A Aj  (" J  O@ ( j-A-FA " N   (O@ ( j-"A0F@A  Aj"J  (O@ ( j-A0OA   (O@ ( j-A9MA  A9M A1Oq@@  H  (O@ ( j-A0OA   (O@ ( j-A9MA @ Aj!  A   H  (O@ ( j-A.FA @ Aj"!@  H  (O@ ( j-A0OA   (O@ ( j-A9MA @ Aj!  A  F   H  (O@ ( j-AåFA  (O@ ( j-AÅF A @  Aj"J  (O@ ( j-A+FA  (O@ ( j-A-F A @ Aj! !@  H  (O@ ( j-A0OA   (O@ ( j-A9MA @ Aj!  A  F   "AH A! ( E    N   (O@ ( j-! ( " Ak"M@ ( Atj(! A,F@ Aj!A!  AÝF AFqA AýF AFq @ ( "AL@ ( Ak"Atj(  6 Aj! ( E    @  H  (O@ ( j-"A F A F A Fr A FrrA @ Aj!   F  A E@ ™ AA’˜"A6 A6  6 Aâ!AA“˜"A6 A: A: A� 6 A6 A: AAA¤A¤6  6  :  ˜! (! ("A AL!  k"A AJ"A¦™" ( j ü Ak(! AH@ AF  !  J@ A Aߘ" 6  ž  6  6 !A!@ ( " AjJ@  M@ ( Atj(! Aj" ( O@ ( Atj(!  (O@ ( jA0: Aj!@  H@  (O@ ( j-A G@  (O@ ( jA : Aj!  Aj!  AÀA„˜"ö  6  (6 A: õ"-E@Aÿÿÿÿ! ( " Ak(AƒFA @  Ak(AƒFA E@ (! ( !A!A!@  H@@  (" H  O@ ( j-A GA @ Aj!  Aj! Aj!   j! -  ( LA @  ™ A  -E AA¬˜"A: A6 A� 6 A6 A: 6 ž  ã!AA¬˜"A: A6 A� 6 A6 ·"6 ž 6 ž % Ak(Av A �ÂAðþÂAðþ Î@ ( kAH@AA—˜""A6 A6 A6 A� 6 A6 AÐÚ$6 AÐÚ$ž  AA™˜"A6 A6 Aj" (O@ Aj" (O@  (O@ Aj" (O@   ("j-At  j-r  j-Atr  j-Atr6 Aj" (O@ ( j-! Aj" (O@ Aj" (O@ Aj" (O@ (" j-"AÓF AÊFq j-"AÏFq j-"AÎFq@ A6 E AÉF AÂFq AÎFqq@ A6AA—˜""A6 A6 A6 A� 6 A6  AA°˜"A: A6 A� 6 A6 A: 6 ž  AA°˜"A: A6 A� 6 A6 ·"6 ž 6 ž w AHA  (( N @A�Å $ AAÐÊA�Å Â" Ak(A~q7#"@A$ Ak(  ("( O@ ( Atj(E@ ‘ (" Þ"AN  ("( O@ ( Atj(A "AH@A ! "AHA (( N @A�Å ö ("( O@ ( Atj(E@  Õ~ (AHA ( ( (L @A�Å $ AAÐÊA�Å Â" Ak(A~q7#"@A$ Ak( ( (L@A (" ( O@ ( Atj("E@ )"BS@B!  )|" TA  4V @A (! §!A Aߘ" ("6  ž  §"AH j"A AJ  J " (j6  AH j"A AJ  J "  J k6  ¾   B}~| |" TA  4V @A (! §! §"AH  j"A AJ    J ! AH  j"A AJ    J !A Aߘ" ("6  ž  ( j6     H k6  Ë~ AHA  (( N @A�Å ö  ("( O@ ( Atj("E@ !AA›˜"A6 A6  6  6@@@ "(Ak A  A  A (l¬! )!@ (8" @ ("AN@  (( N@A�Å ö  ("( O@ ( Atj("E@ )" BW@B!   "E   BU!  )" BY~ B   ¡"E AAœ˜"A6 A6 A6 A6  6  >  6 (("AHA  (( N @A�Å ö  ("( O@ ( Atj("E@  (("AF@AÐà ö @@@ Ak A  A  A ¬! )" BW@B!   "E   ()  BU" ) ¡"E AAœ˜"A6 A6 A6 A6 AA›˜" A6 A6 6 A6  6  >  6 ( ("AHA  (( N @A�Å ö  ("( O@ ( Atj("E@ )" BW@B!   "E  ( )  BU" ) ¡"E AAœ˜"A6 A6 A6 A6  6  >  6AA¦˜!AAý˜" 6 ž 6 A6 A6 A Aä˜"A6 A6 A6 AÿÿÿÿK@ !  At"A¦˜"6  6  6A Aä˜"A6 A6 A6 AA¦˜"6  6 A6 " Aõ! @@ @  AõE  ­ T@A!@  H@  (AvO@ ( AtjA6 Aj!     (AvE@ ((FA @  Aõ!  AõE@A�Å $ AAÐÊA�Å Â" Ak(A~q7#"@A$ Ak( Aj! A!@  H@  (AvO@ ( Atj(! ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!   A Aä˜"A6 A6 A6 ( "AÿÿÿÿK@  At"A¦˜"6  6  6A!@ ( J@ ( Atj(! (Av M@ ( Atj 6 Aj!   ("AH  (( N@A�Å ö  ("( O@ ( Atj("E@ )" BW@B!   "E  BU! )" BY~ B   ¡"E AAœ˜"A6 A6 A6 A6  6  >  6 (( ( k" ("m@@@ ("(Ak A  A  A (l  oLj!A Aä˜"A6 A6 A6  l"AÿÿÿÿK@  At"A¦˜"6  6  6A!@ H@   lõ Aj!   A ¶} E@A A Aç˜"A6 A6 A6 (Av"AÿÿÿÿK@  At"A¦˜"6  6  6A!@ (Av J@ ( Atj*! " (AvO@ ( Atj 8 Aj!   ¬ AHA  (( N @A�Å ö ("( M@ ( Atj("E@ (’"!A!A ( "E ALr  (!@  H@  Atj( F@   Aj!  A AH@A°Ä $ AAÐÊA°Ä Â" Ak(A~q7#"@A$ Ak(    ¢"E@A A A�˜"A6 A6 A6 6 6 6  }AA-˜AÀA-˜!@ AH@ At" Ak(AvO@  Atj*! AtAj" Ak(AvO@  Atj*! AtAj" Ak(AvO@  Atj*! AtAj" Ak(AvO@  Atj*! A!@ AH@  Ak(AvO@ Aj" Ak(AvO@ At j! Atj* ” Atj* ”’ Aj" Ak(AvO@ Atj* ”’ A j" Ak(AvO@ Atj* ”’! Ak(Av M@  Atj 8 Aj!  Aj!   ¤}AA¥˜""A:AA-˜ AÀA-˜6A A-˜"A¨À A ü  6AA-˜"A¸À ýý  6 A A-˜"AÈÀ A ü 6 ("@ A:A!@ AH@ Ak(AvO@  Atj*! ("Ak(Av M@  Atj 8 Aj!   ($"@A!@ AH@  Ak(AvO@  Atj*! ("Ak(Av M@  Atj 8 Aj!  ("@A!@ AH@  Ak(AvO@  Atj*! ( "Ak(Av M@  Atj 8 Aj!  ( "@A!@ AH@ Ak(AvO@  Atj*! ("Ak(Av M@  Atj 8 Aj!   ~@  ( NE@ ( Atj(" ÄE@  œ Aj! Aj!  ( ! AA™  J@ ( AtjA  kAtü 6 ‰AA­˜"A: B7A (AG A (0"E  ð " (AF (A A E@ A:  (AF (A ~B ) 7  Š  ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A E@  Å   ("( O@ ( Atj("E@ AÀAט"A6 B7 B7 A6 A6 A6 A6$ A6( A6, A60 A:4 A68  (6  )7  )7  (6  ("AA˘" û (!A Aÿ˜""AAAA¤6 AAA€A¤6 AA�˜"½ 6@ ("( J@  ( O@ ( Atj("@    ("( O@ ( Atj("E@ ‘ñ Aj!  6 ž A "6  ž  ( "6  ž  ($6$  ((" ‘A "6(  ž  (," ‘A "6,  ž  (0"60  ž  -4:4 (8"@AAÖ˜"B7A AÔ˜"A6 B7 A6 A6 A6  6AAÕ˜"A6 B7 A6 A6  6 A6 A6  )7 ( ((6 ( ()7 ( ((6 (" (("6  ž (" (("6  ž ( ( (6 ( ( )7 ( " ( ("6  ž ( " ( ("6  ž  ("6  ž  ("6  ž  68  ž ! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  (( Ak"Å Î }|@ (Aq@ A€  (! (Av! @@@ Ak A  A  A lÿ@ H@ (AvO@ ( Atj*!@@@@@@@ Ak  ¼"Aÿq€  AvAÿq€  AvAÿq€  Av€  A  \}C  �"“‹C?`@ C€? ˜’! C]@C! CC  CC^ »"DdE A DàÿÿÿïAf  « Aÿq! (( (F@ Aÿ (" (" (O@ ( j :  (Aj6  A  \}C  �"“‹C?`@ C€? ˜’! CÃ]@CÃ! CþB  CþB^ »" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª Aÿq! (( (F@ Aÿ (" (" (O@ ( j :  (Aj6  A  \}C  �"“‹C?`@ C€? ˜’! C]@C! CÿG  CÿG^ »"DdE A DàÿÿÿïAf  « "Aÿq€  AvAÿq€  A  \}C  �"“‹C?`@ C€? ˜’! CÇ]@CÇ! CþÿF  CþÿF^ »" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª "Aÿq€  AvAÿq€  A  \}C  �"“‹C?`@ C€? ˜’! C]@C! C€O  C€O^ »"DdE A DàÿÿÿïAf  « "Aÿq€  AvAÿq€  AvAÿq€  Av€ Aj!  ( k!A0Aà˜"A6 B7 B7 B7 A6 A6$ A6( A6,  6  ¬7  ¬7 B7 A6 A6$ A6( A6, ("( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 (( Ak 9A A®˜"A: A: A� 6 A6 A: A: B ( ! AA™ 6 @  LE@ ( Atj 6 Aj!  Ö  –"-E@ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA«˜"A: A6 A� 6 A6 ("6 ž ("6 ž  -" (( (k"A AJJ@A A·˜"A6 A6 A6 A Ã$6 é ¬ˆ "-E@ è A! (""(!@ H@ (O@ ( j-"A€O@ !A AÂI A AàI A AðI A AõI A "AF Aj" NA (O@ ( j-AÀqA€G  AF Aj" NA (O@ AàF ( j-"A Oq A¿MqA AìM AáOq A€Oq A¿Mq A AíF A€Oq AŸMq A AïM AîOq A€Oq A¿Mq  Aj" NA (O@ AA ( j-AÀqA€G A  AF Aj" NA (O@ AðF ( j-"A�Oq A¿MqA AóM AñOq A€Oq A¿Mq A AôF A€Oq A�Mq  Aj" NA (O@ ( j-AÀqA€F Aj" NA (O@ AA ( j-AÀqA€G A A A "AF@AÀÄ$ A «Â  AJ@AðÅ$ A «ÂA°Å$ A «Â  Aj!  A� A� ÄE@A A·˜"A6 A6 A6 AðÃ$6 é ("A AL! k"A AJ"A¦™" ( j ü Ak(! AH@ AF  ! J@ A Aߘ" 6  ž  6  6 (" Ak(Ò!AA«˜"A: A6 A� 6 A6 A: 6 ž ø "-A ( "@  ( F@  ˜ « A: ( A¬ (( " ( J@  6 A!@ H@ -  ("4 ­V@ ( Atj(  A ! ! "-@«  (4 ­X@AðÅ"Š Û  (  º« "-@ Aj!   « »@ ( J@ ( Atj("( F@ " 6 ž Aj!  AAܘ"A6 A6  6  6 ! ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Œ~ (  AAA™ A6 P@« P@A A·˜"A6 A6 A6 A …#6 Û ‚BR@A°‡# A ¬ÂAà†# A ¬ÂA�†#Â!A A·˜"A6 A6 A6  6 Û (( (k"A AJ¬B†" T"P~BB  BT ! –"-E@A A·˜"A6 A6 A6 Aà‡#6 Û @@ -"@ AF    ‚BR@Aà‘# A ¬ÂAà†# A ¬ÂA�†#Â!A A·˜"A6 A6 A6  6 Û  A$Aç˜"Œ A 6 Aÿ6 A€ 6 A€€6  £ E@A A·˜"A6 A6 A6 A ’#6 Û   ¤ E@A A·˜"A6 A6 A6 A “#6 Û  Aƒ -E@A A·˜"A6 A6 A6 A ”#6 Û  €!B!@@ T@~B ( AL  (!@ ( ( I (AJA @  (Ak6 (" ("(O@  ( j- (Atr6  ((" (v!B ("(Av¬ ( q" ­W  "(AvO@ B ("4 ( Atj(" ­X  "( O@ ( Atj"(!B 5 ­~"BÿÿÿÿV B  K B  k­|"BÿÿÿÿV  ( > ­ "BQ@AÀ•# A ¬ÂA�Á A ¬ÂA •#Â!  §" E A Kr@Aà–# A ªÂA€–#Â!  B!@  V@  „ "-E@AЗ# A ªÂA —# A ¬ÂA�Á A ¬Â!A A·˜"A6 A6 A6  6 Û  (! ( "Aj" (AvK@  AA™ ( Atj 6  6 B|!  B|!  A: -@  (6  ( )B|B§j6 «  A A·˜"A6 A6 A6  6 Û   –"-E@A A·˜"A6 A6 A6 A€Š#6 Û  !@ -"AMA E@AЋ# A ªÂAðŠ#Â!  A$Aç˜"ŒAA A AlAv" AK A I"t!  6  Ak6  6  At6  £ E@A A·˜"A6 A6 A6 A�Œ#6 Û  (( (k"A AJ!  ¤ E@A A·˜"A6 A6 A6 A��#6 Û   (( (k"A AJ"k¬B  HB†" T@ ~B  }"P B Bÿÿÿÿÿÿÿÿ?V  B† � "-E@   B!@ T@ 4 " Q@B B† BÿÿÿÿÿÿÿÿÿV" B|"  V"    V"  V"BüÿÿÿV@Aðý" A ¬ÂA€Ž#Â!     V!    ( "¬}" |  |T" }§ j"AA™  6  ( AL@@  J@  Aº Aj!  A  ( ((AvJA (( E@@  J@  Aº Aj!  A  (! (! (! (! (! ("( ! (" ("(N@ (! ((! A! @  J@@ I AJq@ Ak" (j- Atr!  OA ! ( q" Atj(" q" ( O@ ( Atj"(! (k  vlj!   º Aj!  ( 6 ( 6 @ ! A �# A ¬ÂA°Ž#Â!A A·˜"A6 A6 A6  6 Û  «  A A·˜"A6 A6 A6  6 Û  A°‰# A ªÂAЈ#Â!A A·˜"A6 A6 A6  6 Û Ø@ ( " J@ @ Ak"6 ( Atj"( (  @ ( " H@ Aj"Aÿÿÿ?K@ At" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( Atj"A6 A6 6  AA�Ï" A «ÂA°Î"Â!A A·˜"A6 A6 A6 6 eAAý˜"A6 A6 A6 A6 Aš"(! ( "A AL" H@  AtjAÿ kAtü  û~ 5Bˆ" S@ B†" S@ !  U@    U" S@ ! BûÿÿÿU@A ù#Š Û Bûÿÿÿ  BûÿÿÿU" 5BˆU@ ( ! §"AA™ 6 (  AA™ 6 "( ! (   §"AA™  6 @ H@ ( AtjA6 Aj!  « ‡  AFA An "AFA  ( O@ ( j- @ (  AAA™ A6 ( "Aj" (AvK@  AA™ ( Atj 6  6 AF  Aj" Ak Ap ! AG@ Ap AkA Aj A}K !   ("( I@ ( Atj(  A !  ("( I@ ( Atj(  A "AF AFr@  ( O@ ( j-E@  A©   Ÿ  ( O@ ( j-E@  A©   Ÿ @ ( "AJ@ ( Ak"Atj(!  6 AFA An ! AFA  ( O@ ( j- @@  ( "O@A�¯! A «ÂAЮ! A ªÂ"$ AAÐÊ Â" Ak(A~q7#"@A$ Ak(  A©  ("( I@ ( Atj(  A "AF  ( O@ ( j-E@  ("( I@ ( Atj(  A "AFA Aj" Ak Ap" ("( I ( Atj(A "AFA Aj" Ak Ap AF !  A©   Ÿ E@ Aj" Ak Ap" ("( I@ ( Atj(  A "AF  AFA An !   Aj" Ak Ap" ("( I@ ( Atj(  A ! Ap AkA Aj A}K " ("( I@ ( Atj(  A ! AFA An ! AFA An ! AFA  ( O@ ( j- ! AFA  ( O@ ( j- !     !  ( "Aj" (AvK@  AA™ ( Atj 6  6 ( "Aj" (AvK@  AA™ ( Atj 6  6  !   Ù~ @ A… "-E@ •  ( ((j(� "-E@ Š † 5!AA¯˜"A: B7 A� 6 A6 A: 7  † "-E@ Š † )!AA¯˜"A: B7 A� 6 A6 A: 7 Ø AAý˜"A6 A6 A6 A6 Aš! (( Am! @ H@A! @ AH@ Al j" ("( I@ ( Atj(  A "AG@ @ ("@A€ -k!@ ( ( I (AJA @  (Ak6 (" ("(O@  ( j- (Atr6  ("Aÿq! Av l!  K" @   j6   k k6  A @ ( "Aj" (AvK@  AA™ ( Atj 6  6  ¬ An­S ("@A€ -k!@ ( ( I (AJA @  (Ak6 (" ("(O@  ( j- (Atr6  ("Aÿq! Av l!  K" @   j6   k k6  A A @ ( "Aj" (AvK@  AA™ ( Atj 6  6  ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  Aj!   ïAAñ˜"A6 A6 A6 A6 Aš!@ ( J@ ( Atj(!A Aø˜"A6 A6 A6 (! (!  (6  6  6 ! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   ¸ E@A "(AvE@ (("AHA  ( N @A  ( O@ @@@@@@ ( j- ( AjL@A Aj" ( O@ ( j-! ( AjL@A Aj" ( O@ ( j-! Aj! (AvE@ ( 6 AGAtAr AGAtr Aj! "(AvE@ ( 6A  A A A A A A y AFA (4 ­W @A 4   ("( I@ ( Atj(  A "­W@A  ( O@   ( Atj(jºA Ä@@@@@   Aº  AºA   Aº  AºA   AºA   Aº  AºA   AºA   Aº  AºA   AºA  A Ø ~ ()!~B@@@@@@   A  A  A  A  A  A ¬"BQ BQr B P Pr B B~ €V   ~ "BQ@A A·˜"A6 A6 A6 AÀ«$6 Û (("(! (! (!A Aߘ" (" 6 ž A AL" (j6 AH  j"A AJ    J "  J k6 !@@  V@~ §" -  (" 4 ­V@ ( Atj(  A ­!B BQ B P Pr B B~ €V   ~ "BQ@A€˜$ A ¬ÂA ¬$Â!  ~B  |"BQ  Tr   "BQ@A€˜$ A ¬ÂA€­$Â!  ~B BQ BQr B P Pr B B~ €V   ~ "BQ~B~B BQ B  |"BQ  Vr   "BQ@A€˜$ A ¬ÂAЭ$Â!  ~B BQ BQr B  |"BQ  Vr   "BQ@A€˜$ A ¬ÂA ®$Â!   4 V@A€˜$ A ¬ÂA€¯$ A ¬ÂAàžÂ A ¬ÂA�Á ( A «ÂAð–$Â!   4V@A€˜$ A ¬ÂAð¯$ A ¬ÂAàžÂ A ¬ÂA ¯$Â!  §! §! §! @@@@ Ak A!@  H@ (  jj (  jAtj(: Aj!   A!@  H@ Atj" (j (  jAtj(Aÿÿq" : ( Ajj Av: Aj!   A!@  H@ Atj" (j (  jAtj(" : ( Ajj Av: ( Ajj Av: ( Ajj Av: Aj!  B|!  « A A·˜"A6 A6 A6 6 Û þ B B† BÿÿÿÿÿÿÿÿÿV"  V! BR B €VA @B  ~"BûÿÿÿV@B §" ( J@@ ( " H@ "Aj" (AvK@ AA™ ( AtjA6 6   ( J@@ ( " H@ Aj" (AvK@  AA™ ( AtjA6  6   ´ 4 ¬ ¬B†|S@ A L@ A ·$  AtjA «ÂAÀ¶$ ( A «Â"$ AAÐÊ Â" Ak(A~q7#"@A$ Ak( @  J@ ("  j jAtj  jAt j(6 Aj!  ÷ @  4 R@A A·˜"A6 A6 A6 AÀ�#6 � AAý˜"A6 A6 A6 A6  §š! @ ( (( G@A A·˜"A6 A6 A6 A°ž#6 � AA¤˜"A6 A6 A6 A6  Aš!@ (( " ( H@  AA™  6  @ ( " H@ Aj" (AvK@  AA™ ( AtjA6  6  A!@@ ( J@ ( Atj("AG@ (4 ­W@A° # A «ÂA€ # A ªÂAП# (( A «ÂA Ÿ#Â!  4   ("( I@ ( Atj(  A "­W@A€¡# A ªÂAР# A ªÂAП# (( A «ÂA Ÿ#Â!    º Aj!  «  A A·˜"A6 A6 A6 6 Û "-E@ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA»˜"A: A6 A� 6 A6 ("6 ž ("6 ž  AA�˜"A6 A6  6  6AA»˜"A: A6 A� 6 A6 A: 6 ž ¢ ~@ (")"BS ~B@@@@@@ ("   A  A  A  A  A  A ¬"" BQ BQr B P Pr B B~ €V   ~ "BQ ~B BQ BQr B P Pr B B~ €V   ~ " BQ (Av¬ T ~B BQ B P Pr B B~ €V   ~ " BQ ("(4 T  ™ -A E AF AFr  Qq@ (("(! (! (!A Aߘ" ("6 ž A AL" (j6 AH  j"A AJ    J "   J k6 "4 B†T  §!A!@ H@ At" (j  (j(": ( Ajj Av: ( Ajj Av: ( Ajj Av: Aj!  A (! @  V@~B BQ B P Pr B B~ €V   ~ "BQ B! @  V@~B BQ BQr B P Pr B B~ €V  ~ " BQ  |" BQ Tr@B! BQ   ~ |§" (AvO@  ( Atj(!@@@@@ Ak B!  B!  B!  A  A B }VA (4 |T  ("(! (! (!A Aߘ" ("6  ž  A AL" (j6  AH j"A AJ  J "  J k6 §" "(O@ ( j : BZ@ Aj" (O@ ( j Av: BQ@ Aj" (O@ ( j Av: Aj" (O@ ( j Av: A E  B|!  B|!  A A ‹  ("( I@ ( Atj(  A "AF@A   ("( I@ ( Atj(  A !  Aj" Ak Ap" ("( I@ ( Atj(  A " ( "O  Mr  Ap AkA Aj A}K " ("( I@ ( Atj(  A "Mr@A (" Atj(" H At j("  At j("rrANq Jq Jq@ (Av" "H@ !  l!  l!  l!A!@  H@  j" "(AvO@ ( Atj(  j" (AvO@ ( Atj(j (Av  j"M@ ( Atj(k! " (AvO@ ( Atj 6 Aj!  A A »~B } BS""Bÿÿÿÿƒ"B }  BS" "Bÿÿÿÿƒ"~!  B ˆ"~"Bÿÿÿÿƒ B ˆ|  B ˆ"~"Bÿÿÿÿƒ|!  ~ B ˆ| B ˆ| B ˆ| Bÿÿÿÿƒ B †„!"! !  G~ B…B|"P­ B…|  ´~ „P@B  € Aÿ!@ AN@  B† B?ˆ„"Q  AÀN~ A@j¬ˆBƒ  ¬ˆBƒ B†„"Xq  Tr@  V­!  }!  } }! AÀN@ B A@j¬†„! B ¬†„! Ak!    ø~@  ( I ( Atj(A "AH ~ (AF@B ¬ (N  B (" ( NA  ( Atj5 "BS  §" ("-  ("4 ­V@ ( Atj(  A "AF AAÕ ˜  ­AAÕ ˜"œ E Ak(AvE@ Ak(AvAM@ Ak(AvAM@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q )"§"A€€€€xAÿÿÿÿ BS ¬ Q )"§"A€€€€xAÿÿÿÿ BS ¬ Q AAA ×} E@ (AF (,A "E@ A!@ ( J@ ( Atj("(AF@|Dø (AG @@ ("@ AF   )º  )¹  + ¶!  C€?[}   •" \}C€¿ C€¿— »ôœ Aj!  ýAA.˜"A6 A6 A6 A6 Aš!@ AH@  Ak(AvO@   Atj*¡ Aj!  ( E@ ( AM@ ( AM@ ( AM@ ( AM@ ( AM@ ( AM@ ( AM@ ( AM@ ( A M@ ( A M@ ( A M@ ( A M@ ( A M@ ( AM@ ( AM@ ("* * * * * * * * * *$ *( *, *0 *4 *8 *< ð E@Aàª!$ AAÐÊAàª!Â" Ak(A~q7#"@A$ Ak( AA¦˜!AAõ˜" 6  ž  6 A6 A6 A!@ (Av" J@  j"   J!A Aç˜" ("6  ž  ( AH  j"A AJ  "Atj6  AH  j"A AJ    J "   J kAt6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  j!   ¬}AA¦˜!AA.˜" 6  ž  6 A6 A6 !A!@ (Av J@ ( Atj*! "( "Aj!  (AvK@  AA™ ( Atj 8  6 Aj!   –  (A A (Ak(Av E@A AAÚ˜"A� 6 A6  (" Ak(Av µ A A A€çAÇ  A�Ò ¹ 6 A6  Á} ( ! (!A@ At!A@A! A¦˜" ( ü 6 6 6 ž AH@ ( A ljA Atlü A6 A!@  J@A¤*!A *! Aœ*! ( "Aj"AÕªÕ*K@ A l" ("K@ "At" I@ ! A¦˜" ( ü 6 6 6 ž ( A lj" 8  8  8 6 Aj!  ÿ\#}A¨A¿˜" ¨ @AAߘ"A6 A6 A6 A6 ((! ( !  (6  6  6 (X"6X ž (@"6@ ž (T"6T ž (H"6H ž (P"6P ž (\"6\ žAAÁ˜"AÀA¦˜"6  6 AÀ6 A6  6  žAA¦˜!AAý˜" 6  ž  6 A6 A6  6  žAA¸˜"AàA¦˜"6  6 Aà6 A6  6(  žAA¦˜!AAȘ" 6  ž  6 A6 A6  6X  žAAŘ"A€A¦˜"6  6 A€6 A6  6@  žAA¦˜!AAǘ" 6  ž  6 A6 A6  6T  žAAƘ"A A¦˜"6  6 A 6 A6  6H  žAA¦˜!AAǘ" 6  ž  6 A6 A6  6P  žAA¦˜!AA�˜" 6  ž  6 A6 A6  6\  ž  ! ! ! ! #Œ" E@A8Aà˜" !AA̘"AàA¦˜"6  6 Aà6 A6  6AA̘"AàA¦˜"6  6 Aà6 A6  6AA̘"AàA¦˜"6  6 Aà6 A6  6A Aߘ"A6 A6 A6 AA¦˜"6  6 A6  6 AA̘"AàA¦˜"6  6 Aà6 A6  6AA̘"AàA¦˜"6  6 Aà6 A6  6AA¦˜!AAý˜" 6  ž  6 A6 A6  6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6AA¦˜!AAý˜" 6  ž  6 A6 A6  6 A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6$A Aã˜"A6 A6 A6 A€€A¦˜"6  6 A€€6  6(A Aã˜"A6 A6 A6 A€€A¦˜"6  6 A€€6  6,AA¦˜!AAò˜" 6  ž  6 A6 A6  60AA¦˜!AAý˜" 6  ž  6 A6 A6  64 $Œ ((( ! (! (! ("# ((( "Ê  Ê  Ê  " ( (J@A Aߘ"A6 A6 A6 AüÿÿÿK@  A¦˜"6  6  6 6 ž ( "&"(! ("A AL" AH j"A AJ  J "H@  jA kü (!% ("' Ê % Ê (""(  AAA™ A6 Aj" ((AvJ@A Aã˜"A6 A6 A6 AÿÿÿÿK@  At"A¦˜"6  6  6 6 ž (!A! @  K@ ( ! (Av M@ ( Atj 6 ("(( OA ("( O@ ( Atj( "@  ÁA¤*!*A *!+AØ’+Aœ*8AÜ’+ +8Aà’+ *8A¤*!*A *!+Aä’+Aœ*8Aè’+ +8Aì’+ *8 (AvO@ ( Atj(!@ ( " J@ O@ Aj" ( O@ (" Atj(! At j(! Aj" ( O@ ( Atj(! (!  ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@ A (" ("( O   ( O@ ( Atj( "E@A ÷ö E@ *!7 *!5 *!. (! ( "(( OA ("( O@ ( Atj( "E@A ÷ö E@ A (" ("( O   ( O@ ( Atj( "E@A ÷ö E@ *!8 *!: *!0 (!  ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@ A (" ("( O   ( O@ ( Atj( "E@A ÷ö E@ *!4 *!1 *!,   Ã!F"E!*  Ã!@"? *“!3 @ F"+“!6   Ã!@"? *“!9 3 @ +“";” 9 6”“"-‹C̼Œ+]E@Aà’+*!*AÜ’+*!+AØ’+AØ’+* 0 .“"/ ;” , .“". 6”“C€? -•"2”’8AÜ’+ + : 5“"0 ;” 1 5“"1 6”“ 2”’8Aà’+ * 8 7“", ;” 4 7“"- 6”“ 2”’8Aì’+*!*Aè’+*!+Aä’+Aä’+* . 3” / 9”“ 2”’8Aè’+ + 1 3” 0 9”“ 2”’8Aì’+ * - 3” , 9”“ 2”’8 Aj!  Aì’+*!4Aè’+*!/Aä’+*!.Aà’+*!0AÜ’+*!1AØ’+*!, '( M@ '( A lj" ,8 18 08 %( O@ %( A lj" .8 /8 48 -@ (!@ ( (jI@ ( "(( OA ("( O@ ( Atj( "E@A ÷ö E@ (" &(O@ &( jA:  #( O@ #( A lj"*!+ * *’!- + *’!* * * ’!+  #( O@ #( A lj" -8  +8  *8  ( O@ ( A lj"*!- *!* * ,’!+  ( O@ ( A lj" +8  * 1’8  - 0’8  ( O@ ( A lj"*!- *!* * .’!+  ( O@ ( A lj" +8  * /’8  - 4’8 Aj!  Aj!  ( ! (Av M@ ( Atj 6 @ (! (! (" ( ! ( AH@ ( A8ljA AHlü A6 ( ( "AH@ ( A ljA Atlü AAÁ˜" AÀA¦˜"6 6 AÀ6 A6 AA¦˜!AAý˜" 6  ž  6 A6 A6 AA¸˜"AàA¦˜"6  6 Aà6 A6 A!@ ( At J@ At!  ($(AvJ@A Aã˜"A6 A6 A6 AÿÿÿÿK@  At"A¦˜"6  6  6 6$ ž ($"(! (Av! AH j"A AJ  H "AJ@ A Atü ( " "(  AAA™ A6 ANAAØ"AÀA¦˜"6  6 AÀ6 A6 A ! @ (  AAA™ A6 Ak!$ AG! (4"!"(  AAA™ A6 ((! (0""(  AAA™ A6 @  K@  ("(( OA  ("( O@ ( Atj( "@ -AG"Ar -!"  (AvO@ ( Atj(! Aj" (AvO@ ( Atj(!) ! @ )H@ ( O@ ( Atj(" ( "(( OA  ("( O@ ( Atj( "E@A ÷ö E@ -} (" &(O@ &( j-} (" #( O@ C€? #( A lj"*"- -” *"* *”’ *"+ +”’‘•", ,“C[ ,C^q@ - ,” * ,” + ,”  CCC !>!="!3 =!* (" ( O@ ( A lj"*!/ *!. *!0 (" ( O@ ( A lj"*!1 *!, * *!3 * !* *!2A¤*"1!/A *",!.Aœ*"0  *!3 * !* *!2  '( O@ '( A lj"*!/ *!. *!0  %( O@ %( A lj"*!1 *!, * !- (" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *!9 *!; *!7 *!+ AN  ( ( HA }  ( "( O@ ( Atj"*!6 *AÀ*!6A¼* !5 2 + 3 0 . / - , 1€!D!C!B"A!8 B!: C!4 D!/} (!A!C€¿ BS @ ( J@ ( Atj("5 Q@ *  Aj!  C€¿ !.A!AÅ»òˆx!@ AH@@@@@@@@@@@@@@@   9¼ ;¼ 7¼ 2¼ +¼ 3¼  5¼  6¼  "  8¼  :¼  4¼  /¼  .¼ sA“ƒ€l"Av s! Aj!   $q!@ @ (!( AN  ( ( HA }  ( "( O@ ( Atj"*!* *AÀ*!*A¼* !, (A÷”¯¯xls $q!@@ " (AvO@ ( Atj("E@ ( "Aj"Aɤ’ K@ A8l" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( A8lj" 98 ;8 78 28 +8 38 58 68 "6 88$ :8( 48, /80 .84 6 !( "Aj" !(AvK@ ! AA™ !( Atj (6 ! 6 E@ ( O@ ( Atj(! ( "Aj" (AvK@ AA™ ( Atj 6 6 @ ( "Aj"Aÿÿÿ?K@ At" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" ,8 *8  6 ( Ak"Aj! (Av M@ ( Atj 6  Ak" !( O@ ( !( Atj(F ( O@ ( A8lj"*!- ( ;¼F -¼ 9¼Fq ( 7¼Fq ( 2¼Fq ( +¼Fq ( 3¼Fq ( 5¼Fq ( 6¼Fq " ( Fq ($ 8¼Fq (( :¼Fq (, 4¼Fq (0 /¼Fq (4 .¼FqA @ E  ( O@ ( Atj"*!- ( *¼F -¼ ,¼Fq  Aj $q!   @  ( "( H}  ( O@ ( Atj"*!* *AÀ*!*A¼* "0¼A“ƒ€l *¼A±óÝñylss $q!@@ " (AvO@ ( Atj("E@ ( "Aj"Aɤ’ K@ A8l" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( A8lj" 98 ;8 78 28 +8 38 58 68 "6 88$ :8( 48, /80 .84 6 ( "Aj"Aÿÿÿ?K@ At" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" 08 *8  6 ( Ak"Aj!  (AvO@ ( Atj 6  Ak" ( O@ ( Atj"*!1 *!, Ak" ( O@ ( A8lj"*!- ( ;¼F -¼ 9¼Fq ( 7¼Fq ( 2¼Fq ( +¼Fq ( 3¼Fq ( 5¼Fq ( 6¼Fq " ( Fq ($ 8¼Fq (( :¼Fq (, 4¼Fq (0 /¼Fq (4 .¼Fq ,¼ 0¼Fq 1¼ *¼Fq Ak Aj $q!  !  @@ " (AvO@ ( Atj("E@ ( "Aj"Aɤ’ K@ A8l" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( A8lj" 98 ;8 78 28 +8 38 58 68 "6 88$ :8( 48, /80 .84 6 ( Ak"Aj!  (AvO@ ( Atj 6  Ak" ( O@ ( A8lj"*!* ( ;¼F *¼ 9¼Fq ( 7¼Fq ( 2¼Fq ( +¼Fq ( 3¼Fq ( 5¼Fq ( 6¼Fq " ( Fq ($ 8¼Fq (( :¼Fq (, 4¼Fq (0 /¼Fq (4 .¼Fq Ak Aj $q!  ! ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  /" (AvO@ ( Atj(AA!A ( "E ALr  (!@ H@  Atj/ F@  Aj!  A AH @ ( "Aj" (AvK@  AA™ ( Atj ;  6 (Av" M@ ( Atj( ) kj! M@ ( Atj 6 Aj!  AAĘ"A;6@ ( "AH AL@A!@  H@  ( O@ ( Atj/! Ak!@ AN  ( O@  ( Atj/ (AJA @  ( O@  Aj ( Atj/³ Ak!   Aj ³ Aj!   ´! ´!A!@  H@A!@  H@  Atj"  H! " j"  H"! !@ H  Hq@ ( O@  ( O@  (" Atj/ At j/ (AH@ ( O@  ( Atj/³ Aj!   ( O@  ( Atj/³ Aj! Aj!  @  H@  ( O@  ( Atj/³ Aj! Aj!  @ H@ ( O@  ( Atj/³ Aj! Aj!   Atj!  ! ! ! At!  A!@  H@  ( O@   ( Atj/³ Aj!  (,! A!A!@ ( J@ ( Atj/" (AvO@ ( Atj(! ( "Aj"AÕªÕ*K@ A l" ("K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj" ;  6  6  6 (Av M@ ( Atj 6  j! Aj!  (   AA™  6 A!@  I@  ("(( OA  ("( O@ ( Atj( "@ /" (AvO@ ( Atj(!  (AvO@ ( Atj(!@@ Aj" (AvO@ ( Atj(N ( O@   ( Atj(º Aj! Aj!  (Av M@ ( Atj 6 Aj!  A!@ ( J@ ( Atj/" (AvO@ ( AtjA6 ( Atj/" (AvO@ ( AtjA6 Aj!  @  6  ž   AAߘ"A6 A6 A6 A6 6 6 6 6 ž ! (X!A! ((( !A!@  K@ ("(( MA  ("( O@ ( Atj( "@  ò!>!="!1 =!,  ( "H@ M@ ( Atj("E@ 6 08 ,8 18 *!* * !+ *8 +8 *8 -:A A»˜"A6 C8 C8 C8 C8 C8 C8 A: *!- * !* *!+ -!  6  08  ,8  18  -8  *8  +8  : ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj! Aj!  ( !  AA™ J@ ( AtjA kAtü  6 (@" ( ! ( AH@ ( A0ljA APlü A6 (T! A! ((( !A!@ I@ ("(( MA ("( O@ ( Atj( "@AA -"Ar  - "Ar  - "Ar  - ! (! (" ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *"7!+ *!5 *!8  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *":!4 *!/ *!.AÄ*!0AÈ*!1AÌ*!,AÐ*!-C€?!* ( "Aj"AÕªÕ K@ A0l" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( A0lj" +8  58  88  48  /8  .8  08  18  ,8  -8$ C€?8(  6, 6  7 :’C?” 5 /’C?” 8 .’C?”Ì Aj! Aj!  ( ! AA™ J@ ( AtjA kAtü 6 (H" ( ! ( AH@ ( A$ljA A\lü A6 (P! A! ((( !A!@  K@ ("(( MA  ("( O@ ( Atj( " @ *!/ *!.C€@!0AÄ*!1AÈ*!,AÌ*!-AÐ*!*AA - "Ar  - ! *!+ ( "Aj"Añ¸œK@ A$l" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( A$lj" +8  /8  .8 C€@8  18  ,8  -8  *8  6 6  * * *Ì Aj! Aj!  ( ! AA™ H@ ( AtjA  kAtü 6 ("6 ž ( "6 ž ("6 ž (( 6$ ("6( ž ( 6D ( 6L å  ( "H@  O@ ( Atj("E@ 6 8 8 8 AAº˜"A6 C8 C8 C8  6  8  8  8 ! ( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ² $}  ("((( OA  (("(( O@ (( Atj( "(E@A ÷ö (E@ (((!) AF@ Ì!!!!!!! ! ! ! ! !!!!"! ! ! ! ! ! ! ! ! ! !! !" !# ! ! ! A )AF )AFr  AÀÈ*AÄÈ*AÈÈ*AÌÈ*AÐÈ*AÔÈ*AØÈ*AÜÈ*AàÈ*AäÈ*AèÈ*AìÈ*AðÈ*AôÈ*AøÈ*AüÈ*     # " !        ã   Œ    Œ  #Œ !Œ " Œ   Œ  !!!!!!! ! ! ! ! !!!!"           (*! (* ! (*! (*0 (*4 (*8 (*< (*@ (*D (*H (*L (*P (*T (*X (*\ (*` (*d (*h (*l (* (*$ (*( (* (* (*Ÿ !'!&!%"$ % & '   ¹!!!!!!! ! ! ! ! !!!!"          ã!!!!!!! ! ! ! ! !!!!"! ! ! ! ! ! ! ! ! ! !! !" !# ! ! !  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ((! A AF AFr E@ A )AF )AFr  AÀÈ*AÄÈ*AÈÈ*AÌÈ*AÐÈ*AÔÈ*AØÈ*AÜÈ*AàÈ*AäÈ*AèÈ*AìÈ*AðÈ*AôÈ*AøÈ*AüÈ*     # " !        ã   Œ    Œ  #Œ !Œ " Œ   Œ  !!!!!!! ! ! ! ! !!!!"           A )AF )AFr E@     # " !        A€É*A„É*AˆÉ*AŒÉ*A�É*A”É*A˜É*AœÉ*A É*A¤É*A¨É*A¬É*A°É*A´É*A¸É*A¼É*ã!!!!!!! ! ! ! ! !!!!"! ! ! ! ! ! ! ! ! ! !! !" !# ! ! !     # " !         „ }AA£˜"A€A¦˜"6  6 A€6 A6 @ ("( J@  ( O@ ( Atj("E@ (AN ( HA } (" ( O@ ( Atj"* * * * * * * * * *$ *( *, *0 *4 *8 *< * * * * * * *$ *( *, *0 *4 *8 *< *@ *D *Hã!!!!!!!!!!! ! ! ! ! "! ! ! ! ! ! ! ! ! !! !" !# !$ !% !&  *D! *@! * *(!< *$!= * !? *!@ *!A *!B *!C * !D *!E *!F *A°*!8A¬*!9A¨*!:A¤*!;A *!>Aœ*! ; : 9 8Ñ!7!6!5!4!3!2!1!0!/!.!-!,!+!*!)"( ) * + , - . / 0 1 2 3 4 5 6 7AÀÈ*AÄÈ*AÈÈ*AÌÈ*AÐÈ*AÔÈ*AØÈ*AÜÈ*AàÈ*AäÈ*AèÈ*AìÈ*AðÈ*AôÈ*AøÈ*AüÈ*ã!7!6!5!4!3!2!1!0!/!.!-!,!+!*!)"(!8 ( "Aj"AÿÿÿK@ At" ("K@ "At" I@ ! A¦˜" ( ü  6  6  6  ž ( Atj" 88  )8  *8  +8  ,8  -8  .8  /8  08  18$  28(  38,  480  584  688  78<  6 Aj!   Ì!7!6!5!4!3!2!1!0!/!.!-!,!+!*!)"( ) * + , - . / 0 1 2 3 4 5 6 7Aå!7!6!5!4!3!2!1!0!/!.!-!,!+!*!)"( ) * + , - . / 0 1 2 3 4 5 6 7 Ì!7!6!5!4!3!2!1!0!/!.!-!,!+!*!)"( ) * + , - . / 0 1 2 3 4 5 6 7ã!7!6!5!4!3!2!1!0!/!.!-!,!+!*!)"(!G 7!K 6!L 5!M 4!N 3!O 2!P 1!Q 0!R /!S .!T -!U ,!V +!W *!X )!YA!@ ( J@ ( Atj(" ("( O@ ( Atj("E@ ! (Œ"AG}  !("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ Š!7!6!5!4!3!2!1!0!/!.!-!,!+!*!)"(!8 6!9 5!: 4!; 3!> 2!< 1!= 0!? /!@ .!A -!B ,!C +!D *!E )!F 7A¬*!9A¨*!:A¤*!;A *!>Aœ*!8l ;8p :8t 98x Z8| (! AÀÈ*AÄÈ*AÈÈ*AÌÈ*AÐÈ*AÔÈ*AØÈ*AÜÈ*AàÈ*AäÈ*AèÈ*AìÈ*AðÈ*AôÈ*AøÈ*AüÈ* *@ *D *H *L *P *T *X *\ *` *d *h *l *p *t *x *|Aå!7!6!5!4!3!2!1!0!/!.!-!,!+!*!)"( ) * + , - . / 0 1 2 3 4 5 6 7ã!7!6!5!4!3!2!1!0!/!.!-!,!+!*!)"( ) * + , - . / 0 1 2 3 4 5 6 7 G Y X W V U T S R Q P O N M L Kã!7!6!5!4!3!2!1!0!/!.!-!,!+!*!)"(!8 ( "Aj"AÿÿÿK@ At" ("K@ At" I@ ! A¦˜" ( ü 6 6 6 ž ( Atj" 88  )8  *8  +8  ,8  -8  .8  /8  08  18$  28(  38,  480  584  688  78< 6 Aj!  %AJ@ ($!AÀ� AЊ  (ÂAðŒ  %A «ÂAà’ Â ("( E@ (("E@ (ÂAàŽÂ! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 #A€j$   #A€j$A "@ #AJ@ ($!A�� AЊ  (ÂAðŒ  #A «ÂA°‹ Â! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  6`  ž     AÔ"6  ž &@  (A ! A  (`A ! (! ( !  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ ! (! A! "(L‰!@ ( J@ ( Atj("! (L"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ @  (G  ( O@ ( Atj(" ((8" ( O@ ( Atj("E@ ("AH ((4" ( M@ ( Atj("E@ ( !A!@ ( J@ ( Atj((" @A! @ ( J@ ( Atj((AN@A  Aj!  Aj!  Aj!  A A !AAä˜""AAAA¤6 AAA.A¤6 AAAåA¤6 AAAæA¤6 ((( !A!@ ( " J@  "M@ ( Atj("@@A! Þ! " ( " "( O@ ( Atj("E@ ( Ak" (" N@ ! ((( !A! @ I@ ("(( OA ("( O@ ( Atj( "@ ( E@ (("E@ (( H} ( E@ (("E@ ("( O@ ( A lj"*!< *!: * *!< *!: * !8 :!> 8!9 ("( H} ( O@ ( A lj"*!: *!8 * *!: *!8 * !;  9 8!9 ;"8  G  ( O@ ( Atj("E@ (( HA }  ( O@ ( Atj("E@ ("( O@ ( A lj"*!= *!; *  F} 9!; : *!; *!8 * != 8 “’8  > 9 ;“’8  < : =“’8 Aj!  ï#!\#B|$ \78A    Ô""((( " ((( G @  I@ (!A  (" (( OA (" ( M@ ( Atj( E  (( OA ("( M@ ( Atj( EG  Aj!  A E@ ($!Aàê ÂAÐŽ  (ÂAÐ� Â! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  AÕªÕ*K@ AA̘"A  AMA l"A¦˜"6  6  6  6 A!@  I@  ("(( OA ("( M@ ( Atj( !  (" (( OA (" ( M@ ( Atj( " A } * *“!9 * *“!8 * *“A *!9Aœ*!8A¤* !:  ( O@ ( A lj" 88  98  :8 Aj!  (! ("( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 (! -}C ƒ !8 ( " Aj" (AvK@  AA™ ( Atj 88  6 ("( " Aj!  (AvK@  AA™ ( Atj" 6  At Ÿ  6 ( "( "Aj!  (AvK@  AA™ ( Atj" A " 6  At  Ÿ  6 Aj!  A (( AJ"@  6  ž  (AAÿÿÿÿŸ"6h  ž  (Aÿÿÿÿ¢"6l  ž (`A ( @ (  û ðAAؘ"A6 A6 A6 A6 Aš! A!@ ( J@  G@ ( Atj(! "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   A Aߘ"A6 A6 A:  6  6 A: Ü( G} ¶"C[@D  “C\@  “ ¥ "-| + P +Õ9 +Õ9 +Õ9 + Õ9 +0Õ90 +8Õ98 WAØAŒ˜"Ö A6  6 " »Õ9 »Õ9( »Õ90 »Õ98 6@ « (D"@ Ö ( "AJ Ak" O@ ( Atj("E@ ( (FA @ Ak œ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ª|    ¡"D@£ ¡™ ™ ™¥Dð?¥"D•Ö&è .>¢e     D@£ ¡™ D•Ö&è .>¢eA @ A6@ ™ D•Ö&è .>¢d@AÐA‹˜"× A6 DUUUUUUÕ?9   ¡ £9 DUUUUUUå?9   ¡ £9 A6@AÐA‹˜"× A6 DUUUUUUÕ?9  9 DUUUUUUå?9  9 A6@ 6D ž Ë|AAë˜"A6 A6 A6 A6  ( ¨!A!@ ( J@  A© Aj!  A!A!@ ( " AjJ@  O@ ( Atj(·! Aj" ( O@ ( Atj(·!  ( O@ ( Atj(· ¡ ¡£! ( M@ Aj" ( O@  ( O@  ( O@ (" Atj+" At j+ ¡ ¢  At j+¡™D�íµ ÷ư>e! Aj!@  J q@  ( O@ ( Atj(· ¡ ¡£!  ( O@ Aj" ( O@  ( O@  ( O@A  (" Atj+" At j+ ¡ ¢  At j+¡™D�íµ ÷ư>d! Aj!  @  A© ! Aj!  AAŽ˜"A6 A6 A6 A6 Aš!A!@ ( J@  ( O@ ( j-@ ( Atj(!  ( O@ ( Atj+!AØAŒ˜"Ö A6  6  Õ9 A6@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ( AJA!@ ( " J@ O@ ( E@ A (" Atj+ +¡™D�íµ ÷ư>d  Aj!  A A @ ( ! AAA™ AJ@ (AjA AkAtü A6  ï }|AAë˜"A6 A6 A6 A6  ( ¨!A!@ ( J@  A© Aj!  A!A!@ ( " AjJ@  O@ ( Atj(·! Aj" ( O@ ( Atj(·!A! Aj!@  L q@  ( O@ ( Atj(· ¡  ¡£¶!  ( O@ A ( Atj"* * * * Aj" ( O@ ( Atj"* * * * ß!!!" ! ! ! !  ( O@  ( Atj"*" C€¿C€?  ” *" ”’ *"” * "”’’C]"”“»™D�íµ ÷ÆÐ>e ”“»™D�íµ ÷ÆÐ>eA   ”“»™D�íµ ÷ÆÐ>eA   ”“»™D�íµ ÷ÆÐ>eA ! Aj!  @  A© ! Aj!  AAŽ˜"A6 A6 A6 A6 Aš!A!@ ( J@  ( O@ ( j-@  ( O@ ( Atj( ( Atj"* * * * A×! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  A!A!@ ( "H q@ O@ ( @ A (" Atj"*" *" C€¿C€?  ” *" *" ”’ *" *" ” * " * "”’’C]"”“»™D�íµ ÷ÆÐ>e ”“»™D�íµ ÷ÆÐ>eA  ”“»™D�íµ ÷ÆÐ>eA    ”“»™D�íµ ÷ÆÐ>eA ! Aj!   ( "AJq@ AAA™ (AjA AkAtü A6  ®#}#A�¥ÁkAÀI@ #A@j"+$AôAé˜"*A6 *A� 6A°*!"A¬*!#A¨*!$A¤*!%A *!&Aœ*!'A˜*!(A”*!)A�*!AŒ*!Aˆ*!A„*!A€*!Aü*!Aø*! *Aô*8 * 8 * 8 * 8 * 8 * 8 * 8 * 8$ * )8( * (8, * '80 * &84 * %88 * $8< * #8@ * "8D *A:H *C8L *C8P *C8T *C8X *C8\ *C8` *C€?8d *C€?8h *C€?8l *C€?8p ((8",( M@ ,( Atj(",E@ ,¦û"-(",Ak(AvE@ ,*! -(",Ak(AvAM@ ,*! -(",Ak(AvAM@ ,*! * 8L * 8P * 8T -(",Ak(AvE@ ,*! -(",Ak(AvAM@ ,*"! -(",Ak(AvAM@ ,*"! -(",Ak(AvAM@ ,* "! * C€?  ”  ”’  ”  ”’’‘•"”  ”  ”  ”!!! !"8X * 8\ * 8` * !8d -(",Ak(AvE@ ,*! -(",Ak(AvAM@ ,*! -(",Ak(AvAM@ ,*! * 8h * 8l * 8p  ((8",( O@ ,( Atj(",E@ +  ,¦úÆ!!!!!!!!!! ! ! ! ! !"          Ñ!!!!!!!!!! ! ! ! ! !"8 + 8 + 8 + 8 + 8 + 8 + 8 + 8 + 8 + 8$ + 8( + 8, + 80 + 84 + 88 + 8<@@ AN@  (X( NA  (\( N A  (\"( O@ ( Atj("E@  ( N @ ( "Aj" (AvK@  AA™ ( Atj"A༠6  At A༠Ÿ  6   (X"( O@  ( ",( ,( ( Atj("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l",Av ,sA÷”¯¯xl",A v ,sA½ÜÊ•|l",Av ,sqAtj(!-@ -@ -(",AqE@ - -( F  ,A~q!-  A  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!,@ ,@ ,("AqE@ , ,( F  A~q!,  A "E@ (A ",AN , ("( O@ ( ,Atj("E@ (\A "E@ ( "Aj" (AvK@  AA™ ( Atj"A ½ 6  At A ½ Ÿ  6   (\"( O@ ( Atj("E@  ( O@ ( Atj("E@  Ñ"AH@AÀø ÂAའÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  * ,6 * 6 * ž  ("( O@ ( Atj("E@ * ("* * *$ * * * * * * *¹!!!!!!!!!! ! ! ! ! !"           +* +* +* +* +* +* +* +* +* +*$ +*( +*, +*0 +*4 +*8 +*(AvO@  AtAС>j*8 AŒ­>(AvO@  AtA�­>j*8 A:% A̸>(AvO@ AtAи>j( "Aq6  AqAG:$ à ##AkA�jA™ Ak!A E#AJr #Ak#AéjAJ #A#kAèk "AN} AlAj"AÌÖ:(AvO@ AtAÐÖ:j* A}lAk"AÌÝ=(AvO@ AtAÐÝ=j* _@A   E #Hr A #k"k #AéjH  #AjAèk "AN} AlAj"AÌÖ:(AvO@ AtAÐÖ:j* A}lAk"AÌÝ=(AvO@ AtAÐÝ=j* `@  @  kAJ@  jAu" E #Hr A #k"k #AéjH  #AjAèk "AN} AlAj"AÌÖ:(AvO@ AtAÐÖ:j* A}lAk"AÌÝ=(AvO@ AtAÐÝ=j* `@ ! !   ›} AH ##AkA�jA™ " Lr@  Œ! Ak"A AN! Ak" Aj"H@ ! CžÉ!@  L@  E #Hr A #k"k #AéjH  #AjAèk "AN} Al"AÌÖ:(AvO@ AtAÐÖ:j*A kAl"AÌÝ=(AvO@ AtAÐÝ=j* “" ”  E #Hr A #k"k #AéjH  #AjAèk "AN} AlAj"AÌÖ:(AvO@ AtAÐÖ:j* A}lAk"AÌÝ=(AvO@ AtAÐÝ=j* “" ”’" ]@ ! ! Aj!   €} AÌæ>(AvO@ AtAÐæ>j(!  A AN"L@ Ak! AŒô>(AvO@  AtA�ô>j(jAl"AÌô>(AvO@  AtAÐô>j*8 Aj"AÌô>(AvO@  AtAÐô>j*8 Aj"AÌô>(AvO@  AtAÐô>j*8 AŒô>(AvO@ AtA�ô>j( Ak  AJjAl! AŒô>(AvO@ AtA�ô>j( Aj   AkHjAl"AÌô>(AvO@ AÌô>(AvO@ Aj"AÌô>(AvO@  AtAÐô>j* AtAÐô>j*“"  ” AtAÐô>j* Aj"AÌô>(AvO@ AtAÐô>j*“" ”’ Aj"AÌô>(AvO@ Aj"AÌô>(AvO@ AtAÐô>j* AtAÐô>j*“" ”’‘"•8   •8   •8 AÌ©?(AvO@  AtAЩ?j* ²C€>”’8 C8 A6 A:$ A:% ì Al"AìÎ9(AvO@  AtAðÎ9j*8 Aj"AìÎ9(AvO@  AtAðÎ9j*8 Aj"AìÎ9(AvO@  AtAðÎ9j*8 Aj"AìÎ9(AvO@  AtAðÎ9j*8 Aj"AìÎ9(AvO@  AtAðÎ9j*8 AÜÀ:(O@  AàÀ:j-AG: ”}AÌÆ:(AvAk!CðA  “CÀ’“CÀ@•ލ!CðA  ’C@’“CÀ@•ލ"AH@A!  Ak"J@ !  H@A A! Aj"AÌÆ:(AvO@ AtAÐÆ:j(! AÌÆ:(AvO@ AtAÐÆ:j(!@  H  Ak(AvHA @ Al"AìÎ9(AvO@ Aj"AìÎ9(AvO@ AtAðÎ9j* “" ” AtAðÎ9j* “" ”’ Aj"AìÎ9(AvO@  AtAðÎ9j*’" ”]@ "Aj!  "Ak(AvO@  Atj 6 Aj!   º AŒç>(AvO@  AtA�ç>j(6 A¬è>(AvO@  AtA°è>j*8 AÌé>(AvO@  AtAÐé>j*8 Aìê>(O@  Aðê>j-AG: A¬ë>(AvO@  AtA°ë>j*8 AÌì>(AvO@  AtAÐì>j*8 Aìí>(AvO@  AtAðí>j*8 AŒï>(AvO@  AtA�ï>j*8 A¬ð>(AvO@  AtA°ð>j(6 è}CðA “CÀ?•ލ"AH AýNr@A CD’CÀ?•! AœÛ+(AvO@  AtA Û+j(Aj²]A AœÛ+(AvO@ A¬û+(AvO@  AtA Û+j( AtA°û+j(jAk²^ @A @ AL@ Al"AÜ«?(AvO@ AtAà«?j*“! Aj"AÜ«?(AvO@  AtAà«?j*“! Aj"AÜ«?(AvO@  AtAà«?j*” Aj"AÜ«?(AvO@  AtAà«?j*”’! Aj"AÜ«?(AvO@  AtAà«?j*` Aj"AÜ«?(AvO@  AtAà«?j*_A  Aj"AÜ«?(AvO@  AtAà«?j*]A @A Aj!  A Ã}@ AH Aj"A¼Ï:(AvO@ AtAÀÏ:j*^A @ Aj!  Aj! A¼Ï:(AvO@ A¼Ï:(AvO@ A¼Ï:(AvO@ AtAÀÏ:j*“ AtAÀÏ:j* AtAÀÏ:j*“•"C]@C! C€?^@C€?! ! Al"AìÏ:(AvO@ Al"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’" ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@  ” AtAðÏ:j*" AtAðÏ:j* “ ”’" ”’ ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@ AtAðÏ:j*" AtAðÏ:j* “ ”’" ”’‘"•8   •8   •8 ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8 ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8 ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8 ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8 ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8 ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8 ! AlA j"AìÏ:(AvO@ AlA j"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8$ ! AlA j"AìÏ:(AvO@ AlA j"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8( ! AlA j"AìÏ:(AvO@ AlA j"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8, ! AlA j"AìÏ:(AvO@ AlA j"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’80 ! AlA j"AìÏ:(AvO@ AlA j"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’84 ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’88 ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8< ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8@ ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8D ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@  AtAðÏ:j*" AtAðÏ:j* “ ”’8H  ! AlAj"AìÏ:(AvO@ AlAj"AìÏ:(AvO@ AtAðÏ:j*" AtAðÏ:j* “ ”’8L ’~A! A j"A€€ MA€€  AjApq A�€ j!#!@@ E ( Ajk" O  Kq@ ! ! " I  "(!  E@#xE@A�¥Ã$x #x! A j"A€€ MA€€  AjApq ­ ­B||"B€€€€Z@ ?¬B†" T@  }Bÿÿ|Bˆ§@AH@ §$x A6 #x6 A6 A6  @  (6 ($ A6 (" A j"A€€ MA€€  AjApq Ajj"kAœ€ O@  6 A6 6 A6 A6 #6 A6 A6 $  ¸ AüÿÿÿK@ AjApqAk"Aj"#f#kK@#8 #8(#kKA @#8@#8#6 ”!#8@#8 6 $e $8 Aj$#$f #fA# A€€j"#8(#k"  Ij"#fkü $f # 6#Aj!# j$  ý~ Aj"A€€K@ AjApq”Aj"A ü  AA Akgk" AI"AtA¬j("@ AtA¬j (6#“#wkA tI@A!@#“#wkA O@@#“#wkA tI@ Ak!  #w" AtA¬j"(6  6#wA tj$w  #xE@A�¥Ã$x #x"­B € |"B€€€€Z@ ?¬B†" T@  }Bÿÿ|Bˆ§@AH@ §$x A6 #x6 A6 A6 #¡6 $¡ Aj$w ($“ #w!#wA tj$w A t"6 Aj"A Akü ` A#jApqAk"Aj”"Aj!  Aj j6 #�6 $�  6 A6 A6  6  6 Aj \ AìÿÿÿK@ A€€O@ —"A ü  Aj•"Ak"A6 A6  6  6 Aj Æ A€€O@ AìÿÿÿK ˜ —  A#jApqAk"Aj"#f#kK@#8 #8(#kKA @#8@#8#6 ”!#8@#8 6 $e $8 Aj$#$f # j$f #" 6 A6 A6  6  6# j$ Aj Ÿ AìÿÿÿK@ A A€€O Ak"(@  ("  I!  ( ™" ü  jA  kü  # Ak" Ak"("jF! Aj"AjApqAk!  I@  #8( kMA @ AüÿÿÿK@ j$##fK@#$f  6  At"  K•" ü !  @ j$#A  kü  6 Ak 6 Aj ®#Ÿ#”F@#”AtAÀ#”"At–!#Ø@ #Ø#ŸAtü #Ø"Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ $Ø $” #Ø#ŸAtj 6#ŸAj$Ÿ ®#‰#•F@#•AtA€#•"At–!#ž@ #ž#‰Atü #ž"Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ $ž $• #ž#‰Atj 6#‰Aj$‰ ©#=#’F@#’AtA€#’"At–!# @ # #=Atü # "Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ $  $’ # #=Atj 6#=Aj$=   E Er A�¥ÃIr A�¥ÃIr@ Ak!#/AF (AFA @ ("AqE@  Ar6 � Ak"(AG@ (" AGA @ (Aq@  (Ar6 œ ï A�¥ÃI@ Ak"("AF@#/AF@ ("AqE@  Ar6 �  A AGA  Ak"(AG@ ("Aq@ Av   ( AvI@#ž#‰Atj!#‰AIA Ak( G A Ak( ArG @  A€j6 Arœ œ   Ar6 œ d Ak"("Aq (AGr@ Av! Aq"  AÿÿÿGA  @  Ar6 œ @  A€r6 Z #]"   KAtj! $R #g"   KAtj!@ I@ ("@  ¢6 Aj!  �  E A�¥ÃIr@  AF@ Ak("AF@ AF AFr AFr@ #e!@ @ AjO (IA @ (!   Ak"("AF@ ("AqE@  Ar6 ›  #�E AFq@#/AF@ ("AqE@  Ar6 �  AF@  AF@ ( #îA AF AFr@  (Aj" AjApqAk" Aj!#ïA#>@#>AAA gk" AOtq!@ @ hAtA€j(!  Akq! (Aj" I  (! AA#/AFA#/AF #¢Gq $ñ (Aj! (! ( "@  6AA gk" AO"AtA€j 6 E@#>A~ wq$> @  6 A6#" j$"  I@@  j"  k"Ak6 A6 A I AA gk" AO"AtA€j"(! A6  6 A6  6 @  6  6#>A tr$>#" #""  Kk$"   A "@  6 Aj› Aj  A#/AF A#[E#/AFq#\AGq A $ñ #‘#™™¬?@A¬¬¬¬¬ý¬’·B™¥™™™¢¯¸C¬�™ú¬D™¬¬¬²™EF™™G™™™ÑH™™™ ¬™¡™—›™›™·™›�¬¸¬‰¯ä­’²·ÊʲIJ™Ë²¸Êˬ·Ê†K™¬LM™NOÊ··P¸QÌ·R™Ë’¬­·™S·T™···À·™²U™™™™™Ë™™·VWX¸žY™™™™™™™™Ë™¬¬Z[™\]™™™™¬˜^ž™¬¬_™™™™¸`Ë®ÀÊ™¯Ë™’a™™™¸áb‡­™™™†cdefgh™™™™™™™™™™™üÓ™ÓÀ†™ÀêíÊ™i™™Ñ·†™’™™üüº·™­™™ú™™°·œj²™²™k™l’™óÒm™™no™™²™p†™™™qr™sæ™›·ø±¬¬Ü™™Üt™Œu™ÕÖÜ×ÜvÜwÕÜܙܨ™Ùx¬¸×Üyz™™{|Ü}~ÜÙÙ€�܂ʟ¬ƒ¬¸á¬¬Ê ™™™ ™™™ ™ ™þ™›™›™™™™™¬Ëˬ„›™™™™¡ËËËËËÀ»­ÊÁÂÊÃÃ…†‡ÃÃÄÅ™¬ˆÃÊòÊÀ¬¬³™Á™Æ¬ÈÈÈÈÈÇÇ‰Š™™™Ä¬øÀ¯¸ò™¬À‹›™™··¿Ë±Œ›››™ÄÄÄÄÄĸµÍ†�™§Ž¬¬À�·¸¯¬¬�™š™¬À±™¬ú­™·ø™ø­‘™™›¢Ë¸¬¬·Á’™æ¬Í­·²À­É£“ÉÉÉ”•¯–¬¬¬¬—› ™›™ø¡ÊÊʘ·™Ø·™™²¬¬–·¬ÊÀ™À› ™ä˙˞²†š™¬–¬†·†›�™–œ�š™™™žÀ··™™Ÿ™�™™�™¬­À ™·™¡™¬À¬ˆ¬ðµº¬¸¬¬¢›™¸™·£­™²™ŽÀ™¤¥ò¦ ™™ ™�™¬§ÀÊÀ¨©™™™™™¥™™·ª«¬™™Ò››™›™·¡­­¬Ê®™™™™™·¯™™™™™™›™�™¬¸¬¬±°±À²³¬¬¬´¬´ï¬™µ™™™Â¥ºÀ·Àʬ¬¬¬¬¬¸¯²¶ŸËÀ·­·À¼¥½À¾À·ÀÀÀÀ¯¸¬¹™º™À¯»¼™¬Ë½­ð˜¾™™ä¿™™·™Í™™™™ÀÁÂÙ™›™À¬’ù¬¯™À™Ä™Å™¸Ë±Æ™™™™™¬ü™Ç™¯Í™ÈÉ™­™ÀÀÀ¬¬Ï¬Ê¬¬À™¬¬Ë™™›™›™™­û’¯¸¸¬ÌÀ™™™™™­Ë›™³ž¥¯¬¸Í™¸¯¬¬±—¬¸Î¬¬Ïˬ°°°°°¬¸¸Ê¸¸Ð™¬‚™¬ÑÒ™™Ó¯›™¬¬¸Ë™ËÔ¯¸¬²’Õ™™¬¯–™™Ö׺ؙ–™™Ù™�™ ™™¿¬–¬À­Ú™™™™¬¬Î™™¬¸¬Û–™™Üˬ¬‰Ý™™™™Þ߬ö¬­¸™­à�™™›´Êá›™›™ËË™“­¸¸¬¸ÿ™™    ™ ™Ë¬º¬¬´·â™¬¡ã䙬嬬¬­ä™´·å­¬¬¬ûÀ·¬¯›æ›¸¸¬ËËË›™›™¬¬²¬¬±–¸¸¬¸¬¬¬¬¬¬¬¬¯ç¯·ÀÀè™™·¸²™é­£¬±¹¬¸¸êÀ™™™À™™™™�™�™úËú¬¥™¬¬ À­¬¯¬·¤ëÀ™™À™™À™™À™™™™›™™™Ÿ�™™Ë¤™ñ¬À¬¬´°¬¬¯¸ºÀ™ž™¬ù™ìÀ¬üÀ™™™¸¬¬¸¬¯Ë¯¯¸Â¸¸·¬¬’°——·™¬¬¬¬°™À·í¬Ë¬À¬¬­·À¬‡™À±¬¬¬¸¬¬¬î·¥‰¬·™¬¬º·˜¬À”ï´ð�™Ë¸ÀÀ’™ò·­²Ê™™™­Ëᙤ¥²™›­áñ›™™™ò¸Î™™’´™Ë¬¬ÀØ™ËÀù¬··ÀóÒô¤¬Í�ˬ¯·õ·±¬¬±·™À¬À™»¬»¬»¸š˜ö·Ë·²™™’˜ßšš“–ú  ÷ñ¬·™²™øùÊúž¬ûü™™™™™™™™™™™™™Àý™·¬ËÀÀú­™¸Ð™ÀþÀÀ·¥ú¬·¬°±±­­™¸·­´�¬À¬ýÀ¬¬±ÀÀ·ÿ¯¯ú𱬸™™Ë€¬··¬·¸¬¬À¸¬¬¬¬¬ÀË�··›™ËË˸·™Ë­¸¬´äœñ™™Ëˬ­¥ÀÀ¬ä­Ë·À™À‚ËËÀƒ¬ÀÀÀ¬À„Ë…†¬¯¸¬±¬¬¬¬À†™™Ë¬óÀ·™·™¥À¬¬¬¬·¸­¬´Ëí¬¬Ëˬ¬¸¸’¬Ô†´¸À±¸¯¯²¢ËÊ˸¢¬¬À·¸·á¤¬­™£¬Œ²Ëü¸À¬¬²û�™Ë�¬·À�™¬Êþ�´·Ê™™Ö™¸¬Ë¯¥‡™·—™ˆÊ™›Ê›‚ʉ›™™­–¬Ê™··²›™·­™²À³¬·�™À¬¬¸™À¸¬¬¬ÀÀÀ™­™À¬¬äʬ·™²À·¬¬·™¬¥¬À¬¬¬¬À¢¥¬¬¬¸·¬¬Ë™Š¤À­¬ÀÀÀÊ·™¸›™ËÀÀ·À‹¬Ë’Œ™¶¬¬¬¬¬¬¬¬¬�­¬¬¬·¬¬ÑŽ��¬¬‘’“¬¬”•–’¬—¬¬¬¬¬­¬˜À™™¬¬¬­¬À¬À¬À·’™š›œ™�î…²žÀ¬à¬¬šË™ËËË­­­­­™šœ™š¥š¥š¥š¥œ™š¥œ™š¥œ™œ™œ™œ™œ™œ™š¥™™™Ë™™Ë™™™Ë›™™™Ë™ËËËËËËËË™ËËËË™ËËËËË˙ˡ™™ËËËËËËË™ËËË™ËËË™™™Ë™™¥Ë™™ËËËË™™Ë™™Ë™¦ËË™ËËËËËËËËËËËËËË˥˙™™Ë™™™™Ë™™ËËË�™Ë¢�™™�™�™¬§™�™¬™œ™¬¬¬¬¬¬¬¬¬¬™š¥š¥š¥š™™™¬£¨™›™™¸™™¡™¬™™�™™™™©™š™™™¸¬¬¬¯¬¬™™™™™¬�¬¬¬¬¬¬¬�™¬™¬™™ž™¬™¬™�™¬�¬¬™ž™™™¸™™™™™™™¬››™™™¬™™š¥™¸¤¸¬™¬¬¬¬¸ú™¬¤¬™ª«¬ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 á ( ¢6 á ( ¢6 ½ ( ¢6 ( ¢6 ( ¢6 ë ( ¢6 ( ¢6 ² ( ¢6 ð ( ¢6 ª ( ¢6 ( ¢6 ý ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 „ ( ¢6 ‡ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (( ¢6( (0 ¢60 ‘ ( ¢6 ‰ ( ¢6 ( ¢6 ( ¢6 (8 ¢68 (H ¢6H (X ¢6X � ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (( ¢6( (, ¢6, (@ ¢6@ (H ¢6H (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (ˆ ¢6ˆ (Œ ¢6Œ (˜ ¢6˜ (œ ¢6œ (Ð ¢6Ð (€ ¢6€ („ ¢6„ ( ¢6 ( ¢6 ( ¢6 (, ¢6, (4 ¢64 • (˜ ¢6˜ (œ ¢6œ (  ¢6  (¤ ¢6¤ (¨ ¢6¨ (¬ ¢6¬ (° ¢6° — (` ¢6` (d ¢6d (h ¢6h (l ¢6l — ( ¢6 ™ ( ¢6 ( ¢6 � (0 ¢60 (4 ¢64 (@ ¢6@ (D ¢6D ¥ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (` ¢6` ­ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (h ¢6h (p ¢6p (t ¢6t (¸ ¢6¸ (¼ ¢6¼ (Ü ¢6Ü (à ¢6à (ì ¢6ì (ð ¢6ð ( ¢6 ( ¢6 Ö ( ¢6 ( ¢6 ­ ( ¢6 ( ¢6 ® ( ¢6 ( ¢6 é ($ ¢6$ (0 ¢60 (< ¢6< (L ¢6L (\ ¢6\ (h ¢6h (t ¢6t ¯ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, ¯ ( ¢6 ° (P ¢6P (´ ¢6´ (¸ ¢6¸ (¼ ¢6¼ (À ¢6À (Ä ¢6Ä (È ¢6È (Ì ¢6Ì (Ð ¢6Ð ° ( ¢6 ³ (H ¢6H » ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ » (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (H ¢6H (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (l ¢6l (p ¢6p (t ¢6t (x ¢6x (| ¢6| (€ ¢6€ » ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (h ¢6h (l ¢6l (p ¢6p » ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (h ¢6h (l ¢6l (p ¢6p (t ¢6t (x ¢6x (| ¢6| (€ ¢6€ („ ¢6„ (ˆ ¢6ˆ (Œ ¢6Œ (� ¢6� (” ¢6” (˜ ¢6˜ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (Ü ¢6Ü (à ¢6à (ä ¢6ä ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 š ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (\ ¢6\ (` ¢6` ¾ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 › ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (l ¢6l (p ¢6p (t ¢6t (x ¢6x (| ¢6| (€ ¢6€ („ ¢6„ ´ ( ¢6 ( ¢6 ( ¢6 ( ¢6 (, ¢6, (0 ¢60 (` ¢6` À ( ¢6 ( ¢6 ( ¢6 (@ ¢6@ (X ¢6X (l ¢6l (t ¢6t ½ ( ¢6 ( ¢6 ($ ¢6$ (, ¢6, (0 ¢60 (H ¢6H (\ ¢6\ (p ¢6p (” ¢6” (˜ ¢6˜ (œ ¢6œ ¿ ( ¢6 Ý ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (@ ¢6@ (D ¢6D ¿ ( ¢6 º (  ¢6  (¤ ¢6¤ (Ì ¢6Ì (¤ ¢6¤ (´ ¢6´ (\ ¢6\ ˜ ( ¢6 (t ¢6t (x ¢6x (| ¢6| (€ ¢6€ („ ¢6„ (ˆ ¢6ˆ (Œ ¢6Œ (� ¢6� (” ¢6” (˜ ¢6˜ (œ ¢6œ (Ø ¢6Ø (Ü ¢6Ü (à ¢6à (è ¢6è (ì ¢6ì (ø ¢6ø (ü ¢6ü (€ ¢6€ („ ¢6„ (ˆ ¢6ˆ (˜ ¢6˜ (œ ¢6œ (¤ ¢6¤ ( ¢6 (( ¢6( Æ ( ¢6 ( ¢6 õ ( ¢6 … ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 Œ ( ¢6 ( ¢6 Ç ( ¢6 ( ¢6 ( ¢6 ² ( ¢6 ( ¢6 ( ¢6 (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (P ¢6P ® (È ¢6È Ä ( ¢6 ( ¢6 Í ( ¢6 Ê ( ¢6 ( ¢6 ( ¢6 ( ¢6 º (à ¢6à ( ¢6 ( ¢6 ( ¢6 ( ¢6 à ( ¢6 ( ¢6 ª ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (, ¢6, (0 ¢60 (4 ¢64 (Œ ¢6Œ (  ¢6  (¤ ¢6¤ (¨ ¢6¨ (¬ ¢6¬ (° ¢6° (´ ¢6´ (¸ ¢6¸ (¼ ¢6¼ (Ì ¢6Ì (Ð ¢6Ð (Ô ¢6Ô (Ø ¢6Ø (Ü ¢6Ü (à ¢6à (ä ¢6ä (è ¢6è (ì ¢6ì (ð ¢6ð (ô ¢6ô (ü ¢6ü (€ ¢6€ (� ¢6� (” ¢6” (˜ ¢6˜ ( ¢6 ( ¢6 Œ ( ¢6 ( ¢6 ¿ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 à ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (0 ¢60 (4 ¢64 (8 ¢68 à ( ¢6 ( ¢6 ( ¢6 ’ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (D ¢6D (H ¢6H (L ¢6L (T ¢6T (X ¢6X (` ¢6` (d ¢6d (h ¢6h (l ¢6l (p ¢6p (t ¢6t (x ¢6x Ÿ ( ¢6 ˜ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (T ¢6T (` ¢6` (h ¢6h (l ¢6l (p ¢6p (x ¢6x (€ ¢6€ (ˆ ¢6ˆ (� ¢6� (” ¢6” (˜ ¢6˜ (œ ¢6œ (  ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 ä ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( â ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ ˜ ( ¢6 ( ¢6 ( ¢6 º ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ ¤ ( ¢6 ( ¢6 ( ¢6 � ( ¢6 ( ¢6 ( ¢6 ( ¢6 ¢ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ ± ( ¢6 ( ¢6 œ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H õ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (, ¢6, (0 ¢60 (8 ¢68 (@ ¢6@ (L ¢6L (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (h ¢6h (l ¢6l (p ¢6p (t ¢6t (x ¢6x (| ¢6| („ ¢6„ (ˆ ¢6ˆ (Œ ¢6Œ (” ¢6” (œ ¢6œ (  ¢6  (¤ ¢6¤ (¨ ¢6¨ (¬ ¢6¬ (° ¢6° (´ ¢6´ (¸ ¢6¸ (¼ ¢6¼ (À ¢6À (Ä ¢6Ä (È ¢6È (Ì ¢6Ì (Ð ¢6Ð (Ô ¢6Ô (Ø ¢6Ø (Ü ¢6Ü (à ¢6à (è ¢6è (ì ¢6ì (ð ¢6ð µ ( ¢6 ( ¢6 ( ¢6 ( ¢6 • ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ¡ ( ¢6 ( ¢6 á ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (H ¢6H (L ¢6L (d ¢6d (h ¢6h (l ¢6l („ ¢6„ (Œ ¢6Œ (” ¢6” (˜ ¢6˜ (œ ¢6œ (  ¢6  (¤ ¢6¤ (¨ ¢6¨ (¬ ¢6¬ (° ¢6° (¸ ¢6¸ (¼ ¢6¼ (À ¢6À (Ä ¢6Ä (È ¢6È (Ì ¢6Ì (Ø ¢6Ø (Ü ¢6Ü (à ¢6à (ä ¢6ä (è ¢6è (ì ¢6ì (ø ¢6ø (ü ¢6ü (€ ¢6€ („ ¢6„ (ˆ ¢6ˆ (Œ ¢6Œ (� ¢6� (” ¢6” (œ ¢6œ (  ¢6  (¤ ¢6¤ (¨ ¢6¨ (¬ ¢6¬ (° ¢6° (´ ¢6´ (¸ ¢6¸ (¼ ¢6¼ (À ¢6À (Ä ¢6Ä (È ¢6È (Ì ¢6Ì (Ð ¢6Ð (Ô ¢6Ô (Ø ¢6Ø (Ü ¢6Ü (à ¢6à (ä ¢6ä (è ¢6è (ì ¢6ì (ð ¢6ð (ø ¢6ø (ü ¢6ü (€ ¢6€ („ ¢6„ (ˆ ¢6ˆ (Œ ¢6Œ (� ¢6� (” ¢6” (œ ¢6œ (¨ ¢6¨ (À ¢6À (Ä ¢6Ä (È ¢6È (Ì ¢6Ì (Ð ¢6Ð (Ô ¢6Ô (Ø ¢6Ø (ì ¢6ì (ð ¢6ð (ô ¢6ô (ü ¢6ü (€ ¢6€ („ ¢6„ (� ¢6� (” ¢6” (˜ ¢6˜ (œ ¢6œ (  ¢6  (¤ ¢6¤ (¨ ¢6¨ (° ¢6° (´ ¢6´ (¸ ¢6¸ (¼ ¢6¼ (À ¢6À (Ä ¢6Ä (È ¢6È (Ì ¢6Ì (Ð ¢6Ð (Ô ¢6Ô (Ø ¢6Ø (Ü ¢6Ü (à ¢6à (ä ¢6ä (è ¢6è (ì ¢6ì (ð ¢6ð (ø ¢6ø (ü ¢6ü (€ ¢6€ („ ¢6„ (˜ ¢6˜ (œ ¢6œ (  ¢6  ( ¢6 ( ¢6 « ( ¢6 — ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 š ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 � ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 › ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (T ¢6T Û ($ ¢6$ (( ¢6( (, ¢6, ˆ ( ¢6 ( ¢6 ( ¢6 ù ( ¢6 ( ¢6 ( ¢6 Ž ( ¢6 ( ¢6 É ( ¢6 ( ¢6 ( ¢6 ( ¢6 È ( ¢6 ì ( ¢6 � ( ¢6 ( ¢6 ô ( ¢6 ó ( ¢6 ( ¢6 Ì ( ¢6 Æ ( ¢6 — ( ¢6 è ( ¢6 ( ¢6 � ( ¢6 â ( ¢6 ( ¢6 ¿ ( ¢6 ø ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( ˆ ( ¢6 Ž ( ¢6 Ê (˜ ¢6˜ (œ ¢6œ (  ¢6  (¤ ¢6¤ (¨ ¢6¨ (¬ ¢6¬ (´ ¢6´ (¸ ¢6¸ ç (˜ ¢6˜ (œ ¢6œ (  ¢6  (¤ ¢6¤ æ (ô ¢6ô (� ¢6� å (” ¢6” ä (ø ¢6ø (œ ¢6œ á ( ¢6 ( ¢6 ( ¢6 ¸ (È ¢6È (Ø ¢6Ø (Ü ¢6Ü (à ¢6à (ä ¢6ä Û (È ¢6È (Ô ¢6Ô ß (Ô ¢6Ô (Ø ¢6Ø Û (Ü ¢6Ü (ô ¢6ô (ø ¢6ø (ü ¢6ü (œ ¢6œ (Ø ¢6Ø (ä ¢6ä (ð ¢6ð (ü ¢6ü („ ¢6„ (ˆ ¢6ˆ (Œ ¢6Œ (  ¢6  (¤ ¢6¤ (° ¢6° (´ ¢6´ (Ä ¢6Ä (Ì ¢6Ì Þ (È ¢6È (ô ¢6ô Û (Ø ¢6Ø Ü (Ü ¢6Ü Û (Ð ¢6Ð Ú ( ¢6 ( ¢6 ‰ ( ¢6 Ó ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ý (8 ¢68 (< ¢6< (@ ¢6@ ¼ (8 ¢68 » ( ¢6 ( ¢6 ( ¢6 ( ¢6  (, ¢6, (ä ¢6ä Á ( ¢6 ( ¢6 (P ¢6P (T ¢6T á ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, ¿ ( ¢6 ý ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 Í ( ¢6 ($ ¢6$ (, ¢6, (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H ¼ ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 » ( ¢6 Ô ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ö ( ¢6 ( ¢6 ( ¢6 ( ¢6 Ë (ü ¢6ü (€ ¢6€ („ ¢6„ (ˆ ¢6ˆ (Œ ¢6Œ (� ¢6� (” ¢6” (˜ ¢6˜ (œ ¢6œ ² ( ¢6 ( ¢6 µ ( ¢6 ´ ( ¢6 (\ ¢6\ ´ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 · ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 Ý ( ¢6 ( ¢6 ( ¢6 (< ¢6< ± ( ¢6 ( ¢6 ¬ ( ¢6 ˜ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ Þ ( ¢6 ( ¢6 é ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (, ¢6, (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (h ¢6h (l ¢6l (p ¢6p (t ¢6t (x ¢6x (| ¢6| („ ¢6„ (ˆ ¢6ˆ (Œ ¢6Œ (� ¢6� (œ ¢6œ (  ¢6  (¤ ¢6¤ (� ¢6� (” ¢6” (° ¢6° (´ ¢6´ (¸ ¢6¸ (¼ ¢6¼ (À ¢6À ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 Þ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ì ( ¢6 Æ ( ¢6 Ö ( ¢6 ö ( ¢6 É ( ¢6 ( ¢6 ( ¢6 ã ( ¢6 ( ¢6 ( ¢6 ¸ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (¨ ¢6¨ Æ ( ¢6 ( ¢6 ( ¢6 (¤ ¢6¤ å ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (0 ¢60 (H ¢6H ” ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (L ¢6L (P ¢6P (X ¢6X (` ¢6` (d ¢6d (h ¢6h (| ¢6| („ ¢6„ (ˆ ¢6ˆ (Œ ¢6Œ (¨ ¢6¨ (¬ ¢6¬ (° ¢6° (¸ ¢6¸ (¼ ¢6¼ (À ¢6À (Ä ¢6Ä (Ì ¢6Ì (Ð ¢6Ð (Ô ¢6Ô (Ø ¢6Ø (ì ¢6ì (ð ¢6ð (ü ¢6ü (€ ¢6€ („ ¢6„ (ˆ ¢6ˆ (Œ ¢6Œ (” ¢6” (˜ ¢6˜ (œ ¢6œ ( ¢6 Ä ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (D ¢6D (H ¢6H (L ¢6L (P ¢6P � ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 › ( ¢6 ( ¢6 ( ¢6 ( ¢6 à ( ¢6   ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (0 ¢60 (4 ¢64 (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (l ¢6l (t ¢6t (x ¢6x (| ¢6| ¸ ( ¢6 Þ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (( ¢6( (T ¢6T ß ( ¢6 ( ¢6 � ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (T ¢6T (X ¢6X (  ¢6  (¤ ¢6¤ (¨ ¢6¨ (´ ¢6´ (È ¢6È (Ì ¢6Ì (Ð ¢6Ð (Ô ¢6Ô (Ø ¢6Ø (Ü ¢6Ü (à ¢6à (ä ¢6ä (è ¢6è × ( ¢6 ( ¢6 ( ¢6 (� ¢6� (  ¢6  (¤ ¢6¤ ó ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P ” ( ¢6 · ( ¢6 ˆ ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ ‡ ( ¢6 ( ¢6 ‚ ( ¢6 ( ¢6 ƒ ( ¢6 s ( ¢6 ( ¢6 ( ¢6 r ( ¢6 ú ( ¢6 ( ¢6 ¡ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ¸ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ž ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ ¼ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ÷ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( â ( ¢6 ð ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ˆ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (D ¢6D (H ¢6H (L ¢6L (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (h ¢6h ã ( ¢6 ( ¢6 ( ¢6 ù ( ¢6 (4 ¢64 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P Å ( ¢6 ( ¢6 ( ¢6 (0 ¢60 ü ( ¢6 ( ¢6 ( ¢6 (  ¢6  (¤ ¢6¤ (¨ ¢6¨ (¬ ¢6¬  ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (4 ¢64 (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (l ¢6l (p ¢6p (t ¢6t (x ¢6x Ñ ( ¢6 ( ¢6 ( ¢6 (8 ¢68 (H ¢6H (L ¢6L (P ¢6P (T ¢6T (  ¢6  (¨ ¢6¨ (¬ ¢6¬ (° ¢6° (´ ¢6´ (¸ ¢6¸ (¼ ¢6¼ (À ¢6À (Ä ¢6Ä (È ¢6È (Ì ¢6Ì (Ð ¢6Ð (Ô ¢6Ô (ì ¢6ì (ð ¢6ð (œ ¢6œ (  ¢6  (¤ ¢6¤ (¨ ¢6¨ (° ¢6° (´ ¢6´ (¼ ¢6¼ (È ¢6È (Ì ¢6Ì (Ð ¢6Ð (Ô ¢6Ô (Ø ¢6Ø (à ¢6à (ä ¢6ä (è ¢6è (ì ¢6ì (ø ¢6ø (€ ¢6€ („ ¢6„ (˜ ¢6˜ (œ ¢6œ (¨ ¢6¨ (¬ ¢6¬ (À ¢6À (Ä ¢6Ä (È ¢6È (Ì ¢6Ì (ð ¢6ð (ô ¢6ô (ø ¢6ø (€ ¢6€ (ˆ ¢6ˆ (Œ ¢6Œ (� ¢6� (œ ¢6œ ( ¢6 ( ¢6 ( ¢6 ¼ ( ¢6 ( ¢6 ± ( ¢6 ( ¢6 ( ¢6 ( ¢6 ³ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ¤ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ ª ( ¢6 ( ¢6 ( ¢6 ( ¢6 ¿ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ô ( ¢6 é ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (d ¢6d (h ¢6h ö ( ¢6  ( ¢6 ( ¢6 g ( ¢6 ( ¢6 e ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (8 ¢68 (@ ¢6@ (D ¢6D ¹ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( › ( ¢6 ( ¢6 ( ¢6 ( ¢6 ö ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( ñ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (@ ¢6@ (D ¢6D (H ¢6H (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (h ¢6h (l ¢6l (t ¢6t (x ¢6x (€ ¢6€ („ ¢6„ (ˆ ¢6ˆ (Œ ¢6Œ (� ¢6� (” ¢6” (œ ¢6œ (  ¢6  (¤ ¢6¤ (¨ ¢6¨ (¬ ¢6¬ ¶ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D Œ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (, ¢6, (0 ¢60 (8 ¢68 (@ ¢6@ (h ¢6h (¨ ¢6¨ È ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 Ž ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 Ÿ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (( ¢6( (, ¢6, (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (˜ ¢6˜ (¤ ¢6¤ (¨ ¢6¨ (¬ ¢6¬ (´ ¢6´ (¸ ¢6¸ (¼ ¢6¼ (Ä ¢6Ä ² ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D ® ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (< ¢6< (D ¢6D (H ¢6H (L ¢6L (P ¢6P (X ¢6X (€ ¢6€ („ ¢6„ (� ¢6� (” ¢6” (  ¢6  (¤ ¢6¤ (° ¢6° (´ ¢6´ (À ¢6À (Ä ¢6Ä (ø ¢6ø ( ¢6 ( ¢6 ( ¢6 ¢ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 Y ( ¢6 ‡ ( ¢6 ( ¢6 (, ¢6, (t ¢6t (x ¢6x (| ¢6| ­ ( ¢6 ( ¢6 ( ¢6 v ( ¢6 (P ¢6P (T ¢6T À ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 — ( ¢6 (8 ¢68 Ÿ ( ¢6 ( ¢6 ¬ ( ¢6 Ó ( ¢6 © ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( í ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< D ( ¢6 ( ¢6 { ( ¢6 ( ¢6 m ( ¢6 ( ¢6 (L ¢6L (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` ß ( ¢6 ( ¢6 Æ ( ¢6 ( ¢6 ‡ ( ¢6 ( ¢6 » ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 h ( ¢6 ¾ ( ¢6 ¤ ( ¢6 ( ¢6 ± ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ž ( ¢6 ( ¢6 û ( ¢6 ä ( ¢6 ù ( ¢6 w ( ¢6 À ( ¢6 ( ¢6 ( ¢6 ( ¢6 µ ( ¢6 ( ¢6 ( ¢6 ( ¢6 9 ( ¢6 ( ¢6 h ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (8 ¢68 (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L : ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (, ¢6, (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ 9 ( ¢6 ê ( ¢6 ( ¢6 ( ¢6 þ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, » ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 ñ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D Ú ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ ¡ ( ¢6 ( ¢6 ( ¢6 ) ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ ( ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (Œ ¢6Œ (  ¢6  (¨ ¢6¨ ' ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (l ¢6l Ï (œ ¢6œ (¼ ¢6¼ (À ¢6À (Ä ¢6Ä (Ì ¢6Ì (Ð ¢6Ð (Ô ¢6Ô (Ø ¢6Ø (Ü ¢6Ü (T ¢6T û ( ¢6 “ ( ¢6 æ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (4 ¢64 (8 ¢68 (< ¢6< ú ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (h ¢6h (l ¢6l (p ¢6p (t ¢6t (x ¢6x (| ¢6| (€ ¢6€ ÷ ( ¢6 ( ¢6 (\ ¢6\ (h ¢6h („ ¢6„ (ˆ ¢6ˆ (° ¢6° ( ¢6 ( ¢6 ( ¢6 ( ¢6 (l ¢6l (p ¢6p (t ¢6t (x ¢6x (| ¢6| (Œ ¢6Œ (˜ ¢6˜ (œ ¢6œ (  ¢6  (¨ ¢6¨ (¬ ¢6¬ (° ¢6° (´ ¢6´ (Ä ¢6Ä ¶ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (¤ ¢6¤ (¨ ¢6¨ (¬ ¢6¬ (° ¢6° ù ( ¢6 ( ¢6 ( ¢6 q ( ¢6 › ( ¢6 ( ¢6 : ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (0 ¢60 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (¬ ¢6¬ (° ¢6° (´ ¢6´ (¸ ¢6¸ (¼ ¢6¼ (À ¢6À (Ä ¢6Ä (Ì ¢6Ì (Ð ¢6Ð (Ô ¢6Ô (ü ¢6ü (! ("$R #g"   IAtj! #]"   KAtj!@  I@ (AqE@ ("@   ¢6 Aj!  (" ¢" G@ 6  ¢" k"@ 6  (AjAtj!@  I@ ("@   j6 Aj!   (Atj!@ K@ ("A~q"@   j Aqr6 Aj!   ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( Þ ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 è (! (" ¢" G@ 6  ¢" k"@ 6  (AjAtj!@  I@ ("@   j6 Aj!   (Alj!@ K@ ("A~q"@   j Aqr6 Aj!   Ç  Ç  (! (" ¢" G@ 6  ¢" k"@ 6  (AjAtj!@  I@ ("@   j6 Aj!   (Atj!@ K@ (D"A~q"@   j Aqr6D A€j!   ‹ ( ( ¡ (" ¢!  G@ 6 (  kj6 } (! (" ¢" G@ 6  ¢" k"@ 6  (AjAtj!@  I@ ("@   j6 Aj!   (Atj!@ K@ ("A~q"@   j Aqr6 Aj!   ‹ ( ¢6  ( ¢6 ( ¢6  ( ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ ( ¢6  ( ¢6 ( ¢6 ( ¢6  ( ¢6  ( ¢6 ( ¢6 j (@ ¢6@ (D ¢6D (H ¢6H ( ¢6 ( ¢6 ( ¢6 © ( ¢6  ( ¢6  ( ¢6 ( ¢6  ( ¢6  ( ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6  ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (4 ¢64  ( ¢6  ( ¢6  ($ ¢6$ (, ¢6, (4 ¢64 (P ¢6P (\ ¢6\ (d ¢6d (¨ ¢6¨ (¼ ¢6¼ (Ì ¢6Ì (Ð ¢6Ð (Ô ¢6Ô (è ¢6è (ü ¢6ü („ ¢6„ (” ¢6” (œ ¢6œ (¼ ¢6¼ (Ì ¢6Ì (Ø ¢6Ø (ì ¢6ì (ð ¢6ð (ô ¢6ô  ($ ¢6$ (( ¢6(  (( ¢6( ($ ¢6$  ( ¢6 ( ¢6 ( ¢6 . ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6  ( ¢6  ( ¢6 ( ¢6 ( ¢6  ( ¢6 ( ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6  ( ¢6 ( ¢6 ( ¢6 i ( ¢6  ( ¢6 ( ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$  ( ¢6 (( ¢6(  ($ ¢6$ (, ¢6, ( ¢6 € ( ¢6 ( ¢6  ( ¢6 ( ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6  ( ¢6  ( ¢6 ( ¢6 ( ¢6  ( ¢6 ˜ ( ¢6 H ( ¢6 2 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 V ( ¢6  ( ¢6  ( ¢6  ( ¢6  ( ¢6  ( ¢6 ( ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 I ( ¢6 ( ¢6  ( ¢6 ( ¢6 ( ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, ; ( ¢6 p ( ¢6 ( ¢6 ( ¢6 ! ( ¢6  ( ¢6 ( ¢6 ( ¢6  ( ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6 I ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D * (€ ¢6€ x ( ¢6  ( ¢6 ( ¢6  ( ¢6 ( ¢6 ( ¢6  ( ¢6 ( ¢6 ( ¢6 (8 ¢68 (< ¢6< (@ ¢6@ o (¬ ¢6¬ (´ ¢6´ (p ¢6p (X ¢6X (\ ¢6\ (` ¢6`  ( ¢6 (` ¢6` (d ¢6d (h ¢6h (l ¢6l (p ¢6p (t ¢6t (x ¢6x (| ¢6| (€ ¢6€ („ ¢6„ (ˆ ¢6ˆ (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P ( ¢6  ( ¢6 ( ¢6 ( ¢6  ( ¢6 ( ¢6 ( ¢6  ( ¢6  ( ¢6 ( ¢6 (X ¢6X (\ ¢6\ ( ¢6 (L ¢6L ( ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (d ¢6d (h ¢6h (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (H ¢6H ($ ¢6$ (( ¢6( (0 ¢60 (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (h ¢6h (l ¢6l (p ¢6p (t ¢6t (x ¢6x (| ¢6| (€ ¢6€ (8 ¢68 / (, ¢6, (4 ¢64 (Ø ¢6Ø D ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, & (d ¢6d (˜ ¢6˜  (è ¢6è  (È ¢6È (Ì ¢6Ì  (Ü ¢6Ü  (È ¢6È  (  ¢6   (à ¢6à ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 (( ¢6( (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (¬ ¢6¬ (° ¢6° (¸ ¢6¸ (¼ ¢6¼ (, ¢6,  (Œ ¢6Œ (t ¢6t (x ¢6x (| ¢6| ( ¢6 ( ¢6 ( ¢6 ( ¢6  ( ¢6 ( ¢6 ( ¢6  (H ¢6H (L ¢6L (P ¢6P (T ¢6T (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (h ¢6h (l ¢6l (p ¢6p (t ¢6t (€ ¢6€ („ ¢6„ (ˆ ¢6ˆ (Œ ¢6Œ (� ¢6� (X ¢6X (\ ¢6\ (` ¢6` (d ¢6d (h ¢6h (l ¢6l (¬ ¢6¬ ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (( ¢6( (, ¢6, (0 ¢60 (4 ¢64 (8 ¢68 (< ¢6< (@ ¢6@ (D ¢6D (H ¢6H (L ¢6L (P ¢6P (T ¢6T ( ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$  ( ¢6 (( ¢6( (0 ¢60 (4 ¢64  (4 ¢64 (< ¢6< (( ¢6( (, ¢6, (0 ¢60 (8 ¢68 (Ì ¢6Ì ( ¢6  ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ( ¢6 ($ ¢6$ (< ¢6<  (ô ¢6ô (ø ¢6ø (ü ¢6ü (€ ¢6€ (@ ¢6@ (Ä ¢6Ä (X ¢6X  (” ¢6” (\ ¢6\ (` ¢6` (H ¢6H (L ¢6L (P ¢6P (T ¢6T (X ¢6X (´ ¢6´ (¸ ¢6¸ (Ü ¢6Ü („ ¢6„ (D ¢6D (" ¢"6 ( j k6 ( ( ¡  (! (""$R #g"   KA lj! #]"   KA lj!@  I@ (AqE@ ("@   ¢6 ("@   ¢6 A j!  Ak(Av ¡ (! ("$R #g"   IA lj! #]"   KA lj!@  I@ (AqE@ ("@   ¢6 A j!   (! ("$R #g"   IAtj! #]"   KAtj!@  I@ ( AqE@ ("@   ¢6 Aj!   (!  ! "(! ("$R #g" KA lj! #]" KA lj! @  I@ (AqE@ ("@  ¢"6 G@ (" (" A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj"  A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s qAtj"G@ (A~q!A! (!@  G@ @ "(A~q!  @  (Aqr6  6  (6  6 ("@  ¢6 A j!  (" ¢" G@  6  ¢" k"@  6  (AjAtj!@  I@ ("@   j6 Aj!  (A lj!@ I@ ("A~q"@  j Aqr6 A j!   ! "(! ("$R #g" KAtj! #]" KAtj! @  I@ (AqE@ ("@  ¢"6 G@ (" (" A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj"  A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s qAtj"G@ (A~q!A! (!@  G@ @ "(A~q!  @  (Aqr6  6  (6  6 Aj!  (" ¢" G@  6  ¢" k"@  6 (AjAtj!@ I@ ("@  j6 Aj!   (Atj!@ K@ ("A~q"@   j Aqr6 Aj!   (! (" ¢" G@ 6  ¢" k"@ 6  (AjAtj!@  I@ ("@   j6 Aj!   (Alj!@ K@ ("A~q"@   j Aqr6 Aj!   (! ("$R #g"   IA lj! #]"   KA lj!@  I@ (AqE@ ("@   ¢6 A j!   (!  (" ¢!  G@ 6 (  kj6  (" ¢" G@ 6  ¢" k"@ 6  (AjAtj!@  I@ ("@   j6 Aj!   (A lj!@ K@ ("A~q"@   j Aqr6 A j!   (" ¢" G@ 6  ¢" k"@ 6  (AjAtj!@  I@ ("@   j6 Aj!   (Atj!@ K@ ( "A~q"@   j Aqr6 Aj!  JAA¦˜ AA¦˜6 A6AA¦˜ A0A¦˜6 A6 A6 A6 4 Aÿÿq"A€I@#- Atj(  AA˜" ;  M ( "AtA˜! (!A!@ NE@  Atj  Atj(; Aj!   v A€I"@ @#- Atj(  AA˜!  A AÿÿK"tA˜! @  A€€k"AÿqA€¸rAt A vA€°rr6  ;  E Ak(AvE@A�   /"A€I@#- Atj(  AA˜" ;  I Ak(A~q" Ak(A~q"j"E@A�  A™" ü  j  ü  Ò A AJ" Ak(Av"  H Ak(Av"k"AH@A  Atj! "AO Aq AqrA E@@ ) )Q@ Aj! Aj! Ak"AO  @@ "Ak! E /" /"G@  k  Aj! Aj!  A E Ë F@A E Er@A Ak(Av" Ak(AvG@A  ! "AO Aq AqrA E@@ ) )Q@ Aj! Aj! Ak"AO  @@ "Ak! E /" /"G@  k  Aj! Aj!  A E € A AJ" Ak(Av"  H! Ak(Av"E@  E@A  k!@  L@ ! Atj! "AO Aq AqrA E@@ ) )Q@ Aj! Aj! Ak"AO  @@ "Ak! E /" /" G@  k  Aj! Aj!  A @ Aj!   A ê Ak(Av" Ak(Av"k! E@  E@A @ AN@ ! Atj! "AO Aq AqrA E@@ ) )Q@ Aj! Aj! Ak"AO  @@ "Ak! E /" /"G@  k  Aj! Aj!  A @ Ak!   A Ò A AJ" Ak(Av"  H" Ak(Av"j J@A  Atj! "AO Aq AqrA E@@ ) )Q@ Aj! Aj! Ak"AO  @@ "Ak! E /" /"G@  k  Aj! Aj!  A E Æ A AJ" Ak(Av"  H"" A AJ"   H"  HAt!    HAt" k"E@A�  E  AtFq@  AF@ j/"A€I@#- Atj(  AA˜" ;   A™" j ü  ƒ Ak(Av"At!@  jAk/"A€rA F A kAMr A€-I A A€@jA M @@ A€-F A¨ÀF A©ÀF A¯ÀF AßÀF A€àF AÿýF  A  A   @ Ak!  @  K j/"A€rA F A kAMr A€-I A A€@jA M @@ A€-F A¨ÀF A©ÀF A¯ÀF AßÀF A€àF AÿýF  A  A A @ Aj!   k"E@A�  E  AtFq@  A˜" j ü  · Ak(Av"At!AÜÜ(A~q"E  Lr@  At" k! A˜!  I@  Ak n" l"k! "  lj!@  I@ AàÜ ü  j!   jAàÜ ü  AàÜ ü  j ü  † Ak(Av! AHA ¬ ¬~B€€€€V @ E Er@A�  AF@   lAtA˜""  At"lj!@  ME@  ü  j!   Å ~ Ak(Av" Ak(Av" M@  I    Ä  Ak(Av! E@ E@  ­ Aj­ ­~|" #¬V@ §AtA˜"  Atü !@  OE@  Atj Atj/;  Aj"Atj  Atü  j! Aj!    F@ At"A˜" ü @  Å"As@  Atj  Atü  j!   !@  Å" As@  Ak(AGA E@ AtA˜! k" j j" K@  At"  K"Atš!  Atj Atj Atü   j"Atj  Atü  j! j!   Ak(A @  k" j K@  At"Atš! @  Atj Atj Atü  j" I  Atš   ² E@AA¦˜!AA˜" 6  ž  6 A6 A6 ( 6  Ak(Av!@ Ak(Av"@ E@AA¦˜!AA˜" 6 ž 6 A6 A6 (A� 6   E Aÿÿÿÿ  AÿÿÿÿF"At"A¦˜!AA˜" 6  ž  6  6  6 (!@  H@AA˜" Atj/;  Atj 6  ž Aj!   AA¦˜!AA˜" 6  ž  6 A6 A6 @  Å"As@  k"AJ@ At"A˜" Atj ü ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ ( "Aj" (AvK@  AA™ ( Atj"A� 6  At A� Ÿ  6 Aj" AÿÿÿÿF@   j!  E@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6   k"AJ@ At"A˜" Atj ü ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ ( "Aj" (AvK@  AA™ ( Atj"A� 6  At A� Ÿ  6  AA¦˜!AA˜" 6 ž 6 A6 A6 Õ  Ak(Av"E@  AtA˜!@  I@ Atj/"Av@@ Aÿ¯kA�I  AkIq@ Atj/"Aÿ·kA�I@ Aj! Aÿq "AÿqA trA€€j"A€€O@  Atj  Atr6 Aj!  A°F@  AtjA逜6 Aj! A£F@AÃ!  AtjAÂAà AKA! "Ak"A AN! @  J@A AL  AkAtj/"A€øqA€¸F Ak"ANq@ Aÿq Atj/"AÿqA tjA€€j A€øqA€°F  Aýÿ  A€ðqA€°F ""Aðƒ8I AvA  j-AtA  j AÿqAvj- AqvAqA   A€€NAjk! A AŠãI AvA€”j-AtA€”j AÿqAvj- AqvAqA E A ! A E  Aj"Aj"   H!@  J@ Atj"/"A€øqA€°F Aj Gq@ /"A€øqA€¸F@ A t jA€¸ÿk! Aðƒ8I AvA  j-AtA  j AÿqAvj- AqvAqA @  A€€OAjj!  AŠãI AvA€”j-AtA€”j AÿqAvj- AqvAqA E  A A ; A¶ÉkAM@  Atj Aj; AÐAÿÿÿq"A€€I@  Atj ;  Atj A€€k"AÿqA€¸rAt A vA€°rr6 Aj!   Atj Aà·j-; Aj! Aj!   Atš ˜  Ak(Av"E@  AlA˜!Aü±(Av! @  I@ Atj/"Av@@ Aÿ¯kA�I  AkIq@ Atj/"Aÿ·kA�I@ Aj! Aÿq "AÿqA trA€€j"A€€O@  Atj  Atr6 Aj!  AÐÉkAM@  Atj Ak;A! AßkA¸ôM@ ! !A!@  N@  jAvAt" AtA€²j/ k! E  Av@ Aj! Ak!  A ! As@ AtA€²j"/!  Atj" (6  ;  AGAjj! AÐAÿÿÿq"A€€I@  Atj ;  Atj A€€k"AÿqA€¸rAt A vA€°rr6 Aj!   Atj A€Üj-; Aj! Aj!   Atš ˜ Aÿq"ApAtA Íj( Av"A°¸j-AÖlA°¸j Anj-lA vAp A°Íj-jAtA°Ñj("Aÿq! Au! AI@ A  skqj Aÿq! Av!@ @  Av" jAtAðØj-"F@  jAtAðØj-AtA°Ñj("Aÿq"AI@ A  sk Auqj Aj Atk  I   j!  k !  ¹ Atj! !@ I@ /"A€I  : Aj A€I  AvAÀr A?qA€rAtr; Aj A€ðqA€°F@ A€¸I Aj Iq@ /"A€øqA€¸F@  AÿqA tA€€j Aÿqr"AvAðr A?qA€rAt AvA?qA€rAtr A vA?qA€rAtrr6 Aj! Aj!   A vAàr AvA?qA€rAtr;  A?qA€r: Aj ! Aj!   k ² j! AtA˜"!@@ O -! Aj! A€q@ F  -A?q! Aj! AàqAÀF@   AqAtr; F  -A?q! Aj! AðqAàF@ AqA t Atr r! F  -A?q AqAt A tr Atrr! Aj! A€€I@  ;  A€€k"AÿqA€¸rAt A vA€°rr6 Aj!   ; Aj!    kš žAA##£"#î!@ #I@# A lj"(" E A�¥ÃIr   Ak"("AF A #� AF  AF@ (  AF@ A (Aq  A ! I@  G@ Aj!  @  6 Aj! (! (!#´#˜F@#˜AtAÀ#˜"At–!#Ù@ #Ù#´Atü #Ù"Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ $Ù $˜ #Ù#´Atj" 6  6#´Aj$´ ##Ak"A ljA ü $  #$ æ  ïAA¦˜!AAÒ˜" 6  ž  6 A6 A6 6AA¦˜!AA.˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6 A6 A6 A: A6 A6 A6 A:$ A:% k AÐÒA�ÓAÀÓAàÓ¸ A€ÔAÀÔAàÔA€Õ¸ A ÕAàÕA€ÖA Ö¸ AÀÖAðÖA�×A°×¸ AÐ×A€ØA ØAÀظ žA,Až˜"A6 A6 A6 A6 A6 A6 A6 A6 A€A›˜"A� 6AA¦˜!AA˜" 6  ž  6 A6 A6  6AA¦˜!AAë˜" 6  ž  6 A6 A6  6 A6 A6 A6 A6 D9 D9( Dð?90 A68 A� 6< A:@ A:A A� 6D A� 6H A� 6L A� 6P A:T A:U A:VAA¦˜!AAë ˜" 6  ž  6 A6 A6  6X B7` A:h A:i A:j A6l B7p B7xAA¦˜!AA˜" 6  ž  6 A6 A6  6€AA¦˜!AA˜" 6  ž  6 A6 A6  6„ B7ˆAA¦˜!AAœ˜" 6  ž  6 A6 A6  6�AA¦˜!AA˜" 6  ž  6 A6 A6  6” A6˜ A:œ A6  A6¤ A6¨ A:¬ A6°A8A‡ ˜"‚  6´ A6¸ A:¼ A:½ A6À A6Ä A:È D9Ð A:Ø Dð¿9à A:è B7ð A� 6ø A6ü 6$ A:( nA AÔ˜!AAÕ˜"A6 6AAÕ˜"A6 6AAÕ˜"A6 6 D9 D9 AAÚ˜ `AAÛ˜!AAÕ˜"A6 6AAÕ˜"A6 6AAÕ˜"A6 6 A6 A6 ¡AèAݘ"A:AAÕ˜"A6 6AAÕ˜"A6 6AAÕ˜"A6 6 AAÕ˜"A6 6AAÕ˜"A6 6AAÖ˜"A6 6AAÕ˜"A6 6AAÕ˜"A6 6 AAÕ˜"A6 6$AAÕ˜"A6 6(AAÕ˜"A6 6,AAÕ˜"A6 60AAÕ˜"A6 64AAÕ˜"A6 68AAÕ˜"A6 68\ C€?8` C8d C8h C8l C8p C8t C8x C ×£<8| C€?8€ CðA8„ Cš™>8ˆ C€?8Œ A6� A:” A€6˜ „ A6 A6 A6 A6 C€?8 C8 C8 C8 C8 C€?8$ C8( C8, C80 C84 C€?88 C8< C8@ C8D C8H C€?8L C8P C8T C8X C8\ C8` C8d C8h C8l C8p C8t C8x C8| C8€ C8„ C8ˆ C8Œ C8� C8” C8˜ C8œ C8  C8¤ C8¨ C8¬ C8° C8´ C8¸ C8¼ C8À C8Ä C8È C8Ì C8Ð C8Ô C8Ø C8Ü C8à C8ä C8è C8ì C8ð C8ô C8ø C8üAAÚ˜"A€A¦˜"6  6 A€6 A6 6€ AAÓ˜"A€A¦˜"6 6 A€6 A6 6„ · A6 A6 B7 B7 A6AAô˜ A€Aô˜6AA-˜ A€A-˜6 AAô˜ A€Aô˜6$AA-˜ A€A-˜6(AAô˜ A€Aô˜6,AA-˜ A€A-˜60AAô˜ A€Aô˜64AA-˜ A A-˜68AAô˜ A„Aô˜6ˆ„"B?‡"…! B‡ …"y!  † BÀ }ˆ„"Bÿÿÿÿƒ! B ˆ"B´„£‹~ B¢µ¿È ~ B´„£‹~" B ˆ|" Bÿÿÿÿƒ|! B¢µ¿È ~ B ˆ| B ˆ|$Ý Bÿÿÿÿƒ B †|" ºD„pQ̘8?¢  †ºD-DTû!9?¢ ±"T­#Ý"B ˆ|º$a  B5† B ˆ„|ºDð;¢$b#aB€€€€€€€Ø< B4†} …B€€€€€€€€€ƒ„¿" ¢$a#b ¢$b B>‡ }§ ¤| ½B ˆ§"AÿÿÿÿqA¨¨–ÿO"@D-DTû!é? AH| š! š ¡D\3&¦�< ¡ !D! ¢" ¢!    ¢"     DsS`ÛËuó¾¢D¦’7 ˆ~? ¢DeòòØDC? ¢D(VÉ"mm? ¢D7Ö„ôd–? ¢DzþÁ?       DÔz¿tp*û>¢Dé§ð2¸? ¢Dh�÷&0? ¢DƒàþÈÛW? ¢D“„néã&‚? ¢DþA³º¡«? ¢ ¢  ¢  DcUUUUUÕ?¢ " ! @A AuAqk· ·"  ¢   £ ¡¡D@¢¡¢ AF@  Dð¿ £"½B€€€€pƒ¿"   ½B€€€€pƒ¿"¢Dð?     ¡¡¢ ¢  Ï|~ ½"B ˆ§"Aÿÿÿÿq"A€€ÀÿO@ § A€€ÀÿkrE@ AH@D-DTû! @ D D ¡£ A€€€ÿI@ A€€€ãM@D-DTû!ù? D-DTû!ù? D\3&¦‘< ¢" D ÷ý á=?¢Dˆ²uàïI? ¢D;�hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ D‚’.±Å¸³?¢DY�læ¿ ¢DÈŠYœå*@ ¢DK-Š':À ¢Dð? £¢¡¡¡ AH@D-DTû!ù? Dà?¢Dà? "Ÿ" D ÷ý á=?¢Dˆ²uàïI? ¢D;�hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ D‚’.±Å¸³?¢DY�læ¿ ¢DÈŠYœå*@ ¢DK-Š':À ¢Dð? £ ¢D\3&¦‘¼  ¡D@¢ Dà? Dà?¢¡"Ÿ"½B€€€€pƒ¿" D ÷ý á=?¢Dˆ²uàïI? ¢D;�hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ D‚’.±Å¸³?¢DY�læ¿ ¢DÈŠYœå*@ ¢DK-Š':À ¢Dð? £ ¢  ¢¡   £  D@¢ Ë|~ ½"B ˆ§"Aÿÿÿÿq"A€€ÀÿO@ § A€€ÀÿkrE@ D-DTû!ù?¢Dp8  D ¡£ A€€€ÿI@ A€€ÀòI A€€ÀOq@  ¢" D ÷ý á=?¢Dˆ²uàïI? ¢D;�hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ D‚’.±Å¸³?¢DY�læ¿ ¢DÈŠYœå*@ ¢DK-Š':À ¢Dð? £¢  Dà? ™Dà?¢¡"Ÿ! D ÷ý á=?¢Dˆ²uàïI? ¢D;�hµ(‚¤¿ ¢DUDˆUÁÉ? ¢D}oëÖÔ¿ ¢DUUUUUUÅ? ¢ D‚’.±Å¸³?¢DY�læ¿ ¢DÈŠYœå*@ ¢DK-Š':À ¢Dð? £! A³æ¼ÿO|D-DTû!ù?   ¢ D@¢D\3&¦‘¼ ¡D-DTû!é?    ¢D\3&¦‘< ½B€€€€pƒ¿" ¢¡   £"  ¡¡D-DTû!é?  ¡¡¡ "š AH À| ! ½B ˆ§Aÿÿÿÿq"A€€À O@ b@  D-DTû!ù? ¦ A€€ðþI@ A€€€òI@  A! ™! A€€ÌÿI| A€€˜ÿI|A!  Dð¿  D@ £A! Dð¿  Dð? £  A€€Ž€I|A! Dø¿  Dø?¢Dð? £A!Dð¿ £ ! ¢" ¢!      DÚ"ã:­�?¢Dë v$K{©? ¢DQ=Рf ±? ¢Dn LÅÍE·? ¢Dÿƒ’$IÂ? ¢D UUUUUÕ? ¢     D/lj,D´¢¿¢DšýÞR-Þ­¿ ¢Dmšt¯ò°³¿ ¢Dq#þÆq¼¿ ¢DÄ똙™™É¿ ¢ ¢! AH@ ¡ @@@@@@  DO»ag¬Ý? Dâe/"+z¼  ¡¡!  D-DTû!é? D\3&¦�¼  ¡¡!  D›ö�Ò sï? D½Ëðzˆp¼  ¡¡!  D-DTû!ù? D\3&¦‘¼  ¡¡!  ¦ ®~ b  br@    ½"B ˆ§! §" A€€ÀÿkrE@ î AvAq ½"B ˆ§"Avr! Aÿÿÿÿq" §rE@@@@@   # #š @ Aÿÿÿÿq" rE A€€ÀÿF@ A€€ÀÿF| Aq|#D@¢DÐ?¢#DÐ?¢ "š Aq#D Aq"š Aq  A€€ÀÿF A€€€ j Ir Aq" A€€€ j I  |D £™î !@@@@@   š # D\3&¦¡¼ ¡ D\3&¦¡¼ #¡ #Dà¿¢#Dà?¢ Aq õ|~ ½" B ˆ§"Aÿÿÿÿq"AûäÿM@ AžÁšòI@Dð? ¢" ¢!Dð? Dà?¢"¡"Dð? ¡ ¡    D�Ë ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢  DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢ D¢¡   A€€ÀÿO@ ¡  Av! B ˆ§Aÿÿÿÿq"Aü²‹€I@A! | D@Tû!ù? !A! AûÃäÿG| D1cba´Ð= "¡D1cba´Ð=  D`a´Ð= "Dsp.Š£; !  ¡Dsp.Š£;   D@Tû!ù¿ ! AûÃäÿG| D1cba´Ð½ "¡D1cba´Ð½  D`a´Ð½ "Dsp.Š£» !  ¡Dsp.Š£»  ! $a $b   AûÃä‰I@ Av" DƒÈÉm0_ä?¢ž"D@Tû!ù?¢¡" D1cba´Ð=¢"¡"½B ˆ§AvAÿqkAK@  " D`a´Ð=¢"¡" Dsp.Š£;¢  ¡ ¡¡"¡"½B ˆ§AvAÿqkA1K@ " D.Š£;¢"¡" DÁI %šƒ{9¢  ¡ ¡¡"¡! $a ¡ ¡$b ª  A ê"k   !#a!#b! Aq| ¢" D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø�?    ¢¢ D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ !  Dà?¢  ¢" ¢¡¢ ¡ DIUUUUUÅ¿¢¡¡ ¢" ¢!Dð? Dà?¢"¡"Dð? ¡ ¡    D�Ë ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢  DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢ ¢¡   "š AjAq Š|~| ½"B4ˆ§Aÿq"AÉkA?O@Dð? AÉkA€€€€xO  A‰O@D B€€€€€€€xQ  Dð?  AÿO DDð BS  A! Dþ‚+eGg@¢D8C "½"B-† BÿƒB†§"AtA€­j)|! D8à"DúþB.v¿¢  D:;ž¼š÷ ½¢ " ¢! AtA€­j+    D¢DÕaÁ *¿ ¢D¦ø�?    ¢¢ D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ !  ¢  ¢DIUUUUUÅ¿ ¢  A€€ÀÿO@ ¡  Av! B ˆ§Aÿÿÿÿq"Aü²‹€I@A! | D@Tû!ù? !A! AûÃäÿG| D1cba´Ð= "¡D1cba´Ð=  D`a´Ð= "Dsp.Š£; !  ¡Dsp.Š£;   D@Tû!ù¿ ! AûÃäÿG| D1cba´Ð½ "¡D1cba´Ð½  D`a´Ð½ "Dsp.Š£» !  ¡Dsp.Š£»  ! $a $b   AûÃä‰I@ Av" DƒÈÉm0_ä?¢ž"D@Tû!ù?¢¡" D1cba´Ð=¢"¡"½B ˆ§AvAÿqkAK@  " D`a´Ð=¢"¡" Dsp.Š£;¢  ¡ ¡¡"¡"½B ˆ§AvAÿqkA1K@ " D.Š£;¢"¡" DÁI %šƒ{9¢  ¡ ¡¡"¡! $a ¡ ¡$b ª  A ê"k   !#a!#b! Aq| ¢" ¢!Dð? Dà?¢"¡"Dð? ¡ ¡    D�Ë ú>¢DwQÁlÁV¿ ¢DLUUUUU¥? ¢  ¢  DÔ8ˆ¾éú¨½¢Dı´½žî!> ¢D­Rœ€O~’¾ ¢ ¢ ¢¡   ¢" D}þ±WãÇ>¢DÕaÁ *¿ ¢D¦ø�?    ¢¢ D|ÕÏZ:Ùå=¢Dëœ+ŠæåZ¾ ¢ !  Dà?¢  ¢" ¢¡¢ ¡ DIUUUUUÅ¿¢¡¡ "š Aq Ó|~ ½"B ˆ§"Aÿÿÿÿq"AûäÿM@ A€€€òI@  DAë A€€ÀÿO@ ¡  Av! B ˆ§Aÿÿÿÿq"Aü²‹€I@A! | D@Tû!ù? !A! AûÃäÿG| D1cba´Ð= "¡D1cba´Ð=  D`a´Ð= "Dsp.Š£; !  ¡Dsp.Š£;   D@Tû!ù¿ ! AûÃäÿG| D1cba´Ð½ "¡D1cba´Ð½  D`a´Ð½ "Dsp.Š£» !  ¡Dsp.Š£»  ! $a $b   AûÃä‰I@ Av" DƒÈÉm0_ä?¢ž"D@Tû!ù?¢¡" D1cba´Ð=¢"¡"½B ˆ§AvAÿqkAK@  " D`a´Ð=¢"¡" Dsp.Š£;¢  ¡ ¡¡"¡"½B ˆ§AvAÿqkA1K@ " D.Š£;¢"¡" DÁI %šƒ{9¢  ¡ ¡¡"¡! $a ¡ ¡$b ª  A ê"k   !#a#bA AqAtkë ù~ ™Dð?a@ �¡ ¦ ½"B4ˆBÿƒ! B†"P ½"B4ˆBÿƒ"BÿQr  br@ ¢" £ B†" X@  R¸¢ P~ B  B †y}"}† BÿÿÿÿÿÿÿƒB€€€€€€€„ ! P~ B  B †y}"}† BÿÿÿÿÿÿÿƒB€€€€€€€„ ! B?ˆ!@  U@  Z~  Q@ D¢  }  B†! B}!   Z@  Q@ D¢  }!  B †y"}!  †! BU~ B€€€€€€€} B4†„ B }ˆ B?†„¿ Þ} ¼"Aÿÿÿÿq"A€€€üO@ A€€€üF@CÚI@C AH C “• A€€€øI@ A€€€”M@CÚÉ? CÚÉ? Ch!¢3 ”" CkÓ ¼”Cº/½’”Cuª*>’” C®å4¿”C€?’•”“““ AH@CÚÉ? C?”C?’"‘" CkÓ ¼”Cº/½’”Cuª*>’” C®å4¿”C€?’• ”Ch!¢³’’“C@” C? C?”“"‘"¼A€`q¾" CkÓ ¼”Cº/½’”Cuª*>’” C®å4¿”C€?’• ”  ”“  ’•’’C@” –} ! ¼Aÿÿÿÿq"A€€€äO@ \@  CÚÉ? ˜ A€€€÷I@ A€€€ÌI@  A! ‹! A€€àüI} A€€ÀùI}A! ’C€¿’ C@’•A! C€¿’ C€?’•  A€€ð€I}A! CÀ¿’ CÀ?”C€?’•A!C€¿ • ! ”" ”!   C%¬|=”C õ>’”C©ªª>’”  CGÚ½”C˜ÊL¾’”’”! AH@ “ @@@@@@  C8cí> Ci7¬±’ ““!  CÚI? Ch!"³’ ““!  C^˜{? C´³’ ““!  CÚÉ? Ch!¢³’ ““!  ˜ ç \  \r@  ’ ¼"A€€€üF@ ø AvAq ¼"Avr! Aÿÿÿÿq"E@@@@@   CÛI@ CÛIÀ @ Aÿÿÿÿq"E A€€€üF@ A€€€üF}CäË@CÛI? Aq"Œ AqCÛI@C Aq"Œ Aq  A€€€üF A€€€èj Ir Aq" A€€€èj I  }C •‹ø !@@@@@   Œ CÛI@ C.½»3’“ C.½»3’CÛIÀ’ CÛÉ¿CÛÉ? Aq Å|~ ¼"Aÿÿÿÿq"AÚŸ¤úM@ A€€€ÌI@C€? »" ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶ Av! AѧíƒM@ Aã—Û€K@ »"D-DTû! @  D-DTû! À  " ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶Œ @ »D-DTû!ù? " ¢" ¢!D-DTû!ù? »¡" ¢" ¢!   D²ûn‰�?¢Dw¬ËTUUÅ¿ ¢    ¢¢ D§F;Œ‡ÍÆ>¢DtçÊâù*¿ ¢ ¶ AÕ㈇M@ AßÛ¿…K@ »"D-DTû!@  D-DTû!À  " ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶ @ Œ»DÒ!3|ÙÀ " ¢" ¢! »DÒ!3|ÙÀ " ¢" ¢!   D²ûn‰�?¢Dw¬ËTUUÅ¿ ¢    ¢¢ D§F;Œ‡ÍÆ>¢DtçÊâù*¿ ¢ ¶ A€€€üO@ “  AÛŸ¤îI@ »" DƒÈÉm0_ä?¢ž"DPû!ù?¢¡ Dcba´Q>¢¡$ð ª  AvA˜k"A?q¬! AuAtA€·j")! )! B V~  B }† )Bà }ˆ„ B }ˆ ! AÿÿÿqA€€€r¬! D-DTû!ù; »¦ BR~ † BÀ }ˆ„ ~ ~B ˆ|"B†"¹¢$ðA B>ˆ B?ˆ|§"k   !#ð! Aq}   ¢" ¢" D²ûn‰�?¢Dw¬ËTUUÅ¿ ¢    ¢¢ D§F;Œ‡ÍÆ>¢DtçÊâù*¿ ¢ ¶  ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶ "Œ AjAq Ž|~ ‹C@_@ C@[@ ” C?[@ ‘‹C€ »Dðÿb C€¿[@C€? • C€?[@  C[@C€? } » ¼"AtAkAÿÿÿwO" ¼"A€€€kA€€€øOr@ @C€? At"E CÀ A€€€üF  ’ A€€€xK At"A€€€xKr CÀ A€€€øF C AvE A€€€øIF   ”  AtAkAÿÿÿwO@ ”!C€? Œ Av"A AvAÿq"AÿI A A–K A AA– kt"Akq A  q A AF  "• AH  AH@ “" •A AvAÿq"AÿI A A–K A AA– kt"Akq A  q A "E A€€A AF! Aÿÿÿÿq! A€€€I CK”¼AÿÿÿÿqA€€€Ük  ! A€€Ìùk"AvAq!  A€€€|q"k¾» AtAÈôj"+¢Dð¿ " ¢! D nIÉvÒ?¢DzÆu i׿   ¢¢ D+¸*eG÷?¢ + Au·   Dݺ§l ÇÞ?¢DÈö¾HGç¿  ¢  ¢"½B/ˆBÿÿƒB¿�Z@C€ÿC€  DqÕÑÿÿÿ_@d C€C  DÀbÀe  DèB "½!  Dè ¡"DÖR ÿB.æ?¢Dð?  D”#‘Køj¬?¢DóÄúPοÎ?   ¢¢  §AqAtAÈòj)  ­|B/†|¿¢¶ º |~ ¼"Aÿÿÿÿq"AÚŸ¤úM@ A€€€ÌI@  »" ¢" ¢!   D²ûn‰�?¢Dw¬ËTUUÅ¿ ¢    ¢¢ D§F;Œ‡ÍÆ>¢DtçÊâù*¿ ¢ ¶ Av! AѧíƒM@ Aã—Û€M@ } »D-DTû!ù? " ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶Œ »D-DTû!ù¿ " ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶  »"D-DTû! @  D-DTû! À  š" ¢" ¢!   D²ûn‰�?¢Dw¬ËTUUÅ¿ ¢    ¢¢ D§F;Œ‡ÍÆ>¢DtçÊâù*¿ ¢ ¶ AÕ㈇M@ AßÛ¿…M@ } »DÒ!3|Ù@ " ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶ »DÒ!3|ÙÀ " ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶Œ  »"D-DTû!@  D-DTû!À  " ¢" ¢!   D²ûn‰�?¢Dw¬ËTUUÅ¿ ¢    ¢¢ D§F;Œ‡ÍÆ>¢DtçÊâù*¿ ¢ ¶ A€€€üO@ “  AÛŸ¤îI@ »" DƒÈÉm0_ä?¢ž"DPû!ù?¢¡ Dcba´Q>¢¡$ð ª  AvA˜k"A?q¬! AuAtA€·j")! )! B V~  B }† )Bà }ˆ„ B }ˆ ! AÿÿÿqA€€€r¬! D-DTû!ù; »¦ BR~ † BÀ }ˆ„ ~ ~B ˆ|"B†"¹¢$ðA B>ˆ B?ˆ|§"k   !#ð! Aq}  ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶   ¢" ¢" D²ûn‰�?¢Dw¬ËTUUÅ¿ ¢    ¢¢ D§F;Œ‡ÍÆ>¢DtçÊâù*¿ ¢ ¶ "Œ Aq Ø ‹C€?[@ �“ ˜ ¼"AvAÿq! At"E ¼"AvAÿq"AÿFr  \r@ ”" • At" M@  G³”  AÿÿÿqA€€€r A  A tgk"kt !  AÿÿÿqA€€€r A  A tgk"kt ! A€€€€xq!@  J@  O  F@ C”  k  At! Ak!   O@  F@ C”  k!  Atg"k!  t! AJ A€€€k Atr A kv r¾  A6 A6A Aè˜"A6 A6 A6 AàA¦˜"6  6 Aà6 6A Aè˜"A6 A6 A6 AÈA¦˜"6  6 AÈ6 6 D9 D9 D9 …AA̘"AàA¦˜"6  6 Aà6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6AA¦˜!AAÖ ˜" 6  ž  6 A6 A6 6AA¦˜!AAö˜" 6  ž  6 A6 A6 6 C8 A: A6 íAA-˜ AA-˜6AA-˜ AA-˜6AA-˜ AA-˜6AA-˜ AA-˜6 AA-˜ AA-˜6A Aç˜"A6 A6 A6 AA¦˜"6  6 A6 6 C8 C8 C8 C8$ #(8( A6, A60 A:4 JAA¦˜ AA¦˜6 A6AA¦˜ A A¦˜6 A6 A6 A6 o A� 6 A� 6AA¿˜ A A¿˜6 A6 A� 6 Dð¿9 Dð¿9 A6( A6, A60 A64 àAÌAߘ"A6 A6 A: A: A: A: A: C8 C8 C8 C8 C8 C8$ C8( C8, C@80 C @84 A68 C„B88 C8 C @8 A: 6DAAô˜ AÀAô˜6H A UAAé˜"A6 A6 A: A: A: A: A6 A6 A6 C€¿8 ƒ  Ak(AéFA E@ A ãÄ@A (AFA (AF E  | (AF@ )¹  (AF@ +  D ¶8A  A ²A,Aò˜"A6 A6 A: A: A: A: A6 A6AAÖ ˜"A6 A6 A6 A6 Aš6 A6 A6AÐAä˜"Cffæ¾8 C×£ð>8 C\�B¿8 CìQx?8 C®Ga?8 CÃõ(?8 C)\�>8 C®Gá>8 C®G?8 C®G?8$ Cš™Y?8( C×£p?8, C®?80 Cš™?84 C®G?88 C×£0?8< CìQ8?8@ C…ëQ?8D C B8H C C8L 6 AAà˜"C8 C8 C€?8 C8 A6 A6 A: 6$ CÈÂ8( ¶|~  Ak(AòFA E@ AàâÄ@A (AFA (AF E   (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6A  A€ãÄ@A (AFA (AF E  | (AF@ )¹  (AF@ +  D ¶8(A  A è'A´Aó˜"A6 A6 A: A: A: A: A6 A: A6AAå˜"C8 A6 C8 C8 C8 #–8 A6 CÍÌÌ=8 6A,Aö˜"A6 C8 C8 C8 A6 A6 A6 A: A: A: A: A: A:! A:" A6$ A:( A:) 6AAõ˜"C8 C8 A: A: A6 6 A˜Aù˜"A: A: C8 C8 C8 AA-˜ AA-˜6 A6 A6 A: A6 C8$ C€?8( A6, C80 C84 C88 A:< A:=AAô˜ A€Aô˜6@AAô˜ A€Aô˜6D A6H C8L C8P C8T C8X C8\ C8` A6d C8h A6l A6p A6t A6x A6| A6€ A6„ A6ˆ A6Œ C8� A:” 6$ A6(A„Aô˜"A: A:AA-˜ A€A-˜6AA-˜ A€A-˜6AA-˜ A€A-˜6 AAô˜ A€Aô˜6AA-˜ A€A-˜6AAô˜ A€Aô˜6AAô˜ A€Aô˜6AAô˜ A€Aô˜6 AAô˜ A€Aô˜6$AAê˜ AàAê˜6( A6, A60 A64 A68 C8< C8@ A6D A:H C8L C8P A6T A6X C8\ A:` C8d C8hA(Aá˜"C8 C8 C8 C8 C8 C€¿8 CðA8 C8 A6 A:$ A:%  6l A:pA(Aá˜"C8 C8 C8 C8 C8 C€¿8 CðA8 C8 A6 A:$ A:%  6tA(Aá˜"C8 C8 C8 C8 C8 C€¿8 CðA8 C8 A6 A:$ A:%  6xA$Aã˜"A6 C8 C8 A: C8 C8 C8 C8 A6  6| A:€ 6,AÔAç˜"C8 C8 C8 C8 C8 C8 C€?8 C8 C8 C8$ C8( C8, C80 C€?84 C88 C8< C8@ C8D C8H C8L C€?8P 60AðAý˜"A6 A6 A6 A6 A6 A6AA¦˜!AAÖ ˜" 6  ž  6 A6 A6  6 A6 A6 A6$ A6( A6, C€¿80AA-˜ AÀA-˜64AA-˜ AÀA-˜68AA-˜ AÀA-˜6< C8@ C8D A6H C8L C8P C8T C8XAAû˜"C8 C8 C8 C€?8 C8 C8 C8  6\AAà˜"C8 C8 C€?8 C8 A6 A6 A:  6` A6d C8h A:l 64 A68AA¦˜!AAÖ ˜" 6  ž  6 A6 A6 68 C8 C @8 A:  6ØAAô˜ AÀAô˜6Ü C8à C8ä C8è  ($6Ä 6( ƒ|~  Ak(AóFA E@ AÐáÄ@A (AFA (AF E   (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6 A  A€âÄ@A (AFA (AF E   (AF@ )"§"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A 6°A  A ÈAAþ˜"A6 A6 A: A: A: A: A0Aÿ˜!A A�˜"A€+"AF@ AàØA�ÙA�Ûê @ AA‘˜"A6 A6 " 6 @  Aä 6A€À,"A áA�ÙA�Ûê @ AA“˜"A6 A6 " 6 @  Aä  6A€+"AF@ AàØA�ÙA�Ûê @ AA•˜"A6 A6 " 6 @  Aä  6  6AØAŽ˜"C8 C8 C8 A6 C8 C8 C8 C8 C8 A6$ C8( C8, C80 C84 C88 A6< C8@ CÍÌL?8D Cfff?8H C€?8L C8P C€?8T  6A8A�˜"A6 A6 A6 A6 A6 A6 C8 C8 A6 D9( C80  6 A6 A6 A6 A6 A6 A: A:! A:" A:# A:$ A:% A6( A6,A A—˜"A6AA�˜"A6 C8 C8 C8 C8  6 A6  ((6  6 AA£˜"A6 A6 A6 A¹à6  ( 6  6 6 A A¤˜"C8 C€¿8 A: 6   KAA¦˜ AA¦˜6 A6AA¦˜ AÀA¦˜6 A6 A6 A6 ÜA äA�ÒÂ$)#îE@A Aí ˜!AA¦˜!AAî ˜" 6 ž 6 A6 A6  6 A6 $î AˆAÚ ˜"� AA� ˜Á AA— ˜Á AA£ ˜Á (!A!A!A!@ ( J@AÀ ( Atj(Ak("AÖ F A AÉ F A AÇ F A€€ A² F A A¬ F A A£ F A A— F A A� F  "AF AHq@ !   AF! Aj!  AH JrE@  ( O@ ( Atj("E@ @ H@ Ak" ( O@ ( Atj("@   œ Ak!   œ AA¬ ˜Á AA² ˜Á (!A!A!A!@ ( J@AÀ ( Atj(Ak("AÖ F A AÉ F A AÇ F A€€ A² F A A¬ F A A£ F A A— F A A� F  "AF AHq@ !   A€€F! Aj!  AH JrE@  ( O@ ( Atj("E@ @ H@ Ak" ( O@ ( Atj("@   œ Ak!   œ AAÇ ˜Á AAÉ ˜Á AAÖ ˜ÁAAý ˜!AA¦˜!AAþ ˜" 6 ž 6 A6 A6  6 A6 A� 6  ÀAA�˜"A6 A6 A6 #F"E@A,A¡ ˜"“ $F  6  E@#F"E@A,A¡ ˜"“ $F #Ç"E@AAî˜"A6 A6 A6 A6 Aš"$Ç A!@ ( J@ ( Atj("( F@   Aj!  A8 C@8 A€€á6 A:$ A:% A:& 6d A6hAA¦˜!AAá ˜" 6  ž  6 A6 A6 6l A� 6p A6t A� 6x A:| A6€ AAä ˜"A� 6 A6 A6 AAñ ˜6 A6 A6 6„ TAAë˜"½ 6AAï˜"½ 6AAó˜"½ 6 AAõ˜"½ 6 ÚAA¦˜!AAƘ" 6  ž  6 A6 A6 6AA¦˜!AAë˜" 6  ž  6 A6 A6 6AA¦˜!AA‰˜" 6  ž  6 A6 A6 6 AA¦˜!AAȘ" 6  ž  6 A6 A6 6AA¦˜!AAö˜" 6  ž  6 A6 A6 6AA¦˜!AAȘ" 6  ž  6 A6 A6 6AA¦˜!AAö˜" 6  ž  6 A6 A6 6 A6 AA¦˜!AA°˜" 6  ž  6 A6 A6 6$AA¦˜!AAë˜" 6  ž  6 A6 A6 6(AA¦˜!AA‰˜" 6  ž  6 A6 A6 6,AA¦˜!AA°˜" 6  ž  6 A6 A6 60AA¦˜!AAƘ" 6  ž  6 A6 A6 64 A68AA¦˜!AA‰˜" 6  ž  6 A6 A6 6< AA¦˜!AAë˜" 6 ž 6 A6 A6 6@ ÌAA¢ ˜"½ 6AA£ ˜"½ 6AA¦˜!AA‰ ˜" 6  ž  6 A6 A6 6AA¦˜!AA¤ ˜" 6  ž  6 A6 A6 6 A6AA¥ ˜"½ 6 A6 A6 A6 AA¦˜!AA‰ ˜" 6  ž  6 A6 A6 6$ AA¦˜!AA‡ ˜" 6 ž 6 A6 A6 6( P A:AA¦˜!AAý˜" 6  ž  6 A6 A6 6 A å6  @  Aä U A6 A6 A6 AA¦˜!AA»˜" 6 ž 6 A6 A6 6 I Ak("A¾F@ (  Ak(A~qt AÁF@ (  Ak(A~qs ò Ak("A× F@ ( (A Aàº+ (A «ÂA°º+ ( A «ÂA€º+ (A «ÂAÀ ÂA�  AÌ F@A!A� (( "E  (!AÀ¹+ A «ÂA�¹+Â@ ("( J@ Aj  ( Atj(( "A!A!@ ("( J@ Aj  ( Atj(-! Aj!  AJA ! Aj!  A «ÂAà¸+  ( A A «ÂA°¸+ÂA!@ ( "( J@ Aj  ( Atj("(AN (ANA A ( AN ! Aj!  A «ÂAÀ Â  AÈ F@A�  A¿ F@A! -(@ ("( J@ Aj  ( Atj(-! Aj!  A�·+ A «ÂA� " ( " ((!A!@ ("( J@  ( O@ ( Atj("E@ ( F@  ("( O@ ( Atj("E@   Aj!  A " ("AN ( "( M@ ( Atj(A A A "E   (DGA ) )HR @ 6D ž ) 7HAA˜"A6 A6 A6 A6 Aš!A!@ (("( J@  ( O@ ( Atj("E@ (A�Ò AHA  (<( N A  (<"( O@ ( Atj("E@ ( " (A "AN  (("( O@ ( Atj("E@  ("( O@ ( Atj("E@ (A� Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  AA˜"A6 A6 A6 A6 Aš!@ ( J@ ( Atj(AAAA¤"œ ( ( A� ¦! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ((AAAA¤"œ Að·+ ( ( A� ¦ÂAÀ·+ ( ( Aà�¦ÂA ™Â"6@ ž  (@  A¯ F@ (" (( A (( A  (" (!@ ( J@ ( Atj("( F@   Aj!  A A !Aà¶+ (( A «ÂA°¶+ (( (( kA «ÂA�¶+ (( A «ÂAàµ+ÂA! ( !A!@ ( J@  ( Atj(("(Ü( (à( jj! Aj!  A «ÂA°µ+  (A� AAAA¤"œ ( ( A� ¦ÂA�  A© F@ (" ( !A€µ+ ( ( (( jA «Â A!@ ( "( J@  ( O@ Aj  ( Atj(! Aj!  Aд+ A «ÂA�  - A ´+ )(­ÂA� ÂA�  A˜ F@ ("(( A°³+ (A «Â! (!A!@ ( J@ ( Atj("(XAGA *LC\ @A  Aj!  A  Aà³+ )@­Â  A�  A‘ F@A€³+ ("(( A «ÂAв+ (A «ÂA ²+ )­Â ©�S}|~ Ak(" A× F@A AG A (" E  ! (!#A�¥ÁkAI@ #Ak"$ (""A6 A6 A6 A6 A6 A6 A6 A6#2" (0F (4 FA E@ 60 64 ž  ($ ((¿ (,"( ! AAA™ AJ@ (A Atü A6 A!@ ("( J@ ( Atj(! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  ("( ! AAA™ AJ@ (A Atü A6 ( "( ! AAA™ AJ@ (A Atü A6 ("( ! AAA™ AJ@ (A Atü A6 ($!@ ( J@ ( Atj(" Ak(AÝFA !@  Ak(AÞFA "rE  ( !@ @  Ak(AÖFA   Ak(AÖFA E@ -ÈA @  Ak(AÖFA E@  ( !  A @ ( !  Ak(AÞFA E@ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6   Ak(AÝFA E@ ("( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6 A! (!  ( J ( Atj("( F  Aj!  A "E@A!="<8  =8  >8 *à * * “"" "” * *“"" "”’ * *“"" "”’‘_   #A j$A  #A j$A @C!"C!#  (j((" 6  ž ( "A  -dA "} ›!>!="C !&  "8  #8  &8 *Ð!" *Ì!#  *È8  #8  "8  (ä6  (è6  (ì6$  -Ð (ðAr (ð 6(  -ô:,  *ø80 ( "Aj" (AvK@ AA™ ( Atj 6 6  -G (( AJA @  (Aj6 Aj!  ( AJ@  6  žA#:Ak("AÀF A AóF AòFr  A#:"Ak("AÀF@HAj  AóF@A ( ( j" AJ  A AòF  "AJ@A! (@(! ( GA  (J @ ("( ! AAA™ AJ@ (A Atü A6  6  ž  6 @ ("( H@AÀAè ˜"Í  ((› ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6   6  ž#:  ( A· (!="<8\ =8` >8d A:t -ü@ -t@ *d!# *`!" *\!& -©@ "8� -Ð} ##á” &#â”’!" &#á” ##┓ #!" & 8x C8| "8€ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ( "Aj" (AvK@  AA™ ( Atj 6  6  *d!" *`!# *\8h #8l "8p A:t Aj!   ( 6 ( AJ@ (! ( !A!A!A!A!#A�¥ÁkAÀI@ #A@j"$@ ( J@ ( Atj("-Ö@ Aj *ÈC^! (Ð(AvAn"AO  j ! Aj!  ((Av" ( " j"AlAj A lj"H@ "E@A€! @ H@ At!  AA¦˜ At"AüÿÿÿK@ A¦˜"6 ž ("Ak("Aq@ A Aç˜" 6 ž 6 6 6 ž ("Ak("Aq@ A Aã˜" 6 ž 6 6 6 ž 6 6 6 At6 (! (" ( 6 ( 6 ( 6A!A!@  H@ ( Atj("(Ü! ( "A  -dA "} ›!>!="C!#C!"C !& ( Atj "8 ( AjAtj &8 ( AjAtj #8 ( AjAtj *Œ8 ( AjAtj *�8 ( AjAtj *„8 ( AjAtj *Œ8 ( AjAtj *x8 ( AjAtj *€8 ( A jAtj *¤8 ( A jAtj *”8 (˜"AL@A! J@ ! ( A jAtj 6 ( A jAtj *œ8 ( A jAtj * 8 ( AjAtj (¬6 ( AjAtj (°6 ( AjAtj *´8 Aj! Aj!  AlAj!A!@ ( J@@ ( Atj("-ÖE  •!6!5!4!3!2!1!0!/!.!-!,!+!*!)!("'8  (8  )8  *8  +8  ,8  -8  .8  /8  08$  18(  28,  380  484  588  68< *8!$ *4!% *0!7 *  * *, *< * * * * * * * *$ *(Ê !>!="<‹""Coƒ: "Coƒ:^!& =‹""Coƒ: "Coƒ:^!" >‹"#Coƒ: #Coƒ:^!# *ÈC^@ ( Atj 78 ( AjAtj $8 ( AjAtj %8 ( AjAtj *Ì "”8 ( AjAtj *È & # # &] " # " #^ " &]”8 ( AjAtj *Ø8 ( AjAtj *à8 ( AjAtj *Ø8 ( AjAtj *à8 ( A jAtjC8 ( A jAtjC8 ( A jAtjA6 ( A jAtjC8 ( A jAtjC8 ( AjAtj (ä6 ( AjAtjA6 ( AjAtjC€?8 Aj! (Ð"(AvAn"AI *  * *, *0 *4 *8 *< * * * * * * * *$ *(Ë !M!L!K!J!I!H!G!F"E F G H I J K L MÉ !t t"9ú!8 9ü!9A!@ H@ (  A lj"Atj (" Al"Atj* &”": 8” AjAt j* #”"; 9”’ 7’8 ( AjAtj :Œ 9” ; 8”’ $’8 ( AjAtj  Aj"A  Hj6 ( AjAtj  Ak Ak AJj6 ( AjAtj %8 ( AjAtj *Ì "”8 ( A jAtj (ä6 !  A!@ H@  ("  A lj"AjAtj( kA lj!  AjAt j( kA lj!C€? (" At"j* At" j*“"" "” AjAt" j* AjAt"! j*“"# #”’‘•!& AjAt j " &”8 ( AjAtj # &”8 ( AjAtj AK ( Atj*""  (j*“ ! (j* ( AjAtj*"#“” #  (j*“ (j* "“”“C`A 6 Aj!   A lj!  j! Aj!  6$  j6 At" ((AvJ@A Aç˜"A6 A6 A6 AÿÿÿÿK@ At"A¦˜"6 6 6 6 ž #A@k$A! (( u¶8 (@A#:"Ak("AÀF@HAj  AóF@A ( ( j" AJ  A AòF  " AN!@ (("( H@A,Aɘ!A Aç˜"A6 A6 A6 AA¦˜"6  6 A6 6A Aç˜"A6 A6 A6 AA¦˜"6  6 A6 6A Aç˜"A6 A6 A6 AA¦˜"6  6 A6 6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6 6 A Aç˜"A6 A6 A6 AA¦˜"6  6 A6 6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6 6 C8 C8 A6 A6$ A6( ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  @  J@ ($! (! ( " At" ((( Atj("((AvJ@A Aç˜"A6 A6 A6 AÿÿÿÿK@  At"A¦˜" 6  6  6 6 žA Aç˜"A6 A6 A6 At"AÿÿÿÿK@  At"A¦˜" 6  6  6 6 ž  ((AvJ@A Aç˜"A6 A6 A6 AÿÿÿÿK@  At"A¦˜"6  6  6 6 žA Aã˜"A6 A6 A6  A¦˜"6  6  6 6 ž  ((AvJ@A Aç˜"A6 A6 A6 AÿÿÿÿK@  At"A¦˜"6  6  6 6 žA Aã˜"A6 A6 A6  A¦˜"6  6  6 6 ž Aj!  (,"E@AAΘ"A6  6 6, ž #:  (A· A! @ ( J@ ((" At"AjAtj*!# ( Atj("(Ü" At j*""8„ C8ˆ #8Œ " "” # #”’‘"& *¤"$^ &C^q@ # &• $”!# " &• $”!" *�!& "8h &8l #8p Aj!  u¶!9A!@ ( J@ At" (j("-µE@ (Ü"*p!" *l!# ( (j(Atj("(" *h"&8  #8  "8 ("@   AÓ  (Aj6 -$E * &\r * #\r * "\r &8 #8 "8 A:$A  ! Aj!  (@(AJ!A! @ H@@ ( Atj("-µ (Ü! ( "A  -dA "E@A  *ØC\! C8Ø C8X  A  -Ð ( Atj(! A! #A�¥ÁkA�I@ #A�k"$ ¦!6!5!4!3!2!1!0!/!.!-!,!+!*!)!(!' 3!% ( "AJ (( AkJA  (( AkAtj(AFA   (( HA ! -ü} *l *h!& *p *` *\!& *d 9”"$C[ & 9”"&C[q } *` 9”C "7C[q@#A�j$A  4!" 5!W -G -FA A (( AJ @ (! Œ!  ( O@ ( A lj"*!# *!8 * %“": :” } 8 *Ü“ "“C "8 8”’ # W“"# #”’‘"# & &” 7 7”’ $ $”’‘"8]} & # 8•"#”!& 7 #”!7 $ #” $ !$ % &’!# " 7’!7 W $’!& A E@ ("(! (< (F ( "ANq  (HA A! ((" AjAtj(! ( ! (! #»!w &»!x At j("!@  H@ (" Aj"  J"Atj+  At"j+"y¡"u x  ("j+"v¡¢ At j+ v¡"v w y¡¢¡!y u u¢ v v¢ Ÿ"uDb@ y u£"uDàâ6?d@A! A  uDàâ6¿c! A q  Aj!  A A  (`" ( Al"Atj+!u (" AjAtj+!vA AjAt j+"wDš™™™™™©?dE  (( (( Atj("Atj+ u #» At" ( (j+¡¢ v &»  ((j+¡¢  w£¡$ÇA A }#Ƕ *Ü“ 7 *Ü’!" (AJ@ ("( (D #» "» &»ADð�! ((D! AN} +P¶!7 +H¶!" +X¶ #!" & !$ 6 ((<6} ("( (D #» "» &»ADð�AH@C!7C!"C  (D"+H¶!" +P¶!7 +X¶ !$ " #“"8 8” $ &“"8 8”’CvÌ+2^@ $!& "!# 7 *Ü“ !7 ( " -dA }@@@ Ak(A²k. ¬  •!6!5!4!3!2!1!0!/!.!-!,!+!*!)!("'!: 6!$ 4!; 3!@ 2!? 1!C 0!A /!D .!B -!N ,!O +!8 *!P )!Q (!R 5A¨*!;A¤*!@A *!?Aœ*!CA˜*!AA”*!DA�*!BAŒ*!NAˆ*!OA„*!8A€*!PAü*!QAø*!RAô*!:A°*!$A¬* !" :8 R8 Q8 P8 88 O8 N8 B8 D8 A8$ C8( ?8, @80 ;84 "88 $8< * !" *!$ *,!8 *!=" *„!7 *€!" *ˆ !$  " 7 $– # %“!" & W“!$ *Ô"&C\ " "” $ $”’C̼Œ+^A @ @ *p *t *x *| *@ *D *H *L *P *T *X *\ *` *d *h *l "C $ç!>!="!$ "Œ $Œù!" *¤ *  *œ *˜ *” *„ *t " *ˆ"" *l"# *€"$” *|"% *p"7”“” *Œ 7 *x"7” $ *h"$”“”’ *�"8 $ %” 7 #”“”’C]"} —!t t " 8ù “""#à "#©’#à•Ž”“"# &‹#¨” 9”""^E@ # "Œ""]E@ #!" "C\@ @  —!>!="< = "’ >˜ *h *l *p *t *x *| *€ *„ *ˆ *Œ *� *” *˜!# *œ!& * !$ *¤!% "ü !s"r!" *¤ *  *œ *˜ *” *„ *t  s"7C "ŒCC€?C "C 7 *h *l *p *x *| *€ *ˆ *Œ *�à!M!L!K!J!I!H!G!F"E8h  F8l  G8p C8t  H8x  I8|  J8€ C8„  K8ˆ  L8Œ  M8� C8”  #8˜  &8œ  $8   %8¤ #A�j$A A !  ¦!6!5!4!3!2!1!0!/!.!-!,!+!*!)!(!' 38  48  58C!# -À@ * *´“"" "” * *¼“"" "”’‘ 9 ¶ -Е!# *!" *!&  *8´  &8¸  "8¼ A:ÀA # *Ø\!  #8ØA * *È“"" "” * *Ì“"" "”’ * *Г"" "”’‘"" *X\!  "8X Aj!  A! @ H@ At" (j("-µE@ (j(! A! (! (Ü"-”@ A:” ((! ("@   AÓ  (Aj6A! ( "( AJ@A!@  ( "H@ (,!  M@ ( A lj"*!" *!#  *8  #8  "8  At" (¤(j(6,   (¬(j("6  ž ("@   AÓ  (Aj6 (¨( j-@ *!" *!# (0" *8  #8  "8  (,6,  ( "6  ž ("@   AÓ  (Aj6 Aj!  ( ( "AH@ ( A ljA Atlü A6 (¤"(  AAA™ A6 (¨"(  AAA™ A6 (¬"( ! AAA™ AJ@ (A Atü A6 A6˜ A6œA! -°@ A:° (4! ("@   AÓ  (Aj6A! A  -± A:± (8! ("@   AÓ  (Aj6A  ! Aj!  A!A!A! (!@ ("( J@ Aj ( Atj((Ü"-G -FA A (( AJ ! Aj  -E! Aj!   6  6#Aj$  !  ("(6  (6  (6   AÌ F@A AG  "(( AJ@@ ("( J@ ( Atj("(!@ @A -´A -µ  ( !  A @ ("( "@A!@ ("( J@ ( Atj("-@ -@ A: A: (,AGA (0AG A (4AG A (8AG A (!="<8 =8 >8 % *"9” *": 7”“"8 8” 7 *";” 9 $”“"7 7”’ $ :” ; %”“"$ $”’"%C[CCC 8 %‘"%• 7 %• $ %• !>!="<8 =8 >8  "8  #8  &8 *!" *!#  *8$  #8(  "8, *!" *!#  * 8  #8  "8 *!" * !#  *"& *"$” *"% *"7”“8  7 #” $ "”“8  " %” # &”“8  * *” * *”’ * *”’C^ * * ” * *”’ * *”’C^A :0#A j$  64  ž -0 E@ A:0 +"zDdA - E! @A!@ (,H@ (( Atj("AN  (( HA  (( Atj(A " (uA @ AN  (( HA  (( Atj(A "@ ("@ @#!@ @ # Ak" A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 ( Aœ ( Ak6  (,Ak6, ((" Atj (,At j(6 Aj!  @ ("( J@ At" (j(!  ((j(" -E@  (È (GA @@ ((È""6 ž A6 E A!@ ( "( J@ ( Atj("( F@ 6 ž  Aj!  AAÊ ˜"A6 A6 A6 A6 6 (\"Ak(Av@ Að®+•6 A�¯+•6 (AN (ANA E@ •6 + Dc@ (AN (ANA  ( ( "AN@  ( "( H ( Atj(A "| (v»Dð¿ "Dd@  9 ( "( "Aj!  (AvK@  AA™ ( Atj" 6  At  Ÿ  6 6 ž A!A!A! -¥@ A:¥A! (È@ ( "E@AÀAÖ ˜!AA¦˜!AA× ˜" 6  ž  6 A6 A6 6 B7 A: A: C Â8 C8 C8 C8 C8$ C8( A:, B70 B78@ AH@ (!A€AÕ ˜" "A: D9 B7 A: A: D9 A:( A6, A60 A64 A68 A6< A6@ D9H D9P D9X D9` A6h A6l A6p A6t A6x A6| ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!   6   ž !A!A! AA (ì" AJ AL!A!@ (" ( J@ ( Atj(" -@ Aj!   ) )SA ! A - A (,AGA (0AG A (4AG A (8AG A (!="<8L =8P >8T *, * "" "” *$"& &”’ *("$ $”’"%C[CCC " %‘""• & "• $ "• !>!="<8X =8\ >8`C€?C€¿ *L *X” *P *\”’ *T *`”’"" "C€¿] "C€?^� Cá.eB”!& &CÍÌÌ=C´B *„"" "C´B^ "CÍÌÌ=]^} 8C ÂC *ˆ"" "C^ "C Â]#ß”… ” 8 !8  #8  88  8C^} 8‡ #Ì”""C Â "C Â^C Â 8#è *@"" "” *D"# #”’ *H"& &”’"$C[CCC " $‘""• # "• & "• !>!="<""”#è >”"#“!&@#èŒ "” #“C€?’CC@@ *ð"" "C@@^ "C]C€?”""‰ C?”CÀ?•"# #”"# &C€?’ "‰ C?”CÀ?•"" "”"&’""C^E@ #Í8 #Í8   # "•‘8  & "•‘8  * 8”8  * 8”8  8#Í”8  * * ’""C^} * *“ "•C 8#Aðj$ C8 C Â8 C8 C8 C8 C8 C8   ( " -A AA!A!@ ("( J@ Aj  ( Atj(-! Aj!  AJ A "} *C Â 8˜  } *C 8œ ( "@ :, *8( *˜8 *œ8 } *C 8 } * C 8 } *C 8$ @@A! (( "E ~¸!v}!xA  -! (!  �  - G@ � @ ("( J@ ( Atj("(hAGA (lAG A (pAG A (tAG A (xAG A (|AG @ ˆ -@ xDdA -@ ˆ  (,A’  (0A’  (4A’ A6, A60 A64 “ ‰ -@ A: A: D9 A: A: D9 A:( A6, A60 A64 A68 A6< A6@ D9H D9P D9X D9` -(! A:(@ E -ErA (AN (ANA A ( AN E (AN (ANA ! | +  + ! (,AGA (0AG A (4AG E@ vDdE  x vD¸…ëQ¸ž?¢ !u @ ( u  *–6, ( u  * –60 ( u  *$–64 | + u 9H 9P @ (,"AG@ AN  (( HA  (( Atj(A "@ £ (0"AG@ AN  (( HA  (( Atj(A "@ £ (4"AG@ AN (( HA  (( Atj(A "@ £  *!" (,"AG@  "Ò * !" (0"AG@  "Ò *$!" (4"AG@  "Ò *!" (8"AG@  "Ò * !" (<"AG@  "Ò *$!" (@"AG@  "Ò E vDdq ((8A @@| ("+ " (8E  +H"uDf Dc  udrA @ u   "yDdE +@"D  yc Ddq!w (AN (ANA ! (8AGA (!="<8 =8 >8 (Ø6 -Þ:! -ß: -Ü:" -Ý:# ("( ! AAA™ AJ@ (A Atü A6 A!@ (œ"( J@  ( O@ ( Atj(" E@ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 Aj!  ( "A -É@  Ak("AÅF AÇFr AÈFrA @ ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6 A Ak("AØ F  AÚ F@ -,E@ (((Ä ((G@ ˆ ‰ A * * * * * * ( - -! -" -# (AA (l"ŠE  ( "E@ *!" * !# (p" *8 #8 "8 *!" *!# *8 #8 "8 ("6 ž ( 6 ($6  "E A:ô  ("6ø  ž  (6ü *!" *!#  *8€  #8„  "8ˆ *!" *!#  * 8Œ  #8�  "8”  ( 6˜ #A@k$ -ô@ A:ô A6ø A6ü A6˜ Aj!  A:, ( ! A:` (d"( ! AAA™ AJ@ (A Atü A6 @ ( J@A  ( Atj(!A!A!A (" E  (!A (d"( AJ@ ( J@A ( Atj(! !@ @A  F  ( !  A  Aj!  A A  (8"!A! (4""( ! AAA™ AJ@ (A Atü A6 ( ! AAA™ AJ@ (A Atü A6 "-Ø@ )0"{ )8R@ {78 ( ! (@! (D! (H! (L!@ ( J@ ( Atj((¬"(  AAA™ A6 Aj!  A!@ ( J@ ( ( Atj("A0lj+! Ak!@ AN  ( ( Atj(A0lj+cA @ (" AjAtj At j(6 Ak!  ( AjAtj 6 Aj!  ( ! (P! (T! (X!A!@ H@ ( Al"Atj ( At" (j("Al"Atj+9 ( AjAtj ( AjAtj+9 ( AjAtj ( AjAtj+9 ( AjAtj ( AjAtj+9 ( AjAtj ( AjAtj+9 ( AjAtj ( AjAtj+9  (j At" (j(6  (j  (j(6 Aj!  (\"( Atj 6 Ak!@ AN@ At" (j  (j(Aq  ( AjAtj( 6 Ak!  A!@@ N At" (j("AqE@ (" Al" Atj+Dða  AjAt j+! AjAt j+!u AjAt j+!v AjAt j+!w AjAt j+!x  (j(! AqAG" Aj ( AjAtj( !@@  N v ( Al" Atj+c @ ( Atj("AqA  ( Atj(F  ( AjAtj+dA w ( AjAtj+c A u ( AjAtj+d A x ( AjAtj+c (" Atj(! At j(! @ ( Atj((¬" ( "Aj!  (AvK@ AA™ ( Atj 6 6 Aq@ ( Atj((¬" ( "Aj!  (AvK@ AA™ ( Atj 6 6  Aj ( AjAtj( !  Aj!  ( ! (€" "(  AAA™ A6 (Ì! (Ô"AN (( HA   (( Atj(FA @  A!A ("( "E ALr  (!@ H@  Atj( F@  Aj!  A "AN (`( Atj(A ! @ AN@ ( Atj(" -”E@ (¬!A!@ ( J@@ ( ( Atj(Atj("-”A ( F ("(È qE -œ  Ak(AÈFA E@ -ÙEA  (˜!A!A ( "E ALr  (!@ H@  Atj( F@  Aj!  A AN ("E@ * *, *< *L *\ *l *| *Œ * *, *< *L *\ *l *| *Œ *!" *!# *!& * !$ *$!% *(!7 *0!8 *4!9 *8!: *@!; *D!@ *H!? *P!Z *T![ *X!\ *`!] *d!^ *h!_ *p!` *t!a *x!b *€!c *„!d *ˆ!e ("E@ *!C *!A *!D * !B *$!N *(!O *0!P *4!Q *8!R *@!W *D!X *H!Y *P!f *T!g *X!h *`!i *d!j *h!k *p!l *t!m *x!n *€!o *„!p *ˆ!qA@@@@@@@ Ak(A³ k A  A  A  A  A  A  AF"@@@@@@@ Ak(A³ k A  A  A  A  A  A  AF"q A ¹A ¹   rE@@@@@@@@ Ak(A³ k A  A  A  A  A  A  !@@@@@@@ Ak(A³ k A  A  A  A  A  A  ! AF@  Ak(A´ FA E@ " # & $ % 7 8 9 : ; @ ?   C A D B N O P Q R W X Y f g h i j k l m n o p qÇ"AN@ AF   AF@  Ak(A´ FA E@  C A D B N O P Q R W X Y  " # & $ % 7 8 9 : ; @ ? Z [ \ ] ^ _ ` a b c d eÇ"AN@ AF  #L " # & $ % 7 8 9 : ; @ ?’#Ž  C A D B N O P Q R W X Y’Ë  @  Ak(A¸ FA E@ " # & $ % 7 8 9 : ; @ ? Z [ \ ] ^ _ ` a b c d e  C A D B N O P Q R W X YÉ   Ak(A¸ FA E@  C A D B N O P Q R W X Y f g h i j k l m n o p q " # & $ % 7 8 9 : ; @ ?É E (˜! ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  ( Atj((°!  A!@ ( J@ ( Atj(! Ak!@ AN  ( Atj(HA @ Aj ( Atj(º Ak!  Aj º Aj!  A!@ ( J@ (( ( Atj(Atj(" Ak(AÈFA   Ak(AÈFA E@ "( " Aj "( " Aj ! (AvK@ AA™ ( Atj" 6 At Ÿ 6 Aj!  ( AJ@  ‚  ‚ (@! (D! (H! (<" "( ! AAA™ AJ@ (A Atü A6 ( ! AAA™ AJ@ (A Atü A6 ( ! AAA™ AJ@ (A Atü A6 ( ! AAA™ AJ@ (A Atü A6 (Ü!A!@ ( J@ ( Atj(!A!A ( "E ALr  (!@  J@  Atj( F@   Aj!  A AN@ "Aj!   œ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  ( !  AA™ H@ ( AtjA  kAtü  6 (à!A!A!@ ( J@ ( Atj(!A!A ( "E ALr  (!@  J@  Atj( F@   Aj!  A AN@ "Aj!   œ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  ( !  AA™ H@ ( AtjA  kAtü  6 A!@ ( J@ ( Atj(!A!A ( "E ALr  (!@ H@  Atj( F@  Aj!  A AH@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  A!@ ( J@ ( Atj(!A!A ( "E ALr  (!@ H@  Atj( F@  Aj!  A AH@ ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 Aj!  A ( ( ( ( jjjE A!@ ( J@ ( Atj(! ( " ("("6  ž  6  ž  ( AAÕ Aj!  A!@ ( J@ ( Atj(! (" ("("6  ž  6  ž  ( AAÕ Aj!  A!@ ( J@ ( Atj(! (" ("("6  ž  6  ž  ( AAÕ Aj!  A!@ ( J@ ( Atj(! (" ("("6  ž  6  ž  ( AAÕ Aj!  A ! Aj!  A   ÿ! A:` (d"( ! AAA™ AJ@ (A Atü A6 (((Ä ((G@ ˆ  ƒ A  -  (A A  € ! -ä ) )xRA ( (€G A   ) 7x  ("6€  žA  A© F@A "(" E  E@@ ( " -A@ ( "( J@  ( O@ Aj  ( Atj(! Aj!  (( J A E A!A -AA!@ ( "( J@  ( O@ Aj  ( Atj(! Aj!  (( J E A!@ (( J@  ( "( O@@ ( Atj(  (!  ("( O@ ( Atj("E@ Ak("A¦ F@  ú  A¥ F@  ù  "E (  œ Aj! Aj!  (Aj6 (AÚ @ A:4  ! (0" @A  (8À (8Ï E  (8! (," @ Ï   (6  +9  -:  (6  ("6  ž A ((AF  ( (A E@Dð?D -! A6  9 A E  ( ! Ak(" A  F Aª Fr@  ø  Aû F@  Ý  E  ( ! ( ! Ak(" A  F Aª Fr@  ÷  Aû F@  Ü  E@ ( " (6 +9 -: (6 ("6 ž (" (6 +9 -: (6 ("6 ž A:  (-$A @ A:5 Aj! Aj!   þ A  A˜ F@A  A ("(( E  (P!@ ( J@ ( Atj("@@ AHA  (( N @ -]E@ A:] (H!A°œ+ A «ÂAЛ+ (( A «ÂA�›+Â! ( " Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  @ (L"( (( H@ ( " Aj" (AvK@  AA™ ( Atj" A6  At AŸ  6   (L"( O@ ( Atj(E@ (L  œ Aj!   (L"#‚FA#Ì FA " E@ (ôA 68  :¢ @ (A C¸AC0ACC¢  AF@ ACCCC¢  AF@ ACCCC¢  AF@ "¨"AF ((AGA @ (A CˆAC@CC¢  6( AF@ (A CpAC€A "C?^C@@CC¢  AF@ A:# AF@ ACCCC¢ (A CðAC@CC€>¢ A:"  #C`@ (! ($!A! #C€»D`" @ AN@ (A CÀAC@CC¢  (A CÈBC@ (A´mAq (AqAtr (AqAtr ( AqA tr (AqA tr -AGAtr (AqAtr²C¢ A! @ (A C AC@AC@ CC¢ A! !A!A! AF@A!A!  AF@A!A!  AF@A!A!  AF@A!A!  AF@A !A !  AF@A  AF@A  AF@A A A F  A AH   ( F"6 "AN@ (A ²A A AA  rj²CC¢  @ (A C AC@CC¢  ¡ (! ((!é " Ô ( ( ( ( (ƒ (((!#ÕA€I@#±A€è $±A€$Õ #±#Õ‚!@ #ÕAjK@ Ak"#ÕK@#± è $± $Õ #±#Õ‚!  #š#±6#š#± Akj6#šA "AA–˜"A6A8A�˜" ( ("AjI@ Aj6 (6 ( ("AjI@ Aj6  (6 ( ("AjI@ Aj6  (6 ( ("AjI@ Aj6  (6 ( ("AjI@ Aj6  (6 ( ("AjI@ Aj6  (6 ( ("AjI@ Aj6  *8 ( ("AjI@ Aj6  *8 ( ("AjI@ Aj6  (6 ( ("AjI@ Aj6  +9( ( ("AjI@ Aj6  *80� ( (G@  6 A "@ (8 ("(6 (8 (6 (8 ( 6 (8 (6 ( (6 ( (6 ( ( 6 ( (6 ( (6 ( *8 ( ( 6 ( +(9( ( *080 (8 -!:  A!A! "-E@ A: € (<"( AÚM@  ((è" -¨A :U (<"( AÛM@ ((ì"} *¤ *œ *  *˜C ¨! -U@ A:TA$Aã˜"A6 C8 C8 A: C8 C8 C8 C8 A6 C} A$H} ‘ (AF} *C Â’ Aj!  C "" "C]8X ‚  AJ@ A:T A„ …  � (( ( AJ:” ($ ( AJ:”  (Aj6 € (! (<"( AÕM@ ((Ô"} *¤ *œ *  *˜C "" *p\@  "8p#(("( A€o! ("Ak(AvO@  AtjA 6 ("Ak(AvO@  AtjC8 ("Ak(AvO@  AtjC8  ( Aj6 (<"( AÖM@ ((Ø"} *¤ *œ *  *˜C "" *t\@  "8t#(("( A€o! ("Ak(AvO@  AtjA6 ("Ak(AvO@  AtjC8 ("Ak(AvO@  AtjC8  ( Aj6 (<"( A×M@ ((Ü"} *¤ *œ *  *˜C "" *x\@  "8x#(("( A€o! ("Ak(AvO@  AtjA6 ("Ak(AvO@  AtjC8 ("Ak(AvO@  AtjC8  ( Aj6 @ -U (<"( AÇM@ ((œ"} *¤ *œ *  *˜C "" *d\@  "8d �  (<"( AÅM@ ((”"} *¤ *œ *  *˜C "" *\\!  "8\ (<"( AÆM@ ((˜"} *¤ *œ *  *˜C "" *`\!  "8`A  ( (|kA HA ! (D"E@ rA - A - @#(("( A€o! ("Ak(AvO@  AtjA6 ("Ak(AvO@  AtjC8 ("Ak(AvO@  AtjC8  ( Aj6 A„  AF@ (! (<"( AØM@ ((à"} *¤ *œ *  *˜C "" *l\@  "8l "¨"A uA?q! ( "Ak(AvE@  6 ( "Ak(AvAM@  AuA?q6 ( "Ak(AvAM@  A?q6 (<"( AÙM@ ((ä"} *¤ *œ *  *˜C "" *h\@  "8h †  (¤! -@ ( "Ak(Av Ak(AvO@  Atj(AjA&o! M@  Atj 6#(("( A€o!  (" Ak(AvO@ AtjA 6  (" Ak(AvO@ AtjC8  (" Ak(AvO@ AtjC8  ( Aj6 - @ ( "Ak(Av Ak(AvO@  Atj(A%jA&o! M@  Atj 6#(("( A€o!  (" Ak(AvO@ AtjA 6  (" Ak(AvO@ AtjC8  (" Ak(AvO@ AtjC8  ( Aj6 -! (¤AJA @  (¤Ak6¤#(("( A€o!  (" Ak(AvO@ AtjA 6  (" Ak(AvO@ AtjC8  (" Ak(AvO@ AtjC8  ( Aj6 -" (¤AHA @  (¤Aj6¤#(("( A€o!  (" Ak(AvO@ AtjA 6  (" Ak(AvO@ AtjC8  (" Ak(AvO@ AtjC8  ( Aj6 ($"@ ( "Ak(AvO@  Atj AÚL AÁNq A@j AkA A9L A0Nq 6 (¤"AH@  Aj6¤ #(("( A€o! ("Ak(AvO@  AtjA 6 ("Ak(AvO@  AtjC8 ("Ak(AvO@  AtjC8  ( Aj6 -) (¤AJA @  (¤Ak6¤ -@#(("( A€o! ("Ak(AvO@  AtjA6 ("Ak(AvO@  AtjC8 ("Ak(AvO@  AtjC8  ( Aj6 (¤"AH@  Aj6¤ †  A -  (6|A AF A - -”A A @#(("( A€o" ("Ak(AvO@  AtjA 6 ("Ak(Av M@  AtjC8  ("Ak(AvO@  AtjC8 ( Aj6  (6¬ A„ #(4-"E@A! ("*"# &""]@ #!"  * C " "C]’8 *C·Ñ8”!"@ * * "’_ (HA @  * *“8 Aj!  * * "’_@ C8 * C]@ C8  * *•8 !@  J@  *H#–"%’8H (D! ((! (0" *8 * 8 *$8 *(8 *,8 *08 *48 @ AF@A *HC€?”ލk" AL@ …  (LG@  6L# 6#(("( A€o! (" Ak(AvO@ AtjA 6 (" Ak(AvO@ Atj ²8 (" Ak(AvO@ AtjC8  ( Aj6  AF@ (LA G@ A 6L#A 6#(("( A€o! (" Ak(AvO@ AtjA 6 (" Ak(AvO@ AtjC A8 (" Ak(AvO@ AtjC8  ( Aj6 *HC€?`@ …  AF AFr@@ ((!#" * %’8 -TA -U @ (, ( ˆ  ( ! C€¿C ("(" Aq""C€?’ " A q""C[@ C8 %C®GA”!# *"$ "]@  $ #’"# "]} # " 8 *"$ "^@  $ #“"# "^} # " 8 C€¿C€? *C€?C€¿ *"" "‹” (" A€q A€q’"" "C€?^ "C€¿]8 C€¿C€?C€?C A�q""C€¿’ " A qC€¿C€? * AÀq A€q’"" "C€?^ "C€¿]8 AÀqA * C¿] : A Aq A€qA -( : A:( A Aq A€qAG"Ar A Aq A€q"Ar A Aq A€q6 (AF! ( %‹ *¬"" *€C@@’^@  "8€ C8„A (AF A -ˆ *€C ?]A  *øC_ @  *„ %’8„ *„CA^#° * _ (AGA A E@ C8„ C€A8„ C33“?8€ *¬"" * ^@ "8  CzÄ8° C A8´ A6 –  *¬8€  (AGA A -ˆ *€C33“?[A @##A: (œ"* !" *!# *!$ *!7 * !8 *!9 (0" *8  98  88$  78(  $8,  #80  "84 (0" *8  * 8  *$8  *(8  *,8  *08  *48 (4"C8@ C8D C8L C8P C8T C8X AA (AFAA (AF A -ˆ *€C ?]A  *øC_ A -ˆ " (DG@  6D# 6 -U@ *HCðA`A#° * _ (AGA @ ‚  #° * _ (AGA @ A6D C8H#A6#*!"#(," ($"*L8 *P8 *T8 *X8 "CÈB`}CCÈB "“CHC”"#�"" "C€¿’ "C¿’ #_ 8 *\ *’8 *`8 *hCÈB”"#�"" "C€¿’ "C¿’ #_CÈB•8 (l6 (p6$ A *""CPCG` A "C¸G` A "C@œF` A 6( A6,# *8 #(("( A€o! (" Ak(AvO@ AtjA6 (" Ak(AvO@ Atj#°8 (" Ak(AvO@ AtjC8  ( Aj6 #*!"#(("( A€o! (" Ak(AvO@ AtjA 6 (" Ak(AvO@ Atj "8 (" Ak(AvO@ AtjC8  ( Aj6 #(("( A€o! (" Ak(AvO@ AtjA6 (" Ak(AvO@ AtjC8 (" Ak(AvO@ AtjC8  ( Aj6 (4A:l  AF@ ( "C8 C8 A: A: A6  ( %‹ (E@  *"" %CÀ@”"#^} " #“C 8 *HC@`@ A6D C8H#A6#(,"#(0! *!"A!@ A H@ (" Ak(AvO@ Aj" " Atj*^  !  A 6, A6ˆ C33³>8� A:” A:œ A:•A!@ AL@ (Œ"Ak(AvO@  AtjC8 Aj!   AF@#(,! *H!$ (ˆ"AH@ $ *�`@} E@ *  AF@ *  AF@ *  AF@ *  * !" $ *�"8“C@”!7 (Œ"Ak(AvO@  Atj*!9 7C€?`} " " 7”":�"# #C€¿’ #C¿’ :_ !# (Œ"Ak(AvO@  Atj #8 7C€?`A (ˆ F (Œ"Ak(AvO@ "  Atj*[A @  Aj6ˆ  $C33³>’8� $ 8“#—•ލ $ %“ 8“#—•ލG " 9\q@#((" ( A€o!  (" Ak(AvO@ AtjA6 (" Ak(Av M@ Atj ²8  ("Ak(AvO@ AtjC8 ( Aj6  (ˆAF@ $ *�`@ A6ˆ *!" (Œ"Ak(AvAM@ "8  $C?’8˜ -œE@ A:œ *!"#(("( A€o! (" Ak(AvO@ AtjA6 (" Ak(Av M@ Atj "8 (" Ak(AvO@ AtjC8  ( Aj6  -”@ -•E@ (,AJ $ *˜Cš™™?’`A  -TA @ (,AJ -TA  $ *˜Cš™™?’`A @ ( "Ak(AvE@ A6 ( "Ak(AvAM@ A6 ( "Ak(AvAM@ A6 † A! A6D C8H#A6@ AH@ (¨"Ak(AvO@  Atj(! ( " Ak(Av M@ Atj 6 Aj!  A6¤ (<"( AØM@  ((à"} *¤ *œ *  *˜C 8l (<"( AÙM@  ((ä"} *¤ *œ *  *˜C 8h  $ *˜`@ A:” A6ˆC€?C (,AF!" ((²!##(("( A€o! (" Ak(AvO@ AtjA6 (" Ak(Av M@ Atj #8 (" Ak(AvO@ Atj "8  ( Aj6  (,  ( ˆ  ( %‹ #° * _ (AGA A *HCðB^ @ *H!" �  "8H *P""C`@  " %’8P *PCš™?`#(A E@#A6 C€¿8P — #( AF AFr AFr:e (œ"* !" *!# *!$ *!% * !7 *!8 (0" *8 88 78$ %8( $8, #80 "84 AF (¬ANqA (AF A -ˆ *€C ?]A  *øC_ A @  ( (¬k6° A6¬ Aj!  ((! (0" "*"" * "“CC€? (*"" "C€?^ "C]""”’!: *"# * #“ "”’!; *"# *$ #“ "”’!@C€? "“!7 * *("$” * *,"%”’ * *0"8”’ * *4"9”’"#C]@ $Œ!$ %Œ!% 8Œ!8 9Œ!9 #Œ!# #C;ß?]@ #÷"#ü!? 7 #”ü ?•!7 " #”ü ?•!" * 7” $ "”’"# #” * 7” % "”’"$ $”’ * 7” 8 "”’"% %”’ * 7” 9 "”’"" "”’‘"7C^@ # 7•!# $ 7•!$ % 7•!% " 7•!" : *8\A ; *<\ A @ *@\ A # *D\ A $ *H\ A % *L\ A " *P\  :88 ;8< @8@ #8D $8H %8L "8P#(4(! (4" *hC & ""’8h#(("( (d"kA€J@ ( A€k! @  ( H@ A€o" ("Ak(AvO@  Atj("AF AFr@  (Ÿ  AF AFr@  (Ÿ Aj!   6d (! *P!# *L!$ *H!% (\" *D8 %8 $8 #8 (A *XC\ @ *XCffæ¾”C€¿C€? -(”C?”"$ü";C”!# $ú!$ * "% #” *"7 $”’ *"8 ;C€?”"9”’ *": ;C”";”“8 % ;” 7 9”“ 8 $”’ : #”’8 % 9” 7 ;”’ 8 #”“ : $”’8 % $” 7 #”“ 8 ;”“ : 9”“8 *"$ $” *"# #”’ *"# #”’ * "# #”’‘"#C_p‰0^@ $ #•8 * #•8 * #•8 * #•8  C8 C8 C8 C€?8 @C€? *"$ $ $’"7”"9 *"# # #’"%”":’“!; *"# 7”"@ * "8 %”"?’!C *8!A *(Av M@ AtAàÄ>j*!"  Ak(AvO@  Atj "8 Aj!  #( *(AvO@ Ak(AvO@  Atj*"# AtAàÄ>j* #“ "”’!# Ak(Av M@  Atj #8 Aj!   "C]@ "C33³¿”""C_E@C€? " "C€?^!"A!@ A0H@ Ak(AvO@ A0j"AÜÄ>(AvO@ Ak(AvO@  Atj*"# AtAàÄ>j* #“ "”’!# Ak(Av M@  Atj #8 Aj!  *\""C_E@C€? " "C€?^!"A!@ A0H@ Ak(AvO@ A�j"AÜÄ>(AvO@ Ak(AvO@  Atj*"# AtAàÄ>j* #“ "”’!# Ak(Av M@  Atj #8 Aj!  *`""C_E@C€? " "C€?^!"A!@ A0H@ Ak(AvO@ AÀj"AÜÄ>(AvO@ Ak(AvO@  Atj*"# AtAàÄ>j* #“ "”’!# Ak(Av M@  Atj #8 Aj!  *ð"#C^@ *ôC>”!" #C33³>•CÐI@”üCš™™>C€? " "C€?^ "Cš™™>]”""C_E@C€? " "C€?^!"A!@ A0H@ Ak(AvO@ Aðj"AÜÄ>(AvO@ Ak(AvO@  Atj*"# AtAàÄ>j* #“ "”’!# Ak(Av M@  Atj #8 Aj!  *ì""C^@CC€? "C€@”"" "C€?^ "C]""C_E@C€? " "C€?^!"A!@ A0H@ Ak(AvO@ A j"AÜÄ>(AvO@ Ak(AvO@  Atj*"# AtAàÄ>j* #“ "”’!# Ak(Av M@  Atj #8 Aj!  *@""C_E@C€? " "C€?^!"A!@ A0H@ Ak(AvO@ Aðj"AÜÄ>(AvO@ Ak(AvO@  Atj*"# AtAàÄ>j* #“ "”’!# Ak(Av M@  Atj #8 Aj!  (H! *D""C_E@C€? " "C€?^!" A0l!A!@ A0H@  Ak(AvO@ j"AÜÄ>(AvO@  Ak(AvO@  Atj*"# AtAàÄ>j* #“ "”’!# Ak(Av M@  Atj #8 Aj!  *LC€? *DC?”“”""C_E@C€? " "C€?^!"A!@ A0H@ Ak(AvO@ Aàj"AÜÄ>(AvO@ Ak(AvO@  Atj*"# AtAàÄ>j* #“ "”’!# Ak(Av M@  Atj #8 Aj!  *PC^@ (8!A!@ A0H@ A�j"AÜÄ>(AvO@ AtAàÄ>j*!" Ak(Av M@ Atj "8 Aj!  (¼*$C€?’C?”""C_E@C€? " "C€?^!"A!@ A0H@  Ak(AvO@ AÀj"AÜÄ>(AvO@  Ak(AvO@ Atj*"# AtAàÄ>j* #“ "”’!# Ak(Av M@ Atj #8 Aj!  *P!"A!@ A0H@  Ak(AvO@  Ak(AvO@ Ak(Av M@  At"j*"# j* #“ "”’!#  Ak(AvO@  Atj #8 Aj!  AA (À(,! *T""C_E@C€? " "C€?^!" A0l!A!@ A0H@  Ak(AvO@ j"AÜÄ>(AvO@  Ak(AvO@  Atj*"# AtAàÄ>j* #“ "”’!# Ak(Av M@  Atj #8 Aj!  *TC ×#<^@ *hCA”!" Ak(AvA M@ *, "üCÍÌL?” *T”’!# Ak(AvA M@  #8, Ak(AvAM@ *P "Cff¦?”úCÍÌL?” *T”’!" Ak(AvAM@  "8P *X""C_E@C€? " "C€?^!"A!@ A0H@ Ak(AvO@ A°j"AÜÄ>(AvO@ Ak(AvO@  Atj*"# AtAàÄ>j* #“ "”’!# Ak(Av M@  Atj #8 Aj!  ((Av M@ AtA�Ä>j("Al" Ak(AvO@  Atj*Œ!" Al" Ak(AvO@ Atj "8 AlAj" Ak(AvO@  Atj*Œ!" AlAj" Ak(AvO@ Atj "8 AlAj" Ak(AvO@  Atj*!" AlAj" Ak(AvO@ Atj "8 Aj!  Ak(AvA-M@ *´!" Ak(AvA-M@ "8´ Ak(AvA.M@ *¸!" Ak(AvA.M@ "8¸ Ak(AvA/M@ *¼Œ!" Ak(AvA/M@ "8¼A! @ A0H@ Ak(AvO@  Atj*!" Ak(Av M@ Atj "8 Aj!  A! @ AH@ ("( M@ ( Atj("@  Al" Ak(AvO@ Atj* AlAj" Ak(AvO@ Atj* AlAj" Ak(AvO@ Atj*˜ Aj!  ("( E@ (("@ Ak(AvA-M@ Ak(AvA.M@ Ak(AvA/M@  *´C’ *¸Cö(\?’ *¼C’– @ ("E *8 *@ (`"Š (AF *< *CÀ’]A A @ A:¨  A:¨ *"" "” *"#Œ"$ $”’‘!% * !7 *8!9 *C ×#=’!: *@!; " %•"88h $ %•"$8l C8p C8t #8x "8| 78€ C8„ $ 7” "C”“8ˆ #C” 8 7”“8Œ 8 "” $ #”“8� C8” 98˜ :8œ ;8  C€?8¤ ($"@CC€? *< *“""C]}C " CÀ@•"" "C€?^ "C]"" †"*[ " "“C\rA " ((²”"# #“C\ E@ "8 * * “!# " ("-} (²C (²”“8 * #“8 A6 ( " AŠ@ A:< (A:æ ( "@ *$üŒ!" *$úŒ!# *8 "Cš™?”“ *^A *PCš™>^ A !  Ak(A×FA E@ -˜ G@ :˜ C!" -ˆ *€C33“?`A @CC@? *hCA”C@”¨Aq!" ( " " *0\A @ †"* "[ " "“C\rA " ((²”"# #“C\ E@ "8 * * “!# " ("-} (²C (²”“8 * #“8 A6 ( " AŠ@ A:< (A:æ  "80 ((" (,GA @ ² †"((²•"" *[ " "“C\rA " ((²”"# #“C\ E@ "8 * * “!# " ("-} (²C (²”“8 * #“8 A6 ( " AŠ@ A:< (A:æ  6, (8"@ *8 *!="<8  =8  >8 *ú!" *ü!; *ú!# *ü!$ # *ú"%” $ ;”"A *ü"7”’!@ ( "* @” *"? " 7”"D”’ *"C $Œ %” # ;”"B 7”’"N”’!O *"P #Œ 7” A %”’"A” ? " %”"Q”’ C $ 7” B %”’"B”’!RC!%C!7 P $ "”"$” ? ;Œ";”’ C # "”""”’"#CÍÌL¾]"@ R #Œ"#•C?&?•"7‹Cff¦?] O #•#•C?&?”•"%‹Cff¦?]q! @A!@ A AL@A  8 * ²CHB”"#”’ 9 * #”’ ($Š ($* : * #”’^A ! Aj!  A!@ AH@ ("( O@@ ( Atj("E E@ Coƒ:Coƒ:Coƒ:š  AÜÎ:(AvO@  8 @ % AtAàÎ:j*"?”C?&?”#•”C@”"#”’ A 7 ?”C?&?”C@”"?”’ $ $’“ : D #”’ Q ?”’ ; ;’“ 9 N #”’ B ?”’ " "’“–  * * *˜ AŒÏ:(AvO@  AtA�Ï:j*"# # #š Aj!  #Aj$  #( *\"" *“‹C€>^@  "ÿ ("A ("@ ¦!6!5!4!3!2!1!0!/!.!-!,!+!*!)!(!' 3 4 5–  &CÍÌÌ= &CÍÌÌ=]C‰ˆˆ< &C^!"##"-A -  ( (8GA ! A:  (68 *!# * Cfff?’!7 *!$@ (AF@  - A E@  "Aý  *, *0 *4 * * Cš™™>’ *C„Bþ  (AF@ *LüŒ!" *LúŒ!% *@ "C@A”’ %C@À”’"8 *H %C@A”’ "C@À”“"" (@Š  8 (@*Cff¦?’ " # 7 $C„Bþ A:  (AF@ *üŒ!" *úŒ!% * "C�@”’ %Cffæ¿”’"7 * %C�@”’ "Cffæ?”’"" (@Š  7 (@*CÀ?’ " # * C€?’ $C„Bþ A:  (AF@C!"Cffæ?!###"*PC @•¨Ao"AF}Cªa@!"Cš™™?!#CÀ@ AF}CÛÉ?!"C€?!#Cà@ AF}C’ ¿!"C @!#CAC @ !$ * "’""üŒ!% "úŒ!7 * #’!" * % $”“"# * 7 $”“"$ (@Š " (@*Cš™?’]A @ (@*Cš™?’!" *üŒ!% *úŒ!7  # " $ * %CÀ?”’ * CÍÌL?’ * 7CÀ?”’C„Bþ A:   " ý *!#  *< -T}C„B #CA”C„B’ *<“CC€? "CÀ@”"" "C€?^ "C]”’8< *üŒ!" *úŒ!# * "C@@”’!" * #C@@”’!# * CÍÌL?’!$ *("%Coƒ:^@ " *0 "“ %Cš™?”"%”’!" $ *4C?’ $“ %”’!$ # *8 #“ %”’!#  *, *0 *4 " $ # *<þ  $  )B|7A! Aj!  ( ! AAA™ AJ@ (A Atü A6 A A! A (("( E @ ( J@@ ( Atj(" -µ ( ! (F@ A�AД+Â! ("@  Ç A:´  @@A!A ("( "E ALr  (!@  H@  Atj( F@   Aj!  A AH #m( AJ -ÀA E@ !@  ( "E  !A!@#H( J@ #H( Atj(F@ #m"( O@ ( Atj("E@   Aj!  A "@@ Ak("A” F@ ( é  Aç F@A! (" (¤ ïk6¤@ (¨"( J@  ( O@ ( Atj("@A!@ Ak("A× F A© Fr A˜ Fr AÌ F@@ ("( J@ ( Atj("(!@ @A  F  ( !  A @ (!@ @A -´A -µ  ( !  A @ ("( " @A! @ ("( J@ ( Atj("-@ -@ A: A: (,AGA (0AG A (4AG A (8AG A (A AG E@ >}AÄÓ*!AÀÓ*!A¼Ó*!AÈÓ*A¤Ó*!A Ó*!AœÓ*!A¨Ó* ! ; A(" 8At"j+ @("Ej+ C("Gj+ 8Aj" D H"At j+ At" Ej+ Gj+    C€?A˜! >@ < <(Aj6 < <(Aj6 8Aj!8  :Aj!:  ?( !DA!8@ D( 8J@ D( 8Atj("-ÌE@ !:A!>#A�¥ÁkAÀI@ #A@j"$ (È"A A- A @  •!!!!!! ! ! ! ! !!!!!"8  8  8  8  8  8  8  8  8  8$  8(  8,  80  84  88  8< A(!@ A(!G A(!B@ A((AvAk >J@ G(" >AjAtj(!E >At j("H!@ EH@ B("F Aj" H  EHAtj(Al!C ; : * * * * * * * * * *$ *( *, *0 *4 *8 *< @(": At Fj(Al"Atj* AjAt :j* AjAt :j*æ!)!("'» (» )» * * * * * * * * * *$ *( *, *0 *4 *8 *< @( CAtj* @( CAjAtj* @( CAjAtj*æ!)!("'» (» )»A¬Ó*A°Ó*A´Ó*A¸Ó*C€?A˜!:#Ô" (Aj6 !  >Aj!>  #A@k$ :! 8Aj!8  A!8@ 8 =(H@ =(4(" 8AjAtj(! 8At j(!:@  :J@ =(D( :j-AGA 8 =(8( :Atj(J E@ ; =(@(" :Al"Atj+ AjAt j+ AjAt j+ AjAt j+ AjAt j+ AjAt j+AÌÓ*AÐÓ*AÔÓ*AØÓ*C€?A˜! < <( Aj6 :Aj!:  8Aj!8  ?(!=A!8@ =( 8J@ ?($"( 8Al"Atj+!N (" AjAtj+!U AjAt j+!V AjAt j+!P AjAt j+!Q AjAt j+!R 8At" =(j("-ÉE!> -È  ?(((j(ANA }AäÓ*!AàÓ*!AÜÓ*!AèÓ*AôÓ*!AðÓ*!AìÓ*!AøÓ* ! P N¡"S S¢ Q U¡"X X¢  R V¡"W W¢ Ÿ"YDÐ?¢!Z N"K!M U"L!O V"J!TA!:@ :AL@ ; K"M L"O J"T N S :·DÀ?¢"J¢ "K U X J¢  ZD@¢ J¢Dð? J¡¢ "L V W J¢ "J    C€?A˜! :Aj!:  >E YDar  M P¡"M M¢ O Q¡"O O¢  T R¡"T T¢ Ÿ"LDa  YD@33Ã?¢D ™™Ù?¤!K Wš"J J¢ S S¢ Ÿ"NDd| J N£ K¢Dà?¢!J S N£ K¢Dà?¢ KDà?¢!JD !N ; ; P Q R P M L£ K¢"M  J  Q O L£ K¢"O  R T L£ K¢"K  N     C€?A˜ P Q R P M  J¡ Q O  R K  N¡    C€?A˜ ! < <(Aj6 8Aj!8  9(!A!=#A�¥ÁkAÀI@ #A@j"9$—#Ô" (AvO@ J ( >Atj*» 8AlAj"> (AvO@ ( >Atj*»¢ 8Al"8 (AvO@ ( 8Atj*» :AlAj"8 (AvO@ ( 8Atj*»¢¡ !J :Aj!:  JDd}A´Ô*!A°Ô*!A¬Ô*!A¸Ô*AÄÔ*!AÀÔ*!A¼Ô*!AÈÔ* !A!:@ : ?H@ :Aj ?o!8 ; * * * * * * * * * *$ *( *, *0 *4 *8 *< (" :Al">Atj*C >AjAt j*æ!)!("'"» K )"» * * * * * * * * * *$ *( *, *0 *4 *8 *< ( 8Al"Atj*C ( AjAtj*æ!)!("'"» K )"»    C€?A˜! K Lb@ ; ; »"J L »"M » L »    C€?A˜ J K M J L M    C€?A˜! :Aj!:  #A@k$ < <(Aj6 =Aj!=  #A@k$  :AÌ F :AÈ Fr :A¿ Fr :A© Fr :A˜ Fr :A‘ Fr@ :A¯ F@ ":("AE -äErE@ (!C ((€"!8 ( !=#ÅE@AŒÑA¼Ñ*AÀÑ*AÄÑ*AÈÑ*Î !-!,!+"*8A�Ñ +8A”Ñ ,8A˜Ñ -8AœÑAüÐ*A€Ñ*A„Ñ*AˆÑ*Î !-!,!+"*8A Ñ +8A¤Ñ ,8A¨Ñ -8A¬ÑAÌÑ*AÐÑ*AÔÑ*AØÑ*Î !-!,!+"*8A°Ñ +8A´Ñ ,8A¸Ñ -8A$Å A( !D@ D( >J@ D( >Atj("-”E@ C ( CFA }A¤Ñ*!A Ñ*!AœÑ*!A¨Ñ*A”Ñ*!A�Ñ*!AŒÑ*!A˜Ñ* ! ("E@ A€É*A„É*AˆÉ*AŒÉ*A�É*A”É*A˜É*AœÉ*A É*A¤É*A¨É*A¬É*A°É*A´É*A¸É*A¼É* * * * * * *$ *( *, *0 *4 *8 *< *@ *D *H *Lã!!!!!! ! ! ! ! !!!!!"! ! ! ! ! ! ! ! ! ! !! !" !# !$ !% !&A!;@@@@@@@@@@@@@@ Ak(A³ k A  A  A  A  A  A    Ak(A³ FA E@ *(»Dà?¢!J *,»Dà?¢!K *0»Dà?¢!LA!@ A H@ At"AÜ“+(AvO@          ! " # $ % & J Jš AtAà“+j("Aq K Kš Aq L Lš Aq AtAj"AÜ“+(AvO@ J Jš AtAà“+j("Aq K Kš Aq L Lš Aq     8 =„!= Aj!    Ak(A´ FA E@          ! " # $ % &DAA +("JAA     8          ! " # $ % &DAA JAA     8          ! " # $ % &DAA JAA     8 =………!=   Ak(Aµ FA E@          ! " # $ % & +0Dà?¢"J J +(¤"J¡D¥"KšAA JAA     8          ! " # $ % & KAA JAA     8          ! " # $ % & Kš"LAA JAA     8          ! " # $ % & KAA JAA     8          ! " # $ % & J K     8          ! " # $ % & LAA JAA     8          ! " # $ % & KAA JAA     8 =……†…………!=   Ak(A¶ FA E@          ! " # $ % & +0"J +(Dà?¢"K     8          ! " # $ % & KšAA JAA     8          ! " # $ % & KAA JAA     8 =……†!=   Ak(A· FA E@ ¿"(! (!@ ( " ;AjJ@  ;M@ ( ;Atj(Al! ;Aj"9 ( O@ ( 9Atj(Al!9  ( O@ Aj"< ( O@ 9 ( O@          ! " # $ % & ("? Atj+ Aj!>  A(! ( "@Aj"; (AvK@  ;AA™ ( @Atj"@ >6  ;At @ >Ÿ  ;6 9Aj!9  ( "9A -É@ 9 9Ak(";AÅF ;AÇFr ;AÈFrA @ ( ">Aj"; (AvK@  ;AA™ ( >Atj"> 96  ;At > 9Ÿ  ;6 A       (Ø -ß -Þ -Ü -Ý AA#Š!; A ? ?AL²C€?”! Œ! Œ! ;E@            8 =‡  #Â"* ! *" *Œ"          8     A¬Ñ*A°Ñ*A´Ñ*A¸Ñ*  8 =‡‡ !=#A@k$ Aj!  : A) 7x : :("6€ : ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAø˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  • A6 A6 A6 A6 C8 A6 A6 A: A6 C8$ C8( C8, C€?80 C84 C88 C8< C€?8@ C8D C8H C8L C€?8P C ×#<8T C8X C8\ C8` C8d A:h A:i A:j A:k A:l A:m A:n A:o A:p A:q A:rAA¦˜!AAݘ" 6  ž  6 A6 A6 6tAA¦˜!AAÞ˜" 6  ž  6 A6 A6 6x A� 6|AAŘ"A€A¦˜"6  6 A€6 A6 6€AAŘ"A€A¦˜"6  6 A€6 A6 6„AAƘ"A A¦˜"6  6 A 6 A6 6ˆAA¦˜!AAߘ" 6  ž  6 A6 A6 6ŒAA¦˜!AAà˜" 6  ž  6 A6 A6 6� A6”AA¦˜!AAá˜" 6  ž  6 A6 A6 6˜A˜AÛ˜"ž 6œ C8  C8¤ C8¨ C8¬ C8° C8´ A:¸ C8¼ C8À C8Ä C8È C8Ì C8Ð A:ÔAA¦˜!AAë˜" 6  ž  6 A6 A6 6Ø A6Ü A6à C8äAA¦˜!AAâ˜" 6  ž  6 A6 A6 6èAA¦˜!AAã˜" 6  ž  6 A6 A6 6ì A6ð A:ôA˜A‹˜!AAô˜ A€Aô˜6 A6AAô˜ A Aô˜6 A6 A6 A6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6 A6 A6 A6$ A6( A:,AA¦˜!AA¤˜" 6  ž  6 A6 A6  60AA¦˜!AA.˜" 6  ž  6 A6 A6  64AAô˜ A€Aô˜68AA ˜ A€A ˜68 C€B8$ C8( C€?8, 6üAA¦˜!AAä˜" 6  ž  6 A6 A6 6€A8A–˜!AAô˜ AÀAô˜6 A6AA ˜ AÀA ˜6AA ˜ AÀA ˜6 AA ˜ AÀA ˜6 A6 A6 A6 A6 A6$ A6(AA¦˜!AA¤˜" 6  ž  6 A6 A6  6,AA-˜ AÀA-˜60AAô˜ AÀAô˜64 6„AA¦˜!AAå˜" 6  ž  6 A6 A6 6ˆ A:Œ C8� A:”AAš˜"A: C A8 C @8 A: C@8 C€?8 CÍÌÌ=8 6˜AA›˜"A6 A: A: A6 A6 A: 6œ A6 A(A�˜"A6 A6 A: AÐä6 A6 C€?8 CÍÌL>8 C@8 A€€á6 A:$ A:% A:& 6¤ A6¨ A6¬ ú A6 A6 A6AA£ ˜"AAA¼ A¤6 AAAöA¤6 6 A6 A6 C8 C8 C8 C8$ C8( C8, A:0 B78 C8@A,A¤ ˜"A6 C8 C8 C8 C8 C8 C8 A: A: A6 A6$ A6( 6D A6H A6LAA¦˜!AA»˜" 6  ž  6 A6 A6 6P A6TAAÑ ˜"C8 C8 C8 C8 C8 C8 A: 6X A6\ A:` C8d C8h C8l C8p å C8 C8 C8 A: A: C€?8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ C8D C8H C€?8L A6P C€?8T C€?8XAœAÖ˜"æ 6\ C€?8` C€?8d A6hA8Aט"A: A6 C8 C8 C8 C8 C ×#<8 C8 C€?8 C8$ C8( C€?8, C A80 CÈB84 6lA,Aؘ"¬ 6pA$AÙ˜"A: C€?8 C@8 CÀ?8 C?8 C�Âu=8 CHáz?8 C8 C8 6tAAÚ˜"A: C€?8 C€?8 C€?8 6xAA˜˜"A: AÀ6 Cš™>8 C@8 CÍÌL>8 6|AA™˜"A: 6€ A:„ C8ˆ C8Œ C8� C€?8” ®AA¦˜!AA¤˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6 A6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6 AA¦˜!AA¤˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6 AA¦˜!AA.˜" 6 ž 6 A6 A6 6 æ ~ A0L@ AL@ @@ AG@ AF    (" (" (AJ!   6    " (" (AJ!   6   6  (" (" (AJ!   6   6 A AkA ¡ A! gk" At"At•!@  I@  AtjA6 Aj!  At•! A Ak" ¢"Aj"A H@ AA  AN"  ¡  j! A!A!@  J@ Aj"  ¢" kAj" A H@  Aj"  J" ¡  j­B† Aj­"€ jAj­B† €…§g!@  K@  At" j"(" AG@ j(Aj   £ A6 ! Ak!   At"j 6  j 6 ! ! !  @ @  At"j("AG@   j(Aj   £ Ak!  @#¡!@ @  AjO  (IA @A  (!  A @ Ak("@ Ak"A gkAtA¨ j"(6 6 Ak"#6 A6 A6 $  #  Ak"(jF@ $#A (Ajü @#¡!@ @  AjO  (IA @A  (!  A @ Ak("@ Ak"A gkAtA¨ j"(6 6 Ak"#6 A6 A6 $  #  Ak"(jF@ $#A (Ajü „    kAj" kAqk Aq j!@  HE@ Atj"("!  ("  (AL@ ! ! Ak!@  L@  Atj"("  (AJ@  6 Ak!  Atj 6@  L@  Atj"("  (AJ@  6 Ak!  Atj 6 Aj!  ÷  F@   Atj( Aj"Atj( (AJ@@  J  Atj"( ( (AvA @ Aj!  !@  NE@ Atj"(!  Atj"(6 Aj!  6 Ak!  @  J  Atj"( ( (ANA @ Aj!   ç Ak" j! Aj!@  NE@  Ak"At"j j(6  !@  NE@   kAtj Atj(6 Aj!  @  L@  Atj(!  Atj(!  JA   (AH @ Atj 6 Ak! Atj 6 Aj! Aj!   J  Hk �  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž!  jAk!@  KE@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j ! jAk!@  KE@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!  j!@ ME@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA š}@@@ Ak(A²k. • ¬ •!!!! ! ! ! ! !!!!!!!"           ¶} A� 6 A� 6A°*!A¬*!A¨*!A¤*!A *!Aœ*!A˜*!A”*!A�*! AŒ*! Aˆ*! A„*! A€*! Aü*!Aø*! Aô*8 8 8 8 8 8 8 8$ 8( 8, 80 84 88 8< 8@ 8DA°*!A¬*!A¨*!A¤*!A *!Aœ*!A˜*!A”*!A�*! AŒ*! Aˆ*! A„*! A€*! Aü*!Aø*! Aô*8H 8L 8P 8T 8X 8\ 8` 8d 8h 8l 8p 8t 8x 8| 8€ 8„ C A8ˆ C A8Œ C A8� C8” C8˜ C8œ A6  C€?8¤ C€?8¨ C8¬ A:° A:± A:² A6´ C8¸ C8¼ C8À Aÿÿ?6Ä Aÿÿ?6È A6Ì Í A6 A6 A6 A: A6AAÁ˜"AÀA¦˜"6  6 AÀ6 A6 6 A6 A6AA¦˜!AAý˜" 6  ž  6 A6 A6 6 A6$AA¸˜"AàA¦˜"6  6 Aà6 A6 6( A6, C80 C84 C88 C€¿88\ C°rè>8` CÍÌ ?8d C€?8h Cës%?8l C‚â'?8p CŒ¹+?8t C€?8x CÍÌL>8| CV->8€ C'1>8„ C€?8ˆ Cës%?8Œ C‚â'?8� CŒ¹+?8” C€?8˜ A6œ C€?8  C€?8¤ A:¨ AÀ6¬ Cš™>8° C@8´ CÍÌL>8¸ A:¼ A:½ C€?8À C@8Ä CÀ?8È C?8Ì C�Âu=8Ð CHáz?8Ô C8Ø C8Ü A:àAA¦™"Aø±Aü !AA.˜" 6  ž  6 A6 A6 6ä A:è CÍÌL?8ì C€?8ð CÍÌL=8ô C8ø A6ü C€?8€ C@8„ C@A8ˆ A:Œ C€?8� C€?8” C€?8˜ A:œ A6  C¦›?8¤ Ch‘ ?8¨ Cã¥?8¬ C€?8° C€?8´ C8¸ C ×#<8¼ C8À C€?8Ä C8È C8Ì C€?8Ð C A8Ô CÈB8Ø A:Ü CÍÌL=8à C€?8ä C€?8è C€?8ì C€?8ð C8ô C8ø C8ü C€?8€ C€?8„ C€?8ˆ CÍÌL>8Œ C€B8� C@8” C8˜ C€?8œ A:  Cfff?8¤ “ A A¦™"AøÄA ü AA.˜" 6  ž  6 A 6 A6 6 C€?8A A¦™"AˆÅA ü AA.˜" 6  ž  6 A 6 A6 6 C€?8 C8 C?8 A6 C?8 A: AA¦˜!AA­˜" 6  ž  6 A6 A6 (A6 (A6 (A6 (A6 (A6 6$ A:( A:)AA¦™"A˜Å)7AA.˜" 6  ž  6 A6 A6 6,AA¦™"A Å)7AA.˜" 6  ž  6 A6 A6 60 C€?84 C€?88 A:< CÀ?8@ C€?8DA A¦™"A¨ÅA ü AA.˜" 6  ž  6 A 6 A6 6H C8L C8P CÍÌL=8T C8XA A¦™"A¸ÅA ü AA.˜" 6  ž  6 A 6 A6 6\ C8` C8d C8h C€?8lA A¦™"AÈÅA ü AA.˜" 6  ž  6 A 6 A6 6p C8t C8x Cff¦?8| CÈB8€ CÈC8„ C8ˆ C8Œ C8�A A¦™"AØÅA ü AA.˜" 6  ž  6 A 6 A6 6”AA¦˜!AA«˜" 6  ž  6 A6 A6 @ AH@AAª˜"A6 AAA.AèŤ6 C8 AAA.AðŤ6 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  6˜AA­˜"A6 A6 A6 A6 Aš!A!@ AH@  Aœ Aj!  6œ A:  A:¡ A6¤ A6¨ A6¬ ” A� 6AA-˜"AèÂýý 6 C€?8 C€?8 A A-˜"AøÂA ü 6 C€?8 C€?8 A6 C?8 A:$ C€?8( A:, CÀ?80 C€?84A A-˜"AˆÃA ü 68 C8< C8@ C8DA A-˜"A˜ÃA ü 6H C8L C8P C€?8TA A-˜"A¨ÃA ü 6X C8\ C8` Cff¦?8d CÈB8h CÈC8l C8p C8t C8x C8|A A-˜"A¸ÃA ü 6€AA¶˜"A6 A6 A6 A6 Aš!A!@ AH@  Aœ Aj!  6„ A:ˆ A:‰ A:Š “ A6AA¦˜ AA¦˜6 A: C8 C8 C8 C8 C8 C8 A:$ A:% A6( A:, A60 A64 A68 Æ}A Aç˜"A6 A6 A6 AÐßA¦˜"6  6 AÐß6 6 A6 A6 A6 A6 A: A6 A6 A6 A°*!A¬*!A¨*!A¤*!A *!Aœ*!A˜*! A”*! A�*! AŒ*! Aˆ*! A„*!A€*!Aü*!Aø*! Aô*8$ 8( 8, 80 84 88 8< 8@ 8D 8H 8L 8P 8T 8X 8\ 8`A°*!A¬*!A¨*!A¤*!A *!Aœ*!A˜*! A”*! A�*! AŒ*! Aˆ*! A„*!A€*!Aü*!Aø*! Aô*8d 8h 8l 8p 8t 8x 8| 8€ 8„ 8ˆ 8Œ 8� 8” 8˜ 8œ 8  A6¤ C8¨ C8¬ C8° C8´ C8¸ C8¼ A6À A6Ä A6È õ ~ ( B ˆ§A½ÜÊ•|l §A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s" (qAtj(!@ @ ("AqE@  ) Q  A~q!  A E@ ( " (F@ ( AlAmH ( (AtAr !AA¦˜ Aj"At"AüÿÿÿK@ A¦˜!AA¦˜ AtAm" At"AüÿÿÿK@ A¦˜! (" (Atj! !@  G@ (AqE@  )" 7    B ˆ§A½ÜÊ•|l §A½ÜÊ•|lA¹ÏÙ²jAwA¯ÖÓ¾ljAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj"(6  6 Aj! Aj!  6 ž 6 6 ž 6 (6 ( ("Aj6 Atj" 7 (Aj6  (  (qAtj"(6 6 ä A� 6 A� 6 A� 6 A� 6 A6 C€?8 C€?8 C€?8 C€?8 A6$ C8( A6, C€?80 A64 A:8 A:9 C8< C8@ C8D C€?8H C€?8L A6P A:T C€?8X A6\ A:` A6d A6h C?8l A6p A:t A:u C€?8x C€?8| C€?8€ C8„ C8ˆ C8Œ A6� A:” A6˜ C€?8œ CÀ?8  C€?8¤ A6¨ C€?8¬ C€?8° C€?8´ C€?8¸ A6¼ A:À C€?8Ä C?8È A6Ì A6Ð A6Ô C€?8Ø A:Ü C8à C8ä A6è C8ì C8ð C8ô C€?8ø A6ü C8€ A6„ A:ˆ CÍÌL=8Œ C€?8� A6” C8˜ A6œ C8  C€?8¤ C€?8¨ C€?8¬ C€?8° C8´ C8¸ A6¼ Cff¦?8À CÈB8Ä CÈC8È A6Ì A:Ð C€?8Ô A6Ø C€?8Ü C€?8à C€?8ä C€?8è A6ìAA¦˜!AA¡ ˜" 6  ž  6 A6 A6 @ AH@AA¢ ˜"A6 C8 C8 C8 C€?8 C€?8 ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  6ð A6ô A6ø ± A� 6 A� 6 A� 6 A� 6 A6AA¦˜!AA¯ ˜" 6  ž  6 A6 A6 6 A6 A6 C8 C8$ C8( C8, C80 C84 LAAû˜"A: A6 A� 6 A6  ·"6  ž  6  ž  § Ak("AóF@ (AL@ (AðÛ (  (A€’ (A «ÂA€’ (A «ÂAðÛ (  A·F@ (Ak(AvE@@@@@@@@@@@@ (  AЉ+ A€Š+ A Š+  AàŠ+  A ‹+  AЋ+  A�Œ+  AàŒ+  A �+  Aà�+  A�  @@@@@@@@@@@ (  AЉ+ A€Š+ A Š+  AàŠ+  A ‹+  AЋ+  A�Œ+  AàŒ+  A �+  Aà�+  A� AðÛ (  A¦F@@@@@@@@@@ ( Að„+ (  Að…+ (ÂA°…+  Aà†+ (ÂAÀ†+ (   A°‡+ (  A€– (ÂAðÛ (   A€� (ÂAÀî! (ÂAР A€� (ÂAÀî! (ÂA€ˆ+  AÀˆ+ (ÂA Í (  A€‰+ (ÂA Í (  A—F@@@@@@@@ ( (  A€€+  AÀ€+  Að€+  A°‚+AÐ�+ (  Aàƒ+A�ƒ+ (  A°„+  A�F@ (E@ (  (Aðö* (A «ÂAÐö* ( A «Â  AˆF@@@ ("@ AF   A þ* - A ªÂAðý* (A «ÂA �  AÐþ*  AÀÿ* - A ªÂAðý* (A «ÂA �  A…F@ à AÿF@ ( ( "AJA€’ A «ÂA� ÂAðÛ ( AéF@ ( ( (Í AðÛ (Â!@ ("( J@  ( O@ ( Atj("E@ A ÷* ( ( (Í AðÛ ( ÂÂÂ! Aj!   A—F@ É A²F@@@@@ ( AÐÓ  A€Ô  AÀÔ  AðÔ  A�F@ ( A˜F@ (A€’ ((A «ÂA€’ ((A «ÂAðÛ (  A†F@ ( AƒF@@@@@@@@@@@@@@@@@@@@@ (  A Û$  AàÛ$  A°Ü$  A€Ý$  AÐÝ$  A€Þ$  AÀÞ$ A€ß$ A°ß$ Aàß$ A�à$ AÀà$  A€á$  AÐá$  Aàâ$  A ã$  A€ä$  A°ä$  Aðä$  AÀå$ Aðö* (A «ÂAÐö* ( A «Â AïF@@@@@@@@@@@@@@@@@@@@@@ (  AÀë* (ÂAàŽÂ  A€ì*  A°ì*  (A�í* (ÂAàì* (ÂA �  AÀí* (,  A°Æ (ÂA€î* ( A ªÂ  A°î* (ÂAàŽÂ  Aðî* (ÂAàŽÂ A ï* (ÂAàŽÂ Aàï* (ÂAàŽÂ A ð* (ÂAàŽÂ (Aàð* A ñ*  AÐñ*  A€ò* (,ÂAàŽÂ  AÀò* (,  AÐô* ($A ªÂA€ô* ((A ªÂAàó*ÂAà#ÂA€ó*  Aàõ* (,ÂA°õ*  Aàõ* (,ÂAР A�ö* (,  A€– (,ÂAðÛ (0  j A6 A6 A6 A6 A6 A6 AA¦˜!AAê˜" 6 ž 6 A6 A6 6 Ä Ak("A× F AÌ Fr AÈ Fr A¿ Fr A¯ Fr A‘ Fr@ A© F@ A Aª ˜"A6AA¡ ˜"½  6  6 A "6 ž ("@   ( §  A˜ F@ (" 6  ž ( E:  Ï©}| Ak("A× F@ (A Š @A8AÝ ˜" A6A AØ ˜"A6 A6 A6 A6 A6 A6 A6 A6 6AA¦˜!AA̘" 6  ž  6 A6 A6 6AA¦˜!AA͘" 6  ž  6 A6 A6 6 AA¦˜!AAÛ ˜" 6  ž  6 A6 A6 6A0Aʘ!AA¦˜ AA¦˜6A Aç˜"A6 A6 A6 AA¦˜"6  6 A6  6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6 A6 A6 A6 A6A Aç˜"A6 A6 A6 AA¦˜"6  6 A6  6 A6 A6$AA¦˜!AA˘" 6  ž  6 A6 A6  6( A6, 6AAÚ ˜"AAæ ˜6AA¦˜!AAÛ ˜" 6  ž  6 A6 A6  6AA¦˜!AA¤˜" 6  ž  6 A6 A6  6 AA¦˜!AAÜ ˜" 6  ž  6 A6 A6  6 A6 A6 6AA¦˜!AA̘" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6 AA¦˜!AA³˜" 6  ž  6 A6 A6 6$AA¦˜!AA³˜" 6  ž  6 A6 A6 6(AA¦˜!AAÛ ˜" 6  ž  6 A6 A6 6, A60 A64 ((Xú"  ( "E@ (!AA… ˜"C€>8 C€>8 C€>8 C€?8 A: C€?8 (4! A€ˆÍ! @ ( J@@ ( Atj("Aà�AÅ"AN A È  É"A€’AÅ"AL A ÈÉ!A!@#‹Ak(Av J@A#‹ Atj( Ä  Aj!  A E  AjAÿÿÿÿÈÉ"Ak(AvAO AÀ�AÇ AÀ�#ÃA A AàŽAÇ AàŽ#ÃA A @ A Ak(AvAkÈ! A æ*Ä@ Aà¯Ä@ A: AàûÄ@ A:Aðƒ ÂAàç ÂAà„Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  ¥ "- +DdA  +"" "¡DbA @Aðƒ ÂAàç ÂA€ç*Â! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6  +¶!! AÀç*Ä@  !8 A�è*Ä@  !8 Aðè*Ä@  !8 Aàé*Ä@  !8   !8 Aj!  6 ž A ! A¼Aâ ˜!AA… ˜"C€>8 C€>8 C€>8 C€?8 A: C€?8  6AðAç ˜"A6 A6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6A Aè˜"A6 A6 A6 AA¦˜"6  6 A6  6 A Aè˜"A6 A6 A6 AA¦˜"6  6 A6  6A Aè˜"A6 A6 A6 AA¦˜"6  6 A6  6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6AA¦˜!AA³˜" 6  ž  6 A6 A6  6 A6 A Aè˜"A6 A6 A6 AA¦˜"6  6 A6  6$A Aè˜"A6 A6 A6 AA¦˜"6  6 A6  6(A Aä˜"A6 A6 A6 AA¦˜"6  6 A6  6,A Aߘ"A6 A6 A6 AA¦˜"6  6 A6  60A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  64A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  68A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  68 C@8 A€€á6 A:$ A:% A:& 6Ô A6Ø A6Ü A6à A:ä A:å A6èAA¦˜!AAý˜" 6  ž  6 A6 A6 6ìAAµ˜"AAA¶A¤6 A6 A6AA¦˜ A€ A¦˜6 A6 A6A A˜"A6 A6 A6 ( "Ak("  Ak(" A€€€€xF"I@  6  6  6  6 6ðAA¦˜!AA¢˜" 6  ž  6 A6 A6 6ô A6øAA¦˜!AA£˜" 6  ž  6 A6 A6 6üAA¦˜!AA¤˜" 6  ž  6 A6 A6 6€AA¦˜!AAë˜" 6  ž  6 A6 A6 6„ A:ˆ A:‰ A:Š A6Œ A6� A6”AA¦˜!AA¤˜" 6  ž  6 A6 A6 6˜AA¦˜!AA¤˜" 6  ž  6 A6 A6 6œAA¦˜!AA¤˜" 6  ž  6 A6 A6 6 AA¦˜!AA¹˜" 6  ž  6 A6 A6 6¤AA¦˜!AAˆ˜" 6  ž  6 A6 A6 6¨ A6¬AA�˜"A6 A6 6°AA›˜"AAAœA¤6 A6 A6 A6 C€?8 A� 6 6´A Aš˜"A6 A6 A6 A6 C8 C8 C8 C€?8 6¸AA›˜"AAAœA¤6 A6 A6 A6 C€?8 A� 6 6¼A Aš˜"A6 A6 A6 A6 C8 C8 C8 C€?8 6ÀAA›˜"AAAœA¤6 A6 A6 A6 C€?8 A� 6 6ÄA Aš˜"A6 A6 A6 A6 C8 C8 C8 C€?8 6ÈAA›˜"AAAœA¤6 A6 A6 A6 C€?8 A� 6 6ÌA Aš˜"A6 A6 A6 A6 C8 C8 C8 C€?8 6ÐA Aš˜"A6 A6 A6 A6 C8 C8 C8 C€?8 6ÔAA›˜"AAAœA¤6 A6 A6 A6 C€?8 A� 6 6ØA Aš˜"A6 A6 A6 A6 C8 C8 C8 C€?8 6ÜAA›˜"AAAœA¤6 A6 A6 A6 C€?8 A� 6 6àAA›˜"AAAœA¤6 A6 A6 A6 C€?8 A� 6 6ä A6è A6ìA,A®˜"ª 6ð A6ôA Aš˜"A6 A6 A6 A6 C8 C8 C8 C€?8 6øAA›˜"AAAœA¤6 A6 A6 A6 C€?8 A� 6 6üAA¦˜!AA¥˜" 6  ž  6 A6 A6 6€ A6„ A6ˆ A6Œ A6� A6” A6˜AA¦˜ AÐßA¦˜6œ A6  A:¤ A:¥ A6¨ ß A6 A6 A6 A6 A6 A� 6 A6 A6 A6 A6$ A6( A6, A60 A64AA¦˜!AAØ" 6  ž  6 A6 A6 68 AA¦˜!AA‰˜" 6 ž 6 A6 A6 6< £ A6 A6AA¦˜!AA­˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6 AA¦˜!AA¤˜" 6  ž  6 A6 A6 6AAÖ˜"C8 C8 C8 C8 AAט"A€A¦˜"6  6 A€6 A6  6AAؘ"A€A¦˜"6  6 A€6 A6  6 6 AA¦˜!AA­˜" 6  ž  6 A6 A6 6 G A6 AA¦˜!AAõ˜" 6 ž 6 A6 A6 6 Æ C8 C8 C8 C8 C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ C8D C8H C8L C8P C8T C8X C8\ C8` C8d C8h C8l C8p C8t C8x C8| C8€ C8„ C8ˆ C8Œ C8� C8” C8˜ C8œ C8  C8¤ C8¨ C8¬ C8° C8´ C8¸ C8¼ C8À C8Ä C8È C8Ì C8Ð C8Ô C8Ø C8Ü C8à C8ä C8è C8ì C8ð C8ô C8ø C8ü C8€ C8„ C8ˆ C8Œ C8� C8” C8˜ C8œ A6  A6¤ A6¨ A6¬ C8° C8´ C8¸ C8¼ ò C8 C8 C8 C8 C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ C8D C8H C8L C8P C8T C8X C8\ C8` C8d C8h C8l C8p C8t C8x C8| C8€ C8„ C8ˆ C8Œ A6� A6” A6˜ A6œ A6  A6¤ A6¨ A6¬ C8° C8´ C8¸ C8¼ C8À C8Ä C8È C8Ì C8Ð C8Ô C8Ø C8Ü A6à A6ä A6è A6ì A6ð A6ô A6ø A6ü “AAù˜"A6 A6 A6 A: A6 A: 6 A6 A6 A6 A6 A6 AAï˜"A6AAÀ˜"A6 A6 6 6 ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA¦˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  ¹ A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A60 A64 A68 A6< A6@ A6D A6H A6L A6P A6T A6X A6\ A6` A6dAAߘ"A6 A: A6 A6 A: A6 A: 6h A6l A6p A:t A6x A:| A6€ A:„ A6ˆ A:Œ A6�AA¦˜!AAá˜" 6  ž  6 A6 A6 6”AA¦˜!AA¼˜" 6  ž  6 A6 A6 6˜AA¦˜!AA¼˜" 6  ž  6 A6 A6 6œ AA¦˜!AAë˜" 6 ž 6 A6 A6 6  € A6 A� 6 A6 A� 6 AA¦˜!AA–˜" 6  ž  6 A6 A6 6AA¦˜!AA—˜" 6  ž  6 A6 A6 6AA¦˜!AA˜˜" 6  ž  6 A6 A6 6 A6 A6 A6$ A6( A6, A60 š A6 A6 A: A6 C8 C8AA“˜"A6 A6 A6 A6 6AA“˜"A6 A6 A6 A6 6 Aÿ6 Aÿ6$ LAAâ˜"A: A6 A� 6 A6  ·"6  ž  6  ž  - ( (" Ak(A~q E"@A Aä 9AA÷˜"A: A6 A� 6 A6 A:  6  LAA÷˜"A: A6 A� 6 A6  ·"6  ž  6  ž  ¼AA¦˜!AAˆ ˜" 6  ž  6 A6 A6 6 A6 A: C8 C8 C8 C8 C8 C8 C8$ C€?8( C8, C80 C€¿84 ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAñ˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  q A6 A6 A6 A6 A6 A6 A6 AA¦˜!AAê˜" 6 ž 6 A6 A6 6 š A6 A6AA¦˜!AAå˜" 6  ž  6 A6 A6 6AA¦˜!AAî˜" 6  ž  6 A6 A6 6 AA¦˜!AAä˜" 6  ž  6 A6 A6 6AA¦˜!AA˜" 6  ž  6 A6 A6 6AAì˜"AAAÞA¤6 6 A6 A6 A6$AA¦˜!AAà ˜" 6  ž  6 A6 A6 6(AAá ˜"½ 6, AAä ˜"½ 60 ¾ A6 C8 C8 C8 C8 A6 C8 C8A Að ˜"AA-˜A,A-˜6 C8 C8 6 A6$ C8( C8, C80 C84 C88 © A6 A<6 A<6 Dð?9 A6 A6 A6 A:$ A:%AA¦˜!AA’˜" 6  ž  6 A6 A6 6(AA‘˜"A6 A6 A6 A6 6,AA¦˜!AA”˜" 6  ž  6 A6 A6 60 AA¦˜!AA•˜" 6 ž 6 A6 A6 64 ê A6AA¦˜!AA�˜" 6  ž  6 A6 A6 6AA‘˜"A6 A6 A6 A6 6AA¦˜!AA”˜" 6  ž  6 A6 A6 6 AA¦˜!AA•˜" 6 ž 6 A6 A6 6 ê A6AA¦˜!AAŽ˜" 6  ž  6 A6 A6 6AA‘˜"A6 A6 A6 A6 6AA¦˜!AA”˜" 6  ž  6 A6 A6 6 AA¦˜!AA•˜" 6 ž 6 A6 A6 6 Ÿ A6 A6 D9 A: A6 A� 6 D9 D9( D90 Dð?98 A6@ A6DAA‘˜"A6 A6 A6 A6 6HAA¦˜!AA”˜" 6  ž  6 A6 A6 6L AA¦˜!AA•˜" 6 ž 6 A6 A6 6P ‰ A6 Dáz®GáÚ?9 D9 D�Âõ(\�â?9 Dð?9 A6( Dð?90 Dð?98AA‘˜"A6 A6 A6 A6 6@AA¦˜!AA”˜" 6  ž  6 A6 A6 6D AA¦˜!AA•˜" 6 ž 6 A6 A6 6H ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAÁ ˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAÁ ˜"A: A6 A� 6 A6  ("6  ž  ("6  ž  ' (" ("G k ( (k LA A®˜"A: A: A� 6 A6  ·"6  ž  6  ž  ? AA¦˜!AA˜" 6 ž 6 A6 A6 6 Âà |~ }@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Ak(A²k.    -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% A€”�" (AFA  -A :È AÐ� �" (AFA  -A :É A°³ �" (AFA  )§A 6Ì AðŸ �" (A FA } ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! C 8Ð 8Ô 8Ø A€¢ �" (A FA } ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! C!C!C 8Ü 8à 8ä Aൠ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C " C C^8è AÀ· �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? " C C^8ì -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% A€„�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C " C C^8È A€Ý �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? " C C^8Ì Að� �" (AFA  (#Ò "( (Ð(AvGA (Ð!A!@ ( J@  (AvO@ A ( Atj* ( Atj+¶\  Aj!  A E@A Aç˜"A6 A6 A6 ( "AÿÿÿÿK@  At"A¦˜"6  6  6A!@ ( J@ ( Atj+¶! (Av M@ ( Atj 8 Aj!  6Ð ž (ìAj6ì A€’ �" (AFA  -A :Ô A�” �" (AFA  -A :Õ A Ø �" (AFA  -A :Ö AðÚ �" (A FA } ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! C 8Ø 8Ü 8à A€ë �" (AFA  )§A 6ä A°ç �" (AFA  -A :è -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% AÐŽ�" (A FA } ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! C ! A°³ �" (AFA  )§A ! -üE! A:ü *ì \ r *ð \r *ô \r! A  (øG !  AÐŽ‹  *È\A  *Ì\ A  *Ð\ A A   (äGA @ (Ü"A:E A:G A:H @ 8ì 8ð 8ô 8È 8Ì 8Ð A�Á �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8Ô Að �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8Ø AðÄ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8Ü AðÇ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C @ 8à @ 6ø 6ä AðÊ �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6è AàÌ �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6ì AàÐ �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6ð A€Õ �" (AFA  -A :ô AàÖ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8ø A Ø �" (AFA  -A :ü AðÚ �" (A FA } ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C ! C!C!C ! *à\A  *ä\ A  *è\ @ 8à 8ä 8è 8€ 8„ 8ˆ (Ü" 8\  8`  8d (ÜA:t A€Ý �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8Œ A€„�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C? 8� A°ß �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶CHB 8” Aðà �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6˜ A�â �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8œ A�ä �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8  AÀå �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C A 8¤ A°ç �" (AFA  -A :¨ AÐé �" (AFA  -A :© A€ë �" (AFA  )§A 6¬ A°ì �" (AFA  )§A 6° Aðí �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8´ A ð �" (AFA  -A :¸ AÐñ �" (AFA  -A :¹ A€ó C€?C€?C€?�!!!"8¼ 8À 8Ä 8È A°ô �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€@ 8Ì A�ö �" (AFA  -A :Ð Aðù �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C4D 8Ô -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% A€”�" (AFA  -A :Ì A°± �" (AFA  -A :Í A°³ �" (AFA  )§A ! -à  (ÜGA @ 6Ü 6Ð A:à Aൠ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C " C C^8Ô AÀ· �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? " C C^8Ø -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% AÐ¥ �" (AFA (AF A ~~ (AF@ )  (AF@B +" b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  °  B BÿÿÿÿƒBÿÿÿÿ 7Ð AЧ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶CÍÌÌ= " C C^8Ø -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% AÐ…�" (A FA } ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C C@!C@!C@ ! C C^8È C C^8Ì C C^8Ð Að€�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6Ô ‘ A°Í�" (AFA  -A :È -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% A€á �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6Ì A�å �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8Ð AÐæ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C A 8Ô AÐè �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C@@ 8Ø A€ê �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8Ü AÀî �" (AFA  -A :á AÐï �" (AFA  -A :â AÀÓ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8ä Aàò �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6è AA (è" AL" AN6ì AÀô �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8ð A°÷ �" (AFA (AF A  (AÐ÷ "6ô ž A ù �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6ø AÐú �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6ü AÀü �" (AFA  -A :€ A þ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C4B 8„ A€€ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C@Á 8ˆ Aà‚ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C@œE 8Œ A … �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶CÀÁ 8� A€‡ �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6” A�ì �" (AFA  -A !  -¤G@ :¤ @ A:¥ ( "@@ ("( J@ ( Atj("-@ -@ A: A: (,AGA (0AG A (4AG A (8AG A ( 8€ AÀÙ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶Cš™™> 8„ AÀÛ�" (AFA  -A :ˆ A�Þ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C B 8Œ A à�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C A 8� A�Ý�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A Aÿÿ? 6” -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% A€¨�" (AFA (AF A  (A� "6È ž Að¨�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6Ð (Ð6Ì B7Ø ¬ ‘ § -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% AÀ°�" (AFA (AF A || (AF@ )¹  (AF@ +  D D 9È AÀµ�" (AFA (AF A || (AF@ )¹  (AF@ +  D D 9Ð A€·�" (AFA (AF A || (AF@ )¹  (AF@ +  D D 9Ø A°¸�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6à A ¼�" (AFA  -A :ä A ¾�" (AFA  -A :å A€À�" (AFA  -A :æ A Á�" (AFA  -A :ç ¥ -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% A€”�" (AFA  -A :È A ��" (AFA  -A :É AÐŽ�" (A FA } ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C C€¿!C ! 8Ì 8Ð 8Ô A€ô�" (AFA  )§A 6Ø A°‘�" (AFA  -A :Ü AÀ“�" (AFA  -A :Ý AÀ•�" (AFA  -A :Þ AÀ–�" (AFA  -A :ß AЗCCC�!!!"8à 8ä 8è 8ì Að™�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6ð ‘ AÀ¡�" (AFA  -A :Ì ‘ Aàñ�" (AFA  )§A 6È A€ô�" (AFA  )§A 6Ì Að´�" (AFA  -A :Ð A�÷�" (AFA  -A :Ñ -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% Aàñ�" (AFA  )§A 6È A€ô�" (AFA  )§A 6Ì Að´�" (AFA  -A :Ð A�÷�" (AFA  -A :Ñ A���" (AFA  -A :Ø A�ƒ�" (AFA  -A :Ù -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% AÀê�" (AFA (AF A || (AF@ )¹  (AF@ +  D Dð? 9È AÐë�" (AFA  -A :Ð A€í�" (AFA  -A :Ñ A°ç�" (AFA  -A :Ò -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% A€Í�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6È A Ð�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8Ì A Ñ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8Ð AÀÓ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8Ô AÐ…�" (A FA } ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C C A!C A!C A ! 8Ø 8Ü 8à AðÖ�" (A FA } ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C ! ("( AJ} ( AM@ (+¶C C!C!C ! 8ä 8è 8ì AÐØ�" (AFA  -A :ð AЭ�" (AFA  -A :ñ A€Ü�" (AFA  -A :ò A�Ý�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A Aÿÿ? 6ô AÐÞ�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A Aÿÿ? 6ø Aàß�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6ü AðâCCC�!!!"8€ 8„ 8ˆ 8Œ A°ä�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8� -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% AУ�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6È A�¦�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6Ì Að§�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8Ð A�©�" (AFA  -A :Ô A°«�" (AFA  -A :Õ AЭ�" (AFA  -A :Ö A€¯�" (AFA  -A :× Að¯�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶CÍÌÌ= 8Ø A ±�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6Ü A°²�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶Co: 8à Að³�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8ä Aàµ�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A€€ 6è A€¸�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶CÍÌL> 8ì A º�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6ð Aà¿C€?C€?C€?�!!!"8ø 8ü 8€ 8„ A�Á�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8ˆ AðÂ�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6Œ ‘ AÐ…�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€> 8È -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% Aðà�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6  A�ä�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8¤ A°æ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8¨ Aàç�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8¬ A°ÙC€?C€?C€?�!!!"8È 8Ì 8Ð 8Ô A Ú�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8Ø AÐÛ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C? 8Ü AàÛ�" (AFA  -A :à AàÝ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8ü Aàß�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8€ AÀÀ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶CÍÌÌ= 8ô AÐÂ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8ø (A êÄ@ A�ì�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8œ Aðí�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6„ A°ð�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶CÍÌÌ= ! A°ò�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶CÍÌL> ! Aðó�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C? ! 8ˆ 8Œ 8� A õ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶CÍÌL? 8” A°÷�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶CÈB 8˜ (AðÇÄ@ Aàù�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C @ 8ä Aàú�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8è (A ÈÄ@ Aàü�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C @ 8ä A�ý�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8è AÀý�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C4B 8ì AÐþ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8ð  -d@ AÀÚ�" (AFA  -A :¨ Aàê�" (AFA  -A :% A°Í�" (AFA  -A :È AÐÎ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C–B 8Ì A€Ð�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶CÍÌL= 8Ð AðÐ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶CzE 8Ô AàÑ�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6Ø AÐ…�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8Ü A°Ô�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6à     Aðö�" (AFA  -A :˜ A ù�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6œ A�ÎA (œ" AL" A�ÎN6  A°û�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? " C ×#< C ×#<^8¤ AÐë�" (AFA  -A :¨ A þ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8¬ Aàÿ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8° A�� �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8´ A€ƒ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8¸ A°„ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8¼ Að… �" (AFA  -A :À A�ˆ �" (AFA ~ )B 7È A°‰ �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6Ð AÀ‹ �" (AFA  -A :Ô Aà� �" (AFA  -A :Õ Að� �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6Ø A€• �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6à AЙ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8ä AК C€?C€?C€?­!!"8è 8ì 8ð Að› �" (AFA (AF A  (#Ò "6ô ž Að� �" (AFA (AF A  (#Ò "6ø ž AðŸ �" (AFA (AF A  (#Ò "6ü ž AÀ¡ CCC€?­!!"8€ 8„ 8ˆ A°¢ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8Œ AУ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8� AФ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8” A€¦ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C´B 8˜ A�¨ �" (AFA  (A� "6œ ž A€€A A « �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A€ " AL" A€€N6  Að¬ �" (AFA  -A :¤ A°® �" (AFA  -A :¥ AЖC€?CC­!!"8¨ 8¬ 8° Aа �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C4B 8´ A�² �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8¸ Aг CCÍÌÁC­!!"8¼ 8À 8Ä A�µ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8È A°¶ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8Ì Aз �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8Ð A�¹ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8Ô AÀ¼ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8Ü A€¾ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8à AàÀ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8è Að �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8ì AÀÅ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8ô AÀÆ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C€? 8ø A€É �" (AFA  -A :€ AðÏ C€?C€?C€?�!!!"8� 8” 8˜ 8œ A Õ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8¨ AðÖ �" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C 8¬   A�‹�" (AFA  -A :œ A€¼�" (AFA } ("( AJ} ( E@ (+¶C ! ("( AJ} ( AM@ (+¶C C ! 8  8¤ A€Ž�" (AFA  -A :¨ A€��" (AFA  -A :© A€�C€?C€?C€?�!!!"8¬ 8° 8´ 8¸ A�‘�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C ×#< 8¼ AÀ �" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6À AГ�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6Ä Aà–�" (AFA  -A :È A�˜�" (AFA  -A :É AД�" (AFA  -A :Ê Aðš�" (AFA  -A :Ë A°œ�" (AFA (AF A  (AF@ )" §"A€€€€xAÿÿÿÿ BS ¬ Q  (AF@A +" b Aÿÿÿÿ DÀÿÿÿßAf A€€€€x DàÁe  ª  A A 6Ì AðÞ�" (AFA (AF A }| (AF@ )¹  (AF@ +  D ¶C? 8Ð   A°À�" (AFA  (Aàž "6¤ ž (¨"( @ (¸"( ( G@AA·˜"A6 A6 A6 A6  ( š!@ ( J@  Aœ Aj!  6¸ ž ( A:?AA¦˜!AA˜" 6  ž  6 A6 A6 6@AA¦˜!AAØ" 6  ž  6 A6 A6 6D A6H A6LAA¦˜!AA¤˜" 6  ž  6 A6 A6 6P AA¦˜!AAĘ" 6 ž 6 A6 A6 6T LAAì˜"A: A6 A� 6 A6  ·"6  ž  6  ž  LAAë˜"A: A6 A� 6 A6  ·"6  ž  6  ž  ®A Aê˜"A6 A6 AAAëA¤6 6AA¦˜!AAð˜" 6  ž  6 A6 A6 6AAí˜!AA̘"AàA¦˜"6  6 Aà6 A6  6A Aç˜"A6 A6 A6 AA¦˜"6  6 A6  6 6 AÄAî˜"A6 A6 C€?8 A: A: A: A: CÍÌÌ=8 A 6 Co:8 CÍÌL>8 C€?8 A€€6$ A6( C€?8, C€?80 C€?84 C€?88 A6< A6@ 6 ï} A� 6 A6 A6 A6 A6 A� 6A°*!A¬*!A¨*!A¤*!A *!Aœ*!A˜*! A”*! A�*! AŒ*! Aˆ*! A„*!A€*!Aü*!Aø*! Aô*8 8 8 8$ 8( 8, 80 84 88 8< 8@ 8D 8H 8L 8P 8TA Aä˜"A6 A6 A6 AA¦˜"6  6 A6 6XA Aç˜"A6 A6 A6 AA¦˜"6  6 A6 6\A Aä˜"A6 A6 A6 AA¦˜"6  6 A6 6` A6d A6h · A6 A� 6 A� 6 A� 6 AA¦˜!AA”˜" 6  ž  6 A6 A6 6AA¦˜!AA•˜" 6  ž  6 A6 A6 6 #66 #66 #66 A:$ LAA©˜"A: A6 A� 6 A6  ·"6  ž  6  ž  ô A� 6 A� 6 A� 6AA¦˜!AAú˜" 6  ž  6 A6 A6 6 AA¦˜!AA˜" 6  ž  6 A6 A6 6AA¦˜!AAߘ" 6  ž  6 A6 A6 6 A Aï˜"A� 6 A6 A6 6 LAAæ˜"A: A6 A� 6 A6  ·"6  ž  6  ž  ‚AA¦˜!AA�˜" 6  ž  6 A6 A6 6 B7 B€€€ 7 B7 B7 A6( B70 B78 B7@ B7H öA Aä˜"A6 A6 A6 A€€A¦˜"6  6 A€€6 6AA™˜"A Aâ˜"A6 A6 A6 ¯6 A6 6A Aä˜"A6 A6 A6 A€A¦˜"6  6 A€6 6AA™˜"A Aâ˜"A6 A6 A6 ¯6 A6 6 A6 A6 A6 A6 A6 A6$ A6(A Aä˜"A6 A6 A6 A€A¦˜"6  6 A€6 6,A Aߘ"A6 A6 A6 AÀA¦˜"6  6 AÀ6 60 A64 B78 A6@ A:D A:E A6H A:L A6P A6T A:X A:Y A6\A Aߘ"A6 A6 A6 AA¦˜"6  6 A6 6` A6d A6h A� 6l A6p A6t � A6AAì˜"AAAÞA¤6 6AA¦˜!AAÞ˜" 6  ž  6 A6 A6 6AA¦˜!AAâ˜" 6  ž  6 A6 A6 6 AA�˜"½ 6AAÒ ˜"½ 6AAÓ ˜"½ 6AA�˜"½ 6 A6 A6$ A6( A6, £A°Þ Da  ¡Db@Að† b AÐÞA€ß Dc  Dc"@A�ßA-; š! AtA�ßj"  A±#7² jAt"A˜"A�ß ü  ¥ A6 A6 A6AA¦˜!AAâ˜" 6  ž  6 A6 A6 6 AA�˜"½ 6AAÔ ˜"½ 6AAÔ ˜"½ 6 AA£˜"� 6 ¼ A� 6 A6 A6 A6 AA‘˜"A6 A6 A6 A6 6AA¦˜!AA”˜" 6  ž  6 A6 A6 6AA¦˜!AA•˜" 6  ž  6 A6 A6 6AA¦˜!AA•˜" 6  ž  6 A6 A6 6AA¦˜!AAݘ" 6  ž  6 A6 A6 6 AA¦˜!AAÞ˜" 6  ž  6 A6 A6 6$ A� 6( AA¦˜!AAߘ" 6 ž 6 A6 A6 6, Ê A6 A6 A6 A6 A6AA‘˜"A6 A6 A6 A6 6AA¦˜!AA”˜" 6  ž  6 A6 A6 6 AA¦˜!AA•˜" 6 ž 6 A6 A6 6 §AA‘˜"A6 A6 A6 A6 6AA¦˜!AA”˜" 6  ž  6 A6 A6 6 AA¦˜!AAÓ˜" 6 ž 6 A6 A6 6 � A6 A6 A� 6AA‘˜"A6 A6 A6 A6 6 AA¦˜!AA”˜" 6  ž  6 A6 A6 6 A6 A6 « A6 A6AA‘˜"A6 A6 A6 A6 6AA‘˜"A6 A6 A6 A6 6 A: AA¦˜!AA”˜" 6 ž 6 A6 A6 6 ± A6 A6 A� 6 A� 6 A� 6 A� 6 A� 6 A� 6 A� 6 AA‘˜"A6 A6 A6 A6 6$ AA¦˜!AA”˜" 6 ž 6 A6 A6 6( à A6 A6 A6 A6 AA‘˜"A6 A6 A6 A6 6AA¦˜!AA”˜" 6  ž  6 A6 A6 6 AA¦˜!AA•˜" 6 ž 6 A6 A6 6 â A6AA¦˜!AA£˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6AA¦˜!AA¥˜" 6  ž  6 A6 A6 6 AA‘˜"A6 A6 A6 A6 6AA¦˜!AA”˜" 6  ž  6 A6 A6 6 AA¦˜!AA•˜" 6 ž 6 A6 A6 6 ‘ A6 A6 A� 6 A� 6 A� 6 A� 6AA¦˜!AA¨˜" 6  ž  6 A6 A6 6AA‘˜"A6 A6 A6 A6 6AA¦˜!AA”˜" 6  ž  6 A6 A6 6 AA¦˜!AA•˜" 6 ž 6 A6 A6 6$ ‹ A6 A� 6 A� 6 A� 6 A: A� 6 A� 6 A� 6 A� 6 A� 6$ A� 6( A:, A:-AA‘˜"A6 A6 A6 A6 60AA¦˜!AA”˜" 6  ž  6 A6 A6 64 AA¦˜!AA•˜" 6 ž 6 A6 A6 68 ê A6AA¦˜!AA ˜" 6  ž  6 A6 A6 6AA‘˜"A6 A6 A6 A6 6AA¦˜!AA”˜" 6  ž  6 A6 A6 6 AA¦˜!AA•˜" 6 ž 6 A6 A6 6 Ê A6 A� 6 D9 D9 A� 6 Dð?9 A:( A:) A� 6, A� 60 A� 64 A� 68AA¦˜!AA�˜" 6  ž  6 A6 A6 6 ( B ˆ> ( )`"Bÿÿÿÿƒ> ( B ˆ> ( )p"Bÿÿÿÿƒ>$ ( B ˆ>( ( )x"Bÿÿÿÿƒ>, ( B ˆ>0 ( AG64 ( 68 (  (Œ( A 6< (  (�( A 6@ ( AG6D (P!@ A€H@ ( AjAtj  Atj*8 Aj!  A!@ AÀH@ ( A”jAtj (H Atj(6 Aj!  (ð! (ˆ!@ J@ ( Atj(!A A ( H ( j-A " (  (Ì FA   ( Atj(ANA A AG"Ar  -È"Ar   ( A   û AFA ! ( A lAÔj"Atj Ar  Aÿq6 *Ä! *À! *¼! *¸! *´! ( AjAtj *°8 ( AjAtj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj 8 *@ * !@ . .(¤Aj6¤  3F@ .A:  3  8( At" F(j("@Atj+!Q .(( Atj+!R .( (" Al"Atj+!V AjAt j+!X AjAt j+!Y 6(" AjAtj(!?  .((j(!/ j(!9@ 9 ?H@@ ;( 9Atj("0 /F G C( F( 0Atj("Atj(qE >(" 9Al"Atj+!U AjAt j+"W U¡"] ]¢ AjAt j+"N AjAt j+"P¡"^ ^¢  AjAt j+"L AjAt j+"M¡"O O¢ !K U!J P!H M!I KD#B’ ¡œÇ;f@ V J¡ ]¢ X H¡ ^¢  Y I¡ O¢  K£"KDð?f| N!H L!I W KDd| P ^ K¢ !H M O K¢ !I U ] K¢  J !J R J V¡"K K¢ H X¡"K K¢  I Y¡"K K¢ Ÿ Q¢ !O @G@ O 5( Atj+ !O .((" .($(" 0At"j(G@ j 6 0At" .((jDð9 .( (jD9  .((jA6  .((jA6  .(0(jA6 O 0At" .((j"+c@ O9  .( (j J a¡"K K¢ H S¡"K K¢  I T¡"K K¢ Ÿ `¢"K9  .((j O K 9 0At" .((j 6  .((j 7( 9Atj(6 .(( 0Al"Atj U9 .(( AjAtj P9 .(( AjAtj M9 .(( AjAtj W9 .(( AjAtj N9 .(( AjAtj L9 .( ( 0Al"Atj J9 .( ( AjAtj H9 .( ( AjAtj I9  .(0(j("1AH@ . .(4"1Aj64 .(,( 1Atj 06  .(0(j 16 .(,"0( 1"Atj(!=@@ AL  .((" =Atj+"I  0( AkAu"Atj("1Atj+"Hb@ H Id  .( (" =Atj+"I 1At j+"Hb@ H Id  1 =J E .(,( Atj 16 .(0( 1Atj 6 !  .(,( Atj =6 .(0( =Atj 6 9Aj!9  .(4@ .(0( .(,"(("AtjA6 . .(4Ak"64 AJ@ .(,( ( Atj("6 .(0( AtjA6A! .(4!= .(,"@((!9@@ AtAj" =N Aj" =H .(("0 @("1 Atj("?Atj+"I 0 At 1j("/Atj+"Hb@ H Id  .( ("1 ?Atj+"I /At 1j+"Hb@ H Id  / ?J A @ !  .((" @( Atj("1Atj+"I 9At j+"Hb@ H Id  .( (" 1Atj+"I 9At j+"Hb@ H Id  1 9H E .(,( Atj 16 .(0( 1Atj 6 !  .(,( Atj 96 .(0( 9Atj 6  < " Z [ \ .�!J .+H!I .+P!Q .+X!R <(!3 .($! .((!A!@ 3H@ FA  ( Atj(G A .(( Atj+Dða E@ H < Z [ \ .�"H Jaq H Jcr@ H!J .+H!I .+P!Q .+X!R ! Aj!  . I9ˆ . Q9� . R9˜  ! .- !?  F@ .A6° . .+p .+x .+€ œ . .+ˆ .+� .+˜ œ A($"AF@ .A6° . .+ˆ .+� .+˜ œ .(!0@ AG 0( Atj(AGA @ At" .((j("1AG@ . <( ("  <(("j("3 1j"Atj+  3 1Aj AjAt j( 3koj"Atj+ Dà?¢ <((" At"j+ At" j+ Dà?¢  <(("j+ j+ Dà?¢ œ . .( (" Al"Atj+ AjAt j+ AjAt j+ œ 0( Atj(!  . .+p .+x .+€ œ AF@ .A6° . .+ˆ .+� .+˜ œ .(!@ AG ( Atj(AGA @ . .( (" Al"Atj+ AjAt j+ AjAt j+ œ ( Atj(!  . .+p .+x .+€ œ .A6° .(!/ .+ˆ"J .+�"H .+˜"I .("0( "3"Al"Atj+ 0(" AjAtj+ AjAt j+ AjAt j+ AjAt j+ AjAt j+ .(@’ .(@+!P .(@+!M J"Q!S H"U!V I"R!T J .(@+"NaA J™Dñh㈵øä>¢"LDñh㈵øä>c|Dñh㈵øä> L J N¡™d  H MaA H™Dñh㈵øä>¢"LDñh㈵øä>c|Dñh㈵øä> L H M¡™d A  I PaA I™Dñh㈵øä>¢"LDñh㈵øä>c|Dñh㈵øä> L I P¡™d A @ /( Atj("AG@ ! ""! . J H I 3œ@ AG@ 0("1 Al"3Atj+!K 3AjAt 1j+!N 3AjAt 1j+!L 3AjAt 1j+"P I¡ K J¡¢ 3AjAt 1j+"O J¡ 3AjAt 1j+"M I¡¢¡Dc@ K!X N!Y M!W O!K L!N P!M W!P X!O Y!L A!1 M I¡ Q J¡¢ K J¡ R I¡¢¡Df@ H Ua J Qaq I RaqA T I¡ K J¡¢ S J¡ M I¡¢¡Dd @ ! K!Q N!U M!R .  S V T • S"J!Q V"H!U T"I!R ""! .(°"3AJ .(¨("1 3AkAlj+!W 3Al"3AkAt 1j+!K 3AkAt 1j+!M J WaA J™Dñh㈵øä>¢"NDñh㈵øä>c|Dñh㈵øä> N J W¡™d  H KaA H™Dñh㈵øä>¢"NDñh㈵øä>c|Dñh㈵øä> N H K¡™d A  I MaA I™Dñh㈵øä>¢"NDñh㈵øä>c|Dñh㈵øä> N I M¡™d A A E@ . J H I œ A!1 1A P I¡ S J¡¢ O J¡ T I¡¢¡De @ H Va J Saq I TaqA R I¡ O J¡¢ Q J¡ P I¡¢¡Dc @ ! O!S L!V P!T .  Q U R • "! Q"J!S U"H!V R"I!T ! .(°"3AJ .(¨("1 3AkAlj+!P 3Al"3AkAt 1j+!M 3AkAt 1j+!N J PaA J™Dñh㈵øä>¢"LDñh㈵øä>c|Dñh㈵øä> L J P¡™d  H MaA H™Dñh㈵øä>¢"LDñh㈵øä>c|Dñh㈵øä> L H M¡™d A  I NaA I™Dñh㈵øä>¢"LDñh㈵øä>c|Dñh㈵øä> L I N¡™d A A E@ . J H I œ /( Atj(!  .(¨( .(°AkAlj+ .+pbA .(¨( .(°AlAkAtj+ .+xb A .(¨( .(°AlAkAtj+ .+€b @ . .+p .+x .+€ œ A! .(°Ak! .(¨!1 .(¬!3@ H@A!@ AH@ 1(" Al jAtj"+!H   Al jAt"j+9  1(j H9 Aj!  3(" Atj"(!   At"j(6  3(j 6 Aj! Ak!  A-,@@ A*0»!H .(°"AL .A6¸ .(´! . .(¸"Aj6¸ ( AtjA6 .A Ak" HD HDd"H H¢– .(´! . .(¸"Aj6¸ ( Atj 6 .(¸!1 .(¨!0 .(¬!A!@  1H@ 0(" Al"3Atj At" .(´(j("Alj+9 0( 3AjAtj 0( Al"AjAtj+9 0( 3AjAtj 0( AjAtj+9  ("j At j(6 Aj!  . 16° A ? _D�íµ ÷ư>dA GAGA ? < . Z [ \A _�ANA !1 D .(¤64D!JA! D(!> A(("Aq!3 AqAG! AqAG!@ .(¨!?@  .(°H@ ?(" Al"AjAtj+"L¶! AjAt j+"I¶! At j+"H¶! B("7( "Aj"/AÕªÕ*K@ /A l" 7("0K@ 0At" I@ ! A¦˜" 7( 0ü 7 6 7 6 7 6 7 ž 7( A lj" 8 8 8 7 /6 AJ@ J H ?(" Al"AkAtj+¡"H H¢ I AkAt j+¡"H H¢  L AkAt j+¡"H H¢ Ÿ !J .(¬( Atj(!0 3@ 0 >(N! B("/( "Aj!  /(AvK@ / AA™ /( Atj 6 / 6  @r@ >(( >(( 0Atj(Atj(! B("/( "Aj!  /(AvK@ / AA™ /( Atj" 6 / At Ÿ / 6 @@ >(( >(( 0Atj(Atj(4!b B( "( "Aj!  (AvK@  AA™ ( Atj b7  6 Aj!  B J¶8 B 1: B .(¤6  2Aj!2   3AÔ F@@  H@  ("( O@ (( Atj(!1 ( Atj"*! *! *! * ! *! *! *! *! * ! *$! *(! *,! *0! *4! *8! *A!A@@ 2 AL @ 7( 1 AAtj("3Atj("AG@ 0( Atj("-´ 6-ÈA @ *œ _ *¨ `q *  _q *¬ `q *¤ _q *° `qE  >Aj!> =AF@ 8A€€€€xr!8  8 3Aj =Attr!8 =Aj!= AAj!A  6 86è @Aj @ =AJ!@ CAj C >AJ!C Aj!  (0"( l! (( Atj" ) @¬|7  (0"(lAj! (( Atj" ) C¬|7 3A©F@ ("E@  (  í 3A¦F@ At" (((j(!6  (,(j(!> (0( Atj(!0 (";E@ ( "7E@ (!: -!1 (!2 -!4 *$! * ! *! ;(t!3 ;(Ø!? ;(ð!@  H@ 3( Atj("5(Ì!@ 5(  5(Ì GA A  (A  5(œANA!A ;-iE A ;(AF  ;(x!/@ 5(¤"( J@ ( Atj)"bBY b /4 SA  b§" /( O@ /( Atj("E@ (¬EA @A  Aj!  A A A E@ 7(( jA: 7(( AtjA6  6 6(Aj6 5*ÐC^A 5*ØC^ @ 5    ?( j-Ö ! ?( j : E@ 7(( jA: 7(( AtjA6 6 6(Aj6   ?( jA: A!9 :A 2AJA 5(¬@ ; 5Ø !A!@  2H@ 1 5-ÈA  5*°! 5*´! 5*¸! 5*¼! 5*À! 5*Ä! A!8#Ë( Atj((!@@ 8AH@ @ 8At"/Atj*" C`”"‹ @ /AjAtj*" C`”"‹’ @ /AjAtj*"  C`”"‹’ @ /AjAtj*"‹’C·Ñ¸”  ’ ’ ’^@A  8Aj!8  A A @ 9A tr!9 6 6($ j6$ 6 6((Aj6( Aj!  7(( Atj 96 5(¬AF@ 7(( jA:  1 5-ÈA @ 5*°! 5*´! 5*¸! 5*¼! 5*À! 5*Ä! A!#°#¯ 5-¨A 5-© A #s( H#s( j-A (!/@ AH@ / At"Atj*" C`”"‹ / AjAtj*" C`”"‹’ / AjAtj*"  C`”"‹’ / AjAtj*"‹’C·Ñ¸”  ’ ’ ’^@A  Aj!  A E@ 7(( jA: 6 6(Aj6  4 5-˜A A 5-¨A 5-© A #s( H#s( j-A A#U!/ 5*°! 5*´! 5*¸! 5*¼! 5*À! 5*Ä! AHA  /(Ì( N @ /     > 0ë  /(Ì( Atj( /(ÈF /- A   /(Ð"( O@ ( A lj"* [ * [q * [qA   /(Ô"( O@ ( A lj"* [ * [q * [qA @ /(Ø( j-! > >(Aj6 @ > >(Aj6  /     > 0ë! /(Ì( Atj /(È6  /(Ð"( O@ ( A lj" 8 8 8  /(Ô"( O@ ( A lj" 8 8 8 /(Ø( j :  @ 7(( jA: 6 6(,Aj6,  5(Ì ;-hA E@ 7(( jA:  7(( jA: 5( "/@ 5(Ì"~ 5B !b 6A!CA 5( " ;-hA E A ;-iE  5(œAH@ (((  A!8@ 8 ((( H@ CAj C 5(œAHA 8 5(¤"( H ( 8Atj)BYA !C 8Aj!8  C 6(j6 6 6) b|7 6 6)A 5(°"AL A /(,"  ( JA A ( AkAtj((( /((( G  /("  (LA E@ /($  /(," ( AkAtj("-  ( ((  /($ An­ b~|7 Aj!   3AÎF@ ("!> (("( A  ( HAtj(!6 >(!1@  H@A!=A! >(";( "3AlAj"7Atj*! ;(" 7AjAtj*! 7AjAt j*! 7AjAt j*! 7AjAt j*! 7AjAt j*! >("@( 7AjAtj(!2 7AjAt j*! @( 7A jAtj(!/ >(AlAj!? 7A jAt j*" 7A jAt j*"” 7AjAt j*"’" ”! 6(!0 6(!:@ = >(H@@ 2 @(" ? ? =A lj"AjAtj(A lj"A jAtj(qE  ;(" AjAtj*" AjAt j*’^  ’ ]r At j*" At j*"“! AjAt j*" “!  “ AjAt j*" “”  ”“C]E }  “" “"”  “" “"”’  ”  ”’•" C]@  ”  ”’  C€?^@  “" ”  “" ”’    ”’“" ”   ”’“" ”’ " ]E "Aj!@   0( AkAtj*]A @ 0(" At"4j  Ak"At"j*8 4 :("j  j(6  At" 0(j 8 :(j =6 =Aj!=  A!C /AJ@ ;( 7A jAtj*" ”! 6(!0 6( !:A!=@ = >(H@@ 3 =F 2 @( =AlAj"AjAtj(qE  ;(" AjAtj*" AjAt j*’^  ’ ]r AjAt j*^  At j*“" ”  AjAt j*“" ”’" ]@ CAj C / CJ"CAk!@   0( AkAtj*]A @ 0(" At"4j  Ak"At"j*8 4 :("j  j(6  At" 0(j 8 :(j =6 / CF} 0( CAkAtj*  ! =Aj!=  6(!/A!C€? •!  ”!A!=@  =J@ ? @( ? 6(( =Atj(A lj"AjAtj(A lj! ;("4 Atj* “! AjAt 4j* “! At 4j* “! AjAt 4j* “! A!9@ 9J  ” /(": 9At"4Atj*" “ 4AjAt :j*"”  ” 4AjAt :j*"“ 4AjAt :j*"”“  ”"“C¬Å'·`  ” “ ”  ” “ ”“ “C¬Å'·`A A 9Aj!9  A @("4 AjAtj(AG!2 AjAt 4j(AG!: Œ ;("4 Atj* At 4j*“" ” Œ" AjAt 4j* AjAt 4j*“"”’ ”  ”’•" C]  ”" ”"’" _q@ 2@ /( At"AtjC8 /( AjAtjC8 /( AjAtj C€?  ’‘•"”8 /( AjAtj  ”8 Aj!  Œ ”“" ” Œ ”“" ”’!  ” ”’" _ C€?^q@ :  ;(" AjAtj*” AjAt j*”“C`A @ /( At"AtjC8 /( AjAtjC8 /( AjAtj ŒC€? ”  ”’‘•"”8 /( AjAtj  ”8 Aj!  C€?] C`q  _q@ ;(" AjAtj*Œ! AjAt j*Œ! /( At"AtjC8 /( AjAtjC8 /( AjAtj 8 /( AjAtj 8 Aj!  C]  _q} 2E  !  “‘"” ”"“C€? •"”!  ” ”"’ ”!  ” ’ ”! Œ ” ’ ”  _ C€?^q} :E  !   “‘"” ”"“C€? •"”!  ” ”"’ ”!  ” ’ ”! Œ ” ’ ” 2}  “‘"” ”“C€? •"”!  ” ”’ ” ;("4 AjAtj*Œ! AjAt 4j*Œ ! :}   “‘"” ”’C€? •"”! Œ ” ”’ ” ;("4 AjAtj*! AjAt 4j* ! @("4 AjAtj(AG!: ? AjAt 4j(A lj!0A!2A!9 AjAt 4j(  ;("4 0AjAtj*Œ”  0AjAt 4j*Œ”“C`A @ ;("4 0AjAtj*Œ! 0AjAt 4j*Œ!A!2 :  ;("4 AjAtj*”  AjAt 4j*”“C_A @ ;("4 AjAtj*! AjAt 4j*!A!9  ;("4 Atj* “”"  At 4j* “”" “!  AjAt 4j* “”"  AjAt 4j* “”" “!  “ ”  “ ”’!  “ ”  “ ”’"C]  F"}C?  “ ”  “ ”’  ”  ”’• "C]qA C] q C]q @C€?  “" ”  “" ”’‘•! /( At"Atj  ”"  ”"”’8 /( AjAtj   ”"”’8 /( AjAtj 8 /( AjAtj Œ8 Aj!  C] C€?^q@C€?  “" ”  “" ”’‘•! /( At"Atj  ”"  ”"”’8 /( AjAtj   ”"”’8 /( AjAtj 8 /( AjAtj Œ8 Aj!  C€!  C] C€?^rrE@   ”’“" ”   ”’“" ”’! C€! C]E@   ”’“" ”   ”’“" ”’! C€! C]E@  ”’“" ”  ”’“" ”’!  `  `q@ ;(" AjAtj*Œ! /( At"4Atj  ”" AjAt j*Œ"Œ”’8 /( 4AjAtj  ”’8 /( 4AjAtj 8 /( 4AjAtj 8  `@ 2  /( At"Atj  ”" Œ”’8 /( AjAtj  ”’8 /( AjAtj 8 /( AjAtj 8 9  /( At"Atj  ”" Œ"Œ”’8 /( AjAtj  Œ"”’8 /( AjAtj 8 /( AjAtj 8 Aj! =Aj!=  !C€? ;( 7A jAtj*•! A!@  CH@ ;(": 6( ( Atj(AlAj"4Atj* “!  4AjAt :j*“!  4AjAt :j*“!  ” 4AjAt :j* “" ”’"  4AjAt :j*’" ”"^} ”“" ” ”“" ”’! ” ”’"C]  ”  ”^A } C€? ‘"•"”"Œ!  ” “" ”!  ”"”  “‘!C€? •!  ”  ”“C^}  ”  ”“ ”!  ”  ”’ ”  ”  ”’ ”Œ! Œ ”  ”’ ”Œ ! ” ”’" ” “!  ” “  C€? ;(* •" ”“"C€?  ” ”“" ”’‘"•"”"Œ!  ” “" ”!   ”"” ! /( At"4Atj  C?”’8 /( 4AjAtj  C?”’8 /( 4AjAtj 8 /( 4AjAtj 8 Aj! Aj!  6 C6 6 6$ 6 6( /  ;(" 7AjAtj* 7AjAt j*A 6Ç " H@ !C! 6(!2@  H@ /("4 At"Atj*!  AjAt 4j*" AjAt 4j*" 6*“” AjAt 4j*" 6*“”“]@A!9@  9J@ 2( 9At"4Atj /( 4Atj*8 4AjAt" 2(j /(j*8 4AjAt" 2(j /(j*8 4AjAt" 2(j /(j*8 9Aj!9  !@ H@ /(": At"4Atj*! 4AjAt :j*!@ 4AjAt :j*" ” 4AjAt :j*"”“"‹C¬Å'7_} ” ”’C^  ’C?”! ’C?”  “” “”“ •" ”’!  ”’ !C€?  “" ” “" ”’‘•! 2( 9At"4Atj 8 2( 4AjAtj 8 2( 4AjAtj  ”8 2( 4AjAtj  ”8 9Aj!9 Aj!  6*! 6*! 2 9  Œ A 6Ç 9H@ 6 8 6 8 6*“” 6*“”“! Aj!  6*" “C\A 6*" “C\ @ 6C8 6C8 1( 3At"Atj 6*8 1( AjAtj 6*8 3Aj!   3A¨F@ ! ("7E@ @  H@ 7((!> 7("@Aj!? 7(˜!/  7(Ü( l!0 7(Œ" 7(Aj  l"k" J Ak"1jAk!2 7(”!4 7(�"( AjAtj(!3 ( Atj(!:@ 3 :J@ 7 7(è("( 4( :Atj("A l"Atj* (" AjAtj* AjAt j* AjAt j* AjAt j* AjAt j* AjAt j* AjAt j* AjAt j* > ? 1 2 @ï! /(" 0 7(è(( Atj(j"Atj  At j(j6 :Aj!:  Aj!   3A§F@ ("8E@ ("2E@ @  H@A!CA!A 2(ˆ( 8(Ü( 8(ì( Atj(";Atj(Atj(!5 - "@ 8(è 8(ü( Atj( !7 @ 8(ä 8(€( Atj( !6 At" 8(ð(j(!?  8(ô(j(!/ 5(!@ 5(":(AvAn"0 (AvAIA 8*< 8*@ 8*D 8*H 8*L 8*P 8*T 8*X 8*\ 8*` 8*d 8*h 8*l 8*p 8*t 8*x 5* 5* 5* 5* 5* 5* 5* 5*$ 5*( 5*, 5*0 5*4 5*8 5*< 5*@ 5*Dã!-!,!+!*!)!(!'!&!%!$!#!"!!! !"! (! '! &! $! #! "! ! ! 6 5-t}   ”  ”“”  ”  ”“”“   ”  ”“”’"C^}C€¿C€?C C] C 8 8*ü! 6(, ;F 6(0 8(ÈFA @ 7 6*(8 6-4E  8 6 5 ; ? / 7î  0Al" 6((AvJ@A Aç˜"4A6 4A6 4A6 AÿÿÿÿK@ 4 At"3A¦˜"6 4 6 4 36 6 46 6 4ž ,! +! *! 6(!>#(!@ 0 AJ@  :("1 AAl"At"4j*" ”  AjAt"3 1j*"”’  1 AjAt"j*" ”’ ’! 4 >(j  ” ”’  ”’ ’8 3 >(j  ”  ”’  ”’ ’8  >(j 8A C Œ" `!C  –! AAj!A  6 8( 6 C:4 6 ;6, 6 8(È60 7 8 CE 8 6 5 ; ? / 7î @ 8(ð( Atj(A E@ 8(à( ;Atj 7* 8 Aj!   3A‰F@ !: ("GE@ ("DE@ !4#»( Atj(!< (( Atj(!C@ -@ G(t!8 - !7 -A ( !5 D(Œ!0 D(�!6@ 4 :J@ 0(" :Atj(" :AjAt j(";G@ C C(Aj6#(!#(!#(!#¾!#¾!#¾! !@ ;H@ 8( 6( Atj(Atj("*° –! *´ –! *¸ –! *¼ —! *À —! *Ä —! Aj!   ’C?”!  ’C?”!  ’C?”! #(!C! !@ ;H@ 8( 6( Atj(Atj("*Ä! *°" *¼"’C?” “!   “" ” *À" *´" “" ”’  *¸"“" ”’‘C?”" ” ’C?” “" ”’  ’C?” “" ”’‘"“–!   ’—! Aj!  A!A!A D(P!1 <(,!> <(0!@ <(8!3 D(L! D(l!?AA 7 D(€ D(h " ANk!2A!@  J@ 1 A l"Atj*! 1 AjAtj*! 1 AjAtj*!  “!@ 1 AjAtj*"  “" C]} Œ ŒC C] " ”"]  “!   “"C]} Œ ŒC C] " ”’" ^  “!   “"C]} Œ ŒC C] " ”’" ^ ‹ ‹—" ” ‹ ‹—" ”’ ‹ ‹—" ”’" _!9 1 AjAtj*"CÀ\@  “" 1 AjAtj*” “" 1 AjAtj*”’ “" 1 AjAtj*”’! ”  ”’  ”’"  ”“"C]}C  ‘ ”  1 AjAtj*”“"  ‘ ’C·Ñ8”C·Ñ8’"’^  Œ “]r  9A   “_   “`q!9 #(! 1 A jAtj*"C`@ 1 A jAtj*! 1 A jAtj*"”"C€?]} C ×#< C ×#<^! C€?  ”“" ”" ”” C€?[}C€? • C@[}C€? ”• C[}C€? Œ‰ ”"C C^C CG€?”!  ?H 9q 2AJq 2HA 3 2AkAtj* #¥”] A @ ”"C€?]} C ×#< C ×#<^! C€?  ”“" ”" ”” C€?[}C€? • C@[}C€?  ”• C[}C€?  Œ‰ ”"C C^C Crù?”! 2HA  3 2AkAtj*^ @ 2H "Aj!  2Ak !@ AJ  3 AkAtj*^A @ 3 Atj 3 Ak"Atj*8  3 Atj 8 > AAt"j A€r  96  @j 8 AAj!A Aj!  2F 2AJq} 3 2AkAtj*#¾ ! <($!F <((!= <(4!/A!A!A!@  AH@ > At"j(!1@ @j*" ]@ "Aj! / Atj 16  "Aj!@ AJ  = AkAtj*^A @ F At"2j F Ak"At"3j(6 2 =j 3 =j*8  F At"j 16 =j 8 Aj!  A!@ H@ F jAt"j / Atj(6  =jC€¿8 Aj!  <(!A!@@  N @ / At"2j("Aÿq"@ ?N > EH 1 2j* 9 Atj*]A @ !  B @A l"2Atj*! B 2AjAtj*! B 2AjAtj*! A€q@  “ “C ^ ]" ”  “ “C ^ ]" ”’  “  “C  ]  ^" ”’!  “ “C ^ ]" ”  “ “C ^ ]" ”’  “  “C  ]  ^" ”’" B 2AjAtj*^  B 2AjAtj*" CÀ\ B 2AjAtj*! B 2AjAtj*! B 2AjAtj*! B 2AjAtj*!A CÀ[ A “" ” “" ”’  “" ”’" Œ]  ” ”’  ”’  ”“"C]}C  ‘ ”  ”“ ^E EA  EAj"E >L@ F EAkAt"j @6 9j 8  E >AjF@ B = F 9 >Œ ! B 2A jAtj*! B 2A jAtj*!  B 2A jAtj*”"C€?]} C ×#< C ×#<^! C€?  ”“" ”" ”” C€?[}C€? • C@[}C€?  ”• C[}C€?  Œ‰ ”"C C^C " 9 Atj*"]A  [ = @Atj( = F Atj(Atj(JA F At"j @6 9j 8A! 9*!A!@ >H@@ 9 At"2j*" ^  [ = 2 Fj(Atj( = F Atj(Atj(HA ! ! Aj!  Aj!  ? D(LH <(< Atj <(@ Atj (! <(D!2 <(H Atj(!@ <(LH@@ / 2 Atj(Atj(Aÿq" ?N B A l"Atj*! B AjAtj*  “ “C ^ ]" ”  B AjAtj*" "“  “C  ^  ]" ”’  B AjAtj*"“  “C  ]  ]" ”’] B AjAtj*" CÀ\ B AjAtj*! B AjAtj*! B AjAtj*! B AjAtj*!A CÀ[ A “" ” “" ”’  “" ”’" Œ]  ” ”’  ”’  ”“"C]}C  ‘ ”  ”“ ^E EA Aj! Aj!  D 3 E  < C‹ Aj!  :Aj!:   G(t!3 G(ð! D(ˆ! - ! -! (!2 - !@ 4 :J@@ 3( :Atj("1(  1(Ì GA  ( :Atj(ANA A : 2( H 2( :j-A E G D 1  G 1û AFA A < CŠ :Aj!:   …|@ AH@ Al j" ("( O@ ( Atj+" Al j" ("( O@ ( Atj+"c@A  d@A Aj!   k   k ¾AA¦˜!AAÀ˜" 6  ž  6 A6 A6 6AA¦˜!AAÀ˜" 6  ž  6 A6 A6 6AA¦™"A˜Í(6 !AA¤˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6 AA¦˜!AA¤˜" 6 ž 6 A6 A6 6 �  ("( O@ ( Atj+  ("( O@ ( Atj+c@A  ("( O@ ( Atj+  ("( O@ ( Atj+d@A  ("( O@ ( Atj+  ("( O@ ( Atj+c@A  ("( O@  ("( O@ ( Atj+ ( Atj+d@A  k – A6 A6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6 6A Aä˜"A6 A6 A6 AA¦˜"6  6 A6 6 A Aç˜"A6 A6 A6 AA¦˜"6  6 A6 6 A Aç˜"A6 A6 A6 AA¦˜"6 6 A6 6 ’@@@@ Ak(Aõ k  !A!@ ("( J@ ( O@ ( Atj("@  ¿ Aj!   6 ž à0 |}@@@@@@@@@@@@@@@ Ak(Aõ k   (A + +¢ + ! -@ #¢D€f@£! A6  9A   "(( "E@  (6  +9  -:  (6  ("6  žA  A!@  H@  AkF  Aq ( ( !  ("( O@ ( Atj("@ A   À! ! Aj!     ¡     (" AGA @ A6 D9A  +" DðAc Dfq «AA ¡Da DðAfq Aj¸! A6  9A   (AG@ A6 A:A  -E! A6  :A   (AG@ A� ÓA   (ÕÓA   (AG@ (AF (A� ÄA E@ A6 A� 6 A� ž A  ("Ak(Av! ("AF AFr@@  J  Ak(AvOA  Atj/ "A FA A L A Nq A @ Aj!  AF AFr@@  J Ak" Ak(AvOA  Atj/ "A FA A L A Nq A @ Ak!  A  Ak(AvF E@   È! (AF ( ÄA E@ A6  6  ž A   !A! (AG@ (AF (A� ÄA E@ A6 A� 6 A� ž A  (""Ak( j!@  I@ /"A€I Aj A€I Aj A€øqA€°F Aj Iq@ /A€øqA€¸F@ Aj! Aj!  Aj ! Aj!  ! (!A! ( "Ak( j!@  I@ /"A€I Aj A€I Aj A€øqA€°F Aj Iq@ /A€øqA€¸F@ Aj! Aj!  Aj ! Aj!  "E  Nr@ (AF ( ÄA E@ A6  6  ž A  A! ( ""Ak( j! @  I@ /" A€I Aj A€I Aj A€øqA€°F Aj Iq@ /A€øqA€¸F@ Aj! Aj!  Aj ! Aj!  A¦˜!  Ak(Av Ñ Ak(!A Aߘ" 6  ž  6  6A! "Ak( j! @  I@ /" A€I Aj A€I Aj A€øqA€°F Aj Iq@ /A€øqA€¸F@ Aj! Aj!  Aj ! Aj!  A¦˜!  Ak(Av Ñ Ak(!A Aߘ" 6  ž  6  6A Aߘ"A6 A6 A6 AüÿÿÿK@  k!  A¦˜"6  6  6 A (AF!A!@ H@ o" (O@ ( j-! j" (O@ ( j : Aj!  A (AG!A!@ H@ (O@ ( j-! j" (O@ ( j : Aj!  (" Ak(Ò! (AF ( ÄA E@ A6  6  ž A   ("AF@|A! ("Ak(Av!@ H Ak(AvOA  Atj/ "A FA A L A Nq A @ Aj!   "Aj H Ak(AvOA  Atj/ A+FA  Ak(AvOA  Atj/ A-F A " Aj"   HÈÎ!DðÿDð  H  Ak(AvOA  Atj/ A-FA "  A�‡Ä Dø A€–Ä  Aj H Ak(AvOA  Atj/ A0FA  Aj" Ak(AvOA  Atj/ A rAøFA @ Aj! Ak(Av! Dð?!@@  N   Ak(AvOA  Atj/ " "A0k A9L A0Nq  A r"AæL AáNq@ A×k  A "AN@ | · D°?¢"¢  D0@¢ ·  ! Aj! E A.FqE A! Aj!  E@AA¦˜!AAÀ˜" 6  ž  6 A6 A6    H  Ak(AvOA  Atj/ A rAðFA @A!A! Aj" H  Ak(AvOA  Atj/ A+FA  Ak(AvOA  Atj/ A-F A @  Ak(AvOA  Atj/ A-F! Aj! !@ A �HA  H  Ak(AvOA  Atj/ " A9L A0NqA @  Ak(AvOA  Atj/ A0k A lj! Aj!   J| D@A k  ·ó¢ ! AA¦˜!AAÀ˜" 6  ž  6 A6 A6 ( 9  "( AJ@ | ( E@ (+š ( E@ (+  A!@ H Ak(AvOA  Atj/ "A9L A0NqA @ Aj! Aj!  H Ak(AvOA  Atj/ A.FA @ Aj!@ H Ak(AvOA  Atj/ "A9L A0NqA @ Aj! Aj!  D E     "J Ak(AvOA  Atj/ AåFA  Ak(AvOA  Atj/ AÅF A  Aj" H Ak(AvOA  Atj/ A+FA Ak(AvOA  Atj/ A-F A @ Aj! !@ H Ak(AvOA  Atj/ "A9L A0NqA @ Aj!   J  È¥ ¶»! A6  9 AF@ +! A6  9 @ AF@ (²»! A6  9 AF@Dð?D -! A6  9 A6 D9A   +! A6  9 A   ! ("@ AF AFr@ (! (AF ( ÄA E@ A6  6  ž  AF@ (" Ak(Av ("Av! AvAÿq! AvAÿq! Aÿq! A� !@ Ak(Av" J@  MA�  Atj/"A€I@#- Atj(  AA˜" ; ! @ Â!A! A€™Ä@ @A! A ŽÂ! A! A ŽÄ@ @ A ŽÂ! A! A! AÀžÄ A ªÂ Aà›Ä A ªÂ AÀšÄ A ªÂ A šÄ A ªÂ Aà–Ä AªÏ"Ak(AvAIAàÜ Â Â AÀ”Ä AªÏ"Ak(AvAIAàÜ Â Â A�„Ä AªÏ"Ak(AvAIAàÜ Â Â A°„Ä AªÏ"Ak(AvAIAàÜ Â Â A€œÄA A€�Ä A AàžÄ  E@} ³CC•" ³CC•" ³CC•"——"  – –"“"C\}  [}  “ •»D@ö¶  [}  “ •C@’  “ •C€@’ C CpB”"�"C€?’  “"C?`  C€¿’ C¿_   ¨" AH@ Aèj! AAô˜A Aô˜"Ak(AvE@  6}  ’C?”"CÈB”"�"C€?’  “"C?`  C€¿’ C¿_   ¨! Ak(AvAM@  6} C[}C C€?  ’C€¿’‹“• CÈB”"�"C€?’  “"C?`  C€¿’ C¿_   ¨! Ak(AvAM@  6 A€œÄ Ak(AvE@ ( A€�Ä Ak(AvAM@ ( Ak(AvAM@ ( A «Â A Ž    ! Aj!   (A « ! (AF ( ÄA E@ A6  6  ž  AF@AÐÚAàÜ -! (AF ( ÄA E@ A6  6  ž  AF@ +«A ª! (AF ( ÄA E@ A6  6  ž  (AF (A� ÄA E@ A6 A� 6 A� ž A   +¶»! (Aq A ( " AOÔ AÔ ! (Aq@ Õ! (Aq@ A �AÅ"AN A È ! AN AÿÿÿÿÈA� ! Ak(AvAk!@ AJ Ak" Ak(AvOA  Atj/ "A9L A0NqA @ A ÈAà�  AÿÿÿÿÈÂ! Ak!   Â! (AF ( ÄA E@ A6  6  ž A   (@ A6 D9A  C A (³û!} +¶ ”" �"“"C?`@ C€?’  C€¿’ C¿_   •»! A6  9A    * * * *Ÿ - -A   ›  š  N A6 A6 AA¦˜!AAÞ˜" 6 ž 6 A6 A6 6 · Ak("A  F Aª Fr@ (  ¥Ò@ (  ¥Ò"E@ (  ( €! (  ™  "(" - E@ A: A AÚ˜"A6 A6 A6A AÛ˜"AÔ6  6 Aà”Á6 6 6 Aà”Á6 Ö (A  Aû F@ ÛAF (  ¥Ò (  ¥Ò"E@ ((A A  Œ@@@@@@@@@ Ak(Aõ k !A!@ ("( J@ ( O@ ( Atj("@  Ã! Aj!    AA E AFr AA AG AA E AF AFrr AFr AFr AA E AFr AFr AFr AFr AFr AA  AA AG ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA� ˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  ¼  Ak("A  F@A Aª F@ (!A Ak(AvE  A�ÒÍ!A!@ ( "Ak J@  O@ ( Atj("E@ A Ak(AvE  ( M@ ( Atj("E@ A (  Ak(A~q4"AAƘ"A6 A6 A6 AAA»A¤6 6  • A "E AAȘ"A6 (3"6 A ç Aj!  ( " Ak"M@ ( Atj("E@ Ak("Av (  A~q1"AAÀ˜"A6 A6 A6 AAA»A¤6 6  • A A "AA« ˜"A6 6 A  Aû F@ "(  ¥Ò@ (  ¥Ò"E@ (  A (   "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av sA Ò ( A!A E  "Ak(A~q"AOA¨ˆ�¡!A÷”¯¯x!AÏŒ¢Ž! jAk!@ M@  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  (A÷”¯¯xljA wA±óÝñyl!  ( A÷”¯¯xljA wA±óÝñyl! Aj!   Aw Awj A wj Awjj A±ÏÙ²j !  jAk!@ M@  (A½ÜÊ•|ljAwA¯ÖÓ¾l! Aj!   j!@ I@  -A±ÏÙ²ljA wA±óÝñyl! Aj!   AvsA÷”¯¯xl"A v sA½ÜÊ•|l"Av s Ò"E@ (A "AHA (("( O@ ( Atj("E@ (AG A Aø ˜"A6 A6 6 (  ™  ¸AA¦˜!AAƘ" 6  ž  6 A6 A6 6AA¦˜!AA°˜" 6  ž  6 A6 A6 6 AA¦˜!AAŽ ˜" 6 ž 6 A6 A6 6 LAA‚ ˜"A: A6 A� 6 A6  ·"6  ž  6  ž  Ø}AAè˜"AAAéA¤6 A6 6 A6 A6 A: A: A:AàÖ*!AÜÖ*!AØÖ*!AÔÖ*!AÐÖ*!AÌÖ*!AÈÖ*! AÄÖ*! AÀÖ*8 8 8 8 8 8$ 8( 8, 80 A64 A68 A6< A6@ Aú6D CÀA8H A6LAA¦˜!AAë˜" 6  ž  6 A6 A6 6PAAì˜"AAAíA¤6 A6 6TA Aߘ"AAAýAÈ„ ¤6 AAA.AЄ ¤6 Að„ 6 6XAA¦˜!AAï˜" 6  ž  6 A6 A6 6\AA¦˜!AAð˜" 6  ž  6 A6 A6 6`AAñ˜"½ 6dAAó˜"½ 6h A:l  A6 A6 A6 A6 D9 D9 A6 AA¦˜!AA¤˜" 6 ž 6 A6 A6 6$ 9AA�˜"A: A6 A� 6 A6  6  ž  G A6 A6 AAí˜"A€A¦˜"6 6 A€6 A6 6 ÿ} A:A°*!A¬*!A¨*!A¤*!A *!Aœ*!A˜*!A”*!A�*! AŒ*! Aˆ*! A„*! A€*! Aü*!Aø*! Aô*8 8 8 8 8 8 8 8 8$ 8( 8, 80 84 88 8< 8@ A� 6D ÿ} A6A°*!A¬*!A¨*!A¤*!A *!Aœ*!A˜*!A”*!A�*! AŒ*! Aˆ*! A„*! A€*! Aü*!Aø*! Aô*8 8 8 8 8 8 8 8 8$ 8( 8, 80 84 88 8< 8@ A� 6D ¬ ( "A AL!  k"A AJ"At"A¦˜!AA”˜" 6  ž  6  6  6 (! ( Atj!A! At!@ I@ j j("6  ž Aj!   @ (" ("G@AA H (" ("G@AA I A KAA¦˜ AA¦˜6 A6AA¦˜ AÐA¦˜6 A6 A6 A6 � }AˆAט"Õ "(! (º!  6  6 *(! *$! * ! *! *! *! *! * !  *8  8  8  8  8  8  8  8$  8( (,"@AAƘ"A6AAŘ"A6 A� 6 6 (! (»! 6 6  6,  ž *l! *h! *d! *`! *\! *X! *T! *P! *L! *H! *D! *@! *8( C€?8, CÍÌÌ=80 CÍÌL=84AA¦˜!AA˜" 6  ž  6 A6 A6 68 A:< A:= A:> A:? A0A°˜"Ù 6@ ² C8 C8 C8 C8 C8 C8 C€?8 C€?8 C€?8 C€?8$AA¦˜!AA±˜" 6  ž  6 A6 A6 6( A:, A:- GAA¦˜!AA·˜" 6  ž  6 A6 A6 6 A6 õAA†˜"AAA‡A¤6 A6 6AA‰˜"AAAŠA¤6 A6 6AAŒ˜"AAA�A¤6 A6 6AA�˜"AAA�A¤6 A6 6 AA¦˜!AA’˜" 6  ž  6 A6 A6 6 A6AA¦˜!AA“˜" 6  ž  6 A6 A6 6AA”˜"½ 6AA¦˜!AA–˜" 6  ž  6 A6 A6 6 A6$AA¦˜!AA—˜" 6  ž  6 A6 A6 6(AA˜˜"Ž 6,AA™˜"½ 60AA™˜"½ 64 B78  Ö  × ¸}AAü˜"A6 A6 C8 C8 C8 A: A; A: A: (6 (6 *! * ! *8 8 8 -: /; -: -: ¢}AAý˜"â (6 (6 (6Aÿÿÿÿ ( "( " AÿÿÿÿF A AH"k"A AJ"Aÿÿÿ?K@ AAØ"A  AMAt"A¦˜"6  6  6  6 (! ( Atj!A!@  H@  At"j"  j"*! *8  8 Aj!  6 ž (ª"6 ž ó A6AA¦˜!AA.˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6AA¦˜!AAë˜" 6  ž  6 A6 A6 6 AA̘"AàA¦˜"6 6 Aà6 A6 6 m A� 6 C8 C8 C€?8 A6 A: AA̘"AàA¦˜"6 6 Aà6 A6 6 Š A6 A6 A6AAØ"AÀA¦˜"6  6 AÀ6 A6 6 AA¦˜!AAÒ˜" 6 ž 6 A6 A6 6 GAA¦˜!AA�˜" 6  ž  6 A6 A6 6 A6 GAA¦˜!AA�˜" 6  ž  6 A6 A6 6 A6 GAA¦˜!AAŠ˜" 6  ž  6 A6 A6 6 A6 GAA¦˜!AA‡˜" 6  ž  6 A6 A6 6 A6 GAA¦˜!AAé˜" 6  ž  6 A6 A6 6 A6 ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA­˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  ­ ( "AH@ A!A!@  H@  ( O@ Ak" ( O@ ( Atj( ( Atj(G@  ( O@  ( Atj(º Aj! Aj!  (  AA™ 6 A  K  I ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA˜˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  LAAö˜"A: A6 A� 6 A6  ·"6  ž  6  ž  LAA­˜"A: A6 A� 6 A6  ·"6  ž  6  ž  †  ( "AH@ AL@A!@  H@  ( O@ ( Atj("@ ! Ak!@ AN  ( O@ ( Atj("E@    (AJA @  ( O@ ( Atj("@ Aj œ Ak!  Aj œ Aj!   Ô! Ô!A! @  LE@A! @  LE@ Atj"   H! " j"   H" ! !@  H  Hq@  ( O@ ( Atj("E@    "( O@ ( Atj(" E@ (AH@  ( O@ ( Atj("E@   œ Aj!  ( O@ ( Atj("E@   œ Aj! Aj!  @  H@  ( O@ ( Atj("@   œ Aj! Aj!  @  H@  ( O@ ( Atj("@   œ Aj! Aj!  Atj!  ! ! ! At!  A!@  H@  ( O@ ( Atj("@  œ Aj!   ( (IA ( (K € A6 A6AA¦˜!AAý˜" 6  ž  6 A6 A6 6AA¦˜!AAò˜" 6  ž  6 A6 A6 6 AA¦˜!AA˜" 6  ž  6 A6 A6 6 AA¦˜!AA˜" 6 ž 6 A6 A6 6 ‚A - A ( "E   Ak(A…FA @  Ak(A…FA E@   A " (AFA @ ( ( ü«  à ( !A(A¦˜"A6 A� 6 A� 6 A� 6 A� 6 A� 6 A� 6 A� 6 A6$ A6  6  ž  6  ž « ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAª˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  § "( "Aj" (AvK@ AA™ ( Atj" 6  At  Ÿ  6 ( Ak!@  H@ Ak" ( O@ ( Atj("@  œ Ak!   œ ˜  ("( O@ ( Atj(  ("( O@ ( Atj(G@  ("( O@  ("( O@ AA ( Atj( ( Atj(H A  J  H uAA¦˜!AAý˜" 6  ž  6 A6 A6 6 AA̘"AàA¦˜"6 6 Aà6 A6 6 ª A6 A6 A6 A€6 A: A: A6 A6 A6 B7 B7( D90A Aߘ"A6 A6 A6 AÀA¦˜"6  6 AÀ6 68 A6< ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA¨˜"A: A6 A� 6 A6  ("6  ž  ("6  ž  LAA¿˜"A: A6 A� 6 A6  ·"6  ž  6  ž  k A6 A� 6 A6 A6 B7 B7 AA¦˜!AA†˜" 6 ž 6 A6 A6 6( ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA²˜"A: A6 A� 6 A6  ("6  ž  ("6  ž  H A Aÿ˜"AAAA¤6 AAA€A¤6AA�˜"½ 6 6 ‹ A6 A6 A: A6 B7 A6 A: A¼×-: A½×-: B7 AA¸˜"B€€‰ú7 B€€’ô7 B€€€€7 6( B70 ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( A A®˜"A: A: A� 6 A6  ("6  ž  ("6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( A A®˜"A: A: A� 6 A6  ("6  ž  ("6  ž  ÜA(A¾˜"A6 A6 A: A: B7 B7 A6 6AA˜"AA«˜"A6 A6 þ6AAÁ˜"B7 B7  6 6AAý˜"A6 A6 A6 A6 Aš6 A6 A: A6 A6 �} -@A A·˜"A6 A6 A6 A�Ö"6 � (( (k"A AJAH@A°×"AA «ÂA€×" (( (k"A AJA «Â!A A·˜"A6 A6 A6 6 � (" ((j*! Aj6AAµ˜"A: C8 A� 6 A6 A: 8 OAAµ˜"A: C8 A� 6 A6  ·"6  ž  6  ž  LAA¼˜"A: A6 A� 6 A6  ·"6  ž  6  ž  @AA¼˜"A: A6 A� 6 A6 A:  6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA¼˜"A: A6 A� 6 A6  ("6  ž  ("6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA¼˜"A: A6 A� 6 A6  ("6  ž  ("6  ž  LAA¯˜"A: B7 A� 6 A6  ·"6  ž  6  ž  9AA¯˜"A: B7 A� 6 A6 A:  7  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA¯˜"A: B7 A� 6 A6  ("6  ž  ( "6  ž  D A6AA.˜"A6 A6 A6 A6 Aš6 C8 •o~}|@@@@@@@@@ Ak(A¢k @ AG@A�°À A «Â!A A·˜"A6 A6 A6  6  ((E@A A·˜"A6 A6 A6 A ±À6  ( 6«"-E@   E@A A·˜"A6 A6 A6 A°²À6  (("E@A A·˜"A6 A6 A6 AÀ³À6  ("%E@A A·˜"A6 A6 A6 AÀŽÀ6  @ (AF@ (  (" ( A %( "H@AÀ´À A «ÂAà®À (AF@ (  (" ( A A «Â!  %( ""¬ ¬~" (Av¬U@AÀ´À ­ÂA�˜À (AvA «Â!  ( !@ ! "H@ %( !Atj(! @@ ("&("E ("#E ("$E  Aj" Ak Ap" #("( I@ ( Atj(  A ! Ap AkA Aj A}K " #("( I@ ( Atj(  A !  $( O" @ $( Atj(!#  $( O" @ $( Atj(" !H ! #Jq@A #AH A (Av"¬ #¬B†"B|W   §"M@ ( Atj4! §Aj" (AvO@ ( Atj4! & 7( & 70A E  &)0! &)(!A AH A (Av"¬ ¬B†"B|W   §"M@ ( Atj4! §Aj" (AvO@ ( Atj4! & 7( & 70A E  &)0" Q &)(" Qq@ (AvE@ ( >  & ! ¾ E  &) ! &)! &)! & # ¾ E  &) ! &)! &)! &  ¾ E  &) }"" ~ &) }" ~| &) }" ~|" BR@  }!  }" !  } ~  } ~|  } ~|!AB }  BS"B }  BS"  T"BR Bÿÿÿÿÿÿÿÿÿ €VA AB }  BS"B }  BS"  T"PAB }  BS"BR Bÿÿÿÿÿÿÿÿÿ €VA B }  BS"B }  BS"T@ ! B }  BS" V@ ! A PAB }  BS"BR Bÿÿÿÿÿÿÿÿÿ €VA A E   ~!  ~!  ~!  BQ~B }   |}" ~  BQ~B }   |}" ~|  BQ~B }   |}" ~| ~"P~B !B!@ BZ@ B†! Bˆ!  @    €|Bˆ" ~T  " ~! &("( E  ( "AL@ ~ ~|! ~  ~|!B  ~}! Ak" (j-!  6 ~  | !  |   } !  }  ! (AvE@ ( >   !H~ ! #L@ !Ak  !AJ!# B #¬B† #AH ! #J~B #¬B† #AH !AJ~ !Ak¬B† (AvE@ (A6 (AvAM@ (A6A  "BS  (Av"¬"Y B| Y  §"M@ ( Atj(! (AvE@ ( 6 §Aj" (AvO@ ( Atj(! (AvAM@ ( 6A  A  (AvAM@ ( >A @ ( A   !l¿ !Aj!! A°µÀ !A «Â!  «  A A·˜"A6 A6 A6  6 Û  Û  @ AG@A€ªÀ A «Â!A A·˜"A6 A6 A6  6  ((E@A A·˜"A6 A6 A6 A€«À6  E@A A·˜"A6 A6 A6 A€¬À6  (("E@A A·˜"A6 A6 A6 A ŠÀ6  ("%E@A A·˜"A6 A6 A6 A€­À6  @ (AF@ (  (" ( A %( "H@A€®À A «ÂAà®À (AF@ (  (" ( A A «Â!  %4 ¬~" (Av¬U@A€®À ­ÂA�˜À (AvA «Â!  ( ×"-E@   ( ! @ %( J@ %( Atj(!$B!C!:C!?@@@ ("!("E@A�Å $ AAÐÊA�Å Â" Ak(A~q7#"  ("E@A�Å $ AAÐÊA�Å Â" Ak(A~q7#"  ("#E@A�Å $ AAÐÊA�Å Â" Ak(A~q7#"   $Aj" $Ak Ap" ("( I@ ( Atj(  A !" $Ap $AkA $Aj $A}K " ("( I@ ( Atj(  A ! " #( O"  @ #( "Atj(!$  #( O"  @ #( Atj(" H  $Jq@A $AH A (Av"¬ $¬B†"B|W  !(!"  §"M@ ( Atj(²!9 "Ak(AvE@ " 98 !(! §Aj" (AvO@ ( Atj(²!9 Ak(AvAM@  98A E  !("Ak(AvE@ *!A !("Ak(AvAM@ *!BA AH A (Av"¬ ¬B†"B|W  !(!"  §"M@ ( Atj(²!9 "Ak(AvE@ " 98 !(! §Aj" (AvO@ ( Atj(²!9 Ak(AvAM@  98A E  !("Ak(AvE@ *!= !("Ak(AvAM@ *"@ B[ = A[q@ = =\ =»"IDÀÿÿÿßAdr IDàÁcrA€€€€xA I Ib Aÿÿÿÿ IDÀÿÿÿßAf A€€€€x IDàÁe  Iª ! (AvE@ ( 6 @ @\ @»"IDÀÿÿÿßAdr IDàÁcrA€€€€xA I Ib Aÿÿÿÿ IDÀÿÿÿßAf A€€€€x IDàÁe  Iª !  !  ½ E  !( "Ak(AvE@ *!9 !( "Ak(AvAM@ *!< !( "Ak(AvAM@ *!; ! $ ½ E  !( "Ak(AvE@ *!F !( "Ak(AvAM@ *!G !( "Ak(AvAM@ *!H !  ½ E  !( "Ak(AvE@ * F“"C C” !( "Ak(AvAM@ * G“"D D”’ !( "Ak(AvAM@ * H“"E E”’">C^@ C 9 F“"9” D < G“"<”’ E ; H“";”’ >•!: 9 C :”“"9 9” < D :”“"9 9”’ ; E :”“"9 9”’ >•‘!? = A“"; :” A’!> @ B“"9 :” B’!< !(""( E  "( "AL@ ; ?”!; 9 ?”!9 Ak" "(j-! " 6 } < ;’!: > 9“ < ;“!: > 9’ C?’Ž"9 9\ 9»"IDÀÿÿÿßAdr IDàÁcrA€€€€xA I Ib Aÿÿÿÿ IDÀÿÿÿßAf A€€€€x IDàÁe  Iª ! (AvE@ ( 6 :C?’Ž"9 9\ 9»"IDÀÿÿÿßAdr IDàÁcrA€€€€xA I Ib Aÿÿÿÿ IDÀÿÿÿßAf A€€€€x IDàÁe  Iª !   J@ AH  ¬B†!  $J~ $AH  $¬B†  L~ AJ~ Ak¬B† (AvE@ (A6 (AvAM@ (A6A    !  (Av"¬"Y  B| Y   §"M@ ( Atj(! (AvE@ ( 6 §Aj" (AvO@ ( Atj(!  A$ Ak( A  (AvAM@ ( 6A @ ( A   l Ø Aj! A ¯À A «Â!  «  A A·˜"A6 A6 A6  6 Û  Û   !@ E@A A·˜"A6 A6 A6 A�¥À6  (("%E@A A·˜"A6 A6 A6 A ¦À6  (("#E@A A·˜"A6 A6 A6 A §À6  (("$E@A A·˜"A6 A6 A6 A ¨À6  $4 ¬~" (Av¬U@A ©À ­ÂA�˜À (AvA «Â!A A·˜"A6 A6 A6  6 Û  ( ×"-E@  A Aã˜"A6 A6 A6 AÿÿÿÿK@  At"A¦˜"6  6  6A Aã˜" A6 A6 A6 A¦˜"6 6 6  (AvJ@A ·$ A «ÂAÀ¶$ (AvA «Â"$ AAÐÊ Â" Ak(A~q7#"  ( A A Ø $( !A!(@  (J@@ $( (Atj("AF@ (Ak l!"  (l!A!@ H@ "j" (AvO@ ( Atj(! (Av M@ ( Atj 6 Aj!  ( A   Ø  (! (Av"@ A Atü B! !@ AG@ ( % #   Á@A!,@  ,J@ (Av"  ,M@ (Av ,M@ ,At" (j(  (j(j! ,M@ ( ,Atj 6 ,Aj!,  B|! Ap AkA Aj A}K " %("( I ( Atj(A "Ap AkA Aj A}K " F@A!  P@ (Ak l!A!@ H@ j" (AvO@ ( Atj(! (Av M@ ( Atj 6 Aj!  A!@ H@ (Av" O@ ( Atj4 §! M@ ( Atj 6 Aj!  ( A   (l Ø (Aj!(  «  Û  @ "(" (A  (A  ( A  (AGA E@A A·˜"A6 A6 A6 AÀ À6  @ AG@AÀ¡À A «Â!A A·˜"A6 A6 A6  ( 6«"-E@  ("E@A A·˜"A6 A6 A6 AТÀ6  (" E@A A·˜"A6 A6 A6 Aà‚À6  ( "#¬ ¬~" (Av¬U@AÀ£À ­ÂA�˜À (AvA «Â!A A·˜"A6 A6 A6  A ("E A ("E A (""E A ("E A ( "E AA¬˜"A6 A6 A6 A6 A6 A6  6  "6  6  6 "( !A Aã˜""A6 "A6 "A6 Al"AÿÿÿÿK@ " At"A¦˜"6 " 6 " 6  "6A Aߘ"A6 A6 A6 AüÿÿÿK@  A¦˜"6  6  6  6  !AAô˜A Aô˜!A Aã˜"*A6 *A6 *A6 *AA¦˜"6 * 6 *A6@ ! #H@ ( !Atj(!) @@ (!$B!B! B! B!B!B! @ )AF  ) ("&("( I@ ( )Atj(  A ¹ !4!3"2! 4!" 3!A A­˜"'A6 'A6 'A: 'A: ' )6 ' )6 'A: @@ '- A '(AF  $ '("Aj" Ak Ap" &("( I@ ( Atj(  A !% '("Ap AkA Aj A}K " &("( I@ ( Atj(  A  )Aj" )Ak Ap" &("( I@ ( Atj(  A !% )Ap )AkA )Aj )A}K " &("( I@ ( Atj(  A ¹ !8!7"6!  %¹ !4!3"2¬ ¬"}! 3¬ ¬"}" 8¬ "¬"}"Â!"! 4¬ }" 7¬ }"Â!"! B…B|"P­ B…|!  "|" T­  ||!  "|" T­  ||! ¬ }"Â!"!  Â!"! B…B|"P­ B…|!  "|" T­  ||!  "|" T­  ||!  Â!"!  Â!"! B…B|"P­ B…|!  "|" T­  ||!  "|" T­  ||! $E @ '("AF '-E@ Ap AkA Aj A}K " &("( I ( Atj(A "Ap AkA Aj A}K " '(F@ 'A6 'A:  AG@ ' 6  'A: '("Aj" Ak Ap" &("( I ( Atj(A "AFA Aj" Ak Ap "AFA '(F @ 'A6 'A:  ' 6  '("Aj" Ak Ap" &("( I ( Atj(A "AFA Aj" Ak Ap "AFA '(F @ 'A6 'A:  ' 6  „ „  „„„P "BS~ B…B|"P­ B…|!   ! !  "BS~ B…B|" P­ B…|!  |" V­  ||! "BS~ B…B|"P­ B…|!  |" V­  ||"Að×)"QAø×) Tq  Sr@ BS~ B…B|"P­ B…|   B‡" B#† Bˆ„"Ã! ! B…B|  BS! BS~ B…B|" P­ B…|   Ã! ! B…B| BS! BS~ B…B|" P­ B…|  Ã! "B…B|  BS! Ak(AvE@  > Ak(AvAM@  > Ak(AvAM@  >  Ak(AvE@ A6 Ak(AvAM@ A6 Ak(AvAM@ A6  Ak(AvE@ A6 Ak(AvAM@ A6 Ak(AvAM@ A6 (! Ak(AvE@ (! Ak(AvAM@ Ak(AvAM@ A ("k AH¬A ("k AH¬A k  AH¬||"P@ (! Ak(AvE@  6 Ak(AvAM@ A6 Ak(AvAM@ A6 Ak(AvE@ 4 4~ §! Ak(AvE@  6 Ak(AvAM@ 4 4~ §! Ak(AvAM@  6 Ak(AvE@ Ak(AvAM@ Ak(AvAM@ (A ("k AHkA ("k AHk"A k (AN! Ak(AvAM@  6 ( "AN  (( HA   ("( O@ ( j-A @ Ak(AvE@ A (k! Ak(AvE@  6 Ak(AvAM@ A (k! Ak(AvAM@  6 Ak(AvAM@ A (k! Ak(AvAM@  6  ( Aj6 (! Ak(AvE@ (AN Ak(AvAM@ ( (j! Ak(AvAM@ ( (j Ak(AvAM@ (AH Ak(AvAM@ A ("k AH Ak(AvAM@ (A ("k AHk ! Ak(AvAM@ (AH Ak(AvAM@ A ("k AH Ak(AvAM@ (A ("k AHk ! A  (FA A E  (Fq @ ("! A (J @ (" kk!  (F (HA @ ("  kj! (F  (HA  ("  kj A  (J  ("  kk  ! ! *(AvE@ *( 6 *(AvAM@ *( 6 ( *A   !l » !Aj!!  «   6 Û   "( ×"-E@  @  (AvJ@A ·$ A «ÂAÀ¶$ (AvA «Â"$ AAÐÊ Â" Ak(A~q7#"  A Aã˜""A6 "A6 "A6 AÿÿÿÿK@ " At"A¦˜"6 " 6 " 6 ( "A A Ø E@AðŸÀ$ AAÐÊAðŸÀÂ" Ak(A~q7#"  !@ H@ (  k  Ø j!  «     ( ×"-E@   @ E@A A·˜"A6 A6 A6 A°›À6  ( ("#E@A A·˜"A6 A6 A6 A°œÀ6  ( ("E@A A·˜"A6 A6 A6 A �À6  ( ("%E@A A·˜"A6 A6 A6 A žÀ6  %4 ¬~"PA (Av¬ S @A ŸÀ ­ÂA�˜À (AvA «Â!A A·˜"A6 A6 A6  6 Û  A Aã˜" A6 A6 A6 AÿÿÿÿK@ At"A¦˜"6 6 6A Aã˜"A6 A6 A6  A¦˜"6  6  6 ( A A Ø %( !"A!@  "H@  %( Atj( #    ÁE@ Ak l!A!$@  $J@  $j" (AvO@ ( Atj(! (Av $M@ ( $Atj 6 $Aj!$  ( A   l Ø Aj!  «  Û   "( ×"-E@  E@«  !#@A  H   oA @ A «A •À A «ÂAð÷?Â!A A·˜"A6 A6 A6 6   m!! (("/E@A A·˜"A6 A6 A6 AÐü?6  (("0E@A A·˜"A6 A6 A6 Að•À6  @  #(AvJ@A�—À A «ÂA�˜À #(AvA «Â!  A Aã˜"-A6 -A6 -A6 AÿÿÿÿK@ - At"A¦˜"6 - 6 - 6A Aã˜"A6 A6 A6  A¦˜"6  6  6A Aã˜".A6 .A6 .A6 . A¦˜"6 . 6 . 6AAô˜AAô˜!1AA ˜AA ˜!5AA ˜AA ˜!AA ˜AA ˜!' /(4 B|! ( A #A ØA!@  !H@  l!*@ !" (("@  ( H ( Atj(A  " /("( H@ " ( I@ ( "Atj(  A  A "AF@ "Ak l!A!@ H@ j" #(AvO@ #( Atj(! .(Av M@ .( Atj 6 Aj!  ( .A # * Ø  A!+ !A! B!@@ AF B|" U@A A·˜"A6 A6 A6 AÀ˜À6    /("( I@ ( Atj(  A "%AG@ % /("( I@ ( %Atj(  A " 0( I 0( Atj(A ! %Aj" %Ak Ap" /("( I@ ( Atj(  A " 0( I 0( Atj(A " "K@ ! +AH %Ap %AkA %Aj %A}K "$ /("%( I@ %( $Atj(  A "% 0( I 0( %Atj(A "% K % "Iq@ 5Ak(Av +M@ 5 +Atj 6 + Ak(AvO@  +Atj 6 + 'Ak(AvO@ ' +Atj %6 +Aj"+AF   Aj" Ak Ap" /("( I ( Atj(A "AFA Aj" Ak Ap  Ap AkA Aj A}K " /("( I ( Atj(A "Ap AkA Aj A}K " F AFq@A! Ap AkA Aj A}K " /("( I ( Atj(A "Ap AkA Aj A}K !  A!( +AJ@ +Ak" ( "( O@ ( Atj(")E@  1Ak(AvO@ 1 Atj(!&  1Ak(AvO@ + 1 Atj(j! 1Ak(Av M@ 1 Atj 6 & +j" )( J@A° # "A «ÂAÀ™À AkA «ÂA�Á )( A «ÂA€šÀ A «Â!  A!@  +H@  &j" )( O@ )( j-E@ 5Ak(Av M@ 5 Atj5 ¬~!  Ak(AvO@  Atj5 ¬~!  'Ak(AvO@ " S@ ! #(Av¬  ' Atj5 ¬~" S~   ¬|S@A A·˜"A6 A6 A6 A°šÀ6 §! §! §!$ (AJ!%A!@ H@ j" #(AvO@ $j" #(AvO@ #(" Atj( At j(j j" #(AvO@ #( Atj(k!, -(Av" %@ O@ , -( Atj(j!, M@ -( Atj ,6 Aj!  (Aj!( Aj!  (@ (¬!A!@ H@ -(Av" O@ -( Atj4 §! M@ -( Atj 6 Aj!  ( -A # * Ø "Ak l!A!@ H@ j" #(AvO@ #( Atj(! .(Av M@ .( Atj 6 Aj!  ( .A # * Ø "Aj!  «  A A·˜"A6 A6 A6 6 Û  Û  A$ Ak( á @@@@@@@@ Ak(A¢k  œ"-E@A A·˜"A6 A6 A6 A�ˆÀ6 Û  @ ("AH@A�ŒÀ A «ÂA�ŽÀÂ!  ((" (A "E@A A·˜"A6 A6 A6 AÀŽÀ6 Û  ( " H@A�ŒÀ A «ÂAÀŒÀ A «ÂAÐ�ÀÂ!  ((""(  AAA™ A6 A!AAù˜"A6 A:  © E@A A·˜"A6 A6 A6 A��À6 Û  @  H@  E ("@A€ -k!@ ( ( I (AJA @  (Ak6 (" (" (O@  ( j- (Atr6  ("Aÿq! Av l!  K" @  j6   k k6  A ! ( "Aj" (K@  AA™ ( j :  6 Aj!  A6 ( À  A A·˜"A6 A6 A6 6 Û  @@ - -AtrA‚I A… "-E@ •  ( ((j(� "-E  ( † "-E  )§ "E@A A·˜"A6 A6 A6 A ‰À6  (("E@A A·˜"A6 A6 A6 A ŠÀ6  ("E@A A·˜"A6 A6 A6 A�‹À6   (( K@A�ŒÀ A ªÂAÀŒÀ (( A «ÂAðÿ?Â!A A·˜"A6 A6 A6 6 Û  ((""(  AAA™ A6 A!AAù˜"A6 A:  © E@A A·˜"A6 A6 A6 A��À6  @  K@  E ("@A€ -k!@ ( ( I (AJA @  (Ak6 (" (" (O@  ( j- (Atr6  ("Aÿq! Av l!  K" @  j6   k k6  A ! ( "Aj" (K@  AA™ ( j :  6 Aj!  A6 ( Ö  A A·˜"A6 A6 A6 A�ˆÀ6 Û  Û  ( Ö (!  - -Atr! ( º "-E@   (((("E@ (! ("AL ANq@  6 A tAk6  (Ak6 C@ (²•8  (Am6 A‚I@ –"-E@A A·˜"A6 A6 A6 A �À6 Û  -"AK@A ‚À A ªÂ!A A·˜"A6 A6 A6 6 Û  AG6 (" (A "E@A A·˜"A6 A6 A6 Aà‚À6 Û  ( ! ("(  AAA™ A6 AAù˜"A6 A:  © E@A A·˜"A6 A6 A6 AàƒÀ6 Û  @  H@ ("@A€ -k!@ ( ( I (AJA @  (Ak6 (" ("(O@  ( j- (Atr6  ("Aÿq! Av l!  I" @   j6   k k6  A ! ( "Aj" (K@  AA™ ( j :  6 Aj!  A6 A6 « "-E@  ¬‚   ( Ö ( Ö @ - -AtrA‚I@ –"-E@A A·˜"A6 A6 A6 Aàú?6 Û  -"@Aàû? A ªÂ!A A·˜"A6 A6 A6  ((" E@A A·˜"A6 A6 A6 AÐü?6 Û  @@ AH@ † "-E@Aàý? A «Â!  )§" (( K@Aðþ? A «ÂAðž$ A ªÂA�ÿ? (( A «ÂAðÿ?Â!A A·˜"A6 A6 A6  @  ( "( O@ ( Atj("E@ (   AA™  6 AAù˜"A6 A:  © E@A�€À A «ÂAð€ÀÂ!  A!@  J@   ("@A€ -k!@ ( ( I (AJA @  (Ak6 (" (" (O@  ( j- (Atr6  (" Aÿq! Av l!  K" @  j6  k k6  A © Aj!  A6 Aj!  ( Ö  A A·˜"A6 A6 A6  6 Û  6 Û  “AAê˜""A6 A6 A6 A€ 6 A Aߘ"A6 A6 A6 AA¦˜"6  6 A6  6 6AAè˜"AÀA¦˜"6  6 AÀ6 A6 6A Aä˜"A6 A6 A6 AA¦˜"6  6 A6 6 A6 A6 A6 A6 A6 A6 9AAõ˜"A: A6 A� 6 A6 A:  6  LAAõ˜"A: A6 A� 6 A6  ·"6  ž  6  ž  LAA»˜"A: A6 A� 6 A6  ·"6  ž  6  ž  LAA·˜"A: A6 A� 6 A6  ·"6  ž  6  ž  LAAå˜"A: A6 A� 6 A6  ·"6  ž  6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( A A´˜"A: A; A� 6 A6  ("6  ž  ( "6  ž  9A A´˜"A: A; A� 6 A6 A:  ;  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA¯˜"A: B7 A� 6 A6  ("6  ž  ("6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAõ˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  ‹ -@A A·˜"A6 A6 A6 A�Ö"6 — (( (k"A AJAL@A°×"AA «ÂA€×" (( (k"A AJA «Â!A A·˜"A6 A6 A6 6 — (" ((j-! Aj6A A³˜"A: A: A� 6 A6 A: : LA A³˜"A: A: A� 6 A6  ·"6  ž  6  ž  LAAä˜"A: A6 A� 6 A6  ·"6  ž  6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA÷˜"A: A6 A� 6 A6  ("6  ž  ("6  ž  ‘@ Ak("A�F A€F A÷F@ ("4 ­W@@ ( "¬ ­B|S@ Aj" (AvK@  AA™ ( AtjA6  6  4 7 LAAõ˜"A: A6 A� 6 A6  ·"6  ž  6  ž  ‹ -@A A·˜"A6 A6 A6 A�Ö"6 Í (( (k"A AJAH@A°×"AA «ÂA€×" (( (k"A AJA «Â!A A·˜"A6 A6 A6 6 Í (" ((j(! Aj6AA÷˜"A: A6 A� 6 A6 A: 6 LAAô˜"A: A6 A� 6 A6  ·"6  ž  6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAÚ˜"A: A6 A� 6 A6  ("6  ž  ("6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAÚ˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAÔ˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAÕ˜"A: A6 A� 6 A6  ("6  ž  ("6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AAÕ˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  LAAÕ˜"A: A6 A� 6 A6  ·"6  ž  6  ž  ¬ ( "A AL!  k"A AJ"At"A¦˜!AA¼˜" 6  ž  6  6  6 (! ( Atj!A! At!@ I@ j j("6  ž Aj!   2 (" ("G@AA H  ( (÷ LAA¥˜"A: A6 A� 6 A6  ·"6  ž  6  ž  G ( ! (!A0A…˜"ù A6 6 ž 6 ž ê LAA«˜"A: A6 A� 6 A6  ·"6  ž  6  ž  Û A6 A6 A6AA¦˜!AA‘˜" 6  ž  6 A6 A6 6 AA¦˜!AA˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6 A6 A� 6 ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA±˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  LAAª˜"A: A6 A� 6 A6  ·"6  ž  6  ž  LAA…˜"A: A6 A� 6 A6  ·"6  ž  6  ž  ‘ -@A€Ê$ AAÐÊA€ÊÂ" Ak(A~q7#"@A$ Ak( AA¤˜"A: A6 A� 6 A6  ("6  ž  ( "6  ž  @AA¤˜"A: A6 A� 6 A6 A:  6  ž  × -0@AAÿ˜"A6 A6 A6 A6 A6 (! AÐÇ%6  6  6  6 A� 6 ¬ Ak(AvA€È% ÂAðÛÂA� !AAÿ˜"A6 A6 A6 A6 A6 (!  Â!# ù"AH@AðÊ%#"( ( A°Ä¦Â  #‚"( O@ ( Atj("E@ A€ý% ÂA€šÂ ! AÐÇ%6  6  6  6  6 ¬ × -0@AAÿ˜"A6 A6 A6 A6 A6 (! AÐÇ%6  6  6  6 A� 6 Û Ak(AvA€È% ÂAðÛÂA� !AAÿ˜"A6 A6 A6 A6 A6 (!  Â!# ù"AH@AðÊ%#"( ( A°Ä¦Â  #‚"( O@ ( Atj("E@ A€ý% ÂA€šÂ ! AÐÇ%6  6  6  6  6 Û @AA½˜"A6 A6 A6 A6 6 C8 A: 6AA½˜"A6 A6 A6 A6 6 A6 =AA½˜"A6 A6 A6 A6 6 A6 A6 6AA½˜"A6 A6 A6 A6 6 A6 àAA½˜"A6 A6 A6 A6 6 AAAëA¤"( "Aj!  (K@ AA™ ( jA: 6 ( "Aj" (K@ AA™ ( jA: 6 ( "Aj" (K@ AA™ ( jA: 6 6 Š A� 6AA¦˜!AAŠ˜" 6  ž  6 A6 A6 6AA¦˜!AA˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6 AA¦˜!AAŠ˜" 6  ž  6 A6 A6 6 A� 6 A6 î A6 A6 A6 A: AA¦˜!AAé˜" 6  ž  6 A6 A6 6AA¦˜!AAý˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6AAƒ˜"½ 6 AA¦˜!AAí˜" 6  ž  6 A6 A6 6$AA¦˜!AAý˜" 6  ž  6 A6 A6 6(AA¦˜!AA¤˜" 6  ž  6 A6 A6 6, A:0 A64 A� 68 LAA¡˜"A: A6 A� 6 A6  ·"6  ž  6  ž  ( (k –  ( "AH@ AL@A!@  H@  ( O@ ( Atj("@ Ak!@ AN  ( O@ ( Atj("E@ A��'  A��'(AJA @  ( O@ ( Atj("@ Aj œ Ak!  Aj œ Aj!   AAÿÿÿÿŸ! AAÿÿÿÿŸ!A!@  J@A! @  J@ Atj"   H! " j"   H" ! !@  H  Hq@  ( O@ ( Atj("E@ A��'   ( O@ ( Atj("E@ A��'(AH@  ( O@ ( Atj("E@   œ Aj!  ( O@ ( Atj("E@   œ Aj! Aj!  @  H@  ( O@ ( Atj("@   œ Aj! Aj!  @  H@  ( O@ ( Atj("@   œ Aj! Aj!  Atj!  ! ! ! At!  A!@  H@  ( O@ ( Atj("@  œ Aj!   ÷ †AA¦˜!AA˜" 6  ž  6 A6 A6 6 A6AA¦˜!AA˜" 6  ž  6 A6 A6 6 A6 AA¦˜!AA˜" 6  ž  6 A6 A6 6AA¦˜!AA¤˜" 6  ž  6 A6 A6 6 A: LAA¤˜"A: A6 A� 6 A6  ·"6  ž  6  ž  LAAž˜"A: A6 A� 6 A6  ·"6  ž  6  ž  « A6 A6 A6 A6 A: A6 A:AA¦˜!AA˜" 6  ž  6 A6 A6 6 AA¦˜!AA˜" 6 ž 6 A6 A6 6 « A6AA¦˜!AAš˜" 6  ž  6 A6 A6 6AA›˜"½ 6AA¦˜!AA•˜" 6  ž  6 A6 A6 6 AA£˜"� 6 ª A6 A6AA¦˜!AAõ˜" 6  ž  6 A6 A6 6AŒAµ˜"° A� 6 6 A6A(A“˜"ñ A6 A� 6 A� ž 6 #Q6AA÷˜""A6 A6AAø˜"½  6 AAAA¤6 A(A“˜"ñ A6 A� 6 A� ž  6 A� 6 6 A6 AA£˜"� 6$AAü˜"½ 6(AA£˜"� 6, A:0 A:1 #Q64 #Q68 A6< A6@ A:D A:E #Q6H A:L A:M � A: A6 A:AA¦˜!AA.˜" 6  ž  6 A6 A6 6 A� 6 A� 6 A6 A� 6 #Q6 #Q6$ LAAŒ˜"A: A6 A� 6 A6  ·"6  ž  6  ž  9AA‹˜"A: A6 A� 6 A6  6  ž  – Ak("A�F@A A”F@ ( Å Aƒ F@ (!AÀÚ Â! ( Ak(A~qw"AA˜"A6 6 A ç A " ("@ @ !#!@ @ # Ak"A lj"(F@ #I@#Ak$ ##A lj"A ü #Ak$ ##A ljA ü  Ak!  ( A6 AA  ½  Ak("A“ F@ (" (" @ (," ( !  ½ ( ! !@  H@@ ( Atj("(-µA  J (-µA (AqAA!A ( "( " E ALr  (!@  H@ Atj( F@   Aj!  A AN A E E@A4A³ ˜""A6 A6 A6 A6 A6 C8 C8 C8 C8 C8$ C8( A6, A:0   (�6  6  6 ((°E@ ( !A€Ï ÂA�Á (ÂAðÛ ( (�ÂAÀΠ( ÂA ÎÂ! ( " Aj" (AvK@ AA™ ( Atj" 6 At Ÿ 6  # ! ($ (  $ Aj!  ( ! AA™ J@ ( AtjA kAtü 6  Aæ F@ (!A4A³ ˜"A6 A6 A6 A6 A6 C8 C8 C8 C8 C8$ C8( A6, A:0   ((�6  6  6  AAÕ ó Ak("A“ F@ (( "( "Aj!  (AvK@ AA™ ( Atj" 6 At  Ÿ 6  Aæ F@ ("(8 �AH@ (8"( AäH@ ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6   )@B|7@  ûAA¦˜!AA± ˜" 6  ž  6 A6 A6 6AA¦˜!AA² ˜" 6  ž  6 A6 A6 6AA¦˜!AA² ˜" 6  ž  6 A6 A6 6 B7 AA¦˜!AA± ˜" 6 ž 6 A6 A6 6 ï A6 A6 A6AA¦˜!AA¥ ˜" 6  ž  6 A6 A6 6 AA¦˜!AA¦ ˜" 6  ž  6 A6 A6 6 A6AA¦˜!AAÞ˜" 6  ž  6 A6 A6 6 A6 A6 A6$AA¦˜!AA¥ ˜" 6  ž  6 A6 A6 6( B70AA¦˜!AA˜" 6  ž  6 A6 A6 68A Aö ˜"A6 D9 A: A6 A� 6 6!*A (( E AAž˜" A6 A 0 1 3 . / *C€? .•C€? /•C€? *• ë ( " E E *"* )]r@A! 3 > *")”’!5 1 / )”’!8 0 . )”’!: (" ("( O@ ( Atj(" E@ C€? ñ !-!,"+". .” ,"/ /”’ -"2 2”’‘•"* *“C[ *C^q@ . *” / *” 2 *”  CCC !-!,"+!9 ,!7 -!2 Aj!  Aj!  AA¿˜"C8 C8 C8 C8 C8 C8 :8 88 58 98 78 28 A !#Aj$  *H!) *D!* *@!. (( AA�˜"A6 A . * ) ê (A " (" ("( O@ ( Atj("E@ AA¿˜"C8 C8 C8 C8 C8 C8 *!0 *!1 *!3C€? ñ !-!,"+"* *” ,". .”’ -"/ /”’‘•") )“C[ )C^q@ * )” . )” / )”  CCC !-!,"+!) 08 18 38 )8 ,8 -8 A "E@ Aj!  *!* *!. *!/ *"0A *[ * ")Aœ*[q *"1A¤*[q@C€? *@ /“"0 0” *D .“"1 1”’ *H *“"3 3”’‘•") )“C[ )C^q@ 0 )” 1 )” 3 )”  CCC !-!,"+!) -!1 ,!0  / ) 6”’8L  . 0 6”’8P  * 1 6”’8T  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *@C€? 4“")” *L 4”’!* *D )” *P 4”’!. *H )” *T 4”’!) *8 .8 )8 Aj!  AJ@ A «AÐáÀÂ! ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 ï#!?#B|$  ?78AA­˜"A: A6 A� 6 A6 A: 6 ž  ( "Aj" (AvK@ AA™ ( Atj" 6 At  Ÿ 6 AA­˜"A: A6 A� 6 A6 A: 6 ž#Aàj$  #Aàj$ � }~#A�¥ÁkA�I@ #A�k"$  (" (AFA A (" ("(( OA  ("( O@ ( Atj( AÀ‰ó ô !AA¬˜"A6 A: AðŠó "Aà¯ÄA A°”Ä A AàÐÄ A AÐÚÄ !  6  : -! (" (AAÿÿÿÿŸ!@ ü"E *! *!  *8  8  8 *! *!  * 8  8  8A AÀ ó "A€—Ä A A —Ä A !} A€Œó " A ÃÄ AjAo ! *! *! * E  AF   AF Aàöö C } *! *! * E  AF   AF Aàöö C “" C_p‰0]@ #ì"( O@ ( Atj("E@ AðÚÀ ÂA€ÚÀÂ! ( "Aj" (AvK@  AA™ ( Atj" 6  At Ÿ  6  AÀÈó ¦ "-} *C " A€Êó ¦ "-} *C " `"!!   !“" \}C½7†5 C½7†5— !$ A°±ó ¦ "-} *C #”! AЂó ¦ "-} *C !" •C ‹C½7†5^! * *’C?”! * *’C?”! * * ’C?”! (Ç! @ ( J@C€?} ( Atj(!C€? ("E C€?  ( O"  @ ( Atj* " “ "C\@  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *! *!  *8  8  8 } * ! *! * E  AF   AF Aàöö C } *! *! * E  AF   AF Aàöö C “ • !“ $•"C]@C! C€?^@C€?! *  * * A€ÃÄ}   ” ”ü !&"%! &! @@ @ AF   AÀ*AÄ*AÈ*C C Œ  C ŒAÌ*AÐ*AÔ* C  C Œ CAØ*AÜ*Aà* !!!!!!!!"8$  8(  8,  80  84  88  8<  8@  8D * ! *!  * “8H  “8L   “8P} *P! *L! *H E  AF   AF Aàöö C ! @ AF@ C8L AF@ C8PAàöö  C8H *$ *H"#” *0 *L"”’ *< *P" ”’! *( #” *4 ”’ *@ ”’! *, #” *8 ”’ *D ”’!  8T  8X  8\ @ AF@  8X AF@  8\Aàöö   8T  *X’!  *T’!  *\’ AÀÃÄ} " C¿’”C@” ”C€?’! * ! *!  * “8`  “8d   “8hA!@ AH@ G@} *h! *d! *` E  AF   AF Aàöö C ”! @ AF@  8d AF@  8hAàöö   8` Aj!   *d’!  *`’!  *h’ AàÃÄ} " ”C€?’"‹C½7†5^}C€? ‘" \}C½7†5 C½7†5— •C€? ! * ! *!  * “8l  “8p   “8tA!@ AH@} *t! *p! *l E  AF   AF Aàöö C   F”! @ AF@  8p AF@  8tAàöö   8l Aj!   *p’!  *l’!  *t’ ‹C_p‰0]} *! *! *   C¿’” ”! * ! *!  * “8x  “8|   “8€} *€! *|! *x AjAo"E  AF   AF Aàöö C “! *€! *|!  *x8„  8ˆ  8Œ Œ ý ”! @ AF@  8ˆ AF@  8ŒAàöö   8„  þ ” ’! @ AF@  8ˆ AF@  8ŒAàöö   8„  *ˆ’!  *„’!  *Œ’ !  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@  8  8  8 Aj!  ï#!'#B|$  '78AA­˜"A: A6 A� 6 A6 A: 6 ž#A�j$  AA­˜"A: A6 A� 6 A6 A: 6 ž#A�j$ Õ!}~ !A!#A�¥ÁkA I@ #A k"$  (" (AFA A (" ("(( OA ("( O@ ( Atj( AÀ‰ó ô !AA¬˜"A6 A: AðŠó "Aà¯ÄA A°”Ä A AàÐÄ A AÐÚÄ ! 6 : -! ("(AAÿÿÿÿŸ! @ Aà ó ¨ "- (A " ((A E  AÀ ó ÷"-@ (  AAAÒ "( E@ C€?C (-! ( AM@ C€?C (-! ( AM@ C€?C (-!  8  8  8 *A *[ *Aœ*[q *A¤*[q A€Œó AÐËÄ"@ ü" AÀÒó "Aà¯ÄA A°”Ä A AàÐÄ A AÐÚÄ A @ ! @  I@  AðÎó ¦ "-} *C !# AÀÐó ¦ "-} *C !$A!AAÁ˜" õ (Ç!@ ( J@ ( Atj(" ("(( OA  ("( O@ ( Atj( "E@A ÷ö @ *! *!! *!"A¤*!A *!Aœ*!C!A!  (0"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A  (0"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ (AAAýA¤ !A! @ ( J@ ( Atj(" " ("(( OA ("( O@ ( Atj( "E@A ÷ö @ ( F@ (  ( F@ (  A "AG@A  (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (AAAýA¤ "( AH! C!A!@ ( J@  ( Atj(è!A! @ ( J@ ( Atj(" F FrE@ ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ } *! *! *!  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *! *!% *!&#A�¥ÁkA I@ #A k"$ " “8 ! “8 “8  “8 % “8 & “8 *" * "” *" *"%”“! *"& ” *" ”“" ”  ”’ % ”  &”“" ”’‘"C̼Œ+]@#A j$C  * * ” * *”’ * *”’ •!#A j$  ’! Aj!  Aj!  C€? ( "C]@C! C@F^@C@F!  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@  * "“ ”’!  * “ ”’!  * !“ ”’!  ’! Aj!  C̼Œ+_E@ ("( "Aj!  (AvK@ AA™ ( Atj 6 6 ("( " Aj"AÕªÕ*K@ A l" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj"  • $ # "”8  • ”8  • ”8  6 Aj!   AЂó ¦ "-} *C !A!AAÁ˜"õ (Ç! @ ( J@  ( Atj("ë" ( @A¤*!A *!Aœ*!A!@ ( " J@ O@ ( Atj(" (" (( OA  (" ( O@ ( Atj( "E@A ÷ö @  *’!  *’!  *’! Aj!   ( ²"•! ("( " Aj!  (AvK@ AA™ ( Atj 6 6 (!  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@  *“ ”!  • *“ ”!  • *“ ”! ( " Aj" AÕªÕ*K@ A l" (" K@ At" I@ ! A¦˜" ( ü  6  6  6  ž ( A lj" 8 8 8  6 Aj!   !A!@ ("( J@ ( O@ ( Atj(! ("( O@ ( A lj"*! *! *!C€?}C€? ("E C€?  ( O"  @ ( Atj* "“  "C\@  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *  ” *”’! *  ” *”’!  *  ” *”’8  8  8 Aj!  Aj!  @ ü"@ * *“! * *“! * *“! *" *"!“! *"" *"“!  * " *"#“"$‹C_p‰0]}C€?  $• 8 C€?  • ‹C_p‰0]8 C€?  • ‹C_p‰0]8 * A¨*“‹" *A¬*“‹" *A°*“‹"  ^"  ^C½7†5^@ ! ’C?”!  "’C?”! # ’C?”! (Ç!A!@ ( J@ ( Atj(" ("(( OA  ("( O@ ( Atj( "E@A ÷ö @  * “ *”’!  * “ *”’!   * “ * ”’8  8  8 Aj!  ï#!'#B|$  '78AA­˜"A: A6 A� 6 A6 A: 6 ž#A j$  AA­˜"A: A6 A� 6 A6 A: 6 ž#A j$ ®5}~  (" (AFA A (" ("(( OA ("( O@ ( Atj( AÀ‰ó ô !AA¬˜"A6 A: AðŠó "Aà¯ÄA A°”Ä A AàÐÄ A AÐÚÄ ! 6 : ((AAÿÿÿÿŸ! @ ((E A°äó ¦ "-} *C "C_@ ( "Aj" (AvK@ AA™ ( Atj"A�ÔÀ6 At A�ÔÀŸ 6  AAØ"C ×£<8 C8 A: A: A: A: A;  8  A€¼ó ¦ "-} *C 8  A�Öó "Aà¯ÄA A°”Ä A AàÐÄ A AÐÚÄ :  A�×ó "Aà¯ÄA A°”Ä A AàÐÄ A AÐÚÄ :  AÐØó "Aà¯ÄA A°”Ä A AàÐÄ A AÐÚÄ :  A€Úó "Aà¯ÄA A°”Ä A AàÐÄ A AÐÚÄ :  A Ûó ¨ "- (A ; AAʘ"AÇ6  6#A�¥ÁkA0I@ #A0k"$ (Ç!AA¦˜!AAý˜" 6 ž 6 A6 A6 AA¦˜!AAý˜" 6 ž 6 A6 A6 AA¦˜!AA¤˜" 6 ž 6 A6 A6 @ ( J@ ( Atj(" ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ (! ( "Aj" (AvK@ AA™ ( Atj 6 6 (! ( "Aj" (AvK@ AA™ ( Atj 6 6  ( O@  (4"( ( ( Atj("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A  (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ (AAAýA¤ ( ! ( "Aj" (AvK@ AA™ ( Atj 6 6 Aj!  AAɘ"Ð (Ç!A!@ ( J@  ( Atj("  ñ!!! " !ý Aj!  (Ç!AA˘"!AA¦˜ AA¦˜6 A6AA¦˜ A0A¦˜6 A6 A6 A6A!@ ( J@ (4"( ( ( Atj("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A  (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ (AAAýA¤ "( AJ ( E@ ((" ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ /A !  ( O@ ( ( Atj("A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s" (qAtj(!@ @ ("AqE@ ( F  A~q!  A "@ ; ( " (F@ ( AlAmH ( (AtAr !AA¦˜ Aj"At"AüÿÿÿK@ A¦˜! AA¦˜ AtAm"A l"AüÿÿÿK@ A¦˜! (" (A lj! !@  G@ (AqE@ ("6 /;  A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj"(6  6 A j! A j!   6  ž  6  6  ž  6  (6 (!  ("Aj6 A lj" 6 ;  (Aj6 (  (qAtj"(6  6 Aj!  A!@ ( J@ ( Atj(!  ( O@ ( Atj(!  ( O@ ( Atj(! ( M@@ ( Atj("E AF -A E  (!}   ("  \    \   – "C_ ("(( OA ("( O@ ( Atj( "E@A ÷ö E@ *!% *!& *!$  ("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ *!' *!(  *"* $“8  ( &“8  ' %“8 *"" ” *" ”’ *"# #”’‘"C_p‰0]   •8   •8  # •8 *C?” ”" ”  - !# ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@  ( F  A~q!  A } ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@  ( F  A~q!  A "E@ *! *! * AÜ*!AØ*!Aà* ! ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A } ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ *! *! * AÜ*!AØ*!Aà* !" C€?  ’" ”  ’" ”’  "’" ”’‘•" “C[ C^q@  ”  ”  ”  CCC !!! "8  8  !8 *A *[ * Aœ*[q *A¤*[q@Aà*!AÜ*! AØ*8  8  8 C€? *" *"” *" *"”“" ”  * "”  *""”“" ”’ " ”  ”“" ”’‘•" “C[ C^q@  ”  ”  ”  CCC !!! "8  8  !8 *A *[ *Aœ*[q * A¤*[q@ C€? *"AÈ*"”AÄ*" *"”“" ” AÀ*"”  *""”“" ”’ " ”  ”“" ”’‘•" “C[ C^q@  ”  ”  ”  CCC !!! "8  8  !8 C€? *" *"” *" * "”“" ”  *"”  *""”“" ”’ " ”  ”“" ”’‘•" “C[ C^q@  ”  ”  ”  CCC !!! "" # *”"”! !" ”! "" ”!) *!+ *!, $ *} CÍÌÌ>”" #C - " \    \   – "”’ ’! *!$ *!- * * ”“ ’!   & , ”’ )’ % + ”’ ’ * * *  "  #þ!   ( - ”“ )’ ' $ ”“ ’ * * *  "  #þ! ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@ ( F  A~q!  A  ( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ (" AqE@ ( F  A~q!  A "E@ /A / jAÿÿq! A!@ AH@AA¦˜!AAý˜" 6  ž  6 A6 A6 ( O@ ( ( Atj(6 AjAo" ( O@ ( ( Atj(6  ( O@ ( ( Atj(6 ( O@ ( ( Atj(6  â! ( Û ; Aj!  AA¦˜!AAý˜" 6 ž 6 A6 A6 ( AM@ ( (( 6 ( AM@ ( ((6 ( AM@ ( ((6 ( E@ ( ((6  â! ( Û ;AA¦˜!AAý˜" 6 ž 6 A6 A6 ( E@ ( ((6 ( AM@ ( ((6 ( AM@ ( ((6 ( AM@ ( (( 6  â! ( Û ; Aj! Aj!  AJA - @  ù úAA¦˜!AAý˜" 6  ž  6 A6 A6 ((( !A!@  I@  ("(( OA  ("( O@ ( Atj(  (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A  (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ (AAAýA¤ ( A E@ ( "Aj" (AvK@  AA™ ( Atj 6  6 Aj!  A!@ ( J@  ( Atj(÷ Aj!  (  #A0j$ E@ ( "Aj" (AvK@ AA™ ( Atj"AðÔÀ6 At AðÔÀŸ 6 ï#!.#B|$  .78AA­˜"A: A6 A� 6 A6 A: 6 ž  AA­˜"A: A6 A� 6 A6 A: 6 ž [} ("-!C€?}C€? (("E C€?  ( O"  @ ( Atj* "“   ¢}A}  (("( O@ ( Atj("E@ ("( E@ ("*! *! *! ("( AM@  ("* ’!  *’!  *’! ("( AM@  ("*’C@@•  *’C@@•  * ’C@@•! ! " (("E  AF  AF Aàöö C "}  (("( O@ ( Atj("E@ ("( E@ ("*! *! *! ("( AM@  ("* ’! *’!  *’! ("( AM@  ("*’C@@•  *’C@@• * ’C@@•! ! " (("E  AF  AF Aàöö C "^  ^"@  A  K  I C A A  ^  ] Ø}  (("(( OA  ("( O@ ( Atj( "E@A ÷ö E@ (! ("! ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A A E@A ( Í! ("(4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A  (4"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (AAAýA¤ ( AF  *_A Ž AHA  ( N @A †Á A «ÂAà…Á ( A «ÂA �Â"$ AAÐÊ Â" Ak(A~q7#"@A$ Ak( ( M@ ( Atj("E@ ( "Ak" G@   O@ ( Atj("E@ œ ( ! AA™  J@ ( AtjA  kAtü 6  ß  ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av s" (qAtj(!@ @ ("AqE@  ( F  A~q!  A "@  : ( " (F@ ( AlAmH ( (AtAr !AA¦˜ Aj"At"AüÿÿÿK@ A¦˜!AA¦˜ AtAm" A l"AüÿÿÿK@ A¦˜! (" (A lj! !@  G@ (AqE@  ("6  -:    A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj"(6  6 A j! A j!  6 ž 6 6 ž 6 (6 (! ("Aj6  A lj" 6  : (Aj6  ( (qAtj"(6 6   (Aj6  (" ( ( é ( ("AjI@ Aj6 ("6 A€OA (: -@ ( (" (k"AjApq k" jI@  j6 ( (" jI@  j6 ! ( Aq@ -@ Ak ( ""Aj6 AkB7 AkA¦6 Ak 6A Aã˜" 6 6 6  A Aã˜"A6 A6 A6 ( Av"AÿÿÿÿK@  At"A¦˜"6  6  6 (  ( ü  W Ak(AÎG@ ( Aj"6 AèJ@ (§ (! A¦ 6 ( Ak6 W Ak(AÏG@ ( Aj"6 AèJ@ (§ (! A¦ 6 ( Ak6 Ê Ak("A× F AÌ Fr AÈ Fr A¯ Fr A© Fr A˜ Fr A‘ Fr@A A¿ F@ (\"@   (!@ @ (\"@   (!  A ! (`"@   (!@ @ (`"@   (!  A !   ( (FA A (! (!@ @A  F  ( !  A A E@ Ž"( E AGq ( (FA @ 6 ž  @ ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @ ( "( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@ ( F  A~q!  A "E@ (  AA¼ ˜"A6 A6 A6 AAA½ A¤6 AAA¾ A¤6  A‡" 6  ž (  »   ("E@AA¼ ˜"A6 A6 A6 AAA½ A¤6 AAA¾ A¤6  A‡"6 ž   ”ù}A$/A$žA$ŸA$]Cÿÿ$D-DTû! @$C€$(Aþÿÿÿ$C4$íC€ÿ$¾A€Aј"Aˆ¡A€ü $-#¶$ÀAA¦˜!AA̘" 6  ž  6 A6 A6 $µAAʘ"½ $ÚAA͘"A6 A6 A6 A6 A: A6 A6 A6 $šA$vAA¦˜AA¦˜$!AAϘ"½ $¶AAÔ˜"½ $hA$–AA͘"½ $yA$£AA¦˜!AA˜" 6  ž  6 A6 A6 $9AA¦˜!AAט" 6  ž  6 A6 A6 $CAA¦˜!AAÓ˜" 6  ž  6 A6 A6 (A6 $AA¦˜!AA¤˜" 6  ž  6 A6 A6 $iA$zA$ÜA$ÛA� $ A$A� $‘A Aä˜"A6 A6 A6 A€A¦˜"6  6 A€6 $C5úŽ<$A¼C8AÀC8AÄC€?8AÈC€?8AÌC€¿8AÐC€¿8AÔC€?8AØC8AÜC8AàC€?8AäC€¿8AèC8AìC8AðC€¿8Aô#Œ"8Aø 8Aü#8A€#8A„CÀ8AˆCÀ8AŒC€8A�C€8A”C€ÿ8A˜C€ÿ8AœC8A C8A¤C8A¨C€?8A¬C€?8A°C€?8A´C€¿8A¸C€¿8A¼C€¿8AÀC€?8AÄC8AÈC8AÌC8AÐC€?8AÔC8AØC8AÜC8AàC€?8AäC€¿8AèC8AìC8AðC8AôC€¿8AøC8AüC8A€C8A„C€¿8Aˆ 8AŒ 8A� 8A”#8A˜#8Aœ#8A CÀ8A¤CÀ8A¨CÀ8A¬C€8A°C€8A´C€8A¸C€ÿ8A¼C€ÿ8AÀC€ÿ8AÄC8AÈC8AÌC8AÐC8AÔC€?8AØC€?8AÜC€?8AàC€?8AäC€?8AèC8AìC8AðC8AôC8AøC€?8AüC8A€C8A„C8AˆC8AŒC€?8A�C8A”C8A˜C8AœC8A C€?8A¤C€¿8A¨C8A¬C8A°C8A´C8A¸C€¿8A¼C8AÀC8AÄC8AÈC8AÌC€¿8AÐC8AÔC8AØC8AÜC8AàC€¿8AäCÀ8AèCÀ8AìCÀ8AðCÀ8AôA6AøA6AüA6A€A6A„A6AˆA6A�D9A˜D9A D9A¨C8A¬C8A°C8A´C€?8A¸CÀ8A¼CÀ8AÀCÀ8AÄCÀ8AÈC8AÌC8AÐC8AÔC8AØC8AÜC8AàC8AäC8AèC8AìC€?8AðC8AôC8AøC8AüC€?8A€C8A„C8AˆC8AŒC€?8A�CÀ8A”CÀ8A˜CÀ8AœCÀ8A CÀ8A¤CÀ8A¨CÀ8A¬CÀ8A°CÀ8A´C8A¸C8A¼C8AÀC8AÄC8AÈC8AÌC8AÐC8AÔC8AØC8AÜC8AàC8AäC8AèC8AìC8AðC8AôC€?8AøC8AüC8A€C8A„C8AˆC€?8AŒC8A�C8A”C8A˜C8AœC€?8A C8A¤C8A¨C8A¬C8A°C€?8A´CÀ8A¸CÀ8A¼CÀ8AÀCÀ8AÄCÀ8AÈCÀ8AÌCÀ8AÐCÀ8AÔCÀ8AØCÀ8AÜCÀ8AàCÀ8AäCÀ8AèCÀ8AìCÀ8AðCÀ8A$ôA$ÆAAò˜$àAAó˜"Ü A6 $›AAó˜"Ü A6 $õ#›#ô"AF  AF@#Æ"  #à $Ý#Ý$:A Aߘ"A6 A6 A6 AA¦˜"6  6 A6 $œA Aä˜"A6 A6 A6 AA¦˜"6  6 A6 $�A$AA‘˜"A6 A6 A6 A6 $6A!AAјA€Aј!@ A€H@ A F A Fr A Fr A Fr"Ar A A.FA A-FA A:FA AßF AÚL AÁNqA AúL AáNq A A9L A0Nq !  Ak(O@  j : Aj!  $SA$ëAØA¤˜"A�Ò6 A:AA¥˜"½  6AA¦˜!AA§˜" 6  ž  6 A6 A6  6 AA¦˜!AA˜" 6  ž  6 A6 A6  6AA£˜"�  6AA¨˜"½  6 A: A: A: A� 6 A:$A Aߘ"A6 A6 A6 AA¦˜"6  6 A6  6( A:, A� 60 B78 A6@AA¥˜"½  6DAA¦˜!AA©˜" 6  ž  6 A6 A6  6H A6L A:P A:Q $AAј"AøÍ(Aü $ÛAAä˜"A6 A6 A6 A6 Aš$¤AAɘ"A6 A6 A6 A6 Aš$¥AA¦˜!AAݘ" 6  ž  6 A6 A6 (A Aæ˜"A6 A6 A6 A6 A6 A6 6 (A Aæ˜"A6 A6 A6 A6 A6 A 6 6 (A Aæ˜"A6 A6 A6 A6 A6 A6 6 (A Aæ˜"A6 A6 A6 A6 A6 A 6 6 (A Aæ˜"A6 A6 A6 A6 A6 A$6 6 (A Aæ˜"A6 A6 A6 A6 A6 A46 6 $DAA¦˜!AAݘ" 6  ž  6 A6 A6 (A Aæ˜"A6 A6 A6 A6 A6 A6 6 (A Aæ˜"A6 A6 A6 A6 A6 A 6 6 (A Aæ˜"A6 A6 A6 A6 A6 A6 6 (A Aæ˜"A6 A6 A6 A6 A6 A(6 6 (A Aæ˜"A6 A6 A6 A6 A6 A,6 6 $¦AA¦˜!AAݘ" 6  ž  6 A6 A6 (A Aæ˜"A6 A6 A6 A6 A6 A6 6 (A Aæ˜"A6 A6 A6 A6 A6 A 6 6 (A Aæ˜"A6 A6 A6 A6 A6 A6 6 (A Aæ˜"A6 A6 A6 A6 A6 A 6 6 $§AA¦˜!AAݘ" 6  ž  6 A6 A6 (A Aæ˜"A6 A6 A6 A 6 A6 A6 6 ${AA¦˜!AAݘ" 6  ž  6 A6 A6 (A Aæ˜"A6 A6 A6 A 6 A6 A6 6 $ÞAA¦˜!AAݘ" 6  ž  6 A6 A6 (A Aæ˜"A6 A6 A6 A 6 A6 A6 6 (A Aæ˜"A6 A6 A6 A 6 A6 A6 6 $·AA¦˜!AAݘ" 6  ž  6 A6 A6 (A Aæ˜"A6 A6 A6 A6 A6 A6 6 (A Aæ˜"A6 A6 A6 A6 A6 A6 6 (A Aæ˜"A6 A6 A6 A6 A6 A 6 6 (A Aæ˜"A6 A6 A6 A 6 A6 A06 6 $¢AA¦˜!AAݘ" 6  ž  6 A6 A6 (A Aæ˜"A6 A6 A6 A6 A6 A6 6 (A Aæ˜"A6 A6 A6 A6 A6 A6 6 $žA¬!A;A®!A;A°!A6A´!A;A¶!A;A¸!A6A¼!A;A¾!A;AÀ!A6AÄ!A;AÆ!A;AÈ!A6AÌ!A;AÎ!A;AÐ!A6AAð˜$TAœ!C8A !A;A¢!A:A£!A:A¤!A:A¥!A:A¦!A:A§!A:A¨!A:A©!A:AA³˜$¨A„!Cÿÿ8Aˆ!Cÿÿ8AŒ!Cÿÿ8A�!Cÿÿÿ"8A”! 8A˜! 8A¬C8A°C8A´C8A¸C€?8A¼C€?8AÀC€?8AÄC€?8AÈC8AÌC8AÐC8AÔC€?8AØC8AÜC8AàC8AäC€?8AèC8AìC8AðC8AôC€?8AøC8AüC8A€ C8A„ C8Aˆ C8AŒ C8A� C€?8A” C8A˜ C8Aœ C8A  C8A¤ C8A¨ C8A¬ C8A° C8A´ C8A¸ C€?8A¼ C8AÀ C8AÄ C8AÈ C€?8AÌ C8AÐ C8AÔ C8AØ C€?8AÜ C8Aà C8Aä C8Aè C8Aì C8Að C8Aô C8Aø C8Aü C8A€!C€?8A€âA½˜$÷A(Aô˜"Ý $øA¬Aɘ"ÞA Aï˜"A6 A6 C8 #T6 A6 C8A Aï˜"A6 A6 C8 #T6 A6 C8 6 6 $ùAA¿˜A€A¿˜!@ A H@AAʘ"A(Aô˜"Ý 6 A6 ("A Aï˜"A6 A6 C8 A€ Að˜6 A6 C8 6 ž ("A Aï˜"A6 A6 C8 A€ Að˜6 A6 C8 6 žA¬Aɘ"Þ ((!  ((6  6  6  Ak(AvO@  Atj" 6 A Ÿ Aj!  $úA(Aô˜"Ý $ûA˜"C8Aœ"C8A "C8A¤"C?8A¨"C?8A¬"C?8A°"C€?8A´"C€?8A¸"C€?8AAô˜A€Aô˜$þA€ AÁ˜$ÿAAù˜$€A€àAå˜$�A€ Aç˜$‚AAô˜A€Aô˜$ƒA(Aô˜"Ý $„A8Aó˜"à $…A!AAØAÀAØ!@ AH@AAˆ˜"å  Ak(AvO@  Atj" 6 A Ÿ Aj!  $‰AAô˜A€Aô˜$ŠA(Aô˜"Ý $»A8Aó˜"à $¼A Að˜$½A(Aô˜"Ý $¸A8Aó˜"à $¹AAð˜$ºAAò˜"ß $¾A Að˜$¿A$Að˜$ÀAAð˜$ÁA€ Að˜$ÂA(Aô˜"Ý $ÃA8Aó˜"à $ÄA,Aܘ"A6 A6 A6 A6 C8 C8 C8 C8 C8 C8$ C8( $µAAð˜$¶A€ Að˜$·AA´˜$£AAô˜AAô˜$¬AA¨˜$­AAª˜$®AA½˜AA½˜$­AA¿˜AA¿˜$®AAÁ˜AAÁ˜$¯AAØAAØ$°AAŘAAŘ$¢AA¬˜$£AA®˜$¤A Aã˜"A6 A6 A6 AA¦˜"6  6 A6 $±AìAȘ"ä $²A!AA˘A€A˘!@ A H@A Aɘ"AìAȘ"ä 6AAô˜ A€Aô˜6 A6  6  Ak(AvO@  Atj" 6 A Ÿ Aj!  $³AA¤˜"A6 A6 A6 A6 Aš$ÞAA§˜"AàA¦˜"6  6 Aà6 A6 $ìAA¦˜"A6 A6 A6 A6 Aš$ßA Aã˜"A6 A6 A6 AA¦˜"6  6 A6 $àA€Aʘ""#¬6AAô˜ AàAô˜6AAô˜ AàAô˜6AAô˜ AàAô˜6 AAô˜ AàAô˜6AAô˜ AàAô˜6 AÀA˘6 AÀA˘6 AÀA˘6 AAô˜ AàAô˜6$ #¬6( #­6, #®60 #­64 #®68 #à6< #à6@ #¤6D #£6HAA½˜ AäA½˜6LAAÁ˜ AäAÁ˜6PAAØ AäAØ6TAA¿˜ AA¿˜6X #¢6\ #£6` #£6d #£6h #£6lAA͘ AàA͘6pAAϘ AAϘ6tAAј AAј6x A6|A!@ AL@ (L!A A¶˜"A6 A6 A6 A6 A6 #Þ6 Ak(AvO@  Atj" 6 A  Ÿ (P!AA¸˜"A6 A6 A6 A6 A6 A6 A6 #ì6 #à6 Ak(AvO@  Atj" 6 A  Ÿ (T!A A¹˜"A6 A6 A6 A6 A6 #ß6 Ak(AvO@  Atj" 6 A  Ÿ Aj!  (X!A A·˜"A6 A6 A6 A6 A6 #ì6 Ak(AvE@ 6 A Ÿ (X!A A·˜"A6 A6 A6 A6 A6 #ì6 Ak(AvAM@ Aj" 6 A ŸA!@ AH@ (p"Ak(Av M@  Atj"#£"6 A  Ÿ Aj!  $´AÄA£˜"A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A60 A64 A68 A6< A6@ A6D #Ÿ6H A6L C8P C8T C8X C8\ C8` C8d C8h C8l C8p C8t C8x C8| C8€ C8„ C8ˆ C8Œ C8� C8” C8˜ C8œ C8  C8¤ A:¨ A:© A:ª A:« C8¬ A;° A:² A:³ A:´ A:µ A:¶ A:· A:¸ A:¹AA¡˜!AA¢˜"AàA¦˜"6  6 Aà6 A6  6 C8 C8 C8 C8 C8 C8  6¼ A6À $ÅAŒAĘ$ÆA Aã˜"A6 A6 A6 AA¦˜"6  6 A6 $ÇAüAë˜$ÈAA¨˜$ªAAª˜$«AA¬˜$ AA®˜$¡A¼"A:A½"A:A¾"A:A¿"A:A!AA͘A€A͘!@ A H@AœAà˜"A(Aá˜6 AAð˜6 A€Aá˜6 A€Aá˜6 A€ A³˜6AÀA²˜"C8 C8 C8 C8 C8 C8 #¨6 A6 A6 A6$ A6( A6, A60 C84 A68 A6<  6 AA³˜6A(Aô˜"Ý  6 A€ Að˜6 AAð˜6$AA-˜ A�A-˜6(AA-˜ A�A-˜6,AA-˜ A�A-˜60AA-˜ A�A-˜64AAô˜ A�Aô˜68AAô˜ A€Aô˜68AÐ"C ×£>8AÔ"CÍÌ ?8AØ"Cö(\?8AÜ"C8Aà"C ×#>8Aä"C)\?8Aè"C€?8AüAј"Aè¿Aüü $öAì"Aë:Aí"Aë:Aî"Aë:Aï"Aÿ:Að"A:Añ"A:Aò"A:Aó"AŒ:A$Aј"AЯA$ü $�A Aߘ"A6 A6 A6 AA¦˜"6  6 A6 $ªAAјAÀAј$4AAô˜AàAô˜$'AAô˜AÀAô˜$¸AAô˜AÀAô˜$âAAјAÀAј$+AAô˜A0Aô˜$AA ˜AØA ˜$¤AAô˜AAô˜$¹AAô˜A Aô˜$^AAô˜AAô˜$jAA ˜AA ˜$,AA ˜AA ˜$±AAô˜A€Aô˜$ºAAô˜A€Aô˜$ãAAô˜A€Aô˜$äAAô˜A€Aô˜$²AAô˜AÀAô˜$³AAô˜AÀAô˜$´AAô˜AAô˜$}AAô˜A€Aô˜$åAAê˜AAê˜$µAAô˜A Aô˜$¶AAº˜"A6 A6 A: A6 A6 A6 $GAAјA€Aј$‹A,Aј"AÀÊ*A,ü $‡AAј"AàÞAü $ßAŒAј"A؆AŒü $úAAј"A¨õýý $ÚAàAј"AÀþAàü $ÛA˜Aј"Aè…A˜ü $ÜAàAј"AЉAàü $ÝAüAј"A šAüü $ÞA0Aј"A¸æA0ü $ùA$BA$.A$”A$¿A$€A$�A$™A$ŽA$ùA$àAAј"AØ„ýý $áCäò?$¥AA¥˜"AA-˜AàA-˜6 $·AAë˜"A6 A6 A6 A6 A¨$æAA¦˜!AAì˜" 6  ž  6 A6 A6 (AÐAˆ˜"è 6 $»A$A‰˜"A6 A6 A: A: A: #æ6 A:AA¦˜!AAŠ˜" 6  ž  6 A6 A6  6 A6AA¦˜ AA¦˜6 $±AA‡˜"A6 A6 A6 A6 A6 $­AA ˜AÐA ˜$­AA ˜AÐA ˜$®AA ˜AÐA ˜$¯AˆAÙ˜"ç $°A8Aט"A: A6 C8 C8 C8 C8 C ×#<8 C8 C€?8 C8$ C8( C€?8, C A80 CÈB84 $«A,Aؘ"¬ $¯A$AÙ˜"A: C€?8 C@8 CÀ?8 C?8 C�Âu=8 CHáz?8 C8 C8 $°AAÚ˜"A: C€?8 C€?8 C€?8 $±AœAÖ˜"æ $¬AAј"A°¨ýý $òA Aј"A�ªA ü $óAAј"AЫýý $ôA0Aј"Aè�A0ü $;AAј"Aøžýý $ðAAј"A ¢)7 $ñAAј"A¨Ô)7 $ÁAAô˜A€Aô˜$ÎAA§˜"A6 A6 A: AA¦˜ AA¦˜6 $²A A¨˜"A6AA¦˜ AA¦˜6 $³A A©˜"A6 A6 $®A¬A¡˜"A6 A6A Aç˜"A6 A6 A6 AA¦˜"6  6 A6  6 A: AAž˜"A6 A6 A6 A6 A6 A6 A6  6 A� 6 A6AAô˜ AÀAô˜6AAô˜ AÀAô˜6 AAô˜ AÀAô˜6$ A6(AA¦˜!AA¢˜" 6  ž  6 A6 A6  6,AA£˜"A€A¦˜"6  6 A€6 A6  60AA£˜"A€A¦˜"6  6 A€6 A6  64 A:8A°*!A¬*! A¨*! A¤*! A *! Aœ*!A˜*!A”*!A�*!AŒ*!Aˆ*!A„*!A€*!Aü*! Aø*! Aô*8<  8@  8D  8H  8L  8P  8T  8X  8\  8`  8d  8h  8l  8p  8t  8xA°*!A¬*! A¨*! A¤*! A *! Aœ*!A˜*!A”*!A�*!AŒ*!Aˆ*!A„*!A€*!Aü*! Aø*! Aô*8|  8€  8„  8ˆ  8Œ  8�  8”  8˜  8œ  8   8¤  8¨  8¬  8°  8´  8¸A°*!A¬*! A¨*! A¤*! A *! Aœ*!A˜*!A”*!A�*!AŒ*!Aˆ*!A„*!A€*!Aü*! Aø*! Aô*8¼  8À  8Ä  8È  8Ì  8Ð  8Ô  8Ø  8Ü  8à  8ä  8è  8ì  8ð  8ô  8ø C8ü A:€ #(8„ A:ˆA Aç˜"A6 A6 A6 AA¦˜"6  6 A6  6Œ A6� A6”A°*!A¬*! A¨*! A¤*! A *! Aœ*!A˜*!A”*!A�*!AŒ*!Aˆ*!A„*!A€*!Aü*! Aø*! Aô*8˜  8œ  8   8¤  8¨  8¬  8°  8´  8¸  8¼  8À  8Ä  8È  8Ì  8Ð  8ÔA°*!A¬*! A¨*! A¤*! A *! Aœ*!A˜*!A”*!A�*!AŒ*!Aˆ*!A„*!A€*!Aü*! Aø*! Aô*8Ø  8Ü  8à  8ä  8è  8ì  8ð  8ô  8ø  8ü  8€  8„  8ˆ  8Œ  8�  8” C8˜ A6œAA¦˜!AAõ˜" 6  ž  6 A6 A6  6 AA¦˜!AA¤˜" 6  ž  6 A6 A6  6¤AA¦˜!AAý˜" 6  ž  6 A6 A6  6¨AA£˜"A€A¦˜"6  6 A€6 A6  6¬AA¦˜!AAë˜" 6  ž  6 A6 A6  6°AA¦˜!AA¤˜" 6  ž  6 A6 A6  6´AA¦˜!AAë˜" 6  ž  6 A6 A6  6¸AAž˜"A6 A6 A6 A6 A6 A6 A6  6¼ A:À #(8Ä A6ÈAA¦˜!AA¤˜" 6  ž  6 A6 A6  6ÌAA̘"AàA¦˜"6  6 Aà6 A6  6ÐAA̘"AàA¦˜"6  6 Aà6 A6  6ÔAA¦˜!AAë˜" 6  ž  6 A6 A6  6ØAA¦˜!AA¤˜" 6  ž  6 A6 A6  6ÜAA¦˜!AA.˜" 6  ž  6 A6 A6  6àA8AŸ˜"€  6äAA ˜"A Aç˜"A6 A6 A6 A°6A Aã˜"A6 A6 A6  A°6 A6 #(8  6èA Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6ìA Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6ðA Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6ô A6øAA¦˜!AA¥˜" 6  ž  6 A6 A6  6üAA¦˜!AA¦˜" 6  ž  6 A6 A6  6€ A6„ A6ˆ A6ŒA Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6�A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6”A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6˜ A:œ C8  C8¤ C8¨ $UAA̘"AàA¦˜"6  6 Aà6 A6 $´AA.˜"A6 A6 A6 A6 Aš$³A Aª˜"Ÿ $²AA¥˜"AA-˜AàA-˜6 $¯AA¥˜"AA-˜AàA-˜6 $°AA†˜"A6 A6 A6 A6 Aš$ËAAë˜"A6 A6 A6 A6 A¨$sA4A¦˜""A6 A6 A6 A: A6 A: C8 C8 C8$AA¦˜!AA§˜" 6  ž  6 A6 A6  6(AA¦˜!AA¨˜" 6  ž  6 A6 A6  6,AA¦˜!AA©˜" 6  ž  6 A6 A6  60A!@ AH@ (0!AAô˜A€Aô˜! ( "Aj" (AvK@  AA™ ( Atj" 6  At  Ÿ  6 Aj!  $©AA¥˜"AA-˜AàA-˜6 $¸AA.˜"A6 A6 A6 A6 Aš$´AA¥˜"AA-˜AàA-˜6 $¹AA¤˜"A6 A6 A6 A6 Aš$§AAë˜"A6 A6 A6 A6 A¨$“AìAÒ˜"é $µAAë˜"A6 A6 A6 A6 A¨$çA8A°˜"A6 A6 C8 C8 C8 A: C8 C8 C€¿8$ A:( #ç6,A Aõ˜"A6 A6 AAAöA¤6 A6 60AA¦˜!AA±˜" 6  ž  6 A6 A6 64 $¶A$žA$òA$ÐA$ÑAÀå$)A$ÃA$ñAA¦˜AA¦˜$VAA¦˜!AAÀ˜" 6  ž  6 A6 A6 $AA¦˜!AAî˜" 6  ž  6 A6 A6 $AÄAј"Aˆ’AÄü $øA$Aј"A¨ÒA$ü $ƒAAј"AЪAü $pA Aј"Aø¨A ü $dA Aј"AÀ³A ü $þA Aј"A°ŠA ü $ûAAј"Aðô6 A°÷6 A€ú6 Aàü6 A�ÿ6 $øAAј"A€0Aü $5A Aј"AøœA ü $nA Aј"Aø(A ü $_AAј"Aˆ7Aü $kAAј"A¨•Aü $ÈAAј"A 1)7 $?A4Aј"A˜­A4ü $PAAј"Aˆ-Aü $`A Aј"A€üA ü $óA0Aј"A�œA0ü $‚A Aј"A°­A ü $ôA$ AA¦˜!AA˜" 6  ž  6 A6 A6 $ AÐAј"AøÁAÐü $0AAј"A¸Ãýý $–AAј"AЃAü $ÏA Aј"AÀƒA ü $ìAôAј"A �Aôü $éAAј"Aè‚)7 $ëAAј"Aà‚(6 $êA� $×A$ÖAAј"AðöAü $ÄA$ID9�R¢Fß‘?$·A Aј"AèÒA ü $¨AAј"A˜Š)7 $ØAÀ´Að³Â$ÕA�¹A°·Â$íA ËA°ÊÂ$ñAàÛAàÚÂ$ôA°‚A �Â$õA ¼A°»Â$îAÀÐAÐÎÂ$òAÀ×AðÕÂAÀÔÂ$óAðÀA°¿Â$ïA°ÄAÀÃÂ$ðAЈAÀ‡Â$÷Að…A …Â$öAÀ'AØ:AÁ'AÜ:AÂ'Aæ:AÃ'Aÿ:AÄ'Aú:AÅ'A€:AÆ'AŒ:AÇ'Aÿ:AÐ&Að%Â$¹A$A¦˜!AA˜" 6  ž  6 A$6 A 6 (AÐÅ6 (A€Æ6 (A�Â6 (AÀô6 (Aàˆ6 (AÀ»6 (AÀ–6 (AÀ�6 (A ”6 $ìAA¦™"Aðíýý AA˜" 6  ž  6 A6 A6 $ªAA¦˜!AA˜" 6  ž  6 A6 A6 (AÀÄ6 $¢AA¦˜!AA˜" 6  ž  6 A6 A6 (AðÇ6 $£A$A¦™"Aà¶A$ü AA˜" 6  ž  6 A$6 A 6 $¤A A¦™"A˜¾A ü AA˜" 6  ž  6 A 6 A6 $¥AA¦˜!AA˜" 6  ž  6 A6 A6 $©AA¦˜!AA˜" 6  ž  6 A6 A6 #_"Ak(AvE@ ("E@ ( 6#_"Ak(AvAM@ ("E@ ( 6#_"Ak(AvAM@ ("E@ ( 6 (A )6 (Aà)6 $ºAA¦˜!AA˜" 6  ž  6 A6 A6 #`"Ak(AvE@ ("E@ ( 6#`"Ak(AvAM@ ("E@ ( 6#`"Ak(AvAM@ ("E@ ( 6#`"Ak(AvAM@ ( "E@ ( 6 #`"Ak(AvAM@ ("E@ ( 6#`"Ak(AvAM@ ("E@ ( 6 $»AA¦™"A�ÐAü AA˜" 6  ž  6 A6 A6 $¦A°ÓA°ÑÂ$§A�ÚA°ØÂ$¨AA¦™"Aèí(6AA˜" 6  ž  6 A6 A6 $©AA¦˜!AA˜" 6  ž  6 A6 A6 #5"Ak(AvE@ ("E@ ( 6#5"Ak(AvAM@ ("E@ ( 6#5"Ak(AvAM@ ("E@ ( 6#5"Ak(AvAM@ ( "E@ ( 6 #5"Ak(AvAM@ ("E@ ( 6#5"Ak(AvAM@ ("E@ ( 6#5"Ak(AvAM@ ("E@ ( 6 $¼A A¦˜!AA˜" 6  ž  6 A 6 A6 #?"Ak(AvE@ ("E@ ( 6#?"Ak(AvAM@ ("E@ ( 6 (AÀ16 $½AA¦˜!AA˜" 6  ž  6 A6 A6 #?"Ak(AvE@ ("E@ ( 6#?"Ak(AvAM@ ("E@ ( 6 (AÀ16 (Að16 $¾AA¦˜!AA˜" 6  ž  6 A6 A6 #?"Ak(AvE@ ("E@ ( 6#?"Ak(AvAM@ ("E@ ( 6 (AÀ16 (A 26 $¿A(A¦˜!AA˜" 6  ž  6 A(6 A 6 (Aà26 (A 36 (Aà36#k"Ak(AvE@ ("E@ ( 6 #k"Ak(AvAM@ ("E@ ( 6#k"Ak(AvAM@ ("E@ ( 6#k"Ak(AvAM@ ( "E@ ( 6#k"Ak(AvAM@ ("E@ ( 6#?"Ak(AvE@ ("E@ ( 6 #?"Ak(AvAM@ ("E@ ( 6$ $À## $ŒA�8Aà#ÂA°7Â$¼A€ïA€íÂA€ëÂAðéÂ$—A°óAÀòÂ$êA€ýA°ûÂ$úA°ÕAÀÓÂAàÒÂ$éAàÁA€ÁÂ$�A€­AЫÂ$‘A$A¦™"AÀŠA$ü AA˜" 6  ž  6 A$6 A 6 $’A�8Aà#ÂA°7Â$½A€šA ˜Â$†Aà¨Að¦ÂA°¥Â$‡A�°A ¯Â$ùAÀµA ´Â$ˆAнAà¼Â$‰A€ÄAðÂÂ$ŠA€ºAð¸Â$ÇA�ËA€ÊÂ$‹AÀÕAÀÔÂ$ŒAðÏA ÏÂ$äA°íA€íÂ$åA òAàñÂ$æAðƒAà‚Â$çA€­AЫÂ$�AàþAàýÂ$�A°šAð˜Â$èA�¢A ¡Â$ŽAÐüAðûÂ$„A€„A�ƒÂ$…A :C€?8A¤:C8A¨:C8A¬:C8A°:C€?8A´:C8A¸:C8A¼:C8AÀ:C€?8AÌAâ ˜"C8 C8 C8 C8 C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 A6< A6@AA¦˜!AA.˜" 6  ž  6 A6 A6  6D A6H $èAAä ˜"A: A: A: A: A: A: $ÁAAä ˜"A: A: A: A: A: A: $ÂA€ŠA€‰Â$žAA¦™"A ¼)7AA˜" 6  ž  6 A6 A6 $üAA¦™"Aè�ýý AA˜" 6  ž  6 A6 A6 $ŸAA¦™"AÐÓ)7AA˜" 6  ž  6 A6 A6 $˜AA¦™"A˜¤ýý AA˜" 6  ž  6 A6 A6 $–AA¦™"AÀå(6AA˜" 6  ž  6 A6 A6 $ãAA¦™"A��Aü AA˜" 6  ž  6 A6 A6 $•AA¦™"A€”)7AA˜" 6  ž  6 A6 A6 $”AA¦™"A¸›)7AA˜" 6  ž  6 A6 A6 $ AA¦™"A˜Ù(6AA˜" 6  ž  6 A6 A6 $ÿA$A¦™"Aè¾A$ü AA˜" 6  ž  6 A$6 A 6 $—A�8Aà#ÂA°7Â$¥AÐëA�êÂ$€A ïA�îÂ$�A°óA òÂ$‚Aà’Aà‘Â$“A�÷AÀöÂ$ƒA A¦™"A¨ûA ü AA˜" 6  ž  6 A 6 A6 $›AA¦™"A€ÿ(6AA˜" 6  ž  6 A6 A6 $œAA¦™"Aˆÿ)7AA˜" 6  ž  6 A6 A6 $�AððA€ðÂ$ýAàäAðâÂ$šA°ÜA°ÛÂ$™Að�AàœÂ$¡Að9Aà#ÂAà8Â$»A�(Av"H  OA AtA�>j/ AÿqA Attr! Aj!  $ÒA!A!@ AH@ A¬>(Av"H  OA AtA°>j/ AÿqA Attr! Aj!  $ÓA!A!@ AH@ AÌ>(Av"H  OA AtAÐ>j/ AÿqA Attr! Aj!  $ÔA!A!@ AH@ Aì>(Av"H  OA AtAð>j/ AÿqA Attr! Aj!  $ÕA!A!@ AH@ AŒ?(Av"H  OA AtA�?j/ AÿqA Attr! Aj!  $ÖA!A!@ AH@ A¬?(Av"H  OA AtA°?j/ AÿqA Attr! Aj!  $×A!A!@ AH@ AÌ?(Av"H  OA AtAÐ?j/ AÿqA Attr! Aj!  $ÅA!A!@ AH@ Aì?(Av"H  OA AtAð?j/ AÿqA Attr! Aj!  $ÆA!A!@ AH@ AŒÀ(Av"H  OA AtA�Àj/ AÿqA Attr! Aj!  $¦A!A!@ AH@ A¬À(Av"H  OA AtA°Àj/ AÿqA Attr! Aj!  $ØA!A!@ AH@ AÌÀ(Av"H  OA AtAÐÀj/ AÿqA Attr! Aj!  $ÙA!A!@ AH@ AìÀ(Av"H  OA AtAðÀj/ AÿqA Attr! Aj!  $ÚA8A¼ÍCš™™>8AÀÍCš™™>8AÄÍC€?8AÈÍCpÂ8AÌÍCC8AÐÍC8AÔÍCÍÌL>8AØÍCÍÌL>8AÜÍCÍÌL>8AàÍC€?8AäÍC8AèÍC8AìÍC8AðÍC8AôÍC€?8AøÍC8AA¦˜!AAò˜" 6  ž  6 A6 A6 (A6 (A6 (A6 (A6 $ÎA Aã˜"A6 A6 A6 A A¦˜"6  6 A 6 $½A Aè˜"A6 A6 A6 AÀA¦˜"6  6 AÀ6 $�AAј"A°Êýý $åD¡?$§AàAÒ ˜"C€?8 C8 C8 C8 C€?8 C8 C8 C8 C€?8 C€?8$ C€?8( C€?8, C80 C€?84 C88 C€?8< C8@ C8D C8H C€?8L C8P C8T C8X C€?8\ $AÈAÓ ˜"A: A6 A: C€?8 C8 C8 C8 C€?8 C8 C8$ C8( C€?8, C80 C84 C88 C€?8< C8@ C8D C8H C€?8L C8P C8T C8X C€?8\ C8` C8d C8h C8l C8p C8t C8x C8| C8€ C8„ C8ˆ C8Œ C€?8� C€?8” C€?8˜ C8œ C8  C8¤ A:¨ A6¬ C8° C8´ C8¸ C8¼ C8À C8Ä $%AAÑ ˜"C8 C8 C8 C8 C8 C8 A: $ÊAA¦˜!AAŘ" 6  ž  6 A6 A6 (AAÕ ˜"A‡³Ñ‘6 6 $˜A ÍC…ëq?8A¤ÍC×£°>8A¨ÍC8A¬ÍC€?8A°ÍCƒ ?8A´ÍCœÄ >8AAÑ ˜"C8 C8 C8 C8 C8 C8 A: $ÝAA¿˜AàA¿˜$ÉD°>$ÄA(Aè˜"Dð9 A6 D9 D9 A: $ÍAAê ˜"D9 D9 D9 $œA(Að ˜"þ $LA(Að ˜"þ $ŽA Aè˜"A6 A6 A6 AàA¦˜"6  6 Aà6 $ AA¦˜!AA¤˜" 6  ž  6 A6 A6 $�A0Aé ˜"Dð9 Dð9 Dð9 Dðÿ9 Dðÿ9 Dðÿ9( $lAA¿˜AàA¿˜$éAA¿˜AàA¿˜$ËA$îAÌAј"AðŒAÌü $ÎAÄAј"Aø„AÄü $ºAAј"AðóAü $÷AAј"Aèùýý $¸AAј"Aèø)7 $·A Aј"AÈýA ü $¹AAј"Aàóýý $µA Aј"A°öA ü $¶A$‰#$XA(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 $ÞCgù A$ÌCãÈë=$ßCó5?$ÍCó5?$èA$ÓA4A³ ˜"A6 A6 A6 A6 A6 C8 C8 C8 C8 C8$ C8( A6, A:0A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 A� 6 A�Í6  6 $ÛA(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 $È#D€f@£$¼AAÀ˜"½ $“AÈAÒ ˜"D9 A6 A: C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ $AA¦˜!AA˜" 6  ž  6 A6 A6 $ˆA$ŠAA¦™"A�àýý AA˜" 6  ž  6 A6 A6 $ÙAA³˜"A6 A6 A6 A6 Aš$HAA÷˜"A6 A6 A6 A6 Aš$mA$ A(Aí˜"A6 A: B7 D9 A� 6 #6 #6 #6$ A6 $¸A$—A$uAA¦˜!AAÀ˜" 6  ž  6 A6 A6 $ÒAAó˜"½ $ÂA Aј"Aø”A ü $«AAј"AÀç*6 A�è*6 Aðè*6 Aàé*6 A æ*6 AÐê*6 $‹AAј"Aˆ„)7 $ïAAј"A Î6 A ÎAðÎÂ6 A�Ï6 AÐÏ6 A�Ð6 AÐÐ6 $ÁA$�A¬Aј"AàÏA¬ü $öA$õAüÍC8A€ÎC8A„ÎC€?8A$îA$’A$ÒA$ÌA$‚A¼ÑC8AÀÑCš™?8AÄÑC333?8AÈÑC= ×>8AÌÑC€?8AÐÑCÍÌL>8AÔÑCÍÌÌ=8AØÑCÍÌL?8AÜÑC?8AàÑC333?8AäÑC€?8AèÑC€?8AüÐC€?8A€ÑCš™Y?8A„ÑCš™™>8AˆÑC€?8AŒÑC8A�ÑC8A”ÑC8A˜ÑC8AœÑC8A ÑC8A¤ÑC8A¨ÑC8A¬ÑC8A°ÑC8A´ÑC8A¸ÑC8A(A× ˜"Dð9 C8 C8 C8 C8 C8 C8 A6 A6$ $ÂAA³˜"A6 A6 A6 A6 Aš$æAAæ ˜$ÜAAÞ ˜"#Ü6A4Aã ˜"A6 C8 C8 C8 C8 C8 C8 A6 A6 A6$ A6( A:, C80  6AAä ˜"ÿ  6 A6 $ê#D€f@£¶$¨#¶$©## ¶$àDü©ñÒMbP?ð¶$áDü©ñÒMbP?ô¶$âAìÑC?8AðÑC€?8AôÑC€?8AøÑC€?8AüÑC?8A€ÒC?8A„ÒC?8AˆÒC€?8AŒÒC8A�ÒC€?8A”ÒC€?8A˜ÒC€?8AœÒC€?8A ÒC8A¤ÒC€?8A¨ÒC€?8A¬ÒC€?8A°ÒC?8A´ÒC€?8A¸ÒC€?8A¼ÒC?8AÀÒC?8AÄÒC?8AÈÒC€?8AÌÒC€?8AÐÒC8AÔÒC8AØÒC€?8AÜÒC€?8AàÒC€?8AäÒC8AèÒC€?8AìÒC€?8AðÒC?8AôÒC8AøÒC€?8AüÒC€?8A€ÓC€?8A„ÓC8AˆÓC€?8AŒÓC€?8A�ÓC8A”ÓC8A˜ÓC€?8A Aë ˜"A6 A6 A6 A6 A6 A6 A6 A6 $ÔAœÓC8A ÓC8A¤ÓC8A¨ÓC8A¬ÓC8A°ÓC8A´ÓC8A¸ÓC8A¼ÓC8AÀÓC8AÄÓC8AÈÓC8AÌÓC8AÐÓC8AÔÓC8AØÓC8AÜÓC8AàÓC8AäÓC8AèÓC8AìÓC8AðÓC8AôÓC8AøÓC8AüÓC8A€ÔC8A„ÔC8AˆÔC8AŒÔC8A�ÔC8A”ÔC8A˜ÔC8AœÔC8A ÔC8A¤ÔC8A¨ÔC8A¬ÔC8A°ÔC8A´ÔC8A¸ÔC8A¼ÔC8AÀÔC8AÄÔC8AÈÔC8AA³˜"A6 A6 A6 A6 Aš$•AA³˜"A6 A6 A6 A6 Aš$çAA¦˜!AA˜" 6  ž  6 A6 A6 $’AA£˜"� $˜AA¦˜!AAŽ ˜" 6  ž  6 A6 A6 $»A$ÇA$íAÌÔCÍÌÌ=8AÐÔC€?8AÔÔC333?8AØÔCÍÌÌ>8AÜÔCš™?8AàÔCš™?8AäÔCš™?8AèÔC€?8AìÔC€?8AðÔC€?8AôÔCÍÌÌ>8AøÔCfff?8AüÔCÍÌL>8A€ÕC€?8A„ÕC8AˆÕC€?8AŒÕC€?8A�ÕCÍÌL>8A”ÕC8A˜ÕC€?8AœÕC€?8A ÕCÍÌL?8A¤ÕC8A¨ÕC€?8A0AÀ˜"A6 A6 A6 A6A Aߘ"A6 A6 A6 AA¦˜"6  6 A6  6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6A Aã˜"A6 A6 A6 AA¦˜"6  6 A6  6AA¦˜!AAþ˜" 6  ž  6 A6 A6  6 A6$ A6( AAAÈA¤6, $Æ#ôAF@#:#ÝF@ $: $Ý AAј"A ‰6 Aк6 AðÝ 6 A�Þ 6 A°Þ 6 $ÿA$þA$ýA$üA$ûA Aј"AÀ A ü $¼A Î)AÐÍ)Â$äAÐÒ)AàÑ)Â$åAA¦™"A€¯&ýý AA˜" 6  ž  6 A6 A6 $ÅA,A¦™"Aà‹&A,ü AA˜" 6  ž  6 A,6 A 6 $„AA¦™"A¸² ýý AA˜" 6  ž  6 A6 A6 $ÏAA¦™"A�³ ýý AA˜" 6  ž  6 A6 A6 $ÐAA¦™"A ³ ýý AA˜" 6  ž  6 A6 A6 $€A$½A$¾AÀÖC8AÄÖC8AÈÖC8AÌÖC8AÐÖC8AÔÖC8AØÖC€?8AÜÖC€?8AàÖC€?8AA¦™"AèÖAü AA¤˜" 6  ž  6 A6 A6 $ÄAA¦˜!AA˜" 6  ž  6 A6 A6 $�AA¦™"A˜×&)7AA˜" 6  ž  6 A6 A6 $ËA A¦™"A¨Ù&A ü AA˜" 6  ž  6 A 6 A6 $ÎA0A¦™"A¨È&A0ü AA˜" 6  ž  6 A06 A 6 $ˆAA¦™"Aˆê&Aü AA˜" 6  ž  6 A6 A6 $„AÀA¦™"A˜Ê%AÀü AA˜" 6  ž  6 AÀ6 A6 $AÀA¦™"A¨ü%AÀü AA˜" 6  ž  6 AÀ6 A6 $‚A$ŽAÀA¦™"Að€&AÀü AA¤˜" 6  ž  6 AÀ6 A6 $ÁA$�A$‹A$ŠA$‰A$†A$‡A$ŒAA¦™"Aðí&ýý AA˜" 6  ž  6 A6 A6 $ÑAA¦™"A˜ð&Aü AA˜" 6  ž  6 A6 A6 $ÒAA¦™"AÈð&ýý AA˜" 6  ž  6 A6 A6 $ÓA A¦™"AØè&A ü AA˜" 6  ž  6 A 6 A6 $ÐAA¦™"A°Ó&Aü AA˜" 6  ž  6 A6 A6 $ÑAA¦™"A¸×&ýý AA˜" 6  ž  6 A6 A6 $ÌA A¦™"A¸Ø&A ü AA˜" 6  ž  6 A 6 A6 $ÍA A¦™"A€ã&A ü AA˜" 6  ž  6 A 6 A6 $ÏAA¦™"A�¯&ýý AA˜" 6  ž  6 A6 A6 $ÆAA¦™"Að¨&)7AA˜" 6  ž  6 A6 A6 $ÄAA¦™"A •&)7AA˜" 6  ž  6 A6 A6 $ÃA A¦™"A€”&A ü AA˜" 6  ž  6 A 6 A6 $ƒAA¦™"Aè”&Aü AA˜" 6  ž  6 A6 A6 $…AA¦™"A°Õ&Aü AA˜" 6  ž  6 A6 A6 $ÈA A¦™"A Ö&A ü AA˜" 6  ž  6 A 6 A6 $ÉA A¦™"Aˆ×&A ü AA˜" 6  ž  6 A 6 A6 $ÊA0A¦˜!AAœ˜" 6  ž  6 A06 A 6 (AA¦™"AÀÉ&ýý AA˜" 6  ž  6 A6 A6 6 (AA¦™"A Ê&)7AA˜" 6  ž  6 A6 A6 6 (AA¦™"A�Ë&Aü AA˜" 6  ž  6 A6 A6 6 (A A¦™"A¨Ë&A ü AA˜" 6  ž  6 A 6 A6 6 (A A¦™"AàË&A ü AA˜" 6  ž  6 A 6 A6 6 (AA¦˜!AA˜" 6  ž  6 A6 A6 6 (AA¦™"A�Ì&(6AA˜" 6  ž  6 A6 A6 6 (AA¦™"A˜Ì&(6AA˜" 6  ž  6 A6 A6 6 (AA¦™"A�Í&ýý AA˜" 6  ž  6 A6 A6 6 (A A¦™"AÀÍ&A ü AA˜" 6  ž  6 A 6 A6 6$ (AA¦™"AÐÎ&Aü AA˜" 6  ž  6 A6 A6 6( (AA¦™"A¨Ï&)7AA˜" 6  ž  6 A6 A6 6, $ÇA,A¦˜!AAœ˜" 6  ž  6 A,6 A 6 (A A¦™"A€�&A ü AA˜" 6  ž  6 A 6 A6 6 (AA¦™"A¸�&Aü AA˜" 6  ž  6 A6 A6 6 (AA¦™"AÐ�&ýý AA˜" 6  ž  6 A6 A6 6 (A A¦™"Aà�&A ü AA˜" 6  ž  6 A 6 A6 6 (A A¦™"Að�&A ü AA˜" 6  ž  6 A 6 A6 6 (A A¦™"A€�&A ü AA˜" 6  ž  6 A 6 A6 6 (AA¦™"AÐ�&ýý AA˜" 6  ž  6 A6 A6 6 (AA¦™"A€‘&ýý AA˜" 6  ž  6 A6 A6 6 (A A¦™"A�‘&A ü AA˜" 6  ž  6 A 6 A6 6 (AA¦™"Að‘&ýý AA˜" 6  ž  6 A6 A6 6$ (A A¦™"A ’&A ü AA˜" 6  ž  6 A 6 A6 6( $ÂA$…AA¦™"AˆØ'Aü AA˜" 6  ž  6 A6 A6 $ÕAA¦™"A€à')7AA˜" 6  ž  6 A6 A6 $ÖAA¦™"Aˆà'(6AA˜" 6  ž  6 A6 A6 $×AA¦™"A�à'ýý AA˜" 6  ž  6 A6 A6 $ØAA¦™"A à'(6AA˜" 6  ž  6 A6 A6 $ÙAA¦™"Aø£'Aü AA˜" 6  ž  6 A6 A6 $�AA¦™"AØÐ'Aü AA˜" 6  ž  6 A6 A6 $ÔAàæ'A€æ'Â$ÚA$úAA¦™"Aв")7AA˜" 6  ž  6 A6 A6 $¿C<$ªC�€€;$«C8$¬C€€7$­A A¦™"A€×A ü AA¤˜" 6  ž  6 A 6 A6 $ÅA A¦™"A�×A ü AA¤˜" 6  ž  6 A 6 A6 $ÎAA¦™"A ×)7AA¤˜" 6  ž  6 A6 A6 $ÏAA¦™"A¨×Aü AA¤˜" 6  ž  6 A6 A6 $Ð#¶$®A¼×A:A½×A:AÀ×A:AÁ×A:AÄ×A:AÅ×A:AÈ×A:AÉ×A:AÌ×A:AÍ×A:Að×B7Aø×B€€€€7A4A¦™"Aر%A4ü AA˜" 6  ž  6 A46 A 6 $ÀA¤*! A *!AØ’+Aœ*8AÜ’+ 8Aà’+ 8A¤*! A *!Aä’+Aœ*8Aè’+ 8Aì’+ 8A$ŒA Aј"AÐíA ü $ƒAôA¦˜!AAþ˜" 6  ž  6 Aô6 A6 (A Aÿ˜"A6 A6 A6 A Ù6 AÐÙ6 AðÙ6 6 (A Aÿ˜"A6 A6 A6 A�Ú6 A°Ú6 AÐÚ6 6 (A Aÿ˜"A6 A6 A6 AðÚ6 A°Ú6 AÐÚ6 6 (A Aÿ˜"A6 A6 A6 A Û6 AÀÛ6 A� 6 6 (A Aÿ˜"A6 A6 A6 AàÛ6 AÀÛ6 A� 6 6 (A Aÿ˜"A6 A6 A6 A€Ü6 A°Ú6 AÐÚ6 6 (A Aÿ˜"A6 A6 A6 A°Ü6 A°Ú6 AàÜ6 6 (A Aÿ˜"A6 A6 A6 A€Ý6 A°Ú6 AÐÚ6 6 (A Aÿ˜"A6 A6 A6 A Ý6 AÐÙ6 AðÙ6 6 (A Aÿ˜"A6 A6 A6 AÐÝ6 A°Ú6 AðÝ6 6$ (A Aÿ˜"A6 A6 A6 A�Þ6 A°Ú6 AÐÚ6 6( (A Aÿ˜"A6 A6 A6 A°Þ6 AàÞ6 AàÜ6 6, (A Aÿ˜"A6 A6 A6 A€ß6 A°Ú6 A°ß6 60 (A Aÿ˜"A6 A6 A6 AÐß6 A°Ú6 AàÜ6 64 (A Aÿ˜"A6 A6 A6 A€à6 A°Ú6 A°à6 68 (A Aÿ˜"A6 A6 A6 AÐà6 A°Ú6 A�á6 6< (A Aÿ˜"A6 A6 A6 A°á6 AÐÙ6 Aàá6 6@ (A Aÿ˜"A6 A6 A6 A€â6 A°Ú6 AàÜ6 6D (A Aÿ˜"A6 A6 A6 A°â6 A°Ú6 AàÜ6 6H (A Aÿ˜"A6 A6 A6 Aàâ6 A°Ú6 AàÜ6 6L (A Aÿ˜"A6 A6 A6 A ã6 AÀÛ6 A� 6 6P (A Aÿ˜"A6 A6 A6 AÐã6 AÐÙ6 Aàá6 6T (A Aÿ˜"A6 A6 A6 Aðã6 A°Ú6 AÐÚ6 6X (A Aÿ˜"A6 A6 A6 A°ä6 A°Ú6 AàÜ6 6\ (A Aÿ˜"A6 A6 A6 Aàä6 A°Ú6 A� 6 6` (A Aÿ˜"A6 A6 A6 A å6 AÐÙ6 AðÙ6 6d (A Aÿ˜"A6 A6 A6 Aàå6 A°Ú6 AàÜ6 6h (A Aÿ˜"A6 A6 A6 A æ6 A°Ú6 AàÜ6 6l (A Aÿ˜"A6 A6 A6 Aàæ6 A°Ú6 AàÜ6 6p $ëAA¦™"A�±(Aü AA˜" 6  ž  6 A6 A6 $†AÐA¦˜!AAí˜" 6  ž  6 AÐ6 A6 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 A�ç6 AÐç6 A€è6 A Ù6 A� 6 A6 A: 6 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 A°è6 Aàè6 AÐÙ6 A�Ú6 A� 6 A6 A: 6 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 A�é6 Aàè6 AÐÙ6 AðÚ6 A� 6 A6 A: 6 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 AÐé6 A€ê6 AÀÛ6 A Û6 A� 6 A6 A: 6 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 A°ê6 Aàè6 A°Ú6 A€Ü6 A� 6 A6 A: 6 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 Aðê6 Aàè6 AÐÙ6 AÐã6 A� 6 A6 A: 6 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 A ë6 Aàè6 A°Ú6 A°â6 A� 6 A6 A: 6 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 Aàë6 Aàè6 AÐÙ6 Aàâ6 A� 6 A6 A: 6 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 A°ì6 A€ê6 AÀÛ6 A ã6 A� 6 A6 A: 6 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A 6 Aðì6 Aàè6 AÐÙ6 A°á6 A� 6 A6 A: 6$ (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A 6 A°í6 Aàè6 Aðí6 A€â6 A� 6 A6 A: 6( (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A 6 A�î6 Aàè6 Aðí6 A€Ý6 A� 6 A6 A: 6, (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A 6 AÀî6 Aàè6 AÐÙ6 A Ý6 A� 6 A6 A: 60 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A 6 A€ï6 Aàè6 A°Ú6 A°Ü6 A� 6 A6 A: 64 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 AÀï6 Aàè6 AÐÙ6 A°ä6 A� 6 A6 A: 68 (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 A€ð6 Aàè6 A°Ú6 AÐß6 A� 6 A6 A: 6< (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 AÀð6 A�ñ6 A°Ú6 AÐà6 A� 6 A6 A: 6@ (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 Aàñ6 A ò6 A€è6 Aàå6 A� 6 A6 A: 6D (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 Aàò6 Aàè6 Aðí6 A� 6 A°ó6 A6 A: 6H (A A€˜"A6 A6 A6 A6 A6 A6 A6 A: A6 Aðó6 Aàè6 AÐÙ6 A� 6 AÐô6 A6 A: 6L $¦A,A¦™"A¸ð(A,ü AA˜" 6  ž  6 A,6 A 6 $ßA,A¦™"Aèð(A,ü AA˜" 6  ž  6 A,6 A 6 $àA,A¦™"A€è(A,ü AA˜" 6  ž  6 A,6 A 6 $ÝAÐA¦™"A€¾)AÐü AA˜" 6  ž  6 AÐ6 A6 $á#D€f@£$¯A�Ç)$âAA¦™"A˜Ç))7AA˜" 6  ž  6 A6 A6 $‘AA‘˜"A6 A6 A6 A6 $QAA¦™"Aðï(Aü AA˜" 6  ž  6 A6 A6 $ÞA$A¦™"A€Ø(A$ü AA˜" 6  ž  6 A$6 A 6 $ÜAA¦™"Aàµ(Aü AA˜" 6  ž  6 A6 A6 $�AÐØA�ØÂ$�AA¦™"AÈË)ýý AA˜" 6  ž  6 A6 A6 $ãAÐA¦™"AðÕAÐü AA¤˜" 6  ž  6 AÐ6 A6 $ÃA$„A$áAA�˜"$á#M"E@AA„ ˜"$M G@ $M AA¦˜!AAª˜" 6  ž  6 A6 A6 (A A¦™"A¸öA ü AA˜" 6  ž  6 A 6 A6 Aò " 6 žA õ AÐõAàöö6 (A�øA ò A°øAÐøö6 (AA¦™"Aðù)7AA˜" 6  ž  6 A6 A6 Aò " 6 žA ù AÀùA�úö6 (A ûAò AàûA€üö6 (A ýAò AàûAÐýö6 (AA¦™"A ÿ)7AA˜" 6  ž  6 A6 A6 Aò " 6 žAÀþ AðþAÀÿö6 $ÑAÀ‰A ò A°øAð‰ö$~AðŠAò AàûA°‹ö$A A¦˜!AAª˜" 6  ž  6 A 6 A6 (A A¦™"Aà�A ü AA˜" 6  ž  6 A 6 A6 Aò " 6 žAð€ A��A€‚ö6 (AЂAò A°ßAð‚ö6 (A€„Aò AàÜA „ö6 (AÐ…Aò AàÜAð…ö6 (AÀ Aò A€‡A ‡ö6 (A€ˆAò AàûA°ˆö6 (#~6 (#6 $ÒA A¦˜!AAª˜" 6  ž  6 A 6 A6 (A A¦™"A€�A ü AA˜" 6  ž  6 A 6 A6 Aò " 6 žA€Œ A ŒA �ö6 (Aò "C8 C€?8AàŽ AÐÚA€�ö6 (Aò "A6 A6A€� AàÜA°�ö6 (A°‘Aò Aà‘A€’ö6 (A “Aò AГAð“ö6 (A€•Aò AàûA°•ö6 (#~6 (#6 $ÓAA¦˜!AAª˜" 6  ž  6 A6 A6 (AA¦™"AЗAü AA˜" 6  ž  6 A6 A6 Aò " 6 žAЖ A ÛA€˜ö6 (A°™Aò AÐÚAЙö6 (A°šAò A°ßAКö6 (Aà›A ò A°øA�œö6 (AÀ�A ò Að�A�žö6 (#~6 (#6 $ÔAA¦˜!AAª˜" 6  ž  6 A6 A6 (AA¦™"A�Ÿ)7AA˜" 6  ž  6 A6 A6 Aò " 6 žA€Œ AÀ‰A°Ÿö6 (AÀ‰A ò A°øAà ö6 (A€ŸA ò A°øAÀ¡ö6 (Aò "C8 C€?8AࢠA°ßA�£ö6 (A�¤Aò AàûA°¤ö6 (A�¥Aò AàûA°¥ö6 $ÕAA¦˜!AAª˜" 6  ž  6 A6 A6 (AA¦™"A�§ýý AA˜" 6  ž  6 A6 A6 Aò " 6 žA€Œ AÀ¦A°§ö6 (Aò "A6 A6Að¨ A ©AÀ©ö6 (AàªAò A�«A°«ö6 (Aò "C8 C€?8A ¬ AàÜAЬö6 (A�®Aò AàûAÀ®ö6 (A ¯Aò Aà¯A€°ö6 $ÖA$A¦˜!AAª˜" 6  ž  6 A$6 A 6 (AÀ Aò A —Aà°ö6 (A°±Aò AбAð±ö6 (Aò "A6 A€6A°² AвAð²ö6 (A°³Aò AàÜAгö6 (Aò "A6 A€6A€� AÐÚAдö6 (A°µAò Aà¯Aеö6 (AжAò A€·A ·ö6 (A�¸Aò AàûA°¸ö6 (A�¥Aò AàûAÀ®ö6 $×A$A¦˜!AAª˜" 6  ž  6 A$6 A 6 (A€¹A ò A°øA ¹ö6 (A A¦™"AðºA ü AA˜" 6  ž  6 A 6 A6 Aò " 6 žA€Œ Að¹A�»ö6 (A€¼Aò AàÜA ¼ö6 (AÀ Aò A°øA ½ö6 (Aà¾Aò AàûA€¿ö6 (A€ÀAò Aà¯A Àö6 (A ÁAò AàûAÐÁö6 (#~6 (#6 $ØA A¦˜!AAª˜" 6  ž  6 A 6 A6 (AA¦™"AðÃýý AA˜" 6  ž  6 A6 A6 Aò " 6 žA€Œ A€ÃA�Äö6 (A°±Aò AàÄA€Åö6 (AЂAò A°ßA�Æö6 (AÀ Aò A —A Çö6 (Aò "C8 C€?8AÀÈ AàÜAðÈö6 (Aò "C8 C€?8A€Ê AÐÚA°Êö6 (#~6 (#6 $ÙA A¦™"AÐÚÀA ü AA˜" 6  ž  6 A 6 A6 $ìA$A¦˜!AAª˜" 6  ž  6 A$6 A 6 (AA¦™"AèË)7AA˜" 6  ž  6 A6 A6 Aò " 6 žA€Œ A°ËA€Ìö6 (AЂAò A°ßAÀÍö6 (AðÎAò A�ÏA°Ïö6 (AÀÐAò A�ÏAðÐö6 (Aò "A6 AÈ6Aà AÐÚAðÑö6 (AÀ Aò A€‡A ‡ö6 (AÀÒAò Aà¯AðÒö6 (#~6 (#6 $ÚA$A¦˜!AAª˜" 6  ž  6 A$6 A 6 (A°äAò A�ÔA°Ôö6 (Aò "C€¿8 C€?8A€¼ AàÜAðÔö6 (A�ÖAò Aà¯A°Öö6 (A�×Aò Aà¯A°×ö6 (AÐØAò Aà¯AðØö6 (A€ÚAò AàûA Úö6 (A ÛAò AàÜAÐÛö6 (#~6 (#6 $ÛA,A¦˜!AAɘ" 6  ž  6 A,6 A 6 (AA«˜"A6 A6 A6 A6 A6 A€Æ6 A í6 AÀÁÀ6 #Ñ6 A°ÂÀ6 6 (AA«˜"A6 A6 A6 A6 A6 AÐÂÀ6 AðÂÀ6 A�ÃÀ6 #Ò6 A�ÄÀ6 6 (AA«˜"A6 A6 A6 A6 A6 A°ÄÀ6 AÐÄÀ6 AðÄÀ6 #Ó6 A€ÆÀ6 6 (AA«˜"A6 A6 A6 A6 A6 A ÆÀ6 AÀÆÀ6 AàÆÀ6 #Ô6 AðÇÀ6 6 (AA«˜"A6 A6 A6 A6 A6 AÐè&6 A�ÈÀ6 A°ÈÀ6 #Õ6 A°ÉÀ6 6 (AA«˜"A6 A6 A6 A6 A6 AÐÉÀ6 AðÉÀ6 A�ÊÀ6 #Ö6 A�ËÀ6 6 (AA«˜"A6 A6 A6 A6 A6 A°³6 A°ËÀ6 AÐËÀ6 #×6 AðÌÀ6 6 (AA«˜"A6 A6 A6 A6 A6 A�ÍÀ6 AÀÍÀ6 AðÍÀ6 #Ø6 AàÎÀ6 6 (AA«˜"A6 A6 A6 A6 A6 A€ÏÀ6 A°ÏÀ6 AàÏÀ6 #Ù6 AÐÐÀ6 6 (AA«˜"A6 A6 A6 A6 A6 A�¥6 AðÐÀ6 A�ÑÀ6 #Ú6 A ÒÀ6 6$ (AA«˜"A6 A6 A6 A6 A6 Aðý6 AÀÒÀ6 AðÒÀ6 #Û6 AðÓÀ6 6( $›Að©Að¨ÂA�¨Â$‰A°«A�¨Â$ŠA°­Aà¬ÂA�¨Â$‹Að®A�¨Â$ŒA€°A�¨Â$�A°²AÀ±ÂA�¨Â$ŽAдAð³Â$�A°·A�¶ÂAð³Â$�A€ºA A «ÂA€¹ÂAð³Â$‘Aà¼A »ÂAð³Â$’Aà¾A°¾ÂAð³Â$“AðÀA°ÀÂAð³Â$”A ÞA ÝÂAÀÜÂ$ãAÐáAðßÂAÀÜÂ$äA ãAÀÜÂ$åAàåAÀäÂAÀÜÂ$æA�èA°çÂAÀÜÂ$çA°êAàéÂ$èA ìAÐëÂAàéÂ$éA€ïA°îÂAàíÂ$êA òA°ðÂAàíÂ$ëAàóAàíÂ$ìAàôAàíÂ$íA°÷AÀöÂAðõÂ$îA°úAðøÂAðõÂ$ïA�üAàûÂAðõÂ$ðAðýAÀýÂAðõÂ$ñA°ÿAðõÂ$òA€�A°€ÂAðõÂ$óAðƒA�ƒÂAÀ‚Â$ôAÐ…A�ÎA «ÂA°…ÂAÀ‚Â$õAІAÀ‚Â$öAàˆAà‡ÂAÀ‚Â$÷A€‹A�ŠÂAÀ‚Â$øA ŒAÀ‚Â$ùAÐ�AÀ‚Â$úA€�A€�ÂAÀ‚Â$ûA�’A�‘ÂAÀ‚Â$üAà”A°“ÂAÀ‚Â$ýAà–A�–Â$þA ˜A�–Â$ÿAЙA�–Â$€AÀšA�–Â$�Aà›A�–Â$‚A �A�–Â$ƒAÀžA�–Â$„AàŸA�–Â$…A€¢A€¡ÂA�–Â$†A�¤AУÂA�–Â$‡AÀ¦AÀ¥ÂA�–Â$ˆAìAј"AÀ�Aìü $ÊA(Aј"AðûA(ü $ÉAAј"AȪAü $ÌAAј"A°©Aü $äAAј"AȦýý $ãAAј"A¸„ýý $âA Aј"A°ƒA ü $ËAüAÙ˜"A: A6 A6 A6 AAÕ˜"A6  6AAÖ˜"A6  6AAÖ˜"A6  6AAÕ˜"A6  6AAÕ˜"A6  6 AAÕ˜"A6  6$AAÕ˜"A6  6(AAÕ˜"A6  6,AAÕ˜"A6  60AAÕ˜"A6  64AAÕ˜"A6  68AAÕ˜"A6  6$³CPwV>$´C’ ?$µCófß>$¶Cóf_?$·C¸2?$¸Cófß>$¹C¸²>$ºC’ †?$™A.StateMachineFireTrigger0pA¸1 %StateTransitionAè1 ' BlendAnimation1DA˜2 /(BlendAnimationDirectAØ2 1*CubicEaseInterpolatorA˜3 3,CubicValueInterpolatorAØ3 -&ElasticInterpolatorA˜4 ?8TransitionViewModelConditionAè4 ?8TransitionComponentConditionA¸5 92TransitionNumberConditionAˆ6 5.TransitionBoolConditionAÈ6 R4TransitionTriggerCondition pÀPA¨7 WP format writes the version a file needs)Aˆ8 ?8write format="2" on <rscn> (AØ8 ƒ| build <scene> --pack`) rather than editing its embedded filesAè9 5.pack the scene again (`AØ: OHwrites one from the model's commandsA¸; C< model x.rmdlcmd --to x.rmdl` Aˆ< slan .rmdl is the model format (docs/formats/RMDL.md); `Aˆ= STRSA¨= VALSAÈ= EXTRAè= SUBRAˆ> NODEA¨> ITEMAÈ> BINDAè> CONNAˆ? EMBDA¨? ORDRAÈ? FIDLAè? ASSTAˆÀ SRCSA¨À ANIMAÈÀ STMCAèÀ BNDSAˆÁ ¿¸write it again from its .rscn (a copy that changed line ends or was cut short does not read)AØÂ ]V format --binary` or the editor's Save As: AÈà 70a .rscnb is written by `AˆÄ ›”never edited; docs/formats/RSCN.md, "Self-contained scenes", is its formatA¸Å _X build`): a built scene is read as written, A¨Æ 70build the scene again (`AèÆ �ˆ bake <scene>`); the format is docs/formats/RSCN.md "LightmapGIData"AˆÈ 5.bake the scene again (`AÈÉ ™’ bake <scene>`); the format is docs/formats/RSCN.md "ReflectionProbeData"AøÊ ©¢ bake --occluders <scene>`); the format is docs/formats/RSCN.md "ArrayOccluder3D"A¸Ì =6bake the occluders again (`AˆÍ timeoutA˜Î 92loading/frame_budget_msecAèÎ .webAˆÏ 3,loading/verify_sourcesAÈÏ 3,memory/keep_cpu_copiesAˆÐ /(export/embed_sourcesAÈÐ 1*debug/print_resourcesA¸Õ 1 , AôÕ I AìÖ MAØ× ô AˆØ 1*, "Artboard textures"AÈØ 92docs/formats/MATERIALS.mdA˜Ù base_colorAÈÙ  color3AèÙ 1, 1, 1AˆÚ metallicA¨Ú  floatAÈÚ 1AèÚ roughnessA˜Û  normalA¸Û vector3AØÛ tangentAøÛ occlusionA¨Ü transmissionAØÜ 0AøÜ specularA˜Ý #specular_colorAÈÝ iorAèÝ 1.5AˆÞ  alphaA¨Þ alpha_modeAØÞ integerAøÞ alpha_cutoffA¨ß 0.5AÈß iridescenceAøß %iridescence_iorA¨à 1.3AÈà 1*iridescence_thicknessAˆá 100A¨á sheen_colorAØá 0, 0, 0Aøá %sheen_roughnessA¨â clearcoatAØâ -&clearcoat_roughnessA˜ã ' clearcoat_normalAÈã emissiveAèã )"emissive_strengthA¨ä thicknessAØä /(attenuation_distanceA˜å )"attenuation_colorAØå -&anisotropy_strengthA˜æ -&anisotropy_rotationAØæ dispersionAˆç +$base_color_textureAÈç %gltf_colorimageAøç multioutputA¨è ' metallic_textureAØè gltf_imageAˆé )"roughness_textureAÈé #normal_textureAøé #gltf_normalmapA¨ê )"occlusion_textureAèê ' emissive_textureA˜ë )"clearcoat_textureAØë =6clearcoat_roughness_textureA¨ì 70clearcoat_normal_textureAèì -&sheen_color_textureA¨í 5.sheen_roughness_textureAèí  color4Aˆî ' specular_textureA¸î 3,specular_color_textureAøî /(transmission_textureA¸ï )"thickness_textureAøï -&iridescence_textureA¸ð A:iridescence_thickness_textureAˆñ ;4gltf_iridescence_thicknessAØñ +$anisotropy_textureA˜ò 1*gltf_anisotropy_imageAØò ?8diffuse_transmission_textureA¨ó /(diffuse_transmissionAèó KDdiffuse_transmission_color_textureAÈô ;4diffuse_transmission_colorA˜õ operationAÈõ differenceAøõ  unionA˜ö *intersectÐ:; ;AØö ¡šdifference cuts the object away, union merges it, intersect keeps the overlapAˆø  objectA¨ø noneAÈø =6the mesh object to cut withA˜ù  solverA¸ù fastAØù  exactÀ<à<Aˆú }vonly `fast` is implemented, and `exact` runs it and says soA˜û )"self-intersectionAØû  falseAøû ‹„ignored, because the solver does not resolve a mesh against itselfA˜ý !hole-tolerantAÈý ]Vignored, because both inputs must be closedA¸þ !material-modeAèþ  indexAˆÿ transferp?�?A¸ÿ ¥žindex keeps each side's own material slot, transfer gives the cut this object'sAè€  shapeAˆ�  sphereA¨� cylinderAÈ� " cuboid�@°@Ð@Aø� 92the shape to cast towardsAÈ‚  factorAè‚ {t0 leaves the mesh alone, 1 lands every vertex on the shapeAøƒ  radiusA˜„ �–only vertices within this distance of the centre are cast (0 = all of them)AÈ… sizeAè… xsize of the target shape (0 = the mesh's own average radius)Aø†  x,y,zA˜‡ MFrestrict the movement to these axesAø‡ !use-transformA¨ˆ …~cast about the object's origin instead of the mesh's own centreA¸‰ vertex-groupAè‰ qjlimit the effect to this vertex group, weighted by itAèŠ -&invert-vertex-groupA¨‹ G@use one minus the group's weightAø‹ modeA˜Œ collapseA¸Œ un-subdivideAèŒ " planar F@FpFA˜� ¯¨collapse takes a ratio, un-subdivide halves the loops, planar merges flat neighboursAØŽ  ratioAøŽ mfin collapse mode, the fraction of the faces to keepAø� iterationsA¨� unin un-subdivide mode, how many times to halve the loopsA¨‘ angle-limitAØ‘ 5Aø‘ ‘Šin planar mode, neighbours whose normals agree within this are mergedA˜“ !symmetry-axisAÈ“ xAè“ ‡€in collapse mode, the mirror axis used when --use-symmetry is onAø” use-symmetryA¨• ‰‚in collapse mode, keep the result symmetric about --symmetry-axisAÈ– directionAø– yA˜— zA¸— * customÐI€K K -ÀKAø— ¥ždisplace along this axis, the vertex normal, or `custom` for --custom-directionA¨™ strengthAÈ™ MFhow far a value of 1 moves a vertexA¨š midlevelAÈš }vthe value that does not move; below it vertices move inwardAØ› attributeAˆœ ™’a point attribute read as the displacement value (Blender's texture slot)A¸� ' custom-directionAè�  0 0 1Aˆž aZthe direction used when --direction is customAøž armatureÀD€OA¨Ÿ ¡šmask by one vertex group, or by every group named after a bone of an armatureAØ  UNin vertex-group mode, the group to keepA¸¡ ‹„in armature mode, the armature whose bones name the groups to keepAØ¢ thresholdAˆ£ sla vertex counts as masked when its weight reaches thisAˆ¤  invertA¨¤ OHkeep what would otherwise be removedAˆ¥  smoothA¨¥ ‡€ignored, because a smooth transition needs interpolated geometryA¸¦  blocksAئ  sharpAø¦ & voxel@S�R`S€SA¨§ ­¦blocks keeps the cubes, smooth and sharp relax them, voxel sizes the grid by lengthAè¨ octree-depthA˜© 4A¸© ‘Šoutside voxel mode, the grid is 2^depth cells across the longest sideAت voxel-sizeAˆ« 0.1A¨« [Tin voxel mode, the edge length of one cellA˜¬ adaptivityAȬ ©¢collapse the result afterwards, keeping this fraction of the faces (0 = keep all)Aˆ® #smooth-shadingA¸® WPmark the faces it makes as smooth-shadedA˜¯ -&remove-disconnectedAد trueAø¯ QJkeep only the largest connected pieceAذ ;4the axis to revolve aroundA¨±  angleAȱ 360Aè± 3,how far round to sweepA¨²  stepsAȲ 16Aè² 1*segments in one sweepA¨³  screwAȳ ohhow far to advance along the axis over one full turnAÈ´ SLhow many turns to repeat, for a threadA¨µ  mergeAȵ unweld the last ring onto the first when the sweep closesAȶ %merge-thresholdAø¶  0.001A˜· g`how close counts as the same vertex when mergingAˆ¸ flipA¨¸ ;4turn the result inside outAø¸  targetA˜¹ ?8the mesh object to wrap ontoAè¹ 1*nearest-surface-pointA¨º projectAȺ 2nearest-vertexð\0]P]Aˆ» [Thow a vertex finds its place on the targetAø»  offsetA˜¼ slkeep this distance above the surface, along its normalA˜½ «¤cast along these axes when projecting, or along the vertex normal when none is setAؾ negativeAø¾ qjwhen projecting, allow hits in the negative directionAø¿ positiveA˜À qjwhen projecting, allow hits in the positive directionA˜Á ' invert-face-cullAÈÁ Ÿ˜ignored when projecting, because both faces of the target are hit either wayAøÂ  twistA˜Ã bendA¸Ã  taperAØÃ &stretch€a aÀaàaAˆÄ ;4which deformation to applyAØÄ 45AøÄ ‡€in twist and bend modes, how far to turn over the deformed rangeAˆÆ {tin taper and stretch modes, how much to narrow or lengthenA˜Ç ‘Šthe axis the deformation turns about; bend wraps the extent across itA¸È limit-lowerAèÈ {tstart of the deformed range, 0 to 1 of the extent it readsAøÉ limit-upperA¨Ê wpend of the deformed range, 0 to 1 of the extent it readsA¨Ë  simpleAÈË &laplacian°eÐeAøË ­¦simple averages neighbours, laplacian weights them by cotangent and keeps the shapeA¸Í § in simple mode, how far towards the neighbour average each repeat moves a vertexAèÎ  lambdaAˆÏ 0.01A¨Ï {tin laplacian mode, the step size (Blender's lambda_factor)A¸Ð !lambda-borderAèÐ kdin laplacian mode, the step size on boundary edgesAèÑ G@how many smoothing passes to runA¸Ò %preserve-volumeAèÒ ‹„in laplacian mode, rescale afterwards so the shape does not shrinkAˆÔ 0.02A¨Ô 1*how thick each bar isAèÔ ‰‚-1 puts the bar inside the original surface, 1 outside, 0 centredAˆÖ boundaryA¨Ö UNmake bars along open boundary edges tooAˆ× replaceA¨× �†throw the original faces away (off keeps them inside the wireframe)AÈØ evenAèØ yrkeep the thickness even where edges meet at a sharp angleAøÙ relativeA˜Ú mfscale each bar by the length of the edge it followsA˜Û %material-offsetAÈÛ g`add this to the material slot of every face madeA¸Ü KDdocs/formats/RSCN.md "Interaction"A˜Ý ohmake it a child of an Area3D or a StaticBody3D; see A˜Þ žCollisionShape3D only serves to provide a collision shape to a CollisionObject3D derived node: Aèß ÍÆSphereShape3D, CapsuleShape3D, CylinderShape3D, ConvexPolygonShape3D or ConcavePolygonShape3D; see AÈá »´a shape must be provided for CollisionShape3D to function: set its shape to a BoxShape3D, A˜ã •Žconsider adding a CollisionShape3D as a child to define its shape; see A¸ä ‰‚all axes) and change the size of the shape resource instead; see AØå üGodot handles a non-uniformly scaled shape approximately: make the scale uniform (the same on A¨ç MFSibling makes one from a mesh; see Aˆè ža convex shape needs four points or more, not all in one plane; Create Single Convex Collision AØé ?8docs/formats/RSCN.md "Paths"A¨ê ‹„PathFollow3D only works when set as a child of a Path3D node; see AÈë A:Path3D's Curve resource; see A˜ì «¤PathFollow3D's ROTATION_ORIENTED requires "Up Vector" to be enabled in its parent AØí A:docs/formats/RSCN.md "Decals"A¨î C<therefore not be visible; see Aøî £œThe decal has no textures loaded into any of its texture properties, and will A¨ð ÛÔonto the underlying surface. If you don't want the Albedo texture to be visible, set Albedo Mix to 0; see A˜ò ©¢An Albedo texture with an alpha channel is required to blend the normal/ORM maps AØó unenable at least one bit in the Cull Mask property; see AØô ƒ|size is the decal's box in metres, above 0 on every axis; see Aèõ G@docs/formats/RSCN.md "Viewports"A¸ö YRthe scene that declares the texture; see A¨÷ ¯¨Path to node is empty: set viewport_path to the SubViewport's path from the root of Aèø ·°instance shows the first one's: declare the texture in the scene that instances it; see A¨ú £œGodot makes a ViewportTexture local to each instance of its scene; here every AØû %occlusion; see Aˆü ¥ža viewport is live in albedo, emission, normal, metallic, roughness or ambient A¸ý first; see Aèý «¤add a Camera3D under it: it looks through the first one with current on, else the A¨ÿ slsize is the picture's width and height in pixels; see A¨€ A:mesh's material instead; see Aø€ ©¢a panorama is read on the CPU once, so it cannot be live; show the viewport on a A¸‚ G@docs/formats/RSCN.md "Particles"Aˆƒ QJbillboard material, or any mesh; see Aèƒ ¯¨Nothing is visible because no mesh has been assigned. Set mesh to a QuadMesh with a A¨…  ; see AÈ… qjamount is how many particles one emitter keeps, 1 to AȆ ‡€lifetime is each particle's life in seconds, at least 0.01; see A؇ wpNode), or name a mesh node in emission_points_from; see A؈ £œset emission_points (the editor's Particles menu: Create Emission Points From AˆŠ c\ModelInstance3D whose mesh has triangles; see AøŠ •Žemission_points_from is a path from the emitter to a MeshInstance3D or A˜Œ § Godot uses emission_normals only when there is one for each emission point; see AÈ� ¥žGodot uses emission_colors only when there is one for each emission point; see AøŽ unvertex_color_use_as_albedo on the mesh's material; see Aø� …~a particle's colour reaches its mesh as the vertex colour: set Aˆ‘ slbillboard_keep_scale, as Godot's shader draws it; see Aˆ’ ‰‚a billboard is drawn at its mesh's size unless its material sets A¨“ Ÿ˜material to a CPUParticles3D's mesh, or set billboard_mode to disabled; see AØ” § billboards are turned to the camera with a CPUParticles3D's particles; give the Aˆ– ?8docs/formats/RSCN.md "Audio"AØ– ©¢set its stream to an AudioStream ext_resource of a .wav, .mp3 or .flac file; see A˜˜ Ÿ˜the runtime plays every sound at its own speed: leave pitch_scale at 1; see AÈ™ [Tset doppler_tracking to disabled (0); see A¸š �†the runtime mixes every sound together: leave bus at "Master"; see AØ› ©¢leave attenuation_filter_cutoff_hz at 5000 and attenuation_filter_db at -24; see A˜� �ˆmax_polyphony is how many of its playbacks may overlap, 1 to 8; see A¸ž —�use a WAV stream to hear where it is, or set panning_strength to 0; see AØŸ —�set its import's loop to forward (edit/loop_mode=2 in the .import); see Aø  slloop_offset below the length for an MP3 or FLAC); see Aø¡ ¿¸set its import's loop start inside the loop (edit/loop_begin below edit/loop_end for a WAV, AÈ£ /(0.05 s or more; see Aˆ¤ ™’loop a longer stretch: repeat the cycle in the file until its loop lasts A¸¥ wpcurrent as it enters): clear current on the others; see A¸¦ žonly the last current AudioListener3D in tree order hears the scene (as in Godot, each is made Aˆ¨ WPdocs/formats/RSCN.md "Occlusion culling"Aè¨ ibor bake one: hedra bake --occluders <scene>; see Aè© ·°set occluder to a BoxOccluder3D, SphereOccluder3D, QuadOccluder3D or PolygonOccluder3D, A¨« �–enable at least one bit in bake_mask (the visual layers a bake reads); see Aج ;4vertices and indices; see A¨­ ³¬bake the occluder again (hedra bake --occluders <scene>), or give the ArrayOccluder3D Aè® xgive the PolygonOccluder3D's polygon at least 3 points; see Aø¯ ³¬list the polygon's points in order round its outline, so that no two edges cross; see A¸± ]Vtriangle, each below its vertex count; see A¨² ³¬bake the occluder again (hedra bake --occluders <scene>), or make its indices three a Aè³ IBdocs/formats/RSCN.md "Navigation"AÈ´ ±ªgive it a NavigationMesh sub_resource and bake it: hedra bake --navmesh <scene>; see Aˆ¶ ‰‚NavigationMesh), or write its vertices and polygons by hand; see A¨· žbake it from the geometry under the region (hedra bake --navmesh <scene>, or the editor's Bake Aø¸ sl indices of its vertices, round a convex outline; see Aø¹ —�bake it again (hedra bake --navmesh <scene>), or make each polygon 3 to A˜» ±ªhedra.yaml (navigation/3d/default_cell_size, navigation/3d/default_cell_height); see Aؼ »´bake the mesh with the map's cell_size and cell_height, or set the map's to the mesh's in A¨¾ ' hedra.yaml; see Aؾ ÇÀmove the end onto the navigation mesh, or raise navigation/3d/default_link_connection_radius in A¨À 1*Godot's default; see AèÀ Áºwrite a number above 0 (true or false for navigation/3d/use_edge_connections); the map keeps A¸Â OH0123456789abcdefghijklmnopqrstuvwxyzA˜Ã — 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899A¸Î Ànƒù¢ÑW'ü)DN™•bÛÀÝ4õ«cQþA�C<:n$·aÅ»Þê.IàÒMBëþ’Ñ õ5‚è>§)±&pœé„D».9Ö‘9A~_´‹_„œô9Sƒÿ—ø;(ù½‹/ï˜ÞÏ~6mm Zf?FO· Ë'Ǻ'u-ê_ž÷9={ñåë±_ûkê’RŠF0V]� ¼Ïð«k{üa‘ã©6ôš_…™eæ^€Øÿ�@h W1'sMAˆÐ &Q A¸Ð D�< !1Aa�Á�  0@`AˆÑ QA˜Ñ A¸Ñ B�: #+3;CScsƒ£ÃãAˆÒ /A¨Ò AÈÒ )"scripts/camera.asAˆÓ ChaseCameraA¸Ó Ö AØÓ Ö AøÓ -&scripts/daylight.asA¸Ô DaylightAØÔ Ö AøÔ Ö A˜Õ /(scripts/fx_course.asAØÕ CourseFxAøÕ Ö A˜Ö Ö A¸Ö #scripts/run.asAèÖ RunAˆ× Ö A¨× Ö AÈ× ' scripts/sound.asAø×  SoundA˜Ø Ö A¸Ø Ö AØØ %Snapshot.createAˆÙ ïèjobs cannot create shared memory, nor can audio processors; create it on the main lane or in a worker and pass it inAˆÛ QJa shared object holds from 1 byte to AèÛ : AˆÜ ¡š: every shared memory id is taken; release shared objects once done with themA¸Ý «¤: no memory is left for shared objects; release shared objects once done with themAøÞ óìa script keeps at most 65536 shared objects at once, a ring counting three; release shared objects once done with themAøà  MBA˜á Ring.createAÈá printEveryAøá I"lastRestartFramesAØâ  cursorAøâ  lastSA˜ã  shownA¸ã Ö AØã Ö Aøã Ö A˜ä hedra_engineAÈä 92PowerVR,Mali,Adreno,AppleA˜å  sourceA¸å !hedra_engine/Aèå  scaleAˆæ gxA¨æ gyAÈæ dataAèæ uiAˆç  phaseA¨ç  pausedAÈç demoAèç startSeqAˆè restartSeqA¸è  schemeAØè uiMoveSeqAˆé uiSelectSeqA¸é uiBackSeqAèé initialsInA˜ê %initialsDoneSeqAÈê initialsCodeAøê  deviceA˜ë pauseSelA¸ë pauseGoAØë pauseLeftAˆì pauseRightA¸ì pauseBackAèì ini0Aˆí ini1A¨í ini2AÈí iniCursorAøí iniDoneA˜î iniText0A¸î iniText1AØî iniText2Aøî padXA˜ï padYA¸ï padButtonsAèï trickSpinA˜ð trickDirA¸ð trickFlipAèð trickGrab1A˜ñ trickGrab2AÈñ trickSwitchAøñ trickGrindA¨ò trickPointsAØò  praiseAøò comboSumA˜ó comboMultAÈó captionLineAøó captionSeqA¨ô resTotalAÈô resBestComboAøô !resLongestAirA¨õ  riderXAÈõ  riderYAèõ trickTextA˜ö trickPtsA¸ö praiseTextAèö comboTextA˜÷ captionTextAÈ÷ totalTextAø÷ bestTextA˜ø airTextA¸ø schemeNameAèø balXAˆù balYA¨ù +AÈù  NICE!Aèù  SICK!Aˆú RADICAL!A¨ú INSANE!AÈú UNREAL!Aèú SKETCHY...A˜û  OUCH!A¸û WIPEOUT!AØû > BAIL!мð¼½0½P½p½ ½À½à½A¨ü  x AÈü  THREE!Aèü TWO!Aˆý ONE!A¨ý GO!AÈý READY...Aèý PERFECT!Aˆþ HIGH LINE!A¸þ LOW LINE!Aèþ FINAL JUMP!A˜ÿ AWESOME!A¸ÿ S RANK!AØÿ A RANK!Aøÿ B RANK!A˜€ C RANK!A¸€ NEW RECORD!Aè€  COMBO!Aˆ�  YEAH!A¨� ‚ NASTY!P¾p¾�¾°¾Ð¾Ð¼ð¼½0½P½ð¾p½ ½À½à½¿@¿p¿ ¿À¿à¿À À@ÀpÀ�À°ÀA¸‚ SAØ‚ HOT PINKAø‚ ACIDA˜ƒ " BLAZE`Á€Á ÁAȃ ---Aèƒ CAˆ„ BA¨„ AðÁÂ0Â@ÁAØ„ HAø„ LA˜… !A¸…  AØ… Aø… A˜† A¸† A؆ Aø† A˜‡ A¸‡ A؇  Aø‡  A˜ˆ  A¸ˆ  A؈  Aøˆ A˜‰ A¸‰ A؉ Aø‰ A˜Š A¸Š AØŠ AøŠ A˜‹ A¸‹ AØ‹ Aø‹ A˜Œ A¸Œ AØŒ AøŒ A˜� A¸� "AØ� #Aø� $A˜Ž %A¸Ž &AØŽ 'AøŽ (A˜� )A¸� *AØ� ,Aø� -A˜� .A¸� 2AØ� 3Aø� 6A˜‘ 7A¸‘ 8AØ‘ 9Aø‘ :A˜’ ;A¸’ <AØ’ =Aø’ >A˜“ ?A¸“ @AØ“ DAø“ EA˜” FA¸” GAØ” IAø” JA˜• KA¸• MAØ• NAø• OA˜– PA¸– QAØ– RAø– TA˜— UA¸— VAØ— WAø— XA˜˜ YA¸˜ ZAؘ [Aø˜ \A˜™ ]A¸™ ^AØ™ _Aø™ `A˜š aA¸š bAØš cAøš dA˜› eA¸› fAØ› gAø› hA˜œ iA¸œ jAØœ kAøœ lA˜� mA¸� nAØ� oAø� pA˜ž qA¸ž rAØž sAøž tA˜Ÿ uA¸Ÿ vAØŸ wAøŸ {A˜  |A¸  }AØ  ~Aø  ŽàÂ0©Ã Ã@Ã`ÀàÃÀÃàÃÄ Ä@Ä`ĀĠÄÀÄàÄÅ Å@Å`ŀŠÅÀÅàÅÆ Æ@Æ`ƀƠÆÀ ÂÀÆàÆÇ Ç@Ç`ǀǠÇÀǰ¼àÇÈ È©`.P-@È`È TàH€È ÈÀÈàÈÉ É@É`ɀɠÉÀÉ0ÂÂðÁàÉÊ Ê@Ê`Â`ʀʠʀÂÀÊàÊË Ë@Ë`Ë@Á€Ë ËÀËàËÌ Ì@Ì`̠̀ÌÀÌàÌÍ Í@Í`̀͠ÍÀÍàÍÎ Î@Î`΀ΠÎÀÎàÎÏ Ï@Ï`πϠÏÀÏàÏÐI€K KÐ Ð@Ð`ЀÐA˜¥ KINKED A¸¥ RAINBOW AØ¥  50-50Aø¥ BOARDSLIDEA¨¦ .LOG SLIDEàÒÓ0ÓAè¦  GRINDAˆ§  SWITCHA¨§ FRONTSIDEAا BACKSIDEAø§ FRONT FLIPA¨¨ BACKFLIPAȨ )"DOUBLE FRONT FLIPAˆ© :DOUBLE BACKFLIPÔ0ÔPÔ�ÔAØ© INDYAø©  MELONA˜ª  METHODA¸ª "MUTEàÔÕ Õ@ÕAèª TO Aˆ« AIRA¨«  ScoreAÈ« hsAè« TagAˆ¬ NameA¨¬ PtsAȬ  GradeAè¬ LineAˆ­ %,"errors_more":A¸­ ,"errors":[Aè­ !,"triangles":A˜® ,"textures":AÈ® ,"gpu":Aè® #,"printed_at":A˜¯ ,"printed":Aȯ ,"drawn":Aø¯ KD,"scripts":0,"ready":0,"process":0Aذ ,"nodes":Aˆ± ,"unbuilt":A¸± ,"source":Aè± ,"scene":A˜² ,"time":A¸² {"frames":Aè² 0.Aˆ³ Ç`AŸ³ Ñ* š™™™™™™™™™™™™™™®Gáz®Gáz®GázÞ$�•C‹lçû©ñÒMb–Ô h"lxz¥,Cëâ6«Cn†ðùa„ðh㈵ø"6X8IóÇ´6�íµ ÷Æj#�ÀR¦‡WH¯¼šò׈O×f¥A¸Ÿß9Œ0âŽy¦Q-æ²”Ö&è .¤ QË�h®Ö·º½×Ùß|ê:§¢4íñÞ_•dyáý»È…èöð'ê-�™—ø Ö@¾´ eÂ�vIhÂ%“qÞ3˜�pê›+¡†›„CÁ~)à¦ó!›V瞯751Í×…i+¼‰Ø—²Òù�Z?×ß7!‰–ÔFFõúsHÌEæ_ç «CÒÑ]r]† z<=f¥4¬Ò¶OɃ±ž×”c—Q]#B’ ¡œÁKyÝ‚ß~Ú}O› ´ãh¬[bјd*–å^ 9Sðâ�§à¶îDQ²@³-©&OÎRM’Xj§Ž¨™ÂWA¤~°·{P'ªØ}ÚõÐò4PeÀ_ɦR»Ë®Ä@Â�¦ê™LÔëÉ<ò6šÎ€ íSy±A`P¾ö°gt‹Ü-ÁgG³¦þ^ZR )5o°$4†ŸÂëþKHÛî�òY�žh‰eÖ9_)°´ÃûL—2§¨Õ#ö²ºY]±5–=¬[ºwéÄ(bá}'^«—VILû’‡� �hÉØÉ«òðzø·¥•>º:z¡¼[Zr.-“„DËEû.Èʯ®Ž‹ŠB�E ’±¦÷ܲJäxª�û8¡AÁë’}õnƒ-U±/Ç´gg‰udÄXœWw'&lÒì¥ØÛˆmmôÆ%ò =àÛ#ëF¾ŠÃ8(£ýLI¶UÒlþnœ`KSO1׊ï¶O—±`gE…‚‹¥¡¿ør¬'¹j7­ÖN™`ÂrV¹á`U,$ÎD•ÂÍWõ5λmã:«« ¬*+Ø/vŠObV‰4o༻UóÄn µ‰¨í±ÐÌÇ’ï¸ÔJzîºWŽ@ ÓÛòK“oûñÈßqÕ¨|õoÚXü'Ö fé3»§ú»L²)Ž`¦ׄ‡)üR•É£ŽT …¬ÐҺɨªƒØvo®�ã¬^ÜÚÝ¥ÑÀW²°bOŠHKK°H~QAš¬ŽÀÙ¡ÓÕÕYmËÚÍáV¥3{�Üw{W<â×ç«êÂ*Ï`Y‚^òÆ6&¦¬ª¶»¥€GhõkÅQëVU�‘–„íy*#ѧ"ßÝ}tV4£á�ÝÑ� Ñ1–üSElöèsä§4=§ôDýžVøSâ(S]—R]j—ÙbW�¹Ûaë.òP•¿õèE¤ÇÏHN¼X[Úݦe‘ kƒlÙÓqc­âáAÍŸ­(†ŸHódc› Û¾Sk°å�5�é¢GˉóêkJ‘rä «7¼qxLÛ¸DFª„mE_cÁÆÖÇUI¾š�éÍkEÞ867wiþ®ÁAF¢cÁVXXr—±òÎg«Ñ�ßyõqŽ(¥ìUAÎ4aÜ�Á؆nGV5}$ eÇçh䌤%9x÷0€êl¹ ×¶„ú,ùó°™»4#aM¬ø9÷G(SN\_T8hò¬Z.,Ó¹u }C`SD[ŠHX#ÜÇ÷Õ0™Ï©6|;m&ÒùrŒ‰´Ž²�ñù+¸A.�£*r(¦ ôǼÝúš¾¥O9»Á†Ö\—äö÷0 Â^œ×0ðúÖ$Ôø_ZhåIy�&/߃v`æá QnÇ R¿åÏ^…�Ñ €Úño™„ÙKõÔh‚ÄOÖäãô õ+wíª™iÙ·÷³÷ۼŊˆî­t’°Å\ù¯, Þh¦í|ITê€o”(³$ÔäS¸WÊ:Uš¿v \ƒvC`y;bsª®ÿ^€ž½ÈÑfõ+�¸±2Ë3WdmARļ}` ôŽ¢\ß̶ŠgÛiýÊæ=ÃØN}ߊwrÅ/«×/Žä.ÿ€Õ’[sòˆ¬Œj>¿efDBIÐ(õÓV=U˜Jÿ꣠BMAˆ¹W•»ó2«éæh×Í9aywüÂ@[ïTR yqaç-ùÉhÍY†P�™Žµh¥|[vtV[Ò¦Já>‘ QýÅöÝD|¢ÿ@M§ÊD7’±ÐÉJËi÷dή nXPO´;<îÅPØ‹<§ñys?� ÉÉñ7Úy Ê…ôÇÂ2@=ÛBé¿ö¨©oº ž·fÈ㛺Ì+ÏS!&•p~,R ‚I•p‰r©¸Ý&eðt³�uˆ„u÷Œ/>燅^ {r6‘_ &˜ìŸ7ßä–[ø@Õ„Fð,LêG«¯Æá7ÑŒ™#GÝ?EL¤gÎç$Õ´G�Ò±Ì�ÖéRØ·Ýßr¨8' KEîÛy,~i†YØ©¢ã_)�F0�6qz»§�³º¥kóØØ^'/©•ìšã(bQ‰�­àKìuïà÷8�èL¯š¬y*Y“-ذSrÖ%âV©.UGH¾y�ÜÁÞ·�ET|» Ú~–�”œ—ŒÏº—/Öÿ¦wv°ßÖrm.yŒÞCÿ§Qù‘ó²xõ½¾Ž­ýÒþ?Âì·Z"cdØŠdB23°ð_µµ¶F¢ƒ›ŽÂY¬YæÝ�Ä+£9_öά£üÔƒœ-L¬i^r½›ÊHCBœãŠÖ‰Tõýâi›Æ«½T�î/kñ ØtÅk"þrv×¾Œ"ÁpF*ѼNË(ÅÿÖNg�k»  ù}xt;QË$~Ø{_|Maþù)É ·1­üAc �Ë”!Ô× Å'$Ê4Ì‚wÎxTϹ¿go mC!­7ùq-Ý¥”ÌYpŠÏMWùÇô½}QÝÖzó¡?>¬ú î/Éè.¾ÿøœ2ýy÷Ö$ó  ¿1f6úÂýÇ’x\Ì'¸^û«Ëlu`ä|{® S“ɼg¢ð]™ ”ŰBëôt”?jç/áæv'‰å\*Ý2ˆóçë+�…Π·°î°( ÂØßßaoJY´JNt3ÌЭLæç%ÕÍà)¢>��ÖsñÖQ†QwqMî´ËÙrx)èWéÖè¾è{°T¬�„�u !ßS2ºüY݉ j¤÷€BçC(Èc®Jnpîé’fjØ'8 JCë!­ì,¤=ktn{œ~VNW½ðþˆÛ\XüAãþ#J%b´”–A_a�`6ËéÔè)ª«gç=MøÐ‡Ý »!V¹2¹d×ùsm¥•Œf+i#ÂêÁ:òÂì{ÞÖ‰º‚λ4b[W–ßKb5¥üö´â¬ÞYódyØœˆ;”ñ‡761áõƒÇFJmüÜZÆ‘B'+ŸnW0¯žÑ§›R�ÞÑ<Ë}%%1¦’ê@å§0<þH·yZㄨ»Q†ÀÉ1KÓÅÇ®‚�SÉÍ´£ÍBéR ¦ÑÈ…¨¤�>!Ût¸ß@:žSP JË´÷`gûäB§  ›)Þø7³zRüƒ5×Ý ¨‘B0ŽY¸*·“9ïK �>áùîøBa¿<€>›=eçÇXú›™ä, døÈn¥ Ž�ù�Žê#¤™éùÓ‹·£q@aÚ>»PẔ©<ù‚ô™ÿ+a³›ÄºuÇŽÑ Ã]»1‰)j•ÄÒ çh±bÁ¡{ºˆwÐÛo>‡'‚g›’]@¿€,æc˜>?ÐØIuäI3Ì3½Q¶Feÿ GÔ]Pn�Ö�ʧ^QÌpÒSɳãKWDÙýnN­çƒ©:ö‚ yGá—%¥ŠìϺûÄhÔ`lÏ€y„ênð?*ù‡4zåšõÓK3"”9 l�.Qâ*CÚ\µ©ÇÕ¼¦‹Ú�UÏáÓ°‡Ù".qß�œUåS�æl O‹ZLÚÞϨšëŠ£©¥¢{£®x~±¥ â"©©¢j_Ò}'—µ¢š6žTÑ ‚ˆÛ—¬÷N’~w§€Îf|yL#ÆØÝt˜ñ ä p-�­k£'–TZZÖP¢Y$ ¾ïµxEšÙ�pþò÷²ùÙwj{›CÀþ[Æ(.{ òC’íÄòÌÊ, }+¯œ¾Ð7[ o½¡qÊ"ŒÎã>ËsùHŒ—´'Õp°Ÿdxì[Ú¬%T UùLÀP`ð¯>{½·©Öa 3f@€ó¿Ë•—,îÞsÕRpÍfRf¬ïXG°d¹�îÛY¤¸…#&Gló¶ú¦‹I®¶“ØÐ‚l#)_•…<u°Šôžý¬8¨þî”÷YÕ²)¯±—½“†˜%,{wõº%ެ—Üžl¦ÅX"+ }z¿-þ¸Éy=vj­Nï ýaÌWË`¡”—Åî½ Yþç  çMÝ:±üE[]c¦Ü„دûêÈ�0k¯J…°Ð>ób"Ô×&¼ònãÐ&ÚËuÂè�†Œ¤ÆêŸ´×)F‰�§œkpPïß*F°‰óÙ�%³àTk‹�MyžótRöboë͇xE/|(—R]¨^‚¿" ÓÆj¿É†Bä¹KhÌ<Ÿˆÿ:Òhm)y@z,`˜Ú˜‘ƒä $!”3ÈV³Fâ6×¶MC) x�8ܴܤ‘JßНk¨f'Z`!a¡‚ªË¢¿ï¹ë…2M´M´›»oN™Œa‰ÑŽª=�¤öâbY áÖ¡§ØîÊÙ¶+O‚GE›$^›r'~öŠß± IIõ…þ ø;[iÖРJÔ]žË¤ù/|‡«MRSÉcß:\æ¹ù ¬qgÚt¡/°ûúoVÁRH*Ù€°­%ÀK//ó4Q ªŽ4ç Ͳ~ëOÄ qî>]«m (2‰Ù�¤�‹e¼W (Ôz”:|<òô,Y àÌÙ¹÷C•–ÛüôÃðà=³páÇ_—]6ZËõ&�9æèð$üV��Þ" 5�£ÐìãŒ0ßÙ¦K‚¢]?éÚ#ƒ=±Yáë¢ÎN±2T\98/µÂËhyÑ}äN„Sã-`¿]5ÖS”§dPrv‹æe±*x©v춦ŽÏÄúD×oµª&ñ‹×}²bjß¿*"R?'Co¬d(Nˆ™ˆNÛeœò‰P 8J Ì(tJÅoe“ê´3À;¤ ‡ö¡jY„"sö™–¶løçî­6Ù´õ‘5®VW àó?~I$õº"ƒ"}E¬ÖLöÿdÔé�•èhè0щx=øÿƒCîsDíS 't¡“—ÆÌœÏñ�ñMR¹%¤Ga³è®Ë5Ç·éÒMÌ\Ñìÿñ¢Ù�Ò_! =°Ú#3[‚ÁçP™hK«aP³*…+jg¹@º¢"N@\Ukj¼!S”Ý”èN ÍID¼îÉçQíȇÚH©ÓÆJv Ú½ lHFÛl‡ÜkÕ‘£¯dÍL½IŠŸãïݧO±:âzÈ ¨Cÿ8æ/¦²ô.èû9¢9Siÿ“ó„(]òì/û´Çu‡ÿ²õº.êGæ‘!Ù"?ÿ¶"Ó\òT…A�zµeÿÿ‘訰õC87bÄ·23Û†í&îŸóñh6:Y„둤 ‹ö'›¹^ûài¼tP<Öz^†âú~/ç‡c]@t–V‘ýÖÐ÷—åqÙ8b͆½«ÚÊx “y„Áz-è=ÒÊVo-qBaКȊ†1¨""¯NjhM‘Úª=O@tè´yò>ˆS¤Ú®ˆd?]‡]a(ÿlÜé®XmPÌ™}¤•h e®`©ä�Hz\/ƒDí=·¾³ºƒq ®a°ò6�Š1,2ö.6Áæ¾çYõðaw‚½ä‰›×—?öîZN,5©}ʃ¡¯ßß2ø‹¥V÷ þ¡œçò²LÂùoªù³1J¹(�p›”YÝ•¶Áìµ^Cõ å€Åí(JÞ^W^å5Ĥg‹íÕ±¬~·Äi~Rо"¶Z›y—%¡/0·³§É�^Ia¬·MÙXóøÂn›KD�#Æ×­àõ“5æ$+¬Ó>›=YI4V†"=n¼‰ÜËžýàmÂÊñc¡ãoþ³$iA7›;ŽÑ›ÒµYc†u5%ÅÅã3‘éÑÒ�÷P7žx ?�Úvºtu Æ@,úxÆ1å�$÷í»H£gàYÃ-[·@,‹ÉÓµM®$|_Í}VoÔ+æp‹hmƘHÉð~í²=NtŸ½žà¡À˜W§ý¤�æÊKMÒ€Gy›ìÊP¥Ù¢DyHÎØŽÅ­D�)‚Ð-mØ3?ÑW�šÓ Φ$$yFö¨e§¬JvM}¤: Ž=½to¥zwˆVâdP•æ>1d]Œ·ûŵ·¦ªëË�¶Jp,–ÑkÄW¤ª$Gðè ßéîÜDƒÚlóSBßL€!¿Ø|�âC#)Ch=3�2zý}hN6TϹ21¸ÎP�•É@J½Æ¹K)QèÆ §¦wÔ31ÒÇo‡Ú¹k ìÆv) �Ó¿Ò®”ßÛ¬d£WBI¸ÿ~‡ã#êµßÍ `™±19®µˆ‘LÎpMuæ­'ŽúâU”¦µ­ã¯»pI }*èwC…ÄWé{òb�=—»‡ù5jy‡É޵ dßbq¼�¥uäˆwÖleÑ'5Êk¦¥·÷éÓ’«ðAÄ¡¼Æ_îV�±ÍeÓadc£ÿ³±‰HO|QÜ›MPé2ß(ŽÔÙÉ}Iqsã �² Øv;|.‚…›~êÍYñ;S+ʾ¥ž7¯Ëî×Gô/ÜU¡˜„4KùX ¿¬lÃŒ«AøÝ Ç`A�Þ AŸÞ A¯Þ A¾Þ @AÎÞ ˆAÞÞ jAíÞ €„AýÞ ÐA�ß „×A�ß eÍA¬ß  _ A¼ß èvHAÌß ¢”AÛß @åœ0Aëß �ļAûß 4&õkAŠà €à7yÃAšà  Ø…W4Aªà ÈNgmÁAºà =‘`äXAÉà @Œµx¯AÙà PïâÖäAéà ’ÕMÏðAøà €öJáÇ-Aˆá  ´�ÙyCxA˜á ”�(,*‹A¨á ¸%¹42·ô­@ç„þäqÙˆ0�/ç'ª|!׿úà1€ÔÛ錠9Y> ÉR$°ˆï�¾³nµµ¸…­`œÉF"ã¦@æØx|Øê›Ðè�‡+‚MÇraBâsi¶â yÏù€ÚÐdiWC¸�ˆb‚±¡*Óδ*û"fJœô‡‚aõ¹«¿¤\Ãñ)c \9TË÷æ7ú]ȳG)¾µ` àÄxõº ™³-ãxÈöÖ²@t@�ü�K}ÏYÆïP‘P´{qž\Cð·k¤õd¡Ú Æ3T쥀†Y„Þ¤¨È[ ´³'„ èo%ÎÒºrÈ¡ 1å(âË®›�‡i�:Ê~^Ym?M±ô¡™d~Å@¯H� AÝq ÀýÝvÒaÛ³’T 0}•GºêÈðoEÛô(>nÝll´$ûìË23ŠÍɈ‡áí9è~œ–þ¿ì@üjé4$QÏ!ÿ÷“¨=Pâ1PAm%Cªåþõ¸MäZ>d’ÈîÓŸ~3gW`�ñM}¶zêÚF^Am¸n¡Ü²Œ’EHì: HDóÂääéÞ/÷VZ§IÈZ°ó^äÖû´ì0\z±œp¥ueñ“¾Šyì®�af‡ir¿dí8ní—§Úôù?éOï½(ÇÉè}Qrø�ãÄbµvy~±îÒJGû9»ýbÔ—£Ý]ª‡zÈÑ)½{É} Uõ”édŸ˜:Ft¬í�Î'UýŸcŸä«È‹hEÂqª_|Ö†<ÇÝÖº.ÂÖ2•wŒ¨ 9•Œiú9Æß(½*‘WI§CÝ÷�È·sluu­‘”Ôu¢£º¥Ý�ÇÒÒ˜bµ¹I‹L”‡ê¹¼ÃƒŸ]ìÖ¯y)eè«´dµ™§Ì×s~âÖá=I"[ÿÕп¢f�M&­Æmõ˜¿…â·E€ÊòàoX8É2/'Û%— }/Ù‹n†{ÿ^ûðQïü4®½g4­_�6“ÞÁ­A]�˜7bDøš2`’ôG¡~ÅzU¶[t·œpÇ] º’ÛѵÈMQå%L9µ‹hwRFã:¡¥ÞD.Ÿ‡¢®BŠó ÎÄ„' ë|Ô%­ImðŽöeñÍ%\ôùn܈¬ò�s¿mA/sq¸Š“Õ«71¨—äˆýçF³óÛÊ–…=’½ëü¡`ÜïR}üæÌö,å%|ÊxÓ«çÎ]@<¯—�>+dËpBuÐ ›ý0Ø5=þÌ’’éÍ=½NƒÌ=@›û�¢± !FËÒŸ&‚ú3 Þh©×Ûý”ÆG0J#ùŽÓÍR=:¸Y¼œ¶›ÀxíY|ÀSf$¸õ¡£ÂðÖhp›°èí&sÊLó¬ ƒLÂÜâßè�ïýìçÑoùÉ틱Âõ)>çaÆËw<éî]3s´M˜å`ú·¾•‹£j5�!aþùøe.{nLÅBôi¹_³›»ÿü ÅO»)€8âÓ7 ‚ª?ˆö¾q€=¦�kzÓ„N*´.ŽàÌÏÙrYH åpš0ÝX à!Ȥ7-4ï Á|oX*º �…8ëPñ›ÙJî´(Lð¦†Á%ÒvÈÌq™/V(ô˜w†ÔzÿYÍ»k21U¨I‚×~°À_ªýÞj nQoFOnØ{*do^Ë‹É% ã‰Î5= 6~Ãî;ï Þ[,‚a‚ ŽÃ]´u…µÈj¹[ñ|ÑÇ8šº�Òæâzŧ²-ÜÅùÆ@é4† ›Ù¶Q9S7¸ø�#TDH“³”"s›:V!i•ÚÖw 9ëOBÉ«©Ãú��Ì•ÈEæã’»TºiPè‹> XSN3Ä&Žƒdâ.NÈîåg"@upšq¤ýšºazjßÁHI†Ç†Þ }Œ¢+ÙšÛ§Àx(ÉYœ/‹vÏ¡€ÒÑð–²[;pƒû-Td�#ƒVžO%&2½œb~tì#ì…£_®¯~ìÙ:�‘ç,ggŒ÷™[žç4@I»| À·:@ùÂ!ÈíÃé›È°eI�·óT):©3$ÚÁú¿[t¥0ª³ˆ“ V(¹rW¹hg^Jp5|Hlrç£N­çBö\ÌBZOáL¢˜¡“�3tâ˜dÑ peÿDü0 ¨/L ¾½Ì>?V;=È’;Ÿ�.-Ï+ŠLzw Ç4=|„lia[Öo¬Šfü L›¥GSÃ9òË‹W-€; �(4Èî¾n­8`Š‹Saù™ =U7el#|67¨¹÷S¿hŒ*…~G,…¨õ(ï‚/u&^Y÷!Eæ ‰™yÕ±= ØÚ—:5ëÏNëÿ×J� ŽÑ=‰æ"æÿ�ÝepŽñE�+ƒßDÕï¿xª?ù¶K8û± kÊëï•ÏG·¤^zžÎ…½æ«\zÃåMö‡FB§6pëy,0¯ðùTÏk‰CLf˜· üÚl8*ÃÆ« Tß~å(»ˆÆôs¸V *×Þó)*øñ�f¬PzæÓJó7ÚM;—Àk’àˆðÅPáà =!°wë$l÷¤YLŒ)\Ȕ°·¯÷™9ýت×|Lᜥ›uˆ<䎕 œŸ �“ªKÝy}ˆÁðæa™á[@JOªל걬`ºÿÙrÐãT DeÞ×ø¨��ä*ˆJÿªc†›ÉOºÙ‚nQ:*¿•üg¼ã(�#ÊåÈtä.»û«3t¬<{ÉNýT=ááêñŸÈë…óÌ{¢<ªŒYšeîǺfg0@ËËÔïïÿéyi@�<Ðð^ÿäõ•`?2ìAÈÐ%b¬6?^s»8Ï>gRúD¯ºWÏ5Pêƒç8[)¶b¡!rRä©`�ãíØùd» ªg]VÓxt\)O8=*ŒTÒÀô+—‘³ób†fš×tƒøxeþ:PØý“� R¤6Wbþ½IdNý¸@á�fMíú}-\ý¡<çÈŒ`°"Ô¼nœY>å…0ú/!x\+ lŠð�^§<ø{)–3v ml16ÑKöÚ³{ÀSÎHˆǽƒÅžÚhPMXô€-ucœVr;ä`n1áxR|CìN ´Aè† NaNAˆ‡ infA¨‡ -infAȇ ,"occluded":Aø‡ ;4,"occlusion":{"occluders":AȈ ,"fallback":Aøˆ /(,"shaders":{"drawn":A¸‰ ,"dof":A؉ #,"refraction":AˆŠ )","screen":{"ssr":AÈŠ —�post-processing is not drawn: the device has no half-float render targetAè‹ ,"picture":[A˜Œ ,"pending":AÈŒ #,"ubershader":AøŒ 1*,"variants":{"drawn":A¸� \"AØ� \\Aø� \bA˜Ž \tA¸Ž \nAØŽ \fAøŽ \rA˜� ' 0123456789abcdefAÈ� \u00Aè� ˆÇn0_Ô?‹=`­¾ë½n0_Ô?‹=`­¾ë½n0_Ô?‹=`­¾ë½n0_Ô?‹=`­¾ë½n0_Ô?‹=`­¾ë½n0_Ô?‹=`­¾ë½n0_Ô?‹=`­¾ë½n0_Ô?‹=`­¾ë½n0_Ô?‹=`­¾ë½n0_Ô?‹=`­¾ë½n0_Ô?‹=`­¾ë½n0_Ô?‹=`­¾ë½$ŸAÇ¿‹=`­¾ë½’|­¿Ö J‘Ã=rÌw?°NøS*ˆœ=Ég`¿ƒŠ=`­¾k½ÇFò ¿H_�ð§T=ÇFò ¿H_�ð§T=ÇFò ¿H_�ð§T=ää6è>H_�ð§T=ol$ϾõÑW'ü)¥<!rr{>\P±¬•¼!rr{>\P±¬•¼}76R¾VpAŰv¼‘“K>S}uŸb<ë»±!¾šúè«þ4<­¾ë½-+¸ b¼­¾ë½-+¸ b¼J‘Ã=NS}uÂï;T*ˆœ=YVpAÅ~»`­¾k½YVpAÅ~»`­¾k½YVpAÅ~»JA=ànšúè«3;ñ§T=?"Ë .¨(»ñ§T=?"Ë .¨(»'ü)¥<7p7M}ôÅ:'ü)¥<7p7M}ôÅ:'ü)¥<7p7M}ôÅ:�ð§„<ÛÀÝ4õѧ:uŸbH_�ð§T=ol$ß¾õÑW'ü)µ<!rr‹>\P±¬¥¼!rr‹>\P±¬¥¼!rr‹>\P±¬¥¼}76b¾VpAۆ¼ë»±1¾šúè«þD<*ˆœ,>šúè«þD<­¾û½-+¸ b¼J‘Ó=NS}uÂÿ;kõÝȽYVpAÅŽ»T*ˆ¬=YVpAÅŽ»`­¾{½YVpAÅŽ»JQ=ànšúè«C;kõM½ànšúè«C;ñ§T=?"Ë .¨8»°V½wÓÔG_;'ü)µ<7p7M}ôÕ:'ü)µ<7p7M}ôÕ:±¬¥¼’‘eĺۆ¼I~D–\ º{Àj¼O’‘eGº¬þD©Ø_?À—€KÀ%àò?h6=}…>À ,�MûÉò?ÓAäÓ"¬=À@+­´ò? ÓÇÓ<Àžä)Ažò?Ìôÿ§gü;À°ˆ°ˆò?FS}I&;À5'�¸Psò?((Mµ”P:Àñ’€p"^ò?Á~<±|9À’$I’$Iò?2½¿ ˜¨8Àß¼šxV4ò?L»Ï–Ö7Àxû!�·ò?…ŸÇ1`7ÀÙÀg G ò?á|C¿¨36ÀpÁ}÷ñ?²¬ÿ)Üc5Àt¸?;ïâñ?5߸cø”4À�¢­Ïñ?QÞ eûÆ3À)íF@J»ñ?Ñý[-ãù2À–{a¹§ñ?—4«Â­-2Àœ¢Œ€S”ñ?pÚ†1Yb1À��ñ?IæŒã—0ÀysB‰nñ?eÜ•œ/À 'u_[ñ?Výòè .À;Í _Hñ?Åñp‹R{,ÀÈ5È5ñ?Ng¶9í*À30]çX#ñ?Ê·«ùÊ`)Àñ?L»Ï–Ö'Àðþðþð?WqlâL&À�œækõìð?ˆ¯hþ`Å$À–F�¨ Ûð?ZÏÞ|?#À;Ú¼OqÉð?�T¦2»!ÀÈ�%ìæ·ð?ž†Êû~8 À§h �¦ð?þë½nÀT 9?•ð?Ó}7œoÀ„B!„ð?ÕXÙÉ”sÀÆ÷G &sð?OpWs zÀü©ñÒMbð?øjÅ丄À4×÷—Qð?ù9‘į# ÀAAð?V5†îCÀ^µ‘0ð?E â!jÀ�@ ð?'s¢{,÷¿ð?_ƒjÀÙ ç¿ð?Að± °ðüÀï?Qï¶Pþö? ø�ø�ï?*ÒÂ…–ç@qBJžeDï?4ÕÑ@|ðÁï?‡ýŽuÓº@Àì³Ìî?_« ¹úM@g·ð«1‘î?›Ÿ¢Ÿ8ë @tåÉ:Wî?Ãñ'Ý/ª#@î?Éúöc&@ІøãÖåí?[3Fn¡)@Û�¹v`®í?º«­@BÈ+@4,¸T¶wí?²¥ìr.@ÔAÔAí?äyÚŒXŒ0@tÀn�µ í?{+U—ÑÜ1@ ›‰VØì?®xâé*3@‘á^³¤ì?M÷ƒù©v4@ÇqÇqì?ˆÖû9À5@ðøÃ�?ì?ïÔB7@àÀ�ì?³/Ð+L8@÷”‰+Ýë?ßp~ÝŽ9@кÁù¬ë?”ì´-^Ï:@‹3Ú=l}ë?îMÙͶ <@Oè´�Në?pY2LîI=@Ù€l@6 ë?MjNç „>@(¯¡¼†òê? h¹¼?@pÅpÅê? 0°Û y@@¾cj`ï˜ê?v ÓÚA@mЦmê?p𑲬A@¤A¤Aê?:«DB@KzùÓê?¯šMüÛB@Ù3•Žìé?íͤÎ$qC@¡äNÑÂé?I;FD@š™™™™™é?‹ÍKxšD@r¸ øäpé?³–Lü½-E@àéÖü°Hé?ˆÖû9ÀE@)âÐIû é?§{gä�QF@úœ�Áùè?Þ �Í!âF@Ó0�Óè?<û~ºÒqG@ªók¹¬è?Tc¥H@J°«ðå†è?&²àrœŽH@†a†aè? ‰ºI@ݾ²z—<è?/#9¨I@è?Q` v3J@@ýôç?Iy¾J@ô}A_Ðç?¡‚8÷ëGK@Ãìà"­ç?1�çéòÐK@Ȥx�LŠç?V[)­/YL@±©4äÜgç?}X:’¤àL@F]tÑEç?ê2àSgM@¼ÞF($ç?L6BÔ?íM@p� \àç?ÒTç¡jrN@Ç7Ck÷áæ? â(sÖöN@A¨¸ ÇA¶¸ úð?53û©=öï?a€w>šìï?…nèãï?t…Ó°Ùï?ÞöÝ)kÐï?È›uEÇï?ƒóÆÊ>¾ï?‰ùlXµï?÷Gr+’¬ï?¢ÑÓ2ì£ï?Óþ¯f›ï?Q[Гï?Ì1lÀ½Šï?à-©®š‚ï?QŽ¥È˜zï?{Q}<¸rï?ê�Œ8ùjï?uËoë[cï?Ô\„à[ï?ª¹h1‡Tï?Ùü"PMï?ÖŒbˆ;Fï?–Ü}‘I?ï?8bunz8ï??¦²OÎ1ï?Ý|âeE+ï?�cõáß$ï?áÞõ�ï?�ÙÚÐï? 䦅ï?V/>©¯ ï?·1 þï?1ØLüpï?ÿd²üî?ñŸ’_Åöî?Ë©:7§ñî?fØm®ìî?÷Ÿå4Ûçî?å¨Ã-ãî?"4L¦Þî?€¬EÚî?*.÷! Öî?—¨PÙõÑî?-‰a`Îî?WíAÊî?Ð<Áµ¢Æî?ÞÓ×ð*Ãî?'*6ÕÚ¿î? Ýý™²¼î?§,�v²¹î?BfÏ¢Ú¶î?‚O�V+´î?’]ʤ±î?Ú'µ6G¯î?ýÇ—Ô­î?)THÝ«î?·FYŠ&©î?H!­o§î? Üv¹á¥î?…U:°~¤î? ÃÌ4F£î?%"U‚8¢î?s©LÔU¡î?Í;fž î?¿Ú u î?/e<²Ÿî?„”Qù}Ÿî?t_ìèuŸî?t�¥HšŸî?ÉgBVëŸî??]ÞOi î?‡ës¡î?2Á0í¡î?bNÏ6ó¢î?>T'¤î?ÎL™‰¥î?­Ç#F§î?í’D›Ù¨î?™fŠÙǪî?Û *Bå¬î?ŒDµ2¯î?6w™®±î?Æÿ‘ [´î?åÅͰ7·î?RÈËDºî?PNÞŸ‚½î?ºÊpñÀî?�𣂑Äî?##ãcÈî?eå]{fÌî?3-Jì›Ðî?]%>²Õî?X³0žÙî?¿ýyUkÞî?zóÓ¿kãî?­ÓZ™Ÿèî?f¶�)îî?ûO¸¢óî?:Yå�rùî?G^ûòvÿî?J¡0°ï?ÒÁK� ï? ×[Âï?œR…Ý›ï?zÐÿ_« ï?KÑW.ñ'ï?µç”m/ï?i�ïÜ 7ï?úÃ]U ?ï?|‰J-Gï?ò‰ ‡Oï?‡¤ûÜXï?˜ƒÉã`ï?…2Ûæiï?`´ó!sï?_›{3—|ï?)¡õF†ï?ö?‹ç.�ï?ƒLÇûQšï?Ú�¤¢¯¤ï?ñgŽ-H¯ï?'Zaîºï?—ºk7+Åï?@En[vÐï?¾œ­ýÛï?Ø�ž�Áçï?ñq�+Âóï?A¸À C< left); drawn without a shadowAˆÁ  of A¨Á % tiles wanted, AØÁ c\: no room for its shadow in the shadow atlas (AÈ  light Aè 1* degrees (spot_angle A¨Ã C<: its shadow covers a cone of AøÃ fog volume A¨Ä , AÈÄ  a frame): AøÄ /( not drawn (at most A¸Å  isAØÅ  areAøÅ 3, fog volumes in view: A¸Æ  moreAØÆ  , and AøÆ 's world: A¨Ç )" lights in view: AèÇ OmniLight3DA˜È SpotLight3DAÈÈ #viewport:AøÈ #texture_albedoA¨É #texture_normalAØÉ texture_ormAˆÊ 7 texture_emission€$°$à$%AÈÊ C<decal: a released texture formA˜Ë 92decal: a released textureAèË ™’ is a Radiance HDR image; decal textures are PNG only, so it is not drawnA˜Í ': A¸Í decal 'AØÍ mf moved since its capture; drawn from it: bake againAØÎ )"reflection probe A˜Ï ‘Šlightmap: a source mesh released before its lightmapped mesh was madeA¸Ð ?8drawn without it: bake againAˆÑ mf is out of date (moved or changed since the bake); AˆÒ lightmap of A¸Ò ™’ matches none of the scene's static items: drawn in real time; bake againAèÓ the bake of A˜Ô UNlightmap: the digest of a released meshAøÔ ' 0123456789ABCDEFAÈÕ 1*ProceduralSkyMaterialAˆÖ Çð?A Ö ôhÀï?ù¾¼IŸ”¯­‡?¨�ï?] «;i2�_Cö–?]Dï?dÇ.<¸ýÞn�¡?qï?=û;•)øiŒª¦?2Ìî?¿a‚;)e}(J¬?’î?²if»ÎJBŽÆà°?îVî?1§ ¼¨g‘Ö­³?Rî?QØ ¼…“È÷z¾?Aí?ÁTn<ÔÝ^é�À?þ í? ø<7ÛÁ?]×ì?„~¼öI�'1Ã?£ì?ãÿ¼*yò»|Ä?»rì?¡eò;‹æøê¹Å?K@ì?�=B<Ö|ƒñuÇ?ø ì?#�C<[c£ŽLÈ?yÜë?Ï:Ê;s©�R|“É?š¬ë?ö1•»aÍžØÑÊ?W}ë? ce<FEÌ?#Në?= ¼›úðÇnLÍ?C ë?á@º»0áᵃÎ?ôòê?'âÇ»t´ü)¹Ï?øÄê?¶¼0¢,©zÐ?]˜ê?“ÿÕ;üŽ6Ñ?rlê?‹ó<$-¤û­Ñ?üAê?üN<:\#”ÒBÒ?ê?ºÓ¤»…<û»ÝÒ?eìé?rQ¼'("é¸qÓ?ñÁé?Ò|¼x`§?j Ô?á™é?quß;G·ÏÇv™Ô?Çqé?¼Ua¶‰*Õ?ZIé?ÊӻΔ±½Õ?"!é?Ý›<É»©óÞ?@Âæ?»Vo¼ÞÕÊŸ)wß?–¡æ?–†J<b½ üß? �æ?ˆÂ%¼o\=t—@à?Vaæ?p¬<%NÑ5Ó�à?Bæ?ø©3<ßµ†lÂà?Ÿ#æ?ß—c<Ä>�jÒá?}æ?híN<ïW'Ó@á?Èæå?9…Ü»Á��-`�á?�Èå?°z%<-Ó—%AÁá?Y¬å?9Æ;åäÇ1ýá?/Žå? \<²ž¹QŸ=â?°rå?>z<ÄrĨxâ?,Uå?âò»«kê‹F�Ú¿Ä8å?Ÿ°P<"^£Ú¿£å?Nr=où;ÇØ%Ì¿ˆâ?Eì»Ô&�wË¿‰sâ?p¼ó»AN3úÇRÊ¿2]â?¿»8å «rÉ¿ÆIâ?m,j¼rªv-ö®È¿Æ3â?«¾A<X"þJÐÇ¿Wâ?öT¼-[ވǿA â?…)<%(©Øj3Æ¿Uöá?^­¦»‡”ªÐ\Å¿âá?:uÅ;þ÷9q‹Ä¿nÎá?9¿Û»’ÌÀÿn»á?Óኻv8zWû¿¬¨á?o×Ô»�ßé1—7¿ð”á?°± <¯fÅhÁ¿T�á?¥H:<ž>ƒË[šÀ¿×ná?˜ ¥;±ð·Ö­¿¿[á?�A <ÐÉÞ� ¾¿Há?ä€@¼¼ˆB£s¼¿Š5á?˸É;Áx躿#á?ƒ‹-¼+ÿþ§�Y¹¿Aá?)¡§»¾kWÝÚ·¿þà?÷ˆã»‚�89¶¿:íà? Èí;Z¡ b9Ë´¿WÚà?ßzY<Ñ}©ð9.³¿ Êà?.ú;3±‘»;ȱ¿ ¸à?”¸D;ޝ"ø›;°¿l§à?l®Ä; [¡xs—­¿Ý•à?I=G¼/í~�‹ª¿¨„à?`Lü;°Žñ¥(‹§¿”rà?�À»?+l<a¤¿úbà?¼Zž;Ò'± £¡¿‡Qà?^`ù»¯xg¥¯�¿'@à?lÏ;-ò`põ–¿ä/à?½<.‘â±5,‘¿”à?j¼êGƒ}±†¿à?rj€;Ճà D²u¿à?A¨æ 0Ír"å%={ÈÚ«¨²Ã=zƒ×k\>§½‚ÿ½¿î>ï9úþB.v?ð?Aàæ °53û©=ð? o«ˆ¼¤½a€w>š,ð?¬]jÓ7é<…nèCð?På¶‚”�=t…Ó°Yð?¨/jUʽÞöÝ)kpð?Þ¨é=È›uE‡ð?·SOøzؼƒóÆÊ>žð?[OŸ¹½‰ùlXµð?4%ºÙ½÷Gr+’Ìð?5Nÿu–&½¢ÑÓ2ìãð?Dh>˜--¶¼Óþ¯fûð?µ#´æ™Ãâš{=ª¹h1‡Ôñ?NÃßI9l½Ùü"Píñ?ÜR¦�=ÖŒbˆ;ò?Ҙ抽–Ü}‘Iò?oEhÛQÅ÷¼8bunz8ò?ËîÓ¦ÆE½?¦²OÎQò?2ÏJÑ+Û½Ý|âeEkò?‚¤¶ô{÷¼�cõáß„ò?Û~¡W´c=áÞõ�žò?«…Ž]û¼�ÙÚиò?î{s‡†µ< 䦅Òò?\"Éèþ¡½V/>©¯ìò? öïɲå¼·1 þó?$êikÙû¼1ØLüp!ó?u}ûT>½ÿd²<ó?ƒÆª€1ü½ñŸ’_ÅVó?ÀLù‘T=Ë©:7§qó?:]òÍ d =fØm®Œó?ãòEg_=÷Ÿå4Û§ó?GëÞpµé<å¨Ã-Ãó?Bƒ$ñº="4L¦Þó?äâ2û¹1ÿ¼€¬Eúó?_i^èǃ =*.÷! ô?p„�óÓÈÑ<—¨PÙõ1ô?–DÔËRô<-‰a`Nô?û¹¯ènù»¼WíAjô?£Q°‘;(½Ð<Áµ¢†ô?}ÛP�½7æ¼ÞÓ×ð*£ô?6:Ó!õÙ ½'*6ÕÚ¿ô?7¢ ÷Gð¼ Ýý™²Üô?§aiX-” ½§,�v²ùô?ª …Ç=BfÏ¢Úõ?Zɶ8=‚O�V+4õ?jê8‡¨ðñ<’]ʤQõ?uÖ±m ×ÿ<Ú'µ6Goõ?Ø=WŸÂµ ½ýÇ—Ô�õ?9Ìxtèó¼)THÝ«õ?Ûí^ð`¥½·FYŠ&Éõ?¿á:rú­¼H!­oçõ?3dÎ$ ½ Üv¹áö?R6Ó¼K×=…U:°~$ö?_±Š¨öW= ÃÌ4FCö?ß9P†Sý<%"U‚8bö?xŠàB¶“ =s©LÔU�ö?9%òP£Ð¼Í;fž ö?$ÌϸÜl =¿Ú uÀö?s î&ÃÎâT'ø?b!~ئÄ=ÎL™‰%ø?g©½ZÈ =­Ç#FGø?c‰ý+£�÷<í’D›Ùhø?´Óç =™fŠÙÇŠø?„{•r½Û *B嬸?£û ×lo½ŒDµ2Ïø?²FÁ" Sß<6w™®ñø?x5’Æ+ô¼Æÿ‘ [ù?ß¡ jnv =åÅͰ77ù?î­ª3¶eÕ<RÈËDZù?� ¶‘Lä²Uú?µ&ZE“• =X³0žyú?0GÞ;½¿ýyUkžú?“ äñÓrý¼zóÓ¿kÃú?6T,€Ñ:û<­ÓZ™Ÿèú?p�¶E½f¶�)û?S„$´‰Ç=ûO¸¢3û?Á*Ó˜zfÏ<:Yå�rYû?½ùˆ ö=G^ûòvû?Ñ xëáš,ð?¬]jÓ7é<…nèCð?På¶‚”�=t…Ó°Yð?¨/jUʽÞöÝ)kpð?Þ¨é=È›uE‡ð?·SOøzؼƒóÆÊ>žð?[OŸ¹½‰ùlXµð?4%ºÙ½÷Gr+’Ìð?5Nÿu–&½¢ÑÓ2ìãð?Dh>˜--¶¼Óþ¯fûð?µ#´æ™Ãâš{=ª¹h1‡Ôñ?NÃßI9l½Ùü"Píñ?ÜR¦�=ÖŒbˆ;ò?Ҙ抽–Ü}‘Iò?oEhÛQÅ÷¼8bunz8ò?ËîÓ¦ÆE½?¦²OÎQò?2ÏJÑ+Û½Ý|âeEkò?‚¤¶ô{÷¼�cõáß„ò?Û~¡W´c=áÞõ�žò?«…Ž]û¼�ÙÚиò?î{s‡†µ< 䦅Òò?\"Éèþ¡½V/>©¯ìò? öïɲå¼·1 þó?$êikÙû¼1ØLüp!ó?u}ûT>½ÿd²<ó?ƒÆª€1ü½ñŸ’_ÅVó?ÀLù‘T=Ë©:7§qó?:]òÍ d =fØm®Œó?ãòEg_=÷Ÿå4Û§ó?GëÞpµé<å¨Ã-Ãó?Bƒ$ñº="4L¦Þó?äâ2û¹1ÿ¼€¬Eúó?_i^èǃ =*.÷! ô?p„�óÓÈÑ<—¨PÙõ1ô?–DÔËRô<-‰a`Nô?û¹¯ènù»¼WíAjô?£Q°‘;(½Ð<Áµ¢†ô?}ÛP�½7æ¼ÞÓ×ð*£ô?6:Ó!õÙ ½'*6ÕÚ¿ô?7¢ ÷Gð¼ Ýý™²Üô?§aiX-” ½§,�v²ùô?ª …Ç=BfÏ¢Úõ?Zɶ8=‚O�V+4õ?jê8‡¨ðñ<’]ʤQõ?uÖ±m ×ÿ<Ú'µ6Goõ?Ø=WŸÂµ ½ýÇ—Ô�õ?9Ìxtèó¼)THÝ«õ?Ûí^ð`¥½·FYŠ&Éõ?¿á:rú­¼H!­oçõ?3dÎ$ ½ Üv¹áö?R6Ó¼K×=…U:°~$ö?_±Š¨öW= ÃÌ4FCö?ß9P†Sý<%"U‚8bö?xŠàB¶“ =s©LÔU�ö?9%òP£Ð¼Í;fž ö?$ÌϸÜl =¿Ú uÀö?s î&ÃÎâT'ø?b!~ئÄ=ÎL™‰%ø?g©½ZÈ =­Ç#FGø?c‰ý+£�÷<í’D›Ùhø?´Óç =™fŠÙÇŠø?„{•r½Û *B嬸?£û ×lo½ŒDµ2Ïø?²FÁ" Sß<6w™®ñø?x5’Æ+ô¼Æÿ‘ [ù?ß¡ jnv =åÅͰ77ù?î­ª3¶eÕ<RÈËDZù?� ¶‘Lä²Uú?µ&ZE“• =X³0žyú?0GÞ;½¿ýyUkžú?“ äñÓrý¼zóÓ¿kÃú?6T,€Ñ:û<­ÓZ™Ÿèú?p�¶E½f¶�)û?S„$´‰Ç=ûO¸¢3û?Á*Ó˜zfÏ<:Yå�rYû?½ùˆ ö=G^ûòvû?Ñ xëá§½‚ÿ½¿î>ï9úþB.v?A؇ ÇAæ‡ ð?Að‡ øñq‚ø�ï?e‚¬…–ç–?b}ðÁï?ÓÍwuÓº¦?/ð«1‘î?’©Ÿ8ë°? ¦î?'�Âúöc¶?�%¹v`®í?K(²@BÈ»?u%AÔAí?JÈÞŒXŒÀ?„¤‰VØì?[Ø~âé*Ã?nùpÇqì?× :ÀÅ?‚ì?$ú,Ð+LÈ?¯TÂù¬ë?Þé°-^ÏÊ?.Hç´�Në?6í7LîIÍ?Ÿà¡¼†òê?¹¼Ï?¿�j`ï˜ê?BÒÚÑ?})A¤Aê?h¶«DÒ?Ê^•Žìé?ü4¤Î$qÓ?o±˜™™™é?è`ÐKxšÔ?J\Öü°Hé?•Ûý9ÀÕ?Lœ�Áùè?PœÍ!âÖ?& l¹¬è?rÄc¥Ø?qÓ`†aè?œ»!‰ºÙ?æqè?4Ý� v3Ú? Ø}A_Ðç?T5÷ëGÛ?g1y�LŠç?Ç3'­/YÜ?oó]tÑEç?—€/àSgÝ?(“ \àç?íë¡jrÞ?ù›ÁlÁæ?„DÊh…zß?´p�h�æ?Ó‡—‹Ú?à?´ YÈBæ?_ÔÁà?†dX`�æ?±@¡úÉ@á?3“+ˆÉå?[†•1¿á?j„�0ÒŽå?§Ê&ÔA<â?²eUUUUå?/Q�qù�Ú¿_âêå?Á)”*›Ù¿#±.§àåä?­I¾ ˜¨Ø¿ó¯R Ö¯ä?ìåΟ¸×¿Ò/®Gázä?-DfhËÖ¿„ŒbeøFä?RMíñÜßÕ¿¾¬ä?eê̲ûöÔ¿†ä¼,âã?›JÃ`Ô¿r¬±;±ã?÷sãþ+Ó¿¥€8�ã?¾+ÍIÒ¿:,ûRã?ç gSÀiÑ¿Pü+Jã#ã?–jš ΋пv­ ½„öâ?ÃL©Ø_Ï¿!8€MûÉâ?×ÞÚÓ"¬Í¿ï£ã)Ažâ?øªû§güË¿¬ ‚¸Psâ?ÆVµ”PÊ¿ÃÛI’$Iâ?6÷Æ ˜¨È¿Z|"�·â?µÀÌ1`Ç¿}À}÷á?»eõ)ÜcÅ¿˜c£­Ïá?Ç eûÆÃ¿¼a¹§á?¿ª±Â­-¿穀�á?|áŒã—À¿È½t_[á?:=êè ¾¿€ž5È5á?Eë²9íº¿âá?GÂË–Ö·¿ÚHækõìà?èŒaþ`Å´¿¤ñ»OqÉà?gWì¥2»±¿:h �¦à?EF"½n­¿ jB!„à?$ýèÉ”s§¿-oòÒMbà?5%è丄¡¿Â{AAà?T´I†îC—¿€d�@ à?U~T¢{,‡¿à?Aú� €?€?A˜� SL: it has no panorama; the sky is blackAø� !sky material A¨‘ ?8panorama: a released textureAø‘ IBpanorama: a released texture formAØ’  bytes, not Aˆ“ ! level takes A¸“ a AØ“ 1*unknown block format A˜” YôTAˆ• ôTA • A¬• A¸• AÄ• AЕ AÜ• Aø• ôTAŒ– A˜– A¤– A°– A¼– AÈ– Aè– ôA˜— ôAÈ— ô Aè— ô Aˆ˜ …ôýÿÿÿúÿÿÿ÷ÿÿÿñÿÿÿýÿÿÿùÿÿÿöÿÿÿóÿÿÿ þÿÿÿûÿÿÿøÿÿÿóÿÿÿ þÿÿÿüÿÿÿúÿÿÿóÿÿÿ ýÿÿÿúÿÿÿøÿÿÿôÿÿÿ ýÿÿÿùÿÿÿ÷ÿÿÿõÿÿÿ üÿÿÿùÿÿÿøÿÿÿõÿÿÿ ýÿÿÿûÿÿÿøÿÿÿõÿÿÿ þÿÿÿúÿÿÿøÿÿÿöÿÿÿ þÿÿÿûÿÿÿøÿÿÿöÿÿÿ þÿÿÿüÿÿÿøÿÿÿöÿÿÿ þÿÿÿûÿÿÿùÿÿÿöÿÿÿ ýÿÿÿüÿÿÿùÿÿÿöÿÿÿ ÿÿÿÿþÿÿÿýÿÿÿöÿÿÿ üÿÿÿúÿÿÿøÿÿÿ÷ÿÿÿýÿÿÿûÿÿÿùÿÿÿ÷ÿÿÿA˜œ %ô   )@AÈœ Eô@  *<P!j/·A˜� %ô AÈ� ô Aì� Aø� ô A�ž A¨ž ô AÀž AØž %ô AˆŸ ô A Ÿ A¸Ÿ ô AÌŸ AØŸ AèŸ ô A˜  %ô AÈ  ô Aà  Aø  ô+@A˜¡ %ô %.7@AÈ¡ Eô@ "&+/37<@A˜¢ ˆ�€Ì̈ˆîîÈì€ÈìþÈþ€ìÈìÿ€þèèÿÿðÿð÷ŽqÎŒs1ÎŒŒ1ffl6èðŽqœ9ªªððZZÌ3<<ªU––Z¥ÎsÈL2Ü;–i<Ãf™`rä@N '6Él“Æ9œc6“Æœ~�çðÌÌDw"îA¨£ HQAø£ 8A¸¤ ˜Aب ÈA¨ª 8Aìª CA¸« HQ@Aˆ¬ HQ@      Aج HQ@    A¨­  rgba8AÈ­ bc1Aè­ bc3Aˆ® bc7A¨® etc2-rgbAÈ® etc2-rgbaAø® astc-4x4A˜¯ astc-6x6A¸¯ ;astc-8x8°VÐVðVW0WPW€W WÀWAˆ° format A¨° ‰‚ has no sky_material; the environment's own sky colours are drawnAȱ )"environment: sky A‚² €?€?A¨² sunAȲ åÞocclusion: the occluders past 65,536 triangles in all are left out of the culling (occluder-too-many-triangles)A¸´ mfits indices are not whole triangles of its verticesA¸µ ;4it has fewer than 3 pointsAˆ¶ %its edges crossA¸¶ h:it has no area to triangulate)DNnƒù¢ÀÝ4õÑW'üA�C<™•bÛaŻޫcQþA¨· h-`€¿€¿€?€?€¿€?€?€?€?€¿€?€?€¿€¿€¿€?€¿€¿€?€?€¿€¿€?€¿A˜¸ • �A¸¹ isoAع  frontAø¹ backA˜º leftA¸º  rightAغ topAøº  bottomA˜» ™’ deep at most (Godot draws every one); the passes past them are not drawnAȼ e^material-next-pass-deep: next passes are drawn AȽ #albedo_textureAø½ ' emission_textureA¨¾ ao_textureAؾ A: above 1; drawn with UV set 0A¨¿ ' samples a UV setAØ¿ #sample UV setsAˆÀ material 'A¸À )"shader_parameter/AòÀ €?€?AˆÁ +$refraction_textureAÈÁ "backlight_textureÐ^04�4Ð40__ 5à506p6°67@7�`À78@8à8`9Ð`Aâ €?€?€?€?€?€?AŠÃ €?€?€?€?€?€?AºÃ €?€?€?AØÃ ¬˜ is a Radiance HDR image; material textures are PNG only, so it is not drawnÍÌL?ÍÌL?ÍÌL?AšÅ €?€?AªÅ €?€?€?€?€?€?AÚÅ €?€?€?AòÅ €?€?AˆÆ -&drawn with UV set 0AÈÆ g` UV set 1, which a mesh it is on does not have; A¸Ç samplesAØÇ  sampleAøÇ 1*skin: a released meshA¸È 5.deform: a released meshAøÈ 1*lods: a released meshA¶É €?€?AÊÉ €?€?AøÉ =6Result.forward called on OkAÈÊ panic: AèÊ ' camera-not-foundA˜Ë no node 'AÈË not-a-cameraAøË ' , not a Camera3DA¨Ì  ' is AÈÌ  AEIOUAèÌ anAˆÍ ‡€the scene has no Camera3D; leave --camera out to frame the sceneA˜Î cameras: AÈÎ -&, not a SubViewportAˆÏ an A¨Ï +$viewport-not-foundAèÏ KDthe scene has no SubViewport; see AÈÐ #SubViewports: AøÐ E>": no Camera3D at that path in AÈÑ camera "AèÑ %" not found in A˜Ò %state machine "AÈÒ oh": not bilinear or fsr (the project's mode is drawn)AÈÓ !scalingMode "AøÓ bilinearA˜Ô fsrj jA¸Ô ]}AØÔ ¡š,"nodes":0,"scripts":0,"ready":0,"process":0,"drawn":0,"gpu":false,"errors":[AˆÖ +$,"time":0,"scene":AÈÖ textAèÖ  builtAˆ× autoA¨× ­¦Scene3D: no scene to show (the view model's scene is empty and there is no default)AèØ 1*: no bundle is loadedA¨Ù instantiate AØÙ UN: the bundle has no such scene (it has A¸Ú visibleAØÚ  emergeAøÚ +$GeometryInstance3DA¸Û fadeAØÛ #shadow_enabledAˆÜ Light3DA¨Ü ' WorldEnvironmentAØÜ )"material_overrideA˜Ý materialA¸Ý next_passAèÝ 92surface_material_overrideA¸Þ transparencyAèÞ 5.alpha_scissor_thresholdA¨ß ;4vertex_color_use_as_albedoAøß shading_modeA¨à #normal_enabledAØà ao_enabledAˆá ' emission_enabledA¸á _textureAØá anisotropyAˆâ  sheenA¨â +$refraction_enabledAèâ ' refraction_scaleA˜ã attenuationAÈã backlightAøã ssao_enabledA¨ä fog_enabledAØä 3,volumetric_fog_enabledA˜å 92screen_refraction_enabledAèå %background_modeA˜æ skyA¸æ /(ambient_light_sourceAøæ 3,reflected_light_sourceA¸ç NodeAØç �zThe base of every node: a name in the tree, a script, groups.Aèè  scriptAˆé  ScriptA¨é ™’The node's script: an .as file holding one class that extends NodeScript.AØê /(unique_name_in_ownerA˜ë ‰‚The node can be reached as %Name from any node of the same scene.A¸ì view_modelAèì ViewModelA˜í õîOn the scene's root: the Rive view model its nodes' bindings read and write (other nodes' are ignored, with a warning).A˜ï data_pathAÈï ëdOn a node that instances a scene: the path, in this scene's data context, of the nested view model the instanced scene's bindings start from; empty to share this scene's context.AÈò 1*default_state_machineAˆó ÍÆOn the scene's root: the state machine the scene runs; empty for the first it declares, - for none.Aèô 3,instance_state_machineA¨õ éâOn a node that instances a scene: the instanced scene's state machine it runs; empty for its default, - for none.A¨÷ +$instance_animationAè÷ …þOn a node that instances a scene: one of the instanced scene's animations, played instead of its state machine; empty for none.Aøù 5.instance_animation_timeA¸ú —On a node that instances a scene and names an animation: 0 to 1 scrubs the animation to that fraction of its duration; below 0 plays it.AØü #instance_speedAˆý íæOn a node that instances a scene: how fast its state machine or animation runs (1 as authored, negative backwards).Aˆÿ %instance_pausedA¸ÿ ­¦On a node that instances a scene: its state machine or animation holds where it is.Aø€  Node3DA˜� OHA node with a transform in 3D space.Aø� aZThe local transform (relative to the parent).Aè‚ positionAˆƒ YRThe local origin; applies over transform.Aøƒ rotationA˜„ ©¢The local rotation as Euler angles in radians, order YXZ; applies over transform.AØ… ' rotation_degreesAˆ† yrrotation in degrees; applies over transform and rotation.A˜‡ WPThe local scale; applies over transform.Aø‡ _XWhether the node and its children are drawn.Aèˆ %global_positionA˜‰ ¿¸The node's origin in the scene's space, in metres (computed: bind it with mode="to_source").AèŠ %screen_positionA˜‹ ÕNThe node's origin projected into the view, in points from its top-left corner, y down, as Rive's layout measures (computed; behind the camera it keeps its last value).Aø� #screen_visibleA¨Ž ­¦Whether the node's origin is in front of the camera and inside the view (computed).Aè� 1*listener_pass_throughA¨� «$A state machine listener's pointer goes on past a hit on this node (or on a node under it) to what is behind; off, the nearest hit hides the rest.Aè’ YRThe base of the nodes that draw geometry.AØ“ cast_shadowAˆ” offA¨” onAÈ” double_sidedAø” /shadows_onlyŠ0ŠPŠ€ŠA¸• ³,Whether it casts shadows: not at all, yes, from both sides (the same here: faces are never culled), or only its shadow, the geometry itself not drawn.Aø— 3,visibility_range_beginA¸˜ ÑÊDrawn only from this distance to the camera on (0: from up close); measured to the centre of its box.A˜š A:visibility_range_begin_marginAèš ãÜHow far past visibility_range_begin the change waits once drawn or hidden, so it does not flicker at the edge.AØœ /(visibility_range_endA˜� ƒ|Drawn only up to this distance to the camera (0: however far).A¨ž =6visibility_range_end_marginAøž ߨHow far past visibility_range_end the change waits once drawn or hidden, so it does not flicker at the edge.Aè  ;4visibility_range_fade_modeA¸¡ disabledAØ¡ selfAø¡ +dependenciesÀ�à�‘A¸¢ ÕÎGodot's fade over the margins; self and dependencies are drawn without the fade, over the whole margin.A˜¤ gi_modeA¸¤  staticAؤ #dynamicÀ�@’`’Aˆ¥ ™Baked lighting: none; static (it casts baked light and shadows and is drawn with its lightmap); dynamic (it is lit by the bake's probes).A¸§ 5.gi_lightmap_texel_scaleAø§ žMultiplies the lightmap's texel density on this geometry (2: twice the texels along each side).AÈ©  layersAè© ÝÖThe visual layers it is on (bit k: layer k + 1): a ReflectionProbe captures it and reflects in it by these.AØ« ¯(How far it has come out of a fog of emerge_color: 0 not drawn, 1 drawn as usual; in between it shows pixel by pixel, each first in the fog's colour.A˜® emerge_colorAÈ® ÁºThe colour of the fog it emerges from (emerge below 1), as the environment's fog_light_color.A˜° ñêHow far its shown colour (lit shading, emission included) goes toward fade_color: 0 drawn as usual, 1 all fade_color.A˜² fade_colorAȲ �The colour it fades toward (fade above 0), as the environment's background_color: at fade 1 it matches a background of that colour.Aè´ +$input_ray_pickableA¨µ ñêState machine listeners hit it by its triangles (as drawn, a skinned mesh posed); off, the pointer passes through it.A¨· %pointer_forwardAØ· ¯(A pointer on an ArtboardTexture it shows (or an ArtboardSprite3D's artboard) reaches that artboard's state machine at the hit's texture coordinates.A˜º #MeshInstance3DAȺ ƒ|Draws a mesh. A model's skinned mesh follows a Skeleton3D, and a mesh with blend shapes has a `blend_shapes/<name>` property for each (a weight, 0 to 1: animates, bindable; see "Skeletons").Aؽ meshAø½ MeshA˜¾ WPThe mesh: a primitive mesh sub_resource.Aø¾ MaterialA˜¿ xA material used for every surface instead of the mesh's own.A¨À skeletonAÈÀ ÉBThe Skeleton3D a model's skinned mesh follows, by its path from the mesh (`..`, the parent, when not set); a path that finds none draws the mesh as it was bound.A¨Ã -&blend_shapes/<name>Aèà kdA blend shape's weight (the model's when not set).AèÄ %ModelInstance3DA˜Å ߨDraws a whole model (.rmdl, .rmdlcmd, .modeler, .gltf or .glb): its meshes, as they are placed in the model.AˆÇ  modelA¨Ç  ModelAÈÇ YRThe model: an ext_resource of type Model.A¸È -&MultiMeshInstance3DAøÈ xDraws a MultiMesh: one mesh many times, with GPU instancing.AˆÊ multimeshA¸Ê MultiMeshAèÊ �†The MultiMesh: its mesh, and a transform (and colour) per instance.AˆÌ Camera3DA¨Ì ohA camera; the scene is seen through the current one.A¨Í currentAÈÍ ibThis camera is the one the scene is seen through.AÈÎ fovAèÎ …~The field of view in degrees, along the axis keep_aspect names.AøÏ nearA˜Ð =6The near clipping distance.AèÐ farAˆÑ ;4The far clipping distance.AØÑ projectionAˆÒ perspectiveA¸Ò 'orthogonal©@©AèÒ %The projection.A˜Ó …~The orthogonal view's extent, along the axis keep_aspect names.A¨Ô keep_aspectAØÔ keep_widthAˆÕ 'keep_height`ª�ªA¸Õ G@Which axis fov and size measure.AˆÖ attributesA¸Ö ' CameraAttributesAèÖ õîThe camera's depth of field and exposure, a CameraAttributesPractical (none: the WorldEnvironment's camera_attributes).AèØ 5.The base of the lights.A¨Ù light_colorAØÙ -&The light's colour.A˜Ú light_energyAÈÚ ibThe light's strength (a multiplier, as in Godot).AÈÛ #light_specularAøÛ ‹„How strongly the light shows in specular highlights (as in Godot).A˜Ý 70The light casts shadows.AØÝ shadow_blurAˆÞ ÁºThe softness of the shadow's edge: the filter's radius in shadow-map texels (0: a hard edge).AØß #shadow_opacityAˆà UNHow dark the shadow is: 0 none, 1 full.Aèà 3light_bake_modeÀ�@’`’A¨á ×PBaked lighting: not baked; static (its light and shadows are baked, and it lights only what is not lightmapped in real time); dynamic (only its bounced light is baked).Aˆä light_sizeA¸ä åÞOmni and spot: the light's size in metres, which softens its baked shadows (a sun's is light_angular_distance).A¨æ 1*light_indirect_energyAèæ e^Multiplies the light's bounced light in a bake.AØç =6light_volumetric_fog_energyA¨è ÝÖMultiplies the light it gives fog volumes and the environment's volumetric fog (0: they are not lit by it).A˜ê +$DirectionalLight3DAØê ¡šA light from infinitely far away, shining along the node's -Z axis (the sun).Aˆì 3,light_angular_distanceAÈì ‘ŠThe sun disc's size in degrees, as a sky draws it (0: only its glow).Aèí 5.directional_shadow_modeA¨î )"parallel_2_splitsAèî ;"parallel_4_splits@©0·p·A¸ï _XHow many cascades cover the view: 1, 2 or 4.A¨ð ;4directional_shadow_split_1Aøð ¥žWhere the first cascade ends, as a fraction of directional_shadow_max_distance.A¨ò ;4directional_shadow_split_2Aøò YRWhere the second cascade ends (4 splits).Aèó ;4directional_shadow_split_3A¸ô WPWhere the third cascade ends (4 splits).A˜õ A:directional_shadow_fade_startAèõ ³¬Where the shadow starts to fade out, as a fraction of directional_shadow_max_distance.A¨÷ E>directional_shadow_max_distanceAø÷ ]VHow far from the camera the shadow reaches.Aèø g`A light shining in every direction from a point.AØù omni_rangeAˆú E>The distance the light reaches.AØú ' omni_attenuationAˆû UNHow the light falls off over its range.Aèû YRA cone of light along the node's -Z axis.AØü spot_rangeAˆý ' spot_attenuationA¸ý spot_angleAèý KDThe cone's half angle, in degrees.AÈþ 3,spot_angle_attenuationAˆÿ e^How the light falls off toward the cone's edge.Aøÿ “ŒThe scene's environment: background, ambient light, sky, tone mapping.A˜� EnvironmentAÈ� ' The environment.Aø� )"camera_attributesA¸‚ ÝÖThe depth of field and exposure of every camera without attributes of its own, a CameraAttributesPractical.A¨„ Marker3DAÈ„ ibA point in space, drawn as a cross in the editor.AÈ… !gizmo_extentsAø… 3,The size of the cross.A¸† ' ArtboardSprite3DAè† ›Draws an ArtboardTexture on a quad, as Godot's Sprite3D draws a texture: a placeholder in the tools, the live artboard in a built project.A˜‰ textureA¸‰ %ArtboardTextureAè‰ —�The artboard drawn: its size in pixels, times pixel_size, is the quad's.Aˆ‹ centeredA¨‹ ¥žThe quad is centred on the node's origin; off, its bottom-left corner is there.AØŒ �†Moves the quad in its own plane, in texture pixels (x right, y up).Aø�  flip_hA˜Ž SLThe texture is mirrored left to right.AøŽ  flip_vA˜� SLThe texture is mirrored top to bottom.Aø� modulateA˜� [TMultiplies the texture's colour and alpha.Aˆ‘ pixel_sizeA¸‘ ‚lThe size of one texture pixel in the scene, in metres.ÐI€K KAÈ’ mfThe axis the quad faces when it is not a billboard.AÈ“ billboardAø“ enabledA˜” #fixed_yÀ�Ê ÊAÈ” ýöWhether the quad turns to the camera: not at all, wholly (it lies in the camera's plane), or about the scene's Y axis only.AØ– transparentAˆ— slThe texture's alpha is drawn; off, the quad is opaque.Aˆ˜  shadedA¨˜ “ŒThe scene's lights light the quad; off, the texture is drawn as it is.AÈ™ �†The quad is drawn from behind too; off, it is not seen from behind.Aèš !no_depth_testA˜› ƒ|The quad is drawn over everything, whatever is in front of it.A¨œ alpha_cutAØœ discardAøœ #opaque_prepassA¨� /alpha_hashÀ�`΀ΰÎAè� ¥How alpha is cut: blended (with transparent), cut out at alpha_scissor_threshold, or Godot's two other modes (drawn as blended and as cut out).A˜  …~With alpha_cut discard: the alpha below which nothing is drawn.A¨¡ LightmapGIAØ¡ UN bake`), and draws the scene with them.A¸¢ ‡€Bakes the light of the scene's static geometry into lightmaps (`AÈ£ qualityAè£ lowAˆ¤  mediumA¨¤ highAȤ ' ultraðÑÒ0ÒPÒAø¤ }vHow many rays the bake traces: more is smoother and slower.Aˆ¦ bouncesA¨¦ ©¢How many times light bounces between surfaces in the bake (0: direct light only).Aè§ 3,bounce_indirect_energyA¨¨ QJMultiplies the light of every bounce.Aˆ© directionalA¸© ãÜGodot's directional lightmaps: not made here (the bake says so); the lightmaps hold the light from all around.A¨« 5.use_texture_for_bouncesAè« ÑÊBounced light takes the colour of the albedo textures it bounces off, not only of the albedo colours.AÈ­ interiorAè­ ‡€The scene is indoors: the environment adds no light to the bake.Aø® use_denoiserA¨¯ 70Smooth the bake's noise.Aè¯ )"denoiser_strengthA¨° ]VHow strongly the denoiser smooths (0 to 1).A˜± #denoiser_rangeAȱ SLHow far the denoiser looks, in texels.A¨² biasAȲ ‰‚Moves the bake's rays off their surface, in metres, against acne.Aè³ texel_scaleA˜´ ±ªMultiplies the texel density of every lightmap (2: twice the texels along each side).Aص ' max_texture_sizeAˆ¶ åÞThe largest lightmap image, in texels on a side; more charts go into more layers (the bake makes at most 4096).Aø· -&lightmap_texel_sizeA¸¸ ÑÊThe size of a lightmap texel on a surface, in metres, before texel_scale and gi_lightmap_texel_scale.A˜º ' environment_modeAȺ  sceneAèº custom_skyA˜» /custom_colorÀ�PÝpÝ ÝAØ» çàThe light the environment adds to the bake: none, the scene's WorldEnvironment's, a sky of its own, or a colour.AȽ 3,environment_custom_skyAˆ¾ SkyA¨¾ § With environment_mode custom_sky: the sky the bake sees (without one, no light).AØ¿ 70environment_custom_colorA˜À e^With environment_mode custom_color: its colour.AˆÁ 92environment_custom_energyAØÁ …~With environment_mode custom_sky or custom_color: its strength.Aè 3,generate_probes_subdivA¨Ã #32À� TÀÈPY°áAØÃ ÷ðThe automatic light probes: none, or a grid of this many cells along the static geometry's longest side, inside its box.AØÅ light_dataAˆÆ #LightmapGIDataA¸Æ ‹„ bake` writes; without it the scene is drawn with real-time light.AØÇ =6The bake: an .lmbake file `A¨È !LightmapProbeAØÈ »´A point where a LightmapGI's bake measures light for the geometry that is not lightmapped.A¨Ê %ReflectionProbeAØÊ 92 bake` captures it once).A¨Ë ¹²Captures the scene around it into a cube map that the geometry inside its box reflects (`AøÌ update_modeA¨Í onceAÈÍ  always°æÐæAøÍ ÑÊ bake` into probe_data (without one, when first drawn); always: captured again as the scene is drawn.AØÏ -&once: captured by `A˜Ð intensityAÈÐ =6Multiplies its reflections.A˜Ñ #blend_distanceAÈÑ ãÜHow far inside its box, from the faces, it fades in, in metres (0: no fade); overlapping probes blend over it.A¸Ó max_distanceAèÓ xHow far the capture sees, in metres (0: the box's diagonal).AøÔ ߨThe box it reflects in, centred on the node, in metres along the node's axes (the node's scale is not used).AèÖ !origin_offsetA˜× ™’Where it captures from, from the node's origin along its axes, in metres.AÈØ #box_projectionAøØ »´Reflections are corrected for where they are in the box (parallax), as for a room's walls.AÈÚ ™’Indoors: the capture sees no sky and takes no light from the environment.AøÛ #enable_shadowsA¨Ü SLThe capture draws the lights' shadows.AˆÝ cull_maskA¸Ý {tThe visual layers it captures (GeometryInstance3D.layers).AÈÞ %reflection_maskAøÞ KDThe visual layers that reflect it.AØß ambient_modeAˆà 3constant_colorÀ�€ðAÈà •The ambient light inside its box: disabled leaves the environment's, environment takes the capture's own, constant_color ambient_color.Aèâ !ambient_colorA˜ã �zWith ambient_mode constant_color: the ambient light's colour.A¨ä /(ambient_color_energyAèä 92Multiplies ambient_color.A¸å probe_dataAèå -&ReflectionProbeDataA¨æ “Œ bake` writes; without one, a once probe is captured when first drawn.AÈç C<Its capture: an .rprobe file `A˜è  TimerA¸è õîCounts wait_time seconds down while the scene plays, then emits the signal timeout, which connections and scripts hear.A¸ê wait_timeAèê MFThe seconds it counts, more than 0.AÈë one_shotAèë {tIt stops after one timeout; off, it starts over each time.Aøì autostartA¨í …~It starts when the scene starts (when the node is first ready).A¸î A:It does not count while true.Aˆï #timeout()�÷A¸ï )"CollisionObject3DAøï ÍÆThe base of the nodes that have collision shapes (its CollisionShape3D children): areas and bodies.AØñ %collision_layerAˆò ߨThe layers it is in (bit k: layer k + 1), which other objects' collision_mask and queries' masks find it by.Aøó #collision_maskA¨ô § The layers it finds others in: an Area3D detects what is in a layer of its mask.AØõ ›”The pointer picks it: it gets input_event, mouse_entered and mouse_exited.Aˆ÷ 1*input_capture_on_dragAÈ÷ ËÄA press on it keeps its input_event coming while the pointer is dragged off it, until the release.A¨ù �zinput_event(camera, event, event_position, normal, shape_idx)A¸ú %mouse_entered()Aèú 3mouse_exited()°ü@ýpýA¨û !PhysicsBody3DAØû £œThe base of the bodies; nothing is simulated, so StaticBody3D is the one body.Aˆý StaticBody3DA¸ý ÙÒA body: what areas detect as a body, and rays and the pointer hit; it moves only when something moves it.A¨ÿ  Area3DAÈÿ ­¦A region that detects the bodies and areas overlapping it, and the pointer over it.Aˆ� monitoringA¸� üIt detects what overlaps it and emits body_entered, body_exited, area_entered and area_exited.Aˆƒ monitorableA¸ƒ 3,Other areas detect it.Aøƒ +$body_entered(body)A¸„ )"body_exited(body)Aø„ +$area_entered(area)A¸… )"area_exited(area)Aé… @€ÀAˆ† ' CollisionShape3DA¸† —�Gives its parent CollisionObject3D a shape, placed by its own transform.A؇ Shape3DAø‡ •ŽThe shape: a box, sphere, capsule, cylinder, convex or concave polygon.A˜‰ {tThe shape takes no part: no overlap, ray or pick finds it.A¨Š RayCast3DAØŠ íæA ray from the node's origin to target_position, cast every frame while the scene plays; scripts read what it hits.AØŒ 1*It casts every frame.A˜� #exclude_parentAÈ� mfIts parent, when a CollisionObject3D, is never hit.AÈŽ %target_positionAøŽ Ÿ˜Where the ray ends, in the node's own space; it starts at the node's origin.A¨� slThe layers it hits objects in (their collision_layer).A¨‘ %hit_from_insideAØ‘ ÍÆA ray starting inside a shape hits it at its start, with a zero normal; off, that shape is not hit.A¸“ #hit_back_facesAè“ Ã¼It hits the back of a ConcavePolygonShape3D's faces when the shape's backface_collision is on.A¸• +$collide_with_areasAø• 3,It hits Area3D shapes.A¸– -&collide_with_bodiesAø– ?8It hits StaticBody3D shapes.AÈ— 70debug_shape_custom_colorAˆ˜ ËÄThe colour its line is drawn in by `render --shapes` and in the editor; black: the default colour.Aè™ 1*debug_shape_thicknessA¨š c\Its line's width in pixels when drawn, 1 to 5.A˜› Skeleton3DAÈ› ÏHA model's armature: its bones, posed by its `bones/<bone>:position`, `bones/<bone>:quaternion` and `bones/<bone>:scale` properties (the model's pose when not set; they animate, a vector by its components, and are not bindable), by timelines and by scripts. Made from a model; see "Skeletons".A¨  1*bones/<bone>:positionAè  »´The bone's position relative to its parent bone (the skeleton for a root bone), in metres.A¸¢ 5.bones/<bone>:quaternionAø¢ «¤The bone's rotation relative to its parent bone, keyed whole (KeyFrameQuaternion).A¸¤ +$bones/<bone>:scaleAø¤ )"The bone's scale.A¸¥ ' BoneAttachment3DAè¥ �úFollows a bone of the Skeleton3D it is a child of: its transform is the bone's pose, so what is under it moves with the bone.Aø§ bone_nameA¨¨ /(The bone it follows.Aè¨ bone_idxAˆ© Ÿ˜The bone's index in the skeleton, used when bone_name is empty; -1 for none.A¸ª  Path3DAت µ®A curve in the node's space (a Curve3D); its PathFollow3D children are placed along it.A˜¬  curveA¸¬ Curve3DAج }vThe curve: Bézier points with in and out handles and tilts.Aè­ +curve_changed()ðA¨® PathFollow3DAØ® ×ÐPlaced on its parent Path3D's curve, progress metres along it, and turned to follow it by rotation_mode.A¸° progressAذ ýöHow far along the curve it is, in metres; set while the scene plays it wraps round with loop, else it is held to the curve.Aè² #progress_ratioA˜³ —progress as a share of the curve's baked length, 0 at its start and 1 at its end; not stored: keyed, bound and edited, it sets progress.A¸µ h_offsetAص ‘ŠHow far it sits to the side of the curve, along its own x, in metres.Aø¶ v_offsetA˜· xHow far it sits above the curve, along its own y, in metres.A¨¸ !rotation_modeAظ xyAø¸ xyzA˜¹ +oriented0<€K`€ Aع ±*How it turns with the curve: not at all, about y only, about x and y, about all three, or oriented (its -z along the curve and its y the curve's up).A˜¼ %use_model_frontAȼ ÁºIts +z, a model's front (glTF's), faces along the curve rather than its -z (Godot's forward).A˜¾ cubic_interpAȾ �–Its position between baked points is interpolated cubically; off, linearly.Aø¿ loopA˜À ohA progress past either end wraps round to the other.A˜Á tilt_enabledAÈÁ ‡€It leans by the curve's tilts (with any rotation_mode but none).AØÂ  DecalAøÂ ·°Projects its textures along its -Y axis onto the surfaces inside its box (size, centred on the node), as Godot's Decal: colour, a normal map, occlusion-roughness-metallic and emission, any of them an ArtboardTexture.A¸Æ ƒüThe box it projects through, centred on the node, in metres along the node's axes (each at least 0.001); it projects along -Y.AÈÈ ñêThe colour and alpha it paints; its alpha also blends the normal and ORM maps in. Without it, only emission is drawn.AÈÊ »4A normal map blended over the surface's normal by the albedo's alpha (OpenGL's convention, green up the picture, as Godot reads it); needs texture_albedo.A˜Í •Ambient occlusion (red), roughness (green) and metallic (blue), blended over the surface's by the albedo's alpha; needs texture_albedo.A¸Ï •ŽLight it adds, times modulate and emission_energy, whatever the albedo.AØÐ %emission_energyAˆÑ ?8Multiplies texture_emission.AØÑ —�Multiplies the albedo and the emission; its alpha fades the whole decal.AøÒ albedo_mixA¨Ó áÚHow much of the albedo's colour covers the surface, 0 to 1; at 0 only the normal, ORM and emission maps show.A˜Õ normal_fadeAÈÕ éâFades the decal on surfaces turned away from its projection: 0 never, towards 1 only where they face it squarely.AÈ× upper_fadeAø× ³¬How it fades towards the top of its box (an exponent: 0 no fade, higher fades sooner).A¸Ù lower_fadeAèÙ ¹²How it fades towards the bottom of its box (an exponent: 0 no fade, higher fades sooner).A¸Û 1*distance_fade_enabledAøÛ ûôIt fades out with its distance to the camera, from distance_fade_begin over distance_fade_length, and is not drawn beyond.AˆÞ -&distance_fade_beginAÈÞ ¿¸With distance_fade_enabled: the distance from the camera where it starts to fade, in metres.A˜à /(distance_fade_lengthAØà �ˆWith distance_fade_enabled: how far it takes to fade out, in metres.Aøá �–The visual layers it paints (GeometryInstance3D.layers, bit k layer k + 1).A¨ã ViewportAÈã ™’The base of the viewports: what a SubViewport's world and background are.Aøä own_world_3dA¨å �Draws a world of its own, holding only the nodes under it (their lights and WorldEnvironment too); off, the world of the viewport it is in.AØç #transparent_bgAˆè ‡Its background is transparent: neither the sky nor the background colour is drawn, so its texture's alpha is 0 where nothing is.A˜ê SubViewportAÈê ƒ|Draws the 3D world through its own current Camera3D into a texture of `size` pixels, which a ViewportTexture shows in any texture slot: in-world screens, security cameras, mirrors, minimaps.AÖí €@€@Aèí aZThe texture's size in pixels, 1 to 4096 each.AØî 92render_target_update_modeA¨ï when_visibleAØï C&when_parent_visibleÀ�°æ°7à7ÐæA¨ð ËDWhen it draws again: never (the texture keeps its last picture), once, while its texture was drawn in the last frame, while its parent is visible, or every frame.Aˆó #CPUParticles3DA¸ó ¡šEmits particles simulated on the CPU, deterministically from its seed and the frame clock, each one a copy of `mesh` drawn with GPU instancing; emits the signal finished when a one_shot emission has ended.Aèö emittingAˆ÷ �úIt emits new particles; off, those alive live their lifetime out. Turned on after a one_shot emission ended, it starts again.A˜ù  amountA¸ù ߨHow many particles an emission cycle (lifetime seconds) emits, 1 to 10000; each one is drawn while it lives.A¨û lifetimeAÈû ‰‚The seconds a particle lives (at least 0.01): one emission cycle.Aèü Ÿ˜It emits one cycle, then stops (emitting turns off and finished is emitted).A˜þ preprocessAÈþ ‡€Seconds simulated before the first frame, so it starts mid-flow.AØÿ speed_scaleAˆ€ slMultiplies the time it is simulated at (0 freezes it).Aˆ� !explosivenessA¸� «¤0 spreads a cycle's particles over its lifetime; 1 emits them all at once, 0 to 1.Aø‚ randomnessA¨ƒ slHow much each particle's emission time varies, 0 to 1.A¨„ -&lifetime_randomnessAè„ slHow much shorter a particle's lifetime may be, 0 to 1.Aè… #use_fixed_seedA˜† çàEvery emission uses seed; off, the seed is made from the node's path, so emitters differ and stay deterministic.Aˆˆ seedA¨ˆ qjThe random seed with use_fixed_seed, 0 to 4294967295.A¨‰ fixed_fpsA؉ ×ÐSimulates at this many steps a second whatever the frame rate (0: a step a frame, as long as the frame).A¸‹ fract_deltaAè‹ ãÜA particle emitted within a step moves for the part of the step after its emission, which smooths a fast flow.AØ� local_coordsAˆŽ ÓÌParticles move with the node; off, they stay in the scene where they were emitted when the node moves.Aè� draw_orderA˜� view_depthAÈ� 7 reverse_lifetimep?°= HPHAˆ‘ ‘ The order the particles are drawn in: as emitted, oldest first, farthest from the camera first (for blended ones), or youngest first.A¨“ ¿¸The mesh each particle draws: a QuadMesh with a billboard material for sprites, or any mesh.Aø” #emission_shapeA¨•  pointAÈ• #sphere_surfaceAø• boxA˜–  pointsA¸– %directed_pointsAè– +ring°J�@ÐJK K@KpKA¨— �Where particles start: the origin, in or on a sphere, in a box, at emission_points (directed: along emission_normals), or in a ring.AÈ™ 3,emission_sphere_radiusAˆš /(The sphere's radius.AÈš /(emission_box_extentsAˆ› IBThe box's half size on each axis.Aè› %emission_pointsA˜œ ½¶The points particles start at, one chosen at random each time (points and directed_points).Aè� ' emission_normalsA˜ž ÇÀWith directed_points, a direction per point that turns `direction` (as many as emission_points).AèŸ %emission_colorsA˜  ‘ŠA colour per point, multiplying `color` (as many as emission_points).A¸¡ +$emission_ring_axisAø¡ ' The ring's axis.A¨¢ /(emission_ring_heightAè¢ IBThe ring's height along its axis.AÈ£ /(emission_ring_radiusAˆ¤ 70The ring's outer radius.AȤ ;4emission_ring_inner_radiusA˜¥ OHThe ring's inner radius (0: a disc).Aø¥ 70emission_ring_cone_angleA¸¦ ÁºThe angle of the ring's side in degrees: 90 a cylinder, less a cone narrowing along the axis.Aˆ¨ /(emission_points_fromAȨ Ã<A MeshInstance3D or ModelInstance3D whose surface fills emission_points (and emission_normals) when they are empty, in this node's space at load and at build.A˜« 1*emission_points_countAØ« yrHow many points emission_points_from samples, 1 to 65536.Aè¬ 1*particle_flag_align_yA¨­ ibEach particle's Y axis points along its velocity.A¨® 3,particle_flag_rotate_yAè® kdEach particle turns about its Y axis by its angle.Aè¯ UNThe direction particles are emitted in.AȰ  spreadAè° “ŒHow far from `direction` a particle may set off, in degrees, 0 to 180.Aˆ² flatnessA¨² —�Flattens the spread onto the plane across `direction`'s up side, 0 to 1.Aȳ gravityAè³ ‹„The acceleration every particle takes, in metres a second squared.Aˆµ /(initial_velocity_minAȵ QJThe least speed a particle starts at.A¨¶ /(initial_velocity_maxAè¶ WPThe greatest speed a particle starts at.AÈ· /(angular_velocity_minAˆ¸ qjThe least speed its angle turns at, degrees a second.Aˆ¹ /(angular_velocity_maxAȹ wpThe greatest speed its angle turns at, degrees a second.AȺ 3,angular_velocity_curveAˆ»  CurveA¨» ‡€Multiplies the angular velocity over a particle's life (0 to 1).A¸¼ damping_minAè¼ }vThe least a particle slows by, metres a second each second.Aø½ damping_maxA¨¾ {tThe most a particle slows by, metres a second each second.A¸¿ !damping_curveAè¿ c\Multiplies the damping over a particle's life.AØÀ angle_minAˆÁ ËÄThe least angle a particle starts at, degrees (a billboard's roll, particle_flag_rotate_y's turn).Aè angle_maxA˜Ã ibThe greatest angle a particle starts at, degrees.A˜Ä angle_curveAÈÄ _XMultiplies the angle over a particle's life.A¸Å ' scale_amount_minAèÅ E>The least scale a particle has.A¸Æ ' scale_amount_maxAèÆ KDThe greatest scale a particle has.AÈÇ +$scale_amount_curveAˆÈ _XMultiplies the scale over a particle's life.AøÈ split_scaleA¨É ¹²Scales each axis by its own curve (scale_curve_x, _y, _z) in place of scale_amount_curve.AøÊ !scale_curve_xA¨Ë “ŒWith split_scale, multiplies the scale along X over a particle's life.AÈÌ !scale_curve_yAøÌ “ŒWith split_scale, multiplies the scale along Y over a particle's life.A˜Î !scale_curve_zAÈÎ “ŒWith split_scale, multiplies the scale along Z over a particle's life.AèÏ  colorAˆÐ ËÄEach particle's colour, which multiplies the albedo of a material with vertex_color_use_as_albedo.AèÑ color_rampA˜Ò GradientA¸Ò aZMultiplies the colour over a particle's life.A¨Ó +$color_initial_rampAèÓ ›”Multiplies the colour by a point of it chosen at random for each particle.A˜Õ )"hue_variation_minAØÕ ‡€The least a particle's hue is turned by, -1 to 1 (a whole turn).AèÖ )"hue_variation_maxA¨× g`The most a particle's hue is turned by, -1 to 1.A˜Ø -&hue_variation_curveAØØ ohMultiplies the hue variation over a particle's life.AØÙ #finished()àlAˆÚ -&AudioStreamPlayer3DAÈÚ ßØPlays a sound from its place in the scene: its volume falls with the distance to the listener (attenuation_model, unit_size, max_distance) and it is panned to the listener's left or right; emits the signal finished when a playback ends.A¸Þ  streamAØÞ AudioStreamAˆß ãÜThe sound: a WAV, MP3 or FLAC file (an AudioStream ext_resource), declared as a Rive audio asset by the build.Aøà )"attenuation_modelA¸á ' inverse_distanceAèá 5.inverse_square_distanceA¨â /logarithmicÀpðp0qÀ�Aèâ ‘ How the volume falls with the distance d to the listener: as unit_size / d, as its square, by 20 ln(d / unit_size) dB, or not at all.Aˆå volume_dbA¸å �zThe volume at unit_size from the listener, in dB (-80 to 80).AÈæ unit_sizeAøæ ÇÀThe distance, in metres, at which the volume is volume_db (0.1 to 100): larger is heard farther.AÈè  max_dbAèè …~The loudest the sound is heard, however near, in dB (-24 to 6).Aøé pitch_scaleA¨ê ÓÌGodot's playback speed; kept and not applied: the runtime plays a sound at its own rate (audio-pitch).Aˆì playingA¨ì ýöWhether it plays: turned on, it plays from the start; off, it stops. It reads false again once its last playback has ended.A¸î autoplayAØî c\It plays from the start when the scene starts.AÈï !stream_pausedAøï mfIts playbacks hold where they are; off, they go on.Aøð ÑÊBeyond this distance it is not heard, fading to silence on the way there (0: no limit; up to 4096 m).AØò !max_polyphonyAˆó ™’How many playbacks may overlap (1 to 8): a play past it stops the oldest.A¸ô ' panning_strengthAèô ·0How far it is panned to the listener's side (0 centred, 1 Godot's, up to 3); a stream without its left and right forms plays centred (audio-not-panned).A¨÷ busAÈ÷  MasterAè÷ ›”Godot's bus; kept: every sound plays on the runtime's one mix (audio-bus).A˜ù area_maskAÈù mfGodot's area mask for reverb buses; kept, not used.AÈú !playback_typeAøú #default€}@oàcA¨û }vGodot's playback type; kept, not used: the runtime decides.A¸ü 3,emission_angle_enabledAøü �ˆIt is heard fully only within emission_angle_degrees of its -Z axis.A˜þ 3,emission_angle_degreesAØþ ‘ŠThe half-angle of the cone it is heard fully in, degrees (0.1 to 90).Aøÿ OHemission_angle_filter_attenuation_dbAØ€ ëäHow much quieter it is outside the cone, in dB (-80 to 0): the whole sound, where Godot cuts its high frequencies.AØ‚ ?8attenuation_filter_cutoff_hzA¨ƒ ÛÔGodot's high-frequency cut with distance; kept and not applied: the runtime has no filters (audio-filter).A˜… 1*attenuation_filter_dbAØ… “ŒGodot's high-frequency cut with distance, in dB; kept and not applied.Aø† ' doppler_trackingA¨‡ idle_stepA؇ +physics_stepÀ�°ƒàƒA˜ˆ µ®Godot's Doppler effect; kept and not applied: the runtime has no pitch (audio-doppler).A؉ +$listener_volume_dbA˜Š ûtWhat the listener hears of it, in dB: volume_db attenuated by the distance, max_distance and the emission angle; -80 when silent or not playing (computed: bind it with mode="to_source").A¨� listener_panAØ� »ªWhere the listener hears it, -1 left to 1 right; 0 centred or not playing (computed).àlA¨� %AudioListener3DAØ� ‰‚The point and the facing sounds are heard from while it is the scene's listener (current, or the first listener when none is); with no listener, the camera the scene is seen through hears them.Aø’ ÛTThis listener hears the scene's players (the last current one in tree order when several are; the first listener when none is, as Godot makes the first to enter current).Aè• FogVolumeA˜– ÏHLocal fog in a box, an ellipsoid, a cone or a cylinder (or everywhere), as its FogMaterial describes it; drawn while the Environment's volumetric_fog_enabled is on.Aø˜ •The shape's size in metres along the node's axes (the world shape has none); a cone or a cylinder is as wide as the smaller of x and z.A˜› ellipsoidAÈ› "cone �Ð�°@K Aø› ߨThe fog's shape: an ellipsoid, a cone pointing up its Y axis, a cylinder along Y, a box, or the whole world.Aè� § The fog's look: a FogMaterial (none: Godot's default, a white fog of density 1).A˜Ÿ +$OccluderInstance3DAØŸ ‡€An occluder: the objects wholly behind its shape, seen from the camera, are not drawn (occlusion culling on the CPU); `hedra bake --occluders` makes its shape from the scene's static geometry.Aè¢ occluderAˆ£ Occluder3DA¸£ �úIts shape: a BoxOccluder3D, SphereOccluder3D, QuadOccluder3D or PolygonOccluder3D, or an ArrayOccluder3D (a baked .occ file).AÈ¥ bake_maskAø¥ ¿¸The visual layers a bake takes geometry from (GeometryInstance3D.layers, bit k layer k + 1).Aȧ ?8bake_simplification_distanceA˜¨ ÉÂHow far, in metres, a bake may move the baked shape's surface to simplify it (0: not simplified).Aø© +$NavigationRegion3DA¸ª »´A part of the scene's navigation map: its NavigationMesh's polygons, placed by the node's transform, joined to the other regions' where their edges meet; `hedra bake --navmesh` bakes the mesh from the scene's geometry.Aˆ® %navigation_meshA¸® #NavigationMeshAè® ©¢Its polygons and the settings they are baked with: a NavigationMesh sub_resource.A¨° qjIts polygons are in the map; off, no path crosses it.A¨± /(use_edge_connectionsAè± ³¬Its free edges join other regions' free edges within the map's edge_connection_margin.A¨³ )"navigation_layersAè³ ßØThe navigation layers it is in (bit k: layer k + 1): a path query finds it only through a layer of its mask.Aص enter_costAˆ¶ �–What a path pays to enter it from another region, added to the path's cost.A¸· travel_costAè· �ˆWhat a path pays per metre within it (a multiplier of the distance).Aˆ¹ 92navigation_mesh_changed()Aع /bake_finished()�œàœA˜º )"NavigationAgent3DAغ ébFinds a path over the navigation map from its parent Node3D to target_position, follows it waypoint by waypoint, avoids other agents and obstacles when avoidance_enabled, and emits Godot's signals (target_reached, navigation_finished, velocity_computed, ...); with drive_parent it moves its parent itself.AØ¿ Ÿ˜Where it goes, global (scene space, metres): setting it asks for a new path.AˆÁ 1*path_desired_distanceAÈÁ —�How near its parent must come to a waypoint for it to go on to the next.Aè 5.target_desired_distanceA¨Ã «¤How near its parent must come to the target for it to be reached (target_reached).AèÄ +$path_height_offsetA¨Å ³,How far below the navigation mesh its parent's origin is (a baked mesh floats above its floor): subtracted from the height of every point of its path.AèÇ )"path_max_distanceA¨È ™’How far its parent may stray from its path before a new one is asked for.AØÉ …~The navigation layers its paths may cross (bit k: layer k + 1).AèÊ 1*pathfinding_algorithmA¨Ë  astar°¥AØË mfHow a path is searched: A* over the map's polygons.AØÌ -&path_postprocessingA˜Í #corridorfunnelAÈÍ *edgecentered ¦Ц0<AˆÎ ½6How the polygons found become points: the shortest line through them (the corridor funnel), the middle of each edge crossed, or each polygon's entry point.AØÐ -&path_metadata_flagsA˜Ñ ÑÊWhat a path keeps besides its points (1 the types, 2 the owners (Godot's RIDs), 4 the owners and their ids; Godot's PathMetadataFlags). A drive_parent agent's query always asks for the types, which its move needs to follow links.AøÔ !simplify_pathA¨Õ § Its path is simplified: points within simplify_epsilon of the line are left out.AØÖ ' simplify_epsilonAˆ× xHow far, in metres, a point may lie off the simplified path.A˜Ø )"avoidance_enabledAØØ ýöIt avoids the other agents and the obstacles of its avoidance_mask: velocity in, the safe velocity out (velocity_computed).AèÚ velocityAˆÛ ÛÔThe velocity it wants (Godot's: set by a script each frame); the avoidance answers with velocity_computed.AøÜ  heightA˜Ý ›”Its height, for avoidance in 3D (use_3d_avoidance) and Visible Navigation.AÈÞ UNIts radius in the avoidance, in metres.A¨ß )"neighbor_distanceAèß ibHow far, in metres, it looks for agents to avoid.Aèà !max_neighborsA˜á e^The most agents it avoids at once, the nearest.Aˆâ -&time_horizon_agentsAÈâ ¯¨How far ahead, in seconds, it avoids other agents: longer is safer and turns sooner.Aˆä 3,time_horizon_obstaclesAÈä e^How far ahead, in seconds, it avoids obstacles.A¸å max_speedAèå ³¬The fastest it goes, metres a second: the avoidance's limit, and drive_parent's speed.A¨ç ' use_3d_avoidanceAØç ÛÔGodot's avoidance in 3D; kept and not applied: Hedra avoids on the ground plane (navigation-3d-avoidance).AÈé %keep_y_velocityAøé slThe safe velocity keeps the vertical part of velocity.Aøê ' avoidance_layersA¨ë mfThe avoidance layers it is in (bit k: layer k + 1).A¨ì #avoidance_maskAØì }vThe avoidance layers of the agents and obstacles it avoids.Aèí +$avoidance_priorityA¨î ãÜ0 to 1: it is avoided by agents of a lower priority and avoids those of a higher one without them avoiding it.A˜ð !debug_enabledAÈð ibIts path is drawn while Visible Navigation is on.AÈñ ' debug_use_customAøñ mfIts path is drawn in its own colour and point size.Aøò 5.debug_path_custom_colorA¸ó aZThe colour of its path when debug_use_custom.A¨ô ?8debug_path_custom_point_sizeAøô ‡€The size of its path's points, in pixels, when debug_use_custom.Aˆö drive_parentA¸ö �–Hedra's: it moves its parent itself, along its path at max_speed (the safe velocity when avoidance_enabled), held to the navigation mesh, until the target is reached; off, as in Godot, a script moves it.Aèù ' drive_turn_speedA˜ú ïèHedra's: how fast drive_parent turns its parent about Y to face where it goes, degrees a second (0: it never turns).A˜ü !current_speedAÈü ¡šHow fast its parent moved this frame, metres a second, on the ground plane, whoever moved it (drive_parent, a script, a timeline) (computed: bind it with mode="to_source", say to blend a walk and an idle).Aøÿ +$distance_to_targetA¸€ žHow far its parent is from target_position, in metres (computed; Godot's distance_to_target()).Aˆ‚ )"is_target_reachedAÈ‚ ÑÊIts parent came within target_desired_distance of the target (computed; Godot's is_target_reached()).A¨„ 3,is_navigation_finishedAè„ ëäIt has nothing left to follow: the target reached, or the path's end (computed; Godot's is_navigation_finished()).Aè† #path_changed()A˜‡ ' target_reached()Aȇ 92waypoint_reached(details)A˜ˆ 1*link_reached(details)A؈ 1*navigation_finished()A˜‰ _@velocity_computed(safe_velocity)pàÃÐà Ä`Ä ÄAˆŠ /(NavigationObstacle3DAÈŠ ¯(What agents avoid: a circle of radius (moving with velocity) or the outline of vertices on the ground plane, between its origin and height above it.Aˆ� Ÿ˜The radius of the circle agents avoid (0: none; the vertices' outline then).A¸Ž ¡šHow tall it is, from its origin up: agents on another storey do not avoid it.Aè� verticesAˆ� ÝÖIts outline, in the node's space, on its ground plane (y is ignored): a static obstacle agents never enter.Aø‘ 3,affect_navigation_meshA¸’ žA bake leaves its outline out of the navigation mesh (Godot's; read by `hedra bake --navmesh`).Aˆ” 1*carve_navigation_meshAÈ” ÁºWith affect_navigation_mesh, its outline is cut out exactly, not grown by the agent's radius.A˜– ' Agents avoid it.AÈ– ‘ŠHow fast a radius obstacle moves, which the agents take into account.Aè— C<The avoidance layers it is in.A¸˜ —�Godot's avoidance in 3D; kept and not applied (navigation-3d-avoidance).AØ™ ' NavigationLink3DAˆš ñjA way between two points of the navigation map that its polygons do not join: a jump, a ladder, a door; paths take it like any polygon, and an agent coming to it emits link_reached.Aˆ� +$Paths may take it.AÈ� !bidirectionalAø� •ŽPaths take it both ways; off, from start_position to end_position only.A˜Ÿ E>The navigation layers it is in.AèŸ #start_positionA˜  ÏÈOne end, in the node's space: joined to the nearest polygon within the map's link_connection_radius.Aø¡ end_positionA¨¢ MFThe other end, in the node's space.Aˆ£ ?8What a path pays to take it.AØ£ OHWhat a path pays per metre along it.A¸¤ ResourceAؤ =6The base of every resource.A¨¥ !resource_nameAØ¥ e^A name for people; the library does not use it.AȦ 5.The base of the meshes.Aˆ§ !PrimitiveMeshA¸§ G@The base of the built-in meshes.Aˆ¨ /(The mesh's material.AȨ BoxMeshAè¨ ?8A box centred on the origin.A¸© %The box's size.Aè© %subdivide_widthA˜ª -&Extra cuts along X.Aت ' subdivide_heightAˆ« -&Extra cuts along Y.AÈ« %subdivide_depthAø« -&Extra cuts along Z.A¸¬ SphereMeshAè¬ c\A UV sphere centred on the origin, poles on Y.AØ­ The radius.Aˆ® ]VThe height (2 x radius for a round sphere).Aø® %radial_segmentsA¨¯ +$Segments around Y.Aè¯  ringsAˆ° 70Rings from pole to pole.AȰ !is_hemisphereAø° /(Only the upper half.A¸± CylinderMeshAè± kdA cylinder or cone centred on the origin, along Y.Aè² top_radiusA˜³ KDThe radius at the top (0: a cone).Aø³ !bottom_radiusA¨´ 92The radius at the bottom.Aø´ The height.A¨µ =6Extra rings along the side.Aøµ cap_topA˜¶ #Close the top.Aȶ cap_bottomAø¶ )"Close the bottom.A¸· PlaneMeshAè· UNA flat rectangle centred on the origin.Aȸ )"The plane's size.Aˆ¹ =6Extra cuts along the width.Aع =6Extra cuts along the depth.A¨º !center_offsetAغ E>Moves the plane off the origin.A¨» orientationAØ»  face_xAø»  face_yA˜¼ # face_zàÝÞ ÞAȼ 92The axis the plane faces.A˜½ QuadMeshA¸½ ñêA PlaneMesh facing +Z, 1 x 1: the quad billboard particles draw (a StandardMaterial3D with billboard_mode particles).A¸¿ 3 The quad's size.àÝÞ ÞAø¿ 70The axis the quad faces.A¸À ãÜOne mesh drawn many times: a transform per instance, and optionally a colour, in one buffer as Godot keeps it.A¨Â ' transform_formatAØÂ transform_2dAˆÃ 'transform_3d`á�áA¸Ã ÿøThe instances' transforms: 2D (8 numbers, not drawn) or 3D (12); Godot's default is 2D, so a 3D MultiMesh says transform_3d.AÈÅ use_colorsAøÅ ‰Each instance has a colour (4 numbers after its transform), multiplying the albedo of a material with vertex_color_use_as_albedo.A˜È %use_custom_dataAÈÈ ‘ Each instance has 4 numbers of custom data after its colour, which a ShaderMaterial's shader reads as INSTANCE_CUSTOM (0 without it).AèÊ #instance_countA˜Ë OHHow many instances the buffer holds.AøË 3,visible_instance_countA¸Ì qjHow many of them are drawn, from the first (-1: all).A¸Í A:The mesh each instance draws.AˆÎ  bufferA¨Î ÙÒPer instance: the transform's three rows (basis row, then origin), then the colour, then the custom data.A˜Ð ArrayMeshAÈÐ »´Triangles with their materials: the meshes of a model. Not declared in a file in format 1.A˜Ò ³¬The base of the materials; as an ext_resource type, a MaterialX (.mtlx) material file.AØÓ mtlxàéAøÓ ÍÆA material the surface is drawn with again, after this one (an outline, a glow): Godot's next pass.AØÕ %render_priorityAˆÖ óìThe order blended surfaces are drawn in, -128 to 127: higher drawn later, in front (opaque surfaces keep their order).AˆØ +$StandardMaterial3DAÈØ Ÿ˜A physically based material (metallic-roughness), as glTF's and the .rmdl's.AøÙ albedo_colorA¨Ú ;4The base colour and alpha.AøÚ 70Multiplies albedo_color.A¸Û 3,0 dielectric, 1 metal.AøÛ g`Multiplies metallic (its blue channel, as glTF).AèÜ +$0 mirror, 1 matte.A¨Ý kdMultiplies roughness (its green channel, as glTF).A¨Þ 92The material emits light.AøÞ emissionA˜ß -&The emitted colour.AØß ;4emission_energy_multiplierA¨à ' Scales emission.AØà /(Multiplies emission.A˜á 5.normal_texture is used.AØá normal_scaleAˆâ E>The strength of normal_texture.AØâ =6A tangent-space normal map.A¨ã -&ao_texture is used.Aèã aZAmbient occlusion (its red channel, as glTF).AØä 3alpha_scissorÀ�/`òA˜å ›”How alpha is used: opaque, blended, or cut out at alpha_scissor_threshold.AÈæ 3,The cut-out threshold.Aˆç cull_modeA©ç ]à\À�AÈç mfWhich faces are not drawn (disabled: double sided).AÈè ›”Multiplies the albedo by the vertex colour: a MultiMesh instance's colour.Aøé /(vertex_color_is_srgbA¸ê £œThe vertex colour is sRGB, and is made linear before it multiplies the albedo.Aèë uv1_scaleA˜ì ±ªScales the texture coordinates of every texture slot (x and y; z is kept, not drawn).AØí uv1_offsetAˆî ÑÊMoves the texture coordinates of every texture slot, after uv1_scale (x and y; z is kept, not drawn).Aèï #billboard_modeA˜ð /particlesÀ�Ê Ê øAØð ¡Turns a CPUParticles3D's mesh to face the camera: enabled wholly, fixed_y about Y only, particles wholly and rolled by each particle's angle.Aˆó /(billboard_keep_scaleAÈó ‰A billboard keeps its particle's scale (scale_amount and its curves); off, it is drawn at the mesh's own size, as Godot draws it.Aèõ “ŒBackground, ambient light, sky, tone mapping, fog and post-processing.Aˆ÷ +clear_color�ûðg sAÈ÷ µ.The background: the renderer's clear colour, background_color, or the sky (with no sky, the gradient of the sky_*_color and ground_*_color properties).Aˆú ' background_colorA¸ú [TThe background with background_mode color.A¨û ?8background_energy_multiplierAøû unMultiplies the background, and the light the sky gives.Aøü ¹²The sky: drawn with background_mode sky, and the source of ambient light and reflections.AÈþ sky_rotationAøþ ‰‚Turns the sky and its light (Euler angles in radians, order YXZ).A˜€ /background À�ðg sAØ€ íæWhere the ambient light comes from: the background (its colour, or the sky), none, ambient_light_color, or the sky.AØ‚ -&ambient_light_colorA˜ƒ }vThe ambient light's colour with ambient_light_source color.A¨„ C<ambient_light_sky_contributionAø„ ÉÂWith a sky as the source: the sky's share of the ambient light (the rest is ambient_light_color).A؆ /(ambient_light_energyA˜‡ Ë´The ambient light's strength, with the sources color and sky (and background under a sky). À� sAøˆ ÷ðWhere reflections come from: the background (the sky, or with a colour background the ambient colour), none, or the sky.AøŠ !sky_top_colorA¨‹ õîThe gradient straight up, drawn when there is no sky (the gradient of scenes before Sky; a sky's material has its own).A¨� )"sky_horizon_colorAè� �†The gradient at the horizon from above, drawn when there is no sky.Aˆ� -&ground_bottom_colorAÈ� unThe gradient straight down, drawn when there is no sky.AÈ� /(ground_horizon_colorAˆ‘ �†The gradient at the horizon from below, drawn when there is no sky.A¨’ tonemap_modeAØ’  linearAø’ reinhardA˜“  filmicA¸“ acesAØ“ #agx` €   À à Aˆ” ¥žTone mapping: how the lit colour becomes the picture's (linear clips at white).A¸• ' tonemap_exposureAè• A:Exposure before tone mapping.A¸– !tonemap_whiteAè– ³¬The brightness drawn as white by reinhard, filmic and aces (linear and agx ignore it).A¨˜ ssr_enabledAؘ ífScreen-space reflections: smooth surfaces reflect what the picture shows of the scene; where a reflection leaves the picture, the reflection probes' or the sky's reflection stays.AØ› !ssr_max_stepsAˆœ åÞHow many steps a reflection's ray is marched in, 1 to 512: more reach further across the picture and cost more.Aø� ssr_fade_inA¨ž ãÜHow a reflection fades in from the surface it starts on (an exponent of the share of the march taken: 0 none).A˜  ssr_fade_outAÈ  ÷ðHow a reflection fades out towards the end of its march, into the probes' or the sky's reflection (an exponent: 0 none).AÈ¢ -&ssr_depth_toleranceAˆ£ ±*How far behind a surface in the picture a reflection's ray may pass and still hit it, in metres: larger fills gaps, smaller keeps thin objects apart.AÈ¥ ÕNGlass (a material with refraction_enabled, or glTF's transmission) refracts the scene behind it, from the picture; off, it refracts only the sky and the ambient light.A¨¨ ±ªScreen-space ambient occlusion: the ambient light is darkened in creases and corners.Aè© ssao_radiusA˜ª ohHow far away an occluder darkens a point, in metres.A˜« #ssao_intensityAÈ« ;4How dark the occlusion is.A˜¬ ssao_powerAȬ ¡šThe occlusion's exponent: larger darkens deep creases more than shallow ones.Aø­ ssao_detailA¨® ƒ|How much a finer occlusion, at a quarter of ssao_radius, adds.A¸¯ ssao_horizonAè¯ íæOccluders this close to a surface's plane (0 to 1) are ignored, so flat and gently curved surfaces stay unoccluded.Aè± #ssao_sharpnessA˜² ±ªHow strictly the occlusion's blur keeps within one surface (1: never across an edge).Aس )"ssao_light_affectA˜´ ËÄHow much the occlusion also darkens direct light, times ssao_ao_channel_affect (at 0, not at all).Aøµ 3,ssao_ao_channel_affectA¸¶ ·°How much of ssao_light_affect darkens direct light (Godot's rule: their product counts).Aø· glow_enabledA¨¸ YRBright parts of the picture glow (bloom).Až¹ ð?A®¹ ð?Aȹ glow_levels/Aø¹ WP of the picture's size adds to the glow.Aغ 5.How much the blur at 1/A˜» %glow_normalizedAÈ» QJThe levels are scaled to add up to 1.A¨¼ #glow_intensityAؼ 3,The glow's brightness.A˜½ !glow_strengthAȽ kdScales each level's blur (larger reaches further).AȾ glow_mixAè¾ ‰‚With glow_blend_mode mix: how much the glow replaces the picture.AˆÀ glow_bloomA¸À Ÿ˜How much the whole picture glows, not only what is above glow_hdr_threshold.AèÁ %glow_blend_modeA˜Â additiveA¸Â  screenAØÂ softlightAˆÃ #mix !@!`!�k�!A¸Ã SLHow the glow is laid over the picture.A˜Ä +$glow_hdr_thresholdAØÄ YRThe brightness above which a pixel glows.AÈÅ #glow_hdr_scaleAøÅ qjHow far above glow_hdr_threshold a pixel glows fully.AøÆ 3,glow_hdr_luminance_capA¸Ç _XThe brightest a pixel counts as in the glow.A¨È !Fog is drawn.AØÈ fog_modeAøÈ exponentialA¨É  depth€$°$AØÉ ÝÖHow fog thickens with distance: exponentially by fog_density, or between fog_depth_begin and fog_depth_end.AÈË %fog_light_colorAøË )"The fog's colour.A¸Ì ' fog_light_energyAèÌ 1*The fog's brightness.A¨Í %fog_sun_scatterAØÍ “ŒHow much the directional lights brighten the fog looking towards them.AøÎ fog_densityA¨Ï ÏÈExponential: the fog's density per metre; depth: its strength at fog_depth_end (1 hides everything).AˆÑ 3,fog_aerial_perspectiveAÈÑ § How much the fog takes the sky's colour instead of fog_light_color (with a sky).AøÒ #fog_sky_affectA¨Ó MFHow much of the fog covers the sky.AˆÔ fog_heightA¸Ô ]VThe height below which height fog thickens.A¨Õ +$fog_height_densityAèÕ ©¢Height fog's density per metre below fog_height (0 none; negative: fog above it).A¨× %fog_depth_curveAØ× QJDepth fog: the exponent of its curve.A¸Ø %fog_depth_beginAèØ _XDepth fog: where it starts, from the camera.AØÙ !fog_depth_endAˆÚ ?8Depth fog: where it is full.AØÚ ûôVolumetric fog is drawn: its own (volumetric_fog_density) and the scene's FogVolumes, which are drawn only while it is on.AèÜ 3,volumetric_fog_densityA¨Ý áÚThe volumetric fog's density per metre everywhere within volumetric_fog_length (0: only the FogVolumes' fog).A˜ß 1*volumetric_fog_albedoAØß ƒ|The colour the volumetric fog scatters the lights' light with.Aèà 5.volumetric_fog_emissionA¨á …~Light the volumetric fog gives off itself, unlit (black: none).A¸â C<volumetric_fog_emission_energyAˆã MFMultiplies volumetric_fog_emission.Aèã 70volumetric_fog_gi_injectA¨ä �†Kept for Godot (its SDFGI and VoxelGI light in the fog); not drawn.AÈå 92volumetric_fog_anisotropyA˜æ �How much more light the fog scatters forward than back, -0.9 to 0.9 (0: the same every way): the fog glows looking towards a light.A¸è 1*volumetric_fog_lengthAøè ƒ|How far from the camera the volumetric fog reaches, in metres.Aˆê ?8volumetric_fog_detail_spreadAØê ‰‚Kept for Godot (how its froxels spread with distance); not drawn.Aøë A:volumetric_fog_ambient_injectAÈì ÉÂHow much the ambient light lights the volumetric fog and the fog volumes (0: only the lights do).A¨î 92volumetric_fog_sky_affectAøî wpHow much of the volumetric fog covers the sky (0: none).Aøï _Xvolumetric_fog_temporal_reprojection_enabledAèð …~Kept for Godot (its froxels' smoothing over frames); not drawn.Aøñ ]Vvolumetric_fog_temporal_reprojection_amountAèò ;4Kept for Godot; not drawn.A¸ó +$adjustment_enabledAøó …~Brightness, contrast and saturation are applied to the picture.Aˆõ 1*adjustment_brightnessAÈõ SLMultiplies the picture (1: unchanged).A¨ö -&adjustment_contrastAèö {tSpreads the picture's values from mid grey (1: unchanged).Aø÷ 1*adjustment_saturationA¸ø ‡€Spreads the picture's colours from grey (0: grey, 1: unchanged).AÈù ÕÎThe base of a camera's attributes: its exposure (and, a CameraAttributesPractical, its depth of field).A¨û /(exposure_sensitivityAèû —�Kept for Godot (the camera's ISO, with physical light units); not drawn.Aˆý -&exposure_multiplierAÈý —�Multiplies the Environment's tonemap_exposure for this camera's picture.Aèþ 1*auto_exposure_enabledA¨ÿ ›”Kept for Godot (exposure adapting to the picture's brightness); not drawn.AØ€ -&auto_exposure_scaleA˜� -&auto_exposure_speedAØ� 92CameraAttributesPracticalA¨‚ ñêA camera's depth of field (what lies beyond or before the focus is blurred) and exposure, in Godot's practical terms.A¨„ /(dof_blur_far_enabledAè„ kdWhat lies beyond dof_blur_far_distance is blurred.Aè… 1*dof_blur_far_distanceA¨† qjWhere the far blur starts, in metres from the camera.A¨‡ 5.dof_blur_far_transitionAè‡ ŸOver how many metres past dof_blur_far_distance the far blur grows to dof_blur_amount (negative: as a lens does, growing with the distance).A˜Š 1*dof_blur_near_enabledAØŠ mfWhat lies before dof_blur_near_distance is blurred.AØ‹ 3,dof_blur_near_distanceA˜Œ slWhere the near blur starts, in metres from the camera.A˜� 70dof_blur_near_transitionAØ� ñêOver how many metres before dof_blur_near_distance the near blur grows to dof_blur_amount (negative: as a lens does).AØ� %dof_blur_amountAˆ� ùòHow strong the blur is, 0 to 1 (1: a blur of 64 pixels' radius in a picture 1080 pixels high, in proportion at any size).A˜’ A:auto_exposure_min_sensitivityAè’ A:auto_exposure_max_sensitivityA¸“ unThe sky an Environment draws and lights the scene with.A¸” sky_materialAè” SkyMaterialA˜• ›”What the sky looks like: a ProceduralSkyMaterial or a PanoramaSkyMaterial.AÈ– !radiance_sizeAø– 64A˜— 128A¸— 256AØ— 512Aø— 1024A˜˜ +2048°á€K KÀKàKL LAؘ wpThe reflection map's face in texels (drawn at most 128).AØ™ ñêThe base of the sky materials (Materials in Godot; apart here, so neither kind of material goes in the other's slot).AØ› éâA sky drawn from colours: a gradient from the horizon up and one down, with a glow around each directional light.AØ� /(The sky straight up.A˜ž 5.The sky at the horizon.AØž sky_curveAˆŸ žHow quickly the sky turns from the horizon's colour to the top's (smaller: nearer the horizon).AØ  1*sky_energy_multiplierA˜¡ 1*The sky's brightness.AØ¡ 92The ground straight down.A¨¢ ;4The ground at the horizon.Aø¢ ground_curveA¨£ •ŽHow quickly the ground turns from the horizon's colour to the bottom's.AȤ 70ground_energy_multiplierAˆ¥ 70The ground's brightness.AÈ¥ !sun_angle_maxAø¥ }vHow far the sun's glow reaches from its centre, in degrees.Aˆ§ sun_curveA¸§ YRHow the glow fades towards sun_angle_max.A¨¨ )"energy_multiplierAè¨ 92Multiplies the whole sky.A¸© -&PanoramaSkyMaterialAø© }vA sky drawn from an equirectangular image around the scene.Aˆ« panoramaA¨« Texture2DAØ« …~The equirectangular image: a Radiance HDR (.hdr) or a PNG file.Aè¬  filterAˆ­ ohSample the panorama smoothly (off: its texels show).Aˆ® 70Multiplies the panorama.AÈ® PackedSceneAø® ¯¨A scene to instance: an .rscn or .rscnb file, or a model whose objects become nodes.A¸° rscnAذ  rscnbAø° rmdlA˜± rmdlcmdA¸± modelerAر gltfAø± glbA˜² ×ÐA model for ModelInstance3D: .rmdl (a model document), .rmdlcmd (its commands), .modeler, .gltf or .glb.Aø³ »´An AnimaScript file (Rive's scripting language) holding one class that extends NodeScript.Aȵ asÐZAèµ �†An image: a PNG file, or a Radiance HDR (.hdr) file for a panorama.Aˆ· pngA¨· hdr�[°[AÈ· RiveSourceAø· ÉÂThe base of the files a view model is declared in: a Rive file (.riv) or Rive's text data (.rml).Aع RiveFileAø¹ ÑÊA Rive file (.riv), whose artboards an ArtboardTexture draws and whose view models a ViewModel names.AØ» rivà]Aø» RiveDataA˜¼ ÝÖRive's text format (.rml), read for its data only: the view models, enums and converters a ViewModel names.Aˆ¾ rml_A¨¾ ëäA texture drawn from an artboard of a Rive file: a placeholder in the tools, the live artboard in a built project.A¨À fileAÈÀ aZThe Rive file (.riv) that holds the artboard.A¸Á artboardAØÁ /(The artboard's name.A˜Â !state_machineAÈ ™’The state machine an instance runs; empty for the artboard's default one.AˆÄ » The texture's size in pixels, 1 to 8192 each; 0 x 0 for the artboard's own size.À�°æ°7à7ÐæAØÅ ³,When its picture is drawn again after the first: never, once (again each time this is set to once), while a surface that shows it was drawn in the last frame (when_parent_visible is the same: a texture has no parent), or whenever the artboard changes. The artboard always plays.A˜Ê update_fpsAÈÊ “ At most this many new pictures a second, by the scene's clock (the first change after a pause is drawn at once); 0 draws every change.AèÌ %ViewportTextureA˜Í žThe picture a SubViewport draws, drawn live in any texture slot; its size is the SubViewport's.AèÎ !viewport_pathA˜Ï «¤The SubViewport, by its path from the root of the scene that declares the texture.AØÐ ûôA view model of a Rive file: the data a scene's bindings read and write, bound to the scene's artboard in a built project.AèÒ �úThe Rive file (.riv) or RML data (.rml) that declares the view model; empty for the data of the Rive project the scene is in.AøÔ 3,The view model's name.A¸Õ instanceAØÕ ÁºThe instance whose values the scene starts from; empty for the view model's default instance.A¨× -& bake` writes them.Aè× ¯¨A LightmapGI's bake: an .lmbake file and the lightmap images and UVs beside it, as `A¨Ù  lmbake°lAØÙ )" bake` writes it.A˜Ú ™’A ReflectionProbe's capture: an .rprobe file, its filtered cube map, as `AÈÛ  rprobeÐmAøÛ ãÜA sound an AudioStreamPlayer3D plays: a WAV, MP3 or FLAC file, which the build declares as a Rive audio asset.AèÝ wavAˆÞ mp3A¨Þ flacðno0oAØÞ #AudioStreamWAVAˆß [PA WAV file (Godot's class name for one).ðnAøß #AudioStreamMP3A¨à cRAn MP3 file (Godot's class name for one).oA˜á IBThe base of the collision shapes.Aøá  marginA˜â ÇÀKept for Godot, whose physics engines pad shapes by it; overlaps, rays and picks here are exact.Aèã BoxShape3DA˜ä ;4Its size along x, y and z.Aèä !SphereShape3DA˜å E>A sphere centred on the origin.Aèå Its radius.A˜æ #CapsuleShape3DAÈæ ›”A cylinder with a half sphere at each end, along y, centred on the origin.Aøç OHThe radius of its cylinder and caps.AØè ³¬Its whole height, the caps included; under twice the radius, the radius is half of it.A˜ê %CylinderShape3DAÈê [TA cylinder along y, centred on the origin.A¸ë Its height.Aèë /(ConvexPolygonShape3DA¨ì ãÜThe convex hull of a set of points: a mesh's, made by the editor's Create Collision Shape, or written by hand.A˜î …~The points, in any order; those inside the hull change nothing.A¨ï 1*ConcavePolygonShape3DAèï ߨA surface of triangles, any shape (a mesh's, made by the editor's Create Collision Shape); it has no inside.AØñ ¥žIts triangles, three points each, the front face clockwise as Godot winds them.Aˆó +$backface_collisionAÈó xIts faces are hit from both sides; off, only from the front.AØô ýöA 3D Bézier curve: points with in and out handles (relative to the point) and tilts, baked into points bake_interval apart.Aèö  closedAˆ÷ UNIts last point joins back to its first.Aè÷ !bake_intervalA˜ø ÁºAbout how far apart its baked points are, in metres; what follows it is sampled between them.Aèù  _dataAˆú ÙRIts points, as Godot stores them: "points", a PackedVector3Array of each point's in, out and position, and "tilts", a PackedFloat32Array of each point's tilt in radians.Aøü point_countA¨ý ÍÆHow many points it has: fewer than _data holds drops the last ones, more adds points at the origin.Aˆÿ )"up_vector_enabledAÈÿ ¡It bakes an up vector at each baked point (parallel transport frames, so the curve does not twist), which PathFollow3D's oriented mode needs.Aø� £A value over 0 to 1 (a particle's life): points with tangents, between min_value and max_value, sampled from a bake of bake_resolution points.A¨„ min_valueAØ„ IBThe least value a point may have.A¸… max_valueAè… OHThe greatest value a point may have.AȆ %bake_resolutionAø† aZHow many points it is baked into, at least 1.Aè‡ ¹2Its points, as Godot stores them: for each, Vector2(offset, value), the left and right tangents, and the left and right tangent modes (0 free, 1 linear).A¸Š žHow many points it has: fewer than _data holds drops the last ones, more adds points at (0, 0).AˆŒ § Colours over 0 to 1 (a particle's life): stops at offsets, blended between them.A¸� offsetsAÞ� ð?Aè� ohEach stop's place, 0 to 1, in the order of `colors`.AèŽ  colorsAž� "ð?ð?ð?ð?ð?AÈ� ƒ|Each stop's colour (sRGB, straight alpha), as many as offsets.AØ� +$interpolation_modeA˜‘ constantA¸‘ # cubic`  ˆÀˆAè‘ ÑÊHow colours blend between stops: linearly, not at all (each stop's until the next), or along a cubic.AÈ“ 92interpolation_color_spaceA˜” srgbA¸” linear_srgbAè” # oklab Š@ŠpŠA˜• =6The space colours blend in.Aè• #ShaderMaterialA˜– »4A material drawn by a shader of your own: a .wgsl file of WGSL with Godot's stage functions, render modes and uniforms, whose uniforms are its parameters.Aè˜  shaderAˆ™  ShaderA¨™ �–The shader (a .wgsl file) that draws the material; none draws the fallback.AØš 5.shader_parameter/<name>A˜› ïèThe value of the shader's uniform <name>: a number, a bool, a vector, a Color (a source_color uniform) or a texture.A˜� § A shader file (.wgsl): WGSL with Godot's shader_type, render_mode and uniform declarations and stage functions vertex(), fragment() and light().AÈŸ wgslÐ�AèŸ FogMaterialA˜  ÓLA FogVolume's look, Godot's built-in fog: its density, the colour it scatters light with, the light it gives off, how it thins with height and how soft its edges are.Aø¢ densityA˜£ ÛÔThe fog's density per metre (negative takes fog away from the volumetric fog and the other volumes there).Aˆ¥  albedoA¨¥ c\The colour it scatters the lights' light with.A˜¦ e^Light it gives off itself, unlit (black: none).Aˆ§ #height_falloffA¸§ ÁºHow fast it thins above the volume's origin, per metre (0: the same density at every height).Aˆ© edge_fadeA¸© üHow softly it fades out towards the shape's edges (an exponent: 0 a hard edge, higher softer).Aˆ« G@The base of the occluder shapes.AØ« %ArrayOccluder3DAˆ¬ ÙÒTriangles that occlude: a baked .occ file (hedra bake --occluders), or written by hand as a sub_resource.Aø­ occ—A˜® G@Its points, in the node's space.Aè® indicesAˆ¯ g`Its triangles: three indices into vertices each.Aø¯ !BoxOccluder3DA¨° ;4A box centred on the node.Aø° ' SphereOccluder3DA¨± ÕÎA sphere centred on the node (Godot's mesh of it, 7 rings of 7 segments, which lies inside the sphere).Aˆ³ #QuadOccluder3DA¸³ § A rectangle in the node's XY plane, centred on it (it occludes from both sides).Aè´ A:Its width (x) and height (y).A¸µ )"PolygonOccluder3DAøµ ÝÖA flat polygon in the node's XY plane, convex or not, its edges not crossing (it occludes from both sides).Aè· polygonAˆ¸ KDIts corners, in order (x, y each).Aè¸ �A region's walkable polygons and the settings a bake makes them with (agent size, cells, regions, edges, detail, filters, source geometry).A˜» aZThe polygons' corners, in the region's space.Aˆ¼ polygonsA¨¼ ¯(The polygons: an Array of PackedInt32Array, each the indices into vertices of a convex polygon's corners, clockwise seen from above (Godot's order).Aè¾ 1*sample_partition_typeA¨¿ watershedAØ¿ #monotone°ŸàŸДAˆÀ ›How a bake cuts the walkable cells into regions: watershed (the best polygons, slowest), monotone (fastest, long thin polygons) or layers.A¸Â A:geometry_parsed_geometry_typeAˆÃ #mesh_instancesA¸Ã ' static_collidersAèà both�¡À¡ð¡A˜Ä «$What a bake reads as geometry: MeshInstance3Ds (and ModelInstance3Ds' parts), StaticBody3Ds' collision shapes in geometry_collision_mask, or both.AØÆ 5.geometry_collision_maskA˜Ç Ÿ˜The collision layers of the static bodies a bake reads (bit k: layer k + 1).AÈÈ A:geometry_source_geometry_modeA˜É +$root_node_childrenAØÉ /(groups_with_childrenA˜Ê 3groups_explicit ¤à¤ ¥AØÊ õîWhere a bake finds its geometry: under the region, under the nodes of geometry_source_group_name, or those nodes alone.AØÌ ;4geometry_source_group_nameA¨Í ?8navigation_mesh_source_groupAøÍ ‡€The group a bake takes its geometry from in the two group modes.AˆÏ cell_sizeA¸Ï ›”The width of a bake's cells, in metres (it should be the map's cell_size).AèÐ cell_heightA˜Ñ ¡šThe height of a bake's cells, in metres (it should be the map's cell_height).AÈÒ border_sizeAøÒ ‘ŠMetres a bake reads beyond the baked area's edge, so that tiles meet.A˜Ô agent_heightAÈÔ ‹„The least height, in metres, an agent needs over a walkable floor.AèÕ agent_radiusA˜Ö yrHow far, in metres, the mesh keeps from walls and ledges.A¨× %agent_max_climbAØ× aZThe highest step, in metres, an agent climbs.AÈØ %agent_max_slopeAøØ xThe steepest floor, in degrees, an agent walks on (0 to 90).AˆÚ %region_min_sizeA¸Ú ‹„A walkable island smaller than this many cells across is left out.AØÛ )"region_merge_sizeA˜Ü —�Regions smaller than this many cells across are merged into bigger ones.A¸Ý %edge_max_lengthAèÝ ƒ|The longest an outline's edge may be, in metres (0: no limit).AøÞ #edge_max_errorA¨ß •ŽHow far, in cells, a simplified outline may stray from the cells' edge.AÈà /(vertices_per_polygonAˆá ™’The most corners a polygon has (3 to 6) before the detail mesh splits it.A¸â 3,detail_sample_distanceAøâ ¿¸How far apart, in cells, the detail mesh samples the floor's height (under 0.9: no samples).AÈä 5.detail_sample_max_errorAˆå �†How far, in cell heights, the detail mesh may stray from the floor.A¨æ ?8filter_low_hanging_obstaclesAøæ ‹„Low obstacles an agent can step over (kerbs, stairs) are walkable.A˜è +$filter_ledge_spansAØè �zCells at a drop higher than agent_max_climb are not walkable.Aèé G@filter_walkable_low_height_spansA¸ê ƒ|Cells with less than agent_height above them are not walkable.AÈë %Node.view_modelAøë #Node.data_pathA¨ì Node.scriptAØì 92Node.unique_name_in_ownerA¨í YRGeometryInstance3D.visibility_range_beginA˜î g`GeometryInstance3D.visibility_range_begin_marginAˆï UNGeometryInstance3D.visibility_range_endAèï c\GeometryInstance3D.visibility_range_end_marginAØð aZGeometryInstance3D.visibility_range_fade_modeAÈñ ;4GeometryInstance3D.gi_modeA˜ò [TGeometryInstance3D.gi_lightmap_texel_scaleAˆó 92GeometryInstance3D.layersAØó IBCollisionObject3D.collision_layerA¸ô G@CollisionObject3D.collision_maskAˆõ ?8Node3D.listener_pass_throughAØõ QJGeometryInstance3D.input_ray_pickableA¸ö KDGeometryInstance3D.pointer_forwardA˜÷ e^OccluderInstance3D.bake_simplification_distanceAˆø OHEnvironment.volumetric_fog_gi_injectAèø WPEnvironment.volumetric_fog_detail_spreadAÈù wpEnvironment.volumetric_fog_temporal_reprojection_enabledAÈú unEnvironment.volumetric_fog_temporal_reprojection_amountAÈû QJCameraAttributes.exposure_sensitivityA¨ü SLCameraAttributes.auto_exposure_enabledAˆý OHCameraAttributes.auto_exposure_scaleAèý OHCameraAttributes.auto_exposure_speedAÈþ unCameraAttributesPractical.auto_exposure_min_sensitivityAÈÿ unCameraAttributesPractical.auto_exposure_max_sensitivityAÈ€ ËNNavigationAgent3D.pathfinding_algorithmе¶0¶`¶°¶ ·�·ð·`¸и ¹�¹à¹@º�ºàº@» »¼p¼мP½н0¾�¾ð¾P¿пPÀA¨‚ G*Viewport.own_world_3d0Á@o�óAø‚ _enabledA˜ƒ Kvertex_color_°Ð0ä0åì À�Óð�@«Aøƒ  tiltsA˜„ unshadedA¸„ 'per_pixel Â@ÂAè„ Å¾per_pixel lights the material; unshaded draws its albedo as it is (glTF's KHR_materials_unlit).A¸† ao_strengthAè† ¥žHow much ao_texture darkens: 0 not at all, 1 fully (glTF's occlusion strength).A˜ˆ ïèThe index of refraction: the reflectance of the non-metal part, and how transmitted light bends (KHR_materials_ior).A˜Š ›”Scales the non-metal reflection (KHR_materials_specular's specularFactor).AÈ‹ ibMultiplies specular (its alpha channel, as glTF).AÈŒ ‹„Tints the non-metal reflection seen head-on (specularColorFactor).Aè� ;4Multiplies specular_color.A¸Ž )"clearcoat_enabledAøŽ yrA clear coat over the material (KHR_materials_clearcoat).Aˆ� ;4The clear coat's strength.AØ� =6The clear coat's roughness.A¨‘ g`Multiplies clearcoat (its red channel, as glTF).A˜’ xMultiplies clearcoat_roughness (its green channel, as glTF).A¨“ c\The clear coat's own tangent-space normal map.A˜” 3,clearcoat_normal_scaleAØ” YRThe strength of clearcoat_normal_texture.AÈ• +$anisotropy_enabledAˆ– ¯¨Highlights stretched along a direction, as brushed metal (KHR_materials_anisotropy).AÈ— slHow far the highlights stretch: 0 not at all, 1 fully.AȘ ¡šThe direction of the stretch, in radians from the tangent, counter-clockwise.Aø™ ÓÌThe direction (red and green, from the tangent) and a strength (blue) multiplying anisotropy, as glTF.AØ› ³¬The colour of a cloth's sheen at grazing angles; black has none (KHR_materials_sheen).A˜� 5.Multiplies sheen_color.AØ� 3,The sheen's roughness.A˜ž wpMultiplies sheen_roughness (its alpha channel, as glTF).A˜Ÿ —�Light passes through the surface, as glass (KHR_materials_transmission).A¸  ½6How far a thin wall (thickness 0) bends the scene behind it along its normal, as a share of the picture (with the Environment's screen_refraction_enabled).Aˆ£ wpHow much light passes through (with refraction_enabled).Aˆ¤ mfMultiplies transmission (its red channel, as glTF).Aˆ¥ ߨThe thickness of the volume under the surface, in the mesh's units; 0 is a thin wall (KHR_materials_volume).Aø¦ kdMultiplies thickness (its green channel, as glTF).Aø§ üThe distance light travels in the volume before it is tinted to attenuation_color; 0 is never.AÈ© aZThe colour light takes on through the volume.A¸ª ÏÈSpreads transmitted light into colours, as Abbe's number does: 20 / Abbe (KHR_materials_dispersion).A˜¬ �†A thin film's rainbow colours, as soap (KHR_materials_iridescence).A¸­ kdMultiplies iridescence (its red channel, as glTF).A¸® OHThe thin film's index of refraction.A˜¯ A:iridescence_thickness_minimumAè¯ Ÿ˜The film's thickness in nanometres where iridescence_thickness_texture is 0.A˜± A:iridescence_thickness_maximumAè± ×ÐThe film's thickness in nanometres where iridescence_thickness_texture is 1, and everywhere without one.Aȳ {tChooses the film's thickness (its green channel, as glTF).AØ´ )"backlight_enabledA˜µ ¿¸Light passes through and scatters, as leaves and paper (KHR_materials_diffuse_transmission).Aè¶ yrHow much light scatters through (with backlight_enabled).Aø· �zMultiplies diffuse_transmission (its alpha channel, as glTF).Aˆ¹ [TThe colour of the light scattered through.Aø¹ 1*Multiplies backlight.A¸º _texcoordAèº OH samples: 0 the first, 1 the second.AÈ» The UV set Aø» _offsetA˜¼ KD (KHR_texture_transform's offset).Aø¼  Moves A˜½ _rotationAȽ ‹„ counter-clockwise, in radians (KHR_texture_transform's rotation).Aè¾  Turns Aˆ¿  _scaleA¨¿ IB (KHR_texture_transform's scale).AˆÀ Scales �[A¸À shadow_biasAèÀ ÏÈPushes the shadow's test towards the light, in shadow-map texels, against acne (Light3D's in Godot).AÈ +$shadow_normal_biasAˆÃ žPushes the shadow's test along the surface's normal, in shadow-map texels (Light3D's in Godot).AØÄ 5.): no second GPU canvasA˜Å  (A¸É  whiteAØÉ flat-normalAˆÊ magentaA¨Ê 3,shaders/render/surfaceAèÊ /(shaders/render/linesA¨Ë =6shaders/render/post_outlineAøË =6shaders/render/post_composeAÈÌ globalsAøÌ outlineA˜Í composeA¸Í surfaceAØÍ vs_surfaceAˆÎ fs_surfaceA¸Î !surface-blendAèÎ surface-idA˜Ï  fs_idA¸Ï  linesAØÏ vs_lineAøÏ fs_lineA˜Ð lines-topAÈÐ vs_pointAèÐ fs_pointAˆÑ points-topA¸Ñ fs_outlineAèÑ fs_composeA˜Ò  vs_skyA¸Ò  fs_skyAØÒ =6shaders/render/post_effectsA¨Ó /(shaders/render/probeAèÓ vs_fullAˆÔ  pipelineA¸Ô 3,the host rejected the AøÔ +$ bind group layoutA¸Õ g`' not found (is shaders/render/ in the project?)A¨Ö #shader asset 'AØÖ aZ): no GPU canvas (the host has no GPU device)AÈ× cpuAè× /(no adapter matches 'A¨Ø ÕÎrive renders only on the GPU device of its host and has no software adapter: on macOS it needs a Metal-capable GPU (the rive-cli backends for Linux and Windows are unverified). `render --adapter list` shows the adapter rive reportsAˆÜ ; A¨Ü available: AØÜ A:no software adapter availableA¨Ý A:no graphics adapter availableAøÝ  [A˜Þ riveA¸Þ  otherAØÞ  metalAøÞ  AppleA˜ß  webgpuA¸ß glAØß dx12Aøß  vulkanA˜à ;4instance-animation-unknownAèà # does not haveA˜á C<" (instance_animation), which Aèá -&" plays animation "A¨â ' its animations: AØâ +$ has no animationsA˜ã C<instance-state-machine-unknownAèã KD" (instance_state_machine), which AÈä 3," runs state machine "Aˆå E>the scene has no state machinesAØå J>the scene's state machines are ÈA¸æ  event:AØæ signal:Aøæ  res://A˜ç ' instance-invalidAÈç KD holds neither a scene nor a modelA¨è embedded AØè ' embedded-ignoredAˆé «¤only the root scene's embedded files are used; instance the unpacked scene insteadAÈê file-readAøê MFinstance the unpacked scene insteadAØë ·° is a packed scene, and its embedded files are ignored when another scene instances it: A˜í root-missingAÈí 1*the scene has no nodeAˆî nameA¨î )"node-type-missingAèî E>" has neither type nor instanceA¸ï %the root node "Aèï #parent-missingA˜ð ib" has no parent (only the first node is the root)A˜ñ  node "A¸ñ  parentAØñ ' parent-not-foundAˆò " not foundA¸ò parent "AØò #name-duplicateAˆó A:" already has a child named "AØó ' override-missingAˆô KD" not found in the instanced sceneAèô 92override-outside-instanceA¸õ ‘Š" has neither type nor instance, but is not inside an instanced sceneAØö ibgive it a type, or name a node inside an instanceAØ÷ state "Aø÷ 's blendA˜ø 5.state-animation-unknownAØø MF", which the scene does not declareA¸ù +$ names animation "Aøù =6the scene's animations are AÈú qjthe scene instances no model with a clip of that nameAÈû ExitAèû # toggleà=àWðýA¨‚  Dw`zÕd�Ø‹J|l_b‡-]›ÇÆö:©y4‚yx´‰ÓË`ñKË6„þ¸íþ”C¥>'©¦=z”·¸)ˆfÌ�¨&4*€ÿc¡R0Á4`ÿ¼Ég|ñA8?,üÀí6)ƒ§›�1©„óc‘Å}Óeð¼5Cö.¤?–ê™9�Ï›û�dÀˆpÂz¢}ðU&º‘Œ…N–ê¯(¶ï&â»åÛ²£«°ÚêoÉOFk®È’Ë»ãÚz·½ªÜ�‡�Yå¶ê©ÂTúW�deTóéø-³½~)p$wùß6ïÆvêû‹k wåú®Ä…ˆ•Yž¹Ú›Suý÷´ˆ�¨Òüµ᪢R|£D™Õ¥“„-æÊ…Ž¸å¸Ÿ½ß¦²&§­—Ð/xsÈ$Ì^‚;V�ú-ö¢Êk4yù´Ë¼†�×·&¡þ6ô°æ2¸$ŸC1] ?æíÆ”}tˆÏ_©ø|ÎHµáÛi››"ÚRD¢ÂA«�gÕò¥ kº`Å—`Ë鸶½8>G#g$í ㆠvÀ6”Λ¨�“pD¹ÂÂ’s¸Œ•ç¹¹;Hów½�(¨JðÕì´2RÝ l (â_SŠ”#Y�7è¬yìH¯°D"˜'ÛÜk¿øðŠÅÚÒî6-‹¬w‘‡ª„ø­×꺔êR»Ì†¥é9¥'ê¨dˆŽ±äŸÒ‰>ùî+ŽZ·ªêŒ¤¶11eU%°Í¿>_UŽ€Ön·*�± ‹ ÒduÞÈ.�¾’…û=Ķ{síœLu¤ZÐ(Äße’Mq3õ«{ÐÆâ?™–_š„xÛ�¿|÷À¥VÒsï­š˜'vc¨•YÁ~±S|»¯qÞ�h×é «b!q&’ÑÈU»i °¶;+*Ä\äã[šzйŽÆñ@íg²£7.‘_èßÆâ¼º;1a‹wl©Š}9®U"ÇSíÜÇÙuu\TêˆÒ’si™$$ª‡wÐÿ-­Ô´JbÚ—<ì„aÝúнK'¦º”9E­±ÏôüCK,³Î�1ü^÷_B¢>;š5õ÷ÒÊ Êƒòµ‡ýH~à‘·ÑtžÚ�Xv%ÆQÅîÓ®‡–÷R;uD;š'Š’•šmÁ±,÷º€Éñî{ÚtP —ê’då¼¥a•¶}Jì]’Žî’“I´¤62ªw¸[áMľ”•æÙ¬°:÷|�Ø\ 5Ü$´´KB.áˈPo ̼Œþª$Ë ÿ믾Õí½ÎþæÛ—¥´6A_p‰üÎa„wÌ«¼BzåÕ”¿Öµil¯½7†#„GG¬Å§+eâX·Ñ;ßO�—nƒ ×£p= ×£ÌÌÌÌÌÌÌÌ€ Èú@œPÃ$ô€–˜ ¼¾(kîù•@·Cº¥Ôè*ç„‘€ô æµ 1©_ã¿ÉŽÅ.¼¢±@v:k Þè‰#ÇŠb¬Åëx­€z·&ר�¬n2x†‡´W ?h©¡íÌÎÂÓ „@aQY„È¥�¹¥o¥: ô'�Ë΄ ”øx9?�å ¹6×�¡ÞNgÍÉòÉ–"�E@|oü�µp+¨­Å�ãL67ÅÆàÃVß„ö\l:– š³É{ΗÀ ÛH»½ðôˆ µP™v–1ëPâ¤?¼ý%åŽOë¾7ÏиÑï’­'Æ«·ÇCư·–åo\ê{Î2~�‹óä‚¿]³n0ž¡b/5àEÞ¥�=!ŒÖ•C�)¯L{ÔQFðóÚÍ$ó+v؈Sîï¶“«h€é«¤8ÒÕAðqëfc£…QlN¦@< §eâÏPKÏПDí���‚Ç•h"×ò!£9»ëŒoêËjÃ%p åþE"š&'OŸÖª€�ïð"Ç‹Õà„+­ëøw… 3;L“›Õ¦ÏÿIx¦¤]"Ú2&¨ŸŒÒ$~§L»DL´<Ê£Lv¿>¢ᮺJö- ð¼y]¼3:³3:³3ê5Î]J‰BϺu†‚¬LRLDK³D:³CßE=Ïæ¾3Ž)‡$¹o<3333343Oܼ¾ü±wÿ{»œèè%;D33DC43;ü�­Ð�ä’gÙ§=®¼<º³<«³»µÉ¦­�¬q�ª´=`Ã?woÌK»´K¼¤KmSx@‘IÌ®nˆs÷éúX»C;´3¼£;6VûM6”ÂåBõüY˜Ë3;£C;´3Ç:‚%Ë…t׌‚k6“2c}Á»MÛ´MÜÃL¸€ÿª¨­µµ»V$’™� «4;Ã4:³3R0Á4`ÿ¼É¶ðÝ“³‰ü¼4<´D;Ã3½~)p$wùßøV¼“+~xYLCCDDD´C”}tˆÏ_©ø+‘ΗcL¤u;4C4443Dk¿øðŠYdËžŽÌL«£:««»«{ÐÆâ?™*@þލFåÌKÛ´M¼´LÒ’si™$$ªê¹ÐÕÑ åݼ3;³;º£;ê’då¼…õ¼¦»ôˆËCLÄDL´D+eâX·Ñ©¤N@aÃÓ;DDÄDLÄD¥ÔèAÐ’ ˆLDDDDDDD„ ”øx9?�@ÌÌÌÌÌÌÌÌo\ê{Î2~�¢#‚äÌLÌÄL¼£»E"š&'OŸ‘e”,Bb׫;º£:»£J¨­ÈŒ8eÞ°ÌK)C_¥%;¼CK´3;£<šqBù]Ä•ƒO2½Ð¥;ËDKÄ4LÄDé�pdîÚ–”Ì Hoè<3334;³3„k}´{x ò›¤#½]ŒgÀ;DCDDD4DÂÅ›[’†[†³©Eº’#Š »;˴̼ÌÛ² —ú\´*•„aò{tZ”ݼ<ʳJ»Ä;%Œ9Û4›¥–�i~ƒ¹úC¬3»³:¬³;ξéTS¿Ü·0ëŠSmí Ü4L³C;´3¥x\ӛΠÌõA´÷�ì1ËDKÄCLÄ4:0—ܵ âÖ„d®D.<3333333such as "angle" or "lamp/level"A¸´ ³¬a path names a property of the scene's view model, with / through nested view models, Aøµ binding-modeA¨¶ SL" is not one_way, two_way or to_sourceAˆ·  mode "A¨· ÓÌtwo_way also writes a change made to the node back to it; to_source only writes the node's value to itAˆ¹ }vone_way (the default) drives the node from the view model; A˜º binding-onceAȺ 3," is not true or falseAˆ»  once "A¨» g`leave it out (false) to keep the binding appliedA˜¼ “Œonce="true" applies the binding once, when it is bound, then lets go; A¸½  globalAؽ %global is emptyAˆ¾ ?8" is not a view model's nameAؾ global "Aø¾ #binding-globalA¨¿ ©¢(letters, digits, _ and spaces, not starting with a digit): the path starts in itAèÀ “Œglobal names a global view model of the scene's data, such as "Theme" AˆÂ converterA¸Â 3,binding-converter-nameAøÂ +$converter is emptyA¸Ã g`or one of its data source; leave it out for noneA¨Ä ·°converter names a converter: one the scene declares (a top-level DataConverter element) AèÅ #binding-numberA˜Æ 70" is not a finite numberAØÆ scale "AøÆ ¥žscale and offset are numbers, such as 2 or -0.5: node = source * scale + offsetA¨È offset "AÈÈ %binding-convertAøÈ convertA˜É MF" is not none or degrees_to_radiansAøÉ convert "A¨Ê g`none (the default) passes the number on as it isA˜Ë ³¬degrees_to_radians turns the view model's degrees into a node's radians (rotation:y); AØÌ )"binding-once-modeA˜Í £œa two_way binding cannot be once: it keeps the node and the view model in stepAÈÎ áÚor to_source (the node writes the view model once); a two_way binding keeps both in step, so it is never onceA¸Ð �zonce goes with one_way (the view model drives the node once) AÈÑ -&binding-output-modeAˆÒ one_wayA¨Ò two_wayAÈÒ +to_source)0)P)AˆÓ �– is an output: it is read, never written, so its binding is to_source, not A¸Ô £œwrite mode="to_source" so that the node's value is written into the view modelAèÕ ½¶current_speed, distance_to_target, is_target_reached, is_navigation_finished) is computed: A¸× žan output (global_position, screen_position, screen_visible, listener_volume_db, listener_pan, AˆÙ !binding-scaleA¸Ù ‹„ binding with scale 0 cannot write the node back to the view modelAØÚ qjgive scale another value, or make the binding one_wayAØÛ ³¬with scale 0 every source gives the node the same value, so none can be written back: A˜Ý +$material_override:AØÝ #mesh:material:AˆÞ ¿¸ of the node's material_override (a StandardMaterial3D, shared by every node that uses it): AØß The Aøß ¯¨ of the node's material_override (any material, shared by every node that uses it): A¸á �ˆ of the node's mesh's material (shared by every node that uses it): AØâ «¤ of the node's mesh's material (any material, shared by every node that uses it): A˜ä  mesh:A¸ä }v (shared by every node that uses it; a new mesh is built): AÈå  or Aèå 5. of the node's mesh, a A¨æ environment:AØæ ?8 of the node's environment: A¨ç material:AØç ©¢ of the node's material (a FogMaterial, shared by every FogVolume that uses it): A˜é attributes:AÈé ÇÀ of the camera's attributes (a CameraAttributesPractical, shared by every camera that uses it): A˜ë +$camera_attributes:AØë —† of the node's camera attributes (the cameras' without their own): €m`!Aøì artboard:A¨í æ¦ of the first ArtboardTexture the node shows (shared by every node that shows it): ÐI€K KÐI€KÐI€K Kp�‚à‚ð²A˜ï +$The position alongAØï +$The rotation aboutA˜ð 7The scale along 7à7à7 8AØð IB (metres, in the parent's space).A¸ñ QJ in radians (Euler YXZ, as rotation).A˜ò . in degrees.`8À8 9 ÈAØò yrThe scale along all three axes at once (a uniform scale).Aèó KDThe light's energy (its strength).AÈô ÓÌThe camera the scene is seen through: true makes it current (and no other), false gives the view back.A¨ö A:The field of view in degrees.Añö í€ïàï-p-A˜÷ ½¶ of the node's material_override (a StandardMaterial3D, shared by every node that uses it).Aèø �† of the node's mesh's material (shared by every node that uses it).Aˆú YRMultiplies the sprite's colour and alpha.Aøú ÏÈHow far along its Path3D's curve it is, in metres (wrapped round with loop, else held to the curve).AØü £œprogress as a share of the curve's baked length: 0 at its start, 1 at its end.Aˆþ ohHow far it sits to the side of the curve, in metres.Aˆÿ ]VHow far it sits above the curve, in metres.Aøÿ -&binding-signal-modeA¸€ OH binds a signal: it is one_way, not A˜� {tnothing is written back, so it is one_way (leave mode out)A¨‚ «˜a signal binding fires a view model trigger when the node emits the signal; ð²^€$Aèƒ +$binding-conversionA¨„ [T binds a signal to a trigger: it takes no A˜… G@remove scale, offset and convertAè… ‡ra signal binding fires a trigger, which holds no number: !°æAø† 70binding-signal-converterA¸‡ xnothing is converted or let go, so remove converter and onceAȈ “Œa signal binding fires a trigger each time the node emits the signal: Aè‰ 7$degrees_to_radians0<ðDA¨Š E>unexpected text after the valueAøŠ ]Vexpected a value, found the end of the textAè‹ ', found A˜Œ 92expected a string after 'AèŒ 70expected a value, found A¨� nullAÈ� # is not closedAø� '[' after A¨Ž , found AÈŽ -&expected '(' after Aˆ� #unknown word 'A¸� +$PackedFloat32ArrayAø� +$PackedVector3ArrayA¸� ' PackedColorArrayAè� +$PackedVector2ArrayA¨‘ ' PackedInt32ArrayAØ‘ %( is not closedAˆ’ 92 takes one string, found AØ’ NodePathAø’ StringNameA¨“ ExtResourceAØ“ SubResourceAˆ” c\PackedInt32Array takes 32-bit integers, found Aø” kdwrite whole numbers from -2147483648 to 2147483647Aø• nanA˜–  numberA¸– ohPackedVector2Array takes two numbers a point, found A¸— e^write x, y for each point, all flat in one listA¨˜ ohPackedColorArray takes four numbers a colour, found A¨™ slwrite r, g, b, a for each colour, all flat in one listA¨š slPackedVector3Array takes three numbers a point, found A¨› kdwrite x, y, z for each point, all flat in one listA¨œ 3, takes numbers, found Aèœ !(...), found A˜� 5.expected ',' or ')' in AØ� OHcannot parse float from empty stringA¸ž 1*invalid float literalAøž infinityA˜Ÿ ' invalid number 'AÈŸ ¿¸AÖŸ ²ð?$@Y@@�@ˆÃ@jø@€„.AÐcA„×—AeÍÍA _ BèvH7B¢”mB@åœ0¢B�ļÖB4&õk C€à7yÃAC Ø…W4vCÈNgmÁ«C=‘`äXáC@Œµx¯DPïâÖäKD’ÕMÏð€DA˜¡ 5. takes integers, found AØ¡ C< takes 32-bit integers, found A¨¢ KDColor takes 3 or 4 numbers, found Aˆ£ ' numbers, found A¸£  takes AØ£ SLcannot parse integer from empty stringA¸¤ A:invalid digit found in stringAˆ¥ SLnumber too small to fit in target typeAè¥ SLnumber too large to fit in target typeAȦ Vector2Aè¦ Vector2iAˆ§ Vector3A¨§ Vector3iAȧ Vector4Aè§  ColorAˆ¨ QuaternionA¸¨  BasisAب Transform3DAˆ© 70 does not fit in 64 bitsAÈ© integer Aè© ]Vexpected ':' after a dictionary key, found Aت aZexpected ',' or '}' in the dictionary, found AÈ«  levelsAè« 70values nest deeper than A¨¬ WPexpected ',' or ']' in the array, found Aˆ­ -&the end of the textAÈ­ -&unterminated stringAˆ® G@ as it is: write it as an escapeAØ® 1*a string cannot hold A˜¯ 1*\u takes 4 hex digitsAد -&unpaired surrogate A˜° 1*\U takes 6 hex digitsAذ =6 is not a Unicode characterA¨± ' unknown escape \Aر U+Aø± ¸ �0ßSSI¼NðJ �™°¥‡5R–H1—T˜W ™Y šA¾P¥R¥T¥V¥B€™� ™‚ ™ƒ ™„ ™… ™†™‡™ˆ™‰ ™Š ™‹ ™Œ ™� ™Ž™�™�(™‘)™’*™“+™”,™•-™–.™—/™˜(™™)™š*™›+™œ,™�-™ž.™Ÿ/™ h™¡i™¢j™£k™¤l™¥m™¦n™§o™¨h™©i™ªj™«k™¬l™­m™®n™¯o™²º™³‘™´†™¶‘B·‘B™¼‘™Âʙיĉ™Æ—BÇ—B™Ì—™Ò™Ó™Ö™B×™Bâ¥ã¥ä¡æ¥Bç¥Bòú™ó©™ô�™ö©B÷©B™ü©™ûFFûFIûFLûFFIûFFLûSTûSTûDFûD5ûD;ûNFûD=  AŸ½ $++++++++TVVVVVVVVAƽ Ÿ+++++++++[VVVVVVVJVV1P1P1P1P1P1P1P1P$Py1P1P18P1P1P1P1P1P1P1PN1N NN$nN1&nQN$PN9�S1P1P 1P1P1PS$P1\{\{\{\{\{y\{\{\-+IHx\{– +(***+»µ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*+++++++++++++ÍFÍ+%+UVVVVVUVV$��������+²Ñ²Ñ²Ñ²ÑÍÌ××××׃����������¬¬¬¬¬¬¬¬¬¬1P1P1P1P1P11P1P1P1P1P1P1P1P1PN1P1PN1P1P1P1P1P1P1P1‡¦‡¦‡¦‡¦‡¦‡¦‡¦‡¦*++++++++++++TVVVVVVVVVVVVAÃÁ !TVVVVVVVVVVVV *+++++++++++++*A™Â w*++++++++++++++++++++++++++VVl�++++++++++++++++++++++++++++++++++++++++++lA++VVVVVVVVVVVVVV,V+++++++++++++++++++++A¸Ã  lAæÃ è%%%%%%%%%%%%%%%%%%%%%%%%%Vzž&%%%%%%%%%%%%%%%++OVV,+VV9++UVV++OVV,+VV�7u[{\++OVV¬9++UVV++OVV,++VV2�Wo�~É×~-��~9oW��~~+++++++++++++$+—+++++++++*+++++VVVVV€����9»*++++++++++++++++++++++++++++++++++++++++���������������ɬ¬¬¬¬¬¬¬¬¬¬¬¬¬¬Ð N1´ÁÁ××$P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P1P××SÁGÔ×××++++++++++++A©Ç N1P1P1P1P1P1P1P $P1P1P1P1PAêÇ V+++++++++++y\{\{O{\{\{\{\{\{\{\{\{\{\-++y\{\-y*\'\{\{\{¤ ´\{\{Ox8+++++++++++++O-++AÛÈ HAåÈ *++++++++++++++++++++++++++A¡É ++++++++HVVVVVVVVAìÉ +++++++++++++UVVVVVVVVVVVVA¦Ê $+++++++++++VVVVVVVVVVVVAìÊ '$++++++++++++++++VVVVVVVVVVVVVVVVVAÍË *++++++++++VVVVVVVVVVAƒÌ *++++++++++VVVVVVVVVVAÄÌ +++++++++++UVVVVVVVVVVA¡Í V9A±Í 'QowAÀÍ |AÌÍ ƒŽ’—ªAÜÍ ´ÄAÖÎ ÆÉÛA¯Ï ÞáäAÈÏ çAžÐ êA™Ñ íA´Ñ Ì  àÿÿ¿çy$ÿÿÿþÿÿ9ÿÿÿÿ‡ÿÿÔþÿÃÒÎÍOÊËÏaÓÑ£Õ‚ÖÚÙÛ8±ÿÿŸÿÿÈÿÿ($ÿÿÿ3ÿÿ&ÿÿ~ÿÿ+*]ÿÿ(*?*=ÿÿEG***.ÿÿ2ÿÿ6ÿÿ5ÿÿO¥K¥1ÿÿ(¥D¥/ÿÿ-ÿÿ÷)A¥ý)+ÿÿ*ÿÿç)C¥*¥»ÿÿ'ÿÿ¹ÿÿ%ÿÿ¥¥$L àÿÿÿÿÿTt&%@?ÚÿÿÛÿÿáÿÿÀÿÿÁÿÿÂÿÿÇÿÿÑÿÿÊÿÿøÿÿªÿÿ°ÿÿŒÿÿÄÿÿ ÿÿùÿÿpÿÿÿ àÿÿPñÿÿ0ÐÿÿÿÿÿÀ `ЗøÿÿŠ@ôÿžçÿ‰Ûçÿ’çÿ“çÿœçÿ�çÿ¤çÿ8ŠŠæÿÿÿÅÿÿAâÿ�øÿÿVªÿÿJd€p~ ¶ÿÿ÷ÿÿÛãÿœÿÿ�ÿÿ€ÿÿ‚ÿÿ¬ðÿÿ£âÿAßÿºßÿäÿÿ ±ÿÿÿ0Ðÿÿ ÖÿñÿÖÿÕÕÿØÕÿäÕÿÖÿáÕÿâÕÿÁÕÿ ãÿÿÿÿ ¼ÿÿÿ¼Zÿ üuÿØZÿ0±ZÿµZÿ¿ZÿîZÿÖZÿëZÿÐÿÿ½ZÿÈuÿ0hÿ`üÿ àÿÿ(Øÿÿ@Àÿÿ àÿÿ àÿÿ"Þÿÿ0 1 x€�†‰ŠŽ��“”•–—šœ�žŸ¦©®± ² ·!¿"Å#È#Ë#Ý$ò#ö%÷& -:.=/>0?1@1C2D3E4P5Q6R7S8T9Y:[;\e?f@hAiBj@kClDoBqErFuG}H‚I‡J‰KŠL‹LŒM’N�OžPEW{|}X†YˆZ‰ZŠZŒ[Ž\�\¬]­^®^¯^Â_Ì`ÍaÎaÏbÐcÑdÕeÖf×gðhñiòjókôlõmùný-þ-ÿ-PiQiRiSiTiUiViWiXiYiZi[i\i]i^i_i‚ƒ„…†‡ˆ‰ÀuÏv€‰�Š‚‹…Œ†�p�q�vžwžxŸyŸz { |¡}¡³¢º£»£¼¤¾¥Ã¢Ì¤Ú¦Û¦åjê§ë§ìnó¢ø¨ù¨ú©û©ü¤&°*±+²N³„bºc»d¼e½f¾m¿nÀoÁpÂ~ÃÃ}Ï�ДѫҬӭ԰ձֲ×ÄØÅÙÆÚ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~AˆÝ propertyA¨Ý ‰‚it starts with "/" (paths are relative to the scene's view model)AÈÞ ' it ends with "/"AøÞ //A˜ß 5.it has an empty segmentAØß F.property-resource-classp�‚à‚ð²A¨à }va resource of a type format 1 does not load is never usableA¸á [T" id="..."> and name it SubResource("...")A¨â �† is written in the scene itself: declare it as <sub_resource type="AÈã ")Aèã ("Aˆä 1* sub_resource, found AÈä  must be Aøä AEIOUaeiouA¨å ' property-unknownAØå +$ has no property "A˜æ xit is kept and written back unchanged, and otherwise ignoredA¨ç !property-typeAØç  is Aøç enum-rangeA¨è E> is a UV set, 0 or more, found Aøè Resource (A¨é boolAÈé intAèé  StringAˆê DictionaryA¸ê  ArrayAØê VariantAøê slinstance must name an ext_resource of type PackedSceneAøë #instance-cycleA¨ì  -> AÈì ' instance cycle: Aøì {ta scene cannot contain itself: remove one of the instancesAˆî #instance-depthA¸î  deepAØî =6instances nested more than A¨ï YR files: instance a scene that nests fewerA˜ð [Ta chain of instanced scenes holds at most Aˆñ instance of A¸ñ path-invalidAèñ #ext_resource "A˜ò -&primitive-too-largeAØò ohsubdivide_width, subdivide_height or subdivide_depthAØó KDsubdivide_width or subdivide_depthA¸ô 70radial_segments or ringsAøô x; RSCN.md, "Built-in meshes", gives each mesh's vertex countAˆö  lower A¨ö KD vertices, more than the limit of Aˆ÷ " makes A¨÷  "AÈ÷ !(no artboard)Aø÷ MF.##..#..#.#..#..##.................AØø MF...................................A¸ù MF..#....#....#....#....#.........#..A˜ú MF.#.#..#.#..#.#.....................Aøú MF.#.#..#.#.#####.#.#.#####.#.#..#.#.AØû MF..#...####.#....###....#.####...#..A¸ü MF##..###.#....#....#....#...#.##..##A˜ý MF.##..#..#.#.#...#...#.#.##..#..##.#Aøý MF..#....#...#.......................AØþ MF...#...#....#....#....#.....#....#.A¸ÿ MF.#....#.....#....#....#....#...#...A˜€ MF......#..#.#.#.###.#.#.#..#........Aø€ MF......#....#..#####..#....#........AØ� MF......................##...#...#...A¸‚ MF...............#####...............A˜ƒ MF...........................##...##.Aøƒ MF.........#...#...#...#...#.........AØ„ MF.###.#...##..###.#.###..##...#.###.A¸… MF..#...##....#....#....#....#...###.A˜† MF.###.#...#....#...#...#...#...#####Aø† MF#####...#...#....#.....#.#...#.###.A؇ MF...#...##..#.#.#..#.#####...#....#.A¸ˆ MF######....####.....#....##...#.###.A˜‰ MF..##..#...#....####.#...##...#.###.Aø‰ MF#####....#...#...#...#....#....#...AØŠ MF.###.#...##...#.###.#...##...#.###.A¸‹ MF.###.#...##...#.####....#...#..##..A˜Œ MF......##...##.......##...##........AøŒ MF......##...##.......##...#...#.....AØ� MF...#...#...#...#.....#....#....#...A¸Ž MF..........#####.....#####..........A˜� MF.#....#.....#.....#...#...#...#....Aø� MF.###.#...#....#...#...#.........#..AØ� MF.###.#...#....#.##.##.#.##.#.#.###.A¸‘ MF.###.#...##...#######...##...##...#A˜’ MF####.#...##...#####.#...##...#####.Aø’ MF.###.#...##....#....#....#...#.###.AØ“ MF###..#..#.#...##...##...##..#.###..A¸” MF######....#....####.#....#....#####A˜• MF######....#....####.#....#....#....Aø• MF.###.#...##....#.####...##...#.####AØ– MF#...##...##...#######...##...##...#A¸— MF.###...#....#....#....#....#...###.A˜˜ MF..###...#....#....#....#.#..#..##..Aø˜ MF#...##..#.#.#..##...#.#..#..#.#...#AØ™ MF#....#....#....#....#....#....#####A¸š MF#...###.###.#.##.#.##...##...##...#A˜› MF#...##...###..##.#.##..###...##...#Aø› MF.###.#...##...##...##...##...#.###.AØœ MF####.#...##...#####.#....#....#....A¸� MF.###.#...##...##...##.#.##..#..##.#A˜ž MF####.#...##...#####.#.#..#..#.#...#Aøž MF.#####....#.....###.....#....#####.AØŸ MF#####..#....#....#....#....#....#..A¸  MF#...##...##...##...##...##...#.###.A˜¡ MF#...##...##...##...##...#.#.#...#..Aø¡ MF#...##...##...##.#.##.#.##.#.#.#.#.AØ¢ MF#...##...#.#.#...#...#.#.#...##...#A¸£ MF#...##...##...#.#.#...#....#....#..A˜¤ MF#####....#...#...#...#...#....#####Aø¤ MF.###..#....#....#....#....#....###.AØ¥ MF.....#.....#.....#.....#.....#.....A¸¦ MF.###....#....#....#....#....#..###.A˜§ MF..#...#.#.#...#....................Aø§ MF..............................#####Aب MF.#....#.....#......................A¸© MF...........###.....#.#####...#.####A˜ª MF#....#....#.##.##..##...##...#####.Aøª MF...........###.#....#....#...#.###.AØ« MF....#....#.##.##..###...##...#.####A¸¬ MF...........###.#...#######.....###.A˜­ MF..##..#..#.#...###...#....#....#...Aø­ MF...........####....#.####....#.###.AØ® MF#....#....#.##.##..##...##...##...#A¸¯ MF..#........##....#....#....#...###.A˜° MF...#........##....#....#.#..#..##..Aø° MF#....#....#..#.#.#..##...#.#..#..#.Aر MF.##....#....#....#....#....#...###.A¸² MF..........##.#.#.#.##.#.##...##...#A˜³ MF..........#.##.##..##...##...##...#Aø³ MF...........###.#...##...##...#.###.AØ´ MF..........####.#...#####.#....#....A¸µ MF...........####....##...#.####....#A˜¶ MF..........#.##.##..##....#....#....Aø¶ MF...........####....#.###.....#####.AØ· MF.#....#...###...#....#....#..#..##.A¸¸ MF..........#...##...##...##..##.##.#A˜¹ MF..........#...##...##...#.#.#...#..Aø¹ MF..........#...##...##.#.##.#.#.#.#.Aغ MF..........#...#.#.#...#...#.#.#...#A¸» MF..........#...##...#.####....#.###.A˜¼ MF..........#####...#...#...#...#####Aø¼ MF...##..#....#...#.....#....#.....##Aؽ MF..#....#....#....#....#....#....#..A¸¾ MF##.....#....#.....#...#....#..##...A˜¿ ËF...........#...#.#.#...#...........`|À| }€}à}@~ ~`À €€€à€@� �‚`‚À‚ ƒ€ƒàƒ@„ „…`…À… †€†à†@‡ ‡ˆ`ˆÀˆ ‰€‰à‰@Š Š‹`‹À‹ Œ€ŒàŒ@� �Ž`ŽÀŽ �€�à�@� �‘`‘À‘ ’€’à’@“ “”`”À” •€•à•@– –—`—À— ˜€˜à˜@™ ™š`šÀ𠛀›à›@œ œ�`�À� ž€žàž@Ÿ ŸAøÂ ...A˜Ã /#artboard:@ÝÞ Þ�ßAØÃ un must be a RiveFile (.riv) or a RiveData (.rml), found AØÄ -&resource-undeclaredA˜Å  with id "AÈÅ ext_resourceAøÅ sub_resourceA¨Æ no AÈÆ un (a sub_resource of a type this version does not build)AÈÇ  must be a AîÇ €?AþÇ ð?AžÈ "ð?ð?ð?ð?ð?AÈÈ " (AèÈ +$ext-type-extensionA¨É IBres:// starts at the project rootAˆÊ e^a relative path starts at this file's directoryAøÊ ' check the path: A¨Ë ' ext-type-unknownAØË 5.unknown resource type "A˜Ì 5.the resource types are AØÌ  fileAøÌ  is a A˜Í : a A¸Í cannot be a AèÍ  goesAˆÎ # file where a A¸Î name a AØÎ cannot read AˆÏ [Tcheck that the file exists and can be readAøÏ /(script-class-missingA¸Ð [T declares no class that extends NodeScriptA¨Ñ yra node script holds one `class <Name> extends NodeScript`A¸Ò  classAØÒ extendsAøÒ NodeScriptA¨Ó KDstream did not contain valid UTF-8AˆÔ readA¨Ô statAÈÔ  read:AèÔ  list:AˆÕ listA¨Õ  stat:AÈÕ !Unknown errorAøÕ 92No such file or directoryAÈÖ )"Permission deniedAˆ× File existsA¸× %Not a directoryAè× #Is a directoryA˜Ø ' Invalid argumentAÈØ -&Directory not emptyAˆÙ  (os error A¸Ù /.AØÙ \.AøÙ UNCA˜Ú /hedra/A¸Ú  hedra:AØÚ +$HEDRA-AUDIO-ASSET A˜Û ™’save the shader as UTF-8 text (WGSL is ASCII; a comment may be any UTF-8)AÈÜ !shader-syntaxAøÜ E>a block comment is never closedAÈÝ ' close it with */AøÝ c\" is not a character of WGSL outside a commentAèÞ {tWGSL code is ASCII here; keep other characters in commentsAøß 5.shader-type-unsupportedA¸à g`a shader file starts with `shader_type spatial;`A¨á 3,docs/engine/SHADERS.mdAèá c\add `shader_type spatial;` as its first line (AØâ 70shader-too-many-uniformsA˜ã  uniformsAÈã 5.a shader holds at most Aˆä 3,pack some into vectorsAÈä 70shader-too-many-texturesAˆå MF textures (WebGL 2's texture units)Aèå YRcombine textures into the channels of oneAØæ 3,shader-block-too-largeA˜ç  bytesA¸ç ?8the uniforms take more than Aˆè A:use fewer or smaller uniformsAØè 1* bindings, more than A˜é QJthe textures and their samplers take Aøé ¿¸give more textures the same filter_ and repeat_ hints (textures of one kind share a sampler)AÈë !textureSampleAøë )"textureSampleBiasA¸ì /(textureSampleCompareAøì dpdxA˜í dpdxCoarseAÈí dpdxFineAèí dpdyAˆî dpdyCoarseA¸î dpdyFineAØî  fwidthAøî fwidthCoarseA¨ï OfwidthFineе¶@¶€¶ ¶жð¶·@·`·€·°·Aˆð /(shader-builtin-stageAÈð [T() is the fragment stage's, not vertex()'sA¸ñ !, "Uniforms")Aèñ ƒ|or Godot's `texture(t, uv)`, which vertex() reads at level 0 (Aøò ÍÆWGSL has no derivatives in a vertex stage: sample at a level, `textureSampleLevel(t, s, uv, 0.0)`, AØô TIMEAøô PIA˜õ TAU`º€º ºÊAÈõ  VERTEXAèõ  NORMALAˆö TANGENTA¨ö BINORMALAÈö POSITIONAèö UVAˆ÷ UV2A¨÷  COLORAÈ÷ INSTANCE_IDAø÷ %INSTANCE_CUSTOMA¨ø VERTEX_IDAØø MODEL_MATRIXAˆù -&MODEL_NORMAL_MATRIXAÈù VIEW_MATRIXAøù %INV_VIEW_MATRIXA¨ú )"PROJECTION_MATRIXAèú 1*INV_PROJECTION_MATRIXA¨û ' MODELVIEW_MATRIXAØû 5.MODELVIEW_NORMAL_MATRIXA˜ü !VIEWPORT_SIZEAÈü -&NODE_POSITION_WORLDAˆý +$NODE_POSITION_VIEWAÈý 1*CAMERA_POSITION_WORLDAˆþ —,CAMERA_DIRECTION_WORLDкðº»0»P»p»�»°»л¼0¼`¼�¼м½0½p½°½à½ ¾P¾�¾о¿A¨ÿ LIGHT_VERTEXAØÿ FRAGCOORDAˆ€ FRONT_FACINGA¸€ VIEWAØ€ NORMAL_MAPAˆ� ' NORMAL_MAP_DEPTHA¸�  ALBEDOAØ�  ALPHAAø� 5.ALPHA_SCISSOR_THRESHOLDA¸‚ -&PREMUL_ALPHA_FACTORAø‚ METALLICA˜ƒ SPECULARA¸ƒ ROUGHNESSAèƒ RIMAˆ„ RIM_TINTA¨„ BACKLIGHTAØ„ AOAø„ %AO_LIGHT_AFFECTA¨… EMISSIONAÈ… ·SCREEN_UVк°¿à¿Àðº»0»@À`À�Àp»�»°»ÀÀàÀÁ@Á€Á ÁÀÁðÁÂ0Â`€°ÂÐÂ`¼�¼м½0½p½ ¾P¾�¾о¿Aˆ‡ %SPECULAR_AMOUNTA¸‡  LIGHTA؇ LIGHT_COLORAˆˆ /(LIGHT_IS_DIRECTIONALAȈ ATTENUATIONAøˆ !DIFFUSE_LIGHTA¨‰ ‡SPECULAR_LIGHT`¼м½0½p½ ¾à¿ðºp»�»@À�ÃÀÃàÃÄPÄÀÀ0€ÁÀÁ€Ä°ÄàÀÐÂA¸Š vertex()AØŠ fragment()Aˆ‹ light()A¨‹ 'sAÈ‹ 's, not Aè‹  and AˆŒ #, "Built-ins")A¸Œ ‰pass the value through a varying (`varying name: type;`, written in one stage and read in the next), or compute it in its stage (AØŽ POINT_SIZEAˆ� POINT_COORDA¸� BONE_INDICESAè� BONE_WEIGHTSA˜� CUSTOM0A¸� CUSTOM1AØ� CUSTOM2Aø� CUSTOM3A˜‘ VIEW_INDEXAÈ‘ #VIEW_MONO_LEFTAø‘ VIEW_RIGHTA¨’ EYE_OFFSETAØ’ 70MAIN_CAM_INV_VIEW_MATRIXA˜“ 1*CAMERA_VISIBLE_LAYERSAØ“ CLEARCOATAˆ” -&CLEARCOAT_ROUGHNESSAÈ” ANISOTROPYAø” %ANISOTROPY_FLOWA¨• SSS_STRENGTHAØ• 5.SSS_TRANSMITTANCE_COLORA˜– 5.SSS_TRANSMITTANCE_DEPTHAØ– 5.SSS_TRANSMITTANCE_BOOSTA˜—  DEPTHA¸— FOGAØ— RADIANCEAø— IRRADIANCEA¨˜ ' ALPHA_HASH_SCALEAؘ 5.ALPHA_ANTIALIASING_EDGEA˜™ 70ALPHA_TEXTURE_COORDINATEAØ™ EXPOSUREAø™ £OUTPUT_IS_SRGB`Ç�ÇÀÇðÇ È@È`ȀȠÈÐÈÉ0É`É ÉàÉÊPʀʰÊàÊ Ë`Ë ËÀËàËÌ0Ì`Ì ÌàÌÍA¨› ;4shader-builtin-unsupportedAø› 3, is not given by HedraA¸œ !the built-in Aèœ !, "Built-ins"A˜� see A¸� letAØ� varAø�  constA˜ž fnA¸ž  structAØž  aliasAøž overrideA˜Ÿ 5.shader-uniform-shadowedAØŸ G@" hides the uniform of that nameA¨  {trename it: every use of a uniform's name reads the uniformA¸¡ ' shader-name-glslAè¡ }v" is a name GLSL refuses (WebGL 2 draws the shader as GLSL)Aø¢ }vrename it: no name is `gl`, starts with `gl_` or holds `__`Aˆ¤ gl_A¨¤ __AȤ :shader_type Ç Ì@ЀÇ`ÌÐA˜¥ )"` is never closedAØ¥  this `Aø¥  ` at A˜¦ #` before the `AȦ %close it with `Aø¦ E>the file ends partway through `Aȧ UN, or close the function's body with `}`A¨¨ A:finish the statement with `;`Aø¨ render_modeA¨© #group_uniformsAØ© uniformAø© varyingA˜ª E>shader-uniform-hint-unsupportedAèª A: uniform is not in the formatA¸« ×Ðdeclare it as a material's uniform (`uniform name: type;`): Hedra has no global or per-instance uniformsA˜­  groupA¸­ bindingAØ­  vertexAø­ fragmentA˜® computeA¸® {ta shader declares no entry point and no binding of its ownAȯ ƒ|); the engine's template has the entry points and the bindingsAذ ¯¨define fn vertex(), fn fragment() and fn light(), and declare textures as uniforms (A˜² /(shader-name-reservedAز }v" is a name of the engine's (a built-in, or the composer's)Aè³ rename itA˜´  hedra_A¸´  HEDRA_AØ´ SAMPLER_Aø´  lightA˜µ 3,shader-stage-signatureAص [T() takes no parameters and returns nothingAȶ fn Aè¶ c\() { ... }`; it reads and writes the built-insAØ· write `fn Aˆ¸ ?8fn vertex() is defined twiceAظ keep oneAø¸ C<fn fragment() is defined twiceAȹ =6fn light() is defined twiceA˜º -&rename the functionAغ flatAøº ;4shader-varying-unsupportedAÈ» MFa flat varying is not in the formatA¨¼ �†pass a number through a smooth varying, or compute it in fragment()AȽ KDa varying is `varying name: type;`A¨¾ ?8write `varying height: f32;`Aø¾ xa varying is an f32, a vec2<f32>, a vec3<f32> or a vec4<f32>AˆÀ C<carry a whole number as an f32AØÀ 5.a varying ends with `;`A˜Á add `;`A¸Á QJ" is a uniform's or the engine's nameA˜Â +$rename the varyingAØÂ 70shader-uniform-duplicateA˜Ã +$ is declared twiceAØÃ the varying AˆÄ +$rename one of themAÈÄ 70shader-too-many-varyingsAˆÅ  varyingsA¸Å /(pack them into vec4sAøÅ f32A˜Æ i32A¸Æ u32AØÆ  vec2fAøÆ  vec3fA˜Ç  vec4fA¸Ç  vec2iAØÇ  vec3iAøÇ  vec4iA˜È vec2A¸È vec3AØÈ vec4AøÈ texture_2dA¨É wpa uniform is `uniform name: type [: hints] [= default];`A¨Ê ‹„write `uniform tint: vec4<f32> : source_color = vec4<f32>(1.0);` (AÈË the uniform AøË =6" is a name of the engine'sAÈÌ +$rename the uniformAˆÍ E>shader-uniform-type-unsupportedAØÍ ?8" is no type a uniform takesA¨Î ·°a uniform is f32, i32, u32, bool, a vec2, vec3 or vec4 of f32 or i32, or texture_2d<f32>AèÏ g`a uniform's hints are words, separated by commasAØÐ 3,write `: source_color`A˜Ñ source_colorAÈÑ 70shader-uniform-hint-typeAˆÒ xsource_color is a colour's hint: a vec3, a vec4 or a textureA˜Ó unremove it, or make the uniform a vec3<f32> or vec4<f32>A˜Ô hint_rangeAÈÔ e^hint_range is a number's hint: an f32 or an i32A¸Õ remove itAèÕ e^hint_range takes (min, max) or (min, max, step)AØÖ ?8write `hint_range(0.0, 1.0)`A¨× wphint_range takes (min, max) or (min, max, step), numbersA¨Ø KDwrite `hint_range(0.0, 1.0, 0.01)`AˆÙ hint_normalA¸Ù +$hint_default_whiteAøÙ +$hint_default_blackA¸Ú 70hint_default_transparentAøÚ !repeat_enableA¨Û #repeat_disableAØÛ #filter_nearestAˆÜ !filter_linearA¸Ü 1*filter_nearest_mipmapAøÜ /(filter_linear_mipmapA¸Ý IBfilter_nearest_mipmap_anisotropicA˜Þ _@filter_linear_mipmap_anisotropicàíî@î€îÀî ïAˆß /( is a texture's hintAÈß [Ta texture repeats or not: one repeat_ hintA¸à [Ta texture has one filter: one filter_ hintA¨á -&hint_screen_textureAèá +$hint_depth_textureA¨â A:hint_normal_roughness_textureAøâ ' hint_roughness_rA¨ã ' hint_roughness_gAØã ' hint_roughness_bAˆä ' hint_roughness_aA¸ä 1*hint_roughness_normalAøä -&hint_roughness_grayA¸å %hint_anisotropyAèå #instance_indexA˜æ Ohint_enum°ððð0ñ€ñ°ñàñò@ò€òÀòðò óAøæ 1* is not in the formatA¸ç the hint Aèç , "Uniforms"A˜è =6shader-uniform-hint-unknownAèè /(" is no uniform hintA¨é ÇÀthe hints are Godot's: source_color, hint_range, hint_normal, hint_default_*, filter_*, repeat_*Aøê 3,shader-uniform-defaultA¸ë _Xa texture uniform has no default in the codeA¨ì ¯¨remove `= ...`; hint_default_white, _black or _transparent say what it is when unsetAèí ibexpected `:`, `=` or `;` after the uniform's typeAèî aZwrite `uniform name: type : hints = default;`AØï 5.a uniform ends with `;`A˜ð C< is not a constant of its typeAèð %the default of A˜ñ ÍÆwrite a number, true or false, or the type's constructor of numbers (vec4<f32>(1.0, 0.5, 0.2, 1.0))Aøò 0xA˜ó 0XA¸ó ‹„`group_uniforms` takes a group, a group and a subgroup, or nothingAØô ¡šwrite `group_uniforms Look;`, `group_uniforms Look.Rim;` or `group_uniforms;`Aˆö qj`render_mode` lists render modes, separated by commasAˆ÷ _Xwrite `render_mode unshaded, cull_disabled;`Aø÷ blend_mixA¨ø blend_addAØø blend_subAˆù blend_mulA¸ù +$blend_premul_alphaAøù )"depth_draw_opaqueA¸ú )"depth_draw_alwaysAøú ' depth_draw_neverA¨û -&depth_prepass_alphaAèû -&depth_test_disabledA¨ü !sss_mode_skinAØü cull_backAˆý cull_frontA¸ý !cull_disabledAèý wireframeA˜þ %diffuse_lambertAÈþ /(diffuse_lambert_wrapAˆÿ #diffuse_burleyA¸ÿ diffuse_toonAèÿ /(specular_schlick_ggxA¨€ !specular_toonAØ€ )"specular_disabledA˜� 1*skip_vertex_transformAØ� -&world_vertex_coordsA˜‚ 3,ensure_correct_normalsAØ‚ ' shadows_disabledAˆƒ 3,ambient_light_disabledAȃ )"shadow_to_opacityAˆ„ %vertex_lightingA¸„ %particle_trailsAè„ )"alpha_to_coverageA¨… 92alpha_to_coverage_and_oneAø… -&debug_shadow_splitsA¸† «fog_disabledü0ü`ü�üÀüý@ý€ý°ýðý0þ`þ�þÀþ Âðþ ÿPÿ�ÿÀÿðÿ0` à `�Ð@p°@Aø‡ ;4shader-render-mode-unknownAȈ UN" is no render mode of a spatial shaderA¨‰ )", "Render modes")Aè‰ C<the render modes are Godot's (A¸Š =6shader-render-mode-conflictAˆ‹  modesA¨‹ " are both AØ‹ ' keep one of themAˆŒ +Q#AÈŒ C<shader-render-mode-unsupportedA˜� E> is not drawn by Hedra: ignoredAè� ' the render mode A˜Ž ' , "Render modes"AÈŽ  blend_AèŽ  blendAˆ� depth_draw_A¸� depth_drawAè�  cull_Aˆ� cullA¨� diffuse_AÈ� diffuseAè� specular_A˜‘ [T`shader_type` comes first in a shader fileAˆ’ 92move it to the first lineAØ’ SL`shader_type` takes one word and a `;`A¸“ ?8write `shader_type spatial;`Aˆ” spatialA¨” canvas_itemAØ” fog0  ø s` Aˆ• ?8 shader is not in the formatAØ• mfHedra draws spatial shaders, a surface's material (AØ– -&" is no shader typeA˜— ˆ ˜/ŠB‘D7qÏûÀµ¥Ûµé[ÂV9ññY¤‚?’Õ^«˜ªØ[ƒ¾…1$Ã} Ut]¾rþ±Þ€§Ü›tñ›ÁÁi›ä†G¾ïÆ�ÁÌ¡ $o,é-ª„tJÜ©°\ÚˆùvRQ>˜mÆ1¨È'°ÇY¿ó àÆG‘§ÕQcÊg))… ·'8!.üm,M 8STs e» jv.ÉÂ�…,r’¡è¿¢Kf¨p‹K£QlÇè’Ñ$™Ö…5ôp jÁ¤l7LwH'µ¼°4³ 9JªØNOÊœ[óo.hî‚�toc¥xxȄnjúÿ¾�ëlP¤÷£ù¾òxqÆA¨™ 92the file cannot be read: Aø™ E>; the occluder occludes nothingAÈš =6-byte header of an occluderA˜› 92 bytes, shorter than the Aè› HOCCAˆœ  magic)A¨œ 70 is not an occluder (no Aèœ =6; this build reads version A¸�  is version Aè�  each)Aˆž +$ indices (at most AÈž # vertices and Aøž C< indices, not three a triangleAÈŸ # indices take AøŸ  bytes; A˜  QJ: its numbers do not match its digestAø  5.: its box is not finiteA¸¡ # is not finiteAè¡ : vertex A˜¢ -& is outside its boxAØ¢  verticesAˆ£ , past its A¸£ : index AØ£ 1*occluder-data-invalidA˜¤ KD; the probe is captured when drawnAø¤ [T-byte header of a reflection probe captureAè¥ RPRBAˆ¦ UN is not a reflection probe capture (no Aè¦ KD texels (a power of two from 4 to Aȧ : a face of Aø§ +$ texels (it takes A¸¨ 1* levels for faces of Aø¨ , RGBE)A˜©  (only A¸© )": texel encoding Aø© ! levels take A¨ª  texels in Aت )" bytes; faces of A˜« )", the texels' is AØ« SL: its texels do not match its digest (A¸¬ !capture pointAè¬  : its AŽ­ úð?n¿ˆO;›<53û©=öï?]ÜØœ`q¼a€w>šìï?Ñf‡z^�¼…nèãï?ög5RÒŒ¾ï?m{ƒ]¦š—<‰ùlXµï?üïý’µŽ<÷Gr+’¬ï?Ñœ/p=¾><¢ÑÓ2ì£ï? n�‰4j¼Óþ¯f›ï?½/*RV•¼Q[Гï?UêNŒï€P¼Ì1lÀ½Šï?ôÕ¹#É‘¼à-©®š‚ï?¯U\éãÓ€÷ìš<ª¹h1‡Tï?�8†Ë‚ç�¼Ùü"PMï?�æDAoŠ<ÖŒbˆ;Fï?}ä°z€<–Ü}‘I?ï?”¨¨ãýŽ–<8bunz8ï?}Htò^‡©¯ ï?¶«°MuMƒ<·1 þï?Lt¬âB†<1ØLüpï?JøÓ]9Ý�<ÿd²üî?[Ž;€£†¼ñŸ’_Åöî?hPKÌíJ’¼Ë©:7§ñî?Ž-Qø™¼fØm®ìî?Ò6”>èÑq¼÷Ÿå4Ûçî?γ™¼å¨Ã-ãî?mL*§HŸ…<"4L¦Þî?Ši(z`“¼€¬EÚî?[‰H�§X¼*.÷! Öî?šIg›,|¼—¨PÙõÑî?¬Â`ícC<-‰a`Îî?ïd; f–Z~dx¼t_ìèuŸî?°}‹ÀJt�¥HšŸî?ŠæU2†¼ÉgBVëŸî?ÓÔ ^Ëœ�T'¤î?47;ñ¶i“¼ÎL™‰¥î?ÿ:„^€¼­Ç#F§î?nWrØPÔ”¼í’D›Ù¨î?Š[g­�<™fŠÙǪî?´êðÁ/·�<Û *Bå¬î?ÿçÅœ`¶e¼ŒDµ2¯î?D_óYƒö{<6w™®±î?ƒ=§ “¼Æÿ‘ [´î?)l‹¸©]¼åÅͰ7·î?Y¹�|ù#l¼RÈËDºî?ªùô"CC’¼PNÞŸ‚½î?KŽf×lÊ…¼ºÊpñÀî?'Α+ü¯q<�𣂑Äî?»s á5Òm<##ãcÈî?c"b"Ň¼eå]{fÌî?Õ1âㆋ<3-Jì›Ðî?»¼ÓÑ»‘¼]%>²Õî?Ò1îœ1Ì�´!Õ‚¼_›{3—|ï?É G;¹*‰¼)¡õF†ï?Óˆ:`¶t<ö?‹ç.�ï?qr�QìŃ<ƒLÇûQšï?ð‘Ó�÷�¼Ú�¤¢¯¤ï?}t#☮�¼ñgŽ-H¯ï? ªA¼ÃŽ<'Zaîºï?2ë©Ã”+„<—ºk7+Åï?î…Ñ1©dŠ<@En[vÐï?íã;äº7޼¾œ­ýÛï?�Í‘M;‰w<Ø�ž�Áçï?‰Ì`AÁS<ñq�+Âóï? ö?A‘½ ȹò‚,Ö¿€V7($´ú<€ö?A±½ X¿½ÑÕ¿ ÷àØ¥½`ö?Aѽ XEwvÕ¿mP¶Õ¤b#½@ö?Añ½ ø-‡­Õ¿Õg°žä„æ¼ ö?A‘¾ xw•_¾Ô¿à>)“i½ö?A±¾ `‹aÔ¿Ì„LH/Ø=àõ?AѾ ¨††0Ô¿: ‚íóBÜ<Àõ?Añ¾ HiUL¦Ó¿`”Q†Æ± = õ?A‘¿ €˜šÝGÓ¿’€ÅÔMY%=€õ?A±¿  áºâèÒ¿Ø+·™{&=`õ?AÑ¿ ˆÞZ‰Ò¿?°Ï¶Ê=`õ?Añ¿ ˆÞZ‰Ò¿?°Ï¶Ê=@õ?A‘À xÏûA)Ò¿vÚS($Z½ õ?A±À ˜iÁ˜ÈÑ¿Tçh¼¯½õ?AÑÀ ¨««\gÑ¿ð¨‚3Æ=àô?AñÀ H®ù‹Ñ¿fZýĨ&½Àô?A‘Á �sâ$£Ð¿ô~îk ½ ô?A±Á д”%@п-ôž¸6ð¼ ô?AÑÁ д”%@п-ôž¸6ð¼€ô?AñÁ @^m¹Ï¿‡<™«*W =`ô?A‘ `ÜË­ðο$¯†œ·&+=@ô?A±Â ð*n'οÿ?TO/½ ô?AÑ ÀOk!\Í¿hÊ»‘º!=ô?Añ  šÇ÷�Ì¿4„ŸhOy'=ô?A‘à  šÇ÷�Ì¿4„ŸhOy'=àó?A±Ã �-t†ÂË¿�·‹1°N=Àó?AÑà À€NÉóÊ¿f�Í?cNº< ó?Añà °â¼#Ê¿êÁFÜdŒ%½ ó?A‘Ä °â¼#Ê¿êÁFÜdŒ%½€ó?A±Ä PôœZRÉ¿ãÔÁÙÑ*½`ó?AÑÄ Ð e È¿ úÛ¿½+=@ó?AñÄ à‰«Ç¿XJSr�Û+=@ó?A‘Å à‰«Ç¿XJSr�Û+= ó?A±Å ÐçÖÆ¿fâ²£jä½ó?AÑÅ �§p0ÿÅ¿9PŸCž½ó?AñÅ �§p0ÿÅ¿9PŸCž½àò?A‘Æ °¡ãå&Å¿�[�‹Þ ½Àò?A±Æ €Ël+MÄ¿½àí?A‘Ò `FÑ;—±?›ž V]2%½ í?A±Ò àѧõ½³?×NÛ¥^È,=`í?AÑÒ  —MZéµ?]<i,½@í?AñÒ Àê Ó·?2í�©�ì<í?A‘Ó @Y]^3¹?ÚG½:\#=Àì?A±Ó `­�Èj»?åh÷+€�½ ì?AÑÓ @¼Xˆ¼?Ó¬ZÆÑF&=`ì?AñÓ  ƒ9Ǿ?àEæ¯hÀ-½@ì?A‘Ô àÛ9‘è¿?ý ¡OÖ4%½ì?A±Ô à'‚ŽÁ?ò-Îxï!=àë?AÑÔ ð#~+ªÁ?4™8Dާ,= ë?AñÔ €† aÑÂ?¡´�Ël�=€ë?A‘Õ �°üeÃ?‰rK#¨/Æ<@ë?A±Õ °3ƒ=‘Ä?x¶ýTyƒ%= ë?AÑÕ °¡äå'Å?Ç}iåè3&=àê?AñÕ Œ¾NWÆ?x.<,‹Ï=Àê?A‘Ö pu‹ðÆ?á!œå�%½ ê?A±Ö PD…�‰Ç?C‘pf½`ê?AÒÖ 9믾È?Ñ,éªT=½@ê?AòÖ ÷ÜZZÉ?oÿ X(ò=ê?A‘× àŠ<í“Ê?i!VPCr(½àé?A±× Ð[WØ1Ë?ªá¬N�5 ½Àé?AÑ× à;8‡ÐË?¶TYÄK-½ é?Añ× ðÆûoÌ?Ò+–Årìñ¼`é?A‘Ø �Ô°=±Í?5°÷*ÿ*½@é?A±Ø çÿSÎ?0ôA`'Â< é?AÒØ Ýä­õÎ?Ž»e!ʼé?AñØ °³l™Ï?0ß ÊìË=Àè?A‘Ù XM`8qÐ?‘NíÛœø< è?A±Ù `ag-ÄÐ?éê<‹'=€è?AÑÙ è'‚ŽÑ?ð¥c!,½`è?AñÙ ø¬Ë\kÑ?�¥÷Íš+=@è?A‘Ú hZc™¿Ñ?·½GQí¦,= è?A±Ú ¸mEÒ?êºFºÞ‡ =àç?AÑÚ �Ü|ð¾Ò?ôPJúœ*=Àç?AñÚ `ÓáñÓ?¸, not <lightmap_gi_data>AÈà [Tnot an .lmbake file: the root element is <A¸á  formatAØá [T is newer than this program reads (format AÈâ  widthAèâ settingsAˆã -&a second <settings>AÈã  meshesAèã )"a second <meshes>A¨ä  layerAÈä  probeAèä  was dueAˆå ! where layer A¸å  layer AØå ;4a layer in a bake of size A¨æ )", not the bake's Aèæ % is given twiceA˜ç instance AÈç ]Vinstances without <meshes> (the .lmuv file)A¸è shAØè # numbers, not Aˆé sh holds A¸é )"" is not a numberAøé  sh: "A˜ê > has no AÈê =6" is not a Vector3(x, y, z)A˜ë > A¸ë ! it should beAèë ' bytes, not the A˜ì !the .lmuv is AÈì KDthe .lmuv does not start with LMUVA¨í  , not AÈí 1*the .lmuv is version Aˆî  instancesA¸î  meshes for Aèî ' the .lmuv holds A˜ï G@: the .lmuv ends before its meshAèï # indices, not A˜ð 5.: the .lmuv's mesh has AØð G@: the .lmuv ends inside its meshA¨ñ +$ is source vertex Aèñ ' , outside 0 to 1A˜ò KD: a lightmap coordinate of vertex Aøò +$ lightmap verticesA¸ó ;4 bytes after its last meshAˆô #the .lmuv has A¸ô nodeAØô MFan instance with an empty node pathA¸õ partAØõ trianglesAˆö )"lightmap_verticesAÈö ' lightmap_indicesAøö  layerA˜÷  layersA¸÷ +$, past the bake's Aø÷ ! is in layer A¨ø  digestAÈø G@" is not 16 lowercase hex digitsA˜ù : digest "AÈù A: triangles (three a triangle)A˜ú 3, lightmap indices for AØú c\: lightmap vertices of a mesh without verticesAÈû OH" is not a Transform3D of 12 numbersA¨ü #?RADIANCEAØü  #?RGBEAøü c\not a Radiance HDR file (no #?RADIANCE header)Aèý FORMAT=Aˆþ %32-bit_rle_rgbeA¸þ 5. (only 32-bit_rle_rgbe)Aøþ -&unsupported FORMAT A¸ÿ -YAØÿ +XAøÿ  texels)A˜€ ; at most AÈ€ )"image too large (Aˆ� G@bad run-length data in scanline AØ� C<the file ends inside scanline A¨‚ E>" (only -Y <height> +X <width>)Aø‚ 92unsupported orientation "Aȃ Ÿˆ" must be relative to the .lmbake's directory, with / and no . or ..ðÑÒ0ÒPÒAø„ !" is none of A¨… /quality "À�PÝpÝ ÝAè… +$environment_mode "A¨† ô A؆ =6 is none of 0, 4, 8, 16, 32A¨‡ 5.generate_probes_subdiv Aè‡  to Aˆˆ A:" is not a whole number from A؈ !invalid UTF-8Aˆ‰ -&unreadable documentAȉ  <?xmlAè‰ !> (opened at A˜Š +$unclosed element <AØŠ </AøŠ MFexpected an element name after '</'AØ‹ >, found </AˆŒ expected </A¸Œ 3,expected '>' to end </AøŒ <!--A˜� <![CDATA[AÈ� <?Aè� <!DOCTYPEA˜Ž 70DOCTYPE is not supportedAØŽ <!AøŽ c\expected a comment or CDATA section after '<!'Aè� ibexpected a processing instruction target after <?Aè� xmlAˆ‘ ‘Šthe XML declaration is allowed only at the very start of the documentA¨’ ?>AÈ’ IBexpected a space or '?>' after <?A¨“ ØLunterminated processing instruction <? !"#$%&'()*+,-./0A ˜ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿAȘ Uþÿÿþÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿÿA¨™ J ϼ@×ÿÿûÿÿÿÿÿÿÿÿÿ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿA”š ÿÿÿÿ¿ ÿÿÿÿÿçA´š ÿÿÿÿÿÿÿÿÿÿ??AК ÿÿÿÿÿÿçAàš ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿA€› ÿÿ??ÿÿÿÿ??ÿªÿÿÿ?ÿÿÿÿÿÿß_ÜÏÿÜA®› €ÿAÀ› „ü/>P½òàCÿÿÿÿAö› 0Àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿx ÿÿÿÿ¿ AÈœ ÿÿÿÿÿ?ÿÿÿ?Aäœ 4üÿÿÿÿÿÿÿÿÿÿÿÿxÿÿÿÿÿÿü`ÿÿÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿA � øAÄ� þÿÿþÿÿAà� ÿÿÿÿÿÿÿÿÿÿAö� ÿÿÿÿÿÿÿÿA�ž ÿÿÿÿÿÿÿÿÿÿÿÿA´ž ÿÿÿÿÿÿÿÿAÈž ÿÿÿÿÿÿÿÿAàž ‰ÿÿÿÿÿÿÿÿÿÿßÿÿÿÿÿÿÿÿßdÞÿëïÿÿÿÿÿÿÿ¿çßßÿÿÿ{_üýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿýÿÿ÷ÿÿÿ÷ÿÿßÿÿÿßÿÿÿÿÿÿÿÿýÿÿÿýÿÿ÷ÿÿÿÿÿÿÿÿA†  ÿÿÿÿÿÿÿÿÿA   € !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]AÀ¤ -ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€@@Aõ¤ ¡�A–¥ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0°AÐ¥ øAë¥ $‚þÿÿÿÿ¿¶?ÿøÿÿAš¦ À¿ÿ=€ÿÿÿA´¦ Àÿø?$Àÿÿ?AÚ¦ —øÿÿÿÿÿþ!þ  @†9#¾! ü� `  ÀÁ=` �@0  Aù§ \A†¨ òÀA–¨ ò@?A£¨  þßàÿþÿÿÿ@AŨ àýfÃd Aߨ Aë¨ àA‚© 4 °?@þ� x`AÄ© ‡Aâ© E€ @åøŸ€ÿÿÐø<;@£ðÏA¯ª ?Aºª &÷ÿý!ðÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿûA÷ª ( ààà`ø�|ßÿ€ÿÿÿÿÿA¯« 0A½« €AÍ« €€AÜ« ÿÿÿÿ€A€¬  <>A“¬ ~AŸ¬ p A߬ ?Aí¬ €÷¿ðAþ¬ ÿÿÿÿAŽ­ AŸ­ D`A¸­ %0ÿÿ€À?€ÿÈ3€`Aå­ ~f�Á 0XA‹® øAœ®  !@A¶® üÿÿÿÿÿ$Aß® €€@@ÀAü® AŸ¯  A¼¯ Aί ÀA௠nð‡Aü¯ `ðAµ° AȰ ÀÿAà° :ÿ€x& €ïÀžA¥± €Ó@A»± €øÀAç± ÿ\@Aö± ø… A–² <°0A¦² ø§Aµ² (¿Aò à¼Aå² €ÿA‡³ XAš³ ð þøy€~üAƳ ¿AÒ³ üÿÿümAæ³ ~´¿Aò³ £Až´ ÿAÞ´ A‰µ €€ÿÿAœµ A³µ `A̵ €øÿç<Aèµ A€¶ ÿÿÿÿÿÿøÿÿÿÿÿ øþÿA ¶ ÿÿùÛAƶ ÿ?Aý¶ ðAš· A¨· ðAß· �ø  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Aè¸ ]]>Aˆ¹ ;4unterminated CDATA sectionAع --Aø¹ /(unterminated commentA¸º OH'--' is not allowed inside a commentA˜» ?8']]>' is not allowed in textAè» {t'&' does not start an entity (write &amp; for a literal &)Aø¼ ltA˜½ gtA¸½ ampAؽ quotAø½ aposA˜¾ A:invalid character reference &Aè¾ 92; is not an XML characterA¸¿ ' unknown entity &Aè¿ KDexpected an element name after '<'AÈÀ />AèÀ 70unterminated start tag <A¨Á _Xexpected an attribute name, '>' or '/>' in <A˜Â QJexpected a space before the attributeAøÂ A:expected '=' after attribute AÈà SLexpected a quoted value for attribute A¨Ä WP'<' is not allowed in an attribute valueAˆÅ G@unterminated value of attribute AØÅ /(duplicate attribute A˜Æ %no root elementAÈÆ ;4>: a document has one rootA˜Ç 5.a second root element <AØÇ A:text outside the root elementA¨È versionAÈÈ encodingAèÈ +standalone0dPdpdA¨É ?8unterminated XML declarationAøÉ {texpected a pseudo-attribute or '?>' in the XML declarationAˆË 5. in the XML declarationAÈË unexpected AøË UNthe XML declaration starts with versionAØÌ -&expected '=' after A˜Í ?8expected a quoted value for AèÍ 3,unterminated value of A¨Î 1.AÈÎ 92unsupported XML version "A˜Ï  utf-8A¸Ï [T" is not supported: the file must be UTF-8A¨Ð encoding "AØÐ yesAøÐ noA˜Ñ YRstandalone must be "yes" or "no", found "AˆÒ MFthe XML declaration needs a versionAèÒ 1.0AˆÓ 3, is not allowed in XMLAÈÓ character AøÓ ¥žthe path is relative to the file that names it, or res:// from the project rootA¨Õ 3,data-source-unreadableAèÕ ?8 does not read as RML data: A¸Ö 70` shows what it declaresAøÖ  inspect A¨× unfix the file (`rive inspect` names the same problem); `A¨Ø xml-syntaxAØØ rml-dataAøØ #unreadable RMLA¨Ù RiveAÈÙ rml-rootAèÙ !>, not <Rive>A˜Ú KDnot an RML document: its root is <AøÚ ËÄan .rml file is `<Rive version="1" kind="fragment">` holding root elements (rive's docs/format.md)AØÜ #DataEnumCustomAˆÝ #DataEnumSystemA¸Ý )"ViewModelInstanceAøÝ )"ViewModelPropertyA¸Þ viewModelIdAèÞ % (viewModelId="A˜ß 70 (it has no viewModelId)AØß c\> at the root names no view model of this fileAÈà 3,DataConverterGroupItemAˆá converterIdA¸á �†<DataConverterGroupItem> names no converter (it has no converterId)AØâ /(" names no converterA˜ã !converterId="AÈã )"defaultInstanceIdAˆä SL" names no instance of the view model Aèä -&defaultInstanceId="A¨å OH> is not a view model instance valueAˆæ -&viewModelPropertyIdAÈæ 5. (viewModelPropertyId="Aˆç G@ (it has no viewModelPropertyId)AØç SL> names no property of the view model A¸è  propertyAèè , a Aˆé > sets A¨é idAÈé !propertyValueAøé %propertyValue="A¨ê WP" is not a boolean (true, false, 1 or 0)Aˆë WP" is not a colour (8 hex digits of ARGB)Aèë 1*" names no enum valueA¨ì C<" names no view model instanceAøì  NumberA˜í BooleanA¸í EnumAØí TriggerAøí ListA˜î another kindAÈî EnumCustomAøî EnumSystemA¨ï ArtboardAÈï %SymbolListIndexAøï AssetImageA¨ð AssetFontAØð AssetBlobAˆñ /(viewModelReferenceIdAÈñ 1*" names no view modelAˆò 3,viewModelReferenceId="AÈò  enumIdAèò enumTypeAˆó %" names no enumA¸ó enumId="AØó ÉÂEnumCustom, EnumSystem, Trigger, ViewModel, List, Artboard, AssetImage, AssetFont, AssetBlob and A¸õ £œ> is not a view model property; the kinds are Number, String, Boolean, Color, Aèö x" is not an id; ids are numeric "client:object", like "0:12"Aø÷ id="A˜ø MF"; every authored id must be uniqueAøø #duplicate id "A¨ù 0:0AÈù “Œrive's docs/data.md describes view models, enums and converters in RMLAèú ‹„" is not a reference; ids are numeric "client:object", like "0:12"Aˆü ="A¨ü !DataConverterAØü 1*ScriptedDataConverterA˜ý !DataEnumValueAÈý keyAèý !viewModelTypeA˜þ -->A¸þ riv-invalidAèþ 1* is not a Rive file: A¨ÿ )"the file is emptyAèÿ -&no RIVE fingerprintA¨€ %the fingerprintAØ€ )"the major versionA˜� #; Hedra reads AÈ� #major version Aø� )"the minor versionA¸‚ the file idAè‚ 5.a table of contents keyA¨ƒ KDthe table of contents' field typesAˆ„ /(an object's type keyAÈ„ #a property keyAø„  from byte A¨… # (object type AØ… E> has no known field type (byte A¨† ' of object type A؆ !property key Aˆ‡ a stringA¨‡ a valueAȇ Ð �H  !"#%&'()*./01235789:;<=>?@ABCDEFOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�ˆŠŒ�•—˜›œ�ž ¡¢£¤¥¦§¨«¬­®¯±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÎÏÐÒÔרÚÝÞßàáãäåìíîïðóõöøù   !$()*+,-./0123489;<=>?@ABCDEFGHIJKLMNOPQRST]^degjklmnopqrstuxyz|}…†ˆ‰��•–—˜š›œžŸ ¡¢£¤¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÖáâãåæçéêíîòóôõö÷øùúûüýþÿ  "%&*+-0156<>?ABCFGJKLMNOPQTUVW\]^_`abcdefghijklmnopqrstuvwxz{|}~€�‚ƒ„…‡Š‹Œ�Ž��”–—˜™š›œ� ¡£¤¥§©ª«­®¯±²³´µ¹º»¼¿ÁÂÃÄÅÇÉÊËÌÍÎÏÒÔÕÖרÙÚÛÞçèéêëìíîïðôõö÷øùúûüýþ     &'()*+.01278CDNPRSXZ[\]^_`abdfghijklwxy{|}~‹Œ��’˜™šž¢£¤¦§¸¹º»¼½ÂÃÅÆËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæèéêëìíîïðñòóö÷úûüýþÿ !"#%&'()*+,-./123456?FGJKOPQRSA¨’ …Q¤AÇ• ýAÌ— Aè— 1* does not fit 32 bitsA¨˜  at byte Aؘ  (property Aˆ™ -byte fileA¸™ ;4 runs past the end of the Aˆš +$truncated at byte AÈš #texture-decodeAøš C< is not a Radiance HDR image: AÈ› A:save it as such, or use a PNGA˜œ ½¶a .hdr file must be a Radiance HDR image (FORMAT=32-bit_rle_rgbe, -Y <height> +X <width>); Aè� 1* is not a PNG image: A¨ž 5.a texture must be a PNGAèž -&limits are exceededA¨Ÿ C<IDAT or fdAT chunk is missing.AøŸ ôAˆ  A¨  !ôAØ  ôAˆ¡ !ôA¸¡ IBMissing palette of indexed image.A˜¢ unIDAT or fDAT chunk does not have enough data for image.A˜£ 3,Unknown filter method AØ£ 3,unexpected end of fileA˜¤ ibA fatal decoding error has been encounted earlierA˜¥ 70Corrupt deflate stream. AØ¥ !BadZlibHeaderAˆ¦ )"InsufficientInputAȦ 70InvalidLiteralLengthCodeAˆ§ -&InvalidDistanceCodeAȧ +$DistanceTooFarBackAˆ¨ e^index out of bounds in fdeflate secondary tableAø¨ 5.InvalidCodeLengthRepeatA¸© =6BadLiteralLengthHuffmanTreeAˆª 70BadCodeLengthHuffmanTreeAȪ 3,BadDistanceHuffmanTreeAˆ« Q     A¸« C<InvalidUncompressedBlockLengthAˆ¬ ‡ @�P�s�p�0 �À �`� � ��€�@ �à�X� ��;�x�8 �Ð�h�( �°��ˆ�H �ð�T�ã+�t�4 �È �d�$ �¨��„�D �è�\� �˜S�|�< �Ø�l�, �¸� �Œ�L �ø�R�£#�r�2 �Ä �b�" �¤��‚�B �ä�Z� �”C�z�: �Ô�j�* �´� �Š�J �ô�V�@3�v�6 �Ì�f�& �¬��†�F �ì �^� �œc�~�> �Ü�n�. �¼��Ž�N �ü@�Q�ƒ�q�1 � �a�! �¢����A �â�Y� �’;�y�9 �Ò�i�) �²� �‰�I �ò�U�+�u�5 �Ê �e�% �ª��…�E �ê�]� �šS�}�= �Ú�m�- �º� ���M �ú�S�Ã#�s�3 �Æ �c�# �¦��ƒ�C �æ�[� �–C�{�; �Ö�k�+ �¶� �‹�K �ö�W�@3�w�7 �Î�g�' �®��‡�G �î �_� �žc��? �Þ�o�/ �¾����O �þ@�P�s�p�0 �Á �`� �¡��€�@ �á�X� �‘;�x�8 �Ñ�h�( �±��ˆ�H �ñ�T�ã+�t�4 �É �d�$ �©��„�D �é�\� �™S�|�< �Ù�l�, �¹� �Œ�L �ù�R�£#�r�2 �Å �b�" �¥��‚�B �å�Z� �•C�z�: �Õ�j�* �µ� �Š�J �õ�V�@3�v�6 �Í�f�& �­��†�F �í �^� ��c�~�> �Ý�n�. �½��Ž�N �ý@�Q�ƒ�q�1 �à �a�! �£����A �ã�Y� �“;�y�9 �Ó�i�) �³� �‰�I �ó�U�+�u�5 �Ë �e�% �«��…�E �ë�]� �›S�}�= �Û�m�- �»� ���M �û�S�Ã#�s�3 �Ç �c�# �§��ƒ�C �ç�[� �—C�{�; �×�k�+ �·� �‹�K �÷�W�@3�w�7 �Ï�g�' �¯��‡�G �ï �_� �Ÿc��? �ß�o�/ �¿����O �ÿA˜¼ … €€‡ƒ‹�‰…A�@€ˆ„!Œ ‚ І�€‡�ƒ‹�‰…a�`€ˆ„1Œ0‚ Š †ÁA¨½ InvalidHlitAؽ InvalidHdistAˆ¾ ' InvalidBlockTypeA¸¾ 3,Invalid PNG signature.Aø¾ IB chunk appeared before IHDR chunkAØ¿ 3,Unexpected restart of A˜À % chunk sequenceAÈÀ E>fdAT chunk shorter than 4 bytesA˜Á QJfcTL chunk missing before fdAT chunk.AøÁ 3,CRC error: expected 0xA¸Â  have 0xAØÂ ' while decoding AˆÃ  chunk.A¨Ã  Chunk AÈà ;4 must appear at most once.A˜Ä OHSequence is not in order, expected #AøÄ  got #A˜Å ]VSequence is not in order, expected #0 got #AˆÆ -&Invalid dispose op AÈÆ )"Invalid blend op AˆÇ 70Invalid image dimensionsAÈÇ =6Sub frame is out-of-bounds.A˜È +$Invalid bit depth AØÈ -&Invalid color type A˜É ]VInvalid color/depth combination in header: AˆÊ =6Unknown compression method AØÊ 92Unknown interlace method A¨Ë OneAÈË TwoAèË FourAˆÌ  EightA¨Ì SixteenAÈÌ GrayscaleAøÌ RgbA˜Í IndexedA¸Í #GrayscaleAlphaAèÍ RgbaAˆÎ A:Unrecognized critical chunk: AØÎ /(Chunk length wrong: A˜Ï YRCorrupt deflate stream. InsufficientInputAˆÐ +$ChunkType { type: AÈÐ , critical: AøÐ , private: A¨Ñ , reserved: AØÑ , safecopy: AˆÒ  }A¨Ò \0AÈÒ \'AèÒ \u{AˆÓ /(model-format-retiredAÈÓ texture AèÓ %texture-missingA˜Ô !model-warningAÈÔ  .rmdlAèÔ -&point the scene at A¨Õ 92.rmdl` writes the model; AøÕ #.rmdlcmd --to A¨Ö  model AÈÖ .rmdlcmd, `AøÖ saved as A¨× ?8` writes its commands, and, Aø×  convert A¨Ø MF is a .modeler, a retired format: `AˆÙ type�¬A¨Ù resourceAÈÙ +$resource-duplicateAˆÚ =6: a material file holds oneAØÚ -&a second <resource>A˜Û ¥žremove one of them: only the first is built, the other is kept and written backAÈÜ 1*resource-type-unknownAˆÝ üit is kept but not built, and the file cannot be used as a material; the material classes are AØÞ 1*resource-type-invalidA˜ß KD is not a material a file can holdAøß =6 (the material classes are AÈà C<a material file's resource is A˜á )"binding-misplacedAØá !"> is ignoredAˆâ QJ has no bindings: <binding property="Aèâ ÕÎbind a node's property instead: a material's colour through the node, as material_override:albedo_colorAÈä %element-unknownAøä K: has no groups: <group name="÷AØå !group-invalidAˆæ 5.the group name is emptyAÈæ ]Vname the group, as in <group name="props"/>A¸ç +$property-duplicateAøç #" is set twiceA¨è property "AØè %property-outputAˆé sl is computed: bind it with mode="to_source" to read itAˆê ¯¨<binding property="..." path="..." mode="to_source"/> to read it into the view modelAÈë ™’an output is computed by the run time and is never written: bind it with Aøì ' property-derivedA¨í OH is not stored: the value is ignoredAˆî ‡€or key and bind progress_ratio; see docs/formats/RSCN.md "Paths"A˜ï ½¶progress_ratio stands for progress over the curve's baked length: write progress (metres), Aèð -&data-path-misplacedA¨ñ c\" instances no scene: its data_path is ignoredA˜ò …~it names the nested view model that scene's bindings start fromA¨ó ¥ždata_path goes on a node that instances a scene (instance="ExtResource(...)"): AØô -&view-model-not-rootA˜õ /(" may: it is ignoredAØõ WP" sets view_model, which only the root "A¸ö ;4set view_model on the rootAˆ÷ ÓÌonly the scene's root names its view model (an instanced scene's bindings use the outermost scene's): Aèø #format-featureA˜ù C< needs format 2: this file is Aèù C<default-state-machine-not-rootA¸ú £œ" sets default_state_machine, which only the scene's root reads: it is ignoredAèû MFscene's with instance_state_machineAÈü ÕÎonly the scene's root chooses the machine it runs: a node that instances a scene chooses the instanced A¨þ A:default-state-machine-unknownAøþ A:default_state_machine names "AÈÿ ÛÔdefault_state_machine names one of the scene's state machines, "" for the first it declares, or - for noneA¸� =6instance-property-misplacedAˆ‚  is ignoredA¸‚ ;4" instances no scene: its Aˆƒ aZdrive that scene's state machine or animationAøƒ ߨthe instance_ properties go on a node that instances a scene (instance="ExtResource(...)"): they choose and Aè… ' value-not-finiteA˜† ]V; a material file holds finite numbers onlyAˆ‡  holds A¨‡ /( out for its defaultAè‡ KDgive it a finite number, or leave AȈ YR, too large for a material's 32-bit floatA¸‰ QJ needs format 2: this file is format A˜Š )"subresource-orderAØŠ +$" refers to itselfA˜‹ #sub_resource "AÈ‹ ib" is declared after the sub_resource that uses itAÈŒ kddeclare a sub_resource before the ones that use itAÈ�  (line Aè�  " is AˆŽ " ("A¨Ž  write AÈŽ 70" .../> before the nodesAˆ�  id="A¨� )"declare it with <Aè� ' (first at line A˜� )"attribute-unknownAØ�  " on <Aø� -&unknown attribute "A¸‘ UN"> needs format 2: this file is format A˜’ SLthe state machine <StateMachine name="Aø’ ?8state-machine-name-duplicateAÈ“ -&" is declared twiceAˆ” ibscript chooses one by its name: give each its ownAˆ• ›”a scene's state machines are named, and the root, an instancing node or a A¸– StateMachineAè– KDstate-machine-listener-unsupportedAÈ— !> is not readAø—  "'s <A˜˜ ×Ðlistener (RML's folded StateMachineListenerSingle is not read): it is kept and written back, and not runAø™ ËÄwrite a listener as <StateMachineListener name="..." target="..." listenerType="...">, one type a AØ›  > in <Aø› )"unknown element <A¸œ ?> in <AØœ IBunknown processing instruction <?A¸� /(input-name-duplicateAø� " twiceA˜ž +$" declares input "AØž }vconditions and blends name an input: give each its own nameAèŸ /(layer-name-duplicateA¨  70" has two layers named "Aè  �za state is shown as layer/state: give each layer its own nameAø¡ 5.listener-name-duplicateA¸¢ =6" has two listeners named "Aˆ£ ­¦a listener is shown and edited by its name: give each listener of a machine its ownAȤ > is not runAø¤ listener "A¨¥ ³¬ListenerInputType children and scripted actions are kept and written back, and not runAè¦ çàListenerTriggerChange, ListenerFireEvent, ListenerAlignTarget) and takes its one type from listenerType; Rive's Aب ÉÂa listener holds its actions (ListenerViewModelChange, ListenerBoolChange, ListenerNumberChange, A¸ª  enterAت exitAøª moveA˜« )"componentProvidedAØ« textInputAˆ¬ dragStartA¸¬ dragEndAج viewModelAˆ­ Cdrag@Õ`Õ€ €ÕÀ° ÕàÕÖ@Ö`Ö�ÖAØ­ 5.listener-target-missingA˜® kd) has no target: it hears the pointer over nothingA˜¯ aZanything of the scene), "Door", "Hinge/Panel"Aˆ° ÇÀa pointer listener hears the pointer over its target, a node path from the root: "." (the root, Aر 5.listener-target-unknownA˜² ;4listener-target-unpickableAè² UN with nothing the pointer can hit in itAȳ " is a Aè³ 's target "A˜´ —�target itself or one under it: target such a node, or a node holding oneA¸µ ËÄthe pointer hits a GeometryInstance3D by its triangles and a CollisionObject3D by its shapes, the A˜· ;4listener-attribute-ignoredAè· ib (viewModel) has a target, which it does not readAè¸ �zlisteners: it is kept and written back, and otherwise ignoredAø¹ ÓÌtarget is read by pointer and event listeners, event by event listeners, path and global by viewModel AØ» 3,listener-event-missingA˜¼ 5. (event) names no eventAؼ c\name="..." listenerType="event" event="Creak">AȽ ÑÊan event listener hears an event of its scene, or of a scene under its target: <StateMachineListener A¨¿ 3,listener-event-unknownAè¿ # hears event "A˜À kd) has an event, which only an event listener readsA˜Á 1*listener-path-missingAØÁ yr (viewModel) has no path: it hears no view model propertyAè {tname="..." listenerType="viewModel" path="button/pressed">AøÃ ÓÌa viewModel listener performs when the view model property at its path changes: <StateMachineListener AØÅ mf) has a path, which only a viewModel listener readsAØÆ qj) has a global, which only a viewModel listener readsAØÇ G@listener-action-source-ambiguousA¨È 70has more than one sourceAèÈ E>has fromGlobal without fromPathA¸É " AØÉ  on "AøÉ �zfromGlobal), or a pointer input (input); none fires a triggerAˆË ÉÂa ListenerViewModelChange writes one source: a literal (value), another property (fromPath, with AèÌ IBlistener-action-pointer-misplacedAÈÍ UN listener, which has no hit: it reads 0A¨Î  on a AÈÎ ;4 writes the pointer input A˜Ï G@ListenerAlignTarget does nothingAèÏ ÉÂonly a pointer listener has a hit: on an event or viewModel listener a pointer input reads 0 and AÈÑ A:listener-action-input-unknownA˜Ò +$" does not declareAØÒ 70", which state machine "A˜Ó ! sets input "AÈÓ ;4listener-action-input-kindA˜Ô  ", a <A¸Ô ibListenerTriggerChange fires a StateMachineTriggerA¸Õ µ®ListenerBoolChange sets a StateMachineBool, ListenerNumberChange a StateMachineNumber, AøÖ 's valueA˜× A:listener-action-event-unknownAè× declareAˆØ ?8", which the scene does not AØØ # fires event "AˆÙ C<listener-action-target-unknownAØÙ ½¶ListenerAlignTarget moves a node, named by its path from the root: "." (the root), "Cursor"A¨Û aZ listener, which has no hit: it moves nothingA˜Ü )"attribute-invalidAØÜ OH is beyond what a 32-bit float holdsA¸Ý [Tkeep the number between -3.4e38 and 3.4e38A¨Þ 0.0AÈÞ -InfinityAøÞ InfinityAØß 92the machine's inputs are A¨à }vdeclare it on the machine: <StateMachineNumber name="..."/>A¸á 5.the scene's events are Aøá "/>A˜â 92declare it: <Event name="Aèâ 3," is not a node path: A¨ã 92" is no node of this fileAøã ;4paths start below the rootAÈä %" rather than "Aøä MFpaths start below the root: write "AØå ·°a KeyedObject's target is a node path from the root: "." (the root), "Hinge", "Arm/Hand"A˜ç it is emptyAÈç mfit starts with "/" (paths are relative to the root)AÈè -&".." is not allowedAˆé SL"." may only stand alone, for the rootAèé G@" holds a ".", which no name mayA¸ê segment "Aèê )"ListenerInputTypeA¨ë 3,ScriptedListenerActionAèë )"layer-state-extraA¨ì ' " has a second <AØì layer "Aøì adds them)A¨í ÑÊevery layer holds one EntryState, one AnyState and one ExitState, as in Rive (the editor's New Layer Aˆï -&layer-state-missingAÈï " has no <Aøï /(" of state machine "A¸ð +$state-name-missingAøð !" has no nameA¨ñ  of layer "AØñ +$layer its own nameA˜ò ÕÎa state is named by `name` (an AnimationState by its animation when it has none): give each state of a Aøó -&state-name-reservedA¸ô " is named "Aèô «¤Entry, Any and Exit name the layer's own three states: give the state another nameA¨ö /(state-name-duplicateAèö 70" has two states named "A¨÷ 's xAÈ÷ 's yAè÷ 's speedAˆø #'s blend valueA¸ø 1*blend-animation-orderAøø /( comes after one at A¸ù  " at AØù ' : the blend of "Aˆú »´Rive binary-searches a 1D blend's animations by value: write them in ascending value orderAØû 's mixValueAˆü 3,blend-source-ambiguousAÈü IB" gives its weight more than one A¨ý !'s blend of "AØý mfnumber) or mixValue (a constant, 100 when left out)AØþ ÏÈa BlendAnimationDirect takes its weight from one source: input (a number input), path (a view model A¸€  ’! AØ€ %the transition Aˆ� 92transition-target-invalidAØ� oh"'s ExitState has a transition: the layer ends thereAØ‚ yrAny State is where transitions taken from any state startAèƒ ÇÀa transition goes to an AnimationState, a blend state or Exit: the machine starts at Entry, and A¸… 92transition-target-unknownAˆ† ?8 goes to no state of layer "A؆ ƒ|a transition goes to a state of its layer, by name, or to ExitAè‡ 5.the layer's states are A¨ˆ 1* goes to the layer's Aèˆ opValueAˆ‰ /(condition-op-invalidAȉ -&> has an opValue ("AˆŠ a <A¨Š ߨa TransitionTriggerCondition passes when its trigger fired since the layer last used it: it takes no opValueA˜Œ 5.condition-value-missingAØŒ }v> compares with nothing: it has neither value nor rightPathAè� ]Vcompare the input with a number: value="80"AØŽ ½¶compare with a literal (value="80") or with another view model property (rightPath="limit")A¨� /(condition-value-bothAè� C<> has both value and rightPathA¸‘ ¿¸a condition's right side is a literal (value) or a view model property (rightPath), not bothAˆ“ >'s valueA¸“  equalAØ“ notEqualAø“ %lessThanOrEqualA¨” +$greaterThanOrEqualAè” lessThanAˆ• 7greaterThanÀ à  0 p � AÈ• ' > with opValue="Aø• µ®a TransitionBoolCondition passes on equal (the input is true) or notEqual (it is false)A¸— 5.condition-input-unknownAø— %> reads input "A¨˜ /(condition-input-kindAè˜ ¯¨TransitionTriggerCondition a StateMachineTrigger; a blend reads a StateMachineNumberA¨š ËÄTransitionNumberCondition reads a StateMachineNumber, TransitionBoolCondition a StateMachineBool, Aˆœ 70condition-target-unknownAÈœ >'s target "Aøœ ±ªa condition's target is a node path from the root: "." (the root), "Door", "Arm/Hand"A¸ž G@", which is no node of this fileAˆŸ > reads "A¸Ÿ ;4condition-property-unknownAˆ  aZ", which is no readable property of its classAø   " of A˜¡ [T"Targets and flags"), an output among themAˆ¢ ÉÂa TransitionComponentCondition reads a property its node's class can bind (docs/formats/RSCN.md, Aè£  (0 to 1).A˜¤ QJThe weight of the mesh's blend shape Aø¤ A:: a ShaderMaterial's uniform.AÈ¥ 's next passAø¥ %mesh's materialA¨¦ % of the node's Aئ ' (one component)Aˆ§ 1*The shader parameter Aȧ ƒ|Fires the view model trigger at path each time the node emits Aب *next_pass:` àA˜© G@transition-interpolator-mismatchAè© holdAˆª cubicValueA¸ª +elasticð` Àˆ@Aøª ;4 under interpolationType="AÈ« Ÿ˜CubicValueInterpolator, elastic an ElasticInterpolator, hold and linear noneAø¬ ÙÒthe interpolator child decides the curve (as in Rive): cubic takes a CubicEaseInterpolator, cubicValue a Aè® c\ has a number beyond what a 32-bit float holdsAد the Aø¯ /(action-event-unknownA¸° %> fires event "Aè° mixValueAˆ±  inputA¨± -&blend-input-unknownAè± # reads input "A˜² 92>: a blend reads a numberAè²  " ...>Aˆ³ MFdeclare it: <LinearAnimation name="Aè³ an <Aˆ´ "'s valueA¸´ input "AØ´ ' binding-propertyAˆµ e^an input's binding is property="value", found "Aøµ ËÄan input follows the view model property its binding names: <binding property="value" path="..."/>AØ· ">Aø· QJthe animation <LinearAnimation name="Aظ 70animation-name-duplicateA˜¹ animation "Aȹ )"give each its ownAˆº ¥ža scene's animations are named, and a state or a script names one by its name: A¸» %LinearAnimationAè» "'s speed A˜¼ �ˆgive it a speed between -3.4e38 and 3.4e38 (1 plays at its own pace)A¸½ 3,keyed-object-duplicateAø½ " keys "A˜¾ " in itA¸¾ unone KeyedObject per node: put every keyed property of "A¸¿ 70animation-rotation-mixedAø¿ un"'s rotation both as Euler components and as quaternionAøÀ OHtwo animations, one of each, may mixAØÁ áÚkey a node's rotation either as rotation_degrees (or rotation) components or as quaternion in one animation; AÈà rotation:AøÃ )"rotation_degrees:A¸Ä KeyedObjectAèÄ /(keyed-target-unknownA¨Å target "AÈÅ 70keyed-property-duplicateAˆÆ  twiceA¨Æ " keys AÈÆ  in itAèÆ ibone KeyedProperty per property: put every key of AèÇ !KeyedPropertyA˜È +$keyed-event-targetAØÈ E>": events are keyed on the rootA¨É # is keyed on "AØÉ ¿¸key an event on <KeyedObject target=".">, the scene's root, as Rive keys an artboard's eventA¨Ë -&keyed-event-unknownAèË C<" names no event of this sceneA¸Ì !keyframe-typeAèÌ áÚ, a shader parameter, which takes <KeyFrameDouble>, <KeyFrameColor> or <KeyFrameBool> (by its uniform's type)AØÎ  > on AøÎ #KeyFrameDoubleA¨Ï !KeyFrameColorAØÏ KeyFrameBoolAˆÐ KeyFrameIntA¸Ð KeyFrameUintAèÐ #KeyFrameStringA˜Ñ KeyFrameIdAÈÑ ' KeyFrameCallbackAøÑ S$KeyFrameQuaternion€'°'à'(@(p( (Ð()AØÒ IBKeyFrameQuaternion the quaternionA¸Ó ÙÒKeyFrameBool, KeyFrameColor, KeyFrameString, KeyFrameId a resource, KeyFrameCallback an event or signal, A¨Õ ãÜthe keyframe follows the property: KeyFrameDouble a number, KeyFrameInt a whole number, KeyFrameUint an enum, A˜× %, which takes <AÈ× 70keyframe-frame-duplicateAˆØ 70" has two keys at frame AÈØ  of "AèØ kda property has one key a frame: remove one of themAèÙ #keyframe-orderA˜Ú C< comes after the one at frame AèÚ /(": the key at frame A¨Û ÍÆkeys are evaluated in frame order whatever their order in the file: write them so (the editor does)AˆÝ /(keyframe-frame-rangeAÈÝ  frames)AèÝ #"'s duration (A˜Þ  is past "AÈÞ )"the key at frame Aˆß ÙÒplaying never reaches it (only setting the time does, as in Rive): lengthen the animation or move the keyAøà aZ has a value beyond what a 32-bit float holdsAèá e^keep a key's numbers between -3.4e38 and 3.4e38AØâ 5.keyframe-id-unsupportedA˜ã )" is not evaluatedAØã  at frame Aˆä +$the KeyFrameId of AÈä ×Ða KeyFrameId is read, kept and written back, but resources are not animated yet: the key changes nothingA¨æ C<keyframe-interpolator-mismatchAøæ ' 's key at frame A¨ç yrkeep an interpolator's numbers between -3.4e38 and 3.4e38A¸è 3,keyed-property-unknownAøè ]V" names no blend shape: blend_shapes/<name>Aèé {tShaderMaterial's material_override:shader_parameter/<name>Aøê óìbones/<bone>:quaternion or bones/<bone>:scale:x (y, z) on a Skeleton3D, blend_shapes/<name> on a MeshInstance3D, or a Aøì õîmarks them animates), event:<Name> on the root, signal:<name>, quaternion on a Node3D, bones/<bone>:position:x (y, z), Aøî áÚa KeyedProperty names an animatable property of its node's class (docs/formats/RSCN.md, "Targets and flags", Aèð x has no blend shapes: a MeshInstance3D of a model's mesh hasAøñ 1*" is no bone propertyA¸ò ]V(bones/Hips:quaternion, KeyFrameQuaternion)A¨ó ãÜa bone is keyed by the components of its position and scale (bones/Hips:position:y) and by its whole rotation A˜õ oh has no bones: a Skeleton3D (a model's armature) hasA˜ö A:keyed-property-not-animatableAèö :z)Aˆ÷ :y, A¨÷ :x, AÈ÷ KD is a vector: key its components (A¨ø }v" names no signal: a signal's name is letters, digits and _A¸ù wp has no quaternion: only a Node3D's rotation is keyed soA¸ú _X is an output: it is computed, never writtenA¨û »´a vector by its components (position:x), never a transform, a resource or a bake's settingAøü Áºonly the properties marked animates in docs/formats/RSCN.md, "Targets and flags", are keyed: AÈþ )" does not animateAˆÿ 's A¨ÿ A: has no animatable property "Aøÿ :zA˜€ :yA¸€ }v: it must start at frame 0 or later and end after it startsAÈ�  to frame Aø� C<"'s work area runs from frame AÈ‚ § set workStart and workEnd (workStart < workEnd), or write enableWorkArea="false"Aøƒ [T" loops over no frames (its duration is 0)Aè„ ‘Šgive it a duration of 1 frame or more, or make it loopValue="oneShot"Aˆ† 5.the event <Event name="AȆ /(event-name-duplicateAˆ‡ event "A¨‡ £œa scene's events are named, and a key names one by its name: give each its ownA؈  EventAøˆ /(CustomPropertyNumberA¸‰ /(CustomPropertyStringAø‰ k*CustomPropertyBoolean€DÀDE�n`F°æÀ!ð²^€$AøŠ #" on <binding>A¨‹ fireAÈ‹ c\an event's binding is property="fire", found "A¸Œ žan Event's binding names the view model trigger it fires: <binding property="fire" path="..."/>AˆŽ  name="A¨Ž %the converter <AØŽ -&converter-duplicateA˜� converter "AÈ� ³¬a scene's converters are named, and a binding names one by its name: give each its ownAˆ‘ =6unknown attribute "id" on <AØ‘ kdit is kept and written back, and otherwise ignoredAØ’ ®ža scene's converter is named, not numbered (RML's ids are the Rive project's): `ÐBA˜” embeddedA¸” ' embedded-invalidAè” ËÄan embedded file is named by its res:// path, such as res://models/bench.rmdl (no . or .. segment)AÈ– +$embedded-duplicateAˆ— -&" is embedded twiceAÈ— yra packed scene carries each file once: remove one of themAؘ embedded "Aˆ™ # its size saysA¸™ " holds AØ™ 3," is not a res:// pathA˜š %embedded path "AÈš -&" names a directoryAˆ› )"" has a backslashAÈ› E>" has an empty, . or .. segmentA˜œ  in <A¸œ  signalAØœ  methodAøœ + flags@Nà`N€NA¸� connectionAè� +$connection-invalidA¨ž G@the connection's signal is emptyAøž G@the connection's method is emptyAÈŸ connection AøŸ ™’name a node by its path from the root: "." (the root), "Lamp", "Arm/Hand"A¨¡  node "AÈ¡ ÑÊa parent is "." (the root) or the path from the root of a node declared before it, such as "Arm/Hand"A¨£ %" in this file)AØ£ ' " has no child "Aˆ¤  ("÷�¬ÀøÀjA¸¤ name-invalidAè¤ 3,the node name is emptyA¨¥ una node name may not be empty or hold any of . : @ / " %A¨¦ " holds "Aئ node name "Aˆ§ 3,node-type-and-instanceAȧ ?8" has both type and instanceA˜¨ {tan instanced scene's root keeps its own class: remove typeA¨© {tgive it a type, such as type="Node3D", or instance a sceneA¸ª type-unknownAèª -&unknown node type "A¨« kdit is kept and written back; the node classes are A¨¬ !type-not-nodeAج SL is a resource class, not a node classA¸­ ¥ždeclare it as a sub_resource or ext_resource and name it from a node's propertyAè® !type-abstractA˜¯ 1* is an abstract classAد use one of Aˆ° root-parentA¸° #" has a parentAè° Ÿ˜the first node is the root: remove its parent, or declare the root before itA˜² %" has no parentAȲ ¿¸only the first node is the root: give this one parent="." (the root) or a path from the rootA˜´ #parent-invalidAÈ´ kd" has no type and is not inside an instanced sceneAȵ »´give it a type; only a node inside an instanced scene is named without one, to override itA˜· IBsibling nodes need distinct namesAø· 3,visibility-range-emptyA¸¸ ' " is never drawnAè¸ : node "Aˆ¹ IB is below visibility_range_begin Aè¹ 1*visibility_range_end A¨º ÿîvisibility_range_end is the distance where drawing stops: make it larger than visibility_range_begin, or 0 for no limit �0�A¸¼ 5.visibility-range-marginAø¼ +$: it is drawn as 0A¸½ Ó¢a margin is a distance, 0 or more: how far past the range's edge the change waits�n`F°æÀ!ð²^€$A˜¿ )"binding-duplicateAØ¿ ' " is bound twiceAˆÀ qjkeep one of them: a declaration binds a property onceAˆÁ -&" has an empty pathAÈÁ ' the binding of "AøÁ îan empty path removes an inherited binding, in an override (a node without type) only; ð²^€$AÈà 1* target: it takes no AˆÄ ÝÖscale, offset and convert convert numbers: a boolean or colour target takes the view model's value as it isAøÅ booleanA˜Æ  colourA¸Æ  stringAØÆ enumAøÆ  numberA˜Ç 70 has no binding target "AØÇ 's)AøÇ +$; its targets are A¸È =6; it has no binding targetsAˆÉ ËÄa binding's property is a target of the node's class: docs/formats/RSCN.md, "Bindings", lists themAèÊ WP more (docs/formats/RSCN.md, "Bindings")AÈË ' mode="to_source"AøË the target A¨Ì parent-orderAØÌ A:" is declared after this nodeA¨Í OHdeclare a parent before its childrenAˆÎ C<", is declared after this nodeAØÎ #", in parent "AˆÏ [Tinstance must be ExtResource("id"), found AøÏ kdinstance names an ext_resource of type PackedSceneAøÐ )", not PackedSceneA¸Ñ " of type AèÑ A:instance names ext_resource "A¸Ò undeclare the file with type="PackedScene" to instance itA¸Ó  .:@/"%°t�¬AèÓ ' sub-type-unknownA˜Ô =6unknown sub_resource type "AèÔ qjit is kept but not built; the sub_resource types are AèÕ ' sub-type-invalidA˜Ö 92 cannot be a sub_resourceAèÖ =6the sub_resource types are A¸× #gradient-stopsAè×  left outA˜Ø coloursA¸Ø , the extra AèØ  stopAˆÙ  stopsA¨Ù : it keeps AØÙ  colourAøÙ  coloursA˜Ú  offsetA¸Ú  offsetsAØÚ  " has AøÚ Gradient "A¨Û unin the same order; see docs/formats/RSCN.md "Particles"A¨Ü �–offsets has one number a stop and colors one colour (four numbers) a stop, AØÝ  pointAøÝ  pointsA˜Þ ™’, not five a point of Vector2, number, number, int, int: the curve keeps AÈß  itemAèß  itemsAˆà #" _data holds A¸à Curve "AØà 5., the last ones droppedA˜á 70, the new ones at (0, 0)AØá % then makes it Aˆâ point_count A¸â curve-pointsAèâ ÝÖleft_tangent, right_tangent, left_mode, right_mode (0 free, 1 linear); see docs/formats/RSCN.md "Particles"AØä •Žwrite _data as Godot does, five items a point: Vector2(offset, value), Aøå )"curve-point-countA¸æ 1*the last ones droppedAøæ ;4the new ones at the originAÈç )": the curve gets Aˆè )" but _data holds AÈè %point_count is Aøè �ˆpoint_count is the number of points in _data; the editor writes bothA˜ê -&curve-bake-intervalAØê §  is not more than 0: every segment is cut 10 times over, into 1,024 baked piecesAˆì 3,Curve3D bake_interval AÈì unGodot's range is 0.01 to 512 metres; 0.2 is the defaultAÈí curve-dataAøí ÷ðCurve3D _data needs "points", a PackedVector3Array, and "tilts", a PackedFloat32Array: the curve keeps no points from itAøï e^as Godot does; see docs/formats/RSCN.md "Paths"Aè𠳬write _data as {"points": PackedVector3Array(...), "tilts": PackedFloat32Array(...)}, A¨ò ½¶: a point is nine (its in handle, out handle and position), so the curve keeps none of themAøó  numbersA˜ô /(_data's points hold AØô e^: a missing tilt is 0, an extra one is left outAÈõ  tiltAèõ  tiltsAˆö _data holds A¸ö shape-dataAèö WP make no whole triangle and are left outAÈ÷ -& numbers: the last Aˆø data holds A¸ø •Ža ConcavePolygonShape3D's data is three points a triangle, nine numbersAØù shape-sizeAˆú yrthe shape is empty (nothing overlaps it, no ray meets it)A˜û ): ÐI€K KAÈû SLBoxShape3D size must not be negative (A¨ü ãÜa shape's lengths are in metres, more than 0 (a box's sides 0 or more); see docs/formats/RSCN.md "Interaction"A˜þ aZBoxShape3D size must not be 0 on every side: A�ÿ BB€®A˜ÿ 3, must be more than 0: AØÿ  here; Aøÿ MultiMesh "A¨€ multimesh-2dAØ€ g` has transform_2d instances, which are not drawnAÈ� »´write <property name="transform_format">1</property> (transform_3d): Godot's default is 2DA˜ƒ 70multimesh-instance-countA؃ /(: instance_count is A˜„ ‡€instance_count is how many instances the buffer holds: 0 or moreA¨… OH with use_colors and use_custom_dataAˆ† ' with use_colorsA¸† 1* with use_custom_dataAø† 1*multimesh-buffer-sizeA¸‡ ! an instance)Aè‡  needs Aˆˆ )"; instance_count AȈ %: buffer holds Aøˆ sl4 more with use_colors and 4 more with use_custom_dataAø‰ ¡šbuffer holds instance_count instances, each 12 numbers (8 for transform_2d), A¨‹ ;4a ViewModel without a fileAø‹ 5.a ViewModel of RiveDataA¸Œ id-invalidAèŒ mfan id is letters, digits, _ and -, such as "1_lamp"Aè� id-duplicateA˜Ž )"" is already usedAØŽ id "AøŽ qjids are unique across ext_resources and sub_resourcesAø� #'s id is emptyA¨� #" is not validAØ� uid°t�¬``ˆAˆ‘ audio-formatA¸‘ aZ is Ogg, which the Rive runtime cannot decodeA¨’ C<convert it to WAV, MP3 or FLACAø’ =6unknown ext_resource type "AÈ“ slit is kept but not loaded; the ext_resource types are AÈ” ?8 is not an ext_resource typeA˜• üname a file by res://<path> (from the project root) or by a path relative to this file, with /Aè–  file, not "A˜— )"the path is emptyAØ— +$" is a res:// pathA˜˜ ://A¸˜ " is not Aè˜ absoluteAˆ™ 70a path this format readsAÈ™  pathAè™ /(AudioStreamOggVorbisA¨š oggAÈš ogaAèš opusAˆ› 7(> in a material fileÀ0`ˆAÈ› ' resource-missingAø› MFthe material file has no <resource>AØœ yr(a material file is MaterialX: docs/formats/MATERIALS.md)Aè� ½¶a material document holds one <resource type="StandardMaterial3D"> after its ext_resources A¸Ÿ £œthe first <node> is the root: give it a name and a type, such as type="Node3D"Aè  ßØa .rscn is XML: close every element, quote every attribute value, and write & < > in text as &amp; &lt; &gt;AØ¢ ' unreadable sceneAˆ£ a scene fileA¸£  adds)AØ£ MF" for a file that uses what format A¸¤ > (format="Aè¤ 1*write format="1" on <A¨¥ %text-unexpectedAØ¥ [T>: only elements and comments belong thereAȦ 70a CDATA section inside <Aˆ§ !element-orderA¸§ A:: elements come in the order Aˆ¨  after A¨¨ value-syntaxAب KDinstance must be ExtResource("id")A¸© IBflags must be an integer, found "A˜ª ' property-contentAȪ c\<group> has no content: write it <group name="A¸« a commentAè« 70a processing instructionA¨¬ QJ<property> holds a value only, found Aˆ­ empty valueA¸­ " path="AØ­ sl<binding> has no content: write it <binding property="AØ® %> type is emptyAˆ¯ )"attribute-missingAȯ  attributeAø¯ fpsA˜° _Xa whole number of frames a second, 1 or moreAˆ± durationA¨± MFa whole number of frames, 0 or moreAˆ²  speedA¨² loopValueAز , found "Aˆ³ oneShotA¨³ #pingPong�™ °™Aس /(> loopValue must be A˜´ g`loopValue is written as a word, as RML writes itAˆµ workStartA¸µ 5.a frame, or -1 for noneAøµ workEndA˜¶ #enableWorkAreaAȶ ;quantize€'°'à'(@(p( (Ð()A˜·  frameA¸· )"interpolationTypeAø· scriptedA˜¸ e^> interpolationType "scripted" is not supportedAˆ¹ ÏÈRive's scripted interpolation is not supported in 3D: use hold, linear, cubic, cubicValue or elasticAèº ?8> interpolationType must be A¸» wpinterpolationType is written as a word, as RML writes itA¸¼ 5.> has two interpolatorsAø¼ ª–a key has at most one interpolator: the curve of the segment that leaves it` àA¸¾ x1Aؾ y1Aø¾ x2A˜¿ y2A¸¿ easingValueAè¿ WP0 (easeIn), 1 (easeOut) or 2 (easeInOut)AÈÀ •Ž> easingValue must be 0 (easeIn), 1 (easeOut) or 2 (easeInOut), found "AèÁ amplitudeA˜Â  periodA¸Â , 0 or moreAè C<> value must be a whole numberA¸Ã aZ> value must be 8 hex digits of ARGB, found "A¨Ä ¥ža colour key is written as RML writes one: alpha, red, green, blue, as FF57A5E0AØÅ …~> value must be SubResource("id") or ExtResource("id"), found "AèÆ g`> value must be four numbers x, y, z, w, found "AØÇ qj> has no value: it fires when the playhead crosses itAØÈ NodePath(AˆÉ ExtResource(A¸É SubResource(AèÉ -&PackedFloat32Array(A¨Ê -&PackedVector3Array(AèÊ )"PackedColorArray(A¨Ë -&PackedVector2Array(AèË )"PackedInt32Array(A¨Ì \uAÈÌ .0AèÌ E> must be true or false, found "A¸Í ;4 must be a number, found "AˆÎ  is emptyA¸Î listenerTypeAèÎ  focusAˆÏ blurA¨Ï keyboardAÈÏ #semanticActionAøÏ 3gamepad ÕàÕp§�§°§Ч¨A¸Ð +$" is not run in 3DAøÐ ' > listenerType "A¨Ñ éâevent (event) or a view model property (viewModel); keyboard, focus, text and gamepad listeners are not run in 3DA¨Ó ÍÆ3D's listeners hear the pointer (enter, exit, down, up, move, click, drag, dragStart, dragEnd), an AˆÕ 5.> listenerType must be AÈÕ mflistenerType is written as a word, as RML writes itAÈÖ fromPathAèÖ fromGlobalA˜× ), found "AÈ× IB> input must be a pointer input (A¨Ø ÕÎ(input); a machine's input is set by ListenerBoolChange, ListenerNumberChange and ListenerTriggerChangeAˆÚ ×Ða ListenerViewModelChange writes a literal (value), another property (fromPath) or what the pointer hit AèÛ c\> value must be true, false or toggle, found "AØÜ § RML's 1, 0 and 2 are read as true, false and toggle; the writer writes the namesAˆÞ #preserveOffsetA¸Þ  resetAØÞ  randomAøÞ animationA¨ß /(exitTimeIsPercentageAèß /(exitTimeIsPercetangeA¨à yrexitTimeIsPercetange is the same attribute): give it onceA¸á �†<StateTransition> gives exitTimeIsPercentage twice (RML's spelling AØâ oha whole number, 0 or more (milliseconds, or percent)AØã exitTimeAøã randomWeightA¨ä 92a whole number, 0 or moreAøä /(durationIsPercentageA¸å #enableExitTimeAèå pauseOnExitA˜æ %enableEarlyExitAÈæ …~a transition has at most one interpolator: the curve of its mixAØç +$> opValue must be A˜è c\opValue is written as a word, as RML writes itAˆé rightPathA¸é rightGlobalAèé #rightConverterA˜ê occursValueAÈê yr> occursValue must be 0 (at start) or 1 (at end), found "AØë sloccursValue is written as the number, as RML writes itAØì aZ> has no value: a trigger is fired, never setAÈí 7write it <ÀÖ€DÀDEÀÖAˆî 5." propertyValue="..."/>AÈî =6> has no content: write it A˜ï %> name is emptyAÈï %a CDATA sectionAøï A:> holds elements only, found AÈð aZsize must be a whole number of bytes, found "A¸ñ YR<embedded> holds base64 text only, found A¨ò 5." is not a base64 digitAèò ?8the content is not base64: "A¸ó ?8 digits, not a multiple of 4Aˆô KDthe content is not padded base64: Aèô =6the content is not base64: A¸õ ;4base64DecodeSpan: bad spanAˆö 3,invalid base64 length AÈö IBinvalid base64 padding at offset A¨÷ MFinvalid base64 character at offset Aˆø 'a converterТ£A¸ø convertersAèø YR: only elements and comments belong thereAØù text inside Aˆú root-elementA¸ú 's root is <Aèú >: Aˆû 1*the root element is <AÈû #format-missingAøû 92> has no format attributeAÈü KDformat must be an integer, found "A¨ý +$format-unsupportedAèý E> is newer than this build readsA¸þ unthis file needs a newer Hedra: this build reads format A¸ÿ G@format must be 1 or more, found Aˆ€ #section ASST: A¸€ YRsection ASST: its reserved field is not 0A¨� -&) runs past the endAè� 92section ASST: its count (A¸‚ 1*section ASST: record Aø‚  asset A˜ƒ QJ has flags this version does not knowAøƒ +$ is not 16-alignedA¸„ 3, lies outside its dataAø„ kdsection ASST: its records are not sorted, or name Aø…  left)A˜† )" bytes wanted at A؆ 1*the data ends early (A˜‡ +$) past the table (A؇ ' a string index (Aˆˆ !rscnb-invalidA¸ˆ ]V is not a binary scene this version reads: A¨‰ damagedAȉ #section STRS: Aø‰ #section VALS: A¨Š +$ well-formed nodesAèŠ OHsection FIDL: its XML texts are not AÈ‹ =6's reserved bytes are not 0A˜Œ  item A¸Œ -&) are not the next AøŒ 's items (A¨� !sub_resource AØ� 70) is not an earlier nodeA˜Ž 's parent (AÈŽ  node AèŽ /(, not an ExtResourceA¨� )"'s instance is a Aè� 70 items belong to nothingA¨� #section ITEM: AØ� 92 bytes) runs past the endA¨‘ its data (AØ‘ #embedded file Aˆ’ 3, lies outside the dataAÈ’ …~section EMBD: an embedded file's element is not well-formed XMLAØ“ {tsection EMBD: an embedded file's element is not an elementAè” 5., which cannot have oneA¨• )"a child of owner Aè• #section BNDS: A˜– Ö A¸– #section ANIM: Aè– #section STMC: A˜— 70 is of an unknown kind (AØ—  entry Aø— !embedded fileA¨˜ !state machineAؘ una comment or unknown element in a file without fidelityAØ™ A: is a comment that is not oneA¨š !scene's entryAØš _Xsection ORDR: a material document holding a AÈ› qjsection ORDR: a scene holding a material's <resource>AÈœ -& belongs to nothingAˆ� 5.section FIDL: XML node AÈ� -& belongs to no nodeAˆž 3,section BIND: binding AÈž 5. is not in the documentAˆŸ #section ORDR: A¸Ÿ ) past its AèŸ  index (Aˆ  C< appears twice in the documentAØ  -&, this build reads A˜¡ %its version is AÈ¡ 92it holds no state machineA˜¢ 's listener AÈ¢ #state machine Aø¢ ›”its version is 2 but no machine has a listener (version 1 is written then)A¨¤ listenersAؤ machinesAø¤ ;4 bytes are left after its AÈ¥ 3, well-formed XML nodesAˆ¦ ;4its kept children are not Aئ  has no nameAˆ§ 's typeA¨§ 70), which 3D does not runAè§ 's type is A˜¨ 's action AȨ 's kindAè¨ 's hasValueA˜© 's flagsA¸© “Œ writes no view model property but has a path, a source or a converterAت ?8 sets no input but names oneA¨« 1*" is no pointer inputAè« 's input "A˜¬ E> has a value it says it has notAè¬ ! has no valueA˜­ MF has a value its kind does not takeAø­ C<" is not true, false or toggleAÈ® 's value "Aø® ;4" is beyond a 32-bit floatAȯ A:" is not in its shortest formA˜° A: fires no event but names oneAè° or flagsAˆ± G@ moves no node but has a target Aر [T keeps children in a file without fidelityAȲ kd has unknown attributes in a file without fidelityAȳ , not 0 to Aø³ 's input A¨´ 's layer AØ´ 's state Aˆµ ' 's interpolator A¸µ MF has a number beyond a 32-bit floatA˜¶ E>'s easingValue is not 0, 1 or 2Aè¶ 92's fourth number is not 0A¸· /( names interpolator Aø· -& where the next is A¸¸ c\ interpolators, of which its transitions name A¨¹  has Aȹ ' a speed or flagsAø¹ aZ is an Entry, Any or Exit state with a name, Aèº [T is no AnimationState but has an animationAØ» ?8which the encoder leaves outA¨¼ ?8 is named as its animation, Aø¼ wp reads no view model but has a path, global or converterAø½ =6 reads no input but has oneAȾ ]V is no blend state but has blend animationsA¸¿ 's blend Aè¿ 's directA˜À MF is of the other blend state's kindAøÀ 's sourceA¨Á A: is direct but has a 1D valueAøÁ SL is 1D but has a direct blend's sourceAØÂ WP's source is not the one its fields nameA¸Ã #'s transition Aèà 's durationA˜Ä 's exit timeAÈÄ ' 's interpolationAøÄ 92's interpolator index is AÈÅ ' 's random weightAøÅ !'s condition A¨Æ 's operatorAØÆ MF reads no view model but has a pathA¸Ç E> reads no node but has a targetAˆÈ WP has a right side its kind does not takeAèÈ WP is a trigger condition with an operatorAÈÉ #'s occursValueAøÉ C< fires an event but has a pathAÈÊ MF fires a trigger but names an eventA¨Ë 5., beyond a 32-bit floatAèË 's numberA˜Ì 's booleanAÈÌ OH is no number input but has a numberA¨Í SL is no boolean input but has a booleanAˆÎ x's binding has unknown attributes in a file without fidelityA˜Ï animation AÈÏ  's fpsAèÏ 's speed is A˜Ð 's loopA¸Ð OH's work area starts or ends below -1A˜Ñ )"'s enableWorkAreaAØÑ “Œ's work area is enabled but does not run forward from frame 0 or laterAøÒ 1* loops over no framesA¸Ó 's quantizeAèÓ 's object A˜Ô  property AÈÔ %'s key kind is AøÔ 's key kindA¨Õ 's frameAÈÕ 's key AèÕ IB's value is beyond a 32-bit floatAÈÖ  event AèÖ 's property A˜× , not 0 or 1AÈ× 's once is Aø×  extra A˜Ø QJ: out of order, or not one of BIND's AøØ % names binding A¨Ù C<converters nested deeper than AøÙ ;4a converter without a typeAÈÚ #) past FIDL's AøÚ -&an XML node index (A¸Û # is used twiceAèÛ XML node A˜Ü ' , which has noneAÈÜ 3,an attribute of owner AˆÝ /(padding past the endAÈÝ +$ has unknown flagsAˆÞ -&section ITEM: item AÈÞ SL, which is not there or is named twiceA¨ß ‘Šsection ITEM: a comment or unknown element in a file without fidelityAÈà %a value index (Aøà ' ) past the end (A¨á an offset (AØá </x>Aøá <x>A˜â section A¸â =6) larger than the data leftAˆã a count (A¸ã +$the values table (Aøã ]Vthe values table's entries do not fill its Aèä 5.an unknown value kind (A¨å C<a bool that is neither 0 nor 1Aøå =6 numbers, not three a pointAÈæ 70a PackedVector3Array of Aˆç =6 numbers, not four a colourAØç 3,a PackedColorArray of A˜è 92 numbers, not two a pointAèè 70a PackedVector2Array of A¨é 3,, not a 32-bit integerAèé =6a PackedInt32Array holding A¸ê YRa value kind this version cannot decode (A¨ë 70, which is not before itAèë /(a value names value A¨ì =6 has bytes past its recordsAøì IB bytes) larger than the data leftAØí ' string lengths (Aˆî qjthe string table does not start with the empty stringAˆï QRSCNB A¨ï  bytes longAØï  it is Aøï aZit does not start with the .rscnb magic bytesAèð  bytes)Aˆñ 92its header is cut short (AØñ e^ of the encoding, newer than this build reads (AÈò #it is version Aøò WPversion 0 of the encoding does not existAØó 5. bytes, the file holds A˜ô ' its header says AÈô e^its CRC-32 does not match (the file is damaged)A¸õ QJthe header's reserved bytes are not 0A˜ö QJ of the scene, this build reads 1 to Aøö ' it holds format A¨÷ A:an unknown kind of document (Aø÷ %unknown flags (A¨ø MFits section table runs past the endAˆù )" is not 8-alignedAÈù 3, lies outside the fileAˆú # appears twiceA¸ú  sectionAØú it has no Aˆû ibit says it keeps fidelity but has no FIDL sectionAˆü wpit has a FIDL section but does not say it keeps fidelityAˆý qjit says it carries its assets but has no ASST sectionAˆþ �zit has an ASST section but does not say it carries its assetsA˜ÿ qjit says it both keeps fidelity and carries its assetsA˜€ UNa material document that carries assetsAø€ aZits ASST section is not the last of its tableAè� -alignedAˆ‚ 70its ASST section is not AÈ‚ ohits ASST section does not run to the end of the fileAȃ =6 runs into the ASST sectionA˜„ KD" is not a res:// or relative pathAø„ /(path-outside-projectA¸… A:" leads outside the project (Aˆ† YR" leads outside the project (the root is Aø†  ignoredA˜‡ )" embedded file isA؇ -& embedded files areA˜ˆ aZ is a packed scene instanced by another: its Aˆ‰ e^ is this packed scene's own path: it is ignoredAø‰ +$the embedded file A¸Š E> build --pack -o <other>.rscn`)Aˆ‹ kdremove it, or pack the scene under another name (`AˆŒ hedra.yamlA¸Œ  .rscnbAØŒ stateMachineAˆ� scalingModeA¸� renderScaleAè� maxDensityA˜Ž maxPixelsAÈŽ unbuiltLabelAøŽ yawA˜� lodThresholdAÈ�  statusAè�  eventsAˆ� loadBudgetA¸� resourcesAè� %resourceSummaryA˜‘ )"hedra: resources AØ‘ !,"fallbacks":Aˆ’ ,"buffers":A¸’ ,"cpu":AØ’ ,"refs":Aø’ {"count":A¨“  , GPU AÈ“  CPU Aè“  referenceA˜”  referencesAÈ”  resource, Aø”  resources, A¨• )" read from sourceAè•  BAˆ–  KBA¨–  GBAÈ–  msAè–  ) in Aˆ— %could not load A¸— loaded AØ— hedra: Aø— /( frames, worst step A¸˜  over Aؘ readingAø˜ the CRCA˜™ decoding AÈ™ decodingAè™ the treeAˆš C<the bundle holds no such entryAØš /(it is not a resourceA˜› 5.: its text is not UTF-8AØ›  is not Aø›  version A¨œ /( bytes after its endAèœ : layer Aˆ� 70 is not the size it saysAÈ� +$'s texels are not Aˆž YRa layer form this version does not know (Aøž ³¬a material file is MaterialX holding one gltf_pbr material (docs/formats/MATERIALS.md)A¸  E>": the material cannot be drawnAˆ¡ 92the material classes are AØ¡ oh is in a texture format this version does not read (AØ¢ ! forms (1 to Aˆ£ !: a table of A¸£ KD, which this version does not knowA˜¤ )": a form of kind Aؤ wp: its forms are not in kind order, or one is there twiceAØ¥ C< form lies outside the payloadA¨¦ bcAȦ etc2Aè¦ #astc ²0Pp°VA˜§ ;4 bytes after its last formAè§  formAˆ¨  formatA¨¨ , not a AȨ SLnot a KTX2 file (no KTX 20 identifier)A¨© ! bytes of 80)AØ© 5.truncated KTX2 header (A¨ª 1*unsupported vkFormat Aèª 70 (a block format's is 1)A¨« typeSize AØ« 5.a 1D or empty texture (A˜¬ # texels a sideAȬ  exceeds Aø¬ 92a 3D texture (pixelDepth AÈ­  layers)Aè­ +$an array texture (A¨® UN faces (a cube map is not a 2D texture)Aˆ¯  (at most A¸¯  levels for Aè¯ A: (0 none and 3 zlib are read)A¸° MFunsupported supercompressionScheme A˜± 1*truncated level indexAر UNkey-value data past the end of the fileA¸² oha key-value entry past the end of the key-value dataA¸³ ' hedra.normal_mapAè³ 5. bytes uncompressed; a A¨´  level AÈ´ C< lies past the end of the fileA˜µ  stores A¸µ 1* cannot inflate from Aøµ -& does not inflate: A¸¶ =6the stream holds more than Aˆ· )"the stream holds AÈ· Q «KTX 20»  Aè· ]Va model format this version does not know (Aظ _Xa material form this version does not know (Aȹ +$) is not before itAˆº object A¨º OHa visibility that is neither 0 nor 1Aˆ» G@, which the bundle does not holdAØ» ' names the mesh Aˆ¼ !: its object A¸¼  mesh Aؼ YR has rig flags this version does not knowAȽ ;4's parent is not before itA˜¾  bone A¸¾ -& joints, more than Aø¾ a skin of A¨¿ 92's skin names no skeletonAø¿ -&'s skin names bone A¸À 3, has no frames to playAøÀ  clip A˜Á ! keys object AÈÁ  objectsAèÁ  tracks for A˜Â 's track AÈ : version AøÂ G@flags this version does not knowAÈà WP: its levels' index counts do not add upA¨Ä mf: its index counts add up to more than a mesh holdsA¨Å SL: its vertices decode to another countAˆÆ QJ: its indices decode to another countAèÆ A:: its arrays do not fill its A¸Ç # names vertex AèÇ E>: a range runs past its indicesA¸È 3, runs past its indicesAøÈ -&: a range of level A¸É G@a blend shape's normals flag is AˆÊ ! is cut shortA¸Ê blend shape AèÊ =6its skin block is cut shortA¸Ë /() is not from 0 to 1AøË %a skin weight (A¨Ì G@ indices are not whole trianglesAøÌ WP: compressed indices: bytes for no indexAØÍ 3,: compressed indices: A˜Î /( is past the mesh's AØÎ ?8: compressed indices: index A¨Ï A: does not go with byteStride AøÏ filter A˜Ð NoneA¸Ð OctahedralAèÐ ExponentialA˜Ñ IBmeshopt index stream is corrupt (AøÑ G@assertion `left == right` failedAÈÒ A: bytes is too large to decodeA˜Ó ' meshopt view of AÈÓ !InvalidHeaderAøÓ +$UnsupportedVersionA¸Ô ExtraBytesAèÔ !UnexpectedEofA˜Õ kd indices, which is not a whole number of trianglesA˜Ö ' TRIANGLES holds AÈÖ QJindex byteStride must be 2 or 4, not A¨× KDmeshopt vertex stream is corrupt (AˆØ unassertion failed: vertex_size > 0 && vertex_size <= 256AˆÙ SLassertion failed: vertex_size % 4 == 0AèÙ �–assertion failed: vertex_count > 0 && vertex_count <= VERTEX_BLOCK_MAX_SIZEA˜Û qjassertion failed: buffer.len() % BYTE_GROUP_SIZE == 0A˜Ü YR is not a multiple of 4 between 4 and 256AˆÝ byteStride A¸Ý KD bytes, too short for their headerA˜Þ 5.: compressed vertices: AØÞ  expectedAˆß  stored, A¸ß 1* bytes do not fit in Aøß sl: compressed UV set 1: the bytes end before its lengthAøà )" bytes do not fitA¸á 5.: compressed UV set 1: Aøá ' bytes left overA¨â YR: compressed vertices: wrong decoded sizeA˜ã %) is past 65535AÈã ' a range's slot (Aøã -&) past the model's A¸ä +$a material index (Aøä ' does not read: A¨å 's value AØå )"shader parameter A˜æ oha shader parameter kind this version does not know (A˜ç at offset AÈç A:a material names the texture A˜è )" is damaged (CRC)AØè its Aøè lightmapA˜é lodsA¸é S audiop?PÝ n�£àž Ä€4P2 ïpt0` 4À4p‘pŒA˜ê  kind A¸ê #bundle-invalidAèê QJ is not a bundle this version reads: AÈë )" cannot be read: Aˆì Rive fileA¸ì ' levels of detailAèì audio streamA˜í  entryA¸í !/hedra-bundleAèí ]V(a built scene carries every asset it uses)AØî  build` Aøî wpit is a binary scene without its assets: build it with `Aøï SLit is a material document, not a sceneAØð %it has no indexAˆñ ;4its index is damaged (CRC)AØñ !) as an assetAˆò ;4it carries its own scene (AØò 1*its index is version A˜ó 3,its index is damaged: AØó IBits index has bytes after its endA¸ô 70, which it does not holdAøô ;4its index names the scene AÈõ 70its index names no sceneAˆö =6 build`, docs/cli/BUILD.md)AØö £œit is a binary scene without its assets (a self-contained scene is written by Aˆø mf is not a self-contained scene this version reads: Aˆù =6is cut short or not UTF-8 (AØù oh is not a binary scene this version reads: its SRCS AØú A: build writes, registers it: A¨û 70hedra_project.as, which Aèû 1*" is registered (its A¨ü /(: no Hedra project "Aèü  load Aˆý [T build: its hedra_project.as registers it)Aøý �zno Hedra project is registered (build the Hedra project with Aˆÿ QJ; name one with SceneOptions.project)Aèÿ =6no Hedra project holds it (A¸€ mf: no scene named, and the project has no main sceneA¸� +$none is registeredAø� ?8the registered projects are AÈ‚ build/hedra/Aø‚ YR, not a number of milliseconds, 0 or moreAèƒ 'hedra.yaml: PkÐæA˜„ /(, not text or alwaysAØ„ -&, not true or falseA˜… )"no source readersAØ… not builtAˆ† Not built: A¸† out of dateAè† !Out of date: A˜‡ ' built for Hedra Aȇ ' Built for Hedra Aø‡ C<Not built, no source readers: AȈ  text:Aèˆ )": it did not loadA¨‰  /hedraAȉ aZ build, which declares it in hedra.built.rml)A¸Š e^ is not declared (build the Hedra project with A¨‹ )": no built form: Aè‹  build)AˆŒ IB.x (build the project again with AèŒ 5..x and this library is A¨� 1* was built for Hedra Aè�  built:AˆŽ ! did not loadA¸Ž +$docs/cli/BUILD.md)AøŽ �z build`, which vendors the library for the scenes' features: Aˆ� G@ (build the project again with `AØ� SL, which this module was not built withA¸‘ )": its scenes use Aø‘ feature bit A¨’ the feature AØ’ !the features Aˆ“ %   @A¸“ scriptsAØ“ artboardsAˆ” bindingsA¨” interactionAØ” ?navigationÀIàIJ0J€¯ øÀ4`JA¨• UNrendering/anti_aliasing/quality/msaa_3dAˆ– MFrendering/renderer/rendering_methodAè– QJrendering/driver/depth_prepass/enableAÈ— kdrendering/driver/depth_prepass/disable_for_vendorsAȘ 92rendering/scaling_3d/modeA˜™ ;4rendering/scaling_3d/scaleAè™ KDrendering/scaling_3d/fsr_sharpnessAÈš G@rendering/scaling_3d/max_densityA˜› E>rendering/scaling_3d/max_pixelsAè› A:rendering/shading/sort_opaqueA¸œ QJrendering/shading/specialize_surfacesA˜� Hrendering/environment/ssao/half_size°JKpKÐKPL LðLPM MðM@N NA¨ž 2xAÈž 4xAèž 8xÀ�0OPOpOA˜Ÿ ' gl_compatibilityAÈŸ slWebGL 2 with its own renderer): forward_plus or mobileAÈ  �z is gl_compatibility, which Hedra does not have (Hedra draws AØ¡ forward_plusAˆ¢  mobileàPQA¸¢ fsr2AØ¢ G@motion vectors): bilinear or fsrA¨£ YR, which Hedra does not draw (FSR 2 needs A˜¤ 0.25 to 2AȤ  0 to 2Aè¤ UN, not a number of 0 or more (0: no cap)AÈ¥ aZ, not a whole number of 0 or more (0: no cap)A¸¦ /(, not a number from Aø¦ !, not one of A¨§ —~rendering/environment/screen_space_reflection/roughness_qualityÀ�ðÑÒ0ÒAȨ {trendering/camera/depth_of_field/depth_of_field_bokeh_shapeAØ© hexagonAø© # circleKàTUA¨ª xrendering/camera/depth_of_field/depth_of_field_bokeh_qualityA¸« 'very_lowÀUðÑÒ0ÒAè« unrendering/environment/screen_space_reflection/half_sizeAè¬ {trendering/environment/screen_space_reflection/quarter_sizeAø­ yrrendering/camera/depth_of_field/depth_of_field_use_jitterAˆ¯ 1*built file unreadableAȯ 92main scene is registered)A˜° üScene3D: no scene to show (the view model's scene is empty and no single Hedra project with a Aè± artboard_0A˜² artboard_1AȲ artboard_2Aø² artboard_3A¨³ artboard_4Aس artboard_5Aˆ´ artboard_6A¸´ artboard_7Aè´ YR0,9 0,2 1.5,0 3.5,0 5,2 5,9 | 0,5.5 5,5.5Aص }v0,9 0,0 4,0 5,1 5,3.5 4,4.5 0,4.5 | 4,4.5 5,5.5 5,8 4,9 0,9Aè¶ E>5,1 4,0 1,0 0,1 0,8 1,9 4,9 5,8A¸· =60,0 3,0 5,2 5,7 3,9 0,9 0,0Aˆ¸ A:5,0 0,0 0,9 5,9 | 0,4.5 4,4.5Aظ 925,0 0,0 0,9 | 0,4.5 4,4.5A¨¹ UN5,1 4,0 1,0 0,1 0,8 1,9 4,9 5,8 5,5 3,5Aˆº E>0,0 0,9 | 5,0 5,9 | 0,4.5 5,4.5Aغ E>1,0 4,0 | 2.5,0 2.5,9 | 1,9 4,9A¨» IB2,0 5,0 | 4,0 4,8 3,9 1,9 0,8 0,7Aˆ¼ E>0,0 0,9 | 5,0 0,5.5 | 2,3.5 5,9Aؼ 0,0 0,9 5,9Aˆ½ 1*0,9 0,0 2.5,5 5,0 5,9AȽ %0,9 0,0 5,9 5,0Aø½ MF1,0 4,0 5,1 5,8 4,9 1,9 0,8 0,1 1,0Aؾ =60,9 0,0 4,0 5,1 5,4 4,5 0,5A¨¿ e^1,0 4,0 5,1 5,8 4,9 1,9 0,8 0,1 1,0 | 3,6.5 5,9A˜À UN0,9 0,0 4,0 5,1 5,4 4,5 0,5 | 2.5,5 5,9AøÀ un5,1 4,0 1,0 0,1 0,3.5 1,4.5 4,4.5 5,5.5 5,8 4,9 1,9 0,8AøÁ 1*0,0 5,0 | 2.5,0 2.5,9A¸Â 5.0,0 0,8 1,9 4,9 5,8 5,0AøÂ !0,0 2.5,9 5,0A¨Ã 1*0,0 1,9 2.5,4 4,9 5,0Aèà )"0,0 5,9 | 5,0 0,9A¨Ä E>0,0 2.5,4.5 5,0 | 2.5,4.5 2.5,9AøÄ %0,0 5,0 0,9 5,9A¨Å ib1,0 4,0 5,1 5,8 4,9 1,9 0,8 0,1 1,0 | 4.5,1 0.5,8A¨Æ 1*1,2 3,0 3,9 | 1,9 5,9AèÆ A:0,1 1,0 4,0 5,1 5,3.5 0,9 5,9A¸Ç ‰‚0,1 1,0 4,0 5,1 5,3.5 4,4.5 1.5,4.5 | 4,4.5 5,5.5 5,8 4,9 1,9 0,8AØÈ %4,9 4,0 0,6 5,6AˆÉ MF5,0 0,0 0,4 4,4 5,5 5,8 4,9 1,9 0,8AèÉ aZ4,0 1,0 0,1 0,8 1,9 4,9 5,8 5,5.5 4,4.5 0,4.5AØÊ !0,0 5,0 1.5,9AˆË ±ª1,0 4,0 5,1 5,3.5 4,4.5 1,4.5 0,3.5 0,1 1,0 | 1,4.5 0,5.5 0,8 1,9 4,9 5,8 5,5.5 4,4.5AÈÌ aZ5,4.5 1,4.5 0,3.5 0,1 1,0 4,0 5,1 5,8 4,9 1,9A¸Í E>2.5,2.5 2.5,2.6 | 2.5,6.9 2.5,7AˆÎ 4.5,0 0.5,9A¸Î !2.5,8.9 2.5,9AèÎ 0,9 5,9AˆÏ 1,4.5 4,4.5A¸Ï Ó3,7.2 3,8 1.8,9pZàZp[À[\`\°\]`]°]^`^�^Ð^_`_°_ `€`a@a€a°aða0b€b°b0cpcÀc`d�dðd`e�ePfÀfg@gpg�gÀgA˜Ñ !hedra presentAÈÕ UBOAèÕ samplerAˆÖ WARNING: A¸Ö ÓÌscreen-space reflections and refraction are not drawn: the host refused the screen texture's pipelinesA˜Ø —�screen-space reflections are not drawn: the host refused their pipelinesA¸Ù }vdepth of field is not drawn: the host refused its pipelinesAÈÚ #hedra fsr easuAøÚ #hedra fsr rcasA¨Û !hedra stretchAØÛ ' GPUBuffer.updateAˆÜ § FSR 1.0 is not drawn: the host rejected its pipelines (the picture is stretched)A¸Ý 5.shaders/render/post_fsrAøÝ fs_easuA˜Þ fs_rcasA¸Þ fs_stretchAèÞ  vs_fsrAˆß xshadows are not drawn: the host rejected the shadow pipelineA˜à yrshadows are not drawn: the host rejected the shadow atlasA¨á �zpost-processing is not drawn: the host rejected its pipelinesA¸â -&hedra main (opaque)Aøâ hedra mainA¨ã )"hedra main (late)Aèã !hedra overlayA˜ä hedra idA¸ä !hedra outlineAèä !hedra composeA˜å žskinned meshes are drawn unposed at the scene's origin: the host rejected the skinned pipelinesAèæ SLmesh: UV set 1 built after its releaseAÈç ­¦a custom shader is drawn with its fallback material: the host refused its pipelinesAˆé fs_customA¸é fs_custom_idAèé 3,fs_custom_normal_depthA¨ê %fs_custom_depthAØê -&vs_custom_instancedA˜ë )"vs_custom_skinnedAØë vs_customAˆì +$vs_surface_skinnedAÈì 3,vs_surface_ext_skinnedAˆí %surface-skinnedA¸í 1*surface-blend-skinnedAøí +$surface-id-skinnedA¸î /(normal-depth-skinnedAøî %fs_normal_depthA¨ï fs_shadowAØï -&surface-ext-skinnedA˜ð #fs_surface_extAÈð 92surface-blend-ext-skinnedA˜ñ 3,surface-id-ext-skinnedAØñ fs_id_extAˆò 70normal-depth-ext-skinnedAÈò -&fs_normal_depth_extAˆó !fs_shadow_extA¸ó -&surface-top-skinnedAøó 5.surface-top-ext-skinnedA¸ô 3,surface-id-top-skinnedAøô ;4surface-id-top-ext-skinnedAÈõ )"hedra glow brightAˆö %hedra glow blurA¸ö hedra finalAèö hedra dofA˜÷ ô @A¸÷ 5.shaders/render/post_dofAø÷ fs_dof_cocA¨ø !fs_dof_gatherAØø #fs_dof_composeAˆù  vs_dofA¨ù vs_screenAØù #fs_screen_copyAˆú ;4shaders/render/post_screenAØú #fs_screen_downAˆû %hedra ssr mergeA¸û #hedra ssr copyAèû %hedra ssr traceA˜ü fs_ssr_mergeAÈü  vs_ssrAèü 5.shaders/render/post_ssrA¨ý fs_ssr_traceAØý #fs_ssr_nd_halfAˆþ /(hedra screen textureAÈþ _Xmesh: lightmap UVs built after their releaseA¸ÿ #vs_surface_extAèÿ 70vs_surface_ext_instancedA¨€ /(vs_surface_instancedAè€ !vs_surface_lmA˜� )"fs_surface_ext_lmAØ� !fs_surface_lmAˆ‚ surface-ofA¸‚ !hedra prepassAè‚ hedra ssaoA˜ƒ %hedra ssao blurAȃ +$hedra normal-depthAˆ„ hedra shadowA¸„ =6shaders/render/shadow_clearAˆ… %vs_shadow_clearA¸… normal-depthAè… fs_ssaoAˆ† fs_ssao_blurA¸† #fs_glow_brightAè† #fs_glow_blur_hA˜‡ #fs_glow_blur_vAȇ Efs_postð‚ƒ@ƒpƒ ƒЃA˜ˆ ×ÐglTF material extensions are not drawn: the host rejected their pipelines (drawn with the core material)Aø‰ surface-extA¨Š )"surface-blend-extAèŠ #surface-id-extA˜‹ ' normal-depth-extAÈ‹ ‰‚instanced meshes are not drawn: the host rejected their pipelinesAèŒ )"surface-instancedA¨� 5.surface-blend-instancedAè� /(surface-id-instancedA¨Ž 3,normal-depth-instancedAèŽ 92); drawn as a placeholderA¸� 5.' could not be loaded (Aø� texture 'A¨� SLtexture: a released copy uploaded anewAˆ‘ releasedA¨‘ sltexture: a released copy bound with the other samplingA¨’ e^memory/keep_cpu_copies); drawn as a placeholderA˜“ »´' was released from the CPU after its upload and is sampled another way now (keep it with Aè” E>only PNG textures are supportedA¸• 5.graphics device error: Aø• !i/o error on A¨– PNG error: AØ–  form: Aø– =6' could not be loaded (its AÈ—  decodedAè— 5. texture without levelsA¨˜ QJtexture: a released form decoded anewAˆ™ [Tits CPU copy was released after its uploadAø™ SLtexture: a released form uploaded anewAØš  srgbAøš linearA˜›  blackAÈ› ext-arrayAø› )"extension textureA¸œ ½¶lightmapped items are drawn with real-time light: the device refused the lightmap pipelinesAˆž surface-lmA¸ž ' surface-blend-lmAèž #surface-ext-lmA˜Ÿ /(surface-blend-ext-lmAØŸ ÉÂitems with no_depth_test are drawn with the depth test: the host refused the pipelines without itA¸¡ surface-topAè¡ %surface-top-extA˜¢ #surface-id-topAÈ¢ +$surface-id-top-extAˆ£ ·°lightmapped items are drawn with real-time light: the host rejected the lightmap textureAȤ wpthe sky's light is not drawn: the host rejected its mapsAÈ¥ nearestAè¥ ‘Šviewports are not drawn: the host refused the blit into their targetsAˆ§ 1*fs_blit_srgb_straightAȧ 5.fs_blit_linear_straightAˆ¨ +$hedra live textureAȨ vs_blitAè¨ xa viewport is not drawn: the host refused its render targetsAø© ?8shaders/render/artboard_blitAȪ Áº' not found (is shaders/render/ in the project?): artboard textures are drawn as placeholdersA˜¬ unthe host rejected the artboard blit's bind group layoutA˜­ ¹²artboard textures are drawn into 8-bit targets: the host has no half-float render targetsAè® fs_blit_srgbA˜¯ #fs_blit_linearAȯ e^the host rejected the artboard blit's pipelinesA¸° Ÿ˜reflection probes are not drawn: the device has no half-float render targetsAè± ‹„reflection probes are not drawn: the host rejected their pipelinesAˆ³ ƒ|reflection probes are not drawn: the host rejected their atlasA˜´ +$hedra probe filterAØ´ -&hedra probe captureA˜µ #fs_probe_placeAȵ !fs_probe_downAøµ !fs_probe_copyA¨¶ %fs_probe_filterAض vs_probeAø¶ ¥decals: the host cannot draw into a layer of the decal atlas; its textures are composed on the CPU and artboard textures show their placeholderA¨¹ ' hedra decal blitAع ™’decals: the host refused the decal blit's pipelines; decals are not drawnAˆ» ƒ|decals: the host refused the decal atlas; decals are not drawnA˜¼ 92shaders/render/decal_blitAè¼ !fs_decal_copyA˜½ %fs_decal_encodeAȽ !vs_decal_blitAø½ •Ždecals: more textures than the atlas holds; the last ones are not drawnA˜¿ !hedra_shadersAÈ¿ surface_Aè¿ #hedra_shaders/A˜À ‡€custom shaders are not drawn here: no shader source is installedA¨Á MF is not drawn: there is no GPU hereAˆÂ  build`A¨Â E> has errors: fix them and run `AøÂ _X was not built into this Rive project: run `Aèà ¥žartboard textures are drawn as placeholders: the host cannot draw into a canvasA˜Å  canvasA¸Å )"the host gave no AøÅ A:the host gave no view of its AÈÆ # colour targetAøÆ 1*the host refused its A¸Ç  data targetAèÇ C< is drawn as its placeholder: A¸È )"artboard texture AøÈ ' (A˜É QJ of the view model its artboard bindsAøÉ [Tinstance lacks (or holds as another kind) AèÊ UN plays unbound: the scene's view model AÈË " in it: AøË %no view model "A¨Ì ' " of view model AØÌ !no instance "A„Í A¨Í ]Vpick: a mesh released without its trianglesA˜Î  onA¸Î 5. has no script to call AøÎ signal A˜Ï body_enteredAÈÏ body_exitedAøÏ area_enteredA¨Ð area_exitedAØÐ !mouse_enteredAˆÑ mouse_exitedA¸Ñ input_eventAèÑ ‹„" is not a finite number (a Rive number is at most 3.4e38 in size)AˆÓ oh" is not a color (8 hex digits of ARGB, or 6 of RGB)AˆÔ (no keys)A¸Ô )"" is not one of: AøÔ ;4a property of another kindAÈÕ ¥ž cannot be set: bindings take a number, a boolean, a color, a string or an enumAøÖ triggerA˜× view modelAÈ× A:binding-converter-unsupportedA˜Ø ?8, which 3D does not evaluateAèØ ‰‚; lists, EnumToUint and scripted converters are not evaluated yetAˆÚ !3D evaluates A¸Ú KD>), which 3D does not evaluate yetA˜Û 1* binds a parameter (<AØÛ G@docs/engine/DATA.md "Converters"A¨Ü ügive the parameter a value in place of the bind, or work the value out in the view model; see AøÝ 92binding-converter-invalidAÈÞ g` holds a <DataConverterGroupItem> it cannot readA¸ß A:(not RML's converterId); see Aˆà ãÜa group's item is written <DataConverterGroupItem converter="<name>"/>, the converter's name and nothing else Aøá 92>, which it does not readAÈâ  holds <Aèâ ­¦<DataConverterGroupItem converter="<name>"/> items, other converters no child; see A¨ä ÉÂRangeMapper and Interpolator take a CubicEaseInterpolator child, Formula its tokens, a group its Aˆæ +$DataConverterGroupAÈæ 5.binding-converter-cycleAˆç  > A¨ç 70" holds itself (through Aèç )"converter group "A¨è ‘Ša group's items name other converters: remove the one that leads backAÈé  names Aèé 3,DataConverterOperationA¨ê =6DataConverterOperationValueAøê !operationTypeA¨ë #operationValueAØë A:DataConverterSystemDegsToRadsA¨ì A:DataConverterSystemNormalizerAøì E>DataConverterOperationViewModelAÈí !sourcePathIdsAøí ‰‚ names its operand by ids (sourcePathIds), which 3D cannot followA˜ï )" names no operandAØï …~name the view model number it reads with path="<property path>"Aèð 70DataConverterRangeMapperA¨ñ minInputAÈñ maxInputAèñ minOutputA˜ò maxOutputAÈò clampLowerAøò clampUpperA¨ó  moduloAÈó ?reverseP¹€¹°¹йð` Àˆ@œA˜ô /(DataConverterRounderAØô decimalsAøô 1*DataConverterToStringA¸õ  roundAØõ !trailingZerosAˆö 3 formatWithCommasÀºàº»AÈö colorFormatAøö 1*DataConverterToNumberA¸÷ 3,DataConverterStringPadAø÷  lengthA˜ø padTypeA¸ø  startAØø end@¼`¼Aøø 5.DataConverterStringTrimA¸ù trimTypeAØù all0<@¼`¼à¼Aˆú C<DataConverterStringRemoveZerosAØú ;4DataConverterBooleanNegateA¨û /(DataConverterTriggerAèû 92DataConverterInterpolatorA¸ü /(DataConverterFormulaAøü %randomModeValueA¨ý +sourceChange°æÐæ°¾Aèý e^` lists its attributes and the values they takeAØþ !`rive schema Aˆÿ )"FormulaTokenInputAÈÿ )"FormulaTokenValueAˆ€ 1*FormulaTokenOperationAÈ€ /(FormulaTokenFunctionAˆ� functionTypeA¸� minAØ� maxAø� ceilA˜‚  floorA¸‚ sqrtAØ‚ powAø‚ expA˜ƒ logA¸ƒ  cosineA؃ sineAøƒ acosineA˜„  asineA¸„ atangentAØ„ catangent2ÀÀàÀÀºÁ Á@Á`Á€Á ÁÀÁàÁà- Â@Â`Â`¯AÈ… =6FormulaTokenParenthesisOpenA˜† ?8FormulaTokenParenthesisCloseAè† A:FormulaTokenArgumentSeparatorA¸‡ 70> is not a formula tokenAø‡ =6a whole number of 0 or moreAȈ InterpolatorAøˆ oh is not evaluated in 3D (a CubicEaseInterpolator is)Aø‰ 5.CubicEaseInterpolator: A¸Š one of AØŠ !true or falseAˆ‹ a numberA¨‹ addAÈ‹ subtractAè‹ multiplyAˆŒ  divideA¨Œ squareRootAØŒ c power°ÅÐÅðÅÆ°¹0Æ`Æ€Á ÁÀÁàÁà- Â@Â`ÂÀº ÁÁAÈ� DataBindAè� E>Interpolator, Formula and GroupA¸Ž ߨRangeMapper, Rounder, ToString, ToNumber, StringPad, StringTrim, StringRemoveZeros, BooleanNegate, Trigger, A¨� £Öthe DataConverter types Operation, OperationValue, OperationViewModel, SystemDegsToRads, SystemNormalizer, ð´0µ€¶àµ0¶p¸ º€º€»À»€¼½`½°½ð½@¾³AØ’ 92binding-converter-unknownA¨“ #no converter "AØ“ UNthe scene has no data source to look inA¸” ?8the scene's own converters: Aˆ• IBthe scene declares no converter; Aè• +$the converters of A¨– 3, declares no converterAè– IB could not be read as a Rive fileAÈ— C< could not be read as RML dataA˜˜ model-loadAȘ QJ: the built scene holds no such modelA¨™ +$cannot load model Aè™ modifierAˆš -&object.modifier_addAÈš toolAèš iba model is an .rmdl, .rmdlcmd, .gltf or .glb fileAè› YR; loaded with the default import settingsAØœ ' nodes/root_scaleAˆ� !nodes/up_axisA¸� /(meshes/generate_lodsAø� G@meshes/force_disable_compressionAÈž -&meshes/light_bakingAˆŸ IBa section header is [name], not 'AèŸ  remapAˆ  depsA¨  # paramsðÏÐ0ÐAØ  oh] (an .import file has [remap], [deps] and [params])AØ¡ )"unknown section [A˜¢ qj' is not a key=value line, a [section] or a ; commentA˜£ 3,a value with no key: 'AØ£ 3,a key has no spaces: 'A˜¤ sl' comes before any section ([remap], [deps], [params])A˜¥ +$ is set twice in [AØ¥ WP: a dictionary ({...}) with no closing }A¸¦ dest_filesAè¦ importerAˆ§ ;4 is a string ("..."), not Aا metadata/Aˆ¨ source_fileA¸¨ source_hashAè¨ •Ždest_files is a list of strings (["build/cache/import/...", ...]), not Aˆª WPno importer: [remap] names it (importer=Aèª %' (Hedra's are A˜« +$unknown importer 'AØ« C< is not a list or a dictionaryA¨¬  importerAج ' for the Aˆ­ )"unknown setting 'AÈ­ 70 is true or false, not 'Aˆ® IB is not supported by this versionAè® 5. (or its number), not 'A¨¯  is one of Aد -& is a number, not 'A˜° 92 is a whole number, not 'Aè° , not 'Aˆ±  is from A¸± -&CompressedTexture2DAø± ohWhether the sound loops at its end, from loop_offsetAø² loop_offsetA¨³ QJWhere a loop starts again, in secondsAˆ´ #edit/loop_modeA¸´  detectAØ´ forwardAø´ pingpongA˜µ +backward@ÚÀ�`Ú€Ú ÚAص slbackward play forward (the runtime plays forward only)Aض åÞWhether the sound loops at its end; detect: as the file's smpl chunk says (none: it plays once). Ping-pong and Aȸ %edit/loop_beginAø¸ õîThe loop's first sample frame when edit/loop_mode is forward, pingpong or backward (negative: from the end, -1 the end)Aøº !edit/loop_endA¨» ÑÊThe frame the loop goes back from (-1: the end); inside the file, the left and right forms stop thereAˆ½ +$edit/panning_formsAȽ !plays centredAø½ åÞMake the left and right forms a built project pans the sound with (twice the stereo size of the file); off: it Aè¿ R:Scale the whole model by this�k€K KAÈÀ ›”The axis the file treats as up; auto: the format's own (glTF +Y, .rmdl +Z)AøÁ •ŽGenerate levels of detail, drawn smaller on screen with fewer trianglesA˜Ã µ®Store the meshes in a built scene uncompressed (by default quantised and meshopt-coded)AØÄ 7 static_lightmapsÀ�@’`â`’A˜Å ¥žout, static and static_lightmaps bake them, dynamic lights them from the probesAÈÆ ߨHow the model's meshes take part in baked lighting (the bake's gi_mode for its nodes): disabled leaves them A¸È !compress/modeAèÈ losslessAˆÉ  lossyA¨É %vram_compressedAØÉ )"vram_uncompressedA˜Ê ;basis_universalpä�ä°äàä åAèÊ ·° build --target` chooses from: bc, etc2, astc), vram_uncompressed RGBA8 with its mipmapsA¨Ì (the forms `AØÌ åØHow the texture is stored in a built scene: lossless keeps the PNG, vram_compressed the GPU's block formats AÈÎ 1*compress/high_qualityAˆÏ µ®BC7 and ASTC 4x4 instead of BC1/BC3 and ASTC 6x6: twice the bytes, closer to the sourceAÈÐ -&compress/normal_mapAˆÑ  enableA¨Ñ #disable@Ú�è°èAØÑ _Xa texture a material uses in its normal slotAÈÒ ßØA normal map is compressed in the high-quality formats, with linear error and renormalised mipmaps; detect: A¸Ô ' mipmaps/generateAèÔ }vStore the mip chain (halved, box-filtered) with the textureAøÕ !mipmaps/limitA¨Ö qjThe most mip levels below level 0 (-1: down to 1 x 1)A¨× 70process/fix_alpha_borderAè× ÇÀGive fully transparent texels their opaque neighbours' colour, so filtering shows no dark fringeA¸Ù 1*process/premult_alphaAøÙ UNMultiply colour by alpha before storingAØÚ =6process/normal_map_invert_yA¨Û ‡€Flip a normal map's green channel (DirectX to OpenGL convention)A¸Ü +$process/size_limitAøÜ ‘ŠDownscale so that neither side exceeds this many texels (0: no limit)A˜Þ +process/srgb°è�è@ÚAØÞ mfuses it says (colour slots sRGB, data slots linear)AØß ÙÒWhether the texels are sRGB colour (perceptual error, *_SRGB formats); detect: as the material slot that AÀá AØá -&a key with no valueA˜â 3,text after a string: 'AØâ 70a list with no closing ]A˜ã ;4a list ending with a commaAèã MFa list holds strings ("..."), not 'AÈä KDlist items are separated by commasA¨å /(text after a list: 'Aèå _X' is not a value (a string is quoted: "...")AØæ UN in a string (strings escape \" and \\)A¸ç C<a string with no closing quoteAˆè  importA¨è MF; it is drawn with its own settingsAˆé KD': cannot read its MaterialX file Aèé )"); it is left outA¨ê ' ' is malformed (AØê  mesh 'Aøê E>' approximated by an omni lightAÈë area light 'Aøë [T' animates no object of the model; skippedAèì : action 'A˜í B0clip-channel-unsupportedÐI€K KAèí position:A˜î  scale:A¸î WP' keys nothing a scene can play; skippedA˜ï ‘Š channel(s) name a bone or shape key the model does not have; skippedA¸ð  fpsAØð -&one key a frame at A˜ñ ]V curve(s) no interpolator follows baked to Aˆò : clip 'A¨ò clip-bakedAÎò ’ð?t…Ó°Ùï?‰ùlXµï?Q[Гï?{Q}<¸rï?ª¹h1‡Tï?8bunz8ï?áÞõ�ï?·1 þï?Ë©:7§ñî?"4L¦Þî?-‰a`Îî?'*6ÕÚ¿î?‚O�V+´î?)THÝ«î?…U:°~¤î?Í;fž î?t_ìèuŸî?‡ës¡î?ÎL™‰¥î?Û *Bå¬î?åÅͰ7·î?�𣂑Äî?]%>²Õî?­ÓZ™Ÿèî?G^ûòvÿî?œR…Ý›ï?i�ïÜ 7ï?‡¤ûÜXï?_›{3—|ï?Ú�¤¢¯¤ï?@En[vÐï?¾óøyìaö?0–[ÆþÞ¿=ˆ¯Jíqõ?¤üÔ2h Û¿°ðð9•ô?{· ‹A׿…¸°•Éó?{Ïmé�Ó¿¥dˆ  ó?1¶òó›п Ž {"^ò?ðz;|É¿?4JJ»ñ?Ÿ<¯“ãù¿ºåŠðX#ñ?\�x¿Ë`¹¿§™A?•ð?Î_G¶�oª¿ð?Aèõ `¬GšýŒ`î?=õ$ŸÊ8³? j³¤ì?º‘8T©vÄ?æüjW6 ë?ÒäÄJ „Î?-ª¡cÑÂé?eÆðEÔ?íAxæ†è?øŸ,œŽØ?bHSõÜgç?Ì{±N¤àÜ?AØö -&index out of boundsA˜÷ -&dangling element idAØ÷ %' has no targetAˆø constraint 'A¸ø  bone 'AØø object #Aøø  is missingA¨ù ': target AØù —�': track and up axes must differ and the target must not sit on the headAøú , max = A˜û OHmin > max, or either was NaN. min = Aøû 0e0A˜ü C<': its action no longer existsAèü un animates a pose bone but the object is not an armatureAèý  ' for Aˆþ ': no bone 'A¸þ +$ needs an armatureAøþ 1*' has no constraint 'A¸ÿ ': bone 'Aèÿ ! needs a meshA˜€ )"': no shape key 'AØ€ ;4': unsupported data path 'A¨� )"] is out of rangeAè� pose.bonesA˜‚ constraintsAÈ‚ .influenceAø‚ key_blocksA¨ƒ  .valueAȃ locationAèƒ #rotation_eulerA˜„ H&rotation_quaternionÍÌL>ÍÌL>ÍÌL>€?Aè„ ,wire-solidÍÌL?ÍÌL?ÍÌL?A¸… IKAØ… !Copy LocationAˆ† !Copy RotationA¸† Copy ScaleAè† %Copy TransformsA˜‡ #Limit RotationAȇ #Limit LocationAø‡ Track ToA˜ˆ Damped TrackAȈ Stretch ToAøˆ Child OfA˜‰ BoneA¸‰ }v' preserves volume, which is drawn as linear blend skinningAÈŠ : mesh 'AèŠ /(skin-preserve-volumeA¨‹ ·° modifier(s) after its armature's, applied to the mesh at bind time before it is skinnedAèŒ  ' has Aˆ� -&skin-modifier-orderAÈ� qj' changes the mesh its modifiers make; it is left outAÈŽ ' ': blend shape 'AøŽ µ®' loses its vertex groups in its modifiers; it is drawn as the file poses it, unskinnedA¸� )"skin-weights-lostAø� 5.: it is drawn unskinnedA¸‘ +$ bones, more than Aø‘ ' uses A˜’ )"skin-joints-limitAØ’ _X vertices no bone weighs; they follow bone 'AÈ“ e^' was skipped: this build has no tool evaluatorA¸”  tool 'AØ” �z' was skipped: this build has no modifier extension installedAè• �zno object to instance (`modifier set <name> object <object>`)Aø– ‹„instancing needs the scene, and this mesh was evaluated without itA˜˜ YRthe geometry has no points to instance onAˆ™ =6faces need at least 3 vertsAØ™ %degenerate edgeAˆš scale 1A¨š no turnAÈš IB' on the points; every copy gets A¨› #no attribute 'AØ› #surface_normalAˆœ G@an object cannot instance itselfAØœ {t deep; a cycle of objects instancing each other has no endAè� 70instancing is more than A¨ž C<the object to instance is goneAøž %' is not a meshA¨Ÿ A:' has no geometry to instanceAøŸ Ö /A˜  [TremapFaceVerts needs one vertex per cornerAˆ¡ /(face still has loopsAÈ¡ edge on vertAø¡ ÇÀ is a boundary or non-manifold edge; bevel needs manifold interior edges with consistent normalsAÈ£  edge Aè£ sl edges; bevel needs at least three around a closed fanAè¤  has only A˜¥  vert A¸¥ “Œthe clamped bevel width is zero (a zero-length edge touches the bevel)Aئ E>; bevel needs interior verticesA¨§ 5. ends on boundary vert Aè§ 92mesh invariant violated: A¸¨ G@ degenerate; use a smaller widthAˆ© 92beveling would make face AØ© ' one beveled edgeAˆª edge in fanA¸ª  anchorAت ! has no edgesAˆ« MF; delete or fill it before bevelingAè« % has wire edge A˜¬ �z is non-manifold; bevel needs a single fan of faces around itA¨­ -&face lists the vertAè­ mf <ids>`, `select all` or `select where "..."` firstAè® `select Aˆ¯ vertA¨¯ edgeAȯ faceAè¯ ?8bevel width must be positiveA¸° A:--segments must be at least 1Aˆ± qj is not supported yet; using the circular profile 0.5Aˆ² profile A¨² Ö 3 ÈàÌÈÀÂAز LeftAø² 7 Right`€ ]@]€`@] ]A¸³ LEFTAس  RIGHTAø³ modifier 'A¨´ ' object <name>`)AØ´ YR': no armature object set (`modifier set Aȵ }varmature deform needs the scene (evaluated without context)Aض OHits armature object no longer existsA¸· 3,pose evaluation failedAø· Animation_A¨¸ 70 cannot be read; skippedAè¸ ': channel A˜¹ ;4it is no part of the modelAè¹ # are skipped: A˜º 70': the channels of node Aغ wp fps (a slerp cannot follow glTF's per-component spline)AØ» sl cubic spline rotation(s) baked to one key a frame at Aؼ 1*its joint has no boneA˜½ 70its skin has no skeletonAؽ 70' is not in the skeletonA˜¾ yrit is a skinned mesh's node, whose transform glTF ignoresA¨¿ KDits node is no object of the modelA–À €?€?€?€?AÆÀ €?€?€?€?AèÀ x': a weights channel targets a node that is no mesh; skippedAøÁ ‰‚': a weights channel targets a mesh without blend shapes; skippedA˜Ã %ô 02<xðAÈà MFattempted to unwrap an invalid itemA¨Ä WPinternal error: entered unreachable codeAˆÅ ]Vcalled `Option::unwrap()` on a `None` valueAøÅ 3, * mem::size_of::<T>()A¸Æ IBassertion failed: slice.len() >= A˜Ç shape-keysAÈÇ ModifierAèÇ kind÷ð#ÊA˜È  { ÀÆA¸È ß8 X€ ­­oxy€ƒ‹‹��¢¢ƒ‰00WX‹Œ�½¿¿ÁÂÄÅÇÏëîõK_ppÖÝßäçèêí0L¦°²¿ëóûý#%')/??Y]__ko�ŸÊ : : < < A H M M Q W b c � � „ „ � Ž ‘ ’ © © ± ± ³ µ º ¼ ¾ ¾ Á Æ É Ê Í Í Ï Û Þ Þ â å þ       ) ) 1 1 4 4 7 7 : = A X ] ] _ e p q u u w ‚ „ „ Ž Ž ’ ’ © © ± ± ´ ´ º ¼ Á È Ê Ê Í Ï Ñ ß â å ò ø ú       ) ) 1 1 4 4 : < > ? A F I J M [ ^ ^ b e x ‚ „ „ ‹ � ‘ ‘ – ˜ › › � �   ¢ ¥ § « ­ º ¾ À À Ã Å É É Í Ï Ñ å û     ) ) : < > @ E W [ [ ^ _ b e p v � � � � ‘ ‘ © © ´ ´ º ¼ ¿ À Â Â Å Û ß ß â å ð ð ô    ; < > > A E I I M M P S W W b e € � „ „ — ™ ² ² ¼ ¼ ¾ ¿ Ç Ï Ò × ß å ð ñ õ 114>GN\€ƒƒ……‹‹¤¤¦¦±±´¼¾¿ÅÅÇÏÚÛàÿ557799HHm~€„†‡�½ÆÆÍÍÛÿ-0279:=>XY^`qt‚‚…†����ÆÆÈÌÎÏ_`IINOWWYY^_‰‰Ž�±±¶·¿¿ÁÁÆÇ××[_}šŸö÷þÿ€€�Ÿùÿ247?R_mmq´µ·½ÆÆÉÓÝßêïúÿ y…†©©«¯öÿ"'(,/229?ACnou¬¯ÊÏÛÝVVX`bbelsŠ�šŸ®4=BDMMks€�¢¥¨­ææèéííïû,36:JL‹�»¼ÈÒÔàâèííôôøùûÿÀÿFGNOXXZZ\\^^~µµÅÅÔÕÜÜðñõõÿ ( / _ o r s � � � Ÿ  ÿ Œ!�!*$?$K$_$t+u+ï,ñ,ô,ø,&-&-(-,-.-/-h-n-q--—-Ÿ-§-§-¯-¯-·-·-¿-¿-Ç-Ç-Ï-Ï-×-×-ß-ÿ-^..š.š.ô.ÿ.Ö/ï/00*0/0@0@0—0š0110101d1d1�1�1æ1î122�¤�¤Ç¤Ï¤,¦?¦o¦r¦t¦}¦ž¦Ÿ¦ð¦ñ¦ø¦ÿ¦Ý§ð§¨¨¨¨ ¨ ¨%¨&¨,¨/¨:¨?¨x¨¨Ä¨Í¨Ú¨ñ¨ÿ¨ÿ¨&©-©G©Q©S©^©}©‚©³©³©¶©¹©¼©½©À©À©Î©Î©Ú©Ý©å©å©ÿ©ÿ©)ª.ª1ª2ª5ª?ªCªCªLªLªNªOªZª[ª|ª|ª°ª°ª²ª´ª·ª¸ª¾ª¿ªÁªÁªÃªÚªìªíªöª«««««««'«'«/«/«l«o«å«å«è«è«í«ï«ú«ÿ«¤×¯×Ç×Ê×ü×ÿønúoúÚúÿúûûûûûû7û7û=û=û?û?ûBûBûEûEûÐýïýþþþ/þSþSþgþgþlþoþuþuþýþÿžÿ ÿ¿ÿÁÿÈÿÉÿÐÿÑÿØÿÙÿÝÿßÿçÿçÿïÿûÿþÿÿÿ  '';;>>NO^ûÿ46���Ÿ¡Ïý�ŸÑàüÿ$,KOvžžÄÇÖÿžŸª¯Ô×üÿ(/dn{{‹‹““––¢¢²²ºº½¿ôÿ7?V_h††±±»ÿ  669;=>VVŸ¦°ßóóöú  : > Z  ¸ » Ð Ñ       6 ? I O Y _   ¿ å ê ÷ ÿ 6 8 V W s w ’ ˜ � ¨ ° ÿ I  ³ ¿ ó ù $ / : ? f m † � � _ª¬®¯²ÁÈÏÙÿ(/FPZo‚…НÌß÷ÿ8FNQppstv�³¶¹º½½ÂÏéïú'+-5HOssw�¶¾ÀÀÉÌÏÏààõÿ/147>>A‡‡‰‰ŽŽžžª¯ßßãïú ))1144:<>>@@EFIJMOQ\dŠŠŒ���¶¶¸¸»ÉËËÎÐÒÒÖÖÙÿ8?BDFF\\^^b°°³¸ºº½½¿ÀÂÃÈÏÚ¯¯²·¼½¿ÀÜÿ3:==?@EOZ_m««­­°·º¿ÊÏäÿ"%'/Gÿ/79:<Ÿóþ  00669>CCGOZŸ¨©ÔÛààåÿ 38;>GOQVY[Š–˜™£¯ùÿ `bdffh¿âïúÿ  0=??FOmo�¨ª°²³µÿ  1EGOZ_ffii�’••——™Ÿª¯Üßêßóôù6=@BZ¯±¿òþš#ÿ#o$o$u$$D%�/ó/ÿ/04@4G4_4ûCÿCGFÿ`a)a-a/a:aÿg9j?j_j_jjjmj¿j¿jÊjÏjîjôjöjÿj0k6kFkOkZkZkbkbkxk|k�k?mzm?n›nŸn¹nºnÔnÿnKoOoˆo’o oßoäoño÷oÿoÖŒþŒ��ó�ï¯ô¯ô¯ü¯ü¯ÿ¯ÿ¯#±1±3±O±S±T±V±c±h±o±ü²ÿ»k¼o¼}¼¼‰¼�¼š¼›¼�¼ž¼ ¼ÿËýÌÿ̴ιÎÑÎßÎñÎOÏÄÏÿÏöÐÿÐ'Ñ(ÑeÑiÑmтхыѪѭÑëÑÿÑBÒDÒFÒ¿ÒÔÒßÒôÒÿÒWÓ_ÓyÓÿÓUÔUÔ�Ô�Ô Ô¡Ô£Ô¤Ô§Ô¨Ô­Ô­ÔºÔºÔ¼Ô¼ÔÄÔÄÔÕÕ Õ ÕÕÕÕÕ:Õ:Õ?Õ?ÕEÕEÕGÕIÕQÕQÕ¦Ö§ÖÌ×Í×Ú6Ú;ÚlÚuÚuÚ„Ú„ÚŒÚÿÞß$ß+ß/ànàÿà-á6á>á?áJáMáPá�â®â¿âìâïâúâþâãÏäìäïäúäÏåîåïåûåþåæ¿æßæßæãæãæææææîæïæõæýæçßçççççìçìçïçïçÿçÿçÅèÆèÐèÿèDéJéLéOéZé]é`épìµìí>íÿíîî î î#î#î%î&î(î(î3î3î8î8î:î:î<îAîCîFîHîHîJîJîLîLîPîPîSîSîUîVîXîXîZîZî\î\î^î^î`î`îcîcîeîfîkîkîsîsîxîxî}î}îîîŠîŠîœî î¤î¤îªîªî¼îïîòîÿï,ð/ð”ðŸð¯ð°ðÀðÀðÐðÐðöðÿð®ñåñòò<ò?òIòOòRò_òfòÿòÙöÛöíöïöýöÿöÚ÷ß÷ì÷ï÷ñ÷ÿ÷ øøHøOøZø_øˆø�ø®ø¯ø¼ø¿øÂøÏøÙøÿøXú_únúoú}úú‹ú�úÇúÇúÉúÌúÝúÞúëúîúùúÿú“û“ûûûÿÿà¦ÿ¦¸¸®Î¯Îáëïë^îÿ÷úÿÿKOz4ÿÿA¨�! ' is degenerate (AØ�! 92 references missing vert A¨‚! /( does not list edge Aè‚! %duplicate edge A˜ƒ!  between Aȃ! A:edge lookup does not resolve A˜„! C<vert index lists missing vert Aè„!  lists edge A˜…! 1* that does not use itAØ…!  face Aø…!  loopsA˜†! 92 references missing loop Aè†!  loop Aˆ‡! 1* is used by two facesAȇ! )" belongs to face Aˆˆ!  not A¨ˆ! 92 references missing edge Aøˆ!  edge A˜‰! % does not join Aȉ!  uvs for Aø‰! -& repeats a vertex: A¸Š! ?8 is both selected and hiddenAˆ‹! G@ loops are not owned by any faceAØ‹!  face index AˆŒ! 3, does not match loops AÈŒ! ! lists faces AøŒ! /( but no loop uses itA¸�! ;4 has a non-finite positionAˆŽ! QJselection history references missing AèŽ! # of material 'A˜�! /('s shader_parameter/AØ�! ;4': cannot read its shader A¨�! =6no shader file is read hereAø�! ' its own settingsA¨‘! /(); it is drawn with Aè‘!  modelsAˆ’! ?8instances go no deeper than AØ’! ;4; the instance is left outA¨“! empty 'AÈ“! ;4); it is drawn as an emptyA˜”! -&': cannot instance AØ”! ߨa model must be an .rmdl, .rmdlcmd, .modeler, .gltf or .glb file, whole and in the format its extension saysAÈ–! -&required extension Aˆ—! camera(s)A¸—! light(s)AØ—! +animation(s)�KÀKàKA˜˜! !--cameras offAȘ! --lights offAø˜! 3 --animations off LPL€LA¸™!  skipped (Aè™! texturesAˆš! ArmatureA¨š! e^so innerConeAngle / outerConeAngle were droppedA˜›! qj' is a spot light; Hedra does not model cone angles, A˜œ!  LightA¸œ!  CameraAØœ!  EmptyAøœ! ½¶', and the mesh itself is marked hide-render because the file draws it only at those copiesAÈž! ]V copies; they are an instance modifier on 'A¸Ÿ! KD': EXT_mesh_gpu_instancing places A˜ !  ActionA¸ ! MF channel could not be read; skippedA˜¡!  ': a A¸¡! ‹„': a weights channel targets a node that is not an object; skippedAØ¢! oh' has no shape keys for its weights channel; skippedAØ£! ': 'Aø£! "].valueA˜¤! key_blocks["AȤ! sl channel targets a node that is not an object; skippedAÈ¥! /( channel was skippedAˆ¦! x' is a skinned mesh, whose node transform glTF ignores; its A˜§! E>' was imported but not assignedAè§! YR' is driven by more than one animation; 'Aب! "].Aø¨! pose.bones["A¨©! TranslationAØ©! RotationAø©!  ScaleA˜ª! +$MorphTargetWeightsAت! =6chunk size must be non-zeroA¨«! #instance_scaleAØ«! )"instance_rotationA˜¬!  InstancesAȬ! InstanceAè¬! 5.EXT_mesh_gpu_instancingA¨­! TRANSLATIONAØ­! ROTATIONAø­!  SCALEA¢®! €?€?€?A¾®! €?AÈ®! +$ but the index is Aˆ¯! G@index out of bounds: the len is Aد! 92 has no POSITION; skippedA¨°! !': primitive Aذ! SL, only triangles are imported; skippedA¸±! 70': morph targets skippedAø±! 92sparse accessor on mesh 'AȲ! g` triangle(s) index past the vertex data; skippedA¸³! E> degenerate triangle(s) droppedAˆ´! Key_A¨´! targetNamesAØ´! ullAø´! rueA˜µ! alseA¸µ! Ǩ AƵ! ¢ð?$@Y@@�@ˆÃ@jø@€„.AÐcA„×—AeÍÍA _ BèvH7B¢”mB@åœ0¢B�ļÖB4&õk C€à7yÃAC Ø…W4vCÈNgmÁ«C=‘`äXáC@Œµx¯DPïâÖäKD’ÕMÏð€DöJáÇ-µD´�ÙyCxêD‘(,*‹ E52·ô­TE„þäqÙ‰E�/ç'ÀE!׿úà1ôEꌠ9Y>)F$°ˆï�_Fnµµ¸“FœÉF"ã¦ÈF|Øê›ÐþF‚MÇraB3Gã yÏùhGiWC¸žG±¡*ÓÎÒGJœô‡‚H¥\Ãñ)c=Hç7ú]rHa àÄxõ¦HyÈöÖ²ÜHL}ÏYÆïIž\Cð·kFIÆ3Tì¥|I\ ´³'„±IsÈ¡ 1ååI�:Ê~^Jšd~ÅQJÀýÝvÒa…J0}•GººJ>nÝll´ðJÎɈ‡á$KAüjéZK©=Pâ1P�KMäZ>dÄKW`�ñM}ùKm¸n¡Ü/LDóÂääécL°ó^ä˜Lœp¥uÏL‘af‡irMõù?éO8Mrø�ãÄbnMGû9»ý¢MzÈÑ)½×MŸ˜:Ft¬ NdŸä«È‹BN=ÇÝÖº.wN 9•Œiú¬N§CÝ÷�âN‘”Ôu¢£Oµ¹I‹LLOìÖ¯�O™§Ì¶O[ÿÕп¢ëO™¿…â·E!P/'Û%—UP_ûðQïüŠP�6“ÞÀPbDøšõP{U¶[*QmUÃáx`QÈ*4V—”Qz5Á«ß¼ÉQlÁXË RÇñ.¾Ž4R9®ºmr"iRÇY) kŸRعeé¢ÓR$N(¿£‹S­aò®Œ®>S }Wí-sSO\­è]ø§Sc³ØbuöÝSpÇ] ºT%L9µ‹hGT.Ÿ‡¢®B}T}Ô%­I²T\ôùnÜæTsq¸Š“UèF³óÛQU¢`ÜïR†UÊxÓ«ç»U?+dËpñUØ5=þÌ%VNƒÌ=@[VËÒŸ&‘Vþ”ÆG0JÅV=:¸Y¼œúVf$¸õ¡0W€í&sÊdWàè�ïý™WŒ±Âõ)>ÐWï]3s´MXk5�!a9XÅBôi¹oX»)€8âÓ£X*4 ÆÚÈØX5AHxûYÁ(-ëê\CYñrø¥%4xY­�v/A®Y̪i½èâY? Äì¢ZOÈõ§‹MZ20ùHw‚Z~$|7·Zž-[bÚìZ‚üXC}"[£;/”œŠV[Œ ;¹C-Œ[—æÄSJœÁ[= ¶è\ö[M¨ã"4„+\0IΕ 2a\|ÛA»H•\[RêßÊ\ysKÒpË]WPÞMþ4]mä•Hà=j]Ä®]-¬f ]uµ8W€Ô]aâm  ^«|M$D@^ÖÛ`-Ut^̹xª©^WçUHß^¯–P.5�_[¼äy‚pH_rë]£Œ~_'³:ïå³_ñ_ kßÝç_í·ËEWÕ`ôRŸ‹V¥R`±'‡.¬N‡`�ñ(:W"½`—Y„v5ò`Ãüo%ÔÂ&aôûË.‰s\ax}?½5È‘aÖ\�,C:Æa 4³÷ÓÈûa‡Ðz„]1b©„™å´ebÔåÿ"›b„ ï_SõÐb¥èê7¨2cÏ¢åER:cÁ…¯k“�pc2g›Fx³¤cþ@BXVàÙcŸh)÷5,dÆÂótC7Ddx³0REydVà¼fY–¯d6 6à÷½ãdC�CØu­esTNÓØNeìÇô„Gƒeèù1e¸eax~Z¾îe= �øÖÓ"f β¶ÌˆWf��_äÿj�fù°»îßbÂf8�jê—ûöf†Då}º,gÔJ#¯Žôag‰ìZ²q–gë$§ñÌgwWÓˆh×”Ê,ë5h :ý7ÊekhHDþbž¡hZÕ½û…gÕh±J­zgÁ i¯N¬¬à¸@iZb××çtiñ:Í ß ªiÖD h‹Tài VÈB®ij�kzÓ„IjsYH åj¤7-4ï³j �…8ëèjLð¦†Á%k0V(ô˜wSk»k21UˆkªýÞj¾k*do^Ëók5= 6~Ã'l‚ ŽÃ]´]lÑÇ8šº�’lÆùÆ@é4Çl7¸ø�#ýl#s›:V!2mëOBÉ«©fmæã’»TœmpÎ;5Ž´Ñm б!n�r-3ª;n™güßRJqn�û—眥nßaú}!Ûn,}¼î”âovœk*:Eo”ƒµbzo=$qE}°oÌmÍ–œäo\È€¼ÃpÏ9}ÐUPpCˆœDë „pTªÃ&)¹pé”4›osïpÝÁ%¨#qVA1/’XqkY‘ýº¶Žqã×zÞ42ÃqÜ�Âþ÷qSñŸ›rþ-rÔöC¡¿br‰ô”‰Én—r«1úë{JÍr _|s�NsÍv[Ð0â6s�Tr½šlsÐtÇ"¶à¡sRy«ãXÖs†¦W–ï tÈöÝquAtztUÎÒutž˜Ñê�G«tcÿÂ2± át<¿sÝOu ¯PßÔ£Jugm’ e¦€uÀwNþÏ´uñÊâýêuÖþL­~B vŒ> XSTv/NÈîåg‰v»azjßÁ¿v}Œ¢+ÙóvZœ/‹vÏ(wpƒû-T_w&2½œb“w°~ìÙ:Èw\žç4@IþwùÂ!Èí2x¸óT):©gx¥0ª³ˆ“�xg^Jp5|Òxö\ÌBy‚3tâdiffuseTransmissionColorTextureAÈä! A: numbers; the default is keptA˜å! )"is not a list of AØå! aZis not a texture info with an index; left outAÈæ! texCoordAèæ! .texCoordA˜ç! KDis not a set number; set 0 is usedAøç! extensionsA¨è! ; left outAØè! #names texture Aˆé! 1*KHR_texture_transformAÈé! 3,.KHR_texture_transformAŠê! €?€?A˜ê! e^is not a set number; the texture info's is keptAˆë! OHis not a number; the default is keptAèë! 92is not an object; ignoredA¸ì! OH' points outside its buffer; skippedA˜í!  image A¸í! mf' not found next to the glTF; the reference is keptA¸î! %' of material 'Aèî! image 'Aˆï! ýÿA¨ï!  data:AÈï! ;base64Aèï! image/pngA˜ð! image/jpegAÈð! jpgAèð!  image_Aˆñ!  writeA¨ñ!  mkdirAÈñ!  appendAèñ! =6failed to create whole treeA¸ò! .pngAØò! .jpgAøò! # .jpeg@y`y€yA¨ó! ç4 `09AZazªª²³µµ¹º¼¾ÀÖØöøÁÆÑàäììîîEEctvwz}††ˆŠŒŒŽ¡£õ÷�Š/1VYY`ˆ°½¿¿ÁÂÄÅÇÇÐêïò WYinÓÕÜáèíüÿÿ?M±Àêôõúú,@X`jp‡‰�—— ÉÔßãéð; = L N P U c f o q ƒ … Œ � � “ ¨ ª ° ² ² ¶ ¹ ½ Ä Ç È Ë Ì Î Î × × Ü Ý ß ã æ ñ ô ù ü ü       ( * 0 2 3 5 6 8 9 > B G H K L Q Q Y \ ^ ^ f u � ƒ … � � ‘ “ ¨ ª ° ² ³ µ ¹ ½ Å Ç É Ë Ì Ð Ð à ã æ ï ù ü       ( * 0 2 3 5 9 = D G H K L V W \ ] _ c f o q w ‚ ƒ … Š Ž � ’ • ™ š œ œ ž Ÿ £ ¤ ¨ ª ® ¹ ¾ Â Æ È Ê Ì Ð Ð × × æ ò    ( * 9 = D F H J L U V X Z \ ] ` c f o x ~ € ƒ … Œ Ž � ’ ¨ ª ³ µ ¹ ½ Ä Æ È Ê Ì Õ Ö Ü Þ à ã æ ï ñ ó    : = D F H J L N N T c f x z  � ƒ … – š ± ³ » ½ ½ À Æ Ï Ô Ö Ö Ø ß æ ï ò ó :@FMMPY�‚„„†ŠŒ£¥¥§¹»½ÀÄÆÆÍÍÐÙÜß 3@GIlqƒˆ—™¼688;IP� ÅÇÇÍÍÐúüHJMPVXXZ]`ˆŠ��°²µ¸¾ÀÀÂÅÈÖØZi|€� õøýlo�š êîø3@S`lnprs€³¶È××ÜÜàéðù x€ª°õ +08Fmpt€«°ÉÐÚ ^at€‰�™§§¿ÀÌÎ35CELPY€©¬åçñ6@IM}€Š�º½¿éìîóõöúú¿Óô EHMPWYY[[]]_}€´¶¼¾¾ÂÄÆÌÐÓÖÛàìòôöüp q t y  ‰ � œ !!!! !!!!!!$!$!&!&!(!(!*!-!/!9!û>û@ûAûCûDûFû±ûÓû=ýPý�ý’ýÇýðýûýpþtþvþüþÿÿ!ÿ:ÿAÿZÿfÿ¾ÿÂÿÇÿÊÿÏÿÒÿ×ÿÚÿÜÿ  &(:<=?MP]€ú3@xŠ‹€œ Ðáû#-JPz€� ÃÈÏÑÕ� ©°ÓØû'0cpz|ŠŒ’”•—¡£±³¹»¼Àó6@U`g€…‡°²º 578<<?UXvyž§¯àòôõû  9 @ Y € · ¼ Ï Ò         5 @ H ` ~ € Ÿ À Ç É ä ë ï  5 @ U X r x ‘ © ¯  H € ² À ò ú ' 0 9 @ e i i o … `~€©«¬°±ÂÇúü'0EQTp�°ËàöERoqu€¸ÂÂÐèðù26?DGPrvv€¿ÁÄÎÚÜÜáô477>A€†ˆˆŠ���Ÿ¨°èðù (*02359=DGHKLPPWW]c€‰‹‹ŽŽ�µ·ÀÂÂÅÅÇÊÌÍÑÑÓÓACEGJPY_a€ÁÄÅÇÇÐÙ€µ¸¾ØÝ>@@DDPY€µ¸¸ÀÉÐã*0;@F8 òÿ   578;<?BPY §ª×Úßááãä25>P—��°ø`gÀàðù 68>@@Plr�’§©¶  6::<=?ACCFGPY`eghjŽ�‘“–˜˜ ©°Ûàéàö:>@PY°°ÀÔ ™#$n$€$C%�/ð/0/4A4F4`4úCDFFa.a0a9ah8j@j^j`jijpj¾jÀjÉjÐjíjk/k@kCkPkYk[kakckwk}k�k@mlmpmym@n–n n¸n»nÓnoJoOo‡o�oŸoàoáoãoãoðoöopÕŒÿŒ�€�ò�ð¯ó¯õ¯û¯ý¯þ¯°"±2±2±P±R±U±U±d±g±p±û²¼j¼p¼|¼€¼ˆ¼�¼™¼ž¼ž¼ðÌùÌÀÒÓÒàÒóÒ`ÓxÓÔTÔVԜԞԟԢԢԥԦԩԬԮԹԻԻԽÔÃÔÅÔÕÕ Õ ÕÕÕÕÕ9Õ;Õ>Õ@ÕDÕFÕFÕJÕPÕRÕ¥Ö¨ÖÀÖÂÖÚÖÜÖúÖüÖ××4×6×N×P×n×p׈׊רת×Â×Ä×Ë×Î×ÿ×ßß%ß*ßààààà!à#à$à&à*à0àmà�à�àá,á7á=á@áIáNáNá�â­âÀâëâðâùâÐäëäðäùäÐåíåðåúåÀæÞæàæõæþæÿæàçæçèçëçíçîçðçþçèÄèÇèÏèéCéGéGéKéKéPéYéqì«ì­ì¯ì±ì´ìí-í/í=íîîîî!î"î$î$î'î'î)î2î4î7î9î9î;î;îBîBîGîGîIîIîKîKîMîOîQîRîTîTîWîWîYîYî[î[î]î]î_î_îaîbîdîdîgîjîlîrîtîwîyî|î~î~î€î‰î‹î›î¡î£î¥î©î«î»îñ ñ0ñIñPñiñpñ‰ñðûùûߦ§¸ ¸­Î°Îàëðë]îøúJPy4A˜¨" accessorsAȨ" animationsAø¨" samplersA˜©" !interpolationAÈ©"  outputAè©" channelsAˆª" bufferViewsA¸ª" byteStrideAèª" )"khrLightsPunctualA¨«"  lightsAÈ«" spotAè«" camerasAˆ¬"  imagesA¨¬" bufferViewAج" materialsAˆ­" alphaModeA¸­" /(pbrMetallicRoughnessAø­" primitivesA¨®"  nodesAÈ®" childrenAè®" skinAˆ¯" magFilterA¸¯" minFilterAè¯"  wrapSAˆ°"  wrapTA¨°"  scenesAȰ"  skinsAè°" -&inverseBindMatricesA¨±"  jointsAȱ" -&KHR_lights_punctualAˆ²" O>KHR_materials_emissive_strengthИ™Aè²"  = "Aˆ³" +$extensionsRequiredAȳ" targetsAè³" positionsA˜´" normalsA¸´" tangentsAØ´" "]Aø´" ["A˜µ"  COLOR_A¸µ" TEXCOORD_Aèµ" JOINTS_Aˆ¶" WEIGHTS_A¨¶" 5.<invalid semantic name>Aè¶" !componentTypeA˜·"  sparseA¸·"  valuesAØ·" +$hedra-decompressedA˜¸" ;4KHR_draco_mesh_compressionAè¸" 5.EXT_meshopt_compressionA¨¹" 1*KHR_mesh_quantizationAè¹"  primitive A˜º" 5., which is not readableAغ" -& names buffer view A˜»" ]V is not in the Draco stream and was droppedAˆ¼"  for A¨¼" OH: the Draco stream has no attribute Aˆ½" )"capacity overflowAȽ" 92Draco stream is corrupt (A˜¾" YR points, more than this decoder can indexAˆ¿" #Mesh declares A¸¿" ?8Invalid number of attributesAˆÀ" ohEdgebreaker attribute traversal missing corner tableAˆÁ" QJUnsupported sequential decoder type: AèÁ" =6Missing pending quant entryA¸Â" [TFailed to decode quantization parameters: A¨Ã" ?8Missing pending normal entryAøÃ" G@Invalid normal quantization bitsAÈÄ" G@Failed to dequantize attribute: A˜Å" ;4Failed to decode normals: AèÅ" KDPoint map entry index out of rangeAÈÆ" c\Octahedral decode needs a float32 target, got A¸Ç" ibOctahedral decode needs 3 target components, got A¸È" SLOctahedral source buffer size overflowA˜É" QJOctahedral portable data is truncatedAøÉ" SLOctahedral target buffer size overflowAØÊ" e^Failed to allocate the octahedral target bufferAÈË" ·°memory allocation failed because the computed capacity exceeded the collection's maximumAˆÍ" •Žmemory allocation failed because the memory allocator returned an errorA¨Î" MF outside the supported range 2..=30AˆÏ" A:Octahedral quantization bits AØÏ" InvalidAøÏ" Int8A˜Ð"  Uint8A¸Ð"  Int16AØÐ"  Uint16AøÐ"  Int32A˜Ñ"  Uint32A¸Ñ"  Int64AØÑ"  Uint64AøÑ" Float32A˜Ò" Float64A¸Ò" BoolAØÒ" #minimum valuesAˆÓ"  rangeA¨Ó" bit countAØÓ" MF outside the supported range 1..=30A¸Ô" +$Quantization bits AøÔ"  it declaresA¨Õ" OHStream ends before the quantization AˆÖ" g`Cannot decode bytes while bit decoding is activeAøÖ" ! bytes, have A¨×" E>Unexpected end of buffer: need Aø×" QJPoint cloud attribute id out of rangeAØØ" G@Failed to read prediction methodA¨Ù" A:Failed to read transform typeAøÙ" G@Failed to read normal quant_bitsAÈÚ" E>Failed to reset buffer positionA˜Û" g`Cannot set position while bit decoding is activeAˆÜ" 5. exceeds buffer length AÈÜ" Position AøÜ" OHPoint attribute buffer size overflowAØÝ" YRFailed to allocate point attribute bufferAÈÞ" c\Normal decoding needs 3 components, attribute A¸ß" g`Normal decoding needs float32 values, attribute A¨à" ]VDequantization needs a float32 target, got A˜á"  stepsA¸á" ;4Dequantizer rejects range Aˆâ" =6 components, attribute has AØâ" C<Quantization parameters cover A¨ã" =6Negative target byte strideAøã" =6Negative source byte strideAÈä" QJFailed to allocate dequantized valuesA¨å" ibDequantization source or target data is truncatedA¨æ" A:Attribute byte range overflowAøæ" kdFailed to decode quantization parameters (v<2.0): Aøç" mfQuantized decoding needs float32 values, attribute Aøè" slInteger attribute decoder was never given an attributeAøé" 1* components overflowsA¸ê" # points times Aèê" KDFailed to decode prediction methodAÈë" +$Prediction method Aˆì" g`Stream ends before the prediction transform typeAøì" ;4Prediction transform type AÈí" , Scheme: Aøí" OHPrediction method mismatch. Stream: AØî" c\Parallelogram prediction requires corner tableAÈï" mfMultiParallelogram prediction requires corner tableAÈð" ƒ|ConstrainedMultiParallelogram prediction requires corner tableAØñ" ohTexCoordsDeprecated prediction requires corner tableAØò" -&TexCoordsDeprecatedA˜ó" kdTexCoordsPortable prediction requires corner tableA˜ô" )"TexCoordsPortableAØô" g`GeometricNormal prediction requires corner tableAÈõ" %GeometricNormalAøõ" wpFailed to decode the pre-2.0 inline transform parametersAøö" UNStream ends before the compression flagAØ÷" [TFailed to decode the entropy-coded symbolsAÈø" g`Stream ends before the raw correction byte widthA¸ù" SL bytes per value, at most 4 fit an i32A˜ú" 70Raw corrections declare AØú" UN-byte corrections overflow a byte countA¸û" 92 bytes left in the streamAˆü" 5. bytes, more than the AÈü" /( raw corrections of Aˆý" declared A¸ý" ' raw correctionsAèý" -&Failed to allocate A¨þ" _X four-byte corrections overflow a byte countA˜ÿ" QJ bytes of raw corrections it declaresAøÿ" ?8Stream holds fewer than the AÈ€# SLStream ends inside the raw correctionsA¨�# g`Decoded values do not fit the portable attributeA˜‚# mfDecoded values do not fit the destination attributeA˜ƒ# [TPredictor was selected but not initializedAˆ„#  byte streamA¸„# # bytes from a Aè„# %would allocate A˜…# [TSymbol decode needs at least one componentAˆ†# =6 components it is read intoA؆# ;4 is not a multiple of the A¨‡# !Symbol count A؇# e^Buffer ran out reading the symbol coding schemeAȈ# SL: Draco defines 0 (tagged) and 1 (raw)A¨‰# A:Unknown symbol coding scheme Aø‰# g`Buffer ran out reading the raw symbol bit lengthAèŠ# MF outside the supported range 1..=18AÈ‹# 3,Raw symbol bit length AˆŒ# ohFailed to read the raw scheme's rANS frequency tableAˆ�# g`Failed to start rANS decoding of the raw symbolsAø�#  raw symbolsA¨Ž# YR symbols, more than its coded bytes carryA˜�# /(the stream declared AØ�# 5.Buffer advance overflowA˜�# ' , buffer length AÈ�# 3, bytes: need position Aˆ‘# 92Cannot advance buffer by AØ‘# /(Tagged symbol count A˜’# unFailed to read the tagged scheme's rANS frequency tableA˜“# unFailed to start rANS decoding of the tagged symbol tagsA˜”# mfBuffer ran out starting the tagged value bit streamA˜•#  chunksA¸•# 5.Tag stream ended after Aø•# MF outside the supported range 1..=32AØ–# -&Tagged value width A˜—# % bits in chunk AÈ—# IBValue bit stream ran out reading A¨˜# 92Bit width exceeds 32 bitsAø˜# ?8Unexpected end of bit streamAÈ™# =6Bit decoding already activeA˜š# G@Bit stream end position overflowAèš# MFFailed to set parent attribute for AÈ›# IBPosition attribute not found for A¨œ# }vA prediction parent must be the portable int32 copy, got a A¸�# [TInvalid data_to_corner_map_override lengthA¨ž# [TInvalid vertex_to_data_map_override lengthA˜Ÿ# ! in the tableAÈŸ# , past the AøŸ# ' maps to corner A¨ #  Entry AÈ # ' maps to vertex Aø # Corner A˜¡# UndefinedAÈ¡# DifferenceAø¡# =6MeshPredictionParallelogramAÈ¢# G@MeshPredictionMultiParallelogramA˜£# IBMeshPredictionTexCoordsDeprecatedAø£# ]VMeshPredictionConstrainedMultiParallelogramAè¤# E>MeshPredictionTexCoordsPortableA¸¥# A:MeshPredictionGeometricNormalAˆ¦# ()A¨¦# E>Generic attribute size overflowAø¦# KDFailed to decode generic attributeAا# OHFailed to allocate generic attributeA¸¨# e^Data-to-corner map references an invalid cornerA¨©# e^Data-to-corner map references an invalid vertexA˜ª# wpEdgebreaker DFS attribute traversal missing corner tableA˜«# xEdgebreaker prediction-degree traversal missing corner tableA¨¬# mfindex out of bounds: the len is 3 but the index is A¨­# ibInconsistent corner table for attribute traversalA¨®# 5.decoded attribute bytesAè®# E>, over the caller's ceiling of A¸¯# %stream decodes Aè¯# IBInvalid attribute component countAȰ# A:Invalid attribute data type: A˜±# IBInvalid geometry attribute type: Aø±# 3,Varint exceeds 64 bitsA¸²# qjFailed to decode compressed sequential connectivity: A¸³# UNSequential connectivity index underflowA˜´# SLSequential connectivity index overflowAø´# C<Not enough data for u8 indicesAȵ# KDMesh u16 index byte count overflowA¨¶# E>Not enough data for u16 indicesAø¶# 3, bytes left can encodeA¸·# 3, faces, more than the Aø·# IBSequential connectivity declares Aظ# KDMesh u32 index byte count overflowA¸¹# E>Not enough data for u32 indicesAˆº# _XUnsupported sequential connectivity method: Aøº# A:Failed to allocate mesh facesAÈ»#  facesAè»# E>Failed to allocate mesh indicesA¸¼# WP byte stream could carry at one bit eachA˜½# 70 symbols, more than the Aؽ# C<Mesh face index count overflowA¨¾# mfEdgebreaker seam search traversal did not terminateA¨¿# wpEdgebreaker point assignment traversal did not terminateA¨À# YRFailed to assign Edgebreaker corner pointA˜Á# YRInvalid Edgebreaker attribute seam cornerAˆÂ# kdInvalid Edgebreaker attribute seam opposite cornerAˆÃ# qjAttribute seam left-swing traversal did not terminateAˆÄ# slAttribute seam right-swing traversal did not terminateAˆÅ# g`Edgebreaker decoder did not provide corner tableAøÅ# QJFailed to read traversal decoder typeAØÆ# g`Unsupported Edgebreaker traversal decoder type: AÈÇ# E>Failed to read num_new_verticesA˜È# MFFailed to read num_encoded_verticesAøÈ# 70Failed to read num_facesA¸É# MFFailed to read attribute data countA˜Ê# QJEdgebreaker num_faces exceeds maximumAøÊ# slEdgebreaker num_encoded_vertices exceeds 3 * num_facesAøË# {tEdgebreaker vertex/face counts cannot form a manifold meshAˆÍ# =6Failed to read symbol countAØÍ# IBFailed to read split symbol countA¸Î# ibEdgebreaker num_faces is smaller than num_symbolsA¸Ï# xEdgebreaker num_faces exceeds maximum implied by num_symbolsAÈÐ# ibEdgebreaker num_split_symbols exceeds num_symbolsAÈÑ# WPFailed to read encoded_connectivity_sizeA¨Ò# IBInvalid encoded_connectivity_sizeAˆÓ# , events=A¸Ó# xSplit event count exceeds split-symbol count (split_symbols=AÈÔ# YRInvalid topology split decoded byte countA¸Õ# g`Failed to start valence main-symbol bit decodingA¨Ö# UNFailed to start start-face bit decodingAˆ×# slFailed to start attribute seam decoding for predictiveAˆØ# _XFailed to read predictive split-symbol countAøØ# _XFailed to start predictive prediction streamAèÙ# mfFailed to start attribute seam decoding for valenceAèÚ# [TFailed to init valence traversal decoder: AØÛ# A:Failed to start seam decodingA¨Ü# ?8Corner table not initializedAøÜ# ohBuffer ran out reading the legacy split-symbol countAøÝ# 5. split symbols against A¸Þ# A:Legacy valence stream claims Aˆß# mfBuffer ran out reading the legacy valence mode byteAˆà# WP: only mode 0 (valences 2..7) is definedAèà# !Valence mode A˜á# xBuffer ran out reading the symbol count for valence context A¨â# {t symbols in total, which is more than the connectivity hasA¸ã# IBValence contexts claim more than A˜ä#  of 6A¸ä# ' Valence context Aèä# UNactive_corner_stack empty in TOPOLOGY_CAÈå# KDcorner_a == corner_b in TOPOLOGY_CA¨æ# MFEdge already opposite in TOPOLOGY_CAˆç# A:Degenerate face in TOPOLOGY_CAØç# TOPOLOGY_CAˆè# YRactive_corner_stack empty in TOPOLOGY_R/LAøè# QJEdge already opposite in TOPOLOGY_R/LAØé# aZUnexpected number of vertices in TOPOLOGY_R/LAÈê# UNactive_corner_stack empty in TOPOLOGY_SA¨ë# �zactive_corner_stack empty in TOPOLOGY_S after split retrievalA¸ì# KDcorner_a == corner_b in TOPOLOGY_SA˜í# MFEdge already opposite in TOPOLOGY_SAøí# C<Cycle detected in vertex mergeAÈî# ]VUnexpected number of vertices in TOPOLOGY_EA¸ï# %Unknown symbol Aèï# 5.Invalid split symbol idA¨ð# #topology splitAØð# e^active_corner_stack empty after decoding symbolAÈñ# c\Unexpected number of vertices after first passA¸ò# aZMore faces than expected in start face configA¨ó# OHInvalid left_most_corner for vert_n=Aˆô# MFInvalid left_most_corner for vert_xAèô# )"start face configA¨õ# IBUnexpected number of faces at endAˆö#  expected A¸ö#  maps to Aèö# [TVertex mismatch during compaction: corner AØ÷# A:active_corner_stack empty in A¨ø# %Invalid vertex AØø# 70Invalid opposite corner A˜ù# E>Failed to allocate corner tableAèù# aZFailed to start traversal symbol bit decodingAØú# E>Failed to read traversal symbolA¨û# SLFailed to read traversal symbol suffixAˆü# [TInvalid Edgebreaker topology bit pattern: Aøü# G@Failed to read split event countAÈý# UNTopology split count exceeds face countA¨þ# KDFailed to read source symbol deltaAˆÿ# IBFailed to read split symbol deltaAèÿ# �zFailed to start bit decoding for split-event source_edge bitsAø€$ [TFailed to read split-event source_edge bitAè�$ 5.Bit decoding not activeA¨‚$ KDFailed to read num_topology_splitsAˆƒ$ 3, bytes left to hold itAȃ$ ! exceeds the Aøƒ$ 1*Topology split count A¸„$ C<Failed to read split_symbol_idAˆ…$ E>Failed to read source_symbol_idAØ…$ E>Failed to read source_edge byteA¨†$ ;4Invalid split symbol deltaAø†$ ]VFailed to read split-event source_edge bitsAè‡$ C<Failed to read num_hole_eventsA¸ˆ$ 92Failed to read hole eventAˆ‰$ E>Failed to read hole event deltaA؉$ 1*Point cloud declares A˜Š$ MFFailed to decode attribute metadataAøŠ$ =6Failed to decode attributesAÈ‹$ aZRaw point cloud attribute byte count overflowA¸Œ$ ohNot enough data for raw point cloud attribute valuesA¸�$ e^Point ids missing for integer attribute decoderA¨Ž$ ibPoint ids missing for quantized attribute decoderA¨�$ c\Point ids missing for normal attribute decoderA˜�$ aZMissing pending quantized attribute transformAˆ‘$ [TMissing pending normal attribute transformAø‘$ •ŽNo decoded KD-tree points to transform: the portable decode did not runA˜“$ E> has no portable copy at index Aè“$ Attribute A˜”$ YR has no quantization parameters at index Aˆ•$ mfA signed attribute's value offset overflows a usizeAˆ–$ UNA decoded value index overflows a usizeAè–$ % decoded valuesA˜—$ ' reads past the AÈ—$  component Aø—$  Point A˜˜$ =6No signed minimum at index Aè˜$ OHA component offset overflows a usizeAÈ™$ MF lands past the attribute buffer's A¨š$ Write of AØš$ # of attribute Aˆ›$ E>Buffer ran out reading minimum AØ›$ }vBuffer ran out reading the quantization range of attribute Aèœ$ {tBuffer ran out reading the quantization bits of attribute Aø�$ _X quantization bits, above the 31 a u32 holdsAèž$  declares A˜Ÿ$ SLBuffer ran out reading signed minimum AøŸ$ ohBuffer ran out reading the KD-tree compression levelAø $ KD outside the supported range 0..=6AØ¡$ ;4KD-tree compression level A¨¢$  attributesAØ¢$ IBThe KD-tree coder does not carry A¸£$ ohThe attributes' components overflow a usize in totalA¸¤$ slThe KD-tree attributes have no components between themA¸¥$ A: does not fit the coder's u32Aˆ¦$ 1*Total dimensionality AȦ$ /( the header declaresAˆ§$ /( points against the Aȧ$ )"KD-tree produced Aˆ¨$ kdPoint count times dimensionality overflows a usizeAˆ©$ /( values against the AÈ©$ =6 has a negative byte strideA˜ª$ G@'s buffer size overflows a usizeAèª$ =6Portable copy of attribute A¸«$ OHAttribute row size overflows a usizeA˜¬$ IB's value offset overflows a usizeAø¬$ ?8's row end overflows a usizeAÈ­$ G@ indexes past what a usize holdsA˜®$ KD's component run overflows a usizeAø®$  reads A˜¯$ ;4 past the attribute bufferAè¯$  writes Aˆ°$ aZBuffer ran out reading the KD-tree bit lengthAø°$ OH above the 32 a u32 coordinate holdsAر$ -&KD-tree bit length A˜²$ c\Buffer ran out reading the KD-tree point countAˆ³$ +$ the header allowsAȳ$ )"KD-tree declares Aˆ´$ numbersA¨´$ #remaining bitsAØ´$ halfAø´$  decoderA˜µ$ C<Failed to start the KD-tree's Aèµ$ E>KD-tree traversal failed after A¸¶$ KD out of range for slice of length A˜·$ ' range end index AÈ·$ WPassertion failed: compression_level <= 6A¨¸$ kdBuffer ran out reading the KD-tree attribute countA¨¹$ ƒ|A KD-tree attributes decoder must carry at least one attributeA¸º$  remainAغ$ )" bytes each, and A˜»$ QJ attribute descriptors need at least Aø»$ IBBuffer ran out reading attribute Aؼ$ 3,, which is not definedA˜½$ E> names geometry attribute type Aè½$ 's data typeA˜¾$ )" names data type Aؾ$ +$'s component countA˜¿$ 92 declares zero componentsAè¿$ +$'s normalized flagA¨À$ 's unique idAØÀ$ 92Failed to decode metadataA¨Á$ 70attribute metadata countAèÁ$ SLAttribute metadata unique id too largeAÈÂ$ A:Duplicate sub-metadata name: A˜Ã$ ?8Failed to read metadata nameAèÃ$ =6Invalid UTF-8 metadata nameA¸Ä$ [Tincomplete utf-8 byte sequence from index A¨Å$ +$ bytes from index AèÅ$ ;4invalid utf-8 sequence of A¸Æ$ E>Metadata nesting depth exceededAˆÇ$ 3,metadata entries countAÈÇ$ G@Invalid metadata entry data sizeA˜È$ MFFailed to read metadata entry valueAøÈ$ +$sub-metadata countA¸É$ Invalid AØÉ$ !Invalid magicAˆÊ$ 1*Invalid geometry typeAÈÊ$ 3,Failed to decode flagsAˆË$ =6has no numeric 'bufferView'AØË$ ;4has no 'attributes' objectA¨Ì$ Ö 8AÈÌ$ kdwhich is not supported; its data was left as it isAÈÍ$ G@) is both quantized and sparse, A˜Î$ accessor AÈÎ$ ;4its data was left as it isA˜Ï$ A:) points outside its buffer; AèÏ$ buffer view A˜Ð$ 5. points outside buffer AØÐ$ !has no 'mode'AˆÑ$ 5.names an unknown mode 'AÈÑ$ 92names an unknown filter 'A˜Ò$ byteOffsetAÈÒ$ byteLengthAøÒ$  countA˜Ó$ ' has no numeric 'AÈÓ$ NONEAèÓ$ OCTAHEDRALA˜Ô$ QUATERNIONAÈÔ$ EXPONENTIALAøÔ$ ATTRIBUTESA¨Õ$ TRIANGLESAØÕ$ INDICESAøÕ$  are thereA¨Ö$ ' bytes but only AØÖ$ buffer AøÖ$ ;base64,A˜×$ file://A¸×$  file:AØ×$ {tcalled `Result::unwrap()` on an `Err` value: FromUtf8ErrorAèØ$ ¯¨Impossible: must only have 0 to 8 input bytes in last chunk, with no invalid lengthsA¨Ú$ fallbackAÈÚ$ =6failed to fill whole bufferA˜Û$ 70EOF while parsing a listAØÛ$ =6EOF while parsing an objectA¨Ü$ ;4EOF while parsing a stringAøÜ$ 92EOF while parsing a valueAÈÝ$ expected `:`AøÝ$ -&expected `,` or `]`A¸Þ$ -&expected `,` or `}`AøÞ$ #expected identA¨ß$ #expected valueAØß$ #invalid escapeAˆà$ #invalid numberA¸à$ -&number out of rangeAøà$ ;4invalid unicode code pointAÈá$ ƒ|control character (\u0000-\u001F) found while parsing a stringAØâ$ /(key must be a stringA˜ã$ OHlone leading surrogate in hex escapeAøã$ #trailing commaA¨ä$ -&trailing charactersAèä$ ?8unexpected end of hex escapeA¸å$ 70recursion limit exceededAøå$ RootA˜æ$ ƒ|?accessors ?animations asset ?buffers ?bufferViews scene ?extensions ?extras ?extensionsUsed ?extensionsRequired ?cameras ?images ?materials ?meshes ?nodes ?samplers ?scenes ?skins ?texturesA¨é$  assetAÈé$ buffersAèé$  extrasAˆê$ #extensionsUsedA¸ê$  elementAØê$  elementsAˆë$  with A¨ë$ +$, expected struct Aèë$ %invalid length A˜ì$ %missing field `AÈì$ TextureAèì$ WPname sampler ?source ?extensions ?extrasAÈí$ 70index into child of rootAˆî$ struct A¨î$ , expected AØî$ #invalid type: Aˆï$ #boolean `true`A¸ï$ %boolean `false`Aèï$ string Aˆð$ sequenceA¨ð$ mapAÈð$ integer `Aøð$ ' floating point `A¨ñ$ -0.0AÈñ$ e+Aèñ$ e-Aˆò$ SkinA¨ò$ x?extensions ?extras inverseBindMatrices joints name skeletonA¸ó$  SceneAØó$ C<?extensions ?extras name nodesA¨ô$ SamplerAÈô$ �z?magFilter ?minFilter ?name ?wrapS ?wrapT ?extensions ?extrasAØõ$ /(any of: [9728, 9729]A˜ö$ _Xany of: [9728, 9729, 9984, 9985, 9986, 9987]Aˆ÷$ A:any of: [33071, 33648, 10497]AØ÷$ ¿¸camera children ?extensions ?extras matrix mesh name rotation scale translation skin weightsA¨ù$  matrixAÈù$ translationAøù$ weightsA˜ú$ -&an array of length AØú$ )"KhrLightsPunctualA˜û$ ]V?extensions ?extras name primitives weightsAˆü$ PrimitiveA¸ü$ �zattributes ?extensions ?extras indices material ?mode targetsAÈý$  a mapAèý$ A:any of: [0, 1, 2, 3, 4, 5, 6]A¸þ$ MorphTargetAèþ$ 5.POSITION NORMAL TANGENTA¨ÿ$ ³,?alphaCutoff ?alphaMode ?doubleSided ?name ?pbrMetallicRoughness ?normalTexture ?occlusionTexture ?emissiveTexture ?emissiveFactor ?extensions ?extrasAè�% alphaCutoffA˜‚% MFany of: ["OPAQUE", "MASK", "BLEND"]Aø‚% doubleSidedA¨ƒ% #emissiveFactorA؃% ' EmissiveStrengthAˆ„% )"?emissiveStrengthAÈ„% ' emissiveStrengthAø„% InfoA˜…% MFindex ?texCoord ?extensions ?extrasAø…% %invalid value: A¨†% ' OcclusionTextureA؆% aZindex ?strength ?texCoord ?extensions ?extrasAȇ% !NormalTextureAø‡% [Tindex ?scale ?texCoord ?extensions ?extrasAèˆ% /(PbrMetallicRoughnessA¨‰% éâ?baseColorFactor ?baseColorTexture ?metallicFactor ?roughnessFactor ?metallicRoughnessTexture ?extensions ?extrasA¨‹% %baseColorFactorAØ‹% #metallicFactorAˆŒ% 8roughnessFactor€?€?€?€?AÈŒ% a booleanAøŒ%  OPAQUEA˜�% MASKA¸�%  BLENDAè�%  ImageAˆŽ% g`bufferView mimeType name uri ?extensions ?extrasAøŽ% mimeTypeA˜�% uriA¸�% slname orthographic perspective type ?extensions ?extrasA¸�% orthographicAè�% UNany of: ["perspective", "orthographic"]AÈ‘% PerspectiveAø‘% e^aspectRatio yfov zfar znear ?extensions ?extrasAè’% aspectRatioA˜“% yfovA¸“% zfarAØ“%  znearAø“% OrthographicA¨”% WPxmag ymag zfar znear ?extensions ?extrasAˆ•% xmagA¨•% ymagAÈ•% x?color ?extensions ?extras ?intensity name ?range ?spot typeAØ–% WPany of: ["directional", "point", "spot"]A¸—% SpotAØ—% E>?innerConeAngle ?outerConeAngleA¨˜% #innerConeAngleAؘ% 4outerConeAngle€?€?€?A˜™% ViewA¸™% —�buffer byteLength ?byteOffset byteStride name target ?extensions ?extrasAØš%  usizeAøš% 3,any of: [34962, 34963]A¸›% u64AØ›%  BufferAø›% WP?byteLength name uri ?extensions ?extrasAØœ%  AssetAøœ% {tcopyright ?extensions ?extras generator minVersion versionAˆž% copyrightA¸ž% generatorAèž% minVersionA˜Ÿ% 2.0A¸Ÿ% AnimationAèŸ% [T?extensions ?extras channels name samplersAØ % e^?extensions ?extras input ?interpolation outputAÈ¡% YRany of: ["LINEAR", "STEP", "CUBICSPLINE"]A¸¢%  LINEARAØ¢% STEPAø¢% CUBICSPLINEA¨£% ChannelAÈ£% KDsampler target ?extensions ?extrasA¨¤%  TargetAȤ% A:?extensions ?extras node pathA˜¥% unany of: ["translation", "rotation", "scale", "weights"]A˜¦% AccessorA¸¦% ÓÌbufferView ?byteOffset count componentType ?extensions ?extras type ?min ?max name ?normalized ?sparseA˜¨% _Xany of: [5120, 5121, 5122, 5123, 5125, 5126]Aˆ©% ‹„any of: ["SCALAR", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4"]A¨ª% normalizedAت%  SparseAøª% WPcount indices values ?extensions ?extrasAØ«%  ValuesAø«% [TbufferView ?byteOffset ?extensions ?extrasAè¬% IndicesAˆ­% wpbufferView ?byteOffset componentType ?extensions ?extrasAˆ®% ;4any of: [5121, 5123, 5125]AØ®%  SCALARAø®% VEC2A˜¯% VEC3A¸¯% VEC4Aد% MAT2Aø¯% MAT3A˜°% MAT4A¸°% a sequenceAè°% )"duplicate field `A¨±% -XAȱ% C-Z™ g`g�h`i€j0lpm`o`p pàf�tA˜²% #rmdlcmd-syntaxAȲ% ;4the file is not UTF-8 textA˜³% aZan .rmdlcmd is UTF-8 text, one command a lineAˆ´% «¤close the quote; a command is one line (write a line feed in a quoted token as \n)Aȵ% /(model-needs-commandsAˆ¶% un holds model commands this program cannot replay (line Aˆ·% 5.`, or build the projectAÈ·%  --to Aè·% {twrite the model as a document, which loads without them: `Aø¸% 5.unterminated quote in: A¸¹% KDthe data form was already finishedA˜º% {tno data scene line: the data form starts with `data scene`A¨»% )"` line defines itAè»% 3,) but no `data object A¨¼% 70 is declared (--objects Aè¼% 1*` line gives its meshA¨½% A: is a mesh but no `data mesh Aø½% 3,` line gives its bonesA¸¾% SL is an armature but no `data armature A˜¿% E> is declared but no `data bone Aè¿%  of object A˜À% !active-vgroupAÈÀ% # vertex groupsAøÀ% IB is out of range: the object has AØÁ% /(active_vertex_group A˜Â% ' --active-vgroup AÈÂ% QJ) is not an object: its slot is emptyA¨Ã% 3,the parent of object "AèÃ% 5." is its own ancestor (A¨Ä% object "AÈÄ% boneAèÄ% KD) is not a bone: its slot is emptyAÈÅ% /(the parent of bone "AˆÆ%  bone "A¨Æ% 3,) but no `data action AèÆ% 70 is declared (--actions A¨Ç% action AÈÇ% rmdlcmd-dataAøÇ%  data A˜È%  actionA¸È%  fcurveAØÈ%  vgroupAøÈ% shapekeyA˜É% !selection-setAÈÉ% constraintAøÉ% _pose-clipPÝ n d @d <`d ðÌàž€d àM d €OPb Ðd e ôAèÊ% _Xa data line is `data <record> ...`, one of: AØË% éâdata scene [--objects N] [--object-holes "i..."] [--actions N] [--action-holes "i..."] [--active <id>] [--mode object|edit|pose|weight] [--select-mode "v e f"] [--cursor "9 numbers"] [--pivot <word>] [--orientation <word>] [--frame N] [--frame-range "start end"] [--fps F] [--frame-step N] [--render-size "w h"] [--render-background "r g b a"] [--render-shading <word>]AØÑ% ±*data material <index> <name> [--file <path.mtlx>] [--base-color "r g b"] [--metallic F] [--roughness F] [--emission "r g b"] [--emission-strength F] [--alpha F] [--alpha-mode opaque|mask|blend] [--alpha-cutoff F] [--double-sided] [--<slot>-texture <path> [--<slot>-uv <layer>]]A˜Ö% 5.data action <id> <name>AØÖ% …þdata fcurve <action id> <data-path> <array-index> [--keys "12 numbers a key"] [--extrapolation constant|linear|cyclic] [--mute]AèØ% ¥data object <id> <name> --type mesh|armature|camera|light|empty [--transform "9 numbers"] [--parent <id> [--parent-type object|bone|armature] [--parent-bone <name>]] [--parent-inverse "16 numbers"] [--select] [--hide] [--hide-render] [--material-slots "i..."] [--active-vgroup <i>] [--animation <action id>|none] [camera, light or empty flags: --empty-display, --empty-size, --instance <model file>]A˜ß% UNdata vgroup <object id> <name> [--lock]Aøß% •Ždata modifier <object id> <name> <kind> [--disabled] [the kind's flags]A˜á% —�data mesh <object id> [--verts N --vert-holes "i..." --co "x y z..." --vert-flags --vert-groups] [--edges N --edge-holes --edge-verts "a b..." --edge-flags --crease --bevel-weight] [--faces N --face-holes --face-loops "start len..." --face-normals --face-flags --face-materials] [--loops N --loop-holes --loop-refs "vert edge face..." --loop-uvs --loop-uv-flags] [--uv-layer <name>...] [--active-uv N] [--select-history "kind id..."] [--active-shape-key N]A¸è% ýödata shapekey <object id> <name> [--value F] [--slider-min F] [--slider-max F] [--relative-to N] [--mute] [--co "x y z..."]AÈê% éâdata attribute <object id> <name> [--domain point|edge|face|corner] [--type float|int|bool|vec3] [--values "..."]AÈì% ·°data selection-set <object id> <name> [--verts "i..."] [--edges "i..."] [--faces "i..."]Aˆî% Ÿdata armature <object id> [--bones N] [--bone-holes "i..."] [--active <bone id>] [--display octahedral|stick] [--collection <name> <0|1>...]A¸ð% ³,data bone <object id> <bone id> <name> [--head "x y z"] [--tail "x y z"] [--roll F] [--parent <bone id>] [--connected] [--deform] [--inherit-rotation] [--inherit-scale] [--envelope "distance weight"] [--radius "head tail"] [--collection <name>...] [--select] [--select-head] [--select-tail] [--hide] [--pose-location "x y z"] [--pose-rotation "x y z w"] [--pose-scale "x y z"] [--pose-select] [--pose-hide]Aøö% ÑJdata constraint <object id> <bone id> <name> <kind> [--influence F] [--disabled] [--space world|local] [--target <object id> [--subtarget <bone>]] [the kind's flags]AØù% ·°data pose-clip <bone name> [--location "x y z"] [--rotation "x y z w"] [--scale "x y z"]A˜û% Ï„data import <path> [--hash <hex>] [--bytes N] [--object <name>...]àe àh k `k pl  o p  p @t Pu Pv w @x €{ à|  } Aøü% !the form is `A¨ý% _Xa data line after the data form was finishedA˜þ% 1*unknown data record `AØþ% =6a data line names no recordA¨ÿ% [Ta second data scene (the first is at line A˜€& SLthe data form starts with `data scene`Aô€& 9A¸�& hashAØ�&  bytesAø�& KD holds more numbers than it shouldAØ‚& 92a whole number below 2^64A¨ƒ& ` is not A؃& %too few numbersAˆ„& x y z wA¨„& ¿¸A¶„& ²ð?$@Y@@�@ˆÃ@jø@€„.AÐcA„×—AeÍÍA _ BèvH7B¢”mB@åœ0¢B�ļÖB4&õk C€à7yÃAC Ø…W4vCÈNgmÁ«C=‘`äXáC@Œµx¯DPïâÖäKD’ÕMÏð€DAø…&  expected (A¨†&  numbers, A؆&  x y zAø†& bone idA˜‡& c\ is not defined by an earlier `data bone` lineAˆˆ& ikA¨ˆ& !copy-locationA؈& !copy-rotationAˆ‰& copy-scaleA¸‰& %copy-transformsAè‰& #limit-rotationA˜Š& #limit-locationAÈŠ& track-toAèŠ& damped-trackA˜‹& stretch-toAÈ‹& Cchild-of„ 0„ `„ �„ À„ ð„ … P… p…  … Ð… A˜Œ& ` (A¸Œ& 92unknown constraint kind `Aˆ�& subtargetA¸�& poleAØ�& #pole-subtargetAˆŽ& pole-angleA¸Ž& chain-lengthAèŽ& 7use-tail€\�† À† à† ‡ @‡ Hp‡ A¨�& caxes€\�† °‡ R^€\�† °‡ �!€\�† °‡ €\�† �!ÀÀàÀ°‡ A˜�& use-minA¸�& 'use-maxÀÀàÀ ˆ @ˆ Aè�& 3 track€\�† pˆ  €\�† pˆ A¨‘& rest-lengthAØ‘& ' volume€\�† °ˆ àˆ Aˆ’& #inverse€\�† ‰ A¸’& influenceAè’& # space@‰ À�p‰ A˜“&  constraintAÈ“&  beforeAè“& # after�kЉ ð‰ A˜”& -xA¸”& -yAØ”& '-zÐI€K K Š @Š `Š Aˆ•&  local �Š A¸•& ;4a 4x4 matrix, column majorAˆ–& , not `A¨–& +$x y z, each 0 or 1Aè–&  0 or 1Aˆ—& #a whole numberA¸—& 92a whole number below 2^32Aˆ˜& object idsA¸˜& +$ is out of range: Aø˜& !there are no A¨™& % run from 0 to AØ™& +$ is not a flag of A˜š& 5.` is not a whole numberAØš&  `Aøš& object idA¨›& sl has no armature: its `data armature` line comes firstA¨œ& g` is not defined by an earlier `data object` lineA˜�& bone idsA¸�& 92it is one of --bone-holesAˆž& 92 is not a declared slot (AØž& IB is defined twice (first at line A¸Ÿ& headAØŸ& tailAøŸ& rollA˜ &  deformA¸ & ' inherit-rotationAè & !inherit-scaleA˜¡& envelopeA¸¡& %distance weightAè¡& head tailA˜¢& collectionAÈ¢&  selectAè¢& select-headA˜£& select-tailAÈ£& hideAè£& !pose-locationA˜¤& !pose-rotationAȤ& pose-scaleAø¤& pose-selectA¨¥& pose-hideAØ¥& )", not an armatureA˜¦& G@ has its armature already (line Aè¦&  bonesAˆ§& bone-holesA¸§& bones-liveAè§&  activeAˆ¨& displayA¨¨& octahedralAب&  stick0” `” Aˆ©& _X takes 0 or 1 (hidden) after the name, not `Aø©&  slotsA˜ª& ;4 is not in ascending orderAèª& e^ is more slots than the data form allows here (AØ«&  emptyAø«& C<` is defined twice for object AȬ& %selection set `Aø¬&  vertsA˜­&  edgesA¸­& {t has no mesh: a mesh object's `data mesh` line comes firstAÈ®&  domainAè®& 7 corner°J°Ðp— 0-Ðt°t@äA¨¯& _X numbers, not a multiple of 3 (x y z a vec3)A˜°& an integerAȰ& 1*an integer in 32 bitsAˆ±& slider-minA¸±& slider-maxAè±& relative-toA˜²& muteA¸²& coAز& c\ numbers, not a multiple of 3 (x y z a vertex)Aȳ& , not a meshAø³& ?8 has its mesh already (line AÈ´& vert-holesAø´& edge-holesA¨µ& face-holesAص&  loopsAøµ& loop-holesA¨¶& vert-flagsAض& vert-groupsAˆ·& verts-liveA¸·& edge-vertsAè·& edge-flagsA˜¸&  creaseA¸¸& bevel-weightAè¸& ! vertex slotsA˜¹& : edge A¸¹& edges-liveAè¹& face-loopsA˜º& face-normalsAȺ& face-flagsAøº& #face-materialsA¨»& , past 65535AØ»& faces-liveAˆ¼& loop-refsA¸¼& loop-uvsAؼ& !loop-uv-flagsAˆ½& vertex A¨½&  edge slotsAؽ&  face slotsAˆ¾& : loop A¨¾& , past 255Aؾ& loops-liveAˆ¿&  loop slotsA¸¿& # runs to loop Aè¿& : face AˆÀ& , one of A¸À&  uses loop AèÀ& uv-layerAˆÁ& active-uvA¸Á& #select-historyAèÁ& qj numbers, not pairs (kind id: 0 vert, 1 edge, 2 face)AèÂ& SL is not 0 (vert), 1 (edge) or 2 (face)AÈÃ& : kind AèÃ& ' active-shape-keyA˜Ä& 92, past its bits (at most AèÄ& ! for each of A˜Å&  are presentAÈÅ& # is required: AøÅ&  mirrorA˜Æ& subsurfA¸Æ&  arrayAØÆ& solidifyAøÆ&  bevelA˜Ç& triangulateAÈÇ& weldAèÇ& edge-splitA˜È& ?ext£ £ @£ `£ €£  £ У 𣠀OPÍÀj ¤ AèÈ& 5.unknown modifier kind `A¨É& &clipping@°¤ °ZP[AØÉ&  levelsAøÉ& /render-levelsठ¥ A¸Ê& %relative-offsetAèÊ& Jconstant-offset€) @¥ p¥ °ZP[02^PlAÈË& "segmentsP1Ð¥ °HAøË& "distance¦ °XA¨Ì& )"use-vertex-groupsAèÌ& 7use-envelopes<@i0¦ p¦ A¨Í& # paramPͰ¦ À€ AØÍ& scale-attrAˆÎ&  alignA¨Î& ?rotation-attr<ð²à¦ § ‚0§ AøÎ& ext-kindA˜Ï& prop€§  § À�AÈÏ&  modifierAøÏ& G@ is required for an ext modifierAÈÐ& +$` is not key=valueAˆÑ& ` twiceA¨Ñ&  gives `AÈÑ& lockAèÑ& =6it is one of --object-holesA¸Ò& ‹j is required (mesh, armature, camera, light or empty)àž€O`€Úà• AØÓ& camera-typeAˆÔ& focal-lengthA¸Ô& ortho-scaleAèÔ& clip-startA˜Õ& +clip-endà© ª @ª pª  ª AØÕ& light-typeAˆÖ& # energyઠðg« A¸Ö& !empty-displayAèÖ& 7empty-size@« p« Àj©@H A¨×& area°J0YЕ°« AØ×& plain-axesAˆØ&  arrowsA¨Ø& cubeà« ¬ 0¬ AØØ& # names no fileAˆÙ& *parent-type<Pb €OAÈÙ& parent-boneAøÙ&  boneA˜Ú&  need A¸Ú& #parent-inverseAèÚ& hide-renderA˜Û& #material-slotsAÈÛ& !vertex groupsAøÛ& action idsA¨Ü& _Xlocation, rotation and scale, 3 numbers eachA˜Ý&  objectA¸Ý& action idAèÝ& array indexA˜Þ& g` is not defined by an earlier `data action` lineAˆß& keysA¨ß& •Žleft-x left-y right-x right-y handle-type back amplitude period, a key)AÈà& ‰‚ numbers, not a multiple of 12 (frame value interpolation easing Aèá&  easingAˆâ& handle typeA¸â& !extrapolationAèâ& # cyclic ˆ` p± A˜ã& 92, past the last variant (Aèã& a key's Aˆä& =6it is one of --action-holesAØä& #material indexAˆå& ]V (materials are numbered from 0, each once)Aøå& UN is out of order: the next material is AØæ& material Aˆç& base-colorA¸ç& )"emission-strengthAøç& alpha-modeA¨è&  opaqueAÈè& mask0´ P´ pAøè& alpha-cutoffA¨é& double-sidedAØé& B$metallic-roughness�³  -à´ €ï.A¨ê& -textureAÈê& -uvAèê&  without A˜ë& objectsA¸ë& object-holesAèë& actionsAˆì& action-holesA¸ì& objects-liveAèì& actions-liveA˜í& editA¸í& poseAØí& ' weight< ¶ À¶ à¶ Aˆî& select-modeA¸î& =6vert edge face, each 0 or 1Aˆï&  pivotA¨ï&  medianAÈï& individualAøï& 3bounding-box°· з `±ð“ ¸ A¸ð& viewÀ�Š  -@¸ Aèð& frame-rangeA˜ñ& start endAÈñ& frame-stepAøñ& render-sizeA¨ò& width heightAØò& )"render-backgroundA˜ó& #render-shadingAÈó& iba data line names its record: `data <record> ...`AÈô&  given)Aèô&  expected, A˜õ& IBtoo few values before the flags (Aøõ& KDtoo many values before the flags (AØö& qj` is not a flag here (a value with no flag before it)AØ÷& %unknown flag --Aˆø& # needs a valueA¸ø&  valuesAØø& 1*an unterminated quoteA˜ù& -&build/cache/rmdlcmdAØù& ohThis is a feature that PostCard will never implementAØú& �ˆThis is a feature that Postcard intends to support, but does not yetAøû& ?8The serialize buffer is fullAÈü& SLThe length of a sequence must be knownA¨ý& YRHit the end of buffer, expected more dataA˜þ& ¡šFound a varint that didn't terminate. Is the usize too big for this platform?AÈÿ& E>Found a bool that wasn't 0 or 1A˜€' A:Found an invalid unicode charAè€' ?8Tried to parse invalid utf-8A¸�' e^Found an Option discriminant that wasn't 0 or 1A¨‚' slFound an enum discriminant that was > u32::max_value()A¨ƒ' SLThe original data was not well encodedAˆ„' =6Bad CRC while deserializingAØ„' -&Serialization ErrorA˜…' ibFound an enum variant index that was out of rangeA˜†' yrError while processing `collect_str` during serializationA¨‡' HEDRAMDLAȇ' [Tnot a cache entry: too short for its magicA¸ˆ' QRMDLCA؈' ?8not a cache entry: bad magicA¨‰' ?8the cache entry is truncatedAø‰' -&cache entry format A¸Š' aZthe cache entry's entry count is out of rangeA¨‹' iba dependency path in the cache entry is not UTF-8A¨Œ' YRthe cache entry has bytes after its sceneA˜�' !rmdlcmd-cacheAÈ�' c\ writes a new one when it next saves the modelA¸Ž' MFa cache entry is only ever a miss: A˜�'  schema A¸�' #hedra-model-1 Aè�' mdlcAˆ�' Ö :A¨�' # rmdlcmd AØ�' 3,rmdlcmd-data-misplacedA˜‘' =6a data line after a commandAè‘' yrdata lines come first in a model file, before any commandAø’' # }A˜“' # A¸“'  {AØ“' # rmdl Aø“' #rmdlcmd-headerA¨”' 92`, not an .rmdlcmd headerAø”' KDthe first line is the old header `AØ•' UN model x.rmdlcmd --to x.rmdl writes it)A¸–' aZ` (an .rmdl is now the model's XML document: A¨—' E>this is the old header: write `Aø—' WPthe first line is not an .rmdlcmd headerAؘ' KDan .rmdlcmd starts with the line `A¸™' /(rmdlcmd-format-newerAø™' ;4, newer than this build's AÈš' ?8the file is .rmdlcmd format A˜›' hedra-editorAÈ›' use a newer Aø›' rmdl-invalidA¨œ' pose_clipAØœ' collectionsAˆ�' !selection_setA¸�' shape_keyAè�' uv_layersA˜ž'  propsA¸ž' *vertex_groupЂð²Aøž' -&active_vertex_groupA¸Ÿ'  0 0 0AØŸ' # 1 1 1ÀÏ ÀÏ àÏ Aˆ ' %cursor_locationA¸ ' %cursor_rotationAè ' +cursor_scaleÐ @Ð pÐ A¨¡' a model fileAØ¡' G4write format="1" on <rmdl>À0`ˆA¨¢'  <rmdl>AÈ¢' “Œa CDATA section inside <rmdl>: only elements and comments belong thereAè£' +metaðÑ Ð¢£PÝ<0Î ôA¨¤' slit is ignored, and a rewrite (`hedra format`) drops itA¨¥' UNa second <scene> (the first is at line Aˆ¦' C4a document has one <scene>Pb Aئ' object_holesAˆ§' -&rmdl-name-duplicateAȧ' 1*" (the first at line Aˆ¨' 5.two objects are named "AȨ' e^references name objects: give each its own nameA¸©' action_holesAè©' /(rmdl-resource-unusedA¨ª' ' no object names Aت' <pose_clip>Aˆ«' +$no property names AÈ«' an <import>Aø«' !ExtResource (A¨¬' +$rmdl-resource-typeAè¬' : it takes A˜­' "), A¸­' /( names ExtResource("Aø­' " .../>A˜®' %Array of StringAÈ®' packed arrayAø®' 92String (an object's name)Aȯ' 3,String (a bone's name)Aˆ°' E>SubResource (an Action) or nullAذ' 92ExtResource (a Texture2D)A¨±' 1*ExtResource (a Model)Aè±' 70ExtResource (a Material)A¨²' =6ExtResource (a PackedScene)Aø²' G@Array of SubResource (Materials)Aȳ' MFSubResource (a Mesh or an Armature)A¨´'  has no AÈ´' ' ">...</property>Aø´' 3,write <property name="A¸µ' )"an Array holding Aøµ' }v maps names to true or false (visible), as {"Deform": true}Aˆ·' —� is a PackedFloat32Array, PackedInt32Array or PackedVector3Array, found A¨¸' % here (r, g, b)Aظ' +$ here (r, g, b, a)A˜¹' !SubResource (Aȹ' /( names SubResource("Aˆº' )"rmdl-name-missingAȺ' UN": no bone of this armature is named soA¨»'  names "AÈ»' "?Aè»' #did you mean "A˜¼' Î�Æhru‡Š‹’Eó¬­®¯ÌÍέ®¯ÂÌÍÎ×ÐÕÖ×ñ¸õòPQRSTUVWXYZ[\]^_Ï�…vwxyz{|}pq³¾Ãvwz{åxy|}óÉkåN!k}}QqPR?@ye”§\alž‡�”§‚ŽAø½' Î�Æhru‡Š‹’E†ˆ‰ŠŒŽ�­®¯ÂÌÍÎÏÐÕÖ×ñôõùPQRSTUVWXYZ[\]^_À�…vwxyz{|}º»¼¾ÌÚÛêëìøùúûü&!*!+!N!b,c,d,m,n,o,p,~,,}§�§”§«§¬§­§°§±§²§Ä§Å§Æ§AØ¿' 70": no object is named soA˜À' =6the document has no objectsAèÀ' E>Vector3 takes 3 numbers, found A¸Á' '<object>÷÷�¬AèÁ' bone_holesA˜Â' SLtwo bones of this armature are named "AøÂ' aZreferences name bones: give each its own nameAèÃ' +an Armature÷ÀøÐd A¨Ä'  <bone>÷�¬AØÄ' <constraint>AˆÅ' ; a MeshÀÎ àM�Î  ÷AØÅ' &an Action wp?AˆÆ' <fcurve>A¨Æ' a MaterialAØÆ' +$ but has no shaderA˜Ç' ' a Material sets AÈÇ' ×Ðwrite <property name="shader">ExtResource("...")</property>, naming a Shader ext_resource (a .wgsl file)A¨É' %" have a shaderAØÉ' 1*two materials named "A˜Ê' …~a material's shader is kept by its name: give each its own nameA¨Ë' _X(ExtResource of a Texture2D) or null, found A˜Ì' mf is a number, a bool, a vector, a Color, a texture A˜Í' <scene>A¸Í' 92: it has no data propertyAˆÎ' +$ object needs its AÈÎ' WP")</property>, naming its <sub_resource>A¨Ï' YRwrite <property name="data">SubResource("A˜Ð' S8 object has no data propertyàž€O`€Úà• AøÐ' thisA˜Ñ' yronly mesh and armature objects name a Mesh or an ArmatureA¨Ò' /(rmdl-resource-sharedAèÒ' _X" is the data of two objects (the first is "AØÓ' 3,: give this one a copyA˜Ô' O*each object owns its ÷�¬Àø@Ï ðÌAøÔ' %" on <property>A¨Õ' k<" is set twice (first at line °t�¬@d ÀÎ àM�Î Pb A¨Ö' Ÿ‚a model's sub_resources are Material, Action, Mesh and Armature; °t�¬``ˆAØ×' C&> in <ext_resource>°U€ŸPW°£�ŒA¨Ø' § a model's ext_resources are Texture2D, Material, PackedScene, Model and Shader; AØÙ' § a model's paths are its directory's: relative to the .rmdl (with /), or absoluteAˆÛ' , not "A¨Û' !path-absoluteAØÛ' wp" is an absolute path: it ties the model to this machineAØÜ' MFname the file relative to the .rmdlA¸Ý' /(a .gltf or .glb fileAøÝ' 70a MaterialX file (.mtlx)A¸Þ' aZa model file (.rmdl, .rmdlcmd, .gltf or .glb)A¨ß' 1*a shader file (.wgsl)Aèß' Gany fileàXYàé€X XàXYÐ�÷ A¸à' ƒ|<meta> has no content: write it <meta name="..." value="..."/>AÈá' ' " is given twiceAøá'  meta "A˜â' /(a name is given onceAØâ' áÚan .rmdl is XML: close every element, quote every attribute value, and write & < > in text as &amp; &lt; &gt;AÈä' )"rmdl-command-fileAˆå' e^this .rmdl holds commands, not a model documentAøå' MF`hedra model x.rmdlcmd --to x.rmdl`AØæ' ÓÌa command file is an .rmdlcmd whose first line is `# rmdlcmd 1`: rename it, then write its model with A¸è' WP: the built scene holds no such materialA˜é' mtlx-xmlA¸é' mtlx-ignoredAèé' documentAˆê' textures[A¸ê' tex_AØê' art_Aøê' baseColorA¨ë' textures[5]AØë' textures[3]Aˆì' normalScaleA¸ì' textures[4]Aèì' )"occlusionStrengthA¨í' cullFrontAØí' 3,vertexColorUseAsAlbedoA˜î' )"vertexColorIsSrgbAØî' !billboardModeAˆï' +$billboardKeepScaleAÈï' %refractionScaleAøï'  unlitA˜ð' !specularColorAÈð' textures[6]Aøð' +$clearcoatRoughnessA¸ñ' /(clearcoatNormalScaleAøñ' textures[17]A¨ò' sheenColorAØò' #sheenRoughnessAˆó' textures[13]A¸ó' -&diffuseTransmissionAøó' textures[18]A¨ô' 70diffuseTransmissionColorAèô' .artboardA˜õ' !.stateMachineAÈõ'  .sizeAèõ' .updateModeA˜ö' .updateFpsAÈö' mtlx-rootAøö' mtlx-versionA¨÷' -&mtlx-material-countAè÷' mtlx-shaderA˜ø' 1*mtlx-node-unsupportedAØø' +$mtlx-input-unknownA˜ù' %mtlx-input-typeAÈù' mtlx-valueAøù' %mtlx-connectionA¨ú' C<the document could not be readAøú'  shows oneA¨û' OHa material file is an XML document: Aˆü' materialxA¸ü' WP>: a MaterialX document's is <materialx>A˜ý' YRa material file is a MaterialX document (Aˆþ' hedra_extrasA¸þ' %surfacematerialAèþ' nodegraphA˜ÿ' ' unused nodegraphAÈÿ' )"unused nodegraphsAˆ€( SL" is not part of the material: ignoredAè€( nodegraph "A˜�( unused nodeAÈ�( unused nodesAø�( ]V) is not connected to the material: ignoredAè‚( , "Profile")A˜ƒ( 70 format` would drop it (A؃( [THedra reads the material without it, and `AÈ„( G@: Hedra's extras are a nodegraphA˜…(  showsA¸…( aZrename the element, or make it the nodegraph A¨†( colorspaceA؆( fileprefixAˆ‡( 92" on <nodegraph>: ignoredA؇( attribute "Aˆˆ( ?8hedra_extras has no output "A؈( ]Vbillboard_keep_scale and refraction_scale (Aȉ( üdiffuse_transmission_color, vertex_color_use_as_albedo, vertex_color_is_srgb, billboard_mode, A˜‹( ÓÌits outputs are double_sided, cull_front, unlit, iridescence_thickness_minimum, diffuse_transmission, AøŒ( !" is of type A¨�( output "AÈ�( write type="Aø�( nodenameA˜Ž( !interfacenameAÈŽ( MF, which the profile does not followA¨�( " uses AÈ�( e^connect it to a node of the graph with nodenameA¸�( 5." on an output: ignoredAø�( QJ is a value: it comes from a constantAØ‘( ?8connect it to a <constant> (A¨’( ! is not 0 to AØ’( %billboard_mode Aˆ“( �zwrite 0 (disabled), 1 (enabled), 2 (fixed_y) or 3 (particles)A˜”( MFextra iridescence_thickness_minimumAø”( ÛÔiridescence_thickness_minimum: ignored (the gltf_iridescence_thickness node's thicknessMin is the minimum)Aè–( ' extra cull_frontA˜—( ¯¨cull_front: ignored (double_sided is set, and a double-sided material culls no face)Aؘ( srgb_textureAˆ™( lin_rec709A¸™( G@" is not one this build convertsAˆš( #colour space "A¸š( aZwrite colours in srgb_texture or lin_rec709 (A¨›( gltf_pbr's AØ›( ' ", which has oneAˆœ( % names output "A¸œ( /(leave the output outAøœ( extractA˜�(  nodeA¸�( UN gltf_image, through an extract; found A˜ž(  of a A¸ž(  is channel Aèž( # has the tableA˜Ÿ( KD from one channel of its texture: AøŸ( glTF reads A¨ ( # node of type AØ ( ; found Aø (  of type A¨¡(  comes from AØ¡( KD) says which node feeds each inputA¸¢( #glTF's table (Aè¢( +$ comes from a nodeA¨£( a texture's AØ£( -&write it as a valueA˜¤( filenameA¸¤( +$" is not a booleanAø¤( -&write true or falseA¸¥( -&" is not an integerAø¥( ;4write a whole number, as 1AȦ( vector2Aè¦( vector4Aˆ§( 3,write a number, as 0.5Aȧ( 1, 1Aè§( 1, 0.5, 0A˜¨( 1, 1, 1, 1AȨ( KD numbers separated by commas, as "A¨©( 0, 1AÈ©( 0, 0, 0, 0Aø©( geomcolorA¨ª( 0.5, 0.5, 1Aت( 0, 0Aøª( thicknessMinA¨«( thicknessMaxAØ«( 400Aø«( 1, 0.5, 1A¨¬( inAȬ( normalmapAø¬( bitangentA¨­( fgAÈ­( bgAè­( texcoordAˆ®(  rotateA¨®( #operationorderAØ®( uaddressmodeAˆ¯( periodicA¨¯( vaddressmodeAد( filtertypeAˆ°( A: is not one the profile readsAذ( S0) gives each node's type€}�· 0 ` ° à  A¸±( oh: ignored (glTF's sampler is not part of the format)A¸²( KDa texture's file comes from a nodeA˜³( 92write the file as a valueAè³( !rive_artboardA˜´( +$rive_state_machineAØ´( rive_sizeAˆµ( ' rive_update_modeA¸µ( ;rive_update_fpsð  ` � À Aˆ¶( =6", which is not a Rive fileAض( aZthe artboard attributes go with a .riv file (AÈ·( /(texture colour spaceAˆ¸( 1*texture colour spacesAȸ( _Xsrgb_texture, as glTF reads a colour textureA¸¹( OHlinear, as glTF reads a data textureA˜º( ": read as AȺ( -&" in colour space "Aˆ»( texture "A¸»( /(texcoord comes from Aø»( ³¬a texture's UV set is a texcoord node (<texcoord><input name="index" .../></texcoord>)A¸½( texcoord "Aè½( OHa texcoord's index comes from a nodeAȾ( ;4write the index as a valueA˜¿(  is below 0AÈ¿( UV set Aè¿( 92glTF's sets are 0, 1, ...A¸À( 3,input "texcoord" valueAøÀ( ƒ|a constant texture coordinate: ignored (glTF samples a UV set)AˆÂ( unitA¨Â(  degreeAÈÂ(  radianAèÂ( +$" is not convertedA¨Ã( rotate in "AØÃ( slwrite rotate in degree (MaterialX's default) or radianAØÄ( UNa texture's transform comes from a nodeA¸Å( WPwrite scale, rotate and offset as valuesA˜Æ( -&" names no artboardAØÆ( KDa Rive file needs rive_artboard: "A¸Ç( —�name the artboard the texture is drawn from, as rive_artboard="Screen" (AØÈ( =6rive_state_machine is emptyA¨É( ³¬name a state machine of the artboard, or leave the attribute out for its default one (AèÊ( 5." is not a texture sizeA¨Ë( rive_size "AØË( [Tleave it out for the artboard's own size (AÈÌ( QJ, width then height, as "1024, 512"; A¨Í( cDwrite two whole numbers from 1 to À�°æ°7à7ÐæA˜Î( 5." is not an update modeAØÎ( +$rive_update_mode "A˜Ï( ËÄwrite disabled, once, when_visible, when_parent_visible or always; leave it out for when_visible (AøÐ( %" is not a rateA¨Ñ( )"rive_update_fps "AèÑ( µ®write a number of redraws a second, 0 or more (30, 15); leave it out for every change (A¨Ó( .rivAÈÓ( > elementsAøÓ( : ignoredA¨Ô(  > in AÈÔ( =6an input without a name in A˜Õ( 70every input has a name (AØÕ( % has no input "AˆÖ( %its inputs are A¸Ö( /(" is given twice in AøÖ( /(give each input onceA¸×(  is of type Aè×( ;unittype÷�¬  Д0 àÔ! ð+ A¸Ø( “Œconnect inputs to nodes of the same scope with nodename (and output) (AØÙ( 3," on an input: ignoredA˜Ú( commentA¸Ú( commentsAØÚ( +$a comment: ignoredA˜Û( 3,processing instructionAØÛ( 5.processing instructionsA˜Ü( IBa processing instruction: ignoredAøÜ( !piece of textA¨Ý( #pieces of textAØÝ( E>text inside an element: ignoredA¨Þ( 3," is not of type floatAèÞ( extract "A˜ß( +$write type="float"AØß( OHan extract's index comes from a nodeA¸à( ' " takes channel Aèà( C< of its texture, and extract "A¸á( )"glTF's channels: Aøá( ib: glTF's channel comes from a gltf_image of type Aøâ(  " for A˜ã( [Tconnect its in to the texture's gltf_imageAˆä( IB" has both a value and a nodenameAèä( e^give an input a value or a connection, not bothAØå( % of nodegraph "Aˆæ( %" names no nodeA¸æ( nodename "Aèæ( oha nodename is the name of a node in the same scope (Aèç( Cgltf_pbrð3 Ð3`45 9�8€ P �!ð  ˆA¸è( , not a nodeAèè( is Aˆé( SL node, which the profile does not readAèé( ãÜa material's graph is gltf_pbr and glTF's texture nodes, with extract, normalmap, mix, texcoord and constant (AØë( ' " names output "Aˆì( KDa constant has one output: input "Aèì( ' , and constant "A˜í( IBconnect it to a constant of type Aøí( constant "A¨î( A:" takes its value from a nodeAøî( MFa constant's value is written in itAØï( /nodedef÷�¬à7 0d0 ` A˜ð( z>: ignoredPŠ�þø  ×°9P:°oõð÷�ùpqccc0-0-Ð,cc`/c0-A¨ñ( [Ta second surfacematerial (the first is at A˜ò( �†a material file holds one material: put each in a file of its own (A¸ó( QJthe document holds no surfacematerialA˜ô( ¯¨a material file holds one <surfacematerial> whose surfaceshader is a gltf_pbr node (AØõ( E>> in a surfacematerial: ignoredA¨ö( !surfaceshaderAØö( )"backsurfaceshaderA˜÷( +$displacementshaderAØ÷( volumeshaderAˆø( ;4": ignored (glTF has none)AØø( C<surfacematerial has no input "A¨ù( ³¬its inputs are surfaceshader, backsurfaceshader, displacementshader and volumeshader (Aèú( ?8" has no surfaceshader inputA¸û( )"surfacematerial "Aøû( åÞconnect its surfaceshader to a gltf_pbr node: <input name="surfaceshader" type="surfaceshader" nodename="..."/>Aèý( ]Vthe surfaceshader input connects to no nodeAØþ( WPgive it nodename="<the gltf_pbr node>" (A¸ÿ( kda nodename is the name of a node of the document (A¸€) =6 node: Hedra reads gltf_pbrAˆ�) /(the surface shader "AÈ�) …~Hedra's materials are glTF's: use MaterialX's gltf_pbr shader (AØ‚) C<" is not of type surfaceshaderA¨ƒ) %gltf_pbr node "A؃) G@write type="surfaceshader" on itA¨„) {talpha comes from a gltf_colorimage and base_color does notA¸…) ½¶glTF's alpha is the base colour texture's: connect base_color to the same node's outcolor (Aˆ‡) ' with alpha_mode A¸‡) xbase_color comes from a gltf_colorimage and alpha does not, AȈ) MFas the alpha of the node's factor (A¨‰) áÚglTF's alpha is the base colour texture's times the factor: connect alpha to the same node's outa, the value A˜‹) ?8anisotropy_rotation does notAè‹) }vanisotropy_strength comes from a gltf_anisotropy_image and AøŒ) YRthe same node's anisotropy_rotation_out (Aè�) «¤glTF's anisotropy texture gives the direction too: connect anisotropy_rotation to A¨�) " valueAÈ�) UN: ignored (glTF's comes from a texture)A¨�) a value for AØ�) 5.input "occlusion" valueA˜‘) yran occlusion value: ignored (glTF's comes from a texture)A¨’) 1* is not one of glTF'sAè’) alpha_mode A˜“) 920 OPAQUE, 1 MASK, 2 BLENDAè“) KD is a value in glTF, not a textureAÈ”) 1*write it as a value (Aˆ•) § gltf_pbr's iridescence_thickness comes from a gltf_iridescence_thickness; found A¸–) SLglTF's iridescence thickness texture: A˜—)  mix "A¸—) ‘Šocclusion's mix is the texture (fg) over 1 (bg) by the strength (mix)Aؘ) ©¢glTF's occlusion strength: <mix> with fg the gltf_image, bg 1, mix the strength (A˜š) ‹„gltf_pbr's occlusion comes from a gltf_image of type float; found A¸›) ;4glTF's occlusion texture: Aˆœ) 70" is not of type vector3AÈœ) normalmap "Aøœ) /(write type="vector3"A¸�) ib is set: glTF's normal map uses the surface's ownA¸ž) ' the normalmap's Aèž) UNleave normal, tangent and bitangent outAÈŸ) SLa normal map's space comes from a nodeA¨ ) …~" is in object space: glTF's normal texture is in tangent spaceA¸¡) [Tthen write space="tangent" or leave it outA¨¢) MFbake the normals to tangent space, Aˆ£) ;4" is not a normalmap spaceAØ£) 5.write tangent or objectA˜¤) SLa normal map's scale comes from a nodeAø¤) qj" reads its normals from a gltf_image of type vector3Aø¥) OHconnect its in to the normal textureAئ) -&gltf_image); found A˜§) kd comes from a gltf_normalmap (or a normalmap of a A˜¨) 5.glTF's normal texture: Aب) 5.", and its node has oneA˜©) _outA¸©) ]V comes from a gltf_anisotropy_image; found A¨ª) slglTF's anisotropy texture is a gltf_anisotropy_image (A¨«) ", not AÈ«)  " of "Aè«) % takes output "A˜¬) #write output="AȬ) …~anisotropy_strength and anisotropy_rotation come from two nodesAØ­) § glTF's anisotropy is one texture: connect both to the same gltf_anisotropy_imageAˆ¯) outcolorA¨¯) outaAȯ) G@ comes from a gltf_colorimage's A˜°) ibglTF's base colour texture is a gltf_colorimage (A˜±) 3," of gltf_colorimage "Aر) wpbase_color and alpha come from two gltf_colorimage nodesAز) �–glTF's base colour and alpha are one texture: connect both to the same nodeAˆ´) _Xgltf_anisotropy_image and the other does notAø´) ‡€one of anisotropy_strength and anisotropy_rotation comes from a Aˆ¶) �ˆconnect both to the node's two outputs, as glTF's texture holds bothA¨·) C<text between elements: ignoredAø·) lookA˜¸) lookgroupAȸ) #materialassignAø¸) visibilityA¨¹) geominfoAȹ) geompropdefAø¹) backdropA˜º) propertysetAȺ) )"propertysetassignAˆ») variantsetA¸») !variantassignAè») typedefAˆ¼) #implementationA¸¼) unitdefAؼ) unittypedefAˆ½) attributedefA¸½) targetdefAè½)  tokenA�¾) N\ \ P\ €\ ‘ °\ Ð\ ] ] P] �] À] ð] à7 ^ @^ `^ �^ À^ ð^ Aؾ) OH> is not part of a material: ignoredA¸¿) !unused outputAè¿) #unused outputsA˜À) …~an output of the document: ignored (a material's are its nodes)A¨Á) ;4an <output> without a nameAøÁ) 92every output has a name (AÈÂ) %unnamed elementAøÂ) ' unnamed elementsA¨Ã) 92> without a name: ignoredAøÃ) -&" (the first is at A¸Ä) 70a second element named "AøÄ) …~names are unique within a document or a nodegraph: rename one (AˆÆ) SLthe <materialx> element has no versionAèÆ) 1.38AˆÇ) 1.39pc �c A¨Ç) /(" (this build reads AèÇ) %write version="A˜È) A:" is not one this build readsAèÈ) -&MaterialX version "A¨É) =6this build reads MaterialX AøÉ) namespaceA¨Ê) sl": ignored (the material's names are read as they are)A¨Ë) /namespace "0d0 e ` AèË) 92" on <materialx>: ignoredA¸Ì) !audio-invalidAèÌ) IB is not a WAV, MP3 or FLAC file: AÈÍ) ;4convert it to one of thoseA˜Î) ­¦a sound is a WAV (PCM or float), MP3 or FLAC file, which the Rive runtime decodes: AØÏ) loop_modeAˆÐ) loop_beginA¸Ð) loop_endAØÐ) #import-invalidAˆÑ) E>check that the file can be readAØÑ) _X(docs/formats/IMPORT.md, "The .import file")AÈÒ) �–fix that line, or delete the .import file to start again from the defaults AøÓ) .wavA˜Ô) .mp3A¸Ô)  .flacAØÔ) it holds AˆÕ) RIFFA¨Õ) WAVEAÈÕ) C<it is a RIFF file but not WAVEA˜Ö) RF64A¸Ö) �–it is an RF64 WAV, which the runtime does not read (write a plain RIFF WAV)Aè×) fLaCAˆØ) OggSA¨Ø) e^it is Ogg, which the Rive runtime cannot decodeA˜Ù) FORMA¸Ù) g`it is AIFF, which the Rive runtime cannot decodeA¨Ú) £œits first bytes are none of RIFF/WAVE, fLaC, an ID3 tag or an MPEG audio frameAØÛ) 1*, not Layer III (MP3)A˜Ü) IIA¸Ü) 5.it is MPEG audio Layer AøÜ) +$ after its ID3 tagA¸Ý) _Xno MPEG audio frame starts within its first A¨Þ) XingAÈÞ) ô D¬€»}AèÞ) ô "VÀ]€>Aˆß) ô +à.@A¨ß) Bô@ (08@P`p€ Àà@Aøß) Aô@ (08@P`p€� AÈà) ID3Aèà) IBits STREAMINFO block is cut shortAÈá) [Tits first metadata block is not STREAMINFOA¸â) SLits STREAMINFO says a sample rate of 0A˜ã) ?8its RIFF header is cut shortAèã) fmt Aˆä) IB bytes, under the 16 it must holdAèä) )"its fmt chunk is A¨å) IB bytes, under the 40 it must holdAˆæ) ?8its extensible fmt chunk is AØæ) smplAøæ) -&it has no fmt chunkA¸ç) /(it has no data chunkAøç) qj-bit PCM (the runtime reads 8, 16, 24 and 32-bit PCM)Aøè) MF-bit float (32 or 64-bit, not that)AØé) Ÿ˜ (the runtime reads PCM 1, IEEE float 3 and extensible 0xFFFE naming either)Aˆë) ;4its samples are of format AØë) C<its fmt chunk names no channelA¨ì) /(its sample rate is 0Aèì) .asAˆí) 5. extends NodeScript {} AÈí) c\, compiled into the Rive project export class A¸î) // AØî) 5. read from its source (A˜ï) 5.changed since the buildAØï) 5.built for another majorA˜ð) !no built formAÈð) .importAèð) UN; resources are read from their sourcesAÈñ) 1*: not a remap index: Aˆò) SL: not a remap index: not a JSON objectAèò)  schemaAˆó) G@: not a remap index: no "schema"AØó)  is schema Aˆô)  majorA¨ô) x: not a remap index: a field is missing or of the wrong typeA¸õ) [T.x); resources are read from their sourcesA¨ö) /(.x (this library is Aèö) # is for Hedra A˜÷) ! is malformedAÈ÷) =6: not a remap index: scene A˜ø) C<: not a remap index: resource Aèø)  sha256Aˆù) !import_sha256A¸ù) text_sha256Aèù) remap.jsonA˜ú) !curve_changedAÈú) SL: Timer: wait_time must be more than 0A¨û) 70 has no registered classAèû) 3, cannot take property A¨ü)  in AÈü) ¯¨ is drawn as its placeholder: that slot is composed on the CPU, so it cannot be liveAˆþ) E> (build the project again with AØþ) )"it (no Rive file)A˜ÿ) -&artboard input for AØÿ) ib is drawn as its placeholder: the project has no AØ€* ViewModel "Aˆ�* x and the scene is in no Rive project (no rive.yaml above it)A˜‚* %" names no fileAÈ‚* screen_Aè‚* 92) has no binding target "A¸ƒ* 3,binding-target-missingAøƒ*  , but A˜„*  binds A¸„* 70: an output is only readAø„* !, an output, A¨…* %: it takes noneAØ…* # target, with Aˆ†* “Œ target takes the view model's value as it is (or through a converter)A¨‡* OHremove scale, offset and convert: a Aˆˆ*  through A¸ˆ* 3,the global view model Aøˆ* %the view model A¨‰* %" or above it, A؉* 5. (in the data context "A˜Š* 1* has no property at "AØŠ* #its triggers: Aˆ‹* /(its bindable paths: AÈ‹* /(binding-path-unknownAˆŒ* +$ fires a trigger (AÈŒ*  property: AøŒ* �ˆa signal binding's path names a trigger; the view model's triggers: A˜Ž* binding-typeAÈŽ* çàa boolean one a boolean or a number, a color one a color, a string one a string, an enum one an enum or a numberA¸�* ±ªthe converter's result must be of a kind the target takes: a number target a number, Aø‘* íæa string one a string, an enum one an enum (by its key) or a number (its index); a converter turns one into anotherAø“* »´a number target takes a number, a boolean one a boolean or a number, a color one a color, AÈ•* 70, which it cannot hold (Aˆ–* ", gives A¸–* 92, through the converter "Aˆ—* +$: it cannot drive AÈ—* 1*nothing (it takes no Aˆ˜* !" turns into A¸˜* 5., which the converter "Aø˜*  to "A˜™* UN", which the scene's data does not haveAø™* =6 of the global view model "AÈš* 70its global view models: Aˆ›* C< declares no global view modelAØ›* •Žthe scene has no data (no ViewModel file, and no Rive project above it)Aøœ* 3,binding-global-unknownA¸�* UNthe scene's view model does not resolveA˜ž* A:the scene names no view modelAèž* E>docs/formats/RSCN.md "Bindings"A¸Ÿ* ‰‚set the scene root's view_model to a ViewModel sub_resource; see AØ * 1*binding-no-view-modelA˜¡* )"camera attributesAØ¡* #primitive meshAˆ¢* ' artboard textureA¸¢* ÉÂgive one of its materials (or a sprite's texture, a decal's slot) an ArtboardTexture sub_resourceA˜¤* kdset its environment to an Environment sub_resourceA˜¥* _X to a CameraAttributesPractical sub_resourceAˆ¦* set its A¨¦* c\set its material to a FogMaterial sub_resourceA˜§* •Žgive it a primitive mesh (BoxMesh, SphereMesh, CylinderMesh, PlaneMesh)A¸¨* ±ªgive its mesh a material (a StandardMaterial3D), or bind material_override:<property>Aø©* ­¦set its material_override to a StandardMaterial3D, or bind mesh:material:<property>A¸«* ' global_position:Aè«* ' screen_position:A˜¬*  scale A¸¬* offset Aج* ;4convert degrees_to_radiansA¨­* SL and the node has no script to emit itAˆ®* % does not emit A¸®* un; a node with a script may emit any signal (emitSignal)A¸¯*  emits Aد* =6 emits no signal of its ownA¨°* 3,binding-signal-unknownAè°* event_firedA˜±* G@it is no shader parameter targetAè±* ]Vmaterial_override:shader_parameter/<name>:xAز* ‡€write material_override:shader_parameter/<name>, a component as Aè³* {tset its material_override to a ShaderMaterial sub_resourceAø´* ÝÖgive its primitive mesh a ShaderMaterial as its material, or bind material_override:shader_parameter/<name>Aè¶* )" has no next_passA¨·* ©¢set next_pass on the material to a ShaderMaterial, or bind fewer next_pass: stepsAè¸* 3,, not a ShaderMaterialA¨¹* ?8material_override:<property>Aø¹* ža shader_parameter/ target binds a ShaderMaterial's uniform; a StandardMaterial3D's fields are AÈ»* G@its ShaderMaterial has no shaderA˜¼* wpset the material's shader to a .wgsl Shader ext_resourceA˜½* )" has no uniform "Aؽ* its shader Aˆ¾* #its uniforms: A¸¾* kdthe shader declares no uniform a binding can driveA¸¿* x" is a texture uniform: a texture is neither bound nor keyedAÈÀ* }v = ExtResource(...)); bind a number, bool or colour uniformAØÁ* v^set the texture in the scene (shader_parameter/ÐI€K KàÏAØÂ* -&) has no component A˜Ã* G@bind it whole: shader_parameter/AèÃ* 5. components: it has no A¨Ä* :xAÈÄ* -&: shader_parameter/AˆÅ* bind one of A¸Å* ›” that is no colour: a binding or a key drives a number, a bool or a colourAèÆ* !" is a whole A˜Ç* MFbind a component: shader_parameter/AøÇ* vec2<f32>A¨È* vec3<f32>AØÈ* vec4<f32>AˆÉ* vec2<i32>A¸É* vec3<i32>AèÉ* vec4<i32>A˜Ê* Stexture_2d<f32>ã ã@ã°t¤ 0¤ `¤ �¤ À¤ 𤠥 AøÊ* A: has no binding targets; see AÈË* !its targets: AøË* G@: its bindings resolve against "AÈÌ* 70" holds the view model "AˆÍ* 1*, but its data_path "AÈÍ* " names AèÍ* 1*the instanced scene "A¨Î* "; see AÈÎ* �ˆ" in the instanced scene, or point data_path at a property holding "AèÏ*  name "AˆÐ* /(view-model-instancedAÈÐ* !the scene's, AøÐ* OHnone (the scene names no view model)AØÑ* …~: its bindings resolve against the outermost scene's view modelAèÒ* %data_path; see A˜Ó* ÇÀname the same view model in both, or none in the instanced scene, or give its instancing node a AèÔ* ' the view model "A˜Õ* ", which AÈÕ* position:xAøÕ* position:yA¨Ö* position:zAØÖ* rotation:xAˆ×* rotation:yA¸×* rotation:zAè×* +$rotation_degrees:xA¨Ø* +$rotation_degrees:yAèØ* +$rotation_degrees:zA¨Ù* scale:xAÈÙ* scale:yAèÙ* scale:zAˆÚ* +$keyed-node-missingAÈÚ* G@", which is no node of the sceneA˜Û* e^the keys are kept, and nothing is written thereAˆÜ* E>: the scene declares no Event "AØÜ* kd: an event is keyed on the scene's root (".") onlyAØÝ* 1*: not a signal's nameA˜Þ* ' has no rotationAÈÞ* -& has no animatable Aˆß* e^: a blend shape is keyed as blend_shapes/<name>Aøß* �z has no blend shapes (a MeshInstance3D of a model's mesh has)Aˆá* E>: the mesh has no blend shape "AØá* G@ has no bones (a Skeleton3D has)A¨â* slbones/<bone>:quaternion or bones/<bone>:scale:x (y, z)A¨ã* qj: a bone is keyed as bones/<bone>:position:x (y, z), A¨ä* ?8: the skeleton has no bone "Aøä* 5.keyed-property-mismatchA¸å* UN with keys of the wrong kind (it takes A˜æ* KDnavigation/3d/use_edge_connectionsAøæ* 3,, not a number above 0A¸ç* E>navigation/3d/default_cell_sizeAˆè* IBnavigation/3d/default_cell_heightAèè* _Xnavigation/3d/default_edge_connection_marginAØé* _Xnavigation/3d/default_link_connection_radiusAÈê* YRnavigation/3d/merge_rasterizer_cell_scaleA¸ë* )"no object named 'Aøë* ' nothing selectedA¨ì* ' no active objectAØì* ' mode (current: Aˆí*  requires A¸í* +$invalid argument: Aøí*  with id A¨î* -&no material named 'Aèî* %no bone named 'A˜ï* 5.no vertex group named 'AØï* )"no action named 'A˜ð* /(no shape key named 'AØð* 1* is not available yetA˜ñ* %nothing to undoAÈñ* %nothing to redoAøñ* 1*no checkpoint named 'A¸ò* 70not a Hedra model file: Aøò* KD version` lists the ones it reads)AØó* ; `Aøó* =6 (this build writes schema AÈô* IBunsupported scene schema version A¨õ* ' ' already existsAØõ* #project file 'Aˆö* 3,serialization failed: AÈö*  column Aèö*  at line A˜÷* % required by AÈ÷* /( bytes but received Aˆø* : expected A¸ø* QJmissing binary portion of binary glTFA˜ù* UNexternal reference in slice only importAøù* ;4unsupported image encodingAÈú* 3,unsupported URI schemeAˆû* !invalid glTF:A¸û* -&Index out of boundsAøû* !Invalid valueA¨ü* Missing dataAØü* ;4Size exceeds system limitsA¨ý* 1*Unsupported extensionAèý* , offset A˜þ* !Invalid byte AÈþ* ]VEncoded text cannot have a 6-bit remainder.A¸ÿ* /(Invalid last symbol Aøÿ* -&unsupported versionA¸€+ #not glTF magicAè€+ OHcould not completely read the objectAÈ�+ UNJSON chunk length exceeds that of sliceA¨‚+ WPBIN\0 chunk length exceeds that of sliceAˆƒ+ ?8was not expecting JSON chunkA؃+ A:was not expecting BIN\0 chunkA¨„+ +$unknown chunk typeAè„+ )"nothing to exportA¨…+ 1*' (use .gltf or .glb)Aè…+ ?8unsupported file extension 'A¸†+  up=A؆+ ;4invalid axis pair forward=A¨‡+ =6glTF serialization failed: Aø‡+ 3,' is not a PNG or JPEGA¸ˆ+ +$cannot read glTF 'Aøˆ+ A:unsupported glTF feature in 'Aȉ+ !General errorAø‰+ IO errorA˜Š+ )"Invalid parameterAØŠ+ -&Unsupported versionA˜‹+ %Unknown versionAÈ‹+ -&Unsupported featureAˆŒ+ A:Bitstream version unsupportedAØŒ+ -&Buffer decode errorA˜�+ 70Allocation exceeds inputAØ�+ 1*Decode limit exceededA˜Ž+ 1*the levels of detail AØŽ+  is not 1Aˆ�+ 70 vertices for a mesh of AÈ�+ : levels of Aø�+ )": a range's slot A¸�+ KD's indices are not whole trianglesA˜‘+ : level A¸‘+ KD: more indices than the bytes holdA˜’+ ?8: an index past the verticesAø’+ SLmesh: uploaded again after its releaseAØ“+ eô`AÈ”+ aZ: queueFree: the scene's root cannot be freedA¸•+ IBtween: started with nothing to doA˜–+ yrtween: an endless loop (every step takes no time): killedA¨—+ =6: tween: no script to call Aø—+ no method A¨˜+ ‹„a script's node is set once it is attached: read it from _ready onAÈ™+ ‹„a script's tree is set once it is attached: read it from _ready onAèš+ timer: Aˆ›+ -& (ARTBOARD_SOURCES)AÈ›+ KD has no source: the project names A¨œ+ %artboard input AØœ+ 92 is not one of its valuesA¨�+  index AÈ�+ " binds Aè�+ -&global view model "A¨ž+ finishedAÈž+ ÇAÖž+ ð?Aàž+ øðüÀï?‰gk*à? ø�ø�ï?äü°¨À�?qBJžeDï?±Õ¹—?|ðÁï?3x›‚Ÿ?Àì³Ìî?`½þ¹‡ž£?g·ð«1‘î?üÜ2öXt§?tåÉ:Wî?¿qqÝB«?î?¦bÀ0 ¯?ІøãÖåí?áz£î6e±?Û�¹v`®í?ÑÑ–×A³?4,¸T¶wí???µ?ÔAÔAí?LkåŠÒð¶?tÀn�µ í?!›1ÖEø? ›‰VØì?cÕJ:m’º?‘á^³¤ì?CÇ[�T^¼?ÇqÇqì?æò*n'¾?ðøÃ�?ì?»êÛ1‘ì¿?àÀ�ì?YŽÐ|~×À?÷”‰+Ýë? g/Õ*·Á?кÁù¬ë?#õøR•Â?‹3Ú=l}ë?t� üqÃ?Oè´�Në?}Ël+MÄ?Ù€l@6 ë?8´¡ãå&Å?(¯¡¼†òê?Ô“§p0ÿÅ?pÅpÅê?ÒçÖÆ?¾cj`ï˜ê? Ù‰«Ç?mЦmê?É e È?¤A¤Aê?´VôœZRÉ?KzùÓê?cµâ¼#Ê?Ù3•Žìé?ó¿€NÉóÊ?¡äNÑÂé?ÖŒ-t†ÂË?š™™™™™é?"ššÇ÷�Ì?r¸ øäpé?‘»Ok!\Í?àéÖü°Hé?æò*n'Î?)âÐIû é?6YÜË­ðÎ?úœ�Áùè?+>^m¹Ï?Ó0�Óè?Aд”%@Ð?ªók¹¬è?ã�sâ$£Ð?J°«ðå†è?ÕJ®ù‹Ñ?†a†aè?¦««\gÑ?ݾ²z—<è?û™iÁ˜ÈÑ?è?fyÏûA)Ò?@ýôç?£†ÞZ‰Ò?ô}A_Ðç?1áºâèÒ?Ãìà"­ç?U}˜šÝGÓ?Ȥx�LŠç?êEiUL¦Ó?±©4äÜgç?䧆†0Ô?F]tÑEç?Â^‹aÔ?¼ÞF($ç?¡xw•_¾Ô?p� \àç?-ø-‡­Õ?Ç7Ck÷áæ?lZEwvÕ?lÁlÁæ?Ê X¿½ÑÕ?�rSÑ<¡æ?•ǹò‚,Ö?h�h�æ?¯›ȆÖ?ù"Qjìaæ?ä¡+ªŽàÖ?d! YÈBæ?лö×9×?@bwú#æ?¢GÝ_¥’×?X`�æ?ï‚;øê×?çи[çå?‹ÚÑBØ?W“+ˆÉå?[BÁ†3šØ?ÀZk¬å?Çb6‡ñØ?íX�0ÒŽå?û!”GÙ?:kP<íqå?‹à�•�Ù?UUUUUUå?’Û4biÒ¿ëôH 9å?Ô¸mEÒ¿øâêå?•kZc™¿Ñ¿PPå?sû¬Ë\kÑ¿9/§àåä?|ä'‚ŽÑ¿n¯%‡¸Êä?ãbag-Äп[¿R Ö¯ä?bXM`8qпgвã9•ä?‘Æ&V®п{®Gázä?y³³l™Ï¿šÏõÇË`ä?æÿÜä­õοûÙbeøFä?çÿSο‡Õ%f-ä?@‰Ô°=±Í¿ä?{^eò7Í¿û°?ûã?qðÆûoÌ¿©ä¼,âã?­Ø;8‡ÐË¿ç«{¤•Éã?=Î[WØ1Ë¿;±;±ã?ãÙŠ<í“Ê¿c,™ã?d–ÄöÉ¿8�8�ã?÷ÜZZÉ¿HÞó�iã?Œþ8믾ȿÁx+ûRã?£QeÁ#È¿²¼W[ä:ã?sLD…�‰Ç¿¿+Jã#ã?¼ju‹ðÆ¿�Ñ0 ã?:Œ¾NWÆ¿h/¡½„öâ?²=Tk@¿Å¿—€KÀ%àâ?�µ¡äå'Å¿ ,�MûÉâ?aµ3ƒ=‘Ä¿@+­´â?Ì(™¥Eûÿžä)Ažâ?�°üeÿ°ˆ°ˆâ?:�† aÑ¿5'�¸Psâ?ÂI*q=¿ñ’€p"^â?*÷#~+ªÁ¿’$I’$Iâ?|ä'‚ŽÁ¿ß¼šxV4â?:žµ˜…À¿xû!�·â?fÕÛ9‘è¿¿ÙÀg G â?  ƒ9Ǿ¿pÁ}÷á?¢F„c'§½¿t¸?;ïâá?#K¼Xˆ¼¿�¢­Ïá?[­�Èj»¿)íF@J»á?8¼±@vNº¿–{a¹§á?‰IY]^3¹¿œ¢Œ€S”á?ðã@/~¸¿��á?áÀê Ó·¿ysB‰ná?Ë‘—MZ鵿 'u_[á?¬~ ]Ó´¿;Í _Há?dîѧõ½³¿È5È5á?¥G¤ª²¿30]çX#á?gUFÑ;—±¿á?:žµ˜…°¿ðþðþà?|¸À1ꮿ�œækõìà?̲ÝÍsˬ¿–F�¨ Ûà?üûÐò®ª¿;Ú¼OqÉà?C³Ÿª”¨¿È�%ìæ·à?X»Ôò”|¦¿§h �¦à?êã-Ô®f¤¿T 9?•à??�/óR¢¿„B!„à?DDç‰]A ¿Æ÷G &sà?òªìÒcœ¿ü©ñÒMbà?¿ÊÈ(%I˜¿4×÷—Qà?Á ˜%©2”¿AAà?GX“XV �¿^µ‘0à?ª¢ˆ£H$ˆ¿�@ à?qÞˆu€¿à?5‹XYp¿à?Aè®+  #leftAˆ¯+  #rightA¨¯+ )"velocity_computedAè¯+ path_changedA˜°+ ' waypoint_reachedAȰ+ link_reachedAø°+ #target_reachedA¨±+ -&navigation_finishedAè±+ ,"sources":[A˜²+ ,"process":AȲ+ ,"ready":Aø²+ ,"scripts":A¨³+ !,"artboards":Aس+ -&,"artboardRedraws":A˜´+ ,"rebuilds":AÈ´+ ,"globals":Aø´+ ,"bindings":A¨µ+ ,"hover":Aص+ ,"overlaps":Aˆ¶+ ,"rays":A¨¶+ ,"bodies":Aض+ ,"areas":Aˆ·+ #,"animations":A¸·+ ,"states":[Aè·+ )","state_machine":A¨¸+ ,"sources":Aظ+ ,"sounds":Aˆ¹+ ,"playing":A¸¹+ /(,"audio":{"players":Aø¹+ ,"reached":A¨º+ ,"moving":Aغ+ ¸ 0,"navigation":{"agents":ŸÞàÃð4÷?�æyÌ׿é,jx÷? Âîo׿ µú`òö?àQã׿}Œ¦Ñö?x(8[¸Ö¿Ñ´Å I±ö?x€�U]Ö¿º /3G‘ö?vÐÖ¿#B"Ÿqö?��†Ê¨Õ¿Ù¥™ORö?PVCOÕ¿Ä$�ªV3ö?@kÃ7öÔ¿Ü�k³ö?P¨ý§�Ô¿L\ÆRdöõ?¨‰9’EÔ¿O,‘µgØõ?¸°9ôíÓ¿Þ�[˼ºõ?p�DΖӿxÙòa�õ? ½@Ó¿‡VFV€õ?€FïâéÒ¿ÓkçΗcõ?à08”Ò¿“§â%Gõ?ˆÚŒÅ>Ò¿ƒEBÿ*õ?�')áéѿ߽²Û"õ?øH+m•Ñ¿×Þ4G�óô?ø¹šgAÑ¿@(ÞÏCØô?˜ï”ÐíпȣxÀ>½ô?Û¥šÐ¿Š%àâô?¸cRæGп4„Ô$ˆô?ð†E"ëÏ¿ -Îmô?°uJGÏ¿T9ÓÙSô?0=D¤Î¿Z„´D':ô?°éD οûøAµ ô?ðw)¢`Í¿±ô>Ú‚ô?�•ÀÌ¿�þW]�îó?‰V) Ì¿éL  ÙÕó?���Ë¿+ÁÀ`½ó?ÐÓÌÉâÊ¿¸Úu+$¥ó?�.@EÊ¿ПÍ"�ó?ðhw¨É¿z„Å[uó?0Him É¿â6­IÎ]ó?ÀE¦ qÈ¿@ÔM˜yFó?0´�ÖÇ¿$ËÿÎ\/ó?pb<¸<Ç¿I ¡uwó?`7›š£Æ¿�9>7Èó? ·T1 Æ¿Aø•»Nëò?0$v}sſѩ Õò?0Â�{ÜÄ¿*ý·¨ù¾ò?ÒQ,FÄ¿« z©ò?ƒ¼Š°Ã¿0µ`r“ò?Ik™ÿõ¡WWú}ò?@¤�T‡Â¿¿;›³hò? yø¹óÁ¿½õ�ƒ�Sò? ,%È`Á¿;ɪ·>ò? ÷WÎÀ¿¶@©+*ò? þIÜ<À¿2AÌ–yò?€K¼½W¿¿›üÒ ò?@@–7¾¿ HMIôìñ?@ù>˜½¿ie�RõØñ? ØNgù»¿|~W#Åñ?`/ yܺ¿é&Ët|±ñ?€(çÃÀ¹¿¶, žñ?Àr³F¦¸¿½p¶{°Šñ?¬³�·¿¶¼ï%Šwñ?8Eñt¶¿Ú1L5�dñ?€‡m^µ¿Ý_'�¹Qñ?à¡Þ\H´¿LÒ2¤?ñ? jMÙ3³¿Úùr‹,ñ?`Åøy ²¿1µì(0ñ? b˜F±¿¯4„Úûñ?Òjlú¯¿³kNîõð?@wJ�Ú­¿ÎŸ*]äð?…ä켫¿!¥,cDÒð?À@‰¡©¿˜â|§Àð?À3Xˆ§¿Ñ6ƃ/¯ð?€Ög^q¥¿9 ˜Û�ð?€eIŠ\£¿ßçR¯«Œð?@dãI¡¿û(N/Ÿ{ð?€ë‚Àrž¿�5Œµjð?€RRñUš¿,ùì¥îYð?€�Ïb=–¿�,ÑÍIIð?ªŒû(’¿©­ðÆÆ8ð?ù {1Œ¿©2ye(ð?ª]5„¿Hsê'$ð?ìÂx¿•±ð?$y `¿ú&÷àï?�„óïo?têa¡ï?=5A܇?.™�°cï?€ÂģΓ?Í­î<ö%ï?‰ÁŸ›?ç‘Èéî?ÎØ°¡?«±Ëx€®î?ÀÐ[Š¥?› �¢tî?€Ø@ƒ\©?µ™ ƒ‘:î?€Wïj'­?Vš` àî?À˜å˜u°?˜»wåÊí? ãõS²?‘| ò’í?8‹Ý.´?Î\ûf¬\í?ÀW‡Y¶?�Þ^ª,'í?j5vÚ·?Í,k>nòì?`NC«¹?y§¢m¾ì?` »Çx»?m7m&‹ì? ç2C½?X]½”Xì?`Þq1 ¿?ŒŸ»3µ&ì?@‘+gÀ??çìîƒõë?°’‚…GÁ?Á–ÛuýÄë?0ÊÍn&Â?(J† •ë?PŦ×Ã?,>ïÅâeë?3<ÃßÃ?‹ˆÉgH7ë?€zk6ºÄ?J0!K ë?ðÑ(9“Å?~ïò…èÛê?ð$ÍjÆ?¢=`1¯ê?�fìø@Ç?§XÓ?æ‚ê?ðõÀÈ?‹s ï@Wê?€öT)éÈ?'K«�*,ê?@ø6»É?Ñò“ ê?,í‹Ê?<Û$Ÿ×é?Ð\Q[Ë?�±Ç%®é?À¼Ìg)Ì?/Ηò.…é?`HÕ5öÌ?uK¤îº\é?ÀF4½ÁÍ?8Hç�Æ4é?àϸŒÎ?æRg/O é?�À UÏ?�×ÿŽRæè?¸lÐ?|̟οè?Г¸qÐ?þÚÀ™è?p†žkÔÐ?û#ª'tè?ÐK3‡6Ñ?š³¬Oè?H#g ˜Ñ?U>eèI*è?€ÌàÿøÑ?`ô•è?hc×_YÒ?)£àc%âç?¨ 0¹Ò?­µÜw³¾ç?`CrÓ?Â%—gª›ç?ìm&wÓ?Wòyç?0¯ûOÕÓ? ÖÛÊVç?à/ãî2Ô?k¶Oæ?<[B‘l~<•´M0æ?A]Hê¿�öëÿïæ?S-â€~¼€—†ç?Ry qfÿ{<égüÿ/ç?$‡½&⌉<¹{F0é?v˜KN€.˜Ýÿ¯é?7“ZŠà@‡¼fûIíÿÏé?à›ÁÎ?O*°ê?_?ÿ<ýi¼Ñ®×ÿÏê?´p�ç>‚¼xQîÿïê?£Þà>j<[ eÛÿë?¹ 8ÈZO†ÐEÿŠ<@‡ùÿ�ë?ùÖwþ|ððô?S… ‰—<ÑKÜõ?6¤fqe`ɰõ?À ¿ AŸ¼¼IÐõ?)G%û*�˜¼‰z¸çÿïõ?i퀷~”¼A˜Û+ úôôllllllllllllllllllllllllllllllllllllhhhhhhhhdddddddddddddddddddddddddddddddddddddddddddddddddddddddddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdddddddddddddddddddddddddddd`````````````````````````````````````````````````````````````````````````ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````ddddddddddddddddddddhhhdddddddd````````\\\\\\\\XXXXTTTTTTTTPPPPPPPPLLLLLLLLHHHHHHHHDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDHHHHHHHHHHHHLLLLLLLLPPPPPPPPTTTTXXXXXXXX\\\\````````ddddddddddddddddddddddddddddddddddddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddA¨û+ ùôôIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIQQQQQQQQYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY]]]]]YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY]]]]]YYYYYYYYYYYYYYYYYYYYYYY]]]]]YYYYYYYYYYYYYYYYYYYYYYY]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]YYYYYYY]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYUUU]]]]]]]]aaaaaaaaeeeeiiiimmmmqqqqqqqqyyyyyyyy}}}}}}}}……………………‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰……………………����}}}}}}}}yyyyyyyyqqqqmmmmmmmmeeeeaaaaaaaa]]]]]]]]YYYYYYYYYYYYYYYYYYYYYYYYYYYYQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYA¸›, ûôôI’Û$m¶ÿH‘Ú#lµþG�Ù"k´ýF�Ø!j³üEŽ× i ² û D • æ 7 ˆ Ù * { Ì % ~ × 0‰â;”íFŸøQª\µgÀrË$}Ö/ˆá:“ìEž÷P©[´ f¿qÊ#|Õ.‡à=š÷T ± !c!¼!"n"Ç" #y#Ò#+$„$Ý$6%�%è%A&š&ó&L'¥'þ'W(°( )b)»)*m*Æ*+x+Ñ+*,ƒ,Ü,5-Ž-ç-@.™.ò.K/¤/ý/V0¯01a1º12l2Å23w3Ð3)4‚4Û445�5æ5?6˜6ñ6J7£7ü7U8®89`9¹9:k:Ä:;v;Ï;(<…<â<?=œ=ù=R>«>?]?¶?@h@Á@AsAÌA%B~B×B0C‰CâC;D”DíDFEŸEøEUF²FGlGÉG"H{HÔH-I†IßI8J‘JêJCKœKõKNL§LMYM²M NdN½NOoOÈO%P‚PßP”—”ð”Q•²•–t–Õ–6———ø—Y˜º˜™|™Ý™>šŸš›a›Â›#œ„œåœF�§�žižÊž+ŸŒŸíŸN ¯ ¡q¡Ò¡3¢”¢õ¢V£·£¤y¤Ú¤;¥œ¥ý¥^¦¿¦ §�§â§C¨¤¨©b©¿©ªyªÖª3«�«í«J¬§¬­a­¾­®x®Õ®2¯�¯ì¯I°¦°±`±½±²w²Ô²1³Ž³ë³H´¥´µ_µ¼µ¶v¶Ó¶0·�·ê·G¸¤¸¹^¹»¹ºuºÒº/»Œ»é»F¼£¼½]½º½¾t¾Ñ¾.¿‹¿è¿IÀªÀ ÁlÁÍÁ.Â�ÂðÂQòÃÄtÄÕÄ6Å—ÅøÅYƺÆÇ|ÇÝÇ>ÈŸÈÉaÉÂÉ#Ê„ÊåÊF˧ËÌiÌÊÌ+ÍŒÍíÍNίÎÏqÏÒÏ3ДÐõÐVÑ·ÑÒyÒÚÒ;ÓœÓýÓ^Ô¿Ô Õ�ÕÚÕ3ÖŒÖåÖ>×—×ð×IØ¢ØûØTÙ­ÙÚ_Ú¸ÚÛjÛÃÛÜuÜÊÜÝtÝÑÝ.Þ‹ÞèÞEߢßÿß\à½àááàáAâ¢âãdãÉã.ä“äøäaåÊå3æœæ çvçãçPèÁè2é£éê…êöêgëØëQìÊìCí¼í5î®î'ï ïðšðñ”ñòŽò óˆó ô’ôõœõ!ö¦ö+÷°÷9øÂøKùÔù]úæúoûøû�ü ý“ýþ¥þ.ÿ·ÿ@ÉRÛdívÿˆš#¬5¾GÐY â k ô }  �  ¡ *³<ÅJÏTÙ^ãhínïpñnëhåbß\ÙRËD½6¯(¡ƒôeÒ? ¬ !†!ó!`"Í"2#—#ü#a$Â$#%„%å%F&§&'i'Æ'#(€(Ý(:)—)ô)Q*ª*+\+µ+,g,À,-r-Ë-$.}.Ö.//ˆ/á/:0“0ì0E1ž1÷1P2©23[3´3 4^4¯45Q5¢5ó5D6•6æ677ˆ7Ù7*8{8Ì89n9¿9:a:²:;T;¥;ö;G<˜<é<:=‹=Ü=->~>Ï> ?q?Â?@d@µ@AWA¨AùAJB›BìB=CŽCßC0D�DÒD#EtEÅEFgF¸F GZG«GüGMHžHïH@I‘IâI3J„JÕJ&KwKÈK!LzLÓL,M…MÞM7N�NéNBO›OôOMP¦PÿPXQ±Q RcR¼RSnSÇS TyTÒT+U„UÝU6V�VèVAWšWóWLX¥XþXWY°Y ZbZ»Z[m[Æ[\x\Ñ\*]ƒ]Ü]5^Ž^ç^@_™_ò_K`¤`ý`Va¯ababºbclcÅcdwdÐd)e‚eÛe4f�fæf?g˜gñgJh£hühUi®ij`j¹jkkkÄklvlÏl(m�mÚm3nŒnån>o—oðoIp¢pûpTq­qr_r¸rsjsÃstutÎt'u€uÙu2v‹väv=w–wïwHxAÈ», ü-ôHáš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@Háš@{–@®G‘@ázŒ@®‡@33ƒ@ÍÌ|@33s@š™i@)\_@R¸N@×£0@ÍÌ @…ëÑ?…‹?q= ?R¸? ×£=…ë¾€¿ffÆ¿Há À¸5À®GaÀázdÀìQˆÀ{žÀHá²ÀffÆÀ×£ØÀ®GéÀìQøÀ\�Áö(Á¤p Á= Á¸Á®Áff&ÁÃõ,Á333Á®G9Á33?Á®GEÁ33KÁ®GQÁ33WÁ®G]Á)\cÁ¤piÁ…oÁš™uÁ…{Ááz€Á¸ƒÁ{†Á33‰Á\�ŒÁ�Â�ÁÍÌ’Á®•Á×£˜Á…›ÁázžÁ)\¡ÁìQ¤Á33§Áö(ªÁ¸­Á{°Á¸³Áq=¶Á¤p¹Á\�¼Á®¿Á\�ÂÁR¸ÂÁ�ÂÅÁ= ÉÁázÌÁ ×ÏÁ®ÕÁffØÁ= ÛÁ…ÝÁàÁázâÁÃõäÁ¤pçÁ{êÁR¸ìÁš™ïÁ\�òÁ…õÁ\�øÁš™ûÁ×£þÁ ×ÂffÂ…ëÂ)\ÂR¸ÂÂff  ÂR¸ ÂázÂö(Â�ÂÂìQÂHá¤pÂÂ…Â= Â\�Â{š™¸!š™"¸$Â×£%¸'Â×£(¸*Â×£+¸-Â×£.Âö(0š™1ÂÃõ2®G4ÂR¸5®G7Â9ÂR¸:Â)\< ×=®G?Â×£@ÂBÂìQCÂ×£DÂÃõEÂìQG®HÂ= J¤pKÂHáLÂ)\N ×OÂìQQÂÍÌRÂq=TÂR¸UÂ33W®XÂö(Zš™[Â…ë\ÂÃõ\Âff^Â`ÂR¸aÂ\�cÂázfÂ33hÂÍÌi¤pkÂ= mš™nÂö(p®qÂö(sš™tÂ= v¤pw ×xÂq=zÂ×£{¸}®~¸€ÂÃõ€ÂÍÌ�®‚¸žƒÂ𙄠ׄ¸ž…Âff†Â�B‡Â{ˆÂáz‰Â®GŠÂ\‹Â ׋¸žŒÂáz�ÂffŽÂÍL�Â.�Â= ‘Â)Ü‘Âö¨’ÂÃu“Â33”…딸ž•ÂìQ–—Âq½—ÂÃu˜Â33™ÂÃõ™Âq½šÂÃõšÂÍÌ›Â×£œÂáz�ÂÍLžÂ¸ŸÂ¤ðŸÂ®Ç Â×£¡Â€¢ÂHa£ÂìQ¤ÂÍL¥Â®G¦Â×#§Â¤ð§ÂR¸¨Â¸ž©Â…ªÂ…k«ÂÍL¬Âö(­Â®Â ×®Â×£¯ÂÃu°Â W±ÂHa²Â¤p³Âáz´Â…µÂ\�¶Âš™·Â¸ž¸Â×£¹Â×£ºÂö¨»Âö¨¼Âö¨½Âö¨¾Âö¨¿Âö¨ÀÂö¨ÁÂö¨ÂÂ×£ÃÂR8ÅÂö(ÆÂšÇÂÈÂÃõÈÂÃõÉÂ…ëʸË ×ËÂ\�ÌÂ)\ÍÂ.ÎÂáúÎÂ�ÂÏÂ=ŠÐÂÍLÑÂ= ÒÂ�ÂÒ€ÓÂ33ÔÂÃõÔÂHáÕ ×ÖÂÍÌ×Â®ÇØÂ�ÂÙÂ�ÂÚÂq½ÛÂR¸ÜÂR¸ÝÂ3³Þ®ßÂö¨àÂףḞâÂ{”ãÂ\�äÂ=ŠåÂ…æÂázç¤pèÂ)\éÂ�Bê¸ëÂìÂHáìÂÍÌíÂÍÌîÂìÑï ×ðÂÍÌñÂö¨òÂ…kóÂö(ôÂ\õÂÃõõ ×öÂ3³÷Â=ŠøÂHaùÂR8úÂ{ûÂ…ëûÂq½üÂ{”ýÂHaþÂ)\ÿÂq=Ã=Êà WÃ)ÜÃHaÃ×ãÃffÃ×ãÃHaøÞÚYÃ{ÔÃÍLÃÅÃq=Ã3³Ãö(Ã)œÃ\ Ã�‚ äð Ã)\ Ã®Ç ÃR8 Ã…« Ú Ã�‚ ÃHá Ãq= øž ÃÃHaÃÅÃf&Ã=ŠÃÃõÃöhÃHáÃHaÃfæÃ3sÃ�Ãì‘ÃH!ä°Ãá:ÃÅÃÍLÃìÑÃf¦Ã…+îÃ.Ã…«ÃH!Ãì‘Ã�Ã3sÃfæø^øÞÃ)\ÃìÑÃá:Ã{”øÞÃ×#Ã�‚ÃHáÃ�B ÃH¡ Ã!ÃHa!ÃÀ!ÃH!"Ãq}"øÞ"Ã@#ÃH¡#Ã$Ãöè#ÃRx$Ã�%î‡%Ã&ÃRx&Ãfæ&ÃÍL'Ã…«'î(ÃHa(Ãáº(Ã{)Ãn)ÃÅ)ø*ÃÃu*Ã\Ï*Ãö(+î‡+Ã×ã+Ãq=,Ãf¦,Ã= -ÃHa-Ãf¦-ÃHá-Ã{.Ã=J.Ã�‚.ÃÅ.Ã\/Ãff/Ãq½/à 0äp0îÇ0ø1ÃÃu1ÃÍÌ1ÃH!2ÃRx2ÃÍÌ2ÃH!3Ã3s3ÃÅ3Ã{4ÃHa4î4ÃRø4Ã@5Ã=Š5ÃìÑ5Ã3s6ÃR¸6Ã7Ã�B7Ã…7ÃÅ7Ã8Ã�B8Ãq}8ÃR¸8Ãî8Ãf&9ø^9Ã{”9Ã\Ï9Ã= :îG:î‡:ÃÍÌ:Ã{;ÃHa;ä°;ÃÍ <ÃÍŒ<Ãf&=îÇ=ø^>à ×>Ã@?Ã=Š?Ã�Â?ÃRø?Ã…+@ø^@Ãì‘@îÇ@Ãáú@Ã.Aø^AÃì‘AÃÅAÃ3óAÃ×#BÃ{TBÃ…BÃõBÃ×ãBøCÚYCà —CÚÙCÃH!DÃ…kDÃáºDÃ{EÃRxEÃ3óEÃRxFÃGÀGäðGÃÍLHøžHà —HÃfæHÃÃ5IÃ�‚IÃ\ÏIÃ)JÃöhJÃ3³JÃqýJîGKÃ\�Kà ×KøLÃffLîLÃÃõLÃá:MÃ�‚MîÇMÃÍ NÃìQNà —NÃ)ÜNÃH!OÃöhOîOÃ3óOÃR8PÀPÃÅPÃÍ QÃ{TQøžQÃfæQä0RÃázRÃÅRÃ\SÚYSÃ×£SÃîSÃÃ5TÀTîÇTÃ\UÃ{TUÚ™UøÞUÃH!VÃffVÃö¨VÃfæVÃ)WÃ\OWÃ…WÃáºWÃÃõWÃÃõXîGYøžYÃRøYÃ{TZÃ3³ZÚ[À[Ã…ë[à W\Ã�Â\ä0]øž]Ã= ^Ã3s^Ã{Ô^ÃÃ5_Ú™_Ã= `Ú™`Ãq}aà bÃ{”bø^bÃ{ÔbÃìQcÃ)ÜcäpdÃ= eÃö¨eÃ=JfÃH¡fÃEgÃfægÀhÃìià —iÃ\jÃázjøžjà køžkÃÃ5lÃ�‚lÃ×#mÃq½mÃìQnÃ×£nÃá:oÃ{ÔoÃ…kpÃ3³pÃÃ5qÃõqÃÃ5rÃõrÃR8sÃõsÃ.tÃ×#tÚ™tÃ{uÃì‘uÚvÃ×£vÃ.wÃR¸wÃxÃ\�xøyîyÃ@zÃìÑzÃHa{Ãî{ÃÃõ{À|î}ÃÍŒ}Ãì~à —~Ã)ÃH¡Ã)ÜÃ…+€Ã®g€Ã×£€Ã×ã€Ãf&�Ã…k�Ã\¯�ÃÍì�Ã%‚à W‚Ã=Š‚ÃìÑ‚ÃìƒÃ…KƒÃ…ƒÃ¸¾ƒÃ ÷ƒÃ¤0„Ãöh„Ã�¢„ÃáÚ„Ã3…ÃöH…À…Ã3³…Ã{Ô…Ãöè…Ã�†Ãö(†ÃšY†Ã…‹†Ãq½†Ã{ô†Ã…+‡ÃHa‡Ã —‡ÃÍ̇Ã�ˆÃR8ˆÃnˆÃ×£ˆÃšÙˆÃ3‰Ã3S‰Ã ·‰Ãáú‰Ã@ŠÃ…ŠÃ…ˊä‹ÃÃU‹Ã¸ž‹ÃHŒÃ×CŒÃH�ŒÃš¹ŒÃì�ÃE�Ã)|�à ·�Ã3ó�Ãö(ŽÃ¸^ŽÃÍŒŽÃqÝŽÃÍ �Ãq=�ÃÃu�ä°�Ãöè�ÃH!�ÃRX�ÃÎ�à ÷�Ãq‘ÃE‘à —‘ÃìёÒÃÍL’ÃÍŒ’Ã=Ê’Ãö“ÃE“Ã…Ë“Ã�”à 7”Ãöh”ø¾”Ã=ê”Ã{•ø>•Ã…k•à•ÃáÚ•Ã –Úy–Ã…«–à זÃ�—Ã…+—Ã{T—Ãq}—Ã¥—Ãìñ—Ú˜Ã@˜Ã®g˜Ã쑘ø¾˜Ã\ï˜ÃH!™ÃÃU™ÃÍŒ™Ãfƙøþ™Ãš9šÃ{tšÃ\¯šÃÍìšÃÍ,›Ã\o›ÃR¸›ÃœÃ WœÃ®œÃf�ÃHa�Ãáº�Ãáº�Ã= žÃ¸^žÃ… ŸÃöhŸÃ=ÊŸÃ. Ãì‘ Ã{ô ÃÃU¡ÃR¸¡Ãš¢Ãšy¢ÃšÙ¢Ãš9£Ãš™£ÃRø£Ã W¤Ã ·¤Ã ¥Ã w¥Ã ץà 7¦Ã —¦Ã ÷¦ÃÃU§Ã3³§Ã¤¨Ãn¨Ã…˨Ãö(©Ãf†©Ãå©Ã×CªÃ�¢ªÃ«Ã¸^«Ã)¼«Ãš¬ÃÃu¬ÃìѬÅ+­Ã…­ÃqÝ­ÃÃ5®Ã¤�®Ãî®Ã…K¯Ãf¦¯Ã)ü¯ÃÍL°Ãì‘°Ãΰî±Ã3³ÀÃÀÂÃ=êÂÃ{Ãø>ÃÃöhÃÃ3“Ãø¾ÃÃ=êÃà ÄÃ×CÄÃìqÄàÄÃÎÄÃqýÄÃ…+ÅÚYÅî‡ÅÃ{´ÅÃHáÅÃÍ ÆÃ 7ÆÃ�bÆÃŽÆÃnÆÃ{ÅÚÙÀä°»ÃᚷÀ¶ÃH·Ãf¦·ÃöH¸Ãöè¸Ã׃¹ÃqºÃõºÃ\O»Ãöè»ÃH�¼Ãš½Ã¤°½ÃfF¾Ã)ܾÃìq¿ÃfÀÃ)œÀä0ÁÃfÆÁÃ)\ÂäðÂî‡ÃÃqÄÃ{´ÄÃ=JÅÃàÅÃÃuÆÃ= ÇøžÇÃ{4ÈÃöÈÈÃq]ÉÃìñÉÃ׃ÊÃ\ËÃ\�ËÃ×ÌÃ=jÌÃ×ÃÌÃìÍÃ{TÍÃ…‹ÍÃáºÍÃHáÍÃHÎÃ)ÎÃÃ5ÎÃNÎÃeÎÃ)|Îä�ÎàÎÃ…«ÎÃì±ÎÃ{´ÎÃ3³ÎÃì±Îä°Îä°Îä°ÎÃì±ÎÃì±ÎÃ3³ÎÃ{´ÎÃ{´ÎÃõÎÃõÎÃõÎÃ{´ÎÃ{´ÎÃ{´ÎÃõÎÃR¸ÎÚ¹ÎÃ)¼Îø¾ÎÃHÁÎÃ�ÂÎÃ×ÃÎÃÅÎÃ×ÃÎÃ×ÃÎÃ×ÃÎÃ×ÃÎÃ�ÂÎÃ�ÂÎÃ×ÃÎÃÅÎÃfÆÎÃöÈÎÃ…ËÎÃ\ÏÎÃ3ÓÎà ×ÎÃ)ÜÎÃHáÎÃfæÎÃ…ëÎäðÎà ÷ÎÃ)üÎÃÏÃÏîÏÃöÏîÏÃ×ÏÃÏÃáúÎÃ{ôÎÃîÎîçÎÃ×ãÎÃ×ãÎÃ×ãÎÃ×ãÎÃ×ãÎÃ×ãÎÃ×ãÎÃ×ãÎÃ×ãÎÃ×ãÎÃ×ãÎÃAØÛ, �ÓG BñóÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†óÙ¾¤ŠnR5úÚº›{[;ûÿÛÿ¼ÿœÿ}ÿ^ÿ@ÿ!ÿöþËþ þuþHþ+þþþþþþþþþþþþ+þIþxþ©þÚþ ÿ;ÿ`ÿ†ÿ¬ÿÑÿöÿAf‰¬Ïò:^‚¥Èê +Jh†ñؽ£‰oR6üݽž~^>ýÿÝÿ¾ÿžÿ~ÿ`ÿAÿ"ÿöþËþ þuþHþ*þþþþþþþþþþþþ*þHþxþ«þÜþ ÿ=ÿaÿ‡ÿ­ÿÒÿõÿ?e‡ªÍð8\€¢Åè )Gf„ðÖ¼¢ˆnT7ýàÀ €a@ àÿÀÿ ÿ€ÿaÿBÿ$ÿ÷þÊþ þtþGþ)þþþþþþþþþþþþ)þHþxþ«þÞþÿ@ÿdÿˆÿ®ÿÓÿöÿ>d†¨Ìî6Z~ Âå'Fd‚ïÕ»¡‡mS8þáãƒcC#âÿÂÿ¢ÿƒÿcÿCÿ%ÿøþÌþŸþtþFþ)þþþþþþþþþþþþ)þGþxþ«þßþÿCÿgÿ‹ÿ¯ÿÔÿ÷ÿ=b…§Êí4W{žÀã$Cb€íÓº †lR7ÿâĦ†fF&åÿÅÿ¤ÿ…ÿeÿFÿ&ÿúþÍþ¡þtþFþ(þþþþþþþþþþþþ(þGþxþ«þßþÿEÿiÿ�ÿ±ÿÕÿøÿ>a„¦Èë2Uyœ¾à"A_~ëÒ¸ž„nT:çÉ«‹kK+ éÿÈÿ¨ÿ†ÿgÿHÿ(ÿøþÌþŸþsþDþ&þþþþþþþþþþþþ&þFþxþ®þâþÿHÿiÿ�ÿ±ÿÕÿôÿ:]~ Ãå,Or•¸Úý<Zyéиž„mW=#íϱ‘qQ1íÿÍÿ­ÿ‹ÿjÿJÿ+ÿûþÌþŸþsþDþ%þþþþþþþþþþþþ&þFþxþ¯þåþÿLÿmÿŽÿ²ÿÖÿõÿ7Z{œ¾á&Im�²Õ÷8Wuè϶�„mV@& ðÖ¸˜wW7ôÿÒÿ±ÿ�ÿoÿNÿ.ÿÿþÏþŸþsþCþ%þþþþþþþþþþþþ%þEþxþ¯þæþÿPÿqÿ’ÿ³ÿ×ÿöÿ4Wx˜¹Üþ!DhŠ­Ðò3SrçεœƒmV?)óÙ¾ž}]=ùÿØÿ¶ÿ•ÿsÿRÿ1ÿÿÒþ¢þsþCþ$þþþþþþþþþþþþ$þEþyþ°þçþÿTÿuÿ–ÿ·ÿØÿ÷ÿ5Tu•¶×ú?b…§Êí -NnÕ½£‹q]F0å˰�oN. éÿÇÿ¦ÿƒÿbÿAÿ ÿîþ¿þ�þ_þCþ$þþþþþþþþþþþþ$þEþeþ›þÒþ ÿ?ÿ^ÿÿ ÿÁÿÝÿüÿ:Yz›¼ß$GkޱÓ÷7WÌ´œƒjUA*úáÆ«‹iI)ãÿÁÿŸÿ}ÿ[ÿ9ÿÿçþµþ†þVþCþ$þþþþþþþþþþþþ$þEþ[þ‘þÇþþþ5ÿSÿqÿ’ÿ³ÿÐÿìÿ *JiŠ«Íð5Z~¡Ãç *JØÀ¨�xcN9# ð×¼›zY9óÿÐÿ®ÿŒÿiÿGÿ&ÿôþÃþ‘þbþDþ%þþþþþþþþþþþþ%þFþgþœþÒþÿ?ÿ]ÿ|ÿšÿ»ÿØÿôÿ/NnŽ®Ñô9^‚¦Éì2SîÖ¾¦ŽydP;"ïÖµ”sR/ éÿÆÿ¤ÿ�ÿ_ÿ<ÿ ÿÙþ¨þvþFþ&þþþþþþþþþþþþ'þGþ{þ±þçþÿRÿqÿ�ÿ®ÿÌÿèÿ!=\|œ»Þ#Fj޳×úAdòÛª’€kVA)öÝ»šzX3íÿÊÿ¥ÿƒÿ`ÿ>ÿ ÿÚþ©þwþGþ(þþþþþþþþþþþþ(þHþ{þ¬þâþÿNÿlÿŠÿ©ÿÇÿåÿ:Yx˜¸ÚýBhŒ°ÔûBeõÝÆ®–ƒp[G.ýã ^9ðÿÍÿ¨ÿ„ÿaÿ?ÿ ÿÚþ©þwþGþ(þþþþþþþþþþþþ(þHþzþ«þÝþÿIÿgÿ…ÿ£ÿÂÿßÿýÿ5Ut”³Õø=c‰­ÑøBeøàɲš†t`L4êȦ…d>óÿÐÿ«ÿ‡ÿbÿ?ÿ ÿÛþ©þwþGþ(þþþþþþþþþþþþ(þHþxþªþÜþÿCÿaÿÿ�ÿ¼ÿÙÿ÷ÿ1Pp�®Ñó8^„©ÎôBe$ ðÖ¼¤�v^K8%úâɱ�nL*ßÿºÿ”ÿoÿKÿ&ÿÿÏþ�þjþ8þþêýÝýÛýÛýÛýÛýÛýÛýÛýÛýÛýÝýêýþ8þjþœþÍþÿþÿ;ÿYÿwÿ”ÿ²ÿÐÿíÿ ,Lk�°Òô@e‹²Ùÿ&Ilޱ& ñ×½¦�w`O<)ÿç϶”rP.àÿ»ÿ•ÿnÿJÿ%ÿÿÍþ›þhþ6þþéýÜýÚýÚýÚýÚýÚýÚýÚýÚýÚýÜýéýþ5þcþ•þÇþùþÿ6ÿTÿqÿ‘ÿ¯ÿÌÿêÿ *IhЬÎñ<bˆ²Ùÿ&Pr•¸)óÙ¿¨�ybP@,ìÔ¼™vT2 âÿ¼ÿ—ÿpÿIÿ$ÿÿÌþ˜þfþ4þþèýÜýÚýÚýÚýÚýÚýÚýÚýÚýÚýÜýèýþ3þaþ�þÀþòþÿ0ÿNÿlÿŒÿ¬ÿÉÿçÿ'Gf‡©Ëí:_…¯Ùÿ&Pyœ¾+õÚÀ©’{cRA0ðÙÁž{X7æÿ¾ÿ˜ÿqÿJÿ$ÿÿþËþ˜þdþ2þþçýÛýÙýÙýÙýÙýÙýÙýÙýÙýÙýÛýçýþ0þ^þŒþºþìþ ÿ*ÿHÿfÿ†ÿ¦ÿÆÿäÿ$Dd…¦Çê6\‚¬Öÿ&Py¢Å.øÝ«”}fUD3" ôÞǤ�_<ëÿÃÿ›ÿtÿMÿ&ÿÿþËþ˜þeþ1þþçýÛýÙýÙýÙýÙýÙýÙýÙýÙýÙýÛýçýþ.þ\þŠþ¸þæþÿ$ÿCÿbÿ‚ÿ¢ÿÂÿâÿ"Bbƒ¤Æç 3Z€ªÓý'Qz£Í)ôÙ¾§�ybQ@/ðÙà}Z7çÿ¾ÿ–ÿkÿDÿÿöþÃþ�þ\þ(þþêýâýáýáýáýáýáýáýáýáýáýâýêýþ&þRþ€þ®þÜþûþÿ9ÿYÿyÿ™ÿ¹ÿÙÿùÿ9Y{œ½Þ+Rx£Í÷!MvŸÉ)óÙ¾§�ybQ@/ðÙŸ|Y7åÿ½ÿ•ÿjÿ?ÿÿñþ¾þ‹þWþ#þþñýíýíýíýíýíýíýíýíýíýíýíýñýþ"þNþ{þ©þ×þöþÿ4ÿSÿtÿ•ÿµÿÕÿõÿ4Uv—¸Ù'NtŸËôJvŸÉ+öÛÀª“|eTC1  òÛÅ¢~\9èÿ¿ÿ—ÿlÿAÿÿïþ¼þˆþUþ"þþþýýýýýýýýýýýýýýýýýýýýýýýþýþ!þMþzþ¦þÔþóþÿ1ÿPÿqÿ’ÿ³ÿÓÿóÿ3St•¶Øÿ&MsžÊõKv¢Ì[@$ íÓ¸žƒlV?(ôã̵ž‡dAûÿÓÿªÿ�ÿYÿ.ÿÿØþ­þzþGþþàýÒýÏýÏýÏýÏýÏýÏýÏýÏýÏýÏýÏýÏýÏýÒýàý þ9þeþ‘þ°þÏþïþÿ/ÿOÿpÿ‘ÿ±ÿÑÿñÿ2Su–½ä 2]‰´ß 7c�ºå:XD( ñÞéŽv_I2óâÁª“|[8òÿÑÿ¨ÿ€ÿXÿ ÿôþÊþžþ]þ%þýýéýãýãýãýãýãýãýãýãýãýãýãýãýãýãýãýéýüýþMþ…þ«þÊþêþ ÿ*ÿKÿlÿŒÿ­ÿÍÿíÿ 1Rs”¾å 3^еà4`Œ²Ý2U@,ôá㙀hQ:ñ࿞‡pO. èÿÇÿ¦ÿ~ÿUÿÿåþºþ�þLþþþúýùýùýùýùýùýùýùýùýùýùýùýùýùýùýùýúýþþ>þxþžþÄþãþÿ$ÿFÿfÿ‡ÿ¨ÿÈÿèÿ,Oq’»å 3^еà0\ˆ®Õÿ*N:%õáκ ˆoW@$ëÚ¹™xa@ÿÿÜÿ»ÿ™ÿxÿOÿÿßþ§þ}þ@þþþþþþþþþþþþþþþþþþþþþþ7þhþŽþ´þÚþùþÿ<ÿ^ÿÿŸÿÀÿáÿ$HkŒ¶ß 0[‡²Ý-T€§ÍôD/ñÝʶ£‹rZB& íѰ�oN- ìÿËÿªÿˆÿgÿFÿÿÖþžþfþ<þ'þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ'þ7þTþzþ þÆþìþÿ/ÿPÿrÿ“ÿ´ÿÔÿõÿ<_ƒ¬Ö)T«Öþ&Mu›ÂèI<'ýñÞË·�…mU+ó׫ŠiH) èÿÇÿ¬ÿ‹ÿiÿHÿÿÜþ¤þlþ@þ4þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ4þ>þ]þ{þ¡þÇþíþ ÿ.ÿOÿqÿ“ÿ³ÿÔÿõÿ?b…²Û.Y„¯Úý$Lt•»âH;/ùíÙÆ¬“zb9ó׫^=ßÿ¿ÿ£ÿ‡ÿfÿEÿÿÝþ¥þmþFþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþFþaþ€þžþÄþêþ ÿ'ÿIÿkÿ�ÿ¯ÿÏÿðÿ<_ƒ¯Û.Yƒ¯ÚüFmޝÖýC6)üðäжœƒjAïÒ¦zN.ðÿÒÿ±ÿ•ÿzÿ^ÿ=ÿ ÿÔþ þhþMþJþJþJþJþJþLþLþLþLþLþLþLþLþLþLþLþJþJþJþJþJþMþaþþ�þ¼þâþÿÿ>ÿ_ÿ�ÿ£ÿÅÿæÿ 2X|¨Ô*T©Ôö:bƒ¤Åì7*÷ëßÓ¹ †lCðÇ›oCøÿÚÿ»ÿœÿ€ÿeÿJÿ.ÿúþÆþ‘þ]þOþMþMþMþMþMþ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þMþMþMþMþMþOþYþwþ–þ´þÒþñþÿ.ÿMÿoÿ‘ÿ³ÿÕÿûÿ!Gm™ÆòHs�Èê .Pq’³Ô9- ûïã×¼£‰oDñÈ›oC÷ÿÙÿºÿ›ÿÿcÿHÿ-ÿ÷þÃþ�þZþMþKþKþKþKþZþ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þZþKþKþKþKþMþWþrþ‘þ¯þÍþêþÿ'ÿFÿhÿŠÿ¬ÿÎÿôÿ@f’¾ê@k•Àà$Ff‡©É9- üð䨾¤ŠpEñÇšmAöÿÖÿ·ÿ˜ÿ|ÿ`ÿDÿ)ÿôþ¾þŠþVþHþFþFþFþFþuþ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þuþFþFþFþFþHþRþnþŠþ¨þÆþâþÿþÿ<ÿ^ÿ€ÿ¢ÿÄÿëÿ7]‰´á 7aŒ¶Ö÷;[{œ½;/" þóèܨ�tIòÉ›nAõÿÖÿ·ÿ˜ÿ{ÿ_ÿCÿ'ÿòþ½þˆþSþFþDþDþDþOþ„þ§þ§þ§þ§þ§þ§þ§þ§þ§þ§þ§þ„þOþDþDþDþFþOþkþ‡þ£þÁþÝþúþÿ5ÿWÿyÿ›ÿ½ÿãÿ 0V‚­Ù/Yƒ®Îï1Qq‘³@4'ùîãɯ”zO#øÍ rEùÿÙÿ¹ÿšÿ~ÿaÿEÿ)ÿôþ¿þ‰þTþFþDþDþDþLþ€þ£þ£þ£þ£þ£þ£þ£þ£þ£þ£þ£þ€þLþDþDþDþFþPþlþ‡þ£þ¿þÛþøþÿ1ÿSÿuÿ—ÿ¹ÿßÿ,R~©Õ+U©Éê +Kk‹«N>2& õêжœ‚]2Û´†Y, êÿËÿ¬ÿ…ÿiÿMÿ0ÿøþÂþ�þXþJþHþHþHþHþmþ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þmþHþHþHþHþJþTþqþŒþ¨þÄþÙþõþÿ.ÿNÿpÿ’ÿ´ÿØÿþÿ$Jt Ì÷ JtžÂã$Gg‡§]N>2&þóÙ¿¥ŠfAêÛnAýÿÞÿ¾ÿ˜ÿrÿUÿ9ÿÿÇþ’þ\þOþMþMþMþMþPþsþsþsþsþsþsþsþsþsþsþsþPþMþMþMþMþOþXþvþ’þ®þÊþßþôþÿ,ÿLÿkÿ�ÿ¯ÿÓÿøÿDn—ÃîAk•¹Üý@d„¤k[L=0"úàÆ­’nI$ùÑ©‚T3ïÿÏÿ©ÿƒÿ]ÿAÿÿÏþ–þ`þRþPþPþPþPþPþ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þPþPþPþPþPþRþ\þyþ–þ³þÏþäþùþ ÿ*ÿIÿhÿˆÿ©ÿÎÿòÿ=f�¹å7a‹®Òö9\ŸwhXI9+ÿå̲˜sN*ݶŽfD"ßÿ¹ÿ“ÿlÿFÿ ÿÔþ›þbþTþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþTþ^þ{þ˜þµþÒþçþüþÿ%ÿDÿdÿƒÿ¢ÿÆÿêÿ3]†°Ù,U~¢Æé 0Sv™‚o_P@/ êз�~Z5îÆžvR1íÿ¾ÿ—ÿqÿKÿÿÕþœþcþTþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþTþ_þ}þšþ·þÔþáþöþ ÿÿ<ÿ[ÿzÿšÿ¼ÿàÿ)Pz£ÌõHq˜¼à)Lo’‹xeVG5#íÔº¡‚c?øÕ®†b>ûÿËÿ›ÿuÿOÿÿÕþœþcþTþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþTþ_þ}þ›þ·þÕþâþïþÿÿ5ÿQÿqÿ�ÿ³ÿÕÿúÿEl•¿è:cбÕùEh‹•ƒp]N<+ òØ¿¥‡hJ%ྗsO+ Ùÿ©ÿyÿSÿÿÙþœþcþUþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþTþ_þ}þ›þ¹þÖþãþñþþþÿ/ÿLÿhÿ‡ÿªÿÍÿðÿ;b‰³Û-V}¤Ëï;a„ŸŒzgTC1 õÜ©‹lN/ êȦ‚^:æÿ·ÿ‡ÿWÿÿÝþ þcþTþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþTþ_þ}þ›þ¹þ×þäþòþÿþ ÿ)ÿEÿbÿ~ÿ¡ÿÄÿæÿ 0W~¥ÎöHo–½ä 0V|¥�~kXE3"öÝÄ«�nP1íË©„`<çÿ·ÿ‡ÿXÿÿÞþ¡þdþUþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþTþ_þ}þ›þ¹þ×þäþñþþþ ÿ(ÿDÿaÿ}ÿŸÿÂÿäÿ-T{¢ÊòDk’¹à,Sy«–�n\H4#øÞÅ«�pQ2ïÍ«†a=çÿ·ÿ‡ÿWÿÿÞþ¡þdþUþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþTþ_þ|þ™þ·þÕþâþïþüþ ÿ&ÿCÿ_ÿ{ÿ�ÿ¿ÿâÿ*Ow�Åí?f�´Û(Nt±œ‡s`L9%úàÆ­�qS5òЮ‰c>éÿ¸ÿ‡ÿWÿÿÞþ¢þeþVþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþTþ_þ|þšþ·þÕþâþïþûþ ÿ%ÿBÿ^ÿ{ÿ�ÿ¾ÿàÿ(NsšÂê;b‰±Øþ$Kq·¢�ydQ=)üâɯ‘sU7ôÓ±ŒfAëÿºÿ‰ÿXÿÿßþ¢þfþVþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþUþ_þ}þšþ·þÕþâþïþûþÿ%ÿAÿ]ÿzÿœÿ½ÿßÿ'Lq—¿ç7^…­Ôú!Gm¾¤�zeL8%öÝéŠlO0í˪ƒ^9äÿ³ÿ‚ÿQÿÿàþ£þgþWþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþUþ_þþœþºþ×þéþöþÿÿ-ÿIÿfÿƒÿ¡ÿÃÿäÿ(Ms˜¿ç7_‡®Õü#IoÅ«�|gN4! ò×½£…fH*åÄ£|U0 Ûÿ«ÿ{ÿIÿÿáþ¤þgþXþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþVþ_þþŸþ¼þÚþìþþþ ÿÿ5ÿRÿoÿ‹ÿ©ÿÇÿéÿ -Ot™Áè8`ˆ¯×ý$KqͲ˜}iO5 íÓ·ž`A#ß½›uN'Òÿ£ÿsÿBÿÿÙþ¥þhþYþUþUþUþUþUþUþVþVþVþVþVþWþUþUþUþUþUþUþUþUþUþVþ_þþŸþ¿þÝþïþÿÿÿ<ÿZÿwÿ“ÿ²ÿÐÿîÿ2Su›Âé8a‰±Øÿ&MsÓ¸ž„iP6èͲ—xZ;ú×µ“lFøÿÉÿ™ÿiÿ:ÿÿÑþ�þhþYþUþUþUþUþdþeþfþgþiþjþlþmþXþUþUþUþUþUþUþUþUþVþ^þ~þžþ¾þÞþðþÿÿ&ÿCÿ`ÿ~ÿ›ÿ¹ÿØÿöÿ6Xy›Âé8`ˆ°Øÿ&MtÖ¶›�fF,ùÜÁ¦‹jK,ëȦ„]6éÿ¼ÿ�ÿ]ÿ.ÿÿÎþ™þeþVþRþQþQþbþ„þ…þ‡þ‰þŠþŒþŽþ�þ}þQþQþQþQþQþQþQþQþRþZþ~þžþ¾þÞþ÷þ ÿÿ-ÿKÿhÿ…ÿ¢ÿ¾ÿÜÿûÿ7Y{œÃê8a‰±Ù'NuÙ¸—}bB"ïÑ´™}]<ÿܹ–tM&ÿÿÙÿ¬ÿ€ÿPÿ!ÿõþÊþ•þaþQþMþMþMþþ¢þ¤þ¥þ¦þ§þ¨þ©þªþ™þeþMþMþMþMþMþMþMþNþUþyþ�þ½þÝþõþÿ!ÿ3ÿQÿoÿŒÿ©ÿÅÿáÿÿÿ;Y{�Ãé8`‰±Ù'Nu࿞}bB"èÊ­�tT3óЭŠhAóÿÌÿ ÿtÿHÿÿìþÁþ•þ`þQþMþMþWþŒþ±þ±þ°þ°þ°þ°þ°þ¯þŸþjþMþMþMþMþMþMþMþMþTþxþœþ¿þßþøþÿ*ÿ<ÿZÿxÿ–ÿ´ÿÏÿëÿ%Cb€¢Èî<dŒ´Ü+RyèǦ…dD$ãÆ¨‹mL, êǤ�^7éÿÂÿ–ÿiÿ=ÿÿåþ¹þŽþbþSþNþNþNþ~þ¤þ¢þ¡þ þŸþ�þœþšþŒþVþNþNþNþNþNþNþNþOþUþyþ�þÀþäþýþÿ/ÿHÿfÿ„ÿ¢ÿÀÿÜÿ÷ÿ/MkЍÎõAi’ºâ 1XîÌ«ŠiH(çÆ©‹nI(æÁž{X3 åÿ¾ÿ˜ÿkÿ?ÿÿëþ¿þ“þgþXþSþSþSþ^þ…þƒþ‚þ€þ~þ|þ{þyþmþSþSþSþSþSþSþSþSþSþYþ}þ¡þÅþèþ ÿ"ÿ;ÿTÿtÿ‘ÿ¯ÿÍÿéÿ!<Zx–µÚ&Ms›Ãë8_‡òЯŽmK* éȧŠmG"á»–sP+ßÿ¸ÿ’ÿkÿ?ÿÿëþÃþ—þkþ\þVþUþUþUþdþcþbþaþ`þ_þ^þ]þUþUþUþUþUþUþUþUþUþVþ[þþ£þÇþëþ ÿ+ÿEÿ]ÿ}ÿ�ÿ»ÿÙÿõÿ,Geƒ¡¿ä 0V|¢Êó=eŒôÒ±�nL+ éȨ‡iDùÙ³ŽiF!üÿ×ÿ°ÿŠÿcÿ=ÿÿéþÁþ˜þmþ]þVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþ[þþ£þÇþëþ ÿ,ÿLÿeÿ…ÿ¥ÿÅÿãÿþÿ5QnŒ©Çí7]ƒ©ÏøCh�ôÒ±�mK* çÆ¥…d?ôϪ„_:ðÿËÿ¦ÿ€ÿYÿ3ÿ ÿåþ½þ”þlþ\þUþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþUþYþ}þ¡þÅþéþ ÿ*ÿKÿkÿ‹ÿ«ÿÊÿêÿ!=Xu“±Îó>c‰¯Õû!Fk‘ïÒ°ŽmP. ëÆ¥„d5ëÆšuP*ãÿ¾ÿšÿ}ÿWÿ1ÿ ÿæþ¾þ–þmþ\þUþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþXþyþ�þÁþåþÿ2ÿRÿsÿ–ÿ¶ÿÖÿöÿ,Hd€ž»Ùü"GlŽ´Ú!Fl’é̯�lN1îɤƒb4à»�d?øÿÖÿ±ÿŒÿpÿTÿ-ÿÿâþ¾þ–þnþ[þSþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþSþVþwþ˜þ¼þàþ ÿ9ÿZÿzÿžÿÁÿáÿ7Rn‹¨Åâ*Ot–·Þ%Fl‘åǪ�kN1òͨƒb4×±†[/ èÿÆÿ¤ÿÿcÿGÿ+ÿÿàþ»þ—þoþ\þSþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþUþvþ—þ¸þÜþ ÿ5ÿaÿ‚ÿ¥ÿÉÿíÿ 'C^y–³Ðí5X~ŸÁâ)Kl‘ßÂ¥‡jM/õЫ†a3Õ§{P%ùÿ×ÿµÿ”ÿrÿVÿ9ÿÿÿÝþ¸þ“þoþ[þRþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþSþtþ•þ¶þ×þÿ0ÿ\ÿ‰ÿ¬ÿÐÿóÿ2Mi„¡½Ú÷>b†§Éê -Op‘ÞÂ¥‡jN1öΨ„^)ûÌžnCìÿÌÿ«ÿ‰ÿgÿRÿ6ÿÿþþÞþ¹þ•þpþ[þRþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþRþ^þwþžþÔþ ÿ7ÿcÿ�ÿ¶ÿÚÿþÿ!<WrŽªÇã"FjެÎï/Pq’ÜÀ¤‡iM1÷Î¥€[&ð”d4 Þÿ¾ÿŸÿ}ÿ\ÿGÿ2ÿÿúþÚþºþ–þqþ[þPþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþQþ\þsþ™þÐþÿ=ÿjÿ–ÿ¼ÿãÿ*E`{–³Ïì+Mq”³Òó3Pr“Ú¿£‡jN2øÏ¦~Y#[+üÿÐÿ±ÿ’ÿsÿQÿ<ÿ'ÿÿöþ×þ·þ—þsþ\þPþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþPþZþpþ–þÌþÿ:ÿqÿ�ÿÃÿêÿ4Oj… ¼Ùõ4Vxœ»Ùø7Us•Ù½¢†jN2úѨV!ì¶�Q"òÿÃÿ¤ÿ„ÿeÿFÿ1ÿÿÿóþÓþ³þ”þtþ\þPþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþOþXþnþ”þÉþÿ6ÿmÿ¤ÿÊÿñÿ>Yt�ªÆâÿ=`‚¤Âá<Zx–ã¾¢†kE) ñÅœsJá¬wKìÿ¼ÿŸÿ€ÿaÿAÿ1ÿÿÿòþÕþµþ–þvþ]þPþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþNþWþlþ’þÇþÿþ6ÿmÿ£ÿÉÿðÿ=Zu�«Éå@b…§Åã >\z˜íÉ£ˆlF!轑h? Ø£nBæÿ·ÿ™ÿ}ÿ]ÿ>ÿ-ÿÿÿóþÕþ¸þ™þyþ_þQþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþWþkþ‘þÇþþþ6ÿmÿ£ÿÉÿïÿ<Yw‘­Ëé!Dfˆ«Éç#B`}›ùÔ¯ŠnI#ýá¶Š^5Ï›f: áÿ²ÿ•ÿxÿ[ÿ<ÿ*ÿÿÿôþ×þºþ�þ}þbþSþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþPþWþkþ‘þÇþþþ6ÿnÿ¥ÿÊÿðÿ=Zw”¯Îì &Ik�¯Íë (Fd‚ á¼—rL&Û¯„X,ùÆ’_3Úÿ®ÿ‘ÿtÿWÿ:ÿ)ÿÿÿöþÙþ¼þŸþ‚þfþWþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþYþmþ’þÈþÿ8ÿoÿ§ÿÍÿòÿ>[x–³Ñð,Nq“µÓñ-Ki‡¥ã¾™t?ôΡuIó¿ŒY4Ûÿ¯ÿ•ÿwÿ[ÿ=ÿ0ÿÿÿýþßþÂþ¥þˆþjþYþSþSþSþSþSþSþSþSþSþSþSþSþSþTþTþUþVþWþSþSþSþSþYþmþ‘þÆþ÷þ.ÿfÿžÿÁÿæÿ 2Tq�¬Ðî *Mp’´Óñ-Ljˆ¦'ôÀ›vA çÁ”f:乆R.Üÿ°ÿ–ÿ{ÿ^ÿAÿ4ÿ&ÿÿÿæþÈþ«þŽþnþ[þUþUþUþUþUþUþUþUþUþUþcþeþgþjþmþoþrþuþtþUþUþUþZþlþ‘þÄþõþ%ÿ]ÿ”ÿ·ÿÚÿ&Hj‡¤Èì )Lo‘´Òñ-Lkˆ§5Κu@ ×±„V)ýÒ§|I$ÿÿÚÿ®ÿ”ÿyÿ^ÿBÿ4ÿ'ÿÿÿêþÌþ®þ‘þoþ[þTþSþSþSþSþSþSþSþSþSþ†þ‰þ�þ�þ”þ—þšþžþ þoþSþSþXþiþ�þÀþðþ ÿPÿˆÿ«ÿÎÿðÿ8[}š¾â$GjްÎí *Ih†¤ 칆Ré´R$öÉžtIùÿÔÿ¯ÿŠÿpÿUÿ:ÿ ÿÿÿøþêþÌþ®þ�þrþNþ8þ0þ0þ0þ0þ0þ0þ0þ0þ0þSþŠþ�þ’þ”þ—þ™þ›þ�þŸþpþ=þ0þ3þDþfþ™þÉþúþ*ÿZÿ}ÿ ÿÂÿåÿ*Ln’¶Ùý DgŠ©Èæ$Ba€£Æê ((Tå°|O"ôÇ¡vL!Ûÿ¶ÿ‘ÿwÿ]ÿBÿ(ÿÿ ÿÿþòþÒþ´þ–þxþQþ:þ1þ0þ0þ0þ0þ0þ0þ0þ5þjþŸþ§þ§þ¨þ¨þ¨þ¨þ¨þ§þzþDþ0þ3þCþdþ•þÀþñþ!ÿQÿrÿ•ÿ¸ÿÚÿÿÿ!DfŒ°Ôø?b…¤Ãâ>]|ŸÂæ 3úÁ�Zå°{O#õÇ¢|Q'åÿÀÿ›ÿ�ÿgÿMÿ2ÿ%ÿÿ ÿüþÜþ¼þžþ€þXþ?þ5þ4þ4þ4þ4þ4þ4þ4þ5þhþ›þ¤þ¢þ þžþœþšþ—þ•þiþ4þ4þ6þDþdþ“þ¿þëþÿKÿlÿ�ÿ°ÿÓÿ÷ÿ>a‡­Ñõ=`ƒ¢Áàþ=[zžÁäAΕb'ì±|P$øÊ¤Y.íÿÌÿ§ÿ�ÿsÿYÿ>ÿ1ÿ$ÿÿÿèþÈþ¨þŠþaþFþ;þ9þ9þ9þ9þ9þ9þ9þ9þMþ~þ‰þ†þƒþþ|þyþuþrþJþ9þ9þ;þHþfþ”þÀþìþÿHÿhÿ‰ÿªÿÍÿòÿ;]„ªÑô<`ƒ¢Áàÿ=\zžÂåMÚ¡h-ò¸}Q$øÌ¦€[5ôÿÓÿ²ÿ˜ÿ~ÿdÿJÿ<ÿ/ÿ"ÿÿôþÔþ´þ”þiþLþ@þ>þ>þ>þ>þ>þ>þ>þ>þ>þTþcþ`þ]þZþWþUþRþPþ>þ>þ>þ?þKþhþ”þÀþìþÿCÿdÿ„ÿ¥ÿÆÿëÿ4Y€¦Ìó:^‚¡Àßþ<[zžÁä�^#é®…Y-Þ¸’mM, ëÿÍÿ³ÿ™ÿÿhÿZÿMÿ?ÿÿûþÛþ»þ�þqþcþaþaþaþaþaþaþaþaþaþaþhþfþeþdþcþbþbþaþaþaþaþbþmþˆþ³þãþÿ:ÿfÿ‰ÿ©ÿÊÿëÿ 2W{žÅë5Y} ÃáBa€ŸÁä+‘_-ó¸�g:ëÉ£}]>ýÿßÿÁÿ§ÿ�ÿvÿ_ÿQÿCÿÿûþÛþ»þŽþoþaþ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þhþ�þªþÚþ ÿ6ÿbÿ…ÿ§ÿÈÿéÿ -Rw™½ã -Pt—ºÜû<^}œ¾à'‘_-üÁ˜pGøÕ²ŒmN. ðÿÒÿµÿ›ÿƒÿlÿTÿGÿ#ÿÿþÛþ»þ�þlþ]þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþZþbþyþ¡þÑþÿ1ÿ]ÿ€ÿ¢ÿÅÿæÿ*Lq”·Ú#GjްÒô6Xz™»Ýÿ#�]+úÈŸwN%ß½šz[;ÿÿáÿÃÿ¦ÿ�ÿwÿ_ÿHÿ$ÿÿÜþ¸þ‰þhþWþSþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþSþZþpþ–þÆþöþ&ÿVÿyÿ›ÿ¾ÿáÿ%GiŒ¯Òõ;_‚¤Æé -Or”¶ØúŽi8Ô±ˆ_7õÒ°’rS4ôÿÖÿ¸ÿ’ÿ{ÿdÿLÿ ÿüþØþ´þ…þcþQþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþSþgþ‹þÁþñþ!ÿQÿwÿšÿ½ÿàÿýÿAc�¤Çê /RvžÀâ,Nq“³Õ÷�iDཚqI* èŨŠkK)éÿËÿ¥ÿÿgÿPÿ$ÿùþÕþ±þ�þ^þLþFþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþFþKþ]þ�þ¶þìþÿLÿrÿ™ÿ»ÿÞÿüÿ;]{™»ß#Fi‘¹Üþ&Mp’²ÒôŒhCíʦƒZ<þÛ¾ ‚b@ûÿÞÿ¸ÿ’ÿlÿTÿ(ÿýþÑþ­þ}þZþFþ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þDþTþvþ¬þáþÿGÿmÿ”ÿºÿÜÿúÿ5Wu’°Óö:]…­ÕøGo‘±Ññ‹gBùÖ³�lM/ñÓµ˜zW5ðÿÊÿ¤ÿ~ÿXÿ-ÿÿÕþªþyþUþ@þ9þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ=þLþkþ¡þ×þ ÿBÿhÿ�ÿµÿÛÿøÿ3Qo�ªÈê /Qy¡ÉñAh�°Ðð‹nJ%â¾›x\>䯍ŠeB ýÿÐÿªÿ„ÿ^ÿ,ÿÿÖþªþxþSþ=þ5þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ7þEþcþ™þÎþÿ:ÿbÿˆÿ®ÿÔÿðÿ+Hd�Ÿ½Þ#Eo—¿ç8`ˆ¦Ææ‹oQ- êʧ„hM.òÖ¸›uO- Ýÿ¯ÿ‰ÿcÿ2ÿÿÕþªþvþQþ:þ0þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ2þ?þ[þ‘þÇþüþ2ÿYÿ�ÿ§ÿÍÿéÿ#@[v”±Óõ9c�µÜ0Wž½Ýý�rU8ôÕ¶“w[@!èË®ˆc=íÿÀÿ’ÿlÿ;ÿ ÿÙþ­þyþQþ:þ/þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ0þ<þWþŒþÂþ÷þ-ÿTÿ|ÿ£ÿÊÿåÿ;Up‹©Ëì0Zƒ­Õÿ(Ry˜·Öö“vY<ᣇlP4ûÞœwR,þÿÑÿ¤ÿvÿEÿÿâþ±þ}þTþ:þ/þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ/þ:þSþˆþ¾þôþ)ÿPÿxÿ ÿÇÿãÿþÿ6Ql‡¢Äå(R|¥Ïø"Lu”²Ñð˜|_B%éÊ«�sW<äÈ¢}W2Ùÿ¬ÿ~ÿKÿÿéþ¸þ�þVþ;þ/þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ.þ8þQþ…þºþðþ%ÿKÿsÿšÿÂÿÜÿøÿ/Hc~™ºÛýGqšÄí?i‰¨Çå�‚fI,óÓµ˜|`E&ëÏ©ƒ^9 ãÿµÿ‡ÿUÿ"ÿñþ¿þ‡þZþ=þ0þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ.þ8þOþƒþ·þíþ#ÿIÿoÿ–ÿ½ÿØÿòÿ)C[w‘²Òó>g�ºã 5^~Ÿ½Ü£‡lP3ùݾ¡…iM/òÕ°Še?éÿ¾ÿ‘ÿ^ÿ+ÿùþÇþ�þ^þ@þ1þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ/þ7þMþ‚þ¶þêþ ÿFÿlÿ’ÿ¹ÿÓÿîÿ$=VoŠªÊë 5]†°Ù)Ss“´Ó©�qV:äÇ«�rV8ûÜ·‘kFðÿÅÿšÿgÿ5ÿÿÏþ¨þ�þYþ2þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ/þ7þLþ€þµþéþÿCÿiÿ�ÿµÿÏÿéÿ7Pi‚¢Ãã,U}¦Ï÷Hh‰©É®’vZ?"éÌ®‘uY8ûݸ’mG!öÿËÿ ÿoÿ=ÿ ÿ×þ©þ‚þ[þ3þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ6þKþþ³þçþÿAÿgÿ�ÿ³ÿËÿåÿ1Ic{›»Ûü#LužÆî?a�¢Â´˜|`D( ïÒ´–y]<üÞ¹”oJ#þÿÒÿ¨ÿvÿEÿÿàþ²þ„þ]þ6þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ1þ7þKþþ³þçþÿAÿfÿŒÿ²ÿÊÿâÿýÿ.D]v•µÕõEn–¾æ8Z|œ¼º��dH,ô×¹š|`?ýÞº•pK%ÿÿÙÿ®ÿ}ÿLÿÿèþºþŒþ^þ7þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ2þ2þ3þ4þ5þ1þ1þ1þ1þ1þ1þ7þJþ~þ²þæþÿ@ÿeÿŠÿ°ÿÈÿàÿùÿ*@Vp�®Îî>f޶Þ/Qs•µ½ „hK/öÚ¼ža@þݸ”oJ$þÿØÿ²ÿ�ÿPÿÿîþÀþ’þdþ6þ0þ/þ/þ/þ/þ/þ<þ>þ@þBþDþFþHþJþMþOþ/þ/þ/þ/þ/þ/þ4þGþ{þ¯þãþÿ<ÿaÿ‡ÿ¬ÿÄÿÜÿõÿ $:Pg†¦Æå 4\„¬Ôü$FhЬ¼ž�eH,ó׸š|]<úÙµ�kF"üÿÖÿ°ÿ‚ÿQÿ ÿðþ½þ�þaþ3þ,þ,þ,þ,þ,þ,þ]þ`þbþeþhþkþmþpþsþvþUþ,þ,þ,þ,þ,þ0þBþvþ©þÞþÿ8ÿ]ÿ‚ÿ§ÿ¿ÿ×ÿïÿ4Ja€ Àß.V~¥Íõ@b„¦¹›|`D' îÒ³”vX6ôÒ®ŠfAùÿÒÿ¬ÿÿQÿ ÿïþ½þ‹þ]þ/þ'þ&þ&þ&þ&þHþþ„þ†þˆþŠþŒþŽþ�þ’þ“þuþBþ&þ&þ&þ&þ*þ;þnþ¢þÖþ ÿ0ÿVÿ{ÿ ÿ¸ÿÏÿèÿ,BYx˜¸×ÿ&NvžÅí8Z|ž¹›|^B%ëϱ’sU3ðÏ«‡c?öÿÒÿ¬ÿ~ÿPÿ#ÿñþ¿þ�þ[þ-þ%þ$þ$þ$þ)þ^þ“þšþšþ›þ›þœþœþœþœþ›þþJþ$þ$þ$þ$þ'þ7þkþžþÑþÿ+ÿQÿwÿ�ÿ´ÿÌÿãÿüÿ'=Ts“³Òú!Iq™Àç2Uxš¾ �cE( ïÒ³•vW5óÑ­‰eAøÿÔÿ°ÿ‚ÿTÿ'ÿùþÇþ•þcþ1þ(þ&þ&þ&þ*þ]þ�þ˜þ—þ•þ”þ’þ�þ�þ�þ‹þpþ9þ&þ&þ&þ&þ)þ8þkþŸþÓþÿ,ÿRÿxÿžÿ¶ÿÍÿåÿüÿ(>Ts“³Òú"Iq™Àç2UwšÁ�aB$ëγ”vW:÷Õ²ŽjF"þÿÚÿ¶ÿ‹ÿ]ÿ/ÿÿÎþœþjþ8þ-þ,þ,þ,þ,þCþuþ~þ|þyþvþtþqþnþlþiþPþ,þ,þ,þ,þ,þ.þ<þpþ¤þ×þ ÿ3ÿYÿÿ¥ÿ¼ÿÓÿëÿ.DZy˜¸Øþ&Mu›Ãê5X{žÆ¢~_A#è˰•vX:üÚ·•pL(àÿ¼ÿ‘ÿfÿ8ÿ ÿ×þ£þqþ?þ4þ2þ2þ2þ2þ2þNþZþXþUþSþPþNþLþJþGþ3þ2þ2þ2þ2þ2þ5þBþvþ©þÝþÿ9ÿaÿ‡ÿ­ÿÄÿÛÿòÿ 4J`€Ÿ¿Þ*Rz Æî9\¢È¤€\>ãÆ«�uV9ÿݺ˜uQ- åÿÁÿ–ÿkÿ@ÿÿÞþ«þwþEþ9þ7þ7þ7þ7þ7þ7þ?þ=þ<þ;þ:þ9þ9þ8þ8þ7þ7þ7þ7þ7þ7þ9þFþyþ¬þàþÿ<ÿdÿ�ÿ³ÿÊÿáÿ÷ÿ$9Oe„¤Ãâ /U}£Éï:^‚¤È¤€\8üÝ¿¤‰nS6ûÞ»˜vS/ çÿÃÿ˜ÿmÿBÿÿäþ°þ|þIþ<þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ;þGþ{þ®þâþÿ>ÿfÿ�ÿ·ÿÎÿåÿûÿ'=Rg†¦Æå 2X~¤Êð:^�¥Ç›wS/ðÒ´œ�fK3øÛº—tQ/ çÿÃÿœÿqÿFÿÿçþ³þ€þLþ>þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ<þGþ|þ¯þãþÿBÿjÿ“ÿ»ÿÑÿèÿÿÿ*?Uj‰©Éè 3Y€¥Ëñ;_ƒ§ÅšnJ&åǨ‘z^D+õØ·–sP- çÿÃÿœÿuÿJÿÿëþ¶þ‚þOþ@þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ>þHþ|þ±þäþÿCÿoÿ—ÿÀÿÕÿëÿ-BWlŒ¬Ìë5[‚¦Ëñ<`„¨Ã˜mBýܼ�†nW<# òÕ´“qO, æÿÂÿ›ÿuÿNÿ#ÿïþºþ…þRþBþ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ?þIþ}þ±þåþÿDÿpÿ›ÿÄÿÚÿïÿ1EZo�¯Ïî8]ƒ¨Íñ<a†©Â—l@ôÓ³’zcL4êÒ±�nM*åÿÂÿ›ÿuÿNÿ'ÿòþ¾þŠþUþDþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þAþIþ}þ²þæþÿFÿqÿœÿÈÿÞÿôÿ 4H]r’²Ññ;`…ªÎó=b†«Â“h=îͬŒrZB+ùàÈ©ˆgF(ãÿÀÿ ÿyÿRÿ+ÿôþÀþŒþWþEþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þAþIþ}þ²þæþÿHÿsÿžÿÊÿàÿöÿ "7Lav–¶Öõ@eŠ¯ÔøBgŒ±Á“e:ëǦ†kQ:"îÖ¾Ÿ€_>!áÿ¾ÿ�ÿ}ÿVÿ0ÿùþÂþŽþYþFþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþIþ}þ²þæþÿGÿuÿ ÿÌÿâÿøÿ$:OdyšºÚúEj�´Ùþ"Hm’¶Á“e6 èÄ eK0ÿå̳•vX6üÿßÿ¼ÿ›ÿ{ÿZÿ4ÿýþÆþ�þ[þGþBþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþBþIþ}þ²þæþÿHÿuÿ¢ÿÎÿäÿúÿ&<Rh|�¾ßþ$Io”¹Þ(Mr—¼Á“d6äÁ�y_D*öÜéŠlM/ôÿ×ÿºÿšÿyÿXÿ8ÿÿÊþ”þ]þHþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþIþ}þ²þæþÿHÿuÿ¢ÿÐÿæÿüÿ)?Tj€¡Áâ(Ns™¾ã-Rx�ÂÀ˜i; åžzT: ãɰ–|]? òÿÔÿ·ÿ ÿ€ÿ_ÿ>ÿÿÍþ–þ`þIþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþIþ|þ°þäþÿGÿuÿ¢ÿÐÿéÿÿÿ,E[q†©Éê 0V{¡Æê4Y~£É¾–n@êŸ{U/ûÙ¶�ƒiN0ïÿÒÿ´ÿ�ÿ†ÿfÿEÿ ÿÐþ™þbþJþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþIþ|þ¯þãþÿFÿtÿ¢ÿÐÿéÿ.Haw�¯Òò8]ƒ¨Íò<`…ªÐ¼”lCîÆŸ{U0 ïÍ«‰oU; ðÿßÿÎÿ±ÿ™ÿ‚ÿkÿKÿÿÕþšþcþJþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþIþ{þ®þáþÿDÿrÿ¡ÿÎÿçÿ0Jc}“µ×ù?dНÔùCg‹°Õ»“kBóË£|V1 åá~\B' óÿâÿÑÿ¿ÿ®ÿ—ÿÿhÿQÿÿÛþ¡þfþKþDþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþDþIþ|þ¯þáþÿCÿqÿŸÿÎÿçÿ3Mf™»Ý"Gl’·Ü%Jo“·Üº˜pGõΦO)ݳ‘oM6çÿàÿÏÿ½ÿ¬ÿœÿ…ÿnÿWÿÿÝþ£þhþLþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþIþ{þ­þàþÿBÿqÿŸÿÍÿéÿ5Rk…žÂä)Mr˜½á+Os—¼á¸–tL$úШ€P!ûÕ«�_<&ôÿÚÿÓÿÌÿ»ÿªÿšÿŠÿrÿ[ÿÿÞþ¤þiþLþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþIþzþ¬þÞþÿ@ÿoÿžÿÌÿèÿ6SpŠ£Æê .Sw�Âæ /Tw›¿ä¸–sQ)ÿÕ«ƒS#óÍ£yP-ÿÿèÿÎÿÇÿÀÿ¹ÿ¨ÿ˜ÿˆÿxÿ`ÿ"ÿäþ¦þkþMþEþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþJþ{þ¬þÝþÿ?ÿnÿ�ÿÌÿçÿ8Ur�¨Ìï4Y~£Èì5Z}¡Äé¶”qO-Ù¯…U%õÅ›qGïÿØÿÁÿºÿ³ÿ¬ÿ¥ÿ•ÿ…ÿuÿeÿ'ÿéþªþlþLþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþIþzþ«þÝþÿ=ÿlÿ›ÿÊÿæÿ9Vs�­Ðó:_ƒ¨Íñ:^‚¥É츖tR0Û±‡U%õÅšpFíÿ×ÿ¿ÿ¸ÿ±ÿªÿ£ÿ”ÿ„ÿtÿdÿ'ÿéþ«þmþMþEþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþIþzþ«þÝþÿ<ÿkÿšÿÉÿåÿ9Vs�­Ðô:_ƒ¨Íñ9^�¥È캘vT2ܲˆV$õÄ™nDëÿÔÿ½ÿµÿ®ÿ§ÿ ÿ‘ÿ‚ÿrÿbÿ%ÿéþ«þlþMþEþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþIþzþªþÛþ ÿ;ÿjÿ˜ÿÈÿäÿ8Ur�¬Ðó:^‚§Ìï8\€£Ç꼚xW4 ß´ŠX&õÅ™nBêÿÒÿ¼ÿ´ÿ¬ÿ¥ÿžÿ�ÿ€ÿpÿ`ÿ$ÿèþ¬þmþNþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþJþzþªþÛþ ÿ;ÿiÿ˜ÿÇÿãÿÿÿ7Ur�­Ðó:^‚¦Ëï7\¢Æê¾œ{Y7 â·ŒZ(÷ÅšnBèÿÑÿºÿ²ÿ«ÿ¤ÿœÿ�ÿ~ÿnÿ_ÿ#ÿæþªþnþNþFþEþEþKþJþJþJþJþIþIþIþEþEþEþEþEþEþEþEþEþEþEþJþzþ«þÜþ ÿ:ÿiÿ˜ÿÆÿâÿþÿ7Tr�­Ðô:^ƒ§Ëï7[~¢ÆéÄ£�_>输^-ûÉ›pDþÿçÿÐÿ¸ÿ©ÿ¡ÿšÿ’ÿ€ÿqÿbÿRÿ ÿäþ¨þkþMþDþDþEþiþhþgþfþfþeþdþcþSþDþDþDþDþDþDþDþDþDþDþHþyþ©þÚþ ÿ7ÿfÿ”ÿÃÿßÿûÿ3Pm‹¨Êí4VzŸÃä,Pt—»ÞȦ†dBí˜c/ýÌžpDþÿãÿÌÿµÿ¥ÿ–ÿŽÿ†ÿtÿbÿSÿDÿÿßþ£þfþJþAþ@þpþ“þ’þ‘þ�þ�þŽþŽþ�þ{þFþ@þ@þ@þ@þ@þ@þ@þ@þ@þEþuþ¥þÖþÿ4ÿaÿ�ÿ¾ÿÚÿöÿ.Jg„¢Äå ,Np”¸Úû DgŠ®ÑÊ©ˆgFñÆ›g3ÿÍŸqCýÿâÿÈÿ±ÿ¡ÿ‘ÿ�ÿzÿgÿUÿCÿ4ÿÿÏþ�þaþEþ=þaþ•þ¶þ¶þµþµþ´þ´þ³þ²þ þkþ<þ<þ<þ<þ<þ<þ<þ<þ<þAþqþ¡þÑþÿ/ÿ\ÿ‰ÿ·ÿÓÿïÿ 'Da}›¼Þ#Eg‰­Ïð6Y| ÃЯŽmL"÷Ì¢n9Ñ£uGÿÿäÿÉÿ¯ÿŸÿ�ÿ€ÿpÿ^ÿKÿ9ÿ'ÿõþÃþ�þ^þCþ<þpþ¥þÆþÆþÆþÆþÆþÆþÆþÆþ³þ~þJþ;þ;þ;þ;þ;þ;þ;þ;þ?þoþŸþÐþÿ-ÿZÿ‡ÿ´ÿÐÿìÿ$A]y–¸Ùû?aƒ¥Çè +Nr•¸Ø¹˜vV,Ö¬vBÚª|N çÿÍÿ²ÿšÿŠÿ{ÿkÿUÿCÿ0ÿÿôþÂþ�þ^þDþ=þeþšþ»þ»þ¼þ¼þ½þ½þ¾þ¾þ«þwþCþ<þ<þ<þ<þ<þ<þ<þ<þAþrþ£þÓþÿ0ÿ]ÿŠÿ·ÿÓÿïÿ 'B^{—¶Øú:\~ ¾à#EhŒ¯åÅ¥„c9庄O涆Y+ ïÿÔÿ¹ÿ¡ÿ‰ÿzÿjÿTÿ>ÿ,ÿÿïþÅþ“þaþIþBþEþzþšþ›þœþ�þžþŸþŸþ þŒþXþBþBþBþBþBþBþBþBþBþGþxþªþÚþ ÿ7ÿdÿ‘ÿ¾ÿÚÿöÿ.Ic€�¼Ûý=[}Ÿ¾ÜýAc†©ñѱ‘pFòÈ’\'òÓc5ùÿÛÿÁÿ©ÿ‘ÿyÿiÿSÿ=ÿ'ÿÿëþÁþ—þdþOþHþGþRþrþsþtþtþuþvþwþxþcþGþGþGþGþGþGþGþGþGþGþMþ~þ°þâþÿ>ÿkÿ˜ÿÅÿáÿýÿ5Pj…¢Áà!@^}Ÿ½Ûù=_�¤ûÛ»œ|R(þÔži3ýÍ�n> äÿÆÿ®ÿ–ÿ~ÿfÿPÿ:ÿ$ÿÿäþºþ�þfþRþKþKþKþSþTþTþUþUþUþVþVþKþKþKþKþKþKþKþKþKþKþKþQþƒþ´þåþÿDÿpÿ�ÿÊÿæÿ:UoŠ¥Äã"@_}œºØ÷7Y{�ýÛ»›|S)ÿÕ¦p:ÙªzJ* îÿÐÿ³ÿ›ÿƒÿkÿOÿ9ÿ#ÿ ÿâþ¸þŽþdþQþKþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþKþQþ†þ¸þéþÿHÿuÿ¢ÿÎÿêÿ">XsŽ©Æå#@_}œ¹Øö4VxšþܺšzR)Ö¦v@ à´…U5÷ÿÙÿ¼ÿŸÿ‡ÿoÿSÿ7ÿ!ÿ ÿàþµþ‹þaþOþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþPþ…þºþëþÿJÿxÿ¥ÿÒÿîÿ &B\v‘¬Èå$@^|š¸Õô2Qt–ýÛ¸–vN&þÔ¤tD乎^>þÿàÿÃÿ¦ÿ‰ÿqÿUÿ9ÿÿÿÜþ±þ†þ\þKþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþNþƒþ·þìþÿKÿxÿ¦ÿÓÿïÿ (D^x’¬Éæ"?\y—µÒð.Nm�üÚ¸•sK"úÒ¢rCè½’gG'çÿÊÿ­ÿ�ÿsÿWÿ;ÿÿÿØþ­þ‚þWþFþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþCþKþ€þ´þéþÿLÿyÿ¦ÿÔÿðÿ )E_y“­Êæ =Zw”²Ïì *Ji‰ùΫ‰gAñɨxHùÏ£yW7÷ÿÔÿ·ÿšÿ}ÿVÿ:ÿÿÿÒþ§þ|þQþAþ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þHþþ´þéþÿJÿxÿ¥ÿÓÿñÿ )E_y“­Éå>[x•µÒð +KkŠöÊ }[6èÀž~NÿൊhF&äÿÁÿ¤ÿ‡ÿ`ÿ:ÿÿÿÑþ¡þvþKþ<þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ:þDþ|þ³þèþÿIÿvÿ¤ÿÑÿïÿ )F_y”®Éä=\y–¶Öó.LlŒòÇœqO)ß¶•tS#åÇœzX6ôÿÑÿ®ÿ‘ÿjÿDÿÿÿÑþ þpþEþ7þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ6þAþyþ°þçþÿIÿuÿ¢ÿÏÿíÿ )F`z”®Éä<[z—·×÷2Om�ðÅšoDùÓ®�lK* ìÍ®ŒkI'áÿ¿ÿœÿuÿOÿ(ÿÿÑþ¡þpþ@þ3þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ3þ?þvþ­þåþÿIÿuÿ¢ÿÏÿíÿ )Ga{•¯Êå;[z™¹Ùù7Tq�켑f;ņ̃�nM,õÖ¸•sQ/åÿÃÿ ÿpÿIÿ"ÿûþËþ›þkþ;þ/þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ0þ=þwþ¯þæþÿIÿvÿ£ÿÏÿîÿ *Hb|–°Êå<[{š»Ûû7Tq�踈]2êÅŸ‡pO.ÿàÁž{Y7éÿÇÿ¤ÿtÿCÿÿöþÆþ–þfþ5þ+þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ-þ<þvþ°þçþÿJÿvÿ£ÿÏÿîÿ +Ic}—±Ëå<\{›»Ýý8Tq�åµ…U*⾘�jR1ę̂…bAóÿÌÿ©ÿyÿHÿÿòþÂþ’þbþ1þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ+þ<þvþ°þêþ!ÿLÿxÿ¤ÿÑÿïÿ-Ke€š´Îç<]}œ½Þÿ;Wr�㳃S#ÿÛ·“|dL5î×´‘nK$ýÿÖÿ¯ÿÿNÿÿîþ¾þŽþ^þ.þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ*þ<þvþ°þêþ$ÿPÿ|ÿ§ÿÓÿòÿ/Nh‚�·Ñê>^ŸÀá#?Zv’ß³ƒS#ÿÛ·“zcK4ìÕ±ŽkHøÿÑÿªÿvÿFÿÿåþ¼þŒþ\þ,þ&þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ*þ?þ}þ·þñþ+ÿVÿ‚ÿ­ÿÙÿ÷ÿ5Sl† »Óí!@`�¡Áã%@[w“Ú®‚R"þÛ·“zbJ2êÒ®ŠhDóÿÌÿ¥ÿqÿ=ÿ ÿÜþ´þŠþZþ*þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ+þBþ€þ¾þøþ2ÿ]ÿˆÿ´ÿàÿþÿ:YrФ¾×ð #Cbƒ£Ää&A\x”Öª~Q!þÛ·“zaI1èЬˆdAðÿÇÿ ÿlÿ8ÿÿÔþ«þ‚þYþ)þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ+þDþƒþÁþÿ:ÿdÿ�ÿºÿæÿ"@^w�¨ÂÛó %Ee…¥Åæ'C]x”Ò¦zM!þÚ¶“zaI0ÿæÎª†b>ìÿÄÿ›ÿgÿ3ÿÿþËþ¢þyþPþ'þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ,þGþ†þÄþÿAÿlÿ–ÿÁÿìÿ (Fd|•®ÆÞ÷(Hh‡§Èè)D_z•ʤxLýÙ¶’w^F-ùáȤ€\8æÿ½ÿ”ÿ]ÿ)ÿõþÁþ‚þQþ2þ$þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ#þ-þKþŒþËþ ÿHÿqÿœÿÆÿñÿ +Ig~–¯Çàø*JjŠ©Êë ,Gb}˜Â�wKüÙ¶“w\C*ôÜß{W3 ßÿ·ÿŽÿWÿ ÿìþ¸þzþKþ.þ#þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ#þ.þPþ‘þÓþÿPÿyÿ¡ÿÌÿ÷ÿ/Mk‚™±Êâû,Mm�­Íï/Kg��º•oJûÙ¶“x\A( ò׿švR.Úÿ±ÿˆÿQÿÿãþ¯þsþFþ,þ"þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ!þ#þ0þUþ–þØþÿXÿ�ÿ©ÿÒÿýÿ6Rp†�´Ìåþ.Op�°Ñò3Oj†¡³�hBûص“x]A& ðÕº–qM)ÿÿÕÿ¬ÿ‚ÿKÿÿÝþ¦þkþAþ)þ!þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ#þ3þZþ›þÝþÿ`ÿ‰ÿ±ÿÚÿ;Xt‹¡¸Ïç1Qr“³Ôõ7Sn‰¥«Šd?øÕ³�tY>"ìѶ’nI%ûÿÑÿ§ÿ~ÿCÿ ÿÕþžþdþ<þ&þþþþþþþþþþþ$þ"þ þþþþþþþþþþ#þ6þaþ¡þâþ$ÿeÿ‹ÿ´ÿÜÿ =Yu‹¢¹Ðè2St”µÖø:UqŒ¨¢�`:óÒ¯ŒpT9æË°ŒhD öÿÌÿ¢ÿxÿ=ÿÿÌþ”þ\þ6þ#þþþþþþþþþþ;þ?þ:þ5þ0þ,þ(þ%þ"þþþþþ"þ8þfþ¦þæþ(ÿjÿ�ÿµÿÞÿ"=YuŒ¢¹Ðè2St•µ×ù;WrŽ©—uT2 ëʨ†jN2ûßè„`<îÿÃÿ™ÿoÿ5ÿúþ¿þˆþRþ.þþþþþþþþþþ>þkþgþaþZþSþMþGþAþ;þþþþþþ8þiþ©þéþ)ÿkÿ‘ÿ¶ÿÜÿ ;Ws‰ŸµÌåþ/Pq“³Õ÷9Uq�¨ðÏ­ŒkI(åÄ¢€_C' ïÓ¸œ€\8ðÿÆÿœÿqÿGÿ ÿÒþ—þ\þ(þþ÷ýôýôýôýôýôýôýôýþEþpþlþgþaþ\þVþPþIþBþþôýôýôýüýþLþŒþÌþ ÿLÿrÿ˜ÿ½ÿãÿþÿ5Pf|“©ÂÚó -Np‘³Ôö4Pk‡ââ€_?üÛ»™xV< èβ–zW3ëÿÀÿ•ÿkÿAÿÿÈþ�þSþ þþôýòýòýòýòýòýòýòý!þVþ~þ~þ}þ{þyþvþrþoþbþ)þòýòýóýýýþSþ�þÍþ ÿMÿoÿ”ÿºÿàÿûÿ2Mdz�¦ÀØñ ,Mn�±Óõ2Nj†Ø¹šxW8öÕµ”sR8æË°”xU2êÿ¿ÿ“ÿiÿ?ÿÿÃþˆþNþþþöýôýôýôýôýôýôýôýþNþrþvþyþ|þ~þþ€þ€þpþ;þþôýöýþ%þ^þ˜þÑþÿRÿtÿ–ÿ»ÿáÿüÿ3Nd{‘¨ÁÚó .Op’´Õ÷5PlˆÒ²“sR2óÒ²‘qP6æË°•zV3ìÿÁÿ•ÿjÿ@ÿÿÄþ†þKþþþúýúýúýúýúýúýúýúýúý2þQþXþ^þdþiþnþsþwþdþ3þþúýüý þ1þmþ¦þàþÿYÿ{ÿ�ÿ¿ÿåÿ7Ri•¬Åßø3Tu—¹Ûý:Vr�ί�oP1ñÒ²‘qQ7éγ™~[7ñÿÆÿ›ÿoÿDÿÿÈþŠþLþ!þ þþþþþþþþþþþ,þ2þ9þ?þFþLþSþYþAþþþþþþAþ~þ·þñþ*ÿdÿ†ÿ¨ÿÊÿìÿ#>Yo†�³Íæÿ;\}ŸÁã'C_z–ãÆ¦†gJ* ëͬŒlT: íÒ¸�zW4äÿ¸ÿ�ÿbÿ"ÿäþ¦þhþ?þ*þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ.þ1þ5þ9þ>þCþIþOþ/þ%þ%þ%þ*þ?þlþ¬þÜþÿOÿˆÿ§ÿÉÿëÿ (D_z‘¨¾Õï";]~ Áä(JÚ½Ÿ`C%çÈ©‰iQ9íÓ¹ž{X5åÿ¸ÿ�ÿaÿ"ÿãþ¥þgþ@þ.þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ+þ,þ-þ0þ2þ*þ*þ*þ*þ1þJþzþ»þëþÿUÿ�ÿ®ÿÍÿîÿ,Gb}”¬ÂØò &?aƒ¤Åè ,Nα“uV9þßÀ¢ƒcK3éзœyW4ãÿ·ÿ‰ÿ^ÿÿàþ¡þcþ>þ/þ,þ,þ,þ,þ,þ,þ,þ,þ,þ,þ,þ,þ,þ,þ,þ,þ,þ,þ,þ,þ,þ-þ5þRþ…þÇþøþ)ÿYÿ“ÿ±ÿÐÿïÿ,Gc~•¬ÃÙó 'Ab„¥Çé -OæˆjM0õغ›|^F.ÿæÍ´›xV3ãÿ¶ÿ‰ÿ\ÿÿÞþžþ_þ>þ1þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ1þ;þ\þ’þÕþÿ6ÿfÿ—ÿ¶ÿÔÿóÿ-Hd–­ÄÛõ)Cd†¨Éë0R¼ ƒeH+ñÔ¶˜y[D,ýä˲™wT1ßÿ²ÿ…ÿXÿÿÚþ›þ\þ=þ3þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ3þAþeþžþâþ ÿ:ÿkÿ›ÿ¹ÿ×ÿöÿ0Lg‚™°ÇÞù-GiЬÍð4V´˜|_A% ëα“uW@)ùáȯ–tQ/ Üÿ­ÿÿRÿÿÖþ—þWþ<þ4þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ5þFþnþ©þîþÿ=ÿnÿŸÿ¼ÿÙÿøÿ2Mi„›³Éáû0Ik�¯Ñó8Z¬�tX:æÈ«ŽqR<%öÞŬ“qN, ÚÿªÿzÿMÿÿÑþ’þSþ;þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ8þLþwþµþúþ"ÿJÿqÿ¢ÿ¿ÿÝÿúÿ4Pk†�´Ìãý2Ln�²Ôö;^£‡kO3úÞÂ¥ˆjM6  òÙÀ¨�mJ(Öÿ¦ÿwÿGÿ ÿÊþŒþNþ9þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ9þlþŸþÒþÿ-ÿTÿ|ÿ¤ÿÂÿßÿüÿ5Pl‡ž¶Íäþ4Np’´Öø>`¨ŠnR6üßÃ¥ˆkM2íѸŸ†dB ýÿËÿ›ÿkÿ;ÿÿÆþˆþIþ7þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ4þ;þuþ¨þÛþÿ3ÿZÿ‚ÿªÿÈÿåÿ =Xsާ¾Õí"<Ww™»Ýþ Ce«ŽoT8üàÃ¥‡jM1ÿèË®•}[9ôÿÁÿ�ÿ_ÿ/ÿøþÁþ‚þDþ4þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ<þvþ±þäþÿ;ÿ_ÿ‡ÿ¯ÿÍÿëÿ%B^y•­ÅÝô)D_ŸÁã%Gi¯‘sU9þàÄ¥‡iL0ùãÅ©ŒsQ/ ëÿ¸ÿ…ÿRÿ#ÿëþ´þ}þ?þ1þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ1þ=þwþ²þíþÿDÿhÿŒÿ´ÿÒÿïÿ +Gc›³Ìäû1Lf‡§Çé +Kn²”vX:þáÃ¥†hJ.øÜ¿¢…hF$àÿ­ÿ{ÿHÿÿÞþ¦þoþ8þ.þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ/þ=þxþ²þìþ'ÿKÿpÿ”ÿ¸ÿÖÿôÿ/Kh„ ¸Ñê8Rm�®Îî0Pq¸—y[=þáã…fH& ïÔ²•w[8ôÿÒÿžÿkÿ8ÿÿÙþ¢þjþ3þ+þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ-þ?þ}þ·þòþ,ÿPÿtÿ™ÿ½ÿÜÿúÿ5Ro‹§ÁÙò %@[u”´Ôõ4Uu¾�|^@þࢃdF$çÌ©‡jM+ æÿÄÿ�ÿ\ÿ)ÿöþÊþ�þfþ.þ(þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ,þAþþ¼þ÷þ2ÿUÿyÿ�ÿÂÿáÿ<Xu’®Èâú.Hc~œºÛû8Yzâ‚aC"ࢂbD"ßá]?ûÿÙÿ·ÿ‚ÿNÿÿçþºþŽþaþ*þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ*þCþ�þ¿þüþ7ÿ[ÿ~ÿ¢ÿÆÿåÿ$B_|™µÏé6Ql‡¥Ãá ?^˪ŠiH'åĤ„dD"ß½›xV4ðÿÍÿ«ÿvÿBÿÿÙþ¬þ€þTþ'þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ$þ,þGþ…þÂþÿ>ÿbÿ†ÿ©ÿÍÿìÿ +Jg„¡¾Øò &A[v‘¯Íì )Hf…Ä£‚aAÿݼœ|\<÷Õ³�mK)äÿÂÿ ÿlÿ8ÿÿÏþŒþWþ5þ'þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ&þ/þNþˆþÆþÿAÿcÿ‡ÿ«ÿÎÿîÿ ,Ki†£ÀÛõ)E`z•´Òð.MkнœzZ9÷Öµ”tT4í˪†b@ûÿÙÿ·ÿ•ÿaÿ-ÿùþÄþ„þRþ4þ(þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ(þ3þTþ�þÊþÿEÿfÿˆÿ¬ÿÐÿïÿ.Mkˆ¦ÂÝø,Hdš¸×õ2Rp�¹˜vU4òÒ°�oO/ èÄ£[8óÿÑÿ®ÿŒÿYÿ%ÿòþ½þ€þQþ5þ,þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ-þ;þ^þ™þÓþÿLÿmÿŽÿ°ÿÔÿóÿ2Qo�«Èãþ3Nj†¡ÀÞý:Yx—µ”rQ0îͬ‹kJ*㿜xT1 ëÿÈÿ¦ÿ„ÿPÿÿêþ¶þ{þPþ7þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ2þBþhþ¢þÝþÿRÿsÿ•ÿ¶ÿØÿ÷ÿ6Vt‘¯Íè9UpŒ¨Çæ#Ba€Ÿ¤‡fD#åĤƒcB"üÙµ’lI%ßÿ½ÿ›ÿyÿLÿÿäþ±þyþQþ<þ5þ5þ5þ5þ5þ5þ5þ4þ2þ2þ2þ2þ2þ2þ5þ5þ5þ5þ5þ5þ5þ5þ9þLþrþ¡þÜþÿQÿrÿ”ÿµÿÖÿ÷ÿ6Uu“°Îì"=[w“®Îí +Kj‰¨•y\;ý࿞~]=÷Ñ®Še@øÿÖÿ´ÿ’ÿpÿCÿÿãþ¯þzþVþDþ?þ>þ>þ>þ>þ>þ>þþþþþþþþ>þ>þ>þ>þ>þ>þ>þ?þDþYþþ®þÝþÿSÿtÿ•ÿ·ÿØÿøÿ8Ww—µÒñ*Ec�œ¸Øø5Vw•´‰lP3õؼšzZ:ôΩ…`;òÿÐÿ®ÿŒÿiÿ<ÿÿâþ¯þ~þ^þNþJþJþJþJþJþJþJþîýìýìýìýìýìýìýJþJþJþJþJþJþJþJþQþgþŽþ½þìþÿVÿwÿ™ÿºÿÛÿüÿ<\|›»Ù÷3NlЍÄä$Bcƒ¤Ã×·˜xX;åȬ�rR2ñ˦€[6ëÿÆÿ¤ÿ‚ÿ`ÿ>ÿÿäþ·þŠþ^þAþ3þ0þ0þ0þ0þ0þ0þ0þòýðýðýðýðýðýðý0þ0þ0þ0þ0þ0þ0þ1þ9þPþxþ§þÖþÿ5ÿVÿxÿ™ÿºÿÚÿûÿ;[{šºØö3QnŒªÊê *JkŒ¬À �aA) ïÒº��dD#ã»–qK$ÿÿÚÿ´ÿ”ÿrÿQÿ/ÿ ÿÝþ°þƒþYþ@þ4þ1þ1þ1þ1þ1þ1þ1þKþMþMþMþMþMþMþ1þ1þ1þ1þ1þ1þ1þ2þ<þTþzþžþÍþüþ+ÿNÿpÿ‘ÿ²ÿÓÿóÿ4Vv•µÖõ1QoŒªÌì ,Nn�¯©‰iJ*ùÜ¿§�rV6õÕ®†`;íÿÈÿ¢ÿƒÿcÿAÿÿúþÖþ©þ|þVþ?þ4þ3þ3þ3þ3þ3þ3þ3þ¦þ¨þ¨þ¨þ¨þ¨þ¨þ3þ3þ3þ3þ3þ3þ3þ4þ?þWþ}þ þÃþóþ"ÿEÿhÿ‰ÿªÿËÿìÿ -Oq‘°Òó/Oo�ªÌî.Pr’³—wW7þæÍ±˜€hK+ ëË£|T/áÿºÿ•ÿuÿUÿ5ÿÿïþËþ¦þyþWþCþ9þ8þ8þ8þ8þ8þ8þ=þÓþÖþÖþÖþÖþÖþÖþBþ8þ8þ8þ8þ8þ8þ:þFþ_þƒþ§þÊþíþÿ?ÿbÿ…ÿ§ÿÈÿéÿ *Ln�°Ñò2Qq‘¯Ðò4Vxš»‚bB"éѸ ˆoW?ÿß¿—pH!úÿÓÿ¬ÿ…ÿeÿFÿ&ÿÿâþ½þ˜þtþVþEþ<þ;þ;þ;þ;þ;þ;þfþüþÿþÿþÿþÿþÿþÿþkþ;þ;þ;þ;þ;þ;þ>þKþdþˆþ«þÎþòþÿ8ÿ[ÿ~ÿ¡ÿÂÿãÿ%Gi‹­Îï2Rr‘±Óô8Z|žÀ”sS3ûâʱ™�iP0ðЩ‚Z3 åÿ¾ÿ—ÿzÿZÿ;ÿÿþþÙþ´þ�þtþdþ\þ\þ\þ\þ\þ\þ\þ¬þBÿEÿEÿEÿEÿEÿEÿ±þ\þ\þ\þ\þ\þ\þ`þmþ†þ«þÈþìþÿ2ÿTÿwÿšÿ½ÿÝÿþÿ@c…§Éì/Pq‘±Ñò6X‡fF&îÖ½¤Œt\D$äÄ�vN&Ùÿ²ÿ‹ÿnÿRÿ2ÿÿôþ×þ²þŽþtþeþ_þ^þ^þ^þ^þ^þ^þÔþjÿmÿmÿmÿmÿmÿmÿÙþ^þ^þ^þ^þ^þ^þcþqþ‹þ°þÎþëþÿ2ÿSÿtÿ˜ÿºÿÛÿûÿ=`ƒ¥Çê/Pr“³Òô7YyY9øàȯ—gO6ö×¶�hAòÿÌÿ¥ÿ~ÿaÿEÿ(ÿÿêþÍþ¯þ‹þsþfþ`þ`þ`þ`þ`þ`þeþûþ‘ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿÿjþ`þ`þ`þ`þ`þfþuþ�þµþÒþïþ ÿ0ÿQÿsÿ”ÿ·ÿ×ÿøÿ9\¢Äç /Pq’³Óõ8YlL+ êÒº¡‰qYA) éÉ©‚Z3 åÿ¾ÿ˜ÿqÿTÿ7ÿÿþþàþÃþ¥þˆþsþfþaþaþaþaþaþaþŒþ"ÿ¸ÿ»ÿ»ÿ»ÿ»ÿ»ÿ»ÿ'ÿ‘þaþaþaþaþbþhþyþ”þ¹þÖþôþÿ.ÿPÿqÿ’ÿ´ÿÔÿôÿ5X{žÁå+Op’³Ôö8Z`>ýÝê’z`H0øØ¸˜sL%ýÿÙÿ²ÿ‹ÿdÿMÿ0ÿÿöþàþÂþ¥þ‡þsþgþcþcþcþcþcþcþ±þGÿÝÿßÿßÿßÿßÿßÿßÿKÿµþcþcþcþcþcþkþ}þšþÂþÞþûþÿ6ÿOÿqÿ’ÿ³ÿÑÿñÿ2X{žÁé 0Su—¸Ùó6XX6ôÓ¹Ÿ‡nT:" ëË«‹fAòÿÎÿªÿƒÿ\ÿDÿ,ÿÿòþÜþÅþ¨þŠþwþlþhþhþhþhþhþhþ³þIÿßÿáÿáÿáÿáÿáÿáÿMÿ·þhþhþhþhþiþqþ…þ¥þÐþëþÿ$ÿAÿ[ÿtÿ•ÿ·ÿÕÿòÿ3Y€¢Æí8\~ŸÁâü8YR0í̲˜~fL2àÁ¡�\7ëÿÆÿ¢ÿ}ÿVÿ>ÿ&ÿÿòþÛþÄþ­þ�þ~þtþqþqþqþqþqþqþžþ4ÿÊÿÌÿÌÿÌÿÌÿÌÿÌÿ8ÿ¢þqþqþqþqþrþ{þ‘þ³þàþûþÿ3ÿPÿiÿƒÿœÿ½ÿÛÿùÿ7]ƒªÍôDh‰«Íî"=^L*çÅ«‘w]C)õÕµ–vQ,âÿ½ÿ™ÿtÿPÿ8ÿ ÿÿðþÙþÃþ¬þ•þ…þ{þxþxþxþxþxþxþˆþÿ´ÿ¶ÿ¶ÿ¶ÿ¶ÿ¶ÿ¶ÿ#ÿ�þxþxþxþxþyþ„þœþÁþïþ ÿ&ÿBÿ^ÿwÿ�ÿªÿÃÿáÿþÿ:`†­Óû#Jr”µ×ù-HbK)åèŽtZ>$ ðѱ‘qO*àÿ½ÿ™ÿtÿPÿ;ÿ#ÿ ÿóþßþÈþ±þ›þ‹þ�þþþþþþþþÿ�ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿþþþþþ€þŒþ¦þÎþýþÿ5ÿQÿlÿÿ˜ÿ²ÿËÿçÿ"@i�µÜ/V~ŸÁã2LgJ'ãÁ¥‰pV:êË«‹lI&Üÿºÿ˜ÿsÿNÿ:ÿ%ÿ ÿõþáþÌþ¶þŸþ�þ†þ„þ„þ„þ„þ„þ„þ„þðþ†ÿˆÿˆÿˆÿˆÿˆÿˆÿôþ„þ„þ„þ„þ„þ†þ“þ¯þÚþ ÿ'ÿBÿ^ÿzÿ�ÿŸÿ¹ÿÒÿîÿ 'En—½ä9a‰ªÌî#6PjG$Þ½¡…iO4ýããƒdAüÿ×ÿµÿ’ÿpÿKÿ7ÿ"ÿ ÿõþáþÍþ¸þ¡þ’þ‰þˆþˆþˆþˆþˆþˆþˆþÖþlÿnÿnÿnÿnÿnÿnÿÚþˆþˆþˆþˆþˆþŠþ˜þ¶þãþÿ2ÿNÿjÿ…ÿ˜ÿ«ÿ¾ÿ×ÿóÿ*HqšÃé?j’´Õ÷+?RlBýÚ·›dH-õÚº›{[9óÿÑÿ¯ÿŒÿjÿGÿ2ÿÿ ÿôþàþÌþ·þ£þ”þŒþŠþŠþŠþŠþŠþŠþŠþ»þQÿSÿSÿSÿSÿSÿSÿÀþŠþŠþŠþŠþŠþ�þ²þ×þüþ!ÿ=ÿYÿtÿ�ÿ£ÿµÿÈÿÛÿ÷ÿ.JsœÅîDoš»Ýÿ 3GZmJ(â¿£ˆlP5þâãƒcAüÿÙÿ·ÿ”ÿrÿOÿ9ÿ%ÿÿûþâþÎþ¹þ¥þ–þŽþ�þ�þ�þ�þ�þ�þ�þ þ6ÿ9ÿ9ÿ9ÿ9ÿ9ÿ9ÿ¥þ�þ�þ�þ�þ�þ�þ¶þÛþÿ%ÿBÿ^ÿzÿ•ÿ©ÿ¼ÿÏÿáÿþÿ6Qz£Ìõ Kv¡Ãä';NbuO- èÅ©�qV:èȨˆhF$Þÿ¼ÿšÿwÿTÿ>ÿ(ÿÿÿþæþÌþ¸þ¤þ–þ�þŒþŒþŒþŒþŒþŒþŒþŒþÿÿÿÿÿÿÿŒþŒþŒþŒþŒþŒþ�þ¶þÜþÿ&ÿDÿaÿ|ÿ˜ÿ¬ÿÀÿÒÿåÿ:V§Ðú$Oz¥Çè ,?SfzS1ìÉ­‘vZ>#ì̬�mJ(ãÿÀÿžÿ{ÿYÿCÿ-ÿÿÿéþÐþ¶þ¢þ”þŒþ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þúþüþüþüþüþüþüþ‹þ‹þ‹þ‹þ‹þ‹þŽþµþÛþÿ'ÿDÿaÿ~ÿšÿ­ÿÁÿÕÿçÿ!>Z‚«Ôý(R}¨Êì /BVj}V4ïͱ•y]A& ïϯ�pM+æÿÃÿ¡ÿÿ\ÿFÿ0ÿÿÿëþÑþ¸þŸþ�þ‰þ‰þ‰þ‰þ‰þ‰þ‰þ‰þ‰þÚþÜþÜþÜþÜþÜþÜþ‰þ‰þ‰þ‰þ‰þ‰þŒþ²þÙþÿþ&ÿCÿ`ÿ}ÿšÿ®ÿÁÿÕÿéÿ#?\…­Öÿ*UªÌí1EXl€_?úؼ „hM1úÚº›{Y6ñÿÏÿ¬ÿŠÿhÿKÿ5ÿÿ ÿåþÌþ²þ™þ�þ†þ†þ†þ†þ†þ†þ†þ†þ†þºþ¼þ¼þ¼þ¼þ¼þ¼þ†þ†þ†þ†þ†þ†þ‰þ—þ·þçþÿ?ÿ\ÿyÿ–ÿ­ÿÀÿÔÿèÿ#?\„¬Õþ'R|§Éë .FYm�iH'ãÇ«�sX=!åŦ†dBüÿÚÿ¸ÿ•ÿsÿWÿ:ÿ$ÿÿêþÆþ­þ“þˆþƒþƒþƒþƒþƒþƒþƒþƒþƒþšþ�þ�þ�þ�þ�þ�þƒþƒþƒþƒþƒþƒþ…þ’þ°þÞþÿ4ÿXÿuÿ‘ÿ¨ÿ¿ÿÓÿçÿ#@\„«Ôü%Ny¤Æé ,CZn‚sS1îÒ·›dH-òÒ²’pM+ æÿÄÿ¢ÿÿcÿGÿ+ÿÿðþÌþ¨þ�þƒþþþþþþþþþþþþþþþþþþþþþþþ�þŒþ¨þÔþÿ+ÿNÿqÿŽÿ¥ÿ¼ÿÓÿçÿ#A^…¬Óü%Nw¢Äç +BYp„~]<úÞç‹pU9þÞ¾ž|Y7óÿÐÿ®ÿŒÿpÿSÿ7ÿÿ÷þÓþ®þŠþ~þ{þ{þ{þ{þ{þ{þ{þ{þ{þpþnþnþnþnþnþnþ{þ{þ{þ{þ{þ{þ|þ…þžþÈþþþ!ÿEÿhÿ‹ÿ¢ÿ¹ÿÐÿçÿ#A_†­Õü%Nw Âä)@Wo†ƒcB!åÉ­‘v[@$åÅ¥‚`>ùÿ×ÿµÿ“ÿlÿPÿ4ÿÿîþÊþ¦þ‚þxþwþwþwþwþwþwþwþwþwþjþhþhþhþhþhþhþwþwþwþwþwþwþwþ~þ”þ¼þïþÿ=ÿ`ÿƒÿžÿµÿÌÿãÿ!?]ƒªÑù!Jsœ¿á&?Vn…ŠjJ)ìѵ™~bG, ì̬ŠhF$ßÿ½ÿšÿtÿMÿ1ÿÿìþÃþŸþzþsþrþrþrþrþrþrþrþrþrþjþhþhþhþhþhþhþrþrþrþrþrþrþrþxþ‹þ°þâþ ÿ6ÿYÿ|ÿ—ÿ²ÿÉÿàÿ >\‚¨ÏöFo˜»Þ#=Vn…‘qQ1õÙ½¢†kP5õÕµ“qN, èÿÅÿ£ÿ}ÿVÿ0ÿÿëþÁþ™þtþnþmþmþmþmþmþmþmþmþmþlþjþjþjþjþjþjþmþmþmþmþmþmþmþqþ‚þ¤þÕþÿþ)ÿSÿwÿ‘ÿ¬ÿÇÿÞÿþÿ>\‚¨ÎõEm–¹Üÿ!;Uo†}]=ýáÆªŽsX<!⢀^;÷ÿÔÿ²ÿ�ÿiÿCÿÿöþÍþ¤þ{þRþLþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþNþ]þ}þ¬þÖþÿ+ÿUÿpÿŠÿ¥ÿÀÿàÿ @fŒ²Ø(Px›¾á7Qk…Ÿ¹Ó~_?ÿãǬ�tY>"ãäƒ`>ûÿØÿ¶ÿ”ÿgÿAÿÿôþÉþ þwþNþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþJþWþuþ¥þÕþÿ*ÿTÿtÿ�ÿªÿÄÿæÿ&Fk‘·Ý,T|ŸÂå"<Uo‰£½×€`@ åÉ­‘vZ?$åŦ…dAþÿÜÿºÿ˜ÿkÿ?ÿÿòþÇþœþsþJþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþFþRþnþžþÎþþþ)ÿSÿsÿ“ÿ®ÿÈÿêÿ ,Lq–¼â /W€¢Åè &@Zs�§ÁÜ‚bB"æË¯“x\A%æÇ§†eD"àÿ¾ÿœÿpÿCÿÿðþÅþšþoþFþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þBþMþhþ—þÇþ÷þ(ÿRÿrÿ’ÿ²ÿÍÿîÿ2RwœÁç4[ƒ¦Éì*D^x’¬Æà‚bB#ç˰”x]A&çǨ‡fE$áÿÀÿŸÿsÿFÿÿíþÂþ—þlþAþ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ=þHþcþ�þ¿þïþ ÿPÿpÿ�ÿ°ÿÐÿòÿ5W|¡Æë8_†©Ìï,Fa{•¯Éã`@ äÈ­‘vZ>#äŦˆgF%åÿÃÿ¢ÿrÿEÿÿìþ½þ’þgþ<þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ8þBþ]þ‰þ¿þðþ ÿPÿwÿ—ÿ·ÿ×ÿüÿ?a‚§Ìñ;b‰«Îñ.Hb}–°Êä{\=ýáŪŽsW; ⣅hG%èÿÇÿ¥ÿuÿDÿÿëþ¼þ�þcþ7þ2þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ3þ=þWþƒþ¹þïþ ÿPÿwÿŸÿ¿ÿÞÿ'IkŒ®Óø>eŒ®Ñô0Jd~˜²ËåyZ;üàĨŒqU9ÿàÁ¢„fH'êÿËÿªÿyÿHÿÿëþ¼þ�þ_þ4þ.þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ-þ/þ8þRþ}þ´þêþ!ÿQÿxÿ ÿÇÿçÿ /Tu—¹Û#Fi�²Ô÷3Mg�›´ÎèxY:ûßç‹pT9þßÀ¡ƒfH* íÿÎÿ¯ÿ~ÿNÿÿìþ½þ�þ`þ1þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ,þ5þNþyþ°þæþÿSÿzÿ¢ÿÉÿðÿ8]�£Åæ+Nq”·Ùü8Rk…Ÿ¸ÒëvW7ùÝÁ¥‰mR7üݾŸƒeH* îÿÏÿ±ÿÿNÿÿìþ»þŒþ^þ/þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ)þ1þJþtþ®þäþÿQÿ}ÿ¤ÿËÿòÿ<`„¤Æè +Nq”¶Øû7Pj„�¶ÐéuU6÷ÜÀ¤ˆmQ5ûܾŸƒgI+ñÿÒÿ³ÿ�ÿOÿÿíþ¼þ‹þ\þ.þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ'þ/þGþpþªþãþÿQÿ|ÿ§ÿÎÿöÿ@d‰©Éê -Nq”¶Ùû7Pjƒ�µÏévW8ùݦŠnS8ýÞÀ¡…iM/ôÿ×ÿ¸ÿ†ÿTÿ"ÿòþÀþ�þ^þ/þ'þ'þ'þ'þ'þ'þ'þ'þ'þ þ þ þ þ þ þ þ'þ'þ'þ'þ'þ'þ'þ'þ'þ/þFþoþ©þâþÿSÿ~ÿ©ÿÔÿüÿ!Fl�°Ðð2Tt—ºÜþ!:Sl†Ÿ¸Ñëz[;ýáŪŽrW; âÄ¥‰mQ5úÿÝÿÀÿŽÿ\ÿ*ÿøþÇþ•þdþ3þ+þ*þ*þ*þ*þ*þ*þ*þ*þÛýÛýÛýÛýÛýÛýÛýþ*þ*þ*þ*þ*þ*þ*þ*þ2þHþpþªþãþÿWÿ‚ÿ­ÿÙÿ)Nt™¹Ùù:[|�¿á&?Xr‹¤½Öï}]>ÿãȬ�tY>"äŦ‰mQ5ùÿÜÿ¿ÿ’ÿ`ÿ.ÿüþÊþ™þhþ7þ.þ-þ-þ-þ-þ-þ-þ-þ-þÇýÇýÇýÇýÇýÇýÇýþ-þ-þ-þ-þ-þ-þ-þ-þ4þIþoþ§þàþÿTÿƒÿ®ÿÚÿ+Pv›·Øø4Uv—¹Ûý?XqŠ©ÂÛôzZ:üàĨ�qU9þßÀ¡„gK/òÿÕÿ¸ÿ‹ÿ]ÿ+ÿùþÈþ—þfþ5þ+þ*þ*þ*þ*þ*þ*þ*þ*þýýýýýýýýýýýýýý*þ*þ*þ*þ*þ*þ*þ*þ*þ1þDþhþ þ×þÿKÿzÿ©ÿÔÿÿÿ&Lq—³Ðð-Ik‹­Îñ2Qk„£ÁÛótT5õÙ½¡†jN3÷عš}_B&éÿËÿ®ÿ�ÿSÿ&ÿôþÃþ’þaþ/þ%þ$þ$þ$þ$þ$þ$þ$þ$þgþgþgþgþgþgþgþ*þ$þ$þ$þ$þ$þ$þ$þ$þ*þ<þ_þ–þÎþÿ?ÿnÿ�ÿÌÿ÷ÿDj�¬Éå"?\}žÀá#Ba{™¸×ðmM.îÒ¶š~bF+ðа‘tV9þÿàÿÁÿ£ÿvÿHÿÿîþ½þŒþZþ)þþþþþþþþþFþÑþÑþÑþÑþÑþÑþÑþ“þþþþþþþþþ"þ3þTþŒþÃþúþ2ÿaÿ�ÿ¿ÿîÿ:a‡¤ÀÝú4PmްÒó2Qp�®ÌëlK+ ëϳ—{^B& êÊ«‹kN1ôÿÕÿ·ÿ™ÿsÿEÿÿëþ½þŒþ[þ)þþþþþþþþþtþþþþþþþþþþþþþþþÁþ+þþþþþþþþ!þ0þOþ‚þ¹þñþ(ÿ]ÿ�ÿ»ÿëÿ9_…œ¹Öó$A^}ŸÀâ *Ih‘¯ÎílJ( ḛ́”x[>"æÄ¥…fF( ëÿËÿ­ÿŽÿhÿBÿÿèþºþŒþ[þ*þþþþþþþþþ¡þ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿîþXþþþþþþþþþ.þJþ}þ°þçþÿTÿ‰ÿ¸ÿçÿ7]„š±Îë2OnޝÐù"A`‰²ÐïkI(çÊ­�tW;áÀŸ€`@ ãÿÃÿ¢ÿ„ÿ^ÿ8ÿÿäþ·þ‰þ[þ*þþþþþþþþ8þÎþXÿXÿXÿXÿXÿXÿXÿÿ…þþþþþþþþþ+þEþxþ«þÝþÿJÿÿµÿãÿ 3[‚™°Çãù #?_~ž¿è9Y�ªÒñiG&ãÆ©�pS7ýÜ»šyY9ùÿÙÿ¹ÿ™ÿyÿSÿ-ÿÿàþ²þ…þWþ)þþþþþþþþdþúþ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿGÿ±þþþþþþþþþ'þ?þrþ¥þ×þ ÿ?ÿuÿªÿßÿ/W–­ÄÛð/On�­Öÿ'Py¡ÉòjG%âħŠnO2ùÖµ”sQ1ñÿÐÿ°ÿ�ÿpÿOÿ(ÿÿÜþ°þƒþUþ'þþþþþþþþ�þ%ÿ¯ÿ¯ÿ¯ÿ¯ÿ¯ÿ¯ÿ¯ÿrÿÜþFþþþþþþþþ#þ:þlþžþÑþÿ<ÿqÿ¦ÿÜÿ,T|�§¾Õæú$A`€ŸÊòDn–¿çkH%âÃ¥ˆkM/õÒ¯ŽmK) éÿÉÿ¨ÿˆÿhÿFÿ%ÿþþØþ­þ�þSþ%þþþþþþþ$þºþPÿÚÿÚÿÚÿÚÿÚÿÚÿÚÿ�ÿÿqþþþþþþþþþ5þgþ™þËþþþ6ÿmÿ£ÿØÿ)Qy�¡¸Ïßð6Sr‘¼æ7a‹´ÝjG$àÁ¢„gI* ïÌ©†eC!ÿÿßÿ¾ÿžÿ~ÿ^ÿ<ÿÿøþÒþ¦þ{þPþ"þþþþþþþMþãþyÿÆÿ0ÿšþþþþþþþþþ-þ_þ‘þÃþöþ.ÿfÿ�ÿÒÿûÿ#Ksˆœ°ÇØèø*Fb‚¬Ö)S}§ÐhE"ÿܾŸ€bD%èÅ¢\:öÿÔÿ´ÿ“ÿsÿRÿ0ÿÿíþËþ þtþIþþ þþþþþþuþ ÿ¡ÿ+++++++îÿXÿÂþ,þþþþþþ þþ%þWþ‰þ»þíþ%ÿ]ÿ”ÿÌÿôÿEm�–ª¾Îßð8Uq›ÆðDn˜ÂkF#ݺœ}_<ÿ໘uR1íÿËÿ«ÿ‹ÿjÿJÿ*ÿ ÿçþÅþœþqþEþþ þþþþþþžþ4ÿÊÿTTTTTTT�ÿëþUþþþþþþþ þþUþ‡þ¹þëþÿVÿŽÿÅÿìÿ=e{�£¸ÉÙêú/Kh‹µß -W�«qL'á¾›}_;úÛ¶’oK* çÿÅÿ¥ÿ…ÿeÿEÿ%ÿÿäþÂþ™þqþEþþþþþþþþ­þCÿÙÿccccccc&�ÿúþdþþþþþþþ þþQþ‡þ¹þëþÿSÿŠÿÂÿéÿ7_vŒ µÅÖç÷)Ea…§ÒüCm—€[5íʨ…fC ýÞ¹•pM+ èÿÆÿ§ÿ‡ÿhÿGÿ(ÿÿéþÇþžþuþMþ!þþþþþþþ˜þ.ÿÄÿNNNNNNN{ÿåþOþþþþþþþþ þVþŒþÁþóþ'ÿ[ÿ�ÿÇÿíÿ:by�¥¹ÊÛëü.Gc†©Ì÷>a‹�jDú×µ’oL(⽘tO. êÿÉÿªÿŠÿjÿKÿ,ÿ ÿìþÍþ¤þ|þSþ*þþþ þ þ þ þ€þÿ¬ÿ7777777ùÿcÿÍþ7þ þ þ þ þ þþþ&þ\þ’þÇþýþ1ÿdÿ˜ÿÌÿóÿ@f|’©¿Ðàñ4Mf‰¬Ïò9\€žvQ,Þ¼™vN*ä¾™tO/ìÿÊÿ­ÿŽÿnÿOÿ0ÿÿñþÒþ¬þƒþZþ2þþþþþþþhþþþ”ÿáÿKÿµþþþþþþþþþ*þcþ˜þÎþÿ4ÿgÿ›ÿÏÿóÿ@f€–¬ÂÕæ÷7Pi„§Êí -Pt¬…^8ëà~U, æÀ™tP/îÿÌÿ¯ÿ’ÿrÿRÿ4ÿÿöþÖþ°þ‹þbþ:þ%þþþþþþOþåþ{ÿÈÿ2ÿœþþþþþþþþþ.þgþ þÕþ ÿ;ÿjÿžÿÒÿöÿ@g€™¯ÆØìü #:Rl‡¢Åè Dhº“lE øÏ¨…\4 è›tP0ïÿÎÿ°ÿ“ÿvÿVÿ8ÿÿúþÚþµþ�þjþAþ,þ!þþþþþ7þÍþcÿíÿíÿíÿíÿíÿíÿíÿ°ÿÿ„þþþþþþþþ#þ3þkþ¤þÜþÿBÿrÿ¡ÿÕÿùÿAh�š³ÉÜï)?UnŠ¥Àãÿ8[É¢zS,Ü´Œd;êÄ�vP0ïÿÏÿ²ÿ”ÿwÿZÿ;ÿÿþþßþºþ”þnþIþ3þ(þ%þ%þ%þ%þ%þµþKÿÕÿÕÿÕÿÕÿÕÿÕÿÕÿ˜ÿÿlþ%þ%þ%þ%þ%þ%þ%þ(þ7þpþ¨þàþÿIÿxÿ¨ÿØÿüÿ Dh�š³Ìßò.D[qŒ¨ÃÞú3OÓ«„]5 ä¼”iAðÈ¢{U5ôÿÔÿ·ÿšÿ}ÿ_ÿAÿ"ÿÿäþÁþ›þvþQþ:þ.þ*þ*þ*þ*þ*þ›þ1ÿ¼ÿ¼ÿ¼ÿ¼ÿ¼ÿ¼ÿ¼ÿ~ÿèþRþ*þ*þ*þ*þ*þ*þ*þ-þ:þpþ©þáþÿKÿ{ÿ«ÿÚÿýÿ!EiƒœµÎáô/E[rŠ¥ÁÜõ-JÞ¶Žf?ìÄœqFöΧ€Z:ùÿÙÿ¼ÿŸÿ‚ÿdÿFÿ'ÿÿêþÆþ£þ~þXþ@þ3þ/þ/þ/þ/þ/þ‚þÿ¢ÿ¢ÿ¢ÿ¢ÿ¢ÿ¢ÿ¢ÿeÿÏþ9þ/þ/þ/þ/þ/þ/þ/þ1þ=þsþªþâþÿLÿ}ÿ­ÿÜÿ"Fj…Ÿ¸Ñä÷ 1F\r‹£¾Úó (Dç¿—oHôÊ¢xM#úÓ«„]=ýÿÝÿÀÿ£ÿ†ÿiÿJÿ+ÿ ÿîþÊþ§þ„þ_þFþ8þ3þ3þ3þ3þ3þgþýþˆÿˆÿˆÿˆÿˆÿˆÿˆÿJÿ´þ3þ3þ3þ3þ3þ3þ3þ3þ4þ?þuþ¬þâþÿLÿ}ÿ®ÿÞÿ$Gk…Ÿ¹Òåø 2G\rŠ£»Öð ">ñÉ¡yQ'ýÔª€U+Ù±‰bB"âÿÅÿ¨ÿ‹ÿnÿOÿ1ÿÿóþÐþ­þ‰þfþLþ>þ8þ8þ8þ8þ8þNþäþnÿnÿnÿnÿnÿnÿnÿ1ÿ›þ8þ8þ8þ8þ8þ8þ8þ8þ9þBþxþ¯þåþÿLÿ}ÿ¯ÿàÿ&Il† ºÔçú  5I^s‹£¼Ôí 9ô̤|T/Û±‹a6 å½–nK+ ëÿËÿ®ÿ‘ÿtÿUÿ7ÿÿùþ×þ´þ‘þnþRþCþ<þ<þ<þ<þ<þ<þÉþTÿTÿTÿTÿTÿTÿTÿÿ€þ<þ<þ<þ<þ<þ<þ<þ<þ=þEþsþªþàþÿIÿzÿ«ÿÝÿÿÿ#Eiƒ�·Ñåø 3H]q‹£»Óí 9÷ϧW1 ⹓mBñÉ¢{W4ôÿÔÿ´ÿ—ÿzÿ[ÿ=ÿÿÿþÞþ¼þ™þuþXþHþAþ@þ@þ@þ@þ@þ¯þ9ÿ9ÿ9ÿ9ÿ9ÿ9ÿ9ÿüþfþ@þ@þ@þ@þ@þ@þ@þ@þ@þHþvþ¥þÛþÿDÿwÿ¨ÿÙÿüÿBe€›µÏâö 1G[p‰¢ºÓí 9úÒª‚Z5éÀštN#üÕ®‡c@ýÿÝÿ½ÿ�ÿ€ÿaÿCÿ%ÿÿäþÂþ¡þ}þ_þMþEþDþDþDþDþDþ•þÿÿÿÿÿÿÿâþLþDþDþDþDþDþDþDþDþDþJþyþ¨þ×þ ÿ?ÿrÿ¤ÿÕÿùÿ?a|—²Ìßó/EZo‡¡¹Òì!:ýÕ­…]7íÇ¡{U/ẓpM)æÿÆÿ¦ÿ†ÿhÿIÿ+ÿ ÿêþÉþ§þ…þfþRþIþHþHþHþHþHþzþÿÿÿÿÿÿÿÇþHþHþHþHþHþHþHþHþHþHþMþ|þ«þÙþÿ;ÿmÿ ÿÒÿõÿ;^y”®ÉÝñ-CXm†Ÿ¸Ñë :úÔ¬„\=òÍ®ˆb<ñÉ£}Z7ðÿÐÿ°ÿ�ÿrÿSÿ5ÿÿôþÓþ±þ�þmþXþMþLþLþLþLþLþ`þêþêþêþêþêþêþêþ­þLþLþLþLþLþLþLþLþLþLþPþaþ‡þ¿þÿ5ÿgÿšÿÌÿïÿ5WsŽ©ÃÙí+AVk‡ ¹Òî #=÷Ñ«ƒ[<øÓ´•oI%Ù²�gD!þÿÛÿ»ÿ›ÿ|ÿ]ÿ?ÿ!ÿÿþÝþ»þ™þuþ^þRþPþPþPþPþPþPþÎþÎþÎþÎþÎþÎþÎþ�þPþPþPþPþPþPþPþPþPþPþSþbþ†þ»þýþ/ÿaÿ”ÿÇÿéÿ .Qmˆ£½Óéý(?Ti…¡¹Óï &@ôΨ‚Z;þع›|V1 éÁœwQ. èÿÅÿ¥ÿ†ÿhÿIÿ+ÿ ÿçþÅþ£þ}þdþWþTþTþTþTþTþTþ°þ°þ°þ°þ°þ°þ°þsþTþTþTþTþTþTþTþTþTþTþVþdþ…þ¸þøþ*ÿ\ÿŽÿÁÿãÿ(Kf��¸Íãù $;RgƒŸºÓð )Cðʤ~X9üݾ �b>ôЪ…`:ôÿÑÿ®ÿ�ÿqÿRÿ4ÿÿðþÎþ¬þ…þiþZþWþVþVþVþVþVþ”þ”þ”þ”þ”þ”þ”þVþVþVþVþVþVþVþVþVþVþVþXþeþƒþ´þòþ$ÿVÿˆÿºÿÜÿþÿ!C^z–±ÇÜò6Md€œ·Óð )Eu[<ÿ䯧ˆhCúÖ±‹fC ýÿÚÿ»ÿ�ÿ~ÿ_ÿ;ÿÿ÷þÕþªþŒþ|þwþwþwþwþwþwþ™þ™þ™þ™þ™þ™þ™þwþwþwþwþwþwþwþwþwþwþwþyþ„þ þÏþ ÿ=ÿoÿ¡ÿÓÿôÿ9[w“®Éá÷ "<Si� »×ó/KhrX>æÌ­ŽnM(༗rO+æÿÇÿ¨ÿŠÿkÿFÿ"ÿÿÞþ±þ�þ~þyþxþxþxþxþxþ…þ…þ…þ…þ…þ…þ…þxþxþxþxþxþxþxþxþxþxþxþyþƒþ�þÊþÿ7ÿhÿšÿÌÿíÿ0Ro‹¦ÂÚñ6Of}œ»×ò2NjpU; çͳ”sS3êÇ£}Z7ñÿÓÿ´ÿ•ÿwÿRÿ-ÿÿæþ·þ”þ€þzþyþyþyþyþyþ{þ{þ{þ{þ{þ{þ{þyþyþyþyþyþyþyþyþyþyþyþzþ‚þ›þÆþÿ1ÿbÿ“ÿÅÿæÿ(JgƒŸ»Òé0Icy™·×ò1QmkP6ç̲˜xW6òΫ‡dAûÿÜÿ¾ÿŸÿ€ÿ[ÿ6ÿÿíþ¼þ–þ€þyþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþyþ€þ—þÁþùþ*ÿZÿ‹ÿ¼ÿÝÿþÿ@\x•±Èàø(B[t“²Ñð/NnpV; ìÑ·�€`@ܸ”sP- ëÿÌÿ®ÿ�ÿgÿBÿÿøþÅþœþ„þ{þzþzþzþzþzþ^þ^þ^þ^þ^þ^þgþzþzþzþzþzþzþzþzþzþzþzþzþ€þ–þ¾þöþ!ÿRÿƒÿ´ÿÑÿòÿ4RnЧÂÙð%>Wp•´Óò6Vuw\B( 󨾤ˆkJ* ëǤ‚a>üÿÝÿ¾ÿ ÿxÿPÿ+ÿÿÏþ¤þŠþþ~þ~þ~þ~þYþ/þ/þ/þ/þ/þ/þ8þ~þ~þ~þ~þ~þ~þ~þ~þ~þ~þ~þ~þƒþ—þ¾þõþ ÿLÿ|ÿ­ÿÊÿèÿ *Hf‚ž¹Ôì <Vo”¸×ö@_~|bG,øÞéŒpT3ôÔ±�nM* ìÿÍÿ®ÿ†ÿ^ÿ6ÿÿÙþ«þ�þ‚þ€þ€þ€þ€þDþþþþþþþ"þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ„þ—þ½þòþÿIÿtÿ¤ÿÂÿàÿýÿ<Zx”¯Êäü6Rl�´ÙøBf†[@& ñ×¼¢ˆlO2ö׸˜wU4ôÿÕÿ¶ÿ—ÿoÿGÿÿ÷þÑþªþ„þ^þ\þ\þ\þ\þXþ.þ.þ.þ.þ.þ.þ7þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ_þpþ•þÉþôþ ÿKÿvÿ”ÿ±ÿÎÿìÿ (Fdš´Ïì%Bf‹°ÔùBg„ ¼ÙU:êϵ›�hK/÷׸˜yW6öÿ×ÿ¸ÿ™ÿoÿGÿÿ÷þÈþ¡þ{þUþRþRþRþRþkþ•þ•þ•þ•þ•þ•þ�þRþRþRþRþRþRþRþRþRþRþRþRþTþdþ‡þºþáþ ÿ7ÿbÿ|ÿšÿ·ÿÕÿôÿ0Nl‡¢½Üù2\�¥Êô=bœ¸ÕN3þãÈ®”z`G+óØ¸˜yY8øÿØÿºÿšÿqÿHÿ ÿ÷þÈþ˜þrþKþHþHþHþHþÑþûþûþûþûþûþûþóþ]þHþHþHþHþHþHþHþHþHþHþHþJþXþyþ«þÒþøþ$ÿOÿiÿ‚ÿ ÿ¾ÿÝÿüÿ8Wu�ªÊê#MwœÀê8]z—´ÐL1úàÆ«�v]D+óؼ�}^>þÿÞÿ¿ÿ ÿwÿMÿ$ÿüþÌþœþlþFþBþBþBþdþúþ$ÿ$ÿ$ÿ$ÿ$ÿ$ÿÿ…þBþBþBþBþBþBþBþBþBþBþBþCþOþpþ þÇþîþÿ@ÿYÿsÿ�ÿªÿÊÿéÿ 'Ec‚œ¼ÛûBl–ºä7\y–´ÐK0ùÞé�t[B)ôÙ½¢ƒcC$åÿÆÿ§ÿ}ÿTÿ+ÿÿÑþ¡þrþBþ=þ=þ=þ�þ#ÿMÿMÿMÿMÿMÿMÿDÿ®þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ>þIþgþ–þ½þãþ ÿ1ÿKÿdÿ~ÿ˜ÿ·ÿ×ÿ÷ÿ4Sq�¯Îí 7a‹µß 2\y—´ÑC+õÙè�s\C*øÜÁ¥†gG'éÿÉÿªÿ�ÿWÿ.ÿÿÍþ�þmþ=þ7þ7þ7þµþKÿuÿuÿuÿuÿuÿuÿlÿÖþ@þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þAþ^þ‹þ³þÚþÿ'ÿ@ÿZÿsÿ�ÿ®ÿÍÿíÿ ,Ji‡¨Çç0Z„®Ø+Ut‘®Ë;# ïÔ½¦‹qZD+øÞçˆiI* ëÿÌÿ¬ÿƒÿZÿ0ÿÿÏþ—þhþ8þ0þ0þFþÜþrÿœÿœÿœÿœÿœÿœÿ“ÿýþgþ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ0þ8þSþ€þ§þÏþöþÿ5ÿNÿhÿ�ÿ¢ÿÂÿâÿ!A_~žÀßþ(R|¦Ðú$NlЍÅ2êη ‰oXB+ùßŪ‹kL, íÿÎÿ¯ÿ…ÿ\ÿ2ÿ ÿÑþšþbþ3þ)þ(þmþÿ™ÿÃÿÃÿÃÿÃÿÃÿÃÿºÿ$ÿŽþ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ)þ0þIþtþ›þÃþëþÿ+ÿCÿ\ÿvÿ–ÿ·ÿ×ÿ÷ÿ6Vt•¶×÷!KuŸÉòFdƒ¡¿)ùàȱšƒlU?)øÞÅ«ŒlM.ïÿÏÿ°ÿ‡ÿ]ÿ3ÿ ÿÓþ›þcþ,þ!þ þ“þ)ÿ¿ÿéÿéÿéÿéÿéÿéÿàÿJÿ´þ þ þ þ þ þ þ þ þ þ þ!þ'þ>þgþ�þ·þÞþÿÿ7ÿPÿiÿ‰ÿªÿËÿëÿ +Jj‹¬ÍîBl–Àé=[z™· óÛð™‚lV@)øÞĪŠkL- íÿÎÿ®ÿ…ÿ[ÿ2ÿÿÌþ”þ\þ%þþ"þ¸þNÿäÿoÿÙþCþþþþþþþþþþþþ2þZþ‡þ®þÖþþþÿ2ÿKÿdÿ†ÿ§ÿÇÿèÿ *JiŠ«Ìí9c�¯Ù,Lj‰§íÕ¼ª˜�jT?(÷Üé‰iJ* êÿËÿ¬ÿ‚ÿXÿ/ÿÿÉþŒþTþþþFþÜþrÿ222222)“ÿýþgþ þ þ þ þ þ þ þ þ þ þþ%þLþxþ¦þÍþõþÿ,ÿEÿ^ÿ€ÿ¢ÿÃÿäÿ(Hhˆ¨Êê .X‚¤Æð:Zx– ÷ãÏ·¥“�iT?)øÝ©‰iI) éÿÉÿªÿ€ÿWÿ-ÿÿÇþŠþNþþþkþÿ—ÿ-WWWWWWN¸ÿ"ÿŒþþþþþþþþþþþþþ>þkþ˜þÅþíþ ÿ$ÿ?ÿXÿ{ÿ�ÿÀÿàÿ%Gg‡¨Èé -Oy›½ß )Ih‡þê×İžŒygR<'öÜÁ¦†fF&æÿÆÿ¦ÿ|ÿSÿ*ÿÿÃþ†þJþ þüýŽþ$ÿºÿPzzzzzzqÛÿEÿ¯þþùýùýùýùýùýùýùýùýùýüý þ/þ\þ‰þ¶þãþÿþÿ6ÿQÿtÿ–ÿ¸ÿÛÿýÿ Bd„¥Ææ*Ln�²Ôö6UuúèÔÁ®�‹ygP;&ôÙ¾¤‚bB"âÿÂÿ¢ÿyÿOÿ&ÿüþ¾þ�þDþþþ¥þ;ÿÑÿg‘‘‘‘‘‘‰óÿ]ÿÇþ1þñýñýñýñýñýñýñýñýñýôýþ$þVþ‚þ°þÜþüþÿ3ÿNÿrÿ”ÿ·ÿÚÿýÿ Bd„¤Äå"Df€£Äæ'FfýìÚÆ³£“�nXB,ûÞÄ©ˆfF&åÿÅÿ¥ÿ|ÿTÿ*ÿÿÂþƒþFþ þþ–þ,ÿÂÿX������yãÿMÿ·þ!þñýñýñýñýñýñýñýñýñýóýþ þRþ„þ±þÞþýþÿ8ÿTÿwÿ›ÿ¾ÿàÿ(JlŒ«Ìì!Ce€›½ß @`ñàκªšŠxbL6 è˰�nM- ëÿÊÿªÿ‚ÿYÿ0ÿÿÈþ‰þJþþøýþÿ«ÿAkkkkkkbÌÿ6ÿ þ þóýóýóýóýóýóýóýóýóýõýþþQþƒþ´þâþÿ ÿ?ÿ[ÿ~ÿ¢ÿÆÿèÿ 0Tv•µÔõ*Df‚œ¸Úú;[öåÔ²¢’‚lU?) ðÔ¸—vT3òÿÑÿ°ÿ‡ÿ^ÿ6ÿ ÿÎþ�þQþþûýiþþþ”ÿ*TTTTTTL¶ÿ ÿŠþõýõýõýõýõýõýõýõýõýõý÷ýþþPþ‚þ³þåþÿ$ÿCÿbÿ†ÿ©ÿÍÿñÿ8\€ ¿Þþ3Mhƒž¹Ôô6VþíÛÉ·§—‡oXB,ñÕ¹—vU3òÿÑÿ°ÿŠÿaÿ8ÿÿÓþ•þVþþÿýSþéþÿ??????6 ÿ ÿtþøýøýøýøýøýøýøýøýøýøýùýþþTþ…þ·þéþ ÿ*ÿIÿiÿ‹ÿ¯ÿÓÿ÷ÿ<`„¢Âá6Qk‡¢½Øø9YôâÑ¿¬œŒt[E.òÖº˜vU4òÿÑÿ°ÿŠÿdÿ;ÿÿÖþšþ[þþþ>þÓþiÿÿÿ))))))!‹ÿõþ_þüýüýüýüýüýüýüýüýüýüýüýþ þUþŠþ»þíþÿ0ÿPÿoÿ’ÿµÿÙÿüÿ@dˆ¦Ää:ToЦÁÜü<\&þëÙǵ£“zaH2öؼšxW6ôÿÒÿ²ÿ‹ÿeÿ?ÿÿÚþžþbþ#þþ)þ¿þUÿëÿ vÿàþJþþþþþþþþþþþþþ"þWþŒþÀþòþÿ6ÿWÿvÿšÿ¼ÿßÿ%GhŒ«Éè">Yt�ªÆá @a/õáϼª˜gN5ùÛ½›yX6ôÿÓÿ²ÿŒÿeÿ?ÿÿÝþ¡þdþ(þ þþ©þ?ÿÕÿÿÿÿÿÿÿÿÿÿÿÿÿöÿ`ÿÊþ4þþþþþþþþþþþþ þ#þXþ�þÁþöþÿ9ÿ[ÿ}ÿ ÿÃÿæÿ +Mn�¯Íë %A\w“®Éå%Dd7  ùæÐ½«™}eL3õ×¹–tR0îÿÎÿ¬ÿŠÿdÿ>ÿÿáþ¥þiþ,þþþ“þ)ÿ¿ÿéÿéÿéÿéÿéÿéÿáÿKÿµþþþþþþþþþþþþþ þ$þ^þ’þÇþüþ#ÿEÿgÿˆÿ¨ÿËÿîÿ.Pr”±Ïî ,Gb~ž¹Õð.Nn@)ÿìÖ¿­›€dK2òÔ¶’pN, êÿÉÿ¨ÿ†ÿcÿ=ÿÿáþªþnþ2þþ þþÿ«ÿÔÿÔÿÔÿÔÿÔÿÔÿÌÿ6ÿ þ þ þ þ þ þ þ þ þ þ þ þ þþ&þ`þšþÎþÿ*ÿRÿsÿ•ÿ´ÿÔÿ÷ÿ7Tv˜¶Óñ/Oj†¥Æáü:YyH1ðÚÄ®œ�eI1ðϱŽkH'åÿÃÿ£ÿ€ÿ^ÿ<ÿÿßþ©þsþ6þþþiþÿþ•ÿ¿ÿ¿ÿ¿ÿ¿ÿ¿ÿ¿ÿ¶ÿ ÿŠþ þ þ þ þ þ þ þ þ þ þ þ þþ(þaþ›þÔþ ÿ0ÿWÿÿ¡ÿÀÿßÿÿÿ"?\z›¹Öô2QqŒ¬Ìì&EcƒP9" õßɳ��fJ/îέŠgD!ßÿ¾ÿ�ÿ{ÿXÿ6ÿÿÞþ¨þqþ;þþþSþéþÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ¡ÿ ÿuþþþþþþþþþþþþþþ)þbþœþÖþÿ6ÿ^ÿ…ÿ¬ÿÌÿëÿ *Gd‚Ÿ¼Úø4Tt“³Óó2Pn�Y?(ûá˵Ÿ�fK/ ìË«‡dAýÿÜÿ»ÿšÿzÿWÿ5ÿÿâþ¬þuþ?þ!þþ>þÔþjÿ“ÿ“ÿ“ÿ“ÿ“ÿ“ÿ‹ÿõþ_þþþþþþþþþþþþþþ+þgþ¡þÚþÿ@ÿgÿ�ÿ¶ÿÓÿòÿ1Ki†£¿Ýú:Zy™»Ûû9Wv”bH.çθ¢„fJ/ éɨ„`>úÿØÿ¸ÿ–ÿvÿVÿ4ÿÿáþ°þzþCþ%þþ(þ¾þTÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿuÿßþIþþþþþþþþþþþþþþ-þiþ¥þßþÿEÿqÿ˜ÿÀÿÝÿúÿ9SmЧÄàý=`žÁã$A^}›jQ7íÔ»¥‡hK/ éǦ‚^:öÿÕÿ´ÿ“ÿsÿSÿ3ÿÿàþ¯þ~þHþ)þþþ¨þ>ÿhÿhÿhÿhÿhÿhÿ`ÿÊþ4þþþþþþþþþþþþþþ/þkþ§þäþÿIÿvÿ¢ÿÉÿçÿ!A[t�¬Èä@b…¤Çé ,Ig„£rX?% òÙ¿¦ˆjL. 鯣[7òÿÑÿ°ÿ�ÿoÿOÿ/ÿÿÞþ­þ|þKþ,þþþ’þ(ÿRÿRÿRÿRÿRÿRÿIÿ³þþþþþþþþþþþþþþþ0þlþ©þåþ!ÿMÿyÿ¦ÿÒÿïÿ *Ga{•¯Ëç Be‡©Ëî3Qn‹©�eK1ûâȯ�rT6ðΫˆd@úÿÙÿ¸ÿ—ÿuÿUÿ5ÿÿâþ²þ€þPþ0þ!þþuþ ÿ5ÿ5ÿ5ÿ5ÿ5ÿ5ÿ-ÿ—þþþþþþþþþþþþþþ"þ2þlþ¨þåþ!ÿMÿzÿ¦ÿÒÿòÿ,If€š´Ðì %EhЬÌï4Pn‹©‘tW>$ëÒ¹™y[=øÕ³�mI%áÿÁÿŸÿ}ÿ[ÿ<ÿÿéþ¶þ…þTþ4þ%þ"þLþâþ ÿ ÿ ÿ ÿ ÿ ÿÿmþ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ%þ5þnþ©þåþ!ÿMÿyÿ¦ÿÒÿòÿ/Li…Ÿ¹Õñ*Jj�¯Ïð5Qm‹© ƒgJ0øÛ¢ƒcE"ݺ—tQ- êÿÉÿ¨ÿ†ÿdÿBÿ"ÿïþ¼þ‰þXþ7þ(þ%þ%þ±þÛþÛþÛþÛþÛþÛþÓþ=þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ'þ7þqþ«þåþ!ÿMÿzÿ¦ÿÒÿòÿ1Nkˆ¥¿Û÷/Op�²Òó6Rn‹¨®’uX< æÊª‹lL)äÁž{X5òÿÐÿ¯ÿ�ÿkÿIÿ'ÿôþÂþ�þ\þ:þ*þ'þ'þ~þ§þ§þ§þ§þ§þ§þŸþ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ'þ)þ8þrþ¬þæþ ÿLÿxÿ¥ÿÑÿñÿ0PmЦÃßû3St”´Ôõ6Ro‹§¿ ƒgJ+òÖµ–vW7òÏ®ŒiF#àÿ¿ÿ˜ÿvÿTÿ2ÿùþÆþ“þ`þ=þ-þ)þ)þMþwþwþwþwþwþwþoþ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ+þ:þnþ¨þâþÿDÿpÿ�ÿÉÿïÿ.NqŽ«Èä8Vv–¶Ôõ6Pm‰¥Î¯�sV7üß¿ž`@ ýÚºšwT2îÿÌÿ¦ÿ€ÿ^ÿ<ÿÿÈþ•þbþ>þ-þ)þ)þ)þMþMþMþMþMþMþEþ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ+þ:þnþ£þÜþÿ?ÿfÿ“ÿ¿ÿåÿ *Jm�­Êç <Yv—·Õó4Ni…¡Ý½ž~bC#çǧ‡gH(åÅ¥…a?ûÿÙÿ³ÿ�ÿgÿEÿ ÿÑþ—þdþ>þ,þ(þ(þ(þ1þ1þ1þ1þ1þ1þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ(þ*þ8þmþ¡þÖþÿ8ÿ`ÿˆÿ´ÿÚÿÿÿ%Eh‹¯Ëè">[y–·Õò1Ke€œéʪŠkL, îή�mM.îή�mK(äÿ¾ÿ˜ÿqÿKÿÿ×þ�þcþ<þ*þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ%þ'þ5þjþžþÒþÿ/ÿWÿÿ§ÿÍÿòÿ>a„¨Ëè!>\y–´Òð,F`{•îÌ­ŽnM-ïήŽnO0ðѱ�pN, çÿÀÿ™ÿsÿMÿÿÖþœþbþ;þ(þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ%þ3þcþ˜þÌþÿ%ÿMÿuÿ�ÿÆÿìÿ7^‚¥Èæ <Zw”²Ðî *D^x’óÒ°�qP.ðЯ�nP2òÓ´”tQ/ êÿÃÿ›ÿuÿNÿÿÕþ›þaþ:þ&þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ"þ$þ1þaþ‘þÆþúþÿCÿkÿ“ÿ¼ÿäÿ 0W¢Æä;Xu’°Îì 'B\v�úØ·•vU3óÒ²’qS4ö׸™yV4ðÿÈÿ ÿxÿRÿÿÙþœþbþ:þ&þ"þ"þ"þ"þ"þ"þ"þ"þ þ þ þ þ þ þ þ þ"þ"þ"þ"þ"þ"þ"þ"þ$þ1þaþ‘þÁþöþÿ>ÿcÿ‹ÿ´ÿÜÿ+Rz¢Åã<Xv’°Îë 'A[u�ä ^<úÚ¹˜xZ;þßÀ¡‚`>ùÿÑÿªÿ‚ÿZÿÿàþ¤þgþ>þ*þ&þ&þ&þ&þ&þ&þ&þ&þ þ þ þ þ þ þ þ þ&þ&þ&þ&þ&þ&þ&þ&þ(þ5þeþ•þÅþõþÿ>ÿbÿ‡ÿ°ÿØÿ*Ry Èæ"@]z—´Òð +E_y“åÄ¢�`?üÙ¹˜xT5øÕ·—xW5ñÿÎÿ§ÿÿWÿ!ÿåþ¨þkþCþ0þ+þ+þ+þ+þ+þ+þ+þ+þìýìýìýìýìýìýìýìý!þ+þ+þ+þ+þ+þ+þ+þ-þ:þjþšþÊþúþÿCÿhÿ�ÿ±ÿÚÿ+OvžÅå!?`}š·Ù÷2Oiƒ�æÆ¤‚bA þܸ˜xT0òЭŽoN, èÿÆÿ¤ÿ|ÿTÿÿèþ¬þoþHþ5þ0þ0þ0þ0þ0þ0þ0þ0þÜýÜýÜýÜýÜýÜýÜýÜýþ0þ0þ0þ0þ0þ0þ0þ2þ?þoþŸþÏþÿþ$ÿIÿnÿ’ÿ¶ÿÛÿ,Pt›Ââ=_€�ºÜþ:WsލäÄ£�`@þÛ¸•tP,êǤ‚bA ÿÿÜÿºÿ˜ÿvÿNÿÿâþ­þpþJþ7þ2þ2þ2þ2þ2þ2þ2þ2þðýðýðýðýðýðýðýðý%þ2þ2þ2þ2þ2þ2þ2þ4þAþqþ¡þÑþÿ&ÿKÿpÿ”ÿ¹ÿÞÿ+Nr•½Üû8Z|ž»Ýÿ!>[x•¯þݽœ{Z9øÕ²�lH$ܹ—tQ0íÿÌÿªÿ‡ÿeÿCÿ ÿ×þ¢þlþFþ4þ/þ/þ/þ/þ/þ/þ/þ/þ?þ?þ?þ?þ?þ?þ?þ?þ/þ/þ/þ/þ/þ/þ/þ/þ1þ>þnþžþÎþþþ#ÿHÿmÿ’ÿ·ÿÛÿÿÿ$Gk�²Ññ/Qs”¶Øú>[w”±ïЯ�nN- ìÆ£€]1 éÅ›yV3òÿÑÿ°ÿ–ÿtÿQÿ/ÿÿÎþ˜þcþ>þ,þ(þ(þ(þ(þ(þ(þ(þQþ±þ±þ±þ±þ±þ±þ±þ±þ|þ(þ(þ(þ(þ(þ(þ(þ*þ6þgþ—þÇþ÷þÿCÿhÿ�ÿªÿÏÿóÿ5X{ŸÀßþFh‰«Óõ9Zw”±ßÀ¡€`@ ß¹“pM ôЬƒZ7ôÿÕÿ´ÿ’ÿyÿ_ÿ=ÿÿïþÄþŽþXþ5þ#þþþþþþþ+þÁþ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿìþVþþþþþþþ!þ.þ^þ�þÀþðþÿ<ÿbÿ†ÿ¤ÿÂÿæÿ 'Dh‹¬Ìì 4\~ŸÈð4Uv’¯×¸™zY:ûÚ´ŽhEì¿›rI ýÿÝÿ¾ÿŸÿ}ÿcÿJÿ0ÿÿâþ·þ‹þUþ3þ"þþþþþþþYþïþPÿPÿPÿPÿPÿPÿPÿPÿÿ„þþþþþþþ þ-þ^þ�þÀþðþÿ=ÿcÿˆÿ¦ÿÃÿáÿ"?[ Áá)QzœÄì7Wx™µÏ°‘rS4ôÕ¯‰c=ä·‹b8æÿÆÿ§ÿˆÿhÿNÿ4ÿÿÿÖþªþ~þSþ2þ!þþþþþþþ†þÿ}ÿ}ÿ}ÿ}ÿ}ÿ}ÿ}ÿ}ÿGÿ±þþþþþþþþ,þ]þŽþ¿þðþÿ=ÿcÿŠÿ¨ÿÅÿâÿ:Vs”´ÕöGp˜Àè9Zz›¼Êª‹lM- íÎ¥Y3Öª}R(ÿÿÖÿ·ÿ˜ÿxÿYÿDÿ*ÿÿöþÒþ¦þ{þPþ/þþþþþþþþ²þHÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿsÿÝþGþþþþþþþ*þXþŠþºþìþÿ6ÿ]ÿ„ÿŸÿ¼ÿÚÿ÷ÿ0LiŒ­ÎîDl•Áé:]~ŸÀÅ¥…eG&åÆ�uO)øÇ›nCîÿÅÿ¦ÿ‡ÿhÿIÿ3ÿÿÿëþÆþ¢þwþKþ,þþþþþþþGþÝþsÿÔÿÔÿÔÿÔÿÔÿÔÿÔÿÔÿžÿÿrþþþþþþþ(þVþ„þµþæþ ÿ/ÿUÿ|ÿ—ÿ³ÿÐÿíÿ %A^�¤Åæ?h‘½é9]�¡Â¿ž~^?ýݽ”kC컋^3Ûÿ²ÿ”ÿuÿWÿ7ÿ"ÿ ÿ÷þÞþ¹þ•þqþEþ'þþþþþþþqþÿ�ÿþÿþÿþÿþÿþÿþÿþÿþÿÈÿ2ÿœþþþþþþþ$þRþ€þ¯þßþÿ)ÿMÿsÿ�ÿªÿÅÿãÿþÿ5Ru™¼Ý 6c‹·ä8\£Ã¸˜wW7õÕ´‹c:à¯N#÷ÿÌÿ ÿ�ÿcÿEÿ&ÿÿûþæþÑþ­þ‰þdþ@þ#þþþþþþþ›þ1ÿÇÿ((((((((òÿ\ÿÆþ0þþþþþþ þNþ}þ«þÙþýþ"ÿGÿkÿ†ÿ¡ÿ½ÿØÿóÿ+Fi�°Ó-Y†²ß 7[~¡Å¶ŽnN-äãxO'þÒ¡p?íÿÂÿ–ÿwÿYÿ;ÿÿÿñþÜþÇþ§þƒþ^þ:þþþ þ þ þ þ/þÅþ[ÿñÿRRRRRRRR†ÿðþZþ þ þ þ þþþDþrþ þÏþîþÿ7ÿ[ÿ{ÿ—ÿ²ÿÍÿïÿ &AgŠ­Ñû'T�ª×/Swš¾¶ŽfE%üÔ³’h=ì¿“b2 äÿ¸ÿ�ÿnÿPÿ2ÿÿýþèþÒþ½þžþ~þZþ6þþ þ þ þ þ þZþðþ†ÿ}}}}}}}}G±ÿÿ…þ þ þ þ þ þþAþhþ—þÅþäþÿ(ÿLÿlÿŒÿ¨ÿÃÿåÿ">c‰¬Ðú$P}¦Ðü(Lp”¸´Œd<óÊ¡€V,ج€T#üÿÕÿ®ÿƒÿdÿFÿ(ÿ ÿóþÞþÈþ³þ“þsþTþ0þþ þþþþþ„þÿ°ÿF§§§§§§§§qÛÿEÿ¯þþþþþ þþ=þeþŒþºþÚþùþÿ=ÿ]ÿ}ÿ�ÿ¸ÿÚÿüÿ9^„ªÍ÷!Kx¡Êô Dh�°±‰a9è¿—nCîĘk?ìÿÅÿŸÿxÿYÿ;ÿÿþþèþÓþ½þ§þ‡þhþHþ)þþþþþþþ­þCÿÙÿoÐÐÐÐÐÐÐКnÿØþBþþþþþþ8þ`þ‡þ¯þÎþíþ ÿ,ÿLÿlÿŒÿ¬ÿÎÿïÿ3Y¤ÊôHr›Åî;_„¨¯W/Õ¬„[0Û°‹_3æÿ¿ÿ™ÿrÿSÿ5ÿÿ÷þàþÊþµþŸþ‚þcþCþ$þ þþýýýýýýAþ×þmÿ™úúúúúúúúÄ.˜ÿÿlþýýýýýýþ þ/þWþ~þ¦þÀþßþÿþÿDÿdÿ„ÿ¤ÿÍÿïÿ2Y¥ËïCm‘ºã 0Ty�¬{K#ûÉ—oFïÅšuP$øÿØÿ·ÿ‘ÿjÿKÿ,ÿ ÿïþ×þÀþªþ•þxþ\þ<þþþúý÷ý÷ý÷ýhþþþ”ÿ*À!!!!!!!!ìVÀÿ*ÿ”þþý÷ý÷ýûýþ*þKþsþšþµþÏþïþÿ4ÿYÿyÿ™ÿÃÿìÿ/W~¤Éî<fŠ­×#Gk�±�P øÆ”c:与iDòÿÒÿ²ÿ’ÿkÿLÿ-ÿÿïþØþÀþ©þ“þwþZþ>þþ þýýúýúýúýpþÿœÿ2È((((((((ó]Çÿ1ÿ›þþúýúýþý þ-þOþqþ˜þ³þÍþèþÿ-ÿRÿxÿ˜ÿÂÿëÿ6]„¬Ñö>hŒ°Óü Dg‹¾�],üʘg5 Þ³ˆc>ôÿÔÿ´ÿ“ÿsÿTÿ5ÿÿ÷þàþÈþ°þ™þ|þ`þDþ'þþþþþþRþèþ~ÿª        Ö@ªÿÿ~þþþþþþ8þYþ{þ�þ·þÒþìþÿ-ÿRÿxÿžÿÇÿðÿCj‘¹à(Mq•¸Ü$GjŽÈ–f5Ñ n<æ»�lG"ýÿÞÿ¾ÿ�ÿ}ÿ^ÿ?ÿ ÿÿéþÑþ¹þ¢þ…þiþLþ/þþþþþþ3þÉþ_ÿõÿ‹ëëëëëëëë¶ Šÿôþ^þþþþþþ@þbþ„þ¥þ¿þÚþôþÿ6ÿ[ÿ�ÿ§ÿÒÿûÿ$Mu�Äë2Vz�Áå+Os–Ò n>Ú§uDî—sO*æÿÈÿ§ÿ‡ÿhÿHÿ)ÿ ÿòþÚþÂþ«þŽþqþTþ8þ$þþþþþþ©þ?ÿÕÿkÌÌÌÌÌÌÌÌ–jÿÔþ>þþþþþ)þJþjþŒþ®þÈþáþüþÿ=ÿdÿŠÿ°ÿÛÿ/X€¨Ïö<`„¦Éí4WzžÙ§vDà­zHòÇœxT0 ìÿÍÿ®ÿŽÿoÿPÿ0ÿÿùþáþÈþ±þ”þwþZþ>þ*þþþþþþ‡þÿ³ÿI©©©©©©©©tÞÿHÿ²þþþþþ!þ0þPþqþ’þ´þÍþçþÿÿBÿiÿ�ÿ¶ÿáÿ 6`‡¯×þ!DfŠ­Ðò9\€£à®}Kæ²L!öË |X5òÿÓÿ´ÿ•ÿvÿWÿ7ÿÿÿèþÏþ·þšþ}þ`þCþ/þ%þ#þ#þ#þ#þdþúþ�ÿ&‡‡‡‡‡‡‡‡Q»ÿ%ÿ�þ#þ#þ#þ#þ(þ6þWþxþ˜þ¹þÓþìþÿ ÿGÿnÿ•ÿ¼ÿçÿ<g�¶Þ)Ln‘´Öø>b…¨í¿Ž\*üÉ–c7 á·‹gCøÿÙÿºÿ›ÿ|ÿ]ÿ>ÿÿÿïþ×þ¿þŸþ‚þeþHþ4þ*þ(þ(þ(þ(þ@þÖþlÿcccccccc.˜ÿÿlþ(þ(þ(þ(þ-þ;þ[þ|þ�þ¾þ×þñþ ÿ$ÿHÿoÿ—ÿ½ÿæÿ;f޶Þ-Ps•½ß$Il�²úÌŸm<à¬yN#øÍ¡uQ.àÿÀÿ¢ÿ‚ÿcÿDÿ$ÿÿ÷þßþÆþ§þ†þjþLþ9þ/þ-þ-þ-þ-þ-þ³þIÿßÿ???????? tÿÞþHþ-þ-þ-þ-þ3þAþaþ�þ¢þÃþÜþõþÿ(ÿLÿqÿ˜ÿ¿ÿçÿ;f޶Ý-TwšÁè -Rv™¼×ª}KïÁ�c8 á¶Š]:ìÿÅÿ¦ÿ†ÿgÿHÿ)ÿÿûþåþÌþ¬þŒþlþOþ<þ2þ0þ0þ0þ0þ0þ�þ#ÿ¹ÿäÿNÿ¸þ0þ0þ0þ0þ1þ6þEþeþ…þ¥þÅþÞþ÷þÿ*ÿOÿsÿ˜ÿ¿ÿçÿ8c‹³Û*Rz�Äë4Y}¡Åâ´‡Z,þТwL!öÊžrFøÿÑÿªÿ‹ÿlÿLÿ-ÿÿÿéþÒþ²þ’þrþRþ>þ5þ4þ4þ4þ4þ4þhþþþ”ÿôÿôÿôÿôÿôÿôÿôÿôÿ¿ÿ)ÿ“þ4þ4þ4þ4þ4þ9þHþhþˆþ¨þÈþáþúþÿ,ÿPÿuÿšÿ¾ÿæÿ8`ˆ°Ø(PwŸÆí;`„©ÍôÇ™lDèº�e:Ú®‚V'Ùÿ²ÿ’ÿsÿSÿ4ÿÿÿñþÚþµþ•þuþUþAþ8þ7þ7þ7þ7þ7þBþØþnÿÏÿÏÿÏÿÏÿÏÿÏÿÏÿÏÿ™ÿÿmþ7þ7þ7þ7þ7þ=þLþkþ‹þ«þËþãþüþÿ.ÿPÿuÿ™ÿ½ÿãÿ 4]†®Öþ+S{¢ÎõCi޳×'ÿת}U-ÿѧ|Q'ò½‘e6ßÿ¹ÿ™ÿyÿZÿ:ÿ$ÿÿøþáþ¼þ—þwþWþCþ:þ9þ9þ9þ9þ9þ9þ±þGÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿ¨ÿsÿÝþGþ9þ9þ9þ9þ9þ?þOþnþ�þ­þÍþåþýþÿ/ÿQÿsÿ—ÿ¼ÿâÿ0Y�ªÓû(U}¥Ñý#Jq—¼à2 㻎f>输i> Õ tEæÿ¿ÿŸÿ€ÿ`ÿAÿ+ÿÿÿþèþÃþžþyþYþEþ<þ;þ;þ;þ;þ;þ;þ‹þ!ÿ�ÿ�ÿ�ÿ�ÿ�ÿ�ÿ�ÿ�ÿLÿ¶þ;þ;þ;þ;þ;þ;þBþRþqþ�þ¯þÏþçþÿÿ1ÿSÿtÿ–ÿ»ÿàÿ,T}¦Ï÷$R§Óÿ+RxžÅé<íÅžvN&þÔ©U ì·‚S$ôÿÅÿ¥ÿ…ÿfÿFÿ0ÿÿÿîþÉþ¤þþZþEþ=þ<þ<þ<þ<þ<þ<þcþùþZÿZÿZÿZÿZÿZÿZÿZÿ$ÿŽþ<þ<þ<þ<þ<þ<þCþTþsþ’þ±þÐþèþÿÿ1ÿSÿtÿ–ÿ¸ÿÞÿ)Ox¡Êó N{¨Ô,X~¤Ëñ?ôÍ¥�Y1 á¶Œb/úÅ‘a2Óÿ³ÿ”ÿtÿTÿ:ÿ$ÿÿøþÊþ¥þ€þ[þFþ>þ=þ=þ=þ=þ=þ=þ=þÒþ2ÿ2ÿ2ÿ2ÿ2ÿ2ÿ2ÿ2ÿýþgþ=þ=þ=þ=þ=þ>þEþVþuþ”þ³þÒþêþÿÿ3ÿUÿvÿ˜ÿºÿßÿ+Q{¤Íö%R¬Û2^…¬ÒøBûÔ¬ˆd<ëÙo< ÔŸpAâÿÂÿ¢ÿ‚ÿbÿHÿ-ÿÿÿÔþ¦þ�þ\þGþ?þ>þ>þ>þ>þ>þ>þ>þªþ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÕþ?þ>þ>þ>þ>þ>þ?þFþXþwþ–þµþÔþìþÿÿ5ÿWÿxÿšÿ»ÿáÿ-R|§Ðø(V„±ß 9eŒ³ÙE!ýÚ²ŽjEõÍ¥{Há¬}NðÿÐÿ°ÿ�ÿpÿUÿ;ÿ ÿ ÿÜþ¯þ�þ\þFþ?þ>þ>þ>þ>þ>þ>þ>þ�þâþâþâþâþâþâþâþâþ­þ>þ>þ>þ>þ>þ>þ?þGþYþxþ˜þ·þÖþîþÿÿ6ÿXÿyÿšÿ¼ÿâÿ.S}§Ñú)X‡µã?k’¹àG#ܸ”oK'ÿׯ‡T!íº‹\,ýÿÝÿ½ÿ�ÿ}ÿbÿHÿ.ÿÿåþ¸þŠþ\þFþ?þ>þ>þ>þ>þ>þ>þ>þYþ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ„þ>þ>þ>þ>þ>þ>þ?þHþZþyþ˜þ¸þ×þïþÿÿ7ÿYÿzÿœÿ½ÿãÿ .T~¨Òü+Z‰¸æBp—¾å @!ýÙ¶—sN*ß·�e2ÿ̤uEõÿÕÿµÿ•ÿoÿUÿ:ÿ ÿäþ¶þ‰þ[þEþ>þ>þ>þ>þ>þ>þ>þ>þ>þ�þ�þ�þ�þ�þ�þ�þ�þZþ>þ>þ>þ>þ>þ>þ>þGþZþyþ˜þ·þ×þïþÿÿ7ÿXÿyÿ›ÿ½ÿãÿ .T©Óý.]Œ»ëGu�Äë8û×´•vQ- æ¾–mDݶŽ_0íÿÍÿ­ÿ‡ÿaÿGÿ,ÿðþµþ‡þZþCþ=þ=þ=þ=þ=þ=þ=þ=þ=þfþfþfþfþfþfþfþfþ=þ=þ=þ=þ=þ=þ=þ>þGþZþyþ˜þ·þÖþîþÿÿ7ÿXÿyÿ›ÿ¼ÿâÿ.TªÔþ/`�¾îLz¢Êñ1ôÕ±’sT0 éÅ�tK"ïÇŸxI'åÿÅÿŸÿyÿSÿ9ÿýþÁþ†þXþBþ<þ<þ<þ<þ<þ<þ<þ<þ<þ?þ?þ?þ?þ?þ?þ?þ?þ<þ<þ<þ<þ<þ<þ<þ=þFþZþyþ—þ¶þÕþîþÿÿ6ÿWÿyÿšÿ»ÿâÿ.T©Ôþ/`‘Àð P~§Ï÷( êÌ­ŽoP1êÇ£zQ'þÖ¯ˆ`?üÿÛÿµÿ�ÿiÿCÿÿÌþ�þUþ?þ9þ9þ9þ9þ9þ9þ9þ9þ9þ)þ)þ)þ)þ)þ)þ)þ)þ9þ9þ9þ9þ9þ9þ9þ:þDþXþwþ–þ´þÓþëþÿÿ4ÿUÿvÿ˜ÿ¹ÿßÿ,R}¨Òý._�Áñ!Q�©Òú"äŦŒmN/ëȤ„[1çÀ™qO. ëÿºÿ”ÿnÿHÿÿÈþŒþPþ:þ5þ5þ5þ5þ0þ5þ5þ5þ5þ"þ"þ"þ"þ"þ"þ"þ"þ5þ5þ5þ5þ5þ5þ5þ7þAþUþsþ’þ°þÏþèþÿÿ1ÿRÿsÿ”ÿ¶ÿÜÿ)Oz¥Ðû-^�Àñ!Q�«Óû$øÝ¾ …kL- ìÉ¥…e;òѪ‚`>ûÿÊÿ™ÿsÿMÿÿÃþ‡þLþ6þ1þ1þ.þ$þþþ1þ1þ1þ$þ$þ$þ$þ$þ$þ$þ$þ1þ1þ1þ1þ1þ1þ1þ3þ=þRþpþŽþ­þÌþäþþþÿ.ÿOÿpÿ‘ÿ²ÿÙÿÿÿ%Lw£Îù+]Ž¿ð"R‚«Ôý% ïÔº›€fK, į̀ˆhGþݽ•sP. Üÿ«ÿzÿTÿÿÊþ…þJþ4þ.þ%þþþ÷ýêýþ/þ/þ+þ+þ+þ+þ+þ+þ+þ+þ/þ/þ/þ/þ/þ/þ/þ1þ<þQþoþ�þ«þÊþãþüþÿ-ÿNÿoÿ�ÿ±ÿØÿþÿ$Jv¢Îø+]�Àñ"T„­×(çͲ—}bH- í̬ŒlK+ êÊ©‡eB ïÿ¾ÿ�ÿ\ÿÿÒþ�þHþ+þþ þúýìýåýæýóý.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ1þ<þQþoþ�þ«þÉþâþûþÿ-ÿNÿoÿ�ÿ±ÿ×ÿýÿ$Jv¢Íù+^�Âó%V‡±Ú-ÿäʯ”y_D* éÉ©ˆgG'åĤ�_=èÿ·ÿ†ÿUÿÿÎþ‰þDþ+þûýíýãýáýëýþ+þQþ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ+þ.þ9þPþpþŽþ¬þÊþäþþþÿ0ÿPÿqÿ’ÿ³ÿÙÿÿÿ&Lw£Ïû,^‘Ãô%V‡°Ú-úßĪ�tY?%äĤ‚aA!ÿÞ½�zW5áÿ¯ÿ}ÿMÿ ÿÇþƒþ>þ*þàýÜýâýöýþKþ}þ°þŸþ8þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ&þ)þ5þMþmþ�þ«þÉþäþþþÿ0ÿQÿqÿ’ÿ´ÿÙÿÿÿ%Kw£Îú,^�Âó#T…¯Ø+ñÖ¼¡†kQ6ûÛ»›yX6õÓ²‘oL*Õÿ£ÿqÿ@ÿýþ»þxþ3þ!þþæýþ5þgþ™þËþïþÿ�þ/þþþþþþþþþþþþþþ!þ-þEþfþ†þ§þÅþßþùþÿ,ÿMÿnÿ�ÿ°ÿÖÿûÿ!GsžÊõ'Y‹½îN€©Òü%ç̲—|aF,ñѱ‘oN, éȧ…b@ûÿÉÿ–ÿdÿ2ÿðþ­þjþ(þþþþPþ‚þ´þàþôþÿÿÿ’þ$þþþþþþþþþþþþþþ$þ=þ]þ~þžþ¿þÙþóþÿ(ÿIÿjÿŠÿ«ÿÑÿöÿBm™Äð"S…·èHy¢ÌõáÄ©ŽsV;!äĤ„[:÷έŒjG%àÿ³ÿ�ÿOÿÿæþ¤þaþþþ þ)þŸþÐþçþúþÿ"ÿ6ÿJÿøþŠþþ þ þ þ þ þ þ þ þ þ þ þþþ9þeþ…þ¦þÆþäþþþÿ3ÿRÿsÿ“ÿ´ÿØÿýÿ#Ir�Éô"T…·ãDuœÆïÚ½ …jN0ûÙ¸˜xO%⺒pO, çÿÄÿ˜ÿlÿ:ÿÿÑþšþXþþþþ-þÍþíþÿÿ)ÿ=ÿQÿdÿ]ÿïþ�þþþþþþþþþþþþþþ5þaþŒþ­þÎþëþ ÿ#ÿ>ÿ]ÿ|ÿ�ÿ½ÿáÿ*Oy¢Îù&T†·ä@q˜ÀéÔ·š|bE( ðέ‹lBðΦ~V4îÿÌÿ©ÿ}ÿQÿ$ÿòþ¼þ…þNþ þþýüýþ�þÿÿ/ÿCÿWÿkÿÿ“ÿUÿçþyþ þüýüýüýüýüýüýüýüýüýþþ1þ]þˆþ´þÕþóþÿ.ÿHÿhÿ‡ÿ¦ÿÇÿêÿ 0V©Òþ+X†¸ä<m”»ã ϲ”wZ= æÅ£�`7仓jB÷ÿÔÿ²ÿ�ÿcÿ6ÿ ÿÞþ§þpþ:þþ÷ýõýõýmþÿ7ÿKÿ_ÿsÿ‡ÿšÿ®ÿ»ÿMÿßþqþþõýõýõýõýõýõýõýõýúý þ.þZþ…þ±þÝþûþÿ6ÿTÿsÿ“ÿ²ÿÑÿôÿ;^‡±Ú0^‹¹å>j‘¹àÃ¥ˆkM/õض”sQ#úЧzQ)Ýÿ»ÿ˜ÿuÿOÿ#ÿöþÊþžþhþ1þúýïýíýíý=þÒþRÿfÿyÿ�ÿ¡ÿµÿÉÿÝÿ³ÿEÿ×þhþíýíýíýíýíýíýíýíýóýþ*þ`þŒþ·þãþÿ"ÿ@ÿ]ÿ{ÿ›ÿºÿÙÿúÿ@cгÜ.[‰¶Þ 6cˆ¯Öý¹š|_B$èÌ©†eDç½”g:éÿÆÿ¢ÿÿ\ÿ6ÿÿãþ·þ‹þ`þ)þòýèýæýæý þ£þ9ÿ�ÿ•ÿ©ÿ½ÿÑÿäÿøÿ «ÿ4ÿ®þþæýæýæýæýæýæýæýìýþ(þ]þ“þ¿þêþ ÿ,ÿJÿhÿ†ÿ¤ÿÃÿâÿ$Gj�·à 1Z‡´Ü0\�¦Íô²“tV9ýߟ}Z9 Ü­„W*üÿÔÿ°ÿ�ÿjÿGÿ ÿúþÓþ§þ{þPþ%þîýäýâýâýâývþ ÿ ÿ³ÿÇÿÛÿïÿ%üÿkÿÕþ?þâýâýâýâýâýâýãýéýÿý(þ]þ“þÉþõþÿ7ÿXÿvÿ“ÿ²ÿÐÿïÿ0PtšÀæ8`ˆ¶Þ-Y~£Çï­�pQ3÷Ù»™vT1Ô¥wJïÿÂÿŸÿ{ÿWÿ4ÿÿçþÀþšþnþCþþìýâýâýâýâýMþãþyÿÕÿéÿýÿ"&’ÿüþgþâýâýâýâýâýâýâýèýþ+þaþ—þÌþÿ#ÿDÿeÿ†ÿ¤ÿÂÿàÿþÿ?`€¦ÍóAi’ºâ 1Y~¢Ç줄eF(êÌ®ŽkI&ýÏ rIîÿÁÿœÿyÿUÿ2ÿ ÿãþ¼þ–þoþCþþìýãýãýãýãý&þ»þQÿçÿ ' ùÿåÿ¼ÿ&ÿ�þúýãýãýãýãýãýãýêýþ.þdþšþÏþÿ(ÿIÿjÿ‹ÿ«ÿÈÿæÿ%Ff‡ªÐ÷Ai’ºÞ-UxœÁæ�}]> áÂ¥„cAõÍžpGðÿÃÿžÿyÿVÿ2ÿ ÿáþºþ”þnþGþþðýçýçýçýçýþ—þ-ÿÂÿ+(ïÿÛÿÇÿ³ÿRÿ¼þ'þçýçýçýçýçýçýïýþ3þiþ þÕþ ÿ.ÿQÿrÿ“ÿ²ÿÒÿðÿ/Pp�´×þ$Hl”¼à,Sv™¾â˜yY9úÛ»�|[:ïÇžoFôÿÇÿ¢ÿ~ÿYÿ5ÿ ÿäþ»þ”þnþHþ!þöýíýíýíýíýíýtþÿˆÿýÿúÿæÿÒÿ¾ÿªÿ–ÿ�ÿëþUþíýíýíýíýíýíýõýþ:þqþ§þÝþÿ6ÿYÿ|ÿ�ÿ½ÿÜÿüÿ:[|œÀã-Qu™Áå ,Twš¼á—wW7÷ظ˜wW6ìÛrI ÷ÿÎÿ©ÿ…ÿ`ÿ;ÿÿêþÁþ˜þrþKþ%þþýöýöýöýöýöýDþ¼þ*ÿ˜ÿõÿáÿÍÿ¹ÿ¥ÿ‘ÿ}ÿiÿÿ†þöýöýöýöýöý÷ýÿýþEþ{þ²þèþÿAÿdÿ‡ÿªÿÉÿéÿ (IjŠ«Ïò9]�¥Éí4X{�Àã–pP0ëË«‹mM, ñÈŸwY1ßÿ·ÿ“ÿnÿIÿÿðþÇþŸþ{þUþ.þþþþþþþþYþÇþ5ÿ¢ÿÈÿ´ÿ ÿŒÿxÿdÿPÿ<ÿ¹þ#þþþþþþ þ#þOþ�þ·þíþ#ÿHÿkÿ�ÿ±ÿÕÿôÿ3Xy™ºÜÿ#Fe‰­Ñð7[|ŸÂä•oJ) 侞`C"çͤ{^AïÿÈÿ¡ÿ|ÿWÿ'ÿ÷þÎþ¥þ‚þ^þ7þþ þ þ þ þ þ þ þcþÑþ?ÿ­ÿœÿˆÿtÿ`ÿLÿ8ÿ$ÿëþUþ þ þ þ þ þþ.þYþŠþ¼þòþ)ÿMÿqÿ”ÿ·ÿÛÿÿÿ?cˆ©Éë 0Sr‘´Ù÷:^ Ãå”nI#Ý·‘rT6÷ÝèbE)ÿÿÙÿ±ÿ‹ÿfÿ5ÿÿÕþ¬þ‰þeþAþþþþþþþþþþmþÛþIÿƒÿoÿ[ÿGÿ3ÿÿ ÿ÷þˆþþþþþþþ8þbþ”þÆþ÷þ.ÿRÿvÿ›ÿ¾ÿâÿ*Jo“¸Ùú=až¼àÿ=`‚£Äç“mH"üÖ±‹eG) íÓ¹ž„gJ-éÿÂÿ›ÿtÿDÿÿãþ³þ�þkþHþ$þþþþþþþþþþxþæþTÿWÿCÿ/ÿÿÿóþßþºþ$þþþþ þ*þBþlþžþÏþÿ3ÿWÿ|ÿ ÿÄÿèÿ 1UzžÃè +Mn�«Éè%Dc„¥Çè“iDøÏ©ƒ^B$èÖ¼¢‡rU8óÿÌÿ¥ÿ~ÿIÿÿèþ¸þ—þsþOþ,þ'þ&þ&þ&þ&þ&þ&þ&þ&þ&þ€þîþ<ÿ(ÿÿÿìþØþÄþ°þUþ&þ&þ&þ(þ2þKþtþ¤þÕþÿ9ÿ_ÿƒÿ§ÿËÿóÿ;_†«Ïô5Wy“²Ðï )Hf†§Éê“i@õË¢|W;ãÑÀ¥‹u`C&þÿÕÿ¯ÿ‡ÿRÿÿíþ½þœþ{þWþ3þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þˆþöþÿúþæþÑþ½þ©þ•þ�þ/þ/þ/þ0þ;þSþ}þ¬þÛþ ÿ?ÿdÿŠÿ®ÿÓÿúÿ!Ei�·Ü @aƒž¹×õ,KjŠªËì‘h?ðÇ�tN2úÜ˹¨ŽxbM0àÿ·ÿ�ÿ[ÿ&ÿñþÀþ þþ^þ:þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ�þòþÞþÊþ¶þ¢þŽþzþfþ6þ6þ6þ7þBþ[þ„þ³þâþÿCÿiÿ�ÿ´ÿÙÿ'OsšÀç ,Kk�§ÂÝû2MlŒ¬Ìí�f=êÁ˜nE) ñÕIJ¡�zdN9èÿÀÿ˜ÿcÿ.ÿøþÃþ¢þ‚þaþ@þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ–þÁþ­þ™þ…þqþ]þIþ5þ<þ<þ>þIþbþŠþ¹þèþÿGÿmÿ’ÿ¸ÿÞÿ,T{¢Èï6Vu•°Ëå7Rm�­Íí¬†]3 仑hM1ùåÓ°˜ƒmX0ßÿ·ÿ…ÿPÿÿæþÇþ§þ†þeþaþaþaþaþaþaþaþaþaþaþaþaþaþaþ¼þ°þœþˆþtþ`þLþ8þCþaþcþoþˆþ±þâþÿ@ÿoÿ–ÿ¼ÿâÿ.U|£Éð=[{›»Òí#;VqŒª„^4 å¿–mQ5ýéÕIJšƒmW0àÿ¸ÿ†ÿTÿÿêþËþ­þŒþkþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþ“þþkþWþCþ/þþþIþiþuþ�þ¹þêþÿJÿyÿŸÿÆÿìÿ8^†­ÓøEd‚¢ÁÙñ &>Vq�¦€Z4 å¿™pT8ìØÄ³›„lV.ßÿ·ÿ…ÿSÿ"ÿìþÎþ¯þ‘þpþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþbþNþ:þ&þþþýëýëýnþ{þ•þ¿þðþ!ÿRÿ‚ÿ¨ÿÎÿõÿAh޶Û&Mk‰¨Çßö(@XpŒ¢|V0 侘rV:ïÛdz›„lT,ÝÿµÿƒÿQÿ ÿîþÏþ±þ’þtþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþCþ/þþþóýæýâýæý4þ€þ›þÅþöþ'ÿXÿ‰ÿ¯ÿÖÿüÿ#Ip–½â-Sq�®Ìãû*BZrŠž|V0 éÃ�wZ>"íÙű”|eM'Øÿ°ÿ…ÿSÿ!ÿïþÒþ´þ•þwþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþTþþüýìýæýçýðýýýþ„þŸþÊþüþ-ÿ^ÿ�ÿ¶ÿÝÿ*OuœÂç 1Wu“±Ïãú)=Um…—uT-æÄžy[>#íÔÀ«�r[CøÿÐÿ¨ÿ}ÿQÿ ÿîþÑþ³þ•þwþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþïýçýæýíýùý þþ5þƒþ þËþþþ0ÿaÿ“ÿºÿáÿ-SxžÅé 3Xv“±Ïãö%9Me}ŽlK)áÀžx[>!ìÒ¸¤ˆkO7ìÿÆÿžÿsÿGÿÿëþÍþ°þ“þtþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþ(þéýôýþþ*þ>þTþrþŸþËþþþ0ÿcÿ”ÿ»ÿâÿ /UzŸÅé 1Wt’¯Îáõ 4H\t…cA þÝ»™x[>!êз��dH+àÿºÿ”ÿiÿ>ÿÿçþÊþ­þ�þrþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþ þþ#þ7þJþ[þkþ�þžþËþýþ0ÿcÿ•ÿ¼ÿãÿ 1V|¡Æê2Vs‘¯Ìßó.BVj…bAýÛº™wW:âÈ®•vY= üÿÖÿ°ÿ‹ÿdÿ9ÿÿãþ´þ�þ{þpþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþ0þCþUþcþkþrþ€þ�þËþýþ0ÿcÿ•ÿ½ÿäÿ 2V{¡Æé 2Us‘¯ÌÞò,@Th…cAþܺ˜wW7üÞÀ§�nO3òÿÎÿ¨ÿ‚ÿ\ÿ6ÿ ÿßþ±þ�þzþoþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþ^þiþnþmþqþ€þ�þËþþþ1ÿdÿ–ÿ¾ÿåÿ 3X|¡Æê2Vt’°Íßò,>Sf‡eC!Þ¼›yY9ûÝ¿¡ˆiJ+êÿÆÿ¡ÿ{ÿUÿ/ÿ ÿÞþ±þ�þzþpþnþnþnþnþnþnþnþdþdþdþdþdþdþdþdþdþnþnþnþnþnþnþnþnþsþ‚þŸþÍþÿ3ÿgÿ™ÿÁÿèÿ7[¤Éí5Xw”³Ðâõ.@Sg�kI'ãÁ ~^=ýßÁ£…fG) åÿÁÿ�ÿxÿRÿ+ÿÿßþ³þ’þ~þtþrþrþrþrþrþrþrþJþJþJþJþJþJþJþJþJþdþrþrþrþrþrþrþrþwþ†þ¥þÓþÿ9ÿlÿŸÿÇÿîÿ=b†ªÏó:^|š¸Öèû  3EXkžvT2èÆ¤‚^>ýܾŸ‚aB#âÿ¾ÿ™ÿuÿTÿ.ÿÿâþµþ•þ�þwþuþuþuþuþuþuþuþ/þ/þ/þ/þ/þ/þ/þ/þ/þIþuþuþuþuþuþuþuþ{þŠþ©þØþÿ:ÿmÿ ÿÆÿîÿ=d‰­ÒùAd…£Áßö .FYk~¬„\:ðȦ„`;úÙ·™{Z:üÿÚÿ·ÿ“ÿnÿNÿ-ÿÿáþµþ”þ�þwþuþuþuþuþuþuþoþ%þ%þ%þ%þ%þ%þ%þ%þ%þ?þuþuþuþuþuþuþvþ{þ‹þªþÚþ ÿ8ÿlÿžÿÅÿëÿ:a‰­Ñù Dhˆ©Æäü&9Qi|޶Žf>óË¢€\7óѯ�oO. îÿÌÿªÿˆÿcÿCÿ"ÿÿÛþ°þ�þ|þrþqþqþqþqþqþqþqþ?þ?þ?þ?þ?þ?þ?þ?þ?þYþqþqþqþqþqþqþqþvþ‡þ§þÖþÿ5ÿeÿ˜ÿ¾ÿäÿ 2Y�¨ÌôCf‡§Çåý,?Wo‡š¹‘iAðÈŸwR. åá€^=üÿÛÿ¹ÿ–ÿtÿRÿ1ÿÿðþÐþ¦þ…þqþgþfþfþfþfþfþfþfþ�þ�þ�þ�þ�þ�þ�þ�þ�þuþfþfþfþfþfþfþfþlþ}þ�þÍþüþ,ÿ\ÿ‹ÿ±ÿ×ÿþÿ$KršÁè7_ŸÀàø'?Wo‡Ÿº‹b;⺑i?÷Ò«‰hF#áÿÁÿ¡ÿÿ]ÿ:ÿ!ÿÿàþÀþ•þtþ_þVþUþUþUþUþUþUþ¶þÿÿÿÿÿÿÿÿÿæþUþUþUþUþUþUþUþ[þmþ�þ½þèþÿGÿwÿ›ÿÁÿèÿ9`‡¯Ü*Ru–¶Öõ %<\tŒ¤¹‰Z2 Úª�X/â½–oN, æÿÅÿ¤ÿ…ÿfÿCÿ!ÿÿîþÍþ­þƒþaþLþCþBþBþBþBþBþ�þ#ÿmÿmÿmÿmÿmÿmÿmÿmÿmÿRÿ¼þBþBþBþBþBþBþHþZþ|þ¬þÖþÿ1ÿ`ÿ„ÿ©ÿÏÿöÿ!LsšÇôCfŠªÊê 8WvŽ¦Â“c3 Û«{R)ײ‹e>ùÿÕÿ²ÿ‘ÿrÿSÿ4ÿÿøþßþÅþ¤þzþYþCþ:þ9þ9þ9þ9þ9þ³þIÿ“ÿ“ÿ“ÿ“ÿ“ÿ“ÿ“ÿ“ÿ“ÿyÿãþMþ9þ9þ9þ9þ9þ@þRþtþ¤þÏþùþ$ÿTÿxÿ�ÿÁÿçÿ>i�½ê>a…¨Éè&=]|›³Ëœl< ݬ|L#úЧ€Y3 éÿÆÿ¢ÿÿ`ÿAÿ!ÿÿéþÏþ¶þœþrþPþ:þ1þ0þ0þ0þ0þBþØþnÿ¸ÿ¸ÿ¸ÿ¸ÿ¸ÿ¸ÿ¸ÿ¸ÿ¸ÿžÿÿrþ0þ0þ0þ0þ1þ7þJþmþ�þÈþòþÿGÿlÿ�ÿ´ÿÙÿ0[†³à 9]€¤Çæ$Cb‚¡ÀÌ™j: Ö¦uEïÆœsL&ÿÿÚÿ·ÿ”ÿqÿSÿ4ÿÿõþàþÆþ¬þ“þjþHþ2þ)þ(þ(þ(þ(þhþþþ”ÿÞÿÞÿÞÿÞÿÞÿÞÿÞÿÞÿÞÿÄÿ.ÿ˜þ(þ(þ(þ(þ)þ/þCþfþ–þ¿þéþÿ>ÿbÿ‡ÿ«ÿÐÿýÿ(S~­Ú3X|ŸÃå#Bd„£ÂÍšf7Ò�m=云g>ñÿÌÿ¨ÿ…ÿbÿDÿ&ÿÿçþÒþ¼þ£þ‰þaþ?þ)þ þ þ þ þ þ�þ#ÿ¹ÿéÿSÿ½þ'þ þ þ þ þ'þ;þ^þ�þ·þàþ ÿ5ÿYÿ}ÿ¡ÿÆÿòÿJv¤Ó-Qwš¾à!@b…¤ÃΚg3Ïše5ܯ…\2 âÿ¾ÿšÿvÿRÿ5ÿÿùþÚþÄþ®þ˜þþWþ5þ þþþþþþ²þHÿÞÿ(((((((((xÿâþLþþþþþþ2þVþ‡þ¯þØþÿ+ÿOÿsÿ—ÿ»ÿèÿBmœÊù&Kp•¸Ûý>`ƒ¥ÄÏœh4̘c.Ô¨{R(þÿÕÿ±ÿŒÿhÿDÿ&ÿÿëþÍþ·þ¢þŒþvþNþ-þþþþþþBþØþnÿNNNNNNNNN4žÿÿrþþþþþþ+þOþ€þ¨þÑþúþ"ÿFÿjÿŽÿ²ÿßÿ 8e”Âñ Ej�´Öù=_‚¤Æ¾�\(õÅ�\'ùÍ sHõÿËÿ§ÿƒÿ_ÿ;ÿÿÿþáþÃþ­þ—þ�þkþDþ#þþþþþþgþýþ“ÿ)sssssssssYÃÿ-ÿ—þþþþþþ"þGþyþ¡þÉþòþÿ=ÿaÿ…ÿ©ÿÕÿ/[‰·æ:_„©Ëí2Tv˜»¯€Q꺊U!óÅ™lAìÿÃÿŸÿ{ÿVÿ2ÿÿõþØþºþ¤þŽþxþbþ;þþþÿýþýþýþý�þ#ÿ¹ÿO™™™™™™™™™éÿSÿ½þ'þþýþýÿýþþ@þsþ›þÃþëþÿ7ÿZÿ~ÿ¢ÿÍÿùÿ&S€­Ü 0UzŸÁã'Ikް�n?Ý­}Më½�c8 âÿ¸ÿ”ÿpÿLÿ'ÿ ÿëþÍþ¯þ™þƒþlþWþ0þþýýõýôýôýþ±þGÿÝÿs½½½½½½½½½£ wÿáþKþôýôýõýüýþ8þjþ’þºþâþ ÿ.ÿQÿuÿ™ÿÄÿïÿHu£Ðÿ$In“µ×ù=_�£�^/Ò¢rBå·‰\1Ûÿ°ÿŒÿgÿCÿÿÿâþÄþ¦þ�þyþcþMþ&þþõýíýìýìýAþ×þmÿ™ãããããããããÉ3�ÿÿqþìýìýíýôý þ1þdþŒþ´þÜþÿ'ÿKÿnÿ‘ÿ¼ÿèÿ?lšÇõ?d‰«Íï3Uw™sMïÀ™i9 ݯ‚T)ÿÿÓÿ©ÿ„ÿ`ÿ<ÿÿùþÛþ½þžþƒþmþVþ@þþþýìýåýäýäýgþýþ“ÿ)¿         ïYÃÿ-ÿ—þþäýåýìýþ'þWþ‚þªþÒþúþÿ?ÿcÿ†ÿ°ÿÛÿ2^‹¹æ 0Uz›½ß"DfˆY3 Þ¯‡_/Ô§zM"÷ÿÌÿ¡ÿ}ÿXÿ4ÿÿñþÓþµþ—þ{þ_þIþ3þþóýãýÝýÝý÷ý�þ#ÿ¹ÿOå/////////éÿSÿ½þ'þÝýÝýãý÷ýþKþuþ¡þÉþñþÿ5ÿXÿ{ÿ¥ÿÏÿúÿ%Q}ª×ü!EkŒ®Ïñ3UwAôÍžwO'÷ËŸsFðÿÆÿšÿvÿRÿ-ÿ ÿêþÌþ®þ�þtþYþ=þ'þþêýÜý×ý×ýþ´þJÿàÿv VVVVVVVVV<¦zÿäþNþ×ý×ýÜýíýþ?þjþ•þÀþèþ ÿ,ÿNÿqÿ›ÿÄÿîÿEqœÊî7\~ŸÁã%Fh›rIöЩ‚\4 彑e9 âÿ·ÿ�ÿbÿ=ÿÿõþÐþ²þ“þuþWþ;þ þþéýÇý°ý¤ý¡ý¡ý÷ý�þ#ÿ¹ÿOå.........~èÿRÿ¼þ&þ¡ý¡ý¤ý²ýÒýþ,þWþ‚þ­þÏþñþÿ5ÿ_ÿ‰ÿ²ÿÜÿ3_НÓ÷>_�¢Ãä&Jm‘µ xO%üÙ³ŒeAòÊ tHòÿÇÿœÿqÿMÿ(ÿÿßþÃþ¤þ†þhþGþ+þþôýÐý¼ý²ý°ý°ýÛýqþÿ�ÿ3ÉøbÌÿ6ÿ þ þ°ý°ý²ý½ýÙý þ8þcþŽþ¹þÛþýþÿAÿjÿ”ÿ¾ÿçÿ?j•ºß(Jk�®Ðñ3VzžÁ£{S*ݺ“mI%ýÕ«�U)ÿÿÕÿªÿÿZÿ5ÿÿíþÐþ³þ•þwþVþ5þþýýÚýÈýÀýÀýÀýÀýMþãþyÿ¥îîîîîîîîîÔ>¨ÿÿ|þæýÀýÀýÀýÈýáýþ>þmþ˜þÃþåþÿ)ÿKÿtÿ�ÿÇÿñÿHsŸÄé 2Su—¸Ùû=a…¨Ì¥|T,ß¼™rO*ß´Š`4 ßÿµÿ‹ÿfÿAÿÿøþÛþ¾þ¡þƒþbþAþ þþåýÕýÐýÐýÐýÐý&þ¼þRÿèÿ~ÈÈÈÈÈÈÈÈÈ®‚ÿìþVþÐýÐýÐýÐýÕýéýþCþqþ þËþíþÿ1ÿSÿ|ÿ¥ÿÏÿùÿ$O{§Ëð9[}žÀá$Ei�±Õ£{R*ß»˜uQ- å»�f<èÿ½ÿ“ÿnÿIÿ%ÿÿãþÆþªþ�þlþKþ*þ þðýâýßýßýßýßýýý“þ)ÿ¿ÿUŸŸŸŸŸŸŸŸŸ…ïÿYÿÃþ-þßýßýßýßýâýóýþDþrþ¡þÐþòþÿ6ÿXÿ�ÿªÿÔÿýÿ(T€«Ðõ>`�£Åæ)Ko’¶Ú°‹b:į̈…a=õÍ¢xN öÿËÿ¡ÿxÿSÿ/ÿ ÿïþÓþ¶þ™þwþVþ5þþùýîýìýìýìýìýìýfþüþ’ÿ(rrrrrrrrrWÁÿ+ÿ•þÿýìýìýìýìýîýûýþOþ}þ¬þÛþüþÿ@ÿbÿ�ÿ·ÿàÿ 7b�¹ß(Mq“´Öú=_‚¦Êíº•pH ýÚ·”pL(Û²ˆ^0Øÿ®ÿ„ÿ\ÿ7ÿÿ÷þÜþÀþ£þ�þ_þ>þþþúýøýøýøýøýøý7þÍþcÿùÿCCCCCCCCC(’ÿüþfþøýøýøýøýøýúýþ'þVþ†þµþäþÿ&ÿHÿjÿ–ÿÁÿêÿ@nšÅë5Z~¢Äå -Np”·ÛþÂ�xS*åŸ{W4ç¾”j<áÿ·ÿŽÿeÿ<ÿÿüþâþÇþªþˆþfþDþ#þ þþþþþþþþ›þ1ÿÇÿöÿ`ÿÊþ4þþþþþþþ þ,þ\þ‹þ»þéþ ÿ,ÿNÿpÿ›ÿÆÿñÿHu¢Îô?dˆ¬Ðò9]~¢Æé Ç¢}W2íʧƒ`<ïÆ�tFëÿ½ÿ”ÿkÿBÿÿþþãþÉþ®þŒþjþHþ&þþ þ þ þ þ þ þ þfþüþ’ÿÛÿÛÿÛÿÛÿÛÿÛÿÛÿÛÿÛÿÁÿ+ÿ•þ þ þ þ þ þ þ þþ.þ]þ�þ½þìþÿ/ÿQÿrÿ�ÿÈÿóÿLy§ÔúEk�³×ûCfŠ­ÑõЮ‰c>ùÖ³‘mI%þÕ«ƒQ#õÿÈÿ›ÿqÿIÿÿÿëþÐþµþ“þqþOþ-þþþþþþþþþ0þÆþ\ÿ¥ÿ¥ÿ¥ÿ¥ÿ¥ÿ¥ÿ¥ÿ¥ÿ¥ÿ‹ÿõþ_þþþþþþþþþ5þeþ•þÄþôþÿ6ÿWÿyÿ¦ÿÑÿûÿ'V„±ß+Qw�Áå /Sw›¾á(ض”nI&ᾜyU2 â¹�^-ÿÿÒÿ¤ÿwÿNÿ%ÿ ÿñþÖþ¼þ™þvþTþ2þþþþþþþþþþŽþ$ÿnÿnÿnÿnÿnÿnÿnÿnÿnÿTÿ¾þ(þþþþþþþþ!þ<þlþœþËþúþÿ;ÿ]ÿ~ÿ«ÿØÿ.^Ž»è6\‚¨Îó<b†ªÍñ7ß½›yT1íʧ„a>îÇ�l; Ûÿ®ÿ�ÿSÿ+ÿÿ÷þÝþÂþŸþ}þZþ8þ%þþþþþþþþþWþíþ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿÿ‡þþþþþþþþþ'þBþrþ¢þÒþÿ"ÿBÿcÿ„ÿ±ÿÞÿ 5e•Åò@gŒ³Ù$Jp–¹Ý#GçÅ£�_<øÕ²�mJ"úÓ«zHåÿ¸ÿŠÿ]ÿ0ÿÿüþâþÈþ¦þƒþ`þ>þ+þ$þ#þ#þ#þ#þ#þ#þ#þ#þ¶þÿÿÿÿÿÿÿÿÿæþPþ#þ#þ#þ#þ#þ#þ#þ$þ-þHþxþ¨þØþÿ(ÿIÿjÿŠÿ·ÿäÿ=mœÌü#Ip—¾ä 1W}£Éì3VèÇ¥ƒaAüÚº—uR,ݵ…S"ðÿÃÿ•ÿhÿ;ÿÿÿëþÑþ«þ‰þfþCþ0þ)þ)þ)þ)þ)þ)þ1þ)þ)þþÉþÉþÉþÉþÉþÉþÉþÉþÉþ®þ)þ)þ)þ)þ)þ)þ)þ)þ*þ4þOþ€þ°þàþÿ1ÿQÿqÿ’ÿ¾ÿëÿEt¤Ó+QxŸÆí9`†¬Òõ<_çǧ…cC#Þ¾ž{Y3 澎],ûÿÍÿŸÿrÿEÿ)ÿ ÿóþÙþ³þ�þkþHþ5þ.þ.þ.þ.þ.þ.þJþ.þ.þGþ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þvþ.þ.þ.þ.þ.þ.þ.þ.þ/þ9þUþ…þ·þæþÿ7ÿXÿyÿ™ÿÅÿñÿK{ªÚ 1Y¦ÍôAgŽ´Úý!DgèȨ‡fF&ããƒ`;ðȘh7Øÿ«ÿ}ÿPÿ4ÿÿüþâþ¼þ–þpþMþ;þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þZþZþZþZþZþZþZþZþZþ?þ4þ4þ4þ4þ4þ4þ4þ4þ5þ?þ[þŒþ½þîþÿ?ÿ`ÿ€ÿ¡ÿÍÿúÿ&R‚±á8`‡®Õü#Jp–½ã)Mpèȧ‡gG'çǧ‡gBöÑ¡p@âÿµÿ‡ÿZÿ>ÿ"ÿÿêþÄþžþxþRþ?þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ!þ!þ!þ!þ!þ!þ!þ!þ!þ9þ9þ9þ9þ9þ9þ9þ9þ9þ:þDþaþ’þÃþôþ%ÿFÿfÿ‡ÿ¨ÿÔÿ-Yˆ¸è>f޵Ü*QxžÄë1UxéÊ©‰iL, ìÏ®�oK&Û¬|LïÿÁÿ”ÿfÿGÿ+ÿÿóþÉþ£þ}þWþEþ?þ>þ>þ>þ>þ>þ>þ>þ>þ4þêýêýêýêýêýêýêýêýêýþ>þ>þSþ>þ>þ>þ>þ>þ@þJþhþ›þÌþýþ.ÿPÿqÿ‘ÿ²ÿÜÿ4`�½ìBj‘¹ß-Tz¡Çî4W{êʬ‹kN1ðÓ¶–vS0 䶈W'úÿÎÿ ÿrÿSÿ4ÿÿüþÒþ©þ‚þ\þJþDþDþDþDþDþDþDþDþDþýý³ý³ý³ý³ý³ý³ý³ý³ý³ýÍýDþ[þoþDþDþDþDþDþFþQþnþ¢þÕþÿ7ÿYÿ{ÿœÿ½ÿæÿ<h”Áð Gn•½ã 0X~¤Êð7Z~ìÍ®�oR5÷Ú½Ÿ\9ð“e5Ûÿ®ÿ�ÿaÿBÿ"ÿÿÝþ³þŠþdþRþLþLþLþLþLþLþLþLþLþÈý~ý~ý~ý~ýý~ý~ý~ý~ý˜ý.þLþLþLþLþLþLþLþNþYþwþ«þÞþÿBÿdÿ†ÿ¨ÿÉÿòÿEqžË÷'Mt›Âé6]ƒ©Ïõ<_‚îϰ‘rU8ýàÃ¥ˆeAûÍžpAçÿ»ÿŽÿoÿOÿ/ÿÿçþ½þ“þjþXþSþSþSþSþSþSþSþSþ(þ’ýHýHýHýsý~ýHýHýHýHýbýøýSþSþSþSþSþSþSþTþ`þþ²þæþÿLÿnÿ�ÿ²ÿÔÿýÿ'Qz§Ó,Sz Çí;a‡­Óù@c†òÓ´•vZ<æÉ¬ŽlH%Ô¦wHðÿÃÿ–ÿtÿUÿ5ÿÿëþÂþ˜þoþ^þYþYþYþYþYþYþYþYþðýZýýýý‡ýŽý1ýýýý+ýÁýWþYþYþYþYþYþYþZþgþ†þºþîþ!ÿTÿwÿ™ÿ»ÿÝÿ.W�ª×0V}¤Êð=d‰¯ÕûBeˆûݾŸ€dG* ñÕ¸›xU2á³…V*þÿÑÿ¥ÿƒÿaÿAÿ!ÿ÷þÌþ£þyþiþeþeþeþeþeþeþeþUþ¿ý)ýàüàüàüàüàüàüàüàüàüúü�ý&þeþeþeþeþeþeþfþsþ“þÇþüþ/ÿbÿ…ÿ¨ÿÊÿìÿ;d�·á :`†­ÔùFl‘·Ý'Jm‘䯧ˆlP3úÞÂ¥‚_<ì¾�b6 Þÿ±ÿ�ÿmÿKÿ+ÿÿÖþ¬þ‚þsþoþnþnþnþnþnþnþ#þ�ý÷ü­ü­ü­ü­ü­ü­ü­ü­ü­üÇü]ýóýnþnþnþnþnþnþpþ}þ�þÒþÿ;ÿnÿ‘ÿ´ÿ×ÿùÿ Ho˜ÂìBhŽ´Û&Ls˜¾ã ,Pt—çȪ‹oR6þâÆª‡dBñÄ–h<äÿ¸ÿ–ÿtÿRÿ0ÿÿÛþ°þ†þwþsþsþsþsþsþsþsþ þwýáü—ü—ü—ü—ü—ü—ü—ü—ü—ü²üHýÞýsþsþsþsþsþsþuþƒþ£þØþ ÿ@ÿuÿ˜ÿ»ÿÞÿ(PwžÈòEk‘·Ý(Ntš¿ä .Qt˜ÿàÁ£„hL/÷Û¿£€];꼎a4Üÿ°ÿ�ÿnÿLÿ*ÿÿØþ®þƒþuþqþqþqþqþqþqþqþ þŠýôüªüªüªüªüªüªüªüªüªüÄüZýðýqþqþqþqþqþqþsþ�þ¡þÒþÿ;ÿpÿ‘ÿµÿ×ÿûÿ"Iq˜Ãí@g�³Ùþ$Io•ºß(Lo“ôÕ¶—x]A%íѵ™vR0 ß°ƒU)üÿÐÿ¤ÿ…ÿdÿCÿ ÿùþÒþ§þ|þoþkþkþkþkþkþkþkþRþ¼ý&ýÝüÝüÝüÝüÝüÝüÝüÝüÝü÷ü�ý#þkþkþkþkþkþkþmþ|þœþÌþýþ2ÿfÿˆÿªÿÍÿðÿ@g޹ä 7^„ªÐöAfŒ±ÖüCfŠçȨ‰jN3ûßèŒhE"ÿÑ¢tFîÿÂÿ–ÿvÿVÿ6ÿÿìþÅþ�þsþeþbþbþbþbþbþbþbþbþþmý#ý#ý#ý#ý#ý#ý#ý#ý#ý=ýÓýbþbþbþbþbþbþbþeþsþ”þÄþôþ%ÿZÿ|ÿžÿÀÿâÿ 2Z�¬Ö+RxžÄê5[€¥Êð6Z}Ú»œ|]A% îÒ·›\9òÄ•g9 áÿ´ÿˆÿhÿHÿ(ÿÿáþ¹þ‘þjþ]þZþZþZþZþZþZþZþZþUþ¿ýuýuýuýuýuýuýuýuýuý�ý&þZþZþZþZþZþZþZþ]þlþŒþ½þíþÿNÿpÿ’ÿ´ÿÖÿþÿ%Mu Ëõ Gm“ºß+Pu›Àå+OrÉ©‰jK1ùÝèŒpL)ã³…V(ûÿÏÿ£ÿvÿ[ÿ;ÿÿûþÙþ±þŠþbþUþRþRþRþRþRþRþRþRþRþþÇýÇýÇýÇýÇýÇýÇýÇýÇýâýRþRþRþRþRþRþRþRþVþeþ„þ¬þÜþ ÿ=ÿ]ÿÿ¡ÿÄÿîÿ>e”¿é<b‰¯ÔúEi�´ÙûAe½œ{\=# íÑ·��eAú×§wIîÿÁÿ•ÿiÿMÿ3ÿÿóþÐþ­þ†þ_þRþOþOþOþOþOþOþOþOþOþOþþþþþþþþþþ*þOþOþOþOþOþOþOþOþSþbþ€þ¨þÏþÿ1ÿQÿqÿ“ÿµÿàÿ 2Z‰·â 4[‚©Íò=b‡¬Ñó8[´“rQ2þãÈ®”z^:òΟo?äÿ·ÿŠÿ^ÿCÿ(ÿ ÿíþÊþ¨þ…þ^þQþOþOþOþOþOþOþOþOþOþOþBþBþBþBþBþBþBþBþBþOþOþOþOþOþOþOþOþOþSþbþþ§þÎþöþ'ÿGÿgÿˆÿªÿÔÿÿÿ*R€®Ý/W~¥Êï9^‚§Ìî2U¯ŽnM,øÝé�u[7ïË›l< ßÿ²ÿ…ÿXÿ=ÿ"ÿÿìþÊþ§þ„þbþVþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþXþgþƒþ«þÒþúþ"ÿBÿbÿƒÿ£ÿÎÿøÿ#N|«Ù0W~¦Ëð:^ƒ¨Ìî2T«‰hH'óÙ¿¥‹qW2êÆ•f6Øÿ«ÿ~ÿQÿ;ÿ ÿÿêþÎþ«þˆþfþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ]þlþ‡þ¦þÍþõþÿ<ÿ\ÿ|ÿœÿÉÿôÿJ{©Ø.V~¥Êï9]‚¦Ëì0R©‡eD# ðÖ»¢ˆoU/ çÑa1Óÿ¥ÿyÿKÿ6ÿ ÿÿêþÍþ°þ�þkþ`þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þcþrþŒþ«þÉþñþÿ7ÿVÿvÿ—ÿÃÿñÿFw©×.V}¥Êï9]�¦Ëì /Q¦„b@ìÓ¸Ÿ…lR-㿎],üÿÎÿ ÿsÿFÿ0ÿÿÿéþÌþ°þ’þpþfþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþjþxþ‘þ°þÎþìþÿ3ÿRÿpÿ‘ÿ¾ÿëÿBt¥Ö-U}¥Êï9]‚¦Êì .P¢€^<çδš�hN)ߺ‰X'öÿÈÿšÿmÿ?ÿ)ÿÿþþèþËþ®þ‘þtþjþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþoþ}þ•þ´þÒþðþÿ.ÿLÿkÿŠÿ·ÿäÿ>o Ò+T|¤Éî8\€¥Éê -N£];üâȯ‘x^DúÕ°�PîÿÂÿ•ÿgÿ9ÿ(ÿÿüþçþÏþ²þ•þxþoþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþtþ‚þšþ·þÕþôþÿ2ÿPÿoÿŽÿ·ÿäÿ>l�Îÿ(Px Èì6]‚¦Êì .P¤€\:ûÝĪŒnT;ïÊ¥vHæÿºÿ�ÿaÿ4ÿ"ÿÿûþåþÎþ¶þšþ|þtþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþyþ‡þŸþ¼þØþ÷þÿ5ÿTÿsÿ’ÿ»ÿäÿ>l™Êü$LtœÄë5\‚§Ëí0Q¤�]:úÜ¿¥‡iK2 æÀšl=Ýÿ²ÿ‡ÿ\ÿ.ÿÿ ÿúþäþÍþµþžþ�þxþxþxþxþxþxþ‚þxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþþŒþ¤þÁþÞþúþÿ8ÿWÿvÿ•ÿ¾ÿèÿ>l™Æø Hp™Àç4Z�¨Ìî1R¤�]9øÛ½Ÿ�cE'Ûµ�`1Ôÿ©ÿ}ÿRÿ'ÿÿÿóþâþÊþ³þ›þ„þ|þ{þ{þ{þ{þ{þ þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ|þƒþ‘þ¨þÅþáþþþÿ:ÿYÿyÿ˜ÿÁÿëÿ=k˜ÆóCl”»ã 1X¥Ìî1S§�]:ðÒµ—pR4ïɤ~V'øÿÉÿ¤ÿyÿMÿ"ÿÿÿóþâþÏþ·þ þˆþ�þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ�þˆþ–þ®þÑþîþ ÿ(ÿIÿiÿˆÿ§ÿÈÿñÿDg•Ãð@h�½ä 2^…«Òô7Y¨‚\9ïÉ«ŽgA"Þ·‘kCìÿ¾ÿ˜ÿsÿHÿÿÿÿòþáþÎþºþ£þŒþ…þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ…þŒþ›þ´þ×þúþÿ4ÿUÿwÿ–ÿ¶ÿÖÿ÷ÿ Jm‘¾ì;c‹¸ä 2^а×ù<^©„^8ïÈ¢„^7óÌ¥Y1 áÿ²ÿ�ÿgÿBÿÿ ÿþþñþàþÍþ¹þ¦þ�þˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþ‰þ‘þŸþ¹þÜþÿþ#ÿ?ÿaÿƒÿ¥ÿÄÿåÿ&Os—»è7^†³ß 3^еÜþAcª„_9íÇ zT-๓lEõÿÍÿ¥ÿ€ÿ[ÿ5ÿÿÿ÷þëþÞþËþ·þ¤þ‘þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þŒþ”þ£þ½þàþÿ'ÿJÿlÿŽÿ¯ÿÑÿòÿ3Tx›¿ã 1Y€­Ù2]‰µà$Eg«…_9éœvJ$ý×°‰c<ïÿÈÿŸÿ}ÿXÿ3ÿÿÿ÷þëþßþÍþºþ§þ“þŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþ�þ—þ§þÁþéþ ÿ0ÿSÿvÿ˜ÿºÿÛÿøÿ9ZxœÀã 1Y€¯Û4c޹å)Jl¬…^8è½—pEó̦€Y2éÿÁÿ™ÿwÿUÿ0ÿ ÿÿ÷þêþÞþÍþ¼þ¨þ•þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ‘þ™þ©þÅþíþÿ8ÿ[ÿ~ÿ¢ÿÃÿåÿ>^}›¿â 0W~®Ü 6d’¾é ,Np«„]6æ»�j?èÁ›tN'Þÿºÿ’ÿpÿMÿ,ÿÿüþóþéþÜþËþºþ©þ–þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ’þ›þ«þÈþïþÿ?ÿbÿ…ÿ¨ÿÌÿîÿ &Ab�Ÿ½á.U|«Ú 6d’Àì0Qsªƒ\6äº�d8 â¶�iBøÿÓÿ®ÿŠÿhÿFÿ$ÿÿøþîþåþÛþÊþ¸þ§þ–þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ“þœþ­þÊþòþÿAÿiÿŒÿ°ÿÓÿöÿ.Jf„¢Áß,Sz©Ø6d’Áï2Tv¨�[4 㹎c9 â¶�jCûÿÖÿ²ÿ�ÿnÿLÿ*ÿÿúþðþæþÝþÉþ¸þ§þ•þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ“þœþ®þÌþïþÿ?ÿgÿˆÿ«ÿÎÿñÿ-Ie‡¥Äâ /V}«Ú 8e“Âð3Uw¥X1 á·Œa7 áµ�iCûÿÙÿ´ÿ�ÿpÿPÿ/ÿ ÿÿþñþçþÝþÊþ·þ¥þ”þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ’þœþ®þÍþðþÿ;ÿcÿ„ÿ¥ÿÉÿìÿ +Gc…§Æä 1X­Û 9g“Âð3Uw¤}V0 ßµŒa6 á¶�jDûÿÙÿ·ÿ“ÿsÿTÿ4ÿÿÿöþèþÞþËþ¸þ¥þ”þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ’þœþ¯þÏþòþÿ9ÿ`ÿ‚ÿ£ÿÄÿèÿ'Gc…§Éç4[‚°Þ <i–Ãñ5Vx¡zT-ܲ‰_4 àµ�iCûÿÙÿ·ÿ•ÿvÿVÿ6ÿÿ ÿûþíþßþÌþ¹þ¥þ’þŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþ�þ�þŽþŽþŽþŽþŽþ‘þœþ°þÐþóþÿ:ÿ]ÿ~ÿ ÿÁÿâÿ"Aaƒ¥Çé7]„²à=j—Äñ4VxÃ�vO(Ö¬ƒY/Úµ�iC%áÿ¿ÿ¤ÿ„ÿeÿEÿ/ÿ!ÿÿÿíþÚþÇþ´þ°þ°þ°þ°þ°þ°þ°þ°þ°þ°þ°þ°þ°þ°þ°þ°þ°þ°þ°þ°þ°þÃþÂþ°þ°þ°þ°þ°þ³þ¾þÔþöþÿ6ÿYÿ|ÿ›ÿ¼ÿÝÿþÿ$Dcƒ¬Îð9`†­Ù5cŽ»èÁštM'þÖ¬‚Y0Û¶�jD' çÿÅÿªÿŽÿnÿOÿ9ÿ"ÿÿÿïþØþÄþ±þ®þ®þ®þ®þ®þ®þ®þ®þ®þ®þ®þ®þ®þ®þ®þ®þ®þ®þ®þ®þ®þØþØþ®þ®þ®þ®þ®þ±þ½þÔþøþÿ1ÿTÿxÿ–ÿ´ÿÕÿöÿBb‚ªÓõ>e‹²Þ 7f�»èÀšsL&ýÕ¬‚Z0ݸ’lF) îÿÌÿ°ÿ•ÿzÿZÿDÿ.ÿÿ ÿòþÚþÃþ°þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ­þ°þ½þÖþúþÿ4ÿPÿtÿ’ÿ°ÿÏÿðÿ;a�ªÒûDj‘¸ä:i”¾é½–pJ#úÒª�X/ݸ’lG* îÿÑÿ¶ÿšÿÿcÿMÿ7ÿ ÿ ÿòþÛþÄþ¬þªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþ­þ»þÖþûþÿ4ÿQÿnÿŒÿªÿÉÿçÿ 2X~§Ðø!Hn•¼è>j•À꿘rK%üÔ¬ƒZ1ß¹”nH-òÿÔÿºÿŸÿƒÿhÿLÿ6ÿÿ ÿæþÈþ´þ©þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þªþ¹þÕþüþÿ8ÿUÿrÿ�ÿ®ÿÌÿëÿ9^„¯Ø)NuœÂëBn–ÁìÀ™sL&ýÕ­„[2 ດoI-óÿÖÿ¼ÿ¢ÿ‡ÿkÿOÿ4ÿÿÿãþÄþ¯þ¤þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¢þ¦þ¶þÔþýþÿ;ÿXÿuÿ“ÿ±ÿÏÿíÿ>d‰´ß0U{¡ÈñEq™ÂìÁštM&þÖ®…\3 ổoJ.öÿØÿ¾ÿ¤ÿŠÿnÿSÿ7ÿÿÿßþÀþ«þ þžþžþžþžþžþžþžþžþžþžþžþžþžþ¨þ§þžþžþžþžþžþžþžþžþžþžþžþžþžþ¢þ³þÓþþþÿ<ÿZÿwÿ–ÿ´ÿÒÿðÿAi�¹ä7\‚§ÎöHsœÄíÁštM&þÖ­…\3 ổoI-õÿÙÿ¿ÿ¥ÿ‹ÿqÿUÿ:ÿÿÿÚþºþ¥þ›þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ¶þ³þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þžþ¯þÐþýþÿ;ÿZÿyÿ—ÿ¶ÿÔÿòÿCk“¾è=bˆ­Òû$LužÆîÅŸxQ+Ú±‰_7 å½—qK,ôÿØÿ½ÿ£ÿ‰ÿoÿOÿ4ÿÿüþÔþ´þŸþ”þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ˜þªþÍþüþ)ÿHÿgÿ†ÿ¨ÿÇÿåÿ)Qz¢ÉóHj�µÚû$Mu—¿èʤ}V0Þ¶Žd:èÁštN.ôÿØÿ¼ÿ ÿ†ÿlÿMÿ.ÿÿöþÎþ­þ˜þŽþ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ’þ¥þÉþûþ(ÿVÿtÿ”ÿ¶ÿØÿöÿ:`‰±Øþ)Tv˜½â$Mv—¸á ͦY2 á¸�f<é›tN/ñÿÕÿ¹ÿ�ÿ�ÿgÿIÿ)ÿ ÿïþÅþ¤þ�þ†þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ…þŠþžþÄþ÷þ%ÿRÿ€ÿŸÿÁÿãÿ#Io–¾å 2]¡Ãè +Lu–·ØÐ©ƒ]6 弓i?ìÅ�vO0òÿÓÿ·ÿ›ÿ€ÿdÿEÿ&ÿÿèþ¾þ�þˆþþ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þƒþ˜þ¿þõþ#ÿPÿ}ÿ«ÿÍÿïÿ3Y¦Ìó@g‰«Íï1St•·ØùÓ­‡`:è¿—mCïÇ yQ.ñÿÒÿ³ÿ—ÿ{ÿ`ÿ>ÿÿÿáþ¶þ•þ�þwþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþ|þ’þºþòþ0ÿ]ÿ‹ÿ¸ÿÞÿ"DhŽ´Ûý#Jq�²Ôö/PqŠ«ÍîÕ°Šd=ê™oEòÉ¡zR0 îÿÏÿ°ÿ’ÿvÿZÿ9ÿÿøþÙþ®þŒþxþoþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþtþŠþ´þîþ,ÿjÿ—ÿÄÿêÿ2TxœÂè ,Sz™¸Ùü+Mn†ŸÀâÙ³ŽiBðÆ�tIöÍ¥}V3íÿÏÿ°ÿ‘ÿsÿWÿ5ÿÿòþÓþ§þ†þrþiþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþnþ…þ°þíþ*ÿhÿ¥ÿÓÿùÿEgŠ®Ñ÷<^…¤Ãá3Km…�¶×ݸ’mGõË¢xN$úÒª�Y6ñÿÎÿ°ÿ‘ÿrÿTÿ2ÿÿïþÍþ¡þþkþcþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþiþ€þ¬þëþ(ÿfÿ¤ÿáÿ-SyœÀä)Ln�¯Îì #;Sk„œ´ÍÜ·‘lFôÊ¡wM#ùШW3îÿËÿ¬ÿ�ÿnÿPÿ-ÿ ÿéþÈþ›þzþfþ]þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ]þdþ{þ©þéþ,ÿjÿ§ÿåÿ 2X~¡Äè ,Nq“°Ïî !9Qi~–¯ÇÝ·‘lGôÊ¡wM#ùϧ~V2ëÿÉÿ©ÿŠÿkÿMÿ*ÿÿåþÃþ—þuþbþYþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþYþ`þxþ¦þçþ+ÿoÿ­ÿêÿ9_…§Éí1Su—´Ñð#7Og}’«Ãß¹”nIöÌ£yN$úѨW3ëÿÈÿ©ÿŠÿjÿLÿ)ÿÿâþÀþ”þsþ_þWþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþWþ^þwþ¦þèþ,ÿpÿ´ÿñÿ@g�¯Òô9Z{�º×ô'<Ph~“¨Àâ¼—rL"ùϦ|R'ýÔ«‚Y5íÿÉÿªÿŠÿkÿLÿ)ÿÿâþ¿þ“þqþ^þVþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþ]þvþ¦þêþ.ÿrÿµÿùÿ Ho–¸Ûþ Abƒ¤ÁÞû,AVj”ª¿Û¢|W1úЧ}U+Öº’h?(àÿ¼ÿ£ÿƒÿdÿEÿ'ÿÿáþ¾þ“þrþ_þWþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþ^þxþ¨þìþ.ÿrÿµÿùÿFn•¸ÚýAbƒ¤ÁÞû+?Th{�¥ºÕœc=à¨U-Û±•yP'ùÿÕÿ±ÿ—ÿ}ÿ^ÿ?ÿ!ÿÿàþ½þ“þsþ`þXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþ`þzþ¬þðþ1ÿsÿ¶ÿúÿ Gn•¸Ûý Bc„¥Âßü+>SgzŒ¢·Õ›b(Ë”\3 âº�tX<ýÿåÿÏÿªÿ‘ÿwÿ]ÿ>ÿ ÿÿåþÁþ™þzþgþ_þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ_þgþ‚þ´þùþ:ÿ{ÿ¼ÿ&Lsš½à%Gi‹¬Èå1DVk~‘£¹â©o5üÅ�UöÍ¥}aE*÷ÿàÿÉÿ²ÿ˜ÿ~ÿeÿKÿ-ÿÿòþÔþ­þŽþ|þtþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþtþ|þ—þÉþÿPÿ‘ÿÓÿ:`‡­Ðó9[}žÀÝù3EXk}�£µÈ\!è®u_'︳‹b:; èÿìÿÕÿ¾ÿ§ÿ¥ÿ‹ÿqÿXÿLÿ.ÿÿóþËþ­þ›þ“þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ“þ›þ·þéþ.ÿkÿ¬ÿíÿ/Sz Æê 0Su—¹Ú÷1M]o‚”¥·ÊÝÙžd*ðÚÄŒUPK#úÿüÿýÿáÿÆÿÉÿÌÿµÿžÿ�ÿ›ÿ�ÿhÿ\ÿPÿ2ÿÿëþÏþ¼þµþ´þ´þ´þ´þ´þ¶þ´þ´þ´þ´þ´þ´þ´þ´þ´þ´þ´þ´þ´þ´þ´þ´þ´þ´þ´þ´þ´þµþ½þÙþ ÿPÿ�ÿÊÿ Lq–¼â*Mp’´Öø1Njz‰œ®¿ÏâôRÜ¢hR<%îÿéÿäÿßÿ·ÿ¸ÿ¹ÿ»ÿŸÿ¢ÿ¦ÿ©ÿ’ÿ‘ÿ�ÿ�ÿsÿgÿ[ÿOÿ1ÿ ÿîþÚþÒþÒþÒþÒþÒþ×þ ÿ×þÒþÒþÒþÒþÒþÒþÒþÒþÒþÒþÒþÒþÒþÒþÒþÒþÒþÒþÒþÒþÒþÛþ÷þ*ÿnÿ«ÿçÿ$e‹¯ÕûBf‰«Íð.Kg„“£²ÅÕåõ¿„JÔÿ¾ÿ§ÿ‘ÿ{ÿvÿqÿlÿgÿhÿjÿkÿlÿpÿsÿvÿzÿxÿvÿuÿsÿgÿ[ÿOÿCÿ%ÿÿòþæþäþäþäþäþ!ÿSÿ!ÿäþäþäþäþäþäþäþäþäþäþäþäþäþäþäþäþäþäþäþäþäþíþ ÿ<ÿ€ÿ½ÿúÿ6s˜½â+Nr–¸Úý<Xt‘ °ÀÏßð3ùÿÍÿ­ÿ—ÿŠÿƒÿ€ÿaÿaÿaÿaÿaÿaÿaÿaÿÿ€ÿ‚ÿ„ÿ‡ÿŠÿ‹ÿ‹ÿˆÿ„ÿÿtÿ_ÿCÿ&ÿ ÿüþôþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþðþøþÿGÿŠÿÂÿÿÿ<y�Áç /Sw›½ß#?\y•¥µÄÓäôÔÿ´ÿ£ÿœÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿ~ÿ�ÿžÿžÿ�ÿšÿ•ÿŒÿyÿ`ÿBÿ&ÿÿÿ÷þðþïþïþïþïþïþïþïþïþïþïþïþïþïþïþïþïþïþïþïþïþïþïþïþïþðþøþÿFÿˆÿÀÿøÿ5r–ºß(Ko“µØú8Tp��­¼ÌÜíý´ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ”ÿ²ÿ²ÿ°ÿ­ÿ¥ÿ•ÿ~ÿaÿCÿ(ÿÿÿòþêþèþèþèþèþèþèþèþèþèþèþèþèþèþèþèþèþèþèþèþèþèþèþèþéþñþ ÿ>ÿÿ·ÿðÿ(dˆ¬Ðö=a„§Éë*Fb~Žž®¾ÎÞïÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿ©ÿÇÿÆÿÀÿµÿ¡ÿ†ÿfÿHÿ,ÿÿüþëþâþàþàþàþàþàþàþàþàþàþàþàþàþàþàþàþàþàþàþàþàþàþàþáþéþÿ4ÿuÿ­ÿåÿVzžÂæ -Qu—¹Üþ6Rn~Žž®¿Ïàð½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿ½ÿÚÿÔÿÅÿ­ÿŽÿlÿKÿ+ÿ ÿôþáþØþ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þ×þàþúþ)ÿhÿ—ÿÏÿ?b†ªÎñ9]~¡Ãå:Vm}��¶Æ×çÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿïÿæÿÓÿ·ÿ•ÿpÿJÿ%ÿÿèþÕþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÎþÖþðþÿ[ÿ‰ÿ¸ÿðÿ)Kn’µÙý Df‡ªÌé">Um}�¥¾Îßåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿåÿ÷ÿßÿ¾ÿ—ÿmÿBÿÿôþØþÈþÅþÅþÅþÅþÅþÅþÅþÅþÅþÅþÅþÅþÅþÅþÅþÅþÅþÅþÅþÅþÅþÍþæþÿMÿ|ÿ«ÿÙÿ4Wy�Áä+Mo‘³Ðí &>Um}•­ÅÖúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿúÿçÿÀÿ’ÿbÿ2ÿÿáþÈþ½þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ½þÅþÝþÿAÿpÿžÿÍÿüÿAd†ªÍð6Xy›¸Õò'>Vm…ž¶Î$ åÿ·ÿ‚ÿMÿÿìþÊþ¶þ³þ³þ³þ³þ³þ³þ³þ³þ³þ³þ³þ³þ³þ³þ³þ³þ³þ³þ³þ´þ»þÓþüþ4ÿZÿ‰ÿ¸ÿæÿ*Lo’µÙü?aƒ ¾Úø.F]}•®Æ""""""""""""""""""""""""""""""">+Ùÿ¡ÿgÿ-ÿùþÎþ³þªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþªþ«þ²þÉþñþ&ÿMÿsÿ¢ÿÑÿòÿ5X{žÂå'Ijˆ¦Ãàÿ6Nm�¥¾5555555555555555555555555555555SG&÷ÿ½ÿ~ÿ>ÿÿÒþ¯þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ¨þ¾þäþÿ?ÿeÿ‹ÿºÿÛÿüÿ?c†©Íí/Qo�«Çç%=]|œ´IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII`BÖÿ’ÿNÿ ÿÕþ¬þ˜þ—þ—þ—þ—þ—þ—þ—þ—þ—þ—þ—þ—þ—þ—þ—þ—þ—þ—þ—þžþ´þÙþ ÿ1ÿWÿ~ÿ¤ÿÅÿæÿ(Ko’µÖ÷9Wu’°Ïï-MmŒ¬]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]vY(éÿ¢ÿXÿÿÖþ¨þ�þŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþ•þªþÏþÿ%ÿKÿqÿ—ÿ¹ÿÚÿûÿ>a…¨Éê ,Ig„¢Áàÿ>^}�oooooooooooooooooooooooooooooooo‰k8õÿªÿ\ÿÿÐþ þ…þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þƒþŠþžþÂþóþÿ<ÿcÿ‰ÿªÿËÿìÿ 0Sv™ºÛû:Wu“±Ðï.Mm�‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚šyBûÿ«ÿYÿ ÿÇþ•þ{þxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþyþþ“þ·þæþ ÿ0ÿUÿ|ÿœÿ¾ÿÞÿ"Eh‹¬Ìí,If„¢Áàÿ>]}••••••••••••••••••••••••••••••••©‚Eùÿ¥ÿNÿþþ¹þ‡þoþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþuþˆþ«þÚþÿþ$ÿIÿnÿ�ÿ°ÿÑÿòÿ7Z}ž¿ß;Xu”³Ñð/Nm¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨Æ²ƒ?íÿ”ÿ;ÿéþ¥þvþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþjþ~þ þÏþùþÿCÿhÿ‹ÿ¬ÿÍÿîÿ2Ux—¸Ùú3Pn‡¦Åäþ<\»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»Õ´z.ÖÿyÿÿÎþ�þdþZþZþZþZþZþZþZþZþZþZþZþZþZþsþ\þZþZþZþZþZþ`þsþ•þÃþîþÿ=ÿbÿ…ÿ§ÿÉÿéÿ -Ps’±Òó,If€™¸×ñ +JÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍëÙªd²ÿSÿùþ«þqþRþOþOþOþOþOþOþOþOþOþOþOþOþYþ©þ–þOþOþOþOþOþUþgþˆþ·þâþ ÿ7ÿ\ÿ~ÿ¡ÿÃÿäÿ(IlŒ«Ëë$@]w‘«Éäþ7ääääääääääääääääääääääääääääääùÔ•Dèÿ‡ÿ'ÿÐþ‰þYþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþIþNþ`þ�þ°þÚþÿ0ÿZÿ|ÿŸÿÂÿäÿ'IkŠªÊé">ZtާÁÛö*ûûûûûûûûûûûûûûûûûûûûûûûûûûûûûõ¼n²ÿOÿòþ¢þfþFþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþHþYþzþ¨þÕþÿþ)ÿTÿxÿšÿ½ÿßÿ"De…¤Äã8Uk…Ÿ¹Ðê-ÛŽ4Òÿoÿÿ¹þuþIþ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þBþSþsþ¡þÍþúþ$ÿOÿsÿ—ÿ¹ÿÛÿýÿ?a€Ÿ¿ßû4Pg~—±Éàú---------------------------D(ô¨Léÿ„ÿ#ÿËþ‚þOþ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ?þOþnþ›þÈþõþ!ÿLÿpÿ“ÿ·ÿÚÿûÿ=_~�¼Üø1Md{’«ÃÛò IIIIIIIIIIIIIIIIIIIIIIIIIfY;¼^öÿ�ÿ.ÿÕþ‹þUþ:þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ>þMþkþ˜þÅþòþÿKÿoÿ“ÿ¶ÿÚÿûÿ=^}�¼Û÷1Md{‘¨À×ïfffffffffffffffffffffff„|hEÈjÿÿ‘ÿ,ÿÔþŒþVþ;þ9þ9þ9þ9þ9þ9þ9þ9þ9þ`þaþ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ=þLþjþ”þ»þèþÿBÿdÿˆÿ«ÿÏÿðÿ2St“²Ñð )Fby�¦ÃÚò ¥££………………………………………………¡˜‡lEËp’ÿ&ÿËþ…þTþ<þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þšþ›þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ;þ?þMþjþ“þ¹þáþ ÿ:ÿ\ÿÿ¢ÿÆÿçÿ )Kk‹ªÉé$A]y�§Ãà÷ÈÄÃÄÅÆÆ¨¨¨¨¨¨¨¨¨¨ÆÂ¼°Ÿ†e;Áo —ÿ&ÿÅþ}þQþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þDþRþmþ•þ¼þãþ ÿ6ÿYÿ{ÿ�ÿÁÿâÿ%Ff†¦Æå#?\x•¬ÈäéæãàÝßáãåååååáÝØÔó£’i@î›Góÿ ÿMÿùþ¦þSþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþJþNþ[þuþ›þÂþéþÿ7ÿYÿ{ÿžÿÀÿáÿ$Ee…¦Æå#B_{—´Ñí &ýåãàÝÌÎÐÒ¿¿¿¿¤ ›—vfUE!øÏ¦~*×ÿƒÿ^ÿ ÿ¸þeþ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þaþmþ…þ©þÆþíþÿ;ÿ[ÿ}ÿŸÿÁÿãÿ%Fhˆ¨Éë )IrŽ«Çð )EþæãàпÁñžžžƒgc_= û׳‹a9¾ÿkÿEÿ!ÿÍþzþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþwþƒþšþ¼þØþôþÿBÿbÿ‚ÿ¤ÿÇÿèÿ *Km�¯Ïò4S|¥Âß0Mi/ÿèåÔijµ¢�~~bF+'åij�kGöÿÎÿ¦ÿSÿ.ÿ ÿäþ�þŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþ�þšþ¯þÏþëþÿ$ÿJÿjÿŠÿªÿÍÿîÿ0Rs•¶Öù@^ˆ±Ú÷ HqŽE-þæÖÅ´¤’lZ>#ì˪‰hD üÿØÿ°ÿˆÿ`ÿ8ÿÿîþÉþ¤þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ£þ®þÂþßþûþÿ4ÿPÿpÿ�ÿ°ÿÐÿñÿ4Uv˜ºÛþ!Dg�ºã 5^†¯V8 ðÕÄ´¤ˆvcQ6þã̪ŠhN*âÿ¾ÿ–ÿnÿFÿ"ÿýþØþ³þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ¯þ²þ½þÏþêþþþÿ6ÿRÿpÿ�ÿ°ÿÐÿñÿ4Ux™»Ü&IlžÈñLt�Æ^@# 󨼬›€dR@$ îÒº£‚aF,äÿÀÿœÿtÿLÿ(ÿÿßþºþ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¶þ¹þÃþÓþîþÿÿ1ÿMÿjÿˆÿ¨ÿÈÿéÿ ,Mp“´Öü"Fh›Î÷ R„¬ÕbE' òÖºŸŽsX=*ôؽ¦ŽvV; âÿ¾ÿšÿuÿMÿ*ÿÿâþ½þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ¹þ»þÅþÕþíþÿÿ'ÿDÿaÿ~ÿœÿ¼ÿÝÿþÿ Ad‡ªÌò>a”Æù"T†·àD& ëͱ–{_D) ò×» …mV?' òÿ×ÿ½ÿ™ÿuÿPÿ,ÿÿåþÁþ�þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ›þ¤þ³þÉþÜþðþÿÿ5ÿRÿoÿ�ÿ®ÿÏÿñÿ5X{žÄë7iœÏ3e–Èë /RE& ëͲ—{`E*ó×¼¡†mU>& ðÿÖÿ¼ÿšÿvÿRÿ.ÿ ÿçþÃþŸþ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þœþ¦þ´þÊþÞþñþÿÿ4ÿRÿoÿ�ÿ¬ÿÍÿîÿ0Sv™Àæ 3hšÍÿ3e–Èì2TE' ëͳ—|aF+õÙ½¡†mU=% ïÿÕÿºÿ™ÿwÿSÿ/ÿ ÿéþÅþ¡þ�þœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþžþ§þµþËþßþóþÿÿ6ÿRÿoÿ�ÿ«ÿÊÿëÿ -Mq“»â/c™Ëý1e—Éí3VE' ëͲ—|`E+õÙ½¡…mT;$ íÿÒÿ·ÿ–ÿuÿTÿ/ÿ ÿéþÇþ£þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þŸþ¨þµþÌþßþóþÿÿ6ÿRÿoÿŒÿ«ÿÉÿçÿ )Jj�µÜ)^“Èû/b–Èì5WE' ê̱–{`E+õÙ½¡…lS;"ëÿÐÿµÿ”ÿrÿQÿ0ÿ ÿêþÇþ¤þžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþŸþ¨þ¶þÌþßþóþÿÿ6ÿSÿoÿ‹ÿ©ÿÈÿçÿ%Fg‡®Õý$YŽÃø,_“Çë4XC$èɰ•{_G,÷Û¿£‡kS:!éÿÍÿ²ÿ”ÿsÿRÿ1ÿÿëþÈþ¥þŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþ þ©þ·þÎþéþýþÿ$ÿ@ÿ]ÿyÿ•ÿ­ÿËÿêÿ "BcƒªÑø V‹Àõ*^’Åë3XA"åÇ®•z_G.ùÜÀ¤ˆmR9!æÿËÿ¯ÿ‘ÿsÿRÿ1ÿÿìþÉþ§þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ¡þ©þ¹þÑþìþÿÿ.ÿJÿfÿƒÿŸÿ·ÿÏÿíÿ %>_¦ÍôRˆ½ò']�Äé3W>âĪ’x^E,ùÝÁ¤ˆnR8äÿÇÿ¬ÿŽÿpÿRÿ0ÿÿìþÊþ§þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ¡þ©þ¹þÒþíþÿ$ÿ7ÿSÿpÿŒÿ¨ÿÀÿØÿðÿ(AZ{¢ÈïLƒ¹î#XŽÂç 2V;ýßÀ§Žu\C+úÞÁ¥‰nS8âÿÅÿ¨ÿŠÿlÿNÿ0ÿÿëþÉþ§þ þŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþ þ¨þ¹þÓþîþ ÿ%ÿ@ÿ\ÿyÿ•ÿ±ÿÉÿáÿùÿ*C]v�ÃêG}´êUŠ¿å /U=ÿ᪑x_G.þáĨŒpU:ãÿÆÿ©ÿŒÿnÿPÿ2ÿÿìþÊþ§þ þŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþŸþ þ¨þ¹þÓþôþÿ*ÿEÿbÿ~ÿšÿ¶ÿËÿãÿûÿ(B[tšÀçDz±çR‡¼â,R> âë’y`I1ãÆªŽrV: ãÿÆÿ©ÿŒÿnÿPÿ2ÿÿëþÉþ¦þŸþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþžþŸþ¦þ¸þÒþóþÿ.ÿJÿfÿ‚ÿŸÿ»ÿÐÿäÿüÿ*?Xr—¼ã @v­ãNƒ¸Þ(N@!ãĬ”{bJ3æÉ¬�tX; äÿÆÿ©ÿŒÿnÿQÿ3ÿÿìþÈþ¦þžþ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ¥þ¶þÒþòþÿ2ÿNÿjÿ‡ÿ£ÿÀÿÔÿèÿýÿ*@Vo”ºß<r©ßJµÚÿ$JA"äÅ­”|dL4è̯’vZ=!åÿÇÿ©ÿŒÿnÿQÿ4ÿÿìþÉþ¥þœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþœþ£þ´þÑþñþÿ2ÿRÿnÿ‹ÿ¨ÿÄÿØÿíÿ,AVl’·Ü8n¥ÛF|±Öü!FJ) ëÌ´œ„kT<$ ïÒ¶™|`D' ëÿÍÿ¯ÿŽÿqÿTÿ7ÿÿìþÈþ¤þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ›þ¢þ²þÎþðþÿ0ÿPÿnÿŠÿ§ÿÃÿÙÿíÿ,BWm‘¶Ü1hžÔ8n¤Éî9R2òÔ»£‹r[D,÷Ù¼ ƒfJ.òÿÔÿ¶ÿ•ÿtÿWÿ:ÿÿëþÇþ¤þšþ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þ™þšþ þ°þÌþíþÿ/ÿOÿlÿŠÿ¦ÿÂÿØÿîÿ,BXn’¶Ü1a—Íü+`–¼á,Z:úÛª’zbK3þàæŠmP4øÿÚÿ¼ÿ›ÿzÿZÿ<ÿÿîþÆþ£þ™þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þžþ®þÉþêþ ÿ-ÿNÿkÿˆÿ¥ÿÂÿ×ÿíÿ-CYn“·Û0`�Æõ$Sˆ®ÔùbB"áɱ˜€iQ:"çʬ�sV9ýÿßÿÁÿ ÿÿ_ÿ>ÿÿïþÈþ¡þ—þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þ–þœþ«þÅþçþÿ)ÿKÿhÿ…ÿ£ÿÀÿÖÿëÿ,BXn’·Ûÿ/_޾íKzŸÅëmK+ êÓ»¢Šs[D,ñÓµ˜{_B$èÿÊÿ¤ÿƒÿcÿBÿÿïþÈþ¡þ–þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þšþ©þÂþåþÿ(ÿJÿhÿ…ÿ£ÿÀÿ×ÿíÿ/E[q“·Û%U…µÙ7fŒ²×ýxU3òÛÄ«“|eM6ùܾ ƒfJ+ðÿÒÿ¬ÿ†ÿfÿEÿÿîþÆþŸþ”þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ˜þ¦þ¾þâþÿ&ÿHÿfÿ„ÿ¢ÿ¿ÿÖÿíÿ/F\r•·Û%KzªÏô"Rw�Ãè‚_=ûãÌ´œ…mV?!äÇ©‹nQ3÷ÿÙÿ´ÿŽÿiÿHÿÿñþÅþ�þ’þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ‘þ•þ£þ»þÞþÿ$ÿEÿdÿ‚ÿ¡ÿ¾ÿÕÿìÿ0G^t—¹Ûÿ%JpŸÄé=cˆ®ÓŒjH%ìÔ¼¥Žv_H* íϲ”vY;ÿÿáÿ¼ÿ–ÿpÿKÿÿôþÈþœþ�þŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþ“þ þ·þÚþýþ ÿCÿbÿ€ÿžÿ½ÿÔÿëÿ0H_v˜ºÝÿ$Jp•ºß(Nt™¿—tR/ õÝÅ®–gP1ôÖ¸š}_A#çÿ¿ÿ™ÿtÿNÿÿòþÆþšþŽþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŽþ�þŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþ�þ�þ´þ×þúþÿ@ÿ_ÿ~ÿœÿ»ÿÓÿêÿ/G^u–¸ÚýChŽ®Ó÷Ag�³¢~\9þæÎ·Ÿ†oX8ûܾ ƒfG) íÿÅÿœÿwÿRÿ!ÿðþÄþ˜þŒþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþ£þ¤þŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŽþšþ±þÔþøþÿ>ÿ\ÿ|ÿšÿ¸ÿÐÿèÿÿÿ.F]t•¶Øú;a†¦Çì6[�¦¬‰fC! ð×À¨�w`A!ãŧ‰lM/óÿËÿ£ÿzÿUÿ$ÿóþÃþ—þŠþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþ´þ´þˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþ‹þ—þ­þÑþôþÿ;ÿZÿyÿ˜ÿ¶ÿÎÿæÿýÿ,D\s”µÕø9YŸ¿à*Ouš¸•rO,ûãʲ™�iJ* ëͯ‘sU7úÿÒÿªÿ�ÿYÿ(ÿ÷þÇþ–þ‰þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þŠþ–þ«þÏþòþÿ9ÿXÿwÿ–ÿµÿÍÿåÿüÿ,C[s”µÕö7Wx™¹ÙúEj�Ä¡~[8éѳš‚jJ* ëв”v[=Öÿ®ÿ†ÿ^ÿ'ÿöþÆþ•þ‡þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þˆþ“þ¨þÇþëþÿ2ÿPÿnÿŽÿ¬ÿÈÿàÿøÿ+C[r“´Õö6Vv–¶×ø@eŠÐ­ŠgD& ð×¹›ƒkK* ëе—y^C%Ýÿ³ÿŠÿbÿ+ÿõþÄþ“þ…þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ‚þ…þ�þ¤þÄþãþÿ+ÿHÿfÿ…ÿ¤ÿÀÿÛÿóÿ 'BZr“³Ôõ4Uu•´Õõ;a†Ü¹–sP2÷ÞÀ¢„lL+ ëе›}bF+ ãÿ¹ÿ�ÿfÿ0ÿúþÃþ’þ„þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þ€þƒþŽþ þÀþàþÿ#ÿAÿ_ÿ|ÿ›ÿ·ÿÓÿïÿ">Zr’³Ôô4St“²Òò9\‚鯣€]?"æÈªŒnN- ìѶœ�fJ/êÿÀÿ–ÿlÿ6ÿÿþÈþ’þƒþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ‚þŒþžþ¾þÞþýþÿ;ÿXÿvÿ”ÿ°ÿÌÿçÿ:Vr“´Ôõ4Ts’²Òñ8[~ñϬ‰fB$éĦˆjI)çÑ·œ�kO4îÿÄÿšÿpÿ5ÿþþÇþ‘þ�þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þ}þþ‰þ›þµþÕþõþÿ0ÿNÿlÿŠÿ«ÿÆÿâÿþÿ;Ws”µÖ÷5Tt“²Ññ5Y|ûÙ·“qL' ìÇ£…gF%äθ�ƒlU:ôÿÉÿŸÿuÿ9ÿþþÇþ‘þ€þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ~þˆþ˜þ³þÍþíþ ÿ)ÿEÿcÿ�ÿ¡ÿÂÿÞÿùÿ<Xt–·Øù6Vu”³Óò4W{âÀž{V2 ï˧‚dC"á˵Ÿ„mV?$ùÿÏÿ¤ÿzÿ?ÿÿÇþ‘þþ{þzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþ}þ†þ•þ°þËþæþÿ!ÿ=ÿZÿwÿ˜ÿ¹ÿÙÿõÿ8Zu—¹Ûû9Xw–µÓó5Vyíʨ†b=ôЫ†bA ÿÞȲœ†oXB+Öÿ«ÿ€ÿDÿ ÿÎþ’þþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþ|þ…þ”þ¯þÊþäþÿþÿ7ÿSÿoÿ�ÿ°ÿÑÿòÿ5Vxš¼Ýÿ<[z™·Öõ7Xyî̪ˆa=ôÍ©„`?ýÜDZ›…oXB+Öÿ¬ÿ�ÿDÿ ÿÍþ’þ~þyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþ{þ„þ’þ¬þÇþâþüþÿ4ÿPÿlÿŽÿ®ÿÏÿðÿ4Vxš¼Ýÿ=\zš¸×ö8XzñϬŠd=õΧƒ_=ûÛÆ±›…oYC,Øÿ­ÿƒÿFÿ ÿÎþ“þ~þyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþ{þƒþ‘þ«þÆþàþûþÿ1ÿMÿiÿ‹ÿ­ÿÎÿïÿ5Wxš½Þ?]|›ºÙ÷9Z{óѯŒf@õϨ‚]<úÙİ›…oZD-Ùÿ¯ÿ„ÿHÿ ÿÏþ“þ~þyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþzþƒþ‘þ«þÅþßþúþÿ0ÿJÿfÿ‰ÿ«ÿÍÿîÿ4Wx›½ß @_~œ¼Úù;[|öÓ±�iCöÏ©‚\;ùØÃ¯š…oYD.Úÿ°ÿ†ÿIÿ ÿÑþ”þ~þyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþzþƒþ�þªþÄþÞþøþÿ.ÿIÿdÿ†ÿ©ÿËÿíÿ3Vy›½à!A`ž½Üû=]~øÖ´’jD÷Ï©‚\:ø×Á¬˜ƒlVA+Øÿ®ÿ„ÿJÿ ÿÑþ”þ~þyþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþzþ‚þ�þªþÄþÞþøþÿ,ÿGÿbÿƒÿ¦ÿÈÿêÿ 0Sv˜»Ýÿ$Cb�¥Äã#Dd… üÙ·•mEùÑ©‚[:÷ÖÀª•�jS>(ÿÿ×ÿ­ÿƒÿHÿÿÑþ•þ~þyþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþzþ‚þ‘þ«þÅþßþùþÿ)ÿDÿ_ÿ�ÿ¢ÿÅÿçÿ -Os•¸Úý!Edƒ§Ëê *Kl�$ݹ—pH úÒª‚[9öÕ¿©“~hQ;%üÿÔÿ¬ÿ‚ÿGÿ ÿÑþ•þþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþyþ‚þ’þ«þÅþßþùþÿ*ÿBÿ]ÿÿ ÿÂÿäÿ)Lo’µØúBf†ªÍñ1Rs”(὚rK#ûÓ«ƒ[9öÔ¾¨’|eO9"ùÿÑÿ©ÿ€ÿEÿ ÿÐþ•þþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþxþyþ‚þ’þ¬þÅþßþùþÿ*ÿCÿ[ÿ}ÿžÿ¿ÿáÿ'Il�±Ô÷?dˆ¬Ïó8Yz›+â¿›rJ#ûÑ©�Y6óѹ£�w`I3öÿÍÿ¥ÿ|ÿDÿ ÿÏþ”þ~þwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþxþ�þ‘þ­þÇþáþúþÿ)ÿBÿZÿ{ÿ�ÿ¾ÿàÿ$GjޱÓö Dh�¶Ùý!Bc„¥. äÁžtK#üÒ¨€X5ðη Št\E.ñÿÊÿ¢ÿzÿBÿ ÿÏþ”þ~þwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþxþ€þ’þ®þÉþãþüþÿ*ÿBÿZÿ|ÿœÿ¾ÿàÿ#Fi�°Óö Jn’»ä,Mn�°1 çŸvL#ûÒ¨~V3íË´�†oX@)ìÿÅÿžÿvÿ>ÿÿÎþ“þ}þvþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþvþþ’þ­þÈþäþþþÿ+ÿAÿZÿ{ÿœÿ½ÿÞÿ"Dg‹®ÒõHr–Àé6Wxš»4êÅ wM$ûѨ~T1ëȱš‚kS<$ æÿÀÿ™ÿrÿ:ÿÿÊþ’þ|þuþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþtþuþ~þ‘þ¬þÈþäþÿþÿ,ÿBÿYÿzÿ›ÿ¼ÿÝÿÿÿ!Ce‰¬ÐôHq›Äî@a‚¤Å3 èÞsJ!÷Ì¢yO+媓{dL5áÿ»ÿ”ÿmÿ8ÿÿÈþ�þzþsþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþsþ|þ�þ²þÍþéþÿÿ4ÿKÿaÿ‚ÿ£ÿÄÿåÿ)Km‘´Øü&Pz£Í÷ IkŒ­Ï1 æÁœqFôÈ�sJ&ß¼¤Œt]E.þÿÚÿ¶ÿ�ÿhÿ3ÿþþÆþŽþxþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþqþyþŽþ°þÒþîþ ÿ#ÿ<ÿSÿjÿŠÿ«ÿÌÿíÿ0Rt˜¼à.X‚¬Ö)Rt–·Ø/ 忚oEñÅšnD!ýÙ¶ž…mV>'÷ÿÓÿ®ÿŠÿcÿ.ÿùþÄþŒþvþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþoþwþŒþ®þÑþóþÿ(ÿBÿ[ÿrÿ“ÿ³ÿÔÿõÿ8Y{ Ãç 6`‹µÞ2[}ŸÁâ-â½—lAìÁ•i>÷Ó¯—fN6ïÿËÿ¦ÿ�ÿ]ÿ(ÿóþ¾þ‰þsþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþtþ‰þ«þÎþñþÿ-ÿFÿ_ÿyÿšÿ»ÿÛÿüÿ?a‚¦Êî=g‘¼æ9c…§Éë/ ä¾™k@ë¼�e9ðÍ©�w_F.þÿæÿÆÿ¢ÿ}ÿXÿ)ÿôþ¿þŠþqþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþqþŠþ·þÚþüþÿAÿZÿtÿŽÿ¬ÿÌÿíÿ,Np‘´Øü HrœÇîAk�±Óõ0 åÀšl>躊_4êÆ¢ˆnV>% õÿÝÿ½ÿœÿxÿSÿ$ÿôþÀþŠþnþfþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþfþnþ‰þ·þäþÿ*ÿLÿnÿˆÿ¡ÿ¿ÿÝÿþÿ=\~ŸÂæ .U|¦ÑøHr–ºÜþ/ ä¾™k=䵆W,â½™fL3éÿÒÿ±ÿ�ÿpÿLÿÿíþ¾þ‰þkþaþ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þaþkþ†þ´þâþÿ2ÿTÿwÿ™ÿ²ÿÐÿîÿ -LkŠ«Îò9`‡®Ù&Mw›Àä+໕g9 Ý®P!üײ�sY@& ôÿÜÿÃÿ£ÿ‚ÿaÿAÿÿâþ³þ„þgþZþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþZþgþ�þ¯þÜþ ÿ8ÿZÿ}ÿŸÿÁÿßÿýÿ9Xw•´×ûAh�·Þ+Ry�Áæ -á¼—e7 Ûª{LöÑ­‡lS9íÿÔÿ»ÿ�ÿ|ÿ\ÿ;ÿÿéþ¹þŠþdþRþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþSþcþ…þºþèþÿCÿjÿ�ÿ¯ÿÑÿíÿ (Gc� ¿á(Ko—¾å 0W}£Çì/ ä¾™h7 Û©xHóͨƒhM3æÿÎÿµÿ–ÿxÿWÿ6ÿÿðþÀþ‘þeþMþDþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþDþLþbþŠþ¿þôþ"ÿOÿvÿžÿÀÿâÿþÿ7Uq�¬Êí3VzžÆí5\‚¨Îó1 çÁ›k9 Û©wEðÊ£cI-úÿáÿÇÿ¯ÿ�ÿqÿRÿ2ÿÿëþÇþ˜þhþHþ9þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ9þFþbþ�þÄþùþ.ÿ\ÿƒÿªÿÑÿóÿ*Ec›·Öù>a…©Îõ=aˆ®Ôú6ëÆ o> ܪxGïÈ¢|aF+öÿÝÿÃÿªÿ‹ÿlÿNÿ/ÿ ÿèþÄþ¡þoþHþ1þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ)þ1þCþeþ—þÌþÿ5ÿjÿ‘ÿ¸ÿßÿ"=Xt�¬Èä)Ln’¶Ûÿ#Gk�µÛ'á²�PフZ4èÁ¤‰nS7ëÿÌÿ­ÿŽÿpÿRÿ/ÿ ÿèþ¸þŽþsþhþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþhþrþ‡þ­þâþÿJÿ~ÿ³ÿÚÿ(Oj…¡¼×ó+Np’µÚþ"Fj޳ÖÞ°€Pï¿�\5éÃ¥ˆlR6èÿÉÿªÿ‹ÿlÿOÿ2ÿÿëþ¼þ�þpþcþaþ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þaþcþoþ‡þ±þêþÿOÿ„ÿ¸ÿßÿ,Tn‰¥ÀÛö.Qs•¸Ü%Jn’¶ÚÞ¯€Q ðÀ‘_9ìÆ¨‹mR7æÿÈÿ©ÿŠÿkÿNÿ1ÿÿðþÀþ‘þpþ`þ]þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ]þ`þnþ‹þ¸þôþ&ÿXÿ‹ÿÀÿæÿ 3Zu�«Çâý4Vxš½â*Os—¼àÞ¯€Q"òÓc=ðÊ­�rT9æÿÇÿ©ÿŠÿkÿNÿ1ÿÿöþÐþ©þƒþ]þYþXþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþWþYþ^þ†þ®þÖþþþ1ÿcÿ•ÿÈÿïÿ;b}˜³Îé:\¡Ãç 1Uy�ÂæÎ¨yJôÅ•e?ò̧‰lN,õÿÚÿ»ÿ�ÿ~ÿ_ÿKÿ.ÿÿóþÍþ§þ�þ[þUþUþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþTþTþZþ“þ»þãþ ÿ9ÿkÿžÿÑÿõÿBi�œ·Òê ;\¡Ãé 2W| ÅéÀ™sDîȘhBõϪ„gJ'êÿÎÿ°ÿ’ÿsÿTÿ@ÿ,ÿÿòþÌþ¦þþYþQþRþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþNþNþXþ�þÊþñþÿGÿuÿ¨ÿÚÿÿÿ#Jp‰¡¼×ï"<^€¢Äê4Y~¤Èì´ŽgAëÄžnH"ûÕ°ŠeH&áÿÆÿ¨ÿ‰ÿlÿMÿ8ÿ$ÿÿóþÍþ§þ�þZþOþPþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþ>þGþXþ‘þÊþÿ+ÿXÿ†ÿ´ÿæÿ 0Tz“¬Äß÷&Ac„¦Èî:^„ªÏó¨‚\5è›tN(Û¶�kF$ßÿ½ÿŸÿ�ÿcÿEÿ1ÿÿÿôþÎþ¨þ‚þ\þLþLþ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ5þ1þ>þXþ‘þÊþÿ<ÿjÿ˜ÿÅÿóÿ<`…ž¶Îçÿ.Fh‰ªÌò>dНÔúœ}W0 ëÄ�vP*Þ³ŽhCúÿ×ÿµÿ˜ÿzÿ\ÿ>ÿ-ÿÿÿðþÏþ©þƒþ]þIþEþ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ*þ*þ7þRþ–þÏþÿAÿqÿŸÿÍÿúÿChŒ¤¼Õí2JjŒ®ÏöBh޳Ùþ‘qR,æÆ yS-à¶Še@òÿÏÿ­ÿ�ÿtÿVÿ8ÿ&ÿÿÿìþËþªþ„þ^þGþ=þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ)þ%þ%þ0þLþ�þÓþ ÿFÿvÿ¦ÿÔÿ&Ko”«ÂÛô 6Nn�°ÒøEk‘¸Ý…fF'á¢|V0 ã¸�b=îÿÇÿ¥ÿˆÿlÿOÿ1ÿÿÿüþèþÇþ¦þ…þ_þDþ5þ+þ6þ6þ6þ@þ=þ;þ9þ7þ6þ6þ6þ6þ6þ6þ6þ6þ!þ!þ!þ*þEþ‰þÍþÿJÿ{ÿ«ÿÜÿ .Rv›²Êáú%:Rr“³Õü"Hn•»áz[;ýݾŸY3 缑f;íÿÅÿžÿ�ÿeÿHÿ+ÿÿÿ÷þåþÄþ£þ‚þaþCþ0þ#þ4þ4þ4þMþHþDþ@þ=þ:þ8þ6þ5þ4þ4þ4þþþþþ%þ@þ„þÈþ ÿPÿ�ÿ±ÿáÿ6[£»Òé,AWw˜¹Ùÿ&Ms™Àæ xX9úÚº›|W1 従h=ñÿÊÿ£ÿ†ÿjÿMÿ0ÿÿ ÿùþçþÇþ¦þ…þdþBþ-þþ2þ2þ5þ]þWþRþMþHþDþ@þ<þ9þ7þ2þ þþþþþ þ8þyþ½þÿEÿ|ÿ¬ÿÝÿ3X| ¼Óê0F\|œ½Ý)OvšÀç vV6÷×¶–wR-Ẕh>õÿÎÿ¦ÿŠÿnÿQÿ4ÿ ÿ ÿúþèþÈþ¨þ†þfþAþ)þþ!þ/þqþnþhþbþ\þVþQþLþGþBþ/þ0þþþþþþþ/þpþ°þôþ8ÿpÿ§ÿ×ÿ.Txœ¸Óê4J_ŸÀà*QxœÀç rR2óÒ±‘qM(ݶ�h=õÿÑÿ©ÿ�ÿpÿTÿ7ÿ#ÿÿúþéþÈþ¨þ‡þfþ@þ%þþþ,þ…þþyþrþlþfþ`þZþUþOþ7þ"þ$þ(þ,þ'þþþ%þfþ§þçþ+ÿcÿšÿÑÿ'Ms—³Îé3La‚¢Âã-Rx�Áæ kK+ ë˪‰iDûÖ¯ˆa:ñÿÍÿ©ÿ�ÿpÿSÿ7ÿ#ÿÿúþæþÅþ¥þ…þdþ;þþþ þYþ’þŒþ†þ€þzþtþnþhþaþ[þ;þ:þ?þEþJþMþþ þþYþ™þÚþÿRÿ‰ÿÁÿøÿCi�«Æáý/Ha�¡Ââ,Qvš¿ãgC"⾞}]:ñ̯ˆa:úÿÖÿ±ÿ”ÿxÿ[ÿ?ÿ#ÿÿúþæþÃþ£þƒþbþ8þþþþŒþ›þ—þ’þ�þ‡þ�þ{þuþoþkþUþYþ]þbþfþiþ=þ þ þCþ„þÅþÿ@ÿwÿ®ÿåÿ 2X}¡½Ùô/Ha‚¢Ãã*Ot–ºßc?ûÛ·’rR/ çÂ¥ˆb:ßÿ»ÿžÿ€ÿdÿHÿ+ÿÿûþæþÄþ¢þ‚þaþ6þþþþ§þ£þŸþ›þ—þ’þŽþˆþƒþ�þjþjþlþnþpþqþrþIþþþ9þoþ°þðþ+ÿfÿ�ÿÔÿûÿ!Gm‘µÐì0Hbƒ¤Ää(Ns•¶Ûd@øØ´�lK(㾡„g@% îÿÊÿ¬ÿ�ÿrÿUÿ9ÿÿÿìþÊþ¨þ†þeþ9þþþýý´þ°þ¬þ¨þ¤þ þ›þ—þ“þ}þpþoþnþlþjþhþeþ@þ þÿý4þjþ þáþÿVÿ�ÿÈÿîÿ<b†ªÎé ,NgˆªËë /Qv˜ºÜrN*⾚uQ. 鯩ŒoR6äÿÇÿªÿŒÿoÿSÿ6ÿÿþþÜþºþ—þuþIþ&þþhýUý¿ý@þÀþ¼þ¸þ´þ°þ¬þˆþjþfþbþ^þYþTþOþ/þþþ<þrþ§þÝþÿRÿŒÿÇÿîÿ;b†ªÎò6Wyš¼Ýþ Bd†¨ÊìἘtS0 ëÔ·š}gL0øÿÛÿ½ÿ ÿ�ÿeÿIÿ,ÿ ÿæþÄþ¢þyþWþ@þ›ý«ýžý’ý†ý»ýjþ¹þéþÒþ•þrþmþhþbþ]þXþSþ:þ,þ/þ@þjþ«þùþ9ÿsÿ­ÿèÿ6]„­Ñõ@aƒ¥Çè +Km�±Ñó7éžyY7òÛŨ‹u_D) ïÿÒÿµÿ•ÿvÿZÿ=ÿÿöþÔþ±þŒþlþWþÝýãý×ýÊý¾ý²ý«ýÍýÍýþ^þYþTþPþLþHþEþBþ:þ:þ;þIþoþ¬þùþ8ÿwÿ±ÿìÿ;bˆ±Ûÿ#Iq’´Ö÷:Z{�¿ßÿ!C 濘tS2îØÂ«ŽxbM1øÿÛÿ¾ÿžÿÿ`ÿDÿ ÿüþØþ¶þ“þuþfþ%þþþøýëýßýÓýÐýÇý˜ý þAþ?þ>þ=þ<þ<þ<þ<þ<þ=þHþiþ£þîþ,ÿlÿªÿåÿ 4\‚«Ôý!Ho–¸Úü>_ŸÁá!C[5éÃ�vO)çÆ¥�xaK5 ôÿ×ÿ»ÿžÿ�ÿbÿCÿ#ÿÿàþ½þ™þuþPþ8þ0þ#þøýìýßýÓýÆýºý­ý‰ý�ýùýùýùýùýùýùýùýùýùýùýùýþþTþœþÛþÿYÿ˜ÿ¿ÿçÿ6_ˆ±Ú(Ov˜¹Ûý=^~ž¾Þþ=\{S-ổnH!ß¾�…nXA*þÿéÿÌÿ¯ÿ“ÿvÿYÿ9ÿÿûþØþ´þ�þmþOþ;þMþLþ"þþ þýýñýäýØý¬ýãýøýøýøýøýøýøýøýøýøýøýøýþýþHþŽþÑþÿOÿŽÿ·ÿßÿ-X�ªÓû#Jq’´Ö÷6Vw•µÕõ3RqN(ܶ�jCûÚ¹˜€gQ:# öÿàÿÄÿ§ÿŠÿmÿPÿ4ÿÿõþÒþ®þ‹þgþNþ@þ:þGþ.þ2þ1þ)þþþþ×ýûýûýûýûýûýûýûýûýûýûýûýûýþýþ@þ‚þÆþ ÿIÿˆÿ°ÿÙÿ(R}¦Ïø Gn�²Óõ2Rr�®Îî,LkN(ܶ�jCûÚ¹˜€hO9! òÿÜÿÀÿ£ÿ‡ÿjÿMÿ0ÿÿôþÑþ®þŠþfþQþ%þþ"þþþ(þ3þ9þ:þþþþþþþþþþþþþþþþþ=þ|þÀþÿGÿ†ÿ®ÿ×ÿ(R|§Ðø!Jp’´Öø4Rr‘¯Íí +JjR,ດmG!Þ½œ„lS;$ ôÿÝÿÀÿ¤ÿˆÿkÿNÿ1ÿÿ÷þÔþ°þ�þjþYþèýõýþþùýþþ!þ.þþþþþ þ þ þ þ þ þ þ þ þ þþþ>þzþ¾þÿDÿˆÿ±ÿÚÿ+V€ªÕþ&Nw™ºÜþ:Yw•´Òð.MlZ3 çÁštM'ã¡„kS;ðÿØÿ½ÿ ÿƒÿgÿGÿ*ÿ ÿðþÊþ¥þ†þoþþÈýÖýâýêýÚýçýôýþþúýþþþþþþþþþþþþþþ$þBþzþ¾þÿEÿˆÿ²ÿÛÿ-Y„®Ù,U~ŸÁã>\z”³Ñï.Lld=ðÊ£|U/ êɨŠmU<!íÿÖÿºÿžÿ‚ÿeÿEÿ$ÿÿêþÅþ£þ‰þ>þ¿ý«ý¸ýÅýÏý¼ýÊý×ýäýÓýÛý*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ0þIþ}þÀþÿGÿ‹ÿµÿßÿ0]Š´Þ 5^†¨Êë (Baš´Òð/NmoH!úÔ­…^8óѯ’uW?#ìÿÕÿ¹ÿ�ÿ�ÿdÿDÿ#ÿÿæþÂþ¤þwþéýeýrýƒý—ý±ý ý­ýºýÇý³ýãý:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ>þRþ�þÄþÿJÿŽÿ¸ÿâÿ 5bŽ»å<g�±Óõ1Lg…ŸºÕó1Qoß¿ž}]6èÁšsK$ß½š}_B% íÿÒÿ¶ÿšÿ~ÿbÿFÿ&ÿÿåþÅþ£þ‹þ þ‚ý&ý4ýAýOý]ýKý^ýwýsýxýÔý.þ.þ.þ.þ.þ.þ.þ-þ-þ-þ-þ-þ-þ-þ0þ>þgþªþíþ1ÿtÿžÿÉÿóÿIv£Ïú%Q|žÀá9Sn‰£½Ø÷6UæÆ¦…e=ïÈŸxQ)ãÁž~aC&ìÿÐÿµÿ›ÿÿcÿGÿ'ÿÿæþÆþ¦þSþÁý;ý ýý%ý2ý>ý=ý7ýFý5ýEýÔý?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ@þJþoþ«þïþ2ÿuÿ£ÿÍÿ÷ÿ"O{¨Õ,W‚¤Æç "<WrŠ¥¿Úù7Wì̬ŒlDôÎ¥|U. æÄ¡�aD&êÿÎÿ²ÿ™ÿ€ÿdÿHÿ'ÿÿæþÆþ©þ/þ–ýýõüýüýý!ý(ýýýý3ýÑýOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþVþuþ²þîþ2ÿuÿ£ÿÑÿûÿ&S€¬Ù1\ˆ©Ëì&?Zt�¦ÀÚú8Xðа�oG÷ШV/ çÄ¡�aA$çÿÈÿ­ÿ”ÿ{ÿbÿFÿ%ÿÿãþÃþ­þ.þ�ý ýýÿüþüÿüý ýúüçüòü=ýÚý\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ`þxþµþòþ/ÿrÿ ÿÎÿüÿ&T�®Ú2^Š«Íî)AZt�¥¾Øø6Uðа�pH øÐ§V- æÂž~^>ÿÿáÿÃÿ¤ÿ‹ÿrÿYÿ@ÿÿÿþÞþ½þ¯þFþ¢ýBý2ý$ýýý ýýÒüÉüÑüEýáýfþfþfþfþfþfþfþfþfþfþfþfþfþfþfþhþyþ¶þóþ/ÿlÿšÿÈÿöÿ$Q¬Ù1]‰«Ìí(@Yq‰¢»Óò1P㢂b;ëÛrI!ýÙµ‘rR2øÿÙÿ»ÿœÿzÿaÿHÿ/ÿ ÿåþÊþ¸þ¯þiþÂýˆýsý_ýLý<ý-ýýØüÎüÌü[ýîýkþkþkþkþmþpþuþzþ�þkþkþkþkþkþkþlþzþ¨þåþ!ÿ^ÿ”ÿÂÿðÿJw¤Ñü(T€¡Âä 9Qj…�µÎí +JÒ°�oO(Ù°‰a8ëÇ£€`B"çÿÌÿ®ÿ�ÿmÿKÿ2ÿÿóþÓþ½þ°þ¬þŒþëýÓý¼ý¥ý�ýyýeýPýýñüý•ýþmþqþuþ{þ‚þŠþ“þœþ¦þˆþkþkþkþkþkþkþvþ¤þÒþÿKÿ�ÿ¶ÿåÿ>j˜ÅïFr’´Õö,E^x“«Äâ @»šxW7èÁ™rJ"ùÕ±ŒiJ+ ìÿÑÿ·ÿœÿ~ÿ\ÿ9ÿÿþþÚþ¿þ®þ¦þ¥þ¥þ0þþþíýÖý¿ý§ý‰ýAý'ýkýôýwþþ‡þ�þ˜þ¢þ«þ´þ½þÅþ²þ…þfþfþfþfþfþlþšþÈþöþ3ÿiÿžÿÔÿ.Z†´Þ2^ Áãþ4Lg‚œµÔò0ìÓº¡ˆgF$Ü´�f>ïÇ£~Z6øÿÙÿºÿ ÿ…ÿjÿPÿ.ÿ ÿéþÇþ§þ‘þ…þ‚þ‚þ‚þNþ=þ*þþþêýÓý°ýnýQý¼ý`þyþ‚þŒþ•þ�þ¥þ¬þ²þ·þºþ®þ{þGþEþEþEþEþGþuþ£þÑþÿþ5ÿjÿ ÿÖÿ.Z†°Ú/Pq’³Îé:ToŠ¨ÇæÚ¼£ŠqO- ëÅžwP*Ú³ŽjF!çÿÈÿ©ÿ�ÿsÿXÿ>ÿÿúþØþ¶þ—þ‡þ€þ€þ€þ€þuþlþ`þRþAþ/þþùý¾ý¼ýJþ–þžþ¦þ­þ³þ·þºþ¼þ¼þ»þ¸þ²þzþDþDþDþDþDþFþQþsþ¨þìþ)ÿ_ÿ•ÿÊÿõÿ!My¡Ëõ @a‚£ÂÝø1Lg‚Ÿ¾Üûΰ’z`>úÙ´Žg@ô̤€\7÷ÿÛÿ¼ÿ�ÿ‚ÿgÿLÿ2ÿÿïþÍþªþ�þ†þƒþƒþƒþƒþƒþ„þ�þ|þsþiþ]þAþ þ5þuþ®þ¾þÁþÂþÂþÁþ¾þ¹þ´þ­þ¥þ�þkþJþJþJþJþJþKþRþnþžþàþÿYÿ�ÿÅÿðÿGsšÂì7Xxš¸Öò +Je€�ºÙøÇªŒoV3îͧ‚]5éÜwS/ îÿÒÿ·ÿ—ÿ|ÿaÿFÿ+ÿ ÿéþÈþ¥þ’þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ|þOþWþƒþ¶þÌþÉþÄþ¿þ¸þ°þ§þžþ•þ‹þ‚þ]þVþVþVþVþVþVþ[þpþ›þÙþÿRÿ�ÿÅÿðÿGsšÂé4Tu–´Óñ +Jiƒ¡¾Üú¤‡iK. éǤY3èœvR- åÿÉÿ­ÿ‘ÿuÿZÿ?ÿ#ÿÿçþÆþ¤þƒþzþyþyþyþyþyþyþyþyþyþyþþ‹þþYþGþ[þˆþ¥þ�þ•þŒþ‚þyþpþgþ_þWþQþEþEþEþEþEþEþEþHþWþ}þµþòþ/ÿkÿ¨ÿÓÿÿÿ*U}¤Ëó4Uu“²Ñï-Kjˆ¥Ãàù,E �dF)ãÀžxS.â¼–pL(ßÿÇÿ«ÿ�ÿsÿNÿ2ÿÿüþÐþ®þ–þŠþ†þ†þ†þ†þ†þ†þ†þ†þ†þ†þ‰þ•þ¦þ˜þoþXþUþjþ‘þ‡þ~þuþmþfþ`þ[þWþUþUþUþUþUþUþUþUþUþVþaþ�þ¶þôþ1ÿmÿªÿ×ÿ-X~¥Íô4Uv•³Òð/NlЧÅâú,Fšz\> ýÚ·”oJ$ÿÙ´ŽhCûÿ×ÿ¾ÿ¦ÿŠÿnÿHÿ#ÿÿìþÄþ¨þ—þ‘þ�þ�þ�þ�þ�þ�þ�þ�þ�þ‘þ˜þ­þÁþ°þƒþgþaþaþoþrþlþgþdþbþaþaþaþaþaþaþaþaþaþaþaþaþbþiþƒþ´þòþ0ÿlÿ©ÿÖÿ-X~¤Ëò2Ss“²Ðï.Ml‰¦Äâù*D‘rS4óϬ‰d?ôΨƒ]8ðÿÌÿ´ÿ›ÿƒÿgÿBÿÿöþÛþ¸þ¤þšþ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ˜þ›þªþÇþÝþÇþ–þuþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþpþ…þ¯þíþ+ÿiÿ¦ÿÓÿÿÿ,W|¢Çï.NoŽ®Íì +Kj‡¤Áß÷&?âŨ‹nO0òΫˆd?ôÏ©„^8ðÿËÿ§ÿ�ÿvÿ^ÿFÿ ÿûþÖþ°þ˜þŠþ†þ…þ|þ…þ…þ…þ…þ…þ…þ…þ‡þ�þ§þÊþ²þšþ‚þjþ^þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ]þ_þnþ‘þÏþ ÿKÿ‰ÿ¶ÿâÿ;`†¬Ññ0Pp�¯Îî-Mjˆ¥ÂÚò !×½ŸƒfK+ í˧ƒ`9ïÉ¡|V0 èÿÄÿŸÿ}ÿeÿMÿ4ÿÿèþÃþ§þ–þ�þŽþPþfþ{þŠþŽþŽþŽþŽþŽþ“þ£þÂþêþÅþ­þ•þ}þkþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþiþtþ”þÌþ ÿHÿ†ÿ³ÿßÿ 9Y~¤Éç'Fg‡§Æç'Gfƒ ½Úò !̲˜{^C( êǤ�]6êÅ�uO)áÿ½ÿ™ÿwÿTÿ<ÿ#ÿþþØþ¹þ¥þšþ—þCþ?þNþbþxþ‹þ–þ—þ—þ™þ¤þ»þâþ ÿæþÁþ©þ‘þyþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþ|þ—þÏþÿFÿ„ÿ±ÿÞÿ 7Ww�Âàþ>_€Ÿ¿á"A`œ¹×ô #À¦ŒsV: æÂ |Y2 ä¿—oH"þÿÚÿ¶ÿ’ÿoÿMÿ*ÿÿëþËþ³þ¥þ þ þcþJþDþMþ^þtþ‰þ þ þ§þ·þÖþÿ,ÿÿáþ»þ£þˆþ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ…þšþÒþ ÿCÿ�ÿ®ÿÛÿ4Tt”ºØö4Uv˜·Ùú;Zy—µÒï $óÔµ–|bH.øÝŸ|Y6èÁšrJ#ûÿ×ÿ³ÿ�ÿkÿHÿ&ÿÿáþ¾þ£þ’þ‹þ»þáþ¡þeþ?þ/þ0þ<þ_þ‰þ�þ™þ¾þãþÿ-ÿÿâþ¼þ—þxþnþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþoþ}þ¶þîþ&ÿ_ÿŒÿ¹ÿæÿ3Ss“±Ïí ,No�²Óô5Tr‘®ËèûܽžjP5ëе“pM*Ú³Œc<ìÿÆÿ¢ÿ~ÿZÿBÿÿýþÚþ¬þ˜þ•þúþbÿFÿÿÇþˆþSþ7þ.þ‰þ‹þ“þ«þËþñþÿ;ÿÿñþËþ¥þ�þsþqþqþqþqþqþqþqþqþqþqþqþqþqþqþqþqþqþqþqþqþrþ{þ˜þÊþ ÿQÿ�ÿ¯ÿÛÿ "Bb‚Ÿ½Ûù>_€¥Æç *Ig†©ÇããÄ¥‡gR<"òݧ…c@ôË¥}U,Ýÿ·ÿ‘ÿmÿIÿ0ÿÿõþÓþ�þ£þÿmÿ›ÿ„ÿjÿ,ÿìþ­þnþtþ‰þŽþœþ»þÜþýþ"ÿGÿ#ÿþþØþ³þŠþwþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþtþzþ‘þ¾þüþBÿsÿ£ÿÐÿýÿ0Pp�ªÈæ -No”¸Ùû=[z�ÁÞûʬ�oP:$õßɳ˜wU3ç¿–oFõÿÍÿ§ÿ�ÿ[ÿ7ÿÿÿíþËþ³þÿyÿÖÿ¿ÿ¨ÿ‘ÿzÿPÿÿÑþˆþ‹þ•þ¨þËþíþ ÿ/ÿSÿ/ÿ ÿæþÁþ”þ}þvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþzþŒþ³þîþ3ÿdÿ”ÿÅÿñÿ %>^{˜µÓ÷=_ƒ§Ëí/On‘µÙõ²“uW8" ÷á˵ ŠhG%Ú±‰`7æÿ½ÿ—ÿqÿKÿ%ÿ ÿôþÛþÃþ ÿ„ÿìÿùÿâÿÌÿµÿžÿ‡ÿpÿæþˆþ�þžþ¸þÜþýþÿ?ÿ`ÿ;ÿÿóþÎþŸþƒþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþyþ{þˆþªþàþ$ÿUÿ…ÿµÿæÿÿÿ3Li†£Àã*Nr—»ß!Ab…©Íð €bC%øã͸¢ŒvV4ðÊ¡xP(×ÿ®ÿ–ÿpÿJÿ$ÿßþ¹þÖþ/ÿ‘ÿøÿ4ðÿÙÿÃÿ¬ÿtÿÞþŒþ˜þ­þÌþõþÿ(ÿIÿjÿLÿ'ÿÿÞþ¬þŒþ~þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ|þ}þ~þ‚þ€þ|þ}þ†þ£þÔþÿKÿ{ÿ¬ÿÜÿõÿ(A]z—´ØûBg‹¯Ôõ6W} ÄèŒlM.ùãÍ·¢�wa@ þܵ�f=ïÿÆÿ�ÿ…ÿmÿGÿ!ÿÇþêþ>ÿ�ÿkW@*üÿåÿÏÿGÿ³þ‘þ¢þ¾þâþ ÿÿ1ÿQÿsÿTÿ6ÿÿíþ¸þ“þ‚þ~þ~þ~þ~þ~þ~þ~þ~þ~þ~þ~þ~þ€þƒþˆþŽþ•þ�þ¦þƒþ~þ„þ›þÇþÿ;ÿpÿ ÿÑÿéÿ4PmЧÊí5Y}¢Æç *Kp–¹ÝvV6øâ˵ŸŠt_J)çÆŸxR)Úÿ³ÿŠÿrÿZÿAÿÿþþMÿ§ÿ sŽxaJ4®ÿÿ‰þ—þ¯þÐþøþ ÿ3ÿEÿXÿyÿ[ÿ<ÿÿúþÃþšþ„þ~þ~þ~þ~þ~þ~þ~þ~þ€þƒþˆþŽþ•þ�þ¦þ¯þ¹þÃþÌþµþ‹þ�þ“þ¹þôþ)ÿ^ÿ’ÿÃÿÛÿóÿ %A^z—ºÞ%In’¶Øú<b‡­Ð±�oN- îή˜�jT?*ÿÞ¾�|V/âÿ»ÿ“ÿlÿDÿ,ÿÿûþãþ+ÿ�ÿáÿH“|eO8! âÿLÿ¹þ[þoþ”þ¹þÝþÿÿ'ÿ:ÿLÿ.ÿÿñþÓþ›þoþTþKþJþJþJþJþJþJþJþbþjþsþ|þ†þ�þ™þ¢þªþ²þ¸þ©þzþLþYþzþ¯þäþÿMÿ‚ÿšÿ³ÿËÿãÿÿÿ8Tx›¾â+Pt–·Øú Fk‘ºâ 4¥„cB!àÀ¡‚lU?" ÷â¡€`?òÿËÿ¡ÿyÿRÿ*ÿþþÉþüþ?ÿŽÿêÿO·²œ…oXA+²ÿÿ�þcþ„þ þÅþéþÿÿ+ÿ>ÿPÿ6ÿÿúþÜþ¥þvþXþKþIþIþIþIþIþIþNþ…þ�þ˜þ¡þ©þ°þ¶þ»þ¿þÁþÁþ¹þƒþMþSþoþ¡þØþ ÿAÿvÿ�ÿ¥ÿ½ÿÖÿðÿ )Ee‰¬Ðñ:^�¢Äå5[�®Öÿ(œzY8öÔµ•wXB,òÜǧ†fE$Üÿ¶ÿŒÿaÿ:ÿÿæþÿWÿ ÿ÷ÿXÀêÔ½§�zc„ÿóþlþqþ›þ·þÓþ÷þÿ'ÿ2ÿDÿWÿ=ÿ#ÿÿæþ±þ€þ^þNþJþJþJþJþJþJþhþ£þ±þ·þ¼þ¿þÁþÁþÀþ½þ¹þ³þ¬þxþJþPþgþ•þËþÿ7ÿlÿ‚ÿšÿ²ÿÊÿåÿ8XyœÀá&Km�±Òý'MrŸÌõ“qP/í˪‹lN0üß­�mL+ éÿÉÿ¢ÿwÿMÿ"ÿûþ(ÿrÿ·ÿdÊ# ÷àʳ�‚íÿYÿÎþgþ‡þ³þÏþëþÿ+ÿ6ÿAÿKÿ^ÿDÿ*ÿÿòþ¾þŒþfþRþLþKþKþKþKþKþxþ®þÃþÃþÂþ¿þ»þµþ®þ¦þ�þ”þŠþ`þKþOþaþ‰þÀþ÷þ-ÿbÿyÿ�ÿ§ÿ¿ÿÛÿõÿ-Mm�°Ñó9[}ŸÁë?e’¿ìŽmL* èÆ¥„fH) îÑ´—wV6õÿÔÿ³ÿ’ÿhÿ=ÿÿèþFÿ­ÿuØ@J4ñÚÄZÅÿ6ÿ²þþ¥þÏþëþÿ"ÿ>ÿIÿTÿ^ÿiÿOÿ6ÿÿÿØþ®þ…þ[þRþQþQþQþQþQþuþ¥þÀþºþ´þ¬þ£þšþ�þ†þ}þsþkþQþQþSþ`þ‚þ¹þðþ&ÿ]ÿtÿ‹ÿ¢ÿ¹ÿÔÿïÿ %Ee…¥Æè *Ln‘³Ý2\‰¶â�lJ)åÄ¢�[<Û¾¡„dD#çÿÆÿ¥ÿ„ÿ€ÿUÿ+ÿÿ`ÿÍÿIÎJˆr\E/Ç2 ÿÿ�þžþÉþðþÿÿ:ÿUÿTÿ_ÿjÿtÿZÿAÿ'ÿ ÿäþºþ�þgþZþXþXþXþXþXþ[þ†þ©þ þ–þ�þƒþzþrþjþdþ_þ[þXþXþYþbþ�þ´þêþ!ÿXÿoÿ†ÿ�ÿ´ÿÎÿéÿ;[{›¹Úü@b„¦Õ*T…²Þ ŒkJ(äÀŸ~X2õЫŽqQ1ðÿÔÿ¸ÿ–ÿvÿrÿnÿDÿÿ{ÿðÿs– ™„mWA+  ÿÿ–þÂþðþÿ#ÿ5ÿQÿlÿlÿjÿuÿ€ÿfÿLÿ2ÿÿïþÆþœþrþcþ_þ_þ_þ_þ_þ_þ_þ„þ�þxþqþkþeþbþ_þ_þ_þ_þ_þ_þ_þeþ€þ²þåþÿRÿjÿ�ÿ˜ÿ¯ÿÉÿâÿþÿ5Rr’°Îï3VxšÉø"L}®ÚŒjI'ãÀœ{U.êÅ {^>þÿÞÿÁÿ¥ÿˆÿgÿdÿ`ÿ\ÿ1ÿ›ÿ¢5y�¡¤–iyèÿdÿïþ¹þêþÿ3ÿDÿVÿhÿ„ÿƒÿ‚ÿ�ÿŒÿrÿXÿ=ÿ$ÿúþÑþ¨þ~þlþfþfþfþfþfþfþfþfþlþhþfþfþfþfþfþfþfþfþfþfþfþjþ~þ±þäþÿMÿdÿ|ÿ“ÿªÿÄÿÞÿ÷ÿ/Khˆ¦Äâ&Hk޼ëDu¦ÖýÚ¸–sR0íʦƒ`:íÇ¢}X3óÿÓÿ³ÿ–ÿzÿ^ÿAÿ=ÿ:ÿ6ÿ2ÿ¦ÿ*º.CYo…’�cÎ;±ÿ8ÿÍþÊþýþ%ÿ<ÿNÿ`ÿqÿƒÿ‚ÿ�ÿ€ÿÿeÿKÿ1ÿÿîþÄþ›þrþ^þUþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþWþeþ˜þÊþýþ0ÿGÿ^ÿvÿ�ÿ§ÿÀÿÚÿôÿ-Jf„¢ÀÞ$Fi˜Æõ$U†¶çüÖ´‘oJ(æÀ�yV.⻕pK&èÿÈÿ¨ÿ„ÿhÿLÿ/ÿÿÊþåþRÿÍÿYì&<Rh}’1§™ÿ*ÿÈþöþ'ÿGÿYÿfÿwÿ‰ÿ›ÿ�ÿŽÿ�ÿŒÿlÿRÿ8ÿÿûþÒþ¨þþhþ]þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ]þiþ�þÃþõþ(ÿDÿ[ÿrÿ‰ÿ¢ÿ¼ÿÖÿðÿ (Ea�»ÙüAd“ÂðQ‚²ãü×±�lH#ຕrN&þز‹e@ýÿÞÿ¾ÿžÿ{ÿXÿ<ÿÿíþ·þÿwÿûÿŒßõ !6LbAØkùÿ‰ÿ$ÿìþ%ÿPÿhÿyÿ…ÿ‘ÿ£ÿ´ÿ©ÿ�ÿœÿ›ÿ|ÿ\ÿBÿ(ÿÿáþ¸þŽþuþhþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþdþeþnþ–þ½þðþ"ÿ>ÿYÿpÿˆÿ¡ÿºÿÔÿîÿ &B^|š·Öø>`�¿îN€±âüײ�jF!üÚµ�jGöΨ‚[5òÿÔÿµÿ•ÿrÿOÿ,ÿÿÛþ¹þ&ÿ¡ÿ,­ÃÙï1?Ön ºÿpÿ"ÿÿQÿsÿ‰ÿ˜ÿ¤ÿ°ÿ¼ÿÎÿÂÿ·ÿ«ÿªÿŠÿkÿLÿ2ÿÿêþÇþžþ‚þsþnþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþnþtþœþÃþêþÿ8ÿSÿnÿ†ÿŸÿ¸ÿÒÿëÿ#?\y—´Òõ:]Œ¼ëL}¯àþÙ³ŽiDûÖ±‹e@ïÇŸyS,èÿÉÿ«ÿ�ÿjÿGÿ#ÿÿËþÚþMÿÐÿ`’©¿ÕëÖm­ÿgÿ3ÿ ÿIÿeÿ�ÿ�ÿ¹ÿÅÿÑÿÝÿéÿÝÿÒÿÆÿºÿ›ÿ{ÿ[ÿ<ÿÿõþÑþ®þ‘þ€þxþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþwþ{þ¢þÉþñþÿ3ÿOÿjÿ…ÿžÿ·ÿÑÿêÿ">Zw•³Ðó8[ŠºéJ{­ßÚ´�j@öÑ©„^9èÀ—rL&ÿÿâÿÄÿ¦ÿˆÿ]ÿ:ÿÿóþ¾þþþxÿbx�¥»ÑçÕl£ÿSÿÿöþ8ÿiÿ‚ÿžÿºÿÖÿáÿíÿùÿïÿäÿØÿÌÿ£ÿ„ÿdÿDÿ'ÿÿàþ¼þŸþ�þƒþ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þƒþ�þ°þßþÿ8ÿTÿoÿŠÿ£ÿ¼ÿÖÿïÿ 'C_}š¸Õø=`޽ìL~°âÞ´�j@ñ̤|V0ß·ŽiDøÿÛÿ¾ÿ ÿ‚ÿWÿ,ÿ ÿæþ²þ$ÿ¥ÿ0G]sŠ ¶ÍkœÿCÿýþßþ ÿaÿˆÿ¢ÿºÿÖÿòÿýÿ ôÿéÿÝÿ´ÿ‹ÿlÿLÿ.ÿÿîþÊþ­þ™þ�þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þŒþ•þ±þÝþÿ6ÿXÿsÿŽÿ§ÿÀÿÚÿóÿ+Gc�ž¼ÚüAd’ÀïO€±ã ⸎i?êÅ�uM'þÖ­…_:ïÿÒÿµÿ™ÿzÿOÿ%ÿúþ×þÔþLÿÕÿ*AWn„›hÿÿ—ÿ6ÿæþÉþÿGÿ„ÿ§ÿÀÿÙÿòÿ#-9$ùÿíÿÄÿ›ÿrÿRÿ5ÿÿúþ×þ¹þ¤þ—þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þšþ²þÛþÿ2ÿTÿvÿ‘ÿªÿÃÿÝÿöÿ.Jf„¡¿Ýÿ"Dg•ÃðP�²ãlH$ܲˆ^4 ßµ‹c:êÁ˜pG"üÿ×ÿ²ÿ•ÿxÿ\ÿ?ÿÿêþ¿þ”þÅþDÿ®ÿÄÿÚÿñÿ51Éÿ`ÿúþ þƒþ·þîþ$ÿZÿ‘ÿªÿÃÿÜÿõÿÿÿ  ôÿÞÿÉÿ ÿwÿNÿ%ÿÿêþÌþ¯þ‘þ{þnþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþlþ€þ¦þØþúþÿ>ÿ`ÿyÿ’ÿ¬ÿÅÿáÿýÿ5SpެÎñ6d’¿íN°Ý 7doJ&Þ²ˆ]4Û°†\4 ä»’jA÷ÿÒÿ¬ÿŽÿqÿTÿ8ÿ*ÿÿÕþªþíþsÿ�ÿ§ÿ¾ÿÔÿëÿÅÿ\ÿôþ“þuþ þØþÿ6ÿlÿ£ÿÁÿÚÿóÿ !+6îÿÙÿ©ÿ€ÿWÿ.ÿÿõþ×þºþœþ…þwþoþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþrþ‚þ¥þÖþþþ ÿBÿdÿ~ÿ—ÿ°ÿÊÿæÿ:Xu“±Óö:g•Âð Q‚²à :gpL(ೆ\2Õ«�W-ܳ‹b9ðÿËÿ¥ÿ‡ÿiÿLÿ/ÿ"ÿÿêþ¿þÿ\ÿrÿ‰ÿ ÿ·ÿÍÿäÿÀÿXÿïþ‰þlþ�þ¾þ÷þÿGÿ~ÿ´ÿÒÿïÿ !,7AK/ýÿçÿ¸ÿˆÿ_ÿ6ÿÿÿþáþÃþ¦þ�þ€þvþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþwþ„þ£þÓþüþ$ÿFÿhÿ�ÿ›ÿ´ÿÍÿéÿ!=[y—µ×ù>j—Åó#Sƒ´á;iqM)᳇Y/Ó¤zP&üÓ«ƒZ1 èÿÃÿžÿÿaÿBÿ%ÿÿ ÿþþÓþ+ÿ=ÿSÿjÿ�ÿ˜ÿ¯ÿºÿRÿéþ�þhþ~þ¦þÜþÿ>ÿfÿ�ÿÄÿâÿÿÿ6AKV`D' õÿÅÿ–ÿfÿ=ÿ!ÿÿêþÌþ¯þ—þ‡þ}þzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþzþ{þ†þ¢þÏþ÷þ ÿIÿkÿ„ÿ�ÿ¶ÿÏÿìÿ$@^|™·ÚüAm™Æô$T„µâ<irN)á´‡Z-ÿСsIõË£zQ)ßÿ»ÿ–ÿwÿYÿ;ÿÿÿÿôþçþ ÿÿ5ÿLÿcÿyÿ�ÿLÿäþ{þiþuþ¥þÕþÿ5ÿ]ÿ…ÿ¬ÿÔÿòÿ-KU`kuY<Óÿ£ÿtÿDÿ(ÿ ÿñþÕþÁþ¬þ˜þ„þþþþþþþþþþþþþþþþþþþþþ€þˆþ¡þËþóþÿEÿmÿ†ÿŸÿ¹ÿÒÿîÿ 'CaœºÜÿ!CoœÉõ%U…µâ=jlE!ýÙ«~Q$öÇ™j@ìšqI!ýÿÙÿ´ÿ�ÿlÿMÿ/ÿÿáþ³þ’þÚþéþÿþÿ-ÿDÿ[ÿFÿÞþvþnþrþ‰þ½þíþÿMÿoÿ—ÿ¿ÿæÿ!?]bmw‚cG*àÿ°ÿ€ÿPÿ3ÿÿüþàþÈþ´þ þ‹þ…þ…þ…þ…þ…þ…þ…þ…þ…þ…þ…þ…þ…þ…þ…þ…þ…þ…þ…þ…þ…þ‹þ¡þÉþõþÿGÿoÿ‰ÿ£ÿ¼ÿÕÿðÿ )Eb�»Þ"Dq�Ê÷&V†¶ã=kf?ôУuIí¾�a7 ⹑i@õÿÑÿ­ÿˆÿeÿBÿ$ÿÿÖþ«þ·þ¸þÉþàþ÷þÿ&ÿ=ÿØþtþtþuþ}þ�þÑþÿ5ÿeÿ‡ÿ©ÿÑÿùÿ3Pnty„�pQ5ëÿ¼ÿ�ÿ]ÿ@ÿ#ÿÿëþÓþ»þ§þ“þ‹þŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþ�þ¢þÇþóþ ÿIÿqÿ‹ÿ¥ÿ¿ÿØÿóÿ+Gd�ž¼ß#ErŸËø(W‡·ä>k`9ìÇšm@䶇Y.Ù¯‡`8ìÿÉÿ¦ÿ�ÿ^ÿ;ÿÿùþËþ¤þ þ þ®þÂþÙþðþÿÒþ{þ{þ{þ}þ‹þ°þäþÿLÿ|ÿŸÿÁÿãÿ (Eb…‹‘›}^@#õÿÇÿ™ÿiÿMÿ0ÿÿ÷þßþÇþ¯þšþ‘þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ‘þ“þ�þ�þ�þ�þ�þ�þ“þ£þÅþòþÿKÿsÿ�ÿ§ÿÂÿÛÿöÿ-IfƒŸ½ß%Gs Íù)Y‰¹å?l¡^=ïÉ¢uHí¾�b3Þ´‰a9êÿÇÿ£ÿ€ÿ]ÿ:ÿÿôþÑþ¦þˆþwþvþ€þ�þŸþµþ¯þdþdþdþeþjþþ§þÛþÿCÿwÿ™ÿ¼ÿÞÿ:Wtz…‹lN/ãÿµÿ‡ÿYÿ<ÿÿÿåþÍþµþ�þ…þ{þxþxþxþyþyþzþ|þ~þ�þƒþ‡þŠþŽþ“þ�þxþxþxþxþxþzþˆþ¦þÒþÿþ,ÿXÿrÿŒÿ§ÿÁÿÜÿøÿ.Kh„¡Äæ+X„±Þ>m�Êö#P¿�nM,þ×°Š^0Öª|MõÊ uP(Ùÿ¼ÿ˜ÿuÿRÿ0ÿ ÿêþÇþœþ~þoþmþsþ|þˆþ—þgþgþgþgþhþrþ�þºþéþÿQÿ…ÿ§ÿÉÿëÿ&C`}}‚ˆŽqR4îÿÀÿ’ÿdÿFÿ)ÿ ÿïþÒþºþ¡þ‰þ}þzþzþzþŠþŽþ’þ–þ›þ þ¥þªþ¯þµþºþ±þ‚þzþzþzþzþ{þ†þ£þÒþÿþ+ÿXÿuÿ�ÿªÿÄÿÛÿ÷ÿ-Fc€œ¿â&T�®Û :jšÆòL»Œ];ì½—pDë½’f7 ßµ‹a<ïÿÇÿªÿŒÿiÿFÿ#ÿÿÞþ»þ“þyþlþjþmþqþyþiþiþiþiþiþlþzþ›þËþúþ*ÿ^ÿ’ÿ´ÿÕÿøÿ2Kh………Š�sV7ñÿÉÿ›ÿnÿOÿ1ÿÿ÷þÚþ½þ¥þ�þþ{þ{þ{þ©þ³þ¸þ½þÃþÈþÍþÒþÖþÛþßþÛþªþ{þ{þ{þ{þ{þ…þŸþÎþþþ+ÿWÿuÿ’ÿ¬ÿÇÿÞÿõÿ+D]z—¹Üÿ!O}ª×6f•ÁíG·ˆY)Ú¬}V*þÒ¥zN"ôÊ vL'Ýÿµÿ˜ÿzÿ]ÿ:ÿÿõþÓþ°þŒþwþmþkþkþmþlþlþlþlþlþlþqþ„þ©þÝþ ÿ;ÿjÿžÿÀÿâÿ&?WoŒŒŒŒ’uX;õÿÍÿ¥ÿwÿYÿ;ÿÿÿãþÆþ©þ�þ‚þ|þ{þ�þÉþÙþÝþáþåþèþëþîþðþñþòþòþ¾þŠþ{þ{þ{þ|þƒþšþÊþúþ*ÿVÿtÿ‘ÿ¯ÿÉÿàÿ÷ÿ*C[t‘´ÖùJx¦Ò2b‘½éA¶‡X(ùË�n@è¼�d9 á·Žd:ðÿËÿ¦ÿ‰ÿlÿNÿ1ÿÿìþÊþ§þŠþyþsþ_þcþfþjþlþoþpþqþrþzþ’þºþñþ ÿPÿÿ®ÿÐÿòÿ6Nf—————z]@#ûÿÔÿ¬ÿ„ÿfÿHÿ*ÿ ÿïþÒþ´þ—þ‡þ€þþªþàþôþöþöþ÷þ÷þöþõþôþòþïþíþ¼þ„þþþþþ…þ™þÉþùþ(ÿXÿvÿ“ÿ°ÿÎÿåÿýÿ+D]uޱÔöGu£Ñ1`�¼è?·~Oð½Ž`2Ú®‚X,Õ«�X. æÿÁÿœÿ†ÿhÿKÿ.ÿÿíþÊþ¨þŒþ}þyþJþOþTþYþ]þbþfþyþ{þ†þ¡þÌþÿ,ÿ[ÿŠÿ¹ÿÜÿþÿ BWpˆ œœœœ�dG*àÿ¸ÿ�ÿqÿSÿ6ÿÿøþÛþ¾þ þ�þ†þ…þ®þáþùþ÷þôþñþîþêþæþâþÝþØþÓþ§þ…þ…þ…þ…þ…þŠþœþÌþüþ+ÿ[ÿ~ÿ›ÿ¸ÿÖÿëÿ1G`y’µØûLz¨Ö6e•ÀëCº�Hé¶‚T&úÏ£wL"öÊ¡wM$Þÿ¹ÿ”ÿ~ÿhÿJÿ-ÿÿïþÌþªþ‘þ…þoþ>þ@þCþGþKþOþTþ‚þ†þ•þ³þàþÿ>ÿhÿ—ÿÇÿêÿ .Qfz“«§£££ˆmP3îÿÆÿžÿ€ÿaÿCÿ%ÿÿæþÉþ¬þ˜þŽþŒþ›þËþçþâþÞþØþÓþÎþÉþÃþ¾þ¹þ´þ�þŒþŒþŒþŒþ�þ�þ¡þÑþÿ0ÿ`ÿ‚ÿ¥ÿÂÿàÿõÿ !9Of~—»Þ$R�¯Ý =lœÆñH½ƒJá­zGí—k@ë¿•lBõÿÓÿ°ÿ‹ÿuÿ_ÿHÿ+ÿ ÿíþÎþ¬þ–þ�þcþFþDþCþBþCþDþPþŒþ’þ£þÂþñþ%ÿOÿyÿ£ÿÓÿöÿ<^sˆ�µ±­ªª�sX;öÿÓÿ«ÿŒÿnÿOÿ1ÿÿóþÓþ¶þ¡þ–þ“þ“þ¥þÈþÂþ½þ¸þ³þ¯þªþ¦þ£þŸþœþ“þ“þ“þ“þ“þ“þ–þ¥þÕþÿ4ÿdÿ†ÿ©ÿËÿéÿþÿ(?Vlƒ›¿ã)X‡µãBr¢Í÷!Mº€G Ô¡m9Û¯„Y.Ù¯…[2åÿÂÿ ÿ}ÿgÿQÿ:ÿ$ÿÿæþÇþ¨þ˜þ�þ|þoþfþ^þWþQþMþlþ�þ™þ¿þåþ ÿ1ÿ[ÿ…ÿ°ÿÚÿýÿ Cf{�¥º¶²¯«�tY>ùÿÖÿ³ÿ•ÿvÿWÿ9ÿÿúþÚþ»þ¥þ˜þ•þ•þ•þ¦þ£þ þ�þšþ˜þ—þ–þ•þ•þ•þ•þ•þ•þ•þ•þ•þ˜þ¤þÔþÿ3ÿcÿ…ÿ¨ÿËÿíÿ,AWn„›¿â*X‡µäCs£Íø"M°y@Í›g3Ô©}R'üÒ§}S)Ýÿºÿ˜ÿuÿaÿKÿ5ÿÿÿãþÄþ¥þ–þ�þßþËþ¸þ¦þ–þ‡þ{þ�þ‘þœþÁþçþ ÿ3ÿXÿ‚ÿ¬ÿÖÿûÿ@cy�¢·³¯«§�rW;øÿÕÿ³ÿ”ÿuÿWÿ8ÿÿûþÛþ¼þ¥þ—þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ•þ¡þËþûþ+ÿ[ÿÿ¢ÿÄÿçÿ+@\s‰ŸÄè /\‹¹èEu¥Íø"M¢k4úÁŽ\(õÉœqFðÅšpFòÿÐÿ­ÿŠÿgÿTÿ@ÿ*ÿÿøþÜþ½þ�þ�þÿTÿ@ÿ+ÿÿÿïþÛþ‹þŽþšþÀþäþ ÿ0ÿUÿyÿ¤ÿÎÿòÿ9\q†›°«¦£Ÿ…jO4óÿÐÿ®ÿŽÿpÿQÿ2ÿÿöþ×þ·þŸþ‘þŒþŒþŒþŒþŒþŒþ›þ�þŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþ�þ˜þÃþîþÿMÿrÿ–ÿ¹ÿÜÿöÿ&:VrˆŸÃè 0\ЏæBq¡ÊóH”]&ð¶„Që¿“f;å¹�d:æÿÃÿ¡ÿ~ÿ[ÿHÿ4ÿ ÿ ÿîþÒþ¶þ—þŠþÜþjÿ ÿ¡ÿ�ÿxÿdÿPÿÐþŒþšþ¿þäþ ÿ/ÿSÿxÿœÿÇÿëÿ2Uj€”ª¥ ›˜}cI. íÿÌÿ©ÿŠÿkÿLÿ.ÿÿòþÔþ´þ›þŒþ†þ†þ†þ†þ†þ†þ§þ¨þ†þ†þ†þ†þ†þ†þ†þ†þ†þ†þ†þ†þ‡þ�þ¼þæþÿAÿfÿŠÿ¯ÿÑÿìÿ!6Rm‰ Äè 1^‹¸æAožÈðD–_)ò»‰V$ñÅ™l@꾓i>êÿÇÿ¤ÿ‚ÿ_ÿKÿ8ÿ$ÿÿôþØþ¼þ þ–þ”þ”þ”þ”þ”þ»þ4ÿwÿ(ÿ›þ©þÎþóþÿ=ÿbÿ†ÿªÿÏÿóÿ;_t‰ž³®ª¥ †lQ7öÿÖÿµÿ–ÿwÿXÿ9ÿÿýþßþÁþ§þ—þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ‘þ™þÄþïþÿEÿjÿŽÿ²ÿ×ÿñÿ &A]x”°ÔùBoœÉö#Q~¬Õþ'P’c,õ¿�]*øËŸrFïÄ™nDïÿÍÿªÿˆÿeÿQÿ=ÿ)ÿÿùþÝþÁþ¥þœþšþšþšþšþšþšþšþšþ›þ£þ³þÕþúþÿDÿeÿ‰ÿ­ÿÒÿöÿ>bwŒ¡¶°¬§¢‰oT:üÿÛÿ»ÿœÿ}ÿ^ÿ?ÿ!ÿÿåþÇþ¬þœþ•þ”þ”þ”þ”þ”þ”þ”þ”þ”þ”þ”þ”þ”þ”þ”þ”þ”þ”þ”þ•þœþÀþëþÿAÿcÿˆÿ¬ÿÑÿõÿ*Ej†¡½â,Px¦Ò)V„±Ú,TˆY+ô½Ž_,úÍ tGðÄ™nDïÿÍÿ«ÿ‰ÿfÿRÿ>ÿ*ÿÿúþÝþÂþ¦þ�þœþœþœþœþœþœþœþœþ�þ§þ¹þÚþüþ!ÿFÿgÿ‡ÿ«ÿÐÿôÿ=au‰Ÿ´®©¤Ÿ†mR8ýÿÜÿ¼ÿ�ÿ~ÿ_ÿ@ÿ"ÿÿæþÈþ­þœþ”þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ“þ›þ¾þáþ ÿ7ÿZÿ}ÿ¡ÿÅÿêÿ)Ci�©Åë5Y�ª×-W„±Ú+T~P!ò¼Œ].û΢uIñÅšoDïÿÍÿ¬ÿŠÿgÿSÿ>ÿ*ÿÿúþÞþÂþ¦þžþžþžþžþžþžþžþžþžþ þªþ¾þßþÿ#ÿHÿhÿ‰ÿªÿÎÿòÿ;_sˆœ±¬¦¡œƒjP6úÿÝÿ¼ÿ�ÿÿ`ÿAÿ#ÿÿçþÉþ­þœþ“þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ’þ™þ¼þàþÿ.ÿQÿsÿ–ÿºÿßÿ(BgŒ±Íò>bгÜ2[„²Ú*TuF麋[,ýУwJòÆšoEïÿÍÿ«ÿŠÿhÿTÿ@ÿ+ÿÿûþßþÂþ¦þ þ þ þ þ þ þ þ þ þ¢þ®þÃþåþÿ(ÿJÿkÿ‹ÿ¬ÿÌÿðÿ9]q†›¯©¤ž™€fM4øÿÛÿ½ÿžÿ€ÿaÿBÿ$ÿÿèþÊþ®þ›þ’þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ‘þ—þ»þÞþÿ%ÿGÿjÿ�ÿ¯ÿÓÿøÿAf‹°Õû Ek“¼å 6_‰²Ú+SpFéº�].ÿÑ¥xKóÇ›pEðÿÏÿ­ÿ‹ÿiÿTÿ@ÿ+ÿÿûþßþÃþ§þ¡þ¡þ¡þ¡þ¡þ¡þ¡þ¡þ¡þ¤þ±þÇþçþÿ*ÿLÿkÿ‹ÿ¬ÿÌÿñÿ9]q…š®§¢�—~eK2øÿÚÿ¼ÿžÿÿ`ÿBÿ#ÿÿçþÉþ­þšþ‘þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ•þ´þ×þûþÿ?ÿbÿ„ÿ§ÿÑÿõÿ>i�³Øý#Hn”¼å 4]†°Ø(QlBéº�`1Ô§zN!õÉ�rHòÿÑÿ¯ÿŽÿlÿVÿAÿ-ÿÿüþàþÄþ¨þ£þ£þ£þ£þ£þ£þ£þ£þ£þ§þ´þËþëþ ÿ-ÿOÿnÿ�ÿ­ÿÎÿòÿ:^r†š®¨¡œ–}dK2øÿÚÿ¼ÿžÿ€ÿaÿBÿ$ÿÿèþÊþ­þšþ�þŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþŽþ�þ”þ³þÒþöþÿ:ÿ[ÿ}ÿŸÿÉÿóÿ<g‘¶Û&Lr˜¾æ5\…®Öþ'Oh>éº�`3Ö©|O#öÊžsIóÿÒÿ°ÿ�ÿnÿXÿCÿ-ÿÿýþáþÅþ¨þ¤þ¤þ¤þ¤þ¤þ¤þ¤þ¤þ¤þ¨þ·þÏþïþÿ/ÿQÿpÿŽÿ­ÿÎÿòÿ:_r†™®§ š”{bI0öÿÚÿ¼ÿ�ÿÿ`ÿBÿ#ÿÿçþÉþ¬þ˜þŽþ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ’þ±þÐþïþÿ3ÿTÿuÿ—ÿÁÿëÿ9dޏÞ)OtšÀæ5\ƒ¬Ôü$Ld:廎a3Ù«~Q%ùÌ uK õÿÔÿ³ÿ‘ÿpÿ[ÿEÿ/ÿÿþþâþÆþªþ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ¦þ«þºþÔþôþÿ4ÿTÿsÿ‘ÿ°ÿÏÿóÿ<`s‡›®§¡š“zaH/õÿÙÿ¼ÿ�ÿÿaÿBÿ$ÿÿçþÉþ«þ˜þŽþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþŒþ‘þ°þÏþîþ ÿ.ÿOÿoÿ�ÿºÿäÿ 7bŒ·á-RxžÄê7]„«Óû#Kf:å»�`3Ù«~Q%ùÌ vK õÿÔÿ³ÿ‘ÿpÿ[ÿEÿ/ÿÿÿþãþÇþ«þ§þ§þ§þ§þ§þ§þ§þ§þ§þ¬þ»þÕþôþÿ4ÿTÿsÿ’ÿ±ÿÐÿõÿ=aw‹ž²¬¥ž˜}eK3øÿÛÿ¿ÿŸÿ�ÿcÿDÿ#ÿÿæþÈþªþ–þŒþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþ�þ²þÑþðþÿ3ÿTÿuÿ•ÿ¾ÿèÿ;e�¹ä /U{ŸÅë8^…¬Óû#Kh<å»�_2Ø«~Q%ùÌ vK õÿÔÿ³ÿ‘ÿpÿ[ÿEÿ/ÿÿÿþäþÈþ¬þ¨þ¨þ¨þ¨þ¨þ¨þ¨þ¨þ¨þ®þ½þÖþõþÿ5ÿUÿtÿ“ÿ²ÿÑÿõÿ>cxŽ¢µ¯©£œ‚hO6ûÿÞÿÂÿ¢ÿƒÿeÿFÿ%ÿÿåþÇþ¨þ•þŠþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþˆþ�þ°þÓþñþÿ5ÿYÿzÿ›ÿÃÿìÿ?i’½ç 1W}¢Çí9_†­Ôû#Kg;㹋]/Õ¨{N"öÊžsIôÿÒÿ±ÿ�ÿnÿYÿCÿ-ÿÿýþâþÇþ«þ§þ§þ§þ§þ§þ§þ§þ§þ§þ­þ¼þÕþôþÿ3ÿSÿrÿ‘ÿ±ÿÏÿôÿ=bw�£·±«¥Ÿ…kQ7ýÿßÿÂÿ£ÿ„ÿeÿFÿ%ÿÿáþÃþ¥þ‘þ†þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ„þ‰þ¬þÏþñþÿ5ÿYÿ}ÿžÿÇÿïÿBk”½è 3X}£Çí9_…¬Óú!Ih<上\.Ó§zM!õÉ�rHóÿÑÿ°ÿŽÿmÿXÿBÿ,ÿÿüþáþÆþ«þ§þ§þ§þ§þ§þ§þ§þ§þ§þ­þ¼þÕþôþÿ3ÿRÿqÿ�ÿ°ÿÏÿôÿ=bxŽ£¹³®¨¢ˆnT:ÿÿâÿÄÿ¥ÿ…ÿfÿGÿ&ÿÿâþÁþ¢þŽþƒþ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ�þ†þ©þÌþîþÿ5ÿZÿ~ÿ¢ÿËÿôÿEn˜Áê4Z¤Éî9`†¬Óú!Hh9 ᵆX*üФwJóÇ›rGòÿÐÿ¯ÿ�ÿlÿSÿCÿ4ÿÿîþÍþµþÿñþÉþ¬þ¤þ¤þ¤þ¤þ¤þ¤þªþ¸þÐþðþÿ.ÿNÿmÿŒÿ¬ÿËÿñÿ:_z�¥»¹³­§�sY? åÿÈÿ§ÿˆÿiÿIÿ ÿÿþÝþ¼þœþˆþ}þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ€þªþÍþðþÿ=ÿaÿ…ÿªÿÐÿùÿ"Jq›Äí7\‚¥Êï8_…«ÐøFZ+üϤuFê¿“f:丌b9äÿÂÿ ÿ~ÿ\ÿBÿ2ÿ#ÿÿ&ÿiÿ·ÿàÿ³ÿˆÿ]ÿ2ÿ ÿ½þ“þ“þ˜þ¦þ¾þÝþýþÿ<ÿ[ÿzÿ™ÿ¸ÿÞÿ)Ni„™¯­ª¥Ÿ…jP6ùÿÛÿ¾ÿ�ÿ|ÿ]ÿ>ÿÿìþÊþ¨þˆþtþiþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþhþmþ—þÁþäþÿ0ÿ[ÿÿ£ÿÉÿðÿBi�¹â,Qv™¼á+PvœÂç5Cä´ˆZ+ýÏ£wLôÉžrHõÿËÿ©ÿ‡ÿeÿCÿ)ÿ\ÿÌÿN�Öݬ}Nñÿ‰ÿÉþxþ}þŠþ¡þÀþàþÿÿ>ÿ^ÿ}ÿœÿÂÿèÿ3Niƒ™—•’�rX=#åÿÇÿ©ÿ‰ÿhÿHÿ)ÿÿþÖþ­þ‹þjþUþKþJþJþJþJþJþ1þ.þ.þ.þ.þ.þ.þ.þ.þJþJþJþJþJþJþOþyþ£þÎþðþÿDÿnÿ’ÿ¹ÿàÿ/V}¥Îò;a„§Êï8]ƒ¨Îô/ÿСqBæ·‹`4ݲ‡\2 àÿ¶ÿ”ÿrÿPÿ.ÿÿ4ÿÀÿ=³+­ ñÂŽ[)÷r­ÿêþeþrþˆþ¨þÈþçþÿ&ÿFÿeÿ„ÿªÿÐÿöÿ7Rl‡…ƒ€~dI.õÿ×ÿ¸ÿ™ÿyÿXÿ8ÿÿîþÅþ›þrþOþ;þ1þ0þ0þ0þ0þ0þäýáýáýáýáýáýáýáýáý0þ0þ0þ0þ0þ0þ5þ_þŠþ´þÞþÿ2ÿ\ÿ†ÿ¬ÿÓÿúÿ Go–½â+Or–¹Ü%Jn”¹ß&öÆ—g9 Ü®„X,׬‚V.Üÿ²ÿ�ÿoÿLÿ*ÿÿÿ¤ÿ"—�ÒÔÛâéðøwµíÿ)ÿnþyþšþÁþåþþþÿ<ÿ[ÿ{ÿ¡ÿÇÿíÿ0Kf��~|z_D*ðÿÑÿ³ÿ”ÿrÿQÿ1ÿÿÞþ´þ‹þbþ?þ*þ!þ þ þ þ þ þ½ýºýºýºýºýºýºýºýºý þ þ þ þ þ þ&þTþ~þ©þÓþýþ'ÿQÿ{ÿ ÿÇÿîÿ:aˆ°ÔøAd‡ªÍñ:_ƒ©Îô%ôÄ•e7 Û¬ƒY-د„Y1 àÿ¶ÿ•ÿsÿQÿ/ÿÿÿ’ÿ„úy££ª±¸ÀÇI¼0¥ÿ$ÿ¬þ’þºþáþüþÿ:ÿZÿyÿŸÿÆÿìÿ/Lg‚‚‚€~cH.ôÿÔÿµÿ–ÿuÿSÿ2ÿÿßþ­þƒþZþ6þ"þþþþþþþîýëýëýëýëýëýëýëýëýþþþþþþþMþ{þ¦þÐþúþ$ÿOÿxÿžÿÃÿêÿ6\ƒªÎò;^€£Çë3X| Æë$ôÄ“d6Û¬‚Y/Ú±‡\5 åÿ»ÿ™ÿxÿWÿ5ÿÿÿ‚ÿtèettz‚‰��tçÿ\ÿÚþkþŒþµþÞþüþÿ:ÿYÿxÿŸÿÅÿìÿ/Lj…………‚gM2øÿÙÿ¹ÿšÿxÿVÿ4ÿÿáþ¯þ|þSþ/þþþþþþþþQþTþTþTþTþTþTþTþTþþþþþþþþGþuþ¤þÎþøþ#ÿMÿwÿœÿÁÿçÿ 3Y¦Êî6Y{�Áå -Qvš¿ä$ôÄ“c5Ú¬‚X/ܲ‰`8èÿÀÿžÿ}ÿ\ÿ:ÿÿÿuÿôÿf×RFEKRY`E¸,Ÿÿÿ�þeþ‹þ°þÖþüþÿ:ÿYÿxÿžÿÅÿìÿ/Lj‡‡‡‡‡lQ7üÿÝÿ½ÿžÿ|ÿZÿ8ÿÿäþ±þ~þLþ'þþ þ þ þ þ þ$þºþ½þ½þ½þ½þ½þ½þ½þ½þ+þ þ þ þ þ þþ@þoþžþÌþöþ ÿKÿuÿšÿÀÿåÿ 0V|¢Æê 1Sv˜»ß'Kp”¸Ý+þÎ�mB湑h>îÄ›rL$üÿÔÿ²ÿ‘ÿoÿNÿ.ÿÿoÿíÿ]Ì,&.5tçÿ[ÿÎþNþaþ�þ³þÙþþþÿ>ÿ]ÿ|ÿ£ÿÉÿðÿ7Tr�’’’’uZ@%þÿÞÿ¿ÿŸÿyÿWÿ5ÿÿÞþ«þyþFþ"þþþþþþþPþæþéþéþéþéþéþéþéþéþVþþþþþþþ>þmþ›þÊþïþÿCÿnÿ’ÿ·ÿÜÿ'Ms™¼à'Jl�±ÕùAeŠ®Ó2اwL!óÅžwM$ýÖ­„^7çÿÆÿ¤ÿƒÿbÿ@ÿ&ÿkÿéÿWÃôïôû ¼0£ÿÿŠþLþ]þ‰þµþÛþÿ"ÿBÿbÿ€ÿ§ÿÎÿôÿ<\z—šžžž€cH.ßÿÀÿ ÿzÿTÿ2ÿÿÛþ¥þsþ@þþ þþþþþþ{þÿÿÿÿÿÿÿÿÿ�þþþþþþþ<þjþ™þÇþíþÿ<ÿfÿŠÿ¯ÿÔÿùÿCi�³Öú@b…¨Ëî6[€¤È8 Þ°€U*ÿѪƒ\2 徕oI"úÿÙÿ·ÿ–ÿtÿTÿ8ÿgÿäÿQºáËÃÇÎÕÝwêÿ^ÿÑþDþIþXþ„þ°þÜþÿ#ÿDÿeÿ„ÿªÿÑÿøÿ?`�ž¡¤¨¨ŠmP5çÿÀÿ¡ÿ{ÿTÿ.ÿ ÿ×þ¡þlþ:þþþþþþþþ¥þ;ÿ>ÿ>ÿ>ÿ>ÿ>ÿ>ÿ>ÿ>ÿ«þþþþþþ þ:þhþ–þÄþêþÿ4ÿ^ÿ‚ÿ¦ÿÊÿðÿ:^„¨Ëï5Xz�Àä+Pt™½>䶉^3ݶŽg@ó̦€Z3 ìÿÊÿ¨ÿ‡ÿhÿKÿcÿàÿL²½¢˜š¡¨°1¥ÿÿ‹þCþEþSþþ«þ×þÿ$ÿEÿfÿ‡ÿ®ÿÔÿûÿ"Cc„¥¨«¯²•xZ=ïÿÈÿ¡ÿ{ÿTÿ.ÿÿÓþ�þhþ3þþþüýüýüýüý9þÏþeÿhÿhÿhÿhÿhÿhÿhÿhÿÕþ?þüýüýüýþý þ7þeþ“þÁþæþ ÿ1ÿVÿzÿžÿÂÿæÿ 0UzžÁä*Mp’¶Ùü Di�²Eï”lBìÆŸxQ-ຕoI"ßÿ½ÿœÿ}ÿ_ÿ`ÿÛÿG«˜zlls{xëÿ_ÿÒþEþAþBþNþuþ¢þÎþùþ"ÿCÿdÿ…ÿ¬ÿÓÿúÿ Fgˆ¨±´·ºš|_BêÿÃÿœÿpÿJÿ$ÿþþÊþ•þ`þ+þ þûýøýøýøýøýcþùþ�ÿ’ÿ’ÿ’ÿ’ÿ’ÿ’ÿ’ÿ’ÿÿþiþøýøýøýúýþ3þaþ�þ½þÝþÿ(ÿMÿpÿ”ÿ¸ÿÜÿ%Jo’¶ÙüAd†ªÎñ9]�¦M$úÍ xP%úÕ°‰b>ôÍ©…^8óÿÒÿ°ÿ’ÿsÿ[ÿÕÿB£uQ?=DL0¤ÿÿ‹þ?þ?þ@þHþpþ˜þÄþðþÿBÿcÿ„ÿªÿÒÿøÿEj‹¬´¼Àâ�dGåÿ¾ÿ—ÿkÿ@ÿÿóþÀþ�þXþ"þþöýôýôýôý÷ý�þ#ÿ¹ÿ¼ÿ¼ÿ¼ÿ¼ÿ¼ÿ¼ÿ¼ÿ¼ÿ)ÿ“þýýôýôý÷ýþ0þ]þŠþ¸þÙþùþÿDÿgÿŠÿ­ÿÒÿöÿ>d‡ªÎñ6XzžÂå -QušU+Ù¬„\4ä¾™rO+὘tM+ çÿÅÿ¦ÿ†ÿdÿËÿ:ƒP( çÿ[ÿÏþCþ=þ=þ=þCþkþ“þºþæþÿ8ÿaÿ‚ÿ©ÿÐÿ÷ÿCi�°¸ÀÈË«ŠiLêÿ¹ÿ’ÿfÿ;ÿÿèþ¶þ‚þOþþþýòýðýðýðý!þ·þMÿãÿæÿæÿæÿæÿæÿæÿæÿæÿSÿ½þ'þðýðýóýþ.þZþ†þ´þÔþõþÿ:ÿ]ÿ€ÿ£ÿÇÿëÿ3X|ŸÂæ*Lo’¶Úý"FjŽ\3 à·�g?òͨƒ_<õЬˆcAüÿÚÿÓÿÌÿÅÿ¾ÿ/_*ýÿâÿÚÿßÿçÿœÿÿ„þ;þ;þ;þ;þ>þfþ�þµþÝþÿ.ÿWÿ€ÿ§ÿÎÿõÿBg�³»ÄÌÔ³’rQ ïÿ¾ÿ�ÿaÿ6ÿ ÿÞþ«þxþEþþ÷ýíýëýëýëýKþáþwÿ }ÿçþQþëýìýðýþ,þXþ„þ°þÐþðþÿ1ÿTÿwÿšÿ½ÿáÿ)Mp”·ÚüAc‡ªÎò:^‚`9æ½—oGüÖ²ŒjF#ÿܸ“oL*æÿÄÿ½ÿ¶ÿ¯ÿ8Ñÿ±ÿ¤ÿ¨ÿ±ÿMÿÂþ9þ9þ9þ9þ9þ:þEþcþ’þÊþýþ&ÿNÿwÿžÿÆÿìÿ;a†¬¸ÀÈа�nNéÿ¸ÿ‡ÿXÿ,ÿÿÕþ£þpþ<þ þñýèýçýçýçýuþ ÿ¡ÿ7::::::::§ÿÿ{þçýçýíýÿý*þVþ‚þ®þÍþíþ ÿ.ÿPÿsÿ–ÿ¹ÿÝÿ%Il�²Öø<_‚¦Êî6Z~d=íÄ�wO'à»–tQ. çÄŸzX6ñÿÐÿ®ÿ§ÿ¡ÿ Õÿ¢ÿ}ÿlÿmÿvÿúþoþ6þ6þ6þ6þ6þ7þ>þVþ�þ¶þêþÿFÿoÿ–ÿ½ÿäÿ 2Z€¦±½ÅÍ­ŒkJäÿ³ÿ‚ÿSÿ$ÿøþÌþšþgþ4þþêýãýãýãý þŸþ5ÿËÿaddddddddÑÿ;ÿ¥þþãýêýþý)þTþ€þ¬þÊþêþ ÿ*ÿLÿoÿ’ÿµÿÙÿüÿ Dh‹®Ñô8Z~¢Åé 2UzkDöͧ€Z2ëÈ£€^;ôÑ®‰gE#ßÿ½ÿœÿ•ÿñÿàÿ©ÿsÿJÿ4ÿ2ÿ0ÿ¦þ6þ6þ6þ6þ6þ6þ6þ:þMþrþ¦þÚþ ÿ@ÿiÿ�ÿ·ÿßÿ-U|¢­¹Äͬ‹kJãÿ°ÿÿPÿ!ÿòþÆþ”þaþ/þûýçýâýâýâý'þ½þSÿéÿ‚‚‚‚‚‚‚‚ïÿYÿÃþ-þâýëýþ+þVþ€þ¬þËþêþ ÿ)ÿLÿoÿ‘ÿ´ÿØÿûÿCf‰¬Ïò7Y} Äè 0TxwP)Ûµ�hBûØ´‘oM*ãÀ�{Y6óÿÑÿ¯ÿŽÿÙÿµÿÿHÿÿÿþøþÜþSþ<þ<þ<þ<þ<þ<þ<þ=þJþjþ›þÎþÿ5ÿhÿ�ÿ·ÿÞÿ-T|£¯ºÅѱ�pOèÿµÿ�ÿRÿ#ÿôþÅþ“þ`þ-þûýéýåýåýåýþ²þHÿÞÿtwwwwwwwwäÿNÿ¸þ"þçýðýþ2þ]þ‡þ²þÑþðþÿ.ÿQÿsÿ•ÿ¸ÿÜÿ#Gj�°Óö;]�¤Èë3X|߸’lG#Ü·•rO+墀];ýÿÛÿ¹ÿ˜ÿÁÿ ÿnÿ7ÿÿæþÙþ¢þ]þ]þ]þ]þ]þ]þ]þ]þ]þeþ~þ¬þèþÿOÿ‚ÿ­ÿÔÿûÿ#@h�·¿ÊÕáÅ¥„d8Ñÿ�ÿlÿ=ÿÿßþ¯þ|þJþþþþþþ#þ¹þOÿåÿ{~~~~~~~~ëÿUÿ¿þ)þþþ+þSþ~þ¨þÓþñþÿ/ÿNÿoÿ’ÿ´ÿ×ÿùÿ@d‡ªÍñ7Z|¡Åè 3W{ ìÉ£}X2ìÆ¡~\8ñήŽkI Ìÿªÿ‰ÿŽÿpÿBÿ ÿØþ²þ þfþdþdþdþdþdþdþdþdþdþhþzþ£þßþÿOÿ‚ÿ­ÿØÿ'Ecв¹ÁÌØ¼ €`3Ôÿ ÿoÿ>ÿÿàþ°þ€þMþþ þ þ þ þþ§þ=ÿÓÿillllllllÚÿDÿ®þþþþ7þ^þ†þ°þÛþùþÿ6ÿUÿvÿ˜ÿºÿÜÿÿÿ!EhŒ¯Òõ>`‚§Íð;b†ªúص�jDüÖ±ŒjF"þÚºšzXÛÿœÿ{ÿYÿ<ÿÿàþ«þ�þhþpþmþmþmþmþmþmþmþmþmþoþzþœþØþÿQÿ„ÿ¯ÿÚÿ,Jh†­µ½Äд˜}\0×ÿ¤ÿsÿBÿÿâþ²þ�þQþþþþþþþ—þ-ÿÃÿY\\\\\\\\Éÿ3ÿ�þþþ&þDþkþ’þ¹þäþÿ ÿ>ÿ]ÿ~ÿŸÿÁÿãÿ(Jn‘´×úCgНÔùDk’¶+ æÃ¡|V1 çœwS/ çǧ‡g(êÿ«ÿmÿ%ÿ ÿèþµþþQþ2þ|þvþuþuþuþuþuþuþuþuþvþ|þ”þÐþ ÿJÿ†ÿ±ÿÜÿ2Pm‹©±¸ÀȬ�uY-Ôÿ¨ÿwÿFÿÿäþ´þƒþSþ#þþþþþþ†þÿ²ÿHKKKKKKKK¸ÿ"ÿŒþþ þ1þPþwþžþÆþíþ ÿ)ÿGÿeÿ†ÿ§ÿÉÿêÿ .Qs–¹Ý$Hm‘¶Û%Lt›Â7÷Ô±‹fAóΨƒ_;óÖ¶–vW:Çÿ!ÿôþÚþ»þ�þWþ%þ þ‹þ€þþþþþþþþþþ�þ‘þ¶þïþ6ÿwÿµÿàÿ 6Ig…¢¦®¶½¨ŒpU1Øÿ¬ÿuÿEÿÿãþ¡þgþ>þ)þ#þ#þ#þ#þ#þvþ ÿ¢ÿ8<<<<<<<<©ÿÿ}þ#þ+þ>þ_þ€þ§þÏþöþÿ2ÿPÿnÿŽÿ¯ÿÐÿñÿ4Wy�Àã,Qu™Àå /Z‚©ÐA$ãÁštO)Ù´�kG"þáÄ£ƒf%ÿÙþÅþ­þ�þgþ1þüýõýpþŠþ«þÊþ‡þ‡þ‡þ‡þ‡þ‡þ‡þ‡þ�þ­þàþ$ÿfÿ¥ÿâÿ 8L_}›ž¢ª±œ†kO+Ûÿ®ÿxÿBÿÿàþŸþfþ@þ.þ*þ*þ*þ*þ*þfþüþ’ÿ(++++++++˜ÿÿlþ+þ4þJþnþ�þ¯þ×þþþÿ:ÿXÿvÿ–ÿµÿ×ÿøÿ9\~¢Åé 2X| Çî8c�¶ÝL.óЪƒ]8翚vR. ìϱ‘tßÿ:ÿ­þ›þ„þgþDþþÛýçýZþ–þÿÿŽþŽþŽþŽþŽþŽþŽþŽþ’þ¦þÑþÿVÿ”ÿÒÿ;Obv“—›ž¦�{eI%Ýÿ±ÿ{ÿEÿÿÝþœþeþBþ4þ2þ2þ2þ2þ2þUþëþ�ÿ‡ÿñþ[þ3þ?þWþ}þ�þ¾þßþÿ$ÿBÿ`ÿ~ÿžÿ½ÿÝÿþÿ@aƒ§Ëî7]ƒ¨ÏõAl—ÃêZ<ã¼–pI!øÐ¨„`<úÝÀ¢C�ÿøþ„þsþ^þCþ$þ÷ýÀýáýNþ¨þ›þ™þ™þ™þ™þ™þ™þ™þ™þ™þšþ¥þÆþÿþIÿ‡ÿÅÿATh|�“–™�ˆr\G#ÿÿÛÿ·ÿ�ÿJÿÿÞþ›þgþHþ=þ<þ<þ<þ<þ<þHþÞþtÿ zÿäþNþ?þLþgþŽþ¯þÐþðþÿ/ÿMÿkÿ‰ÿ©ÿÈÿèÿ)Jj‹¯Òö@fŒ²Ù&Mx¤Ïúz^A#๓lDôÌ©…a=!çÉ(|ÿÓþtþaþMþ4þþðý»ýóýZþÐþ¼þ·þ·þ·þ·þ·þ·þ·þ·þ·þ·þ¼þÓþÿGÿŒÿÊÿFbu‰�¤§«¯žˆs]:òÿÎÿ‘ÿ[ÿ%ÿïþ®þ~þcþ[þZþZþZþZþZþZþäþzÿ€ÿêþZþ_þnþŒþµþÑþòþÿ3ÿSÿqÿ�ÿ¬ÿÍÿìÿ ,MnޝÓ÷?e‹±×þ%Ls�eI,éÃ�vO'ÿ×´‘mI-õ×%rÿÁþsþXþ<þþûýÕý¡ýïýQþÂþÇþ¾þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¼þ¾þÊþîþ-ÿqÿ¶ÿôÿ2Nj~‘™ £§–…p[7ïÿËÿ�ÿSÿÿæþ¨þ|þeþ`þ`þ`þ`þ`þ`þ`þÑþgÿýÿAø®5 ª�mÿ×þ`þfþxþ˜þÃþßþûþÿ=ÿ\ÿ{ÿ™ÿ·ÿ×ÿ÷ÿ7Wy™ºÞ&Jp—½ã 2YƒhL1îÉ£}U-Ý»˜uQ6ÿáE�ÿÖþ›þyþWþ3þ þàýµý þ`þÃþÒþÁþ½þ½þ½þ½þ½þ½þ½þ½þ½þ½þÃþÚþÿRÿ—ÿÛÿ5Rn‚‰‘˜›‹ziT0 éÿÅÿ‰ÿLÿÿÙþžþvþdþaþaþaþaþaþaþaþ»þQÿçÿêÿêÿêÿêÿêÿêÿêÿêÿWÿÁþbþjþþ¡þÍþéþÿ!ÿBÿaÿ€ÿŸÿ¾ÿÞÿþÿ=^ Áå .QxŸÅë:aˆ‚gK0ïɤW/ཛxU:ç|Áÿÿßþ¹þ’þjþ?þþþýPþžþôþÛþÃþ»þºþºþºþºþºþºþºþºþºþ¼þÈþëþ0ÿtÿ¹ÿýÿ6Rnv}…Œ{kZI%ßÿ»ÿÿBÿÿÉþ‘þnþ`þ^þ^þ^þ^þ^þ^þ^þ þ6ÿÌÿÏÿÏÿÏÿÏÿÏÿÏÿÏÿÏÿ<ÿ¦þ_þjþ‚þ¦þÓþïþ ÿ'ÿCÿbÿ‚ÿ¡ÿÀÿàÿ @a‚£Äè 1U|¢Éï>e�.㾘pH øÖ³�nV:ÚyÿQÿ(ÿÿþÕþ¨þwþþÒþÿ4ÿÿáþÒþÏþÏþÏþÏþÏþÏþÏþÏþÏþÏþÕþëþÿZÿ¤ÿçÿ8Uq†�•œ�€o^6ïÿËÿˆÿKÿÿÓþ�þþuþtþtþtþtþtþtþtþžþ4ÿÊÿÍÿÍÿÍÿÍÿÍÿÍÿÍÿÍÿ;ÿ¥þwþ„þžþÅþòþ ÿ&ÿBÿ^ÿ~ÿžÿ½ÿÜÿÿÿ>^‚£Äå .Rv�Ãê8`ˆ¯+ຕlCôѯŒjR:ëbØÿ°ÿ‡ÿ]ÿ1ÿÿÔþõþMÿ†ÿHÿÿçþÏþÈþÇþÇþÇþÇþÇþÇþÇþÇþÇþÉþÔþöþ+ÿpÿ´ÿéÿ;Wl�ˆ�„xgW.âÿ¾ÿ{ÿ8ÿüþ¿þŽþtþmþmþmþmþmþmþkþkþ}þÿ©ÿ¬ÿ¬ÿ¯ÿ¯ÿ¯ÿ¯ÿ¯ÿ¯ÿÿ†þqþ�þžþÆþóþ ÿ$ÿ?ÿ\ÿ|ÿ�ÿ¼ÿÛÿþÿ @`ƒ¦Èè 2Vz¡Èî=eŒ´+ߺ•lCòÏ­‹hP8 î¥6èÿ¿ÿ”ÿiÿ;ÿwÿÕÿ ÿaÿ%ÿôþÓþÅþÂþÂþÂþÂþÂþÂþÂþÂþÂþÃþÇþÛþÿ@ÿ„ÿ¹ÿïÿ$@Uj‡{ocR)Øÿµÿqÿ.ÿëþ®þ‚þnþiþiþiþiþiþiþCþCþCþÌþbÿeÿeÿŒÿŒÿŒÿŒÿŒÿŒÿùþiþpþ‚þ¢þËþ÷þÿ(ÿ@ÿ\ÿ}ÿ�ÿ¾ÿÝÿÿÿ"Ddˆ«Îï9]‚¨ÏõDl•¼.ã½—nEóѯŒjR:" ôÚˆfBóÿËÿ¡ÿúÿèÿ»ÿ„ÿMÿÿßþÇþÀþÀþÀþÀþÀþÀþÀþÀþÂþÉþÒþËþèþÿWÿŒÿÁÿ÷ÿ,AVk€th\P(ÿÿÖÿ®ÿkÿ'ÿäþ¡þzþkþhþhþhþhþhþMþþþþpþÿ ÿ ÿ^ÿ^ÿ^ÿ^ÿ^ÿ^ÿËþiþqþ•þ¸þÛþÿþÿ/ÿHÿ`ÿ€ÿ¡ÿÁÿâÿ'Il�³ÖùBgŒ²Ùÿ&NwŸÇ3 çÁœqHöÔ²�nYA)ú妇eAûÿÑÿ�ÿfÿ/ÿøþÏþÁþ¾þ¾þ¾þ¾þ¾þ¿þÅþÍþÙþçþÈþÓþøþ6ÿoÿ¤ÿÙÿ8MbwrfZNôÿÌÿ¤ÿaÿÿÛþ˜þuþiþhþhþhþhþhþ@þþþþ.þÄþÇþÇþ)ÿ)ÿ)ÿ)ÿ)ÿ)ÿ–þjþuþ›þ¾þâþÿÿ5ÿMÿfÿ‡ÿ¨ÿÈÿéÿ0Ruš¾á*Ns˜¾å 2[ƒ«Ó3 çÁœqFôÒ±�lXC+ýèÔ¾§ŒmO?&âÿ®ÿzÿCÿ ÿ×þ¿þ¸þ·þ·þ¸þ»þÃþÎþÛþëþüþÿÅþÙþÿIÿ‚ÿ·ÿìÿ?Tid_SGåÿ¼ÿ”ÿRÿÿÌþ‰þkþcþcþcþcþcþcþcþAþAþAþAþÇþËþËþìþìþìþìþìþìþcþfþuþšþÀþãþÿÿ6ÿNÿfÿˆÿªÿÊÿêÿ4VyžÄç 0UzžÅì9bгÛ3 çÁ›pFòЯŽkVB-ìØÄ­”y_G/óÿ¿ÿ‹ÿWÿ ÿåþÂþ³þ°þ³þ¹þÂþÏþÞþîþÿÿ'ÿ%ÿÅþëþ$ÿ\ÿ•ÿÊÿôÿF[VQL@Þÿ­ÿ„ÿBÿÿ¾þzþcþ^þ^þ^þ^þ^þ^þwþ±þ±þ±þ±þ±þ³þ³þ³þ³þ³þ³þ³þ³þ^þcþtþšþÀþåþÿ ÿ8ÿOÿgÿ‰ÿªÿÌÿìÿ6Z}¢Èî6[€¥Ìó@i‘ºâ-ổj?êȧ…dO:&þê×Ä«’y`G/þÿÊÿ–ÿbÿ.ÿóþÆþ¬þªþ±þ½þËþÛþíþÿþÿ%ÿ8ÿJÿÿ¿þøþ0ÿiÿ¢ÿËÿôÿGB=83Ñÿ ÿoÿ-ÿêþ¨þfþUþSþSþSþSþSþSþÞþÿÿÿÿÿÿÿŠþ{þ{þ{þ{þ{þSþ[þnþ”þ¹þÞþÿÿ3ÿJÿbÿƒÿ¥ÿÆÿèÿ 2V{ Æì6\�¦ÍôAj’»ä¯ˆ]2èÆ¥ƒnYD/ôáǯ•}fM5üÿÇÿ“ÿ_ÿ ÿêþÅþ¼þÓþãþôþÿÿ,ÿ?ÿQÿaÿpÿ~ÿÿÚþÿEÿˆÿÅÿîÿ@ID?:ÿÿÎÿ�ÿlÿ8ÿöþ´þrþdþbþbþbþbþbþŠþ ÿZÿZÿZÿZÿZÿZÿZÿÌþmþmþmþmþmþdþnþ…þ¨þÍþóþÿ3ÿKÿbÿyÿœÿ½ÿßÿ&Ko”ºß+Pu›Àç5\†®×¯ˆ`6 ë̪ˆs^I4 ÷äʱ˜hR:!ßÿ«ÿwÿ8ÿúþËþ¯þâþóþÿÿ,ÿ>ÿOÿ^ÿkÿuÿ}ÿ\ÿôþÞþÿTÿ‘ÿÎÿ÷ÿ (0+&ìÿ±ÿ€ÿPÿÿèþ¦þcþYþXþXþXþXþXþ¯þEÿÿÿÿÿÿÿÿñþ[þXþXþXþXþ[þhþ‚þ¥þÇþíþÿ-ÿHÿ_ÿwÿšÿ¼ÿÞÿÿÿ$Jo”¹ß*PušÀç6\†°Ù°‰b:ðа�ydN9%ûèε›‚lU?&äÿÃÿ�ÿQÿÿ×þ°þÎþÿÿ,ÿ=ÿMÿ[ÿfÿnÿuÿ}ÿ…ÿ«þ˜þåþ"ÿ^ÿ›ÿ×ÿ ÚÿŸÿeÿ4ÿÿÌþ˜þVþOþOþOþOþOþOþÕþkÿ¥ÿ¥ÿ¥ÿ¥ÿ¥ÿ¥ÿ¥ÿÿ�þOþOþOþOþTþcþ€þ£þÅþèþÿ(ÿCÿ^ÿvÿ˜ÿºÿÝÿþÿ$Jo”ºß*Pv›Àè8^ˆ²Û·�hAúÚ»›†pZE0òØ¿¥Œv_H2ðÿÏÿ®ÿrÿ6ÿúþ¾þ¡þ!ÿ1ÿBÿPÿ\ÿfÿmÿtÿ{ÿÿþkýþÄþõþ2ÿnÿªÿçÿïÿøÿÎÿ“ÿXÿÿêþ¶þƒþOþLþLþLþLþLþkþÿ—ÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿCÿ­þLþLþLþLþSþeþ„þ§þÉþìþÿ*ÿDÿ_ÿzÿ�ÿ¿ÿáÿ*OtšÀæ 1V|¢Çï>f�¹ã ƪ‚[4øØ¸œ†q[>)äʰ—|fO8üÿÛÿºÿŒÿPÿÿØþªþøþHÿTÿ_ÿfÿmÿuÿ|ÿ�þKýbýxýØýƒþ×þ ÿGÿ„ÿÀÿâÿëÿóÿûÿ¹ÿÿDÿ ÿºþ|þXþLþJþJþJþJþJþ™þ/ÿÅÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿqÿÛþJþJþJþLþUþjþŠþ¨þÊþíþÿ0ÿKÿfÿ�ÿ¤ÿÆÿéÿ 1V|¡Çí8_„ªÏû#JrŸÉóÔ·›sL0ôÔ¸›…pR4  ïÓ¹ …jT="åÿÅÿ–ÿhÿ,ÿðþ¹þÆþDÿ]ÿeÿlÿsÿÿŸýSýjý€ý–ý¯ýDþ·þëþÿ[ÿ˜ÿºÿÜÿäÿìÿ«ÿiÿ.ÿôþ¦þnþOþHþGþGþGþGþGþÅþ[ÿñÿ+++++++�ÿÿqþGþGþJþVþmþ�þ¬þÊþìþÿ/ÿOÿjÿ…ÿ©ÿÌÿîÿ6\�§Ìò>dаÖ-U|©Ö*âŨ‹dH,ðÓ¶š„gI+úÞ©ŽsXB& ðÿÏÿ ÿrÿDÿÿÍþ£þÿdÿjÿqÿþEý[ýrýˆýžýµýÌý þ—þËþÿþ3ÿoÿ’ÿ³ÿÖÿÞÿœÿZÿÿÞþ”þ`þIþDþDþDþDþDþ[þñþ‡ÿWWWWWWWÉÿ3ÿ�þDþDþIþWþpþ“þ±þÎþëþÿ.ÿOÿoÿŠÿ­ÿÐÿôÿ<a†¬Ñ÷Ci�¶Ü3_‡´á8îѵ˜{_C& íѵ˜z\?!éͱ–{`E*óÿØÿªÿ{ÿMÿÿäþ³þÅþ;ÿ›þAýLýbýxý�ý¥ý¼ýÒýéýþvþªþÞþÿFÿhÿŠÿ¬ÿÎÿŒÿKÿ ÿÇþ�þTþBþ?þ?þ?þ?þ?þ†þÿ²ÿH‚‚‚‚‚‚‚ôÿ^ÿÈþ?þ@þGþWþrþ—þ´þÑþïþ ÿ,ÿMÿmÿ�ÿ±ÿÔÿøÿ@e‹°Öû!Gm”»á 9d�½êDÅ«ŽrV3úÞ¸›}_@$ì̱–{\A& ïÿÁÿ’ÿdÿ/ÿùþÍþdþoýƒýšý°ýÇýÝýôý þ!þ7þNþqþ³þÒþÿIÿ€ÿ¢ÿÄÿæÿ¨ÿgÿ%ÿãþ þzþmþlþlþlþlþlþâþxÿ¤ÞÞÞÞÞÞÞPºÿ$ÿŽþmþwþ‰þ¦þËþåþÿ ÿ=ÿaÿ�ÿ¢ÿÂÿæÿ -Qu›Àå 0U{¢ÉïEpœÈÒ¸ž‚fC!çÂ�aC#ëË«‘uW7åÿÉÿ›ÿmÿ?ÿÿÔþRþÒý–ý¬ýÂýÙýïýþþ3þIþ`þwþ–þªþÐþÿGÿ~ÿ ÿÂÿ„ÿGÿÿÃþ…þeþ]þ]þ]þ]þ]þlþÿ˜ÿ.ÄþþþþþþþpÚÿDÿ®þ`þkþþžþÃþÝþøþÿ3ÿWÿzÿ›ÿ»ÿßÿ'Jo“¹Þ(NsšÁç=l˜ÃÝé�sQ. ïÊ¥bC$éÉ©‰nO0öÿÚÿ¾ÿ¢ÿtÿLÿÿÞþ°þ<þÄý¼ýÓýéýþþ-þCþZþpþ‡þ“þ‡þ¡þÖþ ÿCÿzÿœÿ^ÿ ÿãþ¡þiþPþKþKþKþKþKþŠþ ÿ¶ÿLâŽøÿbÿÌþPþ^þtþ”þ¸þÓþîþÿ&ÿJÿnÿ’ÿ²ÿÖÿúÿAf‹°ÕúDj�·Þ3b‘½êжœ‚_=øÓ®ˆcD%çǧ‡gH) ëÿÏÿ´ÿ˜ÿ|ÿKÿÿêþ¹þŽþ*þÏýäýúýþ'þ>þTþkþ|þ{þiþlþ{þ�þÔþ ÿ@ÿwÿ9ÿüþ¾þ€þPþ>þ;þ;þ;þ;þ;þ¨þ>ÿÔÿj:::::::¬€ÿëþ\þRþkþ‹þ¯þÊþäþÿþÿ>ÿbÿ†ÿªÿÎÿòÿ:_ƒ¨Íò<aˆ®Õü+Z‰¸¨„a?öѬ‡fG( éÉ©‰jK, ñÿÕÿ¹ÿ�ÿ|ÿLÿÿêþ¶þ�þ<þþ-þCþZþpþ…þ‹þ~þfþLþ3þrþ“þ¾þúþ<ÿdÿ>ÿÿÃþ…þZþMþLþLþLþKþKþËþaÿ÷ÿ�#]]]]]]]Ï9£ÿÿ‚þhþƒþ¥þÈþåþÿÿ6ÿ[ÿÿ¤ÿÈÿìÿ3W| Åê3X}¢ÉðDr¡Ð¼˜tR/ ⽘xW8ùÙ¹šzZ<äÿÉÿ­ÿŒÿkÿ:ÿ ÿÐþ¡þ‚þ>þMþcþzþ†þ�þjþQþ7þþþñýbþ�þÐþÿ>ÿÿôþ¶þxþSþKþJþJþJþJþJþ³þIÿßÿu EEEEEEE·!‹ÿøþnþmþŠþ­þÎþìþ ÿ%ÿ?ÿeÿ‹ÿ¯ÿÓÿ÷ÿ?c‡«Ðõ>b‡­ÒùLy¨×Ь‰eBöЪŠjJ+ ëË«‹lL-õÿÙÿ½ÿ�ÿ{ÿ[ÿ*ÿðþºþ�þwþoþ€þ�þpþVþ=þ#þ þñý×ý¾ýÞýWþ¬þæþÿõþÐþ«þmþOþJþJþJþJþJþJþšþ0ÿÆÿ\ò,,,,,,,žrÿáþ]þtþ“þ·þÕþóþÿ/ÿJÿpÿ–ÿ»ÿßÿ'Ko”¸Ü%In“¸Ý)Vƒ¯Þçà|X2 忟^>þÞ¾ž_@$ìÿÐÿ¯ÿŽÿmÿLÿÿçþµþƒþqþwþ^þDþ+þþøýßýÅý¬ý’ýzýÐýRþÂþøþÓþ®þˆþcþOþKþKþKþKþKþKþƒþÿ¯ÿEÛ‡ñÿ\ÿÍþdþƒþ¢þÀþßþýþÿ9ÿWÿ}ÿ¢ÿÈÿîÿ6Z~¢Æë3W| Åê5bŽ»èÿÙ¶’nF úÔ²’rR6öÖº›{\<çÿÃÿ¢ÿ�ÿ`ÿ1ÿÿþÌþšþyþOþ4þþþçýÎý´ý›ý�ýhýNýQýÇýSþÖþîþËþŒþ_þPþNþNþNþNþNþNþmþÿ™ÿ/ÅÿÿÿÿÿÿÿqÛÿGÿ»þnþ‹þªþÉþçþÿ,ÿJÿhÿ’ÿ¸ÿÞÿ(Lp”¸Ü$Hl‘µØý"Hn›Èôïʦ‚[3 æÅ¤„dH, ìд•uU5ýÿÙÿµÿ”ÿsÿCÿÿâþ¯þ†þfþþîýÕý»ý¢ýˆýoýUý;ý"ý ýAýÁýRþÑþ·þþZþOþOþOþOþOþOþOþUþëþ�ÿ­çççççççYÃÿ0ÿ§þuþ“þ°þÏþîþÿ<ÿZÿwÿ¢ÿÌÿòÿ<`„¨Ìð8\€¤Èë3X¥Òÿ,ỘpH!úÙ¸—v[?#ç˰�pP/ïÿËÿ§ÿ†ÿWÿ'ÿøþÆþ—þzþìýÃýªý�ýwý]ýCý*ýýöüÝüÅü8ýËýiþ¦þvþXþQþPþPþPþPþPþPþPþÔþjÿ–ÐÐÐÐÐÐÐB¬ÿÿ”þ~þœþ¹þ×þõþÿCÿjÿˆÿ²ÿÜÿ,Pu™½á(Mp”¸Üÿ"Ej‘·Þ AöЫƒ\4 ëɨ‡kP4üàÅ©‰hH(àÿ¼ÿ˜ÿhÿ9ÿ ÿÚþªþ†þþ˜ý}ýcýJý0ýýýüãüÉü°üžüÎükýþ”þlþTþPþPþPþPþPþPþPþPþ»þQÿçÿ}·······(“ÿÿ�þ…þ¢þÀþÝþûþ"ÿHÿoÿ–ÿÀÿêÿ?c‡¬Ðô;_ƒ¦Êî4Wz ÇîùÑ©�Y7ôÓºž‚gM1ùÖ¶•uG#ÿÿÛÿ´ÿ„ÿUÿ&ÿøþÏþ{þÑýŠýpýWý=ý#ý ýðüÙüÐüÓüãügýþ¾þžþŒþŠþŠþŠþŠþŠþŠþŠþŠþÛþqÿ�×××××××Iµÿ*ÿªþÈþãþÿÿ<ÿiÿ�ÿ¶ÿÝÿ 4^ˆ­Ñõ<`„§Êî5Wyœ¿ á¸�hF#áÈ®“w]D( èŤ„V)áÿ¹ÿ’ÿcÿ3ÿ ÿÝþ¨þ÷ý\ý?ý&ý ýòüÙüËüÊüÔüéüý@ýøý§þ“þ‡þ†þ†þ†þ†þ†þ†þ†þ†þ¾þTÿêÿ€ººººººº,šÿÿ­þÍþéþÿ"ÿ?ÿkÿ˜ÿ¿ÿæÿ@j”¸Ü$Hj޲ո?`�¤ÇðÇ�vS1íÔ»¡…lR8ùÕ±‘c6 åÿ½ÿ•ÿnÿ?ÿÿêþÄþþsýýóüÙüÆüÀüÇüØüñüý9ýeýßý’þˆþ€þþþþþþþþþŸþ5ÿËÿa››››››› ~ÿ÷þ¯þÑþìþÿ"ÿ@ÿlÿ™ÿÅÿìÿFs�Áå .Qt—»Ý#Ggˆ©Í%üÓª�^<÷ÞÄ«’x^E+äÀœoAæÿ¿ÿ—ÿpÿHÿÿÈþˆþHþ–ýîüÁü¶ü¹üÆüÝüûü ýIývý£ýÔý{þ}þwþwþwþwþwþwþwþwþwþ~þÿªÿ@zzzzzzzíÿ`ÿÜþ¯þÒþíþ ÿ$ÿ?ÿlÿ˜ÿÅÿñÿKx¥Éí5X{žÁä)LmŽ¯Ðª†dAçε—}cI%ݹ�c5áÿ¹ÿ’ÿkÿKÿ ÿËþ‹þÙý6ýÊüÒüåüý$ýLýwý¤ýÒýþý)þyþŽþ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þ‹þÿ¥ÿ;uuuuuuuéÿ^ÿÝþÌþñþÿ)ÿDÿ_ÿ‰ÿ¶ÿãÿ8e’¿á)Mq•·Ûþ!Cf†§È鱎kH%éз™{aG"ýÙµŒc5áÿ»ÿ“ÿlÿLÿ-ÿìþ¬þþ‚ýýçüý.ýXý…ý²ýàý þ1þRþmþþ~þ~þ~þ~þ~þ~þ~þ~þ~þ~þéþÿOOOOOOOÅÿ<ÿ¾þÈþðþ ÿ(ÿCÿ_ÿ‰ÿ³ÿàÿ 5^‹¸Ûý!Ei�°Ó÷=_ŸÀḕqN+ ïѸš|]DúÕ±ˆ^5áÿºÿ”ÿlÿMÿ-ÿ ÿÍþyþïývýý8ýeý’ýÀýëýþ7þTþhþsþpþpþpþpþpþpþpþpþpþpþpþÂþXÿîÿ((((((( ÿÿ¡þÅþíþ ÿ%ÿBÿ]ÿ‡ÿ±ÿÜÿ1Zƒ°Óõ<`„¨Êî5Xw—·Ø¿›xU1õ×¹›}^@öѬƒY0áÿºÿ“ÿmÿMÿ-ÿÿîþÃþtþþý—ýsý ýÌýöýþ;þRþaþeþeþbþbþbþbþbþbþbþbþbþbþbþ›þ1ÿÇÿ|ÿùþœþÂþêþÿ#ÿ?ÿ[ÿ…ÿ°ÿÚÿ-V¨Êí2VzžÂå -Pp�¯ÏÆ¡~Z7ôÖ¸’tV8ïÊ¥‡^4 ïÿÈÿ¢ÿ{ÿZÿ:ÿÿûþÐþ¥þ�þ+þËýÚýþ#þ=þOþWþXþXþWþVþVþVþVþVþVþVþVþVþVþVþuþ ÿ¡ÿÛÿÛÿÛÿÛÿÛÿÛÿÝÿZÿÚþ™þÂþëþ ÿ(ÿDÿ`ÿ„ÿ®ÿØÿ#Luž¿á&Nr–ºá(Kj‰©ÉÒ®‰fBùÛ½˜rT6îɤ†h?ùÿÝÿ¶ÿ�ÿoÿMÿ.ÿÿåþ·þ�þnþZþþ.þCþNþPþPþPþMþ?þPþPþPþPþPþPþPþPþPþPþPþPþßþuÿ®ÿ®ÿ®ÿ®ÿ®ÿ¯ÿ²ÿ1ÿ´þžþÉþñþÿ3ÿOÿkÿ�ÿ³ÿÝÿ(Iqš»Üÿ!Ho“·Þ)Mk‰©Éã¿›wS/ åÇ¢|W8ñͨŠlN%ìÿÏÿ©ÿˆÿgÿFÿ&ÿÿÏþ¡þ{þaþSþJþNþNþNþGþ7þ!þ þþOþOþOþOþOþOþOþOþOþOþOþ©þ?ÿyÿyÿyÿyÿyÿyÿ~ÿÿ†þ§þÕþýþÿ?ÿ_ÿ|ÿŸÿÃÿæÿ1Rsœ¼Ýþ Ho–ºá/Sq�­ÍöÒ­‰e@÷Ò¬‡b<ôÑ­�qS5üÿàÿÃÿ¢ÿ�ÿ`ÿ?ÿÿæþºþ�þlþXþOþNþBþ0þþþðýåýæýNþOþOþOþOþOþOþOþOþOþOþlþÿ<ÿ<ÿ<ÿ<ÿ<ÿ<ÿDÿÈþˆþ²þáþ ÿ+ÿLÿlÿ�ÿ°ÿÔÿøÿ<\}ž¿ß!Hp—¾å 3Zx–µÓ‘iE ûÓ®ˆcAùÕ¿ ƒdN1øÿÖÿµÿ”ÿsÿGÿÿîþÁþ™þþpþkþBþþ þþþþEþlþmþmþmþmþmþmþmþmþmþmþmþàþÿÿÿÿÿÿ%ÿ¬þ¯þÜþ ÿ3ÿXÿyÿšÿºÿÚÿýÿ!Ea�¢Ãâ$Dm•¼ã 2Y€ž¼Úù–oH#þÖ¯‰dBüØÁªŒnW@$åÿÂÿ¡ÿ€ÿUÿ)ÿüþÐþ¢þ‚þnþeþKþùýþþJþvþ¢þÍþ}þeþeþeþeþeþeþeþeþeþeþ›þÕþÕþÕþÕþÕþ×þãþŒþ±þàþÿ6ÿ[ÿ€ÿ¡ÿÂÿáÿ%Hd€¡Âá!Bk”»â 2Z€ž»Úø–oH!üÔ¬…_=ùÖ¿¨�s\E.ïÿÍÿªÿ‰ÿ^ÿ2ÿÿÚþ©þƒþjþ[þVþþKþvþ¢þÎþøþ ÿÙþaþXþXþXþXþXþXþXþXþXþYþ“þ“þ“þ“þ“þ—þ¦þ†þ®þàþÿ5ÿZÿ~ÿ£ÿÄÿäÿ#Fb~š»Ûú;cŒµÜ,U|™·Ôò—pI!úÒªƒ[9õÓ¼¥Žw`J3ùÿ×ÿµÿ’ÿfÿ:ÿÿãþ¿þœþyþUþKþIþ£þÎþïþÿÿ#ÿ/ÿ·þLþLþLþLþLþLþLþLþLþLþ`þ`þ`þ`þ`þfþwþ�þ®þÚþÿ3ÿXÿ}ÿ¡ÿÆÿæÿ%Ea}™µÔô3\„­Öþ&Ow•²Ðí‘nG ùÖ®†_>úؾ§�y_I2ùÿ×ÿ´ÿ’ÿiÿ=ÿÿæþ½þ™þvþRþ?þWþæþ÷þÿÿ+ÿ<ÿMÿ ÿ’þ=þ=þ=þ=þ=þ=þ=þ=þ=þ>þ>þ>þ>þ?þGþ[þ}þ­þÚþÿ2ÿXÿ}ÿ¢ÿÇÿåÿ$D^z–²Ðð.T}¦ÎôDlЍÅãŒiFøÔ±ŠbB"ÞÄ©’|bH1øÿÖÿ´ÿ’ÿiÿ@ÿÿéþÀþ—þsþPþ7þ>þ×þÿ"ÿ3ÿDÿUÿeÿ^ÿæþmþ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ.þ0þ;þRþzþ©þÙþÿ2ÿXÿ}ÿ¢ÿÇÿæÿ$D]w“°Íë *PužÆì:b€�»Ø†c@öÓ°�fE%ãɯ•~dJ0÷ÿÕÿ´ÿ‘ÿiÿ@ÿÿìþÃþšþpþMþ0þ"þµþ)ÿ;ÿLÿ\ÿmÿ~ÿ�ÿ9ÿÀþGþ þ þ þ þ þ þ þ þ þ þ þ#þ0þJþvþ¦þÕþÿ2ÿWÿ}ÿ£ÿÈÿæÿ#C]w‘­Êè&Kp–¿ä /Xu“±Î\9ôÑ®‹hH'çͳ™eK1õÿÓÿ²ÿ�ÿgÿ?ÿÿîþÅþ›þrþIþ*þþ“þ-ÿSÿcÿtÿ…ÿ–ÿ¦ÿŒÿÿšþ!þþþþþþþþþþþþ%þCþqþ¡þÐþÿ0ÿVÿ{ÿ¡ÿÇÿåÿ"A[u�©Çå Ek�¶Û&Lj‡¥Ã‘uS0 òÏ«ˆjI) éϵ›{aG- éÿÈÿ¦ÿÿVÿ.ÿÿÜþ²þ‰þ`þAþ*þŽþ'ÿ‡ÿ˜ÿ©ÿºÿÊÿÛÿìÿƒÿ ÿ�þþþþþþþþþþþ$þ7þZþ�þÀþïþÿOÿtÿšÿÀÿåÿ ?]tލÂÞü7X~£Éê5[‡kO, îÒ¯ŒmN.îδšzZ@&âÿÁÿŸÿxÿQÿ(ÿÿÖþ¬þƒþZþ:þ þlþÿžÿ°ÿÁÿÒÿâÿóÿÕÿ\ÿãþjþþþþþþþþþþþ.þVþ�þ¿þñþ!ÿQÿvÿ›ÿÁÿçÿ >\t‹¥¿Úö2Stš¿à'L|`D(éͱŽpQ2òÒ³™xX8üÿÚÿ¹ÿ—ÿpÿIÿ"ÿúþÐþ¦þ|þSþ0þþIþßþyÿÇÿØÿèÿùÿ (­ÿ4ÿ»þBþþýþýþýþýþýþýþýÿý þ%þQþ‹þ¾þðþ"ÿRÿwÿœÿÂÿèÿ <[r‰ ºÖò +LmŽ´Õö=qU9åÉ®’sU6÷ظ˜xW7õÿÓÿ²ÿ�ÿiÿBÿÿôþÊþ þwþMþ#þþ%þºþVÿßÿðÿ!2C‡ÿ ÿ”þþîýîýîýîýîýîýñýþýþNþ‹þ½þïþ"ÿTÿyÿžÿÄÿéÿ!>Zqˆ ·Òî %Fg‰ªËí/bJ.ößçŒoP2òÒ²’pP0íÿËÿ©ÿ‡ÿ`ÿ9ÿÿëþ¼þ’þhþ>þþ÷ýþ˜þ4ÿÏÿ +;L\WÚÿZÿÕþIþáýáýáýáýáýáýäýõýþMþ�þ¿þñþ#ÿUÿzÿŸÿÄÿêÿ!=Yn…�´Îé ?`�¢Áã%U=% íÖ¿£‡kN/ðϯ�mJ* çÿÅÿ£ÿ�ÿZÿ3ÿ ÿåþµþ…þ\þ2þ þêýáýwþÿ¯ÿ&6GWhv~‹ÿþþpþâýÖýÖýÖýÖýÖýÛýîýþOþ‘þÃþõþ'ÿYÿ~ÿ¢ÿÇÿíÿ">Zo„œ³Íç<Z|�¼ÛüK3çи¡…iM0ðÏ®�lI'äÿÂÿŸÿ~ÿVÿ/ÿÿáþ±þ‚þRþ(þþýàýÑýZþùþ“ÿ-UerxxtGµÿ(ÿšþ þÍýÍýÍýÍýÎýÔýìýþTþ˜þÊþüþ-ÿ`ÿ„ÿ©ÿÍÿòÿ (C_t‰žµÏé<[y›¹ÙøB*úâË´œ…iL/òѰ�mJ(ãÿÀÿžÿ{ÿTÿ,ÿÿÞþ®þþPþ þôýÖýÉý>þÞþxÿnrqmieaáÿRÿÄþ7þÆýÆýÆýÆýÇýÏýþ8þlþ þÒþÿ5ÿgÿŒÿ°ÿÔÿùÿ/IdyŽ£¸Òì>\z™¸×ö:$ ôÜÆ¯˜�fI-ñЯ�kH%áÿ¿ÿœÿyÿSÿ,ÿÿÝþ¦þwþGþþìýÐýÃý$þÂþTÿáÿggc_[WSÿñþcþÕýÁýÁýÁýÂýÎýþBþvþªþØþ ÿ;ÿmÿ�ÿµÿÙÿýÿ1Lgz�¤¹Ñë@^}›½Üû4ðØÂ­•~dI,ðЯŽkH%áÿ¿ÿœÿzÿTÿ-ÿÿÞþ¨þpþAþþæýËýÀýþý�þÿ›ÿ!\XTPLHC´ÿ ÿ’þþ¾ý¾ý¾ýÀýÏýþNþ‚þ¶þäþÿDÿvÿ˜ÿ»ÿàÿ6Ql‘¦»Ôì Ac�ŸÁã!1íÕÀª•}cI.ñѱ‘mK'ãÿÁÿŸÿ}ÿVÿ/ÿ ÿâþ«þtþ=þ þãýÉý¾ý¿ýKþÐþVÿÜÿSOJFB>:çÿRÿÃþ5þ½ý½ý½ýÀýÒýþQþ�þÅþóþ ÿNÿ€ÿ£ÿÅÿèÿ %?Wr…˜«ÀÙñ #Ef‡¦Çé *,ÿéÒ½§‘|aG-òÒ²’oL)äÿÂÿ ÿ~ÿWÿ1ÿ ÿäþ­þvþ?þþÞýÆý¼ýÂýþ‹þÿ–ÿD@<840ŠÿóþdþÖý»ý»ý¿ýÔýþSþ“þÒþÿ-ÿ[ÿ‰ÿ¬ÿÏÿñÿ-F_x‹ž±ÄÜõ &GiŠ«Íï2*ýçÑ»¦�{aG,òÒ²’nK(äÿÂÿ ÿ~ÿXÿ1ÿ ÿåþ©þqþ;þþÜýÆý½ýÅýÅýGþÍþRÿØÿ<84/+'#½ÿ.ÿ–þþ»ý»ýÁýÚýþ_þžþÞþÿ3ÿaÿŽÿ¯ÿÑÿôÿ.G`yŠ�°ÃÜõ %KmޝÕ÷;)üåϺ¤�y`F,ñÒ±‘nJ'ãÿÂÿ ÿ~ÿXÿ2ÿ ÿåþ©þmþ6þÿýÚýÇý¾ýÇýÇýþ‰þÿ”ÿ/+'#ïÿaÿÊþ:þ»ý»ýÃýàý%þkþªþéþÿ8ÿfÿ”ÿ´ÿÔÿ÷ÿ1HazŒ�°ÃÛô %Kp’³Ùÿ!C'úä͸£Žx_E,ñѱ‘nJ'ãÿÁÿ ÿ~ÿXÿ2ÿ ÿåþ©þmþ1þûýØýÉýÄýÈýÈýÈýEþËþQÿÖÿ'#”ÿÿlþÞý»ýÅýæý+þqþ¶þõþÿDÿlÿ™ÿ¹ÿÙÿùÿ4Kc|�ž¯ÂÛó $Jp–·Ý*K'úäι£Žy_F,óÓ³“oL)äÿÂÿ¡ÿ€ÿZÿ4ÿÿèþ¬þpþ4þøýÚýÐýËýËýËýËýþ‰þÿ•ÿ Êÿ<ÿ«þþ¾ýÊýîý3þyþ¾þÿ+ÿRÿyÿ¡ÿÁÿáÿ!8Pg�¡³ÄÜõ &Lq—½ã 0V'ùãÍ·¡Œw]C*ðа�mI&áÿÀÿŸÿ~ÿSÿ-ÿÿàþªþnþ2þöýÞýÚýÐýÐýÐýÐýÐýIþÏþTÿÚÿ sÿàþ;þÃýÑýðý/þuþºþÿþ(ÿOÿwÿžÿ½ÿÝÿýÿ5Md|ŽŸ°ÁÚó $Kq—¼ä 1W)úäθ¡Œw]C)ðϯ�lH%áÿ¿ÿžÿ}ÿRÿ'ÿÿÛþ¤þnþ2þöýäýåý×ý×ý×ý×ý×ý þ�þÿ›ÿ ÿÿôÿ™ÿýþ^þÎýÚýôý3þsþ¸þýþ&ÿNÿvÿ�ÿ½ÿÜÿüÿ4KczŒŸ°ÁÚó $Kr˜¾æ 4Z0êÔ¾§‘|bH.ôÔ´”pM)åÿÄÿ£ÿ�ÿVÿ+ÿÿÚþ¤þmþ7þûýïýðýáýáýáýáýáýáýVþÜþaÿçÿûÿëÿØÿ°ÿ ÿgþåýéýýý<þ|þ¼þÿ)ÿRÿzÿ¢ÿÁÿàÿÿÿ 7Og~�¢´ÅÞ÷)PwŸÄì<b:# ôÝǰš„jP6üÛ»›wT0 ìÿËÿªÿ‰ÿ^ÿ3ÿÿÝþ¦þpþ9þþûýûýîýîýîýîýîýîýþ¤þ*ÿ¯ÿòÿÝÿÆÿ¬ÿ�ÿÿiþúýùý þHþˆþÇþÿ0ÿXÿ€ÿ©ÿÈÿçÿ&>Um…—©»Íæÿ1X§ÎöEmG+üåɳ�†kQ7þÞ¾ž|Y6ðÿÏÿ®ÿ�ÿ\ÿ1ÿÿÛþ›þZþ(þþþþýýýýýýýýýýýýýýmþìþgÿßÿåÿÍÿ²ÿ–ÿwÿXÿÿhþþþþ6þqþºþþþ)ÿRÿzÿ¢ÿÂÿáÿ>Vm… ²ÄÖó %>d‹³Ú)PxX<ñÕ¹£�qU;!åŤƒb>ùÿ×ÿ¶ÿ–ÿdÿ4ÿÿÞþ�þ_þ1þþþþþþþþþþþ%þ›þÿÿ»ÿžÿÿ_ÿ>ÿÿýþjþþþþ9þpþ¶þúþ$ÿOÿwÿ ÿ¿ÿÞÿýÿ;ZrŠ¥ÀÒä6OuœÃê8_‡iM1þâÇ«•y]A' ëͬ‹jI%áÿÀÿŸÿnÿ=ÿ ÿáþ þdþ9þ'þ#þ#þ"þþþþþþþþ8þ¦þÿ}ÿeÿDÿ$ÿÿãþÄþrþ#þ#þ(þ>þoþ±þöþ!ÿKÿvÿžÿ½ÿÜÿûÿ9Xw�ªÅáó,Ha‡­Ôû"Ho—}aE) ñÖºž‚fK/òÔ¶•tR1îÿÌÿªÿyÿHÿÿæþ¥þkþDþ3þ1þ1þ1þ/þ/þ/þ/þ/þ/þ/þ/þ4þ�þÿ)ÿ ÿéþËþ®þ“þ{þ1þ1þ3þFþrþ°þôþÿIÿtÿŸÿ¾ÿÝÿüÿ:Xw–±Ìè <Xu›Âè5[‚©ž|`D(êϳ•z^B&ê̯�lK+ çÿÆÿ¦ÿuÿDÿÿªþsþMþ>þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þŒþìþÎþ²þ—þþjþYþ<þ<þ>þNþxþ³þÿ/ÿZÿ…ÿ°ÿËÿêÿ (Nl‹ªÎê @]z–¼â.T{¢ÉxW5ýÛºž‚dF+ôغœ~a@ÿÿßÿ½ÿ›ÿ|ÿ\ÿ+ÿúþÿðþ´þsþ;þþþþþþþþþþþþþþ<þSþ<þ(þþ þþþBþ�þÉþ ÿ2ÿÿÿ$ÿOÿzÿ–ÿ²ÿÐÿðÿ:YxœÁÜø8Tq—¼ã /U|¢‘oN,îÌ«�qT6ÿãÈ©ŒoQ0ñÿÑÿ¯ÿ�ÿpÿPÿÿ"ÿúþÃþƒþIþþþþýþýþýþýþýþýþýþýþýþýþýþý!þþþþþýþ þRþ”þÛþÿ6ÿ&ÿ7ÿGÿXÿ‚ÿžÿºÿÖÿõÿ?dƒ¨Íò -MnаÖû"Hn”º®ŒjI'ä ‚eG)òÖ»ž€cF&çÿÇÿ§ÿˆÿhÿHÿÿíþ¿þ’þVþ%þþýýüýüýüýüýüýüýüýüýüýüýüýüýýýüýüýýýþ)þaþ¦þÐþúþ#ÿMÿ^ÿnÿ~ÿ�ÿ«ÿÆÿâÿþÿ#Hn“¸Ý&Fg‡§Íò>dаÖfAýÜ»�aE*óÖ¹›~_@ ãÿÃÿ£ÿƒÿ_ÿ1ÿÿÖþ¢þoþMþ?þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ?þNþuþ¯þêþ ÿ3ÿ]ÿ‡ÿ—ÿ§ÿ¸ÿÈÿãÿÿÿ7]‚¨Íõ>c†§Çç4ZgBûÙ¸˜z\@$ìв•xZ;üÿÞÿÀÿ ÿ€ÿ\ÿ8ÿ ÿÜþ«þvþRþAþ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þ=þAþSþ}þºþðþÿ0ÿYÿƒÿ“ÿ¢ÿ³ÿÄÿÞÿúÿ1W~£Èð=a…¨Éé8]ƒkF ûÙ¹˜wZ=!é̯’uW8úÿÜÿ¾ÿ ÿ�ÿ\ÿ8ÿÿæþ²þ}þWþDþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þDþYþƒþÀþùþÿ8ÿXÿ‚ÿ’ÿ¡ÿ±ÿÂÿÝÿøÿ.U{¢Çï>c‡ªÎî<d‰qL&Ü»šzY= èË®‘tV7úÿÜÿ¾ÿ¡ÿƒÿ^ÿ:ÿÿñþÇþ�þsþIþEþEþEþEþEþEþEþEþEþEþEþEþEþEþEþIþxþ¦þÕþÿ$ÿDÿcÿƒÿ“ÿ¢ÿ²ÿÂÿÝÿøÿ.T{¢Èð?gŠ®ÑõCk’lE ûÕ³’qP4ûßæ‰lP1ôÿÛÿ¾ÿ ÿ‚ÿbÿ>ÿÿõþÌþ¢þxþNþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþNþvþ¥þÔþÿ"ÿBÿaÿ�ÿšÿªÿ¹ÿÉÿæÿ7\‚©ÏöEm’µØüDk’e?óΫ‰hG* ñÕ¹�€cG* íÿÔÿ¼ÿžÿ€ÿaÿAÿÿøþÏþ¦þ|þRþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþRþzþ£þÒþÿ ÿ?ÿ_ÿ~ÿ—ÿ°ÿÀÿÏÿíÿ %@d‰¯Öü#Jr–»ß#Cj‘]7ëÅ£€]= æÊ®’vY= åÿÌÿ³ÿ›ÿ}ÿ]ÿ>ÿÿúþÑþ¨þþUþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþUþ~þ¦þÏþýþÿ<ÿ[ÿ{ÿ“ÿ¬ÿÅÿÕÿòÿ-Gl�´Û(Nv›¿ã'Hi�W1 ä¾›xV3úÝÀ¤ˆlP4úÿÞÿÅÿ­ÿ”ÿ{ÿ\ÿ<ÿÿýþÔþ«þ‚þYþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþYþ‚þªþÒþûþÿ:ÿYÿxÿ‘ÿªÿÂÿÛÿøÿ3Pt™½á.U{ Äè .No�Q*Þ¸”qN+òÕ¸ž‚fJ/öÿÙÿÅÿ¬ÿ“ÿ{ÿ^ÿ?ÿÿÿ×þ®þ…þ\þWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþ\þ€þ¨þÐþùþÿ8ÿXÿwÿ˜ÿ±ÿÊÿâÿ<Z| Äè4[�¦Êî,MmŽI#ýÖ°ŒhE#éͰ•z^B' ïÿÓÿ¿ÿ«ÿ’ÿyÿ]ÿAÿ!ÿÿÙþ¯þ‡þ]þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ]þ�þ¥þÍþöþÿ6ÿVÿuÿ–ÿ·ÿÐÿéÿ (Ec…§Ëï9`†«Ïó1KkŒBõϨ„a<ýáĨ�rV: êÿÍÿ¹ÿ¤ÿ�ÿxÿ[ÿ?ÿ#ÿÿÚþ±þˆþ_þ[þZþZþZþZþZþZþZþZþZþZþZþZþZþ[þ_þƒþ§þÊþóþÿ4ÿTÿsÿ”ÿµÿ×ÿðÿ.Nk�¯Ñö@d‹°Ôø6Pi‰:íÇ¡}Y5õØ»Ÿ„iN3ýÿâÿÇÿ³ÿŸÿŠÿvÿZÿ=ÿ!ÿÿÜþ³þŠþaþ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þaþ…þ©þÌþðþÿ1ÿQÿqÿ’ÿ³ÿÕÿöÿ5Ut–¸Úü!Fk�µÙý";Un‡<ïÈ¢~Z6õÙ¼ …jO4ýÿâÿÈÿ²ÿžÿŠÿuÿZÿ>ÿ"ÿÿÞþµþŒþcþ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þ^þcþ†þªþÍþñþÿ0ÿPÿqÿ’ÿ³ÿÔÿöÿ5Tt•·Ùû Ej�´Øý"<Un‡>ïÉ¢~Z6õÙ¼Ÿ„jN4ýÿâÿÇÿ²ÿœÿˆÿtÿXÿ=ÿ!ÿÿÝþ¶þŒþdþ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þdþ†þªþÍþñþÿ/ÿOÿpÿ‘ÿ²ÿÓÿôÿ4Ss”¶ØúCh�²×ü :Tm†@ðÉ£~Z5õؼŸ„iN3ýÿâÿÆÿ±ÿœÿ†ÿrÿVÿ;ÿ ÿÿÜþµþ�þdþ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þ`þdþ‡þªþÍþñþÿ/ÿNÿnÿ�ÿ±ÿÒÿóÿ2Rq“´ÖøAf‹°Õú8Rl†Bóˤ[7õÙ½ …jO4ýÿâÿÇÿ±ÿœÿ‡ÿqÿVÿ;ÿÿÿÝþµþ�þfþbþbþbþbþbþbþbþbþbþbþbþbþbþbþbþfþ‰þ¬þÏþòþÿ0ÿOÿnÿ�ÿ±ÿÒÿóÿ2Qq“´Ö÷@eНÔù8Rl†H÷Ш„_;ùÝÀ¤‰nS8ÿÿäÿÉÿ­ÿ˜ÿ‚ÿmÿRÿ7ÿÿÿÞþ·þ�þhþdþcþcþcþcþcþcþcþcþcþcþcþcþcþdþhþŠþ­þÐþôþÿ0ÿNÿnÿŒÿ­ÿÎÿðÿ.MlޝÑò;_„©Îó6Pj„O%ûÔ­ˆc?þáŨ�rW;æÿËÿ¯ÿ“ÿ~ÿhÿNÿ4ÿÿýþÛþ¹þ‘þjþeþeþeþeþeþeþeþeþeþeþeþeþeþeþeþjþ�þ¯þÒþõþÿ/ÿNÿmÿ‹ÿ©ÿËÿìÿ )Hh‰«Ìí5Z£Çí0Nh�V,رŒhCåɬ‘vZ?"èÿÌÿ±ÿ•ÿzÿdÿJÿ0ÿÿúþØþ¶þ”þlþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþlþŽþ±þÔþöþÿ0ÿNÿlÿ‹ÿ©ÿÇÿèÿ&Dd…¦Çé 0Ty�Âæ )Ge\2ßµ‘lG#éͰ•y^C& ëÿÎÿ²ÿ—ÿ{ÿ`ÿFÿ+ÿÿ÷þÕþ³þ�þnþiþiþiþiþiþiþiþiþiþiþiþiþiþiþiþnþ‘þ³þÕþøþÿ2ÿOÿlÿŠÿ©ÿÇÿåÿ"A_€¡Ãä+Os—¼á#A_}a5 ⸔oK& íг˜}aF' íÿÐÿ¯ÿ”ÿxÿ]ÿCÿ)ÿÿôþÖþ´þ’þpþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþpþ’þ´þ×þúþÿ3ÿPÿmÿŠÿ¨ÿÆÿåÿ"@_€¡Âã)Mq”¹Ý"@^|e:å»—sN) ðÓ·›€eI+ îÿÑÿ±ÿ‘ÿuÿYÿ@ÿ&ÿ ÿñþÔþ¶þ”þqþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþqþ”þ¶þÙþûþÿ5ÿQÿoÿ‹ÿ¨ÿÆÿåÿ"A_ Áã'Ko’µÚÿ?]{i=ç½™tP,òÕ¹�‚gL-ïÿÑÿ±ÿ‘ÿqÿUÿ;ÿ"ÿÿîþÐþ²þ•þrþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþrþ•þ·þÙþûþÿ5ÿRÿoÿŒÿ¨ÿÅÿãÿ!?^ŸÀá%Gk�²Öú:Zxk@龚vQ-ô׺Ÿ„hM.ðÿÑÿ±ÿ�ÿpÿPÿ6ÿÿÿéþËþ®þ�þrþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþrþ”þ¶þÙþûþÿ5ÿQÿnÿ‹ÿ¨ÿÄÿáÿ=\|�¾Þ"EgŠ®Òõ5Uuf=æ»—sO+ ñÔ·›€dI* ìÿÍÿ¯ÿŽÿnÿNÿ5ÿÿÿèþËþ­þ�þrþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþrþ•þ¸þÚþüþÿ9ÿVÿsÿ’ÿ¯ÿËÿèÿ'Ed‚¢Ãã$Fh‰­Ðô3Ssb8㸔qL( îÑ´˜|`E&èÿÊÿ«ÿŒÿlÿLÿ3ÿÿÿçþÊþ­þ�þrþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþrþ•þ¹þÛþþþÿ>ÿ[ÿxÿ—ÿ¶ÿÓÿðÿ.MlЍÈè%GjЬÏò1Qq]3 ß´‘mJ%ëα•y\A"åÿÆÿ§ÿˆÿiÿIÿ1ÿÿÿæþÉþ¬þ�þqþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþqþ•þ¹þÝþÿþÿ?ÿ_ÿ|ÿ›ÿ»ÿÚÿ÷ÿ6Ut’°Íî *IkŒ­Îñ0OoX.Û±ŽjG#èË®’vY=áÿÂÿ£ÿ„ÿfÿGÿ.ÿÿþþåþÈþ«þŽþqþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþqþ•þ¸þÜþÿ ÿ@ÿaÿ�ÿ ÿÀÿßÿþÿ=\|š¸Õó0Nl�®Ïð.NmP)ÿÕ«ˆeAþáæˆkO3÷ÿØÿ¹ÿ ÿ�ÿcÿDÿ/ÿÿþþåþÈþ«þŽþqþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþqþ˜þ»þßþÿ)ÿJÿjÿŠÿ­ÿÌÿëÿ +Jj‰ ¾Ûù-Ki‡©Éë *IiI!úЧƒ`=úÚ½Ÿ�bF) ïÿÐÿ±ÿ˜ÿÿ`ÿAÿ-ÿÿÿþçþÉþ¬þ�þrþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþrþ™þ¿þãþÿ-ÿTÿtÿ•ÿ·ÿÙÿøÿ8Yx—®Åã+Ig†¤Åæ'FeBóÌ¢[8õÕ¶™z[= æÿÉÿªÿ‘ÿwÿ^ÿ?ÿ*ÿÿÿèþËþ­þ�þsþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþsþšþÁþçþ ÿ1ÿXÿÿŸÿÁÿãÿ%Ef†¦½Óê2Gf„¢Áá"Ba;ìÅ�zW3ñѱ’sU6úÿÝÿ¿ÿ¢ÿ‰ÿoÿVÿ=ÿ(ÿÿþþéþÌþ¯þ‘þtþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþtþ›þÁþèþÿ5ÿ\ÿƒÿ©ÿËÿíÿ2Ss”´Ëáø$9Od‚¡¿Ýý>^6èÁ™wS0 ìÌ­�mN0ôÿ×ÿºÿœÿ‡ÿnÿTÿ;ÿ(ÿÿþþéþÌþ®þ‘þtþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþtþ�þÃþêþÿ<ÿbÿˆÿ¯ÿÓÿöÿ:[|œ½Ïæý#8Nc�¼Úú;[1 æ¾—tQ. êÉ©ŠiI* ïÿÒÿµÿ˜ÿ‚ÿlÿSÿ:ÿ'ÿÿÿþêþÌþ¯þ’þuþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþuþ�þÆþíþÿ>ÿiÿ�ÿ¶ÿÚÿþÿ!Cd†¦ÆÙì(8Mb›¹Øø9Z+ຓpM+æÅ¤…eD$éÿÌÿ°ÿ“ÿ}ÿgÿQÿ8ÿ%ÿÿÿþêþÍþ¯þ‘þtþpþpþpþpþpþpþpþpþpþpþpþpþpþpþpþtþ�þÆþïþÿ@ÿkÿ•ÿ¼ÿàÿ)Kl�¯Ïâô-=La}š¶Ôõ7W&Úµ�lJ'ã¡€`@ÿÿâÿÆÿªÿ�ÿwÿbÿLÿ6ÿ#ÿÿýþêþÌþ¯þ’þtþpþoþoþoþoþoþoþoþoþoþoþoþoþoþpþtþ�þÆþîþÿBÿmÿ—ÿÂÿæÿ /St–·Øëý"2AP`|˜µÑò3T'Ü·‘oL)çÆ¥„eD$çÿÊÿ®ÿ‘ÿzÿdÿNÿ8ÿ#ÿÿýþêþËþ®þ�þsþnþnþnþnþnþnþnþnþnþnþnþnþnþnþnþsþšþÂþëþÿ=ÿhÿ“ÿ¾ÿâÿ*Np’³Ôìÿ$:IXh…¡¾Úú;\(Þ¹“qO, éʨˆhJ) ìÿÎÿ²ÿ–ÿ~ÿgÿQÿ;ÿ%ÿÿüþêþËþ¬þ�þrþmþmþmþmþmþmþmþmþmþmþmþmþmþmþmþrþ˜þÀþèþÿ:ÿdÿŽÿ¹ÿÝÿ&JlޝÐè%;Q`p�ªÆâ"Cd&ݹ“qN, êʪ‰jK, ïÿÒÿ´ÿ˜ÿ€ÿiÿQÿ<ÿ&ÿÿúþçþÉþªþŒþnþjþjþjþjþjþjþjþjþjþjþjþjþjþjþjþnþ•þ¼þãþ ÿ5ÿ^ÿˆÿ²ÿ×ÿûÿDe‡©Êâú%;Qfv“°Íé )Hi%Ü·“qN, êÊ«‹lM.òÿÔÿ·ÿšÿ‚ÿkÿTÿ<ÿ&ÿÿûþåþÆþ¨þŠþkþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþkþ’þ¹þàþÿ0ÿYÿƒÿ¬ÿÐÿôÿ=_€¢ÄÜô %;Pf|™¶Óð/Oo&à»—uS1òÒ²’uW7ûÿÝÿÀÿ£ÿˆÿqÿYÿAÿ&ÿÿûþåþÃþ¤þ…þgþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþgþ‹þ²þÙþÿ%ÿNÿwÿ¡ÿÃÿçÿ 0Rs•·Úó #F[q‡¦Ãáý=]|'俚yX6öÚºš}`A"æÿÉÿ¬ÿ‘ÿvÿ^ÿGÿ,ÿÿúþäþÂþ þ‚þcþ_þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ_þcþ‡þ«þÒþùþÿBÿlÿ•ÿ¸ÿÚÿþÿ"DfˆªÍð !Df|’²Ñî *JjŠ*çÅ ^=ýàã‡iM-ñÿÓÿ¶ÿ›ÿ�ÿfÿOÿ3ÿÿüþæþÄþ¢þþaþ\þIþIþIþIþIþIþIþIþIþIþIþIþIþ\þaþ…þ©þÍþôþÿ=ÿbÿ‹ÿ®ÿÑÿóÿ9[}ŸÂå !Dg‰Ÿ¿Þý:Yy™/ ëʨ‡fD#é̯’uX;ÿÿáÿÃÿ¨ÿŽÿsÿXÿ<ÿ!ÿÿêþÈþ¦þƒþaþ\þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ/þ\þaþ…þ©þÍþñþÿ:ÿ_ÿ„ÿ¦ÿÉÿëÿ0Rt–¹Ü#Fh‹®Îí ,LkŠª3ñÏ®ŽmK*òÕ¸œbE& ëÿÍÿ°ÿ•ÿ{ÿ`ÿ@ÿ%ÿ ÿíþÇþ¥þƒþaþKþþþþþþþþþþþþþþKþaþ„þ¨þÌþðþÿ7ÿ\ÿ�ÿ¢ÿÄÿçÿ +Lo‘¹Üÿ#Kn‘´Õô3Sr‘±5õÓ²’rQ0ùܾ£†jL.òÿÔÿ¸ÿœÿ�ÿfÿFÿ&ÿ ÿïþÉþ£þ�þ^þ@þþþþþþþþþþþþþþ@þ^þ‚þ¦þÊþîþÿ2ÿWÿ|ÿœÿ¾ÿàÿ$Eg‰²Úý Ir•¸Øú8Xw–¶3óÓ±‘rR1úÞÁ¥‰mP2õÿ×ÿ»ÿŸÿƒÿhÿHÿ(ÿÿíþÇþ¡þ{þXþKþþþþþþþþþþþþþþKþXþ|þŸþÃþçþ ÿ+ÿMÿrÿ“ÿ´ÿÕÿøÿ:[}¦Ï÷Cl•·Øù:Yx—·- íÍ­�mN.÷ÜÀ¤ˆlP2õÿ×ÿ»ÿžÿ‚ÿfÿFÿ&ÿÿæþÀþšþtþNþJþDþDþDþDþDþDþDþDþDþDþDþDþDþJþNþrþ•þ¸þÜþþþ ÿCÿeÿ†ÿ§ÿÈÿéÿ ,Mn–¿è9bгÔõ7Vv•´6ÿÿôþÔþ´þ”þuþUþ5þþüýàýÅý¦ýŠýnýRý5ýýøüÚüÀü¤üˆülüJü*ü üêûÀûšûtûNûcþ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þ•þcþ;þLþkþ˜þáûü&üIüküˆü©üÊüëü ý,ýMýný”ý½ýæýþ4þ]þ†þ®þÏþðþÿ2ÿRÿqÿ�ÿ¯ÿ7üüõûÕûµû•ûuûUû5ûûùúÞúÃú¤ú…úiúMú0úúôùÖù½ù£ù‡ùkùIù'ùùçø½ø“ømøGøÉþúþúþúþúþúþúþúþúþúþúþúþúþúþÉþ7þ2þSþ�þßøù%ùHùjù‡ù¤ùÅùæùú%úFúgúŽú´úÝúû+ûQûzû£ûÃûäûü&üEüeü„ü£ü6ùùôøÓø³ø“øsøTø4øøø÷Ú÷¾÷ ÷�÷c÷G÷)÷ ÷îöÐö¶ö�ö„ögöFö$ööâõ¸õŽõdõ>õ*ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\ÿ*ÿ™þþ8þiþÚõþõ!öEögö„ö¡ö¾ößöþö÷>÷_÷…÷«÷Ò÷ú÷ øFømø–ø¶øÖø÷øù8ùWùvù–ùG&㢂cC%éˬŽpQ4øÿÛÿÂÿ¨ÿŽÿuÿSÿ2ÿÿîþÄþšþpþFþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþFþXþ|þ®þçþ ÿ.ÿRÿuÿ’ÿ¯ÿÌÿéÿ(Hg�´Ú&Ls™ºÚú:Zz™P. êɨˆhI* ìÍ­ŽnN/ôÿÙÿÀÿ¨ÿ�ÿyÿ`ÿEÿ$ÿðþ³þ}þVþCþ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þCþVþ{þ°þëþÿAÿ_ÿ{ÿ–ÿ²ÿÎÿêÿ%EfНÕû"Gl�²Óò1Qp�Z7òа�pP0ðϯŽmL-óÿÙÿÁÿ©ÿ“ÿ}ÿeÿJÿ(ÿòþ´þ|þUþAþ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þAþTþ{þ²þðþ&ÿIÿgÿ‚ÿœÿ¶ÿÑÿìÿ%Ef‰­Ò÷AeˆªÊé(Hhˆd@úØ·—wW6ôÒ°ŽlK+ ñÿØÿÁÿ«ÿ–ÿ€ÿjÿOÿ,ÿõþµþ|þSþ?þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ?þSþ{þ´þôþ,ÿQÿoÿ‰ÿ¡ÿºÿÓÿíÿ &De‡«Ïó;^€¡Áà ?_€mH$Þ½ž~]<÷Õ²ŽlJ* ñÿØÿÂÿ­ÿ˜ÿ„ÿnÿSÿ0ÿ÷þ¶þ{þQþ=þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ=þQþ{þ¶þøþ2ÿWÿuÿ�ÿ¦ÿ½ÿÖÿïÿ &Dd†©Ìï5Wx™¹Øø8XxtO*äã„cAû׳�lI) ðÿÙÿÃÿ®ÿ›ÿˆÿrÿWÿ3ÿùþ¶þzþPþ;þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ;þPþ{þ¸þûþ6ÿ\ÿzÿ“ÿ©ÿÀÿ×ÿïÿ %Cc„¦Éë /Qr’²Ññ1QqxS. èǧˆgE"þÚµ‘mJ) ñÿÚÿÄÿ±ÿžÿ‹ÿvÿZÿ6ÿûþ·þyþNþ9þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ9þNþzþ¸þýþ9ÿ_ÿ~ÿ–ÿ«ÿÁÿ×ÿïÿ#Aa‚¤Æè +LlŒ¬Ëë +Kl{V1 ëÊ«‹kH%ݸ”oM,ôÿÝÿÈÿ´ÿ¢ÿ�ÿzÿ^ÿ9ÿýþ¸þyþMþ8þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ8þMþzþ¹þþþ:ÿaÿÿ—ÿ«ÿÁÿ×ÿîÿ"?_€¡Ãå(Ii‰©Èè(Hi{V2ìÌ­ŽmK)὘tR1ùÿáÿÌÿ¸ÿ¥ÿ“ÿ}ÿ`ÿ:ÿþþ¸þyþLþ7þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ7þLþyþ¸þýþ9ÿ`ÿ}ÿ•ÿªÿ¿ÿÕÿìÿ =]}ŸÀâ$Ee…¥Ää$Ee{W3îΰ‘qO- çà|Z9éÿÒÿ¾ÿªÿ–ÿÿbÿ;ÿþþ¸þyþLþ7þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ7þLþxþ¶þûþ6ÿ\ÿyÿ‘ÿ§ÿ½ÿÓÿëÿ =\|�¾ßÿ @_ž¾Þþ@`yV3ðв“tS2î˨…cC% ñÿÙÿÃÿ®ÿ˜ÿ€ÿbÿ:ÿýþ¸þyþLþ7þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ7þLþwþ´þöþ0ÿUÿsÿŒÿ¢ÿ¹ÿÑÿêÿ =\{œ¼Ûú8Ww–µÕö9ZxU3òÒ´–wX8öÔ²�nO0úÿáÿÉÿ²ÿ›ÿ�ÿaÿ9ÿýþ¸þyþMþ8þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ8þMþwþ±þòþ)ÿNÿkÿ…ÿ�ÿ¶ÿÐÿêÿ!?]|›ºØö1OmŒ¬Ìî1SuT3óÔ¶™z\=ýݼ›zZ<éÿÏÿµÿœÿ�ÿ`ÿ7ÿûþ·þzþNþ9þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ9þMþvþ®þìþ"ÿEÿcÿ~ÿ˜ÿ³ÿÎÿêÿ#A_}›¸Õñ )Fd‚¢Ãä)LrR2ôÕ¸š}_A#åÅ¥…fG) ðÿÔÿ¸ÿ�ÿÿ]ÿ4ÿùþ¶þzþOþ:þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ:þNþuþªþæþÿ;ÿYÿvÿ’ÿ¯ÿÌÿêÿ%Ca~›¶Ñì!=Yw—¸Ûý!EpQ2õ×¹œcF) íϯ�qR4÷ÿÙÿ»ÿ�ÿ~ÿ[ÿ2ÿ÷þ¶þ{þQþ<þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ<þOþtþ¨þàþÿ2ÿQÿoÿ�ÿ¬ÿÌÿëÿ )Gd€œ¶Ïè5QnްÒö?nP1õغ��eI-ôÖ·™z[;üÿÜÿ¼ÿ�ÿ|ÿWÿ/ÿõþ´þ{þQþ=þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ=þPþsþ¤þÛþ ÿ*ÿIÿhÿ‰ÿªÿËÿìÿ ,Jgƒ�¶Îåü.If†§Êî8mO1öغ��fK0øÛ¾Ÿ�bB!ÿÿÞÿ½ÿœÿyÿTÿ,ÿóþ³þ{þRþ>þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ>þPþsþ¢þÖþÿ#ÿBÿcÿ†ÿ¨ÿËÿîÿ0Nk†Ÿ·Íãù(C_¡Äé3mP2÷Ù»ž‚gL1ûßÁ¤…fE$ßÿ½ÿšÿwÿRÿ)ÿñþ³þ{þSþ?þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ?þQþsþ¡þÔþÿÿ?ÿaÿ„ÿ¨ÿÍÿðÿ4Ro‰¢¹Îãø&?\{�Áå 0nQ3÷Ùº��fK0ûßÁ¤†fF$Þÿ»ÿ˜ÿuÿOÿ'ÿïþ²þ{þSþ?þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ?þQþrþ þÒþÿþÿ=ÿ`ÿ„ÿ©ÿÎÿòÿ7VrŒ¥»Ðäù%>Zzœ¿ä /qS4÷ÙºœdI.øÜ¿¡ƒdC!ÿÿÜÿ¹ÿ–ÿsÿNÿ&ÿïþ±þzþSþ?þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ?þQþrþ þÓþÿÿ@ÿcÿ‡ÿ¬ÿÑÿöÿ:Yv�¨¿Óèü'@\|�Àå 0sT5÷ظš}aE*ôØ»�`?üÿÙÿ¶ÿ”ÿqÿLÿ%ÿîþ°þzþRþ>þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ>þPþrþ¡þÔþÿ#ÿDÿgÿ‹ÿ±ÿÕÿúÿ>^z”¬Â×êþ)B]}žÁæ 1tU5öÖ¶—y]A& ïÒµ˜z[;÷ÿÕÿ³ÿ’ÿoÿKÿ$ÿìþ¯þxþPþ<þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ<þNþqþ¡þÖþÿ(ÿIÿmÿ‘ÿ¶ÿÚÿþÿ!Cb~˜°ÆÚí*B]|žÁæ 2wW6õÕ´”vY=!êα“uW7õÿÓÿ²ÿ‘ÿoÿKÿ$ÿìþ¯þwþOþ;þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ;þNþrþ£þÚþ ÿ/ÿRÿuÿ™ÿ½ÿáÿ(Ih„ž¶ËÞñ,C^}žÂç 4yW6óÒ°�rT8äǪ�oP1ðÿÏÿ®ÿŽÿmÿIÿ"ÿéþ«þtþMþ9þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ9þLþpþ£þÜþÿ6ÿYÿ}ÿ ÿÄÿèÿ -NnŠ£ºÎáó,B]{�Áç6Å£�^<÷Õ³‘oN/ó×»Ÿ‚eH* íÿÍÿ­ÿ�ÿmÿNÿ,ÿ ÿßþ¥þgþ1þ þüýùýùýùýùýùýùýùýùýùýùýùýùýùýùýùýüý þ/þaþœþÕþþþ#ÿGÿjÿ�ÿ°ÿÓÿõÿ5Qj�”¦·ÈÚí<^‚¨Ðù!Ip•ɧ„`=÷Ô°�kI) íд˜{^A#æÿÇÿ¨ÿˆÿiÿKÿ)ÿÿØþ›þ^þ+þ þÿýþýþýþýþýþýþýþýþýþýþýþýþýþýþýþýÿý þ*þ[þ—þÔþÿ*ÿOÿqÿ”ÿ¶ÿÙÿúÿ:Vo…˜©¹ÉÚí:\�¨Ðú#Ls˜Îª‡c?öÒ®ŠfD$çÊ­‘tW:þÿßÿÁÿ¢ÿ„ÿfÿGÿ%ÿÿÎþ�þTþ&þ þþþþþþþþþþþþþþþþþþ þ&þSþ�þÐþÿ/ÿUÿxÿšÿ½ÿÞÿ @\tŠœ¬»ËÛí9Z€§Ñû%NvœÒ®‰e@õЫ‡b?ÿàæ‰lO2÷ÿÙÿºÿœÿÿaÿBÿ ÿùþÀþ�þJþ#þþ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þþ#þKþ„þÆþÿ2ÿZÿÿ ÿÂÿãÿ%D`x�Ÿ¯½ÌÛì7Y~§Ðû&PxžÖ±Œf@ôΩƒ^:ùÚ¼Ÿ‚eH+ ïÿÑÿ´ÿ–ÿyÿ\ÿ<ÿÿíþ±þtþBþ"þþþþþþþþþþþþþþþþþþþþ"þCþxþ¹þüþ1ÿ\ÿƒÿ¥ÿÆÿçÿ)Hd|‘¢±¿ÍÜì6X}¦Ðû&QyŸÚ´ŽhAóͦ€Z6óÓµ—z]@#èÿËÿ­ÿ�ÿsÿVÿ6ÿÿßþ¡þhþ=þ%þþþþþþþþþþþþþþþþþþþþ%þ>þlþªþðþ-ÿ[ÿ„ÿ¨ÿÉÿëÿ ,Kg”¥´ÁÎÜí5W|¥Ïú&PyŸÝ·�iBòˤ}V1íÍ®‘sV9ÿÿáÿÄÿ¦ÿ‰ÿmÿOÿ.ÿÿÍþ‘þ]þ;þ,þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ*þ,þ;þaþšþÞþ"ÿVÿ‚ÿ©ÿËÿìÿ .Mi�–§µÃÐÞí5V|¤Îù$Nwœáº’kBñÉ¡yR- çǨ‰lO2÷ÿÚÿ¼ÿŸÿƒÿfÿHÿ(ÿùþ½þ„þXþ>þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ6þ>þZþ‹þÌþÿOÿ|ÿ¦ÿÉÿëÿ -Li�–¨·ÅÓáñ8Y~¥Îø#Lt™ä»“kBðÇžwP*ã¡�dG) ïÿÑÿ´ÿ—ÿyÿ[ÿ>ÿ ÿîþ»þ‰þWþDþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þDþXþ“þÎþ ÿDÿmÿ•ÿ½ÿæÿ%EdyŽ£¸ÈØèø,F`†­ÓùFm“ìÀ˜oGñÈŸvO(ß¿ž~_B$ìÿÏÿ²ÿ”ÿ{ÿ]ÿ@ÿ"ÿôþÁþ�þ]þJþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþJþ^þ�þËþÿAÿgÿ�ÿ¸ÿàÿ @_~“¨½Øèø #=WqŽ´ÚDk’ñÅ™pGîÅœsJ#ýÚ·—wX9ÿÿãÿÈÿ«ÿ�ÿuÿ[ÿ>ÿ ÿñþÃþ‘þ^þMþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþMþ_þ‘þÃþÿþ9ÿ`ÿ†ÿ¯ÿ×ÿ÷ÿ7Wv•©¿Úõ/Ic}š·Þ!?eŒôÈœpGîÁ˜oFöÔ±�nO1õÿÙÿ¾ÿ£ÿ†ÿmÿTÿ;ÿÿïþÀþ‘þ_þPþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþPþ_þ’þÄþöþ1ÿWÿ~ÿ¤ÿÍÿíÿ -Ml‹ª¿Úõ!;Uo‰¦Ãà$A_…öÊžrFìÀ“jAï̪‡eF( êÿÏÿ³ÿ˜ÿ}ÿdÿKÿ2ÿÿêþ¼þŽþ_þRþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþRþ_þ‘þÄþöþ(ÿNÿtÿ›ÿÁÿáÿ"Ba€Ÿ¾Ùô+E`z”±Îë&C`~ùËŸsGë¾’h?íɧ„bB$æÿÌÿ°ÿ•ÿzÿfÿMÿ4ÿÿîþ¿þ‘þbþUþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþUþbþŽþÀþòþ$ÿFÿlÿ’ÿ¸ÿÚÿúÿ:b� ¿äÿ6Qk… µÒï "@]{üΠtHê½�g=ëǤ�^? âÿÈÿ­ÿ’ÿwÿcÿNÿ6ÿÿïþÂþ”þeþWþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþWþdþ�þ¼þïþ!ÿBÿcÿŠÿ°ÿÑÿòÿ2Z‚ Àå %@\w‘«ÀÖó&=ZxýÏ¡sG껎d;èÄ¡}Z;ýÿÞÿÃÿ©ÿŽÿsÿ_ÿKÿ6ÿÿðþÃþ•þgþYþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþYþeþ’þ¾þêþÿ>ÿ_ÿ€ÿ§ÿÇÿéÿ *Qy ¿å /Je€›µËàö)@WtÿÑ£uG껌b8åÁžzV7øÿÙÿ¿ÿ¤ÿŠÿoÿ[ÿGÿ2ÿÿñþÄþ–þiþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þgþ“þÀþìþÿ9ÿZÿ|ÿ�ÿ¾ÿßÿ!Hp˜¿ä /ToŠ¥ÀÖë,CZpüТtF껌d:æÃ |X9ûÿÛÿÀÿ¦ÿ‹ÿpÿZÿFÿ2ÿÿñþÄþ—þjþ\þZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþ\þhþ”þÀþìþÿ9ÿZÿ|ÿ�ÿ¾ÿßÿ!Iq™Àæ 0VqŒ§ÂÖì,BYo÷ËŸrC黌c;çÄ¡}Y:üÿÝÿÁÿ¦ÿ‹ÿqÿ[ÿEÿ1ÿÿðþÃþ–þiþ\þZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþZþ\þhþ“þ¿þëþÿ9ÿYÿ{ÿœÿ½ÿßÿ!Iq™Àæ 1Wr�¨Ã×ë+AWmóÇ›oA續c:èÄ¡~Z;ýÿÞÿÂÿ§ÿŒÿrÿ\ÿFÿ0ÿÿïþÂþ–þiþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þhþ”þ¿þëþÿ8ÿYÿzÿ›ÿ¼ÿÞÿÿÿ Hp™Àæ 2WrީĨí+@Ulï×k?帋b9èÅ¡~[<þÿßÿÄÿ©ÿ�ÿrÿ\ÿFÿ0ÿÿíþÁþ•þhþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þhþ“þ¿þëþÿ7ÿXÿyÿšÿ»ÿÝÿþÿGo˜Àæ 2Xs�ªÅÙí+@Uj㽑e9帋e<êÉ¥‚_A"äÿÆÿªÿ�ÿtÿXÿBÿ,ÿÿìþÀþ“þgþZþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþZþgþ”þÀþëþÿ8ÿYÿzÿ›ÿ¼ÿÝÿÿÿ Hq™Áç 3Yt�«Æ×ëÿ%;OeزŒ`4續f?î̪‡dF(êÿËÿ­ÿ’ÿvÿ[ÿ?ÿ)ÿÿéþÀþ“þfþZþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþXþZþfþ”þÂþíþÿ:ÿ[ÿ|ÿ�ÿ¾ÿàÿ"Jr›Ãé5[v’­ÈÙêþ$6K`ͧ�[/áº�f?ðέ‹hJ+ îÿÐÿ²ÿ”ÿxÿ\ÿAÿ%ÿÿåþ¼þ’þeþYþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþYþeþ“þÀþîþÿ:ÿ\ÿ}ÿžÿ¿ÿàÿ#KtœÄê6\w’®ÉÚëü"4FZœvP*ܵŽgAóѰ�mO0ôÿÖÿ·ÿ™ÿ{ÿ_ÿCÿ(ÿ ÿâþ¸þ�þeþYþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþYþeþ’þÀþíþÿ<ÿ]ÿÿ ÿÁÿãÿ%MužÆì8^y•°ËÜíþ!3DV¹—qK%ܵŽiBõÕ´’pS5øÿØÿºÿ›ÿ}ÿ\ÿAÿ%ÿ ÿâþ¸þŽþdþXþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþXþeþ’þÀþîþÿ<ÿ^ÿÿ ÿÂÿãÿ&NvžÇí9_{–±ÌÛìý0BT¯�lF þÜ´ŽhCöÖ¶”sV8üÿÛÿºÿœÿ~ÿ^ÿ=ÿ!ÿÿÞþ¶þ�þcþWþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþWþdþ‘þ¿þìþÿ<ÿ]ÿ~ÿ ÿÁÿãÿ&NvžÆí9_{–²ÍÜêû ,>P§…cBúض�jE ùÙ¹™xZ<àÿÀÿŸÿ�ÿ`ÿ@ÿ ÿÿÜþµþ�þdþXþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþXþdþ’þÀþîþÿ<ÿ^ÿ€ÿ¡ÿÂÿäÿ'Px Èî;a}˜´ÏÞíü -=Nž|Z9õÓ±�jE ûÛ»›{]@#åÿÄÿ£ÿƒÿcÿBÿ!ÿÿÙþ²þ‹þcþXþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþXþdþ’þ¿þíþÿ<ÿ^ÿÿ¡ÿÃÿåÿ(Py¡Éï<b~™µÑàïý ,<L�}[9öÔ²�lG"ýܼœ|]?"âÿÂÿ¡ÿ�ÿ`ÿ?ÿÿÿþÚþ³þ‹þdþYþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþYþeþ�þ½þëþÿ<ÿ^ÿÿ¡ÿÅÿæÿ*Qy¢Êð=c›·Óåô%5EUœ{Z9öÔ²�lH#þÝ»œ|\> àÿ¾ÿžÿ~ÿ]ÿ<ÿÿûþ×þ²þ‹þcþXþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþXþdþ�þºþçþÿ9ÿ]ÿ~ÿ ÿÄÿçÿ *Rz¢Êð=c€œ¸Ôæø)<L\›zY8õÔ³‘mH$ÿÞ½›{\=ßÿ½ÿ›ÿzÿYÿ9ÿÿ÷þÓþ¯þ‹þcþXþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþXþdþ�þ¹þäþÿ5ÿYÿ}ÿŸÿÃÿæÿ +Sz¢Êð=cœ¹Ôçù .ATd™xW7õÔ²‘mH$ß¾œ{\=ÿÿÝÿ»ÿ™ÿwÿVÿ5ÿÿôþÐþ«þ‡þcþXþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþVþXþdþŽþ¹þãþÿ2ÿVÿzÿžÿÂÿåÿ,T{¢Êð=c€œ¸Õèú 2FYl›zY8öÕ´“nJ&Ü»šxV6øÿÖÿ´ÿ’ÿpÿQÿ0ÿÿîþÎþªþ†þbþWþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþUþWþbþŠþ´þßþ ÿ3ÿWÿ{ÿŸÿÄÿèÿ /U}¤Ìð=c€�ºÖð(BUh|�|[:ø×¶”pL'Þ¸—vS0òÿÏÿ¬ÿŠÿhÿJÿ*ÿ ÿéþÉþ©þ…þ`þVþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþTþVþaþˆþ°þÚþÿ.ÿXÿ{ÿŸÿÅÿëÿ2X~¦Îò=c€ž»×ñ 0Jdx‹ ^=ûÚ¸—sN*à»–uQ/ íÿÊÿ§ÿ„ÿbÿCÿ$ÿÿåþÅþ¥þ…þ`þUþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþUþaþˆþ¯þ×þÿ+ÿTÿ}ÿ¡ÿÇÿíÿ6\ƒ©Ðõ>d�Ÿ½Ùó '9Tnˆ›¢�`?ýÛº™uP+â½—rO, æÿÃÿ¡ÿ~ÿ[ÿ<ÿÿþþßþ¿þŸþþ_þTþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþRþTþ_þ‡þ®þÖþýþ&ÿOÿyÿ¢ÿÈÿíÿ9_…¬Ò÷?d�Ÿ½Úô(B\w‘«¦…cC!ß¾�xS/ 㽘sM+åÿÁÿŸÿ|ÿYÿ;ÿÿýþÞþÁþ¡þ�þaþSþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþQþSþaþ‡þ®þÖþýþ)ÿSÿ|ÿ¥ÿÌÿòÿ=c‰¯ÕùBf…¢¿Ýû/Ig�œ¶©ˆgF%ãÁ {W2 æ¾™sN)ãÿÀÿ�ÿzÿWÿ9ÿÿýþÞþÀþ¢þ‚þbþRþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþRþbþˆþ¯þÖþýþ)ÿUÿÿ¨ÿÏÿöÿAgŒ²ÙüDi‡¥Ãàþ6Pn�§Á«ŠiG'äá}X3ç¿—rM(ßÿ¼ÿ™ÿvÿSÿ5ÿÿúþÛþ½þŸþ�þaþQþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþQþaþˆþ®þÔþüþ(ÿTÿ€ÿ©ÿÐÿ÷ÿDi޳Úý!Di‡¥Ãáÿ;Us‘°Ê¨‡fD#࿞yT0 ã¼”lG"üÿ×ÿ´ÿ�ÿmÿJÿ,ÿÿñþÓþµþ˜þzþ\þRþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþRþ\þ‚þ¨þÏþõþ!ÿMÿyÿ¥ÿÌÿóÿAfŒ±Öú@d‚ ¿Ýû7Us’°Î¹˜wV4òЯŠe@òÊ£{T/ äÿÂÿŸÿ|ÿYÿ=ÿ ÿÿäþÄþ¦þˆþkþQþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþQþkþ’þ¸þÞþÿ.ÿZÿ†ÿ²ÿØÿÿÿ&Mr—¼â)LpŽ­Ëé 'Ec„¢ÀÞÁ ^=ùØ·’mH#úÑ©�Z3éÿÇÿ¥ÿ�ÿ^ÿCÿ(ÿ ÿìþÌþ«þŽþpþRþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþPþRþpþ—þ¿þåþ ÿ5ÿ_ÿŠÿ·ÿÝÿ)Quš¿å+Os‘°Îí -Ki‰©Çå¾�|[:÷Õ´�iDöͤ|U.âÿÀÿžÿ|ÿYÿ=ÿ"ÿÿéþÉþ©þˆþkþQþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþQþkþ’þ¹þàþÿ0ÿZÿ„ÿ°ÿÖÿüÿ"In’·Ü#Gj‰¨Çå%Ecƒ£Ãâ±�oN- êɧ‚]7é¿–mFøÿÑÿ¯ÿ�ÿkÿIÿ.ÿÿ÷þÜþ¼þ›þ{þ[þQþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþQþ[þ‚þªþÑþøþ"ÿKÿuÿŸÿÅÿëÿ7\�¥Êí5Xw•´Óó3Ss”´Ô¢�`>üÚ¹“nH#÷ͤ{Q*Üÿ¼ÿšÿxÿVÿ@ÿ$ÿ ÿîþÈþ¨þˆþhþQþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþQþhþ‘þ¸þàþÿ,ÿVÿ€ÿ©ÿÍÿóÿ?cˆ­Òõ<`€Ÿ¾Ü!@a„¥Åå˪‰hG&ãœvP+ÿÒ©€V,Þÿ¾ÿŸÿ}ÿ[ÿDÿ.ÿÿ÷þÒþ¬þŒþlþQþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþQþlþ•þ¾þåþ ÿ2ÿWÿ�ÿªÿÎÿòÿ>b†«Ðô:^~Ÿ¾Ü%Ee‰­ÍîË©‰gG%ãÁ›uO*þÑ¥{Q(þÿ×ÿ·ÿ˜ÿyÿWÿ@ÿ)ÿÿ÷þÒþ¬þ‡þfþPþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþPþfþ�þ¹þâþ ÿ/ÿTÿyÿ£ÿÇÿêÿ4X}¡Åé 0Tt•µÔøAa…©ÍíÄ£‚a@þÜ»•oI#÷ÊžqGôÿÊÿªÿ‹ÿlÿLÿ5ÿÿÿñþÌþ¦þ�þ[þPþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþNþPþ[þ„þ®þ×þÿ%ÿJÿpÿ•ÿ¹ÿÝÿ$Hl‘µÙü Cd„¤Åé2VzžÂæÍ¬‹jI(åÄžxR,þѤxN$úÿÐÿ²ÿ’ÿsÿTÿ>ÿ(ÿÿúþÐþ«þ…þ`þOþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþMþOþ`þ‹þ´þÝþÿ)ÿNÿtÿ™ÿ»ÿßÿ&Jn“·Üÿ"Fh‰ªÊñ:^…©Íñѱ�oM, éÈ¢{U/Ó§zO%ûÿÑÿ³ÿ•ÿuÿVÿAÿ+ÿÿþþÔþ«þ…þ`þMþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþKþMþ`þ‹þµþßþÿ+ÿMÿrÿ—ÿºÿÜÿ#Hk�´Ùý!Dg‰©Êñ=aˆ¯Ó÷Ò±�oN, éÈ¢|U/Ó¤xN#ùÿÏÿ°ÿ’ÿtÿTÿ?ÿ*ÿÿþþÔþªþ�þ[þKþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþKþ[þ†þ±þÜþÿ(ÿJÿmÿ’ÿ´ÿ×ÿùÿAe‰­Òö>aƒ¦Æí<`‡®ÖúѰ�nM, èÇ¡zT.Ñ£uJ öÿËÿ­ÿŽÿpÿRÿ=ÿ(ÿÿýþÓþªþ€þVþJþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþHþJþVþ�þ¬þ×þÿ$ÿGÿiÿŒÿ®ÿÐÿóÿ9]�¥Êî7Z|žÁè7^…¬ÔûͯŽmL. ëɤ~X1Ù«}U+Öÿ¶ÿ˜ÿyÿ[ÿ=ÿ(ÿÿýþÒþ©þþUþHþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþHþUþ�þ¬þ×þÿ%ÿGÿjÿŒÿ­ÿÐÿòÿ8\€¤Éí6Z}ŸÂë9a‰±ØÿÉ«�kK,í˦�Z4 ß±ƒ\5 àÿÀÿ ÿ‚ÿcÿEÿ'ÿÿýþÑþ§þ}þSþEþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþCþEþSþþ¬þ×þÿ$ÿGÿiÿ‹ÿ­ÿÎÿðÿ6Y}¡Çë4Y}ŸÂë;b‹³ÛŦˆjI+ îͧ‚]7 ⸉c;êÿÊÿªÿŠÿlÿMÿ/ÿÿüþÑþ¦þ{þQþBþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þBþQþ}þªþ×þÿ$ÿFÿhÿ‹ÿ¬ÿÍÿïÿ4X{ŸÄé3W{ Âë<cŒµÞ¾ �cE' ȩ̂�\7 㸎g@òÿÒÿ²ÿ’ÿrÿTÿ5ÿÿùþÎþ£þxþMþ@þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ@þMþyþ¦þÓþÿþ!ÿCÿfÿˆÿ©ÿËÿìÿ 1Tw›Àå /SwœÀé:cŒµÝ»¡ƒeG-ðÒ®‰d?ðÅ›yR+áÿÁÿ¡ÿ�ÿWÿ9ÿÿüþÑþ¥þ{þOþ=þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ;þ=þPþ~þªþ×þÿ&ÿHÿjÿ�ÿ­ÿÎÿïÿ3WzžÃç 1W{ Äî?h’ºã ¶œ‚dF+óÔ±ŽhCúЦƒa:ðÿÍÿ­ÿ�ÿcÿ8ÿÿüþÐþ¥þzþOþ;þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ9þ;þPþ}þ«þØþÿ'ÿJÿlÿŽÿ®ÿÎÿðÿ4VzžÂç 1W|¡ÅïBj”½æ­“x_@& ñÓ°ŒiCûÖ¬‰gEûÿØÿµÿ•ÿkÿ@ÿÿøþÍþ¡þuþKþ9þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ9þKþyþ§þÕþÿ$ÿGÿiÿ‹ÿ¬ÿÌÿìÿ 0Sv™¾ã-RxžÂì@i’»ä  †lR8éÏ«ˆeAøÓ¯�kH&àÿ½ÿšÿpÿEÿÿñþÅþšþoþCþ7þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ7þDþrþ þÎþüþÿAÿcÿ†ÿ¦ÿÇÿçÿ*Lo’·Û%Kq–¼æ:d�·à Ÿ†kR8êЬ‰eBúÖ±�nL)ãÿÀÿ�ÿoÿEÿÿðþÄþ™þmþBþ5þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ5þCþqþŸþÎþûþÿ@ÿbÿ…ÿ¥ÿÅÿåÿ(Kn�¶Û$Kp–¼æ:dŽ·à �„kQ7êЭ‰fCü׳’qO, åÿÃÿŸÿrÿEÿÿðþÄþ—þlþAþ4þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ4þAþpþŸþÍþûþÿ>ÿaÿƒÿ£ÿÃÿäÿ'Il�µÚÿ$Jp–¼æ:dŽ·à œƒjP6ëЭŠgC ýÙµ”sR0 éÿÅÿ¢ÿuÿGÿÿðþÃþ—þkþ?þ3þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ3þ@þoþžþÌþúþÿ>ÿ`ÿ‚ÿ¢ÿÂÿâÿ%Hk޳Ùÿ$Jp–¼æ:dŽ·à œƒjP7ëÒ¯ŒhE"þÛ¸—vU4íÿÊÿ¦ÿxÿKÿÿðþÄþ˜þkþ?þ3þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ3þ@þoþžþÌþûþÿ>ÿ`ÿ‚ÿ¢ÿÂÿâÿ%Hj�³Øþ$Jp—½ç;eŽ¸â ¨‰pW>ìÓ®‹hDùÖ³ŽmL+ æÿÃÿŸÿzÿMÿÿòþÄþ˜þlþ?þ3þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ1þ3þ@þmþœþÊþùþÿ:ÿ\ÿ~ÿžÿ¾ÿÞÿþÿ&Hk޹ß*Pv�Ãä8bƒ¬Öµ–w^E&îÕ°ŒhEõÒ¯‰eC#áÿ½ÿ™ÿuÿOÿ"ÿõþÇþ™þmþAþ4þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ4þAþnþ›þÊþùþÿ7ÿYÿ{ÿšÿºÿÚÿúÿ"Jm�»æ 1W}¤Êë 7a�¢ËõÀ¢ƒeK-ïÖ±�hEõÍ©„_:øÿ×ÿ¶ÿ“ÿnÿIÿ$ÿöþÉþ›þmþAþ4þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ2þ4þAþnþ›þÈþ÷þÿ5ÿUÿvÿ–ÿ¶ÿÖÿõÿEm�»ç8^„ªÐñ4^ŸÀêÍ®�rS4÷سŽjEõÍ¥€[6ðÿÏÿ®ÿ�ÿhÿCÿÿùþËþžþpþBþ5þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ3þ5þBþoþœþÉþöþÿ4ÿTÿsÿ“ÿ³ÿÒÿòÿBj’½è?e‹±×ø;\}ž¾ßÙ¶—y[7ùÚµ�kGòÊ¢xS. ëÿÊÿ©ÿˆÿkÿGÿ!ÿýþÌþŸþqþCþ6þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ6þCþnþ›þÈþõþÿ1ÿPÿoÿ�ÿ¯ÿÏÿïÿEm•ÆñHm“¹ßô7Xn�¯ÐåÁža=úÛ¶‘lGîÆžtJ%âÿÄÿ£ÿ‚ÿfÿIÿ$ÿÿþÏþŸþqþCþ6þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ6þCþnþ™þÆþóþÿ-ÿLÿkÿ‹ÿ«ÿËÿëÿFn–Çù$Ot™¿åû2SiŸÀòΪ‡hD üÞ¸“mHðÛqGùÿÚÿ¼ÿžÿ}ÿ`ÿDÿ(ÿÿÒþ¢þrþDþ7þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ7þDþoþšþÅþòþÿ,ÿHÿhÿˆÿ¨ÿÈÿèÿCq˜Êü-X}¢Æì.Oez�±ýÚ¶’oK'ߺ”nIðÄ—mDðÿÒÿ³ÿ•ÿwÿZÿ>ÿ"ÿÿÕþ¤þtþDþ7þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ7þDþoþšþÅþðþ ÿ)ÿFÿcÿƒÿ¤ÿÄÿäÿ?lšÌý.`…ªÎó 4J`v‹¡úØ´‘nK'ß»–pKòÆšpFòÿÓÿµÿ—ÿyÿ\ÿ?ÿ#ÿÿÕþ¥þtþDþ7þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ7þDþoþšþÅþðþÿ+ÿHÿdÿ…ÿ¥ÿÆÿæÿAnœÌþ/`ƒ¨Íò0FYn„š÷Ô²�kH&Þº—qK ôÇ›qGôÿÕÿ¶ÿ˜ÿyÿ]ÿ?ÿ#ÿÿÕþ¤þtþCþ6þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ6þCþnþ™þÄþïþ ÿ+ÿHÿeÿ…ÿ¦ÿÆÿçÿAo�Íý.`ƒ¥Êï*@Sg|’õÒ¯�iG$Þº—sM!öÊ�tJ ÷ÿ×ÿ¹ÿ™ÿ{ÿ^ÿAÿ$ÿÿÖþ¥þtþDþ6þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ6þCþnþ™þÅþðþÿ,ÿJÿgÿ‡ÿ§ÿÈÿèÿCqžÏÿ/`ƒ¦Éí&;Obu‹òÏ­‹hE#Þº—sO#÷Ì vM#ùÿÚÿ»ÿœÿ}ÿ`ÿCÿ&ÿ ÿØþ§þuþDþ6þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ4þ6þCþnþ™þÅþðþÿ,ÿJÿhÿ‰ÿ©ÿÉÿêÿEs Ð1a„¦Éìÿ$7J]q„áÄ¢€]AüÙ¹–rN)ýѦ€V,áÿÂÿ£ÿ„ÿ`ÿCÿ&ÿ ÿØþ§þvþEþ7þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ5þ7þDþtþŸþÊþõþÿ4ÿRÿpÿ‘ÿ²ÿÒÿóÿEs Æö&Vv™¼ßö .FYl€Ð´˜vS7øÖ¶–rN)ج†`7 ìÿÊÿ¬ÿŒÿhÿDÿ'ÿ ÿÙþ©þxþFþ9þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ7þ9þFþvþ¥þÐþûþÿ>ÿ\ÿzÿ›ÿ¼ÿÜÿüÿ"Ft¡ÇìLm�°Òê&>Vi|¿£‡kH,ôѱ‘qN(ݱŒf@õÿÔÿ³ÿ”ÿoÿKÿ'ÿ ÿÙþ©þyþGþ:þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ8þ:þGþwþ¦þÕþÿ"ÿCÿdÿ‚ÿ£ÿÄÿåÿ*Ot¢ÇìBb‚¢ÅÜô 5Mex¯“wZ>"êήŽnN(ݸ’lG!Þÿ½ÿœÿxÿSÿ/ÿ ÿÛþªþyþIþ<þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ:þ<þIþyþ¨þ×þÿ(ÿIÿkÿŒÿ­ÿÍÿîÿ4Y~£Èí8Xx™¹Ðçÿ.E]uŸ‰mQ4æË®ŽnN. ã¾�wQ+æÿÅÿ¤ÿyÿTÿ0ÿ ÿÜþ¬þ{þKþ>þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ<þ>þKþ~þ®þÝþ ÿ1ÿSÿtÿ•ÿ¶ÿ×ÿ÷ÿ5Z¤¿ä /Lm�­Éà÷+C[s�ycG+ÿãÇ«ŽnN.éâ�[5îÿÍÿ«ÿ�ÿUÿ1ÿ ÿÝþ­þ}þMþ@þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ>þ@þMþ€þ³þãþÿ7ÿ\ÿ}ÿŸÿ¿ÿàÿ!>[€¥ÀÛ%Ca�¡½Ùð$AXp€iR<  ôÞ¦ŠmM-îȧ†d?÷ÿÔÿ²ÿ‡ÿ\ÿ1ÿ ÿÝþ®þ~þMþAþ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þAþNþ�þµþèþÿ<ÿaÿ†ÿ§ÿÈÿèÿ *Gc€¥ÀÛö9Vt”°Ìèÿ8UmoYB+ÿéÔ¾¡…iL, íͬ‹iH$Ýÿ¹ÿŽÿcÿ8ÿ ÿÝþ­þ~þNþBþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þBþOþ‚þ¶þéþÿAÿfÿŠÿ¯ÿÐÿñÿ2Okˆ¥ÀÛö/Li‡£¿Û÷0MioXB,êÔ¾£†jM.ïÏ®�lJ&ßÿ»ÿ�ÿdÿ9ÿÿÞþ®þþOþCþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþCþPþƒþ·þêþÿCÿhÿŒÿ±ÿÒÿóÿ4Rn‹¨ÂÝø0Mjˆ£¿Û÷/KhlV@*þèÒ½¡…iM.ïЮ�lK&Þÿ»ÿ�ÿcÿ8ÿ ÿÝþ­þ~þNþBþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þBþOþ‚þ¶þéþÿBÿhÿŒÿ±ÿÒÿóÿ5RoŒ©ÃÝù0Li‡¢½Ùõ+GdkU?)ýçÒ¼ …iM.ñѯŽmL'ßÿ»ÿ�ÿdÿ8ÿ ÿÝþ­þ~þNþBþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þBþOþ‚þ¶þéþÿBÿhÿ�ÿ²ÿÓÿôÿ6Sp�ªÅßú1Mi‡¢½×ó*EbiS='üæÑ»Ÿ„iM.ñÒ±�nM)àÿ¼ÿ�ÿeÿ9ÿ ÿÝþ­þ~þNþBþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þBþOþ‚þ¶þéþÿBÿhÿ�ÿ³ÿÔÿõÿ7Tq�¬Çáû2Ok‡¢½×ò )D_tWA+ùäιœ€eI( ëÌ©ˆfE"þÿÙÿµÿ�ÿcÿ7ÿ ÿÝþ­þ~þNþBþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þBþOþþ³þæþÿ?ÿdÿŠÿ°ÿÑÿóÿ5Wt‘¯Ïê;Wt�§ÂÜ÷*E`~aD.üàʵ˜|`D$äÅ¢~]<öÿÒÿ®ÿ‡ÿ`ÿ4ÿÿÚþ¬þ}þMþAþ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þAþNþþ¯þâþÿ;ÿ`ÿ†ÿ¬ÿÍÿïÿ1Sv“°Ðñ &C`|˜¯Æàû*EaˆlO2äȳ–y\A ÿÞ¿œyU4îÿËÿ§ÿ€ÿYÿ2ÿÿÙþ«þ}þMþAþ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þ?þAþNþþ¯þàþÿ8ÿ]ÿ‚ÿ¨ÿÊÿìÿ/Qs•³Óô.Kh…¡¸Îå/Gb”w[>!éͱ”w[>üÛº—sP- çÿÄÿ¡ÿzÿSÿ-ÿÿØþªþ|þNþBþ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þ@þBþOþ€þ°þáþÿ6ÿ\ÿ�ÿ¦ÿÈÿéÿ -Oq”¶×÷8UqŽ«ÂÙï5Md�{^A$æÊ®�sV9õÔ³ŽkH%àÿ¼ÿšÿxÿRÿ+ÿÿÙþ«þ}þOþCþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþAþCþPþ|þ­þÞþÿ1ÿVÿ{ÿ¡ÿÂÿäÿ(Oq“µÛü=[x•²ÇÞô  8Pg¦ƒaD'ãÇ«�nQ5ïÍ­ˆc?úÿØÿµÿ’ÿqÿPÿ)ÿÿ×þ¬þ~þPþDþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþBþDþQþ}þªþÛþ ÿ.ÿQÿvÿ›ÿ½ÿßÿ#Ip’µÛ!A`›¸Íãù&;Sj°�kI, çÅ©‹lM1ëȧ‚]8òÿÑÿ¯ÿ‹ÿkÿIÿ)ÿÿ×þ«þ€þRþFþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþDþFþRþþ¬þÙþ ÿ,ÿOÿqÿ—ÿ¹ÿÛÿýÿEl“µÛ'Gf„£¿Õêÿ+AWnº˜uS0ìɧ‰jK- çÄ¡|W2 ëÿÉÿ§ÿ…ÿdÿCÿ"ÿÿÖþ«þþTþHþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþFþHþTþ�þ­þÚþÿ*ÿMÿoÿ’ÿ´ÿÖÿøÿAh޵Û'MkŠ©ÇÜñ1G]r¼˜uS0 êÈ¥†gI*äÁžzT0 éÿÇÿ¥ÿƒÿeÿDÿ"ÿÿÙþ®þ‚þWþKþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþIþKþWþ�þ®þÚþÿ'ÿIÿlÿ�ÿ°ÿÒÿôÿ<cа×ý#Ijˆ§ÆÞó6Law¿šuS1 èÆ£„eF'á¾›wR-çÿÅÿ£ÿ�ÿcÿDÿ#ÿÿÙþ±þ…þZþNþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþLþNþZþ„þ­þÚþÿ'ÿFÿiÿ‹ÿ­ÿÍÿðÿ8_…¬ÓùEf‡¥ÄÜõ 8Qf{ÁœxS1 èÄ¢‚cC%Þ»˜tO*äÿÃÿ¢ÿ€ÿaÿBÿ$ÿÿÚþ±þˆþ]þQþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþOþQþ]þ‡þ°þÚþÿ&ÿFÿeÿˆÿ©ÿÊÿëÿ 4Z�¨ÎõBbƒ¤ÂÛó  9Rk€ÄŸ{V2éÅ¡‚bB#ܹ–rM(ãÿÂÿ ÿÿ`ÿBÿ#ÿÿÛþ²þŠþaþUþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþSþUþaþ‹þ´þÞþÿ'ÿGÿfÿ†ÿ§ÿÈÿéÿ 0W~¤Ëñ?`€¡ÂÚò #<Tm†ÇŸ{V2 æÂ�}]>üÙ¶’oK&áÿÀÿžÿ}ÿbÿCÿ$ÿÿßþ¶þŽþeþYþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþYþeþ‹þµþßþÿ$ÿDÿcÿƒÿ£ÿÄÿåÿ*QwžÄë8[|�¾Üô $B[tŒË£{V2 â¾™yX9÷Õ²ŽlH$ßÿ¾ÿ�ÿ|ÿ`ÿDÿ%ÿÿàþºþ’þiþ]þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ]þiþ�þ¶þßþ ÿ%ÿAÿ`ÿ€ÿ ÿÀÿáÿ&Jq˜¾ä 2Tx˜¹×õ &Caz’Χ~V2 ⺖uU4òЮ‹hE"ýÿÜÿ¼ÿ›ÿzÿ^ÿBÿ&ÿÿâþ¼þ–þmþaþ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þ_þaþmþ“þºþàþ ÿ&ÿBÿ^ÿ}ÿ�ÿ½ÿÝÿþÿ"Fk‘·Þ+Nq”´Òð'Db€™Òª‚Z2 ⺒rQ0îÌ©‡dAûÿÚÿºÿ™ÿxÿ\ÿ@ÿ%ÿ ÿãþ½þ—þqþeþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþeþqþ—þ¾þäþ ÿ&ÿBÿ^ÿzÿšÿºÿÚÿúÿBg‹±Øþ$Gj�°Îì (Fd�ŸÖ«ƒ[3 ṑoO. ìɧ…c@úÿÚÿ¹ÿ™ÿxÿ^ÿCÿ'ÿ ÿèþÂþœþvþjþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþhþjþvþ™þ¿þåþ ÿ$ÿ@ÿ\ÿxÿ—ÿ·ÿ×ÿ÷ÿ>b‡­ÓùEh‹®Ñï +Mkˆ¦Ù®ƒ[3 Þ¶ŽlK+ èǤ‚`=÷ÿØÿ¸ÿ—ÿwÿ]ÿDÿ(ÿ ÿéþÅþŸþyþnþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþlþnþzþ�þÀþæþ ÿ%ÿ=ÿYÿuÿ”ÿ³ÿÓÿóÿ9]�§Íô@e‰«Îð-NqŽ¬Ú°…[3ݲŠiH&ä ~\:ôÿÔÿµÿ•ÿtÿ[ÿBÿ(ÿ ÿéþÆþ¢þ|þqþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþqþ}þ þÃþæþ ÿ$ÿ=ÿUÿqÿ�ÿ¯ÿÎÿîÿ4W{¡Çí9_…¨Êí-Oq“±Ý²ˆ^3Þ³ˆfE$à¾�{Y6òÿÒÿ²ÿ“ÿsÿZÿ@ÿ'ÿÿêþÇþ¤þ€þuþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþsþuþ�þ¤þÇþêþ ÿ%ÿ>ÿVÿnÿ�ÿ¬ÿËÿêÿ 0SvœÂè4Z¥Èê /Qs•·ß³‰^4Þ³ˆfE$ãÁ ~^<øÿØÿ¸ÿ˜ÿyÿ^ÿEÿ,ÿÿíþÉþ¦þ‚þwþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþwþƒþ¥þÈþëþÿ&ÿ>ÿVÿnÿ�ÿ¬ÿËÿêÿ /Ru›Áç 5Z€¦Íð4[}ŸÁà´‰_4ݲ‡fD#âá€`AüÿÝÿ½ÿ�ÿ}ÿcÿIÿ/ÿÿðþËþ§þƒþxþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþvþxþ„þ¦þÈþëþÿ%ÿ=ÿUÿmÿŒÿ«ÿÉÿéÿ -Ps™¿å 3[€¦Íô9_…§Éß´ˆ\2Ú¯„bA þßÀ¡`@!þÿßÿÀÿ ÿ€ÿfÿKÿ1ÿÿòþÌþ¦þƒþwþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþuþwþƒþ¥þÇþéþ ÿ$ÿ;ÿRÿkÿ‰ÿ¨ÿÆÿåÿ*Lo•»á/V~¤Ëò<bˆ®Ðܱ…Y.׫]<ùÚ»œ}]>ÿÿàÿÀÿ¡ÿ�ÿgÿLÿ1ÿÿñþÌþ¦þ€þtþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþrþtþ€þ¢þÄþæþÿÿ7ÿOÿfÿ…ÿ£ÿÁÿàÿ%Gi�µÛ)Qx Çî<b‰¯ÕÛ¯„X-Õ©}];øàÁ¢ƒiJ* ìÿÌÿ­ÿ�ÿlÿRÿ7ÿÿïþÉþ£þ}þqþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþoþqþ}þ¢þÄþæþÿ"ÿ:ÿRÿiÿˆÿ¦ÿÅÿãÿ&HjŽ´Ú)Qy ÍôBn”ºáÚ®‚V*þÒ¦zZ9öÞÆ§ˆnT5öÿØÿ¸ÿ˜ÿxÿVÿ<ÿ"ÿóþÅþŸþzþmþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþkþmþyþžþÄþæþÿ"ÿ<ÿSÿkÿŠÿ¨ÿÇÿæÿ&Hj�³Ùÿ(Px Íú HsŸÅì׫S'ûÏ£wV6ôÛëŒrY?áÿÂÿ£ÿ‚ÿaÿ@ÿ%ÿ÷þÉþ›þuþhþfþfþfþfþfþfþfþfþfþfþfþfþfþfþfþfþfþfþfþfþfþhþtþ™þ¿þäþÿ ÿ:ÿTÿlÿ‹ÿ©ÿÈÿçÿ'Gj޲×ý%MvžËø%Lw£ÏõÔ¨|P$øÌŸsR2ñÙÀ¨�v\C) ëÿÌÿ­ÿŒÿkÿJÿ)ÿûþÌþžþpþcþaþaþaþaþaþaþaþaþaþaþaþaþaþaþaþaþaþaþaþaþaþcþoþ”þºþßþÿÿ8ÿSÿmÿŒÿªÿÉÿèÿ(Ii�²Öú"KtœÉö#P|¨ÓÿФxL ôÇ›oO.í׿§�w]C) ëÿÍÿ­ÿŠÿiÿHÿ'ÿöþÇþ™þkþ^þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ\þ^þjþ‘þ¶þÛþÿÿ7ÿQÿkÿŠÿ©ÿÈÿçÿ&GgŠ®Ò÷Hp™Çô!N{§Óÿ΢vJòÅ™lL, ìÖÀ§�w`F, îÿÏÿ°ÿ�ÿjÿHÿ(ÿöþÅþ–þhþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þgþŽþ´þÚþÿþÿ8ÿRÿlÿ‹ÿªÿÈÿçÿ&FfŠ­ÑöFo˜Æô!N{¨ÔФwKóÆšmM- í×Á«’{cK2ôÿÔÿ¶ÿ’ÿoÿLÿ+ÿùþÈþ–þhþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þgþŽþ´þÛþÿÿ9ÿUÿpÿŽÿ­ÿÌÿêÿ *Ii�°Ó÷ Hq™Èö$Q~«ÙÑ¥xL ôÇ›nN.îØÂ¬–~fO7ùÿÚÿ»ÿ˜ÿuÿQÿ.ÿüþËþšþhþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þgþŽþ´þÛþÿÿ:ÿWÿsÿ’ÿ°ÿÏÿîÿ-Ll�²Öù"Js›Éø&T�®Ü Ñ¥xL ôÇ›nN.îØÂ¬–~fO7ùÿÚÿ»ÿ˜ÿuÿQÿ.ÿüþËþšþhþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þgþŽþ´þÛþÿÿ:ÿWÿsÿ’ÿ°ÿÏÿîÿ-Ll�²Öù"Js›Éø&T�®Ü Ñ¥xL ôÇ›nN.îØÂ¬–~fO7ùÿÚÿ»ÿ˜ÿuÿQÿ.ÿüþËþšþhþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þgþŽþ´þÛþÿÿ:ÿWÿsÿ’ÿ°ÿÏÿîÿ-Ll�²Öù"Js›Éø&T�®Ü Ñ¥xL ôÇ›nN.îØÂ¬–~fO7ùÿÚÿ»ÿ˜ÿuÿQÿ.ÿüþËþšþhþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þgþŽþ´þÛþÿÿ:ÿWÿsÿ’ÿ°ÿÏÿîÿ-Ll�²Öù"Js›Éø&T�®Ü Ñ¥xL ôÇ›nN.îØÂ¬–~fO7ùÿÚÿ»ÿ˜ÿuÿQÿ.ÿüþËþšþhþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þgþŽþ´þÛþÿÿ:ÿWÿsÿ’ÿ°ÿÏÿîÿ-Ll�²Öù"Js›Éø&T�®Ü Ñ¥xL ôÇ›nN.îØÂ¬–~fO7ùÿÚÿ»ÿ˜ÿuÿQÿ.ÿüþËþšþhþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þgþŽþ´þÛþÿÿ:ÿWÿsÿ’ÿ°ÿÏÿîÿ-Ll�²Öù"Js›Éø&T�®Ü Ñ¥xL ôÇ›nN.îØÂ¬–~fO7ùÿÚÿ»ÿ˜ÿuÿQÿ.ÿüþËþšþhþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þgþŽþ´þÛþÿÿ:ÿWÿsÿ’ÿ°ÿÏÿîÿ-Ll�²Öù"Js›Éø&T�®Ü Ñ¥xL ôÇ›nN.îØÂ¬–~fO7ùÿÚÿ»ÿ˜ÿuÿQÿ.ÿüþËþšþhþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þgþŽþ´þÛþÿÿ:ÿWÿsÿ’ÿ°ÿÏÿîÿ-Ll�²Öù"Js›Éø&T�®Ü Ñ¥xL ôÇ›nN.îØÂ¬–~fO7ùÿÚÿ»ÿ˜ÿuÿQÿ.ÿüþËþšþhþ[þYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþYþ[þgþŽþ´þÛþÿÿ:ÿWÿsÿ’ÿ°ÿÏÿîÿ-Ll�²Öù"Js›Éø&T�®Ü A¸¾8 (- ¶ódÂ<}ÄÃõ(¾j|¿€@ Aà@ÍüƒÃAè¾8  üA ¿8 A´¿8 AÌ¿8 Aä¿8 A€À8 A À8 A¼À8 @@@@@@@@AäÀ8 Ö€€€€€€€€€€ AÑÃ8 Ò 0000 ```à€€€€€€€€€€€€ <<800000pppP@@@@@@@@AÊÅ8 €€€AøÆ8 À-`ÃõS€¿àÀà@ A€?¤p]À+‡¤ÂÅ 0=w¾¿ÀÀÀ@Ø@€?�—ö@…+çÂÁÊ¡=d;¿ÐÀÐ@Ø@€?òÒµ@‘­Ã%�=î|¿ÐÀÐ@ø@€?ôýt?94Füt“¼€¿àÀà@Ø@€?åÐâ@FVrÃ)\¾¤p}¿àÀà@Ø@€?�—>À€ŽÃ€¿Å üÀÕøB¨@À¿®ƒÀ®Ã€¿ÙÎÁZäÀÄ€¿…;ÁbP‰Bø@À¿/½@ Š`Ä+>-²}¿àÀà@ A€?ð§ŽÀ/aÄNb�¾�u¿pÁZd Bø@€?Nb¬@�iIJ�o>þÔx¿àÀà@ A€?TãòÁXñmÄ'1¿þÔX¿Ë¡#Á˜nlB¨@À¿ƒ£A¤ÀpÄÙÎw>ìQx¿àÀà@ A€?\�°AÉnzÄ+>-²}¿àÀà@ A€?¶ódÂ<}ÄÃõ(¾j|¿j¼BÁ¨ÆšB¸@À¿}?ÌA€‚Ä€¿ÁÊÁ¨ÆKBØ@À¿Ë¡ŒA€ˆÄ€¿°rÁË¡_B¸@À¿w¾ œŒ‰ÄB`?¾ŸZ¿pÁ¸&Bø@€?ßOÁš-�ăÀÊ> k¿{ÁªñNB¨@À¿AÁÍ8 ОĀ¿åÐbÁš™?,AÀ¿AèÍ8 eô`  !"#AØÎ8 -Nb[ÂfF<Ä�Âu<€¿ AðAAˆÏ8 Ø-Ð?ÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉÀÀÀ@$tI$tÉq=ÂÀq=Â@$tI$tÉü©ÍÀü©Í@$tI$tÉé&áÀé&á@$tI$tÉyéúÀyéú@$tI$tÉ\� Á\� A$tI$tÉôýÁôýA$tI$tÉmç-Ámç-A$tI$tɰr>Á°r>A$tI$tÉÙÎMÁÙÎMA$tI$tÉd;[Ád;[A$tI$tÉ…ëeÁ…ëeA$tI$tɇmÁ‡mA$tI$tÉÏ÷oÁÏ÷oA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉžïoÁbpA$tI$tÉÙÎoÁ?5pA$tI$tɲ�oÁjpA$tI$tÉ)\oÁ!°pA$tI$tÉ= oÁ%qA$tI$tÉ×£nÁ‹lqA$tI$tÉ'1nÁmçqA$tI$tÉ®mÁ°rrA$tI$tÉ mÁVsA$tI$tÉÉvlÁ^ºsA$tI$tÉ�ÂkÁÉvtA$tI$tÉ kÁ–CuA$tI$tÉ-jÁÝ$vA$tI$tÉÇKiÁowA$tI$tÉZhÁJ xA$tI$tÉ)\gÁ yA$tI$tÉÓMfÁ'1zA$tI$tÉ33eÁ)\{A$tI$tÉJ dÁu“|A$tI$tÉþÔbÁ ×}A$tI$tÉP�aÁ+A$tI$tÉq=`Á–C€A$tI$tÉHá^ÁÛù€A$tI$tÉÕx]ÁF¶�A$tI$tÉ\ÁÉv‚A$tI$tɃZÁq=ƒA$tI$tÉÛùXÁ1„A$tI$tÉZdWÁ#Û„A$tI$tɨÆUÁ!°…A$tI$tÉÅ TÁ7‰†A$tI$tɘnRÁsh‡A$tI$tÉ9´PÁºIˆA$tI$tÉÃõNÁ/‰A$tI$tÉ/MÁ“ŠA$tI$tÉB`KÁ‹A$tI$tÉ7‰IÁªñ‹A$tI$tÉ®GÁTãŒA$tI$tÉÙÎEÁ ×�A$tI$tÉ…ëCÁÍÌŽA$tI$tÉBÁ�Â�A$tI$tÉ“@Á^º�A$tI$tÉö(>Á-²‘A$tI$tÉX9<Á¬’A$tI$tɺI:Á㥓A$tI$tÉV8Á¾Ÿ”A$tI$tÉNb6Á�—•A$tI$tɘn4Áh‘–A$tI$tÉú~2Á7‰—A$tI$tÉ\�0Áú~˜A$tI$tɾŸ.Á¼t™A$tI$tÉ9´,ÁffšA$tI$tÉÍÌ*ÁX›A$tI$tÉ`å(Á¢EœA$tI$tÉ%'Á33�A$tI$tÉ+%Á žA$tI$tÉX#Á ŸA$tI$tÉ7‰!ÁTãŸA$tI$tÉw¾Á� A$tI$tÉÁ¦›¡A$tI$tÉ¢EÁ°r¢A$tI$tÉ�—Á¢E£A$tI$tɪñÁo¤A$tI$tÉøSÁÙ¤A$tI$tÉw¾Á¦›¥A$tI$tÉX9ÁZ¦A$tI$tÉj¼Áb§A$tI$tÉ®GÁ�§A$tI$tÉTãÁ˜n¨A$tI$tÉD‹Á{©A$tI$tÉ}? Á-²©A$tI$tÉ ÁÇKªA$tI$tÉåÐ Á/ݪA$tI$tÉ® Áff«A$tI$tɦ›Áyé«A$tI$tÉ�•Áff¬A$tI$tɾŸÁ#Û¬A$tI$tÉ^ºÁºI­A$tI$tÉ`åÁ®­A$tI$tɬÁJ ®A$tI$tÉshÁNb®A$tI$tÉœÄÁ!°®A$tI$tÉ'1ÁÏ÷®A$tI$tÉ®Á?5¯A$tI$tÉd;Áj¯A$tI$tÉÙÁ�—¯A$tI$tÉD‹Áw¾¯A$tI$tÉÓMÁ#Û¯A$tI$tÉÅ Ážï¯A$tI$tÉ1Áçû¯A$tI$tÉÁ°A$tI$tÉ{ÁÏ÷¯A$tI$tɺIÁ;߯A$tI$tÉ×£ÁF¶¯A$tI$tÉÑ"Áî|¯A$tI$tÉÁÊÁ33¯A$tI$tÉ\�Á#Û®A$tI$tÉÕxÁ°r®A$tI$tɃÁÛù­A$tI$tÉ-²Á¤p­A$tI$tÉ%ÁÙ¬A$tI$tÉázÁ33¬A$tI$tÉJ Ááz«A$tI$tÉw¾ ÁF¶ªA$tI$tÉ�• ÁHá©A$tI$tÉ7‰Á©A$tI$tÉš™Áb¨A$tI$tɨÆÁb§A$tI$tÉbÁ¦A$tI$tÉÉvÁyé¤A$tI$tÉôýÁœÄ£A$tI$tÉš™Á\�¢A$tI$tÉÓM ÁßO¡A$tI$tɇ#Á  A$tI$tÉÏ÷%Áü©žA$tI$tÉÃõ(ÁºI�A$tI$tÉ,Á#Û›A$tI$tɸ/ÁZdšA$tI$tÉìQ2ÁHá˜A$tI$tÉ�•5ÁX—A$tI$tÉ`å8ÁœÄ•A$tI$tÉ¢E<Áé&”A$tI$tÉ-²?Áƒ’A$tI$tÉ+CÁÙ�A$tI$tɬFÁö(�A$tI$tÉ?5JÁ¤p�A$tI$tɨÆMÁ9´‹A$tI$tÉB`QÁªñ‰A$tI$tÉôýTÁ-ˆA$tI$tɦ›XÁNb†A$tI$tÉq=\Á�—„A$tI$tÉTã_Á´È‚A$tI$tÉ�cÁÏ÷€A$tI$tÉÑ"gÁÓM~A$tI$tÉj¼jÁ¬zA$tI$tÉìQnÁ= wA$tI$tÉTãqÁ‹lsA$tI$tÉshuÁòÒoA$tI$tÉyéxÁq=lA$tI$tÉ5^|Á¬hA$tI$tɨÆÁé&eA$tI$tÉu“�Áü©aA$tI$tÉd;ƒÁ?5^A$tI$tÉ#Û„ÁÍÌZA$tI$tɰr†Á¼tWA$tI$tɈÁö(TA$tI$tÉD‹‰Á‘íPA$tI$tÉ%‹Á�ÂMA$tI$tÉázŒÁ¬JA$tI$tÉTã�Áü©GA$tI$tɉA�ÁR¸DA$tI$tÉ�•�ÁTãAA$tI$tÉ#Û‘Á ?A$tI$tɇ“Á°rA$tI$tÉ'1¯Á×£@A$tI$tÉd;¯Áã¥AA$tI$tÉÛù®Á'1BA$tI$tÉ!°®ÁþÔBA$tI$tÉ)\®Á7‰CA$tI$tÉôý­ÁìQDA$tI$tÉ�—­Á+EA$tI$tÉé&­Á¬FA$tI$tÉ!°¬Á¸GA$tI$tÉ-¬Á'1HA$tI$tÉ×£«ÁXIA$tI$tÉb«Á\�JA$tI$tÉÉvªÁ#ÛKA$tI$tÉòÒ©Á33MA$tI$tÉé&©Á¾ŸNA$tI$tɼt¨Á¬PA$tI$tÉ^º§Áü©QA$tI$tÉÏ÷¦Á–CSA$tI$tÉ-¦Á‘íTA$tI$tÉ)\¥Áð§VA$tI$tÉ…¤Á˜nXA$tI$tÉ㥣Á‰AZA$tI$tɃÀ¢ÁÅ \A$tI$tÉþÔ¡Áb^A$tI$tÉHá Á1`A$tI$tÉ…ëŸÁJ bA$tI$tÉ‘ížÁ¬dA$tI$tÉ…ë�Á?5fA$tI$tÉTãœÁVhA$tI$tÉ ×›Áú~jA$tI$tɜĚÁ9´lA$tI$tÉ!°™Á‘ínA$tI$tÉ�—˜Á/qA$tI$tÉáz—Á¼tsA$tI$tÉZ–Á�ÂuA$tI$tÉL7•Á{xA$tI$tÉb”ÁjzA$tI$tÉmç’ÁœÄ|A$tI$tÉj¼‘ÁÑ"A$tI$tÉh‘�ÁƒÀ€A$tI$tÉNb�Ážï�A$tI$tÉ33ŽÁÅ ƒA$tI$tÉ�ÁßO„A$tI$tÉòÒ‹Á�…A$tI$tÉ×£ŠÁ!°†A$tI$tɰr‰Á;߇A$tI$tÉ–CˆÁJ ‰A$tI$tÉ{‡ÁL7ŠA$tI$tÉmç…ÁNb‹A$tI$tÉ^º„Á7‰ŒA$tI$tÉh‘ƒÁ®�A$tI$tÉsh‚ÁåÐŽA$tI$tÉ–C�Ážï�A$tI$tÉÅ €Á= ‘A$tI$tÉ~ÁÑ"’A$tI$tÉÁÊ{Á?5“A$tI$tɲ�yÁ¢E”A$tI$tɼtwÁßO•A$tI$tÉXuÁV–A$tI$tÉ}?sÁV—A$tI$tÉL7qÁìQ˜A$tI$tÉL7oÁ¢E™A$tI$tÉ–CmÁ?5šA$tI$tÉ)\kÁ¸›A$tI$tÉ�iÁ œA$tI$tÉ®gÁ/ÝœA$tI$tÉžïeÁ-²�A$tI$tÉq=dÁ�žA$tI$tÉ�—bÁ®GŸA$tI$tÉ aÁ1 A$tI$tÉî|_Áw¾ A$tI$tÉ1^Á˜n¡A$tI$tÉ×£\Á‡¢A$tI$tÉßO[ÁF¶¢A$tI$tÉJ ZÁÓM£A$tI$tÉ/ÝXÁ/Ý£A$tI$tÉw¾WÁZd¤A$tI$tÉ!°VÁHá¤A$tI$tÉF¶UÁV¥A$tI$tÉåÐTÁ�Â¥A$tI$tÉçûSÁÝ$¦A$tI$tÉd;SÁú~¦A$tI$tÉ\�RÁÙΦA$tI$tɶóQÁ‡§A$tI$tɤpQÁøS§A$tI$tÉ QÁ7‰§A$tI$tÉ×£PÁ9´§A$tI$tÉ5^PÁþÔ§A$tI$tÉö(PÁ‘í§A$tI$tÉJ PÁçû§A$tI$tÉPÁ¨A$tI$tÉPÁôý§A$tI$tÉbPÁÏ÷§A$tI$tÉÝ$PÁžï§A$tI$tÉq=PÁHá§A$tI$tÉNbPÁåЧA$tI$tÉ\�PÁ^º§A$tI$tɃÀPÁË¡§A$tI$tÉÛùPÁ…§A$tI$tÉ}?QÁff§A$tI$tÉ7‰QÁ‰A§A$tI$tÉ ×QÁ §A$tI$tÉ'1RÁžï¦A$tI$tÉu“RÁƒÀ¦A$tI$tÉÛùRÁP�¦A$tI$tÉshSÁX¦A$tI$tÉ#ÛSÁ¸¦A$tI$tÉZTÁHá¥A$tI$tÉ/ÝTÁË¡¥A$tI$tÉZdUÁ5^¥A$tI$tÉÏ÷UÁ“¥A$tI$tÉD‹VÁÙΤA$tI$tÉ+WÁƒ¤A$tI$tÉÙÎWÁ33¤A$tI$tÉÉvXÁ;ߣA$tI$tÉÑ"YÁ7‰£A$tI$tÉ#ÛYÁ'1£A$tI$tÉu“ZÁ ×¢A$tI$tÉßO[ÁÕx¢A$tI$tÉ{\Á“¢A$tI$tÉ/Ý\ÁF¶¡A$tI$tÉ®]ÁìQ¡A$tI$tÉú~^Áyé A$tI$tÉøS_Á� A$tI$tÉ-`Á{ A$tI$tÉVaÁð§ŸA$tI$tÉžïaÁL7ŸA$tI$tÉþÔbÁ¨ÆžA$tI$tÉ^ºcÁøSžA$tI$tÉð§dÁ;ß�A$tI$tÉ�•eÁj�A$tI$tÉ+‡fÁªñœA$tI$tÉÕxgÁázœA$tI$tɘnhÁœA$tI$tÉZdiÁ…›A$tI$tÉ5^jÁ= ›A$tI$tÉøSkÁ\�šA$tI$tÉìQlÁošA$tI$tÉÇKmÁu“™A$tI$tɺInÁ‡™A$tI$tÉ–CoÁ�—˜A$tI$tɉApÁ ˜A$tI$tÉd;qÁ¦›—A$tI$tÉX9rÁ¸—A$tI$tÉ33sÁ¾Ÿ–A$tI$tÉ'1tÁÑ"–A$tI$tÉ+uÁ×£•A$tI$tÉÅ vÁö(•A$tI$tɇwÁ¬”A$tI$tÉJ xÁ'1”A$tI$tÉôýxÁF¶“A$tI$tÉžïyÁq=“A$tI$tÉ/ÝzÁœÄ’A$tI$tÉÁÊ{ÁÓM’A$tI$tÉ9´|ÁÙ‘A$tI$tÉš™}ÁZd‘A$tI$tÉáz~Áªñ�A$tI$tÉXÁ��A$tI$tÉ €Áo�A$tI$tÉ…€Áã¥�A$tI$tÉžï€ÁX9�A$tI$tÉV�ÁåÐŽA$tI$tÉ^º�ÁjŽA$tI$tɬ‚Á%ŽA$tI$tÉî|‚Á×£�A$tI$tÉ#Û‚Á¢E�A$tI$tÉ?5ƒÁmçŒA$tI$tÉP�ƒÁP�ŒA$tI$tÉTãƒÁL7ŒA$tI$tÉL7„ÁTã‹A$tI$tÉ…„Áh‘‹A$tI$tÉòÒ„Á–C‹A$tI$tɬ…ÁÏ÷ŠA$tI$tÉNb…Á!°ŠA$tI$tÉ㥅ÁjŠA$tI$tÉ`å…Áö(ŠA$tI$tÉÅ †Á…ë‰A$tI$tÉZ†Á!°‰A$tI$tÉh‘†ÁÕx‰A$tI$tÉ�†Á¢E‰A$tI$tɪñ†Á‡‰A$tI$tɬ‡ÁyéˆA$tI$tÉ–C‡Á�ˆA$tI$tÉff‡Á²�ˆA$tI$tÉ+‡‡Áî|ˆA$tI$tÉ×£‡Á5^ˆA$tI$tÉåЇÁZˆA$tI$tÉ×£ˆÁ‰A$tI$tÉÝ$ŠÁNbŠA$tI$tÉ-ŒÁßOŒA$tI$tÉš™ŽÁð§ŽA$tI$tÉ–C‘Á®G‘A$tI$tÉ= ”Á= ”A$tI$tÉÍÌ–Á´È–A$tI$tɰr™Á5^™A$tI$tÉ ×›Áð§›A$tI$tÉÙ�Á7‰�A$tI$tÉ)\ŸÁHážA$tI$tÉ}? ÁP�ŸA$tI$tÉáz Á7‰ŸA$tI$tɾŸ ÁffŸA$tI$tÉÁÊ Áq=ŸA$tI$tÉÛù ÁbŸA$tI$tÉ-¡Á;ßžA$tI$tÉZd¡Áü©žA$tI$tɾŸ¡Á¤pžA$tI$tÉHá¡Á'1žA$tI$tÉÝ$¢Ážï�A$tI$tɘn¢Áü©�A$tI$tÉj¼¢Á5^�A$tI$tÉJ £Áb�A$tI$tÉB`£Áw¾œA$tI$tÉR¸£ÁjœA$tI$tÉ{¤ÁbœA$tI$tɰr¤Á9´›A$tI$tÉòÒ¤ÁV›A$tI$tÉX9¥Á¶óšA$tI$tɾŸ¥Á\�šA$tI$tÉ= ¦Áé&šA$tI$tÉÉv¦Áj¼™A$tI$tÉ`å¦ÁßO™A$tI$tÉV§ÁHá˜A$tI$tɴȧÁ¤p˜A$tI$tÉq=¨Áôý—A$tI$tÉ-²¨Á7‰—A$tI$tÉ+©Áo—A$tI$tÉ×£©Á¦›–A$tI$tɬªÁÑ"–A$tI$tÉ�•ªÁü©•A$tI$tÉb«Á'1•A$tI$tÉD‹«ÁF¶”A$tI$tÉ%¬Ád;”A$tI$tÉ�¬ÁƒÀ“A$tI$tÉçû¬Á¢E“A$tI$tÉÉv­ÁÁÊ’A$tI$tÉžï­ÁßO’A$tI$tÉsh®Á בA$tI$tÉHá®Á5^‘A$tI$tÉV¯Á`å�A$tI$tÉÍ̯Á˜n�A$tI$tÉ}?°ÁÛù�A$tI$tÉ!°°Á+‡�A$tI$tÉÅ ±Á{�A$tI$tÉP�±Á㥎A$tI$tÉÛù±ÁL7ŽA$tI$tÉNb²ÁÍÌ�A$tI$tɴȲÁZd�A$tI$tÉ-³ÁôýŒA$tI$tÉP�³Á¦›ŒA$tI$tÉyé³Ád;ŒA$tI$tÉ–C´Á;ß‹A$tI$tɦ›´Á…‹A$tI$tÉ‘í´Á/‹A$tI$tÉq=µÁ/ÝŠA$tI$tÉ7‰µÁ\�ŠA$tI$tÉåеÁ–CŠA$tI$tɇ¶Áôý‰A$tI$tÉV¶Áj¼‰A$tI$tÉh‘¶Áî|‰A$tI$tɴȶÁ–C‰A$tI$tÉçû¶ÁV‰A$tI$tÉ+·Á/݈A$tI$tÉV·Á-²ˆA$tI$tÉáz·ÁD‹ˆA$tI$tɦ›·ÁshˆA$tI$tÉR¸·ÁºIˆA$tI$tÉåзÁ'1ˆA$tI$tÉTã·Á¸ˆA$tI$tɪñ·ÁVˆA$tI$tÉÛù·Á%ˆA$tI$tɸÁˆA$tI$tɸÁˆA$tI$tÉçû·ÁˆA$tI$tɶó·ÁJ ˆA$tI$tÉyé·Á‡ˆA$tI$tÉ#Û·ÁÝ$ˆA$tI$tÉ´È·ÁL7ˆA$tI$tÉ9´·ÁÓMˆA$tI$tɦ›·ÁshˆA$tI$tÉú~·Á…ˆA$tI$tÉB`·Á㥈A$tI$tÉq=·Á´ÈˆA$tI$tɇ·ÁªñˆA$tI$tÉ‘í¶Á¬‰A$tI$tɃÀ¶ÁºI‰A$tI$tÉ\�¶Ááz‰A$tI$tÉ)\¶Á!°‰A$tI$tÉé&¶Ámç‰A$tI$tÉ‘íµÁÑ"ŠA$tI$tÉ!°µÁB`ŠA$tI$tɤpµÁË¡ŠA$tI$tÉ/µÁ`åŠA$tI$tÉyé´Á+‹A$tI$tÉ×£´Á¼t‹A$tI$tÉX´ÁƒÀ‹A$tI$tÉJ ´ÁVŒA$tI$tÉw¾³Á5^ŒA$tI$tÉ‹l³Á-²ŒA$tI$tÉ“³Á%�A$tI$tÉ�²Á5^�A$tI$tÉj²ÁF¶�A$tI$tÉo²ÁoŽA$tI$tÉF¶±Á˜nŽA$tI$tÉZ±ÁÍÌŽA$tI$tÉÛù°Á-�A$tI$tÉš™°Á\��A$tI$tÉL7°Áªñ�A$tI$tÉþÔ¯ÁV�A$tI$tɤp¯Á^º�A$tI$tÉJ ¯ÁÅ ‘A$tI$tÉ㥮Á7‰‘A$tI$tÉ}?®Ážï‘A$tI$tÉ ×­ÁX’A$tI$tɘn­ÁƒÀ’A$tI$tÉ%­Á+“A$tI$tɲ�¬Áu““A$tI$tÉ33¬Áçû“A$tI$tÉÁÊ«Áff”A$tI$tÉB`«ÁÙΔA$tI$tÉÏ÷ªÁX9•A$tI$tÉ\�ªÁË¡•A$tI$tÉé&ªÁ1–A$tI$tÉw¾©Á¤p–A$tI$tÉV©Á ×–A$tI$tÉžï¨Áq=—A$tI$tÉD‹¨ÁË¡—A$tI$tÉÝ$¨Á%˜A$tI$tÉ�§Ásh˜A$tI$tÉB`§Á´È˜A$tI$tɧÁö(™A$tI$tɾŸ¦Á+‡™A$tI$tɉA¦ÁTã™A$tI$tÉ`å¥Áq=šA$tI$tÉD‹¥Á�•šA$tI$tÉ33¥Á‘íšA$tI$tÉ/ݤÁ‰A›A$tI$tÉ7‰¤Áu“›A$tI$tÉL7¤ÁTã›A$tI$tÉmç£Á'1œA$tI$tɦ›£Áî|œA$tI$tÉßO£Á¨ÆœA$tI$tÉ1£ÁJ �A$tI$tɜĢÁßO�A$tI$tÉ�¢Á\��A$tI$tɉA¢ÁÙÎ�A$tI$tÉ%¢Á1žA$tI$tÉÍÌ¡Á‰AžA$tI$tÉ�•¡Á¼tžA$tI$tÉNb¡Áð§žA$tI$tÉ33¡ÁþÔžA$tI$tÉ%¡Á ŸA$tI$tÉ/Ý Áö(ŸA$tI$tÉR¸ ÁÓMŸA$tI$tÉ�• Á˜nŸA$tI$tÉÉv ÁP�ŸA$tI$tÉZ Áð§ŸA$tI$tÉb ÁP�ŸA$tI$tɼtžÁ“žA$tI$tÉh‘›ÁV›A$tI$tÉ×£—Áƒ—A$tI$tÉžï’Á;ß’A$tI$tÉ-²�Á®�A$tI$tÉ/ˆÁ/ˆA$tI$tɾŸ‡ÁÉv‡AD‹‚Á¾Ÿ‚A+‡†Á/Ý…AzÁ¬zAœÄ„Á‰AƒATãoÁZdqA˜n‚ÁÕxAZdgÁ“jAL7ÁƒÀvA aÁ)\eA´ÈxÁ\�lA‹l]Á�•cAü©qÁÛù`A{\ÁázdA1jÁ'1TAHáZÁ#ÛeA{bÁNbFA…YÁ‹lgAJ ZÁ¨Æ7AçûWÁ+iAÓMVÁokA¶óQÁj(A°rTÁ+mAbJÁ\�AÉvRÁ¼toA¦›BÁ°rAÓMPÁmçqAü©;ÁºIð@çûMÁƒtA¼t5Áw¾Ï@7‰KÁøSwA¢E0Á ׯ@yéHÁºIzA-,Áj¼�@Å FÁsh}Aî|)Á{f@d;CÁZ€AV(Á.@Ý$@Á{‚AV)ÁB`õ?‘í<Á;߃A¨Æ+ÁÃõ˜?š™9ÁœÄ…AÙ0ÁÏ÷?5^8Á)\�={6ÁR¸‡AÛù@Á¼tÓ¾˜n2Áw¾‰A;ßIÁ¨Æk¿¬.Á#Û‹A/SÁ‡¹¿ƒÀ*Á%ŽAþÔ\ÁÛùþ¿!°&Á–C�A´ÈfÁÏ÷#À+‡"Áu“’AÑ"qÁ7‰IÀ?5Áªñ”AÙÎ{ÁNbpÀÁÊÁZd—AjƒÁ‰AŒÀd;ÁHá™A‡‰ÁÃõ ÀD‹Á‹lœAHáŽÁÉv¶À¨Æ Á= ŸA/Ý”ÁjÌÀÙÁ!°¡A›Á ãÀ#ÛÁsh¤AºI¡Á?5úÀÕxùÀö(§A9´§ÁôýÁ= ïÀÏ÷©A–C®Á+ÁNbäÀÍ̬A¶ó´ÁË¡!Á7‰ÙÀ®¯A´È»ÁÓM.Á�—ÎÀ¦›²A9´ÂÁßO;ÁZdÃÀP�µAj¼ÉÁ\�HÁb¸ÀD‹¸A#ÛÐÁbVÁu“¬ÀD‹»AoØÁ¨ÆcÁÃõ À�•¾AZdßÁ®qÁ/•À×£ÁA�ÂæÁòÒÁX‰ÀR¸ÄA/îÁo‡Á!°zÀÙÎÇA¬õÁÓMŽÁú~bÀyéÊA'1ýÁË¡•Á¬JÀ%ÎA5^Â�Áš™1ÀÝ$ÑAé&¼t¤ÁÃõÀ–CÔAžï ªñ«Á'1ÀNb×AR¸ ÂÕx³Á�—ο�ÚAô}Â%»ÁÍÌœ¿²�ÝA‰AÂ�—ÂÁ�ÂU¿R¸àAúþÂö(ÊÁ ×ã¾åÐãAF¶Â^ºÑÁ®Ga½`åæAff –CÙÁ…«>ÃõéA\$¨ÆàÁX9?ôýìA«'–CèÁ?5Ž?ðAw>+®ïÁw¾¿?óA¢Å.Â1÷ÁœÄð?Ï÷õAq=2ÂXþÁþÔ@`åøAö¨5¢ÅÂ%)@ÍÌûA+9ÂøSÂé&A@ð§þAþT<ÂÖ Â`åX@w¾Bo’?ºI ƒp@Ë!Bd»BÂ-²Â;߃@�BÖEÂ1ÂøS�@#ÛB;ßHÂÍLÂR¸š@-BÖK€Â#Û¥@ÛyBX¹NÂË¡Â/ݰ@}¿B7‰QÂ!° ²�»@úþ B¢ET¬#¢EÆ@F6 BªñVÂVŽ&¦›Ð@mg B…YÂHa)ƒÀÚ@o’ B\¾,Â9´ä@-²Bžo^´È.Â5^î@ÍÌB¢Å`Â)\1 ×÷@5ÞB= cÂþÔ3Âú~AsèBF6eÂj<6‘íAêBÍLgÂP�8–C AHáBìQiÂ�Â:‹l AìÑBw>kÂfæ<¤pAX¹B“m˜î>ÂXA‡–BÚnÂZä@ÂoA…kB=ŠpÂw¾B¾ŸAL7BÅ rÂ…DÂb AÕøBã¥sÂ'1FÂßO#A-²Bhu´ÈGÂNb&AHaB…kv¢EIÂøS)AB­w¯JÂ{,AË¡B)ÜxÂîüKÂð§.A94BÃõyÂ94M‡1A^ºBÕøzÂVNÂßO3AR8Bmç{Â5^OÂ)\5A­B‰Á|ÂÙNP–C7A�B„}Âü)QÂÃõ8AÃuB33~Â…ëQÂÉv:AÁÊBÍÌ~‡–RÂÙÎ;A�BìQÂü)SÂÃõAR¸B!0€Â WTÂßO?AÚB1H€ÂJŒTÂ^º?A¤ðB�U€Âü©T¶ó?AîüB“X€Â'±TÂ@A BåP€Â¾ŸT ×?AÏ÷Bw>€ÂÏwTÂ�?AZäBN"€ÂL7TÂôý>A®ÇBÃõÂBàSºI>A¾ŸBh‘ªqSÂZd=A˜nB“Â…ëRÂìQ¸A“BZdjÂÃõ;Â+A94Bžoh®Ç9Â= AºIBB`fÂ1ˆ7´ÈAøSBƒ@dÂ-5ÂffAVBD bÂd»2ÂF¶û@åPBj¼_ÂX90Âffò@‰AB/]]¦›-Â/Ýè@+ByéZÂyé* ß@P BHaXÂË!(ÂÃõÔ@fæ BœÄU¢E%Âð§Ê@^º BuSÂV"Âö(À@„ BÓMPÂìQ¤pµ@´H B¤pMÂ}?Â\�ª@B…JÂ�Âî|Ÿ@^ºB%†GÂÚÂ'1”@jBÛyDÂ7‰ÂÍ̈@uBVAÂ-Â5^z@R¸BË!>‰Á ªñb@VB/Ý:®GÂ33K@;ßÿA1ˆ7Â}¿–C3@ýA×#4Â,Âo@Ñ"úA9´0Â{ûÁåÐ@L7÷A94-œÄóÁ¦›Ô?–CôAé¦)ÂB`ìÁøS£?ºIñAV&žïäÁ�•c?®GîA‘m"˜nÝÁ?}?ëA‰ÁÂmçÕÁøSã='1èAVÂZÎÁÙŽ¾Å åAøSÂ´ÈÆÁ–C+¿= âAu“ÂL7¿Á®‡¿žïÞAßÏÂ㥷ÁÕx¹¿òÒÛA1 ¬°Á–Cë¿F¶ØA}?š™¨ÁÉvÀ�—ÕAÃuÂÑ"¡Á+'ÀÉvÒA¯ÂF¶™Áw¾?ÀXÏAþÔùÁZ’ÁÅ XÀd;ÌAìQòÁo‹Á°rpÀÅ ÉA/ÝêÁ/݃ÁX9„À%ÆAÉvãÁî|yÁ'1�ÀªñÂA ÜÁÕxkÁÏ÷›À;ß¿AÙÔÁË¡]Á®§ÀþÔ¼A¬ÍÁPÁd;³ÀåйA�—ÆÁ¦›BÁ�—¾ÀåжA¦›¿ÁÕx5Á#ÛÉÀ#Û³A9´¸Á×£(Á‘íÔÀ…ë°A¶ó±Á1Á ×ßÀ%®AøS«Á-²Á+‡êÀö(«AþÔ¤ÁË¡ÁVõÀX¨AÕxžÁ¨ÆïÀ)\ÿÀ\�¥A}?˜ÁþÔØÀƒÀÁ ×¢A/’Á+‡ÂÀF¶ Á+ A–CŒÁþÔ¬À+‡Á+‡�AD‹†Á㥗À–CÁÃõšAªñ€Á33ƒÀ#ÛÁ˜n˜A wÁÙ^ÀZÁÛù•AázlÁu“8ÀR¸ Á�•“A¢EbÁã¥Àªñ$Áq=‘Aú~XÁ)\ß¿V)ÁÛùŽAôýNÁƒÀš¿ -Á�ÂŒA ×EÁsh1¿Ù0ÁË¡ŠA =Áð§F¾\�4Áu“ˆA“8Áu“†A9´4Á`å�>7‰;Á¬„AºI.ÁÇKW?åÐ>Á ׂA¢E*Á×£À?…ëAÁo�Aú~(Á%@yéDÁ´È~A¾Ÿ(ÁÉvF@�ÂGÁš™{Aƒ*ÁÅ €@jJÁD‹xAòÒ-Á˜nž@ÃõLÁ-²uAÉv2Á¾@XOÁ sA“8Á-Þ@P�QÁÉvpAð§>ÁåÐþ@Ë¡SÁÅ nATãEÁ®A7‰UÁ¶ókA…MÁü©AÇKWÁÏ÷iA…UÁßO/Aã¥]Áff>AHáXÁÅ hA^ºeÁj¼LAìQZÁú~fA7‰mÁÅ ZAš™[Á= eA= uÁƒfA9´\Á�ÂcAçû{Áã¥qA¾Ÿ\Áã¥aA{�ÁøS{AÉvZÁÁÊ]Aj¼ƒÁF¶�AjVÁffXAòÒ…ÁþÔ„A´ÈPÁ�ÂQA¢E‡Á¶ó†AÏ÷IÁ¢EJAÃõ‡Ážï‡AjBÁ°rBA!°:Á!°:A$tI$tÉ+3Á+3A$tI$tɺI,ÁºI,A$tI$tɃ&Áƒ&A$tI$tÉìQ"ÁìQ"A$tI$tÉ'1 Á'1 A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ Á A$tI$tÉ®G!Á®G!A$tI$tÉÛù$ÁÛù$A$tI$tÉð§*Áð§*A$tI$tÉ;ß1Á;ß1A$tI$tÉ'1:Á'1:A$tI$tÉ33CÁ33CA$tI$tɘnLÁ˜nLA$tI$tÉ9´VÁ9´VA$tI$tÉR¸`ÁR¸`A$tI$tÉþÔhÁþÔhA$tI$tÉ'1nÁ'1nA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉpÁpA$tI$tÉAèÎ9 èq-à8V{AßOÊAð§Æ>î|Ï?;ßû@Ï÷ËÁ1ÅAP�×>-j@NblAHá¦AÍ̯A@@;ß7@Ï÷A¸¹AÍ̯A@@;ß7@Ï÷AòÒóA'1¨A�•Ã>o¯@ÇK-A�Â�A A@@;ß7@Ï÷Aq=ÂA A@@;ß7@Ï÷AHá¦A33�A@@;ß7@Ï÷A¸¹A33�A@@;ß7@Ï÷A¸‰Áš™A@@j¼„?�—A�ÂmÁš™A@@j¼„?�—Aq=’Á`A@@j¼„?�—A…[Á`A@@j¼„?�—AyéÛÁªñPAË¡Å>5^‚@ A¸‰Áff@A@@j¼„?�—A�ÂmÁff@A@@j¼„?�—A¸ÕAB`1Aq=Ê>‘í�@ôýZd3@ZdAÍÌü@¾ŸAff&@¦›d¿‹lƒ@š™A¾ŸAff&@¦›d¿‹lƒ@š™é@Aff&@¦›d¿‹lƒ@33AAff&@¦›d¿‹lƒ@ÍÌü@ƒÀÞ@ff&@¦›d¿‹lƒ@š™AƒÀÞ@ff&@¦›d¿‹lƒ@-²€Á{Â@ºIÌ>žïÇ?˜nAÉv,Á°r¬@9´È>¦›Ä<‰AØ@þÔÖÁ= ƒ@'1È>ö(|@¦›(A;ߊÁ= Ç?L7É>+‡ö??5AÀÀ€>€¿@@À@€>€¿@@˜nŒAÑ"Û¿�Õ>¸@ƒJA¸éÁš™À@@ffV@š™%AHáÖÁš™À@@ffV@š™%AðÀ�—~Àfff?�µ¿¾ŸÒ@ð@�—~Àfff?�µ¿¾ŸÒ@q=òÁ€À@@ffV@š™%A�ÂÍÁ€À@@ffV@š™%A9´ÉAòÒ¡À9´È>�•k@Ù&Ash]AV¹ÀÖ>Å ð>Ù2A¸éÁ33¿À@@ffV@š™%AHáÖÁ33¿À@@ffV@š™%A9´:ÁÝ$ÁÍÌÌ>´È6¿Vê@q=•AÁÊAÁoÃ>�ÂÅ?ÉvÖ@ã¥ÄA;ß�ÁÍÌÌ>)\Ÿ?yéA-�ÁÇK¡Á9´È>ázÔ¿?5¢@žï_AHá°Á^ºÉ>jDÀD‹€@q=£ÁÛù±Á\�Â>ßO�¿¼ts@¬ÁA³Á+Ç>;ß¿j¼¸@ìQÁ�³ÁÙÎ> �ÀÉv†@'1ãÁªñ³ÁƒÀÊ>øS#?+ÿ@'1zÁ+ÊÁP�×>ºIlÀ/Ýð@5^ïÁffæÁßOÍ>‡‰¿øSã@î|=A+‡úÁVÎ> ×ëÀ-²�?ìQ¼AòR ÂoÃ>sh¹À¿ðÁmçÂffæ>V½Àé&!AÓMÄA�ÂL7É> ×÷À¼tS¿HáÐÁ–C(Â)\Ï>…ëÁ´È?NâB¤p,¸Å>Zd÷Àu“ÀßO¯Aé¦4ÂázÔ>+‡2Á¼ts¿d;žÁmg<ÂÝ$Æ>Év>Áé&½À¾Ÿ£AôýLÂq=Ê>…ëSÁ%ÁÀF6ºÉPÂÙÎ>š™Áu“¨¿é&”Á+[Âq=Ê>ã¥eÁ ãÀ{�Aã¥]ÂázÔ>¨ÆkÁã¥�À²�ÂulÂoÃ>q=$ÁòÒ¡Àî|®A°rv“Ä>ú~xÁ`å Á×£÷Aðg‡ÂÝ$Æ>5^~ÁøSÁ ¡ÁƒÀ‡ÂË¡Å>‹l‡Á 1ÁR¸¬Áª±•Âu“Ø>R¸�Á?5ÖÀ¬Bd;—ÂôýÔ>Ë¡‰ÁÃõØÀX9¯Aƒ€—ÂÙÎ> ˜ÁZ&Á¸ÂA‘íŸÂoÃ>/œÁ®GeÁåОAœÄ¤Â“Ä>+‡¨Á–CyÁ¬ÈAk©Â\�Â>¦›£ÁshwÁÍÌBë«Â)\Ï>�—šÁ¢E(Áú~ŽÁậÂ9´È>J ´Áš™{Áö(ÊÁª°Â'1È>�•¦ÁßOcÁÝ$êA ²Â¼tÓ>J ¥Á/+Á-ªÁɶ¹Â'1È>¼t¸Ážï‚ÁêÂö¨ÅÂ`åÐ>�­ÁÝ$HÁBàB®Ì“Ä>o³Á‡Á‘í‚Á͇Ù>´ÈÓÁÙnÁÅ  Af&ÑÂ`åÐ>F¶×ÁøSŽÁÓMËÁ —ÚÂ;ßÏ>ã¥ÓÁ×£ŒÁú~©A–ÃÚ¦›Ä>33àÁË¡³ÁœÄûAã%ÛÂ= ×>ÙÅÁX[Á9´œÁíÜÂoÃ>HáÝÁTã´ÁðÁuÝÂffæ>“ÖÁ`å&Á…똮àÂázÔ>XÐÁ+}Á�—B®‡åÂ9´È>ôýÑÁøS›Á�•BéÂL7É>Ï÷ÇÁ¬�Á ×ÕA`¥íÂ�•Ã>…ëçÁ½ÁåеÁ¢…ñ–CË>¢EêÁ“®Á¯B¶sòÂòÒÍ>‰AÖÁÅ ”ÁNbºA{”óÂ)\Ï>�—öÁ-°ÁÛù’Á!ðûÂ`åÐ>ûÁÏ÷°Á¨ÆBéfÃÀÊ>ázåÁ{ªÁ�·Áç»Ã“Ä>ü©öÁw¾ÊÁ/•Á¦øÅ>ƒÀÂáz×ÁþÔ¡A\ÃÍÌL>®G Â\�êÁj¼:ÁÕÃÍÌL>®G Â\�êÁ1“Á+Ç Ã¸Å>ÙάäÁ}?ÐAšÙ ÃÍÌÌ>P� ÂÇK×Á�•iÁþ Ã�•Ã>JŒÂ!°ôÁ®GÔÁßO ÃL7É>ƒ@ÂôýÈÁòÒ³Áž¯Ã®Ç>ÂHáÛÁfæ B "ÃÍÌÌ>?5 ÂÕxÒÁ+‡“ÁbÐÇÙ>ßOÂ;ßÉÁZdB#ÛÃð§Æ> Â9´îÁ®GBøÃ)\Ï>.ÂyéØÁD‹%Bm'úIÌ>­Â`åÞÁú~zÁ¤Ð#Ã;ßÏ>1"ªñüÁ)\ÆÁÏ&ÃÏ÷Ó>ÛyÂyéãÁ/B1ˆ'ÃL7É>ƒÀÂ= üÁ7‰B²Ý,ÃßOÍ>J !Âj<ÂÓMÔA¢¥/ÃoÃ>þÔ/ÂßOÂyéBË¡1Ã+‡Ö>Ha%Â)\ôÁºI­ÁÕx3ÃNbÐ>ÇK*ÂP ÂðÁš™6Ãffæ>¦,Âáz÷Á¾Ÿ2ÁçÛ6Ã…ëÑ>yé9Â!0Â33üAìq8Ã�•Ã>¢E2ÂJ ´H/B×ã<ÃoÃ>)\+ÂZäÂ�—ÕÁ‹DèÆË>Zä:ÂVƒÀ»Á'‘GÃ;ßÏ>Å ?Â%ÂÕxóAdHÃË¡Å>R¸CÂF6,Â= ÏÁ“øKÃ;ßÏ>ºICÂÕøÂÍÌ’Áß�PÃ;ßÏ>¼tLÂsè(ÂD -BfQÃßOÍ> ‚?ÂL·ºIÐÁZUÃ;ßÏ>¸JÂ=Š&Âü©BôVÃ'1È>˜nG˜î,ÂokÁJLVÃNbÐ>ƒ@VÂÁJ2ÂP�ÈAB VÃ`åÐ>5^XÂ;_3ÂR¸BÕxXÃÍÌÌ>HáMÂBà-Â#ÛüAáú\ÃshÑ>‹ìTÂþT/ÂVÈA¾_]ÃË¡Å>}¿^ªqGÂßO‹Áwcæ›Ä>R¸`ºIJÂsèBTƒcÃ\�Â>RÂ{>ÂoÒÁ7ÉdÃ)\Ï>ÁJWÂßO4Âé&ÂoiÃ+Ç>ßÏR¶s9Â-¡Á šiÃ…ëÑ>êdÂ= ?ÂZtÁË!kúIÌ>%†mÂyéMÂ…k&Bm'kÃË¡Å>ªqWÂq½?Âyé¥ÁwÞpÃÖ>„l–ÃAÂP�ÄÁd›rÃNbÐ>ݤhÂL7DÂçû—ÁyiuÃÀÊ>'±tÂìQWÂÓMÑAášvÃshÑ>¨FrÂBàLÂÙB×|Ãð§Æ>þÔnºÉU¤p‹Á)}Ã�Õ>/݉ÁU´ÈèA^~ÃázÔ>ÇËtÂ\L‰A²ÁN"~ÃòÒÍ>)\yÂìQXÂðÁy©~Ãffæ>ƒÀqƒÀMÂÉöÂ-"€ÃL7É>)\jÂmgN‰AÒÁVÞ‚ÃòÒÍ>}ÂÚ[ÂË!BômƒÃL7É>'1xÂÍL\ÂJ ¦k„ÃshÑ>YvªñP‘í»ÁHá†Ã¼tÓ>š…Â#[cÂ\�Âö8‡Ã9´È>'±{Â3³`ÂøS¤Ak‰Ã`åÐ>^zˆÂ–Cl¬ïA‡ö‰Ã–CË>²�ƒÂçûh¾Ÿ©Á8ŠÃ^ºÉ>u“‹ÂÏ÷zÂHá Â׋Ã+Ç>= ‚‹lj¨ÆÒÁj‹Ã;ßÏ>Ë¡‰ÂL·oÂÃõ½AËñŒÃ)\Ï>�ŠÂ´HqÂ%ÛAd»ŽÃË¡Å>å�ŠÂºI}ÂÕx˜Aw¾ŽÃ^ºÉ>HáŽÂbЀÂìQB“(�ÃòÒÍ>éæˆÂF¶pÂÑ"ÄÁj<�ÃÙÎ>Á�ºI}ÂÑ"ÃAž�‘ÓÄ>DK�Â3s„Â%âA“Ã…ëÑ>É6�Âé¦x˜nnAªA“ÃÍÌÌ>ì”Âqý„ÂÇKÀÁናÃ)\Ï>‹ì”ÂåPƒÂ9´'®·“ÖCË>«�¾}‡²ARØ•Ãð§Æ>b”‹¬‡ÂXÜAor˜Ã^ºÉ>{””€†Â1BÕ¸™ÃÙÎ>Û¹“ÂFv‚Â\�®‡›Ã+Ç>'ñ—ÂVN‹Âôý·Aº™›ÃÍÌÌ>ü©˜Â„ˆÂôýÉAV®�øÅ>Ç šÂðgŽÂÃõ BÙŽžÃÝ$Æ>×£—Â!°‹Â‰A‹A/=ŸÃ–CË>Å`ŸÂs(�ÂNbÀA߯ Ãð§Æ>PÍ�ÂFv‘ÂðÁ¬\£Ãffæ>Åà£ÂËá�ÂçûÓAwn£ÃªñÒ>¼ôŸÂÛyŒÂ¸ B٥ÃÀÊ>‘ížÂR8�Â.Âþ4¦Ã^ºÉ>R¸£Â¤p•Â!°‰A#›¦ÃNbÐ>s(©Â—ºI—Að'©ÃNbÐ>j<«ÂÃ5™ÂÅ )ÂèÆË>ÙŽ£Â‰A”ÂÕxµAåPªÃ;ßÏ>òÒ©Âçû—ÂázÂVªÃL7É>=J¦Â3s˜Â#ÛÔAÓ�®ÃNbÐ>úþ¬ÂRøšÂÉvÆÁãµ®Ã+Ç>9t³Â;ߦÂã%BV~¯ÃNbÐ>ºÉ¨Â˜–Âî|%Â… °Ã;ßÏ>‡V¬Âü©šÂ‹lµAœ²ÃË¡Å>®‡´Âw¾¨Â´È÷A¾?²Ã�Õ>jü®ÂZä™Âj¼ßAÊ´Ã= ×>¤0´Âð'žÂ–CÑÁá ·Ã= ×>F¶¼Âo’¦Â‰AÓAìQ·ÃòÒÍ>Ëa¸Â“اÂL7»A^zºÃq=Ê>ßO¾Â¯¯Âd;Â?åºÃÍÌÌ>-²¼ÂË¡¬Â‡B‹¬»Ã+Ç>94¸Â㥫Â;_Âfv½ÃÝ$Æ>Ýä¿ÂÚ³ÂøSBðg¿ÃNbÐ>þÔ¼ÂêÂ/ Â�ÀÃ'1È>DËÃÂÑb¶Â“BFÁúIÌ>ú>Áš±ÂøS²ÁÕÁÃ'1È>ÊÂuÓ¼ÂbºARHÁÖCË>.Ȫ1¹Â/ÃÁ ÚÃæ›Ä>B ÌÂêÀÂh‘×AžßÃÃVÎ>�UÉ´ˆ¸ÂTcB‹ÌÄøÅ>ˡŨºÂX9¹Á-’ÆÃ)\Ï>×£ÏÂs(¾ÂðÁœdÇÃffæ>7ÉÍÂTã¸ÂNbŸÁuƒÉÃVÎ>;ÔÂoRðr÷AƒÊÃNbÐ>ÇËÐÂü©¾ÂÚÂ^ªÊÃ'1È>VÌÂÛ¹¾Â{£Á;¯ÌÃ\�Â>`e×ÂDÍÂåЯAìáÌÃÙÎ>R¸ØÂß�ÇÂ…B/-ÏÃ9´È>¶³ÔÂ-ÇÂ…žÁº‰ÏÃÙÎ>¼ôÚÂmçÉÂ?µ,B¾ïÏÃÙÎ>ž/ÓœÂÂòR¸ÞÐÃòÒÍ>5^ÓÂÁÂÂ,BhAÓÃÀÊ>�ÙÂF6ÊÂ\�¥Áç{ÔèÆË>ÚßÂÙŽÐÂ+‡ÈAÓ=ÕÃòÒÍ>âÂ%†ÑÂßÏ(B“˜ÕÃ'1È>ª±ÙÂÁŠÌ°rÎÁѲ×Ã^ºÉ>Í àÂþÔÑÂôýéA^ÚÃòÒÍ>VNåÂ=ÊÔÂú~‘Á;oÝÃÀÊ> ‚춳ݬ&BÙÞèÆË>jãÂfæÓ  BBáÃÏ÷Ó>3sêÂ?5ÖÂNbËAs(âÃ9´È>´òÂoRä‘íÄÁ…+âÃòÒÍ>¯íÂÝÂff ÂåÃ+Ç>šÙëÂ= ßÂË¡™Áœ”åÃ)\Ï>“XõÂ`åãÂ…B-²åÃÝ$Æ>d;òÂ1æÂ\�BffçÃL7É>ÁòÂåÐäÂ-²2B®—èÃòÒÍ>ÍÌïÂ.ßÂØÂÁéîÇ>Õ¸ñšÙäÂðÁ‹lëÃffæ>X9øÂÝäáÂ^ºµÁÃ…ëÃßOÍ>®‡úÂÕ8ꦛ`Á{´ëÃÍÌL>#›úÂ#›îÂòÒËA ÂëèÆË>ØýÂ1ˆîÂ!°¯AXÙëÃÍÌL>#›úÂ#›îƒ@1BuÃìÃÀÊ>ÀõÂ¸ÞæÂ¤p¨&íÃÙÎ>ƒ@÷ÂúþåÂÏ÷B®·îÃ`åÐ>«üÂ94êÂ)\àAáÚîÃP�×>7 ÃB é²�†ÁÃ…ðÓÄ>�7ÖùÂX9¼Á0õÃÍÌÌ>BàÃøÓ÷ÂÝ$ÖAuƒõÃôýÔ>X¹Ã1ÈôÂfæBh!öîÇ>åPÃÁùÂu“ˆÁB�÷Ãq=Ê>!�ìþÂo2B¼ô÷Ã\�Â>°2âEúÂçûÔÁ¦;úîÇ>þtÖÃÿÂJ ÀAòÂúÃòÒÍ>¨†ÃJÃo˜Á°ÒúÃßOÍ>ËAÃöÇ BuÓúÃázÔ>×cÇVøÂçû ¸þüÃÍÌÌ>ìqèÆüÂu“™Á{ýÃÏ÷Ó>F– Ã;ÿÂÙÎâAú^ýîÇ>h1 áÃË!+BqMÿæ›Ä>Ë�ÃmçúI©ÁVžÿÃ+‡Ö>¸ž îÿ¢EÑAyÉÿÃÙÎ># Ãú~ÖC�ÁûÄÝ$Æ>þT Ã+GÃÇK�Ám¿Ä–CË>ç[Ã}¿ÃHáôADSÄshÑ>^ZÃD ÃÓMýAÄ�Õ>jÃwžæ›ÛAÁJÄ\�Â>®'ÃZ$ à פÁ¸fÄòÒÍ>‡vÃã% ÃåУÁ„ĨÆË>XÃm ðòBD£Ä'1È>d;Ã'‘ ÃðÁ=ºÄffæ>Z$Ã3sÃÉv+BÕà ÄÍÌÌ>Û9ÃX9 ÃTãBL ĸÅ>N‚Ã!Ð ÃÕø!Âé Ä`åÐ>ÛYÃ� Ãúþ&B…S ĪñÒ>\/Ã?U Ã;ßÒÁ¤ ÄÍÌÌ>òòÑíì½A²ý Ä)\Ï>´èàúIÂ%V ÄÙÎ>ô}Ã3ó Øn#BBÀ ăÀÊ>3ìÃXûA¬” Ä+Ç>�wðÃÇK Â=Ú ÄƒÀÊ>þTòýÃ�ÂBÏßÄ;ßÏ>shÃRxÃVòAú.Ä^ºÉ>äÃRØÃ?5¶Á ªÄ–CË>3Ó ÃbPÃåÐÙAç ÄòÒÍ>#ûÃJ¬ò�ýAbÄ9´È>òòö3Ã{ŽÁ–«ÄÍÌL>)œ!Ã)œÃTc"Â!°ĪñÒ>¤pÃ9”Ã/Ý‘A1ØÄÍÌL>)œ!Ã)œðrÍA`½ĪñÒ>À#ÃÃ= ÂðgĦ›Ä>‹l#ÃîÜúIBõăÀÊ>öH$ÃyéÃþÔBæÄÙÎ>q#Ã7‰ÃoÿAÝÄ^ºÉ>í%ÃTÃÃÁJ'ÂÕ ÄßOÍ>F–%Ã^zÃðÁ5¾Äffæ>Ùî)ÃøóÃZBÁÄq=Ê>øs(ÃV.!ÃZÏAÓ�ĪñÒ>ßï*Ãø!ÖCÎÁÏÄ�Õ>!p+ÃÖ ÃffïA“Ä®Ç>Tc+ÃÅà$ÃX¸AoÄ'1È>ãÅ-Ë,'ÃZdÖÁ…;Ä`åÐ>á:-Ã×$ÃáúBÉNÄÝ$Æ>¬œ*ÃÇ‹$øž ÂËùÄshÑ>D+,þß"Ã!0%BL‡Ä\�Â>ßï)ÃRø$ÃV×ÁœœÄ–CË>ƒ@.Ão²&îÇBö8ÄòÒÍ>¤p,Ãå0$ÃÇKÉAq½ ÄVÎ>œ0ÃN¢'Ãj¼îA' !ÄÖ>H¡.Ããå#ÃЦ+!ÄÍÌÌ>Ýd.Ãe&ÜÄ*Ât!ÄL7É>8,Ãd;%Ã;ßB)¬"ÄÙÎ>ƒ/Ã!p&ÃHáÂZ$#Äð§Æ>Z$0Ãà)ÃþÔ¾w$Ä^ºÉ>\�1Ñm*Ã�BœL%ÄßOÍ>�B1ÃÛ)ÃøS$B…%ÄßOÍ>üé/ä°'Ã;_B9Œ&ĘnÒ>3S2ê±(Ã�•úÁ–›'ĪñÒ>î4Ãá+ÓýA;Ÿ'ÄoÃ>ÝD4ÃJ /ÃTãŽÂHÁ'Äffæ>´H,ôHÃåÐB²E(Ä;ßÏ>wÞ3üô*ÃB`ÂÝ|)ĨÆË>{”6Ãoò.Ãj<ÂÕð)ÄshÑ>ô=6Ã�â,ÀBì1*Ä'1È>¾¿4Ãb.Ã{‹4+Ä9´È>fF7äp0ÃF¶)Bžw+Ä–CË>ßo4îç,Ãff0“�+Ä)\Ï>î<6ÃXy-ÃÙN Báš+Ä;ßÏ>‡66Ãô]-Ã= ¾At,Ħ›Ä>a9ö3ÑíúÁ%v,ÄL7É>9Ç2ÃúþÂ'Á-ĪñÒ>!°8ôè.ÃP #Bsè.Ä)\Ï>ºI7ÃÑ‚.Ã%ÁAéf/ÄßOÍ> B;Ãþ3Ã;ßÿA}?0ÄVÎ>šÙ9Ã'q1ÃÚÁ#1Ä–CË>q==ÃËÁ5à .Â32ÄVÎ>î|:à2êñ÷A®×2Äð§Æ>%Æ:ÃÕ˜4Üļì2ÄòÒÍ>L—<Ãá:4Ã)\ËA×#3ĸÅ>w=Ã%f7ÃÙN)ÂÓ%3Ä)\Ï>n;ð²2Ã�•ÅÁÓ=3Äffæ>F¶?â%(Ã9´ìÁQ5ÄL7É>H@Ãø9ÃD 2Âyq5ÄshÑ>¬\=Ãß4Ãð§öAÔ6Äq=Ê>�Õ=Ö6ôÈÉA¸>7Ä'1È>¦[@Ãd»9Ã�—¤A9ÄL7É>ü‰Cà<Ã;ßBþ´9Äð§Æ>/]?Ç69ÃÝ$ BV<ÄÝ$Æ>ãÅBö<Ã1B‡F=ÄP�×>‡VBà "7ÃNb°A^º>Äffæ>d;HÃ�1Ã,Bü±?ÄòÒÍ>hqDÃþ<Ãü©úAœ¼?Ä�•Ã>ÁêEþŸ@Ão BfÆ@ÄshÑ>FÃh±<Ã)\ÌAH‘AÄ®Ç>Ï7IÃ'±BÃÉvïÁB�BÄÏ÷Ó>¸IÃ'?ÃË¡ Âq%CÄË¡Å>ͬHÃ?ÕBðr"²}DÄòÒÍ>îHˬ@Ã#ÛìÁÝôDÄ®Ç>1¨KÃ!0EÃb�3Â/EÄ9´È>×ÃHÃRøAÃ�—þA/mEÄ9´È>žÏKðEà W(Â1¨FÄoÃ>²}JÃsHEÃ/ÞÁðßFÄP�×>–MÃyBÃHaBZGÄNbÐ>;¿KîBÃyéîAGÄshÑ>˜nMÃdDÃ+ÓAÑBHÄ)\Ï>'‘NÃçÛEÃË!°‚HĨÆË>‰¡LÃàDÃfæB×›IÄP�×>éfNÃ94Cà —‰Bú6JÄffæ>;ßFÃ;ß9Ã94BuËJÄË¡Å>áZNîgHÃB`ðÁ®÷JÄÙÎ>�õOèfGúIýA®‡KÄ…ëÑ>PÃŒFÃÇKB/eLÄð§Æ>ü©OÃshIÃw> ¢LÄÙÎ>¾ßNþ?Fà Bé®MÄ'1È>jüPÃ3SJÃÙοA=êOĸÅ>üIUÃ!�OÃþÔBdëOÄVÎ>£Sà 7KÃ�BV¶QÄázÔ>ð‡TÃ`EJÃ×£ ÂýQÄ®Ç>P-SÖ£LÃÍÌÓÁCRćÙ>¬VÃFvJÄ'ÂbðRÄÍÌÌ>/½RÓ¸JÃVŽ!BËaSÄ“Ä>UÃ/�OÃVŽ~ÂÑTÄ?çÛOÃçÛEÃåP#B âTÄL7É>¶VüOÃffóÁázUÄÝ$Æ>mGWÃÍ,QÃË¡BÛ‘VÄL7É>Í XÃË!QÃ-²«A‡WÄfff?}Ÿ[Ã}ŸSÃÇK¬Á…WÄfff?}Ÿ[Ã}ŸSÃ`eÂ1WÄ'1È>î|WÉáPÃé&BžWÄ…ëÑ>-ÒWÃZNÃþÔBôåXÄ'1È> YØnRÃj¼ðÁ„YÄ;ßÏ>Ç‹ZØ®QÃ;ߦAw¶ZÄ^ºÉ>ƒà]Ã5¾VÃBà B×ÃZÄVÎ>É–YÃm'QÇ–ÂìÙZÄVÎ>‹LZÃ9ÔQÃÇKüÁ¤˜[Ä^ºÉ>ðg\ÃøSUÃÛùÐA×Ã[Äq=Ê>5Þ\Ã?•UÃ`å�Áì[ÄÍÌ ?¼”_Ã�ÕXÃ�B j\ÄÍÌÌ>œdZÃB`Rà ŠAßç\ÄÍÌ ?Ýä`ÃË�ZÃZÂÏ_^Ä–CË>^š_âXà ÒAÛY_Ä;ßÏ>u“`Ã{´WíÂBx_Äu“Ø>)œ`ÃÝ$UÃsh¤Áq}`Ä`åÐ>ìñcîZÃD‹¸AúŽ`ÄÍÌÌ>þ´cÃËÁ[ÃÇËBs˜aÄ^ºÉ>FvaÃTcZÃþÔvÁü¡aÄÍÌ ?7ifÃc`ÃÂAÙöaÄshÑ>ÙneÃ… \ÃTcƒÀbÄ;ßÏ>3cÃqZÃmçÂhcÄL7É>ßodÃP�]Ãyé}“8cÄ?Z_ÃZUÃ\�‡ÁhYcÄÍÌ ?“8hÃËaðr¬ÁqýdÄÍÌ ?ÇëiÃF–aÃj¼ØAD+eĨÆË>OiÃÙŽaÃ#ÛBá¢eÄ;ßÏ>N"gÃ/^Ã#Â+çeÄP�×>ž¯gø~\Ã%ÂÁ×fÄÍÌ ?¾?kÃDdÃÏw8B-ªfÄòÒÍ>‹¬eÃô]]Ã…ÊÁ1€gÄÍÌ ?1hmÓ˜fÃh‘ÂTshÄ)\Ï>-2lÃ/}cÃR¸ìÁáÒhÄÍÌ ?ãnîgÃã%B¤(iÄ“Ä>˜lØfÇNÂDëićÙ>7Ilë`Ã…ôAD jÄÙÎ>y)pÃ;gÃTã÷Á1PjÄÍÌ ?‹,qÃb�iÚ™ÂkÄÍÌ ?Ë�qÃ^:iÜDBf&kÄš™Ù>-oÃRXcÃ?5OÂR(kÄL7É>¬|nÃî|gÃ�•7Á^‚kÄÍÌ ?�UròkÃj<BÝkÄÙÎ>¤ðqÃþTiÃX9ˆÁ/ulÄÍÌ ?ìtÃÏ×lÃVž§lÄÍÌ ?¸>tÃAmâÅBÙFmÄßOÍ>-²tÃã…là ×ÂúÖmÄÍÌ ?�—uèFmÃ�•�Á“ømÄÍÌ ?­uîgoÃV`ÂPnÄ^ºÉ> sÃ�âkþŸOB´hnÄshÑ>®‡qÃß/hÃo-Á'ynćÙ>uuÃÇkiÜÄB1€nÄL7É>ZDuÃYnêñºÁÃínÄÍÌ ?ìqwÃ`EqÃ\�MÂçÛoÄ'1È>¤°vàpÃP�ÂÁfFpÄÍÌ ?BàxÃHaræ›{ÂÇKpÄNbÐ>/½tÃ߯kÃ�†ÁRPqÄÍÌÌ>7IxÃsHpÃd»BB\qÄNbÐ>L÷vÖãmâE} qÄ?o²wÃo²mÃ33PBXArÄ`åÐ>Ëwô¨nÃ= `ÂVFrÄL7É>ßoyþrÃàÀVŽrÄ®Ç>‹,zÃÛ™sÃ…_ÁɦrÄP�×>N‚yÃéfnÃ= 0BÁÊrÄbØ>ÉöyÃ%¦nÃçûuÂZÔrÄ9´È>!ÐyÃuórÃw>BèrÄVÎ>ÇË{ÃDKsÃ-²¶ÁÕ0sÄßOÍ>5~zÃøSrÃ-MBÃtÄ9´È>yÉzÃÍ tÃ)\ñÁ¶tĨÆË>žo|Ã}¿tæ›ÇÁ ZtÄ+‡Ö>²}{øžpÃݤhÂÒtÄÍÌ ?DK~Ãü wÃÃõ\B‡ÖtÄÝ$Æ>þ4{Ã#u曌ÁRètÄL7É>d[{Ãq]tÃòҗºùuĘnÒ>:|ÃZ„rèƅÂ7‘vļtÓ>¨&Ã5>uÃw¾¨ÁÓ½vĨÆË>áú|Ã\OuÃ!0vÂðçvÄÍÌ ? 7€ÃZ¤yà ×ÂÁwÄÍÌ ?¬Œ€Ã×ãyÃË¡•?TCwÄ^ºÉ>‘½€ÃozÃ-²ŠÁqewÄ+Ç>!p}Ãé&wÃôýÆÁtwÄ^ºÉ>3ó}ÃöÈvà ×8B^zwÄÝ$Æ>5>€Ã¼tzÃX˜ÂL×wÄ)\Ï>%ÃþTvÃçûÙÀ´ˆxļtÓ>9¤€ÃœDwÃ;_:B'ÁxÄÏ÷Ó>¬ �Ãxæ›$Â'ÑxÄÍÌ ?®�ÃÎ|Þï3ÁyĦ›Ä>s8€ÃÃÕzÖC˾DsyĺIÌ>É�ÃÀ{Ã94£ÂVÆyÄÍÌÌ>î|€ÃîüxØnj@LÇyÄVÎ>éV‚à B|Ã…ëÖÁ ÊyÄ'1È>šI€Ã ÚyÃ5Â#zÄÍÌ ?¦Ë‚à}Ã/[Bo2zÄÝ$Æ>Ã%�êQ|Ã;ßòÁw–zÄL7É>õ€Ã�÷zÃþ‘Â¥zÄ9´È> :‚Ã#›}Ãü)ÂüzÄÍÌ ?Í\ƒÃƒ€~ôÈÁÁR{ÄË¡Å>jÌ�Ã�µ}ÃTãçÁZÄ{Ä`åÐ>Rx�ÃR¸yÃøS=œô{ÄÍÌ ?j܃ÃËQ€ÃÕxrBø›|Ä…ëÑ>s(‚ðÒzÃÅ’Â/¥|ÄßOÍ>7™ƒÃÓ Ãw>†Âø«|ÄÍÌ ?�2„؀Ë, ÂTC}ćÙ>®wƒÃDK{Ú™�ÂÙî}Ä33³?`…Ã3„Ú™�ÂÙî}Ä33³?`…Ã3„Ã/]wÂw~Ä33³?Í|„Ã3„Ã+‡kÂ.~Ä33³?öˆ…Ã3„Ã'±_²M~Ä33³?Í|„Ã3„Ã#ÛSÂ?m~Ä33³?Í|„Ã3„ÃÉöKÂN‚~Ä33³? ·…Ã3„Ç–‚ÂJ¬~Ä33³?çË…Ã3„Ã33³¿ºÑ~ÄÝ$Æ>ª±„î�äðM®?Ä33³?3#†Ã3„Ãu“ƒÂªiÄ33³?L7†Ã3„ÃêOÂýÄ33³?¤�†Ã3„Ãß�„Â…€Ä33³?Í|„Ã3„æOB`€Ä9´È>‡v…Ão‚ìܬ¢M€Ä–CË>m§„ÃáÚ€Ãyéö¿NR€Ä^ºÉ>�·…à 2‚ÃTãQÂ?]€Ä33³?Í|„Ã3„ÃÍŒ…Â5r€Ä33³?\ÿ†Ã3„ÃÏ÷×@‰‰€ÄVÎ>¬Ü†Ãáš‚Ã/ÝSÂð»€Ä33³?Í|„Ã3„ú‰†ÂåЀÄ33³?Í|„Ã3„ò݆Âsð€Ä33³?'�‡Ã3„ðò€ÂB�Ä33³?Í|„Ã3„ÖC¤Â;�Ä“Ä> †ÃòRƒÃshèÁm�Äq=Ê>R8…Ó�Ã\vÂ�Ä33³?Í|„Ã3„à ×U �Ä33³?؇Ã3„ÃX9jÂ×�Ä33³?Þ‡Ã3„ÃTc^¦/�Ä33³?Í|„Ã3„ÃÑ¢eBöH�Ä+Ç>†Ã�ׂÃ- ÁTW�ĘnÒ>D†ÃÃE�à ¿%r�ÄßOÍ>‡Ãéö‚ÃZd*Â��Ä�•Ã>�E‡ÃL—„ÃÖ,BbÀ�ÄßOÍ>3cˆÃÛI„ÃÅ D‡Î�ÄÍÌ ?“HˆÃ¤p„èÆVBÏ+‚ÄÏ÷Ó>ú^‡Ã´H‚üt[@ÕT‚Ä9´È>N’ˆÃ`5…ÃòRAÂÕ¨‚ÄÍÌ ?18‰Ã´8…Ã94ÂÁº‚Ä�Õ>ºÙ‡ÃÁš‚Ãw¾ÝÁÊ‚ÄòÒÍ>–ó†Ã{Ô‚Ã…k3BËÍ‚ÄÙÎ>°b‰Ã–…Ã#Û*ÂÏÓ‚Ä'1È>j¼ˆÃ^j…Ãmg<ÂbTƒÄÍÌ ?¨ö‰ÃE†ÃÁÊ­@9pƒÄshÑ>ÇKŠÃÓ�…ÖÃ;B?¹ƒÄVÎ>ú.ŠÃqí…ÃVŽ<ÂÏ÷ƒÄÍÌ ?fÆŠÃ�‡‡ÃƒÀ¦@d„Ä)\Ï>“‹ÃP½†ÃþÔxÀ¤t„ĺIÌ>ü)ŠÃA†ÃV3ÂŤ„ÄÍÌ ?Õ˜‹Ã¨ö‡Ãîü0B¦×„Ä…ëÑ>uã‹ÃÁ*‡Ãã%\B‘݄ēÄ>馊üä‡ÃF¶¿}ó„Ä;ßÏ>¨V‹Ã¬Ü†ÃßO¥Â‡&…Ä'1È>;_‰Ã¶†ÃœÄ`@L…Ä9´È>ºyŒÃ߉Ãé¦$Â…s…ÄÍÌ ?�WŒÃT‰Ã‘ígBß§…Ä'1È>PM‹Ãšù‡Ã…ë{ÁÛµ…ÄL7É>ßOŠÃ؆Ã;ßÿÁ-º…Äð§Æ>P‹Ã7 ˆÃ ׯÁ‹Ð…ÄÍÌÌ>kŠÃ j†ÃP�Âé"†ÄÍÌ ?LçŒÃTÓˆÃHaTBÃ-†Ä+Ç>ÏwŒÃžO‰ÃºIjÂÝP†ÄÍÌ ?/­�Ó؉êñ›Á5V†ÄßOÍ>Ó=‹Ã(‡Ãü©ñ¾o‚†ÄªñÒ>é¦�ÃuÈÃ/ÝbBç߆ÄL7É>qÝŒÃöh‰Ãƒ@Âh)‡ÄÍÌ ??µŽÃš9‹Ãú~_Âö0‡ÄÍÌ ?®·ŽÃƒ‹ÃÇKÂÁ1X‡Ä¸Å>Ù�Ãu3ŠÃã%7Bh‘‡ÄL7É>ìÁŽÃH‹Ãu“°‡ÄÍÌ ?\?�ÃJÜ‹ÃjJB¼(ˆÄ�•Ã>JìŽÃLGŒÃP�RÂ!4ˆÄÍÌ ?ôí�Ãb ŒÃºIÞÁbpˆÄÍÌ ?dÛ�Ãj\ŒÃî|ºÁ²©ˆÄ…ëÑ>9„�ÃuÊösFÂ!üˆÄÍÌ ?Lç�æK�Ãj¼TB˜‰ÄÍÌÌ>ª¡�þŸ‹Ã%*Bh%‰ÄÝ$Æ>!À�ÃѲ�ÃçûÁNF‰Ä�•Ã>%F�Ãô��Ã�¾Á9P‰ÄÍÌ ?$‘ÃXéŒÃd;[ÂDc‰ÄôýÔ>ð'�ÃôŠÃìQ%B–¿‰Äq=Ê>m—‘ÃÓí�ÖÃ7ÂòʉÄÍÌ ?û‘Ã9„ŽÃjXBÛ݉ÄázÔ>ßO�ì,‹Ã˜�°î‰Ä¸Å>HÁ�Ã-âŒÃ5ÞB=ZŠÄ+Ç>%¦’Ãßo�Ã1JÁ^ŠÄ;ßÏ>ã•‘Ã! �ÃÑ"“Á‹€ŠÄÍÌ ?çË’ÃÏ÷ŽÃ�•� ®ŠÄ“Ä>o�Ãþ´�ÃòÒ%Âu¯ŠÄÍÌ ?ì1“ÃX �Ó˜mÂÙ.‹Ä¸Å>i‘ôˆŽÃáúÂ[‹ÄÍÌ ?þ”Ãô½�ÃßO9B`•‹Ä\�Â>üé’ÃHa�ÃÑ¢BTÓ‹ÄÙÎ>á ”Ãm·�ÃVKBbà‹ÄßOÍ>é–’Ãm‡ŽÃ®Ç¬à‹ÄÍÌ ?)¼”ÃÙ>‘ÃfæB ~ŒÄ9´È>H‘”Ão2‘ÃçûÁb ŒÄÍÌ ?¦ –à ’ÃòR/B˜¶ŒÄÙÎ>�2”Ãîì�ÃmçÂq½ŒÄÍÌ ?ãÕ•Ã-‚’Ãã%,¶ߌĪñÒ>X‰”ÃÛ™�Ã-CÂå�Ä9´È>Þ“ÃÙn�Ã�—ïAž+�Ä^ºÉ>éV–Ã-Ò’Ã`eBPµ�Ä®Ç>H�–Ã79“Ã-2-B3ç�ÄL7É>#{•Ã^ ’ÃÅ ×Áî�ÄÍÌ ?Çk—ÃìQ“Ã`eœŽÄ¦›Ä>²Í–ð”Ãyé¤$ŽÄNbÐ>�R–ÃZÄ‘Ãj< B9LŽÄ˜nÒ>Ø–ÃX ’ÃP�¤ÁwªŽÄÍÌ ?F¦˜ÃŽ•ÃÃõÂB°ŽÄ)\Ï>Ï·–ÇV’Ãð§üAu׎ÄË¡Å>ø³—Ã�·”Ã}?ÛA-*�Ä^ºÉ>Z”˜ÃR•ÃÙΩÁ;g�ÄÍÌ ?(™ÃT³•ÃÉvBçÇ�ÄòÒÍ>D»—Ó“ÃyéBÝ�ÄòÒÍ>7i˜Ã=:”Ãçû�Áð�ÄÍÌ ?ÙšÃV–âEãAw*�ÄL7É>hQ™ÃÓݕÚ™ÀA´,�Ä;ßÏ>ÉšÃd‹•Ã;ß²A5®�Ä®Ç>RȚÉ‘—Ã9´vÁšµ�ÄÍÌ ?º›ÃÓí–Ã,BÇ‘Äq=Ê>¸¾˜Ã´•ÃÇËÂh¡‘Ä`åÐ>DË™Ã1(•Ã+qÁ«‘ÄÍÌ ? ZœÃ=:™ÃF¶»ÁTß‘ÄßOÍ>ðW›ÃsH—æ›öA¼’ÄÝ$Æ>ÁŠšÃ‹—öóâA7©’Ä+‡Ö>“ˆ›ÃP–ÃÀÂÛ±’ÄL7É>Ï·šÃ‘=—Ã}?ýÁ#»’Ä`åÐ>)L›Ã'±–Ã×£ÙÁwÊ’Ä\�Â>šé›ÃÛi™ÃÁÊ�Á3ÿ’ÄÍÌ ?5î�Ã#›šÃZBf“Äð§Æ>VþšÃæ—ÃNb“@“ÄßOÍ>RX›ÃœD—ÃÙB?é“Ä®Ç>³œÃÑr™Ã-ÁÁ¸î“Ä–CË>‡žÃ#;šÃ ×BV®”Ä)\Ï>ô��Ã`5™ÃÙíAšA•ÄÏ÷Ó>‡6ŸÃ3šÃ㥤Á`i•ÄL7É>´X ÃƒàœÃÇKAmÏ•ÄshÑ>¿¡Ã{�ÃNbÅAL�–ÄbØ>Å0¢Ã¼„œÃ= ÷A–ã–Ä�•Ã>'Q¢Ã馟äpÝÁÿ–ÄË¡Å>Õ¢Ã^êŸÃã¥ÛA¤d—ÄòÒÍ>É–£Ã�wŸÃ¦›üÁff—ÄòÒÍ>¢e£ÃÇ;ŸÃÙΔA7¡—ÄÖ>m¥ÃH±ŸÃ sA,˜ÄoÃ>²}¦ÃÃå£Ãƒ¸A 2˜Ä'1È>¯¥ÃüY¢ÃZ±Áb@˜ÄË¡Å>Ù¥Ãáê¢Ã¸wÁݘĖCË>Ç˧Ã-¤Ãáz³Á=ê˜ÄºIÌ>Õ8§ÃªQ£Ã7‰cÁ²™ÄòÒÍ>#›©ÃÁz¥Ã;ßéÁÑÖ™Ä+‡Ö>ìq¨ÃJü¢ÃÙÿA°Ú™Ä;ßÏ>¼¨Ãª£Ã¦›°A¦šÄƒÀÊ>`u©Ã¢Å¥ÃX9‡Á¼\šÄ\�Â>´¨ªÃ¼$¨ÃÁÊÆA`›ÄL7É>ƒðªÃx§Ã‡›Á¸›ÄL7É>#Û«Ãe¨Ãð§vAö,›Ä®Ç>mG¬ÃÅ©Ã0Á×›ÄÍÌL>! ­Ã! ªÃ0A×›ÄÍÌL>! ­Ã! ªÃÝ$ÒAb¨›ÄL7É>‡Æ«Ã%F¨Ã²�šA; œÄbØ>=j­Ã+ǧÃ… œ”œÄNbÐ>!€­Ãþô¨ÃázÉÁÇßœÄ;ßÏ>ôÝ®ÃÉfªÃð§úAX-�ĸÅ>Å@®ÃLW«Ã¢E…Ay=�Ä`åÐ>¸.°ÃÇ‹«Ã�¯A×#žÄÝ$Æ>1X±ÃîL®ÃPÁ�žÄfff?Š´ÃŠ®ÃPA�žÄfff?Š´ÃŠ®ÃfæBL«ÄázÔ>¸NËà*ÆÃÇKÌÁ‡.«Ä–CË>BÍÃ#KÉÃu“ÍÁ+û«Ä¨ÆË>f–ÎÃNÂÊÃçûãAu¬Ä)\Ï>ã¥ÎÃÕHÊÃÍÌÐÁuŸ¬Ä\�Â>˜>ÏÃÓ½ÌÃü©Bö¬¬ÄòÒÍ>f&ÎÃwþÉÄÁH­Äfff?ÙÎÐÃÙÎÌÄAH­Äfff?ÙÎÐÃÙÎÌÃÛùþAÉb­ÄË¡Å>%æÎÃð÷ËÃÅ ÀAh­ÄòÒÍ>¸ÎÏÃ9¤ËÃR¸‰i­Ä)\Ï>FFÎÃßÉôȫÁún­ÄÝ$Æ>4ÐÃ?%ÍþŸ÷Á‡š­ÄshÑ>–SÏíÊÃh‘ Bå­Ä\�Â>3ÃÎÃ@ÌÃ�ïA˜ê­ÄºIÌ>HaÏÓxËÃ�•´Á¬,®ÄoÃ>b`ÐðÒÍÃHá¶AuO®Ä@@ÉvÐÃÉöÌøÉAuO®Ä@@ÉvÐÃÉöÌÃ�­A Ž®Ä@@ÉvÐÃÉöÌÃq=ÒA Ž®Ä@@ÉvÐÃÉöÌÃHá¶AÓÍ®Ä@@ÉvÐÃÉöÌøÉAÓÍ®Ä@@ÉvÐÃÉöÌÃHá ‰%¯Ä�•Ã>bÐÎê!ÌîGÖAh�¯ÄòÒÍ>-òÏÃ^ÊËÃffÞÁÙʯÄ`@hAÐÃhÁËÚ™ÁÁÙʯÄ`@hAÐÃhÁËÃÍÌìÁ .°Ä`@hAÐÃhÁËÃ33³Á .°Ä`@hAÐÃhÁËÃffB;°Ä¦›Ä>�RÏÃÙ~ÌÃmçÒA {°ÄNbÐ>}ÐÊËÃffÞÁf’°Ä`@hAÐÃhÁËÚ™ÁÁf’°Ä`@hAÐÃhÁËÖC¥Á°J±Ä…ëÑ>ß¿ÐìüËÃþÔ‘AFš±Ä+‡Ö>¢%ÑÃ'ÁËÃHáÆAmϱÄ@@OÐÃÏÌøÙAmϱÄ@@OÐÃÏÌÖCÛÁ²²Äq=Ê>ÞÏÃP=ÌÃ�½A ²Ä@@OÐÃÏÌÃq=âA ²Ä@@OÐÃÏÌÃo£ÁyA²ÄL7É>yÉÐÃÕHÍÃHáÆAËM²Ä@@OÐÃÏÌøÙAËM²Ä@@OÐÃÏÌÃË¡ØÁöвÄßOÍ>7ÙÏÃVÎËÃÀîA`³ÄßOÍ>ÏwÏÃcËÃøS´Afj³ÄbØ>+gÐÃ�·ÊÃZòÁ-¶³Ä+‡Ö>TSÏÃæÉÃXÃÁÛÁ³Ä¦›Ä>…+ÐîgÍÃoÂy5´Ä)\Ï>ßïÎÃ?•ÊÚ™®ÁX±´ÄshÑ>s˜ÐöóËÃL·ÂþµÄË¡Å>ÆÎÃ!ÐËÃ}?÷AµÄð§Æ>´hÏÃ1HÌà ×ÇAáεĸÅ>Ã5ÐÃ_ÍÃV›A‰éµÄq=Ê>ÓýÐÃ%fÍÃNb²ÁP•¶Ä`åÐ>ÍœÐÃ?ÌÃßÏBD/·Ä–CË>JÏÃL‡ËÃD‹ÅA ¿·Ä'1È>ômÐÃ=Íò ºå·ÄòÒÍ>ZtÏÃçKËÃJ êA\¸Ä“Ä>ÑÐÃ'QÍÖÃB¢I¸Ä`åÐ>FöÎÓXÊúI�ÁRT¸ÄázÔ>ýÐÃãåËÃq=ñÁ5V¸ÄƒÀÊ>¨æÏÃÉ6ÌÃ�•°AXm¸Ä¦›Ä>7¹ÐúéÍösBR¸¸Ä¦›Ä>›ÏÃÃÕÌôÈÂìÁ¸Äð§Æ>3ÏÃÌÃôýåA²Í¸Ä;ßÏ>¢ÐÃϧËüt´Á-ιÄÍÌÌ>-rÐÃÃuÌöóêAyñ¹ÄË¡Å>1èÏÃ3óÌÃ#ÛÁA1„ºÄ;ßÏ>ucÐÃÉöËÃh‘ÌÁ¬ÀºÄNbÐ>ªÐúyËÃAØÀ: QØAÈÆ: †ô )*+2468<>ABDGINOPSY\`beiknorsvyz{~€„‡‰ŒŽ‘’˜šœŸ£§¨­®±³µ·º¾¾ÂÄÅÇÊÌÐÓÕØÚÞàãäåæéìïõøùûþ    #%')+-1459;<>BDFLMOPRWYZ[]]^_bcegjnpruwxz|�‚‡ˆŒ�‘”–™�Ÿ£¥¨­±·º¾ÆÊÎÖÚáçëôù "(,048?DFJORW[_cdhmoqruvz}€�…ˆ‹��‘“““““““““““““““““•—›¢§ª°³µ½¿ÂÄÆÈÉËÑÔÖרAØÎ: -€?ÍÌ ?ÍÌL>33³¾ÍÌL¿AˆÏ: -¸…>ìQ¸=ÍÌL=�Âõ=ìQ8>A¸Ï: -AÆÏ:  DzD@¦D€¶DAèÏ: ˜-�n£¿Nbð>0*9¿Ãõx?ÓÞ`?§(?¼–�>ÓÞà>ãÇH?ãÇH?ŒÛX?|òp?Y†?š?ãÇH?ò°0?Ǻ8?·ÑP? B C㥠¿?5ž>sG¿Ãõx?ãÇH?ƒ?ƒ€>œÄÀ>Ǻ8?ŒÛX?·ÑP?§èh?Y†?.�?¾@?Ǻ8?ò°0?ãÇH?BCI�¿3Ä1>äƒN¿Ãõx?×£ ?œÄÀ>ÓÞ`>¼–�>š?ÓÞ`?Ǻ8?ãÇH?Y†?|òð>ò°0?ò°0?×£ ?Ǻ8?ðAøB£¿†8V=shQ¿Ãõx?|òð>I� >eª >eª >)ËÐ>|òð>ò°°>×£ ?œÄÀ>ò°°>.�?Y†?|òð>×£ ?ÐAàBåп)\�<ü©Q¿§èh?œÄÀ>¼–�>ƒ>ƒ>ò°°>)ËÐ>I� >×£ ?ò°°>I� >Y†?ƒ?ÓÞà>š?ÈAÜBAˆÓ:  steer A¨Ó:  cross AÈÓ:  target AèÓ:  brake AˆÔ:  t A¨Ô:  high AÈÔ:  land AèÔ:  score AˆÕ:  mode A¨Õ:  v AÈÕ:  y AèÕ:  s AˆÖ:  phase A¨Ö:  frame AÈÖ: -,IAàÖ: œ’‡Ù½R¸~¿‡Y¾�—þ¿åТ¾Ûù>ÀÖ¾�—~À¸¿Ñ"ŸÀ‰A ¿ªñ¾Àã¥;¿´ÈÞÀ´ÈV¿�—þÀ…ëq¿L7Á�Â…¿¸ÁåÐ’¿= /ÁNb ¿ªñ>Á¶ó­¿/ÝNÁ ¿¿ƒÀ^ÁôýÔ¿áznÁ‡ù¿Tã}Á‰AÀú~†ÁV&ÀŽÁ“<À7‰•ÁÁÊQÀJ �Á;ßgÀh‘¤ÁTã}À‡¬Áçû‰Àš™³ÁÍÌ”À¸»ÁF¶ŸÀ×£ÂÁR¸ªÀé&ÊÁš™µÀ¬ÑÁázÀÀ'1ÙÁî|ËÀ9´àÁ+‡ÖÀX9èÁ7‰áÀw¾ïÁNbìÀ–C÷Á33÷À¨ÆþÁ%Áé&Â5^Á…ëÂü© Á-² ÂåÐÁázÂ#ÛÁ®GÂþÔÁ�Â�Ámç¬$Áj¼¾Ÿ(Á{”!Â/Ý,Á‘m%ÂV1ÁÁJ)Â/5Áö(-Âé&9Á11Â= =Áyé4œÄ@ÁÁÊ8ÂXCÁ­<ÂL7EÁVŽ@ÂòÒEÁžoD°rFÁåPHÂé&GÁ33LÂL7IÁ{P˜nLÁÃõS´ÈPÁØWÂyéVÁX¹[š™]Á š_ªñdÁç{cÂ�ÂkÁ5^gÂoƒ:…ëqÁ}?kÂoƒ;HávÁÅ oÂo¶óŽÁÏ÷ŠÂP�>;ß�ÁsèŒÂ />´È’ÁÙŽÂ9´H>R¸”ÁºÉ�ÂZd>!°–Á^º’Â%�>¦›˜Á«”ÂNb�>�šÁ¦›–‰A >jœÁJŒ˜Âü©±>¼t�Áî|šÂoÃ>VžÁmœÂÖ>VžÁ²]žÂÕxé>–CžÁÓM Â¤pý>w¾žÁw>¢ÂL7 ?V Á˜.¤ÂX9?´È¢Á;¦Âî|?/Ý¥Á\¨Â +?ƒÀ©Á}ÿ©Â= 7?¼t­Ážï«Â�•C? ±Á¾ß­ÂÅ P?‹l³ÁbЯÂ/]?×£µÁÀ±ÂƒÀj?¦›·Á!°³ÂìQx?+‡¹ÁB µÂ33ƒ?°r»Áb�·Â5^Š?j½Áƒ€¹ÂÁÊ‘?V¿Á!p»ÂL7™?}?ÁÁB`½Â`å ?ö(ÃÁßO¿Â9´¨? ÅÁ@ÁÂ×£°?bÇÁž/ÃÂ9´¸?ÛùÈÁ;ÅÂ`åÀ?yéÊÁÙÇÂL7É?;ßÌÁwþÈÂü©Ñ?´ÈÎÁîÊÂq=Ú?R¸ÐÁ²Ý̪ñâ?®ÒÁPÍÎÂã¥ë?�—ÔÁî¼Ð¦›ô?…ÖÁ‹¬ÒÂh‘ý?î|ØÁ)œÔÂZd@shÚÁD‹Öžï@øSÜÁázØÂ¦› @ºIÞÁjÚ®G@×£ßÁšYÜÂ@Ë¡àÁ7IÞƒÀ@Ë¡àÁR8àÂP�@…àÁm'âÂj$@ZdàÁ ä®G)@‡áÁ%æÂÝ$.@¦›âÁ?õçÂo3@ÙäÁÝäéÂ8@ZèÁøÓë‘í<@Ñ"ìÁÃíÂ…ëA@q=ðÁ-²ïÂyéF@ÙóÁH¡ñÂmçK@çûöÁå�óÂÃõP@‰AùÁ€õ¶óU@ÇKûÁo÷ªñZ@‰AýÁ5^ùÂ`@L7ÿÁPMûÂVe@h‘Âj<ýÂJ j@+‡Â…+ÿÂ= o@ ‚ÂP�Ót@ÕxÂ…Çy@‘m¬|Ã{~@shÂ9tÃ7‰�@B`ÂÇkÄ@øSÂTcÃÉv†@ÙNÂáZÑíˆ@®G °RÃ)\‹@d; Â=JÃÁÊ�@?5 ÂËA ÃX9�@. š9 þŸ’@Ñ" Â'1 Ãôý”@¦Âö( Ã)\—@�ƒ Ã-²™@= ÂRÃ1œ@ ÂßÃÓMž@îü®æ› @ªñÂ;ÿÃÙ¢@yé ÷Ç¥@ZäÂÙîÖC§@øÓ¨æäp©@u“ÂwÞÃ�•«@ÂFÖÃ-²­@ ÂÎèƯ@¶óÂãÅÃòÒ±@ê²½à ׳@�BÂ�µÃòÒµ@Nâ‘­èƷ@-Â`¥Ã-²¹@òÒÂ/�ÃP�»@^ºÂ?•Ãsh½@ÍÌÂP�Ã33¿@ݤ Â…ÃÃõÀ@ÓM"Â/} Ãð§Â@ W#Â?u!ÃZÄ@Z$ÂPm"ÃçûÅ@V%Â`e#ÃP�Ç@ÁJ&Âq]$øÉ@�B'Â�U%þŸÊ@q=(‘M&ÃbÌ@33)¢E'ÃÕxÍ@ü)*²=(ÃÙÎ@ã%+Â6)Ãö(Ð@¬,Â.*ÃshÑ@o-Âf&+þŸÒ@V.Âw,ÃÙÎÓ@/ÂÉ-Ã`åÔ@Ûù/Â.ÃçûÕ@žï0Â+/ÃÛùÖ@mç1Â}ÿ/Þï×@Tã2ÂÏ÷0Ã/ÝØ@Ø3Â!ð1Ã^ºÙ@ßÏ4Âsè2Ã+‡Ú@ÇË5ÂÅà3ÖCÛ@‰Á6ÂÙ4ÃÏ÷Û@F¶7ÂhÑ5æ›Ü@¬8ºÉ6Ã/Ý@ã¥9 Â7Ã^ºÝ@¾Ÿ:Â^º8Ã?5Þ@�•;°²9þŸÞ@VŽ<ÂD«:ÃÛùÞ@7‰=–£;ÃÇKß@ú~>Âç›<ÃP�ß@¶s?Â9”=Ãw¾ß@yi@ÂÍŒ>Ã;ßß@ZdAÂ…?ÃÏ÷ß@²BÂq}@Ãà@7‰BÂÃuAÞïß@`eBÂVnBèÆß@d;B¨fCÃî|ß@Å BÂú^Dàß@î|BÂLWEÃ�—Þ@ð'CÂßOFÃçûÝ@)\DÂ1HGÃ}?Ý@¦Fƒ@HÃjÜ@P HÂÕ8IÃî|Û@33JÂ'1JØnÚ@ LÂ7)KÃ}?Ù@–ÃM‰!LÃÏ÷×@ÖNšMÃ�—Ö@‹ìOÂìNøÕ@HáPÂü OÃ…Ó@ÖQ PÃòÒÑ@ÓÍRÂúPÃ1Ð@´ÈSÂìñQìÎ@q½TÂüéRÃÅ Ì@?µUÂËáSÃÊ@!°VšÙTÃÙÎÇ@ã¥WÂhÑUÃ�Å@¦›XÂ7ÉVàÃ@‡–YÂÅÀWæ›À@P�ZÂR¸Xþ@ ‚[Â߯YÃøS»@î|\Âm§ZÃD‹¸@¶s]¸ž[Ã-²µ@sh^–\ÃÀ²@Tc_ÂP�]ÃF¶¯@/]`œ„^曬@Xa¦{_Ãsh©@ÇKb°r`ì¦@�BcºiaÃÀ¢@jÓ ƒÂË‚ÃòÒ�>¨†ƒÂ‹|‚Ã'1>„Âm÷‚à ×#¼}„ÂNrƒÃ¬¾jü„ÂíƒÃ= —¾Õx…Âðg„Ãd;ß¾?õ…ÂÑâ„üt¿ªq†Â²]…ÃÇK7¿ì†Â“؅þŸZ¿ãe‡Â–S†Ã-²}¿Nâ‡ÂwΆÃNb�¿¸^ˆÂyI‡Ãü©¡¿¦ÛˆÂ{ćÃ!°²¿X‰Â}?ˆÃ�•ÿuӉºˆÃZÔ¿ÍLŠÂ¢5‰Ã/Ýä¿7Ɋ¤°‰Ã}?õ¿ºI‹ÂÇ+ŠÃ!°ÀbЋÂ馊þŸ ÀœÄŒÂ-"‹Ã˜nÀ�Õ�ÂP�‹Ã¬ÀfæŽÂ“ŒÃ^º!À\O�ÂדŒÃé&)ÀbP�Â�ðr0À;ŸŽÂŠ�ò�7À'ñ�ÂãŽÃð§>À®G�ÂH�ŽÃ�EÀô=�¬üŽÃX9LÀR8�Â1x�ÃåÐRÀR8�¶ó�ÃL7YÀR8�Â;o�Ël_ÀR8�ÂÁê�Ã�eÀR8�Âff‘ÃZdkÀR8� â‘ÇqÀR8�²]’Ãð§vÀR8�ÂXÙ’Ã1|Àú>�ÂU“曀ÀZ�ÂåГàƒÀHá�¬L”Ã�…À#›ŽÂsÈ”ÃÙ·ÀRx�ÂZD•ÊÀV�ÂBÀ•ÃÅ ŒÀª1‘Â)<–ìŽÀÇ ’¸–Ã1�Àöè’Â4—ÃòÒ‘À¨Æ“°—Ã…“À×£”Â,˜Ã¸•À‰�•¨˜Ã�—–À5^–Â$™ÃÏ÷—ÀÕ8—ÂB ™Ã}?™À�˜ÂJšÃ˜nšÀ3ó˜Âs˜šÃî|›ÀåЙœ›ÃjœÀ¯šÂ¤�›Ã}?�ÀÍŒ›ÂÍ œÃçû�ÀjœÂöˆœÃ�—žÀ%F�Âþ�àŸÀB žÂ��Ãî|ŸÀ^úžÂîü�èƟÀƒÀŸÂ“xžÃžïŸÀo Â9ôžÃ À¡ÂžoŸÃÏ÷ŸÀ®‡¡ÂáêŸÃ;ߟÀ¢Âf ÃF¶ŸÀw~¢Âåà Ãî|ŸÀdû¢Â¦[¡Ã33ŸÀœ„£ÂFÖ¡ÃHážÀø¤ÂåP¢ÃÉvžÀm§¤ÂDË¢Ãçû�Àq=¥Â¢E£Ã¤p�ÀøÓ¥Â!À£Ã/ÝœÀüi¦Â:¤Ã'1œÀ§ÂÝ´¤Ãî|›À–§Â;/¥Ã!°šÀ,¨Âš©¥Ã#Û™À Â¨Âø#¦ÃÃõ˜À“X©ÂVž¦Ã˜À˜î©Â´§ÃÛù–À ‚ªÂò’§ÃTã•À�«ÂP ¨Ãj¼”À…««Â®‡¨ÃP�“À‰A¬Âì©ÃÓM’À�׬ÂJ|©Ãôý�À%ƭ‡ö©Ã²��À�Õ®ÂåpªÃ-ŽÀh°Â#ëªÃ9´ŒÀ ±Â`e«Ã+‹À¾Ÿ±Âžß«Ãh‘‰Àç{±ÂÛY¬Ãžï‡À¬Ü°ÂÔ¬Ãq=†À°ÂVN­Ãƒ„À+¯Â“È­Ã!°‚À®Ç®Â°B®Ã/Ý€À®Ç®Âî¼®ÃTã}À®Ç®Â 7¯ÃçûyÀ®Ç®ÂH±¯ÃvÀ®Ç®Âd+°Ã…ëqÀ®Ç®Â�¥°Ã�ÂmÀ®Ç®Âž±ÃÕxiÀ®Ç®Âº™±Ã¸eÀ®Ç®ÂײÃ9´`À®Ç®Âô�²Ãö(\À®Ç®Âð³ÃP�WÀ®Ç®Â ‚³ÃHáRÀ®Ç®Â)ü³ÃÝ$NÀ®Ç®Â%v´Ã®GIÀí®Â!ð´ÃZDÀDK¯ÂjµÃ)\?À;°Â9äµÃÓM:ÀÙ±Â5^¶Ã/5À%²Â1ضÃ0À}ÿ²Â R·ÃƒÀ*ÀÛù³Â̷äp%À¤ð´ÂF¸Ãb ÀyéµÂÀ¸Ã¾ŸÀ×ã¶ÂÛ9¹Ã¸À#Û·Â׳¹Ã²�ÀoҸ²-ºÃJ À7ɹÂ�§ºÃjÀúÂh!»Ã¤pý¿j¼»Âd›»ÃJ ò¿¶³¼Â?¼Ã+‡æ¿‹¬½Â�¼ÃHáÚ¿f¦¾Âö½Ãd;Ï¿²�¿ÂÑ‚½Ã�•ÿ–À¬ü½ÃÙη¿b�Á‡v¾Ãmç«¿®‡ÂÂBð¾Ã ¿w~ÃÂj¿Ã“”¿?uÄÂøã¿Ã'1ˆ¿˜nÅÂÓ]ÀÃìQx¿yiÆÂ�×ÀÃ`¿éfÇÂhQÁðrH¿ðgÈÂDËÁÃÅ 0¿…kÉÂþDÂÃb¿ãeÊÂÙ¾Âÿ#[Ë´8ÃÃ;ßϾÇKÌÂo²ÃÃw¾Ÿ¾ð'ÍÂJ,ÄÃ?5^¾L÷ÍÂ%¦ÄÃmçû½¤°ÎÂßÅÃ�Âõ¼øSϺ™ÅÃoƒ=¼ôÏ–ÆÃœÄ > ÂÐÂq�ÆÃ€>B ÑÂ+Çò�¯>–ÃÒÂ�ÇÃd;ß>nÓÂáúÇÃ+?oÔ¼tÈÃÉv?XùÓ˜îÈÃ�Â5?%FÔÂshÉÃVM?áúÓÂNâÉÓd?Ï÷ÓÂ)\ÊÃHáz?fæÓÂÖÊÃþÔˆ?øÔÂßOËÓ”?AÔºÉËÃd;Ÿ?‘mÔ¶CÌÃq=ª?š™Ô‘½ÌÃ}?µ?¢ÅÔÂm7ÍÃÅ À?'ñÔÂh±ÍÃHáÊ?)ÕÂd+ÎÃ�Õ?¨FÕÂ?¥ÎÃà?¤pÕÂ;ÏÃ5^ê?šÕÂ7™Ïæ›ô?ÃÕÂ3ÐÃR¸þ?…ëÕÂ/�ÐÃZ@uÖÂ+ÑîG @á:ÖÂ'�ÑÃÝ$@ËaÖÂDûÑÃHá@¶³ÖÂ?uÒÃP�@C×Â;ïÒÃö(@ª1ØÂXiÓÃ9´ @Ï7ÙÂuãÓø%@‰AÚ‘]ÔÃÕx)@1HÛÂ�×ÔÃ�Â-@bPܪQÕÃ…ë1@YÝÂÇËÕÃ6@²]ÞÂFÖÃçû9@TcßÂ!ÀÖÃTã=@yiàÂ=:×Ã^ºA@oáÂ{´×ÃB`E@°râ˜.ØÃ%I@¶sãÂÕ¨ØÃázL@FväÂ#ÙÃ;ßO@`eåÂP�ÙÃÑ"S@HaæÂmÚÃVV@ú>窑ÚÃshY@,è ÛÃZ\@¢éÂF†ÛÃd;_@ÙÎéƒÜÃçûa@ô½êÂÁzÜæ›d@ázëÂõÜàg@œDìÂ\oÝÃÕxi@�íºéÝèÆk@q½íÂdÞöóm@�WîÂVÞÞÃp@êî´XßÃ…ëq@}ïÂÓßÃF¶s@�ðÂqMàÃB`u@…«ðÂÏÇàÃÛùv@‰AñÂ-BáÃNbx@Øñ‹¼áÃ^ºy@nòÂé6âÃHáz@óÂH±âÃÏ÷{@šó¦+ãÑí|@!0ô¦ãÃ�Â}@¨ÆôÂb äÃff~@¬\õÂášäÃÛù~@¤ðõÂ?åËl@œ„öž�åÃw¾@H!÷ æÃžï@üé÷Â{„æÃ€@þÔøÂÙþæÃ€@/ÝùÂ7yçÃ;ß@ìÑú¶óçÃÙÎ@‹¬ûÂnèò�@ üÂsèèÃ)\@á:üÂòbéà@ÅûÂPÝéôÈ~@-òú®WêÃff~@^úùÂ-ÒêÃ~@¢ù‹LëÃh‘}@#›øÂéÆëÃV}@{”øÂHAìÃáz|@{”øÂÇ»ìà ×{@{”øÂ%6íÃ33{@{”øÂƒ°íÃú~z@{”øÂá*îÃ^ºy@{”øÂ`¥îÃÃõx@{”øÂ¾ïÃbx@{”øÂšïÃ+w@{”øÂ{ðâEv@{”øÂÙŽðÃ}?u@{”øÂX ñÃX9t@{”øÂ¶ƒñÃÑ"s@{”øÂþñÃJ r@{”øÂsxòÃ`åp@{”øÂÑòòîo@{”øÂ/móÃffn@�•øÂ�çóøm@“˜øÂ bôèÆk@ùÂjÜôØnj@Z¤ùÂÉVõÃ%i@X¹úÂ'ÑõÃP�g@òÒûÂ…KöÃ{f@˜îüÂãÅöÃD‹d@+þÂB@÷êñb@Ë!ÿ º÷ÃXa@¸Ãþ4øÃ®_@D«Ã\¯øÃ^@8ú)ùúI\@ãÅäùÃú~Z@øSÃVúÃ9´X@‰áô˜úÃyéV@ÓmÃûÃVU@#ûÃq�ûÃÑ"S@öˆÃÏüÃL7Q@?Ã-‚üÃd;O@N¢ËüüÃ}?M@!0ÃÉvýÖCK@5¾Ã'ñýÃL7I@…KÃ…kþàG@Ï×ÃãåþÃôýD@`eÃ!`ÿÃHáB@òòÃÚÿÃ9´@@; Ão*Ä+‡>@‹ ÞgÄZ<@^š ü¤Ä¬:@1( ÃìáÄ;ß7@?µ ÃÄh‘5@‰A Ã9\Ä–C3@\Ï Ãh™ÄÃõ0@d[ ÇÖÄð§.@œä öĺI,@¼TÃåPÄ…ë)@ոÎÄP�'@´Ã3ËÄ/%@ÙNÃRăÀ"@ž�Ã�EÄìQ @Ìð‚ÄTã@‹ ÃÏ¿ļt@'QÃþüÄÃõ@ç›Ã:Ä+‡@éæÃLwÄ1@ì1Ãj´Ä7‰@d{ÚñÄ= @`Åø.ÄD‹ @ÑÃçkÄJ @°2éÄP�@¢ÅÃ5æÄV@�WÃT#Äú~@´èÃ`Ä@Õxâ�Ä û?Á ÃÑÚÄTãõ?ç›ÃðÄ`åð?šÃUÄmçë?Z„Ã=’Äyéæ?d›ÃmÏÄ…ëá?Ù®Ë Ä‘íÜ?ƒàúIÄžï×?ÃÙ†ĪñÒ?\�ÃÄÄ{Î? Ã' ćÉ?Ç‹ÃV> ÄX9Ä?VÃu{ Ä)\¿?¤�ä¸ Äú~º?ªÃÓõ ÄË¡µ?9”Ãò2 Ä`å°?‡Ã!p Äö(¬?Ï—Ã?­ Ä‹l§?Ãoê Ä!°¢?îœÃ�' Ä{ž?ôüd ÄÕx™?¬Ãì¡ Ä/Ý”?šYÃ ß Ä‰A�?y)Ã9 ĨƋ?–#ÃhY ÄÇK‡?îÇ– Īñ‚?¾ÿÃ¶Ó Ä/}?ÇkÃå Äázt?ɶÃN Ä1l?ËÃ3‹ Ä�•c?ÍLÃbÈ ÄÑ"[?Ï—ÑĪñR?ÑâðBÄ K?Ó-ÃßÄoC?yýÄÑ";?ÄÃ=úļt3?Ãm7ĨÆ+?“XËtÄZ$?�¢ú±Ä/?‘íÃéîÄ?“8Ã,ÄÙ?–ƒÃHiÄžï?ÙÎÃw¦Ä®G?T# æãÄ}?õ>ú~ ÃÕ İrè>#û Ã^Äã¥Û> w!Ã3›Ä)\Ï>3ó!ÃbØÄ�•Ã>oR"ÑÄÙη>X™"ÃÁRÄD‹¬>ì±"Ãð�ÄÁÊ¡>�"ÃÍÄ= —>Ç+"ÃN ÄÍÌŒ>Z¤!Ã}GÄ\�‚>ô!ì„Äü©q>)œ ÃÛÁÄd;_>^š à ÿÄòÒM>š™ ÃJ<Äj<>š™ ÃyyÄ1,>š™ è¶Äã¥>š™ Ã×óÄßO >š™ Ã1Ķóý=š™ Ã5nÄ®Gá=š™ Ãu«Ä9´È=š™ äèÄÅ °=š™ ÃÓ%Äš™™=š™ Ãcĸ…=š™ ÃB Ä®Ga=š™ ÃqÝÄj<=š™ àÄã¥=š™ ÃÏWĶóý<š™ ÕÄÍÌÌ<š™ Ã=ÒÄ㥛<š™ ÃmÄB`e<š™ ìLÄ ×#<š™ à ŠĦ›Ä;¸ Ã}ÇĦ›D;ï ÃÄo;Xy!ÃÁBÄ7 "ä€Äô�"è¾Äoƒº33#ÃÍüÄo»´È#Ã#;Ä ×£»¸^$ÚyÄo¼¼ô$Ã!¸ÄôýT¼D‹%ÃÉöļt“¼Ë!&Ñ5ÄÍÌ̼“¸&ÃZtÄ+½ßO'Ã#³Äžï'½1è'ÃüñÄ`åP½;(ÃÅ0Ķó}½)ÞoÄ�•½Í¬)Ãw®ÄÅ °½–C*Ã?íÄÍÌ̽^Ú*Ã,ÄÕxé½'q+Ãájĸ¾ð,ú©Ä�¾¸ž,ÃèÄyé&¾�5-Ã\'Ä5^:¾JÌ-Ã%fÄòÒM¾c.Ãþ¤ÄÓMb¾dû.ÃÇãÄÙÎw¾ò’/Ã�"Ä+‡¾º)0ÃhaĘn’¾ƒÀ0Ã1 ÄR¸ž¾FV1ÃúÞÄ «¾ì1ÃÓ ÄÙη¾-2Ü\ ĸžœd2Ãd› ĪñÒ¾�‚2Ã=Ú ÄœÄà¾Ì3Ã!Ä ï¾}ß4ÃÏW!Ķóý¾Fv5Ø–!Ä𧿬Ü5Ã`Õ!ÄV¿ƒ 6Ã9"Ä¢E¿Ó-6ÃS"Ä?5¿… 6ÃË‘"Äff&¿òÒ5ÓÐ"ÄÙ.¿;5Ã\#ÄÇK7¿ô5Ã%N#Ä@¿¸4ÃîŒ#Ä9´H¿¶S4öË#Äü©Q¿ôý3à $ľŸZ¿Ãµ3ÃHI$Ä ×c¿o’3È$ÄVm¿Ã•3ÃÙÆ$Ä¢Ev¿o²3â%Äw¾¿ã3ÃjD%Ħ›„¿u4Ã3ƒ%ÄÕx‰¿D4ÃüÁ%ÄVŽ¿Fv4ÃÅ&Ä33“¿®§4Ã�?&Äb˜¿RØ4ÃV~&ÄV�¿ö5ý&Ä…ë¡¿X95Ã×û&Äy馿üi5à:'Ämç«¿^š5Ãhy'Ä`å°¿ÇË5Ã1¸'ÄT㵿ôý5Ãúö'Ä »¿˜.6ÃÃ5(ÄÀ¿;_6Ã{t(ÄôýÄ¿ß�6ÃD³(ĬÊ¿BÀ6à ò(Ä Ï¿åð6ÃÕ0)ēԿH!7Þo)ćÙ¿ìQ7Ãf®)Ä{Þ¿Ñ‚7Ãí)Īñâ¿þ´7Ãç+*Äžïç¿%æ7ðj*ÄÍÌì¿É8Ãy©*Äü©ñ¿+G8ÃBè*Ä+‡ö¿Ïw8à '+ÄZdû¿s¨8ÃÓe+ÄbÀÕØ8ܤ+ĘnÀ 9Ãdã+Äj¼Àj<9Ã-",Ä= Àm9Ãö`,ÄX À²�9þŸ,Ä�• ÀÎ9ÇÞ,ÄòÒ À¸þ9ÃP-ÄÀ\/:Ã\-Ä-À¾_:Ãáš-ĺIÀb�:êÙ-ÄffÀ‰Á:Ãs.İrÀøó:Ã;W.ĘnÀœ$;Ö.ÄjÀ!P;ÃÍÔ.ÄVÀbp;Ö/ĉA À¢…;Ã^R/Ĭ"À«;Ã7‘/Ämç#À <ÃÐ/ÄË¡%ÀðG<ÃÉ0Ä)\'ÀÕx<ÑM0Ä%)ÀD«<ÃjŒ0ľŸ*ÀjÜ<Ã3Ë0Äö(,ÀÍ =Ãü 1Ä-²-Àq==ÃÕH1Ä /Àn=Þ‡1ă0Àwž=ÃfÆ1Ä#Û1ÀÏ=Ã?2ÄÑ"3À¾ÿ=ÃD2ÄZ4Àb0>Ãá‚2Äh‘5À�b>êÁ2Äð§6Àø“>Ã3Ä®7ÀœÄ>ÃL?3Ä9´8À?õ>Ã%~3Äš™9À¢%?Ãî¼3Äú~:ÀFV?ÃÇû3ÄøS;Àé†?Ã�:4Ä1<À�·?Ãhy4Äj¼<Àðç?Ã1¸4ÄB`=À@à ÷4ÄTã=ÀÇK@Ãã55Äff>Àj|@ìt5ÄÙ>À­@Ã…³5Ä+?ÀqÝ@ÃNò5Äî|?ÀAÃ'16Ä®?À¸>AÃp6Ä;ß?À\oAÃÉ®6Äžï?À¾ŸAâí6Ä@ÀbÐAÃj,7Ä@ÀHBÃDk7Ä;ß?À¶3Bê7ÄÙÎ?ÀÝdBÃåè7IJ�?À?•Bþ'8Ä‹l?ÀãÅBØf8Ä ?À‡öBÃ`¥8ÄÙ>À+'CÃ9ä8ÄÉv>À�WCÃ#9Ä{>À1ˆCÃÛa9Äh‘=ÀÕ¸Cô 9ĸ=ÀëCÃ}ß9ÄD‹<À¬DÃV:ÄÏ÷;ÀMDÃ]:ÄøS;À²}DÃø›:ľŸ:ÀV®DÃÑÚ:Ä#Û9ÀúÞDÚ;ć9À\EÃsX;ĉA8À@EÃ;—;Ä‹l7À¤pEÃÖ;ÄÉv6À�¢EÃÝ<Äh‘5À9ÔEöS<ÄD‹4ÀÝFÃ’<Ä…3À�5FÃXÑ<Ęn2À%fFÃ!=Ä®G1ÀÉ–FÃúN=ÄÅ 0À+ÇFÃÃ�=Äyé.ÀÏ÷FÜÌ=Ä-²-Às(GÃd >ÄZ,ÀZGÃ-J>Äo+ÀŒGÉ>Äü©)À¬¼GÃÏÇ>ÄìQ(ÀPíGè?ÄÙ&À²HÃqE?ÄB`%ÀVNHÃ9„?Ämç#Àú~HÃÃ?Ä5^"À‘­HÃÛ@ÄœÄ Àç›Hä@@Ä+Àî|HÃ}@Ä�ÀžOHÃF¾@Ä ×ÀáIÃý@Ä-ÀݤIÃç;AİrÀ�ÕIðzAÄð§À%JÃy¹AÄ/ÝÀ‡6JÃBøAÄoÀ+gJà 7BÄL7ÀÏ—JÃãuBÄ)\ÀöÈJì´BÄ� À#ûJÃuóBÄ�• À,KÃ=2CÄü© À¬\KÃqCÄ®À�KÃ߯CÄ�ÂÀ²½KèîCÄF¶ÀVîKÃq-DÄ^ºÀ¸LÃ9lDÄ)\ÿ¿\OLëDÄZdû¿B€LÃËéDÄ+÷¿o²LÓ(EÄoó¿–ãLÃ\gEÄÛùî¿9MÃ%¦EăÀ꿜DMÃþäEÄ+‡æ¿?uMÃÇ#FÄÓMâ¿ã¥MÃ�bFÄ{Þ¿FÖMÃX¡FÄ^ºÙ¿éNÃ!àFÄ�Õ¿�7NÃéGÄé&Ñ¿ºiNò]GÄ‘íÌ¿#›NÃ{œGÄu“È¿ÇËNÃDÛGÄZÄ¿)üNà HÄÀ¿Í,OÃÕXHÄ㥻¿q]OÞ—HÄ‹l·¿Ó�OÃfÖHÄo³¿w¾OÃ/IÄÙ®¿ïOÃøSIÄú~ª¿!PÃÁ’IÄ¢E¦¿°RPÉÑIÄ…ë¡¿TƒPÃbJÄ-²�¿¶³PÃ+OJÄÕx™¿ZäPÃô�JÄ}?•¿þQüÌJÄ%‘¿`EQÃ… Kđ팿FvQÃNJKÄþÔˆ¿s¨QÉKĦ›„¿šÙQÃßÇKÄ×£€¿º RèLćy¿F6RÃqELÄé&q¿ORÃ9„LÄÃõh¿šYRÃÃLÄ®Ga¿DkRÃÛMÄXY¿°²Rä@MÄü©Q¿-SÃmMÄçûI¿¾_SÃ5¾MÄ\�B¿h‘SÃþüMÄÑ";¿ËÁSÃ×;NÄF¶3¿oòSàzNÄD‹,¿#TÃh¹NÄB`%¿uSTÃ1øNÄ?5¿„Tà 7OÄÇK¿¼´TÃÓuOÄ×£¿`åTÜ´OÄçû ¿LUÃdóOÄøS¿öHUÃ=2PÄ#Ûù¾šyUÃqPÄVí¾ü©UÃϯPÄœÄྠÚUèîPÄôýÔ¾D VÃq-QÄL7ɾç;VÃ9lQĤp½¾JlVëQÄ!°²¾îœVÃÛéQÄ‹l§¾˜ÎVä(RÄ/�¾ÅWÃ}gRĘn’¾'1WÃF¦RÄ9´ˆ¾ËaWÃåRĶó}¾o’WÃç#SÄ…k¾ÃWÃÁbSćY¾uóWÉ¡SÄ®G¾$XÃbàSÄÇK7¾¼TXÃ+TÄyé&¾%†XÃ^TÄu“¾R¸XÃÍœTÄL7 ¾öèXæÛTÄÙÎ÷½šYÃoUÄ/ݽ=JYÃHYUĦ›Ä½ zYØUÄ1¬½D«YÃéÖUÄ�•½çÛYòVÄ%�½‹ ZËTVÄ/]½îÝÄ^Ãmo[ÄÇK7> _ܬ[ÄÓMb>'Q_úé[ÄL7‰>�—_Ãé&\ÄåТ>;ß_Ãd\ÄÛù¾>®'`á\Ä-²Ý>'q`Ã5Þ\Ķóý>Õ¸`ÃD]ÄNb?aÃRX]ÄåÐ"?=JaÃP•]Ä+‡6?Ó�aÃ^Ò]Ä K?ÇËaÃ\^ÄœÄ`?bÃJL^ÄP�w? 7bÃ7‰^Ä®‡?+gbÃ%Æ^Ä“”?¶“bÃ_Ä%¡?q½bÃß?_ÄÉv®?`åbü|_Äj¼?cɹ_ÄHáÊ?8cÃVö_Ä#ÛÙ?acÃ3`ÄXé?Õ˜cþo`ÄL7ù?bÐcÃj¬`Ä/Ý@bdÃé`ÄßO @Ïwdò%aĶó@HádÃNbaÄyé@º©eÃÙžaÄb(@ÏfÃdÛaÄsh1@ gÃßbÄ ;@¤gÃJTbÄ/ÝD@Z¤gô�bÄyéN@ßïgÃÍbÄé&Y@^:hÃh cÄ�•c@œ„hòEcÄ¢En@!ÐhÃü�cÄé&y@¦iÃ5¾cĬ‚@ffiÃoúcÄw¾‡@¤°iØ6dÄÕx�@#ûiðrdÄÇK“@¨FjÃÉ®dÄL7™@ì‘jÃÑêdÄ33Ÿ@îÜjÃÙ&eÄßO¥@f&kÃÑbeÄî|«@åpkÃÉžeÄ^º±@ç»kðÚeÄ“¸@élÇfÄú~¾@ìQlÃ^RfÄôýÄ@îœlÃ5ŽfÄ�•Ë@®çlÃüÉfÄ?5Ò@ì1mògÄ‘íØ@vmÃhAgÄF¶ß@ü©mÃ}gÄ\�æ@ÇËmßgÄÕxí@^ÚmÃZôgİrô@ðçmÃð/hÄî|û@^úmÃ…khÄÇKA`%nà §hÄ/ÝA“XnÃ�âhÄÉvAX¹nÃiÄ{ A¢%oÉYiÄ^ºAð§oÃþ”iÄZdA¤0pÃbÐiÄoA¶pÃÇ jÄ´ÈA‹,qÃ+GjăAÓ�qÃ�‚jĉA"AÅàqÃã½jÄ&A…+rÃ7ùjĨÆ)AÃurË4kÄh‘-ABÀrÃÏokÄ)\1AÇ sÃ#«kÄ+5ALWsÃfækÄôý8A‰¡sê!lÄåЙà K�Äw¾‡@d™Ãi�Ĭ‚@Û‰™Ã+‡�Äé&y@}¯™ÃH¥�Ä¢En@ZÔ™ÃdÃ�Ä�•c@Ûù™Ã‰á�Äé&Y@žšÃ®ÿ�ÄyéN@Rø™ÃÛ�Ä/ÝD@!À™Ã<�Ä ;@f†™Ã=Z�Äsh1@‘M™Ãsx�Äb(@?™Ã°–�Äyé@jܘÃö´�Ķó@¥˜Ã;Ó�ÄßO @îl˜Ã‰ñ�Ä/Ý@ÅP˜ÃבÄL7ù?A˜Ã%.‘ÄXé?Ñb˜ÃƒL‘Ä#ÛÙ?N‚˜ÃÙj‘ÄHáÊ?Ó­˜Ã7‰‘Äj¼?ü٘Þ§‘ÄÉv®?¢™ÃÆ‘Ä%¡?'1™Ãsä‘Ä“”?q]™ÃÙ’Ä®‡?X‰™ÃP!’ÄP�w?Ý´™ÃÇ?’ÄœÄ`?'á™Ã=^’Ä K?¬ šÃ´|’Ä+‡6?Õ8šÃ3›’ÄåÐ"?œdšÃº¹’ÄNb?ƒ�šÃ9ؒĶóý>½šÃÁö’Ä-²Ý>yéšÃH“ÄÛù¾>?›Ã×3“ÄåТ>‰A›Ã^R“ÄL7‰>7y›Ãîp“ÄÓMb>ÙΛÃ}�“ÄÇK7>‡&œÃ®“Äsh>)ŒœÃ¤Ì“Äd;ß=wþœÃ;ë“Ä ×£=w~�ÃË ”Ä®Ga=מÃJ(”ļt=Ñ’žÃ°F”Ä ×£< 'ŸÃþd”ļtµÃ�û£Äf–µÃ°¤ÄhñµÃÛ9¤ÄžO¶ÃY¤Ä¾¯¶ÃÏw¤Ä·ÃT“¤ÄD[·Ã‹¬¤Äƒ°·ÃÃŤĮ¸ÃúÞ¤Äå`¸Ã1ø¤ÄJ¼¸Ãh¥Äš¹Ã *¥Äöx¹Ã×C¥Ä^Ú¹Ã]¥Ä²=ºÃFv¥Ä3£ºÃ}�¥Ä  »Ã´¨¥Ät»ÃôÁ¥Ä¾ß»Ã+Û¥ÄPM¼Ãbô¥ÄÚ ¦Äw.½ÃÑ&¦Ä-¢½Ã@¦Äð¾Ã?Y¦Äž�¾Ãwr¦ÄX ¿Ã®‹¦Ä…¿Ã夦ÄÕø¿Ã¾¦ÄmGÀÃTצć–ÀËð¦ÄãåÀÃà §Ä¼4ÁÃú"§ÄuƒÁÃ1<§Ä-ÒÁÃhU§ÄÅ Âàn§Ä}oÂÃׇ§Ä5¾Âá§ÄÍ ÃÃFº§Ä…[ÃÃ}ӧĪÃôì§ÄöøÃÃì¨ÄRHÄÃ#¨Äm—ÄÃZ8¨Ä%æÄÑQ¨ÄÝ4ÅÃÉj¨ÄuƒÅĨÄ-ÒÅÃ7�¨Äå ÆÃo¶¨Ä}oÆÃ¦Ï¨Ä5¾ÆÃÝè¨ÄP ÇéĬ\ÇÃL©Ä…«ÇÃ4©Ä=úÇúM©ÄÕHÈÃòf©Ä�—ÈÃ)€©Ä%æÈÃ`™©ÄÝ4ÉØ²©Ä–ƒÉÃÏË©ÄNÒÉÃå©Äª!ÊÃ=þ©ÄåpÊÃuªÄ}¿Êì0ªÄ5ËÃãIªÄî\ËÃcªÄ…«ËÃR|ªÄ=úËÉ•ªÄRHÌÃÑ®ªÄf–ÌÃBȪÄËáÌÃôáªÄ¬,ÍÃðûªÄZtÍÃN«ÄJ¼ÍÃ1«Ä‘ýÍÃRL«Ä>ÎÃh«Ä{ÎÃ1„«Ä׳ÎÃÕ «ÄêÎÃ㽫ĠÏÃdÛ«ÄöHÏÃHù«ÄòrÏÃ…¬Ä“˜Ïà 6¬Äç»ÏÃÝT¬ÄÚÏÃçs¬ÄFöÏÃ#“¬ÄßÐDz¬Ä‡&Ðà ҬÄd;Ðâñ¬ÄÙNÐÃH­Äƒ`ÐÃî0­ÄNrÐäP­ÄøƒÐÃRp­ÄÕÐÃ�­Ä�§Ðö¯­Ä7¹ÐÃmÏ­Ä“ÈÐÃ+ï­Ä¨ÖÐÃú®ÄTãÐÃÑ.®ÄÍìÐøN®ÄœôÐèn®Ä úÐÃ Ž®Ä5þÐà®®ÄbÑàήÄHÑàî®ÄHÑà¯ÄHÑà.¯ÄHÑàN¯ÄHÑàn¯ÄHÑÃ Ž¯ÄHÑயÄHÑàίÄHÑàî¯ÄHÑà°ÄHÑà.°ÄHÑàN°ÄHÑàn°ÄHÑÃ Ž°ÄHÑà®°ÄHÑàΰÄHÑàî°ÄHÑà±ÄHÑà.±ÄHÑàN±ÄHÑàn±ÄHÑÃ Ž±ÄHÑà®±ÄHÑàαÄHÑàî±ÄHÑà²ÄHÑà.²ÄHÑàN²ÄHÑàn²ÄHÑÃ Ž²ÄHÑலÄHÑàβÄHÑàî²ÄHÑà³ÄHÑà.³ÄHÑàN³ÄHÑàn³ÄHÑÃ Ž³ÄHÑளÄHÑàγÄHÑàî³ÄHÑà´ÄHÑà.´ÄHÑàN´ÄHÑàn´ÄHÑÃ Ž´ÄHÑà®´ÄHÑàδÄHÑàî´ÄHÑàµÄHÑà.µÄHÑàNµÄHÑànµÄHÑÃ ŽµÄHÑவÄHÑàεÄHÑàîµÄHÑà¶ÄHÑà.¶ÄHÑàN¶ÄHÑàn¶ÄHÑÃ Ž¶ÄHÑà®¶ÄHÑàζÄHÑàî¶ÄHÑà·ÄHÑà.·ÄHÑàN·ÄHÑàn·ÄHÑÃ Ž·ÄHÑà®·ÄHÑàηÄHÑàî·ÄHÑà¸ÄHÑà.¸ÄHÑàN¸ÄHÑàn¸ÄHÑÃ Ž¸ÄHÑஸÄHÑàθÄHÑàî¸ÄHÑà¹ÄHÑà.¹ÄHÑàN¹ÄHÑàn¹ÄHÑÃ Ž¹ÄAˆé; ÄŠ-,IÖ½�—~¿Ö½�—~¿Ö½�—~¿Ö½�—~¿Ö½�—~¿Ö½�—~¿Ö½�—~¿Ö½�—~¿Ö½�—~¿Ö½�—~¿Ö½�—~¿Ö½�—~¿Ö½�—~¿cÙ½rŠ~¿*©¾mV}¿fff¾Gry¿À›¾˜Ýs¿éH®¾€·p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿ ¯¾.�p¿V}®¾eªp¿笾|òp¿Þqª¾shq¿8§¾¡øq¿a£¾xœr¿Ÿ¾øSs¿lxš¾t¿tµ•¾Ðt¿`å�¾”‡u¿ºIŒ¾ù1v¿‚⇾BÏv¿]þƒ¾âXw¿eª€¾KÈw¿HP|¾~x¿5ïx¾ìQx¿ÙÎw¾•ex¿¢´w¾•ex¿¢´w¾•ex¿¢´w¾•ex¿¢´w¾•ex¿¢´w¾•ex¿¢´w¾•ex¿¢´w¾•ex¿¢´w¾•ex¿¢´w¾•ex¿¢´w¾•ex¿¢´w¾•ex¿·Q9¢´w¾•ex¿úíë:¢´w¾•ex¿B`e;¢´w¾•ex¿Ÿ«­;¢´w¾•ex¿B`å;¢´w¾•ex¿à-<¢´w¾•ex¿1,<¢´w¾_x¿ð…I<¢´w¾_x¿B`e<¢´w¾_x¿o�<¢´w¾_x¿)\�<¢´w¾yXx¿RI�<¢´w¾yXx¿z6«<¢´w¾yXx¿£#¹<¢´w¾ìQx¿ËÇ<¢´w¾ìQx¿=,Ô<¢´w¾^Kx¿eâ<¢´w¾^Kx¿×4ï<¢´w¾^Kx¿ÿ!ý<¢´w¾ÐDx¿¸=¢´w¾ÐDx¿q¬ =¢´w¾B>x¿*:=¢´w¾µ7x¿_=¢´w¾µ7x¿Àì=¢´w¾'1x¿�%=¢´w¾'1x¿z6+=¢´w¾™*x¿W[1=¢´w¾ $x¿Y7=¢´w¾ $x¿6<==¢´w¾~x¿8øB=¢´w¾ðx¿9´H=¢´w¾ðx¿_N=¢´w¾bx¿aÃS=¢´w¾Õ x¿‡Y=¢´w¾Gx¿­i^=¢´w¾Gx¿øSc=¢´w¾¹üw¿§h=¢´w¾+öw¿h‘m=¢´w¾+öw¿×r=¢´w¾žïw¿"ýv=¢´w¾éw¿‘~{=¢´w¾éw¿€=¢´w¾‚âw¿J ‚=¢´w¾õÛw¿M„=¢´w¾gÕw¿Ý$†=¢´w¾gÕw¿'1ˆ=¢´w¾ÙÎw¿ Š=¢´w¾ÙÎw¿ßà‹=¢´w¾KÈw¿»¸�=¢´w¾¾Áw¿)\�=¢´w¾¾Áw¿—ÿ�=¢´w¾0»w¿˜n’=¢´w¾0»w¿˜Ý“=¢´w¾¢´w¿˜L•=¢´w¾¢´w¿+‡–=¢´w¾®w¿¾Á—=¢´w¾®w¿Pü˜=¢´w¾‡§w¿uš=¢´w¾‡§w¿š›=¢´w¾ù w¿¿œ=¢´w¾ù w¿vàœ=¢´w¾ù w¿¿}�=¢´w¾kšw¿vOž=¢´w¾kšw¿Àìž=¢´w¾kšw¿›UŸ=¢´w¾kšw¿w¾Ÿ=¢´w¾kšw¿R' =¢´w¾Þ“w¿.� =¢´w¾Þ“w¿œÄ =¢´w¾Þ“w¿œÄ =¢´w¾Þ“w¿œÄ =¢´w¾Þ“w¿œÄ =¢´w¾Þ“w¿œÄ =¢´w¾Þ“w¿.� =¢´w¾Þ“w¿R' =¢´w¾Þ“w¿w¾Ÿ=¢´w¾kšw¿›UŸ=¢´w¾kšw¿Àìž=¢´w¾kšw¿vOž=¢´w¾kšw¿¿}�=¢´w¾kšw¿vàœ=¢´w¾ù w¿¿œ=¢´w¾ù w¿š›=¢´w¾ù w¿uš=¢´w¾‡§w¿Pü˜=¢´w¾‡§w¿¾Á—=¢´w¾®w¿+‡–=¢´w¾®w¿˜L•=¢´w¾¢´w¿˜Ý“=¢´w¾¢´w¿˜n’=¢´w¾0»w¿—ÿ�=¢´w¾0»w¿)\�=¢´w¾¾Áw¿»¸�=¢´w¾¾Áw¿ßà‹=¢´w¾KÈw¿ Š=¢´w¾ÙÎw¿'1ˆ=¢´w¾ÙÎw¿Ý$†=¢´w¾gÕw¿M„=¢´w¾gÕw¿J ‚=¢´w¾õÛw¿€=¢´w¾‚âw¿‘~{=¢´w¾éw¿"ýv=¢´w¾éw¿×r=¢´w¾žïw¿h‘m=¢´w¾+öw¿§h=¢´w¾+öw¿øSc=¢´w¾¹üw¿­i^=¢´w¾Gx¿‡Y=¢´w¾Gx¿aÃS=¢´w¾Õ x¿_N=¢´w¾bx¿9´H=¢´w¾ðx¿8øB=¢´w¾ðx¿6<==¢´w¾~x¿Y7=¢´w¾ $x¿W[1=¢´w¾ $x¿z6+=¢´w¾™*x¿�%=¢´w¾'1x¿Àì=¢´w¾'1x¿_=¢´w¾µ7x¿*:=¢´w¾µ7x¿q¬ =¢´w¾B>x¿¸=¢´w¾ÐDx¿ÿ!ý<¢´w¾ÐDx¿×4ï<¢´w¾^Kx¿eâ<¢´w¾^Kx¿=,Ô<¢´w¾^Kx¿ËÇ<¢´w¾ìQx¿£#¹<¢´w¾ìQx¿z6«<¢´w¾yXx¿RI�<¢´w¾yXx¿)\�<¢´w¾yXx¿o�<¢´w¾_x¿B`e<¢´w¾_x¿ð…I<¢´w¾_x¿1,<¢´w¾_x¿à-<¢´w¾•ex¿B`å;¢´w¾•ex¿Ÿ«­;¢´w¾•ex¿B`e;¢´w¾•ex¿úíë:¢´w¾•ex¿·Q¹¢´w¾•ex¿B`e»¢´w¾•ex¿B`廢´w¾•ex¿1,¼¢´w¾_x¿B`e¼¢´w¾_x¿)\�¼¢´w¾yXx¿z6«¼¢´w¾yXx¿‚âǼ¢´w¾ìQx¿ŠŽä¼¢´w¾^Kx¿n4½¢´w¾ÐDx¿–!½¢´w¾B>x¿¿½¢´w¾'1x¿çû)½¢´w¾™*x¿4€7½¢´w¾ $x¿�E½¢´w¾ðx¿ÎˆR½¢´w¾Õ x¿ `½¢´w¾Gx¿�(m½¢´w¾+öw¿þCz½¢´w¾éw¿¸¯ƒ½¢´w¾õÛw¿ н¢´w¾ÙÎw¿Nb�½¢´w¾0»w¿+‡–½¢´w¾®w¿¬œ½¢´w¾ù w¿åТ½¢´w¾P�w¿UÁ¨½¢´w¾4€w¿V}®½¢´w¾‹lw¿X9´½¢´w¾p_w¿Zõ¹½¢´w¾ÇKw¿î|¿½¢´w¾«>w¿ÐĽ¢´w¾+w¿:#ʽ¢´w¾çw¿`vϽ¢´w¾= w¿•Ô½¢´w¾”öv¿cÙ½¢´w¾yév¿?5Þ½¢´w¾ÐÕv¿ëâ½¢´w¾'Âv¿‹lç½¢´w¾ µv¿úíë½¢´w¾b¡v¿û:ð½¢´w¾F”v¿�Sô½¢´w¾�€v¿"lø½¢´w¾‚sv¿HPü½¢´w¾Ù_v¿¾¢´w¾½Rv¿¥½¾¢´w¾¢Ev¿J{¾¢´w¾†8v¿¸¾¢´w¾k+v¿ð§¾¢´w¾Âv¿ð¾¢´w¾¦ v¿ð… ¾¢´w¾v¿ºÚ ¾¢´w¾ýöu¿M ¾¢´w¾âéu¿¨5 ¾¢´w¾ÆÜu¿Í;¾¢´w¾9Öu¿òA¾¢´w¾«Ïu¿à-¾¢´w¾�Âu¿—ÿ¾¢´w¾¼u¿·¾¢´w¾tµu¿aT¾¢´w¾æ®u¿ªñ¾¢´w¾X¨u¿†Z¾¢´w¾X¨u¿aþ¢´w¾Ë¡u¿¾¢´w¾Ë¡u¿tF¾¢´w¾=›u¿áz¾¢´w¾=›u¿áz¾¢´w¾=›u¿áz¾¢´w¾=›u¿tF¾¢´w¾=›u¿¾¢´w¾Ë¡u¿aþ¢´w¾Ë¡u¿†Z¾¢´w¾X¨u¿ªñ¾¢´w¾X¨u¿aT¾¢´w¾æ®u¿·¾¢´w¾tµu¿—ÿ¾¢´w¾¼u¿à-¾¢´w¾�Âu¿òA¾¢´w¾«Ïu¿Í;¾¢´w¾9Öu¿¨5 ¾¢´w¾ÆÜu¿M ¾¢´w¾âéu¿ºÚ ¾¢´w¾ýöu¿ð… ¾¢´w¾v¿ð¾¢´w¾¦ v¿ð§¾¢´w¾Âv¿¸¾¢´w¾k+v¿J{¾¢´w¾†8v¿¥½¾¢´w¾¢Ev¿¾¢´w¾½Rv¿HPü½¢´w¾Ù_v¿"lø½¢´w¾‚sv¿�Sô½¢´w¾�€v¿û:ð½¢´w¾F”v¿úíë½¢´w¾b¡v¿‹lç½¢´w¾ µv¿ëâ½¢´w¾'Âv¿?5Þ½¢´w¾ÐÕv¿cÙ½¢´w¾yév¿•Ô½¢´w¾”öv¿`vϽ¢´w¾= w¿:#ʽ¢´w¾çw¿ÐĽ¢´w¾+w¿î|¿½¢´w¾«>w¿Zõ¹½¢´w¾ÇKw¿X9´½¢´w¾p_w¿V}®½¢´w¾‹lw¿UÁ¨½¢´w¾4€w¿åТ½¢´w¾P�w¿¬œ½¢´w¾ù w¿+‡–½¢´w¾®w¿Nb�½¢´w¾0»w¿ н¢´w¾ÙÎw¿¸¯ƒ½¢´w¾õÛw¿þCz½¢´w¾éw¿�(m½¢´w¾+öw¿ `½¢´w¾Gx¿ÎˆR½¢´w¾Õ x¿�E½¢´w¾ðx¿4€7½¢´w¾ $x¿çû)½¢´w¾™*x¿¿½¢´w¾'1x¿–!½¢´w¾B>x¿n4½¢´w¾ÐDx¿ŠŽä¼¢´w¾^Kx¿‚âǼìQx¾ÐDx¿z6«¼Zõy¾'1x¿)\�¼¶„|¾bx¿B`e¼Éå¾õÛw¿1,¼÷ä�¾kšw¿B`廓„¾TRw¿B`e»ff†¾°w¿·Q¹pΈ¾}®v¿o;z6‹¾KYv¿$—;h‘�¾v¿ÊTÁ;é·�¾tµu¿o<ü©‘¾Ïfu¿œ3"èY<^º‰¾+‡v¿—ÿ�<„ž�¾ýöu¿ÆÜµ<|ò�¾ësu¿>èÙ<¼t“¾�u¿¶óý<+•¾†Ét¿—ÿ=X¨•¾Á¨t¿S#=tµ•¾¦›t¿4¢4=tµ•¾ŠŽt¿ð§F=tµ•¾o�t¿ÐDX=tµ•¾Æmt¿ŒJj=tµ•¾ª`t¿mç{=tµ•¾Mt¿¹�†=tµ•¾X9t¿)\�=tµ•¾¯%t¿+ö—=tµ•¾t¿.� =tµ•¾]þs¿0*©=tµ•¾&äs¿3ı=tµ•¾}Ðs¿Ç)º=tµ•¾F¶s¿\�Â=tµ•¾œs¿ñôÊ=tµ•¾Ø�s¿&Ó=tµ•¾as¿?WÛ=tµ•¾ÜFs¿øSã=tµ•¾&s¿…ë=tµ•¾á s¿jMó=tµ•¾ër¿#Jû=tµ•¾XÊr¿7‰>tµ•¾“©r¿&S>tµ•¾Îˆr¿ >tµ•¾ hr¿ç >tµ•¾EGr¿¼–>tµ•¾ór¿tF>tµ•¾.ÿq¿õÛ>tµ•¾Ü×q¿vq>tµ•¾·q¿Àì>tµ•¾Å�q¿ÓM">tµ•¾oq¿æ®%>tµ•¾®Gq¿ù)>tµ•¾\ q¿ÖV,>tµ•¾—ÿp¿{ƒ/>tµ•¾EØp¿!°2>tµ•¾ò°p¿�Â5>tµ•¾.�p¿þÔ8>tµ•¾Ühp¿6Í;>tµ•¾Hp¿6«>>tµ•¾Å p¿7‰A>tµ•¾rùo¿MD>tµ•¾®Øo¿ËG>tµ•¾[±o¿' I>tµ•¾—�o¿ƒ/L>tµ•¾Òoo¿à¾N>tµ•¾Oo¿4Q>tµ•¾»'o¿óŽS>tµ•¾÷o¿«ÏU>tµ•¾2æn¿+öW>tµ•¾mÅn¿¬Z>tµ•¾6«n¿-C\>tµ•¾rŠn¿?5^>tµ•¾;pn¿R'`>tµ•¾vOn¿.ÿa>tµ•¾?5n¿Ó¼c>tµ•¾ n¿B`e>tµ•¾Òn¿°g>tµ•¾›æm¿çŒh>tµ•¾òÒm¿çûi>tµ•¾»¸m¿±Pk>tµ•¾¥m¿z¥l>tµ•¾h‘m¿ÖÅm>tµ•¾¿}m¿2æn>tµ•¾jm¿Žp>tµ•¾mVm¿|òp>tµ•¾RIm¿3Äq>tµ•¾6tµ•¾/m¿jMs>tµ•¾ÿ!m¿³ês>tµ•¾qm¿ý‡t>tµ•¾Vm¿Øðt>tµ•¾Èm¿´Yu>tµ•¾;m¿X¨u>tµ•¾­úl¿ÆÜu>tµ•¾­úl¿ýöu>tµ•¾ôl¿ýöu>tµ•¾ôl¿ýöu>tµ•¾ôl¿ÆÜu>tµ•¾­úl¿X¨u>tµ•¾­úl¿´Yu>tµ•¾;m¿Øðt>tµ•¾Èm¿ý‡t>tµ•¾Vm¿³ês>tµ•¾qm¿jMs>tµ•¾ÿ!m¿ê•r>tµ•¾/m¿3Äq>tµ•¾6tµ•¾RIm¿Žp>tµ•¾mVm¿2æn>tµ•¾jm¿ÖÅm>tµ•¾¿}m¿z¥l>tµ•¾h‘m¿±Pk>tµ•¾¥m¿çûi>tµ•¾»¸m¿çŒh>tµ•¾òÒm¿°g>tµ•¾›æm¿B`e>tµ•¾Òn¿Ó¼c>tµ•¾ n¿.ÿa>tµ•¾?5n¿R'`>tµ•¾vOn¿?5^>tµ•¾;pn¿-C\>tµ•¾rŠn¿¬Z>tµ•¾6«n¿+öW>tµ•¾mÅn¿«ÏU>tµ•¾2æn¿óŽS>tµ•¾÷o¿4Q>tµ•¾»'o¿à¾N>tµ•¾Oo¿ƒ/L>tµ•¾Òoo¿' I>tµ•¾—�o¿ËG>tµ•¾[±o¿MD>tµ•¾®Øo¿7‰A>tµ•¾rùo¿6«>>tµ•¾Å p¿6Í;>tµ•¾Hp¿þÔ8>tµ•¾Ühp¿�Â5>tµ•¾.�p¿!°2>tµ•¾ò°p¿{ƒ/>tµ•¾EØp¿ÖV,>tµ•¾—ÿp¿ù)>tµ•¾\ q¿æ®%>tµ•¾®Gq¿ÓM">tµ•¾oq¿Àì>tµ•¾Å�q¿vq>tµ•¾·q¿õÛ>tµ•¾Ü×q¿tF>tµ•¾.ÿq¿¼–>tµ•¾ór¿ç >tµ•¾EGr¿ >tµ•¾ hr¿&S>tµ•¾Îˆr¿7‰>tµ•¾“©r¿#Jû=tµ•¾XÊr¿jMó=tµ•¾ër¿…ë=tµ•¾á s¿øSã=tµ•¾&s¿?WÛ=tµ•¾ÜFs¿&Ó=tµ•¾as¿ñôÊ=tµ•¾Ø�s¿\�Â=tµ•¾œs¿Ç)º=tµ•¾F¶s¿3ı=tµ•¾}Ðs¿0*©=tµ•¾&äs¿.� =tµ•¾]þs¿+ö—=tµ•¾t¿)\�=tµ•¾¯%t¿¹�†=tµ•¾X9t¿mç{=tµ•¾Mt¿ŒJj=tµ•¾ª`t¿ÐDX=tµ•¾Æmt¿ð§F=tµ•¾o�t¿4¢4=tµ•¾ŠŽt¿S#=tµ•¾¦›t¿—ÿ=tµ•¾4¢t¿¶óýèÙèYèY¼tµ•¾†Ét¿—ÿ�¼tµ•¾øÂt¿ÆÜµ¼tµ•¾j¼t¿>èÙ¼tµ•¾Ýµt¿¶óý¼tµ•¾O¯t¿—ÿ½tµ•¾4¢t¿S#½tµ•¾¦›t¿4¢4½tµ•¾ŠŽt¿ð§F½tµ•¾o�t¿ÐDX½tµ•¾Æmt¿ŒJj½tµ•¾ª`t¿mç{½tµ•¾Mt¿¹�†½tµ•¾X9t¿)\�½tµ•¾¯%t¿+ö—½tµ•¾t¿.� ½tµ•¾]þs¿0*©½tµ•¾&äs¿3ı½tµ•¾}Ðs¿Ç)º½tµ•¾F¶s¿\�½tµ•¾œs¿ñôʽtµ•¾Ø�s¿&Ó½tµ•¾as¿?WÛ½tµ•¾ÜFs¿øSã½tµ•¾&s¿…ë½tµ•¾á s¿jMó½tµ•¾ër¿#Jû½tµ•¾XÊr¿7‰¾tµ•¾“©r¿&S¾tµ•¾Îˆr¿ ¾tµ•¾ hr¿ç ¾tµ•¾EGr¿¼–¾tµ•¾ór¿tF¾tµ•¾.ÿq¿õÛ¾tµ•¾Ü×q¿vq¾tµ•¾·q¿Àì¾tµ•¾Å�q¿ÓM"¾tµ•¾oq¿æ®%¾tµ•¾®Gq¿ù)¾tµ•¾\ q¿ÖV,¾tµ•¾—ÿp¿{ƒ/¾tµ•¾EØp¿!°2¾tµ•¾ò°p¿�Â5¾tµ•¾.�p¿þÔ8¾tµ•¾Ühp¿6Í;¾tµ•¾Hp¿6«>¾tµ•¾Å p¿7‰A¾tµ•¾rùo¿MD¾tµ•¾®Øo¿ËG¾tµ•¾[±o¿' I¾tµ•¾—�o¿ƒ/L¾tµ•¾Òoo¿à¾N¾tµ•¾Oo¿4Q¾tµ•¾»'o¿óŽS¾tµ•¾÷o¿«ÏU¾tµ•¾2æn¿+öW¾tµ•¾mÅn¿¬Z¾tµ•¾6«n¿-C\¾tµ•¾rŠn¿?5^¾tµ•¾;pn¿R'`¾tµ•¾vOn¿.ÿa¾tµ•¾?5n¿Ó¼c¾tµ•¾ n¿B`e¾tµ•¾Òn¿°g¾tµ•¾›æm¿çŒh¾tµ•¾òÒm¿çûi¾tµ•¾»¸m¿±Pk¾tµ•¾¥m¿z¥l¾tµ•¾h‘m¿ÖÅm¾tµ•¾¿}m¿2æn¾tµ•¾jm¿Žp¾tµ•¾mVm¿|òp¾tµ•¾RIm¿3Äq¾tµ•¾6¾tµ•¾Å p¿6Í;¾tµ•¾Hp¿þÔ8¾tµ•¾Ühp¿�Â5¾tµ•¾.�p¿!°2¾tµ•¾ò°p¿{ƒ/¾tµ•¾EØp¿ÖV,¾tµ•¾—ÿp¿ù)¾tµ•¾\ q¿æ®%¾tµ•¾®Gq¿ÓM"¾tµ•¾oq¿Àì¾tµ•¾Å�q¿vq¾tµ•¾·q¿õÛ¾tµ•¾Ü×q¿tF¾tµ•¾.ÿq¿¼–¾tµ•¾ór¿ç ¾tµ•¾EGr¿ ¾tµ•¾ hr¿&S¾tµ•¾Îˆr¿7‰¾tµ•¾“©r¿#Jû½tµ•¾XÊr¿jMó½tµ•¾ër¿…ë½tµ•¾á s¿øSã½tµ•¾&s¿?WÛ½tµ•¾ÜFs¿&Ó½tµ•¾as¿ñôʽtµ•¾Ø�s¿\�½tµ•¾œs¿Ç)º½tµ•¾F¶s¿3ı½tµ•¾}Ðs¿0*©½tµ•¾&äs¿.� ½tµ•¾]þs¿+ö—½tµ•¾t¿)\�½tµ•¾¯%t¿¹�†½tµ•¾X9t¿mç{½tµ•¾Mt¿ŒJj½tµ•¾ª`t¿ÐDX½tµ•¾Æmt¿ð§F½tµ•¾o�t¿4¢4½tµ•¾ŠŽt¿S#½tµ•¾¦›t¿—ÿ½tµ•¾4¢t¿¶óý¼b¡–¾ý‡t¿>èÙ¼l ™¾Ê2t¿ÆÜµ¼[Óœ¾œ¢s¿—ÿ�¼Š°¡¾Þr¿>èY¼§y§¾÷äq¿NѼ à­¾œÄp¿à-�»4¢´¾ Šo¿RIºã¥»¾².n¿xœÂ¾ÍÌl¿gDɾZdk¿{ƒÏ¾ j¿ Õ¾ãÇh¿Ð³Ù¾¢´g¿RIݾ]Üf¿$—ß¾0Lf¿Ühà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿÷uà¾Âf¿x«¾“:q¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿§h¾õJy¿ŸÍj¾¾0y¿7À¾ßOm¿ÇK¿äƒN¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿„ž¿^ºI¿û\¿>èI¿Ÿ<¿ŸÍJ¿¬¿jL¿Y¿6«N¿O@¿shQ¿©¤¿•T¿ƒQ ¿Õ X¿¡g¿ÿ²[¿#Ûù¾`v_¿ûë¾33c¿ˆcݾÐÕf¿Í;ξQj¿‰Ò¾¾h‘m¿O¯¾ƒp¿ ¾¥,s¿Î‘¾�u¿Þ‚¾4€w¿Ck¾0*y¿s×R¾ˆ…z¿ÛŠ=¾:’{¿VŸ+¾ñc|¿ö—¾ô|¿Ï÷¾ßO}¿»'¾¿}}¿rоM„}¿rоM„}¿;p¾M„}¿:’ ¾„ž}¿&ä¾ à}¿ioð½Í;~¿†ZÓ½©¤~¿-²½÷¿M󎽷b¿= W½@¤¿O¯½ Ò¿¡g³¼åò¿1,¼rù¿í >»€¿·Ñ¸€¿AÖó< €¿Aâó< €¿Aîó< €¿Aúó< €¿A†ô< €¿A’ô< €¿Ažô< €¿Aªô< €¿A¶ô< €¿AÂô< €¿AÎô< €¿AÚô< €¿Aæô< €¿Aòô< €¿Aþô< €¿AŠõ< €¿A–õ< €¿A¢õ< €¿A®õ< €¿Aºõ< €¿AÆõ< €¿AÒõ< €¿AÞõ< €¿Aêõ< €¿Aöõ< €¿A‚ö< €¿AŽö< €¿Ašö< €¿A¦ö< €¿A²ö< €¿A¾ö< €¿AÊö< €¿AÖö< €¿Aâö< €¿Aîö< €¿Aúö< €¿A†÷< €¿A’÷< €¿Až÷< €¿Aª÷< €¿A¶÷< €¿AÂ÷< €¿AÎ÷< €¿AÚ÷< €¿Aæ÷< €¿Aò÷< €¿Aþ÷< €¿AŠø< €¿A–ø< €¿A¢ø< €¿A®ø< €¿Aºø< €¿AÆø< €¿AÒø< €¿AÞø< €¿Aêø< €¿Aöø< €¿A‚ù< €¿AŽù< €¿Ašù< €¿A¦ù< €¿A²ù< €¿A¾ù< €¿AÊù< €¿AÖù< €¿Aâù< €¿Aîù< €¿Aúù< €¿A†ú< €¿A’ú< €¿Ažú< €¿Aªú< €¿A¶ú< €¿AÂú< €¿AÎú< €¿AÚú< €¿Aæú< €¿Aòú< €¿Aþú< €¿AŠû< €¿A–û< €¿A¢û< €¿A®û< €¿Aºû< €¿AÈû< ì0-d@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A@A{BAbHA�QA¶ó]AôýlA?5~Au“ˆA!°’Aq=�A¨AœÄ²AßO½A‹lÇA`åÐA�ÙA%áA}?çAÏ÷ëAÃõîAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAd;ðA`åðAªññAøSóAõAyéöAùA–CûA¦›ýAB-2B5^Bô}BD‹B€BVB+BP�BNâBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB-B¬B¼t Bú~ BƒÀ B/ B–ÃB°rB94BBÇËBP�Bj<BåÐB}?B�BD‹BøSBòÒB B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B Bé¦Bð§B�B B€BË¡BÛyB B‡– BBHaBºÉBü©úAL7ôA‹lîA¤péAshåA¤pâA²�àAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàAàA�—ßAB`ÞAZdÜA9´ÙANbÖA…ÒAX9ÎA²�ÉAþÔÄAÀAL7»A+‡¶A1²AòÒ­AªAð§¦ATã£AÁÊ¡AÉv A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A�• Aq=¢A/ݤAìQ¨Aú~¬A®G±A7‰¶Aö(¼A%ÂAÈAçûÍA ×ÓAÉvÙAR¸ÞA�ãA®çAÑ"ëA�ÂíA‹lïAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAðAAȬ= é0ôd           3 4    5    5555 555555 ¶¶¶††††††††††††††††††††††††††††††††††††¶¶¶¶¶¶·‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡AÈÝ= ô!-ìÙ®\Ã#ƒYÄoƒ»‘í\ÃHÁYļt“¼V.]Ã\ÿYÄ ×#½bp]Ã`=ZÄsh‘½o²]Ãd{ZÄB`å½ö]ÃX¹ZÄ/Ý$¾#;^Ã+÷ZĉA`¾Ë�^Ãþ4[Ęn’¾´È^ðr[ÄþÔ¸¾\_ÃR°[ÄZä¾ÃU_ÃÓí[Äçû ¿jœ_Ã3+\Ä“$¿Zä_Ãh\ă@¿P-`ò¥\ÄÛù^¿‡v`ÃÑâ\Ä€¿ô½`ÃÏ]Äsh‘¿%aì\]Ä“¤¿PMaÉ™]ÄÙη¿=ŠaÃFÖ]ÄD‹Ì¿ÑÂaÃá^Ęnâ¿�õaÃ}O^ÄÕxù¿ "bÃç‹^Ä9´ÀÇKbÃBÈ^Ä}?ÀìqbÃ{_ÄÓM"À —bä@_Äžï/Àd»bì|_Ä>ÀÅàbø_ĬLÀðcÃJô_ĨÆ[Ào2cÃð/`ÄZdkÀ}_cÃuk`Ä…{ÀÙŽcÃÙ¦`Ä{†À¾¿cÃâ`Äð§ŽÀÏ×dÃ/aļt—ÀP gÃ!XaÄáz ÀÙgÃò’aÄ�©ÀVîgâÍaÄÇK³À˜îgÃ!bÄ%½ÀÓígÃBbÄ ÇÀÇëgü|bÄL7ÑÀ…ëgÃɶbIJ�ÛÀüégäðbÄ¢EæÀªñgÃ^*cĸñÀž/hÃøccÄ'1üÀ�—hÃ`�cÄw¾Áy)iØÖcÄî| Áô½iîdÄøSÁ¤PjäHdÄ–CÁ3ÓjÃh�dÄßOÁ¤PkÃü¹dĤp!ÁÎkÃ^òdÄü©'Á?Ulð*eÄ.ÁÃmÃÁbeÄff4ÁL·mðšeÄ`å:ÁKnÃoÒeÄî|AÁjÜnà fÄö(HÁPmoÉAfÄyéNÁöèoÃÕxfÄw¾UÁ BpÃð¯fÄð§\Á…kpÃéæfÄË¡cÁ3spÃÃgÄ!°jÁ¸^pÃjTgÄòÒqÁ¶3pÃòŠgÄ%yÁ¾ÿoÃHÁgÄÝ$€Á�ÂoÃ�÷gÄÙ΃Ám‡oâ-hÄ�‡ÁòRoÖchÄd;‹Áß/oÃh™hÄôýŽÁ×#oÃÏhĨƒÁR8oìiÄ�•–ÁéfoÃ:iÄ‹lšÁ¬oÃmoiĺIžÁªñoì¤iÄ+¢Á“8pÃËÙiÄo¦Á;pÃÉjĪÁãÅpöCjĶó­ÁJ qÃxjÄyé±ÁoRqÃ?­jÄ`åµÁ“˜qÃÛájÄ`å¹Á¸ÞqÃfkÄyé½Áã%rÃòJkÄžïÁÁmrÃ\kÄÛùÅÁu³rö³kÄ1ÊÁsÃèkćÎÁj|sÃJlÄö(ÒÁNtÃsPlÄq=ÖÁZ„tì„lÄìQÚÁßïtßlÄshÞÁò2uÃîìlÄ�âÁ.uÃ!mÄš™æÁãtÃUmÄ-²êÁmgtÃ'‰mÄÁÊîÁ´èsÃ?½mÄTãòÁy‰sÃXñmÄÛùöÁ‹lsÃq%nÄbûÁlsÉYnÄé&ÿÁÇksò�nĬœ‹lsÃÛÁnÄã¥ÂmsÃönÄ®‹lsÃ^*oÄ9´ÂJlsè^oÄX¹ ÂnsÓoÄj¼ ÂVnsÃmÇoÄw¾ ÂVnsÃçûoÄw¾ÂVnsÃ0pÄj¼ÂosÃepÄR¸Â'qsÃÛ™pÄ'±ÂhqsèÎpÄð§°rsÖqĦ›Â9tsÓ8qÄP�ÂÃusòmqÄázÂÉvsÃá¢qÄffÂysÃBØqÄÓM!Âd{sò rÄ-2#Âî|sÃDCrÄu%¾sÃöxrĤð&ÂÕ˜sÃÉ®rĺÉ(Âösüärĸž*Â?utÃÑsÄžo,Â5þtÃQsÄj<.´ˆuÃm‡sÄ0°vÃô½sÄ´È1Âç›vÜôsÄ1ˆ3Âé&wÃu+tÄ�B5¤°wÃobtÄÏ÷6Âá:xÉ™tÄð§8ÂÅxÃÕÐtÄìQ:Â\OyÃRuÄÏ÷;ÂÛÙyÃß?uÄ�—=œdzîwuÄ-2?ÂïzÞ¯uĨÆ@Âáz{îçuÄþTB¢|ÃðvÄ5ÞCÂå�|ÃbXvÄB`EÂ)}Ãö�vÄ/ÝF®§}úÉvÄòRHÂì1~àwÄ�ÂIÂw¾~ö;wÄ+KÂKÃþtwÄP�LÂFÖÃf®wÄsèMÂÅ0€ÃðçwÄq=OÂfv€Ãº!xÄD‹PÂԀÖ[xÄåÐQÂ�â•xÄbSÂd[�ÃßÏxÄ´HTÂáª�Ã= yÄÕxUÂ+÷�üDyÄË¡Vƒ ‚ÃmyÄ�ÂWÂyi‚Ã=ºyÄ/ÝXÂÃ/õyĘîYÂ׳‚ÃB0zÄÕøZÂ܂ÅkzÄáú[‘ ƒÃé¦zļô\Â?EƒÃoâzÄmç]Â\ƒÃ{ÄåÐ^œ´ƒÃËY{Ä3³_Â�âƒÃ²•{ÄJŒ`¦ûƒÃºÑ{Ä/]aÂ9„ÃÓ |Äã%bÂwîƒÃJ|Äfæb¸¾ƒÃw†|IJ�c€ƒÃáÂ|ÄÍLdÂ>ƒÃmÿ|Ķód¦‹ƒÃ<}Äb�e‘½‚ÃÕx}Äã%fÂÑ‚‚âµ}Ä-²f‹L‚Ã�ò}Ä?5gÂá‚Ã�/~įg‘í�Ül~ÄÅ h¼Ä�ú©~Ä7‰hƒ �Ãéæ~Äyéh¤€�Ã)$Ä}?iÂ?e�ÃhaÄP�iÂVN�ÃÉžÄìÑiÂç;�Ã)ÜÄP jÂô-�ÃÍ €Ä}?jÂZ$�Ã…+€ÄshjÂ;�Ã=J€Ä1ˆjÂw�Ãþh€Ä¸žjÂ-"�ÃLJ€Ä­jÂ*�Ǧ€Ä'±j‡6�ÃHŀĭjÂ+G�Ãä€Ä¸žjÂ)\�ÃÑ�Ä1ˆjÂ�u�Ñ!�Äshj“�ÃR@�Ä}?j¼´�Ã_�ÄP jÂÁÚ�ÃË}�ÄìÑiÂþ‚Ü�ÄP�iÂ33‚Ã3»�Ä}?i¢e‚ÃÛÙ�ÄyéhÂ)œ‚Ãø�Ä7‰h¨ւÃ#‚ÄÅ hÂ?ƒÃº5‚įgÂÏWƒÃJT‚Ä?5gÂ5žƒÃÑr‚Ä-²f“èƒÃP‘‚Äã%fÂÉ6„þ¯‚Äb�eÂÕˆ„Ã-΂Ķód˜ބËì‚ÄÍLdÂ18…ÃÙ ƒÄ²�cÂ`•…Ã)ƒÄfæbÂFö…Ã\GƒÄã%bÂÁZ†Ã‰eƒÄ/]aÂц惃ÄJŒ`ÂV.‡Ãº¡ƒÄ3³_ÂP�‡Ã¶¿ƒÄåÐ^¾ˆÃªÝƒÄmç]Â�…ˆÃ�ûƒÄ¼ô\˜þˆÃ`„Äáú[Â{‰Ã#7„ÄÕøZ ú‰ÃÕT„ĘîYÂq}ŠÃor„Ä/ÝXÂT‹Ã�„Ä�ÂW€‹Ãy­„ÄË¡VÂÑ¢‹ÃáÊ„ÄÕxUÂÆ‹Ã9è„Ä´HTºé‹Ãy…ÄbSÂq ŒÃ¨"…ÄåÐQÂb0ŒÃ¾?…ÄD‹PÂuSŒÃÅ\…Äq=O wŒÃºy…ÄsèMÂÛ™ŒÃ˜–…ÄP�LÂj¼ŒÃd³…Ä+K¾ߌÃÐ…Ä�ÂIÂ�ôì…ÄòRHÂé&�Ã? †Ä/ÝFÂüI�ú%†ÄB`EÂÍl�ÃB†Ä5ÞCÂb��Ãf^†ÄþTB¶³�Øz†Ä¨Æ@ÂéÖ�ø–†Ä-2?Âú�Ãɲ†Ä�—=Â/ŽÃÁΆÄÏ÷;Â!@ŽÃ ê†ÄìQ:ÂcŽÃo‡Äð§8¨†ŽÃ%"‡ÄÏ÷6Âü©ŽÃË=‡Ä�B5ÂPÍŽÃ`Y‡Ä1ˆ3ƒðŽÃÝt‡Ä´È1–�ÃB�‡Ä0‡6�Þ«‡Äj<.šY�ÃáÆ‡Äžo,ÂÍ|�à â‡Ä¸ž*œ�Ã/ý‡ÄºÉ( ·�Ã9ˆÄ¤ð& Ê�Ã33ˆÄu%Â=Ú�ÃNˆÄ-2#¶ã�ÃöhˆÄÓM!Âçë�þƒˆÄffªñ�ÃwžˆÄázÂm÷�ùˆÄP�ÂPý�þӈĦ›Âf�ÃNîˆÄð§Â'�Ã͉Ä'±Â'!�Ã;#‰ÄR¸Â`5�ê=‰Äj¼ÂÍL�ÃX‰Äw¾¾�ÃVr‰Äw¾ ƒ‘ÜŒ‰Äj¼ ƒ€’ÃÙ¦‰ÄX¹ ÂãU“ÃÁ‰Ä9´ÂÍ|“ÃDۉĮ‹|“Ãhõ‰Äã¥Âj|“Ã…ŠÄ¬œÂ)|“â)ŠÄé&ÿÁç{“öCŠÄbûÁ¦{“ÃË]ŠÄÛùöÁD{“ÃßwŠÄTãòÁ{“Ã쑊ÄÁÊîÁÁz“Ãð«ŠÄ-²êÁ{“ÃüÅŠÄš™æÁç{“ÃàŠÄ�âÁP�“ÃúŠÄshÞÁü¹“Ã!‹ÄìQÚÁ¨ö“Ã-.‹Äq=ÖÁHA”ÃBH‹Äö(ÒÁ‹Œ”ÃVb‹Ä‡ÎÁð×”Ãs|‹Ä1ÊÁ3#•Ø–‹ÄÛùÅÁ˜n•ü°‹ÄžïÁÁº•ÃéÊ‹Äyé½Á�–Ãå‹Ä`å¹ÁQ–Ã\ÿ‹Ä`åµÁ¬œ–âŒÄyé±Áè–Ãø3ŒÄ¶ó­Á¶3—ÃVNŒÄªÁž—ühŒÄo¦ÁsÈ—Ã3ƒŒÄ+¢Á˜˜Ã²�ŒÄºIžÁ+7˜ÃB¸ŒÄ‹lšÁ{T˜ÃÙÒŒÄ�•–ÁS˜Ã�íŒÄ¨Æ’Á)L˜ÃB�ÄôýŽÁ¼4˜Ã #�Äd;‹Á`˜Ãã=�Ä�‡Á°ò—ÃÍX�ÄÙ΃ÁЗÃÇs�ÄÝ$€Á˜®—ÃÑŽ�Ä%yÁÛ™—Ãì©�ÄòÒqÁ®‡—ÃÅ�Ä!°jÁ/�—Ãbà�ÄË¡cÁ}Ÿ—öû�Äð§\Á}¿—Ã#ŽÄw¾UÁ%æ—à2ŽÄyéNÁ{˜Ã-NŽÄö(HÁa˜ÃÓiŽÄî|AÁ‹¬˜Ã‰…ŽÄ`å:Ámç˜ÃX¡ŽÄff4Á^ú˜Ã?½ŽÄ.ÁRè˜Ã7ÙŽÄü©'Áͼ˜Ã?õŽÄ¤p!Á ‡˜Ã`�ÄßOÁöh˜Ãš-�Ä–CÁßO˜ÃãI�ÄøSÁ}O˜ÃFf�Äî| Á}O˜Ã¸‚�Äw¾ÁžO˜ÃDŸ�Ä'1üÀ¤P˜Ãç»�ĸñÀhQ˜ÃœØ�Ä¢EæÀìQ˜Ã`õ�IJ�ÛÀoR˜Ã=�ÄL7ÑÀ3S˜Ã3/�Ä ÇÀøS˜Ã9L�Ä%½ÀU˜ÃXi�ÄÇK³ÀéV˜Ã†�Ä�©ÀRX˜ÃÇ£�Äáz ÀšY˜ÃÁ�ļt—À[˜ÃÞ�Äð§ŽÀ‹\˜Ãü�Ä{†Àw^˜Ã‰‘Ä…{Àob˜Ã+7‘ÄZdkÀj˜ÃÝT‘ĨÆ[À ‡˜Ã˜r‘ĬLÀ“¨˜Ãj�‘Ä>ÀœÔ˜ÃN®‘Äžï/À¤™ÃBÌ‘ÄÓM"ÀÍ,™ÃFê‘Ä}?ÀY™ÃR’Ä9´À?…™Ão&’ÄÕxù¿ì±™ÃœD’Ęnâ¿Þ™ÃÙb’ÄD‹Ì¿Á šÃ�’ÄÙη¿®7šÃuŸ’Ä“¤¿øcšÃÓ½’Äsh‘¿Å�šÃ9Ü’Ä€¿ šðú’ÄÛù^¿¨öšÃ'“ă@¿A›Ãž7“Ä“$¿Õx›ÃV“Äçû ¿ÝÄ›Ã{t“ÄZ侜Ãá’“ÄþÔ¸¾RhœÃ/±“Ęn’¾?ÅœÃuϓĉA`¾Û)�âí“Ä/Ý$¾Ÿ�þ ”ÄB`å½ážÃÃ)”Äsh‘½ì¡žÃ¶G”Ä ×#½¾/ŸÃše”ļt“¼×³ŸÃuƒ”Äoƒ»åŸÃ?¡”Ä� Ã ¿”ÄAÈÿ= ô!-ì‰ÒÞº¢´w¾•ex¿NѼ~x¾_x¿£’¼Ù=y¾ÐDx¿¬‹Û¼Ház¾~x¿*:½È}¾‚âw¿}®6½$—¾ù w¿Ñ"[½“:�¾TRw¿$—½Ê¾"ýv¿¼’½Z„¾b¡v¿x ¤½oð…¾†8v¿4¶½§y‡¾9Öu¿ðȽ§èˆ¾Ïfu¿¬Ú½U0оôýt¿úíë½–C‹¾•t¿H¿ý½MŒ¾=,t¿®¾_˜Œ¾}Ðs¿…|¾ÍÌŒ¾¼ts¿õJ¾ÍÌŒ¾Šs¿.ÿ!¾ÍÌŒ¾ÊÃr¿h³*¾ÍÌŒ¾ hr¿jM3¾ÍÌŒ¾¼r¿mç;¾ÍÌŒ¾àœq¿8gD¾ÍÌŒ¾w-q¿çL¾ÍÌŒ¾¾p¿˜LU¾ÍÌŒ¾Hp¿ö—]¾ÍÌŒ¾ Òo¿Tãe¾ÍÌŒ¾›Uo¿{n¾ÍÌŒ¾‰Òn¿k+v¾ÍÌŒ¾vOn¿$(~¾ÍÌŒ¾ÖÅm¿oƒ¾ÍÌŒ¾6ÍÌŒ¾ïÉs¿…|>ÍÌŒ¾¼ts¿õJ>ÍÌŒ¾Šs¿.ÿ!>ÍÌŒ¾ÊÃr¿h³*>ÍÌŒ¾ hr¿jM3>ÍÌŒ¾¼r¿mç;>ÍÌŒ¾àœq¿8gD>ÍÌŒ¾w-q¿çL>ÍÌŒ¾¾p¿˜LU>ÍÌŒ¾Hp¿ö—]>ÍÌŒ¾ Òo¿Tãe>ÍÌŒ¾›Uo¿{n>ÍÌŒ¾‰Òn¿k+v>ÍÌŒ¾vOn¿$(~>ÍÌŒ¾ÖÅm¿oƒ>ÍÌŒ¾6ÍÌŒ¾–²l¿ÕçŠ>ÍÌŒ¾h"l¿ûËŽ>ÍÌŒ¾¬‹k¿ê•’>ÍÌŒ¾ñôj¿Ù_–>ÍÌŒ¾5^j¿¬š>ÍÌŒ¾ìÀi¿H¿�>ÍÌŒ¾£#i¿åa¡>ÍÌŒ¾Y†h¿f÷¤>ÍÌŒ¾‚âg¿Ì¨>ÍÌŒ¾9Eg¿û«>ÍÌŒ¾Ôšf¿Di¯>ÍÌŒ¾ýöe¿Xʲ>ÍÌŒ¾&Se¿O¶>ÍÌŒ¾Á¨d¿,e¹>ÍÌŒ¾êd¿Ñ‘¼>ÍÌŒ¾†Zc¿w¾¿>ÍÌŒ¾!°b¿åÐÂ>ÍÌŒ¾¼b¿9ÖÅ>ÍÌŒ¾åaa¿pÎÈ>ÍÌŒ¾€·`¿Œ¹Ë>ÍÌŒ¾ `¿�—Î>ÍÌŒ¾Di_¿W[Ñ>ÍÌŒ¾à¾^¿Ô>ÍÌŒ¾ ^¿™»Ö>ÍÌŒ¾2w]¿XÙ>ÍÌŒ¾èÙ\¿QÚÛ>ÍÌŒ¾6\¿vOÞ>ÍÌŒ¾È˜[¿€·à>ÍÌŒ¾ûZ¿Sã>ÍÌŒ¾ÃdZ¿ Få>ÍÌŒ¾ÎY¿§yç>ÍÌŒ¾L7Y¿ “é>ÍÌŒ¾§X¿VŸë>ÍÌŒ¾ðX¿h‘í>ÍÌŒ¾P�W¿`vï>ÍÌŒ¾= W¿ÍÌŒ¾+‡V¿á ó>ÍÌŒ¾¦ V¿j¼ô>ÍÌŒ¾"ŽU¿½Rö>ÍÌŒ¾+U¿õÛ÷>ÍÌŒ¾Á¨T¿Xù>ÍÌŒ¾X9T¿Ú¬ú>ÍÌŒ¾}ÐS¿£ü>ÍÌŒ¾/nS¿6<ý>ÍÌŒ¾oS¿’\þ>ÍÌŒ¾®¶R¿Òoÿ>ÍÌŒ¾ hR¿n4?ÍÌŒ¾eR¿eª?ÍÌŒ¾NÑQ¿@?ÍÌŒ¾Å�Q¿Žu?ÍÌŒ¾ÊTQ¿ÁÊ?ÍÌŒ¾\ Q¿e?ÍÌŒ¾îëP¿îZ?ÍÌŒ¾œÄP¿ê•?ÍÌŒ¾×£P¿ÊÃ?ÍÌŒ¾ƒP¿�ä?ÍÌŒ¾ioP¿Åþ?ÍÌŒ¾NbP¿á ?ÍÌŒ¾2UP¿o?ÍÌŒ¾2UP¿á ?ÍÌŒ¾2UP¿Åþ?ÍÌŒ¾NbP¿�ä?ÍÌŒ¾ioP¿ÊÃ?ÍÌŒ¾ƒP¿ê•?ÍÌŒ¾×£P¿îZ?ÍÌŒ¾œÄP¿e?ÍÌŒ¾îëP¿ÁÊ?ÍÌŒ¾\ Q¿Žu?ÍÌŒ¾ÊTQ¿@?ÍÌŒ¾Å�Q¿eª?ÍÌŒ¾NÑQ¿n4?ÍÌŒ¾eR¿Òoÿ>ÍÌŒ¾ hR¿’\þ>ÍÌŒ¾®¶R¿6<ý>ÍÌŒ¾oS¿£ü>ÍÌŒ¾/nS¿Ú¬ú>ÍÌŒ¾}ÐS¿Xù>ÍÌŒ¾X9T¿õÛ÷>ÍÌŒ¾Á¨T¿½Rö>ÍÌŒ¾+U¿j¼ô>ÍÌŒ¾"ŽU¿á ó>ÍÌŒ¾¦ V¿ÍÌŒ¾+‡V¿`vï>ÍÌŒ¾= W¿h‘í>ÍÌŒ¾P�W¿VŸë>ÍÌŒ¾ðX¿ “é>ÍÌŒ¾§X¿§yç>ÍÌŒ¾L7Y¿ Få>ÍÌŒ¾ÎY¿Sã>ÍÌŒ¾ÃdZ¿€·à>ÍÌŒ¾ûZ¿vOÞ>ÍÌŒ¾È˜[¿QÚÛ>ÍÌŒ¾6\¿XÙ>ÍÌŒ¾èÙ\¿™»Ö>ÍÌŒ¾2w]¿Ô>ÍÌŒ¾ ^¿W[Ñ>ÍÌŒ¾à¾^¿�—Î>ÍÌŒ¾Di_¿Œ¹Ë>ÍÌŒ¾ `¿pÎÈ>ÍÌŒ¾€·`¿9ÖÅ>ÍÌŒ¾åaa¿åÐÂ>ÍÌŒ¾¼b¿w¾¿>ÍÌŒ¾!°b¿Ñ‘¼>ÍÌŒ¾†Zc¿,e¹>ÍÌŒ¾êd¿O¶>ÍÌŒ¾Á¨d¿Xʲ>ÍÌŒ¾&Se¿Di¯>ÍÌŒ¾ýöe¿û«>ÍÌŒ¾Ôšf¿Ì¨>ÍÌŒ¾9Eg¿f÷¤>ÍÌŒ¾‚âg¿åa¡>ÍÌŒ¾Y†h¿H¿�>ÍÌŒ¾£#i¿¬š>ÍÌŒ¾ìÀi¿Ù_–>ÍÌŒ¾5^j¿ê•’>ÍÌŒ¾ñôj¿ûËŽ>ÍÌŒ¾¬‹k¿ÕçŠ>ÍÌŒ¾h"l¿°‡>ÍÌŒ¾–²l¿oƒ>ÍÌŒ¾6ÍÌŒ¾ÖÅm¿k+v>ÍÌŒ¾vOn¿{n>ÍÌŒ¾‰Òn¿Tãe>ÍÌŒ¾›Uo¿ö—]>ÍÌŒ¾ Òo¿˜LU>ÍÌŒ¾Hp¿çL>ÍÌŒ¾¾p¿8gD>ÍÌŒ¾w-q¿mç;>ÍÌŒ¾àœq¿jM3>ÍÌŒ¾¼r¿h³*>ÍÌŒ¾ hr¿.ÿ!>ÍÌŒ¾ÊÃr¿õJ>ÍÌŒ¾Šs¿…|>èÙŒ¾¼ts¿®>û\�¾¸¯s¿H¿ý=2掾aÃs¿úíë=4‘¾F¶s¿¬Ú=tF”¾Ø�s¿ðÈ=ÙΗ¾33s¿4¶=6Í›¾XÊr¿x ¤=  ¾ÓMr¿¼’=8g¤¾¥½q¿$—=UÁ¨¾é&q¿Ñ"[=;­¾.�p¿}®6=`å°¾åòo¿*:=Æm´¾Dio¿¬‹Û<âX·¾Àìn¿£’<µ¦¹¾rŠn¿NÑ<µ»¾éHn¿‰ÒÞ:㥻¾².n¿AÈ¡> ¬ -¤BÁÊB.B!0BØB+B/BþÔýA¨ÆøA}?óAÇKíAÃõæAÇKàAXÙAö(ÒA´ÈÊA¢EÃAð§»A´AX¬A^º¤AL7�A וAð§ŽA9´‡A= �AshuA�iA°r^AVTA–CKAøSCA¾Ÿ ¬ -¤aDjŒDs\ŒD¨zŒD嘌D·ŒDXÕŒD�óŒDË�D0�D5N�Dsl�D¨Š�Då¨�DÇ�DXå�D�ŽDË!ŽD@ŽD5^ŽDs|ŽD¨šŽD帎D׎DXõŽD��DË1�DP�D5n�DsŒ�D¨ª�DåÈ�Dç�DX�D�#�DËA�D`�D5~�Dsœ�D¨º�DåØ�D÷�DX‘D�3‘DËQ‘Dp‘D5Ž‘Ds¬‘D¨Ê‘Dåè‘D’DX%’D�C’DËa’D€’D5ž’Ds¼’D¨Ú’Dåø’D“DX5“D�S“DËq“D�“D5®“DsÌ“D¨ê“Då”D'”DXE”D�c”DË�”D ”D5¾”DsÜ”D¨ú”Då•D7•DXU•D�s•DË‘•D°•D5ΕDsì•D¨ –Då(–DG–DXe–D�ƒ–DË¡–DÀ–D5Þ–Dsü–D¨—Då8—DW—DXu—D�“—D˱—DЗD5î—Ds ˜D¨*˜DåH˜Dg˜DX…˜D�£˜DËÁ˜Dà˜D5þ˜Ds™D¨:™DåX™Dw™DX•™D�³™DËÑ™Dð™D5šDs,šD¨JšDåhšD‡šDX¥šD�ÚDËášD›DAȸ> © ô¤ 55   5µ…………………………………………………………µµµ………………………………………µµµ……………… 555  55555 AˆÄ> Aô<  AØÄ> -€ AðÄ> ¥fß>pwÖ=¦aœ?ù½u?¦ †>A˜Å> ¥fß>A¨Å> ù½u¿¦ †>A¼Å> ¥fß>AÌÅ> 0î±t>˜£G=Ä_+?€€{k¨¿Åæ#¾"=¾ÊÃ*?î±t¾˜£G½Ä_+?A„Æ> {k¨¿Åæ#>"=>ÊÃ*? ×#½A°Æ> ¥fß>pwV¾¦aœ?¦ †?¥fß¾AØÆ> ¦ †>AèÆ> ¦ †¿¥fß¾AüÆ> ¦ †>AŒÇ> PoÓ�>Ç€l="q‹?€ãSØ¿�²I¾ÃžV¾o/!?oÓ�¾Ç€l½"q‹?€ãSØ¿�²I>ÞV>o/!?�Âõ½ ×#¾AðÇ> N¹²>“5ú>¦aœ?¦¸2?¦¸2?A˜È> ¦ ?A¨È> ¦¸2¿¦¸2?A¼È> ¦ ?AÌÈ> PÇc–>Nîw=×4'?€˜úÑ¿ïß½S?�¾Ä|�?Çc–¾Nîw½×4'?€˜úÑ¿ïß=S?�>Ä|�?ÍÌÌ=)\¾A°É> ¦¸2?ùI?¦ †?¥fß¾¦ †>�º²=AØÉ> ¦¸²?AèÉ> ¦ †¾�º²=AüÉ> ¦¸²?AŒÊ> P½5Ð>™ž°=Câ~?€£XÀ5µ½ÂúϾrÜ•?½5о™ž°½Câ~?€£XÀ5µ=ÂúÏ>rÜ•? ×#=š™™¾AðÊ> ¥fß>¦ ?¦aœ?¥fß>N¹²¾A˜Ë> ¦¸2?A¨Ë> ¥fß¾N¹²¾A¼Ë> ¦¸2?AÌË> P� Ì>¹ª¬=šëŒ?€x¹À0/¾™»Æ¾ÆÜ‰?� ̾¹ª¬½šëŒ?€x¹À0/>™»Æ>ÆÜ‰?š™™¾A°Ì> ¥fß>þ·2>¦aœ?¦aœ?þ·2>AØÌ> N¹²>AèÌ> ¦aœ¿þ·2>AüÌ> N¹²>AŒÍ> PÀ‹>:ue=øpQ?€¸’Í¿XV¾Ð¸p¾óиp>ó ¦ †>ù½u?¦ †?N¹²¾P�§?N¹²>A˜Î> N¹²>A¨Î> Î�I¾:zŒ¿zÂ’¾€€|~½AÌÎ> P1”3?ÏÚ->èÁ±?€]§#À7À½5˜6¿3þ¡?1”3¿ÏÚ-¾èÁ±?€]§#À7À=5˜6?3þ¡?�Âõ¾A¬Ï> 0¦ †¾úa?¦ ?¦aœ?Õ!÷=G�?ö‘¾€€|~½AèÏ> P�§¿N¹²>AüÏ> N¹²>AŒÐ> PJ{+??ã">¢îÏ?€5^"ÀC9�¾�%¿8¾†?J{+¿?ã"¾¢îÏ?€5^"ÀC9�>�%?8¾†?�Âu½�Âõ¾AèÐ> 4þ·2¾þ·2¾¦¸2?N¹²>¦aœ?¦ †>?ŒÐ½§t?"Ž¿€€|~½A¨Ñ> ùfß¿¦ ¿A¼Ñ> þ·2>AÌÑ> PÁ¨ ?"ýv>!Ù?€ˆcÀeÂO¾µ7¿|Dˆ?Á¨ ¿"ýv¾!Ù?€ˆcÀeÂO>µ7?|Dˆ? ×#½®Gá¾A°Ò> þ·2>ù½u?¦ †?N¹²¾Õ h=�—V?HÀ¾AØÒ> |~½AèÒ> ¦aœ¿¦ ?AüÒ> ¥fß>AŒÓ> P1”3?ÏÚ->èÁ±?€]§#À7À½5˜6¿3þ¡?1”3¿ÏÚ-¾èÁ±?€]§#À7À=5˜6?3þ¡?�Âõ¾AðÓ> þ·2>¥f_?¦ ?¦ ?È ¾ËÖú½øS#>A˜Ô> |~½A¨Ô> Ë¡E=É&=R'à=A¼Ô> |~½AÌÔ> XÙZ?^×ï=ž) ?€K“À¡óÚ½¥Ú¿—Ř?ÙZ¿^×~) ?€K“À¡óÚ=¥Ú?—Ř?ÍÌ̾þ·2>A¬Õ> $N¹²¾¦ ?þ·2>¦aœ?¦ ?þ·2>AØÕ> N¹²>AèÕ> ùfß¿þ·2>AüÕ> N¹²>AŒÖ> XE�¾=jjY=ÇFX?€\׿ýj¾Õq¾shY?oG¿Ž#–½úÕl?€ÙÎã¿Ø»>u«—>,g? ×#¾þ·2¾AìÖ> $N¹²>N¹²>þ·2>¦aœ?ùfß?þ·2>A˜×> N¹²>A¨×> ¦ ¿þ·2>A¼×> N¹²>AÌ×> PoG?Ž#–=úÕl?€ÙÎã¿Ø»¾u«—¾,g?E�¾½jjY½ÇFX?€\׿ýj>Õq>shY? ×#¾A°Ø> ¥fß>úa?¦aœ?ùI?úa?AØØ> ¦¸2?AèØ> ùI¿úa?AüØ> ¦¸2?AŒÙ> PÙZ?^×ï=ž) ?€K“À¡óÚ½¥Ú¿—Ř?ÙZ¿^×~) ?€K“À¡óÚ=¥Ú?—Ř?ÍÌ̾AìÙ> $¦ †>¥fß>¦ †¾¥f_?þ·2¾¦ @¦¸2¿A˜Ú> þ·2>A¨Ú> ¦¸2¿¦¸²?A¼Ú> ¦ ?AÌÚ> Pa‰—>ðy='kˆ?€&pã¿ê!:¾h\x¾•>?a‰—¾ðy½'kˆ?€&pã¿ê!:>h\x>•>? ×£½ìQ8¾A¬Û> $N¹²>þ·2¾¦ ¿N¹²>N¹²>¦ ¿&�'@¦ ?AØÛ> ¦ †?AèÛ> ¦ À¦¸2¿AüÛ> N¹²>AŒÜ> P”ö†>/]=§tH?€èÙÄ¿}˾ºNc¾itG?”ö†¾/]½§tH?€èÙÄ¿}Ë>ºNc>itG?ÍÌ̽AìÜ> $¥fß¾¦¸2?úa?N¹²¾N¹²¾N¹²>¦ †?ù½õ¿A˜Ý> ¥f_?A¨Ý> &�'À¦ †?A¼Ý> þ·2>AÌÝ> å'µ>Ûm—=2Zƒ?AàÝ> <^Àöb¾¢b¬¾•`�?å'µ¾Ûm—½2Zƒ?€€^Àöb>¢b¬>•`�?€¾A°Þ> ¦ †?�º²½¦ †?¦ †¾N¹²>Pä=@AØÞ> ¦ ¿AèÞ> ¦¸2¿þ·2¾AüÞ> ¦¸²?AŒß> PHm>F_A=f½ ?€Uö�¿?&¾o»0¾Ï1 ?Hm¾F_A½f½ ?€Uö�¿?&>o»0>Ï1 ? ×£¼Aèß> €-x\BªBðB CMCzC€“C@´Cf&ÒC3³ôC3Ó DÀD€'D€6DHD€TDÍŒhDš¹vD ƒD3óŠDföŽDfV•D€hD@qDzD‚D€ƒD3“‡Dð�D@¦DAøà> ôxAÀá> Aˆâ> 8ôxLÿÿÿ´˜þÿÿ´h˜þÿÿhäýÿÿÐ|üÿÿAÐâ> 8h0ýÿÿh˜þÿÿдLÿÿÿ´Lÿÿÿ0ýÿÿÈûÿÿA˜ã> ôxAÈã> ˜þÿÿA”ä> ˜þÿÿA¨ä> 5ôxAôä> 1A¸å> ôxAôå> AŒæ> A¨æ> AÈæ> 5ô0!)19))A1)19)Aˆç> •ô�A¨è> ˜-�\BªBðB CMCzC¸~“C:´C¢%ÒCãµôCÕ D¾D%D@&D€'D/D4D€6D>D€EDHD€TD€hD5ŽhD@qDå¸vDzD‚D€ƒD ƒD‡’‡DËñŠD¬ð�DXõŽDXU•D@¦DAÈé> -�AÖé> €À @ÀÀ€@Aòé> .ÀÀ Á@Á@A@Á@A@Á@AAªê> €@@À€@À ÀAÎê> °ÀAèê> Q$A‡ë> A¨ë> ˜-�€?€?š™™?š™™?33³?33³?š™™?ffæ?ffæ?ff&@@@@?š™?À?š™?š™??ff¦?ff¦?š™™?š™?š™™?€@š™™?33@š™™?š™™??@@ffæ?ÍÌÌ?@À@ÍÌÌ?`@AÈì> -�Aêì>  AÀAÀAØA°AèAA¬í> sh/ÁØAAÆí> àAÀAÈAsh/ÁÀA AAèí> -�AŠî> NpA€AˆA�AˆA˜A@A@A@A@A@A@A@A@A@A@AˆA˜AAâî> @A¨AˆA@A�A A�AÀAAˆï> -�Aªï> €?š™™?š™™?š™Ù?33³?@Aìï> çû)?À?A„ð>   @š™™?ff¦?L7I?Nb�?áz4@A¨ð> ˜ô�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿAÈñ> respawn s Aøñ>  feature A¨ò>  perfect AØò>  lip Aøò>  vy A˜ó> takeoff s AÈó> -$AÖó> C€»CÀ(D@ƒD€»D@E 2E`jEAˆô> 6ô0!J{´ÝGx¡Ò AÈô> ø4-p/CÁb0.ѕĖCCÁ¬<.Ñ¥ÄXCÁöH.ѵÄ‹lCÁ�U.ÑÅÄ�CÁËa.ÑÕÄ�•CÁn.ÑåÄü©CÁ z.ÑõÄw¾CÁé†.ÑÄòÒCÁ¶“.ÑÄmçCÁƒ .Ñ%ÄçûCÁP­.Ñ5ÄbDÁº.ÑEÄÝ$DÁéÆ.ÑUÄX9DÁ¶Ó.ÑeÄÓMDÁà.ÑuÄNbDÁJì.Ñ…ÄÉvDÁÕø.Ñ•ÄD‹DÁ/Ñ¥ľŸDÁh/ѵÄ9´DÁô/ÑÅÄ´ÈDÁ=*/Ã�ÕÄ/ÝDÁ‡6/Ã�åĪñDÁC/Ã�õÄ%EÁ\O/Ã� Ä EÁ¦[/Ã� Ä/EÁ1h/Ã�% Ä–CEÁ{t/Ã�5 ÄXEÁÅ€/Ã�E Ä‹lEÁP�/Ã�U Ä�EÁš™/Ã�e Ä�•EÁã¥/Ã�u Äü©EÁo²/Ã�… Äw¾EÁ¸¾/Ã�• Ä ×WÁ×£5ÃÃU(ÄXÁº5ÃÃe(Äö(XÁ¨Æ5ÃÃu(ÄìQXÁòÒ5ÃÃ…(ÄázXÁ;ß5ÃÕ(Ä×£XÁÇë5ò¥(ÄÍÌXÁø5òµ(ÄÃõXÁZ6òÅ(ĸYÁ¤6òÕ(Ä®GYÁ/6òå(ĤpYÁy)6âõ(Äš™YÁÃ56â)Ä�ÂYÁNB6â)Ä…ëYÁ˜N6â%)Ä{ZÁáZ6â5)Äq=ZÁmg6ÑE)ÄffZÁ¶s6ÑU)Ä\�ZÁ€6Ñe)ÄR¸ZÁJŒ6Ñu)ÄHáZÁÕ˜6Ñ…)Ä= [Á¥6Ã�•)Ä33[Áh±6Ã�¥)Ä)\[Áô½6Ã�µ)Ä…[Á=Ê6Ã�Å)Ä®[Á‡Ö6Ã�Õ)Ä ×[Áã6Ãqå)Ä\Áßï6Ãqõ)Äö(\Á¬ü6Ãq*ÄìQ\Áy 7Ãq*Äáz\ÁF7Ãq%*Ä×£\Á#7Ã`5*ÄÍÌ\Áž/7Ã`E*ÄÃõ\Á)<7Ã`U*ĸ]ÁsH7Ã`e*Ä®G]Á¼T7Ã`u*Ĥp]Áa7ÃP…*Äš™]Á‘m7ÃP•*Ä�Â]ÁÛy7ÃP¥*Ä…ë]Á%†7ÃPµ*Ä{^Á°’7ÃPÅ*Äq=^Áúž7Ã?Õ*ÄpÁë?Ãj,7ÄpÁ)ü?Ãj<7ÄpÁP @ÃjL7ÄpÁw@Ãj\7ÄpÁž/@Ãjl7ÄpÁÅ@@Ãj|7ÄpÁìQ@ÃjŒ7ÄpÁc@Ãjœ7ÄpÁ9t@Ãj¬7ÄpÁ`…@Ãj¼7ÄpÁ‡–@ÃjÌ7ÄpÁ®§@ÃjÜ7ÄpÁÕ¸@Ãjì7ÄpÁüÉ@Ãjü7ÄpÁ#Û@Ãj 8ÄpÁJì@Ãj8ÄpÁqý@Ãj,8ÄpÁ˜AÃj<8ÄpÁ¾AÃjL8ÄpÁå0AÃj\8ÄpÁ BAÃjl8ÄpÁòRAÃj|8ÄpÁdAÃjŒ8ÄpÁ?uAÃjœ8ÄpÁf†AÃj¬8ÄpÁ�—AÃj¼8ÄpÁ´¨AÃjÌ8ÄpÁÛ¹AÃjÜ8ÄpÁËAÃjì8ÄpÁ)ÜAÃjü8ÄpÁPíAÃj 9ÄpÁwþAÃj9ÄpÁžBÃj,9ÄpÁÅ BÃj<9ÄpÁì1BÃjL9ÄpÁCBÃj\9ÄpÁ9TBÃjl9ÄpÁ`eBÃj|9ÄpÁ‡vBÃjŒ9ÄpÁ®‡BÃjœ9ÄpÁÕ˜BÃj¬9ÄpÁü©BÃj¼9ÄpÁ#»BÃjÌ9ÄpÁJÌBÃjÜ9ÄpÁqÝBÃjì9ÄpÁ˜îBÃjü9ÄpÁ¾ÿBÃj :ÄpÁåCÃj:ÄpÁ "CÃj,:ÄœÄà¾L2Ã!ÄZä¾é¦2Ã)!Äžïç¾}ÿ2Ã9!Ä1ì¾ç;3ÃI!IJ�ï¾Nb3ÃöX!Ä33ó¾´ˆ3Ãöh!Ä´Èö¾¯3Ãöx!Ä5^ú¾�Õ3Ãöˆ!Ķóý¾çû3Ãö˜!ĜĿ4Ãö¨!Ä\�¿-24Ãö¸!ÄZ¿üI4ÃöÈ!ÄÝ$¿Ëa4ÃöØ!Ğᅳy4Ãöè!Ä^º ¿ª‘4Ãåø!Ä… ¿ô�4Ãå"ÄßO ¿‰¡4Ãå"Ä)\¿‰¡4Ãå("Äé&¿Õ¸4Ãå8"Īñ¿!Ð4ÃåH"Äj¼¿mç4ÃåX"Ä+‡¿¸þ4Ãåh"ÄìQ¿5Ãåx"Ĭ¿P-5Ãåˆ"Äm翜D5ÃÕ˜"Ä-²¿ç[5ÃÕ¨"Äî|¿3s5ÃÕ¸"Ä®G!¿Š5ÃÕÈ"Äo#¿Ë¡5ÃÕØ"Ä/Ý$¿¹5ÃÕè"Äð§&¿bÐ5ÃÕø"Ä9´(¿®ç5ÃÕ#Äú~*¿úþ5ÃÕ#ĺI,¿F6ÃÕ(#Ä{.¿‘-6ÃÅ8#Ä;ß/¿ÝD6ÃÅH#Äü©1¿)\6ÃÅX#ļt3¿us6ÃÅh#Ä}?5¿ÁŠ6ÃÅx#Ä= 7¿ ¢6Ãň#ÄþÔ8¿X¹6ÃŘ#ľŸ:¿¾Ÿ6ÃŨ#Äj<¿%†6ß#Ä?5>¿‹l6ÃÅÈ#Ä@¿òR6ôØ#ÄJ B¿j<6ôè#Ä ×C¿1(6ôø#ÄË¡E¿96ô$Ä‹lG¿B6ô$ÄL7I¿ì5ô($Ä K¿Ø5ô8$ÄÍÌL¿üÉ5ôH$Ä�—N¿Á5ôX$ÄNbP¿¸5ôh$Ä-R¿¯5äx$ÄÏ÷S¿%¦5äˆ$Ä�ÂU¿/�5ä˜$Ämç#À‹;ÃÐ/ÄZ$ÀÇ‹;Ãà/ÄÍÌ$ÀB€;Ãð/Ä}?%À¼t;Ã0Ä-²%Àüi;Ã0ÄÝ$&À¾_;Ãð0Ä�—&ÀFV;Ãð/0Ä= 'À‘M;Ãð?0Äî|'À%F;ÃðO0Äžï'À@;Ãð_0ÄNb(À#;;Ãðo0ÄþÔ(À�7;Ãð0ÄX)À�5;Ãð�0ÄÁÊ)Àþ4;ÃðŸ0Äq=*À�5;Ãð¯0Ä!°*ÀÏ7;Ãß¿0ÄÑ"+À¦;;ÃßÏ0Ä�•+À‰A;Ãßß0Ä1,À7I;Ãßï0Äáz,À°R;Ãßÿ0Ä‘í,À5^;Ãß1ÄB`-À…k;Ãß1ÄòÒ-À z;Ãß/1Ä¢E.ÀÇ‹;Ãß?1ÄR¸.À¸ž;ÃßO1Ä+/Àu³;ÃÏ_1Ä®/ÀüÉ;ÃÏo1ÄÅ 0À â;ÃÏ1Äu“0Àçû;ÃÏ�1Ä%1À <ÃÏŸ1ÄÕx1Àø3<Ãϯ1Ä…ë1ÀìQ<ÃÏ¿1Ä5^2À'q<ÃÏÏ1ÄåÐ2Àª‘<ÃÏß1Ä–C3À3³<ÃÏï1ÄF¶3À?Õ<þÿ1Äö(4ÀRø<þ2Ħ›4Àç=þ2ÄV5À@=þ/2Ä�5ÀZd=þ?2Ä6À´ˆ=þO2Ä ×À®çGÃý@ļtÀîHà AÄ ÀoRHÃAÄ\�À%fHÃ-AĬÀ°rHÃ=AÄ^ºÀú~HÃMAÄ®GÀD‹HÃ]AÄþÔÀÏ—HÃmAİrÀ¤HÃ}AÄÀb°HÃþŒAÄP�Àî¼HÃþœAÄ+À7ÉHÃþ¬AÄR¸À�ÕHÃþ¼AÄ¢EÀ âHÃþÌAÄòÒÀVîHÃþÜAĤpÀ úHÃþìAÄôýÀ+IÃþüAÄD‹À+IÃþ BÄö(ÀçIÃþBÄF¶À¤0IÃþ,BÄ–CÀ`EIÃîJÃÝüBÄ-² À¶SJÃÝ CÄ}? ÀshJÃÝCÄ/Ý Àq}JÃÝ,CÄj À-’JÃÝÄ®GAª1FÓˆ>Ä)\AÑBFÓ˜>ļtAøSFÓ¨>Ä7‰AeFÓ¸>IJ�AFvFÓÈ>ÄF¶Am‡FÓØ>ÄÁÊA“˜FÓè>Ä;ßAº©FÓø>ÄÏ÷AáºFÓ?ÄJ AÌFÓ?ÄÅ A/ÝFÓ(?ÄX9AVîFÓ8?ÄÓMA}ÿFÓH?ÄNbA¤GÓX?ÄázAË!GÃh?Ä\�Aò2GÃx?Ä×£ADGÈ?Äj¼A?UGØ?ÄåÐAffGè?Ä`åA�wGø?ÄôýA´ˆGÃÈ?ÄoAÛ™GÃØ?Äé&A«GÃè?Ä}?A)¼GÃø?ÄøSAPÍGÃ@ÄshAwÞGÃ@Ä�AžïGÃ(@Ä�•AÅHÃ8@Ä®AìHÃH@Ä�ÂA#HÃX@Ä ×A94HÃh@ÄžïA`EHÃsx@ÄA‡VHÃsˆ@Ä“A®gHÃs˜@Ä'1AÕxHÃs¨@Ä¢EAü‰HÃs¸@ÄZA#›HÃsÈ@İrAJ¬HÃsØ@Ä+‡Aq½HÃsè@Ħ›A˜ÎHÃsø@Ä9´A¾ßHÃsAÄ´ÈAåðHÃsAÄ/ÝA IÃs(AÄÃõA3IÃs8AÄ= AZ$IÃsHAĸA�5IÃsXAÄL7A¨FIÃshAÄÇKAÏWIÃsxAÄ33^Â%FŒÃÓ-†ÄøÓ]ÂþTŒÃ?5†ÄÃu]ÂøcŒÃ¬<†Ä‡]ÂÑrŒÃ!D†ÄR¸\ÂË�ŒÃ�K†ÄY\ÂÅ�ŒÃúR†Äáú[žŸŒÃoZ†Ä¦›[˜®ŒÃÛa†Äq=[Âq½ŒÃHi†Ä5ÞZÂǰôp†Ä€ZÂDÛŒÃ)x†ÄÅ ZÂ=êŒÃ–†Ä�ÂYÂ7ùŒÃ‡†ÄTcYÂ�ÃoކÄY �Ã㕆Äã¥XÂã%�ÃP�†Ä®GXÂÝ4�ü¤†ÄsèWÂ×C�Ã)¬†Ä=ŠW°R�Þ³†Ä+Wªa�à »†ÄÍÌVƒp�Ãw†đmVÂ}�ÃìɆÄ\VÂVŽ�ÃXцÄ!°UÂP��ÃÅØ†ÄìQUÂJ¬�Ã1à†Ä°òTÂ#»�æç†Ä{”TÂÊ�Ãï†Ä?5TÂöØ�Ãö†Ä ×SÂðç�Ãìý†ÄÏwSÂÉö�Ã`‡ÄšSÂÃŽÃÍ ‡Ä^ºR¼ŽÃ9‡Ä)\R–#ŽÃ¦‡ÄîüQÂ�2ŽÃ#‡Ä¸žQÂhAŽÃ‡*‡Äƒ@QÂbPŽÃô1‡ÄHáPÂ;_ŽÃ`9‡ÄƒPÂ5nŽÃÕ@‡Ä×#PÂ/}ŽÃBH‡Ä¢ÅOÂŒŽÃ®O‡ÄffO›ŽÃ#W‡Ä1OÂÛ©ŽÃ�^‡Äö¨NÂÕ¸ŽÃüe‡ÄÁJNÂÏÇŽÃhm‡Ä…ëM¨֎ÃÝt‡ÄP�M¢åŽÃJ|‡Ä.MÂ{ôŽÃ¶ƒ‡ÄßÏLÂu�Ã#‹‡Ä¤pLÂN�Ø’‡ÄoLÂH!�Ú‡Ä3³KÂB0�Ãq¡‡ÄþTKÂ?�Ãݨ‡ÄÃõJÂN�ÃR°‡Ä�—JÂî\�þ·‡ÄR8JÂçk�Ã+¿‡ÄÚIÂÁz�ØƇÄázIº‰�à ·Ęn¢A´8„Ã=R}Äš™¢AšI„Ã-b}Ä�¢A^Z„Ãr}Ä‘í¢A=j„à ‚}ć£Aøs„Ãü‘}ĉA£AÓ}„Ãü¡}Äj£A�‡„Ãì±}Ä�•£Ah‘„ÃÛÁ}Äw¾£A#›„ÃËÑ}Äyé£Aݤ„úá}Äo¤A¸®„êñ}Äq=¤As¸„Ú~Äff¤AN„Ú~Äh‘¤ĀÉ!~Ä^º¤AÃÕ„Ãy1~Ä`å¤Ažß„ÃhA~ÄV¥AXé„ÃXQ~ÄX9¥A3ó„ÃHa~ÄNb¥Aîü„ÃHq~ÄP�¥A¨…Ã7�~ÄF¶¥Aƒ…Ã'‘~ÄHá¥A=…á~Ä= ¦A$…ñ~Ä?5¦AÓ-…ÃöÀ~Ä5^¦A�7…ÃöÐ~Ä7‰¦AhA…Ãåà~Ä-²¦A#K…ÃÕð~Ä/ݦAþT…ÃÅÄ%§A¸^…ôÄ'1§Ash…ä ÄZ§ANr…Ó0Ä…§A|…Ó@Ä®§AㅅÃPÄÙ§Až�…Ãs`ĨAy™…ÃbpÄ-¨A3£…ÃR€ÄX¨AÃB�Ä�¨Aɶ…ÃB Ä¬¨AƒÀ…Ã1°ÄþÔ¨A^Ê…Ã!ÀÄ©A×Ó…ÃÐÄAÈ©? 8-0%D/D>D€'D€6DHD€TD@&D4D€EDËñŠD€ƒDAˆª?  air A¨ª?  pop AȪ? !coyote pop s Aøª?  flip A˜«?  spin A¸«?  crash AØ«? -Aå«? ОĀ¿š™?2BéV¹ÃAˆ¬?  q A¨¬?  impact AȬ?  tilt Aè¬?  yaw Aˆ­? land s A¨­?  grind AÈ­?  grab Aè­?  sum Aˆ®?  xA¨®?  bank AÈ®? -€?@??€>Aè®? ô0Aü®?  A¨¯? 5ô0Aè¯? È-Àw¾EÁ/CÁ�• Ä‘•Äq=^Á ×WÁ?Õ*ÄÃU(ÄpÁpÁj,:Äj,7Ä�ÂU¿œÄྤ˜$Ä!Ä6Àmç#À¾O2ÄÐ/Ä ×À!° ÀÝ|CÄý@ÄXY¿�µ¾!@QĤ@MÄÓM6AÛù:Ayñ"ĺñÄVATãAFö/Ĩv-Ä33AÇKAsxAÄ“x>Ä33^ÂázI ·ÄÓ-†Ä˜n¢A©AÐÄ=R}ÄA¸±? 70Spu failed, restarting: Aø±? Jobs.runA˜²? Worker.spawnAȲ? Audio.startAø²?  Lift_A˜³? ../LensA¸³? ../../LensAè³? SnowAˆ´?  FlareA¨´? ConfettiAÈ´? Pins/PhaseAø´? Pins/ScoreA¨µ? !Pins/ComboSumAص? #Pins/ComboMultAˆ¶? ' Pins/ComboActiveA¸¶? #Pins/TrickSpinAè¶? !Pins/TrickDirA˜·? #Pins/TrickFlipAÈ·? %Pins/TrickGrab1Aø·? %Pins/TrickGrab2A¨¸? ' Pins/TrickSwitchAظ? %Pins/TrickGrindAˆ¹? #Pins/TrickLiveA¸¹? ' Pins/TrickPointsAè¹? !Pins/TrickSeqA˜º? Pins/BankSeqAȺ? %Pins/PerfectSeqAøº? !Pins/CrashSeqA¨»? Pins/BailSeqAØ»? Pins/PraiseAˆ¼? Pins/TimeA¸¼? #Pins/CountdownAè¼? !Pins/ProgressA˜½? Pins/SectionAȽ? !Pins/SpeedKmhAø½? Pins/BalanceA¨¾? !Pins/GrindingAؾ? !Pins/LineHighAˆ¿? #Pins/ResTricksA¸¿? #Pins/ResGrindsAè¿? +$Pins/ResComboBonusA¨À? ' Pins/ResLandingsAØÀ? )"Pins/ResTimeBonusA˜Á? !Pins/ResTotalAÈÁ? )"Pins/ResBestComboAˆÂ? +$Pins/ResLongestAirAÈÂ? ' Pins/ResPerfectsAøÂ? %Pins/ResCrashesA¨Ã? Pins/ResStepAØÃ? !Pins/ResGradeAˆÄ? Pins/ResRankA¸Ä? )"Pins/InitialsCodeAøÄ? -&Pins/InitialsCursorA¸Å? !Pins/Hs1ScoreAèÅ? !Pins/Hs2ScoreA˜Æ? !Pins/Hs3ScoreAÈÆ? !Pins/Hs4ScoreAøÆ? !Pins/Hs5ScoreA¨Ç? !Pins/Hs6ScoreAØÇ? !Pins/Hs7ScoreAˆÈ? !Pins/Hs8ScoreA¸È? !Pins/Hs9ScoreAèÈ? #Pins/Hs10ScoreA˜É? Pins/Hs1TagAÈÉ? Pins/Hs2TagAøÉ? Pins/Hs3TagA¨Ê? Pins/Hs4TagAØÊ? Pins/Hs5TagAˆË? Pins/Hs6TagA¸Ë? Pins/Hs7TagAèË? Pins/Hs8TagA˜Ì? Pins/Hs9TagAÈÌ? Pins/Hs10TagAøÌ? ' Pins/CaptionLineA¨Í? %Pins/CaptionSeqAØÍ? Pins/BeatAˆÎ? Pins/DeviceA¸Î? %Pins/GhostDeltaAèÎ? ' Pins/OllieChargeA˜Ï? ' Pins/In/StartSeqAÈÏ? +$Pins/In/RestartSeqAˆÐ? %Pins/In/QuitSeqA¸Ð? #Pins/In/PausedAèÐ? #Pins/In/SchemeA˜Ñ? -&Pins/In/MusicVolumeAØÑ? )"Pins/In/SfxVolumeA˜Ò? -&Pins/In/VoiceVolumeAØÒ? Pins/In/MuteAˆÓ? 1*Pins/In/ReducedMotionAÈÓ? 1*Pins/In/LandingAssistAˆÔ? -&Pins/In/GrindAssistAÈÔ? !Pins/In/GhostAøÔ? Pins/In/PadXA¨Õ? Pins/In/PadYAØÕ? +$Pins/In/PadButtonsA˜Ö? )"Pins/In/UiMoveSeqAØÖ? -&Pins/In/UiSelectSeqA˜×? )"Pins/In/UiBackSeqAØ×? +$Pins/In/InitialsInA˜Ø? 5.Pins/In/InitialsDoneSeqAØØ? Pins/In/DemoAˆÙ? )"Pins/In/AutopilotAÈÙ? “Pins/In/SeedPÚ€Ú°ÚàÚÛ@ÛpÛ ÛÐÛÜ0Ü`Ü�ÜÀÜðÜ ÝP݀ݰÝàÝÞ@ÞpÞ ÞÐÞß0ß`ß�ßÀßðß0à`à àÐàáPá€á°áàáâ@â€âÀâðâ ãPã€ã°ãàãä@äpä äÐäå0å`å�åÀåðå æPæ€æ°æàæç@çpç çÐçè@èpè èàè é`é�éÐéêPê€ê°êàê ë`ë ëàë ì`ì�ìÐìAèÜ? +$LowRes/RiderAnchorA¨Ý? LowRes/RiderAØÝ? BodyAøÝ? AVAA˜Þ? RADA¸Þ? ZAPAØÞ? SKYAøÞ? MAXA˜ß? JETA¸ß? NEOAØß? ICEAøß? OLYA˜à? 7BOBï ï@ï`ï€ï ïÀïàïð ðAØà?  ShadowAøà?  SprayA˜á?  BurstA¸á? SparkleAØá? HipsAøá? Hips/ChestA¨â? %Hips/Chest/NeckAØâ? /(Hips/Chest/ShoulderLA˜ã? =6Hips/Chest/ShoulderL/ElbowLAèã? KDHips/Chest/ShoulderL/ElbowL/WristLAÈä? /(Hips/Chest/ShoulderRAˆå? =6Hips/Chest/ShoulderR/ElbowRAØå? KDHips/Chest/ShoulderR/ElbowR/WristRA¸æ? Hips/HipLAèæ? %Hips/HipL/KneeLA˜ç? 3,Hips/HipL/KneeL/AnkleLAØç? Hips/HipRAˆè? %Hips/HipR/KneeRA¸è? s,Hips/HipR/KneeR/AnkleRàðñ0ñ`ñ ñðñPò�òàò@ópó óàóô@ôA¸é? DoorAØé? LiftAøé?  SchemeA˜ê? IBTraversal symbol stream exhaustedAøê? MFInvalid Edgebreaker valence contextAØë? mfEdgebreaker valence context symbol stream exhaustedAØì? MFInvalid Edgebreaker valence symbol A¸í? c\Edgebreaker predictive symbol stream exhaustedA¨î? ¥žThe constrained multi-parallelogram prediction scheme takes no parent attributeAØï? �zThe parallelogram prediction scheme takes no parent attributeAèð? qjThe delta prediction scheme takes no parent attributeAèñ? yrGeometric normal prediction needs a position parent, got Aøò? xGeometric normal prediction needs a 3-component parent, got Aˆô? PositionA¨ô?  NormalAÈô? TexCoordAèô? GenericAˆõ? �†The multi-parallelogram prediction scheme takes no parent attributeA¨ö? «¤Deprecated texture-coordinate prediction needs a 3-component position parent, got Aè÷?  componentsA˜ø? �ˆPortable texture-coordinate prediction needs a position parent, got A¸ù? •ŽPortable texture-coordinate prediction needs a 3-component parent, got AØú? mfStream ends before the pre-2.2 prediction mode byteAØû? g`Constrained multi-parallelogram prediction mode AÈü? ƒ|Constrained multi-parallelogram prediction has no corner tableAØý? {tStream ends before the crease-edge flag count for context Aèþ? Context Aˆÿ? KD crease-edge flags, more than the Aèÿ?  cornersAˆ€À OHCrease-edge rANS stream for context Aè€À ! is truncatedA˜�À qjStream ends before the pre-2.2 normal prediction modeA˜‚À 5.Normal prediction mode AØ‚À qjGeometric normal prediction has no data-to-corner mapA؃À WPNormal flip-bit rANS stream is truncatedA¸„À ‘ŠStream ends before the octahedral transform's maximum quantized valueAØ…À {tStream ends before the octahedral transform's center valueAè†À MFOctahedral maximum quantized value AȇÀ 1* is not representableAˆˆÀ }vStream ends before the texture-coordinate orientation countA˜‰À slTexture-coordinate prediction declares no orientationsA˜ŠÀ c\Texture-coordinate prediction has no mesh dataAˆ‹À ibTexture-coordinate prediction has no corner tableAˆŒÀ ' Stream declares A¸ŒÀ A: orientations, more than the Aˆ�À unTexture-coordinate orientation rANS stream is truncatedAˆŽÀ ! orientationsA¸ŽÀ ‡€Portable texture-coordinate prediction has no data-to-corner mapAÈ�À C< entries that can consume themA˜�À qjStream ends before the wrap transform's minimum valueA˜‘À qjStream ends before the wrap transform's maximum valueA˜’À YRWrap transform's range is empty: minimum Aˆ“À +$ is above maximum AÈ“À 5.Wrap transform's range Aˆ”À ..=A¨”À ]V is too wide for its span to be representedA˜•À =6 values do not divide into Aè•À �ˆConstrained multi-parallelogram prediction has no vertex-to-data mapAˆ—À ibConstrained multi-parallelogram prediction needs Aˆ˜À ! values, has A¸˜À wpCorner fan does not close after every corner was visitedA¸™À 70 reads crease-edge flag Aø™À  in context A¨šÀ kdParallelogram corner reads past the decoded valuesA¨›À qjParallelogram prediction needs at least one componentA¨œÀ _XParallelogram prediction has no corner tableA˜�À kdParallelogram prediction has no vertex-to-data mapA˜žÀ kdParallelogram prediction has no data-to-corner mapA˜ŸÀ E>Parallelogram prediction needs AèŸÀ =6assertion failed: step != 0A¸ À ibGeometric normal prediction was never initializedA¸¡À …~Geometric normal prediction needs 2 octahedral components, got AÈ¢À _XGeometric normal prediction has no mesh dataA¸£À KDGeometric normal prediction needs A˜¤À aZOctahedral transform needs 2 components, got Aˆ¥À }vMulti-parallelogram prediction needs at least one componentA˜¦À kdMulti-parallelogram prediction has no corner tableA˜§À wpMulti-parallelogram prediction has no vertex-to-data mapA˜¨À wpMulti-parallelogram prediction has no data-to-corner mapA˜©À QJMulti-parallelogram prediction needs Aø©À slTexture-coordinate prediction needs 2 components, got AøªÀ ohTexture-coordinate prediction has no position parentAø«À unTexture-coordinate prediction has no entry-to-point mapAø¬À unTexture-coordinate prediction has no data-to-corner mapAø­À OHTexture-coordinate prediction needs AØ®À 3, entries, the map has A˜¯À c\Texture-coordinate prediction failed at entry Aˆ°À …~Portable texture-coordinate prediction needs 2 components, got A˜±À �zPortable texture-coordinate prediction has no position parentA¨²À ‡€Portable texture-coordinate prediction has no entry-to-point mapA¸³À unPortable texture-coordinate prediction has no mesh dataA¸´À aZPortable texture-coordinate prediction needs A¨µÀ unPortable texture-coordinate prediction failed at entry A¨¶À QJthe embedded image is not a PNG imageAˆ·À UNthe embedded image is not a PNG image: Aè·À  MirrorAˆ¸À 7merge_threshold@°¤ °ZAȸÀ SubsurfAè¸À /render_levelsठpA¨¹À %relative_offsetAعÀ ;constant_offset€) °à°ZA¨ºÀ Vec3AȺÀ ,)AèºÀ "Solidify02^PlA˜»À  BevelA¸»À +angle_limitP1Ð¥ ÀAø»À TriangulateA¨¼À Weld¦ AȼÀ "EdgeSplit°XAø¼À %preserve_volumeA¨½À )"use_vertex_groupsAè½À 7use_envelopes<€°ðA¨¾À  Some(AȾÀ ToolPÍ0ÐÀ€ Aø¾À scale_attrA¨¿À ?rotation_attr<ð²€§ ‚°Aø¿À Extð# Ï A˜ÀÀ �ˆ' is not a modifier this build knows; `help modifier add` lists themA¸ÁÀ e^Cut, join or intersect with another mesh objectA¨ÂÀ Ö <AÈÂÀ castAèÂÀ CastAˆÃÀ ohBlend the shape towards a sphere, cylinder or cuboidAˆÄÀ Ö =A¨ÄÀ decimateAÈÄÀ DecimateAèÄÀ …~Reduce the face count by collapse, un-subdivide or planar mergeAøÅÀ Ö >A˜ÆÀ displaceA¸ÆÀ DisplaceAØÆÀ xPush vertices along an axis or their normal, by an attributeAèÇÀ Ö ?AˆÈÀ MaskA¨ÈÀ wpShow only the faces whose vertices are in a vertex groupA¨ÉÀ Ö @AÈÉÀ  remeshAèÉÀ  RemeshAˆÊÀ unRebuild the surface on a uniform grid (blocks or voxel)AˆËÀ Ö AA¨ËÀ  ScrewAÈËÀ ‰‚Revolve the profile around an axis, optionally advancing along itAèÌÀ Ö BAˆÍÀ shrinkwrapA¸ÍÀ ShrinkwrapAèÍÀ g`Pull vertices onto the surface of another objectAØÎÀ Ö CAøÎÀ !simple-deformA¨ÏÀ SimpleDeformAØÏÀ _XTwist, bend, taper or stretch around an axisAÈÐÀ Ö DAèÐÀ  SmoothAˆÑÀ xRelax vertices towards their neighbours (plain or Laplacian)A˜ÒÀ Ö EA¸ÒÀ WireframeAèÒÀ mfReplace the surface with solid bars along its edgesAèÓÀ Ö FAˆÔÀ UNthickness is zero, so no bars were madeAèÔÀ ›”no edge qualified: with --boundary off an open surface has nothing to wrapA˜ÖÀ /('; weighting ignoredAØÖÀ )"no vertex group 'A˜×À g`' needs the object, and this evaluation has noneAˆØÀ #vertex group 'A¸ØÀ g`'; `attribute list` shows the ones this mesh hasA¨ÙÀ E> takes a list of x, y, z, got 'AøÙÀ bP, so there is nothing to deform along itÐI€K KAèÚÀ 5.the mesh is flat along A¨ÛÀ ‰‚shrinkwrap needs a target (`modifier set <name> target <object>`)AÈÜÀ slshrinkwrap needs the scene (evaluated without context)AÈÝÀ g`' has no faces; there is no surface to wrap ontoA¸ÞÀ ›”--invert-face-cull is ignored: projection hits the target from either sideAèßÀ C<(set --negative or --positive)A¸àÀ }vprojection has neither direction enabled, so nothing moves AÈáÀ ‘Š vertices found nothing to project onto and were left where they wereAââÀ €?€¿AøâÀ UNan object cannot shrinkwrap onto itselfAØãÀ ' is a AøãÀ 92and this mesh has neitherAÈäÀ “Œnothing to revolve: a screw sweeps the mesh's wire or boundary edges, AèåÀ Ö IAˆæÀ yrremesh needs a closed surface, and this mesh has no facesA˜çÀ c\(`inspect check` lists the non-manifold edges)AˆèÀ ¥žthe mesh is not a closed manifold, so the inside test may fill the wrong cells A¸éÀ OHvoxel-size must be greater than zeroA˜êÀ =6--voxel-size (the limit is AèêÀ SL cells; lower --octree-depth or raise AÈëÀ  = AèëÀ -&that grid would be A¨ìÀ [Traise --octree-depth or lower --voxel-sizeA˜íÀ …~the grid is coarser than the shape, so no cell fell inside it; A¨îÀ -& disconnected facesAèîÀ dropped AˆïÀ ôHÿÿÿÿAœïÀ A¬ïÀ ÿÿÿÿA¸ïÀ AÈïÀ ÿÿÿÿAÔïÀ AèïÀ ô A„ðÀ A¬ðÀ !AÜðÀ AèðÀ AüðÀ A�ñÀ AÀñÀ AèñÀ %A˜òÀ § --smooth is not implemented: faces are kept or dropped whole, never interpolatedAÈóÀ }varmature mode needs `modifier set <name> armature <object>`AØôÀ yrarmature mode needs the scene (evaluated without context)AèõÀ =6' is not an armature objectA¸öÀ /('; nothing is maskedAøöÀ [Tno vertex group is named after a bone of 'Aè÷À “Œmask needs a vertex group (`modifier set <name> vertex-group <group>`)AˆùÀ Ÿ˜a mask modifier needs the object's vertex groups (evaluated without context)A¸úÀ OH(`attribute list` shows this mesh's)A˜ûÀ SL'; displacing by a constant 1 instead AøûÀ QJ takes three numbers ("x y z"), got 'AØüÀ 3, takes a number, got 'A˜ýÀ �ˆno neighbouring faces were flat enough to merge; raise --angle-limitA¸þÀ [Tboundary or non-manifold (`inspect check`)A¨ÿÀ �†nothing could be collapsed without tearing the mesh; it may be all AÈ€Á ... and Aè€Á UN edges; joining edges needs exactly twoAÈ�Á QJ sits on a loop edge; cannot dissolveA¨‚Á  joins AÈ‚Á UN wire edges; dissolve needs exactly twoA¨ƒÁ !v on its faceA؃Á e^ is non-manifold; its faces do not form one fanAÈ„Á ' dissolving vert Aø„Á WP would create a face that touches itselfAØ…Á 3,) should be < len (is A˜†Á 3,swap_remove index (is A؆Á KD edges with no vertex between themA¸‡Á  share A؇Á  faces Aø‡Á %; not dissolvedA¨ˆÁ ;4 shares no edge with face AøˆÁ C<cannot join a face with itselfAȉÁ C< edges; join needs exactly oneA˜ŠÁ UN have inconsistent winding across edge AøŠÁ #joining faces A¨‹Á …~boolean needs an object (`modifier set <name> object <object>`)A¸ŒÁ mfboolean needs the scene (evaluated without context)A¸�Á e^(`merge by-distance` welds the seam afterwards)A¨ŽÁ †vthe exact solver is not implemented; this ran the fast one  = >A¸�Á C< is ignored by the fast solverAˆ�Á this objectA¸�Á 'the operandH@HAè�Á ! has no facesA˜‘Á —� is not a closed manifold; the result may keep or drop the wrong pieces A¸’Á ¡š left no geometry: the two meshes may not overlap the way the operation needsAè“Á _Xan object cannot be booleaned against itselfAØ”Á Ö SAø”Á 92 build, which declares itAÈ•Á ;4at the Rive project's rootA˜–Á =6): build the Hedra project Aè–Á c\ is not declared in the Rive project (no blob AØ—Á 92the Rive project's data (A¨˜Á ' cannot read it: AؘÁ /(the Rive project at A˜™Á /(it is not UTF-8 textAØ™Á MF does not read, so it is left out: A¸šÁ =6the Rive project's data in Aˆ›Á žfix the file (`rive inspect` names the same problem), or leave it out with rive.yaml's exclude:AØœÁ /(: it is not a folderA˜�Á .rmlA¸�Á /*AØ�Á rive.yamlAˆžÁ  buildA¨žÁ - AÈžÁ dirAèžÁ scriptingA˜ŸÁ wasmRuntimeAÈŸÁ excludeAèŸÁ  #Aˆ Á yr events in one frame: the event listeners hear the first A˜¡Á )" heard more than AØ¡Á %job was stoppedAˆ¢Á Blob.fromA¸¢Á ¯¨audio processors cannot create shared memory; make the blob elsewhere and pass it inAø£Á 1*a blob holds at most A¸¤Á buffer'sAؤÁ -&SharedRegion.create�º rive.jobsasm‡G``|`}}}`````}~}~}`}}```}}}}`` }}}}}}}}}``|``` }}}}}}}`}}}```}}}}}}}}`|`|`|`}}}}}}}}}` }}}}}}}}} }}}}}}}}}` }}}}}}}}}}}}}}}}}}}}`}}}}}}}}}}}` }}}}}}` }}}}}}}}}}`}}}`}}}}}}}}}}}}}}` }}}}}}`` }}}}}}}}}}}}` }}}}}}}}}`}}}}`}}}}}}}}}}`}}}}}}}}}}}}`}}}}}`}` }}}}}}}}}}}}}}}}}}}`}}}` }}}}}}}}`}}}}}}}}}}}}}}}}`}}}}}}}}}}}}}}`}}}`}}}}}}}}` }}}}}}}}}}}}}`}}}}}}}}}}}}}}}}}}}}}}}}}`}}}}}}}}}}}`}}}}}}}}}}}}}}}}}}}}}}}`}}}}}}}}}`}}}}}}}}}}}}}}}}`||||`}}}``}}}`~`}`~~~`~~` }}}}}}}}}` }}}}}}}}}}` }}}}}}}}}}}}`}`}}}}}}}}}}}}`}}}`}}}}ô rive_job_v1 reuse_pagesrive_shared_v1 blob_read rive_shared_v1 blob_sizerive_shared_v1 atomic_storerive_shared_v1 region_unlockrive_shared_v1 region_lockrive_shared_v1 region_write rive_shared_v1 region_read rive_shared_v1 atomic_loadenv console.log rive_rt_v1nowrive_shared_v1 blob_create rive_lane_v1errorrive_shared_v1 atomic_add��   !#$%&'()*+,-./0123456789:;< =>? p €€Æ:A A AÀ¾ A }C }C }C A A A }C }C }C }C A A A A }C€? A A A A A A A A A A A A A A A A A A A A A A A A A }C A A A A A A A }C A A }C A A Þ __rive_job_0 __rive_job_1 __rive_job_2 __rive_job_3 __rive_job_4! __rive_job_5" __rive_job_6# laneError&__riveHostBudget'__rive_lane_alloc(__rive_lane_free)memory__riveCallSpill__riveLaneResetš™ A ‚„…†�‘–—˜  ¶÷�Ú (" (" j"I@ (! AÀ At" AÀI"  I""AüÿÿÿK@ #!#Aj! AjApqAk"­#­B||v  6 @   ü #  Ak"(jF@##K@#$ $#A (Ajü 6 6 ( (j! 6  P A 6 A€OA -@ ("AjApq k"A ü @   ü ü  ("AvK@ AÿÿÿÿK@ (!A  AMAt! @Aüÿÿÿ At" AüÿÿÿO"   I! AìÿÿÿK@ # Ak" Ak"("jF! Aj" AjApqAk!  I@ @ AüÿÿÿK@ ­ ­|v  6  At"  K"AüÿÿÿK@ #!#Aj! AjApqAk"­#­B||v  6   ü !  @##K@#$  j$#A  kü  6 Ak 6 Aj" jA  kü  G@ 6 6 6 / AüÿÿÿK@ AÈ w"6 6 6 4 AÿÿÿÿK@ At"AÈ w"6 6 6 C AÿÿÿÿK@ A  AMAt"AÈ w"6 6 6 6 B  ( O@ AH@ Aj"A 6 ( Atj 6 (  À@ AH@ (d!AA�w"A€AÈ w"6  6 A€6 A6  Ak(AvO@  Atj 6 (h!AA w"AàAÈ w"6  6 Aà6 A6  Ak(AvO@  Atj 6 Aj!  › ((" (" j"H@ !@  H@ At!  A Aw"A6 A6 A6 AüÿÿÿK@  AÈ w"6  6  6 ("("A AL!A Aw" (6  ( j6  AH  j"A AJ    J "   J k6 (" (J@ ( ( ü 6 6 (( j öA A#w"A6 A6 A6 AÿÿÿÿK@  At"AÈ w"6  6  6 6A A#w"A6 A6 A6 AÿÿÿÿK@  At"AÈ w"6  6  6 6A A#w"A6 A6 A6 AÿÿÿÿK@  At"AÈ w"6  6  6 6 Ú ( ( (AvF@A A#w"A6 A6 A6 ( (AvAt"AÿÿÿÿK@  At"AÈ w"6  6  6 !A!@ ( LE@ At" (j  ( (j(6 Aj!  6 ( ! ("Aj6 ( Atj 6 Ü ((Av" ( jH@ At!@ ( j LE@ At!  A A'w"A6 A6 A6 AÿÿÿÿK@  At"AÈ w"6  6  6A!@ ( LE@ At" (j  ((j*8 Aj!  6 (!  j6  �AA’w!A A#w"A6 A6 A6 AAÈ w"6  6 A6  6A A#w"A6 A6 A6 AAÈ w"6  6 A6  6A A'w"A6 A6 A6 AAÈ w"6  6 A6  6A A#w"A6 A6 A6 AAÈ w"6  6 A6  6 A A#w"A6 A6 A6 AAÈ w"6  6 A6  6 ("(Av!A! ("AH  j"A AJ    J !A A#w" (6  ( Atj6     H kAt6  6 ("(Av! ("AH  j"A AJ    J !A A#w" (6  ( Atj6     H kAt6  6 ("(Av! ("AH  j"A AJ    J !A A#w" (6  ( Atj6     H kAt6  6 ( "(Av! ("AH  j"A AJ    J !A A#w" (6  ( Atj6     H kAt6  6 ("(Av! ("AH j"A AJ  H !A A'w" (6 ( Atj6    J kAt6  6  ¯ } | ((AvAn! ("(AvAn"   H!@  H@ (" Al"AjAtj(" N At j(" Nr AjAt j(" NrE@@A! A! A! (! ! " "J@ !A! !  J@ ! ! E! ! ("  H ! ! E!   Al"Atj*» Al"At j*»"'¡!* AjAt j*» AjAt j*»"(¡!+ AjAt j*» AjAt j*»")¡", Al"AjAt j*» (¡"-¢ + AjAt j*» )¡"/¢¡". '¢ + At j*» '¡"'¢ * -¢¡"+ )¢  * /¢ , '¢¡"' (¢ !* *"C\@A » 'š * -€"(š ( ¢Dc  *Œ *ˆ *„ *€D@ (· *|»",¢£!( *¸ *´ *°! *¬! *¨ *¤ * ! *œ! *˜ *”DÀ (· *�»"-¢£!)A -€|A 'Da  . (¢ '£!( + )¢ '£!) .Dð¿ »¡ ,£¢ +Dð? »¡ -£¢  *¡ '£A *Da  . (¢ *£!( + )¢ *£!) . »Dð¿  ,£¢ + »Dð?  -£¢  '¡ *£ "' '¡Db ) )¡Db ( (¡Dbrr   (¶8  )¶8  '¶8$A E (! *ü!@ AH@ ("   AF"  "AlAjAtj*!     "AlAjAt j*"Œ `" @ At" (j  Al"Atj*8 ( j ( AjAtj*8 ( j 8 Aj! Œ ` G@ ("    H" A lj*! Al" AjAt j*!    J"AlAjAt j*! At" (j  Al"At j* “  AjAt j*"’  AjAt j*“•"”’8 ( j   “ ”’8 ( j Œ8 Aj! Aj!  AH *¸! *´ *°! *¬! *¨! *¤ * ! *œ! *˜! *” *�! *Œ!! *ˆ!" *„ *€!# *|!$ (²!% (²!&A!@  H@ " At" (j*"”  ( j*"”’  ( j*"”’ ’"C^E C? # ” ”’  ”’ ’ •C?”“ &”" “C\ $ ” ! ”’  ”’ ’ •C?”C?’ %”" “C\r  ( j 8 ( j 8 Aj!  A!@ Aj" H@@ At" ( "j*" *"“ At" ("j*" *"“”  j*" “  j*" “”“"C[A  “C\ * ”C] (! C]@ ! ! ! ! ! ! ("²C?’    ^    ^  ^`    ]    ]  ]C¿^A E -œ@       * * *$ ((A AjA  ! (˜( Atj"  (j6     ]    ]  ]C¿’ލ"   JA    ^    ^  ^C¿’�¨" AHH ("AjA l ((AvJ@A A'w"A6 A6 A6A€ ((AvAt" A€I" AjA l"  H"AÿÿÿÿK@  At"AÈ w"6  6  6A!@  (A lH@ At" (j  ((j*8 Aj!   6A A#w"A6 A6 A6  (AvA nAt"AÈ w"6  6  6A!@  (H@ At" (j  ((j(6 Aj!   6 ("( ("A l"Atj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj 8 ( AjAtj *8 ( AjAtj * 8 ( AjAtj *$8 (( Atj 6  Aj6 !  Aj!  ³  } (!A    ]    ]  ]C¿’�¨" AH" H"    ^    ^  ^C¿’ލ" ("  H"   J"J@A  AA  ^A  \"AH!   AH"!!   !   !" } " !“  “•C !'   ]rE!  AA  ^A  \"AH!   AH"!#   !   !$ } $ #“ “•C !(   ]rE!  AA  ]A  \"AH!   AH"!%   !   !& } & %“  “•C !)   ^rE! -€"} C— C—’ C– C–’ ’! ²C@’!@ L@@ ²C?’" [ q  [ q   [qrr Œ! !  _A  `A @ " ! '  “”’  [! AH@    ]!    ^!  _A  `A @ $ # (  “”’  [! AH@    ]!    ^!  _A  `A @ & % )  “”’  [! AH@    ]!    ^! AA C¿’�¨" AH" AH" C¿’�¨Ak"  H"  H"J  ²” ’!   kAj"j! Aj k l jAjAtj! @ ²! Atj!@ I@   ”’CT€?”! C€?’!  *]@ 8 Aj!  @  kAj"Atj!   ²"”’C^    Ak²’”’C^A @@ I@CT€?   ”’•! C€?’!  *]@ 8 Aj!   @ I@   ”’! C€?’! C^@CT€? •" *]@ 8 Aj!  Aj!   Š|AAw"A6 A6 A6 A6 A:  6  j6  6 y! z"(A" Dc@ «#A6#A "| D@�@£D ! A Aw"A6 A6 A6 A ("AüÿÿÿK@  AÈ w"6  6  6 A� (!AÐAÐw"’AÐAÐw"’ A + + A6H A6H 1 1AAØw"A Aw"A6 A6 A6 A€€6 A6  *  * ("( ("AH ("AHr Hr@  AHA!!"  %! @ D@�@£! ("A€H@ ("( M@ ( jA: ("(Av M@ ( Atj 9 ( "(AvO@ ( Atj 9  Aj6  i$" “#!#Aj!#­B|v A 6  (6  (6  ¹”%%}|~AAw"A6 A6 A6 A6 A:  6  j6  6 y! y! ( ("AjI@  Aj6 ( z!&AAûw!A¨A¯w"�  6 A6A(Aøw"A6A Aw"A6 A6 A6 AAÈ w"6  6 A6  6AAµw"A6 A6 A6 A6  A6A Aw"A6 A6 A6 AAÈ w"6  6 A6  6 A A#w"A6 A6 A6 AAÈ w"6  6 A6  6AAƒw"A6 A6 A6 A6  A6AA‡w"A6 A6 A6 A6  A6AAùw"A6 A6 A6 A6  A6AAúw"A6 A6 A6 A6  A6 AàAûw"”  6$  6AÄA‰w"Œ  6 A Aw"A6 A6 A6 AAÈ w"6  6 A6  6A Aw"A6 A6 A6 AAÈ w"6  6 A6  6AAÓw AAÓw6A!A A w"�  ("60  (64  6 (!@ AL@ (!AAºw! AA¢w"AàAÈ w"6  6 Aà6 A6 6AA¡w"A€AÈ w"6  6 A€6 A6 6AAŒw"A6 A6 A6 A6 A6AAÔw"A6 A6 A6 A6 A6 AA»w"A AÈ w"6  6 A 6 A6 6 A6 ( "Aj" (AvK@  A ( Atj 6  6 Aj!  (L!AôA¬w"Ž A€26 AÀ26 A€26 AÀ26 ( "Aj" (AvK@  A ( Atj 6  6 A�>6¸ A°>6¼ (("Ak(AvE@ ("E@ ( " ( "Aj"AÕªÕ*K@ A l" ("K@ At" I@ ! AÈ w" ( ü 6 6 6 ( A lj"A6 A6 A; 6 &(A"LDc@ L«#A6#A "| D@�@£D !M (!   ("(L A Aw"A6 A6 A6   AujA@k 6 A ( � ("( (F ((AJA E@  (6 (!A Aw"A6 A6 A6 AüÿÿÿK@  AÈ w"6  6  6  6 A (A� (("(! (!A Aw"A6 A6 A6 AüÿÿÿK@  AÈ w"6  6  6  6 A A#w"A6 A6 A6 AÿÿÿÿK@  At"AÈ w"6  6  6  6 ("(! (Av"@ Aÿ Atü ("( ! AA AJ@ (A Atü A6 ("( ! AA AJ@ (A Atü A6 ("( ! AA AJ@ (A Atü A6 ( "( ! AA AJ@ (A Atü A6 ("( ! AA AJ@ (A Atü A6 A!@  H@AàAûw"” ( "Aj" (AvK@  A ( Atj 6  6 Aj!  (("(! (! (! (" *8´  (6è * $ (L"( E@ (("E@ ( ( 3 A6$ A6( A68A!@ AH@ AO@  AtjA6@ Aj!  (! (4!@ ( " H@ (($! Aj" (AvK@  A ( Atj 6  6  (8" ( H@ ( ! AªÕªK@ Al" ("K@ At" I@ ! AÈ w" ( ü 6 6 6  H@ ( AljA  kAlü 6 (8(!A0!A!@  H@  j"(" ("("( O@ ( Atj(" E@ ( "(O@ ( j-  ((" AtAjj(! j(6 Aj j(6 Aj j(6 A j j(6 Aj j(:† Aj j(;„ Aj" j"*!* *!( *8@ (8D *8H  j"*$!, * !) *!' *!+ *!* *!( * 8ˆ (8Œ *8� +8” '8˜ )8œ ,8  *4!+ *0!* *,!( *(8¤ (8¨ *8¬ +8° A8j" j(! Aj j(! Aj j*!+ A j j*!* Aj j*!( Aj j(6L Aj" j("A™³æ K@ A(lAòw"Ak(A(nA(l!  Aj j ü 6P AF@  m6´ AF@AAëw"A6 C8 C8 C8  n6 (8 *8 +8 6¸ AF@   ("(AvO@ ( Atj(AN@  ("(AvO@ ( Atj(" ("( O@ ( Atj("E@  (("! (AtAj Atj j(Aj!AðAíw"B7 B7 A6 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ A6D A6H A6L A6P A6T A:X A:Y A:Z A:[ A:\ A:] A:^ A:_ A6` A6d A6hAAîw AAîw6`AA w AA w6dAA w AA w6h A6D A6H Aà6L Aà6P Aà6T Aà6  jAàü AAîw Aàj" j("AþÿÿÿK@  AtAîw6` (`"Ak(A~q! Aj" j ü AA w j" j("AüÿÿÿK@  A w6d (d"Ak(! Aj" j ü AA w j" j("AüÿÿÿK@  A w6h (h"Ak(!  Aj j ü (( !  ("(AvO@ ( Atj 6 ("( "Aj!  (AvK@  A ( Atj 6  6  6¼ AF@  ("(Av M@ ( Atj(AN@  ("(AvO@ ( Atj(" ( "( O@ ( Atj("E@  (("! (AtAj Atj j(Aj!A�Aýw"B7 A6 C8 C8 C8 C8 C8 C8 A6$ A6( A6, A60 A64 A68 A6< A6@ A6D A6H A6L A6P A6T A6X A6\ AAÑw6` AAòw6d AAþw6h AA€w6l AA‚w6p AA„w6tA A"w"A6 A6 A6 AAÈ w"6  6 A6  6x AA†w6| AAˆw6€ A6„ A6ˆ   jAàü Aàj" j("Añ¸œK@  A$lAÑw6` (`"Ak(A$nA$l! Aj" j ü j" j("A™³æ K@  A(lAòw6d (d"Ak(A(nA(l! Aj" j ü j" j("AÿÿÿK@  AtAþw6h (h"Ak(A`q! Aj" j ü j" j("Añ¸œK@  A$lA€w6l (l"Ak(A$nA$l! Aj" j ü j" j(! Aj!AA‚w AÿÿÿÿK@ AtA‚w!A! @  J@   j(m! Ak(AvO@  Atj 6 Aj! Aj!   6p  j("A±§ì K@  A4lA„w6t (t"Ak(A4nA4l! Aj" j ü j" j(!A A"w" A6 A6 A6 AþÿÿÿK@ At"AÈ w"6 6 6 ( Aj" j ü  6x j" j(! Aj!AA†w AÿÿÿÿK@ AtA†w!A! @  J@   j(n! Ak(AvO@  Atj 6 Aj! Aj!   6|  j("A³æÌK@  AlAˆw6€ (€"Ak(AnAl!  Aj j ü ( ( !  ("(AvO@ ( Atj 6 ( "( "Aj!  (AvK@  A ( Atj 6  6  6À ( "(O@ ( jA: " *!) *!' *!+ * !* *!( *8( (8, *80 +84 '88 )8<    Alj AjAü A4j! Aj!  ("( AM@ (("E@ (! ("( E@ (("E@ (! ("( AM@ (( "E@ (! ($" ( "J@ A�ˆ„K@ Aül" ("K@ At" I@ ! AÈ w" ( ü  6  6  6 ( AüljA  kAülü  6 ((" ( "J@ A�ˆ„K@ Aül" ("K@ At" I@ ! AÈ w" ( ü  6  6  6 ( AüljA  kAülü  6 (," ( "J@ A�ˆ„K@ Aül" ("K@ At" I@ ! AÈ w" ( ü 6 6 6 ( AüljA  kAülü 6 (" ( " ( J@ ( ! AªÕªK@ Aàl" ("K@ At" I@ ! AÈ w" ( ü 6 6 6  H@ ( AàljA  kAàlü 6 A!@ H@ Aj j(!   j("AF  ( Aj j("Aülj A j" jAüü Aüj! AF@  ( "( O@ ( AàljA6  ( "( O@ ( Aàlj 6 Aj!  ($! ( !@ ( " H@ ( ! Aj" (AvK@  A ( Atj 6  6   (Ak(AvJ@AAÓw  AujAj"AÿÿÿÿK@  AtAÓw6 (!#A!@ H@  j("" ( O@ ( Atj("E@  ( F@AÄA‰w"Œ    #Ak(Av M@ # Atj 6  68  Aj j(6$  Aj j(6(  A j j(6,  Aj j(6  Aj j(6  Aj j(6<  Aj j(6@ A6 A6 "  A jj"(6D (! (! A j"* !+ *!* *!(  *8P  (8T  *8X  +8\ Aj"* !+ *!* *!(  *8`  (8d  *8h  +8l Aj"*!, *!) *!' * !+ *!* *!(  *8p  (8t  *8x  +8|  '8€  )8„  ,8ˆ  Aj"*8Œ  *8�  *8” *!* *!(  * 8˜  (8œ  *8  Aj"-! -! -! -! -! -! -! -! / ! *!( -! -! -! -!  *8¤  :¨  :©  :ª  :«  (8¬  ;°  :²  :³  :´  :µ  :¶  :·  :¸  :¹ Aj""*!) *!' * !+ *!* *!( (¼" *8  (8  *8  +8  '8  )8 (¼(" ( ! A’ɤK@ Al" ("K@ At" I@ ! AÈ w" ( ü 6 6 6 H@ ( AljA  kAlü Aj! 6 Al"@ (  ü @ (HAk(AŒn G@ AãÄôK@  AŒlA§w6H  #6H  j!  6L AŒl"@ (H  ü  j k! Aj!  ( #6X @ D@�@£!L ("A€H@ ("( M@ ( jA: ("(Av M@ ( Atj M9  ( "(AvO@ ( Atj L9  Aj6 | D@�@£D !M AJ@A!A! ("(0"(! (L"( E@ ((" E@ (X! ($! (4!$ (8! ("( AM@ (("E@ (! ("( E@ (("E@ (! *´"J"*#C ×£;”C€@”"( ( *^!K (!@ H@ " Ak(AvO@  Atj(!" ($(  Aj" H@  (  Atj(Atj((j! Aj" H@ $(" (  Atj(Atj("((Atj("(€ ( (@jj ($At j("(€ ( (@jj (À (€ ( (@jjjjj! (LAJ@ (H"(À (€ ( (@jjjj! (<"AN@  Aülj(j! (@"AN  Aülj(j j! " ( O@ ( "Atj("E@ ((! ($" ( O@ ( Alj"*!0 *!, * !) *!' *!+ *!* ( M@ ( Alj"*!(@ * +` * 0`q * '`q ( )_q * ,_q * *_qE@  (DA€€r6D  (DAÿÿ{q6D ("( "Av" ("Ak(AvO@ Atj)B "A?q­†„!N  Ak(AvO@ Atj N7  $( O@ $( Atj("E@  $( O@ $( Atj("E@ (@! (! ( !  (<""AN   AH  (!  ( "( O@ ( Aàlj(" ( O@ ( Atj("E@ ( !  AN   AH  (!  ( "( O@ ( Aàlj(" ( O@ ( Atj("E@ ( !  AN A~ k AH   ( "( O@ ( Aàlj( ! AN A~ k AH   ( "( O@ ( Aàlj( ! (DA€€qAG!  ( O@ ( Aülj"*!1 *!/ *!- * !. *!9 *!: *!;  ( O@ ( Aülj"*!4 *!5 *!6 * !7 *!< *!8 *!=  ( O@  ( O@ ( Aülj(( ( Aülj((rAÀqAG" E JC^q (DA€€€qA  (DAqA @ J K !E 7 *`” 6 *d”’ 5 *h”’ 4 *l”’"( (”!? . *P” - *T”’ / *X”’ 1 *\”’"( (”!3 - < 9“")” / 8 :“"'”“ 1 = ;“"(”“!+ ( - . '” - (”“ 1 )”“"*” / / (” . )”“ 1 '”“"(”“C@”’!2 ) . (” - +”“C@”’!0 ' / +” . *”“C@”’!, *ˆ!F *„!G *€!B *|!C *x!) *t!' *p!+ AH}A¬2*!DA¨2*!*A¤2*  ( O@ ( Aülj"*8!D *4!* *0 !@ *!( AH}A¬2*!*A¨2*!>A¤2*  ( O@ ( Aülj"*8!* *4!> *0 !A + 2“"+ +” ' ,“"+ +”’ ) 0“"+ +”’"+ E E”] 3 ? 3 ?]C.~?^q@ 5 .” 7 /”“ 1 6”’ 4 -”“"? G” 7 -” 6 .”“ 1 5”’ 4 /”“"3 B”“ F 6 /” 5 -”“ 1 7”’ 4 .”“"2”’ 1 4” . 7” - 6”’ / 5”’’"0 C”“"'Œ ' 'C]!, E +‘“"+ +” 3 C” 2 G”“ F ?”’ 0 B”“"+Œ + +C]") D * * D]"'” 2 B” ? C”“ F 3”’ 0 G”“"*Œ * *C]"* ( > ( >^"+”’"( (” * @ A @ A^"*” , '”’"( (”’ , +” ) *”’"( (”’C€@”^@ - *XŒ")” / *TŒ"'”“ 1 *PŒ"+”’ *\"( .”’"0 1 (” . +” - '”’ / )”’“"*”!HC€? / +” . )”“ 1 '”’ ( -”’", ,”"I . '” - +”“ 1 )”’ ( /”’"+ +”"(’C@”“!1 0 ,”"C + *”"D’C@”!9 0 +”"> , *”"@“C@”!:C€? 0 0”"A (’C@”“!; , +”"? H’C@”!< 6 *hŒ")” 5 *dŒ"'”“ 4 *`Œ"+”’ *l"* 7”’", ,”!- , 4 *” 7 +” 6 '”’ 5 )”’“"(”!.C€? 5 +” 7 )”“ 4 '”’ * 6”’"B B”"8 7 '” 6 +”“ 4 )”’ * 5”’"* *”"3’C@”“!= , B”"2 * (”"0’C@”!E , *”", B (”")“C@”!F B *”"' .’C@”!G  ( O@ ( Aülj"*!+ * !* *$!(  ( O@ C D“C@”!B > @’C@”!C ? H“C@”!DC€? A I’C@”“!> 2 0“C@”!@C€? - 3’C@”“!A , )’C@”!? ' .“C@”!3C€? - 8’C@”“!2 + ( Aülj"*“!0 ( *$“!, * * “!) (L!A!@ H@ " (H"Ak(AŒnO@ AŒlj""*è!' *ä!+ *à!* (ˆ!A!@ H@ AO@ 1  A8lj" *"4” B *"H”’ C *"-”’!( *( 0 = * ".” @ *"I”’ ? *"8”’ (“’ *” ) E .” A I”’ 3 8”’ 9 4” ; H”’ D -”’“’ +”’ , F .” G I”’ 2 8”’ : 4” < H”’ > -”’“’ '”’’8 C8$ A:4 Aj!  Aj!  (8Aj68A  AN"AJ@ Ak"AO@ Atj" (@Aj6@   .8P  -8T  /8X  18\  78`  68d  58h  48l - < 9“")” / 8 :“"'”“ 1 = ;“"(”“!+  ( - . '” - (”“ 1 )”“"*” / / (” . )”“ 1 '”“"(”“C@”’8p  ' / +” . *”“C@”’8t  ) . (” - +”“C@”’8x  6 /” 5 -”“ 1 7”’ 4 .”“8|  5 .” 7 /”“ 1 6”’ 4 -”“8€  7 -” 6 .”“ 1 5”’ 4 /”“8„  1 4” . 7” - 6”’ / 5”’’8ˆ  (DA€€€r6D  ( O@  ( O@ ( Aülj"*X!> *\!@ *`!A ( Aülj"*X!+ *\!* *`!( (AF@ (,! (À"E@ #&!#'!#%"A6 A6 @ AN  ( - . @” - >”“ 1 A”’")” / / >” . A”“ 1 @”’"'”“C@”’!? A . '” - - A” / @”“ 1 >”’"'”“C@”’!3 @ / '” . )”“C@”’!2 6 (” 5 *”“ 4 +”’!) + 6 7 *” 6 +”“ 4 (”’"'” 5 5 +” 7 (”“ 4 *”’"+”“C@”’!0 ( 7 +” 6 )”“C@”’!, * 5 )” 7 '”“C@”’!)A!@ (LH@ (H"Ak(AŒnO@  AŒlj(ˆ!A!@  J@ (H AŒlj A8lj"*!(  * ?“ý * 2“ý  ( 3“ý  *!' *!+ * ,“!* * )“!( * 0“ý ý   (ý *ý  +ý  'ý ý  Aj!  Aj!   (DA€€r6D  (DAÿÿ{q6D A (L" AN"AJ@ Ak"AO@ Atj" (@Aj6@  AFq (DA€€€qA @ ("AN AHA  (LAÿÿq! (" ("Ak(AvO@ Atj("E@ (" ( "( O@ ( A lj ; E AFq@  (DA€€r6D ("( "Av" ("Ak(AvO@ Atj)B "A?q­†„!N  Ak(AvO@ Atj N7  Eq@  (DA€€ r6D ("( "Av" ("Ak(AvO@ Atj)B "A?q­†„!N  Ak(AvO@ Atj N7 @ (L! A!@ H@ " (H"Ak(AŒnO@ AŒlj"(ˆ!A!@ H@ AO@  A8lj" *8( Aj!  Aj!  Aj!  (< j6< @ D@�@£!L ("A€H@ ("( M@ ( jA: ("(Av M@ ( Atj M9  ( "(AvO@ ( Atj L9  Aj6 | D@�@£D !MA0!A!@ H@ #Ak(AvO@ # Atj(" ( O@ ( Atj("@  (¼(( AlA�j (LAŒljj! Aj!   " ("(L A Aw"A6 A6 A6  AujA@k 6 ((" 6  ($6  ((6  (86 A!@ AH@ AO@  At"Ajj j(@6 Aj!  A0j!A!@  H@  #Ak(AvO@ # Atj(" ( O@ ( Atj("E@ (¼(( ! (D6 (L6 6 *\!+ *X!* *T!( A j" *P8 (8 *8 +8 *l!+ *h!* *d!( Aj" *`8 (8 *8 +8 *ˆ!, *„!) *€!' *|!+ *x!* *t!( Aj" *p8 (8 *8 +8 '8 )8 ,8 Aj" *Œ8 *�8 *”8 * !* *œ!( *˜8 (8 *8 -¹! -¸! -·! -¶! -µ! -´! -³! -²! /°! *¬!( -«! -ª! -©! -¨! Aj" *¤8 : : : : (8 ; : : : : : : : : (¼"*!) *!' *!+ * !* *!( Aj" *8  (8  *8  +8  '8  )8 Aj! Al"@  (¼(( ü j! (LAŒl"@  (H ü j! Aj!  ("( ("AH AHr Hr@  AH %! @ D@�@£!L ("A€H@ ("( M@ ( jA: ("(Av M@ ( Atj M9  ( "(AvO@ ( Atj L9  Aj6 & i$" “#!#Aj!#­B|v A 6  (6  (6  ”d|}AAw"A6 A6 A6 A6 A:  6  j6  6 y! z! ( ("AjI@  Aj6 (!AAÝw"A6 A6 A6 A6 A!@  J@ z! ( "Aj" (AvK@  A ( Atj 6  6 Aj!  ( ("AjI@  Aj6 (! z!AÐAÚw!A¨A¯w"�  6 A6AÄA‰w"Œ  6A A$w"A6 A6 A6 AðAÈ w"6  6 Að6  6 A Aw"A6 A6 A6 AAÈ w"6  6 A6  6A Aw"A6 A6 A6 AAÈ w"6  6 A6  6 AAŽw6 AA�w6 AAŽw6 AA�w6$A A#w"A6 A6 A6 AAÈ w"6  6 A6  6(A A#w"A6 A6 A6 AAÈ w"6  6 A6  6,AA£w AäA£w60AA§w AäA§w64A A#w"A6 A6 A6 AàAÈ w"6  6 Aà6  68A A#w"A6 A6 A6 AàAÈ w"6  6 Aà6  6  (p6 (!A Aª w"A6  6  6 ("DðAG@ AA w"ƒ 6  (  (D!A"| (D ¡! (AvA M@ ( 9X @ D@�@£! ("A€H@ ("( M@ ( jA: ("(Av M@ ( Atj 9  ( "(AvO@ ( Atj 9  Aj6  i  (Ll j" ( O@ ( Atj("E@ (A (XAÿr"Dc@ «$"A 6#!#Aj!#­B|v A 6  (6  (6  Û;}|AAw"A6 A6 A6 A6 A:  6  j6  6 y! z! ( ("AjI@  Aj6 (! ( ("AjI@  Aj6 (! ( ("AjI@  Aj6 (! o!A Aþw"A6 A6  6  6A0A¸w!AAÈ w AAÈ w6A A'w"A6 A6 A6 AAÈ w"6  6 A6  6A A#w"A6 A6 A6 AAÈ w"6  6 A6  6 A6 A6 A6 A6A A'w"A6 A6 A6 AAÈ w"6  6 A6  6 A6 A6$AAÈ w!AA¹w" 6  6 A6 A6  6( A6,  6 Ak("Aq@ A A'w" 6  6  6  6 Ak("Aq@ A A#w" 6  6  6  6  (((6  (((6  (((6  (AlAj (A ljAt6 A!A!@  (H@ (( AlAjAtj(" J@ ! Aj!   6$  (j6 A A'w"A6 A6 A6 (At"AÿÿÿÿK@ At"AÈ w"6 6 6  6 !A,A·w!A A'w"A6 A6 A6 AAÈ w"6 6 A6  6A A'w"A6 A6 A6 AAÈ w"6 6 A6  6A A'w"A6 A6 A6 AAÈ w"6 6 A6  6A A#w"A6 A6 A6 AAÈ w"6 6 A6  6 A A'w"A6 A6 A6 AAÈ w"6 6 A6  6A A#w"A6 A6 A6 AAÈ w"6 6 A6  6 C8 C8 A6 A6$ A6( ($! (! ( "At" ((AvJ@A A'w"A6 A6 A6 AÿÿÿÿK@ At"AÈ w"6 6 6  6A A'w"A6 A6 A6 At"AÿÿÿÿK@ At"AÈ w"6 6 6  6  ((AvJ@A A'w"A6 A6 A6 AÿÿÿÿK@ At""AÈ w"6 6 6  6A A#w"A6 A6 A6 AÈ w"6 6 6  6  ((AvJ@A A'w"A6 A6 A6 AÿÿÿÿK@ At"AÈ w"6 6 6  6A A#w"A6 A6 A6 AÈ w"6 6 6  6 A A“w"~ ! @ Ak("A‘F@ (" (H  Aj6 A  AþF@ ((AA "0Dc@ A 0«" (N  "AN@ (( (Atj 6 (( (Atj (6 (( (Atj (6 (Aj6 A  AL" Ajl"   H" l"kAt! !@ H@A!A! ("( "AlAj" Atj*!% (" AjAtj*!' AjAt j*! AjAt j*!# AjAt j*!& AjAt j*!) ("( AjAtj(! AjAt j*!* ( A jAtj(! (AlAj! A jAt j*", A jAt j*"/” AjAt j*""’" ”!+ (! (! @  (H@@  ("   A lj"AjAtj(A lj" A jAtj(qE  (" AjAtj*" AjAt j*’^  #’ ]r At j*"! At j*"“! AjAt j*" '“!$  %“ AjAt j*" “” $ ”“C]E } % “" ! “"” ' “"(  “"$”’  ” $ $”’•" C]@  ” ( (”’  C€?^@ % !“" ” ' “" ”’  %  ”’“" ” '  $”’“" ”’ " +]E "Aj!@   ( AkAtj*]A @ (" At" j  Ak"At" j*8 ("j  j(6  At" (j 8 (j 6 Aj!  A! AJ@ ( A jAtj*" ”! (! ( ! A!@  (H@@  F  ( AlAj"AjAtj(qE  (" AjAtj*" AjAt j*’^  #’ ]r * AjAt j*^ % At j*“" ” ' AjAt j*“" ”’" ]@ Aj  J" Ak!@   ( AkAtj*]A @ (" At" j  Ak"At"j*8 ("j  j(6  At" (j 8 (j 6  F} ( AkAtj*  ! Aj!  (!A!C€? ,•! " "”!$A!@  H@  (  (( Atj(A lj"AjAtj(A lj! (" Atj* %“! AjAt j* '“! At j* %“! AjAt j* '“!A!@ J  ” (" At" Atj*"#“ AjAt j*"!”  ” AjAt j*"“ AjAt j*"”“  "”"(“C¬Å'·`  ” #“ !”  ” “ ”“ (“C¬Å'·`A A Aj!  A (" AjAtj(AG! AjAt j(AG! Œ (" Atj* At j*“"” Œ"( AjAt j* AjAt j*“"”’  ”  ”’•"#C]  ”"* ”",’"! $_q@ @ ( At"AtjC8 ( AjAtjC8 ( AjAtj (C€? , *’‘•"”8 ( AjAtj  ”8 Aj!  Œ # ”“" ” Œ # ”“" ”’!  ”  ”’" $_ #C€?^q@   (" AjAtj*”  AjAt j*”“C`A @ ( At"AtjC8 ( AjAtjC8 ( AjAtj ŒC€?  ”  ”’‘•"”8 ( AjAtj  ”8 Aj!  #C€?] #C`q  $_q@ (" AjAtj*Œ! AjAt j*Œ! ( At"AtjC8 ( AjAtjC8 ( AjAtj 8 ( AjAtj 8 Aj!  #C]  $_q} E  !  ! $“‘"” "”"“C€? !•"”!#  "” ”"’ ”!  ” ’ ”!! Œ "” ’ ”  $_ #C€?^q} E  !   $“‘"!”  "”"“C€? •"”!#  "”  !”"’ ”!  !” ’ ”!! Œ "” ’ ” }  ! $“‘"” "”“C€? !•"!”!#  "” ”’ !” (" AjAtj*Œ!# AjAt j*Œ ! }   $“‘"”  "”’C€? •"”!! Œ "”  ”’ ” (" AjAtj*!! AjAt j* ! (" AjAtj(AG!  AjAt j(A lj! A!A! AjAt j( # (" AjAtj*Œ” AjAt j*Œ”“C`A @ (" AjAtj*Œ!#A! AjAt j*Œ!  ! (" AjAtj*”  AjAt j*”“C_A @ (" AjAtj*!! AjAt j*!A!  (" Atj* %“”"(  At j* %“”"“!+  AjAt j* '“”"*  AjAt j* '“”"“!- & (“ !” ) *“ ”’!, & “ #” ) “ ”’".C]  F"}C? & “ +” ) “ -”’ + +” - -”’• "C]qA .C] q ,C]q @C€? & “" ” ) “" ”’‘•! ( At"Atj  " ”"  ”"”’8 ( AjAtj    ”"”’8 ( AjAtj 8 ( AjAtj Œ8 Aj!  ,C] C€?^q@C€? & (“" ” ) *“" ”’‘•! ( At"Atj ( " ”"  ”"”’8 ( AjAtj *  ”"”’8 ( AjAtj 8 ( AjAtj Œ8 Aj!  C€!  C] C€?^rrE@ &   +”’“" ” )   -”’“" ”’! C€!+ .C]E@ &  . #”’“" ” )  . ”’“" ”’!+ C€! ,C]E@ & ( , !”’“" ” ) * , ”’“" ”’!  _  +_q@ (" AjAtj*Œ! ( At"Atj  " ”" AjAt j*Œ"Œ”’8 ( AjAtj   ”’8 ( AjAtj 8 ( AjAtj 8  +`@   ( At"Atj  " ”" Œ”’8 ( AjAtj   #”’8 ( AjAtj #8 ( AjAtj 8   ( At"Atj ( " ”" Œ"Œ”’8 ( AjAtj *  !Œ"”’8 ( AjAtj 8 ( AjAtj 8 Aj! Aj!  !C€? ( A jAtj*•!A!@  H@ (" ( ( Atj(AlAj"Atj* %“! & AjAt j*“!$ ) AjAt j*“!  ” AjAt j* '“" ”’" " AjAt j*’" ”"!^} $  ”“" ”  ”“"# #”’!(  ” # ”’"*C] * *” ! (”^A } C€? (‘"•"$”"Œ!  ” “" ”!  # $”"”  !“‘!!C€? •!  #”  ”“C^}  !”  ”“ ”!  ”  !”’ ”  !”  ”’ ”Œ! Œ ”  !”’ ”Œ ! $ ” ”’" ” $“!  ” “  $C€? (* •" ”“"C€?  ”  ”“"$ $”’‘"•" ”"#Œ!  ” “" #”!  $ ”"” ! ( At"Atj & C?”’8 ( AjAtj ) C?”’8 ( AjAtj 8 ( AjAtj 8 Aj! Aj!   6  6$  6(  / (" AjAtj* AjAt j*A u" H@ !C! (!@  H@ (" At"Atj*!  AjAt j*"" AjAt j*" *“” AjAt j*"  *“”“]@A!@  J@ ( At"Atj ( Atj*8 AjAt" (j  (j*8 AjAt" (j  (j*8 AjAt" (j (j*8 Aj!  !@ H@ (" At" Atj*!' AjAt j*!&@ " AjAt j*"”  AjAt j*"%”“")‹C¬Å'7_} " %”  ”’C^   '’C?”!'  &’C?”  %  &“”   '“”“ )•"& "”’!'  & ”’ !)C€? % "“"% %”  “" ”’‘•!& ( At"Atj '8 ( AjAtj )8 ( AjAtj % &”8 ( AjAtj  &”8 Aj! Aj!  *! *!%   / Œ "A u H@  8  %8 "  *“”   *“”“! Aj!  *"" "“C\A *"" "“C\ @ C8 C8 ("(   kAtj"Atj *8 ( AjAtj *8 Aj!   !$" {#!#Aj!#­B|v A 6 (6 (6 šL(}|AAw"A6 A6 A6 A6 A:  6  j6  6 y! z! ( ("AjI@  Aj6 (!" ( ("AjI@  Aj6 (!# ( ("AjI@  Aj6 (! ( ("AjI@  Aj6 -AG! o!A Aþw"A6 A6  6  6 Ak("Aq@ A A'w" 6  6  6 Ak("Aq@ A A#w" 6  6  6A˜A¡w"!AAÓw A€AÓw6 A6AAÓw A AÓw6 A6 A6 A6AAÈ w!AAÔw" 6  6 A6 A6 6 A6 A6 A6$ A6( A:,AAÈ w!AAÔw" 6  6 A6 A6 60AAÈ w!AAãw" 6  6 A6 A6 64AAÓw A€AÓw68AAæw A€Aæw6C]} >Œ 1ŒC 1C] "6 6”’"9 4^ 7 .“!6 9 . 3“"?C]} ?Œ 6ŒC 6C] "9 9”’"9 4^ =‹ /‹—"/ /” >‹ 1‹—"/ /”’ ?‹ 6‹—"/ /”’"/ 4_!  AjAtj*"1CÀ\@ : ,“"4  AjAtj*” ; -“"-  AjAtj*”’ < .“".  AjAtj*”’!, 4 4” - -”’ . .”’"- , ,”“".C]}C . ‘ 1” ,  AjAtj*”“". 0 -‘ 0’C·Ñ8”C·Ñ8’"-’^ , 0Œ -“]r  A . 8 -“_ , - 8“`q! #!.  A jAtj*",C`@  A jAtj*!4 9  A jAtj*"1”".C€?]} 9C ×#< 9C ×#<^!- 4C€? . .”“". .”". .”” ,C€?[}C€? -• ,C@[}C€? - -”• ,C[}C€? - ,Œr ”"-C -C^C CG€?”!.  H q AJq  HA AkAtj* .#”] A @ / 1”"1C€?]} /C ×#< /C ×#<^!- 4C€? 1 1”“"/ /”"/ /”” ,C€?[}C€? -• ,C@[}C€? - -”• ,C[}C€? - ,Œr ”",C ,C^C Crù?”!,  HA , AkAtj*^ @  H "Aj!  Ak !@ AJ , AkAtj*^A @ Atj Ak"Atj*8  Atj ,8 At"j A€r  6  j .8 Aj! Aj!   F AJq} AkAtj*# !+ ($! ((! (4! A!A!A!@  H@ At"j(!@  j*"* +]@ "Aj! Atj 6  "Aj!@ AJ *  AkAtj*^A @ At"j Ak"At"j(6  j  j*8  At"j 6  j *8 Aj!  A!@  H@  jAt"j Atj(6  jC€¿8 Aj!  ( +”’ *t"? 3”’!6 *H *X *h *x ' *"A” ( *"B”’ * * "C”’ 1 *$"2”’!. ' *("4” ( *,",”’ * *0"-”’ 1 *4"0”’!/ ' *8"'” ( *<"(”’ * *@"*”’ 1 *D"+”’!3 8 '” 9 (”’ : *”’ ; +”’!1 < '” = (”’ > *”’ ? +”’!+ )!7 < 4” = ,”’ > -”’ ? 0”’!@ 8 4” 9 ,”’ : -”’ ; 0”’!4 < A” = B”’ > C”’ ? 2”’!, 8 A” 9 B”’ : C”’ ; 2”’!- -t} ) - @” 4 ,”“” . 5 @” 4 6”“”“ / 5 ,” - 6”“”’")C^}C€¿C€?C )C] C 8 *ü!* (, F (0 (ÈFA @  *(8 -4E         Al" ((AvJ@A A'w"A6 A6 A6 AÿÿÿÿK@  At"AÈ w"6  6  6 6 (! A!#!2A! @ H@ 6 (" Al"At"j*"0” , AjAt" j*"'”’ @ AjAt"j*"(”’ +’!)  (j 7 0” . '”’ / (”’ 3’8  (j 5 0” - '”’ 4 (”’ 1’8  (j )8A  )Œ") *`! ) 2–!2 Aj!  28( :4 6, (È60  28 E       (( (Atj 6 (( (Atj (6 (( (Atj (6  (Aj6  (" A lAj! ("( Atj (( A l"Atü (  jAtj * 8 (! ( (Av" ( jH@ At!@  ( jH@ At!  A A#w" A6 A6 A6 AÿÿÿÿK@ At"AÈ w"6 6 6A!@  (H@ At" (j  ( (j(6 Aj!   6 A!@  H@ ( ( ( jAtj ( Atj(6 Aj!   ( j6 Aj!   !$" {#!#Aj!#­B|v A 6  (6  (6  l#"E@A Aw"A6 A6 A6 A6 A6 A6 A6 A: $ A6 A6 A6 A: � E@A°3Aà5Aà3  AF@A°3A€6  AF@A°3A°7  AF@A°3Aà5Að8  AF@A°3Aà5A 5A€xAð:  A @ AAw"A6 A6  6   Ak(A~q  FA AM"AüÿÿÿK@ #!#Aj! AjApqAk"­#­B||v  6  6# Ak"(jF@##K@#$ $#A (Ajü × (Ak(A$n! A 6 (! (Ak(A$nA$l"  ü ( Ak(Av! A 6 ( ! ( Ak(A|q"  ü (Ak(An! A 6 (! (Ak(AnAl"  ü (! A 6 (! A 6 (! A 6 ( ! A 6 ($! A 6 ((! A 6 (H! A 6 -LAG! A 6 — j(" (Ak(A$nG@ Añ¸œK@  A$lAÑw6 ( Ajj A$l"ü  Ajj" j(" ( Ak(AvG@AAÓw AÿÿÿÿK@  AtAÓw6 ( Ajj At"ü  Ajj" j(" (Ak(AnG@ AªÕªK@  AlAÕw6 ( Ajj Al"ü   Ajj" j(6  Aj j(6  Aj j(6  A j j(6  Aj j(6$  Aj j(6(  Aj j(6H  Aj j(AG:L A j ò}# CzD”  ”  ”“" ”   ”  ”“" ”’   ”  ”“" ”’" Œ C]]@C€? •" ”  ”  ”“”  ”  ”“” ”  ”  ”“”  ” ”“” ”  ”  ”“” ”  ”“” A°2*A´2*A¸2*A¼2*AÀ2*AÄ2*AÈ2*AÌ2*AÐ2* í}  “!  “" ! “"! ! ! ! ! ! ! !  ”  ”’  ”’" ” ”’ ”’Œ"”  ”  ”’  ”’Œ" ” ”’ ”’"”“" ”# CzD”]@  “ ”  “ ”’  “ ”’ •" ”’  ”’  ”’  C”’  C”’  C”’C   ”  ”’  ”’Œ"”   ”  ”’  ”’Œ" ”“ •" ”’  ”’  ”’   ”  ”“ •" ”’  ”’  ”’ Ï} ”  ”’  ”’  ”’C]@ Œ! Œ! Œ! Œ!  “" Œ"”  “" Œ"”“  “" Œ"”’   “"”’  ” ”“  ”’  ”’ ”  ”“  ”’  ”’  ” ”  ”’  ”’“! ! ! " C@” C@” C@” ”  } AL@ Am  A lj"*! *! *! *! *! *! A!@  LE@    jA lj"*" ^!  *" ^!  *" ^! ! *" ]! *" ]! *" ]! ! Aj!   ’C?”!  ’C?”!  ’C?”! ! “" “" ` “" `q@@  LE@@  J   jA lj* ]A @ Aj!  @  J   jAkA lj* `A @ Ak!   J@  j"Atj(! Atj  jAk"Atj(6 Atj 6  A lj""*! *! *!  A lj"*! *!  *8  8  8  8  8  8 Aj! Ak!   `@@  LE@@  J   jA lj* ]A @ Aj!  @  J   jAkA lj* `A @ Ak!   J@  j"Atj(! Atj  jAk"Atj(6 Atj 6  A lj""*! *! *!  A lj"*! *!  *8  8  8  8  8  8 Aj! Ak!  @  LE@@  J   jA lj* ]A @ Aj!  @  J   jAkA lj* `A @ Ak!   J@  j"Atj(! Atj  jAk"Atj(6 Atj 6  A lj""*! *! *!  A lj"*! *!  *8  8  8  8  8  8 Aj! Ak!   J AJq@  Am æ  #AÀ>kA0I@ #A0k" $ 8 8 8 8 8 8 6 6 6 (! (,! (! * * *  * * * (  ( (A€€€€xqA€€€€xF@ Ak(A$nO@ A$lj" ( ! (! (! *! *! * ! *! *! *8  8  8  8  8  8  6  6  6 * * *  * * * (  ( (Aÿÿÿÿq" Ak(AnO@  Alj 6#A0j$ * * *  * * * (  ( (Aÿÿÿÿq! ("! Aj6  ( "Ak(AvO@  Atj 6 ! Aj" ( " Ak(AvO@ Atj 6 " (A€€€€|qr6 Ak(A$nO@ #9! A$lj" ( ! (! (! *! *! * ! *! *! *8 8 8 8 8 8 6 6 6 @@ " "Ak(A$nO@  " Ak(A$nO@ A$lj"( ! (! (! *! *! * ! *! *!  A$lj" *8  8  8  8  8  8  6  6  6 Aj" Ak(A$nO@ Ak(A$n Aj" M@  A$lj"  A$lj"( ! (! (! *! *! * ! *! *! *8 8 8 8 8 8 6 6 6 Ak(A$nO@  A$lj(! Aj" Ak(A$nO@  A$lj("A€€€€xqA€€€€xF@ Aÿÿÿÿq" Ak(AnO@  Alj Aj6 A€H@ " Aj! Ak(AvO@  Atj" Aÿÿÿÿq6 Aj6 A€€€€xqA€€€€xG@ Aÿÿÿÿq! (" ! Aj6 ! " ( "Ak(AvO@  Atj 6 Aj" ( "Ak(AvO@  Atj 6 ! Ak(A$nO@ A$lj" (A€€€€|q r6  Aÿÿÿÿq" Ak(AnO@  Alj 6 E Ak"" Ak(AvO@  Atj" (! (! (" ! Aj6 ( " Ak(AvO@ Atj 6 ! Aj" ( "Ak(AvO@  Atj 6 ! Ak(A$nO@ A$lj" (A€€€€|q r6  #A0j$ –} ( E@ ("Ak(A$nE@ ("A€€€€qA€€€€F" A -L @ (,Ak(A$nE@ ("Añ¸œK@ A$lAÑw6, ( " (HJ@AAÓw  Amj"AÿÿÿÿK@ AtAÓw64 Añ¸œK@ A$lAÑw68 A lAÊw6@ 6H (4! (8! (@!#6! A€€€€xqA€€€€xGq@A! Ak(AvE@  Aÿÿÿÿq6 Ak(A$nE@ ( ! (! (! *! *! * ! *! *! *! Ak(AvE@ A6 Ak(A$nE@  8  8  8  8  8  8  Aÿÿÿÿ{q6  6  6 Ak(A nE@   ’C?”8   ’C?”8   ’C?”8A! @ AJ@ Ak" Ak(AvO@  Atj(! A!@ AH@  j" Ak(A$nO@  A$lj"( ! (! *! *! * ! *! *! *!@ (" A€€€€xqA€€€€xFA A€€€€qA€€€€F @ "Aj!  Ak(AvO@  Atj Aÿÿÿÿq6  Ak(Av M@ Atj 6  Ak(A$nO@  A$lj" 8  8  8  8  8  8  Aÿÿÿÿ{q6  6  6  Ak(A nO@  A lj"  ’C?”8   ’C?”8   ’C?”8 Aj! Aj!   A! (,! (8! (4! (@! A6 Ak(A$nAM@ C€8$ C€8( C€8, C€ÿ80 C€ÿ84 C€ÿ88 Aÿÿÿÿ{6< A6@ A6D ( "Ak(AvE@ A6 ( "Ak(AvAM@ A6@ AF@ Ak(AvE@ (" Ak(A$nO@ A$lj"( ! (! *! *! * ! *! *! *! ("A€€€€xqA€€€€xF@ (,"Ak(A$nE@  8  8  8  8  8  8  6  6  6 Aÿÿÿÿq" ("Ak(AnO@  AljA6         A0  #8"Ak(AnE@ A6 Ak(AnE@ ("Aj6  ( "Ak(AvO@  AtjA6 Aj" ( "Ak(AvO@  AtjA6  6 Ak(AnE@ A6 Ak(AnE@ A6 Ak(AnE@  6 Ak(AnE@   A /6@@  Ak(AnO@  Alj" (Aj6 (AF@ (" Ak(A$nO@ (" Ak(A$nO@  A$lj(! Aj" Ak(A$nO@  A$lj(! A€€€€xqA€€€€xFA  Ak(A$nO@  A$lj( ! A€€€€xqA€€€€xFA Aj" Ak(A$nO@  A$lj( !  Ak(A$nO@  A$lj"*! *! *! * ! *! *! Aj" Ak(A$nO@  A$lj"   A$lj"*"  ]!  *"  ]!  *"  ]!  * "  ^!  *"  ^!  *"  ^! 8  8  8  8  8  8    rA€€€€qr6  HAj6 A6 E  Ak!  (" ( ( ! ( j!  ( ( " k" AF@  Ak(AvO@  Atj(" Ak(A$nO@ A$lj"( ! (! *! *! * ! *! *! *! ("A€€€€xqA€€€€xF@  (,"Ak(A$nO@  A$lj" 8  8  8  8  8  8  6  6  6 Aÿÿÿÿq" ("Ak(AnO@  Alj 6         0  Aj" Ak(AnO@  Alj" 6 ("Aj6 ( " Ak(Av M@ Atj 6 Aj" ( "Ak(AvO@  Atj 6  6 A6  6  6  6  (   /j6  (! (,6 6, A6 A:L#AÀ>kAI@ #Ak$#Aj$ kA AÉw"AAÊwAAÊw6 A6 A6  A?jAv6 A6AAÊw ("Aÿÿÿ?K@  AtAÊw6   A?jAv" (K@ A6 A6AAÊw AAÊw6  AvjA?jAv6 A6AAÊw ("Aÿÿÿ?K@ AtAÊw6 6 (!A!@ I@ Ak(AvO@  AtjB7 Aj!  Üw _}#AÀ>kAÐI@ #AÐk"$ "*!\ * !] *!^C€? *" ”" *" ”"’C@”“!RC€? *" ”" ’C@”“!S  ”"  * "”"’C@”!T  ”"  ”"“C@”!U  “C@”!VC€?  ’C@”“!W  ”"  ”"’C@”!X  ’C@”!Y  “C@”!Z (! (! #+AAˆü #+" /6À@ /H@  j"- ! -" ("Ak(A nO@ A lj"*! *! *!  ("Ak(A nO@ R A lj"*"” Z *"”’ Y *"”’ ^’!  A0lj" 6( 6, 8 8 8 8 X ” W ”’ V ”’ ]’"8 U ” T ”’ S ”’ \’"8  “8  “8  “8 C8$ Aj!  (À"AJ@}@@@@@ Ak C  *H *“" ” *L *“" ”’ *P * “" ”’‘  *H *"“! *P * "“! *L *"“" *€ “"”  *| “"”“" ”  *x “"”  ”“" ”’  ”  ”“" ”’‘C?”  *L *"“! *P * "“! *H *"“ *| “" *° “"” *€ “" *¬ “"”“”   *¨ “"” *x “" ”“”’   ”  ”“”’CÀ@•  C " *"C?”]  ’ ]r # ]r@ A6À (ÀE@ ("Ak(A nE@ *! *! *! ("Ak(A nE@ R *"” Z *"”’ Y *"”’ ^’! A6À A6( A6,  8  8  8  8  X ” W ”’ V ”’ ]’"8  U ” T ”’ S ”’ \’"8   “8   “8   “8 C8$ # !A¬2*!(A¨2*!NA¤2*!OA! @@ A N A!@@@@@ (ÀAk C€?8$A!   *L" *"“! *H" *"“! *P" * "“!  ”  ”’  ”’Œ"C_@ A6À C€?8$A   ”  ”’  ”’"C_@ A6À (\! (X! *T! *P! *L! *H! *D! *@! * ” ! !”’ & &”’!?  ”  !”’  &”’Œ!  ”  ”’  ”’!!@ >C_  ”  ”’  ”’Œ"&C_q@ A6À  +8  *8  8  8  8  8  8  8  8  98$  6(  6,  ;C_ %C_q@ A6À  18  08  /8  .8  -8  ,8  8  8  8  :8$  6(  6,  C^q C^q@ A6À  88  78  68  58  48  38  8  8  8  28$  6(  6,  +80  *84  88  8<  8@  8D  8H  8L  8P  98T  6X  6\A ?C_   > ?•8$  ?•8TA  A  ”  ”’  ”’"C_   ' •8$   •8T  @ •8„A  C€?8$A !   *!* *!+ * !, *!- *!. *!/ *D!0 *@!1 * *�!? (,! ((! *$!' (\! (X! *T!@ *H""  *"“"” *L""  *"“"”’ *P"  * "“"”’!) *x"  “"” *|"  “"B”’ *€"  “"C”’!H *¨"  “"D” *¬"  “"E”’ *°"  “"A”’!I   “""”   “"#”’   “"$”’!J " "” # #”’ $ $”’!F  "”  #”’  $”’Œ!_   “""”   “"#”’   “"$”’!` " "” # #”’ $ $”’!a  "”  #”’  $”’Œ!b   “""”   “"#”’   “"$”’!c " "” # #”’ $ $”’!d  "”  #”’  $”’Œ!e  ” B B”’ C C”’!K  ”  ”’  ”’!L D D” E E”’ A A”’!f@@@  ”  B”’  C”’Œ"jC_  ”  ”’  ”’Œ"PC_q  D”  E”’  A”’Œ"kC_q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  cC_ )C_q _C_q@ A6À  58  48  38  28  18  08  8  8  8  @8$  6(  6,  JC_ HC_q bC_q@ A6À  %8  ;8  :8  98  88  78  8  8  8  68$  6(  6,  `C_ IC_q eC_q@ A6À  ?8  >8  &8  =8  <8  !8  8  8  8  8$  6(  6,   ”  ”“  “"  “"”  “"#"  “"A"C”“"”  ”  ”“   “"""”  “"$"D ”“"B”’  ”  ”“ D C”  ”“"C”’!g  ”  ”“ A  “"G"E”   “"”“"D”  ”  ”“   “"” " E”“"E”’  ”  ”“ " ” A ”“"A”’!h  ”  ”“  #” G ”“""”  ”  ”“ G $”  #”“"#”’  ”  ”“  ”  $”“"$”’!i  ”  ”“  “"  “"”  “"  “"M”“"G”  ”  ”“   “"”  “"Q ”“"[”’  ”  ”“ Q M”  ”“"M”’!Q  ”  ”“ ”  ”  ”“ B”’  ”  ”“ C”’"lC_  ”  ”“ D”  ”  ”“ E”’  ”  ”“ A”’"mC_q )C^q PC^q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  580  484  388  28<  18@  08D  8H  8L  8P  @8T  6X  6\ LC_   ) L•8$  P L•8T   ”  ”“ "”  ”  ”“ #”’  ”  ”“ $”’"LC_  ”  ”“ ”  ”  ”“ B”’  ”  ”“ C”’"PC_q HC^q jC^q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  %80  ;84  :88  98<  88@  78D  8H  8L  8P  68T  6X  6\ KC_   H K•8$  j K•8T   ”  ”“ D”  ”  ”“ E”’  ”  ”“ A”’"HC_  ”  ”“ "”  ”  ”“ #”’  ”  ”“ $”’"KC_q IC^q kC^q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  ?80  >84  &88  =8<  <8@  !8D  8H  8L  8P  8T  6X  6\ fC_   I f•8$  k f•8T   ”  ”“ G”  ”  ”“ [”’  ”  ”“ M”’"IC_ gC_q JC^q _C^q@ A6À  58  48  38  28  18  08  8  8  8  @8$  6(  6,  %80  ;84  :88  98<  88@  78D  8H  8L  8P  68T  6X  6\ FC_   J F•8$  _ F•8T  QC_ iC_q `C^q bC^q@ A6À  %8  ;8  :8  98  88  78  8  8  8  68$  6(  6,  ?80  >84  &88  =8<  <8@  !8D  8H  8L  8P  8T  6X  6\ aC_   ` a•8$  b a•8T   ”  ”“ G”  ”  ”“ [”’  ”  ”“ M”’"JC_ hC_q cC^q eC^q@ A6À  ?8  >8  &8  =8  <8  !8  8  8  8  8$  6(  6,  580  484  388  28<  18@  08D  8H  8L  8P  @8T  6X  6\ dC_   c d•8$  e d•8T  C€¿C€?  “  “"  “"”  “"  “")”“”  “   “"”  “"F ”“”’  “ F )”  ”“”’"C]")   ”  ”“”   ”  ”“”’   ”  ”“”’”!F )   ”  ”“”   ”  ”“”’   ”  ”“”’”! )   ”  ”“”   ”  ”“”’   ”  ”“”’”! ) ”! )   ”  ”“”   ”  ”“”’   ”  ”“”’”")C] gC^q lC^q PC^q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  %80  ;84  :88  98<  88@  78D  8H  8L  8P  68T  6X  6\  58`  48d  38h  28l  18p  08t  8x  8|  8€  @8„  6ˆ  6Œ  ” B B”’ C C”’"C_   g •8$  l •8T  P •8„  C] hC^q HC^q mC^q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  580  484  388  28<  18@  08D  8H  8L  8P  @8T  6X  6\  ?8`  >8d  &8h  =8l  <8p  !8t  8x  8|  8€  8„  6ˆ  6Œ D D” E E”’ A A”’"C_   h •8$  H •8T  m •8„  "C] iC^q LC^q KC^q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  ?80  >84  &88  =8<  <8@  !8D  8H  8L  8P  8T  6X  6\  %8`  ;8d  :8h  98l  88p  78t  8x  8|  8€  68„  6ˆ  6Œ " "” # #”’ $ $”’"C_   i •8$  L •8T  K •8„  FC] QC^q JC^q IC^q@ A6À  58  48  38  28  18  08  8  8  8  @8$  6(  6,  %80  ;84  :88  98<  88@  78D  8H  8L  8P  68T  6X  6\  ?8`  >8d  &8h  =8l  <8p  !8t  8x  8|  8€  8„  6ˆ  6Œ G G” [ [”’ M M”’"C_   Q •8$  J •8T  I •8„  "C_   F •8$   •8T   •8„  ) •8´A  C€?8$  A  A ! E@#+" AÄjAÄü  (ÀAF@ C8 C8 C8 C8 C8 C8@@@@@ (ÀAk *! *!  *8  8  8 *! *!  * 8  8  8  (, (( *  * * *! *! * ! (\ (X *P *L *H *D! *@! *  ”!;  ”!  >8  ;8  8 A6 (" ("Ak(AnO@ Alj" : ? >”’ 7’ 6 >”“C?”8  ? ;”’ 9’ 6 ;”“C?”8 ? ”’ ’ 6 ”“C?”8 5 “8 A‡;-!A†;-!A…;-! A„;-: : : :  @ AF@ (´"E@ *¤! *¨! *¬! *°!?#3"Ak(AvE@ ("E@ A6  8 6 ” 8 ”“ 7 ”’"” 5 5 ” 6 ”“ 7 ”’" ”“C@”’ <’!  5 8 ” 5 ”“ 7 ”’"” 6 ”“C@”’ C’! 6 ” 8 ”“C@”’ B’! !5 (! ( ! (œ! (d!@  J@  Ak(A nO@  Ak(A nO@  A l"j" j"*! *! *8  8  8 Aj!  ( (d6 (C8 ($"Ak(A nE@ #C ×£;”C€@”!9 58 " 8 "8 (A6 (C8A ;*!Aœ;*!A˜;*!A”;*! A�;*!AŒ;*! Aˆ;*8  8  8  8  8  8  8 A:$  A¬j4!,!+!e!d!c!b!a!`!_!^!]"\! @ e": ?C’" 9’^@ C8¬ A;° A:² A:³ A:´ A:µ A:¶ A:· A:¸ A:¹  ^!7 ]!9 :# CÈB”^@ 5C 5 “} _ “" ” ` 9“" ”’ a 7“" ”’"# CzD”^@C€? ‘•" ”! ”! ”!;   C!C "” 9“ ;”’  7“ ”’“" ”’C?” 5 ? ”“C?”’! ;”’C?” ? ;”“C?”’!  ”’C?”  ? ”“C?”’!  8  ;8  8 A6 (" ("Ak(AnO@ Alj" 8  8  8  : “8 A!# Œ! (¤! A!@  (xH@  Ak(AvO@ Atj"* 5” * ”’ * ”’ * “" ^@ ! ! Aj!  Ak(AvO@ Atj"*!: 5C 5 “ *"” 9“ *"”’  7“ :”’“" ”’C?” 5 ? ”“C?”’! ”’C?” ? ”“C?”’!  :”’C?”  ? :”“C?”’!  8  8  :8 A6 (" ("Ak(AnO@ Alj" 8  8  8   “8 A‡;-! A†;-!A…;-! A„;-:  :  :  :  @ (´")E@ 1(è (´"*E@ #AÀ>kA I@ #A k"$#3"Ak(AvE@ ("E@ A6 #C ×£;”"HC€@”!@ )( ! )(¤! )(œ!/ *( ! *(¤! *(œ! A¤j"A:@@@@@@@@@ -Ak -" Ak(AvO@  Atj"* ! 8 *" ” 5 *"”“ 7 *"”“! *  8 6 ” 8 ”“ 7 ”“"” 5 5 ” 6 ”“ 7 ”“"”“C@”’Œ  5 ” 6 ”“C@”’Œ 6 ” 8 ”“C@”’Œ5"! Ak(A nO@ @   A lj"*! 8 *"” 5 *"”“ 7 ”’!  8 6 ” 8 ”“ 7 ”’"” 5 5 ” 6 ”“ 7 ”’"”“C@”’ <’”   5 ” 6 ”“C@”’ C’”’  6 ” 8 ”“C@”’ B’”’ “_  -! C8 A: A: A: A:  ) * < C B 6 8 5 7  UAF * *“"Œ  C] H]A   -" Ak(AvO@  Atj"* ! 8 *" ” 5 *"”“ 7 *"”’! )  8 6 ” 8 ”“ 7 ”’"” 5 5 ” 6 ”“ 7 ”’"”“C@”’Œ  5 ” 6 ”“C@”’Œ 6 ” 8 ”“C@”’Œ5"! /Ak(A nO@ @  / A lj"* <“! 8 * B“"” 5 * C“"”“ 7 ”“!  8 6 ” 8 ”“ 7 ”“"” 5 5 ” 6 ”“ 7 ”“"”“C@”’”   5 ” 6 ”“C@”’”’  6 ” 8 ”“C@”’”’ “_  -! C8 A: A: A: A:  ) * < C B 6 8 5 7  AjVAF * *“"Œ  C] H]A   -" Ak(AvO@  Atj"-! -! - - Aj" Ak(AvO@  Atj"-! -! - - /Ak(A n M@ / A lj"*! *! *! /Ak(A n M@ / A lj"*!j *!J *"s “!I  Ak(AvO@  Atj"*!f *!W *!  Ak(AvO@  Atj"*!g *!F *!E -" Ak(AvO@  Atj"-! -! - - Aj" Ak(AvO@  Atj"-! -! - - Ak(A n M@  A lj"*! 8 *"9” 5 *"”“ 7 ”’!  8 6 ” 8 ”“ 7 9”’"” 5 5 ” 6 9”“ 7 ”’"”“C@”’ <’!  5 ” 6 ”“C@”’ C’!; 9 6 ” 8 ”“C@”’ B’!= ! Ak(A n M@  Ak(AvO@  Atj"*! 8 *"9” 5 *"”“ 7 ”’!  8 6 ” 8 ”“ 7 9”’"” 5 5 ” 6 9”“ 7 ”’"”“C@”’"> I”  5 ” 6 ”“C@”’"? J “"A”’ 9 6 ” 8 ”“C@”’": j “"X”’"G  Ak(AvO@  Atj"*! 8 *"” 5 *"”“ 7 ”’!  8 6 ” 8 ”“ 7 ”’"” 5 5 ” 6 ”“ 7 ”’"”“C@”’"9 I”  5 ” 6 ”“C@”’" A”’  6 ” 8 ”“C@”’" X”’"D”C]  A lj"*! 8 *"h” 5 *" ”“ 7 ”’!t  8 6 ” 8 ”“ 7 h”’"” 5 5 ” 6 h”“ 7 ”’"”“C@”’ <’" “" ” W 5 t” 6 ”“C@”’ C’" ;“"”’ f h 6 ” 8 t”“C@”’ B’" =“"”’Œ E ” F ”’ g ”’Œ"”C]q G ”C^q@ I I” A A”’ X X”’C·Ñ7” G G”" D D”"  ]_@ @}C€? G G D“•" “" >” 9”’" ”  ?” ”’" ”’  :” ”’" ”’"# CzD”^@C€? ‘•" ”! ”! ”!D   C!C!DC " s “” D J “”’  j “”’]  -! -! C8 A: A: A: A:  ) * < C B 6 8 5 7 Œ DŒ Œ  AjW * *“"Œ  C] H]A    ) * < C B 6 8 5 7 ) * < C B 6 8 5 7A]!(!'!&!%!V!U!T!S!$!#!"!R!Q!P!O!!! !!N!M!L!K  U   ) * < C B 6 8 5 7 ) * < C B 6 8 5 7A]!(!'!&!%!V!U!T!S!$!#!"!R!Q!P!O!!! !!N!M!L!K " # V  ) * < C B 6 8 5 7A]!(!'!&!%!V!U!T!S!$!#!"!R!Q!P!O!!! !!N!M!L!K %"AG@  ) * < C B 6 8 5 7 S T U & W  A6 C8 A: A: A: A: ) * < C B 6 8 5 7A]!(!'!&!%!V!U!T!S!$!#!"!R!Q!P!O!!! !!N!M!L!K &! %! V! #! "! R! ! ! N! ("@  : AF@  8  :  : AF@  8  :  :  8  :  :   ^  ) * < C B 6 8 5 7  U  ) * < C B 6 8 5 7  V  AF  ( E    ^ ]q  * H’^r@ ("C8 C8 C8 C8 C8 C8 A6 A6 A6$ A6( A6, A60 C84 A68 A6< ("Ak(AnE@ C8 C8 C8 C8 A: A: A: A: A6 C8 A: A: A: A:  ) * < C B 6 8 5 7 S T U   AjW ( AF@ *! *!  *8  8  8 *! *!  * 8  8  8  ( 6  ($6$  ((6(  (,6,  (060  *484  (868  (<6< (" ("Ak(AnO@ ("Ak(AnE@ Alj" (! -! -! -! -! * ! *! *! *8  8  8  8  :  :  :  :  6 -! -! -! -!  *8  :  :  :  :  A: #A j$ 1(L"( E@ (("E@ ($Aj6$ (( -«j6( (´"E@ *ˆ!: *Œ!G *�!H *”!I *˜!@ *œ!A * !9#3"Ak(AvE@ ("E@ A6 (! ( ! (œ! (d!A!@ H@ Ak(A nO@ Ak(A nO@  A l"j"  j"*! *! *8 8 8 Aj!  ( (d6 (C8 ($"Ak(A nE@ :8 G8 H8 ($"Ak(A nAM@ I8 @8 A8 (A6 (C8  <8  C8  B8  68  88  58  78 A:$  A¬j4!,!+!e!d!c!b!a!`!_!^!]"\! @ e" 9#C ×£;”C€@”" ’^@ C8¬ A;° A:² A:³ A:´ A:µ A:¶ A:· A:¸ A:¹  @ # CÈB”^@ (¤" Ak(Av b"?! c!= d!>A!# Œ! (x!A!@  H@  Ak(AvO@ Atj"*! * ” * =”’  >”’" ^@ ! ! Aj!  M@ Atj"* ! *"F ?” *"E =”’ *"; >”’"Œ  C]Cî|?^@ ("Ak(AnE@  : 8 6 G” 8 :”“ 7 H”’"” 5 5 :” 6 H”“ 7 G”’"”“C@”’ <’8  G 5 8 H” 5 G”“ 7 :”’"” 6 ”“C@”’ C’8  H 6 ” 8 ”“C@”’ B’8 Ak(AnE@ C8 Ak(AnE@ A: A: A: A: Ak(AnAM@  I 8 6 @” 8 I”“ 7 A”’"” 5 5 I” 6 A”“ 7 @”’"”“C@”’ <’8  @ 5 8 A” 5 @”“ 7 I”’"” 6 ”“C@”’ C’8  A 6 ” 8 ”“C@”’ B’8 Ak(AnAM@ C8 Ak(AnAM@ A:$ A:% A:& A:'   TAF@ Ak(AnE@ F *” E *”’ ; *”’ “!: Ak(AnAM@ F *” E *”’ ; *”’ “" 9 ’"_  :`r@ Ak(AnE@ * 9 :’C?”" F”“! *  ;”“! *  E”“! Ak(AnAM@ * 9 ’C?”" F”“! *  ;”“! *  E”“!  F8  E8  ;8 A6 (" ("Ak(AnO@ Alj" 8  8  8  : 9“8 Ak(AnE@ -! -! -!  -:  :  :  : Aj" ("Ak(AnO@ Alj" 8  8  8   9“8 Ak(AnAM@ -'! -&! -%!  -$:   ?8  =8  >8 A6 (" ("Ak(AnO@ Alj" 9 ?”“ _’C?”8  ] 9 =”“ `’C?”8  ^ 9 >”“ a’C?”8   9“8 A‡;-!A†;-!A…;-! A„;-:  A!A! # Œ! (¤!#3"Ak(AvE@ ("E@ ("Ak(A nE@  : 8 6 G” 8 :”“ 7 H”’" ” 5 5 :” 6 H”“ 7 G”’"”“C@”’ <’8  G 5 8 H” 5 G”“ 7 :”’"” 6 ”“C@”’ C’8  H 6 ” 8 ”“C@”’ B’8 Ak(A nAM@  I 8 6 @” 8 I”“ 7 A”’" ” 5 5 I” 6 A”“ 7 @”’"”“C@”’ <’8  @ 5 8 A” 5 @”“ 7 I”’"” 6 ”“C@”’ C’8  A 6 ” 8 ”“C@”’ B’8@ (xH@ Ak(AvO@  Atj"* !E Ak(A n" *";Œ!= *">Œ!? *"Œ!A!C! E@ *! *! *!A!@ AH@  Ak(A nO@  A lj"*! = * “” ? * “”’   “”’" ^@ ! ! Aj!  M@ ;  A lj"*” > *”’  *”’ E“" ^@ ! ! Aj!  Ak(AvO@  Atj"* * * Aÿq! "g 9^ A!A¬2*!A¨2*!A¤2*!# Œ!A! A! I 8 6 @” 8 I”“ 7 A”’"” 5 5 I” 6 A”“ 7 @”’" ”“C@”’ <’"F : 8 6 G” 8 :”“ 7 H”’"” 5 5 :” 6 H”“ 7 G”’" ”“C@”’ <’“!X A 6 ” 8 8 A” 5 @”“ 7 I”’" ”“C@”’ B’"E H 6 ” 8 8 H” 5 G”“ 7 :”’" ”“C@”’ B’“!D @ 5 ” 6 ”“C@”’ C’"; G 5 ” 6 ”“C@”’ C’“!h ( !/ (œ! (¤!@  (pH@  /Ak(AvO@ / Atj"-! - - - Aj" /Ak(AvO@ / Atj"- - -! -" Ak(A nO@  A lj"*!= *!> *!?  Ak(AvO@  Atj"*!t *!s *!W  Ak(AvO@  Atj"*!f W X” s h”’ t D”’"j *" X” *" h”’ f D”’"J”C]@ X X” h h”’ D D”’C·Ñ7” j j”" J J”" ]^E@}C€? j j J“•"J“" W” J ”’" ” s” J ”’"W W”’ t” J f”’" ”’" # CzD”^@C€? ‘•" ”!  ”!  W”!  C! C!C " F ?“”  ; >“”’ E =“”’" ^@ ! !A! ! ! ! Aj!  ! !  9^  g 9“!#3" Ak(AvE@ ("E@ (¤" Ak(Av M@ Atj" * !> *!W *!g *!F ("Ak(AnE@  :" 8 6 G” 8 ”“ 7 H”’"?” 5 5 ” 6 H”“ 7 G”’":”“C@”’ <" ’8  G 5 8 H” 5 G”“ 7 ”’"” 6 ?”“C@”’ C’8  H 6 :” 8 ”“C@”’ B’8 Ak(AnE@ C8 Ak(AnE@ A: A: A: A: Ak(AnAM@  I 8 6 @” 8 I”“ 7 A”’"<” 5 5 I” 6 A”“ 7 @”’":”“C@”’ ’8  @ 5 8 A” 5 @”“ 7 I”’"” 6 <”“C@”’ C’8  A 6 :” 8 ”“C@”’ B’8 Ak(AnAM@ C8 Ak(AnAM@ 9! A:$ A:% A:& A:'   TAN@ Ak(AnE@ F *” g *”’ W *”’ >“!E Ak(AnAM@ F *” g *”’ W *”’ >“";#C ×£;”C€@”"9_ 9 E`r@ Ak(AnE@ * E ’C?”"9 F”“!= * 9 W”“!> * 9 g”“!? Ak(AnAM@ * ; ’C?”"9 F”“!< * 9 W”“!: * 9 g”“!9  F8  g8  W8 A6 (" ("Ak(AnO@  Alj" =8  ?8  >8  E “8 Ak(AnE@ -! -! -!  -:  :  :  : Aj" ("Ak(AnO@  Alj" <8  98  :8  ; “8 Ak(AnAM@ -'! -&! -%!  -$:  :  :  : ( AF@ (" ("Ak(AnO@  Alj* !9 Aj" ("Ak(AnO@ 9  Alj* "  9^! AF  (  #C ×£;”’  “]A @@ I 8 6 @” 8 I”“ 7 A”’"?” 5 5 I” 6 A”“ 7 @”’"”“C@”’ ’  8 6 G” 8 ”“ 7 H”’"<” 5 5 ” 6 H”“ 7 G”’"”“C@”’ ’":“!9 A 6 ” 8 8 A” 5 @”“ 7 I”’" ”“C@”’ B’ H 6 ” 8 8 H” 5 G”“ 7 ”’"”“C@”’ B’"“! @ 5 ” 6 ?”“C@”’ C’ G 5 ” 6 <”“C@”’ C’" “! (œ! ( " Ak(Av M@ Atj"- - -! -" Ak(AvO@ Atj"- -! - - Ak(A n M@  A lj"*!6 *!5 *!7 Ak(A n M@ 7 5 6  A lj"* 7“ * 5“ * 6“ :  9  -!r!q!p!o!n!m!l"k!: r" C€?_ n"C€?_ C`q C`qqE  8  8  8 A6 (" ("Ak(AnO@  Alj" :  ”“ o"9’C?”8  l"  ”“ p"’C?”8  m"  ”“ q"’C?”8  9 :“”   “”’   “”’ “8 A:  : A:  :   :  :  :  AF@@ *ˆ! *Œ! *�! *”!9 *˜! *œ! * !E *¤!; *¨! *¬!: *°!= A6 ; 8 6 ” 8 ;”“ 7 :”’"” 5 5 ;” 6 :”“ 7 ”’" ”“C@”’ <’"< 9 “"> < “”  “"? 5 8 :” 5 ”“ 7 ;”’" ” 6 ”“C@”’ C’"7 “”’  “" : 6 ” 8 ”“C@”’ B’": “”’" C_    > >” ? ?”’  ”’" ^ 9    •" >”’   ?”’   ”’ !w!v"u"9“"" ” 7 v"“"" ”’ : w" “" " ”’" = E’"#C ×£;”C€@”’" ”^ C!C€?!;C!> ‘"5 5”# CzD”^@C€? 5•" ”!>  ”!;  ”!  >8  ;8  8 A6 (" ("Ak(AnO@ Alj" < = >”“ 9’ E >”’C?”8 7 = ;”“ ’ E ;”’C?”8 : = ”“ ’ E ”’C?”8 5 “8 A‡;-!A†;-!A…;-! A„;-: : : :  *ˆ! *Œ!@ *�! *”! *˜! *œ! * !A *ˆ! *Œ! *�! *”!F *˜!E *œ!; * !X#AÀ>kAI@ #Ak"$#3"Ak(AvE@ ("E@ A6 A X’"h#C ×£;”C€@”’!t 8 ” 5 ”“ 7 ”’!= F 8 6 E” 8 F”“ 7 ;”’">” 5 5 F” 6 ;”“ 7 E”’"?”“C@”’ <’"s  8 6 ” 8 ”“ 7 ”’":” 5 5 ” 6 ”“ 7 ”’"9”“C@”’ <’"f“"J J” E 5 8 ;” 5 E”“ 7 F”’"” 6 >”“C@”’ C’"W  5 =” 6 :”“C@”’ C’"g"F“"> >”’ ; 6 ?” 8 ”“C@”’ B’"E  6 9” 8 =”“C@”’ B’";"?“"< <”’!= @ C f F ?C# CÈB”"  "9“"6 6”  @“"5 5”’  ":“"7 7”’" ^  =^A  J 9 f“"” > @ F“"”’ < : ?“"”’! # CÈB”]@ 9 @ :C fCC€? =•" C€?^ C]" J”’ F  >”’ ?  <”’   6 ” 5 ”’ 7 ”’! =# CÈB”]@ 9CC€? Œ •" C€?^ C]" 6”’ @  5”’ :  7”’  f F ?C  =” 6 J” 5 >”’ 7 <”’" ”“"# CzD”^}CC€?  ”  =”“ •" C€?^ C]C ! 9  ” ’ =•"DC]}C!DCC€? Œ •" C€?^ C] DC€?^}C€?!DCC€?  “ •" C€?^ C]  " 6”’ @  5”’ :  7”’  f D J”’ F D >”’ ? D <”’ D !r!q!p!o!n!m!l"k!F@ o"> F“"" ” p"? l"<“"" ”’ q"6 m"5“" ”’" t t”^ #C ×£;”C ×#<”"t t”]r C8 C8 C8  9“"= =”  @“"7 7”’  :“" ”’" # CzD”^@  ‘8C€? *•" =” 7” ”  C8CCC !}!|"{!D *#C ×£;”]  s f“"= =” W g“"7 7”’ E ;“" ”’" # CzD”^@  ‘8C€? *•" =” 7” ”  C8CCC !w!v"u!= *#C ×£;”] |"j w"7” }"J v" ”“" ” J =” D 7”“" ”’ D ” j =”“" ”’C ×#;]@ ("Ak(AnE@  f8  g8  ;8 Ak(AnE@ C8 Ak(AnE@ A: A: A: A: Ak(AnAM@  s8  W8  E8 Ak(AnAM@ C8 Ak(AnAM@ A:$ A:% A:& A:'  DŒ jŒ JŒ D 9” j @”’ J :”’ŒS"AF  D j J D ” j ”’ J ”’S AF@ Ak(AnE@  9“"; * 9“” " @“"= * @“”’ " :“"7 * :“”’"C_ 9 @ :  ; ;” = =”’ 7 7”’"^   9  •" ;”’ @  =”’ :  7”’ !}!|"{!f Ak(AnAM@  9“"; * 9“” @“"= * @“”’ :“"7 * :“”’"C_ 9 @ :  ; ;” = =”’ 7 7”’"^   9  •" ;”’ @ =”’ : 7”’ !w!v"u!W Ak(AnE@ * f“" ” * |"E“" ”’ * }";“" ”’‘!s Ak(AnAM@ * W“" ” * v"=“" ”’ * w"7“" ”’‘"g h_ h s`q@ s t] g t]r  Ak(AnE@ C€? s•" * f“”!:}  * ;“”!  * E“”!9 Ak(AnAM@ :C€? g•" * W“”"’" ” 9  * =“”"’" ”’   * 7“”"’" ”’"# CzD”^@C€? ‘•" ”!>  ”!D  ”  C!DC!>C !5 Ak(AnE@ * A ”’ ;’ X 5”“C?”! * A 9”’ E’ X D”“C?”! * A :”’ f’ X >”“C?”! Ak(AnAM@ * A ”’ 7’ X 5”“C?”! * A ”’ =’ X D”“C?”! * A ”’ W’ X >”“C?”!  >8  D8  58 A6 (" ("Ak(AnO@ Alj" 8  8  8  s h“8 Ak(AnE@ -! -! -!  -:  :  :  : Aj" ("Ak(AnO@ Alj" 8 8 8 g h“8 Ak(AnAM@ -'! -&! -%! -$: : : :    ”  ”’  ”’" # CzD”^@  ‘8C€? *•" ” ” ”  C8CCC !w!v"u! *! 5 A w" ”’ 6’ X ”“C?”! < A v" ”’ ?’ X ”“C?”!  8  8  8 A6 (" ("Ak(AnO@ Alj" F A ”’ >’ X ”“C?”8 8 8  h“8 A‡;-!A†;-!A…;-! A„;-: : : : #Aj$ ( E@ A6LA  A! (L@ (H"Ak(AŒnE@ (ˆ!@ -J@ -AO@ (H"Ak(AŒnE@  -A8lj"-4 (0 (,! *( *$ *  *! * * * *  * * *@@@@@ - ! !2  ! !3  ! !4  ! !. -Aj!-   (HAk(AŒnE@ AŒA§w6H (HAAŒü A6L (H"Ak(AŒnE@  ( 6ˆ Y Z”" [ i”"’C@”!= Y [”" Z i”"“C@”!> Z [”" Y i”" ’C@”!? C€? Z Z”" [ [”"’C@”“"< *"9”  “C@”"6 *"”’  ’C@”"5 *"”’8à  = 9”C€? Y Y”" ’C@”“"7 ”’ “C@”": ”’8ä  > 9” ? ”’C€?  ’C@”“"9 ”’8èA!-@ - ( H@ ( -j" ("Ak(AnO@ <  Alj"*"” 6 *"”’ ( * ! 5 *"”’" ~ �“’! > ” ? ”’ 9 ”’" € ƒ“’! = ” 7 ”’ : ”’"  ‚“’! - -At -Atr -Atrr!C!A!A!@ J@ AO@ @@@@@  2!0  3!0  4!0  .!0  0F@@@@@@  !  !  !  ! !A!@@@@@  A!2  A!3  A!4  A!.  Aj!  (H -A8lj" ý ý  ý  ý ý   ý ý  ý  ý ý  ý *(ý  ¾ý ý  A60  :4 -Aj!-  A E@A @ (H"Ak(AŒnE@ *èŒ! *äŒ! *àŒ8à 8ä 8è (ˆ!A!@ J@ (H A8lj" *! *! *! *! * ý *ý  *ý  *ý ý   ý ý  ý  ý ý  Aj!  (P"Ak(A(nE@ ($ (  )!„ *! *! * ! *! *! *! (P"Ak(A(nE@ ($ (  )!… *! *! * ! *! *! *! 1(¸"E@   „  … (8Œ 1(¼"E@   „  … (8� C^ C^r@ (!     ] ("AF} *° } AF} (´"E@ *0C€>”C  *  " AF} *° } AF} (´"E@ *0C€>”C  *  "  ]”8” C8”  Z Y ” Z ”“ i ”’"” [ [ ” Y ”“ i ”’"”“C@”’ y x ” y ”“  ”’"” z z ” x ”“  ”’"”“C@”’“8˜   [ Z ” [ ”“ i ”’"” Y ”“C@”’ z y ” z ”“  ”’"” x ”“C@”’“8œ   Y ” Z ”“C@”’ x ” y ”“C@”’“8  1(Ü"0 (DA€€€qA @ /„! 1/ ! (Aj! /„! (Aj! (H".Ak(AŒnE@ ~ .*’! € .*’!  .*’! (H".Ak(AŒnE@ 0        .*à .*ä .*è 0("E@ A6L  (DAÿÿÿ{q6DA -†AqA -†Aq @  (DA€€Àr6D  (DAÿÿ¿q6D A �}~#AÀ>kAI@ #Ak"%$ Aÿq" (4(""Ak(AvO@ " Atj("E@ ("!' AN ( AÿÿqjNA  (0(L"( E@ (("E@ ( !& Aÿÿqj!(@ (H@ '( O@ '( Atj("E@ @@@@@@@@@ (    @    :   =    C    F    I    L    O # *¬^A# *°^ A  (""Av" &(OA  &("#Ak(AvO@ # Atj)B "A?q­†ƒBR A E@ %C8 %C8 (0! * !C!C! @@@@@@@@@ (   *¨" ” *¬" ”’C’‘!  *Ü *à’ *ä“ *è’" Œ C]!  *ä *ü’" ” *è *€’" ”’ *ì *„’" ”’‘! *ð *ˆ’" ” *ô *Œ’" ”’ *ø *�’" ”’‘!  AÈj"* *’ * “" ” *" ”’ *" ”’‘! *" ” * " ”’ *" ”’‘!  *ü" ” *€" ”’ *„" ”’‘! *ˆ" ” *Œ" ”’ *” *˜’ *œ“" ”’‘!  *Ä" ” *È" ”’ *Ì" ”’‘! (!# ("" ( "$( O@ $( "Aàlj("$ #( O@ #( $Atj("#E@ #(!# " ( "$( O@ $( "Aàlj( "" #( O@ #( "Aülj""* "* "* "* "* "* "*!!!!!!! " *$" ” " * "”“ " *"”’ *(" " ”’ ” ”“  ”’ ”’ ”  ”“  ”’ ”’  ” ”  ”’ ”’“!!!"! " Aˆ2*" ” "A„2*"”“ " A€2*"”’!   ” ”“ ”’"”   ”  ”“ ”’"”“C@”’   ”  ”“C@”’  ” ”“C@”’!!"! (!# ("" ( "$( O@ $( "Aàlj("$ #( O@ #( $Atj("#E@ #(!# " ( "( O@ ( "Aàlj( " #( O@ #( Aülj"* * * * * * *!!!!!!! ! " *@" ” " *<"”“ " *8" ”’ *D" ”’  ”  ”“  ”’ ”’  ” ”“  ”’ ”’  ”  ” ”’  ”’“!!!"! " Aˆ2*" ” "A„2*"”“ " A€2*"”’!   ” ”“ ”’"!”   ”  ”“ ”’"”“C@”’   ”  !”“C@”’  ” ”“C@”’! !"! } " " "” " " ”“" ”  ”  ”“" ”’  ”  ”“" ”’"# CzD”^@C€? ‘•" ”!  ”!  ”  C!C!C ! *Ð *Ü’ *è *ì“" ”’ *ð" ”’" ” *Ô *à’  ”’ ”’" ”’ *Ø *ä’  ”’ ”’" ”’‘!  A° j"*0! *(" ” *," ”’  ”’‘! *4" ” *8" ”’ *<" ”’‘!  Aà j"*! *" ”  ”’ * * ’ *$“" ”’‘! *"Œ  C]! % ”8 %  ”8 %* *¬`A %* *°` @ &( (""Av" &("Ak(AvO@  Atj)B "A?q­†„!)  Ak(AvO@  Atj )7 Aj!  #Aj$ »-} (! (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@ ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü! *Ø!! *Ô!" *Ð!# *Ì!$ *È!% *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!& *x *t *p *l *h *d *`! *\! *X! *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!1 * !2 *!3 *! *! *! * ! * * *  ("( O@ ( Aülj"*x *t *p *l *h *d *`!4 *\!5 *X!6 *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$! * ! *! *! *! *! * ! * * * *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!' (ø *ô *ð *ì *è!( *ä!) *à!* *Ü!+ *Ø!, *Ô!- *Ð!. *Ì!/ *È!0 &8H '8L %8P $8T #8X "8\ !8` 8d 8h 8l 8p 08t /8x .8| -8€ ,8„ +8ˆ *8Œ )8� (8” A  AG6ì A  AG6ð  * “"”  * “"”“  * “"”’!    ”  ”“  ”’" ”   ”  ”“  ”’"”“C@”’   ”  ”“C@”’   ”  ”“C@”’!!"8ô 8ø 8ü *4 4“" ” *0 5“"”“  *, 6“"”’!  ” ”“  ”’"” ” ”“  ”’"”“C@”’  ” ”“C@”’ ” ”“C@”’!!"8€ 8„ 8ˆ  3“8Œ  2“8�  1“8”} *€" *ô"“ *Œ’" ” *„" *ø"“ *�’" ”’ *ˆ" *ü"“ *”’" ”’" # CzD”^@C€? ‘•" ”! ”! ”!  C!C! C ! C€? & '’  ”  ”“" % ” "  ”  ”“" ”’   ”  ”“" ”’ $ ” ! ”’  ”’ # ” ”’  ”’!!"” ”’ ”’’  ”  ”“" 0 ” -  ”  ”“" ”’ *  ”  ”“" ”’ / ” , ”’ ) ”’ . ” + ”’ ( ”’!!"” ”’ ”’’" •C C^8¤  *À! *! CCC *¼" C[  ’ CÛÉ@”"”’! C€? ” ”" C€?’•!  • ” !!"8˜ 8œ 8  -”E@ C8Ü C8à C8ä C8è ¾ 6} *H! *L! *p! *l! *h! *d! *`! *\! *X! *T!! *P!" *”!# *�!$ *Œ!% *ˆ!& *„!' *€!( *|!) *x!* *t!+ (8!8 (ì"AF#  8( Atj "* <*(!! <*$!" <* ! <* <*! <*  <*! <*! <*! <*! <*! (ð"A€ q@ =( (ìAtj" 8  8  8  8  8  8 ?A€ q@ =( (ðAtj" 8 8 8 8 8 8 à4} (! (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü! *Ø! *Ô!! *Ð!" *Ì!# *È!$ *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!% *x *t *p *l *h *d *`!& *\!* *X!+ *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!, * !- *!. *! *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è!' *ä!( *à!) *Ü!/ *Ø!0 *Ô!1 *Ð!2 *Ì!3 *È!4 *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!5 *x *t *p *l *h *d *`!6 *\!7 *X!8 *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!9 * !: *!; *! *! *! * ! * * * %8H 58L $8P #8T "8X !8\ 8` 8d 8h 8l 8p 48t 38x 28| 18€ 08„ /8ˆ )8Œ (8� '8” *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!!!!!!! ! " "' " "!” "" "#”“” "( " "$” "% !”“”’ ") % #” $”“”’# CzD”]:´ A  AG6¬ A  AG6° *$"”  * "”“  *"”’ *(" ”’8À  ” ”“  ”’  ”’8Ä ” ”“  ”’  ”’8È  ” ” ”’  ”’“8Ì * &“"”  * *“"”“  * +“"”’!  ” ”“  ”’"&”   ” ”“  ”’"”“C@”’8´   ” &”“C@”’8¸  ” ”“C@”’8¼  *@"”  *<" ”“  *8" ”’ *D" ”’8Ü  ”  ”“  ”’  ”’8à  ”  ”“  ”’  ”’8ä  ”  ”  ”’  ”’“8è  *4 6“"”  *0 7“" ”“  *, 8“" ”’!   ”  ”“  ”’"”   ”  ”“  ”’" ”“C@”’8Ð  ”  ”“C@”’8Ô   ”  ”“C@”’8Ø ; .“8ì : -“8ð 9 ,“8ô  *Ð! *! CCC *Ì" C[   ’ CÛÉ@”"”’! C€? ” ”"C€?’•!  •  ” !!"8” 8˜ 8œ  *Ü! *! CCC *Ø" C[   ’ CÛÉ@”"”’! C€? ” ”"C€?’•!  •  ” !!"8  8¤ 8¨ ' ( ) % " $ # !,!!!!!!! ! " 8ø 8ü 8€ 8„ 8ˆ 8Œ 8� 8” 8˜ -”E@A¬2*!A¨2*! A¤2*8ä 8è 8ìA¬2*!A¨2*! A¤2*8ð 8ô 8øA¬2*!A¨2*! A¤2*8ü 8€ 8„A¬2*!A¨2*! A¤2*8ˆ 8Œ 8� ý 1} *H! *L! *p! *l! *h! *d! *`! *\! *X! *T! *P! *”! *�! *Œ! *ˆ!! *„!" *€!# *|!$ *x!% *t!& (8!3 (¬"AF#  3( Atj "*!  ”  ”“ ”  ”  ”“ ”“  *„"”  ”“ ”  *ˆ"”  ”“ ”“’ ( )’" ’! 1 ” <" ”“  ”  ”  ”!!" *€” ” ”!!"“  “  “!!"" ” " ”“’ ’!  ” =" ”“  ” " ”“’! :" ” ”“ @" ”  ”“’ ’" ” ” 1 ”“  ”  ”“’" ”“!  ” 9 ”  ”“ ? ”  ”“’" ”“!# CzD”  ” ”’  ”  ”“"”’"Œ  C]]@C€? •"  %”  *”’  '”’”!  %”  ”  ”“ *”’ ”  ”“" '”’”!  %”  *”’  ” ”“ '”’”!   A¬2*!A¨2*!A¤2* ” # ”“’8ü  $ ” # ”“’8€  $ ” # "”“’8„ *ü"" ” *€" " ”’ *„"" ”’ 7 7”^@ 7}  ” ”’  ”’"# CzD”^@C€? ‘•" ”!  ”!  ”!   C!C!C ”8ü 7 ”8€ 7 ”8„ , ( *„ “" ”“!, - ( *€ “"”“!- . ( *ü “"”“!.  I  ”  ”“"” F  ” ”“"”’ C ”  ”“"”’ H ” E ”’ B ”’ G ” D ”’ A ”’!!"“! “! ! “!! / ) ”’!/ 0 ) ”’!0  R  ”  ”“"” O  ” ”“"”’ L ”  ”“"”’ Q ” N ”’ K ”’ P ” M ”’ J ”’!!"’!  ’! " ’!" & ) ”’!& *Ä"C^@ *ì!1 *è! *ä"! * ”!+ } /  ”  ”“’ ,  ” ! ”“’“ *´“!6 0 " ”  ”“’ - ”  ”“’“ *°“!% &  ” " ”“’ . ! ” ”“’“ *¬“!' *h” *l"” *p" ”!!"  *P"”  *T"”  *X"”!!"“  “  “!:!9"8!  ”  ”  ”!!" *\” *`"” *d"”!!"“  “  “!=!<";!* *Œ” *�"” *”"”!!"  *t"”  *x" ”  *|"”!!"“  “  “!@!?">!  ”  ”“ ”  ”  ”“ ”“  *„"”  ”“ ”  *ˆ"”  ”“ ”“’ ( )’"’! * ” <" ”“  ”  ”  ”!!" *€” ” ”!!"“  “  “!!"" ” " ”“’ ’!  ” =" ”“  ” " ”“’! :" ” ”“ @" ”  ”“’ ’" ”  ” * ”“  ” ”“’" ”“!  ” 9 ”  ”“ ? ”  ”“’" ”“!# CzD” ” ”’  ”  ”“" ”’"Œ  C]]@C€? •"  '”  %”’ 6”’”!   '” ”  ”“ %”’ ” ”“" 6”’”!  '”  %”’ ” ”“ 6”’”! !   A¬2*!A¨2*!A¤2* “8ä  “8è 1 “8ì *ä" " ” *è"" ”’ *ì"" ”’ + +”^@ +} ”  ”’  ”’"# CzD”^@C€? ‘•" ”!  ”!  ”!   C!C!C ”8ä + ”8è + ”8ì , ( *ì 1“" ”“!, - ( *è “"”“!- . ( *ä “"”“!.  I  ”  ”“"” F  ” ”“"”’ C ”  ”“"”’ H ” E ”’ B ”’ G ” D ”’ A ”’!!"“! “! ! “!! / ) ”’!/ 0 ) ”’!0  R  ”  ”“"” O  ” ”“"”’ L ”  ”“"”’ Q ” N ”’ K ”’ P ” M ”’ J ”’!!"’!  ’! " ’!" & ) ”’!& ZA€ q@ Y( (¬Atj" .8  -8  ,8  8  !8  8 WA€ q@ Y( (°Atj" &8 08 /8 8 8 "8 Ä(} (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! ) (" ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü! *Ø! *Ô!! *Ð!" *Ì!# *È!$ *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!% *x *t *p *l *h *d *` *\ *X *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$ *  * *! *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è!& *ä!' *à!( *Ü!) *Ø!* *Ô!+ *Ð!, *Ì!- *È!. *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!/ *x *t *p *l *h *d *` *\ *X *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$ *  * *! *! *! * ! * * * %8H /8L $8P #8T "8X !8\ 8` 8d 8h 8l 8p .8t -8x ,8| +8€ *8„ )8ˆ (8Œ '8� &8” *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!!!!!!!!" " " ” " "”“”   "” " ”“”’   ” ”“”’# CzD”]:´ A  AG6è A  AG6ì *$" ” * " ”“  *"”’ *(" ”’8È ” ”“  ”’  ”’8Ì ” ”“  ”’  ”’8Ð  ” ” ”’ ”’“8Ô  *@"”  *<" ”“  *8" ”’ *D" ”’8Ø  ”  ”“  ”’ ”’8Ü  ”  ”“  ”’ ”’8à  ”  ”  ”’  ”’“8ä *Ü" *Ð" ” *à" *Ì"”“ *Ô" *Ø" ”’ *ä" *È" ”“! ” ”  ”’ ”’’"AŒ2*"”  ” ”“ ”’ ”“"A”2*"” ”  ”“ ”’ ”“"A�2*" ”“’!   ”  ”  ”“’" ”  ”  ”  ”“’" ”“ ”’!   ”  ”“ ”’"” ” ”“ ”’" ”“C@”’C?”8° ” ”“C@”’C?”8´ ”  ”“C@”’C?”8¸ A˜2*"” A 2*" ” Aœ2*" ”“’! *Ì"  ”  ”  ”“’" ” *Ð"  ”  ”  ”“’"”“ *Ô" ”’!  *È" ” ”“  ”’" ” ”  ”“  ”’"”“C@”’C?”8¼  ”  ”“C@”’C?”8À  ” ”“C@”’C?”8Ä  * ! *! CCC *œ" C[   ’ CÛÉ@”"”’! C€? ” ”" C€?’•!  • ” ! !"8ð 8ô 8ø -”E@ C8¨ C8¬ ´} *p! *l! *h! *d! *`! *\! *X! *T! *P! *”! *�! *Œ! *ˆ! *„! *€! *|! *x! *t! (8! (è"AF#  ( Atj "*< *8 *4 *0 (,!! *( *$ *  * *! *! *! *  * * * (ì"AF#  ( Atj "*  * * * *< *8 *4 *0 (,!" *( *$ *  * *! *!   *¨" *°” *¬" *¼”’"”   *´”  *À”’"”’   *¸”  *Ä”’"”’  ”  ”’ ”’  ”  ”’ ”’!!"“! *  ”  ”’  ”’  ”  ”’  ”’  ”  ”’  ”’! ! " ’! !A€ q@ ( (èAtj" 8   “8   “8 "A€ q@ ( (ìAtj" 8  ’8  ’8 ¡=} *p!, *l!- *h!. *d!/ *`!0 *\!1 *X!2 *T!3 *P!4 *”!5 *�!6 *Œ!7 *ˆ!8 *„!9 *€!: *|!; *x!< *t!= (8! (è"AF#  ( Atj "* ” "? ”’ !"@ ”’”’"A  ”  ”’  ”’"”   ” " ”’ & ”’"”’  > ” ? ”’ @ ”’"”’"” ” ”’ ”’" ”“"# CzD”^@C€? •" ” ”  ”  ”  ”’  ”’ %’"”“ Œ ” ”  A” ”’  CC !C"B” # ”“’8¨   C” # ”“’8¬ *¨" ” *¬" ”’ ”^@  ”  ”’‘•" ”8¨ ”8¬ ( 4 *¨ “" ” *¬ “" ”’" ” 1 ”  ”’" ”’ . ”  ”’" ”’“!( ' 2 ” / ”’ , ”’“!' * < ” 9 ”’ 6 ”’’!* ) ; ” 8 ”’ 5 ”’’!) + = ” : ”’ 7 ”’’!+ $ 3 ” 0 ”’ - ”’“!$ A€ q@ ( (èAtj" (8  $8  '8 A€ q@ ( (ìAtj" +8 *8 )8 é4} (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! ) (" ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü! *Ø! *Ô! *Ð! *Ì! *È!! *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!" *x *t *p *l *h *d *`!# *\!* *X!+ *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!, * !- *!. *! *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è!$ *ä!% *à!& *Ü!/ *Ø!0 *Ô!1 *Ð!2 *Ì!3 *È!4 *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!5 *x *t *p *l *h *d *`!6 *\!7 *X!8 *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!9 * !: *!; *! *! *! * ! * * * "8H 58L !8P 8T 8X 8\ 8` 8d 8h 8l 8p 48t 38x 28| 18€ 08„ /8ˆ &8Œ %8� $8” *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!!!!!!!! " "$ " "” " " ”“” "%  "!” "" ”“”’ "& " ”  !”“”’# CzD”]:´ AÈj"A  AG6@ A  AG6D  *$"”  * "”“ *"”’ *(" ”’8T   ” ”“ ”’  ”’8X  ” ”“ ”’  ”’8\  ” ” ”’  ”’“8` * #“"”  * *“"”“ * +“"”’!   ” ”“ ”’"#”   ” ”“ ”’" ”“C@”’8H    ” #”“C@”’8L   ” ”“C@”’8P   *@"”  *<" ”“  *8" ”’ *D" ”’8p   ”  ”“  ”’ ”’8t   ”  ”“  ”’ ”’8x   ”  ”  ”’  ”’“8|  *4 6“"”  *0 7“" ”“  *, 8“" ”’!    ”  ”“  ”’"”   ”  ”“  ”’" ”“C@”’8d   ”  ”“C@”’8h    ”  ”“C@”’8l  ; .“8¤  : -“8¨  9 ,“8¬  $ % & "   ! ,!!!!!!!! " 8´  8¸  8¼  8À  8Ä  8È  8Ì  8Ð  8Ô *T" ”!C€? *X" ”" *\" ”" ’C@”“!  ”" *`"”"’C@”!  8€  8„   ”" ”"“C@”8ˆ   “C@”8Œ C€?  ’C@”“8�  ”"  ”"’C@”8”   ’C@”8˜  “C@”8œ C€?  ’C@”“8   *(! *! CCC *$" C[   ’ CÛÉ@”"”’! C€? ” ”"C€?’•!  •  ” !)!("'8Ø  (8Ü  )8à -”E@ C8 C8 C8 C8 C8 C8 C8 C8 C8 ‹A} *H! *L!! *p!( *l!) *h!* *d!+ *`!, *\!- *X!. *T!/ *P!0 *”!1 *�!2 *Œ!3 *ˆ!4 *„!5 *€!6 *|!7 *x!8 *t!9 (8!E AÈj"C(@"AF#  E( Atj "* C(D"AF#  E( Atj "D* ”“8  #8  8  8  < “8  ; “8 A€ q@ E( C(DAtj" 8 B ! "”’8 A ! ”’8 8 @ ’8 ? ’8 û,Y} *H! *L!# *p!9 *l!: *h!3 *d!; *`!< *\!4 *X!= *T!> *P!5 *”!? *�!@ *Œ!6 *ˆ!A *„!B *€!7 *|!C *x!D *t!8 (8!^ AÈj"\(@"]AF#  ^( ]Atj "]* ” < %”’ : "”’ = ” ; %”’ 9 "”’!!"”  ”’ " ”’’  ”  ”“"0 8 0” 7  ”  ”“"G"”’ 6  ”  ”“".”’ D 0” B ”’ @ .”’ C 0” A ”’ ? .”’!!"” G ”’ . ”’’"•C C^!1 -´"]A \-äE@ \ \*" \*ÜŒ 1” $  ”  ”“’ “  ”  ”““ ” *  ”  ”“’ (“  , ’"-”  ”““ ”’ )  ”  ”“’ '“  ”  -”““ ”’ \*Ø & /“”’” \*à ”“"’8 '   ”"/”“!' (   ”"-”“!(    ”"2”“!  5  ”"” 4  %”"”’ 3  "”"”’ > ” < ”’ : ”’ = ” ; ”’ 9 ”’!!"“!  “!  “! ) # /”’!) * # -”’!*  8  0”"” 7  G”"”’ 6  .”"”’ D ” B ”’ @ ”’ C ” A ”’ ? ”’!!"’!  ’!  ’! $ # 2”’!$ ]A \-æE@ \*, *”"Œ"  \*"/ 1Œ $  ”  ”“’ “  E !’"”  F +’"-”““ ” *  ”  ”“’ (“  , ’"2”  ”““ ”’ )  ”  ”“’ '“  -”  2”““ ”’ \*0“”’"  ]  ]" /“! \ 8 '   ”"/”“!' (   ”"-”“!(    ”"2”“!  5  ”"” 4  %”"”’ 3  "”"”’ > ” < ”’ : ”’ = ” ; ”’ 9 ”’!!"“!  “!  “! ) # /”’!) * # -”’!*  8  0”"” 7  G”"”’ 6  .”"”’ D ” B ”’ @ ”’ C ” A ”’ ? ”’!!"’!  ’!  ’! $ # 2”’!$ ]A \-åE@ \*< \*8"“C€>”"/ & “"^@C€?!C! C^}  * ” } *¤! *¨! *  ”C !- \ \*" Œ 1” $  ”  ”“’ “  E !’"”  F +’"2”““ ” *  ”  ”“’ (“  , ’"O”  ”““ ”’ )  ”  ”“’ '“  2”  O”““ ”’ -’”  ”“’"C C^8   \* “" ”"-”“! '   ”"2”“!' (   ”"O”“!(  5  ”"” 4  %”"”’ 3  "”"”’ > ” < ”’ : ”’ = ” ; ”’ 9 ”’!!"“!  “!  “! ) # 2”’!) * # O”’!* $ # -”’!$  8  0”"” 7  G”"”’ 6  .”"”’ D ” B ”’ @ ”’ C ” A ”’ ? ”’!!"’!  ’!  ’! \C8 \*< &“"& /]@C€?!C! &C^} & * ” } *¤! *¨! *  &”C ! \ \* "& Œ 1”  $  ”  ”“’ “  E !’"1”  F +’"”““ ” *  ”  ”“’ (“  , ’"”  1”““ ”’ )  ”  ”“’ '“  ”  ”““ ”’“”  &”“’"C C^8   & \* “" ”"1”“! '   ”"&”“!' (   ”" ”“!(  5  ”"” 4  %”"”’ 3  "”" ”’ > ” < ”’ : ”’ = ” ; ”’ 9 ”’!!"“!  “!  “! ) # &”’!) * # ”’!* $ # 1”’!$  8  0”"” 7  G”"”’ 6  .”" ”’ D ” B ”’ @ ”’ C ” A ”’ ? ”’!!"’!  ’!  ’! \C8 ]E@C! C! C!C€?!C! @  \*\"”  \*X" ”“  \*T" ”’ \*`" ”’  ”  ”“  ”’  ”’  ”  ”“  ”’  ”’  ”  ”  ”’  ”’“!K!J!I"H! \*x" ” \*t" ”“  \*p"”’ \*|" ”’ ” ”“  ”’  ”’ ” ”“  ”’  ”’  ” ” ”’ ”’“!S!R!Q"P! Q" J" ” R" I" ”“ K" ”’ S" ”“ ”  ”“ ”’  ”“  ” ”“ ”’  ”“ ”  ” ”’ ”’’!K!J!I"H I J KAð1*Aô1*Aø1*Aü1*.!!"! " ” "”“ ”’! " ” ”“ ”’"” ”  ”“ ”’" ”“C@”’  ”  ”“C@”’  ” ”“C@”’!!"Œ! * " ”! Œ”! Œ”! *¤! *¨! \*"" Œ" \*´  “ ’" ” \*À  “ ’" ”’ \*Ì  “ ’" ”’ \*¸ ” \*Ä ”’ \*Ð ”’ \*¼ ” \*È ”’ \*Ô ”’!!"”  "”“" ’! \*! \* "  ”  ”“" ’! \ 8 \ 8 \  ”  ”“"’8  5 ” 4 ”’ 3 ”’ > ” < ”’ : ”’ = ” ; ”’ 9 ”’!!"“!  “!  “!  8 ” 7 ”’ 6 ”’ D ” B ”’ @ ”’ C ” A ”’ ? ”’!!"’!  ’!  ’!  \*”" ”  \*�" ”“  \*Œ"”’!    ”  ”“  ”’"”   ”  ”“  ”’"”“C@”’  ”  ”“C@”’  ”  ”“C@”’!!"! ! !  \* " ”  \*œ"”“  \*˜" ”’!   ”  ”“  ”’"”   ”  ”“  ”’" ”“C@”’   ”  ”“C@”’  ”  ”“C@”’!!"! ! !C!C!GC€?!C!0 @ * " ” +”’ !”’”!G *¤! *¨!0  ”  +”’  !”’”!  #’" F +’" ” E !’" ”“" 5 ” 4 ” , ’"."! ”“"”’ 3 ! ”  ”“"!”’ > ” < ”’ : !”’ = ” ; ”’ 9 !”’!!"”  ”’ ! ”’’  ”  ”“"+ 8 +” 7  ”  ”“"E" ”’ 6  ”  ”“"F"”’ D +” B ”’ @ ”’ C +” A ”’ ? ”’!!"” E ”’ F ”’’!1 \*!& \ \*"/ Œ"-  5  ” ”“"” 4 ” . ”“" ”’ 3 . ”  ”“"”’ > ” < ”’ : ”’"O = ” ; ”’ 9 ”’"W!!"”  ”’ ! ”’ + 8  ”  ”“",” 7  ”  ”“""”’ 6  ”  ”“"%”’ D ,” B "”’ @ %”’"X C ,” A "”’ ? %”’"Y!!"” E ”’ F ”’’! $  ”  ”“’ “  ”  ”““"2” *  ”  ”“’ (“  .”  ”““"”’ )  ”  ”“’ '“  ”  .”““"”’ G’! 2”  ”’  ”’ ’! 1   5 ” 4 ”’ 3 ”’ O W!!"” ”’  ”’’ , 8 ,” 7 "”’ 6 %”’ X Y!!"” " ”’ % ”’’"”  ”“"# CzD”^@C€? •" ” ”  ” ”“ Œ ” ”  1” ”’  CC !["Z” 0 /”“"’8 \ & - [” 0 &”“" ’8 '   ” ”’"”“! (   ” ”’"”“!    ” ”’"”“!  5  ” ”’"” 4  ” ”’" ”’ 3  !” ”’" ”’ > ” < ”’ : ”’ = ” ; ”’ 9 ”’!!"“!  8  +” ,”’"” 7  E” "”’"”’ 6  F” %”’" ”’ D ” B ”’ @ ”’ C ” A ”’ ? ”’!N!M"L’! _A€ q@ ^( \(@Atj" 8 8 8 8  “8  “8 `A€ q@ ^( \(DAtj" $ # ”’8 * # ”’8 ) # ”’8 8  M’8  N’8 ª4} (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! ) (" ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü! *Ø! *Ô! *Ð! *Ì! *È!! *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!" *x *t *p *l *h *d *`!# *\!* *X!+ *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!, * !- *!. *! *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è!$ *ä!% *à!& *Ü!/ *Ø!0 *Ô!1 *Ð!2 *Ì!3 *È!4 *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!5 *x *t *p *l *h *d *`!6 *\!7 *X!8 *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!9 * !: *!; *! *! *! * ! * * * "8H 58L !8P 8T 8X 8\ 8` 8d 8h 8l 8p 48t 38x 28| 18€ 08„ /8ˆ &8Œ %8� $8” *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!!!!!!!!""$ " "” " " ”“” "%  "!” "" ”“”’ "& " ”  !”“”’# CzD”]:´ A  AG6¼ A  AG6À *$"” * "”“ *"”’ *(" ”’8Ð ”  ”“ ”’  ”’8Ô  ” ”“ ”’  ”’8Ø ”  ” ”’ ”’“8Ü * #“"” * *“"”“ * +“"”’!   ” ”“ ”’"#” ”  ”“ ”’" ”“C@”’8Ä  ”  #”“C@”’8È   ” ”“C@”’8Ì  *@" ” *<" ”“ *8"”’ *D" ”’8ì ”  ”“ ”’ ”’8ð  ”  ”“ ”’ ”’8ô ”  ”  ”’ ”’“8ø  *4 6“" ” *0 7“" ”“ *, 8“"”’!    ”  ”“ ”’"” ”  ”“ ”’"”“C@”’8à ”  ”“C@”’8ä  ”  ”“C@”’8è ; .“8  : -“8¤ 9 ,“8¨ *Ô"Aˆ2*" ” *Ø" A„2*"”“ *Ü" A€2*" ”’! C€?  *Ð" ”  ”“ ”’"” ”  ”“ ”’" ”“C@”’" $ ” "  ”  ”“C@”’" ”’ !  ”  ”“C@”’"”’” % ”  ”’ ”’”’  & ”  ”’  ”’”’" •C C^8° 8ü 8€ 8„ *ð" *Ø" ” *ô" *Ô"”“ *Ü" *ì" ”’ *ø" *Ð"”“! ”  ”  ”’ ”’’" AŒ2*"”  ” ”“ ”’  ”“"A”2*"” ”  ”“ ”’  ”“" A�2*" ”“’! *Ô" ” ”  ”“’"” *Ø" ” ” ”“’" ”“ *Ü" ”’!   *Ð" ”  ”“  ”’"” ”  ”“  ”’"”“C@”’C?”8ˆ ”  ”“C@”’C?”8Œ   ”  ”“C@”’C?”8� A˜2*" ” A 2*"” Aœ2*"”“’! *Ô" ” ”  ”“’"” *Ø" ” ” ”“’" ”“ *Ü" ”’!   *Ð" ”  ”“ ”’"” ” ”“ ”’"”“C@”’C?”8” ” ”“C@”’C?”8˜  ”  ”“C@”’C?”8œ  *¤! *! CCC * "C[  ’ CÛÉ@”" ”’!C€? ” ”" C€?’•! • ” !)!("'8´ (8¸ )8¼ -”E@A¬2*! A¨2*! A¤2*8ü 8€ 8„ C8ˆ C8Œ C8” C8� C8˜ C8œ í 0} *H! *L! *p! *l! *h! *d! *`! *\!! *X!" *T!# *P!$ *”!% *�!& *Œ!' *ˆ!( *„!) *€!* *|!+ *x!, *t!- (8!4 (¼"AF#  4( Atj "* *T!? *P!@ *”!A *�!B *Œ!C *ˆ!D *„!E *€!F *|!G *x!H *t!I (8!Z (¼"WAF#  Z( WAtj "W* ” ; ”’ 8 ”’" G ” D ”’ A ”’"’”’!5  !“ ” # “ ”’ " “ ”’!C! -À@ *°! *�" *¸Œ *°”  *´ C]} Œ"C[ Œ"C[q}CCÛI@CÛÉ? Œ  C]"X" Œ  C]"Y"  ^    ]"W•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  W"“  Y"Œ  X  C[ C[q}CCÛI@CÛÉ? Œ C]"X" Œ  C]"Y"  ^    ]"W•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  W"“  Y"Œ  X " ’ “”’” *¼ ”“"’8�  5 ”’! C’! -Á@ *¨ *”" *”"“!  Œ “"  *°Œ  *¬“”"  ^  ^"’8”  5 ”’! ’! -Â@C€?! C]} Œ"C[ Œ"C[q}CCÛI@CÛÉ? Œ  C]"X" Œ  C]"Y"  ^    ]"W•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  W"“  Y"Œ  X  C[ C[q}CCÛI@CÛÉ? Œ C]"X" Œ  C]"Y"  ^    ]"W•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  W"“  Y"Œ  X " ’" *´“"C^}  * ” } *¤! *¨! *  ”C ! *˜"Œ!  Œ *°”  ’”  ”“"   ^"’8˜C€?!C! *¸ “"C^}  * ” } *¤! *¨! *  ”C ! *œ"Œ!  Œ *°”   5 ”’“”  ”“"   ^"’8œ ’ “!  ”“! ”“! # ”’!# " ”’!" ! ”“!!  ”’! [E@C! C!C€?! @ * " $”!  ”! *¨!% *¤! A˜2*"” A 2*"” Aœ2*"”“’!  ” $ ”  ”“’"”   ” ” $ ”“’"”“  ”’! AŒ2*"” A”2*"” A�2*"”“’!  ” $ ”  ”“’"”   ” ” $ ”“’"”“  ”’!  ” ”“  ”’"”   ”  ”“  ”’"”“C@”’C?”"8ˆ   ”  ”“C@”’C?”"8Œ   ” ”“C@”’C?”"8�   ” ”“  ”’"”   ”  ”“  ”’"”“C@”’C?”"8”   ”  ”“C@”’C?”" 8˜   ” ”“C@”’C?”" 8œ *Œ! *ˆ"!  Œ"$  !“"5 ” # “" ”’ " “" ”’ ’!  @ I’ ? H’ > G’ = F’ < E’ ; D’ : C’ 9 B’ 8 A’!1!0!/!.!-!,!+!*")" ” ," ”’ /" ”’”  *" ” -" ”’ 0" ”’”’  +" ” ." ”’ 1" ”’”’"   ” ”’  ”’"”  ”  ”’  ”’"”’  ”  ”’  ”’"”’"”  ”  ”’  ”’" ”“"# CzD”^@C€? •" ” ”  ” 5 ”  ”’  ”’ ’"”“ Œ ” ”  ” ”’  CC !V"U” % ”“"’8ˆ  $ V” % ”“"’8Œ ! @  ”  ”’"” =  ”  ”’"”’ :  ”  ”’"”’“!!  > ” ; ”’ 8 ”’“! ? ” < ”’ 9 ”’“! # H ” E ”’ B ”’’!# " G ” D ”’ A ”’’!"  I ” F ”’ C ”’’! ' *Ì"” & *È" ”“ 2 *Ä"”’!  ' ( ” ' ”“ 2 ”’"” & & ” ( ”“ 2 ”’"”“C@”’! *è"” 3 *ä"”“  *à"”’!  4 ” ”“  ”’"” 3 3 ” 4 ”“  ”’"”“C@”’! R #  4 ” ”“C@”’"” "  3 ” 4 ”“C@”’" ”“’ Q“  ( ” ' ”“C@”’"”  & ” ( ”“C@”’" ”““!A¬2*!%A¨2*!A¤2*! C! S  ” # ”“’ O“ ! ” ”““! T " ”  ”“’ P“  ” ! ”““!$ *ü"5 } * " N “  “’ * ’”!  L J“  “’ *¨’”!%  M K“ “’ *¤’”! *¨! *¤C€? Œ"J}  *l"”  *T"”“!  *p"”  *X"”“!K  *h”  *P" ”“! ”  *`"”“! ”  *d"”“!L ”  *\”“!M  *�"”  *x"”“!  *”"”  *|"”“!N  *Œ”  *t" ”“!  ” ”“ ”  ” ”“ ”“  *„"” ”“ ”  *ˆ"” ”“ ”“’ 6 7’"’! M ”  ”“ ”  *€”“" ” ”  ”“" ”“’ ’!  ” L ”“  ” ”  ”“" ”“’! K ” ”“ N ”  ”“’ ’" ” L ” M ”“  ” ”“’" ”“!  ”  ” K ”“  ” N ”“’" ”“!# CzD”  ”  ”’   ”  ”“"”’" Œ C]]@C€? •"   ’"”  $ ’"”’   %’"”’”!   ”  ”  ”“ ”’  ”  ”“" ”’”!   ”  ”’  ”  ”“ ”’”!%  A¬2*!%A¨2*! A¤2* ”  5”“"’! *„! *€" J ”  ”“" ’! 8ü 8€  J %”  ”“"’8„ @ ”  ”“"” =  ”  ”“"”’ :  ” ”“" ”’! ? ” < ”’ 9 ”’! > ” ; ”’ 8 ”’! ! “! I ”  ”“"” F  ”  ”“"”’ C  ” ”“" ”’! H ” E ”’ B ”’! G ” D ”’ A ”’!  ’! \A€ q@ Z( (¼Atj" Q 6 ”“8  P 6 ”“8  O 6 ”“8  8  “8   “8 ]A€ q@ Z( (ÀAtj" R 7 ”’8 T 7 ”’8 S 7 ”’8 8 # ’8 " ’8 Ô4} (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! ) (" ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à!! *Ü!" *Ø!# *Ô! *Ð!$ *Ì!% *È!& *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!' *x *t *p *l *h *d *`! *\!( *X! *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!- * !. *!/ *! *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü!) *Ø!0 *Ô!1 *Ð!2 *Ì!3 *È!4 *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!5 *x *t *p *l *h *d *`!6 *\!7 *X!8 *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!9 * !: *!; *! *! *! * ! * * * '8H 58L &8P %8T $8X 8\ #8` "8d !8h 8l 8p 48t 38x 28| 18€ 08„ )8ˆ 8Œ 8� 8” # CzD”") *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!!!!!!!!""$ "%" "” " "!”“” "& ""” "# ”“”’ "' # !” "”“”’^:´ AÄj"A  AG6d A  AG6¬  *$" ” * "”“ *"”’ *(" ”’8¼ ” ”“ ”’  ”’8À ”  ”“ ”’  ”’8Ä ” ”  ”’ ”’“8È  * “" ” * (“"”“ * “"”’!   ”  ”“ ”’"” ” ”“ ”’" ”“C@”’8°  ” ”“C@”’8´ ”  ”“C@”’8¸  *@" ” *<"”“  *8" ”’ *D" ”’8Ø ”  ”“  ”’ ”’8Ü  ”  ”“  ”’ ”’8à  ”  ”  ”’ ”’“8ä  *4 6“" ” *0 7“"”“  *, 8“" ”’!   ”  ”“  ”’" ” ”  ”“  ”’" ”“C@”’8Ì  ”  ”“C@”’8Ð  ”  ”“C@”’8Ô ; /“8è : .“8ì 9 -“8ð *À"Aˆ2*"” *Ä"A„2*" ”“ *È" A€2*" ”’!  *¼" ”  ”“ ”’" ”   ” ”“ ”’"”“C@”’!  ”  ”“C@”’!  ” ”“C@”’! *Ü" ” *à" ”“ *ä" ”’! *Ø" ” ”“  ”’"”   ” ”“  ”’"”“C@”’!  ” ”“C@”’!  ” ”“C@”’! -‚@ C€?} )  ”  ”“" ”  ” ”“" ”’ ”  ”“" ”’"]@C€? ‘•" ”!  ”!  ”!   C! C!C " $ ” # ”’ " ”’”  & ” % ”’ ! ”’”’ ' ” ”’  ”’”’"•C C^8ì 8ô 8ø 8ü -ƒ@ *Ü" *Ä" ” *à" *À"”“ *È" *Ø"”’ *ä" *¼"(”“" ” (”  ”“  ”’  ”“" ”’  ”  (”“  ”’  ”“" ”  ” ( ”  ”’ ”’’" ”’•‘! }  ”  ”“" ”  ” ”“" ”’ ”  ”“" ”’" # CzD”^@C€? ‘•" ”! ”! ”!   C!C! C ! C€? ”  ”“”’" $ ” #   ” ”“”’"”’ "  ” ”“”’" ”’”  & ” % ”’ ! ”’”’ ' ” ”’  ”’”’" •C C^8ð  8¼  8À  8Ä -´@AÐ2*! AÌ2*!AÈ2*! AÄ2*! AÀ2*!A¼2*!A¸2*! A´2*! A°2*8È  8Ì  8Ð  8Ô  8Ø  8Ü  8à  8ä  8è  $ & ' # % " ! ,!!!!!!!!"8È  8Ì  8Ð  8Ô  8Ø  8Ü  8à  8ä  8è  *ø! *!CCC *ô" C[  ’  CÛÉ@”" ”’! C€?  ” ”" C€?’•! • ”  !,!+"*8ô  +8ø  ,8ü -”E@A¬2*! A¨2*! A¤2*8Ä 8È 8ÌA¬2*! A¨2*! A¤2*8Ü 8à 8äA¬2*! A¨2*! A¤2*8Ð 8Ô 8Ø C8ð C8è C8ì ê /} *H! *L! *p! *l! *h! *d! *`! *\! *X!! *T!" *P!# *”!$ *�!% *Œ!& *ˆ!' *„!( *€!) *|!* *x!+ *t!, (8!3 AÄj"4(d"AF#  3( Atj "* ]* ]*!6 ]*!7 ]*!/ $ *Ä" ” # *À"”“ " *¼" ”’ *È" "”’""! ]*4" *à" ” ]*8" *Ü"”“ ]*<"" *Ø"”’ *ä" ]*0"0”’!  ” 0 ”“  ”’  ”’"  ” $ ”“  ”’ #”’"1” 0 ”  ”“  ”’  ”’" # ”  ”“  ”’ $”’"2”“  ”  ” $ ”’ # ”’“" ”’  ” 0 ”  ”’  ”’“" ”“!  ”  1”“  ”’  2”“!  2”  ”“  ”’  1”“!  ” ” 2 ”’ 1 ”’’! !Q -´A ^-€A ^-� A ^-ƒ A ^-‚ @ G P’ F O’ E N’ D M’ C L’ B K’ A J’ @ I’ ? H’!-!,!+!*!)!(!'!&"%!. -!R ,!S +! *! )! (! '! &! 6 3“! 7 4“!! / 5“!A¬2*!A¨2*!A¤2*! ^-€@ Q    *˜ *œ *  *¤.!\!["Z! 2 \" ” 1 [" ”“  ”’! ^*È  ^*ô"  2 " ” 2 ”“  ”’"” 1 1 ” " ”“  ”’"”“C@”’Œ”’" ” ^*Ô !  1 ” " ”“C@”’Œ”’"”’ ^*à   " ” 2 ”“C@”’Œ”’" ”’! ^*Ð ” ^*Ü ”’ ^*è ”’! *Ð" ^*øŒ" ” ^*ü" ”“" ’! *Ø! *Ô"  ^*Ì ” ^*Ø ”’ ^*ä ”’” ”“" ’! 8Ð 8Ô  ” ”“"’8Ø !  ”  ”’ S ”’’!!  ’!  ’!   ”  ”’ R ”’’!  ’!  . ”  ”’ ”’’! ^-�@ *Ü ^*È  *€“"” ^*Ô ! *„“"”’ ^*à  *ˆ“"”’“" ” *à ^*Ì ” ^*Ø ”’ ^*ä ”’“" ”’ *ä ^*Ð ” ^*Ü ”’ ^*è ”’“" ”’‘" *ü *”"^@  •" ”!  ”!  ”! *ä“! *à“! *Ü“! 8Ü 8à 8ä !  ”  ”’ S ”’’!!  ’!  ’!   ”  ”’ R ”’’!  ’!  . ”  ”’ ”’’! ^-ƒ@ . ^*¼"""”  ^*À"."”’ ^*Ä" ”’!  ”  ”’ R ”’!  ”  ”’ S ”’! C€?! C! C]} Œ"C[ Œ"C[q}CCÛI@CÛÉ? Œ  C]"_" Œ  C]"`"  ^    ]"]•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  ]"“  `"Œ  _  C[ C[q}CCÛI@CÛÉ? Œ  C]"_" Œ  C]"`"  ^    ]"]•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  ]"“  `"Œ  _ " ’" *Œ“"C^}  * ” } *¤! *¨! *  ”C ! *è"Œ!  Œ ^*ð”  "” ! .”’  ”’ ’” ”“"   ^"’8è   ”’! !  ”’!   ”’!   ”’!   .”’!   "”’!C€?!C! *� “"C^}  * ” } *¤! *¨! *  ”C ! *ì" Œ! Œ ^*ð”   "” .”’  ”’“”  ”“"  ^"’8ì  ”“!!  ”“!   .”“!   "”“!   ”“!   ”“! ^-‚@ *ü! *ø! *ô!C€?! C! *” Q Q”  ”’‘"C[  ”  ”’‘"C[q}CCÛI@CÛÉ? Œ  C]"_" Œ  C]"`"  ^    ]"]•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  ]"“  `"Œ  _ C@”“"C^}  * ” } *¤! *¨! *  ”C ! *ð"Œ!  Œ ^*ì”   ” ! ”’  ”’“”  ”“"   ^"’8ð   ”“!   ”“!   ”“! 5 G ” D ”’ A ”’“!5 3 E ” B ”’ ? ”’“!3 4 F ” C ”’ @ ”’“!4 7 O ” L ”’ I ”’’!7 6 N ” K ”’ H ”’’!6 / P ” M ”’ J ”’’!/ $ *¸" ” # *´" ”“  *°"”’!  $  ” $ ”“  ”’"” # # ”  ”“  ”’"”“C@”’!  *Ô" ”  *Ð"”“  *Ì"”’!   0 ”  ”“  ”’"”   ” 0 ”“  ”’"”“C@”’! W 7 0 ”  ”“C@”’"” 6   ” 0 ”“C@”’"”“’ V“ 4  ” $ ”“C@”’"” 3 # ”  ”“C@”’"”““!A¬2*!A¨2*!A¤2*! C! X / ” 7 ”“’ T“ 5 ” 4 ”““! Y 6 ” / ”“’ U“ 3 ” 5 ”““! *Ä" } * " > “  “’ *è’”!  < :“  “’ *ð’”!  = ;“  “’ *ì’”! *¨! *¤C€? Œ":} *l" ”  *T"”“! *p"”  *X"”“!; *h”  *P"”“!  ” *`"”“!  ” *d"”“!<  ” *\”“!=  *�"”  *x"”“!  *”"”  *|"”“!>  *Œ”  *t"”“!  ”  ”“ ”  ”  ”“ ”“  *„"”  ”“ ”  *ˆ"”  ”“ ”“’ 8 9’"’! = ”  ”“  ”  *€”“" ”  ”  ”“" ”“’ ’!  ” < ”“  ”  ”  ”“" ”“’! ; ”  ”“ > ”  ”“’ ’" ” < ” = ”“  ”  ”“’" ”“!  ” ” ; ”“  ” > ”“’" ”“!# CzD” ” ”’  ”  ”“"”’"Œ  C]]@C€? •"   ’"”   ’"”’  ’"”’”!   ” ”  ”“ ”’ ” ”“" ”’”!   ”  ”’ ” ”“ ”’”!   A¬2*!A¨2*! A¤2* ”  ”“"’! : ”  *Ì"”“! *È" : ”  ”“"’! 8Ä 8È  ’8Ì G  ”  ”“"” D  ” ”“"”’ A ”  ”“"”’! F ” C ”’ @ ”’! E ” B ”’ ? ”’! 5 “! P  ”  ”“"” M  ”  ”“"”’ J  ”  ”“"”’! O ” L ”’ I ”’! N ” K ”’ H ”’! / ’! bA€ q@ a( (¨Atj" V 8 ”“8  U 8 ”“8  T 8 ”“8  8  4 “8  3 “8 cA€ q@ a( (¬Atj" W 9 ”’8 Y 9 ”’8 X 9 ”’8 8 7 ’8 6 ’8 Ü4} (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! ) (" ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü! *Ø! *Ô!! *Ð!" *Ì!# *È!$ *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!% *x *t *p *l *h *d *`!& *\!* *X!+ *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!, * !- *!. *! *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è!' *ä!( *à!) *Ü!/ *Ø!0 *Ô!1 *Ð!2 *Ì!3 *È!4 *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!5 *x *t *p *l *h *d *`!6 *\!7 *X!8 *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!9 * !: *!; *! *! *! * ! * * * %8H 58L $8P #8T "8X !8\ 8` 8d 8h 8l 8p 48t 38x 28| 18€ 08„ /8ˆ )8Œ (8� '8” *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!!!!!!! ! " "' " "!” "" "#”“” "( " "$” "% !”“”’ ") % #” $”“”’# CzD”]:´ A° j"A  AG6@ A  AG6D  *$"”  * "”“  *"”’ *(" ”’8T   ” ”“  ”’  ”’8X  ” ”“  ”’  ”’8\   ” ” ”’  ”’“8` * &“"”  * *“"”“  * +“"”’!   ” ”“  ”’"&”   ” ”“  ”’"”“C@”’8H    ” &”“C@”’8L   ” ”“C@”’8P   *@"”  *<" ”“  *8" ”’ *D" ”’8p   ”  ”“  ”’  ”’8t   ”  ”“  ”’  ”’8x   ”  ”  ”’  ”’“8|  *4 6“"”  *0 7“" ”“  *, 8“" ”’!    ”  ”“  ”’"”   ”  ”“  ”’" ”“C@”’8d   ”  ”“C@”’8h    ”  ”“C@”’8l  ; .“8€  : -“8„  9 ,“8ˆ  ' ( ) % " $ # !,!!!!!!! ! " 8Œ  8�  8”  8˜  8œ  8   8¤  8¨  8¬ *C[@ *¨! *¤!  * 8  8  8  *! *! CCC *" C[   ’ CÛÉ@”"”’! C€? ” ”"C€?’•!  •  ” !!"8  8  8 *C[@ *¨! *¤!  * 8  8  8$  * ! *! CCC *" C[   ’ CÛÉ@”"”’! C€? ” ”"C€?’•!  •  ” !!"8  8  8$ -”E@A¬2*!A¨2*! A¤2*8(  8,  80A¬2*!A¨2*! A¤2*84  88  8< ù-} *H! *L! *p! *l! *h! *d! *`! *\! *X! *T! *P!! *”!" *�!# *Œ!$ *ˆ!% *„!& *€!' *|!( *x!) *t!* (8!1 A° j"/(@"AF#  1( Atj "* *\!? *X!@ *T!A *P!B *”!C *�!D *Œ!E *ˆ!F *„!G *€!H *|!I *x!J *t!K (8!\ A° j"Z(@"AF#  \( Atj "* ”’ ; ”’ @ ” = ”’ : ”’!!"“! * “!* + “!+ !, $ K ” H ”’ E ”’ J ” G ”’ D ”’ I ” F ”’ C ”’!!"’! / ’!/ . ’!. !$  Z*P" ” Z*L"”“  Z*H"”’!    ”  ”“  ”’"” ”  ”“  ”’"”“C@”’  ”  ”“C@”’  ”  ”“C@”’!!"!  Z*l" ” Z*h"”“  Z*d"”’!    ”  ”“  ”’"” ”  ”“  ”’"”“C@”’  ”  ”“C@”’  ”  ”“C@”’!!"! -" / "” . "”“’ !" + "” * "”“’“!A¬2*!A¨2*!A¤2*! C€?!1C! A Z*C^ @ Z*" 5 "“  “’ Z*€’”!  4 X“  “’ Z*ˆ’”! Z*!1 Z*!  Y“  “’ Z*„’”! M $ ” / ”“’ L , ” + ”“’“!5 N . ” $ ”“’ #" * ” , ”“’“!) Z*("0 1Œ"4}  *h”  *l" ”  *p"”!!"  *P"”  *T"”  *X"”!!"“  “  “!Q!P"O!  ”  ”  ”!!"  *\”  *`"#”  *d"”!!"“  “  “!T!S"R!  *Œ”  *�"!”  *”"”!!" " *t"-”  *x" ”  *|"”!!"“  “  “!W!V"U!  #”  ”“ ”  ”  ”“ ”“  *„"”  !”“ ”  *ˆ"”  ”“ ”“’ 2 3’"!’! ” S" ”“  -”  ”  ”!!"  *€”  ”  ”!!"“  “  “!!"" ” " ”“’ !’!  ” T" ”“  ” " ”“’!" Q" ” ”“ W" ”  ”“’ !’"! ”  ” ”“  ” ”“’" ”“! " ” P ”  ”“ V ”  ”“’" ”“!## CzD” ” #”’ " ” ! "”“"-”’"Œ  C]]@C€? •"   ’" ” # ) ’"”’ - 5 ’"”’”!  # ” ” " "”“ ”’ "” ”“" ”’”!  - ” ”’ !” ”“ ”’”! !   A¬2*!A¨2*! A¤2* ”  0”“" ’! 4 ”  Z*0"”“! Z*," 4 ”  ”“"’! Z 8( Z 8, Z  ’80 , B  ”  ”“"” ?  ”  ”“" ”’ <  ”  ”“"”’ A ” > ”’ ; ”’ @ ” = ”’ : ”’!!"“! $ K  ”  ”“"” H  ”  ”“"”’ E  ”  ”“"”’ J ” G ”’ D ”’ I ” F ”’ C ”’!!"’! ]A€ q@ \( Z(@Atj" 2 ”“8  2 ”“8 L 2 ”“8 8 + “8 * “8 ^A€ q@ \( Z(DAtj"  3 ”’8 N 3 ”’8 M 3 ”’8 8 / ’8 . ’8 ê4} (! (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@ ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è!8 *ä!9 *à!* *Ü!+ *Ø!, *Ô!- *Ð!. *Ì!/ *È!3 *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!4 *x *t *p *l *h *d *`!: *\!; *X!< *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!= * !) *! *!' *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è!5 *ä! *à!6 *Ü!7 *Ø! *Ô! *Ð! *Ì! *È! *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|! *x *t *p *l *h *d *`! *\! *X! *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$! * ! *! *!( *! *! * ! * * * 48H 8L 38P /8T .8X -8\ ,8` +8d *8h 98l 88p 8t 8x 8| 8€ 8„ 78ˆ 68Œ 8� 58” *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!&!%!$!#!"!!! !""3 ""* &"+” #", %"-”“” "4 , $".” !"/ +”“”’ "5 / -” * .”“”’# CzD”]:´ Aà j"A  AG6\ A  AG6`   *$"”  * "”“ ' *" ”’ *(" ”’8p   ”  ”“ ' ”’ ”’8t   ”  ”“ ' ”’ ”’8x  ' ”  ”  ”’  ”’“8|  * :“"”  * ;“"”“ ' * <“" ”’!    ”  ”“ ' ”’" ”   ”  ”“ ' ”’" ”“C@”’8d    ”  ”“C@”’8h    ”  ”“C@”’8l   *@"”  *<"”“ ( *8" ”’ *D" ”’8Œ   ”  ”“ ( ”’ ”’8�   ”  ”“ ( ”’ ”’8”  ( ”  ”  ”’  ”’“8˜  *4 “" ”  *0 “"”“ ( *, “" ”’!    ”  ”“ ( ”’" ”   ”  ”“ ( ”’" ”“C@”’8€    ”  ”“C@”’8„   ”  ”“C@”’8ˆ   “8œ   )“8    =“8¤ *p" ”!C€? *t" ”" *x" ”" ’C@”“!  ”"  *|"”" ’C@”!  ”"  ”"“C@”! “C@”!6C€?  ’C@”“!7  ”"  ”" ’C@”! ’C@”! “C@”!C€?  ’C@”“! !) *Œ" ”! *�" ”! *”!  ”  *˜" ”’C@”!  ”  ”“C@”! C€? ’C@”“! C€? *H *L’ *h" ” *l" ”“" *P ” *\ )” *d" ”“" ”’ *h ”  )”“" ”’” *T ” *` ”’ *l ”’”’ *X ” *d ”’ *p ”’”’’ *€" ” *„" )”“! *ˆ" )” ”“!  ” ”“" *t ” *€ ”’ *Œ ”’” *x ” *„ ”’ *� ”’”’  *| ” *ˆ ”’ *” ”’”’’"•C C^8¬  *4! *!CCC *0"C[  ’  CÛÉ@”"”’! C€?  ” ”"C€?’•!  •  ”  !2!1"08´  18¸  28¼  *X! *!CCC *T"C[  ’  CÛÉ@”"”’! C€?  ” ”"C€?’•!  •  ”  !2!1"08À  18Ä  28È C€?  3 ” / ”’ . ”’” 4 ” * ”’ - ”’”’ 5 ” , ”’ + ”’”’"•C C^8¨ C€?C€?  ” ”’ ”’" ”  6” 7”’ ”’Œ" ”’"•C C^" Œ" 6” ”“!  ” ”“"”  7” ”“"”“”" 3 ” /  ”  ”“”"”’ .   ” ”“”" ”’”  4 ” * ”’ - ”’”’ 5 ” , ”’ + ”’”’" •C C^8° -”E@ C8 C8 C8 C8 C8 C8 C8 C8$ C88 C8< C8@ …a} *H!6 *L!7 *p!C *l!D *h!E *d!F *`!G *\!H *X!I *T!J *P!K *”!L *�!M *Œ!N *ˆ!O *„!P *€!Q *|!R *x!S *t!T (8!c Aà j"(\"AF#  c( Atj "* !? a 9’" 0” 8 5’" .”“” #  1”  /”“”’ $  ”  !”“”’  ” b "’"" 0”“” #  -” " 1”“”’ $  ” " ”“”’ " .”  ”“” # " /”  -”“”’ $ " !”  ”“”’!!"!  0”  .”“” #  1”  /”“”’ $  ”  !”“”’  ”  0”“” #  -”  1”“”’ $  ”  ”“”’  .”  ”“” #  /”  -”“”’ $  !”  ”“”’!4!3"2! *" ”!#  ”!$  !”!"C€? ”" ”"’C@”“  ”" ”"5’C@”  ”"8 ”"9“C@”  5“C@”C€?  ”" ’C@”“ ”"  ”"5’C@” 8 9’C@”  5“C@”C€?  ’C@”“! !!!!!!!! ! ! ! -Ï} ,  0”  .”“”  ”’ *8 *<’ *@“"C€?  ”  !”’  ”’" ”  -”  /”’  1”’Œ" ”’"•C C^" Œ" -”  ”“!   1”  ”“"”   /”  !”“"”“””’ ,  ”  0”“”  ”’    ”  ”“””’ ,  .”  ”“”  ”’    ”  ”“””’!'!&"%! '! &!  ” ”“ ”’  ”“ ”  ”“ ”’  ”“  ” ”“ ”’  ”“ ”  ”  ”’  ”’’!+!*!)"(! +"AŒ2*"” )" A”2*"” *"!A�2*"”“’!   ” ” ”“’"”   ” ! ” ”“’"”“ ”’! # ,    ”  ”“ ”’"”   ”  ”“ ”’"”“C@”’   ”  ”“C@”’   ”  ”“C@”’!'!&"%C?”” " A˜2*"” A 2*"” !Aœ2*"”“’!   ” ” ”“’" ”   ” ! ” ”“’"”“ ”’!    ”  ”“ ”’"”   ”  ”“ ”’"”“C@”’   ”  ”“C@”’  ”  ”“C@”’!B!A"@C?””’ *" ”’ , &C?””  AC?””’  ”’ , 'C?””  BC?””’  ”’!'!&"%’! $ '’! " &’!  ! dA€ q@ ! ! (\" c( O@ c( Atj" Z 6 ”“8  Y 6 ?”“8  X 6 >”“8 W K  ’"” H  ’"”’ E  ’"”’ J ” G ”’ D ”’ I ” F ”’ C ”’!!"“! (\" c( O@ c( Atj" 8  V “8  U “8 eA€ q@ 4! 3! (`" c( O@ c( Atj" ` 7 ”’8  _ 7 ?”’8  ^ 7 >”’8 ] T ’"” Q  ’" ”’ N  ’"”’ S ” P ”’ M ”’ R ” O ”’ L ”’!!"’! (`" c( O@ c( Atj" 8 \ ’8 [ ’8 —8j} *H!F *L!G *p!> *l!? *h!@ *d!0 *`!1 *\!2 *X!A *T!B *P!C *”!3 *�!4 *Œ!5 *ˆ!6 *„!7 *€!8 *|!9 *x!: *t!; (8!o Aà j"m(\"nAF#  o( nAtj "n* ”’“!  B ” 1 ”’ ? ”’“!  ; X”"” 8 ”’ 5 ”’’!  : ” 7 ”’ 4 ”’’! 9 ” 6 ”’ 3 ”’’!  L”  ”“!= V J”  L”“!P H L” V O”“!$  O” H J”“!/ L g” J e”’ O f”’!Q m-Í@ m m*" m*¸Œ m*¬” L < Z“” J \ R“”’ O [ Y“”’ / ” $ ”’ P ”’’ K ” = ”’ M ”’“ m*´ Q”’” m*¼ ”“" ’8 Y F O”"”“!Y R F J”"”“!R Z F L”"”“!Z  C K”"” 2 =”"”’ @ M”" ”’“!  A ” 0 ”’ > ”’“!  B ” 1 ”’ ? ”’“! [ G ”’![ \ G ”’!\ < G ”’!<  ; /”"” 8 $”"”’ 5 P”"”’’!  : ” 7 ”’ 4 ”’’! 9 ” 6 ”’ 3 ”’’! pA m-ÏE@ m * m*P”"Œ"  m*8" m*ÄŒ m*°”   “”  T ” X ”“”"  “”’  X ” _ ”“”" “”’ m*À C[ C[q}C Œ  C]"s"! Œ  C]"n" !CÛI@CÛÉ?  ]    ^•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  ^"“  s"Œ  n " m*L“”’” m*È ”“’"  ^  ]88  C m*8 “" ”"” 2  ”" ”’ @  ”""”’“!  A ” 0 ”’ > ”’“!  B ” 1 ”’ ? ”’“!  ;  ”"” 8 ”’ 5 ”’’! 9 ” 6 ”’ 3 ”’’!  : ” 7 ”’ 4 ”’’! m-Ð}C€?! m*D“"C^}  * ” } *¤! *¨! *  ”C ! m m*<" Œ m*°”   “”   “”’   “”’ ’”  ”“’"C C^8<  C m*< “" ”" ” 2  ”"”’ @  ”"”’“!  A ” 0 ”’ > ”’“!  B ” 1 ”’ ? ”’“!  ;  ”" ” 8 ”’ 5 ”’’!  9 ” 6 ”’ 3 ”’’!  : ” 7 ”’ 4 ”’’! C€?!C! m*H “"C^}  * ” } *¤! *¨! *  ”C ! m m*@" Œ m*°”   “”  “”’   “”’ ’”  ”“’"C C^8@  C m*@ “"" ”"” 2  ”"”’ @  ”"”’’!  A ” 0 ”’ > ”’’! B ” 1 ”’ ? ”’’! ;  ”"” 8  ”"”’ 5  ”"”’“! : ” 7 ”’ 4 ”’“!  9 ” 6 ”’ 3 ”’“  ! m-Î@C€?!. Q m*(“"C^}  * ” } *¤!. *¨!` *  ”C ! m m* "" .Œ m*¬” L < Z“” J \ R“”’ O [ Y“”’ / ” $ ”’ P ”’’ K ” = ”’ M ”’“ ’” ` ”“’"C C^8 Z F m* “" L”"”“! Y F  O”"”“! R F  J”"”“!  C  K”"” 2  =”" ”’ @  M”" ”’“!  A ” 0 ”’ > ”’“!  B ” 1 ”’ ? ”’“! [ G ”’! \ G ”’! < G ”’!  ;  /”"” 8  $”"”’ 5  P”"”’’! 9 ” 6 ”’ 3 ”’’!  : ” 7 ”’ 4 ”’’! C€?!C!R m*, Q“"C^}  * ” } *¤! *¨!R *  ”C ! m m*$"" Œ m*¬” L  “” J  “”’ O  “”’ K ” = ”’ M ”’’ / ” $ ”’ P ”’“ ’” R ”“’"C C^8$  F m*$ “"" L”"”’!Z  F  O”"”’!Y  F  J”"”’!R  C  K”"” 2  =”" ”’ @  M”"<”’’!  A ” 0 ”’ > <”’’!  B ” 1 ”’ ? <”’’!  G ”“![ G ”“!\  ;  /”"<” 8  $”"”’ 5  P”"”’“! : <” 7 ”’ 4 ”’“! 9 <” 6 ”’ 3 ”’“!  G ”“!< pE@ m-ÏAF}C!C!` } *¨!` *  L X” J _”’ O T”’”! *¤C€? ŒC€? _ O” T J”“" C ;’ B :’ A 9’ 2 8’ 1 7’ 0 6’ @ 5’ ? 4’ > 3’!-!,!+!*!)!(!'!&"% ” ( T L” X O”“""”’ + X J” _ L”“""”’”  & ” ) ”’ , ”’”’  ' ” * ”’ - ”’”’"•C C^”  “ ”  “ ”’ “ ”’ ’” ` m*"”“! m  ’8   C ” 2 ”’ @ ”’”“!   A ” 0 ”’ > ”’”“!   B ” 1 ”’ ? ”’”“!   ; ” 8 ”’ 5 ”’”’!   : ” 7 ”’ 4 ”’”’!  9 ” 6 ”’ 3 ”’”’C!C!C€?!=C!` @ * " ”! *¨!` *¤!=  E”! AŒ2*"” A”2*"” A�2*"”“’! "  ” E ” ”“’"” #  ”  ” E ”“’"”“ I ”’!  " ! ” " ”“ I ”’"” # # ” ! ”“ I ”’"”“C@”’C?”! A˜2*" ” A 2*"” Aœ2*"”“’! "  ” E ” ”“’"/” #  ”  ” E ”“’"”“ I ”’!E " ! ” " ”“ I /”’" ” # # ” ! /”“ I ”’"”“C@”’C?”!K  # ” ! ”“C@”’C?”"M!  C ;’ B :’ A 9’ 2 8’ 1 7’ 0 6’ @ 5’ ? 4’ > 3’!-!,!+!*!)!(!'!&"%" ” (" M”’ +"Q  ! ” " ”“C@”’C?”"$"”’”  &" ” )" M”’ ," ”’”’ $ '" ” *" M”’ -" ”’”’!  # E” ! ”“C@”’C?”"P! m* ! m m*" =Œ"   “" ”  “" M”’ “" $”’ ’!  K K”  P”’" Q / ! ” " E”“C@”’C?”" ”’”   K”  P”’"  ”"T’”’  K”  P”’"  ”"=’”’"”   Q ”’” M  T’”’ $  =’”’" ”“"# CzD”^@C€? •" ” ”  ”  K”  P”’ ”’ ’"”“ Œ ” ”  ” ”’  CC !l"k” ` ”“"’8 m  l” ` ”“"’8  C  ”  K”’"” 2  M”  P”’"”’ @  $”  ”’"”’“!  A ” 0 ”’ > ”’“!  B ” 1 ”’ ? ”’“!  ; ” 8 ”’ 5 ”’’!  : ” 7 ”’ 4 ”’’! 9 ” 6 ”’ 3 ”’’ ! C!C!.C€?!=C! @ * " g”  e”’ ^ f”’”!   g” S e”’ ] f”’”!. *¨! *¤!= F G’" c C c” 2 j N” W ]”“""”’ @ d”’”  B c” 1 ”’ ? d”’”’ d A c” 0 ”’ > d”’”’’  ]” H S”“"$ ; $” 8 H ” V ]”“""”’ 5 V S”  ”“""”’”  : $” 7 ”’ 4 ”’”’  9 $” 6 ”’ 3 ”’”’’! m*!N m m*" =Œ"  c C h”" 2 j D” W ^”“"W"”’ @ i”"’”  B h”" 1 ”’ ? i”" ’”’ d A h”" 0 ”’ > i”"’”’ $ ;  ^” H ”“"/"” 8 H ” V ^”“"E"”’ 5 V ”  ”“"Q"”’”  : ” 7 ”’ 4 ”’”’  9 ” 6 ”’ 3 ”’”’’!D  <  H” ”“’ Z“  b f’"”  a e’"”““" ” S \ V”  H”“’ R“  U g’"”  ”““"”’ ] [  ”  V”“’ Y“  ”  ”““"”’ .’!U   h  2 W”’ ’” W 1 W”’ ’”’ i  0 W”’ ’”’’ / ; /” 8 E”’ 5 Q”’” E : /” 7 E”’ 4 Q”’”’ Q 9 /” 6 E”’ 3 Q”’”’’"” D D”“"# CzD”^@C€? •" ” U”  D” ”  ”’ ^ ”’ ’"”“ Œ D” U”  ” ”’  CC !l"k”  ”“"’8 m N l”  N”“"’8 Y F  ]”  ^”’"a”“!b R F  S”  ”’"U”“!S Z F  ”  ”’"”“! C  c”  h”’"” 2  ”  W”’"”’ @  d”  i”’"”’! B ” 1 ”’ ? ”’! A ” 0 ”’ > ”’!  “! ;  $”  /”’"H” 8  ”  E”’"”’ 5  ”  Q”’"”’! : H” 7 ”’ 4 ”’! 9 H” 6 ”’ 3 ”’!  ’! qA€ q@ o( m(\Atj" 8 S8 b8 8  “8  “8 rA€ q@ o( m(`Atj" < G ”’8 \ G U”’8 [ G a”’8 8  ’8 ’8 ¥ } (D" l j"Aj! Aj" l j"Aj! ²! ²! *@! *8" ²"” *<" *," *4"  (`"Ak(AvO@ Atj/³”’”  ” Aj²"”  Ak(AvO@ Atj/³”’”  ” ”  Ak(AvO@ Atj/³”’”  ” ”  Ak(AvO@ Atj/³”’”  ” è}  (h"Ak(O@  j-! Au" (D"Akm!   Aklk"  lj"Aj! Aj l j!  P!!!!!!! ! ! ! ! "! ! ! ! ! ! ! ! ! ! ! ! Aq} ! ! ! ! Aj! !  ! ! ! ! ! ! ! ! !  ! -X@ ! ! ! ! ! ! ! ! ! ! ! Aªq AqAtr AÄqAvr! !              �}~ (0"(L"( E@ (("E@ (! -! *�Œ! ! AJ   (AvO@ ( Atj( !@  AÿÿqH@  A°lj! AJ  (  !  A� lj! ($! ((! (,! ( "  (HA !  (HA !  (HA !  (HA !A E   (L AJ! A!@ H@  AŒlj" " A� l j"*À" *0” *Ð" *`”’8ð   *@”  *p”’8ô   *P”  *€”’8ø *€8ì *à8ü *ð8€ *€8„ (ˆ! (ÀA!@  H@ A8lj" AÐj AÐlj"*p8  *€8 Aj!  Aj!  (DA€€Àq@A!@  H@  AŒlj"(ˆ! A!@ H@  A8lj"*$ ] * C^A @ ( (8"Av" ("Ak(AvO@  Atj)B A?q­†„! Ak(AvO@  Atj 7A  Aj!  Aj!  A !A E   (L AJ! A!@ H@  AŒlj" "  A� ljAj"*À" *0” *Ð" *`”’8ð   *@”  *p”’8ô   *P”  *€”’8ø *€8ì *à8ü *ð8€ *€8„ (ˆ! Ak(ÀA!@  H@ A8lj" AÐj AÐlj"*p8  *€8 Aj!  Aj!  (DA€€Àq@A!@  H@  AŒlj"(ˆ! A!@ H@  A8lj" *$ ] * C^A @ ( (8"Av" ("Ak(AvO@  Atj)B A?q­†„! Ak(AvO@  Atj 7A  Aj!  Aj!  A ! A E   (L AJ! A!@ H@  AŒlj""  A� ljAj"*À" *0” *Ð" *`”’8ð   *@”  *p”’8ô   *P”  *€”’8ø  *€8ì  *à8ü  *ð8€  *€8„ (ˆ! Ak(ÀA!@  H@  A8lj" AÐj AÐlj"*p8 *€8 Aj!  Aj!  (DA€€Àq@A!@  H@  AŒlj"(ˆ!A!@ H@  A8lj"*$ ] * C^A @ ( (8"Av" ("Ak(AvO@  Atj)B A?q­†„! Ak(AvO@  Atj 7A  Aj!  Aj!  A ! AA E   (L AJ! A!@ H@  AŒlj""  A� ljA j"*À" *0” *Ð" *`”’8ð   *@”  *p”’8ô   *P”  *€”’8ø  *€8ì  *à8ü  *ð8€  *€8„ (ˆ! A k(ÀA!@  H@  A8lj" AÐj AÐlj" *p8  *€8 Aj!  Aj!  (DA€€Àq@A!@ H@  AŒlj"(ˆ!A!@  H@  A8lj"*$ ] * C^A @ ( (8"Av" ("Ak(AvO@  Atj)B A?q­†„! Ak(AvO@  Atj 7A  Aj!  Aj!  A A A A  ! Aj!  j! Aj!   : Å  } Ak(AnE@ -! -! -! -! * ! *! *! *! Ak(AnAM@ -'! -&! -%! -$! * !  *"”  *"”’  *"”’ “!  ”  ”’  ”’ “"C_@A! Ak(AnE@ 8 8 8 8 : : : : C_@ "Aj!  Ak(AnO@ Alj" 8  8  8  8  :  :  :  :  ”C]  Ak(AnO@ Alj"C€?   “•"“" ”  ”’8   ”  ”’8   ”  ”’8  Ak(AnO@ Alj" C^ ! ! !  ! ! !  :  :  :  : Aj  ô } (¨! ( ! (œ!  (¤"Ak(AvO@  Atj"*  *! *! *!  Ak(O@  j-"!@  "Ak(AvO@  Atj"- -! - Ak(Av -""M@  Atj"- -! - - Aÿq" "Ak(A nO@  A lj"*! *! *! Ak(A n "M@ }  A lj"* “" ” * “" ”’ * “" ”’" # CzD”^@C€? ‘•" ”! ”! ”!   C!C! C ! ”  ”“"  ” ”“" ” ”“" ”  ”’ ”’SAH@A " G A µ$ }#3" Ak(AvE@ ("E@ (¨! ( ! (œ! (¤"Ak(AvO@  Atj"* !  *"”  *"”“ *"”“!     ”  ”“ ”“"”   ”  ”“ ”“"”“C@”’   ”  ”“C@”’   ”  ”“C@”’ ^! (! ( ! (œ!  (¨"Ak(O@  j-"!C€?  ”"  ”"’C@”“!!  ”""  ”"#’C@”!  ”"$  ”" “C@”!C€?  ”" ’C@”“!  ”"  ”"’C@”!C€?  ’C@”“!  “C@”! $ ’C@”!$ " #“C@”!"@ " Ak(AvO@  Atj"- - - -" Ak(AvO@  Atj" - - - -" Ak(A nO@  !  A lj" *"” " *"”’ $ *" ”’ ’"#”   ”  ”’  ”’ ’" ”’   ”  ”’  ”’ ’"”’ “!  Ak(AnO@  Alj" #8 8 8 8 A: : A: :  G Aj"AÀHq ! (! ( ! " Ak(O@  j-"! @@ Ak(Av M@  Atj" - -! - -" Ak(AvO@  Atj"- -! - - Ak(A n M@  A lj"*! *! *! Ak(A n M@ }  A lj"* “" ” * “" ”’ * “" ”’" # CzD”^@C€? ‘•" ”! ”! ”!   C!C!C !     ”  ”“"  ”  ”“"  ”  ”“" ”  ”’  ”’    _! ! ! ! AH  " G AÀ  AÀN! (! # ! 8 8 8A!@  H@  Ak(AnO@  Alj" -! -! -! -! * ! *! *! *!  Ak(AnO@ Alj" C8 C8 C8 C8 A: A: A: A: A6  C?”" ”“8   ”“8   ”“8 8 : : : :    ]! Aj!  #C ×£;”C€@”` !A! A! " (! (!@ "AL@@ J@  j" Ak(AnO@  Ak(AnO@  Alj" (! -! -! -! -! * ! *! *!  Alj" *8  8  8  8  :  :  :  :  6 Aj!  6  #C ×£;”C€@”!A!# Œ! *" ! *"!} *""C¿] C?^r} C= ×>”! C…+¿”! C…+?” C= ×¾”’ C¿] C?^r} C= ×>”! C…+¿” C= ×¾”’! C…+?” C…+¿” C= ×¾”“! C= ×¾”! C…+?” " ”  ”’  ”’"# CzD”^@C€? ‘•" ”!  ”!  ”!   C!C!C !@ J@ Ak(AnO@  Alj"( - - - - *! *! *! * " ^E@  ”  ”’  ”’ “"C33s?” ^@ ! ! Aj!  AF@ A6  Ak(An M@  Ak(AnO@  Alj" (! -! -! -! -! * ! *! *!  Alj" *8  8  8  8  :  :  :  :  6 A6  Ak(AnO@ Ak" Ak(AnO@  Alj" (! -! -! -! -! * ! *! *!  Alj" *8  8  8  8  :  :  :  :  6  Ak(AnO@  ”! Ak!  Alj"*! *! *!C!A!A!@ H@ Ak(AnO@  Alj" * “" ” * “" ”’ * “" ”’!   ”“" ”   ”“" ”’   ”“" ”’! Ak(AnO@ C  Alj* Œ" C]"C€@” ”’"C33s?” ^@ ! ! Aj!   ] Aj" Ak(AnO@  Ak(AnO@  Alj"(! -! -! -! -! * ! *! *!  Alj" *8 8 8 8 : : : : 6 A6  Ak(AnO@ Ak" Ak(AnO@  Alj"  Alj"(! -! -! -! -! * ! *! *! *8 8 8 8 : : : : 6 Aj" Ak(AnO@ Ak! !A!C!  Alj"*"" “! *"# “! *"$ “!A!@ H@ Ak(AnO@  Alj" * “!   * “"”  * “"!”“”  ”  ”“”’   !”  ”“”’"Œ  C]"C33s?” `@ ! ! ! Aj!  AF Aj" Ak(AnO@  Ak(AnO@  Alj"(! -! -! -! -! * ! *! *!  Alj" *8 8 8 8 : : : : 6 A6  Ak(AnO@ Ak" Ak(AnO@  Alj"  Alj"(! -! -! -! -! * ! *! *! *8 8 8 8 : : : : 6 Aj" Ak(AnO@ Ak!  Alj"*! *! *!! !A!C€¿C€? C]!A!@ H@ Ak(AnO@  Alj" *!   *" “"' ”  “" ”“”  ” *" “"% ”“”’  % ” ' ”“”’”"'   #“"%  "“"(”  "“"&  #“")”“” & ! $“"&”  $“"* (”“”’  * )” % &”“”’”"%   “"  “"(”  “"  “"&”“”   !“"”  !“" (”“”’   &” ”“”’”"  %]"  ']"C33s?” ^@ ! ! Aj!  AG@  ( j" Ak(AnO@  Ak(AnO@  Alj"  Alj"(! -! -! -! -! * ! *! *! *8 8 8 8 : : : : 6 ( Aj6 8 A: : :A C8 A: A: A: A:A ‰} Œ Œ Œ!!" !  "”  "”“ ”“!      ”  ”“ ”“"”   ”  ”“ ”“"”“C@”’   ”  ”“C@”’   ”  ”“C@”’!!"   Œ Œ Œ !!! !"  ! UE@ C8 A: A: A: A:A C€?  ”"  ”"’C@”“  ”"  ”"’C@”  ”"  ”""“C@”  “C@”C€?  ”" ’C@”“  ”"  ”"’C@”  "’C@”  “C@”C€?  ’C@”“!!!!!!!!"" *"” " *"”’ " *"”’ " ” " ”’ " ”’ "" ” "# ”’ "$ ”’!!" Œ8 Œ8 Œ8 (!&A!@  ( H@  &j" ("%Ak(AnO@ % Alj" *"”  *"”’  *"”’  ”  ”’  ”’ " ” # ”’ $ ”’!!" ’8   ’8   ’8 -!% -!' -!( A -k:  (: A 'k:  %: Aj!  A: : :A «} (œ! ( ! (œ! ( "Ak(AvO@  Atj"- - -! -" Ak(AvO@  Atj"- -! - - Ak(A n M@  A lj"*! *! *! Ak(A n M@  A lj"* “! * “!# * “!$  Ak(AvO@  Atj"- - -! -" Ak(AvO@  Atj"- -! - - Ak(A n M@     $ #  A lj"*!  *"”  *"”“ ”’!    ”  ”“ ”’"#”   ”  ”“ ”’"”“C@”’   ”  #”“C@”’   ”  ”“C@”’!!" ’  ’  ’!!""# "$ "% Ak(A n M@  A lj"*!  *"”  *"”“ ”’!    ”  ”“ ”’"&”   ”  ”“ ”’" ”“C@”’   ”  &”“C@”’   ”  ”“C@”’!!" ’  ’  ’!!" #“  $“  %“-!"!!! !!!!"! ""C€?_ "C€?_ C`q C`qqE@ C8 A: A: A: A:A 8 8 8 A6 (" ("Ak(AnO@ Alj"  "’C?”8 " "’C?”8 " !"’C?”8  “”  “”’  “”’"8 A: Aÿq": A: Aÿq":  8 A:  :  :A Ö `}        !!!!!!!!!!!"!P            !+!*!)!(!'!&!%!$!#!"!!" !Q            !7!6!5!4!3!2!1!0!/!.!-",!R @ !C!B!A!@!?!>!=!!J =!K *8";”’ U"? *<"2”’ P"@ ” S"A ;”’ V": 2”’ Q"E ” T"< ;”’ W"; 2”’!b!a"` ’ *4“"9 9” a ’ *8“"F" ”’ b ’ *<“"Y" ”’‘"j d’Coƒ:”’“!e 9 F Y ((" Z Ak(AvE@ j! AjA|q! 7!f 6!g D!h C!i *!A! @ H@ Ak(AvO@  Atj*]@ ! Ak(AvO@ Atj*! Aj!  #4Œ"8![ @ Ak(AvO@  Atj" * !4 = *"8"” @ *"2”’ E *"3”’ > ” A 2”’ < 3”’ ? ” : 2”’ ; 3”’!7!6"5Œ! 8 ” 2 ”’ 3 ”’ 4“  6Œ"2 7Œ"3      _” 2 g”’ 3 f”’ Œ  C] 2Œ 2 2C] 3Œ 3 3C]!7!6"5 c” 6 i”’ 7 h”’Cˆ?”’Y!""Z“"8 X 8 X]![ "! A! @ H@ Ak(AvO@ Atj* e“ [   []]E@ Ak(AvO@  Atj" * !H *!2 *!3 *!4 ! 8! E Gr@ 4 ” 3 ”’ 2 ”’ H“ = 4” @ 3”’ E 2”’ > 4” A 3”’ < 2”’ ? 4” : 3”’ ; 2”’!7!6"5Œ" 6Œ"H 7Œ"I      _” H g”’ I f”’ Œ  C] HŒ H HC] IŒ I IC]!7!6"5 c” 6 i”’ 7 h”’Cˆ?”’Y!""Z“! "!  ^@ 2!\ 3!] 4!^ !+ !! A " X^@ 4 3 2  A G K J AAA N M L AAAA Aj!  (x! (¤! (¬! (d" AjAxq" !# *" *"2’ * "3 *"4’ *$"8 *"I’!7!6"5C?” 6C?” 7C?”!7!6"5!H  2“ 3 4“ 8 I“!D!C"BC?” CC?” DC?”!D!C"B!I  = 9” @ F”’ E Y”’ > 9” A F”’ < Y”’ ? 9” : F”’ ; Y”’!b!a"`Œ aŒ bŒ (,"ZA! Ak(AvE@ #j!( AjA|q! 7!F 6!Y D![ C!_ *!A! @ H@ Ak(AvO@   Atj*]@ ! Ak(AvO@  Atj*! Aj!  #4Œ"8!9 @ Ak(AvO@ =  Atj" *"” > *"2”’ ? *"3”’ @ ” A 2”’ : 3”’ E ” < 2”’ ; 3”’!7!6"5Œ" ” 6Œ"2 ”’ 7Œ"3 ”’ * “  2 3 # (   H” 2 Y”’ 3 F”’ Œ  C] 2Œ 2 2C] 3Œ 3 3C]!7!6"5 I” 6 _”’ 7 [”’Cˆ?”’Y!""Z“"8   8]" X  X]!9 "! A! @ H@ Ak(AvO@  Atj* e“ 9   9]]E@ Ak(AvO@ =  Atj" *"” > *"2”’ * !c ? *"3”’ @ ” A 2”’ : 3”’ E ” < 2”’ ; 3”’!7!6"5Œ!2 7Œ!3 6Œ!4 ! 8! E Gr@ 2 ” 4 ”’ 3 ”’ c“ 2 4 3 # (  2 H” 4 Y”’ 3 F”’ 2Œ 2 2C] 4Œ 4 4C] 3Œ 3 3C]!7!6"5 I” 6 _”’ 7 [”’Cˆ?”’Y!""Z“! "!  ^@ 3!J 4!K 2!G !' !, A " X^@ ^ ] \  + !A 2 4 3  A N M L AAAA Aj!  (p!$ ( ! (8!%A! (p!) ( ! ( 4” A 8”’ < 9”’ ? 4” : 8”’ ; 9”’!7!6"5!F (4! = *4"4” > *8"8”’ ? *<"9”’ @ 4” A 8”’ : 9”’ E 4” < 8”’ ; 9”’!D!C"B ’ C ’ D ’ (0"[  F 6 7 [ (´! (´!A! @ $H@ Ak(AvO@  Atj-! Aj" Ak(AvO@  Atj-! Au"* Ak(AvO@  *Atj*!4 %Ak(Av M@ % Atj 6  Ak(AvO@  Ak(AvO@  Atj*"8  Atj*"F"9 8 9^"9 2` 8 F 8 F] 4 9”“"8 8” 2 9“ 2 9’”C€? 4 4”“"4”` 4C·Ñ8]r 8C`qrj! Aj!  A! @ )H@ Ak(AvO@  Atj-! Aj" Ak(AvO@  Atj-! Au" Ak(AvO@  Atj*!2 &Ak(Av M@ & Atj 6  Ak(AvO@  Ak(AvO@ Atj*"4 Atj*"9"8 4 8^"8 3` 4 9 4 9] 2 8”“"4 4” 3 8“ 3 8’”C€? 2 2”“"2”` 2C·Ñ8]r 4C`qrj! Aj!   AjAulA NA @ #C ×£;”CÍÌÌ=” j d’"Œ  C]Coƒ:”’“!2 !  !AG" Ak(AvO@ j" Ak(AvO@ A! =  Atj*"3” >  Atj*"4”’ j" Ak(AvO@ ?  Atj*"8”’ @ 3”  4”’ : 8”’ E 3” < 4”’ ; 8”’!7!6"5 ’ 6 ’ 7 ’ [  2 % \! '  'AG" Ak(AvO@ #j" Ak(AvO@  = Atj* “"” @ Atj* “"3”’ (j" Ak(AvO@ E Atj* “"4”’ > ” A 3”’ < 4”’ ? ” : 3”’ ; 4”’!7!6"5 6 7 [  2 & \! E Er@ ^ ] \  + !A G K J  ' ,A N M L AAAA (L! (P! (T!$ = @ E > A < ? : ;    (° AjAxq" j AjA|q (@") (D"* (H"-AX = @ E > A < ? : ;          $AX (X! (\! (`! (d! (h! (l! (p! (t! (x! (|! (€! („! (ˆ!A!@ H@ %Ak(AvO@ % Atj("" Ak(AvO@  Atj"-!0 -! - - Aj" Ak(AvO@  Atj"-!1 -! - - 0 Ak(AvO@  0Atj"*! *! *! 1 Ak(AvO@  1Atj"*! *!< *!: Ak(Av M@  Atj 8 Ak(AvO@ Atj 8 Ak(AvO@  Atj 8 Ak(AvO@  Atj :8 Ak(AvO@  Atj <8 Ak(AvO@  Atj 8 Ak(Av M@ Ak(Av M@ Atj* Atj*“! Ak(Av M@ Atj 8  #j" Ak(AvO@ Atj*  #j" Ak(AvO@ Atj*“! Ak(Av M@  Atj 8  (j" Ak(AvO@ Atj*  (j" Ak(AvO@ Atj*“! Ak(Av M@  Atj 8 Ak(Av M@ Atj*! Ak(Av M@  Atj 8  #j" Ak(AvO@ Atj*! Ak(Av M@  Atj 8  (j" Ak(AvO@ Atj*! Ak(Av M@  Atj 8 Ak(AvO@ Ak(Av M@ Ak(AvO@ Ak(AvO@ Ak(AvO@ Ak(AvO@ At"j*" ”  j*" ”’  j*" ”’C·Ñ7”! Ak(AvO@  Atj 8 Aj!  "Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 " Ak(Av Aj"M@ AtjC8 Aj" Ak(AvO@ AtjC8 " Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 "Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 "Ak(Av Aj"M@  AtjC8 Aj" Ak(AvO@  AtjC8 "Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 "Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 Aj" "Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 "Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Ak(Av Aj"M@  AtjC8 Aj" Ak(AvO@  AtjC8 "Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 " Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 " Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8#C ×£;”"Œ ”!>A! @ H@ &Ak(AvO@ & Atj("" Ak(AvO@  Atj"-! -! - - Aj" Ak(AvO@  Atj"-! - - -!  )Ak(AvO@ ) Atj*!?  *Ak(AvO@ * Atj*!@  -Ak(AvO@ - Atj*!A )Ak(Av M@ ) Atj*!E  *Ak(AvO@ * Atj*!2  -Ak(AvO@ - Atj*!3 Ak(Av M@  Atj*! Ak(AvO@  Atj*! $Ak(AvO@ $ Atj*!4 " Ak(AvO@  Atj* "“! Ak(AvO@  Atj* "“!8 $Ak(AvO@ $ Atj* 4“!=A!@ H@ Ak(AvO@ Ak(Av M@ Ak(AvO@ @ ?  At"j*"<” @  j*":”’ A  j*";”’" E <” 2 :”’ 3 ;”’"<” >` Ak(AvO@ Atj*!: Ak(AvO@ Atj*!; Ak(AvO@  Atj*!9 Ak(AvO@ Ak(AvO@ Ak(AvO@   At"j* ”  j* 8”’  j* =”’"F” >`A : ” ; 8”’ 9 =”’ F” >`  ”": < <”"; : ;^!: Ak(AvO@ :  Atj*_ C€? ? Œ < “•" E ?“”’"< <” @  2 @“”’": :”’ A  3 A“”’"; ;”’‘•"9 <”! Ak(AvO@ Ak(AvO@ Ak(AvO@  At"j* ’ ”  j* ’ 9 :”"<”’ j* 4’ 9 ;”":”’Œ"; ^@ :!L "=! E! D!v C!w B! A!x @! ?! >! @@@@@  ! ! !  ! ! !  ! !b !a  !` !_ !^ ! x! ! @@@@@  !] !\ ![  !Z !Y !X  !W !V !U  !T !S !R ! v! w! @@@@@  !Q !P !O  !N !M !L  !K !J !I  !H !G !F Aj!  A tAk! cý") ý ý  ý  `ý "*ýæ fý"+ ý ý  bý  _ý ",ýæýä iý"- ý ý  aý  ^ý ".ýæýä lý"/ýä!2 dý"0 *ýæ gý"6 ,ýæýä jý"7 .ýæýä mý"8ýä!3 eý"9 *ýæ hý": ,ýæýä ký"; .ýæýä ný"<ýä!* ) ]ý Zý  Wý  Tý "1ýæ + \ý Yý  Vý  Sý "4ýæýä - [ý Xý  Uý  Rý "5ýæýä /ýä!, 0 1ýæ 6 4ýæýä 7 5ýæýä 8ýä!. 9 1ýæ : 4ýæýä ; 5ýæýä <ýä!1 ) Qý Ný  Ký  Hý ")ýæ + Pý Mý  Jý  Gý "4ýæýä - Oý Lý  Iý  Fý "5ýæýä /ýä!+ 0 )ýæ 6 4ýæýä 7 5ýæýä 8ýä!- 9 )ýæ : 4ýæýä ; 5ýæýä <ýä!/ @   2 , + , +ýFýR") 2 )ýFýR oý"0ýä pýýC 2 , + , +ýEýR") 2 )ýEýR 0ýå sýýDýP 3 . - . -ýFýR") 3 )ýFýR 0ýä qýýC 3 . - . -ýEýR") 3 )ýEýR 0ýå týýDýPýP * 1 / 1 /ýFýR") * )ýFýR 0ýä rýýC * 1 / 1 /ýEýR") * )ýEýR 0ýå uýýDýPýPý¤q"Asq!@ @ h!  Akq!  "j" ( O@ ( Alj"C8 A: A: A: A:  @ # 2ý  $ 3ý  % *ý  #Aj ,ý  $Aj .ý  %Aj 1ý  #A j +ý  $A j -ý  %A j /ý @ @ h!  Akq! % At"j*!  $j*!  &Al"A lj"  #j*8  8  8 % AjAt"j*!  $j*!  AjA lj"  #j*8  8  8  AjA lj" % AjAt"j*!  $j*!  #j*8  8  8  &Atj  "j6 &Aj!&  "Aj!"  & ‰…6j}~#AÀ>kA I@ #A k"$ (L((!< !. !¥ !¦ !§ !n !o !p !k *,! *0! *8! *Jq@  >Atj("0" &( O@ &( Alj(!4 : >Al"A lj"*! *!  *8  8  8 : AjA lj"*! *!  *8  8  8 : AjA lj"*! *!  *8  8  8 .(AF .(¸"("(p! (d! (h"Ak(A n 4M@  4A lj"(! (! (! 4 Ak(O@  4j-! *! * ! *!  Ak(A nO@   A lj"*”!  *”!N  *”!J  ” ”C]@  Ak(A nO@   A lj"*”!O  *”!T  *”!  Ak(A nO@   A lj"*”!  *”!  *”! ! ! AqAGAA A qrAA AÀqr!  Ak(A nO@   A lj"*”!O  *”!T  *”!  Ak(A nO@   A lj"*”!  *”!  *”! !  J N O T       .(¼ 4Q !F!E!D!C! !Ÿ!ž!�!œ!›!š!™!˜ 0 &( O@ D! C!! E!" &( 0Alj"-! -! -! -! -! -! -! -! /!# * ! - !' - !* - !3 -!G  *8  G:  3:  *:  ':  8  #;  :  :  :  :  :  :  :  : % ?k! 9( ;Atj(" ?6 A6  F6< A68@@@@@ ( *ˆ! *Œ! *�! *”!P *˜!V *œ!Y * ! #*"Ak(AvE@ ("E@ Aj! A6 @ AH Ak(A nE@ *!N *!J *!L Ak(A nAM@ *!M *!Q * !O Ak(A nAM@ } Q J“" * "T N“"” M N“"K *"U J“"S”“" ” K *"X L“"K” O L“"R ”“" ”’ R S”  K”“" ”’"K# CzD”^@C€? K‘•"S ”! S ”!K S ”  C!KC!C ! " C?” PC?”’” K C?” VC?”’”’ " C?” YC?”’”’  L” K J”’  N”’"R“C] ( ! ("Ak(A nE@  L8  J8  N8 ("Ak(A nAM@  O8  Q8  M8 ("Ak(A nAM@  X8  U8  T8 (A6 (C8 ("Ak(A nE@  8  8  8 ("Ak(A nAM@  P8  V8  Y8 (A6 (C8A ;*!Aœ;*!NA˜;*!JA”;*!LA�;*!MAŒ;*!Q Aˆ;*8  Q8  M8  L8  J8  N8  8 A:$  4!6!5!z!y!x!w!v!u!t!s!r"q! z"N #C ×£;”C€@”’^ N# CÈB”^@ } t"S “"J J” u"U r"X“"L L”’ v"Z s"]“"M M”’"Q# CzD”^@C€? Q‘•"Q J”!J Q M”!T Q L”!O J  C!TC!OC "J” K O”’  T”’"LŒ L LC]CÍÌL>^@ ("Ak(AnE@  8  8  8 Ak(AnE@ C8 Ak(AnE@ A: A: A: A: Ak(AnAM@  P8  V8  Y8 Ak(AnAM@ C8 Ak(AnAM@ A:$ A:% A:& A:'    K bAF@ Ak(AnE@  *” K *”’  *”’ R“! Ak(AnAM@  *” K *”’  *”’ R“! Ak(AnE@ * ’C?”" ”“! *  ”“!N *  K”“!J Ak(AnAM@ * ’C?”" ”“!L *  ”“!M *  K”“!  8  K8  8 A68 A6 (" ("Ak(AnO@  Alj" 8  J8  N8   “8 Ak(AnE@ -! -! -!  -:  :  :  : Aj" ("Ak(AnO@  Alj" L8  8  M8   “8 Ak(AnAM@ -'! -&! -%!  -$:  :  :  :  XC?” U O”“C?”’! ]C?” Z T”“C?”’! C?” S J”“C?”’!  J8  O8  T8 A6 * -  -  -  -  -! -! -! - !A!A! /!A!@  H@ AO@@@@@@  !  !  !  ! A tr! Aj!  A¼;(AvO@  AtAÀ;j(68 (" ("Ak(AnO@  Alj" 8  8  8  N “8 A‡;-!A†;-!A…;-! A„;-:  :  :  :    ” K" ”’  ”’ R“"N  P”  V”’  Y”’ R“"J]@    NAAA     JAAA !³ ³"W ^ A!A¬2*!LA¨2*!MA¤2*!T# Œ!NA!A!A! Y "U“"b! V "X“"^! P "Z“"e! Ak(A nAM@  ”  ”’ "]”’!a * !K *!Q *!S@ AH@  Ak(A nO@  A lj"*!} *" Q“"O ]”  K“" ”“"J J” ” *" S“"[ ]”“"\ \”’ [ ” O ”“"O O”’"[# CzD”^@C€? [‘•"_ J”![ _ O”!O _ \”  C![C!OC !\ a a” e [” ^ \”’ b O”’"J J”’ e e” ^ ^”’ b b”’C·Ñ7”]E@} a J”C_C€? J J a“•"J“"_ [” J ”’ _ \” J ”’ _ O” J ]”’C€? J a J’•"J“"_ [” J Œ”’ _ \” J Œ”’ _ O” J ]Œ”’ !­!¬"«"J J” ¬"\ \”’ ­"O O”’"[# CzD”^@C€? [‘•"[ J”!_ [ O”!O [ \”!J _  C!OC!JC "\ Z S“” J X Q“”’ O U K“”’"K N^@ J!MA! K!N O!L \!T ! !Q !S !K "Aj!  M! T!J N] W “!O#*"Ak(AvE@ ("E@ ("Ak(AnE@  Z8  X8  U8 Ak(AnE@ C8 Ak(AnE@ A: A: A: A: Ak(AnAM@  P8  V8  Y8 Ak(AnAM@ C8 Ak(AnAM@ A:$ A:% A:& A:'@     bE Ak(AnE@  *”  *”’  *”’ R“! Ak(AnAM@  *”  *”’  *”’ R“" #C ×£;”C€@”"K ’^  K ’^q Ak(AnE@ *  ’C?”"K ”“!M * K ”“!Q * K ”“!S Ak(AnAM@ * ’C?”"K ”“!T * K ”“!R * K ”“!K  8  8  8 A68 A6 (" ("Ak(AnO@  Alj" M8  S8  Q8   “8 Ak(AnE@ -! -! -!  -:  :  :  : Aj" ("Ak(AnO@  Alj" T8  K8  R8  “8 Ak(AnAM@ -'! -&! -%!  -$:  :  :  : ( AF@ (" ("Ak(AnO@  Alj* ! Aj" ("Ak(AnO@   Alj* "  ]!O AF (  O#C ×£;”’ N “]A @@  Ak(A nO@  A lj"*!K *!Q *!O AjAo" Ak(A nO@ Y U“! V X“! P Z“!N  A lj"* O“!P} * Q“"R"Y ” * K“"]"V ”“"M M” V ” P ”“"V V”’ P ” Y ”“"Y Y”’"S# CzD”^@C€? S‘•"S M”!M S V”!T S Y”  C!TC!MC !V N ” ”’  ”’" ” N M” T”’  V”’" ”’ N N” ”’  ”’C·Ñ7”] O Q K P R ] Z X U N -!‘!�!�!Ž!�!Œ!‹"Š! �"C] C€?^r ‘"C]r C€?^r  J8  8  L8 A6 Aì;(AvO@  AtAð;j(68 (" ("Ak(AnO@  Alj" C?” Ž J”“C?”’8  ‹C?” � ”“C?”’8  ŒC?” � L”“C?”’8  J Z O“”  X Q“”’ L U K“”’ “8 A:  : A:  :   -AFA @ C8 A: A: A: A: *!S *!T *!R * !K *!L *!M *!U *!P * !QC!C!C!C!C! C!C! C!VC!YC!NC!JC!e#AÀ>kA0I@ #A0k"$#*"Ak(AvE@ ("E@ A6 A68@ AH #C ×£;”!m} L T“"X Q R“"Z” M R“"] P T“"\”“"O O” ] U S“"]” K S“"a Z”“"Z Z”’ a \” X ]”“"] ]”’"X# CzD”^@C€? X‘•"\ O”!X \ Z”!O \ ]”  C!OC!XC !W X"_ $*4” O"` $*8”’ W $*<”’ X S” O T”’ W R”’"{“!O -AF@ * O“"XŒ X XC] m]  A: O mŒ]@ A:  O8  M R“!O L T“!X K S“!Z Q M“!] P L“!\ U K“!a R Q“!b T P“![ S U“!d $( ! $(¤! $(œ! (}#C ×£;”C€@”C !| A:@@@@@@@ -Ak $ _Œ `Œ WŒ5"!  Ak(A nO@ _  A lj"*” ` *”’ W *”’ {“ |^  -! -! -! -!#  *8  #:  :  :  :   S T R K L M U P Q Z X O a \ ] d [ b _ ` W { $    (g! ( AJ * “"Œ  C] m]A  A6 C8 A: A: A: A:  -" Ak(AvO@ A!  Atj"* !“ S *"c” T *"l”’ R *"}”’Œ!^A!@ AH@ AO@ AF@ M! K! L! AF@ Q! U! P!  c”  l”’  }”’Œ"f ^^@ f!^ ! Aj!  E@ R! S! T! AF@ M! K! L! c AF} P! Q! U  ” l ”’ } ”’ ““" |^   mCÀ”]E@ -! -! -! -!#  *8  #:  :  :  :   S T R K L M U P Q $    Aj (f! ( AJ * “"Œ  C] m]A  A6 C8 A: A: A: A:  -"AO@ E@ S! R! T! AF@ K! M! L! AF@ U! Q! P! E@ X! O! Z! AF@ \! ]! a! AF@ [! b! d! -"#" Ak(AvO@  Atj"-!' -!* - - #Aj" Ak(AvO@  Atj"-! -!3 - - Ak(A n *M@  *A lj"*!} *!“ *!¡ Ak(A n 3M@  3A lj"*!^ *!f * ¡“!° ' Ak(AvO@  'Atj"*!’ *!¢ *!£  Ak(AvO@ ^ }“!^ f ““!f  Atj"*!¤ £ ” ¢ ”’ ’ ”’"c *"± ” *"² ”’ ¤ ”’"l”C] c _ °” ` f”’ W ^”’”C^A @  ” ”’  ”’C·Ñ7” c c”"^ l l”"f ^ f^_@ !^ !f}C€? c c l“•"“" £”  ±”’"c c”  ¢”  ²”’"l l”’  ’”  ¤”’" ”’"# CzD”^@C€? ‘•"’ c”!c ’ ”! ’ l”! c  C!C!C "l f ¡“”  ^ ““”’   }“”’"c |^  *"} c“"cŒ c cC] m]@ -! -! -! -!'  }8  ':  :  :  :   f ^    $ lŒ Œ Œ  # Ajh ( AJ  C8 A: A: A: A:    S T R K L M U P Q Z X O a \ ] d [ b _ ` W { $ _ ` W { $c!-!,!+!j!i!h!g + ,  (g    S T R K L M U P Q $ S T R K L M U P Q $d!-!,!+!j!i!h!g j + ,  (f  S T R K L M U P Q Z X O a \ ] d [ b _ ` W $e!-!,!+!j!i!h"g! +"AG@ AO@ E@ T! R! S! AF@ L! M! K! AF@ P! Q! U! E@ Z! X! O! AF@ a! \! ]! i!N h!J ,!     AF} [! b! d    $ J N   h  A: _ ` W { $c!-!,!+!j!i!h!g ,! +! j" |^@  8 A:  :  :  S T R K L M U P Q $d!-!,!+!j!i!h"g! ,! +!# j" |^@  8 A:  #:  :  S T R K L M U P Q Z X O a \ ] d [ b _ ` W $e!B!A!@!—!–!•"”! A!' @! —" |^@  8 A:  :  ':  i! h!^  `  _” ^ `”’ W”’C€¾]A }   S T R K L M U P Q Z X O a \ ] d [ b _ ` W { $    (g   S T R K L M U P Q $  #   (f ! AG@ ( E    ] ]qA ( AF   m’^q @ AO@ E@ S!Y T!N R! AF@ K!Y L!N M! AF@ U!Y P!N Q! E@ Z!e O!V X!J AF@ a!e ]!V \!J –! •! A6   Y N AF} [!J b!V d e J V $     ' h ( E@ ("Ak(A nE@  S8  T8  R8 Ak(A nAM@  K8  L8  M8 Ak(A nAM@  U8  P8  Q8 ( "(A6 (C8 (!A!@  $(dH@  Ak(A nO@  Ak(A nO@  A l"j"  j"*! *! *8  8  8 Aj!  ( $(d6 (C8A ;*!Aœ;*!A˜;*!A”;*!A�;*!AŒ;*! Aˆ;*8  8  8  8  8  8  8 A:$ C8 A; A: A: A: A:! A:" A:# A:$ A:%  Aj4!6!5!z!y!x!w!v!u!t!s!r!q z"C^@ A6 * -" -# -$ -% -! -! - ! -!!A!A! /!A!@  H@ AO@@@@@@  !  !  !  ! A tr! Aj!  A¼;(AvO@  AtAÀ;j(68  w8  x8  y8 (" ("Ak(AnO@  Alj" t8  u8  v8  8 A‡;-!A†;-!A…;-! A„;-:  :  :  : C8 A: A: A: A: #A0j$ < <($Aj6$ < <(( -j6(  *¤!N *¨! *¬! *°!P A6 @ E Ak(A nE@ *! *! *! Ak(A nAM@ *!J *!K * ! Ak(A nAM@ } K “"M * "Q “"L” J “"Y *"V “"O”“" ” Y *"Y “"S”  “"T L”“"L L”’ T O” M S”“"M M”’"O# CzD”^@C€? O‘•"O ”! O L”!L O M”  C!LC!C !M  N” L ”’ M ”’  ” L ”’ M ”’“C] NÅ  “"S N “"” K “"T  “"L”’ J “"R “"O”’!M  A Y “"U ” V “"X L”’ Q “"Z O”’"OC_ MC_q   K JA S N “"L” T  K“"]”’ R J“"\”’"C^ U L” X ]”’ Z \”’"] _q  M ]”  O”“"aC_ MC`q C_q@  M M “•" S”’  T”’   R”’A  Y V QA S N Y“"L” T  V“"b”’ R Q“"[”’"\ U L” X b”’ Z [”’"L_ LC`q  \ O” M L”“"MC_ OC`q LC_q@  O O L“•" U”’  X”’   Z”’A   ]_  L” \ ]”“"OC_q L \_q@  ] “"  \ L“’•" Y “”’ K  V K“”’ J  Q J“”’A   M O M’ a’"L•" S”’ a L•"L U”’  T”’ L X”’   R”’ L Z”’A !H!ª!©"¨"M“" ”  ©"O“" ”’ ª"S“" ”’"T P#C ×£;”C€@”’" ”^ H! T‘"L L”# CzD”^}C€? L•" N M“”!  S“”!   O“”} K “" Q “"K” J “"J V “" ”“" ” J Y “"J”  “" K”“" ”’  ”  J”“" ”’"# CzD”^@C€? ‘•" ”!J  ”!  ”! J  C! C!C !  !  8  8  8 A6  68  T84 (" ("Ak(AnO@  Alj" N P ”“ M’C?”8   P ”“ O’C?”8  P ”“ S’C?”8  L P“8 A‡;-!A†;-!A…;-! A„;-:  :  :  :  -! -! -! -! -! -! -! -! / ! *! -! -! -! -! *! 0 &( O@ &( 0Alj" 8 : : : : 8 ; : : : : : : : :  -! -! -! -! -! -! -! -!# / !' *! -!* -!3 -!G -!I *! 0 &( O@ &( 0Alj" 8  I:  G:  3:  *:  8  ';  #:  :  :  :  :  :  :  : ( "AJ@ ;Aj!;  ?j!?  46$ * *"“! * *"“!} * *"“" * “" ”  * “"”“" ”  * “"”  ”“" ”’  ” ”“" ”’"# CzD”^@C€? ‘•" ”! ”! ”  C!C!C !  8  8  8  !6(  6,  "60 (8AF@ !   !H¬ !   !J¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€  "  "J¬  "  "H¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ " ! ! "H¬ " ! ! "J¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ AØj"(€!A!@@  J@ AÀO@  Atj( !F  Aj!  AÀF AÀO@  Atj !6  (€Aj6€ AØj"(€!A!@@  J@ AÀO@  Atj( F  Aj!  AÀF AÀO@  Atj 6  (€Aj6€ AØj"(€!A!#@@  #J@ #AÀO@  #Atj( "F  #Aj!#  AÀF AÀO@  Atj "6  (€Aj6€ / )Atj ;Ak6 )Aj!) (8AF@ * *” * *”’ * *”’C?^@ !   !H¬ !   !J¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€  "  "J¬  "  "H¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ " ! ! "H¬ " ! ! "J¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ AØj"(€!A!@@  J@ AÀO@  Atj( !F  Aj!  AÀF AÀO@  Atj !6  (€Aj6€ AØj"(€!A!@@  J@ AÀO@  Atj( F  Aj!  AÀF AÀO@  Atj 6  (€Aj6€ AØj"(€!A!#@@  #J@ #AÀO@  #Atj( "F  #Aj!#  AÀF AÀO@  Atj "6  (€Aj6€ / )Atj ;Ak6 )Aj!) ( (Alj* !A!@  J@  ( ( jAlj* "  ^! Aj!   ®CÀ”]@ !   !H¬ !   !J¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€  "  "J¬  "  "H¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ " ! ! "H¬ " ! ! "J¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ AØj"(€!A!@@  J@ AÀO@  Atj( !F  Aj!  AÀF AÀO@  Atj !6  (€Aj6€ AØj"(€!A!@@  J@ AÀO@  Atj( F  Aj!  AÀF AÀO@  Atj 6  (€Aj6€ AØj"(€!A!#@@  #J@ #AÀO@  #Atj( "F  #Aj!#  AÀF AÀO@  Atj "6  (€Aj6€ / )Atj ;Ak6 )Aj!) 2 7Atj" *48  16 7Aj!7 8 1Atj ;Ak6 1Aj!1  2 7Atj" *48  16 7Aj!7 8 1Atj ;Ak6 1Aj!1 >Aj!>  (AF@ 7AJ@ (D! (H!A!A! 7Ak!@@  k"AjAN@  Auj" ("Ak(AvO@ Aj" ("Ak(AvO@  Atj*  Atj*^@ ("Ak(Av M@ ("Ak(Av M@  Atj*  Atj*^@ ("Ak(Av M@  Atj"(! *!  ("Ak(AvO@  ("Ak(AvO@  Atj"  Atj"(! *8  6  ("Ak(AvO@  Atj" 8  6 ("Ak(Av M@  Atj"(! *! ("Ak(Av M@ ("Ak(Av M@  Atj"  Atj"(! *8  6  ("Ak(AvO@  Atj" 8  6 ("Ak(Av M@ ("Ak(Av M@  Atj*  Atj*^@ ("Ak(Av M@  Atj"(! *!  ("Ak(AvO@  ("Ak(AvO@  Atj"(!  Atj" *8  6  ("Ak(AvO@  Atj" 8  6  ("Ak(Av M@ ("Ak(Av M@  Atj*  Atj*^@ ("Ak(Av M@  Atj"(! *!  ("Ak(AvO@  ("Ak(AvO@  Atj"(!  Atj" *8  6  ("Ak(AvO@  Atj" 8  6 ("Ak(Av M@  ("Ak(AvO@  Atj*  Atj*^@  ("Ak(AvO@  Atj"(! *!  ("Ak(AvO@  ("Ak(AvO@  Atj"  Atj"(! *8  6  ("Ak(AvO@  Atj" 8  6 ("Ak(Av M@  Atj"(! *!  ("Ak(AvO@  ("Ak(AvO@  Atj"(!  Atj" *8  6  ("Ak(AvO@  Atj" 8  6 Aj! !@@@ Aj" ("Ak(AvO@  ("Ak(AvO@  Atj*  Atj*^ @ Ak! ("Ak(Av M@ ("Ak(Av M@  Atj*  Atj*^  L ("Ak(Av M@  Atj"(! *!  ("Ak(AvO@  ("Ak(AvO@  Atj"(!  Atj" *8  6 ("Ak(Av M@  Atj" 8  6  ("Ak(Av M@  Atj"(! *! ("Ak(Av M@ ("Ak(Av M@  Atj"(!  Atj" *8  6  ("Ak(AvO@  Atj" 8  6 Ak"!  "k  Aj"kH@ ! ! ! !  F !  At" Ak(AvO@  Atj 6 AtAj" Ak(AvO@  Atj 6 Aj!  ! Aj!@  N@ !@  H ("Ak(Av M@ Ak" ("Ak(AvO@  Atj*  Atj*^A @ ("Ak(Av M@  Atj"(! *!  ("Ak(AvO@ Ak" ("Ak(AvO@  Atj"(!  Atj" *8  6  ("Ak(AvO@  Atj" 8  6 Ak!  Aj!  E  Ak"At" Ak(AvO@  Atj(! AtAj" Ak(AvO@  Atj(!  A!@  7H@ 9( 8 2 Atj(Atj("Atj("(,! (("   H¬    J¬B †„!´ AÐj"(€!A!@  H@ AÀO@ A  Atj) ´Q  Aj!  A AÀF  AÀO@  Atj ´7  (€Aj6€A ! (," (0"  J¬    H¬B †„!´ AÐj"(€!A!@  H@ AÀO@ A  Atj) ´Q  Aj!  A AÀF  AÀO@  Atj ´7  (€Aj6€A ! (0" (("  J¬    H¬B †„!´ AÐj"(€!A!@  H@ AÀO@ A  Atj) ´Q  Aj!  A AÀF  AÀO@  Atj ´7  (€Aj6€A ! ((! AØj"(€!A!@  H@ AÀO@ A  Atj( F  Aj!  A AÀF  AÀO@  Atj 6  (€Aj6€A ! (,! AØj"(€!A!@  H@ AÀO@ A  Atj( F  Aj!  A AÀF  AÀO@  Atj 6  (€Aj6€A ! (0! AØj"(€!A!@  H@ AÀO@ A  Atj( F  Aj!  A AÀF  AÀO@  Atj 6  (€Aj6€A !A!@@@@@@@ (8Ak !  !  !  !  !  ! AF@ / )Atj 6 )Aj!) Aj!  A!#@ # 1H@@ 9( 8 #Atj(Atj("(<"A÷qA÷F AqAF@ ((" (,"  J¬    H¬B †„!´ AÐj"(€!A!@  H@ AÀO@ A  Atj) ´Q  Aj!  A  A"qA"F@ (," (0"  J¬    H¬B †„!´ AÐj"(€!A!@  H@ AÀO@ A  Atj) ´Q  Aj!  A  AÄqAÄF@ (0" (("  J¬    H¬B †„!´ AÐj"(€!A!@  H@ AÀO@ A  Atj) ´Q  Aj!  A  / )Atj 8 #Atj(6 )Aj!) #Aj!#  )E@ A6L  (!3 (!A!#A!A!@  )H@  At"jA6  9(  /j(Atj("( j! *! *! *! *! *! * ! A!  #H 3 A$lj"*! * ” * ”’ * ”’CÛù~?_ * ” * ”’ ”’CÛù~?_r Aj!   A "AG@  Atj 6 3 A$lj" ( ( j6 3 #A$lj" 8  8  8  8  8  8  ( 6  Atj #6 #Aj!# Aj!  E ((!'A!A!@  #H@ 3 A$lj" 6 A6  (j! Aj!  A!@  )H@  At"j("AG@ 9(  /j(Atj(! 3 A$lj!A!@  ( H@ ( ( jAlj! ' ( ( jAlj" ($6 *! *!  *8  8  8  * 8 -! -! -!  -:  :  :  :  ( Aj6 Aj!  Aj!  A!@  #H@ 3 A$lj" (!2 * !R *! *! (,!C!C![C!PC! C! C!A!A!A!A!A!C!OC!]C!\C!XA!7A!!A!;A!"A!$C!VC!YC!NC!JA!)A!1A!&A!(A!>C!LC!MC!TC!aA!?A!/A!0A!4A!8C!KC!QC!SC!bA!9A!”" ”!d# !^A!A!A!@  H@  Ak(AvO@  Atj"*! *!R Aj!@  H@  Ak(AvO@  Atj"%* R“" ” %* “" ”’!  Ak(AvO@  Ak(AvO@  Atj*  Atj*’!A   d’^ A   d“]   ^ f“] @ ! ! !^ ! Aj!  Aj!   d]@A!A!@  H@  Ak(AvO@  Ak(AvO@    Atj*  Atj*^! Aj!  @ Ak(AvE@  Ak(AvO@  Atj"( ! *! *!  *8  8  8  6 A   Ak(AvO@  Atj"( !% *!m *!W *!`  Ak(AvO@  Atj"( !* *!{ *!e *!_  Ak(AvO@ Ak" Ak(AvO@  Atj"( != *! *!  Atj" *8  8  8  =6  Ak(AvO@ Ak" Ak(AvO@  Atj"( ! *! *!  Atj" *8  8  8  6 @@ Ak"E e" W“!| _" `“!cC!# !^A!A!@  H@  Ak(AvO@  Atj"* `“! c * W“” | ”“"Œ  C]!R  Ak(AvO@  Atj*!UA R  d’^ A R  d“]  U ^ f“] @ ![ R! " Ak(AvO@  Atj*!^ Aj!  AF  Ak(AvO@  Atj"( ! *!l *!R *!U AF   Ak(AvO@ Ak" Ak(AvO@  Atj"( ! *! *!  Atj" *8  8  8  6 R!Z U! [C]@ !Z ! R W“!| U" `“!c R! Ak! Z “!“  “!¡ W Z“!’ ` “!¢C!# !^A!A!@  H@  Ak(AvO@  Atj"*![ *"} `“ |” [ W“ c”“"£ } “ “” [ “ ¡”“"¤ } “ ’” [ Z“ ¢”“"[ [ ¤]"[ [ £]![  Ak(AvO@  Atj*!}A [  d’^ A [  d“]  } ^ f“] @ [! " Ak(AvO@  Atj*!^ Aj!  AF   Ak(AvO@  Atj"( ! *! *! *! Ak(AvE@  `8  W8  m8  %6 Ak(AvAM@  _8  e8  {8  *6 Ak(AvAM@  U8  R8$  l8(  6, Ak(AvAM@  80  84  88  6  !L !M !T !a !? !/ !0 !4 !8  !K !Q !S !b !9 !< ! ! !: %Aj!%  A!%@ % =H@ % 2j" 'Ak(AnO@ %AO@ ' Alj!@@@@@ % O!P ]! \! X! 7! !! ;! "! $!  V!P Y! N! J! )! 1! &! (! >!  L!P M! T! a! ?! /! 0! 4! 8!  K!P Q! S! b! 9!  Atj"*!3 *!4 *!5A!@ AH@ AO@ E@ !$ !% !# AF@ !$ !% !# AF@ !$ !% !# @ 2 %” 1 #”’ 0 $”’"! ; <”  >”’  =”’”C_ ! 5 %” 4 #”’ 3 $”’""”C`r % %” # #”’ $ $”’C·Ñ7” ! !”" " "”" ]^ }C€? ! ! "“•"“" 2”  5”’ 1”  4”’ 0”  3”’!8!7"6"" "” 7"9 9”’ 8"! !”’"# CzD”^@C€? ‘•" "”!"  !”!  9”! "  C!C!C !! E@ !( :!) !& AF@ !( !) !& AF@ !( !) !& ! ) /“”  & .“”’ ( -“”’"" '^@ Œ!* Œ!+ !Œ!, ! "!' ! Aj!  Aj!  , + * '  A ‡  }#*"Ak(AvE@ ("E@ A6 (¨! ( ! (œ!  (¤" Ak(AvO@ Atj" * ! *! *! *! (! ("Ak(AnE@  8  8  8 Ak(AnE@   ”  ”’  ”’ “8 Ak(AnE@ A: A: A: A: Ak(AnAM@  8  8  8 Ak(AnAM@   ”  ”’  ”’ “8 Ak(AnAM@ A:$ A:% A:& A:' Ak(AnAM@  8(  8,  80 Ak(AnAM@   ”  ”’  ”’ “84 Ak(AnAM@ A:8 A:9 A:: A:;A! " Ak(O@  j-"!@ " Ak(AvO@  Atj"- -! - -" Ak(AvO@  Atj"- -! - - Ak(A n M@  A lj"*! *! *! Ak(A n M@ }  A lj"* “" ” * “" ”’ * “" ”’"# CzD”^@C€? ‘•" ”!  ”!  ”!  C!C!C !    ”  ”“"  ”  ”“"  ”  ”“"  ”  ”’  ”’     _"AH@ C8 A: A: A: A:  ! ! !  G    J!# !A! (!A!@  H@  Ak(AnO@  Alj" -! -! -! -! *! *! *!  * "  ^! E C^qE@  j" ("Ak(AnO@  Alj"   ”“8   ”“8   ”“8 8 A k: : A k: : Aj! Aj!  }#C ×£;”C€@”C ]@ A6 C8 A: A: A: A:  6 Œ8 Œ8 Œ8 A68  8 A:  :  :     }#*" Ak(AvE@ ("!E@ (¨! ( !" (œ!#    "* ^! !(! !(!  Ak(O@  j-"$!@ "! "Ak(AvO@ " !Atj"- - - -" "Ak(AvO@ " Atj"- - - -" #Ak(A nO@ # A lj"*! *!& *!' Ak(An M@ Alj" '8  &8  8  Ak(AnO@ Alj  '”  &”’ * ”’ “8  Ak(AnO@ Alj"A:  !: A:  :  $G Aj"A€Hq ! !A!@ AH AJq@ AO@ E@ !+ !, !( AF@ !+ !, !( AF@ !+ !, !( E@ !. !/ !) AF@ !. !/ !) AF@ !. !/ !)  } , *” ( ”“" ” ( ” + *”“"& &”’ + ” , ”“"' '”’"-# CzD”^@C€? -‘•"- ”!0 - '”! - &”!& 0  C!C!&C "' &  ' .” & /”’  )”’    * _! !! ! !! Aj!  E@ C8 A: A: A: A:#     J!!# !A! (!A!@  !H@ Ak(An M@ Alj"-!" -! -!# -!$ *! *! *!  * "  ^! E C^qE@  j" ("%Ak(AnO@ % Alj" 8  8  8  8  $:  #:  :  ": Aj! Aj!  }#C ×£;”C€@”C _@ C8 A: A: A: A:  6 8 8 *8 A68  8 A:  :  :  Í } (œ! ( "Ak(AvO@  Atj"- - -! -" Ak(AvO@  Atj"- -! - - Ak(A n M@  A lj"*! *! *! " Ak(A nO@           A lj"* “ * “ * “-!!!!!!!"! E "C]r C€?^r "C]r C€?^r@ C8 A: A: A: A: (" ("Ak(AnO@  Alj"  ’C?”8   ’C?”8   ’C?”8   “”  “”’  “”’"8 A:  Aÿq": A:  Aÿq":  8 A:  :  : 8 8 8 A6 Aì;(AvO@ AtAð;j(68 ‘| E@ A€ (" A€N!#!@  H@ Al!  ("(O@ ( j-¸!  "(AvO@ ( Atj 9 AlAj!  ("(AvO@ ( Atj+!  (AvO@ ( Atj 9 (Av AlAj!  ( "(AvO@ ( Atj+! M@ ( Atj 9 Aj!  A A© w"A6  6  6 ("DðAG@ AA w"ƒ  6   (  (A "Dc@ « ¯+6} (" 6 Aÿq! Aÿq!  j!@  H@ (!A€€  "k" A€€JAÿÿq!A!A! !@@@@@@@@@@@@ (  (€!  j!A! @ Aj" Ak(AvO@ Atj("E@ ( L@ Aj!  @  H@ Ak(AvO@ Atj("E@ (! Aj" Ak(AvO@ Atj("E@ ("   H! Ak(AvO@ Atj("@ (!@  J@  kAN Ak(AvO@ Atj("E@ (A   k" ( O@ ( Atj("@  *œ! *!CCC *˜" * C€>”"  ]"C[   ’  CÛÉ@”" ”’!C€?  ” ”"C€?’•! •  ”  !P!O"N8   O8¤  P8¨@@@@@@@@@ (    >   8   ;   A   D   G   J   M Aj!  Aj!  (d! (\! (`!C€?C (0"-¤! ($(!  j!A!@ Aj" Ak(AvO@ Atj("E@ ( L@ Aj!  @  H@  Ak(AvO@ Atj("E@ (! Aj" Ak(AvO@ Atj("E@ ("   H!  Ak(AvO@ Atj("E@ (!  Ak(AvO@ Atj("@ (!@  H@  k!A! @ AH@A! At j" H@  ( O@ ( Atj(" ($"( O@ ( Atj("E@ (L  A°ljA j Atj AG  Atj(A 6 Aj!  A    A  ‹ ! Aj!  Aj!  @ A6P (|! (p! (t! (x!C€?C (0" -¤! ($(!  j! A!@ Aj" Ak(AvO@ Atj("E@ ( L@ Aj!  @  H@  Ak(AvO@ Atj("E@ (! Aj" Ak(AvO@ Atj("E@ ("  H!  Ak(AvO@ Atj("E@ (!  Ak(AvO@ Atj("E@ (!  Ak(AvO@ Atj("E@ ( ! " Ak(AvO@ Atj("@ (!@  H@  k! A!@ AH@A! At j" H@  j" (AvO@ ( Atj(" ( O@ ( A lj"/ ( (" ($"( O@ ( Atj("E@ (8  ($"( O@ ( Atj("E@ (L  A°ljA j Atj AG  Atj(A 6 Aj!  Aj" (AvO@  (AvO@ (" Atj( At j(k!  (AvO@A    ( Atj(   ‹ ! Aj!  Aj!  @ A6P  (8(! (<(! (0"*Œ!; *ˆ!< *„!= *!!  j!@  J@ Atj""*!> *!/ *! *! *! *!  Aülj"*|!C€? ! *ì”C€?’•!FC€? ! *ð”C€?’•!# *l!G *h!H ! ”"+ *d” ! C^} *ôC ”"0 =”’ F ”’!I ! *È *p"(” *Ô *t"$”’ *à *x"”’” # ”’! ! *Ð (” *Ü $”’ *è ”’” # ”’!" ! *Ì (” *Ø $”’ *ä ”’” # ”’! ((A€€q@ *4"% *")” *8"# *"(”“ *<"$ * "”’ *" *0"”’!1 # ”  )”“ $ (”’ %”’"3 "”  (” % ”“ $ )”’ #”’"4 ”“ $ ”  ” % (”’ # )”’“"5 ”“!  3 1 ” 3 ”“ 5 "”“" ” 4 4 ” 1 "”“ 5 ”“"”“C@”’! " 1 ” 3 ”“C@”’"(!  4 ” 1 ”“C@”’"$! ! *€!6 *Œ!, *˜!- *�!7 *œ!. * !8A!@ AL@ 6  “"2” ,  $“""”’ -  (“"%”’ !  - ” . ”’ 8 ”’"#”  , ” 7 ”’ . ”’"&”“”’!' }# CzD” 6 !  -”"  ,”" “”’"? 7 !  .”" “”’"@ 8 ! “”’"9” . !  7”  ,”“ 6 ” , ”’ - ”’"*“”’": . !  -”  8”“ *’”’"A”“” , !  6”  -”“ #“”’"B : - !  8”  .”“ &“”’"C” , !  .”  7”“ #’”’"D 9”“”’ - !  ,”  6”“ &’”’"E D A” @ C”“" ”’"Œ  C]]@C€? •") @ 9” : A”“ '” : C” D 9”“ , 2” 7 "”’ . %”’ !  *”  #”“”’"#”’ - 2” . "”’ 8 %”’ !  &”  *”“”’"”’”! ) B :” E @”“ '” E D” ? :”“ #”’ ? @” B D”“ ”’”! ) A E” 9 B”“ '” 9 ?” C E”“ #”’ C B” A ?”“ ”’”!"   A¬2*! A¨2*!"A¤2* “!  “!  "“! Aj!   3 1 ” 3 ”“ 5 ”’"$” 4 4 ” 1 ”“ 5 ”’"”“C@”’!  4 3 ” 4 ”“ 5 ”’" ” 1 $”“C@”’!  1 ” 3 ”“C@”’!" !  Iý + H” 0 <”’ F /”’ý  + G” 0 ;”’ F >”’ý Cý ý   ý ý  "ý Cý ý  Aj!   AF@ Aÿq" (4("Ak(AvO@  Atj("E@ (!  j!@  J@  ( O@ ( Atj("@@@@@@@@@@ (    ?   9   <   B   E   H   K   N Aj!   AF@ Aÿq" (4("Ak(AvO@  Atj("E@    ( ( (#AŠ Aÿq" (4("Ak(AvO@  Atj("E@    ( ($ (( (,AŠ  AF@    A7 AF@ Aÿq" (4("Ak(AvO@  Atj("E@    ( ( (#A‰ Aÿq" (4("Ak(AvO@  Atj("E@    ( ($ (( (,A‰  (8(! *!* *,"# #”!G# *”"; ;”!H  j!@  J@C  Atj"* * >”’ 0C”  %” ) "”’ / 2”’“ 0’"/ /”’"# CzD”^@C€? ‘•" <”  =”  >”  /”  Að1*Aô1*Aø1*Aü1* !M!L!K"J!  Atj" +ý &ý  'ý  ý ý   ý ý  ý  ý ý   $ * +”’ý ( * &”’ý  I * '”’ý  ¾ý ý   ý Ký  Lý  Mý ý 0 Aj!   AF@    A7 AF@ Aÿq" (4("Ak(AvO@  Atj("E@    ( ( (#Aˆ Aÿq" (4("Ak(AvO@  Atj("E@    ( ($ (( (,Aˆ  AF@ Aÿq" (4("Ak(AvO@  Atj("E@    ( ( (#A‡ AF@ Aÿq" (4("Ak(AvO@  Atj("E@    ( ($ (( (,A‡     (\ (`#AR     (p (t (xAR A€€j!  x@  (,H@ At" (("(AvO@ AA ( Atj( AtAj" (("(AvO@ ( Atj(j Aj!  “|~  ( "(AvO@  (" (AvO@ A At" (j("  (j(  (" (AvO@ ( Atj(j A   ("(AvO@ ( Atj(  ( "(AvO@ ( Atj(j (TAj6T (P@ !A"|  (D ! (T" (XkAtAj! ((8(! (L! A (H"t! (8(! (\! (0"(Av M@ ( Atj(! Aj" (0"(AvO@ ( Atj(! (<"(!A!@  H@ Al j" (AvO@  ( Atj(q@A t! A! !@  H@  (4"(AvO@  ( Atj("Atj( q@  Alj" 6   Atj"(6  (6  (6  (6  (6  (6 Aj! Aj!  l j" ( O@ ( Atj("E@  (`"(AvO@ ( Atj(!AA« w"A6  AlA�Àj6  6  Al6 (" DðAG@ AA w"ƒ  6   (  (`"(Av M@ ( Atj  j6 ( "Dc@ « ( Aj "Dc@ « (A "Dc@ « Aj!  Al j" (AvO@ ( Atj(!A!@  H@ A tq@  l j" ( O@ ( Atj("E@ A"|  (D ! )hB!@@ (A"Dc@ «M B|"B€Ð¬óR AÐ$ (xA°$AxA�$ (A"Dc@ «xAð# x |7h (pE@ (D"(AvA M@ (+PA"|  (D ¡ ! (AvA M@ ( 9P (pAj6p ( "Dc@ «! ( Aj"Dc@ «"Al" " (@"(AvL A A$w"A6 A6 A6   AujAj 6@ (@!AA¬ w"A6  AlA�Àj6  6  6 ("DðAG@ AA w"ƒ  6   (  (!A!@  H@   Alj"(Atj" (6  (6  ( 6  (6  (6  (6 Aj!  Aj!  (D"(AvA M@ (+HA"|  (D ¡ ! (AvA M@ ( 9H Š   ("(AvO@ ( Atj(AN@  ("(AvO@ ( Atj(" ("( O@ ( Atj("E@  (("! (AtAj Atj j(Aj!A¸AÙw"B7 B7 C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ C8D C8H C8L C8P C8T C8X C8\ C8` A6d A6h A6l A6p A6t A6x A6| A6€ A6„ A6ˆ A6Œ A6� A6” A6˜ A6œ A6  A6¤ A6¨ A6¬ A6° A6´ AAÚw6˜ AAÊw6œ AAÜw6  AAÞw6¤ AAàw6¨AAâw AAâw6¬AAâw AAâw6°AAâw AAâw6´ A6d A6p A6x A˜6h A˜6l A˜6t A˜6| A˜6€ A˜6„ A˜6ˆ A˜6Œ A˜6�   jA˜ü A˜j" j("AüÿÿÿK@  AÚw6˜ (˜"Ak(!  Aj" j ü  j" j("AÕªÕ*K@  A lAÊw6œ (œ"Ak(A nA l!  Aj" j ü  j" j("AÿÿÿÿK@  AtAÜw6  ( "Ak(A|q!  Aj" j ü  j" j("AÿÿÿK@  AtAÞw6¤ (¤"Ak(Apq!  Aj" j ü  j" j("AüÿÿÿK@  Aàw6¨ (¨"Ak(!  Aj" j ü AAâw  j" j("AÿÿÿÿK@  AtAâw6¬ (¬"Ak(A|q!  Aj" j ü AAâw  j" j("AÿÿÿÿK@  AtAâw6° (°"Ak(A|q!  Aj" j ü AAâw  j" j("AÿÿÿÿK@  AtAâw6´ (´"Ak(A|q!  Aj j ü (( !  ("(AvO@ ( Atj 6 ("( "Aj!  (AvK@ A ( Atj 6 6  ˆ  ("(AvO@ ( Atj(AN@  ("(AvO@ ( Atj(" ("( O@ ( Atj("E@  (("! (AtAj Atj j(Aj!AøAæw"B7 B7 A6 C8 C8 C8 C8 C8$ C8( C8, A60 A64 A68 A6< A6@ A6D A6H A6L A6P A6T A6X A6\ A6` A6d A6h A6l A6p AAçw6` AAÊw6d AAéw6hAA w AA w6lAA w AA w6p A6< A6D A6L Aà68 Aà6@ Aà6H Aà6P Aà6X Aà6   jAàü Aàj" j("Añ¸œK@  A$lAçw6` (`"Ak(A$nA$l!  Aj" j ü  j" j("AÕªÕ*K@  A lAÊw6d (d"Ak(A nA l!  Aj" j ü  j" j("AÕªÕ*K@  A lAéw6h (h"Ak(A nA l!  Aj" j ü AA w  j" j("AüÿÿÿK@  A w6l (l"Ak(!  Aj" j ü AA w  j" j("AüÿÿÿK@  A w6p (p"Ak(!  Aj j ü (( !  ("(AvO@ ( Atj 6 ("( "Aj!  (AvK@ A ( Atj 6 6  _AAÈ w ("AüÿÿÿK@ AÈ w"Ak("AH AHr@ (! (A     I  ä (" Atj* AjAt j* AjAt j* AjAt j* AjAt j* AjAt j* AjAt j* AjAt j* AjAt j* A jAt j* A jAt j* A jAt j* A jAt j* A jAt j* AjAt j* AjAt j* ×|~ D A¢"  ¡¡"¡!  D A¢"  ¡¡"¡!  ¢ ¢"¡  ¢   ¢   ¢ !   " ¡!   ¡¡ ¡ "  " ¡! B ½"Bƒ  ¡¡  ¡ "DaP| B| B} Dd DdF¿   á|~ C€?[@  @ C€?[ ¼! ¼"AÿÿÿÿqAkAÿÿÿûO@ Aÿÿÿÿq"A€€€üK@ C€?” E@C€? Aÿÿÿÿq"E@ Av}C€? ‹• ‹  A€€€üK  A€€€üF@C€? ‹¼ A€€€ük sAuAsq¾ A€€€kA€€€øO@ Aÿÿÿÿq"AkAÿÿÿûO@ A€€€üK C€? ‹ A Aÿÿÿÿq"A€€€üI AA€€€Ü  A€€€ÜK¾"� \ AA ¨Aq AG"• Av Av@A Aÿÿÿÿq"A€€€üI AA€€€Ü  A€€€ÜK¾"� \ AA ¨Aq "E@CÀ A€€€€xA AF! ! A€€€I A€€€ür¾C€¿’¼A€€€øk  ! A€€Îùk"AvAÿq"AtAØ j+!~ »  A€€€|q"k¾» AtAÐ j+Dð¿q"Dë'¨ÜYGÀDè±³SÇN@q  ¢ DLe)eGWÀDBï*eGg@qq   Au· q¢"Dà@d@Dà@! DàÀc@DàÀ!  �"¡™Dà?f@ Dð? ¦ ! B  b Bÿÿÿÿÿÿÿÿÿ DàCf B€€€€€€€€€ DàÃe  ° " Bÿƒ§AtAàj) B-†|¿!DVÖ0ÿ½¿î>  ¡"D® áSD.v?q ¢  q¶¼ s¾ C€?” °~  (  jj"6ä E@  (Aj6  ( J@  6 )! AJ@  (Aj6 )! (H! (!  (" J!A!@ H@ B   Atj(Atj4†„! Aj!  @ BR@ z§! (Ø"AH@  AqAtt! AH@  (Ü r6Ü  (à r6à  Aj6Ø  B}ƒ!   ( (Øj6 þ}@  LE@  At" j(A l" A jAtj*! A jAtj*! A jAtj*!  Atj  j*" ”"C€?]} C ×#< C ×#<^! C€?  ”“" ”" ”” C€?[}C€? • C@[}C€?  ”• C[}C€?  Œr ”"C C^C 8 Aj!  A! ! *!A!@  NE@@  At" j*" ^  [  j(Atj(  Atj(Atj(HA ! ! Aj!  õ } @   ”8   ”8  ”  ”’"  ”^@  C€? ‘•"” ”8   ” ”8  8  8 @  J@ (" At"Atj* *"“! AjAt j* AjAt j* *"“” AjAt j* ”“C^@A At j*" AjAt j*" ” AjAt j*" AjAt j*" ”’" ”  ”’  ” ”’“" C]  Œ ‘"“!  “! A!@  H@ (" At"AjAtj*! AjAt j*"” ”“!  AjAt j*“”   At j*“”“!@ ‹C¬Å'7_@A C]    •! C`@   ]!    ^! A ]  Aj!  @  ”  ”’C^@   ”’8  ”’8   ”’8  ”’8   “”  “”’" ]@   ”’8  ”’8  ^@   ”’8  ”’8    ”’8   ”’8 A E@  8  8  Aj!   }~ B€€€€Z@ ?"¬B†" T@  }Bÿÿ|Bˆ§""  J!" J    k"  J"  H  @AH@ @AH@ §$ r AìÿÿÿK@ Aj"AüÿÿÿK@ #!#Aj! AjApqAk"­#­B||v  6 Ak"A6 A6  6  6 Aj ° E@A % A �I AäI A OAj A�ÎOAj AèOj  A€­âI AÀ„=OAj A€”ëÜOAj A€Â×/Oj "AtAw!@ A�ÎO@ A�Îp! A�În!  Ak"Atj AänAtA .j5 AäpAtA .j5B †„7  AäO@  Ak"Atj AäpAtA .j(6 Aän! A O@  AkAtj AtA .j(6  AkAtj A0j;  4AAw" ( ("AjI@ Aj6 (6  4AAw" ( ("AjI@ Aj6 (6  ¦ Ak(A’G@ ( Aj"6 AèJ@ (| (| ("Ak(A'G@ ( Aj"6 AèJ@ ( ( ( Ak6 ( | (| ( Ak6 G Ak(A#G@ ( Aj"6 AèJ@ ( ( ( Ak6 ô} A6 A6A A'w"A6 A6 A6 AAÈ w"6  6 A6 6 A: AA•w"A6 A6 A6 A6 A6 A6 A6 6 AÐ6 A6AAÓw AÀAÓw6AAÓw AÀAÓw6 AAÓw AÀAÓw6$ A6(AAÈ w!AA™w" 6  6 A6 A6 6,AAšw"A€AÈ w"6  6 A€6 A6 60AAšw"A€AÈ w"6  6 A€6 A6 64 A:8A¼*!A¸*!A´*!A°*!A¬*!A¨*! A¤*! A *! Aœ*! A˜*! A”*!A�*!AŒ*!Aˆ*!A„*! A€*8< 8@ 8D 8H 8L 8P 8T 8X 8\ 8` 8d 8h 8l 8p 8t 8xA¼*!A¸*!A´*!A°*!A¬*!A¨*! A¤*! A *! Aœ*! A˜*! A”*!A�*!AŒ*!Aˆ*!A„*! A€*8| 8€ 8„ 8ˆ 8Œ 8� 8” 8˜ 8œ 8  8¤ 8¨ 8¬ 8° 8´ 8¸A¼*!A¸*!A´*!A°*!A¬*!A¨*! A¤*! A *! Aœ*! A˜*! A”*!A�*!AŒ*!Aˆ*!A„*! A€*8¼ 8À 8Ä 8È 8Ì 8Ð 8Ô 8Ø 8Ü 8à 8ä 8è 8ì 8ð 8ô 8ø C8ü A:€ #8„ A:ˆA A'w"A6 A6 A6 AAÈ w"6  6 A6 6Œ A6� A6”A¼*!A¸*!A´*!A°*!A¬*!A¨*! A¤*! A *! Aœ*! A˜*! A”*!A�*!AŒ*!Aˆ*!A„*! A€*8˜ 8œ 8  8¤ 8¨ 8¬ 8° 8´ 8¸ 8¼ 8À 8Ä 8È 8Ì 8Ð 8ÔA¼*!A¸*!A´*!A°*!A¬*!A¨*! A¤*! A *! Aœ*! A˜*! A”*!A�*!AŒ*!Aˆ*!A„*! A€*8Ø 8Ü 8à 8ä 8è 8ì 8ð 8ô 8ø 8ü 8€ 8„ 8ˆ 8Œ 8� 8” C8˜ A6œAAÈ w!AAœw" 6  6 A6 A6 6 AAÈ w!AA�w" 6  6 A6 A6 6¤AAÈ w!AA·w" 6  6 A6 A6 6¨AAšw"A€AÈ w"6  6 A€6 A6 6¬AAÈ w!AAÑw" 6  6 A6 A6 6°AAÈ w!AAÔw" 6  6 A6 A6 6´AAÈ w!AAÑw" 6  6 A6 A6 6¸AA•w"A6 A6 A6 A6 A6 A6 A6 6¼ A:À #8Ä A6ÈAAÈ w!AAÔw" 6  6 A6 A6 6ÌAAžw"AàAÈ w"6  6 Aà6 A6 6ÐAAžw"AàAÈ w"6  6 Aà6 A6 6ÔAAÈ w!AAÑw" 6  6 A6 A6 6ØAAÈ w!AAÔw" 6  6 A6 A6 6ÜAAÈ w!AAãw" 6  6 A6 A6 6àA8A–w!AAâw AAâw6AAâw AAâw6AAâw AAâw6AAâw AAâw6 AAâw AAâw6A A'w"A6 A6 A6 AAÈ w"6  6 A6  6 C8 C8 C8 C8$ #8( A6, A60 A:4 6äAA—w"A A'w"A6 A6 A6 A6A A#w"A6 A6 A6  A6 A6 #8 6èA A#w"A6 A6 A6 AAÈ w"6  6 A6 6ìA A#w"A6 A6 A6 AAÈ w"6  6 A6 6ðA A#w"A6 A6 A6 AAÈ w"6  6 A6 6ô A6øAAÈ w!AAŸw" 6  6 A6 A6 6üAAÈ w!AA w" 6  6 A6 A6 6€ A6„ A6ˆ A6ŒA A#w"A6 A6 A6 AAÈ w"6  6 A6 6�A A#w"A6 A6 A6 AAÈ w"6  6 A6 6”A A#w"A6 A6 A6 AAÈ w"6  6 A6 6˜ A:œ C8  C8¤ C8¨ ® A6 A6 A6A A#w"A6 A6 A6 A€AÈ w"6  6 A€6 6 A A'w"A6 A6 A6 A€ AÈ w"6  6 A€ 6 6 A6 A6 A6 H Ak(A~q" Ak(A~q"j"E@AÐ Aw" ü  j  ü  Ó} A6A¼*!A¸*!A´*!A°*!A¬*!A¨*!A¤*! A *! Aœ*! A˜*! A”*! A�*!AŒ*!Aˆ*!A„*! A€*8 8 8 8 8 8 8 8 8$ 8( 8, 80 84 88 8< 8@A¼*!A¸*!A´*!A°*!A¬*!A¨*!A¤*! A *! Aœ*! A˜*! A”*! A�*!AŒ*!Aˆ*!A„*! A€*8D 8H 8L 8P 8T 8X 8\ 8` 8d 8h 8l 8p 8t 8x 8| 8€ C€?8„ C€?8ˆ C€?8Œ C€?8� A:” A:• A6˜ A:œ A:� A:ž A6 AAÈ w!AA�w" 6  6 A6 A6 6¤ A:¨ A:© A6¬ C8° C8´ C8¸ C8¼ C8À C8Ä A:È A6Ì C8Ð C8Ô C8Ø C8Ü A6à C8ä C8è C8ì C€?8ð C8ô C8ø C8ü C€?8€ C8„ C8ˆ C8Œ C8� C€?8” A:˜ A6œ A6  A6¤ A6¨ A:¬ A6° A6´ A6¸ A6¼ A6À A6Ä A6È A6Ì A6Ð A6Ô A6Ø A6Ü A6à A6ä A6è ] ("AH AHr  Jr@   AH! (! (! (     kA  I" K Q (Al"AH ("(Av!Ar Hr@  AH! (A ( AtE@  A6AA w AA w6 O (A ("( ("AH ("AHr Jr@  AHA!!" E@ R ( ( ("( ( "AH (Av" Hr@  AHAtA!!" E@ R ( ( ("( ( "AH (Av" Hr@  AHAtA!!" E@ ð&*{} (8(!2# !4 * !F (0"*”Œý!( -œ!A j! AJ  (AvO@ ( Atj( !@ B AÿÿqH@  A°lj!? Aj! "C AJ  ?(  "Dj! AA ?ý�ý ýAý£ E@A!:@ :AL@ ? :Atj"(" 2 AkAtj 4 ! ("5 2 5AkAtj 4 !5 ("6 2 6AkAtj 4 !6 ( "7 2 7AkAtj 4 !7 ("8 2 8AkAtj 4 !8 ("9 2 9AkAtj 4 !9 ý" 6ý" ý " 5ý" 7ý"ý "ý ! ý   !  ý     ý   ý ! ý" 6ý" ý " 5ý" 7ý"ý "ý ! ý   !  ý     ý   ý ! 8ý" ("; 2 ;AkAtj 4 ";ý" ý " 9ý" ("< 2 @ > EH@ @AÐj >AÐlj"3ý! ) - 3ý0" ýæ . 3A@ký"ýæýä / 3ýP"ýæýä * ýæ + 3ý"ýæýä , 3ý "ýæýäýåýä 3ý`ýä! ' 3ý°" (ýCýN 3ý€"0 3ýÀ"ýå"ý ýDýN! 3ýp" 3ý�"% %ý 'ýR A"%  ýæ  ýæýåýä   ýæ  ýæýåýäýå ýæ !  ýæ  ýæýåýä   ýæ  ýæýåýäýå ýæýä "  ýæ  ýæýåýä   ýæ  ýæýåýäýå ýæýä"1 & ýæý  Fýýæ"ý ýFýR ýRýäýæýå"ý ý ýFýR ýå! &  % 1ýæýá"ý ý ýFýR" ý ý ýFýR"  ýEýR"ýäýæ ýå! 3    ý ý ýFýRýä"  ýEýR  ýR"ýäý p 3   ýåýäý À 3 0 ýäý €  ýP   ýæ"ýæ   ýæ" ýæýå"ýæ ý`"   ýæ"ýæ ýæýå"ýæ ýp" ýæ  ýæýå" ýæýäýäýå!   ýæ ý€ ýæ ý�" ýæýäýäýå!   ýæ  ýæ ý  ýæýäýäýå!  # ýæýå!  # ýæýå!  # ýæýå!  ý°  ýæ  ýæýå" ýæ ýÀ"  ýæ ýæýå"ýæ ýÐ" ýæ  ýæýå" ýæýäýäýä!   ýæ ýà ýæ ýð" ýæýäýäýä!   ýæ  ýæ ý€ ýæýäýäýä! $ ýæýä! ! $ ýæýä!! " $ ýæýä!" >Aj!>  =Aj!=   ý " ý ý " ý !  ý   " ý ý   "ý !  ý   ! ý   !  ý " ý ý "ý !  ý   " ý ý   "ý !  ý   !  ý   !@ ("E 2 AkAtj"(,A€ qE  ý   ý  @ ("E 2 AkAtj"(,A€ qE  ý   ý  @ ("E 2 AkAtj"(,A€ qE  ý   ý  @ ( "E 2 AkAtj"(,A€ qE  ý   ý   ý " ý ý " ý !  ý   " ý ý   "ý !  ý   ! ý   ! "ý " !ý ý "ý ! "ý   " !ý ý   "ý !  ý   !  ý   !@ ("E 2 AkAtj"(,A€ qE  ý   ý  @ ("E 2 AkAtj"(,A€ qE  ý   ý  @ ("E 2 AkAtj"(,A€ qE  ý   ý  @ ("E 2 AkAtj"(,A€ qE  ý   ý  :Aj!:  BAj!B  ª55{} (8(!?# !@ * !P j! AJ  (AvO@ ( Atj( !@ L AÿÿqH@  A°lj!K AJ  K(  !M Ký€ý ýAý£E!NA!F@ FAL@ K FAtj"(" ? AkAtj @ ! ("A ? AAkAtj @ !A ("B ? BAkAtj @ !B ( "C ? CAkAtj @ !C ("D ? DAkAtj @ !D ("E ? EAkAtj @ !E ý" Bý" ý " Aý" Cý"ý "ý ! ý   !  ý     ý   ý !! ý" Bý" ý " Aý" Cý"ý "ý ! ý   !  ý     ý   ý ! Dý" ("G ? GAkAtj @ "Gý" ý " Eý" ("H ? HAkAtj @ "Hý"ý "ý !" ý   !#  ý     ý   ý !$ Dý" Gý" ý " Eý" Hý"ý "ý ! ý   !  ý     ý   ý ! ý0"( A@ký")ýä!0A!I@ I MH@   IjA� lj"> FAtj"=ý" Dý " Gý "ý " Eý " Hý " ý "ý  ý " Bý " ý " Aý " Cý "ý "ý ýåýæ =ý" ý     ý   ýåýæýä =ý "  ý    ý   ý   ý     ý   ý ýåýæýä! ý0" Bý0" ý " Aý0" Cý0"ý " ý   " ýæ  ý   " ý   "ý " ýæýå!  ýæ  ý " ýæýå!   ý   " ýä" ýæýå  ýæ  ýæýå" ýä" ýæ   ýä"ýæýåýä!%  ýæýå  ýæ ýæýåýä!1  ýæýå ýæ  ýæýåýä!2 Dý0" Gý0" ý " Eý0" Hý0"ý " ý   " ýæ  ý   " ý   "ý " ýæýå!  ýæ  ý " ýæýå!   ý   " ýä" ýæýå  ýæ  ýæýå" ýä" ýæ   ýä"ýæýåýä!3  ýæýå  ýæ ýæýåýä!4  ýæýå ýæ  ýæýåýä!5  " ýå"ýæ # ýå"ýæýä $ !ýå" ýæýä! =ý !6 =ý0" ýæ =A@ký"& ýæýä =ýP", ýæýä!7 =ý°!8 =ý`"- ýæ =ýp". ýæýä =ý€"/ ýæýä!9ý !ý !ý ! >(À!OA!J@ J OH@ =AÐj JAÐlj">ý! 3 >ý0"ýæ 4 >A@ký"ýæýä 5 >ýP"ýæýä % ýæ 1 >ý"ýæýä 2 >ý " ýæýäýåýä >ý`ýä Pýýæ! ýP  ýæ ýæýå" ýæ ý`"* ýæ  ýæýå" ýæ ýp"+  ýæ  ýæýå"ýæýäýä!: * ýæ ý€ ýæ ý�" ýæýäýä!* + ýæ  ýæ ý  ýæýäýä!+ ý°  ýæ  ýæýå"ýæ ýÀ"'  ýæ  ýæýå"ýæ ýÐ";  ýæ  ýæýå"ýæýäýä! ' ýæ ýà ýæ ýð"' ýæýäýä!< ; ýæ ' ýæ ý€ ýæýäýä!' >ý�  ýæ  ýæýä  ýæýä ýæ ýæýä  ýæýäýåýäý ý ýFýRýäýæýá" >ýp" ýá"  ýFýR! > ýä" ý p > >ý€ ýäý €  ýä!  >ý  ýæýä! 0 ýæýä!  ýä!   :ýæýå!   *ýæýå!   +ýæýå!   ýæýä!   <ýæýä!   'ýæýä! JAj!J  N@ A�j">ý ! = ý€ ýæ" =ýà" >ý  ýå" ýæ >ý"  ýå" ýæ  ýå" ýæýäýäýä" ýæ =ýð"  ýæ >ý0 ýæ >A@ký" ýæýäýäýä" ýæýä =ý€" >ý ýæ  ýæ >ýP ýæýäýäýä" ýæýä" ýã# ý" ýäýçý €?€?€?€?  ýæýäýDýR" ýæý =ý�ý ýB" ýR" ý à =  ýæý ýR"ý ð =  ýæý ýR" ý €  ýP ýå"ýæ ý`"  ýå" ýæ ýp" ýå" ýæýäýäýå!  ýæ ý€ ýæ ý�" ýæýäýäýå!   ýæ ýæ ý  ýæýäýäýå!  ý° ýæ ýÀ" ýæ ýÐ" ýæýäýäýä!  ýæ ýà ýæ ýð" ýæýäýäýä!   ýæ ýæ ý€ ýæýäýäýä! =ýð   ýåýæ  ýåýæýä  ýåýæýäýæýá" ýð" ýæ" =ý€"ýå" ýEýR! =  ýá ýå"  ýFýR"ýäý € ýæ" =ýÀ" =ý� 7 6ýå   ýÀ" ýæ ýà ýæ ýð" ýæýäýäýæýä" =ýà"ýæ   ýÐ" ýæ  ýæ ý€ ýæýäýäýæýä" =ýÐ"ýæýå   ý`" ýæ ý€ ýæ ý�" ýæýäýäýæýå" =ý°"ýæ   ýp" ýæ  ýæ ý  ýæýäýäýæýå" =ý "ýæýåýå"% ýæ =ýÀ"ýæ   ý° ýæ ýæ  ýæýäýäýæýä" ýæýå  =ý�"ýæ   ýP ýæ  ýæ ýæýäýäýæýå" ýæýåýå" &ýæýä  ýæ  ýæýå ýæ  ýæýåýå" ,ýæýäýä"ýæ =ý " 9 8ýå % -ýæ  .ýæýä  /ýæýäýä"ýæýäýáýä" ýæ =ýÐ"% ýæ =ý° ýæýäýáýä" ýæýä"ýã# ýýäýçý €?€?€?€?  ýæýDýR" ýæ!  ýæ" %ýå! = ý À = ý Ð ýå" ýæ  -ýæýä! ýP   ,ýæ  /ýæýä" ýæ   &ýæ  .ýæýä" ýæýå"ýæ ý`  ýæ  ýæýå"&ýæ ýp  ýæ  ýæýå"ýæýäýäýå!  ý` ýæ ý€ &ýæ ý� ýæýäýäýå!  ýp ýæ ý� &ýæ ý  ýæýäýäýå!  ý°  ýæ  ýæýå"ýæ ýÀ  ýæ  ýæýå"ýæ ýÐ  ýæ  ýæýå"ýæýäýäýä!  ýÀ ýæ ýà ýæ ýð ýæýäýäýä! ýÐ ýæ ýð ýæ ý€ ýæýäýäýä!  (   ýæýä"ýæýå!  (  ýæýä" ýæýå! ! (  ýæýä" ýæýå!! " ) ýæýä!" # ) ýæýä!# $ ) ýæýä!$ IAj!I   ý " ý ý " ý !  ý   " ý ý   "ý !  ý   ! ý   !  !ý " ý ý "ý !  !ý   " ý ý   "ý !  ý   !  ý   !@ ("E ? AkAtj"(,A€ qE  ý   ý  @ ("E ? AkAtj"(,A€ qE  ý   ý  @ ("E ? AkAtj"(,A€ qE  ý   ý  @ ( "E ? AkAtj"(,A€ qE  ý   ý   ý " ý ý " ý !  ý   " ý ý   "ý !  ý   ! ý   ! " $ý " #ý ý "ý ! " $ý   " #ý ý   "ý !  ý   !  ý   !@ ("E ? AkAtj"(,A€ qE  ý   ý  @ ("E ? AkAtj"(,A€ qE  ý   ý  @ ("E ? AkAtj"(,A€ qE  ý   ý  @ ("E ? AkAtj"(,A€ qE ý  ý  FAj!F  Aj!  Mj! LAj!L  ¨%5{} (8(!=# !? * !P (0*¨Œý!' *"O *”ý!( Oý!) *ý!* *$"O * ”ý!+ Oý!, *(ý!- j! AJ  (AvO@ ( Atj( !@ K AÿÿqH@  A°lj!L AJ  L(  !MA!E@ EAL@ L EAtj"(" = AkAtj ? ! ("@ = @AkAtj ? !@ ("A = AAkAtj ? !A ( "B = BAkAtj ? !B ("C = CAkAtj ? !C ("D = DAkAtj ? !D ý" Aý" ý " @ý" Bý"ý "ý ! ý   ! ý     ý   ý ! ý" Aý" ý " @ý" Bý"ý "ý ! ý   ! ý     ý   ý ! Cý" ("F = FAkAtj ? "Fý" ý " Dý" ("G = GAkAtj ? "Gý"ý "ý ! ý   ! ý     ý   ý ! Cý" Fý" ý " Dý" Gý"ý "ý !! ý   ! ý     ý   ý ! + ( ýý ý7 ýý ý7ýP" ýR!. , ) ýR!/ - * ýR!0 ý0"# A@ký"$ýä!1A!H@ H MH@   HjA� lj"> EAtj"Jý" Cý " Fý "ý " Dý " Gý "ý "ý  ý " Aý " ý " @ý " Bý "ý ""ý ýåýæ Jý" ý     "ý   ýåýæýä Jý "  ý     ý   ý  ý     ý   ý ýåýæýä!2 ý0" Aý0"ý " @ý0" Bý0" ý " ý   " ýæ  ý   "  ý   " ý " ýæýå!  ýæ  ý " ýæýå!  ý   "  ýä"ýæýå   ýæ  ýæýå" ýä" ýæ   ýä"ýæýåýä!3 ýæýå  ýæ  ýæýåýä!4 ýæýå  ýæ  ýæýåýä!5 Cý0" Fý0"ý " Dý0" Gý0" ý " ý   " ýæ  ý   "  ý   " ý " ýæýå!  ýæ  ý " ýæýå!  ý   "  ýä"ýæýå   ýæ  ýæýå" ýä" ýæ   ýä"ýæýåýä!6 ýæýå  ýæ  ýæýåýä!7 ýæýå  ýæ  ýæýåýä!8 ýåýæ  ýåýæýä  ýåýæýä!ý ! >(À!NA!I@ I NH@ JAÐj IAÐlj">ý! 2 6 >ý0"ýæ 7 >A@ký"ýæýä 8 >ýP"ýæýä 3 ýæ 4 >ý" ýæýä 5 >ý " ýæýäýåýä >ý`ýä""ý ýD! ýP ýæ ýæýå"ýæ ý`" ýæ  ýæýå" ýæ ýp"%  ýæ ýæýå"ýæýäýä!9  ýæ ý€ ýæ ý�" ýæýäýä!: % ýæ ýæ ý  ýæýäýä!% ý°  ýæ  ýæýå" ýæ ýÀ"  ýæ  ýæýå"ýæ ýÐ"&  ýæ  ýæýå"ýæýäýä!;  ýæ ýà ýæ ýð" ýæýäýä!< & ýæ  ýæ ý€ ýæýäýä!& >ýp"ýá! >  >ý�ý €?€?€?€? / ýR  !ýæ  ýæýä  ýæýä  ýæ ýæýä  ýæýäýåýäýæ " Pýýæ . "ýæ" '  'ýFýR ýRýäýæý 0 ýR ýæýäýá"   ýFýR"ýäý p  1 ýæýä!  ýä!   9ýæýå!   :ýæýå!   %ýæýå! !  ;ýæýä!!   <ýæýä!   &ýæýä! IAj!I   #  ýæ" ýæýå!  #  ýæ" ýæýå!  #  ýæ" ýæýå! $ ýæýä!  $ ýæýä!  $ ýæýä! HAj!H   ý " ý ý " ý !  ý   " ý ý   "ý !  ý   ! ý   !  ý " ý ý "ý !  ý   " ý ý   "ý !  ý   !  ý   !@ ("E = AkAtj"(,A€ qE  ý   ý  @ ("E = AkAtj"(,A€ qE  ý   ý  @ ("E = AkAtj"(,A€ qE  ý   ý  @ ( "E = AkAtj"(,A€ qE  ý   ý  ! ý " ý ý " ý ! ! ý   " ý ý   "ý !  ý   ! ý   ! ý " ý ý "ý ! ý   " ý ý   "ý !  ý   !  ý   !@ ("E = AkAtj"(,A€ qE  ý   ý  @ ("E = AkAtj"(,A€ qE  ý   ý  @ ("E = AkAtj"(,A€ qE  ý   ý  @ ("E = AkAtj"(,A€ qE ý  ý  EAj!E  Aj!  Mj! KAj!K  Ò ${ (8(! # ! j! AJ  (AvO@ ( Atj( !@  AÿÿqH@  A°lj! AJ  (  ! ý€ý ýAý£E!A!@ AL@  Atj!ý !#ý !.ý !'ý !ý !ý !ý !ý !ý !A! @  J@   jA� lj" Atj!ý !ý !ý !ý !ý ! ý !!ý !$ (À! A! @ H@  AÐj AÐlj" ýp"ýä!   ýýæýä!   ýýæýä!   ý ýæýä!  ý0ýæýä! !  A@kýýæýä!! $  ýPýæýä!$ Aj!  ýÀ"" ý0ýæ ýÐ"% ý`ýæýä"(  ý"ýæýä!/ " A@kýýæ % ýpýæýä")  ý"ýæýä!+ " ýPýæ % ý€ýæýä""  ý "ýæýä!,  ýæ  ýæýå ý "- "ýæ ý°"& )ýæýåýä ý€"* ýæ"0ýä!%  ýæ  ýæýå & (ýæ ý�" "ýæýåýä * ýæ"1ýä!&  ýæ  ýæýå  )ýæ - (ýæýåýä * ýæ"ýä! ! ýæ $ ýæýå ýÐ"* "ýæ ýà"- )ýæýåýä 0ýä! $ ýæ ýæýå - (ýæ ýÀ"$ "ýæýåýä 1ýä! ýæ ! ýæýå $ )ýæ * (ýæýåýä ýä! @ % ýà"ýä!% & ýð"ýä!&  ý€" ýä!  ýä!  ýä!  ýä! # /ýä!# . +ýä!. ' ,ýä!'  %ýä!  &ýä!  ýä!  ýä!  ýä!  ýä! Aj!  (" AkAtj  ! ("  AkAtj  ! ("  AkAtj  ! ( "  AkAtj  ! ("  AkAtj  ! (" AkAtj  ! ý"$ ý"(ý ! ý") ý""ý ! ý"% ý"&ý ! ý"* ý"/ý ! ý"+ (" AkAtj  "ý",ý ! ý"- ("  AkAtj  " ý"0ý ! ý"1 ý"3ý "! ý"4 ý"5ý "2ý  ý° ýæ ýÀ"6 ýæ ýÐ"7 ýæýäýäýä! ! 2ý    6 ýæ ýà ýæ ýð"2 ýæýäýäýä!! 1 3ý    4 5ý   ý  7 ýæ 2 ýæ ý€ ýæýäýäýä!  ý  A@ký" #ýæýä!  ý     .ýæýä! + ,ý    - 0ý   ý   'ýæýä!  ý  ýP ýæ ý`"+ ýæ ýp", ýæýäýäýå!  ý    + ýæ ý€ ýæ ý�" ýæýäýäýå!  % &ý    * /ý   ý  , ýæ  ýæ ý  ýæýäýäýå"ý " ý ý "ý !  ý   " ý ý   "ý !  ý   !  ý   !  ý  ý0" #ýæýå" $ (ý    ) "ý   ý   'ýæýå"#ý "'  ý     .ýæýå"ý ý "ý !  #ý   " ý ý   "#ý !  #ý   ! ' ý   !@ ("E AkAtj"(,A€ qE  ý   ý  @ ("E AkAtj"(,A€ qE  ý   ý  @ ("E AkAtj"(,A€ qE  ý   ý  @ ( "E AkAtj"(,A€ qE  ý   ý  ý " !ý ý "ý ! ý   " !ý ý   "ý !  ý   !  ý   !  ý " ý ý "ý !  ý   " ý ý   "ý !  ý   !  ý   !@ ("E AkAtj"(,A€ qE  ý   ý  @ ("E AkAtj"(,A€ qE  ý   ý  @ ("E AkAtj"(,A€ qE  ý   ý  @ ("E AkAtj"(,A€ qE ý  ý  Aj!  Aj!  j! Aj!  ðC7{ (0 (<(!H#!I (8(!J A°lj!A !Q ý!'C€?#C ×£;”C€@”•!#!O#!@ @AH@ @At"B AA jj(">@ >(@! >(L! A BjA >(<" AHAj6 B AAjjA  AHAj6 MA @tA >(DA€€Àqr!M D   DH!D PA >*”C\ !P A @At"jA6 AAjjA6 @Aj!@  A 6 @ NAL@ I H A( Ak"Aülj AF"BAüj I H A(Ak"Aülj AF"CAüj I H A(Ak"Aülj AF"@Aüj I H A(Ak"Aülj AF">Aüj*ýýVýVýV!< I H AAj"F( Ak"Aülj AF"DAüj I H F(Ak"Aülj AF"Aüj I H F(Ak"Aülj AF"Aüj I H F(Ak"Aülj AF"Aüj*ýýVýVýV!= >AÈj"Eý" CAÈj"Cý"ý ! @AÈj"@ý" BAÈj">ý" ý ! Eý Cýý !0 @ý >ýý ! >A j CA j @A j EA j*ýýVýVýV!3 AÈj">ý" AÈj"ý" ý ! AÈj"ý" DAÈj"ý"ý ! >ý ýý ! ý ýý ! A j A j A j >A j*ýýVýVýV!4 A NAtj"A0j <ý  A@k =ý  AÐj  ý "6ý  Aàj  ý   "(ý  Aðj  ý    ý   ý ")ý  A€j 0 ý "7ý  A�j 0 ý   "*ý  A j 3ý  A°j ý "8ý  AÀj ý   "+ý  AÐj ý     ý   ý ",ý  Aàj  ý "9ý  Aðj  ý   "-ý  A€j 4ý  Aðj A( " O "SýŒ" A((" O "GýŒ" ý " A($" O "LýŒ" A(," O "EýŒ"ý "ý ý  A€j ý    ý   ý " ý  A�j ý   ý  6 8ýä!5 ( +ýä!# ) ,ýä!$ 7 9ýä!: * -ýä!. 3 4ýä!; A�j! P@ ý €?€?€?€? 5 : ;ýæ . .ýæýå" ýæ # $ .ýæ # ;ýæýå" ýæ $ # .ýæ $ :ýæýå"ýæýäýä"ýçý ýá  ý ýCýR# CzD”ýýDýR" ýæý  Aj  ýæý  A j  ýæý  A0j  5 ;ýæ $ $ýæýåýæý  A@k  # $ýæ 5 .ýæýåýæý  AÐj  5 :ýæ # #ýæýåýæý  ý ý  Ajý ý  A jý ý  A0jý ý  A@ký ý  AÐjý ý  ý ýD!0A!F@  FLE@ Q  FjA� lj" NAtj!?  ! F! A( "  (LHA @ (H AŒlj  "(ˆ"D F! A($">  >(LHA @ >(H AŒlj  "B(ˆ"  DH"D F! A((">  >(LHA @ >(H AŒlj  "K(ˆ"  DH"D F! A(," (LHA @ (H AŒlj   "(ˆ"  DH"R6À K!@ ?A�j 0ý €?€?€?€?ý  GC€?C B""K Gý C€?C @"B Gý C€?C "C Gý ý ýDýN"ý €?€?€?€?ýNý  ýð" Býð" ý ! Kýð" Cýð"ý ! ý   "  ý   " ý ! CA€j BA€j KA€j A€j*ýýVýVýV! CA„j BA„j KA„j A„j*ýýVýVýV!ý €?€?€?€? ýà" Býà" ý " Kýà" Cýà"ý "ý   "ý ý "ý ¿¿¿¿ýC ý ????ýDýP"ýR" ýæ ýá ý   " ý   "ý " ýR" ýæýäý ýá ýR" ýæýä"ýãýçý # CzD”ýýDýR" ýæ!"  ýæ"% ýæ  ýæ"& ýæýå!/ ? ý  ?Aj ý  ?A j ý  ?A0j "ý  ?A@k %ý  ?AÐj &ý  ?Aàj /ý  ?Aðj & ýæ " ýæýå"1ý  ?A€j " ýæ % ýæýå"2ý  ?A j Sý˜" Gý˜" ý " Lý˜" Eý˜" ý "ý " "ýæ  ý   " %ýæýä  ý    ý   ý " &ýæýäý  ?A°j /ýæ  1ýæýä  2ýæýäý  ?A€j '  ý   ýæý  ?Aàj '  ý   ýæý ýRý  ?Aðj ' ýæý ýRý  ?A€j ' ýæý ýRý  ?AÀj '  ý " "ýæ  ý   " %ýæýä  &ýæýäýæý  ?AÐj '  /ýæ  1ýæýä  2ýæýäýæý  (ˆ²ý K(ˆ²ý  B(ˆ²ý  C(ˆ²ý !ý !ý !ý !ý !ý !ý !ý !!A!@@ @ RNE@ @A8l" j">ý" Bj"Dý"ý ! Kj"ý" Cj"ý" ý ! >ý" Dý" ý ! ý" ý"ý !  ý ý  @²ýýD"ýR! ý @@@@ ý   "  ý   " ý ý ýR" ýýæýå"ý ÿæÛ.ÿæÛ.ÿæÛ.ÿæÛ. ý ÿæÛ.ÿæÛ.ÿæÛ.ÿæÛ.ýFýR"ý €?€?€?€? ý €?€?€?€?ýEýRý ýR" ýæýä!    ý   ý ýR" ýæýä!    ý   "  ý   "ý ý ýR"ýæýä!    ý   ý ýR"ýæýä!    ý ý ýR"ýæýä!    ý   ý ýR" ýæýä! ! ýä!! ?AÐj @AÐlj" ý  Aj ý  A j ý  A0j ý  A@k ý  AÐj ý  Aàj  ýå ýæ  ýå ýæýä ýå ýæýäýåý  Aðj ' ý   ý ýRýæý  A€jý ý  A°jý ý  AÀjý ý   ýæ ýæýå" ! A�jý €?€?€?€? < =ýä ýæ  ýæýå" 6 ýæ ( ýæ ) ýæ ýæýå"ýæýäýäýæ  ( ýæ 7 ýæ * ýæýäýäýæýä  ) ýæ * ýæ 3 ýæýäýäýæýäýä ýæ  ýæýå" !  ýæ ýæýå" 8 ýæ + ýæ ,  ýæ  ýæýå"ýæýäýäýæ  + ýæ 9 ýæ - ýæýäýäýæýä  , ýæ - ýæ 4 ýæýäýäýæýäýä"ýçý ý ýD ýNýRý  @Aj!@  ?A�jý €?€?€?€? !ýçý !ý ýD"ýR" ýæ"ý  ?A j  ýæ" ý  ?A°j  ýæ"!ý  ?AÀj  ýæ"ý  ?AÐj  ýæ" ý  ?Aàj  ýæ" ý A!@  RNE@ ?AÐj AÐlj"ý ýå! A j  ýæ ý ýå" ýæýä ý !ýå" ýæýäýãý  ²ýýDýRý  Aj!  6 2ýæ ! 1ýæýå"ýæ ( ! /ýæ  2ýæýå" ýæ )  1ýæ /ýæýå" ýæýäýä! 8 2ýæ 1ýæýå" ýæ + /ýæ  2ýæýå"ýæ ,  1ýæ /ýæýå"ýæýäýä!  %ýæ "ýæýå"! ! "ýæ  &ýæýå"! ?A�j"ý €?€?€?€? < =ýä" &ýæ ! %ýæýå" 6 ýæ ( ýæ ) ýæýäýäýæ  ( ýæ 7 ýæ * ýæýäýäýæýä  ) ýæ * ýæ 3 ýæýäýäýæýäýä  %ýæ "ýæýå"! "ýæ  &ýæýå"! &ýæ %ýæýå" 8 ýæ + ýæ , ýæýäýäýæ  + ýæ 9 ýæ - ýæýäýäýæýä  , ýæ - ýæ 4 ýæýäýäýæýäýä"   ýæ ( ýæ 7 ýæ * ýæýäýä" ýæýä ) ýæ * ýæ 3 ýæýäýä" ýæýäýä ýæ  + ýæ 9 ýæ - ýæýäýä" ýæýä  , ýæ - ýæ 4 ýæýäýä"ýæýäýä"ýæ  ýæ  ýæýä  ýæýä  ýæ  ýæýä  ýæýäýä" ýæýå"ýçý ýá  ý ýCýR# CzD”ýýD ýNýR" ýæý  Aj  ýæýáý  A j  ýæý  ?Aðjý €?€?€?€?  5 ýæ # ýæ $ ýæýäýäýæ  # ýæ : ýæ . ýæýäýäýæýä  $ ýæ . ýæ ; ýæýäýäýæýä"ýçý ý ýDýRý  FAj!F  NAj!N  A Aý�ý ýDýS"@ M@# !DA!L@ LAJE@ D! A LAtj"G(" J AkAtj ! G(" J AkAtj !E G(" J AkAtj !B G( " J AkAtj !C G(" J AkAtj ! G("> J >AkAtj !> ý" Bý" ý " Eý" Cý"ý "ý !0 ý   ! ý    ý   ý ! ý" Bý" ý " Eý" Cý"ý "ý ! ý   ! ý    ý   ý ! ý" G(" J AkAtj "ý" ý " >ý" G(" J AkAtj D "ý"ý "ý ! ý   ! ý    ý   ý ! ý" ý" ý " >ý" ý"ý "ý ! ý   ! ý    ý   ý !A!B@  BLE@ Q  BjA� lj" LAtj">ý! >ý! >ý ! (À!A!C@  CJ@ >AÐj CAÐlj"ý! A°j    ýP" ýæ  A@ký" ýæýåýä 0  ý " ýæ  ý"ýæýåýäýåýæ    ý0"ýæ  ýæýåýä   ýæ  ýæýåýäýåýæýä   ýæ  ýæýåýä  ýæ  ýæýåýäýåýæýä"ý  M@A!E@ EAH@ MA Etq@ C B! AA j EAtj(" (LHA @ (H AŒlj   "(ˆH@ CA8lj} ý EE  ý EAF  ý EAF  ý 8$ EAj!E  CAj!C  BAj!B  LAj!L  @ ñ A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A60 A64 A68 A6< A6@ A6D #6H A6L C8P C8T C8X C8\ C8` C8d C8h C8l C8p C8t C8x C8| C8€ C8„ C8ˆ C8Œ C8� C8” C8˜ C8œ C8  C8¤ A:¨ A:© A:ª A:« C8¬ A;° A:² A:³ A:´ A:µ A:¶ A:· A:¸ A:¹AA‡w!AAˆw"AàAÈ w"6  6 Aà6 A6  6 C8 C8 C8 C8 C8 C8 6¼ A6À à C8 C8 C8 C8 A6 C8 C8 C8 C8 C8$ C8( C8, A60 A64 #68 #6< #6@ A6D #6H A6L A6P A:T #6X #6\ #6` #6d A6h #6l #6p #6t #6x #6| #6€ A6„ A6ˆ #6Œ A6� A:” A6˜ A6œ „AA­w"AÀAÈ w"6  6 AÀ6 A6 6AA®w"A6 A6 A6 A6 AÀAÈ w"6  6 AÀ6 A6 6A AÉw"AAÊwAAÊw6 A6 A6 6A AÉw"AAÊwAAÊw6 A6 A6 6 A AÉw"AAÊwAAÊw6 A6 A6 6 A:A AÉw"AAÊwAAÊw6 A6 A6 6 C8 A6 A6$ A6( A6, A60 A64 A68 A6< A6@ A6D A6H A6L A6P A6T A6X A6\AAÓw AAÓw6` A6dAAÓw AAÓw6h A6l A6p �AAßw"!AAàw A Aàw6 #$6A Aïw"AAðw6 A6 A6  6 #$6 AAÊw AAÊw6 AAâw"A6 A6 A6 A6 A6@ AH@ (!AÐAÐw"’  Ak(AvO@  Atj 6 Aj!  6AA–w"AA—wAàA—w6A!@ AH@ (!AAA üA‘>AAü A¨>AA üA̾$C€$C€ÿ$A$Cÿÿ$ C€$ C4$ AÀ=$1CÛI?$ A¤2C8A¨2C8A¬2C8Aø:C€?8Aü:C€?8A€;C€?8AŒ2C€?8A�2C8A”2C8A˜2C8Aœ2C€?8A 2C8A€2C8A„2C8Aˆ2C€?8Að1C8Aô1C8Aø1C8Aü1C€?8Aˆ;C8AŒ;C8A�;C8A”;C8A˜;C8Aœ;C8A ;C€?8A°2C8A´2C8A¸2C8A¼2C8AÀ2C8AÄ2C8AÈ2C8AÌ2C8AÐ2C8AÄ=C8AÈ=C8AÌ=C8C€$7AAÊw$-AA’w$.Aè=C8Aì=C8Að=C8AÜ=C?8Aà=C?8Aä=C?8AÐ=C€?8AÔ=C€?8AØ=C€?8A€àA¯ w$8A€ A± w$9AAÓwA€AÓw$6A€âAÒ w$+AAšw$AAÓwAAÓw$AAŽw$AA�w$AA£wAA£w$AA¥wAA¥w$AA§wAA§w$AA©wAA©w$AA«wAA«w$AA¡w"A€AÈ w"6 6 A€6 A6 $AA¢w"AàAÈ w"6 6 Aà6 A6 $A A#w"A6 A6 A6 AAÈ w"6 6 A6 $AÄA‰w"Œ $AŒA§w$A A#w"A6 A6 A6 AAÈ w"6 6 A6 $AüA­ w$AAŽw$ AA�w$!AA’w$"AA”w$#A„;A:A…;A:A†;A:A‡;A:C€$4AAé wA€Aé w!@ A H@AœAÆw"A(AÇw6 AAÊw6 A€AÇw6 A€AÇw6 A€ A’w6AÀA‘w"C8 C8 C8 C8 C8 C8 #.6 A6 A6 A6$ A6( A6, A60 C84 A68 A6< 6 AA’w6A(AÎw"• 6 A€ AÊw6 AAÊw6$AAâw A�Aâw6(AAâw A�Aâw6,AAâw A�Aâw60AAâw A�Aâw64AAÓw A�AÓw68AAÓw A€AÓw6©Ø_?À—€KÀ%àò?h6=}…>À ,�MûÉò?ÓAäÓ"¬=À@+­´ò? ÓÇÓ<Àžä)Ažò?Ìôÿ§gü;À°ˆ°ˆò?FS}I&;À5'�¸Psò?((Mµ”P:Àñ’€p"^ò?Á~<±|9À’$I’$Iò?2½¿ ˜¨8Àß¼šxV4ò?L»Ï–Ö7Àxû!�·ò?…ŸÇ1`7ÀÙÀg G ò?á|C¿¨36ÀpÁ}÷ñ?²¬ÿ)Üc5Àt¸?;ïâñ?5߸cø”4À�¢­Ïñ?QÞ eûÆ3À)íF@J»ñ?Ñý[-ãù2À–{a¹§ñ?—4«Â­-2Àœ¢Œ€S”ñ?pÚ†1Yb1À��ñ?IæŒã—0ÀysB‰nñ?eÜ•œ/À 'u_[ñ?Výòè .À;Í _Hñ?Åñp‹R{,ÀÈ5È5ñ?Ng¶9í*À30]çX#ñ?Ê·«ùÊ`)Àñ?L»Ï–Ö'Àðþðþð?WqlâL&À�œækõìð?ˆ¯hþ`Å$À–F�¨ Ûð?ZÏÞ|?#À;Ú¼OqÉð?�T¦2»!ÀÈ�%ìæ·ð?ž†Êû~8 À§h �¦ð?þë½nÀT 9?•ð?Ó}7œoÀ„B!„ð?ÕXÙÉ”sÀÆ÷G &sð?OpWs zÀü©ñÒMbð?øjÅ丄À4×÷—Qð?ù9‘į# ÀAAð?V5†îCÀ^µ‘0ð?E â!jÀ�@ ð?'s¢{,÷¿ð?_ƒjÀÙ ç¿ð?ðüÀï?Qï¶Pþö? ø�ø�ï?*ÒÂ…–ç@qBJžeDï?4ÕÑ@|ðÁï?‡ýŽuÓº@Àì³Ìî?_« ¹úM@g·ð«1‘î?›Ÿ¢Ÿ8ë @tåÉ:Wî?Ãñ'Ý/ª#@î?Éúöc&@ІøãÖåí?[3Fn¡)@Û�¹v`®í?º«­@BÈ+@4,¸T¶wí?²¥ìr.@ÔAÔAí?äyÚŒXŒ0@tÀn�µ í?{+U—ÑÜ1@ ›‰VØì?®xâé*3@‘á^³¤ì?M÷ƒù©v4@ÇqÇqì?ˆÖû9À5@ðøÃ�?ì?ïÔB7@àÀ�ì?³/Ð+L8@÷”‰+Ýë?ßp~ÝŽ9@кÁù¬ë?”ì´-^Ï:@‹3Ú=l}ë?îMÙͶ <@Oè´�Në?pY2LîI=@Ù€l@6 ë?MjNç „>@(¯¡¼†òê? h¹¼?@pÅpÅê? 0°Û y@@¾cj`ï˜ê?v ÓÚA@mЦmê?p𑲬A@¤A¤Aê?:«DB@KzùÓê?¯šMüÛB@Ù3•Žìé?íͤÎ$qC@¡äNÑÂé?I;FD@š™™™™™é?‹ÍKxšD@r¸ øäpé?³–Lü½-E@àéÖü°Hé?ˆÖû9ÀE@)âÐIû é?§{gä�QF@úœ�Áùè?Þ �Í!âF@Ó0�Óè?<û~ºÒqG@ªók¹¬è?Tc¥H@J°«ðå†è?&²àrœŽH@†a†aè? ‰ºI@ݾ²z—<è?/#9¨I@è?Q` v3J@@ýôç?Iy¾J@ô}A_Ðç?¡‚8÷ëGK@Ãìà"­ç?1�çéòÐK@Ȥx�LŠç?V[)­/YL@±©4äÜgç?}X:’¤àL@F]tÑEç?ê2àSgM@¼ÞF($ç?L6BÔ?íM@p� \àç?ÒTç¡jrN@Ç7Ck÷áæ? â(sÖöN@Êð?53û©=öï?a€w>šìï?…nèãï?t…Ó°Ùï?ÞöÝ)kÐï?È›uEÇï?ƒóÆÊ>¾ï?‰ùlXµï?÷Gr+’¬ï?¢ÑÓ2ì£ï?Óþ¯f›ï?Q[Гï?Ì1lÀ½Šï?à-©®š‚ï?QŽ¥È˜zï?{Q}<¸rï?ê�Œ8ùjï?uËoë[cï?Ô\„à[ï?ª¹h1‡Tï?Ùü"PMï?ÖŒbˆ;Fï?–Ü}‘I?ï?8bunz8ï??¦²OÎ1ï?Ý|âeE+ï?�cõáß$ï?áÞõ�ï?�ÙÚÐï? 䦅ï?V/>©¯ ï?·1 þï?1ØLüpï?ÿd²üî?ñŸ’_Åöî?Ë©:7§ñî?fØm®ìî?÷Ÿå4Ûçî?å¨Ã-ãî?"4L¦Þî?€¬EÚî?*.÷! Öî?—¨PÙõÑî?-‰a`Îî?WíAÊî?Ð<Áµ¢Æî?ÞÓ×ð*Ãî?'*6ÕÚ¿î? Ýý™²¼î?§,�v²¹î?BfÏ¢Ú¶î?‚O�V+´î?’]ʤ±î?Ú'µ6G¯î?ýÇ—Ô­î?)THÝ«î?·FYŠ&©î?H!­o§î? Üv¹á¥î?…U:°~¤î? ÃÌ4F£î?%"U‚8¢î?s©LÔU¡î?Í;fž î?¿Ú u î?/e<²Ÿî?„”Qù}Ÿî?t_ìèuŸî?t�¥HšŸî?ÉgBVëŸî??]ÞOi î?‡ës¡î?2Á0í¡î?bNÏ6ó¢î?>T'¤î?ÎL™‰¥î?­Ç#F§î?í’D›Ù¨î?™fŠÙǪî?Û *Bå¬î?ŒDµ2¯î?6w™®±î?Æÿ‘ [´î?åÅͰ7·î?RÈËDºî?PNÞŸ‚½î?ºÊpñÀî?�𣂑Äî?##ãcÈî?eå]{fÌî?3-Jì›Ðî?]%>²Õî?X³0žÙî?¿ýyUkÞî?zóÓ¿kãî?­ÓZ™Ÿèî?f¶�)îî?ûO¸¢óî?:Yå�rùî?G^ûòvÿî?J¡0°ï?ÒÁK� ï? ×[Âï?œR…Ý›ï?zÐÿ_« ï?KÑW.ñ'ï?µç”m/ï?i�ïÜ 7ï?úÃ]U ?ï?|‰J-Gï?ò‰ ‡Oï?‡¤ûÜXï?˜ƒÉã`ï?…2Ûæiï?`´ó!sï?_›{3—|ï?)¡õF†ï?ö?‹ç.�ï?ƒLÇûQšï?Ú�¤¢¯¤ï?ñgŽ-H¯ï?'Zaîºï?—ºk7+Åï?@En[vÐï?¾œ­ýÛï?Ø�ž�Áçï?ñq�+Âóï?,SharedRegion.exclusive(RegionView.writeFromarray's values&RegionView.readInto for  at  word >b3LaneAwait: gave up on region 0÷ H0123456789abcdefghijklmnopqrstuvwxyz000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 ® ®ÍBlob.fromArray¨audio processors cannot create shared memory; make the blob elsewhere and pass it in*a blob holds at most : š: every shared memory id is taken; release shared objects once done with them¤: no memory is left for shared objects; release shared objects once done with themìa script keeps at most 65536 shared objects at once, a ring counting three; release shared objects once done with them MB‰S S  reachedxWARNING: complex mesh detected, triangle buffer capacity of ® ® ® xrive.jobs.names b3LaneTreeJobb3LaneCollideJobb3LaneSolveJob avoidanceLane lightLane occlusionLaneocclusionSetupLaneÖÕ rive.workersasm·A```|`}}}````}~}~}`}}``}}}}```|`` }}}}}}}}}`` }}}}}}}`}}}`}}}}}}}}`|`|`|`||`|`` }}}}}}}}} }}}}}}}}}` }}}}}}}}}}}}}}}}}}}}`}}}}}}}}}}}` }}}}}}}}}}`}}}`}}}}}}}}}}}}}}` }}}}}}`` }}}}}}}}}}}}` }}}}}}}}}``}}}}``}}}}}}}}}}`}}}}}}}}}}}}`}}}}}`}` }}}}}}}}}}}}}}}}}}}`}}}` }}}}}}}}`}}}}}}}}}}}}}}}}`}}}}}}}}}}}}}}`}}}`}}}}}}}}` }}}}}}}}}}}}}`}}}}}}}}}}}}}}}}}}}}}}}}}`}}}}}}}}}}}`}}}}}}}}}}}}}}}}}}}}}}}`}}}}}}}}}`}`~~~`~~`}}}}` }}}}}}}}}` }}}}}}}}}}` }}}}}}}}}}}}`}`}}}}}}}}}}}}`}}}½rive_worker_v1finishedrive_shared_v1 atomic_storerive_shared_v1 region_unlockrive_shared_v1 region_lockrive_shared_v1 region_write rive_shared_v1 blob_create rive_rt_v1nowrive_shared_v1 blob_read rive_shared_v1 blob_sizerive_shared_v1 region_read env console.logrive_shared_v1releaserive_worker_v1stopping rive_worker_v1waitrive_shared_v1 signal_seqrive_shared_v1 atomic_load rive_lane_v1error…ƒ  !"#$%&'()*+,-./0123456 789p€€‡cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A AঠA A A A A A A A A A }C }C A A }C }C A }C€? A A A A A A A }C A A A A }C A A A A A A A A A A A A A A A A A A A A A A ¯ __rive_worker_0__riveFrameMinor laneError__riveHostBudget __rive_lane_alloc!__rive_lane_free"__rive_worker_wakememory__riveCallSpill-__riveCallSettle/“ A tuvwy|�‚ƒ„�Ž‘’  ¿«ƒ°  ("AvK@ AÿÿÿÿK@ A  AMAt! @Aüÿÿÿ At" AüÿÿÿO"   I!  (" ! AìÿÿÿK@ A A€€O Ak"(@  ("  I!  ( i"  ü  jA  kü   # Ak" Ak"("jF! Aj"AjApqAk!  I@  #( kMA @ AüÿÿÿK@  j$##K@#$  6  At"  Ke"  ü !  @  j$#A  kü  6 Ak 6 Aj " jA  kü  G@ 6 6 m 6 ] (A ( AJ @ ("@@ ( J@ ( Atj((AG@ Aj!  A°%x ¿ A6 A6$ A6 A6 A6 #/Aj"#0( J@#0"( "Aj!  (AvK@  A ( Atj" 6  At  n  6 #0 Ak  $/ 6(A!A!@ ("  ( HA @ "Aj!  ( O@ ( Atj("E@ @ ("@  (  ( " (AGA E (AF@ ("E  A ( (AF@ ("@  ( (  ("  ( HA @ "Aj!  ( O@ ( Atj("E@ @ ("@  (  ( " (AGA E (AF@ ("E  A ( (AF@ ("@  ( (  A6 A6#0 Ak"A $/ A6( Ù A6 A6$ A6 A6 A6 #/Aj"#0( J@#0"( "Aj!  (AvK@  A ( Atj" 6  At  n  6 #0 Ak  $/ 6(A!A!@ ("  ( HA @ "Aj!  ( O@ ( Atj("E@ @ ("@  (  ( " (AGA E (AF@ ("E  ("@  + (  (AF@ ("@  ( (  ("  ( HA @ "Aj!  ( O@ ( Atj("E@ @ ("@  (  ( " (AGA E (AF@ ("E  ("@  + (  (AF@ ("@  ( (  A6 A6#0 Ak"A $/ A6( / AüÿÿÿK@ Aýh"6 6 6 4 AÿÿÿÿK@ At"Aýh"6 6 6 ) A Aýh"6 6 A 6 A6 N  ( O@ AH@ Aj"A 6 ( Atj" 6 ( At  n ” (! ("$# #!"   IA lj! #""   KA lj!@  I@ (AqE@ ("@  p6 A j!  ("p" G@ 6 p" k"@ 6  (AjAtj!@  I@ ("@   j6 Aj!   (A lj!@ K@ ("A~q"@   j Aqr6 A j!  à@ AH@ (d!AAÁh"A€Aýh"6  6 A€6 A6 !  Ak(AvO@  Atj" 6 A  n (h!AAÄh"AàAýh"6  6 Aà6 A6 !  Ak(AvO@  Atj" 6 A  n Aj!  -  Ak(AvO@ Atj" 6 A  n ÉAAh"A6 A6 A6 A6 A:  6  j6 A6AA h" ( ("AjI@  Aj6 (6AAh" ( ("AjI@  Aj6 (6 ( ("AjI@  Aj6 (!AðAªh"A6A,Ah"A6 A6 A6 A6 A6 A� 6 A6 A6 A6 A6$ A6(  6 6$ m  6  6  6 yAA¥h"A6AA¦h"A6A,Ah"A6 A6 A6 A6 A6 A� 6 A6 A6 A6 A6$ A6(A A§h"A6  6  6A A¨h"A6  6  6@ (AF@  (x  AAh"A6 A6 A6 A6  6  6 A6  6 (E@  6  m ("E@AAýh!AAh" 6  m  6 A6 A6 6 m ( "Aj" (AvK@  A ( Atj" 6  At  n  6 ( (("#/LA  Ak"#0"( O@ ( Atj(FA A @ ("E@AAýh!AAh" 6  m  6 A6 A6 6 m ( "Aj" (AvK@  A ( Atj" 6  At  n  6  @ ("@  (  ( " (AGA E (AF@ ("E  A ( (AF@ ("@  ( ( €#"@ ( A$A$A##A€€€#At" A€€€IKA #@#A€€€K@A$A$A! @# @# hAtA€j("(Aj! (! ( "@  6AA gk" AO"AtA€j 6 E@# A~ wq$ @ 6 A6# j$  @A$#@## 6 # !A$ A$A$ A$ A$ #!# !# !A$ A!@ I@# Atj("Aq@ Ak" (Aþq6 A# Aj"Atj("("E@  p6  Ak" (Aöq6 E@ s Aj!  #p$#p$#0p$0#1p$1#2p$2#3p$3#4p$4#5p$5#6p$6#7p$7#:p$:#;p$;#>p$>#@p$@#Ap$A#Dp$D#Ep$E#Fp$F#Hp$H#Ip$I#Jp$J#Kp$K#Mp$M#Np$N#Op$O#Pp$P#Qp$Q#Rp$R#Sp$S#Tp$T#Up$U#Vp$V#Wp$W#Xp$X#Yp$Y#Zp$Z#[p$[#\p$\#]p$]#^p$^#_p$_#`p$`#ap$a#bp$bA! E@# " AjA !  q!#AF@#!A€€!@#A @A!#Ak$#$#Atj("Aq@#Ak$#$#Atj(! A~q"Ak(AqE  $! Aüÿÿÿ AüÿÿÿOj"$"A$##! s Ak!## K@  (Ar6AlAl#$ Atj"Aj #Ak kAtü 6 Ar6  (Awq6 A## ##"  Ik" AM" Kk!  A$!A$"  q#E@#Aj$A$A$# $A$ #AF@A€€€!A$@@ E #E@# A$A$#$  #"(! Aj! #F#  ( ! !A!@ I@ (! ("AF@A! (A}q6 AF@ ("Aq@A! A}q6 A6  AF@ A6 AF@ (Aj! (! ( " @ 6AA gk" AO" AtA€j 6 E@# A~ wq$ @  6 A6# j$ Ajj!    k"   Ik! E #Gq ( A @#E@A!@  I@ ( Ajj! (AF       k"Ak6 A6 A O@AA gk" AO" AtA€j" (! A6  6 A6 #6 @  6 6# A tr$ # #"  Kk$ A  ! !  @@   k"Ak6 A6 A I AA gk" AO"AtA€j"(! A6  6 A6 #6 @  6  6# A tr$ # #" Ik$ $ !@ I@ (! A6 Ajj!  #@#@# 6 $ #@# 6 $ # j$ #6 $ $  ##rE@A$A$#$ #E#AGq@A$#Aj$#$ #"@ ( #!A$@ @ (! ($Aq@@ "A6 A#AF A#E#AFq#AGq A 6$# ( Ajkj$#E@ A6 $ $ ($ # $  #6# #F@ $ # !@ ("#G@ !  6 #E#AFq##Fq@ A6$ $  #6 A6 A6 $ !  A$A$#@#!A$@ @ (! #6 A6 A6 $ !  #####Ik$#E@#$ @ !@ @ (! ( @ #6 $ #6 A6 A6 $ !  A!#!@ @ (! ( @ ! @  6 $ #6 A6 A6 $ !  A$#$#Aj$#E#AGq@#$ #@#(!@ @ (! #6 A6 A6 $ !  #A6#$#Aj$#$ A$# Å#Q"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A @#Q"( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "E@ (!#Q""( ( A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj(!@ @ ("AqE@  ( F  A~q!  A "@ (Ar6  (Ak6 (Av"AjA (" AIO ( ( AlAmHA @  Š (E@ A6AAh"D9 9  6  m   Ak(A~q  A AMe º@#(!@ @ AjO (IA @A  (!  A @ Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $  # Ak"(jF@ $#A (Ajü š+6} ("N 6 Aÿq!C Aÿq!>  j!M@  MH@ (!A€€ M k" A€€JAÿÿq!@@@@@@@@@@@@ N(  "(€!< " j!=A!@ Aj" ”" ^" C[   ’  CÛÉ@”"”’! C€?  ” ”" C€?’•!  • ”  !*!)"(8   )8¤  *8¨@@@@@@@@@ (    7   1   4   :   =   @   C   F Aj!  Aj!  A!? (d! (\!D (`!GC€?C (0"E-¤! E($(!H " j!@A!<@ M@  >Atj("E@ (!<  Aÿÿqj!@  H@  <( O@ <( Atj("@@@@@@@@@@ (    8   2   5   ;   >   A   D   G Aj!   CAF@    (4("Ak(Av >M@  >Atj("E@ ( ( (#JAˆ    (4("Ak(Av >M@  >Atj("E@ ( ($ (( (,Aˆ  CAF@   > A0 CAF@    (4("Ak(Av >M@  >Atj("E@ ( ( (#JA‡    (4("Ak(Av >M@  >Atj("E@ ( ($ (( (,A‡  (8(!< *! *," ”!#L *”" ”! " j!@  H@C < Atj"* * A0 CAF@    (4("Ak(Av >M@  >Atj("E@ ( ( (#JA†    (4("Ak(Av >M@  >Atj("E@ ( ($ (( (,A†  CAF@    (4("Ak(Av >M@  >Atj("E@ ( ( (#JA… CAF@    (4("Ak(Av >M@  >Atj("E@ ( ($ (( (,A…     (\ (`#JAK     (p (t (xAK A€€j!  x@  (,H@ At" (("(AvO@ AA ( Atj( AtAj" (("(AvO@ ( Atj(# Aj!  ˜|~  ( "(AvO@  (" (AvO@ A At" (j("  (j(  (" (AvO@ ( Atj(# A   ("(AvO@ ( Atj(  ( "(AvO@ ( Atj(# (TAj6T (P@ !#P"|  (D ! (T" (XkAtAj! ((8(! (L! A (H"t! (8(! (\! (0"(Av M@ ( Atj(! Aj" (0"(AvO@ ( Atj(! (<"(!A!@  H@ Al j" (AvO@  ( Atj(q@A t! A! !@  H@  (4"(AvO@  ( Atj("Atj( q@  Alj" 6   Atj"(6  (6  (6  (6  (6  (6 Aj! Aj!  l j" ( O@ ( Atj("E@  (`"(AvO@ ( Atj(!AA³h"A 6  AlA�Àj6  6  Al6 (" DðAG@ AA h"}  6   (  (`"(Av M@ ( Atj  j6 ( "Dc@ « ( Aj "Dc@ « (A "Dc@ « Aj!  Al j" (AvO@ ( Atj(!A!@  H@ A tq@  l j" ( O@ ( Atj("E@ #P"|  (D ! )hB!@@ (A"Dc@ «M B|"B€Ð¬óR AÀ# (r~A #~Ar~A€#~ (A"Dc@ «r~Aà"~ r~ |7h (pE@ (D"(AvA M@ (+P#P"|  (D ¡ ! (AvA M@ ( 9P (pAj6p ( "Dc@ «! ( Aj"Dc@ «"Al" " (@"(AvJ@A A%h"A6 A6 A6   AujAj! 6@ m (@!AA´h"A 6  AlA�Àj6  6  6 ("DðAG@ AA h"}  6   (  (!A!@  H@   Alj"(Atj" (6  (6  ( 6  (6  (6  (6 Aj!  Aj!  (D"(AvA M@ (+H#P"|  (D ¡ ! (AvA M@ ( 9H ò}#9CzD”  ”  ”“" ”   ”  ”“" ”’   ”  ”“" ”’" Œ C]]@C€? •" ”  ”  ”“”  ”  ”“” ”  ”  ”“”  ” ”“” ”  ”  ”“” ”  ”“” Aô$*Aø$*Aü$*A€%*A„%*Aˆ%*AŒ%*A�%*A”%* í}  “!  “" ! “"! ! ! ! ! ! ! !  ”  ”’  ”’" ” ”’ ”’Œ"”  ”  ”’  ”’Œ" ” ”’ ”’"”“" ”#9CzD”]@  “ ”  “ ”’  “ ”’ •" ”’  ”’  ”’  C”’  C”’  C”’C   ”  ”’  ”’Œ"”   ”  ”’  ”’Œ" ”“ •" ”’  ”’  ”’   ”  ”“ •" ”’  ”’  ”’ Ï} ”  ”’  ”’  ”’C]@ Œ! Œ! Œ! Œ!  “" Œ"”  “" Œ"”“  “" Œ"”’   “"”’  ” ”“  ”’  ”’ ”  ”“  ”’  ”’  ” ”  ”’  ”’“! ! ! " C@” C@” C@” �AôAÑh!AAÒh"AÀAýh"6 6 AÀ6 A6  6AAÐh"A6 A6 A6 A6 AÀAýh"6 6 AÀ6 A6  6A AÎh"AAÏhAAÏh6 A6 A6  6A AÎh"AAÏhAAÏh6 A6 A6  6 A AÎh"AAÏhAAÏh6 A6 A6  6 A:A AÎh"AAÏhAAÏh6 A6 A6  6 C8 A6 A6$ A6( A6, A60 A64 A68 A6< A6@ A6D A6H A6L A6P A6T A6X A6\AAûh AAûh6` A6dAAûh AAûh6h A6l A6pA AÎh"� A€+  6  mA AÎh"� AÀ+  6  mA AÎh"� A€+  6  mA AÎh"� AÀ+  6  m  �| E@ A€ (" A€N!#2!@  H@ Al!  ("(O@ ( j-¸!  "(AvO@ ( Atj 9 AlAj!  ("(AvO@ ( Atj+!  (AvO@ ( Atj 9 (Av AlAj!  ( "(AvO@ ( Atj+! M@ ( Atj 9 Aj!  A A«h"A6  6  6 ("DðAG@ AA h"}  6   (  (A "Dc@ « F A?jAv6 A6AAÏh ("Aÿÿÿ?K@ AtAÏh"6 m ” A?jAv" (K@ A6 A6AAÏh AAÏh"6 m  Avj+ 6 (!A!@ I@ Ak(AvO@  AtjB7 Aj!  Üw _}#-Aà&kAÐI@ #-AÐk"$- "*!\ * !] *!^C€? *" ”" *" ”"’C@”“!RC€? *" ”" ’C@”“!S  ”"  * "”"’C@”!T  ”"  ”"“C@”!U  “C@”!VC€?  ’C@”“!W  ”"  ”"’C@”!X  ’C@”!Y  “C@”!Z (! (! #;AAˆü #;" /6À@ /H@  j"- ! -" ("Ak(A nO@ A lj"*! *! *!  ("Ak(A nO@ R A lj"*"” Z *"”’ Y *"”’ ^’!  A0lj" 6( 6, 8 8 8 8 X ” W ”’ V ”’ ]’"8 U ” T ”’ S ”’ \’"8  “8  “8  “8 C8$ Aj!  (À"AJ@}@@@@@ Ak C  *H *“" ” *L *“" ”’ *P * “" ”’‘  *H *"“! *P * "“! *L *"“" *€ “"”  *| “"”“" ”  *x “"”  ”“" ”’  ”  ”“" ”’‘C?”  *L *"“! *P * "“! *H *"“ *| “" *° “"” *€ “" *¬ “"”“”   *¨ “"” *x “" ”“”’   ”  ”“”’CÀ@•  C " *"C?”]  ’ ]r #<]r@ A6À (ÀE@ ("Ak(A nE@ *! *! *! ("Ak(A nE@ R *"” Z *"”’ Y *"”’ ^’! A6À A6( A6,  8  8  8  8  X ” W ”’ V ”’ ]’"8  U ” T ”’ S ”’ \’"8   “8   “8   “8 C8$ #8!AØ*!(AÔ*!NAÐ*!OA! @@ A N A!@@@@@ (ÀAk C€?8$A!   *L" *"“! *H" *"“! *P" * "“!  ”  ”’  ”’Œ"C_@ A6À C€?8$A   ”  ”’  ”’"C_@ A6À (\! (X! *T! *P! *L! *H! *D! *@! * ” ! !”’ & &”’!?  ”  !”’  &”’Œ!  ”  ”’  ”’!!@ >C_  ”  ”’  ”’Œ"&C_q@ A6À  +8  *8  8  8  8  8  8  8  8  98$  6(  6,  ;C_ %C_q@ A6À  18  08  /8  .8  -8  ,8  8  8  8  :8$  6(  6,  C^q C^q@ A6À  88  78  68  58  48  38  8  8  8  28$  6(  6,  +80  *84  88  8<  8@  8D  8H  8L  8P  98T  6X  6\A ?C_   > ?•8$  ?•8TA  A  ”  ”’  ”’"C_   ' •8$   •8T  @ •8„A  C€?8$A !   *!* *!+ * !, *!- *!. *!/ *D!0 *@!1 * *�!? (,! ((! *$!' (\! (X! *T!@ *H""  *"“"” *L""  *"“"”’ *P"  * "“"”’!) *x"  “"” *|"  “"B”’ *€"  “"C”’!H *¨"  “"D” *¬"  “"E”’ *°"  “"A”’!I   “""”   “"#”’   “"$”’!J " "” # #”’ $ $”’!F  "”  #”’  $”’Œ!_   “""”   “"#”’   “"$”’!` " "” # #”’ $ $”’!a  "”  #”’  $”’Œ!b   “""”   “"#”’   “"$”’!c " "” # #”’ $ $”’!d  "”  #”’  $”’Œ!e  ” B B”’ C C”’!K  ”  ”’  ”’!L D D” E E”’ A A”’!f@@@  ”  B”’  C”’Œ"jC_  ”  ”’  ”’Œ"PC_q  D”  E”’  A”’Œ"kC_q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  cC_ )C_q _C_q@ A6À  58  48  38  28  18  08  8  8  8  @8$  6(  6,  JC_ HC_q bC_q@ A6À  %8  ;8  :8  98  88  78  8  8  8  68$  6(  6,  `C_ IC_q eC_q@ A6À  ?8  >8  &8  =8  <8  !8  8  8  8  8$  6(  6,   ”  ”“  “"  “"”  “"#"  “"A"C”“"”  ”  ”“   “"""”  “"$"D ”“"B”’  ”  ”“ D C”  ”“"C”’!g  ”  ”“ A  “"G"E”   “"”“"D”  ”  ”“   “"” " E”“"E”’  ”  ”“ " ” A ”“"A”’!h  ”  ”“  #” G ”“""”  ”  ”“ G $”  #”“"#”’  ”  ”“  ”  $”“"$”’!i  ”  ”“  “"  “"”  “"  “"M”“"G”  ”  ”“   “"”  “"Q ”“"[”’  ”  ”“ Q M”  ”“"M”’!Q  ”  ”“ ”  ”  ”“ B”’  ”  ”“ C”’"lC_  ”  ”“ D”  ”  ”“ E”’  ”  ”“ A”’"mC_q )C^q PC^q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  580  484  388  28<  18@  08D  8H  8L  8P  @8T  6X  6\ LC_   ) L•8$  P L•8T   ”  ”“ "”  ”  ”“ #”’  ”  ”“ $”’"LC_  ”  ”“ ”  ”  ”“ B”’  ”  ”“ C”’"PC_q HC^q jC^q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  %80  ;84  :88  98<  88@  78D  8H  8L  8P  68T  6X  6\ KC_   H K•8$  j K•8T   ”  ”“ D”  ”  ”“ E”’  ”  ”“ A”’"HC_  ”  ”“ "”  ”  ”“ #”’  ”  ”“ $”’"KC_q IC^q kC^q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  ?80  >84  &88  =8<  <8@  !8D  8H  8L  8P  8T  6X  6\ fC_   I f•8$  k f•8T   ”  ”“ G”  ”  ”“ [”’  ”  ”“ M”’"IC_ gC_q JC^q _C^q@ A6À  58  48  38  28  18  08  8  8  8  @8$  6(  6,  %80  ;84  :88  98<  88@  78D  8H  8L  8P  68T  6X  6\ FC_   J F•8$  _ F•8T  QC_ iC_q `C^q bC^q@ A6À  %8  ;8  :8  98  88  78  8  8  8  68$  6(  6,  ?80  >84  &88  =8<  <8@  !8D  8H  8L  8P  8T  6X  6\ aC_   ` a•8$  b a•8T   ”  ”“ G”  ”  ”“ [”’  ”  ”“ M”’"JC_ hC_q cC^q eC^q@ A6À  ?8  >8  &8  =8  <8  !8  8  8  8  8$  6(  6,  580  484  388  28<  18@  08D  8H  8L  8P  @8T  6X  6\ dC_   c d•8$  e d•8T  C€¿C€?  “  “"  “"”  “"  “")”“”  “   “"”  “"F ”“”’  “ F )”  ”“”’"C]")   ”  ”“”   ”  ”“”’   ”  ”“”’”!F )   ”  ”“”   ”  ”“”’   ”  ”“”’”! )   ”  ”“”   ”  ”“”’   ”  ”“”’”! ) ”! )   ”  ”“”   ”  ”“”’   ”  ”“”’”")C] gC^q lC^q PC^q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  %80  ;84  :88  98<  88@  78D  8H  8L  8P  68T  6X  6\  58`  48d  38h  28l  18p  08t  8x  8|  8€  @8„  6ˆ  6Œ  ” B B”’ C C”’"C_   g •8$  l •8T  P •8„  C] hC^q HC^q mC^q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  580  484  388  28<  18@  08D  8H  8L  8P  @8T  6X  6\  ?8`  >8d  &8h  =8l  <8p  !8t  8x  8|  8€  8„  6ˆ  6Œ D D” E E”’ A A”’"C_   h •8$  H •8T  m •8„  "C] iC^q LC^q KC^q@ A6À  /8  .8  -8  ,8  +8  *8  8  8  8  '8$  6(  6,  ?80  >84  &88  =8<  <8@  !8D  8H  8L  8P  8T  6X  6\  %8`  ;8d  :8h  98l  88p  78t  8x  8|  8€  68„  6ˆ  6Œ " "” # #”’ $ $”’"C_   i •8$  L •8T  K •8„  FC] QC^q JC^q IC^q@ A6À  58  48  38  28  18  08  8  8  8  @8$  6(  6,  %80  ;84  :88  98<  88@  78D  8H  8L  8P  68T  6X  6\  ?8`  >8d  &8h  =8l  <8p  !8t  8x  8|  8€  8„  6ˆ  6Œ G G” [ [”’ M M”’"C_   Q •8$  J •8T  I •8„  "C_   F •8$   •8T   •8„  ) •8´A  C€?8$  A  A ! E@#;" AÄjAÄü  (ÀAF@ C8 C8 C8 C8 C8 C8@@@@@ (ÀAk *! *!  *8  8  8 *! *!  * 8  8  8  (, (( *  * * *! *! * ! (\ (X *P *L *H *D! *@! *  ”!;  ”!  >8  ;8  8 A6 (" ("Ak(AnO@ Alj" : ? >”’ 7’ 6 >”“C?”8  ? ;”’ 9’ 6 ;”“C?”8 ? ”’ ’ 6 ”“C?”8 5 “8 Aë-!Aê-!Aé-! Aè-: : : :  @ AF@ (´"E@ *¤! *¨! *¬! *°!?#F"Ak(AvE@ ("E@ A6  8 6 ” 8 ”“ 7 ”’"” 5 5 ” 6 ”“ 7 ”’" ”“C@”’ <’!  5 8 ” 5 ”“ 7 ”’"” 6 ”“C@”’ C’! 6 ” 8 ”“C@”’ B’! !5 (! ( ! (œ! (d!@  J@  Ak(A nO@  Ak(A nO@  A l"j" j"*! *! *8  8  8 Aj!  ( (d6 (C8 ($"Ak(A nE@ #?C ×£;”C€@”!9 58 " 8 "8 (A6 (C8A„*!A€*!Aü*!Aø*! Aô*!Að*! Aì*8  8  8  8  8  8  8 A:$  A¬j-!,!+!e!d!c!b!a!`!_!^!]"\! @ e": ?C’" 9’^@ C8¬ A;° A:² A:³ A:´ A:µ A:¶ A:· A:¸ A:¹  ^!7 ]!9 :# I”  5 ” 6 ”“C@”’"? J “"A”’ 9 6 ” 8 ”“C@”’": j “"X”’"G  Ak(AvO@  Atj"*! 8 *"” 5 *"”“ 7 ”’!  8 6 ” 8 ”“ 7 ”’"” 5 5 ” 6 ”“ 7 ”’"”“C@”’"9 I”  5 ” 6 ”“C@”’" A”’  6 ” 8 ”“C@”’" X”’"D”C]  A lj"*! 8 *"h” 5 *" ”“ 7 ”’!t  8 6 ” 8 ”“ 7 h”’"” 5 5 ” 6 h”“ 7 ”’"”“C@”’ <’" “" ” W 5 t” 6 ”“C@”’ C’" ;“"”’ f h 6 ” 8 t”“C@”’ B’" =“"”’Œ E ” F ”’ g ”’Œ"”C]q G ”C^q@ I I” A A”’ X X”’C·Ñ7” G G”" D D”"  ]_@ @}C€? G G D“•" “" >” 9”’" ”  ?” ”’" ”’  :” ”’" ”’"#9CzD”^@C€? ‘•" ”! ”! ”!D   C!C!DC " s “” D J “”’  j “”’]  -! -! C8 A: A: A: A:  ) * < C B 6 8 5 7 Œ DŒ Œ  AjP * *“"Œ  C] H]A    ) * < C B 6 8 5 7 ) * < C B 6 8 5 7AV!(!'!&!%!V!U!T!S!$!#!"!R!Q!P!O!!! !!N!M!L!K  N   ) * < C B 6 8 5 7 ) * < C B 6 8 5 7AV!(!'!&!%!V!U!T!S!$!#!"!R!Q!P!O!!! !!N!M!L!K " # O  ) * < C B 6 8 5 7AV!(!'!&!%!V!U!T!S!$!#!"!R!Q!P!O!!! !!N!M!L!K %"AG@  ) * < C B 6 8 5 7 S T U & P  A6 C8 A: A: A: A: ) * < C B 6 8 5 7AV!(!'!&!%!V!U!T!S!$!#!"!R!Q!P!O!!! !!N!M!L!K &! %! V! #! "! R! ! ! N! ("@  : AF@  8  :  : AF@  8  :  :  8  :  :   ^  ) * < C B 6 8 5 7  N  ) * < C B 6 8 5 7  O  AF  ( E    ^ ]q  * H’^r@ ("C8 C8 C8 C8 C8 C8 A6 A6 A6$ A6( A6, A60 C84 A68 A6< ("Ak(AnE@ C8 C8 C8 C8 A: A: A: A: A6 C8 A: A: A: A:  ) * < C B 6 8 5 7 S T U   AjP ( AF@ *! *!  *8  8  8 *! *!  * 8  8  8  ( 6  ($6$  ((6(  (,6,  (060  *484  (868  (<6< (" ("Ak(AnO@ ("Ak(AnE@ Alj" (! -! -! -! -! * ! *! *! *8  8  8  8  :  :  :  :  6 -! -! -! -!  *8  :  :  :  :  A: #-A j$- 1(L"( E@ (("E@ ($Aj6$ (( -«j6( (´"E@ *ˆ!: *Œ!G *�!H *”!I *˜!@ *œ!A * !9#F"Ak(AvE@ ("E@ A6 (! ( ! (œ! (d!A!@ H@ Ak(A nO@ Ak(A nO@  A l"j"  j"*! *! *8 8 8 Aj!  ( (d6 (C8 ($"Ak(A nE@ :8 G8 H8 ($"Ak(A nAM@ I8 @8 A8 (A6 (C8  <8  C8  B8  68  88  58  78 A:$  A¬j-!,!+!e!d!c!b!a!`!_!^!]"\! @ e" 9#?C ×£;”C€@”" ’^@ C8¬ A;° A:² A:³ A:´ A:µ A:¶ A:· A:¸ A:¹  @ #A!#8Œ! (x!A!@  H@  Ak(AvO@ Atj"*! * ” * =”’  >”’" ^@ ! ! Aj!  M@ Atj"* ! *"F ?” *"E =”’ *"; >”’"Œ  C]Cî|?^@ ("Ak(AnE@  : 8 6 G” 8 :”“ 7 H”’"” 5 5 :” 6 H”“ 7 G”’"”“C@”’ <’8  G 5 8 H” 5 G”“ 7 :”’"” 6 ”“C@”’ C’8  H 6 ” 8 ”“C@”’ B’8 Ak(AnE@ C8 Ak(AnE@ A: A: A: A: Ak(AnAM@  I 8 6 @” 8 I”“ 7 A”’"” 5 5 I” 6 A”“ 7 @”’"”“C@”’ <’8  @ 5 8 A” 5 @”“ 7 I”’"” 6 ”“C@”’ C’8  A 6 ” 8 ”“C@”’ B’8 Ak(AnAM@ C8 Ak(AnAM@ A:$ A:% A:& A:'   MAF@ Ak(AnE@ F *” E *”’ ; *”’ “!: Ak(AnAM@ F *” E *”’ ; *”’ “" 9 ’"_  :`r@ Ak(AnE@ * 9 :’C?”" F”“! *  ;”“! *  E”“! Ak(AnAM@ * 9 ’C?”" F”“! *  ;”“! *  E”“!  F8  E8  ;8 A6 (" ("Ak(AnO@ Alj" 8  8  8  : 9“8 Ak(AnE@ -! -! -!  -:  :  :  : Aj" ("Ak(AnO@ Alj" 8  8  8   9“8 Ak(AnAM@ -'! -&! -%!  -$:   ?8  =8  >8 A6 (" ("Ak(AnO@ Alj" 9 ?”“ _’C?”8  ] 9 =”“ `’C?”8  ^ 9 >”“ a’C?”8   9“8 Aë-!Aê-!Aé-! Aè-:  A!A! #8Œ! (¤!#F"Ak(AvE@ ("E@ ("Ak(A nE@  : 8 6 G” 8 :”“ 7 H”’" ” 5 5 :” 6 H”“ 7 G”’"”“C@”’ <’8  G 5 8 H” 5 G”“ 7 :”’"” 6 ”“C@”’ C’8  H 6 ” 8 ”“C@”’ B’8 Ak(A nAM@  I 8 6 @” 8 I”“ 7 A”’" ” 5 5 I” 6 A”“ 7 @”’"”“C@”’ <’8  @ 5 8 A” 5 @”“ 7 I”’"” 6 ”“C@”’ C’8  A 6 ” 8 ”“C@”’ B’8@ (xH@ Ak(AvO@  Atj"* !E Ak(A n" *";Œ!= *">Œ!? *"Œ!A!C! E@ *! *! *!A!@ AH@  Ak(A nO@  A lj"*! = * “” ? * “”’   “”’" ^@ ! ! Aj!  M@ ;  A lj"*” > *”’  *”’ E“" ^@ ! ! Aj!  Ak(AvO@  Atj"* * * Aÿq! "g 9^ A!AØ*!AÔ*!AÐ*!#8Œ!A! A! I 8 6 @” 8 I”“ 7 A”’"” 5 5 I” 6 A”“ 7 @”’" ”“C@”’ <’"F : 8 6 G” 8 :”“ 7 H”’"” 5 5 :” 6 H”“ 7 G”’" ”“C@”’ <’“!X A 6 ” 8 8 A” 5 @”“ 7 I”’" ”“C@”’ B’"E H 6 ” 8 8 H” 5 G”“ 7 :”’" ”“C@”’ B’“!D @ 5 ” 6 ”“C@”’ C’"; G 5 ” 6 ”“C@”’ C’“!h ( !/ (œ! (¤!@  (pH@  /Ak(AvO@ / Atj"-! - - - Aj" /Ak(AvO@ / Atj"- - -! -" Ak(A nO@  A lj"*!= *!> *!?  Ak(AvO@  Atj"*!t *!s *!W  Ak(AvO@  Atj"*!f W X” s h”’ t D”’"j *" X” *" h”’ f D”’"J”C]@ X X” h h”’ D D”’C·Ñ7” j j”" J J”" ]^E@}C€? j j J“•"J“" W” J ”’" ” s” J ”’"W W”’ t” J f”’" ”’" #9CzD”^@C€? ‘•" ”!  ”!  W”!  C! C!C " F ?“”  ; >“”’ E =“”’" ^@ ! !A! ! ! ! Aj!  ! !  9^  g 9“!#F" Ak(AvE@ ("E@ (¤" Ak(Av M@ Atj" * !> *!W *!g *!F ("Ak(AnE@  :" 8 6 G” 8 ”“ 7 H”’"?” 5 5 ” 6 H”“ 7 G”’":”“C@”’ <" ’8  G 5 8 H” 5 G”“ 7 ”’"” 6 ?”“C@”’ C’8  H 6 :” 8 ”“C@”’ B’8 Ak(AnE@ C8 Ak(AnE@ A: A: A: A: Ak(AnAM@  I 8 6 @” 8 I”“ 7 A”’"<” 5 5 I” 6 A”“ 7 @”’":”“C@”’ ’8  @ 5 8 A” 5 @”“ 7 I”’"” 6 <”“C@”’ C’8  A 6 :” 8 ”“C@”’ B’8 Ak(AnAM@ C8 Ak(AnAM@ 9! A:$ A:% A:& A:'   MAN@ Ak(AnE@ F *” g *”’ W *”’ >“!E Ak(AnAM@ F *” g *”’ W *”’ >“";#?C ×£;”C€@”"9_ 9 E`r@ Ak(AnE@ * E ’C?”"9 F”“!= * 9 W”“!> * 9 g”“!? Ak(AnAM@ * ; ’C?”"9 F”“!< * 9 W”“!: * 9 g”“!9  F8  g8  W8 A6 (" ("Ak(AnO@  Alj" =8  ?8  >8  E “8 Ak(AnE@ -! -! -!  -:  :  :  : Aj" ("Ak(AnO@  Alj" <8  98  :8  ; “8 Ak(AnAM@ -'! -&! -%!  -$:  :  :  : ( AF@ (" ("Ak(AnO@  Alj* !9 Aj" ("Ak(AnO@ 9  Alj* "  9^! AF  (  #?C ×£;”’  “]A @@ I 8 6 @” 8 I”“ 7 A”’"?” 5 5 I” 6 A”“ 7 @”’"”“C@”’ ’  8 6 G” 8 ”“ 7 H”’"<” 5 5 ” 6 H”“ 7 G”’"”“C@”’ ’":“!9 A 6 ” 8 8 A” 5 @”“ 7 I”’" ”“C@”’ B’ H 6 ” 8 8 H” 5 G”“ 7 ”’"”“C@”’ B’"“! @ 5 ” 6 ?”“C@”’ C’ G 5 ” 6 <”“C@”’ C’" “! (œ! ( " Ak(Av M@ Atj"- - -! -" Ak(AvO@ Atj"- -! - - Ak(A n M@  A lj"*!6 *!5 *!7 Ak(A n M@ 7 5 6  A lj"* 7“ * 5“ * 6“ :  9  '!r!q!p!o!n!m!l"k!: r" C€?_ n"C€?_ C`q C`qqE  8  8  8 A6 (" ("Ak(AnO@  Alj" :  ”“ o"9’C?”8  l"  ”“ p"’C?”8  m"  ”“ q"’C?”8  9 :“”   “”’   “”’ “8 A:  : A:  :   :  :  :  AF@@ *ˆ! *Œ! *�! *”!9 *˜! *œ! * !E *¤!; *¨! *¬!: *°!= A6 ; 8 6 ” 8 ;”“ 7 :”’"” 5 5 ;” 6 :”“ 7 ”’" ”“C@”’ <’"< 9 “"> < “”  “"? 5 8 :” 5 ”“ 7 ;”’" ” 6 ”“C@”’ C’"7 “”’  “" : 6 ” 8 ”“C@”’ B’": “”’" C_    > >” ? ?”’  ”’" ^ 9    •" >”’   ?”’   ”’ !w!v"u"9“"" ” 7 v"“"" ”’ : w" “" " ”’" = E’"#?C ×£;”C€@”’" ”^ C!C€?!;C!> ‘"5 5”#9CzD”^@C€? 5•" ”!>  ”!;  ”!  >8  ;8  8 A6 (" ("Ak(AnO@ Alj" < = >”“ 9’ E >”’C?”8 7 = ;”“ ’ E ;”’C?”8 : = ”“ ’ E ”’C?”8 5 “8 Aë-!Aê-!Aé-! Aè-: : : :  *ˆ! *Œ!@ *�! *”! *˜! *œ! * !A *ˆ! *Œ! *�! *”!F *˜!E *œ!; * !X#-Aà&kAI@ #-Ak"$-#F"Ak(AvE@ ("E@ A6 A X’"h#?C ×£;”C€@”’!t 8 ” 5 ”“ 7 ”’!= F 8 6 E” 8 F”“ 7 ;”’">” 5 5 F” 6 ;”“ 7 E”’"?”“C@”’ <’"s  8 6 ” 8 ”“ 7 ”’":” 5 5 ” 6 ”“ 7 ”’"9”“C@”’ <’"f“"J J” E 5 8 ;” 5 E”“ 7 F”’"” 6 >”“C@”’ C’"W  5 =” 6 :”“C@”’ C’"g"F“"> >”’ ; 6 ?” 8 ”“C@”’ B’"E  6 9” 8 =”“C@”’ B’";"?“"< <”’!= @ C f F ?C# @ F“"”’ < : ?“"”’! #”’ ?  <”’   6 ” 5 ”’ 7 ”’! =#”’ 7 <”’" ”“"#9CzD”^}CC€?  ”  =”“ •" C€?^ C]C ! 9  ” ’ =•"DC]}C!DCC€? Œ •" C€?^ C] DC€?^}C€?!DCC€?  “ •" C€?^ C]  " 6”’ @  5”’ :  7”’  f D J”’ F D >”’ ? D <”’ D !r!q!p!o!n!m!l"k!F@ o"> F“"" ” p"? l"<“"" ”’ q"6 m"5“" ”’" t t”^ #?C ×£;”C ×#<”"t t”]r C8 C8 C8  9“"= =”  @“"7 7”’  :“" ”’" #9CzD”^@  ‘8C€? *•" =” 7” ”  C8CCC !}!|"{!D *#?C ×£;”]  s f“"= =” W g“"7 7”’ E ;“" ”’" #9CzD”^@  ‘8C€? *•" =” 7” ”  C8CCC !w!v"u!= *#?C ×£;”] |"j w"7” }"J v" ”“" ” J =” D 7”“" ”’ D ” j =”“" ”’C ×#;]@ ("Ak(AnE@  f8  g8  ;8 Ak(AnE@ C8 Ak(AnE@ A: A: A: A: Ak(AnAM@  s8  W8  E8 Ak(AnAM@ C8 Ak(AnAM@ A:$ A:% A:& A:'  DŒ jŒ JŒ D 9” j @”’ J :”’ŒL"AF  D j J D ” j ”’ J ”’L AF@ Ak(AnE@  9“"; * 9“” " @“"= * @“”’ " :“"7 * :“”’"C_ 9 @ :  ; ;” = =”’ 7 7”’"^   9  •" ;”’ @  =”’ :  7”’ !}!|"{!f Ak(AnAM@  9“"; * 9“” @“"= * @“”’ :“"7 * :“”’"C_ 9 @ :  ; ;” = =”’ 7 7”’"^   9  •" ;”’ @ =”’ : 7”’ !w!v"u!W Ak(AnE@ * f“" ” * |"E“" ”’ * }";“" ”’‘!s Ak(AnAM@ * W“" ” * v"=“" ”’ * w"7“" ”’‘"g h_ h s`q@ s t] g t]r  Ak(AnE@ C€? s•" * f“”!:}  * ;“”!  * E“”!9 Ak(AnAM@ :C€? g•" * W“”"’" ” 9  * =“”"’" ”’   * 7“”"’" ”’"#9CzD”^@C€? ‘•" ”!>  ”!D  ”  C!DC!>C !5 Ak(AnE@ * A ”’ ;’ X 5”“C?”! * A 9”’ E’ X D”“C?”! * A :”’ f’ X >”“C?”! Ak(AnAM@ * A ”’ 7’ X 5”“C?”! * A ”’ =’ X D”“C?”! * A ”’ W’ X >”“C?”!  >8  D8  58 A6 (" ("Ak(AnO@ Alj" 8  8  8  s h“8 Ak(AnE@ -! -! -!  -:  :  :  : Aj" ("Ak(AnO@ Alj" 8 8 8 g h“8 Ak(AnAM@ -'! -&! -%! -$: : : :    ”  ”’  ”’" #9CzD”^@  ‘8C€? *•" ” ” ”  C8CCC !w!v"u! *! 5 A w" ”’ 6’ X ”“C?”! < A v" ”’ ?’ X ”“C?”!  8  8  8 A6 (" ("Ak(AnO@ Alj" F A ”’ >’ X ”“C?”8 8 8  h“8 Aë-!Aê-!Aé-! Aè-: : : : #-Aj$- ( E@ A6LA  A! (L@ (H"Ak(AŒnE@ (ˆ!@ -J@ -AO@ (H"Ak(AŒnE@  -A8lj"-4 (0 (,! *( *$ *  *! * * * *  * * *@@@@@ - ! !2  ! !3  ! !4  ! !. -Aj!-   (HAk(AŒnE@ AŒAËh"6H  m (HAAŒü A6L (H"Ak(AŒnE@  ( 6ˆ Y Z”" [ i”"’C@”!= Y [”" Z i”"“C@”!> Z [”" Y i”" ’C@”!? C€? Z Z”" [ [”"’C@”“"< *"9”  “C@”"6 *"”’  ’C@”"5 *"”’8à  = 9”C€? Y Y”" ’C@”“"7 ”’ “C@”": ”’8ä  > 9” ? ”’C€?  ’C@”“"9 ”’8èA!-@ - ( H@ ( -j" ("Ak(AnO@ <  Alj"*"” 6 *"”’ ( * ! 5 *"”’" ~ �“’! > ” ? ”’ 9 ”’" € ƒ“’! = ” 7 ”’ : ”’"  ‚“’! - -At -Atr -Atrr!C!A!A!@ J@ AO@ @@@@@  2!0  3!0  4!0  .!0  0F@@@@@@  !  !  !  ! !A!@@@@@  A!2  A!3  A!4  A!.  Aj!  (H -A8lj" ý ý  ý  ý ý   ý ý  ý  ý ý  ý *(ý  ¾ý ý  A60  :4 -Aj!-  A E@A @ (H"Ak(AŒnE@ *èŒ! *äŒ! *àŒ8à 8ä 8è (ˆ!A!@ J@ (H A8lj" *! *! *! *! * ý *ý  *ý  *ý ý   ý ý  ý  ý ý  Aj!  (P"Ak(A(nE@ ($ (  )!„ *! *! * ! *! *! *! (P"Ak(A(nE@ ($ (  )!… *! *! * ! *! *! *! 1(¸"E@   „  … (8Œ 1(¼"E@   „  … (8� C^ C^r@ (!     ] ("AF} *° } AF} (´"E@ *0C€>”C  *  " AF} *° } AF} (´"E@ *0C€>”C  *  "  ]”8” C8”  Z Y ” Z ”“ i ”’"” [ [ ” Y ”“ i ”’"”“C@”’ y x ” y ”“  ”’"” z z ” x ”“  ”’"”“C@”’“8˜   [ Z ” [ ”“ i ”’"” Y ”“C@”’ z y ” z ”“  ”’"” x ”“C@”’“8œ   Y ” Z ”“C@”’ x ” y ”“C@”’“8  1(Ü"0 (DA€€€qA @ /„! 1/ ! (Aj! /„! (Aj! (H".Ak(AŒnE@ ~ .*’! € .*’!  .*’! (H".Ak(AŒnE@ 0        .*à .*ä .*è 0( E@ A6L  (DAÿÿÿ{q6DA -†AqA -†Aq @  (DA€€Àr6D  (DAÿÿ¿q6D A �}~#-Aà&kAI@ #-Ak"%$- Aÿq" (4(""Ak(AvO@ " Atj("E@ ("!' AN ( AÿÿqjNA  (0(L"( E@ (("E@ ( !& Aÿÿqj!(@ (H@ '( O@ '( Atj("E@ @@@@@@@@@ (    9    3   6    <    ?    B    E    H #8 *¬^A#8 *°^ A  (""Av" &(OA  &("#Ak(AvO@ # Atj)B "A?q­†ƒBR A E@ %C8 %C8 (0! * !C!C! @@@@@@@@@ (   *¨" ” *¬" ”’C’‘!  *Ü *à’ *ä“ *è’" Œ C]!  *ä *ü’" ” *è *€’" ”’ *ì *„’" ”’‘! *ð *ˆ’" ” *ô *Œ’" ”’ *ø *�’" ”’‘!  AÈj"* *’ * “" ” *" ”’ *" ”’‘! *" ” * " ”’ *" ”’‘!  *ü" ” *€" ”’ *„" ”’‘! *ˆ" ” *Œ" ”’ *” *˜’ *œ“" ”’‘!  *Ä" ” *È" ”’ *Ì" ”’‘! (!# ("" ( "$( O@ $( "Aàlj("$ #( O@ #( $Atj("#E@ #(!# " ( "$( O@ $( "Aàlj( "" #( O@ #( "Aülj""* "* "* "* "* "* "*!!!!!!! " *$" ” " * "”“ " *"”’ *(" " ”’ ” ”“  ”’ ”’ ”  ”“  ”’ ”’  ” ”  ”’ ”’“!!!"! " AØ$*" ” "AÔ$*"”“ " AÐ$*"”’!   ” ”“ ”’"”   ”  ”“ ”’"”“C@”’   ”  ”“C@”’  ” ”“C@”’!!"! (!# ("" ( "$( O@ $( "Aàlj("$ #( O@ #( $Atj("#E@ #(!# " ( "( O@ ( "Aàlj( " #( O@ #( Aülj"* * * * * * *!!!!!!! ! " *@" ” " *<"”“ " *8" ”’ *D" ”’  ”  ”“  ”’ ”’  ” ”“  ”’ ”’  ”  ” ”’  ”’“!!!"! " AØ$*" ” "AÔ$*"”“ " AÐ$*"”’!   ” ”“ ”’"!”   ”  ”“ ”’"”“C@”’   ”  !”“C@”’  ” ”“C@”’! !"! } " " "” " " ”“" ”  ”  ”“" ”’  ”  ”“" ”’"#9CzD”^@C€? ‘•" ”!  ”!  ”  C!C!C ! *Ð *Ü’ *è *ì“" ”’ *ð" ”’" ” *Ô *à’  ”’ ”’" ”’ *Ø *ä’  ”’ ”’" ”’‘!  A° j"*0! *(" ” *," ”’  ”’‘! *4" ” *8" ”’ *<" ”’‘!  Aà j"*! *" ”  ”’ * * ’ *$“" ”’‘! *"Œ  C]! % ”8 %  ”8 %* *¬`A %* *°` @ &( (""Av" &("Ak(AvO@  Atj)B "A?q­†„!)  Ak(AvO@  Atj )7 Aj!  #-Aj$- »-} (! (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@ ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü! *Ø!! *Ô!" *Ð!# *Ì!$ *È!% *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!& *x *t *p *l *h *d *`! *\! *X! *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!1 * !2 *!3 *! *! *! * ! * * *  ("( O@ ( Aülj"*x *t *p *l *h *d *`!4 *\!5 *X!6 *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$! * ! *! *! *! *! * ! * * * *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!' (ø *ô *ð *ì *è!( *ä!) *à!* *Ü!+ *Ø!, *Ô!- *Ð!. *Ì!/ *È!0 &8H '8L %8P $8T #8X "8\ !8` 8d 8h 8l 8p 08t /8x .8| -8€ ,8„ +8ˆ *8Œ )8� (8” A  AG6ì A  AG6ð  * “"”  * “"”“  * “"”’!    ”  ”“  ”’" ”   ”  ”“  ”’"”“C@”’   ”  ”“C@”’   ”  ”“C@”’!!"8ô 8ø 8ü *4 4“" ” *0 5“"”“  *, 6“"”’!  ” ”“  ”’"” ” ”“  ”’"”“C@”’  ” ”“C@”’ ” ”“C@”’!!"8€ 8„ 8ˆ  3“8Œ  2“8�  1“8”} *€" *ô"“ *Œ’" ” *„" *ø"“ *�’" ”’ *ˆ" *ü"“ *”’" ”’" #9CzD”^@C€? ‘•" ”! ”! ”!  C!C! C ! C€? & '’  ”  ”“" % ” "  ”  ”“" ”’   ”  ”“" ”’ $ ” ! ”’  ”’ # ” ”’  ”’!!"” ”’ ”’’  ”  ”“" 0 ” -  ”  ”“" ”’ *  ”  ”“" ”’ / ” , ”’ ) ”’ . ” + ”’ ( ”’!!"” ”’ ”’’" •C C^8¤  *À! *! CCC *¼" C[  ’ CÛÉ@”"”’! C€? ” ”" C€?’•!  • ” !!"8˜ 8œ 8  -”E@ C8Ü C8à C8ä C8è ¾ 6} *H! *L! *p! *l! *h! *d! *`! *\! *X! *T!! *P!" *”!# *�!$ *Œ!% *ˆ!& *„!' *€!( *|!) *x!* *t!+ (8!8 (ì"AF#K 8( Atj "* <*(!! <*$!" <* ! <* <*! <*  <*! <*! <*! <*! <*! (ð"A€ q@ =( (ìAtj" 8  8  8  8  8  8 ?A€ q@ =( (ðAtj" 8 8 8 8 8 8 à4} (! (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü! *Ø! *Ô!! *Ð!" *Ì!# *È!$ *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!% *x *t *p *l *h *d *`!& *\!* *X!+ *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!, * !- *!. *! *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è!' *ä!( *à!) *Ü!/ *Ø!0 *Ô!1 *Ð!2 *Ì!3 *È!4 *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!5 *x *t *p *l *h *d *`!6 *\!7 *X!8 *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!9 * !: *!; *! *! *! * ! * * * %8H 58L $8P #8T "8X !8\ 8` 8d 8h 8l 8p 48t 38x 28| 18€ 08„ /8ˆ )8Œ (8� '8” *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!!!!!!! ! " "' " "!” "" "#”“” "( " "$” "% !”“”’ ") % #” $”“”’#9CzD”]:´ A  AG6¬ A  AG6° *$"”  * "”“  *"”’ *(" ”’8À  ” ”“  ”’  ”’8Ä ” ”“  ”’  ”’8È  ” ” ”’  ”’“8Ì * &“"”  * *“"”“  * +“"”’!  ” ”“  ”’"&”   ” ”“  ”’"”“C@”’8´   ” &”“C@”’8¸  ” ”“C@”’8¼  *@"”  *<" ”“  *8" ”’ *D" ”’8Ü  ”  ”“  ”’  ”’8à  ”  ”“  ”’  ”’8ä  ”  ”  ”’  ”’“8è  *4 6“"”  *0 7“" ”“  *, 8“" ”’!   ”  ”“  ”’"”   ”  ”“  ”’" ”“C@”’8Ð  ”  ”“C@”’8Ô   ”  ”“C@”’8Ø ; .“8ì : -“8ð 9 ,“8ô  *Ð! *! CCC *Ì" C[   ’ CÛÉ@”"”’! C€? ” ”"C€?’•!  •  ” !!"8” 8˜ 8œ  *Ü! *! CCC *Ø" C[   ’ CÛÉ@”"”’! C€? ” ”"C€?’•!  •  ” !!"8  8¤ 8¨ ' ( ) % " $ # !&!!!!!!! ! " 8ø 8ü 8€ 8„ 8ˆ 8Œ 8� 8” 8˜ -”E@AØ*!AÔ*! AÐ*8ä 8è 8ìAØ*!AÔ*! AÐ*8ð 8ô 8øAØ*!AÔ*! AÐ*8ü 8€ 8„AØ*!AÔ*! AÐ*8ˆ 8Œ 8� ý 1} *H! *L! *p! *l! *h! *d! *`! *\! *X! *T! *P! *”! *�! *Œ! *ˆ!! *„!" *€!# *|!$ *x!% *t!& (8!3 (¬"AF#K 3( Atj "*!  ”  ”“ ”  ”  ”“ ”“  *„"”  ”“ ”  *ˆ"”  ”“ ”“’ ( )’" ’! 1 ” <" ”“  ”  ”  ”!!" *€” ” ”!!"“  “  “!!"" ” " ”“’ ’!  ” =" ”“  ” " ”“’! :" ” ”“ @" ”  ”“’ ’" ” ” 1 ”“  ”  ”“’" ”“!  ” 9 ”  ”“ ? ”  ”“’" ”“!#9CzD”  ” ”’  ”  ”“"”’"Œ  C]]@C€? •"  %”  *”’  '”’”!  %”  ”  ”“ *”’ ”  ”“" '”’”!  %”  *”’  ” ”“ '”’”!   AØ*!AÔ*!AÐ* ” # ”“’8ü  $ ” # ”“’8€  $ ” # "”“’8„ *ü"" ” *€" " ”’ *„"" ”’ 7 7”^@ 7}  ” ”’  ”’"#9CzD”^@C€? ‘•" ”!  ”!  ”!   C!C!C ”8ü 7 ”8€ 7 ”8„ , ( *„ “" ”“!, - ( *€ “"”“!- . ( *ü “"”“!.  I  ”  ”“"” F  ” ”“"”’ C ”  ”“"”’ H ” E ”’ B ”’ G ” D ”’ A ”’!!"“! “! ! “!! / ) ”’!/ 0 ) ”’!0  R  ”  ”“"” O  ” ”“"”’ L ”  ”“"”’ Q ” N ”’ K ”’ P ” M ”’ J ”’!!"’!  ’! " ’!" & ) ”’!& *Ä"C^@ *ì!1 *è! *ä"! * ”!+ } /  ”  ”“’ ,  ” ! ”“’“ *´“!6 0 " ”  ”“’ - ”  ”“’“ *°“!% &  ” " ”“’ . ! ” ”“’“ *¬“!' *h” *l"” *p" ”!!"  *P"”  *T"”  *X"”!!"“  “  “!:!9"8!  ”  ”  ”!!" *\” *`"” *d"”!!"“  “  “!=!<";!* *Œ” *�"” *”"”!!"  *t"”  *x" ”  *|"”!!"“  “  “!@!?">!  ”  ”“ ”  ”  ”“ ”“  *„"”  ”“ ”  *ˆ"”  ”“ ”“’ ( )’"’! * ” <" ”“  ”  ”  ”!!" *€” ” ”!!"“  “  “!!"" ” " ”“’ ’!  ” =" ”“  ” " ”“’! :" ” ”“ @" ”  ”“’ ’" ”  ” * ”“  ” ”“’" ”“!  ” 9 ”  ”“ ? ”  ”“’" ”“!#9CzD” ” ”’  ”  ”“" ”’"Œ  C]]@C€? •"  '”  %”’ 6”’”!   '” ”  ”“ %”’ ” ”“" 6”’”!  '”  %”’ ” ”“ 6”’”! !   AØ*!AÔ*!AÐ* “8ä  “8è 1 “8ì *ä" " ” *è"" ”’ *ì"" ”’ + +”^@ +} ”  ”’  ”’"#9CzD”^@C€? ‘•" ”!  ”!  ”!   C!C!C ”8ä + ”8è + ”8ì , ( *ì 1“" ”“!, - ( *è “"”“!- . ( *ä “"”“!.  I  ”  ”“"” F  ” ”“"”’ C ”  ”“"”’ H ” E ”’ B ”’ G ” D ”’ A ”’!!"“! “! ! “!! / ) ”’!/ 0 ) ”’!0  R  ”  ”“"” O  ” ”“"”’ L ”  ”“"”’ Q ” N ”’ K ”’ P ” M ”’ J ”’!!"’!  ’! " ’!" & ) ”’!& ZA€ q@ Y( (¬Atj" .8  -8  ,8  8  !8  8 WA€ q@ Y( (°Atj" &8 08 /8 8 8 "8 Ä(} (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! ) (" ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü! *Ø! *Ô!! *Ð!" *Ì!# *È!$ *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!% *x *t *p *l *h *d *` *\ *X *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$ *  * *! *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è!& *ä!' *à!( *Ü!) *Ø!* *Ô!+ *Ð!, *Ì!- *È!. *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!/ *x *t *p *l *h *d *` *\ *X *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$ *  * *! *! *! * ! * * * %8H /8L $8P #8T "8X !8\ 8` 8d 8h 8l 8p .8t -8x ,8| +8€ *8„ )8ˆ (8Œ '8� &8” *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!!!!!!!!" " " ” " "”“”   "” " ”“”’   ” ”“”’#9CzD”]:´ A  AG6è A  AG6ì *$" ” * " ”“  *"”’ *(" ”’8È ” ”“  ”’  ”’8Ì ” ”“  ”’  ”’8Ð  ” ” ”’ ”’“8Ô  *@"”  *<" ”“  *8" ”’ *D" ”’8Ø  ”  ”“  ”’ ”’8Ü  ”  ”“  ”’ ”’8à  ”  ”  ”’  ”’“8ä *Ü" *Ð" ” *à" *Ì"”“ *Ô" *Ø" ”’ *ä" *È" ”“! ” ”  ”’ ”’’"AÜ$*"”  ” ”“ ”’ ”“"Aä$*"” ”  ”“ ”’ ”“"Aà$*" ”“’!   ”  ”  ”“’" ”  ”  ”  ”“’" ”“ ”’!   ”  ”“ ”’"” ” ”“ ”’" ”“C@”’C?”8° ” ”“C@”’C?”8´ ”  ”“C@”’C?”8¸ Aè$*"” Að$*" ” Aì$*" ”“’! *Ì"  ”  ”  ”“’" ” *Ð"  ”  ”  ”“’"”“ *Ô" ”’!  *È" ” ”“  ”’" ” ”  ”“  ”’"”“C@”’C?”8¼  ”  ”“C@”’C?”8À  ” ”“C@”’C?”8Ä  * ! *! CCC *œ" C[   ’ CÛÉ@”"”’! C€? ” ”" C€?’•!  • ” ! !"8ð 8ô 8ø -”E@ C8¨ C8¬ ´} *p! *l! *h! *d! *`! *\! *X! *T! *P! *”! *�! *Œ! *ˆ! *„! *€! *|! *x! *t! (8! (è"AF#K ( Atj "*< *8 *4 *0 (,!! *( *$ *  * *! *! *! *  * * * (ì"AF#K ( Atj "*  * * * *< *8 *4 *0 (,!" *( *$ *  * *! *!   *¨" *°” *¬" *¼”’"”   *´”  *À”’"”’   *¸”  *Ä”’"”’  ”  ”’ ”’  ”  ”’ ”’!!"“! *  ”  ”’  ”’  ”  ”’  ”’  ”  ”’  ”’! ! " ’! !A€ q@ ( (èAtj" 8   “8   “8 "A€ q@ ( (ìAtj" 8  ’8  ’8 ¡=} *p!, *l!- *h!. *d!/ *`!0 *\!1 *X!2 *T!3 *P!4 *”!5 *�!6 *Œ!7 *ˆ!8 *„!9 *€!: *|!; *x!< *t!= (8! (è"AF#K ( Atj "* ” "? ”’ !"@ ”’”’"A  ”  ”’  ”’"”   ” " ”’ & ”’"”’  > ” ? ”’ @ ”’"”’"” ” ”’ ”’" ”“"#9CzD”^@C€? •" ” ”  ”  ”  ”’  ”’ %’"”“ Œ ” ”  A” ”’  CC !C"B” # ”“’8¨   C” # ”“’8¬ *¨" ” *¬" ”’ ”^@  ”  ”’‘•" ”8¨ ”8¬ ( 4 *¨ “" ” *¬ “" ”’" ” 1 ”  ”’" ”’ . ”  ”’" ”’“!( ' 2 ” / ”’ , ”’“!' * < ” 9 ”’ 6 ”’’!* ) ; ” 8 ”’ 5 ”’’!) + = ” : ”’ 7 ”’’!+ $ 3 ” 0 ”’ - ”’“!$ A€ q@ ( (èAtj" (8  $8  '8 A€ q@ ( (ìAtj" +8 *8 )8 é4} (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! ) (" ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü! *Ø! *Ô! *Ð! *Ì! *È!! *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!" *x *t *p *l *h *d *`!# *\!* *X!+ *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!, * !- *!. *! *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è!$ *ä!% *à!& *Ü!/ *Ø!0 *Ô!1 *Ð!2 *Ì!3 *È!4 *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!5 *x *t *p *l *h *d *`!6 *\!7 *X!8 *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!9 * !: *!; *! *! *! * ! * * * "8H 58L !8P 8T 8X 8\ 8` 8d 8h 8l 8p 48t 38x 28| 18€ 08„ /8ˆ &8Œ %8� $8” *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!!!!!!!! " "$ " "” " " ”“” "%  "!” "" ”“”’ "& " ”  !”“”’#9CzD”]:´ AÈj"A  AG6@ A  AG6D  *$"”  * "”“ *"”’ *(" ”’8T   ” ”“ ”’  ”’8X  ” ”“ ”’  ”’8\  ” ” ”’  ”’“8` * #“"”  * *“"”“ * +“"”’!   ” ”“ ”’"#”   ” ”“ ”’" ”“C@”’8H    ” #”“C@”’8L   ” ”“C@”’8P   *@"”  *<" ”“  *8" ”’ *D" ”’8p   ”  ”“  ”’ ”’8t   ”  ”“  ”’ ”’8x   ”  ”  ”’  ”’“8|  *4 6“"”  *0 7“" ”“  *, 8“" ”’!    ”  ”“  ”’"”   ”  ”“  ”’" ”“C@”’8d   ”  ”“C@”’8h    ”  ”“C@”’8l  ; .“8¤  : -“8¨  9 ,“8¬  $ % & "   ! &!!!!!!!! " 8´  8¸  8¼  8À  8Ä  8È  8Ì  8Ð  8Ô *T" ”!C€? *X" ”" *\" ”" ’C@”“!  ”" *`"”"’C@”!  8€  8„   ”" ”"“C@”8ˆ   “C@”8Œ C€?  ’C@”“8�  ”"  ”"’C@”8”   ’C@”8˜  “C@”8œ C€?  ’C@”“8   *(! *! CCC *$" C[   ’ CÛÉ@”"”’! C€? ” ”"C€?’•!  •  ” !)!("'8Ø  (8Ü  )8à -”E@ C8 C8 C8 C8 C8 C8 C8 C8 C8 ‹A} *H! *L!! *p!( *l!) *h!* *d!+ *`!, *\!- *X!. *T!/ *P!0 *”!1 *�!2 *Œ!3 *ˆ!4 *„!5 *€!6 *|!7 *x!8 *t!9 (8!E AÈj"C(@"AF#K E( Atj "* C(D"AF#K E( Atj "D* ”“8  #8  8  8  < “8  ; “8 A€ q@ E( C(DAtj" 8 B ! "”’8 A ! ”’8 8 @ ’8 ? ’8 û,Y} *H! *L!# *p!9 *l!: *h!3 *d!; *`!< *\!4 *X!= *T!> *P!5 *”!? *�!@ *Œ!6 *ˆ!A *„!B *€!7 *|!C *x!D *t!8 (8!^ AÈj"\(@"]AF#K ^( ]Atj "]* ” < %”’ : "”’ = ” ; %”’ 9 "”’!!"”  ”’ " ”’’  ”  ”“"0 8 0” 7  ”  ”“"G"”’ 6  ”  ”“".”’ D 0” B ”’ @ .”’ C 0” A ”’ ? .”’!!"” G ”’ . ”’’"•C C^!1 -´"]A \-äE@ \ \*" \*ÜŒ 1” $  ”  ”“’ “  ”  ”““ ” *  ”  ”“’ (“  , ’"-”  ”““ ”’ )  ”  ”“’ '“  ”  -”““ ”’ \*Ø & /“”’” \*à ”“"’8 '   ”"/”“!' (   ”"-”“!(    ”"2”“!  5  ”"” 4  %”"”’ 3  "”"”’ > ” < ”’ : ”’ = ” ; ”’ 9 ”’!!"“!  “!  “! ) # /”’!) * # -”’!*  8  0”"” 7  G”"”’ 6  .”"”’ D ” B ”’ @ ”’ C ” A ”’ ? ”’!!"’!  ’!  ’! $ # 2”’!$ ]A \-æE@ \*, *”"Œ"  \*"/ 1Œ $  ”  ”“’ “  E !’"”  F +’"-”““ ” *  ”  ”“’ (“  , ’"2”  ”““ ”’ )  ”  ”“’ '“  -”  2”““ ”’ \*0“”’"  ]  ]" /“! \ 8 '   ”"/”“!' (   ”"-”“!(    ”"2”“!  5  ”"” 4  %”"”’ 3  "”"”’ > ” < ”’ : ”’ = ” ; ”’ 9 ”’!!"“!  “!  “! ) # /”’!) * # -”’!*  8  0”"” 7  G”"”’ 6  .”"”’ D ” B ”’ @ ”’ C ” A ”’ ? ”’!!"’!  ’!  ’! $ # 2”’!$ ]A \-åE@ \*< \*8"“C€>”"/ & “"^@C€?!C! C^}  * ” } *¤! *¨! *  ”C !- \ \*" Œ 1” $  ”  ”“’ “  E !’"”  F +’"2”““ ” *  ”  ”“’ (“  , ’"O”  ”““ ”’ )  ”  ”“’ '“  2”  O”““ ”’ -’”  ”“’"C C^8   \* “" ”"-”“! '   ”"2”“!' (   ”"O”“!(  5  ”"” 4  %”"”’ 3  "”"”’ > ” < ”’ : ”’ = ” ; ”’ 9 ”’!!"“!  “!  “! ) # 2”’!) * # O”’!* $ # -”’!$  8  0”"” 7  G”"”’ 6  .”"”’ D ” B ”’ @ ”’ C ” A ”’ ? ”’!!"’!  ’!  ’! \C8 \*< &“"& /]@C€?!C! &C^} & * ” } *¤! *¨! *  &”C ! \ \* "& Œ 1”  $  ”  ”“’ “  E !’"1”  F +’"”““ ” *  ”  ”“’ (“  , ’"”  1”““ ”’ )  ”  ”“’ '“  ”  ”““ ”’“”  &”“’"C C^8   & \* “" ”"1”“! '   ”"&”“!' (   ”" ”“!(  5  ”"” 4  %”"”’ 3  "”" ”’ > ” < ”’ : ”’ = ” ; ”’ 9 ”’!!"“!  “!  “! ) # &”’!) * # ”’!* $ # 1”’!$  8  0”"” 7  G”"”’ 6  .”" ”’ D ” B ”’ @ ”’ C ” A ”’ ? ”’!!"’!  ’!  ’! \C8 ]E@C! C! C!C€?!C! @  \*\"”  \*X" ”“  \*T" ”’ \*`" ”’  ”  ”“  ”’  ”’  ”  ”“  ”’  ”’  ”  ”  ”’  ”’“!K!J!I"H! \*x" ” \*t" ”“  \*p"”’ \*|" ”’ ” ”“  ”’  ”’ ” ”“  ”’  ”’  ” ” ”’ ”’“!S!R!Q"P! Q" J" ” R" I" ”“ K" ”’ S" ”“ ”  ”“ ”’  ”“  ” ”“ ”’  ”“ ”  ” ”’ ”’’!K!J!I"H I J KAÀ$*AÄ$*AÈ$*AÌ$*(!!"! " ” "”“ ”’! " ” ”“ ”’"” ”  ”“ ”’" ”“C@”’  ”  ”“C@”’  ” ”“C@”’!!"Œ! * " ”! Œ”! Œ”! *¤! *¨! \*"" Œ" \*´  “ ’" ” \*À  “ ’" ”’ \*Ì  “ ’" ”’ \*¸ ” \*Ä ”’ \*Ð ”’ \*¼ ” \*È ”’ \*Ô ”’!!"”  "”“" ’! \*! \* "  ”  ”“" ’! \ 8 \ 8 \  ”  ”“"’8  5 ” 4 ”’ 3 ”’ > ” < ”’ : ”’ = ” ; ”’ 9 ”’!!"“!  “!  “!  8 ” 7 ”’ 6 ”’ D ” B ”’ @ ”’ C ” A ”’ ? ”’!!"’!  ’!  ’!  \*”" ”  \*�" ”“  \*Œ"”’!    ”  ”“  ”’"”   ”  ”“  ”’"”“C@”’  ”  ”“C@”’  ”  ”“C@”’!!"! ! !  \* " ”  \*œ"”“  \*˜" ”’!   ”  ”“  ”’"”   ”  ”“  ”’" ”“C@”’   ”  ”“C@”’  ”  ”“C@”’!!"! ! !C!C!GC€?!C!0 @ * " ” +”’ !”’”!G *¤! *¨!0  ”  +”’  !”’”!  #’" F +’" ” E !’" ”“" 5 ” 4 ” , ’"."! ”“"”’ 3 ! ”  ”“"!”’ > ” < ”’ : !”’ = ” ; ”’ 9 !”’!!"”  ”’ ! ”’’  ”  ”“"+ 8 +” 7  ”  ”“"E" ”’ 6  ”  ”“"F"”’ D +” B ”’ @ ”’ C +” A ”’ ? ”’!!"” E ”’ F ”’’!1 \*!& \ \*"/ Œ"-  5  ” ”“"” 4 ” . ”“" ”’ 3 . ”  ”“"”’ > ” < ”’ : ”’"O = ” ; ”’ 9 ”’"W!!"”  ”’ ! ”’ + 8  ”  ”“",” 7  ”  ”“""”’ 6  ”  ”“"%”’ D ,” B "”’ @ %”’"X C ,” A "”’ ? %”’"Y!!"” E ”’ F ”’’! $  ”  ”“’ “  ”  ”““"2” *  ”  ”“’ (“  .”  ”““"”’ )  ”  ”“’ '“  ”  .”““"”’ G’! 2”  ”’  ”’ ’! 1   5 ” 4 ”’ 3 ”’ O W!!"” ”’  ”’’ , 8 ,” 7 "”’ 6 %”’ X Y!!"” " ”’ % ”’’"”  ”“"#9CzD”^@C€? •" ” ”  ” ”“ Œ ” ”  1” ”’  CC !["Z” 0 /”“"’8 \ & - [” 0 &”“" ’8 '   ” ”’"”“! (   ” ”’"”“!    ” ”’"”“!  5  ” ”’"” 4  ” ”’" ”’ 3  !” ”’" ”’ > ” < ”’ : ”’ = ” ; ”’ 9 ”’!!"“!  8  +” ,”’"” 7  E” "”’"”’ 6  F” %”’" ”’ D ” B ”’ @ ”’ C ” A ”’ ? ”’!N!M"L’! _A€ q@ ^( \(@Atj" 8 8 8 8  “8  “8 `A€ q@ ^( \(DAtj" $ # ”’8 * # ”’8 ) # ”’8 8  M’8  N’8 ª4} (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! ) (" ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü! *Ø! *Ô! *Ð! *Ì! *È!! *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!" *x *t *p *l *h *d *`!# *\!* *X!+ *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!, * !- *!. *! *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è!$ *ä!% *à!& *Ü!/ *Ø!0 *Ô!1 *Ð!2 *Ì!3 *È!4 *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!5 *x *t *p *l *h *d *`!6 *\!7 *X!8 *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!9 * !: *!; *! *! *! * ! * * * "8H 58L !8P 8T 8X 8\ 8` 8d 8h 8l 8p 48t 38x 28| 18€ 08„ /8ˆ &8Œ %8� $8” *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!!!!!!!!""$ " "” " " ”“” "%  "!” "" ”“”’ "& " ”  !”“”’#9CzD”]:´ A  AG6¼ A  AG6À *$"” * "”“ *"”’ *(" ”’8Ð ”  ”“ ”’  ”’8Ô  ” ”“ ”’  ”’8Ø ”  ” ”’ ”’“8Ü * #“"” * *“"”“ * +“"”’!   ” ”“ ”’"#” ”  ”“ ”’" ”“C@”’8Ä  ”  #”“C@”’8È   ” ”“C@”’8Ì  *@" ” *<" ”“ *8"”’ *D" ”’8ì ”  ”“ ”’ ”’8ð  ”  ”“ ”’ ”’8ô ”  ”  ”’ ”’“8ø  *4 6“" ” *0 7“" ”“ *, 8“"”’!    ”  ”“ ”’"” ”  ”“ ”’"”“C@”’8à ”  ”“C@”’8ä  ”  ”“C@”’8è ; .“8  : -“8¤ 9 ,“8¨ *Ô"AØ$*" ” *Ø" AÔ$*"”“ *Ü" AÐ$*" ”’! C€?  *Ð" ”  ”“ ”’"” ”  ”“ ”’" ”“C@”’" $ ” "  ”  ”“C@”’" ”’ !  ”  ”“C@”’"”’” % ”  ”’ ”’”’  & ”  ”’  ”’”’" •C C^8° 8ü 8€ 8„ *ð" *Ø" ” *ô" *Ô"”“ *Ü" *ì" ”’ *ø" *Ð"”“! ”  ”  ”’ ”’’" AÜ$*"”  ” ”“ ”’  ”“"Aä$*"” ”  ”“ ”’  ”“" Aà$*" ”“’! *Ô" ” ”  ”“’"” *Ø" ” ” ”“’" ”“ *Ü" ”’!   *Ð" ”  ”“  ”’"” ”  ”“  ”’"”“C@”’C?”8ˆ ”  ”“C@”’C?”8Œ   ”  ”“C@”’C?”8� Aè$*" ” Að$*"” Aì$*"”“’! *Ô" ” ”  ”“’"” *Ø" ” ” ”“’" ”“ *Ü" ”’!   *Ð" ”  ”“ ”’"” ” ”“ ”’"”“C@”’C?”8” ” ”“C@”’C?”8˜  ”  ”“C@”’C?”8œ  *¤! *! CCC * "C[  ’ CÛÉ@”" ”’!C€? ” ”" C€?’•! • ” !)!("'8´ (8¸ )8¼ -”E@AØ*! AÔ*! AÐ*8ü 8€ 8„ C8ˆ C8Œ C8” C8� C8˜ C8œ í 0} *H! *L! *p! *l! *h! *d! *`! *\!! *X!" *T!# *P!$ *”!% *�!& *Œ!' *ˆ!( *„!) *€!* *|!+ *x!, *t!- (8!4 (¼"AF#K 4( Atj "* *T!? *P!@ *”!A *�!B *Œ!C *ˆ!D *„!E *€!F *|!G *x!H *t!I (8!Z (¼"WAF#K Z( WAtj "W* ” ; ”’ 8 ”’" G ” D ”’ A ”’"’”’!5  !“ ” # “ ”’ " “ ”’!C! -À@ *°! *�" *¸Œ *°”  *´ C]} Œ"C[ Œ"C[q}CCÛI@CÛÉ? Œ  C]"X" Œ  C]"Y"  ^    ]"W•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  W"“  Y"Œ  X  C[ C[q}CCÛI@CÛÉ? Œ C]"X" Œ  C]"Y"  ^    ]"W•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  W"“  Y"Œ  X " ’ “”’” *¼ ”“"’8�  5 ”’! C’! -Á@ *¨ *”" *”"“!  Œ “"  *°Œ  *¬“”"  ^  ^"’8”  5 ”’! ’! -Â@C€?! C]} Œ"C[ Œ"C[q}CCÛI@CÛÉ? Œ  C]"X" Œ  C]"Y"  ^    ]"W•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  W"“  Y"Œ  X  C[ C[q}CCÛI@CÛÉ? Œ C]"X" Œ  C]"Y"  ^    ]"W•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  W"“  Y"Œ  X " ’" *´“"C^}  * ” } *¤! *¨! *  ”C ! *˜"Œ!  Œ *°”  ’”  ”“"   ^"’8˜C€?!C! *¸ “"C^}  * ” } *¤! *¨! *  ”C ! *œ"Œ!  Œ *°”   5 ”’“”  ”“"   ^"’8œ ’ “!  ”“! ”“! # ”’!# " ”’!" ! ”“!!  ”’! [E@C! C!C€?! @ * " $”!  ”! *¨!% *¤! Aè$*"” Að$*"” Aì$*"”“’!  ” $ ”  ”“’"”   ” ” $ ”“’"”“  ”’! AÜ$*"” Aä$*"” Aà$*"”“’!  ” $ ”  ”“’"”   ” ” $ ”“’"”“  ”’!  ” ”“  ”’"”   ”  ”“  ”’"”“C@”’C?”"8ˆ   ”  ”“C@”’C?”"8Œ   ” ”“C@”’C?”"8�   ” ”“  ”’"”   ”  ”“  ”’"”“C@”’C?”"8”   ”  ”“C@”’C?”" 8˜   ” ”“C@”’C?”" 8œ *Œ! *ˆ"!  Œ"$  !“"5 ” # “" ”’ " “" ”’ ’!  @ I’ ? H’ > G’ = F’ < E’ ; D’ : C’ 9 B’ 8 A’!1!0!/!.!-!,!+!*")" ” ," ”’ /" ”’”  *" ” -" ”’ 0" ”’”’  +" ” ." ”’ 1" ”’”’"   ” ”’  ”’"”  ”  ”’  ”’"”’  ”  ”’  ”’"”’"”  ”  ”’  ”’" ”“"#9CzD”^@C€? •" ” ”  ” 5 ”  ”’  ”’ ’"”“ Œ ” ”  ” ”’  CC !V"U” % ”“"’8ˆ  $ V” % ”“"’8Œ ! @  ”  ”’"” =  ”  ”’"”’ :  ”  ”’"”’“!!  > ” ; ”’ 8 ”’“! ? ” < ”’ 9 ”’“! # H ” E ”’ B ”’’!# " G ” D ”’ A ”’’!"  I ” F ”’ C ”’’! ' *Ì"” & *È" ”“ 2 *Ä"”’!  ' ( ” ' ”“ 2 ”’"” & & ” ( ”“ 2 ”’"”“C@”’! *è"” 3 *ä"”“  *à"”’!  4 ” ”“  ”’"” 3 3 ” 4 ”“  ”’"”“C@”’! R #  4 ” ”“C@”’"” "  3 ” 4 ”“C@”’" ”“’ Q“  ( ” ' ”“C@”’"”  & ” ( ”“C@”’" ”““!AØ*!%AÔ*!AÐ*! C! S  ” # ”“’ O“ ! ” ”““! T " ”  ”“’ P“  ” ! ”““!$ *ü"5 } * " N “  “’ * ’”!  L J“  “’ *¨’”!%  M K“ “’ *¤’”! *¨! *¤C€? Œ"J}  *l"”  *T"”“!  *p"”  *X"”“!K  *h”  *P" ”“! ”  *`"”“! ”  *d"”“!L ”  *\”“!M  *�"”  *x"”“!  *”"”  *|"”“!N  *Œ”  *t" ”“!  ” ”“ ”  ” ”“ ”“  *„"” ”“ ”  *ˆ"” ”“ ”“’ 6 7’"’! M ”  ”“ ”  *€”“" ” ”  ”“" ”“’ ’!  ” L ”“  ” ”  ”“" ”“’! K ” ”“ N ”  ”“’ ’" ” L ” M ”“  ” ”“’" ”“!  ”  ” K ”“  ” N ”“’" ”“!#9CzD”  ”  ”’   ”  ”“"”’" Œ C]]@C€? •"   ’"”  $ ’"”’   %’"”’”!   ”  ”  ”“ ”’  ”  ”“" ”’”!   ”  ”’  ”  ”“ ”’”!%  AØ*!%AÔ*! AÐ* ”  5”“"’! *„! *€" J ”  ”“" ’! 8ü 8€  J %”  ”“"’8„ @ ”  ”“"” =  ”  ”“"”’ :  ” ”“" ”’! ? ” < ”’ 9 ”’! > ” ; ”’ 8 ”’! ! “! I ”  ”“"” F  ”  ”“"”’ C  ” ”“" ”’! H ” E ”’ B ”’! G ” D ”’ A ”’!  ’! \A€ q@ Z( (¼Atj" Q 6 ”“8  P 6 ”“8  O 6 ”“8  8  “8   “8 ]A€ q@ Z( (ÀAtj" R 7 ”’8 T 7 ”’8 S 7 ”’8 8 # ’8 " ’8 Ô4} (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! ) (" ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à!! *Ü!" *Ø!# *Ô! *Ð!$ *Ì!% *È!& *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!' *x *t *p *l *h *d *`! *\!( *X! *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!- * !. *!/ *! *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü!) *Ø!0 *Ô!1 *Ð!2 *Ì!3 *È!4 *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!5 *x *t *p *l *h *d *`!6 *\!7 *X!8 *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!9 * !: *!; *! *! *! * ! * * * '8H 58L &8P %8T $8X 8\ #8` "8d !8h 8l 8p 48t 38x 28| 18€ 08„ )8ˆ 8Œ 8� 8” #9CzD”") *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!!!!!!!!""$ "%" "” " "!”“” "& ""” "# ”“”’ "' # !” "”“”’^:´ AÄj"A  AG6d A  AG6¬  *$" ” * "”“ *"”’ *(" ”’8¼ ” ”“ ”’  ”’8À ”  ”“ ”’  ”’8Ä ” ”  ”’ ”’“8È  * “" ” * (“"”“ * “"”’!   ”  ”“ ”’"” ” ”“ ”’" ”“C@”’8°  ” ”“C@”’8´ ”  ”“C@”’8¸  *@" ” *<"”“  *8" ”’ *D" ”’8Ø ”  ”“  ”’ ”’8Ü  ”  ”“  ”’ ”’8à  ”  ”  ”’ ”’“8ä  *4 6“" ” *0 7“"”“  *, 8“" ”’!   ”  ”“  ”’" ” ”  ”“  ”’" ”“C@”’8Ì  ”  ”“C@”’8Ð  ”  ”“C@”’8Ô ; /“8è : .“8ì 9 -“8ð *À"AØ$*"” *Ä"AÔ$*" ”“ *È" AÐ$*" ”’!  *¼" ”  ”“ ”’" ”   ” ”“ ”’"”“C@”’!  ”  ”“C@”’!  ” ”“C@”’! *Ü" ” *à" ”“ *ä" ”’! *Ø" ” ”“  ”’"”   ” ”“  ”’"”“C@”’!  ” ”“C@”’!  ” ”“C@”’! -‚@ C€?} )  ”  ”“" ”  ” ”“" ”’ ”  ”“" ”’"]@C€? ‘•" ”!  ”!  ”!   C! C!C " $ ” # ”’ " ”’”  & ” % ”’ ! ”’”’ ' ” ”’  ”’”’"•C C^8ì 8ô 8ø 8ü -ƒ@ *Ü" *Ä" ” *à" *À"”“ *È" *Ø"”’ *ä" *¼"(”“" ” (”  ”“  ”’  ”“" ”’  ”  (”“  ”’  ”“" ”  ” ( ”  ”’ ”’’" ”’•‘! }  ”  ”“" ”  ” ”“" ”’ ”  ”“" ”’" #9CzD”^@C€? ‘•" ”! ”! ”!   C!C! C ! C€? ”  ”“”’" $ ” #   ” ”“”’"”’ "  ” ”“”’" ”’”  & ” % ”’ ! ”’”’ ' ” ”’  ”’”’" •C C^8ð  8¼  8À  8Ä -´@A”%*! A�%*!AŒ%*! Aˆ%*! A„%*!A€%*!Aü$*! Aø$*! Aô$*8È  8Ì  8Ð  8Ô  8Ø  8Ü  8à  8ä  8è  $ & ' # % " ! &!!!!!!!!"8È  8Ì  8Ð  8Ô  8Ø  8Ü  8à  8ä  8è  *ø! *!CCC *ô" C[  ’  CÛÉ@”" ”’! C€?  ” ”" C€?’•! • ”  !,!+"*8ô  +8ø  ,8ü -”E@AØ*! AÔ*! AÐ*8Ä 8È 8ÌAØ*! AÔ*! AÐ*8Ü 8à 8äAØ*! AÔ*! AÐ*8Ð 8Ô 8Ø C8ð C8è C8ì ê /} *H! *L! *p! *l! *h! *d! *`! *\! *X!! *T!" *P!# *”!$ *�!% *Œ!& *ˆ!' *„!( *€!) *|!* *x!+ *t!, (8!3 AÄj"4(d"AF#K 3( Atj "* ]* ]*!6 ]*!7 ]*!/ $ *Ä" ” # *À"”“ " *¼" ”’ *È" "”’""! ]*4" *à" ” ]*8" *Ü"”“ ]*<"" *Ø"”’ *ä" ]*0"0”’!  ” 0 ”“  ”’  ”’"  ” $ ”“  ”’ #”’"1” 0 ”  ”“  ”’  ”’" # ”  ”“  ”’ $”’"2”“  ”  ” $ ”’ # ”’“" ”’  ” 0 ”  ”’  ”’“" ”“!  ”  1”“  ”’  2”“!  2”  ”“  ”’  1”“!  ” ” 2 ”’ 1 ”’’! !Q -´A ^-€A ^-� A ^-ƒ A ^-‚ @ G P’ F O’ E N’ D M’ C L’ B K’ A J’ @ I’ ? H’!-!,!+!*!)!(!'!&"%!. -!R ,!S +! *! )! (! '! &! 6 3“! 7 4“!! / 5“!AØ*!AÔ*!AÐ*! ^-€@ Q    *˜ *œ *  *¤(!\!["Z! 2 \" ” 1 [" ”“  ”’! ^*È  ^*ô"  2 " ” 2 ”“  ”’"” 1 1 ” " ”“  ”’"”“C@”’Œ”’" ” ^*Ô !  1 ” " ”“C@”’Œ”’"”’ ^*à   " ” 2 ”“C@”’Œ”’" ”’! ^*Ð ” ^*Ü ”’ ^*è ”’! *Ð" ^*øŒ" ” ^*ü" ”“" ’! *Ø! *Ô"  ^*Ì ” ^*Ø ”’ ^*ä ”’” ”“" ’! 8Ð 8Ô  ” ”“"’8Ø !  ”  ”’ S ”’’!!  ’!  ’!   ”  ”’ R ”’’!  ’!  . ”  ”’ ”’’! ^-�@ *Ü ^*È  *€“"” ^*Ô ! *„“"”’ ^*à  *ˆ“"”’“" ” *à ^*Ì ” ^*Ø ”’ ^*ä ”’“" ”’ *ä ^*Ð ” ^*Ü ”’ ^*è ”’“" ”’‘" *ü *”"^@  •" ”!  ”!  ”! *ä“! *à“! *Ü“! 8Ü 8à 8ä !  ”  ”’ S ”’’!!  ’!  ’!   ”  ”’ R ”’’!  ’!  . ”  ”’ ”’’! ^-ƒ@ . ^*¼"""”  ^*À"."”’ ^*Ä" ”’!  ”  ”’ R ”’!  ”  ”’ S ”’! C€?! C! C]} Œ"C[ Œ"C[q}CCÛI@CÛÉ? Œ  C]"_" Œ  C]"`"  ^    ]"]•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  ]"“  `"Œ  _  C[ C[q}CCÛI@CÛÉ? Œ  C]"_" Œ  C]"`"  ^    ]"]•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  ]"“  `"Œ  _ " ’" *Œ“"C^}  * ” } *¤! *¨! *  ”C ! *è"Œ!  Œ ^*ð”  "” ! .”’  ”’ ’” ”“"   ^"’8è   ”’! !  ”’!   ”’!   ”’!   .”’!   "”’!C€?!C! *� “"C^}  * ” } *¤! *¨! *  ”C ! *ì" Œ! Œ ^*ð”   "” .”’  ”’“”  ”“"  ^"’8ì  ”“!!  ”“!   .”“!   "”“!   ”“!   ”“! ^-‚@ *ü! *ø! *ô!C€?! C! *” Q Q”  ”’‘"C[  ”  ”’‘"C[q}CCÛI@CÛÉ? Œ  C]"_" Œ  C]"`"  ^    ]"]•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  ]"“  `"Œ  _ C@”“"C^}  * ” } *¤! *¨! *  ”C ! *ð"Œ!  Œ ^*ì”   ” ! ”’  ”’“”  ”“"   ^"’8ð   ”“!   ”“!   ”“! 5 G ” D ”’ A ”’“!5 3 E ” B ”’ ? ”’“!3 4 F ” C ”’ @ ”’“!4 7 O ” L ”’ I ”’’!7 6 N ” K ”’ H ”’’!6 / P ” M ”’ J ”’’!/ $ *¸" ” # *´" ”“  *°"”’!  $  ” $ ”“  ”’"” # # ”  ”“  ”’"”“C@”’!  *Ô" ”  *Ð"”“  *Ì"”’!   0 ”  ”“  ”’"”   ” 0 ”“  ”’"”“C@”’! W 7 0 ”  ”“C@”’"” 6   ” 0 ”“C@”’"”“’ V“ 4  ” $ ”“C@”’"” 3 # ”  ”“C@”’"”““!AØ*!AÔ*!AÐ*! C! X / ” 7 ”“’ T“ 5 ” 4 ”““! Y 6 ” / ”“’ U“ 3 ” 5 ”““! *Ä" } * " > “  “’ *è’”!  < :“  “’ *ð’”!  = ;“  “’ *ì’”! *¨! *¤C€? Œ":} *l" ”  *T"”“! *p"”  *X"”“!; *h”  *P"”“!  ” *`"”“!  ” *d"”“!<  ” *\”“!=  *�"”  *x"”“!  *”"”  *|"”“!>  *Œ”  *t"”“!  ”  ”“ ”  ”  ”“ ”“  *„"”  ”“ ”  *ˆ"”  ”“ ”“’ 8 9’"’! = ”  ”“  ”  *€”“" ”  ”  ”“" ”“’ ’!  ” < ”“  ”  ”  ”“" ”“’! ; ”  ”“ > ”  ”“’ ’" ” < ” = ”“  ”  ”“’" ”“!  ” ” ; ”“  ” > ”“’" ”“!#9CzD” ” ”’  ”  ”“"”’"Œ  C]]@C€? •"   ’"”   ’"”’  ’"”’”!   ” ”  ”“ ”’ ” ”“" ”’”!   ”  ”’ ” ”“ ”’”!   AØ*!AÔ*! AÐ* ”  ”“"’! : ”  *Ì"”“! *È" : ”  ”“"’! 8Ä 8È  ’8Ì G  ”  ”“"” D  ” ”“"”’ A ”  ”“"”’! F ” C ”’ @ ”’! E ” B ”’ ? ”’! 5 “! P  ”  ”“"” M  ”  ”“"”’ J  ”  ”“"”’! O ” L ”’ I ”’! N ” K ”’ H ”’! / ’! bA€ q@ a( (¨Atj" V 8 ”“8  U 8 ”“8  T 8 ”“8  8  4 “8  3 “8 cA€ q@ a( (¬Atj" W 9 ”’8 Y 9 ”’8 X 9 ”’8 8 7 ’8 6 ’8 Ü4} (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! ) (" ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@  ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è! *ä! *à! *Ü! *Ø! *Ô!! *Ð!" *Ì!# *È!$ *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!% *x *t *p *l *h *d *`!& *\!* *X!+ *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!, * !- *!. *! *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è!' *ä!( *à!) *Ü!/ *Ø!0 *Ô!1 *Ð!2 *Ì!3 *È!4 *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!5 *x *t *p *l *h *d *`!6 *\!7 *X!8 *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!9 * !: *!; *! *! *! * ! * * * %8H 58L $8P #8T "8X !8\ 8` 8d 8h 8l 8p 48t 38x 28| 18€ 08„ /8ˆ )8Œ (8� '8” *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!!!!!!! ! " "' " "!” "" "#”“” "( " "$” "% !”“”’ ") % #” $”“”’#9CzD”]:´ A° j"A  AG6@ A  AG6D  *$"”  * "”“  *"”’ *(" ”’8T   ” ”“  ”’  ”’8X  ” ”“  ”’  ”’8\   ” ” ”’  ”’“8` * &“"”  * *“"”“  * +“"”’!   ” ”“  ”’"&”   ” ”“  ”’"”“C@”’8H    ” &”“C@”’8L   ” ”“C@”’8P   *@"”  *<" ”“  *8" ”’ *D" ”’8p   ”  ”“  ”’  ”’8t   ”  ”“  ”’  ”’8x   ”  ”  ”’  ”’“8|  *4 6“"”  *0 7“" ”“  *, 8“" ”’!    ”  ”“  ”’"”   ”  ”“  ”’" ”“C@”’8d   ”  ”“C@”’8h    ”  ”“C@”’8l  ; .“8€  : -“8„  9 ,“8ˆ  ' ( ) % " $ # !&!!!!!!! ! " 8Œ  8�  8”  8˜  8œ  8   8¤  8¨  8¬ *C[@ *¨! *¤!  * 8  8  8  *! *! CCC *" C[   ’ CÛÉ@”"”’! C€? ” ”"C€?’•!  •  ” !!"8  8  8 *C[@ *¨! *¤!  * 8  8  8$  * ! *! CCC *" C[   ’ CÛÉ@”"”’! C€? ” ”"C€?’•!  •  ” !!"8  8  8$ -”E@AØ*!AÔ*! AÐ*8(  8,  80AØ*!AÔ*! AÐ*84  88  8< ù-} *H! *L! *p! *l! *h! *d! *`! *\! *X! *T! *P!! *”!" *�!# *Œ!$ *ˆ!% *„!& *€!' *|!( *x!) *t!* (8!1 A° j"/(@"AF#K 1( Atj "* *\!? *X!@ *T!A *P!B *”!C *�!D *Œ!E *ˆ!F *„!G *€!H *|!I *x!J *t!K (8!\ A° j"Z(@"AF#K \( Atj "* ”’ ; ”’ @ ” = ”’ : ”’!!"“! * “!* + “!+ !, $ K ” H ”’ E ”’ J ” G ”’ D ”’ I ” F ”’ C ”’!!"’! / ’!/ . ’!. !$  Z*P" ” Z*L"”“  Z*H"”’!    ”  ”“  ”’"” ”  ”“  ”’"”“C@”’  ”  ”“C@”’  ”  ”“C@”’!!"!  Z*l" ” Z*h"”“  Z*d"”’!    ”  ”“  ”’"” ”  ”“  ”’"”“C@”’  ”  ”“C@”’  ”  ”“C@”’!!"! -" / "” . "”“’ !" + "” * "”“’“!AØ*!AÔ*!AÐ*! C€?!1C! A Z*C^ @ Z*" 5 "“  “’ Z*€’”!  4 X“  “’ Z*ˆ’”! Z*!1 Z*!  Y“  “’ Z*„’”! M $ ” / ”“’ L , ” + ”“’“!5 N . ” $ ”“’ #" * ” , ”“’“!) Z*("0 1Œ"4}  *h”  *l" ”  *p"”!!"  *P"”  *T"”  *X"”!!"“  “  “!Q!P"O!  ”  ”  ”!!"  *\”  *`"#”  *d"”!!"“  “  “!T!S"R!  *Œ”  *�"!”  *”"”!!" " *t"-”  *x" ”  *|"”!!"“  “  “!W!V"U!  #”  ”“ ”  ”  ”“ ”“  *„"”  !”“ ”  *ˆ"”  ”“ ”“’ 2 3’"!’! ” S" ”“  -”  ”  ”!!"  *€”  ”  ”!!"“  “  “!!"" ” " ”“’ !’!  ” T" ”“  ” " ”“’!" Q" ” ”“ W" ”  ”“’ !’"! ”  ” ”“  ” ”“’" ”“! " ” P ”  ”“ V ”  ”“’" ”“!##9CzD” ” #”’ " ” ! "”“"-”’"Œ  C]]@C€? •"   ’" ” # ) ’"”’ - 5 ’"”’”!  # ” ” " "”“ ”’ "” ”“" ”’”!  - ” ”’ !” ”“ ”’”! !   AØ*!AÔ*! AÐ* ”  0”“" ’! 4 ”  Z*0"”“! Z*," 4 ”  ”“"’! Z 8( Z 8, Z  ’80 , B  ”  ”“"” ?  ”  ”“" ”’ <  ”  ”“"”’ A ” > ”’ ; ”’ @ ” = ”’ : ”’!!"“! $ K  ”  ”“"” H  ”  ”“"”’ E  ”  ”“"”’ J ” G ”’ D ”’ I ” F ”’ C ”’!!"’! ]A€ q@ \( Z(@Atj" 2 ”“8  2 ”“8 L 2 ”“8 8 + “8 * “8 ^A€ q@ \( Z(DAtj"  3 ”’8 N 3 ”’8 M 3 ”’8 8 / ’8 . ’8 ê4} (! (" (0"( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ( "( O@ ( Aàlj"/\ (X (T (P (L (H *D *@ *< *8 *4 (0 (, (( ($ (  ( ( ( ( ( ! (! )  ("( O@ ( Atj("E@ ("( O@ ( Atj("E@  ("( O@ ( Aülj"(ø *ô *ð *ì *è!8 *ä!9 *à!* *Ü!+ *Ø!, *Ô!- *Ð!. *Ì!/ *È!3 *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|!4 *x *t *p *l *h *d *`!: *\!; *X!< *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$!= * !) *! *!' *! *! * ! * * *  ("( O@ ( Aülj"(ø *ô *ð *ì *è!5 *ä! *à!6 *Ü!7 *Ø! *Ô! *Ð! *Ì! *È! *Ä *À *¼ *¸ *´ *° *¬ *¨ *¤ *  *œ *˜ *” *� *Œ *ˆ *„ *€ *|! *x *t *p *l *h *d *`! *\! *X! *T *P *L *H *D *@ *< *8 *4 *0 *, (( *$! * ! *! *!( *! *! * ! * * * 48H 8L 38P /8T .8X -8\ ,8` +8d *8h 98l 88p 8t 8x 8| 8€ 8„ 78ˆ 68Œ 8� 58” *P *t’ *T *x’ *X *|’ *\ *€’ *` *„’ *d *ˆ’ *h *Œ’ *l *�’ *p *”’!&!%!$!#!"!!! !""3 ""* &"+” #", %"-”“” "4 , $".” !"/ +”“”’ "5 / -” * .”“”’#9CzD”]:´ Aà j"A  AG6\ A  AG6`   *$"”  * "”“ ' *" ”’ *(" ”’8p   ”  ”“ ' ”’ ”’8t   ”  ”“ ' ”’ ”’8x  ' ”  ”  ”’  ”’“8|  * :“"”  * ;“"”“ ' * <“" ”’!    ”  ”“ ' ”’" ”   ”  ”“ ' ”’" ”“C@”’8d    ”  ”“C@”’8h    ”  ”“C@”’8l   *@"”  *<"”“ ( *8" ”’ *D" ”’8Œ   ”  ”“ ( ”’ ”’8�   ”  ”“ ( ”’ ”’8”  ( ”  ”  ”’  ”’“8˜  *4 “" ”  *0 “"”“ ( *, “" ”’!    ”  ”“ ( ”’" ”   ”  ”“ ( ”’" ”“C@”’8€    ”  ”“C@”’8„   ”  ”“C@”’8ˆ   “8œ   )“8    =“8¤ *p" ”!C€? *t" ”" *x" ”" ’C@”“!  ”"  *|"”" ’C@”!  ”"  ”"“C@”! “C@”!6C€?  ’C@”“!7  ”"  ”" ’C@”! ’C@”! “C@”!C€?  ’C@”“! !) *Œ" ”! *�" ”! *”!  ”  *˜" ”’C@”!  ”  ”“C@”! C€? ’C@”“! C€? *H *L’ *h" ” *l" ”“" *P ” *\ )” *d" ”“" ”’ *h ”  )”“" ”’” *T ” *` ”’ *l ”’”’ *X ” *d ”’ *p ”’”’’ *€" ” *„" )”“! *ˆ" )” ”“!  ” ”“" *t ” *€ ”’ *Œ ”’” *x ” *„ ”’ *� ”’”’  *| ” *ˆ ”’ *” ”’”’’"•C C^8¬  *4! *!CCC *0"C[  ’  CÛÉ@”"”’! C€?  ” ”"C€?’•!  •  ”  !2!1"08´  18¸  28¼  *X! *!CCC *T"C[  ’  CÛÉ@”"”’! C€?  ” ”"C€?’•!  •  ”  !2!1"08À  18Ä  28È C€?  3 ” / ”’ . ”’” 4 ” * ”’ - ”’”’ 5 ” , ”’ + ”’”’"•C C^8¨ C€?C€?  ” ”’ ”’" ”  6” 7”’ ”’Œ" ”’"•C C^" Œ" 6” ”“!  ” ”“"”  7” ”“"”“”" 3 ” /  ”  ”“”"”’ .   ” ”“”" ”’”  4 ” * ”’ - ”’”’ 5 ” , ”’ + ”’”’" •C C^8° -”E@ C8 C8 C8 C8 C8 C8 C8 C8$ C88 C8< C8@ …a} *H!6 *L!7 *p!C *l!D *h!E *d!F *`!G *\!H *X!I *T!J *P!K *”!L *�!M *Œ!N *ˆ!O *„!P *€!Q *|!R *x!S *t!T (8!c Aà j"(\"AF#K c( Atj "* !? a 9’" 0” 8 5’" .”“” #  1”  /”“”’ $  ”  !”“”’  ” b "’"" 0”“” #  -” " 1”“”’ $  ” " ”“”’ " .”  ”“” # " /”  -”“”’ $ " !”  ”“”’!!"!  0”  .”“” #  1”  /”“”’ $  ”  !”“”’  ”  0”“” #  -”  1”“”’ $  ”  ”“”’  .”  ”“” #  /”  -”“”’ $  !”  ”“”’!4!3"2! *" ”!#  ”!$  !”!"C€? ”" ”"’C@”“  ”" ”"5’C@”  ”"8 ”"9“C@”  5“C@”C€?  ”" ’C@”“ ”"  ”"5’C@” 8 9’C@”  5“C@”C€?  ’C@”“! !!!!!!!! ! ! ! -Ï} ,  0”  .”“”  ”’ *8 *<’ *@“"C€?  ”  !”’  ”’" ”  -”  /”’  1”’Œ" ”’"•C C^" Œ" -”  ”“!   1”  ”“"”   /”  !”“"”“””’ ,  ”  0”“”  ”’    ”  ”“””’ ,  .”  ”“”  ”’    ”  ”“””’!'!&"%! '! &!  ” ”“ ”’  ”“ ”  ”“ ”’  ”“  ” ”“ ”’  ”“ ”  ”  ”’  ”’’!+!*!)"(! +"AÜ$*"” )" Aä$*"” *"!Aà$*"”“’!   ” ” ”“’"”   ” ! ” ”“’"”“ ”’! # ,    ”  ”“ ”’"”   ”  ”“ ”’"”“C@”’   ”  ”“C@”’   ”  ”“C@”’!'!&"%C?”” " Aè$*"” Að$*"” !Aì$*"”“’!   ” ” ”“’" ”   ” ! ” ”“’"”“ ”’!    ”  ”“ ”’"”   ”  ”“ ”’"”“C@”’   ”  ”“C@”’  ”  ”“C@”’!B!A"@C?””’ *" ”’ , &C?””  AC?””’  ”’ , 'C?””  BC?””’  ”’!'!&"%’! $ '’! " &’!  ! dA€ q@ ! ! (\" c( O@ c( Atj" Z 6 ”“8  Y 6 ?”“8  X 6 >”“8 W K  ’"” H  ’"”’ E  ’"”’ J ” G ”’ D ”’ I ” F ”’ C ”’!!"“! (\" c( O@ c( Atj" 8  V “8  U “8 eA€ q@ 4! 3! (`" c( O@ c( Atj" ` 7 ”’8  _ 7 ?”’8  ^ 7 >”’8 ] T ’"” Q  ’" ”’ N  ’"”’ S ” P ”’ M ”’ R ” O ”’ L ”’!!"’! (`" c( O@ c( Atj" 8 \ ’8 [ ’8 —8j} *H!F *L!G *p!> *l!? *h!@ *d!0 *`!1 *\!2 *X!A *T!B *P!C *”!3 *�!4 *Œ!5 *ˆ!6 *„!7 *€!8 *|!9 *x!: *t!; (8!o Aà j"m(\"nAF#K o( nAtj "n* ”’“!  B ” 1 ”’ ? ”’“!  ; X”"” 8 ”’ 5 ”’’!  : ” 7 ”’ 4 ”’’! 9 ” 6 ”’ 3 ”’’!  L”  ”“!= V J”  L”“!P H L” V O”“!$  O” H J”“!/ L g” J e”’ O f”’!Q m-Í@ m m*" m*¸Œ m*¬” L < Z“” J \ R“”’ O [ Y“”’ / ” $ ”’ P ”’’ K ” = ”’ M ”’“ m*´ Q”’” m*¼ ”“" ’8 Y F O”"”“!Y R F J”"”“!R Z F L”"”“!Z  C K”"” 2 =”"”’ @ M”" ”’“!  A ” 0 ”’ > ”’“!  B ” 1 ”’ ? ”’“! [ G ”’![ \ G ”’!\ < G ”’!<  ; /”"” 8 $”"”’ 5 P”"”’’!  : ” 7 ”’ 4 ”’’! 9 ” 6 ”’ 3 ”’’! pA m-ÏE@ m * m*P”"Œ"  m*8" m*ÄŒ m*°”   “”  T ” X ”“”"  “”’  X ” _ ”“”" “”’ m*À C[ C[q}C Œ  C]"s"! Œ  C]"n" !CÛI@CÛÉ?  ]    ^•" ”" ”"CÚ}Ë<”C7L?>’ ” Cm¶À½”C ª¾’’  ”” ’"“  ^"“  s"Œ  n " m*L“”’” m*È ”“’"  ^  ]88  C m*8 “" ”"” 2  ”" ”’ @  ”""”’“!  A ” 0 ”’ > ”’“!  B ” 1 ”’ ? ”’“!  ;  ”"” 8 ”’ 5 ”’’! 9 ” 6 ”’ 3 ”’’!  : ” 7 ”’ 4 ”’’! m-Ð}C€?! m*D“"C^}  * ” } *¤! *¨! *  ”C ! m m*<" Œ m*°”   “”   “”’   “”’ ’”  ”“’"C C^8<  C m*< “" ”" ” 2  ”"”’ @  ”"”’“!  A ” 0 ”’ > ”’“!  B ” 1 ”’ ? ”’“!  ;  ”" ” 8 ”’ 5 ”’’!  9 ” 6 ”’ 3 ”’’!  : ” 7 ”’ 4 ”’’! C€?!C! m*H “"C^}  * ” } *¤! *¨! *  ”C ! m m*@" Œ m*°”   “”  “”’   “”’ ’”  ”“’"C C^8@  C m*@ “"" ”"” 2  ”"”’ @  ”"”’’!  A ” 0 ”’ > ”’’! B ” 1 ”’ ? ”’’! ;  ”"” 8  ”"”’ 5  ”"”’“! : ” 7 ”’ 4 ”’“!  9 ” 6 ”’ 3 ”’“  ! m-Î@C€?!. Q m*(“"C^}  * ” } *¤!. *¨!` *  ”C ! m m* "" .Œ m*¬” L < Z“” J \ R“”’ O [ Y“”’ / ” $ ”’ P ”’’ K ” = ”’ M ”’“ ’” ` ”“’"C C^8 Z F m* “" L”"”“! Y F  O”"”“! R F  J”"”“!  C  K”"” 2  =”" ”’ @  M”" ”’“!  A ” 0 ”’ > ”’“!  B ” 1 ”’ ? ”’“! [ G ”’! \ G ”’! < G ”’!  ;  /”"” 8  $”"”’ 5  P”"”’’! 9 ” 6 ”’ 3 ”’’!  : ” 7 ”’ 4 ”’’! C€?!C!R m*, Q“"C^}  * ” } *¤! *¨!R *  ”C ! m m*$"" Œ m*¬” L  “” J  “”’ O  “”’ K ” = ”’ M ”’’ / ” $ ”’ P ”’“ ’” R ”“’"C C^8$  F m*$ “"" L”"”’!Z  F  O”"”’!Y  F  J”"”’!R  C  K”"” 2  =”" ”’ @  M”"<”’’!  A ” 0 ”’ > <”’’!  B ” 1 ”’ ? <”’’!  G ”“![ G ”“!\  ;  /”"<” 8  $”"”’ 5  P”"”’“! : <” 7 ”’ 4 ”’“! 9 <” 6 ”’ 3 ”’“!  G ”“!< pE@ m-ÏAF}C!C!` } *¨!` *  L X” J _”’ O T”’”! *¤C€? ŒC€? _ O” T J”“" C ;’ B :’ A 9’ 2 8’ 1 7’ 0 6’ @ 5’ ? 4’ > 3’!-!,!+!*!)!(!'!&"% ” ( T L” X O”“""”’ + X J” _ L”“""”’”  & ” ) ”’ , ”’”’  ' ” * ”’ - ”’”’"•C C^”  “ ”  “ ”’ “ ”’ ’” ` m*"”“! m  ’8   C ” 2 ”’ @ ”’”“!   A ” 0 ”’ > ”’”“!   B ” 1 ”’ ? ”’”“!   ; ” 8 ”’ 5 ”’”’!   : ” 7 ”’ 4 ”’”’!  9 ” 6 ”’ 3 ”’”’C!C!C€?!=C!` @ * " ”! *¨!` *¤!=  E”! AÜ$*"” Aä$*"” Aà$*"”“’! "  ” E ” ”“’"” #  ”  ” E ”“’"”“ I ”’!  " ! ” " ”“ I ”’"” # # ” ! ”“ I ”’"”“C@”’C?”! Aè$*" ” Að$*"” Aì$*"”“’! "  ” E ” ”“’"/” #  ”  ” E ”“’"”“ I ”’!E " ! ” " ”“ I /”’" ” # # ” ! /”“ I ”’"”“C@”’C?”!K  # ” ! ”“C@”’C?”"M!  C ;’ B :’ A 9’ 2 8’ 1 7’ 0 6’ @ 5’ ? 4’ > 3’!-!,!+!*!)!(!'!&"%" ” (" M”’ +"Q  ! ” " ”“C@”’C?”"$"”’”  &" ” )" M”’ ," ”’”’ $ '" ” *" M”’ -" ”’”’!  # E” ! ”“C@”’C?”"P! m* ! m m*" =Œ"   “" ”  “" M”’ “" $”’ ’!  K K”  P”’" Q / ! ” " E”“C@”’C?”" ”’”   K”  P”’"  ”"T’”’  K”  P”’"  ”"=’”’"”   Q ”’” M  T’”’ $  =’”’" ”“"#9CzD”^@C€? •" ” ”  ”  K”  P”’ ”’ ’"”“ Œ ” ”  ” ”’  CC !l"k” ` ”“"’8 m  l” ` ”“"’8  C  ”  K”’"” 2  M”  P”’"”’ @  $”  ”’"”’“!  A ” 0 ”’ > ”’“!  B ” 1 ”’ ? ”’“!  ; ” 8 ”’ 5 ”’’!  : ” 7 ”’ 4 ”’’! 9 ” 6 ”’ 3 ”’’ ! C!C!.C€?!=C! @ * " g”  e”’ ^ f”’”!   g” S e”’ ] f”’”!. *¨! *¤!= F G’" c C c” 2 j N” W ]”“""”’ @ d”’”  B c” 1 ”’ ? d”’”’ d A c” 0 ”’ > d”’”’’  ]” H S”“"$ ; $” 8 H ” V ]”“""”’ 5 V S”  ”“""”’”  : $” 7 ”’ 4 ”’”’  9 $” 6 ”’ 3 ”’”’’! m*!N m m*" =Œ"  c C h”" 2 j D” W ^”“"W"”’ @ i”"’”  B h”" 1 ”’ ? i”" ’”’ d A h”" 0 ”’ > i”"’”’ $ ;  ^” H ”“"/"” 8 H ” V ^”“"E"”’ 5 V ”  ”“"Q"”’”  : ” 7 ”’ 4 ”’”’  9 ” 6 ”’ 3 ”’”’’!D  <  H” ”“’ Z“  b f’"”  a e’"”““" ” S \ V”  H”“’ R“  U g’"”  ”““"”’ ] [  ”  V”“’ Y“  ”  ”““"”’ .’!U   h  2 W”’ ’” W 1 W”’ ’”’ i  0 W”’ ’”’’ / ; /” 8 E”’ 5 Q”’” E : /” 7 E”’ 4 Q”’”’ Q 9 /” 6 E”’ 3 Q”’”’’"” D D”“"#9CzD”^@C€? •" ” U”  D” ”  ”’ ^ ”’ ’"”“ Œ D” U”  ” ”’  CC !l"k”  ”“"’8 m N l”  N”“"’8 Y F  ]”  ^”’"a”“!b R F  S”  ”’"U”“!S Z F  ”  ”’"”“! C  c”  h”’"” 2  ”  W”’"”’ @  d”  i”’"”’! B ” 1 ”’ ? ”’! A ” 0 ”’ > ”’!  “! ;  $”  /”’"H” 8  ”  E”’"”’ 5  ”  Q”’"”’! : H” 7 ”’ 4 ”’! 9 H” 6 ”’ 3 ”’!  ’! qA€ q@ o( m(\Atj" 8 S8 b8 8  “8  “8 rA€ q@ o( m(`Atj" < G ”’8 \ G U”’8 [ G a”’8 8  ’8 ’8 ¥ } (D" l j"Aj! Aj" l j"Aj! ²! ²! *@! *8" ²"” *<" *," *4"  (`"Ak(AvO@ Atj/³”’”  ” Aj²"”  Ak(AvO@ Atj/³”’”  ” ”  Ak(AvO@ Atj/³”’”  ” ”  Ak(AvO@ Atj/³”’”  ” è}  (h"Ak(O@  j-! Au" (D"Akm!   Aklk"  lj"Aj! Aj l j!  I!!!!!!! ! ! ! ! "! ! ! ! ! ! ! ! ! ! ! ! Aq} ! ! ! ! Aj! !  ! ! ! ! ! ! ! ! !  ! -X@ ! ! ! ! ! ! ! ! ! ! ! Aªq AqAtr AÄqAvr! !              �}~ (0"(L"( E@ (("E@ (! -! *�Œ! ! AJ   (AvO@ ( Atj( !@  AÿÿqH@  A°lj! AJ  (  !  A� lj! ($! ((! (,! ( "  (HA !  (HA !  (HA !  (HA !A E   (L AJ! A!@ H@  AŒlj" " A� l j"*À" *0” *Ð" *`”’8ð   *@”  *p”’8ô   *P”  *€”’8ø *€8ì *à8ü *ð8€ *€8„ (ˆ! (ÀA!@  H@ A8lj" AÐj AÐlj"*p8  *€8 Aj!  Aj!  (DA€€Àq@A!@  H@  AŒlj"(ˆ! A!@ H@  A8lj"*$ ] * C^A @ ( (8"Av" ("Ak(AvO@  Atj)B A?q­†„! Ak(AvO@  Atj 7A  Aj!  Aj!  A !A E   (L AJ! A!@ H@  AŒlj" "  A� ljAj"*À" *0” *Ð" *`”’8ð   *@”  *p”’8ô   *P”  *€”’8ø *€8ì *à8ü *ð8€ *€8„ (ˆ! Ak(ÀA!@  H@ A8lj" AÐj AÐlj"*p8  *€8 Aj!  Aj!  (DA€€Àq@A!@  H@  AŒlj"(ˆ! A!@ H@  A8lj" *$ ] * C^A @ ( (8"Av" ("Ak(AvO@  Atj)B A?q­†„! Ak(AvO@  Atj 7A  Aj!  Aj!  A ! A E   (L AJ! A!@ H@  AŒlj""  A� ljAj"*À" *0” *Ð" *`”’8ð   *@”  *p”’8ô   *P”  *€”’8ø  *€8ì  *à8ü  *ð8€  *€8„ (ˆ! Ak(ÀA!@  H@  A8lj" AÐj AÐlj"*p8 *€8 Aj!  Aj!  (DA€€Àq@A!@  H@  AŒlj"(ˆ!A!@ H@  A8lj"*$ ] * C^A @ ( (8"Av" ("Ak(AvO@  Atj)B A?q­†„! Ak(AvO@  Atj 7A  Aj!  Aj!  A ! AA E   (L AJ! A!@ H@  AŒlj""  A� ljA j"*À" *0” *Ð" *`”’8ð   *@”  *p”’8ô   *P”  *€”’8ø  *€8ì  *à8ü  *ð8€  *€8„ (ˆ! A k(ÀA!@  H@  A8lj" AÐj AÐlj" *p8  *€8 Aj!  Aj!  (DA€€Àq@A!@ H@  AŒlj"(ˆ!A!@  H@  A8lj"*$ ] * C^A @ ( (8"Av" ("Ak(AvO@  Atj)B A?q­†„! Ak(AvO@  Atj 7A  Aj!  Aj!  A A A A  ! Aj!  j! Aj!   : Å  } Ak(AnE@ -! -! -! -! * ! *! *! *! Ak(AnAM@ -'! -&! -%! -$! * !  *"”  *"”’  *"”’ “!  ”  ”’  ”’ “"C_@A! Ak(AnE@ 8 8 8 8 : : : : C_@ "Aj!  Ak(AnO@ Alj" 8  8  8  8  :  :  :  :  ”C]  Ak(AnO@ Alj"C€?   “•"“" ”  ”’8   ”  ”’8   ”  ”’8  Ak(AnO@ Alj" C^ ! ! !  ! ! !  :  :  :  : Aj  ô } (¨! ( ! (œ!  (¤"Ak(AvO@  Atj"*  *! *! *!  Ak(O@  j-"!@  "Ak(AvO@  Atj"- -! - Ak(Av -""M@  Atj"- -! - - Aÿq" "Ak(A nO@  A lj"*! *! *! Ak(A n "M@ }  A lj"* “" ” * “" ”’ * “" ”’" #9CzD”^@C€? ‘•" ”! ”! ”!   C!C! C ! ”  ”“"  ” ”“" ” ”“" ”  ”’ ”’LAH@A " G A µ$ }#F" Ak(AvE@ ("E@ (¨! ( ! (œ! (¤"Ak(AvO@  Atj"* !  *"”  *"”“ *"”“!     ”  ”“ ”“"”   ”  ”“ ”“"”“C@”’   ”  ”“C@”’   ”  ”“C@”’ W! (! ( ! (œ!  (¨"Ak(O@  j-"!C€?  ”"  ”"’C@”“!!  ”""  ”"#’C@”!  ”"$  ”" “C@”!C€?  ”" ’C@”“!  ”"  ”"’C@”!C€?  ’C@”“!  “C@”! $ ’C@”!$ " #“C@”!"@ " Ak(AvO@  Atj"- - - -" Ak(AvO@  Atj" - - - -" Ak(A nO@  !  A lj" *"” " *"”’ $ *" ”’ ’"#”   ”  ”’  ”’ ’" ”’   ”  ”’  ”’ ’"”’ “!  Ak(AnO@  Alj" #8 8 8 8 A: : A: :  G Aj"AÀHq ! (! ( ! " Ak(O@  j-"! @@ Ak(Av M@  Atj" - -! - -" Ak(AvO@  Atj"- -! - - Ak(A n M@  A lj"*! *! *! Ak(A n M@ }  A lj"* “" ” * “" ”’ * “" ”’" #9CzD”^@C€? ‘•" ”! ”! ”!   C!C!C !     ”  ”“"  ”  ”“"  ”  ”“" ”  ”’  ”’    X! ! ! ! AH  " G AÀ  AÀN! (! #8! 8 8 8A!@  H@  Ak(AnO@  Alj" -! -! -! -! * ! *! *! *!  Ak(AnO@ Alj" C8 C8 C8 C8 A: A: A: A: A6  C?”" ”“8   ”“8   ”“8 8 : : : :    ]! Aj!  #?C ×£;”C€@”` !A! A! " (! (!@ "AL@@ J@  j" Ak(AnO@  Ak(AnO@  Alj" (! -! -! -! -! * ! *! *!  Alj" *8  8  8  8  :  :  :  :  6 Aj!  6  #?C ×£;”C€@”!A!#8Œ! *" ! *"!} *""C¿] C?^r} C= ×>”! C…+¿”! C…+?” C= ×¾”’ C¿] C?^r} C= ×>”! C…+¿” C= ×¾”’! C…+?” C…+¿” C= ×¾”“! C= ×¾”! C…+?” " ”  ”’  ”’"#9CzD”^@C€? ‘•" ”!  ”!  ”!   C!C!C !@ J@ Ak(AnO@  Alj"( - - - - *! *! *! * " ^E@  ”  ”’  ”’ “"C33s?” ^@ ! ! Aj!  AF@ A6  Ak(An M@  Ak(AnO@  Alj" (! -! -! -! -! * ! *! *!  Alj" *8  8  8  8  :  :  :  :  6 A6  Ak(AnO@ Ak" Ak(AnO@  Alj" (! -! -! -! -! * ! *! *!  Alj" *8  8  8  8  :  :  :  :  6  Ak(AnO@  ”! Ak!  Alj"*! *! *!C!A!A!@ H@ Ak(AnO@  Alj" * “" ” * “" ”’ * “" ”’!   ”“" ”   ”“" ”’   ”“" ”’! Ak(AnO@ C  Alj* Œ" C]"C€@” ”’"C33s?” ^@ ! ! Aj!   ] Aj" Ak(AnO@  Ak(AnO@  Alj"(! -! -! -! -! * ! *! *!  Alj" *8 8 8 8 : : : : 6 A6  Ak(AnO@ Ak" Ak(AnO@  Alj"  Alj"(! -! -! -! -! * ! *! *! *8 8 8 8 : : : : 6 Aj" Ak(AnO@ Ak! !A!C!  Alj"*"" “! *"# “! *"$ “!A!@ H@ Ak(AnO@  Alj" * “!   * “"”  * “"!”“”  ”  ”“”’   !”  ”“”’"Œ  C]"C33s?” `@ ! ! ! Aj!  AF Aj" Ak(AnO@  Ak(AnO@  Alj"(! -! -! -! -! * ! *! *!  Alj" *8 8 8 8 : : : : 6 A6  Ak(AnO@ Ak" Ak(AnO@  Alj"  Alj"(! -! -! -! -! * ! *! *! *8 8 8 8 : : : : 6 Aj" Ak(AnO@ Ak!  Alj"*! *! *!! !A!C€¿C€? C]!A!@ H@ Ak(AnO@  Alj" *!   *" “"' ”  “" ”“”  ” *" “"% ”“”’  % ” ' ”“”’”"'   #“"%  "“"(”  "“"&  #“")”“” & ! $“"&”  $“"* (”“”’  * )” % &”“”’”"%   “"  “"(”  “"  “"&”“”   !“"”  !“" (”“”’   &” ”“”’”"  %]"  ']"C33s?” ^@ ! ! Aj!  AG@  ( j" Ak(AnO@  Ak(AnO@  Alj"  Alj"(! -! -! -! -! * ! *! *! *8 8 8 8 : : : : 6 ( Aj6 8 A: : :A C8 A: A: A: A:A ‰} Œ Œ Œ!!" !  "”  "”“ ”“!      ”  ”“ ”“"”   ”  ”“ ”“"”“C@”’   ”  ”“C@”’   ”  ”“C@”’!!"   Œ Œ Œ !!! !"  ! NE@ C8 A: A: A: A:A C€?  ”"  ”"’C@”“  ”"  ”"’C@”  ”"  ”""“C@”  “C@”C€?  ”" ’C@”“  ”"  ”"’C@”  "’C@”  “C@”C€?  ’C@”“!!!!!!!!"" *"” " *"”’ " *"”’ " ” " ”’ " ”’ "" ” "# ”’ "$ ”’!!" Œ8 Œ8 Œ8 (!&A!@  ( H@  &j" ("%Ak(AnO@ % Alj" *"”  *"”’  *"”’  ”  ”’  ”’ " ” # ”’ $ ”’!!" ’8   ’8   ’8 -!% -!' -!( A -k:  (: A 'k:  %: Aj!  A: : :A «} (œ! ( ! (œ! ( "Ak(AvO@  Atj"- - -! -" Ak(AvO@  Atj"- -! - - Ak(A n M@  A lj"*! *! *! Ak(A n M@  A lj"* “! * “!# * “!$  Ak(AvO@  Atj"- - -! -" Ak(AvO@  Atj"- -! - - Ak(A n M@     $ #  A lj"*!  *"”  *"”“ ”’!    ”  ”“ ”’"#”   ”  ”“ ”’"”“C@”’   ”  #”“C@”’   ”  ”“C@”’!!" ’  ’  ’!!""# "$ "% Ak(A n M@  A lj"*!  *"”  *"”“ ”’!    ”  ”“ ”’"&”   ”  ”“ ”’" ”“C@”’   ”  &”“C@”’   ”  ”“C@”’!!" ’  ’  ’!!" #“  $“  %“'!"!!! !!!!"! ""C€?_ "C€?_ C`q C`qqE@ C8 A: A: A: A:A 8 8 8 A6 (" ("Ak(AnO@ Alj"  "’C?”8 " "’C?”8 " !"’C?”8  “”  “”’  “”’"8 A: Aÿq": A: Aÿq":  8 A:  :  :A Ö `}        !!!!!!!!!!!"!P            !+!*!)!(!'!&!%!$!#!"!!" !Q            !7!6!5!4!3!2!1!0!/!.!-",!R @ !C!B!A!@!?!>!=!!J =!K *8";”’ U"? *<"2”’ P"@ ” S"A ;”’ V": 2”’ Q"E ” T"< ;”’ W"; 2”’!b!a"` ’ *4“"9 9” a ’ *8“"F" ”’ b ’ *<“"Y" ”’‘"j d’Coƒ:”’“!e 9 F Y ((" S Ak(AvE@ j! AjA|q! 7!f 6!g D!h C!i *!A! @ H@ Ak(AvO@  Atj*]@ ! Ak(AvO@ Atj*! Aj!  #GŒ"8![ @ Ak(AvO@  Atj" * !4 = *"8"” @ *"2”’ E *"3”’ > ” A 2”’ < 3”’ ? ” : 2”’ ; 3”’!7!6"5Œ! 8 ” 2 ”’ 3 ”’ 4“  6Œ"2 7Œ"3      _” 2 g”’ 3 f”’ Œ  C] 2Œ 2 2C] 3Œ 3 3C]!7!6"5 c” 6 i”’ 7 h”’Cˆ?”’R!""Z“"8 X 8 X]![ "! A! @ H@ Ak(AvO@ Atj* e“ [   []]E@ Ak(AvO@  Atj" * !H *!2 *!3 *!4 ! 8! E Gr@ 4 ” 3 ”’ 2 ”’ H“ = 4” @ 3”’ E 2”’ > 4” A 3”’ < 2”’ ? 4” : 3”’ ; 2”’!7!6"5Œ" 6Œ"H 7Œ"I      _” H g”’ I f”’ Œ  C] HŒ H HC] IŒ I IC]!7!6"5 c” 6 i”’ 7 h”’Cˆ?”’R!""Z“! "!  ^@ 2!\ 3!] 4!^ !+ !! A " X^@ 4 3 2  A G K J AAA N M L AAAA Aj!  (x! (¤! (¬! (d" AjAxq" !# *" *"2’ * "3 *"4’ *$"8 *"I’!7!6"5C?” 6C?” 7C?”!7!6"5!H  2“ 3 4“ 8 I“!D!C"BC?” CC?” DC?”!D!C"B!I  = 9” @ F”’ E Y”’ > 9” A F”’ < Y”’ ? 9” : F”’ ; Y”’!b!a"`Œ aŒ bŒ (,"SA! Ak(AvE@ #j!( AjA|q! 7!F 6!Y D![ C!_ *!A! @ H@ Ak(AvO@   Atj*]@ ! Ak(AvO@  Atj*! Aj!  #GŒ"8!9 @ Ak(AvO@ =  Atj" *"” > *"2”’ ? *"3”’ @ ” A 2”’ : 3”’ E ” < 2”’ ; 3”’!7!6"5Œ" ” 6Œ"2 ”’ 7Œ"3 ”’ * “  2 3 # (   H” 2 Y”’ 3 F”’ Œ  C] 2Œ 2 2C] 3Œ 3 3C]!7!6"5 I” 6 _”’ 7 [”’Cˆ?”’R!""Z“"8   8]" X  X]!9 "! A! @ H@ Ak(AvO@  Atj* e“ 9   9]]E@ Ak(AvO@ =  Atj" *"” > *"2”’ * !c ? *"3”’ @ ” A 2”’ : 3”’ E ” < 2”’ ; 3”’!7!6"5Œ!2 7Œ!3 6Œ!4 ! 8! E Gr@ 2 ” 4 ”’ 3 ”’ c“ 2 4 3 # (  2 H” 4 Y”’ 3 F”’ 2Œ 2 2C] 4Œ 4 4C] 3Œ 3 3C]!7!6"5 I” 6 _”’ 7 [”’Cˆ?”’R!""Z“! "!  ^@ 3!J 4!K 2!G !' !, A " X^@ ^ ] \  + !A 2 4 3  A N M L AAAA Aj!  (p!$ ( ! (8!%A! (p!) ( ! ( 4” A 8”’ < 9”’ ? 4” : 8”’ ; 9”’!7!6"5!F (4! = *4"4” > *8"8”’ ? *<"9”’ @ 4” A 8”’ : 9”’ E 4” < 8”’ ; 9”’!D!C"B ’ C ’ D ’ (0"T  F 6 7 T (´! (´!A! @ $H@ Ak(AvO@  Atj-! Aj" Ak(AvO@  Atj-! Au"* Ak(AvO@  *Atj*!4 %Ak(Av M@ % Atj 6  Ak(AvO@  Ak(AvO@  Atj*"8  Atj*"F"9 8 9^"9 2` 8 F 8 F] 4 9”“"8 8” 2 9“ 2 9’”C€? 4 4”“"4”` 4C·Ñ8]r 8C`qrj! Aj!  A! @ )H@ Ak(AvO@  Atj-! Aj" Ak(AvO@  Atj-! Au" Ak(AvO@  Atj*!2 &Ak(Av M@ & Atj 6  Ak(AvO@  Ak(AvO@ Atj*"4 Atj*"9"8 4 8^"8 3` 4 9 4 9] 2 8”“"4 4” 3 8“ 3 8’”C€? 2 2”“"2”` 2C·Ñ8]r 4C`qrj! Aj!   AjAulA NA @ #?C ×£;”CÍÌÌ=” j d’"Œ  C]Coƒ:”’“!2 !  !AG" Ak(AvO@ j" Ak(AvO@ A! =  Atj*"3” >  Atj*"4”’ j" Ak(AvO@ ?  Atj*"8”’ @ 3”  4”’ : 8”’ E 3” < 4”’ ; 8”’!7!6"5 ’ 6 ’ 7 ’ T  2 % U! '  'AG" Ak(AvO@ #j" Ak(AvO@  = Atj* “"” @ Atj* “"3”’ (j" Ak(AvO@ E Atj* “"4”’ > ” A 3”’ < 4”’ ? ” : 3”’ ; 4”’!7!6"5 6 7 T  2 & U! E Er@ ^ ] \  + !A G K J  ' ,A N M L AAAA (L! (P! (T!$ = @ E > A < ? : ;    (° AjAxq" j AjA|q (@") (D"* (H"-AQ = @ E > A < ? : ;          $AQ (X! (\! (`! (d! (h! (l! (p! (t! (x! (|! (€! („! (ˆ!A!@ H@ %Ak(AvO@ % Atj("" Ak(AvO@  Atj"-!0 -! - - Aj" Ak(AvO@  Atj"-!1 -! - - 0 Ak(AvO@  0Atj"*! *! *! 1 Ak(AvO@  1Atj"*! *!< *!: Ak(Av M@  Atj 8 Ak(AvO@ Atj 8 Ak(AvO@  Atj 8 Ak(AvO@  Atj :8 Ak(AvO@  Atj <8 Ak(AvO@  Atj 8 Ak(Av M@ Ak(Av M@ Atj* Atj*“! Ak(Av M@ Atj 8  #j" Ak(AvO@ Atj*  #j" Ak(AvO@ Atj*“! Ak(Av M@  Atj 8  (j" Ak(AvO@ Atj*  (j" Ak(AvO@ Atj*“! Ak(Av M@  Atj 8 Ak(Av M@ Atj*! Ak(Av M@  Atj 8  #j" Ak(AvO@ Atj*! Ak(Av M@  Atj 8  (j" Ak(AvO@ Atj*! Ak(Av M@  Atj 8 Ak(AvO@ Ak(Av M@ Ak(AvO@ Ak(AvO@ Ak(AvO@ Ak(AvO@ At"j*" ”  j*" ”’  j*" ”’C·Ñ7”! Ak(AvO@  Atj 8 Aj!  "Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 " Ak(Av Aj"M@ AtjC8 Aj" Ak(AvO@ AtjC8 " Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 "Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 "Ak(Av Aj"M@  AtjC8 Aj" Ak(AvO@  AtjC8 "Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 "Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 Aj" "Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 "Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Ak(Av Aj"M@  AtjC8 Aj" Ak(AvO@  AtjC8 "Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 " Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 Aj" Ak(AvO@ AtjC8 " Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8 Aj" Ak(AvO@  AtjC8#?C ×£;”"Œ ”!>A! @ H@ &Ak(AvO@ & Atj("" Ak(AvO@  Atj"-! -! - - Aj" Ak(AvO@  Atj"-! - - -!  )Ak(AvO@ ) Atj*!?  *Ak(AvO@ * Atj*!@  -Ak(AvO@ - Atj*!A )Ak(Av M@ ) Atj*!E  *Ak(AvO@ * Atj*!2  -Ak(AvO@ - Atj*!3 Ak(Av M@  Atj*! Ak(AvO@  Atj*! $Ak(AvO@ $ Atj*!4 " Ak(AvO@  Atj* "“! Ak(AvO@  Atj* "“!8 $Ak(AvO@ $ Atj* 4“!=A!@ H@ Ak(AvO@ Ak(Av M@ Ak(AvO@ @ ?  At"j*"<” @  j*":”’ A  j*";”’" E <” 2 :”’ 3 ;”’"<” >` Ak(AvO@ Atj*!: Ak(AvO@ Atj*!; Ak(AvO@  Atj*!9 Ak(AvO@ Ak(AvO@ Ak(AvO@   At"j* ”  j* 8”’  j* =”’"F” >`A : ” ; 8”’ 9 =”’ F” >`  ”": < <”"; : ;^!: Ak(AvO@ :  Atj*_ C€? ? Œ < “•" E ?“”’"< <” @  2 @“”’": :”’ A  3 A“”’"; ;”’‘•"9 <”! Ak(AvO@ Ak(AvO@ Ak(AvO@  At"j* ’ ”  j* ’ 9 :”"<”’ j* 4’ 9 ;”":”’Œ"; ^@ :!L "=! E! D!v C!w B! A!x @! ?! >! @@@@@  ! ! !  ! ! !  ! !b !a  !` !_ !^ ! x! ! @@@@@  !] !\ ![  !Z !Y !X  !W !V !U  !T !S !R ! v! w! @@@@@  !Q !P !O  !N !M !L  !K !J !I  !H !G !F Aj!  A tAk! cý") ý ý  ý  `ý "*ýæ fý"+ ý ý  bý  _ý ",ýæýä iý"- ý ý  aý  ^ý ".ýæýä lý"/ýä!2 dý"0 *ýæ gý"6 ,ýæýä jý"7 .ýæýä mý"8ýä!3 eý"9 *ýæ hý": ,ýæýä ký"; .ýæýä ný"<ýä!* ) ]ý Zý  Wý  Tý "1ýæ + \ý Yý  Vý  Sý "4ýæýä - [ý Xý  Uý  Rý "5ýæýä /ýä!, 0 1ýæ 6 4ýæýä 7 5ýæýä 8ýä!. 9 1ýæ : 4ýæýä ; 5ýæýä <ýä!1 ) Qý Ný  Ký  Hý ")ýæ + Pý Mý  Jý  Gý "4ýæýä - Oý Lý  Iý  Fý "5ýæýä /ýä!+ 0 )ýæ 6 4ýæýä 7 5ýæýä 8ýä!- 9 )ýæ : 4ýæýä ; 5ýæýä <ýä!/ @   2 , + , +ýFýR") 2 )ýFýR oý"0ýä pýýC 2 , + , +ýEýR") 2 )ýEýR 0ýå sýýDýP 3 . - . -ýFýR") 3 )ýFýR 0ýä qýýC 3 . - . -ýEýR") 3 )ýEýR 0ýå týýDýPýP * 1 / 1 /ýFýR") * )ýFýR 0ýä rýýC * 1 / 1 /ýEýR") * )ýEýR 0ýå uýýDýPýPý¤q"Asq!@ @ h!  Akq!  "j" ( O@ ( Alj"C8 A: A: A: A:  @ # 2ý  $ 3ý  % *ý  #Aj ,ý  $Aj .ý  %Aj 1ý  #A j +ý  $A j -ý  %A j /ý @ @ h!  Akq! % At"j*!  $j*!  &Al"A lj"  #j*8  8  8 % AjAt"j*!  $j*!  AjA lj"  #j*8  8  8  AjA lj" % AjAt"j*!  $j*!  #j*8  8  8  &Atj  "j6 &Aj!&  "Aj!"  & œ†6j}~#-Aà&kA I@ #-A k"$- (L((!< !/ !¥ !¦ !§ !n !o !p !k *,! *0! *8! *Jq@  >Atj("0" (( O@ (( Alj(!1 : >Al"A lj"*! *!  *8  8  8 : AjA lj"*! *!  *8  8  8 : AjA lj"*! *!  *8  8  8 /(AF /(¸"("(p! (d! (h"Ak(A n 1M@  1A lj"(! (! (! 1 Ak(O@  1j-! *! * ! *!  Ak(A nO@   A lj"*”!  *”!N  *”!J  ” ”C]@  Ak(A nO@   A lj"*”!O  *”!T  *”!  Ak(A nO@   A lj"*”!  *”!  *”! ! ! AqAGAA A qrAA AÀqr!  Ak(A nO@   A lj"*”!O  *”!T  *”!  Ak(A nO@   A lj"*”!  *”!  *”! !  J N O T       /(¼ 1J !F!E!D!C! !Ÿ!ž!�!œ!›!š!™!˜ 0 (( O@ D! C!" E!# (( 0Alj"-! -! -! -! -! -! -! -! /!! * ! - !' - !+ - !4 -!G  *8  G:  4:  +:  ':  8  !;  :  :  :  :  :  :  :  : $ ?k! 9( ;Atj(" ?6 A6  F6< A68@@@@@ ( *ˆ! *Œ! *�! *”!P *˜!V *œ!Y * ! #:"Ak(AvE@ ("E@ Aj! A6 @ AH Ak(A nE@ *!N *!J *!L Ak(A nAM@ *!M *!Q * !O Ak(A nAM@ } Q J“" * "T N“"” M N“"K *"U J“"S”“" ” K *"X L“"K” O L“"R ”“" ”’ R S”  K”“" ”’"K#9CzD”^@C€? K‘•"S ”! S ”!K S ”  C!KC!C ! " C?” PC?”’” K C?” VC?”’”’ " C?” YC?”’”’  L” K J”’  N”’"R“C] ( ! ("Ak(A nE@  L8  J8  N8 ("Ak(A nAM@  O8  Q8  M8 ("Ak(A nAM@  X8  U8  T8 (A6 (C8 ("Ak(A nE@  8  8  8 ("Ak(A nAM@  P8  V8  Y8 (A6 (C8A„*!A€*!NAü*!JAø*!LAô*!MAð*!Q Aì*8  Q8  M8  L8  J8  N8  8 A:$  -!6!5!z!y!x!w!v!u!t!s!r"q! z"N #?C ×£;”C€@”’^ N#^@ ("Ak(AnE@  8  8  8 Ak(AnE@ C8 Ak(AnE@ A: A: A: A: Ak(AnAM@  P8  V8  Y8 Ak(AnAM@ C8 Ak(AnAM@ A:$ A:% A:& A:'    K [AF@ Ak(AnE@  *” K *”’  *”’ R“! Ak(AnAM@  *” K *”’  *”’ R“! Ak(AnE@ * ’C?”" ”“! *  ”“!N *  K”“!J Ak(AnAM@ * ’C?”" ”“!L *  ”“!M *  K”“!  8  K8  8 A68 A6 (" ("Ak(AnO@  Alj" 8  J8  N8   “8 Ak(AnE@ -! -! -!  -:  :  :  : Aj" ("Ak(AnO@  Alj" L8  8  M8   “8 Ak(AnAM@ -'! -&! -%!  -$:  :  :  :  XC?” U O”“C?”’! ]C?” Z T”“C?”’! C?” S J”“C?”’!  J8  O8  T8 A6 * -  -  -  -  -! -! -! - !A!A! /!A!@  H@ AO@@@@@@  !  !  !  ! A tr! Aj!  Aœ(AvO@  AtA j(68 (" ("Ak(AnO@  Alj" 8  8  8  N “8 Aë-!Aê-!Aé-! Aè-:  :  :  :    ” K" ”’  ”’ R“"N  P”  V”’  Y”’ R“"J]@    NAAA     JAAA !³ ³"W ^ A!AØ*!LAÔ*!MAÐ*!T#8Œ!NA!A!A! Y "U“"b! V "X“"^! P "Z“"e! Ak(A nAM@  ”  ”’ "]”’!a * !K *!Q *!S@ AH@  Ak(A nO@  A lj"*!} *" Q“"O ]”  K“" ”“"J J” ” *" S“"[ ]”“"\ \”’ [ ” O ”“"O O”’"[#9CzD”^@C€? [‘•"_ J”![ _ O”!O _ \”  C![C!OC !\ a a” e [” ^ \”’ b O”’"J J”’ e e” ^ ^”’ b b”’C·Ñ7”]E@} a J”C_C€? J J a“•"J“"_ [” J ”’ _ \” J ”’ _ O” J ]”’C€? J a J’•"J“"_ [” J Œ”’ _ \” J Œ”’ _ O” J ]Œ”’ !­!¬"«"J J” ¬"\ \”’ ­"O O”’"[#9CzD”^@C€? [‘•"[ J”!_ [ O”!O [ \”!J _  C!OC!JC "\ Z S“” J X Q“”’ O U K“”’"K N^@ J!MA! K!N O!L \!T ! !Q !S !K "Aj!  M! T!J N] W “!O#:"Ak(AvE@ ("E@ ("Ak(AnE@  Z8  X8  U8 Ak(AnE@ C8 Ak(AnE@ A: A: A: A: Ak(AnAM@  P8  V8  Y8 Ak(AnAM@ C8 Ak(AnAM@ A:$ A:% A:& A:'@     [E Ak(AnE@  *”  *”’  *”’ R“! Ak(AnAM@  *”  *”’  *”’ R“" #?C ×£;”C€@”"K ’^  K ’^q Ak(AnE@ *  ’C?”"K ”“!M * K ”“!Q * K ”“!S Ak(AnAM@ * ’C?”"K ”“!T * K ”“!R * K ”“!K  8  8  8 A68 A6 (" ("Ak(AnO@  Alj" M8  S8  Q8   “8 Ak(AnE@ -! -! -!  -:  :  :  : Aj" ("Ak(AnO@  Alj" T8  K8  R8  “8 Ak(AnAM@ -'! -&! -%!  -$:  :  :  : ( AF@ (" ("Ak(AnO@  Alj* ! Aj" ("Ak(AnO@   Alj* "  ]!O AF (  O#?C ×£;”’ N “]A @@  Ak(A nO@  A lj"*!K *!Q *!O AjAo" Ak(A nO@ Y U“! V X“! P Z“!N  A lj"* O“!P} * Q“"R"Y ” * K“"]"V ”“"M M” V ” P ”“"V V”’ P ” Y ”“"Y Y”’"S#9CzD”^@C€? S‘•"S M”!M S V”!T S Y”  C!TC!MC !V N ” ”’  ”’" ” N M” T”’  V”’" ”’ N N” ”’  ”’C·Ñ7”] O Q K P R ] Z X U N '!‘!�!�!Ž!�!Œ!‹"Š! �"C] C€?^r ‘"C]r C€?^r  J8  8  L8 A6 AÌ(AvO@  AtAÐj(68 (" ("Ak(AnO@  Alj" C?” Ž J”“C?”’8  ‹C?” � ”“C?”’8  ŒC?” � L”“C?”’8  J Z O“”  X Q“”’ L U K“”’ “8 A:  : A:  :   -AFA @ C8 A: A: A: A: *!S *!T *!R * !K *!L *!M *!U *!P * !QC!C!C!C!C! C!C! C!VC!YC!NC!JC!e#-Aà&kA0I@ #-A0k"$-#:"Ak(AvE@ ("E@ A6 A68@ AH #?C ×£;”!m} L T“"X Q R“"Z” M R“"] P T“"\”“"O O” ] U S“"]” K S“"a Z”“"Z Z”’ a \” X ]”“"] ]”’"X#9CzD”^@C€? X‘•"\ O”!X \ Z”!O \ ]”  C!OC!XC !W X"_ %*4” O"` %*8”’ W %*<”’ X S” O T”’ W R”’"{“!O -AF@ * O“"XŒ X XC] m]  A: O mŒ]@ A:  O8  M R“!O L T“!X K S“!Z Q M“!] P L“!\ U K“!a R Q“!b T P“![ S U“!d %( ! %(¤! %(œ! &}#?C ×£;”C€@”C !| A:@@@@@@@ -Ak % _Œ `Œ WŒ."!  Ak(A nO@ _  A lj"*” ` *”’ W *”’ {“ |^  -! -! -! -!!  *8  !:  :  :  :   S T R K L M U P Q Z X O a \ ] d [ b _ ` W { %    &`! ( AJ * “"Œ  C] m]A  A6 C8 A: A: A: A:  -" Ak(AvO@ A!  Atj"* !“ S *"c” T *"l”’ R *"}”’Œ!^A!@ AH@ AO@ AF@ M! K! L! AF@ Q! U! P!  c”  l”’  }”’Œ"f ^^@ f!^ ! Aj!  E@ R! S! T! AF@ M! K! L! c AF} P! Q! U  ” l ”’ } ”’ ““" |^   mCÀ”]E@ -! -! -! -!!  *8  !:  :  :  :   S T R K L M U P Q %    Aj &_! ( AJ * “"Œ  C] m]A  A6 C8 A: A: A: A:  -"AO@ E@ S! R! T! AF@ K! M! L! AF@ U! Q! P! E@ X! O! Z! AF@ \! ]! a! AF@ [! b! d! -"!" Ak(AvO@  Atj"-!' -!+ - - !Aj" Ak(AvO@  Atj"-! -!4 - - Ak(A n +M@  +A lj"*!} *!“ *!¡ Ak(A n 4M@  4A lj"*!^ *!f * ¡“!° ' Ak(AvO@  'Atj"*!’ *!¢ *!£  Ak(AvO@ ^ }“!^ f ““!f  Atj"*!¤ £ ” ¢ ”’ ’ ”’"c *"± ” *"² ”’ ¤ ”’"l”C] c _ °” ` f”’ W ^”’”C^A @  ” ”’  ”’C·Ñ7” c c”"^ l l”"f ^ f^_@ !^ !f}C€? c c l“•"“" £”  ±”’"c c”  ¢”  ²”’"l l”’  ’”  ¤”’" ”’"#9CzD”^@C€? ‘•"’ c”!c ’ ”! ’ l”! c  C!C!C "l f ¡“”  ^ ““”’   }“”’"c |^  *"} c“"cŒ c cC] m]@ -! -! -! -!'  }8  ':  :  :  :   f ^    % lŒ Œ Œ  ! Aja ( AJ  C8 A: A: A: A:    S T R K L M U P Q Z X O a \ ] d [ b _ ` W { % _ ` W { %\!.!-!,!j!i!h!g , -  &`    S T R K L M U P Q % S T R K L M U P Q %]!.!-!,!j!i!h!g j , -  &_  S T R K L M U P Q Z X O a \ ] d [ b _ ` W %^!.!-!,!j!i!h"g! ,"AG@ AO@ E@ T! R! S! AF@ L! M! K! AF@ P! Q! U! E@ Z! X! O! AF@ a! \! ]! i!N h!J -!     AF} [! b! d    % J N   a  A: _ ` W { %\!.!-!,!j!i!h!g -! ,! j" |^@  8 A:  :  :  S T R K L M U P Q %]!.!-!,!j!i!h"g! -! ,!! j" |^@  8 A:  !:  :  S T R K L M U P Q Z X O a \ ] d [ b _ ` W %^!B!A!@!—!–!•"”! A!' @! —" |^@  8 A:  :  ':  i! h!^  `  _” ^ `”’ W”’C€¾]A }   S T R K L M U P Q Z X O a \ ] d [ b _ ` W { %    &`   S T R K L M U P Q %  !   &_ ! AG@ ( E    ] ]qA ( AF   m’^q @ AO@ E@ S!Y T!N R! AF@ K!Y L!N M! AF@ U!Y P!N Q! E@ Z!e O!V X!J AF@ a!e ]!V \!J –! •! A6   Y N AF} [!J b!V d e J V %     ' a ( E@ ("Ak(A nE@  S8  T8  R8 Ak(A nAM@  K8  L8  M8 Ak(A nAM@  U8  P8  Q8 ( "(A6 (C8 (!A!@  %(dH@  Ak(A nO@  Ak(A nO@  A l"j"  j"*! *! *8  8  8 Aj!  ( %(d6 (C8A„*!A€*!Aü*!Aø*!Aô*!Að*! Aì*8  8  8  8  8  8  8 A:$ C8 A; A: A: A: A:! A:" A:# A:$ A:%  Aj-!6!5!z!y!x!w!v!u!t!s!r!q z"C^@ A6 * -" -# -$ -% -! -! - ! -!!A!A! /!A!@  H@ AO@@@@@@  !  !  !  ! A tr! Aj!  Aœ(AvO@  AtA j(68  w8  x8  y8 (" ("Ak(AnO@  Alj" t8  u8  v8  8 Aë-!Aê-!Aé-! Aè-:  :  :  : C8 A: A: A: A: #-A0j$- < <($Aj6$ < <(( -j6(  *¤!N *¨! *¬! *°!P A6 @ E Ak(A nE@ *! *! *! Ak(A nAM@ *!J *!K * ! Ak(A nAM@ } K “"M * "Q “"L” J “"Y *"V “"O”“" ” Y *"Y “"S”  “"T L”“"L L”’ T O” M S”“"M M”’"O#9CzD”^@C€? O‘•"O ”! O L”!L O M”  C!LC!C !M  N” L ”’ M ”’  ” L ”’ M ”’“C] NÀ  “"S N “"” K “"T  “"L”’ J “"R “"O”’!M  A Y “"U ” V “"X L”’ Q “"Z O”’"OC_ MC_q   K JA S N “"L” T  K“"]”’ R J“"\”’"C^ U L” X ]”’ Z \”’"] _q  M ]”  O”“"aC_ MC`q C_q@  M M “•" S”’  T”’   R”’A  Y V QA S N Y“"L” T  V“"b”’ R Q“"[”’"\ U L” X b”’ Z [”’"L_ LC`q  \ O” M L”“"MC_ OC`q LC_q@  O O L“•" U”’  X”’   Z”’A   ]_  L” \ ]”“"OC_q L \_q@  ] “"  \ L“’•" Y “”’ K  V K“”’ J  Q J“”’A   M O M’ a’"L•" S”’ a L•"L U”’  T”’ L X”’   R”’ L Z”’A !H!ª!©"¨"M“" ”  ©"O“" ”’ ª"S“" ”’"T P#?C ×£;”C€@”’" ”^ H! T‘"L L”#9CzD”^}C€? L•" N M“”!  S“”!   O“”} K “" Q “"K” J “"J V “" ”“" ” J Y “"J”  “" K”“" ”’  ”  J”“" ”’"#9CzD”^@C€? ‘•" ”!J  ”!  ”! J  C! C!C !  !  8  8  8 A6  68  T84 (" ("Ak(AnO@  Alj" N P ”“ M’C?”8   P ”“ O’C?”8  P ”“ S’C?”8  L P“8 Aë-!Aê-!Aé-! Aè-:  :  :  :  -! -! -! -! -! -! -! -! / ! *! -! -! -! -! *! 0 (( O@ (( 0Alj" 8 : : : : 8 ; : : : : : : : :  -! -! -! -! -! -! -! -!! / !' *! -!+ -!4 -!G -!I *! 0 (( O@ (( 0Alj" 8  I:  G:  4:  +:  8  ';  !:  :  :  :  :  :  :  : ( "AJ@ ;Aj!;  ?j!?  16$ * *"“! * *"“!} * *"“" * “" ”  * “"”“" ”  * “"”  ”“" ”’  ” ”“" ”’"#9CzD”^@C€? ‘•" ”! ”! ”  C!C!C !  8  8  8  "6(  6,  #60 (8AF@ " "H¬ " "J¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ # #J¬ # #H¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ # " " #H¬ # " " #J¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ AØj"(€!A!@@  J@ AÀO@  Atj( "F  Aj!  AÀF AÀO@  Atj "6  (€Aj6€ AØj"(€!A!@@  J@ AÀO@  Atj( F  Aj!  AÀF AÀO@  Atj 6  (€Aj6€ AØj"(€!A!!@@  !J@ !AÀO@  !Atj( #F  !Aj!!  AÀF AÀO@  Atj #6  (€Aj6€ ) *Atj ;Ak6 *Aj!* (8AF@ * *” * *”’ * *”’C?^@ " "H¬ " "J¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ # #J¬ # #H¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ # " " #H¬ # " " #J¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ AØj"(€!A!@@  J@ AÀO@  Atj( "F  Aj!  AÀF AÀO@  Atj "6  (€Aj6€ AØj"(€!A!@@  J@ AÀO@  Atj( F  Aj!  AÀF AÀO@  Atj 6  (€Aj6€ AØj"(€!A!!@@  !J@ !AÀO@  !Atj( #F  !Aj!!  AÀF AÀO@  Atj #6  (€Aj6€ ) *Atj ;Ak6 *Aj!* ( (Alj* !A!@  J@  ( ( jAlj* "  ^! Aj!   ®CÀ”]@ " "H¬ " "J¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ # #J¬ # #H¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ # " " #H¬ # " " #J¬B †„!´ AÐj"(€!A!@@  J@ AÀO@  Atj) ´Q  Aj!  AÀF AÀO@  Atj ´7  (€Aj6€ AØj"(€!A!@@  J@ AÀO@  Atj( "F  Aj!  AÀF AÀO@  Atj "6  (€Aj6€ AØj"(€!A!@@  J@ AÀO@  Atj( F  Aj!  AÀF AÀO@  Atj 6  (€Aj6€ AØj"(€!A!!@@  !J@ !AÀO@  !Atj( #F  !Aj!!  AÀF AÀO@  Atj #6  (€Aj6€ ) *Atj ;Ak6 *Aj!* 3 7Atj" *48  26 7Aj!7 8 2Atj ;Ak6 2Aj!2  3 7Atj" *48  26 7Aj!7 8 2Atj ;Ak6 2Aj!2 >Aj!>  (AF@ 7AJ@ (D! (H!A!A! 7Ak!@@  k"AjAN@  Auj" ("Ak(AvO@ Aj" ("Ak(AvO@  Atj*  Atj*^@ ("Ak(Av M@ ("Ak(Av M@  Atj*  Atj*^@ ("Ak(Av M@  Atj"(! *!  ("Ak(AvO@  ("Ak(AvO@  Atj"  Atj"(! *8  6  ("Ak(AvO@  Atj" 8  6 ("Ak(Av M@  Atj"(! *! ("Ak(Av M@ ("Ak(Av M@  Atj"  Atj"(! *8  6  ("Ak(AvO@  Atj" 8  6 ("Ak(Av M@ ("Ak(Av M@  Atj*  Atj*^@ ("Ak(Av M@  Atj"(! *!  ("Ak(AvO@  ("Ak(AvO@  Atj"(!  Atj" *8  6  ("Ak(AvO@  Atj" 8  6  ("Ak(Av M@ ("Ak(Av M@  Atj*  Atj*^@ ("Ak(Av M@  Atj"(! *!  ("Ak(AvO@  ("Ak(AvO@  Atj"(!  Atj" *8  6  ("Ak(AvO@  Atj" 8  6 ("Ak(Av M@  ("Ak(AvO@  Atj*  Atj*^@  ("Ak(AvO@  Atj"(! *!  ("Ak(AvO@  ("Ak(AvO@  Atj"  Atj"(! *8  6  ("Ak(AvO@  Atj" 8  6 ("Ak(Av M@  Atj"(! *!  ("Ak(AvO@  ("Ak(AvO@  Atj"(!  Atj" *8  6  ("Ak(AvO@  Atj" 8  6 Aj! !@@@ Aj" ("Ak(AvO@  ("Ak(AvO@  Atj*  Atj*^ @ Ak! ("Ak(Av M@ ("Ak(Av M@  Atj*  Atj*^  L ("Ak(Av M@  Atj"(! *!  ("Ak(AvO@  ("Ak(AvO@  Atj"(!  Atj" *8  6 ("Ak(Av M@  Atj" 8  6  ("Ak(Av M@  Atj"(! *! ("Ak(Av M@ ("Ak(Av M@  Atj"(!  Atj" *8  6  ("Ak(AvO@  Atj" 8  6 Ak"!  "k  Aj"kH@ ! ! ! !  F !  At" Ak(AvO@  Atj 6 AtAj" Ak(AvO@  Atj 6 Aj!  ! Aj!@  N@ !@  H ("Ak(Av M@ Ak" ("Ak(AvO@  Atj*  Atj*^A @ ("Ak(Av M@  Atj"(! *!  ("Ak(AvO@ Ak" ("Ak(AvO@  Atj"(!  Atj" *8  6  ("Ak(AvO@  Atj" 8  6 Ak!  Aj!  E  Ak"At" Ak(AvO@  Atj(! AtAj" Ak(AvO@  Atj(!  A! @ 7H@ 9( 8 3 Atj(Atj("Atj("(,! (("   H¬    J¬B †„!´ AÐj"(€!A!@  H@ AÀO@ A  Atj) ´Q  Aj!  A AÀF  AÀO@  Atj ´7  (€Aj6€A ! (," (0"  J¬    H¬B †„!´ AÐj"(€!A!@  H@ AÀO@ A  Atj) ´Q  Aj!  A AÀF  AÀO@  Atj ´7  (€Aj6€A ! (0" (("  J¬    H¬B †„!´ AÐj"(€!A!@  H@ AÀO@ A  Atj) ´Q  Aj!  A AÀF  AÀO@  Atj ´7  (€Aj6€A ! ((! AØj"(€!A!@  H@ AÀO@ A  Atj( F  Aj!  A AÀF  AÀO@  Atj 6  (€Aj6€A ! (,! AØj"(€!A!@  H@ AÀO@ A  Atj( F  Aj!  A AÀF  AÀO@  Atj 6  (€Aj6€A ! (0! AØj"(€!A!@  H@ AÀO@ A  Atj( F  Aj!  A AÀF  AÀO@  Atj 6  (€Aj6€A !A!@@@@@@@ (8Ak !  !  !  !  !  ! AF@ ) *Atj 6 *Aj!* Aj!  A!!@ ! 2H@@ 9( 8 !Atj(Atj("(<"A÷qA÷F AqAF@ ((" (,"  J¬    H¬B †„!´ AÐj"(€!A!@  H@ AÀO@ A  Atj) ´Q  Aj!  A  A"qA"F@ (," (0"  J¬    H¬B †„!´ AÐj"(€!A!@  H@ AÀO@ A  Atj) ´Q  Aj!  A  AÄqAÄF@ (0" (("  J¬    H¬B †„!´ AÐj"(€!A!@  H@ AÀO@ A  Atj) ´Q  Aj!  A  ) *Atj 8 !Atj(6 *Aj!* !Aj!!  *E@ A6L  (!4 (!A!!A!A!@  *H@  At"jA6  9(  )j(Atj("( j! *! *! *! *! *! * ! A!  !H 4 A$lj"*! * ” * ”’ * ”’CÛù~?_ * ” * ”’ ”’CÛù~?_r Aj!   A "AG@  Atj 6 4 A$lj" ( ( j6 4 !A$lj" 8  8  8  8  8  8  ( 6  Atj !6 !Aj!! Aj!  E ((!'A!A!@  !H@ 4 A$lj" 6 A6  (j! Aj!  A!@  *H@  At"j("AG@ 9(  )j(Atj(! 4 A$lj!A! @ ( H@ ( ( jAlj! ' ( ( jAlj" ($6 *! *!  *8  8  8  * 8 -! -! -!  -:  :  :  :  ( Aj6 Aj!  Aj!  A!@  !H@ 4 A$lj" (!3 * !R *! *! (,!C!C![C!PC! C! C!A!A!A!A!A!C!OC!]C!\C!XA!7A!"A!;A!#A!%C!VC!YC!NC!JA!*A!2A!(A!&A!>C!LC!MC!TC!aA!?A!)A!0A!1A!8C!KC!QC!SC!bA!9A!”" ”!d#8!^A!A!A!@  H@  Ak(AvO@  Atj"*! *!R Aj!@  H@  Ak(AvO@  Atj"$* R“" ” $* “" ”’!  Ak(AvO@  Ak(AvO@  Atj*  Atj*’!A   d’^ A   d“]   ^ f“] @ ! ! !^ ! Aj!  Aj!   d]@A!A!@  H@  Ak(AvO@  Ak(AvO@    Atj*  Atj*^! Aj!  @ Ak(AvE@  Ak(AvO@  Atj"( ! *! *!  *8  8  8  6 A   Ak(AvO@  Atj"( !$ *!m *!W *!`  Ak(AvO@  Atj"( !+ *!{ *!e *!_  Ak(AvO@ Ak" Ak(AvO@  Atj"( != *! *!  Atj" *8  8  8  =6  Ak(AvO@ Ak" Ak(AvO@  Atj"( ! *! *!  Atj" *8  8  8  6 @@ Ak"E e" W“!| _" `“!cC!#8!^A!A!@  H@  Ak(AvO@  Atj"* `“! c * W“” | ”“"Œ  C]!R  Ak(AvO@  Atj*!UA R  d’^ A R  d“]  U ^ f“] @ ![ R! " Ak(AvO@  Atj*!^ Aj!  AF  Ak(AvO@  Atj"( ! *!l *!R *!U AF   Ak(AvO@ Ak" Ak(AvO@  Atj"( ! *! *!  Atj" *8  8  8  6 R!Z U! [C]@ !Z ! R W“!| U" `“!c R! Ak! Z “!“  “!¡ W Z“!’ ` “!¢C!#8!^A!A!@  H@  Ak(AvO@  Atj"*![ *"} `“ |” [ W“ c”“"£ } “ “” [ “ ¡”“"¤ } “ ’” [ Z“ ¢”“"[ [ ¤]"[ [ £]![  Ak(AvO@  Atj*!}A [  d’^ A [  d“]  } ^ f“] @ [! " Ak(AvO@  Atj*!^ Aj!  AF   Ak(AvO@  Atj"( ! *! *! *! Ak(AvE@  `8  W8  m8  $6 Ak(AvAM@  _8  e8  {8  +6 Ak(AvAM@  U8  R8$  l8(  6, Ak(AvAM@  80  84  88  6  !L !M !T !a !? !) !0 !1 !8  !K !Q !S !b !9 !< ! ! !: $Aj!$  A!$@ $ =H@ $ 3j" 'Ak(AnO@ $AO@ ' Alj!@@@@@ $ O!P ]! \! X! 7! "! ;! #! %!  V!P Y! N! J! *! 2! (! &! >!  L!P M! T! a! ?! )! 0! 1! 8!  K!P Q! S! b! 9!  Atj"*!3 *!4 *!5A!@ AH@ AO@ E@ !$ !% !# AF@ !$ !% !# AF@ !$ !% !# @ 2 %” 1 #”’ 0 $”’"! ; <”  >”’  =”’”C_ ! 5 %” 4 #”’ 3 $”’""”C`r % %” # #”’ $ $”’C·Ñ7” ! !”" " "”" ]^ }C€? ! ! "“•"“" 2”  5”’ 1”  4”’ 0”  3”’!8!7"6"" "” 7"9 9”’ 8"! !”’"#9CzD”^@C€? ‘•" "”!"  !”!  9”! "  C!C!C !! E@ !( :!) !& AF@ !( !) !& AF@ !( !) !& ! ) /“”  & .“”’ ( -“”’"" '^@ Œ!* Œ!+ !Œ!, ! "!' ! Aj!  Aj!  , + * '  A ‡  }#:"Ak(AvE@ ("E@ A6 (¨! ( ! (œ!  (¤" Ak(AvO@ Atj" * ! *! *! *! (! ("Ak(AnE@  8  8  8 Ak(AnE@   ”  ”’  ”’ “8 Ak(AnE@ A: A: A: A: Ak(AnAM@  8  8  8 Ak(AnAM@   ”  ”’  ”’ “8 Ak(AnAM@ A:$ A:% A:& A:' Ak(AnAM@  8(  8,  80 Ak(AnAM@   ”  ”’  ”’ “84 Ak(AnAM@ A:8 A:9 A:: A:;A! " Ak(O@  j-"!@ " Ak(AvO@  Atj"- -! - -" Ak(AvO@  Atj"- -! - - Ak(A n M@  A lj"*! *! *! Ak(A n M@ }  A lj"* “" ” * “" ”’ * “" ”’"#9CzD”^@C€? ‘•" ”!  ”!  ”!  C!C!C !    ”  ”“"  ”  ”“"  ”  ”“"  ”  ”’  ”’     X"AH@ C8 A: A: A: A:  ! ! !  G    J!#8!A! (!A!@  H@  Ak(AnO@  Alj" -! -! -! -! *! *! *!  * "  ^! E C^qE@  j" ("Ak(AnO@  Alj"   ”“8   ”“8   ”“8 8 A k: : A k: : Aj! Aj!  }#?C ×£;”C€@”C ]@ A6 C8 A: A: A: A:  6 Œ8 Œ8 Œ8 A68  8 A:  :  :     }#:" Ak(AvE@ ("!E@ (¨! ( !" (œ!#    "* W! !(! !(!  Ak(O@  j-"$!@ "! "Ak(AvO@ " !Atj"- - - -" "Ak(AvO@ " Atj"- - - -" #Ak(A nO@ # A lj"*! *!& *!' Ak(An M@ Alj" '8  &8  8  Ak(AnO@ Alj  '”  &”’ * ”’ “8  Ak(AnO@ Alj"A:  !: A:  :  $G Aj"A€Hq ! !A!@ AH AJq@ AO@ E@ !+ !, !( AF@ !+ !, !( AF@ !+ !, !( E@ !. !/ !) AF@ !. !/ !) AF@ !. !/ !)  } , *” ( ”“" ” ( ” + *”“"& &”’ + ” , ”“"' '”’"-#9CzD”^@C€? -‘•"- ”!0 - '”! - &”!& 0  C!C!&C "' &  ' .” & /”’  )”’    * X! !! ! !! Aj!  E@ C8 A: A: A: A:#8    J!!#8!A! (!A!@  !H@ Ak(An M@ Alj"-!" -! -!# -!$ *! *! *!  * "  ^! E C^qE@  j" ("%Ak(AnO@ % Alj" 8  8  8  8  $:  #:  :  ": Aj! Aj!  }#?C ×£;”C€@”C _@ C8 A: A: A: A:  6 8 8 *8 A68  8 A:  :  :  Í } (œ! ( "Ak(AvO@  Atj"- - -! -" Ak(AvO@  Atj"- -! - - Ak(A n M@  A lj"*! *! *! " Ak(A nO@           A lj"* “ * “ * “'!!!!!!!"! E "C]r C€?^r "C]r C€?^r@ C8 A: A: A: A: (" ("Ak(AnO@  Alj"  ’C?”8   ’C?”8   ’C?”8   “”  “”’  “”’"8 A:  Aÿq": A:  Aÿq":  8 A:  :  : 8 8 8 A6 AÌ(AvO@ AtAÐj(68 Ù   ("(AvO@ ( Atj(AN@  ("(AvO@ ( Atj(" ("( O@ ( Atj("E@  (("! (AtAj Atj j(Aj!A¸A�h"B7 B7 C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ C8D C8H C8L C8P C8T C8X C8\ C8` A6d A6h A6l A6p A6t A6x A6| A6€ A6„ A6ˆ A6Œ A6� A6” A6˜ A6œ A6  A6¤ A6¨ A6¬ A6° A6´ AA‚h6˜ AAòh6œ AA„h6  AA†h6¤ AAˆh6¨AAŠh AAŠh6¬AAŠh AAŠh6°AAŠh AAŠh6´ A6d A6p A6x A˜6h A˜6l A˜6t A˜6| A˜6€ A˜6„ A˜6ˆ A˜6Œ A˜6�   jA˜ü A˜j" j("AüÿÿÿK@  A‚h"6˜  m (˜"Ak(!  Aj" j ü  j" j("AÕªÕ*K@  A lAòh"6œ  m (œ"Ak(A nA l!  Aj" j ü  j" j("AÿÿÿÿK@  AtA„h"6   m ( "Ak(A|q!  Aj" j ü  j" j("AÿÿÿK@  AtA†h"6¤  m (¤"Ak(Apq!  Aj" j ü  j" j("AüÿÿÿK@  Aˆh"6¨  m (¨"Ak(!  Aj" j ü AAŠh  j" j("AÿÿÿÿK@  AtAŠh"6¬  m (¬"Ak(A|q!  Aj" j ü AAŠh  j" j("AÿÿÿÿK@  AtAŠh"6°  m (°"Ak(A|q!  Aj" j ü AAŠh  j" j("AÿÿÿÿK@  AtAŠh"6´  m (´"Ak(A|q!  Aj j ü (( !  ("(AvO@ ( Atj 6 ("( "Aj!  (AvK@ A ( Atj" 6 At  n 6  ¿  ("(AvO@ ( Atj(AN@  ("(AvO@ ( Atj(" ("( O@ ( Atj("E@  (("! (AtAj Atj j(Aj!AøAŽh"B7 B7 A6 C8 C8 C8 C8 C8$ C8( C8, A60 A64 A68 A6< A6@ A6D A6H A6L A6P A6T A6X A6\ A6` A6d A6h A6l A6p AA�h6` AAòh6d AA‘h6hAA h AA h6lAA h AA h6p A6< A6D A6L Aà68 Aà6@ Aà6H Aà6P Aà6X Aà6   jAàü Aàj" j("Añ¸œK@  A$lA�h"6`  m (`"Ak(A$nA$l!  Aj" j ü  j" j("AÕªÕ*K@  A lAòh"6d  m (d"Ak(A nA l!  Aj" j ü  j" j("AÕªÕ*K@  A lA‘h"6h  m (h"Ak(A nA l!  Aj" j ü AA h  j" j("AüÿÿÿK@  A h"6l  m (l"Ak(!  Aj" j ü AA h  j" j("AüÿÿÿK@  A h"6p  m (p"Ak(!  Aj j ü (( !  ("(AvO@ ( Atj 6 ("( "Aj!  (AvK@ A ( Atj" 6 At  n 6  ‘~A! A j"A€€ MA€€  AjApq A�€ j!#!@@ E ( Ajk" O  Kq@ ! ! " I  "(!  E@#)E@Aà¦$) #)! A j"A€€ MA€€  AjApq ­ ­B||"B€€€€Z@ ?¬B†" T@  }Bÿÿ|Bˆ§@AH@ §$) A6 #)6 A6 A6  @  (6 ($ A6 (" A j"A€€ MA€€  AjApq Ajj"kAœ€ O@  6 A6 6 A6 A6 #6 A6 A6 $  · AüÿÿÿK@ AjApqAk"Aj"##kK@# #(#kKA @#@##6 d!#@# 6 $ $ Aj$#$ #A# A€€j"#(#k"  Ij"#kü $ # 6#Aj!# j$  õ~ Aj"A€€K@ AjApqdAj"A ü  AA Akgk" AI"AtA¬j("@ AtA¬j (6#'#&kA tI@A!@#'#&kA O@@#'#&kA tI@ Ak!  #&" AtA¬j"(6  6#&A tj$&  #)E@Aà¦$) #)"­B € |"B€€€€Z@ ?¬B†" T@  }Bÿÿ|Bˆ§@AH@ §$) A6 #)6 A6 A6 #(6 $( Aj$& ($' #&!#&A tj$& A t"6 Aj"A Akü ] A#jApqAk"Ajd"Aj!  Aj j6 #6 $  6 A6 A6  6  6 Aj Z AìÿÿÿK@ A€€O@ g"A ü  Aje"Ak"A6 A6  6  6 Aj à A€€O@ AìÿÿÿK h g  A#jApqAk"Aj"##kK@# #(#kKA @#@##6 d!#@# 6 $ $ Aj$#$ # j$ #" 6 A6 A6  6  6# j$ Aj Ÿ##,F@#,AtAÀ#,"Atf!#*@ #*#Atü #*"Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ $* $, #*#Atj 6#Aj$ Ÿ# #.F@#.AtA€#."Atf!# @ # # Atü # "Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ $ $. # # Atj 6# Aj$ Ÿ##%F@#%AtA€#%"Atf!#$@ #$#Atü #$"Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ $$ $% #$#Atj 6#Aj$ œ E Er Aà¦Ir Aà¦Ir@ Ak!#AF (AFA @ ("AqE@  Ar6 l Ak"(AG@ (" AGA @ (Aq@  (Ar6 k ç Aà¦I@ Ak"("AF@#AF@ ("AqE@  Ar6 l  A AGA  Ak"(AG@ ("Aq@ Av   ( AvI@# # Atj!# AIA Ak( G A Ak( ArG @  A€j6 Ark k   Ar6 k W #""   KAtj! $# #!"   KAtj!@ I@ ("@ p6 Aj!  ‰  E Aà¦Ir@  Ak"("AF@ ("AqE@  Ar6 j  #E AFq@#AF@ ("AqE@  Ar6 l  AF@  AF@ (  (Aj" AjApqAk" Aj!#A# @# AAA gk" AOtq!@ @ hAtA€j(!  Akq! (Aj" I  (! AA#AFA#AF #Gq $+ (Aj! (! ( "@  6AA gk" AO"AtA€j 6 E@# A~ wq$ @  6 A6# j$  I@@  j"  k"Ak6 A6 A I AA gk" AO"AtA€j"(! A6  6 A6  6 @  6  6# A tr$ # #"  Kk$   A "@  6 Ajj Aj  A#AF A#E#AFq#AGq A $+ # # kK@#@## 6 d!#@# 6 $ $ Aj$ ($ # 6# Aj!# j$ # j$  " Ak ü Ak"A6 #+6# j$ A6  Aj"6 ­ E# AGq@# Aj!# ! @@ #F#  ( M@@ #F ("Aj!   (! Ajs  Ajj!  # !#! ##F $ @##I@#*#Atj(!#Aj$ s   ° E@AÀ A �I AäI A OAj A�ÎOAj AèOj  A€­âI AÀ„=OAj A€”ëÜOAj A€Â×/Oj "AtAh!@ A�ÎO@ A�Îp! A�În!  Ak"Atj AänAtAÀj5 AäpAtAÀj5B †„7  AäO@  Ak"Atj AäpAtAÀj(6 Aän! A O@  AkAtj AtAÀj(6  AkAtj A0j;  ½3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Ak(Akµ14L0000006MO030;LL30;L230;LKKKKKKKKKKKK000000000000000000000000000000MOMONLNLL<4  (p6 (!A A²h"A6  6  6 ("DðAG@ AA h"}  6   (  (D!#P"|  (D L¡!L (AvA M@ ( L9X @D@�@£!L ("A€H@ ("( M@ ( jA: ("(Av M@ ( Atj M9  ( "(AvO@ ( Atj L9 Aj6  *  (Ll j" ( O@ ( Atj("E@ (A (XAÿr"LDc@ L« (HAF@AA h"A6 ( (A"LDc@  L«6 ( (! (`! (h"&(A"LDc@ L«#IA6#IA "|D@�@£D !L (" ("(J@A A h"A6 A6 A6   AujA@k!  6  m A ( z ("( (F ((AJA E@  (6 (!A A h"A6 A6 A6 AüÿÿÿK@  Aýh"6  6  6  6  m A (Az (("(! (!A A h"A6 A6 A6 AüÿÿÿK@  Aýh"6  6  6  6  mA A$h"A6 A6 A6 AÿÿÿÿK@  At"Aýh"6  6  6  6  m ("(! (Av"@ Aÿ Atü ("( ! AA AJ@ (A Atü A6 ("( ! AA AJ@ (A Atü A6 ("( ! AA AJ@ (A Atü A6 ( "( ! AA AJ@ (A Atü A6 ("( ! AA AJ@ (A Atü A6 A!@  H@AàAžh" ( "Aj" (AvK@  A ( Atj" 6  At  n  6 Aj!  (("(! (! (! (" *8´ (6è * $? (L"( E@ (("E@ ( ( , A6$ A6( A68A!@ AH@ AO@  AtjA6@ Aj!  (! (4!@ ( " H@ (($! Aj" (AvK@  A ( Atj" 6  At  n  6  (8"( H@ ( ! AªÕªK@ Al" ("K@ At" I@ ! Aýh" ( ü  6  6  6  m  J@ ( AljA  kAlü  6 (8(!A0!A!@  H@  j"(" ("("( O@ ( Atj("E@ ( "(O@  ( j-  ((" AtAjj(!   j(6  Aj j(6  Aj j(6  A j j(6  Aj j(:†  Aj j(;„ Aj" j"*!* *!,  *8@  ,8D  *8H  j"*$!* * !, *!) *!+ *!- *!.  * 8ˆ  .8Œ  -8�  +8”  )8˜  ,8œ  *8  *4!* *0!, *,!)  *(8¤  )8¨  ,8¬  *8° A8j" j(! Aj j(! Aj j*!* A j j*!, Aj j*!)  Aj j(6L Aj" j("A™³æ K@ A(lAšh"Ak(A(nA(l!  Aj j ü  6P  m AF@   b"6´  m AF@AA“h"A6 C8 C8 C8   c6  )8  ,8  *8  6¸  m AF@  ("(AvO@ ( Atj(AN@ ("(AvO@ ( Atj(" ("( O@ ( Atj("E@   (("! (AtAj Atj j(Aj! AðA•h"B7 B7 A6 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ A6D A6H A6L A6P A6T A:X A:Y A:Z A:[ A:\ A:] A:^ A:_ A6` A6d A6hAA–h AA–h6`AA h AA h6dAA h AA h6h A6D A6H Aà6L Aà6P Aà6T Aà6   jAàü AA–h Aàj" j(" AþÿÿÿK@  AtA–h" 6`  m (`"Ak(A~q!  Aj" j ü AA h j" j(" AüÿÿÿK@  A h" 6d  m (d"Ak(!  Aj" j ü AA h j" j(" AüÿÿÿK@  A h" 6h  m (h" Ak(! Aj j ü (( ! (" (AvO@ ( Atj 6 ("( " Aj! (AvK@  A ( Atj" 6  At n  6  "6¼  m AF@  ("(Av M@ ( Atj(AN@ ("(AvO@ ( Atj(" ( "( O@ ( Atj("E@   (("! (AtAj Atj j(Aj! A�A¥h"B7 A6 C8 C8 C8 C8 C8 C8 A6$ A6( A6, A60 A64 A68 A6< A6@ A6D A6H A6L A6P A6T A6X A6\ AAùh6` AAšh6d AA¦h6h AA¨h6l AAªh6p AA¬h6tA A#h" A6 A6 A6 AAýh"6 6 A6  6x AA®h6| AA°h6€ A6„ A6ˆ   jAàü Aàj" j(" Añ¸œK@  A$lAùh" 6`  m (`"Ak(A$nA$l!  Aj" j ü j" j(" A™³æ K@  A(lAšh" 6d  m (d"Ak(A(nA(l!  Aj" j ü j" j(" AÿÿÿK@  AtA¦h" 6h  m (h"Ak(A`q!  Aj" j ü j" j(" Añ¸œK@  A$lA¨h" 6l  m (l"Ak(A$nA$l!  Aj" j ü j" j(! Aj! AAªh AÿÿÿÿK@ AtAªh!A! @ H@   j(b! Ak(AvO@  Atj" 6 A  n Aj! Aj!   6p  m  j(" A±§ì K@  A4lA¬h" 6t  m (t"Ak(A4nA4l!  Aj" j ü j" j(! A A#h" A6 A6 A6 AþÿÿÿK@ At" Aýh"6 6 6 ( Aj" j ü  6x  m j" j(! Aj! AA®h AÿÿÿÿK@ AtA®h!A! @ H@   j(c! Ak(AvO@  Atj" 6 A  n Aj! Aj!   6|  m  j(" A³æÌK@  AlA°h" 6€  m (€" Ak(AnAl! Aj j ü ( ( ! (" (AvO@ ( Atj 6 ( "( " Aj! (AvK@  A ( Atj" 6  At n  6  "6À  m ( "(O@ ( jA:  " *!* *!, *!) * !+ *!- *8(  -8,  +80  )84  ,88  *8<    Alj AjAü A4j! Aj!  ("( AM@ (("E@ (! ("( E@ (("E@ (! ("( AM@ (( "E@ (! ($" ( " J@ A�ˆ„K@ Aül" (" K@ At" I@ ! Aýh" ( ü  6  6  6  m ( AüljA kAülü  6 ((" ( " J@ A�ˆ„K@ Aül" (" K@ At" I@ ! Aýh" ( ü  6  6  6  m ( AüljA kAülü  6 (," ( " J@ A�ˆ„K@ Aül" (" K@ At" I@ ! Aýh" ( ü  6  6  6  m ( AüljA kAülü  6 (" ( " ( J@ ( ! AªÕªK@ Aàl" (" K@ At" I@ ! Aýh" ( ü 6 6 6 m J@ ( AàljA kAàlü 6 A!@  H@ Aj j(!    j(" AF  ( Aj j(" Aülj A j" jAüü Aüj! AF@  ( " ( O@ ( AàljA6  ( " ( O@ ( Aàlj 6 Aj!  ($! ( !@ ( " H@ ( ! Aj" (AvK@ A ( Atj" 6 At  n 6   (Ak(AvJ@AAûh  AujAj"AÿÿÿÿK@  AtAûh"6  m (!A!@  H@  j(" ( O@ ( Atj("E@  ( F@AÄA¬h"{   Ak(Av M@  Atj 6  68  Aj j(6$  Aj j(6(  A j j(6,  Aj j(6  Aj j(6  Aj j(6<  Aj j(6@ A6 A6   A jj"(6D (! (! A j"* !* *!, *!)  *8P  )8T  ,8X  *8\ Aj"* !* *!, *!)  *8`  )8d  ,8h  *8l Aj"*!* *!, *!) * !+ *!- *!.  *8p  .8t  -8x  +8|  )8€  ,8„  *8ˆ  Aj"*8Œ  *8�  *8” *!* *!,  * 8˜  ,8œ  *8  Aj"-! -! -! -! -! -! -! -! / ! *!* -! -! -! -!  *8¤  :¨  :©  :ª  :«  *8¬  ;°  :²  :³  :´  :µ  :¶  :·  :¸  :¹ Aj" "*!* *!, * !) *!+ *!- (¼" *8  -8  +8  )8  ,8  *8 (¼("( ! A’ɤK@ Al" (" K@ At" I@ ! Aýh" ( ü  6  6  6  m J@ ( AljA kAlü Aj!  6 Al"@ (  ü @ (HAk(AŒn G@ AãÄôK@  AŒlAËh"6H  m  #@"6H  m  j!  6L AŒl"@ (H  ü  j k! Aj!  (" 6X  m @D@�@£!M ("A€H@ ("( M@ ( jA: ("(Av M@ ( Atj L9  ( "(AvO@ ( Atj M9  Aj6 |D@�@£D !L AJ@A!A! ("(0"(!' (L"( E@ (("E@ (X! ($! (4! (8! ("( AM@ (("E@ (! ("( E@ (("E@ (!# *´"H"*#?C ×£;”C€@”", * ,]!I (!$@  H@ " Ak(AvO@  Atj(! ($(  Aj" H@  (  Atj(Atj((j! Aj" H@ (" (  Atj(Atj("((Atj("(€ ( (@jj ($At j("(€ ( (@jj (À (€ ( (@jjjjj! (LAJ@  (H"(À (€ ( (@jjjj! (<"AN@  $ Aülj(j! (@"AN  $ Aülj(j  j!  ( O@ ( Atj("E@ ((! ($" ( O@ ( Alj"*!* *!, * !) *!+ *!- *!. ( M@ ( Alj"*!5@ * -` * *`q * +`q ) 5`q * ,_q * ._qE@  (DA€€r6D  (DAÿÿ{q6D ("( Av" ("Ak(AvO@  Atj)B A?q­†„!N  Ak(AvO@  Atj N7   ( O@ ( Atj(" E@  ( O@ ( Atj(" E@ (@! (! ( ! (<""AN  # AH  (!  ( "( O@ ( Aàlj(" ( O@ ( Atj("E@ ( ! AN  # AH  (!  ( " ( O@ ( Aàlj(" ( O@ ( Atj("E@ ( !  AN A~ k AH   ( " ( O@ ( Aàlj( ! AN A~ k AH   ( " ( O@ ( Aàlj( ! (DA€€qAG!  ( O@ ( Aülj" *!. *!) *!+ * !- *!2 *!3 *!0  ( O@ ( Aülj" *!8 *!5 *!7 * !6 *!= *!> *!@  ( O@  ( O@ ( Aülj(( ( Aülj((rAÀqAG"%E HC^q (DA€€€qA  (DAqA @ H I !: 6 *`” 7 *d”’ 5 *h”’ 8 *l”’"* *”!9 - *P” + *T”’ ) *X”’ . *\”’"* *”!; + = 2“"*” ) > 3“",”“ . @ 0“"<”“!A < + - ,” + <”“ . *”“"C” ) ) <” - *”“ . ,”“"<”“C@”’!B * - <” + A”“C@”’!E , ) A” - C”“C@”’!D *ˆ!< *„!A *€!C *|!/ *x!G *t!J *p!K AH}AØ*!1AÔ*!*AÐ*  ( O@ ( Aülj" *8!1 *4!* *0 !? *!, AH}AØ*!*AÔ*!4AÐ*  ( O@ ( Aülj" *8!* *4!4 *0 !F K B“"B B” J D“"B B”’ G E“"B B”’"G : :”] ; 9 9 ;^C.~?^q@ 5 -” 6 )”“ . 7”’ 8 +”“"9 A” 6 +” 7 -”“ . 5”’ 8 )”“"; C”“ < 7 )” 5 +”“ . 6”’ 8 -”“"B”’ . 8” - 6” + 7”’ ) 5”’’"E /”“"DŒ D DC]!D : G‘“": :” ; /” B A”“ < 9”’ E C”“":Œ : :C]": 1 * * 1]"1” B C” 9 /”“ < ;”’ E A”“"*Œ * *C]"* , 4 , 4^",”’"< <” * ? F ? F^"*” D 1”’"< <”’ D ,” : *”’"* *”’C€@”^@ + *XŒ"2” ) *TŒ"3”“ . *PŒ"0”’ *\"= -”’"* . =” - 0” + 3”’ ) 2”’“">”!@C€? ) 0” - 2”“ . 3”’ = +”’", ,”": - 3” + 0”“ . 2”’ = )”’") )”"+’C@”“!= * ,”"< ) >”"A’C@”!C * )”"/ , >”">“C@”!1C€? * *”"4 +’C@”“!9 , )”"; @’C@”!? 7 *hŒ")” 5 *dŒ"+”“ 8 *`Œ"-”’ *l". 6”’"* *”!2 * 8 .” 6 -” 7 +”’ 5 )”’“"3”!0C€? 5 -” 6 )”“ 8 +”’ . 7”’", ,”"F 6 +” 7 -”“ 8 )”’ . 5”’") )”"+’C@”“!5 * ,”"- ) 3”".’C@”!7 * )”"* , 3”"6“C@”!8 , )”", 0’C@”!3  ( O@ ( Aülj"*!) * !B *$!E  ( O@ < A“C@”!< / >’C@”!> ; @“C@”!@C€? 4 :’C@”“!: - .“C@”!AC€? 2 +’C@”“!/ * 6’C@”!6 , 0“C@”!0C€? 2 F’C@”“!2 ) ( Aülj"*“!4 E *$“!; B * “!F (L!A!@  H@ " (H"Ak(AŒnO@  AŒlj" "*è!B *ä!E *à!D (ˆ! A!@  H@ AO@ = A8lj"*"*” < *",”’ > *")”’!G  *( 4 5 * "+” A *"-”’ 6 *".”’ G“’ D” F 7 +” / -”’ 0 .”’ C *” 9 ,”’ @ )”’“’ E”’ ; 8 +” 3 -”’ 2 .”’ 1 *” ? ,”’ : )”’“’ B”’’8 C8$ A:4 Aj!  Aj!   (8Aj68A  AN"AJ@ Ak"AO@  Atj" (@Aj6@   -8P  +8T  )8X  .8\  68`  78d  58h  88l + = 2“"*” ) > 3“",”“ . @ 0“":”“!<  : + - ,” + :”“ . *”“"A” ) ) :” - *”“ . ,”“":”“C@”’8p  , ) <” - A”“C@”’8t  * - :” + <”“C@”’8x  7 )” 5 +”“ . 6”’ 8 -”“8|  5 -” 6 )”“ . 7”’ 8 +”“8€  6 +” 7 -”“ . 5”’ 8 )”“8„  . 8” - 6” + 7”’ ) 5”’’8ˆ  (DA€€€r6D  ( O@  ( O@ ( Aülj"*X!* *\!, *`!: ( Aülj"*X!< *\!A *`!C (AF@ (,! (À"E@ #4!#5!#3"A6 A6 @ AN ( = 6 7 5 8A/! (XAF@    (P 0 + *<"0” ) *8"/”“ . *4"1”’!4 1 + - /” + 1”“ . 0”’"9” ) ) 1” - 0”“ . /”’"1”“C@”’’ 3 / ) 4” - 9”“C@”’’ 2 0 - 1” + 4”“C@”’’ + *H"2” ) *D"3”“ . *@"0”’ *L"/ -”’ ) 0” - 2”“ . 3”’ / +”’ - 3” + 0”“ . 2”’ / )”’ . /” - 0” + 3”’ ) 2”’“ @ > = 6 7 5 8 %Z" -†AqA -†Aq A @  (DA€€Àr6D  (DAÿÿ¿q6D  (" AFA    @ > = 6 7 5 8  0 3 2 - + ) .A/    0 3 2 - + ) . @ > = 6 7 5 8A/ !  (AF   @ > = 6 7 5 8  0 3 2 - + ) .A/    0 3 2 - + ) . @ > = 6 7 5 8A/ ! (L! + *<"2” ) *8"3”“ . *4"0”’!= 0 + - 3” + 0”“ . 2”’">” ) ) 0” - 2”“ . 3”’"0”“C@”’!@ 2 - 0” + =”“C@”’!2 3 ) =” - >”“C@”’!3A!@  H@  (H"Ak(AŒnO@  AŒlj(ˆ! A!@  H@ (H AŒlj A8lj"*!0  * @’ý * 3’ý  0 2’ý  * ý ý  Aj!  Aj!   (AFA (AF @   A 0 3 2 - + ) . @ > = 6 7 5 8 %Z" -†AqA -†Aq A @  (DA€€Àr6D  (DAÿÿ¿q6D    0 3 2 - + ) . @ > = 6 7 5 8A/! @ * + - ,” + *”“ . :”’"2” ) ) *” - :”“ . ,”’"3”“C@”’!0 : - 3” + + :” ) ,”“ . *”’"*”“C@”’!+ , ) *” - 2”“C@”’!* < 7 6 A” 7 <”“ 8 C”’",” 5 5 <” 6 C”“ 8 A”’")”“C@”’!- C 6 )” 7 7 C” 5 A”“ 8 <”’")”“C@”’!. A 5 )” 6 ,”“C@”’!,A!@  (LH@  (H"Ak(AŒnO@  AŒlj(ˆ! A!@  H@ (H AŒlj A8lj"*!)  * 0“ý * *“ý  ) +“ý  *!) *!5 * .“!7 * ,“!6 * -“ý ý   6ý 7ý  5ý  )ý ý  Aj!  Aj!   (DA€€r6D  (DAÿÿ{q6D A (L" AN"AJ@ Ak"AO@  Atj" (@Aj6@  AFq (DA€€€qA @ ("AN AHA  (LAÿÿq! (" '("Ak(AvO@  Atj("E@ (" ( "( O@ ( A lj ; E AFq@  (DA€€r6D ("( Av" ("Ak(AvO@  Atj)B A?q­†„!N  Ak(AvO@  Atj N7  Eq@  (DA€€ r6D ("( Av" ("Ak(AvO@  Atj)B A?q­†„!N  Ak(AvO@  Atj N7 @ (L!A!@  H@ " (H"Ak(AŒnO@  AŒlj"(ˆ! A!@  H@ AO@  A8lj" *8( Aj!  Aj!  Aj!   (< j6< @D@�@£!M ("A€H@ ("( M@ ( jA: ("(Av M@ ( Atj L9  ( "(AvO@ ( Atj M9  Aj6 |D@�@£D !LA0!A!@  H@  Ak(AvO@  Atj(" ( O@ ( Atj("@  (¼(( AlA�j (LAŒljj! Aj!  ("( H@A A h"A6 A6 A6   AujA@k!  6  m ((" 6  ($6  ((6  (86 A!@ AH@ AO@  At"Ajj  j(@6 Aj!  A0j!A!@  H@  Ak(AvO@  Atj(" ( O@ ( Atj("E@ (¼(( !  (D6  (L6  6 *\!* *X!, *T!) A j" *P8  )8  ,8  *8 *l!* *h!, *d!) Aj" *`8  )8  ,8  *8 *ˆ!* *„!, *€!) *|!+ *x!- *t!. Aj" *p8  .8  -8  +8  )8  ,8  *8 Aj" *Œ8  *�8  *”8 * !* *œ!,  *˜8  ,8  *8 -¹! -¸! -·! -¶! -µ! -´! -³! -²! /°! *¬!* -«! -ª! -©! -¨! Aj" *¤8  :  :  :  :  *8  ;  :  :  :  :  :  :  :  : (¼"*!* *!, *!) * !+ *!- Aj" *8  -8  +8  )8  ,8  *8 Aj! Al"@  (¼(( ü  j! (LAŒl"@  (H ü  j! Aj!   ("( ("AH AHr  Hr@   AH"E@Aà A� ~A� ~  AF@Aà A° ~  AF@Aà Aà~  AF@Aà A� ~A ~  AF@Aà A� ~AÐ ~A€r~A ~  A @ AA h"A6 A6  6 @D@�@£!M ("A€H@ ("( M@ ( jA: ("(Av M@ ( Atj L9  ( "(AvO@ ( Atj M9  Aj6 & * "6$ m (" (P lj" ( "( O@ ( Atj("E@ (A ("LDc@ L« (A (0A tAÿj"LDc@ L« A6h A6`A!  A€‰ú6,A!  (@! ((  A6@ (AG@ (! A~6 ("(E@ A6 6 m   ("E@ + A!  A~6 ("(E@ A6   A! (E@ ("@@ ( " J@ At" (j(( F@A  k" AJ"A AJ"At"Aýh!AAh" 6  m  6  6  6 (  ("j" Atü  j" G@ Ak"("Aq (AGrE@ Av! Aq"   AÿÿÿGA  @  Ar6 k  Atj  kAtü   k"AtjA Atü  6  ( Ak6  Aj!   A~6 ] ("AH AHr  Jr@   AH! (! (! (     kA  I" K ñ A6 A6 A6 A6 A6 A6 A6 A6 A6 A6$ A6( A6, A60 A64 A68 A6< A6@ A6D #@6H A6L C8P C8T C8X C8\ C8` C8d C8h C8l C8p C8t C8x C8| C8€ C8„ C8ˆ C8Œ C8� C8” C8˜ C8œ C8  C8¤ A:¨ A:© A:ª A:« C8¬ A;° A:² A:³ A:´ A:µ A:¶ A:· A:¸ A:¹AAªh!AA«h"AàAýh"6  6 Aà6 A6  6 C8 C8 C8 C8 C8 C8 6¼ A6À Q (Al"AH ("(Av!Ar Hr@  AH! (A ( AtE@  A6AA h AA h6 H Ak(A~q" Ak(A~q"j"E@A�  Ai" ü  j  ü  Í A6 A6 A6 A6 A6 A6 A6 C8 C8 C8$ C8( C8, C80 C84 C88 C8< C8@ C8D C8H A6L #H6P B7X B7` A6h B7p B7x A6€ A;„ A:† C8ˆ C8Œ C8� C8” C8˜ C8œ C8  C8¤ C8¨ C8¬ C8° A6´ A6¸ A6¼ A6À A6Ä A6È A6Ì A6Ð A;Ô A:Ö #H6Ø #H6Ü ÍA Añh"A6 A6 C8 #>6 A6 C8 6A Añh"A6 A6 C8 #>6 A6 C8 6 C8 C8 C8 C8 C8 C8 C8 A:$  O (A ("( ("AH ("AHr Jr@  AHA!!" E@ R ( ( ("( ( "AH (Av" Hr@  AHAtA!!" E@ R ( ( ("( ( "AH (Av" Hr@  AHAtA!!"  E@ ð&*{} (8(!2#K!4 * !F (0"*”Œý!( -œ!A j! AJ  (AvO@ ( Atj( !@ B AÿÿqH@  A°lj!? Aj! "C AJ  ?(  "Dj! AA ?ý�ý ýAý£ E@A!:@ :AL@ ? :Atj"(" 2 AkAtj 4 ! ("5 2 5AkAtj 4 !5 ("6 2 6AkAtj 4 !6 ( "7 2 7AkAtj 4 !7 ("8 2 8AkAtj 4 !8 ("9 2 9AkAtj 4 !9 ý" 6ý" ý " 5ý" 7ý"ý "ý ! ý   !  ý     ý   ý ! ý" 6ý" ý " 5ý" 7ý"ý "ý ! ý   !  ý     ý   ý ! 8ý" ("; 2 ;AkAtj 4 ";ý" ý " 9ý" ("< 2 @ > EH@ @AÐj >AÐlj"3ý! ) - 3ý0" ýæ . 3A@ký"ýæýä / 3ýP"ýæýä * ýæ + 3ý"ýæýä , 3ý "ýæýäýåýä 3ý`ýä! ' 3ý°" (ýCýN 3ý€"0 3ýÀ"ýå"ý ýDýN! 3ýp" 3ý�"% %ý 'ýR A"%  ýæ  ýæýåýä   ýæ  ýæýåýäýå ýæ !  ýæ  ýæýåýä   ýæ  ýæýåýäýå ýæýä "  ýæ  ýæýåýä   ýæ  ýæýåýäýå ýæýä"1 & ýæý  Fýýæ"ý ýFýR ýRýäýæýå"ý ý ýFýR ýå! &  % 1ýæýá"ý ý ýFýR" ý ý ýFýR"  ýEýR"ýäýæ ýå! 3    ý ý ýFýRýä"  ýEýR  ýR"ýäý p 3   ýåýäý À 3 0 ýäý €  ýP   ýæ"ýæ   ýæ" ýæýå"ýæ ý`"   ýæ"ýæ ýæýå"ýæ ýp" ýæ  ýæýå" ýæýäýäýå!   ýæ ý€ ýæ ý�" ýæýäýäýå!   ýæ  ýæ ý  ýæýäýäýå!  # ýæýå!  # ýæýå!  # ýæýå!  ý°  ýæ  ýæýå" ýæ ýÀ"  ýæ ýæýå"ýæ ýÐ" ýæ  ýæýå" ýæýäýäýä!   ýæ ýà ýæ ýð" ýæýäýäýä!   ýæ  ýæ ý€ ýæýäýäýä! $ ýæýä! ! $ ýæýä!! " $ ýæýä!" >Aj!>  =Aj!=   ý " ý ý " ý !  ý   " ý ý   "ý !  ý   ! ý   !  ý " ý ý "ý !  ý   " ý ý   "ý !  ý   !  ý   !@ ("E 2 AkAtj"(,A€ qE  ý   ý  @ ("E 2 AkAtj"(,A€ qE  ý   ý  @ ("E 2 AkAtj"(,A€ qE  ý   ý  @ ( "E 2 AkAtj"(,A€ qE  ý   ý   ý " ý ý " ý !  ý   " ý ý   "ý !  ý   ! ý   ! "ý " !ý ý "ý ! "ý   " !ý ý   "ý !  ý   !  ý   !@ ("E 2 AkAtj"(,A€ qE  ý   ý  @ ("E 2 AkAtj"(,A€ qE  ý   ý  @ ("E 2 AkAtj"(,A€ qE  ý   ý  @ ("E 2 AkAtj"(,A€ qE  ý   ý  :Aj!:  BAj!B  ª55{} (8(!?#K!@ * !P j! AJ  (AvO@ ( Atj( !@ L AÿÿqH@  A°lj!K AJ  K(  !M Ký€ý ýAý£E!NA!F@ FAL@ K FAtj"(" ? AkAtj @ ! ("A ? AAkAtj @ !A ("B ? BAkAtj @ !B ( "C ? CAkAtj @ !C ("D ? DAkAtj @ !D ("E ? EAkAtj @ !E ý" Bý" ý " Aý" Cý"ý "ý ! ý   !  ý     ý   ý !! ý" Bý" ý " Aý" Cý"ý "ý ! ý   !  ý     ý   ý ! Dý" ("G ? GAkAtj @ "Gý" ý " Eý" ("H ? HAkAtj @ "Hý"ý "ý !" ý   !#  ý     ý   ý !$ Dý" Gý" ý " Eý" Hý"ý "ý ! ý   !  ý     ý   ý ! ý0"( A@ký")ýä!0A!I@ I MH@   IjA� lj"> FAtj"=ý" Dý " Gý "ý " Eý " Hý " ý "ý  ý " Bý " ý " Aý " Cý "ý "ý ýåýæ =ý" ý     ý   ýåýæýä =ý "  ý    ý   ý   ý     ý   ý ýåýæýä! ý0" Bý0" ý " Aý0" Cý0"ý " ý   " ýæ  ý   " ý   "ý " ýæýå!  ýæ  ý " ýæýå!   ý   " ýä" ýæýå  ýæ  ýæýå" ýä" ýæ   ýä"ýæýåýä!%  ýæýå  ýæ ýæýåýä!1  ýæýå ýæ  ýæýåýä!2 Dý0" Gý0" ý " Eý0" Hý0"ý " ý   " ýæ  ý   " ý   "ý " ýæýå!  ýæ  ý " ýæýå!   ý   " ýä" ýæýå  ýæ  ýæýå" ýä" ýæ   ýä"ýæýåýä!3  ýæýå  ýæ ýæýåýä!4  ýæýå ýæ  ýæýåýä!5  " ýå"ýæ # ýå"ýæýä $ !ýå" ýæýä! =ý !6 =ý0" ýæ =A@ký"& ýæýä =ýP", ýæýä!7 =ý°!8 =ý`"- ýæ =ýp". ýæýä =ý€"/ ýæýä!9ý !ý !ý ! >(À!OA!J@ J OH@ =AÐj JAÐlj">ý! 3 >ý0"ýæ 4 >A@ký"ýæýä 5 >ýP"ýæýä % ýæ 1 >ý"ýæýä 2 >ý " ýæýäýåýä >ý`ýä Pýýæ! ýP  ýæ ýæýå" ýæ ý`"* ýæ  ýæýå" ýæ ýp"+  ýæ  ýæýå"ýæýäýä!: * ýæ ý€ ýæ ý�" ýæýäýä!* + ýæ  ýæ ý  ýæýäýä!+ ý°  ýæ  ýæýå"ýæ ýÀ"'  ýæ  ýæýå"ýæ ýÐ";  ýæ  ýæýå"ýæýäýä! ' ýæ ýà ýæ ýð"' ýæýäýä!< ; ýæ ' ýæ ý€ ýæýäýä!' >ý�  ýæ  ýæýä  ýæýä ýæ ýæýä  ýæýäýåýäý ý ýFýRýäýæýá" >ýp" ýá"  ýFýR! > ýä" ý p > >ý€ ýäý €  ýä!  >ý  ýæýä! 0 ýæýä!  ýä!   :ýæýå!   *ýæýå!   +ýæýå!   ýæýä!   <ýæýä!   'ýæýä! JAj!J  N@ A�j">ý ! = ý€ ýæ" =ýà" >ý  ýå" ýæ >ý"  ýå" ýæ  ýå" ýæýäýäýä" ýæ =ýð"  ýæ >ý0 ýæ >A@ký" ýæýäýäýä" ýæýä =ý€" >ý ýæ  ýæ >ýP ýæýäýäýä" ýæýä" ýã#<ý" ýäýçý €?€?€?€?  ýæýäýDýR" ýæý =ý�ý ýB" ýR" ý à =  ýæý ýR"ý ð =  ýæý ýR" ý €  ýP ýå"ýæ ý`"  ýå" ýæ ýp" ýå" ýæýäýäýå!  ýæ ý€ ýæ ý�" ýæýäýäýå!   ýæ ýæ ý  ýæýäýäýå!  ý° ýæ ýÀ" ýæ ýÐ" ýæýäýäýä!  ýæ ýà ýæ ýð" ýæýäýäýä!   ýæ ýæ ý€ ýæýäýäýä! =ýð   ýåýæ  ýåýæýä  ýåýæýäýæýá" ýð" ýæ" =ý€"ýå" ýEýR! =  ýá ýå"  ýFýR"ýäý € ýæ" =ýÀ" =ý� 7 6ýå   ýÀ" ýæ ýà ýæ ýð" ýæýäýäýæýä" =ýà"ýæ   ýÐ" ýæ  ýæ ý€ ýæýäýäýæýä" =ýÐ"ýæýå   ý`" ýæ ý€ ýæ ý�" ýæýäýäýæýå" =ý°"ýæ   ýp" ýæ  ýæ ý  ýæýäýäýæýå" =ý "ýæýåýå"% ýæ =ýÀ"ýæ   ý° ýæ ýæ  ýæýäýäýæýä" ýæýå  =ý�"ýæ   ýP ýæ  ýæ ýæýäýäýæýå" ýæýåýå" &ýæýä  ýæ  ýæýå ýæ  ýæýåýå" ,ýæýäýä"ýæ =ý " 9 8ýå % -ýæ  .ýæýä  /ýæýäýä"ýæýäýáýä" ýæ =ýÐ"% ýæ =ý° ýæýäýáýä" ýæýä"ýã#<ýýäýçý €?€?€?€?  ýæýDýR" ýæ!  ýæ" %ýå! = ý À = ý Ð ýå" ýæ  -ýæýä! ýP   ,ýæ  /ýæýä" ýæ   &ýæ  .ýæýä" ýæýå"ýæ ý`  ýæ  ýæýå"&ýæ ýp  ýæ  ýæýå"ýæýäýäýå!  ý` ýæ ý€ &ýæ ý� ýæýäýäýå!  ýp ýæ ý� &ýæ ý  ýæýäýäýå!  ý°  ýæ  ýæýå"ýæ ýÀ  ýæ  ýæýå"ýæ ýÐ  ýæ  ýæýå"ýæýäýäýä!  ýÀ ýæ ýà ýæ ýð ýæýäýäýä! ýÐ ýæ ýð ýæ ý€ ýæýäýäýä!  (   ýæýä"ýæýå!  (  ýæýä" ýæýå! ! (  ýæýä" ýæýå!! " ) ýæýä!" # ) ýæýä!# $ ) ýæýä!$ IAj!I   ý " ý ý " ý !  ý   " ý ý   "ý !  ý   ! ý   !  !ý " ý ý "ý !  !ý   " ý ý   "ý !  ý   !  ý   !@ ("E ? AkAtj"(,A€ qE  ý   ý  @ ("E ? AkAtj"(,A€ qE  ý   ý  @ ("E ? AkAtj"(,A€ qE  ý   ý  @ ( "E ? AkAtj"(,A€ qE  ý   ý   ý " ý ý " ý !  ý   " ý ý   "ý !  ý   ! ý   ! " $ý " #ý ý "ý ! " $ý   " #ý ý   "ý !  ý   !  ý   !@ ("E ? AkAtj"(,A€ qE  ý   ý  @ ("E ? AkAtj"(,A€ qE  ý   ý  @ ("E ? AkAtj"(,A€ qE  ý   ý  @ ("E ? AkAtj"(,A€ qE ý  ý  FAj!F  Aj!  Mj! LAj!L  ¨%5{} (8(!=#K!? * !P (0*¨Œý!' *"O *”ý!( Oý!) *ý!* *$"O * ”ý!+ Oý!, *(ý!- j! AJ  (AvO@ ( Atj( !@ K AÿÿqH@  A°lj!L AJ  L(  !MA!E@ EAL@ L EAtj"(" = AkAtj ? ! ("@ = @AkAtj ? !@ ("A = AAkAtj ? !A ( "B = BAkAtj ? !B ("C = CAkAtj ? !C ("D = DAkAtj ? !D ý" Aý" ý " @ý" Bý"ý "ý ! ý   ! ý     ý   ý ! ý" Aý" ý " @ý" Bý"ý "ý ! ý   ! ý     ý   ý ! Cý" ("F = FAkAtj ? "Fý" ý " Dý" ("G = GAkAtj ? "Gý"ý "ý ! ý   ! ý     ý   ý ! Cý" Fý" ý " Dý" Gý"ý "ý !! ý   ! ý     ý   ý ! + ( ýý ý7 ýý ý7ýP" ýR!. , ) ýR!/ - * ýR!0 ý0"# A@ký"$ýä!1A!H@ H MH@   HjA� lj"> EAtj"Jý" Cý " Fý "ý " Dý " Gý "ý "ý  ý " Aý " ý " @ý " Bý "ý ""ý ýåýæ Jý" ý     "ý   ýåýæýä Jý "  ý     ý   ý  ý     ý   ý ýåýæýä!2 ý0" Aý0"ý " @ý0" Bý0" ý " ý   " ýæ  ý   "  ý   " ý " ýæýå!  ýæ  ý " ýæýå!  ý   "  ýä"ýæýå   ýæ  ýæýå" ýä" ýæ   ýä"ýæýåýä!3 ýæýå  ýæ  ýæýåýä!4 ýæýå  ýæ  ýæýåýä!5 Cý0" Fý0"ý " Dý0" Gý0" ý " ý   " ýæ  ý   "  ý   " ý " ýæýå!  ýæ  ý " ýæýå!  ý   "  ýä"ýæýå   ýæ  ýæýå" ýä" ýæ   ýä"ýæýåýä!6 ýæýå  ýæ  ýæýåýä!7 ýæýå  ýæ  ýæýåýä!8 ýåýæ  ýåýæýä  ýåýæýä!ý ! >(À!NA!I@ I NH@ JAÐj IAÐlj">ý! 2 6 >ý0"ýæ 7 >A@ký"ýæýä 8 >ýP"ýæýä 3 ýæ 4 >ý" ýæýä 5 >ý " ýæýäýåýä >ý`ýä""ý ýD! ýP ýæ ýæýå"ýæ ý`" ýæ  ýæýå" ýæ ýp"%  ýæ ýæýå"ýæýäýä!9  ýæ ý€ ýæ ý�" ýæýäýä!: % ýæ ýæ ý  ýæýäýä!% ý°  ýæ  ýæýå" ýæ ýÀ"  ýæ  ýæýå"ýæ ýÐ"&  ýæ  ýæýå"ýæýäýä!;  ýæ ýà ýæ ýð" ýæýäýä!< & ýæ  ýæ ý€ ýæýäýä!& >ýp"ýá! >  >ý�ý €?€?€?€? / ýR  !ýæ  ýæýä  ýæýä  ýæ ýæýä  ýæýäýåýäýæ " Pýýæ . "ýæ" '  'ýFýR ýRýäýæý 0 ýR ýæýäýá"   ýFýR"ýäý p  1 ýæýä!  ýä!   9ýæýå!   :ýæýå!   %ýæýå! !  ;ýæýä!!   <ýæýä!   &ýæýä! IAj!I   #  ýæ" ýæýå!  #  ýæ" ýæýå!  #  ýæ" ýæýå! $ ýæýä!  $ ýæýä!  $ ýæýä! HAj!H   ý " ý ý " ý !  ý   " ý ý   "ý !  ý   ! ý   !  ý " ý ý "ý !  ý   " ý ý   "ý !  ý   !  ý   !@ ("E = AkAtj"(,A€ qE  ý   ý  @ ("E = AkAtj"(,A€ qE  ý   ý  @ ("E = AkAtj"(,A€ qE  ý   ý  @ ( "E = AkAtj"(,A€ qE  ý   ý  ! ý " ý ý " ý ! ! ý   " ý ý   "ý !  ý   ! ý   ! ý " ý ý "ý ! ý   " ý ý   "ý !  ý   !  ý   !@ ("E = AkAtj"(,A€ qE  ý   ý  @ ("E = AkAtj"(,A€ qE  ý   ý  @ ("E = AkAtj"(,A€ qE  ý   ý  @ ("E = AkAtj"(,A€ qE ý  ý  EAj!E  Aj!  Mj! KAj!K  Ò ${ (8(! #K! j! AJ  (AvO@ ( Atj( !@  AÿÿqH@  A°lj! AJ  (  ! ý€ý ýAý£E!A!@ AL@  Atj!ý !#ý !.ý !'ý !ý !ý !ý !ý !ý !A! @  J@   jA� lj" Atj!ý !ý !ý !ý !ý ! ý !!ý !$ (À! A! @ H@  AÐj AÐlj" ýp"ýä!   ýýæýä!   ýýæýä!   ý ýæýä!  ý0ýæýä! !  A@kýýæýä!! $  ýPýæýä!$ Aj!  ýÀ"" ý0ýæ ýÐ"% ý`ýæýä"(  ý"ýæýä!/ " A@kýýæ % ýpýæýä")  ý"ýæýä!+ " ýPýæ % ý€ýæýä""  ý "ýæýä!,  ýæ  ýæýå ý "- "ýæ ý°"& )ýæýåýä ý€"* ýæ"0ýä!%  ýæ  ýæýå & (ýæ ý�" "ýæýåýä * ýæ"1ýä!&  ýæ  ýæýå  )ýæ - (ýæýåýä * ýæ"ýä! ! ýæ $ ýæýå ýÐ"* "ýæ ýà"- )ýæýåýä 0ýä! $ ýæ ýæýå - (ýæ ýÀ"$ "ýæýåýä 1ýä! ýæ ! ýæýå $ )ýæ * (ýæýåýä ýä! @ % ýà"ýä!% & ýð"ýä!&  ý€" ýä!  ýä!  ýä!  ýä! # /ýä!# . +ýä!. ' ,ýä!'  %ýä!  &ýä!  ýä!  ýä!  ýä!  ýä! Aj!  (" AkAtj  ! ("  AkAtj  ! ("  AkAtj  ! ( "  AkAtj  ! ("  AkAtj  ! (" AkAtj  ! ý"$ ý"(ý ! ý") ý""ý ! ý"% ý"&ý ! ý"* ý"/ý ! ý"+ (" AkAtj  "ý",ý ! ý"- ("  AkAtj  " ý"0ý ! ý"1 ý"3ý "! ý"4 ý"5ý "2ý  ý° ýæ ýÀ"6 ýæ ýÐ"7 ýæýäýäýä! ! 2ý    6 ýæ ýà ýæ ýð"2 ýæýäýäýä!! 1 3ý    4 5ý   ý  7 ýæ 2 ýæ ý€ ýæýäýäýä!  ý  A@ký" #ýæýä!  ý     .ýæýä! + ,ý    - 0ý   ý   'ýæýä!  ý  ýP ýæ ý`"+ ýæ ýp", ýæýäýäýå!  ý    + ýæ ý€ ýæ ý�" ýæýäýäýå!  % &ý    * /ý   ý  , ýæ  ýæ ý  ýæýäýäýå"ý " ý ý "ý !  ý   " ý ý   "ý !  ý   !  ý   !  ý  ý0" #ýæýå" $ (ý    ) "ý   ý   'ýæýå"#ý "'  ý     .ýæýå"ý ý "ý !  #ý   " ý ý   "#ý !  #ý   ! ' ý   !@ ("E AkAtj"(,A€ qE  ý   ý  @ ("E AkAtj"(,A€ qE  ý   ý  @ ("E AkAtj"(,A€ qE  ý   ý  @ ( "E AkAtj"(,A€ qE  ý   ý  ý " !ý ý "ý ! ý   " !ý ý   "ý !  ý   !  ý   !  ý " ý ý "ý !  ý   " ý ý   "ý !  ý   !  ý   !@ ("E AkAtj"(,A€ qE  ý   ý  @ ("E AkAtj"(,A€ qE  ý   ý  @ ("E AkAtj"(,A€ qE  ý   ý  @ ("E AkAtj"(,A€ qE ý  ý  Aj!  Aj!  j! Aj!  ðC7{ (0 (<(!H#M!I (8(!J A°lj!A !Q ý!'C€?#?C ×£;”C€@”•!#N!O#O!@ @AH@ @At"B AA jj(">@ >(@! >(L! A BjA >(<" AHAj6 B AAjjA  AHAj6 MA @tA >(DA€€Àqr!M D   DH!D PA >*”C\ !P A @At"jA6 AAjjA6 @Aj!@  A 6 @ NAL@ I H A( Ak"Aülj AF"BAüj I H A(Ak"Aülj AF"CAüj I H A(Ak"Aülj AF"@Aüj I H A(Ak"Aülj AF">Aüj*ýýVýVýV!< I H AAj"F( Ak"Aülj AF"DAüj I H F(Ak"Aülj AF"Aüj I H F(Ak"Aülj AF"Aüj I H F(Ak"Aülj AF"Aüj*ýýVýVýV!= >AÈj"Eý" CAÈj"Cý"ý ! @AÈj"@ý" BAÈj">ý" ý ! Eý Cýý !0 @ý >ýý ! >A j CA j @A j EA j*ýýVýVýV!3 AÈj">ý" AÈj"ý" ý ! AÈj"ý" DAÈj"ý"ý ! >ý ýý ! ý ýý ! A j A j A j >A j*ýýVýVýV!4 A NAtj"A0j <ý  A@k =ý  AÐj  ý "6ý  Aàj  ý   "(ý  Aðj  ý    ý   ý ")ý  A€j 0 ý "7ý  A�j 0 ý   "*ý  A j 3ý  A°j ý "8ý  AÀj ý   "+ý  AÐj ý     ý   ý ",ý  Aàj  ý "9ý  Aðj  ý   "-ý  A€j 4ý  Aðj A( " O "SýŒ" A((" O "GýŒ" ý " A($" O "LýŒ" A(," O "EýŒ"ý "ý ý  A€j ý    ý   ý " ý  A�j ý   ý  6 8ýä!5 ( +ýä!# ) ,ýä!$ 7 9ýä!: * -ýä!. 3 4ýä!; A�j! P@ ý €?€?€?€? 5 : ;ýæ . .ýæýå" ýæ # $ .ýæ # ;ýæýå" ýæ $ # .ýæ $ :ýæýå"ýæýäýä"ýçý ýá  ý ýCýR#9CzD”ýýDýR" ýæý  Aj  ýæý  A j  ýæý  A0j  5 ;ýæ $ $ýæýåýæý  A@k  # $ýæ 5 .ýæýåýæý  AÐj  5 :ýæ # #ýæýåýæý  ý ý  Ajý ý  A jý ý  A0jý ý  A@ký ý  AÐjý ý  ý ýD!0A!F@  FLE@ Q  FjA� lj" NAtj!?  ! F! A( "  (LHA @ (H AŒlj  "(ˆ"D F! A($">  >(LHA @ >(H AŒlj  "B(ˆ"  DH"D F! A((">  >(LHA @ >(H AŒlj  "K(ˆ"  DH"D F! A(," (LHA @ (H AŒlj   "(ˆ"  DH"R6À K!@ ?A�j 0ý €?€?€?€?ý  GC€?C B""K Gý C€?C @"B Gý C€?C "C Gý ý ýDýN"ý €?€?€?€?ýNý  ýð" Býð" ý ! Kýð" Cýð"ý ! ý   "  ý   " ý ! CA€j BA€j KA€j A€j*ýýVýVýV! CA„j BA„j KA„j A„j*ýýVýVýV!ý €?€?€?€? ýà" Býà" ý " Kýà" Cýà"ý "ý   "ý ý "ý ¿¿¿¿ýC ý ????ýDýP"ýR" ýæ ýá ý   " ý   "ý " ýR" ýæýäý ýá ýR" ýæýä"ýãýçý #9CzD”ýýDýR" ýæ!"  ýæ"% ýæ  ýæ"& ýæýå!/ ? ý  ?Aj ý  ?A j ý  ?A0j "ý  ?A@k %ý  ?AÐj &ý  ?Aàj /ý  ?Aðj & ýæ " ýæýå"1ý  ?A€j " ýæ % ýæýå"2ý  ?A j Sý˜" Gý˜" ý " Lý˜" Eý˜" ý "ý " "ýæ  ý   " %ýæýä  ý    ý   ý " &ýæýäý  ?A°j /ýæ  1ýæýä  2ýæýäý  ?A€j '  ý   ýæý  ?Aàj '  ý   ýæý ýRý  ?Aðj ' ýæý ýRý  ?A€j ' ýæý ýRý  ?AÀj '  ý " "ýæ  ý   " %ýæýä  &ýæýäýæý  ?AÐj '  /ýæ  1ýæýä  2ýæýäýæý  (ˆ²ý K(ˆ²ý  B(ˆ²ý  C(ˆ²ý !ý !ý !ý !ý !ý !ý !ý !!A!@@ @ RNE@ @A8l" j">ý" Bj"Dý"ý ! Kj"ý" Cj"ý" ý ! >ý" Dý" ý ! ý" ý"ý !  ý ý  @²ýýD"ýR! ý @@@@ ý   "  ý   " ý ý ýR" ýýæýå"ý ÿæÛ.ÿæÛ.ÿæÛ.ÿæÛ. ý ÿæÛ.ÿæÛ.ÿæÛ.ÿæÛ.ýFýR"ý €?€?€?€? ý €?€?€?€?ýEýRý ýR" ýæýä!    ý   ý ýR" ýæýä!    ý   "  ý   "ý ý ýR"ýæýä!    ý   ý ýR"ýæýä!    ý ý ýR"ýæýä!    ý   ý ýR" ýæýä! ! ýä!! ?AÐj @AÐlj" ý  Aj ý  A j ý  A0j ý  A@k ý  AÐj ý  Aàj  ýå ýæ  ýå ýæýä ýå ýæýäýåý  Aðj ' ý   ý ýRýæý  A€jý ý  A°jý ý  AÀjý ý   ýæ ýæýå" ! A�jý €?€?€?€? < =ýä ýæ  ýæýå" 6 ýæ ( ýæ ) ýæ ýæýå"ýæýäýäýæ  ( ýæ 7 ýæ * ýæýäýäýæýä  ) ýæ * ýæ 3 ýæýäýäýæýäýä ýæ  ýæýå" !  ýæ ýæýå" 8 ýæ + ýæ ,  ýæ  ýæýå"ýæýäýäýæ  + ýæ 9 ýæ - ýæýäýäýæýä  , ýæ - ýæ 4 ýæýäýäýæýäýä"ýçý ý ýD ýNýRý  @Aj!@  ?A�jý €?€?€?€? !ýçý !ý ýD"ýR" ýæ"ý  ?A j  ýæ" ý  ?A°j  ýæ"!ý  ?AÀj  ýæ"ý  ?AÐj  ýæ" ý  ?Aàj  ýæ" ý A!@  RNE@ ?AÐj AÐlj"ý ýå! A j  ýæ ý ýå" ýæýä ý !ýå" ýæýäýãý  ²ýýDýRý  Aj!  6 2ýæ ! 1ýæýå"ýæ ( ! /ýæ  2ýæýå" ýæ )  1ýæ /ýæýå" ýæýäýä! 8 2ýæ 1ýæýå" ýæ + /ýæ  2ýæýå"ýæ ,  1ýæ /ýæýå"ýæýäýä!  %ýæ "ýæýå"! ! "ýæ  &ýæýå"! ?A�j"ý €?€?€?€? < =ýä" &ýæ ! %ýæýå" 6 ýæ ( ýæ ) ýæýäýäýæ  ( ýæ 7 ýæ * ýæýäýäýæýä  ) ýæ * ýæ 3 ýæýäýäýæýäýä  %ýæ "ýæýå"! "ýæ  &ýæýå"! &ýæ %ýæýå" 8 ýæ + ýæ , ýæýäýäýæ  + ýæ 9 ýæ - ýæýäýäýæýä  , ýæ - ýæ 4 ýæýäýäýæýäýä"   ýæ ( ýæ 7 ýæ * ýæýäýä" ýæýä ) ýæ * ýæ 3 ýæýäýä" ýæýäýä ýæ  + ýæ 9 ýæ - ýæýäýä" ýæýä  , ýæ - ýæ 4 ýæýäýä"ýæýäýä"ýæ  ýæ  ýæýä  ýæýä  ýæ  ýæýä  ýæýäýä" ýæýå"ýçý ýá  ý ýCýR#9CzD”ýýD ýNýR" ýæý  Aj  ýæýáý  A j  ýæý  ?Aðjý €?€?€?€?  5 ýæ # ýæ $ ýæýäýäýæ  # ýæ : ýæ . ýæýäýäýæýä  $ ýæ . ýæ ; ýæýäýäýæýä"ýçý ý ýDýRý  FAj!F  NAj!N  A Aý�ý ýDýS"@ M@#K!DA!L@ LAJE@ D! A LAtj"G(" J AkAtj ! G(" J AkAtj !E G(" J AkAtj !B G( " J AkAtj !C G(" J AkAtj ! G("> J >AkAtj !> ý" Bý" ý " Eý" Cý"ý "ý !0 ý   ! ý    ý   ý ! ý" Bý" ý " Eý" Cý"ý "ý ! ý   ! ý    ý   ý ! ý" G(" J AkAtj "ý" ý " >ý" G(" J AkAtj D "ý"ý "ý ! ý   ! ý    ý   ý ! ý" ý" ý " >ý" ý"ý "ý ! ý   ! ý    ý   ý !A!B@  BLE@ Q  BjA� lj" LAtj">ý! >ý! >ý ! (À!A!C@  CJ@ >AÐj CAÐlj"ý! A°j    ýP" ýæ  A@ký" ýæýåýä 0  ý " ýæ  ý"ýæýåýäýåýæ    ý0"ýæ  ýæýåýä   ýæ  ýæýåýäýåýæýä   ýæ  ýæýåýä  ýæ  ýæýåýäýåýæýä"ý  M@A!E@ EAH@ MA Etq@ C B! AA j EAtj(" (LHA @ (H AŒlj   "(ˆH@ CA8lj} ý EE  ý EAF  ý EAF  ý 8$ EAj!E  CAj!C  BAj!B  LAj!L  @ ¶AAýh Aj"At"AüÿÿÿK@ Aýh!AAýh AtAm"A l"AüÿÿÿK@ Aýh! (" (A lj! !@  G@ (AqE@  ("6  (6    A½ÜÊ•|lAµÏÙ²jAwA¯ÖÓ¾l"Av sA÷”¯¯xl"A v sA½ÜÊ•|l"Av sqAtj"(6  6 A j! A j!  6 m 6 6 m 6 (6 FAAýh AAýh6 A6AAýh A0Aýh6 A6 A6 A6 à C8 C8 C8 C8 A6 C8 C8 C8 C8 C8$ C8( C8, A60 A64 #R68 #S6< #T6@ A6D #T6H A6L A6P A:T #T6X #U6\ #V6` #W6d A6h #X6l #U6p #V6t #Y6x #Z6| #[6€ A6„ A6ˆ #\6Œ A6� A:” A6˜ A6œ   ”‘    ^ $AAÏh AAÏh6 A6 A6 µAAƒh"!AA„h A A„h6 #a6A A’h"AA“h6 A6 A6  6 #a6 AAÏh AAÏh6 AA†h"A6 A6 A6 A6 6@ AH@ ( AÐAøh"B7 AAùh6AAûh AAûh6 AAýh6 A6 A6 A6 A6 A6$ A6( AAùh6, A:0AAûh AAûh64 AAùh68 AAÿh6< AAòh6@AAûh AAûh6D A6H A:L  Aj!  6AAµh"AA¶hAàA¶h6A!@ AH@ ( AAAºh$AAÐC8AÔC8AØC8AÜC€?8AàC€?8AäC€?8AÜ$C€?8Aà$C8Aä$C8Aè$C8Aì$C€?8Að$C8AÐ$C8AÔ$C8AØ$C€?8AÀ$C8AÄ$C8AÈ$C8AÌ$C€?8AìC8AðC8AôC8AøC8AüC8A€C8A„C€?8Aô$C8Aø$C8Aü$C8A€%C8A„%C8Aˆ%C8AŒ%C8A�%C8A”%C8A¤!C8A¨!C8A¬!C8Cÿÿ$8C€$9C4$b3LaneAwait: gave up on region A¨% 1*Promise was cancelledAè% ± Aˆ& ± A¨& ± AÈ& ±!rive.workers.names b3LaneWorkerúÀ rive.audioasm¨```````}}`}````|`|`}}}` }}}}}}}`}}}}``}}}`}`|`|`|`}}}`}}`}}}£env console.warn rive_lane_v1errorrive_shared_v1snapshot_publish rive_shared_v1 snapshot_readrive_shared_v1 ring_readrive_shared_v1 snapshot_seq 65    p€€²:A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A }C A }C |D A A A A A A A�ß A A ¼ __rive_processor_0__riveFrameMinor laneError#__riveHostBudget"__rive_lane_alloc$__rive_lane_free%__riveProcessorStart__rive_processor_processmemory__riveCallSpill7: z Óí5å   (" AvK@ AÿÿÿÿK@  (!Aüÿÿÿ At" AüÿÿÿO"A  AMAt"  I" "AìÿÿÿK@ A A€€O" Ak"(@  ("  I! ( ! @ AìÿÿÿK  ,  +  A#jApqAk"Aj"##kK@# #(#kKA @#@##6 (!#@# 6 $ $ Aj$#$ # j$ #" 6 A6 A6  6  6# j$ Aj "  ü  jA  kü   # Ak" Ak"("jF! Aj"AjApqAk!  I@  #( kMA @ AüÿÿÿK@  j$##K@#$  6  At"  K)"  ü !  @  j$#A  kü  6 Ak 6 Aj " jA kü  G@ 6 6 0 6 Å (" (" j"I@ (! AÀ At" AÀI"  I"*! @   ü Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ 6 6 ( (j! 6  Ç }~| 6 0 6 Dpç@ Dd9 D€ˆÕ@ +£9À@ A€H@ ²C€;”!C!A!@ AH@} Ak² “"Œ ”CKY&?•"¼"AvAÿq" A«O@C A€€€|F   ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ ! At j" (”" Ak(AvO@ Atj 8  ’! Aj!  A!@ AH@ At j" (”" Ak(AvO@ Atj* •!  Ak(AvO@ Atj 8 Aj!  Aj!  C€?}C€¿#-C ×£<”•"¼"AvAÿq"A«O@C A€€€|F   ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8à C€?}C€¿#-C ×£<”•"¼"AvAÿq"A«O@C A€€€|F   ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8ä C€?}C€¿#-Cš™™>”•"¼"AvAÿq"A«O@C A€€€|F   ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8è C€?}C€¿#-Cš™>”•"¼"AvAÿq"A«O@C A€€€|F   ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8� ­ |~  *$[  *([A @ 8$ 8(} C A C A^"Cî!F^}Cî!F  CÛI@”#/”"¼"Aÿÿÿÿq"AÚŸ¤úM@  A€€€ÌI  »" ¢" ¢!   ¢" DrŸ™8ýÁ?¢DŸÉ4MUÕ? ¢   ¢ DÎ3Œ�ó™?¢DþZ†ÉT«?   DÍ—¿¹bƒ?¢DNôìü­]h? ¢ ¢ ¶  Av! AѧíƒM@ Aã—Û€M@ »"D-DTû!ù?  D-DTû!ù¿  " ¢" ¢!Dð¿   ¢" DrŸ™8ýÁ?¢DŸÉ4MUÕ? ¢   ¢ DÎ3Œ�ó™?¢DþZ†ÉT«?   DÍ—¿¹bƒ?¢DNôìü­]h? ¢ ¢ £¶  »"D-DTû! @  D-DTû! À  " ¢" ¢!   ¢" DrŸ™8ýÁ?¢DŸÉ4MUÕ? ¢   ¢ DÎ3Œ�ó™?¢DþZ†ÉT«?   DÍ—¿¹bƒ?¢DNôìü­]h? ¢ ¢ ¶  AÕ㈇M@ AßÛ¿…M@ »"DÒ!3|Ù@  DÒ!3|ÙÀ  " ¢" ¢!Dð¿   ¢" DrŸ™8ýÁ?¢DŸÉ4MUÕ? ¢   ¢ DÎ3Œ�ó™?¢DþZ†ÉT«?   DÍ—¿¹bƒ?¢DNôìü­]h? ¢ ¢ £¶  »"D-DTû!@  D-DTû!À  " ¢" ¢!   ¢" DrŸ™8ýÁ?¢DŸÉ4MUÕ? ¢   ¢ DÎ3Œ�ó™?¢DþZ†ÉT«?   DÍ—¿¹bƒ?¢DNôìü­]h? ¢ ¢ ¶   “ A€€€üO  AÛŸ¤îI@ »" DƒÈÉm0_ä?¢ž"DPû!ù?¢¡ Dcba´Q>¢¡$0 ª  AvA˜k"A?q¬! AuAtA¨ j")! )! B V~ B }† )Bà }ˆ„ B }ˆ ! AÿÿÿqA€€€r¬! D-DTû!ù; »¦ BR~ † BÀ }ˆ„ ~ ~B ˆ|" B†" ¹¢$0A B>ˆ B?ˆ|§"k   !#0" ¢" ¢!Dð¿   ¢" DrŸ™8ýÁ?¢DŸÉ4MUÕ? ¢   ¢ DÎ3Œ�ó™?¢DþZ†ÉT«?   DÍ—¿¹bƒ?¢DNôìü­]h? ¢ ¢ "£  Aq¶ ! C€? Cš™™> Cš™™>^•8 C€?   *’”C€?’•8  *”8  * ”8 ¿|~ } CÛIÀ”#/”"¼"AvAÿq"A«O@C A€€€|F   ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ "Œ ”8  ’ C A C A^"C F^}C F  CÛÉ@”#/”7”8 C€? *“ *“8 Å|~ #/Co;  Co;]•8 CD¬F”¨6 Coƒ;  Coƒ;]"C_}C}CU ÝÀ CD¬F”•"¼"AvAÿq"A«O@C A€€€|F   ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ 8 C8 A6 ¡|~ 6 8< 8@ C^}}#/Œ •"¼"AvAÿq" A«O@C A€€€|F   ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢" D8C " ½! D8à¡" DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?  ¢¢  §AqAtA¨ j) B/†|¿¢¶ C 8D 8X (\    ª|~ 6l 8t 8x C^}}C€¿ CD¬F”CàA••"¼"AvAÿq" A«O@C A€€€|F   ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ C 8| 8€ :p ) A Aÿ,"6 6 A 6 A6 ¹ 6@  J@ (!A´Aã,""A: A6 A6 A6 A6AAÜ,"B›Õ¿¤ç¼’ž…7 B۷她¹ŽŸZ7  6A AÝ,"C8 C8 C8  6 C8 A6 C8$ C8( C8, C80 C84 C88 CÜC8< CÜC8@ C€?8D C?8H C8L C8P C8T C8XAAâ,"C8 A6 C€?8 A6 C8  6\ A6` C8dAAâ,"C8 A6 C€?8 A6 C8  6h A6l A:p CzD8t CzD8x C€?8| C333?8€A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6„A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6ˆ C8Œ C€?8� C�5?8” C�5?8˜ C8œ C8  C8¤ A6¨ C8¬AA, AðA,6° ( "Aj" (AvK@   ( Atj" 6  At  1  6 Aj!  Ë}C(knN! ((  (H (( Atj("- (AJ}C$tI (\* *X”" (h* *d”"]}   *�” " ]@ ! ! Aj!     Atj(! (Aj6 ( ! (! A: A6 A6 A6 ("B7  ­B†B„7  ) )B­þÕäÔ…ý¨Ø~|7  ) ­B•ø©ú—·Þ›ž~B�º³û”’ý¢%||7  ) )B­þÕäÔ…ý¨Ø~|7 ("C8 C8 C8 C8 A6 C8$ C¸>8( C¤p½>8, C= ?80 C�Â5?84 C ×c?88 C€?8D C?8H C8L C8P C8T C8X (\A6 (\C8 A6` C8d (hA6 (hC8 A6l A:p C€?8| C8Œ („"C8 C8 C8 C8 C8 (ˆ"C8 C8 C8 C8 C8 („C€¿8$ (ˆC€¿8$ C€?8� C�5?8” C�5?8˜ C8œ C8  C8¤ A6¨ C8¬  6  É  }~@  (H@ (( Atj("-@@   ("AF  !A! ("AJ@ AN@  Ak6  (! A6 (°! A!@  H@ AtjC8 Aj!  (l" @  *x" *t “ *|”’8t („ *t *€ *Œ"C^@ (ˆ  *€ ( ! (`! *X! *d! -p! (¨! *@! *D!@ AH@@ AJ ( AqA @ Atj *¬8  ( Aj6 (\"("@ AF@  ( Ak6 ( AL@ A6  AF@  * *”8 *C·Ñ8]@ C8 A6   * *’8 *C€?`@ C€?8 A6 * (h"("@ AF@  ( Ak6 ( AL@ A6  AF@  * *”8 *C·Ñ8]@ C8 A6   * *’8 *C€?`@ C€?8 A6 *  C! @ (\"("@ AF@  ( Ak6 ( AL@ A6  AF@  * *”8 *C·Ñ8]@ C8 A6   * *’8 *C€?`@ C€?8 A6 *!   *<" “ ”’8< *PC^@  *T *L’8T *TC€?`@  *TC€¿’8T C? *T" C?’Ž“"‹"“ – ˜" ”!  *P    Cžü�”Cy®¢B’”C” ” ”! C! @ (h"("@ AF@  ( Ak6 ( AL@ A6  AF@  * *”8 *C·Ñ8]@ C8 A6   * *’8 *C€?`@ C€?8 A6 *! (")!  ) B­þÕäÔ…ý¨Ø~|7 Bˆ …Bˆ§"A B;ˆ§"kt  vr²C0”! AF} (" *Cþe?” C¡ØÊ=”’8  *C+‡v?” CÿЗ>”’8  *C…ë?” C—¾†?”’8 * *’ *’ C6<=>”’C€>”C @” AF}  *Cö(|?” Cš™>”’8 *CÍÌÌ?”  ” ”!  } („"* *"” * "  ’  "" *"“"”’!   ”’ * ”’!   ’ “8   ’ *“8  8  8   * ”“ “8 AF} („* AF} („*  („"* *” ! *ŒC^@ (ˆ"* *"” * "  *"“"”’!   ”’ * ”’!   ’ “8   ’ *“8  8  8   * ”“ “8  (ˆ"* *”’!   ’   ’ "8¬ Atj 8  ( Aj6 Aj!  * "C^@   *¤&8¤ *�" *””!  *˜”!  *œ”! (! (! (!A!@ AH@ At" j" * j*" ”’8 j" *  ”’8  j" *  ”’8 Aj!   (\(AFA   (h(AFA A @ A: ( AÔº J@ A: Aj!  –} ($! 6$ A6(A AF AFr A AF A AF A AF A AF A AF A AF A A F A A F A A F A A F A ! @ +89P A6X A6` A:Ì A:Í C€?8È AH@ A60 A:4 (A: ( C8 ("-@ A:  60 A:4 AtA $j(! A (` o 6\ ( At"A %j*8 (C€?C Aà%j("Aq8@ (C€?C Aq8D E@ (A:  AF@ ("A: A: A: C€?8 C8 C½ëÝ98 AF@ +@DP@¢¶#/”! ("A: A: A: C€?8 C8 CàA CD¬F”•8 A F@ ("-E@ A: A: A: C€?8 Cš™Y?8 CÍp&;8 A: ("-@ A: AF AGq AGq AGq AGq@ AC333? A F@ AC€? A F@ AC€? AAA A F@ (A: P (0AH@ (0AtA &j( (\jAlAtAð&j(" (dG@ 6d ( Al ³ } ²C@@•! (! @ AF" AFr@ AACfCC9CC ×#  @ CÍÌÌ>”Cš™?’CÍÌL>”! ACECáDC�Âõ 8œ CÍÌÌ>8  6 E@ A"A6` C€?8d (hCo;CC�Âu= AC@œEC@œECC333?A " C?”8� CìÅ-?8” C˜ü;?8˜ CÍÌÌ=8œ CÍÌÌ>8  6  AF" AFr@ A"A6` C€?8d (hCo;C�ÂõCìQ8=  ACÀÚECÀÚECCÍÌL?A " Cff&?”C33³>’Cff&?”8� CÝ9?8” C4ÛT?8˜ C ×#=8œ C?8   6 E@ (!A!@  (H@ (( Atj("- (AFA @ (\A¨ +DÃïõMæªï?¢¶8 (hA¨ +DÃïõMæªï?¢¶8 (\AA (\(AF6 (hAA (h(AF6 Aj!  AA 6 AF@ AACëCCëCCC€?Co;CCš™? "A6` C€>8d (hCo;CCÍÌL> AC ŒEC ŒECC333?A " C®Ga>”8� CžFZ?8” CxÂ?8˜ C ×£=8œ AAC¾CC¾CCCÍÌL?Co;CCffæ? "A6` C333?8d (hCo;C ×£”8� CÂO?8” Cy?8˜ C€>8œ Cš™™>8  6  AAC*CC@BCX9´ "A6` C?8d (hCo;CC¦›D< AC@EC@ECC333?A " Cff†?”8� Cý5?8” Cý5?8˜ C ×£<8œ Cš™>8   6 ( 8X ‚ (AAC¾BC8BCìQ¸=C€?Co;C ×£=C33³? " C33s?”8� Cý5?8” Cý5?8˜ CÍÌÌ=8œ C8   6 (A"A6` C€?8d (hCo;C�ÂõC333?A " CÍÌ ?”8� Cý5?8” Cý5?8˜ Cffæ>8œ Cš™™>8  6 o C@ ²CŠÂ’C@A•8CÜC”8  -A @ A˜ )B€€€€€€@|¿DD…©‘ðð?¢¶8 *8 C8 A:  @ AH@  ("( O@ ( Atj("@   j"AÜ (AvO@ C@ AtAà j(A j²CŠÂ’C@A•8CÜC”#/”8 Aj!  8$ A: C€¢E”8 ó} (! AÜ (AvO@ C@ AtAà j(²CŠÂ’C@A•8CÜC”! Ak(AvE@  8 (! Aj"AÜ (AvO@ C@ AtAà j(²CŠÂ’C@A•8CÜC”! Ak(AvAM@  8 (! Aj"AÜ (AvO@ C@ AtAà j(²CŠÂ’C@A•8CÜC”! Ak(AvAM@  8 (! Aj"AÜ (AvO@ C@ AtAà j(²CŠÂ’C@A•8CÜC”! Ak(AvAM@ 8 Ò (HA€N@ (H"" (8"Ak(AvO@  Atj 6A Coƒ:”CD¬F”¨" AL!  (<"Ak(AvO@  Atj 6 " (@"Ak(AvO@  Atj 8  (D"Ak(AvO@  Atj 8 (HAj6H ç } A64A! AäF@@ ¨"Aq! A uAq"E AuAq"E E AuAq"AGqqq@ A n"AF@ (4"AH@  (0"Ak(AvO@  AtjA<6 (4Aj64 AF@ (4"AH@  (0"Ak(AvO@  AtjA=6 (4Aj64 A p"AF@ (4"AH@  (0"Ak(AvO@  AtjA86 (4Aj64  AF@ (4"AH@  (0"Ak(AvO@  AtjA96 (4Aj64  AF@ (4"AH@  (0"Ak(AvO@  AtjA:6 (4Aj64 (4"AH@  (0"Ak(AvO@  AtjA;6 (4Aj64  AuAq@ (4"AH@  (0" Ak(AvO@ AtjA#6 (4Aj64 AuAq" AF AGq@ (4"AH@  (0" Ak(AvO@ AtjA$6 (4Aj64 AF AGq@ (4"AH@  (0" Ak(AvO@ AtjA%6 (4Aj64 AF@ (4"AH@  (0"Ak(AvO@  AtjA&6 (4Aj64 (4"AH@  (0"Ak(AvO@  AtjA(6 (4Aj64  AF@ (4"AH@  (0"Ak(AvO@  AtjA)6 (4Aj64  AF@ (4"AH@  (0"Ak(AvO@  AtjA*6 (4Aj64 (4"AH@ (0"Ak(Av M@  AtjA&6 (4Aj64 (4"AH@ (0"Ak(Av M@  AtjA(6 (4Aj64  AF@ (4"AH@  (0"Ak(AvO@  AtjA*6 (4Aj64 (4"AH@  (0"Ak(AvO@  AtjA)6 (4Aj64 @ (4"AH@A  AOA*j! (0"Ak(Av M@  Atj 6 (4Aj64 @ (4AH@A3 AF A4 AF A5 AF A6 ! (4" (0"Ak(AvO@  Atj 6 (4Aj64 A uAq"@ (4"AH@  (0"Ak(AvO@  AtjA76 (4Aj64 "(4AH@A3 AF A4 AF A5 AF A6 ! (4" (0"Ak(AvO@  Atj 6  (4Aj64  AH ANq@ AŒË(AvO@ AtA�Ëj(!AœÌ(Av M@ AtA Ìj(!@  H@  j"A¬Í(AvO@ AtA°Íj(! (4" AH@ (0"Ak(Av M@  Atj 6 (4Aj64 Aj!  AìÎ(AvO@ AtAðÎj(AG! (4E@ :” 6 6$ ((Aj6( A: A:,A!A!A!A! A6HCìQx?C33s? -”" !@  (4H@  (0"Ak(AvO@  Atj("AüÏ(AvO@ AtA€Ðj(! AŒÒ(AvO@ AtA�Òj(!A!@  J@  j" AœÔ(AvO@   AtA Ôj(AuAqAF! Aj! Aj!  Aj!  A(CÈAC€?CA!@  (4H@  (0"Ak(AvO@  Atj("AüÏ(AvO@ AtA€Ðj(! AŒÒ(AvO@ AtA�Òj(! A!@  H@  j"AœÔ(AvO@ AtA Ôj("Aÿq"Aœ(AvO@ AtA j(! A u" AJ} ² AÜÝ(AvO@ AtAàÝj* !C€?!C€?! AF AFr" @ AuAq"AF@ Cš™¹?Cff¦? ”!C ?! AF} CÍÌŒ?”!CÍÌŒ?!C…k? Cš™Y?”!C®G? !  C ?”   AkFq ”   N} ²C�Âõ=” ²C€?—•C€?’C)\�?  k²CÍÌÌ>”  k²C€?—•“ ”  Aj! Aj!   (4AkH@ A(C�AC€?C Aj!  A(CŒBCÍÌL?C C…CC/C 8˜ A6L A6P ür}|~A€AÛ,"A6AØAè,"C8 C8 C8 A6 C8 C8 C8 C8 C8 A6$ C8( C8, C80 C84 C88 A6< C8@ CÍÌL?8D Cfff?8H C€?8L C8P C€?8T  6AAç,"A6 C8 C8 C8 C8  6 A8Aé,"A6 A6 A6 A6 A6 A6 C8 C8 A6 D9( C80  6 A6 Dpç@9AAä,"AAå,"A6 A6 A6 A6 6 A6 A6 A6  A6 AàAæ,!AAÜ,"B›Õ¿¤ç¼’ž…7 B۷她¹ŽŸZ7  6AAÜ,"B›Õ¿¤ç¼’ž…7 B۷她¹ŽŸZ7  6A AÝ,"C8 C8 C8  6A AÝ,"C8 C8 C8  6 C8 C8 C8 C8 C8 C8$ C8( C8, C80 C84 C88 C€?8< C8@ C8D C8H C8L C8P C8T C€?8X C8\ C8` C8d C8hA,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6lA,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6pA,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6tA,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6xA,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6| C8€ C�A8„ C€?8ˆA,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6Œ CzE8� C8”A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6˜A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6œA,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6  C8¤A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6¨A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6¬A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6°A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6´ C8¸ C8¼ C8ÀA,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6Ä C8È C8Ì C8Ð C4C8ÔAA, AðA,6ØAA, AðA,6Ü ("B7 B7  ) )B­þÕäÔ…ý¨Ø~|7  )BþʃåÓý…Ù}7  ) )B­þÕäÔ…ý¨Ø~|7 ("B7 B 7  ) )B­þÕäÔ…ý¨Ø~|7  )BþÖóÖËÒ¯Ç|7  ) )B­þÕäÔ…ý¨Ø~|7 C€?}C€¿#-C ×£<”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8\ C€?}C€¿#-C ×#=”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8` C€?}C€¿#-C�Âõ<”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8d C€?}C€¿#-CÍÌL>”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8h (xC CC333? (tC€»EC@ (ÄCaDCÍÌL?  6$AàAö,!AAä,"AAå,"A6 A6 A6 A6 6 A6 A6 A6  A 6AäA÷,!AAà,"C8 C8  6AAà,"C8 C8  6AAà,"C8 C8  6 C8 Cš™®B8 Cš™®B8 C€?8 A: C8 C8$ C8(A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6,A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  60 CD84 C88 C8< C8@ C8D C8H C?8L CÃõ¨>8P C8T C8X C8\ C€?8` A  )B€€€€€€ }¿Dó[”Æð?¢¶8\ #/Coƒ;•8$ A¨ +D!î·VÕï?¢¶8( C€?}C€¿#-CÍÌL=”•" ¼"AvAÿq" A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8H (C¤p½>8 (C�Â5?8  6A,Aø,!AAù,"A6 A6 A6 A6  6 C8 C8 C8 A:A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6 CzE8 C8 C€?8$ CÍÌL>8(A! @ AH@AAà," C8 C8 ²C= W>”8 ("( " Aj! (AvK@   ( Atj" 6  At 1  6 Aj!  A¨ +DáÏWôï?¢¶8 #/Co;•8 A  )B€€€€€€ }¿Dwµsáï?¢¶8  6A(Aú,!AAù,"A6 A6 A6 A6  6AA, AA,6 C8 C8 C8 C8A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6 C8 C�Âõ=8$A! @ AH@AAà," C8 C8 A%lAäo²CÈB•8 ("( " Aj! (AvK@   ( Atj" 6  At 1  6 Aj!  C€?}C€¿#-Cš™?”•" ¼"AvAÿq" A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8 C€?}C€¿#-Cfff?”•" ¼"AvAÿq" A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8A!@ AH@  (" Ak(AvO@ AtjC\C8 Aj!   6 A8Aû,"C8 C8 C8 C8 C8 A: C€?8A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6AA, A€€A,6 A6$ AÍ-6( C®Gá=8, Cffæ>80 A64 A¨ +Dߪ -óï?¢¶8 #/Co;•8 (C€mECÍÌL?  6A0Aü,"A: A: C8 C8 C€?8 A:AAà,"C8 C8  6AAà,"C8 C8  6A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6 AAÜ,"B›Õ¿¤ç¼’ž…7 B۷她¹ŽŸZ7  6$ C8( C®Ga>8, ($"B7 B7  ) )B­þÕäÔ…ý¨Ø~|7  )Bé�Ü‚÷õÁ½'}7  ) )B­þÕäÔ…ý¨Ø~|7  6A Aá,"6  6AA, AðA,6 A6 A6$ A6( A6, A60 A:4 D98 D9@ D9H D9P A6X A6\ A6` A6d A6h A6l A6p A6t A6x CzF8| C`A8€ CzF8„ C8ˆ C8Œ A6� C8” C8˜ C8œ C8 A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6¤A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6¨A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6¬A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6°AA, A€€A,6´AA, A€€A,6¸ A6¼ D9À C€?8È A:Ì A:Í C€?8Ð A6Ô C8Ø DZZZZZfž@9@  +@Dâz´?¢9H C€?}C€¿#-C�Âu=”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8˜ C€?}C€¿#-C€>”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8œ C€?}C€¿#-CÍÌL=”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8  ( A  6(A€Aþ,!AAô, AAô,6AAô, AAô,6AA, AA,6AAô, AAô,6 AAô, AAô,6AAô, AAô,6 A6 A: A6 A 6$ A6( A:,AAô, AÀAô,60 A64AAô, A€Aô,68AAô, A€Aô,6C8˜ C8œ C€?8  C€?8¤ C8¨AAß,"C€?8 C8 C8 C8 C8  6¬AAß,"C€?8 C8 C8 C8 C8  6°AAß,"C€?8 C8 C8 C8 C8  6´AAß,"C€?8 C8 C8 C8 C8  6¸AAß,"C€?8 C8 C8 C8 C8  6¼A,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6ÀAAÜ,"B›Õ¿¤ç¼’ž…7 B۷她¹ŽŸZ7  6Ä C8ÈA,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6ÌA,AÞ,"C8 C8 C€?8 C8 C8 C33³?8 C8 C8 C8 C€¿8$ C€¿8(  6ÐAA, A€ÀA,6Ô A6Ø AÁ6Ü A6à C€?8ä C8è C ×#=8ì C8ð C8ô C€?8øAA, AðA,6ü C€?}C€¿#-CX94<”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8ˆ C€?}C€¿#-Coƒ;”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8Œ C€?}C€¿#-C)\=”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8� (Ä"B7 B7  ) )B­þÕäÔ…ý¨Ø~|7  )BÚñýÃÊ’šÓÛ|7  ) )B­þÕäÔ…ý¨Ø~|7 (ÌCzCC333? (ÐCzEC333? (¸C€TEC‚C (¼CàvEC–C  6,A”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “8, C€?}C€¿#-C33³>”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “80 C€?}C€¿#-Cš™>”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “84 C€?}C€¿#-Cš™™?”•" ¼"AvAÿq"A«O@C A€€€|F  ’ AøO  C” Cr±B^ C C´ñÏÂ]  »Dþ‚+eGG@¢"D8C "½!  D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  §AqAtA¨ j) B/†|¿¢¶ “88  60A(Aý,!AA, A€€A,6AA, A A,6AAô, A Aô,6AA, A€A,6 AAô, AAô,6 A6 A6 C®G?8 C33³>8 C8$ ("Ak(AvE@ A°6 ("Ak(AvAM@ A´6 ("Ak(AvAM@ A¸6 ("Ak(AvAM@ A‘ 6 ("Ak(AvAM@ AÇ6 ("Ak(AvAM@ AË6 ("Ak(AvAM@ AÏ6 ("Ak(AvAM@ A¨ 6 ("Ak(AvE@ Aî6 ("Ak(AvAM@ A%6 ("Ak(AvAM@ Añ6 ("Ak(AvAM@ A)6  64AAÜ,"B›Õ¿¤ç¼’ž…7 B۷她¹ŽŸZ7  68 A:< Dð¿9@ D9H A:PA Aá,"6  6TA Aá,"6  6XA Aá,"6  6\A Aá,"6  6`A Aá,"6  6dAA, AðA,6hAA, AðA,6lAA, AðA,6pAA, AðA,6tAA, AðA,6xAA, AðA,6|AA, AðA,6€ A6„ C€?8ˆ C€?8Œ C8�AA, A€ A,6” C8˜ C8œ C8  C8¤ C8¨ C8¬ C8° C8´ D9¸ DffffffÝ?9À C8È C8Ì C8Ð C8Ô C8Ø C8Ü C8à C8ä C8è C8ì C8ð D9ø $3AA,  l"AÿÿÿÿK@ AtA,$1 "(! A€   6#5A€ I@#6!A€ *! @  Aü Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ $6A€ $5 $2AA9,"A6 A6 A6 A6 A:  6  j6 A6    9 œ#"@ ( A$A$A##A€€€#At" A€€€IKA #@#A€€€K@A$A$A! @# @# hAtA€j("(Aj! (! ( "@  6AA gk" AO"AtA€j 6 E@# A~ wq$ @ 6 A6# j$  @A$#@## 6 # !A$ A$A$ A$ A$ #!# !# !A$ A!@ I@# Atj("Aq@ Ak" (Aþq6 A# Aj"Atj("("E@  36  Ak" (Aöq6 E@ 5 Aj!  #3$#3$#13$1#33$3#83$8#93$9A! E@# " AjA !  4!#AF@#!A€€!@#A @A!#Ak$#$#Atj("Aq@#Ak$#$#Atj(! A~q"Ak(AqE  $! Aüÿÿÿ AüÿÿÿOj"$"A$##! 5 Ak!## K@  (Ar6A/A/#$ Atj"Aj #Ak kAtü 6 Ar6  (Awq6 A## ##"  Ik" AM" Kk!  A$!A$"  4#E@#Aj$A$A$# $A$ #AF@A€€€!A$@@ E #E@# A$A$#$  #"(! Aj! #F#  ( ! !A!@ I@ (! ("AF@A! (A}q6 AF@ ("Aq@A! A}q6 A6  AF@ A6 AF@ (Aj! (! ( " @ 6AA gk" AO" AtA€j 6 E@# A~ wq$ @  6 A6# j$ Ajj!    k"   Ik! E #Gq ( A @#E@A!@  I@ ( Ajj! (AF       k"Ak6 A6 A O@AA gk" AO" AtA€j" (! A6  6 A6 #6 @  6 6# A tr$ # #"  Kk$ A  ! !  @@   k"Ak6 A6 A I AA gk" AO"AtA€j"(! A6  6 A6 #6 @  6  6# A tr$ # #" Ik$ $ !@ I@ (! A6 Ajj!  #@#@# 6 $ #@# 6 $ # j$ #6 $ $  ##rE@A$A$#$ #E#AGq@A$#Aj$#$ #"@ ( #!A$@ @ (! ($Aq@@ "A6 A#AF A#E#AFq#AGq A 6$# ( Ajkj$#E@ A6 $ $ ($ # $  #6# #F@ $ # !@ ("#G@ !  6 #E#AFq##Fq@ A6$ $  #6 A6 A6 $ !  A$A$#@#!A$@ @ (! #6 A6 A6 $ !  #####Ik$#E@#$ @ !@ @ (! ( @ #6 $ #6 A6 A6 $ !  A!#!@ @ (! ( @ ! @  6 $ #6 A6 A6 $ !  A$#$#Aj$#E#AGq@#$ #@#(!@ @ (! #6 A6 A6 $ !  #A6#$#Aj$#$ A$# � $3AA,  l"AÿÿÿÿK@ AtA,$1#8"E@A A8,"A6 A6 A6 A6 A6 A6 A6 A: $8 A6 A6 A6 A: (! A€   6#5A€ I@#6A€ $6A€ $5 $2AA9,"A6 A6 A6 A6 A:  6   j6 A6   9 ݨ }~|#1"E@ A #2lAtü #3"E@ ?!! (! ("((A!"@ ( ("AjI@  Aj6  *8 ( ("AjI@  Aj6  *8 ( ("AjI@  Aj6  *8 ( ("AjI@  Aj6  (6 ( ("AjI@  Aj6  *8 ( ("AjI@  Aj6  *8 ( ("AjI@  Aj6  *8 ( ("AjI@  Aj6  *8 ( ("AjI@  Aj6  *8 ( ("AjI@  Aj6  (6$ ( ("AjI@  Aj6  *8( ( ("AjI@  Aj6  *8, ( ("AjI@  Aj6  *80 ( ("AjI@  Aj6  *84 ( ("AjI@  Aj6  *88 ( ("AjI@  Aj6  (6< ( ("AjI@  Aj6  *8@ ( ("AjI@  Aj6  *8D ( ("AjI@  Aj6  *8H ( ("AjI@  Aj6  *8L ( ("AjI@  Aj6  *8P ( ("AjI@  Aj6  *8T ( (G@ ((!  +@b@  9@ D9H  +H · 9H  +H +DÐ?¢d:P ( ! @ ((A!" ( ("AjI@  Aj6 (6 ( ("AjI@  Aj6 *8 ( ("AjI@  Aj6 *8 ( ("AjI@  Aj6 *8 ( ("AjI@  Aj6 *8 ( (G@ AA @A!A! ( ! ("AF@ *!" A"A6` C€?8d (hCo;Coƒ;C�Âu< AC€ EC€ ECC333?A " "CÀ@•C€?–CÍÌÌ>”Cš™?’""CÍÌ ?”8� Cý5?8” Cý5?8˜ CÍÌÌ=8œ C33³>8  AACÜBCŒBC�Âõ8  AF@ *!" *¨! A"A6` C€?8d (hC¦›D;C�Âu AC@EC¯DC ×£=CÍÌL?A " "CA•Cš™™?–CÍÌ ?”Cffæ>’""Cff&?”8� Cý5?8” Cý5?8˜ C�Âõ=8œ C33³>8  AAC¾BCxBC ×£8  AF@ A"A6` C€?8d (hC¦›D;C ×#”8� Cy?8” CÂO?8˜ CÍÌÌ=8œ CÍÌÌ>8  Aä 6  AF@ AACÐ$ECÐ$ECC€?Co;C ×£ "C ×#>8� CÂO?8” Cy?8˜ C333?8œ C8  AACðvECðvECC€?Co;C ×£ "C�Âõ=8� Cy?8” CÂO?8˜ C333?8œ C8  A"A6` C€?8d (hCo;CC ×£= AC€»EC€»ECC333?A "C ×£=8� Cý5?8” Cý5?8˜ C?8œ C8  AF@ (8! *C A•C€?–CÍÌÌ>”Cš™?’!%@ AH@ AAC´B ²""CA”“C\BC�Âõ "A6` Cš™?8d (hCo;C ×#”“”8�C? 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”Cš™™>”C€?’C>”"$C€>’"" "C?’Ž“"#‹""“ "– #˜"" "”!#  " # # #Cžü�”Cy®¢B’”C8   6 ) )"3B­þÕäÔ…ý¨Ø~|7  3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3”CŒB”C´B’Coƒ:”CD¬F”¨j! Aj!  A"A6` C€?8d (hC ×#C333?A " %C@?”8� Cý5?8” Cý5?8˜ C€>8œ Cš™™>8  A"A6` C€?8d (hCo;C ×# AC`«DC`«DCC@AA " %C333?”8� CžFZ?8” CxÂ?8˜ CÍÌL>8œ C33³>8  Cp4E8Œ A« 6 ((#-Cš™™?”¨6� AF@ (8! AACªBC\BC�Âõ "CÍÌL?8� Cý5?8” Cý5?8˜ CÍÌÌ=8œ Cš™™>8  A"A6` C€?8d (hC ×#Cš™™> AC€mEC@ECÍÌL>Cš™™?A !  ) )"3B­þÕäÔ…ý¨Ø~|7 CÍÌ ?8�C? 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”CÍÌL>”C€?’C>”"$C€>’"" "C?’Ž“"#‹""“ "– #˜"" "”!#  " # # #Cžü�”Cy®¢B’”C8d (hCo;C ×£;C�Âõ< AC–DC–DCC333?A "CÍÌL?8� Cý5?8” Cý5?8˜ CÍÌÌ=8œ Cš™™>8   A"A6` C€?8d (hCo;C ×£;Cš™™> ACDC`«D AF""" "CCÈAA "C€?8� Cý5?8” Cý5?8˜ C€>8œ C33³>8  CWDCp4E 8Œ AACðBC BC ×£8   AF@ A"A6` C€?8d (hCo;CCÍÌL= AC€"EC€"ECC@@A "Cš™™>8� Cý5?8” Cý5?8˜ CÍÌÌ=8œ C33³>8  AF@ *!# *C?^! A"A6` C€?8d (hCÍÌÌ=CC�Âõ= AC/DC€‰D "" "CÍÌÌ?”C ×£=C33³?A "C= ×>8�C? #Cš™?”C€?’C>”"$C€>’"" "C?’Ž“"#‹""“ "– #˜"" "”!#  " # # #Cžü�”Cy®¢B’”C8  A6¨ A F@ A"A6` C€?8d (hCo8� Cý5?8” Cý5?8˜ CÍÌL=8œ Cš™™>8  AF@ AAC*CCpCCÍÌL=C€?Coƒ;C ×£8� Cý5?8” Cý5?8˜ CÍÌL=8œ CÍÌL>8  AACÐECÐECC€?Co;C ×£8œ C8  A F@@ (,! *¨"A o! * !# *!" *¨"AH A N! "CD¬F”¨!@ -A ( E ALq A - ($HA E ALq@ A6  ("AN  ("Ak(Av M@  Atj 6 ("Ak(Av M@  Atj 6 ("Ak(Av M@  Atj #8  ( "Ak(AvO@  Atj 6  ("Ak(AvO@  AtjA6  ("Ak(AvO@  Atj 6  (Aj6    #  A F@A *¨" A F@ AAC\DC\DCC€?Co;CìQ¸=CÍÌL= "Cš™™>8� Cý5?8” Cý5?8˜ CÍÌL>8œ AACÜDCÜDCC€?Co;Cš™™>C�Âõ= "Cš™™>8� Cý5?8” Cý5?8˜ C€>8œ C8  A F@ AAC¥DC¥DCC€?Co;C�Âõ8� Cý5?8” Cý5?8˜ CÍÌL=8œ C8  A F@ AACÜDCÜDCC€?Co;C�Âõ8� Cý5?8” Cý5?8˜ C ×£=8œ C8  AAC%EC%ECC€?Co;C�Âõ8� Cý5?8” Cý5?8˜ C ×£=8œ C8  Aò6 AF@ AAC%DCÜCC ×#=C€?Co;C ×#=C ×#= "Cš™™>8� Cý5?8” Cý5?8˜ CÍÌL=8œ C8  AF@ (("-4@ -4@  (pAj6p  '  AF@ AACÐECÐECC€?Co;CC€> "C�Âõ=8� CÂO?8” Cy?8˜ CÍÌÌ>8œ C8  AACÐ$ECÐ$ECC€?Co;CCÍÌL> "C®Gá=8� Cý5?8” Cý5?8˜ CÍÌÌ>8œ C8  AACDECDECC€?Co;CCìQ8> "CÍÌÌ=8� Cy?8” CÂO?8˜ CÍÌÌ>8œ C8  AACÐECÐECC€?Co;CCÍÌÌ? "C�Âu=8� Cÿ©B?8” CCB&?8˜ CÍÌÌ>8œ C8  AACÐ$ECÐ$ECC€?Co;CC33³? "CÍÌL=8� CCB&?8” Cÿ©B?8˜ CÍÌÌ>8œ C8  A"A6` C€?8d (hCo;CÍÌL=Cš™> AC@œECzECÍÌÌ=C@A "C€>8� Cý5?8” Cý5?8˜ CÍÌL>8œ C?8  A"A6` C€?8d (hCo;Co;C ×#< AC€;EC€;ECC333?A "Cš™™>8� Cý5?8” Cý5?8˜ C8œ CÍÌÌ>8  A6 AF@ AAC BC\BC ×#=C€?Co;CÍÌL=Cš™? "C€?8� Cý5?8” Cý5?8˜ Cš™™>8œ C8  A"A6` C€?8d (hCo;C ×# AC€»ECHDC ×£=C333?A "Cš™?8� Cý5?8” Cý5?8˜ CÍÌL?8œ C33³>8  AAC4CCðBCÍÌL=C€?Co;C ×#8� Cý5?8” Cý5?8˜ Cš™™>8œ Cš™™>8  AF@ (("A:Ì C€?8È  (¼·9À A 6 A 6$ A60 A:4 A6( (A: ( C8 ("-@ A: (,"A6 -@ A:, A! @ (H@ (( Atj("- (A E@ (\A¨ +DÃïõMæªï?¢¶8 (hA¨ +DÃïõMæªï?¢¶8 (\AA (\(AF6 (hAA (h(AF6 Aj!  A"A6` C€?8d (hCÍÌL=CÍÌL=CÍÌL> ACDC€;ECÍÌÌ=CÀ?A "C33³>8� Cý5?8” Cý5?8˜ CÍÌL>8œ C8  A6¨ AF@ (8!@ AH@ A"A6` C€?8d (hCo;Coƒ;C�Âõ<  ) )"3B­þÕäÔ…ý¨Ø~|7 A 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3”CÈC”CaD’CDC ×£C€= "$C€>’"" "C?’Ž“"#‹""“ "– #˜"" "”!#  " # # #Cžü�”Cy®¢B’”C8œ C33³>8   ) )"3B­þÕäÔ…ý¨Ø~|7  ² 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3”C B”CŒB’”Coƒ:”CD¬F”¨6 Aj!  (0"* C€?]@ C€?8 #-CÍÌ @”¨6$ AF@ A"A6` C€?8d (hC�Âõ=CÍÌL=Cš™™> ACúDCÈCC¸>C@A "C?8� Cý5?8” Cý5?8˜ Cš™>8œ CÍÌL>8  A6¨ AF@ *"" (0"* ^@  "8 #-CÍÌ @”¨6$ AF@ ((#-Cš™™?”¨6� AF@A! @ AH@ AA }C¥DCÜD AFC\D "" "CC€?Co;C ×#=C�Âu= "CÍÌL>8� Cý5?8” Cý5?8˜ Cš™>8œ C8   ²CpB”Coƒ:”CD¬F”¨6 Aj!  (0"* Cš™?]@ Cš™?8 #-CÍÌ @”¨6$ AF@ (,"A6 -@ A:,  AF@ ((! *¨! * !" *¨"AL@   "C@@”¨A AF@ (C€?8@ (C€?8D (C€?88 (C€?8< AJ@ ( A (A: (CaD84 AF@ (A " A F@ ( "8 ( A A F@ ("C@ ²CŠÂ’C@A•8CÜC”#/”8  "8 A: AÕ®64 A F@ "C^@ +@DP@¢¶#/”!" ("A: A: A: C€?8 C8 CàA "CD¬F”•8 ("-@ A:  A F@ A "  (! (”! +¸!5 +À!6@ J@ 5 6 !5@ 5Dð?f@ 5Dð¿ !5 („AN@A!A!A!A! (! -’”¨!  Ak(AvO@ Atj 6 ( ! (")!3  ) 3B­þÕäÔ…ý¨Ø~|7 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3”C@?”C€>’!"  Ak(AvO@ Atj "8  ("Ak(AvO@  Atj(Ak!  Ak(AvO@  Atj 6  (" Ak(AvO@  ( "Ak(AvO@ At"j* *0  j* ("Ak(Av M@  Atj*“”’!"  Ak(AvO@ Atj "8 Aj!  * *’Cš™™?–"#Cš™>^@  ((Ak6( ((AL@ (")!3  ) 3B­þÕäÔ…ý¨Ø~|7 #- 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3”CÍÌÌ?”CÍÌÌ>’” #Cš™™>’•¨6( (")!3  ) 3B­þÕäÔ…ý¨Ø~|7 A"A 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3”CD”CúD’"" (")!3  ) 3B­þÕäÔ…ý¨Ø~|7 "C/D’ 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3”C–C”’C�Âõ=C€?C�ÂõC€>  #/Cà@”8L C ×#<8P (")!3  ) 3B­þÕäÔ…ý¨Ø~|7  #C ×£<”8�C? 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”CÍÌL?”C€?’C>”"$C€>’"" "C?’Ž“"#‹""“ "– #˜"" "”!#  " # # #Cžü�”Cy®¢B’”C8œ C8  Aã6 (,!A!@  (H@  ( "Ak(AvO@  Atj(AJ ( " Ak(Av M@ Atj(Ak (" Ak(Av M@ Atj(Aj ! Ak(Av M@ Atj 6 Aj!  A!@  (H@  ("Ak(AvO@  Atj(A  ("Ak(AvO@  Atj(AÜÎJ @ Aj! @ (H@ ("Ak(Av Ak! Ak(AvO@  Atj(! M@  Atj 6 ("Ak(Av Ak! Ak(AvO@  Atj(! M@  Atj 6 ("Ak(Av Ak! Ak(AvO@  Atj*!" M@  Atj "8 ( "Ak(Av Ak! Ak(AvO@  Atj(! M@  Atj 6 ("Ak(Av Ak! Ak(AvO@  Atj(! M@  Atj 6 ("Ak(Av Ak! Ak(AvO@  Atj(! M@  Atj 6 Aj!   (Ak6 Aj!  -A (AJ  ( "Ak(AvE@ (ALA @ ("Ak(AvE@ (! ("Ak(AvE@ (! ("Ak(AvE@ *!#A!@  (H@ ("Ak(Av Ak!  Ak(AvO@  Atj(! M@  Atj 6 ("Ak(Av Ak!  Ak(AvO@  Atj(! M@  Atj 6 (" Ak(Av Ak!  Ak(AvO@ Atj*!" M@ Atj "8 ( "Ak(Av Ak!  Ak(AvO@  Atj(! M@  Atj 6 ("Ak(Av Ak!  Ak(AvO@  Atj(! M@  Atj 6 ("Ak(Av Ak!  Ak(AvO@  Atj(! M@  Atj 6 Aj!   (Ak6    #  *Ü"# #C€?C (,-""]} *ä *è " *Ü“”’8Ü ($C€? *ÜCªñR>”“8XCC€? *PC?^!$  *È +øDa}C€? *à "# *D $”CÃõ¨>”C€? *ÜC‘í¼>”“” *È“”’8È  *Ì"" # *H $”C{®>” "“”’8Ì  *Ð"" # *H $”Cš™Y?” "“”’8Ð  *Ô"" # *H $”Cš™™?” "“”’8Ô  *Ø"" # *L $”C@?” "“”’8Ø (X! (\! (`! (d! (T!@ AH@ At" (jC8 ( jC8 ( jC8 Aj!  A!@ AH@ At" (jC8 ( jC8 ( jC8 Aj!  A!@ AH@ At" (jC8 ( jC8 ( jC8 Aj!  A!@ AH@ At" (jC8 ( jC8 ( jC8 Aj!  A!@ AH@ At" (jC8 ( jC8 ( jC8 Aj!  A!A  *@C?^! ((" ($"AF}CúCCaDCzF A F "#8„ *Œ"" * C€?C  "“”’8Œ (�"AJ@ Ak6� *”"" * C€?C (�AJ "“”’8”} #CÈC– # ""C–D– " (�AJ"#¼" A€€€kA€€€øO@C€ÿ AtE  # A€€€üF  # #“"" "• Av"  AtA€€€xO  #CK”¼A€€€Ük! A€€Ìùk"AvAq! A€€€|qk¾» AtAð j"+¢Dð¿ "4 4¢! 4Dà2hI¿ÊÞ?¢DÞãúŸGç¿  DM~ ÷¶׿¢  ¢ 4D¸È5_G÷?¢ + Au·   ¶ !" *€ AF AFr} *œ *˜ " *€“”’8€ C@ *€88| A6t +8D<@ !4 -4@@ +P (XAq| +HD  " 4fE@  +8¡ü" AH@A! (X"@ AqA ((AN  (,AFA @ ((AA A6X (hAj6h   ((AN (,ALA @ (("A AFA ((A F A ((AF A ((A F  (hAj6h  (XAqE@ (lAj6l (p"AJ@ Ak6p (tAj6t 6x (0"AN@ AtA &j( (\jAl! (X"E@ AtAô&j("Aq@ AA  Aq@ CÍÌL? A F@A (0"AH  (\Aj! ((AN (,AFA @AA (("AF AFr A AF A AF A AF A AF A AF A AF A A F A A F A A F A A F A "AH A! At"A $j( L@ Aà$j(! AtA &j(jAl "AN AtAô&j(AqA @ +@D@¢ª²#/”!" (A"A6` C€?8d (h "CC�Âõ< ACDC@œE "C?”Cš™™?A "C33³>8� Cý5?8” Cý5?8˜ CÍÌÌ>8œ C8   6 AtAà&j("AN@  jAtAÀ3j("@A! @ AH@  AtuAq"@   Aj!  AtAä&j("AN (0AtAà%j(A @  jAtAÀ3j("AJ@ ( Aÿq A€N AH@ (A: AtAè&j("AN@  jAtAÀ3j("AJ@ ( (dAlC€?CÍÌL? AF AtAì&j("AN@  jAtAÀ3j("AJ@ ("C@ (dAl Ak"AojAtAà j( AmAjA lj²CŠÂ’C@A•8CÜC”#/”8 C@?C€? Aq8 A: AÕ®64 +P +@ 9P (XAj6X (XAN@ A6X (`Aj6` (0AN@ (\Aj6\ (0AtA $j( (\L@ ($A F@ A AA A6\ (0AtAà$j(6\ -4  (!A! @ AH@ At" (jC8 ( jC8 ( jC8 Aj!  (!@ AH@  AtjC8 Aj!  (   A! (" *8"" *H *@ "“”’88 *<"" *H *D "“”’8< * C·Q8] -A @ *"" * "“ *”’8 ( *""Cͪ€?”#/”8 ( "Cͪ€?•#/”8 ( "CÅ @”#/”8 "C?”#/”!' (, *4""�"# #C€¿’ #C¿’ "_CÍÌŒ? (0 *4Cff†?”""�"# #C€¿’ #C¿’ "_C@? *X"#C^@ *T"" # "“Cš™?”’8T *T *XCfff?”`@ C8X  *T *\”8T *`!, C€? *TCffæ>”“""8` " ,“CàA•!( *8 *L”!& *< *P”!% (! (!@ AH@ -@ * ""C€?]@ " *$’8 * C€?^@ C€?8  * *(”8 * , (’",”!/} ("*"$ $’C€¿’} *"" $^@ $ "•"" "’ " "”“C€¿’  $C€? "“^@ $C€¿’ "•"" "” "’ "’C€?’  C “!#  $ *’8 *""C€?`@  "C€¿’8 C€? # ("*"$ $’C€¿’} *"" $^@ $ "•"" "’ " "”“C€¿’  $C€? "“^@ $C€¿’ "•"" "” "’ "’C€?’  C “!#  $ *’8 *""C€?`@  "C€¿’8 #’ ("*"$ $’C€¿’} *"" $^@ $ "•"" "’ " "”“C€¿’  $C€? "“^@ $C€¿’ "•"" "” "’ "’C€?’  C “!#  $ *’8 *""C€?`@  "C€¿’8 #Cš™™>”’Cfff?”""C@@^ C€¿ "C@À]  " " "”""CØA’” "CA”CØA’• !* (,"* *")” * "$ * *"#“""”’!- # $ )”’ * "”’!"  - -’ )“8  " "’ *“8  "8  -8  * * -”“ "“8 (0"* *” * (,*"# *“""”’!$ * * *”’ * "”’!"  $ $’ *“8  " "’ *“8  "8  $8  # * $”“ "“8  At"j" * (0* /” &”""’8  j" * "’8 * '’8 * C€?`@ * C€¿’8 C? * "" "C?’Ž“"#‹""“ "– #˜"" "”!#  Atj" * " # # #Cžü�”Cy®¢B’”C”’8 Aj!  A! A! ( " *"" " * ]} * * * *“”’8 *Co:]E@@ AH@ ((" At"AjAtj(! At j(" *"" ( Atj*#/”"#C„€?” "“C ×£=”’8  *"" #C„€?• "“C ×£=”’8 Aj!   * #/C¸E@”’8 * C€?`@  * C€¿’8 C? * "" "C?’Ž“"#‹""“ "– #˜"" "”!# ( " # # #Cžü�”Cy®¢B’”C”’8 Aj!  A! (" (4AJ@ (4Ak64 *, *”!% ( ! ((! (! (! (! ($! @ AH@ -@ * *’8 *C€?`@ C€?8 A:  * * ”8 * *"$’"#C€?`@ #C€¿’!# #8 #Cff&?’""C€?`@ "C€¿’!" ("* *” * # #’C€¿’} # $]@ # $•"# #’ # #”“C€¿’  #C€? $“^@ #C€¿’ $•"# #” #’ #’C€?’  C “ " "’C€¿’} " $]@ " $•"" "’ " "”“C€¿’  "C€? $“^@ "C€¿’ $•"" "” "’ "’C€?’  C ““"$ *""“"#”’!& " * *""”’ * #”’!#  & &’ "“8  # #’ *“8  #8  &8  $ * &”“ #“8  kAÿÿqAtj*!#  AÿÿqAtj (* *” %”"$  AtkAÿÿqAtj*""C= ×>”’8  At" j" * $ " *0”’’8  j" * $ # *0”’’8  j" * $C€>”’8 AjAÿÿq! Aj!  6$ A! @ ("-E  * *’8 *C€?`@ C€?8 -E@ A: -@  * C!½’8 * C_@ A: C8  C@ *"%C€@”8CÜB”!$ ( $#/”8 ( $CÀ?”#/”8 (C@ %Cš™‰@”8C–C”""�"# #C€¿’ #C¿’ "_Cfff? ( $ $’""�"# #C€¿’ #C¿’ "_C@@  *(C|CC %C€?`A -#/”’8( *(C€?`@  *(C€¿’8( *, %C�Âu?” %”C ×#=’” * ” %C€?`A -}C? *("" "C?’Ž“"#‹""“ "– #˜"" "”!# " # # #Cžü�”Cy®¢B’”C”C@?’C€? ”!& (! (! (!@ AH@ ($")!3  ) 3B­þÕäÔ…ý¨Ø~|7 ("* *"(” * "% 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”"$ *"#“""”’!' # % (”’ * "”’!"  ' '’ (“8  " "’ *“8  "8  '8  $ * '”“ "“8 ("*"$ $’C€¿’} *"" $^@ $ "•"" "’ " "”“C€¿’  $C€? "“^@ $C€¿’ "•"" "” "’ "’C€?’  C “!#  $ *’8 *""C€?`@  "C€¿’8 #C?” ("*"$ $’C€¿’} *"" $^@ $ "•"" "’ " "”“C€¿’  $C€? "“^@ $C€¿’ "•"" "” "’ "’C€?’  C “!#  $ *’8 *""C€?`@  "C€¿’8 #Cš™™>”’!( ( "* *"%” * "$ ( *"#“""”’!' # $ %”’ * "”’!"  ' '’ %“8  " "’ *“8  "8  '8  ( * '”“ "“8 At"j" * (* Cfff?” ( "* *”CÍÌL?”’ (Cš™>”’ &”""’8  j" * "’8  j" * "Cš™™>”’8 Aj!  498 (X² 4 +P¡ +@£¶’C€=”!" (0"AF}CD AF}C/D AF}CMD AF}CzD AF}C@œD AF} (*C/D”CD’CD !#C? "CÛÉ@”7C?”“!" ( # "Cfff?”CÍÌ ?’”84 *|"#C€;F]"@ (¤ #�"" "C€¿’ "C¿’ #_""C@? (¨ "C€? (¬ "C@? (° "C€? *ÐC€? *ŒC /?”“”C€? *”C?”“”!' (! (! (! (! (! (! (´! (¸!C!"@ AH@ At"j*!#  j*!+ @ (¤"* *"(” * "& # *"%“"$”’!) % & (”’ * $”’!$  ) )’ (“8  $ $’ *“8  $8  )8  # * )”“ $“8 (¨"* *” * (¤*"$ *“"#”’!% * * *”’ * #”’!#  % %’ *“8  # #’ *“8  #8  %8  $ * %”“ #“8 (¨*!# (¬"* *” * + *“"$”’!% * * *”’ * $”’!$  % %’ *“8  $ $’ *“8  $8  %8  + * %”“ $“8 (°"* *” * (¬*"% *“"$”’!& * * *”’ * $”’!$  & &’ *“8  $ $’ *“8  $8  &8  % * &”“ $“8 (°*!+  (¼"Atj #  Atj*"$’ '”"#8  Atj + $’ '”"+8 AjAÿ?q6¼ -ÌA -Í @ -Í@C!#C!+  +À"œü"Aÿ?q"Atj*  AjAÿ?q"Atj*  At"j*“  ·¡¶"%”’ *È"&”!#  j*"$  Atj* $“ %”’ &”!+  &» 9À &#/Cš™™>•“8È *ÈC_@ C8È A:Ì A:Í At"j" * #’8  j" * +’8  j" *  j* '”’8 #‹"# "^@ #!" Aj!  "8ØA! @ (((tH@ ( ' Aj!  A! ($"*0"2Co:]E@ *!,C€? *(“C€? *L *P’ *T’C—“” 2”!0 *X!/ (Ø! (Ü! (! (! (!A! @ AH@  At"jC8  jC8 Aj!  ,C—CØA•Cff¦?–!1 ,C€?^} ,C€¿’CÐA•Cš™™?–CÍÌL?8CÍÌ ?”C 0”"'Co:^@ *<"&C333?” *@"%C333?”’ *D"$CÀ?”’ *H""C€?”’!# (l 1C€"E”CaD’ & %Cš™?”’ $C33³?”’ "CÍÌŒ?”’”""�"$ $C€¿’ $C¿’ "_ #C A”""�"# #C€¿’ #C¿’ "_C A• (pCà+F *@CÐF”“CHB•""�"# #C€¿’ #C¿’ "_CHB”C333? *DC33³>”!* *@CÍÌÌ>’Cfff?”!( *H!-@ AH@ (")!3  ) 3B­þÕäÔ…ý¨Ø~|7 (l" * *"%” * "$ 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”". *"#“""”’!& # $ %”’ * "”’!" & &’ %“8 " "’ *“8 "8 &8 . * &”“ "“8 (p"* *"&” * "% (l"* *”"$ *"#“""”’!) # % &”’ * "”’!"  ) )’ &“8  " "’ *“8  "8  )8  $ * )”“ "“8 (p*!# *Coƒ:^@ (t"* *"&” * "% . *"$“""”’!) $ % &”’ * "”’!"  ) )’ &“8  " "’ *“8  "8  )8  . * )”“ "“8 # (t"* *” *”’!#  *C¤p}?” .CÍÌÌ=”’8 (x"* *")” * "& *"% *"$“""”’!. $ & )”’ * "”’!"  . .’ )“8  " "’ *“8  "8  .8  % * .”“ "“8 # (x* (”’!"  Atj -C ×#<^} (")!3  ) 3B­þÕäÔ…ý¨Ø~|7 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3” -Coƒ;” 1”]} (")!3  ) 3B­þÕäÔ…ý¨Ø~|7 " 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”C @” -”’ "  " '”8 Aj!  * 1C€?–C@?”C€>’” 0”C@?”"%Co:^@ (|CHEC@ A! @ AH@  *€ *„#/”’8€ *€C€?`@  *€C€¿’8€ (")!3  ) 3B­þÕäÔ…ý¨Ø~|7  3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3”CA”C`A’8„ (")!3  ) 3B­þÕäÔ…ý¨Ø~|7  3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3”CÍÌÌ>”Cš™?’8ˆ C? *€"" "C?’Ž“"#‹""“ "– #˜"" "”!# *ˆCff&?” " # # #Cžü�”Cy®¢B’”C’!$ (|! (")!3  ) 3B­þÕäÔ…ý¨Ø~|7 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”"# *""“!( " * "" *"&”’ * (”’!' * &” " (”’"" "’ &“8 ' '’ *“8 '8 "8 # * "”“ '“8  Atj" * (|"* *” $” %”’8 Aj!  * 1C€?–C333?”Cš™™>’” *HCš™>” 1”’ 0”"%Co:^@  *� (")!3  ) 3B­þÕäÔ…ý¨Ø~|7 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3”CzD”CÀZE’ *�“CÍÌL=”’8� (Œ *�CÈA•""�"# #C€¿’ #C¿’ "_CÈA”Cš™™? A! @ AH@ (")!3  ) 3B­þÕäÔ…ý¨Ø~|7  *Cö(|?” 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”"(Cš™>”’8 (Œ"* *"&” * "$ ( *"#“""”’!' # $ &”’ * "”’!"  ' '’ &“8  " "’ *“8  "8  '8  ( * '”“ "“8  Atj *Cš™?” (Œ"* *”C?”’ %”8 Aj!   Cš™? *”&8”A! @ AH@  At"j" *  j*’8 Aj!  C!+ *( 2”""Coƒ:^@  *¤#/C`A”’8¤ *¤C€?`@  *¤C€¿’8¤ " *,Cš™™?•C€?–”C? *¤"$"" "C?’Ž“"#‹""“ "– #˜"" "”!# " # # #Cžü�”Cy®¢B’”C”Cš™?’” 1C€?–C333?”Cš™™>’”C?”!+C? $C?”"" "C?’Ž“"#‹""“ "– #˜"" "”!# (  " # # #Cžü�”Cy®¢B’”C’”CÍÌ ?”!) *Cš™?”CÍÌÌ>’!(C? *À"" "C?’Ž“"#‹""“ "– #˜"$ $”!% *L"" " *P’Coƒ:—•"-C`«D”C€? -“"'C@D”’ *8"#C ×£<” $ % % %Cžü�”Cy®¢B’”C”C? *ÀC@”"" "C?’Ž“"#‹""“ "– #˜"" "”!# " # # #Cžü�”Cy®¢B’”C`@  *ÈCÍÌ̾’8È (")!3  ) 3B­þÕäÔ…ý¨Ø~|7  3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3”Cš™™>”C333?’8Ì (")!3  ) 3B­þÕäÔ…ý¨Ø~|7  3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vrAv³C€3”CðA”C%C’8Ô C8Ð $ "C333?”Cš™™>’”C?”!$A! @ AH@ (Ä! (")!3  ) 3B­þÕäÔ…ý¨Ø~|7 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”"# *""“!& " * "" *"%”’ * &”’!(  * %” " &”’"" "’ %“8  ( (’ *“8  (8  "8  # * "”“ (“8 (Ä*CÍÌÌ?”!" *ÌCo:^@  *Ð *Ô#/”’8Ð *ÐC€?`@  *ÐC€¿’8Ð "C? *Ð"" "C?’Ž“"#‹""“ "– #˜"" "”!# " # # #Cžü�”Cy®¢B’”C” 1” *$C€?’” 2”"$Co:^@ (˜ ,CðA•C€?–C€»D”C–C’ *(CÍÌÌ>”C€?’”"#C A•""�"% %C€¿’ %C¿’ "_C A”Cfff? (œ #CÃõˆ?”C A•""�"# #C€¿’ #C¿’ "_C A”Cfff? $ /”!&A! @ AH@ (˜! (! (")!3  ) 3B­þÕäÔ…ý¨Ø~|7  *Cþe?” 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”""C¡ØÊ=”’8  *C+‡v?” "CÿЗ>”’8  *C…ë?” "C—¾†?”’8 * *’ *’ "C6<=>”’C€>”"# *""“!% " * "" *"$”’ * %”’!(  * $” " %”’"" "’ $“8  ( (’ *“8  (8  "8  # * "”“ (“8 (œ! ( ! (")!3  ) 3B­þÕäÔ…ý¨Ø~|7  *Cþe?” 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”""C¡ØÊ=”’8  *C+‡v?” "CÿЗ>”’8  *C…ë?” "C—¾†?”’8 * * *”’ * * *’ *’ "C6<=>”’C€>”"# *“""”’!$  * *” * "”’"" "’ *“8  $ $’ *“8  $8  "8  # * "”“ $“8 At"j" * (˜* &”’8  j" * (œ* &”’8 Aj!  (   A! (0"* *’Cš™™?–""Coƒ:]E@ "CÍÌ ?”!& (! (! (!@ A H@ At" ((j(! ( j* &”")C€? ( j*""“”C?”!% ) "C€?’”C?”!$A! @ AH@ (")!3  ) 3B­þÕäÔ…ý¨Ø~|7 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”"# *""“!' " * "" *"(”’ * '”’!*  * (” " '”’"" "’ (“8  * *’ *“8  *8  "8  # * "”“ *“8 At"j" * * *”"" %”’8  j" * " $”’8  j" * " )”CÍÌL>”’8 Aj!  Aj!  A! A! (,"-A (àAL E@ (ü! -@ (8 (L" Atj("AtA j(! (P² (< Atj(²•!# Aj!  (HH (8 Atj("AtA j(  Aj!    "  E A Fr"Al"AtAàj*!, At"Aäj*!+ Aèj*!. AtA j(AF@ + Aðj* +“ #”’!+ , Aìj* ,“ #”’!, . Aôj* .“ #”’!. Al"AtAÐj*!' At"AÔj*!( AØj*!& Al"AtAÐj*!0 At"AÔj*!" AØj*!/ AÜj*!) Aàj*!% AF@ #CÍÌ ?]@C!"C!/ #C{.?]@C!/ "C€>”!" Al"AtAàj*!, At"Aäj*!+ Aèj*!.  AF@ #Cš™?]@C!" #CìQ8?]}Cš™™>C!"Cš™? !0  A F}C " #C33³>] A F #Cš™™>]q}Cš™>!0C " !" (D Atj*!$ E@C!0C!/C!" *Œ!*  *T"# *ˆ"- ,CÍÌŒ?C€? -”” #“”’8T  *X"# - + #“”’8X  *\"# - . #“”’8\  *`"# - ' #“”’8`  *d"# - ( #“”’8d  *h"# - & #“”’8h  *l"# * 0C€? $ AF AFrC ” #“”’8l  *p"# * " #“”’8p  *t"" * / "“”’8t  )C^} ) *x 8x  %8|  *„"" *� *˜ (@ Atj*” "“”’8„ (¬ *T *` (° *X *d (´ *\ *h (À *x *| C€?CÍÌL? -”"!)C€?CìQ¸>C= ×> "0•!'C€?C�Âõ=C ×#> "(•!& *l!- *p!% *t!$@ AH@ *œ *„ * ”#/”’"#C€?`@ (Ä")!3  ) 3B­þÕäÔ…ý¨Ø~|7  3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”C ×#<”C€?’8  (Ä")!3  ) 3B­þÕäÔ…ý¨Ø~|7  3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”C ×#=”C€?’8¤ #C€¿’!#  #8œ # 0]} # '”"" "”C@@ " "’“” # 0 (’]}C€? # 0“ &”"" "”“C "# *¨“C A” -” *¤”!"  #8¨ (Ä")!3  ) 3B­þÕäÔ…ý¨Ø~|7 (¬"* " 3Bˆ 3…Bˆ§"A 3B;ˆ§"kt  vr²C0”"/ $Cfff?” -C�Âu=” #”’”’” * * ""”’ * *”’!#  "8  #8 (°"* #” * * ""”’ * *”’!#  "8  #8 (´"* #” * * ”’ * *”’!"  * 8  "8 (¸"* "” * * ”’ * *”’!"  * 8  "8 (¼"* "” * * ”’ * *”’!#  * 8  #8  *È"" # "“C?”’8È # # *È“Cš™?”’!# (À"* *"*” * / *“""”’!. * * *”’ * "”’!"  . .’ *“8  " "’ *“8  "8  .8  / * .”“ "“8 Atj # (À"* *” %”C€@”’ )”8 Aj!  -,@@ AH@ Atj" *C€? ²CàA•“”8 Aj!   (PAj6P (< (LAtj( (PL@ A6P  (LAj6L (L (HN@ A: A:, A6 A 6$ C8l C8p C8t -,@ A: A:, A6 A 6$ C8l C8p C8t A¥<6à@ AH@ AtjC8 Aj!   (àAk6à (! (! (! (Ô! *ä!) (Ø! (Ü!C!# *ð!" *ì!' *ô!+ *ø!.A! @ AH@ (Ì"* *"*” * "( Atj* '”"& *"%“"$”’!/ % ( *”’ * $”’!$  / /’ *“8  $ $’ *“8  $8  /8  & * /”“ $“8 (Ð"* *” * (Ì* "% *“"$”’!& * * *”’ * $”’!$  & &’ *“8  $ $’ *“8  $8  &8  % * &”“ $“8 (Ð*"&‹"$ "^@ $!"  kAÿqAtj*!%  AÿqAtj}C€? & .C= ×> $ +^} + $ +“C ×#=”’ +Cç?” "+Co;’•CÀ@– .“C ×#<”’".”C@@”"$C@@^ C€¿ $C@À]  $ $ $”"$CØA’” $CA”CØA’• CÍÌ ?”"$8 At"j" * $ %C€>”’ )”"$’8  j" * $’8  j" * $C33³>”’8 AjAÿq! $‹"$ #^@ $!# Aj!   6Ø  #8è  "8ð  +8ô  .8ø *È!) *Ì!' *Ð!( *Ô!& *Ø!% (h! (l! (p! C!"@ AH@ At" (j* )”!$  j ( j* )”"# ( j* '”’ ( j* (”’ ( j* &”’ ( j* %”’8  j $ ( j* '”’ ( j* (”’ ( j* &”’ ( j* %”’8  j ( j* )” ( j* '”’ ( j* (”’ ( j* &”’ ( j* %”’8 #‹ $‹—"# "^@ #!" Aj!  A! (4"(! (! (! ( ! (! *!( * !& (! (! *$!#@ AH@ # Atj*"$ #“C�Âu=”’!# $ #“C€>”!%C!+C!,A!@ AH@ At"j"  A t"   j(kAÿqjAtj*"' & * '“”’"$8   AÿqjAtj % ( $”’8 AH@ + '’!+ , '’!, Aj!  A!@ AH@ +  At"  Atj(kAÿqjAtj*"$C?”’!%   AÿqjAtj %8 $ %C?”“!+ Aj!  A!@ AH@ ,  At"  Atj(kAÿqjAtj*"$C?”’!%   AÿqjAtj %8 $ %C?”“!, Aj!   At"j" * +CÍÌ ?”’8  j" * ,CÍÌ ?”’8 AjAÿq! AjAÿq! Aj!   6  6  #8$ " *ì^@  "8ì C!#A! @ AH@  At"j"*‹",C$tI]E@ C8  jC8C!,  Atj*‹""C$tI]@ " , " ,^!,  At"jC8  jC8 , # # ,]!# Aj!  C€?!+ #Cš™?^@C€?} #Cš™¿’Còý”>•Œ""¼"AvAÿq"A«O@C A€€€|F  " "’ AøO  "C” "Cr±B^ C "C´ñÏÂ]  "»Dþ‚+eGG@¢"4D8C "½!3 4 D8à¡"DÖR ÿB.–?¢Dð?  D”#‘Køj¼>¢DóÄúPο.?   ¢¢  3§AqAtA¨ j) 3B/†|¿¢¶ “Còý”>”Cš™?’ #•!+ + *Œ–"" *ˆ"&]E@ &C€? &“ *�”’ "–!" (t! (x! (|! (€!C!#A! @ AH@ At"j* & " &“ Aj²CàA•”’"$”!%  j* $”!$C“d? % %C“d?^"0C“d¿]@C“d¿!0  At"j 08C“d? $ $C“d?^",C“d¿]@C“d¿!,  j ,8  j  j*8  j  j*8 0‹ ,‹—"$ #^@ $!# Aj!   "8ˆ  +8Œ # *ð^@  #8ð A6„  +øDð? 9ø („!  *œ8˜  * 8œ  *¤8   At" (|j*8¤  *¬8¨  *°8¬  *´8°  (€ j*8´  Aj6„  5Dp@¢ü"AÿJ@Aÿ!  A ANAt"Atj*"% *˜”  AjAtj*"$ *œ”’  AjAtj*"# * ”’  AjAtj*"" *¤”’!& % *¨” $ *¬”’ # *°”’ " *´”’!"  l! AF@  Atj & "’C?”8  Atj &8  AjAtj "8 Aj!   59¸ (" (("(h6  (l6  (X6  (,"- ( A 6  (,((6  ($6  *ì8  *ð8 ( !A! A!@  (H@ Aj (( Atj(-! Aj!   6  +( · 9(  (,*ð80 (,C8ð (! ! Ak(AéG@  ( Aj"6 AèJ@ (! A 6 (! A 6 (! A 6 ( ! A 6 (! A 6 (! A 6 *!" A "8 *!" A "8 ( ! A 6 +(! A 9 *0!" A "8  ( Ak6 ( ( ( ( ( C8ì C8ð#4E? !Jq@A$4A€  j *! @  Aü Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $  l#8"E@A A8,"A6 A6 A6 A6 A6 A6 A6 A: $8 A6 A6 A6 A: ’#5A€I@#6A€$6A€$5  #6#5 #6#5 !@ #5AjK@ Ak"#5K@#6 $6 $5  #6#5 #6#5 !  #9#66#9#6 Akj6#9A   Ak(A~q A AM) º@#(!@ @ AjO (IA @A  (!  A @ Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $  # Ak"(jF@ $#A (Ajü ä} C_@ Ak(AvAM@ *l !@ AH@ Atj*"‹" ^@ !  Cp?”“‹" ^@ ! ! Aj!     ^"C•¿Ö3^E@  Cp?C  ^!C8!@ C€@] Cà@” ]q@  ’!  C€? •!A! @ AH@ Atj*"  ”“ ”"�" C€¿’ C¿’ _"Cà@^@Cà@! CÁ]@CÁ! Atj    ”  ”’" “”’8 Aj!   è A"A6` C€?8d (hCo;Co;Co< AC€;EC€;ECC333?A "C€>8� Cý5?8” Cý5?8˜ C8œ CÍÌÌ>8  AACúDCúDCC€?Co;Co8  ‘~A! A j"A€€ MA€€  AjApq A�€ j!#!@@ E ( Ajk" O  Kq@ ! ! " I  "(!  E@#)E@A�ß$) #)! A j"A€€ MA€€  AjApq ­ ­B||"B€€€€Z@ ?¬B†" T@  }Bÿÿ|Bˆ§@AH@ §$) A6 #)6 A6 A6  @  (6 ($ A6 (" A j"A€€ MA€€  AjApq Ajj"kAœ€ O@  6 A6 6 A6 A6 #6 A6 A6 $  · AüÿÿÿK@ AjApqAk"Aj"##kK@# #(#kKA @#@##6 (!#@# 6 $ $ Aj$#$ #A# A€€j"#(#k"  Ij"#kü $ # 6#Aj!# j$  õ~ Aj"A€€K@ AjApq(Aj"A ü  AA Akgk" AI"AtA¬j("@ AtA¬j (6#'#&kA tI@A!@#'#&kA O@@#'#&kA tI@ Ak!  #&" AtA¬j"(6  6#&A tj$&  #)E@A�ß$) #)"­B € |"B€€€€Z@ ?¬B†" T@  }Bÿÿ|Bˆ§@AH@ §$) A6 #)6 A6 A6 #(6 $( Aj$& ($' #&!#&A tj$& A t"6 Aj"A Akü ] A#jApqAk"Aj("Aj!  Aj j6 #6 $  6 A6 A6  6  6 Aj Z AìÿÿÿK@ A€€O@ +"A ü  Aj)"Ak"A6 A6  6  6 Aj Ÿ##,F@#,AtAÀ#,"At*!#*@ #*#Atü #*"Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ $* $, #*#Atj 6#Aj$ Ÿ# #.F@#.AtA€#."At*!# @ # # Atü # "Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ $ $. # # Atj 6# Aj$ Ÿ##%F@#%AtA€#%"At*!#$@ #$#Atü #$"Ak("@ Ak"A gkAtA¨ j"(6  6 Ak"#6 A6 A6 $ $$ $% #$#Atj 6#Aj$ œ E Er A�ßIr A�ßIr@ Ak!#AF (AFA @ ("AqE@  Ar6 / Ak"(AG@ (" AGA @ (Aq@  (Ar6 . ç A�ßI@ Ak"("AF@#AF@ ("AqE@  Ar6 /  A AGA  Ak"(AG@ ("Aq@ Av   ( AvI@# # Atj!# AIA Ak( G A Ak( ArG @  A€j6 Ar. .   Ar6 . W #""   KAtj! $# #!"   KAtj!@ I@ ("@ 36 Aj!  ‰  E A�ßIr@  Ak"("AF@ ("AqE@  Ar6 -  #E AFq@#AF@ ("AqE@  Ar6 /  AF@  AF@ (  (Aj" AjApqAk" Aj!#A# @# AAA gk" AOtq!@ @ hAtA€j(!  Akq! (Aj" I  (! AA#AFA#AF #Gq $+ (Aj! (! ( "@  6AA gk" AO"AtA€j 6 E@# A~ wq$ @  6 A6# j$  I@@  j"  k"Ak6 A6 A I AA gk" AO"AtA€j"(! A6  6 A6  6 @  6  6# A tr$ # #"  Kk$   A "@  6 Aj- Aj  A#AF A#E#AFq#AGq A $+ # # kK@#@## 6 (!#@# 6 $ $ Aj$ ($ # 6# Aj!# j$ # j$  " Ak ü Ak"A6 #+6# j$ A6  Aj"6 ­ E# AGq@# Aj!# ! @@ #F#  ( M@@ #F ("Aj!   (! Aj5  Ajj!  # !#! ##F $ @##I@#*#Atj(!#Aj$ 5   Œ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Ak(Ak€  (36 (36  (36 (36 ( 36 (36 ( 36 ($36$ ((36( (,36, (0360 (4364 (8368 (T36T (X36X (\36\ (`36` (d36d (h36h (l36l (p36p (t36t (x36x (|36| (€36€ (”36” (36 (36 (\36\ (h36h („36„ (ˆ36ˆ (°36° (36 (36 (36 ( 36 (l36l (p36p (t36t (x36x (|36| (Œ36Œ (˜36˜ (œ36œ ( 36  (¨36¨ (¬36¬ (°36° (´36´ (Ä36Ä (Ø36Ø (Ü36Ü (36 (36 (36 (36 ( 36 (36 (36 (36 (36 ( 36 (36 (36 (36 (36 (¤36¤ (¨36¨ (¬36¬ (°36° (´36´ (¸36¸ (36 (36 (36 (,36, (0360 (36 (36 (36 (36 (36 (36 (36 (36 ( 36  (36 (36 (36 ( 36 ($36$ (36 (36 (36 ( 36 (36 (36 (36 ( 36 (36 (36 (0360 (8368 (<36< (@36@ (D36D (¬36¬ (°36° (´36´ (¸36¸ (¼36¼ (À36À (Ä36Ä (Ì36Ì (Ð36Ð (Ô36Ô (ü36ü ( ( 2 ("3!  G@ 6 (  kj6  ( ( 2 ("3!  G@ 6 (  kj6  (36 (36 (36  (36 (36 (36 (36 (36 ( 36 ($36$ (36 (36 (36 ("3"6 ( j k6 ( ( 2 ("3!  G@ 6 (  kj6  (36 (36 (36 ( 36   ("3!  G@ 6 (  kj6 ;AA, AðA,6AA, AðA,6AA, AðA,6 Á|~ ¼"Aÿÿÿÿq"AÚŸ¤úM@ A€€€ÌI@C€? »" ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶ Av! AѧíƒM@ Aã—Û€K@ »"D-DTû! @  D-DTû! À  " ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶Œ @ »D-DTû!ù? " ¢" ¢!D-DTû!ù? »¡" ¢" ¢!   D²ûn‰�?¢Dw¬ËTUUÅ¿ ¢    ¢¢ D§F;Œ‡ÍÆ>¢DtçÊâù*¿ ¢ ¶ AÕ㈇M@ AßÛ¿…K@ »"D-DTû!@  D-DTû!À  " ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶ @ Œ»DÒ!3|ÙÀ " ¢" ¢! »DÒ!3|ÙÀ " ¢" ¢!   D²ûn‰�?¢Dw¬ËTUUÅ¿ ¢    ¢¢ D§F;Œ‡ÍÆ>¢DtçÊâù*¿ ¢ ¶ A€€€üO@ “  AÛŸ¤îI@ »" DƒÈÉm0_ä?¢ž"DPû!ù?¢¡ Dcba´Q>¢¡$0 ª  AvA˜k"A?q¬! AuAtA¨ j")! )! B V~  B }† )Bà }ˆ„ B }ˆ ! AÿÿÿqA€€€r¬! D-DTû!ù; »¦ BR~ † BÀ }ˆ„ ~ ~B ˆ|"B†"¹¢$0A B>ˆ B?ˆ|§"k   !#0! Aq}   ¢" ¢" D²ûn‰�?¢Dw¬ËTUUÅ¿ ¢    ¢¢ D§F;Œ‡ÍÆ>¢DtçÊâù*¿ ¢ ¶  ¢" ¢! D�^ ýÿÿß¿¢Dð?  DB:áSU¥?¢   ¢ DiPîàB“ù>¢D'è‡ÀV¿ ¢ ¶ "Œ AjAq Œ|~ ‹C@_@ C@[@ ” C?[@ ‘‹C€ »Dðÿb C€¿[@C€? • C€?[@  C[@C€? } » ¼"AtAkAÿÿÿwO" ¼"A€€€kA€€€øOr@ @C€? At"E CÀ A€€€üF  ’ A€€€xK At"A€€€xKr CÀ A€€€øF C AvE A€€€øIF   ”  AtAkAÿÿÿwO@ ”!C€? Œ Av"A AvAÿq"AÿI A A–K A AA– kt"Akq A  q A AF  "• AH  AH@ “" •A AvAÿq"AÿI A A–K A AA– kt"Akq A  q A "E A€€A AF! Aÿÿÿÿq! A€€€I CK”¼AÿÿÿÿqA€€€Ük  ! A€€Ìùk"AvAq!  A€€€|q"k¾» AtAð j"+¢Dð¿ " ¢! D nIÉvÒ?¢DzÆu i׿   ¢¢ D+¸*eG÷?¢ + Au·   Dݺ§l ÇÞ?¢DÈö¾HGç¿  ¢  ¢"½B/ˆBÿÿƒB¿�Z@C€ÿC€  DqÕÑÿÿÿ_@d C€C  DÀbÀe  DèB "½!  Dè ¡"DÖR ÿB.æ?¢Dð?  D”#‘Køj¬?¢DóÄúPοÎ?   ¢¢  §AqAtA¨ j)  ­|B/†|¿¢¶ ÁA Aê,"AAë," ( ("AjI@ Aj6 (6 6  0AAí," ( ("AjI@ Aj6 (6  6  0AAï," ( ("AjI@ Aj6 (6  6  0  pA$A$A$A$"AA9,"A6 A6 A6 A6 A: A6 A6 A6 $9A$8A$3A$1CÆ7>8$/CàDD$- üKzAú ξCD€"DCDaD@ƒD@œD€»DáD€ EÀ(E@NEð?t…Ó°Ùï?‰ùlXµï?Q[Гï?{Q}<¸rï?ª¹h1‡Tï?8bunz8ï?áÞõ�ï?·1 þï?Ë©:7§ñî?"4L¦Þî?-‰a`Îî?'*6ÕÚ¿î?‚O�V+´î?)THÝ«î?…U:°~¤î?Í;fž î?t_ìèuŸî?‡ës¡î?ÎL™‰¥î?Û *Bå¬î?åÅͰ7·î?�𣂑Äî?]%>²Õî?­ÓZ™Ÿèî?G^ûòvÿî?œR…Ý›ï?i�ïÜ 7ï?‡¤ûÜXï?_›{3—|ï?Ú�¤¢¯¤ï?@En[vÐï?)DNnƒù¢ÀÝ4õÑW'üA�C<™•bÛaŻޫcQþAØ °tŒ58<?C158<?37:AF037:?.158<,037:047:=¾óøyìaö?0–[ÆþÞ¿=ˆ¯Jíqõ?¤üÔ2h Û¿°ðð9•ô?{· ‹A׿…¸°•Éó?{Ïmé�Ó¿¥dˆ  ó?1¶òó›п Ž {"^ò?ðz;|É¿?4JJ»ñ?Ÿ<¯“ãù¿ºåŠðX#ñ?\�x¿Ë`¹¿§™A?•ð?Î_G¶�oª¿ð?A� `¬GšýŒ`î?=õ$ŸÊ8³? j³¤ì?º‘8T©vÄ?æüjW6 ë?ÒäÄJ „Î?-ª¡cÑÂé?eÆðEÔ?íAxæ†è?øŸ,œŽØ?bHSõÜgç?Ì{±N¤àÜ?Aø —�processor grew its memory during a block; allocate what it keeps in initA˜ ¥t¤  AØ àØŒC  E€;EŒC  E€;EÈCÀóD`EÈCÀóD`E€ DáD@E€ DáD@E€,DÒD@E€,DÒD@E€;DÀ�D E€;DÀ�D ED\D ED\D EáC@ƒD  EáC@ƒD  E CaD  E CaD  E%D€˜D@E%D€˜D@EúCÀ¨D€ÔDúCÀ¨D€ÔDD@µDED@µDEúCÀÚD€EªC€ E`8E9DÀ�D E¾CÀóD/E DzDàE¾CMDÀE9D@œD EÒCaDÀE D\D@E¾CÀóDÀ(E‘C€"D€ E‘C€"D€ E‡C@E€;E‡C@E€;E¥C€‰D@µD¥C€‰D@µDªC@ƒD/EªC@ƒD/E‡CÀ�D€ E‡CÀ�D€ E‡CÀÁD€"E‡CÀÁD€"E‡CúDÀ(E‡CúDÀ(EªC€‰D@EªC€‰D@E C€¢D`E C€¢D`E C¯D`E C¯D`E–C@çDà+E–C@çDà+EúC€»D@EúC€»D@EfC€‰D@EfC€‰D@E‡C€¢D`E‡C€¢D`EzC¯D`EzC¯D`E‡C@çDà+E‡C@çDà+EÈC€‰D`EÈC€‰D`EÈC@ÎD€"EÈC@ÎD€"E CÀóD/E CÀóD/E\C€‰D`E\C€‰D`E\C@ÎD€"E\C@ÎD€"EzCÀóD/EzCÀóD/E–C@çDà+E–C@çDà+E‡C@çDà+E‡C@çDà+EúC€»D@EúC€»D@EAÈ ôìpB´BCŒBÈBCŒBÈBC BÈBC B´BC B´BCŒB´BCpB´BC B´BCŒBÈBðB BÈBCŒBÈBC BÈBC B´BC B´BC B´BCŒB BCpB´BCŒB´BÜB BðB CðB C\CðB C\CðB C\CŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCŒBÈBCAÈ 4€?Aâ €?€?Aö €?€?AŠ €?€?Až €?€?A² €?€?AÆ €?€?AÚ €?€?Aî €?€?A‚ €?€?A– €?€?Aª €?€?A¾ €?€?AÒ €?€?Aæ €?€?Aú €?€?AŽ €?@?A¢ €?@?A¶ €?ÍÌL?AÊ €?@?AÞ €??Aò €??A†! €??Aš! R€? ×£>€mEš™?€> ŒE333?š™Y?@œE@fff?@5Effæ?Aô! ü333?€?ffæ>ÍÌL>€mEš™?ffæ>š™> ŒE333?ÍÌÌ>?@œE@ÍÌÌ>?@5Effæ?ffæ>?–Dš™?ÍÌL?? ŒEš™™?@??EÍÌÌ?š™>š™™>–Dš™?š™>ÍÌÌ>@ƒEš™™?š™>ÍÌÌ>EÍÌÌ?33s?€;Effæ?33³>š™?€;Effæ?A‚$ €?A˜$ 1t,AØ$ t,Aø$ A˜% ,€?ÍÌL?A°% 33³>š™™>?ÍÌL?š™™>š™?€?AØ% 1t,A˜& 1t, $,02:;AØ& 1tHÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿA”' %0ÿÿÿÿÿÿÿÿ@PÿÿÿÿÿÿÿÿAÄ' ÿÿÿÿÿÿÿÿAÜ' ÿÿÿÿÿÿÿÿAô' <0ÿÿÿÿÿÿÿÿ`PÿÿÿÿÿÿÿÿÿÿÿÿpÿÿÿÿÿÿÿÿA¸( ÿÿÿÿpÿÿÿÿÿÿÿÿAÐ( ÿÿÿÿpÿÿÿÿÿÿÿÿAè( ÿÿÿÿpÿÿÿÿÿÿÿÿA„) %€ÿÿÿÿÿÿÿÿ�ÿÿÿÿÿÿÿÿA´) % ÿÿÿÿÿÿÿÿ@°ÿÿÿÿÿÿÿÿAä) �€ÿÿÿÿÿÿÿÿ�ÿÿÿÿÿÿÿÿ@ ÿÿÿÿÿÿÿÿ`°ÿÿÿÿÿÿÿÿÀ€ÐÿÿÿÿÀ�àÿÿÿÿÀ ðÿÿÿÿA‰+ @°ÿÿÿÿÀ€ÐÿÿÿÿÀ�àÿÿÿÿAÑ+ ( ðÿÿÿÿ`°ÿÿÿÿA„, " ÿÿÿÿ0@@ÿÿÿÿPA´, R`ÿÿÿÿp@€ÿÿÿÿ�À ÿÿÿÿ0@ÿÿÿÿPA�- ˜À`ÿÿÿÿp`€ÿÿÿÿ� €Ð0 �àP  ðp°°� €Ð0 �àP  ðp°°�ÀpÿÿÿÿÿÿÿÿÐpÿÿÿÿÿÿÿÿA°/ àpÿÿÿÿÿÿÿÿAÈ/ ðpÿÿÿÿÿÿÿÿAá/ pÿÿÿÿÿÿÿÿAù/ pÿÿÿÿÿÿÿÿA�0 Р€0 � P  0p°°@� €0 � P  0p°°@�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿAè1 nP`ÿÿÿÿpP€ÿÿÿÿ�P ÿÿÿÿ°ÀÐÿÿÿÿàP`ÿÿÿÿpAà2 AP€ÿÿÿÿ�P ÿÿÿÿ°ÀÐÿÿÿÿàA¸3 ItÀ ‚€@Œ€€‚@Œ€P)AÀ4 %A€5 'AÀ5 A‚‚Œ€D€‚Œ�$AÀ6 A‚€Œ€€‚  )AÀ7 )AØ7 ÿÿÿÿ)ÿÿÿÿ0Aô7 ,ÿÿÿÿ%A˜8 ÿÿÿÿ%ÿÿÿÿ,A´8 )ÿÿÿÿ'AØ8 ÿÿÿÿ'ÿÿÿÿ.Aô8 +ÿÿÿÿ$A˜9 )ÿÿÿÿ$ÿÿÿÿ+')‚AÉ9 4Œ€€Œ€PAˆ: A : AÈ: Aà: Aø: Aˆ; A ; AÀ; =‚Œ€D€Œ�Aˆ< A˜< A¨< AÀ< .AÌ< ÿÿÿÿ.ÿÿÿÿ1Aè< Y0ÿÿÿÿ)ÿÿÿÿ )AÌ= ÿÿÿÿ)ÿÿÿÿ,Aè= Y+ÿÿÿÿ0ÿÿÿÿ ,AÌ> ÿÿÿÿ,ÿÿÿÿ3Aè> Y0ÿÿÿÿ'ÿÿÿÿ $AÌ? õÿÿÿÿ0ÿÿÿÿ$(ÿÿÿÿ+. €@ €‚P €‚P €‚@ ‚€Œ€€‚Œ€‚€€€‚€€€€€€€€€€€€€€€€€€€ˆ€ˆ€ˆˆˆˆAàà A€Ä A Ä AÈÄ AàÄ AøÄ A Å AÈÅ AØÅ AèÅ Y‚€€‚Œ‚€€)AØÆ ÿÿÿÿÿÿÿÿ)AìÆ Uÿÿÿÿ0ÿÿÿÿÿÿÿÿ%AØÇ ÿÿÿÿÿÿÿÿ%AìÇ Uÿÿÿÿ,ÿÿÿÿÿÿÿÿ 'AØÈ ÿÿÿÿÿÿÿÿ'AìÈ •ÿÿÿÿ.ÿÿÿÿÿÿÿÿ‚€€‚Ž€€@„$A˜Ê ÿÿÿÿÿÿÿÿ$A¬Ê Mÿÿÿÿ+ÿÿÿÿÿÿÿÿ AˆË �t|  !"#$%'A˜Ì �t|A¨Í ©t¤     !" >AèÎ �t|AøÏ †t  %+049>AEHJOQVY[]`eiklnptv{‡�’•™ ¥«´¼ÇÑ×âíñöûÿ $+AˆÒ …t    A˜Ô ¶ t°!% $ "$"   "!"&Ð!!  #%"# &  !#      '  #"" $&! $#" $!#" #" $#  !"! ! !! $ $! !!"!!!$  $!! !!#$ $% $""! #  & AØÝ ¬¤úBÒBðBCCCÈBCæBC‚B/CCC/CCCCC‚BpB‚B‚BŒB‚BŒB¾BªBæBðB‚B‚B4B B BªB BªB‚B\B‚BCÒBpBrive.audio.namesSpu‘þ€$žuiËfit‘þ�žuiË trick_text‘þ€„@žuiËpad‘þ€„žuiËinitials‘þù¦ž hedra_engineËscene3dêü–Wholeêüý– Decimals 2‡ËÌÎÏÈB–Map 0..1 to 0..100ó–Percentò§ò§—–Not‡ÌÏ@–Plus 1’çè0–Pad 6ó–Score six digitsò§ò§˜–Minutesžˆ¡�‡Ÿ‰pBœ˜–Seconds of the minutežˆ¡œ�‡Ÿ‰pB˜– Hundredthsžˆ¡�‡Ÿ‰ÈBœ�‡Ÿ‰ÈB’çè0–Pad 2ó– Clock minutesò§ò§ó– Clock secondsò§ ò§ò§ ó–Clock hundredthsò§ ò§ò§ ˜– Cycle +1 of 3 ¡�Ÿœ�‡Ÿ‰@@˜– Cycle -1 of 3 ¡�Ÿ‰@œ�‡Ÿ‰@@˜–Cycle +1 of 11 ¡�Ÿœ�‡Ÿ‰0A˜–Cycle -1 of 11 ¡�Ÿ‰ Aœ�‡Ÿ‰0A˜– Volume upžŸšžˆ¡�‡Ÿ‰ A�Ÿœ�‡Ÿ‰ Aœ˜– Volume downžˆŸ‰šžˆ¡�‡Ÿ‰ A�‡Ÿœ�‡Ÿ‰ Aœ˜– Volume barsžˆ¡�‡Ÿ‰ Aœ�‡Ÿ‰ @‡ËÌÎÏHC–Map 0..1 to 0..200‡ËÌ€¿Î°ÁϰA–Map -1..1 to -22..22‡ËÌÎÏ8B–Map 0..1 to 0..46˜– Pause row y¡�‡Ÿ‰PA˜–Caret x¡�‡Ÿ‰@B˜– Rank row y¡�‡Ÿ‰ Aø–Changed³­GameData¯­phase¯­score¯­comboSum¯­ comboMultÀ­ comboActive¯­ trickSpin¯­trickDir¯­ trickFlip¯­ trickGrab1¯­ trickGrab2À­ trickSwitch¯­ trickGrindÀ­ trickLive¯­ trickPoints¯­trickSeq¯­bankSeq¯­ perfectSeq¯­crashSeq¯­bailSeq¯­praise¯­time¯­ countdown¯­progress¯­section¯­speedKmh¯­balanceÀ­grindingÀ­lineHigh¯­ resTricks¯­ resGrinds¯­ resComboBonus¯­ resLandings¯­ resTimeBonus¯­resTotal¯­ resBestCombo¯­ resLongestAir¯­ resPerfects¯­ resCrashes¯­resStep¯­resGrade¯­resRank¯­ initialsCode¯­initialsCursor¯­hs1Score¯­hs2Score¯­hs3Score¯­hs4Score¯­hs5Score¯­hs6Score¯­hs7Score¯­hs8Score¯­hs9Score¯­ hs10Score¯­hs1Tag¯­hs2Tag¯­hs3Tag¯­hs4Tag¯­hs5Tag¯­hs6Tag¯­hs7Tag¯­hs8Tag¯­hs9Tag¯­hs10Tag¯­ captionLine¯­ captionSeq¯­beat¯­device¯­ ghostDelta¯­ ollieCharge¯­riderX¯­riderY¯­startSeq¯­ restartSeq¯­quitSeqÀ­paused¯­scheme¯­ musicVolume¯­ sfxVolume¯­ voiceVolumeÀ­muteÀ­ reducedMotionÀ­ landingAssistÀ­ grindAssistÀ­ghost¯­padX¯­padY¯­ padButtons¯­ uiMoveSeq¯­ uiSelectSeq¯­ uiBackSeq¯­ initialsIn¯­initialsDoneSeqÀ­demo¯­ autopilot¯­seedµ¶DefaultºªºªºªºªÁªºªºªºªºªºª Áª ºª Áª ºª ºªºªºªºªºªºªºªº¿€¿ªºªºªºªºªÁªÁªºªºªºªºªºª ºª!ºª"ºª#ºª$ºª%ºª&º¿€¿ª'ºª(ºª)ºª*ºª+ºª,ºª-ºª.ºª/ºª0ºª1ºª2ºª3ºª4ºª5ºª6ºª7ºª8ºª9ºª:ºª;ºª<ºª=ºª>º¿€¿ª?ºª@ºªAºªBºªCºªDºªEºªFºªGºªHºªIÁªJºªKº¿ÍÌL?ªLº¿fff?ªMº¿€?ªNÁªOÁªPÁѪQÁªRÁªSºªTºªUºªVºªWºªXºªYºªZºª[Áª\ºª]º¿€?ª^³­Ui¯­scale¯­gx¯­gy¯­balX¯­balY¯­pauseSel¯­ini0¯­ini1¯­ini2¯­ iniCursorÀ­iniDoneÀ­captionsÀ­ highContrast»­ trickText»­trickPts»­ praiseText»­ comboText»­ captionText»­ totalText»­bestText»­airText»­ schemeName»­iniText0»­iniText1»­iniText2»­hs1Name»­hs1Pts»­hs1Grade»­hs1Line»­hs2Name»­hs2Pts»­hs2Grade»­hs2Line»­hs3Name»­hs3Pts»­hs3Grade»­hs3Line»­hs4Name»­hs4Pts»­hs4Grade»­hs4Line»­hs5Name»­hs5Pts»­hs5Grade»­hs5Line»­hs6Name»­hs6Pts»­hs6Grade»­hs6Line»­hs7Name»­hs7Pts»­hs7Grade»­hs7Line»­hs8Name»­hs8Pts»­hs8Grade»­hs8Line»­hs9Name»­hs9Pts»­hs9Grade»­hs9Line»­hs10Name»­hs10Pts»­ hs10Grade»­hs10LineÀ­controlsö­pauseGoö­ pauseLeftö­ pauseRightö­ pauseBackµ¶Defaultº¿@@ªºªºªº¿ Cªº¿Cªºªº¿€?ªº¿€?ªº¿€?ªºª Áª ÁѪ Áª ±±BACKSIDE 720 INDYª ±±+1,050ª±±SICK!ª±± 2,450 x 3ª±ª±±0ª±±0ª±±0.0Sª±±HOT PINKª±±Aª±±Aª±±Aª±±---ª±±0ª±±Cª±±Lª±±---ª±±0ª±±Cª±±Lª ±±---ª!±±0ª"±±Cª#±±Lª$±±---ª%±±0ª&±±Cª'±±Lª(±±---ª)±±0ª*±±Cª+±±Lª,±±---ª-±±0ª.±±Cª/±±Lª0±±---ª1±±0ª2±±Cª3±±Lª4±±---ª5±±0ª6±±Cª7±±Lª8±±---ª9±±0ª:±±Cª;±±Lª<±±---ª=±±0ª>±±Cª?±±Lª@ÁªAõªBõªCõªDõªE³­Game»­scene»­sourceÀ­ unbuiltLabelÀ­playing¯­speed»­status´µ­data´µ­uiµ¶Default±±world/run.rscnª±±autoªÁªÁѪº¿€?ª±ª¼Áª¼Áª³­Scene3D»­scene»­sourceÀ­ unbuiltLabel»­cameraÀ­playing¯­speed¯­yaw¯­ lodThreshold»­status»­ animation»­ stateMachine»­events¯­ renderScale»­ scalingMode¯­ maxDensity¯­ maxPixels¯­ loadBudget¯­progress»­ resources»­resourceSummaryµ¶Default±ª±±autoªÁѪ±ªÁѪº¿€?ªºªº¿€?ª±ª±ª ±ª ±ª ºª ±ª ºªºªºªºª±ª±ª³­ RiveCLIBootUpµ¶instanceìÇÄpD4DîMain¤åæçèéêëìñòArtboard StyleScriptsÛÐL Trick TextÛÐMPadÛÐN Initials Keys�‰KeysGrid¿ÌÊ ¿ÌÊ¿ÌÊ¿ÌÊ\Å PÃÇPause_ÆPause\ÅWipe_ÆWipe \ÅCaptions_ÆCaptions “¨Screens\ÅTitle_ÆTitle\ÅHud_ÆHud\ÅResults_ÆResults\ÅInitials_ÆInitials No ScreenœÖ × Avalanche Air Semantics™îRoot¤íîïðÕÖåæçèéêëìñòßà Root Style™îFit Box¤íîïðÕÖåæçèéêëìñòßà Fit Box StyleýÐKFit™€?€?î Title Keys¤íïÕÖåæçèéêëìñòTitle Keys Style�‰Keys™€?€?î" Results Keys¤íïÕÖåæçèéêëìñòResults Keys Style!�‰Keys!™€?€?î% Pause Keys¤íïÕÖåæçèéêëìñòPause Keys Style$�‰Keys$™î(Stage¤íîïðÕÖåæçèéêëìñòßà Stage Style'Fill'%ÿColor)ýÐOScene3D'�‰Keys+œÖ×The mountain: the run in 3D Semantics'9;7 Screen Title35¨2z9;7 Screen Run35¨2z9;7Screen Results35¨2z9;7Screen Initials35¨2z9;7 Screen Demo35¨2z9;7 Pause Off355 FPÃÇ9;7Pause On35F€?5 9;7 Grid Shown35F€?35ìT9;7 Grid Hidden3535ìTµ57Main9ŠScreen>A—âØ¿Ì\ÊúßáâÙ¿ÌÊüßäA—âØ¿Ì\ÊúßáâŠÙ¿ÌÊüß䌀?âŠÙ¿ÌÊüß䌠@A—âØ¿Ì\ÊúßáâÙ¿ÌÊüßäŒÀ@A—âØ¿Ì\ÊúßáâÙ¿ÌÊüßäŒà@A—âØ¿Ì\Êúßá‡@?A—=•=•=•=•=•9ŠPause>A—âØ¿ÌJÊúßá‡âØ¿Ì\ÊúßáA—âØ¿ÌJÊúßáA—âØ¿Ì\Êúßá‡@?A—=•Øú¿ÌÊúËçÔØ¿ÌAÊúËçÔ=•Ø¿ÌÊúËçÔ9Š Pause Act>@?A—=A—â÷¿ÌEÊ®ßùâØ¿ÌAÊúßáA—â÷¿ÌEÊ®ßùâØ¿ÌAÊúßá‡A—â÷¿ÌBÊ®ßùâØ¿ÌAÊúßá‡A—â÷¿ÌBÊ®ßùâÙ¿ÌÊüßäâØ¿ÌAÊúßáA—â÷¿ÌBÊ®ßùâÙ¿ÌÊüß䌀?âØ¿ÌAÊúßáA—â÷¿ÌDÊ®ßùâÙ¿ÌÊüßäŒ@âØ¿ÌAÊúßáA—â÷¿ÌBÊ®ßùâÙ¿ÌÊüßäŒ@âØ¿ÌAÊúßáA— â÷¿ÌCÊ®ßùâÙ¿ÌÊüßäŒ@âØ¿ÌAÊúßáA— â÷¿ÌDÊ®ßùâÙ¿ÌÊüßäŒ@@âØ¿ÌAÊúßáA— â÷¿ÌBÊ®ßùâÙ¿ÌÊüßäŒ@@âØ¿ÌAÊúßáA— â÷¿ÌCÊ®ßùâÙ¿ÌÊüßäŒ@@âØ¿ÌAÊúßáA— â÷¿ÌDÊ®ßùâÙ¿ÌÊüß䌀@âØ¿ÌAÊúßáA— â÷¿ÌBÊ®ßùâÙ¿ÌÊüß䌀@âØ¿ÌAÊúßáA— â÷¿ÌCÊ®ßùâÙ¿ÌÊüß䌀@âØ¿ÌAÊúßáA—â÷¿ÌBÊ®ßùâÙ¿ÌÊüß䌠@âØ¿ÌAÊúßáA—â÷¿ÌBÊ®ßùâÙ¿ÌÊüßäŒÀ@âØ¿ÌAÊúßáA—â÷¿ÌCÊ®ßùâÙ¿ÌÊüßäŒÀ@âØ¿ÌAÊúßáA—â÷¿ÌDÊ®ßùâÙ¿ÌÊüßäŒÀ@âØ¿ÌAÊúßáA—â÷¿ÌBÊ®ßùâÙ¿ÌÊüßäŒà@âØ¿ÌAÊúßáA—â÷¿ÌCÊ®ßùâÙ¿ÌÊüßäŒà@âØ¿ÌAÊúßáA—â÷¿ÌDÊ®ßùâÙ¿ÌÊüßäŒà@âØ¿ÌAÊúßáA—â÷¿ÌBÊ®ßùâÙ¿ÌÊüßäŒAâØ¿ÌAÊúßáA—â÷¿ÌCÊ®ßùâÙ¿ÌÊüßäŒAâØ¿ÌAÊúßáA—â÷¿ÌDÊ®ßùâÙ¿ÌÊüßäŒAâØ¿ÌAÊúßáA—â÷¿ÌBÊ®ßùâÙ¿ÌÊüßäŒAâØ¿ÌAÊúßáA—â÷¿ÌCÊ®ßùâÙ¿ÌÊüßäŒAâØ¿ÌAÊúßáA—â÷¿ÌDÊ®ßùâÙ¿ÌÊüßäŒAâØ¿ÌAÊúßáA—â÷¿ÌBÊ®ßùâÙ¿ÌÊüßäŒ AâØ¿ÌAÊúßá=Ø¿ÌJÊúËçÔÙ¿ÌYÊüË¿ÌYÊü”çÔA—=Ø¿ÌAÊúËçÔÙ¿ÌYÊüË¿ÌYÊü”çÔA—=Ø¿ÌJÊúËçÔÙ¿ÌYÊüË¿ÌYÊü”çÔA—=Ù¿ÌHÊüË¿ÌHÊü”çÔØ¿ÌJÊúËçÔÙ¿ÌXÊüË¿ÌXÊü”çÔA—=Ù¿ÌLÊüË¿ÌLÊü”çÔÙ¿ÌWÊüË¿ÌWÊü”çÔA—=Ù¿ÌLÊüË¿ÌLÊü”çÔÙ¿ÌWÊüË¿ÌWÊü”çÔA—=Ù¿ÌMÊüË¿ÌMÊü”çÔÙ¿ÌWÊüË¿ÌWÊü”çÔA—=Ù¿ÌMÊüË¿ÌMÊü”çÔÙ¿ÌWÊüË¿ÌWÊü”çÔA—=Ù¿ÌNÊüË¿ÌNÊü”çÔÙ¿ÌWÊüË¿ÌWÊü”çÔA—=Ù¿ÌNÊüË¿ÌNÊü”çÔÙ¿ÌWÊüË¿ÌWÊü”çÔA—=Øú¿ÌAÊúËçÔÙ¿ÌXÊüË¿ÌXÊü”çÔA—=Ø¿ÌQÊúË¿ÌQÊú”çÔÙ¿ÌXÊüË¿ÌXÊü”çÔA—=Ø¿Ì ÊúË¿Ì Êú”çÔÙ¿ÌXÊüË¿ÌXÊü”çÔA—=Ø¿ÌPÊúË¿ÌPÊú”çÔÙ¿ÌXÊüË¿ÌXÊü”çÔA—=Ø¿Ì ÊúË¿Ì Êú”çÔÙ¿ÌXÊüË¿ÌXÊü”çÔA—=Ù¿ÌIÊüË¿ÌIÊü”çÔØ¿ÌJÊúËçÔÙ¿ÌXÊüË¿ÌXÊü”çÔA—9ŠFocus>A—âØ¿Ì\ÊúßáâØ¿ÌJÊúßáâÙ¿ÌÊüßäA—âØ¿Ì\ÊúßáâØ¿ÌJÊúßáâŠÙ¿ÌÊüß䌀?âŠÙ¿ÌÊüß䌠@A—âØ¿Ì\ÊúßáâØ¿ÌJÊúßáâÙ¿ÌÊüßäŒÀ@A—âØ¿Ì\ÊúßáâØ¿ÌJÊúßáâÙ¿ÌÊüßäŒà@A—âØ¿Ì\ÊúßáâØ¿ÌJÊúßá‡A—âØ¿Ì\Êúßá‡@?A—=Œ¸Ô=Œ¸+Ô=Œ¸!Ô=Œ¸Ô=Œ¸$Ô=�Ô9ŠDemo>A—âØ¿Ì\Êúßá‡A—âØ¿Ì\Êúßá@?A—=•=•ŽàŠ Title Start™Å˜Ë�Ì˜Ë Ì˜ËÏ̘ËRÌÙ¿ÌGÊüË¿ÌGÊü”çÙ¿ÌXÊüË¿ÌXÊü”çÙ¿ÌBÊüËçŽàŠ Title Left™Å˜Ë‡Ì˜ËAÌÙ¿ÌKÊüË¿ÌKÊü”çÙ¿ÌWÊüË¿ÌWÊü”çÙ¿ÌBÊüËçŽàŠ Title Right™Å˜Ë†Ì˜ËDÌÙ¿ÌKÊüË¿ÌKÊü”çÙ¿ÌWÊüË¿ÌWÊü”çÙ¿ÌBÊüËçŽà+Š Run Restart™Å˜ËRÌÙ¿ÌHÊüË¿ÌHÊü”çÙ¿ÌBÊüËçŽà+Š Run Pause™Å˜Ë€ÌÙ¿ÌÊüËçØú¿ÌJÊúËçÙ¿ÌXÊüË¿ÌXÊü”çÙ¿ÌBÊüËçŽà!Š Results Again™Å˜Ë�Ì˜Ë Ì˜ËÏ̘ËRÌÙ¿ÌHÊüË¿ÌHÊü”çÙ¿ÌXÊüË¿ÌXÊü”çÙ¿ÌBÊüËçŽà!Š Results Menu™Å˜Ë€ÌÙ¿ÌÊüËçØú¿ÌJÊúËçÙ¿ÌXÊüË¿ÌXÊü”çÙ¿ÌBÊüËçŽà$ŠPause Up™Å˜Ë‰Ì˜ËWÌÙ¿ÌÊüË¿ÌÊü”çÙ¿ÌWÊüË¿ÌWÊü”çÙ¿ÌBÊüËçŽà$Š Pause Down™Å˜ËˆÌ˜ËSÌÙ¿ÌÊüË¿ÌÊü”çÙ¿ÌWÊüË¿ÌWÊü”çÙ¿ÌBÊüËçŽà$Š Pause Left™Å˜Ë‡Ì˜ËAÌ÷®¿ÌCÊ®ËçÙ¿ÌBÊüËçŽà$Š Pause Right™Å˜Ë†Ì˜ËDÌ÷®¿ÌDÊ®ËçÙ¿ÌBÊüËçŽà$Š Pause Select™Å˜Ë�Ì˜Ë Ì˜ËÏÌ÷®¿ÌBÊ®ËçÙ¿ÌBÊüËçŽà$Š Pause Back™Å˜Ë€Ì˜ËƒÌ÷®¿ÌEÊ®ËçÙ¿ÌBÊüËçÄì CpCî ‘D TitleOverlay¤åæçèéêëìñòArtboard Style High Scores C�A Table Title†™î?Table Title Text‰’€A—Style/@0Outline%�8øÿColorFill%ÿÿÿÿColor�¡ôÐ�» aDWeight�¡èè‘» úBWidth‡�Œ HIGH SCORESRunœÖ× High scoresÚÜ€ Semantics†™î? @@Table Title Shadow‰’€A—Style/@0Outline%ÿColorFill%ÿColor�¡ôÐ�» aDWeight�¡èè‘» úBWidth‡�Œ HIGH SCORESRunRows �B(BRank 1†™î€? Rank 1 Text‰’AòA—Style/@0Outline%ÿColorFill%�8øÿColor‡�Œ1.Run†™î€? €?€? Rank 1 Shadow‰’AòA—Style /@0Outline!%ÿColor"Fill!%ÿColor$‡�!Œ1.Run  ¤B(BName 1† Name 1 Text'‰’AòA—Style(/@0Outline)%ÿColor*Fill)%0ÐøÿColor,‡�)ŒAVARun(¿ÌÊŒ† €?€? Name 1 Shadow'‰’AòA—Style//@0Outline0%ÿColor1Fill0%ÿColor3‡�0ŒAVARun/¿ÌÊŒ XC(BPts 1†™î€? Pts 1 Text6‰’AòA—Style7/@0Outline8%ÿColor9Fill8%0ÐøÿColor;‡�8Œ45,000Run7¿ÌÊŒ†™î€? €?€? Pts 1 Shadow6‰’AòA—Style>/@0Outline?%ÿColor@Fill?%ÿColorB‡�?Œ45,000Run>¿ÌÊŒ dC(BGrade 1† Grade 1 TextE‰’AòA—StyleF/@0OutlineG%ÿColorHFillG%0ø¨ÿColorJ‡�GŒSRunF¿ÌÊŒ† €?€?Grade 1 ShadowE‰’AòA—StyleM/@0OutlineN%ÿColorOFillN%ÿColorQ‡�NŒSRunM¿ÌÊŒ tC(BLine 1† Line 1 TextT‰’AòA—StyleU/@0OutlineV%ÿColorWFillV%øØ0ÿColorY‡�VŒHRunU¿ÌÊŒ† €?€? Line 1 ShadowT‰’AòA—Style\/@0Outline]%ÿColor^Fill]%ÿColor`‡�]ŒHRun\¿ÌÊŒ �BTBRank 2†™î€? Rank 2 Textc‰’AòA—Styled/@0Outlinee%ÿColorfFille%�8øÿColorh‡�eŒ2.Rund†™î€? €?€? Rank 2 Shadowc‰’AòA—Stylek/@0Outlinel%ÿColormFilll%ÿColoro‡�lŒ2.Runk ¤BTBName 2† Name 2 Textr‰’AòA—Styles/@0Outlinet%ÿColoruFillt%ÿÿÿÿColorw‡�tŒAVARuns¿ÌÊŒ† €?€? Name 2 Shadowr‰’AòA—Stylez/@0Outline{%ÿColor|Fill{%ÿColor~‡�{ŒAVARunz¿ÌÊŒ XCTBPts 2†™î€? Pts 2 Text�‰’AòA—Style‚/@0Outlineƒ%ÿColor„Fillƒ%ÿÿÿÿColor†‡�ƒŒ45,000Run‚¿ÌÊŒ†™î€? €?€? Pts 2 Shadow�‰’AòA—Style‰/@0OutlineŠ%ÿColor‹FillŠ%ÿColor�‡�ŠŒ45,000Run‰¿ÌÊŒ dCTBGrade 2† Grade 2 Text�‰’AòA—Style‘/@0Outline’%ÿColor“Fill’%0ø¨ÿColor•‡�’ŒSRun‘¿ÌÊŒ† €?€?Grade 2 Shadow�‰’AòA—Style˜/@0Outline™%ÿColoršFill™%ÿColorœ‡�™ŒSRun˜¿ÌÊŒ tCTBLine 2† Line 2 TextŸ‰’AòA—Style /@0Outline¡%ÿColor¢Fill¡%øØ0ÿColor¤‡�¡ŒHRun ¿Ì ÊŒ† €?€? Line 2 ShadowŸ‰’AòA—Style§/@0Outline¨%ÿColor©Fill¨%ÿColor«‡�¨ŒHRun§¿Ì ÊŒ �B€BRank 3†™î€? Rank 3 Text®‰’AòA—Style¯/@0Outline°%ÿColor±Fill°%�8øÿColor³‡�°Œ3.Run¯†™î€? €?€? Rank 3 Shadow®‰’AòA—Style¶/@0Outline·%ÿColor¸Fill·%ÿColorº‡�·Œ3.Run¶ ¤B€BName 3† Name 3 Text½‰’AòA—Style¾/@0Outline¿%ÿColorÀFill¿%ÿÿÿÿColor‡�¿ŒAVARun¾¿Ì!ÊŒ† €?€? Name 3 Shadow½‰’AòA—StyleÅ/@0OutlineÆ%ÿColorÇFillÆ%ÿColorɇ�ÆŒAVARunÅ¿Ì!ÊŒ XC€BPts 3†™î€? Pts 3 Text̉’AòA—StyleÍ/@0OutlineÎ%ÿColorÏFillÎ%ÿÿÿÿColorч�ÎŒ45,000RunÍ¿Ì"ÊŒ†™î€? €?€? Pts 3 Shadow̉’AòA—StyleÔ/@0OutlineÕ%ÿColorÖFillÕ%ÿColor؇�ÕŒ45,000RunÔ¿Ì"ÊŒ dC€BGrade 3† Grade 3 TextÛ‰’AòA—StyleÜ/@0OutlineÝ%ÿColorÞFillÝ%0ø¨ÿColorà‡�ÝŒSRunÜ¿Ì#ÊŒ† €?€?Grade 3 ShadowÛ‰’AòA—Styleã/@0Outlineä%ÿColoråFillä%ÿColorç‡�äŒSRunã¿Ì#ÊŒ tC€BLine 3† Line 3 TextꉒAòA—Styleë/@0Outlineì%ÿColoríFillì%øØ0ÿColorï‡�ìŒHRunë¿Ì$ÊŒ† €?€? Line 3 ShadowꉒAòA—Styleò/@0Outlineó%ÿColorôFilló%ÿColorö‡�óŒHRunò¿Ì$ÊŒ �B–BRank 4†™î€? Rank 4 Textù‰’AòA—Styleú/@0Outlineû%ÿColorüFillû%�8øÿColorþ‡�ûŒ4.Runú†™î€? €?€? Rank 4 Shadowù‰’AòA—Style�/@0Outline‚%ÿColorƒFill‚%ÿColor…‡�‚Œ4.Run� ¤B–BName 4† Name 4 Textˆ‰’AòA—Style‰/@0OutlineŠ%ÿColor‹FillŠ%àÐÈÿColor�‡�ŠŒAVARun‰¿Ì%ÊŒ† €?€? Name 4 Shadowˆ‰’AòA—Style�/@0Outline‘%ÿColor’Fill‘%ÿColor”‡�‘ŒAVARun�¿Ì%ÊŒ XC–BPts 4†™î€? Pts 4 Text—‰’AòA—Style˜/@0Outline™%ÿColoršFill™%àÐÈÿColorœ‡�™Œ45,000Run˜¿Ì&ÊŒ†™î€? €?€? Pts 4 Shadow—‰’AòA—StyleŸ/@0Outline %ÿColor¡Fill %ÿColor£‡� Œ45,000RunŸ¿Ì&ÊŒ dC–BGrade 4† Grade 4 Text¦‰’AòA—Style§/@0Outline¨%ÿColor©Fill¨%0ø¨ÿColor«‡�¨ŒSRun§¿Ì'ÊŒ† €?€?Grade 4 Shadow¦‰’AòA—Style®/@0Outline¯%ÿColor°Fill¯%ÿColor²‡�¯ŒSRun®¿Ì'ÊŒ tC–BLine 4† Line 4 Textµ‰’AòA—Style¶/@0Outline·%ÿColor¸Fill·%øØ0ÿColorº‡�·ŒHRun¶¿Ì(ÊŒ† €?€? Line 4 Shadowµ‰’AòA—Style½/@0Outline¾%ÿColor¿Fill¾%ÿColorÁ‡�¾ŒHRun½¿Ì(ÊŒ �B¬BRank 5†™î€? Rank 5 Textĉ’AòA—StyleÅ/@0OutlineÆ%ÿColorÇFillÆ%�8øÿColorɇ�ÆŒ5.Runņ™î€? €?€? Rank 5 Shadowĉ’AòA—StyleÌ/@0OutlineÍ%ÿColorÎFillÍ%ÿColorЇ�ÍŒ5.RunÌ ¤B¬BName 5† Name 5 TextÓ‰’AòA—StyleÔ/@0OutlineÕ%ÿColorÖFillÕ%àÐÈÿColor؇�ÕŒAVARunÔ¿Ì)ÊŒ† €?€? Name 5 ShadowÓ‰’AòA—StyleÛ/@0OutlineÜ%ÿColorÝFillÜ%ÿColor߇�ÜŒAVARunÛ¿Ì)ÊŒ XC¬BPts 5†™î€? Pts 5 Text≒AòA—Styleã/@0Outlineä%ÿColoråFillä%àÐÈÿColorç‡�äŒ45,000Runã¿Ì*ÊŒ†™î€? €?€? Pts 5 Shadow≒AòA—Styleê/@0Outlineë%ÿColorìFillë%ÿColorî‡�ëŒ45,000Runê¿Ì*ÊŒ dC¬BGrade 5† Grade 5 Textñ‰’AòA—Styleò/@0Outlineó%ÿColorôFilló%0ø¨ÿColorö‡�óŒSRunò¿Ì+ÊŒ† €?€?Grade 5 Shadowñ‰’AòA—Styleù/@0Outlineú%ÿColorûFillú%ÿColorý‡�úŒSRunù¿Ì+ÊŒ tC¬BLine 5† Line 5 Text€‰’AòA—Style�/@0Outline‚%ÿColorƒFill‚%øØ0ÿColor…‡�‚ŒHRun�¿Ì,ÊŒ† €?€? Line 5 Shadow€‰’AòA—Styleˆ/@0Outline‰%ÿColorŠFill‰%ÿColorŒ‡�‰ŒHRunˆ¿Ì,ÊŒ �BÂBRank 6†™î€? Rank 6 Text�‰’AòA—Style�/@0Outline‘%ÿColor’Fill‘%�8øÿColor”‡�‘Œ6.Run�†™î€? €?€? Rank 6 Shadow�‰’AòA—Style—/@0Outline˜%ÿColor™Fill˜%ÿColor›‡�˜Œ6.Run— ¤BÂBName 6† Name 6 Textž‰’AòA—StyleŸ/@0Outline %ÿColor¡Fill %àÐÈÿColor£‡� ŒAVARunŸ¿Ì-ÊŒ† €?€? Name 6 Shadowž‰’AòA—Style¦/@0Outline§%ÿColor¨Fill§%ÿColorª‡�§ŒAVARun¦¿Ì-ÊŒ XCÂBPts 6†™î€? Pts 6 Text­‰’AòA—Style®/@0Outline¯%ÿColor°Fill¯%àÐÈÿColor²‡�¯Œ45,000Run®¿Ì.ÊŒ†™î€? €?€? Pts 6 Shadow­‰’AòA—Styleµ/@0Outline¶%ÿColor·Fill¶%ÿColor¹‡�¶Œ45,000Runµ¿Ì.ÊŒ dCÂBGrade 6† Grade 6 Text¼‰’AòA—Style½/@0Outline¾%ÿColor¿Fill¾%0ø¨ÿColorÁ‡�¾ŒSRun½¿Ì/ÊŒ† €?€?Grade 6 Shadow¼‰’AòA—StyleÄ/@0OutlineÅ%ÿColorÆFillÅ%ÿColorȇ�ÅŒSRunÄ¿Ì/ÊŒ tCÂBLine 6† Line 6 Textˉ’AòA—StyleÌ/@0OutlineÍ%ÿColorÎFillÍ%øØ0ÿColorЇ�ÍŒHRunÌ¿Ì0ÊŒ† €?€? Line 6 Shadowˉ’AòA—StyleÓ/@0OutlineÔ%ÿColorÕFillÔ%ÿColorׇ�ÔŒHRunÓ¿Ì0ÊŒ �BØBRank 7†™î€? Rank 7 TextÚ‰’AòA—StyleÛ/@0OutlineÜ%ÿColorÝFillÜ%�8øÿColor߇�ÜŒ7.RunÛ†™î€? €?€? Rank 7 ShadowÚ‰’AòA—Styleâ/@0Outlineã%ÿColoräFillã%ÿColoræ‡�ãŒ7.Runâ ¤BØBName 7† Name 7 Text鉒AòA—Styleê/@0Outlineë%ÿColorìFillë%àÐÈÿColorî‡�ëŒAVARunê¿Ì1ÊŒ† €?€? Name 7 Shadow鉒AòA—Styleñ/@0Outlineò%ÿColoróFillò%ÿColorõ‡�òŒAVARunñ¿Ì1ÊŒ XCØBPts 7†™î€? Pts 7 Textø‰’AòA—Styleù/@0Outlineú%ÿColorûFillú%àÐÈÿColorý‡�úŒ45,000Runù¿Ì2ÊŒ†™î€? €?€? Pts 7 Shadowø‰’AòA—Style€/@0Outline�%ÿColor‚Fill�%ÿColor„‡��Œ45,000Run€¿Ì2ÊŒ dCØBGrade 7† Grade 7 Text‡‰’AòA—Styleˆ/@0Outline‰%ÿColorŠFill‰%0ø¨ÿColorŒ‡�‰ŒSRunˆ¿Ì3ÊŒ† €?€?Grade 7 Shadow‡‰’AòA—Style�/@0Outline�%ÿColor‘Fill�%ÿColor“‡��ŒSRun�¿Ì3ÊŒ tCØBLine 7† Line 7 Text–‰’AòA—Style—/@0Outline˜%ÿColor™Fill˜%øØ0ÿColor›‡�˜ŒHRun—¿Ì4ÊŒ† €?€? Line 7 Shadow–‰’AòA—Stylež/@0OutlineŸ%ÿColor FillŸ%ÿColor¢‡�ŸŒHRunž¿Ì4ÊŒ �BîBRank 8†™î€? Rank 8 Text¥‰’AòA—Style¦/@0Outline§%ÿColor¨Fill§%�8øÿColorª‡�§Œ8.Run¦†™î€? €?€? Rank 8 Shadow¥‰’AòA—Style­/@0Outline®%ÿColor¯Fill®%ÿColor±‡�®Œ8.Run­ ¤BîBName 8† Name 8 Text´‰’AòA—Styleµ/@0Outline¶%ÿColor·Fill¶%àÐÈÿColor¹‡�¶ŒAVARunµ¿Ì5ÊŒ† €?€? Name 8 Shadow´‰’AòA—Style¼/@0Outline½%ÿColor¾Fill½%ÿColorÀ‡�½ŒAVARun¼¿Ì5ÊŒ XCîBPts 8†™î€? Pts 8 TextÉ’AòA—StyleÄ/@0OutlineÅ%ÿColorÆFillÅ%àÐÈÿColorȇ�ÅŒ45,000RunÄ¿Ì6ÊŒ†™î€? €?€? Pts 8 ShadowÉ’AòA—StyleË/@0OutlineÌ%ÿColorÍFillÌ%ÿColorχ�ÌŒ45,000RunË¿Ì6ÊŒ dCîBGrade 8† Grade 8 TextÒ‰’AòA—StyleÓ/@0OutlineÔ%ÿColorÕFillÔ%0ø¨ÿColorׇ�ÔŒSRunÓ¿Ì7ÊŒ† €?€?Grade 8 ShadowÒ‰’AòA—StyleÚ/@0OutlineÛ%ÿColorÜFillÛ%ÿColorÞ‡�ÛŒSRunÚ¿Ì7ÊŒ tCîBLine 8† Line 8 TextቒAòA—Styleâ/@0Outlineã%ÿColoräFillã%øØ0ÿColoræ‡�ãŒHRunâ¿Ì8ÊŒ† €?€? Line 8 ShadowቒAòA—Styleé/@0Outlineê%ÿColorëFillê%ÿColorí‡�êŒHRuné¿Ì8ÊŒ �BCRank 9†™î€? Rank 9 Textð‰’AòA—Styleñ/@0Outlineò%ÿColoróFillò%�8øÿColorõ‡�òŒ9.Runñ†™î€? €?€? Rank 9 Shadowð‰’AòA—Styleø/@0Outlineù%ÿColorúFillù%ÿColorü‡�ùŒ9.Runø ¤BCName 9† Name 9 Textÿ‰’AòA—Style€/@0Outline�%ÿColor‚Fill�%àÐÈÿColor„‡��ŒAVARun€¿Ì9ÊŒ† €?€? Name 9 Shadowÿ‰’AòA—Style‡/@0Outlineˆ%ÿColor‰Fillˆ%ÿColor‹‡�ˆŒAVARun‡¿Ì9ÊŒ XCCPts 9†™î€? Pts 9 Textމ’AòA—Style�/@0Outline�%ÿColor‘Fill�%àÐÈÿColor“‡��Œ45,000Run�¿Ì:ÊŒ†™î€? €?€? Pts 9 Shadowމ’AòA—Style–/@0Outline—%ÿColor˜Fill—%ÿColorš‡�—Œ45,000Run–¿Ì:ÊŒ dCCGrade 9† Grade 9 Text�‰’AòA—Stylež/@0OutlineŸ%ÿColor FillŸ%0ø¨ÿColor¢‡�ŸŒSRunž¿Ì;ÊŒ† €?€?Grade 9 Shadow�‰’AòA—Style¥/@0Outline¦%ÿColor§Fill¦%ÿColor©‡�¦ŒSRun¥¿Ì;ÊŒ tCCLine 9† Line 9 Text¬‰’AòA—Style­/@0Outline®%ÿColor¯Fill®%øØ0ÿColor±‡�®ŒHRun­¿Ì<ÊŒ† €?€? Line 9 Shadow¬‰’AòA—Style´/@0Outlineµ%ÿColor¶Fillµ%ÿColor¸‡�µŒHRun´¿Ì<ÊŒ �B CRank 10†™î€? Rank 10 Text»‰’AòA—Style¼/@0Outline½%ÿColor¾Fill½%�8øÿColorÀ‡�½Œ10Run¼†™î€? €?€?Rank 10 Shadow»‰’AòA—StyleÃ/@0OutlineÄ%ÿColorÅFillÄ%ÿColorLJ�ÄŒ10Runà ¤B CName 10† Name 10 Textʉ’AòA—StyleË/@0OutlineÌ%ÿColorÍFillÌ%àÐÈÿColorχ�ÌŒAVARunË¿Ì=ÊŒ† €?€?Name 10 Shadowʉ’AòA—StyleÒ/@0OutlineÓ%ÿColorÔFillÓ%ÿColorÖ‡�ÓŒAVARunÒ¿Ì=ÊŒ XC CPts 10†™î€? Pts 10 TextÙ‰’AòA—StyleÚ/@0OutlineÛ%ÿColorÜFillÛ%àÐÈÿColorÞ‡�ÛŒ45,000RunÚ¿Ì>ÊŒ†™î€? €?€? Pts 10 ShadowÙ‰’AòA—Styleá/@0Outlineâ%ÿColorãFillâ%ÿColorå‡�âŒ45,000Runá¿Ì>ÊŒ dC CGrade 10† Grade 10 Text艒AòA—Styleé/@0Outlineê%ÿColorëFillê%0ø¨ÿColorí‡�êŒSRuné¿Ì?ÊŒ† €?€?Grade 10 Shadow艒AòA—Styleð/@0Outlineñ%ÿColoròFillñ%ÿColorô‡�ñŒSRunð¿Ì?ÊŒ tC CLine 10† Line 10 Text÷‰’AòA—Styleø/@0Outlineù%ÿColorúFillù%øØ0ÿColorü‡�ùŒHRunø¿Ì@ÊŒ† €?€?Line 10 Shadow÷‰’AòA—Styleÿ/@0Outline€%ÿColor�Fill€%ÿColorƒ‡�€ŒHRunÿ¿Ì@ÊŒ Table Plate Path†€BB‡ˆCB‡„CC‡`BC‡/@0Stroke†%�8øÿColorŒFill†%H ÈColorŽ CC Press Start Press Beat�Press Start Text‘†™î?ï?Press Start Text Text’‰’€Aò€A—Style“/@0Outline”%ÿColor•Fill”%ÿÿÿÿColor—‡�”Œ PRESS STARTRun“œÖ× Press startÛ  Semantics“�Focus“†™î?ï? @@Press Start Text Shadow’‰’€Aò€A—Styleœ/@0Outline�%ÿColoržFill�%ÿColor ‡��Œ PRESS STARTRunœ C@C Scheme Picker €Â Scheme Left£†™î?ï?Scheme Left Text¤‰’AòA—Style¥/@0Outline¦%ÿColor§Fill¦%�8øÿColor©‡�¦Œ<Run¥†™î?ï? €?€?Scheme Left Shadow¤‰’AòA—Style¬/@0Outline­%ÿColor®Fill­%ÿColor°‡�­Œ<Run¬ Scheme Name£†™î?ï?Scheme Name Text³‰’AòA—Style´/@0Outlineµ%ÿColor¶Fillµ%ÿÿÿÿColor¸‡�µŒHOT PINKRun´¿ÌÊŒœÖ Semantics´¿ÌÊ׆™î?ï? €?€?Scheme Name Shadow³‰’AòA—Style¼/@0Outline½%ÿColor¾Fill½%ÿColorÀ‡�½ŒHOT PINKRun¼¿ÌÊŒ €B Scheme Right£†™î?ï?Scheme Right TextÉ’AòA—StyleÄ/@0OutlineÅ%ÿColorÆFillÅ%�8øÿColorȇ�ÅŒ>RunĆ™î?ï? €?€?Scheme Right ShadowÉ’AòA—StyleË/@0OutlineÌ%ÿColorÍFillÌ%ÿColorχ�ÌŒ>RunË@Á Scheme Label£†™î?ï?Scheme Label TextÒ‰’AòA—StyleÓ/@0OutlineÔ%ÿColorÕFillÔ%øØ0ÿColorׇ�ÔŒBOARDRunÓ†™î?ï? €?€?Scheme Label ShadowÒ‰’AòA—StyleÚ/@0OutlineÛ%ÿColorÜFillÛ%ÿColorÞ‡�ÛŒBOARDRunÚ“¨âSwatches£Swatch 0áSwatch Aâ PathãÈÁAä@@AäPAäàÁPAä0Strokeã%ÿColoréFillã%�8øÿColorëSwatch Bâ Pathí@@AîøAAîàAPAîPAî0Strokeí%ÿColoróFillí%øØ0ÿColorõSwatch 1áSwatch A÷ PathøÈÁAù@@AùPAùàÁPAù0Strokeø%ÿColorþFillø%0ø¨ÿColor€Swatch B÷ Path‚@@AƒøAAƒàAPAƒPAƒ0Stroke‚%ÿColorˆFill‚%ÿColorŠSwatch 2áSwatch AŒ Path�ÈÁAŽ@@AŽPAŽàÁPAŽ0Stroke�%ÿColor“Fill�%ˆøÿColor•Swatch BŒ Path—@@A˜øAA˜àAPA˜PA˜0Stroke—%ÿColor�Fill—%0ÐøÿColorŸ CbCCredits†™î? Credits Text¡‰’AòA—Style¢/@0Outline£%ÿColor¤Fill£%° ˜ÿColor¦‡�£Œ(C) 1998 AVALANCHE AIR TEAMRun¢†™î? €?€?Credits Shadow¡‰’AòA—Style©/@0Outlineª%ÿColor«Fillª%ÿColor­‡�ªŒ(C) 1998 AVALANCHE AIR TEAMRun© CBLogo hBÀALogo Air°†™î? Logo Air Text±‰’0B—Style²/€@0Outline³%�8øÿColor´Fill³!ÍÌŒA#×£HBChrome¶Stop·&ÿØœÿ'š™™>Stop·&Àh8ÿ'�Âõ>Stop·&8ÿ'¸?Stop·&(PŒÿ')\?Stop·&pÀøÿ'®G?Stop·&Øôÿÿ'€?Stop·�¡ôÐ�» aDWeight³�¡èè‘» úBWidth³‡�³ŒAIRRun²†™î? @@@@Logo Air Shadow±‰’0B—StyleÂ/€@0OutlineÃ%ÿColorÄFillÃ%ÿColorÆ�¡ôÐ�» aDWeightÃ�¡èè‘» úBWidthÇ�ÃŒAIRRunÂLogo Avalanche°†™î?Logo Avalanche Textˉ’ðA—StyleÌ/@@0OutlineÍ%�8øÿColorÎFillÍ!@A#ÍÌBChromeÐStopÑ&ÿØœÿ'š™™>StopÑ&Àh8ÿ'�Âõ>StopÑ&8ÿ'¸?StopÑ&(PŒÿ')\?StopÑ&pÀøÿ'®G?StopÑ&Øôÿÿ'€?StopÑ�¡ôÐ�» aDWeightÍ�¡èè‘» úBWidth͇�ÍŒ AVALANCHERunÌœÖ× Avalanche AirÚ Semantics̆™î? @@@@Logo Avalanche Shadowˉ’ðA—StyleÝ/@@0OutlineÞ%ÿColorßFillÞ%ÿColorá�¡ôÐ�» aDWeightÞ�¡èè‘» úBWidthÞ‡�ÞŒ AVALANCHERunÝ @A¤B Strapline°†™î?Strapline Text扒AòA—Styleç/@0Outlineè%ÿColoréFillè%øØ0ÿColorë‡�èŒEXTREME TRICK ATTACKRun熙î? €?€?Strapline Shadow扒AòA—Styleî/@0Outlineï%ÿColorðFillï%ÿColorò‡�ïŒEXTREME TRICK ATTACKRunî? ×#>@€?Aš™™>9;7Scheme 03á5¨2zâ9;7Scheme 13á5¨2z÷9;7Scheme 23á5¨2zŒ;7Blink3�5F€?C(C<9;7 Beat Still3‘5F€?5F€?9 7 Beat Pulse3‘5F)\�?DEõF€?C 5F)\�?DEõF€?C 9° ;7 Table Cycle3°5F€?F€?DCÈCÔDC¤ F€?C° 35DCÈF€?CÔF€?DC¤ C° 3Ü5ìTTµCÔTC° 3 5ìTµTCÔTµC° 57Title9ŠScheme>A—âÙ¿ÌKÊüßäA—âÙ¿ÌKÊüß䌀?A—âÙ¿ÌKÊüßäŒ@@?A—=•=•=•9ŠBlink>@?A—=•9ŠBeat>@?A—=•A—â÷¿ÌAÊ®”ßùâØ¿ÌPÊúßá=•A—˜  d9Š Table Cycle>@?A—=•Äì CpCî ÒD HudOverlay¤åæçèéêëìñòArtboard Style Perfect Flash Flash Top CÀ@{|PathFill%ÿÿÿÿColorjC Flash Bottom CÀ@{|PathFill%ÿÿÿÿColor À@ Flash LeftÀ@dC{|Path Fill %ÿÿÿÿColor  �CÀ@ Flash RightÀ@dC{|PathFill%ÿÿÿÿColor CxBPerfect†™î?ï? Perfect Text‰—Style/@0Outline%ÿColorFill%øØ0ÿColor�¡ôÐ�» aDWeight�¡èè‘» úBWidth‡�ŒPERFECT!RunœÖ×Perfect landingÜ€ Semantics†™î?ï? €?€?Perfect Shadow‰—Style/@0Outline%ÿColor Fill%ÿColor"�¡ôÐ�» aDWeight�¡èè‘» úBWidth‡�ŒPERFECT!Run C¸BCount 3†™î?ï? Count 3 Text'‰’ B—Style(/€@0Outline)%�8øÿColor*Fill)!B#ff¶BChrome,Stop-&ÿØœÿ'š™™>Stop-&Àh8ÿ'�Âõ>Stop-&8ÿ'¸?Stop-&(PŒÿ')\?Stop-&pÀøÿ'®G?Stop-&Øôÿÿ'€?Stop-�¡ôÐ�» aDWeight)�¡èè‘» úBWidth)‡�)Œ3Run(œÖ×3Ü€ Semantics(†™î?ï? @@@@Count 3 Shadow'‰’ B—Style9/€@0Outline:%ÿColor;Fill:%ÿColor=�¡ôÐ�» aDWeight:�¡èè‘» úBWidth:‡�:Œ3Run9 C¸BCount 2†™î?ï? Count 2 TextB‰’ B—StyleC/€@0OutlineD%�8øÿColorEFillD!B#ff¶BChromeGStopH&ÿØœÿ'š™™>StopH&Àh8ÿ'�Âõ>StopH&8ÿ'¸?StopH&(PŒÿ')\?StopH&pÀøÿ'®G?StopH&Øôÿÿ'€?StopH�¡ôÐ�» aDWeightD�¡èè‘» úBWidthD‡�DŒ2RunCœÖ×2Ü€ SemanticsC†™î?ï? @@@@Count 2 ShadowB‰’ B—StyleT/€@0OutlineU%ÿColorVFillU%ÿColorX�¡ôÐ�» aDWeightU�¡èè‘» úBWidthU‡�UŒ2RunT C¸BCount 1†™î?ï? Count 1 Text]‰’ B—Style^/€@0Outline_%�8øÿColor`Fill_!B#ff¶BChromebStopc&ÿØœÿ'š™™>Stopc&Àh8ÿ'�Âõ>Stopc&8ÿ'¸?Stopc&(PŒÿ')\?Stopc&pÀøÿ'®G?Stopc&Øôÿÿ'€?Stopc�¡ôÐ�» aDWeight_�¡èè‘» úBWidth_‡�_Œ1Run^œÖ×1Ü€ Semantics^†™î?ï? @@@@Count 1 Shadow]‰’ B—Styleo/€@0Outlinep%ÿColorqFillp%ÿColors�¡ôÐ�» aDWeightp�¡èè‘» úBWidthp‡�pŒ1Runo C¸B Count GO!†™î?ï?Count GO! Textx‰’€B—Styley/€@0Outlinez%ÿColor{Fillz!ÍÌÌA#…ë‘BChrome}Stop~&˜ÿàÿ'š™™>Stop~&Àxÿ'�Âõ>Stop~&8 ÿ'¸?Stop~&€Pÿ')\?Stop~&@ð¸ÿ'®G?Stop~&Øÿôÿ'€?Stop~�¡ôÐ�» aDWeightz�¡èè‘» úBWidthz‡�zŒGO!RunyœÖ×GoÜ€ Semanticsy†™î?ï? @@@@Count GO! Shadowx‰’€B—StyleŠ/€@0Outline‹%ÿColorŒFill‹%ÿColorŽ�¡ôÐ�» aDWeight‹�¡èè‘» úBWidth‹‡�‹ŒGO!RunŠ C¸B Count READY†™î?ï?Count READY Text“‰’0B—Style”/€@0Outline•%�8øÿColor–Fill•!ÍÌŒA#×£HBChrome˜Stop™&ÿØœÿ'š™™>Stop™&Àh8ÿ'�Âõ>Stop™&8ÿ'¸?Stop™&(PŒÿ')\?Stop™&pÀøÿ'®G?Stop™&Øôÿÿ'€?Stop™�¡ôÐ�» aDWeight•�¡èè‘» úBWidth•‡�•ŒREADYRun”œÖ×ReadyÜ€ Semantics”†™î?ï? @@@@Count READY Shadow“‰’0B—Style¥/€@0Outline¦%ÿColor§Fill¦%ÿColor©�¡ôÐ�» aDWeight¦�¡èè‘» úBWidth¦‡�¦ŒREADYRun¥Targets CC Targets Label®†™î?Targets Label Text¯‰’AòA—Style°/@0Outline±%ÿColor²Fill±%øØ0ÿColor´‡�±Œ GRADE TARGETSRun°†™î? €?€?Targets Label Shadow¯‰’AòA—Style·/@0Outline¸%ÿColor¹Fill¸%ÿColor»‡�¸Œ GRADE TARGETSRun· C&C Targets Line®†™î?Targets Line Text¾‰’AòA—Style¿/@0OutlineÀ%ÿColorÁFillÀ%ÿÿÿÿColorÇ�ÀŒS 50,000 A 35,000 B 20,000Run¿œÖ×+Grade targets: S 50,000, A 35,000, B 20,000Ü€ Semantics¿†™î? €?€?Targets Line Shadow¾‰’AòA—StyleÇ/@0OutlineÈ%ÿColorÉFillÈ%ÿColorˇ�ÈŒS 50,000 A 35,000 B 20,000RunÇC Targets Plate® PathÎ(BÏ�CÏŒCÀAÏBÀAÏ0StrokeÎ%øØ0ÿColorÔFillÎ%H ÈColorÖ C¨BBanner Banner SlamØ Trick NameÙ†™œŸ�˜Cž33³Aî?ï?­Trick Name TextÚ‰’€A—StyleÛ/@0OutlineÜ%�8øÿColorÝFillÜ%ÿÿÿÿColorß�¡ôÐ�» aDWeightÜ�¡èè‘» úBWidth܇�ÜŒBACKSIDE 720 INDYRunÛ¿Ì ÊŒœÖÜ€ SemanticsÛ¿Ì Ê׆™œŸ�˜Cž33³Aî?ï?­ @@Trick Name ShadowÚ‰’€A—Styleå/@0Outlineæ%ÿColorçFillæ%ÿColoré�¡ôÐ�» aDWeightæ�¡èè‘» úBWidthæ‡�æŒBACKSIDE 720 INDYRunå¿Ì ÊŒ@A Trick PointsÙ†™î?Trick Points TextAòA—Styleï/@0Outlineð%ÿColorñFillð%0ÐøÿColoró‡�ðŒ+1,050Runï¿ÌÊŒ†™î? €?€?Trick Points ShadowAòA—Styleö/@0Outline÷%ÿColorøFill÷%ÿColorú‡�÷Œ+1,050Runö¿ÌÊŒ CèBPraise Praise Wordý†™î?ï?Praise Word Textþ‰’°A—Styleÿ/@@0Outline€%ˆøÿColor�Fill€%0ø¨ÿColorƒ�¡ôÐ�» aDWeight€�¡èè‘» úBWidth€‡�€ŒSICK!Runÿ¿ÌÊŒœÖÜ€ Semanticsÿ¿ÌÊ׆™î?ï? @@Praise Word Shadowþ‰’°A—Style‰/@@0OutlineŠ%ÿColor‹FillŠ%ÿColor��¡ôÐ�» aDWeightŠ�¡èè‘» úBWidthЇ�ŠŒSICK!Run‰¿ÌÊŒ CC Combo Sum†™î?Combo Sum Text’‰’AòA—Style“/@0Outline”%ÿColor•Fill”%ÿÿÿÿColor—‡�”Œ 2,450 x 3Run“¿ÌÊŒœÖÜ€ Semantics“¿ÌÊ׆™î? €?€?Combo Sum Shadow’‰’AòA—Style›/@0Outlineœ%ÿColor�Fillœ%ÿColorŸ‡�œŒ 2,450 x 3Run›¿ÌÊŒBalance¿ÌÊ ¿ÌÊNeedle¢¿ÌÊ ”@ APath£Stroke£%ÿC¥Fill£%ÿÿÿÿC§Safe¢ðA€@Path©Fill©%0ø¨ÿColor« ÀÁ Danger Left¢A€@{Path­Fill­%(øÿColor¯ ÀA Danger Right¢A€@{€?Path±Fill±%(øÿColor³Bar¢@BÀ@Pathµ0Strokeµ%ÿÿÿÿColor·Fillµ%ÿColor¹À@ Balance Label¢†™î?Balance Label Text»‰’AòA—Style¼/@0Outline½%ÿColor¾Fill½%ˆøÿColorÀ‡�½ŒBALANCERun¼œÖ×BalanceÜ€ Semantics¼¿ÌÊØ”†™î? €?€?Balance Label Shadow»‰’AòA—StyleÄ/@0OutlineÅ%ÿColorÆFillÅ%ÿColorȇ�ÅŒBALANCERunÄPop¿ÌÊ ¿ÌÊ ¸Á0ÂPop FillË€@{PathÌ¿ÌDÊ”FillÌ%ˆøÿCÎ0ÂPop BarË@BÀ@PathÐ0StrokeÐ%ÿÿÿÿColorÒFillÐ%ÿColorÔh Pop Labelˆ™î?Pop Label TextÖ‰’AòA—Style×/@0OutlineØ%ÿColorÙFillØ%ˆøÿColorÛ‡�ØŒPOPRunלÖ× Ollie chargeÜ€ Semantics׿ÌDÊØ”†™î? €?€?Pop Label ShadowÖ‰’AòA—Styleß/@0Outlineà%ÿColoráFillà%ÿColorã‡�àŒPOPRunßScore AA Score Labelæ†Score Label Text牒AòA—Styleè/@0Outlineé%ÿColorêFillé%øØ0ÿColorì‡�éŒSCORERunè† €?€?Score Label Shadow牒AòA—Styleï/@0Outlineð%ÿColorñFillð%ÿColoró‡�ðŒSCORERunï A�A Score Valueæ†Score Value Textö‰’€Aò€A—Style÷/@0Outlineø%ÿColorùFillø%ÿÿÿÿColorû‡�øŒ000000Run÷¿ÌÊŒ”œÖ×Score Semantics÷¿ÌÊØ”† €?€?Score Value Shadowö‰’€Aò€A—Styleÿ/@0Outline€%ÿColor�Fill€%ÿColorƒ‡�€Œ000000Runÿ¿ÌÊŒ”Timer CA Time Label††™î?Time Label Text‡‰’AòA—Styleˆ/@0Outline‰%ÿColorŠFill‰%øØ0ÿColorŒ‡�‰ŒTIMERunˆ†™î? €?€?Time Label Shadow‡‰’AòA—Style�/@0Outline�%ÿColor‘Fill�%ÿColor“‡��ŒTIMERun� C�A Time Value††™î?Time Value Text–‰’€Aò€A—Style—/@0Outline˜%ÿColor™Fill˜%ÿÿÿÿColor›‰’€Aò€A—Style—/@0Outline�%ÿColoržFill�%ÿÿÿÿColor ‰’€Aò€A—Style—/@0Outline¢%ÿColor£Fill¢%ÿÿÿÿColor¥‰’AòA—Style—/@0Outline§%ÿColor¨Fill§%ÿÿÿÿColorª‰’AòA—Style—/@0Outline¬%ÿColor­Fill¬%ÿÿÿÿColor¯‡�˜Œ0Run—¿ÌÊŒ” ‡��Œ:Run 2—‡�¢Œ00Run 3—¿ÌÊŒ” ‡�§Œ.Run 4—‡�¬Œ00Run 5—¿ÌÊŒ”œÖ×Time, in seconds Semantics—¿ÌÊØ”†™î? €?€?Time Value Shadow–‰’€Aò€A—Style·/@0Outline¸%ÿColor¹Fill¸%ÿColor»‰’€Aò€A—Style·/@0Outline½%ÿColor¾Fill½%ÿColorÀ‰’€Aò€A—Style·/@0OutlineÂ%ÿColorÃFillÂ%ÿColorʼn’AòA—Style·/@0OutlineÇ%ÿColorÈFillÇ%ÿColorʉ’AòA—Style·/@0OutlineÌ%ÿColorÍFillÌ%ÿColorχ�¸Œ0Run·¿ÌÊŒ” ‡�½Œ:Run 2·‡�ÂŒ00Run 3·¿ÌÊŒ” ‡�ÇŒ.Run 4·‡�ÌŒ00Run 5·¿ÌÊŒ” Multiplier œCA Combo LabelÖ†™î€?Combo Label Text׉’AòA—StyleØ/@0OutlineÙ%ÿColorÚFillÙ%øØ0ÿColor܇�ÙŒCOMBORun؆™î€? €?€?Combo Label Shadow׉’AòA—Styleß/@0Outlineà%ÿColoráFillà%ÿColorã‡�àŒCOMBORunß œC�A Mult ActiveÖ Mult Bumpæ@A Mult Value熙î€?ï?Mult Value Text艒€A—Styleé/@0Outlineê%ÿÿÿÿColorëFillê%�8øÿColorí�¡ôÐ�» aDWeightê�¡èè‘» úBWidthꉒÀA—Styleé/@@0Outlineñ%ÿÿÿÿColoròFillñ%�8øÿColorô�¡ôÐ�» aDWeightñ�¡èè‘» úBWidthñ‡�êŒxRuné‡�ñŒ0Run 2é¿ÌÊŒ”œÖ×Combo multiplierÜ€ Semanticsé¿ÌÊØ”†™î€?ï? @@Mult Value Shadow艒€A—Styleû/@0Outlineü%ÿColorýFillü%ÿColorÿ�¡ôÐ�» aDWeightü�¡èè‘» úBWidthü‰’ÀA—Styleû/@@0Outlineƒ%ÿColor„Fillƒ%ÿColor†�¡ôÐ�» aDWeightƒ�¡èè‘» úBWidthƒ‡�üŒxRunû‡�ƒŒ0Run 2û¿ÌÊŒ” œCÐA Mult IdleÖ†™î€?ï?Mult Idle TextŒ‰’€A—Style�/@0OutlineŽ%ÿColor�FillŽ%x`XÿColor‘�¡ôÐ�» aDWeightŽ�¡èè‘» úBWidthއ�ŽŒx1Run�†™î€?ï? €?€?Mult Idle ShadowŒ‰’€A—Style–/@0Outline—%ÿColor˜Fill—%ÿColorš�¡ôÐ�» aDWeight—�¡èè‘» úBWidth—‡�—Œx1Run– pBbCProgress Rider DotŸ¿ÌÊ ” Path @À¡€@@¡à@¡€À@¡Stroke %ÿC¦Fill %ÿÿÿÿC¨ èATick 1Ÿ€?€@{|PathªFillª%ÿColor¬ dBTick 2Ÿ€?€@{|Path®Fill®%ÿColor° ¬BTick 3Ÿ€?€@{|Path²Fill²%ÿColor´ äBTick 4Ÿ€?€@{|Path¶Fill¶%ÿColor¸ CTick 5Ÿ€?€@{|PathºFillº%ÿColor¼ +CTick 6Ÿ€?€@{|Path¾Fill¾%ÿColorÀDoneŸ€@{|Path¿ÌÊ”FillÂ%�8øÿCÄTrackŸHC€@{|PathÆ/@0StrokeÆ%ÿColorÈFillÆ%x,ÿColorÊœÖ×Course progress, percent SemanticsŸ¿ÌÊØ”Contrast Plates Plate ScoreÍ PathÎA @ÏàB @ÏØBBÏ€@BÏFillÎ%ÐColorÔ Plate TimeÍ PathÖèB @×XC @×TCB×àBB×FillÖ%ÐColorÜ Plate ComboÍ PathÞ€C @ß C @ßžC$Bß|C$BßFillÞ%ÐColorä Plate BannerÍ Pathæ A�BçŸC�Bç�CÔBçÀ@ÔBçFillæ%ÐColorì Plate PraiseÍ Pathî€BÐBï„CÐBï‚CCïpBCïFillî%ÐColorô Plate StripÍ PathöpB^C÷†C^C÷„CjC÷`BjC÷Fillö%ÐColorü? ×#>@€?Aš™™>?ff&?A33³>?333?A= W?B9;7 Banner Idle3Ø55 F C3Ù5F€?5F€?3î53ä5ìTµ9;7 Banner Live3Ø5Fš™Y?5 F C3Ù5F@?5F@?3î53ä5ìT97 Banner Slam3Ø5F€?5 F CF!CCFCCF!CCFCCF CC3î5F€?C3Ù5FÍÌÌ?DEþF…k?DEÿC F€?C5FÍÌÌ?DEþF…k?DEÿC F€?C3ä5ìT9 7 Banner Fade3Ø5 F C5DF€?C 3î5F€?3Ù5F€?5F€?3ä5ìTµTC 9H7 Banner Hold3Ø5F€?5 F C3î5F€?3ä5ìT9 7 Banner Out3Ø5 F CDE€FHÃC 5F€?C 3ä5ìTTµC 9 7Banner Out Fade3Ø5 F C5F€?DC 3ä5ìTTµC 9;7 Praise Idle3ý53ˆ5ìTµ9Z7 Praise Slam3ý5F€?CF€?DCQCZ5 F CF!CCFCCF!CCFCCF CC3þ5Fffæ?Fffæ?DEþCF…k?DEÿCF€?C5Fffæ?Fffæ?DEþCF…k?DEÿCF€?C3ˆ5ìTµTCTµCZ9Z7 Praise Fade3þ5F€?5F€?3ý5DCF€?CF€?DCQCZ3ˆ5ìTµTCTµCZ9;7 Perfect Idle353535ìTµ9H7 Perfect Flash35Fš™™>C35F€?F€?DC?CH5F33³?DEþF€?C 5F33³?DEþF€?C 35ìTTµCH9H7 Perfect Word3535DF€?CF€?DC?CH35ìTµTCTµCH9;7 Combo Idle3’53æ53Œ5F€?3š5ìTµ3ú5ìTµ9;7 Combo Active3’5F€?3æ5F€?3Œ53š5ìT3ú5ìT9;7 Bump Still3ç5F€?5F€?9 7Bump3ç5FÀ?DEþF€?C 5FÀ?DEþF€?C 9;7Balance Hidden3¢53Ã5ìTµ9;7 Balance Shown3¢5F€?3Ã5ìT9;7 Needle Safe3¨5%%Xÿÿÿÿ9;7 Needle Danger3¨5%%X(øÿ9;7 Pop Hidden3Ë53Þ5ìTµ9;7 Pop Shown3Ë5F€?3Þ5ìT9;7 Pop Loading3Ï5%%Xˆøÿ9;7Pop Full3Ï5%%X0ø¨ÿ9;7 Count Off3'53B53]53x53“5385ìTµ3S5ìTµ3n5ìTµ3‰5ìTµ3¤5ìTµ97Count 33B53]53x53“53'5F€?5FÍÌ @DEþF…k?DEÿCF€?C 5FÍÌ @DEþF…k?DEÿCF€?C 3S5ìTµ3n5ìTµ3‰5ìTµ3¤5ìTµ385ìT97 Count 3 Fade3B53]53x53“53'5DF€?C5F€?5F€?3S5ìTµ3n5ìTµ3‰5ìTµ3¤5ìTµ385ìTµTC97Count 23'53]53x53“53B5F€?5FÍÌ @DEþF…k?DEÿCF€?C 5FÍÌ @DEþF…k?DEÿCF€?C 385ìTµ3n5ìTµ3‰5ìTµ3¤5ìTµ3S5ìT97 Count 2 Fade3'53]53x53“53B5DF€?C5F€?5F€?385ìTµ3n5ìTµ3‰5ìTµ3¤5ìTµ3S5ìTµTC97Count 13'53B53x53“53]5F€?5FÍÌ @DEþF…k?DEÿCF€?C 5FÍÌ @DEþF…k?DEÿCF€?C 385ìTµ3S5ìTµ3‰5ìTµ3¤5ìTµ3n5ìT97 Count 1 Fade3'53B53x53“53]5DF€?C5F€?5F€?385ìTµ3S5ìTµ3‰5ìTµ3¤5ìTµ3n5ìTµTC97 Count ready3'53B53]53x53“5F€?5FÍÌ @DEþF…k?DEÿCF€?C 5FÍÌ @DEþF…k?DEÿCF€?C 385ìTµ3S5ìTµ3n5ìTµ3‰5ìTµ3¤5ìT97Count ready Fade3'53B53]53x53“5DF€?C5F€?5F€?385ìTµ3S5ìTµ3n5ìTµ3‰5ìTµ3¤5ìTµTC967Count Go3'53B53]53“53x5F€?F€?DC*C65Fš™@DEþF…k?DEÿCF€?CF€?DE€C*FÍÌÌ?C65Fš™@DEþF…k?DEÿCF€?CF€?DE€C*FÍÌÌ?C6385ìTµ3S5ìTµ3n5ìTµ3¤5ìTµ3‰5ìTTµC6967 Count Go Fade3'53B53]53“53x5F€?5F€?5DF€?CF€?DC*C6385ìTµ3S5ìTµ3n5ìTµ3¤5ìTµ3‰5ìTµTCTµC69;7Contrast Normal3Í59;7 Contrast High3Í5F€?9;7Targets Hidden3®53Æ5ìTµ9;7 Targets Shown3®5F€?3Æ5ìT57Hud9ŠBanner>@?A—=•A—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßáA—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßá‡A—âØ¿Ì Êúßá‡=•A—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßáA—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßá‡A—âØ¿Ì Êúßá=•A—˜  d=•A—˜  d=•A—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßáA—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßá‡A—âØ¿Ì Êúßá‡A—˜  dâØ¿ÌPÊúßáA— ˜  dâØ¿ÌPÊúßá‡=•A—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßáA—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßá‡A—˜  d=•A—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßáA—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßá‡A—˜  d9ŠPraise>@?A—=•A—â÷¿ÌÊ®”ßùâŠÙ¿ÌÊüßäâØ¿ÌPÊúßáA—â÷¿ÌÊ®”ßùâŠÙ¿ÌÊüßäâØ¿ÌPÊúßá‡A—â÷¿ÌÊ®”ßùâŠÙ¿ÌÊüßäâØ¿ÌPÊúßáA—â÷¿ÌÊ®”ßùâŠÙ¿ÌÊüßäâØ¿ÌPÊúßá‡A—â÷¿ÌÊ®”ßùâŠÙ¿ÌÊüßäâØ¿ÌPÊúßáA—â÷¿ÌÊ®”ßùâŠÙ¿ÌÊüßäâØ¿ÌPÊúßá‡=•A—˜  d=• A—˜  d9ŠPerfect>@?A—=• A—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßáA—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßá‡=• A—˜  d=• A—˜  d9ŠCombo>A—âØ¿ÌÊúßá‡A—âØ¿ÌÊúßá@?A—=• =•9Š Combo Bump>@?A—=•A—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßá=•A—˜  d9ŠBalance>A—âØ¿ÌÊúßá‡A—âØ¿ÌÊúßá@?A—=•=•9ŠNeedle>@?A—=•A—âŠÙ¿ÌÊüßäŒ333?A—âŠÙ¿ÌÊüßäŒ333¿=•A—âŠÙ¿ÌÊüßäŒ333?âŠÙ¿ÌÊüßäŒ333¿9ŠPop>@?A—=•A—âŠÙ¿ÌDÊüßäŒ ×£<âØ¿ÌÊúßá=•A—âŠÙ¿ÌDÊüßäŒ ×£<A—âØ¿ÌÊúßá‡9ŠPop Fill>@?A—=•A—âŠÙ¿ÌDÊüß䌤p}?=•A—âŠÙ¿ÌDÊüß䌤p}?9Š Countdown>@?A—=•A—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßá‡A—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßáA— âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßá‡=•A—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßáA— âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäâØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀¿=•A—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßáA— âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäâØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀¿=•A—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßáA— âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäâØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀¿=•A—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßáA— âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäâØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀¿=•A—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßá‡A—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäâØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀¿=•A—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßá‡A—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäŒ AâØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäâØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀¿=• A—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßá‡A—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßáA— âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäâØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀¿=•!A—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@@âØ¿ÌPÊúßá‡A—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßáA—âÙ¿ÌÊüßäŒ@âØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßáA— âÙ¿ÌÊüß䌀?âØ¿ÌPÊúßá‡A— âÙ¿ÌÊüßäâØ¿ÌPÊúßáA— âÙ¿ÌÊüßäâØ¿ÌPÊúßá‡A—âÙ¿ÌÊüß䌀¿=•"A—˜  d=•#A—˜  d9ŠContrast>A—âØ¿Ì Êúßá‡A—âØ¿Ì Êúßá@?A—=•$=•%9ŠTargets>A—âÙ¿ÌÊüß䌀?A—âŠÙ¿ÌÊüß䌀?@?A—=•&=•'Äì CpCî € EResultsOverlay¤åæçèéêëìñòArtboard Style  AA Results Title†Results Title Text‰’°A—Style/@@0Outline%�8øÿColorFill!ÍÌ A#×£ÈAChromeStop&ÿØœÿ'š™™>Stop&Àh8ÿ'�Âõ>Stop&8ÿ'¸?Stop&(PŒÿ')\?Stop&pÀøÿ'®G?Stop&Øôÿÿ'€?Stop�¡ôÐ�» aDWeight�¡èè‘» úBWidth‡�ŒRESULTSRunœÖ×ResultsÚ Semantics† @@Results Title Shadow‰’°A—Style/@@0Outline%ÿColorFill%ÿColor�¡ôÐ�» aDWeight�¡èè‘» úBWidth‡�ŒRESULTSRun C°A Results Sub†Results Sub Text‰’AòA—Style/@0Outline%ÿColor Fill%øØ0ÿColor"‡�Œ RUN COMPLETERun† €?€?Results Sub Shadow‰’AòA—Style%/@0Outline&%ÿColor'Fill&%ÿColor)‡�&Œ RUN COMPLETERun% ƒCìB Grade Stamp@ Rank Label,†™î?ï?Rank Label Text-‰’AòA—Style./@0Outline/%ÿColor0Fill/%øØ0ÿColor2‡�/ŒRANKRun.†™î?ï? €?€?Rank Label Shadow-‰’AòA—Style5/@0Outline6%ÿColor7Fill6%ÿColor9‡�6ŒRANKRun5Dust, 0ÂðAPuff 0<À@À@Path=Fill=%ÿðèÿColor? 0BðAPuff 1<À@À@PathAFillA%ÿðèÿColorC ÂBPuff 2<€@€@PathEFillE%ÿðèÿColorG BBPuff 3<€@€@PathIFillI%ÿðèÿColorK P°APuff 4<@@@@PathMFillM%ÿðèÿColorO PB APuff 5<@@@@PathQFillQ%ÿðèÿColorS0BPuff 6< @ @PathUFillU%ÿðèÿColorW Stamp Slam,“¨[ Grade LettersYGrade CZ€@Grade C Letter[†™î?ï?Grade C Letter Text\‰’�B—Style]/€@0Outline^%ÿColor_Fill^!ffæA#ö(¤BChromeaStopb&àØÐÿ'š™™>Stopb& �ˆÿ'�Âõ>Stopb&8,(ÿ'¸?Stopb&ld`ÿ')\?Stopb&ļ¸ÿ'®G?Stopb&ðððÿ'€?Stopb�¡ôÐ�» aDWeight^�¡èè‘» úBWidth^‡�^ŒCRun]œÖ×Grade CÜ€ Semantics]†™î?ï? @@@@Grade C Letter Shadow\‰’�B—Stylen/€@0Outlineo%ÿColorpFillo%ÿColorr�¡ôÐ�» aDWeighto�¡èè‘» úBWidtho‡�oŒCRunnGrade BZ€@Grade B Letterw†™î?ï?Grade B Letter Textx‰’�B—Styley/€@0Outlinez%ÿColor{Fillz!ffæA#ö(¤BChrome}Stop~&ÿð¨ÿ'š™™>Stop~&И(ÿ'�Âõ>Stop~&H(ÿ'¸?Stop~&xXÿ')\?Stop~&ðÐ`ÿ'®G?Stop~&ÿÿàÿ'€?Stop~�¡ôÐ�» aDWeightz�¡èè‘» úBWidthz‡�zŒBRunyœÖ×Grade BÜ€ Semanticsy†™î?ï? @@@@Grade B Letter Shadowx‰’�B—StyleŠ/€@0Outline‹%ÿColorŒFill‹%ÿColorŽ�¡ôÐ�» aDWeight‹�¡èè‘» úBWidth‹‡�‹ŒBRunŠGrade AZ€@Grade A Letter“†™î?ï?Grade A Letter Text”‰’�B—Style•/€@0Outline–%ÿColor—Fill–!ffæA#ö(¤BChrome™Stopš&بÿÿ'š™™>Stopš&€(àÿ'�Âõ>Stopš& @ÿ'¸?Stopš&P �ÿ')\?Stopš&°pøÿ'®G?Stopš&ðàÿÿ'€?Stopš�¡ôÐ�» aDWeight–�¡èè‘» úBWidth–‡�–ŒARun•œÖ×Grade AÜ€ Semantics•†™î?ï? @@@@Grade A Letter Shadow”‰’�B—Style¦/€@0Outline§%ÿColor¨Fill§%ÿColorª�¡ôÐ�» aDWeight§�¡èè‘» úBWidth§‡�§ŒARun¦Grade SZ€@Grade S Letter¯†™î?ï?Grade S Letter Text°‰’�B—Style±/€@0Outline²%ÿColor³Fill²!ffæA#ö(¤BChromeµ&ðÿÿÿStop¶&pàøÿ'š™™>Stop¶&€Àÿ'�Âõ>Stop¶& @ÿ'¸?Stop¶&P�ÿ')\?Stop¶&@Èøÿ'®G?Stop¶&Øüÿÿ'€?Stop¶�¡ôÐ�» aDWeight²�¡èè‘» úBWidth²‡�²ŒSRun±œÖ×Grade SÜ€ Semantics±†™î?ï? @@@@Grade S Letter Shadow°‰’�B—StyleÂ/€@0OutlineÃ%ÿColorÄFillÃ%ÿColorÆ�¡ôÐ�» aDWeightÃ�¡èè‘» úBWidthÇ�ÃŒSRun Stamp RingY˜B˜BPathË/@@0StrokeË%ÿÿÿÿColorÍFillË% ColorÏRecord ƒC0C Record Textц™î?ï?Record Text TextÒ‰—StyleÓ/@0OutlineÔ%ÿColorÕFillÔ%ˆøÿColor×�¡ôÐ�» aDWeightÔ�¡èè‘» úBWidthÔ‡�ÔŒ NEW RECORD!RunÓœÖ× New recordÜ€ SemanticsÓ¿Ì(ÊØ”†™î?ï? €?€?Record Text ShadowÒ‰—StyleÝ/@0OutlineÞ%ÿColorßFillÞ%ÿColorá�¡ôÐ�» aDWeightÞ�¡èè‘» úBWidthÞ‡�ÞŒ NEW RECORD!RunÝ ƒC>C Record Placeц™î?ï?Record Place Text扒AòA—Styleç/@0Outlineè%ÿColoréFillè%ÿÿÿÿColor뉒AòA—Styleç/@0Outlineí%ÿColorîFillí%ÿÿÿÿColorð‡�èŒ#Runç‡�íŒ1Run 2ç¿Ì(ÊŒ”†™î?ï? €?€?Record Place Shadow扒AòA—Styleô/@0Outlineõ%ÿColoröFillõ%ÿColorø‰’AòA—Styleô/@0Outlineú%ÿColorûFillú%ÿColorý‡�õŒ#Runô‡�úŒ1Run 2ô¿Ì(ÊŒ”Prompts Prompts Keys� CRCPrompt Again Keys‚†™î?Prompt Again Keys Textƒ‰’AòA—Style„/@0Outline…%ÿColor†Fill…%0ø¨ÿColorˆ‡�…ŒENTER/R: RIDE AGAINRun„œÖ×$Enter or R: ride again. Escape: menuÜ€ Semantics„†™î? €?€?Prompt Again Keys Shadowƒ‰’AòA—StyleŒ/@0Outline�%ÿColorŽFill�%ÿColor�‡��ŒENTER/R: RIDE AGAINRunŒ C^CPrompt Menu Keys‚†™î?Prompt Menu Keys Text“‰’AòA—Style”/@0Outline•%ÿColor–Fill•%ÿÿÿÿColor˜‡�•Œ ESC: MENURun”†™î? €?€?Prompt Menu Keys Shadow“‰’AòA—Style›/@0Outlineœ%ÿColor�Fillœ%ÿColorŸ‡�œŒ ESC: MENURun› Prompts Pad� CRCPrompt Again Pad¢†™î?Prompt Again Pad Text£‰’AòA—Style¤/@0Outline¥%ÿColor¦Fill¥%0ø¨ÿColor¨‡�¥ŒSTART: RIDE AGAINRun¤†™î? €?€?Prompt Again Pad Shadow£‰’AòA—Style«/@0Outline¬%ÿColor­Fill¬%ÿColor¯‡�¬ŒSTART: RIDE AGAINRun« C^CPrompt Menu Pad¢†™î?Prompt Menu Pad Text²‰’AòA—Style³/@0Outline´%ÿColorµFill´%ÿÿÿÿColor·‡�´Œ SELECT: MENURun³†™î? €?€?Prompt Menu Pad Shadow²‰’AòA—Styleº/@0Outline»%ÿColor¼Fill»%ÿColor¾‡�»Œ SELECT: MENURunºStats ÐA$CBest Combo LabelÁ†Best Combo Label Text‰’AòA—StyleÃ/@0OutlineÄ%ÿColorÅFillÄ%øØ0ÿColorLJ�ÄŒ BEST COMBORunÆ €?€?Best Combo Label Shadow‰’AòA—StyleÊ/@0OutlineË%ÿColorÌFillË%ÿColor·�ËŒ BEST COMBORunÊ DC$CBest Combo ValueÁ†™î€?Best Combo Value Textщ’AòA—StyleÒ/@0OutlineÓ%ÿColorÔFillÓ%ÿÿÿÿColorÖ‡�ÓŒ0RunÒ¿ÌÊŒœÖ× Best comboÜ€ SemanticsÒ¿ÌÊØ†™î€? €?€?Best Combo Value Shadowщ’AòA—StyleÚ/@0OutlineÛ%ÿColorÜFillÛ%ÿColorÞ‡�ÛŒ0RunÚ¿ÌÊŒ ÐA/C Air LabelÁ†Air Label TextቒAòA—Styleâ/@0Outlineã%ÿColoräFillã%øØ0ÿColoræ‡�㌠LONGEST AIRRun↠€?€?Air Label ShadowቒAòA—Styleé/@0Outlineê%ÿColorëFillê%ÿColorí‡�êŒ LONGEST AIRRuné DC/C Air ValueÁ†™î€?Air Value Textð‰’AòA—Styleñ/@0Outlineò%ÿColoróFillò%ÿÿÿÿColorõ‡�òŒ0.0SRunñ¿ÌÊŒ†™î€? €?€?Air Value Shadowð‰’AòA—Styleø/@0Outlineù%ÿColorúFillù%ÿColorü‡�ùŒ0.0SRunø¿ÌÊŒ ÐA:C Perfect LabelÁ†Perfect Label Textÿ‰’AòA—Style€/@0Outline�%ÿColor‚Fill�%øØ0ÿColor„‡��ŒPERFECTRun€† €?€?Perfect Label Shadowÿ‰’AòA—Style‡/@0Outlineˆ%ÿColor‰Fillˆ%ÿColor‹‡�ˆŒPERFECTRun‡ ÀB:C Perfect ValueÁ†™î€?Perfect Value Textމ’AòA—Style�/@0Outline�%ÿColor‘Fill�%0ø¨ÿColor“‡��Œ0Run�¿Ì$ÊŒ”†™î€? €?€?Perfect Value Shadowމ’AòA—Style–/@0Outline—%ÿColor˜Fill—%ÿColorš‡�—Œ0Run–¿Ì$ÊŒ” èB:C Crash LabelÁ†Crash Label Text�‰’AòA—Stylež/@0OutlineŸ%ÿColor FillŸ%øØ0ÿColor¢‡�ŸŒCRASHRunž† €?€?Crash Label Shadow�‰’AòA—Style¥/@0Outline¦%ÿColor§Fill¦%ÿColor©‡�¦ŒCRASHRun¥ DC:C Crash ValueÁ†™î€?Crash Value Text¬‰’AòA—Style­/@0Outline®%ÿColor¯Fill®%(øÿColor±‡�®Œ0Run­¿Ì%ÊŒ”†™î€? €?€?Crash Value Shadow¬‰’AòA—Style´/@0Outlineµ%ÿColor¶Fillµ%ÿColor¸‡�µŒ0Run´¿Ì%ÊŒ”Total °AC Total Rule»0C@{|Path¼Fill¼%�8øÿColor¾ ÐAC Total Label»†ï?Total Label TextÀ‰’`A—StyleÁ/@0OutlineÂ%ÿColorÃFillÂ%ÿÿÿÿColorÅ�¡ôÐ�» aDWeightÂ�¡èè‘» úBWidth‡�ÂŒTOTALRunÁ†ï? €?€?Total Label ShadowÀ‰’`A—StyleÊ/@0OutlineË%ÿColorÌFillË%ÿColorÎ�¡ôÐ�» aDWeightË�¡èè‘» úBWidthˇ�ËŒTOTALRunÊ HCC Total Value»†™î€?ï?Total Value TextÓ‰’€Aò€A—StyleÔ/@0OutlineÕ%�8øÿColorÖFillÕ%ÿÿÿÿColor؇�ÕŒ0RunÔ¿ÌÊŒœÖ×TotalÜ€ SemanticsÔ¿ÌÊØ†™î€?ï? €?€?Total Value ShadowÓ‰’€Aò€A—StyleÜ/@0OutlineÝ%ÿColorÞFillÝ%ÿColorà‡�ÝŒ0RunÜ¿ÌÊŒ Tally Tricks ÐAXB Tricks Labelã†Tricks Label Text䉒AòA—Styleå/@0Outlineæ%ÿColorçFillæ%ÿÿÿÿColoré‡�æŒTRICKSRunå† €?€?Tricks Label Shadow䉒AòA—Styleì/@0Outlineí%ÿColorîFillí%ÿColorð‡�íŒTRICKSRunì DCXB Tricks Value㆙î€?Tricks Value Textó‰’AòA—Styleô/@0Outlineõ%ÿColoröFillõ%0ÐøÿColorø‡�õŒ0Runô¿ÌÊŒ”œÖ×TricksÜ€ Semanticsô¿ÌÊØ”†™î€? €?€?Tricks Value Shadowó‰’AòA—Styleü/@0Outlineý%ÿColorþFillý%ÿColor€‡�ýŒ0Runü¿ÌÊŒ” Tally Grinds ÐAŒB Grinds Labelƒ†Grinds Label Text„‰’AòA—Style…/@0Outline†%ÿColor‡Fill†%ÿÿÿÿColor‰‡�†ŒGRINDSRun…† €?€?Grinds Label Shadow„‰’AòA—StyleŒ/@0Outline�%ÿColorŽFill�%ÿColor�‡��ŒGRINDSRunŒ DCŒB Grinds Valueƒ†™î€?Grinds Value Text“‰’AòA—Style”/@0Outline•%ÿColor–Fill•%0ÐøÿColor˜‡�•Œ0Run”¿ÌÊŒ”œÖ×GrindsÜ€ Semantics”¿ÌÊØ”†™î€? €?€?Grinds Value Shadow“‰’AòA—Styleœ/@0Outline�%ÿColoržFill�%ÿColor ‡��Œ0Runœ¿ÌÊŒ”Tally Combo Bonus ÐA¬BCombo Bonus Label£†Combo Bonus Label Text¤‰’AòA—Style¥/@0Outline¦%ÿColor§Fill¦%ÿÿÿÿColor©‡�¦Œ COMBO BONUSRun¥† €?€?Combo Bonus Label Shadow¤‰’AòA—Style¬/@0Outline­%ÿColor®Fill­%ÿColor°‡�­Œ COMBO BONUSRun¬ DC¬BCombo Bonus Value£†™î€?Combo Bonus Value Text³‰’AòA—Style´/@0Outlineµ%ÿColor¶Fillµ%0ÐøÿColor¸‡�µŒ0Run´¿ÌÊŒ”œÖ× Combo bonusÜ€ Semantics´¿ÌÊØ”†™î€? €?€?Combo Bonus Value Shadow³‰’AòA—Style¼/@0Outline½%ÿColor¾Fill½%ÿColorÀ‡�½Œ0Run¼¿ÌÊŒ”Tally Landings ÐAÌBLandings LabelÆLandings Label Textĉ’AòA—StyleÅ/@0OutlineÆ%ÿColorÇFillÆ%ÿÿÿÿColorɇ�ÆŒLANDINGSRunņ €?€?Landings Label Shadowĉ’AòA—StyleÌ/@0OutlineÍ%ÿColorÎFillÍ%ÿColorЇ�ÍŒLANDINGSRunÌ DCÌBLandings ValueÆ™î€?Landings Value TextÓ‰’AòA—StyleÔ/@0OutlineÕ%ÿColorÖFillÕ%0ÐøÿColor؇�ÕŒ0RunÔ¿ÌÊŒ”œÖ×LandingsÜ€ SemanticsÔ¿ÌÊØ”†™î€? €?€?Landings Value ShadowÓ‰’AòA—StyleÜ/@0OutlineÝ%ÿColorÞFillÝ%ÿColorà‡�ÝŒ0RunÜ¿ÌÊŒ”Tally Time Bonus ÐAìBTime Bonus Labelã†Time Bonus Label Text䉒AòA—Styleå/@0Outlineæ%ÿColorçFillæ%ÿÿÿÿColoré‡�æŒ TIME BONUSRunå† €?€?Time Bonus Label Shadow䉒AòA—Styleì/@0Outlineí%ÿColorîFillí%ÿColorð‡�íŒ TIME BONUSRunì DCìBTime Bonus Value㆙î€?Time Bonus Value Textó‰’AòA—Styleô/@0Outlineõ%ÿColoröFillõ%0ÐøÿColorø‡�õŒ0Runô¿Ì ÊŒ”œÖ× Time bonusÜ€ Semanticsô¿Ì ÊØ”†™î€? €?€?Time Bonus Value Shadowó‰’AòA—Styleü/@0Outlineý%ÿColorþFillý%ÿColor€‡�ýŒ0Runü¿Ì ÊŒ”Panel PathƒÀA8B„\C8B„RCDC„`ADC„/@0Strokeƒ%�8øÿColor‰Fillƒ%H ÀColor‹? ×#>@€?Aš™™>?333?A= W?B9;7 Line 1 Hidden3ã53û5ìTµ9 7 Line 1 In3ã5F€?C5 FÀADE�C 3û5ìTµTC9;7 Line 2 Hidden3ƒ53›5ìTµ9 7 Line 2 In3ƒ5F€?C5 FÀADE�C 3›5ìTµTC9;7 Line 3 Hidden3£53»5ìTµ9 7 Line 3 In3£5F€?C5 FÀADE�C 3»5ìTµTC9;7 Line 4 Hidden3Ã53Û5ìTµ9 7 Line 4 In3Ã5F€?C5 FÀADE�C 3Û5ìTµTC9;7 Line 5 Hidden3ã53û5ìTµ9 7 Line 5 In3ã5F€?C5 FÀADE�C 3û5ìTµTC9;7 Line 6 Hidden3»53Û5ìTµ9 7 Line 6 In3»5F€?C5 FÀADE�C 3Û5ìTµTC9;7 Line 7 Hidden3Á53Ù5ìTµ9 7 Line 7 In3Á5F€?C5 FÀADE�C 3Ù5ìTµTC9;7 Stamp Hidden3,53<53�53m5ìTµ3‰5ìTµ3¥5ìTµ3Á5ìTµ3‹5ìTµ9G7 Stamp Slam3,5F€?C5 FƒCF„CC)F‚CC+F„CC-F‚CC/F„CC1F‚CC3FƒCC53Y5F@@F@@DEŽCF€?C)5F@@F@@DEŽCF€?C)3<5F€?C)CA5Fš™?Fš™?DE�C)FÀ?CA5Fš™?Fš™?DE�C)Fff¦?CA3�5F€?C=3m5ìTµTC3‰5ìTµTC3¥5ìTµTC3Á5ìTµTC3‹5ìTµTC=7 Stamp Fade3,5DCF€?C(3Y5F€?5F€?3<53�5F€?C23m5ìTµTC(3‰5ìTµTC(3¥5ìTµTC(3Á5ìTµTC(3‹5ìTµTC29;7Grade C3Z5¨2z[9;7Grade B3Z5¨2zw9;7Grade A3Z5¨2z“9;7Grade S3Z5¨2z¯9;7 Record Hidden3Ñ53Ü5ìTµ9(;7 Record Blink3Ñ5F€?F33³>CF33³>C(3Ü5ìT9;7 Prompts Keys3‚5F€?3¢59;7 Prompts Pad3‚53¢5F€?57Results9ŠLine 1>@?A—=•A—âŠÙ¿Ì&Êüß䌀?=•A—âŠÙ¿Ì&Êüß䌀?9ŠLine 2>@?A—=•A—âŠÙ¿Ì&ÊüßäŒ@=•A—âŠÙ¿Ì&ÊüßäŒ@9ŠLine 3>@?A—=•A—âŠÙ¿Ì&ÊüßäŒ@@=•A—âŠÙ¿Ì&ÊüßäŒ@@9ŠLine 4>@?A—=•A—âŠÙ¿Ì&Êüß䌀@=•A—âŠÙ¿Ì&Êüß䌀@9ŠLine 5>@?A—=•A—âŠÙ¿Ì&Êüß䌠@=• A—âŠÙ¿Ì&Êüß䌠@9ŠLine 6>@?A—=• A—âŠÙ¿Ì&ÊüßäŒÀ@=• A—âŠÙ¿Ì&ÊüßäŒÀ@9ŠLine 7>@?A—=• A—âŠÙ¿Ì&ÊüßäŒà@=• A—âŠÙ¿Ì&ÊüßäŒà@9ŠStamp>@?A—=•A—âŠÙ¿Ì'ÊüßäâØ¿ÌPÊúßáA—âŠÙ¿Ì'ÊüßäâØ¿ÌPÊúßá‡=•A—âŠÙ¿Ì'Êüßä=•A—âŠÙ¿Ì'Êüßä9ŠGrade>A—âÙ¿Ì'ÊüßäA—âÙ¿Ì'Êüß䌀?A—âÙ¿Ì'ÊüßäŒ@A—âÙ¿Ì'ÊüßäŒ@@@?A—=•=•=•=•9ŠRecord>@?A—=•A—âŠÙ¿Ì(ÊüßäâŠÙ¿Ì'Êüßä=•A—âŠÙ¿Ì(ÊüßäA—âŠÙ¿Ì'Êüßä9ŠDevice>A—âÙ¿ÌBÊüß䌀?A—âŠÙ¿ÌBÊüß䌀?@?A—=•=•Äì CpCî *EInitialsOverlay¤åæçèéêëìñòArtboard Style CAInitials Title†™î?Initials Title Text‰’�A—Style/@0Outline%ÿÿÿÿColorFill!ffæ@#ö(¤AChromeStop&بÿÿ'š™™>Stop&€(àÿ'�Âõ>Stop& @ÿ'¸?Stop&P �ÿ')\?Stop&°pøÿ'®G?Stop&ðàÿÿ'€?Stop�¡ôÐ�» aDWeight�¡èè‘» úBWidth‡�ŒNEW HIGH SCORE!RunœÖ×New high scoreÚ Semantics†™î? @@Initials Title Shadow‰’�A—Style/@0Outline%ÿColorFill%ÿColor�¡ôÐ�» aDWeight�¡èè‘» úBWidth‡�ŒNEW HIGH SCORE!Run CB Initials Sub†™î?Initials Sub Text‰’AòA—Style/@0Outline%ÿColor Fill%øØ0ÿColor"‡�ŒENTER YOUR INITIALSRun†™î? €?€?Initials Sub Shadow‰’AòA—Style%/@0Outline&%ÿColor'Fill&%ÿColor)‡�&ŒENTER YOUR INITIALSRun% C„BSaved†™î?ï? Saved Text,‰’€A—Style-/@0Outline.%ÿColor/Fill.%0ø¨ÿColor1�¡ôÐ�» aDWeight.�¡èè‘» úBWidth.‡�.ŒSAVED!Run-œÖ×Initials savedÜ€ Semantics-†™î?ï? @@ Saved Shadow,‰’€A—Style7/@0Outline8%ÿColor9Fill8%ÿColor;�¡ôÐ�» aDWeight8�¡èè‘» úBWidth8‡�8ŒSAVED!Run7 àBCaret Caret Offset@¿Ì Ê ” Caret BarA Caret ShapeB PathCpÁ´BD˜A´BD�A¼BD€Á¼BDFillC%0ø¨ÿColorILetters àB„BLetter 1K†™î?ï? Letter 1 TextL‰’B—StyleM/@@0OutlineN%�8øÿColorOFillN!fffA#ö($BChromeQStopR&ÿØœÿ'š™™>StopR&Àh8ÿ'�Âõ>StopR&8ÿ'¸?StopR&(PŒÿ')\?StopR&pÀøÿ'®G?StopR&Øôÿÿ'€?StopR�¡ôÐ�» aDWeightN�¡èè‘» úBWidthN‡�NŒARunM¿ÌÊŒœÖ×Letter 1 SemanticsM†™î?ï? @@Letter 1 ShadowL‰’B—Style^/@@0Outline_%ÿColor`Fill_%ÿColorb�¡ôÐ�» aDWeight_�¡èè‘» úBWidth_‡�_ŒARun^¿ÌÊŒ Letter Box 1K PathgÀB8BhC8BhC¬Bh¸B¬Bh/@0Strokeg%ÿÿÿÿColormFillg%H ÿColoro C„BLetter 2K†™î?ï? Letter 2 Textq‰’B—Styler/@@0Outlines%�8øÿColortFills!fffA#ö($BChromevStopw&ÿØœÿ'š™™>Stopw&Àh8ÿ'�Âõ>Stopw&8ÿ'¸?Stopw&(PŒÿ')\?Stopw&pÀøÿ'®G?Stopw&Øôÿÿ'€?Stopw�¡ôÐ�» aDWeights�¡èè‘» úBWidths‡�sŒARunr¿ÌÊŒœÖ×Letter 2 Semanticsr†™î?ï? @@Letter 2 Shadowq‰’B—Styleƒ/@@0Outline„%ÿColor…Fill„%ÿColor‡�¡ôÐ�» aDWeight„�¡èè‘» úBWidth„‡�„ŒARunƒ¿ÌÊŒ Letter Box 2K PathŒC8B�6C8B�2C¬B� C¬B�/@0StrokeŒ%ÿÿÿÿColor’FillŒ%H ÿColor” PC„BLetter 3K†™î?ï? Letter 3 Text–‰’B—Style—/@@0Outline˜%�8øÿColor™Fill˜!fffA#ö($BChrome›Stopœ&ÿØœÿ'š™™>Stopœ&Àh8ÿ'�Âõ>Stopœ&8ÿ'¸?Stopœ&(PŒÿ')\?Stopœ&pÀøÿ'®G?Stopœ&Øôÿÿ'€?Stopœ�¡ôÐ�» aDWeight˜�¡èè‘» úBWidth˜‡�˜ŒARun—¿ÌÊŒœÖ×Letter 3 Semantics—†™î?ï? @@Letter 3 Shadow–‰’B—Style¨/@@0Outline©%ÿColorªFill©%ÿColor¬�¡ôÐ�» aDWeight©�¡èè‘» úBWidth©‡�©ŒARun¨¿ÌÊŒ Letter Box 3K Path±@C8B²fC8B²bC¬B²CRank 8ʆ™î€? Rank 8 Text«‰’AòA—Style¬/@0Outline­%ÿColor®Fill­%�8øÿColor°‡�­Œ8.Run¬ ÀB>CName 8ʆ Name 8 Text³‰’AòA—Style´/@0Outlineµ%ÿColor¶Fillµ%àÐÈÿColor¸‡�µŒAVARun´¿Ì5ÊŒ PC>CPts 8ʆ™î€? Pts 8 Text»‰’AòA—Style¼/@0Outline½%ÿColor¾Fill½%àÐÈÿColorÀ‡�½Œ45,000Run¼¿Ì6ÊŒ XC>CGrade 8ʆ Grade 8 TextÉ’AòA—StyleÄ/@0OutlineÅ%ÿColorÆFillÅ%0ø¨ÿColorȇ�ÅŒSRunÄ¿Ì7ÊŒ °BHCRank 9ʆ™î€? Rank 9 Textˉ’AòA—StyleÌ/@0OutlineÍ%ÿColorÎFillÍ%�8øÿColorЇ�ÍŒ9.RunÌ ÀBHCName 9ʆ Name 9 TextÓ‰’AòA—StyleÔ/@0OutlineÕ%ÿColorÖFillÕ%àÐÈÿColor؇�ÕŒAVARunÔ¿Ì9ÊŒ PCHCPts 9ʆ™î€? Pts 9 TextÛ‰’AòA—StyleÜ/@0OutlineÝ%ÿColorÞFillÝ%àÐÈÿColorà‡�ÝŒ45,000RunÜ¿Ì:ÊŒ XCHCGrade 9ʆ Grade 9 Text㉒AòA—Styleä/@0Outlineå%ÿColoræFillå%0ø¨ÿColorè‡�åŒSRunä¿Ì;ÊŒ °BRCRank 10ʆ™î€? Rank 10 Text뉒AòA—Styleì/@0Outlineí%ÿColorîFillí%�8øÿColorð‡�íŒ10Runì ÀBRCName 10ʆ Name 10 Textó‰’AòA—Styleô/@0Outlineõ%ÿColoröFillõ%àÐÈÿColorø‡�õŒAVARunô¿Ì=ÊŒ PCRCPts 10ʆ™î€? Pts 10 Textû‰’AòA—Styleü/@0Outlineý%ÿColorþFillý%àÐÈÿColor€‡�ýŒ45,000Runü¿Ì>ÊŒ XCRCGrade 10ʆ Grade 10 Textƒ‰’AòA—Style„/@0Outline…%ÿColor†Fill…%0ø¨ÿColorˆ‡�…ŒSRun„¿Ì?ÊŒNew RowNew Row Offset‹¿Ì(Ê” New Row BarŒ Path�œBÚBŽvCÚBŽtCîBŽ˜BîBŽFill�%�8øÿColor“ Table Plate Path•˜BäB–€CäB–zC\C–ŒB\C–0Stroke•%øØ0ÿColor›Fill•%H ÈColor�9;7 Caret Blink3B5F€?C9;7New Row Hidden3‹59;7 New Row Flash3‹5FÍÌL?Fš™™>C 9;7Entering3,53@5F€?365ìTµ9;7Saved3,5F€?3@5365ìT57Initials9Š Caret Blink>@?A—=•9ŠNew Row>@?A—=•A—âŠÙ¿Ì(Êüßä=•A—âŠÙ¿Ì(Êüßä9ŠDone>A—âØ¿Ì Êúßá‡A—âØ¿Ì Êúßá@?A—=•=•Äì CpCî €JE PauseOverlay¤åæçèéêëìñòArtboard Style Pause Root Controls Card C AControls Title†™î?Controls Title Text‰’€A—Style/@0Outline%�8øÿColorFill%ÿÿÿÿColor �¡ôÐ�» aDWeight�¡èè‘» úBWidth‡�ŒCONTROLSRunœÖ×ControlsÜ€ Semantics†™î? @@Controls Title Shadow‰’€A—Style/@0Outline%ÿColorFill%ÿColor�¡ôÐ�» aDWeight�¡èè‘» úBWidth‡�ŒCONTROLSRun Controls Keys ŒBPB Control Steer†Control Steer Text‰’AòA—Style/@0Outline%ÿColorFill%øØ0ÿColor‡�ŒSTEERRun† €?€?Control Steer Shadow‰’AòA—Style!/@0Outline"%ÿColor#Fill"%ÿColor%‡�"ŒSTEERRun! zCPB Mapping Steer†™î€?Mapping Steer Text(‰’AòA—Style)/@0Outline*%ÿColor+Fill*%ÿÿÿÿColor-‡�*ŒA DRun)†™î€? €?€?Mapping Steer Shadow(‰’AòA—Style0/@0Outline1%ÿColor2Fill1%ÿColor4‡�1ŒA DRun0 ŒB‚B Control Tuck†Control Tuck Text7‰’AòA—Style8/@0Outline9%ÿColor:Fill9%øØ0ÿColor<‡�9ŒTUCKRun8† €?€?Control Tuck Shadow7‰’AòA—Style?/@0Outline@%ÿColorAFill@%ÿColorC‡�@ŒTUCKRun? zC‚B Mapping Tuck†™î€?Mapping Tuck TextF‰’AòA—StyleG/@0OutlineH%ÿColorIFillH%ÿÿÿÿColorK‡�HŒSRunG†™î€? €?€?Mapping Tuck ShadowF‰’AòA—StyleN/@0OutlineO%ÿColorPFillO%ÿColorR‡�OŒSRunN ŒBœB Control Ollie†Control Ollie TextU‰’AòA—StyleV/@0OutlineW%ÿColorXFillW%øØ0ÿColorZ‡�WŒOLLIERunV† €?€?Control Ollie ShadowU‰’AòA—Style]/@0Outline^%ÿColor_Fill^%ÿColora‡�^ŒOLLIERun] zCœB Mapping Ollie†™î€?Mapping Ollie Textd‰’AòA—Stylee/@0Outlinef%ÿColorgFillf%ÿÿÿÿColori‡�fŒ SPACE / ERune†™î€? €?€?Mapping Ollie Shadowd‰’AòA—Stylel/@0Outlinem%ÿColornFillm%ÿColorp‡�mŒ SPACE / ERunl ŒB¶B Control Grabs†Control Grabs Texts‰’AòA—Stylet/@0Outlineu%ÿColorvFillu%øØ0ÿColorx‡�uŒGRABSRunt† €?€?Control Grabs Shadows‰’AòA—Style{/@0Outline|%ÿColor}Fill|%ÿColor‡�|ŒGRABSRun{ zC¶B Mapping Grabs†™î€?Mapping Grabs Text‚‰’AòA—Styleƒ/@0Outline„%ÿColor…Fill„%ÿÿÿÿColor‡‡�„Œ J K L J+KRunƒ†™î€? €?€?Mapping Grabs Shadow‚‰’AòA—StyleŠ/@0Outline‹%ÿColorŒFill‹%ÿColorއ�‹Œ J K L J+KRunŠ ŒBÐB Control Spin†Control Spin Text‘‰’AòA—Style’/@0Outline“%ÿColor”Fill“%øØ0ÿColor–‡�“ŒSPINRun’† €?€?Control Spin Shadow‘‰’AòA—Style™/@0Outlineš%ÿColor›Fillš%ÿColor�‡�šŒSPINRun™ zCÐB Mapping Spin†™î€?Mapping Spin Text ‰’AòA—Style¡/@0Outline¢%ÿColor£Fill¢%ÿÿÿÿColor¥‡�¢Œ LEFT RIGHTRun¡†™î€? €?€?Mapping Spin Shadow ‰’AòA—Style¨/@0Outline©%ÿColorªFill©%ÿColor¬‡�©Œ LEFT RIGHTRun¨ ŒBêB Control Flip†Control Flip Text¯‰’AòA—Style°/@0Outline±%ÿColor²Fill±%øØ0ÿColor´‡�±ŒFLIPRun°† €?€?Control Flip Shadow¯‰’AòA—Style·/@0Outline¸%ÿColor¹Fill¸%ÿColor»‡�¸ŒFLIPRun· zCêB Mapping Flip†™î€?Mapping Flip Text¾‰’AòA—Style¿/@0OutlineÀ%ÿColorÁFillÀ%ÿÿÿÿColorÇ�ÀŒUP DOWNRun¿†™î€? €?€?Mapping Flip Shadow¾‰’AòA—StyleÆ/@0OutlineÇ%ÿColorÈFillÇ%ÿColorʇ�ÇŒUP DOWNRunÆ ŒBCControl Restart†Control Restart Text͉’AòA—StyleÎ/@0OutlineÏ%ÿColorÐFillÏ%øØ0ÿColorÒ‡�ÏŒRESTARTRunΆ €?€?Control Restart Shadow͉’AòA—StyleÕ/@0OutlineÖ%ÿColor×FillÖ%ÿColorÙ‡�ÖŒRESTARTRunÕ zCCMapping Restart†™î€?Mapping Restart Text܉’AòA—StyleÝ/@0OutlineÞ%ÿColorßFillÞ%ÿÿÿÿColorá‡�ÞŒRRun݆™î€? €?€?Mapping Restart Shadow܉’AòA—Styleä/@0Outlineå%ÿColoræFillå%ÿColorè‡�åŒRRunä ŒBC Control Pause†Control Pause Text뉒AòA—Styleì/@0Outlineí%ÿColorîFillí%øØ0ÿColorð‡�íŒPAUSERunì† €?€?Control Pause Shadow뉒AòA—Styleó/@0Outlineô%ÿColorõFillô%ÿColor÷‡�ôŒPAUSERunó zCC Mapping Pause†™î€?Mapping Pause Textú‰’AòA—Styleû/@0Outlineü%ÿColorýFillü%ÿÿÿÿColorÿ‡�üŒESCRunû†™î€? €?€?Mapping Pause Shadowú‰’AòA—Style‚/@0Outlineƒ%ÿColor„Fillƒ%ÿColor†‡�ƒŒESCRun‚ ŒBC Control Menus†Control Menus Text‰‰’AòA—StyleŠ/@0Outline‹%ÿColorŒFill‹%øØ0ÿColorއ�‹ŒMENUSRunІ €?€?Control Menus Shadow‰‰’AòA—Style‘/@0Outline’%ÿColor“Fill’%ÿColor•‡�’ŒMENUSRun‘ zCC Mapping Menus†™î€?Mapping Menus Text˜‰’AòA—Style™/@0Outlineš%ÿColor›Fillš%ÿÿÿÿColor�‡�šŒ ARROWS ENTERRun™†™î€? €?€?Mapping Menus Shadow˜‰’AòA—Style /@0Outline¡%ÿColor¢Fill¡%ÿColor¤‡�¡Œ ARROWS ENTERRun  Controls Pad ŒBPB Control Steer§†Control Steer Text¨‰’AòA—Style©/@0Outlineª%ÿColor«Fillª%øØ0ÿColor­‡�ªŒSTEERRun©† €?€?Control Steer Shadow¨‰’AòA—Style°/@0Outline±%ÿColor²Fill±%ÿColor´‡�±ŒSTEERRun° zCPB Mapping Steer§†™î€?Mapping Steer Text·‰’AòA—Style¸/@0Outline¹%ÿColorºFill¹%ÿÿÿÿColor¼‡�¹ŒL-STICKRun¸†™î€? €?€?Mapping Steer Shadow·‰’AòA—Style¿/@0OutlineÀ%ÿColorÁFillÀ%ÿColorÇ�ÀŒL-STICKRun¿ ŒB‚B Control Tuck§†Control Tuck TextƉ’AòA—StyleÇ/@0OutlineÈ%ÿColorÉFillÈ%øØ0ÿColorˇ�ÈŒTUCKRundž €?€?Control Tuck ShadowƉ’AòA—StyleÎ/@0OutlineÏ%ÿColorÐFillÏ%ÿColorÒ‡�ÏŒTUCKRunÎ zC‚B Mapping Tuck§†™î€?Mapping Tuck TextÕ‰’AòA—StyleÖ/@0Outline×%ÿColorØFill×%ÿÿÿÿColorÚ‡�׌ STICK DOWNRunÖ†™î€? €?€?Mapping Tuck ShadowÕ‰’AòA—StyleÝ/@0OutlineÞ%ÿColorßFillÞ%ÿColorá‡�ÞŒ STICK DOWNRunÝ ŒBœB Control Ollie§†Control Ollie Text䉒AòA—Styleå/@0Outlineæ%ÿColorçFillæ%øØ0ÿColoré‡�æŒOLLIERunå† €?€?Control Ollie Shadow䉒AòA—Styleì/@0Outlineí%ÿColorîFillí%ÿColorð‡�íŒOLLIERunì zCœB Mapping Ollie§†™î€?Mapping Ollie Textó‰’AòA—Styleô/@0Outlineõ%ÿColoröFillõ%ÿÿÿÿColorø‡�õŒARunô†™î€? €?€?Mapping Ollie Shadowó‰’AòA—Styleû/@0Outlineü%ÿColorýFillü%ÿColorÿ‡�üŒARunû ŒB¶B Control Grabs§†Control Grabs Text‚‰’AòA—Styleƒ/@0Outline„%ÿColor…Fill„%øØ0ÿColor‡‡�„ŒGRABSRunƒ† €?€?Control Grabs Shadow‚‰’AòA—StyleŠ/@0Outline‹%ÿColorŒFill‹%ÿColorއ�‹ŒGRABSRunŠ zC¶B Mapping Grabs§†™î€?Mapping Grabs Text‘‰’AòA—Style’/@0Outline“%ÿColor”Fill“%ÿÿÿÿColor–‡�“Œ X B Y X+BRun’†™î€? €?€?Mapping Grabs Shadow‘‰’AòA—Style™/@0Outlineš%ÿColor›Fillš%ÿColor�‡�šŒ X B Y X+BRun™ ŒBÐB Control Spin§†Control Spin Text ‰’AòA—Style¡/@0Outline¢%ÿColor£Fill¢%øØ0ÿColor¥‡�¢ŒSPINRun¡† €?€?Control Spin Shadow ‰’AòA—Style¨/@0Outline©%ÿColorªFill©%ÿColor¬‡�©ŒSPINRun¨ zCÐB Mapping Spin§†™î€?Mapping Spin Text¯‰’AòA—Style°/@0Outline±%ÿColor²Fill±%ÿÿÿÿColor´‡�±Œ STICK L/RRun°†™î€? €?€?Mapping Spin Shadow¯‰’AòA—Style·/@0Outline¸%ÿColor¹Fill¸%ÿColor»‡�¸Œ STICK L/RRun· ŒBêB Control Flip§†Control Flip Text¾‰’AòA—Style¿/@0OutlineÀ%ÿColorÁFillÀ%øØ0ÿColorÇ�ÀŒFLIPRun¿† €?€?Control Flip Shadow¾‰’AòA—StyleÆ/@0OutlineÇ%ÿColorÈFillÇ%ÿColorʇ�ÇŒFLIPRunÆ zCêB Mapping Flip§†™î€?Mapping Flip Text͉’AòA—StyleÎ/@0OutlineÏ%ÿColorÐFillÏ%ÿÿÿÿColorÒ‡�ÏŒ STICK U/DRunΆ™î€? €?€?Mapping Flip Shadow͉’AòA—StyleÕ/@0OutlineÖ%ÿColor×FillÖ%ÿColorÙ‡�ÖŒ STICK U/DRunÕ ŒBCControl Restart§†Control Restart Text܉’AòA—StyleÝ/@0OutlineÞ%ÿColorßFillÞ%øØ0ÿColorá‡�ÞŒRESTARTRun݆ €?€?Control Restart Shadow܉’AòA—Styleä/@0Outlineå%ÿColoræFillå%ÿColorè‡�åŒRESTARTRunä zCCMapping Restart§†™î€?Mapping Restart Text뉒AòA—Styleì/@0Outlineí%ÿColorîFillí%ÿÿÿÿColorð‡�íŒSTARTRun솙î€? €?€?Mapping Restart Shadow뉒AòA—Styleó/@0Outlineô%ÿColorõFillô%ÿColor÷‡�ôŒSTARTRunó ŒBC Control Pause§†Control Pause Textú‰’AòA—Styleû/@0Outlineü%ÿColorýFillü%øØ0ÿColorÿ‡�üŒPAUSERunû† €?€?Control Pause Shadowú‰’AòA—Style‚/@0Outlineƒ%ÿColor„Fillƒ%ÿColor†‡�ƒŒPAUSERun‚ zCC Mapping Pause§†™î€?Mapping Pause Text‰‰’AòA—StyleŠ/@0Outline‹%ÿColorŒFill‹%ÿÿÿÿColorއ�‹ŒSELECTRunІ™î€? €?€?Mapping Pause Shadow‰‰’AòA—Style‘/@0Outline’%ÿColor“Fill’%ÿColor•‡�’ŒSELECTRun‘ ŒBC Control Menus§†Control Menus Text˜‰’AòA—Style™/@0Outlineš%ÿColor›Fillš%øØ0ÿColor�‡�šŒMENUSRun™† €?€?Control Menus Shadow˜‰’AòA—Style /@0Outline¡%ÿColor¢Fill¡%ÿColor¤‡�¡ŒMENUSRun  zCC Mapping Menus§†™î€?Mapping Menus Text§‰’AòA—Style¨/@0Outline©%ÿColorªFill©%ÿÿÿÿColor¬‡�©Œ D-PAD A BRun¨†™î€? €?€?Mapping Menus Shadow§‰’AòA—Style¯/@0Outline°%ÿColor±Fill°%ÿColor³‡�°Œ D-PAD A BRun¯ C,CControls Close†™î?Controls Close Text¶‰’AòA—Style·/@0Outline¸%ÿColor¹Fill¸%0ø¨ÿColor»‡�¸Œ ENTER: BACKRun·†™î? €?€?Controls Close Shadow¶‰’AòA—Style¾/@0Outline¿%ÿColorÀFill¿%ÿColor‡�¿Œ ENTER: BACKRun¾Card PathÅxB@AƉC@AÆ„CStopÕ&Àh8ÿ'�Âõ>StopÕ&8ÿ'¸?StopÕ&(PŒÿ')\?StopÕ&pÀøÿ'®G?StopÕ&Øôÿÿ'€?StopÕ�¡ôÐ�» aDWeightÑ�¡èè‘» úBWidthч�ÑŒPAUSEDRunМÖ×PausedÚ SemanticsІ™î? @@Pause Title Shadowω’ÀA—Styleá/@@0Outlineâ%ÿColorãFillâ%ÿColorå�¡ôÐ�» aDWeightâ�¡èè‘» úBWidthâ‡�âŒPAUSEDRunáItems ¤BXB Item Resumeê†ï?Item Resume Text뉒A—Styleì/@0Outlineí%ÿColorîFillí%ÿÿÿÿColorð�¡ôÐ�» aDWeightí�¡èè‘» úBWidthí‡�íŒRESUMERunìœÖ×ResumeÛ  Semanticsì�Focusì†ï? €?€?Item Resume Shadow뉒A—Style÷/@0Outlineø%ÿColorùFillø%ÿColorû�¡ôÐ�» aDWeightø�¡èè‘» úBWidthø‡�øŒRESUMERun÷ ¤B†B Item Restartê†ï?Item Restart Text€‰’A—Style�/@0Outline‚%ÿColorƒFill‚%ÿÿÿÿColor…�¡ôÐ�» aDWeight‚�¡èè‘» úBWidth‚‡�‚ŒRESTARTRun�œÖ×RestartÛ  Semantics��Focus�†ï? €?€?Item Restart Shadow€‰’A—StyleŒ/@0Outline�%ÿColorŽFill�%ÿColor��¡ôÐ�» aDWeight��¡èè‘» úBWidth�‡��ŒRESTARTRunŒ ¤B B Item Musicê†ï?Item Music Text•‰’A—Style–/@0Outline—%ÿColor˜Fill—%ÿÿÿÿColorš�¡ôÐ�» aDWeight—�¡èè‘» úBWidth—‡�—ŒMUSICRun–œÖ× Music volumeÛ  Semantics–¿ÌLÊØ”�Focus–†ï? €?€?Item Music Shadow•‰’A—Style¡/@0Outline¢%ÿColor£Fill¢%ÿColor¥�¡ôÐ�» aDWeight¢�¡èè‘» úBWidth¢‡�¢ŒMUSICRun¡ @C˜B Music Barsê €@Gap 0ª€?A{|Path«Fill«%H ÿColor­ AGap 1ª€?A{|Path¯Fill¯%H ÿColor± `AGap 2ª€?A{|Path³Fill³%H ÿColorµ ˜AGap 3ª€?A{|Path·Fill·%H ÿColor¹ ÀAGap 4ª€?A{|Path»Fill»%H ÿColor½ èAGap 5ª€?A{|Path¿Fill¿%H ÿColorÁ BGap 6ª€?A{|PathÃFillÃ%H ÿColorÅ BGap 7ª€?A{|PathÇFillÇ%H ÿColorÉ 0BGap 8ª€?A{|PathËFillË%H ÿColorÍ DBGap 9ª€?A{|PathÏFillÏ%H ÿColorÑLitªA{|PathÓ¿ÌLÊ”FillÓ%0ø¨ÿCÕUnlitªHBA{|Path×0Stroke×%ÿColorÙFill×%x`XÿColorÛ ¤BºB Item Effectsê†ï?Item Effects Text݉’A—StyleÞ/@0Outlineß%ÿColoràFillß%ÿÿÿÿColorâ�¡ôÐ�» aDWeightß�¡èè‘» úBWidth߇�ߌEFFECTSRunÞœÖ×Effects volumeÛ  SemanticsÞ¿ÌMÊØ”�FocusÞ†ï? €?€?Item Effects Shadow݉’A—Styleé/@0Outlineê%ÿColorëFillê%ÿColorí�¡ôÐ�» aDWeightê�¡èè‘» úBWidthê‡�êŒEFFECTSRuné @C²B Effects Barsê €@Gap 0ò€?A{|PathóFilló%H ÿColorõ AGap 1ò€?A{|Path÷Fill÷%H ÿColorù `AGap 2ò€?A{|PathûFillû%H ÿColorý ˜AGap 3ò€?A{|PathÿFillÿ%H ÿColor� ÀAGap 4ò€?A{|PathƒFillƒ%H ÿColor… èAGap 5ò€?A{|Path‡Fill‡%H ÿColor‰ BGap 6ò€?A{|Path‹Fill‹%H ÿColor� BGap 7ò€?A{|Path�Fill�%H ÿColor‘ 0BGap 8ò€?A{|Path“Fill“%H ÿColor• DBGap 9ò€?A{|Path—Fill—%H ÿColor™LitòA{|Path›¿ÌMÊ”Fill›%0ø¨ÿC�UnlitòHBA{|PathŸ0StrokeŸ%ÿColor¡FillŸ%x`XÿColor£ ¤BÔB Item Voiceê†ï?Item Voice Text¥‰’A—Style¦/@0Outline§%ÿColor¨Fill§%ÿÿÿÿColorª�¡ôÐ�» aDWeight§�¡èè‘» úBWidth§‡�§ŒVOICERun¦œÖ× Voice volumeÛ  Semantics¦¿ÌNÊØ”�Focus¦†ï? €?€?Item Voice Shadow¥‰’A—Style±/@0Outline²%ÿColor³Fill²%ÿColorµ�¡ôÐ�» aDWeight²�¡èè‘» úBWidth²‡�²ŒVOICERun± @CÌB Voice Barsê €@Gap 0º€?A{|Path»Fill»%H ÿColor½ AGap 1º€?A{|Path¿Fill¿%H ÿColorÁ `AGap 2º€?A{|PathÃFillÃ%H ÿColorÅ ˜AGap 3º€?A{|PathÇFillÇ%H ÿColorÉ ÀAGap 4º€?A{|PathËFillË%H ÿColorÍ èAGap 5º€?A{|PathÏFillÏ%H ÿColorÑ BGap 6º€?A{|PathÓFillÓ%H ÿColorÕ BGap 7º€?A{|Path×Fill×%H ÿColorÙ 0BGap 8º€?A{|PathÛFillÛ%H ÿColorÝ DBGap 9º€?A{|PathßFillß%H ÿColoráLitºA{|Pathã¿ÌNÊ”Fillã%0ø¨ÿCåUnlitºHBA{|Pathç0Strokeç%ÿColoréFillç%x`XÿColorë ¤BîB Item Controlsê†ï?Item Controls Text퉒A—Styleî/@0Outlineï%ÿColorðFillï%ÿÿÿÿColorò�¡ôÐ�» aDWeightï�¡èè‘» úBWidthï‡�ïŒCONTROLSRunîœÖ×ControlsÛ  Semanticsî�Focusî†ï? €?€?Item Controls Shadow퉒A—Styleù/@0Outlineú%ÿColorûFillú%ÿColorý�¡ôÐ�» aDWeightú�¡èè‘» úBWidthú‡�úŒCONTROLSRunù ¤BCItem Landing Assistê†ï?Item Landing Assist Text‚‰’A—Styleƒ/@0Outline„%ÿColor…Fill„%ÿÿÿÿColor‡�¡ôÐ�» aDWeight„�¡èè‘» úBWidth„‡�„ŒLANDING ASSISTRunƒœÖ×Landing assistÛ( Semanticsƒ¿ÌQÊè�Focusƒ†ï? €?€?Item Landing Assist Shadow‚‰’A—StyleŽ/@0Outline�%ÿColor�Fill�%ÿColor’�¡ôÐ�» aDWeight��¡èè‘» úBWidth�‡��ŒLANDING ASSISTRunŽ rCCLanding Assist Onꆙî€?Landing Assist On Text—‰’AòA—Style˜/@0Outline™%ÿColoršFill™%0ø¨ÿColorœ‡�™ŒONRun˜†™î€? €?€?Landing Assist On Shadow—‰’AòA—StyleŸ/@0Outline %ÿColor¡Fill %ÿColor£‡� ŒONRunŸ rCCLanding Assist Offꆙî€?Landing Assist Off Text¦‰’AòA—Style§/@0Outline¨%ÿColor©Fill¨%° ˜ÿColor«‡�¨ŒOFFRun§†™î€? €?€?Landing Assist Off Shadow¦‰’AòA—Style®/@0Outline¯%ÿColor°Fill¯%ÿColor²‡�¯ŒOFFRun® ¤BC Item Captionsê†ï?Item Captions Textµ‰’A—Style¶/@0Outline·%ÿColor¸Fill·%ÿÿÿÿColorº�¡ôÐ�» aDWeight·�¡èè‘» úBWidth·‡�·ŒCAPTIONSRun¶œÖ×CaptionsÛ( Semantics¶¿Ì Êè�Focus¶†ï? €?€?Item Captions Shadowµ‰’A—StyleÁ/@0OutlineÂ%ÿColorÃFillÂ%ÿColorÅ�¡ôÐ�» aDWeightÂ�¡èè‘» úBWidth‡�ÂŒCAPTIONSRunÁ rC C Captions Onꆙî€?Captions On Textʉ’AòA—StyleË/@0OutlineÌ%ÿColorÍFillÌ%0ø¨ÿColorχ�ÌŒONRunˆ™î€? €?€?Captions On Shadowʉ’AòA—StyleÒ/@0OutlineÓ%ÿColorÔFillÓ%ÿColorÖ‡�ÓŒONRunÒ rC C Captions Offꆙî€?Captions Off TextÙ‰’AòA—StyleÚ/@0OutlineÛ%ÿColorÜFillÛ%° ˜ÿColorÞ‡�ÛŒOFFRunÚ†™î€? €?€?Captions Off ShadowÙ‰’AòA—Styleá/@0Outlineâ%ÿColorãFillâ%ÿColorå‡�âŒOFFRuná ¤BCItem Reduced Motionê†ï?Item Reduced Motion Text艒A—Styleé/@0Outlineê%ÿColorëFillê%ÿÿÿÿColorí�¡ôÐ�» aDWeightê�¡èè‘» úBWidthê‡�êŒREDUCED MOTIONRunéœÖ×Reduced motionÛ( Semanticsé¿ÌPÊè�Focusé†ï? €?€?Item Reduced Motion Shadow艒A—Styleô/@0Outlineõ%ÿColoröFillõ%ÿColorø�¡ôÐ�» aDWeightõ�¡èè‘» úBWidthõ‡�õŒREDUCED MOTIONRunô rCCReduced Motion Onꆙî€?Reduced Motion On Textý‰’AòA—Styleþ/@0Outlineÿ%ÿColor€Fillÿ%0ø¨ÿColor‚‡�ÿŒONRunþ†™î€? €?€?Reduced Motion On Shadowý‰’AòA—Style…/@0Outline†%ÿColor‡Fill†%ÿColor‰‡�†ŒONRun… rCCReduced Motion Offꆙî€?Reduced Motion Off TextŒ‰’AòA—Style�/@0OutlineŽ%ÿColor�FillŽ%° ˜ÿColor‘‡�ŽŒOFFRun�†™î€? €?€?Reduced Motion Off ShadowŒ‰’AòA—Style”/@0Outline•%ÿColor–Fill•%ÿColor˜‡�•ŒOFFRun” ¤B+CItem High Contrastê†ï?Item High Contrast Text›‰’A—Styleœ/@0Outline�%ÿColoržFill�%ÿÿÿÿColor �¡ôÐ�» aDWeight��¡èè‘» úBWidth�‡��Œ HIGH CONTRASTRunœœÖ× High contrastÛ( Semanticsœ¿Ì Êè�Focusœ†ï? €?€?Item High Contrast Shadow›‰’A—Style§/@0Outline¨%ÿColor©Fill¨%ÿColor«�¡ôÐ�» aDWeight¨�¡èè‘» úBWidth¨‡�¨Œ HIGH CONTRASTRun§ rC'CHigh Contrast Onꆙî€?High Contrast On Text°‰’AòA—Style±/@0Outline²%ÿColor³Fill²%0ø¨ÿColorµ‡�²ŒONRun±†™î€? €?€?High Contrast On Shadow°‰’AòA—Style¸/@0Outline¹%ÿColorºFill¹%ÿColor¼‡�¹ŒONRun¸ rC'CHigh Contrast Offꆙî€?High Contrast Off Text¿‰’AòA—StyleÀ/@0OutlineÁ%ÿColorÂFillÁ%° ˜ÿColorć�ÁŒOFFRunÀ†™î€? €?€?High Contrast Off Shadow¿‰’AòA—StyleÇ/@0OutlineÈ%ÿColorÉFillÈ%ÿColorˇ�ÈŒOFFRunÇ ¤B8CItem Quit To Titleê†ï?Item Quit To Title TextΉ’A—StyleÏ/@0OutlineÐ%ÿColorÑFillÐ%ÿÿÿÿColorÓ�¡ôÐ�» aDWeightÐ�¡èè‘» úBWidthЇ�ÐŒ QUIT TO TITLERunÏœÖ× Quit to titleÛ  SemanticsÏ�Focusφï? €?€?Item Quit To Title ShadowΉ’A—StyleÚ/@0OutlineÛ%ÿColorÜFillÛ%ÿColorÞ�¡ôÐ�» aDWeightÛ�¡èè‘» úBWidthÛ‡�ÛŒ QUIT TO TITLERunÚ Selection¿ÌÊ” �BHBCursorㆠCursor Text䉒AòA—Styleå/@0Outlineæ%ÿColorçFillæ%ÿÿÿÿColoré‡�æŒ>Runå† €?€? Cursor Shadow䉒AòA—Styleì/@0Outlineí%ÿColorîFillí%ÿColorð‡�íŒ>Runì Selection Barã PathóŠB@Bô}C@BôzCtBô„BtBôFilló%�8øÿColorù CLCPause Hint Keys†™î?Pause Hint Keys Textû‰’AòA—Styleü/@0Outlineý%ÿColorþFillý%øØ0ÿColor€ ‡�ýŒENTER: SELECT ESC: RESUMERunü†™î? €?€?Pause Hint Keys Shadowû‰’AòA—Styleƒ /@0Outline„ %ÿColor… Fill„ %ÿColor‡ ‡�„ ŒENTER: SELECT ESC: RESUMERunƒ  CLCPause Hint Pad†™î?Pause Hint Pad TextŠ ‰’AòA—Style‹ /@0OutlineŒ %ÿColor� FillŒ %øØ0ÿColor� ‡�Œ ŒA: SELECT B: RESUMERun‹ †™î? €?€?Pause Hint Pad ShadowŠ ‰’AòA—Style’ /@0Outline“ %ÿColor” Fill“ %ÿColor– ‡�“ ŒA: SELECT B: RESUMERun’ Panel Path™ ŒB Aš …C Aš |CDCš `BDCš /@@0Stroke™ %�8øÿColorŸ Fill™ %H ÿColor¡  Panel Shadow Path£ ”B`A¤ ‡C`A¤ €CHC¤ pBHC¤ Fill£ %ÿColor©  zÄzÄDimE E{|Path« Fill« %€Color­ œÖ× Pause menuÜ€ Semantics? ×#>@€?Aš™™>9;7 Dialog Closed3¯ 5ìTµ9;7 Dialog Open3¯ 5ìT9;7Landing Assist On3—5F€?3¦59;7Landing Assist Off3—53¦5F€?9;7 Captions On3Ê5F€?3Ù59;7 Captions Off3Ê53Ù5F€?9;7Reduced Motion On3ý5F€?3Œ59;7Reduced Motion Off3ý53Œ5F€?9;7High Contrast On3°5F€?3¿59;7High Contrast Off3°53¿5F€?9;7 Card Hidden3535ìTµ9 7Card In35F€?5 FpBDE° C 35ìT9;7 Hint Keys3û5F€?3Š 535F€?3§59;7Hint Pad3û53Š 5F€?353§5F€?57Pause9ŠShown>A—âØ¿ÌJÊúßá‡A—âØ¿ÌJÊúßá@?A—=•=•9ŠToggle Landing Assist>A—âØ¿ÌQÊúßá‡A—âØ¿ÌQÊúßá@?A—=•=•9ŠToggle Captions>A—âØ¿Ì Êúßá‡A—âØ¿Ì Êúßá@?A—=•=•9ŠToggle Reduced Motion>A—âØ¿ÌPÊúßá‡A—âØ¿ÌPÊúßá@?A—=•=•9ŠToggle High Contrast>A—âØ¿Ì Êúßá‡A—âØ¿Ì Êúßá@?A—=•=• 9Š Controls Card>@?A—=• A—âØ¿ÌAÊúßá‡=• A—âØ¿ÌAÊúßá9ŠDevice>A—âÙ¿ÌBÊüß䌀?A—âŠÙ¿ÌBÊüß䌀?@?A—=• =• Äì CpCî kEWipe¤åæçèéêëìñòArtboard Style €;ÅSnowSnow Edge Pink PathÈÂHÄŒÂHÄ Á‚D ‚DFill%�8øÿColor Snow Edge Cyan Path ðÂHÄ ÔÂHÄ 8‚D p‚D Fill %øØ0ÿColor ŽÂ ÁSpray 0@@{|PathFill%ÿøôÿColor ÆÂˆASpray 1€@€@{|PathFill%ÿøôÿColor þÂXBSpray 2À@À@{|PathFill%ÿøôÿColor öBSpray 3@@{|PathFill%ÿøôÿColor! ¸ÂCSpray 4€@€@{|Path#Fill#%ÿøôÿColor% ðÂ%CSpray 5À@À@{|Path'Fill'%ÿøôÿColor) ÃJCSpray 6@@{|Path+Fill+%ÿøôÿColor- ¬ÂoCSpray 7€@€@{|Path/Fill/%ÿøôÿColor1 ö€ÀSpray 8À@À@{|Path3Fill3%ÿøôÿColor5 ÃBSpray 9@@{|Path7Fill7%ÿøôÿColor9 °ÂŒBSpray 10€@€@{|Path;Fill;%ÿøôÿColor= èÂÖBSpray 11À@À@{|Path?Fill?%ÿøôÿColorA ÃCSpray 12@@{|PathCFillC%ÿøôÿColorE ¤Â5CSpray 13€@€@{|PathGFillG%ÿøôÿColorI ÚÂZCSpray 14À@À@{|PathKFillK%ÿøôÿColorM ÃCSpray 15@@{|PathOFillO%ÿøôÿColorQ ¨Â@ASpray 16€@€@{|PathSFillS%ÿøôÿColorU àÂDBSpray 17À@À@{|PathWFillW%ÿøôÿColorY ìBSpray 18@@{|Path[Fill[%ÿøôÿColor] šÂöBSpray 19€@€@{|Path_Fill_%ÿøôÿColora Ò CSpray 20À@À@{|PathcFillc%ÿøôÿColore ÃECSpray 21@@{|PathgFillg%ÿøôÿColori ŽÂjCSpray 22€@€@{|PathkFillk%ÿøôÿColorm ØÂÁSpray 23À@À@{|PathoFillo%ÿøôÿColorq €„D ÁFlake 0@@{|PathsFills%ì̸ÿColoru ‹DšBFlake 1@@@@{|PathwFillw%ì̸ÿColory À‘D.CFlake 2@@{|Path{Fill{%ì̸ÿColor} `˜DÁFlake 3@@@@{|PathFill%ì̸ÿColor� ŸD°BFlake 4@@{|PathƒFillƒ%ì̸ÿColor…  ¥D9CFlake 5@@@@{|Path‡Fill‡%ì̸ÿColor‰ @¬D@Flake 6@@{|Path‹Fill‹%ì̸ÿColor� à²DÆBFlake 7@@@@{|Path�Fill�%ì̸ÿColor‘ …DDCFlake 8@@{|Path“Fill“%ì̸ÿColor•  ‹DPAFlake 9@@@@{|Path—Fill—%ì̸ÿColor™ @’DÜBFlake 10@@{|Path›Fill›%ì̸ÿColor� à˜DOCFlake 11@@@@{|PathŸFillŸ%ì̸ÿColor¡ €ŸDÀAFlake 12@@{|Path£Fill£%ì̸ÿColor¥ ¦DòBFlake 13@@@@{|Path§Fill§%ì̸ÿColor© À¬DZCFlake 14@@{|Path«Fill«%ì̸ÿColor­ `³D BFlake 15@@@@{|Path¯Fill¯%ì̸ÿColor± €…DCFlake 16@@{|Path³Fill³%ì̸ÿColorµ ŒDeCFlake 17@@@@{|Path·Fill·%ì̸ÿColor¹ À’D8BFlake 18@@{|Path»Fill»%ì̸ÿColor½ `™DCFlake 19@@@@{|Path¿Fill¿%ì̸ÿColorÁ  DpCFlake 20@@{|PathÃFillÃ%ì̸ÿColorÅ  ¦DdBFlake 21@@@@{|PathÇFillÇ%ì̸ÿColorÉ @­DCFlake 22@@{|PathËFillË%ì̸ÿColorÍ à³D{CFlake 23@@@@{|PathÏFillÏ%ì̸ÿColorÑ †DˆBFlake 24@@{|PathÓFillÓ%ì̸ÿColorÕ  ŒD%CFlake 25@@@@{|Path×Fill×%ì̸ÿColorÙ @“D�ÁFlake 26@@{|PathÛFillÛ%ì̸ÿColorÝ à™DžBFlake 27@@@@{|PathßFillß%ì̸ÿColorá € D0CFlake 28@@{|PathãFillã%ì̸ÿColorå §DàÀFlake 29@@@@{|PathçFillç%ì̸ÿColoré À­D´BFlake 30@@{|PathëFillë%ì̸ÿColorí `´D;CFlake 31@@@@{|PathïFillï%ì̸ÿColorñ €†D€@Flake 32@@{|PathóFilló%ì̸ÿColorõ �DÊBFlake 33@@@@{|Path÷Fill÷%ì̸ÿColorù À“DFCFlake 34@@{|PathûFillû%ì̸ÿColorý `šDpAFlake 35@@@@{|PathÿFillÿ%ì̸ÿColor� ¡DàBFlake 36@@{|PathƒFillƒ%ì̸ÿColor…  §DQCFlake 37@@@@{|Path‡Fill‡%ì̸ÿColor‰ @®DÐAFlake 38@@{|Path‹Fill‹%ì̸ÿColor� à´DöBFlake 39@@@@{|Path�Fill�%ì̸ÿColor‘ ‡D\CFlake 40@@{|Path“Fill“%ì̸ÿColor•  �DBFlake 41@@@@{|Path—Fill—%ì̸ÿColor™ @”DCFlake 42@@{|Path›Fill›%ì̸ÿColor� àšDgCFlake 43@@@@{|PathŸFillŸ%ì̸ÿColor¡ €¡D@BFlake 44@@{|Path£Fill£%ì̸ÿColor¥ ¨DCFlake 45@@@@{|Path§Fill§%ì̸ÿColor© À®DrCFlake 46@@{|Path«Fill«%ì̸ÿColor­ `µDlBFlake 47@@@@{|Path¯Fill¯%ì̸ÿColor± €‡DCFlake 48@@{|Path³Fill³%ì̸ÿColorµ ŽD}CFlake 49@@@@{|Path·Fill·%ì̸ÿColor¹ À”DŒBFlake 50@@{|Path»Fill»%ì̸ÿColor½ `›D'CFlake 51@@@@{|Path¿Fill¿%ì̸ÿColorÁ ¢D€ÁFlake 52@@{|PathÃFillÃ%ì̸ÿColorÅ  ¨D¢BFlake 53@@@@{|PathÇFillÇ%ì̸ÿColorÉ @¯D2CFlake 54@@{|PathËFillË%ì̸ÿColorÍ àµD ÀFlake 55@@@@{|PathÏFillÏ%ì̸ÿColorÑ ˆD¸BFlake 56@@{|PathÓFillÓ%ì̸ÿColorÕ  ŽD=CFlake 57@@@@{|Path×Fill×%ì̸ÿColorÙ @•DÀ@Flake 58@@{|PathÛFillÛ%ì̸ÿColorÝ à›DÎBFlake 59@@@@{|PathßFillß%ì̸ÿColorá €¢DHCFlake 60@@{|PathãFillã%ì̸ÿColorå ©DˆAFlake 61@@@@{|PathçFillç%ì̸ÿColoré À¯DäBFlake 62@@{|PathëFillë%ì̸ÿColorí `¶DSCFlake 63@@@@{|PathïFillï%ì̸ÿColorñ €ˆDàAFlake 64@@{|PathóFilló%ì̸ÿColorõ �DúBFlake 65@@@@{|Path÷Fill÷%ì̸ÿColorù À•D^CFlake 66@@{|PathûFillû%ì̸ÿColorý `œDBFlake 67@@@@{|PathÿFillÿ%ì̸ÿColor� £DCFlake 68@@{|PathƒFillƒ%ì̸ÿColor…  ©DiCFlake 69@@@@{|Path‡Fill‡%ì̸ÿColor‰ @°DHBFlake 70@@{|Path‹Fill‹%ì̸ÿColor� à¶DCFlake 71@@@@{|Path�Fill�%ì̸ÿColor‘ ‰DtCFlake 72@@{|Path“Fill“%ì̸ÿColor•  �DtBFlake 73@@@@{|Path—Fill—%ì̸ÿColor™ @–DCFlake 74@@{|Path›Fill›%ì̸ÿColor� àœDCFlake 75@@@@{|PathŸFillŸ%ì̸ÿColor¡ €£D�BFlake 76@@{|Path£Fill£%ì̸ÿColor¥ ªD)CFlake 77@@@@{|Path§Fill§%ì̸ÿColor© À°D`ÁFlake 78@@{|Path«Fill«%ì̸ÿColor­ `·D¦BFlake 79@@@@{|Path¯Fill¯%ì̸ÿColor± €‰D4CFlake 80@@{|Path³Fill³%ì̸ÿColorµ �D@ÀFlake 81@@@@{|Path·Fill·%ì̸ÿColor¹ À–D¼BFlake 82@@{|Path»Fill»%ì̸ÿColor½ `�D?CFlake 83@@@@{|Path¿Fill¿%ì̸ÿColorÁ ¤DAFlake 84@@{|PathÃFillÃ%ì̸ÿColorÅ  ªDÒBFlake 85@@@@{|PathÇFillÇ%ì̸ÿColorÉ @±DJCFlake 86@@{|PathËFillË%ì̸ÿColorÍ à·D˜AFlake 87@@@@{|PathÏFillÏ%ì̸ÿColorÑ ŠDèBFlake 88@@{|PathÓFillÓ%ì̸ÿColorÕ  �DUCFlake 89@@@@{|Path×Fill×%ì̸ÿColorÙ €�DðB Wipe Word†™î?ï?Wipe Word TextÛ‰’ A—StyleÜ/@@0OutlineÝ%x,ÿColorÞFillÝ%øØ0ÿColorà�¡ôÐ�» aDWeightÝ�¡èè‘» úBWidth݇�ÝŒRESPAWNRun܆™î?ï? @@Wipe Word ShadowÛ‰’ A—Styleå/@@0Outlineæ%ÿColorçFillæ%ÿColoré�¡ôÐ�» aDWeightæ�¡èè‘» úBWidthæ‡�æŒRESPAWNRunå Snow Sheet PathîŒÂHÄï EHÄï`E‚Dï Á‚DïFillî%ÿøôÿColorô9;7 Wipe Idle35 F€;Å5F€?9Z7Wipe Run35F€?5 FÈCFÈCDC<F€‰ÄCEF€‰ÄDCQF€"ÅCZ9Z7 Wipe Fade35 F€‰Ä5DC<F€?CEF€?DCQCZ57Wipe9ŠWipe>@?A—=•A—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßáA—â÷¿ÌÊ®”ßùâØ¿ÌPÊúßá‡=•A—˜  d=•A—˜  dÄì CpCî À…ECaptions¤åæçèéêëìñòArtboard StyleCaption CLC Caption Text†™î?Caption Text Text‰’AòA—Style/@0Outline%ÿColorFill%ÿÿÿÿColor‡�Run¿ÌÊŒœÖÜ€ Semantics¿ÌÊ׆™î? €?€?Caption Text Shadow‰’AòA—Style /@0Outline %ÿColorFill %ÿColor‡� Run ¿ÌÊŒ Caption Plate Path BHC�CHCŽCXCBXCFill%°Color9;7Caption Hidden353 5ìTµ9´7 Caption A35F€?F€?DCªC´3 5ìTTµC´9´7 Caption B35F€?F€?DCªC´3 5ìTTµC´57Captions9ŠCaptions>@?A—=•A—â÷¿Ì@Ê®”ßùâØ¿Ì Êúßá‡âŠÙ¿Ì?Êüßä=•A—â÷¿Ì@Ê®”ßùâØ¿Ì Êúßá‡âŠÙ¿Ì?ÊüßäA—˜  dA—âØ¿Ì Êúßá=•A—â÷¿Ì@Ê®”ßùâØ¿Ì Êúßá‡âŠÙ¿Ì?ÊüßäA—˜  dA—âØ¿Ì ÊúßáÄìHDÈCîYÈÃNuRiveWordmark01 ÈCHCRIVE_Wordmark_ROOTR 2 PathR¸ëAø@ Component)\�AÃõø@ Component.4B B ComponentR¸ÍA B Component)\Ÿ¿q=ú@ ComponentìQ‹Á…û@ ComponentìQ‹Áš™áÀ ComponentWázT?= æAš™áÀ ComponentTÛÉ?UázT?= òAÍÌÁ ComponentVÛÉ¿WázT?= òA\�¾Á ComponentUázT?= æA\�ÊÁ Component.4Â\�ÊÁ Component.4  ComponentWáz4@R¸ëA  ComponentT'ÀU¸0@Ved ?Wm~0@B\� ComponentT=ÀU·Ø.@V®¥ƒ?W·Ø.@3³+B{ ComponentTÛÉ¿Uáz4@×#4BìQÄÁ ComponentVÛÉ?Wáz4@×#4B= ÷À ComponentTöÄ¿Uà*0@Vá@Wm~0@3³+B)\�= ComponentTf-¿Uâ2/@V]¢'@WÎÀ/@B{¶@ ComponentUáz4@R¸ëAø@ ComponentFill 1%ÿÿÿÿ Component RIVE_wordmark ì‘3ÃR PathR¸ëAø@ Component)\�AÃõø@ Component.4B B ComponentR¸ÍA B Component)\Ÿ¿q=ú@ ComponentìQ‹Á…û@ ComponentìQ‹Áš™áÀ ComponentWázT?= æAš™áÀ ComponentTÛÉ?UázT?= òAÍÌÁ ComponentVÛÉ¿WázT?= òA\�¾Á ComponentUázT?= æA\�ÊÁ Component.4Â\�ÊÁ Component.4  ComponentWáz4@R¸ëA  ComponentT'ÀU¸0@Ved ?Wm~0@B\� ComponentT=ÀU·Ø.@V®¥ƒ?W·Ø.@3³+B{ ComponentTÛÉ¿Uáz4@×#4BìQÄÁ ComponentVÛÉ?Wáz4@×#4B= ÷À ComponentTöÄ¿Uà*0@Vá@Wm~0@3³+B)\�= ComponentTf-¿Uâ2/@V]¢'@WÎÀ/@B{¶@ ComponentUáz4@R¸ëAø@ ComponentFill 1%ÿÿÿÿ Component3 €hÂÿë½I Path5®GéÀ=ŠB Component6®GéÀ=ŠÂ Component6®Gé@=ŠÂ Component6®Gé@=ŠB Component6Fill 15%ÿÿÿÿ Component; ÀõEBÿë½V Path=¸ÑÀ=ŠB Component>¤ðRÂ=ŠÂ Component>3³Â=ŠÂ Component> ×£;q=±A Component>×#B=ŠÂ Component>¤ðRB=ŠÂ Component>¸Ñ@=ŠB Component>Fill 1=%ÿÿÿÿ ComponentF P8;C×½E PathH{”€B ComponentI{”Â{” ComponentI{”B{” ComponentI{”Bq=ÉÁ ComponentIq=µÁq=ÉÁ ComponentIq=µÁš™íÀ ComponentI)\ÄAš™íÀ ComponentI)\ÄAš™í@ ComponentIq=µÁš™í@ ComponentIq=µÁq=ÉA ComponentI{”Bq=ÉA ComponentI{”B{”B ComponentI{”Â{”B ComponentIFill 1H%ÿÿÿÿ ComponentW¤åæçèéêëìñò Layout Style?A?€?A€??€?A9ð<=w>ø7 Timeline 135FÍÌL>CF€?CF?C F€?C C5F@@CF€?C 5F@@CF€?C 35CF€?CFš™™>CF€?CF€?DCXDCb355CF€?CFš™™>CF€?CF€?DCPDCZ5 F€ÂDEZCF€hÂDC#3=5CF€?CFš™™>CF€?C!F€?DCTDC^5 FàúŠBDEZCFÀõEBDC%3H5CF€?CFš™™>CF€?C#F€?DC\DCf5 FP8OCDEZCFP8;CDC'35 FœADEZCF¿DC%5F€?DE[CPFfff?DCf5F€?DE[CPFfff?DCf35F0¶BDE\CFR¸ëADC5Fø@DE\CFø@DC5DE\CDC35F YŸBDE\CF)\�ADC5FÃõø@DE\CFÃõø@DC5DE\CDC3 5F YÕBDE\CF.4BDC5F BDE\CF BDC5DE\CDC3!5F°®BDE\CFR¸ÍADC5F BDE\CF BDC5DE\CDC3"5F‰qBDE\CF)\Ÿ¿DC5Fq=ú@DE\CFq=ú@DC5DE\CDC3#5FìQ‹ÁDE\CFìQ‹ÁDC5F…û@DE\CF…û@DC5DE\CDC3$5FìQ‹ÁDE\CFìQ‹ÁDC5Fš™áÀDE\CFš™áÀDC5DE\CDC3%5F�Ä´BDE\CF= æADC5Fš™áÀDE\CFš™áÀDC5TDE\CDC5VDE\CDC5UDE\CDC5WFázT?DE\CFázT?DC3&5F�Ä·BDE\CF= òADC5FÍÌÁDE\CFÍÌÁDC5TFÛÉ?DE\CFÛÉ?DC5VDE\CDC5UFázT?DE\CFázT?DC5WDE\CDC3'5F�Ä·BDE\CF= òADC5F\�¾ÁDE\CF\�¾ÁDC5TDE\CDC5VFÛÉ¿DE\CFÛÉ¿DC5UDE\CDC5WFázT?DE\CFázT?DC3(5F�Ä´BDE\CF= æADC5F\�ÊÁDE\CF\�ÊÁDC5TDE\CDC5VDE\CDC5UFázT?DE\CFázT?DC5WDE\CDC3)5F.4ÂDE\CF.4ÂDC5F\�ÊÁDE\CF\�ÊÁDC5DE\CDC3*5F.4ÂDE\CF.4ÂDC5F ÂDE\CF ÂDC5DE\CDC3+5F0¶BDE\CFR¸ëADC5F ÂDE\CF ÂDC5TDE\CDC5VDE\CDC5UDE\CDC5WFáz4@DE\CFáz4@DC3,5F�ÄÅBDE\CFBDC5F\�ÂDE\CF\�ÂDC5TF'ÀDE\CF'ÀDC5VFed ?DE\CFed ?DC5UF¸0@DE\CF¸0@DC5WFm~0@DE\CFm~0@DC3-5FšÑBDE\CF3³+BDC5F{ÂDE\CF{ÂDC5TF=ÀDE\CF=ÀDC5VF®¥ƒ?DE\CF®¥ƒ?DC5UF·Ø.@DE\CF·Ø.@DC5WF·Ø.@DE\CF·Ø.@DC3.5FìSÕBDE\CF×#4BDC5FìQÄÁDE\CFìQÄÁDC5TFÛÉ¿DE\CFÛÉ¿DC5VDE\CDC5UFáz4@DE\CFáz4@DC5WDE\CDC3/5FìSÕBDE\CF×#4BDC5F= ÷ÀDE\CF= ÷ÀDC5TDE\CDC5VFÛÉ?DE\CFÛÉ?DC5UDE\CDC5WFáz4@DE\CFáz4@DC305FšÑBDE\CF3³+BDC5F)\�=DE\CF)\�=DC5TFöÄ¿DE\CFöÄ¿DC5VFá@DE\CFá@DC5UFà*0@DE\CFà*0@DC5WFm~0@DE\CFm~0@DC315F�ÄÅBDE\CFBDC5F{¶@DE\CF{¶@DC5TFf-¿DE\CFf-¿DC5VF]¢'@DE\CF]¢'@DC5UFâ2/@DE\CFâ2/@DC5WFÎÀ/@DE\CFÎÀ/@DC325F0¶BDE\CFR¸ëADC5Fø@DE\CFø@DC5TDE\CDC5VDE\CDC5UFáz4@DE\CFáz4@DC5WDE\CDC3J5F{”ÂDEZCF{”ÂDC'5F€BDEZCF€BDC'5DEZCDC'3K5F{”ÂDEZCF{”ÂDC'5F{”ÂDEZCF{”ÂDC'5DEZCDC'3L5FeCDEZCF{”BDC'5F{”ÂDEZCF{”ÂDC'5DEZCDC'3M5FeCDEZCF{”BDC'5Fq=ÉÁDEZCFq=ÉÁDC'5DEZCDC'3N5Fq=µÁDEZCFq=µÁDC'5Fq=ÉÁDEZCFq=ÉÁDC'5DEZCDC'3O5Fq=µÁDEZCFq=µÁDC'5Fš™íÀDEZCFš™íÀDC'5DEZCDC'3P5F ©BDEZCF)\ÄADC'5Fš™íÀDEZCFš™íÀDC'5DEZCDC'3Q5F ©BDEZCF)\ÄADC'5Fš™í@DEZCFš™í@DC'5DEZCDC'3R5Fq=µÁDEZCFq=µÁDC'5Fš™í@DEZCFš™í@DC'5DEZCDC'3S5Fq=µÁDEZCFq=µÁDC'5Fq=ÉADEZCFq=ÉADC'5DEZCDC'3T5FeCDEZCF{”BDC'5Fq=ÉADEZCFq=ÉADC'5DEZCDC'3U5FeCDEZCF{”BDC'5F{”BDEZCF{”BDC'5DEZCDC'3V5F{”ÂDEZCF{”ÂDC'5F{”BDEZCF{”BDC'5DEZCDC'57State Machine 19ŠLayer 1>@?A—=•ÄìHDHDîô ÀeDÈÃNuRiveBrandmark01 ÈCÈC@@ROOT“¨icon_shuffle_groupž diag_lines Path= 'ÂH ComponentHÂ= ' ComponentHÂH Component €Path…ë‘ÁH ComponentHÂ…ë‘Á ComponentHÂö(Á Componentö(ÁH Component €PathHBHB Component HB= 'B Component = 'BHB Component  €Path…ë‘AHB ComponentHB…ë‘A ComponentHBö(A Componentö(AHB Component €Pathö(\AH ComponentHÂö(\A ComponentHÂ…ë±A Component…ë±AH Component €Pathö(\ÁHB ComponentHBö(\Á ComponentHB…ë±Á Component…ë±ÁHB Component €Path= 7BH Component HÂ= 7B Component HÂHB Component = 7ÂHB Component HB= 7 Component HBH Component Fill 1%ÿÿÿÿ Component'ž lightning Path))\‰ÁHB Component* ×ÛÀ Component*š™ãÁ Component*žÁH Component*š™ÓAH Component*33›@HÁ Component*š™ãAHÁ Component*®G‰ÁHB Component*Fill 1)%ÿÿÿÿ Component3ž icon_game_dev Path5ìQ…A)\…Á Component6ìQ…Á)\…Á Component6ìQ…ÁH Component6ìQ…AH Component6 €Path5ìQ…A)\…A Component;ìQ…Á)\…A Component;ìQ…ÁHB Component;ìQ…AHB Component; €Path5áúGB)\…A Component@áúGB®G…Á Component@ìQ…A®G…Á Component@ìQ…A)\…A Component@ €Path5ìQ…Á)\…A ComponentEìQ…Á®G…Á ComponentEáúG®G…Á ComponentEáúGÂ)\…A ComponentE €Path5UÍÌÜ@VÛI@WÍÌÜ@ ×£»HÁ ComponentJTÛÉ¿UÍÌÜ@VÛÉ?WÍÌÜ@{HÁ ComponentJTÛI@UÍÌÜ@WÍÌÜ@ ×£»HA ComponentJTÛÉ?UÍÌÜ@VÛÉ¿WÍÌÜ@…ëGA ComponentJFill 15%ÿÿÿÿ ComponentOžicon_product_designer PathQHÂq=ZA ComponentRHÂ{ZÁ ComponentR ×µÁ{ZÁ ComponentR ×µÁq=ZA ComponentR €PathQVÛÉ¿WÃõð@ ×µÁ¤p ComponentWUÃõð@VÛI@WÃõð@¤pÂH ComponentWTÛÉ¿UÃõð@VÛÉ?WÃõð@H¤p ComponentWTÛI@UÃõð@WÃõð@¤pÂ�µÁ ComponentWTÛÉ?UÃõð@�µÁ¤p ComponentW €PathQq=ZAq=ZA Component]q=ZA{ZÁ Component]{ZÁ{ZÁ Component]{ZÁq=ZA Component] €PathQHBq=ZA ComponentbHB{ZÁ Componentb ×µA{ZÁ Componentb ×µAq=ZA Componentb €PathQHBHB ComponentgHB ×µA Componentg ×µA ×µA Componentg ×µAHB Componentg €PathQHB ×µÁ ComponentlHBH Componentlq=ZÁH Componentlq=ZÁ ×µÁ Componentl €PathQH ׵A ComponentqHÂHB Componentqq=ZAHB Componentqq=ZA ×µA ComponentqFill 1Q%ÿÿÿÿ Componentvž icon_animator PathxHB ComponentyH ComponentyH ComponentyHB ComponentyFill 1x%ÿÿÿÿ Component~ž icon_swords Path€ ×]A( Component��ÂÆA®/A Component�¸þA…ë�@ Component�q½B®/A Component�)\âAÃõªA Component�ÍL&Bš™ B Component�Ha/B…B Component�€?B×£B Component�ö¨Báz?B Component�=ŠB)\/B Component�¸ž B®G&B Component�«AìQâA Component��Â/AR¸B Component�{‚@{þA Component��Â/AR¸ÆA Component� ×£;�Â]A Component�š™/ÁR¸ÆA Component��Â�À{þA Component�š™/ÁR¸B Component�…ëªÁìQâA Component�{” ®G&B Component�€Â)\/B Component�¸žÂáz?B Component�Ãu?Â×£B Component� W/Â…B Component��B&š™ B Component�®GâÁÃõªA Component�3³Â®/A Component�= þÁ…ë�@ Component�®ÆÁ®/A Component�®]Á¨ Component�€?Â{ Component�€?Âáz? Component�šÂáz? Component� ×£»š™]Á Component�\Báz? Component�Ãu?Báz? Component�Ãu?B{ Component�…]A¨ Component�Fill 1€%ÿÿÿÿ Component©ž icon_unknown €Path«V‘ÀWp3?ìQBö(  Component¬TÐ¥K?Uâ73?VäËÀWúfÊA…Bq= Component¬T-"I¿UXÊAVäË@Wó5?\�Âq= Component¬TO�S¿Uò‹1?V}ß@W\Þ´A)\Âö(  Component¬T†YÀUÞã´Aáz®ÉA Component¬V0ÍZ?WÅ]xAq=šÁÃõ'B Component¬T�\@UÅ]xAq=šAÃõ'B Component¬VSÙZ¿WÞã´AázB®ÉA Component¬TxÁT?U\Þ´A)\Bö(  Component¬ Path«TûãK¿UÕ£@VÜ@WÕ£@ö(¤ÀázÒA Component¶TÉF?Uä AVBtÀW@ Aš™¹ÁHá¬A Component¶TÜ@UÕ£@VûãK¿WÕ£@ìQâÁš™i@ Component¶T(ŽÀUä AVcnF?W@ A…#Áš™A Component¶ Path«TcnF¿U@ AVBt@W@ A¤p¹AÍ̬A Component»T™ˆK?Ur¤@VÜÀWÕ£@…£@ffÒA Component»TBt@U@ AVcnF¿W@ A33#A¤pA Component»Tµ-ÀUr¤@VûãK?WÕ£@ö(âAÃõh@ Component»Fill 1«%ÿÿÿÿ ComponentÀžicon_developer PathÂìQ…AHB ComponentÃìQ…AìQB Componentà WBìQB Componentà WBìQ ComponentÃìQ…AìQ ComponentÃìQ…AH ComponentÃáúGBH ComponentÃáúGBHB Componentà €PathÂìQ…ÁHB ComponentÌìQ…ÁìQB ComponentÌ WÂìQB ComponentÌ WÂìQ ComponentÌìQ…ÁìQ ComponentÌìQ…ÁH ComponentÌáúGÂH ComponentÌáúGÂHB ComponentÌFill 1Â%ÿÿÿÿ ComponentÕž R_brandmark €Path×HÂH ComponentØHÂHB ComponentØHBHB ComponentØHBH ComponentØ Path×VÛÉ?W�Â@ìQBR¸¶À ComponentÝTjm„¿UI@V4°@WöÕ@ö(þAÍÌL= ComponentÝT]v¿Ut0@VCr'@Wt0@\�ÜAR¸†@ ComponentÝU¸@áz®A)\·@ ComponentÝ�ÂUA¸@ ComponentÝ)\BÍÌìA ComponentÝq=˜AÍÌìA ComponentÝ…k¿®G¹@ ComponentÝq=NÁq=º@ ComponentÝq=NÁR¸¦À ComponentÝWö(?q=ªAR¸¦À ComponentÝTÛÉ?Uö(?¸³Aq=ÊÀ ComponentÝVÛÉ¿Wö(?¸³AÃõŒÁ ComponentÝUö(?q=ªA וÁ ComponentÝìQ וÁ ComponentÝìQÂÍÌìÁ ComponentÝW�Â@áz®AÍÌìÁ ComponentÝT£¾&ÀUI@V¡?WöÕ@\�ÜAìQàÁ ComponentÝT,ÀU¿/@VŒÇƒ?W¿/@ö(þA= ¿Á ComponentÝTÛÉ¿U¸@ìQB®G‘Á ComponentÝFill 1×%ÿÿÿÿ Componentò¤åæçèéêëìñò Layout Style9ð<=‡>7 Timeline 135¨2z×C2zC2z)C2z5C"2zQC*2zxC22z€C:2z«CB2zÂCJ2z×CT5F€?C3×5FÍÌL>CF?CFÍÌL>C F€?C FÍÌL>CTF?CXFÍÌL>C\F€?C`F?CrF€?CvFÍÌÌ=CzFš™™>C}C�5F@CF€?C F€?C`Ffff?Cd5F@CF€?C F€?C`Ffff?Cd57State Machine 19ŠLayer 1>@?A—=•ÄìÇðD‡Dî  ´D Watermark™ðD‡DîRow™HDHDîLayoutÚÅNuRiveWordmark01_ÆState Machine 1ÚŠNuRiveBrandmark01_ÆState Machine 1¤åæçèéêëìñò�� Layout Style¤øåæçèéêëìñò�� Layout Style¤åæçèéêëìñò Layout Style(Fill 1%ÿ Component 9x7 brandmark35F€?D35D9x7wordmark35F€?D35D57State Machine 19ŠLayer 1>@?A—=•A—ñŠðäŒ DñŠð¥äŒðC=•A—ñŠðäŒ DñŠð¥äŒðC